summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-04-05 22:27:26 +0000
committerKarl Berry <karl@freefriends.org>2016-04-05 22:27:26 +0000
commitb56b320b5e2515160073fa1b469514002688fe11 (patch)
tree965a7100c5e45fca8ec803d22b8b6ce14fca4633 /Master/tlpkg/tlperl/lib
parentd26c206452d2e285c3bbf949f34011e4a55fd8f9 (diff)
tlperl 5.22.1 from siep
git-svn-id: svn://tug.org/texlive/trunk@40252 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib')
-rw-r--r--Master/tlpkg/tlperl/lib/.packlist112
-rw-r--r--Master/tlpkg/tlperl/lib/App/Cpan.pm190
-rw-r--r--Master/tlpkg/tlperl/lib/App/Prove.pm24
-rw-r--r--Master/tlpkg/tlperl/lib/App/Prove/State.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/App/Prove/State/Result.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Archive/Tar.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/Archive/Tar/Constant.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Archive/Tar/File.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Attribute/Handlers.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/B.pm238
-rw-r--r--Master/tlpkg/tlperl/lib/B/Concise.pm249
-rw-r--r--Master/tlpkg/tlperl/lib/B/Debug.pm25
-rw-r--r--Master/tlpkg/tlperl/lib/B/Deparse.pm1717
-rw-r--r--Master/tlpkg/tlperl/lib/B/Op_private.pm836
-rw-r--r--Master/tlpkg/tlperl/lib/B/Showlex.pm44
-rw-r--r--Master/tlpkg/tlperl/lib/Benchmark.pm16
-rw-r--r--Master/tlpkg/tlperl/lib/CGI.pm8116
-rw-r--r--Master/tlpkg/tlperl/lib/CGI/Apache.pm28
-rw-r--r--Master/tlpkg/tlperl/lib/CGI/Carp.pm630
-rw-r--r--Master/tlpkg/tlperl/lib/CGI/Cookie.pm541
-rw-r--r--Master/tlpkg/tlperl/lib/CGI/Fast.pm221
-rw-r--r--Master/tlpkg/tlperl/lib/CGI/Pretty.pm313
-rw-r--r--Master/tlpkg/tlperl/lib/CGI/Push.pm326
-rw-r--r--Master/tlpkg/tlperl/lib/CGI/Switch.pm29
-rw-r--r--Master/tlpkg/tlperl/lib/CGI/Util.pm340
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/EXTERN.h12
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/INTERN.h27
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/XSUB.h78
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/av.h8
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/charclass_invlists.h108361
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/config.h567
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/cop.h29
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/cv.h70
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/dosish.h6
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/ebcdic_tables.h607
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/embed.h326
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/embedvar.h20
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/fakesdio.h6
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/feature.h12
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/gv.h30
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/handy.h645
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/hv.h8
-rwxr-xr-xMaster/tlpkg/tlperl/lib/CORE/hv_func.h198
-rwxr-xr-xMaster/tlpkg/tlperl/lib/CORE/inline.h243
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/intrpvar.h44
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/iperlsys.h10
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/keywords.h2
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h969
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/libperl522.a (renamed from Master/tlpkg/tlperl/lib/CORE/libperl520.a)bin926094 -> 953406 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/metaconfig.h21
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/mg.h10
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/mg_data.h21
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/mg_raw.h20
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/mg_vtable.h23
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/mydtrace.h6
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/nostdio.h10
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/op.h593
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/op_reg_common.h70
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/opcode.h1303
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/opnames.h590
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/overload.h47
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/pad.h231
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/parser.h30
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/patchlevel.h6
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perl.h1610
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perlhost.h4
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perlio.h14
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perliol.h14
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perlsdio.h39
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perly.h62
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/pp.h74
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/pp_proto.h15
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/proto.h1116
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/regcharclass.h2756
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/regcomp.h157
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/regexp.h161
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/regnodes.h289
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/scope.h21
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/sv.h202
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/thread.h6
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/uconfig.h575
-rwxr-xr-xMaster/tlpkg/tlperl/lib/CORE/unicode_constants.h165
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/unixish.h6
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/utf8.h208
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/utfebcdic.h677
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/util.h152
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/vdir.h4
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/vmem.h4
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/warnings.h137
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/win32.h39
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/win32iop.h5
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN.pm89
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Distribution.pm106
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/FirstTime.pm16
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/HTTP/Credentials.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/HandleConfig.pm7
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta.pm599
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/Converter.pm362
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/Feature.pm73
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/History.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_0.pod238
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_1.pod300
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_2.pod711
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_3.pod734
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_4.pod787
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/Merge.pm278
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/Prereqs.pm213
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/Requirements.pm443
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/Spec.pm67
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/Validator.pm355
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Module.pm17
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Plugin.pm145
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Plugin/Specfile.pm258
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Shell.pm177
-rw-r--r--Master/tlpkg/tlperl/lib/Carp.pm51
-rw-r--r--Master/tlpkg/tlperl/lib/Carp/Heavy.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Compress/Zlib.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/Config.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/Config.pm.orig12
-rw-r--r--Master/tlpkg/tlperl/lib/Config.pod605
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Config/Perl/V.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/Config_heavy.pl143
-rw-r--r--Master/tlpkg/tlperl/lib/Config_heavy.pl.orig147
-rw-r--r--Master/tlpkg/tlperl/lib/Cwd.pm369
-rw-r--r--Master/tlpkg/tlperl/lib/DB.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Data/Dumper.pm89
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Format.pm403
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language.pm144
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Afar.pm49
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Amharic.pm87
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Austrian.pm36
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Brazilian.pm35
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Bulgarian.pm92
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Chinese.pm36
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Chinese_GB.pm36
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Czech.pm58
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Danish.pm36
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Dutch.pm40
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/English.pm37
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Finnish.pm45
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/French.pm36
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Gedeo.pm51
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/German.pm37
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Greek.pm91
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Hungarian.pm88
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Icelandic.pm36
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Italian.pm36
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Norwegian.pm36
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Oromo.pm37
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Romanian.pm37
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Russian.pm49
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Russian_cp1251.pm39
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Russian_koi8r.pm39
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Sidama.pm37
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Somali.pm62
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Spanish.pm35
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Swedish.pm41
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Tigrinya.pm58
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/TigrinyaEritrean.pm93
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/TigrinyaEthiopian.pm93
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Language/Turkish.pm59
-rw-r--r--Master/tlpkg/tlperl/lib/Date/Parse.pm380
-rw-r--r--Master/tlpkg/tlperl/lib/Devel/PPPort.pm1013
-rw-r--r--Master/tlpkg/tlperl/lib/Devel/Peek.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/Digest/MD5.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/Digest/SHA.pm192
-rw-r--r--Master/tlpkg/tlperl/lib/Digest/SHA1.pm246
-rw-r--r--Master/tlpkg/tlperl/lib/DynaLoader.pm7
-rw-r--r--Master/tlpkg/tlperl/lib/Encode.pm44
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/Alias.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/MIME/Header.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/compat.pm87
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/compat/5006001.pm32
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/compat/Alias.pm330
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/compat/common.pm127
-rw-r--r--Master/tlpkg/tlperl/lib/Errno.pm249
-rw-r--r--Master/tlpkg/tlperl/lib/Exporter.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm7
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm7
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Command.pm31
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Install.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Installed.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm42
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MANIFEST.SKIP8
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm179
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm13
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm285
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm92
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm54
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MY.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm196
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm (renamed from Master/tlpkg/tlperl/lib/Encode/Locale.pm)6
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm55
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/regex.pm123
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/vpp.pm1028
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Manifest.pm56
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm23
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Packlist.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm138
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm23
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/typemap30
-rw-r--r--Master/tlpkg/tlperl/lib/Fatal.pm112
-rw-r--r--Master/tlpkg/tlperl/lib/Fcntl.pm9
-rw-r--r--Master/tlpkg/tlperl/lib/File/Find.pm730
-rw-r--r--Master/tlpkg/tlperl/lib/File/Glob.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Listing.pm435
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/Cygwin.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/Epoc.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/Functions.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/Mac.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/OS2.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/Unix.pm9
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/VMS.pm133
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/Win32.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Which.pm281
-rw-r--r--Master/tlpkg/tlperl/lib/Filter/Simple.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Filter/Util/Call.pm20
-rw-r--r--Master/tlpkg/tlperl/lib/Getopt/Long.pm102
-rw-r--r--Master/tlpkg/tlperl/lib/Getopt/Std.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/HTML/Entities.pm483
-rw-r--r--Master/tlpkg/tlperl/lib/HTML/Filter.pm112
-rw-r--r--Master/tlpkg/tlperl/lib/HTML/HeadParser.pm315
-rw-r--r--Master/tlpkg/tlperl/lib/HTML/LinkExtor.pm185
-rw-r--r--Master/tlpkg/tlperl/lib/HTML/Parser.pm1240
-rw-r--r--Master/tlpkg/tlperl/lib/HTML/PullParser.pm209
-rw-r--r--Master/tlpkg/tlperl/lib/HTML/Tagset.pm471
-rw-r--r--Master/tlpkg/tlperl/lib/HTML/TokeParser.pm371
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Config.pm436
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Cookies.pm781
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Cookies/Microsoft.pm329
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Cookies/Netscape.pm114
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Daemon.pm906
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Date.pm388
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Headers.pm854
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Headers/Auth.pm98
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Headers/ETag.pm94
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Headers/Util.pm199
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Message.pm1106
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Negotiate.pm528
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Request.pm242
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Request/Common.pm514
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Response.pm637
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Status.pm267
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Tiny.pm726
-rw-r--r--Master/tlpkg/tlperl/lib/Hash/Util.pm132
-rw-r--r--Master/tlpkg/tlperl/lib/IO.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Base.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Deflate.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Gzip.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Zip.pm24
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm4
-rwxr-xr-xMaster/tlpkg/tlperl/lib/IO/HTML.pm575
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Socket/IP.pm154
-rw-r--r--Master/tlpkg/tlperl/lib/IO/String.pm551
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm18
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm38
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Base.pm7
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm16
-rw-r--r--Master/tlpkg/tlperl/lib/IPC/Open3.pm16
-rw-r--r--Master/tlpkg/tlperl/lib/JSON/PP.pm20
-rw-r--r--Master/tlpkg/tlperl/lib/LWP.pm669
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Authen/Basic.pm65
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Authen/Digest.pm75
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Authen/Ntlm.pm180
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/ConnCache.pm313
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Debug.pm110
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/DebugFile.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/MediaTypes.pm280
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/MemberMixin.pm44
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Protocol.pm291
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Protocol/GHTTP.pm73
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Protocol/cpan.pm72
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Protocol/data.pm52
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Protocol/file.pm146
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Protocol/ftp.pm543
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Protocol/gopher.pm213
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Protocol/http.pm515
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Protocol/loopback.pm26
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Protocol/mailto.pm183
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Protocol/nntp.pm145
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Protocol/nogo.pm24
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/RobotUA.pm303
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/Simple.pm253
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/UserAgent.pm1861
-rw-r--r--Master/tlpkg/tlperl/lib/LWP/media.types1479
-rw-r--r--Master/tlpkg/tlperl/lib/List/Util.pm195
-rw-r--r--Master/tlpkg/tlperl/lib/List/Util/XS.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/API.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Changes.pod48
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Country.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Country.pod10
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Country_Codes.pm462
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Country_Retired.pm36
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pod10
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Codes.pm645
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Retired.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pod10
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Codes.pm1084
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Retired.pm7
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pod10
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Codes.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Retired.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pod10
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Codes.pm332
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Retired.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Language.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Language.pod10
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Language_Codes.pm62773
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Language_Retired.pm90
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Script.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Script.pod10
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Script_Codes.pm2279
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Script_Retired.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Country.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Country.pod10
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Currency.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Currency.pod10
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Language.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Language.pod10
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Maketext.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Script.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Script.pod10
-rw-r--r--Master/tlpkg/tlperl/lib/MIME/Base64.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Math/BigFloat.pm84
-rw-r--r--Master/tlpkg/tlperl/lib/Math/BigInt.pm250
-rw-r--r--Master/tlpkg/tlperl/lib/Math/BigInt/Calc.pm61
-rw-r--r--Master/tlpkg/tlperl/lib/Math/BigInt/CalcEmu.pm64
-rw-r--r--Master/tlpkg/tlperl/lib/Math/BigRat.pm84
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Math/Int64.pm578
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Math/Int64/die_on_overflow.pm42
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Math/Int64/native_if_available.pm40
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Math/UInt64.pm32
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build.pm1117
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/API.pod2124
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Authoring.pod326
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Base.pm5737
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Bundling.pod147
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Compat.pm632
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Config.pm59
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/ConfigData.pm210
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Cookbook.pm529
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Dumper.pm19
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/ModuleInfo.pm34
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Notes.pm332
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/PPMMaker.pm186
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Platform/Default.pm33
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Platform/MacOS.pm152
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Platform/Unix.pm73
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Platform/VMS.pm523
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Platform/VOS.pm34
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Platform/Windows.pm319
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Platform/aix.pm40
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Platform/cygwin.pm55
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Platform/darwin.pm40
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Platform/os2.pm49
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/PodParser.pm65
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/Version.pm21
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Build/YAML.pm19
-rw-r--r--Master/tlpkg/tlperl/lib/Module/CoreList.pm1327
-rw-r--r--Master/tlpkg/tlperl/lib/Module/CoreList.pod9
-rw-r--r--Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Module/CoreList/Utils.pm101
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Load/Conditional.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Metadata.pm306
-rw-r--r--Master/tlpkg/tlperl/lib/Mozilla/CA.pm99
-rw-r--r--Master/tlpkg/tlperl/lib/Mozilla/CA/cacert.pem3894
-rw-r--r--Master/tlpkg/tlperl/lib/Mozilla/mk-ca-bundle.pl495
-rw-r--r--Master/tlpkg/tlperl/lib/Net/Cmd.pm213
-rw-r--r--Master/tlpkg/tlperl/lib/Net/Config.pm36
-rw-r--r--Master/tlpkg/tlperl/lib/Net/Domain.pm58
-rw-r--r--Master/tlpkg/tlperl/lib/Net/FTP.pm533
-rw-r--r--Master/tlpkg/tlperl/lib/Net/FTP/A.pm18
-rw-r--r--Master/tlpkg/tlperl/lib/Net/FTP/E.pm11
-rw-r--r--Master/tlpkg/tlperl/lib/Net/FTP/I.pm18
-rw-r--r--Master/tlpkg/tlperl/lib/Net/FTP/L.pm11
-rw-r--r--Master/tlpkg/tlperl/lib/Net/FTP/dataconn.pm63
-rw-r--r--Master/tlpkg/tlperl/lib/Net/HTTP.pm292
-rw-r--r--Master/tlpkg/tlperl/lib/Net/HTTP/Methods.pm633
-rw-r--r--Master/tlpkg/tlperl/lib/Net/HTTP/NB.pm109
-rw-r--r--Master/tlpkg/tlperl/lib/Net/HTTPS.pm110
-rw-r--r--Master/tlpkg/tlperl/lib/Net/NNTP.pm207
-rw-r--r--Master/tlpkg/tlperl/lib/Net/Netrc.pm48
-rw-r--r--Master/tlpkg/tlperl/lib/Net/POP3.pm162
-rw-r--r--Master/tlpkg/tlperl/lib/Net/SMTP.pm215
-rw-r--r--Master/tlpkg/tlperl/lib/Net/Time.pm47
-rw-r--r--Master/tlpkg/tlperl/lib/Net/libnetFAQ.pod26
-rwxr-xr-xMaster/tlpkg/tlperl/lib/OLE.pm177
-rw-r--r--Master/tlpkg/tlperl/lib/Opcode.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/POSIX.pm41
-rw-r--r--Master/tlpkg/tlperl/lib/POSIX.pod605
-rw-r--r--Master/tlpkg/tlperl/lib/Package/Constants.pm108
-rw-r--r--Master/tlpkg/tlperl/lib/Perl/OSType.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/PerlIO/encoding.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/PerlIO/mmap.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/PerlIO/scalar.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Escapes.pm316
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Find.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Functions.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Html.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/InputObjects.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/ParseUtils.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Parser.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc.pm142
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/BaseTo.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/GetOptsOO.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToANSI.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToChecker.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToMan.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToNroff.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToPod.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToRtf.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTerm.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToText.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTk.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToXml.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Select.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple.pm19
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple.pod6
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm43
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Checker.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Debug.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/HTML.pm21
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Methody.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Progress.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm9
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/RTF.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Search.pm13
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Subclassing.pod55
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Text.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm50
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm15
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Usage.pm44
-rw-r--r--Master/tlpkg/tlperl/lib/SDBM_File.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Safe.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/Scalar/Util.pm87
-rw-r--r--Master/tlpkg/tlperl/lib/SelfLoader.pm27
-rw-r--r--Master/tlpkg/tlperl/lib/Storable.pm18
-rw-r--r--Master/tlpkg/tlperl/lib/Sub/Util.pm149
-rw-r--r--Master/tlpkg/tlperl/lib/Sys/Hostname.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Base.pm13
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/Base.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/Color.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/Console.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm18
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/File.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm18
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/Session.pm38
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Harness.pm67
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Harness/Env.pm86
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Object.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser.pm21
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Term/ANSIColor.pm137
-rw-r--r--Master/tlpkg/tlperl/lib/Term/Complete.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Term/ReadLine.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Builder.pm65
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Builder/IO/Scalar.pm658
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Builder/Module.pm44
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Builder/Tester.pm48
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Harness.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Test/More.pm151
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Simple.pm25
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Tester.pm652
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Tester/Capture.pm231
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm76
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Tester/Delegate.pm32
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Tutorial.pod46
-rw-r--r--Master/tlpkg/tlperl/lib/Test/use/ok.pm62
-rw-r--r--Master/tlpkg/tlperl/lib/Text/Balanced.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Text/ParseWords.pm23
-rw-r--r--Master/tlpkg/tlperl/lib/Tie/File.pm25
-rw-r--r--Master/tlpkg/tlperl/lib/Tie/Registry.pm45
-rw-r--r--Master/tlpkg/tlperl/lib/Tie/Watch.pm563
-rw-r--r--Master/tlpkg/tlperl/lib/Time/Piece.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Time/Seconds.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Time/Zone.pm291
-rw-r--r--Master/tlpkg/tlperl/lib/Tk.pm857
-rw-r--r--Master/tlpkg/tlperl/lib/Tk.pod865
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/804delta.pod110
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Adjuster.pm438
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Adjuster.pod223
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/After.pm105
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Animation.pm230
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Animation.pod92
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Balloon.pm644
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Balloon.pod293
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Bitmap.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Bitmap.pod103
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/BrowseEntry.pm524
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/BrowseEntry.pod210
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Button.pm247
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Button.pod255
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Camel.xpm41
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Canvas.pm1436
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Canvas.pod2394
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Checkbutton.pm42
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Checkbutton.pod347
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Clipboard.pm122
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Clipboard.pod89
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/CmdLine.pm497
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/CmdLine.pod454
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Tk/ColorDialog.pm58
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/ColorEdit.xpm58
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/ColorEditor.pm317
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/ColorEditor.pod120
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Tk/ColorSelect.pm414
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Compound.pm40
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Compound.pod298
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Config.pm13
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/ConfigSpecs.pod262
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Configure.pm68
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Credits7
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DItem.pod439
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Derived.pm512
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Derived.pod89
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Dialog.pm68
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Dialog.pod107
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DialogBox.pm152
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DialogBox.pod156
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Tk/DirSelect.pm503
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DirTree.pm261
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DirTree.pod172
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Dirlist.pm113
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DragDrop.pm332
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DragDrop/Common.pm61
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DragDrop/Common.pod16
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DragDrop/LocalDrop.pm61
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DragDrop/Rect.pm110
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DragDrop/SunConst.pm34
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DragDrop/SunConst.pod18
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DragDrop/SunDrop.pm200
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DragDrop/SunSite.pm107
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DragDrop/Win32Drop.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DragDrop/Win32Site.pm50
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DragDrop/XDNDDrop.pm145
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DragDrop/XDNDSite.pm159
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DropSite.pm257
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DropSite.pod33
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/DummyEncode.pm46
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/English.pm307
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Entry.pm615
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Entry.pod693
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Error.pod145
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/ErrorDialog.pm129
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/ErrorDialog.pod36
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Event.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Event/IO.pm132
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Eventloop.pod62
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/FBox.pm1061
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/FBox.pod67
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/FileSelect.pm578
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/FileSelect.pod150
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/FloatEntry.pm109
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Font.pm163
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Font.pod407
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Frame.pm378
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Frame.pod146
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/HList.pm708
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/HList.pod1050
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/IO.pm183
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/IO.pod51
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/IconList.pm712
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/IconList.pod82
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Image.pm74
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Image.pod145
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/InputO.pod50
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Internals.pod142
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/ItemStyle.pm38
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/JPEG.pm57
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/LabEntry.pm31
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/LabFrame.pm138
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/LabFrame.pod110
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/LabRadio.pm63
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Label.pm21
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Label.pod133
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Labelframe.pm16
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Labelframe.pod206
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Listbox.pm910
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Listbox.pod794
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/MMtry.pm60
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/MMutil.pm603
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/MainWindow.pm210
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/MainWindow.pod85
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/MakeDepend.pm342
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Menu.pm1201
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Menu.pod876
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Menu/Item.pm178
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Menu/Item.pod96
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Menubar.pm15
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Menubutton.pm401
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Menubutton.pod249
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Message.pm20
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Message.pod151
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/MsgBox.pm506
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/MsgBox.pod83
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Mwm.pod109
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/NBFrame.pm20
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/NoteBook.pm480
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/NoteBook.pod235
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Optionmenu.pm128
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Optionmenu.pod100
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/PNG.pm50
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Pane.pm544
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Panedwindow.pm221
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Panedwindow.pod326
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Photo.pm22
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Photo.pod475
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Pixmap.pm19
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Pixmap.pod64
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Popup.pod89
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Pretty.pm93
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/ProgressBar.pm517
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/README.Adjust77
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/ROText.pm48
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/ROText.pod48
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Radiobutton.pm45
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Radiobutton.pod333
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Region.pm182
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Reindex.pm233
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/ReindexedROText.pm13
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/ReindexedText.pm13
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Scale.pm278
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Scale.pod356
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Scrollbar.pm429
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Scrollbar.pod429
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Scrolled.pod86
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Spinbox.pm115
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Spinbox.pod819
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Stats.pm26
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Submethods.pm45
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Submethods.pod27
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/TList.pm416
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/TList.pod597
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Table.pm597
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Table.pod102
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Tcl-perl.pod200
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Text.pm1673
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Text.pod2224
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Text/Tag.pm46
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/TextEdit.pm509
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/TextList.pm982
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/TextUndo.pm1023
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/TextUndo.pod73
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Tiler.pm202
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Tiler.pod32
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/TixGrid.pm1597
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/TixGrid.pod539
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Tk.xbm44
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Tk.xpm41
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/TkXSUB.def62
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Toplevel.pm211
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Toplevel.pod199
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Trace.pm405
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Tree.pm313
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Tree.pod274
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/UserGuide.pod586
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Widget.pm1774
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Widget.pod678
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/WidgetDemo.pod59
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Wm.pm174
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Wm.pod669
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/X.pm391
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/X.pod373
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/X11/X.h677
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/X11/Xatom.h79
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/X11/Xfuncproto.h60
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/X11/Xlib.h1214
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/X11/Xutil.h855
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/X11/cursorfont.h79
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/X11/keysym.h39
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/X11/keysymdef.h1169
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/X11/license.terms39
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/X11Font.pm184
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/X11Font.pod88
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Xcamel.gifbin4193 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Xlib.pm15
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Xrm.pm9
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Xrm.pod45
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/act_folder.xbm5
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/act_folder.xpm22
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/after.pod168
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/anim.gifbin2533 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/arrowdownwin.xbm5
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/balArrow.xbm4
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/bind.pod583
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/bindtags.pod107
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/callbacks.pod104
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/cbxarrow.xbm6
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/chooseColor.pod64
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/chooseDirectory.pod95
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/composite.pod171
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/LabEnLabRad.pm41
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/QuitPB.xpm48
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/QuitPBa.xpm48
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/c.icon16
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/cursor.curbin326 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/cursor.mask6
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/cursor.xbm8
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/dir.icon16
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/dir.mask16
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/earth.gifbin51552 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/earthris.gifbin6343 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/face173
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/flagdown27
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/flagup27
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/grey.256
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/grey.56
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/letters27
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/mickey.gifbin9344 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/ned.xpm69
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/noletters27
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/page.icon16
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/page.mask16
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/pattern6
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/images/teapot.ppm31
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/Ball.pm144
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/HList.pl65
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/HList2.pl124
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/Plot.pm199
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/WidgetDemo.pm130
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/arrows.pl242
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/balloon.pl168
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/bind.pl65
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/bitmaps.pl44
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/bounce.pl274
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/browseentry.pl34
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/browseentry2.pl39
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/button.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/check.pl44
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/choosedir.pl39
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/clrpick.pl45
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/colors.pl85
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/cscroll.pl86
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/ctext.pl170
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/dialog1.pl33
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/dialog2.pl33
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/dirtree.pl7
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/entry1.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/entry2.pl33
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/entry3.pl199
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/filebox.pl106
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/floor.pl1324
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/form.pl31
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/form_mgr.pl21
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/hello.pl51
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/hscale.pl48
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/icon.pl64
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/image1.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/image2.pl104
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/items.pl358
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/keysyms.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/labelframe.pl74
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/labels.pl43
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/labframe.pl13
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/mega.pl135
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/menbut.pl122
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/menus.pl196
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/menus2.pl216
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/msgBox.pl82
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/notebook.pl59
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/paned1.pl26
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/paned2.pl65
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/photo1.pl30
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/photo2.pl156
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/plot.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/progress.pl46
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/puzzle.pl86
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/radio.pl78
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/ruler.pl146
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/sayings.pl48
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/search.pl177
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/showVars.pl37
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/slide.pl178
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/spin.pl36
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/states.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/style.pl154
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/texts.pl71
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/trace1.pl49
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/trace2.pl188
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/transtile.pl113
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/twind.pl186
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/unicodeout.pl64
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/virtevents1.pl59
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/vscale.pl48
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widtrib/Gedi.pl429
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widtrib/TEMPLATE.pl92
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widtrib/Tiler.pl15
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widtrib/all.pl331
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widtrib/cursor.pl65
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widtrib/lib/npuz/Xcamel.npuzbin26699 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widtrib/npuz.pl226
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/demos/widtrib/plop.pl381
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/event.pod417
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/exit.pod42
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/file.xbm5
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/file.xpm18
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/fileevent.pod112
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/focus.pod166
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/folder.xbm5
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/folder.xpm21
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/form.pod397
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/getOpenFile.pod182
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/grab.pod140
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/grid.pod409
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/icon.gifbin1924 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/install.pm37
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/license.terms35
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/mega.pod423
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/messageBox.pod67
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/openfile.xbm5
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/openfolder.xbm5
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/openfolder.xpm21
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/option.pod217
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/options.pod787
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/overview.pod138
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk.pod550
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/Lang.h202
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/Lang.m192
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/Lang.t217
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/Lang_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/Tcl-pTk260
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/Xlib.h151
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/Xlib.m661
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/Xlib.t657
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/Xlib_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/compat/limits.h22
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/compat/stdlib.h45
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/compat/unistd.h87
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/default.h36
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/img.h41
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/imgInt.h75
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/imgInt.m62
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/imgInt.t93
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/imgInt_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/ks_names.h925
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/mkVFunc433
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/moredefs.h131
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/port.h32
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tcl.h2411
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls.h4143
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls.m538
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls.t675
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tclIntDecls.h1324
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tclIntPlatDecls.h585
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tclMath.h27
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tclPlatDecls.h197
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tclWinInt.h145
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tix.h512
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tix.m126
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tix.t170
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixBitmaps.h618
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixDef.h173
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixForm.h143
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixGrData.h88
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixGrid.h458
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixHList.h323
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.h134
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.m34
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.t49
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixInt.h886
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixInt.m171
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixInt.t249
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixInt_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixPort.h110
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixTList.h148
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixWinInt.h23
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixWinPort.h40
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tix_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tk.h1857
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tk.m94
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tk.t151
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tk3d.h102
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkButton.h320
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkCanvas.h334
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkCanvases.h81
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkColor.h89
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkConfig.h15
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls.h2277
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls.m870
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls.t1158
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent.h122
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent.m274
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent.t304
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkFileFilter.h92
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkFont.h226
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto.h36
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto.m55
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto.t66
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkInitScript.h58
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkInt.h1200
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkInt.m125
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkInt.t182
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls.h1572
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls.m466
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls.t642
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls.h1227
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls.m474
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls.t845
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls.h2436
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls.m446
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls.t1521
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkInt_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkMenu.h588
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkMenubutton.h240
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkOption.h17
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkOption.m26
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkOption.t26
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkOption_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls.h300
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls.m114
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls.t190
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls_f.h15
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkPort.h53
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkScale.h257
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkScrollbar.h209
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkSelect.h187
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkText.h927
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkUndo.h90
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkVMacro.h69
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkWin.h60
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkWinDefault.h525
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkWinInt.h211
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkWinPort.h156
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tkXrm.h12
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tk_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/xbytes.h58
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pack.pod324
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/palette.pod89
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/place.pod283
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/prolog.ps284
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/selection.pod159
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/send.pod118
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/srcfile.xpm18
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/textfile.xpm18
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/tixWm.pod73
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/tkGlue.def130
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/tkGlue.h79
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/tkGlue.m74
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/tkGlue.t70
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/tkGlue_f.h14
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/tkvars.pod107
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/tranicon.gifbin1718 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/typemap96
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/vtab.def90
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/widgets.pm20
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/widgets.pod20
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/win.xbm6
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/winfolder.xpm39
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/wintext.xpm42
-rw-r--r--Master/tlpkg/tlperl/lib/UNIVERSAL.pm29
-rw-r--r--Master/tlpkg/tlperl/lib/URI.pm1149
-rw-r--r--Master/tlpkg/tlperl/lib/URI/Escape.pm220
-rw-r--r--Master/tlpkg/tlperl/lib/URI/Heuristic.pm253
-rw-r--r--Master/tlpkg/tlperl/lib/URI/IRI.pm45
-rw-r--r--Master/tlpkg/tlperl/lib/URI/QueryParam.pm194
-rw-r--r--Master/tlpkg/tlperl/lib/URI/Split.pm95
-rw-r--r--Master/tlpkg/tlperl/lib/URI/URL.pm303
-rw-r--r--Master/tlpkg/tlperl/lib/URI/WithBase.pm174
-rw-r--r--Master/tlpkg/tlperl/lib/URI/_foreign.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/URI/_generic.pm254
-rw-r--r--Master/tlpkg/tlperl/lib/URI/_idna.pm89
-rw-r--r--Master/tlpkg/tlperl/lib/URI/_ldap.pm140
-rw-r--r--Master/tlpkg/tlperl/lib/URI/_login.pm11
-rw-r--r--Master/tlpkg/tlperl/lib/URI/_punycode.pm203
-rw-r--r--Master/tlpkg/tlperl/lib/URI/_query.pm95
-rw-r--r--Master/tlpkg/tlperl/lib/URI/_segment.pm22
-rw-r--r--Master/tlpkg/tlperl/lib/URI/_server.pm164
-rw-r--r--Master/tlpkg/tlperl/lib/URI/_userpass.pm53
-rw-r--r--Master/tlpkg/tlperl/lib/URI/data.pm142
-rw-r--r--Master/tlpkg/tlperl/lib/URI/file.pm327
-rw-r--r--Master/tlpkg/tlperl/lib/URI/file/Base.pm82
-rw-r--r--Master/tlpkg/tlperl/lib/URI/file/FAT.pm25
-rw-r--r--Master/tlpkg/tlperl/lib/URI/file/Mac.pm121
-rw-r--r--Master/tlpkg/tlperl/lib/URI/file/OS2.pm30
-rw-r--r--Master/tlpkg/tlperl/lib/URI/file/QNX.pm18
-rw-r--r--Master/tlpkg/tlperl/lib/URI/file/Unix.pm56
-rw-r--r--Master/tlpkg/tlperl/lib/URI/file/Win32.pm85
-rw-r--r--Master/tlpkg/tlperl/lib/URI/ftp.pm44
-rw-r--r--Master/tlpkg/tlperl/lib/URI/gopher.pm95
-rw-r--r--Master/tlpkg/tlperl/lib/URI/http.pm25
-rw-r--r--Master/tlpkg/tlperl/lib/URI/https.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/URI/ldap.pm120
-rw-r--r--Master/tlpkg/tlperl/lib/URI/ldapi.pm27
-rw-r--r--Master/tlpkg/tlperl/lib/URI/ldaps.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/URI/mailto.pm71
-rw-r--r--Master/tlpkg/tlperl/lib/URI/mms.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/URI/news.pm69
-rw-r--r--Master/tlpkg/tlperl/lib/URI/nntp.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/URI/pop.pm69
-rw-r--r--Master/tlpkg/tlperl/lib/URI/rlogin.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/URI/rsync.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/URI/rtsp.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/URI/rtspu.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/URI/sip.pm85
-rw-r--r--Master/tlpkg/tlperl/lib/URI/sips.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/URI/snews.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/URI/ssh.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/URI/telnet.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/URI/tn3270.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/URI/urn.pm98
-rw-r--r--Master/tlpkg/tlperl/lib/URI/urn/isbn.pm103
-rw-r--r--Master/tlpkg/tlperl/lib/URI/urn/oid.pm18
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate.pm105
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm27
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm3
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl24
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl94
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl72
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bg.pl76
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl44
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl52
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl148
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl52
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl62
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl52
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl24
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl100
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl88
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl122
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl118
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl18
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl148
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl24
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl68
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl90
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl296
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl102
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl156
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl2650
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl92
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl144
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl14
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl1284
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl18
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl82
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl68
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl76
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl40
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl54
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl146
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl146
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl68
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl38
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl18
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl48
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl96
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl100
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ru.pl76
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl292
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl14
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl84
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl92
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl84
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl172
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl168
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl104
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl36
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl68
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl118
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl86
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl76
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl144
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl420
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl42
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl56
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl46
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl416
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl416
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl416
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl642
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl642
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl642
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/allkeys.txt49253
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Normalize.pm500
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/UCD.pm473
-rw-r--r--Master/tlpkg/tlperl/lib/WWW/RobotRules.pm453
-rw-r--r--Master/tlpkg/tlperl/lib/WWW/RobotRules/AnyDBM_File.pm170
-rw-r--r--Master/tlpkg/tlperl/lib/Win32.pm93
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/API.pm1469
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/API/Callback.pm589
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/API/Callback/IATPatch.pod181
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/API/Struct.pm714
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/API/Test.pm144
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/API/Type.pm606
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/Console.pm1463
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/OLE.pm968
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/OLE/Const.pm201
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/OLE/Enum.pm95
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/OLE/Lite.pm224
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/OLE/NEWS.pod380
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/OLE/NLS.pm968
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/OLE/TPJ.pod798
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/OLE/TypeInfo.pm389
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/OLE/Variant.pm577
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/Shortcut.pm752
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/TieRegistry.pm3812
-rw-r--r--Master/tlpkg/tlperl/lib/Win32/WinError.pm1017
-rw-r--r--Master/tlpkg/tlperl/lib/Win32API/File.pm20
-rw-r--r--Master/tlpkg/tlperl/lib/Win32API/Registry.pm1779
-rw-r--r--Master/tlpkg/tlperl/lib/Win32API/Registry/cRegistry.pc87
-rw-r--r--Master/tlpkg/tlperl/lib/XSLoader.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/_charnames.pm133
-rw-r--r--Master/tlpkg/tlperl/lib/arybase.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/attributes.pm21
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/B/B.dllbin82432 -> 93696 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dllbin101376 -> 99840 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dllbin142336 -> 140800 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Cwd/Cwd.dllbin22528 -> 22016 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dllbin45568 -> 45056 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Date/Parse/.packlist37
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Devel/PPPort/PPPort.dllbin110592 -> 113152 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dllbin23040 -> 22528 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dllbin24576 -> 26112 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dllbin55808 -> 52736 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Digest/SHA1/.packlist2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Digest/SHA1/SHA1.dllbin25600 -> 0 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dllbin117248 -> 122368 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/CN/CN.dllbin748544 -> 770560 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dllbin24064 -> 23552 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/Encode.dllbin40960 -> 40448 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/JP/JP.dllbin864768 -> 898048 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/KR/KR.dllbin819712 -> 860160 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Encode/Locale/.packlist1
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dllbin27648 -> 27648 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/TW/TW.dllbin765440 -> 791040 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dllbin32768 -> 32256 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Encode/compat/.packlist4
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dllbin20480 -> 19968 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dllbin13824 -> 13824 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/File/Glob/Glob.dllbin29696 -> 28672 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/File/Listing/.packlist1
-rw-r--r--Master/tlpkg/tlperl/lib/auto/File/Which/.packlist3
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dllbin18944 -> 18944 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/HTML/Parser/.packlist8
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/HTML/Parser/Parser.dllbin56320 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/HTML/Tagset/.packlist1
-rw-r--r--Master/tlpkg/tlperl/lib/auto/HTTP/Cookies/.packlist3
-rw-r--r--Master/tlpkg/tlperl/lib/auto/HTTP/Daemon/.packlist1
-rw-r--r--Master/tlpkg/tlperl/lib/auto/HTTP/Date/.packlist1
-rw-r--r--Master/tlpkg/tlperl/lib/auto/HTTP/Message/.packlist10
-rw-r--r--Master/tlpkg/tlperl/lib/auto/HTTP/Negotiate/.packlist1
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dllbin22528 -> 22016 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Hash/Util/Util.dllbin20480 -> 20992 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/IO/HTML/.packlist1
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/IO/IO.dllbin25088 -> 24064 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/IO/String/.packlist1
-rw-r--r--Master/tlpkg/tlperl/lib/auto/LWP/.packlist33
-rw-r--r--Master/tlpkg/tlperl/lib/auto/LWP/MediaTypes/.packlist2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/List/Util/Util.dllbin51200 -> 55808 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dllbin21504 -> 20992 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dllbin21504 -> 20992 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Math/Int64/.packlist5
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Math/Int64/Int64.dllbin82944 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Mozilla/CA/.packlist3
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Net/HTTP/.packlist4
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Opcode/Opcode.dllbin27136 -> 25600 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/POSIX/POSIX.dllbin98816 -> 117248 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dllbin30208 -> 30208 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dllbin13312 -> 13312 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dllbin19456 -> 18944 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/PerlIO/via/via.dllbin23552 -> 23552 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dllbin35840 -> 33792 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Socket/.packlist2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Socket/Socket.dllbin35328 -> 30720 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Storable/Storable.dllbin117760 -> 116736 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dllbin13824 -> 13312 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tie/Hash/NamedCapture/NamedCapture.dllbin17920 -> 17408 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dllbin26624 -> 26112 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dllbin27136 -> 26624 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/.packlist644
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/CancelRepeat.al15
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/Canvas/Canvas.dllbin210944 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Clipboard/autosplit.ix6
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Clipboard/getSelected.al15
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/Compound/Compound.dllbin27648 -> 0 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/DirSelect/.packlist1
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/DragDrop/Win32Site/Win32Site.dllbin17408 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/EnterFocus.al27
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/Entry/Entry.dllbin53760 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Error.al20
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/Event/Event.dllbin65024 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/FirstMenu.al21
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/FocusChildren.al35
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/FocusOK.al36
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Frame/AddScrollbars.al52
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Frame/FindMenu.al22
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Frame/autosplit.ix24
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Frame/freeze_on_map.al18
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Frame/label.al24
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Frame/labelPack.al50
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Frame/labelVariable.al27
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Frame/packscrollbars.al86
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Frame/queuePack.al18
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Frame/sbset.al15
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Frame/scrollbars.al24
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/HList/HList.dllbin67584 -> 0 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/IO/IO.dllbin17408 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/ImageNames.al13
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/ImageTypes.al13
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/JPEG/JPEG.dllbin128512 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/AutoScan.al49
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/BeginExtend.al34
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/BeginSelect.al46
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/BeginToggle.al40
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/ButtonRelease_1.al16
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/CLEAR.al16
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cancel.al42
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cntrl_End.al19
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cntrl_Home.al19
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cntrl_backslash.al19
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/DELETE.al19
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/DataExtend.al39
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/EXISTS.al16
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/EXTEND.al16
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/ExtendUpDown.al36
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/FETCH.al56
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/FETCHSIZE.al16
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/Listbox/Listbox.dllbin40960 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Motion.al77
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/POP.al19
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/PUSH.al13
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SHIFT.al19
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SPLICE.al84
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/STORE.al80
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SelectAll.al32
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SetList.al16
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/TIEARRAY.al15
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/TIESCALAR.al15
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/UNSHIFT.al16
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/UpDown.al41
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/autosplit.ix56
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/clipboardPaste.al21
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/deleteSelected.al18
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/getSelected.al24
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Listbox/xyIndex.al29
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/Menubutton/Menubutton.dllbin28160 -> 0 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/NBFrame/NBFrame.dllbin30720 -> 0 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/PNG/PNG.dllbin215040 -> 0 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/Pixmap/Pixmap.dllbin34304 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Receive.al23
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/RepeatId.al16
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scale/Activate.al33
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scale/ButtonDown.al40
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scale/ButtonUp.al16
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scale/ControlPress.al31
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scale/Drag.al29
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scale/EndDrag.al23
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scale/Enter.al19
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scale/Increment.al61
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scale/Leave.al15
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/Scale/Scale.dllbin32256 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scale/autosplit.ix22
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonDown.al55
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonUp.al26
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Drag.al43
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/EndDrag.al28
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Enter.al21
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Leave.al18
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Motion.al15
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByPages.al38
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByUnits.al37
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlToPos.al35
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlTopBottom.al32
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Scrollbar.dllbin28672 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Select.al59
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/StartDrag.al38
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/autosplit.ix30
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Selection.al18
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/TList/TList.dllbin38400 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Table/Create.al17
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Table/Posn.al15
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Table/autosplit.ix14
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Table/see.al46
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Table/totalColumns.al13
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Table/totalRows.al13
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/Text/Text.dllbin130560 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Text/autosplit.ix3
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/TextEdit/autosplit.ix3
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/TextUndo/autosplit.ix3
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/TixGrid/TixGrid.dllbin84992 -> 0 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/Tk.dllbin941056 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_BindIn.al19
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_BindOut.al20
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_Create.al56
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_Destroy.al29
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_In.al24
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_Out.al32
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/autosplit.ix10
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/TraverseToMenu.al27
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Widget/ASkludge.al30
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Widget/AltKeyInDialog.al20
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Widget/AmpWidget.al36
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Widget/FindAltKeyTarget.al38
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Widget/MasterMenu.al14
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Widget/RestoreFocusGrab.al59
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Widget/SetAmpText.al19
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Widget/SetFocusGrab.al38
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Widget/UnderlineAmpersand.al29
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Widget/autosplit.ix27
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Widget/bindDump.al87
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Widget/clipboardKeysyms.al51
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Widget/pathname.al15
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Wm/AnchorAdjust.al17
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Wm/FullScreen.al29
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Wm/Popup.al50
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Wm/Post.al20
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Wm/autosplit.ix14
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Wm/iconposition.al24
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/X/X.dllbin31744 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/X/autosplit.ix3
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/Xlib/Xlib.dllbin37888 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/autosplit.ix49
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/break.al13
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/focusFollowsMouse.al14
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/focusNext.al18
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/focusPrev.al28
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/getEncoding.al43
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/getNextFocus.al44
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/getPrevFocus.al54
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/interps.al14
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/lsearch.al19
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/pTk/extralibs.ld1
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/tabFocus.al13
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/updateWidgets.al17
-rw-r--r--Master/tlpkg/tlperl/lib/auto/URI/.packlist52
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dllbin528896 -> 579072 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dllbin212992 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/WWW/RobotRules/.packlist2
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Win32/API/.packlist8
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Win32/API/API.dllbin33280 -> 0 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Win32/API/Callback/Callback.dllbin25088 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Win32/Console/.packlist2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Win32/Console/Console.dllbin59904 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Win32/OLE/.packlist11
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Win32/OLE/OLE.dllbin148480 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Win32/Shortcut/.packlist2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Win32/Shortcut/Shortcut.dllbin52224 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Win32/TieRegistry/.packlist2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Win32/Win32.dllbin58368 -> 57856 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Win32API/File/File.dllbin107008 -> 102912 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Win32API/Registry/.packlist3
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Win32API/Registry/Registry.dllbin229888 -> 0 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/arybase/arybase.dllbin26112 -> 26112 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/attributes/attributes.dllbin17920 -> 17408 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/mro/mro.dllbin26112 -> 25600 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/re/re.dllbin460800 -> 548352 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/sdbm/extralibs.ld1
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/threads/shared/shared.dllbin41472 -> 41984 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/threads/threads.dllbin42496 -> 41984 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/autodie.pm30
-rw-r--r--Master/tlpkg/tlperl/lib/autodie/Scope/Guard.pm65
-rw-r--r--Master/tlpkg/tlperl/lib/autodie/Scope/GuardStack.pm127
-rw-r--r--Master/tlpkg/tlperl/lib/autodie/ScopeUtil.pm80
-rw-r--r--Master/tlpkg/tlperl/lib/autodie/exception.pm86
-rw-r--r--Master/tlpkg/tlperl/lib/autodie/exception/system.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/autodie/hints.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/autodie/skip.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/bigint.pm26
-rw-r--r--Master/tlpkg/tlperl/lib/bignum.pm28
-rw-r--r--Master/tlpkg/tlperl/lib/bigrat.pm28
-rw-r--r--Master/tlpkg/tlperl/lib/charnames.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/constant.pm50
-rw-r--r--Master/tlpkg/tlperl/lib/dumpvar.pl56
-rw-r--r--Master/tlpkg/tlperl/lib/encoding.pm468
-rw-r--r--Master/tlpkg/tlperl/lib/experimental.pm71
-rw-r--r--Master/tlpkg/tlperl/lib/feature.pm58
-rw-r--r--Master/tlpkg/tlperl/lib/if.pm15
-rw-r--r--Master/tlpkg/tlperl/lib/inc/latest.pm248
-rw-r--r--Master/tlpkg/tlperl/lib/inc/latest/private.pm102
-rw-r--r--Master/tlpkg/tlperl/lib/locale.pm89
-rw-r--r--Master/tlpkg/tlperl/lib/lwpcook.pod311
-rw-r--r--Master/tlpkg/tlperl/lib/lwptut.pod839
-rw-r--r--Master/tlpkg/tlperl/lib/meta_notation.pm54
-rw-r--r--Master/tlpkg/tlperl/lib/mro.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ok.pm47
-rw-r--r--Master/tlpkg/tlperl/lib/overload.pm42
-rw-r--r--Master/tlpkg/tlperl/lib/overload/numbers.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/parent.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/perl5db.pl92
-rw-r--r--Master/tlpkg/tlperl/lib/perlfaq.pm9
-rw-r--r--Master/tlpkg/tlperl/lib/perllocal.pod110
-rw-r--r--Master/tlpkg/tlperl/lib/re.pm137
-rw-r--r--Master/tlpkg/tlperl/lib/sigtrap.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/strict.pm65
-rw-r--r--Master/tlpkg/tlperl/lib/threads.pm7
-rw-r--r--Master/tlpkg/tlperl/lib/threads/shared.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/Blocks.txt42
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/CombiningClass.pl35
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/Decomposition.pl15
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/Heavy.pl5101
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/Name.pl2836
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/Name.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/NamedSequences.txt50
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/SpecialCasing.txt52
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Age.pl143
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Bc.pl118
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Bmg.pl5
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Bpb.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Bpt.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Cf.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Digit.pl85
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Ea.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Fold.pl54
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/GCB.pl78
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Gc.pl288
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Hst.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Isc.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Jg.pl36
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Jt.pl92
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Lb.pl266
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Lc.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Lower.pl54
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/NFCQC.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/NFDQC.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl64
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Na1.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/NameAlia.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Nt.pl25
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Nv.pl85
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/SB.pl180
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Sc.pl202
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Scx.pl209
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Tc.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Title.pl54
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Uc.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Upper.pl54
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/WB.pl138
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/UCD.pl728
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl286
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl296
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl176
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl166
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl84
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl90
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl52
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl94
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl34
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl30
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl40
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl34
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl40
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl40
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl30
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl24
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl16
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl16
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl50
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl18
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl48
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl94
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl48
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl76
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl284
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl286
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl142
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl34
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl120
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl34
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl72
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl50
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl84
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl44
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl36
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl38
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl100
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl96
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl306
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Hyphen/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl190
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl144
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl1234
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl6
-rw-r--r--[-rwxr-xr-x]Master/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl (renamed from Master/tlpkg/tlperl/lib/unicore/lib/Perl/_XSpecia.pl)48
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl36
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl42
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl86
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl104
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/LOE/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl216
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl32
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl70
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl54
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl284
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl36
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/NChar/Y.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl16
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl16
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl16
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl16
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl44
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl30
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl36
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl16
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl32
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl32
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl10
-rw-r--r--[-rwxr-xr-x]Master/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl (renamed from Master/tlpkg/tlperl/lib/unicore/lib/Perl/_XRegula.pl)85
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl34
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl34
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/PatWS/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl186
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl286
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl286
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl286
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl (renamed from Master/tlpkg/tlperl/lib/unicore/lib/Space/Y.pl)2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl (renamed from Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lt.pl)2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl196
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl36
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl30
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl190
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl142
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl190
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl144
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/_XExtend.pl428
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl72
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl124
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl36
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl32
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl40
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl220
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl32
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl14
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Armn.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl4
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Cham.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl24
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Ethi.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl42
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Hebr.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hmng.pl24
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Khar.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Khmr.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl4
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Lana.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Lao.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl18
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl8
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Talu.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl8
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Tibt.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl14
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl100
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Zzzz.pl286
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl24
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl44
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl44
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl26
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl38
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl42
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl48
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl42
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl92
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl38
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl40
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl142
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl202
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl190
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl144
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/version2
-rw-r--r--Master/tlpkg/tlperl/lib/utf8.pm57
-rw-r--r--Master/tlpkg/tlperl/lib/utf8_heavy.pl19
-rw-r--r--Master/tlpkg/tlperl/lib/warnings.pm1015
-rw-r--r--Master/tlpkg/tlperl/lib/warnings/register.pm41
1944 files changed, 217538 insertions, 296616 deletions
diff --git a/Master/tlpkg/tlperl/lib/.packlist b/Master/tlpkg/tlperl/lib/.packlist
index 56a724340bb..9fef71a9853 100644
--- a/Master/tlpkg/tlperl/lib/.packlist
+++ b/Master/tlpkg/tlperl/lib/.packlist
@@ -1,18 +1,16 @@
-c:\tlperl\bin/a2p.exe type=file
c:\tlperl\bin/c2ph.bat type=file
-c:\tlperl\bin/config_data.bat type=file
c:\tlperl\bin/corelist.bat type=file
c:\tlperl\bin/cpan.bat type=file
c:\tlperl\bin/enc2xs.bat type=file
-c:\tlperl\bin/find2perl.bat type=file
+c:\tlperl\bin/encguess.bat type=file
c:\tlperl\bin/h2ph.bat type=file
c:\tlperl\bin/h2xs.bat type=file
c:\tlperl\bin/instmodsh.bat type=file
c:\tlperl\bin/json_pp.bat type=file
c:\tlperl\bin/libnetcfg.bat type=file
-c:\tlperl\bin/perl.exe from=c:\tlperl\bin/perl5.20.2.exe type=link
-c:\tlperl\bin/perl5.20.2.exe type=file
-c:\tlperl\bin/perl520.dll type=file
+c:\tlperl\bin/perl.exe from=c:\tlperl\bin/perl5.22.1.exe type=link
+c:\tlperl\bin/perl5.22.1.exe type=file
+c:\tlperl\bin/perl522.dll type=file
c:\tlperl\bin/perlbug.bat type=file
c:\tlperl\bin/perldoc.bat type=file
c:\tlperl\bin/perlivp.bat type=file
@@ -26,12 +24,10 @@ c:\tlperl\bin/pod2usage.bat type=file
c:\tlperl\bin/podchecker.bat type=file
c:\tlperl\bin/podselect.bat type=file
c:\tlperl\bin/prove.bat type=file
-c:\tlperl\bin/psed.bat from=c:\tlperl\bin/s2p.bat type=link
c:\tlperl\bin/pstruct.bat from=c:\tlperl\bin/c2ph.bat type=link
c:\tlperl\bin/ptar.bat type=file
c:\tlperl\bin/ptardiff.bat type=file
c:\tlperl\bin/ptargrep.bat type=file
-c:\tlperl\bin/s2p.bat type=file
c:\tlperl\bin/shasum.bat type=file
c:\tlperl\bin/splain.bat type=file
c:\tlperl\bin/xsubpp.bat type=file
@@ -52,19 +48,11 @@ c:\tlperl\lib/B.pm type=file
c:\tlperl\lib/B/Concise.pm type=file
c:\tlperl\lib/B/Debug.pm type=file
c:\tlperl\lib/B/Deparse.pm type=file
+c:\tlperl\lib/B/Op_private.pm type=file
c:\tlperl\lib/B/Showlex.pm type=file
c:\tlperl\lib/B/Terse.pm type=file
c:\tlperl\lib/B/Xref.pm type=file
c:\tlperl\lib/Benchmark.pm type=file
-c:\tlperl\lib/CGI.pm type=file
-c:\tlperl\lib/CGI/Apache.pm type=file
-c:\tlperl\lib/CGI/Carp.pm type=file
-c:\tlperl\lib/CGI/Cookie.pm type=file
-c:\tlperl\lib/CGI/Fast.pm type=file
-c:\tlperl\lib/CGI/Pretty.pm type=file
-c:\tlperl\lib/CGI/Push.pm type=file
-c:\tlperl\lib/CGI/Switch.pm type=file
-c:\tlperl\lib/CGI/Util.pm type=file
c:\tlperl\lib/CORE.pod type=file
c:\tlperl\lib/CORE/EXTERN.h type=file
c:\tlperl\lib/CORE/INTERN.h type=file
@@ -78,6 +66,7 @@ c:\tlperl\lib/CORE/cop.h type=file
c:\tlperl\lib/CORE/cv.h type=file
c:\tlperl\lib/CORE/dirent.h type=file
c:\tlperl\lib/CORE/dosish.h type=file
+c:\tlperl\lib/CORE/ebcdic_tables.h type=file
c:\tlperl\lib/CORE/embed.h type=file
c:\tlperl\lib/CORE/embedvar.h type=file
c:\tlperl\lib/CORE/fakesdio.h type=file
@@ -93,7 +82,7 @@ c:\tlperl\lib/CORE/intrpvar.h type=file
c:\tlperl\lib/CORE/iperlsys.h type=file
c:\tlperl\lib/CORE/keywords.h type=file
c:\tlperl\lib/CORE/l1_char_class_tab.h type=file
-c:\tlperl\lib/CORE/libperl520.a type=file
+c:\tlperl\lib/CORE/libperl522.a type=file
c:\tlperl\lib/CORE/malloc_ctl.h type=file
c:\tlperl\lib/CORE/metaconfig.h type=file
c:\tlperl\lib/CORE/mg.h type=file
@@ -181,6 +170,12 @@ c:\tlperl\lib/CPAN/Meta.pm type=file
c:\tlperl\lib/CPAN/Meta/Converter.pm type=file
c:\tlperl\lib/CPAN/Meta/Feature.pm type=file
c:\tlperl\lib/CPAN/Meta/History.pm type=file
+c:\tlperl\lib/CPAN/Meta/History/Meta_1_0.pod type=file
+c:\tlperl\lib/CPAN/Meta/History/Meta_1_1.pod type=file
+c:\tlperl\lib/CPAN/Meta/History/Meta_1_2.pod type=file
+c:\tlperl\lib/CPAN/Meta/History/Meta_1_3.pod type=file
+c:\tlperl\lib/CPAN/Meta/History/Meta_1_4.pod type=file
+c:\tlperl\lib/CPAN/Meta/Merge.pm type=file
c:\tlperl\lib/CPAN/Meta/Prereqs.pm type=file
c:\tlperl\lib/CPAN/Meta/Requirements.pm type=file
c:\tlperl\lib/CPAN/Meta/Spec.pm type=file
@@ -189,6 +184,8 @@ c:\tlperl\lib/CPAN/Meta/YAML.pm type=file
c:\tlperl\lib/CPAN/Mirrors.pm type=file
c:\tlperl\lib/CPAN/Module.pm type=file
c:\tlperl\lib/CPAN/Nox.pm type=file
+c:\tlperl\lib/CPAN/Plugin.pm type=file
+c:\tlperl\lib/CPAN/Plugin/Specfile.pm type=file
c:\tlperl\lib/CPAN/Prompt.pm type=file
c:\tlperl\lib/CPAN/Queue.pm type=file
c:\tlperl\lib/CPAN/Shell.pm type=file
@@ -313,7 +310,11 @@ c:\tlperl\lib/ExtUtils/MY.pm type=file
c:\tlperl\lib/ExtUtils/MakeMaker.pm type=file
c:\tlperl\lib/ExtUtils/MakeMaker/Config.pm type=file
c:\tlperl\lib/ExtUtils/MakeMaker/FAQ.pod type=file
+c:\tlperl\lib/ExtUtils/MakeMaker/Locale.pm type=file
c:\tlperl\lib/ExtUtils/MakeMaker/Tutorial.pod type=file
+c:\tlperl\lib/ExtUtils/MakeMaker/version.pm type=file
+c:\tlperl\lib/ExtUtils/MakeMaker/version/regex.pm type=file
+c:\tlperl\lib/ExtUtils/MakeMaker/version/vpp.pm type=file
c:\tlperl\lib/ExtUtils/Manifest.pm type=file
c:\tlperl\lib/ExtUtils/Miniperl.pm type=file
c:\tlperl\lib/ExtUtils/Mkbootstrap.pm type=file
@@ -484,32 +485,6 @@ c:\tlperl\lib/Memoize/ExpireTest.pm type=file
c:\tlperl\lib/Memoize/NDBM_File.pm type=file
c:\tlperl\lib/Memoize/SDBM_File.pm type=file
c:\tlperl\lib/Memoize/Storable.pm type=file
-c:\tlperl\lib/Module/Build.pm type=file
-c:\tlperl\lib/Module/Build/API.pod type=file
-c:\tlperl\lib/Module/Build/Authoring.pod type=file
-c:\tlperl\lib/Module/Build/Base.pm type=file
-c:\tlperl\lib/Module/Build/Bundling.pod type=file
-c:\tlperl\lib/Module/Build/Compat.pm type=file
-c:\tlperl\lib/Module/Build/Config.pm type=file
-c:\tlperl\lib/Module/Build/ConfigData.pm type=file
-c:\tlperl\lib/Module/Build/Cookbook.pm type=file
-c:\tlperl\lib/Module/Build/Dumper.pm type=file
-c:\tlperl\lib/Module/Build/ModuleInfo.pm type=file
-c:\tlperl\lib/Module/Build/Notes.pm type=file
-c:\tlperl\lib/Module/Build/PPMMaker.pm type=file
-c:\tlperl\lib/Module/Build/Platform/Default.pm type=file
-c:\tlperl\lib/Module/Build/Platform/MacOS.pm type=file
-c:\tlperl\lib/Module/Build/Platform/Unix.pm type=file
-c:\tlperl\lib/Module/Build/Platform/VMS.pm type=file
-c:\tlperl\lib/Module/Build/Platform/VOS.pm type=file
-c:\tlperl\lib/Module/Build/Platform/Windows.pm type=file
-c:\tlperl\lib/Module/Build/Platform/aix.pm type=file
-c:\tlperl\lib/Module/Build/Platform/cygwin.pm type=file
-c:\tlperl\lib/Module/Build/Platform/darwin.pm type=file
-c:\tlperl\lib/Module/Build/Platform/os2.pm type=file
-c:\tlperl\lib/Module/Build/PodParser.pm type=file
-c:\tlperl\lib/Module/Build/Version.pm type=file
-c:\tlperl\lib/Module/Build/YAML.pm type=file
c:\tlperl\lib/Module/CoreList.pm type=file
c:\tlperl\lib/Module/CoreList.pod type=file
c:\tlperl\lib/Module/CoreList/TieHashDelta.pm type=file
@@ -543,7 +518,6 @@ c:\tlperl\lib/O.pm type=file
c:\tlperl\lib/Opcode.pm type=file
c:\tlperl\lib/POSIX.pm type=file
c:\tlperl\lib/POSIX.pod type=file
-c:\tlperl\lib/Package/Constants.pm type=file
c:\tlperl\lib/Params/Check.pm type=file
c:\tlperl\lib/Parse/CPAN/Meta.pm type=file
c:\tlperl\lib/Perl/OSType.pm type=file
@@ -621,6 +595,7 @@ c:\tlperl\lib/SelectSaver.pm type=file
c:\tlperl\lib/SelfLoader.pm type=file
c:\tlperl\lib/Socket.pm type=file
c:\tlperl\lib/Storable.pm type=file
+c:\tlperl\lib/Sub/Util.pm type=file
c:\tlperl\lib/Symbol.pm type=file
c:\tlperl\lib/Sys/Hostname.pm type=file
c:\tlperl\lib/TAP/Base.pm type=file
@@ -673,13 +648,19 @@ c:\tlperl\lib/Term/Complete.pm type=file
c:\tlperl\lib/Term/ReadLine.pm type=file
c:\tlperl\lib/Test.pm type=file
c:\tlperl\lib/Test/Builder.pm type=file
+c:\tlperl\lib/Test/Builder/IO/Scalar.pm type=file
c:\tlperl\lib/Test/Builder/Module.pm type=file
c:\tlperl\lib/Test/Builder/Tester.pm type=file
c:\tlperl\lib/Test/Builder/Tester/Color.pm type=file
c:\tlperl\lib/Test/Harness.pm type=file
c:\tlperl\lib/Test/More.pm type=file
c:\tlperl\lib/Test/Simple.pm type=file
+c:\tlperl\lib/Test/Tester.pm type=file
+c:\tlperl\lib/Test/Tester/Capture.pm type=file
+c:\tlperl\lib/Test/Tester/CaptureRunner.pm type=file
+c:\tlperl\lib/Test/Tester/Delegate.pm type=file
c:\tlperl\lib/Test/Tutorial.pod type=file
+c:\tlperl\lib/Test/use/ok.pm type=file
c:\tlperl\lib/Text/Abbrev.pm type=file
c:\tlperl\lib/Text/Balanced.pm type=file
c:\tlperl\lib/Text/ParseWords.pm type=file
@@ -853,7 +834,6 @@ c:\tlperl\lib/auto/Tie/Hash/NamedCapture/NamedCapture.dll type=file
c:\tlperl\lib/auto/Time/HiRes/HiRes.dll type=file
c:\tlperl\lib/auto/Time/Piece/Piece.dll type=file
c:\tlperl\lib/auto/Unicode/Collate/Collate.dll type=file
-c:\tlperl\lib/auto/Unicode/Normalize/Normalize.dll type=file
c:\tlperl\lib/auto/Win32/Win32.dll type=file
c:\tlperl\lib/auto/Win32API/File/File.dll type=file
c:\tlperl\lib/auto/Win32CORE/extralibs.ld type=file
@@ -861,10 +841,12 @@ c:\tlperl\lib/auto/arybase/arybase.dll type=file
c:\tlperl\lib/auto/attributes/attributes.dll type=file
c:\tlperl\lib/auto/mro/mro.dll type=file
c:\tlperl\lib/auto/re/re.dll type=file
-c:\tlperl\lib/auto/sdbm/extralibs.ld type=file
c:\tlperl\lib/auto/threads/shared/shared.dll type=file
c:\tlperl\lib/auto/threads/threads.dll type=file
c:\tlperl\lib/autodie.pm type=file
+c:\tlperl\lib/autodie/Scope/Guard.pm type=file
+c:\tlperl\lib/autodie/Scope/GuardStack.pm type=file
+c:\tlperl\lib/autodie/ScopeUtil.pm type=file
c:\tlperl\lib/autodie/exception.pm type=file
c:\tlperl\lib/autodie/exception/system.pm type=file
c:\tlperl\lib/autodie/hints.pm type=file
@@ -889,13 +871,13 @@ c:\tlperl\lib/feature.pm type=file
c:\tlperl\lib/fields.pm type=file
c:\tlperl\lib/filetest.pm type=file
c:\tlperl\lib/if.pm type=file
-c:\tlperl\lib/inc/latest.pm type=file
-c:\tlperl\lib/inc/latest/private.pm type=file
c:\tlperl\lib/integer.pm type=file
c:\tlperl\lib/less.pm type=file
c:\tlperl\lib/lib.pm type=file
c:\tlperl\lib/locale.pm type=file
+c:\tlperl\lib/meta_notation.pm type=file
c:\tlperl\lib/mro.pm type=file
+c:\tlperl\lib/ok.pm type=file
c:\tlperl\lib/open.pm type=file
c:\tlperl\lib/ops.pm type=file
c:\tlperl\lib/overload.pm type=file
@@ -904,7 +886,6 @@ c:\tlperl\lib/overloading.pm type=file
c:\tlperl\lib/parent.pm type=file
c:\tlperl\lib/perl5db.pl type=file
c:\tlperl\lib/perlfaq.pm type=file
-c:\tlperl\lib/pods/a2p.pod type=file
c:\tlperl\lib/pods/perl.pod type=file
c:\tlperl\lib/pods/perl5004delta.pod type=file
c:\tlperl\lib/pods/perl5005delta.pod type=file
@@ -932,6 +913,9 @@ c:\tlperl\lib/pods/perl5184delta.pod type=file
c:\tlperl\lib/pods/perl5200delta.pod type=file
c:\tlperl\lib/pods/perl5201delta.pod type=file
c:\tlperl\lib/pods/perl5202delta.pod type=file
+c:\tlperl\lib/pods/perl5203delta.pod type=file
+c:\tlperl\lib/pods/perl5220delta.pod type=file
+c:\tlperl\lib/pods/perl5221delta.pod type=file
c:\tlperl\lib/pods/perl561delta.pod type=file
c:\tlperl\lib/pods/perl56delta.pod type=file
c:\tlperl\lib/pods/perl581delta.pod type=file
@@ -1150,6 +1134,7 @@ c:\tlperl\lib/unicore/lib/Age/V51.pl type=file
c:\tlperl\lib/unicore/lib/Age/V52.pl type=file
c:\tlperl\lib/unicore/lib/Age/V60.pl type=file
c:\tlperl\lib/unicore/lib/Age/V61.pl type=file
+c:\tlperl\lib/unicore/lib/Age/V70.pl type=file
c:\tlperl\lib/unicore/lib/Alpha/Y.pl type=file
c:\tlperl\lib/unicore/lib/Bc/AL.pl type=file
c:\tlperl\lib/unicore/lib/Bc/AN.pl type=file
@@ -1228,7 +1213,6 @@ c:\tlperl\lib/unicore/lib/Gc/LC.pl type=file
c:\tlperl\lib/unicore/lib/Gc/Ll.pl type=file
c:\tlperl\lib/unicore/lib/Gc/Lm.pl type=file
c:\tlperl\lib/unicore/lib/Gc/Lo.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Lt.pl type=file
c:\tlperl\lib/unicore/lib/Gc/Lu.pl type=file
c:\tlperl\lib/unicore/lib/Gc/M.pl type=file
c:\tlperl\lib/unicore/lib/Gc/Mc.pl type=file
@@ -1273,6 +1257,7 @@ c:\tlperl\lib/unicore/lib/In/6_0.pl type=file
c:\tlperl\lib/unicore/lib/In/6_1.pl type=file
c:\tlperl\lib/unicore/lib/In/6_2.pl type=file
c:\tlperl\lib/unicore/lib/In/6_3.pl type=file
+c:\tlperl\lib/unicore/lib/In/7_0.pl type=file
c:\tlperl\lib/unicore/lib/Jg/Ain.pl type=file
c:\tlperl\lib/unicore/lib/Jg/Alef.pl type=file
c:\tlperl\lib/unicore/lib/Jg/Beh.pl type=file
@@ -1285,6 +1270,7 @@ c:\tlperl\lib/unicore/lib/Jg/Lam.pl type=file
c:\tlperl\lib/unicore/lib/Jg/NoJoinin.pl type=file
c:\tlperl\lib/unicore/lib/Jg/Qaf.pl type=file
c:\tlperl\lib/unicore/lib/Jg/Reh.pl type=file
+c:\tlperl\lib/unicore/lib/Jg/Sad.pl type=file
c:\tlperl\lib/unicore/lib/Jg/Seen.pl type=file
c:\tlperl\lib/unicore/lib/Jg/Waw.pl type=file
c:\tlperl\lib/unicore/lib/Jg/Yeh.pl type=file
@@ -1350,6 +1336,7 @@ c:\tlperl\lib/unicore/lib/Nv/20.pl type=file
c:\tlperl\lib/unicore/lib/Nv/2_3.pl type=file
c:\tlperl\lib/unicore/lib/Nv/3.pl type=file
c:\tlperl\lib/unicore/lib/Nv/30.pl type=file
+c:\tlperl\lib/unicore/lib/Nv/300.pl type=file
c:\tlperl\lib/unicore/lib/Nv/3_4.pl type=file
c:\tlperl\lib/unicore/lib/Nv/4.pl type=file
c:\tlperl\lib/unicore/lib/Nv/40.pl type=file
@@ -1366,6 +1353,7 @@ c:\tlperl\lib/unicore/lib/Nv/8.pl type=file
c:\tlperl\lib/unicore/lib/Nv/80.pl type=file
c:\tlperl\lib/unicore/lib/Nv/9.pl type=file
c:\tlperl\lib/unicore/lib/Nv/90.pl type=file
+c:\tlperl\lib/unicore/lib/Nv/900.pl type=file
c:\tlperl\lib/unicore/lib/PatSyn/Y.pl type=file
c:\tlperl\lib/unicore/lib/PatWS/Y.pl type=file
c:\tlperl\lib/unicore/lib/Perl/Alnum.pl type=file
@@ -1375,6 +1363,8 @@ c:\tlperl\lib/unicore/lib/Perl/Graph.pl type=file
c:\tlperl\lib/unicore/lib/Perl/PerlWord.pl type=file
c:\tlperl\lib/unicore/lib/Perl/PosixPun.pl type=file
c:\tlperl\lib/unicore/lib/Perl/Print.pl type=file
+c:\tlperl\lib/unicore/lib/Perl/SpacePer.pl type=file
+c:\tlperl\lib/unicore/lib/Perl/Title.pl type=file
c:\tlperl\lib/unicore/lib/Perl/Word.pl type=file
c:\tlperl\lib/unicore/lib/Perl/XPosixPu.pl type=file
c:\tlperl\lib/unicore/lib/Perl/_PerlAny.pl type=file
@@ -1386,9 +1376,6 @@ c:\tlperl\lib/unicore/lib/Perl/_PerlIDS.pl type=file
c:\tlperl\lib/unicore/lib/Perl/_PerlPr2.pl type=file
c:\tlperl\lib/unicore/lib/Perl/_PerlPro.pl type=file
c:\tlperl\lib/unicore/lib/Perl/_PerlQuo.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_XExtend.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_XRegula.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_XSpecia.pl type=file
c:\tlperl\lib/unicore/lib/QMark/Y.pl type=file
c:\tlperl\lib/unicore/lib/SB/AT.pl type=file
c:\tlperl\lib/unicore/lib/SB/CL.pl type=file
@@ -1411,8 +1398,10 @@ c:\tlperl\lib/unicore/lib/Sc/Cham.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Cprt.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Cyrl.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Deva.pl type=file
+c:\tlperl\lib/unicore/lib/Sc/Dupl.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Ethi.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Geor.pl type=file
+c:\tlperl\lib/unicore/lib/Sc/Gran.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Grek.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Gujr.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Guru.pl type=file
@@ -1420,6 +1409,7 @@ c:\tlperl\lib/unicore/lib/Sc/Han.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Hang.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Hebr.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Hira.pl type=file
+c:\tlperl\lib/unicore/lib/Sc/Hmng.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Kana.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Khar.pl type=file
c:\tlperl\lib/unicore/lib/Sc/Khmr.pl type=file
@@ -1445,10 +1435,13 @@ c:\tlperl\lib/unicore/lib/Scx/Armn.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Beng.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Bopo.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Cakm.pl type=file
+c:\tlperl\lib/unicore/lib/Scx/Copt.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Cprt.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Cyrl.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Deva.pl type=file
+c:\tlperl\lib/unicore/lib/Scx/Dupl.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Geor.pl type=file
+c:\tlperl\lib/unicore/lib/Scx/Gran.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Grek.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Gujr.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Guru.pl type=file
@@ -1456,18 +1449,27 @@ c:\tlperl\lib/unicore/lib/Scx/Han.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Hang.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Hira.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Kana.pl type=file
+c:\tlperl\lib/unicore/lib/Scx/Knda.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Latn.pl type=file
+c:\tlperl\lib/unicore/lib/Scx/Limb.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Linb.pl type=file
+c:\tlperl\lib/unicore/lib/Scx/Mlym.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Mong.pl type=file
+c:\tlperl\lib/unicore/lib/Scx/Mymr.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Orya.pl type=file
+c:\tlperl\lib/unicore/lib/Scx/Phlp.pl type=file
+c:\tlperl\lib/unicore/lib/Scx/Sind.pl type=file
+c:\tlperl\lib/unicore/lib/Scx/Sinh.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Syrc.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Tagb.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Takr.pl type=file
+c:\tlperl\lib/unicore/lib/Scx/Taml.pl type=file
+c:\tlperl\lib/unicore/lib/Scx/Telu.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Thaa.pl type=file
+c:\tlperl\lib/unicore/lib/Scx/Tirh.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Yi.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Zinh.pl type=file
c:\tlperl\lib/unicore/lib/Scx/Zyyy.pl type=file
-c:\tlperl\lib/unicore/lib/Space/Y.pl type=file
c:\tlperl\lib/unicore/lib/Term/Y.pl type=file
c:\tlperl\lib/unicore/lib/UIdeo/Y.pl type=file
c:\tlperl\lib/unicore/lib/Upper/Y.pl type=file
diff --git a/Master/tlpkg/tlperl/lib/App/Cpan.pm b/Master/tlpkg/tlperl/lib/App/Cpan.pm
index b548bcc0ae6..e8c9bb78eea 100644
--- a/Master/tlpkg/tlperl/lib/App/Cpan.pm
+++ b/Master/tlpkg/tlperl/lib/App/Cpan.pm
@@ -4,9 +4,9 @@ use strict;
use warnings;
use vars qw($VERSION);
-use if $] < 5.008 => "IO::Scalar";
+use if $] < 5.008 => 'IO::Scalar';
-$VERSION = '1.62';
+$VERSION = '1.63';
=head1 NAME
@@ -23,6 +23,9 @@ App::Cpan - easily interact with CPAN from the command line
# 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
cpan .
@@ -135,6 +138,11 @@ 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)
@@ -145,11 +153,12 @@ 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
@@ -208,6 +217,51 @@ and tells you about problems you might have.
# force install modules ( must use -i )
cpan -fi CGI::Minimal URI
+ # install modules but without testing them
+ cpan -Ti CGI::Minimal URI
+
+=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,
+while others matter to the levels above them. Some of these are specified
+by the Perl Toolchain Gang:
+
+Lancaster Concensus: L<https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/lancaster-consensus.md>
+
+Oslo Concensus: L<https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/oslo-consensus.md>
+
+=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
+
+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
+
+The log level to use, with either the embedded, minimal logger or
+L<Log::Log4perl> if it is installed. Possible values are the same as
+the C<Log::Log4perl> levels: C<TRACE>, C<DEBUG>, C<INFO>, C<WARN>,
+C<ERROR>, and C<FATAL>. The default is C<INFO>.
+
+=item GIT_COMMAND
+
+The path to the C<git> binary to use for the Git features. The default
+is C</usr/local/bin/git>.
+
+=back
=head2 Methods
@@ -216,7 +270,7 @@ and tells you about problems you might have.
=cut
use autouse Carp => qw(carp croak cluck);
-use CPAN ();
+use CPAN 1.80 (); # needs no test
use Config;
use autouse Cwd => qw(cwd);
use autouse 'Data::Dumper' => qw(Dumper);
@@ -245,7 +299,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 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 T);
$Default = 'default';
@@ -257,6 +311,7 @@ $Default = 'default';
'm' => 'make',
't' => 'test',
'u' => 'upgrade',
+ 'T' => 'notest',
);
@CPAN_OPTIONS = grep { $_ ne $Default } sort keys %CPAN_METHODS;
@@ -283,8 +338,9 @@ sub GOOD_EXIT () { 0 }
J => [ \&_dump_config, NO_ARGS, GOOD_EXIT, 'Dump configuration to stdout' ],
F => [ \&_lock_lobotomy, NO_ARGS, GOOD_EXIT, 'Turn off CPAN.pm lock files' ],
I => [ \&_load_local_lib, NO_ARGS, GOOD_EXIT, 'Loading local::lib' ],
+ M => [ \&_use_these_mirrors, ARGS, GOOD_EXIT, 'Setting per session mirrors' ],
+ P => [ \&_find_good_mirrors, NO_ARGS, GOOD_EXIT, 'Finding good mirrors' ],
w => [ \&_turn_on_warnings, NO_ARGS, GOOD_EXIT, 'Turning on warnings' ],
- T => [ \&_turn_off_testing, NO_ARGS, GOOD_EXIT, 'Turning off testing' ],
# options that do their one thing
g => [ \&_download, NO_ARGS, GOOD_EXIT, 'Download the latest distro' ],
@@ -299,7 +355,6 @@ sub GOOD_EXIT () { 0 }
L => [ \&_show_author_mods, ARGS, GOOD_EXIT, 'Showing author mods' ],
a => [ \&_create_autobundle, NO_ARGS, GOOD_EXIT, 'Creating autobundle' ],
p => [ \&_ping_mirrors, NO_ARGS, GOOD_EXIT, 'Pinging mirrors' ],
- P => [ \&_find_good_mirrors, NO_ARGS, GOOD_EXIT, 'Finding good mirrors' ],
r => [ \&_recompile, NO_ARGS, GOOD_EXIT, 'Recompiling' ],
u => [ \&_upgrade, NO_ARGS, GOOD_EXIT, 'Running `make test`' ],
@@ -309,6 +364,7 @@ sub GOOD_EXIT () { 0 }
i => [ \&_default, ARGS, GOOD_EXIT, 'Running `make install`' ],
'm' => [ \&_default, ARGS, GOOD_EXIT, 'Running `make`' ],
t => [ \&_default, ARGS, GOOD_EXIT, 'Running `make test`' ],
+ T => [ \&_default, ARGS, GOOD_EXIT, 'Installing with notest' ],
);
%Method_table_index = (
@@ -364,7 +420,9 @@ sub _process_setup_options
);
}
- foreach my $o ( qw(F I w T) )
+ $class->_turn_off_testing if $options->{T};
+
+ foreach my $o ( qw(F I w P M) )
{
next unless exists $options->{$o};
$Method_table{$o}[ $Method_table_index{code} ]->( $options->{$o} );
@@ -385,13 +443,25 @@ sub _process_setup_options
my $option_count = grep { $options->{$_} } @option_order;
no warnings 'uninitialized';
- $option_count -= $options->{'f'}; # don't count force
+
+ # don't count options that imply installation
+ foreach my $opt ( qw(f T) ) { # don't count force or notest
+ $option_count -= $options->{$opt};
+ }
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# if there are no options, set -i (this line fixes RT ticket 16915)
$options->{i}++ unless $option_count;
}
+sub _setup_environment {
+# should we override or set defaults? If this were a true interactive
+# session, we'd be in the CPAN shell.
+
+# https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/lancaster-consensus.md
+ $ENV{NONINTERACTIVE_TESTING} = 1 unless defined $ENV{NONINTERACTIVE_TESTING};
+ $ENV{PERL_MM_USE_DEFAULT} = 1 unless defined $ENV{PERL_MM_USE_DEFAULT};
+ }
=item run()
@@ -424,13 +494,15 @@ sub run
$class->_process_setup_options( $options );
+ $class->_setup_environment( $options );
+
OPTION: foreach my $option ( @option_order )
{
next unless $options->{$option};
my( $sub, $takes_args, $description ) =
map { $Method_table{$option}[ $Method_table_index{$_} ] }
- qw( code takes_args );
+ qw( code takes_args description );
unless( ref $sub eq ref sub {} )
{
@@ -464,6 +536,7 @@ sub _init_logger
unless( $log4perl_loaded )
{
+ print "Loading internal null logger. Install Log::Log4perl for logging messages\n";
$logger = Local::Null::Logger->new;
return $logger;
}
@@ -494,7 +567,7 @@ sub _default
# we'll deal with 'f' (force) later, so skip it
foreach my $option ( @CPAN_OPTIONS )
{
- next if $option eq 'f';
+ next if ( $option eq 'f' or $option eq 'T' );
next unless $options->{$option};
$switch = $option;
last;
@@ -512,24 +585,30 @@ sub _default
my $method = $CPAN_METHODS{$switch};
die "CPAN.pm cannot $method!\n" unless CPAN::Shell->can( $method );
- # call the CPAN::Shell method, with force if specified
+ # call the CPAN::Shell method, with force or notest if specified
my $action = do {
- if( $options->{f} ) { sub { CPAN::Shell->force( $method, @_ ) } }
- else { sub { CPAN::Shell->$method( @_ ) } }
+ if( $options->{f} ) { sub { CPAN::Shell->force( $method, @_ ) } }
+ elsif( $options->{T} ) { sub { CPAN::Shell->notest( $method, @_ ) } }
+ else { sub { CPAN::Shell->$method( @_ ) } }
};
# How do I handle exit codes for multiple arguments?
- my $errors = 0;
+ my @errors = ();
foreach my $arg ( @$args )
{
_clear_cpanpm_output();
$action->( $arg );
- $errors += defined _cpanpm_output_indicates_failure();
+ my $error = _cpanpm_output_indicates_failure();
+ push @errors, $error if $error;
}
- $errors ? I_DONT_KNOW_WHAT_HAPPENED : HEY_IT_WORKED;
+ return do {
+ if( @errors ) { $errors[0] }
+ else { HEY_IT_WORKED }
+ };
+
}
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
@@ -571,21 +650,32 @@ sub _clear_cpanpm_output { $scalar = '' }
sub _get_cpanpm_output { $scalar }
+# These are lines I don't care about in CPAN.pm output. If I can
+# filter out the informational noise, I have a better chance to
+# catch the error signal
my @skip_lines = (
qr/^\QWarning \(usually harmless\)/,
qr/\bwill not store persistent state\b/,
qr(//hint//),
qr/^\s+reports\s+/,
+ qr/^Try the command/,
+ qr/^\s+$/,
+ qr/^to find objects/,
+ qr/^\s*Database was generated on/,
+ qr/^Going to read/,
+ qr|^\s+i\s+/|, # the i /Foo::Whatever/ line when it doesn't know
);
sub _get_cpanpm_last_line
{
my $fh;
- if ($] < 5.008) {
- $fh = IO::Scalar->new(\ $scalar);
- } else {
- eval q{open $fh, "<", \\ $scalar;};
- }
+
+ if( $] < 5.008 ) {
+ $fh = IO::Scalar->new( \ $scalar );
+ }
+ else {
+ eval q{ open $fh, '<', \\ $scalar; };
+ }
my @lines = <$fh>;
@@ -611,13 +701,16 @@ sub _get_cpanpm_last_line
BEGIN {
my $epic_fail_words = join '|',
- qw( Error stop(?:ping)? problems force not unsupported fail(?:ed)? );
+ qw( Error stop(?:ping)? problems force not unsupported
+ fail(?:ed)? Cannot\s+install );
sub _cpanpm_output_indicates_failure
{
my $last_line = _get_cpanpm_last_line();
my $result = $last_line =~ /\b(?:$epic_fail_words)\b/i;
+ return A_MODULE_FAILED_TO_INSTALL if $last_line =~ /\b(?:Cannot\s+install)\b/i;
+
$result || ();
}
}
@@ -817,7 +910,6 @@ sub _is_pingable_scheme {
sub _find_good_mirrors {
require CPAN::Mirrors;
- my $mirrors = CPAN::Mirrors->new;
my $file = do {
my $file = 'MIRRORED.BY';
my $local_path = File::Spec->catfile(
@@ -830,11 +922,10 @@ sub _find_good_mirrors {
$local_path;
}
};
-
- $mirrors->parse_mirrored_by( $file );
+ my $mirrors = CPAN::Mirrors->new( $file );
my @mirrors = $mirrors->best_mirrors(
- how_many => 3,
+ how_many => 5,
verbose => 1,
);
@@ -843,6 +934,9 @@ sub _find_good_mirrors {
_print_ping_report( $mirror->http );
}
+ $CPAN::Config->{urllist} = [
+ map { $_->http } @mirrors
+ ];
}
sub _print_inc_dir_report
@@ -859,9 +953,10 @@ sub _print_ping_report
my( $mirror ) = @_;
my $rtt = eval { _get_ping_report( $mirror ) };
+ my $result = $rtt ? sprintf "+ (%4d ms)", $rtt * 1000 : '!';
$logger->info(
- sprintf "\t%s (%4d ms) %s", $rtt ? '+' : '!', $rtt * 1000, $mirror
+ sprintf "\t%s %s", $result, $mirror
);
}
@@ -908,6 +1003,19 @@ sub _load_local_lib # -I
return HEY_IT_WORKED;
}
+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" );
+ }
+
+ $CPAN::Config->{urllist} = [ split /,/, $_[0] ];
+
+ $logger->debug( "Mirrors are @{$CPAN::Config->{urllist}}" );
+
+ }
+
sub _create_autobundle
{
$logger->info(
@@ -1157,9 +1265,9 @@ sub _show_Details
print "$arg\n", "-" x 73, "\n\t";
print join "\n\t",
$module->description ? $module->description : "(no description)",
- $module->cpan_file,
- $module->inst_file,
- 'Installed: ' . $module->inst_version,
+ $module->cpan_file ? $module->cpan_file : "(no cpanfile)",
+ $module->inst_file ? $module->inst_file :"(no installation file)" ,
+ 'Installed: ' . ($module->inst_version ? $module->inst_version : "not installed"),
'CPAN: ' . $module->cpan_version . ' ' .
($module->uptodate ? "" : "Not ") . "up to date",
$author->fullname . " (" . $module->userid . ")",
@@ -1306,7 +1414,7 @@ sub _eval_version
sub _path_to_module
{
my( $inc, $path ) = @_;
- return if length $path< length $inc;
+ return if length $path < length $inc;
my $module_path = substr( $path, length $inc );
$module_path =~ s/\.pm\z//;
@@ -1348,14 +1456,10 @@ correctly if Log4perl is not installed.
* When I capture CPAN.pm output, I need to check for errors and
report them to the user.
-* Support local::lib
-
* Warnings switch
* Check then exit
-* ping mirrors support
-
* no test option
=head1 BUGS
@@ -1364,14 +1468,16 @@ report them to the user.
=head1 SEE ALSO
-Most behaviour, including environment variables and configuration,
-comes directly from CPAN.pm.
+L<CPAN>, L<App::cpanminus>
=head1 SOURCE AVAILABILITY
-This code is in Github:
+This code is in Github in the CPAN.pm repository:
+
+ https://github.com/andk/cpanpm
- git://github.com/briandfoy/cpan_script.git
+The source used to be tracked separately in another GitHub repo,
+but the canonical source is now in the above repo.
=head1 CREDITS
@@ -1391,7 +1497,7 @@ brian d foy, C<< <bdfoy@cpan.org> >>
=head1 COPYRIGHT
-Copyright (c) 2001-2013, brian d foy, All Rights Reserved.
+Copyright (c) 2001-2014, brian d foy, All Rights Reserved.
You may redistribute this under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/App/Prove.pm b/Master/tlpkg/tlperl/lib/App/Prove.pm
index 44aaf6dda30..46089782869 100644
--- a/Master/tlpkg/tlperl/lib/App/Prove.pm
+++ b/Master/tlpkg/tlperl/lib/App/Prove.pm
@@ -3,7 +3,7 @@ package App::Prove;
use strict;
use warnings;
-use TAP::Harness;
+use TAP::Harness::Env;
use Text::ParseWords qw(shellwords);
use File::Spec;
use Getopt::Long;
@@ -18,11 +18,11 @@ App::Prove - Implements the C<prove> command.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
@@ -88,7 +88,6 @@ sub _initialize {
for my $key (@is_array) {
$self->{$key} = [];
}
- $self->{harness_class} = 'TAP::Harness';
for my $attr (@ATTR) {
if ( exists $args->{$attr} ) {
@@ -98,13 +97,6 @@ sub _initialize {
}
}
- my %env_provides_default = (
- HARNESS_TIMER => 'timer',
- );
-
- while ( my ( $env, $attr ) = each %env_provides_default ) {
- $self->{$attr} = 1 if $ENV{$env};
- }
$self->state_class('App::Prove::State');
return $self;
}
@@ -386,8 +378,9 @@ sub _get_args {
}
$args{rules} = { par => [@rules] };
}
+ $args{harness_class} = $self->{harness_class} if $self->{harness_class};
- return ( \%args, $self->{harness_class} );
+ return \%args;
}
sub _find_module {
@@ -533,8 +526,8 @@ sub _get_tests {
}
sub _runtests {
- my ( $self, $args, $harness_class, @tests ) = @_;
- my $harness = $harness_class->new($args);
+ my ( $self, $args, @tests ) = @_;
+ my $harness = TAP::Harness::Env->create($args);
my $state = $self->state_manager;
@@ -573,8 +566,6 @@ sub _get_switches {
push @switches, '-w';
}
- push @switches, shellwords( $ENV{HARNESS_PERL_SWITCHES} ) if defined $ENV{HARNESS_PERL_SWITCHES};
-
return @switches ? \@switches : ();
}
@@ -643,6 +634,7 @@ current Perl.
sub print_version {
my $self = shift;
+ require TAP::Harness;
printf(
"TAP::Harness v%s and Perl v%vd\n",
$TAP::Harness::VERSION, $^V
diff --git a/Master/tlpkg/tlperl/lib/App/Prove/State.pm b/Master/tlpkg/tlperl/lib/App/Prove/State.pm
index 519ba01d6c7..0e237d5fa4d 100644
--- a/Master/tlpkg/tlperl/lib/App/Prove/State.pm
+++ b/Master/tlpkg/tlperl/lib/App/Prove/State.pm
@@ -25,11 +25,11 @@ App::Prove::State - State storage for the C<prove> command.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/App/Prove/State/Result.pm b/Master/tlpkg/tlperl/lib/App/Prove/State/Result.pm
index 8e44ea3a4b1..6725c5a38a5 100644
--- a/Master/tlpkg/tlperl/lib/App/Prove/State/Result.pm
+++ b/Master/tlpkg/tlperl/lib/App/Prove/State/Result.pm
@@ -14,11 +14,11 @@ App::Prove::State::Result - Individual test suite results.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm b/Master/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm
index 21f20a12e61..a776f8ffef0 100644
--- a/Master/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm
+++ b/Master/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm
@@ -9,11 +9,11 @@ App::Prove::State::Result::Test - Individual test results.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/Archive/Tar.pm b/Master/tlpkg/tlperl/lib/Archive/Tar.pm
index 50afbb334b9..1b792df8024 100644
--- a/Master/tlpkg/tlperl/lib/Archive/Tar.pm
+++ b/Master/tlpkg/tlperl/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 = "1.96";
+$VERSION = "2.04";
$CHOWN = 1;
$CHMOD = 1;
$SAME_PERMISSIONS = $> == 0 ? 1 : 0;
@@ -429,12 +429,13 @@ sub _read_tar {
} elsif ($filter && $entry->name !~ $filter) {
$skip = 1;
+ } elsif ($filter_cb && ! $filter_cb->($entry)) {
+ $skip = 2;
+
### skip this entry if it's a pax header. This is a special file added
### by, among others, git-generated tarballs. It holds comments and is
### not meant for extracting. See #38932: pax_global_header extracted
} elsif ( $entry->name eq PAX_HEADER or $entry->type =~ /^(x|g)$/ ) {
- $skip = 2;
- } elsif ($filter_cb && ! $filter_cb->($entry)) {
$skip = 3;
}
@@ -519,13 +520,14 @@ sub _read_tar {
if ($filter && $entry->name !~ $filter) {
next LOOP;
+ } elsif ($filter_cb && ! $filter_cb->($entry)) {
+ next LOOP;
+
### skip this entry if it's a pax header. This is a special file added
### by, among others, git-generated tarballs. It holds comments and is
### not meant for extracting. See #38932: pax_global_header extracted
} elsif ( $entry->name eq PAX_HEADER or $entry->type =~ /^(x|g)$/ ) {
next LOOP;
- } elsif ($filter_cb && ! $filter_cb->($entry)) {
- next LOOP;
}
if ( $extract && !$entry->is_longlink
diff --git a/Master/tlpkg/tlperl/lib/Archive/Tar/Constant.pm b/Master/tlpkg/tlperl/lib/Archive/Tar/Constant.pm
index 957ac278adc..399aaf69707 100644
--- a/Master/tlpkg/tlperl/lib/Archive/Tar/Constant.pm
+++ b/Master/tlpkg/tlperl/lib/Archive/Tar/Constant.pm
@@ -3,7 +3,7 @@ package Archive::Tar::Constant;
BEGIN {
require Exporter;
- $VERSION = '1.96';
+ $VERSION = '2.04';
@ISA = qw[Exporter];
require Time::Local if $^O eq "MacOS";
diff --git a/Master/tlpkg/tlperl/lib/Archive/Tar/File.pm b/Master/tlpkg/tlperl/lib/Archive/Tar/File.pm
index 39fca623fab..3aa1b3cd9ae 100644
--- a/Master/tlpkg/tlperl/lib/Archive/Tar/File.pm
+++ b/Master/tlpkg/tlperl/lib/Archive/Tar/File.pm
@@ -13,7 +13,7 @@ use Archive::Tar::Constant;
use vars qw[@ISA $VERSION];
#@ISA = qw[Archive::Tar];
-$VERSION = '1.96';
+$VERSION = '2.04';
### set value to 1 to oct() it during the unpack ###
diff --git a/Master/tlpkg/tlperl/lib/Attribute/Handlers.pm b/Master/tlpkg/tlperl/lib/Attribute/Handlers.pm
index 4ae65d9edb0..17c4bb78fc2 100644
--- a/Master/tlpkg/tlperl/lib/Attribute/Handlers.pm
+++ b/Master/tlpkg/tlperl/lib/Attribute/Handlers.pm
@@ -4,7 +4,7 @@ use Carp;
use warnings;
use strict;
use vars qw($VERSION $AUTOLOAD);
-$VERSION = '0.96'; # remember to update version in POD!
+$VERSION = '0.97'; # remember to update version in POD!
# $DB::single=1;
my %symcache;
@@ -13,12 +13,16 @@ sub findsym {
return $symcache{$pkg,$ref} if $symcache{$pkg,$ref};
$type ||= ref($ref);
no strict 'refs';
- foreach my $sym ( values %{$pkg."::"} ) {
+ my $symtab = \%{$pkg."::"};
+ for ( keys %$symtab ) { for my $sym ( $$symtab{$_} ) {
+ if (ref $sym && $sym == $ref) {
+ return $symcache{$pkg,$ref} = \*{"$pkg:\:$_"};
+ }
use strict;
next unless ref ( \$sym ) eq 'GLOB';
return $symcache{$pkg,$ref} = \$sym
if *{$sym}{$type} && *{$sym}{$type} == $ref;
- }
+ }}
}
my %validtype = (
@@ -266,7 +270,7 @@ Attribute::Handlers - Simpler definition of attribute handlers
=head1 VERSION
-This document describes version 0.96 of Attribute::Handlers.
+This document describes version 0.97 of Attribute::Handlers.
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/B.pm b/Master/tlpkg/tlperl/lib/B.pm
index 952475db2c2..0a7727cec0f 100644
--- a/Master/tlpkg/tlperl/lib/B.pm
+++ b/Master/tlpkg/tlperl/lib/B.pm
@@ -15,7 +15,7 @@ require Exporter;
# walkoptree comes from B.xs
BEGIN {
- $B::VERSION = '1.48';
+ $B::VERSION = '1.58';
@B::EXPORT_OK = ();
# Our BOOT code needs $VERSION set, and will append to @EXPORT_OK.
@@ -35,7 +35,7 @@ push @B::EXPORT_OK, (qw(minus_c ppname save_BEGINs
parents comppadlist sv_undef compile_stats timing_info
begin_av init_av check_av end_av regex_padav dowarn
defstash curstash warnhook diehook inc_gv @optype
- @specialsv_name unitcheck_av));
+ @specialsv_name unitcheck_av safename));
@B::SV::ISA = 'B::OBJECT';
@B::NULL::ISA = 'B::SV';
@@ -60,6 +60,7 @@ push @B::EXPORT_OK, (qw(minus_c ppname save_BEGINs
@B::OP::ISA = 'B::OBJECT';
@B::UNOP::ISA = 'B::OP';
+@B::UNOP_AUX::ISA = 'B::UNOP';
@B::BINOP::ISA = 'B::UNOP';
@B::LOGOP::ISA = 'B::UNOP';
@B::LISTOP::ISA = 'B::BINOP';
@@ -69,10 +70,12 @@ push @B::EXPORT_OK, (qw(minus_c ppname save_BEGINs
@B::LOOP::ISA = 'B::LISTOP';
@B::PMOP::ISA = 'B::LISTOP';
@B::COP::ISA = 'B::OP';
+@B::METHOP::ISA = 'B::OP';
@B::SPECIAL::ISA = 'B::OBJECT';
-@B::optype = qw(OP UNOP BINOP LOGOP LISTOP PMOP SVOP PADOP PVOP LOOP COP);
+@B::optype = qw(OP UNOP BINOP LOGOP LISTOP PMOP SVOP PADOP PVOP LOOP COP
+ METHOP UNOP_AUX);
# bytecode.pl contained the following comment:
# Nullsv *must* come first in the following so that the condition
# ($$sv == 0) can continue to be used to test (sv == Nullsv).
@@ -85,7 +88,11 @@ push @B::EXPORT_OK, (qw(minus_c ppname save_BEGINs
}
sub B::GV::SAFENAME {
- my $name = (shift())->NAME;
+ safename(shift()->NAME);
+}
+
+sub safename {
+ my $name = shift;
# The regex below corresponds to the isCONTROLVAR macro
# from toke.c
@@ -537,6 +544,13 @@ be used as a string in C source code.
Returns a double-quote-surrounded escaped version of STR which can
be used as a string in Perl source code.
+=item safename(STR)
+
+This function returns the string with the first character modified if it
+is a control character. It converts it to ^X format first, so that "\cG"
+becomes "^G". This is used internally by L<B::GV::SAFENAME|/SAFENAME>, but
+you can call it directly.
+
=item class(OBJ)
Returns the class of an object without the part of the classname
@@ -545,8 +559,8 @@ C<"UNOP"> for example.
=item threadsv_names
-In a perl compiled for threads, this returns a list of the special
-per-thread threadsv variables.
+This used to provide support for the old 5.005 threading module. It now
+does nothing.
=back
@@ -725,6 +739,14 @@ unsigned.
=item NVX
+=item COP_SEQ_RANGE_LOW
+
+=item COP_SEQ_RANGE_HIGH
+
+These last two are only valid for pad name SVs. They only existed in the
+B::NV class before Perl 5.22. In 5.22 they were moved to the B::PADNAME
+class.
+
=back
=head2 B::RV Methods
@@ -841,6 +863,22 @@ in the MAGIC.
=back
+=head2 B::REGEXP Methods
+
+=over 4
+
+=item REGEX
+
+=item precomp
+
+=item qr_anoncv
+
+=item compflags
+
+The last two were added in Perl 5.22.
+
+=back
+
=head2 B::GV Methods
=over 4
@@ -894,6 +932,10 @@ If you're working with globs at runtime, and need to disambiguate
=item FLAGS
+=item GPFLAGS
+
+This last one is present only in perl 5.22.0 and higher.
+
=back
=head2 B::IO Methods
@@ -1053,8 +1095,9 @@ information is no longer stored directly in the hash.
=head2 OP-RELATED CLASSES
-C<B::OP>, C<B::UNOP>, C<B::BINOP>, C<B::LOGOP>, C<B::LISTOP>, C<B::PMOP>,
-C<B::SVOP>, C<B::PADOP>, C<B::PVOP>, C<B::LOOP>, C<B::COP>.
+C<B::OP>, C<B::UNOP>, C<B::UNOP_AUX>, C<B::BINOP>, C<B::LOGOP>,
+C<B::LISTOP>, C<B::PMOP>, C<B::SVOP>, C<B::PADOP>, C<B::PVOP>, C<B::LOOP>,
+C<B::COP>, C<B::METHOP>.
These classes correspond in the obvious way to the underlying C
structures of similar names. The inheritance hierarchy mimics the
@@ -1062,18 +1105,20 @@ underlying C "inheritance":
B::OP
|
- +---------------+--------+--------+-------+
- | | | | |
- B::UNOP B::SVOP B::PADOP B::COP B::PVOP
- ,' `-.
- / `--.
- B::BINOP B::LOGOP
+ +----------+---------+--------+-------+---------+
+ | | | | | |
+ B::UNOP B::SVOP B::PADOP B::COP B::PVOP B::METHOP
+ |
+ +---+---+---------+
+ | | |
+ B::BINOP B::LOGOP B::UNOP_AUX
|
|
B::LISTOP
- ,' `.
- / \
- B::LOOP B::PMOP
+ |
+ +---+---+
+ | |
+ B::LOOP B::PMOP
Access methods correspond to the underlying C structure field names,
with the leading "class indication" prefix (C<"op_">) removed.
@@ -1089,6 +1134,16 @@ data structure. See top of C<op.h> for more info.
=item sibling
+=item parent
+
+Returns the OP's parent. If it has no parent, or if your perl wasn't built
+with C<-DPERL_OP_PARENT>, returns NULL.
+
+Note that the global variable C<$B::OP::does_parent> is undefined on older
+perls that don't support the C<parent> method, is defined but false on
+perls that support the method but were built without C<-DPERL_OP_PARENT>,
+and is true otherwise.
+
=item name
This returns the op name as a string (e.g. "add", "rv2av").
@@ -1117,7 +1172,7 @@ This returns the op description from the global C PL_op_desc array
=back
-=head2 B::UNOP METHOD
+=head2 B::UNOP Method
=over 4
@@ -1125,7 +1180,28 @@ This returns the op description from the global C PL_op_desc array
=back
-=head2 B::BINOP METHOD
+=head2 B::UNOP_AUX Methods (since 5.22)
+
+=over 4
+
+=item aux_list(cv)
+
+This returns a list of the elements of the op's aux data structure,
+or a null list if there is no aux. What will be returned depends on the
+object's type, but will typically be a collection of C<B::IV>, C<B::GV>,
+etc. objects. C<cv> is the C<B::CV> object representing the sub that the
+op is contained within.
+
+=item string(cv)
+
+This returns a textual representation of the object (likely to b useful
+for deparsing and debugging), or an empty string if the op type doesn't
+support this. C<cv> is the C<B::CV> object representing the sub that the
+op is contained within.
+
+=back
+
+=head2 B::BINOP Method
=over 4
@@ -1133,7 +1209,7 @@ This returns the op description from the global C PL_op_desc array
=back
-=head2 B::LOGOP METHOD
+=head2 B::LOGOP Method
=over 4
@@ -1141,7 +1217,7 @@ This returns the op description from the global C PL_op_desc array
=back
-=head2 B::LISTOP METHOD
+=head2 B::LISTOP Method
=over 4
@@ -1177,9 +1253,16 @@ Only when perl was compiled with ithreads.
Since perl 5.17.1
+=item pmregexp
+
+Added in perl 5.22, this method returns the B::REGEXP associated with the
+op. While PMOPs do not actually have C<pmregexp> fields under threaded
+builds, this method returns the regexp under threads nonetheless, for
+convenience.
+
=back
-=head2 B::SVOP METHOD
+=head2 B::SVOP Methods
=over 4
@@ -1189,7 +1272,7 @@ Since perl 5.17.1
=back
-=head2 B::PADOP METHOD
+=head2 B::PADOP Method
=over 4
@@ -1197,7 +1280,7 @@ Since perl 5.17.1
=back
-=head2 B::PVOP METHOD
+=head2 B::PVOP Method
=over 4
@@ -1219,6 +1302,9 @@ Since perl 5.17.1
=head2 B::COP Methods
+The C<B::COP> class is used for "nextstate" and "dbstate" ops. As of Perl
+5.22, it is also used for "null" ops that started out as COPs.
+
=over 4
=item label
@@ -1247,11 +1333,23 @@ Since perl 5.17.1
=back
-=head2 OTHER CLASSES
+=head2 B::METHOP Methods (Since Perl 5.22)
-Perl 5.18 introduces a new class, B::PADLIST, returned by B::CV's
+=over 4
+
+=item first
+
+=item meth_sv
+
+=back
+
+=head2 PAD-RELATED CLASSES
+
+Perl 5.18 introduced a new class, B::PADLIST, returned by B::CV's
C<PADLIST> method.
+Perl 5.22 introduced the B::PADNAMELIST and B::PADNAME classes.
+
=head2 B::PADLIST Methods
=over 4
@@ -1260,16 +1358,100 @@ C<PADLIST> method.
=item ARRAY
-A list of pads. The first one contains the names. These are currently
-B::AV objects, but that is likely to change in future versions.
+A list of pads. The first one contains the names.
+
+The first one is a B::PADNAMELIST under Perl 5.22, and a B::AV under
+earlier versions. The rest are currently B::AV objects, but that could
+change in future versions.
=item ARRAYelt
Like C<ARRAY>, but takes an index as an argument to get only one element,
rather than a list of all of them.
+=item NAMES
+
+This method, introduced in 5.22, returns the B::PADNAMELIST. It is
+equivalent to C<ARRAYelt> with a 0 argument.
+
+=item REFCNT
+
+=item id
+
+This method, introduced in 5.22, returns an ID shared by clones of the same
+padlist.
+
+=item outid
+
+This method, also added in 5.22, returns the ID of the outer padlist.
+
+=back
+
+=head2 B::PADNAMELIST Methods
+
+=over 4
+
+=item MAX
+
+=item ARRAY
+
+=item ARRAYelt
+
+These two methods return the pad names, using B::SPECIAL objects for null
+pointers and B::PADNAME objects otherwise.
+
+=item REFCNT
+
+=back
+
+=head2 B::PADNAME Methods
+
+=over 4
+
+=item PV
+
+=item PVX
+
+=item LEN
+
=item REFCNT
+=item FLAGS
+
+For backward-compatibility, if the PADNAMEt_OUTER flag is set, the FLAGS
+method adds the SVf_FAKE flag, too.
+
+=item TYPE
+
+A B::HV object representing the stash for a typed lexical.
+
+=item SvSTASH
+
+A backward-compatibility alias for TYPE.
+
+=item OURSTASH
+
+A B::HV object representing the stash for 'our' variables.
+
+=item PROTOCV
+
+The prototype CV for a 'my' sub.
+
+=item COP_SEQ_RANGE_LOW
+
+=item COP_SEQ_RANGE_HIGH
+
+Sequence numbers representing the scope within which a lexical is visible.
+Meaningless if PADNAMEt_OUTER is set.
+
+=item PARENT_PAD_INDEX
+
+Only meaningful if PADNAMEt_OUTER is set.
+
+=item PARENT_FAKELEX_FLAGS
+
+Only meaningful if PADNAMEt_OUTER is set.
+
=back
=head2 $B::overlay
diff --git a/Master/tlpkg/tlperl/lib/B/Concise.pm b/Master/tlpkg/tlperl/lib/B/Concise.pm
index 6c818a4e463..311e0e738a9 100644
--- a/Master/tlpkg/tlperl/lib/B/Concise.pm
+++ b/Master/tlpkg/tlperl/lib/B/Concise.pm
@@ -14,7 +14,7 @@ use warnings; # uses #3 and #4, since warnings uses Carp
use Exporter (); # use #5
-our $VERSION = "0.992";
+our $VERSION = "0.996";
our @ISA = qw(Exporter);
our @EXPORT_OK = qw( set_style set_style_standard add_callback
concise_subref concise_cv concise_main
@@ -400,7 +400,8 @@ my $lastnext; # remembers op-chain, used to insert gotos
my %opclass = ('OP' => "0", 'UNOP' => "1", 'BINOP' => "2", 'LOGOP' => "|",
'LISTOP' => "@", 'PMOP' => "/", 'SVOP' => "\$", 'GVOP' => "*",
- 'PVOP' => '"', 'LOOP' => "{", 'COP' => ";", 'PADOP' => "#");
+ 'PVOP' => '"', 'LOOP' => "{", 'COP' => ";", 'PADOP' => "#",
+ 'METHOP' => '.', UNOP_AUX => '+');
no warnings 'qw'; # "Possible attempt to put comments..."; use #7
my @linenoise =
@@ -471,7 +472,12 @@ sub walk_topdown {
}
}
if (class($op) eq "PMOP") {
- my $maybe_root = $op->pmreplroot;
+ my $maybe_root = $op->code_list;
+ if ( ref($maybe_root) and $maybe_root->isa("B::OP")
+ and not $op->flags & OPf_KIDS) {
+ walk_topdown($maybe_root, $sub, $level + 1);
+ }
+ $maybe_root = $op->pmreplroot;
if (ref($maybe_root) and $maybe_root->isa("B::OP")) {
# It really is the root of the replacement, not something
# else stored here for lack of space elsewhere
@@ -527,29 +533,15 @@ sub sequence {
for (; $$op; $op = $op->next) {
last if exists $sequence_num{$$op};
my $name = $op->name;
- if ($name =~ /^(null|scalar|lineseq|scope)$/) {
- next if $oldop and $ {$op->next};
- } else {
- $sequence_num{$$op} = $seq_max++;
- if (class($op) eq "LOGOP") {
- my $other = $op->other;
- $other = $other->next while $other->name eq "null";
- sequence($other);
- } elsif (class($op) eq "LOOP") {
- my $redoop = $op->redoop;
- $redoop = $redoop->next while $redoop->name eq "null";
- sequence($redoop);
- my $nextop = $op->nextop;
- $nextop = $nextop->next while $nextop->name eq "null";
- sequence($nextop);
- my $lastop = $op->lastop;
- $lastop = $lastop->next while $lastop->name eq "null";
- sequence($lastop);
- } elsif ($name eq "subst" and $ {$op->pmreplstart}) {
- my $replstart = $op->pmreplstart;
- $replstart = $replstart->next while $replstart->name eq "null";
- sequence($replstart);
- }
+ $sequence_num{$$op} = $seq_max++;
+ if (class($op) eq "LOGOP") {
+ sequence($op->other);
+ } elsif (class($op) eq "LOOP") {
+ sequence($op->redoop);
+ sequence( $op->nextop);
+ sequence($op->lastop);
+ } elsif ($name eq "subst" and $ {$op->pmreplstart}) {
+ sequence($op->pmreplstart);
}
$oldop = $op;
}
@@ -592,73 +584,13 @@ sub fmt_line { # generate text-line for op.
return $text; # suppress empty lines
}
-our %priv; # used to display each opcode's BASEOP.op_private values
-
-$priv{$_}{128} = "LVINTRO"
- for qw(pos substr vec threadsv gvsv rv2sv rv2hv rv2gv rv2av rv2arylen
- aelem helem aslice hslice padsv padav padhv enteriter entersub
- padrange pushmark);
-$priv{$_}{64} = "REFC" for qw(leave leavesub leavesublv leavewrite);
-$priv{$_}{128} = "LV" for qw(leave leaveloop);
-@{$priv{aassign}}{32,64} = qw(STATE COMMON);
-@{$priv{sassign}}{32,64,128} = qw(STATE BKWARD CV2GV);
-$priv{$_}{64} = "RTIME" for qw(match subst substcont qr);
-@{$priv{$_}}{1,2,4,8,16,64} = qw(<UTF >UTF IDENT SQUASH DEL COMPL GROWS)
- for qw(trans transr);
-$priv{repeat}{64} = "DOLIST";
-$priv{leaveloop}{64} = "CONT";
-@{$priv{$_}}{32,64,96} = qw(DREFAV DREFHV DREFSV)
- for qw(rv2gv rv2sv padsv aelem helem);
-$priv{$_}{16} = "STATE" for qw(padav padhv padsv);
-@{$priv{rv2gv}}{4,16} = qw(NOINIT FAKE);
-@{$priv{entersub}}{1,4,16,32,64} = qw(INARGS TARG DBG DEREF);
-@{$priv{rv2cv}}{1,8,128} = qw(CONST AMPER NO());
-$priv{gv}{32} = "EARLYCV";
-$priv{$_}{16} = "LVDEFER" for qw(aelem helem);
-$priv{$_}{16} = "OURINTR" for qw(gvsv rv2sv rv2av rv2hv r2gv enteriter);
-$priv{$_}{8} = "LVSUB"
- for qw(rv2av rv2gv rv2hv padav padhv aelem helem aslice hslice
- av2arylen keys rkeys substr pos vec);
-$priv{$_}{4} = "SLICEWARN"
- for qw(rv2hv rv2av padav padhv hslice aslice);
-@{$priv{$_}}{32,64} = qw(BOOL BOOL?) for qw(rv2hv padhv);
-$priv{substr}{16} = "REPL1ST";
-$priv{$_}{16} = "TARGMY"
- for map(($_,"s$_"), qw(chop chomp)),
- map(($_,"i_$_"), qw(postinc postdec multiply divide modulo add
- subtract negate)),
- qw(pow concat stringify left_shift right_shift bit_and bit_xor
- bit_or complement atan2 sin cos rand exp log sqrt int hex oct
- abs length index rindex sprintf ord chr crypt quotemeta join
- push unshift flock chdir chown chroot unlink chmod utime rename
- link symlink mkdir rmdir wait waitpid system exec kill getppid
- getpgrp setpgrp getpriority setpriority time sleep);
-$priv{$_}{4} = "REVERSED" for qw(enteriter iter);
-@{$priv{const}}{2,4,8,16,64} = qw(NOVER SHORT STRICT ENTERED BARE);
-$priv{$_}{64} = "LINENUM" for qw(flip flop);
-$priv{list}{64} = "GUESSED";
-$priv{delete}{64} = "SLICE";
-$priv{exists}{64} = "SUB";
-@{$priv{sort}}{1,2,4,8,16,32,64} = qw(NUM INT REV INPLACE DESC QSORT STABLE);
-$priv{reverse}{8} = "INPLACE";
-$priv{threadsv}{64} = "SVREFd";
-@{$priv{$_}}{16,32,64,128} = qw(INBIN INCR OUTBIN OUTCR)
- for qw(open backtick);
-$priv{$_}{32} = "HUSH" for qw(nextstate dbstate);
-$priv{$_}{2} = "FTACCESS"
- for qw(ftrread ftrwrite ftrexec fteread ftewrite fteexec);
-@{$priv{entereval}}{2,4,8,16} = qw(HAS_HH UNI BYTES COPHH);
-@{$priv{$_}}{4,8,16} = qw(FTSTACKED FTSTACKING FTAFTERt)
- for qw(ftrread ftrwrite ftrexec fteread ftewrite fteexec ftis fteowned
- ftrowned ftzero ftsize ftmtime ftatime ftctime ftsock ftchr
- ftblk ftfile ftdir ftpipe ftlink ftsuid ftsgid ftsvtx fttty
- fttext ftbinary);
-$priv{$_}{2} = "GREPLEX"
- for qw(mapwhile mapstart grepwhile grepstart);
-$priv{$_}{128} = "+1" for qw(caller wantarray runcv);
-@{$priv{coreargs}}{1,2,64,128} = qw(DREF1 DREF2 $MOD MARK);
-$priv{$_}{128} = "UTF" for qw(last redo next goto dump);
-$priv{split}{128} = "IMPLIM";
+
+
+# use require rather than use here to avoid disturbing tests that dump
+# BEGIN blocks
+require B::Op_private;
+
+
our %hints; # used to display each COP's op_hints values
@@ -688,9 +620,61 @@ sub _flags {
return join(",", @s);
}
+# return a string like 'LVINTRO,1' for the op $name with op_private
+# value $x
+
sub private_flags {
my($name, $x) = @_;
- _flags($priv{$name}, $x);
+ my $entry = $B::Op_private::bits{$name};
+ return $x ? "$x" : '' unless $entry;
+
+ my @flags;
+ my $bit;
+ for ($bit = 7; $bit >= 0; $bit--) {
+ next unless exists $entry->{$bit};
+ my $e = $entry->{$bit};
+ if (ref($e) eq 'HASH') {
+ # bit field
+
+ my ($bitmin, $bitmax, $bitmask, $enum, $label) =
+ @{$e}{qw(bitmin bitmax bitmask enum label)};
+ $bit = $bitmin;
+ next if defined $label && $label eq '-'; # display as raw number
+
+ my $val = $x & $bitmask;
+ $x &= ~$bitmask;
+ $val >>= $bitmin;
+
+ if (defined $enum) {
+ # try to convert numeric $val into symbolic
+ my @enum = @$enum;
+ while (@enum) {
+ my $ix = shift @enum;
+ my $name = shift @enum;
+ my $label = shift @enum;
+ if ($val == $ix) {
+ $val = $label;
+ last;
+ }
+ }
+ }
+ next if $val eq '0'; # don't display anonymous zero values
+ push @flags, defined $label ? "$label=$val" : $val;
+
+ }
+ else {
+ # flag bit
+ my $label = $B::Op_private::labels{$e};
+ next if defined $label && $label eq '-'; # display as raw number
+ if ($x & (1<<$bit)) {
+ $x -= (1<<$bit);
+ push @flags, $label;
+ }
+ }
+ }
+
+ push @flags, $x if $x; # display unknown bits numerically
+ return join ",", @flags;
}
sub hints_flags {
@@ -779,23 +763,35 @@ sub concise_op {
$h{class} = class($op);
$h{extarg} = $h{targ} = $op->targ;
$h{extarg} = "" unless $h{extarg};
- if ($h{name} eq "null" and $h{targ}) {
- # targ holds the old type
- $h{exname} = "ex-" . substr(ppname($h{targ}), 3);
+ $h{privval} = $op->private;
+ # for null ops, targ holds the old type
+ my $origname = $h{name} eq "null" && $h{targ}
+ ? substr(ppname($h{targ}), 3)
+ : $h{name};
+ $h{private} = private_flags($origname, $op->private);
+ if ($op->folded) {
+ $h{private} &&= "$h{private},";
+ $h{private} .= "FOLD";
+ }
+
+ if ($h{name} ne $origname) { # a null op
+ $h{exname} = "ex-$origname";
$h{extarg} = "";
- } elsif ($op->name =~ /^leave(sub(lv)?|write)?$/) {
- # targ potentially holds a reference count
- if ($op->private & 64) {
- my $refs = "ref" . ($h{targ} != 1 ? "s" : "");
- $h{targarglife} = $h{targarg} = "$h{targ} $refs";
- }
+ } elsif ($h{private} =~ /\bREFC\b/) {
+ # targ holds a reference count
+ my $refs = "ref" . ($h{targ} != 1 ? "s" : "");
+ $h{targarglife} = $h{targarg} = "$h{targ} $refs";
} elsif ($h{targ}) {
- my $count = $h{name} eq 'padrange' ? ($op->private & 127) : 1;
+ my $count = $h{name} eq 'padrange'
+ ? ($op->private & $B::Op_private::defines{'OPpPADRANGE_COUNTMASK'})
+ : 1;
my (@targarg, @targarglife);
for my $i (0..$count-1) {
my ($targarg, $targarglife);
my $padname = (($curcv->PADLIST->ARRAY)[0]->ARRAY)[$h{targ}+$i];
- if (defined $padname and class($padname) ne "SPECIAL") {
+ if (defined $padname and class($padname) ne "SPECIAL" and
+ $padname->LEN)
+ {
$targarg = $padname->PVX;
if ($padname->FLAGS & SVf_FAKE) {
# These changes relate to the jumbo closure fix.
@@ -892,16 +888,37 @@ sub concise_op {
elsif ($h{class} eq "SVOP" or $h{class} eq "PADOP") {
unless ($h{name} eq 'aelemfast' and $op->flags & OPf_SPECIAL) {
my $idx = ($h{class} eq "SVOP") ? $op->targ : $op->padix;
- my $preferpv = $h{name} eq "method_named";
if ($h{class} eq "PADOP" or !${$op->sv}) {
my $sv = (($curcv->PADLIST->ARRAY)[1]->ARRAY)[$idx];
- $h{arg} = "[" . concise_sv($sv, \%h, $preferpv) . "]";
+ $h{arg} = "[" . concise_sv($sv, \%h, 0) . "]";
$h{targarglife} = $h{targarg} = "";
} else {
- $h{arg} = "(" . concise_sv($op->sv, \%h, $preferpv) . ")";
+ $h{arg} = "(" . concise_sv($op->sv, \%h, 0) . ")";
}
}
}
+ elsif ($h{class} eq "METHOP") {
+ my $prefix = '';
+ if ($h{name} eq 'method_redir' or $h{name} eq 'method_redir_super') {
+ my $rclass_sv = $op->rclass;
+ $rclass_sv = (($curcv->PADLIST->ARRAY)[1]->ARRAY)[$rclass_sv]
+ unless ref $rclass_sv;
+ $prefix .= 'PACKAGE "'.$rclass_sv->PV.'", ';
+ }
+ if ($h{name} ne "method") {
+ if (${$op->meth_sv}) {
+ $h{arg} = "($prefix" . concise_sv($op->meth_sv, \%h, 1) . ")";
+ } else {
+ my $sv = (($curcv->PADLIST->ARRAY)[1]->ARRAY)[$op->targ];
+ $h{arg} = "[$prefix" . concise_sv($sv, \%h, 1) . "]";
+ $h{targarglife} = $h{targarg} = "";
+ }
+ }
+ }
+ elsif ($h{class} eq "UNOP_AUX") {
+ $h{arg} = "(" . $op->string($curcv) . ")";
+ }
+
$h{seq} = $h{hyphseq} = seq($op);
$h{seq} = "" if $h{seq} eq "-";
$h{opt} = $op->opt;
@@ -916,12 +933,6 @@ sub concise_op {
$h{classsym} = $opclass{$h{class}};
$h{flagval} = $op->flags;
$h{flags} = op_flags($op->flags);
- $h{privval} = $op->private;
- $h{private} = private_flags($h{name}, $op->private);
- if ($op->folded) {
- $h{private} &&= "$h{private},";
- $h{private} .= "FOLD";
- }
if ($op->can("hints")) {
$h{hintsval} = $op->hints;
$h{hints} = hints_flags($h{hintsval});
@@ -1046,8 +1057,7 @@ sub tree {
# to update the corresponding magic number in the next line.
# Remember, this needs to stay the last things in the module.
-# Why is this different for MacOS? Does it matter?
-my $cop_seq_mnum = $^O eq 'MacOS' ? 12 : 11;
+my $cop_seq_mnum = 16;
$cop_seq_base = svref_2object(eval 'sub{0;}')->START->cop_seq + $cop_seq_mnum;
1;
@@ -1377,6 +1387,7 @@ B:: namespace that represents the ops in your Perl code.
0 OP (aka BASEOP) An OP with no children
1 UNOP An OP with one child
+ + UNOP_AUX A UNOP with auxillary fields
2 BINOP An OP with two children
| LOGOP A control branch OP
@ LISTOP An OP that could have lots of children
@@ -1386,6 +1397,7 @@ B:: namespace that represents the ops in your Perl code.
{ LOOP An OP that holds pointers for a loop
; COP An OP that marks the start of a statement
# PADOP An OP with a GV on the pad
+ . METHOP An OP with method call info
=head2 OP flags abbreviations
@@ -1413,10 +1425,7 @@ Private flags, if any are set for an opcode, are displayed after a '/'
They're opcode specific, and occur less often than the public ones, so
they're represented by short mnemonics instead of single-chars; see
-F<op.h> for gory details, or try this quick 2-liner:
-
- $> perl -MB::Concise -de 1
- DB<1> |x \%B::Concise::priv
+B::Op_private and F<regen/op_private> for more details.
=head1 FORMATTING SPECIFICATIONS
diff --git a/Master/tlpkg/tlperl/lib/B/Debug.pm b/Master/tlpkg/tlperl/lib/B/Debug.pm
index c4a1a33afa6..fd66405bac3 100644
--- a/Master/tlpkg/tlperl/lib/B/Debug.pm
+++ b/Master/tlpkg/tlperl/lib/B/Debug.pm
@@ -1,6 +1,6 @@
package B::Debug;
-our $VERSION = '1.19';
+our $VERSION = '1.23';
use strict;
require 5.006;
@@ -36,7 +36,11 @@ sub _printop {
my $op = shift;
my $addr = ${$op} ? $op->ppaddr : '';
$addr =~ s/^PL_ppaddr// if $addr;
- return sprintf "0x%08x %6s %s", ${$op}, ${$op} ? class($op) : '', $addr;
+ if (${$op}) {
+ return sprintf "0x%08x %6s %s", ${$op}, class($op), $addr;
+ } else {
+ return sprintf "0x%x %6s %s", ${$op}, '', $addr;
+ }
}
sub B::OP::debug {
@@ -151,6 +155,18 @@ sub B::SVOP::debug {
$op->sv->debug;
}
+sub B::METHOP::debug {
+ my ($op) = @_;
+ $op->B::OP::debug();
+ if (${$op->first}) {
+ printf "\top_first\t0x%x\n", ${$op->first};
+ $op->first->debug;
+ } else {
+ printf "\top_meth_sv\t0x%x\n", ${$op->meth_sv};
+ $op->meth_sv->debug;
+ }
+}
+
sub B::PVOP::debug {
my ($op) = @_;
$op->B::OP::debug();
@@ -361,7 +377,7 @@ EOT
sub B::SPECIAL::debug {
my $sv = shift;
my $i = ref $sv ? $$sv : 0;
- print exists $specialsv_name[$i] ? $specialsv_name[$i] : "", "\n";
+ print defined $specialsv_name[$i] ? $specialsv_name[$i] : "", "\n";
}
sub B::PADLIST::debug {
@@ -376,6 +392,7 @@ EOT
sub compile {
my $order = shift;
B::clearsym();
+ $DB::single = 1 if defined &DB::DB;
if ($order && $order eq "exec") {
return sub { walkoptree_exec(main_start, "debug") }
} else {
@@ -413,7 +430,7 @@ Reini Urban C<rurban@cpan.org>
=head1 LICENSE
Copyright (c) 1996, 1997 Malcolm Beattie
-Copyright (c) 2008, 2010, 2013 Reini Urban
+Copyright (c) 2008, 2010, 2013, 2014 Reini Urban
This program is free software; you can redistribute it and/or modify
it under the terms of either:
diff --git a/Master/tlpkg/tlperl/lib/B/Deparse.pm b/Master/tlpkg/tlperl/lib/B/Deparse.pm
index e7eb8cf90d3..d4c6f6061ac 100644
--- a/Master/tlpkg/tlperl/lib/B/Deparse.pm
+++ b/Master/tlpkg/tlperl/lib/B/Deparse.pm
@@ -11,16 +11,42 @@ package B::Deparse;
use Carp;
use B qw(class main_root main_start main_cv svref_2object opnumber perlstring
OPf_WANT OPf_WANT_VOID OPf_WANT_SCALAR OPf_WANT_LIST
- OPf_KIDS OPf_REF OPf_STACKED OPf_SPECIAL OPf_MOD
+ OPf_KIDS OPf_REF OPf_STACKED OPf_SPECIAL OPf_MOD OPf_PARENS
OPpLVAL_INTRO OPpOUR_INTRO OPpENTERSUB_AMPER OPpSLICE OPpCONST_BARE
OPpTRANS_SQUASH OPpTRANS_DELETE OPpTRANS_COMPLEMENT OPpTARGET_MY
- OPpEXISTS_SUB OPpSORT_NUMERIC OPpSORT_INTEGER
- OPpSORT_REVERSE
+ OPpEXISTS_SUB OPpSORT_NUMERIC OPpSORT_INTEGER OPpREPEAT_DOLIST
+ OPpSORT_REVERSE OPpMULTIDEREF_EXISTS OPpMULTIDEREF_DELETE
SVf_IOK SVf_NOK SVf_ROK SVf_POK SVpad_OUR SVf_FAKE SVs_RMG SVs_SMG
+ SVs_PADTMP SVpad_TYPED
CVf_METHOD CVf_LVALUE
PMf_KEEP PMf_GLOBAL PMf_CONTINUE PMf_EVAL PMf_ONCE
- PMf_MULTILINE PMf_SINGLELINE PMf_FOLD PMf_EXTENDED);
-$VERSION = '1.26';
+ PMf_MULTILINE PMf_SINGLELINE PMf_FOLD PMf_EXTENDED PMf_EXTENDED_MORE
+ PADNAMEt_OUTER
+ MDEREF_reload
+ MDEREF_AV_pop_rv2av_aelem
+ MDEREF_AV_gvsv_vivify_rv2av_aelem
+ MDEREF_AV_padsv_vivify_rv2av_aelem
+ MDEREF_AV_vivify_rv2av_aelem
+ MDEREF_AV_padav_aelem
+ MDEREF_AV_gvav_aelem
+ MDEREF_HV_pop_rv2hv_helem
+ MDEREF_HV_gvsv_vivify_rv2hv_helem
+ MDEREF_HV_padsv_vivify_rv2hv_helem
+ MDEREF_HV_vivify_rv2hv_helem
+ MDEREF_HV_padhv_helem
+ MDEREF_HV_gvhv_helem
+ MDEREF_ACTION_MASK
+ MDEREF_INDEX_none
+ MDEREF_INDEX_const
+ MDEREF_INDEX_padsv
+ MDEREF_INDEX_gvsv
+ MDEREF_INDEX_MASK
+ MDEREF_FLAG_last
+ MDEREF_MASK
+ MDEREF_SHIFT
+ );
+
+$VERSION = '1.35';
use strict;
use vars qw/$AUTOLOAD/;
use warnings ();
@@ -32,9 +58,11 @@ BEGIN {
# be to fake up a dummy constant that will never actually be true.
foreach (qw(OPpSORT_INPLACE OPpSORT_DESCEND OPpITER_REVERSED OPpCONST_NOVER
OPpPAD_STATE PMf_SKIPWHITE RXf_SKIPWHITE
- RXf_PMf_CHARSET RXf_PMf_KEEPCOPY
+ RXf_PMf_CHARSET RXf_PMf_KEEPCOPY CVf_ANONCONST
CVf_LOCKED OPpREVERSE_INPLACE OPpSUBSTR_REPL_FIRST
- PMf_NONDESTRUCT OPpCONST_ARYBASE OPpEVAL_BYTES)) {
+ PMf_NONDESTRUCT OPpCONST_ARYBASE OPpEVAL_BYTES
+ OPpLVREF_TYPE OPpLVREF_SV OPpLVREF_AV OPpLVREF_HV
+ OPpLVREF_CV OPpLVREF_ELEM SVpad_STATE)) {
eval { import B $_ };
no strict 'refs';
*{$_} = sub () {0} unless *{$_}{CODE};
@@ -205,7 +233,11 @@ BEGIN {
# lib/Tie/File/t/29_downcopy 5
# lib/vars 22
-# Object fields (were globals):
+# Object fields:
+#
+# in_coderef2text:
+# True when deparsing via $deparse->coderef2text; false when deparsing the
+# main program.
#
# avoid_local:
# (local($a), local($b)) and local($a, $b) have the same internal
@@ -221,8 +253,9 @@ BEGIN {
# curcvlex:
# Cached hash of lexical variables for curcv: keys are
# names prefixed with "m" or "o" (representing my/our), and
-# each value is an array of pairs, indicating the cop_seq of scopes
-# in which a var of that name is valid.
+# each value is an array with two elements indicating the cop_seq
+# of scopes in which a var of that name is valid and a third ele-
+# ment referencing the pad name.
#
# curcop:
# COP for statement being deparsed
@@ -231,8 +264,10 @@ BEGIN {
# name of the current package for deparsed code
#
# subs_todo:
-# array of [cop_seq, CV, is_format?] for subs and formats we still
-# want to deparse
+# array of [cop_seq, CV, is_format?, name] for subs and formats we still
+# want to deparse. The fourth element is a pad name thingy for lexical
+# subs or a string for special blocks. For other subs, it is undef. For
+# lexical subs, CV may be undef, indicating a stub declaration.
#
# protos_todo:
# as above, but [name, prototype] for subs that never got a GV
@@ -246,12 +281,12 @@ BEGIN {
# That means we can omit parentheses from the arguments. It also means we
# need to put CORE:: on core functions of the same name.
#
-# subs_deparsed
-# Keeps track of fully qualified names of all deparsed subs.
-#
# in_subst_repl
# True when deparsing the replacement part of a substitution.
#
+# in_refgen
+# True when deparsing the argument to \.
+#
# parens: -p
# linenums: -l
# unquote: -q
@@ -314,9 +349,19 @@ BEGIN {
# \f - flush left (no indent)
# \cK - kill following semicolon, if any
+# Semicolon handling:
+# - Individual statements are not deparsed with trailing semicolons.
+# (If necessary, \cK is tacked on to the end.)
+# - Whatever code joins statements together or emits them (lineseq,
+# scopeop, deparse_root) is responsible for adding semicolons where
+# necessary.
+# - use statements are deparsed with trailing semicolons because they are
+# immediately concatenated with the following statement.
+# - indent() removes semicolons wherever it sees \cK.
-BEGIN { for (qw[ const stringify rv2sv list glob pushmark null]) {
+BEGIN { for (qw[ const stringify rv2sv list glob pushmark null aelem
+ nextstate dbstate rv2av rv2hv helem custom ]) {
eval "sub OP_\U$_ () { " . opnumber($_) . "}"
}}
@@ -351,9 +396,6 @@ sub _pessimise_walk {
type => OP_PUSHMARK,
name => 'pushmark',
private => ($op->private & OPpLVAL_INTRO),
- next => ($op->flags & OPf_SPECIAL)
- ? $op->sibling->first
- : $op->sibling,
};
}
@@ -434,8 +476,9 @@ sub null {
sub todo {
my $self = shift;
- my($cv, $is_form) = @_;
- return unless ($cv->FILE eq $0 || exists $self->{files}{$cv->FILE});
+ my($cv, $is_form, $name) = @_;
+ my $cvfile = $cv->FILE//'';
+ return unless ($cvfile eq $0 || exists $self->{files}{$cvfile});
my $seq;
if ($cv->OUTSIDE_SEQ) {
$seq = $cv->OUTSIDE_SEQ;
@@ -444,28 +487,91 @@ sub todo {
} else {
$seq = 0;
}
- push @{$self->{'subs_todo'}}, [$seq, $cv, $is_form];
- unless ($is_form || class($cv->STASH) eq 'SPECIAL') {
- $self->{'subs_deparsed'}{$cv->STASH->NAME."::".$cv->GV->NAME} = 1;
- }
+ push @{$self->{'subs_todo'}}, [$seq, $cv, $is_form, $name];
}
sub next_todo {
my $self = shift;
my $ent = shift @{$self->{'subs_todo'}};
my $cv = $ent->[1];
+ if (ref $ent->[3]) { # lexical sub
+ my @text;
+
+ # At this point, we may not yet have deparsed the hints that allow
+ # lexical subroutines to be recognized. So adjust the current
+ # hints and deparse them.
+ # When lex subs cease being experimental, we should be able to
+ # remove this code.
+ {
+ local $^H = $self->{'hints'};
+ local %^H = %{ $self->{'hinthash'} || {} };
+ local ${^WARNING_BITS} = $self->{'warnings'};
+ feature->import("lexical_subs");
+ warnings->unimport("experimental::lexical_subs");
+ # Here we depend on the fact that individual features
+ # will always set the feature bundle to ‘custom’
+ # (== $feature::hint_mask). If we had another specific bundle
+ # enabled previously, normalise it.
+ if (($self->{'hints'} & $feature::hint_mask)
+ != $feature::hint_mask)
+ {
+ if ($self->{'hinthash'}) {
+ delete $self->{'hinthash'}{$_}
+ for grep /^feature_/, keys %{$self->{'hinthash'}};
+ }
+ else { $self->{'hinthash'} = {} }
+ $self->{'hinthash'}
+ = _features_from_bundle(@$self{'hints','hinthash'});
+ }
+ push @text, $self->declare_hinthash($self->{'hinthash'}, \%^H,
+ $self->{indent_size}, $^H);
+ push @text, $self->declare_warnings($self->{'warnings'},
+ ${^WARNING_BITS})
+ unless ($self->{'warnings'} // 'u')
+ eq (${^WARNING_BITS } // 'u');
+ $self->{'warnings'} = ${^WARNING_BITS};
+ $self->{'hints'} = $^H;
+ $self->{'hinthash'} = {%^H};
+ }
+
+ # Now emit the sub itself.
+ my $padname = $ent->[3];
+ my $flags = $padname->FLAGS;
+ push @text,
+ !$cv || $ent->[0] <= $padname->COP_SEQ_RANGE_LOW
+ ? $self->keyword($flags & SVpad_OUR
+ ? "our"
+ : $flags & SVpad_STATE
+ ? "state"
+ : "my") . " "
+ : "";
+ # XXX We would do $self->keyword("sub"), but ‘my CORE::sub’
+ # doesn’t work and ‘my sub’ ignores a &sub in scope. I.e.,
+ # we have a core bug here.
+ push @text, "sub " . substr $padname->PVX, 1;
+ if ($cv) {
+ # my sub foo { }
+ push @text, " " . $self->deparse_sub($cv);
+ $text[-1] =~ s/ ;$/;/;
+ }
+ else {
+ # my sub foo;
+ push @text, ";\n";
+ }
+ return join "", @text;
+ }
my $gv = $cv->GV;
- my $name = $self->gv_name($gv);
+ my $name = $ent->[3] // $self->gv_name($gv);
if ($ent->[2]) {
- return "format $name =\n"
+ return $self->keyword("format") . " $name =\n"
. $self->deparse_format($ent->[1]). "\n";
} else {
- $self->{'subs_declared'}{$name} = 1;
+ my $use_dec;
if ($name eq "BEGIN") {
- my $use_dec = $self->begin_is_use($cv);
+ $use_dec = $self->begin_is_use($cv);
if (defined ($use_dec) and $self->{'expand'} < 5) {
return () if 0 == length($use_dec);
- return $use_dec;
+ $use_dec =~ s/^(use|no)\b/$self->keyword($1)/e;
}
}
my $l = '';
@@ -475,16 +581,29 @@ sub next_todo {
$l = "\n\f#line $line \"$file\"\n";
}
my $p = '';
+ my $stash;
if (class($cv->STASH) ne "SPECIAL") {
- my $stash = $cv->STASH->NAME;
+ $stash = $cv->STASH->NAME;
if ($stash ne $self->{'curstash'}) {
- $p = "package $stash;\n";
+ $p = $self->keyword("package") . " $stash;\n";
$name = "$self->{'curstash'}::$name" unless $name =~ /::/;
$self->{'curstash'} = $stash;
}
- $name =~ s/^\Q$stash\E::(?!\z|.*::)//;
}
- return "${p}${l}sub $name " . $self->deparse_sub($cv);
+ if ($use_dec) {
+ return "$p$l$use_dec";
+ }
+ if ( $name !~ /::/ and $self->lex_in_scope("&$name")
+ || $self->lex_in_scope("&$name", 1) )
+ {
+ $name = "$self->{'curstash'}::$name";
+ } elsif (defined $stash) {
+ $name =~ s/^\Q$stash\E::(?!\z|.*::)//;
+ }
+ my $ret = "${p}${l}" . $self->keyword("sub") . " $name "
+ . $self->deparse_sub($cv);
+ $self->{'subs_declared'}{$name} = 1;
+ return $ret;
}
}
@@ -537,7 +656,7 @@ sub begin_is_use {
}
$constop = $constop->sibling;
return if $constop->name ne "method_named";
- return if $self->const_sv($constop)->PV ne "VERSION";
+ return if $self->meth_sv($constop)->PV ne "VERSION";
}
$lineseq = $version_op->sibling;
@@ -556,7 +675,7 @@ sub begin_is_use {
return unless $self->const_sv($svop)->PV eq $module;
# Pull out the arguments
- for ($svop=$svop->sibling; $svop->name ne "method_named";
+ for ($svop=$svop->sibling; index($svop->name, "method_") != 0;
$svop = $svop->sibling) {
$args .= ", " if length($args);
$args .= $self->deparse($svop, 6);
@@ -565,7 +684,7 @@ sub begin_is_use {
my $use = 'use';
my $method_named = $svop;
return if $method_named->name ne "method_named";
- my $method_name = $self->const_sv($method_named)->PV;
+ my $method_name = $self->meth_sv($method_named)->PV;
if ($method_name eq "unimport") {
$use = 'no';
@@ -608,8 +727,31 @@ sub stash_subs {
}++;
my %stash = svref_2object($stash)->ARRAY;
while (my ($key, $val) = each %stash) {
- my $class = class($val);
- if ($class eq "PV") {
+ my $flags = $val->FLAGS;
+ if ($flags & SVf_ROK) {
+ # A reference. Dump this if it is a reference to a CV. If it
+ # is a constant acting as a proxy for a full subroutine, then
+ # we may or may not have to dump it. If some form of perl-
+ # space visible code must have created it, be it a use
+ # statement, or some direct symbol-table manipulation code that
+ # we will deparse, then we don’t want to dump it. If it is the
+ # result of a declaration like sub f () { 42 } then we *do*
+ # want to dump it. The only way to distinguish these seems
+ # to be the SVs_PADTMP flag on the constant, which is admit-
+ # tedly a hack.
+ my $class = class(my $referent = $val->RV);
+ if ($class eq "CV") {
+ $self->todo($referent, 0);
+ } elsif (
+ $class !~ /^(AV|HV|CV|FM|IO|SPECIAL)\z/
+ # A more robust way to write that would be this, but B does
+ # not provide the SVt_ constants:
+ # ($referent->FLAGS & B::SVTYPEMASK) < B::SVt_PVAV
+ and $referent->FLAGS & SVs_PADTMP
+ ) {
+ push @{$self->{'protos_todo'}}, [$pack . $key, $val];
+ }
+ } elsif ($flags & (SVf_POK|SVf_IOK)) {
# Just a prototype. As an ugly but fairly effective way
# to find out if it belongs here is to see if the AUTOLOAD
# (if any) for the stash was defined in one of our files.
@@ -619,20 +761,9 @@ sub stash_subs {
my $AF = $A->FILE;
next unless $AF eq $0 || exists $self->{'files'}{$AF};
}
- push @{$self->{'protos_todo'}}, [$pack . $key, $val->PV];
- } elsif ($class eq "IV" && !($val->FLAGS & SVf_ROK)) {
- # Just a name. As above.
- # But skip proxy constant subroutines, as some form of perl-space
- # visible code must have created them, be it a use statement, or
- # some direct symbol-table manipulation code that we will Deparse
- my $A = $stash{"AUTOLOAD"};
- if (defined ($A) && class($A) eq "GV" && defined($A->CV)
- && class($A->CV) eq "CV") {
- my $AF = $A->FILE;
- next unless $AF eq $0 || exists $self->{'files'}{$AF};
- }
- push @{$self->{'protos_todo'}}, [$pack . $key, undef];
- } elsif ($class eq "GV") {
+ push @{$self->{'protos_todo'}},
+ [$pack . $key, $flags & SVf_POK ? $val->PV: undef];
+ } elsif (class($val) eq "GV") {
if (class(my $cv = $val->CV) ne "SPECIAL") {
next if $self->{'subs_done'}{$$val}++;
next if $$val != ${$cv->GV}; # Ignore imposters
@@ -655,8 +786,12 @@ sub print_protos {
my $ar;
my @ret;
foreach $ar (@{$self->{'protos_todo'}}) {
- my $proto = (defined $ar->[1] ? " (". $ar->[1] . ")" : "");
- push @ret, "sub " . $ar->[0] . "$proto;\n";
+ my $body = defined $ar->[1]
+ ? ref $ar->[1]
+ ? " () {\n " . $self->const($ar->[1]->RV,0) . ";\n}"
+ : " (". $ar->[1] . ");"
+ : ";";
+ push @ret, "sub " . $ar->[0] . "$body\n";
}
delete $self->{'protos_todo'};
return @ret;
@@ -781,8 +916,13 @@ sub compile {
my @CHECKs = B::check_av->isa("B::AV") ? B::check_av->ARRAY : ();
my @INITs = B::init_av->isa("B::AV") ? B::init_av->ARRAY : ();
my @ENDs = B::end_av->isa("B::AV") ? B::end_av->ARRAY : ();
- for my $block (@BEGINs, @UNITCHECKs, @CHECKs, @INITs, @ENDs) {
- $self->todo($block, 0);
+ my @names = qw(BEGIN UNITCHECK CHECK INIT END);
+ my @blocks = \(@BEGINs, @UNITCHECKs, @CHECKs, @INITs, @ENDs);
+ while (@names) {
+ my ($name, $blocks) = (shift @names, shift @blocks);
+ for my $block (@$blocks) {
+ $self->todo($block, 0, $name);
+ }
}
$self->stash_subs();
local($SIG{"__DIE__"}) =
@@ -801,8 +941,26 @@ sub compile {
my $root = main_root;
local $B::overlay = {};
unless (null $root) {
- $self->pessimise($root, main_start);
- print $self->indent($self->deparse_root($root)), "\n";
+ $self->pad_subs($self->{'curcv'});
+ # Check for a stub-followed-by-ex-cop, resulting from a program
+ # consisting solely of sub declarations. For backward-compati-
+ # bility (and sane output) we don’t want to emit the stub.
+ # leave
+ # enter
+ # stub
+ # ex-nextstate (or ex-dbstate)
+ my $kid;
+ if ( $root->name eq 'leave'
+ and ($kid = $root->first)->name eq 'enter'
+ and !null($kid = $kid->sibling) and $kid->name eq 'stub'
+ and !null($kid = $kid->sibling) and $kid->name eq 'null'
+ and class($kid) eq 'COP' and null $kid->sibling )
+ {
+ # ignore
+ } else {
+ $self->pessimise($root, main_start);
+ print $self->indent($self->deparse_root($root)), "\n";
+ }
}
my @text;
while (scalar(@{$self->{'subs_todo'}})) {
@@ -815,9 +973,9 @@ sub compile {
my $laststash = defined $self->{'curcop'}
? $self->{'curcop'}->stash->NAME : $self->{'curstash'};
if (defined *{$laststash."::DATA"}{IO}) {
- print "package $laststash;\n"
+ print $self->keyword("package") . " $laststash;\n"
unless $laststash eq $self->{'curstash'};
- print "__DATA__\n";
+ print $self->keyword("__DATA__") . "\n";
print readline(*{$laststash."::DATA"});
}
}
@@ -829,6 +987,7 @@ sub coderef2text {
croak "Usage: ->coderef2text(CODEREF)" unless UNIVERSAL::isa($sub, "CODE");
$self->init();
+ local $self->{in_coderef2text} = 1;
return $self->indent($self->deparse_sub(svref_2object($sub)));
}
@@ -964,6 +1123,9 @@ sub deparse {
sub indent {
my $self = shift;
my $txt = shift;
+ # \cK also swallows a preceding line break when followed by a
+ # semicolon.
+ $txt =~ s/\n\cK;//g;
my @lines = split(/\n/, $txt);
my $leader = "";
my $level = 0;
@@ -992,6 +1154,73 @@ sub indent {
return join("\n", @lines);
}
+sub pad_subs {
+ my ($self, $cv) = @_;
+ my $padlist = $cv->PADLIST;
+ my @names = $padlist->ARRAYelt(0)->ARRAY;
+ my @values = $padlist->ARRAYelt(1)->ARRAY;
+ my @todo;
+ PADENTRY:
+ for my $ix (0.. $#names) { for $_ ($names[$ix]) {
+ next if class($_) eq "SPECIAL";
+ my $name = $_->PVX;
+ if (defined $name && $name =~ /^&./) {
+ my $low = $_->COP_SEQ_RANGE_LOW;
+ my $flags = $_->FLAGS;
+ my $outer = $flags & PADNAMEt_OUTER;
+ if ($flags & SVpad_OUR) {
+ push @todo, [$low, undef, 0, $_]
+ # [seq, no cv, not format, padname]
+ unless $outer;
+ next;
+ }
+ my $protocv = $flags & SVpad_STATE
+ ? $values[$ix]
+ : $_->PROTOCV;
+ if (class ($protocv) ne 'CV') {
+ my $flags = $flags;
+ my $cv = $cv;
+ my $name = $_;
+ while ($flags & PADNAMEt_OUTER && class ($protocv) ne 'CV')
+ {
+ $cv = $cv->OUTSIDE;
+ next PADENTRY if class($cv) eq 'SPECIAL'; # XXX freed?
+ my $padlist = $cv->PADLIST;
+ my $ix = $name->PARENT_PAD_INDEX;
+ $name = $padlist->NAMES->ARRAYelt($ix);
+ $flags = $name->FLAGS;
+ $protocv = $flags & SVpad_STATE
+ ? $padlist->ARRAYelt(1)->ARRAYelt($ix)
+ : $name->PROTOCV;
+ }
+ }
+ my $defined_in_this_sub = ${$protocv->OUTSIDE} == $$cv || do {
+ my $other = $protocv->PADLIST;
+ $$other && $other->outid == $padlist->id;
+ };
+ if ($flags & PADNAMEt_OUTER) {
+ next unless $defined_in_this_sub;
+ push @todo, [$protocv->OUTSIDE_SEQ, $protocv, 0, $_];
+ next;
+ }
+ my $outseq = $protocv->OUTSIDE_SEQ;
+ if ($outseq <= $low) {
+ # defined before its name is visible, so it’s gotta be
+ # declared and defined at once: my sub foo { ... }
+ push @todo, [$low, $protocv, 0, $_];
+ }
+ else {
+ # declared and defined separately: my sub f; sub f { ... }
+ push @todo, [$low, undef, 0, $_];
+ push @todo, [$outseq, $protocv, 0, $_]
+ if $defined_in_this_sub;
+ }
+ }
+ }}
+ @{$self->{'subs_todo'}} =
+ sort {$a->[0] <=> $b->[0]} @{$self->{'subs_todo'}}, @todo
+}
+
sub deparse_sub {
my $self = shift;
my $cv = shift;
@@ -1002,11 +1231,12 @@ Carp::confess("SPECIAL in deparse_sub") if $cv->isa("B::SPECIAL");
if ($cv->FLAGS & SVf_POK) {
$proto = "(". $cv->PV . ") ";
}
- if ($cv->CvFLAGS & (CVf_METHOD|CVf_LOCKED|CVf_LVALUE)) {
+ if ($cv->CvFLAGS & (CVf_METHOD|CVf_LOCKED|CVf_LVALUE|CVf_ANONCONST)) {
$proto .= ": ";
$proto .= "lvalue " if $cv->CvFLAGS & CVf_LVALUE;
$proto .= "locked " if $cv->CvFLAGS & CVf_LOCKED;
$proto .= "method " if $cv->CvFLAGS & CVf_METHOD;
+ $proto .= "const " if $cv->CvFLAGS & CVf_ANONCONST;
}
local($self->{'curcv'}) = $cv;
@@ -1017,6 +1247,7 @@ Carp::confess("SPECIAL in deparse_sub") if $cv->isa("B::SPECIAL");
my $root = $cv->ROOT;
local $B::overlay = {};
if (not null $root) {
+ $self->pad_subs($cv);
$self->pessimise($root, $cv->START);
my $lineseq = $root->first;
if ($lineseq->name eq "lineseq") {
@@ -1191,28 +1422,60 @@ sub maybe_parens_func {
}
}
+sub find_our_type {
+ my ($self, $name) = @_;
+ $self->populate_curcvlex() if !defined $self->{'curcvlex'};
+ my $seq = $self->{'curcop'} ? $self->{'curcop'}->cop_seq : 0;
+ for my $a (@{$self->{'curcvlex'}{"o$name"}}) {
+ my ($st, undef, $padname) = @$a;
+ if ($st >= $seq && $padname->FLAGS & SVpad_TYPED) {
+ return $padname->SvSTASH->NAME;
+ }
+ }
+ return '';
+}
+
sub maybe_local {
my $self = shift;
my($op, $cx, $text) = @_;
- my $our_intro = ($op->name =~ /^(gv|rv2)[ash]v$/) ? OPpOUR_INTRO : 0;
- if ($op->private & (OPpLVAL_INTRO|$our_intro)
- and not $self->{'avoid_local'}{$$op}) {
- my $our_local = ($op->private & OPpLVAL_INTRO) ? "local" : "our";
- if( $our_local eq 'our' ) {
+ my $name = $op->name;
+ my $our_intro = ($name =~ /^(?:(?:gv|rv2)[ash]v|split|refassign
+ |lv(?:av)?ref)$/x)
+ ? OPpOUR_INTRO
+ : 0;
+ my $lval_intro = $name eq 'split' ? 0 : OPpLVAL_INTRO;
+ # The @a in \(@a) isn't in ref context, but only when the
+ # parens are there.
+ my $need_parens = $self->{'in_refgen'} && $name =~ /[ah]v\z/
+ && ($op->flags & (OPf_PARENS|OPf_REF)) == OPf_PARENS;
+ if ((my $priv = $op->private) & ($lval_intro|$our_intro)) {
+ my @our_local;
+ push @our_local, "local" if $priv & $lval_intro;
+ push @our_local, "our" if $priv & $our_intro;
+ my $our_local = join " ", map $self->keyword($_), @our_local;
+ if( $our_local[-1] eq 'our' ) {
if ( $text !~ /^\W(\w+::)*\w+\z/
and !utf8::decode($text) || $text !~ /^\W(\w+::)*\w+\z/
) {
die "Unexpected our($text)\n";
}
$text =~ s/(\w+::)+//;
+
+ if (my $type = $self->find_our_type($text)) {
+ $our_local .= ' ' . $type;
+ }
}
- if (want_scalar($op)) {
+ return $need_parens ? "($text)" : $text
+ if $self->{'avoid_local'}{$$op};
+ if ($need_parens) {
+ return "$our_local($text)";
+ } elsif (want_scalar($op)) {
return "$our_local $text";
} else {
return $self->maybe_parens_func("$our_local", $text, $cx, 16);
}
} else {
- return $text;
+ return $need_parens ? "($text)" : $text;
}
}
@@ -1236,18 +1499,33 @@ sub padname_sv {
sub maybe_my {
my $self = shift;
- my($op, $cx, $text, $forbid_parens) = @_;
+ my($op, $cx, $text, $padname, $forbid_parens) = @_;
+ # The @a in \(@a) isn't in ref context, but only when the
+ # parens are there.
+ my $need_parens = !$forbid_parens && $self->{'in_refgen'}
+ && $op->name =~ /[ah]v\z/
+ && ($op->flags & (OPf_PARENS|OPf_REF)) == OPf_PARENS;
+ # The @a in \my @a must not have parens.
+ if (!$need_parens && $self->{'in_refgen'}) {
+ $forbid_parens = 1;
+ }
if ($op->private & OPpLVAL_INTRO and not $self->{'avoid_local'}{$$op}) {
- my $my = $op->private & OPpPAD_STATE
- ? $self->keyword("state")
- : "my";
- if ($forbid_parens || want_scalar($op)) {
+ # Check $padname->FLAGS for statehood, rather than $op->private,
+ # because enteriter ops do not carry the flag.
+ my $my =
+ $self->keyword($padname->FLAGS & SVpad_STATE ? "state" : "my");
+ if ($padname->FLAGS & SVpad_TYPED) {
+ $my .= ' ' . $padname->SvSTASH->NAME;
+ }
+ if ($need_parens) {
+ return "$my($text)";
+ } elsif ($forbid_parens || want_scalar($op)) {
return "$my $text";
} else {
return $self->maybe_parens_func($my, $text, $cx, 16);
}
} else {
- return $text;
+ return $need_parens ? "($text)" : $text;
}
}
@@ -1257,7 +1535,8 @@ sub maybe_my {
sub AUTOLOAD {
if ($AUTOLOAD =~ s/^.*::pp_//) {
- warn "unexpected OP_".uc $AUTOLOAD;
+ warn "unexpected OP_".
+ ($_[1]->type == OP_CUSTOM ? "CUSTOM ($AUTOLOAD)" : uc $AUTOLOAD);
return "XXX";
} else {
die "Undefined subroutine $AUTOLOAD called";
@@ -1314,11 +1593,12 @@ sub scopeop {
my $top = $kid->first;
my $name = $top->name;
if ($name eq "and") {
- $name = "while";
+ $name = $self->keyword("while");
} elsif ($name eq "or") {
- $name = "until";
+ $name = $self->keyword("until");
} else { # no conditional -> while 1 or until 0
- return $self->deparse($top->first, 1) . " while 1";
+ return $self->deparse($top->first, 1) . " "
+ . $self->keyword("while") . " 1";
}
my $cond = $top->first;
my $body = $cond->sibling->first; # skip lineseq
@@ -1334,7 +1614,10 @@ sub scopeop {
}
if ($cx > 0) { # inside an expression, (a do {} while for lineseq)
my $body = $self->lineseq($op, 0, @kids);
- return is_lexical_subs(@kids) ? $body : "do {\n\t$body\n\b}";
+ return is_lexical_subs(@kids)
+ ? $body
+ : ($self->lex_in_scope("&do") ? "CORE::do" : "do")
+ . " {\n\t$body\n\b}";
} else {
my $lineseq = $self->lineseq($op, $cx, @kids);
return (length ($lineseq) ? "$lineseq;" : "");
@@ -1359,8 +1642,10 @@ sub deparse_root {
push @kids, $kid;
}
$self->walk_lineseq($op, \@kids,
- sub { print $self->indent($_[0].';');
- print "\n" unless $_[1] == $#kids;
+ sub { return unless length $_[0];
+ print $self->indent($_[0].';');
+ print "\n"
+ unless $_[1] == $#kids;
});
}
@@ -1381,8 +1666,9 @@ sub walk_lineseq {
$i += $kids[$i]->sibling->name eq "unstack" ? 2 : 1);
next;
}
- $expr .= $self->deparse($kids[$i], (@kids != 1)/2);
- $expr =~ s/;\n?\z//;
+ my $expr2 = $self->deparse($kids[$i], (@kids != 1)/2);
+ $expr2 =~ s/^sub :(?!:)/+sub :/; # statement label otherwise
+ $expr .= $expr2;
$callback->($expr, $i);
}
}
@@ -1397,9 +1683,14 @@ sub gv_name {
my $self = shift;
my $gv = shift;
my $raw = shift;
-Carp::confess() unless ref($gv) eq "B::GV";
- my $stash = $gv->STASH->NAME;
- my $name = $raw ? $gv->NAME : $gv->SAFENAME;
+#Carp::confess() unless ref($gv) eq "B::GV";
+ my $cv = $gv->FLAGS & SVf_ROK ? $gv->RV : 0;
+ my $stash = ($cv || $gv)->STASH->NAME;
+ my $name = $raw
+ ? $cv ? $cv->NAME_HEK || $cv->GV->NAME : $gv->NAME
+ : $cv
+ ? B::safename($cv->NAME_HEK || $cv->GV->NAME)
+ : $gv->SAFENAME;
if ($stash eq 'main' && $name =~ /^::/) {
$stash = '::';
}
@@ -1428,12 +1719,12 @@ sub stash_variable {
return "$prefix$name" if $name =~ /::/;
- unless ($prefix eq '$' || $prefix eq '@' || #'
+ unless ($prefix eq '$' || $prefix eq '@' || $prefix eq '&' || #'
$prefix eq '%' || $prefix eq '$#') {
return "$prefix$name";
}
- if ($name =~ /^[^\w+-]$/) {
+ if ($name =~ /^[^[:alpha:]_+-]$/) {
if (defined $cx && $cx == 26) {
if ($prefix eq '@') {
return "$prefix\{$name}";
@@ -1448,6 +1739,41 @@ sub stash_variable {
return $prefix . $self->maybe_qualify($prefix, $name);
}
+my %unctrl = # portable to EBCDIC
+ (
+ "\c@" => '@', # unused
+ "\cA" => 'A',
+ "\cB" => 'B',
+ "\cC" => 'C',
+ "\cD" => 'D',
+ "\cE" => 'E',
+ "\cF" => 'F',
+ "\cG" => 'G',
+ "\cH" => 'H',
+ "\cI" => 'I',
+ "\cJ" => 'J',
+ "\cK" => 'K',
+ "\cL" => 'L',
+ "\cM" => 'M',
+ "\cN" => 'N',
+ "\cO" => 'O',
+ "\cP" => 'P',
+ "\cQ" => 'Q',
+ "\cR" => 'R',
+ "\cS" => 'S',
+ "\cT" => 'T',
+ "\cU" => 'U',
+ "\cV" => 'V',
+ "\cW" => 'W',
+ "\cX" => 'X',
+ "\cY" => 'Y',
+ "\cZ" => 'Z',
+ "\c[" => '[', # unused
+ "\c\\" => '\\', # unused
+ "\c]" => ']', # unused
+ "\c_" => '_', # unused
+ );
+
# Return just the name, without the prefix. It may be returned as a quoted
# string. The second return value is a boolean indicating that.
sub stash_variable_name {
@@ -1455,12 +1781,12 @@ sub stash_variable_name {
my $name = $self->gv_name($gv, 1);
$name = $self->maybe_qualify($prefix,$name);
if ($name =~ /^(?:\S|(?!\d)[\ca-\cz]?(?:\w|::)*|\d+)\z/) {
- $name =~ s/^([\ca-\cz])/'^'.($1|'@')/e;
+ $name =~ s/^([\ca-\cz])/'^' . $unctrl{$1}/e;
$name =~ /^(\^..|{)/ and $name = "{$name}";
return $name, 0; # not quoted
}
else {
- single_delim("q", "'", $name), 1;
+ single_delim("q", "'", $name, $self), 1;
}
}
@@ -1510,6 +1836,7 @@ sub populate_curcvlex {
next;
}
my $name = $ns[$i]->PVX;
+ next unless defined $name;
my ($seq_st, $seq_en) =
($ns[$i]->FLAGS & SVf_FAKE)
? (0, 999999)
@@ -1517,7 +1844,7 @@ sub populate_curcvlex {
push @{$self->{'curcvlex'}{
($ns[$i]->FLAGS & SVpad_OUR ? 'o' : 'm') . $name
- }}, [$seq_st, $seq_en];
+ }}, [$seq_st, $seq_en, $ns[$i]];
}
}
}
@@ -1560,11 +1887,13 @@ sub find_scope {
sub cop_subs {
my ($self, $op, $out_seq) = @_;
my $seq = $op->cop_seq;
- # If we have nephews, then our sequence number indicates
- # the cop_seq of the end of some sort of scope.
- if (class($op->sibling) ne "NULL" && $op->sibling->flags & OPf_KIDS
+ if ($] < 5.021006) {
+ # If we have nephews, then our sequence number indicates
+ # the cop_seq of the end of some sort of scope.
+ if (class($op->sibling) ne "NULL" && $op->sibling->flags & OPf_KIDS
and my $nseq = $self->find_scope_st($op->sibling) ) {
$seq = $nseq;
+ }
}
$seq = $out_seq if defined($out_seq) && $out_seq < $seq;
return $self->seq_subs($seq);
@@ -1576,10 +1905,24 @@ sub seq_subs {
#push @text, "# ($seq)\n";
return "" if !defined $seq;
+ my @pending;
while (scalar(@{$self->{'subs_todo'}})
and $seq > $self->{'subs_todo'}[0][0]) {
+ my $cv = $self->{'subs_todo'}[0][1];
+ # Skip the OUTSIDE check for lexical subs. We may be deparsing a
+ # cloned anon sub with lexical subs declared in it, in which case
+ # the OUTSIDE pointer points to the anon protosub.
+ my $lexical = ref $self->{'subs_todo'}[0][3];
+ my $outside = !$lexical && $cv && $cv->OUTSIDE;
+ if (!$lexical and $cv
+ and ${$cv->OUTSIDE || \0} != ${$self->{'curcv'}})
+ {
+ push @pending, shift @{$self->{'subs_todo'}};
+ next;
+ }
push @text, $self->next_todo;
}
+ unshift @{$self->{'subs_todo'}}, @pending;
return @text;
}
@@ -1599,9 +1942,13 @@ sub pp_nextstate {
$self->{'curcop'} = $op;
my @text;
push @text, $self->cop_subs($op);
+ if (@text) {
+ # Special marker to swallow up the semicolon
+ push @text, "\cK";
+ }
my $stash = $op->stashpv;
if ($stash ne $self->{'curstash'}) {
- push @text, "package $stash;\n";
+ push @text, $self->keyword("package") . " $stash;\n";
$self->{'curstash'} = $stash;
}
@@ -1627,14 +1974,15 @@ sub pp_nextstate {
if (defined ($warning_bits) and
!defined($self->{warnings}) || $self->{'warnings'} ne $warning_bits) {
- push @text, declare_warnings($self->{'warnings'}, $warning_bits);
+ push @text,
+ $self->declare_warnings($self->{'warnings'}, $warning_bits);
$self->{'warnings'} = $warning_bits;
}
my $hints = $] < 5.008009 ? $op->private : $op->hints;
my $old_hints = $self->{'hints'};
if ($self->{'hints'} != $hints) {
- push @text, declare_hints($self->{'hints'}, $hints);
+ push @text, $self->declare_hints($self->{'hints'}, $hints);
$self->{'hints'} = $hints;
}
@@ -1661,14 +2009,15 @@ sub pp_nextstate {
my $bundle =
$feature::hint_bundles[$to >> $feature::hint_shift];
$bundle =~ s/(\d[13579])\z/$1+1/e; # 5.11 => 5.12
- push @text, "no feature;\n",
- "use feature ':$bundle';\n";
+ push @text,
+ $self->keyword("no") . " feature ':all';\n",
+ $self->keyword("use") . " feature ':$bundle';\n";
}
}
}
if ($] > 5.009) {
- push @text, declare_hinthash(
+ push @text, $self->declare_hinthash(
$self->{'hinthash'}, $newhh,
$self->{indent_size}, $self->{hints},
);
@@ -1678,7 +2027,7 @@ sub pp_nextstate {
# This should go after of any branches that add statements, to
# increase the chances that it refers to the same line it did in
# the original program.
- if ($self->{'linenums'}) {
+ if ($self->{'linenums'} && $cx != .5) { # $cx == .5 means in a format
push @text, "\f#line " . $op->line .
' "' . $op->file, qq'"\n';
}
@@ -1689,26 +2038,28 @@ sub pp_nextstate {
}
sub declare_warnings {
- my ($from, $to) = @_;
+ my ($self, $from, $to) = @_;
if (($to & WARN_MASK) eq (warnings::bits("all") & WARN_MASK)) {
- return "use warnings;\n";
+ return $self->keyword("use") . " warnings;\n";
}
elsif (($to & WARN_MASK) eq ("\0"x length($to) & WARN_MASK)) {
- return "no warnings;\n";
+ return $self->keyword("no") . " warnings;\n";
}
- return "BEGIN {\${^WARNING_BITS} = ".perlstring($to)."}\n";
+ return "BEGIN {\${^WARNING_BITS} = \""
+ . join("", map { sprintf("\\x%02x", ord $_) } split "", $to)
+ . "\"}\n\cK";
}
sub declare_hints {
- my ($from, $to) = @_;
+ my ($self, $from, $to) = @_;
my $use = $to & ~$from;
my $no = $from & ~$to;
my $decls = "";
for my $pragma (hint_pragmas($use)) {
- $decls .= "use $pragma;\n";
+ $decls .= $self->keyword("use") . " $pragma;\n";
}
for my $pragma (hint_pragmas($no)) {
- $decls .= "no $pragma;\n";
+ $decls .= $self->keyword("no") . " $pragma;\n";
}
return $decls;
}
@@ -1727,7 +2078,7 @@ my %ignored_hints = (
my %rev_feature;
sub declare_hinthash {
- my ($from, $to, $indent, $hints) = @_;
+ my ($self, $from, $to, $indent, $hints) = @_;
my $doing_features =
($hints & $feature::hint_mask) == $feature::hint_mask;
my @decls;
@@ -1740,10 +2091,10 @@ sub declare_hinthash {
if (!exists $from->{$key} or $from->{$key} ne $to->{$key}) {
push(@features, $key), next if $is_feature;
push @decls,
- qq(\$^H{) . single_delim("q", "'", $key) . qq(} = )
+ qq(\$^H{) . single_delim("q", "'", $key, $self) . qq(} = )
. (
defined $to->{$key}
- ? single_delim("q", "'", $to->{$key})
+ ? single_delim("q", "'", $to->{$key}, $self)
: 'undef'
)
. qq(;);
@@ -1763,17 +2114,17 @@ sub declare_hinthash {
if (!%rev_feature) { %rev_feature = reverse %feature::feature }
}
if (@features) {
- push @ret, "use feature "
+ push @ret, $self->keyword("use") . " feature "
. join(", ", map "'$rev_feature{$_}'", @features) . ";\n";
}
if (@unfeatures) {
- push @ret, "no feature "
+ push @ret, $self->keyword("no") . " feature "
. join(", ", map "'$rev_feature{$_}'", @unfeatures)
. ";\n";
}
@decls and
push @ret,
- join("\n" . (" " x $indent), "BEGIN {", @decls) . "\n}\n";
+ join("\n" . (" " x $indent), "BEGIN {", @decls) . "\n}\n\cK";
return @ret;
}
@@ -1822,20 +2173,36 @@ my %strong_proto_keywords = map { $_ => 1 } qw(
undef
);
-sub keyword {
- my $self = shift;
- my $name = shift;
- return $name if $name =~ /^CORE::/; # just in case
- if (exists $feature_keywords{$name}) {
+sub feature_enabled {
+ my($self,$name) = @_;
my $hh;
my $hints = $self->{hints} & $feature::hint_mask;
if ($hints && $hints != $feature::hint_mask) {
$hh = _features_from_bundle($hints);
}
elsif ($hints) { $hh = $self->{'hinthash'} }
- return "CORE::$name"
- if !$hh
- || !$hh->{"feature_$feature_keywords{$name}"}
+ return $hh && $hh->{"feature_$feature_keywords{$name}"}
+}
+
+sub keyword {
+ my $self = shift;
+ my $name = shift;
+ return $name if $name =~ /^CORE::/; # just in case
+ if (exists $feature_keywords{$name}) {
+ return "CORE::$name" if not $self->feature_enabled($name);
+ }
+ # This sub may be called for a program that has no nextstate ops. In
+ # that case we may have a lexical sub named no/use/sub in scope but
+ # but $self->lex_in_scope will return false because it depends on the
+ # current nextstate op. So we need this alternate method if there is
+ # no current cop.
+ if (!$self->{'curcop'}) {
+ $self->populate_curcvlex() if !defined $self->{'curcvlex'};
+ return "CORE::$name" if exists $self->{'curcvlex'}{"m&$name"}
+ || exists $self->{'curcvlex'}{"o&$name"};
+ } elsif ($self->lex_in_scope("&$name")
+ || $self->lex_in_scope("&$name", 1)) {
+ return "CORE::$name";
}
if ($strong_proto_keywords{$name}
|| ($name !~ /^(?:chom?p|do|exec|glob|s(?:elect|ystem))\z/
@@ -1857,16 +2224,7 @@ sub baseop {
return $self->keyword($name);
}
-sub pp_stub {
- my $self = shift;
- my($op, $cx, $name) = @_;
- if ($cx >= 1) {
- return "()";
- }
- else {
- return "();";
- }
-}
+sub pp_stub { "()" }
sub pp_wantarray { baseop(@_, "wantarray") }
sub pp_fork { baseop(@_, "fork") }
sub pp_wait { maybe_targmy(@_, \&baseop, "wait") }
@@ -1918,6 +2276,8 @@ sub pp_i_predec { pfixop(@_, "--", 23) }
sub pp_i_postinc { maybe_targmy(@_, \&pfixop, "++", 23, POSTFIX) }
sub pp_i_postdec { maybe_targmy(@_, \&pfixop, "--", 23, POSTFIX) }
sub pp_complement { maybe_targmy(@_, \&pfixop, "~", 21) }
+*pp_ncomplement = *pp_complement;
+sub pp_scomplement { maybe_targmy(@_, \&pfixop, "~.", 21) }
sub pp_negate { maybe_targmy(@_, \&real_negate) }
sub real_negate {
@@ -1955,13 +2315,17 @@ sub unop {
my $builtinname = $name;
$builtinname =~ /^CORE::/ or $builtinname = "CORE::$name";
if (defined prototype($builtinname)
+ && $builtinname ne 'CORE::readline'
&& prototype($builtinname) =~ /^;?\*/
&& $kid->name eq "rv2gv") {
$kid = $kid->first;
}
if ($nollafr) {
- ($kid = $self->deparse($kid, 16)) =~ s/^\cS//;
+ if (($kid = $self->deparse($kid, 16)) !~ s/^\cS//) {
+ # require foo() is a syntax error.
+ $kid =~ /^(?!\d)\w/ and $kid = "($kid)";
+ }
return $self->maybe_parens(
$self->keyword($name) . " $kid", $cx, 16
);
@@ -2032,7 +2396,19 @@ sub pp_tell { unop(@_, "tell") }
sub pp_getsockname { unop(@_, "getsockname") }
sub pp_getpeername { unop(@_, "getpeername") }
-sub pp_chdir { maybe_targmy(@_, \&unop, "chdir") }
+sub pp_chdir {
+ my ($self, $op, $cx) = @_;
+ if (($op->flags & (OPf_SPECIAL|OPf_KIDS)) == (OPf_SPECIAL|OPf_KIDS)) {
+ my $kw = $self->keyword("chdir");
+ my $kid = $self->const_sv($op->first)->PV;
+ my $code = $kw
+ . ($cx >= 16 || $self->{'parens'} ? "($kid)" : " $kid");
+ maybe_targmy(@_, sub { $_[3] }, $code);
+ } else {
+ maybe_targmy(@_, \&unop, "chdir")
+ }
+}
+
sub pp_chroot { maybe_targmy(@_, \&unop, "chroot") }
sub pp_readlink { unop(@_, "readlink") }
sub pp_rmdir { maybe_targmy(@_, \&unop, "rmdir") }
@@ -2054,7 +2430,7 @@ sub pp_dofile {
sub pp_entereval {
unop(
@_,
- $_[1]->private & OPpEVAL_BYTES ? $_[0]->keyword('evalbytes') : "eval"
+ $_[1]->private & OPpEVAL_BYTES ? 'evalbytes' : "eval"
)
}
@@ -2104,17 +2480,18 @@ sub pp_exists {
my $self = shift;
my($op, $cx) = @_;
my $arg;
+ my $name = $self->keyword("exists");
if ($op->private & OPpEXISTS_SUB) {
# Checking for the existence of a subroutine
- return $self->maybe_parens_func("exists",
+ return $self->maybe_parens_func($name,
$self->pp_rv2cv($op->first, 16), $cx, 16);
}
if ($op->flags & OPf_SPECIAL) {
# Array element, not hash element
- return $self->maybe_parens_func("exists",
+ return $self->maybe_parens_func($name,
$self->pp_aelem($op->first, 16), $cx, 16);
}
- return $self->maybe_parens_func("exists", $self->pp_helem($op->first, 16),
+ return $self->maybe_parens_func($name, $self->pp_helem($op->first, 16),
$cx, 16);
}
@@ -2122,24 +2499,25 @@ sub pp_delete {
my $self = shift;
my($op, $cx) = @_;
my $arg;
+ my $name = $self->keyword("delete");
if ($op->private & OPpSLICE) {
if ($op->flags & OPf_SPECIAL) {
# Deleting from an array, not a hash
- return $self->maybe_parens_func("delete",
+ return $self->maybe_parens_func($name,
$self->pp_aslice($op->first, 16),
$cx, 16);
}
- return $self->maybe_parens_func("delete",
+ return $self->maybe_parens_func($name,
$self->pp_hslice($op->first, 16),
$cx, 16);
} else {
if ($op->flags & OPf_SPECIAL) {
# Deleting from an array, not a hash
- return $self->maybe_parens_func("delete",
+ return $self->maybe_parens_func($name,
$self->pp_aelem($op->first, 16),
$cx, 16);
}
- return $self->maybe_parens_func("delete",
+ return $self->maybe_parens_func($name,
$self->pp_helem($op->first, 16),
$cx, 16);
}
@@ -2149,23 +2527,30 @@ sub pp_require {
my $self = shift;
my($op, $cx) = @_;
my $opname = $op->flags & OPf_SPECIAL ? 'CORE::require' : 'require';
- if (class($op) eq "UNOP" and $op->first->name eq "const"
- and $op->first->private & OPpCONST_BARE)
- {
- my $name = $self->const_sv($op->first)->PV;
- $name =~ s[/][::]g;
- $name =~ s/\.pm//g;
- return $self->maybe_parens("$opname $name", $cx, 16);
- } else {
- $self->unop(
+ my $kid = $op->first;
+ if ($kid->name eq 'const') {
+ my $priv = $kid->private;
+ my $sv = $self->const_sv($kid);
+ my $arg;
+ if ($priv & OPpCONST_BARE) {
+ $arg = $sv->PV;
+ $arg =~ s[/][::]g;
+ $arg =~ s/\.pm//g;
+ } elsif ($priv & OPpCONST_NOVER) {
+ $opname = $self->keyword('no');
+ $arg = $self->const($sv, 16);
+ } elsif ((my $tmp = $self->const($sv, 16)) =~ /^v/) {
+ $arg = $tmp;
+ }
+ if ($arg) {
+ return $self->maybe_parens("$opname $arg", $cx, 16);
+ }
+ }
+ $self->unop(
$op, $cx,
- $op->first->name eq 'const'
- && $op->first->private & OPpCONST_NOVER
- ? "no"
- : $opname,
+ $opname,
1, # llafr does not apply
- );
- }
+ );
}
sub pp_scalar {
@@ -2222,19 +2607,17 @@ sub pp_refgen {
my($op, $cx) = @_;
my $kid = $op->first;
if ($kid->name eq "null") {
- $kid = $kid->first;
- if (!null($kid->sibling) and
- $kid->sibling->name eq "anoncode") {
- return $self->e_anoncode({ code => $self->padval($kid->sibling->targ) });
+ my $anoncode = $kid = $kid->first;
+ if ($anoncode->name eq "anonconst") {
+ $anoncode = $anoncode->first->first->sibling;
+ }
+ if ($anoncode->name eq "anoncode"
+ or !null($anoncode = $kid->sibling) and
+ $anoncode->name eq "anoncode") {
+ return $self->e_anoncode({ code => $self->padval($anoncode->targ) });
} elsif ($kid->name eq "pushmark") {
my $sib_name = $kid->sibling->name;
- if ($sib_name =~ /^(pad|rv2)[ah]v$/
- and not $kid->sibling->flags & OPf_REF)
- {
- # The @a in \(@a) isn't in ref context, but only when the
- # parens are there.
- return "\\(" . $self->pp_list($op->first) . ")";
- } elsif ($sib_name eq 'entersub') {
+ if ($sib_name eq 'entersub') {
my $text = $self->deparse($kid->sibling, 1);
# Always show parens for \(&func()), but only with -p otherwise
$text = "($text)" if $self->{'parens'}
@@ -2243,13 +2626,14 @@ sub pp_refgen {
}
}
}
+ local $self->{'in_refgen'} = 1;
$self->pfixop($op, $cx, "\\", 20);
}
sub e_anoncode {
my ($self, $info) = @_;
my $text = $self->deparse_sub($info->{code});
- return "sub " . $text;
+ return $self->keyword("sub") . " $text";
}
sub pp_srefgen { pp_refgen(@_) }
@@ -2258,8 +2642,11 @@ sub pp_readline {
my $self = shift;
my($op, $cx) = @_;
my $kid = $op->first;
- $kid = $kid->first if $kid->name eq "rv2gv"; # <$fh>
- return "<" . $self->deparse($kid, 1) . ">" if is_scalar($kid);
+ if (is_scalar($kid)) {
+ my $kid_deparsed = $self->deparse($kid, 1);
+ return '<<>>' if $op->flags & OPf_SPECIAL and $kid_deparsed eq 'ARGV';
+ return "<$kid_deparsed>";
+ }
return $self->unop($op, $cx, "readline");
}
@@ -2300,6 +2687,8 @@ sub loopex {
# no-op
} elsif (class($op) eq "UNOP") {
(my $kid = $self->deparse($op->first, 7)) =~ s/^\cS//;
+ # last foo() is a syntax error.
+ $kid =~ /^(?!\d)\w/ and $kid = "($kid)";
$name .= " $kid";
}
return $self->maybe_parens($name, $cx, 7);
@@ -2398,8 +2787,10 @@ BEGIN {
'subtract' => 18, 'i_subtract' => 18,
'concat' => 18,
'left_shift' => 17, 'right_shift' => 17,
- 'bit_and' => 13,
+ 'bit_and' => 13, 'nbit_and' => 13, 'sbit_and' => 13,
'bit_or' => 12, 'bit_xor' => 12,
+ 'sbit_or' => 12, 'sbit_xor' => 12,
+ 'nbit_or' => 12, 'nbit_xor' => 12,
'and' => 3,
'or' => 2, 'xor' => 2,
);
@@ -2426,13 +2817,14 @@ BEGIN {
'multiply=' => 7, 'i_multiply=' => 7,
'divide=' => 7, 'i_divide=' => 7,
'modulo=' => 7, 'i_modulo=' => 7,
- 'repeat=' => 7,
+ 'repeat=' => 7, 'refassign' => 7, 'refassign=' => 7,
'add=' => 7, 'i_add=' => 7,
'subtract=' => 7, 'i_subtract=' => 7,
'concat=' => 7,
'left_shift=' => 7, 'right_shift=' => 7,
- 'bit_and=' => 7,
- 'bit_or=' => 7, 'bit_xor=' => 7,
+ 'bit_and=' => 7, 'sbit_and=' => 7, 'nbit_and=' => 7,
+ 'nbit_or=' => 7, 'nbit_xor=' => 7,
+ 'sbit_or=' => 7, 'sbit_xor=' => 7,
'andassign' => 7,
'orassign' => 7,
);
@@ -2463,9 +2855,17 @@ sub binop {
if ($flags & SWAP_CHILDREN) {
($left, $right) = ($right, $left);
}
+ my $leftop = $left;
$left = $self->deparse_binop_left($op, $left, $prec);
$left = "($left)" if $flags & LIST_CONTEXT
- && $left !~ /^(my|our|local|)[\@\(]/;
+ and $left !~ /^(my|our|local|)[\@\(]/
+ || do {
+ # Parenthesize if the left argument is a
+ # lone repeat op.
+ my $left = $leftop->first->sibling;
+ $left->name eq 'repeat'
+ && null($left->sibling);
+ };
$right = $self->deparse_binop_right($op, $right, $prec);
return $self->maybe_parens("$left $opname$eq $right", $cx, $prec);
}
@@ -2487,6 +2887,12 @@ sub pp_right_shift { maybe_targmy(@_, \&binop, ">>", 17, ASSIGN) }
sub pp_bit_and { maybe_targmy(@_, \&binop, "&", 13, ASSIGN) }
sub pp_bit_or { maybe_targmy(@_, \&binop, "|", 12, ASSIGN) }
sub pp_bit_xor { maybe_targmy(@_, \&binop, "^", 12, ASSIGN) }
+*pp_nbit_and = *pp_bit_and;
+*pp_nbit_or = *pp_bit_or;
+*pp_nbit_xor = *pp_bit_xor;
+sub pp_sbit_and { maybe_targmy(@_, \&binop, "&.", 13, ASSIGN) }
+sub pp_sbit_or { maybe_targmy(@_, \&binop, "|.", 12, ASSIGN) }
+sub pp_sbit_xor { maybe_targmy(@_, \&binop, "^.", 12, ASSIGN) }
sub pp_eq { binop(@_, "==", 14) }
sub pp_ne { binop(@_, "!=", 14) }
@@ -2501,7 +2907,7 @@ sub pp_i_lt { binop(@_, "<", 15) }
sub pp_i_gt { binop(@_, ">", 15) }
sub pp_i_ge { binop(@_, ">=", 15) }
sub pp_i_le { binop(@_, "<=", 15) }
-sub pp_i_ncmp { binop(@_, "<=>", 14) }
+sub pp_i_ncmp { maybe_targmy(@_, \&binop, "<=>", 14) }
sub pp_seq { binop(@_, "eq", 14) }
sub pp_sne { binop(@_, "ne", 14) }
@@ -2509,7 +2915,7 @@ sub pp_slt { binop(@_, "lt", 15) }
sub pp_sgt { binop(@_, "gt", 15) }
sub pp_sge { binop(@_, "ge", 15) }
sub pp_sle { binop(@_, "le", 15) }
-sub pp_scmp { binop(@_, "cmp", 14) }
+sub pp_scmp { maybe_targmy(@_, \&binop, "cmp", 14) }
sub pp_sassign { binop(@_, "=", 7, SWAP_CHILDREN) }
sub pp_aassign { binop(@_, "=", 7, SWAP_CHILDREN | LIST_CONTEXT) }
@@ -2544,8 +2950,10 @@ sub real_concat {
return $self->maybe_parens("$left .$eq $right", $cx, $prec);
}
+sub pp_repeat { maybe_targmy(@_, \&repeat) }
+
# 'x' is weird when the left arg is a list
-sub pp_repeat {
+sub repeat {
my $self = shift;
my($op, $cx) = @_;
my $left = $op->first;
@@ -2557,6 +2965,7 @@ sub pp_repeat {
$prec = 7;
}
if (null($right)) { # list repeat; count is inside left-side ex-list
+ # in 5.21.5 and earlier
my $kid = $left->first->sibling; # skip pushmark
my @exprs;
for (; !null($kid->sibling); $kid = $kid->sibling) {
@@ -2565,7 +2974,11 @@ sub pp_repeat {
$right = $kid;
$left = "(" . join(", ", @exprs). ")";
} else {
- $left = $self->deparse_binop_left($op, $left, $prec);
+ my $dolist = $op->private & OPpREPEAT_DOLIST;
+ $left = $self->deparse_binop_left($op, $left, $dolist ? 1 : $prec);
+ if ($dolist) {
+ $left = "($left)";
+ }
}
$right = $self->deparse_binop_right($op, $right, $prec);
return $self->maybe_parens("$left x$eq $right", $cx, $prec);
@@ -2596,6 +3009,7 @@ sub logop {
my ($op, $cx, $lowop, $lowprec, $highop, $highprec, $blockname) = @_;
my $left = $op->first;
my $right = $op->first->sibling;
+ $blockname &&= $self->keyword($blockname);
if ($cx < 1 and is_scope($right) and $blockname
and $self->{'expand'} < 7)
{ # if ($a) {$b}
@@ -2701,14 +3115,6 @@ sub listop {
return "$exprs[0] = $fullname"
. ($parens ? "($exprs[0])" : " $exprs[0]");
}
- if ($name =~ /^(system|exec)$/
- && ($op->flags & OPf_STACKED)
- && @exprs > 1)
- {
- # handle the "system prog a1,a2,.." form
- my $prog = shift @exprs;
- $exprs[0] = "$prog $exprs[0]";
- }
if ($parens && $nollafr) {
return "($fullname " . join(", ", @exprs) . ")";
@@ -2731,7 +3137,7 @@ sub pp_substr {
}
maybe_local(@_, listop(@_, "substr"))
}
-sub pp_vec { maybe_local(@_, listop(@_, "vec")) }
+sub pp_vec { maybe_targmy(@_, \&maybe_local, listop(@_, "vec")) }
sub pp_index { maybe_targmy(@_, \&listop, "index") }
sub pp_rindex { maybe_targmy(@_, \&listop, "rindex") }
sub pp_sprintf { maybe_targmy(@_, \&listop, "sprintf") }
@@ -2785,8 +3191,8 @@ sub pp_mkdir { maybe_targmy(@_, \&listop, "mkdir") }
sub pp_open_dir { listop(@_, "opendir") }
sub pp_seekdir { listop(@_, "seekdir") }
sub pp_waitpid { maybe_targmy(@_, \&listop, "waitpid") }
-sub pp_system { maybe_targmy(@_, \&listop, "system") }
-sub pp_exec { maybe_targmy(@_, \&listop, "exec") }
+sub pp_system { maybe_targmy(@_, \&indirop, "system") }
+sub pp_exec { maybe_targmy(@_, \&indirop, "exec") }
sub pp_kill { maybe_targmy(@_, \&listop, "kill") }
sub pp_setpgrp { maybe_targmy(@_, \&listop, "setpgrp") }
sub pp_getpriority { maybe_targmy(@_, \&listop, "getpriority") }
@@ -2919,7 +3325,9 @@ sub indirop {
# comparison routine. We have to say sort(...) in that case.
return "$name2($args)";
} else {
- return $self->maybe_parens_func($name2, $args, $cx, 5);
+ return length $args
+ ? $self->maybe_parens_func($name2, $args, $cx, 5)
+ : $name2 . '()' x (7 < $cx);
}
}
@@ -2947,7 +3355,8 @@ sub mapop {
$expr = $self->deparse($kid, 6);
push @exprs, $expr if defined $expr;
}
- return $self->maybe_parens_func($name, $code . join(", ", @exprs), $cx, 5);
+ return $self->maybe_parens_func($self->keyword($name),
+ $code . join(", ", @exprs), $cx, 5);
}
sub pp_mapwhile { mapop(@_, "map") }
@@ -2955,6 +3364,18 @@ sub pp_grepwhile { mapop(@_, "grep") }
sub pp_mapstart { baseop(@_, "map") }
sub pp_grepstart { baseop(@_, "grep") }
+my %uses_intro;
+BEGIN {
+ @uses_intro{
+ eval { require B::Op_private }
+ ? @{$B::Op_private::ops_using{OPpLVAL_INTRO}}
+ : qw(gvsv rv2sv rv2hv rv2gv rv2av aelem helem aslice
+ hslice delete padsv padav padhv enteriter entersub padrange
+ pushmark cond_expr refassign list)
+ } = ();
+ delete @uses_intro{qw( lvref lvrefslice lvavref entersub )};
+}
+
sub pp_list {
my $self = shift;
my($op, $cx) = @_;
@@ -2963,48 +3384,61 @@ sub pp_list {
return '' if class($kid) eq 'NULL';
my $lop;
my $local = "either"; # could be local(...), my(...), state(...) or our(...)
+ my $type;
for ($lop = $kid; !null($lop); $lop = $lop->sibling) {
- # This assumes that no other private flags equal 128, and that
- # OPs that store things other than flags in their op_private,
- # like OP_AELEMFAST, won't be immediate children of a list.
- #
- # OP_ENTERSUB and OP_SPLIT can break this logic, so check for them.
- # I suspect that open and exit can too.
- # XXX This really needs to be rewritten to accept only those ops
- # known to take the OPpLVAL_INTRO flag.
-
- if (!($lop->private & (OPpLVAL_INTRO|OPpOUR_INTRO)
- or $lop->name eq "undef")
- or $lop->name =~ /^(?:entersub|exit|open|split)\z/)
- {
- $local = ""; # or not
- last;
- }
- if ($lop->name =~ /^pad[ash]v$/) {
- if ($lop->private & OPpPAD_STATE) { # state()
- ($local = "", last) if $local =~ /^(?:local|our|my)$/;
+ my $lopname = $lop->name;
+ my $loppriv = $lop->private;
+ my $newtype;
+ if ($lopname =~ /^pad[ash]v$/ && $loppriv & OPpLVAL_INTRO) {
+ if ($loppriv & OPpPAD_STATE) { # state()
+ ($local = "", last) if $local !~ /^(?:either|state)$/;
$local = "state";
} else { # my()
- ($local = "", last) if $local =~ /^(?:local|our|state)$/;
+ ($local = "", last) if $local !~ /^(?:either|my)$/;
$local = "my";
}
- } elsif ($lop->name =~ /^(gv|rv2)[ash]v$/
- && $lop->private & OPpOUR_INTRO
- or $lop->name eq "null" && $lop->first->name eq "gvsv"
+ my $padname = $self->padname_sv($lop->targ);
+ if ($padname->FLAGS & SVpad_TYPED) {
+ $newtype = $padname->SvSTASH->NAME;
+ }
+ } elsif ($lopname =~ /^(?:gv|rv2)([ash])v$/
+ && $loppriv & OPpOUR_INTRO
+ or $lopname eq "null" && class($lop) eq 'UNOP'
+ && $lop->first->name eq "gvsv"
&& $lop->first->private & OPpOUR_INTRO) { # our()
- ($local = "", last) if $local =~ /^(?:my|local|state)$/;
- $local = "our";
- } elsif ($lop->name ne "undef"
- # specifically avoid the "reverse sort" optimisation,
- # where "reverse" is nullified
- && !($lop->name eq 'sort' && ($lop->flags & OPpSORT_REVERSE)))
+ my $newlocal = "local " x !!($loppriv & OPpLVAL_INTRO) . "our";
+ ($local = "", last)
+ if $local ne 'either' && $local ne $newlocal;
+ $local = $newlocal;
+ my $funny = !$1 || $1 eq 's' ? '$' : $1 eq 'a' ? '@' : '%';
+ if (my $t = $self->find_our_type(
+ $funny . $self->gv_or_padgv($lop->first)->NAME
+ )) {
+ $newtype = $t;
+ }
+ } elsif ($lopname ne 'undef'
+ and !($loppriv & OPpLVAL_INTRO)
+ || !exists $uses_intro{$lopname eq 'null'
+ ? substr B::ppname($lop->targ), 3
+ : $lopname})
+ {
+ $local = ""; # or not
+ last;
+ } elsif ($lopname ne "undef")
{
# local()
- ($local = "", last) if $local =~ /^(?:my|our|state)$/;
+ ($local = "", last) if $local !~ /^(?:either|local)$/;
$local = "local";
}
+ if (defined $type && defined $newtype && $newtype ne $type) {
+ $local = '';
+ last;
+ }
+ $type = $newtype;
}
$local = "" if $local eq "either"; # no point if it's all undefs
+ $local &&= join ' ', map $self->keyword($_), split / /, $local;
+ $local .= " $type " if $local && length $type;
return $self->deparse($kid, $cx) if null $kid->sibling and not $local;
for (; !null($kid); $kid = $kid->sibling) {
if ($local) {
@@ -3053,8 +3487,9 @@ sub pp_cond_expr {
$cond = $self->deparse($cond, 1);
$true = $self->deparse($true, 0);
- my $head = "if ($cond) {\n\t$true\n\b}";
+ my $head = $self->keyword("if") . " ($cond) {\n\t$true\n\b}";
my @elsifs;
+ my $elsif;
while (!null($false) and is_ifelse_cont($false)) {
my $newop = $false->first;
my $newcond = $newop->first;
@@ -3068,10 +3503,11 @@ sub pp_cond_expr {
}
$newcond = $self->deparse($newcond, 1);
$newtrue = $self->deparse($newtrue, 0);
- push @elsifs, "elsif ($newcond) {\n\t$newtrue\n\b}";
+ $elsif ||= $self->keyword("elsif");
+ push @elsifs, "$elsif ($newcond) {\n\t$newtrue\n\b}";
}
if (!null($false)) {
- $false = $cuddle . "else {\n\t" .
+ $false = $cuddle . $self->keyword("else") . " {\n\t" .
$self->deparse($false, 0) . "\n\b}\cK";
} else {
$false = "\cK";
@@ -3084,7 +3520,9 @@ sub pp_once {
my $cond = $op->first;
my $true = $cond->sibling;
- return $self->deparse($true, $cx);
+ my $ret = $self->deparse($true, $cx);
+ $ret =~ s/^(\(?)\$/$1 . $self->keyword("state") . ' $'/e;
+ $ret;
}
sub loop_common {
@@ -3098,6 +3536,7 @@ sub loop_common {
my $bare = 0;
my $body;
my $cond = undef;
+ my $name;
if ($kid->name eq "lineseq") { # bare or infinite loop
if ($kid->last->name eq "unstack") { # infinite
$head = "while (1) "; # Can't use for(;;) if there's a continue
@@ -3121,12 +3560,7 @@ sub loop_common {
$ary = $self->deparse($ary, 1);
}
if (null $var) {
- if (($enter->flags & OPf_SPECIAL) && ($] < 5.009)) {
- # thread special var, under 5005threads
- $var = $self->pp_threadsv($enter, 1);
- } else { # regular my() variable
- $var = $self->pp_padsv($enter, 1, 1);
- }
+ $var = $self->pp_padsv($enter, 1, 1);
} elsif ($var->name eq "rv2gv") {
$var = $self->pp_rv2sv($var, 1);
if ($enter->private & OPpOUR_INTRO) {
@@ -3136,19 +3570,21 @@ sub loop_common {
}
} elsif ($var->name eq "gv") {
$var = "\$" . $self->deparse($var, 1);
+ } else {
+ $var = $self->deparse($var, 1);
}
$body = $kid->first->first->sibling; # skip OP_AND and OP_ITER
if (!is_state $body->first and $body->first->name !~ /^(?:stub|leave|scope)$/) {
confess unless $var eq '$_';
$body = $body->first;
- return $self->deparse($body, 2) . " foreach ($ary)";
+ return $self->deparse($body, 2) . " "
+ . $self->keyword("foreach") . " ($ary)";
}
$head = "foreach $var ($ary) ";
} elsif ($kid->name eq "null") { # while/until
$kid = $kid->first;
- my $name = {"and" => "while", "or" => "until"}->{$kid->name};
- $cond = $self->deparse($kid->first, 1);
- $head = "$name ($cond) ";
+ $name = {"and" => "while", "or" => "until"}->{$kid->name};
+ $cond = $kid->first;
$body = $kid->first->sibling;
} elsif ($kid->name eq "stub") { # bare and empty
return "{;}"; # {} could be a hashref
@@ -3160,6 +3596,8 @@ sub loop_common {
# block (or the last in a bare loop).
my $cont_start = $enter->nextop;
my $cont;
+ my $precond;
+ my $postcond;
if ($$cont_start != $$op && ${$cont_start} != ${$body->last}) {
if ($bare) {
$cont = $body->last;
@@ -3177,7 +3615,8 @@ sub loop_common {
}
$body = $self->lineseq(undef, 0, @states);
if (defined $cond and not is_scope $cont and $self->{'expand'} < 3) {
- $head = "for ($init; $cond; " . $self->deparse($cont, 1) .") ";
+ $precond = "for ($init; ";
+ $postcond = "; " . $self->deparse($cont, 1) .") ";
$cont = "\cK";
} else {
$cont = $cuddle . "continue {\n\t" .
@@ -3186,11 +3625,23 @@ sub loop_common {
} else {
return "" if !defined $body;
if (length $init) {
- $head = "for ($init; $cond;) ";
+ $precond = "for ($init; ";
+ $postcond = ";) ";
}
$cont = "\cK";
$body = $self->deparse($body, 0);
}
+ if ($precond) { # for(;;)
+ $cond &&= $name eq 'until'
+ ? listop($self, undef, 1, "not", $cond->first)
+ : $self->deparse($cond, 1);
+ $head = "$precond$cond$postcond";
+ }
+ if ($name && !$head) {
+ ref $cond and $cond = $self->deparse($cond, 1);
+ $head = "$name ($cond) ";
+ }
+ $head =~ s/^(for(?:each)?|while|until)/$self->keyword($1)/e;
$body =~ s/;?$/;\n/;
return $head . "{\n\t" . $body . "\b}" . $cont;
@@ -3220,11 +3671,12 @@ sub _op_is_or_was {
}
sub pp_null {
- my $self = shift;
- my($op, $cx) = @_;
+ my($self, $op, $cx) = @_;
if (class($op) eq "OP") {
# old value is lost
return $self->{'ex_const'} if $op->targ == OP_CONST;
+ } elsif (class ($op) eq "COP") {
+ return &pp_nextstate;
} elsif ($op->first->name eq 'pushmark'
or $op->first->name eq 'null'
&& $op->first->targ == OP_PUSHMARK
@@ -3253,13 +3705,14 @@ sub pp_null {
. $self->deparse($op->first->sibling, 7),
$cx, 7);
} elsif (!null($op->first->sibling) and
- $op->first->sibling->name eq "trans" and
+ $op->first->sibling->name =~ /^transr?\z/ and
$op->first->sibling->flags & OPf_STACKED) {
return $self->maybe_parens($self->deparse($op->first, 20) . " =~ "
. $self->deparse($op->first->sibling, 20),
$cx, 20);
} elsif ($op->flags & OPf_SPECIAL && $cx < 1 && !$op->targ) {
- return "do {\n\t". $self->deparse($op->first, $cx) ."\n\b};";
+ return ($self->lex_in_scope("&do") ? "CORE::do" : "do")
+ . " {\n\t". $self->deparse($op->first, $cx) ."\n\b};";
} elsif (!null($op->first->sibling) and
$op->first->sibling->name eq "null" and
class($op->first->sibling) eq "UNOP" and
@@ -3288,20 +3741,15 @@ sub padany {
sub pp_padsv {
my $self = shift;
my($op, $cx, $forbid_parens) = @_;
- return $self->maybe_my($op, $cx, $self->padname($op->targ),
+ my $targ = $op->targ;
+ return $self->maybe_my($op, $cx, $self->padname($targ),
+ $self->padname_sv($targ),
$forbid_parens);
}
sub pp_padav { pp_padsv(@_) }
sub pp_padhv { pp_padsv(@_) }
-my @threadsv_names = B::threadsv_names;
-sub pp_threadsv {
- my $self = shift;
- my($op, $cx) = @_;
- return $self->maybe_local($op, $cx, "\$" . $threadsv_names[$op->targ]);
-}
-
sub gv_or_padgv {
my $self = shift;
my $op = shift;
@@ -3443,7 +3891,7 @@ sub pp_rv2av {
sub is_subscriptable {
my $op = shift;
- if ($op->name =~ /^[ahg]elem/) {
+ if ($op->name =~ /^([ahg]elem|multideref$)/) {
return 1;
} elsif ($op->name eq "entersub") {
my $kid = $op->first;
@@ -3548,6 +3996,145 @@ sub elem {
}
+# a simplified version of elem_or_slice_array_name()
+# for the use of pp_multideref
+
+sub multideref_var_name {
+ my $self = shift;
+ my ($gv, $is_hash) = @_;
+
+ my ($name, $quoted) =
+ $self->stash_variable_name( $is_hash ? '%' : '@', $gv);
+ return $quoted ? "$name->"
+ : $name eq '#'
+ ? '${#}' # avoid ${#}[1] => $#[1]
+ : '$' . $name;
+}
+
+
+sub pp_multideref {
+ my $self = shift;
+ my($op, $cx) = @_;
+ my $text = "";
+
+ if ($op->private & OPpMULTIDEREF_EXISTS) {
+ $text = $self->keyword("exists"). " ";
+ }
+ elsif ($op->private & OPpMULTIDEREF_DELETE) {
+ $text = $self->keyword("delete"). " ";
+ }
+ elsif ($op->private & OPpLVAL_INTRO) {
+ $text = $self->keyword("local"). " ";
+ }
+
+ if ($op->first && ($op->first->flags & OPf_KIDS)) {
+ # arbitrary initial expression, e.g. f(1,2,3)->[...]
+ $text .= $self->deparse($op->first, 24);
+ }
+
+ my @items = $op->aux_list($self->{curcv});
+ my $actions = shift @items;
+
+ my $is_hash;
+ my $derefs = 0;
+
+ while (1) {
+ if (($actions & MDEREF_ACTION_MASK) == MDEREF_reload) {
+ $actions = shift @items;
+ next;
+ }
+
+ $is_hash = (
+ ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_pop_rv2hv_helem
+ || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_gvsv_vivify_rv2hv_helem
+ || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_padsv_vivify_rv2hv_helem
+ || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_vivify_rv2hv_helem
+ || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_padhv_helem
+ || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_gvhv_helem
+ );
+
+ if ( ($actions & MDEREF_ACTION_MASK) == MDEREF_AV_padav_aelem
+ || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_padhv_helem)
+ {
+ $derefs = 1;
+ $text .= '$' . substr($self->padname(shift @items), 1);
+ }
+ elsif ( ($actions & MDEREF_ACTION_MASK) == MDEREF_AV_gvav_aelem
+ || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_gvhv_helem)
+ {
+ $derefs = 1;
+ $text .= $self->multideref_var_name(shift @items, $is_hash);
+ }
+ else {
+ if ( ($actions & MDEREF_ACTION_MASK) ==
+ MDEREF_AV_padsv_vivify_rv2av_aelem
+ || ($actions & MDEREF_ACTION_MASK) ==
+ MDEREF_HV_padsv_vivify_rv2hv_helem)
+ {
+ $text .= $self->padname(shift @items);
+ }
+ elsif ( ($actions & MDEREF_ACTION_MASK) ==
+ MDEREF_AV_gvsv_vivify_rv2av_aelem
+ || ($actions & MDEREF_ACTION_MASK) ==
+ MDEREF_HV_gvsv_vivify_rv2hv_helem)
+ {
+ $text .= $self->multideref_var_name(shift @items, $is_hash);
+ }
+ elsif ( ($actions & MDEREF_ACTION_MASK) ==
+ MDEREF_AV_pop_rv2av_aelem
+ || ($actions & MDEREF_ACTION_MASK) ==
+ MDEREF_HV_pop_rv2hv_helem)
+ {
+ if ( ($op->flags & OPf_KIDS)
+ && ( _op_is_or_was($op->first, OP_RV2AV)
+ || _op_is_or_was($op->first, OP_RV2HV))
+ && ($op->first->flags & OPf_KIDS)
+ && ( _op_is_or_was($op->first->first, OP_AELEM)
+ || _op_is_or_was($op->first->first, OP_HELEM))
+ )
+ {
+ $derefs++;
+ }
+ }
+
+ $text .= '->' if !$derefs++;
+ }
+
+
+ if (($actions & MDEREF_INDEX_MASK) == MDEREF_INDEX_none) {
+ last;
+ }
+
+ $text .= $is_hash ? '{' : '[';
+
+ if (($actions & MDEREF_INDEX_MASK) == MDEREF_INDEX_const) {
+ my $key = shift @items;
+ if ($is_hash) {
+ $text .= $self->const($key, $cx);
+ }
+ else {
+ $text .= $key;
+ }
+ }
+ elsif (($actions & MDEREF_INDEX_MASK) == MDEREF_INDEX_padsv) {
+ $text .= $self->padname(shift @items);
+ }
+ elsif (($actions & MDEREF_INDEX_MASK) == MDEREF_INDEX_gvsv) {
+ $text .= '$' . ($self->stash_variable_name('$', shift @items))[0];
+ }
+
+ $text .= $is_hash ? '}' : ']';
+
+ if ($actions & MDEREF_FLAG_last) {
+ last;
+ }
+ $actions >>= MDEREF_SHIFT;
+ }
+
+ return $text;
+}
+
+
sub pp_aelem { maybe_local(@_, elem(@_, "[", "]", "padav")) }
sub pp_helem { maybe_local(@_, elem(@_, "{", "}", "padhv")) }
@@ -3654,7 +4241,14 @@ sub _method {
}
if ($meth->name eq "method_named") {
- $meth = $self->const_sv($meth)->PV;
+ $meth = $self->meth_sv($meth)->PV;
+ } elsif ($meth->name eq "method_super") {
+ $meth = "SUPER::".$self->meth_sv($meth)->PV;
+ } elsif ($meth->name eq "method_redir") {
+ $meth = $self->meth_rclass_sv($meth)->PV.'::'.$self->meth_sv($meth)->PV;
+ } elsif ($meth->name eq "method_redir_super") {
+ $meth = $self->meth_rclass_sv($meth)->PV.'::SUPER::'.
+ $self->meth_sv($meth)->PV;
} else {
$meth = $meth->first;
if ($meth->name eq "const") {
@@ -3714,7 +4308,7 @@ sub check_proto {
1 while $proto =~ s/(?<!\\)([@%])[^\]]+$/$1/;
$proto =~ s/^\s*//;
while ($proto) {
- $proto =~ s/^(\\?[\$\@&%*_]|\\\[[\$\@&%*]+\]|;)\s*//;
+ $proto =~ s/^(\\?[\$\@&%*_]|\\\[[\$\@&%*]+\]|;|)\s*//;
my $chr = $1;
if ($chr eq "") {
return "&" if @args;
@@ -3781,6 +4375,50 @@ sub check_proto {
return ("", join ", ", @reals);
}
+sub retscalar {
+ my $name = $_[0]->name;
+ # XXX There has to be a better way of doing this scalar-op check.
+ # Currently PL_opargs is not exposed.
+ if ($name eq 'null') {
+ $name = substr B::ppname($_[0]->targ), 3
+ }
+ $name =~ /^(?:scalar|pushmark|wantarray|const|gvsv|gv|padsv|rv2gv
+ |rv2sv|av2arylen|anoncode|prototype|srefgen|ref|bless
+ |regcmaybe|regcreset|regcomp|qr|subst|substcont|trans
+ |transr|sassign|chop|schop|chomp|schomp|defined|undef
+ |study|pos|preinc|i_preinc|predec|i_predec|postinc
+ |i_postinc|postdec|i_postdec|pow|multiply|i_multiply
+ |divide|i_divide|modulo|i_modulo|add|i_add|subtract
+ |i_subtract|concat|stringify|left_shift|right_shift|lt
+ |i_lt|gt|i_gt|le|i_le|ge|i_ge|eq|i_eq|ne|i_ne|ncmp|i_ncmp
+ |slt|sgt|sle|sge|seq|sne|scmp|[sn]?bit_(?:and|x?or)|negate
+ |i_negate|not|[sn]?complement|smartmatch|atan2|sin|cos
+ |rand|srand|exp|log|sqrt|int|hex|oct|abs|length|substr
+ |vec|index|rindex|sprintf|formline|ord|chr|crypt|ucfirst
+ |lcfirst|uc|lc|quotemeta|aelemfast|aelem|exists|helem
+ |pack|join|anonlist|anonhash|push|pop|shift|unshift|xor
+ |andassign|orassign|dorassign|warn|die|reset|nextstate
+ |dbstate|unstack|last|next|redo|dump|goto|exit|open|close
+ |pipe_op|fileno|umask|binmode|tie|untie|tied|dbmopen
+ |dbmclose|select|getc|read|enterwrite|prtf|print|say
+ |sysopen|sysseek|sysread|syswrite|eof|tell|seek|truncate
+ |fcntl|ioctl|flock|send|recv|socket|sockpair|bind|connect
+ |listen|accept|shutdown|gsockopt|ssockopt|getsockname
+ |getpeername|ftrread|ftrwrite|ftrexec|fteread|ftewrite
+ |fteexec|ftis|ftsize|ftmtime|ftatime|ftctime|ftrowned
+ |fteowned|ftzero|ftsock|ftchr|ftblk|ftfile|ftdir|ftpipe
+ |ftsuid|ftsgid|ftsvtx|ftlink|fttty|fttext|ftbinary|chdir
+ |chown|chroot|unlink|chmod|utime|rename|link|symlink
+ |readlink|mkdir|rmdir|open_dir|telldir|seekdir|rewinddir
+ |closedir|fork|wait|waitpid|system|exec|kill|getppid
+ |getpgrp|setpgrp|getpriority|setpriority|time|alarm|sleep
+ |shmget|shmctl|shmread|shmwrite|msgget|msgctl|msgsnd
+ |msgrcv|semop|semget|semctl|hintseval|shostent|snetent
+ |sprotoent|sservent|ehostent|enetent|eprotoent|eservent
+ |spwent|epwent|sgrent|egrent|getlogin|syscall|lock|runcv
+ |fc)\z/x
+}
+
sub pp_entersub {
my $self = shift;
my($op, $cx) = @_;
@@ -3801,59 +4439,106 @@ sub pp_entersub {
}
my $simple = 0;
my $proto = undef;
+ my $lexical;
if (is_scope($kid)) {
$amper = "&";
$kid = "{" . $self->deparse($kid, 0) . "}";
} elsif ($kid->first->name eq "gv") {
my $gv = $self->gv_or_padgv($kid->first);
- if (class($gv->CV) ne "SPECIAL") {
- $proto = $gv->CV->PV if $gv->CV->FLAGS & SVf_POK;
+ my $cv;
+ if (class($gv) eq 'GV' && class($cv = $gv->CV) ne "SPECIAL"
+ || $gv->FLAGS & SVf_ROK && class($cv = $gv->RV) eq 'CV') {
+ $proto = $cv->PV if $cv->FLAGS & SVf_POK;
}
$simple = 1; # only calls of named functions can be prototyped
$kid = $self->deparse($kid, 24);
- if (!$amper) {
+ my $fq;
+ # Fully qualify any sub name that conflicts with a lexical.
+ if ($self->lex_in_scope("&$kid")
+ || $self->lex_in_scope("&$kid", 1))
+ {
+ $fq++;
+ } elsif (!$amper) {
if ($kid eq 'main::') {
$kid = '::';
- } elsif ($kid !~ /^(?:\w|::)(?:[\w\d]|::(?!\z))*\z/) {
- $kid = single_delim("q", "'", $kid) . '->';
+ }
+ else {
+ if ($kid !~ /::/ && $kid ne 'x') {
+ # Fully qualify any sub name that is also a keyword. While
+ # we could check the import flag, we cannot guarantee that
+ # the code deparsed so far would set that flag, so we qual-
+ # ify the names regardless of importation.
+ if (exists $feature_keywords{$kid}) {
+ $fq++ if $self->feature_enabled($kid);
+ } elsif (do { local $@; local $SIG{__DIE__};
+ eval { () = prototype "CORE::$kid"; 1 } }) {
+ $fq++
+ }
+ }
+ if ($kid !~ /^(?:\w|::)(?:[\w\d]|::(?!\z))*\z/) {
+ $kid = single_delim("q", "'", $kid, $self) . '->';
+ }
}
}
+ $fq and substr $kid, 0, 0, = $self->{'curstash'}.'::';
} elsif (is_scalar ($kid->first) && $kid->first->name ne 'rv2cv') {
$amper = "&";
$kid = $self->deparse($kid, 24);
} else {
$prefix = "";
- my $arrow = is_subscriptable($kid->first) || $kid->first->name eq "padcv" ? "" : "->";
+ my $grandkid = $kid->first;
+ my $arrow = ($lexical = $grandkid->name eq "padcv")
+ || is_subscriptable($grandkid)
+ ? ""
+ : "->";
$kid = $self->deparse($kid, 24) . $arrow;
+ if ($lexical) {
+ my $padlist = $self->{'curcv'}->PADLIST;
+ my $padoff = $grandkid->targ;
+ my $padname = $padlist->ARRAYelt(0)->ARRAYelt($padoff);
+ my $protocv = $padname->FLAGS & SVpad_STATE
+ ? $padlist->ARRAYelt(1)->ARRAYelt($padoff)
+ : $padname->PROTOCV;
+ if ($protocv->FLAGS & SVf_POK) {
+ $proto = $protocv->PV
+ }
+ $simple = 1;
+ }
}
# Doesn't matter how many prototypes there are, if
# they haven't happened yet!
- my $declared;
- {
+ my $declared = $lexical || exists $self->{'subs_declared'}{$kid};
+ if (not $declared and $self->{'in_coderef2text'}) {
no strict 'refs';
no warnings 'uninitialized';
- $declared = exists $self->{'subs_declared'}{$kid}
- || (
+ $declared =
+ (
defined &{ ${$self->{'curstash'}."::"}{$kid} }
&& !exists
$self->{'subs_deparsed'}{$self->{'curstash'}."::".$kid}
&& defined prototype $self->{'curstash'}."::".$kid
);
- if (!$declared && defined($proto)) {
- # Avoid "too early to check prototype" warning
- ($amper, $proto) = ('&');
- }
+ }
+ if (!$declared && defined($proto)) {
+ # Avoid "too early to check prototype" warning
+ ($amper, $proto) = ('&');
}
my $args;
+ my $listargs = 1;
if ($declared and defined $proto and not $amper) {
($amper, $args) = $self->check_proto($proto, @exprs);
- if ($amper eq "&") {
- $args = join(", ", map($self->deparse($_, 6), @exprs));
- }
- } else {
- $args = join(", ", map($self->deparse($_, 6), @exprs));
+ $listargs = $amper;
+ }
+ if ($listargs) {
+ $args = join(", ", map(
+ ($_->flags & OPf_WANT) == OPf_WANT_SCALAR
+ && !retscalar($_)
+ ? $self->maybe_parens_unop('scalar', $_, 6)
+ : $self->deparse($_, 6),
+ @exprs
+ ));
}
if ($prefix or $amper) {
if ($kid eq '&') { $kid = "{$kid}" } # &{&} cannot be written as &&
@@ -3869,17 +4554,18 @@ sub pp_entersub {
$kid =~ s/^CORE::GLOBAL:://;
my $dproto = defined($proto) ? $proto : "undefined";
+ my $scalar_proto = $dproto =~ /^;*(?:[\$*_+]|\\.|\\\[[^]]\])\z/;
if (!$declared) {
return "$kid(" . $args . ")";
} elsif ($dproto =~ /^\s*\z/) {
return $kid;
- } elsif ($dproto eq "\$" and is_scalar($exprs[0])) {
+ } elsif ($scalar_proto and is_scalar($exprs[0])) {
# is_scalar is an excessively conservative test here:
# really, we should be comparing to the precedence of the
# top operator of $exprs[0] (ala unop()), but that would
# take some major code restructuring to do right.
return $self->maybe_parens_func($kid, $args, $cx, 16);
- } elsif ($dproto ne '$' and defined($proto) || $simple) { #'
+ } elsif (not $scalar_proto and defined($proto) || $simple) { #'
return $self->maybe_parens_func($kid, $args, $cx, 5);
} else {
return "$kid(" . $args . ")";
@@ -3913,6 +4599,7 @@ BEGIN {
}
# the same, but treat $|, $), $( and $ at the end of the string differently
+# and leave comments unmangled for the sake of /x and (?x).
sub re_uninterp {
my($str) = @_;
@@ -3926,32 +4613,6 @@ sub re_uninterp {
)
( # $3
- (\(\?\??\{$bal\}\)) # $4
- | [\$\@]
- (?!\||\)|\(|$)
- | \\[uUlLQE]
- )
-
- /defined($4) && length($4) ? "$1$2$4" : "$1$2\\$3"/xeg;
-
- return $str;
-}
-
-# This is for regular expressions with the /x modifier
-# We have to leave comments unmangled.
-sub re_uninterp_extended {
- my($str) = @_;
-
- $str =~ s/
- ( ^|\G # $1
- | [^\\]
- )
-
- ( # $2
- (?:\\\\)*
- )
-
- ( # $3
( \(\?\??\{$bal\}\) # $4 (skip over (?{}) and (??{}) blocks)
| \#[^\n]* # (skip over comments)
)
@@ -3966,64 +4627,29 @@ sub re_uninterp_extended {
}
}
-my %unctrl = # portable to EBCDIC
- (
- "\c@" => '\c@', # unused
- "\cA" => '\cA',
- "\cB" => '\cB',
- "\cC" => '\cC',
- "\cD" => '\cD',
- "\cE" => '\cE',
- "\cF" => '\cF',
- "\cG" => '\cG',
- "\cH" => '\cH',
- "\cI" => '\cI',
- "\cJ" => '\cJ',
- "\cK" => '\cK',
- "\cL" => '\cL',
- "\cM" => '\cM',
- "\cN" => '\cN',
- "\cO" => '\cO',
- "\cP" => '\cP',
- "\cQ" => '\cQ',
- "\cR" => '\cR',
- "\cS" => '\cS',
- "\cT" => '\cT',
- "\cU" => '\cU',
- "\cV" => '\cV',
- "\cW" => '\cW',
- "\cX" => '\cX',
- "\cY" => '\cY',
- "\cZ" => '\cZ',
- "\c[" => '\c[', # unused
- "\c\\" => '\c\\', # unused
- "\c]" => '\c]', # unused
- "\c_" => '\c_', # unused
- );
-
# character escapes, but not delimiters that might need to be escaped
sub escape_str { # ASCII, UTF8
my($str) = @_;
$str =~ s/(.)/ord($1) > 255 ? sprintf("\\x{%x}", ord($1)) : $1/eg;
$str =~ s/\a/\\a/g;
-# $str =~ s/\cH/\\b/g; # \b means something different in a regex
+# $str =~ s/\cH/\\b/g; # \b means something different in a regex; and \cH
+ # isn't a backspace in EBCDIC
$str =~ s/\t/\\t/g;
$str =~ s/\n/\\n/g;
$str =~ s/\e/\\e/g;
$str =~ s/\f/\\f/g;
$str =~ s/\r/\\r/g;
- $str =~ s/([\cA-\cZ])/$unctrl{$1}/ge;
- $str =~ s/([[:^print:]])/sprintf("\\%03o", ord($1))/ge;
+ $str =~ s/([\cA-\cZ])/'\\c' . $unctrl{$1}/ge;
+ $str =~ s/([[:^print:]])/sprintf("\\%03o", ord($1))/age;
return $str;
}
-# For regexes with the /x modifier.
-# Leave whitespace unmangled.
-sub escape_extended_re {
+# For regexes. Leave whitespace unmangled in case of /x or (?x).
+sub escape_re {
my($str) = @_;
$str =~ s/(.)/ord($1) > 255 ? sprintf("\\x{%x}", ord($1)) : $1/eg;
$str =~ s/([[:^print:]])/
- ($1 =~ y! \t\n!!) ? $1 : sprintf("\\%03o", ord($1))/ge;
+ ($1 =~ y! \t\n!!) ? $1 : sprintf("\\%03o", ord($1))/age;
$str =~ s/\n/\n\f/g;
return $str;
}
@@ -4074,21 +4700,22 @@ sub balanced_delim {
}
sub single_delim {
- my($q, $default, $str) = @_;
+ my($q, $default, $str, $self) = @_;
return "$default$str$default" if $default and index($str, $default) == -1;
+ my $coreq = $self->keyword($q); # maybe CORE::q
if ($q ne 'qr') {
(my $succeed, $str) = balanced_delim($str);
- return "$q$str" if $succeed;
+ return "$coreq$str" if $succeed;
}
for my $delim ('/', '"', '#') {
- return "$q$delim" . $str . $delim if index($str, $delim) == -1;
+ return "$coreq$delim" . $str . $delim if index($str, $delim) == -1;
}
if ($default) {
$str =~ s/$default/\\$default/g;
return "$default$str$default";
} else {
$str =~ s[/][\\/]g;
- return "$q/$str/";
+ return "$coreq/$str/";
}
}
@@ -4124,7 +4751,8 @@ sub const {
}
if (class($sv) eq "SPECIAL") {
# sv_undef, sv_yes, sv_no
- return ('undef', '1', $self->maybe_parens("!1", $cx, 21))[$$sv-1];
+ return $$sv == 3 ? $self->maybe_parens("!1", $cx, 21)
+ : ('undef', '1')[$$sv-1];
}
if (class($sv) eq "NULL") {
return 'undef';
@@ -4189,16 +4817,17 @@ sub const {
return $str;
} elsif ($sv->FLAGS & SVf_ROK && $sv->can("RV")) {
my $ref = $sv->RV;
- if (class($ref) eq "AV") {
+ my $class = class($ref);
+ if ($class eq "AV") {
return "[" . $self->list_const(2, $ref->ARRAY) . "]";
- } elsif (class($ref) eq "HV") {
+ } elsif ($class eq "HV") {
my %hash = $ref->ARRAY;
my @elts;
for my $k (sort keys %hash) {
push @elts, "$k => " . $self->const($hash{$k}, 6);
}
return "{" . join(", ", @elts) . "}";
- } elsif (class($ref) eq "CV") {
+ } elsif ($class eq "CV") {
BEGIN {
if ($] > 5.0150051) {
require overloading;
@@ -4211,11 +4840,11 @@ sub const {
}
return "sub " . $self->deparse_sub($ref);
}
- if ($ref->FLAGS & SVs_SMG) {
+ if ($class ne 'SPECIAL' and $ref->FLAGS & SVs_SMG) {
for (my $mg = $ref->MAGIC; $mg; $mg = $mg->MOREMAGIC) {
if ($mg->TYPE eq 'r') {
- my $re = re_uninterp(escape_str(re_unback($mg->precomp)));
- return single_delim("qr", "", $re);
+ my $re = re_uninterp(escape_re(re_unback($mg->precomp)));
+ return single_delim("qr", "", $re, $self);
}
}
}
@@ -4227,10 +4856,11 @@ sub const {
return $self->maybe_parens("\\$const", $cx, 20);
} elsif ($sv->FLAGS & SVf_POK) {
my $str = $sv->PV;
- if ($str =~ /[[:^print:]]/) {
- return single_delim("qq", '"', uninterp escape_str unback $str);
+ if ($str =~ /[[:^print:]]/a) {
+ return single_delim("qq", '"',
+ uninterp(escape_str unback $str), $self);
} else {
- return single_delim("q", "'", unback $str);
+ return single_delim("q", "'", unback($str), $self);
}
} else {
return "undef";
@@ -4260,6 +4890,24 @@ sub const_sv {
return $sv;
}
+sub meth_sv {
+ my $self = shift;
+ my $op = shift;
+ my $sv = $op->meth_sv;
+ # the constant could be in the pad (under useithreads)
+ $sv = $self->padval($op->targ) unless $$sv;
+ return $sv;
+}
+
+sub meth_rclass_sv {
+ my $self = shift;
+ my $op = shift;
+ my $sv = $op->rclass;
+ # the constant could be in the pad (under useithreads)
+ $sv = $self->padval($sv) unless ref $sv;
+ return $sv;
+}
+
sub pp_const {
my $self = shift;
my($op, $cx) = @_;
@@ -4317,7 +4965,7 @@ sub pp_backtick {
my $child = $op->first->sibling->isa('B::NULL')
? $op->first : $op->first->sibling;
if ($self->pure_string($child)) {
- return single_delim("qx", '`', $self->dq($child, 1));
+ return single_delim("qx", '`', $self->dq($child, 1), $self);
}
unop($self, @_, "readpipe");
}
@@ -4328,11 +4976,28 @@ sub dquote {
my $kid = $op->first->sibling; # skip ex-stringify, pushmark
return $self->deparse($kid, $cx) if $self->{'unquote'};
$self->maybe_targmy($kid, $cx,
- sub {single_delim("qq", '"', $self->dq($_[1]))});
+ sub {single_delim("qq", '"', $self->dq($_[1]),
+ $self)});
}
# OP_STRINGIFY is a listop, but it only ever has one arg
-sub pp_stringify { maybe_targmy(@_, \&dquote) }
+sub pp_stringify {
+ my ($self, $op, $cx) = @_;
+ my $kid = $op->first->sibling;
+ while ($kid->name eq 'null' && !null($kid->first)) {
+ $kid = $kid->first;
+ }
+ if ($kid->name =~ /^(?:const|padsv|rv2sv|av2arylen|gvsv|multideref
+ |aelemfast(?:_lex)?|[ah]elem|join|concat)\z/x) {
+ maybe_targmy(@_, \&dquote);
+ }
+ else {
+ # Actually an optimised join.
+ my $result = listop(@_,"join");
+ $result =~ s/join([( ])/join$1$self->{'ex_const'}, /;
+ $result;
+ }
+}
# tr/// and s/// (and tr[][], tr[]//, tr###, etc)
# note that tr(from)/to/ is OK, but not tr/from/(to)
@@ -4369,7 +5034,11 @@ sub pchr { # ASCII
return '\\\\';
} elsif ($n == ord "-") {
return "\\-";
- } elsif ($n >= ord(' ') and $n <= ord('~')) {
+ } elsif (utf8::native_to_unicode($n) >= utf8::native_to_unicode(ord(' '))
+ and utf8::native_to_unicode($n) <= utf8::native_to_unicode(ord('~')))
+ {
+ # I'm presuming a regex is not ok here, otherwise we could have used
+ # /[[:print:]]/a to get here
return chr($n);
} elsif ($n == ord "\a") {
return '\\a';
@@ -4386,7 +5055,7 @@ sub pchr { # ASCII
} elsif ($n == ord "\r") {
return '\\r';
} elsif ($n >= ord("\cA") and $n <= ord("\cZ")) {
- return '\\c' . chr(ord("@") + $n);
+ return '\\c' . unctrl{chr $n};
} else {
# return '\x' . sprintf("%02x", $n);
return '\\' . sprintf("%03o", $n);
@@ -4566,7 +5235,7 @@ sub tr_decode_utf8 {
sub pp_trans {
my $self = shift;
- my($op, $cx) = @_;
+ my($op, $cx, $morflags) = @_;
my($from, $to);
my $class = class($op);
my $priv_flags = $op->private;
@@ -4583,10 +5252,16 @@ sub pp_trans {
$flags .= "d" if $priv_flags & OPpTRANS_DELETE;
$to = "" if $from eq $to and $flags eq "";
$flags .= "s" if $priv_flags & OPpTRANS_SQUASH;
- return "tr" . double_delim($from, $to) . $flags;
+ $flags .= $morflags if defined $morflags;
+ my $ret = $self->keyword("tr") . double_delim($from, $to) . $flags;
+ if (my $targ = $op->targ) {
+ return $self->maybe_parens($self->padname($targ) . " =~ $ret",
+ $cx, 20);
+ }
+ return $ret;
}
-sub pp_transr { &pp_trans . 'r' }
+sub pp_transr { push @_, 'r'; goto &pp_trans }
sub re_dq_disambiguate {
my ($first, $last) = @_;
@@ -4601,36 +5276,35 @@ sub re_dq_disambiguate {
# Like dq(), but different
sub re_dq {
my $self = shift;
- my ($op, $extended) = @_;
+ my ($op) = @_;
my $type = $op->name;
if ($type eq "const") {
return '$[' if $op->private & OPpCONST_ARYBASE;
my $unbacked = re_unback($self->const_sv($op)->as_string);
- return re_uninterp_extended(escape_extended_re($unbacked))
- if $extended;
- return re_uninterp(escape_str($unbacked));
+ return re_uninterp(escape_re($unbacked));
} elsif ($type eq "concat") {
- my $first = $self->re_dq($op->first, $extended);
- my $last = $self->re_dq($op->last, $extended);
+ my $first = $self->re_dq($op->first);
+ my $last = $self->re_dq($op->last);
return re_dq_disambiguate($first, $last);
} elsif ($type eq "uc") {
- return '\U' . $self->re_dq($op->first->sibling, $extended) . '\E';
+ return '\U' . $self->re_dq($op->first->sibling) . '\E';
} elsif ($type eq "lc") {
- return '\L' . $self->re_dq($op->first->sibling, $extended) . '\E';
+ return '\L' . $self->re_dq($op->first->sibling) . '\E';
} elsif ($type eq "ucfirst") {
- return '\u' . $self->re_dq($op->first->sibling, $extended);
+ return '\u' . $self->re_dq($op->first->sibling);
} elsif ($type eq "lcfirst") {
- return '\l' . $self->re_dq($op->first->sibling, $extended);
+ return '\l' . $self->re_dq($op->first->sibling);
} elsif ($type eq "quotemeta") {
- return '\Q' . $self->re_dq($op->first->sibling, $extended) . '\E';
+ return '\Q' . $self->re_dq($op->first->sibling) . '\E';
} elsif ($type eq "fc") {
- return '\F' . $self->re_dq($op->first->sibling, $extended) . '\E';
+ return '\F' . $self->re_dq($op->first->sibling) . '\E';
} elsif ($type eq "join") {
return $self->deparse($op->last, 26); # was join($", @ary)
} else {
my $ret = $self->deparse($op, 26);
- $ret =~ s/^\$([(|)])\z/\${$1}/; # $( $| $) need braces
+ $ret =~ s/^\$([(|)])\z/\${$1}/ # $( $| $) need braces
+ or $ret =~ s/^\@([-+])\z/\@{$1}/; # @- @+ need braces
return $ret;
}
}
@@ -4664,43 +5338,80 @@ sub pure_string {
elsif (is_scalar($op) || $type =~ /^[ah]elem$/) {
return 1;
}
- elsif ($type eq "null" and $op->can('first') and not null $op->first and
- ($op->first->name eq "null" and $op->first->can('first')
- and not null $op->first->first and
- $op->first->first->name eq "aelemfast"
- or
- $op->first->name =~ /^aelemfast(?:_lex)?\z/
- )) {
- return 1;
- }
- else {
- return 0;
+ elsif ($type eq "null" and $op->can('first') and not null $op->first) {
+ my $first = $op->first;
+
+ return 1 if $first->name eq "multideref";
+ return 1 if $first->name eq "aelemfast_lex";
+
+ if ( $first->name eq "null"
+ and $first->can('first')
+ and not null $first->first
+ and $first->first->name eq "aelemfast"
+ )
+ {
+ return 1;
+ }
}
- return 1;
+ return 0;
+}
+
+sub code_list {
+ my ($self,$op,$cv) = @_;
+
+ # localise stuff relating to the current sub
+ $cv and
+ local($self->{'curcv'}) = $cv,
+ local($self->{'curcvlex'}),
+ local(@$self{qw'curstash warnings hints hinthash curcop'})
+ = @$self{qw'curstash warnings hints hinthash curcop'};
+
+ my $re;
+ for ($op = $op->first->sibling; !null($op); $op = $op->sibling) {
+ if ($op->name eq 'null' and $op->flags & OPf_SPECIAL) {
+ my $scope = $op->first;
+ # 0 context (last arg to scopeop) means statement context, so
+ # the contents of the block will not be wrapped in do{...}.
+ my $block = scopeop($scope->first->name eq "enter", $self,
+ $scope, 0);
+ # next op is the source code of the block
+ $op = $op->sibling;
+ $re .= ($self->const_sv($op)->PV =~ m|^(\(\?\??\{)|)[0];
+ my $multiline = $block =~ /\n/;
+ $re .= $multiline ? "\n\t" : ' ';
+ $re .= $block;
+ $re .= $multiline ? "\n\b})" : " })";
+ } else {
+ $re = re_dq_disambiguate($re, $self->re_dq($op));
+ }
+ }
+ $re;
}
sub regcomp {
my $self = shift;
- my($op, $cx, $extended) = @_;
+ my($op, $cx) = @_;
my $kid = $op->first;
$kid = $kid->first if $kid->name eq "regcmaybe";
$kid = $kid->first if $kid->name eq "regcreset";
- if ($kid->name eq "null" and !null($kid->first)
+ my $kname = $kid->name;
+ if ($kname eq "null" and !null($kid->first)
and $kid->first->name eq 'pushmark')
{
my $str = '';
$kid = $kid->first->sibling;
while (!null($kid)) {
my $first = $str;
- my $last = $self->re_dq($kid, $extended);
+ my $last = $self->re_dq($kid);
$str = re_dq_disambiguate($first, $last);
$kid = $kid->sibling;
}
return $str, 1;
}
- return ($self->re_dq($kid, $extended), 1) if $self->pure_string($kid);
+ return ($self->re_dq($kid), 1)
+ if $kname =~ /^(?:rv2|pad)av/ or $self->pure_string($kid);
return ($self->deparse($kid, $cx), 0);
}
@@ -4713,17 +5424,24 @@ sub re_flags {
my ($self, $op) = @_;
my $flags = '';
my $pmflags = $op->pmflags;
+ if (!$pmflags) {
+ my $re = $op->pmregexp;
+ if ($$re) {
+ $pmflags = $re->compflags;
+ }
+ }
$flags .= "g" if $pmflags & PMf_GLOBAL;
$flags .= "i" if $pmflags & PMf_FOLD;
$flags .= "m" if $pmflags & PMf_MULTILINE;
$flags .= "o" if $pmflags & PMf_KEEP;
$flags .= "s" if $pmflags & PMf_SINGLELINE;
$flags .= "x" if $pmflags & PMf_EXTENDED;
+ $flags .= "x" if $pmflags & PMf_EXTENDED_MORE;
$flags .= "p" if $pmflags & RXf_PMf_KEEPCOPY;
if (my $charset = $pmflags & RXf_PMf_CHARSET) {
# Hardcoding this is fragile, but B does not yet export the
# constants we need.
- $flags .= qw(d l u a aa)[$charset >> 5]
+ $flags .= qw(d l u a aa)[$charset >> 7]
}
# The /d flag is indicated by 0; only show it if necessary.
elsif ($self->{hinthash} and
@@ -4746,7 +5464,23 @@ sub re_flags {
my %matchwords;
map($matchwords{join "", sort split //, $_} = $_, 'cig', 'cog', 'cos', 'cogs',
'cox', 'go', 'is', 'ism', 'iso', 'mig', 'mix', 'osmic', 'ox', 'sic',
- 'sig', 'six', 'smog', 'so', 'soc', 'sog', 'xi');
+ 'sig', 'six', 'smog', 'so', 'soc', 'sog', 'xi', 'soup', 'soupmix');
+
+# When deparsing a regular expression with code blocks, we have to look in
+# various places to find the blocks.
+#
+# For qr/(?{...})/ without interpolation, the CV is under $qr->qr_anoncv
+# and the code list (list of blocks and constants, maybe vars) is under
+# $cv->ROOT->first->code_list:
+# ./perl -Ilib -MB -e 'use O "Concise", B::svref_2object(sub {qr/(?{die})/})->ROOT->first->first->sibling->pmregexp->qr_anoncv->object_2svref'
+#
+# For qr/$a(?{...})/ with interpolation, the code list is more accessible,
+# under $pmop->code_list, but the $cv is something you have to dig for in
+# the regcomp op’s kids:
+# ./perl -Ilib -mO=Concise -e 'qr/$a(?{die})/'
+#
+# For m// and split //, things are much simpler. There is no CV. The code
+# list is under $pmop->code_list.
sub matchop {
my $self = shift;
@@ -4758,23 +5492,47 @@ sub matchop {
$var = $self->deparse($kid, 20);
$kid = $kid->sibling;
}
+ # not $name; $name will be 'm' for both match and split
+ elsif ($op->name eq 'match' and my $targ = $op->targ) {
+ $binop = 1;
+ $var = $self->padname($targ);
+ }
my $quote = 1;
my $pmflags = $op->pmflags;
- my $extended = ($pmflags & PMf_EXTENDED);
my $rhs_bound_to_defsv;
- if (null $kid) {
- my $unbacked = re_unback($op->precomp);
- if ($extended) {
- $re = re_uninterp_extended(escape_extended_re($unbacked));
- } else {
- $re = re_uninterp(escape_str(re_unback($op->precomp)));
- }
+ my ($cv, $bregexp);
+ my $have_kid = !null $kid;
+ # Check for code blocks first
+ if (not null my $code_list = $op->code_list) {
+ $re = $self->code_list($code_list,
+ $op->name eq 'qr'
+ ? $self->padval(
+ $kid->first # ex-list
+ ->first # pushmark
+ ->sibling # entersub
+ ->first # ex-list
+ ->first # pushmark
+ ->sibling # srefgen
+ ->first # ex-list
+ ->first # anoncode
+ ->targ
+ )
+ : undef);
+ } elsif (${$bregexp = $op->pmregexp} && ${$cv = $bregexp->qr_anoncv}) {
+ my $patop = $cv->ROOT # leavesub
+ ->first # qr
+ ->code_list;# list
+ $re = $self->code_list($patop, $cv);
+ } elsif (!$have_kid) {
+ $re = re_uninterp(escape_re(re_unback($op->precomp)));
} elsif ($kid->name ne 'regcomp') {
carp("found ".$kid->name." where regcomp expected");
} else {
- ($re, $quote) = $self->regcomp($kid, 21, $extended);
+ ($re, $quote) = $self->regcomp($kid, 21);
+ }
+ if ($have_kid and $kid->name eq 'regcomp') {
my $matchop = $kid->first;
- if ($matchop->name eq 'regcrest') {
+ if ($matchop->name eq 'regcreset') {
$matchop = $matchop->first;
}
if ($matchop->name =~ /^(?:match|transr?|subst)\z/
@@ -4789,9 +5547,9 @@ sub matchop {
$flags = $matchwords{$flags} if $matchwords{$flags};
if ($pmflags & PMf_ONCE) { # only one kind of delimiter works here
$re =~ s/\?/\\?/g;
- $re = "?$re?";
+ $re = $self->keyword("m") . "?$re?"; # explicit 'm' is required
} elsif ($quote) {
- $re = single_delim($name, $delim, $re);
+ $re = single_delim($name, $delim, $re, $self);
}
$re = $re . $flags if $quote;
if ($binop) {
@@ -4814,6 +5572,9 @@ sub pp_qr { matchop(@_, "qr", "") }
sub pp_runcv { unop(@_, "__SUB__"); }
sub pp_split {
+ maybe_targmy(@_, \&split);
+}
+sub split {
my $self = shift;
my($op, $cx) = @_;
my($kid, @exprs, $ary, $expr);
@@ -4827,14 +5588,25 @@ sub pp_split {
# figures out for us which it is.
my $replroot = $kid->pmreplroot;
my $gv = 0;
+ my $stacked = $op->flags & OPf_STACKED;
if (ref($replroot) eq "B::GV") {
$gv = $replroot;
} elsif (!ref($replroot) and $replroot > 0) {
$gv = $self->padval($replroot);
- }
- $ary = $self->stash_variable('@', $self->gv_name($gv), $cx) if $gv;
-
- for (; !null($kid); $kid = $kid->sibling) {
+ } elsif ($kid->targ) {
+ $ary = $self->padname($kid->targ)
+ } elsif ($stacked) {
+ $ary = $self->deparse($op->last, 7);
+ }
+ $ary = $self->maybe_local(@_,
+ $self->stash_variable('@',
+ $self->gv_name($gv),
+ $cx))
+ if $gv;
+
+ # Skip the last kid when OPf_STACKED is set, since it is the array
+ # on the left.
+ for (; !null($stacked ? $kid->sibling : $kid); $kid = $kid->sibling) {
push @exprs, $self->deparse($kid, 6);
}
@@ -4883,6 +5655,10 @@ sub pp_subst {
$var = $self->deparse($kid, 20);
$kid = $kid->sibling;
}
+ elsif (my $targ = $op->targ) {
+ $binop = 1;
+ $var = $self->padname($targ);
+ }
my $flags = "";
my $pmflags = $op->pmflags;
if (null($op->pmreplroot)) {
@@ -4903,29 +5679,25 @@ sub pp_subst {
$repl = $self->dq($repl);
}
}
- my $extended = ($pmflags & PMf_EXTENDED);
- if (null $kid) {
- my $unbacked = re_unback($op->precomp);
- if ($extended) {
- $re = re_uninterp_extended(escape_extended_re($unbacked));
- }
- else {
- $re = re_uninterp(escape_str($unbacked));
- }
+ if (not null my $code_list = $op->code_list) {
+ $re = $self->code_list($code_list);
+ } elsif (null $kid) {
+ $re = re_uninterp(escape_re(re_unback($op->precomp)));
} else {
- ($re) = $self->regcomp($kid, 1, $extended);
+ ($re) = $self->regcomp($kid, 1);
}
$flags .= "r" if $pmflags & PMf_NONDESTRUCT;
$flags .= "e" if $pmflags & PMf_EVAL;
$flags .= $self->re_flags($op);
$flags = join '', sort split //, $flags;
$flags = $substwords{$flags} if $substwords{$flags};
+ my $core_s = $self->keyword("s"); # maybe CORE::s
if ($binop) {
- return $self->maybe_parens("$var =~ s"
+ return $self->maybe_parens("$var =~ $core_s"
. double_delim($re, $repl) . $flags,
$cx, 20);
} else {
- return "s". double_delim($re, $repl) . $flags;
+ return "$core_s". double_delim($re, $repl) . $flags;
}
}
@@ -4937,6 +5709,10 @@ sub is_lexical_subs {
return 1;
}
+# Pretend these two ops do not exist. The perl parser adds them to the
+# beginning of any block containing my-sub declarations, whereas we handle
+# the subs in pad_subs and next_todo.
+*pp_clonecv = *pp_introcv;
sub pp_introcv {
my $self = shift;
my($op, $cx) = @_;
@@ -4945,20 +5721,66 @@ sub pp_introcv {
return '';
}
-sub pp_clonecv {
- my $self = shift;
- my($op, $cx) = @_;
- my $sv = $self->padname_sv($op->targ);
- my $name = substr $sv->PVX, 1; # skip &/$/@/%, like $self->padany
- return "my sub $name";
-}
-
sub pp_padcv {
my $self = shift;
my($op, $cx) = @_;
return $self->padany($op);
}
+my %lvref_funnies = (
+ OPpLVREF_SV, => '$',
+ OPpLVREF_AV, => '@',
+ OPpLVREF_HV, => '%',
+ OPpLVREF_CV, => '&',
+);
+
+sub pp_refassign {
+ my ($self, $op, $cx) = @_;
+ my $left;
+ if ($op->private & OPpLVREF_ELEM) {
+ $left = $op->first->sibling;
+ $left = maybe_local(@_, elem($self, $left, undef,
+ $left->targ == OP_AELEM
+ ? qw([ ] padav)
+ : qw({ } padhv)));
+ } elsif ($op->flags & OPf_STACKED) {
+ $left = maybe_local(@_,
+ $lvref_funnies{$op->private & OPpLVREF_TYPE}
+ . $self->deparse($op->first->sibling));
+ } else {
+ $left = &pp_padsv;
+ }
+ my $right = $self->deparse_binop_right($op, $op->first, 7);
+ return $self->maybe_parens("\\$left = $right", $cx, 7);
+}
+
+sub pp_lvref {
+ my ($self, $op, $cx) = @_;
+ my $code;
+ if ($op->private & OPpLVREF_ELEM) {
+ $code = $op->first->name =~ /av\z/ ? &pp_aelem : &pp_helem;
+ } elsif ($op->flags & OPf_STACKED) {
+ $code = maybe_local(@_,
+ $lvref_funnies{$op->private & OPpLVREF_TYPE}
+ . $self->deparse($op->first));
+ } else {
+ $code = &pp_padsv;
+ }
+ "\\$code";
+}
+
+sub pp_lvrefslice {
+ my ($self, $op, $cx) = @_;
+ '\\' . ($op->last->name =~ /av\z/ ? &pp_aslice : &pp_hslice);
+}
+
+sub pp_lvavref {
+ my ($self, $op, $cx) = @_;
+ '\\(' . ($op->flags & OPf_STACKED
+ ? maybe_local(@_, rv2x(@_, "\@"))
+ : &pp_padsv) . ')'
+}
+
1;
__END__
@@ -5384,7 +6206,8 @@ the main:: package, the code will include a package declaration.
=item *
-The only pragmas to be completely supported are: C<use warnings>,
+In Perl 5.20 and earlier, the only pragmas to
+be completely supported are: C<use warnings>,
C<use strict>, C<use bytes>, C<use integer>
and C<use feature>. (C<$[>, which
behaves like a pragma, is also supported.)
@@ -5405,8 +6228,8 @@ exactly the right place. So if you use a module which affects compilation
(such as by over-riding keywords, overloading constants or whatever)
then the output code might not work as intended.
-This is the most serious outstanding problem, and will require some help
-from the Perl core to fix.
+This is the most serious problem in Perl 5.20 and earlier. Fixing this
+required internal changes in Perl 5.22.
=item *
@@ -5427,7 +6250,7 @@ produced is already ordinary Perl which shouldn't be filtered again.
=item *
-Optimised away statements are rendered as
+Optimized-away statements are rendered as
'???'. This includes statements that
have a compile-time side-effect, such as the obscure
@@ -5446,26 +6269,18 @@ appear in code2ref output text as package variables. This is a tricky
problem, as perl has no native facility for referring to a lexical variable
defined within a different scope, although L<PadWalker> is a good start.
-=item *
-
-There are probably many more bugs on non-ASCII platforms (EBCDIC).
+See also L<Data::Dump::Streamer>, which combines B::Deparse and
+L<PadWalker> to serialize closures properly.
=item *
-Lexical C<my> subroutines are not deparsed properly at the moment. They are
-emitted as pure declarations, without their body; and the declaration may
-appear in the wrong place (before any lexicals the body closes over, or
-before the C<use feature> declaration that permits use of this feature).
-
-We expect to resolve this before the lexical-subroutine feature is no longer
-considered experimental.
+There are probably many more bugs on non-ASCII platforms (EBCDIC).
=item *
-Lexical C<state> subroutines are not deparsed at all at the moment.
-
-We expect to resolve this before the lexical-subroutine feature is no longer
-considered experimental.
+Prior to Perl 5.22, lexical C<my> subroutines were not deparsed properly.
+They were emitted as pure declarations, sometimes in the wrong place.
+Lexical C<state> subroutines were not deparsed at all.
=back
diff --git a/Master/tlpkg/tlperl/lib/B/Op_private.pm b/Master/tlpkg/tlperl/lib/B/Op_private.pm
new file mode 100644
index 00000000000..20b598eaaa5
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/B/Op_private.pm
@@ -0,0 +1,836 @@
+# -*- buffer-read-only: t -*-
+#
+# lib/B/Op_private.pm
+#
+# Copyright (C) 2014 by Larry Wall and others
+#
+# You may distribute under the terms of either the GNU General Public
+# License or the Artistic License, as specified in the README file.
+#
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is built by regen/opcode.pl from data in
+# regen/op_private and pod embedded in regen/opcode.pl.
+# Any changes made here will be lost!
+
+=head1 NAME
+
+B::Op_private - OP op_private flag definitions
+
+=head1 SYNOPSIS
+
+ use B::Op_private;
+
+ # flag details for bit 7 of OP_AELEM's op_private:
+ my $name = $B::Op_private::bits{aelem}{7}; # OPpLVAL_INTRO
+ my $value = $B::Op_private::defines{$name}; # 128
+ my $label = $B::Op_private::labels{$name}; # LVINTRO
+
+ # the bit field at bits 5..6 of OP_AELEM's op_private:
+ my $bf = $B::Op_private::bits{aelem}{6};
+ my $mask = $bf->{bitmask}; # etc
+
+=head1 DESCRIPTION
+
+This module provides four global hashes:
+
+ %B::Op_private::bits
+ %B::Op_private::defines
+ %B::Op_private::labels
+ %B::Op_private::ops_using
+
+which contain information about the per-op meanings of the bits in the
+op_private field.
+
+=head2 C<%bits>
+
+This is indexed by op name and then bit number (0..7). For single bit flags,
+it returns the name of the define (if any) for that bit:
+
+ $B::Op_private::bits{aelem}{7} eq 'OPpLVAL_INTRO';
+
+For bit fields, it returns a hash ref containing details about the field.
+The same reference will be returned for all bit positions that make
+up the bit field; so for example these both return the same hash ref:
+
+ $bitfield = $B::Op_private::bits{aelem}{5};
+ $bitfield = $B::Op_private::bits{aelem}{6};
+
+The general format of this hash ref is
+
+ {
+ # The bit range and mask; these are always present.
+ bitmin => 5,
+ bitmax => 6,
+ bitmask => 0x60,
+
+ # (The remaining keys are optional)
+
+ # The names of any defines that were requested:
+ mask_def => 'OPpFOO_MASK',
+ baseshift_def => 'OPpFOO_SHIFT',
+ bitcount_def => 'OPpFOO_BITS',
+
+ # If present, Concise etc will display the value with a 'FOO='
+ # prefix. If it equals '-', then Concise will treat the bit
+ # field as raw bits and not try to interpret it.
+ label => 'FOO',
+
+ # If present, specifies the names of some defines and the
+ # display labels that are used to assign meaning to particu-
+ # lar integer values within the bit field; e.g. 3 is dis-
+ # played as 'C'.
+ enum => [ qw(
+ 1 OPpFOO_A A
+ 2 OPpFOO_B B
+ 3 OPpFOO_C C
+ )],
+
+ };
+
+
+=head2 C<%defines>
+
+This gives the value of every C<OPp> define, e.g.
+
+ $B::Op_private::defines{OPpLVAL_INTRO} == 128;
+
+=head2 C<%labels>
+
+This gives the short display label for each define, as used by C<B::Concise>
+and C<perl -Dx>, e.g.
+
+ $B::Op_private::labels{OPpLVAL_INTRO} eq 'LVINTRO';
+
+If the label equals '-', then Concise will treat the bit as a raw bit and
+not try to display it symbolically.
+
+=head2 C<%ops_using>
+
+For each define, this gives a reference to an array of op names that use
+the flag.
+
+ @ops_using_lvintro = @{ $B::Op_private::ops_using{OPp_LVAL_INTRO} };
+
+=cut
+
+package B::Op_private;
+
+our %bits;
+
+
+our $VERSION = "5.022001";
+
+$bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv);
+$bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv);
+$bits{$_}{2} = 'OPpENTERSUB_HASTARG' for qw(entersub rv2cv);
+$bits{$_}{6} = 'OPpFLIP_LINENUM' for qw(flip flop);
+$bits{$_}{1} = 'OPpFT_ACCESS' for qw(fteexec fteread ftewrite ftrexec ftrread ftrwrite);
+$bits{$_}{4} = 'OPpFT_AFTER_t' for qw(ftatime ftbinary ftblk ftchr ftctime ftdir fteexec fteowned fteread ftewrite ftfile ftis ftlink ftmtime ftpipe ftrexec ftrowned ftrread ftrwrite ftsgid ftsize ftsock ftsuid ftsvtx fttext fttty ftzero);
+$bits{$_}{2} = 'OPpFT_STACKED' for qw(ftatime ftbinary ftblk ftchr ftctime ftdir fteexec fteowned fteread ftewrite ftfile ftis ftlink ftmtime ftpipe ftrexec ftrowned ftrread ftrwrite ftsgid ftsize ftsock ftsuid ftsvtx fttext fttty ftzero);
+$bits{$_}{3} = 'OPpFT_STACKING' for qw(ftatime ftbinary ftblk ftchr ftctime ftdir fteexec fteowned fteread ftewrite ftfile ftis ftlink ftmtime ftpipe ftrexec ftrowned ftrread ftrwrite ftsgid ftsize ftsock ftsuid ftsvtx fttext fttty ftzero);
+$bits{$_}{1} = 'OPpGREP_LEX' for qw(grepstart grepwhile mapstart mapwhile);
+$bits{$_}{1} = 'OPpHINT_STRICT_REFS' for qw(entersub multideref rv2av rv2cv rv2gv rv2hv rv2sv);
+$bits{$_}{5} = 'OPpHUSH_VMSISH' for qw(dbstate nextstate);
+$bits{$_}{2} = 'OPpITER_REVERSED' for qw(enteriter iter);
+$bits{$_}{7} = 'OPpLVALUE' for qw(leave leaveloop);
+$bits{$_}{6} = 'OPpLVAL_DEFER' for qw(aelem helem multideref);
+$bits{$_}{7} = 'OPpLVAL_INTRO' for qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv);
+$bits{$_}{2} = 'OPpLVREF_ELEM' for qw(lvref refassign);
+$bits{$_}{3} = 'OPpLVREF_ITER' for qw(lvref refassign);
+$bits{$_}{3} = 'OPpMAYBE_LVSUB' for qw(aassign aelem aslice av2arylen helem hslice keys kvaslice kvhslice multideref padav padhv pos rkeys rv2av rv2gv rv2hv substr vec);
+$bits{$_}{4} = 'OPpMAYBE_TRUEBOOL' for qw(padhv rv2hv);
+$bits{$_}{7} = 'OPpOFFBYONE' for qw(caller runcv wantarray);
+$bits{$_}{5} = 'OPpOPEN_IN_CRLF' for qw(backtick open);
+$bits{$_}{4} = 'OPpOPEN_IN_RAW' for qw(backtick open);
+$bits{$_}{7} = 'OPpOPEN_OUT_CRLF' for qw(backtick open);
+$bits{$_}{6} = 'OPpOPEN_OUT_RAW' for qw(backtick open);
+$bits{$_}{6} = 'OPpOUR_INTRO' for qw(enteriter gvsv rv2av rv2hv rv2sv split);
+$bits{$_}{6} = 'OPpPAD_STATE' for qw(lvavref lvref padav padhv padsv pushmark refassign);
+$bits{$_}{7} = 'OPpPV_IS_UTF8' for qw(dump goto last next redo);
+$bits{$_}{6} = 'OPpREFCOUNTED' for qw(leave leaveeval leavesub leavesublv leavewrite);
+$bits{$_}{6} = 'OPpRUNTIME' for qw(match pushre qr subst substcont);
+$bits{$_}{2} = 'OPpSLICEWARNING' for qw(aslice hslice padav padhv rv2av rv2hv);
+$bits{$_}{4} = 'OPpTARGET_MY' for qw(abs add atan2 chdir chmod chomp chown chr chroot concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_subtract index int kill left_shift length link log match mkdir modulo multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push pushre qr rand rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subst subtract symlink system time trans transr unlink unshift utime wait waitpid);
+$bits{$_}{5} = 'OPpTRANS_COMPLEMENT' for qw(trans transr);
+$bits{$_}{7} = 'OPpTRANS_DELETE' for qw(trans transr);
+$bits{$_}{0} = 'OPpTRANS_FROM_UTF' for qw(trans transr);
+$bits{$_}{6} = 'OPpTRANS_GROWS' for qw(trans transr);
+$bits{$_}{2} = 'OPpTRANS_IDENTICAL' for qw(trans transr);
+$bits{$_}{3} = 'OPpTRANS_SQUASH' for qw(trans transr);
+$bits{$_}{1} = 'OPpTRANS_TO_UTF' for qw(trans transr);
+$bits{$_}{5} = 'OPpTRUEBOOL' for qw(padhv rv2hv);
+
+my @bf = (
+ {
+ label => '-',
+ mask_def => 'OPpARG1_MASK',
+ bitmin => 0,
+ bitmax => 0,
+ bitmask => 1,
+ },
+ {
+ label => '-',
+ mask_def => 'OPpARG2_MASK',
+ bitmin => 0,
+ bitmax => 1,
+ bitmask => 3,
+ },
+ {
+ label => '-',
+ mask_def => 'OPpARG3_MASK',
+ bitmin => 0,
+ bitmax => 2,
+ bitmask => 7,
+ },
+ {
+ label => '-',
+ mask_def => 'OPpARG4_MASK',
+ bitmin => 0,
+ bitmax => 3,
+ bitmask => 15,
+ },
+ {
+ label => '-',
+ mask_def => 'OPpPADRANGE_COUNTMASK',
+ bitcount_def => 'OPpPADRANGE_COUNTSHIFT',
+ bitmin => 0,
+ bitmax => 6,
+ bitmask => 127,
+ },
+ {
+ label => '-',
+ bitmin => 0,
+ bitmax => 7,
+ bitmask => 255,
+ },
+ {
+ mask_def => 'OPpDEREF',
+ bitmin => 4,
+ bitmax => 5,
+ bitmask => 48,
+ enum => [
+ 1, 'OPpDEREF_AV', 'DREFAV',
+ 2, 'OPpDEREF_HV', 'DREFHV',
+ 3, 'OPpDEREF_SV', 'DREFSV',
+ ],
+ },
+ {
+ mask_def => 'OPpLVREF_TYPE',
+ bitmin => 4,
+ bitmax => 5,
+ bitmask => 48,
+ enum => [
+ 0, 'OPpLVREF_SV', 'SV',
+ 1, 'OPpLVREF_AV', 'AV',
+ 2, 'OPpLVREF_HV', 'HV',
+ 3, 'OPpLVREF_CV', 'CV',
+ ],
+ },
+);
+
+@{$bits{aassign}}{6,1,0} = ('OPpASSIGN_COMMON', $bf[1], $bf[1]);
+$bits{abs}{0} = $bf[0];
+@{$bits{accept}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{add}}{1,0} = ($bf[1], $bf[1]);
+$bits{aeach}{0} = $bf[0];
+@{$bits{aelem}}{5,4,1,0} = ($bf[6], $bf[6], $bf[1], $bf[1]);
+@{$bits{aelemfast}}{7,6,5,4,3,2,1,0} = ($bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5]);
+@{$bits{aelemfast_lex}}{7,6,5,4,3,2,1,0} = ($bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5]);
+$bits{akeys}{0} = $bf[0];
+$bits{alarm}{0} = $bf[0];
+$bits{and}{0} = $bf[0];
+$bits{andassign}{0} = $bf[0];
+$bits{anonconst}{0} = $bf[0];
+@{$bits{anonhash}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{anonlist}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{atan2}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{av2arylen}{0} = $bf[0];
+$bits{avalues}{0} = $bf[0];
+$bits{backtick}{0} = $bf[0];
+@{$bits{bind}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{binmode}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{bit_and}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{bit_or}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{bit_xor}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{bless}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{caller}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{chdir}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{chmod}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{chomp}{0} = $bf[0];
+$bits{chop}{0} = $bf[0];
+@{$bits{chown}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{chr}{0} = $bf[0];
+$bits{chroot}{0} = $bf[0];
+@{$bits{close}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{closedir}{0} = $bf[0];
+$bits{complement}{0} = $bf[0];
+@{$bits{concat}}{1,0} = ($bf[1], $bf[1]);
+$bits{cond_expr}{0} = $bf[0];
+@{$bits{connect}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{const}}{6,4,3,2,1} = ('OPpCONST_BARE', 'OPpCONST_ENTERED', 'OPpCONST_STRICT', 'OPpCONST_SHORTCIRCUIT', 'OPpCONST_NOVER');
+@{$bits{coreargs}}{7,6,1,0} = ('OPpCOREARGS_PUSHMARK', 'OPpCOREARGS_SCALARMOD', 'OPpCOREARGS_DEREF2', 'OPpCOREARGS_DEREF1');
+$bits{cos}{0} = $bf[0];
+@{$bits{crypt}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{dbmclose}{0} = $bf[0];
+@{$bits{dbmopen}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{defined}{0} = $bf[0];
+@{$bits{delete}}{6,0} = ('OPpSLICE', $bf[0]);
+@{$bits{die}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{divide}}{1,0} = ($bf[1], $bf[1]);
+$bits{dofile}{0} = $bf[0];
+$bits{dor}{0} = $bf[0];
+$bits{dorassign}{0} = $bf[0];
+$bits{dump}{0} = $bf[0];
+$bits{each}{0} = $bf[0];
+@{$bits{entereval}}{5,4,3,2,1,0} = ('OPpEVAL_RE_REPARSING', 'OPpEVAL_COPHH', 'OPpEVAL_BYTES', 'OPpEVAL_UNICODE', 'OPpEVAL_HAS_HH', $bf[0]);
+$bits{entergiven}{0} = $bf[0];
+$bits{enteriter}{3} = 'OPpITER_DEF';
+@{$bits{entersub}}{5,4,0} = ($bf[6], $bf[6], 'OPpENTERSUB_INARGS');
+$bits{entertry}{0} = $bf[0];
+$bits{enterwhen}{0} = $bf[0];
+@{$bits{enterwrite}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{eof}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{eq}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{exec}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{exists}}{6,0} = ('OPpEXISTS_SUB', $bf[0]);
+@{$bits{exit}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{exp}{0} = $bf[0];
+$bits{fc}{0} = $bf[0];
+@{$bits{fcntl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{fileno}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{flip}{0} = $bf[0];
+@{$bits{flock}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{flop}{0} = $bf[0];
+@{$bits{formline}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{ftatime}{0} = $bf[0];
+$bits{ftbinary}{0} = $bf[0];
+$bits{ftblk}{0} = $bf[0];
+$bits{ftchr}{0} = $bf[0];
+$bits{ftctime}{0} = $bf[0];
+$bits{ftdir}{0} = $bf[0];
+$bits{fteexec}{0} = $bf[0];
+$bits{fteowned}{0} = $bf[0];
+$bits{fteread}{0} = $bf[0];
+$bits{ftewrite}{0} = $bf[0];
+$bits{ftfile}{0} = $bf[0];
+$bits{ftis}{0} = $bf[0];
+$bits{ftlink}{0} = $bf[0];
+$bits{ftmtime}{0} = $bf[0];
+$bits{ftpipe}{0} = $bf[0];
+$bits{ftrexec}{0} = $bf[0];
+$bits{ftrowned}{0} = $bf[0];
+$bits{ftrread}{0} = $bf[0];
+$bits{ftrwrite}{0} = $bf[0];
+$bits{ftsgid}{0} = $bf[0];
+$bits{ftsize}{0} = $bf[0];
+$bits{ftsock}{0} = $bf[0];
+$bits{ftsuid}{0} = $bf[0];
+$bits{ftsvtx}{0} = $bf[0];
+$bits{fttext}{0} = $bf[0];
+$bits{fttty}{0} = $bf[0];
+$bits{ftzero}{0} = $bf[0];
+@{$bits{ge}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{gelem}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{getc}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{getpeername}{0} = $bf[0];
+@{$bits{getpgrp}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{getpriority}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{getsockname}{0} = $bf[0];
+$bits{ggrgid}{0} = $bf[0];
+$bits{ggrnam}{0} = $bf[0];
+@{$bits{ghbyaddr}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{ghbyname}{0} = $bf[0];
+@{$bits{glob}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{gmtime}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{gnbyaddr}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{gnbyname}{0} = $bf[0];
+$bits{goto}{0} = $bf[0];
+$bits{gpbyname}{0} = $bf[0];
+@{$bits{gpbynumber}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{gpwnam}{0} = $bf[0];
+$bits{gpwuid}{0} = $bf[0];
+$bits{grepstart}{0} = $bf[0];
+$bits{grepwhile}{0} = $bf[0];
+@{$bits{gsbyname}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{gsbyport}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{gsockopt}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{gt}}{1,0} = ($bf[1], $bf[1]);
+$bits{gv}{5} = 'OPpEARLY_CV';
+@{$bits{helem}}{5,4,1,0} = ($bf[6], $bf[6], $bf[1], $bf[1]);
+$bits{hex}{0} = $bf[0];
+@{$bits{i_add}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{i_divide}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{i_eq}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{i_ge}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{i_gt}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{i_le}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{i_lt}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{i_modulo}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{i_multiply}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{i_ncmp}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{i_ne}}{1,0} = ($bf[1], $bf[1]);
+$bits{i_negate}{0} = $bf[0];
+$bits{i_postdec}{0} = $bf[0];
+$bits{i_postinc}{0} = $bf[0];
+$bits{i_predec}{0} = $bf[0];
+$bits{i_preinc}{0} = $bf[0];
+@{$bits{i_subtract}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{index}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{int}{0} = $bf[0];
+@{$bits{ioctl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{join}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{keys}{0} = $bf[0];
+@{$bits{kill}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{last}{0} = $bf[0];
+$bits{lc}{0} = $bf[0];
+$bits{lcfirst}{0} = $bf[0];
+@{$bits{le}}{1,0} = ($bf[1], $bf[1]);
+$bits{leaveeval}{0} = $bf[0];
+$bits{leavegiven}{0} = $bf[0];
+@{$bits{leaveloop}}{1,0} = ($bf[1], $bf[1]);
+$bits{leavesub}{0} = $bf[0];
+$bits{leavesublv}{0} = $bf[0];
+$bits{leavewhen}{0} = $bf[0];
+$bits{leavewrite}{0} = $bf[0];
+@{$bits{left_shift}}{1,0} = ($bf[1], $bf[1]);
+$bits{length}{0} = $bf[0];
+@{$bits{link}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{list}{6} = 'OPpLIST_GUESSED';
+@{$bits{listen}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{localtime}{0} = $bf[0];
+$bits{lock}{0} = $bf[0];
+$bits{log}{0} = $bf[0];
+@{$bits{lslice}}{1,0} = ($bf[1], $bf[1]);
+$bits{lstat}{0} = $bf[0];
+@{$bits{lt}}{1,0} = ($bf[1], $bf[1]);
+$bits{lvavref}{0} = $bf[0];
+@{$bits{lvref}}{5,4,0} = ($bf[7], $bf[7], $bf[0]);
+$bits{mapstart}{0} = $bf[0];
+$bits{mapwhile}{0} = $bf[0];
+$bits{method}{0} = $bf[0];
+$bits{method_named}{0} = $bf[0];
+$bits{method_redir}{0} = $bf[0];
+$bits{method_redir_super}{0} = $bf[0];
+$bits{method_super}{0} = $bf[0];
+@{$bits{mkdir}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{modulo}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{msgctl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{msgget}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{msgrcv}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{msgsnd}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{multideref}}{5,4,0} = ('OPpMULTIDEREF_DELETE', 'OPpMULTIDEREF_EXISTS', $bf[0]);
+@{$bits{multiply}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{nbit_and}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{nbit_or}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{nbit_xor}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{ncmp}}{1,0} = ($bf[1], $bf[1]);
+$bits{ncomplement}{0} = $bf[0];
+@{$bits{ne}}{1,0} = ($bf[1], $bf[1]);
+$bits{negate}{0} = $bf[0];
+$bits{next}{0} = $bf[0];
+$bits{not}{0} = $bf[0];
+$bits{oct}{0} = $bf[0];
+$bits{once}{0} = $bf[0];
+@{$bits{open}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{open_dir}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{or}{0} = $bf[0];
+$bits{orassign}{0} = $bf[0];
+$bits{ord}{0} = $bf[0];
+@{$bits{pack}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{padrange}}{6,5,4,3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{padsv}}{5,4} = ($bf[6], $bf[6]);
+@{$bits{pipe_op}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{pop}{0} = $bf[0];
+$bits{pos}{0} = $bf[0];
+$bits{postdec}{0} = $bf[0];
+$bits{postinc}{0} = $bf[0];
+@{$bits{pow}}{1,0} = ($bf[1], $bf[1]);
+$bits{predec}{0} = $bf[0];
+$bits{preinc}{0} = $bf[0];
+$bits{prototype}{0} = $bf[0];
+@{$bits{push}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{quotemeta}{0} = $bf[0];
+@{$bits{rand}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{range}{0} = $bf[0];
+$bits{reach}{0} = $bf[0];
+@{$bits{read}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{readdir}{0} = $bf[0];
+$bits{readline}{0} = $bf[0];
+$bits{readlink}{0} = $bf[0];
+@{$bits{recv}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{redo}{0} = $bf[0];
+$bits{ref}{0} = $bf[0];
+@{$bits{refassign}}{5,4,1,0} = ($bf[7], $bf[7], $bf[1], $bf[1]);
+$bits{refgen}{0} = $bf[0];
+$bits{regcmaybe}{0} = $bf[0];
+$bits{regcomp}{0} = $bf[0];
+$bits{regcreset}{0} = $bf[0];
+@{$bits{rename}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{repeat}}{6,1,0} = ('OPpREPEAT_DOLIST', $bf[1], $bf[1]);
+$bits{require}{0} = $bf[0];
+@{$bits{reset}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{reverse}}{3,0} = ('OPpREVERSE_INPLACE', $bf[0]);
+$bits{rewinddir}{0} = $bf[0];
+@{$bits{right_shift}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{rindex}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{rkeys}{0} = $bf[0];
+$bits{rmdir}{0} = $bf[0];
+$bits{rv2av}{0} = $bf[0];
+@{$bits{rv2cv}}{7,5,0} = ('OPpENTERSUB_NOPAREN', 'OPpMAY_RETURN_CONSTANT', $bf[0]);
+@{$bits{rv2gv}}{6,5,4,2,0} = ('OPpALLOW_FAKE', $bf[6], $bf[6], 'OPpDONT_INIT_GV', $bf[0]);
+$bits{rv2hv}{0} = $bf[0];
+@{$bits{rv2sv}}{5,4,0} = ($bf[6], $bf[6], $bf[0]);
+$bits{rvalues}{0} = $bf[0];
+@{$bits{sassign}}{7,6,1,0} = ('OPpASSIGN_CV_TO_GV', 'OPpASSIGN_BACKWARDS', $bf[1], $bf[1]);
+@{$bits{sbit_and}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{sbit_or}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{sbit_xor}}{1,0} = ($bf[1], $bf[1]);
+$bits{scalar}{0} = $bf[0];
+$bits{schomp}{0} = $bf[0];
+$bits{schop}{0} = $bf[0];
+@{$bits{scmp}}{1,0} = ($bf[1], $bf[1]);
+$bits{scomplement}{0} = $bf[0];
+@{$bits{seek}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{seekdir}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{select}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{semctl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{semget}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{semop}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{send}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{seq}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{setpgrp}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{setpriority}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{sge}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{sgt}}{1,0} = ($bf[1], $bf[1]);
+$bits{shift}{0} = $bf[0];
+@{$bits{shmctl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{shmget}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{shmread}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{shmwrite}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{shostent}{0} = $bf[0];
+@{$bits{shutdown}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{sin}{0} = $bf[0];
+@{$bits{sle}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{sleep}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{slt}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{smartmatch}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{sne}}{1,0} = ($bf[1], $bf[1]);
+$bits{snetent}{0} = $bf[0];
+@{$bits{socket}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{sockpair}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{sort}}{6,5,4,3,2,1,0} = ('OPpSORT_STABLE', 'OPpSORT_QSORT', 'OPpSORT_DESCEND', 'OPpSORT_INPLACE', 'OPpSORT_REVERSE', 'OPpSORT_INTEGER', 'OPpSORT_NUMERIC');
+@{$bits{splice}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{split}{7} = 'OPpSPLIT_IMPLIM';
+@{$bits{sprintf}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{sprotoent}{0} = $bf[0];
+$bits{sqrt}{0} = $bf[0];
+@{$bits{srand}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{srefgen}{0} = $bf[0];
+@{$bits{sselect}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{sservent}{0} = $bf[0];
+@{$bits{ssockopt}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{stat}{0} = $bf[0];
+@{$bits{stringify}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{study}{0} = $bf[0];
+$bits{substcont}{0} = $bf[0];
+@{$bits{substr}}{4,2,1,0} = ('OPpSUBSTR_REPL_FIRST', $bf[2], $bf[2], $bf[2]);
+@{$bits{subtract}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{symlink}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{syscall}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{sysopen}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{sysread}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{sysseek}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{system}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{syswrite}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{tell}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{telldir}{0} = $bf[0];
+@{$bits{tie}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{tied}{0} = $bf[0];
+@{$bits{truncate}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{uc}{0} = $bf[0];
+$bits{ucfirst}{0} = $bf[0];
+@{$bits{umask}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{undef}{0} = $bf[0];
+@{$bits{unlink}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{unpack}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{unshift}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{untie}{0} = $bf[0];
+@{$bits{utime}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+$bits{values}{0} = $bf[0];
+@{$bits{vec}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{waitpid}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{warn}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{xor}}{1,0} = ($bf[1], $bf[1]);
+
+
+our %defines = (
+ OPpALLOW_FAKE => 64,
+ OPpARG1_MASK => 1,
+ OPpARG2_MASK => 3,
+ OPpARG3_MASK => 7,
+ OPpARG4_MASK => 15,
+ OPpASSIGN_BACKWARDS => 64,
+ OPpASSIGN_COMMON => 64,
+ OPpASSIGN_CV_TO_GV => 128,
+ OPpCONST_BARE => 64,
+ OPpCONST_ENTERED => 16,
+ OPpCONST_NOVER => 2,
+ OPpCONST_SHORTCIRCUIT => 4,
+ OPpCONST_STRICT => 8,
+ OPpCOREARGS_DEREF1 => 1,
+ OPpCOREARGS_DEREF2 => 2,
+ OPpCOREARGS_PUSHMARK => 128,
+ OPpCOREARGS_SCALARMOD => 64,
+ OPpDEREF => 48,
+ OPpDEREF_AV => 16,
+ OPpDEREF_HV => 32,
+ OPpDEREF_SV => 48,
+ OPpDONT_INIT_GV => 4,
+ OPpEARLY_CV => 32,
+ OPpENTERSUB_AMPER => 8,
+ OPpENTERSUB_DB => 64,
+ OPpENTERSUB_HASTARG => 4,
+ OPpENTERSUB_INARGS => 1,
+ OPpENTERSUB_NOPAREN => 128,
+ OPpEVAL_BYTES => 8,
+ OPpEVAL_COPHH => 16,
+ OPpEVAL_HAS_HH => 2,
+ OPpEVAL_RE_REPARSING => 32,
+ OPpEVAL_UNICODE => 4,
+ OPpEXISTS_SUB => 64,
+ OPpFLIP_LINENUM => 64,
+ OPpFT_ACCESS => 2,
+ OPpFT_AFTER_t => 16,
+ OPpFT_STACKED => 4,
+ OPpFT_STACKING => 8,
+ OPpGREP_LEX => 2,
+ OPpHINT_STRICT_REFS => 2,
+ OPpHUSH_VMSISH => 32,
+ OPpITER_DEF => 8,
+ OPpITER_REVERSED => 4,
+ OPpLIST_GUESSED => 64,
+ OPpLVALUE => 128,
+ OPpLVAL_DEFER => 64,
+ OPpLVAL_INTRO => 128,
+ OPpLVREF_AV => 16,
+ OPpLVREF_CV => 48,
+ OPpLVREF_ELEM => 4,
+ OPpLVREF_HV => 32,
+ OPpLVREF_ITER => 8,
+ OPpLVREF_SV => 0,
+ OPpLVREF_TYPE => 48,
+ OPpMAYBE_LVSUB => 8,
+ OPpMAYBE_TRUEBOOL => 16,
+ OPpMAY_RETURN_CONSTANT => 32,
+ OPpMULTIDEREF_DELETE => 32,
+ OPpMULTIDEREF_EXISTS => 16,
+ OPpOFFBYONE => 128,
+ OPpOPEN_IN_CRLF => 32,
+ OPpOPEN_IN_RAW => 16,
+ OPpOPEN_OUT_CRLF => 128,
+ OPpOPEN_OUT_RAW => 64,
+ OPpOUR_INTRO => 64,
+ OPpPADRANGE_COUNTMASK => 127,
+ OPpPADRANGE_COUNTSHIFT => 7,
+ OPpPAD_STATE => 64,
+ OPpPV_IS_UTF8 => 128,
+ OPpREFCOUNTED => 64,
+ OPpREPEAT_DOLIST => 64,
+ OPpREVERSE_INPLACE => 8,
+ OPpRUNTIME => 64,
+ OPpSLICE => 64,
+ OPpSLICEWARNING => 4,
+ OPpSORT_DESCEND => 16,
+ OPpSORT_INPLACE => 8,
+ OPpSORT_INTEGER => 2,
+ OPpSORT_NUMERIC => 1,
+ OPpSORT_QSORT => 32,
+ OPpSORT_REVERSE => 4,
+ OPpSORT_STABLE => 64,
+ OPpSPLIT_IMPLIM => 128,
+ OPpSUBSTR_REPL_FIRST => 16,
+ OPpTARGET_MY => 16,
+ OPpTRANS_COMPLEMENT => 32,
+ OPpTRANS_DELETE => 128,
+ OPpTRANS_FROM_UTF => 1,
+ OPpTRANS_GROWS => 64,
+ OPpTRANS_IDENTICAL => 4,
+ OPpTRANS_SQUASH => 8,
+ OPpTRANS_TO_UTF => 2,
+ OPpTRUEBOOL => 32,
+);
+
+our %labels = (
+ OPpALLOW_FAKE => 'FAKE',
+ OPpASSIGN_BACKWARDS => 'BKWARD',
+ OPpASSIGN_COMMON => 'COMMON',
+ OPpASSIGN_CV_TO_GV => 'CV2GV',
+ OPpCONST_BARE => 'BARE',
+ OPpCONST_ENTERED => 'ENTERED',
+ OPpCONST_NOVER => 'NOVER',
+ OPpCONST_SHORTCIRCUIT => 'SHORT',
+ OPpCONST_STRICT => 'STRICT',
+ OPpCOREARGS_DEREF1 => 'DEREF1',
+ OPpCOREARGS_DEREF2 => 'DEREF2',
+ OPpCOREARGS_PUSHMARK => 'MARK',
+ OPpCOREARGS_SCALARMOD => '$MOD',
+ OPpDEREF_AV => 'DREFAV',
+ OPpDEREF_HV => 'DREFHV',
+ OPpDEREF_SV => 'DREFSV',
+ OPpDONT_INIT_GV => 'NOINIT',
+ OPpEARLY_CV => 'EARLYCV',
+ OPpENTERSUB_AMPER => 'AMPER',
+ OPpENTERSUB_DB => 'DBG',
+ OPpENTERSUB_HASTARG => 'TARG',
+ OPpENTERSUB_INARGS => 'INARGS',
+ OPpENTERSUB_NOPAREN => 'NO()',
+ OPpEVAL_BYTES => 'BYTES',
+ OPpEVAL_COPHH => 'COPHH',
+ OPpEVAL_HAS_HH => 'HAS_HH',
+ OPpEVAL_RE_REPARSING => 'REPARSE',
+ OPpEVAL_UNICODE => 'UNI',
+ OPpEXISTS_SUB => 'SUB',
+ OPpFLIP_LINENUM => 'LINENUM',
+ OPpFT_ACCESS => 'FTACCESS',
+ OPpFT_AFTER_t => 'FTAFTERt',
+ OPpFT_STACKED => 'FTSTACKED',
+ OPpFT_STACKING => 'FTSTACKING',
+ OPpGREP_LEX => 'GREPLEX',
+ OPpHINT_STRICT_REFS => 'STRICT',
+ OPpHUSH_VMSISH => 'HUSH',
+ OPpITER_DEF => 'DEF',
+ OPpITER_REVERSED => 'REVERSED',
+ OPpLIST_GUESSED => 'GUESSED',
+ OPpLVALUE => 'LV',
+ OPpLVAL_DEFER => 'LVDEFER',
+ OPpLVAL_INTRO => 'LVINTRO',
+ OPpLVREF_AV => 'AV',
+ OPpLVREF_CV => 'CV',
+ OPpLVREF_ELEM => 'ELEM',
+ OPpLVREF_HV => 'HV',
+ OPpLVREF_ITER => 'ITER',
+ OPpLVREF_SV => 'SV',
+ OPpMAYBE_LVSUB => 'LVSUB',
+ OPpMAYBE_TRUEBOOL => 'BOOL?',
+ OPpMAY_RETURN_CONSTANT => 'CONST',
+ OPpMULTIDEREF_DELETE => 'DELETE',
+ OPpMULTIDEREF_EXISTS => 'EXISTS',
+ OPpOFFBYONE => '+1',
+ OPpOPEN_IN_CRLF => 'INCR',
+ OPpOPEN_IN_RAW => 'INBIN',
+ OPpOPEN_OUT_CRLF => 'OUTCR',
+ OPpOPEN_OUT_RAW => 'OUTBIN',
+ OPpOUR_INTRO => 'OURINTR',
+ OPpPAD_STATE => 'STATE',
+ OPpPV_IS_UTF8 => 'UTF',
+ OPpREFCOUNTED => 'REFC',
+ OPpREPEAT_DOLIST => 'DOLIST',
+ OPpREVERSE_INPLACE => 'INPLACE',
+ OPpRUNTIME => 'RTIME',
+ OPpSLICE => 'SLICE',
+ OPpSLICEWARNING => 'SLICEWARN',
+ OPpSORT_DESCEND => 'DESC',
+ OPpSORT_INPLACE => 'INPLACE',
+ OPpSORT_INTEGER => 'INT',
+ OPpSORT_NUMERIC => 'NUM',
+ OPpSORT_QSORT => 'QSORT',
+ OPpSORT_REVERSE => 'REV',
+ OPpSORT_STABLE => 'STABLE',
+ OPpSPLIT_IMPLIM => 'IMPLIM',
+ OPpSUBSTR_REPL_FIRST => 'REPL1ST',
+ OPpTARGET_MY => 'TARGMY',
+ OPpTRANS_COMPLEMENT => 'COMPL',
+ OPpTRANS_DELETE => 'DEL',
+ OPpTRANS_FROM_UTF => '<UTF',
+ OPpTRANS_GROWS => 'GROWS',
+ OPpTRANS_IDENTICAL => 'IDENT',
+ OPpTRANS_SQUASH => 'SQUASH',
+ OPpTRANS_TO_UTF => '>UTF',
+ OPpTRUEBOOL => 'BOOL',
+);
+
+
+our %ops_using = (
+ OPpALLOW_FAKE => [qw(rv2gv)],
+ OPpASSIGN_BACKWARDS => [qw(sassign)],
+ OPpASSIGN_COMMON => [qw(aassign)],
+ OPpCONST_BARE => [qw(const)],
+ OPpCOREARGS_DEREF1 => [qw(coreargs)],
+ OPpEARLY_CV => [qw(gv)],
+ OPpENTERSUB_AMPER => [qw(entersub rv2cv)],
+ OPpENTERSUB_INARGS => [qw(entersub)],
+ OPpENTERSUB_NOPAREN => [qw(rv2cv)],
+ OPpEVAL_BYTES => [qw(entereval)],
+ OPpEXISTS_SUB => [qw(exists)],
+ OPpFLIP_LINENUM => [qw(flip flop)],
+ OPpFT_ACCESS => [qw(fteexec fteread ftewrite ftrexec ftrread ftrwrite)],
+ OPpFT_AFTER_t => [qw(ftatime ftbinary ftblk ftchr ftctime ftdir fteexec fteowned fteread ftewrite ftfile ftis ftlink ftmtime ftpipe ftrexec ftrowned ftrread ftrwrite ftsgid ftsize ftsock ftsuid ftsvtx fttext fttty ftzero)],
+ OPpGREP_LEX => [qw(grepstart grepwhile mapstart mapwhile)],
+ OPpHINT_STRICT_REFS => [qw(entersub multideref rv2av rv2cv rv2gv rv2hv rv2sv)],
+ OPpHUSH_VMSISH => [qw(dbstate nextstate)],
+ OPpITER_DEF => [qw(enteriter)],
+ OPpITER_REVERSED => [qw(enteriter iter)],
+ OPpLIST_GUESSED => [qw(list)],
+ OPpLVALUE => [qw(leave leaveloop)],
+ OPpLVAL_DEFER => [qw(aelem helem multideref)],
+ OPpLVAL_INTRO => [qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv)],
+ OPpLVREF_ELEM => [qw(lvref refassign)],
+ OPpMAYBE_LVSUB => [qw(aassign aelem aslice av2arylen helem hslice keys kvaslice kvhslice multideref padav padhv pos rkeys rv2av rv2gv rv2hv substr vec)],
+ OPpMAYBE_TRUEBOOL => [qw(padhv rv2hv)],
+ OPpMULTIDEREF_DELETE => [qw(multideref)],
+ OPpOFFBYONE => [qw(caller runcv wantarray)],
+ OPpOPEN_IN_CRLF => [qw(backtick open)],
+ OPpOUR_INTRO => [qw(enteriter gvsv rv2av rv2hv rv2sv split)],
+ OPpPAD_STATE => [qw(lvavref lvref padav padhv padsv pushmark refassign)],
+ OPpPV_IS_UTF8 => [qw(dump goto last next redo)],
+ OPpREFCOUNTED => [qw(leave leaveeval leavesub leavesublv leavewrite)],
+ OPpREPEAT_DOLIST => [qw(repeat)],
+ OPpREVERSE_INPLACE => [qw(reverse)],
+ OPpRUNTIME => [qw(match pushre qr subst substcont)],
+ OPpSLICE => [qw(delete)],
+ OPpSLICEWARNING => [qw(aslice hslice padav padhv rv2av rv2hv)],
+ OPpSORT_DESCEND => [qw(sort)],
+ OPpSPLIT_IMPLIM => [qw(split)],
+ OPpSUBSTR_REPL_FIRST => [qw(substr)],
+ OPpTARGET_MY => [qw(abs add atan2 chdir chmod chomp chown chr chroot concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_subtract index int kill left_shift length link log match mkdir modulo multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push pushre qr rand rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subst subtract symlink system time trans transr unlink unshift utime wait waitpid)],
+ OPpTRANS_COMPLEMENT => [qw(trans transr)],
+);
+
+$ops_using{OPpASSIGN_CV_TO_GV} = $ops_using{OPpASSIGN_BACKWARDS};
+$ops_using{OPpCONST_ENTERED} = $ops_using{OPpCONST_BARE};
+$ops_using{OPpCONST_NOVER} = $ops_using{OPpCONST_BARE};
+$ops_using{OPpCONST_SHORTCIRCUIT} = $ops_using{OPpCONST_BARE};
+$ops_using{OPpCONST_STRICT} = $ops_using{OPpCONST_BARE};
+$ops_using{OPpCOREARGS_DEREF2} = $ops_using{OPpCOREARGS_DEREF1};
+$ops_using{OPpCOREARGS_PUSHMARK} = $ops_using{OPpCOREARGS_DEREF1};
+$ops_using{OPpCOREARGS_SCALARMOD} = $ops_using{OPpCOREARGS_DEREF1};
+$ops_using{OPpDONT_INIT_GV} = $ops_using{OPpALLOW_FAKE};
+$ops_using{OPpENTERSUB_DB} = $ops_using{OPpENTERSUB_AMPER};
+$ops_using{OPpENTERSUB_HASTARG} = $ops_using{OPpENTERSUB_AMPER};
+$ops_using{OPpEVAL_COPHH} = $ops_using{OPpEVAL_BYTES};
+$ops_using{OPpEVAL_HAS_HH} = $ops_using{OPpEVAL_BYTES};
+$ops_using{OPpEVAL_RE_REPARSING} = $ops_using{OPpEVAL_BYTES};
+$ops_using{OPpEVAL_UNICODE} = $ops_using{OPpEVAL_BYTES};
+$ops_using{OPpFT_STACKED} = $ops_using{OPpFT_AFTER_t};
+$ops_using{OPpFT_STACKING} = $ops_using{OPpFT_AFTER_t};
+$ops_using{OPpLVREF_ITER} = $ops_using{OPpLVREF_ELEM};
+$ops_using{OPpMAY_RETURN_CONSTANT} = $ops_using{OPpENTERSUB_NOPAREN};
+$ops_using{OPpMULTIDEREF_EXISTS} = $ops_using{OPpMULTIDEREF_DELETE};
+$ops_using{OPpOPEN_IN_RAW} = $ops_using{OPpOPEN_IN_CRLF};
+$ops_using{OPpOPEN_OUT_CRLF} = $ops_using{OPpOPEN_IN_CRLF};
+$ops_using{OPpOPEN_OUT_RAW} = $ops_using{OPpOPEN_IN_CRLF};
+$ops_using{OPpSORT_INPLACE} = $ops_using{OPpSORT_DESCEND};
+$ops_using{OPpSORT_INTEGER} = $ops_using{OPpSORT_DESCEND};
+$ops_using{OPpSORT_NUMERIC} = $ops_using{OPpSORT_DESCEND};
+$ops_using{OPpSORT_QSORT} = $ops_using{OPpSORT_DESCEND};
+$ops_using{OPpSORT_REVERSE} = $ops_using{OPpSORT_DESCEND};
+$ops_using{OPpSORT_STABLE} = $ops_using{OPpSORT_DESCEND};
+$ops_using{OPpTRANS_DELETE} = $ops_using{OPpTRANS_COMPLEMENT};
+$ops_using{OPpTRANS_FROM_UTF} = $ops_using{OPpTRANS_COMPLEMENT};
+$ops_using{OPpTRANS_GROWS} = $ops_using{OPpTRANS_COMPLEMENT};
+$ops_using{OPpTRANS_IDENTICAL} = $ops_using{OPpTRANS_COMPLEMENT};
+$ops_using{OPpTRANS_SQUASH} = $ops_using{OPpTRANS_COMPLEMENT};
+$ops_using{OPpTRANS_TO_UTF} = $ops_using{OPpTRANS_COMPLEMENT};
+$ops_using{OPpTRUEBOOL} = $ops_using{OPpMAYBE_TRUEBOOL};
+
+# ex: set ro:
diff --git a/Master/tlpkg/tlperl/lib/B/Showlex.pm b/Master/tlpkg/tlperl/lib/B/Showlex.pm
index ab684516100..1ad230e7bdf 100644
--- a/Master/tlpkg/tlperl/lib/B/Showlex.pm
+++ b/Master/tlpkg/tlperl/lib/B/Showlex.pm
@@ -1,6 +1,6 @@
package B::Showlex;
-our $VERSION = '1.04';
+our $VERSION = '1.05';
use strict;
use B qw(svref_2object comppadlist class);
@@ -36,7 +36,8 @@ sub shownamearray {
for ($i = 0; $i < $count; $i++) {
my $sv = $els[$i];
if (class($sv) ne "SPECIAL") {
- printf $walkHandle "$i: %s (0x%lx) %s\n", class($sv), $$sv, $sv->PVX;
+ printf $walkHandle "$i: (0x%lx) %s\n",
+ $$sv, $sv->PVX // "undef" || "const";
} else {
printf $walkHandle "$i: %s\n", $sv->terse;
#printf $walkHandle "$i: %s\n", B::Concise::concise_sv($sv);
@@ -64,16 +65,27 @@ sub showlex {
my ($newlex, $nosp1); # rendering state vars
+sub padname_terse {
+ my $name = shift;
+ return $name->terse if class($name) eq 'SPECIAL';
+ my $str = $name->PVX;
+ return sprintf "(0x%lx) %s",
+ $$name,
+ length $str ? qq'"$str"' : defined $str ? "const" : 'undef';
+}
+
sub newlex { # drop-in for showlex
my ($objname, $names, $vals) = @_;
my @names = $names->ARRAY;
my @vals = $vals->ARRAY;
my $count = @names;
print $walkHandle "$objname Pad has $count entries\n";
- printf $walkHandle "0: %s\n", $names[0]->terse unless $nosp1;
+ printf $walkHandle "0: %s\n", padname_terse($names[0]) unless $nosp1;
for (my $i = 1; $i < $count; $i++) {
- printf $walkHandle "$i: %s = %s\n", $names[$i]->terse, $vals[$i]->terse
- unless $nosp1 and $names[$i]->terse =~ /SPECIAL/;
+ printf $walkHandle "$i: %s = %s\n", padname_terse($names[$i]),
+ $vals[$i]->terse,
+ unless $nosp1
+ and class($names[$i]) eq 'SPECIAL' || !$names[$i]->LEN;
}
}
@@ -143,10 +155,10 @@ Traditional form:
$ perl -MO=Showlex -e 'my ($i,$j,$k)=(1,"foo")'
Pad of lexical names for comppadlist has 4 entries
- 0: SPECIAL #1 &PL_sv_undef
- 1: PVNV (0x9db0fb0) $i
- 2: PVNV (0x9db0f38) $j
- 3: PVNV (0x9db0f50) $k
+ 0: (0x8caea4) undef
+ 1: (0x9db0fb0) $i
+ 2: (0x9db0f38) $j
+ 3: (0x9db0f50) $k
Pad of lexical values for comppadlist has 5 entries
0: SPECIAL #1 &PL_sv_undef
1: NULL (0x9da4234)
@@ -159,10 +171,10 @@ New-style form:
$ perl -MO=Showlex,-newlex -e 'my ($i,$j,$k)=(1,"foo")'
main Pad has 4 entries
- 0: SPECIAL #1 &PL_sv_undef
- 1: PVNV (0xa0c4fb8) "$i" = NULL (0xa0b8234)
- 2: PVNV (0xa0c4f40) "$j" = NULL (0xa0c4f34)
- 3: PVNV (0xa0c4f58) "$k" = NULL (0xa0c4f4c)
+ 0: (0x8caea4) undef
+ 1: (0xa0c4fb8) "$i" = NULL (0xa0b8234)
+ 2: (0xa0c4f40) "$j" = NULL (0xa0c4f34)
+ 3: (0xa0c4f58) "$k" = NULL (0xa0c4f4c)
-e syntax OK
New form, no specials, outside O framework:
@@ -170,9 +182,9 @@ New form, no specials, outside O framework:
$ perl -MB::Showlex -e \
'my ($i,$j,$k)=(1,"foo"); B::Showlex::compile(-newlex,-nosp)->()'
main Pad has 4 entries
- 1: PVNV (0x998ffb0) "$i" = IV (0x9983234) 1
- 2: PVNV (0x998ff68) "$j" = PV (0x998ff5c) "foo"
- 3: PVNV (0x998ff80) "$k" = NULL (0x998ff74)
+ 1: (0x998ffb0) "$i" = IV (0x9983234) 1
+ 2: (0x998ff68) "$j" = PV (0x998ff5c) "foo"
+ 3: (0x998ff80) "$k" = NULL (0x998ff74)
Note that this example shows the values of the lexicals, whereas the other
examples did not (as they're compile-time only).
diff --git a/Master/tlpkg/tlperl/lib/Benchmark.pm b/Master/tlpkg/tlperl/lib/Benchmark.pm
index 9a43a2bc60e..b3016788080 100644
--- a/Master/tlpkg/tlperl/lib/Benchmark.pm
+++ b/Master/tlpkg/tlperl/lib/Benchmark.pm
@@ -404,7 +404,7 @@ outputs something like this:
=head1 INHERITANCE
Benchmark inherits from no other class, except of course
-for Exporter.
+from Exporter.
=head1 CAVEATS
@@ -482,7 +482,7 @@ our(@ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $VERSION);
clearcache clearallcache disablecache enablecache);
%EXPORT_TAGS=( all => [ @EXPORT, @EXPORT_OK ] ) ;
-$VERSION = 1.18;
+$VERSION = 1.20;
# --- ':hireswallclock' special handling
@@ -700,8 +700,18 @@ sub runloop {
# getting a too low initial $n in the initial, 'find the minimum' loop
# in &countit. This, in turn, can reduce the number of calls to
# &runloop a lot, and thus reduce additive errors.
+ #
+ # Note that its possible for the act of reading the system clock to
+ # burn lots of system CPU while we burn very little user clock in the
+ # busy loop, which can cause the loop to run for a very long wall time.
+ # So gradually ramp up the duration of the loop. See RT #122003
+ #
my $tbase = Benchmark->new(0)->[1];
- while ( ( $t0 = Benchmark->new(0) )->[1] == $tbase ) {} ;
+ my $limit = 1;
+ while ( ( $t0 = Benchmark->new(0) )->[1] == $tbase ) {
+ for (my $i=0; $i < $limit; $i++) { my $x = $i / 1.5 } # burn user CPU
+ $limit *= 1.1;
+ }
$subref->();
$t1 = Benchmark->new($n);
$td = &timediff($t1, $t0);
diff --git a/Master/tlpkg/tlperl/lib/CGI.pm b/Master/tlpkg/tlperl/lib/CGI.pm
deleted file mode 100644
index bcee2b1134d..00000000000
--- a/Master/tlpkg/tlperl/lib/CGI.pm
+++ /dev/null
@@ -1,8116 +0,0 @@
-package CGI;
-require 5.008001;
-use if $] >= 5.019, 'deprecate';
-use Carp 'croak';
-
-# See the bottom of this file for the POD documentation. Search for the
-# string '=head'.
-
-# You can run this file through either pod2man or pod2html to produce pretty
-# documentation in manual or html file format (these utilities are part of the
-# Perl 5 distribution).
-
-# Copyright 1995-1998 Lincoln D. Stein. All rights reserved.
-# It may be used and modified freely, but I do request that this copyright
-# notice remain attached to the file. You may modify this module as you
-# wish, but if you redistribute a modified version, please attach a note
-# listing the modifications you have made.
-
-# The most recent version and complete docs are available at:
-# http://search.cpan.org/dist/CGI.pm
-
-# The revision is no longer being updated since moving to git.
-$CGI::revision = '$Id: CGI.pm,v 1.266 2009/07/30 16:32:34 lstein Exp $';
-$CGI::VERSION='3.65';
-
-# HARD-CODED LOCATION FOR FILE UPLOAD TEMPORARY FILES.
-# UNCOMMENT THIS ONLY IF YOU KNOW WHAT YOU'RE DOING.
-# $CGITempFile::TMPDIRECTORY = '/usr/tmp';
-use CGI::Util qw(rearrange rearrange_header make_attributes unescape escape expires ebcdic2ascii ascii2ebcdic);
-
-#use constant XHTML_DTD => ['-//W3C//DTD XHTML Basic 1.0//EN',
-# 'http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd'];
-
-use constant XHTML_DTD => ['-//W3C//DTD XHTML 1.0 Transitional//EN',
- 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'];
-
-{
- local $^W = 0;
- $TAINTED = substr("$0$^X",0,0);
-}
-
-$MOD_PERL = 0; # no mod_perl by default
-
-#global settings
-$POST_MAX = -1; # no limit to uploaded files
-$DISABLE_UPLOADS = 0;
-
-@SAVED_SYMBOLS = ();
-
-
-# >>>>> Here are some globals that you might want to adjust <<<<<<
-sub initialize_globals {
- # Set this to 1 to enable copious autoloader debugging messages
- $AUTOLOAD_DEBUG = 0;
-
- # Set this to 1 to generate XTML-compatible output
- $XHTML = 1;
-
- # Change this to the preferred DTD to print in start_html()
- # or use default_dtd('text of DTD to use');
- $DEFAULT_DTD = [ '-//W3C//DTD HTML 4.01 Transitional//EN',
- 'http://www.w3.org/TR/html4/loose.dtd' ] ;
-
- # Set this to 1 to enable NOSTICKY scripts
- # or:
- # 1) use CGI '-nosticky';
- # 2) $CGI::NOSTICKY = 1;
- $NOSTICKY = 0;
-
- # Set this to 1 to enable NPH scripts
- # or:
- # 1) use CGI qw(-nph)
- # 2) CGI::nph(1)
- # 3) print header(-nph=>1)
- $NPH = 0;
-
- # Set this to 1 to enable debugging from @ARGV
- # Set to 2 to enable debugging from STDIN
- $DEBUG = 1;
-
- # Set this to 1 to make the temporary files created
- # during file uploads safe from prying eyes
- # or do...
- # 1) use CGI qw(:private_tempfiles)
- # 2) CGI::private_tempfiles(1);
- $PRIVATE_TEMPFILES = 0;
-
- # Set this to 1 to generate automatic tab indexes
- $TABINDEX = 0;
-
- # Set this to 1 to cause files uploaded in multipart documents
- # to be closed, instead of caching the file handle
- # or:
- # 1) use CGI qw(:close_upload_files)
- # 2) $CGI::close_upload_files(1);
- # Uploads with many files run out of file handles.
- # Also, for performance, since the file is already on disk,
- # it can just be renamed, instead of read and written.
- $CLOSE_UPLOAD_FILES = 0;
-
- # Automatically determined -- don't change
- $EBCDIC = 0;
-
- # Change this to 1 to suppress redundant HTTP headers
- $HEADERS_ONCE = 0;
-
- # separate the name=value pairs by semicolons rather than ampersands
- $USE_PARAM_SEMICOLONS = 1;
-
- # Do not include undefined params parsed from query string
- # use CGI qw(-no_undef_params);
- $NO_UNDEF_PARAMS = 0;
-
- # return everything as utf-8
- $PARAM_UTF8 = 0;
-
- # Other globals that you shouldn't worry about.
- undef $Q;
- $BEEN_THERE = 0;
- $DTD_PUBLIC_IDENTIFIER = "";
- undef @QUERY_PARAM;
- undef %EXPORT;
- undef $QUERY_CHARSET;
- undef %QUERY_FIELDNAMES;
- undef %QUERY_TMPFILES;
-
- # prevent complaints by mod_perl
- 1;
-}
-
-# ------------------ START OF THE LIBRARY ------------
-
-# make mod_perlhappy
-initialize_globals();
-
-# FIGURE OUT THE OS WE'RE RUNNING UNDER
-# Some systems support the $^O variable. If not
-# available then require() the Config library
-unless ($OS) {
- unless ($OS = $^O) {
- require Config;
- $OS = $Config::Config{'osname'};
- }
-}
-if ($OS =~ /^MSWin/i) {
- $OS = 'WINDOWS';
-} elsif ($OS =~ /^VMS/i) {
- $OS = 'VMS';
-} elsif ($OS =~ /^dos/i) {
- $OS = 'DOS';
-} elsif ($OS =~ /^MacOS/i) {
- $OS = 'MACINTOSH';
-} elsif ($OS =~ /^os2/i) {
- $OS = 'OS2';
-} elsif ($OS =~ /^epoc/i) {
- $OS = 'EPOC';
-} elsif ($OS =~ /^cygwin/i) {
- $OS = 'CYGWIN';
-} elsif ($OS =~ /^NetWare/i) {
- $OS = 'NETWARE';
-} else {
- $OS = 'UNIX';
-}
-
-# Some OS logic. Binary mode enabled on DOS, NT and VMS
-$needs_binmode = $OS=~/^(WINDOWS|DOS|OS2|MSWin|CYGWIN|NETWARE)/;
-
-# This is the default class for the CGI object to use when all else fails.
-$DefaultClass = 'CGI' unless defined $CGI::DefaultClass;
-
-# This is where to look for autoloaded routines.
-$AutoloadClass = $DefaultClass unless defined $CGI::AutoloadClass;
-
-# The path separator is a slash, backslash or semicolon, depending
-# on the platform.
-$SL = {
- UNIX => '/', OS2 => '\\', EPOC => '/', CYGWIN => '/', NETWARE => '/',
- WINDOWS => '\\', DOS => '\\', MACINTOSH => ':', VMS => '/'
- }->{$OS};
-
-# This no longer seems to be necessary
-# Turn on NPH scripts by default when running under IIS server!
-# $NPH++ if defined($ENV{'SERVER_SOFTWARE'}) && $ENV{'SERVER_SOFTWARE'}=~/IIS/;
-$IIS++ if defined($ENV{'SERVER_SOFTWARE'}) && $ENV{'SERVER_SOFTWARE'}=~/IIS/;
-
-# Turn on special checking for ActiveState's PerlEx
-$PERLEX++ if defined($ENV{'GATEWAY_INTERFACE'}) && $ENV{'GATEWAY_INTERFACE'} =~ /^CGI-PerlEx/;
-
-# Turn on special checking for Doug MacEachern's modperl
-# PerlEx::DBI tries to fool DBI by setting MOD_PERL
-if (exists $ENV{MOD_PERL} && ! $PERLEX) {
- # mod_perl handlers may run system() on scripts using CGI.pm;
- # Make sure so we don't get fooled by inherited $ENV{MOD_PERL}
- if (exists $ENV{MOD_PERL_API_VERSION} && $ENV{MOD_PERL_API_VERSION} == 2) {
- $MOD_PERL = 2;
- require Apache2::Response;
- require Apache2::RequestRec;
- require Apache2::RequestUtil;
- require Apache2::RequestIO;
- require APR::Pool;
- } else {
- $MOD_PERL = 1;
- require Apache;
- }
-}
-
-# Define the CRLF sequence. I can't use a simple "\r\n" because the meaning
-# of "\n" is different on different OS's (sometimes it generates CRLF, sometimes LF
-# and sometimes CR). The most popular VMS web server
-# doesn't accept CRLF -- instead it wants a LR. EBCDIC machines don't
-# use ASCII, so \015\012 means something different. I find this all
-# really annoying.
-$EBCDIC = "\t" ne "\011";
-if ($OS eq 'VMS') {
- $CRLF = "\n";
-} elsif ($EBCDIC) {
- $CRLF= "\r\n";
-} else {
- $CRLF = "\015\012";
-}
-
-if ($needs_binmode) {
- $CGI::DefaultClass->binmode(\*main::STDOUT);
- $CGI::DefaultClass->binmode(\*main::STDIN);
- $CGI::DefaultClass->binmode(\*main::STDERR);
-}
-
-%EXPORT_TAGS = (
- ':html2'=>['h1'..'h6',qw/p br hr ol ul li dl dt dd menu code var strong em
- tt u i b blockquote pre img a address cite samp dfn html head
- base body Link nextid title meta kbd start_html end_html
- input Select option comment charset escapeHTML/],
- ':html3'=>[qw/div table caption th td TR Tr sup Sub strike applet Param nobr
- embed basefont style span layer ilayer font frameset frame script small big Area Map/],
- ':html4'=>[qw/abbr acronym bdo col colgroup del fieldset iframe
- ins label legend noframes noscript object optgroup Q
- thead tbody tfoot/],
- ':netscape'=>[qw/blink fontsize center/],
- ':form'=>[qw/textfield textarea filefield password_field hidden checkbox checkbox_group
- submit reset defaults radio_group popup_menu button autoEscape
- scrolling_list image_button start_form end_form startform endform
- start_multipart_form end_multipart_form isindex tmpFileName uploadInfo URL_ENCODED MULTIPART/],
- ':cgi'=>[qw/param upload path_info path_translated request_uri url self_url script_name
- cookie Dump
- raw_cookie request_method query_string Accept user_agent remote_host content_type
- remote_addr referer server_name server_software server_port server_protocol virtual_port
- virtual_host remote_ident auth_type http append
- save_parameters restore_parameters param_fetch
- remote_user user_name header redirect import_names put
- Delete Delete_all url_param cgi_error/],
- ':ssl' => [qw/https/],
- ':cgi-lib' => [qw/ReadParse PrintHeader HtmlTop HtmlBot SplitParam Vars/],
- ':html' => [qw/:html2 :html3 :html4 :netscape/],
- ':standard' => [qw/:html2 :html3 :html4 :form :cgi/],
- ':push' => [qw/multipart_init multipart_start multipart_end multipart_final/],
- ':all' => [qw/:html2 :html3 :netscape :form :cgi :internal :html4/]
- );
-
-# Custom 'can' method for both autoloaded and non-autoloaded subroutines.
-# Author: Cees Hek <cees@sitesuite.com.au>
-
-sub can {
- my($class, $method) = @_;
-
- # See if UNIVERSAL::can finds it.
-
- if (my $func = $class -> SUPER::can($method) ){
- return $func;
- }
-
- # Try to compile the function.
-
- eval {
- # _compile looks at $AUTOLOAD for the function name.
-
- local $AUTOLOAD = join "::", $class, $method;
- &_compile;
- };
-
- # Now that the function is loaded (if it exists)
- # just use UNIVERSAL::can again to do the work.
-
- return $class -> SUPER::can($method);
-}
-
-# to import symbols into caller
-sub import {
- my $self = shift;
-
- # This causes modules to clash.
- undef %EXPORT_OK;
- undef %EXPORT;
-
- $self->_setup_symbols(@_);
- my ($callpack, $callfile, $callline) = caller;
-
- # To allow overriding, search through the packages
- # Till we find one in which the correct subroutine is defined.
- my @packages = ($self,@{"$self\:\:ISA"});
- for $sym (keys %EXPORT) {
- my $pck;
- my $def = ${"$self\:\:AutoloadClass"} || $DefaultClass;
- for $pck (@packages) {
- if (defined(&{"$pck\:\:$sym"})) {
- $def = $pck;
- last;
- }
- }
- *{"${callpack}::$sym"} = \&{"$def\:\:$sym"};
- }
-}
-
-sub compile {
- my $pack = shift;
- $pack->_setup_symbols('-compile',@_);
-}
-
-sub expand_tags {
- my($tag) = @_;
- return ("start_$1","end_$1") if $tag=~/^(?:\*|start_|end_)(.+)/;
- my(@r);
- return ($tag) unless $EXPORT_TAGS{$tag};
- for (@{$EXPORT_TAGS{$tag}}) {
- push(@r,&expand_tags($_));
- }
- return @r;
-}
-
-#### Method: new
-# The new routine. This will check the current environment
-# for an existing query string, and initialize itself, if so.
-####
-sub new {
- my($class,@initializer) = @_;
- my $self = {};
-
- bless $self,ref $class || $class || $DefaultClass;
-
- # always use a tempfile
- $self->{'use_tempfile'} = 1;
-
- if (ref($initializer[0])
- && (UNIVERSAL::isa($initializer[0],'Apache')
- ||
- UNIVERSAL::isa($initializer[0],'Apache2::RequestRec')
- )) {
- $self->r(shift @initializer);
- }
- if (ref($initializer[0])
- && (UNIVERSAL::isa($initializer[0],'CODE'))) {
- $self->upload_hook(shift @initializer, shift @initializer);
- $self->{'use_tempfile'} = shift @initializer if (@initializer > 0);
- }
- if ($MOD_PERL) {
- if ($MOD_PERL == 1) {
- $self->r(Apache->request) unless $self->r;
- my $r = $self->r;
- $r->register_cleanup(\&CGI::_reset_globals);
- $self->_setup_symbols(@SAVED_SYMBOLS) if @SAVED_SYMBOLS;
- }
- else {
- # XXX: once we have the new API
- # will do a real PerlOptions -SetupEnv check
- $self->r(Apache2::RequestUtil->request) unless $self->r;
- my $r = $self->r;
- $r->subprocess_env unless exists $ENV{REQUEST_METHOD};
- $r->pool->cleanup_register(\&CGI::_reset_globals);
- $self->_setup_symbols(@SAVED_SYMBOLS) if @SAVED_SYMBOLS;
- }
- undef $NPH;
- }
- $self->_reset_globals if $PERLEX;
- $self->init(@initializer);
- return $self;
-}
-
-# We provide a DESTROY method so that we can ensure that
-# temporary files are closed (via Fh->DESTROY) before they
-# are unlinked (via CGITempFile->DESTROY) because it is not
-# possible to unlink an open file on Win32. We explicitly
-# call DESTROY on each, rather than just undefing them and
-# letting Perl DESTROY them by garbage collection, in case the
-# user is still holding any reference to them as well.
-sub DESTROY {
- my $self = shift;
- if ($OS eq 'WINDOWS' || $OS eq 'VMS') {
- for my $href (values %{$self->{'.tmpfiles'}}) {
- $href->{hndl}->DESTROY if defined $href->{hndl};
- $href->{name}->DESTROY if defined $href->{name};
- }
- }
-}
-
-sub r {
- my $self = shift;
- my $r = $self->{'.r'};
- $self->{'.r'} = shift if @_;
- $r;
-}
-
-sub upload_hook {
- my $self;
- if (ref $_[0] eq 'CODE') {
- $CGI::Q = $self = $CGI::DefaultClass->new(@_);
- } else {
- $self = shift;
- }
- my ($hook,$data,$use_tempfile) = @_;
- $self->{'.upload_hook'} = $hook;
- $self->{'.upload_data'} = $data;
- $self->{'use_tempfile'} = $use_tempfile if defined $use_tempfile;
-}
-
-#### Method: param
-# Returns the value(s)of a named parameter.
-# If invoked in a list context, returns the
-# entire list. Otherwise returns the first
-# member of the list.
-# If name is not provided, return a list of all
-# the known parameters names available.
-# If more than one argument is provided, the
-# second and subsequent arguments are used to
-# set the value of the parameter.
-####
-sub param {
- my($self,@p) = self_or_default(@_);
- return $self->all_parameters unless @p;
- my($name,$value,@other);
-
- # For compatibility between old calling style and use_named_parameters() style,
- # we have to special case for a single parameter present.
- if (@p > 1) {
- ($name,$value,@other) = rearrange([NAME,[DEFAULT,VALUE,VALUES]],@p);
- my(@values);
-
- if (substr($p[0],0,1) eq '-') {
- @values = defined($value) ? (ref($value) && ref($value) eq 'ARRAY' ? @{$value} : $value) : ();
- } else {
- for ($value,@other) {
- push(@values,$_) if defined($_);
- }
- }
- # If values is provided, then we set it.
- if (@values or defined $value) {
- $self->add_parameter($name);
- $self->{param}{$name}=[@values];
- }
- } else {
- $name = $p[0];
- }
-
- return unless defined($name) && $self->{param}{$name};
-
- my @result = @{$self->{param}{$name}};
-
- if ($PARAM_UTF8) {
- eval "require Encode; 1;" unless Encode->can('decode'); # bring in these functions
- @result = map {ref $_ ? $_ : $self->_decode_utf8($_) } @result;
- }
-
- return wantarray ? @result : $result[0];
-}
-
-sub _decode_utf8 {
- my ($self, $val) = @_;
-
- if (Encode::is_utf8($val)) {
- return $val;
- }
- else {
- return Encode::decode(utf8 => $val);
- }
-}
-
-sub self_or_default {
- return @_ if defined($_[0]) && (!ref($_[0])) &&($_[0] eq 'CGI');
- unless (defined($_[0]) &&
- (ref($_[0]) eq 'CGI' || UNIVERSAL::isa($_[0],'CGI')) # slightly optimized for common case
- ) {
- $Q = $CGI::DefaultClass->new unless defined($Q);
- unshift(@_,$Q);
- }
- return wantarray ? @_ : $Q;
-}
-
-sub self_or_CGI {
- local $^W=0; # prevent a warning
- if (defined($_[0]) &&
- (substr(ref($_[0]),0,3) eq 'CGI'
- || UNIVERSAL::isa($_[0],'CGI'))) {
- return @_;
- } else {
- return ($DefaultClass,@_);
- }
-}
-
-########################################
-# THESE METHODS ARE MORE OR LESS PRIVATE
-# GO TO THE __DATA__ SECTION TO SEE MORE
-# PUBLIC METHODS
-########################################
-
-# Initialize the query object from the environment.
-# If a parameter list is found, this object will be set
-# to a hash in which parameter names are keys
-# and the values are stored as lists
-# If a keyword list is found, this method creates a bogus
-# parameter list with the single parameter 'keywords'.
-
-sub init {
- my $self = shift;
- my($query_string,$meth,$content_length,$fh,@lines) = ('','','','');
-
- my $is_xforms;
-
- my $initializer = shift; # for backward compatibility
- local($/) = "\n";
-
- # set autoescaping on by default
- $self->{'escape'} = 1;
-
- # if we get called more than once, we want to initialize
- # ourselves from the original query (which may be gone
- # if it was read from STDIN originally.)
- if (@QUERY_PARAM && !defined($initializer)) {
- for my $name (@QUERY_PARAM) {
- my $val = $QUERY_PARAM{$name}; # always an arrayref;
- $self->param('-name'=>$name,'-value'=> $val);
- if (defined $val and ref $val eq 'ARRAY') {
- for my $fh (grep {defined($_) && ref($_) && defined(fileno($_))} @$val) {
- seek($fh,0,0); # reset the filehandle.
- }
-
- }
- }
- $self->charset($QUERY_CHARSET);
- $self->{'.fieldnames'} = {%QUERY_FIELDNAMES};
- $self->{'.tmpfiles'} = {%QUERY_TMPFILES};
- return;
- }
-
- $meth=$ENV{'REQUEST_METHOD'} if defined($ENV{'REQUEST_METHOD'});
- $content_length = defined($ENV{'CONTENT_LENGTH'}) ? $ENV{'CONTENT_LENGTH'} : 0;
-
- $fh = to_filehandle($initializer) if $initializer;
-
- # set charset to the safe ISO-8859-1
- $self->charset('ISO-8859-1');
-
- METHOD: {
-
- # avoid unreasonably large postings
- if (($POST_MAX > 0) && ($content_length > $POST_MAX)) {
- #discard the post, unread
- $self->cgi_error("413 Request entity too large");
- last METHOD;
- }
-
- # Process multipart postings, but only if the initializer is
- # not defined.
- if ($meth eq 'POST'
- && defined($ENV{'CONTENT_TYPE'})
- && $ENV{'CONTENT_TYPE'}=~m|^multipart/form-data|
- && !defined($initializer)
- ) {
- my($boundary) = $ENV{'CONTENT_TYPE'} =~ /boundary=\"?([^\";,]+)\"?/;
- $self->read_multipart($boundary,$content_length);
- last METHOD;
- }
-
- # Process XForms postings. We know that we have XForms in the
- # following cases:
- # method eq 'POST' && content-type eq 'application/xml'
- # method eq 'POST' && content-type =~ /multipart\/related.+start=/
- # There are more cases, actually, but for now, we don't support other
- # methods for XForm posts.
- # In a XForm POST, the QUERY_STRING is parsed normally.
- # If the content-type is 'application/xml', we just set the param
- # XForms:Model (referring to the xml syntax) param containing the
- # unparsed XML data.
- # In the case of multipart/related we set XForms:Model as above, but
- # the other parts are available as uploads with the Content-ID as the
- # the key.
- # See the URL below for XForms specs on this issue.
- # http://www.w3.org/TR/2006/REC-xforms-20060314/slice11.html#submit-options
- if ($meth eq 'POST' && defined($ENV{'CONTENT_TYPE'})) {
- if ($ENV{'CONTENT_TYPE'} eq 'application/xml') {
- my($param) = 'XForms:Model';
- my($value) = '';
- $self->add_parameter($param);
- $self->read_from_client(\$value,$content_length,0)
- if $content_length > 0;
- push (@{$self->{param}{$param}},$value);
- $is_xforms = 1;
- } elsif ($ENV{'CONTENT_TYPE'} =~ /multipart\/related.+boundary=\"?([^\";,]+)\"?.+start=\"?\<?([^\"\>]+)\>?\"?/) {
- my($boundary,$start) = ($1,$2);
- my($param) = 'XForms:Model';
- $self->add_parameter($param);
- my($value) = $self->read_multipart_related($start,$boundary,$content_length,0);
- push (@{$self->{param}{$param}},$value);
- if ($MOD_PERL) {
- $query_string = $self->r->args;
- } else {
- $query_string = $ENV{'QUERY_STRING'} if defined $ENV{'QUERY_STRING'};
- $query_string ||= $ENV{'REDIRECT_QUERY_STRING'} if defined $ENV{'REDIRECT_QUERY_STRING'};
- }
- $is_xforms = 1;
- }
- }
-
-
- # If initializer is defined, then read parameters
- # from it.
- if (!$is_xforms && defined($initializer)) {
- if (UNIVERSAL::isa($initializer,'CGI')) {
- $query_string = $initializer->query_string;
- last METHOD;
- }
- if (ref($initializer) && ref($initializer) eq 'HASH') {
- for (keys %$initializer) {
- $self->param('-name'=>$_,'-value'=>$initializer->{$_});
- }
- last METHOD;
- }
-
- if (defined($fh) && ($fh ne '')) {
- while (my $line = <$fh>) {
- chomp $line;
- last if $line =~ /^=$/;
- push(@lines,$line);
- }
- # massage back into standard format
- if ("@lines" =~ /=/) {
- $query_string=join("&",@lines);
- } else {
- $query_string=join("+",@lines);
- }
- last METHOD;
- }
-
- # last chance -- treat it as a string
- $initializer = $$initializer if ref($initializer) eq 'SCALAR';
- $query_string = $initializer;
-
- last METHOD;
- }
-
- # If method is GET, HEAD or DELETE, fetch the query from
- # the environment.
- if ($is_xforms || $meth=~/^(GET|HEAD|DELETE)$/) {
- if ($MOD_PERL) {
- $query_string = $self->r->args;
- } else {
- $query_string = $ENV{'QUERY_STRING'} if defined $ENV{'QUERY_STRING'};
- $query_string ||= $ENV{'REDIRECT_QUERY_STRING'} if defined $ENV{'REDIRECT_QUERY_STRING'};
- }
- last METHOD;
- }
-
- if ($meth eq 'POST' || $meth eq 'PUT') {
- if ( $content_length > 0 ) {
- $self->read_from_client(\$query_string,$content_length,0);
- }
- # Some people want to have their cake and eat it too!
- # Uncomment this line to have the contents of the query string
- # APPENDED to the POST data.
- # $query_string .= (length($query_string) ? '&' : '') . $ENV{'QUERY_STRING'} if defined $ENV{'QUERY_STRING'};
- last METHOD;
- }
-
- # If $meth is not of GET, POST, PUT or HEAD, assume we're
- # being debugged offline.
- # Check the command line and then the standard input for data.
- # We use the shellwords package in order to behave the way that
- # UN*X programmers expect.
- if ($DEBUG)
- {
- my $cmdline_ret = read_from_cmdline();
- $query_string = $cmdline_ret->{'query_string'};
- if (defined($cmdline_ret->{'subpath'}))
- {
- $self->path_info($cmdline_ret->{'subpath'});
- }
- }
- }
-
-# YL: Begin Change for XML handler 10/19/2001
- if (!$is_xforms && ($meth eq 'POST' || $meth eq 'PUT')
- && defined($ENV{'CONTENT_TYPE'})
- && $ENV{'CONTENT_TYPE'} !~ m|^application/x-www-form-urlencoded|
- && $ENV{'CONTENT_TYPE'} !~ m|^multipart/form-data| ) {
- my($param) = $meth . 'DATA' ;
- $self->add_parameter($param) ;
- push (@{$self->{param}{$param}},$query_string);
- undef $query_string ;
- }
-# YL: End Change for XML handler 10/19/2001
-
- # We now have the query string in hand. We do slightly
- # different things for keyword lists and parameter lists.
- if (defined $query_string && length $query_string) {
- if ($query_string =~ /[&=;]/) {
- $self->parse_params($query_string);
- } else {
- $self->add_parameter('keywords');
- $self->{param}{'keywords'} = [$self->parse_keywordlist($query_string)];
- }
- }
-
- # Special case. Erase everything if there is a field named
- # .defaults.
- if ($self->param('.defaults')) {
- $self->delete_all();
- }
-
- # hash containing our defined fieldnames
- $self->{'.fieldnames'} = {};
- for ($self->param('.cgifields')) {
- $self->{'.fieldnames'}->{$_}++;
- }
-
- # Clear out our default submission button flag if present
- $self->delete('.submit');
- $self->delete('.cgifields');
-
- $self->save_request unless defined $initializer;
-}
-
-# FUNCTIONS TO OVERRIDE:
-# Turn a string into a filehandle
-sub to_filehandle {
- my $thingy = shift;
- return undef unless $thingy;
- return $thingy if UNIVERSAL::isa($thingy,'GLOB');
- return $thingy if UNIVERSAL::isa($thingy,'FileHandle');
- if (!ref($thingy)) {
- my $caller = 1;
- while (my $package = caller($caller++)) {
- my($tmp) = $thingy=~/[\':]/ ? $thingy : "$package\:\:$thingy";
- return $tmp if defined(fileno($tmp));
- }
- }
- return undef;
-}
-
-# send output to the browser
-sub put {
- my($self,@p) = self_or_default(@_);
- $self->print(@p);
-}
-
-# print to standard output (for overriding in mod_perl)
-sub print {
- shift;
- CORE::print(@_);
-}
-
-# get/set last cgi_error
-sub cgi_error {
- my ($self,$err) = self_or_default(@_);
- $self->{'.cgi_error'} = $err if defined $err;
- return $self->{'.cgi_error'};
-}
-
-sub save_request {
- my($self) = @_;
- # We're going to play with the package globals now so that if we get called
- # again, we initialize ourselves in exactly the same way. This allows
- # us to have several of these objects.
- @QUERY_PARAM = $self->param; # save list of parameters
- for (@QUERY_PARAM) {
- next unless defined $_;
- $QUERY_PARAM{$_}=$self->{param}{$_};
- }
- $QUERY_CHARSET = $self->charset;
- %QUERY_FIELDNAMES = %{$self->{'.fieldnames'}};
- %QUERY_TMPFILES = %{ $self->{'.tmpfiles'} || {} };
-}
-
-sub parse_params {
- my($self,$tosplit) = @_;
- my(@pairs) = split(/[&;]/,$tosplit);
- my($param,$value);
- for (@pairs) {
- ($param,$value) = split('=',$_,2);
- next unless defined $param;
- next if $NO_UNDEF_PARAMS and not defined $value;
- $value = '' unless defined $value;
- $param = unescape($param);
- $value = unescape($value);
- $self->add_parameter($param);
- push (@{$self->{param}{$param}},$value);
- }
-}
-
-sub add_parameter {
- my($self,$param)=@_;
- return unless defined $param;
- push (@{$self->{'.parameters'}},$param)
- unless defined($self->{param}{$param});
-}
-
-sub all_parameters {
- my $self = shift;
- return () unless defined($self) && $self->{'.parameters'};
- return () unless @{$self->{'.parameters'}};
- return @{$self->{'.parameters'}};
-}
-
-# put a filehandle into binary mode (DOS)
-sub binmode {
- return unless defined($_[1]) && ref ($_[1]) && defined fileno($_[1]);
- CORE::binmode($_[1]);
-}
-
-sub _make_tag_func {
- my ($self,$tagname) = @_;
- my $func = qq(
- sub $tagname {
- my (\$q,\$a,\@rest) = self_or_default(\@_);
- my(\$attr) = '';
- if (ref(\$a) && ref(\$a) eq 'HASH') {
- my(\@attr) = make_attributes(\$a,\$q->{'escape'});
- \$attr = " \@attr" if \@attr;
- } else {
- unshift \@rest,\$a if defined \$a;
- }
- );
- if ($tagname=~/start_(\w+)/i) {
- $func .= qq! return "<\L$1\E\$attr>";} !;
- } elsif ($tagname=~/end_(\w+)/i) {
- $func .= qq! return "<\L/$1\E>"; } !;
- } else {
- $func .= qq#
- return \$XHTML ? "\L<$tagname\E\$attr />" : "\L<$tagname\E\$attr>" unless \@rest;
- my(\$tag,\$untag) = ("\L<$tagname\E\$attr>","\L</$tagname>\E");
- my \@result = map { "\$tag\$_\$untag" }
- (ref(\$rest[0]) eq 'ARRAY') ? \@{\$rest[0]} : "\@rest";
- return "\@result";
- }#;
- }
-return $func;
-}
-
-sub AUTOLOAD {
- print STDERR "CGI::AUTOLOAD for $AUTOLOAD\n" if $CGI::AUTOLOAD_DEBUG;
- my $func = &_compile;
- goto &$func;
-}
-
-sub _compile {
- my($func) = $AUTOLOAD;
- my($pack,$func_name);
- {
- local($1,$2); # this fixes an obscure variable suicide problem.
- $func=~/(.+)::([^:]+)$/;
- ($pack,$func_name) = ($1,$2);
- $pack=~s/::SUPER$//; # fix another obscure problem
- $pack = ${"$pack\:\:AutoloadClass"} || $CGI::DefaultClass
- unless defined(${"$pack\:\:AUTOLOADED_ROUTINES"});
-
- my($sub) = \%{"$pack\:\:SUBS"};
- unless (%$sub) {
- my($auto) = \${"$pack\:\:AUTOLOADED_ROUTINES"};
- local ($@,$!);
- eval "package $pack; $$auto";
- croak("$AUTOLOAD: $@") if $@;
- $$auto = ''; # Free the unneeded storage (but don't undef it!!!)
- }
- my($code) = $sub->{$func_name};
-
- $code = "sub $AUTOLOAD { }" if (!$code and $func_name eq 'DESTROY');
- if (!$code) {
- (my $base = $func_name) =~ s/^(start_|end_)//i;
- if ($EXPORT{':any'} ||
- $EXPORT{'-any'} ||
- $EXPORT{$base} ||
- (%EXPORT_OK || grep(++$EXPORT_OK{$_},&expand_tags(':html')))
- && $EXPORT_OK{$base}) {
- $code = $CGI::DefaultClass->_make_tag_func($func_name);
- }
- }
- croak("Undefined subroutine $AUTOLOAD\n") unless $code;
- local ($@,$!);
- eval "package $pack; $code";
- if ($@) {
- $@ =~ s/ at .*\n//;
- croak("$AUTOLOAD: $@");
- }
- }
- CORE::delete($sub->{$func_name}); #free storage
- return "$pack\:\:$func_name";
-}
-
-sub _selected {
- my $self = shift;
- my $value = shift;
- return '' unless $value;
- return $XHTML ? qq(selected="selected" ) : qq(selected );
-}
-
-sub _checked {
- my $self = shift;
- my $value = shift;
- return '' unless $value;
- return $XHTML ? qq(checked="checked" ) : qq(checked );
-}
-
-sub _reset_globals { initialize_globals(); }
-
-sub _setup_symbols {
- my $self = shift;
- my $compile = 0;
-
- # to avoid reexporting unwanted variables
- undef %EXPORT;
-
- for (@_) {
- $HEADERS_ONCE++, next if /^[:-]unique_headers$/;
- $NPH++, next if /^[:-]nph$/;
- $NOSTICKY++, next if /^[:-]nosticky$/;
- $DEBUG=0, next if /^[:-]no_?[Dd]ebug$/;
- $DEBUG=2, next if /^[:-][Dd]ebug$/;
- $USE_PARAM_SEMICOLONS++, next if /^[:-]newstyle_urls$/;
- $PARAM_UTF8++, next if /^[:-]utf8$/;
- $XHTML++, next if /^[:-]xhtml$/;
- $XHTML=0, next if /^[:-]no_?xhtml$/;
- $USE_PARAM_SEMICOLONS=0, next if /^[:-]oldstyle_urls$/;
- $PRIVATE_TEMPFILES++, next if /^[:-]private_tempfiles$/;
- $TABINDEX++, next if /^[:-]tabindex$/;
- $CLOSE_UPLOAD_FILES++, next if /^[:-]close_upload_files$/;
- $EXPORT{$_}++, next if /^[:-]any$/;
- $compile++, next if /^[:-]compile$/;
- $NO_UNDEF_PARAMS++, next if /^[:-]no_undef_params$/;
-
- # This is probably extremely evil code -- to be deleted some day.
- if (/^[-]autoload$/) {
- my($pkg) = caller(1);
- *{"${pkg}::AUTOLOAD"} = sub {
- my($routine) = $AUTOLOAD;
- $routine =~ s/^.*::/CGI::/;
- &$routine;
- };
- next;
- }
-
- for (&expand_tags($_)) {
- tr/a-zA-Z0-9_//cd; # don't allow weird function names
- $EXPORT{$_}++;
- }
- }
- _compile_all(keys %EXPORT) if $compile;
- @SAVED_SYMBOLS = @_;
-}
-
-sub charset {
- my ($self,$charset) = self_or_default(@_);
- $self->{'.charset'} = $charset if defined $charset;
- $self->{'.charset'};
-}
-
-sub element_id {
- my ($self,$new_value) = self_or_default(@_);
- $self->{'.elid'} = $new_value if defined $new_value;
- sprintf('%010d',$self->{'.elid'}++);
-}
-
-sub element_tab {
- my ($self,$new_value) = self_or_default(@_);
- $self->{'.etab'} ||= 1;
- $self->{'.etab'} = $new_value if defined $new_value;
- my $tab = $self->{'.etab'}++;
- return '' unless $TABINDEX or defined $new_value;
- return qq(tabindex="$tab" );
-}
-
-###############################################################################
-################# THESE FUNCTIONS ARE AUTOLOADED ON DEMAND ####################
-###############################################################################
-$AUTOLOADED_ROUTINES = ''; # get rid of -w warning
-$AUTOLOADED_ROUTINES=<<'END_OF_AUTOLOAD';
-
-%SUBS = (
-
-'URL_ENCODED'=> <<'END_OF_FUNC',
-sub URL_ENCODED { 'application/x-www-form-urlencoded'; }
-END_OF_FUNC
-
-'MULTIPART' => <<'END_OF_FUNC',
-sub MULTIPART { 'multipart/form-data'; }
-END_OF_FUNC
-
-'SERVER_PUSH' => <<'END_OF_FUNC',
-sub SERVER_PUSH { 'multipart/x-mixed-replace;boundary="' . shift() . '"'; }
-END_OF_FUNC
-
-'new_MultipartBuffer' => <<'END_OF_FUNC',
-# Create a new multipart buffer
-sub new_MultipartBuffer {
- my($self,$boundary,$length) = @_;
- return MultipartBuffer->new($self,$boundary,$length);
-}
-END_OF_FUNC
-
-'read_from_client' => <<'END_OF_FUNC',
-# Read data from a file handle
-sub read_from_client {
- my($self, $buff, $len, $offset) = @_;
- local $^W=0; # prevent a warning
- return $MOD_PERL
- ? $self->r->read($$buff, $len, $offset)
- : read(\*STDIN, $$buff, $len, $offset);
-}
-END_OF_FUNC
-
-'delete' => <<'END_OF_FUNC',
-#### Method: delete
-# Deletes the named parameter entirely.
-####
-sub delete {
- my($self,@p) = self_or_default(@_);
- my(@names) = rearrange([NAME],@p);
- my @to_delete = ref($names[0]) eq 'ARRAY' ? @$names[0] : @names;
- my %to_delete;
- for my $name (@to_delete)
- {
- CORE::delete $self->{param}{$name};
- CORE::delete $self->{'.fieldnames'}->{$name};
- $to_delete{$name}++;
- }
- @{$self->{'.parameters'}}=grep { !exists($to_delete{$_}) } $self->param();
- return;
-}
-END_OF_FUNC
-
-#### Method: import_names
-# Import all parameters into the given namespace.
-# Assumes namespace 'Q' if not specified
-####
-'import_names' => <<'END_OF_FUNC',
-sub import_names {
- my($self,$namespace,$delete) = self_or_default(@_);
- $namespace = 'Q' unless defined($namespace);
- die "Can't import names into \"main\"\n" if \%{"${namespace}::"} == \%::;
- if ($delete || $MOD_PERL || exists $ENV{'FCGI_ROLE'}) {
- # can anyone find an easier way to do this?
- for (keys %{"${namespace}::"}) {
- local *symbol = "${namespace}::${_}";
- undef $symbol;
- undef @symbol;
- undef %symbol;
- }
- }
- my($param,@value,$var);
- for $param ($self->param) {
- # protect against silly names
- ($var = $param)=~tr/a-zA-Z0-9_/_/c;
- $var =~ s/^(?=\d)/_/;
- local *symbol = "${namespace}::$var";
- @value = $self->param($param);
- @symbol = @value;
- $symbol = $value[0];
- }
-}
-END_OF_FUNC
-
-#### Method: keywords
-# Keywords acts a bit differently. Calling it in a list context
-# returns the list of keywords.
-# Calling it in a scalar context gives you the size of the list.
-####
-'keywords' => <<'END_OF_FUNC',
-sub keywords {
- my($self,@values) = self_or_default(@_);
- # If values is provided, then we set it.
- $self->{param}{'keywords'}=[@values] if @values;
- my(@result) = defined($self->{param}{'keywords'}) ? @{$self->{param}{'keywords'}} : ();
- @result;
-}
-END_OF_FUNC
-
-# These are some tie() interfaces for compatibility
-# with Steve Brenner's cgi-lib.pl routines
-'Vars' => <<'END_OF_FUNC',
-sub Vars {
- my $q = shift;
- my %in;
- tie(%in,CGI,$q);
- return %in if wantarray;
- return \%in;
-}
-END_OF_FUNC
-
-# These are some tie() interfaces for compatibility
-# with Steve Brenner's cgi-lib.pl routines
-'ReadParse' => <<'END_OF_FUNC',
-sub ReadParse {
- local(*in);
- if (@_) {
- *in = $_[0];
- } else {
- my $pkg = caller();
- *in=*{"${pkg}::in"};
- }
- tie(%in,CGI);
- return scalar(keys %in);
-}
-END_OF_FUNC
-
-'PrintHeader' => <<'END_OF_FUNC',
-sub PrintHeader {
- my($self) = self_or_default(@_);
- return $self->header();
-}
-END_OF_FUNC
-
-'HtmlTop' => <<'END_OF_FUNC',
-sub HtmlTop {
- my($self,@p) = self_or_default(@_);
- return $self->start_html(@p);
-}
-END_OF_FUNC
-
-'HtmlBot' => <<'END_OF_FUNC',
-sub HtmlBot {
- my($self,@p) = self_or_default(@_);
- return $self->end_html(@p);
-}
-END_OF_FUNC
-
-'SplitParam' => <<'END_OF_FUNC',
-sub SplitParam {
- my ($param) = @_;
- my (@params) = split ("\0", $param);
- return (wantarray ? @params : $params[0]);
-}
-END_OF_FUNC
-
-'MethGet' => <<'END_OF_FUNC',
-sub MethGet {
- return request_method() eq 'GET';
-}
-END_OF_FUNC
-
-'MethPost' => <<'END_OF_FUNC',
-sub MethPost {
- return request_method() eq 'POST';
-}
-END_OF_FUNC
-
-'MethPut' => <<'END_OF_FUNC',
-sub MethPut {
- return request_method() eq 'PUT';
-}
-END_OF_FUNC
-
-'TIEHASH' => <<'END_OF_FUNC',
-sub TIEHASH {
- my $class = shift;
- my $arg = $_[0];
- if (ref($arg) && UNIVERSAL::isa($arg,'CGI')) {
- return $arg;
- }
- return $Q ||= $class->new(@_);
-}
-END_OF_FUNC
-
-'STORE' => <<'END_OF_FUNC',
-sub STORE {
- my $self = shift;
- my $tag = shift;
- my $vals = shift;
- my @vals = index($vals,"\0")!=-1 ? split("\0",$vals) : $vals;
- $self->param(-name=>$tag,-value=>\@vals);
-}
-END_OF_FUNC
-
-'FETCH' => <<'END_OF_FUNC',
-sub FETCH {
- return $_[0] if $_[1] eq 'CGI';
- return undef unless defined $_[0]->param($_[1]);
- return join("\0",$_[0]->param($_[1]));
-}
-END_OF_FUNC
-
-'FIRSTKEY' => <<'END_OF_FUNC',
-sub FIRSTKEY {
- $_[0]->{'.iterator'}=0;
- $_[0]->{'.parameters'}->[$_[0]->{'.iterator'}++];
-}
-END_OF_FUNC
-
-'NEXTKEY' => <<'END_OF_FUNC',
-sub NEXTKEY {
- $_[0]->{'.parameters'}->[$_[0]->{'.iterator'}++];
-}
-END_OF_FUNC
-
-'EXISTS' => <<'END_OF_FUNC',
-sub EXISTS {
- exists $_[0]->{param}{$_[1]};
-}
-END_OF_FUNC
-
-'DELETE' => <<'END_OF_FUNC',
-sub DELETE {
- $_[0]->delete($_[1]);
-}
-END_OF_FUNC
-
-'CLEAR' => <<'END_OF_FUNC',
-sub CLEAR {
- %{$_[0]}=();
-}
-####
-END_OF_FUNC
-
-####
-# Append a new value to an existing query
-####
-'append' => <<'EOF',
-sub append {
- my($self,@p) = self_or_default(@_);
- my($name,$value) = rearrange([NAME,[VALUE,VALUES]],@p);
- my(@values) = defined($value) ? (ref($value) ? @{$value} : $value) : ();
- if (@values) {
- $self->add_parameter($name);
- push(@{$self->{param}{$name}},@values);
- }
- return $self->param($name);
-}
-EOF
-
-#### Method: delete_all
-# Delete all parameters
-####
-'delete_all' => <<'EOF',
-sub delete_all {
- my($self) = self_or_default(@_);
- my @param = $self->param();
- $self->delete(@param);
-}
-EOF
-
-'Delete' => <<'EOF',
-sub Delete {
- my($self,@p) = self_or_default(@_);
- $self->delete(@p);
-}
-EOF
-
-'Delete_all' => <<'EOF',
-sub Delete_all {
- my($self,@p) = self_or_default(@_);
- $self->delete_all(@p);
-}
-EOF
-
-#### Method: autoescape
-# If you want to turn off the autoescaping features,
-# call this method with undef as the argument
-'autoEscape' => <<'END_OF_FUNC',
-sub autoEscape {
- my($self,$escape) = self_or_default(@_);
- my $d = $self->{'escape'};
- $self->{'escape'} = $escape;
- $d;
-}
-END_OF_FUNC
-
-
-#### Method: version
-# Return the current version
-####
-'version' => <<'END_OF_FUNC',
-sub version {
- return $VERSION;
-}
-END_OF_FUNC
-
-#### Method: url_param
-# Return a parameter in the QUERY_STRING, regardless of
-# whether this was a POST or a GET
-####
-'url_param' => <<'END_OF_FUNC',
-sub url_param {
- my ($self,@p) = self_or_default(@_);
- my $name = shift(@p);
- return undef unless exists($ENV{QUERY_STRING});
- unless (exists($self->{'.url_param'})) {
- $self->{'.url_param'}={}; # empty hash
- if ($ENV{QUERY_STRING} =~ /=/) {
- my(@pairs) = split(/[&;]/,$ENV{QUERY_STRING});
- my($param,$value);
- for (@pairs) {
- ($param,$value) = split('=',$_,2);
- $param = unescape($param);
- $value = unescape($value);
- push(@{$self->{'.url_param'}->{$param}},$value);
- }
- } else {
- my @keywords = $self->parse_keywordlist($ENV{QUERY_STRING});
- $self->{'.url_param'}{'keywords'} = \@keywords if @keywords;
- }
- }
- return keys %{$self->{'.url_param'}} unless defined($name);
- return () unless $self->{'.url_param'}->{$name};
- return wantarray ? @{$self->{'.url_param'}->{$name}}
- : $self->{'.url_param'}->{$name}->[0];
-}
-END_OF_FUNC
-
-#### Method: Dump
-# Returns a string in which all the known parameter/value
-# pairs are represented as nested lists, mainly for the purposes
-# of debugging.
-####
-'Dump' => <<'END_OF_FUNC',
-sub Dump {
- my($self) = self_or_default(@_);
- my($param,$value,@result);
- return '<ul></ul>' unless $self->param;
- push(@result,"<ul>");
- for $param ($self->param) {
- my($name)=$self->_maybe_escapeHTML($param);
- push(@result,"<li><strong>$name</strong></li>");
- push(@result,"<ul>");
- for $value ($self->param($param)) {
- $value = $self->_maybe_escapeHTML($value);
- $value =~ s/\n/<br \/>\n/g;
- push(@result,"<li>$value</li>");
- }
- push(@result,"</ul>");
- }
- push(@result,"</ul>");
- return join("\n",@result);
-}
-END_OF_FUNC
-
-#### Method as_string
-#
-# synonym for "dump"
-####
-'as_string' => <<'END_OF_FUNC',
-sub as_string {
- &Dump(@_);
-}
-END_OF_FUNC
-
-#### Method: save
-# Write values out to a filehandle in such a way that they can
-# be reinitialized by the filehandle form of the new() method
-####
-'save' => <<'END_OF_FUNC',
-sub save {
- my($self,$filehandle) = self_or_default(@_);
- $filehandle = to_filehandle($filehandle);
- my($param);
- local($,) = ''; # set print field separator back to a sane value
- local($\) = ''; # set output line separator to a sane value
- for $param ($self->param) {
- my($escaped_param) = escape($param);
- my($value);
- for $value ($self->param($param)) {
- print $filehandle "$escaped_param=",escape("$value"),"\n"
- if length($escaped_param) or length($value);
- }
- }
- for (keys %{$self->{'.fieldnames'}}) {
- print $filehandle ".cgifields=",escape("$_"),"\n";
- }
- print $filehandle "=\n"; # end of record
-}
-END_OF_FUNC
-
-
-#### Method: save_parameters
-# An alias for save() that is a better name for exportation.
-# Only intended to be used with the function (non-OO) interface.
-####
-'save_parameters' => <<'END_OF_FUNC',
-sub save_parameters {
- my $fh = shift;
- return save(to_filehandle($fh));
-}
-END_OF_FUNC
-
-#### Method: restore_parameters
-# A way to restore CGI parameters from an initializer.
-# Only intended to be used with the function (non-OO) interface.
-####
-'restore_parameters' => <<'END_OF_FUNC',
-sub restore_parameters {
- $Q = $CGI::DefaultClass->new(@_);
-}
-END_OF_FUNC
-
-#### Method: multipart_init
-# Return a Content-Type: style header for server-push
-# This has to be NPH on most web servers, and it is advisable to set $| = 1
-#
-# Many thanks to Ed Jordan <ed@fidalgo.net> for this
-# contribution, updated by Andrew Benham (adsb@bigfoot.com)
-####
-'multipart_init' => <<'END_OF_FUNC',
-sub multipart_init {
- my($self,@p) = self_or_default(@_);
- my($boundary,@other) = rearrange_header([BOUNDARY],@p);
- if (!$boundary) {
- $boundary = '------- =_';
- my @chrs = ('0'..'9', 'A'..'Z', 'a'..'z');
- for (1..17) {
- $boundary .= $chrs[rand(scalar @chrs)];
- }
- }
-
- $self->{'separator'} = "$CRLF--$boundary$CRLF";
- $self->{'final_separator'} = "$CRLF--$boundary--$CRLF";
- $type = SERVER_PUSH($boundary);
- return $self->header(
- -nph => 0,
- -type => $type,
- (map { split "=", $_, 2 } @other),
- ) . "WARNING: YOUR BROWSER DOESN'T SUPPORT THIS SERVER-PUSH TECHNOLOGY." . $self->multipart_end;
-}
-END_OF_FUNC
-
-
-#### Method: multipart_start
-# Return a Content-Type: style header for server-push, start of section
-#
-# Many thanks to Ed Jordan <ed@fidalgo.net> for this
-# contribution, updated by Andrew Benham (adsb@bigfoot.com)
-####
-'multipart_start' => <<'END_OF_FUNC',
-sub multipart_start {
- my(@header);
- my($self,@p) = self_or_default(@_);
- my($type,@other) = rearrange([TYPE],@p);
- $type = $type || 'text/html';
- push(@header,"Content-Type: $type");
-
- # rearrange() was designed for the HTML portion, so we
- # need to fix it up a little.
- for (@other) {
- # Don't use \s because of perl bug 21951
- next unless my($header,$value) = /([^ \r\n\t=]+)=\"?(.+?)\"?$/;
- ($_ = $header) =~ s/^(\w)(.*)/$1 . lc ($2) . ': '.$self->unescapeHTML($value)/e;
- }
- push(@header,@other);
- my $header = join($CRLF,@header)."${CRLF}${CRLF}";
- return $header;
-}
-END_OF_FUNC
-
-
-#### Method: multipart_end
-# Return a MIME boundary separator for server-push, end of section
-#
-# Many thanks to Ed Jordan <ed@fidalgo.net> for this
-# contribution
-####
-'multipart_end' => <<'END_OF_FUNC',
-sub multipart_end {
- my($self,@p) = self_or_default(@_);
- return $self->{'separator'};
-}
-END_OF_FUNC
-
-
-#### Method: multipart_final
-# Return a MIME boundary separator for server-push, end of all sections
-#
-# Contributed by Andrew Benham (adsb@bigfoot.com)
-####
-'multipart_final' => <<'END_OF_FUNC',
-sub multipart_final {
- my($self,@p) = self_or_default(@_);
- return $self->{'final_separator'} . "WARNING: YOUR BROWSER DOESN'T SUPPORT THIS SERVER-PUSH TECHNOLOGY." . $CRLF;
-}
-END_OF_FUNC
-
-
-#### Method: header
-# Return a Content-Type: style header
-#
-####
-'header' => <<'END_OF_FUNC',
-sub header {
- my($self,@p) = self_or_default(@_);
- my(@header);
-
- return "" if $self->{'.header_printed'}++ and $HEADERS_ONCE;
-
- my($type,$status,$cookie,$target,$expires,$nph,$charset,$attachment,$p3p,@other) =
- rearrange([['TYPE','CONTENT_TYPE','CONTENT-TYPE'],
- 'STATUS',['COOKIE','COOKIES'],'TARGET',
- 'EXPIRES','NPH','CHARSET',
- 'ATTACHMENT','P3P'],@p);
-
- # Since $cookie and $p3p may be array references,
- # we must stringify them before CR escaping is done.
- my @cookie;
- for (ref($cookie) eq 'ARRAY' ? @{$cookie} : $cookie) {
- my $cs = UNIVERSAL::isa($_,'CGI::Cookie') ? $_->as_string : $_;
- push(@cookie,$cs) if defined $cs and $cs ne '';
- }
- $p3p = join ' ',@$p3p if ref($p3p) eq 'ARRAY';
-
- # CR escaping for values, per RFC 822
- for my $header ($type,$status,@cookie,$target,$expires,$nph,$charset,$attachment,$p3p,@other) {
- if (defined $header) {
- # From RFC 822:
- # Unfolding is accomplished by regarding CRLF immediately
- # followed by a LWSP-char as equivalent to the LWSP-char.
- $header =~ s/$CRLF(\s)/$1/g;
-
- # All other uses of newlines are invalid input.
- if ($header =~ m/$CRLF|\015|\012/) {
- # shorten very long values in the diagnostic
- $header = substr($header,0,72).'...' if (length $header > 72);
- die "Invalid header value contains a newline not followed by whitespace: $header";
- }
- }
- }
-
- $nph ||= $NPH;
-
- $type ||= 'text/html' unless defined($type);
-
- # sets if $charset is given, gets if not
- $charset = $self->charset( $charset );
-
- # rearrange() was designed for the HTML portion, so we
- # need to fix it up a little.
- for (@other) {
- # Don't use \s because of perl bug 21951
- next unless my($header,$value) = /([^ \r\n\t=]+)=\"?(.+?)\"?$/s;
- ($_ = $header) =~ s/^(\w)(.*)/"\u$1\L$2" . ': '.$self->unescapeHTML($value)/e;
- }
-
- $type .= "; charset=$charset"
- if $type ne ''
- and $type !~ /\bcharset\b/
- and defined $charset
- and $charset ne '';
-
- # Maybe future compatibility. Maybe not.
- my $protocol = $ENV{SERVER_PROTOCOL} || 'HTTP/1.0';
- push(@header,$protocol . ' ' . ($status || '200 OK')) if $nph;
- push(@header,"Server: " . &server_software()) if $nph;
-
- push(@header,"Status: $status") if $status;
- push(@header,"Window-Target: $target") if $target;
- push(@header,"P3P: policyref=\"/w3c/p3p.xml\", CP=\"$p3p\"") if $p3p;
- # push all the cookies -- there may be several
- push(@header,map {"Set-Cookie: $_"} @cookie);
- # if the user indicates an expiration time, then we need
- # both an Expires and a Date header (so that the browser is
- # uses OUR clock)
- push(@header,"Expires: " . expires($expires,'http'))
- if $expires;
- push(@header,"Date: " . expires(0,'http')) if $expires || $cookie || $nph;
- push(@header,"Pragma: no-cache") if $self->cache();
- push(@header,"Content-Disposition: attachment; filename=\"$attachment\"") if $attachment;
- push(@header,map {ucfirst $_} @other);
- push(@header,"Content-Type: $type") if $type ne '';
- my $header = join($CRLF,@header)."${CRLF}${CRLF}";
- if (($MOD_PERL >= 1) && !$nph) {
- $self->r->send_cgi_header($header);
- return '';
- }
- return $header;
-}
-END_OF_FUNC
-
-#### Method: cache
-# Control whether header() will produce the no-cache
-# Pragma directive.
-####
-'cache' => <<'END_OF_FUNC',
-sub cache {
- my($self,$new_value) = self_or_default(@_);
- $new_value = '' unless $new_value;
- if ($new_value ne '') {
- $self->{'cache'} = $new_value;
- }
- return $self->{'cache'};
-}
-END_OF_FUNC
-
-
-#### Method: redirect
-# Return a Location: style header
-#
-####
-'redirect' => <<'END_OF_FUNC',
-sub redirect {
- my($self,@p) = self_or_default(@_);
- my($url,$target,$status,$cookie,$nph,@other) =
- rearrange([[LOCATION,URI,URL],TARGET,STATUS,['COOKIE','COOKIES'],NPH],@p);
- $status = '302 Found' unless defined $status;
- $url ||= $self->self_url;
- my(@o);
- for (@other) { tr/\"//d; push(@o,split("=",$_,2)); }
- unshift(@o,
- '-Status' => $status,
- '-Location'=> $url,
- '-nph' => $nph);
- unshift(@o,'-Target'=>$target) if $target;
- unshift(@o,'-Type'=>'');
- my @unescaped;
- unshift(@unescaped,'-Cookie'=>$cookie) if $cookie;
- return $self->header((map {$self->unescapeHTML($_)} @o),@unescaped);
-}
-END_OF_FUNC
-
-
-#### Method: start_html
-# Canned HTML header
-#
-# Parameters:
-# $title -> (optional) The title for this HTML document (-title)
-# $author -> (optional) e-mail address of the author (-author)
-# $base -> (optional) if set to true, will enter the BASE address of this document
-# for resolving relative references (-base)
-# $xbase -> (optional) alternative base at some remote location (-xbase)
-# $target -> (optional) target window to load all links into (-target)
-# $script -> (option) Javascript code (-script)
-# $no_script -> (option) Javascript <noscript> tag (-noscript)
-# $meta -> (optional) Meta information tags
-# $head -> (optional) any other elements you'd like to incorporate into the <head> tag
-# (a scalar or array ref)
-# $style -> (optional) reference to an external style sheet
-# @other -> (optional) any other named parameters you'd like to incorporate into
-# the <body> tag.
-####
-'start_html' => <<'END_OF_FUNC',
-sub start_html {
- my($self,@p) = &self_or_default(@_);
- my($title,$author,$base,$xbase,$script,$noscript,
- $target,$meta,$head,$style,$dtd,$lang,$encoding,$declare_xml,@other) =
- rearrange([TITLE,AUTHOR,BASE,XBASE,SCRIPT,NOSCRIPT,TARGET,
- META,HEAD,STYLE,DTD,LANG,ENCODING,DECLARE_XML],@p);
-
- $self->element_id(0);
- $self->element_tab(0);
-
- $encoding = lc($self->charset) unless defined $encoding;
-
- # Need to sort out the DTD before it's okay to call escapeHTML().
- my(@result,$xml_dtd);
- if ($dtd) {
- if (defined(ref($dtd)) and (ref($dtd) eq 'ARRAY')) {
- $dtd = $DEFAULT_DTD unless $dtd->[0] =~ m|^-//|;
- } else {
- $dtd = $DEFAULT_DTD unless $dtd =~ m|^-//|;
- }
- } else {
- $dtd = $XHTML ? XHTML_DTD : $DEFAULT_DTD;
- }
-
- $xml_dtd++ if ref($dtd) eq 'ARRAY' && $dtd->[0] =~ /\bXHTML\b/i;
- $xml_dtd++ if ref($dtd) eq '' && $dtd =~ /\bXHTML\b/i;
- push @result,qq(<?xml version="1.0" encoding="$encoding"?>) if $xml_dtd && $declare_xml;
-
- if (ref($dtd) && ref($dtd) eq 'ARRAY') {
- push(@result,qq(<!DOCTYPE html\n\tPUBLIC "$dtd->[0]"\n\t "$dtd->[1]">));
- $DTD_PUBLIC_IDENTIFIER = $dtd->[0];
- } else {
- push(@result,qq(<!DOCTYPE html\n\tPUBLIC "$dtd">));
- $DTD_PUBLIC_IDENTIFIER = $dtd;
- }
-
- # Now that we know whether we're using the HTML 3.2 DTD or not, it's okay to
- # call escapeHTML(). Strangely enough, the title needs to be escaped as
- # HTML while the author needs to be escaped as a URL.
- $title = $self->_maybe_escapeHTML($title || 'Untitled Document');
- $author = $self->escape($author);
-
- if ($DTD_PUBLIC_IDENTIFIER =~ /[^X]HTML (2\.0|3\.2|4\.01?)/i) {
- $lang = "" unless defined $lang;
- $XHTML = 0;
- }
- else {
- $lang = 'en-US' unless defined $lang;
- }
-
- my $lang_bits = $lang ne '' ? qq( lang="$lang" xml:lang="$lang") : '';
- my $meta_bits = qq(<meta http-equiv="Content-Type" content="text/html; charset=$encoding" />)
- if $XHTML && $encoding && !$declare_xml;
-
- push(@result,$XHTML ? qq(<html xmlns="http://www.w3.org/1999/xhtml"$lang_bits>\n<head>\n<title>$title</title>)
- : ($lang ? qq(<html lang="$lang">) : "<html>")
- . "<head><title>$title</title>");
- if (defined $author) {
- push(@result,$XHTML ? "<link rev=\"made\" href=\"mailto:$author\" />"
- : "<link rev=\"made\" href=\"mailto:$author\">");
- }
-
- if ($base || $xbase || $target) {
- my $href = $xbase || $self->url('-path'=>1);
- my $t = $target ? qq/ target="$target"/ : '';
- push(@result,$XHTML ? qq(<base href="$href"$t />) : qq(<base href="$href"$t>));
- }
-
- if ($meta && ref($meta) && (ref($meta) eq 'HASH')) {
- for (keys %$meta) { push(@result,$XHTML ? qq(<meta name="$_" content="$meta->{$_}" />)
- : qq(<meta name="$_" content="$meta->{$_}">)); }
- }
-
- my $meta_bits_set = 0;
- if( $head ) {
- if( ref $head ) {
- push @result, @$head;
- $meta_bits_set = 1 if grep { /http-equiv=["']Content-Type/i }@$head;
- }
- else {
- push @result, $head;
- $meta_bits_set = 1 if $head =~ /http-equiv=["']Content-Type/i;
- }
- }
-
- # handle the infrequently-used -style and -script parameters
- push(@result,$self->_style($style)) if defined $style;
- push(@result,$self->_script($script)) if defined $script;
- push(@result,$meta_bits) if defined $meta_bits and !$meta_bits_set;
-
- # handle -noscript parameter
- push(@result,<<END) if $noscript;
-<noscript>
-$noscript
-</noscript>
-END
- ;
- my($other) = @other ? " @other" : '';
- push(@result,"</head>\n<body$other>\n");
- return join("\n",@result);
-}
-END_OF_FUNC
-
-### Method: _style
-# internal method for generating a CSS style section
-####
-'_style' => <<'END_OF_FUNC',
-sub _style {
- my ($self,$style) = @_;
- my (@result);
-
- my $type = 'text/css';
- my $rel = 'stylesheet';
-
-
- my $cdata_start = $XHTML ? "\n<!--/* <![CDATA[ */" : "\n<!-- ";
- my $cdata_end = $XHTML ? "\n/* ]]> */-->\n" : " -->\n";
-
- my @s = ref($style) eq 'ARRAY' ? @$style : $style;
- my $other = '';
-
- for my $s (@s) {
- if (ref($s)) {
- my($src,$code,$verbatim,$stype,$alternate,$foo,@other) =
- rearrange([qw(SRC CODE VERBATIM TYPE ALTERNATE FOO)],
- ('-foo'=>'bar',
- ref($s) eq 'ARRAY' ? @$s : %$s));
- my $type = defined $stype ? $stype : 'text/css';
- my $rel = $alternate ? 'alternate stylesheet' : 'stylesheet';
- $other = "@other" if @other;
-
- if (ref($src) eq "ARRAY") # Check to see if the $src variable is an array reference
- { # If it is, push a LINK tag for each one
- for $src (@$src)
- {
- push(@result,$XHTML ? qq(<link rel="$rel" type="$type" href="$src" $other/>)
- : qq(<link rel="$rel" type="$type" href="$src"$other>)) if $src;
- }
- }
- else
- { # Otherwise, push the single -src, if it exists.
- push(@result,$XHTML ? qq(<link rel="$rel" type="$type" href="$src" $other/>)
- : qq(<link rel="$rel" type="$type" href="$src"$other>)
- ) if $src;
- }
- if ($verbatim) {
- my @v = ref($verbatim) eq 'ARRAY' ? @$verbatim : $verbatim;
- push(@result, "<style type=\"text/css\">\n$_\n</style>") for @v;
- }
- my @c = ref($code) eq 'ARRAY' ? @$code : $code if $code;
- push(@result,style({'type'=>$type},"$cdata_start\n$_\n$cdata_end")) for @c;
-
- } else {
- my $src = $s;
- push(@result,$XHTML ? qq(<link rel="$rel" type="$type" href="$src" $other/>)
- : qq(<link rel="$rel" type="$type" href="$src"$other>));
- }
- }
- @result;
-}
-END_OF_FUNC
-
-'_script' => <<'END_OF_FUNC',
-sub _script {
- my ($self,$script) = @_;
- my (@result);
-
- my (@scripts) = ref($script) eq 'ARRAY' ? @$script : ($script);
- for $script (@scripts) {
- my($src,$code,$language,$charset);
- if (ref($script)) { # script is a hash
- ($src,$code,$type,$charset) =
- rearrange(['SRC','CODE',['LANGUAGE','TYPE'],'CHARSET'],
- '-foo'=>'bar', # a trick to allow the '-' to be omitted
- ref($script) eq 'ARRAY' ? @$script : %$script);
- $type ||= 'text/javascript';
- unless ($type =~ m!\w+/\w+!) {
- $type =~ s/[\d.]+$//;
- $type = "text/$type";
- }
- } else {
- ($src,$code,$type,$charset) = ('',$script, 'text/javascript', '');
- }
-
- my $comment = '//'; # javascript by default
- $comment = '#' if $type=~/perl|tcl/i;
- $comment = "'" if $type=~/vbscript/i;
-
- my ($cdata_start,$cdata_end);
- if ($XHTML) {
- $cdata_start = "$comment<![CDATA[\n";
- $cdata_end .= "\n$comment]]>";
- } else {
- $cdata_start = "\n<!-- Hide script\n";
- $cdata_end = $comment;
- $cdata_end .= " End script hiding -->\n";
- }
- my(@satts);
- push(@satts,'src'=>$src) if $src;
- push(@satts,'type'=>$type);
- push(@satts,'charset'=>$charset) if ($src && $charset);
- $code = $cdata_start . $code . $cdata_end if defined $code;
- push(@result,$self->script({@satts},$code || ''));
- }
- @result;
-}
-END_OF_FUNC
-
-#### Method: end_html
-# End an HTML document.
-# Trivial method for completeness. Just returns "</body>"
-####
-'end_html' => <<'END_OF_FUNC',
-sub end_html {
- return "\n</body>\n</html>";
-}
-END_OF_FUNC
-
-
-################################
-# METHODS USED IN BUILDING FORMS
-################################
-
-#### Method: isindex
-# Just prints out the isindex tag.
-# Parameters:
-# $action -> optional URL of script to run
-# Returns:
-# A string containing a <isindex> tag
-'isindex' => <<'END_OF_FUNC',
-sub isindex {
- my($self,@p) = self_or_default(@_);
- my($action,@other) = rearrange([ACTION],@p);
- $action = qq/ action="$action"/ if $action;
- my($other) = @other ? " @other" : '';
- return $XHTML ? "<isindex$action$other />" : "<isindex$action$other>";
-}
-END_OF_FUNC
-
-
-#### Method: startform
-# This method is DEPRECATED
-# Start a form
-# Parameters:
-# $method -> optional submission method to use (GET or POST)
-# $action -> optional URL of script to run
-# $enctype ->encoding to use (URL_ENCODED or MULTIPART)
-'startform' => <<'END_OF_FUNC',
-sub startform {
- my($self,@p) = self_or_default(@_);
-
- my($method,$action,$enctype,@other) =
- rearrange([METHOD,ACTION,ENCTYPE],@p);
-
- $method = $self->_maybe_escapeHTML(lc($method || 'post'));
- $enctype = $self->_maybe_escapeHTML($enctype || &URL_ENCODED);
- if (defined $action) {
- $action = $self->_maybe_escapeHTML($action);
- }
- else {
- $action = $self->_maybe_escapeHTML($self->request_uri || $self->self_url);
- }
- $action = qq(action="$action");
- my($other) = @other ? " @other" : '';
- $self->{'.parametersToAdd'}={};
- return qq/<form method="$method" $action enctype="$enctype"$other>/;
-}
-END_OF_FUNC
-
-#### Method: start_form
-# Start a form
-# Parameters:
-# $method -> optional submission method to use (GET or POST)
-# $action -> optional URL of script to run
-# $enctype ->encoding to use (URL_ENCODED or MULTIPART)
-'start_form' => <<'END_OF_FUNC',
-sub start_form {
- my($self,@p) = self_or_default(@_);
-
- my($method,$action,$enctype,@other) =
- rearrange([METHOD,ACTION,ENCTYPE],@p);
-
- $method = $self->_maybe_escapeHTML(lc($method || 'post'));
-
- if( $XHTML ){
- $enctype = $self->_maybe_escapeHTML($enctype || &MULTIPART);
- }else{
- $enctype = $self->_maybe_escapeHTML($enctype || &URL_ENCODED);
- }
-
- if (defined $action) {
- $action = $self->_maybe_escapeHTML($action);
- }
- else {
- $action = $self->_maybe_escapeHTML($self->request_uri || $self->self_url);
- }
- $action = qq(action="$action");
- my($other) = @other ? " @other" : '';
- $self->{'.parametersToAdd'}={};
- return qq/<form method="$method" $action enctype="$enctype"$other>/;
-}
-END_OF_FUNC
-
-#### Method: start_multipart_form
-'start_multipart_form' => <<'END_OF_FUNC',
-sub start_multipart_form {
- my($self,@p) = self_or_default(@_);
- if (defined($p[0]) && substr($p[0],0,1) eq '-') {
- return $self->start_form(-enctype=>&MULTIPART,@p);
- } else {
- my($method,$action,@other) =
- rearrange([METHOD,ACTION],@p);
- return $self->start_form($method,$action,&MULTIPART,@other);
- }
-}
-END_OF_FUNC
-
-
-
-#### Method: end_form
-# End a form
-# Note: This repeated below under the older name.
-'end_form' => <<'END_OF_FUNC',
-sub end_form {
- my($self,@p) = self_or_default(@_);
- if ( $NOSTICKY ) {
- return wantarray ? ("</form>") : "\n</form>";
- } else {
- if (my @fields = $self->get_fields) {
- return wantarray ? ("<div>",@fields,"</div>","</form>")
- : "<div>".(join '',@fields)."</div>\n</form>";
- } else {
- return "</form>";
- }
- }
-}
-END_OF_FUNC
-
-'endform' => <<'END_OF_FUNC',
-sub endform {
- my($self,@p) = self_or_default(@_);
- if ( $NOSTICKY ) {
- return wantarray ? ("</form>") : "\n</form>";
- } else {
- if (my @fields = $self->get_fields) {
- return wantarray ? ("<div>",@fields,"</div>","</form>")
- : "<div>".(join '',@fields)."</div>\n</form>";
- } else {
- return "</form>";
- }
- }
-}
-END_OF_FUNC
-
-#### Method: end_multipart_form
-# end a multipart form
-'end_multipart_form' => <<'END_OF_FUNC',
-sub end_multipart_form {
- &end_form;
-}
-END_OF_FUNC
-
-
-'_textfield' => <<'END_OF_FUNC',
-sub _textfield {
- my($self,$tag,@p) = self_or_default(@_);
- my($name,$default,$size,$maxlength,$override,$tabindex,@other) =
- rearrange([NAME,[DEFAULT,VALUE,VALUES],SIZE,MAXLENGTH,[OVERRIDE,FORCE],TABINDEX],@p);
-
- my $current = $override ? $default :
- (defined($self->param($name)) ? $self->param($name) : $default);
-
- $current = defined($current) ? $self->_maybe_escapeHTML($current,1) : '';
- $name = defined($name) ? $self->_maybe_escapeHTML($name) : '';
- my($s) = defined($size) ? qq/ size="$size"/ : '';
- my($m) = defined($maxlength) ? qq/ maxlength="$maxlength"/ : '';
- my($other) = @other ? " @other" : '';
- # this entered at cristy's request to fix problems with file upload fields
- # and WebTV -- not sure it won't break stuff
- my($value) = $current ne '' ? qq(value="$current") : '';
- $tabindex = $self->element_tab($tabindex);
- return $XHTML ? qq(<input type="$tag" name="$name" $tabindex$value$s$m$other />)
- : qq(<input type="$tag" name="$name" $value$s$m$other>);
-}
-END_OF_FUNC
-
-#### Method: textfield
-# Parameters:
-# $name -> Name of the text field
-# $default -> Optional default value of the field if not
-# already defined.
-# $size -> Optional width of field in characaters.
-# $maxlength -> Optional maximum number of characters.
-# Returns:
-# A string containing a <input type="text"> field
-#
-'textfield' => <<'END_OF_FUNC',
-sub textfield {
- my($self,@p) = self_or_default(@_);
- $self->_textfield('text',@p);
-}
-END_OF_FUNC
-
-
-#### Method: filefield
-# Parameters:
-# $name -> Name of the file upload field
-# $size -> Optional width of field in characaters.
-# $maxlength -> Optional maximum number of characters.
-# Returns:
-# A string containing a <input type="file"> field
-#
-'filefield' => <<'END_OF_FUNC',
-sub filefield {
- my($self,@p) = self_or_default(@_);
- $self->_textfield('file',@p);
-}
-END_OF_FUNC
-
-
-#### Method: password
-# Create a "secret password" entry field
-# Parameters:
-# $name -> Name of the field
-# $default -> Optional default value of the field if not
-# already defined.
-# $size -> Optional width of field in characters.
-# $maxlength -> Optional maximum characters that can be entered.
-# Returns:
-# A string containing a <input type="password"> field
-#
-'password_field' => <<'END_OF_FUNC',
-sub password_field {
- my ($self,@p) = self_or_default(@_);
- $self->_textfield('password',@p);
-}
-END_OF_FUNC
-
-#### Method: textarea
-# Parameters:
-# $name -> Name of the text field
-# $default -> Optional default value of the field if not
-# already defined.
-# $rows -> Optional number of rows in text area
-# $columns -> Optional number of columns in text area
-# Returns:
-# A string containing a <textarea></textarea> tag
-#
-'textarea' => <<'END_OF_FUNC',
-sub textarea {
- my($self,@p) = self_or_default(@_);
- my($name,$default,$rows,$cols,$override,$tabindex,@other) =
- rearrange([NAME,[DEFAULT,VALUE],ROWS,[COLS,COLUMNS],[OVERRIDE,FORCE],TABINDEX],@p);
-
- my($current)= $override ? $default :
- (defined($self->param($name)) ? $self->param($name) : $default);
-
- $name = defined($name) ? $self->_maybe_escapeHTML($name) : '';
- $current = defined($current) ? $self->_maybe_escapeHTML($current) : '';
- my($r) = $rows ? qq/ rows="$rows"/ : '';
- my($c) = $cols ? qq/ cols="$cols"/ : '';
- my($other) = @other ? " @other" : '';
- $tabindex = $self->element_tab($tabindex);
- return qq{<textarea name="$name" $tabindex$r$c$other>$current</textarea>};
-}
-END_OF_FUNC
-
-
-#### Method: button
-# Create a javascript button.
-# Parameters:
-# $name -> (optional) Name for the button. (-name)
-# $value -> (optional) Value of the button when selected (and visible name) (-value)
-# $onclick -> (optional) Text of the JavaScript to run when the button is
-# clicked.
-# Returns:
-# A string containing a <input type="button"> tag
-####
-'button' => <<'END_OF_FUNC',
-sub button {
- my($self,@p) = self_or_default(@_);
-
- my($label,$value,$script,$tabindex,@other) = rearrange([NAME,[VALUE,LABEL],
- [ONCLICK,SCRIPT],TABINDEX],@p);
-
- $label=$self->_maybe_escapeHTML($label);
- $value=$self->_maybe_escapeHTML($value,1);
- $script=$self->_maybe_escapeHTML($script);
-
- $script ||= '';
-
- my($name) = '';
- $name = qq/ name="$label"/ if $label;
- $value = $value || $label;
- my($val) = '';
- $val = qq/ value="$value"/ if $value;
- $script = qq/ onclick="$script"/ if $script;
- my($other) = @other ? " @other" : '';
- $tabindex = $self->element_tab($tabindex);
- return $XHTML ? qq(<input type="button" $tabindex$name$val$script$other />)
- : qq(<input type="button"$name$val$script$other>);
-}
-END_OF_FUNC
-
-
-#### Method: submit
-# Create a "submit query" button.
-# Parameters:
-# $name -> (optional) Name for the button.
-# $value -> (optional) Value of the button when selected (also doubles as label).
-# $label -> (optional) Label printed on the button(also doubles as the value).
-# Returns:
-# A string containing a <input type="submit"> tag
-####
-'submit' => <<'END_OF_FUNC',
-sub submit {
- my($self,@p) = self_or_default(@_);
-
- my($label,$value,$tabindex,@other) = rearrange([NAME,[VALUE,LABEL],TABINDEX],@p);
-
- $label=$self->_maybe_escapeHTML($label);
- $value=$self->_maybe_escapeHTML($value,1);
-
- my $name = $NOSTICKY ? '' : 'name=".submit" ';
- $name = qq/name="$label" / if defined($label);
- $value = defined($value) ? $value : $label;
- my $val = '';
- $val = qq/value="$value" / if defined($value);
- $tabindex = $self->element_tab($tabindex);
- my($other) = @other ? "@other " : '';
- return $XHTML ? qq(<input type="submit" $tabindex$name$val$other/>)
- : qq(<input type="submit" $name$val$other>);
-}
-END_OF_FUNC
-
-
-#### Method: reset
-# Create a "reset" button.
-# Parameters:
-# $name -> (optional) Name for the button.
-# Returns:
-# A string containing a <input type="reset"> tag
-####
-'reset' => <<'END_OF_FUNC',
-sub reset {
- my($self,@p) = self_or_default(@_);
- my($label,$value,$tabindex,@other) = rearrange(['NAME',['VALUE','LABEL'],TABINDEX],@p);
- $label=$self->_maybe_escapeHTML($label);
- $value=$self->_maybe_escapeHTML($value,1);
- my ($name) = ' name=".reset"';
- $name = qq/ name="$label"/ if defined($label);
- $value = defined($value) ? $value : $label;
- my($val) = '';
- $val = qq/ value="$value"/ if defined($value);
- my($other) = @other ? " @other" : '';
- $tabindex = $self->element_tab($tabindex);
- return $XHTML ? qq(<input type="reset" $tabindex$name$val$other />)
- : qq(<input type="reset"$name$val$other>);
-}
-END_OF_FUNC
-
-
-#### Method: defaults
-# Create a "defaults" button.
-# Parameters:
-# $name -> (optional) Name for the button.
-# Returns:
-# A string containing a <input type="submit" name=".defaults"> tag
-#
-# Note: this button has a special meaning to the initialization script,
-# and tells it to ERASE the current query string so that your defaults
-# are used again!
-####
-'defaults' => <<'END_OF_FUNC',
-sub defaults {
- my($self,@p) = self_or_default(@_);
-
- my($label,$tabindex,@other) = rearrange([[NAME,VALUE],TABINDEX],@p);
-
- $label=$self->_maybe_escapeHTML($label,1);
- $label = $label || "Defaults";
- my($value) = qq/ value="$label"/;
- my($other) = @other ? " @other" : '';
- $tabindex = $self->element_tab($tabindex);
- return $XHTML ? qq(<input type="submit" name=".defaults" $tabindex$value$other />)
- : qq/<input type="submit" NAME=".defaults"$value$other>/;
-}
-END_OF_FUNC
-
-
-#### Method: comment
-# Create an HTML <!-- comment -->
-# Parameters: a string
-'comment' => <<'END_OF_FUNC',
-sub comment {
- my($self,@p) = self_or_CGI(@_);
- return "<!-- @p -->";
-}
-END_OF_FUNC
-
-#### Method: checkbox
-# Create a checkbox that is not logically linked to any others.
-# The field value is "on" when the button is checked.
-# Parameters:
-# $name -> Name of the checkbox
-# $checked -> (optional) turned on by default if true
-# $value -> (optional) value of the checkbox, 'on' by default
-# $label -> (optional) a user-readable label printed next to the box.
-# Otherwise the checkbox name is used.
-# Returns:
-# A string containing a <input type="checkbox"> field
-####
-'checkbox' => <<'END_OF_FUNC',
-sub checkbox {
- my($self,@p) = self_or_default(@_);
-
- my($name,$checked,$value,$label,$labelattributes,$override,$tabindex,@other) =
- rearrange([NAME,[CHECKED,SELECTED,ON],VALUE,LABEL,LABELATTRIBUTES,
- [OVERRIDE,FORCE],TABINDEX],@p);
-
- $value = defined $value ? $value : 'on';
-
- if (!$override && ($self->{'.fieldnames'}->{$name} ||
- defined $self->param($name))) {
- $checked = grep($_ eq $value,$self->param($name)) ? $self->_checked(1) : '';
- } else {
- $checked = $self->_checked($checked);
- }
- my($the_label) = defined $label ? $label : $name;
- $name = $self->_maybe_escapeHTML($name);
- $value = $self->_maybe_escapeHTML($value,1);
- $the_label = $self->_maybe_escapeHTML($the_label);
- my($other) = @other ? "@other " : '';
- $tabindex = $self->element_tab($tabindex);
- $self->register_parameter($name);
- return $XHTML ? CGI::label($labelattributes,
- qq{<input type="checkbox" name="$name" value="$value" $tabindex$checked$other/>$the_label})
- : qq{<input type="checkbox" name="$name" value="$value"$checked$other>$the_label};
-}
-END_OF_FUNC
-
-
-
-# Escape HTML
-'escapeHTML' => <<'END_OF_FUNC',
-sub escapeHTML {
- # hack to work around earlier hacks
- push @_,$_[0] if @_==1 && $_[0] eq 'CGI';
- my ($self,$toencode,$newlinestoo) = CGI::self_or_default(@_);
- return undef unless defined($toencode);
- $toencode =~ s{&}{&amp;}gso;
- $toencode =~ s{<}{&lt;}gso;
- $toencode =~ s{>}{&gt;}gso;
- if ($DTD_PUBLIC_IDENTIFIER =~ /[^X]HTML 3\.2/i) {
- # $quot; was accidentally omitted from the HTML 3.2 DTD -- see
- # <http://validator.w3.org/docs/errors.html#bad-entity> /
- # <http://lists.w3.org/Archives/Public/www-html/1997Mar/0003.html>.
- $toencode =~ s{"}{&#34;}gso;
- }
- else {
- $toencode =~ s{"}{&quot;}gso;
- }
-
- # Handle bug in some browsers with Latin charsets
- if ($self->{'.charset'}
- && (uc($self->{'.charset'}) eq 'ISO-8859-1'
- || uc($self->{'.charset'}) eq 'WINDOWS-1252')) {
- $toencode =~ s{'}{&#39;}gso;
- $toencode =~ s{\x8b}{&#8249;}gso;
- $toencode =~ s{\x9b}{&#8250;}gso;
- if (defined $newlinestoo && $newlinestoo) {
- $toencode =~ s{\012}{&#10;}gso;
- $toencode =~ s{\015}{&#13;}gso;
- }
- }
- return $toencode;
-}
-END_OF_FUNC
-
-# unescape HTML -- used internally
-'unescapeHTML' => <<'END_OF_FUNC',
-sub unescapeHTML {
- # hack to work around earlier hacks
- push @_,$_[0] if @_==1 && $_[0] eq 'CGI';
- my ($self,$string) = CGI::self_or_default(@_);
- return undef unless defined($string);
- my $latin = defined $self->{'.charset'} ? $self->{'.charset'} =~ /^(ISO-8859-1|WINDOWS-1252)$/i
- : 1;
- # thanks to Randal Schwartz for the correct solution to this one
- $string=~ s[&([^\s&]*?);]{
- local $_ = $1;
- /^amp$/i ? "&" :
- /^quot$/i ? '"' :
- /^gt$/i ? ">" :
- /^lt$/i ? "<" :
- /^#(\d+)$/ && $latin ? chr($1) :
- /^#x([0-9a-f]+)$/i && $latin ? chr(hex($1)) :
- "&$_;"
- }gex;
- return $string;
-}
-END_OF_FUNC
-
-# Internal procedure - don't use
-'_tableize' => <<'END_OF_FUNC',
-sub _tableize {
- my($rows,$columns,$rowheaders,$colheaders,@elements) = @_;
- my @rowheaders = $rowheaders ? @$rowheaders : ();
- my @colheaders = $colheaders ? @$colheaders : ();
- my($result);
-
- if (defined($columns)) {
- $rows = int(0.99 + @elements/$columns) unless defined($rows);
- }
- if (defined($rows)) {
- $columns = int(0.99 + @elements/$rows) unless defined($columns);
- }
-
- # rearrange into a pretty table
- $result = "<table>";
- my($row,$column);
- unshift(@colheaders,'') if @colheaders && @rowheaders;
- $result .= "<tr>" if @colheaders;
- for (@colheaders) {
- $result .= "<th>$_</th>";
- }
- for ($row=0;$row<$rows;$row++) {
- $result .= "<tr>";
- $result .= "<th>$rowheaders[$row]</th>" if @rowheaders;
- for ($column=0;$column<$columns;$column++) {
- $result .= "<td>" . $elements[$column*$rows + $row] . "</td>"
- if defined($elements[$column*$rows + $row]);
- }
- $result .= "</tr>";
- }
- $result .= "</table>";
- return $result;
-}
-END_OF_FUNC
-
-
-#### Method: radio_group
-# Create a list of logically-linked radio buttons.
-# Parameters:
-# $name -> Common name for all the buttons.
-# $values -> A pointer to a regular array containing the
-# values for each button in the group.
-# $default -> (optional) Value of the button to turn on by default. Pass '-'
-# to turn _nothing_ on.
-# $linebreak -> (optional) Set to true to place linebreaks
-# between the buttons.
-# $labels -> (optional)
-# A pointer to a hash of labels to print next to each checkbox
-# in the form $label{'value'}="Long explanatory label".
-# Otherwise the provided values are used as the labels.
-# Returns:
-# An ARRAY containing a series of <input type="radio"> fields
-####
-'radio_group' => <<'END_OF_FUNC',
-sub radio_group {
- my($self,@p) = self_or_default(@_);
- $self->_box_group('radio',@p);
-}
-END_OF_FUNC
-
-#### Method: checkbox_group
-# Create a list of logically-linked checkboxes.
-# Parameters:
-# $name -> Common name for all the check boxes
-# $values -> A pointer to a regular array containing the
-# values for each checkbox in the group.
-# $defaults -> (optional)
-# 1. If a pointer to a regular array of checkbox values,
-# then this will be used to decide which
-# checkboxes to turn on by default.
-# 2. If a scalar, will be assumed to hold the
-# value of a single checkbox in the group to turn on.
-# $linebreak -> (optional) Set to true to place linebreaks
-# between the buttons.
-# $labels -> (optional)
-# A pointer to a hash of labels to print next to each checkbox
-# in the form $label{'value'}="Long explanatory label".
-# Otherwise the provided values are used as the labels.
-# Returns:
-# An ARRAY containing a series of <input type="checkbox"> fields
-####
-
-'checkbox_group' => <<'END_OF_FUNC',
-sub checkbox_group {
- my($self,@p) = self_or_default(@_);
- $self->_box_group('checkbox',@p);
-}
-END_OF_FUNC
-
-'_box_group' => <<'END_OF_FUNC',
-sub _box_group {
- my $self = shift;
- my $box_type = shift;
-
- my($name,$values,$defaults,$linebreak,$labels,$labelattributes,
- $attributes,$rows,$columns,$rowheaders,$colheaders,
- $override,$nolabels,$tabindex,$disabled,@other) =
- rearrange([NAME,[VALUES,VALUE],[DEFAULT,DEFAULTS],LINEBREAK,LABELS,LABELATTRIBUTES,
- ATTRIBUTES,ROWS,[COLUMNS,COLS],[ROWHEADERS,ROWHEADER],[COLHEADERS,COLHEADER],
- [OVERRIDE,FORCE],NOLABELS,TABINDEX,DISABLED
- ],@_);
-
-
- my($result,$checked,@elements,@values);
-
- @values = $self->_set_values_and_labels($values,\$labels,$name);
- my %checked = $self->previous_or_default($name,$defaults,$override);
-
- # If no check array is specified, check the first by default
- $checked{$values[0]}++ if $box_type eq 'radio' && !%checked;
-
- $name=$self->_maybe_escapeHTML($name);
-
- my %tabs = ();
- if ($TABINDEX && $tabindex) {
- if (!ref $tabindex) {
- $self->element_tab($tabindex);
- } elsif (ref $tabindex eq 'ARRAY') {
- %tabs = map {$_=>$self->element_tab} @$tabindex;
- } elsif (ref $tabindex eq 'HASH') {
- %tabs = %$tabindex;
- }
- }
- %tabs = map {$_=>$self->element_tab} @values unless %tabs;
- my $other = @other ? "@other " : '';
- my $radio_checked;
-
- # for disabling groups of radio/checkbox buttons
- my %disabled;
- for (@{$disabled}) {
- $disabled{$_}=1;
- }
-
- for (@values) {
- my $disable="";
- if ($disabled{$_}) {
- $disable="disabled='1'";
- }
-
- my $checkit = $self->_checked($box_type eq 'radio' ? ($checked{$_} && !$radio_checked++)
- : $checked{$_});
- my($break);
- if ($linebreak) {
- $break = $XHTML ? "<br />" : "<br>";
- }
- else {
- $break = '';
- }
- my($label)='';
- unless (defined($nolabels) && $nolabels) {
- $label = $_;
- $label = $labels->{$_} if defined($labels) && defined($labels->{$_});
- $label = $self->_maybe_escapeHTML($label,1);
- $label = "<span style=\"color:gray\">$label</span>" if $disabled{$_};
- }
- my $attribs = $self->_set_attributes($_, $attributes);
- my $tab = $tabs{$_};
- $_=$self->_maybe_escapeHTML($_);
-
- if ($XHTML) {
- push @elements,
- CGI::label($labelattributes,
- qq(<input type="$box_type" name="$name" value="$_" $checkit$other$tab$attribs$disable/>$label)).${break};
- } else {
- push(@elements,qq/<input type="$box_type" name="$name" value="$_" $checkit$other$tab$attribs$disable>${label}${break}/);
- }
- }
- $self->register_parameter($name);
- return wantarray ? @elements : "@elements"
- unless defined($columns) || defined($rows);
- return _tableize($rows,$columns,$rowheaders,$colheaders,@elements);
-}
-END_OF_FUNC
-
-
-#### Method: popup_menu
-# Create a popup menu.
-# Parameters:
-# $name -> Name for all the menu
-# $values -> A pointer to a regular array containing the
-# text of each menu item.
-# $default -> (optional) Default item to display
-# $labels -> (optional)
-# A pointer to a hash of labels to print next to each checkbox
-# in the form $label{'value'}="Long explanatory label".
-# Otherwise the provided values are used as the labels.
-# Returns:
-# A string containing the definition of a popup menu.
-####
-'popup_menu' => <<'END_OF_FUNC',
-sub popup_menu {
- my($self,@p) = self_or_default(@_);
-
- my($name,$values,$default,$labels,$attributes,$override,$tabindex,@other) =
- rearrange([NAME,[VALUES,VALUE],[DEFAULT,DEFAULTS],LABELS,
- ATTRIBUTES,[OVERRIDE,FORCE],TABINDEX],@p);
- my($result,%selected);
-
- if (!$override && defined($self->param($name))) {
- $selected{$self->param($name)}++;
- } elsif (defined $default) {
- %selected = map {$_=>1} ref($default) eq 'ARRAY'
- ? @$default
- : $default;
- }
- $name=$self->_maybe_escapeHTML($name);
- my($other) = @other ? " @other" : '';
-
- my(@values);
- @values = $self->_set_values_and_labels($values,\$labels,$name);
- $tabindex = $self->element_tab($tabindex);
- $name = q{} if ! defined $name;
- $result = qq/<select name="$name" $tabindex$other>\n/;
- for (@values) {
- if (/<optgroup/) {
- for my $v (split(/\n/)) {
- my $selectit = $XHTML ? 'selected="selected"' : 'selected';
- for my $selected (keys %selected) {
- $v =~ s/(value="\Q$selected\E")/$selectit $1/;
- }
- $result .= "$v\n";
- }
- }
- else {
- my $attribs = $self->_set_attributes($_, $attributes);
- my($selectit) = $self->_selected($selected{$_});
- my($label) = $_;
- $label = $labels->{$_} if defined($labels) && defined($labels->{$_});
- my($value) = $self->_maybe_escapeHTML($_);
- $label = $self->_maybe_escapeHTML($label,1);
- $result .= "<option${attribs} ${selectit}value=\"$value\">$label</option>\n";
- }
- }
-
- $result .= "</select>";
- return $result;
-}
-END_OF_FUNC
-
-
-#### Method: optgroup
-# Create a optgroup.
-# Parameters:
-# $name -> Label for the group
-# $values -> A pointer to a regular array containing the
-# values for each option line in the group.
-# $labels -> (optional)
-# A pointer to a hash of labels to print next to each item
-# in the form $label{'value'}="Long explanatory label".
-# Otherwise the provided values are used as the labels.
-# $labeled -> (optional)
-# A true value indicates the value should be used as the label attribute
-# in the option elements.
-# The label attribute specifies the option label presented to the user.
-# This defaults to the content of the <option> element, but the label
-# attribute allows authors to more easily use optgroup without sacrificing
-# compatibility with browsers that do not support option groups.
-# $novals -> (optional)
-# A true value indicates to suppress the val attribute in the option elements
-# Returns:
-# A string containing the definition of an option group.
-####
-'optgroup' => <<'END_OF_FUNC',
-sub optgroup {
- my($self,@p) = self_or_default(@_);
- my($name,$values,$attributes,$labeled,$noval,$labels,@other)
- = rearrange([NAME,[VALUES,VALUE],ATTRIBUTES,LABELED,NOVALS,LABELS],@p);
-
- my($result,@values);
- @values = $self->_set_values_and_labels($values,\$labels,$name,$labeled,$novals);
- my($other) = @other ? " @other" : '';
-
- $name = $self->_maybe_escapeHTML($name) || q{};
- $result = qq/<optgroup label="$name"$other>\n/;
- for (@values) {
- if (/<optgroup/) {
- for (split(/\n/)) {
- my $selectit = $XHTML ? 'selected="selected"' : 'selected';
- s/(value="$selected")/$selectit $1/ if defined $selected;
- $result .= "$_\n";
- }
- }
- else {
- my $attribs = $self->_set_attributes($_, $attributes);
- my($label) = $_;
- $label = $labels->{$_} if defined($labels) && defined($labels->{$_});
- $label=$self->_maybe_escapeHTML($label);
- my($value)=$self->_maybe_escapeHTML($_,1);
- $result .= $labeled ? $novals ? "<option$attribs label=\"$value\">$label</option>\n"
- : "<option$attribs label=\"$value\" value=\"$value\">$label</option>\n"
- : $novals ? "<option$attribs>$label</option>\n"
- : "<option$attribs value=\"$value\">$label</option>\n";
- }
- }
- $result .= "</optgroup>";
- return $result;
-}
-END_OF_FUNC
-
-
-#### Method: scrolling_list
-# Create a scrolling list.
-# Parameters:
-# $name -> name for the list
-# $values -> A pointer to a regular array containing the
-# values for each option line in the list.
-# $defaults -> (optional)
-# 1. If a pointer to a regular array of options,
-# then this will be used to decide which
-# lines to turn on by default.
-# 2. Otherwise holds the value of the single line to turn on.
-# $size -> (optional) Size of the list.
-# $multiple -> (optional) If set, allow multiple selections.
-# $labels -> (optional)
-# A pointer to a hash of labels to print next to each checkbox
-# in the form $label{'value'}="Long explanatory label".
-# Otherwise the provided values are used as the labels.
-# Returns:
-# A string containing the definition of a scrolling list.
-####
-'scrolling_list' => <<'END_OF_FUNC',
-sub scrolling_list {
- my($self,@p) = self_or_default(@_);
- my($name,$values,$defaults,$size,$multiple,$labels,$attributes,$override,$tabindex,@other)
- = rearrange([NAME,[VALUES,VALUE],[DEFAULTS,DEFAULT],
- SIZE,MULTIPLE,LABELS,ATTRIBUTES,[OVERRIDE,FORCE],TABINDEX],@p);
-
- my($result,@values);
- @values = $self->_set_values_and_labels($values,\$labels,$name);
-
- $size = $size || scalar(@values);
-
- my(%selected) = $self->previous_or_default($name,$defaults,$override);
-
- my($is_multiple) = $multiple ? qq/ multiple="multiple"/ : '';
- my($has_size) = $size ? qq/ size="$size"/: '';
- my($other) = @other ? " @other" : '';
-
- $name=$self->_maybe_escapeHTML($name);
- $tabindex = $self->element_tab($tabindex);
- $result = qq/<select name="$name" $tabindex$has_size$is_multiple$other>\n/;
- for (@values) {
- if (/<optgroup/) {
- for my $v (split(/\n/)) {
- my $selectit = $XHTML ? 'selected="selected"' : 'selected';
- for my $selected (keys %selected) {
- $v =~ s/(value="$selected")/$selectit $1/;
- }
- $result .= "$v\n";
- }
- }
- else {
- my $attribs = $self->_set_attributes($_, $attributes);
- my($selectit) = $self->_selected($selected{$_});
- my($label) = $_;
- $label = $labels->{$_} if defined($labels) && defined($labels->{$_});
- my($value) = $self->_maybe_escapeHTML($_);
- $label = $self->_maybe_escapeHTML($label,1);
- $result .= "<option${attribs} ${selectit}value=\"$value\">$label</option>\n";
- }
- }
-
- $result .= "</select>";
- $self->register_parameter($name);
- return $result;
-}
-END_OF_FUNC
-
-
-#### Method: hidden
-# Parameters:
-# $name -> Name of the hidden field
-# @default -> (optional) Initial values of field (may be an array)
-# or
-# $default->[initial values of field]
-# Returns:
-# A string containing a <input type="hidden" name="name" value="value">
-####
-'hidden' => <<'END_OF_FUNC',
-sub hidden {
- my($self,@p) = self_or_default(@_);
-
- # this is the one place where we departed from our standard
- # calling scheme, so we have to special-case (darn)
- my(@result,@value);
- my($name,$default,$override,@other) =
- rearrange([NAME,[DEFAULT,VALUE,VALUES],[OVERRIDE,FORCE]],@p);
-
- my $do_override = 0;
- if ( ref($p[0]) || substr($p[0],0,1) eq '-') {
- @value = ref($default) ? @{$default} : $default;
- $do_override = $override;
- } else {
- for ($default,$override,@other) {
- push(@value,$_) if defined($_);
- }
- undef @other;
- }
-
- # use previous values if override is not set
- my @prev = $self->param($name);
- @value = @prev if !$do_override && @prev;
-
- $name=$self->_maybe_escapeHTML($name);
- for (@value) {
- $_ = defined($_) ? $self->_maybe_escapeHTML($_,1) : '';
- push @result,$XHTML ? qq(<input type="hidden" name="$name" value="$_" @other />)
- : qq(<input type="hidden" name="$name" value="$_" @other>);
- }
- return wantarray ? @result : join('',@result);
-}
-END_OF_FUNC
-
-
-#### Method: image_button
-# Parameters:
-# $name -> Name of the button
-# $src -> URL of the image source
-# $align -> Alignment style (TOP, BOTTOM or MIDDLE)
-# Returns:
-# A string containing a <input type="image" name="name" src="url" align="alignment">
-####
-'image_button' => <<'END_OF_FUNC',
-sub image_button {
- my($self,@p) = self_or_default(@_);
-
- my($name,$src,$alignment,@other) =
- rearrange([NAME,SRC,ALIGN],@p);
-
- my($align) = $alignment ? " align=\L\"$alignment\"" : '';
- my($other) = @other ? " @other" : '';
- $name=$self->_maybe_escapeHTML($name);
- return $XHTML ? qq(<input type="image" name="$name" src="$src"$align$other />)
- : qq/<input type="image" name="$name" src="$src"$align$other>/;
-}
-END_OF_FUNC
-
-
-#### Method: self_url
-# Returns a URL containing the current script and all its
-# param/value pairs arranged as a query. You can use this
-# to create a link that, when selected, will reinvoke the
-# script with all its state information preserved.
-####
-'self_url' => <<'END_OF_FUNC',
-sub self_url {
- my($self,@p) = self_or_default(@_);
- return $self->url('-path_info'=>1,'-query'=>1,'-full'=>1,@p);
-}
-END_OF_FUNC
-
-
-# This is provided as a synonym to self_url() for people unfortunate
-# enough to have incorporated it into their programs already!
-'state' => <<'END_OF_FUNC',
-sub state {
- &self_url;
-}
-END_OF_FUNC
-
-
-#### Method: url
-# Like self_url, but doesn't return the query string part of
-# the URL.
-####
-'url' => <<'END_OF_FUNC',
-sub url {
- my($self,@p) = self_or_default(@_);
- my ($relative,$absolute,$full,$path_info,$query,$base,$rewrite) =
- rearrange(['RELATIVE','ABSOLUTE','FULL',['PATH','PATH_INFO'],['QUERY','QUERY_STRING'],'BASE','REWRITE'],@p);
- my $url = '';
- $full++ if $base || !($relative || $absolute);
- $rewrite++ unless defined $rewrite;
-
- my $path = $self->path_info;
- my $script_name = $self->script_name;
- my $request_uri = unescape($self->request_uri) || '';
- my $query_str = $self->query_string;
-
- my $rewrite_in_use = $request_uri && $request_uri !~ /^\Q$script_name/;
-
- my $uri = $rewrite && $request_uri ? $request_uri : $script_name;
- $uri =~ s/\?.*$//s; # remove query string
- $uri =~ s/\Q$ENV{PATH_INFO}\E$// if defined $ENV{PATH_INFO};
-# $uri =~ s/\Q$path\E$// if defined $path; # remove path
-
- if ($full) {
- my $protocol = $self->protocol();
- $url = "$protocol://";
- my $vh = http('x_forwarded_host') || http('host') || '';
- $vh =~ s/\:\d+$//; # some clients add the port number (incorrectly). Get rid of it.
-
- $url .= $vh || server_name();
-
- my $port = $self->virtual_port;
-
- # add the port to the url unless it's the protocol's default port
- $url .= ':' . $port unless (lc($protocol) eq 'http' && $port == 80)
- or (lc($protocol) eq 'https' && $port == 443);
-
- return $url if $base;
-
- $url .= $uri;
- } elsif ($relative) {
- ($url) = $uri =~ m!([^/]+)$!;
- } elsif ($absolute) {
- $url = $uri;
- }
-
- $url .= $path if $path_info and defined $path;
- $url .= "?$query_str" if $query and $query_str ne '';
- $url ||= '';
- $url =~ s/([^a-zA-Z0-9_.%;&?\/\\:+=~-])/sprintf("%%%02X",ord($1))/eg;
- return $url;
-}
-
-END_OF_FUNC
-
-#### Method: cookie
-# Set or read a cookie from the specified name.
-# Cookie can then be passed to header().
-# Usual rules apply to the stickiness of -value.
-# Parameters:
-# -name -> name for this cookie (optional)
-# -value -> value of this cookie (scalar, array or hash)
-# -path -> paths for which this cookie is valid (optional)
-# -domain -> internet domain in which this cookie is valid (optional)
-# -secure -> if true, cookie only passed through secure channel (optional)
-# -expires -> expiry date in format Wdy, DD-Mon-YYYY HH:MM:SS GMT (optional)
-####
-'cookie' => <<'END_OF_FUNC',
-sub cookie {
- my($self,@p) = self_or_default(@_);
- my($name,$value,$path,$domain,$secure,$expires,$httponly) =
- rearrange([NAME,[VALUE,VALUES],PATH,DOMAIN,SECURE,EXPIRES,HTTPONLY],@p);
-
- require CGI::Cookie;
-
- # if no value is supplied, then we retrieve the
- # value of the cookie, if any. For efficiency, we cache the parsed
- # cookies in our state variables.
- unless ( defined($value) ) {
- $self->{'.cookies'} = CGI::Cookie->fetch;
-
- # If no name is supplied, then retrieve the names of all our cookies.
- return () unless $self->{'.cookies'};
- return keys %{$self->{'.cookies'}} unless $name;
- return () unless $self->{'.cookies'}->{$name};
- return $self->{'.cookies'}->{$name}->value if defined($name) && $name ne '';
- }
-
- # If we get here, we're creating a new cookie
- return undef unless defined($name) && $name ne ''; # this is an error
-
- my @param;
- push(@param,'-name'=>$name);
- push(@param,'-value'=>$value);
- push(@param,'-domain'=>$domain) if $domain;
- push(@param,'-path'=>$path) if $path;
- push(@param,'-expires'=>$expires) if $expires;
- push(@param,'-secure'=>$secure) if $secure;
- push(@param,'-httponly'=>$httponly) if $httponly;
-
- return CGI::Cookie->new(@param);
-}
-END_OF_FUNC
-
-'parse_keywordlist' => <<'END_OF_FUNC',
-sub parse_keywordlist {
- my($self,$tosplit) = @_;
- $tosplit = unescape($tosplit); # unescape the keywords
- $tosplit=~tr/+/ /; # pluses to spaces
- my(@keywords) = split(/\s+/,$tosplit);
- return @keywords;
-}
-END_OF_FUNC
-
-'param_fetch' => <<'END_OF_FUNC',
-sub param_fetch {
- my($self,@p) = self_or_default(@_);
- my($name) = rearrange([NAME],@p);
- return [] unless defined $name;
-
- unless (exists($self->{param}{$name})) {
- $self->add_parameter($name);
- $self->{param}{$name} = [];
- }
-
- return $self->{param}{$name};
-}
-END_OF_FUNC
-
-###############################################
-# OTHER INFORMATION PROVIDED BY THE ENVIRONMENT
-###############################################
-
-#### Method: path_info
-# Return the extra virtual path information provided
-# after the URL (if any)
-####
-'path_info' => <<'END_OF_FUNC',
-sub path_info {
- my ($self,$info) = self_or_default(@_);
- if (defined($info)) {
- $info = "/$info" if $info ne '' && substr($info,0,1) ne '/';
- $self->{'.path_info'} = $info;
- } elsif (! defined($self->{'.path_info'}) ) {
- my (undef,$path_info) = $self->_name_and_path_from_env;
- $self->{'.path_info'} = $path_info || '';
- }
- return $self->{'.path_info'};
-}
-END_OF_FUNC
-
-# This function returns a potentially modified version of SCRIPT_NAME
-# and PATH_INFO. Some HTTP servers do sanitise the paths in those
-# variables. It is the case of at least Apache 2. If for instance the
-# user requests: /path/./to/script.cgi/x//y/z/../x?y, Apache will set:
-# REQUEST_URI=/path/./to/script.cgi/x//y/z/../x?y
-# SCRIPT_NAME=/path/to/env.cgi
-# PATH_INFO=/x/y/x
-#
-# This is all fine except that some bogus CGI scripts expect
-# PATH_INFO=/http://foo when the user requests
-# http://xxx/script.cgi/http://foo
-#
-# Old versions of this module used to accomodate with those scripts, so
-# this is why we do this here to keep those scripts backward compatible.
-# Basically, we accomodate with those scripts but within limits, that is
-# we only try to preserve the number of / that were provided by the user
-# if $REQUEST_URI and "$SCRIPT_NAME$PATH_INFO" only differ by the number
-# of consecutive /.
-#
-# So for instance, in: http://foo/x//y/script.cgi/a//b, we'll return a
-# script_name of /x//y/script.cgi and a path_info of /a//b, but in:
-# http://foo/./x//z/script.cgi/a/../b//c, we'll return the versions
-# possibly sanitised by the HTTP server, so in the case of Apache 2:
-# script_name == /foo/x/z/script.cgi and path_info == /b/c.
-#
-# Future versions of this module may no longer do that, so one should
-# avoid relying on the browser, proxy, server, and CGI.pm preserving the
-# number of consecutive slashes as no guarantee can be made there.
-'_name_and_path_from_env' => <<'END_OF_FUNC',
-sub _name_and_path_from_env {
- my $self = shift;
- my $script_name = $ENV{SCRIPT_NAME} || '';
- my $path_info = $ENV{PATH_INFO} || '';
- my $uri = $self->request_uri || '';
-
- $uri =~ s/\?.*//s;
- $uri = unescape($uri);
-
- if ($uri ne "$script_name$path_info") {
- my $script_name_pattern = quotemeta($script_name);
- my $path_info_pattern = quotemeta($path_info);
- $script_name_pattern =~ s{(?:\\/)+}{/+}g;
- $path_info_pattern =~ s{(?:\\/)+}{/+}g;
-
- if ($uri =~ /^($script_name_pattern)($path_info_pattern)$/s) {
- # REQUEST_URI and SCRIPT_NAME . PATH_INFO only differ by the
- # numer of consecutive slashes, so we can extract the info from
- # REQUEST_URI:
- ($script_name, $path_info) = ($1, $2);
- }
- }
- return ($script_name,$path_info);
-}
-END_OF_FUNC
-
-
-#### Method: request_method
-# Returns 'POST', 'GET', 'PUT' or 'HEAD'
-####
-'request_method' => <<'END_OF_FUNC',
-sub request_method {
- return (defined $ENV{'REQUEST_METHOD'}) ? $ENV{'REQUEST_METHOD'} : undef;
-}
-END_OF_FUNC
-
-#### Method: content_type
-# Returns the content_type string
-####
-'content_type' => <<'END_OF_FUNC',
-sub content_type {
- return (defined $ENV{'CONTENT_TYPE'}) ? $ENV{'CONTENT_TYPE'} : undef;
-}
-END_OF_FUNC
-
-#### Method: path_translated
-# Return the physical path information provided
-# by the URL (if any)
-####
-'path_translated' => <<'END_OF_FUNC',
-sub path_translated {
- return (defined $ENV{'PATH_TRANSLATED'}) ? $ENV{'PATH_TRANSLATED'} : undef;
-}
-END_OF_FUNC
-
-
-#### Method: request_uri
-# Return the literal request URI
-####
-'request_uri' => <<'END_OF_FUNC',
-sub request_uri {
- return (defined $ENV{'REQUEST_URI'}) ? $ENV{'REQUEST_URI'} : undef;
-}
-END_OF_FUNC
-
-
-#### Method: query_string
-# Synthesize a query string from our current
-# parameters
-####
-'query_string' => <<'END_OF_FUNC',
-sub query_string {
- my($self) = self_or_default(@_);
- my($param,$value,@pairs);
- for $param ($self->param) {
- my($eparam) = escape($param);
- for $value ($self->param($param)) {
- $value = escape($value);
- next unless defined $value;
- push(@pairs,"$eparam=$value");
- }
- }
- for (keys %{$self->{'.fieldnames'}}) {
- push(@pairs,".cgifields=".escape("$_"));
- }
- return join($USE_PARAM_SEMICOLONS ? ';' : '&',@pairs);
-}
-END_OF_FUNC
-
-
-#### Method: accept
-# Without parameters, returns an array of the
-# MIME types the browser accepts.
-# With a single parameter equal to a MIME
-# type, will return undef if the browser won't
-# accept it, 1 if the browser accepts it but
-# doesn't give a preference, or a floating point
-# value between 0.0 and 1.0 if the browser
-# declares a quantitative score for it.
-# This handles MIME type globs correctly.
-####
-'Accept' => <<'END_OF_FUNC',
-sub Accept {
- my($self,$search) = self_or_CGI(@_);
- my(%prefs,$type,$pref,$pat);
-
- my(@accept) = defined $self->http('accept')
- ? split(',',$self->http('accept'))
- : ();
-
- for (@accept) {
- ($pref) = /q=(\d\.\d+|\d+)/;
- ($type) = m#(\S+/[^;]+)#;
- next unless $type;
- $prefs{$type}=$pref || 1;
- }
-
- return keys %prefs unless $search;
-
- # if a search type is provided, we may need to
- # perform a pattern matching operation.
- # The MIME types use a glob mechanism, which
- # is easily translated into a perl pattern match
-
- # First return the preference for directly supported
- # types:
- return $prefs{$search} if $prefs{$search};
-
- # Didn't get it, so try pattern matching.
- for (keys %prefs) {
- next unless /\*/; # not a pattern match
- ($pat = $_) =~ s/([^\w*])/\\$1/g; # escape meta characters
- $pat =~ s/\*/.*/g; # turn it into a pattern
- return $prefs{$_} if $search=~/$pat/;
- }
-}
-END_OF_FUNC
-
-
-#### Method: user_agent
-# If called with no parameters, returns the user agent.
-# If called with one parameter, does a pattern match (case
-# insensitive) on the user agent.
-####
-'user_agent' => <<'END_OF_FUNC',
-sub user_agent {
- my($self,$match)=self_or_CGI(@_);
- my $user_agent = $self->http('user_agent');
- return $user_agent unless defined $match && $match && $user_agent;
- return $user_agent =~ /$match/i;
-}
-END_OF_FUNC
-
-
-#### Method: raw_cookie
-# Returns the magic cookies for the session.
-# The cookies are not parsed or altered in any way, i.e.
-# cookies are returned exactly as given in the HTTP
-# headers. If a cookie name is given, only that cookie's
-# value is returned, otherwise the entire raw cookie
-# is returned.
-####
-'raw_cookie' => <<'END_OF_FUNC',
-sub raw_cookie {
- my($self,$key) = self_or_CGI(@_);
-
- require CGI::Cookie;
-
- if (defined($key)) {
- $self->{'.raw_cookies'} = CGI::Cookie->raw_fetch
- unless $self->{'.raw_cookies'};
-
- return () unless $self->{'.raw_cookies'};
- return () unless $self->{'.raw_cookies'}->{$key};
- return $self->{'.raw_cookies'}->{$key};
- }
- return $self->http('cookie') || $ENV{'COOKIE'} || '';
-}
-END_OF_FUNC
-
-#### Method: virtual_host
-# Return the name of the virtual_host, which
-# is not always the same as the server
-######
-'virtual_host' => <<'END_OF_FUNC',
-sub virtual_host {
- my $vh = http('x_forwarded_host') || http('host') || server_name();
- $vh =~ s/:\d+$//; # get rid of port number
- return $vh;
-}
-END_OF_FUNC
-
-#### Method: remote_host
-# Return the name of the remote host, or its IP
-# address if unavailable. If this variable isn't
-# defined, it returns "localhost" for debugging
-# purposes.
-####
-'remote_host' => <<'END_OF_FUNC',
-sub remote_host {
- return $ENV{'REMOTE_HOST'} || $ENV{'REMOTE_ADDR'}
- || 'localhost';
-}
-END_OF_FUNC
-
-
-#### Method: remote_addr
-# Return the IP addr of the remote host.
-####
-'remote_addr' => <<'END_OF_FUNC',
-sub remote_addr {
- return $ENV{'REMOTE_ADDR'} || '127.0.0.1';
-}
-END_OF_FUNC
-
-
-#### Method: script_name
-# Return the partial URL to this script for
-# self-referencing scripts. Also see
-# self_url(), which returns a URL with all state information
-# preserved.
-####
-'script_name' => <<'END_OF_FUNC',
-sub script_name {
- my ($self,@p) = self_or_default(@_);
- if (@p) {
- $self->{'.script_name'} = shift @p;
- } elsif (!exists $self->{'.script_name'}) {
- my ($script_name,$path_info) = $self->_name_and_path_from_env();
- $self->{'.script_name'} = $script_name;
- }
- return $self->{'.script_name'};
-}
-END_OF_FUNC
-
-
-#### Method: referer
-# Return the HTTP_REFERER: useful for generating
-# a GO BACK button.
-####
-'referer' => <<'END_OF_FUNC',
-sub referer {
- my($self) = self_or_CGI(@_);
- return $self->http('referer');
-}
-END_OF_FUNC
-
-
-#### Method: server_name
-# Return the name of the server
-####
-'server_name' => <<'END_OF_FUNC',
-sub server_name {
- return $ENV{'SERVER_NAME'} || 'localhost';
-}
-END_OF_FUNC
-
-#### Method: server_software
-# Return the name of the server software
-####
-'server_software' => <<'END_OF_FUNC',
-sub server_software {
- return $ENV{'SERVER_SOFTWARE'} || 'cmdline';
-}
-END_OF_FUNC
-
-#### Method: virtual_port
-# Return the server port, taking virtual hosts into account
-####
-'virtual_port' => <<'END_OF_FUNC',
-sub virtual_port {
- my($self) = self_or_default(@_);
- my $vh = $self->http('x_forwarded_host') || $self->http('host');
- my $protocol = $self->protocol;
- if ($vh) {
- return ($vh =~ /:(\d+)$/)[0] || ($protocol eq 'https' ? 443 : 80);
- } else {
- return $self->server_port();
- }
-}
-END_OF_FUNC
-
-#### Method: server_port
-# Return the tcp/ip port the server is running on
-####
-'server_port' => <<'END_OF_FUNC',
-sub server_port {
- return $ENV{'SERVER_PORT'} || 80; # for debugging
-}
-END_OF_FUNC
-
-#### Method: server_protocol
-# Return the protocol (usually HTTP/1.0)
-####
-'server_protocol' => <<'END_OF_FUNC',
-sub server_protocol {
- return $ENV{'SERVER_PROTOCOL'} || 'HTTP/1.0'; # for debugging
-}
-END_OF_FUNC
-
-#### Method: http
-# Return the value of an HTTP variable, or
-# the list of variables if none provided
-####
-'http' => <<'END_OF_FUNC',
-sub http {
- my ($self,$parameter) = self_or_CGI(@_);
- if ( defined($parameter) ) {
- $parameter =~ tr/-a-z/_A-Z/;
- if ( $parameter =~ /^HTTP(?:_|$)/ ) {
- return $ENV{$parameter};
- }
- return $ENV{"HTTP_$parameter"};
- }
- return grep { /^HTTP(?:_|$)/ } keys %ENV;
-}
-END_OF_FUNC
-
-#### Method: https
-# Return the value of HTTPS, or
-# the value of an HTTPS variable, or
-# the list of variables
-####
-'https' => <<'END_OF_FUNC',
-sub https {
- my ($self,$parameter) = self_or_CGI(@_);
- if ( defined($parameter) ) {
- $parameter =~ tr/-a-z/_A-Z/;
- if ( $parameter =~ /^HTTPS(?:_|$)/ ) {
- return $ENV{$parameter};
- }
- return $ENV{"HTTPS_$parameter"};
- }
- return wantarray
- ? grep { /^HTTPS(?:_|$)/ } keys %ENV
- : $ENV{'HTTPS'};
-}
-END_OF_FUNC
-
-#### Method: protocol
-# Return the protocol (http or https currently)
-####
-'protocol' => <<'END_OF_FUNC',
-sub protocol {
- local($^W)=0;
- my $self = shift;
- return 'https' if uc($self->https()) eq 'ON';
- return 'https' if $self->server_port == 443;
- my $prot = $self->server_protocol;
- my($protocol,$version) = split('/',$prot);
- return "\L$protocol\E";
-}
-END_OF_FUNC
-
-#### Method: remote_ident
-# Return the identity of the remote user
-# (but only if his host is running identd)
-####
-'remote_ident' => <<'END_OF_FUNC',
-sub remote_ident {
- return (defined $ENV{'REMOTE_IDENT'}) ? $ENV{'REMOTE_IDENT'} : undef;
-}
-END_OF_FUNC
-
-
-#### Method: auth_type
-# Return the type of use verification/authorization in use, if any.
-####
-'auth_type' => <<'END_OF_FUNC',
-sub auth_type {
- return (defined $ENV{'AUTH_TYPE'}) ? $ENV{'AUTH_TYPE'} : undef;
-}
-END_OF_FUNC
-
-
-#### Method: remote_user
-# Return the authorization name used for user
-# verification.
-####
-'remote_user' => <<'END_OF_FUNC',
-sub remote_user {
- return (defined $ENV{'REMOTE_USER'}) ? $ENV{'REMOTE_USER'} : undef;
-}
-END_OF_FUNC
-
-
-#### Method: user_name
-# Try to return the remote user's name by hook or by
-# crook
-####
-'user_name' => <<'END_OF_FUNC',
-sub user_name {
- my ($self) = self_or_CGI(@_);
- return $self->http('from') || $ENV{'REMOTE_IDENT'} || $ENV{'REMOTE_USER'};
-}
-END_OF_FUNC
-
-#### Method: nosticky
-# Set or return the NOSTICKY global flag
-####
-'nosticky' => <<'END_OF_FUNC',
-sub nosticky {
- my ($self,$param) = self_or_CGI(@_);
- $CGI::NOSTICKY = $param if defined($param);
- return $CGI::NOSTICKY;
-}
-END_OF_FUNC
-
-#### Method: nph
-# Set or return the NPH global flag
-####
-'nph' => <<'END_OF_FUNC',
-sub nph {
- my ($self,$param) = self_or_CGI(@_);
- $CGI::NPH = $param if defined($param);
- return $CGI::NPH;
-}
-END_OF_FUNC
-
-#### Method: private_tempfiles
-# Set or return the private_tempfiles global flag
-####
-'private_tempfiles' => <<'END_OF_FUNC',
-sub private_tempfiles {
- my ($self,$param) = self_or_CGI(@_);
- $CGI::PRIVATE_TEMPFILES = $param if defined($param);
- return $CGI::PRIVATE_TEMPFILES;
-}
-END_OF_FUNC
-#### Method: close_upload_files
-# Set or return the close_upload_files global flag
-####
-'close_upload_files' => <<'END_OF_FUNC',
-sub close_upload_files {
- my ($self,$param) = self_or_CGI(@_);
- $CGI::CLOSE_UPLOAD_FILES = $param if defined($param);
- return $CGI::CLOSE_UPLOAD_FILES;
-}
-END_OF_FUNC
-
-
-#### Method: default_dtd
-# Set or return the default_dtd global
-####
-'default_dtd' => <<'END_OF_FUNC',
-sub default_dtd {
- my ($self,$param,$param2) = self_or_CGI(@_);
- if (defined $param2 && defined $param) {
- $CGI::DEFAULT_DTD = [ $param, $param2 ];
- } elsif (defined $param) {
- $CGI::DEFAULT_DTD = $param;
- }
- return $CGI::DEFAULT_DTD;
-}
-END_OF_FUNC
-
-# -------------- really private subroutines -----------------
-'_maybe_escapeHTML' => <<'END_OF_FUNC',
-sub _maybe_escapeHTML {
- # hack to work around earlier hacks
- push @_,$_[0] if @_==1 && $_[0] eq 'CGI';
- my ($self,$toencode,$newlinestoo) = CGI::self_or_default(@_);
- return undef unless defined($toencode);
- return $toencode if ref($self) && !$self->{'escape'};
- return $self->escapeHTML($toencode, $newlinestoo);
-}
-END_OF_FUNC
-
-'previous_or_default' => <<'END_OF_FUNC',
-sub previous_or_default {
- my($self,$name,$defaults,$override) = @_;
- my(%selected);
-
- if (!$override && ($self->{'.fieldnames'}->{$name} ||
- defined($self->param($name)) ) ) {
- $selected{$_}++ for $self->param($name);
- } elsif (defined($defaults) && ref($defaults) &&
- (ref($defaults) eq 'ARRAY')) {
- $selected{$_}++ for @{$defaults};
- } else {
- $selected{$defaults}++ if defined($defaults);
- }
-
- return %selected;
-}
-END_OF_FUNC
-
-'register_parameter' => <<'END_OF_FUNC',
-sub register_parameter {
- my($self,$param) = @_;
- $self->{'.parametersToAdd'}->{$param}++;
-}
-END_OF_FUNC
-
-'get_fields' => <<'END_OF_FUNC',
-sub get_fields {
- my($self) = @_;
- return $self->CGI::hidden('-name'=>'.cgifields',
- '-values'=>[keys %{$self->{'.parametersToAdd'}}],
- '-override'=>1);
-}
-END_OF_FUNC
-
-'read_from_cmdline' => <<'END_OF_FUNC',
-sub read_from_cmdline {
- my($input,@words);
- my($query_string);
- my($subpath);
- if ($DEBUG && @ARGV) {
- @words = @ARGV;
- } elsif ($DEBUG > 1) {
- require Text::ParseWords;
- print STDERR "(offline mode: enter name=value pairs on standard input; press ^D or ^Z when done)\n";
- chomp(@lines = <STDIN>); # remove newlines
- $input = join(" ",@lines);
- @words = &Text::ParseWords::old_shellwords($input);
- }
- for (@words) {
- s/\\=/%3D/g;
- s/\\&/%26/g;
- }
-
- if ("@words"=~/=/) {
- $query_string = join('&',@words);
- } else {
- $query_string = join('+',@words);
- }
- if ($query_string =~ /^(.*?)\?(.*)$/)
- {
- $query_string = $2;
- $subpath = $1;
- }
- return { 'query_string' => $query_string, 'subpath' => $subpath };
-}
-END_OF_FUNC
-
-#####
-# subroutine: read_multipart
-#
-# Read multipart data and store it into our parameters.
-# An interesting feature is that if any of the parts is a file, we
-# create a temporary file and open up a filehandle on it so that the
-# caller can read from it if necessary.
-#####
-'read_multipart' => <<'END_OF_FUNC',
-sub read_multipart {
- my($self,$boundary,$length) = @_;
- my($buffer) = $self->new_MultipartBuffer($boundary,$length);
- return unless $buffer;
- my(%header,$body);
- my $filenumber = 0;
- while (!$buffer->eof) {
- %header = $buffer->readHeader;
-
- unless (%header) {
- $self->cgi_error("400 Bad request (malformed multipart POST)");
- return;
- }
-
- $header{'Content-Disposition'} ||= ''; # quench uninit variable warning
-
- my($param)= $header{'Content-Disposition'}=~/[\s;]name="([^"]*)"/;
- $param .= $TAINTED;
-
- # See RFC 1867, 2183, 2045
- # NB: File content will be loaded into memory should
- # content-disposition parsing fail.
- my ($filename) = $header{'Content-Disposition'}
- =~/ filename=(("[^"]*")|([a-z\d!\#'\*\+,\.^_\`\{\}\|\~]*))/i;
-
- $filename ||= ''; # quench uninit variable warning
-
- $filename =~ s/^"([^"]*)"$/$1/;
- # Test for Opera's multiple upload feature
- my($multipart) = ( defined( $header{'Content-Type'} ) &&
- $header{'Content-Type'} =~ /multipart\/mixed/ ) ?
- 1 : 0;
-
- # add this parameter to our list
- $self->add_parameter($param);
-
- # If no filename specified, then just read the data and assign it
- # to our parameter list.
- if ( ( !defined($filename) || $filename eq '' ) && !$multipart ) {
- my($value) = $buffer->readBody;
- $value .= $TAINTED;
- push(@{$self->{param}{$param}},$value);
- next;
- }
-
- my ($tmpfile,$tmp,$filehandle);
- UPLOADS: {
- # If we get here, then we are dealing with a potentially large
- # uploaded form. Save the data to a temporary file, then open
- # the file for reading.
-
- # skip the file if uploads disabled
- if ($DISABLE_UPLOADS) {
- while (defined($data = $buffer->read)) { }
- last UPLOADS;
- }
-
- # set the filename to some recognizable value
- if ( ( !defined($filename) || $filename eq '' ) && $multipart ) {
- $filename = "multipart/mixed";
- }
-
- # choose a relatively unpredictable tmpfile sequence number
- my $seqno = unpack("%16C*",join('',localtime,grep {defined $_} values %ENV));
- for (my $cnt=10;$cnt>0;$cnt--) {
- next unless $tmpfile = CGITempFile->new($seqno);
- $tmp = $tmpfile->as_string;
- last if defined($filehandle = Fh->new($filename,$tmp,$PRIVATE_TEMPFILES));
- $seqno += int rand(100);
- }
- die "CGI.pm open of tmpfile $tmp/$filename failed: $!\n" unless defined $filehandle;
- $CGI::DefaultClass->binmode($filehandle) if $CGI::needs_binmode
- && defined fileno($filehandle);
-
- # if this is an multipart/mixed attachment, save the header
- # together with the body for later parsing with an external
- # MIME parser module
- if ( $multipart ) {
- for ( keys %header ) {
- print $filehandle "$_: $header{$_}${CRLF}";
- }
- print $filehandle "${CRLF}";
- }
-
- my ($data);
- local($\) = '';
- my $totalbytes = 0;
- while (defined($data = $buffer->read)) {
- if (defined $self->{'.upload_hook'})
- {
- $totalbytes += length($data);
- &{$self->{'.upload_hook'}}($filename ,$data, $totalbytes, $self->{'.upload_data'});
- }
- print $filehandle $data if ($self->{'use_tempfile'});
- }
-
- # back up to beginning of file
- seek($filehandle,0,0);
-
- ## Close the filehandle if requested this allows a multipart MIME
- ## upload to contain many files, and we won't die due to too many
- ## open file handles. The user can access the files using the hash
- ## below.
- close $filehandle if $CLOSE_UPLOAD_FILES;
- $CGI::DefaultClass->binmode($filehandle) if $CGI::needs_binmode;
-
- # Save some information about the uploaded file where we can get
- # at it later.
- # Use the typeglob as the key, as this is guaranteed to be
- # unique for each filehandle. Don't use the file descriptor as
- # this will be re-used for each filehandle if the
- # close_upload_files feature is used.
- $self->{'.tmpfiles'}->{$$filehandle}= {
- hndl => $filehandle,
- name => $tmpfile,
- info => {%header},
- };
- push(@{$self->{param}{$param}},$filehandle);
- }
- }
-}
-END_OF_FUNC
-
-#####
-# subroutine: read_multipart_related
-#
-# Read multipart/related data and store it into our parameters. The
-# first parameter sets the start of the data. The part identified by
-# this Content-ID will not be stored as a file upload, but will be
-# returned by this method. All other parts will be available as file
-# uploads accessible by their Content-ID
-#####
-'read_multipart_related' => <<'END_OF_FUNC',
-sub read_multipart_related {
- my($self,$start,$boundary,$length) = @_;
- my($buffer) = $self->new_MultipartBuffer($boundary,$length);
- return unless $buffer;
- my(%header,$body);
- my $filenumber = 0;
- my $returnvalue;
- while (!$buffer->eof) {
- %header = $buffer->readHeader;
-
- unless (%header) {
- $self->cgi_error("400 Bad request (malformed multipart POST)");
- return;
- }
-
- my($param) = $header{'Content-ID'}=~/\<([^\>]*)\>/;
- $param .= $TAINTED;
-
- # If this is the start part, then just read the data and assign it
- # to our return variable.
- if ( $param eq $start ) {
- $returnvalue = $buffer->readBody;
- $returnvalue .= $TAINTED;
- next;
- }
-
- # add this parameter to our list
- $self->add_parameter($param);
-
- my ($tmpfile,$tmp,$filehandle);
- UPLOADS: {
- # If we get here, then we are dealing with a potentially large
- # uploaded form. Save the data to a temporary file, then open
- # the file for reading.
-
- # skip the file if uploads disabled
- if ($DISABLE_UPLOADS) {
- while (defined($data = $buffer->read)) { }
- last UPLOADS;
- }
-
- # choose a relatively unpredictable tmpfile sequence number
- my $seqno = unpack("%16C*",join('',localtime,grep {defined $_} values %ENV));
- for (my $cnt=10;$cnt>0;$cnt--) {
- next unless $tmpfile = CGITempFile->new($seqno);
- $tmp = $tmpfile->as_string;
- last if defined($filehandle = Fh->new($param,$tmp,$PRIVATE_TEMPFILES));
- $seqno += int rand(100);
- }
- die "CGI open of tmpfile: $!\n" unless defined $filehandle;
- $CGI::DefaultClass->binmode($filehandle) if $CGI::needs_binmode
- && defined fileno($filehandle);
-
- my ($data);
- local($\) = '';
- my $totalbytes;
- while (defined($data = $buffer->read)) {
- if (defined $self->{'.upload_hook'})
- {
- $totalbytes += length($data);
- &{$self->{'.upload_hook'}}($param ,$data, $totalbytes, $self->{'.upload_data'});
- }
- print $filehandle $data if ($self->{'use_tempfile'});
- }
-
- # back up to beginning of file
- seek($filehandle,0,0);
-
- ## Close the filehandle if requested this allows a multipart MIME
- ## upload to contain many files, and we won't die due to too many
- ## open file handles. The user can access the files using the hash
- ## below.
- close $filehandle if $CLOSE_UPLOAD_FILES;
- $CGI::DefaultClass->binmode($filehandle) if $CGI::needs_binmode;
-
- # Save some information about the uploaded file where we can get
- # at it later.
- # Use the typeglob as the key, as this is guaranteed to be
- # unique for each filehandle. Don't use the file descriptor as
- # this will be re-used for each filehandle if the
- # close_upload_files feature is used.
- $self->{'.tmpfiles'}->{$$filehandle}= {
- hndl => $filehandle,
- name => $tmpfile,
- info => {%header},
- };
- push(@{$self->{param}{$param}},$filehandle);
- }
- }
- return $returnvalue;
-}
-END_OF_FUNC
-
-
-'upload' =><<'END_OF_FUNC',
-sub upload {
- my($self,$param_name) = self_or_default(@_);
- my @param = grep {ref($_) && defined(fileno($_))} $self->param($param_name);
- return unless @param;
- return wantarray ? @param : $param[0];
-}
-END_OF_FUNC
-
-'tmpFileName' => <<'END_OF_FUNC',
-sub tmpFileName {
- my($self,$filename) = self_or_default(@_);
- return $self->{'.tmpfiles'}->{$$filename}->{name} ?
- $self->{'.tmpfiles'}->{$$filename}->{name}->as_string
- : '';
-}
-END_OF_FUNC
-
-'uploadInfo' => <<'END_OF_FUNC',
-sub uploadInfo {
- my($self,$filename) = self_or_default(@_);
- return $self->{'.tmpfiles'}->{$$filename}->{info};
-}
-END_OF_FUNC
-
-# internal routine, don't use
-'_set_values_and_labels' => <<'END_OF_FUNC',
-sub _set_values_and_labels {
- my $self = shift;
- my ($v,$l,$n) = @_;
- $$l = $v if ref($v) eq 'HASH' && !ref($$l);
- return $self->param($n) if !defined($v);
- return $v if !ref($v);
- return ref($v) eq 'HASH' ? keys %$v : @$v;
-}
-END_OF_FUNC
-
-# internal routine, don't use
-'_set_attributes' => <<'END_OF_FUNC',
-sub _set_attributes {
- my $self = shift;
- my($element, $attributes) = @_;
- return '' unless defined($attributes->{$element});
- $attribs = ' ';
- for my $attrib (keys %{$attributes->{$element}}) {
- (my $clean_attrib = $attrib) =~ s/^-//;
- $attribs .= "@{[lc($clean_attrib)]}=\"$attributes->{$element}{$attrib}\" ";
- }
- $attribs =~ s/ $//;
- return $attribs;
-}
-END_OF_FUNC
-
-'_compile_all' => <<'END_OF_FUNC',
-sub _compile_all {
- for (@_) {
- next if defined(&$_);
- $AUTOLOAD = "CGI::$_";
- _compile();
- }
-}
-END_OF_FUNC
-
-);
-END_OF_AUTOLOAD
-;
-
-#########################################################
-# Globals and stubs for other packages that we use.
-#########################################################
-
-################### Fh -- lightweight filehandle ###############
-package Fh;
-
-use overload
- '""' => \&asString,
- 'cmp' => \&compare,
- 'fallback'=>1;
-
-$FH='fh00000';
-
-*Fh::AUTOLOAD = \&CGI::AUTOLOAD;
-
-sub DESTROY {
- my $self = shift;
- close $self;
-}
-
-$AUTOLOADED_ROUTINES = ''; # prevent -w error
-$AUTOLOADED_ROUTINES=<<'END_OF_AUTOLOAD';
-%SUBS = (
-'asString' => <<'END_OF_FUNC',
-sub asString {
- my $self = shift;
- # get rid of package name
- (my $i = $$self) =~ s/^\*(\w+::fh\d{5})+//;
- $i =~ s/%(..)/ chr(hex($1)) /eg;
- return $i.$CGI::TAINTED;
-# BEGIN DEAD CODE
-# This was an extremely clever patch that allowed "use strict refs".
-# Unfortunately it relied on another bug that caused leaky file descriptors.
-# The underlying bug has been fixed, so this no longer works. However
-# "strict refs" still works for some reason.
-# my $self = shift;
-# return ${*{$self}{SCALAR}};
-# END DEAD CODE
-}
-END_OF_FUNC
-
-'compare' => <<'END_OF_FUNC',
-sub compare {
- my $self = shift;
- my $value = shift;
- return "$self" cmp $value;
-}
-END_OF_FUNC
-
-'new' => <<'END_OF_FUNC',
-sub new {
- my($pack,$name,$file,$delete) = @_;
- _setup_symbols(@SAVED_SYMBOLS) if @SAVED_SYMBOLS;
- require Fcntl unless defined &Fcntl::O_RDWR;
- (my $safename = $name) =~ s/([':%])/ sprintf '%%%02X', ord $1 /eg;
- my $fv = ++$FH . $safename;
- my $ref = \*{"Fh::$fv"};
-
- # Note this same regex is also used elsewhere in the same file for CGITempFile::new
- $file =~ m!^([a-zA-Z0-9_ \'\":/.\$\\\+-]+)$! || return;
- my $safe = $1;
- sysopen($ref,$safe,Fcntl::O_RDWR()|Fcntl::O_CREAT()|Fcntl::O_EXCL(),0600) || return;
- unlink($safe) if $delete;
- CORE::delete $Fh::{$fv};
- return bless $ref,$pack;
-}
-END_OF_FUNC
-
-'handle' => <<'END_OF_FUNC',
-sub handle {
- my $self = shift;
- eval "require IO::Handle" unless IO::Handle->can('new_from_fd');
- return IO::Handle->new_from_fd(fileno $self,"<");
-}
-END_OF_FUNC
-
-);
-END_OF_AUTOLOAD
-
-######################## MultipartBuffer ####################
-package MultipartBuffer;
-
-use constant DEBUG => 0;
-
-# how many bytes to read at a time. We use
-# a 4K buffer by default.
-$INITIAL_FILLUNIT = 1024 * 4;
-$TIMEOUT = 240*60; # 4 hour timeout for big files
-$SPIN_LOOP_MAX = 2000; # bug fix for some Netscape servers
-$CRLF=$CGI::CRLF;
-
-#reuse the autoload function
-*MultipartBuffer::AUTOLOAD = \&CGI::AUTOLOAD;
-
-# avoid autoloader warnings
-sub DESTROY {}
-
-###############################################################################
-################# THESE FUNCTIONS ARE AUTOLOADED ON DEMAND ####################
-###############################################################################
-$AUTOLOADED_ROUTINES = ''; # prevent -w error
-$AUTOLOADED_ROUTINES=<<'END_OF_AUTOLOAD';
-%SUBS = (
-
-'new' => <<'END_OF_FUNC',
-sub new {
- my($package,$interface,$boundary,$length) = @_;
- $FILLUNIT = $INITIAL_FILLUNIT;
- $CGI::DefaultClass->binmode($IN); # if $CGI::needs_binmode; # just do it always
-
- # If the user types garbage into the file upload field,
- # then Netscape passes NOTHING to the server (not good).
- # We may hang on this read in that case. So we implement
- # a read timeout. If nothing is ready to read
- # by then, we return.
-
- # Netscape seems to be a little bit unreliable
- # about providing boundary strings.
- my $boundary_read = 0;
- if ($boundary) {
-
- # Under the MIME spec, the boundary consists of the
- # characters "--" PLUS the Boundary string
-
- # BUG: IE 3.01 on the Macintosh uses just the boundary -- not
- # the two extra hyphens. We do a special case here on the user-agent!!!!
- $boundary = "--$boundary" unless CGI::user_agent('MSIE\s+3\.0[12];\s*Mac|DreamPassport');
-
- } else { # otherwise we find it ourselves
- my($old);
- ($old,$/) = ($/,$CRLF); # read a CRLF-delimited line
- $boundary = <STDIN>; # BUG: This won't work correctly under mod_perl
- $length -= length($boundary);
- chomp($boundary); # remove the CRLF
- $/ = $old; # restore old line separator
- $boundary_read++;
- }
-
- my $self = {LENGTH=>$length,
- CHUNKED=>!$length,
- BOUNDARY=>$boundary,
- INTERFACE=>$interface,
- BUFFER=>'',
- };
-
- $FILLUNIT = length($boundary)
- if length($boundary) > $FILLUNIT;
-
- my $retval = bless $self,ref $package || $package;
-
- # Read the preamble and the topmost (boundary) line plus the CRLF.
- unless ($boundary_read) {
- while ($self->read(0)) { }
- }
- die "Malformed multipart POST: data truncated\n" if $self->eof;
-
- return $retval;
-}
-END_OF_FUNC
-
-'readHeader' => <<'END_OF_FUNC',
-sub readHeader {
- my($self) = @_;
- my($end);
- my($ok) = 0;
- my($bad) = 0;
-
- local($CRLF) = "\015\012" if $CGI::OS eq 'VMS' || $CGI::EBCDIC;
-
- do {
- $self->fillBuffer($FILLUNIT);
- $ok++ if ($end = index($self->{BUFFER},"${CRLF}${CRLF}")) >= 0;
- $ok++ if $self->{BUFFER} eq '';
- $bad++ if !$ok && $self->{LENGTH} <= 0;
- # this was a bad idea
- # $FILLUNIT *= 2 if length($self->{BUFFER}) >= $FILLUNIT;
- } until $ok || $bad;
- return () if $bad;
-
- #EBCDIC NOTE: translate header into EBCDIC, but watch out for continuation lines!
-
- my($header) = substr($self->{BUFFER},0,$end+2);
- substr($self->{BUFFER},0,$end+4) = '';
- my %return;
-
- if ($CGI::EBCDIC) {
- warn "untranslated header=$header\n" if DEBUG;
- $header = CGI::Util::ascii2ebcdic($header);
- warn "translated header=$header\n" if DEBUG;
- }
-
- # See RFC 2045 Appendix A and RFC 822 sections 3.4.8
- # (Folding Long Header Fields), 3.4.3 (Comments)
- # and 3.4.5 (Quoted-Strings).
-
- my $token = '[-\w!\#$%&\'*+.^_\`|{}~]';
- $header=~s/$CRLF\s+/ /og; # merge continuation lines
-
- while ($header=~/($token+):\s+([^$CRLF]*)/mgox) {
- my ($field_name,$field_value) = ($1,$2);
- $field_name =~ s/\b(\w)/uc($1)/eg; #canonicalize
- $return{$field_name}=$field_value;
- }
- return %return;
-}
-END_OF_FUNC
-
-# This reads and returns the body as a single scalar value.
-'readBody' => <<'END_OF_FUNC',
-sub readBody {
- my($self) = @_;
- my($data);
- my($returnval)='';
-
- #EBCDIC NOTE: want to translate returnval into EBCDIC HERE
-
- while (defined($data = $self->read)) {
- $returnval .= $data;
- }
-
- if ($CGI::EBCDIC) {
- warn "untranslated body=$returnval\n" if DEBUG;
- $returnval = CGI::Util::ascii2ebcdic($returnval);
- warn "translated body=$returnval\n" if DEBUG;
- }
- return $returnval;
-}
-END_OF_FUNC
-
-# This will read $bytes or until the boundary is hit, whichever happens
-# first. After the boundary is hit, we return undef. The next read will
-# skip over the boundary and begin reading again;
-'read' => <<'END_OF_FUNC',
-sub read {
- my($self,$bytes) = @_;
-
- # default number of bytes to read
- $bytes = $bytes || $FILLUNIT;
-
- # Fill up our internal buffer in such a way that the boundary
- # is never split between reads.
- $self->fillBuffer($bytes);
-
- my $boundary_start = $CGI::EBCDIC ? CGI::Util::ebcdic2ascii($self->{BOUNDARY}) : $self->{BOUNDARY};
- my $boundary_end = $CGI::EBCDIC ? CGI::Util::ebcdic2ascii($self->{BOUNDARY}.'--') : $self->{BOUNDARY}.'--';
-
- # Find the boundary in the buffer (it may not be there).
- my $start = index($self->{BUFFER},$boundary_start);
-
- warn "boundary=$self->{BOUNDARY} length=$self->{LENGTH} start=$start\n" if DEBUG;
-
- # protect against malformed multipart POST operations
- die "Malformed multipart POST\n" unless $self->{CHUNKED} || ($start >= 0 || $self->{LENGTH} > 0);
-
- #EBCDIC NOTE: want to translate boundary search into ASCII here.
-
- # If the boundary begins the data, then skip past it
- # and return undef.
- if ($start == 0) {
-
- # clear us out completely if we've hit the last boundary.
- if (index($self->{BUFFER},$boundary_end)==0) {
- $self->{BUFFER}='';
- $self->{LENGTH}=0;
- return undef;
- }
-
- # just remove the boundary.
- substr($self->{BUFFER},0,length($boundary_start))='';
- $self->{BUFFER} =~ s/^\012\015?//;
- return undef;
- }
-
- my $bytesToReturn;
- if ($start > 0) { # read up to the boundary
- $bytesToReturn = $start-2 > $bytes ? $bytes : $start;
- } else { # read the requested number of bytes
- # leave enough bytes in the buffer to allow us to read
- # the boundary. Thanks to Kevin Hendrick for finding
- # this one.
- $bytesToReturn = $bytes - (length($boundary_start)+1);
- }
-
- my $returnval=substr($self->{BUFFER},0,$bytesToReturn);
- substr($self->{BUFFER},0,$bytesToReturn)='';
-
- # If we hit the boundary, remove the CRLF from the end.
- return ($bytesToReturn==$start)
- ? substr($returnval,0,-2) : $returnval;
-}
-END_OF_FUNC
-
-
-# This fills up our internal buffer in such a way that the
-# boundary is never split between reads
-'fillBuffer' => <<'END_OF_FUNC',
-sub fillBuffer {
- my($self,$bytes) = @_;
- return unless $self->{CHUNKED} || $self->{LENGTH};
-
- my($boundaryLength) = length($self->{BOUNDARY});
- my($bufferLength) = length($self->{BUFFER});
- my($bytesToRead) = $bytes - $bufferLength + $boundaryLength + 2;
- $bytesToRead = $self->{LENGTH} if !$self->{CHUNKED} && $self->{LENGTH} < $bytesToRead;
-
- # Try to read some data. We may hang here if the browser is screwed up.
- my $bytesRead = $self->{INTERFACE}->read_from_client(\$self->{BUFFER},
- $bytesToRead,
- $bufferLength);
- warn "bytesToRead=$bytesToRead, bufferLength=$bufferLength, buffer=$self->{BUFFER}\n" if DEBUG;
- $self->{BUFFER} = '' unless defined $self->{BUFFER};
-
- # An apparent bug in the Apache server causes the read()
- # to return zero bytes repeatedly without blocking if the
- # remote user aborts during a file transfer. I don't know how
- # they manage this, but the workaround is to abort if we get
- # more than SPIN_LOOP_MAX consecutive zero reads.
- if ($bytesRead <= 0) {
- die "CGI.pm: Server closed socket during multipart read (client aborted?).\n"
- if ($self->{ZERO_LOOP_COUNTER}++ >= $SPIN_LOOP_MAX);
- } else {
- $self->{ZERO_LOOP_COUNTER}=0;
- }
-
- $self->{LENGTH} -= $bytesRead if !$self->{CHUNKED} && $bytesRead;
-}
-END_OF_FUNC
-
-
-# Return true when we've finished reading
-'eof' => <<'END_OF_FUNC'
-sub eof {
- my($self) = @_;
- return 1 if (length($self->{BUFFER}) == 0)
- && ($self->{LENGTH} <= 0);
- undef;
-}
-END_OF_FUNC
-
-);
-END_OF_AUTOLOAD
-
-####################################################################################
-################################## TEMPORARY FILES #################################
-####################################################################################
-package CGITempFile;
-
-sub find_tempdir {
- $SL = $CGI::SL;
- $MAC = $CGI::OS eq 'MACINTOSH';
- my ($vol) = $MAC ? MacPerl::Volumes() =~ /:(.*)/ : "";
- unless (defined $TMPDIRECTORY) {
- @TEMP=("${SL}usr${SL}tmp","${SL}var${SL}tmp",
- "C:${SL}temp","${SL}tmp","${SL}temp",
- "${vol}${SL}Temporary Items",
- "${SL}WWW_ROOT", "${SL}SYS\$SCRATCH",
- "C:${SL}system${SL}temp");
-
- if( $CGI::OS eq 'WINDOWS' ){
- # PeterH: These evars may not exist if this is invoked within a service and untainting
- # is in effect - with 'use warnings' the undefined array entries causes Perl to die
- unshift(@TEMP,$ENV{TEMP}) if defined $ENV{TEMP};
- unshift(@TEMP,$ENV{TMP}) if defined $ENV{TMP};
- unshift(@TEMP,$ENV{WINDIR} . $SL . 'TEMP') if defined $ENV{WINDIR};
- }
-
- unshift(@TEMP,$ENV{'TMPDIR'}) if defined $ENV{'TMPDIR'};
-
- # this feature was supposed to provide per-user tmpfiles, but
- # it is problematic.
- # unshift(@TEMP,(getpwuid($<))[7].'/tmp') if $CGI::OS eq 'UNIX';
- # Rob: getpwuid() is unfortunately UNIX specific. On brain dead OS'es this
- # : can generate a 'getpwuid() not implemented' exception, even though
- # : it's never called. Found under DOS/Win with the DJGPP perl port.
- # : Refer to getpwuid() only at run-time if we're fortunate and have UNIX.
- # unshift(@TEMP,(eval {(getpwuid($>))[7]}).'/tmp') if $CGI::OS eq 'UNIX' and $> != 0;
-
- for (@TEMP) {
- do {$TMPDIRECTORY = $_; last} if -d $_ && -w _;
- }
- }
- $TMPDIRECTORY = $MAC ? "" : "." unless $TMPDIRECTORY;
-}
-
-find_tempdir();
-
-$MAXTRIES = 5000;
-
-# cute feature, but overload implementation broke it
-# %OVERLOAD = ('""'=>'as_string');
-*CGITempFile::AUTOLOAD = \&CGI::AUTOLOAD;
-
-sub DESTROY {
- my($self) = @_;
- $$self =~ m!^([a-zA-Z0-9_ \'\":/.\$\\~-]+)$! || return;
- my $safe = $1; # untaint operation
- unlink $safe; # get rid of the file
-}
-
-###############################################################################
-################# THESE FUNCTIONS ARE AUTOLOADED ON DEMAND ####################
-###############################################################################
-$AUTOLOADED_ROUTINES = ''; # prevent -w error
-$AUTOLOADED_ROUTINES=<<'END_OF_AUTOLOAD';
-%SUBS = (
-
-'new' => <<'END_OF_FUNC',
-sub new {
- my($package,$sequence) = @_;
- my $filename;
- unless (-w $TMPDIRECTORY) {
- $TMPDIRECTORY = undef;
- find_tempdir();
- }
- for (my $i = 0; $i < $MAXTRIES; $i++) {
- last if ! -f ($filename = sprintf("\%s${SL}CGItemp%d", $TMPDIRECTORY, $sequence++));
- }
- # check that it is a more-or-less valid filename
- # Note this same regex is also used elsewhere in the same file for Fh::new
- return unless $filename =~ m!^([a-zA-Z0-9_ \'\":/.\$\\\+-]+)$!;
- # this used to untaint, now it doesn't
- # $filename = $1;
- return bless \$filename;
-}
-END_OF_FUNC
-
-'as_string' => <<'END_OF_FUNC'
-sub as_string {
- my($self) = @_;
- return $$self;
-}
-END_OF_FUNC
-
-);
-END_OF_AUTOLOAD
-
-package CGI;
-
-# We get a whole bunch of warnings about "possibly uninitialized variables"
-# when running with the -w switch. Touch them all once to get rid of the
-# warnings. This is ugly and I hate it.
-if ($^W) {
- $CGI::CGI = '';
- $CGI::CGI=<<EOF;
- $CGI::VERSION;
- $MultipartBuffer::SPIN_LOOP_MAX;
- $MultipartBuffer::CRLF;
- $MultipartBuffer::TIMEOUT;
- $MultipartBuffer::INITIAL_FILLUNIT;
-EOF
- ;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-CGI - Handle Common Gateway Interface requests and responses
-
-=head1 SYNOPSIS
-
- use CGI;
-
- my $q = CGI->new;
-
- # Process an HTTP request
- @values = $q->param('form_field');
-
- $fh = $q->upload('file_field');
-
- $riddle = $query->cookie('riddle_name');
- %answers = $query->cookie('answers');
-
- # Prepare various HTTP responses
- print $q->header();
- print $q->header('application/json');
-
- $cookie1 = $q->cookie(-name=>'riddle_name', -value=>"The Sphynx's Question");
- $cookie2 = $q->cookie(-name=>'answers', -value=>\%answers);
- print $q->header(
- -type => 'image/gif',
- -expires => '+3d',
- -cookie => [$cookie1,$cookie2]
- );
-
- print $q->redirect('http://somewhere.else/in/movie/land');
-
-=head1 DESCRIPTION
-
-CGI.pm is a stable, complete and mature solution for processing and preparing
-HTTP requests and responses. Major features including processing form
-submissions, file uploads, reading and writing cookies, query string generation
-and manipulation, and processing and preparing HTTP headers. Some HTML
-generation utilities are included as well.
-
-CGI.pm performs very well in a vanilla CGI.pm environment and also comes
-with built-in support for mod_perl and mod_perl2 as well as FastCGI.
-
-It has the benefit of having developed and refined over 10 years with input
-from dozens of contributors and being deployed on thousands of websites.
-CGI.pm has been included in the Perl distribution since Perl 5.4, and has
-become a de-facto standard.
-
-=head2 PROGRAMMING STYLE
-
-There are two styles of programming with CGI.pm, an object-oriented
-style and a function-oriented style. In the object-oriented style you
-create one or more CGI objects and then use object methods to create
-the various elements of the page. Each CGI object starts out with the
-list of named parameters that were passed to your CGI script by the
-server. You can modify the objects, save them to a file or database
-and recreate them. Because each object corresponds to the "state" of
-the CGI script, and because each object's parameter list is
-independent of the others, this allows you to save the state of the
-script and restore it later.
-
-For example, using the object oriented style, here is how you create
-a simple "Hello World" HTML page:
-
- #!/usr/local/bin/perl -w
- use CGI; # load CGI routines
- $q = CGI->new; # create new CGI object
- print $q->header, # create the HTTP header
- $q->start_html('hello world'), # start the HTML
- $q->h1('hello world'), # level 1 header
- $q->end_html; # end the HTML
-
-In the function-oriented style, there is one default CGI object that
-you rarely deal with directly. Instead you just call functions to
-retrieve CGI parameters, create HTML tags, manage cookies, and so
-on. This provides you with a cleaner programming interface, but
-limits you to using one CGI object at a time. The following example
-prints the same page, but uses the function-oriented interface.
-The main differences are that we now need to import a set of functions
-into our name space (usually the "standard" functions), and we don't
-need to create the CGI object.
-
- #!/usr/local/bin/perl
- use CGI qw/:standard/; # load standard CGI routines
- print header, # create the HTTP header
- start_html('hello world'), # start the HTML
- h1('hello world'), # level 1 header
- end_html; # end the HTML
-
-The examples in this document mainly use the object-oriented style.
-See HOW TO IMPORT FUNCTIONS for important information on
-function-oriented programming in CGI.pm
-
-=head2 CALLING CGI.PM ROUTINES
-
-Most CGI.pm routines accept several arguments, sometimes as many as 20
-optional ones! To simplify this interface, all routines use a named
-argument calling style that looks like this:
-
- print $q->header(-type=>'image/gif',-expires=>'+3d');
-
-Each argument name is preceded by a dash. Neither case nor order
-matters in the argument list. -type, -Type, and -TYPE are all
-acceptable. In fact, only the first argument needs to begin with a
-dash. If a dash is present in the first argument, CGI.pm assumes
-dashes for the subsequent ones.
-
-Several routines are commonly called with just one argument. In the
-case of these routines you can provide the single argument without an
-argument name. header() happens to be one of these routines. In this
-case, the single argument is the document type.
-
- print $q->header('text/html');
-
-Other such routines are documented below.
-
-Sometimes named arguments expect a scalar, sometimes a reference to an
-array, and sometimes a reference to a hash. Often, you can pass any
-type of argument and the routine will do whatever is most appropriate.
-For example, the param() routine is used to set a CGI parameter to a
-single or a multi-valued value. The two cases are shown below:
-
- $q->param(-name=>'veggie',-value=>'tomato');
- $q->param(-name=>'veggie',-value=>['tomato','tomahto','potato','potahto']);
-
-A large number of routines in CGI.pm actually aren't specifically
-defined in the module, but are generated automatically as needed.
-These are the "HTML shortcuts," routines that generate HTML tags for
-use in dynamically-generated pages. HTML tags have both attributes
-(the attribute="value" pairs within the tag itself) and contents (the
-part between the opening and closing pairs.) To distinguish between
-attributes and contents, CGI.pm uses the convention of passing HTML
-attributes as a hash reference as the first argument, and the
-contents, if any, as any subsequent arguments. It works out like
-this:
-
- Code Generated HTML
- ---- --------------
- h1() <h1>
- h1('some','contents'); <h1>some contents</h1>
- h1({-align=>left}); <h1 align="LEFT">
- h1({-align=>left},'contents'); <h1 align="LEFT">contents</h1>
-
-HTML tags are described in more detail later.
-
-Many newcomers to CGI.pm are puzzled by the difference between the
-calling conventions for the HTML shortcuts, which require curly braces
-around the HTML tag attributes, and the calling conventions for other
-routines, which manage to generate attributes without the curly
-brackets. Don't be confused. As a convenience the curly braces are
-optional in all but the HTML shortcuts. If you like, you can use
-curly braces when calling any routine that takes named arguments. For
-example:
-
- print $q->header( {-type=>'image/gif',-expires=>'+3d'} );
-
-If you use the B<-w> switch, you will be warned that some CGI.pm argument
-names conflict with built-in Perl functions. The most frequent of
-these is the -values argument, used to create multi-valued menus,
-radio button clusters and the like. To get around this warning, you
-have several choices:
-
-=over 4
-
-=item 1.
-
-Use another name for the argument, if one is available.
-For example, -value is an alias for -values.
-
-=item 2.
-
-Change the capitalization, e.g. -Values
-
-=item 3.
-
-Put quotes around the argument name, e.g. '-values'
-
-=back
-
-Many routines will do something useful with a named argument that it
-doesn't recognize. For example, you can produce non-standard HTTP
-header fields by providing them as named arguments:
-
- print $q->header(-type => 'text/html',
- -cost => 'Three smackers',
- -annoyance_level => 'high',
- -complaints_to => 'bit bucket');
-
-This will produce the following nonstandard HTTP header:
-
- HTTP/1.0 200 OK
- Cost: Three smackers
- Annoyance-level: high
- Complaints-to: bit bucket
- Content-type: text/html
-
-Notice the way that underscores are translated automatically into
-hyphens. HTML-generating routines perform a different type of
-translation.
-
-This feature allows you to keep up with the rapidly changing HTTP and
-HTML "standards".
-
-=head2 CREATING A NEW QUERY OBJECT (OBJECT-ORIENTED STYLE):
-
- $query = CGI->new;
-
-This will parse the input (from POST, GET and DELETE methods) and store
-it into a perl5 object called $query.
-
-Any filehandles from file uploads will have their position reset to
-the beginning of the file.
-
-=head2 CREATING A NEW QUERY OBJECT FROM AN INPUT FILE
-
- $query = CGI->new(INPUTFILE);
-
-If you provide a file handle to the new() method, it will read
-parameters from the file (or STDIN, or whatever). The file can be in
-any of the forms describing below under debugging (i.e. a series of
-newline delimited TAG=VALUE pairs will work). Conveniently, this type
-of file is created by the save() method (see below). Multiple records
-can be saved and restored.
-
-Perl purists will be pleased to know that this syntax accepts
-references to file handles, or even references to filehandle globs,
-which is the "official" way to pass a filehandle:
-
- $query = CGI->new(\*STDIN);
-
-You can also initialize the CGI object with a FileHandle or IO::File
-object.
-
-If you are using the function-oriented interface and want to
-initialize CGI state from a file handle, the way to do this is with
-B<restore_parameters()>. This will (re)initialize the
-default CGI object from the indicated file handle.
-
- open (IN,"test.in") || die;
- restore_parameters(IN);
- close IN;
-
-You can also initialize the query object from a hash
-reference:
-
- $query = CGI->new( {'dinosaur'=>'barney',
- 'song'=>'I love you',
- 'friends'=>[qw/Jessica George Nancy/]}
- );
-
-or from a properly formatted, URL-escaped query string:
-
- $query = CGI->new('dinosaur=barney&color=purple');
-
-or from a previously existing CGI object (currently this clones the
-parameter list, but none of the other object-specific fields, such as
-autoescaping):
-
- $old_query = CGI->new;
- $new_query = CGI->new($old_query);
-
-To create an empty query, initialize it from an empty string or hash:
-
- $empty_query = CGI->new("");
-
- -or-
-
- $empty_query = CGI->new({});
-
-=head2 FETCHING A LIST OF KEYWORDS FROM THE QUERY:
-
- @keywords = $query->keywords
-
-If the script was invoked as the result of an <ISINDEX> search, the
-parsed keywords can be obtained as an array using the keywords() method.
-
-=head2 FETCHING THE NAMES OF ALL THE PARAMETERS PASSED TO YOUR SCRIPT:
-
- @names = $query->param
-
-If the script was invoked with a parameter list
-(e.g. "name1=value1&name2=value2&name3=value3"), the param() method
-will return the parameter names as a list. If the script was invoked
-as an <ISINDEX> script and contains a string without ampersands
-(e.g. "value1+value2+value3") , there will be a single parameter named
-"keywords" containing the "+"-delimited keywords.
-
-NOTE: As of version 1.5, the array of parameter names returned will
-be in the same order as they were submitted by the browser.
-Usually this order is the same as the order in which the
-parameters are defined in the form (however, this isn't part
-of the spec, and so isn't guaranteed).
-
-=head2 FETCHING THE VALUE OR VALUES OF A SINGLE NAMED PARAMETER:
-
- @values = $query->param('foo');
-
- -or-
-
- $value = $query->param('foo');
-
-Pass the param() method a single argument to fetch the value of the
-named parameter. If the parameter is multivalued (e.g. from multiple
-selections in a scrolling list), you can ask to receive an array. Otherwise
-the method will return a single value.
-
-If a value is not given in the query string, as in the queries
-"name1=&name2=", it will be returned as an empty string.
-
-
-If the parameter does not exist at all, then param() will return undef
-in a scalar context, and the empty list in a list context.
-
-
-=head2 SETTING THE VALUE(S) OF A NAMED PARAMETER:
-
- $query->param('foo','an','array','of','values');
-
-This sets the value for the named parameter 'foo' to an array of
-values. This is one way to change the value of a field AFTER
-the script has been invoked once before. (Another way is with
-the -override parameter accepted by all methods that generate
-form elements.)
-
-param() also recognizes a named parameter style of calling described
-in more detail later:
-
- $query->param(-name=>'foo',-values=>['an','array','of','values']);
-
- -or-
-
- $query->param(-name=>'foo',-value=>'the value');
-
-=head2 APPENDING ADDITIONAL VALUES TO A NAMED PARAMETER:
-
- $query->append(-name=>'foo',-values=>['yet','more','values']);
-
-This adds a value or list of values to the named parameter. The
-values are appended to the end of the parameter if it already exists.
-Otherwise the parameter is created. Note that this method only
-recognizes the named argument calling syntax.
-
-=head2 IMPORTING ALL PARAMETERS INTO A NAMESPACE:
-
- $query->import_names('R');
-
-This creates a series of variables in the 'R' namespace. For example,
-$R::foo, @R:foo. For keyword lists, a variable @R::keywords will appear.
-If no namespace is given, this method will assume 'Q'.
-WARNING: don't import anything into 'main'; this is a major security
-risk!!!!
-
-NOTE 1: Variable names are transformed as necessary into legal Perl
-variable names. All non-legal characters are transformed into
-underscores. If you need to keep the original names, you should use
-the param() method instead to access CGI variables by name.
-
-NOTE 2: In older versions, this method was called B<import()>. As of version 2.20,
-this name has been removed completely to avoid conflict with the built-in
-Perl module B<import> operator.
-
-=head2 DELETING A PARAMETER COMPLETELY:
-
- $query->delete('foo','bar','baz');
-
-This completely clears a list of parameters. It sometimes useful for
-resetting parameters that you don't want passed down between script
-invocations.
-
-If you are using the function call interface, use "Delete()" instead
-to avoid conflicts with Perl's built-in delete operator.
-
-=head2 DELETING ALL PARAMETERS:
-
- $query->delete_all();
-
-This clears the CGI object completely. It might be useful to ensure
-that all the defaults are taken when you create a fill-out form.
-
-Use Delete_all() instead if you are using the function call interface.
-
-=head2 HANDLING NON-URLENCODED ARGUMENTS
-
-
-If POSTed data is not of type application/x-www-form-urlencoded or
-multipart/form-data, then the POSTed data will not be processed, but
-instead be returned as-is in a parameter named POSTDATA. To retrieve
-it, use code like this:
-
- my $data = $query->param('POSTDATA');
-
-Likewise if PUTed data can be retrieved with code like this:
-
- my $data = $query->param('PUTDATA');
-
-(If you don't know what the preceding means, don't worry about it. It
-only affects people trying to use CGI for XML processing and other
-specialized tasks.)
-
-
-=head2 DIRECT ACCESS TO THE PARAMETER LIST:
-
- $q->param_fetch('address')->[1] = '1313 Mockingbird Lane';
- unshift @{$q->param_fetch(-name=>'address')},'George Munster';
-
-If you need access to the parameter list in a way that isn't covered
-by the methods given in the previous sections, you can obtain a direct
-reference to it by
-calling the B<param_fetch()> method with the name of the parameter. This
-will return an array reference to the named parameter, which you then
-can manipulate in any way you like.
-
-You can also use a named argument style using the B<-name> argument.
-
-=head2 FETCHING THE PARAMETER LIST AS A HASH:
-
- $params = $q->Vars;
- print $params->{'address'};
- @foo = split("\0",$params->{'foo'});
- %params = $q->Vars;
-
- use CGI ':cgi-lib';
- $params = Vars;
-
-Many people want to fetch the entire parameter list as a hash in which
-the keys are the names of the CGI parameters, and the values are the
-parameters' values. The Vars() method does this. Called in a scalar
-context, it returns the parameter list as a tied hash reference.
-Changing a key changes the value of the parameter in the underlying
-CGI parameter list. Called in a list context, it returns the
-parameter list as an ordinary hash. This allows you to read the
-contents of the parameter list, but not to change it.
-
-When using this, the thing you must watch out for are multivalued CGI
-parameters. Because a hash cannot distinguish between scalar and
-list context, multivalued parameters will be returned as a packed
-string, separated by the "\0" (null) character. You must split this
-packed string in order to get at the individual values. This is the
-convention introduced long ago by Steve Brenner in his cgi-lib.pl
-module for Perl version 4.
-
-If you wish to use Vars() as a function, import the I<:cgi-lib> set of
-function calls (also see the section on CGI-LIB compatibility).
-
-=head2 SAVING THE STATE OF THE SCRIPT TO A FILE:
-
- $query->save(\*FILEHANDLE)
-
-This will write the current state of the form to the provided
-filehandle. You can read it back in by providing a filehandle
-to the new() method. Note that the filehandle can be a file, a pipe,
-or whatever!
-
-The format of the saved file is:
-
- NAME1=VALUE1
- NAME1=VALUE1'
- NAME2=VALUE2
- NAME3=VALUE3
- =
-
-Both name and value are URL escaped. Multi-valued CGI parameters are
-represented as repeated names. A session record is delimited by a
-single = symbol. You can write out multiple records and read them
-back in with several calls to B<new>. You can do this across several
-sessions by opening the file in append mode, allowing you to create
-primitive guest books, or to keep a history of users' queries. Here's
-a short example of creating multiple session records:
-
- use CGI;
-
- open (OUT,'>>','test.out') || die;
- $records = 5;
- for (0..$records) {
- my $q = CGI->new;
- $q->param(-name=>'counter',-value=>$_);
- $q->save(\*OUT);
- }
- close OUT;
-
- # reopen for reading
- open (IN,'<','test.out') || die;
- while (!eof(IN)) {
- my $q = CGI->new(\*IN);
- print $q->param('counter'),"\n";
- }
-
-The file format used for save/restore is identical to that used by the
-Whitehead Genome Center's data exchange format "Boulderio", and can be
-manipulated and even databased using Boulderio utilities. See
-
- http://stein.cshl.org/boulder/
-
-for further details.
-
-If you wish to use this method from the function-oriented (non-OO)
-interface, the exported name for this method is B<save_parameters()>.
-
-=head2 RETRIEVING CGI ERRORS
-
-Errors can occur while processing user input, particularly when
-processing uploaded files. When these errors occur, CGI will stop
-processing and return an empty parameter list. You can test for
-the existence and nature of errors using the I<cgi_error()> function.
-The error messages are formatted as HTTP status codes. You can either
-incorporate the error text into an HTML page, or use it as the value
-of the HTTP status:
-
- my $error = $q->cgi_error;
- if ($error) {
- print $q->header(-status=>$error),
- $q->start_html('Problems'),
- $q->h2('Request not processed'),
- $q->strong($error);
- exit 0;
- }
-
-When using the function-oriented interface (see the next section),
-errors may only occur the first time you call I<param()>. Be ready
-for this!
-
-=head2 USING THE FUNCTION-ORIENTED INTERFACE
-
-To use the function-oriented interface, you must specify which CGI.pm
-routines or sets of routines to import into your script's namespace.
-There is a small overhead associated with this importation, but it
-isn't much.
-
- use CGI <list of methods>;
-
-The listed methods will be imported into the current package; you can
-call them directly without creating a CGI object first. This example
-shows how to import the B<param()> and B<header()>
-methods, and then use them directly:
-
- use CGI 'param','header';
- print header('text/plain');
- $zipcode = param('zipcode');
-
-More frequently, you'll import common sets of functions by referring
-to the groups by name. All function sets are preceded with a ":"
-character as in ":html3" (for tags defined in the HTML 3 standard).
-
-Here is a list of the function sets you can import:
-
-=over 4
-
-=item B<:cgi>
-
-Import all CGI-handling methods, such as B<param()>, B<path_info()>
-and the like.
-
-=item B<:form>
-
-Import all fill-out form generating methods, such as B<textfield()>.
-
-=item B<:html2>
-
-Import all methods that generate HTML 2.0 standard elements.
-
-=item B<:html3>
-
-Import all methods that generate HTML 3.0 elements (such as
-<table>, <super> and <sub>).
-
-=item B<:html4>
-
-Import all methods that generate HTML 4 elements (such as
-<abbrev>, <acronym> and <thead>).
-
-=item B<:netscape>
-
-Import the <blink>, <fontsize> and <center> tags.
-
-=item B<:html>
-
-Import all HTML-generating shortcuts (i.e. 'html2', 'html3', 'html4' and 'netscape')
-
-=item B<:standard>
-
-Import "standard" features, 'html2', 'html3', 'html4', 'form' and 'cgi'.
-
-=item B<:all>
-
-Import all the available methods. For the full list, see the CGI.pm
-code, where the variable %EXPORT_TAGS is defined.
-
-=back
-
-If you import a function name that is not part of CGI.pm, the module
-will treat it as a new HTML tag and generate the appropriate
-subroutine. You can then use it like any other HTML tag. This is to
-provide for the rapidly-evolving HTML "standard." For example, say
-Microsoft comes out with a new tag called <gradient> (which causes the
-user's desktop to be flooded with a rotating gradient fill until his
-machine reboots). You don't need to wait for a new version of CGI.pm
-to start using it immediately:
-
- use CGI qw/:standard :html3 gradient/;
- print gradient({-start=>'red',-end=>'blue'});
-
-Note that in the interests of execution speed CGI.pm does B<not> use
-the standard L<Exporter> syntax for specifying load symbols. This may
-change in the future.
-
-If you import any of the state-maintaining CGI or form-generating
-methods, a default CGI object will be created and initialized
-automatically the first time you use any of the methods that require
-one to be present. This includes B<param()>, B<textfield()>,
-B<submit()> and the like. (If you need direct access to the CGI
-object, you can find it in the global variable B<$CGI::Q>). By
-importing CGI.pm methods, you can create visually elegant scripts:
-
- use CGI qw/:standard/;
- print
- header,
- start_html('Simple Script'),
- h1('Simple Script'),
- start_form,
- "What's your name? ",textfield('name'),p,
- "What's the combination?",
- checkbox_group(-name=>'words',
- -values=>['eenie','meenie','minie','moe'],
- -defaults=>['eenie','moe']),p,
- "What's your favorite color?",
- popup_menu(-name=>'color',
- -values=>['red','green','blue','chartreuse']),p,
- submit,
- end_form,
- hr,"\n";
-
- if (param) {
- print
- "Your name is ",em(param('name')),p,
- "The keywords are: ",em(join(", ",param('words'))),p,
- "Your favorite color is ",em(param('color')),".\n";
- }
- print end_html;
-
-=head2 PRAGMAS
-
-In addition to the function sets, there are a number of pragmas that
-you can import. Pragmas, which are always preceded by a hyphen,
-change the way that CGI.pm functions in various ways. Pragmas,
-function sets, and individual functions can all be imported in the
-same use() line. For example, the following use statement imports the
-standard set of functions and enables debugging mode (pragma
--debug):
-
- use CGI qw/:standard -debug/;
-
-The current list of pragmas is as follows:
-
-=over 4
-
-=item -any
-
-When you I<use CGI -any>, then any method that the query object
-doesn't recognize will be interpreted as a new HTML tag. This allows
-you to support the next I<ad hoc> HTML
-extension. This lets you go wild with new and unsupported tags:
-
- use CGI qw(-any);
- $q=CGI->new;
- print $q->gradient({speed=>'fast',start=>'red',end=>'blue'});
-
-Since using <cite>any</cite> causes any mistyped method name
-to be interpreted as an HTML tag, use it with care or not at
-all.
-
-=item -compile
-
-This causes the indicated autoloaded methods to be compiled up front,
-rather than deferred to later. This is useful for scripts that run
-for an extended period of time under FastCGI or mod_perl, and for
-those destined to be crunched by Malcolm Beattie's Perl compiler. Use
-it in conjunction with the methods or method families you plan to use.
-
- use CGI qw(-compile :standard :html3);
-
-or even
-
- use CGI qw(-compile :all);
-
-Note that using the -compile pragma in this way will always have
-the effect of importing the compiled functions into the current
-namespace. If you want to compile without importing use the
-compile() method instead:
-
- use CGI();
- CGI->compile();
-
-This is particularly useful in a mod_perl environment, in which you
-might want to precompile all CGI routines in a startup script, and
-then import the functions individually in each mod_perl script.
-
-=item -nosticky
-
-By default the CGI module implements a state-preserving behavior
-called "sticky" fields. The way this works is that if you are
-regenerating a form, the methods that generate the form field values
-will interrogate param() to see if similarly-named parameters are
-present in the query string. If they find a like-named parameter, they
-will use it to set their default values.
-
-Sometimes this isn't what you want. The B<-nosticky> pragma prevents
-this behavior. You can also selectively change the sticky behavior in
-each element that you generate.
-
-=item -tabindex
-
-Automatically add tab index attributes to each form field. With this
-option turned off, you can still add tab indexes manually by passing a
--tabindex option to each field-generating method.
-
-=item -no_undef_params
-
-This keeps CGI.pm from including undef params in the parameter list.
-
-=item -no_xhtml
-
-By default, CGI.pm versions 2.69 and higher emit XHTML
-(http://www.w3.org/TR/xhtml1/). The -no_xhtml pragma disables this
-feature. Thanks to Michalis Kabrianis <kabrianis@hellug.gr> for this
-feature.
-
-If start_html()'s -dtd parameter specifies an HTML 2.0,
-3.2, 4.0 or 4.01 DTD,
-XHTML will automatically be disabled without needing to use this
-pragma.
-
-=item -utf8
-
-This makes CGI.pm treat all parameters as UTF-8 strings. Use this with
-care, as it will interfere with the processing of binary uploads. It
-is better to manually select which fields are expected to return utf-8
-strings and convert them using code like this:
-
- use Encode;
- my $arg = decode utf8=>param('foo');
-
-=item -nph
-
-This makes CGI.pm produce a header appropriate for an NPH (no
-parsed header) script. You may need to do other things as well
-to tell the server that the script is NPH. See the discussion
-of NPH scripts below.
-
-=item -newstyle_urls
-
-Separate the name=value pairs in CGI parameter query strings with
-semicolons rather than ampersands. For example:
-
- ?name=fred;age=24;favorite_color=3
-
-Semicolon-delimited query strings are always accepted, and will be emitted by
-self_url() and query_string(). newstyle_urls became the default in version
-2.64.
-
-=item -oldstyle_urls
-
-Separate the name=value pairs in CGI parameter query strings with
-ampersands rather than semicolons. This is no longer the default.
-
-=item -autoload
-
-This overrides the autoloader so that any function in your program
-that is not recognized is referred to CGI.pm for possible evaluation.
-This allows you to use all the CGI.pm functions without adding them to
-your symbol table, which is of concern for mod_perl users who are
-worried about memory consumption. I<Warning:> when
-I<-autoload> is in effect, you cannot use "poetry mode"
-(functions without the parenthesis). Use I<hr()> rather
-than I<hr>, or add something like I<use subs qw/hr p header/>
-to the top of your script.
-
-=item -no_debug
-
-This turns off the command-line processing features. If you want to
-run a CGI.pm script from the command line to produce HTML, and you
-don't want it to read CGI parameters from the command line or STDIN,
-then use this pragma:
-
- use CGI qw(-no_debug :standard);
-
-=item -debug
-
-This turns on full debugging. In addition to reading CGI arguments
-from the command-line processing, CGI.pm will pause and try to read
-arguments from STDIN, producing the message "(offline mode: enter
-name=value pairs on standard input)" features.
-
-See the section on debugging for more details.
-
-=item -private_tempfiles
-
-CGI.pm can process uploaded file. Ordinarily it spools the uploaded
-file to a temporary directory, then deletes the file when done.
-However, this opens the risk of eavesdropping as described in the file
-upload section. Another CGI script author could peek at this data
-during the upload, even if it is confidential information. On Unix
-systems, the -private_tempfiles pragma will cause the temporary file
-to be unlinked as soon as it is opened and before any data is written
-into it, reducing, but not eliminating the risk of eavesdropping
-(there is still a potential race condition). To make life harder for
-the attacker, the program chooses tempfile names by calculating a 32
-bit checksum of the incoming HTTP headers.
-
-To ensure that the temporary file cannot be read by other CGI scripts,
-use suEXEC or a CGI wrapper program to run your script. The temporary
-file is created with mode 0600 (neither world nor group readable).
-
-The temporary directory is selected using the following algorithm:
-
- 1. if $CGITempFile::TMPDIRECTORY is already set, use that
-
- 2. if the environment variable TMPDIR exists, use the location
- indicated.
-
- 3. Otherwise try the locations /usr/tmp, /var/tmp, C:\temp,
- /tmp, /temp, ::Temporary Items, and \WWW_ROOT.
-
-Each of these locations is checked that it is a directory and is
-writable. If not, the algorithm tries the next choice.
-
-=back
-
-=head2 SPECIAL FORMS FOR IMPORTING HTML-TAG FUNCTIONS
-
-Many of the methods generate HTML tags. As described below, tag
-functions automatically generate both the opening and closing tags.
-For example:
-
- print h1('Level 1 Header');
-
-produces
-
- <h1>Level 1 Header</h1>
-
-There will be some times when you want to produce the start and end
-tags yourself. In this case, you can use the form start_I<tag_name>
-and end_I<tag_name>, as in:
-
- print start_h1,'Level 1 Header',end_h1;
-
-With a few exceptions (described below), start_I<tag_name> and
-end_I<tag_name> functions are not generated automatically when you
-I<use CGI>. However, you can specify the tags you want to generate
-I<start/end> functions for by putting an asterisk in front of their
-name, or, alternatively, requesting either "start_I<tag_name>" or
-"end_I<tag_name>" in the import list.
-
-Example:
-
- use CGI qw/:standard *table start_ul/;
-
-In this example, the following functions are generated in addition to
-the standard ones:
-
-=over 4
-
-=item 1. start_table() (generates a <table> tag)
-
-=item 2. end_table() (generates a </table> tag)
-
-=item 3. start_ul() (generates a <ul> tag)
-
-=item 4. end_ul() (generates a </ul> tag)
-
-=back
-
-=head1 GENERATING DYNAMIC DOCUMENTS
-
-Most of CGI.pm's functions deal with creating documents on the fly.
-Generally you will produce the HTTP header first, followed by the
-document itself. CGI.pm provides functions for generating HTTP
-headers of various types as well as for generating HTML. For creating
-GIF images, see the GD.pm module.
-
-Each of these functions produces a fragment of HTML or HTTP which you
-can print out directly so that it displays in the browser window,
-append to a string, or save to a file for later use.
-
-=head2 CREATING A STANDARD HTTP HEADER:
-
-Normally the first thing you will do in any CGI script is print out an
-HTTP header. This tells the browser what type of document to expect,
-and gives other optional information, such as the language, expiration
-date, and whether to cache the document. The header can also be
-manipulated for special purposes, such as server push and pay per view
-pages.
-
- print header;
-
- -or-
-
- print header('image/gif');
-
- -or-
-
- print header('text/html','204 No response');
-
- -or-
-
- print header(-type=>'image/gif',
- -nph=>1,
- -status=>'402 Payment required',
- -expires=>'+3d',
- -cookie=>$cookie,
- -charset=>'utf-7',
- -attachment=>'foo.gif',
- -Cost=>'$2.00');
-
-header() returns the Content-type: header. You can provide your own
-MIME type if you choose, otherwise it defaults to text/html. An
-optional second parameter specifies the status code and a human-readable
-message. For example, you can specify 204, "No response" to create a
-script that tells the browser to do nothing at all. Note that RFC 2616 expects
-the human-readable phase to be there as well as the numeric status code.
-
-The last example shows the named argument style for passing arguments
-to the CGI methods using named parameters. Recognized parameters are
-B<-type>, B<-status>, B<-expires>, and B<-cookie>. Any other named
-parameters will be stripped of their initial hyphens and turned into
-header fields, allowing you to specify any HTTP header you desire.
-Internal underscores will be turned into hyphens:
-
- print header(-Content_length=>3002);
-
-Most browsers will not cache the output from CGI scripts. Every time
-the browser reloads the page, the script is invoked anew. You can
-change this behavior with the B<-expires> parameter. When you specify
-an absolute or relative expiration interval with this parameter, some
-browsers and proxy servers will cache the script's output until the
-indicated expiration date. The following forms are all valid for the
--expires field:
-
- +30s 30 seconds from now
- +10m ten minutes from now
- +1h one hour from now
- -1d yesterday (i.e. "ASAP!")
- now immediately
- +3M in three months
- +10y in ten years time
- Thursday, 25-Apr-1999 00:40:33 GMT at the indicated time & date
-
-The B<-cookie> parameter generates a header that tells the browser to provide
-a "magic cookie" during all subsequent transactions with your script.
-Some cookies have a special format that includes interesting attributes
-such as expiration time. Use the cookie() method to create and retrieve
-session cookies.
-
-The B<-nph> parameter, if set to a true value, will issue the correct
-headers to work with a NPH (no-parse-header) script. This is important
-to use with certain servers that expect all their scripts to be NPH.
-
-The B<-charset> parameter can be used to control the character set
-sent to the browser. If not provided, defaults to ISO-8859-1. As a
-side effect, this sets the charset() method as well.
-
-The B<-attachment> parameter can be used to turn the page into an
-attachment. Instead of displaying the page, some browsers will prompt
-the user to save it to disk. The value of the argument is the
-suggested name for the saved file. In order for this to work, you may
-have to set the B<-type> to "application/octet-stream".
-
-The B<-p3p> parameter will add a P3P tag to the outgoing header. The
-parameter can be an arrayref or a space-delimited string of P3P tags.
-For example:
-
- print header(-p3p=>[qw(CAO DSP LAW CURa)]);
- print header(-p3p=>'CAO DSP LAW CURa');
-
-In either case, the outgoing header will be formatted as:
-
- P3P: policyref="/w3c/p3p.xml" cp="CAO DSP LAW CURa"
-
-CGI.pm will accept valid multi-line headers when each line is separated with a
-CRLF value ("\r\n" on most platforms) followed by at least one space. For example:
-
- print header( -ingredients => "ham\r\n\seggs\r\n\sbacon" );
-
-Invalid multi-line header input will trigger in an exception. When multi-line headers
-are received, CGI.pm will always output them back as a single line, according to the
-folding rules of RFC 2616: the newlines will be removed, while the white space remains.
-
-=head2 GENERATING A REDIRECTION HEADER
-
- print $q->redirect('http://somewhere.else/in/movie/land');
-
-Sometimes you don't want to produce a document yourself, but simply
-redirect the browser elsewhere, perhaps choosing a URL based on the
-time of day or the identity of the user.
-
-The redirect() method redirects the browser to a different URL. If
-you use redirection like this, you should B<not> print out a header as
-well.
-
-You should always use full URLs (including the http: or ftp: part) in
-redirection requests. Relative URLs will not work correctly.
-
-You can also use named arguments:
-
- print $q->redirect(
- -uri=>'http://somewhere.else/in/movie/land',
- -nph=>1,
- -status=>'301 Moved Permanently');
-
-All names arguments recognized by header() are also recognized by
-redirect(). However, most HTTP headers, including those generated by
--cookie and -target, are ignored by the browser.
-
-The B<-nph> parameter, if set to a true value, will issue the correct
-headers to work with a NPH (no-parse-header) script. This is important
-to use with certain servers, such as Microsoft IIS, which
-expect all their scripts to be NPH.
-
-The B<-status> parameter will set the status of the redirect. HTTP
-defines three different possible redirection status codes:
-
- 301 Moved Permanently
- 302 Found
- 303 See Other
-
-The default if not specified is 302, which means "moved temporarily."
-You may change the status to another status code if you wish. Be
-advised that changing the status to anything other than 301, 302 or
-303 will probably break redirection.
-
-Note that the human-readable phrase is also expected to be present to conform
-with RFC 2616, section 6.1.
-
-=head2 CREATING THE HTML DOCUMENT HEADER
-
- print start_html(-title=>'Secrets of the Pyramids',
- -author=>'fred@capricorn.org',
- -base=>'true',
- -target=>'_blank',
- -meta=>{'keywords'=>'pharaoh secret mummy',
- 'copyright'=>'copyright 1996 King Tut'},
- -style=>{'src'=>'/styles/style1.css'},
- -BGCOLOR=>'blue');
-
-The start_html() routine creates the top of the
-page, along with a lot of optional information that controls the
-page's appearance and behavior.
-
-This method returns a canned HTML header and the opening <body> tag.
-All parameters are optional. In the named parameter form, recognized
-parameters are -title, -author, -base, -xbase, -dtd, -lang and -target
-(see below for the explanation). Any additional parameters you
-provide, such as the unofficial BGCOLOR attribute, are added
-to the <body> tag. Additional parameters must be proceeded by a
-hyphen.
-
-The argument B<-xbase> allows you to provide an HREF for the <base> tag
-different from the current location, as in
-
- -xbase=>"http://home.mcom.com/"
-
-All relative links will be interpreted relative to this tag.
-
-The argument B<-target> allows you to provide a default target frame
-for all the links and fill-out forms on the page. B<This is a
-non-standard HTTP feature which only works with some browsers!>
-
- -target=>"answer_window"
-
-All relative links will be interpreted relative to this tag.
-You add arbitrary meta information to the header with the B<-meta>
-argument. This argument expects a reference to a hash
-containing name/value pairs of meta information. These will be turned
-into a series of header <meta> tags that look something like this:
-
- <meta name="keywords" content="pharaoh secret mummy">
- <meta name="description" content="copyright 1996 King Tut">
-
-To create an HTTP-EQUIV type of <meta> tag, use B<-head>, described
-below.
-
-The B<-style> argument is used to incorporate cascading stylesheets
-into your code. See the section on CASCADING STYLESHEETS for more
-information.
-
-The B<-lang> argument is used to incorporate a language attribute into
-the <html> tag. For example:
-
- print $q->start_html(-lang=>'fr-CA');
-
-The default if not specified is "en-US" for US English, unless the
--dtd parameter specifies an HTML 2.0 or 3.2 DTD, in which case the
-lang attribute is left off. You can force the lang attribute to left
-off in other cases by passing an empty string (-lang=>'').
-
-The B<-encoding> argument can be used to specify the character set for
-XHTML. It defaults to iso-8859-1 if not specified.
-
-The B<-dtd> argument can be used to specify a public DTD identifier string. For example:
-
- -dtd => '-//W3C//DTD HTML 4.01 Transitional//EN')
-
-Alternatively, it can take public and system DTD identifiers as an array:
-
- dtd => [ '-//W3C//DTD HTML 4.01 Transitional//EN', 'http://www.w3.org/TR/html4/loose.dtd' ]
-
-For the public DTD identifier to be considered, it must be valid. Otherwise it
-will be replaced by the default DTD. If the public DTD contains 'XHTML', CGI.pm
-will emit XML.
-
-The B<-declare_xml> argument, when used in conjunction with XHTML,
-will put a <?xml> declaration at the top of the HTML header. The sole
-purpose of this declaration is to declare the character set
-encoding. In the absence of -declare_xml, the output HTML will contain
-a <meta> tag that specifies the encoding, allowing the HTML to pass
-most validators. The default for -declare_xml is false.
-
-You can place other arbitrary HTML elements to the <head> section with the
-B<-head> tag. For example, to place a <link> element in the
-head section, use this:
-
- print start_html(-head=>Link({-rel=>'shortcut icon',
- -href=>'favicon.ico'}));
-
-To incorporate multiple HTML elements into the <head> section, just pass an
-array reference:
-
- print start_html(-head=>[
- Link({-rel=>'next',
- -href=>'http://www.capricorn.com/s2.html'}),
- Link({-rel=>'previous',
- -href=>'http://www.capricorn.com/s1.html'})
- ]
- );
-
-And here's how to create an HTTP-EQUIV <meta> tag:
-
- print start_html(-head=>meta({-http_equiv => 'Content-Type',
- -content => 'text/html'}))
-
-
-JAVASCRIPTING: The B<-script>, B<-noScript>, B<-onLoad>,
-B<-onMouseOver>, B<-onMouseOut> and B<-onUnload> parameters are used
-to add JavaScript calls to your pages. B<-script> should
-point to a block of text containing JavaScript function definitions.
-This block will be placed within a <script> block inside the HTML (not
-HTTP) header. The block is placed in the header in order to give your
-page a fighting chance of having all its JavaScript functions in place
-even if the user presses the stop button before the page has loaded
-completely. CGI.pm attempts to format the script in such a way that
-JavaScript-naive browsers will not choke on the code: unfortunately
-there are some browsers, such as Chimera for Unix, that get confused
-by it nevertheless.
-
-The B<-onLoad> and B<-onUnload> parameters point to fragments of JavaScript
-code to execute when the page is respectively opened and closed by the
-browser. Usually these parameters are calls to functions defined in the
-B<-script> field:
-
- $query = CGI->new;
- print header;
- $JSCRIPT=<<END;
- // Ask a silly question
- function riddle_me_this() {
- var r = prompt("What walks on four legs in the morning, " +
- "two legs in the afternoon, " +
- "and three legs in the evening?");
- response(r);
- }
- // Get a silly answer
- function response(answer) {
- if (answer == "man")
- alert("Right you are!");
- else
- alert("Wrong! Guess again.");
- }
- END
- print start_html(-title=>'The Riddle of the Sphinx',
- -script=>$JSCRIPT);
-
-Use the B<-noScript> parameter to pass some HTML text that will be displayed on
-browsers that do not have JavaScript (or browsers where JavaScript is turned
-off).
-
-The <script> tag, has several attributes including "type", "charset" and "src".
-"src" allows you to keep JavaScript code in an external file. To use these
-attributes pass a HASH reference in the B<-script> parameter containing one or
-more of -type, -src, or -code:
-
- print $q->start_html(-title=>'The Riddle of the Sphinx',
- -script=>{-type=>'JAVASCRIPT',
- -src=>'/javascript/sphinx.js'}
- );
-
- print $q->(-title=>'The Riddle of the Sphinx',
- -script=>{-type=>'PERLSCRIPT',
- -code=>'print "hello world!\n;"'}
- );
-
-
-A final feature allows you to incorporate multiple <script> sections into the
-header. Just pass the list of script sections as an array reference.
-this allows you to specify different source files for different dialects
-of JavaScript. Example:
-
- print $q->start_html(-title=>'The Riddle of the Sphinx',
- -script=>[
- { -type => 'text/javascript',
- -src => '/javascript/utilities10.js'
- },
- { -type => 'text/javascript',
- -src => '/javascript/utilities11.js'
- },
- { -type => 'text/jscript',
- -src => '/javascript/utilities12.js'
- },
- { -type => 'text/ecmascript',
- -src => '/javascript/utilities219.js'
- }
- ]
- );
-
-The option "-language" is a synonym for -type, and is supported for
-backwards compatibility.
-
-The old-style positional parameters are as follows:
-
-B<Parameters:>
-
-=over 4
-
-=item 1.
-
-The title
-
-=item 2.
-
-The author's e-mail address (will create a <link rev="MADE"> tag if present
-
-=item 3.
-
-A 'true' flag if you want to include a <base> tag in the header. This
-helps resolve relative addresses to absolute ones when the document is moved,
-but makes the document hierarchy non-portable. Use with care!
-
-=back
-
-Other parameters you want to include in the <body> tag may be appended
-to these. This is a good place to put HTML extensions, such as colors and
-wallpaper patterns.
-
-=head2 ENDING THE HTML DOCUMENT:
-
- print $q->end_html;
-
-This ends an HTML document by printing the </body></html> tags.
-
-=head2 CREATING A SELF-REFERENCING URL THAT PRESERVES STATE INFORMATION:
-
- $myself = $q->self_url;
- print q(<a href="$myself">I'm talking to myself.</a>);
-
-self_url() will return a URL, that, when selected, will reinvoke
-this script with all its state information intact. This is most
-useful when you want to jump around within the document using
-internal anchors but you don't want to disrupt the current contents
-of the form(s). Something like this will do the trick.
-
- $myself = $q->self_url;
- print "<a href=\"$myself#table1\">See table 1</a>";
- print "<a href=\"$myself#table2\">See table 2</a>";
- print "<a href=\"$myself#yourself\">See for yourself</a>";
-
-If you want more control over what's returned, using the B<url()>
-method instead.
-
-You can also retrieve the unprocessed query string with query_string():
-
- $the_string = $q->query_string();
-
-The behavior of calling query_string is currently undefined when the HTTP method is
-something other than GET.
-
-=head2 OBTAINING THE SCRIPT'S URL
-
- $full_url = url();
- $full_url = url(-full=>1); #alternative syntax
- $relative_url = url(-relative=>1);
- $absolute_url = url(-absolute=>1);
- $url_with_path = url(-path_info=>1);
- $url_with_path_and_query = url(-path_info=>1,-query=>1);
- $netloc = url(-base => 1);
-
-B<url()> returns the script's URL in a variety of formats. Called
-without any arguments, it returns the full form of the URL, including
-host name and port number
-
- http://your.host.com/path/to/script.cgi
-
-You can modify this format with the following named arguments:
-
-=over 4
-
-=item B<-absolute>
-
-If true, produce an absolute URL, e.g.
-
- /path/to/script.cgi
-
-=item B<-relative>
-
-Produce a relative URL. This is useful if you want to reinvoke your
-script with different parameters. For example:
-
- script.cgi
-
-=item B<-full>
-
-Produce the full URL, exactly as if called without any arguments.
-This overrides the -relative and -absolute arguments.
-
-=item B<-path> (B<-path_info>)
-
-Append the additional path information to the URL. This can be
-combined with B<-full>, B<-absolute> or B<-relative>. B<-path_info>
-is provided as a synonym.
-
-=item B<-query> (B<-query_string>)
-
-Append the query string to the URL. This can be combined with
-B<-full>, B<-absolute> or B<-relative>. B<-query_string> is provided
-as a synonym.
-
-=item B<-base>
-
-Generate just the protocol and net location, as in http://www.foo.com:8000
-
-=item B<-rewrite>
-
-If Apache's mod_rewrite is turned on, then the script name and path
-info probably won't match the request that the user sent. Set
--rewrite=>1 (default) to return URLs that match what the user sent
-(the original request URI). Set -rewrite=>0 to return URLs that match
-the URL after mod_rewrite's rules have run.
-
-=back
-
-=head2 MIXING POST AND URL PARAMETERS
-
- $color = url_param('color');
-
-It is possible for a script to receive CGI parameters in the URL as
-well as in the fill-out form by creating a form that POSTs to a URL
-containing a query string (a "?" mark followed by arguments). The
-B<param()> method will always return the contents of the POSTed
-fill-out form, ignoring the URL's query string. To retrieve URL
-parameters, call the B<url_param()> method. Use it in the same way as
-B<param()>. The main difference is that it allows you to read the
-parameters, but not set them.
-
-
-Under no circumstances will the contents of the URL query string
-interfere with similarly-named CGI parameters in POSTed forms. If you
-try to mix a URL query string with a form submitted with the GET
-method, the results will not be what you expect.
-
-=head1 CREATING STANDARD HTML ELEMENTS:
-
-CGI.pm defines general HTML shortcut methods for many HTML tags. HTML shortcuts are named after a single
-HTML element and return a fragment of HTML text. Example:
-
- print $q->blockquote(
- "Many years ago on the island of",
- $q->a({href=>"http://crete.org/"},"Crete"),
- "there lived a Minotaur named",
- $q->strong("Fred."),
- ),
- $q->hr;
-
-This results in the following HTML code (extra newlines have been
-added for readability):
-
- <blockquote>
- Many years ago on the island of
- <a href="http://crete.org/">Crete</a> there lived
- a minotaur named <strong>Fred.</strong>
- </blockquote>
- <hr>
-
-If you find the syntax for calling the HTML shortcuts awkward, you can
-import them into your namespace and dispense with the object syntax
-completely (see the next section for more details):
-
- use CGI ':standard';
- print blockquote(
- "Many years ago on the island of",
- a({href=>"http://crete.org/"},"Crete"),
- "there lived a minotaur named",
- strong("Fred."),
- ),
- hr;
-
-=head2 PROVIDING ARGUMENTS TO HTML SHORTCUTS
-
-The HTML methods will accept zero, one or multiple arguments. If you
-provide no arguments, you get a single tag:
-
- print hr; # <hr>
-
-If you provide one or more string arguments, they are concatenated
-together with spaces and placed between opening and closing tags:
-
- print h1("Chapter","1"); # <h1>Chapter 1</h1>"
-
-If the first argument is a hash reference, then the keys
-and values of the hash become the HTML tag's attributes:
-
- print a({-href=>'fred.html',-target=>'_new'},
- "Open a new frame");
-
- <a href="fred.html",target="_new">Open a new frame</a>
-
-You may dispense with the dashes in front of the attribute names if
-you prefer:
-
- print img {src=>'fred.gif',align=>'LEFT'};
-
- <img align="LEFT" src="fred.gif">
-
-Sometimes an HTML tag attribute has no argument. For example, ordered
-lists can be marked as COMPACT. The syntax for this is an argument that
-that points to an undef string:
-
- print ol({compact=>undef},li('one'),li('two'),li('three'));
-
-Prior to CGI.pm version 2.41, providing an empty ('') string as an
-attribute argument was the same as providing undef. However, this has
-changed in order to accommodate those who want to create tags of the form
-<img alt="">. The difference is shown in these two pieces of code:
-
- CODE RESULT
- img({alt=>undef}) <img alt>
- img({alt=>''}) <img alt="">
-
-=head2 THE DISTRIBUTIVE PROPERTY OF HTML SHORTCUTS
-
-One of the cool features of the HTML shortcuts is that they are
-distributive. If you give them an argument consisting of a
-B<reference> to a list, the tag will be distributed across each
-element of the list. For example, here's one way to make an ordered
-list:
-
- print ul(
- li({-type=>'disc'},['Sneezy','Doc','Sleepy','Happy'])
- );
-
-This example will result in HTML output that looks like this:
-
- <ul>
- <li type="disc">Sneezy</li>
- <li type="disc">Doc</li>
- <li type="disc">Sleepy</li>
- <li type="disc">Happy</li>
- </ul>
-
-This is extremely useful for creating tables. For example:
-
- print table({-border=>undef},
- caption('When Should You Eat Your Vegetables?'),
- Tr({-align=>'CENTER',-valign=>'TOP'},
- [
- th(['Vegetable', 'Breakfast','Lunch','Dinner']),
- td(['Tomatoes' , 'no', 'yes', 'yes']),
- td(['Broccoli' , 'no', 'no', 'yes']),
- td(['Onions' , 'yes','yes', 'yes'])
- ]
- )
- );
-
-=head2 HTML SHORTCUTS AND LIST INTERPOLATION
-
-Consider this bit of code:
-
- print blockquote(em('Hi'),'mom!'));
-
-It will ordinarily return the string that you probably expect, namely:
-
- <blockquote><em>Hi</em> mom!</blockquote>
-
-Note the space between the element "Hi" and the element "mom!".
-CGI.pm puts the extra space there using array interpolation, which is
-controlled by the magic $" variable. Sometimes this extra space is
-not what you want, for example, when you are trying to align a series
-of images. In this case, you can simply change the value of $" to an
-empty string.
-
- {
- local($") = '';
- print blockquote(em('Hi'),'mom!'));
- }
-
-I suggest you put the code in a block as shown here. Otherwise the
-change to $" will affect all subsequent code until you explicitly
-reset it.
-
-=head2 NON-STANDARD HTML SHORTCUTS
-
-A few HTML tags don't follow the standard pattern for various
-reasons.
-
-B<comment()> generates an HTML comment (<!-- comment -->). Call it
-like
-
- print comment('here is my comment');
-
-Because of conflicts with built-in Perl functions, the following functions
-begin with initial caps:
-
- Select
- Tr
- Link
- Delete
- Accept
- Sub
-
-In addition, start_html(), end_html(), start_form(), end_form(),
-start_multipart_form() and all the fill-out form tags are special.
-See their respective sections.
-
-=head2 AUTOESCAPING HTML
-
-By default, all HTML that is emitted by the form-generating functions
-is passed through a function called escapeHTML():
-
-=over 4
-
-=item $escaped_string = escapeHTML("unescaped string");
-
-Escape HTML formatting characters in a string.
-
-=back
-
-Provided that you have specified a character set of ISO-8859-1 (the
-default), the standard HTML escaping rules will be used. The "<"
-character becomes "&lt;", ">" becomes "&gt;", "&" becomes "&amp;", and
-the quote character becomes "&quot;". In addition, the hexadecimal
-0x8b and 0x9b characters, which some browsers incorrectly interpret
-as the left and right angle-bracket characters, are replaced by their
-numeric character entities ("&#8249" and "&#8250;"). If you manually change
-the charset, either by calling the charset() method explicitly or by
-passing a -charset argument to header(), then B<all> characters will
-be replaced by their numeric entities, since CGI.pm has no lookup
-table for all the possible encodings.
-
-C<escapeHTML()> expects the supplied string to be a character string. This means you
-should Encode::decode data received from "outside" and Encode::encode your
-strings before sending them back outside. If your source code UTF-8 encoded and
-you want to upgrade string literals in your source to character strings, you
-can use "use utf8". See L<perlunitut>, L<perlunifaq> and L<perlunicode> for more
-information on how Perl handles the difference between bytes and characters.
-
-The automatic escaping does not apply to other shortcuts, such as
-h1(). You should call escapeHTML() yourself on untrusted data in
-order to protect your pages against nasty tricks that people may enter
-into guestbooks, etc.. To change the character set, use charset().
-To turn autoescaping off completely, use autoEscape(0):
-
-=over 4
-
-=item $charset = charset([$charset]);
-
-Get or set the current character set.
-
-=item $flag = autoEscape([$flag]);
-
-Get or set the value of the autoescape flag.
-
-=back
-
-=head2 PRETTY-PRINTING HTML
-
-By default, all the HTML produced by these functions comes out as one
-long line without carriage returns or indentation. This is yuck, but
-it does reduce the size of the documents by 10-20%. To get
-pretty-printed output, please use L<CGI::Pretty>, a subclass
-contributed by Brian Paulsen.
-
-=head1 CREATING FILL-OUT FORMS:
-
-I<General note> The various form-creating methods all return strings
-to the caller, containing the tag or tags that will create the requested
-form element. You are responsible for actually printing out these strings.
-It's set up this way so that you can place formatting tags
-around the form elements.
-
-I<Another note> The default values that you specify for the forms are only
-used the B<first> time the script is invoked (when there is no query
-string). On subsequent invocations of the script (when there is a query
-string), the former values are used even if they are blank.
-
-If you want to change the value of a field from its previous value, you have two
-choices:
-
-(1) call the param() method to set it.
-
-(2) use the -override (alias -force) parameter (a new feature in version 2.15).
-This forces the default value to be used, regardless of the previous value:
-
- print textfield(-name=>'field_name',
- -default=>'starting value',
- -override=>1,
- -size=>50,
- -maxlength=>80);
-
-I<Yet another note> By default, the text and labels of form elements are
-escaped according to HTML rules. This means that you can safely use
-"<CLICK ME>" as the label for a button. However, it also interferes with
-your ability to incorporate special HTML character sequences, such as &Aacute;,
-into your fields. If you wish to turn off automatic escaping, call the
-autoEscape() method with a false value immediately after creating the CGI object:
-
- $query = CGI->new;
- $query->autoEscape(0);
-
-Note that autoEscape() is exclusively used to effect the behavior of how some
-CGI.pm HTML generation functions handle escaping. Calling escapeHTML()
-explicitly will always escape the HTML.
-
-I<A Lurking Trap!> Some of the form-element generating methods return
-multiple tags. In a scalar context, the tags will be concatenated
-together with spaces, or whatever is the current value of the $"
-global. In a list context, the methods will return a list of
-elements, allowing you to modify them if you wish. Usually you will
-not notice this behavior, but beware of this:
-
- printf("%s\n",end_form())
-
-end_form() produces several tags, and only the first of them will be
-printed because the format only expects one value.
-
-<p>
-
-
-=head2 CREATING AN ISINDEX TAG
-
- print isindex(-action=>$action);
-
- -or-
-
- print isindex($action);
-
-Prints out an <isindex> tag. Not very exciting. The parameter
--action specifies the URL of the script to process the query. The
-default is to process the query with the current script.
-
-=head2 STARTING AND ENDING A FORM
-
- print start_form(-method=>$method,
- -action=>$action,
- -enctype=>$encoding);
- <... various form stuff ...>
- print end_form;
-
- -or-
-
- print start_form($method,$action,$encoding);
- <... various form stuff ...>
- print end_form;
-
-start_form() will return a <form> tag with the optional method,
-action and form encoding that you specify. The defaults are:
-
- method: POST
- action: this script
- enctype: application/x-www-form-urlencoded for non-XHTML
- multipart/form-data for XHTML, see multipart/form-data below.
-
-end_form() returns the closing </form> tag.
-
-Start_form()'s enctype argument tells the browser how to package the various
-fields of the form before sending the form to the server. Two
-values are possible:
-
-B<Note:> These methods were previously named startform() and endform().
-These methods are now DEPRECATED.
-Please use start_form() and end_form() instead.
-
-=over 4
-
-=item B<application/x-www-form-urlencoded>
-
-This is the older type of encoding. It is compatible with many CGI scripts and is
-suitable for short fields containing text data. For your
-convenience, CGI.pm stores the name of this encoding
-type in B<&CGI::URL_ENCODED>.
-
-=item B<multipart/form-data>
-
-This is the newer type of encoding.
-It is suitable for forms that contain very large fields or that
-are intended for transferring binary data. Most importantly,
-it enables the "file upload" feature. For
-your convenience, CGI.pm stores the name of this encoding type
-in B<&CGI::MULTIPART>
-
-Forms that use this type of encoding are not easily interpreted
-by CGI scripts unless they use CGI.pm or another library designed
-to handle them.
-
-If XHTML is activated (the default), then forms will be automatically
-created using this type of encoding.
-
-=back
-
-The start_form() method uses the older form of encoding by
-default unless XHTML is requested. If you want to use the
-newer form of encoding by default, you can call
-B<start_multipart_form()> instead of B<start_form()>. The
-method B<end_multipart_form()> is an alias to B<end_form()>.
-
-JAVASCRIPTING: The B<-name> and B<-onSubmit> parameters are provided
-for use with JavaScript. The -name parameter gives the
-form a name so that it can be identified and manipulated by
-JavaScript functions. -onSubmit should point to a JavaScript
-function that will be executed just before the form is submitted to your
-server. You can use this opportunity to check the contents of the form
-for consistency and completeness. If you find something wrong, you
-can put up an alert box or maybe fix things up yourself. You can
-abort the submission by returning false from this function.
-
-Usually the bulk of JavaScript functions are defined in a <script>
-block in the HTML header and -onSubmit points to one of these function
-call. See start_html() for details.
-
-=head2 FORM ELEMENTS
-
-After starting a form, you will typically create one or more
-textfields, popup menus, radio groups and other form elements. Each
-of these elements takes a standard set of named arguments. Some
-elements also have optional arguments. The standard arguments are as
-follows:
-
-=over 4
-
-=item B<-name>
-
-The name of the field. After submission this name can be used to
-retrieve the field's value using the param() method.
-
-=item B<-value>, B<-values>
-
-The initial value of the field which will be returned to the script
-after form submission. Some form elements, such as text fields, take
-a single scalar -value argument. Others, such as popup menus, take a
-reference to an array of values. The two arguments are synonyms.
-
-=item B<-tabindex>
-
-A numeric value that sets the order in which the form element receives
-focus when the user presses the tab key. Elements with lower values
-receive focus first.
-
-=item B<-id>
-
-A string identifier that can be used to identify this element to
-JavaScript and DHTML.
-
-=item B<-override>
-
-A boolean, which, if true, forces the element to take on the value
-specified by B<-value>, overriding the sticky behavior described
-earlier for the B<-nosticky> pragma.
-
-=item B<-onChange>, B<-onFocus>, B<-onBlur>, B<-onMouseOver>, B<-onMouseOut>, B<-onSelect>
-
-These are used to assign JavaScript event handlers. See the
-JavaScripting section for more details.
-
-=back
-
-Other common arguments are described in the next section. In addition
-to these, all attributes described in the HTML specifications are
-supported.
-
-=head2 CREATING A TEXT FIELD
-
- print textfield(-name=>'field_name',
- -value=>'starting value',
- -size=>50,
- -maxlength=>80);
- -or-
-
- print textfield('field_name','starting value',50,80);
-
-textfield() will return a text input field.
-
-B<Parameters>
-
-=over 4
-
-=item 1.
-
-The first parameter is the required name for the field (-name).
-
-=item 2.
-
-The optional second parameter is the default starting value for the field
-contents (-value, formerly known as -default).
-
-=item 3.
-
-The optional third parameter is the size of the field in
- characters (-size).
-
-=item 4.
-
-The optional fourth parameter is the maximum number of characters the
- field will accept (-maxlength).
-
-=back
-
-As with all these methods, the field will be initialized with its
-previous contents from earlier invocations of the script.
-When the form is processed, the value of the text field can be
-retrieved with:
-
- $value = param('foo');
-
-If you want to reset it from its initial value after the script has been
-called once, you can do so like this:
-
- param('foo',"I'm taking over this value!");
-
-=head2 CREATING A BIG TEXT FIELD
-
- print textarea(-name=>'foo',
- -default=>'starting value',
- -rows=>10,
- -columns=>50);
-
- -or
-
- print textarea('foo','starting value',10,50);
-
-textarea() is just like textfield, but it allows you to specify
-rows and columns for a multiline text entry box. You can provide
-a starting value for the field, which can be long and contain
-multiple lines.
-
-=head2 CREATING A PASSWORD FIELD
-
- print password_field(-name=>'secret',
- -value=>'starting value',
- -size=>50,
- -maxlength=>80);
- -or-
-
- print password_field('secret','starting value',50,80);
-
-password_field() is identical to textfield(), except that its contents
-will be starred out on the web page.
-
-=head2 CREATING A FILE UPLOAD FIELD
-
- print filefield(-name=>'uploaded_file',
- -default=>'starting value',
- -size=>50,
- -maxlength=>80);
- -or-
-
- print filefield('uploaded_file','starting value',50,80);
-
-filefield() will return a file upload field.
-In order to take full advantage of this I<you must use the new
-multipart encoding scheme> for the form. You can do this either
-by calling B<start_form()> with an encoding type of B<&CGI::MULTIPART>,
-or by calling the new method B<start_multipart_form()> instead of
-vanilla B<start_form()>.
-
-B<Parameters>
-
-=over 4
-
-=item 1.
-
-The first parameter is the required name for the field (-name).
-
-=item 2.
-
-The optional second parameter is the starting value for the field contents
-to be used as the default file name (-default).
-
-For security reasons, browsers don't pay any attention to this field,
-and so the starting value will always be blank. Worse, the field
-loses its "sticky" behavior and forgets its previous contents. The
-starting value field is called for in the HTML specification, however,
-and possibly some browser will eventually provide support for it.
-
-=item 3.
-
-The optional third parameter is the size of the field in
-characters (-size).
-
-=item 4.
-
-The optional fourth parameter is the maximum number of characters the
-field will accept (-maxlength).
-
-=back
-
-JAVASCRIPTING: The B<-onChange>, B<-onFocus>, B<-onBlur>,
-B<-onMouseOver>, B<-onMouseOut> and B<-onSelect> parameters are
-recognized. See textfield() for details.
-
-=head2 PROCESSING A FILE UPLOAD FIELD
-
-=head3 Basics
-
-When the form is processed, you can retrieve an L<IO::Handle> compatible
-handle for a file upload field like this:
-
- $lightweight_fh = $q->upload('field_name');
-
- # undef may be returned if it's not a valid file handle
- if (defined $lightweight_fh) {
- # Upgrade the handle to one compatible with IO::Handle:
- my $io_handle = $lightweight_fh->handle;
-
- open (OUTFILE,'>>','/usr/local/web/users/feedback');
- while ($bytesread = $io_handle->read($buffer,1024)) {
- print OUTFILE $buffer;
- }
- }
-
-In a list context, upload() will return an array of filehandles.
-This makes it possible to process forms that use the same name for
-multiple upload fields.
-
-If you want the entered file name for the file, you can just call param():
-
- $filename = $q->param('field_name');
-
-Different browsers will return slightly different things for the
-name. Some browsers return the filename only. Others return the full
-path to the file, using the path conventions of the user's machine.
-Regardless, the name returned is always the name of the file on the
-I<user's> machine, and is unrelated to the name of the temporary file
-that CGI.pm creates during upload spooling (see below).
-
-When a file is uploaded the browser usually sends along some
-information along with it in the format of headers. The information
-usually includes the MIME content type. To
-retrieve this information, call uploadInfo(). It returns a reference to
-a hash containing all the document headers.
-
- $filename = $q->param('uploaded_file');
- $type = $q->uploadInfo($filename)->{'Content-Type'};
- unless ($type eq 'text/html') {
- die "HTML FILES ONLY!";
- }
-
-If you are using a machine that recognizes "text" and "binary" data
-modes, be sure to understand when and how to use them (see the Camel book).
-Otherwise you may find that binary files are corrupted during file
-uploads.
-
-=head3 Accessing the temp files directly
-
-When processing an uploaded file, CGI.pm creates a temporary file on your hard
-disk and passes you a file handle to that file. After you are finished with the
-file handle, CGI.pm unlinks (deletes) the temporary file. If you need to you
-can access the temporary file directly. You can access the temp file for a file
-upload by passing the file name to the tmpFileName() method:
-
- $filename = $query->param('uploaded_file');
- $tmpfilename = $query->tmpFileName($filename);
-
-The temporary file will be deleted automatically when your program exits unless
-you manually rename it. On some operating systems (such as Windows NT), you
-will need to close the temporary file's filehandle before your program exits.
-Otherwise the attempt to delete the temporary file will fail.
-
-=head3 Handling interrupted file uploads
-
-There are occasionally problems involving parsing the uploaded file.
-This usually happens when the user presses "Stop" before the upload is
-finished. In this case, CGI.pm will return undef for the name of the
-uploaded file and set I<cgi_error()> to the string "400 Bad request
-(malformed multipart POST)". This error message is designed so that
-you can incorporate it into a status code to be sent to the browser.
-Example:
-
- $file = $q->upload('uploaded_file');
- if (!$file && $q->cgi_error) {
- print $q->header(-status=>$q->cgi_error);
- exit 0;
- }
-
-You are free to create a custom HTML page to complain about the error,
-if you wish.
-
-=head3 Progress bars for file uploads and avoiding temp files
-
-CGI.pm gives you low-level access to file upload management through
-a file upload hook. You can use this feature to completely turn off
-the temp file storage of file uploads, or potentially write your own
-file upload progress meter.
-
-This is much like the UPLOAD_HOOK facility available in L<Apache::Request>, with
-the exception that the first argument to the callback is an L<Apache::Upload>
-object, here it's the remote filename.
-
- $q = CGI->new(\&hook [,$data [,$use_tempfile]]);
-
- sub hook {
- my ($filename, $buffer, $bytes_read, $data) = @_;
- print "Read $bytes_read bytes of $filename\n";
- }
-
-The C<< $data >> field is optional; it lets you pass configuration
-information (e.g. a database handle) to your hook callback.
-
-The C<< $use_tempfile >> field is a flag that lets you turn on and off
-CGI.pm's use of a temporary disk-based file during file upload. If you
-set this to a FALSE value (default true) then $q->param('uploaded_file')
-will no longer work, and the only way to get at the uploaded data is
-via the hook you provide.
-
-If using the function-oriented interface, call the CGI::upload_hook()
-method before calling param() or any other CGI functions:
-
- CGI::upload_hook(\&hook [,$data [,$use_tempfile]]);
-
-This method is not exported by default. You will have to import it
-explicitly if you wish to use it without the CGI:: prefix.
-
-=head3 Troubleshooting file uploads on Windows
-
-If you are using CGI.pm on a Windows platform and find that binary
-files get slightly larger when uploaded but that text files remain the
-same, then you have forgotten to activate binary mode on the output
-filehandle. Be sure to call binmode() on any handle that you create
-to write the uploaded file to disk.
-
-=head3 Older ways to process file uploads
-
-( This section is here for completeness. if you are building a new application with CGI.pm, you can skip it. )
-
-The original way to process file uploads with CGI.pm was to use param(). The
-value it returns has a dual nature as both a file name and a lightweight
-filehandle. This dual nature is problematic if you following the recommended
-practice of having C<use strict> in your code. Perl will complain when you try
-to use a string as a filehandle. More seriously, it is possible for the remote
-user to type garbage into the upload field, in which case what you get from
-param() is not a filehandle at all, but a string.
-
-To solve this problem the upload() method was added, which always returns a
-lightweight filehandle. This generally works well, but will have trouble
-interoperating with some other modules because the file handle is not derived
-from L<IO::Handle>. So that brings us to current recommendation given above,
-which is to call the handle() method on the file handle returned by upload().
-That upgrades the handle to an IO::Handle. It's a big win for compatibility for
-a small penalty of loading IO::Handle the first time you call it.
-
-
-=head2 CREATING A POPUP MENU
-
- print popup_menu('menu_name',
- ['eenie','meenie','minie'],
- 'meenie');
-
- -or-
-
- %labels = ('eenie'=>'your first choice',
- 'meenie'=>'your second choice',
- 'minie'=>'your third choice');
- %attributes = ('eenie'=>{'class'=>'class of first choice'});
- print popup_menu('menu_name',
- ['eenie','meenie','minie'],
- 'meenie',\%labels,\%attributes);
-
- -or (named parameter style)-
-
- print popup_menu(-name=>'menu_name',
- -values=>['eenie','meenie','minie'],
- -default=>['meenie','minie'],
- -labels=>\%labels,
- -attributes=>\%attributes);
-
-popup_menu() creates a menu.
-
-=over 4
-
-=item 1.
-
-The required first argument is the menu's name (-name).
-
-=item 2.
-
-The required second argument (-values) is an array B<reference>
-containing the list of menu items in the menu. You can pass the
-method an anonymous array, as shown in the example, or a reference to
-a named array, such as "\@foo".
-
-=item 3.
-
-The optional third parameter (-default) is the name of the default
-menu choice. If not specified, the first item will be the default.
-The values of the previous choice will be maintained across
-queries. Pass an array reference to select multiple defaults.
-
-=item 4.
-
-The optional fourth parameter (-labels) is provided for people who
-want to use different values for the user-visible label inside the
-popup menu and the value returned to your script. It's a pointer to an
-hash relating menu values to user-visible labels. If you
-leave this parameter blank, the menu values will be displayed by
-default. (You can also leave a label undefined if you want to).
-
-=item 5.
-
-The optional fifth parameter (-attributes) is provided to assign
-any of the common HTML attributes to an individual menu item. It's
-a pointer to a hash relating menu values to another
-hash with the attribute's name as the key and the
-attribute's value as the value.
-
-=back
-
-When the form is processed, the selected value of the popup menu can
-be retrieved using:
-
- $popup_menu_value = param('menu_name');
-
-=head2 CREATING AN OPTION GROUP
-
-Named parameter style
-
- print popup_menu(-name=>'menu_name',
- -values=>[qw/eenie meenie minie/,
- optgroup(-name=>'optgroup_name',
- -values => ['moe','catch'],
- -attributes=>{'catch'=>{'class'=>'red'}})],
- -labels=>{'eenie'=>'one',
- 'meenie'=>'two',
- 'minie'=>'three'},
- -default=>'meenie');
-
- Old style
- print popup_menu('menu_name',
- ['eenie','meenie','minie',
- optgroup('optgroup_name', ['moe', 'catch'],
- {'catch'=>{'class'=>'red'}})],'meenie',
- {'eenie'=>'one','meenie'=>'two','minie'=>'three'});
-
-optgroup() creates an option group within a popup menu.
-
-=over 4
-
-=item 1.
-
-The required first argument (B<-name>) is the label attribute of the
-optgroup and is B<not> inserted in the parameter list of the query.
-
-=item 2.
-
-The required second argument (B<-values>) is an array reference
-containing the list of menu items in the menu. You can pass the
-method an anonymous array, as shown in the example, or a reference
-to a named array, such as \@foo. If you pass a HASH reference,
-the keys will be used for the menu values, and the values will be
-used for the menu labels (see -labels below).
-
-=item 3.
-
-The optional third parameter (B<-labels>) allows you to pass a reference
-to a hash containing user-visible labels for one or more
-of the menu items. You can use this when you want the user to see one
-menu string, but have the browser return your program a different one.
-If you don't specify this, the value string will be used instead
-("eenie", "meenie" and "minie" in this example). This is equivalent
-to using a hash reference for the -values parameter.
-
-=item 4.
-
-An optional fourth parameter (B<-labeled>) can be set to a true value
-and indicates that the values should be used as the label attribute
-for each option element within the optgroup.
-
-=item 5.
-
-An optional fifth parameter (-novals) can be set to a true value and
-indicates to suppress the val attribute in each option element within
-the optgroup.
-
-See the discussion on optgroup at W3C
-(http://www.w3.org/TR/REC-html40/interact/forms.html#edef-OPTGROUP)
-for details.
-
-=item 6.
-
-An optional sixth parameter (-attributes) is provided to assign
-any of the common HTML attributes to an individual menu item. It's
-a pointer to a hash relating menu values to another
-hash with the attribute's name as the key and the
-attribute's value as the value.
-
-=back
-
-=head2 CREATING A SCROLLING LIST
-
- print scrolling_list('list_name',
- ['eenie','meenie','minie','moe'],
- ['eenie','moe'],5,'true',{'moe'=>{'class'=>'red'}});
- -or-
-
- print scrolling_list('list_name',
- ['eenie','meenie','minie','moe'],
- ['eenie','moe'],5,'true',
- \%labels,%attributes);
-
- -or-
-
- print scrolling_list(-name=>'list_name',
- -values=>['eenie','meenie','minie','moe'],
- -default=>['eenie','moe'],
- -size=>5,
- -multiple=>'true',
- -labels=>\%labels,
- -attributes=>\%attributes);
-
-scrolling_list() creates a scrolling list.
-
-B<Parameters:>
-
-=over 4
-
-=item 1.
-
-The first and second arguments are the list name (-name) and values
-(-values). As in the popup menu, the second argument should be an
-array reference.
-
-=item 2.
-
-The optional third argument (-default) can be either a reference to a
-list containing the values to be selected by default, or can be a
-single value to select. If this argument is missing or undefined,
-then nothing is selected when the list first appears. In the named
-parameter version, you can use the synonym "-defaults" for this
-parameter.
-
-=item 3.
-
-The optional fourth argument is the size of the list (-size).
-
-=item 4.
-
-The optional fifth argument can be set to true to allow multiple
-simultaneous selections (-multiple). Otherwise only one selection
-will be allowed at a time.
-
-=item 5.
-
-The optional sixth argument is a pointer to a hash
-containing long user-visible labels for the list items (-labels).
-If not provided, the values will be displayed.
-
-=item 6.
-
-The optional sixth parameter (-attributes) is provided to assign
-any of the common HTML attributes to an individual menu item. It's
-a pointer to a hash relating menu values to another
-hash with the attribute's name as the key and the
-attribute's value as the value.
-
-When this form is processed, all selected list items will be returned as
-a list under the parameter name 'list_name'. The values of the
-selected items can be retrieved with:
-
- @selected = param('list_name');
-
-=back
-
-=head2 CREATING A GROUP OF RELATED CHECKBOXES
-
- print checkbox_group(-name=>'group_name',
- -values=>['eenie','meenie','minie','moe'],
- -default=>['eenie','moe'],
- -linebreak=>'true',
- -disabled => ['moe'],
- -labels=>\%labels,
- -attributes=>\%attributes);
-
- print checkbox_group('group_name',
- ['eenie','meenie','minie','moe'],
- ['eenie','moe'],'true',\%labels,
- {'moe'=>{'class'=>'red'}});
-
- HTML3-COMPATIBLE BROWSERS ONLY:
-
- print checkbox_group(-name=>'group_name',
- -values=>['eenie','meenie','minie','moe'],
- -rows=2,-columns=>2);
-
-
-checkbox_group() creates a list of checkboxes that are related
-by the same name.
-
-B<Parameters:>
-
-=over 4
-
-=item 1.
-
-The first and second arguments are the checkbox name and values,
-respectively (-name and -values). As in the popup menu, the second
-argument should be an array reference. These values are used for the
-user-readable labels printed next to the checkboxes as well as for the
-values passed to your script in the query string.
-
-=item 2.
-
-The optional third argument (-default) can be either a reference to a
-list containing the values to be checked by default, or can be a
-single value to checked. If this argument is missing or undefined,
-then nothing is selected when the list first appears.
-
-=item 3.
-
-The optional fourth argument (-linebreak) can be set to true to place
-line breaks between the checkboxes so that they appear as a vertical
-list. Otherwise, they will be strung together on a horizontal line.
-
-=back
-
-The optional B<-labels> argument is a pointer to a hash
-relating the checkbox values to the user-visible labels that will be
-printed next to them. If not provided, the values will be used as the
-default.
-
-
-The optional parameters B<-rows>, and B<-columns> cause
-checkbox_group() to return an HTML3 compatible table containing the
-checkbox group formatted with the specified number of rows and
-columns. You can provide just the -columns parameter if you wish;
-checkbox_group will calculate the correct number of rows for you.
-
-The option B<-disabled> takes an array of checkbox values and disables
-them by greying them out (this may not be supported by all browsers).
-
-The optional B<-attributes> argument is provided to assign any of the
-common HTML attributes to an individual menu item. It's a pointer to
-a hash relating menu values to another hash
-with the attribute's name as the key and the attribute's value as the
-value.
-
-The optional B<-tabindex> argument can be used to control the order in which
-radio buttons receive focus when the user presses the tab button. If
-passed a scalar numeric value, the first element in the group will
-receive this tab index and subsequent elements will be incremented by
-one. If given a reference to an array of radio button values, then
-the indexes will be jiggered so that the order specified in the array
-will correspond to the tab order. You can also pass a reference to a
-hash in which the hash keys are the radio button values and the values
-are the tab indexes of each button. Examples:
-
- -tabindex => 100 # this group starts at index 100 and counts up
- -tabindex => ['moe','minie','eenie','meenie'] # tab in this order
- -tabindex => {meenie=>100,moe=>101,minie=>102,eenie=>200} # tab in this order
-
-The optional B<-labelattributes> argument will contain attributes
-attached to the <label> element that surrounds each button.
-
-When the form is processed, all checked boxes will be returned as
-a list under the parameter name 'group_name'. The values of the
-"on" checkboxes can be retrieved with:
-
- @turned_on = param('group_name');
-
-The value returned by checkbox_group() is actually an array of button
-elements. You can capture them and use them within tables, lists,
-or in other creative ways:
-
- @h = checkbox_group(-name=>'group_name',-values=>\@values);
- &use_in_creative_way(@h);
-
-=head2 CREATING A STANDALONE CHECKBOX
-
- print checkbox(-name=>'checkbox_name',
- -checked=>1,
- -value=>'ON',
- -label=>'CLICK ME');
-
- -or-
-
- print checkbox('checkbox_name','checked','ON','CLICK ME');
-
-checkbox() is used to create an isolated checkbox that isn't logically
-related to any others.
-
-B<Parameters:>
-
-=over 4
-
-=item 1.
-
-The first parameter is the required name for the checkbox (-name). It
-will also be used for the user-readable label printed next to the
-checkbox.
-
-=item 2.
-
-The optional second parameter (-checked) specifies that the checkbox
-is turned on by default. Synonyms are -selected and -on.
-
-=item 3.
-
-The optional third parameter (-value) specifies the value of the
-checkbox when it is checked. If not provided, the word "on" is
-assumed.
-
-=item 4.
-
-The optional fourth parameter (-label) is the user-readable label to
-be attached to the checkbox. If not provided, the checkbox name is
-used.
-
-=back
-
-The value of the checkbox can be retrieved using:
-
- $turned_on = param('checkbox_name');
-
-=head2 CREATING A RADIO BUTTON GROUP
-
- print radio_group(-name=>'group_name',
- -values=>['eenie','meenie','minie'],
- -default=>'meenie',
- -linebreak=>'true',
- -labels=>\%labels,
- -attributes=>\%attributes);
-
- -or-
-
- print radio_group('group_name',['eenie','meenie','minie'],
- 'meenie','true',\%labels,\%attributes);
-
-
- HTML3-COMPATIBLE BROWSERS ONLY:
-
- print radio_group(-name=>'group_name',
- -values=>['eenie','meenie','minie','moe'],
- -rows=2,-columns=>2);
-
-radio_group() creates a set of logically-related radio buttons
-(turning one member of the group on turns the others off)
-
-B<Parameters:>
-
-=over 4
-
-=item 1.
-
-The first argument is the name of the group and is required (-name).
-
-=item 2.
-
-The second argument (-values) is the list of values for the radio
-buttons. The values and the labels that appear on the page are
-identical. Pass an array I<reference> in the second argument, either
-using an anonymous array, as shown, or by referencing a named array as
-in "\@foo".
-
-=item 3.
-
-The optional third parameter (-default) is the name of the default
-button to turn on. If not specified, the first item will be the
-default. You can provide a nonexistent button name, such as "-" to
-start up with no buttons selected.
-
-=item 4.
-
-The optional fourth parameter (-linebreak) can be set to 'true' to put
-line breaks between the buttons, creating a vertical list.
-
-=item 5.
-
-The optional fifth parameter (-labels) is a pointer to an associative
-array relating the radio button values to user-visible labels to be
-used in the display. If not provided, the values themselves are
-displayed.
-
-=back
-
-All modern browsers can take advantage of the optional parameters
-B<-rows>, and B<-columns>. These parameters cause radio_group() to
-return an HTML3 compatible table containing the radio group formatted
-with the specified number of rows and columns. You can provide just
-the -columns parameter if you wish; radio_group will calculate the
-correct number of rows for you.
-
-To include row and column headings in the returned table, you
-can use the B<-rowheaders> and B<-colheaders> parameters. Both
-of these accept a pointer to an array of headings to use.
-The headings are just decorative. They don't reorganize the
-interpretation of the radio buttons -- they're still a single named
-unit.
-
-The optional B<-tabindex> argument can be used to control the order in which
-radio buttons receive focus when the user presses the tab button. If
-passed a scalar numeric value, the first element in the group will
-receive this tab index and subsequent elements will be incremented by
-one. If given a reference to an array of radio button values, then
-the indexes will be jiggered so that the order specified in the array
-will correspond to the tab order. You can also pass a reference to a
-hash in which the hash keys are the radio button values and the values
-are the tab indexes of each button. Examples:
-
- -tabindex => 100 # this group starts at index 100 and counts up
- -tabindex => ['moe','minie','eenie','meenie'] # tab in this order
- -tabindex => {meenie=>100,moe=>101,minie=>102,eenie=>200} # tab in this order
-
-
-The optional B<-attributes> argument is provided to assign any of the
-common HTML attributes to an individual menu item. It's a pointer to
-a hash relating menu values to another hash
-with the attribute's name as the key and the attribute's value as the
-value.
-
-The optional B<-labelattributes> argument will contain attributes
-attached to the <label> element that surrounds each button.
-
-When the form is processed, the selected radio button can
-be retrieved using:
-
- $which_radio_button = param('group_name');
-
-The value returned by radio_group() is actually an array of button
-elements. You can capture them and use them within tables, lists,
-or in other creative ways:
-
- @h = radio_group(-name=>'group_name',-values=>\@values);
- &use_in_creative_way(@h);
-
-=head2 CREATING A SUBMIT BUTTON
-
- print submit(-name=>'button_name',
- -value=>'value');
-
- -or-
-
- print submit('button_name','value');
-
-submit() will create the query submission button. Every form
-should have one of these.
-
-B<Parameters:>
-
-=over 4
-
-=item 1.
-
-The first argument (-name) is optional. You can give the button a
-name if you have several submission buttons in your form and you want
-to distinguish between them.
-
-=item 2.
-
-The second argument (-value) is also optional. This gives the button
-a value that will be passed to your script in the query string. The
-name will also be used as the user-visible label.
-
-=item 3.
-
-You can use -label as an alias for -value. I always get confused
-about which of -name and -value changes the user-visible label on the
-button.
-
-=back
-
-You can figure out which button was pressed by using different
-values for each one:
-
- $which_one = param('button_name');
-
-=head2 CREATING A RESET BUTTON
-
- print reset
-
-reset() creates the "reset" button. Note that it restores the
-form to its value from the last time the script was called,
-NOT necessarily to the defaults.
-
-Note that this conflicts with the Perl reset() built-in. Use
-CORE::reset() to get the original reset function.
-
-=head2 CREATING A DEFAULT BUTTON
-
- print defaults('button_label')
-
-defaults() creates a button that, when invoked, will cause the
-form to be completely reset to its defaults, wiping out all the
-changes the user ever made.
-
-=head2 CREATING A HIDDEN FIELD
-
- print hidden(-name=>'hidden_name',
- -default=>['value1','value2'...]);
-
- -or-
-
- print hidden('hidden_name','value1','value2'...);
-
-hidden() produces a text field that can't be seen by the user. It
-is useful for passing state variable information from one invocation
-of the script to the next.
-
-B<Parameters:>
-
-=over 4
-
-=item 1.
-
-The first argument is required and specifies the name of this
-field (-name).
-
-=item 2.
-
-The second argument is also required and specifies its value
-(-default). In the named parameter style of calling, you can provide
-a single value here or a reference to a whole list
-
-=back
-
-Fetch the value of a hidden field this way:
-
- $hidden_value = param('hidden_name');
-
-Note, that just like all the other form elements, the value of a
-hidden field is "sticky". If you want to replace a hidden field with
-some other values after the script has been called once you'll have to
-do it manually:
-
- param('hidden_name','new','values','here');
-
-=head2 CREATING A CLICKABLE IMAGE BUTTON
-
- print image_button(-name=>'button_name',
- -src=>'/source/URL',
- -align=>'MIDDLE');
-
- -or-
-
- print image_button('button_name','/source/URL','MIDDLE');
-
-image_button() produces a clickable image. When it's clicked on the
-position of the click is returned to your script as "button_name.x"
-and "button_name.y", where "button_name" is the name you've assigned
-to it.
-
-B<Parameters:>
-
-=over 4
-
-=item 1.
-
-The first argument (-name) is required and specifies the name of this
-field.
-
-=item 2.
-
-The second argument (-src) is also required and specifies the URL
-
-=item 3.
-
-The third option (-align, optional) is an alignment type, and may be
-TOP, BOTTOM or MIDDLE
-
-=back
-
-Fetch the value of the button this way:
- $x = param('button_name.x');
- $y = param('button_name.y');
-
-=head2 CREATING A JAVASCRIPT ACTION BUTTON
-
- print button(-name=>'button_name',
- -value=>'user visible label',
- -onClick=>"do_something()");
-
- -or-
-
- print button('button_name',"user visible value","do_something()");
-
-button() produces an C<< <input> >> tag with C<type="button">. When it's
-pressed the fragment of JavaScript code pointed to by the B<-onClick> parameter
-will be executed.
-
-=head1 HTTP COOKIES
-
-Browsers support a so-called "cookie" designed to help maintain state
-within a browser session. CGI.pm has several methods that support
-cookies.
-
-A cookie is a name=value pair much like the named parameters in a CGI
-query string. CGI scripts create one or more cookies and send
-them to the browser in the HTTP header. The browser maintains a list
-of cookies that belong to a particular Web server, and returns them
-to the CGI script during subsequent interactions.
-
-In addition to the required name=value pair, each cookie has several
-optional attributes:
-
-=over 4
-
-=item 1. an expiration time
-
-This is a time/date string (in a special GMT format) that indicates
-when a cookie expires. The cookie will be saved and returned to your
-script until this expiration date is reached if the user exits
-the browser and restarts it. If an expiration date isn't specified, the cookie
-will remain active until the user quits the browser.
-
-=item 2. a domain
-
-This is a partial or complete domain name for which the cookie is
-valid. The browser will return the cookie to any host that matches
-the partial domain name. For example, if you specify a domain name
-of ".capricorn.com", then the browser will return the cookie to
-Web servers running on any of the machines "www.capricorn.com",
-"www2.capricorn.com", "feckless.capricorn.com", etc. Domain names
-must contain at least two periods to prevent attempts to match
-on top level domains like ".edu". If no domain is specified, then
-the browser will only return the cookie to servers on the host the
-cookie originated from.
-
-=item 3. a path
-
-If you provide a cookie path attribute, the browser will check it
-against your script's URL before returning the cookie. For example,
-if you specify the path "/cgi-bin", then the cookie will be returned
-to each of the scripts "/cgi-bin/tally.pl", "/cgi-bin/order.pl",
-and "/cgi-bin/customer_service/complain.pl", but not to the script
-"/cgi-private/site_admin.pl". By default, path is set to "/", which
-causes the cookie to be sent to any CGI script on your site.
-
-=item 4. a "secure" flag
-
-If the "secure" attribute is set, the cookie will only be sent to your
-script if the CGI request is occurring on a secure channel, such as SSL.
-
-=back
-
-The interface to HTTP cookies is the B<cookie()> method:
-
- $cookie = cookie(-name=>'sessionID',
- -value=>'xyzzy',
- -expires=>'+1h',
- -path=>'/cgi-bin/database',
- -domain=>'.capricorn.org',
- -secure=>1);
- print header(-cookie=>$cookie);
-
-B<cookie()> creates a new cookie. Its parameters include:
-
-=over 4
-
-=item B<-name>
-
-The name of the cookie (required). This can be any string at all.
-Although browsers limit their cookie names to non-whitespace
-alphanumeric characters, CGI.pm removes this restriction by escaping
-and unescaping cookies behind the scenes.
-
-=item B<-value>
-
-The value of the cookie. This can be any scalar value,
-array reference, or even hash reference. For example,
-you can store an entire hash into a cookie this way:
-
- $cookie=cookie(-name=>'family information',
- -value=>\%childrens_ages);
-
-=item B<-path>
-
-The optional partial path for which this cookie will be valid, as described
-above.
-
-=item B<-domain>
-
-The optional partial domain for which this cookie will be valid, as described
-above.
-
-=item B<-expires>
-
-The optional expiration date for this cookie. The format is as described
-in the section on the B<header()> method:
-
- "+1h" one hour from now
-
-=item B<-secure>
-
-If set to true, this cookie will only be used within a secure
-SSL session.
-
-=back
-
-The cookie created by cookie() must be incorporated into the HTTP
-header within the string returned by the header() method:
-
- use CGI ':standard';
- print header(-cookie=>$my_cookie);
-
-To create multiple cookies, give header() an array reference:
-
- $cookie1 = cookie(-name=>'riddle_name',
- -value=>"The Sphynx's Question");
- $cookie2 = cookie(-name=>'answers',
- -value=>\%answers);
- print header(-cookie=>[$cookie1,$cookie2]);
-
-To retrieve a cookie, request it by name by calling cookie() method
-without the B<-value> parameter. This example uses the object-oriented
-form:
-
- use CGI;
- $query = CGI->new;
- $riddle = $query->cookie('riddle_name');
- %answers = $query->cookie('answers');
-
-Cookies created with a single scalar value, such as the "riddle_name"
-cookie, will be returned in that form. Cookies with array and hash
-values can also be retrieved.
-
-The cookie and CGI namespaces are separate. If you have a parameter
-named 'answers' and a cookie named 'answers', the values retrieved by
-param() and cookie() are independent of each other. However, it's
-simple to turn a CGI parameter into a cookie, and vice-versa:
-
- # turn a CGI parameter into a cookie
- $c=cookie(-name=>'answers',-value=>[param('answers')]);
- # vice-versa
- param(-name=>'answers',-value=>[cookie('answers')]);
-
-If you call cookie() without any parameters, it will return a list of
-the names of all cookies passed to your script:
-
- @cookies = cookie();
-
-See the B<cookie.cgi> example script for some ideas on how to use
-cookies effectively.
-
-=head1 WORKING WITH FRAMES
-
-It's possible for CGI.pm scripts to write into several browser panels
-and windows using the HTML 4 frame mechanism. There are three
-techniques for defining new frames programmatically:
-
-=over 4
-
-=item 1. Create a <Frameset> document
-
-After writing out the HTTP header, instead of creating a standard
-HTML document using the start_html() call, create a <frameset>
-document that defines the frames on the page. Specify your script(s)
-(with appropriate parameters) as the SRC for each of the frames.
-
-There is no specific support for creating <frameset> sections
-in CGI.pm, but the HTML is very simple to write.
-
-=item 2. Specify the destination for the document in the HTTP header
-
-You may provide a B<-target> parameter to the header() method:
-
- print header(-target=>'ResultsWindow');
-
-This will tell the browser to load the output of your script into the
-frame named "ResultsWindow". If a frame of that name doesn't already
-exist, the browser will pop up a new window and load your script's
-document into that. There are a number of magic names that you can
-use for targets. See the HTML C<< <frame> >> documentation for details.
-
-=item 3. Specify the destination for the document in the <form> tag
-
-You can specify the frame to load in the FORM tag itself. With
-CGI.pm it looks like this:
-
- print start_form(-target=>'ResultsWindow');
-
-When your script is reinvoked by the form, its output will be loaded
-into the frame named "ResultsWindow". If one doesn't already exist
-a new window will be created.
-
-=back
-
-The script "frameset.cgi" in the examples directory shows one way to
-create pages in which the fill-out form and the response live in
-side-by-side frames.
-
-=head1 SUPPORT FOR JAVASCRIPT
-
-The usual way to use JavaScript is to define a set of functions in a
-<SCRIPT> block inside the HTML header and then to register event
-handlers in the various elements of the page. Events include such
-things as the mouse passing over a form element, a button being
-clicked, the contents of a text field changing, or a form being
-submitted. When an event occurs that involves an element that has
-registered an event handler, its associated JavaScript code gets
-called.
-
-The elements that can register event handlers include the <BODY> of an
-HTML document, hypertext links, all the various elements of a fill-out
-form, and the form itself. There are a large number of events, and
-each applies only to the elements for which it is relevant. Here is a
-partial list:
-
-=over 4
-
-=item B<onLoad>
-
-The browser is loading the current document. Valid in:
-
- + The HTML <BODY> section only.
-
-=item B<onUnload>
-
-The browser is closing the current page or frame. Valid for:
-
- + The HTML <BODY> section only.
-
-=item B<onSubmit>
-
-The user has pressed the submit button of a form. This event happens
-just before the form is submitted, and your function can return a
-value of false in order to abort the submission. Valid for:
-
- + Forms only.
-
-=item B<onClick>
-
-The mouse has clicked on an item in a fill-out form. Valid for:
-
- + Buttons (including submit, reset, and image buttons)
- + Checkboxes
- + Radio buttons
-
-=item B<onChange>
-
-The user has changed the contents of a field. Valid for:
-
- + Text fields
- + Text areas
- + Password fields
- + File fields
- + Popup Menus
- + Scrolling lists
-
-=item B<onFocus>
-
-The user has selected a field to work with. Valid for:
-
- + Text fields
- + Text areas
- + Password fields
- + File fields
- + Popup Menus
- + Scrolling lists
-
-=item B<onBlur>
-
-The user has deselected a field (gone to work somewhere else). Valid
-for:
-
- + Text fields
- + Text areas
- + Password fields
- + File fields
- + Popup Menus
- + Scrolling lists
-
-=item B<onSelect>
-
-The user has changed the part of a text field that is selected. Valid
-for:
-
- + Text fields
- + Text areas
- + Password fields
- + File fields
-
-=item B<onMouseOver>
-
-The mouse has moved over an element.
-
- + Text fields
- + Text areas
- + Password fields
- + File fields
- + Popup Menus
- + Scrolling lists
-
-=item B<onMouseOut>
-
-The mouse has moved off an element.
-
- + Text fields
- + Text areas
- + Password fields
- + File fields
- + Popup Menus
- + Scrolling lists
-
-=back
-
-In order to register a JavaScript event handler with an HTML element,
-just use the event name as a parameter when you call the corresponding
-CGI method. For example, to have your validateAge() JavaScript code
-executed every time the textfield named "age" changes, generate the
-field like this:
-
- print textfield(-name=>'age',-onChange=>"validateAge(this)");
-
-This example assumes that you've already declared the validateAge()
-function by incorporating it into a <SCRIPT> block. The CGI.pm
-start_html() method provides a convenient way to create this section.
-
-Similarly, you can create a form that checks itself over for
-consistency and alerts the user if some essential value is missing by
-creating it this way:
- print start_form(-onSubmit=>"validateMe(this)");
-
-See the javascript.cgi script for a demonstration of how this all
-works.
-
-
-=head1 LIMITED SUPPORT FOR CASCADING STYLE SHEETS
-
-CGI.pm has limited support for HTML3's cascading style sheets (css).
-To incorporate a stylesheet into your document, pass the
-start_html() method a B<-style> parameter. The value of this
-parameter may be a scalar, in which case it is treated as the source
-URL for the stylesheet, or it may be a hash reference. In the latter
-case you should provide the hash with one or more of B<-src> or
-B<-code>. B<-src> points to a URL where an externally-defined
-stylesheet can be found. B<-code> points to a scalar value to be
-incorporated into a <style> section. Style definitions in B<-code>
-override similarly-named ones in B<-src>, hence the name "cascading."
-
-You may also specify the type of the stylesheet by adding the optional
-B<-type> parameter to the hash pointed to by B<-style>. If not
-specified, the style defaults to 'text/css'.
-
-To refer to a style within the body of your document, add the
-B<-class> parameter to any HTML element:
-
- print h1({-class=>'Fancy'},'Welcome to the Party');
-
-Or define styles on the fly with the B<-style> parameter:
-
- print h1({-style=>'Color: red;'},'Welcome to Hell');
-
-You may also use the new B<span()> element to apply a style to a
-section of text:
-
- print span({-style=>'Color: red;'},
- h1('Welcome to Hell'),
- "Where did that handbasket get to?"
- );
-
-Note that you must import the ":html3" definitions to have the
-B<span()> method available. Here's a quick and dirty example of using
-CSS's. See the CSS specification at
-http://www.w3.org/Style/CSS/ for more information.
-
- use CGI qw/:standard :html3/;
-
- #here's a stylesheet incorporated directly into the page
- $newStyle=<<END;
- <!--
- P.Tip {
- margin-right: 50pt;
- margin-left: 50pt;
- color: red;
- }
- P.Alert {
- font-size: 30pt;
- font-family: sans-serif;
- color: red;
- }
- -->
- END
- print header();
- print start_html( -title=>'CGI with Style',
- -style=>{-src=>'http://www.capricorn.com/style/st1.css',
- -code=>$newStyle}
- );
- print h1('CGI with Style'),
- p({-class=>'Tip'},
- "Better read the cascading style sheet spec before playing with this!"),
- span({-style=>'color: magenta'},
- "Look Mom, no hands!",
- p(),
- "Whooo wee!"
- );
- print end_html;
-
-Pass an array reference to B<-code> or B<-src> in order to incorporate
-multiple stylesheets into your document.
-
-Should you wish to incorporate a verbatim stylesheet that includes
-arbitrary formatting in the header, you may pass a -verbatim tag to
-the -style hash, as follows:
-
-print start_html (-style => {-verbatim => '@import url("/server-common/css/'.$cssFile.'");',
- -src => '/server-common/css/core.css'});
-
-
-This will generate an HTML header that contains this:
-
- <link rel="stylesheet" type="text/css" href="/server-common/css/core.css">
- <style type="text/css">
- @import url("/server-common/css/main.css");
- </style>
-
-Any additional arguments passed in the -style value will be
-incorporated into the <link> tag. For example:
-
- start_html(-style=>{-src=>['/styles/print.css','/styles/layout.css'],
- -media => 'all'});
-
-This will give:
-
- <link rel="stylesheet" type="text/css" href="/styles/print.css" media="all"/>
- <link rel="stylesheet" type="text/css" href="/styles/layout.css" media="all"/>
-
-<p>
-
-To make more complicated <link> tags, use the Link() function
-and pass it to start_html() in the -head argument, as in:
-
- @h = (Link({-rel=>'stylesheet',-type=>'text/css',-src=>'/ss/ss.css',-media=>'all'}),
- Link({-rel=>'stylesheet',-type=>'text/css',-src=>'/ss/fred.css',-media=>'paper'}));
- print start_html({-head=>\@h})
-
-To create primary and "alternate" stylesheet, use the B<-alternate> option:
-
- start_html(-style=>{-src=>[
- {-src=>'/styles/print.css'},
- {-src=>'/styles/alt.css',-alternate=>1}
- ]
- });
-
-=head1 DEBUGGING
-
-If you are running the script from the command line or in the perl
-debugger, you can pass the script a list of keywords or
-parameter=value pairs on the command line or from standard input (you
-don't have to worry about tricking your script into reading from
-environment variables). You can pass keywords like this:
-
- your_script.pl keyword1 keyword2 keyword3
-
-or this:
-
- your_script.pl keyword1+keyword2+keyword3
-
-or this:
-
- your_script.pl name1=value1 name2=value2
-
-or this:
-
- your_script.pl name1=value1&name2=value2
-
-To turn off this feature, use the -no_debug pragma.
-
-To test the POST method, you may enable full debugging with the -debug
-pragma. This will allow you to feed newline-delimited name=value
-pairs to the script on standard input.
-
-When debugging, you can use quotes and backslashes to escape
-characters in the familiar shell manner, letting you place
-spaces and other funny characters in your parameter=value
-pairs:
-
- your_script.pl "name1='I am a long value'" "name2=two\ words"
-
-Finally, you can set the path info for the script by prefixing the first
-name/value parameter with the path followed by a question mark (?):
-
- your_script.pl /your/path/here?name1=value1&name2=value2
-
-=head2 DUMPING OUT ALL THE NAME/VALUE PAIRS
-
-The Dump() method produces a string consisting of all the query's
-name/value pairs formatted nicely as a nested list. This is useful
-for debugging purposes:
-
- print Dump
-
-
-Produces something that looks like:
-
- <ul>
- <li>name1
- <ul>
- <li>value1
- <li>value2
- </ul>
- <li>name2
- <ul>
- <li>value1
- </ul>
- </ul>
-
-As a shortcut, you can interpolate the entire CGI object into a string
-and it will be replaced with the a nice HTML dump shown above:
-
- $query=CGI->new;
- print "<h2>Current Values</h2> $query\n";
-
-=head1 FETCHING ENVIRONMENT VARIABLES
-
-Some of the more useful environment variables can be fetched
-through this interface. The methods are as follows:
-
-=over 4
-
-=item B<Accept()>
-
-Return a list of MIME types that the remote browser accepts. If you
-give this method a single argument corresponding to a MIME type, as in
-Accept('text/html'), it will return a floating point value
-corresponding to the browser's preference for this type from 0.0
-(don't want) to 1.0. Glob types (e.g. text/*) in the browser's accept
-list are handled correctly.
-
-Note that the capitalization changed between version 2.43 and 2.44 in
-order to avoid conflict with Perl's accept() function.
-
-=item B<raw_cookie()>
-
-Returns the HTTP_COOKIE variable. Cookies have a special format, and
-this method call just returns the raw form (?cookie dough). See
-cookie() for ways of setting and retrieving cooked cookies.
-
-Called with no parameters, raw_cookie() returns the packed cookie
-structure. You can separate it into individual cookies by splitting
-on the character sequence "; ". Called with the name of a cookie,
-retrieves the B<unescaped> form of the cookie. You can use the
-regular cookie() method to get the names, or use the raw_fetch()
-method from the CGI::Cookie module.
-
-=item B<user_agent()>
-
-Returns the HTTP_USER_AGENT variable. If you give
-this method a single argument, it will attempt to
-pattern match on it, allowing you to do something
-like user_agent(Mozilla);
-
-=item B<path_info()>
-
-Returns additional path information from the script URL.
-E.G. fetching /cgi-bin/your_script/additional/stuff will result in
-path_info() returning "/additional/stuff".
-
-NOTE: The Microsoft Internet Information Server
-is broken with respect to additional path information. If
-you use the Perl DLL library, the IIS server will attempt to
-execute the additional path information as a Perl script.
-If you use the ordinary file associations mapping, the
-path information will be present in the environment,
-but incorrect. The best thing to do is to avoid using additional
-path information in CGI scripts destined for use with IIS.
-
-=item B<path_translated()>
-
-As per path_info() but returns the additional
-path information translated into a physical path, e.g.
-"/usr/local/etc/httpd/htdocs/additional/stuff".
-
-The Microsoft IIS is broken with respect to the translated
-path as well.
-
-=item B<remote_host()>
-
-Returns either the remote host name or IP address.
-if the former is unavailable.
-
-=item B<remote_addr()>
-
-Returns the remote host IP address, or
-127.0.0.1 if the address is unavailable.
-
-=item B<script_name()>
-Return the script name as a partial URL, for self-referring
-scripts.
-
-=item B<referer()>
-
-Return the URL of the page the browser was viewing
-prior to fetching your script. Not available for all
-browsers.
-
-=item B<auth_type ()>
-
-Return the authorization/verification method in use for this
-script, if any.
-
-=item B<server_name ()>
-
-Returns the name of the server, usually the machine's host
-name.
-
-=item B<virtual_host ()>
-
-When using virtual hosts, returns the name of the host that
-the browser attempted to contact
-
-=item B<server_port ()>
-
-Return the port that the server is listening on.
-
-=item B<virtual_port ()>
-
-Like server_port() except that it takes virtual hosts into account.
-Use this when running with virtual hosts.
-
-=item B<server_software ()>
-
-Returns the server software and version number.
-
-=item B<remote_user ()>
-
-Return the authorization/verification name used for user
-verification, if this script is protected.
-
-=item B<user_name ()>
-
-Attempt to obtain the remote user's name, using a variety of different
-techniques. This only works with older browsers such as Mosaic.
-Newer browsers do not report the user name for privacy reasons!
-
-=item B<request_method()>
-
-Returns the method used to access your script, usually
-one of 'POST', 'GET' or 'HEAD'.
-
-=item B<content_type()>
-
-Returns the content_type of data submitted in a POST, generally
-multipart/form-data or application/x-www-form-urlencoded
-
-=item B<http()>
-
-Called with no arguments returns the list of HTTP environment
-variables, including such things as HTTP_USER_AGENT,
-HTTP_ACCEPT_LANGUAGE, and HTTP_ACCEPT_CHARSET, corresponding to the
-like-named HTTP header fields in the request. Called with the name of
-an HTTP header field, returns its value. Capitalization and the use
-of hyphens versus underscores are not significant.
-
-For example, all three of these examples are equivalent:
-
- $requested_language = http('Accept-language');
- $requested_language = http('Accept_language');
- $requested_language = http('HTTP_ACCEPT_LANGUAGE');
-
-=item B<https()>
-
-The same as I<http()>, but operates on the HTTPS environment variables
-present when the SSL protocol is in effect. Can be used to determine
-whether SSL is turned on.
-
-=back
-
-=head1 USING NPH SCRIPTS
-
-NPH, or "no-parsed-header", scripts bypass the server completely by
-sending the complete HTTP header directly to the browser. This has
-slight performance benefits, but is of most use for taking advantage
-of HTTP extensions that are not directly supported by your server,
-such as server push and PICS headers.
-
-Servers use a variety of conventions for designating CGI scripts as
-NPH. Many Unix servers look at the beginning of the script's name for
-the prefix "nph-". The Macintosh WebSTAR server and Microsoft's
-Internet Information Server, in contrast, try to decide whether a
-program is an NPH script by examining the first line of script output.
-
-
-CGI.pm supports NPH scripts with a special NPH mode. When in this
-mode, CGI.pm will output the necessary extra header information when
-the header() and redirect() methods are
-called.
-
-The Microsoft Internet Information Server requires NPH mode. As of
-version 2.30, CGI.pm will automatically detect when the script is
-running under IIS and put itself into this mode. You do not need to
-do this manually, although it won't hurt anything if you do. However,
-note that if you have applied Service Pack 6, much of the
-functionality of NPH scripts, including the ability to redirect while
-setting a cookie, B<do not work at all> on IIS without a special patch
-from Microsoft. See
-http://web.archive.org/web/20010812012030/http://support.microsoft.com/support/kb/articles/Q280/3/41.ASP
-Non-Parsed Headers Stripped From CGI Applications That Have nph-
-Prefix in Name.
-
-=over 4
-
-=item In the B<use> statement
-
-Simply add the "-nph" pragma to the list of symbols to be imported into
-your script:
-
- use CGI qw(:standard -nph)
-
-=item By calling the B<nph()> method:
-
-Call B<nph()> with a non-zero parameter at any point after using CGI.pm in your program.
-
- CGI->nph(1)
-
-=item By using B<-nph> parameters
-
-in the B<header()> and B<redirect()> statements:
-
- print header(-nph=>1);
-
-=back
-
-=head1 Server Push
-
-CGI.pm provides four simple functions for producing multipart
-documents of the type needed to implement server push. These
-functions were graciously provided by Ed Jordan <ed@fidalgo.net>. To
-import these into your namespace, you must import the ":push" set.
-You are also advised to put the script into NPH mode and to set $| to
-1 to avoid buffering problems.
-
-Here is a simple script that demonstrates server push:
-
- #!/usr/local/bin/perl
- use CGI qw/:push -nph/;
- $| = 1;
- print multipart_init(-boundary=>'----here we go!');
- for (0 .. 4) {
- print multipart_start(-type=>'text/plain'),
- "The current time is ",scalar(localtime),"\n";
- if ($_ < 4) {
- print multipart_end;
- } else {
- print multipart_final;
- }
- sleep 1;
- }
-
-This script initializes server push by calling B<multipart_init()>.
-It then enters a loop in which it begins a new multipart section by
-calling B<multipart_start()>, prints the current local time,
-and ends a multipart section with B<multipart_end()>. It then sleeps
-a second, and begins again. On the final iteration, it ends the
-multipart section with B<multipart_final()> rather than with
-B<multipart_end()>.
-
-=over 4
-
-=item multipart_init()
-
- multipart_init(-boundary=>$boundary);
-
-Initialize the multipart system. The -boundary argument specifies
-what MIME boundary string to use to separate parts of the document.
-If not provided, CGI.pm chooses a reasonable boundary for you.
-
-=item multipart_start()
-
- multipart_start(-type=>$type)
-
-Start a new part of the multipart document using the specified MIME
-type. If not specified, text/html is assumed.
-
-=item multipart_end()
-
- multipart_end()
-
-End a part. You must remember to call multipart_end() once for each
-multipart_start(), except at the end of the last part of the multipart
-document when multipart_final() should be called instead of multipart_end().
-
-=item multipart_final()
-
- multipart_final()
-
-End all parts. You should call multipart_final() rather than
-multipart_end() at the end of the last part of the multipart document.
-
-=back
-
-Users interested in server push applications should also have a look
-at the CGI::Push module.
-
-=head1 Avoiding Denial of Service Attacks
-
-A potential problem with CGI.pm is that, by default, it attempts to
-process form POSTings no matter how large they are. A wily hacker
-could attack your site by sending a CGI script a huge POST of many
-megabytes. CGI.pm will attempt to read the entire POST into a
-variable, growing hugely in size until it runs out of memory. While
-the script attempts to allocate the memory the system may slow down
-dramatically. This is a form of denial of service attack.
-
-Another possible attack is for the remote user to force CGI.pm to
-accept a huge file upload. CGI.pm will accept the upload and store it
-in a temporary directory even if your script doesn't expect to receive
-an uploaded file. CGI.pm will delete the file automatically when it
-terminates, but in the meantime the remote user may have filled up the
-server's disk space, causing problems for other programs.
-
-The best way to avoid denial of service attacks is to limit the amount
-of memory, CPU time and disk space that CGI scripts can use. Some Web
-servers come with built-in facilities to accomplish this. In other
-cases, you can use the shell I<limit> or I<ulimit>
-commands to put ceilings on CGI resource usage.
-
-
-CGI.pm also has some simple built-in protections against denial of
-service attacks, but you must activate them before you can use them.
-These take the form of two global variables in the CGI name space:
-
-=over 4
-
-=item B<$CGI::POST_MAX>
-
-If set to a non-negative integer, this variable puts a ceiling
-on the size of POSTings, in bytes. If CGI.pm detects a POST
-that is greater than the ceiling, it will immediately exit with an error
-message. This value will affect both ordinary POSTs and
-multipart POSTs, meaning that it limits the maximum size of file
-uploads as well. You should set this to a reasonably high
-value, such as 1 megabyte.
-
-=item B<$CGI::DISABLE_UPLOADS>
-
-If set to a non-zero value, this will disable file uploads
-completely. Other fill-out form values will work as usual.
-
-=back
-
-You can use these variables in either of two ways.
-
-=over 4
-
-=item B<1. On a script-by-script basis>
-
-Set the variable at the top of the script, right after the "use" statement:
-
- use CGI qw/:standard/;
- use CGI::Carp 'fatalsToBrowser';
- $CGI::POST_MAX=1024 * 100; # max 100K posts
- $CGI::DISABLE_UPLOADS = 1; # no uploads
-
-=item B<2. Globally for all scripts>
-
-Open up CGI.pm, find the definitions for $POST_MAX and
-$DISABLE_UPLOADS, and set them to the desired values. You'll
-find them towards the top of the file in a subroutine named
-initialize_globals().
-
-=back
-
-An attempt to send a POST larger than $POST_MAX bytes will cause
-I<param()> to return an empty CGI parameter list. You can test for
-this event by checking I<cgi_error()>, either after you create the CGI
-object or, if you are using the function-oriented interface, call
-<param()> for the first time. If the POST was intercepted, then
-cgi_error() will return the message "413 POST too large".
-
-This error message is actually defined by the HTTP protocol, and is
-designed to be returned to the browser as the CGI script's status
- code. For example:
-
- $uploaded_file = param('upload');
- if (!$uploaded_file && cgi_error()) {
- print header(-status=>cgi_error());
- exit 0;
- }
-
-However it isn't clear that any browser currently knows what to do
-with this status code. It might be better just to create an
-HTML page that warns the user of the problem.
-
-=head1 COMPATIBILITY WITH CGI-LIB.PL
-
-To make it easier to port existing programs that use cgi-lib.pl the
-compatibility routine "ReadParse" is provided. Porting is simple:
-
-OLD VERSION
-
- require "cgi-lib.pl";
- &ReadParse;
- print "The value of the antique is $in{antique}.\n";
-
-NEW VERSION
-
- use CGI;
- CGI::ReadParse();
- print "The value of the antique is $in{antique}.\n";
-
-CGI.pm's ReadParse() routine creates a tied variable named %in,
-which can be accessed to obtain the query variables. Like
-ReadParse, you can also provide your own variable. Infrequently
-used features of ReadParse, such as the creation of @in and $in
-variables, are not supported.
-
-Once you use ReadParse, you can retrieve the query object itself
-this way:
-
- $q = $in{CGI};
- print $q->textfield(-name=>'wow',
- -value=>'does this really work?');
-
-This allows you to start using the more interesting features
-of CGI.pm without rewriting your old scripts from scratch.
-
-An even simpler way to mix cgi-lib calls with CGI.pm calls is to import both the
-C<:cgi-lib> and C<:standard> method:
-
- use CGI qw(:cgi-lib :standard);
- &ReadParse;
- print "The price of your purchase is $in{price}.\n";
- print textfield(-name=>'price', -default=>'$1.99');
-
-=head2 Cgi-lib functions that are available in CGI.pm
-
-In compatibility mode, the following cgi-lib.pl functions are
-available for your use:
-
- ReadParse()
- PrintHeader()
- HtmlTop()
- HtmlBot()
- SplitParam()
- MethGet()
- MethPost()
-
-=head2 Cgi-lib functions that are not available in CGI.pm
-
- * Extended form of ReadParse()
- The extended form of ReadParse() that provides for file upload
- spooling, is not available.
-
- * MyBaseURL()
- This function is not available. Use CGI.pm's url() method instead.
-
- * MyFullURL()
- This function is not available. Use CGI.pm's self_url() method
- instead.
-
- * CgiError(), CgiDie()
- These functions are not supported. Look at CGI::Carp for the way I
- prefer to handle error messages.
-
- * PrintVariables()
- This function is not available. To achieve the same effect,
- just print out the CGI object:
-
- use CGI qw(:standard);
- $q = CGI->new;
- print h1("The Variables Are"),$q;
-
- * PrintEnv()
- This function is not available. You'll have to roll your own if you really need it.
-
-=head1 AUTHOR INFORMATION
-
-The CGI.pm distribution is copyright 1995-2007, Lincoln D. Stein. It is
-distributed under GPL and the Artistic License 2.0. It is currently
-maintained by Mark Stosberg with help from many contributors.
-
-Address bug reports and comments to: https://rt.cpan.org/Public/Dist/Display.html?Queue=CGI.pm
-When sending bug reports, please provide the version of CGI.pm, the version of
-Perl, the name and version of your Web server, and the name and version of the
-operating system you are using. If the problem is even remotely browser
-dependent, please provide information about the affected browsers as well.
-
-=head1 CREDITS
-
-Thanks very much to:
-
-=over 4
-
-=item Matt Heffron (heffron@falstaff.css.beckman.com)
-
-=item James Taylor (james.taylor@srs.gov)
-
-=item Scott Anguish <sanguish@digifix.com>
-
-=item Mike Jewell (mlj3u@virginia.edu)
-
-=item Timothy Shimmin (tes@kbs.citri.edu.au)
-
-=item Joergen Haegg (jh@axis.se)
-
-=item Laurent Delfosse (delfosse@delfosse.com)
-
-=item Richard Resnick (applepi1@aol.com)
-
-=item Craig Bishop (csb@barwonwater.vic.gov.au)
-
-=item Tony Curtis (tc@vcpc.univie.ac.at)
-
-=item Tim Bunce (Tim.Bunce@ig.co.uk)
-
-=item Tom Christiansen (tchrist@convex.com)
-
-=item Andreas Koenig (k@franz.ww.TU-Berlin.DE)
-
-=item Tim MacKenzie (Tim.MacKenzie@fulcrum.com.au)
-
-=item Kevin B. Hendricks (kbhend@dogwood.tyler.wm.edu)
-
-=item Stephen Dahmen (joyfire@inxpress.net)
-
-=item Ed Jordan (ed@fidalgo.net)
-
-=item David Alan Pisoni (david@cnation.com)
-
-=item Doug MacEachern (dougm@opengroup.org)
-
-=item Robin Houston (robin@oneworld.org)
-
-=item ...and many many more...
-
-for suggestions and bug fixes.
-
-=back
-
-=head1 A COMPLETE EXAMPLE OF A SIMPLE FORM-BASED SCRIPT
-
-
- #!/usr/local/bin/perl
-
- use CGI ':standard';
-
- print header;
- print start_html("Example CGI.pm Form");
- print "<h1> Example CGI.pm Form</h1>\n";
- print_prompt();
- do_work();
- print_tail();
- print end_html;
-
- sub print_prompt {
- print start_form;
- print "<em>What's your name?</em><br>";
- print textfield('name');
- print checkbox('Not my real name');
-
- print "<p><em>Where can you find English Sparrows?</em><br>";
- print checkbox_group(
- -name=>'Sparrow locations',
- -values=>[England,France,Spain,Asia,Hoboken],
- -linebreak=>'yes',
- -defaults=>[England,Asia]);
-
- print "<p><em>How far can they fly?</em><br>",
- radio_group(
- -name=>'how far',
- -values=>['10 ft','1 mile','10 miles','real far'],
- -default=>'1 mile');
-
- print "<p><em>What's your favorite color?</em> ";
- print popup_menu(-name=>'Color',
- -values=>['black','brown','red','yellow'],
- -default=>'red');
-
- print hidden('Reference','Monty Python and the Holy Grail');
-
- print "<p><em>What have you got there?</em><br>";
- print scrolling_list(
- -name=>'possessions',
- -values=>['A Coconut','A Grail','An Icon',
- 'A Sword','A Ticket'],
- -size=>5,
- -multiple=>'true');
-
- print "<p><em>Any parting comments?</em><br>";
- print textarea(-name=>'Comments',
- -rows=>10,
- -columns=>50);
-
- print "<p>",reset;
- print submit('Action','Shout');
- print submit('Action','Scream');
- print end_form;
- print "<hr>\n";
- }
-
- sub do_work {
-
- print "<h2>Here are the current settings in this form</h2>";
-
- for my $key (param) {
- print "<strong>$key</strong> -> ";
- my @values = param($key);
- print join(", ",@values),"<br>\n";
- }
- }
-
- sub print_tail {
- print <<END;
- <hr>
- <address>Lincoln D. Stein</address><br>
- <a href="/">Home Page</a>
- END
- }
-
-=head1 BUGS
-
-Please report them.
-
-=head1 SEE ALSO
-
-L<CGI::Carp> - provides a L<Carp> implementation tailored to the CGI environment.
-
-L<CGI::Fast> - supports running CGI applications under FastCGI
-
-L<CGI::Pretty> - pretty prints HTML generated by CGI.pm (with a performance penalty)
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/CGI/Apache.pm b/Master/tlpkg/tlperl/lib/CGI/Apache.pm
deleted file mode 100644
index bde3ad971fd..00000000000
--- a/Master/tlpkg/tlperl/lib/CGI/Apache.pm
+++ /dev/null
@@ -1,28 +0,0 @@
-package CGI::Apache;
-use CGI;
-use if $] >= 5.019, 'deprecate';
-
-$VERSION = '1.02';
-
-1;
-__END__
-
-=head1 NAME
-
-CGI::Apache - Backward compatibility module for CGI.pm
-
-=head1 SYNOPSIS
-
-Do not use this module. It is deprecated.
-
-=head1 ABSTRACT
-
-=head1 DESCRIPTION
-
-=head1 AUTHOR INFORMATION
-
-=head1 BUGS
-
-=head1 SEE ALSO
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/CGI/Carp.pm b/Master/tlpkg/tlperl/lib/CGI/Carp.pm
deleted file mode 100644
index 806f05db138..00000000000
--- a/Master/tlpkg/tlperl/lib/CGI/Carp.pm
+++ /dev/null
@@ -1,630 +0,0 @@
-package CGI::Carp;
-use if $] >= 5.019, 'deprecate';
-
-=head1 NAME
-
-B<CGI::Carp> - CGI routines for writing to the HTTPD (or other) error log
-
-=head1 SYNOPSIS
-
- use CGI::Carp;
-
- croak "We're outta here!";
- confess "It was my fault: $!";
- carp "It was your fault!";
- warn "I'm confused";
- die "I'm dying.\n";
-
- use CGI::Carp qw(cluck);
- cluck "I wouldn't do that if I were you";
-
- use CGI::Carp qw(fatalsToBrowser);
- die "Fatal error messages are now sent to browser";
-
-=head1 DESCRIPTION
-
-CGI scripts have a nasty habit of leaving warning messages in the error
-logs that are neither time stamped nor fully identified. Tracking down
-the script that caused the error is a pain. This fixes that. Replace
-the usual
-
- use Carp;
-
-with
-
- use CGI::Carp
-
-The standard warn(), die (), croak(), confess() and carp() calls will
-be replaced with functions that write time-stamped messages to the
-HTTP server error log.
-
-For example:
-
- [Fri Nov 17 21:40:43 1995] test.pl: I'm confused at test.pl line 3.
- [Fri Nov 17 21:40:43 1995] test.pl: Got an error message: Permission denied.
- [Fri Nov 17 21:40:43 1995] test.pl: I'm dying.
-
-=head1 REDIRECTING ERROR MESSAGES
-
-By default, error messages are sent to STDERR. Most HTTPD servers
-direct STDERR to the server's error log. Some applications may wish
-to keep private error logs, distinct from the server's error log, or
-they may wish to direct error messages to STDOUT so that the browser
-will receive them.
-
-The C<carpout()> function is provided for this purpose. Since
-carpout() is not exported by default, you must import it explicitly by
-saying
-
- use CGI::Carp qw(carpout);
-
-The carpout() function requires one argument, a reference to an open
-filehandle for writing errors. It should be called in a C<BEGIN>
-block at the top of the CGI application so that compiler errors will
-be caught. Example:
-
- BEGIN {
- use CGI::Carp qw(carpout);
- open(LOG, ">>/usr/local/cgi-logs/mycgi-log") or
- die("Unable to open mycgi-log: $!\n");
- carpout(LOG);
- }
-
-carpout() does not handle file locking on the log for you at this
-point. Also, note that carpout() does not work with in-memory file
-handles, although a patch would be welcome to address that.
-
-The real STDERR is not closed -- it is moved to CGI::Carp::SAVEERR.
-Some servers, when dealing with CGI scripts, close their connection to
-the browser when the script closes STDOUT and STDERR.
-CGI::Carp::SAVEERR is there to prevent this from happening
-prematurely.
-
-You can pass filehandles to carpout() in a variety of ways. The "correct"
-way according to Tom Christiansen is to pass a reference to a filehandle
-GLOB:
-
- carpout(\*LOG);
-
-This looks weird to mere mortals however, so the following syntaxes are
-accepted as well:
-
- carpout(LOG);
- carpout(main::LOG);
- carpout(main'LOG);
- carpout(\LOG);
- carpout(\'main::LOG');
-
- ... and so on
-
-FileHandle and other objects work as well.
-
-Use of carpout() is not great for performance, so it is recommended
-for debugging purposes or for moderate-use applications. A future
-version of this module may delay redirecting STDERR until one of the
-CGI::Carp methods is called to prevent the performance hit.
-
-=head1 MAKING PERL ERRORS APPEAR IN THE BROWSER WINDOW
-
-If you want to send fatal (die, confess) errors to the browser, import
-the special "fatalsToBrowser" subroutine:
-
- use CGI::Carp qw(fatalsToBrowser);
- die "Bad error here";
-
-Fatal errors will now be echoed to the browser as well as to the log.
-CGI::Carp arranges to send a minimal HTTP header to the browser so
-that even errors that occur in the early compile phase will be seen.
-Nonfatal errors will still be directed to the log file only (unless
-redirected with carpout).
-
-Note that fatalsToBrowser may B<not> work well with mod_perl version 2.0
-and higher.
-
-=head2 Changing the default message
-
-By default, the software error message is followed by a note to
-contact the Webmaster by e-mail with the time and date of the error.
-If this message is not to your liking, you can change it using the
-set_message() routine. This is not imported by default; you should
-import it on the use() line:
-
- use CGI::Carp qw(fatalsToBrowser set_message);
- set_message("It's not a bug, it's a feature!");
-
-You may also pass in a code reference in order to create a custom
-error message. At run time, your code will be called with the text
-of the error message that caused the script to die. Example:
-
- use CGI::Carp qw(fatalsToBrowser set_message);
- BEGIN {
- sub handle_errors {
- my $msg = shift;
- print "<h1>Oh gosh</h1>";
- print "<p>Got an error: $msg</p>";
- }
- set_message(\&handle_errors);
- }
-
-In order to correctly intercept compile-time errors, you should call
-set_message() from within a BEGIN{} block.
-
-=head1 DOING MORE THAN PRINTING A MESSAGE IN THE EVENT OF PERL ERRORS
-
-If fatalsToBrowser in conjunction with set_message does not provide
-you with all of the functionality you need, you can go one step
-further by specifying a function to be executed any time a script
-calls "die", has a syntax error, or dies unexpectedly at runtime
-with a line like "undef->explode();".
-
- use CGI::Carp qw(set_die_handler);
- BEGIN {
- sub handle_errors {
- my $msg = shift;
- print "content-type: text/html\n\n";
- print "<h1>Oh gosh</h1>";
- print "<p>Got an error: $msg</p>";
-
- #proceed to send an email to a system administrator,
- #write a detailed message to the browser and/or a log,
- #etc....
- }
- set_die_handler(\&handle_errors);
- }
-
-Notice that if you use set_die_handler(), you must handle sending
-HTML headers to the browser yourself if you are printing a message.
-
-If you use set_die_handler(), you will most likely interfere with
-the behavior of fatalsToBrowser, so you must use this or that, not
-both.
-
-Using set_die_handler() sets SIG{__DIE__} (as does fatalsToBrowser),
-and there is only one SIG{__DIE__}. This means that if you are
-attempting to set SIG{__DIE__} yourself, you may interfere with
-this module's functionality, or this module may interfere with
-your module's functionality.
-
-=head2 SUPPRESSING PERL ERRORS APPEARING IN THE BROWSER WINDOW
-
-A problem sometimes encountered when using fatalsToBrowser is
-when a C<die()> is done inside an C<eval> body or expression.
-Even though the
-fatalsToBrower support takes precautions to avoid this,
-you still may get the error message printed to STDOUT.
-This may have some undesirable effects when the purpose of doing the
-eval is to determine which of several algorithms is to be used.
-
-By setting C<$CGI::Carp::TO_BROWSER> to 0 you can suppress printing
-the C<die> messages but without all of the complexity of using
-C<set_die_handler>. You can localize this effect to inside C<eval>
-bodies if this is desirable: For example:
-
- eval {
- local $CGI::Carp::TO_BROWSER = 0;
- die "Fatal error messages not sent browser"
- }
- # $@ will contain error message
-
-
-=head1 MAKING WARNINGS APPEAR AS HTML COMMENTS
-
-It is also possible to make non-fatal errors appear as HTML comments
-embedded in the output of your program. To enable this feature,
-export the new "warningsToBrowser" subroutine. Since sending warnings
-to the browser before the HTTP headers have been sent would cause an
-error, any warnings are stored in an internal buffer until you call
-the warningsToBrowser() subroutine with a true argument:
-
- use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
- use CGI qw(:standard);
- print header();
- warningsToBrowser(1);
-
-You may also give a false argument to warningsToBrowser() to prevent
-warnings from being sent to the browser while you are printing some
-content where HTML comments are not allowed:
-
- warningsToBrowser(0); # disable warnings
- print "<script type=\"text/javascript\"><!--\n";
- print_some_javascript_code();
- print "//--></script>\n";
- warningsToBrowser(1); # re-enable warnings
-
-Note: In this respect warningsToBrowser() differs fundamentally from
-fatalsToBrowser(), which you should never call yourself!
-
-=head1 OVERRIDING THE NAME OF THE PROGRAM
-
-CGI::Carp includes the name of the program that generated the error or
-warning in the messages written to the log and the browser window.
-Sometimes, Perl can get confused about what the actual name of the
-executed program was. In these cases, you can override the program
-name that CGI::Carp will use for all messages.
-
-The quick way to do that is to tell CGI::Carp the name of the program
-in its use statement. You can do that by adding
-"name=cgi_carp_log_name" to your "use" statement. For example:
-
- use CGI::Carp qw(name=cgi_carp_log_name);
-
-. If you want to change the program name partway through the program,
-you can use the C<set_progname()> function instead. It is not
-exported by default, you must import it explicitly by saying
-
- use CGI::Carp qw(set_progname);
-
-Once you've done that, you can change the logged name of the program
-at any time by calling
-
- set_progname(new_program_name);
-
-You can set the program back to the default by calling
-
- set_progname(undef);
-
-Note that this override doesn't happen until after the program has
-compiled, so any compile-time errors will still show up with the
-non-overridden program name
-
-=head1 CHANGE LOG
-
-3.51 Added $CGI::Carp::TO_BROWSER
-
-1.29 Patch from Peter Whaite to fix the unfixable problem of CGI::Carp
- not behaving correctly in an eval() context.
-
-1.05 carpout() added and minor corrections by Marc Hedlund
- <hedlund@best.com> on 11/26/95.
-
-1.06 fatalsToBrowser() no longer aborts for fatal errors within
- eval() statements.
-
-1.08 set_message() added and carpout() expanded to allow for FileHandle
- objects.
-
-1.09 set_message() now allows users to pass a code REFERENCE for
- really custom error messages. croak and carp are now
- exported by default. Thanks to Gunther Birznieks for the
- patches.
-
-1.10 Patch from Chris Dean (ctdean@cogit.com) to allow
- module to run correctly under mod_perl.
-
-1.11 Changed order of &gt; and &lt; escapes.
-
-1.12 Changed die() on line 217 to CORE::die to avoid B<-w> warning.
-
-1.13 Added cluck() to make the module orthogonal with Carp.
- More mod_perl related fixes.
-
-1.20 Patch from Ilmari Karonen (perl@itz.pp.sci.fi): Added
- warningsToBrowser(). Replaced <CODE> tags with <PRE> in
- fatalsToBrowser() output.
-
-1.23 ineval() now checks both $^S and inspects the message for the "eval" pattern
- (hack alert!) in order to accommodate various combinations of Perl and
- mod_perl.
-
-1.24 Patch from Scott Gifford (sgifford@suspectclass.com): Add support
- for overriding program name.
-
-1.26 Replaced CORE::GLOBAL::die with the evil $SIG{__DIE__} because the
- former isn't working in some people's hands. There is no such thing
- as reliable exception handling in Perl.
-
-1.27 Replaced tell STDOUT with bytes=tell STDOUT.
-
-=head1 AUTHORS
-
-Copyright 1995-2002, Lincoln D. Stein. All rights reserved.
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-L<Carp>, L<CGI::Base>, L<CGI::BasePlus>, L<CGI::Request>,
-L<CGI::MiniSvr>, L<CGI::Form>, L<CGI::Response>.
-
-=cut
-
-require 5.000;
-use Exporter;
-#use Carp;
-BEGIN {
- require Carp;
- *CORE::GLOBAL::die = \&CGI::Carp::die;
-}
-
-use File::Spec;
-
-@ISA = qw(Exporter);
-@EXPORT = qw(confess croak carp);
-@EXPORT_OK = qw(carpout fatalsToBrowser warningsToBrowser wrap set_message set_die_handler set_progname cluck ^name= die);
-
-$main::SIG{__WARN__}=\&CGI::Carp::warn;
-
-$CGI::Carp::VERSION = '3.64';
-$CGI::Carp::CUSTOM_MSG = undef;
-$CGI::Carp::DIE_HANDLER = undef;
-$CGI::Carp::TO_BROWSER = 1;
-
-
-# fancy import routine detects and handles 'errorWrap' specially.
-sub import {
- my $pkg = shift;
- my(%routines);
- my(@name);
- if (@name=grep(/^name=/,@_))
- {
- my($n) = (split(/=/,$name[0]))[1];
- set_progname($n);
- @_=grep(!/^name=/,@_);
- }
-
- grep($routines{$_}++,@_,@EXPORT);
- $WRAP++ if $routines{'fatalsToBrowser'} || $routines{'wrap'};
- $WARN++ if $routines{'warningsToBrowser'};
- my($oldlevel) = $Exporter::ExportLevel;
- $Exporter::ExportLevel = 1;
- Exporter::import($pkg,keys %routines);
- $Exporter::ExportLevel = $oldlevel;
- $main::SIG{__DIE__} =\&CGI::Carp::die if $routines{'fatalsToBrowser'};
-# $pkg->export('CORE::GLOBAL','die');
-}
-
-# These are the originals
-sub realwarn { CORE::warn(@_); }
-sub realdie { CORE::die(@_); }
-
-sub id {
- my $level = shift;
- my($pack,$file,$line,$sub) = caller($level);
- my($dev,$dirs,$id) = File::Spec->splitpath($file);
- return ($file,$line,$id);
-}
-
-sub stamp {
- my $time = scalar(localtime);
- my $frame = 0;
- my ($id,$pack,$file,$dev,$dirs);
- if (defined($CGI::Carp::PROGNAME)) {
- $id = $CGI::Carp::PROGNAME;
- } else {
- do {
- $id = $file;
- ($pack,$file) = caller($frame++);
- } until !$file;
- }
- ($dev,$dirs,$id) = File::Spec->splitpath($id);
- return "[$time] $id: ";
-}
-
-sub set_progname {
- $CGI::Carp::PROGNAME = shift;
- return $CGI::Carp::PROGNAME;
-}
-
-
-sub warn {
- my $message = shift;
- my($file,$line,$id) = id(1);
- $message .= " at $file line $line.\n" unless $message=~/\n$/;
- _warn($message) if $WARN;
- my $stamp = stamp;
- $message=~s/^/$stamp/gm;
- realwarn $message;
-}
-
-sub _warn {
- my $msg = shift;
- if ($EMIT_WARNINGS) {
- # We need to mangle the message a bit to make it a valid HTML
- # comment. This is done by substituting similar-looking ISO
- # 8859-1 characters for <, > and -. This is a hack.
- $msg =~ tr/<>-/\253\273\255/;
- chomp $msg;
- print STDOUT "<!-- warning: $msg -->\n";
- } else {
- push @WARNINGS, $msg;
- }
-}
-
-
-# The mod_perl package Apache::Registry loads CGI programs by calling
-# eval. These evals don't count when looking at the stack backtrace.
-sub _longmess {
- my $message = Carp::longmess();
- $message =~ s,eval[^\n]+(ModPerl|Apache)/(?:Registry|Dispatch)\w*\.pm.*,,s
- if exists $ENV{MOD_PERL};
- return $message;
-}
-
-sub ineval {
- (exists $ENV{MOD_PERL} ? 0 : $^S) || _longmess() =~ /eval [\{\']/m
-}
-
-sub die {
- # if no argument is passed, propagate $@ like
- # the real die
- my ($arg,@rest) = @_ ? @_
- : $@ ? "$@\t...propagated"
- : "Died"
- ;
-
- &$DIE_HANDLER($arg,@rest) if $DIE_HANDLER;
-
- # the "$arg" is done on purpose!
- # if called as die( $object, 'string' ),
- # all is stringified, just like with
- # the real 'die'
- $arg = join '' => "$arg", @rest if @rest;
-
- my($file,$line,$id) = id(1);
-
- $arg .= " at $file line $line.\n" unless ref $arg or $arg=~/\n$/;
-
- realdie $arg if ineval();
- &fatalsToBrowser($arg) if ($WRAP and $CGI::Carp::TO_BROWSER);
-
- $arg=~s/^/ stamp() /gme if $arg =~ /\n$/ or not exists $ENV{MOD_PERL};
-
- $arg .= "\n" unless $arg =~ /\n$/;
-
- realdie $arg;
-}
-
-sub set_message {
- $CGI::Carp::CUSTOM_MSG = shift;
- return $CGI::Carp::CUSTOM_MSG;
-}
-
-sub set_die_handler {
-
- my ($handler) = shift;
-
- #setting SIG{__DIE__} here is necessary to catch runtime
- #errors which are not called by literally saying "die",
- #such as the line "undef->explode();". however, doing this
- #will interfere with fatalsToBrowser, which also sets
- #SIG{__DIE__} in the import() function above (or the
- #import() function above may interfere with this). for
- #this reason, you should choose to either set the die
- #handler here, or use fatalsToBrowser, not both.
- $main::SIG{__DIE__} = $handler;
-
- $CGI::Carp::DIE_HANDLER = $handler;
-
- return $CGI::Carp::DIE_HANDLER;
-}
-
-sub confess { CGI::Carp::die Carp::longmess @_; }
-sub croak { CGI::Carp::die Carp::shortmess @_; }
-sub carp { CGI::Carp::warn Carp::shortmess @_; }
-sub cluck { CGI::Carp::warn Carp::longmess @_; }
-
-# We have to be ready to accept a filehandle as a reference
-# or a string.
-sub carpout {
- my($in) = @_;
- my($no) = fileno(to_filehandle($in));
- realdie("Invalid filehandle $in\n") unless defined $no;
-
- open(SAVEERR, ">&STDERR");
- open(STDERR, ">&$no") or
- ( print SAVEERR "Unable to redirect STDERR: $!\n" and exit(1) );
-}
-
-sub warningsToBrowser {
- $EMIT_WARNINGS = @_ ? shift : 1;
- _warn(shift @WARNINGS) while $EMIT_WARNINGS and @WARNINGS;
-}
-
-# headers
-sub fatalsToBrowser {
- my $msg = shift;
-
- $msg = "$msg" if ref $msg;
-
- $msg=~s/&/&amp;/g;
- $msg=~s/>/&gt;/g;
- $msg=~s/</&lt;/g;
- $msg=~s/"/&quot;/g;
-
- my($wm) = $ENV{SERVER_ADMIN} ?
- qq[the webmaster (<a href="mailto:$ENV{SERVER_ADMIN}">$ENV{SERVER_ADMIN}</a>)] :
- "this site's webmaster";
- my ($outer_message) = <<END;
-For help, please send mail to $wm, giving this error message
-and the time and date of the error.
-END
- ;
- my $mod_perl = exists $ENV{MOD_PERL};
-
- if ($CUSTOM_MSG) {
- if (ref($CUSTOM_MSG) eq 'CODE') {
- print STDOUT "Content-type: text/html\n\n"
- unless $mod_perl;
- eval {
- &$CUSTOM_MSG($msg); # nicer to perl 5.003 users
- };
- if ($@) { print STDERR q(error while executing the error handler: $@); }
-
- return;
- } else {
- $outer_message = $CUSTOM_MSG;
- }
- }
-
- my $mess = <<END;
-<h1>Software error:</h1>
-<pre>$msg</pre>
-<p>
-$outer_message
-</p>
-END
- ;
-
- if ($mod_perl) {
- my $r;
- if ($ENV{MOD_PERL_API_VERSION} && $ENV{MOD_PERL_API_VERSION} == 2) {
- $mod_perl = 2;
- require Apache2::RequestRec;
- require Apache2::RequestIO;
- require Apache2::RequestUtil;
- require APR::Pool;
- require ModPerl::Util;
- require Apache2::Response;
- $r = Apache2::RequestUtil->request;
- }
- else {
- $r = Apache->request;
- }
- # If bytes have already been sent, then
- # we print the message out directly.
- # Otherwise we make a custom error
- # handler to produce the doc for us.
- if ($r->bytes_sent) {
- $r->print($mess);
- $mod_perl == 2 ? ModPerl::Util::exit(0) : $r->exit;
- } else {
- # MSIE won't display a custom 500 response unless it is >512 bytes!
- if ($ENV{HTTP_USER_AGENT} =~ /MSIE/) {
- $mess = "<!-- " . (' ' x 513) . " -->\n$mess";
- }
- $r->custom_response(500,$mess);
- }
- } else {
- my $bytes_written = eval{tell STDOUT};
- if (defined $bytes_written && $bytes_written > 0) {
- print STDOUT $mess;
- }
- else {
- print STDOUT "Status: 500\n";
- print STDOUT "Content-type: text/html\n\n";
- print STDOUT $mess;
- }
- }
-
- warningsToBrowser(1); # emit warnings before dying
-}
-
-# Cut and paste from CGI.pm so that we don't have the overhead of
-# always loading the entire CGI module.
-sub to_filehandle {
- my $thingy = shift;
- return undef unless $thingy;
- return $thingy if UNIVERSAL::isa($thingy,'GLOB');
- return $thingy if UNIVERSAL::isa($thingy,'FileHandle');
- if (!ref($thingy)) {
- my $caller = 1;
- while (my $package = caller($caller++)) {
- my($tmp) = $thingy=~/[\':]/ ? $thingy : "$package\:\:$thingy";
- return $tmp if defined(fileno($tmp));
- }
- }
- return undef;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/CGI/Cookie.pm b/Master/tlpkg/tlperl/lib/CGI/Cookie.pm
deleted file mode 100644
index 5cc2dc20038..00000000000
--- a/Master/tlpkg/tlperl/lib/CGI/Cookie.pm
+++ /dev/null
@@ -1,541 +0,0 @@
-package CGI::Cookie;
-
-use strict;
-use warnings;
-
-use if $] >= 5.019, 'deprecate';
-
-# See the bottom of this file for the POD documentation. Search for the
-# string '=head'.
-
-# You can run this file through either pod2man or pod2html to produce pretty
-# documentation in manual or html file format (these utilities are part of the
-# Perl 5 distribution).
-
-# Copyright 1995-1999, Lincoln D. Stein. All rights reserved.
-# It may be used and modified freely, but I do request that this copyright
-# notice remain attached to the file. You may modify this module as you
-# wish, but if you redistribute a modified version, please attach a note
-# listing the modifications you have made.
-
-our $VERSION='1.31';
-
-use CGI::Util qw(rearrange unescape escape);
-use overload '""' => \&as_string, 'cmp' => \&compare, 'fallback' => 1;
-
-my $PERLEX = 0;
-# Turn on special checking for ActiveState's PerlEx
-$PERLEX++ if defined($ENV{'GATEWAY_INTERFACE'}) && $ENV{'GATEWAY_INTERFACE'} =~ /^CGI-PerlEx/;
-
-# Turn on special checking for mod_perl
-# PerlEx::DBI tries to fool DBI by setting MOD_PERL
-my $MOD_PERL = 0;
-if (exists $ENV{MOD_PERL} && ! $PERLEX) {
- if (exists $ENV{MOD_PERL_API_VERSION} && $ENV{MOD_PERL_API_VERSION} == 2) {
- $MOD_PERL = 2;
- require Apache2::RequestUtil;
- require APR::Table;
- } else {
- $MOD_PERL = 1;
- require Apache;
- }
-}
-
-# fetch a list of cookies from the environment and
-# return as a hash. the cookies are parsed as normal
-# escaped URL data.
-sub fetch {
- my $class = shift;
- my $raw_cookie = get_raw_cookie(@_) or return;
- return $class->parse($raw_cookie);
-}
-
-# Fetch a list of cookies from the environment or the incoming headers and
-# return as a hash. The cookie values are not unescaped or altered in any way.
- sub raw_fetch {
- my $class = shift;
- my $raw_cookie = get_raw_cookie(@_) or return;
- my %results;
- my($key,$value);
-
- my @pairs = split("[;,] ?",$raw_cookie);
- for my $pair ( @pairs ) {
- $pair =~ s/^\s+|\s+$//g; # trim leading trailing whitespace
- my ( $key, $value ) = split "=", $pair;
-
- $value = defined $value ? $value : '';
- $results{$key} = $value;
- }
- return wantarray ? %results : \%results;
-}
-
-sub get_raw_cookie {
- my $r = shift;
- $r ||= eval { $MOD_PERL == 2 ?
- Apache2::RequestUtil->request() :
- Apache->request } if $MOD_PERL;
-
- return $r->headers_in->{'Cookie'} if $r;
-
- die "Run $r->subprocess_env; before calling fetch()"
- if $MOD_PERL and !exists $ENV{REQUEST_METHOD};
-
- return $ENV{HTTP_COOKIE} || $ENV{COOKIE};
-}
-
-
-sub parse {
- my ($self,$raw_cookie) = @_;
- return wantarray ? () : {} unless $raw_cookie;
-
- my %results;
-
- my @pairs = split("[;,] ?",$raw_cookie);
- for (@pairs) {
- s/^\s+//;
- s/\s+$//;
-
- my($key,$value) = split("=",$_,2);
-
- # Some foreign cookies are not in name=value format, so ignore
- # them.
- next if !defined($value);
- my @values = ();
- if ($value ne '') {
- @values = map unescape($_),split(/[&;]/,$value.'&dmy');
- pop @values;
- }
- $key = unescape($key);
- # A bug in Netscape can cause several cookies with same name to
- # appear. The FIRST one in HTTP_COOKIE is the most recent version.
- $results{$key} ||= $self->new(-name=>$key,-value=>\@values);
- }
- return wantarray ? %results : \%results;
-}
-
-sub new {
- my ( $class, @params ) = @_;
- $class = ref( $class ) || $class;
- # Ignore mod_perl request object--compatibility with Apache::Cookie.
- shift if ref $params[0]
- && eval { $params[0]->isa('Apache::Request::Req') || $params[0]->isa('Apache') };
- my ( $name, $value, $path, $domain, $secure, $expires, $max_age, $httponly )
- = rearrange(
- [
- 'NAME', [ 'VALUE', 'VALUES' ],
- 'PATH', 'DOMAIN',
- 'SECURE', 'EXPIRES',
- 'MAX-AGE','HTTPONLY'
- ],
- @params
- );
- return undef unless defined $name and defined $value;
- my $self = {};
- bless $self, $class;
- $self->name( $name );
- $self->value( $value );
- $path ||= "/";
- $self->path( $path ) if defined $path;
- $self->domain( $domain ) if defined $domain;
- $self->secure( $secure ) if defined $secure;
- $self->expires( $expires ) if defined $expires;
- $self->max_age($expires) if defined $max_age;
- $self->httponly( $httponly ) if defined $httponly;
- return $self;
-}
-
-sub as_string {
- my $self = shift;
- return "" unless $self->name;
-
- no warnings; # some things may be undefined, that's OK.
-
- my $name = escape( $self->name );
- my $value = join "&", map { escape($_) } $self->value;
- my @cookie = ( "$name=$value" );
-
- push @cookie,"domain=".$self->domain if $self->domain;
- push @cookie,"path=".$self->path if $self->path;
- push @cookie,"expires=".$self->expires if $self->expires;
- push @cookie,"max-age=".$self->max_age if $self->max_age;
- push @cookie,"secure" if $self->secure;
- push @cookie,"HttpOnly" if $self->httponly;
-
- return join "; ", @cookie;
-}
-
-sub compare {
- my ( $self, $value ) = @_;
- return "$self" cmp $value;
-}
-
-sub bake {
- my ($self, $r) = @_;
-
- $r ||= eval {
- $MOD_PERL == 2
- ? Apache2::RequestUtil->request()
- : Apache->request
- } if $MOD_PERL;
- if ($r) {
- $r->headers_out->add('Set-Cookie' => $self->as_string);
- } else {
- require CGI;
- print CGI::header(-cookie => $self);
- }
-
-}
-
-# accessors
-sub name {
- my ( $self, $name ) = @_;
- $self->{'name'} = $name if defined $name;
- return $self->{'name'};
-}
-
-sub value {
- my ( $self, $value ) = @_;
- if ( defined $value ) {
- my @values
- = ref $value eq 'ARRAY' ? @$value
- : ref $value eq 'HASH' ? %$value
- : ( $value );
- $self->{'value'} = [@values];
- }
- return wantarray ? @{ $self->{'value'} } : $self->{'value'}->[0];
-}
-
-sub domain {
- my ( $self, $domain ) = @_;
- $self->{'domain'} = lc $domain if defined $domain;
- return $self->{'domain'};
-}
-
-sub secure {
- my ( $self, $secure ) = @_;
- $self->{'secure'} = $secure if defined $secure;
- return $self->{'secure'};
-}
-
-sub expires {
- my ( $self, $expires ) = @_;
- $self->{'expires'} = CGI::Util::expires($expires,'cookie') if defined $expires;
- return $self->{'expires'};
-}
-
-sub max_age {
- my ( $self, $max_age ) = @_;
- $self->{'max-age'} = CGI::Util::expire_calc($max_age)-time() if defined $max_age;
- return $self->{'max-age'};
-}
-
-sub path {
- my ( $self, $path ) = @_;
- $self->{'path'} = $path if defined $path;
- return $self->{'path'};
-}
-
-
-sub httponly { # HttpOnly
- my ( $self, $httponly ) = @_;
- $self->{'httponly'} = $httponly if defined $httponly;
- return $self->{'httponly'};
-}
-
-1;
-
-=head1 NAME
-
-CGI::Cookie - Interface to HTTP Cookies
-
-=head1 SYNOPSIS
-
- use CGI qw/:standard/;
- use CGI::Cookie;
-
- # Create new cookies and send them
- $cookie1 = CGI::Cookie->new(-name=>'ID',-value=>123456);
- $cookie2 = CGI::Cookie->new(-name=>'preferences',
- -value=>{ font => Helvetica,
- size => 12 }
- );
- print header(-cookie=>[$cookie1,$cookie2]);
-
- # fetch existing cookies
- %cookies = CGI::Cookie->fetch;
- $id = $cookies{'ID'}->value;
-
- # create cookies returned from an external source
- %cookies = CGI::Cookie->parse($ENV{COOKIE});
-
-=head1 DESCRIPTION
-
-CGI::Cookie is an interface to HTTP/1.1 cookies, an
-innovation that allows Web servers to store persistent information on
-the browser's side of the connection. Although CGI::Cookie is
-intended to be used in conjunction with CGI.pm (and is in fact used by
-it internally), you can use this module independently.
-
-For full information on cookies see
-
- http://tools.ietf.org/html/rfc2109
- http://tools.ietf.org/html/rfc2965
- http://tools.ietf.org/html/draft-ietf-httpstate-cookie
-
-=head1 USING CGI::Cookie
-
-CGI::Cookie is object oriented. Each cookie object has a name and a
-value. The name is any scalar value. The value is any scalar or
-array value (associative arrays are also allowed). Cookies also have
-several optional attributes, including:
-
-=over 4
-
-=item B<1. expiration date>
-
-The expiration date tells the browser how long to hang on to the
-cookie. If the cookie specifies an expiration date in the future, the
-browser will store the cookie information in a disk file and return it
-to the server every time the user reconnects (until the expiration
-date is reached). If the cookie species an expiration date in the
-past, the browser will remove the cookie from the disk file. If the
-expiration date is not specified, the cookie will persist only until
-the user quits the browser.
-
-=item B<2. domain>
-
-This is a partial or complete domain name for which the cookie is
-valid. The browser will return the cookie to any host that matches
-the partial domain name. For example, if you specify a domain name
-of ".capricorn.com", then the browser will return the cookie to
-Web servers running on any of the machines "www.capricorn.com",
-"ftp.capricorn.com", "feckless.capricorn.com", etc. Domain names
-must contain at least two periods to prevent attempts to match
-on top level domains like ".edu". If no domain is specified, then
-the browser will only return the cookie to servers on the host the
-cookie originated from.
-
-=item B<3. path>
-
-If you provide a cookie path attribute, the browser will check it
-against your script's URL before returning the cookie. For example,
-if you specify the path "/cgi-bin", then the cookie will be returned
-to each of the scripts "/cgi-bin/tally.pl", "/cgi-bin/order.pl", and
-"/cgi-bin/customer_service/complain.pl", but not to the script
-"/cgi-private/site_admin.pl". By default, the path is set to "/", so
-that all scripts at your site will receive the cookie.
-
-=item B<4. secure flag>
-
-If the "secure" attribute is set, the cookie will only be sent to your
-script if the CGI request is occurring on a secure channel, such as SSL.
-
-=item B<5. httponly flag>
-
-If the "httponly" attribute is set, the cookie will only be accessible
-through HTTP Requests. This cookie will be inaccessible via JavaScript
-(to prevent XSS attacks).
-
-This feature is supported by nearly all modern browsers.
-
-See these URLs for more information:
-
- http://msdn.microsoft.com/en-us/library/ms533046.aspx
- http://www.browserscope.org/?category=security&v=top
-
-=back
-
-=head2 Creating New Cookies
-
- my $c = CGI::Cookie->new(-name => 'foo',
- -value => 'bar',
- -expires => '+3M',
- -domain => '.capricorn.com',
- -path => '/cgi-bin/database',
- -secure => 1
- );
-
-Create cookies from scratch with the B<new> method. The B<-name> and
-B<-value> parameters are required. The name must be a scalar value.
-The value can be a scalar, an array reference, or a hash reference.
-(At some point in the future cookies will support one of the Perl
-object serialization protocols for full generality).
-
-B<-expires> accepts any of the relative or absolute date formats
-recognized by CGI.pm, for example "+3M" for three months in the
-future. See CGI.pm's documentation for details.
-
-B<-max-age> accepts the same data formats as B<< -expires >>, but sets a
-relative value instead of an absolute like B<< -expires >>. This is intended to be
-more secure since a clock could be changed to fake an absolute time. In
-practice, as of 2011, C<< -max-age >> still does not enjoy the widespread support
-that C<< -expires >> has. You can set both, and browsers that support
-C<< -max-age >> should ignore the C<< Expires >> header. The drawback
-to this approach is the bit of bandwidth for sending an extra header on each cookie.
-
-B<-domain> points to a domain name or to a fully qualified host name.
-If not specified, the cookie will be returned only to the Web server
-that created it.
-
-B<-path> points to a partial URL on the current server. The cookie
-will be returned to all URLs beginning with the specified path. If
-not specified, it defaults to '/', which returns the cookie to all
-pages at your site.
-
-B<-secure> if set to a true value instructs the browser to return the
-cookie only when a cryptographic protocol is in use.
-
-B<-httponly> if set to a true value, the cookie will not be accessible
-via JavaScript.
-
-For compatibility with Apache::Cookie, you may optionally pass in
-a mod_perl request object as the first argument to C<new()>. It will
-simply be ignored:
-
- my $c = CGI::Cookie->new($r,
- -name => 'foo',
- -value => ['bar','baz']);
-
-=head2 Sending the Cookie to the Browser
-
-The simplest way to send a cookie to the browser is by calling the bake()
-method:
-
- $c->bake;
-
-This will print the Set-Cookie HTTP header to STDOUT using CGI.pm. CGI.pm
-will be loaded for this purpose if it is not already. Otherwise CGI.pm is not
-required or used by this module.
-
-Under mod_perl, pass in an Apache request object:
-
- $c->bake($r);
-
-If you want to set the cookie yourself, Within a CGI script you can send
-a cookie to the browser by creating one or more Set-Cookie: fields in the
-HTTP header. Here is a typical sequence:
-
- my $c = CGI::Cookie->new(-name => 'foo',
- -value => ['bar','baz'],
- -expires => '+3M');
-
- print "Set-Cookie: $c\n";
- print "Content-Type: text/html\n\n";
-
-To send more than one cookie, create several Set-Cookie: fields.
-
-If you are using CGI.pm, you send cookies by providing a -cookie
-argument to the header() method:
-
- print header(-cookie=>$c);
-
-Mod_perl users can set cookies using the request object's header_out()
-method:
-
- $r->headers_out->set('Set-Cookie' => $c);
-
-Internally, Cookie overloads the "" operator to call its as_string()
-method when incorporated into the HTTP header. as_string() turns the
-Cookie's internal representation into an RFC-compliant text
-representation. You may call as_string() yourself if you prefer:
-
- print "Set-Cookie: ",$c->as_string,"\n";
-
-=head2 Recovering Previous Cookies
-
- %cookies = CGI::Cookie->fetch;
-
-B<fetch> returns an associative array consisting of all cookies
-returned by the browser. The keys of the array are the cookie names. You
-can iterate through the cookies this way:
-
- %cookies = CGI::Cookie->fetch;
- for (keys %cookies) {
- do_something($cookies{$_});
- }
-
-In a scalar context, fetch() returns a hash reference, which may be more
-efficient if you are manipulating multiple cookies.
-
-CGI.pm uses the URL escaping methods to save and restore reserved characters
-in its cookies. If you are trying to retrieve a cookie set by a foreign server,
-this escaping method may trip you up. Use raw_fetch() instead, which has the
-same semantics as fetch(), but performs no unescaping.
-
-You may also retrieve cookies that were stored in some external
-form using the parse() class method:
-
- $COOKIES = `cat /usr/tmp/Cookie_stash`;
- %cookies = CGI::Cookie->parse($COOKIES);
-
-If you are in a mod_perl environment, you can save some overhead by
-passing the request object to fetch() like this:
-
- CGI::Cookie->fetch($r);
-
-If the value passed to parse() is undefined, an empty array will returned in list
-context, and an empty hashref will be returned in scalar context.
-
-=head2 Manipulating Cookies
-
-Cookie objects have a series of accessor methods to get and set cookie
-attributes. Each accessor has a similar syntax. Called without
-arguments, the accessor returns the current value of the attribute.
-Called with an argument, the accessor changes the attribute and
-returns its new value.
-
-=over 4
-
-=item B<name()>
-
-Get or set the cookie's name. Example:
-
- $name = $c->name;
- $new_name = $c->name('fred');
-
-=item B<value()>
-
-Get or set the cookie's value. Example:
-
- $value = $c->value;
- @new_value = $c->value(['a','b','c','d']);
-
-B<value()> is context sensitive. In a list context it will return
-the current value of the cookie as an array. In a scalar context it
-will return the B<first> value of a multivalued cookie.
-
-=item B<domain()>
-
-Get or set the cookie's domain.
-
-=item B<path()>
-
-Get or set the cookie's path.
-
-=item B<expires()>
-
-Get or set the cookie's expiration time.
-
-=back
-
-
-=head1 AUTHOR INFORMATION
-
-Copyright 1997-1998, Lincoln D. Stein. All rights reserved.
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-Address bug reports and comments to: lstein@cshl.org
-
-=head1 BUGS
-
-This section intentionally left blank.
-
-=head1 SEE ALSO
-
-L<CGI::Carp>, L<CGI>
-
-L<RFC 2109|http://www.ietf.org/rfc/rfc2109.txt>, L<RFC 2695|http://www.ietf.org/rfc/rfc2965.txt>
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/CGI/Fast.pm b/Master/tlpkg/tlperl/lib/CGI/Fast.pm
deleted file mode 100644
index 01f7359c1c2..00000000000
--- a/Master/tlpkg/tlperl/lib/CGI/Fast.pm
+++ /dev/null
@@ -1,221 +0,0 @@
-package CGI::Fast;
-use strict;
-use if $] >= 5.019, 'deprecate';
-
-# A way to say "use warnings" that's compatible with even older perls.
-# making it local will not affect the code that loads this module
-# and since we're not in a BLOCK, warnings are enabled until the EOF
-local $^W = 1;
-
-# See the bottom of this file for the POD documentation. Search for the
-# string '=head'.
-
-# You can run this file through either pod2man or pod2html to produce pretty
-# documentation in manual or html file format (these utilities are part of the
-# Perl 5 distribution).
-
-# Copyright 1995,1996, Lincoln D. Stein. All rights reserved.
-# It may be used and modified freely, but I do request that this copyright
-# notice remain attached to the file. You may modify this module as you
-# wish, but if you redistribute a modified version, please attach a note
-# listing the modifications you have made.
-
-$CGI::Fast::VERSION='1.10';
-
-use CGI;
-use FCGI;
-# use vars works like "our", but is compatible with older Perls.
-use vars qw(
- @ISA
- $ignore
-);
-@ISA = ('CGI');
-
-# workaround for known bug in libfcgi
-while (($ignore) = each %ENV) { }
-
-# override the initialization behavior so that
-# state is NOT maintained between invocations
-sub save_request {
- # no-op
-}
-
-# If ENV{FCGI_SOCKET_PATH} is specified, we maintain a FCGI Request handle
-# in this package variable.
-use vars qw($Ext_Request);
-BEGIN {
- # If ENV{FCGI_SOCKET_PATH} is given, explicitly open the socket.
- if ($ENV{FCGI_SOCKET_PATH}) {
- my $path = $ENV{FCGI_SOCKET_PATH};
- my $backlog = $ENV{FCGI_LISTEN_QUEUE} || 100;
- my $socket = FCGI::OpenSocket( $path, $backlog );
- $Ext_Request = FCGI::Request( \*STDIN, \*STDOUT, \*STDERR,
- \%ENV, $socket, 1 );
- }
- else {
- $Ext_Request = FCGI::Request();
- }
-}
-
-sub new {
- my ($self, $initializer, @param) = @_;
- unless (defined $initializer) {
- return undef unless $Ext_Request->Accept() >= 0;
- }
- CGI->_reset_globals;
- $self->_setup_symbols(@CGI::SAVED_SYMBOLS) if @CGI::SAVED_SYMBOLS;
- return $CGI::Q = $self->SUPER::new($initializer, @param);
-}
-
-1;
-
-=head1 NAME
-
-CGI::Fast - CGI Interface for Fast CGI
-
-=head1 SYNOPSIS
-
- use CGI::Fast qw(:standard);
- $COUNTER = 0;
- while (new CGI::Fast) {
- print header;
- print start_html("Fast CGI Rocks");
- print
- h1("Fast CGI Rocks"),
- "Invocation number ",b($COUNTER++),
- " PID ",b($$),".",
- hr;
- print end_html;
- }
-
-=head1 DESCRIPTION
-
-CGI::Fast is a subclass of the CGI object created by CGI.pm. It is
-specialized to work well FCGI module, which greatly speeds up CGI
-scripts by turning them into persistently running server processes.
-Scripts that perform time-consuming initialization processes, such as
-loading large modules or opening persistent database connections, will
-see large performance improvements.
-
-=head1 OTHER PIECES OF THE PUZZLE
-
-In order to use CGI::Fast you'll need the FCGI module. See
-http://www.cpan.org/ for details.
-
-=head1 WRITING FASTCGI PERL SCRIPTS
-
-FastCGI scripts are persistent: one or more copies of the script
-are started up when the server initializes, and stay around until
-the server exits or they die a natural death. After performing
-whatever one-time initialization it needs, the script enters a
-loop waiting for incoming connections, processing the request, and
-waiting some more.
-
-A typical FastCGI script will look like this:
-
- #!/usr/bin/perl
- use CGI::Fast;
- &do_some_initialization();
- while ($q = new CGI::Fast) {
- &process_request($q);
- }
-
-Each time there's a new request, CGI::Fast returns a
-CGI object to your loop. The rest of the time your script
-waits in the call to new(). When the server requests that
-your script be terminated, new() will return undef. You can
-of course exit earlier if you choose. A new version of the
-script will be respawned to take its place (this may be
-necessary in order to avoid Perl memory leaks in long-running
-scripts).
-
-CGI.pm's default CGI object mode also works. Just modify the loop
-this way:
-
- while (new CGI::Fast) {
- &process_request;
- }
-
-Calls to header(), start_form(), etc. will all operate on the
-current request.
-
-=head1 INSTALLING FASTCGI SCRIPTS
-
-See the FastCGI developer's kit documentation for full details. On
-the Apache server, the following line must be added to srm.conf:
-
- AddType application/x-httpd-fcgi .fcgi
-
-FastCGI scripts must end in the extension .fcgi. For each script you
-install, you must add something like the following to srm.conf:
-
- FastCgiServer /usr/etc/httpd/fcgi-bin/file_upload.fcgi -processes 2
-
-This instructs Apache to launch two copies of file_upload.fcgi at
-startup time.
-
-=head1 USING FASTCGI SCRIPTS AS CGI SCRIPTS
-
-Any script that works correctly as a FastCGI script will also work
-correctly when installed as a vanilla CGI script. However it will
-not see any performance benefit.
-
-=head1 EXTERNAL FASTCGI SERVER INVOCATION
-
-FastCGI supports a TCP/IP transport mechanism which allows FastCGI scripts to run
-external to the webserver, perhaps on a remote machine. To configure the
-webserver to connect to an external FastCGI server, you would add the following
-to your srm.conf:
-
- FastCgiExternalServer /usr/etc/httpd/fcgi-bin/file_upload.fcgi -host sputnik:8888
-
-Two environment variables affect how the C<CGI::Fast> object is created,
-allowing C<CGI::Fast> to be used as an external FastCGI server. (See C<FCGI>
-documentation for C<FCGI::OpenSocket> for more information.)
-
-=over
-
-=item FCGI_SOCKET_PATH
-
-The address (TCP/IP) or path (UNIX Domain) of the socket the external FastCGI
-script to which bind an listen for incoming connections from the web server.
-
-=item FCGI_LISTEN_QUEUE
-
-Maximum length of the queue of pending connections.
-
-=back
-
-For example:
-
- #!/usr/local/bin/perl # must be a FastCGI version of perl!
- use CGI::Fast;
- &do_some_initialization();
- $ENV{FCGI_SOCKET_PATH} = "sputnik:8888";
- $ENV{FCGI_LISTEN_QUEUE} = 100;
- while ($q = new CGI::Fast) {
- &process_request($q);
- }
-
-=head1 CAVEATS
-
-I haven't tested this very much.
-
-=head1 AUTHOR INFORMATION
-
-Copyright 1996-1998, Lincoln D. Stein. All rights reserved.
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-Address bug reports and comments to: lstein@cshl.org
-
-=head1 BUGS
-
-This section intentionally left blank.
-
-=head1 SEE ALSO
-
-L<CGI::Carp>, L<CGI>
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/CGI/Pretty.pm b/Master/tlpkg/tlperl/lib/CGI/Pretty.pm
deleted file mode 100644
index acded21e6d8..00000000000
--- a/Master/tlpkg/tlperl/lib/CGI/Pretty.pm
+++ /dev/null
@@ -1,313 +0,0 @@
-package CGI::Pretty;
-
-# See the bottom of this file for the POD documentation. Search for the
-# string '=head'.
-
-# You can run this file through either pod2man or pod2html to produce pretty
-# documentation in manual or html file format (these utilities are part of the
-# Perl 5 distribution).
-
-use strict;
-use if $] >= 5.019, 'deprecate';
-use CGI ();
-
-$CGI::Pretty::VERSION = '3.64';
-$CGI::DefaultClass = __PACKAGE__;
-$CGI::Pretty::AutoloadClass = 'CGI';
-@CGI::Pretty::ISA = qw( CGI );
-
-initialize_globals();
-
-sub _prettyPrint {
- my $input = shift;
- return if !$$input;
- return if !$CGI::Pretty::LINEBREAK || !$CGI::Pretty::INDENT;
-
-# print STDERR "'", $$input, "'\n";
-
- foreach my $i ( @CGI::Pretty::AS_IS ) {
- if ( $$input =~ m{</$i>}si ) {
- my ( $a, $b, $c ) = $$input =~ m{(.*)(<$i[\s/>].*?</$i>)(.*)}si;
- next if !$b;
- $a ||= "";
- $c ||= "";
-
- _prettyPrint( \$a ) if $a;
- _prettyPrint( \$c ) if $c;
-
- $b ||= "";
- $$input = "$a$b$c";
- return;
- }
- }
- $$input =~ s/$CGI::Pretty::LINEBREAK/$CGI::Pretty::LINEBREAK$CGI::Pretty::INDENT/g;
-}
-
-sub comment {
- my($self,@p) = CGI::self_or_CGI(@_);
-
- my $s = "@p";
- $s =~ s/$CGI::Pretty::LINEBREAK/$CGI::Pretty::LINEBREAK$CGI::Pretty::INDENT/g if $CGI::Pretty::LINEBREAK;
-
- return $self->SUPER::comment( "$CGI::Pretty::LINEBREAK$CGI::Pretty::INDENT$s$CGI::Pretty::LINEBREAK" ) . $CGI::Pretty::LINEBREAK;
-}
-
-sub _make_tag_func {
- my ($self,$tagname) = @_;
-
- # As Lincoln as noted, the last else clause is VERY hairy, and it
- # took me a while to figure out what I was trying to do.
- # What it does is look for tags that shouldn't be indented (e.g. PRE)
- # and makes sure that when we nest tags, those tags don't get
- # indented.
- # For an example, try print td( pre( "hello\nworld" ) );
- # If we didn't care about stuff like that, the code would be
- # MUCH simpler. BTW: I won't claim to be a regular expression
- # guru, so if anybody wants to contribute something that would
- # be quicker, easier to read, etc, I would be more than
- # willing to put it in - Brian
-
- my $func = qq"
- sub $tagname {";
-
- $func .= q'
- shift if $_[0] &&
- (ref($_[0]) &&
- (substr(ref($_[0]),0,3) eq "CGI" ||
- UNIVERSAL::isa($_[0],"CGI")));
- my($attr) = "";
- if (ref($_[0]) && ref($_[0]) eq "HASH") {
- my(@attr) = make_attributes(shift()||undef,1);
- $attr = " @attr" if @attr;
- }';
-
- if ($tagname=~/start_(\w+)/i) {
- $func .= qq!
- return "<\L$1\E\$attr>\$CGI::Pretty::LINEBREAK";} !;
- } elsif ($tagname=~/end_(\w+)/i) {
- $func .= qq!
- return "<\L/$1\E>\$CGI::Pretty::LINEBREAK"; } !;
- } else {
- $func .= qq#
- return ( \$CGI::XHTML ? "<\L$tagname\E\$attr />" : "<\L$tagname\E\$attr>" ) .
- \$CGI::Pretty::LINEBREAK unless \@_;
- my(\$tag,\$untag) = ("<\L$tagname\E\$attr>","</\L$tagname>\E");
-
- my \%ASIS = map { lc("\$_") => 1 } \@CGI::Pretty::AS_IS;
- my \@args;
- if ( \$CGI::Pretty::LINEBREAK || \$CGI::Pretty::INDENT ) {
- if(ref(\$_[0]) eq 'ARRAY') {
- \@args = \@{\$_[0]}
- } else {
- foreach (\@_) {
- \$args[0] .= \$_;
- \$args[0] .= \$CGI::Pretty::LINEBREAK if \$args[0] !~ /\$CGI::Pretty::LINEBREAK\$/ && 0;
- chomp \$args[0] if exists \$ASIS{ "\L$tagname\E" };
-
- \$args[0] .= \$" if \$args[0] !~ /\$CGI::Pretty::LINEBREAK\$/ && 1;
- }
- chop \$args[0] unless \$" eq "";
- }
- }
- else {
- \@args = ref(\$_[0]) eq 'ARRAY' ? \@{\$_[0]} : "\@_";
- }
-
- my \@result;
- if ( exists \$ASIS{ "\L$tagname\E" } ) {
- \@result = map { "\$tag\$_\$untag" } \@args;
- }
- else {
- \@result = map {
- chomp;
- my \$tmp = \$_;
- CGI::Pretty::_prettyPrint( \\\$tmp );
- \$tag . \$CGI::Pretty::LINEBREAK .
- \$CGI::Pretty::INDENT . \$tmp . \$CGI::Pretty::LINEBREAK .
- \$untag . \$CGI::Pretty::LINEBREAK
- } \@args;
- }
- if (\$CGI::Pretty::LINEBREAK || \$CGI::Pretty::INDENT) {
- return join ("", \@result);
- } else {
- return "\@result";
- }
- }#;
- }
-
- return $func;
-}
-
-sub start_html {
- return CGI::start_html( @_ ) . $CGI::Pretty::LINEBREAK;
-}
-
-sub end_html {
- return CGI::end_html( @_ ) . $CGI::Pretty::LINEBREAK;
-}
-
-sub new {
- my $class = shift;
- my $this = $class->SUPER::new( @_ );
-
- if ($CGI::MOD_PERL) {
- if ($CGI::MOD_PERL == 1) {
- my $r = Apache->request;
- $r->register_cleanup(\&CGI::Pretty::_reset_globals);
- }
- else {
- my $r = Apache2::RequestUtil->request;
- $r->pool->cleanup_register(\&CGI::Pretty::_reset_globals);
- }
- }
- $class->_reset_globals if $CGI::PERLEX;
-
- return bless $this, $class;
-}
-
-sub initialize_globals {
- # This is the string used for indentation of tags
- $CGI::Pretty::INDENT = "\t";
-
- # This is the string used for separation between tags
- $CGI::Pretty::LINEBREAK = $/;
-
- # These tags are not prettify'd.
- # When this list is updated, also update the docs.
- @CGI::Pretty::AS_IS = qw( a pre code script textarea td );
-
- 1;
-}
-sub _reset_globals { initialize_globals(); }
-
-# ugly, but quick fix
-sub import {
- my $self = shift;
- no strict 'refs';
- ${ "$self\::AutoloadClass" } = 'CGI';
-
- # This causes modules to clash.
- undef %CGI::EXPORT;
- undef %CGI::EXPORT;
-
- $self->_setup_symbols(@_);
- my ($callpack, $callfile, $callline) = caller;
-
- # To allow overriding, search through the packages
- # Till we find one in which the correct subroutine is defined.
- my @packages = ($self,@{"$self\:\:ISA"});
- foreach my $sym (keys %CGI::EXPORT) {
- my $pck;
- my $def = ${"$self\:\:AutoloadClass"} || $CGI::DefaultClass;
- foreach $pck (@packages) {
- if (defined(&{"$pck\:\:$sym"})) {
- $def = $pck;
- last;
- }
- }
- *{"${callpack}::$sym"} = \&{"$def\:\:$sym"};
- }
-}
-
-1;
-
-=head1 NAME
-
-CGI::Pretty - module to produce nicely formatted HTML code
-
-=head1 SYNOPSIS
-
- use CGI::Pretty qw( :html3 );
-
- # Print a table with a single data element
- print table( TR( td( "foo" ) ) );
-
-=head1 DESCRIPTION
-
-CGI::Pretty is a module that derives from CGI. It's sole function is to
-allow users of CGI to output nicely formatted HTML code.
-
-When using the CGI module, the following code:
- print table( TR( td( "foo" ) ) );
-
-produces the following output:
- <TABLE><TR><TD>foo</TD></TR></TABLE>
-
-If a user were to create a table consisting of many rows and many columns,
-the resultant HTML code would be quite difficult to read since it has no
-carriage returns or indentation.
-
-CGI::Pretty fixes this problem. What it does is add a carriage
-return and indentation to the HTML code so that one can easily read
-it.
-
- print table( TR( td( "foo" ) ) );
-
-now produces the following output:
- <TABLE>
- <TR>
- <TD>foo</TD>
- </TR>
- </TABLE>
-
-=head2 Recommendation for when to use CGI::Pretty
-
-CGI::Pretty is far slower than using CGI.pm directly. A benchmark showed that
-it could be about 10 times slower. Adding newlines and spaces may alter the
-rendered appearance of HTML. Also, the extra newlines and spaces also make the
-file size larger, making the files take longer to download.
-
-With all those considerations, it is recommended that CGI::Pretty be used
-primarily for debugging.
-
-=head2 Tags that won't be formatted
-
-The following tags are not formatted: <a>, <pre>, <code>, <script>, <textarea>, and <td>.
-If these tags were formatted, the
-user would see the extra indentation on the web browser causing the page to
-look different than what would be expected. If you wish to add more tags to
-the list of tags that are not to be touched, push them onto the C<@AS_IS> array:
-
- push @CGI::Pretty::AS_IS,qw(XMP);
-
-=head2 Customizing the Indenting
-
-If you wish to have your own personal style of indenting, you can change the
-C<$INDENT> variable:
-
- $CGI::Pretty::INDENT = "\t\t";
-
-would cause the indents to be two tabs.
-
-Similarly, if you wish to have more space between lines, you may change the
-C<$LINEBREAK> variable:
-
- $CGI::Pretty::LINEBREAK = "\n\n";
-
-would create two carriage returns between lines.
-
-If you decide you want to use the regular CGI indenting, you can easily do
-the following:
-
- $CGI::Pretty::INDENT = $CGI::Pretty::LINEBREAK = "";
-
-=head1 AUTHOR
-
-Brian Paulsen <Brian@ThePaulsens.com>, with minor modifications by
-Lincoln Stein <lstein@cshl.org> for incorporation into the CGI.pm
-distribution.
-
-Copyright 1999, Brian Paulsen. All rights reserved.
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-Bug reports and comments to Brian@ThePaulsens.com. You can also write
-to lstein@cshl.org, but this code looks pretty hairy to me and I'm not
-sure I understand it!
-
-=head1 SEE ALSO
-
-L<CGI>
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/CGI/Push.pm b/Master/tlpkg/tlperl/lib/CGI/Push.pm
deleted file mode 100644
index 3353efcbcaf..00000000000
--- a/Master/tlpkg/tlperl/lib/CGI/Push.pm
+++ /dev/null
@@ -1,326 +0,0 @@
-package CGI::Push;
-use if $] >= 5.019, 'deprecate';
-
-# See the bottom of this file for the POD documentation. Search for the
-# string '=head'.
-
-# You can run this file through either pod2man or pod2html to produce pretty
-# documentation in manual or html file format (these utilities are part of the
-# Perl 5 distribution).
-
-# Copyright 1995-2000, Lincoln D. Stein. All rights reserved.
-# It may be used and modified freely, but I do request that this copyright
-# notice remain attached to the file. You may modify this module as you
-# wish, but if you redistribute a modified version, please attach a note
-# listing the modifications you have made.
-
-# The most recent version and complete docs are available at:
-# http://stein.cshl.org/WWW/software/CGI/
-
-$CGI::Push::VERSION='1.06';
-use CGI;
-use CGI::Util 'rearrange';
-@ISA = ('CGI');
-
-$CGI::DefaultClass = 'CGI::Push';
-$CGI::Push::AutoloadClass = 'CGI';
-
-# add do_push() and push_delay() to exported tags
-push(@{$CGI::EXPORT_TAGS{':standard'}},'do_push','push_delay');
-
-sub do_push {
- my ($self,@p) = CGI::self_or_default(@_);
-
- # unbuffer output
- $| = 1;
- srand;
- my ($random) = sprintf("%08.0f",rand()*1E8);
- my ($boundary) = "----=_NeXtPaRt$random";
-
- my (@header);
- my ($type,$callback,$delay,$last_page,$cookie,$target,$expires,$nph,@other) = rearrange([TYPE,NEXT_PAGE,DELAY,LAST_PAGE,[COOKIE,COOKIES],TARGET,EXPIRES,NPH],@p);
- $type = 'text/html' unless $type;
- $callback = \&simple_counter unless $callback && ref($callback) eq 'CODE';
- $delay = 1 unless defined($delay);
- $self->push_delay($delay);
- $nph = 1 unless defined($nph);
-
- my(@o);
- foreach (@other) { push(@o,split("=")); }
- push(@o,'-Target'=>$target) if defined($target);
- push(@o,'-Cookie'=>$cookie) if defined($cookie);
- push(@o,'-Type'=>"multipart/x-mixed-replace;boundary=\"$boundary\"");
- push(@o,'-Server'=>"CGI.pm Push Module") if $nph;
- push(@o,'-Status'=>'200 OK');
- push(@o,'-nph'=>1) if $nph;
- print $self->header(@o);
-
- $boundary = "$CGI::CRLF--$boundary";
-
- print "WARNING: YOUR BROWSER DOESN'T SUPPORT THIS SERVER-PUSH TECHNOLOGY.${boundary}$CGI::CRLF";
-
- my (@contents) = &$callback($self,++$COUNTER);
-
- # now we enter a little loop
- while (1) {
- print "Content-type: ${type}$CGI::CRLF$CGI::CRLF" unless $type =~ /^dynamic|heterogeneous$/i;
- print @contents;
- @contents = &$callback($self,++$COUNTER);
- if ((@contents) && defined($contents[0])) {
- print "${boundary}$CGI::CRLF";
- do_sleep($self->push_delay()) if $self->push_delay();
- } else {
- if ($last_page && ref($last_page) eq 'CODE') {
- print "${boundary}$CGI::CRLF";
- do_sleep($self->push_delay()) if $self->push_delay();
- print "Content-type: ${type}$CGI::CRLF$CGI::CRLF" unless $type =~ /^dynamic|heterogeneous$/i;
- print &$last_page($self,$COUNTER);
- }
- print "${boundary}--$CGI::CRLF";
- last;
- }
- }
- print "WARNING: YOUR BROWSER DOESN'T SUPPORT THIS SERVER-PUSH TECHNOLOGY.$CGI::CRLF";
-}
-
-sub simple_counter {
- my ($self,$count) = @_;
- return $self->start_html("CGI::Push Default Counter"),
- $self->h1("CGI::Push Default Counter"),
- "This page has been updated ",$self->strong($count)," times.",
- $self->hr(),
- $self->a({'-href'=>'http://www.genome.wi.mit.edu/ftp/pub/software/WWW/cgi_docs.html'},'CGI.pm home page'),
- $self->end_html;
-}
-
-sub do_sleep {
- my $delay = shift;
- if ( ($delay >= 1) && ($delay!~/\./) ){
- sleep($delay);
- } else {
- select(undef,undef,undef,$delay);
- }
-}
-
-sub push_delay {
- my ($self,$delay) = CGI::self_or_default(@_);
- return defined($delay) ? $self->{'.delay'} =
- $delay : $self->{'.delay'};
-}
-
-1;
-
-=head1 NAME
-
-CGI::Push - Simple Interface to Server Push
-
-=head1 SYNOPSIS
-
- use CGI::Push qw(:standard);
-
- do_push(-next_page=>\&next_page,
- -last_page=>\&last_page,
- -delay=>0.5);
-
- sub next_page {
- my($q,$counter) = @_;
- return undef if $counter >= 10;
- return start_html('Test'),
- h1('Visible'),"\n",
- "This page has been called ", strong($counter)," times",
- end_html();
- }
-
- sub last_page {
- my($q,$counter) = @_;
- return start_html('Done'),
- h1('Finished'),
- strong($counter - 1),' iterations.',
- end_html;
- }
-
-=head1 DESCRIPTION
-
-CGI::Push is a subclass of the CGI object created by CGI.pm. It is
-specialized for server push operations, which allow you to create
-animated pages whose content changes at regular intervals.
-
-You provide CGI::Push with a pointer to a subroutine that will draw
-one page. Every time your subroutine is called, it generates a new
-page. The contents of the page will be transmitted to the browser
-in such a way that it will replace what was there beforehand. The
-technique will work with HTML pages as well as with graphics files,
-allowing you to create animated GIFs.
-
-Only Netscape Navigator supports server push. Internet Explorer
-browsers do not.
-
-=head1 USING CGI::Push
-
-CGI::Push adds one new method to the standard CGI suite, do_push().
-When you call this method, you pass it a reference to a subroutine
-that is responsible for drawing each new page, an interval delay, and
-an optional subroutine for drawing the last page. Other optional
-parameters include most of those recognized by the CGI header()
-method.
-
-You may call do_push() in the object oriented manner or not, as you
-prefer:
-
- use CGI::Push;
- $q = new CGI::Push;
- $q->do_push(-next_page=>\&draw_a_page);
-
- -or-
-
- use CGI::Push qw(:standard);
- do_push(-next_page=>\&draw_a_page);
-
-Parameters are as follows:
-
-=over 4
-
-=item -next_page
-
- do_push(-next_page=>\&my_draw_routine);
-
-This required parameter points to a reference to a subroutine responsible for
-drawing each new page. The subroutine should expect two parameters
-consisting of the CGI object and a counter indicating the number
-of times the subroutine has been called. It should return the
-contents of the page as an B<array> of one or more items to print.
-It can return a false value (or an empty array) in order to abort the
-redrawing loop and print out the final page (if any)
-
- sub my_draw_routine {
- my($q,$counter) = @_;
- return undef if $counter > 100;
- return start_html('testing'),
- h1('testing'),
- "This page called $counter times";
- }
-
-You are of course free to refer to create and use global variables
-within your draw routine in order to achieve special effects.
-
-=item -last_page
-
-This optional parameter points to a reference to the subroutine
-responsible for drawing the last page of the series. It is called
-after the -next_page routine returns a false value. The subroutine
-itself should have exactly the same calling conventions as the
--next_page routine.
-
-=item -type
-
-This optional parameter indicates the content type of each page. It
-defaults to "text/html". Normally the module assumes that each page
-is of a homogeneous MIME type. However if you provide either of the
-magic values "heterogeneous" or "dynamic" (the latter provided for the
-convenience of those who hate long parameter names), you can specify
-the MIME type -- and other header fields -- on a per-page basis. See
-"heterogeneous pages" for more details.
-
-=item -delay
-
-This indicates the delay, in seconds, between frames. Smaller delays
-refresh the page faster. Fractional values are allowed.
-
-B<If not specified, -delay will default to 1 second>
-
-=item -cookie, -target, -expires, -nph
-
-These have the same meaning as the like-named parameters in
-CGI::header().
-
-If not specified, -nph will default to 1 (as needed for many servers, see below).
-
-=back
-
-=head2 Heterogeneous Pages
-
-Ordinarily all pages displayed by CGI::Push share a common MIME type.
-However by providing a value of "heterogeneous" or "dynamic" in the
-do_push() -type parameter, you can specify the MIME type of each page
-on a case-by-case basis.
-
-If you use this option, you will be responsible for producing the
-HTTP header for each page. Simply modify your draw routine to
-look like this:
-
- sub my_draw_routine {
- my($q,$counter) = @_;
- return header('text/html'), # note we're producing the header here
- start_html('testing'),
- h1('testing'),
- "This page called $counter times";
- }
-
-You can add any header fields that you like, but some (cookies and
-status fields included) may not be interpreted by the browser. One
-interesting effect is to display a series of pages, then, after the
-last page, to redirect the browser to a new URL. Because redirect()
-does b<not> work, the easiest way is with a -refresh header field,
-as shown below:
-
- sub my_draw_routine {
- my($q,$counter) = @_;
- return undef if $counter > 10;
- return header('text/html'), # note we're producing the header here
- start_html('testing'),
- h1('testing'),
- "This page called $counter times";
- }
-
- sub my_last_page {
- return header(-refresh=>'5; URL=http://somewhere.else/finished.html',
- -type=>'text/html'),
- start_html('Moved'),
- h1('This is the last page'),
- 'Goodbye!'
- hr,
- end_html;
- }
-
-=head2 Changing the Page Delay on the Fly
-
-If you would like to control the delay between pages on a page-by-page
-basis, call push_delay() from within your draw routine. push_delay()
-takes a single numeric argument representing the number of seconds you
-wish to delay after the current page is displayed and before
-displaying the next one. The delay may be fractional. Without
-parameters, push_delay() just returns the current delay.
-
-=head1 INSTALLING CGI::Push SCRIPTS
-
-Server push scripts must be installed as no-parsed-header (NPH)
-scripts in order to work correctly on many servers. On Unix systems,
-this is most often accomplished by prefixing the script's name with "nph-".
-Recognition of NPH scripts happens automatically with WebSTAR and
-Microsoft IIS. Users of other servers should see their documentation
-for help.
-
-Apache web server from version 1.3b2 on does not need server
-push scripts installed as NPH scripts: the -nph parameter to do_push()
-may be set to a false value to disable the extra headers needed by an
-NPH script.
-
-=head1 AUTHOR INFORMATION
-
-Copyright 1995-1998, Lincoln D. Stein. All rights reserved.
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-Address bug reports and comments to: lstein@cshl.org
-
-=head1 BUGS
-
-This section intentionally left blank.
-
-=head1 SEE ALSO
-
-L<CGI::Carp>, L<CGI>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/CGI/Switch.pm b/Master/tlpkg/tlperl/lib/CGI/Switch.pm
deleted file mode 100644
index ec21fe2f065..00000000000
--- a/Master/tlpkg/tlperl/lib/CGI/Switch.pm
+++ /dev/null
@@ -1,29 +0,0 @@
-package CGI::Switch;
-use if $] >= 5.019, 'deprecate';
-use CGI;
-
-$VERSION = '1.02';
-
-1;
-
-__END__
-
-=head1 NAME
-
-CGI::Switch - Backward compatibility module for defunct CGI::Switch
-
-=head1 SYNOPSIS
-
-Do not use this module. It is deprecated.
-
-=head1 ABSTRACT
-
-=head1 DESCRIPTION
-
-=head1 AUTHOR INFORMATION
-
-=head1 BUGS
-
-=head1 SEE ALSO
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/CGI/Util.pm b/Master/tlpkg/tlperl/lib/CGI/Util.pm
deleted file mode 100644
index 4a1f28f1a7d..00000000000
--- a/Master/tlpkg/tlperl/lib/CGI/Util.pm
+++ /dev/null
@@ -1,340 +0,0 @@
-package CGI::Util;
-use base 'Exporter';
-require 5.008001;
-use strict;
-use if $] >= 5.019, 'deprecate';
-our @EXPORT_OK = qw(rearrange rearrange_header make_attributes unescape escape
- expires ebcdic2ascii ascii2ebcdic);
-
-our $VERSION = '3.64';
-
-use constant EBCDIC => "\t" ne "\011";
-
-# This option is not documented and may change or go away.
-# The HTML spec does not require attributes to be sorted,
-# but it's useful for testing to get a predictable order back.
-our $SORT_ATTRIBUTES;
-
-# (ord('^') == 95) for codepage 1047 as on os390, vmesa
-our @A2E = (
- 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 21, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
- 64, 90,127,123, 91,108, 80,125, 77, 93, 92, 78,107, 96, 75, 97,
- 240,241,242,243,244,245,246,247,248,249,122, 94, 76,126,110,111,
- 124,193,194,195,196,197,198,199,200,201,209,210,211,212,213,214,
- 215,216,217,226,227,228,229,230,231,232,233,173,224,189, 95,109,
- 121,129,130,131,132,133,134,135,136,137,145,146,147,148,149,150,
- 151,152,153,162,163,164,165,166,167,168,169,192, 79,208,161, 7,
- 32, 33, 34, 35, 36, 37, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
- 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62,255,
- 65,170, 74,177,159,178,106,181,187,180,154,138,176,202,175,188,
- 144,143,234,250,190,160,182,179,157,218,155,139,183,184,185,171,
- 100,101, 98,102, 99,103,158,104,116,113,114,115,120,117,118,119,
- 172,105,237,238,235,239,236,191,128,253,254,251,252,186,174, 89,
- 68, 69, 66, 70, 67, 71,156, 72, 84, 81, 82, 83, 88, 85, 86, 87,
- 140, 73,205,206,203,207,204,225,112,221,222,219,220,141,142,223
- );
-our @E2A = (
- 0, 1, 2, 3,156, 9,134,127,151,141,142, 11, 12, 13, 14, 15,
- 16, 17, 18, 19,157, 10, 8,135, 24, 25,146,143, 28, 29, 30, 31,
- 128,129,130,131,132,133, 23, 27,136,137,138,139,140, 5, 6, 7,
- 144,145, 22,147,148,149,150, 4,152,153,154,155, 20, 21,158, 26,
- 32,160,226,228,224,225,227,229,231,241,162, 46, 60, 40, 43,124,
- 38,233,234,235,232,237,238,239,236,223, 33, 36, 42, 41, 59, 94,
- 45, 47,194,196,192,193,195,197,199,209,166, 44, 37, 95, 62, 63,
- 248,201,202,203,200,205,206,207,204, 96, 58, 35, 64, 39, 61, 34,
- 216, 97, 98, 99,100,101,102,103,104,105,171,187,240,253,254,177,
- 176,106,107,108,109,110,111,112,113,114,170,186,230,184,198,164,
- 181,126,115,116,117,118,119,120,121,122,161,191,208, 91,222,174,
- 172,163,165,183,169,167,182,188,189,190,221,168,175, 93,180,215,
- 123, 65, 66, 67, 68, 69, 70, 71, 72, 73,173,244,246,242,243,245,
- 125, 74, 75, 76, 77, 78, 79, 80, 81, 82,185,251,252,249,250,255,
- 92,247, 83, 84, 85, 86, 87, 88, 89, 90,178,212,214,210,211,213,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,179,219,220,217,218,159
- );
-
-if (EBCDIC && ord('^') == 106) { # as in the BS2000 posix-bc coded character set
- $A2E[91] = 187; $A2E[92] = 188; $A2E[94] = 106; $A2E[96] = 74;
- $A2E[123] = 251; $A2E[125] = 253; $A2E[126] = 255; $A2E[159] = 95;
- $A2E[162] = 176; $A2E[166] = 208; $A2E[168] = 121; $A2E[172] = 186;
- $A2E[175] = 161; $A2E[217] = 224; $A2E[219] = 221; $A2E[221] = 173;
- $A2E[249] = 192;
-
- $E2A[74] = 96; $E2A[95] = 159; $E2A[106] = 94; $E2A[121] = 168;
- $E2A[161] = 175; $E2A[173] = 221; $E2A[176] = 162; $E2A[186] = 172;
- $E2A[187] = 91; $E2A[188] = 92; $E2A[192] = 249; $E2A[208] = 166;
- $E2A[221] = 219; $E2A[224] = 217; $E2A[251] = 123; $E2A[253] = 125;
- $E2A[255] = 126;
- }
-elsif (EBCDIC && ord('^') == 176) { # as in codepage 037 on os400
- $A2E[10] = 37; $A2E[91] = 186; $A2E[93] = 187; $A2E[94] = 176;
- $A2E[133] = 21; $A2E[168] = 189; $A2E[172] = 95; $A2E[221] = 173;
-
- $E2A[21] = 133; $E2A[37] = 10; $E2A[95] = 172; $E2A[173] = 221;
- $E2A[176] = 94; $E2A[186] = 91; $E2A[187] = 93; $E2A[189] = 168;
-}
-
-# Smart rearrangement of parameters to allow named parameter
-# calling. We do the rearrangement if:
-# the first parameter begins with a -
-
-sub rearrange {
- my ($order,@param) = @_;
- my ($result, $leftover) = _rearrange_params( $order, @param );
- push @$result, make_attributes( $leftover, defined $CGI::Q ? $CGI::Q->{escape} : 1 )
- if keys %$leftover;
- @$result;
-}
-
-sub rearrange_header {
- my ($order,@param) = @_;
-
- my ($result,$leftover) = _rearrange_params( $order, @param );
- push @$result, make_attributes( $leftover, 0, 1 ) if keys %$leftover;
-
- @$result;
-}
-
-sub _rearrange_params {
- my($order,@param) = @_;
- return [] unless @param;
-
- if (ref($param[0]) eq 'HASH') {
- @param = %{$param[0]};
- } else {
- return \@param
- unless (defined($param[0]) && substr($param[0],0,1) eq '-');
- }
-
- # map parameters into positional indices
- my ($i,%pos);
- $i = 0;
- foreach (@$order) {
- foreach (ref($_) eq 'ARRAY' ? @$_ : $_) { $pos{lc($_)} = $i; }
- $i++;
- }
-
- my (@result,%leftover);
- $#result = $#$order; # preextend
- while (@param) {
- my $key = lc(shift(@param));
- $key =~ s/^\-//;
- if (exists $pos{$key}) {
- $result[$pos{$key}] = shift(@param);
- } else {
- $leftover{$key} = shift(@param);
- }
- }
-
- return \@result, \%leftover;
-}
-
-sub make_attributes {
- my $attr = shift;
- return () unless $attr && ref($attr) && ref($attr) eq 'HASH';
- my $escape = shift || 0;
- my $do_not_quote = shift;
-
- my $quote = $do_not_quote ? '' : '"';
-
- my @attr_keys= keys %$attr;
- if ($SORT_ATTRIBUTES) {
- @attr_keys= sort @attr_keys;
- }
- my(@att);
- foreach (@attr_keys) {
- my($key) = $_;
- $key=~s/^\-//; # get rid of initial - if present
-
- # old way: breaks EBCDIC!
- # $key=~tr/A-Z_/a-z-/; # parameters are lower case, use dashes
-
- ($key="\L$key") =~ tr/_/-/; # parameters are lower case, use dashes
-
- my $value = $escape ? simple_escape($attr->{$_}) : $attr->{$_};
- push(@att,defined($attr->{$_}) ? qq/$key=$quote$value$quote/ : qq/$key/);
- }
- return @att;
-}
-
-sub simple_escape {
- return unless defined(my $toencode = shift);
- $toencode =~ s{&}{&amp;}gso;
- $toencode =~ s{<}{&lt;}gso;
- $toencode =~ s{>}{&gt;}gso;
- $toencode =~ s{\"}{&quot;}gso;
-# Doesn't work. Can't work. forget it.
-# $toencode =~ s{\x8b}{&#139;}gso;
-# $toencode =~ s{\x9b}{&#155;}gso;
- $toencode;
-}
-
-sub utf8_chr {
- my $c = shift(@_);
- my $u = chr($c);
- utf8::encode($u); # drop utf8 flag
- return $u;
-}
-
-# unescape URL-encoded data
-sub unescape {
- shift() if @_ > 0 and (ref($_[0]) || (defined $_[1] && $_[0] eq $CGI::DefaultClass));
- my $todecode = shift;
- return undef unless defined($todecode);
- $todecode =~ tr/+/ /; # pluses become spaces
- if (EBCDIC) {
- $todecode =~ s/%([0-9a-fA-F]{2})/chr $A2E[hex($1)]/ge;
- } else {
- # handle surrogate pairs first -- dankogai. Ref: http://unicode.org/faq/utf_bom.html#utf16-2
- $todecode =~ s{
- %u([Dd][89a-bA-B][0-9a-fA-F]{2}) # hi
- %u([Dd][c-fC-F][0-9a-fA-F]{2}) # lo
- }{
- utf8_chr(
- 0x10000
- + (hex($1) - 0xD800) * 0x400
- + (hex($2) - 0xDC00)
- )
- }gex;
- $todecode =~ s/%(?:([0-9a-fA-F]{2})|u([0-9a-fA-F]{4}))/
- defined($1)? chr hex($1) : utf8_chr(hex($2))/ge;
- }
- return $todecode;
-}
-
-# URL-encode data
-#
-# We cannot use the %u escapes, they were rejected by W3C, so the official
-# way is %XX-escaped utf-8 encoding.
-# Naturally, Unicode strings have to be converted to their utf-8 byte
-# representation.
-# Byte strings were traditionally used directly as a sequence of octets.
-# This worked if they actually represented binary data (i.e. in CGI::Compress).
-# This also worked if these byte strings were actually utf-8 encoded; e.g.,
-# when the source file used utf-8 without the appropriate "use utf8;".
-# This fails if the byte string is actually a Latin 1 encoded string, but it
-# was always so and cannot be fixed without breaking the binary data case.
-# -- Stepan Kasal <skasal@redhat.com>
-#
-
-sub escape {
- # If we being called in an OO-context, discard the first argument.
- shift() if @_ > 1 and ( ref($_[0]) || (defined $_[1] && $_[0] eq $CGI::DefaultClass));
- my $toencode = shift;
- return undef unless defined($toencode);
- utf8::encode($toencode) if utf8::is_utf8($toencode);
- if (EBCDIC) {
- $toencode=~s/([^a-zA-Z0-9_.~-])/uc sprintf("%%%02x",$E2A[ord($1)])/eg;
- } else {
- $toencode=~s/([^a-zA-Z0-9_.~-])/uc sprintf("%%%02x",ord($1))/eg;
- }
- return $toencode;
-}
-
-# This internal routine creates date strings suitable for use in
-# cookies and HTTP headers. (They differ, unfortunately.)
-# Thanks to Mark Fisher for this.
-sub expires {
- my($time,$format) = @_;
- $format ||= 'http';
-
- my(@MON)=qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/;
- my(@WDAY) = qw/Sun Mon Tue Wed Thu Fri Sat/;
-
- # pass through preformatted dates for the sake of expire_calc()
- $time = expire_calc($time);
- return $time unless $time =~ /^\d+$/;
-
- # make HTTP/cookie date string from GMT'ed time
- # (cookies use '-' as date separator, HTTP uses ' ')
- my($sc) = ' ';
- $sc = '-' if $format eq "cookie";
- my($sec,$min,$hour,$mday,$mon,$year,$wday) = gmtime($time);
- $year += 1900;
- return sprintf("%s, %02d$sc%s$sc%04d %02d:%02d:%02d GMT",
- $WDAY[$wday],$mday,$MON[$mon],$year,$hour,$min,$sec);
-}
-
-# This internal routine creates an expires time exactly some number of
-# hours from the current time. It incorporates modifications from
-# Mark Fisher.
-sub expire_calc {
- my($time) = @_;
- my(%mult) = ('s'=>1,
- 'm'=>60,
- 'h'=>60*60,
- 'd'=>60*60*24,
- 'M'=>60*60*24*30,
- 'y'=>60*60*24*365);
- # format for time can be in any of the forms...
- # "now" -- expire immediately
- # "+180s" -- in 180 seconds
- # "+2m" -- in 2 minutes
- # "+12h" -- in 12 hours
- # "+1d" -- in 1 day
- # "+3M" -- in 3 months
- # "+2y" -- in 2 years
- # "-3m" -- 3 minutes ago(!)
- # If you don't supply one of these forms, we assume you are
- # specifying the date yourself
- my($offset);
- if (!$time || (lc($time) eq 'now')) {
- $offset = 0;
- } elsif ($time=~/^\d+/) {
- return $time;
- } elsif ($time=~/^([+-]?(?:\d+|\d*\.\d*))([smhdMy])/) {
- $offset = ($mult{$2} || 1)*$1;
- } else {
- return $time;
- }
- my $cur_time = time;
- return ($cur_time+$offset);
-}
-
-sub ebcdic2ascii {
- my $data = shift;
- $data =~ s/(.)/chr $E2A[ord($1)]/ge;
- $data;
-}
-
-sub ascii2ebcdic {
- my $data = shift;
- $data =~ s/(.)/chr $A2E[ord($1)]/ge;
- $data;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-CGI::Util - Internal utilities used by CGI module
-
-=head1 SYNOPSIS
-
-none
-
-=head1 DESCRIPTION
-
-no public subroutines
-
-=head1 AUTHOR INFORMATION
-
-Copyright 1995-1998, Lincoln D. Stein. All rights reserved.
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-Address bug reports and comments to: lstein@cshl.org. When sending
-bug reports, please provide the version of CGI.pm, the version of
-Perl, the name and version of your Web server, and the name and
-version of the operating system you are using. If the problem is even
-remotely browser dependent, please provide information about the
-affected browsers as well.
-
-=head1 SEE ALSO
-
-L<CGI>
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/CORE/EXTERN.h b/Master/tlpkg/tlperl/lib/CORE/EXTERN.h
index 2aa77dbf8f3..4e4f1addcc4 100644
--- a/Master/tlpkg/tlperl/lib/CORE/EXTERN.h
+++ b/Master/tlpkg/tlperl/lib/CORE/EXTERN.h
@@ -18,16 +18,7 @@
#undef dEXT
#undef EXTCONST
#undef dEXTCONST
-#if defined(VMS) && !defined(__GNUC__)
- /* Suppress portability warnings from DECC for VMS-specific extensions */
-# ifdef __DECC
-# pragma message disable (GLOBALEXT,NOSHAREEXT,READONLYEXT)
-# endif
-# define EXT globalref
-# define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare
-# define EXTCONST globalref
-# define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
-#else
+
# if (defined(WIN32) || defined(__SYMBIAN32__)) && !defined(PERL_STATIC_SYMS)
/* miniperl should not export anything */
# if defined(PERL_IS_MINIPERL) && !defined(UNDER_CE) && defined(_MSC_VER)
@@ -61,7 +52,6 @@
# define dEXTCONST const
# endif
# endif
-#endif
#undef INIT
#define INIT(x)
diff --git a/Master/tlpkg/tlperl/lib/CORE/INTERN.h b/Master/tlpkg/tlperl/lib/CORE/INTERN.h
index da3057a83c6..e6e06026576 100644
--- a/Master/tlpkg/tlperl/lib/CORE/INTERN.h
+++ b/Master/tlpkg/tlperl/lib/CORE/INTERN.h
@@ -18,21 +18,19 @@
#undef dEXT
#undef EXTCONST
#undef dEXTCONST
-#if defined(VMS) && !defined(__GNUC__)
- /* Suppress portability warnings from DECC for VMS-specific extensions */
-# ifdef __DECC
-# pragma message disable (GLOBALEXT,NOSHAREEXT,READONLYEXT)
-# endif
-# define EXT globaldef {"$GLOBAL_RW_VARS"} noshare
-# define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare
-# define EXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
-# define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
-#else
+
# if (defined(WIN32) && defined(__MINGW32__)) || defined(__SYMBIAN32__)
-# define EXT __declspec(dllexport)
-# define dEXT
-# define EXTCONST __declspec(dllexport) const
-# define dEXTCONST const
+# ifdef __cplusplus
+# define EXT __declspec(dllexport)
+# define dEXT
+# define EXTCONST __declspec(dllexport) extern const
+# define dEXTCONST const
+# else
+# define EXT __declspec(dllexport)
+# define dEXT
+# define EXTCONST __declspec(dllexport) const
+# define dEXTCONST const
+# endif
# else
# ifdef __cplusplus
# define EXT
@@ -46,7 +44,6 @@
# define dEXTCONST const
# endif
# endif
-#endif
#undef INIT
#define INIT(x) = x
diff --git a/Master/tlpkg/tlperl/lib/CORE/XSUB.h b/Master/tlpkg/tlperl/lib/CORE/XSUB.h
index 187919158cc..49c15f744e7 100644
--- a/Master/tlpkg/tlperl/lib/CORE/XSUB.h
+++ b/Master/tlpkg/tlperl/lib/CORE/XSUB.h
@@ -14,7 +14,7 @@
/* first, some documentation for xsubpp-generated items */
/*
-=head1 Variables created by C<xsubpp> and C<xsubpp> internal functions
+=head1 C<xsubpp> variables and internal functions
=for apidoc Amn|char*|CLASS
Variable which is setup by C<xsubpp> to indicate the
@@ -170,6 +170,24 @@ is a lexical $_ in scope.
#else
# define dXSARGS \
dSP; dAXMARK; dITEMS
+/* These 3 macros are replacements for dXSARGS macro only in bootstrap.
+ They factor out common code in every BOOT XSUB. Computation of vars mark
+ and items will optimize away in most BOOT functions. Var ax can never be
+ optimized away since BOOT must return &PL_sv_yes by default from xsubpp.
+ Note these macros are not drop in replacements for dXSARGS since they set
+ PL_xsubfilename. */
+# define dXSBOOTARGSXSAPIVERCHK \
+ I32 ax = XS_BOTHVERSION_SETXSUBFN_POPMARK_BOOTCHECK; \
+ SV **mark = PL_stack_base + ax; dSP; dITEMS
+# define dXSBOOTARGSAPIVERCHK \
+ I32 ax = XS_APIVERSION_SETXSUBFN_POPMARK_BOOTCHECK; \
+ SV **mark = PL_stack_base + ax; dSP; dITEMS
+/* dXSBOOTARGSNOVERCHK has no API in xsubpp to choose it so do
+#undef dXSBOOTARGSXSAPIVERCHK
+#define dXSBOOTARGSXSAPIVERCHK dXSBOOTARGSNOVERCHK */
+# define dXSBOOTARGSNOVERCHK \
+ I32 ax = XS_SETXSUBFN_POPMARK; \
+ SV **mark = PL_stack_base + ax; dSP; dITEMS
#endif
#define dXSTARG SV * const targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \
@@ -274,7 +292,7 @@ C<xsubpp>. See L<perlxs/"The VERSIONCHECK: Keyword">.
Macro to verify that the perl api version an XS module has been compiled against
matches the api version of the perl interpreter it's being loaded into.
-=head1 Simple Exception Handling Macros
+=head1 Exception Handling (simple) Macros
=for apidoc Ams||dXCPT
Set up necessary local variables for exception handling.
@@ -325,13 +343,57 @@ Rethrows a previously caught exception. See L<perlguts/"Exception Handling">.
#ifdef XS_VERSION
# define XS_VERSION_BOOTCHECK \
- Perl_xs_version_bootcheck(aTHX_ items, ax, STR_WITH_LEN(XS_VERSION))
+ Perl_xs_handshake(HS_KEY(FALSE, FALSE, "", XS_VERSION), HS_CXT, __FILE__, \
+ items, ax, XS_VERSION)
#else
# define XS_VERSION_BOOTCHECK
#endif
#define XS_APIVERSION_BOOTCHECK \
- Perl_xs_apiversion_bootcheck(aTHX_ ST(0), STR_WITH_LEN("v" PERL_API_VERSION_STRING))
+ Perl_xs_handshake(HS_KEY(FALSE, FALSE, "v" PERL_API_VERSION_STRING, ""), \
+ HS_CXT, __FILE__, items, ax, "v" PERL_API_VERSION_STRING)
+/* public API, this is a combination of XS_VERSION_BOOTCHECK and
+ XS_APIVERSION_BOOTCHECK in 1, and is backportable */
+#ifdef XS_VERSION
+# define XS_BOTHVERSION_BOOTCHECK \
+ Perl_xs_handshake(HS_KEY(FALSE, FALSE, "v" PERL_API_VERSION_STRING, XS_VERSION), \
+ HS_CXT, __FILE__, items, ax, "v" PERL_API_VERSION_STRING, XS_VERSION)
+#else
+/* should this be a #error? if you want both checked, you better supply XS_VERSION right? */
+# define XS_BOTHVERSION_BOOTCHECK XS_APIVERSION_BOOTCHECK
+#endif
+
+/* private API */
+#define XS_APIVERSION_POPMARK_BOOTCHECK \
+ Perl_xs_handshake(HS_KEY(FALSE, TRUE, "v" PERL_API_VERSION_STRING, ""), \
+ HS_CXT, __FILE__, "v" PERL_API_VERSION_STRING)
+#ifdef XS_VERSION
+# define XS_BOTHVERSION_POPMARK_BOOTCHECK \
+ Perl_xs_handshake(HS_KEY(FALSE, TRUE, "v" PERL_API_VERSION_STRING, XS_VERSION), \
+ HS_CXT, __FILE__, "v" PERL_API_VERSION_STRING, XS_VERSION)
+#else
+/* should this be a #error? if you want both checked, you better supply XS_VERSION right? */
+# define XS_BOTHVERSION_POPMARK_BOOTCHECK XS_APIVERSION_POPMARK_BOOTCHECK
+#endif
+
+#define XS_APIVERSION_SETXSUBFN_POPMARK_BOOTCHECK \
+ Perl_xs_handshake(HS_KEY(TRUE, TRUE, "v" PERL_API_VERSION_STRING, ""), \
+ HS_CXT, __FILE__, "v" PERL_API_VERSION_STRING)
+#ifdef XS_VERSION
+# define XS_BOTHVERSION_SETXSUBFN_POPMARK_BOOTCHECK \
+ Perl_xs_handshake(HS_KEY(TRUE, TRUE, "v" PERL_API_VERSION_STRING, XS_VERSION),\
+ HS_CXT, __FILE__, "v" PERL_API_VERSION_STRING, XS_VERSION)
+#else
+/* should this be a #error? if you want both checked, you better supply XS_VERSION right? */
+# define XS_BOTHVERSION_SETXSUBFN_POPMARK_BOOTCHECK XS_APIVERSION_SETXSUBFN_POPMARK_BOOTCHECK
+#endif
+
+/* For a normal bootstrap without API or XS version checking.
+ Useful for static XS modules or debugging/testing scenarios.
+ If this macro gets heavily used in the future, it should separated into
+ a separate function independent of Perl_xs_handshake for efficiency */
+#define XS_SETXSUBFN_POPMARK \
+ Perl_xs_handshake(HS_KEY(TRUE, TRUE, "", "") | HSf_NOCHK, HS_CXT, __FILE__)
#ifdef NO_XSLOCKS
# define dXCPT dJMPENV; int rEtV = 0
@@ -352,7 +414,7 @@ Rethrows a previously caught exception. See L<perlguts/"Exception Handling">.
RETVAL = sv_mortalcopy(db_type) ; \
ST(0) = RETVAL ; \
if (db_type && (code == &PL_sv_undef)) { \
- SvREFCNT_dec(db_type) ; \
+ SvREFCNT_dec_NN(db_type) ; \
db_type = NULL ; \
} \
else if (code) { \
@@ -652,11 +714,5 @@ Rethrows a previously caught exception. See L<perlguts/"Exception Handling">.
#endif /* _INC_PERL_XSUB_H */ /* include guard */
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/av.h b/Master/tlpkg/tlperl/lib/CORE/av.h
index e15ebe69e43..30b8e52f30e 100644
--- a/Master/tlpkg/tlperl/lib/CORE/av.h
+++ b/Master/tlpkg/tlperl/lib/CORE/av.h
@@ -73,8 +73,6 @@ Same as C<av_top_index()>.
#define AvREIFY_on(av) (SvFLAGS(av) |= SVpav_REIFY)
#define AvREIFY_off(av) (SvFLAGS(av) &= ~SVpav_REIFY)
#define AvREIFY_only(av) (AvREAL_off(av), SvFLAGS(av) |= SVpav_REIFY)
-#define AvPAD_NAMELIST(av) (SvFLAGS(av) & SVpad_NAMELIST)
-#define AvPAD_NAMELIST_on(av) (SvFLAGS(av) |= SVpad_NAMELIST)
#define AvREALISH(av) (SvFLAGS(av) & (SVpav_REAL|SVpav_REIFY))
@@ -98,11 +96,5 @@ Perl equivalent: C<my @array;>.
#define newAV() MUTABLE_AV(newSV_type(SVt_PVAV))
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/charclass_invlists.h b/Master/tlpkg/tlperl/lib/CORE/charclass_invlists.h
index 7bc14d88d0f..90517660bc4 100644
--- a/Master/tlpkg/tlperl/lib/CORE/charclass_invlists.h
+++ b/Master/tlpkg/tlperl/lib/CORE/charclass_invlists.h
@@ -7,11410 +7,97321 @@
/* See the generating file for comments */
-#ifndef PERL_IN_XSUB_RE
+#if defined(PERL_IN_REGCOMP_C)
static const UV Latin1_invlist[] = {
2, /* Number of elements */
148565664, /* Version and data structure type */
0, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 256
+ 0x0,
+ 0x100
};
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
static const UV AboveLatin1_invlist[] = {
2, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 256
+ 0x0,
+ 0x100
};
-#endif
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if 'A' == 65 /* ASCII/Latin1 */
-#ifndef PERL_IN_XSUB_RE
+#if defined(PERL_IN_PERL_C)
-static const UV ASCII_invlist[] = {
+static const UV ASCII_invlist[] = { /* for ASCII/Latin1 */
2, /* Number of elements */
148565664, /* Version and data structure type */
0, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 128
+ 0x0,
+ 0x80
};
-#endif
+static const UV Cased_invlist[] = { /* for ASCII/Latin1 */
+ 255, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x41,
+ 0x5B,
+ 0x61,
+ 0x7B,
+ 0xAA,
+ 0xAB,
+ 0xB5,
+ 0xB6,
+ 0xBA,
+ 0xBB,
+ 0xC0,
+ 0xD7,
+ 0xD8,
+ 0xF7,
+ 0xF8,
+ 0x1BB,
+ 0x1BC,
+ 0x1C0,
+ 0x1C4,
+ 0x294,
+ 0x295,
+ 0x2B9,
+ 0x2C0,
+ 0x2C2,
+ 0x2E0,
+ 0x2E5,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x374,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x561,
+ 0x588,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x1D00,
+ 0x1DC0,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x2135,
+ 0x2139,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2180,
+ 0x2183,
+ 0x2185,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0xA640,
+ 0xA66E,
+ 0xA680,
+ 0xA69E,
+ 0xA722,
+ 0xA788,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F8,
+ 0xA7FB,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0x10400,
+ 0x10450,
+ 0x118A0,
+ 0x118E0,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A
+};
-#ifndef PERL_IN_XSUB_RE
+static const UV Grapheme_Cluster_Break_invlist[] = { /* for ASCII/Latin1 */
+ 1484, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0xA,
+ 0xB,
+ 0xD,
+ 0xE,
+ 0x20,
+ 0x7F,
+ 0xA0,
+ 0xAD,
+ 0xAE,
+ 0x300,
+ 0x370,
+ 0x483,
+ 0x48A,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x600,
+ 0x606,
+ 0x610,
+ 0x61B,
+ 0x61C,
+ 0x61D,
+ 0x64B,
+ 0x660,
+ 0x670,
+ 0x671,
+ 0x6D6,
+ 0x6DD,
+ 0x6DE,
+ 0x6DF,
+ 0x6E5,
+ 0x6E7,
+ 0x6E9,
+ 0x6EA,
+ 0x6EE,
+ 0x70F,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74B,
+ 0x7A6,
+ 0x7B1,
+ 0x7EB,
+ 0x7F4,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x82E,
+ 0x859,
+ 0x85C,
+ 0x8E4,
+ 0x903,
+ 0x904,
+ 0x93A,
+ 0x93B,
+ 0x93C,
+ 0x93D,
+ 0x93E,
+ 0x941,
+ 0x949,
+ 0x94D,
+ 0x94E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x964,
+ 0x981,
+ 0x982,
+ 0x984,
+ 0x9BC,
+ 0x9BD,
+ 0x9BE,
+ 0x9BF,
+ 0x9C1,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CD,
+ 0x9CE,
+ 0x9D7,
+ 0x9D8,
+ 0x9E2,
+ 0x9E4,
+ 0xA01,
+ 0xA03,
+ 0xA04,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA41,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA70,
+ 0xA72,
+ 0xA75,
+ 0xA76,
+ 0xA81,
+ 0xA83,
+ 0xA84,
+ 0xABC,
+ 0xABD,
+ 0xABE,
+ 0xAC1,
+ 0xAC6,
+ 0xAC7,
+ 0xAC9,
+ 0xACA,
+ 0xACB,
+ 0xACD,
+ 0xACE,
+ 0xAE2,
+ 0xAE4,
+ 0xB01,
+ 0xB02,
+ 0xB04,
+ 0xB3C,
+ 0xB3D,
+ 0xB3E,
+ 0xB40,
+ 0xB41,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4D,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB62,
+ 0xB64,
+ 0xB82,
+ 0xB83,
+ 0xBBE,
+ 0xBBF,
+ 0xBC0,
+ 0xBC1,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCD,
+ 0xBCE,
+ 0xBD7,
+ 0xBD8,
+ 0xC00,
+ 0xC01,
+ 0xC04,
+ 0xC3E,
+ 0xC41,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC62,
+ 0xC64,
+ 0xC81,
+ 0xC82,
+ 0xC84,
+ 0xCBC,
+ 0xCBD,
+ 0xCBE,
+ 0xCBF,
+ 0xCC0,
+ 0xCC2,
+ 0xCC3,
+ 0xCC5,
+ 0xCC6,
+ 0xCC7,
+ 0xCC9,
+ 0xCCA,
+ 0xCCC,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCE2,
+ 0xCE4,
+ 0xD01,
+ 0xD02,
+ 0xD04,
+ 0xD3E,
+ 0xD3F,
+ 0xD41,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4D,
+ 0xD4E,
+ 0xD57,
+ 0xD58,
+ 0xD62,
+ 0xD64,
+ 0xD82,
+ 0xD84,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD0,
+ 0xDD2,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDDF,
+ 0xDE0,
+ 0xDF2,
+ 0xDF4,
+ 0xE31,
+ 0xE32,
+ 0xE33,
+ 0xE34,
+ 0xE3B,
+ 0xE47,
+ 0xE4F,
+ 0xEB1,
+ 0xEB2,
+ 0xEB3,
+ 0xEB4,
+ 0xEBA,
+ 0xEBB,
+ 0xEBD,
+ 0xEC8,
+ 0xECE,
+ 0xF18,
+ 0xF1A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF40,
+ 0xF71,
+ 0xF7F,
+ 0xF80,
+ 0xF85,
+ 0xF86,
+ 0xF88,
+ 0xF8D,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x102D,
+ 0x1031,
+ 0x1032,
+ 0x1038,
+ 0x1039,
+ 0x103B,
+ 0x103D,
+ 0x103F,
+ 0x1056,
+ 0x1058,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x1083,
+ 0x1084,
+ 0x1085,
+ 0x1087,
+ 0x108D,
+ 0x108E,
+ 0x109D,
+ 0x109E,
+ 0x1100,
+ 0x1160,
+ 0x11A8,
+ 0x1200,
+ 0x135D,
+ 0x1360,
+ 0x1712,
+ 0x1715,
+ 0x1732,
+ 0x1735,
+ 0x1752,
+ 0x1754,
+ 0x1772,
+ 0x1774,
+ 0x17B4,
+ 0x17B6,
+ 0x17B7,
+ 0x17BE,
+ 0x17C6,
+ 0x17C7,
+ 0x17C9,
+ 0x17D4,
+ 0x17DD,
+ 0x17DE,
+ 0x180B,
+ 0x180E,
+ 0x180F,
+ 0x18A9,
+ 0x18AA,
+ 0x1920,
+ 0x1923,
+ 0x1927,
+ 0x1929,
+ 0x192C,
+ 0x1930,
+ 0x1932,
+ 0x1933,
+ 0x1939,
+ 0x193C,
+ 0x19B5,
+ 0x19B8,
+ 0x19BA,
+ 0x19BB,
+ 0x1A17,
+ 0x1A19,
+ 0x1A1B,
+ 0x1A1C,
+ 0x1A55,
+ 0x1A56,
+ 0x1A57,
+ 0x1A58,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A61,
+ 0x1A62,
+ 0x1A63,
+ 0x1A65,
+ 0x1A6D,
+ 0x1A73,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A80,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B04,
+ 0x1B05,
+ 0x1B34,
+ 0x1B35,
+ 0x1B36,
+ 0x1B3B,
+ 0x1B3C,
+ 0x1B3D,
+ 0x1B42,
+ 0x1B43,
+ 0x1B45,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1B82,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BA2,
+ 0x1BA6,
+ 0x1BA8,
+ 0x1BAA,
+ 0x1BAB,
+ 0x1BAE,
+ 0x1BE6,
+ 0x1BE7,
+ 0x1BE8,
+ 0x1BEA,
+ 0x1BED,
+ 0x1BEE,
+ 0x1BEF,
+ 0x1BF2,
+ 0x1BF4,
+ 0x1C24,
+ 0x1C2C,
+ 0x1C34,
+ 0x1C36,
+ 0x1C38,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CE1,
+ 0x1CE2,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF4,
+ 0x1CF5,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1DC0,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1E00,
+ 0x200B,
+ 0x200C,
+ 0x200E,
+ 0x2010,
+ 0x2028,
+ 0x202F,
+ 0x2060,
+ 0x2070,
+ 0x20D0,
+ 0x20F1,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2D7F,
+ 0x2D80,
+ 0x2DE0,
+ 0x2E00,
+ 0x302A,
+ 0x3030,
+ 0x3099,
+ 0x309B,
+ 0xA66F,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA69F,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA6F2,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA825,
+ 0xA827,
+ 0xA828,
+ 0xA880,
+ 0xA882,
+ 0xA8B4,
+ 0xA8C4,
+ 0xA8C5,
+ 0xA8E0,
+ 0xA8F2,
+ 0xA926,
+ 0xA92E,
+ 0xA947,
+ 0xA952,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA983,
+ 0xA984,
+ 0xA9B3,
+ 0xA9B4,
+ 0xA9B6,
+ 0xA9BA,
+ 0xA9BC,
+ 0xA9BD,
+ 0xA9C1,
+ 0xA9E5,
+ 0xA9E6,
+ 0xAA29,
+ 0xAA2F,
+ 0xAA31,
+ 0xAA33,
+ 0xAA35,
+ 0xAA37,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA4D,
+ 0xAA4E,
+ 0xAA7C,
+ 0xAA7D,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAEB,
+ 0xAAEC,
+ 0xAAEE,
+ 0xAAF0,
+ 0xAAF5,
+ 0xAAF6,
+ 0xAAF7,
+ 0xABE3,
+ 0xABE5,
+ 0xABE6,
+ 0xABE8,
+ 0xABE9,
+ 0xABEB,
+ 0xABEC,
+ 0xABED,
+ 0xABEE,
+ 0xAC00,
+ 0xAC01,
+ 0xAC1C,
+ 0xAC1D,
+ 0xAC38,
+ 0xAC39,
+ 0xAC54,
+ 0xAC55,
+ 0xAC70,
+ 0xAC71,
+ 0xAC8C,
+ 0xAC8D,
+ 0xACA8,
+ 0xACA9,
+ 0xACC4,
+ 0xACC5,
+ 0xACE0,
+ 0xACE1,
+ 0xACFC,
+ 0xACFD,
+ 0xAD18,
+ 0xAD19,
+ 0xAD34,
+ 0xAD35,
+ 0xAD50,
+ 0xAD51,
+ 0xAD6C,
+ 0xAD6D,
+ 0xAD88,
+ 0xAD89,
+ 0xADA4,
+ 0xADA5,
+ 0xADC0,
+ 0xADC1,
+ 0xADDC,
+ 0xADDD,
+ 0xADF8,
+ 0xADF9,
+ 0xAE14,
+ 0xAE15,
+ 0xAE30,
+ 0xAE31,
+ 0xAE4C,
+ 0xAE4D,
+ 0xAE68,
+ 0xAE69,
+ 0xAE84,
+ 0xAE85,
+ 0xAEA0,
+ 0xAEA1,
+ 0xAEBC,
+ 0xAEBD,
+ 0xAED8,
+ 0xAED9,
+ 0xAEF4,
+ 0xAEF5,
+ 0xAF10,
+ 0xAF11,
+ 0xAF2C,
+ 0xAF2D,
+ 0xAF48,
+ 0xAF49,
+ 0xAF64,
+ 0xAF65,
+ 0xAF80,
+ 0xAF81,
+ 0xAF9C,
+ 0xAF9D,
+ 0xAFB8,
+ 0xAFB9,
+ 0xAFD4,
+ 0xAFD5,
+ 0xAFF0,
+ 0xAFF1,
+ 0xB00C,
+ 0xB00D,
+ 0xB028,
+ 0xB029,
+ 0xB044,
+ 0xB045,
+ 0xB060,
+ 0xB061,
+ 0xB07C,
+ 0xB07D,
+ 0xB098,
+ 0xB099,
+ 0xB0B4,
+ 0xB0B5,
+ 0xB0D0,
+ 0xB0D1,
+ 0xB0EC,
+ 0xB0ED,
+ 0xB108,
+ 0xB109,
+ 0xB124,
+ 0xB125,
+ 0xB140,
+ 0xB141,
+ 0xB15C,
+ 0xB15D,
+ 0xB178,
+ 0xB179,
+ 0xB194,
+ 0xB195,
+ 0xB1B0,
+ 0xB1B1,
+ 0xB1CC,
+ 0xB1CD,
+ 0xB1E8,
+ 0xB1E9,
+ 0xB204,
+ 0xB205,
+ 0xB220,
+ 0xB221,
+ 0xB23C,
+ 0xB23D,
+ 0xB258,
+ 0xB259,
+ 0xB274,
+ 0xB275,
+ 0xB290,
+ 0xB291,
+ 0xB2AC,
+ 0xB2AD,
+ 0xB2C8,
+ 0xB2C9,
+ 0xB2E4,
+ 0xB2E5,
+ 0xB300,
+ 0xB301,
+ 0xB31C,
+ 0xB31D,
+ 0xB338,
+ 0xB339,
+ 0xB354,
+ 0xB355,
+ 0xB370,
+ 0xB371,
+ 0xB38C,
+ 0xB38D,
+ 0xB3A8,
+ 0xB3A9,
+ 0xB3C4,
+ 0xB3C5,
+ 0xB3E0,
+ 0xB3E1,
+ 0xB3FC,
+ 0xB3FD,
+ 0xB418,
+ 0xB419,
+ 0xB434,
+ 0xB435,
+ 0xB450,
+ 0xB451,
+ 0xB46C,
+ 0xB46D,
+ 0xB488,
+ 0xB489,
+ 0xB4A4,
+ 0xB4A5,
+ 0xB4C0,
+ 0xB4C1,
+ 0xB4DC,
+ 0xB4DD,
+ 0xB4F8,
+ 0xB4F9,
+ 0xB514,
+ 0xB515,
+ 0xB530,
+ 0xB531,
+ 0xB54C,
+ 0xB54D,
+ 0xB568,
+ 0xB569,
+ 0xB584,
+ 0xB585,
+ 0xB5A0,
+ 0xB5A1,
+ 0xB5BC,
+ 0xB5BD,
+ 0xB5D8,
+ 0xB5D9,
+ 0xB5F4,
+ 0xB5F5,
+ 0xB610,
+ 0xB611,
+ 0xB62C,
+ 0xB62D,
+ 0xB648,
+ 0xB649,
+ 0xB664,
+ 0xB665,
+ 0xB680,
+ 0xB681,
+ 0xB69C,
+ 0xB69D,
+ 0xB6B8,
+ 0xB6B9,
+ 0xB6D4,
+ 0xB6D5,
+ 0xB6F0,
+ 0xB6F1,
+ 0xB70C,
+ 0xB70D,
+ 0xB728,
+ 0xB729,
+ 0xB744,
+ 0xB745,
+ 0xB760,
+ 0xB761,
+ 0xB77C,
+ 0xB77D,
+ 0xB798,
+ 0xB799,
+ 0xB7B4,
+ 0xB7B5,
+ 0xB7D0,
+ 0xB7D1,
+ 0xB7EC,
+ 0xB7ED,
+ 0xB808,
+ 0xB809,
+ 0xB824,
+ 0xB825,
+ 0xB840,
+ 0xB841,
+ 0xB85C,
+ 0xB85D,
+ 0xB878,
+ 0xB879,
+ 0xB894,
+ 0xB895,
+ 0xB8B0,
+ 0xB8B1,
+ 0xB8CC,
+ 0xB8CD,
+ 0xB8E8,
+ 0xB8E9,
+ 0xB904,
+ 0xB905,
+ 0xB920,
+ 0xB921,
+ 0xB93C,
+ 0xB93D,
+ 0xB958,
+ 0xB959,
+ 0xB974,
+ 0xB975,
+ 0xB990,
+ 0xB991,
+ 0xB9AC,
+ 0xB9AD,
+ 0xB9C8,
+ 0xB9C9,
+ 0xB9E4,
+ 0xB9E5,
+ 0xBA00,
+ 0xBA01,
+ 0xBA1C,
+ 0xBA1D,
+ 0xBA38,
+ 0xBA39,
+ 0xBA54,
+ 0xBA55,
+ 0xBA70,
+ 0xBA71,
+ 0xBA8C,
+ 0xBA8D,
+ 0xBAA8,
+ 0xBAA9,
+ 0xBAC4,
+ 0xBAC5,
+ 0xBAE0,
+ 0xBAE1,
+ 0xBAFC,
+ 0xBAFD,
+ 0xBB18,
+ 0xBB19,
+ 0xBB34,
+ 0xBB35,
+ 0xBB50,
+ 0xBB51,
+ 0xBB6C,
+ 0xBB6D,
+ 0xBB88,
+ 0xBB89,
+ 0xBBA4,
+ 0xBBA5,
+ 0xBBC0,
+ 0xBBC1,
+ 0xBBDC,
+ 0xBBDD,
+ 0xBBF8,
+ 0xBBF9,
+ 0xBC14,
+ 0xBC15,
+ 0xBC30,
+ 0xBC31,
+ 0xBC4C,
+ 0xBC4D,
+ 0xBC68,
+ 0xBC69,
+ 0xBC84,
+ 0xBC85,
+ 0xBCA0,
+ 0xBCA1,
+ 0xBCBC,
+ 0xBCBD,
+ 0xBCD8,
+ 0xBCD9,
+ 0xBCF4,
+ 0xBCF5,
+ 0xBD10,
+ 0xBD11,
+ 0xBD2C,
+ 0xBD2D,
+ 0xBD48,
+ 0xBD49,
+ 0xBD64,
+ 0xBD65,
+ 0xBD80,
+ 0xBD81,
+ 0xBD9C,
+ 0xBD9D,
+ 0xBDB8,
+ 0xBDB9,
+ 0xBDD4,
+ 0xBDD5,
+ 0xBDF0,
+ 0xBDF1,
+ 0xBE0C,
+ 0xBE0D,
+ 0xBE28,
+ 0xBE29,
+ 0xBE44,
+ 0xBE45,
+ 0xBE60,
+ 0xBE61,
+ 0xBE7C,
+ 0xBE7D,
+ 0xBE98,
+ 0xBE99,
+ 0xBEB4,
+ 0xBEB5,
+ 0xBED0,
+ 0xBED1,
+ 0xBEEC,
+ 0xBEED,
+ 0xBF08,
+ 0xBF09,
+ 0xBF24,
+ 0xBF25,
+ 0xBF40,
+ 0xBF41,
+ 0xBF5C,
+ 0xBF5D,
+ 0xBF78,
+ 0xBF79,
+ 0xBF94,
+ 0xBF95,
+ 0xBFB0,
+ 0xBFB1,
+ 0xBFCC,
+ 0xBFCD,
+ 0xBFE8,
+ 0xBFE9,
+ 0xC004,
+ 0xC005,
+ 0xC020,
+ 0xC021,
+ 0xC03C,
+ 0xC03D,
+ 0xC058,
+ 0xC059,
+ 0xC074,
+ 0xC075,
+ 0xC090,
+ 0xC091,
+ 0xC0AC,
+ 0xC0AD,
+ 0xC0C8,
+ 0xC0C9,
+ 0xC0E4,
+ 0xC0E5,
+ 0xC100,
+ 0xC101,
+ 0xC11C,
+ 0xC11D,
+ 0xC138,
+ 0xC139,
+ 0xC154,
+ 0xC155,
+ 0xC170,
+ 0xC171,
+ 0xC18C,
+ 0xC18D,
+ 0xC1A8,
+ 0xC1A9,
+ 0xC1C4,
+ 0xC1C5,
+ 0xC1E0,
+ 0xC1E1,
+ 0xC1FC,
+ 0xC1FD,
+ 0xC218,
+ 0xC219,
+ 0xC234,
+ 0xC235,
+ 0xC250,
+ 0xC251,
+ 0xC26C,
+ 0xC26D,
+ 0xC288,
+ 0xC289,
+ 0xC2A4,
+ 0xC2A5,
+ 0xC2C0,
+ 0xC2C1,
+ 0xC2DC,
+ 0xC2DD,
+ 0xC2F8,
+ 0xC2F9,
+ 0xC314,
+ 0xC315,
+ 0xC330,
+ 0xC331,
+ 0xC34C,
+ 0xC34D,
+ 0xC368,
+ 0xC369,
+ 0xC384,
+ 0xC385,
+ 0xC3A0,
+ 0xC3A1,
+ 0xC3BC,
+ 0xC3BD,
+ 0xC3D8,
+ 0xC3D9,
+ 0xC3F4,
+ 0xC3F5,
+ 0xC410,
+ 0xC411,
+ 0xC42C,
+ 0xC42D,
+ 0xC448,
+ 0xC449,
+ 0xC464,
+ 0xC465,
+ 0xC480,
+ 0xC481,
+ 0xC49C,
+ 0xC49D,
+ 0xC4B8,
+ 0xC4B9,
+ 0xC4D4,
+ 0xC4D5,
+ 0xC4F0,
+ 0xC4F1,
+ 0xC50C,
+ 0xC50D,
+ 0xC528,
+ 0xC529,
+ 0xC544,
+ 0xC545,
+ 0xC560,
+ 0xC561,
+ 0xC57C,
+ 0xC57D,
+ 0xC598,
+ 0xC599,
+ 0xC5B4,
+ 0xC5B5,
+ 0xC5D0,
+ 0xC5D1,
+ 0xC5EC,
+ 0xC5ED,
+ 0xC608,
+ 0xC609,
+ 0xC624,
+ 0xC625,
+ 0xC640,
+ 0xC641,
+ 0xC65C,
+ 0xC65D,
+ 0xC678,
+ 0xC679,
+ 0xC694,
+ 0xC695,
+ 0xC6B0,
+ 0xC6B1,
+ 0xC6CC,
+ 0xC6CD,
+ 0xC6E8,
+ 0xC6E9,
+ 0xC704,
+ 0xC705,
+ 0xC720,
+ 0xC721,
+ 0xC73C,
+ 0xC73D,
+ 0xC758,
+ 0xC759,
+ 0xC774,
+ 0xC775,
+ 0xC790,
+ 0xC791,
+ 0xC7AC,
+ 0xC7AD,
+ 0xC7C8,
+ 0xC7C9,
+ 0xC7E4,
+ 0xC7E5,
+ 0xC800,
+ 0xC801,
+ 0xC81C,
+ 0xC81D,
+ 0xC838,
+ 0xC839,
+ 0xC854,
+ 0xC855,
+ 0xC870,
+ 0xC871,
+ 0xC88C,
+ 0xC88D,
+ 0xC8A8,
+ 0xC8A9,
+ 0xC8C4,
+ 0xC8C5,
+ 0xC8E0,
+ 0xC8E1,
+ 0xC8FC,
+ 0xC8FD,
+ 0xC918,
+ 0xC919,
+ 0xC934,
+ 0xC935,
+ 0xC950,
+ 0xC951,
+ 0xC96C,
+ 0xC96D,
+ 0xC988,
+ 0xC989,
+ 0xC9A4,
+ 0xC9A5,
+ 0xC9C0,
+ 0xC9C1,
+ 0xC9DC,
+ 0xC9DD,
+ 0xC9F8,
+ 0xC9F9,
+ 0xCA14,
+ 0xCA15,
+ 0xCA30,
+ 0xCA31,
+ 0xCA4C,
+ 0xCA4D,
+ 0xCA68,
+ 0xCA69,
+ 0xCA84,
+ 0xCA85,
+ 0xCAA0,
+ 0xCAA1,
+ 0xCABC,
+ 0xCABD,
+ 0xCAD8,
+ 0xCAD9,
+ 0xCAF4,
+ 0xCAF5,
+ 0xCB10,
+ 0xCB11,
+ 0xCB2C,
+ 0xCB2D,
+ 0xCB48,
+ 0xCB49,
+ 0xCB64,
+ 0xCB65,
+ 0xCB80,
+ 0xCB81,
+ 0xCB9C,
+ 0xCB9D,
+ 0xCBB8,
+ 0xCBB9,
+ 0xCBD4,
+ 0xCBD5,
+ 0xCBF0,
+ 0xCBF1,
+ 0xCC0C,
+ 0xCC0D,
+ 0xCC28,
+ 0xCC29,
+ 0xCC44,
+ 0xCC45,
+ 0xCC60,
+ 0xCC61,
+ 0xCC7C,
+ 0xCC7D,
+ 0xCC98,
+ 0xCC99,
+ 0xCCB4,
+ 0xCCB5,
+ 0xCCD0,
+ 0xCCD1,
+ 0xCCEC,
+ 0xCCED,
+ 0xCD08,
+ 0xCD09,
+ 0xCD24,
+ 0xCD25,
+ 0xCD40,
+ 0xCD41,
+ 0xCD5C,
+ 0xCD5D,
+ 0xCD78,
+ 0xCD79,
+ 0xCD94,
+ 0xCD95,
+ 0xCDB0,
+ 0xCDB1,
+ 0xCDCC,
+ 0xCDCD,
+ 0xCDE8,
+ 0xCDE9,
+ 0xCE04,
+ 0xCE05,
+ 0xCE20,
+ 0xCE21,
+ 0xCE3C,
+ 0xCE3D,
+ 0xCE58,
+ 0xCE59,
+ 0xCE74,
+ 0xCE75,
+ 0xCE90,
+ 0xCE91,
+ 0xCEAC,
+ 0xCEAD,
+ 0xCEC8,
+ 0xCEC9,
+ 0xCEE4,
+ 0xCEE5,
+ 0xCF00,
+ 0xCF01,
+ 0xCF1C,
+ 0xCF1D,
+ 0xCF38,
+ 0xCF39,
+ 0xCF54,
+ 0xCF55,
+ 0xCF70,
+ 0xCF71,
+ 0xCF8C,
+ 0xCF8D,
+ 0xCFA8,
+ 0xCFA9,
+ 0xCFC4,
+ 0xCFC5,
+ 0xCFE0,
+ 0xCFE1,
+ 0xCFFC,
+ 0xCFFD,
+ 0xD018,
+ 0xD019,
+ 0xD034,
+ 0xD035,
+ 0xD050,
+ 0xD051,
+ 0xD06C,
+ 0xD06D,
+ 0xD088,
+ 0xD089,
+ 0xD0A4,
+ 0xD0A5,
+ 0xD0C0,
+ 0xD0C1,
+ 0xD0DC,
+ 0xD0DD,
+ 0xD0F8,
+ 0xD0F9,
+ 0xD114,
+ 0xD115,
+ 0xD130,
+ 0xD131,
+ 0xD14C,
+ 0xD14D,
+ 0xD168,
+ 0xD169,
+ 0xD184,
+ 0xD185,
+ 0xD1A0,
+ 0xD1A1,
+ 0xD1BC,
+ 0xD1BD,
+ 0xD1D8,
+ 0xD1D9,
+ 0xD1F4,
+ 0xD1F5,
+ 0xD210,
+ 0xD211,
+ 0xD22C,
+ 0xD22D,
+ 0xD248,
+ 0xD249,
+ 0xD264,
+ 0xD265,
+ 0xD280,
+ 0xD281,
+ 0xD29C,
+ 0xD29D,
+ 0xD2B8,
+ 0xD2B9,
+ 0xD2D4,
+ 0xD2D5,
+ 0xD2F0,
+ 0xD2F1,
+ 0xD30C,
+ 0xD30D,
+ 0xD328,
+ 0xD329,
+ 0xD344,
+ 0xD345,
+ 0xD360,
+ 0xD361,
+ 0xD37C,
+ 0xD37D,
+ 0xD398,
+ 0xD399,
+ 0xD3B4,
+ 0xD3B5,
+ 0xD3D0,
+ 0xD3D1,
+ 0xD3EC,
+ 0xD3ED,
+ 0xD408,
+ 0xD409,
+ 0xD424,
+ 0xD425,
+ 0xD440,
+ 0xD441,
+ 0xD45C,
+ 0xD45D,
+ 0xD478,
+ 0xD479,
+ 0xD494,
+ 0xD495,
+ 0xD4B0,
+ 0xD4B1,
+ 0xD4CC,
+ 0xD4CD,
+ 0xD4E8,
+ 0xD4E9,
+ 0xD504,
+ 0xD505,
+ 0xD520,
+ 0xD521,
+ 0xD53C,
+ 0xD53D,
+ 0xD558,
+ 0xD559,
+ 0xD574,
+ 0xD575,
+ 0xD590,
+ 0xD591,
+ 0xD5AC,
+ 0xD5AD,
+ 0xD5C8,
+ 0xD5C9,
+ 0xD5E4,
+ 0xD5E5,
+ 0xD600,
+ 0xD601,
+ 0xD61C,
+ 0xD61D,
+ 0xD638,
+ 0xD639,
+ 0xD654,
+ 0xD655,
+ 0xD670,
+ 0xD671,
+ 0xD68C,
+ 0xD68D,
+ 0xD6A8,
+ 0xD6A9,
+ 0xD6C4,
+ 0xD6C5,
+ 0xD6E0,
+ 0xD6E1,
+ 0xD6FC,
+ 0xD6FD,
+ 0xD718,
+ 0xD719,
+ 0xD734,
+ 0xD735,
+ 0xD750,
+ 0xD751,
+ 0xD76C,
+ 0xD76D,
+ 0xD788,
+ 0xD789,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xD800,
+ 0xE000,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFE00,
+ 0xFE10,
+ 0xFE20,
+ 0xFE2E,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFF0,
+ 0xFFFC,
+ 0x101FD,
+ 0x101FE,
+ 0x102E0,
+ 0x102E1,
+ 0x10376,
+ 0x1037B,
+ 0x10A01,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A10,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10AE5,
+ 0x10AE7,
+ 0x11000,
+ 0x11001,
+ 0x11002,
+ 0x11003,
+ 0x11038,
+ 0x11047,
+ 0x1107F,
+ 0x11082,
+ 0x11083,
+ 0x110B0,
+ 0x110B3,
+ 0x110B7,
+ 0x110B9,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x11100,
+ 0x11103,
+ 0x11127,
+ 0x1112C,
+ 0x1112D,
+ 0x11135,
+ 0x11173,
+ 0x11174,
+ 0x11180,
+ 0x11182,
+ 0x11183,
+ 0x111B3,
+ 0x111B6,
+ 0x111BF,
+ 0x111C1,
+ 0x1122C,
+ 0x1122F,
+ 0x11232,
+ 0x11234,
+ 0x11235,
+ 0x11236,
+ 0x11238,
+ 0x112DF,
+ 0x112E0,
+ 0x112E3,
+ 0x112EB,
+ 0x11301,
+ 0x11302,
+ 0x11304,
+ 0x1133C,
+ 0x1133D,
+ 0x1133E,
+ 0x1133F,
+ 0x11340,
+ 0x11341,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x11362,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x114B0,
+ 0x114B1,
+ 0x114B3,
+ 0x114B9,
+ 0x114BA,
+ 0x114BB,
+ 0x114BD,
+ 0x114BE,
+ 0x114BF,
+ 0x114C1,
+ 0x114C2,
+ 0x114C4,
+ 0x115AF,
+ 0x115B0,
+ 0x115B2,
+ 0x115B6,
+ 0x115B8,
+ 0x115BC,
+ 0x115BE,
+ 0x115BF,
+ 0x115C1,
+ 0x11630,
+ 0x11633,
+ 0x1163B,
+ 0x1163D,
+ 0x1163E,
+ 0x1163F,
+ 0x11641,
+ 0x116AB,
+ 0x116AC,
+ 0x116AD,
+ 0x116AE,
+ 0x116B0,
+ 0x116B6,
+ 0x116B7,
+ 0x116B8,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B30,
+ 0x16B37,
+ 0x16F51,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16F93,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1BCA0,
+ 0x1BCA4,
+ 0x1D165,
+ 0x1D166,
+ 0x1D167,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D16E,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1F1E6,
+ 0x1F200,
+ 0xE0000,
+ 0xE0100,
+ 0xE01F0,
+ 0xE1000
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define GCB_ENUM_COUNT 14
+
+typedef enum {
+ GCB_Other = 0,
+ GCB_CR = 1,
+ GCB_Control = 2,
+ GCB_EDGE = 3,
+ GCB_Extend = 4,
+ GCB_L = 5,
+ GCB_LF = 6,
+ GCB_LV = 7,
+ GCB_LVT = 8,
+ GCB_Prepend = 9,
+ GCB_Regional_Indicator = 10,
+ GCB_SpacingMark = 11,
+ GCB_T = 12,
+ GCB_V = 13
+} GCB_enum;
+
+static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for ASCII/Latin1 */
+ GCB_Control,
+ GCB_LF,
+ GCB_Control,
+ GCB_CR,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_L,
+ GCB_V,
+ GCB_T,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_L,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_Other,
+ GCB_V,
+ GCB_Other,
+ GCB_T,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Regional_Indicator,
+ GCB_Other,
+ GCB_Control,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other
+};
-static const UV Cased_invlist[] = {
- 239, /* Number of elements */
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for ASCII/Latin1 */
+ 45, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x2BC,
+ 0x2BD,
+ 0x308,
+ 0x309,
+ 0x313,
+ 0x314,
+ 0x342,
+ 0x343,
+ 0x3AC,
+ 0x3AD,
+ 0x3AE,
+ 0x3AF,
+ 0x3B1,
+ 0x3B2,
+ 0x3B7,
+ 0x3B8,
+ 0x3B9,
+ 0x3BA,
+ 0x3C1,
+ 0x3C2,
+ 0x3C5,
+ 0x3C6,
+ 0x3C9,
+ 0x3CA,
+ 0x3CE,
+ 0x3CF,
+ 0x565,
+ 0x566,
+ 0x574,
+ 0x575,
+ 0x57E,
+ 0x57F,
+ 0x1F00,
+ 0x1F08,
+ 0x1F20,
+ 0x1F28,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1F71,
+ 0x1F74,
+ 0x1F75,
+ 0x1F7C,
+ 0x1F7D
+};
+
+static const UV _Perl_Any_Folds_invlist[] = { /* for ASCII/Latin1 */
+ 235, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 65,
- 91,
- 97,
- 123,
- 170,
- 171,
- 181,
- 182,
- 186,
- 187,
- 192,
- 215,
- 216,
- 247,
- 248,
- 443,
- 444,
- 448,
- 452,
- 660,
- 661,
- 697,
- 704,
- 706,
- 736,
- 741,
- 837,
- 838,
- 880,
- 884,
- 886,
- 888,
- 890,
- 894,
- 902,
- 903,
- 904,
- 907,
- 908,
- 909,
- 910,
- 930,
- 931,
- 1014,
- 1015,
- 1154,
- 1162,
- 1320,
- 1329,
- 1367,
- 1377,
- 1416,
- 4256,
- 4294,
- 4295,
- 4296,
- 4301,
- 4302,
- 7424,
- 7616,
- 7680,
- 7958,
- 7960,
- 7966,
- 7968,
- 8006,
- 8008,
- 8014,
- 8016,
- 8024,
- 8025,
- 8026,
- 8027,
- 8028,
- 8029,
- 8030,
- 8031,
- 8062,
- 8064,
- 8117,
- 8118,
- 8125,
- 8126,
- 8127,
- 8130,
- 8133,
- 8134,
- 8141,
- 8144,
- 8148,
- 8150,
- 8156,
- 8160,
- 8173,
- 8178,
- 8181,
- 8182,
- 8189,
- 8305,
- 8306,
- 8319,
- 8320,
- 8336,
- 8349,
- 8450,
- 8451,
- 8455,
- 8456,
- 8458,
- 8468,
- 8469,
- 8470,
- 8473,
- 8478,
- 8484,
- 8485,
- 8486,
- 8487,
- 8488,
- 8489,
- 8490,
- 8494,
- 8495,
- 8501,
- 8505,
- 8506,
- 8508,
- 8512,
- 8517,
- 8522,
- 8526,
- 8527,
- 8544,
- 8576,
- 8579,
- 8581,
- 9398,
- 9450,
- 11264,
- 11311,
- 11312,
- 11359,
- 11360,
- 11493,
- 11499,
- 11503,
- 11506,
- 11508,
- 11520,
- 11558,
- 11559,
- 11560,
- 11565,
- 11566,
- 42560,
- 42606,
- 42624,
- 42648,
- 42786,
- 42888,
- 42891,
- 42895,
- 42896,
- 42900,
- 42912,
- 42923,
- 43000,
- 43003,
- 64256,
- 64263,
- 64275,
- 64280,
- 65313,
- 65339,
- 65345,
- 65371,
- 66560,
- 66640,
- 119808,
- 119893,
- 119894,
- 119965,
- 119966,
- 119968,
- 119970,
- 119971,
- 119973,
- 119975,
- 119977,
- 119981,
- 119982,
- 119994,
- 119995,
- 119996,
- 119997,
- 120004,
- 120005,
- 120070,
- 120071,
- 120075,
- 120077,
- 120085,
- 120086,
- 120093,
- 120094,
- 120122,
- 120123,
- 120127,
- 120128,
- 120133,
- 120134,
- 120135,
- 120138,
- 120145,
- 120146,
- 120486,
- 120488,
- 120513,
- 120514,
- 120539,
- 120540,
- 120571,
- 120572,
- 120597,
- 120598,
- 120629,
- 120630,
- 120655,
- 120656,
- 120687,
- 120688,
- 120713,
- 120714,
- 120745,
- 120746,
- 120771,
- 120772,
- 120780
+ 0x0,
+ 0x41,
+ 0x5B,
+ 0x61,
+ 0x7B,
+ 0xB5,
+ 0xB6,
+ 0xC0,
+ 0xD7,
+ 0xD8,
+ 0xF7,
+ 0xF8,
+ 0x131,
+ 0x132,
+ 0x138,
+ 0x139,
+ 0x18D,
+ 0x18E,
+ 0x19B,
+ 0x19C,
+ 0x1AA,
+ 0x1AC,
+ 0x1BA,
+ 0x1BC,
+ 0x1BE,
+ 0x1BF,
+ 0x1C0,
+ 0x1C4,
+ 0x221,
+ 0x222,
+ 0x234,
+ 0x23A,
+ 0x255,
+ 0x256,
+ 0x258,
+ 0x259,
+ 0x25A,
+ 0x25B,
+ 0x25D,
+ 0x260,
+ 0x262,
+ 0x263,
+ 0x264,
+ 0x265,
+ 0x267,
+ 0x268,
+ 0x26A,
+ 0x26B,
+ 0x26D,
+ 0x26F,
+ 0x270,
+ 0x271,
+ 0x273,
+ 0x275,
+ 0x276,
+ 0x27D,
+ 0x27E,
+ 0x280,
+ 0x281,
+ 0x283,
+ 0x284,
+ 0x287,
+ 0x28D,
+ 0x292,
+ 0x293,
+ 0x29E,
+ 0x29F,
+ 0x2BC,
+ 0x2BD,
+ 0x2BE,
+ 0x2BF,
+ 0x300,
+ 0x302,
+ 0x307,
+ 0x309,
+ 0x30A,
+ 0x30B,
+ 0x30C,
+ 0x30D,
+ 0x313,
+ 0x314,
+ 0x331,
+ 0x332,
+ 0x342,
+ 0x343,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x374,
+ 0x376,
+ 0x378,
+ 0x37B,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3D2,
+ 0x3D5,
+ 0x3F6,
+ 0x3F7,
+ 0x3FC,
+ 0x3FD,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x561,
+ 0x588,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x1D79,
+ 0x1D7A,
+ 0x1D7D,
+ 0x1D7E,
+ 0x1E00,
+ 0x1E9C,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2126,
+ 0x2127,
+ 0x212A,
+ 0x212C,
+ 0x2132,
+ 0x2133,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2180,
+ 0x2183,
+ 0x2185,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2C71,
+ 0x2C72,
+ 0x2C74,
+ 0x2C75,
+ 0x2C77,
+ 0x2C7E,
+ 0x2CE4,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0xA640,
+ 0xA66E,
+ 0xA680,
+ 0xA69C,
+ 0xA722,
+ 0xA730,
+ 0xA732,
+ 0xA770,
+ 0xA779,
+ 0xA788,
+ 0xA78B,
+ 0xA78E,
+ 0xA790,
+ 0xA794,
+ 0xA796,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0x10400,
+ 0x10450,
+ 0x118A0,
+ 0x118E0
};
-#endif
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for ASCII/Latin1 */
+ 59, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0xDF,
+ 0xE0,
+ 0x130,
+ 0x131,
+ 0x149,
+ 0x14A,
+ 0x1F0,
+ 0x1F1,
+ 0x390,
+ 0x391,
+ 0x3B0,
+ 0x3B1,
+ 0x587,
+ 0x588,
+ 0x1E96,
+ 0x1E9B,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1F50,
+ 0x1F51,
+ 0x1F52,
+ 0x1F53,
+ 0x1F54,
+ 0x1F55,
+ 0x1F56,
+ 0x1F57,
+ 0x1F80,
+ 0x1FB0,
+ 0x1FB2,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FB8,
+ 0x1FBC,
+ 0x1FBD,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FC8,
+ 0x1FCC,
+ 0x1FCD,
+ 0x1FD2,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FD8,
+ 0x1FE2,
+ 0x1FE5,
+ 0x1FE6,
+ 0x1FE8,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FF8,
+ 0x1FFC,
+ 0x1FFD,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18
+};
+
+#endif /* defined(PERL_IN_REGCOMP_C) */
-#ifndef PERL_IN_XSUB_RE
+#if defined(PERL_IN_UTF8_C)
-static const UV VertSpace_invlist[] = {
+static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
+ 1267, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x30,
+ 0x3A,
+ 0x41,
+ 0x5B,
+ 0x5F,
+ 0x60,
+ 0x61,
+ 0x7B,
+ 0xAA,
+ 0xAB,
+ 0xB5,
+ 0xB6,
+ 0xBA,
+ 0xBB,
+ 0xC0,
+ 0xD7,
+ 0xD8,
+ 0xF7,
+ 0xF8,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37B,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x483,
+ 0x488,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6DF,
+ 0x6E9,
+ 0x6EA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x840,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x1000,
+ 0x104A,
+ 0x1050,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1735,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x180B,
+ 0x180E,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1946,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AB0,
+ 0x1ABE,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C38,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C7E,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x203F,
+ 0x2041,
+ 0x2054,
+ 0x2055,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20DD,
+ 0x20E1,
+ 0x20E2,
+ 0x20E5,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA62C,
+ 0xA640,
+ 0xA670,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F2,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C5,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA92E,
+ 0xA930,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9C1,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFC5E,
+ 0xFC64,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFA,
+ 0xFE00,
+ 0xFE10,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE33,
+ 0xFE35,
+ 0xFE4D,
+ 0xFE50,
+ 0xFE71,
+ 0xFE72,
+ 0xFE73,
+ 0xFE74,
+ 0xFE77,
+ 0xFE78,
+ 0xFE79,
+ 0xFE7A,
+ 0xFE7B,
+ 0xFE7C,
+ 0xFE7D,
+ 0xFE7E,
+ 0xFE7F,
+ 0xFEFD,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11047,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x110BB,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C5,
+ 0x111D0,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11238,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x11600,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0100,
+ 0xE01F0
+};
+
+static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
+ 1095, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x41,
+ 0x5B,
+ 0x5F,
+ 0x60,
+ 0x61,
+ 0x7B,
+ 0xAA,
+ 0xAB,
+ 0xB5,
+ 0xB6,
+ 0xBA,
+ 0xBB,
+ 0xC0,
+ 0xD7,
+ 0xD8,
+ 0xF7,
+ 0xF8,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37B,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x620,
+ 0x64B,
+ 0x66E,
+ 0x670,
+ 0x671,
+ 0x6D4,
+ 0x6D5,
+ 0x6D6,
+ 0x6E5,
+ 0x6E7,
+ 0x6EE,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74D,
+ 0x7A6,
+ 0x7B1,
+ 0x7B2,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x840,
+ 0x859,
+ 0x8A0,
+ 0x8B3,
+ 0x904,
+ 0x93A,
+ 0x93D,
+ 0x93E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x971,
+ 0x981,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BD,
+ 0x9BE,
+ 0x9CE,
+ 0x9CF,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E2,
+ 0x9F0,
+ 0x9F2,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA72,
+ 0xA75,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABD,
+ 0xABE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE2,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3D,
+ 0xB3E,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB62,
+ 0xB71,
+ 0xB72,
+ 0xB83,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBD0,
+ 0xBD1,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC3E,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC62,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBD,
+ 0xCBE,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE2,
+ 0xCF1,
+ 0xCF3,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD3E,
+ 0xD4E,
+ 0xD4F,
+ 0xD60,
+ 0xD62,
+ 0xD7A,
+ 0xD80,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xE01,
+ 0xE31,
+ 0xE32,
+ 0xE33,
+ 0xE40,
+ 0xE47,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEB1,
+ 0xEB2,
+ 0xEB3,
+ 0xEBD,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF88,
+ 0xF8D,
+ 0x1000,
+ 0x102B,
+ 0x103F,
+ 0x1040,
+ 0x1050,
+ 0x1056,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1062,
+ 0x1065,
+ 0x1067,
+ 0x106E,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x108E,
+ 0x108F,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1712,
+ 0x1720,
+ 0x1732,
+ 0x1740,
+ 0x1752,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1780,
+ 0x17B4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18A9,
+ 0x18AA,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1950,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19C1,
+ 0x19C8,
+ 0x1A00,
+ 0x1A17,
+ 0x1A20,
+ 0x1A55,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1B05,
+ 0x1B34,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BAE,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1C00,
+ 0x1C24,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1D00,
+ 0x1DC0,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x302A,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA67F,
+ 0xA69E,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA840,
+ 0xA874,
+ 0xA882,
+ 0xA8B4,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA90A,
+ 0xA926,
+ 0xA930,
+ 0xA947,
+ 0xA960,
+ 0xA97D,
+ 0xA984,
+ 0xA9B3,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA29,
+ 0xAA40,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAEB,
+ 0xAAF2,
+ 0xAAF5,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABE3,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFC5E,
+ 0xFC64,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFA,
+ 0xFE71,
+ 0xFE72,
+ 0xFE73,
+ 0xFE74,
+ 0xFE77,
+ 0xFE78,
+ 0xFE79,
+ 0xFE7A,
+ 0xFE7B,
+ 0xFE7C,
+ 0xFE7D,
+ 0xFE7E,
+ 0xFE7F,
+ 0xFEFD,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x10376,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A01,
+ 0x10A10,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11003,
+ 0x11038,
+ 0x11083,
+ 0x110B0,
+ 0x110D0,
+ 0x110E9,
+ 0x11103,
+ 0x11127,
+ 0x11150,
+ 0x11173,
+ 0x11176,
+ 0x11177,
+ 0x11183,
+ 0x111B3,
+ 0x111C1,
+ 0x111C5,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1122C,
+ 0x112B0,
+ 0x112DF,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133D,
+ 0x1133E,
+ 0x1135D,
+ 0x11362,
+ 0x11480,
+ 0x114B0,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x11580,
+ 0x115AF,
+ 0x11600,
+ 0x11630,
+ 0x11644,
+ 0x11645,
+ 0x11680,
+ 0x116AB,
+ 0x118A0,
+ 0x118E0,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16B00,
+ 0x16B30,
+ 0x16B40,
+ 0x16B44,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F51,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E
+};
+
+#endif /* defined(PERL_IN_UTF8_C) */
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV Sentence_Break_invlist[] = { /* for ASCII/Latin1 */
+ 2835, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x9,
+ 0xA,
+ 0xB,
+ 0xD,
+ 0xE,
+ 0x20,
+ 0x21,
+ 0x22,
+ 0x23,
+ 0x27,
+ 0x2A,
+ 0x2C,
+ 0x2E,
+ 0x2F,
+ 0x30,
+ 0x3A,
+ 0x3B,
+ 0x3F,
+ 0x40,
+ 0x41,
+ 0x5B,
+ 0x5C,
+ 0x5D,
+ 0x5E,
+ 0x61,
+ 0x7B,
+ 0x7C,
+ 0x7D,
+ 0x7E,
+ 0x85,
+ 0x86,
+ 0xA0,
+ 0xA1,
+ 0xAA,
+ 0xAB,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xB5,
+ 0xB6,
+ 0xBA,
+ 0xBB,
+ 0xBC,
+ 0xC0,
+ 0xD7,
+ 0xD8,
+ 0xDF,
+ 0xF7,
+ 0xF8,
+ 0x100,
+ 0x101,
+ 0x102,
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x106,
+ 0x107,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x10E,
+ 0x10F,
+ 0x110,
+ 0x111,
+ 0x112,
+ 0x113,
+ 0x114,
+ 0x115,
+ 0x116,
+ 0x117,
+ 0x118,
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x11C,
+ 0x11D,
+ 0x11E,
+ 0x11F,
+ 0x120,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x124,
+ 0x125,
+ 0x126,
+ 0x127,
+ 0x128,
+ 0x129,
+ 0x12A,
+ 0x12B,
+ 0x12C,
+ 0x12D,
+ 0x12E,
+ 0x12F,
+ 0x130,
+ 0x131,
+ 0x132,
+ 0x133,
+ 0x134,
+ 0x135,
+ 0x136,
+ 0x137,
+ 0x139,
+ 0x13A,
+ 0x13B,
+ 0x13C,
+ 0x13D,
+ 0x13E,
+ 0x13F,
+ 0x140,
+ 0x141,
+ 0x142,
+ 0x143,
+ 0x144,
+ 0x145,
+ 0x146,
+ 0x147,
+ 0x148,
+ 0x14A,
+ 0x14B,
+ 0x14C,
+ 0x14D,
+ 0x14E,
+ 0x14F,
+ 0x150,
+ 0x151,
+ 0x152,
+ 0x153,
+ 0x154,
+ 0x155,
+ 0x156,
+ 0x157,
+ 0x158,
+ 0x159,
+ 0x15A,
+ 0x15B,
+ 0x15C,
+ 0x15D,
+ 0x15E,
+ 0x15F,
+ 0x160,
+ 0x161,
+ 0x162,
+ 0x163,
+ 0x164,
+ 0x165,
+ 0x166,
+ 0x167,
+ 0x168,
+ 0x169,
+ 0x16A,
+ 0x16B,
+ 0x16C,
+ 0x16D,
+ 0x16E,
+ 0x16F,
+ 0x170,
+ 0x171,
+ 0x172,
+ 0x173,
+ 0x174,
+ 0x175,
+ 0x176,
+ 0x177,
+ 0x178,
+ 0x17A,
+ 0x17B,
+ 0x17C,
+ 0x17D,
+ 0x17E,
+ 0x181,
+ 0x183,
+ 0x184,
+ 0x185,
+ 0x186,
+ 0x188,
+ 0x189,
+ 0x18C,
+ 0x18E,
+ 0x192,
+ 0x193,
+ 0x195,
+ 0x196,
+ 0x199,
+ 0x19C,
+ 0x19E,
+ 0x19F,
+ 0x1A1,
+ 0x1A2,
+ 0x1A3,
+ 0x1A4,
+ 0x1A5,
+ 0x1A6,
+ 0x1A8,
+ 0x1A9,
+ 0x1AA,
+ 0x1AC,
+ 0x1AD,
+ 0x1AE,
+ 0x1B0,
+ 0x1B1,
+ 0x1B4,
+ 0x1B5,
+ 0x1B6,
+ 0x1B7,
+ 0x1B9,
+ 0x1BB,
+ 0x1BC,
+ 0x1BD,
+ 0x1C0,
+ 0x1C4,
+ 0x1C6,
+ 0x1C7,
+ 0x1C9,
+ 0x1CA,
+ 0x1CC,
+ 0x1CD,
+ 0x1CE,
+ 0x1CF,
+ 0x1D0,
+ 0x1D1,
+ 0x1D2,
+ 0x1D3,
+ 0x1D4,
+ 0x1D5,
+ 0x1D6,
+ 0x1D7,
+ 0x1D8,
+ 0x1D9,
+ 0x1DA,
+ 0x1DB,
+ 0x1DC,
+ 0x1DE,
+ 0x1DF,
+ 0x1E0,
+ 0x1E1,
+ 0x1E2,
+ 0x1E3,
+ 0x1E4,
+ 0x1E5,
+ 0x1E6,
+ 0x1E7,
+ 0x1E8,
+ 0x1E9,
+ 0x1EA,
+ 0x1EB,
+ 0x1EC,
+ 0x1ED,
+ 0x1EE,
+ 0x1EF,
+ 0x1F1,
+ 0x1F3,
+ 0x1F4,
+ 0x1F5,
+ 0x1F6,
+ 0x1F9,
+ 0x1FA,
+ 0x1FB,
+ 0x1FC,
+ 0x1FD,
+ 0x1FE,
+ 0x1FF,
+ 0x200,
+ 0x201,
+ 0x202,
+ 0x203,
+ 0x204,
+ 0x205,
+ 0x206,
+ 0x207,
+ 0x208,
+ 0x209,
+ 0x20A,
+ 0x20B,
+ 0x20C,
+ 0x20D,
+ 0x20E,
+ 0x20F,
+ 0x210,
+ 0x211,
+ 0x212,
+ 0x213,
+ 0x214,
+ 0x215,
+ 0x216,
+ 0x217,
+ 0x218,
+ 0x219,
+ 0x21A,
+ 0x21B,
+ 0x21C,
+ 0x21D,
+ 0x21E,
+ 0x21F,
+ 0x220,
+ 0x221,
+ 0x222,
+ 0x223,
+ 0x224,
+ 0x225,
+ 0x226,
+ 0x227,
+ 0x228,
+ 0x229,
+ 0x22A,
+ 0x22B,
+ 0x22C,
+ 0x22D,
+ 0x22E,
+ 0x22F,
+ 0x230,
+ 0x231,
+ 0x232,
+ 0x233,
+ 0x23A,
+ 0x23C,
+ 0x23D,
+ 0x23F,
+ 0x241,
+ 0x242,
+ 0x243,
+ 0x247,
+ 0x248,
+ 0x249,
+ 0x24A,
+ 0x24B,
+ 0x24C,
+ 0x24D,
+ 0x24E,
+ 0x24F,
+ 0x294,
+ 0x295,
+ 0x2B9,
+ 0x2C0,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x370,
+ 0x371,
+ 0x372,
+ 0x373,
+ 0x374,
+ 0x375,
+ 0x376,
+ 0x377,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x390,
+ 0x391,
+ 0x3A2,
+ 0x3A3,
+ 0x3AC,
+ 0x3CF,
+ 0x3D0,
+ 0x3D2,
+ 0x3D5,
+ 0x3D8,
+ 0x3D9,
+ 0x3DA,
+ 0x3DB,
+ 0x3DC,
+ 0x3DD,
+ 0x3DE,
+ 0x3DF,
+ 0x3E0,
+ 0x3E1,
+ 0x3E2,
+ 0x3E3,
+ 0x3E4,
+ 0x3E5,
+ 0x3E6,
+ 0x3E7,
+ 0x3E8,
+ 0x3E9,
+ 0x3EA,
+ 0x3EB,
+ 0x3EC,
+ 0x3ED,
+ 0x3EE,
+ 0x3EF,
+ 0x3F4,
+ 0x3F5,
+ 0x3F6,
+ 0x3F7,
+ 0x3F8,
+ 0x3F9,
+ 0x3FB,
+ 0x3FD,
+ 0x430,
+ 0x460,
+ 0x461,
+ 0x462,
+ 0x463,
+ 0x464,
+ 0x465,
+ 0x466,
+ 0x467,
+ 0x468,
+ 0x469,
+ 0x46A,
+ 0x46B,
+ 0x46C,
+ 0x46D,
+ 0x46E,
+ 0x46F,
+ 0x470,
+ 0x471,
+ 0x472,
+ 0x473,
+ 0x474,
+ 0x475,
+ 0x476,
+ 0x477,
+ 0x478,
+ 0x479,
+ 0x47A,
+ 0x47B,
+ 0x47C,
+ 0x47D,
+ 0x47E,
+ 0x47F,
+ 0x480,
+ 0x481,
+ 0x482,
+ 0x483,
+ 0x48A,
+ 0x48B,
+ 0x48C,
+ 0x48D,
+ 0x48E,
+ 0x48F,
+ 0x490,
+ 0x491,
+ 0x492,
+ 0x493,
+ 0x494,
+ 0x495,
+ 0x496,
+ 0x497,
+ 0x498,
+ 0x499,
+ 0x49A,
+ 0x49B,
+ 0x49C,
+ 0x49D,
+ 0x49E,
+ 0x49F,
+ 0x4A0,
+ 0x4A1,
+ 0x4A2,
+ 0x4A3,
+ 0x4A4,
+ 0x4A5,
+ 0x4A6,
+ 0x4A7,
+ 0x4A8,
+ 0x4A9,
+ 0x4AA,
+ 0x4AB,
+ 0x4AC,
+ 0x4AD,
+ 0x4AE,
+ 0x4AF,
+ 0x4B0,
+ 0x4B1,
+ 0x4B2,
+ 0x4B3,
+ 0x4B4,
+ 0x4B5,
+ 0x4B6,
+ 0x4B7,
+ 0x4B8,
+ 0x4B9,
+ 0x4BA,
+ 0x4BB,
+ 0x4BC,
+ 0x4BD,
+ 0x4BE,
+ 0x4BF,
+ 0x4C0,
+ 0x4C2,
+ 0x4C3,
+ 0x4C4,
+ 0x4C5,
+ 0x4C6,
+ 0x4C7,
+ 0x4C8,
+ 0x4C9,
+ 0x4CA,
+ 0x4CB,
+ 0x4CC,
+ 0x4CD,
+ 0x4CE,
+ 0x4D0,
+ 0x4D1,
+ 0x4D2,
+ 0x4D3,
+ 0x4D4,
+ 0x4D5,
+ 0x4D6,
+ 0x4D7,
+ 0x4D8,
+ 0x4D9,
+ 0x4DA,
+ 0x4DB,
+ 0x4DC,
+ 0x4DD,
+ 0x4DE,
+ 0x4DF,
+ 0x4E0,
+ 0x4E1,
+ 0x4E2,
+ 0x4E3,
+ 0x4E4,
+ 0x4E5,
+ 0x4E6,
+ 0x4E7,
+ 0x4E8,
+ 0x4E9,
+ 0x4EA,
+ 0x4EB,
+ 0x4EC,
+ 0x4ED,
+ 0x4EE,
+ 0x4EF,
+ 0x4F0,
+ 0x4F1,
+ 0x4F2,
+ 0x4F3,
+ 0x4F4,
+ 0x4F5,
+ 0x4F6,
+ 0x4F7,
+ 0x4F8,
+ 0x4F9,
+ 0x4FA,
+ 0x4FB,
+ 0x4FC,
+ 0x4FD,
+ 0x4FE,
+ 0x4FF,
+ 0x500,
+ 0x501,
+ 0x502,
+ 0x503,
+ 0x504,
+ 0x505,
+ 0x506,
+ 0x507,
+ 0x508,
+ 0x509,
+ 0x50A,
+ 0x50B,
+ 0x50C,
+ 0x50D,
+ 0x50E,
+ 0x50F,
+ 0x510,
+ 0x511,
+ 0x512,
+ 0x513,
+ 0x514,
+ 0x515,
+ 0x516,
+ 0x517,
+ 0x518,
+ 0x519,
+ 0x51A,
+ 0x51B,
+ 0x51C,
+ 0x51D,
+ 0x51E,
+ 0x51F,
+ 0x520,
+ 0x521,
+ 0x522,
+ 0x523,
+ 0x524,
+ 0x525,
+ 0x526,
+ 0x527,
+ 0x528,
+ 0x529,
+ 0x52A,
+ 0x52B,
+ 0x52C,
+ 0x52D,
+ 0x52E,
+ 0x52F,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x55D,
+ 0x55E,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58A,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F4,
+ 0x600,
+ 0x606,
+ 0x60C,
+ 0x60E,
+ 0x610,
+ 0x61B,
+ 0x61C,
+ 0x61D,
+ 0x61F,
+ 0x620,
+ 0x64B,
+ 0x660,
+ 0x66A,
+ 0x66B,
+ 0x66D,
+ 0x66E,
+ 0x670,
+ 0x671,
+ 0x6D4,
+ 0x6D5,
+ 0x6D6,
+ 0x6DD,
+ 0x6DE,
+ 0x6DF,
+ 0x6E5,
+ 0x6E7,
+ 0x6E9,
+ 0x6EA,
+ 0x6EE,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x703,
+ 0x70F,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74B,
+ 0x74D,
+ 0x7A6,
+ 0x7B1,
+ 0x7B2,
+ 0x7C0,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7F8,
+ 0x7F9,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x82E,
+ 0x840,
+ 0x859,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x904,
+ 0x93A,
+ 0x93D,
+ 0x93E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x981,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9BD,
+ 0x9BE,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E2,
+ 0x9E4,
+ 0x9E6,
+ 0x9F0,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA70,
+ 0xA72,
+ 0xA75,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xABD,
+ 0xABE,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE2,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB3D,
+ 0xB3E,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB62,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB83,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC3E,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC62,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCBD,
+ 0xCBE,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE2,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD3E,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD62,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE31,
+ 0xE32,
+ 0xE34,
+ 0xE3B,
+ 0xE40,
+ 0xE47,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEB1,
+ 0xEB2,
+ 0xEB4,
+ 0xEBA,
+ 0xEBB,
+ 0xEBD,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF88,
+ 0xF8D,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x1000,
+ 0x102B,
+ 0x103F,
+ 0x1040,
+ 0x104A,
+ 0x104C,
+ 0x1050,
+ 0x1056,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1062,
+ 0x1065,
+ 0x1067,
+ 0x106E,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x108E,
+ 0x108F,
+ 0x1090,
+ 0x109A,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1362,
+ 0x1363,
+ 0x1367,
+ 0x1369,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166E,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x169D,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1712,
+ 0x1715,
+ 0x1720,
+ 0x1732,
+ 0x1735,
+ 0x1737,
+ 0x1740,
+ 0x1752,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17B4,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x1802,
+ 0x1803,
+ 0x1804,
+ 0x1808,
+ 0x1809,
+ 0x180A,
+ 0x180B,
+ 0x180E,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18A9,
+ 0x18AA,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1944,
+ 0x1946,
+ 0x1950,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19C1,
+ 0x19C8,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A17,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A55,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AAC,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B05,
+ 0x1B34,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B5C,
+ 0x1B5E,
+ 0x1B60,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BAE,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C24,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C3D,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1C80,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1E00,
+ 0x1E01,
+ 0x1E02,
+ 0x1E03,
+ 0x1E04,
+ 0x1E05,
+ 0x1E06,
+ 0x1E07,
+ 0x1E08,
+ 0x1E09,
+ 0x1E0A,
+ 0x1E0B,
+ 0x1E0C,
+ 0x1E0D,
+ 0x1E0E,
+ 0x1E0F,
+ 0x1E10,
+ 0x1E11,
+ 0x1E12,
+ 0x1E13,
+ 0x1E14,
+ 0x1E15,
+ 0x1E16,
+ 0x1E17,
+ 0x1E18,
+ 0x1E19,
+ 0x1E1A,
+ 0x1E1B,
+ 0x1E1C,
+ 0x1E1D,
+ 0x1E1E,
+ 0x1E1F,
+ 0x1E20,
+ 0x1E21,
+ 0x1E22,
+ 0x1E23,
+ 0x1E24,
+ 0x1E25,
+ 0x1E26,
+ 0x1E27,
+ 0x1E28,
+ 0x1E29,
+ 0x1E2A,
+ 0x1E2B,
+ 0x1E2C,
+ 0x1E2D,
+ 0x1E2E,
+ 0x1E2F,
+ 0x1E30,
+ 0x1E31,
+ 0x1E32,
+ 0x1E33,
+ 0x1E34,
+ 0x1E35,
+ 0x1E36,
+ 0x1E37,
+ 0x1E38,
+ 0x1E39,
+ 0x1E3A,
+ 0x1E3B,
+ 0x1E3C,
+ 0x1E3D,
+ 0x1E3E,
+ 0x1E3F,
+ 0x1E40,
+ 0x1E41,
+ 0x1E42,
+ 0x1E43,
+ 0x1E44,
+ 0x1E45,
+ 0x1E46,
+ 0x1E47,
+ 0x1E48,
+ 0x1E49,
+ 0x1E4A,
+ 0x1E4B,
+ 0x1E4C,
+ 0x1E4D,
+ 0x1E4E,
+ 0x1E4F,
+ 0x1E50,
+ 0x1E51,
+ 0x1E52,
+ 0x1E53,
+ 0x1E54,
+ 0x1E55,
+ 0x1E56,
+ 0x1E57,
+ 0x1E58,
+ 0x1E59,
+ 0x1E5A,
+ 0x1E5B,
+ 0x1E5C,
+ 0x1E5D,
+ 0x1E5E,
+ 0x1E5F,
+ 0x1E60,
+ 0x1E61,
+ 0x1E62,
+ 0x1E63,
+ 0x1E64,
+ 0x1E65,
+ 0x1E66,
+ 0x1E67,
+ 0x1E68,
+ 0x1E69,
+ 0x1E6A,
+ 0x1E6B,
+ 0x1E6C,
+ 0x1E6D,
+ 0x1E6E,
+ 0x1E6F,
+ 0x1E70,
+ 0x1E71,
+ 0x1E72,
+ 0x1E73,
+ 0x1E74,
+ 0x1E75,
+ 0x1E76,
+ 0x1E77,
+ 0x1E78,
+ 0x1E79,
+ 0x1E7A,
+ 0x1E7B,
+ 0x1E7C,
+ 0x1E7D,
+ 0x1E7E,
+ 0x1E7F,
+ 0x1E80,
+ 0x1E81,
+ 0x1E82,
+ 0x1E83,
+ 0x1E84,
+ 0x1E85,
+ 0x1E86,
+ 0x1E87,
+ 0x1E88,
+ 0x1E89,
+ 0x1E8A,
+ 0x1E8B,
+ 0x1E8C,
+ 0x1E8D,
+ 0x1E8E,
+ 0x1E8F,
+ 0x1E90,
+ 0x1E91,
+ 0x1E92,
+ 0x1E93,
+ 0x1E94,
+ 0x1E95,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1EA1,
+ 0x1EA2,
+ 0x1EA3,
+ 0x1EA4,
+ 0x1EA5,
+ 0x1EA6,
+ 0x1EA7,
+ 0x1EA8,
+ 0x1EA9,
+ 0x1EAA,
+ 0x1EAB,
+ 0x1EAC,
+ 0x1EAD,
+ 0x1EAE,
+ 0x1EAF,
+ 0x1EB0,
+ 0x1EB1,
+ 0x1EB2,
+ 0x1EB3,
+ 0x1EB4,
+ 0x1EB5,
+ 0x1EB6,
+ 0x1EB7,
+ 0x1EB8,
+ 0x1EB9,
+ 0x1EBA,
+ 0x1EBB,
+ 0x1EBC,
+ 0x1EBD,
+ 0x1EBE,
+ 0x1EBF,
+ 0x1EC0,
+ 0x1EC1,
+ 0x1EC2,
+ 0x1EC3,
+ 0x1EC4,
+ 0x1EC5,
+ 0x1EC6,
+ 0x1EC7,
+ 0x1EC8,
+ 0x1EC9,
+ 0x1ECA,
+ 0x1ECB,
+ 0x1ECC,
+ 0x1ECD,
+ 0x1ECE,
+ 0x1ECF,
+ 0x1ED0,
+ 0x1ED1,
+ 0x1ED2,
+ 0x1ED3,
+ 0x1ED4,
+ 0x1ED5,
+ 0x1ED6,
+ 0x1ED7,
+ 0x1ED8,
+ 0x1ED9,
+ 0x1EDA,
+ 0x1EDB,
+ 0x1EDC,
+ 0x1EDD,
+ 0x1EDE,
+ 0x1EDF,
+ 0x1EE0,
+ 0x1EE1,
+ 0x1EE2,
+ 0x1EE3,
+ 0x1EE4,
+ 0x1EE5,
+ 0x1EE6,
+ 0x1EE7,
+ 0x1EE8,
+ 0x1EE9,
+ 0x1EEA,
+ 0x1EEB,
+ 0x1EEC,
+ 0x1EED,
+ 0x1EEE,
+ 0x1EEF,
+ 0x1EF0,
+ 0x1EF1,
+ 0x1EF2,
+ 0x1EF3,
+ 0x1EF4,
+ 0x1EF5,
+ 0x1EF6,
+ 0x1EF7,
+ 0x1EF8,
+ 0x1EF9,
+ 0x1EFA,
+ 0x1EFB,
+ 0x1EFC,
+ 0x1EFD,
+ 0x1EFE,
+ 0x1EFF,
+ 0x1F08,
+ 0x1F10,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F28,
+ 0x1F30,
+ 0x1F38,
+ 0x1F40,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1F7E,
+ 0x1F80,
+ 0x1F88,
+ 0x1F90,
+ 0x1F98,
+ 0x1FA0,
+ 0x1FA8,
+ 0x1FB0,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FB8,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FC8,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FD8,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FE8,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FF8,
+ 0x1FFD,
+ 0x2000,
+ 0x200B,
+ 0x200C,
+ 0x200E,
+ 0x2010,
+ 0x2013,
+ 0x2015,
+ 0x2018,
+ 0x2020,
+ 0x2024,
+ 0x2025,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x2039,
+ 0x203B,
+ 0x203C,
+ 0x203E,
+ 0x2045,
+ 0x2047,
+ 0x204A,
+ 0x205F,
+ 0x2060,
+ 0x2065,
+ 0x2066,
+ 0x2070,
+ 0x2071,
+ 0x2072,
+ 0x207D,
+ 0x207F,
+ 0x2080,
+ 0x208D,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x210B,
+ 0x210E,
+ 0x2110,
+ 0x2113,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x2130,
+ 0x2134,
+ 0x2135,
+ 0x2139,
+ 0x213A,
+ 0x213C,
+ 0x213E,
+ 0x2140,
+ 0x2145,
+ 0x2146,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2170,
+ 0x2180,
+ 0x2183,
+ 0x2184,
+ 0x2185,
+ 0x2189,
+ 0x2308,
+ 0x230C,
+ 0x2329,
+ 0x232B,
+ 0x24B6,
+ 0x24D0,
+ 0x24EA,
+ 0x275B,
+ 0x2761,
+ 0x2768,
+ 0x2776,
+ 0x27C5,
+ 0x27C7,
+ 0x27E6,
+ 0x27F0,
+ 0x2983,
+ 0x2999,
+ 0x29D8,
+ 0x29DC,
+ 0x29FC,
+ 0x29FE,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2C61,
+ 0x2C62,
+ 0x2C65,
+ 0x2C67,
+ 0x2C68,
+ 0x2C69,
+ 0x2C6A,
+ 0x2C6B,
+ 0x2C6C,
+ 0x2C6D,
+ 0x2C71,
+ 0x2C72,
+ 0x2C73,
+ 0x2C75,
+ 0x2C76,
+ 0x2C7E,
+ 0x2C81,
+ 0x2C82,
+ 0x2C83,
+ 0x2C84,
+ 0x2C85,
+ 0x2C86,
+ 0x2C87,
+ 0x2C88,
+ 0x2C89,
+ 0x2C8A,
+ 0x2C8B,
+ 0x2C8C,
+ 0x2C8D,
+ 0x2C8E,
+ 0x2C8F,
+ 0x2C90,
+ 0x2C91,
+ 0x2C92,
+ 0x2C93,
+ 0x2C94,
+ 0x2C95,
+ 0x2C96,
+ 0x2C97,
+ 0x2C98,
+ 0x2C99,
+ 0x2C9A,
+ 0x2C9B,
+ 0x2C9C,
+ 0x2C9D,
+ 0x2C9E,
+ 0x2C9F,
+ 0x2CA0,
+ 0x2CA1,
+ 0x2CA2,
+ 0x2CA3,
+ 0x2CA4,
+ 0x2CA5,
+ 0x2CA6,
+ 0x2CA7,
+ 0x2CA8,
+ 0x2CA9,
+ 0x2CAA,
+ 0x2CAB,
+ 0x2CAC,
+ 0x2CAD,
+ 0x2CAE,
+ 0x2CAF,
+ 0x2CB0,
+ 0x2CB1,
+ 0x2CB2,
+ 0x2CB3,
+ 0x2CB4,
+ 0x2CB5,
+ 0x2CB6,
+ 0x2CB7,
+ 0x2CB8,
+ 0x2CB9,
+ 0x2CBA,
+ 0x2CBB,
+ 0x2CBC,
+ 0x2CBD,
+ 0x2CBE,
+ 0x2CBF,
+ 0x2CC0,
+ 0x2CC1,
+ 0x2CC2,
+ 0x2CC3,
+ 0x2CC4,
+ 0x2CC5,
+ 0x2CC6,
+ 0x2CC7,
+ 0x2CC8,
+ 0x2CC9,
+ 0x2CCA,
+ 0x2CCB,
+ 0x2CCC,
+ 0x2CCD,
+ 0x2CCE,
+ 0x2CCF,
+ 0x2CD0,
+ 0x2CD1,
+ 0x2CD2,
+ 0x2CD3,
+ 0x2CD4,
+ 0x2CD5,
+ 0x2CD6,
+ 0x2CD7,
+ 0x2CD8,
+ 0x2CD9,
+ 0x2CDA,
+ 0x2CDB,
+ 0x2CDC,
+ 0x2CDD,
+ 0x2CDE,
+ 0x2CDF,
+ 0x2CE0,
+ 0x2CE1,
+ 0x2CE2,
+ 0x2CE3,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEC,
+ 0x2CED,
+ 0x2CEE,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF3,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E0E,
+ 0x2E1C,
+ 0x2E1E,
+ 0x2E20,
+ 0x2E2A,
+ 0x2E2E,
+ 0x2E2F,
+ 0x2E30,
+ 0x2E3C,
+ 0x2E3D,
+ 0x2E42,
+ 0x2E43,
+ 0x3000,
+ 0x3001,
+ 0x3002,
+ 0x3003,
+ 0x3005,
+ 0x3008,
+ 0x3012,
+ 0x3014,
+ 0x301C,
+ 0x301D,
+ 0x3020,
+ 0x3021,
+ 0x302A,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA4FF,
+ 0xA500,
+ 0xA60D,
+ 0xA60E,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA641,
+ 0xA642,
+ 0xA643,
+ 0xA644,
+ 0xA645,
+ 0xA646,
+ 0xA647,
+ 0xA648,
+ 0xA649,
+ 0xA64A,
+ 0xA64B,
+ 0xA64C,
+ 0xA64D,
+ 0xA64E,
+ 0xA64F,
+ 0xA650,
+ 0xA651,
+ 0xA652,
+ 0xA653,
+ 0xA654,
+ 0xA655,
+ 0xA656,
+ 0xA657,
+ 0xA658,
+ 0xA659,
+ 0xA65A,
+ 0xA65B,
+ 0xA65C,
+ 0xA65D,
+ 0xA65E,
+ 0xA65F,
+ 0xA660,
+ 0xA661,
+ 0xA662,
+ 0xA663,
+ 0xA664,
+ 0xA665,
+ 0xA666,
+ 0xA667,
+ 0xA668,
+ 0xA669,
+ 0xA66A,
+ 0xA66B,
+ 0xA66C,
+ 0xA66D,
+ 0xA66E,
+ 0xA66F,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA680,
+ 0xA681,
+ 0xA682,
+ 0xA683,
+ 0xA684,
+ 0xA685,
+ 0xA686,
+ 0xA687,
+ 0xA688,
+ 0xA689,
+ 0xA68A,
+ 0xA68B,
+ 0xA68C,
+ 0xA68D,
+ 0xA68E,
+ 0xA68F,
+ 0xA690,
+ 0xA691,
+ 0xA692,
+ 0xA693,
+ 0xA694,
+ 0xA695,
+ 0xA696,
+ 0xA697,
+ 0xA698,
+ 0xA699,
+ 0xA69A,
+ 0xA69B,
+ 0xA69E,
+ 0xA69F,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA6F2,
+ 0xA6F3,
+ 0xA6F4,
+ 0xA6F7,
+ 0xA6F8,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA723,
+ 0xA724,
+ 0xA725,
+ 0xA726,
+ 0xA727,
+ 0xA728,
+ 0xA729,
+ 0xA72A,
+ 0xA72B,
+ 0xA72C,
+ 0xA72D,
+ 0xA72E,
+ 0xA72F,
+ 0xA732,
+ 0xA733,
+ 0xA734,
+ 0xA735,
+ 0xA736,
+ 0xA737,
+ 0xA738,
+ 0xA739,
+ 0xA73A,
+ 0xA73B,
+ 0xA73C,
+ 0xA73D,
+ 0xA73E,
+ 0xA73F,
+ 0xA740,
+ 0xA741,
+ 0xA742,
+ 0xA743,
+ 0xA744,
+ 0xA745,
+ 0xA746,
+ 0xA747,
+ 0xA748,
+ 0xA749,
+ 0xA74A,
+ 0xA74B,
+ 0xA74C,
+ 0xA74D,
+ 0xA74E,
+ 0xA74F,
+ 0xA750,
+ 0xA751,
+ 0xA752,
+ 0xA753,
+ 0xA754,
+ 0xA755,
+ 0xA756,
+ 0xA757,
+ 0xA758,
+ 0xA759,
+ 0xA75A,
+ 0xA75B,
+ 0xA75C,
+ 0xA75D,
+ 0xA75E,
+ 0xA75F,
+ 0xA760,
+ 0xA761,
+ 0xA762,
+ 0xA763,
+ 0xA764,
+ 0xA765,
+ 0xA766,
+ 0xA767,
+ 0xA768,
+ 0xA769,
+ 0xA76A,
+ 0xA76B,
+ 0xA76C,
+ 0xA76D,
+ 0xA76E,
+ 0xA76F,
+ 0xA779,
+ 0xA77A,
+ 0xA77B,
+ 0xA77C,
+ 0xA77D,
+ 0xA77F,
+ 0xA780,
+ 0xA781,
+ 0xA782,
+ 0xA783,
+ 0xA784,
+ 0xA785,
+ 0xA786,
+ 0xA787,
+ 0xA788,
+ 0xA789,
+ 0xA78B,
+ 0xA78C,
+ 0xA78D,
+ 0xA78E,
+ 0xA78F,
+ 0xA790,
+ 0xA791,
+ 0xA792,
+ 0xA793,
+ 0xA796,
+ 0xA797,
+ 0xA798,
+ 0xA799,
+ 0xA79A,
+ 0xA79B,
+ 0xA79C,
+ 0xA79D,
+ 0xA79E,
+ 0xA79F,
+ 0xA7A0,
+ 0xA7A1,
+ 0xA7A2,
+ 0xA7A3,
+ 0xA7A4,
+ 0xA7A5,
+ 0xA7A6,
+ 0xA7A7,
+ 0xA7A8,
+ 0xA7A9,
+ 0xA7AA,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA7F8,
+ 0xA7FB,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA876,
+ 0xA878,
+ 0xA880,
+ 0xA882,
+ 0xA8B4,
+ 0xA8C5,
+ 0xA8CE,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA90A,
+ 0xA926,
+ 0xA92E,
+ 0xA92F,
+ 0xA930,
+ 0xA947,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA984,
+ 0xA9B3,
+ 0xA9C1,
+ 0xA9C8,
+ 0xA9CA,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA29,
+ 0xAA37,
+ 0xAA40,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA5D,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAEB,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF5,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABE3,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD40,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE00,
+ 0xFE10,
+ 0xFE12,
+ 0xFE13,
+ 0xFE14,
+ 0xFE17,
+ 0xFE19,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE31,
+ 0xFE33,
+ 0xFE35,
+ 0xFE45,
+ 0xFE47,
+ 0xFE49,
+ 0xFE50,
+ 0xFE52,
+ 0xFE53,
+ 0xFE55,
+ 0xFE56,
+ 0xFE58,
+ 0xFE59,
+ 0xFE5F,
+ 0xFE63,
+ 0xFE64,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF01,
+ 0xFF02,
+ 0xFF08,
+ 0xFF0A,
+ 0xFF0C,
+ 0xFF0E,
+ 0xFF0F,
+ 0xFF1A,
+ 0xFF1B,
+ 0xFF1F,
+ 0xFF20,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3C,
+ 0xFF3D,
+ 0xFF3E,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF5C,
+ 0xFF5D,
+ 0xFF5E,
+ 0xFF5F,
+ 0xFF61,
+ 0xFF62,
+ 0xFF64,
+ 0xFF65,
+ 0xFF66,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFF9,
+ 0xFFFC,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x10376,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x10428,
+ 0x10450,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A01,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A10,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A56,
+ 0x10A58,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11003,
+ 0x11038,
+ 0x11047,
+ 0x11049,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x11083,
+ 0x110B0,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11103,
+ 0x11127,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11141,
+ 0x11144,
+ 0x11150,
+ 0x11173,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x11183,
+ 0x111B3,
+ 0x111C1,
+ 0x111C5,
+ 0x111C7,
+ 0x111CD,
+ 0x111CE,
+ 0x111D0,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1122C,
+ 0x11238,
+ 0x1123A,
+ 0x1123B,
+ 0x1123D,
+ 0x112B0,
+ 0x112DF,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x1133D,
+ 0x1133E,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11362,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114B0,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115AF,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x115C2,
+ 0x115C4,
+ 0x115C9,
+ 0x115CA,
+ 0x11600,
+ 0x11630,
+ 0x11641,
+ 0x11643,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116AB,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118C0,
+ 0x118E0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B30,
+ 0x16B37,
+ 0x16B39,
+ 0x16B40,
+ 0x16B44,
+ 0x16B45,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F51,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1BCA0,
+ 0x1BCA4,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D41A,
+ 0x1D434,
+ 0x1D44E,
+ 0x1D455,
+ 0x1D456,
+ 0x1D468,
+ 0x1D482,
+ 0x1D49C,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4B6,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D4D0,
+ 0x1D4EA,
+ 0x1D504,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D538,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D56C,
+ 0x1D586,
+ 0x1D5A0,
+ 0x1D5BA,
+ 0x1D5D4,
+ 0x1D5EE,
+ 0x1D608,
+ 0x1D622,
+ 0x1D63C,
+ 0x1D656,
+ 0x1D670,
+ 0x1D68A,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6E2,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D71C,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D756,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D790,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CA,
+ 0x1D7CB,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x1F676,
+ 0x1F679,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define SB_ENUM_COUNT 16
+
+typedef enum {
+ SB_Other = 0,
+ SB_ATerm = 1,
+ SB_CR = 2,
+ SB_Close = 3,
+ SB_EDGE = 4,
+ SB_Extend = 5,
+ SB_Format = 6,
+ SB_LF = 7,
+ SB_Lower = 8,
+ SB_Numeric = 9,
+ SB_OLetter = 10,
+ SB_SContinue = 11,
+ SB_STerm = 12,
+ SB_Sep = 13,
+ SB_Sp = 14,
+ SB_Upper = 15
+} SB_enum;
+
+static const SB_enum Sentence_Break_invmap[] = { /* for ASCII/Latin1 */
+ SB_Other,
+ SB_Sp,
+ SB_LF,
+ SB_Sp,
+ SB_CR,
+ SB_Other,
+ SB_Sp,
+ SB_STerm,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_ATerm,
+ SB_Other,
+ SB_Numeric,
+ SB_SContinue,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Upper,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Lower,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Sep,
+ SB_Other,
+ SB_Sp,
+ SB_Other,
+ SB_Lower,
+ SB_Close,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Close,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Numeric,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Format,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Close,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Numeric,
+ SB_Extend,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Sp,
+ SB_OLetter,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Format,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Numeric,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Lower,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Sp,
+ SB_Format,
+ SB_Extend,
+ SB_Format,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_ATerm,
+ SB_Other,
+ SB_Sep,
+ SB_Format,
+ SB_Sp,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_STerm,
+ SB_Other,
+ SB_Sp,
+ SB_Format,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Close,
+ SB_Lower,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Sp,
+ SB_SContinue,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_OLetter,
+ SB_Lower,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_SContinue,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_ATerm,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_SContinue,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_ATerm,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Upper,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Lower,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_STerm,
+ SB_Close,
+ SB_SContinue,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Format,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_STerm,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Format,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV UpperLatin1_invlist[] = { /* for ASCII/Latin1 */
+ 3, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x80,
+ 0x100
+};
+
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV VertSpace_invlist[] = { /* for ASCII/Latin1 */
7, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 10,
- 14,
- 133,
- 134,
- 8232,
- 8234
+ 0x0,
+ 0xA,
+ 0xE,
+ 0x85,
+ 0x86,
+ 0x2028,
+ 0x202A
+};
+
+static const UV Word_Break_invlist[] = { /* for ASCII/Latin1 */
+ 1480, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0xA,
+ 0xB,
+ 0xD,
+ 0xE,
+ 0x22,
+ 0x23,
+ 0x27,
+ 0x28,
+ 0x2C,
+ 0x2D,
+ 0x2E,
+ 0x2F,
+ 0x30,
+ 0x3A,
+ 0x3B,
+ 0x3C,
+ 0x41,
+ 0x5B,
+ 0x5F,
+ 0x60,
+ 0x61,
+ 0x7B,
+ 0x85,
+ 0x86,
+ 0xAA,
+ 0xAB,
+ 0xAD,
+ 0xAE,
+ 0xB5,
+ 0xB6,
+ 0xB7,
+ 0xB8,
+ 0xBA,
+ 0xBB,
+ 0xC0,
+ 0xD7,
+ 0xD8,
+ 0xF7,
+ 0xF8,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2D7,
+ 0x2D8,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x483,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58A,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x5F4,
+ 0x5F5,
+ 0x600,
+ 0x606,
+ 0x60C,
+ 0x60E,
+ 0x610,
+ 0x61B,
+ 0x61C,
+ 0x61D,
+ 0x620,
+ 0x64B,
+ 0x660,
+ 0x66A,
+ 0x66B,
+ 0x66C,
+ 0x66D,
+ 0x66E,
+ 0x670,
+ 0x671,
+ 0x6D4,
+ 0x6D5,
+ 0x6D6,
+ 0x6DD,
+ 0x6DE,
+ 0x6DF,
+ 0x6E5,
+ 0x6E7,
+ 0x6E9,
+ 0x6EA,
+ 0x6EE,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x70F,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74B,
+ 0x74D,
+ 0x7A6,
+ 0x7B1,
+ 0x7B2,
+ 0x7C0,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7F8,
+ 0x7F9,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x82E,
+ 0x840,
+ 0x859,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x904,
+ 0x93A,
+ 0x93D,
+ 0x93E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x981,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9BD,
+ 0x9BE,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E2,
+ 0x9E4,
+ 0x9E6,
+ 0x9F0,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA70,
+ 0xA72,
+ 0xA75,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xABD,
+ 0xABE,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE2,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB3D,
+ 0xB3E,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB62,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB83,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC3E,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC62,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCBD,
+ 0xCBE,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE2,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD3E,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD62,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE31,
+ 0xE32,
+ 0xE34,
+ 0xE3B,
+ 0xE47,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xEB1,
+ 0xEB2,
+ 0xEB4,
+ 0xEBA,
+ 0xEBB,
+ 0xEBD,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF88,
+ 0xF8D,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x102B,
+ 0x103F,
+ 0x1040,
+ 0x104A,
+ 0x1056,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1062,
+ 0x1065,
+ 0x1067,
+ 0x106E,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x108E,
+ 0x108F,
+ 0x1090,
+ 0x109A,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1712,
+ 0x1715,
+ 0x1720,
+ 0x1732,
+ 0x1735,
+ 0x1740,
+ 0x1752,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x17B4,
+ 0x17D4,
+ 0x17DD,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x180B,
+ 0x180E,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18A9,
+ 0x18AA,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1946,
+ 0x1950,
+ 0x19B0,
+ 0x19C1,
+ 0x19C8,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A17,
+ 0x1A1C,
+ 0x1A55,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B05,
+ 0x1B34,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BAE,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C24,
+ 0x1C38,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x200C,
+ 0x200E,
+ 0x2010,
+ 0x2018,
+ 0x201A,
+ 0x2024,
+ 0x2025,
+ 0x2027,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x203F,
+ 0x2041,
+ 0x2044,
+ 0x2045,
+ 0x2054,
+ 0x2055,
+ 0x2060,
+ 0x2065,
+ 0x2066,
+ 0x2070,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3006,
+ 0x302A,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x303B,
+ 0x303D,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x32D0,
+ 0x32FF,
+ 0x3300,
+ 0x3358,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA6F2,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA882,
+ 0xA8B4,
+ 0xA8C5,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA90A,
+ 0xA926,
+ 0xA92E,
+ 0xA930,
+ 0xA947,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA984,
+ 0xA9B3,
+ 0xA9C1,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9DA,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xAA00,
+ 0xAA29,
+ 0xAA37,
+ 0xAA40,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAE0,
+ 0xAAEB,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF5,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABE3,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFB50,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE00,
+ 0xFE10,
+ 0xFE11,
+ 0xFE13,
+ 0xFE14,
+ 0xFE15,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE33,
+ 0xFE35,
+ 0xFE4D,
+ 0xFE50,
+ 0xFE51,
+ 0xFE52,
+ 0xFE53,
+ 0xFE54,
+ 0xFE55,
+ 0xFE56,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF07,
+ 0xFF08,
+ 0xFF0C,
+ 0xFF0D,
+ 0xFF0E,
+ 0xFF0F,
+ 0xFF1A,
+ 0xFF1B,
+ 0xFF1C,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFF9,
+ 0xFFFC,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x10376,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A01,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A10,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11003,
+ 0x11038,
+ 0x11047,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x11083,
+ 0x110B0,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11103,
+ 0x11127,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11173,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x11183,
+ 0x111B3,
+ 0x111C1,
+ 0x111C5,
+ 0x111D0,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1122C,
+ 0x11238,
+ 0x112B0,
+ 0x112DF,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x1133D,
+ 0x1133E,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11362,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114B0,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115AF,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x11600,
+ 0x11630,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116AB,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118E0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B00,
+ 0x16B30,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F51,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B001,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1BCA0,
+ 0x1BCA4,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x1F1E6,
+ 0x1F200,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0
};
-#endif
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define WB_ENUM_COUNT 19
+
+typedef enum {
+ WB_Other = 0,
+ WB_ALetter = 1,
+ WB_CR = 2,
+ WB_Double_Quote = 3,
+ WB_EDGE = 4,
+ WB_Extend = 5,
+ WB_ExtendNumLet = 6,
+ WB_Format = 7,
+ WB_Hebrew_Letter = 8,
+ WB_Katakana = 9,
+ WB_LF = 10,
+ WB_MidLetter = 11,
+ WB_MidNum = 12,
+ WB_MidNumLet = 13,
+ WB_Newline = 14,
+ WB_Numeric = 15,
+ WB_Regional_Indicator = 16,
+ WB_Single_Quote = 17,
+ WB_UNKNOWN = 18
+} WB_enum;
+
+static const WB_enum Word_Break_invmap[] = { /* for ASCII/Latin1 */
+ WB_Other,
+ WB_LF,
+ WB_Newline,
+ WB_CR,
+ WB_Other,
+ WB_Double_Quote,
+ WB_Other,
+ WB_Single_Quote,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_Numeric,
+ WB_MidLetter,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Newline,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidLetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidLetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_MidNum,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_MidLetter,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_ALetter,
+ WB_MidLetter,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Numeric,
+ WB_Other,
+ WB_Numeric,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Format,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Numeric,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Numeric,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidLetter,
+ WB_Newline,
+ WB_Format,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Extend,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_MidNum,
+ WB_Other,
+ WB_MidLetter,
+ WB_MidNum,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_MidNum,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidNum,
+ WB_MidLetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidLetter,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Katakana,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Regional_Indicator,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_Other
+};
-#ifndef PERL_IN_XSUB_RE
+#endif /* defined(PERL_IN_REGEXEC_C) */
-static const UV XPerlSpace_invlist[] = {
+#if defined(PERL_IN_PERL_C)
+
+static const UV XPerlSpace_invlist[] = { /* for ASCII/Latin1 */
21, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 9,
- 14,
- 32,
- 33,
- 133,
- 134,
- 160,
- 161,
- 5760,
- 5761,
- 8192,
- 8203,
- 8232,
- 8234,
- 8239,
- 8240,
- 8287,
- 8288,
- 12288,
- 12289
+ 0x0,
+ 0x9,
+ 0xE,
+ 0x20,
+ 0x21,
+ 0x85,
+ 0x86,
+ 0xA0,
+ 0xA1,
+ 0x1680,
+ 0x1681,
+ 0x2000,
+ 0x200B,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x3000,
+ 0x3001
};
-#endif
+static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
+ 1261, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x30,
+ 0x3A,
+ 0x41,
+ 0x5B,
+ 0x61,
+ 0x7B,
+ 0xAA,
+ 0xAB,
+ 0xB5,
+ 0xB6,
+ 0xBA,
+ 0xBB,
+ 0xC0,
+ 0xD7,
+ 0xD8,
+ 0xF7,
+ 0xF8,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x5B0,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x658,
+ 0x659,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6E1,
+ 0x6E9,
+ 0x6ED,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x740,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x818,
+ 0x81A,
+ 0x82D,
+ 0x840,
+ 0x859,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x8EA,
+ 0x8F0,
+ 0x93C,
+ 0x93D,
+ 0x94D,
+ 0x94E,
+ 0x951,
+ 0x955,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BD,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CD,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4D,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABD,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACD,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3D,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4D,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCD,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4D,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBD,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCD,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4D,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE47,
+ 0xE4D,
+ 0xE4E,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xECD,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF20,
+ 0xF2A,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF82,
+ 0xF88,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0x1000,
+ 0x1037,
+ 0x1038,
+ 0x1039,
+ 0x103B,
+ 0x104A,
+ 0x1050,
+ 0x1063,
+ 0x1065,
+ 0x1069,
+ 0x106E,
+ 0x1087,
+ 0x108E,
+ 0x108F,
+ 0x1090,
+ 0x109A,
+ 0x109C,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135F,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1714,
+ 0x1720,
+ 0x1734,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17B4,
+ 0x17B6,
+ 0x17C9,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x17E0,
+ 0x17EA,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x1939,
+ 0x1946,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A61,
+ 0x1A75,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1B00,
+ 0x1B34,
+ 0x1B35,
+ 0x1B44,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B80,
+ 0x1BAA,
+ 0x1BAC,
+ 0x1BE6,
+ 0x1BE7,
+ 0x1BF2,
+ 0x1C00,
+ 0x1C36,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C7E,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF4,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DE7,
+ 0x1DF5,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x302A,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA674,
+ 0xA67C,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F0,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C4,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA92B,
+ 0xA930,
+ 0xA953,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9B3,
+ 0xA9B4,
+ 0xA9C0,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAABF,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF6,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11046,
+ 0x11066,
+ 0x11070,
+ 0x11082,
+ 0x110B9,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11133,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11173,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C0,
+ 0x111C1,
+ 0x111C5,
+ 0x111D0,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11235,
+ 0x11237,
+ 0x11238,
+ 0x112B0,
+ 0x112E9,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133D,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134D,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11480,
+ 0x114C2,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115BF,
+ 0x11600,
+ 0x1163F,
+ 0x11640,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B6,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9E,
+ 0x1BC9F,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E
+};
-#ifndef PERL_IN_XSUB_RE
+static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
+ 1201, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x41,
+ 0x5B,
+ 0x61,
+ 0x7B,
+ 0xAA,
+ 0xAB,
+ 0xB5,
+ 0xB6,
+ 0xBA,
+ 0xBB,
+ 0xC0,
+ 0xD7,
+ 0xD8,
+ 0xF7,
+ 0xF8,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x5B0,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x658,
+ 0x659,
+ 0x660,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6E1,
+ 0x6E9,
+ 0x6ED,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x740,
+ 0x74D,
+ 0x7B2,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x818,
+ 0x81A,
+ 0x82D,
+ 0x840,
+ 0x859,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x8EA,
+ 0x8F0,
+ 0x93C,
+ 0x93D,
+ 0x94D,
+ 0x94E,
+ 0x951,
+ 0x955,
+ 0x964,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BD,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CD,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9F0,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4D,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA70,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABD,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACD,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3D,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4D,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCD,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4D,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBD,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCD,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4D,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE47,
+ 0xE4D,
+ 0xE4E,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xECD,
+ 0xECE,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF82,
+ 0xF88,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0x1000,
+ 0x1037,
+ 0x1038,
+ 0x1039,
+ 0x103B,
+ 0x1040,
+ 0x1050,
+ 0x1063,
+ 0x1065,
+ 0x1069,
+ 0x106E,
+ 0x1087,
+ 0x108E,
+ 0x108F,
+ 0x109C,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135F,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1714,
+ 0x1720,
+ 0x1734,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17B4,
+ 0x17B6,
+ 0x17C9,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x1939,
+ 0x1950,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A61,
+ 0x1A75,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1B00,
+ 0x1B34,
+ 0x1B35,
+ 0x1B44,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B80,
+ 0x1BAA,
+ 0x1BAC,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1BE7,
+ 0x1BF2,
+ 0x1C00,
+ 0x1C36,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF4,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DE7,
+ 0x1DF5,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x302A,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA674,
+ 0xA67C,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F0,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C4,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA90A,
+ 0xA92B,
+ 0xA930,
+ 0xA953,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9B3,
+ 0xA9B4,
+ 0xA9C0,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAABF,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF6,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11046,
+ 0x11082,
+ 0x110B9,
+ 0x110D0,
+ 0x110E9,
+ 0x11100,
+ 0x11133,
+ 0x11150,
+ 0x11173,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C0,
+ 0x111C1,
+ 0x111C5,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11235,
+ 0x11237,
+ 0x11238,
+ 0x112B0,
+ 0x112E9,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133D,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134D,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11480,
+ 0x114C2,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115BF,
+ 0x11600,
+ 0x1163F,
+ 0x11640,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11680,
+ 0x116B6,
+ 0x118A0,
+ 0x118E0,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9E,
+ 0x1BC9F,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E
+};
-static const UV XPosixAlnum_invlist[] = {
- 1133, /* Number of elements */
+static const UV XPosixBlank_invlist[] = { /* for ASCII/Latin1 */
+ 17, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 48,
- 58,
- 65,
- 91,
- 97,
- 123,
- 170,
- 171,
- 181,
- 182,
- 186,
- 187,
- 192,
- 215,
- 216,
- 247,
- 248,
- 706,
- 710,
- 722,
- 736,
- 741,
- 748,
- 749,
- 750,
- 751,
- 837,
- 838,
- 880,
- 885,
- 886,
- 888,
- 890,
- 894,
- 902,
- 903,
- 904,
- 907,
- 908,
- 909,
- 910,
- 930,
- 931,
- 1014,
- 1015,
- 1154,
- 1162,
- 1320,
- 1329,
- 1367,
- 1369,
- 1370,
- 1377,
- 1416,
- 1456,
- 1470,
- 1471,
- 1472,
- 1473,
- 1475,
- 1476,
- 1478,
- 1479,
- 1480,
- 1488,
- 1515,
- 1520,
- 1523,
- 1552,
- 1563,
- 1568,
- 1624,
- 1625,
- 1642,
- 1646,
- 1748,
- 1749,
- 1757,
- 1761,
- 1769,
- 1773,
- 1789,
- 1791,
- 1792,
- 1808,
- 1856,
- 1869,
- 1970,
- 1984,
- 2027,
- 2036,
- 2038,
- 2042,
- 2043,
- 2048,
- 2072,
- 2074,
- 2093,
- 2112,
- 2137,
- 2208,
- 2209,
- 2210,
- 2221,
- 2276,
- 2282,
- 2288,
- 2303,
- 2304,
- 2364,
- 2365,
- 2381,
- 2382,
- 2385,
- 2389,
- 2404,
- 2406,
- 2416,
- 2417,
- 2424,
- 2425,
- 2432,
- 2433,
- 2436,
- 2437,
- 2445,
- 2447,
- 2449,
- 2451,
- 2473,
- 2474,
- 2481,
- 2482,
- 2483,
- 2486,
- 2490,
- 2493,
- 2501,
- 2503,
- 2505,
- 2507,
- 2509,
- 2510,
- 2511,
- 2519,
- 2520,
- 2524,
- 2526,
- 2527,
- 2532,
- 2534,
- 2546,
- 2561,
- 2564,
- 2565,
- 2571,
- 2575,
- 2577,
- 2579,
- 2601,
- 2602,
- 2609,
- 2610,
- 2612,
- 2613,
- 2615,
- 2616,
- 2618,
- 2622,
- 2627,
- 2631,
- 2633,
- 2635,
- 2637,
- 2641,
- 2642,
- 2649,
- 2653,
- 2654,
- 2655,
- 2662,
- 2678,
- 2689,
- 2692,
- 2693,
- 2702,
- 2703,
- 2706,
- 2707,
- 2729,
- 2730,
- 2737,
- 2738,
- 2740,
- 2741,
- 2746,
- 2749,
- 2758,
- 2759,
- 2762,
- 2763,
- 2765,
- 2768,
- 2769,
- 2784,
- 2788,
- 2790,
- 2800,
- 2817,
- 2820,
- 2821,
- 2829,
- 2831,
- 2833,
- 2835,
- 2857,
- 2858,
- 2865,
- 2866,
- 2868,
- 2869,
- 2874,
- 2877,
- 2885,
- 2887,
- 2889,
- 2891,
- 2893,
- 2902,
- 2904,
- 2908,
- 2910,
- 2911,
- 2916,
- 2918,
- 2928,
- 2929,
- 2930,
- 2946,
- 2948,
- 2949,
- 2955,
- 2958,
- 2961,
- 2962,
- 2966,
- 2969,
- 2971,
- 2972,
- 2973,
- 2974,
- 2976,
- 2979,
- 2981,
- 2984,
- 2987,
- 2990,
- 3002,
- 3006,
- 3011,
- 3014,
- 3017,
- 3018,
- 3021,
- 3024,
- 3025,
- 3031,
- 3032,
- 3046,
- 3056,
- 3073,
- 3076,
- 3077,
- 3085,
- 3086,
- 3089,
- 3090,
- 3113,
- 3114,
- 3124,
- 3125,
- 3130,
- 3133,
- 3141,
- 3142,
- 3145,
- 3146,
- 3149,
- 3157,
- 3159,
- 3160,
- 3162,
- 3168,
- 3172,
- 3174,
- 3184,
- 3202,
- 3204,
- 3205,
- 3213,
- 3214,
- 3217,
- 3218,
- 3241,
- 3242,
- 3252,
- 3253,
- 3258,
- 3261,
- 3269,
- 3270,
- 3273,
- 3274,
- 3277,
- 3285,
- 3287,
- 3294,
- 3295,
- 3296,
- 3300,
- 3302,
- 3312,
- 3313,
- 3315,
- 3330,
- 3332,
- 3333,
- 3341,
- 3342,
- 3345,
- 3346,
- 3387,
- 3389,
- 3397,
- 3398,
- 3401,
- 3402,
- 3405,
- 3406,
- 3407,
- 3415,
- 3416,
- 3424,
- 3428,
- 3430,
- 3440,
- 3450,
- 3456,
- 3458,
- 3460,
- 3461,
- 3479,
- 3482,
- 3506,
- 3507,
- 3516,
- 3517,
- 3518,
- 3520,
- 3527,
- 3535,
- 3541,
- 3542,
- 3543,
- 3544,
- 3552,
- 3570,
- 3572,
- 3585,
- 3643,
- 3648,
- 3655,
- 3661,
- 3662,
- 3664,
- 3674,
- 3713,
- 3715,
- 3716,
- 3717,
- 3719,
- 3721,
- 3722,
- 3723,
- 3725,
- 3726,
- 3732,
- 3736,
- 3737,
- 3744,
- 3745,
- 3748,
- 3749,
- 3750,
- 3751,
- 3752,
- 3754,
- 3756,
- 3757,
- 3770,
- 3771,
- 3774,
- 3776,
- 3781,
- 3782,
- 3783,
- 3789,
- 3790,
- 3792,
- 3802,
- 3804,
- 3808,
- 3840,
- 3841,
- 3872,
- 3882,
- 3904,
- 3912,
- 3913,
- 3949,
- 3953,
- 3970,
- 3976,
- 3992,
- 3993,
- 4029,
- 4096,
- 4151,
- 4152,
- 4153,
- 4155,
- 4170,
- 4176,
- 4195,
- 4197,
- 4201,
- 4206,
- 4231,
- 4238,
- 4239,
- 4240,
- 4250,
- 4252,
- 4254,
- 4256,
- 4294,
- 4295,
- 4296,
- 4301,
- 4302,
- 4304,
- 4347,
- 4348,
- 4681,
- 4682,
- 4686,
- 4688,
- 4695,
- 4696,
- 4697,
- 4698,
- 4702,
- 4704,
- 4745,
- 4746,
- 4750,
- 4752,
- 4785,
- 4786,
- 4790,
- 4792,
- 4799,
- 4800,
- 4801,
- 4802,
- 4806,
- 4808,
- 4823,
- 4824,
- 4881,
- 4882,
- 4886,
- 4888,
- 4955,
- 4959,
- 4960,
- 4992,
- 5008,
- 5024,
- 5109,
- 5121,
- 5741,
- 5743,
- 5760,
- 5761,
- 5787,
- 5792,
- 5867,
- 5870,
- 5873,
- 5888,
- 5901,
- 5902,
- 5908,
- 5920,
- 5940,
- 5952,
- 5972,
- 5984,
- 5997,
- 5998,
- 6001,
- 6002,
- 6004,
- 6016,
- 6068,
- 6070,
- 6089,
- 6103,
- 6104,
- 6108,
- 6109,
- 6112,
- 6122,
- 6160,
- 6170,
- 6176,
- 6264,
- 6272,
- 6315,
- 6320,
- 6390,
- 6400,
- 6429,
- 6432,
- 6444,
- 6448,
- 6457,
- 6470,
- 6510,
- 6512,
- 6517,
- 6528,
- 6572,
- 6576,
- 6602,
- 6608,
- 6618,
- 6656,
- 6684,
- 6688,
- 6751,
- 6753,
- 6773,
- 6784,
- 6794,
- 6800,
- 6810,
- 6823,
- 6824,
- 6912,
- 6964,
- 6965,
- 6980,
- 6981,
- 6988,
- 6992,
- 7002,
- 7040,
- 7082,
- 7084,
- 7142,
- 7143,
- 7154,
- 7168,
- 7222,
- 7232,
- 7242,
- 7245,
- 7294,
- 7401,
- 7405,
- 7406,
- 7412,
- 7413,
- 7415,
- 7424,
- 7616,
- 7680,
- 7958,
- 7960,
- 7966,
- 7968,
- 8006,
- 8008,
- 8014,
- 8016,
- 8024,
- 8025,
- 8026,
- 8027,
- 8028,
- 8029,
- 8030,
- 8031,
- 8062,
- 8064,
- 8117,
- 8118,
- 8125,
- 8126,
- 8127,
- 8130,
- 8133,
- 8134,
- 8141,
- 8144,
- 8148,
- 8150,
- 8156,
- 8160,
- 8173,
- 8178,
- 8181,
- 8182,
- 8189,
- 8305,
- 8306,
- 8319,
- 8320,
- 8336,
- 8349,
- 8450,
- 8451,
- 8455,
- 8456,
- 8458,
- 8468,
- 8469,
- 8470,
- 8473,
- 8478,
- 8484,
- 8485,
- 8486,
- 8487,
- 8488,
- 8489,
- 8490,
- 8494,
- 8495,
- 8506,
- 8508,
- 8512,
- 8517,
- 8522,
- 8526,
- 8527,
- 8544,
- 8585,
- 9398,
- 9450,
- 11264,
- 11311,
- 11312,
- 11359,
- 11360,
- 11493,
- 11499,
- 11503,
- 11506,
- 11508,
- 11520,
- 11558,
- 11559,
- 11560,
- 11565,
- 11566,
- 11568,
- 11624,
- 11631,
- 11632,
- 11648,
- 11671,
- 11680,
- 11687,
- 11688,
- 11695,
- 11696,
- 11703,
- 11704,
- 11711,
- 11712,
- 11719,
- 11720,
- 11727,
- 11728,
- 11735,
- 11736,
- 11743,
- 11744,
- 11776,
- 11823,
- 11824,
- 12293,
- 12296,
- 12321,
- 12330,
- 12337,
- 12342,
- 12344,
- 12349,
- 12353,
- 12439,
- 12445,
- 12448,
- 12449,
- 12539,
- 12540,
- 12544,
- 12549,
- 12590,
- 12593,
- 12687,
- 12704,
- 12731,
- 12784,
- 12800,
- 13312,
- 19894,
- 19968,
- 40909,
- 40960,
- 42125,
- 42192,
- 42238,
- 42240,
- 42509,
- 42512,
- 42540,
- 42560,
- 42607,
- 42612,
- 42620,
- 42623,
- 42648,
- 42655,
- 42736,
- 42775,
- 42784,
- 42786,
- 42889,
- 42891,
- 42895,
- 42896,
- 42900,
- 42912,
- 42923,
- 43000,
- 43010,
- 43011,
- 43014,
- 43015,
- 43019,
- 43020,
- 43048,
- 43072,
- 43124,
- 43136,
- 43204,
- 43216,
- 43226,
- 43250,
- 43256,
- 43259,
- 43260,
- 43264,
- 43307,
- 43312,
- 43347,
- 43360,
- 43389,
- 43392,
- 43443,
- 43444,
- 43456,
- 43471,
- 43482,
- 43520,
- 43575,
- 43584,
- 43598,
- 43600,
- 43610,
- 43616,
- 43639,
- 43642,
- 43643,
- 43648,
- 43711,
- 43712,
- 43713,
- 43714,
- 43715,
- 43739,
- 43742,
- 43744,
- 43760,
- 43762,
- 43766,
- 43777,
- 43783,
- 43785,
- 43791,
- 43793,
- 43799,
- 43808,
- 43815,
- 43816,
- 43823,
- 43968,
- 44011,
- 44016,
- 44026,
- 44032,
- 55204,
- 55216,
- 55239,
- 55243,
- 55292,
- 63744,
- 64110,
- 64112,
- 64218,
- 64256,
- 64263,
- 64275,
- 64280,
- 64285,
- 64297,
- 64298,
- 64311,
- 64312,
- 64317,
- 64318,
- 64319,
- 64320,
- 64322,
- 64323,
- 64325,
- 64326,
- 64434,
- 64467,
- 64830,
- 64848,
- 64912,
- 64914,
- 64968,
- 65008,
- 65020,
- 65136,
- 65141,
- 65142,
- 65277,
- 65296,
- 65306,
- 65313,
- 65339,
- 65345,
- 65371,
- 65382,
- 65471,
- 65474,
- 65480,
- 65482,
- 65488,
- 65490,
- 65496,
- 65498,
- 65501,
- 65536,
- 65548,
- 65549,
- 65575,
- 65576,
- 65595,
- 65596,
- 65598,
- 65599,
- 65614,
- 65616,
- 65630,
- 65664,
- 65787,
- 65856,
- 65909,
- 66176,
- 66205,
- 66208,
- 66257,
- 66304,
- 66335,
- 66352,
- 66379,
- 66432,
- 66462,
- 66464,
- 66500,
- 66504,
- 66512,
- 66513,
- 66518,
- 66560,
- 66718,
- 66720,
- 66730,
- 67584,
- 67590,
- 67592,
- 67593,
- 67594,
- 67638,
- 67639,
- 67641,
- 67644,
- 67645,
- 67647,
- 67670,
- 67840,
- 67862,
- 67872,
- 67898,
- 67968,
- 68024,
- 68030,
- 68032,
- 68096,
- 68100,
- 68101,
- 68103,
- 68108,
- 68116,
- 68117,
- 68120,
- 68121,
- 68148,
- 68192,
- 68221,
- 68352,
- 68406,
- 68416,
- 68438,
- 68448,
- 68467,
- 68608,
- 68681,
- 69632,
- 69702,
- 69734,
- 69744,
- 69762,
- 69817,
- 69840,
- 69865,
- 69872,
- 69882,
- 69888,
- 69939,
- 69942,
- 69952,
- 70016,
- 70080,
- 70081,
- 70085,
- 70096,
- 70106,
- 71296,
- 71350,
- 71360,
- 71370,
- 73728,
- 74607,
- 74752,
- 74851,
- 77824,
- 78895,
- 92160,
- 92729,
- 93952,
- 94021,
- 94032,
- 94079,
- 94099,
- 94112,
- 110592,
- 110594,
- 119808,
- 119893,
- 119894,
- 119965,
- 119966,
- 119968,
- 119970,
- 119971,
- 119973,
- 119975,
- 119977,
- 119981,
- 119982,
- 119994,
- 119995,
- 119996,
- 119997,
- 120004,
- 120005,
- 120070,
- 120071,
- 120075,
- 120077,
- 120085,
- 120086,
- 120093,
- 120094,
- 120122,
- 120123,
- 120127,
- 120128,
- 120133,
- 120134,
- 120135,
- 120138,
- 120145,
- 120146,
- 120486,
- 120488,
- 120513,
- 120514,
- 120539,
- 120540,
- 120571,
- 120572,
- 120597,
- 120598,
- 120629,
- 120630,
- 120655,
- 120656,
- 120687,
- 120688,
- 120713,
- 120714,
- 120745,
- 120746,
- 120771,
- 120772,
- 120780,
- 120782,
- 120832,
- 126464,
- 126468,
- 126469,
- 126496,
- 126497,
- 126499,
- 126500,
- 126501,
- 126503,
- 126504,
- 126505,
- 126515,
- 126516,
- 126520,
- 126521,
- 126522,
- 126523,
- 126524,
- 126530,
- 126531,
- 126535,
- 126536,
- 126537,
- 126538,
- 126539,
- 126540,
- 126541,
- 126544,
- 126545,
- 126547,
- 126548,
- 126549,
- 126551,
- 126552,
- 126553,
- 126554,
- 126555,
- 126556,
- 126557,
- 126558,
- 126559,
- 126560,
- 126561,
- 126563,
- 126564,
- 126565,
- 126567,
- 126571,
- 126572,
- 126579,
- 126580,
- 126584,
- 126585,
- 126589,
- 126590,
- 126591,
- 126592,
- 126602,
- 126603,
- 126620,
- 126625,
- 126628,
- 126629,
- 126634,
- 126635,
- 126652,
- 131072,
- 173783,
- 173824,
- 177973,
- 177984,
- 178206,
- 194560,
- 195102
+ 0x0,
+ 0x9,
+ 0xA,
+ 0x20,
+ 0x21,
+ 0xA0,
+ 0xA1,
+ 0x1680,
+ 0x1681,
+ 0x2000,
+ 0x200B,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x3000,
+ 0x3001
};
-#endif
+static const UV XPosixCntrl_invlist[] = { /* for ASCII/Latin1 */
+ 4, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x20,
+ 0x7F,
+ 0xA0
+};
-#ifndef PERL_IN_XSUB_RE
+static const UV XPosixDigit_invlist[] = { /* for ASCII/Latin1 */
+ 101, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x30,
+ 0x3A,
+ 0x660,
+ 0x66A,
+ 0x6F0,
+ 0x6FA,
+ 0x7C0,
+ 0x7CA,
+ 0x966,
+ 0x970,
+ 0x9E6,
+ 0x9F0,
+ 0xA66,
+ 0xA70,
+ 0xAE6,
+ 0xAF0,
+ 0xB66,
+ 0xB70,
+ 0xBE6,
+ 0xBF0,
+ 0xC66,
+ 0xC70,
+ 0xCE6,
+ 0xCF0,
+ 0xD66,
+ 0xD70,
+ 0xDE6,
+ 0xDF0,
+ 0xE50,
+ 0xE5A,
+ 0xED0,
+ 0xEDA,
+ 0xF20,
+ 0xF2A,
+ 0x1040,
+ 0x104A,
+ 0x1090,
+ 0x109A,
+ 0x17E0,
+ 0x17EA,
+ 0x1810,
+ 0x181A,
+ 0x1946,
+ 0x1950,
+ 0x19D0,
+ 0x19DA,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1B50,
+ 0x1B5A,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C50,
+ 0x1C5A,
+ 0xA620,
+ 0xA62A,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA900,
+ 0xA90A,
+ 0xA9D0,
+ 0xA9DA,
+ 0xA9F0,
+ 0xA9FA,
+ 0xAA50,
+ 0xAA5A,
+ 0xABF0,
+ 0xABFA,
+ 0xFF10,
+ 0xFF1A,
+ 0x104A0,
+ 0x104AA,
+ 0x11066,
+ 0x11070,
+ 0x110F0,
+ 0x110FA,
+ 0x11136,
+ 0x11140,
+ 0x111D0,
+ 0x111DA,
+ 0x112F0,
+ 0x112FA,
+ 0x114D0,
+ 0x114DA,
+ 0x11650,
+ 0x1165A,
+ 0x116C0,
+ 0x116CA,
+ 0x118E0,
+ 0x118EA,
+ 0x16A60,
+ 0x16A6A,
+ 0x16B50,
+ 0x16B5A,
+ 0x1D7CE,
+ 0x1D800
+};
-static const UV XPosixAlpha_invlist[] = {
- 1081, /* Number of elements */
+static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
+ 1211, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 65,
- 91,
- 97,
- 123,
- 170,
- 171,
- 181,
- 182,
- 186,
- 187,
- 192,
- 215,
- 216,
- 247,
- 248,
- 706,
- 710,
- 722,
- 736,
- 741,
- 748,
- 749,
- 750,
- 751,
- 837,
- 838,
- 880,
- 885,
- 886,
- 888,
- 890,
- 894,
- 902,
- 903,
- 904,
- 907,
- 908,
- 909,
- 910,
- 930,
- 931,
- 1014,
- 1015,
- 1154,
- 1162,
- 1320,
- 1329,
- 1367,
- 1369,
- 1370,
- 1377,
- 1416,
- 1456,
- 1470,
- 1471,
- 1472,
- 1473,
- 1475,
- 1476,
- 1478,
- 1479,
- 1480,
- 1488,
- 1515,
- 1520,
- 1523,
- 1552,
- 1563,
- 1568,
- 1624,
- 1625,
- 1632,
- 1646,
- 1748,
- 1749,
- 1757,
- 1761,
- 1769,
- 1773,
- 1776,
- 1786,
- 1789,
- 1791,
- 1792,
- 1808,
- 1856,
- 1869,
- 1970,
- 1994,
- 2027,
- 2036,
- 2038,
- 2042,
- 2043,
- 2048,
- 2072,
- 2074,
- 2093,
- 2112,
- 2137,
- 2208,
- 2209,
- 2210,
- 2221,
- 2276,
- 2282,
- 2288,
- 2303,
- 2304,
- 2364,
- 2365,
- 2381,
- 2382,
- 2385,
- 2389,
- 2404,
- 2417,
- 2424,
- 2425,
- 2432,
- 2433,
- 2436,
- 2437,
- 2445,
- 2447,
- 2449,
- 2451,
- 2473,
- 2474,
- 2481,
- 2482,
- 2483,
- 2486,
- 2490,
- 2493,
- 2501,
- 2503,
- 2505,
- 2507,
- 2509,
- 2510,
- 2511,
- 2519,
- 2520,
- 2524,
- 2526,
- 2527,
- 2532,
- 2544,
- 2546,
- 2561,
- 2564,
- 2565,
- 2571,
- 2575,
- 2577,
- 2579,
- 2601,
- 2602,
- 2609,
- 2610,
- 2612,
- 2613,
- 2615,
- 2616,
- 2618,
- 2622,
- 2627,
- 2631,
- 2633,
- 2635,
- 2637,
- 2641,
- 2642,
- 2649,
- 2653,
- 2654,
- 2655,
- 2672,
- 2678,
- 2689,
- 2692,
- 2693,
- 2702,
- 2703,
- 2706,
- 2707,
- 2729,
- 2730,
- 2737,
- 2738,
- 2740,
- 2741,
- 2746,
- 2749,
- 2758,
- 2759,
- 2762,
- 2763,
- 2765,
- 2768,
- 2769,
- 2784,
- 2788,
- 2817,
- 2820,
- 2821,
- 2829,
- 2831,
- 2833,
- 2835,
- 2857,
- 2858,
- 2865,
- 2866,
- 2868,
- 2869,
- 2874,
- 2877,
- 2885,
- 2887,
- 2889,
- 2891,
- 2893,
- 2902,
- 2904,
- 2908,
- 2910,
- 2911,
- 2916,
- 2929,
- 2930,
- 2946,
- 2948,
- 2949,
- 2955,
- 2958,
- 2961,
- 2962,
- 2966,
- 2969,
- 2971,
- 2972,
- 2973,
- 2974,
- 2976,
- 2979,
- 2981,
- 2984,
- 2987,
- 2990,
- 3002,
- 3006,
- 3011,
- 3014,
- 3017,
- 3018,
- 3021,
- 3024,
- 3025,
- 3031,
- 3032,
- 3073,
- 3076,
- 3077,
- 3085,
- 3086,
- 3089,
- 3090,
- 3113,
- 3114,
- 3124,
- 3125,
- 3130,
- 3133,
- 3141,
- 3142,
- 3145,
- 3146,
- 3149,
- 3157,
- 3159,
- 3160,
- 3162,
- 3168,
- 3172,
- 3202,
- 3204,
- 3205,
- 3213,
- 3214,
- 3217,
- 3218,
- 3241,
- 3242,
- 3252,
- 3253,
- 3258,
- 3261,
- 3269,
- 3270,
- 3273,
- 3274,
- 3277,
- 3285,
- 3287,
- 3294,
- 3295,
- 3296,
- 3300,
- 3313,
- 3315,
- 3330,
- 3332,
- 3333,
- 3341,
- 3342,
- 3345,
- 3346,
- 3387,
- 3389,
- 3397,
- 3398,
- 3401,
- 3402,
- 3405,
- 3406,
- 3407,
- 3415,
- 3416,
- 3424,
- 3428,
- 3450,
- 3456,
- 3458,
- 3460,
- 3461,
- 3479,
- 3482,
- 3506,
- 3507,
- 3516,
- 3517,
- 3518,
- 3520,
- 3527,
- 3535,
- 3541,
- 3542,
- 3543,
- 3544,
- 3552,
- 3570,
- 3572,
- 3585,
- 3643,
- 3648,
- 3655,
- 3661,
- 3662,
- 3713,
- 3715,
- 3716,
- 3717,
- 3719,
- 3721,
- 3722,
- 3723,
- 3725,
- 3726,
- 3732,
- 3736,
- 3737,
- 3744,
- 3745,
- 3748,
- 3749,
- 3750,
- 3751,
- 3752,
- 3754,
- 3756,
- 3757,
- 3770,
- 3771,
- 3774,
- 3776,
- 3781,
- 3782,
- 3783,
- 3789,
- 3790,
- 3804,
- 3808,
- 3840,
- 3841,
- 3904,
- 3912,
- 3913,
- 3949,
- 3953,
- 3970,
- 3976,
- 3992,
- 3993,
- 4029,
- 4096,
- 4151,
- 4152,
- 4153,
- 4155,
- 4160,
- 4176,
- 4195,
- 4197,
- 4201,
- 4206,
- 4231,
- 4238,
- 4239,
- 4252,
- 4254,
- 4256,
- 4294,
- 4295,
- 4296,
- 4301,
- 4302,
- 4304,
- 4347,
- 4348,
- 4681,
- 4682,
- 4686,
- 4688,
- 4695,
- 4696,
- 4697,
- 4698,
- 4702,
- 4704,
- 4745,
- 4746,
- 4750,
- 4752,
- 4785,
- 4786,
- 4790,
- 4792,
- 4799,
- 4800,
- 4801,
- 4802,
- 4806,
- 4808,
- 4823,
- 4824,
- 4881,
- 4882,
- 4886,
- 4888,
- 4955,
- 4959,
- 4960,
- 4992,
- 5008,
- 5024,
- 5109,
- 5121,
- 5741,
- 5743,
- 5760,
- 5761,
- 5787,
- 5792,
- 5867,
- 5870,
- 5873,
- 5888,
- 5901,
- 5902,
- 5908,
- 5920,
- 5940,
- 5952,
- 5972,
- 5984,
- 5997,
- 5998,
- 6001,
- 6002,
- 6004,
- 6016,
- 6068,
- 6070,
- 6089,
- 6103,
- 6104,
- 6108,
- 6109,
- 6176,
- 6264,
- 6272,
- 6315,
- 6320,
- 6390,
- 6400,
- 6429,
- 6432,
- 6444,
- 6448,
- 6457,
- 6480,
- 6510,
- 6512,
- 6517,
- 6528,
- 6572,
- 6576,
- 6602,
- 6656,
- 6684,
- 6688,
- 6751,
- 6753,
- 6773,
- 6823,
- 6824,
- 6912,
- 6964,
- 6965,
- 6980,
- 6981,
- 6988,
- 7040,
- 7082,
- 7084,
- 7088,
- 7098,
- 7142,
- 7143,
- 7154,
- 7168,
- 7222,
- 7245,
- 7248,
- 7258,
- 7294,
- 7401,
- 7405,
- 7406,
- 7412,
- 7413,
- 7415,
- 7424,
- 7616,
- 7680,
- 7958,
- 7960,
- 7966,
- 7968,
- 8006,
- 8008,
- 8014,
- 8016,
- 8024,
- 8025,
- 8026,
- 8027,
- 8028,
- 8029,
- 8030,
- 8031,
- 8062,
- 8064,
- 8117,
- 8118,
- 8125,
- 8126,
- 8127,
- 8130,
- 8133,
- 8134,
- 8141,
- 8144,
- 8148,
- 8150,
- 8156,
- 8160,
- 8173,
- 8178,
- 8181,
- 8182,
- 8189,
- 8305,
- 8306,
- 8319,
- 8320,
- 8336,
- 8349,
- 8450,
- 8451,
- 8455,
- 8456,
- 8458,
- 8468,
- 8469,
- 8470,
- 8473,
- 8478,
- 8484,
- 8485,
- 8486,
- 8487,
- 8488,
- 8489,
- 8490,
- 8494,
- 8495,
- 8506,
- 8508,
- 8512,
- 8517,
- 8522,
- 8526,
- 8527,
- 8544,
- 8585,
- 9398,
- 9450,
- 11264,
- 11311,
- 11312,
- 11359,
- 11360,
- 11493,
- 11499,
- 11503,
- 11506,
- 11508,
- 11520,
- 11558,
- 11559,
- 11560,
- 11565,
- 11566,
- 11568,
- 11624,
- 11631,
- 11632,
- 11648,
- 11671,
- 11680,
- 11687,
- 11688,
- 11695,
- 11696,
- 11703,
- 11704,
- 11711,
- 11712,
- 11719,
- 11720,
- 11727,
- 11728,
- 11735,
- 11736,
- 11743,
- 11744,
- 11776,
- 11823,
- 11824,
- 12293,
- 12296,
- 12321,
- 12330,
- 12337,
- 12342,
- 12344,
- 12349,
- 12353,
- 12439,
- 12445,
- 12448,
- 12449,
- 12539,
- 12540,
- 12544,
- 12549,
- 12590,
- 12593,
- 12687,
- 12704,
- 12731,
- 12784,
- 12800,
- 13312,
- 19894,
- 19968,
- 40909,
- 40960,
- 42125,
- 42192,
- 42238,
- 42240,
- 42509,
- 42512,
- 42528,
- 42538,
- 42540,
- 42560,
- 42607,
- 42612,
- 42620,
- 42623,
- 42648,
- 42655,
- 42736,
- 42775,
- 42784,
- 42786,
- 42889,
- 42891,
- 42895,
- 42896,
- 42900,
- 42912,
- 42923,
- 43000,
- 43010,
- 43011,
- 43014,
- 43015,
- 43019,
- 43020,
- 43048,
- 43072,
- 43124,
- 43136,
- 43204,
- 43250,
- 43256,
- 43259,
- 43260,
- 43274,
- 43307,
- 43312,
- 43347,
- 43360,
- 43389,
- 43392,
- 43443,
- 43444,
- 43456,
- 43471,
- 43472,
- 43520,
- 43575,
- 43584,
- 43598,
- 43616,
- 43639,
- 43642,
- 43643,
- 43648,
- 43711,
- 43712,
- 43713,
- 43714,
- 43715,
- 43739,
- 43742,
- 43744,
- 43760,
- 43762,
- 43766,
- 43777,
- 43783,
- 43785,
- 43791,
- 43793,
- 43799,
- 43808,
- 43815,
- 43816,
- 43823,
- 43968,
- 44011,
- 44032,
- 55204,
- 55216,
- 55239,
- 55243,
- 55292,
- 63744,
- 64110,
- 64112,
- 64218,
- 64256,
- 64263,
- 64275,
- 64280,
- 64285,
- 64297,
- 64298,
- 64311,
- 64312,
- 64317,
- 64318,
- 64319,
- 64320,
- 64322,
- 64323,
- 64325,
- 64326,
- 64434,
- 64467,
- 64830,
- 64848,
- 64912,
- 64914,
- 64968,
- 65008,
- 65020,
- 65136,
- 65141,
- 65142,
- 65277,
- 65313,
- 65339,
- 65345,
- 65371,
- 65382,
- 65471,
- 65474,
- 65480,
- 65482,
- 65488,
- 65490,
- 65496,
- 65498,
- 65501,
- 65536,
- 65548,
- 65549,
- 65575,
- 65576,
- 65595,
- 65596,
- 65598,
- 65599,
- 65614,
- 65616,
- 65630,
- 65664,
- 65787,
- 65856,
- 65909,
- 66176,
- 66205,
- 66208,
- 66257,
- 66304,
- 66335,
- 66352,
- 66379,
- 66432,
- 66462,
- 66464,
- 66500,
- 66504,
- 66512,
- 66513,
- 66518,
- 66560,
- 66718,
- 67584,
- 67590,
- 67592,
- 67593,
- 67594,
- 67638,
- 67639,
- 67641,
- 67644,
- 67645,
- 67647,
- 67670,
- 67840,
- 67862,
- 67872,
- 67898,
- 67968,
- 68024,
- 68030,
- 68032,
- 68096,
- 68100,
- 68101,
- 68103,
- 68108,
- 68116,
- 68117,
- 68120,
- 68121,
- 68148,
- 68192,
- 68221,
- 68352,
- 68406,
- 68416,
- 68438,
- 68448,
- 68467,
- 68608,
- 68681,
- 69632,
- 69702,
- 69762,
- 69817,
- 69840,
- 69865,
- 69888,
- 69939,
- 70016,
- 70080,
- 70081,
- 70085,
- 71296,
- 71350,
- 73728,
- 74607,
- 74752,
- 74851,
- 77824,
- 78895,
- 92160,
- 92729,
- 93952,
- 94021,
- 94032,
- 94079,
- 94099,
- 94112,
- 110592,
- 110594,
- 119808,
- 119893,
- 119894,
- 119965,
- 119966,
- 119968,
- 119970,
- 119971,
- 119973,
- 119975,
- 119977,
- 119981,
- 119982,
- 119994,
- 119995,
- 119996,
- 119997,
- 120004,
- 120005,
- 120070,
- 120071,
- 120075,
- 120077,
- 120085,
- 120086,
- 120093,
- 120094,
- 120122,
- 120123,
- 120127,
- 120128,
- 120133,
- 120134,
- 120135,
- 120138,
- 120145,
- 120146,
- 120486,
- 120488,
- 120513,
- 120514,
- 120539,
- 120540,
- 120571,
- 120572,
- 120597,
- 120598,
- 120629,
- 120630,
- 120655,
- 120656,
- 120687,
- 120688,
- 120713,
- 120714,
- 120745,
- 120746,
- 120771,
- 120772,
- 120780,
- 126464,
- 126468,
- 126469,
- 126496,
- 126497,
- 126499,
- 126500,
- 126501,
- 126503,
- 126504,
- 126505,
- 126515,
- 126516,
- 126520,
- 126521,
- 126522,
- 126523,
- 126524,
- 126530,
- 126531,
- 126535,
- 126536,
- 126537,
- 126538,
- 126539,
- 126540,
- 126541,
- 126544,
- 126545,
- 126547,
- 126548,
- 126549,
- 126551,
- 126552,
- 126553,
- 126554,
- 126555,
- 126556,
- 126557,
- 126558,
- 126559,
- 126560,
- 126561,
- 126563,
- 126564,
- 126565,
- 126567,
- 126571,
- 126572,
- 126579,
- 126580,
- 126584,
- 126585,
- 126589,
- 126590,
- 126591,
- 126592,
- 126602,
- 126603,
- 126620,
- 126625,
- 126628,
- 126629,
- 126634,
- 126635,
- 126652,
- 131072,
- 173783,
- 173824,
- 177973,
- 177984,
- 178206,
- 194560,
- 195102
+ 0x0,
+ 0x21,
+ 0x7F,
+ 0xA1,
+ 0x378,
+ 0x37A,
+ 0x380,
+ 0x384,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x560,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58B,
+ 0x58D,
+ 0x590,
+ 0x591,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F5,
+ 0x600,
+ 0x61D,
+ 0x61E,
+ 0x70E,
+ 0x70F,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x830,
+ 0x83F,
+ 0x840,
+ 0x85C,
+ 0x85E,
+ 0x85F,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9FC,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF2,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB78,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBFB,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC78,
+ 0xC80,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD76,
+ 0xD79,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF5,
+ 0xE01,
+ 0xE3B,
+ 0xE3F,
+ 0xE5C,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFBE,
+ 0xFCD,
+ 0xFCE,
+ 0xFDB,
+ 0x1000,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x137D,
+ 0x1380,
+ 0x139A,
+ 0x13A0,
+ 0x13F5,
+ 0x1400,
+ 0x1680,
+ 0x1681,
+ 0x169D,
+ 0x16A0,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1737,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x17F0,
+ 0x17FA,
+ 0x1800,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1940,
+ 0x1941,
+ 0x1944,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DB,
+ 0x19DE,
+ 0x1A1C,
+ 0x1A1E,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA0,
+ 0x1AAE,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B7D,
+ 0x1B80,
+ 0x1BF4,
+ 0x1BFC,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C80,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FDD,
+ 0x1FF0,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFF,
+ 0x200B,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20BE,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218A,
+ 0x2190,
+ 0x23FB,
+ 0x2400,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B98,
+ 0x2BBA,
+ 0x2BBD,
+ 0x2BC9,
+ 0x2BCA,
+ 0x2BD2,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CF4,
+ 0x2CF9,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D71,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E43,
+ 0x2E80,
+ 0x2E9A,
+ 0x2E9B,
+ 0x2EF4,
+ 0x2F00,
+ 0x2FD6,
+ 0x2FF0,
+ 0x2FFC,
+ 0x3001,
+ 0x3040,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x3190,
+ 0x31BB,
+ 0x31C0,
+ 0x31E4,
+ 0x31F0,
+ 0x321F,
+ 0x3220,
+ 0x32FF,
+ 0x3300,
+ 0x4DB6,
+ 0x4DC0,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F8,
+ 0xA700,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA82C,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C5,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8FC,
+ 0xA900,
+ 0xA954,
+ 0xA95F,
+ 0xA97D,
+ 0xA980,
+ 0xA9CE,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9DE,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA5C,
+ 0xAAC3,
+ 0xAADB,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xE000,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBC2,
+ 0xFBD3,
+ 0xFD40,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFE,
+ 0xFE00,
+ 0xFE1A,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE30,
+ 0xFE53,
+ 0xFE54,
+ 0xFE67,
+ 0xFE68,
+ 0xFE6C,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF01,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFE0,
+ 0xFFE7,
+ 0xFFE8,
+ 0xFFEF,
+ 0xFFF9,
+ 0xFFFE,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10100,
+ 0x10103,
+ 0x10107,
+ 0x10134,
+ 0x10137,
+ 0x1018D,
+ 0x10190,
+ 0x1019C,
+ 0x101A0,
+ 0x101A1,
+ 0x101D0,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102FC,
+ 0x10300,
+ 0x10324,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x1039F,
+ 0x103C4,
+ 0x103C8,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x1056F,
+ 0x10570,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10857,
+ 0x1089F,
+ 0x108A7,
+ 0x108B0,
+ 0x10900,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A48,
+ 0x10A50,
+ 0x10A59,
+ 0x10A60,
+ 0x10AA0,
+ 0x10AC0,
+ 0x10AE7,
+ 0x10AEB,
+ 0x10AF7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B39,
+ 0x10B56,
+ 0x10B58,
+ 0x10B73,
+ 0x10B78,
+ 0x10B92,
+ 0x10B99,
+ 0x10B9D,
+ 0x10BA9,
+ 0x10BB0,
+ 0x10C00,
+ 0x10C49,
+ 0x10E60,
+ 0x10E7F,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11070,
+ 0x1107F,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11144,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111C9,
+ 0x111CD,
+ 0x111CE,
+ 0x111D0,
+ 0x111DB,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1123E,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115CA,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B46,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B5B,
+ 0x16B62,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1DE,
+ 0x1D200,
+ 0x1D246,
+ 0x1D300,
+ 0x1D357,
+ 0x1D360,
+ 0x1D372,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1EEF0,
+ 0x1EEF2,
+ 0x1F000,
+ 0x1F02C,
+ 0x1F030,
+ 0x1F094,
+ 0x1F0A0,
+ 0x1F0AF,
+ 0x1F0B1,
+ 0x1F0C0,
+ 0x1F0C1,
+ 0x1F0D0,
+ 0x1F0D1,
+ 0x1F0F6,
+ 0x1F100,
+ 0x1F10D,
+ 0x1F110,
+ 0x1F12F,
+ 0x1F130,
+ 0x1F16C,
+ 0x1F170,
+ 0x1F19B,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23B,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F300,
+ 0x1F32D,
+ 0x1F330,
+ 0x1F37E,
+ 0x1F380,
+ 0x1F3CF,
+ 0x1F3D4,
+ 0x1F3F8,
+ 0x1F400,
+ 0x1F4FF,
+ 0x1F500,
+ 0x1F54B,
+ 0x1F550,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F5A4,
+ 0x1F5A5,
+ 0x1F643,
+ 0x1F645,
+ 0x1F6D0,
+ 0x1F6E0,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6F4,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xF0000,
+ 0xFFFFE,
+ 0x100000,
+ 0x10FFFE
};
-#endif
+static const UV XPosixLower_invlist[] = { /* for ASCII/Latin1 */
+ 1267, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x61,
+ 0x7B,
+ 0xAA,
+ 0xAB,
+ 0xB5,
+ 0xB6,
+ 0xBA,
+ 0xBB,
+ 0xDF,
+ 0xF7,
+ 0xF8,
+ 0x100,
+ 0x101,
+ 0x102,
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x106,
+ 0x107,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x10E,
+ 0x10F,
+ 0x110,
+ 0x111,
+ 0x112,
+ 0x113,
+ 0x114,
+ 0x115,
+ 0x116,
+ 0x117,
+ 0x118,
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x11C,
+ 0x11D,
+ 0x11E,
+ 0x11F,
+ 0x120,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x124,
+ 0x125,
+ 0x126,
+ 0x127,
+ 0x128,
+ 0x129,
+ 0x12A,
+ 0x12B,
+ 0x12C,
+ 0x12D,
+ 0x12E,
+ 0x12F,
+ 0x130,
+ 0x131,
+ 0x132,
+ 0x133,
+ 0x134,
+ 0x135,
+ 0x136,
+ 0x137,
+ 0x139,
+ 0x13A,
+ 0x13B,
+ 0x13C,
+ 0x13D,
+ 0x13E,
+ 0x13F,
+ 0x140,
+ 0x141,
+ 0x142,
+ 0x143,
+ 0x144,
+ 0x145,
+ 0x146,
+ 0x147,
+ 0x148,
+ 0x14A,
+ 0x14B,
+ 0x14C,
+ 0x14D,
+ 0x14E,
+ 0x14F,
+ 0x150,
+ 0x151,
+ 0x152,
+ 0x153,
+ 0x154,
+ 0x155,
+ 0x156,
+ 0x157,
+ 0x158,
+ 0x159,
+ 0x15A,
+ 0x15B,
+ 0x15C,
+ 0x15D,
+ 0x15E,
+ 0x15F,
+ 0x160,
+ 0x161,
+ 0x162,
+ 0x163,
+ 0x164,
+ 0x165,
+ 0x166,
+ 0x167,
+ 0x168,
+ 0x169,
+ 0x16A,
+ 0x16B,
+ 0x16C,
+ 0x16D,
+ 0x16E,
+ 0x16F,
+ 0x170,
+ 0x171,
+ 0x172,
+ 0x173,
+ 0x174,
+ 0x175,
+ 0x176,
+ 0x177,
+ 0x178,
+ 0x17A,
+ 0x17B,
+ 0x17C,
+ 0x17D,
+ 0x17E,
+ 0x181,
+ 0x183,
+ 0x184,
+ 0x185,
+ 0x186,
+ 0x188,
+ 0x189,
+ 0x18C,
+ 0x18E,
+ 0x192,
+ 0x193,
+ 0x195,
+ 0x196,
+ 0x199,
+ 0x19C,
+ 0x19E,
+ 0x19F,
+ 0x1A1,
+ 0x1A2,
+ 0x1A3,
+ 0x1A4,
+ 0x1A5,
+ 0x1A6,
+ 0x1A8,
+ 0x1A9,
+ 0x1AA,
+ 0x1AC,
+ 0x1AD,
+ 0x1AE,
+ 0x1B0,
+ 0x1B1,
+ 0x1B4,
+ 0x1B5,
+ 0x1B6,
+ 0x1B7,
+ 0x1B9,
+ 0x1BB,
+ 0x1BD,
+ 0x1C0,
+ 0x1C6,
+ 0x1C7,
+ 0x1C9,
+ 0x1CA,
+ 0x1CC,
+ 0x1CD,
+ 0x1CE,
+ 0x1CF,
+ 0x1D0,
+ 0x1D1,
+ 0x1D2,
+ 0x1D3,
+ 0x1D4,
+ 0x1D5,
+ 0x1D6,
+ 0x1D7,
+ 0x1D8,
+ 0x1D9,
+ 0x1DA,
+ 0x1DB,
+ 0x1DC,
+ 0x1DE,
+ 0x1DF,
+ 0x1E0,
+ 0x1E1,
+ 0x1E2,
+ 0x1E3,
+ 0x1E4,
+ 0x1E5,
+ 0x1E6,
+ 0x1E7,
+ 0x1E8,
+ 0x1E9,
+ 0x1EA,
+ 0x1EB,
+ 0x1EC,
+ 0x1ED,
+ 0x1EE,
+ 0x1EF,
+ 0x1F1,
+ 0x1F3,
+ 0x1F4,
+ 0x1F5,
+ 0x1F6,
+ 0x1F9,
+ 0x1FA,
+ 0x1FB,
+ 0x1FC,
+ 0x1FD,
+ 0x1FE,
+ 0x1FF,
+ 0x200,
+ 0x201,
+ 0x202,
+ 0x203,
+ 0x204,
+ 0x205,
+ 0x206,
+ 0x207,
+ 0x208,
+ 0x209,
+ 0x20A,
+ 0x20B,
+ 0x20C,
+ 0x20D,
+ 0x20E,
+ 0x20F,
+ 0x210,
+ 0x211,
+ 0x212,
+ 0x213,
+ 0x214,
+ 0x215,
+ 0x216,
+ 0x217,
+ 0x218,
+ 0x219,
+ 0x21A,
+ 0x21B,
+ 0x21C,
+ 0x21D,
+ 0x21E,
+ 0x21F,
+ 0x220,
+ 0x221,
+ 0x222,
+ 0x223,
+ 0x224,
+ 0x225,
+ 0x226,
+ 0x227,
+ 0x228,
+ 0x229,
+ 0x22A,
+ 0x22B,
+ 0x22C,
+ 0x22D,
+ 0x22E,
+ 0x22F,
+ 0x230,
+ 0x231,
+ 0x232,
+ 0x233,
+ 0x23A,
+ 0x23C,
+ 0x23D,
+ 0x23F,
+ 0x241,
+ 0x242,
+ 0x243,
+ 0x247,
+ 0x248,
+ 0x249,
+ 0x24A,
+ 0x24B,
+ 0x24C,
+ 0x24D,
+ 0x24E,
+ 0x24F,
+ 0x294,
+ 0x295,
+ 0x2B9,
+ 0x2C0,
+ 0x2C2,
+ 0x2E0,
+ 0x2E5,
+ 0x345,
+ 0x346,
+ 0x371,
+ 0x372,
+ 0x373,
+ 0x374,
+ 0x377,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x390,
+ 0x391,
+ 0x3AC,
+ 0x3CF,
+ 0x3D0,
+ 0x3D2,
+ 0x3D5,
+ 0x3D8,
+ 0x3D9,
+ 0x3DA,
+ 0x3DB,
+ 0x3DC,
+ 0x3DD,
+ 0x3DE,
+ 0x3DF,
+ 0x3E0,
+ 0x3E1,
+ 0x3E2,
+ 0x3E3,
+ 0x3E4,
+ 0x3E5,
+ 0x3E6,
+ 0x3E7,
+ 0x3E8,
+ 0x3E9,
+ 0x3EA,
+ 0x3EB,
+ 0x3EC,
+ 0x3ED,
+ 0x3EE,
+ 0x3EF,
+ 0x3F4,
+ 0x3F5,
+ 0x3F6,
+ 0x3F8,
+ 0x3F9,
+ 0x3FB,
+ 0x3FD,
+ 0x430,
+ 0x460,
+ 0x461,
+ 0x462,
+ 0x463,
+ 0x464,
+ 0x465,
+ 0x466,
+ 0x467,
+ 0x468,
+ 0x469,
+ 0x46A,
+ 0x46B,
+ 0x46C,
+ 0x46D,
+ 0x46E,
+ 0x46F,
+ 0x470,
+ 0x471,
+ 0x472,
+ 0x473,
+ 0x474,
+ 0x475,
+ 0x476,
+ 0x477,
+ 0x478,
+ 0x479,
+ 0x47A,
+ 0x47B,
+ 0x47C,
+ 0x47D,
+ 0x47E,
+ 0x47F,
+ 0x480,
+ 0x481,
+ 0x482,
+ 0x48B,
+ 0x48C,
+ 0x48D,
+ 0x48E,
+ 0x48F,
+ 0x490,
+ 0x491,
+ 0x492,
+ 0x493,
+ 0x494,
+ 0x495,
+ 0x496,
+ 0x497,
+ 0x498,
+ 0x499,
+ 0x49A,
+ 0x49B,
+ 0x49C,
+ 0x49D,
+ 0x49E,
+ 0x49F,
+ 0x4A0,
+ 0x4A1,
+ 0x4A2,
+ 0x4A3,
+ 0x4A4,
+ 0x4A5,
+ 0x4A6,
+ 0x4A7,
+ 0x4A8,
+ 0x4A9,
+ 0x4AA,
+ 0x4AB,
+ 0x4AC,
+ 0x4AD,
+ 0x4AE,
+ 0x4AF,
+ 0x4B0,
+ 0x4B1,
+ 0x4B2,
+ 0x4B3,
+ 0x4B4,
+ 0x4B5,
+ 0x4B6,
+ 0x4B7,
+ 0x4B8,
+ 0x4B9,
+ 0x4BA,
+ 0x4BB,
+ 0x4BC,
+ 0x4BD,
+ 0x4BE,
+ 0x4BF,
+ 0x4C0,
+ 0x4C2,
+ 0x4C3,
+ 0x4C4,
+ 0x4C5,
+ 0x4C6,
+ 0x4C7,
+ 0x4C8,
+ 0x4C9,
+ 0x4CA,
+ 0x4CB,
+ 0x4CC,
+ 0x4CD,
+ 0x4CE,
+ 0x4D0,
+ 0x4D1,
+ 0x4D2,
+ 0x4D3,
+ 0x4D4,
+ 0x4D5,
+ 0x4D6,
+ 0x4D7,
+ 0x4D8,
+ 0x4D9,
+ 0x4DA,
+ 0x4DB,
+ 0x4DC,
+ 0x4DD,
+ 0x4DE,
+ 0x4DF,
+ 0x4E0,
+ 0x4E1,
+ 0x4E2,
+ 0x4E3,
+ 0x4E4,
+ 0x4E5,
+ 0x4E6,
+ 0x4E7,
+ 0x4E8,
+ 0x4E9,
+ 0x4EA,
+ 0x4EB,
+ 0x4EC,
+ 0x4ED,
+ 0x4EE,
+ 0x4EF,
+ 0x4F0,
+ 0x4F1,
+ 0x4F2,
+ 0x4F3,
+ 0x4F4,
+ 0x4F5,
+ 0x4F6,
+ 0x4F7,
+ 0x4F8,
+ 0x4F9,
+ 0x4FA,
+ 0x4FB,
+ 0x4FC,
+ 0x4FD,
+ 0x4FE,
+ 0x4FF,
+ 0x500,
+ 0x501,
+ 0x502,
+ 0x503,
+ 0x504,
+ 0x505,
+ 0x506,
+ 0x507,
+ 0x508,
+ 0x509,
+ 0x50A,
+ 0x50B,
+ 0x50C,
+ 0x50D,
+ 0x50E,
+ 0x50F,
+ 0x510,
+ 0x511,
+ 0x512,
+ 0x513,
+ 0x514,
+ 0x515,
+ 0x516,
+ 0x517,
+ 0x518,
+ 0x519,
+ 0x51A,
+ 0x51B,
+ 0x51C,
+ 0x51D,
+ 0x51E,
+ 0x51F,
+ 0x520,
+ 0x521,
+ 0x522,
+ 0x523,
+ 0x524,
+ 0x525,
+ 0x526,
+ 0x527,
+ 0x528,
+ 0x529,
+ 0x52A,
+ 0x52B,
+ 0x52C,
+ 0x52D,
+ 0x52E,
+ 0x52F,
+ 0x530,
+ 0x561,
+ 0x588,
+ 0x1D00,
+ 0x1DC0,
+ 0x1E01,
+ 0x1E02,
+ 0x1E03,
+ 0x1E04,
+ 0x1E05,
+ 0x1E06,
+ 0x1E07,
+ 0x1E08,
+ 0x1E09,
+ 0x1E0A,
+ 0x1E0B,
+ 0x1E0C,
+ 0x1E0D,
+ 0x1E0E,
+ 0x1E0F,
+ 0x1E10,
+ 0x1E11,
+ 0x1E12,
+ 0x1E13,
+ 0x1E14,
+ 0x1E15,
+ 0x1E16,
+ 0x1E17,
+ 0x1E18,
+ 0x1E19,
+ 0x1E1A,
+ 0x1E1B,
+ 0x1E1C,
+ 0x1E1D,
+ 0x1E1E,
+ 0x1E1F,
+ 0x1E20,
+ 0x1E21,
+ 0x1E22,
+ 0x1E23,
+ 0x1E24,
+ 0x1E25,
+ 0x1E26,
+ 0x1E27,
+ 0x1E28,
+ 0x1E29,
+ 0x1E2A,
+ 0x1E2B,
+ 0x1E2C,
+ 0x1E2D,
+ 0x1E2E,
+ 0x1E2F,
+ 0x1E30,
+ 0x1E31,
+ 0x1E32,
+ 0x1E33,
+ 0x1E34,
+ 0x1E35,
+ 0x1E36,
+ 0x1E37,
+ 0x1E38,
+ 0x1E39,
+ 0x1E3A,
+ 0x1E3B,
+ 0x1E3C,
+ 0x1E3D,
+ 0x1E3E,
+ 0x1E3F,
+ 0x1E40,
+ 0x1E41,
+ 0x1E42,
+ 0x1E43,
+ 0x1E44,
+ 0x1E45,
+ 0x1E46,
+ 0x1E47,
+ 0x1E48,
+ 0x1E49,
+ 0x1E4A,
+ 0x1E4B,
+ 0x1E4C,
+ 0x1E4D,
+ 0x1E4E,
+ 0x1E4F,
+ 0x1E50,
+ 0x1E51,
+ 0x1E52,
+ 0x1E53,
+ 0x1E54,
+ 0x1E55,
+ 0x1E56,
+ 0x1E57,
+ 0x1E58,
+ 0x1E59,
+ 0x1E5A,
+ 0x1E5B,
+ 0x1E5C,
+ 0x1E5D,
+ 0x1E5E,
+ 0x1E5F,
+ 0x1E60,
+ 0x1E61,
+ 0x1E62,
+ 0x1E63,
+ 0x1E64,
+ 0x1E65,
+ 0x1E66,
+ 0x1E67,
+ 0x1E68,
+ 0x1E69,
+ 0x1E6A,
+ 0x1E6B,
+ 0x1E6C,
+ 0x1E6D,
+ 0x1E6E,
+ 0x1E6F,
+ 0x1E70,
+ 0x1E71,
+ 0x1E72,
+ 0x1E73,
+ 0x1E74,
+ 0x1E75,
+ 0x1E76,
+ 0x1E77,
+ 0x1E78,
+ 0x1E79,
+ 0x1E7A,
+ 0x1E7B,
+ 0x1E7C,
+ 0x1E7D,
+ 0x1E7E,
+ 0x1E7F,
+ 0x1E80,
+ 0x1E81,
+ 0x1E82,
+ 0x1E83,
+ 0x1E84,
+ 0x1E85,
+ 0x1E86,
+ 0x1E87,
+ 0x1E88,
+ 0x1E89,
+ 0x1E8A,
+ 0x1E8B,
+ 0x1E8C,
+ 0x1E8D,
+ 0x1E8E,
+ 0x1E8F,
+ 0x1E90,
+ 0x1E91,
+ 0x1E92,
+ 0x1E93,
+ 0x1E94,
+ 0x1E95,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1EA1,
+ 0x1EA2,
+ 0x1EA3,
+ 0x1EA4,
+ 0x1EA5,
+ 0x1EA6,
+ 0x1EA7,
+ 0x1EA8,
+ 0x1EA9,
+ 0x1EAA,
+ 0x1EAB,
+ 0x1EAC,
+ 0x1EAD,
+ 0x1EAE,
+ 0x1EAF,
+ 0x1EB0,
+ 0x1EB1,
+ 0x1EB2,
+ 0x1EB3,
+ 0x1EB4,
+ 0x1EB5,
+ 0x1EB6,
+ 0x1EB7,
+ 0x1EB8,
+ 0x1EB9,
+ 0x1EBA,
+ 0x1EBB,
+ 0x1EBC,
+ 0x1EBD,
+ 0x1EBE,
+ 0x1EBF,
+ 0x1EC0,
+ 0x1EC1,
+ 0x1EC2,
+ 0x1EC3,
+ 0x1EC4,
+ 0x1EC5,
+ 0x1EC6,
+ 0x1EC7,
+ 0x1EC8,
+ 0x1EC9,
+ 0x1ECA,
+ 0x1ECB,
+ 0x1ECC,
+ 0x1ECD,
+ 0x1ECE,
+ 0x1ECF,
+ 0x1ED0,
+ 0x1ED1,
+ 0x1ED2,
+ 0x1ED3,
+ 0x1ED4,
+ 0x1ED5,
+ 0x1ED6,
+ 0x1ED7,
+ 0x1ED8,
+ 0x1ED9,
+ 0x1EDA,
+ 0x1EDB,
+ 0x1EDC,
+ 0x1EDD,
+ 0x1EDE,
+ 0x1EDF,
+ 0x1EE0,
+ 0x1EE1,
+ 0x1EE2,
+ 0x1EE3,
+ 0x1EE4,
+ 0x1EE5,
+ 0x1EE6,
+ 0x1EE7,
+ 0x1EE8,
+ 0x1EE9,
+ 0x1EEA,
+ 0x1EEB,
+ 0x1EEC,
+ 0x1EED,
+ 0x1EEE,
+ 0x1EEF,
+ 0x1EF0,
+ 0x1EF1,
+ 0x1EF2,
+ 0x1EF3,
+ 0x1EF4,
+ 0x1EF5,
+ 0x1EF6,
+ 0x1EF7,
+ 0x1EF8,
+ 0x1EF9,
+ 0x1EFA,
+ 0x1EFB,
+ 0x1EFC,
+ 0x1EFD,
+ 0x1EFE,
+ 0x1EFF,
+ 0x1F08,
+ 0x1F10,
+ 0x1F16,
+ 0x1F20,
+ 0x1F28,
+ 0x1F30,
+ 0x1F38,
+ 0x1F40,
+ 0x1F46,
+ 0x1F50,
+ 0x1F58,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1F7E,
+ 0x1F80,
+ 0x1F88,
+ 0x1F90,
+ 0x1F98,
+ 0x1FA0,
+ 0x1FA8,
+ 0x1FB0,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FB8,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FC8,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FD8,
+ 0x1FE0,
+ 0x1FE8,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FF8,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x210A,
+ 0x210B,
+ 0x210E,
+ 0x2110,
+ 0x2113,
+ 0x2114,
+ 0x212F,
+ 0x2130,
+ 0x2134,
+ 0x2135,
+ 0x2139,
+ 0x213A,
+ 0x213C,
+ 0x213E,
+ 0x2146,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2170,
+ 0x2180,
+ 0x2184,
+ 0x2185,
+ 0x24D0,
+ 0x24EA,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C61,
+ 0x2C62,
+ 0x2C65,
+ 0x2C67,
+ 0x2C68,
+ 0x2C69,
+ 0x2C6A,
+ 0x2C6B,
+ 0x2C6C,
+ 0x2C6D,
+ 0x2C71,
+ 0x2C72,
+ 0x2C73,
+ 0x2C75,
+ 0x2C76,
+ 0x2C7E,
+ 0x2C81,
+ 0x2C82,
+ 0x2C83,
+ 0x2C84,
+ 0x2C85,
+ 0x2C86,
+ 0x2C87,
+ 0x2C88,
+ 0x2C89,
+ 0x2C8A,
+ 0x2C8B,
+ 0x2C8C,
+ 0x2C8D,
+ 0x2C8E,
+ 0x2C8F,
+ 0x2C90,
+ 0x2C91,
+ 0x2C92,
+ 0x2C93,
+ 0x2C94,
+ 0x2C95,
+ 0x2C96,
+ 0x2C97,
+ 0x2C98,
+ 0x2C99,
+ 0x2C9A,
+ 0x2C9B,
+ 0x2C9C,
+ 0x2C9D,
+ 0x2C9E,
+ 0x2C9F,
+ 0x2CA0,
+ 0x2CA1,
+ 0x2CA2,
+ 0x2CA3,
+ 0x2CA4,
+ 0x2CA5,
+ 0x2CA6,
+ 0x2CA7,
+ 0x2CA8,
+ 0x2CA9,
+ 0x2CAA,
+ 0x2CAB,
+ 0x2CAC,
+ 0x2CAD,
+ 0x2CAE,
+ 0x2CAF,
+ 0x2CB0,
+ 0x2CB1,
+ 0x2CB2,
+ 0x2CB3,
+ 0x2CB4,
+ 0x2CB5,
+ 0x2CB6,
+ 0x2CB7,
+ 0x2CB8,
+ 0x2CB9,
+ 0x2CBA,
+ 0x2CBB,
+ 0x2CBC,
+ 0x2CBD,
+ 0x2CBE,
+ 0x2CBF,
+ 0x2CC0,
+ 0x2CC1,
+ 0x2CC2,
+ 0x2CC3,
+ 0x2CC4,
+ 0x2CC5,
+ 0x2CC6,
+ 0x2CC7,
+ 0x2CC8,
+ 0x2CC9,
+ 0x2CCA,
+ 0x2CCB,
+ 0x2CCC,
+ 0x2CCD,
+ 0x2CCE,
+ 0x2CCF,
+ 0x2CD0,
+ 0x2CD1,
+ 0x2CD2,
+ 0x2CD3,
+ 0x2CD4,
+ 0x2CD5,
+ 0x2CD6,
+ 0x2CD7,
+ 0x2CD8,
+ 0x2CD9,
+ 0x2CDA,
+ 0x2CDB,
+ 0x2CDC,
+ 0x2CDD,
+ 0x2CDE,
+ 0x2CDF,
+ 0x2CE0,
+ 0x2CE1,
+ 0x2CE2,
+ 0x2CE3,
+ 0x2CE5,
+ 0x2CEC,
+ 0x2CED,
+ 0x2CEE,
+ 0x2CEF,
+ 0x2CF3,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0xA641,
+ 0xA642,
+ 0xA643,
+ 0xA644,
+ 0xA645,
+ 0xA646,
+ 0xA647,
+ 0xA648,
+ 0xA649,
+ 0xA64A,
+ 0xA64B,
+ 0xA64C,
+ 0xA64D,
+ 0xA64E,
+ 0xA64F,
+ 0xA650,
+ 0xA651,
+ 0xA652,
+ 0xA653,
+ 0xA654,
+ 0xA655,
+ 0xA656,
+ 0xA657,
+ 0xA658,
+ 0xA659,
+ 0xA65A,
+ 0xA65B,
+ 0xA65C,
+ 0xA65D,
+ 0xA65E,
+ 0xA65F,
+ 0xA660,
+ 0xA661,
+ 0xA662,
+ 0xA663,
+ 0xA664,
+ 0xA665,
+ 0xA666,
+ 0xA667,
+ 0xA668,
+ 0xA669,
+ 0xA66A,
+ 0xA66B,
+ 0xA66C,
+ 0xA66D,
+ 0xA66E,
+ 0xA681,
+ 0xA682,
+ 0xA683,
+ 0xA684,
+ 0xA685,
+ 0xA686,
+ 0xA687,
+ 0xA688,
+ 0xA689,
+ 0xA68A,
+ 0xA68B,
+ 0xA68C,
+ 0xA68D,
+ 0xA68E,
+ 0xA68F,
+ 0xA690,
+ 0xA691,
+ 0xA692,
+ 0xA693,
+ 0xA694,
+ 0xA695,
+ 0xA696,
+ 0xA697,
+ 0xA698,
+ 0xA699,
+ 0xA69A,
+ 0xA69B,
+ 0xA69E,
+ 0xA723,
+ 0xA724,
+ 0xA725,
+ 0xA726,
+ 0xA727,
+ 0xA728,
+ 0xA729,
+ 0xA72A,
+ 0xA72B,
+ 0xA72C,
+ 0xA72D,
+ 0xA72E,
+ 0xA72F,
+ 0xA732,
+ 0xA733,
+ 0xA734,
+ 0xA735,
+ 0xA736,
+ 0xA737,
+ 0xA738,
+ 0xA739,
+ 0xA73A,
+ 0xA73B,
+ 0xA73C,
+ 0xA73D,
+ 0xA73E,
+ 0xA73F,
+ 0xA740,
+ 0xA741,
+ 0xA742,
+ 0xA743,
+ 0xA744,
+ 0xA745,
+ 0xA746,
+ 0xA747,
+ 0xA748,
+ 0xA749,
+ 0xA74A,
+ 0xA74B,
+ 0xA74C,
+ 0xA74D,
+ 0xA74E,
+ 0xA74F,
+ 0xA750,
+ 0xA751,
+ 0xA752,
+ 0xA753,
+ 0xA754,
+ 0xA755,
+ 0xA756,
+ 0xA757,
+ 0xA758,
+ 0xA759,
+ 0xA75A,
+ 0xA75B,
+ 0xA75C,
+ 0xA75D,
+ 0xA75E,
+ 0xA75F,
+ 0xA760,
+ 0xA761,
+ 0xA762,
+ 0xA763,
+ 0xA764,
+ 0xA765,
+ 0xA766,
+ 0xA767,
+ 0xA768,
+ 0xA769,
+ 0xA76A,
+ 0xA76B,
+ 0xA76C,
+ 0xA76D,
+ 0xA76E,
+ 0xA76F,
+ 0xA779,
+ 0xA77A,
+ 0xA77B,
+ 0xA77C,
+ 0xA77D,
+ 0xA77F,
+ 0xA780,
+ 0xA781,
+ 0xA782,
+ 0xA783,
+ 0xA784,
+ 0xA785,
+ 0xA786,
+ 0xA787,
+ 0xA788,
+ 0xA78C,
+ 0xA78D,
+ 0xA78E,
+ 0xA78F,
+ 0xA791,
+ 0xA792,
+ 0xA793,
+ 0xA796,
+ 0xA797,
+ 0xA798,
+ 0xA799,
+ 0xA79A,
+ 0xA79B,
+ 0xA79C,
+ 0xA79D,
+ 0xA79E,
+ 0xA79F,
+ 0xA7A0,
+ 0xA7A1,
+ 0xA7A2,
+ 0xA7A3,
+ 0xA7A4,
+ 0xA7A5,
+ 0xA7A6,
+ 0xA7A7,
+ 0xA7A8,
+ 0xA7A9,
+ 0xA7AA,
+ 0xA7F8,
+ 0xA7FB,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFF41,
+ 0xFF5B,
+ 0x10428,
+ 0x10450,
+ 0x118C0,
+ 0x118E0,
+ 0x1D41A,
+ 0x1D434,
+ 0x1D44E,
+ 0x1D455,
+ 0x1D456,
+ 0x1D468,
+ 0x1D482,
+ 0x1D49C,
+ 0x1D4B6,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D4D0,
+ 0x1D4EA,
+ 0x1D504,
+ 0x1D51E,
+ 0x1D538,
+ 0x1D552,
+ 0x1D56C,
+ 0x1D586,
+ 0x1D5A0,
+ 0x1D5BA,
+ 0x1D5D4,
+ 0x1D5EE,
+ 0x1D608,
+ 0x1D622,
+ 0x1D63C,
+ 0x1D656,
+ 0x1D670,
+ 0x1D68A,
+ 0x1D6A6,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6E2,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D71C,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D756,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D790,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CA,
+ 0x1D7CB,
+ 0x1D7CC
+};
-#ifndef PERL_IN_XSUB_RE
+static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
+ 1205, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x20,
+ 0x7F,
+ 0xA0,
+ 0x378,
+ 0x37A,
+ 0x380,
+ 0x384,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x560,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58B,
+ 0x58D,
+ 0x590,
+ 0x591,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F5,
+ 0x600,
+ 0x61D,
+ 0x61E,
+ 0x70E,
+ 0x70F,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x830,
+ 0x83F,
+ 0x840,
+ 0x85C,
+ 0x85E,
+ 0x85F,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9FC,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF2,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB78,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBFB,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC78,
+ 0xC80,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD76,
+ 0xD79,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF5,
+ 0xE01,
+ 0xE3B,
+ 0xE3F,
+ 0xE5C,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFBE,
+ 0xFCD,
+ 0xFCE,
+ 0xFDB,
+ 0x1000,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x137D,
+ 0x1380,
+ 0x139A,
+ 0x13A0,
+ 0x13F5,
+ 0x1400,
+ 0x169D,
+ 0x16A0,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1737,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x17F0,
+ 0x17FA,
+ 0x1800,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1940,
+ 0x1941,
+ 0x1944,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DB,
+ 0x19DE,
+ 0x1A1C,
+ 0x1A1E,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA0,
+ 0x1AAE,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B7D,
+ 0x1B80,
+ 0x1BF4,
+ 0x1BFC,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C80,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FDD,
+ 0x1FF0,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFF,
+ 0x2000,
+ 0x2028,
+ 0x202A,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20BE,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218A,
+ 0x2190,
+ 0x23FB,
+ 0x2400,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B98,
+ 0x2BBA,
+ 0x2BBD,
+ 0x2BC9,
+ 0x2BCA,
+ 0x2BD2,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CF4,
+ 0x2CF9,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D71,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E43,
+ 0x2E80,
+ 0x2E9A,
+ 0x2E9B,
+ 0x2EF4,
+ 0x2F00,
+ 0x2FD6,
+ 0x2FF0,
+ 0x2FFC,
+ 0x3000,
+ 0x3040,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x3190,
+ 0x31BB,
+ 0x31C0,
+ 0x31E4,
+ 0x31F0,
+ 0x321F,
+ 0x3220,
+ 0x32FF,
+ 0x3300,
+ 0x4DB6,
+ 0x4DC0,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F8,
+ 0xA700,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA82C,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C5,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8FC,
+ 0xA900,
+ 0xA954,
+ 0xA95F,
+ 0xA97D,
+ 0xA980,
+ 0xA9CE,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9DE,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA5C,
+ 0xAAC3,
+ 0xAADB,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xE000,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBC2,
+ 0xFBD3,
+ 0xFD40,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFE,
+ 0xFE00,
+ 0xFE1A,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE30,
+ 0xFE53,
+ 0xFE54,
+ 0xFE67,
+ 0xFE68,
+ 0xFE6C,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF01,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFE0,
+ 0xFFE7,
+ 0xFFE8,
+ 0xFFEF,
+ 0xFFF9,
+ 0xFFFE,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10100,
+ 0x10103,
+ 0x10107,
+ 0x10134,
+ 0x10137,
+ 0x1018D,
+ 0x10190,
+ 0x1019C,
+ 0x101A0,
+ 0x101A1,
+ 0x101D0,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102FC,
+ 0x10300,
+ 0x10324,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x1039F,
+ 0x103C4,
+ 0x103C8,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x1056F,
+ 0x10570,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10857,
+ 0x1089F,
+ 0x108A7,
+ 0x108B0,
+ 0x10900,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A48,
+ 0x10A50,
+ 0x10A59,
+ 0x10A60,
+ 0x10AA0,
+ 0x10AC0,
+ 0x10AE7,
+ 0x10AEB,
+ 0x10AF7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B39,
+ 0x10B56,
+ 0x10B58,
+ 0x10B73,
+ 0x10B78,
+ 0x10B92,
+ 0x10B99,
+ 0x10B9D,
+ 0x10BA9,
+ 0x10BB0,
+ 0x10C00,
+ 0x10C49,
+ 0x10E60,
+ 0x10E7F,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11070,
+ 0x1107F,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11144,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111C9,
+ 0x111CD,
+ 0x111CE,
+ 0x111D0,
+ 0x111DB,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1123E,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115CA,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B46,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B5B,
+ 0x16B62,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1DE,
+ 0x1D200,
+ 0x1D246,
+ 0x1D300,
+ 0x1D357,
+ 0x1D360,
+ 0x1D372,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1EEF0,
+ 0x1EEF2,
+ 0x1F000,
+ 0x1F02C,
+ 0x1F030,
+ 0x1F094,
+ 0x1F0A0,
+ 0x1F0AF,
+ 0x1F0B1,
+ 0x1F0C0,
+ 0x1F0C1,
+ 0x1F0D0,
+ 0x1F0D1,
+ 0x1F0F6,
+ 0x1F100,
+ 0x1F10D,
+ 0x1F110,
+ 0x1F12F,
+ 0x1F130,
+ 0x1F16C,
+ 0x1F170,
+ 0x1F19B,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23B,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F300,
+ 0x1F32D,
+ 0x1F330,
+ 0x1F37E,
+ 0x1F380,
+ 0x1F3CF,
+ 0x1F3D4,
+ 0x1F3F8,
+ 0x1F400,
+ 0x1F4FF,
+ 0x1F500,
+ 0x1F54B,
+ 0x1F550,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F5A4,
+ 0x1F5A5,
+ 0x1F643,
+ 0x1F645,
+ 0x1F6D0,
+ 0x1F6E0,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6F4,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xF0000,
+ 0xFFFFE,
+ 0x100000,
+ 0x10FFFE
+};
-static const UV XPosixBlank_invlist[] = {
- 17, /* Number of elements */
+static const UV XPosixPunct_invlist[] = { /* for ASCII/Latin1 */
+ 301, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x21,
+ 0x30,
+ 0x3A,
+ 0x41,
+ 0x5B,
+ 0x61,
+ 0x7B,
+ 0x7F,
+ 0xA1,
+ 0xA2,
+ 0xA7,
+ 0xA8,
+ 0xAB,
+ 0xAC,
+ 0xB6,
+ 0xB8,
+ 0xBB,
+ 0xBC,
+ 0xBF,
+ 0xC0,
+ 0x37E,
+ 0x37F,
+ 0x387,
+ 0x388,
+ 0x55A,
+ 0x560,
+ 0x589,
+ 0x58B,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5F3,
+ 0x5F5,
+ 0x609,
+ 0x60B,
+ 0x60C,
+ 0x60E,
+ 0x61B,
+ 0x61C,
+ 0x61E,
+ 0x620,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x700,
+ 0x70E,
+ 0x7F7,
+ 0x7FA,
+ 0x830,
+ 0x83F,
+ 0x85E,
+ 0x85F,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0xAF0,
+ 0xAF1,
+ 0xDF4,
+ 0xDF5,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE5C,
+ 0xF04,
+ 0xF13,
+ 0xF14,
+ 0xF15,
+ 0xF3A,
+ 0xF3E,
+ 0xF85,
+ 0xF86,
+ 0xFD0,
+ 0xFD5,
+ 0xFD9,
+ 0xFDB,
+ 0x104A,
+ 0x1050,
+ 0x10FB,
+ 0x10FC,
+ 0x1360,
+ 0x1369,
+ 0x1400,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x169B,
+ 0x169D,
+ 0x16EB,
+ 0x16EE,
+ 0x1735,
+ 0x1737,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DB,
+ 0x1800,
+ 0x180B,
+ 0x1944,
+ 0x1946,
+ 0x1A1E,
+ 0x1A20,
+ 0x1AA0,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AAE,
+ 0x1B5A,
+ 0x1B61,
+ 0x1BFC,
+ 0x1C00,
+ 0x1C3B,
+ 0x1C40,
+ 0x1C7E,
+ 0x1C80,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD3,
+ 0x1CD4,
+ 0x2010,
+ 0x2028,
+ 0x2030,
+ 0x2044,
+ 0x2045,
+ 0x2052,
+ 0x2053,
+ 0x205F,
+ 0x207D,
+ 0x207F,
+ 0x208D,
+ 0x208F,
+ 0x2308,
+ 0x230C,
+ 0x2329,
+ 0x232B,
+ 0x2768,
+ 0x2776,
+ 0x27C5,
+ 0x27C7,
+ 0x27E6,
+ 0x27F0,
+ 0x2983,
+ 0x2999,
+ 0x29D8,
+ 0x29DC,
+ 0x29FC,
+ 0x29FE,
+ 0x2CF9,
+ 0x2CFD,
+ 0x2CFE,
+ 0x2D00,
+ 0x2D70,
+ 0x2D71,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x2E43,
+ 0x3001,
+ 0x3004,
+ 0x3008,
+ 0x3012,
+ 0x3014,
+ 0x3020,
+ 0x3030,
+ 0x3031,
+ 0x303D,
+ 0x303E,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA6F2,
+ 0xA6F8,
+ 0xA874,
+ 0xA878,
+ 0xA8CE,
+ 0xA8D0,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA92E,
+ 0xA930,
+ 0xA95F,
+ 0xA960,
+ 0xA9C1,
+ 0xA9CE,
+ 0xA9DE,
+ 0xA9E0,
+ 0xAA5C,
+ 0xAA60,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xABEB,
+ 0xABEC,
+ 0xFD3E,
+ 0xFD40,
+ 0xFE10,
+ 0xFE1A,
+ 0xFE30,
+ 0xFE53,
+ 0xFE54,
+ 0xFE62,
+ 0xFE63,
+ 0xFE64,
+ 0xFE68,
+ 0xFE69,
+ 0xFE6A,
+ 0xFE6C,
+ 0xFF01,
+ 0xFF04,
+ 0xFF05,
+ 0xFF0B,
+ 0xFF0C,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF1C,
+ 0xFF1F,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3E,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF5B,
+ 0xFF5C,
+ 0xFF5D,
+ 0xFF5E,
+ 0xFF5F,
+ 0xFF66,
+ 0x10100,
+ 0x10103,
+ 0x1039F,
+ 0x103A0,
+ 0x103D0,
+ 0x103D1,
+ 0x1056F,
+ 0x10570,
+ 0x10857,
+ 0x10858,
+ 0x1091F,
+ 0x10920,
+ 0x1093F,
+ 0x10940,
+ 0x10A50,
+ 0x10A59,
+ 0x10A7F,
+ 0x10A80,
+ 0x10AF0,
+ 0x10AF7,
+ 0x10B39,
+ 0x10B40,
+ 0x10B99,
+ 0x10B9D,
+ 0x11047,
+ 0x1104E,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x110C2,
+ 0x11140,
+ 0x11144,
+ 0x11174,
+ 0x11176,
+ 0x111C5,
+ 0x111C9,
+ 0x111CD,
+ 0x111CE,
+ 0x11238,
+ 0x1123E,
+ 0x114C6,
+ 0x114C7,
+ 0x115C1,
+ 0x115CA,
+ 0x11641,
+ 0x11644,
+ 0x12470,
+ 0x12475,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AF5,
+ 0x16AF6,
+ 0x16B37,
+ 0x16B3C,
+ 0x16B44,
+ 0x16B45,
+ 0x1BC9F,
+ 0x1BCA0
+};
+
+static const UV XPosixSpace_invlist[] = { /* for ASCII/Latin1 */
+ 21, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x9,
+ 0xE,
+ 0x20,
+ 0x21,
+ 0x85,
+ 0x86,
+ 0xA0,
+ 0xA1,
+ 0x1680,
+ 0x1681,
+ 0x2000,
+ 0x200B,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x3000,
+ 0x3001
+};
+
+static const UV XPosixUpper_invlist[] = { /* for ASCII/Latin1 */
+ 1255, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x41,
+ 0x5B,
+ 0xC0,
+ 0xD7,
+ 0xD8,
+ 0xDF,
+ 0x100,
+ 0x101,
+ 0x102,
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x106,
+ 0x107,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x10E,
+ 0x10F,
+ 0x110,
+ 0x111,
+ 0x112,
+ 0x113,
+ 0x114,
+ 0x115,
+ 0x116,
+ 0x117,
+ 0x118,
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x11C,
+ 0x11D,
+ 0x11E,
+ 0x11F,
+ 0x120,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x124,
+ 0x125,
+ 0x126,
+ 0x127,
+ 0x128,
+ 0x129,
+ 0x12A,
+ 0x12B,
+ 0x12C,
+ 0x12D,
+ 0x12E,
+ 0x12F,
+ 0x130,
+ 0x131,
+ 0x132,
+ 0x133,
+ 0x134,
+ 0x135,
+ 0x136,
+ 0x137,
+ 0x139,
+ 0x13A,
+ 0x13B,
+ 0x13C,
+ 0x13D,
+ 0x13E,
+ 0x13F,
+ 0x140,
+ 0x141,
+ 0x142,
+ 0x143,
+ 0x144,
+ 0x145,
+ 0x146,
+ 0x147,
+ 0x148,
+ 0x14A,
+ 0x14B,
+ 0x14C,
+ 0x14D,
+ 0x14E,
+ 0x14F,
+ 0x150,
+ 0x151,
+ 0x152,
+ 0x153,
+ 0x154,
+ 0x155,
+ 0x156,
+ 0x157,
+ 0x158,
+ 0x159,
+ 0x15A,
+ 0x15B,
+ 0x15C,
+ 0x15D,
+ 0x15E,
+ 0x15F,
+ 0x160,
+ 0x161,
+ 0x162,
+ 0x163,
+ 0x164,
+ 0x165,
+ 0x166,
+ 0x167,
+ 0x168,
+ 0x169,
+ 0x16A,
+ 0x16B,
+ 0x16C,
+ 0x16D,
+ 0x16E,
+ 0x16F,
+ 0x170,
+ 0x171,
+ 0x172,
+ 0x173,
+ 0x174,
+ 0x175,
+ 0x176,
+ 0x177,
+ 0x178,
+ 0x17A,
+ 0x17B,
+ 0x17C,
+ 0x17D,
+ 0x17E,
+ 0x181,
+ 0x183,
+ 0x184,
+ 0x185,
+ 0x186,
+ 0x188,
+ 0x189,
+ 0x18C,
+ 0x18E,
+ 0x192,
+ 0x193,
+ 0x195,
+ 0x196,
+ 0x199,
+ 0x19C,
+ 0x19E,
+ 0x19F,
+ 0x1A1,
+ 0x1A2,
+ 0x1A3,
+ 0x1A4,
+ 0x1A5,
+ 0x1A6,
+ 0x1A8,
+ 0x1A9,
+ 0x1AA,
+ 0x1AC,
+ 0x1AD,
+ 0x1AE,
+ 0x1B0,
+ 0x1B1,
+ 0x1B4,
+ 0x1B5,
+ 0x1B6,
+ 0x1B7,
+ 0x1B9,
+ 0x1BC,
+ 0x1BD,
+ 0x1C4,
+ 0x1C5,
+ 0x1C7,
+ 0x1C8,
+ 0x1CA,
+ 0x1CB,
+ 0x1CD,
+ 0x1CE,
+ 0x1CF,
+ 0x1D0,
+ 0x1D1,
+ 0x1D2,
+ 0x1D3,
+ 0x1D4,
+ 0x1D5,
+ 0x1D6,
+ 0x1D7,
+ 0x1D8,
+ 0x1D9,
+ 0x1DA,
+ 0x1DB,
+ 0x1DC,
+ 0x1DE,
+ 0x1DF,
+ 0x1E0,
+ 0x1E1,
+ 0x1E2,
+ 0x1E3,
+ 0x1E4,
+ 0x1E5,
+ 0x1E6,
+ 0x1E7,
+ 0x1E8,
+ 0x1E9,
+ 0x1EA,
+ 0x1EB,
+ 0x1EC,
+ 0x1ED,
+ 0x1EE,
+ 0x1EF,
+ 0x1F1,
+ 0x1F2,
+ 0x1F4,
+ 0x1F5,
+ 0x1F6,
+ 0x1F9,
+ 0x1FA,
+ 0x1FB,
+ 0x1FC,
+ 0x1FD,
+ 0x1FE,
+ 0x1FF,
+ 0x200,
+ 0x201,
+ 0x202,
+ 0x203,
+ 0x204,
+ 0x205,
+ 0x206,
+ 0x207,
+ 0x208,
+ 0x209,
+ 0x20A,
+ 0x20B,
+ 0x20C,
+ 0x20D,
+ 0x20E,
+ 0x20F,
+ 0x210,
+ 0x211,
+ 0x212,
+ 0x213,
+ 0x214,
+ 0x215,
+ 0x216,
+ 0x217,
+ 0x218,
+ 0x219,
+ 0x21A,
+ 0x21B,
+ 0x21C,
+ 0x21D,
+ 0x21E,
+ 0x21F,
+ 0x220,
+ 0x221,
+ 0x222,
+ 0x223,
+ 0x224,
+ 0x225,
+ 0x226,
+ 0x227,
+ 0x228,
+ 0x229,
+ 0x22A,
+ 0x22B,
+ 0x22C,
+ 0x22D,
+ 0x22E,
+ 0x22F,
+ 0x230,
+ 0x231,
+ 0x232,
+ 0x233,
+ 0x23A,
+ 0x23C,
+ 0x23D,
+ 0x23F,
+ 0x241,
+ 0x242,
+ 0x243,
+ 0x247,
+ 0x248,
+ 0x249,
+ 0x24A,
+ 0x24B,
+ 0x24C,
+ 0x24D,
+ 0x24E,
+ 0x24F,
+ 0x370,
+ 0x371,
+ 0x372,
+ 0x373,
+ 0x376,
+ 0x377,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x390,
+ 0x391,
+ 0x3A2,
+ 0x3A3,
+ 0x3AC,
+ 0x3CF,
+ 0x3D0,
+ 0x3D2,
+ 0x3D5,
+ 0x3D8,
+ 0x3D9,
+ 0x3DA,
+ 0x3DB,
+ 0x3DC,
+ 0x3DD,
+ 0x3DE,
+ 0x3DF,
+ 0x3E0,
+ 0x3E1,
+ 0x3E2,
+ 0x3E3,
+ 0x3E4,
+ 0x3E5,
+ 0x3E6,
+ 0x3E7,
+ 0x3E8,
+ 0x3E9,
+ 0x3EA,
+ 0x3EB,
+ 0x3EC,
+ 0x3ED,
+ 0x3EE,
+ 0x3EF,
+ 0x3F4,
+ 0x3F5,
+ 0x3F7,
+ 0x3F8,
+ 0x3F9,
+ 0x3FB,
+ 0x3FD,
+ 0x430,
+ 0x460,
+ 0x461,
+ 0x462,
+ 0x463,
+ 0x464,
+ 0x465,
+ 0x466,
+ 0x467,
+ 0x468,
+ 0x469,
+ 0x46A,
+ 0x46B,
+ 0x46C,
+ 0x46D,
+ 0x46E,
+ 0x46F,
+ 0x470,
+ 0x471,
+ 0x472,
+ 0x473,
+ 0x474,
+ 0x475,
+ 0x476,
+ 0x477,
+ 0x478,
+ 0x479,
+ 0x47A,
+ 0x47B,
+ 0x47C,
+ 0x47D,
+ 0x47E,
+ 0x47F,
+ 0x480,
+ 0x481,
+ 0x48A,
+ 0x48B,
+ 0x48C,
+ 0x48D,
+ 0x48E,
+ 0x48F,
+ 0x490,
+ 0x491,
+ 0x492,
+ 0x493,
+ 0x494,
+ 0x495,
+ 0x496,
+ 0x497,
+ 0x498,
+ 0x499,
+ 0x49A,
+ 0x49B,
+ 0x49C,
+ 0x49D,
+ 0x49E,
+ 0x49F,
+ 0x4A0,
+ 0x4A1,
+ 0x4A2,
+ 0x4A3,
+ 0x4A4,
+ 0x4A5,
+ 0x4A6,
+ 0x4A7,
+ 0x4A8,
+ 0x4A9,
+ 0x4AA,
+ 0x4AB,
+ 0x4AC,
+ 0x4AD,
+ 0x4AE,
+ 0x4AF,
+ 0x4B0,
+ 0x4B1,
+ 0x4B2,
+ 0x4B3,
+ 0x4B4,
+ 0x4B5,
+ 0x4B6,
+ 0x4B7,
+ 0x4B8,
+ 0x4B9,
+ 0x4BA,
+ 0x4BB,
+ 0x4BC,
+ 0x4BD,
+ 0x4BE,
+ 0x4BF,
+ 0x4C0,
+ 0x4C2,
+ 0x4C3,
+ 0x4C4,
+ 0x4C5,
+ 0x4C6,
+ 0x4C7,
+ 0x4C8,
+ 0x4C9,
+ 0x4CA,
+ 0x4CB,
+ 0x4CC,
+ 0x4CD,
+ 0x4CE,
+ 0x4D0,
+ 0x4D1,
+ 0x4D2,
+ 0x4D3,
+ 0x4D4,
+ 0x4D5,
+ 0x4D6,
+ 0x4D7,
+ 0x4D8,
+ 0x4D9,
+ 0x4DA,
+ 0x4DB,
+ 0x4DC,
+ 0x4DD,
+ 0x4DE,
+ 0x4DF,
+ 0x4E0,
+ 0x4E1,
+ 0x4E2,
+ 0x4E3,
+ 0x4E4,
+ 0x4E5,
+ 0x4E6,
+ 0x4E7,
+ 0x4E8,
+ 0x4E9,
+ 0x4EA,
+ 0x4EB,
+ 0x4EC,
+ 0x4ED,
+ 0x4EE,
+ 0x4EF,
+ 0x4F0,
+ 0x4F1,
+ 0x4F2,
+ 0x4F3,
+ 0x4F4,
+ 0x4F5,
+ 0x4F6,
+ 0x4F7,
+ 0x4F8,
+ 0x4F9,
+ 0x4FA,
+ 0x4FB,
+ 0x4FC,
+ 0x4FD,
+ 0x4FE,
+ 0x4FF,
+ 0x500,
+ 0x501,
+ 0x502,
+ 0x503,
+ 0x504,
+ 0x505,
+ 0x506,
+ 0x507,
+ 0x508,
+ 0x509,
+ 0x50A,
+ 0x50B,
+ 0x50C,
+ 0x50D,
+ 0x50E,
+ 0x50F,
+ 0x510,
+ 0x511,
+ 0x512,
+ 0x513,
+ 0x514,
+ 0x515,
+ 0x516,
+ 0x517,
+ 0x518,
+ 0x519,
+ 0x51A,
+ 0x51B,
+ 0x51C,
+ 0x51D,
+ 0x51E,
+ 0x51F,
+ 0x520,
+ 0x521,
+ 0x522,
+ 0x523,
+ 0x524,
+ 0x525,
+ 0x526,
+ 0x527,
+ 0x528,
+ 0x529,
+ 0x52A,
+ 0x52B,
+ 0x52C,
+ 0x52D,
+ 0x52E,
+ 0x52F,
+ 0x531,
+ 0x557,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x1E00,
+ 0x1E01,
+ 0x1E02,
+ 0x1E03,
+ 0x1E04,
+ 0x1E05,
+ 0x1E06,
+ 0x1E07,
+ 0x1E08,
+ 0x1E09,
+ 0x1E0A,
+ 0x1E0B,
+ 0x1E0C,
+ 0x1E0D,
+ 0x1E0E,
+ 0x1E0F,
+ 0x1E10,
+ 0x1E11,
+ 0x1E12,
+ 0x1E13,
+ 0x1E14,
+ 0x1E15,
+ 0x1E16,
+ 0x1E17,
+ 0x1E18,
+ 0x1E19,
+ 0x1E1A,
+ 0x1E1B,
+ 0x1E1C,
+ 0x1E1D,
+ 0x1E1E,
+ 0x1E1F,
+ 0x1E20,
+ 0x1E21,
+ 0x1E22,
+ 0x1E23,
+ 0x1E24,
+ 0x1E25,
+ 0x1E26,
+ 0x1E27,
+ 0x1E28,
+ 0x1E29,
+ 0x1E2A,
+ 0x1E2B,
+ 0x1E2C,
+ 0x1E2D,
+ 0x1E2E,
+ 0x1E2F,
+ 0x1E30,
+ 0x1E31,
+ 0x1E32,
+ 0x1E33,
+ 0x1E34,
+ 0x1E35,
+ 0x1E36,
+ 0x1E37,
+ 0x1E38,
+ 0x1E39,
+ 0x1E3A,
+ 0x1E3B,
+ 0x1E3C,
+ 0x1E3D,
+ 0x1E3E,
+ 0x1E3F,
+ 0x1E40,
+ 0x1E41,
+ 0x1E42,
+ 0x1E43,
+ 0x1E44,
+ 0x1E45,
+ 0x1E46,
+ 0x1E47,
+ 0x1E48,
+ 0x1E49,
+ 0x1E4A,
+ 0x1E4B,
+ 0x1E4C,
+ 0x1E4D,
+ 0x1E4E,
+ 0x1E4F,
+ 0x1E50,
+ 0x1E51,
+ 0x1E52,
+ 0x1E53,
+ 0x1E54,
+ 0x1E55,
+ 0x1E56,
+ 0x1E57,
+ 0x1E58,
+ 0x1E59,
+ 0x1E5A,
+ 0x1E5B,
+ 0x1E5C,
+ 0x1E5D,
+ 0x1E5E,
+ 0x1E5F,
+ 0x1E60,
+ 0x1E61,
+ 0x1E62,
+ 0x1E63,
+ 0x1E64,
+ 0x1E65,
+ 0x1E66,
+ 0x1E67,
+ 0x1E68,
+ 0x1E69,
+ 0x1E6A,
+ 0x1E6B,
+ 0x1E6C,
+ 0x1E6D,
+ 0x1E6E,
+ 0x1E6F,
+ 0x1E70,
+ 0x1E71,
+ 0x1E72,
+ 0x1E73,
+ 0x1E74,
+ 0x1E75,
+ 0x1E76,
+ 0x1E77,
+ 0x1E78,
+ 0x1E79,
+ 0x1E7A,
+ 0x1E7B,
+ 0x1E7C,
+ 0x1E7D,
+ 0x1E7E,
+ 0x1E7F,
+ 0x1E80,
+ 0x1E81,
+ 0x1E82,
+ 0x1E83,
+ 0x1E84,
+ 0x1E85,
+ 0x1E86,
+ 0x1E87,
+ 0x1E88,
+ 0x1E89,
+ 0x1E8A,
+ 0x1E8B,
+ 0x1E8C,
+ 0x1E8D,
+ 0x1E8E,
+ 0x1E8F,
+ 0x1E90,
+ 0x1E91,
+ 0x1E92,
+ 0x1E93,
+ 0x1E94,
+ 0x1E95,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1EA1,
+ 0x1EA2,
+ 0x1EA3,
+ 0x1EA4,
+ 0x1EA5,
+ 0x1EA6,
+ 0x1EA7,
+ 0x1EA8,
+ 0x1EA9,
+ 0x1EAA,
+ 0x1EAB,
+ 0x1EAC,
+ 0x1EAD,
+ 0x1EAE,
+ 0x1EAF,
+ 0x1EB0,
+ 0x1EB1,
+ 0x1EB2,
+ 0x1EB3,
+ 0x1EB4,
+ 0x1EB5,
+ 0x1EB6,
+ 0x1EB7,
+ 0x1EB8,
+ 0x1EB9,
+ 0x1EBA,
+ 0x1EBB,
+ 0x1EBC,
+ 0x1EBD,
+ 0x1EBE,
+ 0x1EBF,
+ 0x1EC0,
+ 0x1EC1,
+ 0x1EC2,
+ 0x1EC3,
+ 0x1EC4,
+ 0x1EC5,
+ 0x1EC6,
+ 0x1EC7,
+ 0x1EC8,
+ 0x1EC9,
+ 0x1ECA,
+ 0x1ECB,
+ 0x1ECC,
+ 0x1ECD,
+ 0x1ECE,
+ 0x1ECF,
+ 0x1ED0,
+ 0x1ED1,
+ 0x1ED2,
+ 0x1ED3,
+ 0x1ED4,
+ 0x1ED5,
+ 0x1ED6,
+ 0x1ED7,
+ 0x1ED8,
+ 0x1ED9,
+ 0x1EDA,
+ 0x1EDB,
+ 0x1EDC,
+ 0x1EDD,
+ 0x1EDE,
+ 0x1EDF,
+ 0x1EE0,
+ 0x1EE1,
+ 0x1EE2,
+ 0x1EE3,
+ 0x1EE4,
+ 0x1EE5,
+ 0x1EE6,
+ 0x1EE7,
+ 0x1EE8,
+ 0x1EE9,
+ 0x1EEA,
+ 0x1EEB,
+ 0x1EEC,
+ 0x1EED,
+ 0x1EEE,
+ 0x1EEF,
+ 0x1EF0,
+ 0x1EF1,
+ 0x1EF2,
+ 0x1EF3,
+ 0x1EF4,
+ 0x1EF5,
+ 0x1EF6,
+ 0x1EF7,
+ 0x1EF8,
+ 0x1EF9,
+ 0x1EFA,
+ 0x1EFB,
+ 0x1EFC,
+ 0x1EFD,
+ 0x1EFE,
+ 0x1EFF,
+ 0x1F08,
+ 0x1F10,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F28,
+ 0x1F30,
+ 0x1F38,
+ 0x1F40,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1FB8,
+ 0x1FBC,
+ 0x1FC8,
+ 0x1FCC,
+ 0x1FD8,
+ 0x1FDC,
+ 0x1FE8,
+ 0x1FED,
+ 0x1FF8,
+ 0x1FFC,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210B,
+ 0x210E,
+ 0x2110,
+ 0x2113,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x2130,
+ 0x2134,
+ 0x213E,
+ 0x2140,
+ 0x2145,
+ 0x2146,
+ 0x2160,
+ 0x2170,
+ 0x2183,
+ 0x2184,
+ 0x24B6,
+ 0x24D0,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C60,
+ 0x2C61,
+ 0x2C62,
+ 0x2C65,
+ 0x2C67,
+ 0x2C68,
+ 0x2C69,
+ 0x2C6A,
+ 0x2C6B,
+ 0x2C6C,
+ 0x2C6D,
+ 0x2C71,
+ 0x2C72,
+ 0x2C73,
+ 0x2C75,
+ 0x2C76,
+ 0x2C7E,
+ 0x2C81,
+ 0x2C82,
+ 0x2C83,
+ 0x2C84,
+ 0x2C85,
+ 0x2C86,
+ 0x2C87,
+ 0x2C88,
+ 0x2C89,
+ 0x2C8A,
+ 0x2C8B,
+ 0x2C8C,
+ 0x2C8D,
+ 0x2C8E,
+ 0x2C8F,
+ 0x2C90,
+ 0x2C91,
+ 0x2C92,
+ 0x2C93,
+ 0x2C94,
+ 0x2C95,
+ 0x2C96,
+ 0x2C97,
+ 0x2C98,
+ 0x2C99,
+ 0x2C9A,
+ 0x2C9B,
+ 0x2C9C,
+ 0x2C9D,
+ 0x2C9E,
+ 0x2C9F,
+ 0x2CA0,
+ 0x2CA1,
+ 0x2CA2,
+ 0x2CA3,
+ 0x2CA4,
+ 0x2CA5,
+ 0x2CA6,
+ 0x2CA7,
+ 0x2CA8,
+ 0x2CA9,
+ 0x2CAA,
+ 0x2CAB,
+ 0x2CAC,
+ 0x2CAD,
+ 0x2CAE,
+ 0x2CAF,
+ 0x2CB0,
+ 0x2CB1,
+ 0x2CB2,
+ 0x2CB3,
+ 0x2CB4,
+ 0x2CB5,
+ 0x2CB6,
+ 0x2CB7,
+ 0x2CB8,
+ 0x2CB9,
+ 0x2CBA,
+ 0x2CBB,
+ 0x2CBC,
+ 0x2CBD,
+ 0x2CBE,
+ 0x2CBF,
+ 0x2CC0,
+ 0x2CC1,
+ 0x2CC2,
+ 0x2CC3,
+ 0x2CC4,
+ 0x2CC5,
+ 0x2CC6,
+ 0x2CC7,
+ 0x2CC8,
+ 0x2CC9,
+ 0x2CCA,
+ 0x2CCB,
+ 0x2CCC,
+ 0x2CCD,
+ 0x2CCE,
+ 0x2CCF,
+ 0x2CD0,
+ 0x2CD1,
+ 0x2CD2,
+ 0x2CD3,
+ 0x2CD4,
+ 0x2CD5,
+ 0x2CD6,
+ 0x2CD7,
+ 0x2CD8,
+ 0x2CD9,
+ 0x2CDA,
+ 0x2CDB,
+ 0x2CDC,
+ 0x2CDD,
+ 0x2CDE,
+ 0x2CDF,
+ 0x2CE0,
+ 0x2CE1,
+ 0x2CE2,
+ 0x2CE3,
+ 0x2CEB,
+ 0x2CEC,
+ 0x2CED,
+ 0x2CEE,
+ 0x2CF2,
+ 0x2CF3,
+ 0xA640,
+ 0xA641,
+ 0xA642,
+ 0xA643,
+ 0xA644,
+ 0xA645,
+ 0xA646,
+ 0xA647,
+ 0xA648,
+ 0xA649,
+ 0xA64A,
+ 0xA64B,
+ 0xA64C,
+ 0xA64D,
+ 0xA64E,
+ 0xA64F,
+ 0xA650,
+ 0xA651,
+ 0xA652,
+ 0xA653,
+ 0xA654,
+ 0xA655,
+ 0xA656,
+ 0xA657,
+ 0xA658,
+ 0xA659,
+ 0xA65A,
+ 0xA65B,
+ 0xA65C,
+ 0xA65D,
+ 0xA65E,
+ 0xA65F,
+ 0xA660,
+ 0xA661,
+ 0xA662,
+ 0xA663,
+ 0xA664,
+ 0xA665,
+ 0xA666,
+ 0xA667,
+ 0xA668,
+ 0xA669,
+ 0xA66A,
+ 0xA66B,
+ 0xA66C,
+ 0xA66D,
+ 0xA680,
+ 0xA681,
+ 0xA682,
+ 0xA683,
+ 0xA684,
+ 0xA685,
+ 0xA686,
+ 0xA687,
+ 0xA688,
+ 0xA689,
+ 0xA68A,
+ 0xA68B,
+ 0xA68C,
+ 0xA68D,
+ 0xA68E,
+ 0xA68F,
+ 0xA690,
+ 0xA691,
+ 0xA692,
+ 0xA693,
+ 0xA694,
+ 0xA695,
+ 0xA696,
+ 0xA697,
+ 0xA698,
+ 0xA699,
+ 0xA69A,
+ 0xA69B,
+ 0xA722,
+ 0xA723,
+ 0xA724,
+ 0xA725,
+ 0xA726,
+ 0xA727,
+ 0xA728,
+ 0xA729,
+ 0xA72A,
+ 0xA72B,
+ 0xA72C,
+ 0xA72D,
+ 0xA72E,
+ 0xA72F,
+ 0xA732,
+ 0xA733,
+ 0xA734,
+ 0xA735,
+ 0xA736,
+ 0xA737,
+ 0xA738,
+ 0xA739,
+ 0xA73A,
+ 0xA73B,
+ 0xA73C,
+ 0xA73D,
+ 0xA73E,
+ 0xA73F,
+ 0xA740,
+ 0xA741,
+ 0xA742,
+ 0xA743,
+ 0xA744,
+ 0xA745,
+ 0xA746,
+ 0xA747,
+ 0xA748,
+ 0xA749,
+ 0xA74A,
+ 0xA74B,
+ 0xA74C,
+ 0xA74D,
+ 0xA74E,
+ 0xA74F,
+ 0xA750,
+ 0xA751,
+ 0xA752,
+ 0xA753,
+ 0xA754,
+ 0xA755,
+ 0xA756,
+ 0xA757,
+ 0xA758,
+ 0xA759,
+ 0xA75A,
+ 0xA75B,
+ 0xA75C,
+ 0xA75D,
+ 0xA75E,
+ 0xA75F,
+ 0xA760,
+ 0xA761,
+ 0xA762,
+ 0xA763,
+ 0xA764,
+ 0xA765,
+ 0xA766,
+ 0xA767,
+ 0xA768,
+ 0xA769,
+ 0xA76A,
+ 0xA76B,
+ 0xA76C,
+ 0xA76D,
+ 0xA76E,
+ 0xA76F,
+ 0xA779,
+ 0xA77A,
+ 0xA77B,
+ 0xA77C,
+ 0xA77D,
+ 0xA77F,
+ 0xA780,
+ 0xA781,
+ 0xA782,
+ 0xA783,
+ 0xA784,
+ 0xA785,
+ 0xA786,
+ 0xA787,
+ 0xA78B,
+ 0xA78C,
+ 0xA78D,
+ 0xA78E,
+ 0xA790,
+ 0xA791,
+ 0xA792,
+ 0xA793,
+ 0xA796,
+ 0xA797,
+ 0xA798,
+ 0xA799,
+ 0xA79A,
+ 0xA79B,
+ 0xA79C,
+ 0xA79D,
+ 0xA79E,
+ 0xA79F,
+ 0xA7A0,
+ 0xA7A1,
+ 0xA7A2,
+ 0xA7A3,
+ 0xA7A4,
+ 0xA7A5,
+ 0xA7A6,
+ 0xA7A7,
+ 0xA7A8,
+ 0xA7A9,
+ 0xA7AA,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xFF21,
+ 0xFF3B,
+ 0x10400,
+ 0x10428,
+ 0x118A0,
+ 0x118C0,
+ 0x1D400,
+ 0x1D41A,
+ 0x1D434,
+ 0x1D44E,
+ 0x1D468,
+ 0x1D482,
+ 0x1D49C,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4B6,
+ 0x1D4D0,
+ 0x1D4EA,
+ 0x1D504,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D538,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D56C,
+ 0x1D586,
+ 0x1D5A0,
+ 0x1D5BA,
+ 0x1D5D4,
+ 0x1D5EE,
+ 0x1D608,
+ 0x1D622,
+ 0x1D63C,
+ 0x1D656,
+ 0x1D670,
+ 0x1D68A,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6E2,
+ 0x1D6FB,
+ 0x1D71C,
+ 0x1D735,
+ 0x1D756,
+ 0x1D76F,
+ 0x1D790,
+ 0x1D7A9,
+ 0x1D7CA,
+ 0x1D7CB,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A
+};
+
+static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
+ 1261, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x30,
+ 0x3A,
+ 0x41,
+ 0x5B,
+ 0x5F,
+ 0x60,
+ 0x61,
+ 0x7B,
+ 0xAA,
+ 0xAB,
+ 0xB5,
+ 0xB6,
+ 0xBA,
+ 0xBB,
+ 0xC0,
+ 0xD7,
+ 0xD8,
+ 0xF7,
+ 0xF8,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x483,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6DF,
+ 0x6E9,
+ 0x6EA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x840,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x1000,
+ 0x104A,
+ 0x1050,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1735,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x180B,
+ 0x180E,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1946,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C38,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C7E,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x200C,
+ 0x200E,
+ 0x203F,
+ 0x2041,
+ 0x2054,
+ 0x2055,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA62C,
+ 0xA640,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F2,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C5,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA92E,
+ 0xA930,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9C1,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE00,
+ 0xFE10,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE33,
+ 0xFE35,
+ 0xFE4D,
+ 0xFE50,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11047,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x110BB,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C5,
+ 0x111D0,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11238,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x11600,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0100,
+ 0xE01F0
+};
+
+static const UV XPosixXDigit_invlist[] = { /* for ASCII/Latin1 */
+ 13, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 9,
- 10,
- 32,
- 33,
- 160,
- 161,
- 5760,
- 5761,
- 8192,
- 8203,
- 8239,
- 8240,
- 8287,
- 8288,
- 12288,
- 12289
+ 0x0,
+ 0x30,
+ 0x3A,
+ 0x41,
+ 0x47,
+ 0x61,
+ 0x67,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF27,
+ 0xFF41,
+ 0xFF47
};
-#endif
+#endif /* defined(PERL_IN_PERL_C) */
+
+#endif /* ASCII/Latin1 */
+
+#if 'A' == 193 /* EBCDIC 1047 */ \
+ && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
+ && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 121
-#ifndef PERL_IN_XSUB_RE
+#if defined(PERL_IN_PERL_C)
-static const UV XPosixCntrl_invlist[] = {
+static const UV ASCII_invlist[] = { /* for EBCDIC 1047 */
+ 54, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x4,
+ 0x5,
+ 0x6,
+ 0x7,
+ 0x8,
+ 0xB,
+ 0x14,
+ 0x15,
+ 0x17,
+ 0x18,
+ 0x1A,
+ 0x1C,
+ 0x20,
+ 0x26,
+ 0x28,
+ 0x2D,
+ 0x30,
+ 0x32,
+ 0x33,
+ 0x37,
+ 0x38,
+ 0x3C,
+ 0x3E,
+ 0x3F,
+ 0x41,
+ 0x4B,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6B,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x81,
+ 0x8A,
+ 0x91,
+ 0x9A,
+ 0xA1,
+ 0xAA,
+ 0xAD,
+ 0xAE,
+ 0xBD,
+ 0xBE,
+ 0xC0,
+ 0xCA,
+ 0xD0,
+ 0xDA,
+ 0xE0,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xF0,
+ 0xFA
+};
+
+static const UV Cased_invlist[] = { /* for EBCDIC 1047 */
+ 281, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xAF,
+ 0xBA,
+ 0xBB,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x1BB,
+ 0x1BC,
+ 0x1C0,
+ 0x1C4,
+ 0x294,
+ 0x295,
+ 0x2B9,
+ 0x2C0,
+ 0x2C2,
+ 0x2E0,
+ 0x2E5,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x374,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x561,
+ 0x588,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x1D00,
+ 0x1DC0,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x2135,
+ 0x2139,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2180,
+ 0x2183,
+ 0x2185,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0xA640,
+ 0xA66E,
+ 0xA680,
+ 0xA69E,
+ 0xA722,
+ 0xA788,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F8,
+ 0xA7FB,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0x10400,
+ 0x10450,
+ 0x118A0,
+ 0x118E0,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A
+};
+
+static const UV Grapheme_Cluster_Break_invlist[] = { /* for EBCDIC 1047 */
+ 1484, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0xD,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x40,
+ 0xCA,
+ 0xCB,
+ 0xFF,
+ 0x100,
+ 0x300,
+ 0x370,
+ 0x483,
+ 0x48A,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x600,
+ 0x606,
+ 0x610,
+ 0x61B,
+ 0x61C,
+ 0x61D,
+ 0x64B,
+ 0x660,
+ 0x670,
+ 0x671,
+ 0x6D6,
+ 0x6DD,
+ 0x6DE,
+ 0x6DF,
+ 0x6E5,
+ 0x6E7,
+ 0x6E9,
+ 0x6EA,
+ 0x6EE,
+ 0x70F,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74B,
+ 0x7A6,
+ 0x7B1,
+ 0x7EB,
+ 0x7F4,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x82E,
+ 0x859,
+ 0x85C,
+ 0x8E4,
+ 0x903,
+ 0x904,
+ 0x93A,
+ 0x93B,
+ 0x93C,
+ 0x93D,
+ 0x93E,
+ 0x941,
+ 0x949,
+ 0x94D,
+ 0x94E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x964,
+ 0x981,
+ 0x982,
+ 0x984,
+ 0x9BC,
+ 0x9BD,
+ 0x9BE,
+ 0x9BF,
+ 0x9C1,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CD,
+ 0x9CE,
+ 0x9D7,
+ 0x9D8,
+ 0x9E2,
+ 0x9E4,
+ 0xA01,
+ 0xA03,
+ 0xA04,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA41,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA70,
+ 0xA72,
+ 0xA75,
+ 0xA76,
+ 0xA81,
+ 0xA83,
+ 0xA84,
+ 0xABC,
+ 0xABD,
+ 0xABE,
+ 0xAC1,
+ 0xAC6,
+ 0xAC7,
+ 0xAC9,
+ 0xACA,
+ 0xACB,
+ 0xACD,
+ 0xACE,
+ 0xAE2,
+ 0xAE4,
+ 0xB01,
+ 0xB02,
+ 0xB04,
+ 0xB3C,
+ 0xB3D,
+ 0xB3E,
+ 0xB40,
+ 0xB41,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4D,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB62,
+ 0xB64,
+ 0xB82,
+ 0xB83,
+ 0xBBE,
+ 0xBBF,
+ 0xBC0,
+ 0xBC1,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCD,
+ 0xBCE,
+ 0xBD7,
+ 0xBD8,
+ 0xC00,
+ 0xC01,
+ 0xC04,
+ 0xC3E,
+ 0xC41,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC62,
+ 0xC64,
+ 0xC81,
+ 0xC82,
+ 0xC84,
+ 0xCBC,
+ 0xCBD,
+ 0xCBE,
+ 0xCBF,
+ 0xCC0,
+ 0xCC2,
+ 0xCC3,
+ 0xCC5,
+ 0xCC6,
+ 0xCC7,
+ 0xCC9,
+ 0xCCA,
+ 0xCCC,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCE2,
+ 0xCE4,
+ 0xD01,
+ 0xD02,
+ 0xD04,
+ 0xD3E,
+ 0xD3F,
+ 0xD41,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4D,
+ 0xD4E,
+ 0xD57,
+ 0xD58,
+ 0xD62,
+ 0xD64,
+ 0xD82,
+ 0xD84,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD0,
+ 0xDD2,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDDF,
+ 0xDE0,
+ 0xDF2,
+ 0xDF4,
+ 0xE31,
+ 0xE32,
+ 0xE33,
+ 0xE34,
+ 0xE3B,
+ 0xE47,
+ 0xE4F,
+ 0xEB1,
+ 0xEB2,
+ 0xEB3,
+ 0xEB4,
+ 0xEBA,
+ 0xEBB,
+ 0xEBD,
+ 0xEC8,
+ 0xECE,
+ 0xF18,
+ 0xF1A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF40,
+ 0xF71,
+ 0xF7F,
+ 0xF80,
+ 0xF85,
+ 0xF86,
+ 0xF88,
+ 0xF8D,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x102D,
+ 0x1031,
+ 0x1032,
+ 0x1038,
+ 0x1039,
+ 0x103B,
+ 0x103D,
+ 0x103F,
+ 0x1056,
+ 0x1058,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x1083,
+ 0x1084,
+ 0x1085,
+ 0x1087,
+ 0x108D,
+ 0x108E,
+ 0x109D,
+ 0x109E,
+ 0x1100,
+ 0x1160,
+ 0x11A8,
+ 0x1200,
+ 0x135D,
+ 0x1360,
+ 0x1712,
+ 0x1715,
+ 0x1732,
+ 0x1735,
+ 0x1752,
+ 0x1754,
+ 0x1772,
+ 0x1774,
+ 0x17B4,
+ 0x17B6,
+ 0x17B7,
+ 0x17BE,
+ 0x17C6,
+ 0x17C7,
+ 0x17C9,
+ 0x17D4,
+ 0x17DD,
+ 0x17DE,
+ 0x180B,
+ 0x180E,
+ 0x180F,
+ 0x18A9,
+ 0x18AA,
+ 0x1920,
+ 0x1923,
+ 0x1927,
+ 0x1929,
+ 0x192C,
+ 0x1930,
+ 0x1932,
+ 0x1933,
+ 0x1939,
+ 0x193C,
+ 0x19B5,
+ 0x19B8,
+ 0x19BA,
+ 0x19BB,
+ 0x1A17,
+ 0x1A19,
+ 0x1A1B,
+ 0x1A1C,
+ 0x1A55,
+ 0x1A56,
+ 0x1A57,
+ 0x1A58,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A61,
+ 0x1A62,
+ 0x1A63,
+ 0x1A65,
+ 0x1A6D,
+ 0x1A73,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A80,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B04,
+ 0x1B05,
+ 0x1B34,
+ 0x1B35,
+ 0x1B36,
+ 0x1B3B,
+ 0x1B3C,
+ 0x1B3D,
+ 0x1B42,
+ 0x1B43,
+ 0x1B45,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1B82,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BA2,
+ 0x1BA6,
+ 0x1BA8,
+ 0x1BAA,
+ 0x1BAB,
+ 0x1BAE,
+ 0x1BE6,
+ 0x1BE7,
+ 0x1BE8,
+ 0x1BEA,
+ 0x1BED,
+ 0x1BEE,
+ 0x1BEF,
+ 0x1BF2,
+ 0x1BF4,
+ 0x1C24,
+ 0x1C2C,
+ 0x1C34,
+ 0x1C36,
+ 0x1C38,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CE1,
+ 0x1CE2,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF4,
+ 0x1CF5,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1DC0,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1E00,
+ 0x200B,
+ 0x200C,
+ 0x200E,
+ 0x2010,
+ 0x2028,
+ 0x202F,
+ 0x2060,
+ 0x2070,
+ 0x20D0,
+ 0x20F1,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2D7F,
+ 0x2D80,
+ 0x2DE0,
+ 0x2E00,
+ 0x302A,
+ 0x3030,
+ 0x3099,
+ 0x309B,
+ 0xA66F,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA69F,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA6F2,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA825,
+ 0xA827,
+ 0xA828,
+ 0xA880,
+ 0xA882,
+ 0xA8B4,
+ 0xA8C4,
+ 0xA8C5,
+ 0xA8E0,
+ 0xA8F2,
+ 0xA926,
+ 0xA92E,
+ 0xA947,
+ 0xA952,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA983,
+ 0xA984,
+ 0xA9B3,
+ 0xA9B4,
+ 0xA9B6,
+ 0xA9BA,
+ 0xA9BC,
+ 0xA9BD,
+ 0xA9C1,
+ 0xA9E5,
+ 0xA9E6,
+ 0xAA29,
+ 0xAA2F,
+ 0xAA31,
+ 0xAA33,
+ 0xAA35,
+ 0xAA37,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA4D,
+ 0xAA4E,
+ 0xAA7C,
+ 0xAA7D,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAEB,
+ 0xAAEC,
+ 0xAAEE,
+ 0xAAF0,
+ 0xAAF5,
+ 0xAAF6,
+ 0xAAF7,
+ 0xABE3,
+ 0xABE5,
+ 0xABE6,
+ 0xABE8,
+ 0xABE9,
+ 0xABEB,
+ 0xABEC,
+ 0xABED,
+ 0xABEE,
+ 0xAC00,
+ 0xAC01,
+ 0xAC1C,
+ 0xAC1D,
+ 0xAC38,
+ 0xAC39,
+ 0xAC54,
+ 0xAC55,
+ 0xAC70,
+ 0xAC71,
+ 0xAC8C,
+ 0xAC8D,
+ 0xACA8,
+ 0xACA9,
+ 0xACC4,
+ 0xACC5,
+ 0xACE0,
+ 0xACE1,
+ 0xACFC,
+ 0xACFD,
+ 0xAD18,
+ 0xAD19,
+ 0xAD34,
+ 0xAD35,
+ 0xAD50,
+ 0xAD51,
+ 0xAD6C,
+ 0xAD6D,
+ 0xAD88,
+ 0xAD89,
+ 0xADA4,
+ 0xADA5,
+ 0xADC0,
+ 0xADC1,
+ 0xADDC,
+ 0xADDD,
+ 0xADF8,
+ 0xADF9,
+ 0xAE14,
+ 0xAE15,
+ 0xAE30,
+ 0xAE31,
+ 0xAE4C,
+ 0xAE4D,
+ 0xAE68,
+ 0xAE69,
+ 0xAE84,
+ 0xAE85,
+ 0xAEA0,
+ 0xAEA1,
+ 0xAEBC,
+ 0xAEBD,
+ 0xAED8,
+ 0xAED9,
+ 0xAEF4,
+ 0xAEF5,
+ 0xAF10,
+ 0xAF11,
+ 0xAF2C,
+ 0xAF2D,
+ 0xAF48,
+ 0xAF49,
+ 0xAF64,
+ 0xAF65,
+ 0xAF80,
+ 0xAF81,
+ 0xAF9C,
+ 0xAF9D,
+ 0xAFB8,
+ 0xAFB9,
+ 0xAFD4,
+ 0xAFD5,
+ 0xAFF0,
+ 0xAFF1,
+ 0xB00C,
+ 0xB00D,
+ 0xB028,
+ 0xB029,
+ 0xB044,
+ 0xB045,
+ 0xB060,
+ 0xB061,
+ 0xB07C,
+ 0xB07D,
+ 0xB098,
+ 0xB099,
+ 0xB0B4,
+ 0xB0B5,
+ 0xB0D0,
+ 0xB0D1,
+ 0xB0EC,
+ 0xB0ED,
+ 0xB108,
+ 0xB109,
+ 0xB124,
+ 0xB125,
+ 0xB140,
+ 0xB141,
+ 0xB15C,
+ 0xB15D,
+ 0xB178,
+ 0xB179,
+ 0xB194,
+ 0xB195,
+ 0xB1B0,
+ 0xB1B1,
+ 0xB1CC,
+ 0xB1CD,
+ 0xB1E8,
+ 0xB1E9,
+ 0xB204,
+ 0xB205,
+ 0xB220,
+ 0xB221,
+ 0xB23C,
+ 0xB23D,
+ 0xB258,
+ 0xB259,
+ 0xB274,
+ 0xB275,
+ 0xB290,
+ 0xB291,
+ 0xB2AC,
+ 0xB2AD,
+ 0xB2C8,
+ 0xB2C9,
+ 0xB2E4,
+ 0xB2E5,
+ 0xB300,
+ 0xB301,
+ 0xB31C,
+ 0xB31D,
+ 0xB338,
+ 0xB339,
+ 0xB354,
+ 0xB355,
+ 0xB370,
+ 0xB371,
+ 0xB38C,
+ 0xB38D,
+ 0xB3A8,
+ 0xB3A9,
+ 0xB3C4,
+ 0xB3C5,
+ 0xB3E0,
+ 0xB3E1,
+ 0xB3FC,
+ 0xB3FD,
+ 0xB418,
+ 0xB419,
+ 0xB434,
+ 0xB435,
+ 0xB450,
+ 0xB451,
+ 0xB46C,
+ 0xB46D,
+ 0xB488,
+ 0xB489,
+ 0xB4A4,
+ 0xB4A5,
+ 0xB4C0,
+ 0xB4C1,
+ 0xB4DC,
+ 0xB4DD,
+ 0xB4F8,
+ 0xB4F9,
+ 0xB514,
+ 0xB515,
+ 0xB530,
+ 0xB531,
+ 0xB54C,
+ 0xB54D,
+ 0xB568,
+ 0xB569,
+ 0xB584,
+ 0xB585,
+ 0xB5A0,
+ 0xB5A1,
+ 0xB5BC,
+ 0xB5BD,
+ 0xB5D8,
+ 0xB5D9,
+ 0xB5F4,
+ 0xB5F5,
+ 0xB610,
+ 0xB611,
+ 0xB62C,
+ 0xB62D,
+ 0xB648,
+ 0xB649,
+ 0xB664,
+ 0xB665,
+ 0xB680,
+ 0xB681,
+ 0xB69C,
+ 0xB69D,
+ 0xB6B8,
+ 0xB6B9,
+ 0xB6D4,
+ 0xB6D5,
+ 0xB6F0,
+ 0xB6F1,
+ 0xB70C,
+ 0xB70D,
+ 0xB728,
+ 0xB729,
+ 0xB744,
+ 0xB745,
+ 0xB760,
+ 0xB761,
+ 0xB77C,
+ 0xB77D,
+ 0xB798,
+ 0xB799,
+ 0xB7B4,
+ 0xB7B5,
+ 0xB7D0,
+ 0xB7D1,
+ 0xB7EC,
+ 0xB7ED,
+ 0xB808,
+ 0xB809,
+ 0xB824,
+ 0xB825,
+ 0xB840,
+ 0xB841,
+ 0xB85C,
+ 0xB85D,
+ 0xB878,
+ 0xB879,
+ 0xB894,
+ 0xB895,
+ 0xB8B0,
+ 0xB8B1,
+ 0xB8CC,
+ 0xB8CD,
+ 0xB8E8,
+ 0xB8E9,
+ 0xB904,
+ 0xB905,
+ 0xB920,
+ 0xB921,
+ 0xB93C,
+ 0xB93D,
+ 0xB958,
+ 0xB959,
+ 0xB974,
+ 0xB975,
+ 0xB990,
+ 0xB991,
+ 0xB9AC,
+ 0xB9AD,
+ 0xB9C8,
+ 0xB9C9,
+ 0xB9E4,
+ 0xB9E5,
+ 0xBA00,
+ 0xBA01,
+ 0xBA1C,
+ 0xBA1D,
+ 0xBA38,
+ 0xBA39,
+ 0xBA54,
+ 0xBA55,
+ 0xBA70,
+ 0xBA71,
+ 0xBA8C,
+ 0xBA8D,
+ 0xBAA8,
+ 0xBAA9,
+ 0xBAC4,
+ 0xBAC5,
+ 0xBAE0,
+ 0xBAE1,
+ 0xBAFC,
+ 0xBAFD,
+ 0xBB18,
+ 0xBB19,
+ 0xBB34,
+ 0xBB35,
+ 0xBB50,
+ 0xBB51,
+ 0xBB6C,
+ 0xBB6D,
+ 0xBB88,
+ 0xBB89,
+ 0xBBA4,
+ 0xBBA5,
+ 0xBBC0,
+ 0xBBC1,
+ 0xBBDC,
+ 0xBBDD,
+ 0xBBF8,
+ 0xBBF9,
+ 0xBC14,
+ 0xBC15,
+ 0xBC30,
+ 0xBC31,
+ 0xBC4C,
+ 0xBC4D,
+ 0xBC68,
+ 0xBC69,
+ 0xBC84,
+ 0xBC85,
+ 0xBCA0,
+ 0xBCA1,
+ 0xBCBC,
+ 0xBCBD,
+ 0xBCD8,
+ 0xBCD9,
+ 0xBCF4,
+ 0xBCF5,
+ 0xBD10,
+ 0xBD11,
+ 0xBD2C,
+ 0xBD2D,
+ 0xBD48,
+ 0xBD49,
+ 0xBD64,
+ 0xBD65,
+ 0xBD80,
+ 0xBD81,
+ 0xBD9C,
+ 0xBD9D,
+ 0xBDB8,
+ 0xBDB9,
+ 0xBDD4,
+ 0xBDD5,
+ 0xBDF0,
+ 0xBDF1,
+ 0xBE0C,
+ 0xBE0D,
+ 0xBE28,
+ 0xBE29,
+ 0xBE44,
+ 0xBE45,
+ 0xBE60,
+ 0xBE61,
+ 0xBE7C,
+ 0xBE7D,
+ 0xBE98,
+ 0xBE99,
+ 0xBEB4,
+ 0xBEB5,
+ 0xBED0,
+ 0xBED1,
+ 0xBEEC,
+ 0xBEED,
+ 0xBF08,
+ 0xBF09,
+ 0xBF24,
+ 0xBF25,
+ 0xBF40,
+ 0xBF41,
+ 0xBF5C,
+ 0xBF5D,
+ 0xBF78,
+ 0xBF79,
+ 0xBF94,
+ 0xBF95,
+ 0xBFB0,
+ 0xBFB1,
+ 0xBFCC,
+ 0xBFCD,
+ 0xBFE8,
+ 0xBFE9,
+ 0xC004,
+ 0xC005,
+ 0xC020,
+ 0xC021,
+ 0xC03C,
+ 0xC03D,
+ 0xC058,
+ 0xC059,
+ 0xC074,
+ 0xC075,
+ 0xC090,
+ 0xC091,
+ 0xC0AC,
+ 0xC0AD,
+ 0xC0C8,
+ 0xC0C9,
+ 0xC0E4,
+ 0xC0E5,
+ 0xC100,
+ 0xC101,
+ 0xC11C,
+ 0xC11D,
+ 0xC138,
+ 0xC139,
+ 0xC154,
+ 0xC155,
+ 0xC170,
+ 0xC171,
+ 0xC18C,
+ 0xC18D,
+ 0xC1A8,
+ 0xC1A9,
+ 0xC1C4,
+ 0xC1C5,
+ 0xC1E0,
+ 0xC1E1,
+ 0xC1FC,
+ 0xC1FD,
+ 0xC218,
+ 0xC219,
+ 0xC234,
+ 0xC235,
+ 0xC250,
+ 0xC251,
+ 0xC26C,
+ 0xC26D,
+ 0xC288,
+ 0xC289,
+ 0xC2A4,
+ 0xC2A5,
+ 0xC2C0,
+ 0xC2C1,
+ 0xC2DC,
+ 0xC2DD,
+ 0xC2F8,
+ 0xC2F9,
+ 0xC314,
+ 0xC315,
+ 0xC330,
+ 0xC331,
+ 0xC34C,
+ 0xC34D,
+ 0xC368,
+ 0xC369,
+ 0xC384,
+ 0xC385,
+ 0xC3A0,
+ 0xC3A1,
+ 0xC3BC,
+ 0xC3BD,
+ 0xC3D8,
+ 0xC3D9,
+ 0xC3F4,
+ 0xC3F5,
+ 0xC410,
+ 0xC411,
+ 0xC42C,
+ 0xC42D,
+ 0xC448,
+ 0xC449,
+ 0xC464,
+ 0xC465,
+ 0xC480,
+ 0xC481,
+ 0xC49C,
+ 0xC49D,
+ 0xC4B8,
+ 0xC4B9,
+ 0xC4D4,
+ 0xC4D5,
+ 0xC4F0,
+ 0xC4F1,
+ 0xC50C,
+ 0xC50D,
+ 0xC528,
+ 0xC529,
+ 0xC544,
+ 0xC545,
+ 0xC560,
+ 0xC561,
+ 0xC57C,
+ 0xC57D,
+ 0xC598,
+ 0xC599,
+ 0xC5B4,
+ 0xC5B5,
+ 0xC5D0,
+ 0xC5D1,
+ 0xC5EC,
+ 0xC5ED,
+ 0xC608,
+ 0xC609,
+ 0xC624,
+ 0xC625,
+ 0xC640,
+ 0xC641,
+ 0xC65C,
+ 0xC65D,
+ 0xC678,
+ 0xC679,
+ 0xC694,
+ 0xC695,
+ 0xC6B0,
+ 0xC6B1,
+ 0xC6CC,
+ 0xC6CD,
+ 0xC6E8,
+ 0xC6E9,
+ 0xC704,
+ 0xC705,
+ 0xC720,
+ 0xC721,
+ 0xC73C,
+ 0xC73D,
+ 0xC758,
+ 0xC759,
+ 0xC774,
+ 0xC775,
+ 0xC790,
+ 0xC791,
+ 0xC7AC,
+ 0xC7AD,
+ 0xC7C8,
+ 0xC7C9,
+ 0xC7E4,
+ 0xC7E5,
+ 0xC800,
+ 0xC801,
+ 0xC81C,
+ 0xC81D,
+ 0xC838,
+ 0xC839,
+ 0xC854,
+ 0xC855,
+ 0xC870,
+ 0xC871,
+ 0xC88C,
+ 0xC88D,
+ 0xC8A8,
+ 0xC8A9,
+ 0xC8C4,
+ 0xC8C5,
+ 0xC8E0,
+ 0xC8E1,
+ 0xC8FC,
+ 0xC8FD,
+ 0xC918,
+ 0xC919,
+ 0xC934,
+ 0xC935,
+ 0xC950,
+ 0xC951,
+ 0xC96C,
+ 0xC96D,
+ 0xC988,
+ 0xC989,
+ 0xC9A4,
+ 0xC9A5,
+ 0xC9C0,
+ 0xC9C1,
+ 0xC9DC,
+ 0xC9DD,
+ 0xC9F8,
+ 0xC9F9,
+ 0xCA14,
+ 0xCA15,
+ 0xCA30,
+ 0xCA31,
+ 0xCA4C,
+ 0xCA4D,
+ 0xCA68,
+ 0xCA69,
+ 0xCA84,
+ 0xCA85,
+ 0xCAA0,
+ 0xCAA1,
+ 0xCABC,
+ 0xCABD,
+ 0xCAD8,
+ 0xCAD9,
+ 0xCAF4,
+ 0xCAF5,
+ 0xCB10,
+ 0xCB11,
+ 0xCB2C,
+ 0xCB2D,
+ 0xCB48,
+ 0xCB49,
+ 0xCB64,
+ 0xCB65,
+ 0xCB80,
+ 0xCB81,
+ 0xCB9C,
+ 0xCB9D,
+ 0xCBB8,
+ 0xCBB9,
+ 0xCBD4,
+ 0xCBD5,
+ 0xCBF0,
+ 0xCBF1,
+ 0xCC0C,
+ 0xCC0D,
+ 0xCC28,
+ 0xCC29,
+ 0xCC44,
+ 0xCC45,
+ 0xCC60,
+ 0xCC61,
+ 0xCC7C,
+ 0xCC7D,
+ 0xCC98,
+ 0xCC99,
+ 0xCCB4,
+ 0xCCB5,
+ 0xCCD0,
+ 0xCCD1,
+ 0xCCEC,
+ 0xCCED,
+ 0xCD08,
+ 0xCD09,
+ 0xCD24,
+ 0xCD25,
+ 0xCD40,
+ 0xCD41,
+ 0xCD5C,
+ 0xCD5D,
+ 0xCD78,
+ 0xCD79,
+ 0xCD94,
+ 0xCD95,
+ 0xCDB0,
+ 0xCDB1,
+ 0xCDCC,
+ 0xCDCD,
+ 0xCDE8,
+ 0xCDE9,
+ 0xCE04,
+ 0xCE05,
+ 0xCE20,
+ 0xCE21,
+ 0xCE3C,
+ 0xCE3D,
+ 0xCE58,
+ 0xCE59,
+ 0xCE74,
+ 0xCE75,
+ 0xCE90,
+ 0xCE91,
+ 0xCEAC,
+ 0xCEAD,
+ 0xCEC8,
+ 0xCEC9,
+ 0xCEE4,
+ 0xCEE5,
+ 0xCF00,
+ 0xCF01,
+ 0xCF1C,
+ 0xCF1D,
+ 0xCF38,
+ 0xCF39,
+ 0xCF54,
+ 0xCF55,
+ 0xCF70,
+ 0xCF71,
+ 0xCF8C,
+ 0xCF8D,
+ 0xCFA8,
+ 0xCFA9,
+ 0xCFC4,
+ 0xCFC5,
+ 0xCFE0,
+ 0xCFE1,
+ 0xCFFC,
+ 0xCFFD,
+ 0xD018,
+ 0xD019,
+ 0xD034,
+ 0xD035,
+ 0xD050,
+ 0xD051,
+ 0xD06C,
+ 0xD06D,
+ 0xD088,
+ 0xD089,
+ 0xD0A4,
+ 0xD0A5,
+ 0xD0C0,
+ 0xD0C1,
+ 0xD0DC,
+ 0xD0DD,
+ 0xD0F8,
+ 0xD0F9,
+ 0xD114,
+ 0xD115,
+ 0xD130,
+ 0xD131,
+ 0xD14C,
+ 0xD14D,
+ 0xD168,
+ 0xD169,
+ 0xD184,
+ 0xD185,
+ 0xD1A0,
+ 0xD1A1,
+ 0xD1BC,
+ 0xD1BD,
+ 0xD1D8,
+ 0xD1D9,
+ 0xD1F4,
+ 0xD1F5,
+ 0xD210,
+ 0xD211,
+ 0xD22C,
+ 0xD22D,
+ 0xD248,
+ 0xD249,
+ 0xD264,
+ 0xD265,
+ 0xD280,
+ 0xD281,
+ 0xD29C,
+ 0xD29D,
+ 0xD2B8,
+ 0xD2B9,
+ 0xD2D4,
+ 0xD2D5,
+ 0xD2F0,
+ 0xD2F1,
+ 0xD30C,
+ 0xD30D,
+ 0xD328,
+ 0xD329,
+ 0xD344,
+ 0xD345,
+ 0xD360,
+ 0xD361,
+ 0xD37C,
+ 0xD37D,
+ 0xD398,
+ 0xD399,
+ 0xD3B4,
+ 0xD3B5,
+ 0xD3D0,
+ 0xD3D1,
+ 0xD3EC,
+ 0xD3ED,
+ 0xD408,
+ 0xD409,
+ 0xD424,
+ 0xD425,
+ 0xD440,
+ 0xD441,
+ 0xD45C,
+ 0xD45D,
+ 0xD478,
+ 0xD479,
+ 0xD494,
+ 0xD495,
+ 0xD4B0,
+ 0xD4B1,
+ 0xD4CC,
+ 0xD4CD,
+ 0xD4E8,
+ 0xD4E9,
+ 0xD504,
+ 0xD505,
+ 0xD520,
+ 0xD521,
+ 0xD53C,
+ 0xD53D,
+ 0xD558,
+ 0xD559,
+ 0xD574,
+ 0xD575,
+ 0xD590,
+ 0xD591,
+ 0xD5AC,
+ 0xD5AD,
+ 0xD5C8,
+ 0xD5C9,
+ 0xD5E4,
+ 0xD5E5,
+ 0xD600,
+ 0xD601,
+ 0xD61C,
+ 0xD61D,
+ 0xD638,
+ 0xD639,
+ 0xD654,
+ 0xD655,
+ 0xD670,
+ 0xD671,
+ 0xD68C,
+ 0xD68D,
+ 0xD6A8,
+ 0xD6A9,
+ 0xD6C4,
+ 0xD6C5,
+ 0xD6E0,
+ 0xD6E1,
+ 0xD6FC,
+ 0xD6FD,
+ 0xD718,
+ 0xD719,
+ 0xD734,
+ 0xD735,
+ 0xD750,
+ 0xD751,
+ 0xD76C,
+ 0xD76D,
+ 0xD788,
+ 0xD789,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xD800,
+ 0xE000,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFE00,
+ 0xFE10,
+ 0xFE20,
+ 0xFE2E,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFF0,
+ 0xFFFC,
+ 0x101FD,
+ 0x101FE,
+ 0x102E0,
+ 0x102E1,
+ 0x10376,
+ 0x1037B,
+ 0x10A01,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A10,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10AE5,
+ 0x10AE7,
+ 0x11000,
+ 0x11001,
+ 0x11002,
+ 0x11003,
+ 0x11038,
+ 0x11047,
+ 0x1107F,
+ 0x11082,
+ 0x11083,
+ 0x110B0,
+ 0x110B3,
+ 0x110B7,
+ 0x110B9,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x11100,
+ 0x11103,
+ 0x11127,
+ 0x1112C,
+ 0x1112D,
+ 0x11135,
+ 0x11173,
+ 0x11174,
+ 0x11180,
+ 0x11182,
+ 0x11183,
+ 0x111B3,
+ 0x111B6,
+ 0x111BF,
+ 0x111C1,
+ 0x1122C,
+ 0x1122F,
+ 0x11232,
+ 0x11234,
+ 0x11235,
+ 0x11236,
+ 0x11238,
+ 0x112DF,
+ 0x112E0,
+ 0x112E3,
+ 0x112EB,
+ 0x11301,
+ 0x11302,
+ 0x11304,
+ 0x1133C,
+ 0x1133D,
+ 0x1133E,
+ 0x1133F,
+ 0x11340,
+ 0x11341,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x11362,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x114B0,
+ 0x114B1,
+ 0x114B3,
+ 0x114B9,
+ 0x114BA,
+ 0x114BB,
+ 0x114BD,
+ 0x114BE,
+ 0x114BF,
+ 0x114C1,
+ 0x114C2,
+ 0x114C4,
+ 0x115AF,
+ 0x115B0,
+ 0x115B2,
+ 0x115B6,
+ 0x115B8,
+ 0x115BC,
+ 0x115BE,
+ 0x115BF,
+ 0x115C1,
+ 0x11630,
+ 0x11633,
+ 0x1163B,
+ 0x1163D,
+ 0x1163E,
+ 0x1163F,
+ 0x11641,
+ 0x116AB,
+ 0x116AC,
+ 0x116AD,
+ 0x116AE,
+ 0x116B0,
+ 0x116B6,
+ 0x116B7,
+ 0x116B8,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B30,
+ 0x16B37,
+ 0x16F51,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16F93,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1BCA0,
+ 0x1BCA4,
+ 0x1D165,
+ 0x1D166,
+ 0x1D167,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D16E,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1F1E6,
+ 0x1F200,
+ 0xE0000,
+ 0xE0100,
+ 0xE01F0,
+ 0xE1000
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define GCB_ENUM_COUNT 14
+
+typedef enum {
+ GCB_Other = 0,
+ GCB_CR = 1,
+ GCB_Control = 2,
+ GCB_EDGE = 3,
+ GCB_Extend = 4,
+ GCB_L = 5,
+ GCB_LF = 6,
+ GCB_LV = 7,
+ GCB_LVT = 8,
+ GCB_Prepend = 9,
+ GCB_Regional_Indicator = 10,
+ GCB_SpacingMark = 11,
+ GCB_T = 12,
+ GCB_V = 13
+} GCB_enum;
+
+static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC 1047 */
+ GCB_Control,
+ GCB_CR,
+ GCB_Control,
+ GCB_LF,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_L,
+ GCB_V,
+ GCB_T,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_L,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_Other,
+ GCB_V,
+ GCB_Other,
+ GCB_T,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Regional_Indicator,
+ GCB_Other,
+ GCB_Control,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 1047 */
+ 45, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x2BC,
+ 0x2BD,
+ 0x308,
+ 0x309,
+ 0x313,
+ 0x314,
+ 0x342,
+ 0x343,
+ 0x3AC,
+ 0x3AD,
+ 0x3AE,
+ 0x3AF,
+ 0x3B1,
+ 0x3B2,
+ 0x3B7,
+ 0x3B8,
+ 0x3B9,
+ 0x3BA,
+ 0x3C1,
+ 0x3C2,
+ 0x3C5,
+ 0x3C6,
+ 0x3C9,
+ 0x3CA,
+ 0x3CE,
+ 0x3CF,
+ 0x565,
+ 0x566,
+ 0x574,
+ 0x575,
+ 0x57E,
+ 0x57F,
+ 0x1F00,
+ 0x1F08,
+ 0x1F20,
+ 0x1F28,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1F71,
+ 0x1F74,
+ 0x1F75,
+ 0x1F7C,
+ 0x1F7D
+};
+
+static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 1047 */
+ 267, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9A,
+ 0x9C,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xAF,
+ 0xBA,
+ 0xBB,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x131,
+ 0x132,
+ 0x138,
+ 0x139,
+ 0x18D,
+ 0x18E,
+ 0x19B,
+ 0x19C,
+ 0x1AA,
+ 0x1AC,
+ 0x1BA,
+ 0x1BC,
+ 0x1BE,
+ 0x1BF,
+ 0x1C0,
+ 0x1C4,
+ 0x221,
+ 0x222,
+ 0x234,
+ 0x23A,
+ 0x255,
+ 0x256,
+ 0x258,
+ 0x259,
+ 0x25A,
+ 0x25B,
+ 0x25D,
+ 0x260,
+ 0x262,
+ 0x263,
+ 0x264,
+ 0x265,
+ 0x267,
+ 0x268,
+ 0x26A,
+ 0x26B,
+ 0x26D,
+ 0x26F,
+ 0x270,
+ 0x271,
+ 0x273,
+ 0x275,
+ 0x276,
+ 0x27D,
+ 0x27E,
+ 0x280,
+ 0x281,
+ 0x283,
+ 0x284,
+ 0x287,
+ 0x28D,
+ 0x292,
+ 0x293,
+ 0x29E,
+ 0x29F,
+ 0x2BC,
+ 0x2BD,
+ 0x2BE,
+ 0x2BF,
+ 0x300,
+ 0x302,
+ 0x307,
+ 0x309,
+ 0x30A,
+ 0x30B,
+ 0x30C,
+ 0x30D,
+ 0x313,
+ 0x314,
+ 0x331,
+ 0x332,
+ 0x342,
+ 0x343,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x374,
+ 0x376,
+ 0x378,
+ 0x37B,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3D2,
+ 0x3D5,
+ 0x3F6,
+ 0x3F7,
+ 0x3FC,
+ 0x3FD,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x561,
+ 0x588,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x1D79,
+ 0x1D7A,
+ 0x1D7D,
+ 0x1D7E,
+ 0x1E00,
+ 0x1E9C,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2126,
+ 0x2127,
+ 0x212A,
+ 0x212C,
+ 0x2132,
+ 0x2133,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2180,
+ 0x2183,
+ 0x2185,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2C71,
+ 0x2C72,
+ 0x2C74,
+ 0x2C75,
+ 0x2C77,
+ 0x2C7E,
+ 0x2CE4,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0xA640,
+ 0xA66E,
+ 0xA680,
+ 0xA69C,
+ 0xA722,
+ 0xA730,
+ 0xA732,
+ 0xA770,
+ 0xA779,
+ 0xA788,
+ 0xA78B,
+ 0xA78E,
+ 0xA790,
+ 0xA794,
+ 0xA796,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0x10400,
+ 0x10450,
+ 0x118A0,
+ 0x118E0
+};
+
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 1047 */
+ 59, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x59,
+ 0x5A,
+ 0x130,
+ 0x131,
+ 0x149,
+ 0x14A,
+ 0x1F0,
+ 0x1F1,
+ 0x390,
+ 0x391,
+ 0x3B0,
+ 0x3B1,
+ 0x587,
+ 0x588,
+ 0x1E96,
+ 0x1E9B,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1F50,
+ 0x1F51,
+ 0x1F52,
+ 0x1F53,
+ 0x1F54,
+ 0x1F55,
+ 0x1F56,
+ 0x1F57,
+ 0x1F80,
+ 0x1FB0,
+ 0x1FB2,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FB8,
+ 0x1FBC,
+ 0x1FBD,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FC8,
+ 0x1FCC,
+ 0x1FCD,
+ 0x1FD2,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FD8,
+ 0x1FE2,
+ 0x1FE5,
+ 0x1FE6,
+ 0x1FE8,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FF8,
+ 0x1FFC,
+ 0x1FFD,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18
+};
+
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_UTF8_C)
+
+static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
+ 1291, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x6D,
+ 0x6E,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xAF,
+ 0xBA,
+ 0xBB,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xFA,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37B,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x483,
+ 0x488,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6DF,
+ 0x6E9,
+ 0x6EA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x840,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x1000,
+ 0x104A,
+ 0x1050,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1735,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x180B,
+ 0x180E,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1946,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AB0,
+ 0x1ABE,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C38,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C7E,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x203F,
+ 0x2041,
+ 0x2054,
+ 0x2055,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20DD,
+ 0x20E1,
+ 0x20E2,
+ 0x20E5,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA62C,
+ 0xA640,
+ 0xA670,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F2,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C5,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA92E,
+ 0xA930,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9C1,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFC5E,
+ 0xFC64,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFA,
+ 0xFE00,
+ 0xFE10,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE33,
+ 0xFE35,
+ 0xFE4D,
+ 0xFE50,
+ 0xFE71,
+ 0xFE72,
+ 0xFE73,
+ 0xFE74,
+ 0xFE77,
+ 0xFE78,
+ 0xFE79,
+ 0xFE7A,
+ 0xFE7B,
+ 0xFE7C,
+ 0xFE7D,
+ 0xFE7E,
+ 0xFE7F,
+ 0xFEFD,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11047,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x110BB,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C5,
+ 0x111D0,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11238,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x11600,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0100,
+ 0xE01F0
+};
+
+static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
+ 1121, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x6D,
+ 0x6E,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xAF,
+ 0xBA,
+ 0xBB,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37B,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x620,
+ 0x64B,
+ 0x66E,
+ 0x670,
+ 0x671,
+ 0x6D4,
+ 0x6D5,
+ 0x6D6,
+ 0x6E5,
+ 0x6E7,
+ 0x6EE,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74D,
+ 0x7A6,
+ 0x7B1,
+ 0x7B2,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x840,
+ 0x859,
+ 0x8A0,
+ 0x8B3,
+ 0x904,
+ 0x93A,
+ 0x93D,
+ 0x93E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x971,
+ 0x981,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BD,
+ 0x9BE,
+ 0x9CE,
+ 0x9CF,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E2,
+ 0x9F0,
+ 0x9F2,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA72,
+ 0xA75,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABD,
+ 0xABE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE2,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3D,
+ 0xB3E,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB62,
+ 0xB71,
+ 0xB72,
+ 0xB83,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBD0,
+ 0xBD1,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC3E,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC62,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBD,
+ 0xCBE,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE2,
+ 0xCF1,
+ 0xCF3,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD3E,
+ 0xD4E,
+ 0xD4F,
+ 0xD60,
+ 0xD62,
+ 0xD7A,
+ 0xD80,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xE01,
+ 0xE31,
+ 0xE32,
+ 0xE33,
+ 0xE40,
+ 0xE47,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEB1,
+ 0xEB2,
+ 0xEB3,
+ 0xEBD,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF88,
+ 0xF8D,
+ 0x1000,
+ 0x102B,
+ 0x103F,
+ 0x1040,
+ 0x1050,
+ 0x1056,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1062,
+ 0x1065,
+ 0x1067,
+ 0x106E,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x108E,
+ 0x108F,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1712,
+ 0x1720,
+ 0x1732,
+ 0x1740,
+ 0x1752,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1780,
+ 0x17B4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18A9,
+ 0x18AA,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1950,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19C1,
+ 0x19C8,
+ 0x1A00,
+ 0x1A17,
+ 0x1A20,
+ 0x1A55,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1B05,
+ 0x1B34,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BAE,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1C00,
+ 0x1C24,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1D00,
+ 0x1DC0,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x302A,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA67F,
+ 0xA69E,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA840,
+ 0xA874,
+ 0xA882,
+ 0xA8B4,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA90A,
+ 0xA926,
+ 0xA930,
+ 0xA947,
+ 0xA960,
+ 0xA97D,
+ 0xA984,
+ 0xA9B3,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA29,
+ 0xAA40,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAEB,
+ 0xAAF2,
+ 0xAAF5,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABE3,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFC5E,
+ 0xFC64,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFA,
+ 0xFE71,
+ 0xFE72,
+ 0xFE73,
+ 0xFE74,
+ 0xFE77,
+ 0xFE78,
+ 0xFE79,
+ 0xFE7A,
+ 0xFE7B,
+ 0xFE7C,
+ 0xFE7D,
+ 0xFE7E,
+ 0xFE7F,
+ 0xFEFD,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x10376,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A01,
+ 0x10A10,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11003,
+ 0x11038,
+ 0x11083,
+ 0x110B0,
+ 0x110D0,
+ 0x110E9,
+ 0x11103,
+ 0x11127,
+ 0x11150,
+ 0x11173,
+ 0x11176,
+ 0x11177,
+ 0x11183,
+ 0x111B3,
+ 0x111C1,
+ 0x111C5,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1122C,
+ 0x112B0,
+ 0x112DF,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133D,
+ 0x1133E,
+ 0x1135D,
+ 0x11362,
+ 0x11480,
+ 0x114B0,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x11580,
+ 0x115AF,
+ 0x11600,
+ 0x11630,
+ 0x11644,
+ 0x11645,
+ 0x11680,
+ 0x116AB,
+ 0x118A0,
+ 0x118E0,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16B00,
+ 0x16B30,
+ 0x16B40,
+ 0x16B44,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F51,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E
+};
+
+#endif /* defined(PERL_IN_UTF8_C) */
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV Sentence_Break_invlist[] = { /* for EBCDIC 1047 */
+ 2859, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x5,
+ 0x6,
+ 0xB,
+ 0xD,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x40,
+ 0x42,
+ 0x4A,
+ 0x4B,
+ 0x4C,
+ 0x4D,
+ 0x4E,
+ 0x51,
+ 0x5A,
+ 0x5B,
+ 0x5D,
+ 0x5E,
+ 0x60,
+ 0x61,
+ 0x62,
+ 0x6A,
+ 0x6B,
+ 0x6C,
+ 0x6F,
+ 0x70,
+ 0x71,
+ 0x79,
+ 0x7A,
+ 0x7B,
+ 0x7D,
+ 0x7E,
+ 0x7F,
+ 0x80,
+ 0x81,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xAF,
+ 0xBA,
+ 0xBB,
+ 0xBD,
+ 0xBE,
+ 0xC0,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFA,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x101,
+ 0x102,
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x106,
+ 0x107,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x10E,
+ 0x10F,
+ 0x110,
+ 0x111,
+ 0x112,
+ 0x113,
+ 0x114,
+ 0x115,
+ 0x116,
+ 0x117,
+ 0x118,
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x11C,
+ 0x11D,
+ 0x11E,
+ 0x11F,
+ 0x120,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x124,
+ 0x125,
+ 0x126,
+ 0x127,
+ 0x128,
+ 0x129,
+ 0x12A,
+ 0x12B,
+ 0x12C,
+ 0x12D,
+ 0x12E,
+ 0x12F,
+ 0x130,
+ 0x131,
+ 0x132,
+ 0x133,
+ 0x134,
+ 0x135,
+ 0x136,
+ 0x137,
+ 0x139,
+ 0x13A,
+ 0x13B,
+ 0x13C,
+ 0x13D,
+ 0x13E,
+ 0x13F,
+ 0x140,
+ 0x141,
+ 0x142,
+ 0x143,
+ 0x144,
+ 0x145,
+ 0x146,
+ 0x147,
+ 0x148,
+ 0x14A,
+ 0x14B,
+ 0x14C,
+ 0x14D,
+ 0x14E,
+ 0x14F,
+ 0x150,
+ 0x151,
+ 0x152,
+ 0x153,
+ 0x154,
+ 0x155,
+ 0x156,
+ 0x157,
+ 0x158,
+ 0x159,
+ 0x15A,
+ 0x15B,
+ 0x15C,
+ 0x15D,
+ 0x15E,
+ 0x15F,
+ 0x160,
+ 0x161,
+ 0x162,
+ 0x163,
+ 0x164,
+ 0x165,
+ 0x166,
+ 0x167,
+ 0x168,
+ 0x169,
+ 0x16A,
+ 0x16B,
+ 0x16C,
+ 0x16D,
+ 0x16E,
+ 0x16F,
+ 0x170,
+ 0x171,
+ 0x172,
+ 0x173,
+ 0x174,
+ 0x175,
+ 0x176,
+ 0x177,
+ 0x178,
+ 0x17A,
+ 0x17B,
+ 0x17C,
+ 0x17D,
+ 0x17E,
+ 0x181,
+ 0x183,
+ 0x184,
+ 0x185,
+ 0x186,
+ 0x188,
+ 0x189,
+ 0x18C,
+ 0x18E,
+ 0x192,
+ 0x193,
+ 0x195,
+ 0x196,
+ 0x199,
+ 0x19C,
+ 0x19E,
+ 0x19F,
+ 0x1A1,
+ 0x1A2,
+ 0x1A3,
+ 0x1A4,
+ 0x1A5,
+ 0x1A6,
+ 0x1A8,
+ 0x1A9,
+ 0x1AA,
+ 0x1AC,
+ 0x1AD,
+ 0x1AE,
+ 0x1B0,
+ 0x1B1,
+ 0x1B4,
+ 0x1B5,
+ 0x1B6,
+ 0x1B7,
+ 0x1B9,
+ 0x1BB,
+ 0x1BC,
+ 0x1BD,
+ 0x1C0,
+ 0x1C4,
+ 0x1C6,
+ 0x1C7,
+ 0x1C9,
+ 0x1CA,
+ 0x1CC,
+ 0x1CD,
+ 0x1CE,
+ 0x1CF,
+ 0x1D0,
+ 0x1D1,
+ 0x1D2,
+ 0x1D3,
+ 0x1D4,
+ 0x1D5,
+ 0x1D6,
+ 0x1D7,
+ 0x1D8,
+ 0x1D9,
+ 0x1DA,
+ 0x1DB,
+ 0x1DC,
+ 0x1DE,
+ 0x1DF,
+ 0x1E0,
+ 0x1E1,
+ 0x1E2,
+ 0x1E3,
+ 0x1E4,
+ 0x1E5,
+ 0x1E6,
+ 0x1E7,
+ 0x1E8,
+ 0x1E9,
+ 0x1EA,
+ 0x1EB,
+ 0x1EC,
+ 0x1ED,
+ 0x1EE,
+ 0x1EF,
+ 0x1F1,
+ 0x1F3,
+ 0x1F4,
+ 0x1F5,
+ 0x1F6,
+ 0x1F9,
+ 0x1FA,
+ 0x1FB,
+ 0x1FC,
+ 0x1FD,
+ 0x1FE,
+ 0x1FF,
+ 0x200,
+ 0x201,
+ 0x202,
+ 0x203,
+ 0x204,
+ 0x205,
+ 0x206,
+ 0x207,
+ 0x208,
+ 0x209,
+ 0x20A,
+ 0x20B,
+ 0x20C,
+ 0x20D,
+ 0x20E,
+ 0x20F,
+ 0x210,
+ 0x211,
+ 0x212,
+ 0x213,
+ 0x214,
+ 0x215,
+ 0x216,
+ 0x217,
+ 0x218,
+ 0x219,
+ 0x21A,
+ 0x21B,
+ 0x21C,
+ 0x21D,
+ 0x21E,
+ 0x21F,
+ 0x220,
+ 0x221,
+ 0x222,
+ 0x223,
+ 0x224,
+ 0x225,
+ 0x226,
+ 0x227,
+ 0x228,
+ 0x229,
+ 0x22A,
+ 0x22B,
+ 0x22C,
+ 0x22D,
+ 0x22E,
+ 0x22F,
+ 0x230,
+ 0x231,
+ 0x232,
+ 0x233,
+ 0x23A,
+ 0x23C,
+ 0x23D,
+ 0x23F,
+ 0x241,
+ 0x242,
+ 0x243,
+ 0x247,
+ 0x248,
+ 0x249,
+ 0x24A,
+ 0x24B,
+ 0x24C,
+ 0x24D,
+ 0x24E,
+ 0x24F,
+ 0x294,
+ 0x295,
+ 0x2B9,
+ 0x2C0,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x370,
+ 0x371,
+ 0x372,
+ 0x373,
+ 0x374,
+ 0x375,
+ 0x376,
+ 0x377,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x390,
+ 0x391,
+ 0x3A2,
+ 0x3A3,
+ 0x3AC,
+ 0x3CF,
+ 0x3D0,
+ 0x3D2,
+ 0x3D5,
+ 0x3D8,
+ 0x3D9,
+ 0x3DA,
+ 0x3DB,
+ 0x3DC,
+ 0x3DD,
+ 0x3DE,
+ 0x3DF,
+ 0x3E0,
+ 0x3E1,
+ 0x3E2,
+ 0x3E3,
+ 0x3E4,
+ 0x3E5,
+ 0x3E6,
+ 0x3E7,
+ 0x3E8,
+ 0x3E9,
+ 0x3EA,
+ 0x3EB,
+ 0x3EC,
+ 0x3ED,
+ 0x3EE,
+ 0x3EF,
+ 0x3F4,
+ 0x3F5,
+ 0x3F6,
+ 0x3F7,
+ 0x3F8,
+ 0x3F9,
+ 0x3FB,
+ 0x3FD,
+ 0x430,
+ 0x460,
+ 0x461,
+ 0x462,
+ 0x463,
+ 0x464,
+ 0x465,
+ 0x466,
+ 0x467,
+ 0x468,
+ 0x469,
+ 0x46A,
+ 0x46B,
+ 0x46C,
+ 0x46D,
+ 0x46E,
+ 0x46F,
+ 0x470,
+ 0x471,
+ 0x472,
+ 0x473,
+ 0x474,
+ 0x475,
+ 0x476,
+ 0x477,
+ 0x478,
+ 0x479,
+ 0x47A,
+ 0x47B,
+ 0x47C,
+ 0x47D,
+ 0x47E,
+ 0x47F,
+ 0x480,
+ 0x481,
+ 0x482,
+ 0x483,
+ 0x48A,
+ 0x48B,
+ 0x48C,
+ 0x48D,
+ 0x48E,
+ 0x48F,
+ 0x490,
+ 0x491,
+ 0x492,
+ 0x493,
+ 0x494,
+ 0x495,
+ 0x496,
+ 0x497,
+ 0x498,
+ 0x499,
+ 0x49A,
+ 0x49B,
+ 0x49C,
+ 0x49D,
+ 0x49E,
+ 0x49F,
+ 0x4A0,
+ 0x4A1,
+ 0x4A2,
+ 0x4A3,
+ 0x4A4,
+ 0x4A5,
+ 0x4A6,
+ 0x4A7,
+ 0x4A8,
+ 0x4A9,
+ 0x4AA,
+ 0x4AB,
+ 0x4AC,
+ 0x4AD,
+ 0x4AE,
+ 0x4AF,
+ 0x4B0,
+ 0x4B1,
+ 0x4B2,
+ 0x4B3,
+ 0x4B4,
+ 0x4B5,
+ 0x4B6,
+ 0x4B7,
+ 0x4B8,
+ 0x4B9,
+ 0x4BA,
+ 0x4BB,
+ 0x4BC,
+ 0x4BD,
+ 0x4BE,
+ 0x4BF,
+ 0x4C0,
+ 0x4C2,
+ 0x4C3,
+ 0x4C4,
+ 0x4C5,
+ 0x4C6,
+ 0x4C7,
+ 0x4C8,
+ 0x4C9,
+ 0x4CA,
+ 0x4CB,
+ 0x4CC,
+ 0x4CD,
+ 0x4CE,
+ 0x4D0,
+ 0x4D1,
+ 0x4D2,
+ 0x4D3,
+ 0x4D4,
+ 0x4D5,
+ 0x4D6,
+ 0x4D7,
+ 0x4D8,
+ 0x4D9,
+ 0x4DA,
+ 0x4DB,
+ 0x4DC,
+ 0x4DD,
+ 0x4DE,
+ 0x4DF,
+ 0x4E0,
+ 0x4E1,
+ 0x4E2,
+ 0x4E3,
+ 0x4E4,
+ 0x4E5,
+ 0x4E6,
+ 0x4E7,
+ 0x4E8,
+ 0x4E9,
+ 0x4EA,
+ 0x4EB,
+ 0x4EC,
+ 0x4ED,
+ 0x4EE,
+ 0x4EF,
+ 0x4F0,
+ 0x4F1,
+ 0x4F2,
+ 0x4F3,
+ 0x4F4,
+ 0x4F5,
+ 0x4F6,
+ 0x4F7,
+ 0x4F8,
+ 0x4F9,
+ 0x4FA,
+ 0x4FB,
+ 0x4FC,
+ 0x4FD,
+ 0x4FE,
+ 0x4FF,
+ 0x500,
+ 0x501,
+ 0x502,
+ 0x503,
+ 0x504,
+ 0x505,
+ 0x506,
+ 0x507,
+ 0x508,
+ 0x509,
+ 0x50A,
+ 0x50B,
+ 0x50C,
+ 0x50D,
+ 0x50E,
+ 0x50F,
+ 0x510,
+ 0x511,
+ 0x512,
+ 0x513,
+ 0x514,
+ 0x515,
+ 0x516,
+ 0x517,
+ 0x518,
+ 0x519,
+ 0x51A,
+ 0x51B,
+ 0x51C,
+ 0x51D,
+ 0x51E,
+ 0x51F,
+ 0x520,
+ 0x521,
+ 0x522,
+ 0x523,
+ 0x524,
+ 0x525,
+ 0x526,
+ 0x527,
+ 0x528,
+ 0x529,
+ 0x52A,
+ 0x52B,
+ 0x52C,
+ 0x52D,
+ 0x52E,
+ 0x52F,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x55D,
+ 0x55E,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58A,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F4,
+ 0x600,
+ 0x606,
+ 0x60C,
+ 0x60E,
+ 0x610,
+ 0x61B,
+ 0x61C,
+ 0x61D,
+ 0x61F,
+ 0x620,
+ 0x64B,
+ 0x660,
+ 0x66A,
+ 0x66B,
+ 0x66D,
+ 0x66E,
+ 0x670,
+ 0x671,
+ 0x6D4,
+ 0x6D5,
+ 0x6D6,
+ 0x6DD,
+ 0x6DE,
+ 0x6DF,
+ 0x6E5,
+ 0x6E7,
+ 0x6E9,
+ 0x6EA,
+ 0x6EE,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x703,
+ 0x70F,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74B,
+ 0x74D,
+ 0x7A6,
+ 0x7B1,
+ 0x7B2,
+ 0x7C0,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7F8,
+ 0x7F9,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x82E,
+ 0x840,
+ 0x859,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x904,
+ 0x93A,
+ 0x93D,
+ 0x93E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x981,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9BD,
+ 0x9BE,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E2,
+ 0x9E4,
+ 0x9E6,
+ 0x9F0,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA70,
+ 0xA72,
+ 0xA75,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xABD,
+ 0xABE,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE2,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB3D,
+ 0xB3E,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB62,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB83,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC3E,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC62,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCBD,
+ 0xCBE,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE2,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD3E,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD62,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE31,
+ 0xE32,
+ 0xE34,
+ 0xE3B,
+ 0xE40,
+ 0xE47,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEB1,
+ 0xEB2,
+ 0xEB4,
+ 0xEBA,
+ 0xEBB,
+ 0xEBD,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF88,
+ 0xF8D,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x1000,
+ 0x102B,
+ 0x103F,
+ 0x1040,
+ 0x104A,
+ 0x104C,
+ 0x1050,
+ 0x1056,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1062,
+ 0x1065,
+ 0x1067,
+ 0x106E,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x108E,
+ 0x108F,
+ 0x1090,
+ 0x109A,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1362,
+ 0x1363,
+ 0x1367,
+ 0x1369,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166E,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x169D,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1712,
+ 0x1715,
+ 0x1720,
+ 0x1732,
+ 0x1735,
+ 0x1737,
+ 0x1740,
+ 0x1752,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17B4,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x1802,
+ 0x1803,
+ 0x1804,
+ 0x1808,
+ 0x1809,
+ 0x180A,
+ 0x180B,
+ 0x180E,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18A9,
+ 0x18AA,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1944,
+ 0x1946,
+ 0x1950,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19C1,
+ 0x19C8,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A17,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A55,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AAC,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B05,
+ 0x1B34,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B5C,
+ 0x1B5E,
+ 0x1B60,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BAE,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C24,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C3D,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1C80,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1E00,
+ 0x1E01,
+ 0x1E02,
+ 0x1E03,
+ 0x1E04,
+ 0x1E05,
+ 0x1E06,
+ 0x1E07,
+ 0x1E08,
+ 0x1E09,
+ 0x1E0A,
+ 0x1E0B,
+ 0x1E0C,
+ 0x1E0D,
+ 0x1E0E,
+ 0x1E0F,
+ 0x1E10,
+ 0x1E11,
+ 0x1E12,
+ 0x1E13,
+ 0x1E14,
+ 0x1E15,
+ 0x1E16,
+ 0x1E17,
+ 0x1E18,
+ 0x1E19,
+ 0x1E1A,
+ 0x1E1B,
+ 0x1E1C,
+ 0x1E1D,
+ 0x1E1E,
+ 0x1E1F,
+ 0x1E20,
+ 0x1E21,
+ 0x1E22,
+ 0x1E23,
+ 0x1E24,
+ 0x1E25,
+ 0x1E26,
+ 0x1E27,
+ 0x1E28,
+ 0x1E29,
+ 0x1E2A,
+ 0x1E2B,
+ 0x1E2C,
+ 0x1E2D,
+ 0x1E2E,
+ 0x1E2F,
+ 0x1E30,
+ 0x1E31,
+ 0x1E32,
+ 0x1E33,
+ 0x1E34,
+ 0x1E35,
+ 0x1E36,
+ 0x1E37,
+ 0x1E38,
+ 0x1E39,
+ 0x1E3A,
+ 0x1E3B,
+ 0x1E3C,
+ 0x1E3D,
+ 0x1E3E,
+ 0x1E3F,
+ 0x1E40,
+ 0x1E41,
+ 0x1E42,
+ 0x1E43,
+ 0x1E44,
+ 0x1E45,
+ 0x1E46,
+ 0x1E47,
+ 0x1E48,
+ 0x1E49,
+ 0x1E4A,
+ 0x1E4B,
+ 0x1E4C,
+ 0x1E4D,
+ 0x1E4E,
+ 0x1E4F,
+ 0x1E50,
+ 0x1E51,
+ 0x1E52,
+ 0x1E53,
+ 0x1E54,
+ 0x1E55,
+ 0x1E56,
+ 0x1E57,
+ 0x1E58,
+ 0x1E59,
+ 0x1E5A,
+ 0x1E5B,
+ 0x1E5C,
+ 0x1E5D,
+ 0x1E5E,
+ 0x1E5F,
+ 0x1E60,
+ 0x1E61,
+ 0x1E62,
+ 0x1E63,
+ 0x1E64,
+ 0x1E65,
+ 0x1E66,
+ 0x1E67,
+ 0x1E68,
+ 0x1E69,
+ 0x1E6A,
+ 0x1E6B,
+ 0x1E6C,
+ 0x1E6D,
+ 0x1E6E,
+ 0x1E6F,
+ 0x1E70,
+ 0x1E71,
+ 0x1E72,
+ 0x1E73,
+ 0x1E74,
+ 0x1E75,
+ 0x1E76,
+ 0x1E77,
+ 0x1E78,
+ 0x1E79,
+ 0x1E7A,
+ 0x1E7B,
+ 0x1E7C,
+ 0x1E7D,
+ 0x1E7E,
+ 0x1E7F,
+ 0x1E80,
+ 0x1E81,
+ 0x1E82,
+ 0x1E83,
+ 0x1E84,
+ 0x1E85,
+ 0x1E86,
+ 0x1E87,
+ 0x1E88,
+ 0x1E89,
+ 0x1E8A,
+ 0x1E8B,
+ 0x1E8C,
+ 0x1E8D,
+ 0x1E8E,
+ 0x1E8F,
+ 0x1E90,
+ 0x1E91,
+ 0x1E92,
+ 0x1E93,
+ 0x1E94,
+ 0x1E95,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1EA1,
+ 0x1EA2,
+ 0x1EA3,
+ 0x1EA4,
+ 0x1EA5,
+ 0x1EA6,
+ 0x1EA7,
+ 0x1EA8,
+ 0x1EA9,
+ 0x1EAA,
+ 0x1EAB,
+ 0x1EAC,
+ 0x1EAD,
+ 0x1EAE,
+ 0x1EAF,
+ 0x1EB0,
+ 0x1EB1,
+ 0x1EB2,
+ 0x1EB3,
+ 0x1EB4,
+ 0x1EB5,
+ 0x1EB6,
+ 0x1EB7,
+ 0x1EB8,
+ 0x1EB9,
+ 0x1EBA,
+ 0x1EBB,
+ 0x1EBC,
+ 0x1EBD,
+ 0x1EBE,
+ 0x1EBF,
+ 0x1EC0,
+ 0x1EC1,
+ 0x1EC2,
+ 0x1EC3,
+ 0x1EC4,
+ 0x1EC5,
+ 0x1EC6,
+ 0x1EC7,
+ 0x1EC8,
+ 0x1EC9,
+ 0x1ECA,
+ 0x1ECB,
+ 0x1ECC,
+ 0x1ECD,
+ 0x1ECE,
+ 0x1ECF,
+ 0x1ED0,
+ 0x1ED1,
+ 0x1ED2,
+ 0x1ED3,
+ 0x1ED4,
+ 0x1ED5,
+ 0x1ED6,
+ 0x1ED7,
+ 0x1ED8,
+ 0x1ED9,
+ 0x1EDA,
+ 0x1EDB,
+ 0x1EDC,
+ 0x1EDD,
+ 0x1EDE,
+ 0x1EDF,
+ 0x1EE0,
+ 0x1EE1,
+ 0x1EE2,
+ 0x1EE3,
+ 0x1EE4,
+ 0x1EE5,
+ 0x1EE6,
+ 0x1EE7,
+ 0x1EE8,
+ 0x1EE9,
+ 0x1EEA,
+ 0x1EEB,
+ 0x1EEC,
+ 0x1EED,
+ 0x1EEE,
+ 0x1EEF,
+ 0x1EF0,
+ 0x1EF1,
+ 0x1EF2,
+ 0x1EF3,
+ 0x1EF4,
+ 0x1EF5,
+ 0x1EF6,
+ 0x1EF7,
+ 0x1EF8,
+ 0x1EF9,
+ 0x1EFA,
+ 0x1EFB,
+ 0x1EFC,
+ 0x1EFD,
+ 0x1EFE,
+ 0x1EFF,
+ 0x1F08,
+ 0x1F10,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F28,
+ 0x1F30,
+ 0x1F38,
+ 0x1F40,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1F7E,
+ 0x1F80,
+ 0x1F88,
+ 0x1F90,
+ 0x1F98,
+ 0x1FA0,
+ 0x1FA8,
+ 0x1FB0,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FB8,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FC8,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FD8,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FE8,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FF8,
+ 0x1FFD,
+ 0x2000,
+ 0x200B,
+ 0x200C,
+ 0x200E,
+ 0x2010,
+ 0x2013,
+ 0x2015,
+ 0x2018,
+ 0x2020,
+ 0x2024,
+ 0x2025,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x2039,
+ 0x203B,
+ 0x203C,
+ 0x203E,
+ 0x2045,
+ 0x2047,
+ 0x204A,
+ 0x205F,
+ 0x2060,
+ 0x2065,
+ 0x2066,
+ 0x2070,
+ 0x2071,
+ 0x2072,
+ 0x207D,
+ 0x207F,
+ 0x2080,
+ 0x208D,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x210B,
+ 0x210E,
+ 0x2110,
+ 0x2113,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x2130,
+ 0x2134,
+ 0x2135,
+ 0x2139,
+ 0x213A,
+ 0x213C,
+ 0x213E,
+ 0x2140,
+ 0x2145,
+ 0x2146,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2170,
+ 0x2180,
+ 0x2183,
+ 0x2184,
+ 0x2185,
+ 0x2189,
+ 0x2308,
+ 0x230C,
+ 0x2329,
+ 0x232B,
+ 0x24B6,
+ 0x24D0,
+ 0x24EA,
+ 0x275B,
+ 0x2761,
+ 0x2768,
+ 0x2776,
+ 0x27C5,
+ 0x27C7,
+ 0x27E6,
+ 0x27F0,
+ 0x2983,
+ 0x2999,
+ 0x29D8,
+ 0x29DC,
+ 0x29FC,
+ 0x29FE,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2C61,
+ 0x2C62,
+ 0x2C65,
+ 0x2C67,
+ 0x2C68,
+ 0x2C69,
+ 0x2C6A,
+ 0x2C6B,
+ 0x2C6C,
+ 0x2C6D,
+ 0x2C71,
+ 0x2C72,
+ 0x2C73,
+ 0x2C75,
+ 0x2C76,
+ 0x2C7E,
+ 0x2C81,
+ 0x2C82,
+ 0x2C83,
+ 0x2C84,
+ 0x2C85,
+ 0x2C86,
+ 0x2C87,
+ 0x2C88,
+ 0x2C89,
+ 0x2C8A,
+ 0x2C8B,
+ 0x2C8C,
+ 0x2C8D,
+ 0x2C8E,
+ 0x2C8F,
+ 0x2C90,
+ 0x2C91,
+ 0x2C92,
+ 0x2C93,
+ 0x2C94,
+ 0x2C95,
+ 0x2C96,
+ 0x2C97,
+ 0x2C98,
+ 0x2C99,
+ 0x2C9A,
+ 0x2C9B,
+ 0x2C9C,
+ 0x2C9D,
+ 0x2C9E,
+ 0x2C9F,
+ 0x2CA0,
+ 0x2CA1,
+ 0x2CA2,
+ 0x2CA3,
+ 0x2CA4,
+ 0x2CA5,
+ 0x2CA6,
+ 0x2CA7,
+ 0x2CA8,
+ 0x2CA9,
+ 0x2CAA,
+ 0x2CAB,
+ 0x2CAC,
+ 0x2CAD,
+ 0x2CAE,
+ 0x2CAF,
+ 0x2CB0,
+ 0x2CB1,
+ 0x2CB2,
+ 0x2CB3,
+ 0x2CB4,
+ 0x2CB5,
+ 0x2CB6,
+ 0x2CB7,
+ 0x2CB8,
+ 0x2CB9,
+ 0x2CBA,
+ 0x2CBB,
+ 0x2CBC,
+ 0x2CBD,
+ 0x2CBE,
+ 0x2CBF,
+ 0x2CC0,
+ 0x2CC1,
+ 0x2CC2,
+ 0x2CC3,
+ 0x2CC4,
+ 0x2CC5,
+ 0x2CC6,
+ 0x2CC7,
+ 0x2CC8,
+ 0x2CC9,
+ 0x2CCA,
+ 0x2CCB,
+ 0x2CCC,
+ 0x2CCD,
+ 0x2CCE,
+ 0x2CCF,
+ 0x2CD0,
+ 0x2CD1,
+ 0x2CD2,
+ 0x2CD3,
+ 0x2CD4,
+ 0x2CD5,
+ 0x2CD6,
+ 0x2CD7,
+ 0x2CD8,
+ 0x2CD9,
+ 0x2CDA,
+ 0x2CDB,
+ 0x2CDC,
+ 0x2CDD,
+ 0x2CDE,
+ 0x2CDF,
+ 0x2CE0,
+ 0x2CE1,
+ 0x2CE2,
+ 0x2CE3,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEC,
+ 0x2CED,
+ 0x2CEE,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF3,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E0E,
+ 0x2E1C,
+ 0x2E1E,
+ 0x2E20,
+ 0x2E2A,
+ 0x2E2E,
+ 0x2E2F,
+ 0x2E30,
+ 0x2E3C,
+ 0x2E3D,
+ 0x2E42,
+ 0x2E43,
+ 0x3000,
+ 0x3001,
+ 0x3002,
+ 0x3003,
+ 0x3005,
+ 0x3008,
+ 0x3012,
+ 0x3014,
+ 0x301C,
+ 0x301D,
+ 0x3020,
+ 0x3021,
+ 0x302A,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA4FF,
+ 0xA500,
+ 0xA60D,
+ 0xA60E,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA641,
+ 0xA642,
+ 0xA643,
+ 0xA644,
+ 0xA645,
+ 0xA646,
+ 0xA647,
+ 0xA648,
+ 0xA649,
+ 0xA64A,
+ 0xA64B,
+ 0xA64C,
+ 0xA64D,
+ 0xA64E,
+ 0xA64F,
+ 0xA650,
+ 0xA651,
+ 0xA652,
+ 0xA653,
+ 0xA654,
+ 0xA655,
+ 0xA656,
+ 0xA657,
+ 0xA658,
+ 0xA659,
+ 0xA65A,
+ 0xA65B,
+ 0xA65C,
+ 0xA65D,
+ 0xA65E,
+ 0xA65F,
+ 0xA660,
+ 0xA661,
+ 0xA662,
+ 0xA663,
+ 0xA664,
+ 0xA665,
+ 0xA666,
+ 0xA667,
+ 0xA668,
+ 0xA669,
+ 0xA66A,
+ 0xA66B,
+ 0xA66C,
+ 0xA66D,
+ 0xA66E,
+ 0xA66F,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA680,
+ 0xA681,
+ 0xA682,
+ 0xA683,
+ 0xA684,
+ 0xA685,
+ 0xA686,
+ 0xA687,
+ 0xA688,
+ 0xA689,
+ 0xA68A,
+ 0xA68B,
+ 0xA68C,
+ 0xA68D,
+ 0xA68E,
+ 0xA68F,
+ 0xA690,
+ 0xA691,
+ 0xA692,
+ 0xA693,
+ 0xA694,
+ 0xA695,
+ 0xA696,
+ 0xA697,
+ 0xA698,
+ 0xA699,
+ 0xA69A,
+ 0xA69B,
+ 0xA69E,
+ 0xA69F,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA6F2,
+ 0xA6F3,
+ 0xA6F4,
+ 0xA6F7,
+ 0xA6F8,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA723,
+ 0xA724,
+ 0xA725,
+ 0xA726,
+ 0xA727,
+ 0xA728,
+ 0xA729,
+ 0xA72A,
+ 0xA72B,
+ 0xA72C,
+ 0xA72D,
+ 0xA72E,
+ 0xA72F,
+ 0xA732,
+ 0xA733,
+ 0xA734,
+ 0xA735,
+ 0xA736,
+ 0xA737,
+ 0xA738,
+ 0xA739,
+ 0xA73A,
+ 0xA73B,
+ 0xA73C,
+ 0xA73D,
+ 0xA73E,
+ 0xA73F,
+ 0xA740,
+ 0xA741,
+ 0xA742,
+ 0xA743,
+ 0xA744,
+ 0xA745,
+ 0xA746,
+ 0xA747,
+ 0xA748,
+ 0xA749,
+ 0xA74A,
+ 0xA74B,
+ 0xA74C,
+ 0xA74D,
+ 0xA74E,
+ 0xA74F,
+ 0xA750,
+ 0xA751,
+ 0xA752,
+ 0xA753,
+ 0xA754,
+ 0xA755,
+ 0xA756,
+ 0xA757,
+ 0xA758,
+ 0xA759,
+ 0xA75A,
+ 0xA75B,
+ 0xA75C,
+ 0xA75D,
+ 0xA75E,
+ 0xA75F,
+ 0xA760,
+ 0xA761,
+ 0xA762,
+ 0xA763,
+ 0xA764,
+ 0xA765,
+ 0xA766,
+ 0xA767,
+ 0xA768,
+ 0xA769,
+ 0xA76A,
+ 0xA76B,
+ 0xA76C,
+ 0xA76D,
+ 0xA76E,
+ 0xA76F,
+ 0xA779,
+ 0xA77A,
+ 0xA77B,
+ 0xA77C,
+ 0xA77D,
+ 0xA77F,
+ 0xA780,
+ 0xA781,
+ 0xA782,
+ 0xA783,
+ 0xA784,
+ 0xA785,
+ 0xA786,
+ 0xA787,
+ 0xA788,
+ 0xA789,
+ 0xA78B,
+ 0xA78C,
+ 0xA78D,
+ 0xA78E,
+ 0xA78F,
+ 0xA790,
+ 0xA791,
+ 0xA792,
+ 0xA793,
+ 0xA796,
+ 0xA797,
+ 0xA798,
+ 0xA799,
+ 0xA79A,
+ 0xA79B,
+ 0xA79C,
+ 0xA79D,
+ 0xA79E,
+ 0xA79F,
+ 0xA7A0,
+ 0xA7A1,
+ 0xA7A2,
+ 0xA7A3,
+ 0xA7A4,
+ 0xA7A5,
+ 0xA7A6,
+ 0xA7A7,
+ 0xA7A8,
+ 0xA7A9,
+ 0xA7AA,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA7F8,
+ 0xA7FB,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA876,
+ 0xA878,
+ 0xA880,
+ 0xA882,
+ 0xA8B4,
+ 0xA8C5,
+ 0xA8CE,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA90A,
+ 0xA926,
+ 0xA92E,
+ 0xA92F,
+ 0xA930,
+ 0xA947,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA984,
+ 0xA9B3,
+ 0xA9C1,
+ 0xA9C8,
+ 0xA9CA,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA29,
+ 0xAA37,
+ 0xAA40,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA5D,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAEB,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF5,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABE3,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD40,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE00,
+ 0xFE10,
+ 0xFE12,
+ 0xFE13,
+ 0xFE14,
+ 0xFE17,
+ 0xFE19,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE31,
+ 0xFE33,
+ 0xFE35,
+ 0xFE45,
+ 0xFE47,
+ 0xFE49,
+ 0xFE50,
+ 0xFE52,
+ 0xFE53,
+ 0xFE55,
+ 0xFE56,
+ 0xFE58,
+ 0xFE59,
+ 0xFE5F,
+ 0xFE63,
+ 0xFE64,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF01,
+ 0xFF02,
+ 0xFF08,
+ 0xFF0A,
+ 0xFF0C,
+ 0xFF0E,
+ 0xFF0F,
+ 0xFF1A,
+ 0xFF1B,
+ 0xFF1F,
+ 0xFF20,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3C,
+ 0xFF3D,
+ 0xFF3E,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF5C,
+ 0xFF5D,
+ 0xFF5E,
+ 0xFF5F,
+ 0xFF61,
+ 0xFF62,
+ 0xFF64,
+ 0xFF65,
+ 0xFF66,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFF9,
+ 0xFFFC,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x10376,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x10428,
+ 0x10450,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A01,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A10,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A56,
+ 0x10A58,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11003,
+ 0x11038,
+ 0x11047,
+ 0x11049,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x11083,
+ 0x110B0,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11103,
+ 0x11127,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11141,
+ 0x11144,
+ 0x11150,
+ 0x11173,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x11183,
+ 0x111B3,
+ 0x111C1,
+ 0x111C5,
+ 0x111C7,
+ 0x111CD,
+ 0x111CE,
+ 0x111D0,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1122C,
+ 0x11238,
+ 0x1123A,
+ 0x1123B,
+ 0x1123D,
+ 0x112B0,
+ 0x112DF,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x1133D,
+ 0x1133E,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11362,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114B0,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115AF,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x115C2,
+ 0x115C4,
+ 0x115C9,
+ 0x115CA,
+ 0x11600,
+ 0x11630,
+ 0x11641,
+ 0x11643,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116AB,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118C0,
+ 0x118E0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B30,
+ 0x16B37,
+ 0x16B39,
+ 0x16B40,
+ 0x16B44,
+ 0x16B45,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F51,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1BCA0,
+ 0x1BCA4,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D41A,
+ 0x1D434,
+ 0x1D44E,
+ 0x1D455,
+ 0x1D456,
+ 0x1D468,
+ 0x1D482,
+ 0x1D49C,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4B6,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D4D0,
+ 0x1D4EA,
+ 0x1D504,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D538,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D56C,
+ 0x1D586,
+ 0x1D5A0,
+ 0x1D5BA,
+ 0x1D5D4,
+ 0x1D5EE,
+ 0x1D608,
+ 0x1D622,
+ 0x1D63C,
+ 0x1D656,
+ 0x1D670,
+ 0x1D68A,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6E2,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D71C,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D756,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D790,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CA,
+ 0x1D7CB,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x1F676,
+ 0x1F679,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define SB_ENUM_COUNT 16
+
+typedef enum {
+ SB_Other = 0,
+ SB_ATerm = 1,
+ SB_CR = 2,
+ SB_Close = 3,
+ SB_EDGE = 4,
+ SB_Extend = 5,
+ SB_Format = 6,
+ SB_LF = 7,
+ SB_Lower = 8,
+ SB_Numeric = 9,
+ SB_OLetter = 10,
+ SB_SContinue = 11,
+ SB_STerm = 12,
+ SB_Sep = 13,
+ SB_Sp = 14,
+ SB_Upper = 15
+} SB_enum;
+
+static const SB_enum Sentence_Break_invmap[] = { /* for EBCDIC 1047 */
+ SB_Other,
+ SB_Sp,
+ SB_Other,
+ SB_Sp,
+ SB_CR,
+ SB_Other,
+ SB_LF,
+ SB_Other,
+ SB_Sep,
+ SB_Other,
+ SB_Sp,
+ SB_Lower,
+ SB_Other,
+ SB_ATerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Lower,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_STerm,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Upper,
+ SB_Lower,
+ SB_Close,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Close,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Upper,
+ SB_Format,
+ SB_Lower,
+ SB_Close,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Numeric,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Numeric,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Format,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Close,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Numeric,
+ SB_Extend,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Sp,
+ SB_OLetter,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Format,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Numeric,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Lower,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Sp,
+ SB_Format,
+ SB_Extend,
+ SB_Format,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_ATerm,
+ SB_Other,
+ SB_Sep,
+ SB_Format,
+ SB_Sp,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_STerm,
+ SB_Other,
+ SB_Sp,
+ SB_Format,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Close,
+ SB_Lower,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Sp,
+ SB_SContinue,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_OLetter,
+ SB_Lower,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_SContinue,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_ATerm,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_SContinue,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_ATerm,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Upper,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Lower,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_STerm,
+ SB_Close,
+ SB_SContinue,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Format,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_STerm,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Format,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV UpperLatin1_invlist[] = { /* for EBCDIC 1047 */
+ 55, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x4,
+ 0x5,
+ 0x6,
+ 0x7,
+ 0x8,
+ 0xB,
+ 0x14,
+ 0x15,
+ 0x17,
+ 0x18,
+ 0x1A,
+ 0x1C,
+ 0x20,
+ 0x26,
+ 0x28,
+ 0x2D,
+ 0x30,
+ 0x32,
+ 0x33,
+ 0x37,
+ 0x38,
+ 0x3C,
+ 0x3E,
+ 0x3F,
+ 0x41,
+ 0x4B,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6B,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x81,
+ 0x8A,
+ 0x91,
+ 0x9A,
+ 0xA1,
+ 0xAA,
+ 0xAD,
+ 0xAE,
+ 0xBD,
+ 0xBE,
+ 0xC0,
+ 0xCA,
+ 0xD0,
+ 0xDA,
+ 0xE0,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xF0,
+ 0xFA,
+ 0x100
+};
+
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV VertSpace_invlist[] = { /* for EBCDIC 1047 */
+ 9, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0xB,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x2028,
+ 0x202A
+};
+
+static const UV Word_Break_invlist[] = { /* for EBCDIC 1047 */
+ 1505, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0xB,
+ 0xD,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x42,
+ 0x4A,
+ 0x4B,
+ 0x4C,
+ 0x51,
+ 0x5A,
+ 0x5E,
+ 0x5F,
+ 0x62,
+ 0x6A,
+ 0x6B,
+ 0x6C,
+ 0x6D,
+ 0x6E,
+ 0x70,
+ 0x79,
+ 0x7A,
+ 0x7B,
+ 0x7D,
+ 0x7E,
+ 0x7F,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xAF,
+ 0xB3,
+ 0xB4,
+ 0xBA,
+ 0xBB,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFA,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2D7,
+ 0x2D8,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x483,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58A,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x5F4,
+ 0x5F5,
+ 0x600,
+ 0x606,
+ 0x60C,
+ 0x60E,
+ 0x610,
+ 0x61B,
+ 0x61C,
+ 0x61D,
+ 0x620,
+ 0x64B,
+ 0x660,
+ 0x66A,
+ 0x66B,
+ 0x66C,
+ 0x66D,
+ 0x66E,
+ 0x670,
+ 0x671,
+ 0x6D4,
+ 0x6D5,
+ 0x6D6,
+ 0x6DD,
+ 0x6DE,
+ 0x6DF,
+ 0x6E5,
+ 0x6E7,
+ 0x6E9,
+ 0x6EA,
+ 0x6EE,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x70F,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74B,
+ 0x74D,
+ 0x7A6,
+ 0x7B1,
+ 0x7B2,
+ 0x7C0,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7F8,
+ 0x7F9,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x82E,
+ 0x840,
+ 0x859,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x904,
+ 0x93A,
+ 0x93D,
+ 0x93E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x981,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9BD,
+ 0x9BE,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E2,
+ 0x9E4,
+ 0x9E6,
+ 0x9F0,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA70,
+ 0xA72,
+ 0xA75,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xABD,
+ 0xABE,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE2,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB3D,
+ 0xB3E,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB62,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB83,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC3E,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC62,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCBD,
+ 0xCBE,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE2,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD3E,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD62,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE31,
+ 0xE32,
+ 0xE34,
+ 0xE3B,
+ 0xE47,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xEB1,
+ 0xEB2,
+ 0xEB4,
+ 0xEBA,
+ 0xEBB,
+ 0xEBD,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF88,
+ 0xF8D,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x102B,
+ 0x103F,
+ 0x1040,
+ 0x104A,
+ 0x1056,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1062,
+ 0x1065,
+ 0x1067,
+ 0x106E,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x108E,
+ 0x108F,
+ 0x1090,
+ 0x109A,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1712,
+ 0x1715,
+ 0x1720,
+ 0x1732,
+ 0x1735,
+ 0x1740,
+ 0x1752,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x17B4,
+ 0x17D4,
+ 0x17DD,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x180B,
+ 0x180E,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18A9,
+ 0x18AA,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1946,
+ 0x1950,
+ 0x19B0,
+ 0x19C1,
+ 0x19C8,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A17,
+ 0x1A1C,
+ 0x1A55,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B05,
+ 0x1B34,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BAE,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C24,
+ 0x1C38,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x200C,
+ 0x200E,
+ 0x2010,
+ 0x2018,
+ 0x201A,
+ 0x2024,
+ 0x2025,
+ 0x2027,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x203F,
+ 0x2041,
+ 0x2044,
+ 0x2045,
+ 0x2054,
+ 0x2055,
+ 0x2060,
+ 0x2065,
+ 0x2066,
+ 0x2070,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3006,
+ 0x302A,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x303B,
+ 0x303D,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x32D0,
+ 0x32FF,
+ 0x3300,
+ 0x3358,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA6F2,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA882,
+ 0xA8B4,
+ 0xA8C5,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA90A,
+ 0xA926,
+ 0xA92E,
+ 0xA930,
+ 0xA947,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA984,
+ 0xA9B3,
+ 0xA9C1,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9DA,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xAA00,
+ 0xAA29,
+ 0xAA37,
+ 0xAA40,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAE0,
+ 0xAAEB,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF5,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABE3,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFB50,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE00,
+ 0xFE10,
+ 0xFE11,
+ 0xFE13,
+ 0xFE14,
+ 0xFE15,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE33,
+ 0xFE35,
+ 0xFE4D,
+ 0xFE50,
+ 0xFE51,
+ 0xFE52,
+ 0xFE53,
+ 0xFE54,
+ 0xFE55,
+ 0xFE56,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF07,
+ 0xFF08,
+ 0xFF0C,
+ 0xFF0D,
+ 0xFF0E,
+ 0xFF0F,
+ 0xFF1A,
+ 0xFF1B,
+ 0xFF1C,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFF9,
+ 0xFFFC,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x10376,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A01,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A10,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11003,
+ 0x11038,
+ 0x11047,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x11083,
+ 0x110B0,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11103,
+ 0x11127,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11173,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x11183,
+ 0x111B3,
+ 0x111C1,
+ 0x111C5,
+ 0x111D0,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1122C,
+ 0x11238,
+ 0x112B0,
+ 0x112DF,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x1133D,
+ 0x1133E,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11362,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114B0,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115AF,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x11600,
+ 0x11630,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116AB,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118E0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B00,
+ 0x16B30,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F51,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B001,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1BCA0,
+ 0x1BCA4,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x1F1E6,
+ 0x1F200,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define WB_ENUM_COUNT 19
+
+typedef enum {
+ WB_Other = 0,
+ WB_ALetter = 1,
+ WB_CR = 2,
+ WB_Double_Quote = 3,
+ WB_EDGE = 4,
+ WB_Extend = 5,
+ WB_ExtendNumLet = 6,
+ WB_Format = 7,
+ WB_Hebrew_Letter = 8,
+ WB_Katakana = 9,
+ WB_LF = 10,
+ WB_MidLetter = 11,
+ WB_MidNum = 12,
+ WB_MidNumLet = 13,
+ WB_Newline = 14,
+ WB_Numeric = 15,
+ WB_Regional_Indicator = 16,
+ WB_Single_Quote = 17,
+ WB_UNKNOWN = 18
+} WB_enum;
+
+static const WB_enum Word_Break_invmap[] = { /* for EBCDIC 1047 */
+ WB_Other,
+ WB_Newline,
+ WB_CR,
+ WB_Other,
+ WB_LF,
+ WB_Other,
+ WB_Newline,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidLetter,
+ WB_Other,
+ WB_Single_Quote,
+ WB_Other,
+ WB_Double_Quote,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidLetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Format,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidLetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_MidNum,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_MidLetter,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_ALetter,
+ WB_MidLetter,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Numeric,
+ WB_Other,
+ WB_Numeric,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Format,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Numeric,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Numeric,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidLetter,
+ WB_Newline,
+ WB_Format,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Extend,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_MidNum,
+ WB_Other,
+ WB_MidLetter,
+ WB_MidNum,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_MidNum,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidNum,
+ WB_MidLetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidLetter,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Katakana,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Regional_Indicator,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV XPerlSpace_invlist[] = { /* for EBCDIC 1047 */
+ 23, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x5,
+ 0x6,
+ 0xB,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x40,
+ 0x42,
+ 0x1680,
+ 0x1681,
+ 0x2000,
+ 0x200B,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x3000,
+ 0x3001
+};
+
+static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
+ 1285, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xAF,
+ 0xBA,
+ 0xBB,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xFA,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x5B0,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x658,
+ 0x659,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6E1,
+ 0x6E9,
+ 0x6ED,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x740,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x818,
+ 0x81A,
+ 0x82D,
+ 0x840,
+ 0x859,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x8EA,
+ 0x8F0,
+ 0x93C,
+ 0x93D,
+ 0x94D,
+ 0x94E,
+ 0x951,
+ 0x955,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BD,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CD,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4D,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABD,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACD,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3D,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4D,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCD,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4D,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBD,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCD,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4D,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE47,
+ 0xE4D,
+ 0xE4E,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xECD,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF20,
+ 0xF2A,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF82,
+ 0xF88,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0x1000,
+ 0x1037,
+ 0x1038,
+ 0x1039,
+ 0x103B,
+ 0x104A,
+ 0x1050,
+ 0x1063,
+ 0x1065,
+ 0x1069,
+ 0x106E,
+ 0x1087,
+ 0x108E,
+ 0x108F,
+ 0x1090,
+ 0x109A,
+ 0x109C,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135F,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1714,
+ 0x1720,
+ 0x1734,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17B4,
+ 0x17B6,
+ 0x17C9,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x17E0,
+ 0x17EA,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x1939,
+ 0x1946,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A61,
+ 0x1A75,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1B00,
+ 0x1B34,
+ 0x1B35,
+ 0x1B44,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B80,
+ 0x1BAA,
+ 0x1BAC,
+ 0x1BE6,
+ 0x1BE7,
+ 0x1BF2,
+ 0x1C00,
+ 0x1C36,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C7E,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF4,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DE7,
+ 0x1DF5,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x302A,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA674,
+ 0xA67C,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F0,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C4,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA92B,
+ 0xA930,
+ 0xA953,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9B3,
+ 0xA9B4,
+ 0xA9C0,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAABF,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF6,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11046,
+ 0x11066,
+ 0x11070,
+ 0x11082,
+ 0x110B9,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11133,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11173,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C0,
+ 0x111C1,
+ 0x111C5,
+ 0x111D0,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11235,
+ 0x11237,
+ 0x11238,
+ 0x112B0,
+ 0x112E9,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133D,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134D,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11480,
+ 0x114C2,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115BF,
+ 0x11600,
+ 0x1163F,
+ 0x11640,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B6,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9E,
+ 0x1BC9F,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E
+};
+
+static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
+ 1227, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xAF,
+ 0xBA,
+ 0xBB,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x5B0,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x658,
+ 0x659,
+ 0x660,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6E1,
+ 0x6E9,
+ 0x6ED,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x740,
+ 0x74D,
+ 0x7B2,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x818,
+ 0x81A,
+ 0x82D,
+ 0x840,
+ 0x859,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x8EA,
+ 0x8F0,
+ 0x93C,
+ 0x93D,
+ 0x94D,
+ 0x94E,
+ 0x951,
+ 0x955,
+ 0x964,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BD,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CD,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9F0,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4D,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA70,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABD,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACD,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3D,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4D,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCD,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4D,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBD,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCD,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4D,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE47,
+ 0xE4D,
+ 0xE4E,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xECD,
+ 0xECE,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF82,
+ 0xF88,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0x1000,
+ 0x1037,
+ 0x1038,
+ 0x1039,
+ 0x103B,
+ 0x1040,
+ 0x1050,
+ 0x1063,
+ 0x1065,
+ 0x1069,
+ 0x106E,
+ 0x1087,
+ 0x108E,
+ 0x108F,
+ 0x109C,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135F,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1714,
+ 0x1720,
+ 0x1734,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17B4,
+ 0x17B6,
+ 0x17C9,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x1939,
+ 0x1950,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A61,
+ 0x1A75,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1B00,
+ 0x1B34,
+ 0x1B35,
+ 0x1B44,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B80,
+ 0x1BAA,
+ 0x1BAC,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1BE7,
+ 0x1BF2,
+ 0x1C00,
+ 0x1C36,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF4,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DE7,
+ 0x1DF5,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x302A,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA674,
+ 0xA67C,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F0,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C4,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA90A,
+ 0xA92B,
+ 0xA930,
+ 0xA953,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9B3,
+ 0xA9B4,
+ 0xA9C0,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAABF,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF6,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11046,
+ 0x11082,
+ 0x110B9,
+ 0x110D0,
+ 0x110E9,
+ 0x11100,
+ 0x11133,
+ 0x11150,
+ 0x11173,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C0,
+ 0x111C1,
+ 0x111C5,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11235,
+ 0x11237,
+ 0x11238,
+ 0x112B0,
+ 0x112E9,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133D,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134D,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11480,
+ 0x114C2,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115BF,
+ 0x11600,
+ 0x1163F,
+ 0x11640,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11680,
+ 0x116B6,
+ 0x118A0,
+ 0x118E0,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9E,
+ 0x1BC9F,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E
+};
+
+static const UV XPosixBlank_invlist[] = { /* for EBCDIC 1047 */
+ 15, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x5,
+ 0x6,
+ 0x40,
+ 0x42,
+ 0x1680,
+ 0x1681,
+ 0x2000,
+ 0x200B,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x3000,
+ 0x3001
+};
+
+static const UV XPosixCntrl_invlist[] = { /* for EBCDIC 1047 */
4, /* Number of elements */
148565664, /* Version and data structure type */
0, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 32,
- 127,
- 160
+ 0x0,
+ 0x40,
+ 0xFF,
+ 0x100
};
-#endif
+static const UV XPosixDigit_invlist[] = { /* for EBCDIC 1047 */
+ 101, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0xF0,
+ 0xFA,
+ 0x660,
+ 0x66A,
+ 0x6F0,
+ 0x6FA,
+ 0x7C0,
+ 0x7CA,
+ 0x966,
+ 0x970,
+ 0x9E6,
+ 0x9F0,
+ 0xA66,
+ 0xA70,
+ 0xAE6,
+ 0xAF0,
+ 0xB66,
+ 0xB70,
+ 0xBE6,
+ 0xBF0,
+ 0xC66,
+ 0xC70,
+ 0xCE6,
+ 0xCF0,
+ 0xD66,
+ 0xD70,
+ 0xDE6,
+ 0xDF0,
+ 0xE50,
+ 0xE5A,
+ 0xED0,
+ 0xEDA,
+ 0xF20,
+ 0xF2A,
+ 0x1040,
+ 0x104A,
+ 0x1090,
+ 0x109A,
+ 0x17E0,
+ 0x17EA,
+ 0x1810,
+ 0x181A,
+ 0x1946,
+ 0x1950,
+ 0x19D0,
+ 0x19DA,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1B50,
+ 0x1B5A,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C50,
+ 0x1C5A,
+ 0xA620,
+ 0xA62A,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA900,
+ 0xA90A,
+ 0xA9D0,
+ 0xA9DA,
+ 0xA9F0,
+ 0xA9FA,
+ 0xAA50,
+ 0xAA5A,
+ 0xABF0,
+ 0xABFA,
+ 0xFF10,
+ 0xFF1A,
+ 0x104A0,
+ 0x104AA,
+ 0x11066,
+ 0x11070,
+ 0x110F0,
+ 0x110FA,
+ 0x11136,
+ 0x11140,
+ 0x111D0,
+ 0x111DA,
+ 0x112F0,
+ 0x112FA,
+ 0x114D0,
+ 0x114DA,
+ 0x11650,
+ 0x1165A,
+ 0x116C0,
+ 0x116CA,
+ 0x118E0,
+ 0x118EA,
+ 0x16A60,
+ 0x16A6A,
+ 0x16B50,
+ 0x16B5A,
+ 0x1D7CE,
+ 0x1D800
+};
-#ifndef PERL_IN_XSUB_RE
+static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
+ 1211, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0xFF,
+ 0x100,
+ 0x378,
+ 0x37A,
+ 0x380,
+ 0x384,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x560,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58B,
+ 0x58D,
+ 0x590,
+ 0x591,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F5,
+ 0x600,
+ 0x61D,
+ 0x61E,
+ 0x70E,
+ 0x70F,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x830,
+ 0x83F,
+ 0x840,
+ 0x85C,
+ 0x85E,
+ 0x85F,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9FC,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF2,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB78,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBFB,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC78,
+ 0xC80,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD76,
+ 0xD79,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF5,
+ 0xE01,
+ 0xE3B,
+ 0xE3F,
+ 0xE5C,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFBE,
+ 0xFCD,
+ 0xFCE,
+ 0xFDB,
+ 0x1000,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x137D,
+ 0x1380,
+ 0x139A,
+ 0x13A0,
+ 0x13F5,
+ 0x1400,
+ 0x1680,
+ 0x1681,
+ 0x169D,
+ 0x16A0,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1737,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x17F0,
+ 0x17FA,
+ 0x1800,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1940,
+ 0x1941,
+ 0x1944,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DB,
+ 0x19DE,
+ 0x1A1C,
+ 0x1A1E,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA0,
+ 0x1AAE,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B7D,
+ 0x1B80,
+ 0x1BF4,
+ 0x1BFC,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C80,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FDD,
+ 0x1FF0,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFF,
+ 0x200B,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20BE,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218A,
+ 0x2190,
+ 0x23FB,
+ 0x2400,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B98,
+ 0x2BBA,
+ 0x2BBD,
+ 0x2BC9,
+ 0x2BCA,
+ 0x2BD2,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CF4,
+ 0x2CF9,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D71,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E43,
+ 0x2E80,
+ 0x2E9A,
+ 0x2E9B,
+ 0x2EF4,
+ 0x2F00,
+ 0x2FD6,
+ 0x2FF0,
+ 0x2FFC,
+ 0x3001,
+ 0x3040,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x3190,
+ 0x31BB,
+ 0x31C0,
+ 0x31E4,
+ 0x31F0,
+ 0x321F,
+ 0x3220,
+ 0x32FF,
+ 0x3300,
+ 0x4DB6,
+ 0x4DC0,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F8,
+ 0xA700,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA82C,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C5,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8FC,
+ 0xA900,
+ 0xA954,
+ 0xA95F,
+ 0xA97D,
+ 0xA980,
+ 0xA9CE,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9DE,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA5C,
+ 0xAAC3,
+ 0xAADB,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xE000,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBC2,
+ 0xFBD3,
+ 0xFD40,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFE,
+ 0xFE00,
+ 0xFE1A,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE30,
+ 0xFE53,
+ 0xFE54,
+ 0xFE67,
+ 0xFE68,
+ 0xFE6C,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF01,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFE0,
+ 0xFFE7,
+ 0xFFE8,
+ 0xFFEF,
+ 0xFFF9,
+ 0xFFFE,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10100,
+ 0x10103,
+ 0x10107,
+ 0x10134,
+ 0x10137,
+ 0x1018D,
+ 0x10190,
+ 0x1019C,
+ 0x101A0,
+ 0x101A1,
+ 0x101D0,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102FC,
+ 0x10300,
+ 0x10324,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x1039F,
+ 0x103C4,
+ 0x103C8,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x1056F,
+ 0x10570,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10857,
+ 0x1089F,
+ 0x108A7,
+ 0x108B0,
+ 0x10900,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A48,
+ 0x10A50,
+ 0x10A59,
+ 0x10A60,
+ 0x10AA0,
+ 0x10AC0,
+ 0x10AE7,
+ 0x10AEB,
+ 0x10AF7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B39,
+ 0x10B56,
+ 0x10B58,
+ 0x10B73,
+ 0x10B78,
+ 0x10B92,
+ 0x10B99,
+ 0x10B9D,
+ 0x10BA9,
+ 0x10BB0,
+ 0x10C00,
+ 0x10C49,
+ 0x10E60,
+ 0x10E7F,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11070,
+ 0x1107F,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11144,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111C9,
+ 0x111CD,
+ 0x111CE,
+ 0x111D0,
+ 0x111DB,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1123E,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115CA,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B46,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B5B,
+ 0x16B62,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1DE,
+ 0x1D200,
+ 0x1D246,
+ 0x1D300,
+ 0x1D357,
+ 0x1D360,
+ 0x1D372,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1EEF0,
+ 0x1EEF2,
+ 0x1F000,
+ 0x1F02C,
+ 0x1F030,
+ 0x1F094,
+ 0x1F0A0,
+ 0x1F0AF,
+ 0x1F0B1,
+ 0x1F0C0,
+ 0x1F0C1,
+ 0x1F0D0,
+ 0x1F0D1,
+ 0x1F0F6,
+ 0x1F100,
+ 0x1F10D,
+ 0x1F110,
+ 0x1F12F,
+ 0x1F130,
+ 0x1F16C,
+ 0x1F170,
+ 0x1F19B,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23B,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F300,
+ 0x1F32D,
+ 0x1F330,
+ 0x1F37E,
+ 0x1F380,
+ 0x1F3CF,
+ 0x1F3D4,
+ 0x1F3F8,
+ 0x1F400,
+ 0x1F4FF,
+ 0x1F500,
+ 0x1F54B,
+ 0x1F550,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F5A4,
+ 0x1F5A5,
+ 0x1F643,
+ 0x1F645,
+ 0x1F6D0,
+ 0x1F6E0,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6F4,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xF0000,
+ 0xFFFFE,
+ 0x100000,
+ 0x10FFFE
+};
-static const UV XPosixDigit_invlist[] = {
- 85, /* Number of elements */
+static const UV XPosixLower_invlist[] = { /* for EBCDIC 1047 */
+ 1275, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 48,
- 58,
- 1632,
- 1642,
- 1776,
- 1786,
- 1984,
- 1994,
- 2406,
- 2416,
- 2534,
- 2544,
- 2662,
- 2672,
- 2790,
- 2800,
- 2918,
- 2928,
- 3046,
- 3056,
- 3174,
- 3184,
- 3302,
- 3312,
- 3430,
- 3440,
- 3664,
- 3674,
- 3792,
- 3802,
- 3872,
- 3882,
- 4160,
- 4170,
- 4240,
- 4250,
- 6112,
- 6122,
- 6160,
- 6170,
- 6470,
- 6480,
- 6608,
- 6618,
- 6784,
- 6794,
- 6800,
- 6810,
- 6992,
- 7002,
- 7088,
- 7098,
- 7232,
- 7242,
- 7248,
- 7258,
- 42528,
- 42538,
- 43216,
- 43226,
- 43264,
- 43274,
- 43472,
- 43482,
- 43600,
- 43610,
- 44016,
- 44026,
- 65296,
- 65306,
- 66720,
- 66730,
- 69734,
- 69744,
- 69872,
- 69882,
- 69942,
- 69952,
- 70096,
- 70106,
- 71360,
- 71370,
- 120782,
- 120832
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x70,
+ 0x71,
+ 0x81,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xCB,
+ 0xD0,
+ 0xDB,
+ 0xE0,
+ 0x101,
+ 0x102,
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x106,
+ 0x107,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x10E,
+ 0x10F,
+ 0x110,
+ 0x111,
+ 0x112,
+ 0x113,
+ 0x114,
+ 0x115,
+ 0x116,
+ 0x117,
+ 0x118,
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x11C,
+ 0x11D,
+ 0x11E,
+ 0x11F,
+ 0x120,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x124,
+ 0x125,
+ 0x126,
+ 0x127,
+ 0x128,
+ 0x129,
+ 0x12A,
+ 0x12B,
+ 0x12C,
+ 0x12D,
+ 0x12E,
+ 0x12F,
+ 0x130,
+ 0x131,
+ 0x132,
+ 0x133,
+ 0x134,
+ 0x135,
+ 0x136,
+ 0x137,
+ 0x139,
+ 0x13A,
+ 0x13B,
+ 0x13C,
+ 0x13D,
+ 0x13E,
+ 0x13F,
+ 0x140,
+ 0x141,
+ 0x142,
+ 0x143,
+ 0x144,
+ 0x145,
+ 0x146,
+ 0x147,
+ 0x148,
+ 0x14A,
+ 0x14B,
+ 0x14C,
+ 0x14D,
+ 0x14E,
+ 0x14F,
+ 0x150,
+ 0x151,
+ 0x152,
+ 0x153,
+ 0x154,
+ 0x155,
+ 0x156,
+ 0x157,
+ 0x158,
+ 0x159,
+ 0x15A,
+ 0x15B,
+ 0x15C,
+ 0x15D,
+ 0x15E,
+ 0x15F,
+ 0x160,
+ 0x161,
+ 0x162,
+ 0x163,
+ 0x164,
+ 0x165,
+ 0x166,
+ 0x167,
+ 0x168,
+ 0x169,
+ 0x16A,
+ 0x16B,
+ 0x16C,
+ 0x16D,
+ 0x16E,
+ 0x16F,
+ 0x170,
+ 0x171,
+ 0x172,
+ 0x173,
+ 0x174,
+ 0x175,
+ 0x176,
+ 0x177,
+ 0x178,
+ 0x17A,
+ 0x17B,
+ 0x17C,
+ 0x17D,
+ 0x17E,
+ 0x181,
+ 0x183,
+ 0x184,
+ 0x185,
+ 0x186,
+ 0x188,
+ 0x189,
+ 0x18C,
+ 0x18E,
+ 0x192,
+ 0x193,
+ 0x195,
+ 0x196,
+ 0x199,
+ 0x19C,
+ 0x19E,
+ 0x19F,
+ 0x1A1,
+ 0x1A2,
+ 0x1A3,
+ 0x1A4,
+ 0x1A5,
+ 0x1A6,
+ 0x1A8,
+ 0x1A9,
+ 0x1AA,
+ 0x1AC,
+ 0x1AD,
+ 0x1AE,
+ 0x1B0,
+ 0x1B1,
+ 0x1B4,
+ 0x1B5,
+ 0x1B6,
+ 0x1B7,
+ 0x1B9,
+ 0x1BB,
+ 0x1BD,
+ 0x1C0,
+ 0x1C6,
+ 0x1C7,
+ 0x1C9,
+ 0x1CA,
+ 0x1CC,
+ 0x1CD,
+ 0x1CE,
+ 0x1CF,
+ 0x1D0,
+ 0x1D1,
+ 0x1D2,
+ 0x1D3,
+ 0x1D4,
+ 0x1D5,
+ 0x1D6,
+ 0x1D7,
+ 0x1D8,
+ 0x1D9,
+ 0x1DA,
+ 0x1DB,
+ 0x1DC,
+ 0x1DE,
+ 0x1DF,
+ 0x1E0,
+ 0x1E1,
+ 0x1E2,
+ 0x1E3,
+ 0x1E4,
+ 0x1E5,
+ 0x1E6,
+ 0x1E7,
+ 0x1E8,
+ 0x1E9,
+ 0x1EA,
+ 0x1EB,
+ 0x1EC,
+ 0x1ED,
+ 0x1EE,
+ 0x1EF,
+ 0x1F1,
+ 0x1F3,
+ 0x1F4,
+ 0x1F5,
+ 0x1F6,
+ 0x1F9,
+ 0x1FA,
+ 0x1FB,
+ 0x1FC,
+ 0x1FD,
+ 0x1FE,
+ 0x1FF,
+ 0x200,
+ 0x201,
+ 0x202,
+ 0x203,
+ 0x204,
+ 0x205,
+ 0x206,
+ 0x207,
+ 0x208,
+ 0x209,
+ 0x20A,
+ 0x20B,
+ 0x20C,
+ 0x20D,
+ 0x20E,
+ 0x20F,
+ 0x210,
+ 0x211,
+ 0x212,
+ 0x213,
+ 0x214,
+ 0x215,
+ 0x216,
+ 0x217,
+ 0x218,
+ 0x219,
+ 0x21A,
+ 0x21B,
+ 0x21C,
+ 0x21D,
+ 0x21E,
+ 0x21F,
+ 0x220,
+ 0x221,
+ 0x222,
+ 0x223,
+ 0x224,
+ 0x225,
+ 0x226,
+ 0x227,
+ 0x228,
+ 0x229,
+ 0x22A,
+ 0x22B,
+ 0x22C,
+ 0x22D,
+ 0x22E,
+ 0x22F,
+ 0x230,
+ 0x231,
+ 0x232,
+ 0x233,
+ 0x23A,
+ 0x23C,
+ 0x23D,
+ 0x23F,
+ 0x241,
+ 0x242,
+ 0x243,
+ 0x247,
+ 0x248,
+ 0x249,
+ 0x24A,
+ 0x24B,
+ 0x24C,
+ 0x24D,
+ 0x24E,
+ 0x24F,
+ 0x294,
+ 0x295,
+ 0x2B9,
+ 0x2C0,
+ 0x2C2,
+ 0x2E0,
+ 0x2E5,
+ 0x345,
+ 0x346,
+ 0x371,
+ 0x372,
+ 0x373,
+ 0x374,
+ 0x377,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x390,
+ 0x391,
+ 0x3AC,
+ 0x3CF,
+ 0x3D0,
+ 0x3D2,
+ 0x3D5,
+ 0x3D8,
+ 0x3D9,
+ 0x3DA,
+ 0x3DB,
+ 0x3DC,
+ 0x3DD,
+ 0x3DE,
+ 0x3DF,
+ 0x3E0,
+ 0x3E1,
+ 0x3E2,
+ 0x3E3,
+ 0x3E4,
+ 0x3E5,
+ 0x3E6,
+ 0x3E7,
+ 0x3E8,
+ 0x3E9,
+ 0x3EA,
+ 0x3EB,
+ 0x3EC,
+ 0x3ED,
+ 0x3EE,
+ 0x3EF,
+ 0x3F4,
+ 0x3F5,
+ 0x3F6,
+ 0x3F8,
+ 0x3F9,
+ 0x3FB,
+ 0x3FD,
+ 0x430,
+ 0x460,
+ 0x461,
+ 0x462,
+ 0x463,
+ 0x464,
+ 0x465,
+ 0x466,
+ 0x467,
+ 0x468,
+ 0x469,
+ 0x46A,
+ 0x46B,
+ 0x46C,
+ 0x46D,
+ 0x46E,
+ 0x46F,
+ 0x470,
+ 0x471,
+ 0x472,
+ 0x473,
+ 0x474,
+ 0x475,
+ 0x476,
+ 0x477,
+ 0x478,
+ 0x479,
+ 0x47A,
+ 0x47B,
+ 0x47C,
+ 0x47D,
+ 0x47E,
+ 0x47F,
+ 0x480,
+ 0x481,
+ 0x482,
+ 0x48B,
+ 0x48C,
+ 0x48D,
+ 0x48E,
+ 0x48F,
+ 0x490,
+ 0x491,
+ 0x492,
+ 0x493,
+ 0x494,
+ 0x495,
+ 0x496,
+ 0x497,
+ 0x498,
+ 0x499,
+ 0x49A,
+ 0x49B,
+ 0x49C,
+ 0x49D,
+ 0x49E,
+ 0x49F,
+ 0x4A0,
+ 0x4A1,
+ 0x4A2,
+ 0x4A3,
+ 0x4A4,
+ 0x4A5,
+ 0x4A6,
+ 0x4A7,
+ 0x4A8,
+ 0x4A9,
+ 0x4AA,
+ 0x4AB,
+ 0x4AC,
+ 0x4AD,
+ 0x4AE,
+ 0x4AF,
+ 0x4B0,
+ 0x4B1,
+ 0x4B2,
+ 0x4B3,
+ 0x4B4,
+ 0x4B5,
+ 0x4B6,
+ 0x4B7,
+ 0x4B8,
+ 0x4B9,
+ 0x4BA,
+ 0x4BB,
+ 0x4BC,
+ 0x4BD,
+ 0x4BE,
+ 0x4BF,
+ 0x4C0,
+ 0x4C2,
+ 0x4C3,
+ 0x4C4,
+ 0x4C5,
+ 0x4C6,
+ 0x4C7,
+ 0x4C8,
+ 0x4C9,
+ 0x4CA,
+ 0x4CB,
+ 0x4CC,
+ 0x4CD,
+ 0x4CE,
+ 0x4D0,
+ 0x4D1,
+ 0x4D2,
+ 0x4D3,
+ 0x4D4,
+ 0x4D5,
+ 0x4D6,
+ 0x4D7,
+ 0x4D8,
+ 0x4D9,
+ 0x4DA,
+ 0x4DB,
+ 0x4DC,
+ 0x4DD,
+ 0x4DE,
+ 0x4DF,
+ 0x4E0,
+ 0x4E1,
+ 0x4E2,
+ 0x4E3,
+ 0x4E4,
+ 0x4E5,
+ 0x4E6,
+ 0x4E7,
+ 0x4E8,
+ 0x4E9,
+ 0x4EA,
+ 0x4EB,
+ 0x4EC,
+ 0x4ED,
+ 0x4EE,
+ 0x4EF,
+ 0x4F0,
+ 0x4F1,
+ 0x4F2,
+ 0x4F3,
+ 0x4F4,
+ 0x4F5,
+ 0x4F6,
+ 0x4F7,
+ 0x4F8,
+ 0x4F9,
+ 0x4FA,
+ 0x4FB,
+ 0x4FC,
+ 0x4FD,
+ 0x4FE,
+ 0x4FF,
+ 0x500,
+ 0x501,
+ 0x502,
+ 0x503,
+ 0x504,
+ 0x505,
+ 0x506,
+ 0x507,
+ 0x508,
+ 0x509,
+ 0x50A,
+ 0x50B,
+ 0x50C,
+ 0x50D,
+ 0x50E,
+ 0x50F,
+ 0x510,
+ 0x511,
+ 0x512,
+ 0x513,
+ 0x514,
+ 0x515,
+ 0x516,
+ 0x517,
+ 0x518,
+ 0x519,
+ 0x51A,
+ 0x51B,
+ 0x51C,
+ 0x51D,
+ 0x51E,
+ 0x51F,
+ 0x520,
+ 0x521,
+ 0x522,
+ 0x523,
+ 0x524,
+ 0x525,
+ 0x526,
+ 0x527,
+ 0x528,
+ 0x529,
+ 0x52A,
+ 0x52B,
+ 0x52C,
+ 0x52D,
+ 0x52E,
+ 0x52F,
+ 0x530,
+ 0x561,
+ 0x588,
+ 0x1D00,
+ 0x1DC0,
+ 0x1E01,
+ 0x1E02,
+ 0x1E03,
+ 0x1E04,
+ 0x1E05,
+ 0x1E06,
+ 0x1E07,
+ 0x1E08,
+ 0x1E09,
+ 0x1E0A,
+ 0x1E0B,
+ 0x1E0C,
+ 0x1E0D,
+ 0x1E0E,
+ 0x1E0F,
+ 0x1E10,
+ 0x1E11,
+ 0x1E12,
+ 0x1E13,
+ 0x1E14,
+ 0x1E15,
+ 0x1E16,
+ 0x1E17,
+ 0x1E18,
+ 0x1E19,
+ 0x1E1A,
+ 0x1E1B,
+ 0x1E1C,
+ 0x1E1D,
+ 0x1E1E,
+ 0x1E1F,
+ 0x1E20,
+ 0x1E21,
+ 0x1E22,
+ 0x1E23,
+ 0x1E24,
+ 0x1E25,
+ 0x1E26,
+ 0x1E27,
+ 0x1E28,
+ 0x1E29,
+ 0x1E2A,
+ 0x1E2B,
+ 0x1E2C,
+ 0x1E2D,
+ 0x1E2E,
+ 0x1E2F,
+ 0x1E30,
+ 0x1E31,
+ 0x1E32,
+ 0x1E33,
+ 0x1E34,
+ 0x1E35,
+ 0x1E36,
+ 0x1E37,
+ 0x1E38,
+ 0x1E39,
+ 0x1E3A,
+ 0x1E3B,
+ 0x1E3C,
+ 0x1E3D,
+ 0x1E3E,
+ 0x1E3F,
+ 0x1E40,
+ 0x1E41,
+ 0x1E42,
+ 0x1E43,
+ 0x1E44,
+ 0x1E45,
+ 0x1E46,
+ 0x1E47,
+ 0x1E48,
+ 0x1E49,
+ 0x1E4A,
+ 0x1E4B,
+ 0x1E4C,
+ 0x1E4D,
+ 0x1E4E,
+ 0x1E4F,
+ 0x1E50,
+ 0x1E51,
+ 0x1E52,
+ 0x1E53,
+ 0x1E54,
+ 0x1E55,
+ 0x1E56,
+ 0x1E57,
+ 0x1E58,
+ 0x1E59,
+ 0x1E5A,
+ 0x1E5B,
+ 0x1E5C,
+ 0x1E5D,
+ 0x1E5E,
+ 0x1E5F,
+ 0x1E60,
+ 0x1E61,
+ 0x1E62,
+ 0x1E63,
+ 0x1E64,
+ 0x1E65,
+ 0x1E66,
+ 0x1E67,
+ 0x1E68,
+ 0x1E69,
+ 0x1E6A,
+ 0x1E6B,
+ 0x1E6C,
+ 0x1E6D,
+ 0x1E6E,
+ 0x1E6F,
+ 0x1E70,
+ 0x1E71,
+ 0x1E72,
+ 0x1E73,
+ 0x1E74,
+ 0x1E75,
+ 0x1E76,
+ 0x1E77,
+ 0x1E78,
+ 0x1E79,
+ 0x1E7A,
+ 0x1E7B,
+ 0x1E7C,
+ 0x1E7D,
+ 0x1E7E,
+ 0x1E7F,
+ 0x1E80,
+ 0x1E81,
+ 0x1E82,
+ 0x1E83,
+ 0x1E84,
+ 0x1E85,
+ 0x1E86,
+ 0x1E87,
+ 0x1E88,
+ 0x1E89,
+ 0x1E8A,
+ 0x1E8B,
+ 0x1E8C,
+ 0x1E8D,
+ 0x1E8E,
+ 0x1E8F,
+ 0x1E90,
+ 0x1E91,
+ 0x1E92,
+ 0x1E93,
+ 0x1E94,
+ 0x1E95,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1EA1,
+ 0x1EA2,
+ 0x1EA3,
+ 0x1EA4,
+ 0x1EA5,
+ 0x1EA6,
+ 0x1EA7,
+ 0x1EA8,
+ 0x1EA9,
+ 0x1EAA,
+ 0x1EAB,
+ 0x1EAC,
+ 0x1EAD,
+ 0x1EAE,
+ 0x1EAF,
+ 0x1EB0,
+ 0x1EB1,
+ 0x1EB2,
+ 0x1EB3,
+ 0x1EB4,
+ 0x1EB5,
+ 0x1EB6,
+ 0x1EB7,
+ 0x1EB8,
+ 0x1EB9,
+ 0x1EBA,
+ 0x1EBB,
+ 0x1EBC,
+ 0x1EBD,
+ 0x1EBE,
+ 0x1EBF,
+ 0x1EC0,
+ 0x1EC1,
+ 0x1EC2,
+ 0x1EC3,
+ 0x1EC4,
+ 0x1EC5,
+ 0x1EC6,
+ 0x1EC7,
+ 0x1EC8,
+ 0x1EC9,
+ 0x1ECA,
+ 0x1ECB,
+ 0x1ECC,
+ 0x1ECD,
+ 0x1ECE,
+ 0x1ECF,
+ 0x1ED0,
+ 0x1ED1,
+ 0x1ED2,
+ 0x1ED3,
+ 0x1ED4,
+ 0x1ED5,
+ 0x1ED6,
+ 0x1ED7,
+ 0x1ED8,
+ 0x1ED9,
+ 0x1EDA,
+ 0x1EDB,
+ 0x1EDC,
+ 0x1EDD,
+ 0x1EDE,
+ 0x1EDF,
+ 0x1EE0,
+ 0x1EE1,
+ 0x1EE2,
+ 0x1EE3,
+ 0x1EE4,
+ 0x1EE5,
+ 0x1EE6,
+ 0x1EE7,
+ 0x1EE8,
+ 0x1EE9,
+ 0x1EEA,
+ 0x1EEB,
+ 0x1EEC,
+ 0x1EED,
+ 0x1EEE,
+ 0x1EEF,
+ 0x1EF0,
+ 0x1EF1,
+ 0x1EF2,
+ 0x1EF3,
+ 0x1EF4,
+ 0x1EF5,
+ 0x1EF6,
+ 0x1EF7,
+ 0x1EF8,
+ 0x1EF9,
+ 0x1EFA,
+ 0x1EFB,
+ 0x1EFC,
+ 0x1EFD,
+ 0x1EFE,
+ 0x1EFF,
+ 0x1F08,
+ 0x1F10,
+ 0x1F16,
+ 0x1F20,
+ 0x1F28,
+ 0x1F30,
+ 0x1F38,
+ 0x1F40,
+ 0x1F46,
+ 0x1F50,
+ 0x1F58,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1F7E,
+ 0x1F80,
+ 0x1F88,
+ 0x1F90,
+ 0x1F98,
+ 0x1FA0,
+ 0x1FA8,
+ 0x1FB0,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FB8,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FC8,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FD8,
+ 0x1FE0,
+ 0x1FE8,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FF8,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x210A,
+ 0x210B,
+ 0x210E,
+ 0x2110,
+ 0x2113,
+ 0x2114,
+ 0x212F,
+ 0x2130,
+ 0x2134,
+ 0x2135,
+ 0x2139,
+ 0x213A,
+ 0x213C,
+ 0x213E,
+ 0x2146,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2170,
+ 0x2180,
+ 0x2184,
+ 0x2185,
+ 0x24D0,
+ 0x24EA,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C61,
+ 0x2C62,
+ 0x2C65,
+ 0x2C67,
+ 0x2C68,
+ 0x2C69,
+ 0x2C6A,
+ 0x2C6B,
+ 0x2C6C,
+ 0x2C6D,
+ 0x2C71,
+ 0x2C72,
+ 0x2C73,
+ 0x2C75,
+ 0x2C76,
+ 0x2C7E,
+ 0x2C81,
+ 0x2C82,
+ 0x2C83,
+ 0x2C84,
+ 0x2C85,
+ 0x2C86,
+ 0x2C87,
+ 0x2C88,
+ 0x2C89,
+ 0x2C8A,
+ 0x2C8B,
+ 0x2C8C,
+ 0x2C8D,
+ 0x2C8E,
+ 0x2C8F,
+ 0x2C90,
+ 0x2C91,
+ 0x2C92,
+ 0x2C93,
+ 0x2C94,
+ 0x2C95,
+ 0x2C96,
+ 0x2C97,
+ 0x2C98,
+ 0x2C99,
+ 0x2C9A,
+ 0x2C9B,
+ 0x2C9C,
+ 0x2C9D,
+ 0x2C9E,
+ 0x2C9F,
+ 0x2CA0,
+ 0x2CA1,
+ 0x2CA2,
+ 0x2CA3,
+ 0x2CA4,
+ 0x2CA5,
+ 0x2CA6,
+ 0x2CA7,
+ 0x2CA8,
+ 0x2CA9,
+ 0x2CAA,
+ 0x2CAB,
+ 0x2CAC,
+ 0x2CAD,
+ 0x2CAE,
+ 0x2CAF,
+ 0x2CB0,
+ 0x2CB1,
+ 0x2CB2,
+ 0x2CB3,
+ 0x2CB4,
+ 0x2CB5,
+ 0x2CB6,
+ 0x2CB7,
+ 0x2CB8,
+ 0x2CB9,
+ 0x2CBA,
+ 0x2CBB,
+ 0x2CBC,
+ 0x2CBD,
+ 0x2CBE,
+ 0x2CBF,
+ 0x2CC0,
+ 0x2CC1,
+ 0x2CC2,
+ 0x2CC3,
+ 0x2CC4,
+ 0x2CC5,
+ 0x2CC6,
+ 0x2CC7,
+ 0x2CC8,
+ 0x2CC9,
+ 0x2CCA,
+ 0x2CCB,
+ 0x2CCC,
+ 0x2CCD,
+ 0x2CCE,
+ 0x2CCF,
+ 0x2CD0,
+ 0x2CD1,
+ 0x2CD2,
+ 0x2CD3,
+ 0x2CD4,
+ 0x2CD5,
+ 0x2CD6,
+ 0x2CD7,
+ 0x2CD8,
+ 0x2CD9,
+ 0x2CDA,
+ 0x2CDB,
+ 0x2CDC,
+ 0x2CDD,
+ 0x2CDE,
+ 0x2CDF,
+ 0x2CE0,
+ 0x2CE1,
+ 0x2CE2,
+ 0x2CE3,
+ 0x2CE5,
+ 0x2CEC,
+ 0x2CED,
+ 0x2CEE,
+ 0x2CEF,
+ 0x2CF3,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0xA641,
+ 0xA642,
+ 0xA643,
+ 0xA644,
+ 0xA645,
+ 0xA646,
+ 0xA647,
+ 0xA648,
+ 0xA649,
+ 0xA64A,
+ 0xA64B,
+ 0xA64C,
+ 0xA64D,
+ 0xA64E,
+ 0xA64F,
+ 0xA650,
+ 0xA651,
+ 0xA652,
+ 0xA653,
+ 0xA654,
+ 0xA655,
+ 0xA656,
+ 0xA657,
+ 0xA658,
+ 0xA659,
+ 0xA65A,
+ 0xA65B,
+ 0xA65C,
+ 0xA65D,
+ 0xA65E,
+ 0xA65F,
+ 0xA660,
+ 0xA661,
+ 0xA662,
+ 0xA663,
+ 0xA664,
+ 0xA665,
+ 0xA666,
+ 0xA667,
+ 0xA668,
+ 0xA669,
+ 0xA66A,
+ 0xA66B,
+ 0xA66C,
+ 0xA66D,
+ 0xA66E,
+ 0xA681,
+ 0xA682,
+ 0xA683,
+ 0xA684,
+ 0xA685,
+ 0xA686,
+ 0xA687,
+ 0xA688,
+ 0xA689,
+ 0xA68A,
+ 0xA68B,
+ 0xA68C,
+ 0xA68D,
+ 0xA68E,
+ 0xA68F,
+ 0xA690,
+ 0xA691,
+ 0xA692,
+ 0xA693,
+ 0xA694,
+ 0xA695,
+ 0xA696,
+ 0xA697,
+ 0xA698,
+ 0xA699,
+ 0xA69A,
+ 0xA69B,
+ 0xA69E,
+ 0xA723,
+ 0xA724,
+ 0xA725,
+ 0xA726,
+ 0xA727,
+ 0xA728,
+ 0xA729,
+ 0xA72A,
+ 0xA72B,
+ 0xA72C,
+ 0xA72D,
+ 0xA72E,
+ 0xA72F,
+ 0xA732,
+ 0xA733,
+ 0xA734,
+ 0xA735,
+ 0xA736,
+ 0xA737,
+ 0xA738,
+ 0xA739,
+ 0xA73A,
+ 0xA73B,
+ 0xA73C,
+ 0xA73D,
+ 0xA73E,
+ 0xA73F,
+ 0xA740,
+ 0xA741,
+ 0xA742,
+ 0xA743,
+ 0xA744,
+ 0xA745,
+ 0xA746,
+ 0xA747,
+ 0xA748,
+ 0xA749,
+ 0xA74A,
+ 0xA74B,
+ 0xA74C,
+ 0xA74D,
+ 0xA74E,
+ 0xA74F,
+ 0xA750,
+ 0xA751,
+ 0xA752,
+ 0xA753,
+ 0xA754,
+ 0xA755,
+ 0xA756,
+ 0xA757,
+ 0xA758,
+ 0xA759,
+ 0xA75A,
+ 0xA75B,
+ 0xA75C,
+ 0xA75D,
+ 0xA75E,
+ 0xA75F,
+ 0xA760,
+ 0xA761,
+ 0xA762,
+ 0xA763,
+ 0xA764,
+ 0xA765,
+ 0xA766,
+ 0xA767,
+ 0xA768,
+ 0xA769,
+ 0xA76A,
+ 0xA76B,
+ 0xA76C,
+ 0xA76D,
+ 0xA76E,
+ 0xA76F,
+ 0xA779,
+ 0xA77A,
+ 0xA77B,
+ 0xA77C,
+ 0xA77D,
+ 0xA77F,
+ 0xA780,
+ 0xA781,
+ 0xA782,
+ 0xA783,
+ 0xA784,
+ 0xA785,
+ 0xA786,
+ 0xA787,
+ 0xA788,
+ 0xA78C,
+ 0xA78D,
+ 0xA78E,
+ 0xA78F,
+ 0xA791,
+ 0xA792,
+ 0xA793,
+ 0xA796,
+ 0xA797,
+ 0xA798,
+ 0xA799,
+ 0xA79A,
+ 0xA79B,
+ 0xA79C,
+ 0xA79D,
+ 0xA79E,
+ 0xA79F,
+ 0xA7A0,
+ 0xA7A1,
+ 0xA7A2,
+ 0xA7A3,
+ 0xA7A4,
+ 0xA7A5,
+ 0xA7A6,
+ 0xA7A7,
+ 0xA7A8,
+ 0xA7A9,
+ 0xA7AA,
+ 0xA7F8,
+ 0xA7FB,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFF41,
+ 0xFF5B,
+ 0x10428,
+ 0x10450,
+ 0x118C0,
+ 0x118E0,
+ 0x1D41A,
+ 0x1D434,
+ 0x1D44E,
+ 0x1D455,
+ 0x1D456,
+ 0x1D468,
+ 0x1D482,
+ 0x1D49C,
+ 0x1D4B6,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D4D0,
+ 0x1D4EA,
+ 0x1D504,
+ 0x1D51E,
+ 0x1D538,
+ 0x1D552,
+ 0x1D56C,
+ 0x1D586,
+ 0x1D5A0,
+ 0x1D5BA,
+ 0x1D5D4,
+ 0x1D5EE,
+ 0x1D608,
+ 0x1D622,
+ 0x1D63C,
+ 0x1D656,
+ 0x1D670,
+ 0x1D68A,
+ 0x1D6A6,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6E2,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D71C,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D756,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D790,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CA,
+ 0x1D7CB,
+ 0x1D7CC
};
-#endif
+static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
+ 1205, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x40,
+ 0xFF,
+ 0x100,
+ 0x378,
+ 0x37A,
+ 0x380,
+ 0x384,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x560,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58B,
+ 0x58D,
+ 0x590,
+ 0x591,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F5,
+ 0x600,
+ 0x61D,
+ 0x61E,
+ 0x70E,
+ 0x70F,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x830,
+ 0x83F,
+ 0x840,
+ 0x85C,
+ 0x85E,
+ 0x85F,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9FC,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF2,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB78,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBFB,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC78,
+ 0xC80,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD76,
+ 0xD79,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF5,
+ 0xE01,
+ 0xE3B,
+ 0xE3F,
+ 0xE5C,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFBE,
+ 0xFCD,
+ 0xFCE,
+ 0xFDB,
+ 0x1000,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x137D,
+ 0x1380,
+ 0x139A,
+ 0x13A0,
+ 0x13F5,
+ 0x1400,
+ 0x169D,
+ 0x16A0,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1737,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x17F0,
+ 0x17FA,
+ 0x1800,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1940,
+ 0x1941,
+ 0x1944,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DB,
+ 0x19DE,
+ 0x1A1C,
+ 0x1A1E,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA0,
+ 0x1AAE,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B7D,
+ 0x1B80,
+ 0x1BF4,
+ 0x1BFC,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C80,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FDD,
+ 0x1FF0,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFF,
+ 0x2000,
+ 0x2028,
+ 0x202A,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20BE,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218A,
+ 0x2190,
+ 0x23FB,
+ 0x2400,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B98,
+ 0x2BBA,
+ 0x2BBD,
+ 0x2BC9,
+ 0x2BCA,
+ 0x2BD2,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CF4,
+ 0x2CF9,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D71,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E43,
+ 0x2E80,
+ 0x2E9A,
+ 0x2E9B,
+ 0x2EF4,
+ 0x2F00,
+ 0x2FD6,
+ 0x2FF0,
+ 0x2FFC,
+ 0x3000,
+ 0x3040,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x3190,
+ 0x31BB,
+ 0x31C0,
+ 0x31E4,
+ 0x31F0,
+ 0x321F,
+ 0x3220,
+ 0x32FF,
+ 0x3300,
+ 0x4DB6,
+ 0x4DC0,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F8,
+ 0xA700,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA82C,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C5,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8FC,
+ 0xA900,
+ 0xA954,
+ 0xA95F,
+ 0xA97D,
+ 0xA980,
+ 0xA9CE,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9DE,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA5C,
+ 0xAAC3,
+ 0xAADB,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xE000,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBC2,
+ 0xFBD3,
+ 0xFD40,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFE,
+ 0xFE00,
+ 0xFE1A,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE30,
+ 0xFE53,
+ 0xFE54,
+ 0xFE67,
+ 0xFE68,
+ 0xFE6C,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF01,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFE0,
+ 0xFFE7,
+ 0xFFE8,
+ 0xFFEF,
+ 0xFFF9,
+ 0xFFFE,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10100,
+ 0x10103,
+ 0x10107,
+ 0x10134,
+ 0x10137,
+ 0x1018D,
+ 0x10190,
+ 0x1019C,
+ 0x101A0,
+ 0x101A1,
+ 0x101D0,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102FC,
+ 0x10300,
+ 0x10324,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x1039F,
+ 0x103C4,
+ 0x103C8,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x1056F,
+ 0x10570,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10857,
+ 0x1089F,
+ 0x108A7,
+ 0x108B0,
+ 0x10900,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A48,
+ 0x10A50,
+ 0x10A59,
+ 0x10A60,
+ 0x10AA0,
+ 0x10AC0,
+ 0x10AE7,
+ 0x10AEB,
+ 0x10AF7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B39,
+ 0x10B56,
+ 0x10B58,
+ 0x10B73,
+ 0x10B78,
+ 0x10B92,
+ 0x10B99,
+ 0x10B9D,
+ 0x10BA9,
+ 0x10BB0,
+ 0x10C00,
+ 0x10C49,
+ 0x10E60,
+ 0x10E7F,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11070,
+ 0x1107F,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11144,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111C9,
+ 0x111CD,
+ 0x111CE,
+ 0x111D0,
+ 0x111DB,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1123E,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115CA,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B46,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B5B,
+ 0x16B62,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1DE,
+ 0x1D200,
+ 0x1D246,
+ 0x1D300,
+ 0x1D357,
+ 0x1D360,
+ 0x1D372,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1EEF0,
+ 0x1EEF2,
+ 0x1F000,
+ 0x1F02C,
+ 0x1F030,
+ 0x1F094,
+ 0x1F0A0,
+ 0x1F0AF,
+ 0x1F0B1,
+ 0x1F0C0,
+ 0x1F0C1,
+ 0x1F0D0,
+ 0x1F0D1,
+ 0x1F0F6,
+ 0x1F100,
+ 0x1F10D,
+ 0x1F110,
+ 0x1F12F,
+ 0x1F130,
+ 0x1F16C,
+ 0x1F170,
+ 0x1F19B,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23B,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F300,
+ 0x1F32D,
+ 0x1F330,
+ 0x1F37E,
+ 0x1F380,
+ 0x1F3CF,
+ 0x1F3D4,
+ 0x1F3F8,
+ 0x1F400,
+ 0x1F4FF,
+ 0x1F500,
+ 0x1F54B,
+ 0x1F550,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F5A4,
+ 0x1F5A5,
+ 0x1F643,
+ 0x1F645,
+ 0x1F6D0,
+ 0x1F6E0,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6F4,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xF0000,
+ 0xFFFFE,
+ 0x100000,
+ 0x10FFFE
+};
-#ifndef PERL_IN_XSUB_RE
+static const UV XPosixPunct_invlist[] = { /* for EBCDIC 1047 */
+ 309, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x4B,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6B,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xB3,
+ 0xB4,
+ 0xB5,
+ 0xB7,
+ 0xBD,
+ 0xBE,
+ 0xC0,
+ 0xC1,
+ 0xD0,
+ 0xD1,
+ 0xE0,
+ 0xE1,
+ 0x37E,
+ 0x37F,
+ 0x387,
+ 0x388,
+ 0x55A,
+ 0x560,
+ 0x589,
+ 0x58B,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5F3,
+ 0x5F5,
+ 0x609,
+ 0x60B,
+ 0x60C,
+ 0x60E,
+ 0x61B,
+ 0x61C,
+ 0x61E,
+ 0x620,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x700,
+ 0x70E,
+ 0x7F7,
+ 0x7FA,
+ 0x830,
+ 0x83F,
+ 0x85E,
+ 0x85F,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0xAF0,
+ 0xAF1,
+ 0xDF4,
+ 0xDF5,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE5C,
+ 0xF04,
+ 0xF13,
+ 0xF14,
+ 0xF15,
+ 0xF3A,
+ 0xF3E,
+ 0xF85,
+ 0xF86,
+ 0xFD0,
+ 0xFD5,
+ 0xFD9,
+ 0xFDB,
+ 0x104A,
+ 0x1050,
+ 0x10FB,
+ 0x10FC,
+ 0x1360,
+ 0x1369,
+ 0x1400,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x169B,
+ 0x169D,
+ 0x16EB,
+ 0x16EE,
+ 0x1735,
+ 0x1737,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DB,
+ 0x1800,
+ 0x180B,
+ 0x1944,
+ 0x1946,
+ 0x1A1E,
+ 0x1A20,
+ 0x1AA0,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AAE,
+ 0x1B5A,
+ 0x1B61,
+ 0x1BFC,
+ 0x1C00,
+ 0x1C3B,
+ 0x1C40,
+ 0x1C7E,
+ 0x1C80,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD3,
+ 0x1CD4,
+ 0x2010,
+ 0x2028,
+ 0x2030,
+ 0x2044,
+ 0x2045,
+ 0x2052,
+ 0x2053,
+ 0x205F,
+ 0x207D,
+ 0x207F,
+ 0x208D,
+ 0x208F,
+ 0x2308,
+ 0x230C,
+ 0x2329,
+ 0x232B,
+ 0x2768,
+ 0x2776,
+ 0x27C5,
+ 0x27C7,
+ 0x27E6,
+ 0x27F0,
+ 0x2983,
+ 0x2999,
+ 0x29D8,
+ 0x29DC,
+ 0x29FC,
+ 0x29FE,
+ 0x2CF9,
+ 0x2CFD,
+ 0x2CFE,
+ 0x2D00,
+ 0x2D70,
+ 0x2D71,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x2E43,
+ 0x3001,
+ 0x3004,
+ 0x3008,
+ 0x3012,
+ 0x3014,
+ 0x3020,
+ 0x3030,
+ 0x3031,
+ 0x303D,
+ 0x303E,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA6F2,
+ 0xA6F8,
+ 0xA874,
+ 0xA878,
+ 0xA8CE,
+ 0xA8D0,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA92E,
+ 0xA930,
+ 0xA95F,
+ 0xA960,
+ 0xA9C1,
+ 0xA9CE,
+ 0xA9DE,
+ 0xA9E0,
+ 0xAA5C,
+ 0xAA60,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xABEB,
+ 0xABEC,
+ 0xFD3E,
+ 0xFD40,
+ 0xFE10,
+ 0xFE1A,
+ 0xFE30,
+ 0xFE53,
+ 0xFE54,
+ 0xFE62,
+ 0xFE63,
+ 0xFE64,
+ 0xFE68,
+ 0xFE69,
+ 0xFE6A,
+ 0xFE6C,
+ 0xFF01,
+ 0xFF04,
+ 0xFF05,
+ 0xFF0B,
+ 0xFF0C,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF1C,
+ 0xFF1F,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3E,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF5B,
+ 0xFF5C,
+ 0xFF5D,
+ 0xFF5E,
+ 0xFF5F,
+ 0xFF66,
+ 0x10100,
+ 0x10103,
+ 0x1039F,
+ 0x103A0,
+ 0x103D0,
+ 0x103D1,
+ 0x1056F,
+ 0x10570,
+ 0x10857,
+ 0x10858,
+ 0x1091F,
+ 0x10920,
+ 0x1093F,
+ 0x10940,
+ 0x10A50,
+ 0x10A59,
+ 0x10A7F,
+ 0x10A80,
+ 0x10AF0,
+ 0x10AF7,
+ 0x10B39,
+ 0x10B40,
+ 0x10B99,
+ 0x10B9D,
+ 0x11047,
+ 0x1104E,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x110C2,
+ 0x11140,
+ 0x11144,
+ 0x11174,
+ 0x11176,
+ 0x111C5,
+ 0x111C9,
+ 0x111CD,
+ 0x111CE,
+ 0x11238,
+ 0x1123E,
+ 0x114C6,
+ 0x114C7,
+ 0x115C1,
+ 0x115CA,
+ 0x11641,
+ 0x11644,
+ 0x12470,
+ 0x12475,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AF5,
+ 0x16AF6,
+ 0x16B37,
+ 0x16B3C,
+ 0x16B44,
+ 0x16B45,
+ 0x1BC9F,
+ 0x1BCA0
+};
-static const UV XPosixGraph_invlist[] = {
- 1089, /* Number of elements */
+static const UV XPosixSpace_invlist[] = { /* for EBCDIC 1047 */
+ 23, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 33,
- 127,
- 161,
- 888,
- 890,
- 895,
- 900,
- 907,
- 908,
- 909,
- 910,
- 930,
- 931,
- 1320,
- 1329,
- 1367,
- 1369,
- 1376,
- 1377,
- 1416,
- 1417,
- 1419,
- 1423,
- 1424,
- 1425,
- 1480,
- 1488,
- 1515,
- 1520,
- 1525,
- 1536,
- 1541,
- 1542,
- 1565,
- 1566,
- 1806,
- 1807,
- 1867,
- 1869,
- 1970,
- 1984,
- 2043,
- 2048,
- 2094,
- 2096,
- 2111,
- 2112,
- 2140,
- 2142,
- 2143,
- 2208,
- 2209,
- 2210,
- 2221,
- 2276,
- 2303,
- 2304,
- 2424,
- 2425,
- 2432,
- 2433,
- 2436,
- 2437,
- 2445,
- 2447,
- 2449,
- 2451,
- 2473,
- 2474,
- 2481,
- 2482,
- 2483,
- 2486,
- 2490,
- 2492,
- 2501,
- 2503,
- 2505,
- 2507,
- 2511,
- 2519,
- 2520,
- 2524,
- 2526,
- 2527,
- 2532,
- 2534,
- 2556,
- 2561,
- 2564,
- 2565,
- 2571,
- 2575,
- 2577,
- 2579,
- 2601,
- 2602,
- 2609,
- 2610,
- 2612,
- 2613,
- 2615,
- 2616,
- 2618,
- 2620,
- 2621,
- 2622,
- 2627,
- 2631,
- 2633,
- 2635,
- 2638,
- 2641,
- 2642,
- 2649,
- 2653,
- 2654,
- 2655,
- 2662,
- 2678,
- 2689,
- 2692,
- 2693,
- 2702,
- 2703,
- 2706,
- 2707,
- 2729,
- 2730,
- 2737,
- 2738,
- 2740,
- 2741,
- 2746,
- 2748,
- 2758,
- 2759,
- 2762,
- 2763,
- 2766,
- 2768,
- 2769,
- 2784,
- 2788,
- 2790,
- 2802,
- 2817,
- 2820,
- 2821,
- 2829,
- 2831,
- 2833,
- 2835,
- 2857,
- 2858,
- 2865,
- 2866,
- 2868,
- 2869,
- 2874,
- 2876,
- 2885,
- 2887,
- 2889,
- 2891,
- 2894,
- 2902,
- 2904,
- 2908,
- 2910,
- 2911,
- 2916,
- 2918,
- 2936,
- 2946,
- 2948,
- 2949,
- 2955,
- 2958,
- 2961,
- 2962,
- 2966,
- 2969,
- 2971,
- 2972,
- 2973,
- 2974,
- 2976,
- 2979,
- 2981,
- 2984,
- 2987,
- 2990,
- 3002,
- 3006,
- 3011,
- 3014,
- 3017,
- 3018,
- 3022,
- 3024,
- 3025,
- 3031,
- 3032,
- 3046,
- 3067,
- 3073,
- 3076,
- 3077,
- 3085,
- 3086,
- 3089,
- 3090,
- 3113,
- 3114,
- 3124,
- 3125,
- 3130,
- 3133,
- 3141,
- 3142,
- 3145,
- 3146,
- 3150,
- 3157,
- 3159,
- 3160,
- 3162,
- 3168,
- 3172,
- 3174,
- 3184,
- 3192,
- 3200,
- 3202,
- 3204,
- 3205,
- 3213,
- 3214,
- 3217,
- 3218,
- 3241,
- 3242,
- 3252,
- 3253,
- 3258,
- 3260,
- 3269,
- 3270,
- 3273,
- 3274,
- 3278,
- 3285,
- 3287,
- 3294,
- 3295,
- 3296,
- 3300,
- 3302,
- 3312,
- 3313,
- 3315,
- 3330,
- 3332,
- 3333,
- 3341,
- 3342,
- 3345,
- 3346,
- 3387,
- 3389,
- 3397,
- 3398,
- 3401,
- 3402,
- 3407,
- 3415,
- 3416,
- 3424,
- 3428,
- 3430,
- 3446,
- 3449,
- 3456,
- 3458,
- 3460,
- 3461,
- 3479,
- 3482,
- 3506,
- 3507,
- 3516,
- 3517,
- 3518,
- 3520,
- 3527,
- 3530,
- 3531,
- 3535,
- 3541,
- 3542,
- 3543,
- 3544,
- 3552,
- 3570,
- 3573,
- 3585,
- 3643,
- 3647,
- 3676,
- 3713,
- 3715,
- 3716,
- 3717,
- 3719,
- 3721,
- 3722,
- 3723,
- 3725,
- 3726,
- 3732,
- 3736,
- 3737,
- 3744,
- 3745,
- 3748,
- 3749,
- 3750,
- 3751,
- 3752,
- 3754,
- 3756,
- 3757,
- 3770,
- 3771,
- 3774,
- 3776,
- 3781,
- 3782,
- 3783,
- 3784,
- 3790,
- 3792,
- 3802,
- 3804,
- 3808,
- 3840,
- 3912,
- 3913,
- 3949,
- 3953,
- 3992,
- 3993,
- 4029,
- 4030,
- 4045,
- 4046,
- 4059,
- 4096,
- 4294,
- 4295,
- 4296,
- 4301,
- 4302,
- 4304,
- 4681,
- 4682,
- 4686,
- 4688,
- 4695,
- 4696,
- 4697,
- 4698,
- 4702,
- 4704,
- 4745,
- 4746,
- 4750,
- 4752,
- 4785,
- 4786,
- 4790,
- 4792,
- 4799,
- 4800,
- 4801,
- 4802,
- 4806,
- 4808,
- 4823,
- 4824,
- 4881,
- 4882,
- 4886,
- 4888,
- 4955,
- 4957,
- 4989,
- 4992,
- 5018,
- 5024,
- 5109,
- 5120,
- 5760,
- 5761,
- 5789,
- 5792,
- 5873,
- 5888,
- 5901,
- 5902,
- 5909,
- 5920,
- 5943,
- 5952,
- 5972,
- 5984,
- 5997,
- 5998,
- 6001,
- 6002,
- 6004,
- 6016,
- 6110,
- 6112,
- 6122,
- 6128,
- 6138,
- 6144,
- 6159,
- 6160,
- 6170,
- 6176,
- 6264,
- 6272,
- 6315,
- 6320,
- 6390,
- 6400,
- 6429,
- 6432,
- 6444,
- 6448,
- 6460,
- 6464,
- 6465,
- 6468,
- 6510,
- 6512,
- 6517,
- 6528,
- 6572,
- 6576,
- 6602,
- 6608,
- 6619,
- 6622,
- 6684,
- 6686,
- 6751,
- 6752,
- 6781,
- 6783,
- 6794,
- 6800,
- 6810,
- 6816,
- 6830,
- 6912,
- 6988,
- 6992,
- 7037,
- 7040,
- 7156,
- 7164,
- 7224,
- 7227,
- 7242,
- 7245,
- 7296,
- 7360,
- 7368,
- 7376,
- 7415,
- 7424,
- 7655,
- 7676,
- 7958,
- 7960,
- 7966,
- 7968,
- 8006,
- 8008,
- 8014,
- 8016,
- 8024,
- 8025,
- 8026,
- 8027,
- 8028,
- 8029,
- 8030,
- 8031,
- 8062,
- 8064,
- 8117,
- 8118,
- 8133,
- 8134,
- 8148,
- 8150,
- 8156,
- 8157,
- 8176,
- 8178,
- 8181,
- 8182,
- 8191,
- 8203,
- 8232,
- 8234,
- 8239,
- 8240,
- 8287,
- 8288,
- 8293,
- 8294,
- 8306,
- 8308,
- 8335,
- 8336,
- 8349,
- 8352,
- 8379,
- 8400,
- 8433,
- 8448,
- 8586,
- 8592,
- 9204,
- 9216,
- 9255,
- 9280,
- 9291,
- 9312,
- 9984,
- 9985,
- 11085,
- 11088,
- 11098,
- 11264,
- 11311,
- 11312,
- 11359,
- 11360,
- 11508,
- 11513,
- 11558,
- 11559,
- 11560,
- 11565,
- 11566,
- 11568,
- 11624,
- 11631,
- 11633,
- 11647,
- 11671,
- 11680,
- 11687,
- 11688,
- 11695,
- 11696,
- 11703,
- 11704,
- 11711,
- 11712,
- 11719,
- 11720,
- 11727,
- 11728,
- 11735,
- 11736,
- 11743,
- 11744,
- 11836,
- 11904,
- 11930,
- 11931,
- 12020,
- 12032,
- 12246,
- 12272,
- 12284,
- 12289,
- 12352,
- 12353,
- 12439,
- 12441,
- 12544,
- 12549,
- 12590,
- 12593,
- 12687,
- 12688,
- 12731,
- 12736,
- 12772,
- 12784,
- 12831,
- 12832,
- 13055,
- 13056,
- 19894,
- 19904,
- 40909,
- 40960,
- 42125,
- 42128,
- 42183,
- 42192,
- 42540,
- 42560,
- 42648,
- 42655,
- 42744,
- 42752,
- 42895,
- 42896,
- 42900,
- 42912,
- 42923,
- 43000,
- 43052,
- 43056,
- 43066,
- 43072,
- 43128,
- 43136,
- 43205,
- 43214,
- 43226,
- 43232,
- 43260,
- 43264,
- 43348,
- 43359,
- 43389,
- 43392,
- 43470,
- 43471,
- 43482,
- 43486,
- 43488,
- 43520,
- 43575,
- 43584,
- 43598,
- 43600,
- 43610,
- 43612,
- 43644,
- 43648,
- 43715,
- 43739,
- 43767,
- 43777,
- 43783,
- 43785,
- 43791,
- 43793,
- 43799,
- 43808,
- 43815,
- 43816,
- 43823,
- 43968,
- 44014,
- 44016,
- 44026,
- 44032,
- 55204,
- 55216,
- 55239,
- 55243,
- 55292,
- 57344,
- 64110,
- 64112,
- 64218,
- 64256,
- 64263,
- 64275,
- 64280,
- 64285,
- 64311,
- 64312,
- 64317,
- 64318,
- 64319,
- 64320,
- 64322,
- 64323,
- 64325,
- 64326,
- 64450,
- 64467,
- 64832,
- 64848,
- 64912,
- 64914,
- 64968,
- 65008,
- 65022,
- 65024,
- 65050,
- 65056,
- 65063,
- 65072,
- 65107,
- 65108,
- 65127,
- 65128,
- 65132,
- 65136,
- 65141,
- 65142,
- 65277,
- 65279,
- 65280,
- 65281,
- 65471,
- 65474,
- 65480,
- 65482,
- 65488,
- 65490,
- 65496,
- 65498,
- 65501,
- 65504,
- 65511,
- 65512,
- 65519,
- 65529,
- 65534,
- 65536,
- 65548,
- 65549,
- 65575,
- 65576,
- 65595,
- 65596,
- 65598,
- 65599,
- 65614,
- 65616,
- 65630,
- 65664,
- 65787,
- 65792,
- 65795,
- 65799,
- 65844,
- 65847,
- 65931,
- 65936,
- 65948,
- 66000,
- 66046,
- 66176,
- 66205,
- 66208,
- 66257,
- 66304,
- 66335,
- 66336,
- 66340,
- 66352,
- 66379,
- 66432,
- 66462,
- 66463,
- 66500,
- 66504,
- 66518,
- 66560,
- 66718,
- 66720,
- 66730,
- 67584,
- 67590,
- 67592,
- 67593,
- 67594,
- 67638,
- 67639,
- 67641,
- 67644,
- 67645,
- 67647,
- 67670,
- 67671,
- 67680,
- 67840,
- 67868,
- 67871,
- 67898,
- 67903,
- 67904,
- 67968,
- 68024,
- 68030,
- 68032,
- 68096,
- 68100,
- 68101,
- 68103,
- 68108,
- 68116,
- 68117,
- 68120,
- 68121,
- 68148,
- 68152,
- 68155,
- 68159,
- 68168,
- 68176,
- 68185,
- 68192,
- 68224,
- 68352,
- 68406,
- 68409,
- 68438,
- 68440,
- 68467,
- 68472,
- 68480,
- 68608,
- 68681,
- 69216,
- 69247,
- 69632,
- 69710,
- 69714,
- 69744,
- 69760,
- 69826,
- 69840,
- 69865,
- 69872,
- 69882,
- 69888,
- 69941,
- 69942,
- 69956,
- 70016,
- 70089,
- 70096,
- 70106,
- 71296,
- 71352,
- 71360,
- 71370,
- 73728,
- 74607,
- 74752,
- 74851,
- 74864,
- 74868,
- 77824,
- 78895,
- 92160,
- 92729,
- 93952,
- 94021,
- 94032,
- 94079,
- 94095,
- 94112,
- 110592,
- 110594,
- 118784,
- 119030,
- 119040,
- 119079,
- 119081,
- 119262,
- 119296,
- 119366,
- 119552,
- 119639,
- 119648,
- 119666,
- 119808,
- 119893,
- 119894,
- 119965,
- 119966,
- 119968,
- 119970,
- 119971,
- 119973,
- 119975,
- 119977,
- 119981,
- 119982,
- 119994,
- 119995,
- 119996,
- 119997,
- 120004,
- 120005,
- 120070,
- 120071,
- 120075,
- 120077,
- 120085,
- 120086,
- 120093,
- 120094,
- 120122,
- 120123,
- 120127,
- 120128,
- 120133,
- 120134,
- 120135,
- 120138,
- 120145,
- 120146,
- 120486,
- 120488,
- 120780,
- 120782,
- 120832,
- 126464,
- 126468,
- 126469,
- 126496,
- 126497,
- 126499,
- 126500,
- 126501,
- 126503,
- 126504,
- 126505,
- 126515,
- 126516,
- 126520,
- 126521,
- 126522,
- 126523,
- 126524,
- 126530,
- 126531,
- 126535,
- 126536,
- 126537,
- 126538,
- 126539,
- 126540,
- 126541,
- 126544,
- 126545,
- 126547,
- 126548,
- 126549,
- 126551,
- 126552,
- 126553,
- 126554,
- 126555,
- 126556,
- 126557,
- 126558,
- 126559,
- 126560,
- 126561,
- 126563,
- 126564,
- 126565,
- 126567,
- 126571,
- 126572,
- 126579,
- 126580,
- 126584,
- 126585,
- 126589,
- 126590,
- 126591,
- 126592,
- 126602,
- 126603,
- 126620,
- 126625,
- 126628,
- 126629,
- 126634,
- 126635,
- 126652,
- 126704,
- 126706,
- 126976,
- 127020,
- 127024,
- 127124,
- 127136,
- 127151,
- 127153,
- 127167,
- 127169,
- 127184,
- 127185,
- 127200,
- 127232,
- 127243,
- 127248,
- 127279,
- 127280,
- 127340,
- 127344,
- 127387,
- 127462,
- 127491,
- 127504,
- 127547,
- 127552,
- 127561,
- 127568,
- 127570,
- 127744,
- 127777,
- 127792,
- 127798,
- 127799,
- 127869,
- 127872,
- 127892,
- 127904,
- 127941,
- 127942,
- 127947,
- 127968,
- 127985,
- 128000,
- 128063,
- 128064,
- 128065,
- 128066,
- 128248,
- 128249,
- 128253,
- 128256,
- 128318,
- 128320,
- 128324,
- 128336,
- 128360,
- 128507,
- 128577,
- 128581,
- 128592,
- 128640,
- 128710,
- 128768,
- 128884,
- 131072,
- 173783,
- 173824,
- 177973,
- 177984,
- 178206,
- 194560,
- 195102,
- 917505,
- 917506,
- 917536,
- 917632,
- 917760,
- 918000,
- 983040,
- 1048574,
- 1048576,
- 1114110
+ 0x0,
+ 0x5,
+ 0x6,
+ 0xB,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x40,
+ 0x42,
+ 0x1680,
+ 0x1681,
+ 0x2000,
+ 0x200B,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x3000,
+ 0x3001
};
-#endif
+static const UV XPosixUpper_invlist[] = { /* for EBCDIC 1047 */
+ 1273, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x62,
+ 0x6A,
+ 0x71,
+ 0x79,
+ 0x80,
+ 0x81,
+ 0x9E,
+ 0x9F,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xAF,
+ 0xBA,
+ 0xBB,
+ 0xC1,
+ 0xCA,
+ 0xD1,
+ 0xDA,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x101,
+ 0x102,
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x106,
+ 0x107,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x10E,
+ 0x10F,
+ 0x110,
+ 0x111,
+ 0x112,
+ 0x113,
+ 0x114,
+ 0x115,
+ 0x116,
+ 0x117,
+ 0x118,
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x11C,
+ 0x11D,
+ 0x11E,
+ 0x11F,
+ 0x120,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x124,
+ 0x125,
+ 0x126,
+ 0x127,
+ 0x128,
+ 0x129,
+ 0x12A,
+ 0x12B,
+ 0x12C,
+ 0x12D,
+ 0x12E,
+ 0x12F,
+ 0x130,
+ 0x131,
+ 0x132,
+ 0x133,
+ 0x134,
+ 0x135,
+ 0x136,
+ 0x137,
+ 0x139,
+ 0x13A,
+ 0x13B,
+ 0x13C,
+ 0x13D,
+ 0x13E,
+ 0x13F,
+ 0x140,
+ 0x141,
+ 0x142,
+ 0x143,
+ 0x144,
+ 0x145,
+ 0x146,
+ 0x147,
+ 0x148,
+ 0x14A,
+ 0x14B,
+ 0x14C,
+ 0x14D,
+ 0x14E,
+ 0x14F,
+ 0x150,
+ 0x151,
+ 0x152,
+ 0x153,
+ 0x154,
+ 0x155,
+ 0x156,
+ 0x157,
+ 0x158,
+ 0x159,
+ 0x15A,
+ 0x15B,
+ 0x15C,
+ 0x15D,
+ 0x15E,
+ 0x15F,
+ 0x160,
+ 0x161,
+ 0x162,
+ 0x163,
+ 0x164,
+ 0x165,
+ 0x166,
+ 0x167,
+ 0x168,
+ 0x169,
+ 0x16A,
+ 0x16B,
+ 0x16C,
+ 0x16D,
+ 0x16E,
+ 0x16F,
+ 0x170,
+ 0x171,
+ 0x172,
+ 0x173,
+ 0x174,
+ 0x175,
+ 0x176,
+ 0x177,
+ 0x178,
+ 0x17A,
+ 0x17B,
+ 0x17C,
+ 0x17D,
+ 0x17E,
+ 0x181,
+ 0x183,
+ 0x184,
+ 0x185,
+ 0x186,
+ 0x188,
+ 0x189,
+ 0x18C,
+ 0x18E,
+ 0x192,
+ 0x193,
+ 0x195,
+ 0x196,
+ 0x199,
+ 0x19C,
+ 0x19E,
+ 0x19F,
+ 0x1A1,
+ 0x1A2,
+ 0x1A3,
+ 0x1A4,
+ 0x1A5,
+ 0x1A6,
+ 0x1A8,
+ 0x1A9,
+ 0x1AA,
+ 0x1AC,
+ 0x1AD,
+ 0x1AE,
+ 0x1B0,
+ 0x1B1,
+ 0x1B4,
+ 0x1B5,
+ 0x1B6,
+ 0x1B7,
+ 0x1B9,
+ 0x1BC,
+ 0x1BD,
+ 0x1C4,
+ 0x1C5,
+ 0x1C7,
+ 0x1C8,
+ 0x1CA,
+ 0x1CB,
+ 0x1CD,
+ 0x1CE,
+ 0x1CF,
+ 0x1D0,
+ 0x1D1,
+ 0x1D2,
+ 0x1D3,
+ 0x1D4,
+ 0x1D5,
+ 0x1D6,
+ 0x1D7,
+ 0x1D8,
+ 0x1D9,
+ 0x1DA,
+ 0x1DB,
+ 0x1DC,
+ 0x1DE,
+ 0x1DF,
+ 0x1E0,
+ 0x1E1,
+ 0x1E2,
+ 0x1E3,
+ 0x1E4,
+ 0x1E5,
+ 0x1E6,
+ 0x1E7,
+ 0x1E8,
+ 0x1E9,
+ 0x1EA,
+ 0x1EB,
+ 0x1EC,
+ 0x1ED,
+ 0x1EE,
+ 0x1EF,
+ 0x1F1,
+ 0x1F2,
+ 0x1F4,
+ 0x1F5,
+ 0x1F6,
+ 0x1F9,
+ 0x1FA,
+ 0x1FB,
+ 0x1FC,
+ 0x1FD,
+ 0x1FE,
+ 0x1FF,
+ 0x200,
+ 0x201,
+ 0x202,
+ 0x203,
+ 0x204,
+ 0x205,
+ 0x206,
+ 0x207,
+ 0x208,
+ 0x209,
+ 0x20A,
+ 0x20B,
+ 0x20C,
+ 0x20D,
+ 0x20E,
+ 0x20F,
+ 0x210,
+ 0x211,
+ 0x212,
+ 0x213,
+ 0x214,
+ 0x215,
+ 0x216,
+ 0x217,
+ 0x218,
+ 0x219,
+ 0x21A,
+ 0x21B,
+ 0x21C,
+ 0x21D,
+ 0x21E,
+ 0x21F,
+ 0x220,
+ 0x221,
+ 0x222,
+ 0x223,
+ 0x224,
+ 0x225,
+ 0x226,
+ 0x227,
+ 0x228,
+ 0x229,
+ 0x22A,
+ 0x22B,
+ 0x22C,
+ 0x22D,
+ 0x22E,
+ 0x22F,
+ 0x230,
+ 0x231,
+ 0x232,
+ 0x233,
+ 0x23A,
+ 0x23C,
+ 0x23D,
+ 0x23F,
+ 0x241,
+ 0x242,
+ 0x243,
+ 0x247,
+ 0x248,
+ 0x249,
+ 0x24A,
+ 0x24B,
+ 0x24C,
+ 0x24D,
+ 0x24E,
+ 0x24F,
+ 0x370,
+ 0x371,
+ 0x372,
+ 0x373,
+ 0x376,
+ 0x377,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x390,
+ 0x391,
+ 0x3A2,
+ 0x3A3,
+ 0x3AC,
+ 0x3CF,
+ 0x3D0,
+ 0x3D2,
+ 0x3D5,
+ 0x3D8,
+ 0x3D9,
+ 0x3DA,
+ 0x3DB,
+ 0x3DC,
+ 0x3DD,
+ 0x3DE,
+ 0x3DF,
+ 0x3E0,
+ 0x3E1,
+ 0x3E2,
+ 0x3E3,
+ 0x3E4,
+ 0x3E5,
+ 0x3E6,
+ 0x3E7,
+ 0x3E8,
+ 0x3E9,
+ 0x3EA,
+ 0x3EB,
+ 0x3EC,
+ 0x3ED,
+ 0x3EE,
+ 0x3EF,
+ 0x3F4,
+ 0x3F5,
+ 0x3F7,
+ 0x3F8,
+ 0x3F9,
+ 0x3FB,
+ 0x3FD,
+ 0x430,
+ 0x460,
+ 0x461,
+ 0x462,
+ 0x463,
+ 0x464,
+ 0x465,
+ 0x466,
+ 0x467,
+ 0x468,
+ 0x469,
+ 0x46A,
+ 0x46B,
+ 0x46C,
+ 0x46D,
+ 0x46E,
+ 0x46F,
+ 0x470,
+ 0x471,
+ 0x472,
+ 0x473,
+ 0x474,
+ 0x475,
+ 0x476,
+ 0x477,
+ 0x478,
+ 0x479,
+ 0x47A,
+ 0x47B,
+ 0x47C,
+ 0x47D,
+ 0x47E,
+ 0x47F,
+ 0x480,
+ 0x481,
+ 0x48A,
+ 0x48B,
+ 0x48C,
+ 0x48D,
+ 0x48E,
+ 0x48F,
+ 0x490,
+ 0x491,
+ 0x492,
+ 0x493,
+ 0x494,
+ 0x495,
+ 0x496,
+ 0x497,
+ 0x498,
+ 0x499,
+ 0x49A,
+ 0x49B,
+ 0x49C,
+ 0x49D,
+ 0x49E,
+ 0x49F,
+ 0x4A0,
+ 0x4A1,
+ 0x4A2,
+ 0x4A3,
+ 0x4A4,
+ 0x4A5,
+ 0x4A6,
+ 0x4A7,
+ 0x4A8,
+ 0x4A9,
+ 0x4AA,
+ 0x4AB,
+ 0x4AC,
+ 0x4AD,
+ 0x4AE,
+ 0x4AF,
+ 0x4B0,
+ 0x4B1,
+ 0x4B2,
+ 0x4B3,
+ 0x4B4,
+ 0x4B5,
+ 0x4B6,
+ 0x4B7,
+ 0x4B8,
+ 0x4B9,
+ 0x4BA,
+ 0x4BB,
+ 0x4BC,
+ 0x4BD,
+ 0x4BE,
+ 0x4BF,
+ 0x4C0,
+ 0x4C2,
+ 0x4C3,
+ 0x4C4,
+ 0x4C5,
+ 0x4C6,
+ 0x4C7,
+ 0x4C8,
+ 0x4C9,
+ 0x4CA,
+ 0x4CB,
+ 0x4CC,
+ 0x4CD,
+ 0x4CE,
+ 0x4D0,
+ 0x4D1,
+ 0x4D2,
+ 0x4D3,
+ 0x4D4,
+ 0x4D5,
+ 0x4D6,
+ 0x4D7,
+ 0x4D8,
+ 0x4D9,
+ 0x4DA,
+ 0x4DB,
+ 0x4DC,
+ 0x4DD,
+ 0x4DE,
+ 0x4DF,
+ 0x4E0,
+ 0x4E1,
+ 0x4E2,
+ 0x4E3,
+ 0x4E4,
+ 0x4E5,
+ 0x4E6,
+ 0x4E7,
+ 0x4E8,
+ 0x4E9,
+ 0x4EA,
+ 0x4EB,
+ 0x4EC,
+ 0x4ED,
+ 0x4EE,
+ 0x4EF,
+ 0x4F0,
+ 0x4F1,
+ 0x4F2,
+ 0x4F3,
+ 0x4F4,
+ 0x4F5,
+ 0x4F6,
+ 0x4F7,
+ 0x4F8,
+ 0x4F9,
+ 0x4FA,
+ 0x4FB,
+ 0x4FC,
+ 0x4FD,
+ 0x4FE,
+ 0x4FF,
+ 0x500,
+ 0x501,
+ 0x502,
+ 0x503,
+ 0x504,
+ 0x505,
+ 0x506,
+ 0x507,
+ 0x508,
+ 0x509,
+ 0x50A,
+ 0x50B,
+ 0x50C,
+ 0x50D,
+ 0x50E,
+ 0x50F,
+ 0x510,
+ 0x511,
+ 0x512,
+ 0x513,
+ 0x514,
+ 0x515,
+ 0x516,
+ 0x517,
+ 0x518,
+ 0x519,
+ 0x51A,
+ 0x51B,
+ 0x51C,
+ 0x51D,
+ 0x51E,
+ 0x51F,
+ 0x520,
+ 0x521,
+ 0x522,
+ 0x523,
+ 0x524,
+ 0x525,
+ 0x526,
+ 0x527,
+ 0x528,
+ 0x529,
+ 0x52A,
+ 0x52B,
+ 0x52C,
+ 0x52D,
+ 0x52E,
+ 0x52F,
+ 0x531,
+ 0x557,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x1E00,
+ 0x1E01,
+ 0x1E02,
+ 0x1E03,
+ 0x1E04,
+ 0x1E05,
+ 0x1E06,
+ 0x1E07,
+ 0x1E08,
+ 0x1E09,
+ 0x1E0A,
+ 0x1E0B,
+ 0x1E0C,
+ 0x1E0D,
+ 0x1E0E,
+ 0x1E0F,
+ 0x1E10,
+ 0x1E11,
+ 0x1E12,
+ 0x1E13,
+ 0x1E14,
+ 0x1E15,
+ 0x1E16,
+ 0x1E17,
+ 0x1E18,
+ 0x1E19,
+ 0x1E1A,
+ 0x1E1B,
+ 0x1E1C,
+ 0x1E1D,
+ 0x1E1E,
+ 0x1E1F,
+ 0x1E20,
+ 0x1E21,
+ 0x1E22,
+ 0x1E23,
+ 0x1E24,
+ 0x1E25,
+ 0x1E26,
+ 0x1E27,
+ 0x1E28,
+ 0x1E29,
+ 0x1E2A,
+ 0x1E2B,
+ 0x1E2C,
+ 0x1E2D,
+ 0x1E2E,
+ 0x1E2F,
+ 0x1E30,
+ 0x1E31,
+ 0x1E32,
+ 0x1E33,
+ 0x1E34,
+ 0x1E35,
+ 0x1E36,
+ 0x1E37,
+ 0x1E38,
+ 0x1E39,
+ 0x1E3A,
+ 0x1E3B,
+ 0x1E3C,
+ 0x1E3D,
+ 0x1E3E,
+ 0x1E3F,
+ 0x1E40,
+ 0x1E41,
+ 0x1E42,
+ 0x1E43,
+ 0x1E44,
+ 0x1E45,
+ 0x1E46,
+ 0x1E47,
+ 0x1E48,
+ 0x1E49,
+ 0x1E4A,
+ 0x1E4B,
+ 0x1E4C,
+ 0x1E4D,
+ 0x1E4E,
+ 0x1E4F,
+ 0x1E50,
+ 0x1E51,
+ 0x1E52,
+ 0x1E53,
+ 0x1E54,
+ 0x1E55,
+ 0x1E56,
+ 0x1E57,
+ 0x1E58,
+ 0x1E59,
+ 0x1E5A,
+ 0x1E5B,
+ 0x1E5C,
+ 0x1E5D,
+ 0x1E5E,
+ 0x1E5F,
+ 0x1E60,
+ 0x1E61,
+ 0x1E62,
+ 0x1E63,
+ 0x1E64,
+ 0x1E65,
+ 0x1E66,
+ 0x1E67,
+ 0x1E68,
+ 0x1E69,
+ 0x1E6A,
+ 0x1E6B,
+ 0x1E6C,
+ 0x1E6D,
+ 0x1E6E,
+ 0x1E6F,
+ 0x1E70,
+ 0x1E71,
+ 0x1E72,
+ 0x1E73,
+ 0x1E74,
+ 0x1E75,
+ 0x1E76,
+ 0x1E77,
+ 0x1E78,
+ 0x1E79,
+ 0x1E7A,
+ 0x1E7B,
+ 0x1E7C,
+ 0x1E7D,
+ 0x1E7E,
+ 0x1E7F,
+ 0x1E80,
+ 0x1E81,
+ 0x1E82,
+ 0x1E83,
+ 0x1E84,
+ 0x1E85,
+ 0x1E86,
+ 0x1E87,
+ 0x1E88,
+ 0x1E89,
+ 0x1E8A,
+ 0x1E8B,
+ 0x1E8C,
+ 0x1E8D,
+ 0x1E8E,
+ 0x1E8F,
+ 0x1E90,
+ 0x1E91,
+ 0x1E92,
+ 0x1E93,
+ 0x1E94,
+ 0x1E95,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1EA1,
+ 0x1EA2,
+ 0x1EA3,
+ 0x1EA4,
+ 0x1EA5,
+ 0x1EA6,
+ 0x1EA7,
+ 0x1EA8,
+ 0x1EA9,
+ 0x1EAA,
+ 0x1EAB,
+ 0x1EAC,
+ 0x1EAD,
+ 0x1EAE,
+ 0x1EAF,
+ 0x1EB0,
+ 0x1EB1,
+ 0x1EB2,
+ 0x1EB3,
+ 0x1EB4,
+ 0x1EB5,
+ 0x1EB6,
+ 0x1EB7,
+ 0x1EB8,
+ 0x1EB9,
+ 0x1EBA,
+ 0x1EBB,
+ 0x1EBC,
+ 0x1EBD,
+ 0x1EBE,
+ 0x1EBF,
+ 0x1EC0,
+ 0x1EC1,
+ 0x1EC2,
+ 0x1EC3,
+ 0x1EC4,
+ 0x1EC5,
+ 0x1EC6,
+ 0x1EC7,
+ 0x1EC8,
+ 0x1EC9,
+ 0x1ECA,
+ 0x1ECB,
+ 0x1ECC,
+ 0x1ECD,
+ 0x1ECE,
+ 0x1ECF,
+ 0x1ED0,
+ 0x1ED1,
+ 0x1ED2,
+ 0x1ED3,
+ 0x1ED4,
+ 0x1ED5,
+ 0x1ED6,
+ 0x1ED7,
+ 0x1ED8,
+ 0x1ED9,
+ 0x1EDA,
+ 0x1EDB,
+ 0x1EDC,
+ 0x1EDD,
+ 0x1EDE,
+ 0x1EDF,
+ 0x1EE0,
+ 0x1EE1,
+ 0x1EE2,
+ 0x1EE3,
+ 0x1EE4,
+ 0x1EE5,
+ 0x1EE6,
+ 0x1EE7,
+ 0x1EE8,
+ 0x1EE9,
+ 0x1EEA,
+ 0x1EEB,
+ 0x1EEC,
+ 0x1EED,
+ 0x1EEE,
+ 0x1EEF,
+ 0x1EF0,
+ 0x1EF1,
+ 0x1EF2,
+ 0x1EF3,
+ 0x1EF4,
+ 0x1EF5,
+ 0x1EF6,
+ 0x1EF7,
+ 0x1EF8,
+ 0x1EF9,
+ 0x1EFA,
+ 0x1EFB,
+ 0x1EFC,
+ 0x1EFD,
+ 0x1EFE,
+ 0x1EFF,
+ 0x1F08,
+ 0x1F10,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F28,
+ 0x1F30,
+ 0x1F38,
+ 0x1F40,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1FB8,
+ 0x1FBC,
+ 0x1FC8,
+ 0x1FCC,
+ 0x1FD8,
+ 0x1FDC,
+ 0x1FE8,
+ 0x1FED,
+ 0x1FF8,
+ 0x1FFC,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210B,
+ 0x210E,
+ 0x2110,
+ 0x2113,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x2130,
+ 0x2134,
+ 0x213E,
+ 0x2140,
+ 0x2145,
+ 0x2146,
+ 0x2160,
+ 0x2170,
+ 0x2183,
+ 0x2184,
+ 0x24B6,
+ 0x24D0,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C60,
+ 0x2C61,
+ 0x2C62,
+ 0x2C65,
+ 0x2C67,
+ 0x2C68,
+ 0x2C69,
+ 0x2C6A,
+ 0x2C6B,
+ 0x2C6C,
+ 0x2C6D,
+ 0x2C71,
+ 0x2C72,
+ 0x2C73,
+ 0x2C75,
+ 0x2C76,
+ 0x2C7E,
+ 0x2C81,
+ 0x2C82,
+ 0x2C83,
+ 0x2C84,
+ 0x2C85,
+ 0x2C86,
+ 0x2C87,
+ 0x2C88,
+ 0x2C89,
+ 0x2C8A,
+ 0x2C8B,
+ 0x2C8C,
+ 0x2C8D,
+ 0x2C8E,
+ 0x2C8F,
+ 0x2C90,
+ 0x2C91,
+ 0x2C92,
+ 0x2C93,
+ 0x2C94,
+ 0x2C95,
+ 0x2C96,
+ 0x2C97,
+ 0x2C98,
+ 0x2C99,
+ 0x2C9A,
+ 0x2C9B,
+ 0x2C9C,
+ 0x2C9D,
+ 0x2C9E,
+ 0x2C9F,
+ 0x2CA0,
+ 0x2CA1,
+ 0x2CA2,
+ 0x2CA3,
+ 0x2CA4,
+ 0x2CA5,
+ 0x2CA6,
+ 0x2CA7,
+ 0x2CA8,
+ 0x2CA9,
+ 0x2CAA,
+ 0x2CAB,
+ 0x2CAC,
+ 0x2CAD,
+ 0x2CAE,
+ 0x2CAF,
+ 0x2CB0,
+ 0x2CB1,
+ 0x2CB2,
+ 0x2CB3,
+ 0x2CB4,
+ 0x2CB5,
+ 0x2CB6,
+ 0x2CB7,
+ 0x2CB8,
+ 0x2CB9,
+ 0x2CBA,
+ 0x2CBB,
+ 0x2CBC,
+ 0x2CBD,
+ 0x2CBE,
+ 0x2CBF,
+ 0x2CC0,
+ 0x2CC1,
+ 0x2CC2,
+ 0x2CC3,
+ 0x2CC4,
+ 0x2CC5,
+ 0x2CC6,
+ 0x2CC7,
+ 0x2CC8,
+ 0x2CC9,
+ 0x2CCA,
+ 0x2CCB,
+ 0x2CCC,
+ 0x2CCD,
+ 0x2CCE,
+ 0x2CCF,
+ 0x2CD0,
+ 0x2CD1,
+ 0x2CD2,
+ 0x2CD3,
+ 0x2CD4,
+ 0x2CD5,
+ 0x2CD6,
+ 0x2CD7,
+ 0x2CD8,
+ 0x2CD9,
+ 0x2CDA,
+ 0x2CDB,
+ 0x2CDC,
+ 0x2CDD,
+ 0x2CDE,
+ 0x2CDF,
+ 0x2CE0,
+ 0x2CE1,
+ 0x2CE2,
+ 0x2CE3,
+ 0x2CEB,
+ 0x2CEC,
+ 0x2CED,
+ 0x2CEE,
+ 0x2CF2,
+ 0x2CF3,
+ 0xA640,
+ 0xA641,
+ 0xA642,
+ 0xA643,
+ 0xA644,
+ 0xA645,
+ 0xA646,
+ 0xA647,
+ 0xA648,
+ 0xA649,
+ 0xA64A,
+ 0xA64B,
+ 0xA64C,
+ 0xA64D,
+ 0xA64E,
+ 0xA64F,
+ 0xA650,
+ 0xA651,
+ 0xA652,
+ 0xA653,
+ 0xA654,
+ 0xA655,
+ 0xA656,
+ 0xA657,
+ 0xA658,
+ 0xA659,
+ 0xA65A,
+ 0xA65B,
+ 0xA65C,
+ 0xA65D,
+ 0xA65E,
+ 0xA65F,
+ 0xA660,
+ 0xA661,
+ 0xA662,
+ 0xA663,
+ 0xA664,
+ 0xA665,
+ 0xA666,
+ 0xA667,
+ 0xA668,
+ 0xA669,
+ 0xA66A,
+ 0xA66B,
+ 0xA66C,
+ 0xA66D,
+ 0xA680,
+ 0xA681,
+ 0xA682,
+ 0xA683,
+ 0xA684,
+ 0xA685,
+ 0xA686,
+ 0xA687,
+ 0xA688,
+ 0xA689,
+ 0xA68A,
+ 0xA68B,
+ 0xA68C,
+ 0xA68D,
+ 0xA68E,
+ 0xA68F,
+ 0xA690,
+ 0xA691,
+ 0xA692,
+ 0xA693,
+ 0xA694,
+ 0xA695,
+ 0xA696,
+ 0xA697,
+ 0xA698,
+ 0xA699,
+ 0xA69A,
+ 0xA69B,
+ 0xA722,
+ 0xA723,
+ 0xA724,
+ 0xA725,
+ 0xA726,
+ 0xA727,
+ 0xA728,
+ 0xA729,
+ 0xA72A,
+ 0xA72B,
+ 0xA72C,
+ 0xA72D,
+ 0xA72E,
+ 0xA72F,
+ 0xA732,
+ 0xA733,
+ 0xA734,
+ 0xA735,
+ 0xA736,
+ 0xA737,
+ 0xA738,
+ 0xA739,
+ 0xA73A,
+ 0xA73B,
+ 0xA73C,
+ 0xA73D,
+ 0xA73E,
+ 0xA73F,
+ 0xA740,
+ 0xA741,
+ 0xA742,
+ 0xA743,
+ 0xA744,
+ 0xA745,
+ 0xA746,
+ 0xA747,
+ 0xA748,
+ 0xA749,
+ 0xA74A,
+ 0xA74B,
+ 0xA74C,
+ 0xA74D,
+ 0xA74E,
+ 0xA74F,
+ 0xA750,
+ 0xA751,
+ 0xA752,
+ 0xA753,
+ 0xA754,
+ 0xA755,
+ 0xA756,
+ 0xA757,
+ 0xA758,
+ 0xA759,
+ 0xA75A,
+ 0xA75B,
+ 0xA75C,
+ 0xA75D,
+ 0xA75E,
+ 0xA75F,
+ 0xA760,
+ 0xA761,
+ 0xA762,
+ 0xA763,
+ 0xA764,
+ 0xA765,
+ 0xA766,
+ 0xA767,
+ 0xA768,
+ 0xA769,
+ 0xA76A,
+ 0xA76B,
+ 0xA76C,
+ 0xA76D,
+ 0xA76E,
+ 0xA76F,
+ 0xA779,
+ 0xA77A,
+ 0xA77B,
+ 0xA77C,
+ 0xA77D,
+ 0xA77F,
+ 0xA780,
+ 0xA781,
+ 0xA782,
+ 0xA783,
+ 0xA784,
+ 0xA785,
+ 0xA786,
+ 0xA787,
+ 0xA78B,
+ 0xA78C,
+ 0xA78D,
+ 0xA78E,
+ 0xA790,
+ 0xA791,
+ 0xA792,
+ 0xA793,
+ 0xA796,
+ 0xA797,
+ 0xA798,
+ 0xA799,
+ 0xA79A,
+ 0xA79B,
+ 0xA79C,
+ 0xA79D,
+ 0xA79E,
+ 0xA79F,
+ 0xA7A0,
+ 0xA7A1,
+ 0xA7A2,
+ 0xA7A3,
+ 0xA7A4,
+ 0xA7A5,
+ 0xA7A6,
+ 0xA7A7,
+ 0xA7A8,
+ 0xA7A9,
+ 0xA7AA,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xFF21,
+ 0xFF3B,
+ 0x10400,
+ 0x10428,
+ 0x118A0,
+ 0x118C0,
+ 0x1D400,
+ 0x1D41A,
+ 0x1D434,
+ 0x1D44E,
+ 0x1D468,
+ 0x1D482,
+ 0x1D49C,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4B6,
+ 0x1D4D0,
+ 0x1D4EA,
+ 0x1D504,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D538,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D56C,
+ 0x1D586,
+ 0x1D5A0,
+ 0x1D5BA,
+ 0x1D5D4,
+ 0x1D5EE,
+ 0x1D608,
+ 0x1D622,
+ 0x1D63C,
+ 0x1D656,
+ 0x1D670,
+ 0x1D68A,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6E2,
+ 0x1D6FB,
+ 0x1D71C,
+ 0x1D735,
+ 0x1D756,
+ 0x1D76F,
+ 0x1D790,
+ 0x1D7A9,
+ 0x1D7CA,
+ 0x1D7CB,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A
+};
-#ifndef PERL_IN_XSUB_RE
+static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
+ 1285, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x6D,
+ 0x6E,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xAF,
+ 0xBA,
+ 0xBB,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xFA,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x483,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6DF,
+ 0x6E9,
+ 0x6EA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x840,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x1000,
+ 0x104A,
+ 0x1050,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1735,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x180B,
+ 0x180E,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1946,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C38,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C7E,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x200C,
+ 0x200E,
+ 0x203F,
+ 0x2041,
+ 0x2054,
+ 0x2055,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA62C,
+ 0xA640,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F2,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C5,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA92E,
+ 0xA930,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9C1,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE00,
+ 0xFE10,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE33,
+ 0xFE35,
+ 0xFE4D,
+ 0xFE50,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11047,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x110BB,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C5,
+ 0x111D0,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11238,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x11600,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0100,
+ 0xE01F0
+};
-static const UV XPosixLower_invlist[] = {
- 1237, /* Number of elements */
+static const UV XPosixXDigit_invlist[] = { /* for EBCDIC 1047 */
+ 13, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 97,
- 123,
- 170,
- 171,
- 181,
- 182,
- 186,
- 187,
- 223,
- 247,
- 248,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 378,
- 379,
- 380,
- 381,
- 382,
- 385,
- 387,
- 388,
- 389,
- 390,
- 392,
- 393,
- 396,
- 398,
- 402,
- 403,
- 405,
- 406,
- 409,
- 412,
- 414,
- 415,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 424,
- 425,
- 426,
- 428,
- 429,
- 430,
- 432,
- 433,
- 436,
- 437,
- 438,
- 439,
- 441,
- 443,
- 445,
- 448,
- 454,
- 455,
- 457,
- 458,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 497,
- 499,
- 500,
- 501,
- 502,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- 570,
- 572,
- 573,
- 575,
- 577,
- 578,
- 579,
- 583,
- 584,
- 585,
- 586,
- 587,
- 588,
- 589,
- 590,
- 591,
- 660,
- 661,
- 697,
- 704,
- 706,
- 736,
- 741,
- 837,
- 838,
- 881,
- 882,
- 883,
- 884,
- 887,
- 888,
- 890,
- 894,
- 912,
- 913,
- 940,
- 975,
- 976,
- 978,
- 981,
- 984,
- 985,
- 986,
- 987,
- 988,
- 989,
- 990,
- 991,
- 992,
- 993,
- 994,
- 995,
- 996,
- 997,
- 998,
- 999,
- 1000,
- 1001,
- 1002,
- 1003,
- 1004,
- 1005,
- 1006,
- 1007,
- 1012,
- 1013,
- 1014,
- 1016,
- 1017,
- 1019,
- 1021,
- 1072,
- 1120,
- 1121,
- 1122,
- 1123,
- 1124,
- 1125,
- 1126,
- 1127,
- 1128,
- 1129,
- 1130,
- 1131,
- 1132,
- 1133,
- 1134,
- 1135,
- 1136,
- 1137,
- 1138,
- 1139,
- 1140,
- 1141,
- 1142,
- 1143,
- 1144,
- 1145,
- 1146,
- 1147,
- 1148,
- 1149,
- 1150,
- 1151,
- 1152,
- 1153,
- 1154,
- 1163,
- 1164,
- 1165,
- 1166,
- 1167,
- 1168,
- 1169,
- 1170,
- 1171,
- 1172,
- 1173,
- 1174,
- 1175,
- 1176,
- 1177,
- 1178,
- 1179,
- 1180,
- 1181,
- 1182,
- 1183,
- 1184,
- 1185,
- 1186,
- 1187,
- 1188,
- 1189,
- 1190,
- 1191,
- 1192,
- 1193,
- 1194,
- 1195,
- 1196,
- 1197,
- 1198,
- 1199,
- 1200,
- 1201,
- 1202,
- 1203,
- 1204,
- 1205,
- 1206,
- 1207,
- 1208,
- 1209,
- 1210,
- 1211,
- 1212,
- 1213,
- 1214,
- 1215,
- 1216,
- 1218,
- 1219,
- 1220,
- 1221,
- 1222,
- 1223,
- 1224,
- 1225,
- 1226,
- 1227,
- 1228,
- 1229,
- 1230,
- 1232,
- 1233,
- 1234,
- 1235,
- 1236,
- 1237,
- 1238,
- 1239,
- 1240,
- 1241,
- 1242,
- 1243,
- 1244,
- 1245,
- 1246,
- 1247,
- 1248,
- 1249,
- 1250,
- 1251,
- 1252,
- 1253,
- 1254,
- 1255,
- 1256,
- 1257,
- 1258,
- 1259,
- 1260,
- 1261,
- 1262,
- 1263,
- 1264,
- 1265,
- 1266,
- 1267,
- 1268,
- 1269,
- 1270,
- 1271,
- 1272,
- 1273,
- 1274,
- 1275,
- 1276,
- 1277,
- 1278,
- 1279,
- 1280,
- 1281,
- 1282,
- 1283,
- 1284,
- 1285,
- 1286,
- 1287,
- 1288,
- 1289,
- 1290,
- 1291,
- 1292,
- 1293,
- 1294,
- 1295,
- 1296,
- 1297,
- 1298,
- 1299,
- 1300,
- 1301,
- 1302,
- 1303,
- 1304,
- 1305,
- 1306,
- 1307,
- 1308,
- 1309,
- 1310,
- 1311,
- 1312,
- 1313,
- 1314,
- 1315,
- 1316,
- 1317,
- 1318,
- 1319,
- 1320,
- 1377,
- 1416,
- 7424,
- 7616,
- 7681,
- 7682,
- 7683,
- 7684,
- 7685,
- 7686,
- 7687,
- 7688,
- 7689,
- 7690,
- 7691,
- 7692,
- 7693,
- 7694,
- 7695,
- 7696,
- 7697,
- 7698,
- 7699,
- 7700,
- 7701,
- 7702,
- 7703,
- 7704,
- 7705,
- 7706,
- 7707,
- 7708,
- 7709,
- 7710,
- 7711,
- 7712,
- 7713,
- 7714,
- 7715,
- 7716,
- 7717,
- 7718,
- 7719,
- 7720,
- 7721,
- 7722,
- 7723,
- 7724,
- 7725,
- 7726,
- 7727,
- 7728,
- 7729,
- 7730,
- 7731,
- 7732,
- 7733,
- 7734,
- 7735,
- 7736,
- 7737,
- 7738,
- 7739,
- 7740,
- 7741,
- 7742,
- 7743,
- 7744,
- 7745,
- 7746,
- 7747,
- 7748,
- 7749,
- 7750,
- 7751,
- 7752,
- 7753,
- 7754,
- 7755,
- 7756,
- 7757,
- 7758,
- 7759,
- 7760,
- 7761,
- 7762,
- 7763,
- 7764,
- 7765,
- 7766,
- 7767,
- 7768,
- 7769,
- 7770,
- 7771,
- 7772,
- 7773,
- 7774,
- 7775,
- 7776,
- 7777,
- 7778,
- 7779,
- 7780,
- 7781,
- 7782,
- 7783,
- 7784,
- 7785,
- 7786,
- 7787,
- 7788,
- 7789,
- 7790,
- 7791,
- 7792,
- 7793,
- 7794,
- 7795,
- 7796,
- 7797,
- 7798,
- 7799,
- 7800,
- 7801,
- 7802,
- 7803,
- 7804,
- 7805,
- 7806,
- 7807,
- 7808,
- 7809,
- 7810,
- 7811,
- 7812,
- 7813,
- 7814,
- 7815,
- 7816,
- 7817,
- 7818,
- 7819,
- 7820,
- 7821,
- 7822,
- 7823,
- 7824,
- 7825,
- 7826,
- 7827,
- 7828,
- 7829,
- 7838,
- 7839,
- 7840,
- 7841,
- 7842,
- 7843,
- 7844,
- 7845,
- 7846,
- 7847,
- 7848,
- 7849,
- 7850,
- 7851,
- 7852,
- 7853,
- 7854,
- 7855,
- 7856,
- 7857,
- 7858,
- 7859,
- 7860,
- 7861,
- 7862,
- 7863,
- 7864,
- 7865,
- 7866,
- 7867,
- 7868,
- 7869,
- 7870,
- 7871,
- 7872,
- 7873,
- 7874,
- 7875,
- 7876,
- 7877,
- 7878,
- 7879,
- 7880,
- 7881,
- 7882,
- 7883,
- 7884,
- 7885,
- 7886,
- 7887,
- 7888,
- 7889,
- 7890,
- 7891,
- 7892,
- 7893,
- 7894,
- 7895,
- 7896,
- 7897,
- 7898,
- 7899,
- 7900,
- 7901,
- 7902,
- 7903,
- 7904,
- 7905,
- 7906,
- 7907,
- 7908,
- 7909,
- 7910,
- 7911,
- 7912,
- 7913,
- 7914,
- 7915,
- 7916,
- 7917,
- 7918,
- 7919,
- 7920,
- 7921,
- 7922,
- 7923,
- 7924,
- 7925,
- 7926,
- 7927,
- 7928,
- 7929,
- 7930,
- 7931,
- 7932,
- 7933,
- 7934,
- 7935,
- 7944,
- 7952,
- 7958,
- 7968,
- 7976,
- 7984,
- 7992,
- 8000,
- 8006,
- 8016,
- 8024,
- 8032,
- 8040,
- 8048,
- 8062,
- 8064,
- 8072,
- 8080,
- 8088,
- 8096,
- 8104,
- 8112,
- 8117,
- 8118,
- 8120,
- 8126,
- 8127,
- 8130,
- 8133,
- 8134,
- 8136,
- 8144,
- 8148,
- 8150,
- 8152,
- 8160,
- 8168,
- 8178,
- 8181,
- 8182,
- 8184,
- 8305,
- 8306,
- 8319,
- 8320,
- 8336,
- 8349,
- 8458,
- 8459,
- 8462,
- 8464,
- 8467,
- 8468,
- 8495,
- 8496,
- 8500,
- 8501,
- 8505,
- 8506,
- 8508,
- 8510,
- 8518,
- 8522,
- 8526,
- 8527,
- 8560,
- 8576,
- 8580,
- 8581,
- 9424,
- 9450,
- 11312,
- 11359,
- 11361,
- 11362,
- 11365,
- 11367,
- 11368,
- 11369,
- 11370,
- 11371,
- 11372,
- 11373,
- 11377,
- 11378,
- 11379,
- 11381,
- 11382,
- 11390,
- 11393,
- 11394,
- 11395,
- 11396,
- 11397,
- 11398,
- 11399,
- 11400,
- 11401,
- 11402,
- 11403,
- 11404,
- 11405,
- 11406,
- 11407,
- 11408,
- 11409,
- 11410,
- 11411,
- 11412,
- 11413,
- 11414,
- 11415,
- 11416,
- 11417,
- 11418,
- 11419,
- 11420,
- 11421,
- 11422,
- 11423,
- 11424,
- 11425,
- 11426,
- 11427,
- 11428,
- 11429,
- 11430,
- 11431,
- 11432,
- 11433,
- 11434,
- 11435,
- 11436,
- 11437,
- 11438,
- 11439,
- 11440,
- 11441,
- 11442,
- 11443,
- 11444,
- 11445,
- 11446,
- 11447,
- 11448,
- 11449,
- 11450,
- 11451,
- 11452,
- 11453,
- 11454,
- 11455,
- 11456,
- 11457,
- 11458,
- 11459,
- 11460,
- 11461,
- 11462,
- 11463,
- 11464,
- 11465,
- 11466,
- 11467,
- 11468,
- 11469,
- 11470,
- 11471,
- 11472,
- 11473,
- 11474,
- 11475,
- 11476,
- 11477,
- 11478,
- 11479,
- 11480,
- 11481,
- 11482,
- 11483,
- 11484,
- 11485,
- 11486,
- 11487,
- 11488,
- 11489,
- 11490,
- 11491,
- 11493,
- 11500,
- 11501,
- 11502,
- 11503,
- 11507,
- 11508,
- 11520,
- 11558,
- 11559,
- 11560,
- 11565,
- 11566,
- 42561,
- 42562,
- 42563,
- 42564,
- 42565,
- 42566,
- 42567,
- 42568,
- 42569,
- 42570,
- 42571,
- 42572,
- 42573,
- 42574,
- 42575,
- 42576,
- 42577,
- 42578,
- 42579,
- 42580,
- 42581,
- 42582,
- 42583,
- 42584,
- 42585,
- 42586,
- 42587,
- 42588,
- 42589,
- 42590,
- 42591,
- 42592,
- 42593,
- 42594,
- 42595,
- 42596,
- 42597,
- 42598,
- 42599,
- 42600,
- 42601,
- 42602,
- 42603,
- 42604,
- 42605,
- 42606,
- 42625,
- 42626,
- 42627,
- 42628,
- 42629,
- 42630,
- 42631,
- 42632,
- 42633,
- 42634,
- 42635,
- 42636,
- 42637,
- 42638,
- 42639,
- 42640,
- 42641,
- 42642,
- 42643,
- 42644,
- 42645,
- 42646,
- 42647,
- 42648,
- 42787,
- 42788,
- 42789,
- 42790,
- 42791,
- 42792,
- 42793,
- 42794,
- 42795,
- 42796,
- 42797,
- 42798,
- 42799,
- 42802,
- 42803,
- 42804,
- 42805,
- 42806,
- 42807,
- 42808,
- 42809,
- 42810,
- 42811,
- 42812,
- 42813,
- 42814,
- 42815,
- 42816,
- 42817,
- 42818,
- 42819,
- 42820,
- 42821,
- 42822,
- 42823,
- 42824,
- 42825,
- 42826,
- 42827,
- 42828,
- 42829,
- 42830,
- 42831,
- 42832,
- 42833,
- 42834,
- 42835,
- 42836,
- 42837,
- 42838,
- 42839,
- 42840,
- 42841,
- 42842,
- 42843,
- 42844,
- 42845,
- 42846,
- 42847,
- 42848,
- 42849,
- 42850,
- 42851,
- 42852,
- 42853,
- 42854,
- 42855,
- 42856,
- 42857,
- 42858,
- 42859,
- 42860,
- 42861,
- 42862,
- 42863,
- 42873,
- 42874,
- 42875,
- 42876,
- 42877,
- 42879,
- 42880,
- 42881,
- 42882,
- 42883,
- 42884,
- 42885,
- 42886,
- 42887,
- 42888,
- 42892,
- 42893,
- 42894,
- 42895,
- 42897,
- 42898,
- 42899,
- 42900,
- 42913,
- 42914,
- 42915,
- 42916,
- 42917,
- 42918,
- 42919,
- 42920,
- 42921,
- 42922,
- 43000,
- 43003,
- 64256,
- 64263,
- 64275,
- 64280,
- 65345,
- 65371,
- 66600,
- 66640,
- 119834,
- 119860,
- 119886,
- 119893,
- 119894,
- 119912,
- 119938,
- 119964,
- 119990,
- 119994,
- 119995,
- 119996,
- 119997,
- 120004,
- 120005,
- 120016,
- 120042,
- 120068,
- 120094,
- 120120,
- 120146,
- 120172,
- 120198,
- 120224,
- 120250,
- 120276,
- 120302,
- 120328,
- 120354,
- 120380,
- 120406,
- 120432,
- 120458,
- 120486,
- 120514,
- 120539,
- 120540,
- 120546,
- 120572,
- 120597,
- 120598,
- 120604,
- 120630,
- 120655,
- 120656,
- 120662,
- 120688,
- 120713,
- 120714,
- 120720,
- 120746,
- 120771,
- 120772,
- 120778,
- 120779,
- 120780
+ 0x0,
+ 0x81,
+ 0x87,
+ 0xC1,
+ 0xC7,
+ 0xF0,
+ 0xFA,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF27,
+ 0xFF41,
+ 0xFF47
};
-#endif
+#endif /* defined(PERL_IN_PERL_C) */
+
+#endif /* EBCDIC 1047 */
-#ifndef PERL_IN_XSUB_RE
+#if 'A' == 193 /* EBCDIC 037 */ \
+ && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
+ && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 121
-static const UV XPosixPrint_invlist[] = {
- 1083, /* Number of elements */
+#if defined(PERL_IN_PERL_C)
+
+static const UV ASCII_invlist[] = { /* for EBCDIC 037 */
+ 56, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x4,
+ 0x5,
+ 0x6,
+ 0x7,
+ 0x8,
+ 0xB,
+ 0x14,
+ 0x16,
+ 0x17,
+ 0x18,
+ 0x1A,
+ 0x1C,
+ 0x20,
+ 0x25,
+ 0x28,
+ 0x2D,
+ 0x30,
+ 0x32,
+ 0x33,
+ 0x37,
+ 0x38,
+ 0x3C,
+ 0x3E,
+ 0x3F,
+ 0x41,
+ 0x4B,
+ 0x51,
+ 0x5A,
+ 0x5F,
+ 0x60,
+ 0x62,
+ 0x6B,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x81,
+ 0x8A,
+ 0x91,
+ 0x9A,
+ 0xA1,
+ 0xAA,
+ 0xB0,
+ 0xB1,
+ 0xBA,
+ 0xBC,
+ 0xC0,
+ 0xCA,
+ 0xD0,
+ 0xDA,
+ 0xE0,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xF0,
+ 0xFA
+};
+
+static const UV Cased_invlist[] = { /* for EBCDIC 037 */
+ 277, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 32,
- 127,
- 160,
- 888,
- 890,
- 895,
- 900,
- 907,
- 908,
- 909,
- 910,
- 930,
- 931,
- 1320,
- 1329,
- 1367,
- 1369,
- 1376,
- 1377,
- 1416,
- 1417,
- 1419,
- 1423,
- 1424,
- 1425,
- 1480,
- 1488,
- 1515,
- 1520,
- 1525,
- 1536,
- 1541,
- 1542,
- 1565,
- 1566,
- 1806,
- 1807,
- 1867,
- 1869,
- 1970,
- 1984,
- 2043,
- 2048,
- 2094,
- 2096,
- 2111,
- 2112,
- 2140,
- 2142,
- 2143,
- 2208,
- 2209,
- 2210,
- 2221,
- 2276,
- 2303,
- 2304,
- 2424,
- 2425,
- 2432,
- 2433,
- 2436,
- 2437,
- 2445,
- 2447,
- 2449,
- 2451,
- 2473,
- 2474,
- 2481,
- 2482,
- 2483,
- 2486,
- 2490,
- 2492,
- 2501,
- 2503,
- 2505,
- 2507,
- 2511,
- 2519,
- 2520,
- 2524,
- 2526,
- 2527,
- 2532,
- 2534,
- 2556,
- 2561,
- 2564,
- 2565,
- 2571,
- 2575,
- 2577,
- 2579,
- 2601,
- 2602,
- 2609,
- 2610,
- 2612,
- 2613,
- 2615,
- 2616,
- 2618,
- 2620,
- 2621,
- 2622,
- 2627,
- 2631,
- 2633,
- 2635,
- 2638,
- 2641,
- 2642,
- 2649,
- 2653,
- 2654,
- 2655,
- 2662,
- 2678,
- 2689,
- 2692,
- 2693,
- 2702,
- 2703,
- 2706,
- 2707,
- 2729,
- 2730,
- 2737,
- 2738,
- 2740,
- 2741,
- 2746,
- 2748,
- 2758,
- 2759,
- 2762,
- 2763,
- 2766,
- 2768,
- 2769,
- 2784,
- 2788,
- 2790,
- 2802,
- 2817,
- 2820,
- 2821,
- 2829,
- 2831,
- 2833,
- 2835,
- 2857,
- 2858,
- 2865,
- 2866,
- 2868,
- 2869,
- 2874,
- 2876,
- 2885,
- 2887,
- 2889,
- 2891,
- 2894,
- 2902,
- 2904,
- 2908,
- 2910,
- 2911,
- 2916,
- 2918,
- 2936,
- 2946,
- 2948,
- 2949,
- 2955,
- 2958,
- 2961,
- 2962,
- 2966,
- 2969,
- 2971,
- 2972,
- 2973,
- 2974,
- 2976,
- 2979,
- 2981,
- 2984,
- 2987,
- 2990,
- 3002,
- 3006,
- 3011,
- 3014,
- 3017,
- 3018,
- 3022,
- 3024,
- 3025,
- 3031,
- 3032,
- 3046,
- 3067,
- 3073,
- 3076,
- 3077,
- 3085,
- 3086,
- 3089,
- 3090,
- 3113,
- 3114,
- 3124,
- 3125,
- 3130,
- 3133,
- 3141,
- 3142,
- 3145,
- 3146,
- 3150,
- 3157,
- 3159,
- 3160,
- 3162,
- 3168,
- 3172,
- 3174,
- 3184,
- 3192,
- 3200,
- 3202,
- 3204,
- 3205,
- 3213,
- 3214,
- 3217,
- 3218,
- 3241,
- 3242,
- 3252,
- 3253,
- 3258,
- 3260,
- 3269,
- 3270,
- 3273,
- 3274,
- 3278,
- 3285,
- 3287,
- 3294,
- 3295,
- 3296,
- 3300,
- 3302,
- 3312,
- 3313,
- 3315,
- 3330,
- 3332,
- 3333,
- 3341,
- 3342,
- 3345,
- 3346,
- 3387,
- 3389,
- 3397,
- 3398,
- 3401,
- 3402,
- 3407,
- 3415,
- 3416,
- 3424,
- 3428,
- 3430,
- 3446,
- 3449,
- 3456,
- 3458,
- 3460,
- 3461,
- 3479,
- 3482,
- 3506,
- 3507,
- 3516,
- 3517,
- 3518,
- 3520,
- 3527,
- 3530,
- 3531,
- 3535,
- 3541,
- 3542,
- 3543,
- 3544,
- 3552,
- 3570,
- 3573,
- 3585,
- 3643,
- 3647,
- 3676,
- 3713,
- 3715,
- 3716,
- 3717,
- 3719,
- 3721,
- 3722,
- 3723,
- 3725,
- 3726,
- 3732,
- 3736,
- 3737,
- 3744,
- 3745,
- 3748,
- 3749,
- 3750,
- 3751,
- 3752,
- 3754,
- 3756,
- 3757,
- 3770,
- 3771,
- 3774,
- 3776,
- 3781,
- 3782,
- 3783,
- 3784,
- 3790,
- 3792,
- 3802,
- 3804,
- 3808,
- 3840,
- 3912,
- 3913,
- 3949,
- 3953,
- 3992,
- 3993,
- 4029,
- 4030,
- 4045,
- 4046,
- 4059,
- 4096,
- 4294,
- 4295,
- 4296,
- 4301,
- 4302,
- 4304,
- 4681,
- 4682,
- 4686,
- 4688,
- 4695,
- 4696,
- 4697,
- 4698,
- 4702,
- 4704,
- 4745,
- 4746,
- 4750,
- 4752,
- 4785,
- 4786,
- 4790,
- 4792,
- 4799,
- 4800,
- 4801,
- 4802,
- 4806,
- 4808,
- 4823,
- 4824,
- 4881,
- 4882,
- 4886,
- 4888,
- 4955,
- 4957,
- 4989,
- 4992,
- 5018,
- 5024,
- 5109,
- 5120,
- 5789,
- 5792,
- 5873,
- 5888,
- 5901,
- 5902,
- 5909,
- 5920,
- 5943,
- 5952,
- 5972,
- 5984,
- 5997,
- 5998,
- 6001,
- 6002,
- 6004,
- 6016,
- 6110,
- 6112,
- 6122,
- 6128,
- 6138,
- 6144,
- 6159,
- 6160,
- 6170,
- 6176,
- 6264,
- 6272,
- 6315,
- 6320,
- 6390,
- 6400,
- 6429,
- 6432,
- 6444,
- 6448,
- 6460,
- 6464,
- 6465,
- 6468,
- 6510,
- 6512,
- 6517,
- 6528,
- 6572,
- 6576,
- 6602,
- 6608,
- 6619,
- 6622,
- 6684,
- 6686,
- 6751,
- 6752,
- 6781,
- 6783,
- 6794,
- 6800,
- 6810,
- 6816,
- 6830,
- 6912,
- 6988,
- 6992,
- 7037,
- 7040,
- 7156,
- 7164,
- 7224,
- 7227,
- 7242,
- 7245,
- 7296,
- 7360,
- 7368,
- 7376,
- 7415,
- 7424,
- 7655,
- 7676,
- 7958,
- 7960,
- 7966,
- 7968,
- 8006,
- 8008,
- 8014,
- 8016,
- 8024,
- 8025,
- 8026,
- 8027,
- 8028,
- 8029,
- 8030,
- 8031,
- 8062,
- 8064,
- 8117,
- 8118,
- 8133,
- 8134,
- 8148,
- 8150,
- 8156,
- 8157,
- 8176,
- 8178,
- 8181,
- 8182,
- 8191,
- 8192,
- 8232,
- 8234,
- 8293,
- 8294,
- 8306,
- 8308,
- 8335,
- 8336,
- 8349,
- 8352,
- 8379,
- 8400,
- 8433,
- 8448,
- 8586,
- 8592,
- 9204,
- 9216,
- 9255,
- 9280,
- 9291,
- 9312,
- 9984,
- 9985,
- 11085,
- 11088,
- 11098,
- 11264,
- 11311,
- 11312,
- 11359,
- 11360,
- 11508,
- 11513,
- 11558,
- 11559,
- 11560,
- 11565,
- 11566,
- 11568,
- 11624,
- 11631,
- 11633,
- 11647,
- 11671,
- 11680,
- 11687,
- 11688,
- 11695,
- 11696,
- 11703,
- 11704,
- 11711,
- 11712,
- 11719,
- 11720,
- 11727,
- 11728,
- 11735,
- 11736,
- 11743,
- 11744,
- 11836,
- 11904,
- 11930,
- 11931,
- 12020,
- 12032,
- 12246,
- 12272,
- 12284,
- 12288,
- 12352,
- 12353,
- 12439,
- 12441,
- 12544,
- 12549,
- 12590,
- 12593,
- 12687,
- 12688,
- 12731,
- 12736,
- 12772,
- 12784,
- 12831,
- 12832,
- 13055,
- 13056,
- 19894,
- 19904,
- 40909,
- 40960,
- 42125,
- 42128,
- 42183,
- 42192,
- 42540,
- 42560,
- 42648,
- 42655,
- 42744,
- 42752,
- 42895,
- 42896,
- 42900,
- 42912,
- 42923,
- 43000,
- 43052,
- 43056,
- 43066,
- 43072,
- 43128,
- 43136,
- 43205,
- 43214,
- 43226,
- 43232,
- 43260,
- 43264,
- 43348,
- 43359,
- 43389,
- 43392,
- 43470,
- 43471,
- 43482,
- 43486,
- 43488,
- 43520,
- 43575,
- 43584,
- 43598,
- 43600,
- 43610,
- 43612,
- 43644,
- 43648,
- 43715,
- 43739,
- 43767,
- 43777,
- 43783,
- 43785,
- 43791,
- 43793,
- 43799,
- 43808,
- 43815,
- 43816,
- 43823,
- 43968,
- 44014,
- 44016,
- 44026,
- 44032,
- 55204,
- 55216,
- 55239,
- 55243,
- 55292,
- 57344,
- 64110,
- 64112,
- 64218,
- 64256,
- 64263,
- 64275,
- 64280,
- 64285,
- 64311,
- 64312,
- 64317,
- 64318,
- 64319,
- 64320,
- 64322,
- 64323,
- 64325,
- 64326,
- 64450,
- 64467,
- 64832,
- 64848,
- 64912,
- 64914,
- 64968,
- 65008,
- 65022,
- 65024,
- 65050,
- 65056,
- 65063,
- 65072,
- 65107,
- 65108,
- 65127,
- 65128,
- 65132,
- 65136,
- 65141,
- 65142,
- 65277,
- 65279,
- 65280,
- 65281,
- 65471,
- 65474,
- 65480,
- 65482,
- 65488,
- 65490,
- 65496,
- 65498,
- 65501,
- 65504,
- 65511,
- 65512,
- 65519,
- 65529,
- 65534,
- 65536,
- 65548,
- 65549,
- 65575,
- 65576,
- 65595,
- 65596,
- 65598,
- 65599,
- 65614,
- 65616,
- 65630,
- 65664,
- 65787,
- 65792,
- 65795,
- 65799,
- 65844,
- 65847,
- 65931,
- 65936,
- 65948,
- 66000,
- 66046,
- 66176,
- 66205,
- 66208,
- 66257,
- 66304,
- 66335,
- 66336,
- 66340,
- 66352,
- 66379,
- 66432,
- 66462,
- 66463,
- 66500,
- 66504,
- 66518,
- 66560,
- 66718,
- 66720,
- 66730,
- 67584,
- 67590,
- 67592,
- 67593,
- 67594,
- 67638,
- 67639,
- 67641,
- 67644,
- 67645,
- 67647,
- 67670,
- 67671,
- 67680,
- 67840,
- 67868,
- 67871,
- 67898,
- 67903,
- 67904,
- 67968,
- 68024,
- 68030,
- 68032,
- 68096,
- 68100,
- 68101,
- 68103,
- 68108,
- 68116,
- 68117,
- 68120,
- 68121,
- 68148,
- 68152,
- 68155,
- 68159,
- 68168,
- 68176,
- 68185,
- 68192,
- 68224,
- 68352,
- 68406,
- 68409,
- 68438,
- 68440,
- 68467,
- 68472,
- 68480,
- 68608,
- 68681,
- 69216,
- 69247,
- 69632,
- 69710,
- 69714,
- 69744,
- 69760,
- 69826,
- 69840,
- 69865,
- 69872,
- 69882,
- 69888,
- 69941,
- 69942,
- 69956,
- 70016,
- 70089,
- 70096,
- 70106,
- 71296,
- 71352,
- 71360,
- 71370,
- 73728,
- 74607,
- 74752,
- 74851,
- 74864,
- 74868,
- 77824,
- 78895,
- 92160,
- 92729,
- 93952,
- 94021,
- 94032,
- 94079,
- 94095,
- 94112,
- 110592,
- 110594,
- 118784,
- 119030,
- 119040,
- 119079,
- 119081,
- 119262,
- 119296,
- 119366,
- 119552,
- 119639,
- 119648,
- 119666,
- 119808,
- 119893,
- 119894,
- 119965,
- 119966,
- 119968,
- 119970,
- 119971,
- 119973,
- 119975,
- 119977,
- 119981,
- 119982,
- 119994,
- 119995,
- 119996,
- 119997,
- 120004,
- 120005,
- 120070,
- 120071,
- 120075,
- 120077,
- 120085,
- 120086,
- 120093,
- 120094,
- 120122,
- 120123,
- 120127,
- 120128,
- 120133,
- 120134,
- 120135,
- 120138,
- 120145,
- 120146,
- 120486,
- 120488,
- 120780,
- 120782,
- 120832,
- 126464,
- 126468,
- 126469,
- 126496,
- 126497,
- 126499,
- 126500,
- 126501,
- 126503,
- 126504,
- 126505,
- 126515,
- 126516,
- 126520,
- 126521,
- 126522,
- 126523,
- 126524,
- 126530,
- 126531,
- 126535,
- 126536,
- 126537,
- 126538,
- 126539,
- 126540,
- 126541,
- 126544,
- 126545,
- 126547,
- 126548,
- 126549,
- 126551,
- 126552,
- 126553,
- 126554,
- 126555,
- 126556,
- 126557,
- 126558,
- 126559,
- 126560,
- 126561,
- 126563,
- 126564,
- 126565,
- 126567,
- 126571,
- 126572,
- 126579,
- 126580,
- 126584,
- 126585,
- 126589,
- 126590,
- 126591,
- 126592,
- 126602,
- 126603,
- 126620,
- 126625,
- 126628,
- 126629,
- 126634,
- 126635,
- 126652,
- 126704,
- 126706,
- 126976,
- 127020,
- 127024,
- 127124,
- 127136,
- 127151,
- 127153,
- 127167,
- 127169,
- 127184,
- 127185,
- 127200,
- 127232,
- 127243,
- 127248,
- 127279,
- 127280,
- 127340,
- 127344,
- 127387,
- 127462,
- 127491,
- 127504,
- 127547,
- 127552,
- 127561,
- 127568,
- 127570,
- 127744,
- 127777,
- 127792,
- 127798,
- 127799,
- 127869,
- 127872,
- 127892,
- 127904,
- 127941,
- 127942,
- 127947,
- 127968,
- 127985,
- 128000,
- 128063,
- 128064,
- 128065,
- 128066,
- 128248,
- 128249,
- 128253,
- 128256,
- 128318,
- 128320,
- 128324,
- 128336,
- 128360,
- 128507,
- 128577,
- 128581,
- 128592,
- 128640,
- 128710,
- 128768,
- 128884,
- 131072,
- 173783,
- 173824,
- 177973,
- 177984,
- 178206,
- 194560,
- 195102,
- 917505,
- 917506,
- 917536,
- 917632,
- 917760,
- 918000,
- 983040,
- 1048574,
- 1048576,
- 1114110
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x1BB,
+ 0x1BC,
+ 0x1C0,
+ 0x1C4,
+ 0x294,
+ 0x295,
+ 0x2B9,
+ 0x2C0,
+ 0x2C2,
+ 0x2E0,
+ 0x2E5,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x374,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x561,
+ 0x588,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x1D00,
+ 0x1DC0,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x2135,
+ 0x2139,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2180,
+ 0x2183,
+ 0x2185,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0xA640,
+ 0xA66E,
+ 0xA680,
+ 0xA69E,
+ 0xA722,
+ 0xA788,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F8,
+ 0xA7FB,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0x10400,
+ 0x10450,
+ 0x118A0,
+ 0x118E0,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A
+};
+
+static const UV Grapheme_Cluster_Break_invlist[] = { /* for EBCDIC 037 */
+ 1484, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0xD,
+ 0xE,
+ 0x25,
+ 0x26,
+ 0x40,
+ 0xCA,
+ 0xCB,
+ 0xFF,
+ 0x100,
+ 0x300,
+ 0x370,
+ 0x483,
+ 0x48A,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x600,
+ 0x606,
+ 0x610,
+ 0x61B,
+ 0x61C,
+ 0x61D,
+ 0x64B,
+ 0x660,
+ 0x670,
+ 0x671,
+ 0x6D6,
+ 0x6DD,
+ 0x6DE,
+ 0x6DF,
+ 0x6E5,
+ 0x6E7,
+ 0x6E9,
+ 0x6EA,
+ 0x6EE,
+ 0x70F,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74B,
+ 0x7A6,
+ 0x7B1,
+ 0x7EB,
+ 0x7F4,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x82E,
+ 0x859,
+ 0x85C,
+ 0x8E4,
+ 0x903,
+ 0x904,
+ 0x93A,
+ 0x93B,
+ 0x93C,
+ 0x93D,
+ 0x93E,
+ 0x941,
+ 0x949,
+ 0x94D,
+ 0x94E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x964,
+ 0x981,
+ 0x982,
+ 0x984,
+ 0x9BC,
+ 0x9BD,
+ 0x9BE,
+ 0x9BF,
+ 0x9C1,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CD,
+ 0x9CE,
+ 0x9D7,
+ 0x9D8,
+ 0x9E2,
+ 0x9E4,
+ 0xA01,
+ 0xA03,
+ 0xA04,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA41,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA70,
+ 0xA72,
+ 0xA75,
+ 0xA76,
+ 0xA81,
+ 0xA83,
+ 0xA84,
+ 0xABC,
+ 0xABD,
+ 0xABE,
+ 0xAC1,
+ 0xAC6,
+ 0xAC7,
+ 0xAC9,
+ 0xACA,
+ 0xACB,
+ 0xACD,
+ 0xACE,
+ 0xAE2,
+ 0xAE4,
+ 0xB01,
+ 0xB02,
+ 0xB04,
+ 0xB3C,
+ 0xB3D,
+ 0xB3E,
+ 0xB40,
+ 0xB41,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4D,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB62,
+ 0xB64,
+ 0xB82,
+ 0xB83,
+ 0xBBE,
+ 0xBBF,
+ 0xBC0,
+ 0xBC1,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCD,
+ 0xBCE,
+ 0xBD7,
+ 0xBD8,
+ 0xC00,
+ 0xC01,
+ 0xC04,
+ 0xC3E,
+ 0xC41,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC62,
+ 0xC64,
+ 0xC81,
+ 0xC82,
+ 0xC84,
+ 0xCBC,
+ 0xCBD,
+ 0xCBE,
+ 0xCBF,
+ 0xCC0,
+ 0xCC2,
+ 0xCC3,
+ 0xCC5,
+ 0xCC6,
+ 0xCC7,
+ 0xCC9,
+ 0xCCA,
+ 0xCCC,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCE2,
+ 0xCE4,
+ 0xD01,
+ 0xD02,
+ 0xD04,
+ 0xD3E,
+ 0xD3F,
+ 0xD41,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4D,
+ 0xD4E,
+ 0xD57,
+ 0xD58,
+ 0xD62,
+ 0xD64,
+ 0xD82,
+ 0xD84,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD0,
+ 0xDD2,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDDF,
+ 0xDE0,
+ 0xDF2,
+ 0xDF4,
+ 0xE31,
+ 0xE32,
+ 0xE33,
+ 0xE34,
+ 0xE3B,
+ 0xE47,
+ 0xE4F,
+ 0xEB1,
+ 0xEB2,
+ 0xEB3,
+ 0xEB4,
+ 0xEBA,
+ 0xEBB,
+ 0xEBD,
+ 0xEC8,
+ 0xECE,
+ 0xF18,
+ 0xF1A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF40,
+ 0xF71,
+ 0xF7F,
+ 0xF80,
+ 0xF85,
+ 0xF86,
+ 0xF88,
+ 0xF8D,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x102D,
+ 0x1031,
+ 0x1032,
+ 0x1038,
+ 0x1039,
+ 0x103B,
+ 0x103D,
+ 0x103F,
+ 0x1056,
+ 0x1058,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x1083,
+ 0x1084,
+ 0x1085,
+ 0x1087,
+ 0x108D,
+ 0x108E,
+ 0x109D,
+ 0x109E,
+ 0x1100,
+ 0x1160,
+ 0x11A8,
+ 0x1200,
+ 0x135D,
+ 0x1360,
+ 0x1712,
+ 0x1715,
+ 0x1732,
+ 0x1735,
+ 0x1752,
+ 0x1754,
+ 0x1772,
+ 0x1774,
+ 0x17B4,
+ 0x17B6,
+ 0x17B7,
+ 0x17BE,
+ 0x17C6,
+ 0x17C7,
+ 0x17C9,
+ 0x17D4,
+ 0x17DD,
+ 0x17DE,
+ 0x180B,
+ 0x180E,
+ 0x180F,
+ 0x18A9,
+ 0x18AA,
+ 0x1920,
+ 0x1923,
+ 0x1927,
+ 0x1929,
+ 0x192C,
+ 0x1930,
+ 0x1932,
+ 0x1933,
+ 0x1939,
+ 0x193C,
+ 0x19B5,
+ 0x19B8,
+ 0x19BA,
+ 0x19BB,
+ 0x1A17,
+ 0x1A19,
+ 0x1A1B,
+ 0x1A1C,
+ 0x1A55,
+ 0x1A56,
+ 0x1A57,
+ 0x1A58,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A61,
+ 0x1A62,
+ 0x1A63,
+ 0x1A65,
+ 0x1A6D,
+ 0x1A73,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A80,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B04,
+ 0x1B05,
+ 0x1B34,
+ 0x1B35,
+ 0x1B36,
+ 0x1B3B,
+ 0x1B3C,
+ 0x1B3D,
+ 0x1B42,
+ 0x1B43,
+ 0x1B45,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1B82,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BA2,
+ 0x1BA6,
+ 0x1BA8,
+ 0x1BAA,
+ 0x1BAB,
+ 0x1BAE,
+ 0x1BE6,
+ 0x1BE7,
+ 0x1BE8,
+ 0x1BEA,
+ 0x1BED,
+ 0x1BEE,
+ 0x1BEF,
+ 0x1BF2,
+ 0x1BF4,
+ 0x1C24,
+ 0x1C2C,
+ 0x1C34,
+ 0x1C36,
+ 0x1C38,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CE1,
+ 0x1CE2,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF4,
+ 0x1CF5,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1DC0,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1E00,
+ 0x200B,
+ 0x200C,
+ 0x200E,
+ 0x2010,
+ 0x2028,
+ 0x202F,
+ 0x2060,
+ 0x2070,
+ 0x20D0,
+ 0x20F1,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2D7F,
+ 0x2D80,
+ 0x2DE0,
+ 0x2E00,
+ 0x302A,
+ 0x3030,
+ 0x3099,
+ 0x309B,
+ 0xA66F,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA69F,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA6F2,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA825,
+ 0xA827,
+ 0xA828,
+ 0xA880,
+ 0xA882,
+ 0xA8B4,
+ 0xA8C4,
+ 0xA8C5,
+ 0xA8E0,
+ 0xA8F2,
+ 0xA926,
+ 0xA92E,
+ 0xA947,
+ 0xA952,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA983,
+ 0xA984,
+ 0xA9B3,
+ 0xA9B4,
+ 0xA9B6,
+ 0xA9BA,
+ 0xA9BC,
+ 0xA9BD,
+ 0xA9C1,
+ 0xA9E5,
+ 0xA9E6,
+ 0xAA29,
+ 0xAA2F,
+ 0xAA31,
+ 0xAA33,
+ 0xAA35,
+ 0xAA37,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA4D,
+ 0xAA4E,
+ 0xAA7C,
+ 0xAA7D,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAEB,
+ 0xAAEC,
+ 0xAAEE,
+ 0xAAF0,
+ 0xAAF5,
+ 0xAAF6,
+ 0xAAF7,
+ 0xABE3,
+ 0xABE5,
+ 0xABE6,
+ 0xABE8,
+ 0xABE9,
+ 0xABEB,
+ 0xABEC,
+ 0xABED,
+ 0xABEE,
+ 0xAC00,
+ 0xAC01,
+ 0xAC1C,
+ 0xAC1D,
+ 0xAC38,
+ 0xAC39,
+ 0xAC54,
+ 0xAC55,
+ 0xAC70,
+ 0xAC71,
+ 0xAC8C,
+ 0xAC8D,
+ 0xACA8,
+ 0xACA9,
+ 0xACC4,
+ 0xACC5,
+ 0xACE0,
+ 0xACE1,
+ 0xACFC,
+ 0xACFD,
+ 0xAD18,
+ 0xAD19,
+ 0xAD34,
+ 0xAD35,
+ 0xAD50,
+ 0xAD51,
+ 0xAD6C,
+ 0xAD6D,
+ 0xAD88,
+ 0xAD89,
+ 0xADA4,
+ 0xADA5,
+ 0xADC0,
+ 0xADC1,
+ 0xADDC,
+ 0xADDD,
+ 0xADF8,
+ 0xADF9,
+ 0xAE14,
+ 0xAE15,
+ 0xAE30,
+ 0xAE31,
+ 0xAE4C,
+ 0xAE4D,
+ 0xAE68,
+ 0xAE69,
+ 0xAE84,
+ 0xAE85,
+ 0xAEA0,
+ 0xAEA1,
+ 0xAEBC,
+ 0xAEBD,
+ 0xAED8,
+ 0xAED9,
+ 0xAEF4,
+ 0xAEF5,
+ 0xAF10,
+ 0xAF11,
+ 0xAF2C,
+ 0xAF2D,
+ 0xAF48,
+ 0xAF49,
+ 0xAF64,
+ 0xAF65,
+ 0xAF80,
+ 0xAF81,
+ 0xAF9C,
+ 0xAF9D,
+ 0xAFB8,
+ 0xAFB9,
+ 0xAFD4,
+ 0xAFD5,
+ 0xAFF0,
+ 0xAFF1,
+ 0xB00C,
+ 0xB00D,
+ 0xB028,
+ 0xB029,
+ 0xB044,
+ 0xB045,
+ 0xB060,
+ 0xB061,
+ 0xB07C,
+ 0xB07D,
+ 0xB098,
+ 0xB099,
+ 0xB0B4,
+ 0xB0B5,
+ 0xB0D0,
+ 0xB0D1,
+ 0xB0EC,
+ 0xB0ED,
+ 0xB108,
+ 0xB109,
+ 0xB124,
+ 0xB125,
+ 0xB140,
+ 0xB141,
+ 0xB15C,
+ 0xB15D,
+ 0xB178,
+ 0xB179,
+ 0xB194,
+ 0xB195,
+ 0xB1B0,
+ 0xB1B1,
+ 0xB1CC,
+ 0xB1CD,
+ 0xB1E8,
+ 0xB1E9,
+ 0xB204,
+ 0xB205,
+ 0xB220,
+ 0xB221,
+ 0xB23C,
+ 0xB23D,
+ 0xB258,
+ 0xB259,
+ 0xB274,
+ 0xB275,
+ 0xB290,
+ 0xB291,
+ 0xB2AC,
+ 0xB2AD,
+ 0xB2C8,
+ 0xB2C9,
+ 0xB2E4,
+ 0xB2E5,
+ 0xB300,
+ 0xB301,
+ 0xB31C,
+ 0xB31D,
+ 0xB338,
+ 0xB339,
+ 0xB354,
+ 0xB355,
+ 0xB370,
+ 0xB371,
+ 0xB38C,
+ 0xB38D,
+ 0xB3A8,
+ 0xB3A9,
+ 0xB3C4,
+ 0xB3C5,
+ 0xB3E0,
+ 0xB3E1,
+ 0xB3FC,
+ 0xB3FD,
+ 0xB418,
+ 0xB419,
+ 0xB434,
+ 0xB435,
+ 0xB450,
+ 0xB451,
+ 0xB46C,
+ 0xB46D,
+ 0xB488,
+ 0xB489,
+ 0xB4A4,
+ 0xB4A5,
+ 0xB4C0,
+ 0xB4C1,
+ 0xB4DC,
+ 0xB4DD,
+ 0xB4F8,
+ 0xB4F9,
+ 0xB514,
+ 0xB515,
+ 0xB530,
+ 0xB531,
+ 0xB54C,
+ 0xB54D,
+ 0xB568,
+ 0xB569,
+ 0xB584,
+ 0xB585,
+ 0xB5A0,
+ 0xB5A1,
+ 0xB5BC,
+ 0xB5BD,
+ 0xB5D8,
+ 0xB5D9,
+ 0xB5F4,
+ 0xB5F5,
+ 0xB610,
+ 0xB611,
+ 0xB62C,
+ 0xB62D,
+ 0xB648,
+ 0xB649,
+ 0xB664,
+ 0xB665,
+ 0xB680,
+ 0xB681,
+ 0xB69C,
+ 0xB69D,
+ 0xB6B8,
+ 0xB6B9,
+ 0xB6D4,
+ 0xB6D5,
+ 0xB6F0,
+ 0xB6F1,
+ 0xB70C,
+ 0xB70D,
+ 0xB728,
+ 0xB729,
+ 0xB744,
+ 0xB745,
+ 0xB760,
+ 0xB761,
+ 0xB77C,
+ 0xB77D,
+ 0xB798,
+ 0xB799,
+ 0xB7B4,
+ 0xB7B5,
+ 0xB7D0,
+ 0xB7D1,
+ 0xB7EC,
+ 0xB7ED,
+ 0xB808,
+ 0xB809,
+ 0xB824,
+ 0xB825,
+ 0xB840,
+ 0xB841,
+ 0xB85C,
+ 0xB85D,
+ 0xB878,
+ 0xB879,
+ 0xB894,
+ 0xB895,
+ 0xB8B0,
+ 0xB8B1,
+ 0xB8CC,
+ 0xB8CD,
+ 0xB8E8,
+ 0xB8E9,
+ 0xB904,
+ 0xB905,
+ 0xB920,
+ 0xB921,
+ 0xB93C,
+ 0xB93D,
+ 0xB958,
+ 0xB959,
+ 0xB974,
+ 0xB975,
+ 0xB990,
+ 0xB991,
+ 0xB9AC,
+ 0xB9AD,
+ 0xB9C8,
+ 0xB9C9,
+ 0xB9E4,
+ 0xB9E5,
+ 0xBA00,
+ 0xBA01,
+ 0xBA1C,
+ 0xBA1D,
+ 0xBA38,
+ 0xBA39,
+ 0xBA54,
+ 0xBA55,
+ 0xBA70,
+ 0xBA71,
+ 0xBA8C,
+ 0xBA8D,
+ 0xBAA8,
+ 0xBAA9,
+ 0xBAC4,
+ 0xBAC5,
+ 0xBAE0,
+ 0xBAE1,
+ 0xBAFC,
+ 0xBAFD,
+ 0xBB18,
+ 0xBB19,
+ 0xBB34,
+ 0xBB35,
+ 0xBB50,
+ 0xBB51,
+ 0xBB6C,
+ 0xBB6D,
+ 0xBB88,
+ 0xBB89,
+ 0xBBA4,
+ 0xBBA5,
+ 0xBBC0,
+ 0xBBC1,
+ 0xBBDC,
+ 0xBBDD,
+ 0xBBF8,
+ 0xBBF9,
+ 0xBC14,
+ 0xBC15,
+ 0xBC30,
+ 0xBC31,
+ 0xBC4C,
+ 0xBC4D,
+ 0xBC68,
+ 0xBC69,
+ 0xBC84,
+ 0xBC85,
+ 0xBCA0,
+ 0xBCA1,
+ 0xBCBC,
+ 0xBCBD,
+ 0xBCD8,
+ 0xBCD9,
+ 0xBCF4,
+ 0xBCF5,
+ 0xBD10,
+ 0xBD11,
+ 0xBD2C,
+ 0xBD2D,
+ 0xBD48,
+ 0xBD49,
+ 0xBD64,
+ 0xBD65,
+ 0xBD80,
+ 0xBD81,
+ 0xBD9C,
+ 0xBD9D,
+ 0xBDB8,
+ 0xBDB9,
+ 0xBDD4,
+ 0xBDD5,
+ 0xBDF0,
+ 0xBDF1,
+ 0xBE0C,
+ 0xBE0D,
+ 0xBE28,
+ 0xBE29,
+ 0xBE44,
+ 0xBE45,
+ 0xBE60,
+ 0xBE61,
+ 0xBE7C,
+ 0xBE7D,
+ 0xBE98,
+ 0xBE99,
+ 0xBEB4,
+ 0xBEB5,
+ 0xBED0,
+ 0xBED1,
+ 0xBEEC,
+ 0xBEED,
+ 0xBF08,
+ 0xBF09,
+ 0xBF24,
+ 0xBF25,
+ 0xBF40,
+ 0xBF41,
+ 0xBF5C,
+ 0xBF5D,
+ 0xBF78,
+ 0xBF79,
+ 0xBF94,
+ 0xBF95,
+ 0xBFB0,
+ 0xBFB1,
+ 0xBFCC,
+ 0xBFCD,
+ 0xBFE8,
+ 0xBFE9,
+ 0xC004,
+ 0xC005,
+ 0xC020,
+ 0xC021,
+ 0xC03C,
+ 0xC03D,
+ 0xC058,
+ 0xC059,
+ 0xC074,
+ 0xC075,
+ 0xC090,
+ 0xC091,
+ 0xC0AC,
+ 0xC0AD,
+ 0xC0C8,
+ 0xC0C9,
+ 0xC0E4,
+ 0xC0E5,
+ 0xC100,
+ 0xC101,
+ 0xC11C,
+ 0xC11D,
+ 0xC138,
+ 0xC139,
+ 0xC154,
+ 0xC155,
+ 0xC170,
+ 0xC171,
+ 0xC18C,
+ 0xC18D,
+ 0xC1A8,
+ 0xC1A9,
+ 0xC1C4,
+ 0xC1C5,
+ 0xC1E0,
+ 0xC1E1,
+ 0xC1FC,
+ 0xC1FD,
+ 0xC218,
+ 0xC219,
+ 0xC234,
+ 0xC235,
+ 0xC250,
+ 0xC251,
+ 0xC26C,
+ 0xC26D,
+ 0xC288,
+ 0xC289,
+ 0xC2A4,
+ 0xC2A5,
+ 0xC2C0,
+ 0xC2C1,
+ 0xC2DC,
+ 0xC2DD,
+ 0xC2F8,
+ 0xC2F9,
+ 0xC314,
+ 0xC315,
+ 0xC330,
+ 0xC331,
+ 0xC34C,
+ 0xC34D,
+ 0xC368,
+ 0xC369,
+ 0xC384,
+ 0xC385,
+ 0xC3A0,
+ 0xC3A1,
+ 0xC3BC,
+ 0xC3BD,
+ 0xC3D8,
+ 0xC3D9,
+ 0xC3F4,
+ 0xC3F5,
+ 0xC410,
+ 0xC411,
+ 0xC42C,
+ 0xC42D,
+ 0xC448,
+ 0xC449,
+ 0xC464,
+ 0xC465,
+ 0xC480,
+ 0xC481,
+ 0xC49C,
+ 0xC49D,
+ 0xC4B8,
+ 0xC4B9,
+ 0xC4D4,
+ 0xC4D5,
+ 0xC4F0,
+ 0xC4F1,
+ 0xC50C,
+ 0xC50D,
+ 0xC528,
+ 0xC529,
+ 0xC544,
+ 0xC545,
+ 0xC560,
+ 0xC561,
+ 0xC57C,
+ 0xC57D,
+ 0xC598,
+ 0xC599,
+ 0xC5B4,
+ 0xC5B5,
+ 0xC5D0,
+ 0xC5D1,
+ 0xC5EC,
+ 0xC5ED,
+ 0xC608,
+ 0xC609,
+ 0xC624,
+ 0xC625,
+ 0xC640,
+ 0xC641,
+ 0xC65C,
+ 0xC65D,
+ 0xC678,
+ 0xC679,
+ 0xC694,
+ 0xC695,
+ 0xC6B0,
+ 0xC6B1,
+ 0xC6CC,
+ 0xC6CD,
+ 0xC6E8,
+ 0xC6E9,
+ 0xC704,
+ 0xC705,
+ 0xC720,
+ 0xC721,
+ 0xC73C,
+ 0xC73D,
+ 0xC758,
+ 0xC759,
+ 0xC774,
+ 0xC775,
+ 0xC790,
+ 0xC791,
+ 0xC7AC,
+ 0xC7AD,
+ 0xC7C8,
+ 0xC7C9,
+ 0xC7E4,
+ 0xC7E5,
+ 0xC800,
+ 0xC801,
+ 0xC81C,
+ 0xC81D,
+ 0xC838,
+ 0xC839,
+ 0xC854,
+ 0xC855,
+ 0xC870,
+ 0xC871,
+ 0xC88C,
+ 0xC88D,
+ 0xC8A8,
+ 0xC8A9,
+ 0xC8C4,
+ 0xC8C5,
+ 0xC8E0,
+ 0xC8E1,
+ 0xC8FC,
+ 0xC8FD,
+ 0xC918,
+ 0xC919,
+ 0xC934,
+ 0xC935,
+ 0xC950,
+ 0xC951,
+ 0xC96C,
+ 0xC96D,
+ 0xC988,
+ 0xC989,
+ 0xC9A4,
+ 0xC9A5,
+ 0xC9C0,
+ 0xC9C1,
+ 0xC9DC,
+ 0xC9DD,
+ 0xC9F8,
+ 0xC9F9,
+ 0xCA14,
+ 0xCA15,
+ 0xCA30,
+ 0xCA31,
+ 0xCA4C,
+ 0xCA4D,
+ 0xCA68,
+ 0xCA69,
+ 0xCA84,
+ 0xCA85,
+ 0xCAA0,
+ 0xCAA1,
+ 0xCABC,
+ 0xCABD,
+ 0xCAD8,
+ 0xCAD9,
+ 0xCAF4,
+ 0xCAF5,
+ 0xCB10,
+ 0xCB11,
+ 0xCB2C,
+ 0xCB2D,
+ 0xCB48,
+ 0xCB49,
+ 0xCB64,
+ 0xCB65,
+ 0xCB80,
+ 0xCB81,
+ 0xCB9C,
+ 0xCB9D,
+ 0xCBB8,
+ 0xCBB9,
+ 0xCBD4,
+ 0xCBD5,
+ 0xCBF0,
+ 0xCBF1,
+ 0xCC0C,
+ 0xCC0D,
+ 0xCC28,
+ 0xCC29,
+ 0xCC44,
+ 0xCC45,
+ 0xCC60,
+ 0xCC61,
+ 0xCC7C,
+ 0xCC7D,
+ 0xCC98,
+ 0xCC99,
+ 0xCCB4,
+ 0xCCB5,
+ 0xCCD0,
+ 0xCCD1,
+ 0xCCEC,
+ 0xCCED,
+ 0xCD08,
+ 0xCD09,
+ 0xCD24,
+ 0xCD25,
+ 0xCD40,
+ 0xCD41,
+ 0xCD5C,
+ 0xCD5D,
+ 0xCD78,
+ 0xCD79,
+ 0xCD94,
+ 0xCD95,
+ 0xCDB0,
+ 0xCDB1,
+ 0xCDCC,
+ 0xCDCD,
+ 0xCDE8,
+ 0xCDE9,
+ 0xCE04,
+ 0xCE05,
+ 0xCE20,
+ 0xCE21,
+ 0xCE3C,
+ 0xCE3D,
+ 0xCE58,
+ 0xCE59,
+ 0xCE74,
+ 0xCE75,
+ 0xCE90,
+ 0xCE91,
+ 0xCEAC,
+ 0xCEAD,
+ 0xCEC8,
+ 0xCEC9,
+ 0xCEE4,
+ 0xCEE5,
+ 0xCF00,
+ 0xCF01,
+ 0xCF1C,
+ 0xCF1D,
+ 0xCF38,
+ 0xCF39,
+ 0xCF54,
+ 0xCF55,
+ 0xCF70,
+ 0xCF71,
+ 0xCF8C,
+ 0xCF8D,
+ 0xCFA8,
+ 0xCFA9,
+ 0xCFC4,
+ 0xCFC5,
+ 0xCFE0,
+ 0xCFE1,
+ 0xCFFC,
+ 0xCFFD,
+ 0xD018,
+ 0xD019,
+ 0xD034,
+ 0xD035,
+ 0xD050,
+ 0xD051,
+ 0xD06C,
+ 0xD06D,
+ 0xD088,
+ 0xD089,
+ 0xD0A4,
+ 0xD0A5,
+ 0xD0C0,
+ 0xD0C1,
+ 0xD0DC,
+ 0xD0DD,
+ 0xD0F8,
+ 0xD0F9,
+ 0xD114,
+ 0xD115,
+ 0xD130,
+ 0xD131,
+ 0xD14C,
+ 0xD14D,
+ 0xD168,
+ 0xD169,
+ 0xD184,
+ 0xD185,
+ 0xD1A0,
+ 0xD1A1,
+ 0xD1BC,
+ 0xD1BD,
+ 0xD1D8,
+ 0xD1D9,
+ 0xD1F4,
+ 0xD1F5,
+ 0xD210,
+ 0xD211,
+ 0xD22C,
+ 0xD22D,
+ 0xD248,
+ 0xD249,
+ 0xD264,
+ 0xD265,
+ 0xD280,
+ 0xD281,
+ 0xD29C,
+ 0xD29D,
+ 0xD2B8,
+ 0xD2B9,
+ 0xD2D4,
+ 0xD2D5,
+ 0xD2F0,
+ 0xD2F1,
+ 0xD30C,
+ 0xD30D,
+ 0xD328,
+ 0xD329,
+ 0xD344,
+ 0xD345,
+ 0xD360,
+ 0xD361,
+ 0xD37C,
+ 0xD37D,
+ 0xD398,
+ 0xD399,
+ 0xD3B4,
+ 0xD3B5,
+ 0xD3D0,
+ 0xD3D1,
+ 0xD3EC,
+ 0xD3ED,
+ 0xD408,
+ 0xD409,
+ 0xD424,
+ 0xD425,
+ 0xD440,
+ 0xD441,
+ 0xD45C,
+ 0xD45D,
+ 0xD478,
+ 0xD479,
+ 0xD494,
+ 0xD495,
+ 0xD4B0,
+ 0xD4B1,
+ 0xD4CC,
+ 0xD4CD,
+ 0xD4E8,
+ 0xD4E9,
+ 0xD504,
+ 0xD505,
+ 0xD520,
+ 0xD521,
+ 0xD53C,
+ 0xD53D,
+ 0xD558,
+ 0xD559,
+ 0xD574,
+ 0xD575,
+ 0xD590,
+ 0xD591,
+ 0xD5AC,
+ 0xD5AD,
+ 0xD5C8,
+ 0xD5C9,
+ 0xD5E4,
+ 0xD5E5,
+ 0xD600,
+ 0xD601,
+ 0xD61C,
+ 0xD61D,
+ 0xD638,
+ 0xD639,
+ 0xD654,
+ 0xD655,
+ 0xD670,
+ 0xD671,
+ 0xD68C,
+ 0xD68D,
+ 0xD6A8,
+ 0xD6A9,
+ 0xD6C4,
+ 0xD6C5,
+ 0xD6E0,
+ 0xD6E1,
+ 0xD6FC,
+ 0xD6FD,
+ 0xD718,
+ 0xD719,
+ 0xD734,
+ 0xD735,
+ 0xD750,
+ 0xD751,
+ 0xD76C,
+ 0xD76D,
+ 0xD788,
+ 0xD789,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xD800,
+ 0xE000,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFE00,
+ 0xFE10,
+ 0xFE20,
+ 0xFE2E,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFF0,
+ 0xFFFC,
+ 0x101FD,
+ 0x101FE,
+ 0x102E0,
+ 0x102E1,
+ 0x10376,
+ 0x1037B,
+ 0x10A01,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A10,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10AE5,
+ 0x10AE7,
+ 0x11000,
+ 0x11001,
+ 0x11002,
+ 0x11003,
+ 0x11038,
+ 0x11047,
+ 0x1107F,
+ 0x11082,
+ 0x11083,
+ 0x110B0,
+ 0x110B3,
+ 0x110B7,
+ 0x110B9,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x11100,
+ 0x11103,
+ 0x11127,
+ 0x1112C,
+ 0x1112D,
+ 0x11135,
+ 0x11173,
+ 0x11174,
+ 0x11180,
+ 0x11182,
+ 0x11183,
+ 0x111B3,
+ 0x111B6,
+ 0x111BF,
+ 0x111C1,
+ 0x1122C,
+ 0x1122F,
+ 0x11232,
+ 0x11234,
+ 0x11235,
+ 0x11236,
+ 0x11238,
+ 0x112DF,
+ 0x112E0,
+ 0x112E3,
+ 0x112EB,
+ 0x11301,
+ 0x11302,
+ 0x11304,
+ 0x1133C,
+ 0x1133D,
+ 0x1133E,
+ 0x1133F,
+ 0x11340,
+ 0x11341,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x11362,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x114B0,
+ 0x114B1,
+ 0x114B3,
+ 0x114B9,
+ 0x114BA,
+ 0x114BB,
+ 0x114BD,
+ 0x114BE,
+ 0x114BF,
+ 0x114C1,
+ 0x114C2,
+ 0x114C4,
+ 0x115AF,
+ 0x115B0,
+ 0x115B2,
+ 0x115B6,
+ 0x115B8,
+ 0x115BC,
+ 0x115BE,
+ 0x115BF,
+ 0x115C1,
+ 0x11630,
+ 0x11633,
+ 0x1163B,
+ 0x1163D,
+ 0x1163E,
+ 0x1163F,
+ 0x11641,
+ 0x116AB,
+ 0x116AC,
+ 0x116AD,
+ 0x116AE,
+ 0x116B0,
+ 0x116B6,
+ 0x116B7,
+ 0x116B8,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B30,
+ 0x16B37,
+ 0x16F51,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16F93,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1BCA0,
+ 0x1BCA4,
+ 0x1D165,
+ 0x1D166,
+ 0x1D167,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D16E,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1F1E6,
+ 0x1F200,
+ 0xE0000,
+ 0xE0100,
+ 0xE01F0,
+ 0xE1000
};
-#endif
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
-#ifndef PERL_IN_XSUB_RE
+#define GCB_ENUM_COUNT 14
-static const UV XPosixPunct_invlist[] = {
- 273, /* Number of elements */
+typedef enum {
+ GCB_Other = 0,
+ GCB_CR = 1,
+ GCB_Control = 2,
+ GCB_EDGE = 3,
+ GCB_Extend = 4,
+ GCB_L = 5,
+ GCB_LF = 6,
+ GCB_LV = 7,
+ GCB_LVT = 8,
+ GCB_Prepend = 9,
+ GCB_Regional_Indicator = 10,
+ GCB_SpacingMark = 11,
+ GCB_T = 12,
+ GCB_V = 13
+} GCB_enum;
+
+static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC 037 */
+ GCB_Control,
+ GCB_CR,
+ GCB_Control,
+ GCB_LF,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_L,
+ GCB_V,
+ GCB_T,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_L,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_Other,
+ GCB_V,
+ GCB_Other,
+ GCB_T,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Regional_Indicator,
+ GCB_Other,
+ GCB_Control,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 037 */
+ 45, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 33,
- 48,
- 58,
- 65,
- 91,
- 97,
- 123,
- 127,
- 161,
- 162,
- 167,
- 168,
- 171,
- 172,
- 182,
- 184,
- 187,
- 188,
- 191,
- 192,
- 894,
- 895,
- 903,
- 904,
- 1370,
- 1376,
- 1417,
- 1419,
- 1470,
- 1471,
- 1472,
- 1473,
- 1475,
- 1476,
- 1478,
- 1479,
- 1523,
- 1525,
- 1545,
- 1547,
- 1548,
- 1550,
- 1563,
- 1564,
- 1566,
- 1568,
- 1642,
- 1646,
- 1748,
- 1749,
- 1792,
- 1806,
- 2039,
- 2042,
- 2096,
- 2111,
- 2142,
- 2143,
- 2404,
- 2406,
- 2416,
- 2417,
- 2800,
- 2801,
- 3572,
- 3573,
- 3663,
- 3664,
- 3674,
- 3676,
- 3844,
- 3859,
- 3860,
- 3861,
- 3898,
- 3902,
- 3973,
- 3974,
- 4048,
- 4053,
- 4057,
- 4059,
- 4170,
- 4176,
- 4347,
- 4348,
- 4960,
- 4969,
- 5120,
- 5121,
- 5741,
- 5743,
- 5787,
- 5789,
- 5867,
- 5870,
- 5941,
- 5943,
- 6100,
- 6103,
- 6104,
- 6107,
- 6144,
- 6155,
- 6468,
- 6470,
- 6686,
- 6688,
- 6816,
- 6823,
- 6824,
- 6830,
- 7002,
- 7009,
- 7164,
- 7168,
- 7227,
- 7232,
- 7294,
- 7296,
- 7360,
- 7368,
- 7379,
- 7380,
- 8208,
- 8232,
- 8240,
- 8260,
- 8261,
- 8274,
- 8275,
- 8287,
- 8317,
- 8319,
- 8333,
- 8335,
- 8968,
- 8972,
- 9001,
- 9003,
- 10088,
- 10102,
- 10181,
- 10183,
- 10214,
- 10224,
- 10627,
- 10649,
- 10712,
- 10716,
- 10748,
- 10750,
- 11513,
- 11517,
- 11518,
- 11520,
- 11632,
- 11633,
- 11776,
- 11823,
- 11824,
- 11836,
- 12289,
- 12292,
- 12296,
- 12306,
- 12308,
- 12320,
- 12336,
- 12337,
- 12349,
- 12350,
- 12448,
- 12449,
- 12539,
- 12540,
- 42238,
- 42240,
- 42509,
- 42512,
- 42611,
- 42612,
- 42622,
- 42623,
- 42738,
- 42744,
- 43124,
- 43128,
- 43214,
- 43216,
- 43256,
- 43259,
- 43310,
- 43312,
- 43359,
- 43360,
- 43457,
- 43470,
- 43486,
- 43488,
- 43612,
- 43616,
- 43742,
- 43744,
- 43760,
- 43762,
- 44011,
- 44012,
- 64830,
- 64832,
- 65040,
- 65050,
- 65072,
- 65107,
- 65108,
- 65122,
- 65123,
- 65124,
- 65128,
- 65129,
- 65130,
- 65132,
- 65281,
- 65284,
- 65285,
- 65291,
- 65292,
- 65296,
- 65306,
- 65308,
- 65311,
- 65313,
- 65339,
- 65342,
- 65343,
- 65344,
- 65371,
- 65372,
- 65373,
- 65374,
- 65375,
- 65382,
- 65792,
- 65795,
- 66463,
- 66464,
- 66512,
- 66513,
- 67671,
- 67672,
- 67871,
- 67872,
- 67903,
- 67904,
- 68176,
- 68185,
- 68223,
- 68224,
- 68409,
- 68416,
- 69703,
- 69710,
- 69819,
- 69821,
- 69822,
- 69826,
- 69952,
- 69956,
- 70085,
- 70089,
- 74864,
- 74868
+ 0x0,
+ 0x2BC,
+ 0x2BD,
+ 0x308,
+ 0x309,
+ 0x313,
+ 0x314,
+ 0x342,
+ 0x343,
+ 0x3AC,
+ 0x3AD,
+ 0x3AE,
+ 0x3AF,
+ 0x3B1,
+ 0x3B2,
+ 0x3B7,
+ 0x3B8,
+ 0x3B9,
+ 0x3BA,
+ 0x3C1,
+ 0x3C2,
+ 0x3C5,
+ 0x3C6,
+ 0x3C9,
+ 0x3CA,
+ 0x3CE,
+ 0x3CF,
+ 0x565,
+ 0x566,
+ 0x574,
+ 0x575,
+ 0x57E,
+ 0x57F,
+ 0x1F00,
+ 0x1F08,
+ 0x1F20,
+ 0x1F28,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1F71,
+ 0x1F74,
+ 0x1F75,
+ 0x1F7C,
+ 0x1F7D
};
-#endif
+static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 037 */
+ 263, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9A,
+ 0x9C,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x131,
+ 0x132,
+ 0x138,
+ 0x139,
+ 0x18D,
+ 0x18E,
+ 0x19B,
+ 0x19C,
+ 0x1AA,
+ 0x1AC,
+ 0x1BA,
+ 0x1BC,
+ 0x1BE,
+ 0x1BF,
+ 0x1C0,
+ 0x1C4,
+ 0x221,
+ 0x222,
+ 0x234,
+ 0x23A,
+ 0x255,
+ 0x256,
+ 0x258,
+ 0x259,
+ 0x25A,
+ 0x25B,
+ 0x25D,
+ 0x260,
+ 0x262,
+ 0x263,
+ 0x264,
+ 0x265,
+ 0x267,
+ 0x268,
+ 0x26A,
+ 0x26B,
+ 0x26D,
+ 0x26F,
+ 0x270,
+ 0x271,
+ 0x273,
+ 0x275,
+ 0x276,
+ 0x27D,
+ 0x27E,
+ 0x280,
+ 0x281,
+ 0x283,
+ 0x284,
+ 0x287,
+ 0x28D,
+ 0x292,
+ 0x293,
+ 0x29E,
+ 0x29F,
+ 0x2BC,
+ 0x2BD,
+ 0x2BE,
+ 0x2BF,
+ 0x300,
+ 0x302,
+ 0x307,
+ 0x309,
+ 0x30A,
+ 0x30B,
+ 0x30C,
+ 0x30D,
+ 0x313,
+ 0x314,
+ 0x331,
+ 0x332,
+ 0x342,
+ 0x343,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x374,
+ 0x376,
+ 0x378,
+ 0x37B,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3D2,
+ 0x3D5,
+ 0x3F6,
+ 0x3F7,
+ 0x3FC,
+ 0x3FD,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x561,
+ 0x588,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x1D79,
+ 0x1D7A,
+ 0x1D7D,
+ 0x1D7E,
+ 0x1E00,
+ 0x1E9C,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2126,
+ 0x2127,
+ 0x212A,
+ 0x212C,
+ 0x2132,
+ 0x2133,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2180,
+ 0x2183,
+ 0x2185,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2C71,
+ 0x2C72,
+ 0x2C74,
+ 0x2C75,
+ 0x2C77,
+ 0x2C7E,
+ 0x2CE4,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0xA640,
+ 0xA66E,
+ 0xA680,
+ 0xA69C,
+ 0xA722,
+ 0xA730,
+ 0xA732,
+ 0xA770,
+ 0xA779,
+ 0xA788,
+ 0xA78B,
+ 0xA78E,
+ 0xA790,
+ 0xA794,
+ 0xA796,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0x10400,
+ 0x10450,
+ 0x118A0,
+ 0x118E0
+};
-#ifndef PERL_IN_XSUB_RE
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 037 */
+ 59, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x59,
+ 0x5A,
+ 0x130,
+ 0x131,
+ 0x149,
+ 0x14A,
+ 0x1F0,
+ 0x1F1,
+ 0x390,
+ 0x391,
+ 0x3B0,
+ 0x3B1,
+ 0x587,
+ 0x588,
+ 0x1E96,
+ 0x1E9B,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1F50,
+ 0x1F51,
+ 0x1F52,
+ 0x1F53,
+ 0x1F54,
+ 0x1F55,
+ 0x1F56,
+ 0x1F57,
+ 0x1F80,
+ 0x1FB0,
+ 0x1FB2,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FB8,
+ 0x1FBC,
+ 0x1FBD,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FC8,
+ 0x1FCC,
+ 0x1FCD,
+ 0x1FD2,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FD8,
+ 0x1FE2,
+ 0x1FE5,
+ 0x1FE6,
+ 0x1FE8,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FF8,
+ 0x1FFC,
+ 0x1FFD,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18
+};
-static const UV XPosixSpace_invlist[] = {
- 21, /* Number of elements */
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_UTF8_C)
+
+static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
+ 1287, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x6D,
+ 0x6E,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xFA,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37B,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x483,
+ 0x488,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6DF,
+ 0x6E9,
+ 0x6EA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x840,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x1000,
+ 0x104A,
+ 0x1050,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1735,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x180B,
+ 0x180E,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1946,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AB0,
+ 0x1ABE,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C38,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C7E,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x203F,
+ 0x2041,
+ 0x2054,
+ 0x2055,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20DD,
+ 0x20E1,
+ 0x20E2,
+ 0x20E5,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA62C,
+ 0xA640,
+ 0xA670,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F2,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C5,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA92E,
+ 0xA930,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9C1,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFC5E,
+ 0xFC64,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFA,
+ 0xFE00,
+ 0xFE10,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE33,
+ 0xFE35,
+ 0xFE4D,
+ 0xFE50,
+ 0xFE71,
+ 0xFE72,
+ 0xFE73,
+ 0xFE74,
+ 0xFE77,
+ 0xFE78,
+ 0xFE79,
+ 0xFE7A,
+ 0xFE7B,
+ 0xFE7C,
+ 0xFE7D,
+ 0xFE7E,
+ 0xFE7F,
+ 0xFEFD,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11047,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x110BB,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C5,
+ 0x111D0,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11238,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x11600,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0100,
+ 0xE01F0
+};
+
+static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
+ 1117, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 9,
- 14,
- 32,
- 33,
- 133,
- 134,
- 160,
- 161,
- 5760,
- 5761,
- 8192,
- 8203,
- 8232,
- 8234,
- 8239,
- 8240,
- 8287,
- 8288,
- 12288,
- 12289
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x6D,
+ 0x6E,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37B,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x620,
+ 0x64B,
+ 0x66E,
+ 0x670,
+ 0x671,
+ 0x6D4,
+ 0x6D5,
+ 0x6D6,
+ 0x6E5,
+ 0x6E7,
+ 0x6EE,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74D,
+ 0x7A6,
+ 0x7B1,
+ 0x7B2,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x840,
+ 0x859,
+ 0x8A0,
+ 0x8B3,
+ 0x904,
+ 0x93A,
+ 0x93D,
+ 0x93E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x971,
+ 0x981,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BD,
+ 0x9BE,
+ 0x9CE,
+ 0x9CF,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E2,
+ 0x9F0,
+ 0x9F2,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA72,
+ 0xA75,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABD,
+ 0xABE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE2,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3D,
+ 0xB3E,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB62,
+ 0xB71,
+ 0xB72,
+ 0xB83,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBD0,
+ 0xBD1,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC3E,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC62,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBD,
+ 0xCBE,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE2,
+ 0xCF1,
+ 0xCF3,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD3E,
+ 0xD4E,
+ 0xD4F,
+ 0xD60,
+ 0xD62,
+ 0xD7A,
+ 0xD80,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xE01,
+ 0xE31,
+ 0xE32,
+ 0xE33,
+ 0xE40,
+ 0xE47,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEB1,
+ 0xEB2,
+ 0xEB3,
+ 0xEBD,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF88,
+ 0xF8D,
+ 0x1000,
+ 0x102B,
+ 0x103F,
+ 0x1040,
+ 0x1050,
+ 0x1056,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1062,
+ 0x1065,
+ 0x1067,
+ 0x106E,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x108E,
+ 0x108F,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1712,
+ 0x1720,
+ 0x1732,
+ 0x1740,
+ 0x1752,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1780,
+ 0x17B4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18A9,
+ 0x18AA,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1950,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19C1,
+ 0x19C8,
+ 0x1A00,
+ 0x1A17,
+ 0x1A20,
+ 0x1A55,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1B05,
+ 0x1B34,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BAE,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1C00,
+ 0x1C24,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1D00,
+ 0x1DC0,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x302A,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA67F,
+ 0xA69E,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA840,
+ 0xA874,
+ 0xA882,
+ 0xA8B4,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA90A,
+ 0xA926,
+ 0xA930,
+ 0xA947,
+ 0xA960,
+ 0xA97D,
+ 0xA984,
+ 0xA9B3,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA29,
+ 0xAA40,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAEB,
+ 0xAAF2,
+ 0xAAF5,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABE3,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFC5E,
+ 0xFC64,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFA,
+ 0xFE71,
+ 0xFE72,
+ 0xFE73,
+ 0xFE74,
+ 0xFE77,
+ 0xFE78,
+ 0xFE79,
+ 0xFE7A,
+ 0xFE7B,
+ 0xFE7C,
+ 0xFE7D,
+ 0xFE7E,
+ 0xFE7F,
+ 0xFEFD,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x10376,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A01,
+ 0x10A10,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11003,
+ 0x11038,
+ 0x11083,
+ 0x110B0,
+ 0x110D0,
+ 0x110E9,
+ 0x11103,
+ 0x11127,
+ 0x11150,
+ 0x11173,
+ 0x11176,
+ 0x11177,
+ 0x11183,
+ 0x111B3,
+ 0x111C1,
+ 0x111C5,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1122C,
+ 0x112B0,
+ 0x112DF,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133D,
+ 0x1133E,
+ 0x1135D,
+ 0x11362,
+ 0x11480,
+ 0x114B0,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x11580,
+ 0x115AF,
+ 0x11600,
+ 0x11630,
+ 0x11644,
+ 0x11645,
+ 0x11680,
+ 0x116AB,
+ 0x118A0,
+ 0x118E0,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16B00,
+ 0x16B30,
+ 0x16B40,
+ 0x16B44,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F51,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E
+};
+
+#endif /* defined(PERL_IN_UTF8_C) */
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV Sentence_Break_invlist[] = { /* for EBCDIC 037 */
+ 2855, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x5,
+ 0x6,
+ 0xB,
+ 0xD,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x40,
+ 0x42,
+ 0x4A,
+ 0x4B,
+ 0x4C,
+ 0x4D,
+ 0x4E,
+ 0x51,
+ 0x5A,
+ 0x5B,
+ 0x5D,
+ 0x5E,
+ 0x60,
+ 0x61,
+ 0x62,
+ 0x6A,
+ 0x6B,
+ 0x6C,
+ 0x6F,
+ 0x70,
+ 0x71,
+ 0x79,
+ 0x7A,
+ 0x7B,
+ 0x7D,
+ 0x7E,
+ 0x7F,
+ 0x80,
+ 0x81,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xBA,
+ 0xBC,
+ 0xC0,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFA,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x101,
+ 0x102,
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x106,
+ 0x107,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x10E,
+ 0x10F,
+ 0x110,
+ 0x111,
+ 0x112,
+ 0x113,
+ 0x114,
+ 0x115,
+ 0x116,
+ 0x117,
+ 0x118,
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x11C,
+ 0x11D,
+ 0x11E,
+ 0x11F,
+ 0x120,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x124,
+ 0x125,
+ 0x126,
+ 0x127,
+ 0x128,
+ 0x129,
+ 0x12A,
+ 0x12B,
+ 0x12C,
+ 0x12D,
+ 0x12E,
+ 0x12F,
+ 0x130,
+ 0x131,
+ 0x132,
+ 0x133,
+ 0x134,
+ 0x135,
+ 0x136,
+ 0x137,
+ 0x139,
+ 0x13A,
+ 0x13B,
+ 0x13C,
+ 0x13D,
+ 0x13E,
+ 0x13F,
+ 0x140,
+ 0x141,
+ 0x142,
+ 0x143,
+ 0x144,
+ 0x145,
+ 0x146,
+ 0x147,
+ 0x148,
+ 0x14A,
+ 0x14B,
+ 0x14C,
+ 0x14D,
+ 0x14E,
+ 0x14F,
+ 0x150,
+ 0x151,
+ 0x152,
+ 0x153,
+ 0x154,
+ 0x155,
+ 0x156,
+ 0x157,
+ 0x158,
+ 0x159,
+ 0x15A,
+ 0x15B,
+ 0x15C,
+ 0x15D,
+ 0x15E,
+ 0x15F,
+ 0x160,
+ 0x161,
+ 0x162,
+ 0x163,
+ 0x164,
+ 0x165,
+ 0x166,
+ 0x167,
+ 0x168,
+ 0x169,
+ 0x16A,
+ 0x16B,
+ 0x16C,
+ 0x16D,
+ 0x16E,
+ 0x16F,
+ 0x170,
+ 0x171,
+ 0x172,
+ 0x173,
+ 0x174,
+ 0x175,
+ 0x176,
+ 0x177,
+ 0x178,
+ 0x17A,
+ 0x17B,
+ 0x17C,
+ 0x17D,
+ 0x17E,
+ 0x181,
+ 0x183,
+ 0x184,
+ 0x185,
+ 0x186,
+ 0x188,
+ 0x189,
+ 0x18C,
+ 0x18E,
+ 0x192,
+ 0x193,
+ 0x195,
+ 0x196,
+ 0x199,
+ 0x19C,
+ 0x19E,
+ 0x19F,
+ 0x1A1,
+ 0x1A2,
+ 0x1A3,
+ 0x1A4,
+ 0x1A5,
+ 0x1A6,
+ 0x1A8,
+ 0x1A9,
+ 0x1AA,
+ 0x1AC,
+ 0x1AD,
+ 0x1AE,
+ 0x1B0,
+ 0x1B1,
+ 0x1B4,
+ 0x1B5,
+ 0x1B6,
+ 0x1B7,
+ 0x1B9,
+ 0x1BB,
+ 0x1BC,
+ 0x1BD,
+ 0x1C0,
+ 0x1C4,
+ 0x1C6,
+ 0x1C7,
+ 0x1C9,
+ 0x1CA,
+ 0x1CC,
+ 0x1CD,
+ 0x1CE,
+ 0x1CF,
+ 0x1D0,
+ 0x1D1,
+ 0x1D2,
+ 0x1D3,
+ 0x1D4,
+ 0x1D5,
+ 0x1D6,
+ 0x1D7,
+ 0x1D8,
+ 0x1D9,
+ 0x1DA,
+ 0x1DB,
+ 0x1DC,
+ 0x1DE,
+ 0x1DF,
+ 0x1E0,
+ 0x1E1,
+ 0x1E2,
+ 0x1E3,
+ 0x1E4,
+ 0x1E5,
+ 0x1E6,
+ 0x1E7,
+ 0x1E8,
+ 0x1E9,
+ 0x1EA,
+ 0x1EB,
+ 0x1EC,
+ 0x1ED,
+ 0x1EE,
+ 0x1EF,
+ 0x1F1,
+ 0x1F3,
+ 0x1F4,
+ 0x1F5,
+ 0x1F6,
+ 0x1F9,
+ 0x1FA,
+ 0x1FB,
+ 0x1FC,
+ 0x1FD,
+ 0x1FE,
+ 0x1FF,
+ 0x200,
+ 0x201,
+ 0x202,
+ 0x203,
+ 0x204,
+ 0x205,
+ 0x206,
+ 0x207,
+ 0x208,
+ 0x209,
+ 0x20A,
+ 0x20B,
+ 0x20C,
+ 0x20D,
+ 0x20E,
+ 0x20F,
+ 0x210,
+ 0x211,
+ 0x212,
+ 0x213,
+ 0x214,
+ 0x215,
+ 0x216,
+ 0x217,
+ 0x218,
+ 0x219,
+ 0x21A,
+ 0x21B,
+ 0x21C,
+ 0x21D,
+ 0x21E,
+ 0x21F,
+ 0x220,
+ 0x221,
+ 0x222,
+ 0x223,
+ 0x224,
+ 0x225,
+ 0x226,
+ 0x227,
+ 0x228,
+ 0x229,
+ 0x22A,
+ 0x22B,
+ 0x22C,
+ 0x22D,
+ 0x22E,
+ 0x22F,
+ 0x230,
+ 0x231,
+ 0x232,
+ 0x233,
+ 0x23A,
+ 0x23C,
+ 0x23D,
+ 0x23F,
+ 0x241,
+ 0x242,
+ 0x243,
+ 0x247,
+ 0x248,
+ 0x249,
+ 0x24A,
+ 0x24B,
+ 0x24C,
+ 0x24D,
+ 0x24E,
+ 0x24F,
+ 0x294,
+ 0x295,
+ 0x2B9,
+ 0x2C0,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x370,
+ 0x371,
+ 0x372,
+ 0x373,
+ 0x374,
+ 0x375,
+ 0x376,
+ 0x377,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x390,
+ 0x391,
+ 0x3A2,
+ 0x3A3,
+ 0x3AC,
+ 0x3CF,
+ 0x3D0,
+ 0x3D2,
+ 0x3D5,
+ 0x3D8,
+ 0x3D9,
+ 0x3DA,
+ 0x3DB,
+ 0x3DC,
+ 0x3DD,
+ 0x3DE,
+ 0x3DF,
+ 0x3E0,
+ 0x3E1,
+ 0x3E2,
+ 0x3E3,
+ 0x3E4,
+ 0x3E5,
+ 0x3E6,
+ 0x3E7,
+ 0x3E8,
+ 0x3E9,
+ 0x3EA,
+ 0x3EB,
+ 0x3EC,
+ 0x3ED,
+ 0x3EE,
+ 0x3EF,
+ 0x3F4,
+ 0x3F5,
+ 0x3F6,
+ 0x3F7,
+ 0x3F8,
+ 0x3F9,
+ 0x3FB,
+ 0x3FD,
+ 0x430,
+ 0x460,
+ 0x461,
+ 0x462,
+ 0x463,
+ 0x464,
+ 0x465,
+ 0x466,
+ 0x467,
+ 0x468,
+ 0x469,
+ 0x46A,
+ 0x46B,
+ 0x46C,
+ 0x46D,
+ 0x46E,
+ 0x46F,
+ 0x470,
+ 0x471,
+ 0x472,
+ 0x473,
+ 0x474,
+ 0x475,
+ 0x476,
+ 0x477,
+ 0x478,
+ 0x479,
+ 0x47A,
+ 0x47B,
+ 0x47C,
+ 0x47D,
+ 0x47E,
+ 0x47F,
+ 0x480,
+ 0x481,
+ 0x482,
+ 0x483,
+ 0x48A,
+ 0x48B,
+ 0x48C,
+ 0x48D,
+ 0x48E,
+ 0x48F,
+ 0x490,
+ 0x491,
+ 0x492,
+ 0x493,
+ 0x494,
+ 0x495,
+ 0x496,
+ 0x497,
+ 0x498,
+ 0x499,
+ 0x49A,
+ 0x49B,
+ 0x49C,
+ 0x49D,
+ 0x49E,
+ 0x49F,
+ 0x4A0,
+ 0x4A1,
+ 0x4A2,
+ 0x4A3,
+ 0x4A4,
+ 0x4A5,
+ 0x4A6,
+ 0x4A7,
+ 0x4A8,
+ 0x4A9,
+ 0x4AA,
+ 0x4AB,
+ 0x4AC,
+ 0x4AD,
+ 0x4AE,
+ 0x4AF,
+ 0x4B0,
+ 0x4B1,
+ 0x4B2,
+ 0x4B3,
+ 0x4B4,
+ 0x4B5,
+ 0x4B6,
+ 0x4B7,
+ 0x4B8,
+ 0x4B9,
+ 0x4BA,
+ 0x4BB,
+ 0x4BC,
+ 0x4BD,
+ 0x4BE,
+ 0x4BF,
+ 0x4C0,
+ 0x4C2,
+ 0x4C3,
+ 0x4C4,
+ 0x4C5,
+ 0x4C6,
+ 0x4C7,
+ 0x4C8,
+ 0x4C9,
+ 0x4CA,
+ 0x4CB,
+ 0x4CC,
+ 0x4CD,
+ 0x4CE,
+ 0x4D0,
+ 0x4D1,
+ 0x4D2,
+ 0x4D3,
+ 0x4D4,
+ 0x4D5,
+ 0x4D6,
+ 0x4D7,
+ 0x4D8,
+ 0x4D9,
+ 0x4DA,
+ 0x4DB,
+ 0x4DC,
+ 0x4DD,
+ 0x4DE,
+ 0x4DF,
+ 0x4E0,
+ 0x4E1,
+ 0x4E2,
+ 0x4E3,
+ 0x4E4,
+ 0x4E5,
+ 0x4E6,
+ 0x4E7,
+ 0x4E8,
+ 0x4E9,
+ 0x4EA,
+ 0x4EB,
+ 0x4EC,
+ 0x4ED,
+ 0x4EE,
+ 0x4EF,
+ 0x4F0,
+ 0x4F1,
+ 0x4F2,
+ 0x4F3,
+ 0x4F4,
+ 0x4F5,
+ 0x4F6,
+ 0x4F7,
+ 0x4F8,
+ 0x4F9,
+ 0x4FA,
+ 0x4FB,
+ 0x4FC,
+ 0x4FD,
+ 0x4FE,
+ 0x4FF,
+ 0x500,
+ 0x501,
+ 0x502,
+ 0x503,
+ 0x504,
+ 0x505,
+ 0x506,
+ 0x507,
+ 0x508,
+ 0x509,
+ 0x50A,
+ 0x50B,
+ 0x50C,
+ 0x50D,
+ 0x50E,
+ 0x50F,
+ 0x510,
+ 0x511,
+ 0x512,
+ 0x513,
+ 0x514,
+ 0x515,
+ 0x516,
+ 0x517,
+ 0x518,
+ 0x519,
+ 0x51A,
+ 0x51B,
+ 0x51C,
+ 0x51D,
+ 0x51E,
+ 0x51F,
+ 0x520,
+ 0x521,
+ 0x522,
+ 0x523,
+ 0x524,
+ 0x525,
+ 0x526,
+ 0x527,
+ 0x528,
+ 0x529,
+ 0x52A,
+ 0x52B,
+ 0x52C,
+ 0x52D,
+ 0x52E,
+ 0x52F,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x55D,
+ 0x55E,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58A,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F4,
+ 0x600,
+ 0x606,
+ 0x60C,
+ 0x60E,
+ 0x610,
+ 0x61B,
+ 0x61C,
+ 0x61D,
+ 0x61F,
+ 0x620,
+ 0x64B,
+ 0x660,
+ 0x66A,
+ 0x66B,
+ 0x66D,
+ 0x66E,
+ 0x670,
+ 0x671,
+ 0x6D4,
+ 0x6D5,
+ 0x6D6,
+ 0x6DD,
+ 0x6DE,
+ 0x6DF,
+ 0x6E5,
+ 0x6E7,
+ 0x6E9,
+ 0x6EA,
+ 0x6EE,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x703,
+ 0x70F,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74B,
+ 0x74D,
+ 0x7A6,
+ 0x7B1,
+ 0x7B2,
+ 0x7C0,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7F8,
+ 0x7F9,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x82E,
+ 0x840,
+ 0x859,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x904,
+ 0x93A,
+ 0x93D,
+ 0x93E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x981,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9BD,
+ 0x9BE,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E2,
+ 0x9E4,
+ 0x9E6,
+ 0x9F0,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA70,
+ 0xA72,
+ 0xA75,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xABD,
+ 0xABE,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE2,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB3D,
+ 0xB3E,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB62,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB83,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC3E,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC62,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCBD,
+ 0xCBE,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE2,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD3E,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD62,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE31,
+ 0xE32,
+ 0xE34,
+ 0xE3B,
+ 0xE40,
+ 0xE47,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEB1,
+ 0xEB2,
+ 0xEB4,
+ 0xEBA,
+ 0xEBB,
+ 0xEBD,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF88,
+ 0xF8D,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x1000,
+ 0x102B,
+ 0x103F,
+ 0x1040,
+ 0x104A,
+ 0x104C,
+ 0x1050,
+ 0x1056,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1062,
+ 0x1065,
+ 0x1067,
+ 0x106E,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x108E,
+ 0x108F,
+ 0x1090,
+ 0x109A,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1362,
+ 0x1363,
+ 0x1367,
+ 0x1369,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166E,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x169D,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1712,
+ 0x1715,
+ 0x1720,
+ 0x1732,
+ 0x1735,
+ 0x1737,
+ 0x1740,
+ 0x1752,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17B4,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x1802,
+ 0x1803,
+ 0x1804,
+ 0x1808,
+ 0x1809,
+ 0x180A,
+ 0x180B,
+ 0x180E,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18A9,
+ 0x18AA,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1944,
+ 0x1946,
+ 0x1950,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19C1,
+ 0x19C8,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A17,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A55,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AAC,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B05,
+ 0x1B34,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B5C,
+ 0x1B5E,
+ 0x1B60,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BAE,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C24,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C3D,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1C80,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1E00,
+ 0x1E01,
+ 0x1E02,
+ 0x1E03,
+ 0x1E04,
+ 0x1E05,
+ 0x1E06,
+ 0x1E07,
+ 0x1E08,
+ 0x1E09,
+ 0x1E0A,
+ 0x1E0B,
+ 0x1E0C,
+ 0x1E0D,
+ 0x1E0E,
+ 0x1E0F,
+ 0x1E10,
+ 0x1E11,
+ 0x1E12,
+ 0x1E13,
+ 0x1E14,
+ 0x1E15,
+ 0x1E16,
+ 0x1E17,
+ 0x1E18,
+ 0x1E19,
+ 0x1E1A,
+ 0x1E1B,
+ 0x1E1C,
+ 0x1E1D,
+ 0x1E1E,
+ 0x1E1F,
+ 0x1E20,
+ 0x1E21,
+ 0x1E22,
+ 0x1E23,
+ 0x1E24,
+ 0x1E25,
+ 0x1E26,
+ 0x1E27,
+ 0x1E28,
+ 0x1E29,
+ 0x1E2A,
+ 0x1E2B,
+ 0x1E2C,
+ 0x1E2D,
+ 0x1E2E,
+ 0x1E2F,
+ 0x1E30,
+ 0x1E31,
+ 0x1E32,
+ 0x1E33,
+ 0x1E34,
+ 0x1E35,
+ 0x1E36,
+ 0x1E37,
+ 0x1E38,
+ 0x1E39,
+ 0x1E3A,
+ 0x1E3B,
+ 0x1E3C,
+ 0x1E3D,
+ 0x1E3E,
+ 0x1E3F,
+ 0x1E40,
+ 0x1E41,
+ 0x1E42,
+ 0x1E43,
+ 0x1E44,
+ 0x1E45,
+ 0x1E46,
+ 0x1E47,
+ 0x1E48,
+ 0x1E49,
+ 0x1E4A,
+ 0x1E4B,
+ 0x1E4C,
+ 0x1E4D,
+ 0x1E4E,
+ 0x1E4F,
+ 0x1E50,
+ 0x1E51,
+ 0x1E52,
+ 0x1E53,
+ 0x1E54,
+ 0x1E55,
+ 0x1E56,
+ 0x1E57,
+ 0x1E58,
+ 0x1E59,
+ 0x1E5A,
+ 0x1E5B,
+ 0x1E5C,
+ 0x1E5D,
+ 0x1E5E,
+ 0x1E5F,
+ 0x1E60,
+ 0x1E61,
+ 0x1E62,
+ 0x1E63,
+ 0x1E64,
+ 0x1E65,
+ 0x1E66,
+ 0x1E67,
+ 0x1E68,
+ 0x1E69,
+ 0x1E6A,
+ 0x1E6B,
+ 0x1E6C,
+ 0x1E6D,
+ 0x1E6E,
+ 0x1E6F,
+ 0x1E70,
+ 0x1E71,
+ 0x1E72,
+ 0x1E73,
+ 0x1E74,
+ 0x1E75,
+ 0x1E76,
+ 0x1E77,
+ 0x1E78,
+ 0x1E79,
+ 0x1E7A,
+ 0x1E7B,
+ 0x1E7C,
+ 0x1E7D,
+ 0x1E7E,
+ 0x1E7F,
+ 0x1E80,
+ 0x1E81,
+ 0x1E82,
+ 0x1E83,
+ 0x1E84,
+ 0x1E85,
+ 0x1E86,
+ 0x1E87,
+ 0x1E88,
+ 0x1E89,
+ 0x1E8A,
+ 0x1E8B,
+ 0x1E8C,
+ 0x1E8D,
+ 0x1E8E,
+ 0x1E8F,
+ 0x1E90,
+ 0x1E91,
+ 0x1E92,
+ 0x1E93,
+ 0x1E94,
+ 0x1E95,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1EA1,
+ 0x1EA2,
+ 0x1EA3,
+ 0x1EA4,
+ 0x1EA5,
+ 0x1EA6,
+ 0x1EA7,
+ 0x1EA8,
+ 0x1EA9,
+ 0x1EAA,
+ 0x1EAB,
+ 0x1EAC,
+ 0x1EAD,
+ 0x1EAE,
+ 0x1EAF,
+ 0x1EB0,
+ 0x1EB1,
+ 0x1EB2,
+ 0x1EB3,
+ 0x1EB4,
+ 0x1EB5,
+ 0x1EB6,
+ 0x1EB7,
+ 0x1EB8,
+ 0x1EB9,
+ 0x1EBA,
+ 0x1EBB,
+ 0x1EBC,
+ 0x1EBD,
+ 0x1EBE,
+ 0x1EBF,
+ 0x1EC0,
+ 0x1EC1,
+ 0x1EC2,
+ 0x1EC3,
+ 0x1EC4,
+ 0x1EC5,
+ 0x1EC6,
+ 0x1EC7,
+ 0x1EC8,
+ 0x1EC9,
+ 0x1ECA,
+ 0x1ECB,
+ 0x1ECC,
+ 0x1ECD,
+ 0x1ECE,
+ 0x1ECF,
+ 0x1ED0,
+ 0x1ED1,
+ 0x1ED2,
+ 0x1ED3,
+ 0x1ED4,
+ 0x1ED5,
+ 0x1ED6,
+ 0x1ED7,
+ 0x1ED8,
+ 0x1ED9,
+ 0x1EDA,
+ 0x1EDB,
+ 0x1EDC,
+ 0x1EDD,
+ 0x1EDE,
+ 0x1EDF,
+ 0x1EE0,
+ 0x1EE1,
+ 0x1EE2,
+ 0x1EE3,
+ 0x1EE4,
+ 0x1EE5,
+ 0x1EE6,
+ 0x1EE7,
+ 0x1EE8,
+ 0x1EE9,
+ 0x1EEA,
+ 0x1EEB,
+ 0x1EEC,
+ 0x1EED,
+ 0x1EEE,
+ 0x1EEF,
+ 0x1EF0,
+ 0x1EF1,
+ 0x1EF2,
+ 0x1EF3,
+ 0x1EF4,
+ 0x1EF5,
+ 0x1EF6,
+ 0x1EF7,
+ 0x1EF8,
+ 0x1EF9,
+ 0x1EFA,
+ 0x1EFB,
+ 0x1EFC,
+ 0x1EFD,
+ 0x1EFE,
+ 0x1EFF,
+ 0x1F08,
+ 0x1F10,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F28,
+ 0x1F30,
+ 0x1F38,
+ 0x1F40,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1F7E,
+ 0x1F80,
+ 0x1F88,
+ 0x1F90,
+ 0x1F98,
+ 0x1FA0,
+ 0x1FA8,
+ 0x1FB0,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FB8,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FC8,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FD8,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FE8,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FF8,
+ 0x1FFD,
+ 0x2000,
+ 0x200B,
+ 0x200C,
+ 0x200E,
+ 0x2010,
+ 0x2013,
+ 0x2015,
+ 0x2018,
+ 0x2020,
+ 0x2024,
+ 0x2025,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x2039,
+ 0x203B,
+ 0x203C,
+ 0x203E,
+ 0x2045,
+ 0x2047,
+ 0x204A,
+ 0x205F,
+ 0x2060,
+ 0x2065,
+ 0x2066,
+ 0x2070,
+ 0x2071,
+ 0x2072,
+ 0x207D,
+ 0x207F,
+ 0x2080,
+ 0x208D,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x210B,
+ 0x210E,
+ 0x2110,
+ 0x2113,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x2130,
+ 0x2134,
+ 0x2135,
+ 0x2139,
+ 0x213A,
+ 0x213C,
+ 0x213E,
+ 0x2140,
+ 0x2145,
+ 0x2146,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2170,
+ 0x2180,
+ 0x2183,
+ 0x2184,
+ 0x2185,
+ 0x2189,
+ 0x2308,
+ 0x230C,
+ 0x2329,
+ 0x232B,
+ 0x24B6,
+ 0x24D0,
+ 0x24EA,
+ 0x275B,
+ 0x2761,
+ 0x2768,
+ 0x2776,
+ 0x27C5,
+ 0x27C7,
+ 0x27E6,
+ 0x27F0,
+ 0x2983,
+ 0x2999,
+ 0x29D8,
+ 0x29DC,
+ 0x29FC,
+ 0x29FE,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2C61,
+ 0x2C62,
+ 0x2C65,
+ 0x2C67,
+ 0x2C68,
+ 0x2C69,
+ 0x2C6A,
+ 0x2C6B,
+ 0x2C6C,
+ 0x2C6D,
+ 0x2C71,
+ 0x2C72,
+ 0x2C73,
+ 0x2C75,
+ 0x2C76,
+ 0x2C7E,
+ 0x2C81,
+ 0x2C82,
+ 0x2C83,
+ 0x2C84,
+ 0x2C85,
+ 0x2C86,
+ 0x2C87,
+ 0x2C88,
+ 0x2C89,
+ 0x2C8A,
+ 0x2C8B,
+ 0x2C8C,
+ 0x2C8D,
+ 0x2C8E,
+ 0x2C8F,
+ 0x2C90,
+ 0x2C91,
+ 0x2C92,
+ 0x2C93,
+ 0x2C94,
+ 0x2C95,
+ 0x2C96,
+ 0x2C97,
+ 0x2C98,
+ 0x2C99,
+ 0x2C9A,
+ 0x2C9B,
+ 0x2C9C,
+ 0x2C9D,
+ 0x2C9E,
+ 0x2C9F,
+ 0x2CA0,
+ 0x2CA1,
+ 0x2CA2,
+ 0x2CA3,
+ 0x2CA4,
+ 0x2CA5,
+ 0x2CA6,
+ 0x2CA7,
+ 0x2CA8,
+ 0x2CA9,
+ 0x2CAA,
+ 0x2CAB,
+ 0x2CAC,
+ 0x2CAD,
+ 0x2CAE,
+ 0x2CAF,
+ 0x2CB0,
+ 0x2CB1,
+ 0x2CB2,
+ 0x2CB3,
+ 0x2CB4,
+ 0x2CB5,
+ 0x2CB6,
+ 0x2CB7,
+ 0x2CB8,
+ 0x2CB9,
+ 0x2CBA,
+ 0x2CBB,
+ 0x2CBC,
+ 0x2CBD,
+ 0x2CBE,
+ 0x2CBF,
+ 0x2CC0,
+ 0x2CC1,
+ 0x2CC2,
+ 0x2CC3,
+ 0x2CC4,
+ 0x2CC5,
+ 0x2CC6,
+ 0x2CC7,
+ 0x2CC8,
+ 0x2CC9,
+ 0x2CCA,
+ 0x2CCB,
+ 0x2CCC,
+ 0x2CCD,
+ 0x2CCE,
+ 0x2CCF,
+ 0x2CD0,
+ 0x2CD1,
+ 0x2CD2,
+ 0x2CD3,
+ 0x2CD4,
+ 0x2CD5,
+ 0x2CD6,
+ 0x2CD7,
+ 0x2CD8,
+ 0x2CD9,
+ 0x2CDA,
+ 0x2CDB,
+ 0x2CDC,
+ 0x2CDD,
+ 0x2CDE,
+ 0x2CDF,
+ 0x2CE0,
+ 0x2CE1,
+ 0x2CE2,
+ 0x2CE3,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEC,
+ 0x2CED,
+ 0x2CEE,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF3,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E0E,
+ 0x2E1C,
+ 0x2E1E,
+ 0x2E20,
+ 0x2E2A,
+ 0x2E2E,
+ 0x2E2F,
+ 0x2E30,
+ 0x2E3C,
+ 0x2E3D,
+ 0x2E42,
+ 0x2E43,
+ 0x3000,
+ 0x3001,
+ 0x3002,
+ 0x3003,
+ 0x3005,
+ 0x3008,
+ 0x3012,
+ 0x3014,
+ 0x301C,
+ 0x301D,
+ 0x3020,
+ 0x3021,
+ 0x302A,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA4FF,
+ 0xA500,
+ 0xA60D,
+ 0xA60E,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA641,
+ 0xA642,
+ 0xA643,
+ 0xA644,
+ 0xA645,
+ 0xA646,
+ 0xA647,
+ 0xA648,
+ 0xA649,
+ 0xA64A,
+ 0xA64B,
+ 0xA64C,
+ 0xA64D,
+ 0xA64E,
+ 0xA64F,
+ 0xA650,
+ 0xA651,
+ 0xA652,
+ 0xA653,
+ 0xA654,
+ 0xA655,
+ 0xA656,
+ 0xA657,
+ 0xA658,
+ 0xA659,
+ 0xA65A,
+ 0xA65B,
+ 0xA65C,
+ 0xA65D,
+ 0xA65E,
+ 0xA65F,
+ 0xA660,
+ 0xA661,
+ 0xA662,
+ 0xA663,
+ 0xA664,
+ 0xA665,
+ 0xA666,
+ 0xA667,
+ 0xA668,
+ 0xA669,
+ 0xA66A,
+ 0xA66B,
+ 0xA66C,
+ 0xA66D,
+ 0xA66E,
+ 0xA66F,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA680,
+ 0xA681,
+ 0xA682,
+ 0xA683,
+ 0xA684,
+ 0xA685,
+ 0xA686,
+ 0xA687,
+ 0xA688,
+ 0xA689,
+ 0xA68A,
+ 0xA68B,
+ 0xA68C,
+ 0xA68D,
+ 0xA68E,
+ 0xA68F,
+ 0xA690,
+ 0xA691,
+ 0xA692,
+ 0xA693,
+ 0xA694,
+ 0xA695,
+ 0xA696,
+ 0xA697,
+ 0xA698,
+ 0xA699,
+ 0xA69A,
+ 0xA69B,
+ 0xA69E,
+ 0xA69F,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA6F2,
+ 0xA6F3,
+ 0xA6F4,
+ 0xA6F7,
+ 0xA6F8,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA723,
+ 0xA724,
+ 0xA725,
+ 0xA726,
+ 0xA727,
+ 0xA728,
+ 0xA729,
+ 0xA72A,
+ 0xA72B,
+ 0xA72C,
+ 0xA72D,
+ 0xA72E,
+ 0xA72F,
+ 0xA732,
+ 0xA733,
+ 0xA734,
+ 0xA735,
+ 0xA736,
+ 0xA737,
+ 0xA738,
+ 0xA739,
+ 0xA73A,
+ 0xA73B,
+ 0xA73C,
+ 0xA73D,
+ 0xA73E,
+ 0xA73F,
+ 0xA740,
+ 0xA741,
+ 0xA742,
+ 0xA743,
+ 0xA744,
+ 0xA745,
+ 0xA746,
+ 0xA747,
+ 0xA748,
+ 0xA749,
+ 0xA74A,
+ 0xA74B,
+ 0xA74C,
+ 0xA74D,
+ 0xA74E,
+ 0xA74F,
+ 0xA750,
+ 0xA751,
+ 0xA752,
+ 0xA753,
+ 0xA754,
+ 0xA755,
+ 0xA756,
+ 0xA757,
+ 0xA758,
+ 0xA759,
+ 0xA75A,
+ 0xA75B,
+ 0xA75C,
+ 0xA75D,
+ 0xA75E,
+ 0xA75F,
+ 0xA760,
+ 0xA761,
+ 0xA762,
+ 0xA763,
+ 0xA764,
+ 0xA765,
+ 0xA766,
+ 0xA767,
+ 0xA768,
+ 0xA769,
+ 0xA76A,
+ 0xA76B,
+ 0xA76C,
+ 0xA76D,
+ 0xA76E,
+ 0xA76F,
+ 0xA779,
+ 0xA77A,
+ 0xA77B,
+ 0xA77C,
+ 0xA77D,
+ 0xA77F,
+ 0xA780,
+ 0xA781,
+ 0xA782,
+ 0xA783,
+ 0xA784,
+ 0xA785,
+ 0xA786,
+ 0xA787,
+ 0xA788,
+ 0xA789,
+ 0xA78B,
+ 0xA78C,
+ 0xA78D,
+ 0xA78E,
+ 0xA78F,
+ 0xA790,
+ 0xA791,
+ 0xA792,
+ 0xA793,
+ 0xA796,
+ 0xA797,
+ 0xA798,
+ 0xA799,
+ 0xA79A,
+ 0xA79B,
+ 0xA79C,
+ 0xA79D,
+ 0xA79E,
+ 0xA79F,
+ 0xA7A0,
+ 0xA7A1,
+ 0xA7A2,
+ 0xA7A3,
+ 0xA7A4,
+ 0xA7A5,
+ 0xA7A6,
+ 0xA7A7,
+ 0xA7A8,
+ 0xA7A9,
+ 0xA7AA,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA7F8,
+ 0xA7FB,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA876,
+ 0xA878,
+ 0xA880,
+ 0xA882,
+ 0xA8B4,
+ 0xA8C5,
+ 0xA8CE,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA90A,
+ 0xA926,
+ 0xA92E,
+ 0xA92F,
+ 0xA930,
+ 0xA947,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA984,
+ 0xA9B3,
+ 0xA9C1,
+ 0xA9C8,
+ 0xA9CA,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA29,
+ 0xAA37,
+ 0xAA40,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA5D,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAEB,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF5,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABE3,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD40,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE00,
+ 0xFE10,
+ 0xFE12,
+ 0xFE13,
+ 0xFE14,
+ 0xFE17,
+ 0xFE19,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE31,
+ 0xFE33,
+ 0xFE35,
+ 0xFE45,
+ 0xFE47,
+ 0xFE49,
+ 0xFE50,
+ 0xFE52,
+ 0xFE53,
+ 0xFE55,
+ 0xFE56,
+ 0xFE58,
+ 0xFE59,
+ 0xFE5F,
+ 0xFE63,
+ 0xFE64,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF01,
+ 0xFF02,
+ 0xFF08,
+ 0xFF0A,
+ 0xFF0C,
+ 0xFF0E,
+ 0xFF0F,
+ 0xFF1A,
+ 0xFF1B,
+ 0xFF1F,
+ 0xFF20,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3C,
+ 0xFF3D,
+ 0xFF3E,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF5C,
+ 0xFF5D,
+ 0xFF5E,
+ 0xFF5F,
+ 0xFF61,
+ 0xFF62,
+ 0xFF64,
+ 0xFF65,
+ 0xFF66,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFF9,
+ 0xFFFC,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x10376,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x10428,
+ 0x10450,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A01,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A10,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A56,
+ 0x10A58,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11003,
+ 0x11038,
+ 0x11047,
+ 0x11049,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x11083,
+ 0x110B0,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11103,
+ 0x11127,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11141,
+ 0x11144,
+ 0x11150,
+ 0x11173,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x11183,
+ 0x111B3,
+ 0x111C1,
+ 0x111C5,
+ 0x111C7,
+ 0x111CD,
+ 0x111CE,
+ 0x111D0,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1122C,
+ 0x11238,
+ 0x1123A,
+ 0x1123B,
+ 0x1123D,
+ 0x112B0,
+ 0x112DF,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x1133D,
+ 0x1133E,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11362,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114B0,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115AF,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x115C2,
+ 0x115C4,
+ 0x115C9,
+ 0x115CA,
+ 0x11600,
+ 0x11630,
+ 0x11641,
+ 0x11643,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116AB,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118C0,
+ 0x118E0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B30,
+ 0x16B37,
+ 0x16B39,
+ 0x16B40,
+ 0x16B44,
+ 0x16B45,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F51,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1BCA0,
+ 0x1BCA4,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D41A,
+ 0x1D434,
+ 0x1D44E,
+ 0x1D455,
+ 0x1D456,
+ 0x1D468,
+ 0x1D482,
+ 0x1D49C,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4B6,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D4D0,
+ 0x1D4EA,
+ 0x1D504,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D538,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D56C,
+ 0x1D586,
+ 0x1D5A0,
+ 0x1D5BA,
+ 0x1D5D4,
+ 0x1D5EE,
+ 0x1D608,
+ 0x1D622,
+ 0x1D63C,
+ 0x1D656,
+ 0x1D670,
+ 0x1D68A,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6E2,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D71C,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D756,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D790,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CA,
+ 0x1D7CB,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x1F676,
+ 0x1F679,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define SB_ENUM_COUNT 16
+
+typedef enum {
+ SB_Other = 0,
+ SB_ATerm = 1,
+ SB_CR = 2,
+ SB_Close = 3,
+ SB_EDGE = 4,
+ SB_Extend = 5,
+ SB_Format = 6,
+ SB_LF = 7,
+ SB_Lower = 8,
+ SB_Numeric = 9,
+ SB_OLetter = 10,
+ SB_SContinue = 11,
+ SB_STerm = 12,
+ SB_Sep = 13,
+ SB_Sp = 14,
+ SB_Upper = 15
+} SB_enum;
+
+static const SB_enum Sentence_Break_invmap[] = { /* for EBCDIC 037 */
+ SB_Other,
+ SB_Sp,
+ SB_Other,
+ SB_Sp,
+ SB_CR,
+ SB_Other,
+ SB_Sep,
+ SB_Other,
+ SB_LF,
+ SB_Other,
+ SB_Sp,
+ SB_Lower,
+ SB_Other,
+ SB_ATerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Lower,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_STerm,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Upper,
+ SB_Lower,
+ SB_Close,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Upper,
+ SB_Format,
+ SB_Lower,
+ SB_Close,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Numeric,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Numeric,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Format,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Close,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Numeric,
+ SB_Extend,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Sp,
+ SB_OLetter,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Format,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Numeric,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Lower,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Sp,
+ SB_Format,
+ SB_Extend,
+ SB_Format,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_ATerm,
+ SB_Other,
+ SB_Sep,
+ SB_Format,
+ SB_Sp,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_STerm,
+ SB_Other,
+ SB_Sp,
+ SB_Format,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Close,
+ SB_Lower,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Sp,
+ SB_SContinue,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_OLetter,
+ SB_Lower,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_SContinue,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_ATerm,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_SContinue,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_ATerm,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Upper,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Lower,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_STerm,
+ SB_Close,
+ SB_SContinue,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Format,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_STerm,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Format,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_Other
};
-#endif
+#endif /* defined(PERL_IN_REGEXEC_C) */
-#ifndef PERL_IN_XSUB_RE
+#if defined(PERL_IN_REGCOMP_C)
-static const UV XPosixUpper_invlist[] = {
- 1221, /* Number of elements */
+static const UV UpperLatin1_invlist[] = { /* for EBCDIC 037 */
+ 57, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 65,
- 91,
- 192,
- 215,
- 216,
- 223,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- 372,
- 373,
- 374,
- 375,
- 376,
- 378,
- 379,
- 380,
- 381,
- 382,
- 385,
- 387,
- 388,
- 389,
- 390,
- 392,
- 393,
- 396,
- 398,
- 402,
- 403,
- 405,
- 406,
- 409,
- 412,
- 414,
- 415,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 424,
- 425,
- 426,
- 428,
- 429,
- 430,
- 432,
- 433,
- 436,
- 437,
- 438,
- 439,
- 441,
- 444,
- 445,
- 452,
- 453,
- 455,
- 456,
- 458,
- 459,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 497,
- 498,
- 500,
- 501,
- 502,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- 570,
- 572,
- 573,
- 575,
- 577,
- 578,
- 579,
- 583,
- 584,
- 585,
- 586,
- 587,
- 588,
- 589,
- 590,
- 591,
- 880,
- 881,
- 882,
- 883,
- 886,
- 887,
- 902,
- 903,
- 904,
- 907,
- 908,
- 909,
- 910,
- 912,
- 913,
- 930,
- 931,
- 940,
- 975,
- 976,
- 978,
- 981,
- 984,
- 985,
- 986,
- 987,
- 988,
- 989,
- 990,
- 991,
- 992,
- 993,
- 994,
- 995,
- 996,
- 997,
- 998,
- 999,
- 1000,
- 1001,
- 1002,
- 1003,
- 1004,
- 1005,
- 1006,
- 1007,
- 1012,
- 1013,
- 1015,
- 1016,
- 1017,
- 1019,
- 1021,
- 1072,
- 1120,
- 1121,
- 1122,
- 1123,
- 1124,
- 1125,
- 1126,
- 1127,
- 1128,
- 1129,
- 1130,
- 1131,
- 1132,
- 1133,
- 1134,
- 1135,
- 1136,
- 1137,
- 1138,
- 1139,
- 1140,
- 1141,
- 1142,
- 1143,
- 1144,
- 1145,
- 1146,
- 1147,
- 1148,
- 1149,
- 1150,
- 1151,
- 1152,
- 1153,
- 1162,
- 1163,
- 1164,
- 1165,
- 1166,
- 1167,
- 1168,
- 1169,
- 1170,
- 1171,
- 1172,
- 1173,
- 1174,
- 1175,
- 1176,
- 1177,
- 1178,
- 1179,
- 1180,
- 1181,
- 1182,
- 1183,
- 1184,
- 1185,
- 1186,
- 1187,
- 1188,
- 1189,
- 1190,
- 1191,
- 1192,
- 1193,
- 1194,
- 1195,
- 1196,
- 1197,
- 1198,
- 1199,
- 1200,
- 1201,
- 1202,
- 1203,
- 1204,
- 1205,
- 1206,
- 1207,
- 1208,
- 1209,
- 1210,
- 1211,
- 1212,
- 1213,
- 1214,
- 1215,
- 1216,
- 1218,
- 1219,
- 1220,
- 1221,
- 1222,
- 1223,
- 1224,
- 1225,
- 1226,
- 1227,
- 1228,
- 1229,
- 1230,
- 1232,
- 1233,
- 1234,
- 1235,
- 1236,
- 1237,
- 1238,
- 1239,
- 1240,
- 1241,
- 1242,
- 1243,
- 1244,
- 1245,
- 1246,
- 1247,
- 1248,
- 1249,
- 1250,
- 1251,
- 1252,
- 1253,
- 1254,
- 1255,
- 1256,
- 1257,
- 1258,
- 1259,
- 1260,
- 1261,
- 1262,
- 1263,
- 1264,
- 1265,
- 1266,
- 1267,
- 1268,
- 1269,
- 1270,
- 1271,
- 1272,
- 1273,
- 1274,
- 1275,
- 1276,
- 1277,
- 1278,
- 1279,
- 1280,
- 1281,
- 1282,
- 1283,
- 1284,
- 1285,
- 1286,
- 1287,
- 1288,
- 1289,
- 1290,
- 1291,
- 1292,
- 1293,
- 1294,
- 1295,
- 1296,
- 1297,
- 1298,
- 1299,
- 1300,
- 1301,
- 1302,
- 1303,
- 1304,
- 1305,
- 1306,
- 1307,
- 1308,
- 1309,
- 1310,
- 1311,
- 1312,
- 1313,
- 1314,
- 1315,
- 1316,
- 1317,
- 1318,
- 1319,
- 1329,
- 1367,
- 4256,
- 4294,
- 4295,
- 4296,
- 4301,
- 4302,
- 7680,
- 7681,
- 7682,
- 7683,
- 7684,
- 7685,
- 7686,
- 7687,
- 7688,
- 7689,
- 7690,
- 7691,
- 7692,
- 7693,
- 7694,
- 7695,
- 7696,
- 7697,
- 7698,
- 7699,
- 7700,
- 7701,
- 7702,
- 7703,
- 7704,
- 7705,
- 7706,
- 7707,
- 7708,
- 7709,
- 7710,
- 7711,
- 7712,
- 7713,
- 7714,
- 7715,
- 7716,
- 7717,
- 7718,
- 7719,
- 7720,
- 7721,
- 7722,
- 7723,
- 7724,
- 7725,
- 7726,
- 7727,
- 7728,
- 7729,
- 7730,
- 7731,
- 7732,
- 7733,
- 7734,
- 7735,
- 7736,
- 7737,
- 7738,
- 7739,
- 7740,
- 7741,
- 7742,
- 7743,
- 7744,
- 7745,
- 7746,
- 7747,
- 7748,
- 7749,
- 7750,
- 7751,
- 7752,
- 7753,
- 7754,
- 7755,
- 7756,
- 7757,
- 7758,
- 7759,
- 7760,
- 7761,
- 7762,
- 7763,
- 7764,
- 7765,
- 7766,
- 7767,
- 7768,
- 7769,
- 7770,
- 7771,
- 7772,
- 7773,
- 7774,
- 7775,
- 7776,
- 7777,
- 7778,
- 7779,
- 7780,
- 7781,
- 7782,
- 7783,
- 7784,
- 7785,
- 7786,
- 7787,
- 7788,
- 7789,
- 7790,
- 7791,
- 7792,
- 7793,
- 7794,
- 7795,
- 7796,
- 7797,
- 7798,
- 7799,
- 7800,
- 7801,
- 7802,
- 7803,
- 7804,
- 7805,
- 7806,
- 7807,
- 7808,
- 7809,
- 7810,
- 7811,
- 7812,
- 7813,
- 7814,
- 7815,
- 7816,
- 7817,
- 7818,
- 7819,
- 7820,
- 7821,
- 7822,
- 7823,
- 7824,
- 7825,
- 7826,
- 7827,
- 7828,
- 7829,
- 7838,
- 7839,
- 7840,
- 7841,
- 7842,
- 7843,
- 7844,
- 7845,
- 7846,
- 7847,
- 7848,
- 7849,
- 7850,
- 7851,
- 7852,
- 7853,
- 7854,
- 7855,
- 7856,
- 7857,
- 7858,
- 7859,
- 7860,
- 7861,
- 7862,
- 7863,
- 7864,
- 7865,
- 7866,
- 7867,
- 7868,
- 7869,
- 7870,
- 7871,
- 7872,
- 7873,
- 7874,
- 7875,
- 7876,
- 7877,
- 7878,
- 7879,
- 7880,
- 7881,
- 7882,
- 7883,
- 7884,
- 7885,
- 7886,
- 7887,
- 7888,
- 7889,
- 7890,
- 7891,
- 7892,
- 7893,
- 7894,
- 7895,
- 7896,
- 7897,
- 7898,
- 7899,
- 7900,
- 7901,
- 7902,
- 7903,
- 7904,
- 7905,
- 7906,
- 7907,
- 7908,
- 7909,
- 7910,
- 7911,
- 7912,
- 7913,
- 7914,
- 7915,
- 7916,
- 7917,
- 7918,
- 7919,
- 7920,
- 7921,
- 7922,
- 7923,
- 7924,
- 7925,
- 7926,
- 7927,
- 7928,
- 7929,
- 7930,
- 7931,
- 7932,
- 7933,
- 7934,
- 7935,
- 7944,
- 7952,
- 7960,
- 7966,
- 7976,
- 7984,
- 7992,
- 8000,
- 8008,
- 8014,
- 8025,
- 8026,
- 8027,
- 8028,
- 8029,
- 8030,
- 8031,
- 8032,
- 8040,
- 8048,
- 8120,
- 8124,
- 8136,
- 8140,
- 8152,
- 8156,
- 8168,
- 8173,
- 8184,
- 8188,
- 8450,
- 8451,
- 8455,
- 8456,
- 8459,
- 8462,
- 8464,
- 8467,
- 8469,
- 8470,
- 8473,
- 8478,
- 8484,
- 8485,
- 8486,
- 8487,
- 8488,
- 8489,
- 8490,
- 8494,
- 8496,
- 8500,
- 8510,
- 8512,
- 8517,
- 8518,
- 8544,
- 8560,
- 8579,
- 8580,
- 9398,
- 9424,
- 11264,
- 11311,
- 11360,
- 11361,
- 11362,
- 11365,
- 11367,
- 11368,
- 11369,
- 11370,
- 11371,
- 11372,
- 11373,
- 11377,
- 11378,
- 11379,
- 11381,
- 11382,
- 11390,
- 11393,
- 11394,
- 11395,
- 11396,
- 11397,
- 11398,
- 11399,
- 11400,
- 11401,
- 11402,
- 11403,
- 11404,
- 11405,
- 11406,
- 11407,
- 11408,
- 11409,
- 11410,
- 11411,
- 11412,
- 11413,
- 11414,
- 11415,
- 11416,
- 11417,
- 11418,
- 11419,
- 11420,
- 11421,
- 11422,
- 11423,
- 11424,
- 11425,
- 11426,
- 11427,
- 11428,
- 11429,
- 11430,
- 11431,
- 11432,
- 11433,
- 11434,
- 11435,
- 11436,
- 11437,
- 11438,
- 11439,
- 11440,
- 11441,
- 11442,
- 11443,
- 11444,
- 11445,
- 11446,
- 11447,
- 11448,
- 11449,
- 11450,
- 11451,
- 11452,
- 11453,
- 11454,
- 11455,
- 11456,
- 11457,
- 11458,
- 11459,
- 11460,
- 11461,
- 11462,
- 11463,
- 11464,
- 11465,
- 11466,
- 11467,
- 11468,
- 11469,
- 11470,
- 11471,
- 11472,
- 11473,
- 11474,
- 11475,
- 11476,
- 11477,
- 11478,
- 11479,
- 11480,
- 11481,
- 11482,
- 11483,
- 11484,
- 11485,
- 11486,
- 11487,
- 11488,
- 11489,
- 11490,
- 11491,
- 11499,
- 11500,
- 11501,
- 11502,
- 11506,
- 11507,
- 42560,
- 42561,
- 42562,
- 42563,
- 42564,
- 42565,
- 42566,
- 42567,
- 42568,
- 42569,
- 42570,
- 42571,
- 42572,
- 42573,
- 42574,
- 42575,
- 42576,
- 42577,
- 42578,
- 42579,
- 42580,
- 42581,
- 42582,
- 42583,
- 42584,
- 42585,
- 42586,
- 42587,
- 42588,
- 42589,
- 42590,
- 42591,
- 42592,
- 42593,
- 42594,
- 42595,
- 42596,
- 42597,
- 42598,
- 42599,
- 42600,
- 42601,
- 42602,
- 42603,
- 42604,
- 42605,
- 42624,
- 42625,
- 42626,
- 42627,
- 42628,
- 42629,
- 42630,
- 42631,
- 42632,
- 42633,
- 42634,
- 42635,
- 42636,
- 42637,
- 42638,
- 42639,
- 42640,
- 42641,
- 42642,
- 42643,
- 42644,
- 42645,
- 42646,
- 42647,
- 42786,
- 42787,
- 42788,
- 42789,
- 42790,
- 42791,
- 42792,
- 42793,
- 42794,
- 42795,
- 42796,
- 42797,
- 42798,
- 42799,
- 42802,
- 42803,
- 42804,
- 42805,
- 42806,
- 42807,
- 42808,
- 42809,
- 42810,
- 42811,
- 42812,
- 42813,
- 42814,
- 42815,
- 42816,
- 42817,
- 42818,
- 42819,
- 42820,
- 42821,
- 42822,
- 42823,
- 42824,
- 42825,
- 42826,
- 42827,
- 42828,
- 42829,
- 42830,
- 42831,
- 42832,
- 42833,
- 42834,
- 42835,
- 42836,
- 42837,
- 42838,
- 42839,
- 42840,
- 42841,
- 42842,
- 42843,
- 42844,
- 42845,
- 42846,
- 42847,
- 42848,
- 42849,
- 42850,
- 42851,
- 42852,
- 42853,
- 42854,
- 42855,
- 42856,
- 42857,
- 42858,
- 42859,
- 42860,
- 42861,
- 42862,
- 42863,
- 42873,
- 42874,
- 42875,
- 42876,
- 42877,
- 42879,
- 42880,
- 42881,
- 42882,
- 42883,
- 42884,
- 42885,
- 42886,
- 42887,
- 42891,
- 42892,
- 42893,
- 42894,
- 42896,
- 42897,
- 42898,
- 42899,
- 42912,
- 42913,
- 42914,
- 42915,
- 42916,
- 42917,
- 42918,
- 42919,
- 42920,
- 42921,
- 42922,
- 42923,
- 65313,
- 65339,
- 66560,
- 66600,
- 119808,
- 119834,
- 119860,
- 119886,
- 119912,
- 119938,
- 119964,
- 119965,
- 119966,
- 119968,
- 119970,
- 119971,
- 119973,
- 119975,
- 119977,
- 119981,
- 119982,
- 119990,
- 120016,
- 120042,
- 120068,
- 120070,
- 120071,
- 120075,
- 120077,
- 120085,
- 120086,
- 120093,
- 120120,
- 120122,
- 120123,
- 120127,
- 120128,
- 120133,
- 120134,
- 120135,
- 120138,
- 120145,
- 120172,
- 120198,
- 120224,
- 120250,
- 120276,
- 120302,
- 120328,
- 120354,
- 120380,
- 120406,
- 120432,
- 120458,
- 120488,
- 120513,
- 120546,
- 120571,
- 120604,
- 120629,
- 120662,
- 120687,
- 120720,
- 120745,
- 120778,
- 120779
+ 0x0,
+ 0x4,
+ 0x5,
+ 0x6,
+ 0x7,
+ 0x8,
+ 0xB,
+ 0x14,
+ 0x16,
+ 0x17,
+ 0x18,
+ 0x1A,
+ 0x1C,
+ 0x20,
+ 0x25,
+ 0x28,
+ 0x2D,
+ 0x30,
+ 0x32,
+ 0x33,
+ 0x37,
+ 0x38,
+ 0x3C,
+ 0x3E,
+ 0x3F,
+ 0x41,
+ 0x4B,
+ 0x51,
+ 0x5A,
+ 0x5F,
+ 0x60,
+ 0x62,
+ 0x6B,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x81,
+ 0x8A,
+ 0x91,
+ 0x9A,
+ 0xA1,
+ 0xAA,
+ 0xB0,
+ 0xB1,
+ 0xBA,
+ 0xBC,
+ 0xC0,
+ 0xCA,
+ 0xD0,
+ 0xDA,
+ 0xE0,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xF0,
+ 0xFA,
+ 0x100
};
-#endif
+#endif /* defined(PERL_IN_REGCOMP_C) */
-#ifndef PERL_IN_XSUB_RE
+#if defined(PERL_IN_PERL_C)
-static const UV XPosixWord_invlist[] = {
- 1131, /* Number of elements */
+static const UV VertSpace_invlist[] = { /* for EBCDIC 037 */
+ 9, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 48,
- 58,
- 65,
- 91,
- 95,
- 96,
- 97,
- 123,
- 170,
- 171,
- 181,
- 182,
- 186,
- 187,
- 192,
- 215,
- 216,
- 247,
- 248,
- 706,
- 710,
- 722,
- 736,
- 741,
- 748,
- 749,
- 750,
- 751,
- 768,
- 885,
- 886,
- 888,
- 890,
- 894,
- 902,
- 903,
- 904,
- 907,
- 908,
- 909,
- 910,
- 930,
- 931,
- 1014,
- 1015,
- 1154,
- 1155,
- 1320,
- 1329,
- 1367,
- 1369,
- 1370,
- 1377,
- 1416,
- 1425,
- 1470,
- 1471,
- 1472,
- 1473,
- 1475,
- 1476,
- 1478,
- 1479,
- 1480,
- 1488,
- 1515,
- 1520,
- 1523,
- 1552,
- 1563,
- 1568,
- 1642,
- 1646,
- 1748,
- 1749,
- 1757,
- 1759,
- 1769,
- 1770,
- 1789,
- 1791,
- 1792,
- 1808,
- 1867,
- 1869,
- 1970,
- 1984,
- 2038,
- 2042,
- 2043,
- 2048,
- 2094,
- 2112,
- 2140,
- 2208,
- 2209,
- 2210,
- 2221,
- 2276,
- 2303,
- 2304,
- 2404,
- 2406,
- 2416,
- 2417,
- 2424,
- 2425,
- 2432,
- 2433,
- 2436,
- 2437,
- 2445,
- 2447,
- 2449,
- 2451,
- 2473,
- 2474,
- 2481,
- 2482,
- 2483,
- 2486,
- 2490,
- 2492,
- 2501,
- 2503,
- 2505,
- 2507,
- 2511,
- 2519,
- 2520,
- 2524,
- 2526,
- 2527,
- 2532,
- 2534,
- 2546,
- 2561,
- 2564,
- 2565,
- 2571,
- 2575,
- 2577,
- 2579,
- 2601,
- 2602,
- 2609,
- 2610,
- 2612,
- 2613,
- 2615,
- 2616,
- 2618,
- 2620,
- 2621,
- 2622,
- 2627,
- 2631,
- 2633,
- 2635,
- 2638,
- 2641,
- 2642,
- 2649,
- 2653,
- 2654,
- 2655,
- 2662,
- 2678,
- 2689,
- 2692,
- 2693,
- 2702,
- 2703,
- 2706,
- 2707,
- 2729,
- 2730,
- 2737,
- 2738,
- 2740,
- 2741,
- 2746,
- 2748,
- 2758,
- 2759,
- 2762,
- 2763,
- 2766,
- 2768,
- 2769,
- 2784,
- 2788,
- 2790,
- 2800,
- 2817,
- 2820,
- 2821,
- 2829,
- 2831,
- 2833,
- 2835,
- 2857,
- 2858,
- 2865,
- 2866,
- 2868,
- 2869,
- 2874,
- 2876,
- 2885,
- 2887,
- 2889,
- 2891,
- 2894,
- 2902,
- 2904,
- 2908,
- 2910,
- 2911,
- 2916,
- 2918,
- 2928,
- 2929,
- 2930,
- 2946,
- 2948,
- 2949,
- 2955,
- 2958,
- 2961,
- 2962,
- 2966,
- 2969,
- 2971,
- 2972,
- 2973,
- 2974,
- 2976,
- 2979,
- 2981,
- 2984,
- 2987,
- 2990,
- 3002,
- 3006,
- 3011,
- 3014,
- 3017,
- 3018,
- 3022,
- 3024,
- 3025,
- 3031,
- 3032,
- 3046,
- 3056,
- 3073,
- 3076,
- 3077,
- 3085,
- 3086,
- 3089,
- 3090,
- 3113,
- 3114,
- 3124,
- 3125,
- 3130,
- 3133,
- 3141,
- 3142,
- 3145,
- 3146,
- 3150,
- 3157,
- 3159,
- 3160,
- 3162,
- 3168,
- 3172,
- 3174,
- 3184,
- 3202,
- 3204,
- 3205,
- 3213,
- 3214,
- 3217,
- 3218,
- 3241,
- 3242,
- 3252,
- 3253,
- 3258,
- 3260,
- 3269,
- 3270,
- 3273,
- 3274,
- 3278,
- 3285,
- 3287,
- 3294,
- 3295,
- 3296,
- 3300,
- 3302,
- 3312,
- 3313,
- 3315,
- 3330,
- 3332,
- 3333,
- 3341,
- 3342,
- 3345,
- 3346,
- 3387,
- 3389,
- 3397,
- 3398,
- 3401,
- 3402,
- 3407,
- 3415,
- 3416,
- 3424,
- 3428,
- 3430,
- 3440,
- 3450,
- 3456,
- 3458,
- 3460,
- 3461,
- 3479,
- 3482,
- 3506,
- 3507,
- 3516,
- 3517,
- 3518,
- 3520,
- 3527,
- 3530,
- 3531,
- 3535,
- 3541,
- 3542,
- 3543,
- 3544,
- 3552,
- 3570,
- 3572,
- 3585,
- 3643,
- 3648,
- 3663,
- 3664,
- 3674,
- 3713,
- 3715,
- 3716,
- 3717,
- 3719,
- 3721,
- 3722,
- 3723,
- 3725,
- 3726,
- 3732,
- 3736,
- 3737,
- 3744,
- 3745,
- 3748,
- 3749,
- 3750,
- 3751,
- 3752,
- 3754,
- 3756,
- 3757,
- 3770,
- 3771,
- 3774,
- 3776,
- 3781,
- 3782,
- 3783,
- 3784,
- 3790,
- 3792,
- 3802,
- 3804,
- 3808,
- 3840,
- 3841,
- 3864,
- 3866,
- 3872,
- 3882,
- 3893,
- 3894,
- 3895,
- 3896,
- 3897,
- 3898,
- 3902,
- 3912,
- 3913,
- 3949,
- 3953,
- 3973,
- 3974,
- 3992,
- 3993,
- 4029,
- 4038,
- 4039,
- 4096,
- 4170,
- 4176,
- 4254,
- 4256,
- 4294,
- 4295,
- 4296,
- 4301,
- 4302,
- 4304,
- 4347,
- 4348,
- 4681,
- 4682,
- 4686,
- 4688,
- 4695,
- 4696,
- 4697,
- 4698,
- 4702,
- 4704,
- 4745,
- 4746,
- 4750,
- 4752,
- 4785,
- 4786,
- 4790,
- 4792,
- 4799,
- 4800,
- 4801,
- 4802,
- 4806,
- 4808,
- 4823,
- 4824,
- 4881,
- 4882,
- 4886,
- 4888,
- 4955,
- 4957,
- 4960,
- 4992,
- 5008,
- 5024,
- 5109,
- 5121,
- 5741,
- 5743,
- 5760,
- 5761,
- 5787,
- 5792,
- 5867,
- 5870,
- 5873,
- 5888,
- 5901,
- 5902,
- 5909,
- 5920,
- 5941,
- 5952,
- 5972,
- 5984,
- 5997,
- 5998,
- 6001,
- 6002,
- 6004,
- 6016,
- 6100,
- 6103,
- 6104,
- 6108,
- 6110,
- 6112,
- 6122,
- 6155,
- 6158,
- 6160,
- 6170,
- 6176,
- 6264,
- 6272,
- 6315,
- 6320,
- 6390,
- 6400,
- 6429,
- 6432,
- 6444,
- 6448,
- 6460,
- 6470,
- 6510,
- 6512,
- 6517,
- 6528,
- 6572,
- 6576,
- 6602,
- 6608,
- 6618,
- 6656,
- 6684,
- 6688,
- 6751,
- 6752,
- 6781,
- 6783,
- 6794,
- 6800,
- 6810,
- 6823,
- 6824,
- 6912,
- 6988,
- 6992,
- 7002,
- 7019,
- 7028,
- 7040,
- 7156,
- 7168,
- 7224,
- 7232,
- 7242,
- 7245,
- 7294,
- 7376,
- 7379,
- 7380,
- 7415,
- 7424,
- 7655,
- 7676,
- 7958,
- 7960,
- 7966,
- 7968,
- 8006,
- 8008,
- 8014,
- 8016,
- 8024,
- 8025,
- 8026,
- 8027,
- 8028,
- 8029,
- 8030,
- 8031,
- 8062,
- 8064,
- 8117,
- 8118,
- 8125,
- 8126,
- 8127,
- 8130,
- 8133,
- 8134,
- 8141,
- 8144,
- 8148,
- 8150,
- 8156,
- 8160,
- 8173,
- 8178,
- 8181,
- 8182,
- 8189,
- 8204,
- 8206,
- 8255,
- 8257,
- 8276,
- 8277,
- 8305,
- 8306,
- 8319,
- 8320,
- 8336,
- 8349,
- 8400,
- 8433,
- 8450,
- 8451,
- 8455,
- 8456,
- 8458,
- 8468,
- 8469,
- 8470,
- 8473,
- 8478,
- 8484,
- 8485,
- 8486,
- 8487,
- 8488,
- 8489,
- 8490,
- 8494,
- 8495,
- 8506,
- 8508,
- 8512,
- 8517,
- 8522,
- 8526,
- 8527,
- 8544,
- 8585,
- 9398,
- 9450,
- 11264,
- 11311,
- 11312,
- 11359,
- 11360,
- 11493,
- 11499,
- 11508,
- 11520,
- 11558,
- 11559,
- 11560,
- 11565,
- 11566,
- 11568,
- 11624,
- 11631,
- 11632,
- 11647,
- 11671,
- 11680,
- 11687,
- 11688,
- 11695,
- 11696,
- 11703,
- 11704,
- 11711,
- 11712,
- 11719,
- 11720,
- 11727,
- 11728,
- 11735,
- 11736,
- 11743,
- 11744,
- 11776,
- 11823,
- 11824,
- 12293,
- 12296,
- 12321,
- 12336,
- 12337,
- 12342,
- 12344,
- 12349,
- 12353,
- 12439,
- 12441,
- 12443,
- 12445,
- 12448,
- 12449,
- 12539,
- 12540,
- 12544,
- 12549,
- 12590,
- 12593,
- 12687,
- 12704,
- 12731,
- 12784,
- 12800,
- 13312,
- 19894,
- 19968,
- 40909,
- 40960,
- 42125,
- 42192,
- 42238,
- 42240,
- 42509,
- 42512,
- 42540,
- 42560,
- 42611,
- 42612,
- 42622,
- 42623,
- 42648,
- 42655,
- 42738,
- 42775,
- 42784,
- 42786,
- 42889,
- 42891,
- 42895,
- 42896,
- 42900,
- 42912,
- 42923,
- 43000,
- 43048,
- 43072,
- 43124,
- 43136,
- 43205,
- 43216,
- 43226,
- 43232,
- 43256,
- 43259,
- 43260,
- 43264,
- 43310,
- 43312,
- 43348,
- 43360,
- 43389,
- 43392,
- 43457,
- 43471,
- 43482,
- 43520,
- 43575,
- 43584,
- 43598,
- 43600,
- 43610,
- 43616,
- 43639,
- 43642,
- 43644,
- 43648,
- 43715,
- 43739,
- 43742,
- 43744,
- 43760,
- 43762,
- 43767,
- 43777,
- 43783,
- 43785,
- 43791,
- 43793,
- 43799,
- 43808,
- 43815,
- 43816,
- 43823,
- 43968,
- 44011,
- 44012,
- 44014,
- 44016,
- 44026,
- 44032,
- 55204,
- 55216,
- 55239,
- 55243,
- 55292,
- 63744,
- 64110,
- 64112,
- 64218,
- 64256,
- 64263,
- 64275,
- 64280,
- 64285,
- 64297,
- 64298,
- 64311,
- 64312,
- 64317,
- 64318,
- 64319,
- 64320,
- 64322,
- 64323,
- 64325,
- 64326,
- 64434,
- 64467,
- 64830,
- 64848,
- 64912,
- 64914,
- 64968,
- 65008,
- 65020,
- 65024,
- 65040,
- 65056,
- 65063,
- 65075,
- 65077,
- 65101,
- 65104,
- 65136,
- 65141,
- 65142,
- 65277,
- 65296,
- 65306,
- 65313,
- 65339,
- 65343,
- 65344,
- 65345,
- 65371,
- 65382,
- 65471,
- 65474,
- 65480,
- 65482,
- 65488,
- 65490,
- 65496,
- 65498,
- 65501,
- 65536,
- 65548,
- 65549,
- 65575,
- 65576,
- 65595,
- 65596,
- 65598,
- 65599,
- 65614,
- 65616,
- 65630,
- 65664,
- 65787,
- 65856,
- 65909,
- 66045,
- 66046,
- 66176,
- 66205,
- 66208,
- 66257,
- 66304,
- 66335,
- 66352,
- 66379,
- 66432,
- 66462,
- 66464,
- 66500,
- 66504,
- 66512,
- 66513,
- 66518,
- 66560,
- 66718,
- 66720,
- 66730,
- 67584,
- 67590,
- 67592,
- 67593,
- 67594,
- 67638,
- 67639,
- 67641,
- 67644,
- 67645,
- 67647,
- 67670,
- 67840,
- 67862,
- 67872,
- 67898,
- 67968,
- 68024,
- 68030,
- 68032,
- 68096,
- 68100,
- 68101,
- 68103,
- 68108,
- 68116,
- 68117,
- 68120,
- 68121,
- 68148,
- 68152,
- 68155,
- 68159,
- 68160,
- 68192,
- 68221,
- 68352,
- 68406,
- 68416,
- 68438,
- 68448,
- 68467,
- 68608,
- 68681,
- 69632,
- 69703,
- 69734,
- 69744,
- 69760,
- 69819,
- 69840,
- 69865,
- 69872,
- 69882,
- 69888,
- 69941,
- 69942,
- 69952,
- 70016,
- 70085,
- 70096,
- 70106,
- 71296,
- 71352,
- 71360,
- 71370,
- 73728,
- 74607,
- 74752,
- 74851,
- 77824,
- 78895,
- 92160,
- 92729,
- 93952,
- 94021,
- 94032,
- 94079,
- 94095,
- 94112,
- 110592,
- 110594,
- 119141,
- 119146,
- 119149,
- 119155,
- 119163,
- 119171,
- 119173,
- 119180,
- 119210,
- 119214,
- 119362,
- 119365,
- 119808,
- 119893,
- 119894,
- 119965,
- 119966,
- 119968,
- 119970,
- 119971,
- 119973,
- 119975,
- 119977,
- 119981,
- 119982,
- 119994,
- 119995,
- 119996,
- 119997,
- 120004,
- 120005,
- 120070,
- 120071,
- 120075,
- 120077,
- 120085,
- 120086,
- 120093,
- 120094,
- 120122,
- 120123,
- 120127,
- 120128,
- 120133,
- 120134,
- 120135,
- 120138,
- 120145,
- 120146,
- 120486,
- 120488,
- 120513,
- 120514,
- 120539,
- 120540,
- 120571,
- 120572,
- 120597,
- 120598,
- 120629,
- 120630,
- 120655,
- 120656,
- 120687,
- 120688,
- 120713,
- 120714,
- 120745,
- 120746,
- 120771,
- 120772,
- 120780,
- 120782,
- 120832,
- 126464,
- 126468,
- 126469,
- 126496,
- 126497,
- 126499,
- 126500,
- 126501,
- 126503,
- 126504,
- 126505,
- 126515,
- 126516,
- 126520,
- 126521,
- 126522,
- 126523,
- 126524,
- 126530,
- 126531,
- 126535,
- 126536,
- 126537,
- 126538,
- 126539,
- 126540,
- 126541,
- 126544,
- 126545,
- 126547,
- 126548,
- 126549,
- 126551,
- 126552,
- 126553,
- 126554,
- 126555,
- 126556,
- 126557,
- 126558,
- 126559,
- 126560,
- 126561,
- 126563,
- 126564,
- 126565,
- 126567,
- 126571,
- 126572,
- 126579,
- 126580,
- 126584,
- 126585,
- 126589,
- 126590,
- 126591,
- 126592,
- 126602,
- 126603,
- 126620,
- 126625,
- 126628,
- 126629,
- 126634,
- 126635,
- 126652,
- 131072,
- 173783,
- 173824,
- 177973,
- 177984,
- 178206,
- 194560,
- 195102,
- 917760,
- 918000
+ 0x0,
+ 0xB,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x2028,
+ 0x202A
+};
+
+static const UV Word_Break_invlist[] = { /* for EBCDIC 037 */
+ 1501, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0xB,
+ 0xD,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x42,
+ 0x4A,
+ 0x4B,
+ 0x4C,
+ 0x51,
+ 0x5A,
+ 0x5E,
+ 0x5F,
+ 0x62,
+ 0x6A,
+ 0x6B,
+ 0x6C,
+ 0x6D,
+ 0x6E,
+ 0x70,
+ 0x79,
+ 0x7A,
+ 0x7B,
+ 0x7D,
+ 0x7E,
+ 0x7F,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xB3,
+ 0xB4,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFA,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2D7,
+ 0x2D8,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x483,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58A,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x5F4,
+ 0x5F5,
+ 0x600,
+ 0x606,
+ 0x60C,
+ 0x60E,
+ 0x610,
+ 0x61B,
+ 0x61C,
+ 0x61D,
+ 0x620,
+ 0x64B,
+ 0x660,
+ 0x66A,
+ 0x66B,
+ 0x66C,
+ 0x66D,
+ 0x66E,
+ 0x670,
+ 0x671,
+ 0x6D4,
+ 0x6D5,
+ 0x6D6,
+ 0x6DD,
+ 0x6DE,
+ 0x6DF,
+ 0x6E5,
+ 0x6E7,
+ 0x6E9,
+ 0x6EA,
+ 0x6EE,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x70F,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74B,
+ 0x74D,
+ 0x7A6,
+ 0x7B1,
+ 0x7B2,
+ 0x7C0,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7F8,
+ 0x7F9,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x82E,
+ 0x840,
+ 0x859,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x904,
+ 0x93A,
+ 0x93D,
+ 0x93E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x981,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9BD,
+ 0x9BE,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E2,
+ 0x9E4,
+ 0x9E6,
+ 0x9F0,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA70,
+ 0xA72,
+ 0xA75,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xABD,
+ 0xABE,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE2,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB3D,
+ 0xB3E,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB62,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB83,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC3E,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC62,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCBD,
+ 0xCBE,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE2,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD3E,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD62,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE31,
+ 0xE32,
+ 0xE34,
+ 0xE3B,
+ 0xE47,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xEB1,
+ 0xEB2,
+ 0xEB4,
+ 0xEBA,
+ 0xEBB,
+ 0xEBD,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF88,
+ 0xF8D,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x102B,
+ 0x103F,
+ 0x1040,
+ 0x104A,
+ 0x1056,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1062,
+ 0x1065,
+ 0x1067,
+ 0x106E,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x108E,
+ 0x108F,
+ 0x1090,
+ 0x109A,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1712,
+ 0x1715,
+ 0x1720,
+ 0x1732,
+ 0x1735,
+ 0x1740,
+ 0x1752,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x17B4,
+ 0x17D4,
+ 0x17DD,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x180B,
+ 0x180E,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18A9,
+ 0x18AA,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1946,
+ 0x1950,
+ 0x19B0,
+ 0x19C1,
+ 0x19C8,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A17,
+ 0x1A1C,
+ 0x1A55,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B05,
+ 0x1B34,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BAE,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C24,
+ 0x1C38,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x200C,
+ 0x200E,
+ 0x2010,
+ 0x2018,
+ 0x201A,
+ 0x2024,
+ 0x2025,
+ 0x2027,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x203F,
+ 0x2041,
+ 0x2044,
+ 0x2045,
+ 0x2054,
+ 0x2055,
+ 0x2060,
+ 0x2065,
+ 0x2066,
+ 0x2070,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3006,
+ 0x302A,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x303B,
+ 0x303D,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x32D0,
+ 0x32FF,
+ 0x3300,
+ 0x3358,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA6F2,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA882,
+ 0xA8B4,
+ 0xA8C5,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA90A,
+ 0xA926,
+ 0xA92E,
+ 0xA930,
+ 0xA947,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA984,
+ 0xA9B3,
+ 0xA9C1,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9DA,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xAA00,
+ 0xAA29,
+ 0xAA37,
+ 0xAA40,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAE0,
+ 0xAAEB,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF5,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABE3,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFB50,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE00,
+ 0xFE10,
+ 0xFE11,
+ 0xFE13,
+ 0xFE14,
+ 0xFE15,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE33,
+ 0xFE35,
+ 0xFE4D,
+ 0xFE50,
+ 0xFE51,
+ 0xFE52,
+ 0xFE53,
+ 0xFE54,
+ 0xFE55,
+ 0xFE56,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF07,
+ 0xFF08,
+ 0xFF0C,
+ 0xFF0D,
+ 0xFF0E,
+ 0xFF0F,
+ 0xFF1A,
+ 0xFF1B,
+ 0xFF1C,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFF9,
+ 0xFFFC,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x10376,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A01,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A10,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11003,
+ 0x11038,
+ 0x11047,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x11083,
+ 0x110B0,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11103,
+ 0x11127,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11173,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x11183,
+ 0x111B3,
+ 0x111C1,
+ 0x111C5,
+ 0x111D0,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1122C,
+ 0x11238,
+ 0x112B0,
+ 0x112DF,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x1133D,
+ 0x1133E,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11362,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114B0,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115AF,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x11600,
+ 0x11630,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116AB,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118E0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B00,
+ 0x16B30,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F51,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B001,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1BCA0,
+ 0x1BCA4,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x1F1E6,
+ 0x1F200,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define WB_ENUM_COUNT 19
+
+typedef enum {
+ WB_Other = 0,
+ WB_ALetter = 1,
+ WB_CR = 2,
+ WB_Double_Quote = 3,
+ WB_EDGE = 4,
+ WB_Extend = 5,
+ WB_ExtendNumLet = 6,
+ WB_Format = 7,
+ WB_Hebrew_Letter = 8,
+ WB_Katakana = 9,
+ WB_LF = 10,
+ WB_MidLetter = 11,
+ WB_MidNum = 12,
+ WB_MidNumLet = 13,
+ WB_Newline = 14,
+ WB_Numeric = 15,
+ WB_Regional_Indicator = 16,
+ WB_Single_Quote = 17,
+ WB_UNKNOWN = 18
+} WB_enum;
+
+static const WB_enum Word_Break_invmap[] = { /* for EBCDIC 037 */
+ WB_Other,
+ WB_Newline,
+ WB_CR,
+ WB_Other,
+ WB_Newline,
+ WB_Other,
+ WB_LF,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidLetter,
+ WB_Other,
+ WB_Single_Quote,
+ WB_Other,
+ WB_Double_Quote,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidLetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Format,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidLetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_MidNum,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_MidLetter,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_ALetter,
+ WB_MidLetter,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Numeric,
+ WB_Other,
+ WB_Numeric,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Format,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Numeric,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Numeric,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidLetter,
+ WB_Newline,
+ WB_Format,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Extend,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_MidNum,
+ WB_Other,
+ WB_MidLetter,
+ WB_MidNum,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_MidNum,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidNum,
+ WB_MidLetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidLetter,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Katakana,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Regional_Indicator,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_Other
};
-#endif
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_PERL_C)
-#ifndef PERL_IN_XSUB_RE
+static const UV XPerlSpace_invlist[] = { /* for EBCDIC 037 */
+ 23, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x5,
+ 0x6,
+ 0xB,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x40,
+ 0x42,
+ 0x1680,
+ 0x1681,
+ 0x2000,
+ 0x200B,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x3000,
+ 0x3001
+};
+
+static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
+ 1281, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xFA,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x5B0,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x658,
+ 0x659,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6E1,
+ 0x6E9,
+ 0x6ED,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x740,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x818,
+ 0x81A,
+ 0x82D,
+ 0x840,
+ 0x859,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x8EA,
+ 0x8F0,
+ 0x93C,
+ 0x93D,
+ 0x94D,
+ 0x94E,
+ 0x951,
+ 0x955,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BD,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CD,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4D,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABD,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACD,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3D,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4D,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCD,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4D,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBD,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCD,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4D,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE47,
+ 0xE4D,
+ 0xE4E,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xECD,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF20,
+ 0xF2A,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF82,
+ 0xF88,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0x1000,
+ 0x1037,
+ 0x1038,
+ 0x1039,
+ 0x103B,
+ 0x104A,
+ 0x1050,
+ 0x1063,
+ 0x1065,
+ 0x1069,
+ 0x106E,
+ 0x1087,
+ 0x108E,
+ 0x108F,
+ 0x1090,
+ 0x109A,
+ 0x109C,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135F,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1714,
+ 0x1720,
+ 0x1734,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17B4,
+ 0x17B6,
+ 0x17C9,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x17E0,
+ 0x17EA,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x1939,
+ 0x1946,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A61,
+ 0x1A75,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1B00,
+ 0x1B34,
+ 0x1B35,
+ 0x1B44,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B80,
+ 0x1BAA,
+ 0x1BAC,
+ 0x1BE6,
+ 0x1BE7,
+ 0x1BF2,
+ 0x1C00,
+ 0x1C36,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C7E,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF4,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DE7,
+ 0x1DF5,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x302A,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA674,
+ 0xA67C,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F0,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C4,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA92B,
+ 0xA930,
+ 0xA953,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9B3,
+ 0xA9B4,
+ 0xA9C0,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAABF,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF6,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11046,
+ 0x11066,
+ 0x11070,
+ 0x11082,
+ 0x110B9,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11133,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11173,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C0,
+ 0x111C1,
+ 0x111C5,
+ 0x111D0,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11235,
+ 0x11237,
+ 0x11238,
+ 0x112B0,
+ 0x112E9,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133D,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134D,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11480,
+ 0x114C2,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115BF,
+ 0x11600,
+ 0x1163F,
+ 0x11640,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B6,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9E,
+ 0x1BC9F,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E
+};
+
+static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
+ 1223, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x5B0,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x658,
+ 0x659,
+ 0x660,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6E1,
+ 0x6E9,
+ 0x6ED,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x740,
+ 0x74D,
+ 0x7B2,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x818,
+ 0x81A,
+ 0x82D,
+ 0x840,
+ 0x859,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x8EA,
+ 0x8F0,
+ 0x93C,
+ 0x93D,
+ 0x94D,
+ 0x94E,
+ 0x951,
+ 0x955,
+ 0x964,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BD,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CD,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9F0,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4D,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA70,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABD,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACD,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3D,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4D,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCD,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4D,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBD,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCD,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4D,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE47,
+ 0xE4D,
+ 0xE4E,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xECD,
+ 0xECE,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF82,
+ 0xF88,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0x1000,
+ 0x1037,
+ 0x1038,
+ 0x1039,
+ 0x103B,
+ 0x1040,
+ 0x1050,
+ 0x1063,
+ 0x1065,
+ 0x1069,
+ 0x106E,
+ 0x1087,
+ 0x108E,
+ 0x108F,
+ 0x109C,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135F,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1714,
+ 0x1720,
+ 0x1734,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17B4,
+ 0x17B6,
+ 0x17C9,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x1939,
+ 0x1950,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A61,
+ 0x1A75,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1B00,
+ 0x1B34,
+ 0x1B35,
+ 0x1B44,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B80,
+ 0x1BAA,
+ 0x1BAC,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1BE7,
+ 0x1BF2,
+ 0x1C00,
+ 0x1C36,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF4,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DE7,
+ 0x1DF5,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x302A,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA674,
+ 0xA67C,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F0,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C4,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA90A,
+ 0xA92B,
+ 0xA930,
+ 0xA953,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9B3,
+ 0xA9B4,
+ 0xA9C0,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAABF,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF6,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11046,
+ 0x11082,
+ 0x110B9,
+ 0x110D0,
+ 0x110E9,
+ 0x11100,
+ 0x11133,
+ 0x11150,
+ 0x11173,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C0,
+ 0x111C1,
+ 0x111C5,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11235,
+ 0x11237,
+ 0x11238,
+ 0x112B0,
+ 0x112E9,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133D,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134D,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11480,
+ 0x114C2,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115BF,
+ 0x11600,
+ 0x1163F,
+ 0x11640,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11680,
+ 0x116B6,
+ 0x118A0,
+ 0x118E0,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9E,
+ 0x1BC9F,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E
+};
+
+static const UV XPosixBlank_invlist[] = { /* for EBCDIC 037 */
+ 15, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x5,
+ 0x6,
+ 0x40,
+ 0x42,
+ 0x1680,
+ 0x1681,
+ 0x2000,
+ 0x200B,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x3000,
+ 0x3001
+};
+
+static const UV XPosixCntrl_invlist[] = { /* for EBCDIC 037 */
+ 4, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x40,
+ 0xFF,
+ 0x100
+};
+
+static const UV XPosixDigit_invlist[] = { /* for EBCDIC 037 */
+ 101, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0xF0,
+ 0xFA,
+ 0x660,
+ 0x66A,
+ 0x6F0,
+ 0x6FA,
+ 0x7C0,
+ 0x7CA,
+ 0x966,
+ 0x970,
+ 0x9E6,
+ 0x9F0,
+ 0xA66,
+ 0xA70,
+ 0xAE6,
+ 0xAF0,
+ 0xB66,
+ 0xB70,
+ 0xBE6,
+ 0xBF0,
+ 0xC66,
+ 0xC70,
+ 0xCE6,
+ 0xCF0,
+ 0xD66,
+ 0xD70,
+ 0xDE6,
+ 0xDF0,
+ 0xE50,
+ 0xE5A,
+ 0xED0,
+ 0xEDA,
+ 0xF20,
+ 0xF2A,
+ 0x1040,
+ 0x104A,
+ 0x1090,
+ 0x109A,
+ 0x17E0,
+ 0x17EA,
+ 0x1810,
+ 0x181A,
+ 0x1946,
+ 0x1950,
+ 0x19D0,
+ 0x19DA,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1B50,
+ 0x1B5A,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C50,
+ 0x1C5A,
+ 0xA620,
+ 0xA62A,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA900,
+ 0xA90A,
+ 0xA9D0,
+ 0xA9DA,
+ 0xA9F0,
+ 0xA9FA,
+ 0xAA50,
+ 0xAA5A,
+ 0xABF0,
+ 0xABFA,
+ 0xFF10,
+ 0xFF1A,
+ 0x104A0,
+ 0x104AA,
+ 0x11066,
+ 0x11070,
+ 0x110F0,
+ 0x110FA,
+ 0x11136,
+ 0x11140,
+ 0x111D0,
+ 0x111DA,
+ 0x112F0,
+ 0x112FA,
+ 0x114D0,
+ 0x114DA,
+ 0x11650,
+ 0x1165A,
+ 0x116C0,
+ 0x116CA,
+ 0x118E0,
+ 0x118EA,
+ 0x16A60,
+ 0x16A6A,
+ 0x16B50,
+ 0x16B5A,
+ 0x1D7CE,
+ 0x1D800
+};
+
+static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
+ 1211, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0xFF,
+ 0x100,
+ 0x378,
+ 0x37A,
+ 0x380,
+ 0x384,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x560,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58B,
+ 0x58D,
+ 0x590,
+ 0x591,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F5,
+ 0x600,
+ 0x61D,
+ 0x61E,
+ 0x70E,
+ 0x70F,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x830,
+ 0x83F,
+ 0x840,
+ 0x85C,
+ 0x85E,
+ 0x85F,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9FC,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF2,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB78,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBFB,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC78,
+ 0xC80,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD76,
+ 0xD79,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF5,
+ 0xE01,
+ 0xE3B,
+ 0xE3F,
+ 0xE5C,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFBE,
+ 0xFCD,
+ 0xFCE,
+ 0xFDB,
+ 0x1000,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x137D,
+ 0x1380,
+ 0x139A,
+ 0x13A0,
+ 0x13F5,
+ 0x1400,
+ 0x1680,
+ 0x1681,
+ 0x169D,
+ 0x16A0,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1737,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x17F0,
+ 0x17FA,
+ 0x1800,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1940,
+ 0x1941,
+ 0x1944,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DB,
+ 0x19DE,
+ 0x1A1C,
+ 0x1A1E,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA0,
+ 0x1AAE,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B7D,
+ 0x1B80,
+ 0x1BF4,
+ 0x1BFC,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C80,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FDD,
+ 0x1FF0,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFF,
+ 0x200B,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20BE,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218A,
+ 0x2190,
+ 0x23FB,
+ 0x2400,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B98,
+ 0x2BBA,
+ 0x2BBD,
+ 0x2BC9,
+ 0x2BCA,
+ 0x2BD2,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CF4,
+ 0x2CF9,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D71,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E43,
+ 0x2E80,
+ 0x2E9A,
+ 0x2E9B,
+ 0x2EF4,
+ 0x2F00,
+ 0x2FD6,
+ 0x2FF0,
+ 0x2FFC,
+ 0x3001,
+ 0x3040,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x3190,
+ 0x31BB,
+ 0x31C0,
+ 0x31E4,
+ 0x31F0,
+ 0x321F,
+ 0x3220,
+ 0x32FF,
+ 0x3300,
+ 0x4DB6,
+ 0x4DC0,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F8,
+ 0xA700,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA82C,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C5,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8FC,
+ 0xA900,
+ 0xA954,
+ 0xA95F,
+ 0xA97D,
+ 0xA980,
+ 0xA9CE,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9DE,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA5C,
+ 0xAAC3,
+ 0xAADB,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xE000,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBC2,
+ 0xFBD3,
+ 0xFD40,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFE,
+ 0xFE00,
+ 0xFE1A,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE30,
+ 0xFE53,
+ 0xFE54,
+ 0xFE67,
+ 0xFE68,
+ 0xFE6C,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF01,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFE0,
+ 0xFFE7,
+ 0xFFE8,
+ 0xFFEF,
+ 0xFFF9,
+ 0xFFFE,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10100,
+ 0x10103,
+ 0x10107,
+ 0x10134,
+ 0x10137,
+ 0x1018D,
+ 0x10190,
+ 0x1019C,
+ 0x101A0,
+ 0x101A1,
+ 0x101D0,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102FC,
+ 0x10300,
+ 0x10324,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x1039F,
+ 0x103C4,
+ 0x103C8,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x1056F,
+ 0x10570,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10857,
+ 0x1089F,
+ 0x108A7,
+ 0x108B0,
+ 0x10900,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A48,
+ 0x10A50,
+ 0x10A59,
+ 0x10A60,
+ 0x10AA0,
+ 0x10AC0,
+ 0x10AE7,
+ 0x10AEB,
+ 0x10AF7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B39,
+ 0x10B56,
+ 0x10B58,
+ 0x10B73,
+ 0x10B78,
+ 0x10B92,
+ 0x10B99,
+ 0x10B9D,
+ 0x10BA9,
+ 0x10BB0,
+ 0x10C00,
+ 0x10C49,
+ 0x10E60,
+ 0x10E7F,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11070,
+ 0x1107F,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11144,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111C9,
+ 0x111CD,
+ 0x111CE,
+ 0x111D0,
+ 0x111DB,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1123E,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115CA,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B46,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B5B,
+ 0x16B62,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1DE,
+ 0x1D200,
+ 0x1D246,
+ 0x1D300,
+ 0x1D357,
+ 0x1D360,
+ 0x1D372,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1EEF0,
+ 0x1EEF2,
+ 0x1F000,
+ 0x1F02C,
+ 0x1F030,
+ 0x1F094,
+ 0x1F0A0,
+ 0x1F0AF,
+ 0x1F0B1,
+ 0x1F0C0,
+ 0x1F0C1,
+ 0x1F0D0,
+ 0x1F0D1,
+ 0x1F0F6,
+ 0x1F100,
+ 0x1F10D,
+ 0x1F110,
+ 0x1F12F,
+ 0x1F130,
+ 0x1F16C,
+ 0x1F170,
+ 0x1F19B,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23B,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F300,
+ 0x1F32D,
+ 0x1F330,
+ 0x1F37E,
+ 0x1F380,
+ 0x1F3CF,
+ 0x1F3D4,
+ 0x1F3F8,
+ 0x1F400,
+ 0x1F4FF,
+ 0x1F500,
+ 0x1F54B,
+ 0x1F550,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F5A4,
+ 0x1F5A5,
+ 0x1F643,
+ 0x1F645,
+ 0x1F6D0,
+ 0x1F6E0,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6F4,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xF0000,
+ 0xFFFFE,
+ 0x100000,
+ 0x10FFFE
+};
+
+static const UV XPosixLower_invlist[] = { /* for EBCDIC 037 */
+ 1275, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x70,
+ 0x71,
+ 0x81,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xCB,
+ 0xD0,
+ 0xDB,
+ 0xE0,
+ 0x101,
+ 0x102,
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x106,
+ 0x107,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x10E,
+ 0x10F,
+ 0x110,
+ 0x111,
+ 0x112,
+ 0x113,
+ 0x114,
+ 0x115,
+ 0x116,
+ 0x117,
+ 0x118,
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x11C,
+ 0x11D,
+ 0x11E,
+ 0x11F,
+ 0x120,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x124,
+ 0x125,
+ 0x126,
+ 0x127,
+ 0x128,
+ 0x129,
+ 0x12A,
+ 0x12B,
+ 0x12C,
+ 0x12D,
+ 0x12E,
+ 0x12F,
+ 0x130,
+ 0x131,
+ 0x132,
+ 0x133,
+ 0x134,
+ 0x135,
+ 0x136,
+ 0x137,
+ 0x139,
+ 0x13A,
+ 0x13B,
+ 0x13C,
+ 0x13D,
+ 0x13E,
+ 0x13F,
+ 0x140,
+ 0x141,
+ 0x142,
+ 0x143,
+ 0x144,
+ 0x145,
+ 0x146,
+ 0x147,
+ 0x148,
+ 0x14A,
+ 0x14B,
+ 0x14C,
+ 0x14D,
+ 0x14E,
+ 0x14F,
+ 0x150,
+ 0x151,
+ 0x152,
+ 0x153,
+ 0x154,
+ 0x155,
+ 0x156,
+ 0x157,
+ 0x158,
+ 0x159,
+ 0x15A,
+ 0x15B,
+ 0x15C,
+ 0x15D,
+ 0x15E,
+ 0x15F,
+ 0x160,
+ 0x161,
+ 0x162,
+ 0x163,
+ 0x164,
+ 0x165,
+ 0x166,
+ 0x167,
+ 0x168,
+ 0x169,
+ 0x16A,
+ 0x16B,
+ 0x16C,
+ 0x16D,
+ 0x16E,
+ 0x16F,
+ 0x170,
+ 0x171,
+ 0x172,
+ 0x173,
+ 0x174,
+ 0x175,
+ 0x176,
+ 0x177,
+ 0x178,
+ 0x17A,
+ 0x17B,
+ 0x17C,
+ 0x17D,
+ 0x17E,
+ 0x181,
+ 0x183,
+ 0x184,
+ 0x185,
+ 0x186,
+ 0x188,
+ 0x189,
+ 0x18C,
+ 0x18E,
+ 0x192,
+ 0x193,
+ 0x195,
+ 0x196,
+ 0x199,
+ 0x19C,
+ 0x19E,
+ 0x19F,
+ 0x1A1,
+ 0x1A2,
+ 0x1A3,
+ 0x1A4,
+ 0x1A5,
+ 0x1A6,
+ 0x1A8,
+ 0x1A9,
+ 0x1AA,
+ 0x1AC,
+ 0x1AD,
+ 0x1AE,
+ 0x1B0,
+ 0x1B1,
+ 0x1B4,
+ 0x1B5,
+ 0x1B6,
+ 0x1B7,
+ 0x1B9,
+ 0x1BB,
+ 0x1BD,
+ 0x1C0,
+ 0x1C6,
+ 0x1C7,
+ 0x1C9,
+ 0x1CA,
+ 0x1CC,
+ 0x1CD,
+ 0x1CE,
+ 0x1CF,
+ 0x1D0,
+ 0x1D1,
+ 0x1D2,
+ 0x1D3,
+ 0x1D4,
+ 0x1D5,
+ 0x1D6,
+ 0x1D7,
+ 0x1D8,
+ 0x1D9,
+ 0x1DA,
+ 0x1DB,
+ 0x1DC,
+ 0x1DE,
+ 0x1DF,
+ 0x1E0,
+ 0x1E1,
+ 0x1E2,
+ 0x1E3,
+ 0x1E4,
+ 0x1E5,
+ 0x1E6,
+ 0x1E7,
+ 0x1E8,
+ 0x1E9,
+ 0x1EA,
+ 0x1EB,
+ 0x1EC,
+ 0x1ED,
+ 0x1EE,
+ 0x1EF,
+ 0x1F1,
+ 0x1F3,
+ 0x1F4,
+ 0x1F5,
+ 0x1F6,
+ 0x1F9,
+ 0x1FA,
+ 0x1FB,
+ 0x1FC,
+ 0x1FD,
+ 0x1FE,
+ 0x1FF,
+ 0x200,
+ 0x201,
+ 0x202,
+ 0x203,
+ 0x204,
+ 0x205,
+ 0x206,
+ 0x207,
+ 0x208,
+ 0x209,
+ 0x20A,
+ 0x20B,
+ 0x20C,
+ 0x20D,
+ 0x20E,
+ 0x20F,
+ 0x210,
+ 0x211,
+ 0x212,
+ 0x213,
+ 0x214,
+ 0x215,
+ 0x216,
+ 0x217,
+ 0x218,
+ 0x219,
+ 0x21A,
+ 0x21B,
+ 0x21C,
+ 0x21D,
+ 0x21E,
+ 0x21F,
+ 0x220,
+ 0x221,
+ 0x222,
+ 0x223,
+ 0x224,
+ 0x225,
+ 0x226,
+ 0x227,
+ 0x228,
+ 0x229,
+ 0x22A,
+ 0x22B,
+ 0x22C,
+ 0x22D,
+ 0x22E,
+ 0x22F,
+ 0x230,
+ 0x231,
+ 0x232,
+ 0x233,
+ 0x23A,
+ 0x23C,
+ 0x23D,
+ 0x23F,
+ 0x241,
+ 0x242,
+ 0x243,
+ 0x247,
+ 0x248,
+ 0x249,
+ 0x24A,
+ 0x24B,
+ 0x24C,
+ 0x24D,
+ 0x24E,
+ 0x24F,
+ 0x294,
+ 0x295,
+ 0x2B9,
+ 0x2C0,
+ 0x2C2,
+ 0x2E0,
+ 0x2E5,
+ 0x345,
+ 0x346,
+ 0x371,
+ 0x372,
+ 0x373,
+ 0x374,
+ 0x377,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x390,
+ 0x391,
+ 0x3AC,
+ 0x3CF,
+ 0x3D0,
+ 0x3D2,
+ 0x3D5,
+ 0x3D8,
+ 0x3D9,
+ 0x3DA,
+ 0x3DB,
+ 0x3DC,
+ 0x3DD,
+ 0x3DE,
+ 0x3DF,
+ 0x3E0,
+ 0x3E1,
+ 0x3E2,
+ 0x3E3,
+ 0x3E4,
+ 0x3E5,
+ 0x3E6,
+ 0x3E7,
+ 0x3E8,
+ 0x3E9,
+ 0x3EA,
+ 0x3EB,
+ 0x3EC,
+ 0x3ED,
+ 0x3EE,
+ 0x3EF,
+ 0x3F4,
+ 0x3F5,
+ 0x3F6,
+ 0x3F8,
+ 0x3F9,
+ 0x3FB,
+ 0x3FD,
+ 0x430,
+ 0x460,
+ 0x461,
+ 0x462,
+ 0x463,
+ 0x464,
+ 0x465,
+ 0x466,
+ 0x467,
+ 0x468,
+ 0x469,
+ 0x46A,
+ 0x46B,
+ 0x46C,
+ 0x46D,
+ 0x46E,
+ 0x46F,
+ 0x470,
+ 0x471,
+ 0x472,
+ 0x473,
+ 0x474,
+ 0x475,
+ 0x476,
+ 0x477,
+ 0x478,
+ 0x479,
+ 0x47A,
+ 0x47B,
+ 0x47C,
+ 0x47D,
+ 0x47E,
+ 0x47F,
+ 0x480,
+ 0x481,
+ 0x482,
+ 0x48B,
+ 0x48C,
+ 0x48D,
+ 0x48E,
+ 0x48F,
+ 0x490,
+ 0x491,
+ 0x492,
+ 0x493,
+ 0x494,
+ 0x495,
+ 0x496,
+ 0x497,
+ 0x498,
+ 0x499,
+ 0x49A,
+ 0x49B,
+ 0x49C,
+ 0x49D,
+ 0x49E,
+ 0x49F,
+ 0x4A0,
+ 0x4A1,
+ 0x4A2,
+ 0x4A3,
+ 0x4A4,
+ 0x4A5,
+ 0x4A6,
+ 0x4A7,
+ 0x4A8,
+ 0x4A9,
+ 0x4AA,
+ 0x4AB,
+ 0x4AC,
+ 0x4AD,
+ 0x4AE,
+ 0x4AF,
+ 0x4B0,
+ 0x4B1,
+ 0x4B2,
+ 0x4B3,
+ 0x4B4,
+ 0x4B5,
+ 0x4B6,
+ 0x4B7,
+ 0x4B8,
+ 0x4B9,
+ 0x4BA,
+ 0x4BB,
+ 0x4BC,
+ 0x4BD,
+ 0x4BE,
+ 0x4BF,
+ 0x4C0,
+ 0x4C2,
+ 0x4C3,
+ 0x4C4,
+ 0x4C5,
+ 0x4C6,
+ 0x4C7,
+ 0x4C8,
+ 0x4C9,
+ 0x4CA,
+ 0x4CB,
+ 0x4CC,
+ 0x4CD,
+ 0x4CE,
+ 0x4D0,
+ 0x4D1,
+ 0x4D2,
+ 0x4D3,
+ 0x4D4,
+ 0x4D5,
+ 0x4D6,
+ 0x4D7,
+ 0x4D8,
+ 0x4D9,
+ 0x4DA,
+ 0x4DB,
+ 0x4DC,
+ 0x4DD,
+ 0x4DE,
+ 0x4DF,
+ 0x4E0,
+ 0x4E1,
+ 0x4E2,
+ 0x4E3,
+ 0x4E4,
+ 0x4E5,
+ 0x4E6,
+ 0x4E7,
+ 0x4E8,
+ 0x4E9,
+ 0x4EA,
+ 0x4EB,
+ 0x4EC,
+ 0x4ED,
+ 0x4EE,
+ 0x4EF,
+ 0x4F0,
+ 0x4F1,
+ 0x4F2,
+ 0x4F3,
+ 0x4F4,
+ 0x4F5,
+ 0x4F6,
+ 0x4F7,
+ 0x4F8,
+ 0x4F9,
+ 0x4FA,
+ 0x4FB,
+ 0x4FC,
+ 0x4FD,
+ 0x4FE,
+ 0x4FF,
+ 0x500,
+ 0x501,
+ 0x502,
+ 0x503,
+ 0x504,
+ 0x505,
+ 0x506,
+ 0x507,
+ 0x508,
+ 0x509,
+ 0x50A,
+ 0x50B,
+ 0x50C,
+ 0x50D,
+ 0x50E,
+ 0x50F,
+ 0x510,
+ 0x511,
+ 0x512,
+ 0x513,
+ 0x514,
+ 0x515,
+ 0x516,
+ 0x517,
+ 0x518,
+ 0x519,
+ 0x51A,
+ 0x51B,
+ 0x51C,
+ 0x51D,
+ 0x51E,
+ 0x51F,
+ 0x520,
+ 0x521,
+ 0x522,
+ 0x523,
+ 0x524,
+ 0x525,
+ 0x526,
+ 0x527,
+ 0x528,
+ 0x529,
+ 0x52A,
+ 0x52B,
+ 0x52C,
+ 0x52D,
+ 0x52E,
+ 0x52F,
+ 0x530,
+ 0x561,
+ 0x588,
+ 0x1D00,
+ 0x1DC0,
+ 0x1E01,
+ 0x1E02,
+ 0x1E03,
+ 0x1E04,
+ 0x1E05,
+ 0x1E06,
+ 0x1E07,
+ 0x1E08,
+ 0x1E09,
+ 0x1E0A,
+ 0x1E0B,
+ 0x1E0C,
+ 0x1E0D,
+ 0x1E0E,
+ 0x1E0F,
+ 0x1E10,
+ 0x1E11,
+ 0x1E12,
+ 0x1E13,
+ 0x1E14,
+ 0x1E15,
+ 0x1E16,
+ 0x1E17,
+ 0x1E18,
+ 0x1E19,
+ 0x1E1A,
+ 0x1E1B,
+ 0x1E1C,
+ 0x1E1D,
+ 0x1E1E,
+ 0x1E1F,
+ 0x1E20,
+ 0x1E21,
+ 0x1E22,
+ 0x1E23,
+ 0x1E24,
+ 0x1E25,
+ 0x1E26,
+ 0x1E27,
+ 0x1E28,
+ 0x1E29,
+ 0x1E2A,
+ 0x1E2B,
+ 0x1E2C,
+ 0x1E2D,
+ 0x1E2E,
+ 0x1E2F,
+ 0x1E30,
+ 0x1E31,
+ 0x1E32,
+ 0x1E33,
+ 0x1E34,
+ 0x1E35,
+ 0x1E36,
+ 0x1E37,
+ 0x1E38,
+ 0x1E39,
+ 0x1E3A,
+ 0x1E3B,
+ 0x1E3C,
+ 0x1E3D,
+ 0x1E3E,
+ 0x1E3F,
+ 0x1E40,
+ 0x1E41,
+ 0x1E42,
+ 0x1E43,
+ 0x1E44,
+ 0x1E45,
+ 0x1E46,
+ 0x1E47,
+ 0x1E48,
+ 0x1E49,
+ 0x1E4A,
+ 0x1E4B,
+ 0x1E4C,
+ 0x1E4D,
+ 0x1E4E,
+ 0x1E4F,
+ 0x1E50,
+ 0x1E51,
+ 0x1E52,
+ 0x1E53,
+ 0x1E54,
+ 0x1E55,
+ 0x1E56,
+ 0x1E57,
+ 0x1E58,
+ 0x1E59,
+ 0x1E5A,
+ 0x1E5B,
+ 0x1E5C,
+ 0x1E5D,
+ 0x1E5E,
+ 0x1E5F,
+ 0x1E60,
+ 0x1E61,
+ 0x1E62,
+ 0x1E63,
+ 0x1E64,
+ 0x1E65,
+ 0x1E66,
+ 0x1E67,
+ 0x1E68,
+ 0x1E69,
+ 0x1E6A,
+ 0x1E6B,
+ 0x1E6C,
+ 0x1E6D,
+ 0x1E6E,
+ 0x1E6F,
+ 0x1E70,
+ 0x1E71,
+ 0x1E72,
+ 0x1E73,
+ 0x1E74,
+ 0x1E75,
+ 0x1E76,
+ 0x1E77,
+ 0x1E78,
+ 0x1E79,
+ 0x1E7A,
+ 0x1E7B,
+ 0x1E7C,
+ 0x1E7D,
+ 0x1E7E,
+ 0x1E7F,
+ 0x1E80,
+ 0x1E81,
+ 0x1E82,
+ 0x1E83,
+ 0x1E84,
+ 0x1E85,
+ 0x1E86,
+ 0x1E87,
+ 0x1E88,
+ 0x1E89,
+ 0x1E8A,
+ 0x1E8B,
+ 0x1E8C,
+ 0x1E8D,
+ 0x1E8E,
+ 0x1E8F,
+ 0x1E90,
+ 0x1E91,
+ 0x1E92,
+ 0x1E93,
+ 0x1E94,
+ 0x1E95,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1EA1,
+ 0x1EA2,
+ 0x1EA3,
+ 0x1EA4,
+ 0x1EA5,
+ 0x1EA6,
+ 0x1EA7,
+ 0x1EA8,
+ 0x1EA9,
+ 0x1EAA,
+ 0x1EAB,
+ 0x1EAC,
+ 0x1EAD,
+ 0x1EAE,
+ 0x1EAF,
+ 0x1EB0,
+ 0x1EB1,
+ 0x1EB2,
+ 0x1EB3,
+ 0x1EB4,
+ 0x1EB5,
+ 0x1EB6,
+ 0x1EB7,
+ 0x1EB8,
+ 0x1EB9,
+ 0x1EBA,
+ 0x1EBB,
+ 0x1EBC,
+ 0x1EBD,
+ 0x1EBE,
+ 0x1EBF,
+ 0x1EC0,
+ 0x1EC1,
+ 0x1EC2,
+ 0x1EC3,
+ 0x1EC4,
+ 0x1EC5,
+ 0x1EC6,
+ 0x1EC7,
+ 0x1EC8,
+ 0x1EC9,
+ 0x1ECA,
+ 0x1ECB,
+ 0x1ECC,
+ 0x1ECD,
+ 0x1ECE,
+ 0x1ECF,
+ 0x1ED0,
+ 0x1ED1,
+ 0x1ED2,
+ 0x1ED3,
+ 0x1ED4,
+ 0x1ED5,
+ 0x1ED6,
+ 0x1ED7,
+ 0x1ED8,
+ 0x1ED9,
+ 0x1EDA,
+ 0x1EDB,
+ 0x1EDC,
+ 0x1EDD,
+ 0x1EDE,
+ 0x1EDF,
+ 0x1EE0,
+ 0x1EE1,
+ 0x1EE2,
+ 0x1EE3,
+ 0x1EE4,
+ 0x1EE5,
+ 0x1EE6,
+ 0x1EE7,
+ 0x1EE8,
+ 0x1EE9,
+ 0x1EEA,
+ 0x1EEB,
+ 0x1EEC,
+ 0x1EED,
+ 0x1EEE,
+ 0x1EEF,
+ 0x1EF0,
+ 0x1EF1,
+ 0x1EF2,
+ 0x1EF3,
+ 0x1EF4,
+ 0x1EF5,
+ 0x1EF6,
+ 0x1EF7,
+ 0x1EF8,
+ 0x1EF9,
+ 0x1EFA,
+ 0x1EFB,
+ 0x1EFC,
+ 0x1EFD,
+ 0x1EFE,
+ 0x1EFF,
+ 0x1F08,
+ 0x1F10,
+ 0x1F16,
+ 0x1F20,
+ 0x1F28,
+ 0x1F30,
+ 0x1F38,
+ 0x1F40,
+ 0x1F46,
+ 0x1F50,
+ 0x1F58,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1F7E,
+ 0x1F80,
+ 0x1F88,
+ 0x1F90,
+ 0x1F98,
+ 0x1FA0,
+ 0x1FA8,
+ 0x1FB0,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FB8,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FC8,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FD8,
+ 0x1FE0,
+ 0x1FE8,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FF8,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x210A,
+ 0x210B,
+ 0x210E,
+ 0x2110,
+ 0x2113,
+ 0x2114,
+ 0x212F,
+ 0x2130,
+ 0x2134,
+ 0x2135,
+ 0x2139,
+ 0x213A,
+ 0x213C,
+ 0x213E,
+ 0x2146,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2170,
+ 0x2180,
+ 0x2184,
+ 0x2185,
+ 0x24D0,
+ 0x24EA,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C61,
+ 0x2C62,
+ 0x2C65,
+ 0x2C67,
+ 0x2C68,
+ 0x2C69,
+ 0x2C6A,
+ 0x2C6B,
+ 0x2C6C,
+ 0x2C6D,
+ 0x2C71,
+ 0x2C72,
+ 0x2C73,
+ 0x2C75,
+ 0x2C76,
+ 0x2C7E,
+ 0x2C81,
+ 0x2C82,
+ 0x2C83,
+ 0x2C84,
+ 0x2C85,
+ 0x2C86,
+ 0x2C87,
+ 0x2C88,
+ 0x2C89,
+ 0x2C8A,
+ 0x2C8B,
+ 0x2C8C,
+ 0x2C8D,
+ 0x2C8E,
+ 0x2C8F,
+ 0x2C90,
+ 0x2C91,
+ 0x2C92,
+ 0x2C93,
+ 0x2C94,
+ 0x2C95,
+ 0x2C96,
+ 0x2C97,
+ 0x2C98,
+ 0x2C99,
+ 0x2C9A,
+ 0x2C9B,
+ 0x2C9C,
+ 0x2C9D,
+ 0x2C9E,
+ 0x2C9F,
+ 0x2CA0,
+ 0x2CA1,
+ 0x2CA2,
+ 0x2CA3,
+ 0x2CA4,
+ 0x2CA5,
+ 0x2CA6,
+ 0x2CA7,
+ 0x2CA8,
+ 0x2CA9,
+ 0x2CAA,
+ 0x2CAB,
+ 0x2CAC,
+ 0x2CAD,
+ 0x2CAE,
+ 0x2CAF,
+ 0x2CB0,
+ 0x2CB1,
+ 0x2CB2,
+ 0x2CB3,
+ 0x2CB4,
+ 0x2CB5,
+ 0x2CB6,
+ 0x2CB7,
+ 0x2CB8,
+ 0x2CB9,
+ 0x2CBA,
+ 0x2CBB,
+ 0x2CBC,
+ 0x2CBD,
+ 0x2CBE,
+ 0x2CBF,
+ 0x2CC0,
+ 0x2CC1,
+ 0x2CC2,
+ 0x2CC3,
+ 0x2CC4,
+ 0x2CC5,
+ 0x2CC6,
+ 0x2CC7,
+ 0x2CC8,
+ 0x2CC9,
+ 0x2CCA,
+ 0x2CCB,
+ 0x2CCC,
+ 0x2CCD,
+ 0x2CCE,
+ 0x2CCF,
+ 0x2CD0,
+ 0x2CD1,
+ 0x2CD2,
+ 0x2CD3,
+ 0x2CD4,
+ 0x2CD5,
+ 0x2CD6,
+ 0x2CD7,
+ 0x2CD8,
+ 0x2CD9,
+ 0x2CDA,
+ 0x2CDB,
+ 0x2CDC,
+ 0x2CDD,
+ 0x2CDE,
+ 0x2CDF,
+ 0x2CE0,
+ 0x2CE1,
+ 0x2CE2,
+ 0x2CE3,
+ 0x2CE5,
+ 0x2CEC,
+ 0x2CED,
+ 0x2CEE,
+ 0x2CEF,
+ 0x2CF3,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0xA641,
+ 0xA642,
+ 0xA643,
+ 0xA644,
+ 0xA645,
+ 0xA646,
+ 0xA647,
+ 0xA648,
+ 0xA649,
+ 0xA64A,
+ 0xA64B,
+ 0xA64C,
+ 0xA64D,
+ 0xA64E,
+ 0xA64F,
+ 0xA650,
+ 0xA651,
+ 0xA652,
+ 0xA653,
+ 0xA654,
+ 0xA655,
+ 0xA656,
+ 0xA657,
+ 0xA658,
+ 0xA659,
+ 0xA65A,
+ 0xA65B,
+ 0xA65C,
+ 0xA65D,
+ 0xA65E,
+ 0xA65F,
+ 0xA660,
+ 0xA661,
+ 0xA662,
+ 0xA663,
+ 0xA664,
+ 0xA665,
+ 0xA666,
+ 0xA667,
+ 0xA668,
+ 0xA669,
+ 0xA66A,
+ 0xA66B,
+ 0xA66C,
+ 0xA66D,
+ 0xA66E,
+ 0xA681,
+ 0xA682,
+ 0xA683,
+ 0xA684,
+ 0xA685,
+ 0xA686,
+ 0xA687,
+ 0xA688,
+ 0xA689,
+ 0xA68A,
+ 0xA68B,
+ 0xA68C,
+ 0xA68D,
+ 0xA68E,
+ 0xA68F,
+ 0xA690,
+ 0xA691,
+ 0xA692,
+ 0xA693,
+ 0xA694,
+ 0xA695,
+ 0xA696,
+ 0xA697,
+ 0xA698,
+ 0xA699,
+ 0xA69A,
+ 0xA69B,
+ 0xA69E,
+ 0xA723,
+ 0xA724,
+ 0xA725,
+ 0xA726,
+ 0xA727,
+ 0xA728,
+ 0xA729,
+ 0xA72A,
+ 0xA72B,
+ 0xA72C,
+ 0xA72D,
+ 0xA72E,
+ 0xA72F,
+ 0xA732,
+ 0xA733,
+ 0xA734,
+ 0xA735,
+ 0xA736,
+ 0xA737,
+ 0xA738,
+ 0xA739,
+ 0xA73A,
+ 0xA73B,
+ 0xA73C,
+ 0xA73D,
+ 0xA73E,
+ 0xA73F,
+ 0xA740,
+ 0xA741,
+ 0xA742,
+ 0xA743,
+ 0xA744,
+ 0xA745,
+ 0xA746,
+ 0xA747,
+ 0xA748,
+ 0xA749,
+ 0xA74A,
+ 0xA74B,
+ 0xA74C,
+ 0xA74D,
+ 0xA74E,
+ 0xA74F,
+ 0xA750,
+ 0xA751,
+ 0xA752,
+ 0xA753,
+ 0xA754,
+ 0xA755,
+ 0xA756,
+ 0xA757,
+ 0xA758,
+ 0xA759,
+ 0xA75A,
+ 0xA75B,
+ 0xA75C,
+ 0xA75D,
+ 0xA75E,
+ 0xA75F,
+ 0xA760,
+ 0xA761,
+ 0xA762,
+ 0xA763,
+ 0xA764,
+ 0xA765,
+ 0xA766,
+ 0xA767,
+ 0xA768,
+ 0xA769,
+ 0xA76A,
+ 0xA76B,
+ 0xA76C,
+ 0xA76D,
+ 0xA76E,
+ 0xA76F,
+ 0xA779,
+ 0xA77A,
+ 0xA77B,
+ 0xA77C,
+ 0xA77D,
+ 0xA77F,
+ 0xA780,
+ 0xA781,
+ 0xA782,
+ 0xA783,
+ 0xA784,
+ 0xA785,
+ 0xA786,
+ 0xA787,
+ 0xA788,
+ 0xA78C,
+ 0xA78D,
+ 0xA78E,
+ 0xA78F,
+ 0xA791,
+ 0xA792,
+ 0xA793,
+ 0xA796,
+ 0xA797,
+ 0xA798,
+ 0xA799,
+ 0xA79A,
+ 0xA79B,
+ 0xA79C,
+ 0xA79D,
+ 0xA79E,
+ 0xA79F,
+ 0xA7A0,
+ 0xA7A1,
+ 0xA7A2,
+ 0xA7A3,
+ 0xA7A4,
+ 0xA7A5,
+ 0xA7A6,
+ 0xA7A7,
+ 0xA7A8,
+ 0xA7A9,
+ 0xA7AA,
+ 0xA7F8,
+ 0xA7FB,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFF41,
+ 0xFF5B,
+ 0x10428,
+ 0x10450,
+ 0x118C0,
+ 0x118E0,
+ 0x1D41A,
+ 0x1D434,
+ 0x1D44E,
+ 0x1D455,
+ 0x1D456,
+ 0x1D468,
+ 0x1D482,
+ 0x1D49C,
+ 0x1D4B6,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D4D0,
+ 0x1D4EA,
+ 0x1D504,
+ 0x1D51E,
+ 0x1D538,
+ 0x1D552,
+ 0x1D56C,
+ 0x1D586,
+ 0x1D5A0,
+ 0x1D5BA,
+ 0x1D5D4,
+ 0x1D5EE,
+ 0x1D608,
+ 0x1D622,
+ 0x1D63C,
+ 0x1D656,
+ 0x1D670,
+ 0x1D68A,
+ 0x1D6A6,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6E2,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D71C,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D756,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D790,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CA,
+ 0x1D7CB,
+ 0x1D7CC
+};
+
+static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
+ 1205, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x40,
+ 0xFF,
+ 0x100,
+ 0x378,
+ 0x37A,
+ 0x380,
+ 0x384,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x560,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58B,
+ 0x58D,
+ 0x590,
+ 0x591,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F5,
+ 0x600,
+ 0x61D,
+ 0x61E,
+ 0x70E,
+ 0x70F,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x830,
+ 0x83F,
+ 0x840,
+ 0x85C,
+ 0x85E,
+ 0x85F,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9FC,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF2,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB78,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBFB,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC78,
+ 0xC80,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD76,
+ 0xD79,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF5,
+ 0xE01,
+ 0xE3B,
+ 0xE3F,
+ 0xE5C,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFBE,
+ 0xFCD,
+ 0xFCE,
+ 0xFDB,
+ 0x1000,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x137D,
+ 0x1380,
+ 0x139A,
+ 0x13A0,
+ 0x13F5,
+ 0x1400,
+ 0x169D,
+ 0x16A0,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1737,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x17F0,
+ 0x17FA,
+ 0x1800,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1940,
+ 0x1941,
+ 0x1944,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DB,
+ 0x19DE,
+ 0x1A1C,
+ 0x1A1E,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA0,
+ 0x1AAE,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B7D,
+ 0x1B80,
+ 0x1BF4,
+ 0x1BFC,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C80,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FDD,
+ 0x1FF0,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFF,
+ 0x2000,
+ 0x2028,
+ 0x202A,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20BE,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218A,
+ 0x2190,
+ 0x23FB,
+ 0x2400,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B98,
+ 0x2BBA,
+ 0x2BBD,
+ 0x2BC9,
+ 0x2BCA,
+ 0x2BD2,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CF4,
+ 0x2CF9,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D71,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E43,
+ 0x2E80,
+ 0x2E9A,
+ 0x2E9B,
+ 0x2EF4,
+ 0x2F00,
+ 0x2FD6,
+ 0x2FF0,
+ 0x2FFC,
+ 0x3000,
+ 0x3040,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x3190,
+ 0x31BB,
+ 0x31C0,
+ 0x31E4,
+ 0x31F0,
+ 0x321F,
+ 0x3220,
+ 0x32FF,
+ 0x3300,
+ 0x4DB6,
+ 0x4DC0,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F8,
+ 0xA700,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA82C,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C5,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8FC,
+ 0xA900,
+ 0xA954,
+ 0xA95F,
+ 0xA97D,
+ 0xA980,
+ 0xA9CE,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9DE,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA5C,
+ 0xAAC3,
+ 0xAADB,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xE000,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBC2,
+ 0xFBD3,
+ 0xFD40,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFE,
+ 0xFE00,
+ 0xFE1A,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE30,
+ 0xFE53,
+ 0xFE54,
+ 0xFE67,
+ 0xFE68,
+ 0xFE6C,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF01,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFE0,
+ 0xFFE7,
+ 0xFFE8,
+ 0xFFEF,
+ 0xFFF9,
+ 0xFFFE,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10100,
+ 0x10103,
+ 0x10107,
+ 0x10134,
+ 0x10137,
+ 0x1018D,
+ 0x10190,
+ 0x1019C,
+ 0x101A0,
+ 0x101A1,
+ 0x101D0,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102FC,
+ 0x10300,
+ 0x10324,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x1039F,
+ 0x103C4,
+ 0x103C8,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x1056F,
+ 0x10570,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10857,
+ 0x1089F,
+ 0x108A7,
+ 0x108B0,
+ 0x10900,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A48,
+ 0x10A50,
+ 0x10A59,
+ 0x10A60,
+ 0x10AA0,
+ 0x10AC0,
+ 0x10AE7,
+ 0x10AEB,
+ 0x10AF7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B39,
+ 0x10B56,
+ 0x10B58,
+ 0x10B73,
+ 0x10B78,
+ 0x10B92,
+ 0x10B99,
+ 0x10B9D,
+ 0x10BA9,
+ 0x10BB0,
+ 0x10C00,
+ 0x10C49,
+ 0x10E60,
+ 0x10E7F,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11070,
+ 0x1107F,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11144,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111C9,
+ 0x111CD,
+ 0x111CE,
+ 0x111D0,
+ 0x111DB,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1123E,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115CA,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B46,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B5B,
+ 0x16B62,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1DE,
+ 0x1D200,
+ 0x1D246,
+ 0x1D300,
+ 0x1D357,
+ 0x1D360,
+ 0x1D372,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1EEF0,
+ 0x1EEF2,
+ 0x1F000,
+ 0x1F02C,
+ 0x1F030,
+ 0x1F094,
+ 0x1F0A0,
+ 0x1F0AF,
+ 0x1F0B1,
+ 0x1F0C0,
+ 0x1F0C1,
+ 0x1F0D0,
+ 0x1F0D1,
+ 0x1F0F6,
+ 0x1F100,
+ 0x1F10D,
+ 0x1F110,
+ 0x1F12F,
+ 0x1F130,
+ 0x1F16C,
+ 0x1F170,
+ 0x1F19B,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23B,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F300,
+ 0x1F32D,
+ 0x1F330,
+ 0x1F37E,
+ 0x1F380,
+ 0x1F3CF,
+ 0x1F3D4,
+ 0x1F3F8,
+ 0x1F400,
+ 0x1F4FF,
+ 0x1F500,
+ 0x1F54B,
+ 0x1F550,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F5A4,
+ 0x1F5A5,
+ 0x1F643,
+ 0x1F645,
+ 0x1F6D0,
+ 0x1F6E0,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6F4,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xF0000,
+ 0xFFFFE,
+ 0x100000,
+ 0x10FFFE
+};
+
+static const UV XPosixPunct_invlist[] = { /* for EBCDIC 037 */
+ 311, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x4B,
+ 0x51,
+ 0x5A,
+ 0x5F,
+ 0x60,
+ 0x62,
+ 0x6B,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xB0,
+ 0xB1,
+ 0xB3,
+ 0xB4,
+ 0xB5,
+ 0xB7,
+ 0xBA,
+ 0xBC,
+ 0xC0,
+ 0xC1,
+ 0xD0,
+ 0xD1,
+ 0xE0,
+ 0xE1,
+ 0x37E,
+ 0x37F,
+ 0x387,
+ 0x388,
+ 0x55A,
+ 0x560,
+ 0x589,
+ 0x58B,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5F3,
+ 0x5F5,
+ 0x609,
+ 0x60B,
+ 0x60C,
+ 0x60E,
+ 0x61B,
+ 0x61C,
+ 0x61E,
+ 0x620,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x700,
+ 0x70E,
+ 0x7F7,
+ 0x7FA,
+ 0x830,
+ 0x83F,
+ 0x85E,
+ 0x85F,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0xAF0,
+ 0xAF1,
+ 0xDF4,
+ 0xDF5,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE5C,
+ 0xF04,
+ 0xF13,
+ 0xF14,
+ 0xF15,
+ 0xF3A,
+ 0xF3E,
+ 0xF85,
+ 0xF86,
+ 0xFD0,
+ 0xFD5,
+ 0xFD9,
+ 0xFDB,
+ 0x104A,
+ 0x1050,
+ 0x10FB,
+ 0x10FC,
+ 0x1360,
+ 0x1369,
+ 0x1400,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x169B,
+ 0x169D,
+ 0x16EB,
+ 0x16EE,
+ 0x1735,
+ 0x1737,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DB,
+ 0x1800,
+ 0x180B,
+ 0x1944,
+ 0x1946,
+ 0x1A1E,
+ 0x1A20,
+ 0x1AA0,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AAE,
+ 0x1B5A,
+ 0x1B61,
+ 0x1BFC,
+ 0x1C00,
+ 0x1C3B,
+ 0x1C40,
+ 0x1C7E,
+ 0x1C80,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD3,
+ 0x1CD4,
+ 0x2010,
+ 0x2028,
+ 0x2030,
+ 0x2044,
+ 0x2045,
+ 0x2052,
+ 0x2053,
+ 0x205F,
+ 0x207D,
+ 0x207F,
+ 0x208D,
+ 0x208F,
+ 0x2308,
+ 0x230C,
+ 0x2329,
+ 0x232B,
+ 0x2768,
+ 0x2776,
+ 0x27C5,
+ 0x27C7,
+ 0x27E6,
+ 0x27F0,
+ 0x2983,
+ 0x2999,
+ 0x29D8,
+ 0x29DC,
+ 0x29FC,
+ 0x29FE,
+ 0x2CF9,
+ 0x2CFD,
+ 0x2CFE,
+ 0x2D00,
+ 0x2D70,
+ 0x2D71,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x2E43,
+ 0x3001,
+ 0x3004,
+ 0x3008,
+ 0x3012,
+ 0x3014,
+ 0x3020,
+ 0x3030,
+ 0x3031,
+ 0x303D,
+ 0x303E,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA6F2,
+ 0xA6F8,
+ 0xA874,
+ 0xA878,
+ 0xA8CE,
+ 0xA8D0,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA92E,
+ 0xA930,
+ 0xA95F,
+ 0xA960,
+ 0xA9C1,
+ 0xA9CE,
+ 0xA9DE,
+ 0xA9E0,
+ 0xAA5C,
+ 0xAA60,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xABEB,
+ 0xABEC,
+ 0xFD3E,
+ 0xFD40,
+ 0xFE10,
+ 0xFE1A,
+ 0xFE30,
+ 0xFE53,
+ 0xFE54,
+ 0xFE62,
+ 0xFE63,
+ 0xFE64,
+ 0xFE68,
+ 0xFE69,
+ 0xFE6A,
+ 0xFE6C,
+ 0xFF01,
+ 0xFF04,
+ 0xFF05,
+ 0xFF0B,
+ 0xFF0C,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF1C,
+ 0xFF1F,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3E,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF5B,
+ 0xFF5C,
+ 0xFF5D,
+ 0xFF5E,
+ 0xFF5F,
+ 0xFF66,
+ 0x10100,
+ 0x10103,
+ 0x1039F,
+ 0x103A0,
+ 0x103D0,
+ 0x103D1,
+ 0x1056F,
+ 0x10570,
+ 0x10857,
+ 0x10858,
+ 0x1091F,
+ 0x10920,
+ 0x1093F,
+ 0x10940,
+ 0x10A50,
+ 0x10A59,
+ 0x10A7F,
+ 0x10A80,
+ 0x10AF0,
+ 0x10AF7,
+ 0x10B39,
+ 0x10B40,
+ 0x10B99,
+ 0x10B9D,
+ 0x11047,
+ 0x1104E,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x110C2,
+ 0x11140,
+ 0x11144,
+ 0x11174,
+ 0x11176,
+ 0x111C5,
+ 0x111C9,
+ 0x111CD,
+ 0x111CE,
+ 0x11238,
+ 0x1123E,
+ 0x114C6,
+ 0x114C7,
+ 0x115C1,
+ 0x115CA,
+ 0x11641,
+ 0x11644,
+ 0x12470,
+ 0x12475,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AF5,
+ 0x16AF6,
+ 0x16B37,
+ 0x16B3C,
+ 0x16B44,
+ 0x16B45,
+ 0x1BC9F,
+ 0x1BCA0
+};
+
+static const UV XPosixSpace_invlist[] = { /* for EBCDIC 037 */
+ 23, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x5,
+ 0x6,
+ 0xB,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x40,
+ 0x42,
+ 0x1680,
+ 0x1681,
+ 0x2000,
+ 0x200B,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x3000,
+ 0x3001
+};
+
+static const UV XPosixUpper_invlist[] = { /* for EBCDIC 037 */
+ 1269, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x62,
+ 0x6A,
+ 0x71,
+ 0x79,
+ 0x80,
+ 0x81,
+ 0x9E,
+ 0x9F,
+ 0xAC,
+ 0xAF,
+ 0xC1,
+ 0xCA,
+ 0xD1,
+ 0xDA,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x101,
+ 0x102,
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x106,
+ 0x107,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x10E,
+ 0x10F,
+ 0x110,
+ 0x111,
+ 0x112,
+ 0x113,
+ 0x114,
+ 0x115,
+ 0x116,
+ 0x117,
+ 0x118,
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x11C,
+ 0x11D,
+ 0x11E,
+ 0x11F,
+ 0x120,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x124,
+ 0x125,
+ 0x126,
+ 0x127,
+ 0x128,
+ 0x129,
+ 0x12A,
+ 0x12B,
+ 0x12C,
+ 0x12D,
+ 0x12E,
+ 0x12F,
+ 0x130,
+ 0x131,
+ 0x132,
+ 0x133,
+ 0x134,
+ 0x135,
+ 0x136,
+ 0x137,
+ 0x139,
+ 0x13A,
+ 0x13B,
+ 0x13C,
+ 0x13D,
+ 0x13E,
+ 0x13F,
+ 0x140,
+ 0x141,
+ 0x142,
+ 0x143,
+ 0x144,
+ 0x145,
+ 0x146,
+ 0x147,
+ 0x148,
+ 0x14A,
+ 0x14B,
+ 0x14C,
+ 0x14D,
+ 0x14E,
+ 0x14F,
+ 0x150,
+ 0x151,
+ 0x152,
+ 0x153,
+ 0x154,
+ 0x155,
+ 0x156,
+ 0x157,
+ 0x158,
+ 0x159,
+ 0x15A,
+ 0x15B,
+ 0x15C,
+ 0x15D,
+ 0x15E,
+ 0x15F,
+ 0x160,
+ 0x161,
+ 0x162,
+ 0x163,
+ 0x164,
+ 0x165,
+ 0x166,
+ 0x167,
+ 0x168,
+ 0x169,
+ 0x16A,
+ 0x16B,
+ 0x16C,
+ 0x16D,
+ 0x16E,
+ 0x16F,
+ 0x170,
+ 0x171,
+ 0x172,
+ 0x173,
+ 0x174,
+ 0x175,
+ 0x176,
+ 0x177,
+ 0x178,
+ 0x17A,
+ 0x17B,
+ 0x17C,
+ 0x17D,
+ 0x17E,
+ 0x181,
+ 0x183,
+ 0x184,
+ 0x185,
+ 0x186,
+ 0x188,
+ 0x189,
+ 0x18C,
+ 0x18E,
+ 0x192,
+ 0x193,
+ 0x195,
+ 0x196,
+ 0x199,
+ 0x19C,
+ 0x19E,
+ 0x19F,
+ 0x1A1,
+ 0x1A2,
+ 0x1A3,
+ 0x1A4,
+ 0x1A5,
+ 0x1A6,
+ 0x1A8,
+ 0x1A9,
+ 0x1AA,
+ 0x1AC,
+ 0x1AD,
+ 0x1AE,
+ 0x1B0,
+ 0x1B1,
+ 0x1B4,
+ 0x1B5,
+ 0x1B6,
+ 0x1B7,
+ 0x1B9,
+ 0x1BC,
+ 0x1BD,
+ 0x1C4,
+ 0x1C5,
+ 0x1C7,
+ 0x1C8,
+ 0x1CA,
+ 0x1CB,
+ 0x1CD,
+ 0x1CE,
+ 0x1CF,
+ 0x1D0,
+ 0x1D1,
+ 0x1D2,
+ 0x1D3,
+ 0x1D4,
+ 0x1D5,
+ 0x1D6,
+ 0x1D7,
+ 0x1D8,
+ 0x1D9,
+ 0x1DA,
+ 0x1DB,
+ 0x1DC,
+ 0x1DE,
+ 0x1DF,
+ 0x1E0,
+ 0x1E1,
+ 0x1E2,
+ 0x1E3,
+ 0x1E4,
+ 0x1E5,
+ 0x1E6,
+ 0x1E7,
+ 0x1E8,
+ 0x1E9,
+ 0x1EA,
+ 0x1EB,
+ 0x1EC,
+ 0x1ED,
+ 0x1EE,
+ 0x1EF,
+ 0x1F1,
+ 0x1F2,
+ 0x1F4,
+ 0x1F5,
+ 0x1F6,
+ 0x1F9,
+ 0x1FA,
+ 0x1FB,
+ 0x1FC,
+ 0x1FD,
+ 0x1FE,
+ 0x1FF,
+ 0x200,
+ 0x201,
+ 0x202,
+ 0x203,
+ 0x204,
+ 0x205,
+ 0x206,
+ 0x207,
+ 0x208,
+ 0x209,
+ 0x20A,
+ 0x20B,
+ 0x20C,
+ 0x20D,
+ 0x20E,
+ 0x20F,
+ 0x210,
+ 0x211,
+ 0x212,
+ 0x213,
+ 0x214,
+ 0x215,
+ 0x216,
+ 0x217,
+ 0x218,
+ 0x219,
+ 0x21A,
+ 0x21B,
+ 0x21C,
+ 0x21D,
+ 0x21E,
+ 0x21F,
+ 0x220,
+ 0x221,
+ 0x222,
+ 0x223,
+ 0x224,
+ 0x225,
+ 0x226,
+ 0x227,
+ 0x228,
+ 0x229,
+ 0x22A,
+ 0x22B,
+ 0x22C,
+ 0x22D,
+ 0x22E,
+ 0x22F,
+ 0x230,
+ 0x231,
+ 0x232,
+ 0x233,
+ 0x23A,
+ 0x23C,
+ 0x23D,
+ 0x23F,
+ 0x241,
+ 0x242,
+ 0x243,
+ 0x247,
+ 0x248,
+ 0x249,
+ 0x24A,
+ 0x24B,
+ 0x24C,
+ 0x24D,
+ 0x24E,
+ 0x24F,
+ 0x370,
+ 0x371,
+ 0x372,
+ 0x373,
+ 0x376,
+ 0x377,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x390,
+ 0x391,
+ 0x3A2,
+ 0x3A3,
+ 0x3AC,
+ 0x3CF,
+ 0x3D0,
+ 0x3D2,
+ 0x3D5,
+ 0x3D8,
+ 0x3D9,
+ 0x3DA,
+ 0x3DB,
+ 0x3DC,
+ 0x3DD,
+ 0x3DE,
+ 0x3DF,
+ 0x3E0,
+ 0x3E1,
+ 0x3E2,
+ 0x3E3,
+ 0x3E4,
+ 0x3E5,
+ 0x3E6,
+ 0x3E7,
+ 0x3E8,
+ 0x3E9,
+ 0x3EA,
+ 0x3EB,
+ 0x3EC,
+ 0x3ED,
+ 0x3EE,
+ 0x3EF,
+ 0x3F4,
+ 0x3F5,
+ 0x3F7,
+ 0x3F8,
+ 0x3F9,
+ 0x3FB,
+ 0x3FD,
+ 0x430,
+ 0x460,
+ 0x461,
+ 0x462,
+ 0x463,
+ 0x464,
+ 0x465,
+ 0x466,
+ 0x467,
+ 0x468,
+ 0x469,
+ 0x46A,
+ 0x46B,
+ 0x46C,
+ 0x46D,
+ 0x46E,
+ 0x46F,
+ 0x470,
+ 0x471,
+ 0x472,
+ 0x473,
+ 0x474,
+ 0x475,
+ 0x476,
+ 0x477,
+ 0x478,
+ 0x479,
+ 0x47A,
+ 0x47B,
+ 0x47C,
+ 0x47D,
+ 0x47E,
+ 0x47F,
+ 0x480,
+ 0x481,
+ 0x48A,
+ 0x48B,
+ 0x48C,
+ 0x48D,
+ 0x48E,
+ 0x48F,
+ 0x490,
+ 0x491,
+ 0x492,
+ 0x493,
+ 0x494,
+ 0x495,
+ 0x496,
+ 0x497,
+ 0x498,
+ 0x499,
+ 0x49A,
+ 0x49B,
+ 0x49C,
+ 0x49D,
+ 0x49E,
+ 0x49F,
+ 0x4A0,
+ 0x4A1,
+ 0x4A2,
+ 0x4A3,
+ 0x4A4,
+ 0x4A5,
+ 0x4A6,
+ 0x4A7,
+ 0x4A8,
+ 0x4A9,
+ 0x4AA,
+ 0x4AB,
+ 0x4AC,
+ 0x4AD,
+ 0x4AE,
+ 0x4AF,
+ 0x4B0,
+ 0x4B1,
+ 0x4B2,
+ 0x4B3,
+ 0x4B4,
+ 0x4B5,
+ 0x4B6,
+ 0x4B7,
+ 0x4B8,
+ 0x4B9,
+ 0x4BA,
+ 0x4BB,
+ 0x4BC,
+ 0x4BD,
+ 0x4BE,
+ 0x4BF,
+ 0x4C0,
+ 0x4C2,
+ 0x4C3,
+ 0x4C4,
+ 0x4C5,
+ 0x4C6,
+ 0x4C7,
+ 0x4C8,
+ 0x4C9,
+ 0x4CA,
+ 0x4CB,
+ 0x4CC,
+ 0x4CD,
+ 0x4CE,
+ 0x4D0,
+ 0x4D1,
+ 0x4D2,
+ 0x4D3,
+ 0x4D4,
+ 0x4D5,
+ 0x4D6,
+ 0x4D7,
+ 0x4D8,
+ 0x4D9,
+ 0x4DA,
+ 0x4DB,
+ 0x4DC,
+ 0x4DD,
+ 0x4DE,
+ 0x4DF,
+ 0x4E0,
+ 0x4E1,
+ 0x4E2,
+ 0x4E3,
+ 0x4E4,
+ 0x4E5,
+ 0x4E6,
+ 0x4E7,
+ 0x4E8,
+ 0x4E9,
+ 0x4EA,
+ 0x4EB,
+ 0x4EC,
+ 0x4ED,
+ 0x4EE,
+ 0x4EF,
+ 0x4F0,
+ 0x4F1,
+ 0x4F2,
+ 0x4F3,
+ 0x4F4,
+ 0x4F5,
+ 0x4F6,
+ 0x4F7,
+ 0x4F8,
+ 0x4F9,
+ 0x4FA,
+ 0x4FB,
+ 0x4FC,
+ 0x4FD,
+ 0x4FE,
+ 0x4FF,
+ 0x500,
+ 0x501,
+ 0x502,
+ 0x503,
+ 0x504,
+ 0x505,
+ 0x506,
+ 0x507,
+ 0x508,
+ 0x509,
+ 0x50A,
+ 0x50B,
+ 0x50C,
+ 0x50D,
+ 0x50E,
+ 0x50F,
+ 0x510,
+ 0x511,
+ 0x512,
+ 0x513,
+ 0x514,
+ 0x515,
+ 0x516,
+ 0x517,
+ 0x518,
+ 0x519,
+ 0x51A,
+ 0x51B,
+ 0x51C,
+ 0x51D,
+ 0x51E,
+ 0x51F,
+ 0x520,
+ 0x521,
+ 0x522,
+ 0x523,
+ 0x524,
+ 0x525,
+ 0x526,
+ 0x527,
+ 0x528,
+ 0x529,
+ 0x52A,
+ 0x52B,
+ 0x52C,
+ 0x52D,
+ 0x52E,
+ 0x52F,
+ 0x531,
+ 0x557,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x1E00,
+ 0x1E01,
+ 0x1E02,
+ 0x1E03,
+ 0x1E04,
+ 0x1E05,
+ 0x1E06,
+ 0x1E07,
+ 0x1E08,
+ 0x1E09,
+ 0x1E0A,
+ 0x1E0B,
+ 0x1E0C,
+ 0x1E0D,
+ 0x1E0E,
+ 0x1E0F,
+ 0x1E10,
+ 0x1E11,
+ 0x1E12,
+ 0x1E13,
+ 0x1E14,
+ 0x1E15,
+ 0x1E16,
+ 0x1E17,
+ 0x1E18,
+ 0x1E19,
+ 0x1E1A,
+ 0x1E1B,
+ 0x1E1C,
+ 0x1E1D,
+ 0x1E1E,
+ 0x1E1F,
+ 0x1E20,
+ 0x1E21,
+ 0x1E22,
+ 0x1E23,
+ 0x1E24,
+ 0x1E25,
+ 0x1E26,
+ 0x1E27,
+ 0x1E28,
+ 0x1E29,
+ 0x1E2A,
+ 0x1E2B,
+ 0x1E2C,
+ 0x1E2D,
+ 0x1E2E,
+ 0x1E2F,
+ 0x1E30,
+ 0x1E31,
+ 0x1E32,
+ 0x1E33,
+ 0x1E34,
+ 0x1E35,
+ 0x1E36,
+ 0x1E37,
+ 0x1E38,
+ 0x1E39,
+ 0x1E3A,
+ 0x1E3B,
+ 0x1E3C,
+ 0x1E3D,
+ 0x1E3E,
+ 0x1E3F,
+ 0x1E40,
+ 0x1E41,
+ 0x1E42,
+ 0x1E43,
+ 0x1E44,
+ 0x1E45,
+ 0x1E46,
+ 0x1E47,
+ 0x1E48,
+ 0x1E49,
+ 0x1E4A,
+ 0x1E4B,
+ 0x1E4C,
+ 0x1E4D,
+ 0x1E4E,
+ 0x1E4F,
+ 0x1E50,
+ 0x1E51,
+ 0x1E52,
+ 0x1E53,
+ 0x1E54,
+ 0x1E55,
+ 0x1E56,
+ 0x1E57,
+ 0x1E58,
+ 0x1E59,
+ 0x1E5A,
+ 0x1E5B,
+ 0x1E5C,
+ 0x1E5D,
+ 0x1E5E,
+ 0x1E5F,
+ 0x1E60,
+ 0x1E61,
+ 0x1E62,
+ 0x1E63,
+ 0x1E64,
+ 0x1E65,
+ 0x1E66,
+ 0x1E67,
+ 0x1E68,
+ 0x1E69,
+ 0x1E6A,
+ 0x1E6B,
+ 0x1E6C,
+ 0x1E6D,
+ 0x1E6E,
+ 0x1E6F,
+ 0x1E70,
+ 0x1E71,
+ 0x1E72,
+ 0x1E73,
+ 0x1E74,
+ 0x1E75,
+ 0x1E76,
+ 0x1E77,
+ 0x1E78,
+ 0x1E79,
+ 0x1E7A,
+ 0x1E7B,
+ 0x1E7C,
+ 0x1E7D,
+ 0x1E7E,
+ 0x1E7F,
+ 0x1E80,
+ 0x1E81,
+ 0x1E82,
+ 0x1E83,
+ 0x1E84,
+ 0x1E85,
+ 0x1E86,
+ 0x1E87,
+ 0x1E88,
+ 0x1E89,
+ 0x1E8A,
+ 0x1E8B,
+ 0x1E8C,
+ 0x1E8D,
+ 0x1E8E,
+ 0x1E8F,
+ 0x1E90,
+ 0x1E91,
+ 0x1E92,
+ 0x1E93,
+ 0x1E94,
+ 0x1E95,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1EA1,
+ 0x1EA2,
+ 0x1EA3,
+ 0x1EA4,
+ 0x1EA5,
+ 0x1EA6,
+ 0x1EA7,
+ 0x1EA8,
+ 0x1EA9,
+ 0x1EAA,
+ 0x1EAB,
+ 0x1EAC,
+ 0x1EAD,
+ 0x1EAE,
+ 0x1EAF,
+ 0x1EB0,
+ 0x1EB1,
+ 0x1EB2,
+ 0x1EB3,
+ 0x1EB4,
+ 0x1EB5,
+ 0x1EB6,
+ 0x1EB7,
+ 0x1EB8,
+ 0x1EB9,
+ 0x1EBA,
+ 0x1EBB,
+ 0x1EBC,
+ 0x1EBD,
+ 0x1EBE,
+ 0x1EBF,
+ 0x1EC0,
+ 0x1EC1,
+ 0x1EC2,
+ 0x1EC3,
+ 0x1EC4,
+ 0x1EC5,
+ 0x1EC6,
+ 0x1EC7,
+ 0x1EC8,
+ 0x1EC9,
+ 0x1ECA,
+ 0x1ECB,
+ 0x1ECC,
+ 0x1ECD,
+ 0x1ECE,
+ 0x1ECF,
+ 0x1ED0,
+ 0x1ED1,
+ 0x1ED2,
+ 0x1ED3,
+ 0x1ED4,
+ 0x1ED5,
+ 0x1ED6,
+ 0x1ED7,
+ 0x1ED8,
+ 0x1ED9,
+ 0x1EDA,
+ 0x1EDB,
+ 0x1EDC,
+ 0x1EDD,
+ 0x1EDE,
+ 0x1EDF,
+ 0x1EE0,
+ 0x1EE1,
+ 0x1EE2,
+ 0x1EE3,
+ 0x1EE4,
+ 0x1EE5,
+ 0x1EE6,
+ 0x1EE7,
+ 0x1EE8,
+ 0x1EE9,
+ 0x1EEA,
+ 0x1EEB,
+ 0x1EEC,
+ 0x1EED,
+ 0x1EEE,
+ 0x1EEF,
+ 0x1EF0,
+ 0x1EF1,
+ 0x1EF2,
+ 0x1EF3,
+ 0x1EF4,
+ 0x1EF5,
+ 0x1EF6,
+ 0x1EF7,
+ 0x1EF8,
+ 0x1EF9,
+ 0x1EFA,
+ 0x1EFB,
+ 0x1EFC,
+ 0x1EFD,
+ 0x1EFE,
+ 0x1EFF,
+ 0x1F08,
+ 0x1F10,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F28,
+ 0x1F30,
+ 0x1F38,
+ 0x1F40,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1FB8,
+ 0x1FBC,
+ 0x1FC8,
+ 0x1FCC,
+ 0x1FD8,
+ 0x1FDC,
+ 0x1FE8,
+ 0x1FED,
+ 0x1FF8,
+ 0x1FFC,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210B,
+ 0x210E,
+ 0x2110,
+ 0x2113,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x2130,
+ 0x2134,
+ 0x213E,
+ 0x2140,
+ 0x2145,
+ 0x2146,
+ 0x2160,
+ 0x2170,
+ 0x2183,
+ 0x2184,
+ 0x24B6,
+ 0x24D0,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C60,
+ 0x2C61,
+ 0x2C62,
+ 0x2C65,
+ 0x2C67,
+ 0x2C68,
+ 0x2C69,
+ 0x2C6A,
+ 0x2C6B,
+ 0x2C6C,
+ 0x2C6D,
+ 0x2C71,
+ 0x2C72,
+ 0x2C73,
+ 0x2C75,
+ 0x2C76,
+ 0x2C7E,
+ 0x2C81,
+ 0x2C82,
+ 0x2C83,
+ 0x2C84,
+ 0x2C85,
+ 0x2C86,
+ 0x2C87,
+ 0x2C88,
+ 0x2C89,
+ 0x2C8A,
+ 0x2C8B,
+ 0x2C8C,
+ 0x2C8D,
+ 0x2C8E,
+ 0x2C8F,
+ 0x2C90,
+ 0x2C91,
+ 0x2C92,
+ 0x2C93,
+ 0x2C94,
+ 0x2C95,
+ 0x2C96,
+ 0x2C97,
+ 0x2C98,
+ 0x2C99,
+ 0x2C9A,
+ 0x2C9B,
+ 0x2C9C,
+ 0x2C9D,
+ 0x2C9E,
+ 0x2C9F,
+ 0x2CA0,
+ 0x2CA1,
+ 0x2CA2,
+ 0x2CA3,
+ 0x2CA4,
+ 0x2CA5,
+ 0x2CA6,
+ 0x2CA7,
+ 0x2CA8,
+ 0x2CA9,
+ 0x2CAA,
+ 0x2CAB,
+ 0x2CAC,
+ 0x2CAD,
+ 0x2CAE,
+ 0x2CAF,
+ 0x2CB0,
+ 0x2CB1,
+ 0x2CB2,
+ 0x2CB3,
+ 0x2CB4,
+ 0x2CB5,
+ 0x2CB6,
+ 0x2CB7,
+ 0x2CB8,
+ 0x2CB9,
+ 0x2CBA,
+ 0x2CBB,
+ 0x2CBC,
+ 0x2CBD,
+ 0x2CBE,
+ 0x2CBF,
+ 0x2CC0,
+ 0x2CC1,
+ 0x2CC2,
+ 0x2CC3,
+ 0x2CC4,
+ 0x2CC5,
+ 0x2CC6,
+ 0x2CC7,
+ 0x2CC8,
+ 0x2CC9,
+ 0x2CCA,
+ 0x2CCB,
+ 0x2CCC,
+ 0x2CCD,
+ 0x2CCE,
+ 0x2CCF,
+ 0x2CD0,
+ 0x2CD1,
+ 0x2CD2,
+ 0x2CD3,
+ 0x2CD4,
+ 0x2CD5,
+ 0x2CD6,
+ 0x2CD7,
+ 0x2CD8,
+ 0x2CD9,
+ 0x2CDA,
+ 0x2CDB,
+ 0x2CDC,
+ 0x2CDD,
+ 0x2CDE,
+ 0x2CDF,
+ 0x2CE0,
+ 0x2CE1,
+ 0x2CE2,
+ 0x2CE3,
+ 0x2CEB,
+ 0x2CEC,
+ 0x2CED,
+ 0x2CEE,
+ 0x2CF2,
+ 0x2CF3,
+ 0xA640,
+ 0xA641,
+ 0xA642,
+ 0xA643,
+ 0xA644,
+ 0xA645,
+ 0xA646,
+ 0xA647,
+ 0xA648,
+ 0xA649,
+ 0xA64A,
+ 0xA64B,
+ 0xA64C,
+ 0xA64D,
+ 0xA64E,
+ 0xA64F,
+ 0xA650,
+ 0xA651,
+ 0xA652,
+ 0xA653,
+ 0xA654,
+ 0xA655,
+ 0xA656,
+ 0xA657,
+ 0xA658,
+ 0xA659,
+ 0xA65A,
+ 0xA65B,
+ 0xA65C,
+ 0xA65D,
+ 0xA65E,
+ 0xA65F,
+ 0xA660,
+ 0xA661,
+ 0xA662,
+ 0xA663,
+ 0xA664,
+ 0xA665,
+ 0xA666,
+ 0xA667,
+ 0xA668,
+ 0xA669,
+ 0xA66A,
+ 0xA66B,
+ 0xA66C,
+ 0xA66D,
+ 0xA680,
+ 0xA681,
+ 0xA682,
+ 0xA683,
+ 0xA684,
+ 0xA685,
+ 0xA686,
+ 0xA687,
+ 0xA688,
+ 0xA689,
+ 0xA68A,
+ 0xA68B,
+ 0xA68C,
+ 0xA68D,
+ 0xA68E,
+ 0xA68F,
+ 0xA690,
+ 0xA691,
+ 0xA692,
+ 0xA693,
+ 0xA694,
+ 0xA695,
+ 0xA696,
+ 0xA697,
+ 0xA698,
+ 0xA699,
+ 0xA69A,
+ 0xA69B,
+ 0xA722,
+ 0xA723,
+ 0xA724,
+ 0xA725,
+ 0xA726,
+ 0xA727,
+ 0xA728,
+ 0xA729,
+ 0xA72A,
+ 0xA72B,
+ 0xA72C,
+ 0xA72D,
+ 0xA72E,
+ 0xA72F,
+ 0xA732,
+ 0xA733,
+ 0xA734,
+ 0xA735,
+ 0xA736,
+ 0xA737,
+ 0xA738,
+ 0xA739,
+ 0xA73A,
+ 0xA73B,
+ 0xA73C,
+ 0xA73D,
+ 0xA73E,
+ 0xA73F,
+ 0xA740,
+ 0xA741,
+ 0xA742,
+ 0xA743,
+ 0xA744,
+ 0xA745,
+ 0xA746,
+ 0xA747,
+ 0xA748,
+ 0xA749,
+ 0xA74A,
+ 0xA74B,
+ 0xA74C,
+ 0xA74D,
+ 0xA74E,
+ 0xA74F,
+ 0xA750,
+ 0xA751,
+ 0xA752,
+ 0xA753,
+ 0xA754,
+ 0xA755,
+ 0xA756,
+ 0xA757,
+ 0xA758,
+ 0xA759,
+ 0xA75A,
+ 0xA75B,
+ 0xA75C,
+ 0xA75D,
+ 0xA75E,
+ 0xA75F,
+ 0xA760,
+ 0xA761,
+ 0xA762,
+ 0xA763,
+ 0xA764,
+ 0xA765,
+ 0xA766,
+ 0xA767,
+ 0xA768,
+ 0xA769,
+ 0xA76A,
+ 0xA76B,
+ 0xA76C,
+ 0xA76D,
+ 0xA76E,
+ 0xA76F,
+ 0xA779,
+ 0xA77A,
+ 0xA77B,
+ 0xA77C,
+ 0xA77D,
+ 0xA77F,
+ 0xA780,
+ 0xA781,
+ 0xA782,
+ 0xA783,
+ 0xA784,
+ 0xA785,
+ 0xA786,
+ 0xA787,
+ 0xA78B,
+ 0xA78C,
+ 0xA78D,
+ 0xA78E,
+ 0xA790,
+ 0xA791,
+ 0xA792,
+ 0xA793,
+ 0xA796,
+ 0xA797,
+ 0xA798,
+ 0xA799,
+ 0xA79A,
+ 0xA79B,
+ 0xA79C,
+ 0xA79D,
+ 0xA79E,
+ 0xA79F,
+ 0xA7A0,
+ 0xA7A1,
+ 0xA7A2,
+ 0xA7A3,
+ 0xA7A4,
+ 0xA7A5,
+ 0xA7A6,
+ 0xA7A7,
+ 0xA7A8,
+ 0xA7A9,
+ 0xA7AA,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xFF21,
+ 0xFF3B,
+ 0x10400,
+ 0x10428,
+ 0x118A0,
+ 0x118C0,
+ 0x1D400,
+ 0x1D41A,
+ 0x1D434,
+ 0x1D44E,
+ 0x1D468,
+ 0x1D482,
+ 0x1D49C,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4B6,
+ 0x1D4D0,
+ 0x1D4EA,
+ 0x1D504,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D538,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D56C,
+ 0x1D586,
+ 0x1D5A0,
+ 0x1D5BA,
+ 0x1D5D4,
+ 0x1D5EE,
+ 0x1D608,
+ 0x1D622,
+ 0x1D63C,
+ 0x1D656,
+ 0x1D670,
+ 0x1D68A,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6E2,
+ 0x1D6FB,
+ 0x1D71C,
+ 0x1D735,
+ 0x1D756,
+ 0x1D76F,
+ 0x1D790,
+ 0x1D7A9,
+ 0x1D7CA,
+ 0x1D7CB,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A
+};
+
+static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
+ 1281, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x6D,
+ 0x6E,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE0,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xFA,
+ 0xFB,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x483,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6DF,
+ 0x6E9,
+ 0x6EA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x840,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x1000,
+ 0x104A,
+ 0x1050,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1735,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x180B,
+ 0x180E,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1946,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C38,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C7E,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x200C,
+ 0x200E,
+ 0x203F,
+ 0x2041,
+ 0x2054,
+ 0x2055,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA62C,
+ 0xA640,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F2,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C5,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA92E,
+ 0xA930,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9C1,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE00,
+ 0xFE10,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE33,
+ 0xFE35,
+ 0xFE4D,
+ 0xFE50,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11047,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x110BB,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C5,
+ 0x111D0,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11238,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x11600,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0100,
+ 0xE01F0
+};
-static const UV XPosixXDigit_invlist[] = {
+static const UV XPosixXDigit_invlist[] = { /* for EBCDIC 037 */
13, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 48,
- 58,
- 65,
- 71,
- 97,
- 103,
- 65296,
- 65306,
- 65313,
- 65319,
- 65345,
- 65351
+ 0x0,
+ 0x81,
+ 0x87,
+ 0xC1,
+ 0xC7,
+ 0xF0,
+ 0xFA,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF27,
+ 0xFF41,
+ 0xFF47
};
-#endif
+#endif /* defined(PERL_IN_PERL_C) */
+
+#endif /* EBCDIC 037 */
+
+#if 'A' == 193 /* EBCDIC POSIX-BC */ \
+ && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
+ && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 74
-#ifndef PERL_IN_XSUB_RE
+#if defined(PERL_IN_PERL_C)
-static const UV _Perl_Any_Folds_invlist[] = {
- 229, /* Number of elements */
+static const UV ASCII_invlist[] = { /* for EBCDIC POSIX-BC */
+ 58, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x4,
+ 0x5,
+ 0x6,
+ 0x7,
+ 0x8,
+ 0xB,
+ 0x14,
+ 0x15,
+ 0x17,
+ 0x18,
+ 0x1A,
+ 0x1C,
+ 0x20,
+ 0x26,
+ 0x28,
+ 0x2D,
+ 0x30,
+ 0x32,
+ 0x33,
+ 0x37,
+ 0x38,
+ 0x3C,
+ 0x3E,
+ 0x3F,
+ 0x41,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x5F,
+ 0x60,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x7A,
+ 0x80,
+ 0x81,
+ 0x8A,
+ 0x91,
+ 0x9A,
+ 0xA2,
+ 0xAA,
+ 0xBB,
+ 0xBE,
+ 0xC1,
+ 0xCA,
+ 0xD1,
+ 0xDA,
+ 0xE2,
+ 0xEA,
+ 0xF0,
+ 0xFA,
+ 0xFB,
+ 0xFC,
+ 0xFD,
+ 0xFE,
+ 0xFF,
+ 0x100
+};
+
+static const UV Cased_invlist[] = { /* for EBCDIC POSIX-BC */
+ 279, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 65,
- 91,
- 97,
- 123,
- 181,
- 182,
- 192,
- 215,
- 216,
- 247,
- 248,
- 305,
- 306,
- 312,
- 313,
- 397,
- 398,
- 411,
- 412,
- 426,
- 428,
- 442,
- 444,
- 446,
- 447,
- 448,
- 452,
- 545,
- 546,
- 564,
- 570,
- 597,
- 598,
- 600,
- 601,
- 602,
- 603,
- 604,
- 608,
- 609,
- 611,
- 612,
- 613,
- 615,
- 616,
- 618,
- 619,
- 620,
- 623,
- 624,
- 625,
- 627,
- 629,
- 630,
- 637,
- 638,
- 640,
- 641,
- 643,
- 644,
- 648,
- 653,
- 658,
- 659,
- 700,
- 701,
- 702,
- 703,
- 768,
- 770,
- 775,
- 777,
- 778,
- 779,
- 780,
- 781,
- 787,
- 788,
- 817,
- 818,
- 834,
- 835,
- 837,
- 838,
- 880,
- 884,
- 886,
- 888,
- 891,
- 894,
- 902,
- 903,
- 904,
- 907,
- 908,
- 909,
- 910,
- 930,
- 931,
- 978,
- 981,
- 1011,
- 1012,
- 1014,
- 1015,
- 1020,
- 1021,
- 1154,
- 1162,
- 1320,
- 1329,
- 1367,
- 1377,
- 1416,
- 4256,
- 4294,
- 4295,
- 4296,
- 4301,
- 4302,
- 7545,
- 7546,
- 7549,
- 7550,
- 7680,
- 7836,
- 7838,
- 7839,
- 7840,
- 7958,
- 7960,
- 7966,
- 7968,
- 8006,
- 8008,
- 8014,
- 8016,
- 8024,
- 8025,
- 8026,
- 8027,
- 8028,
- 8029,
- 8030,
- 8031,
- 8062,
- 8064,
- 8117,
- 8118,
- 8125,
- 8126,
- 8127,
- 8130,
- 8133,
- 8134,
- 8141,
- 8144,
- 8148,
- 8150,
- 8156,
- 8160,
- 8173,
- 8178,
- 8181,
- 8182,
- 8189,
- 8486,
- 8487,
- 8490,
- 8492,
- 8498,
- 8499,
- 8526,
- 8527,
- 8544,
- 8576,
- 8579,
- 8581,
- 9398,
- 9450,
- 11264,
- 11311,
- 11312,
- 11359,
- 11360,
- 11377,
- 11378,
- 11380,
- 11381,
- 11383,
- 11390,
- 11492,
- 11499,
- 11503,
- 11506,
- 11508,
- 11520,
- 11558,
- 11559,
- 11560,
- 11565,
- 11566,
- 42560,
- 42606,
- 42624,
- 42648,
- 42786,
- 42800,
- 42802,
- 42864,
- 42873,
- 42888,
- 42891,
- 42894,
- 42896,
- 42900,
- 42912,
- 42923,
- 64256,
- 64263,
- 64275,
- 64280,
- 65313,
- 65339,
- 65345,
- 65371,
- 66560,
- 66640
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC0,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFC,
+ 0xFD,
+ 0xFE,
+ 0xFF,
+ 0x100,
+ 0x1BB,
+ 0x1BC,
+ 0x1C0,
+ 0x1C4,
+ 0x294,
+ 0x295,
+ 0x2B9,
+ 0x2C0,
+ 0x2C2,
+ 0x2E0,
+ 0x2E5,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x374,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x561,
+ 0x588,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x1D00,
+ 0x1DC0,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x2135,
+ 0x2139,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2180,
+ 0x2183,
+ 0x2185,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0xA640,
+ 0xA66E,
+ 0xA680,
+ 0xA69E,
+ 0xA722,
+ 0xA788,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F8,
+ 0xA7FB,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0x10400,
+ 0x10450,
+ 0x118A0,
+ 0x118E0,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A
};
-#endif
+static const UV Grapheme_Cluster_Break_invlist[] = { /* for EBCDIC POSIX-BC */
+ 1484, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0xD,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x40,
+ 0x5F,
+ 0x60,
+ 0xCA,
+ 0xCB,
+ 0x300,
+ 0x370,
+ 0x483,
+ 0x48A,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x600,
+ 0x606,
+ 0x610,
+ 0x61B,
+ 0x61C,
+ 0x61D,
+ 0x64B,
+ 0x660,
+ 0x670,
+ 0x671,
+ 0x6D6,
+ 0x6DD,
+ 0x6DE,
+ 0x6DF,
+ 0x6E5,
+ 0x6E7,
+ 0x6E9,
+ 0x6EA,
+ 0x6EE,
+ 0x70F,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74B,
+ 0x7A6,
+ 0x7B1,
+ 0x7EB,
+ 0x7F4,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x82E,
+ 0x859,
+ 0x85C,
+ 0x8E4,
+ 0x903,
+ 0x904,
+ 0x93A,
+ 0x93B,
+ 0x93C,
+ 0x93D,
+ 0x93E,
+ 0x941,
+ 0x949,
+ 0x94D,
+ 0x94E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x964,
+ 0x981,
+ 0x982,
+ 0x984,
+ 0x9BC,
+ 0x9BD,
+ 0x9BE,
+ 0x9BF,
+ 0x9C1,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CD,
+ 0x9CE,
+ 0x9D7,
+ 0x9D8,
+ 0x9E2,
+ 0x9E4,
+ 0xA01,
+ 0xA03,
+ 0xA04,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA41,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA70,
+ 0xA72,
+ 0xA75,
+ 0xA76,
+ 0xA81,
+ 0xA83,
+ 0xA84,
+ 0xABC,
+ 0xABD,
+ 0xABE,
+ 0xAC1,
+ 0xAC6,
+ 0xAC7,
+ 0xAC9,
+ 0xACA,
+ 0xACB,
+ 0xACD,
+ 0xACE,
+ 0xAE2,
+ 0xAE4,
+ 0xB01,
+ 0xB02,
+ 0xB04,
+ 0xB3C,
+ 0xB3D,
+ 0xB3E,
+ 0xB40,
+ 0xB41,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4D,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB62,
+ 0xB64,
+ 0xB82,
+ 0xB83,
+ 0xBBE,
+ 0xBBF,
+ 0xBC0,
+ 0xBC1,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCD,
+ 0xBCE,
+ 0xBD7,
+ 0xBD8,
+ 0xC00,
+ 0xC01,
+ 0xC04,
+ 0xC3E,
+ 0xC41,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC62,
+ 0xC64,
+ 0xC81,
+ 0xC82,
+ 0xC84,
+ 0xCBC,
+ 0xCBD,
+ 0xCBE,
+ 0xCBF,
+ 0xCC0,
+ 0xCC2,
+ 0xCC3,
+ 0xCC5,
+ 0xCC6,
+ 0xCC7,
+ 0xCC9,
+ 0xCCA,
+ 0xCCC,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCE2,
+ 0xCE4,
+ 0xD01,
+ 0xD02,
+ 0xD04,
+ 0xD3E,
+ 0xD3F,
+ 0xD41,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4D,
+ 0xD4E,
+ 0xD57,
+ 0xD58,
+ 0xD62,
+ 0xD64,
+ 0xD82,
+ 0xD84,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD0,
+ 0xDD2,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDDF,
+ 0xDE0,
+ 0xDF2,
+ 0xDF4,
+ 0xE31,
+ 0xE32,
+ 0xE33,
+ 0xE34,
+ 0xE3B,
+ 0xE47,
+ 0xE4F,
+ 0xEB1,
+ 0xEB2,
+ 0xEB3,
+ 0xEB4,
+ 0xEBA,
+ 0xEBB,
+ 0xEBD,
+ 0xEC8,
+ 0xECE,
+ 0xF18,
+ 0xF1A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF40,
+ 0xF71,
+ 0xF7F,
+ 0xF80,
+ 0xF85,
+ 0xF86,
+ 0xF88,
+ 0xF8D,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x102D,
+ 0x1031,
+ 0x1032,
+ 0x1038,
+ 0x1039,
+ 0x103B,
+ 0x103D,
+ 0x103F,
+ 0x1056,
+ 0x1058,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x1083,
+ 0x1084,
+ 0x1085,
+ 0x1087,
+ 0x108D,
+ 0x108E,
+ 0x109D,
+ 0x109E,
+ 0x1100,
+ 0x1160,
+ 0x11A8,
+ 0x1200,
+ 0x135D,
+ 0x1360,
+ 0x1712,
+ 0x1715,
+ 0x1732,
+ 0x1735,
+ 0x1752,
+ 0x1754,
+ 0x1772,
+ 0x1774,
+ 0x17B4,
+ 0x17B6,
+ 0x17B7,
+ 0x17BE,
+ 0x17C6,
+ 0x17C7,
+ 0x17C9,
+ 0x17D4,
+ 0x17DD,
+ 0x17DE,
+ 0x180B,
+ 0x180E,
+ 0x180F,
+ 0x18A9,
+ 0x18AA,
+ 0x1920,
+ 0x1923,
+ 0x1927,
+ 0x1929,
+ 0x192C,
+ 0x1930,
+ 0x1932,
+ 0x1933,
+ 0x1939,
+ 0x193C,
+ 0x19B5,
+ 0x19B8,
+ 0x19BA,
+ 0x19BB,
+ 0x1A17,
+ 0x1A19,
+ 0x1A1B,
+ 0x1A1C,
+ 0x1A55,
+ 0x1A56,
+ 0x1A57,
+ 0x1A58,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A61,
+ 0x1A62,
+ 0x1A63,
+ 0x1A65,
+ 0x1A6D,
+ 0x1A73,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A80,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B04,
+ 0x1B05,
+ 0x1B34,
+ 0x1B35,
+ 0x1B36,
+ 0x1B3B,
+ 0x1B3C,
+ 0x1B3D,
+ 0x1B42,
+ 0x1B43,
+ 0x1B45,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1B82,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BA2,
+ 0x1BA6,
+ 0x1BA8,
+ 0x1BAA,
+ 0x1BAB,
+ 0x1BAE,
+ 0x1BE6,
+ 0x1BE7,
+ 0x1BE8,
+ 0x1BEA,
+ 0x1BED,
+ 0x1BEE,
+ 0x1BEF,
+ 0x1BF2,
+ 0x1BF4,
+ 0x1C24,
+ 0x1C2C,
+ 0x1C34,
+ 0x1C36,
+ 0x1C38,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CE1,
+ 0x1CE2,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF4,
+ 0x1CF5,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1DC0,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1E00,
+ 0x200B,
+ 0x200C,
+ 0x200E,
+ 0x2010,
+ 0x2028,
+ 0x202F,
+ 0x2060,
+ 0x2070,
+ 0x20D0,
+ 0x20F1,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2D7F,
+ 0x2D80,
+ 0x2DE0,
+ 0x2E00,
+ 0x302A,
+ 0x3030,
+ 0x3099,
+ 0x309B,
+ 0xA66F,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA69F,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA6F2,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA825,
+ 0xA827,
+ 0xA828,
+ 0xA880,
+ 0xA882,
+ 0xA8B4,
+ 0xA8C4,
+ 0xA8C5,
+ 0xA8E0,
+ 0xA8F2,
+ 0xA926,
+ 0xA92E,
+ 0xA947,
+ 0xA952,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA983,
+ 0xA984,
+ 0xA9B3,
+ 0xA9B4,
+ 0xA9B6,
+ 0xA9BA,
+ 0xA9BC,
+ 0xA9BD,
+ 0xA9C1,
+ 0xA9E5,
+ 0xA9E6,
+ 0xAA29,
+ 0xAA2F,
+ 0xAA31,
+ 0xAA33,
+ 0xAA35,
+ 0xAA37,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA4D,
+ 0xAA4E,
+ 0xAA7C,
+ 0xAA7D,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAEB,
+ 0xAAEC,
+ 0xAAEE,
+ 0xAAF0,
+ 0xAAF5,
+ 0xAAF6,
+ 0xAAF7,
+ 0xABE3,
+ 0xABE5,
+ 0xABE6,
+ 0xABE8,
+ 0xABE9,
+ 0xABEB,
+ 0xABEC,
+ 0xABED,
+ 0xABEE,
+ 0xAC00,
+ 0xAC01,
+ 0xAC1C,
+ 0xAC1D,
+ 0xAC38,
+ 0xAC39,
+ 0xAC54,
+ 0xAC55,
+ 0xAC70,
+ 0xAC71,
+ 0xAC8C,
+ 0xAC8D,
+ 0xACA8,
+ 0xACA9,
+ 0xACC4,
+ 0xACC5,
+ 0xACE0,
+ 0xACE1,
+ 0xACFC,
+ 0xACFD,
+ 0xAD18,
+ 0xAD19,
+ 0xAD34,
+ 0xAD35,
+ 0xAD50,
+ 0xAD51,
+ 0xAD6C,
+ 0xAD6D,
+ 0xAD88,
+ 0xAD89,
+ 0xADA4,
+ 0xADA5,
+ 0xADC0,
+ 0xADC1,
+ 0xADDC,
+ 0xADDD,
+ 0xADF8,
+ 0xADF9,
+ 0xAE14,
+ 0xAE15,
+ 0xAE30,
+ 0xAE31,
+ 0xAE4C,
+ 0xAE4D,
+ 0xAE68,
+ 0xAE69,
+ 0xAE84,
+ 0xAE85,
+ 0xAEA0,
+ 0xAEA1,
+ 0xAEBC,
+ 0xAEBD,
+ 0xAED8,
+ 0xAED9,
+ 0xAEF4,
+ 0xAEF5,
+ 0xAF10,
+ 0xAF11,
+ 0xAF2C,
+ 0xAF2D,
+ 0xAF48,
+ 0xAF49,
+ 0xAF64,
+ 0xAF65,
+ 0xAF80,
+ 0xAF81,
+ 0xAF9C,
+ 0xAF9D,
+ 0xAFB8,
+ 0xAFB9,
+ 0xAFD4,
+ 0xAFD5,
+ 0xAFF0,
+ 0xAFF1,
+ 0xB00C,
+ 0xB00D,
+ 0xB028,
+ 0xB029,
+ 0xB044,
+ 0xB045,
+ 0xB060,
+ 0xB061,
+ 0xB07C,
+ 0xB07D,
+ 0xB098,
+ 0xB099,
+ 0xB0B4,
+ 0xB0B5,
+ 0xB0D0,
+ 0xB0D1,
+ 0xB0EC,
+ 0xB0ED,
+ 0xB108,
+ 0xB109,
+ 0xB124,
+ 0xB125,
+ 0xB140,
+ 0xB141,
+ 0xB15C,
+ 0xB15D,
+ 0xB178,
+ 0xB179,
+ 0xB194,
+ 0xB195,
+ 0xB1B0,
+ 0xB1B1,
+ 0xB1CC,
+ 0xB1CD,
+ 0xB1E8,
+ 0xB1E9,
+ 0xB204,
+ 0xB205,
+ 0xB220,
+ 0xB221,
+ 0xB23C,
+ 0xB23D,
+ 0xB258,
+ 0xB259,
+ 0xB274,
+ 0xB275,
+ 0xB290,
+ 0xB291,
+ 0xB2AC,
+ 0xB2AD,
+ 0xB2C8,
+ 0xB2C9,
+ 0xB2E4,
+ 0xB2E5,
+ 0xB300,
+ 0xB301,
+ 0xB31C,
+ 0xB31D,
+ 0xB338,
+ 0xB339,
+ 0xB354,
+ 0xB355,
+ 0xB370,
+ 0xB371,
+ 0xB38C,
+ 0xB38D,
+ 0xB3A8,
+ 0xB3A9,
+ 0xB3C4,
+ 0xB3C5,
+ 0xB3E0,
+ 0xB3E1,
+ 0xB3FC,
+ 0xB3FD,
+ 0xB418,
+ 0xB419,
+ 0xB434,
+ 0xB435,
+ 0xB450,
+ 0xB451,
+ 0xB46C,
+ 0xB46D,
+ 0xB488,
+ 0xB489,
+ 0xB4A4,
+ 0xB4A5,
+ 0xB4C0,
+ 0xB4C1,
+ 0xB4DC,
+ 0xB4DD,
+ 0xB4F8,
+ 0xB4F9,
+ 0xB514,
+ 0xB515,
+ 0xB530,
+ 0xB531,
+ 0xB54C,
+ 0xB54D,
+ 0xB568,
+ 0xB569,
+ 0xB584,
+ 0xB585,
+ 0xB5A0,
+ 0xB5A1,
+ 0xB5BC,
+ 0xB5BD,
+ 0xB5D8,
+ 0xB5D9,
+ 0xB5F4,
+ 0xB5F5,
+ 0xB610,
+ 0xB611,
+ 0xB62C,
+ 0xB62D,
+ 0xB648,
+ 0xB649,
+ 0xB664,
+ 0xB665,
+ 0xB680,
+ 0xB681,
+ 0xB69C,
+ 0xB69D,
+ 0xB6B8,
+ 0xB6B9,
+ 0xB6D4,
+ 0xB6D5,
+ 0xB6F0,
+ 0xB6F1,
+ 0xB70C,
+ 0xB70D,
+ 0xB728,
+ 0xB729,
+ 0xB744,
+ 0xB745,
+ 0xB760,
+ 0xB761,
+ 0xB77C,
+ 0xB77D,
+ 0xB798,
+ 0xB799,
+ 0xB7B4,
+ 0xB7B5,
+ 0xB7D0,
+ 0xB7D1,
+ 0xB7EC,
+ 0xB7ED,
+ 0xB808,
+ 0xB809,
+ 0xB824,
+ 0xB825,
+ 0xB840,
+ 0xB841,
+ 0xB85C,
+ 0xB85D,
+ 0xB878,
+ 0xB879,
+ 0xB894,
+ 0xB895,
+ 0xB8B0,
+ 0xB8B1,
+ 0xB8CC,
+ 0xB8CD,
+ 0xB8E8,
+ 0xB8E9,
+ 0xB904,
+ 0xB905,
+ 0xB920,
+ 0xB921,
+ 0xB93C,
+ 0xB93D,
+ 0xB958,
+ 0xB959,
+ 0xB974,
+ 0xB975,
+ 0xB990,
+ 0xB991,
+ 0xB9AC,
+ 0xB9AD,
+ 0xB9C8,
+ 0xB9C9,
+ 0xB9E4,
+ 0xB9E5,
+ 0xBA00,
+ 0xBA01,
+ 0xBA1C,
+ 0xBA1D,
+ 0xBA38,
+ 0xBA39,
+ 0xBA54,
+ 0xBA55,
+ 0xBA70,
+ 0xBA71,
+ 0xBA8C,
+ 0xBA8D,
+ 0xBAA8,
+ 0xBAA9,
+ 0xBAC4,
+ 0xBAC5,
+ 0xBAE0,
+ 0xBAE1,
+ 0xBAFC,
+ 0xBAFD,
+ 0xBB18,
+ 0xBB19,
+ 0xBB34,
+ 0xBB35,
+ 0xBB50,
+ 0xBB51,
+ 0xBB6C,
+ 0xBB6D,
+ 0xBB88,
+ 0xBB89,
+ 0xBBA4,
+ 0xBBA5,
+ 0xBBC0,
+ 0xBBC1,
+ 0xBBDC,
+ 0xBBDD,
+ 0xBBF8,
+ 0xBBF9,
+ 0xBC14,
+ 0xBC15,
+ 0xBC30,
+ 0xBC31,
+ 0xBC4C,
+ 0xBC4D,
+ 0xBC68,
+ 0xBC69,
+ 0xBC84,
+ 0xBC85,
+ 0xBCA0,
+ 0xBCA1,
+ 0xBCBC,
+ 0xBCBD,
+ 0xBCD8,
+ 0xBCD9,
+ 0xBCF4,
+ 0xBCF5,
+ 0xBD10,
+ 0xBD11,
+ 0xBD2C,
+ 0xBD2D,
+ 0xBD48,
+ 0xBD49,
+ 0xBD64,
+ 0xBD65,
+ 0xBD80,
+ 0xBD81,
+ 0xBD9C,
+ 0xBD9D,
+ 0xBDB8,
+ 0xBDB9,
+ 0xBDD4,
+ 0xBDD5,
+ 0xBDF0,
+ 0xBDF1,
+ 0xBE0C,
+ 0xBE0D,
+ 0xBE28,
+ 0xBE29,
+ 0xBE44,
+ 0xBE45,
+ 0xBE60,
+ 0xBE61,
+ 0xBE7C,
+ 0xBE7D,
+ 0xBE98,
+ 0xBE99,
+ 0xBEB4,
+ 0xBEB5,
+ 0xBED0,
+ 0xBED1,
+ 0xBEEC,
+ 0xBEED,
+ 0xBF08,
+ 0xBF09,
+ 0xBF24,
+ 0xBF25,
+ 0xBF40,
+ 0xBF41,
+ 0xBF5C,
+ 0xBF5D,
+ 0xBF78,
+ 0xBF79,
+ 0xBF94,
+ 0xBF95,
+ 0xBFB0,
+ 0xBFB1,
+ 0xBFCC,
+ 0xBFCD,
+ 0xBFE8,
+ 0xBFE9,
+ 0xC004,
+ 0xC005,
+ 0xC020,
+ 0xC021,
+ 0xC03C,
+ 0xC03D,
+ 0xC058,
+ 0xC059,
+ 0xC074,
+ 0xC075,
+ 0xC090,
+ 0xC091,
+ 0xC0AC,
+ 0xC0AD,
+ 0xC0C8,
+ 0xC0C9,
+ 0xC0E4,
+ 0xC0E5,
+ 0xC100,
+ 0xC101,
+ 0xC11C,
+ 0xC11D,
+ 0xC138,
+ 0xC139,
+ 0xC154,
+ 0xC155,
+ 0xC170,
+ 0xC171,
+ 0xC18C,
+ 0xC18D,
+ 0xC1A8,
+ 0xC1A9,
+ 0xC1C4,
+ 0xC1C5,
+ 0xC1E0,
+ 0xC1E1,
+ 0xC1FC,
+ 0xC1FD,
+ 0xC218,
+ 0xC219,
+ 0xC234,
+ 0xC235,
+ 0xC250,
+ 0xC251,
+ 0xC26C,
+ 0xC26D,
+ 0xC288,
+ 0xC289,
+ 0xC2A4,
+ 0xC2A5,
+ 0xC2C0,
+ 0xC2C1,
+ 0xC2DC,
+ 0xC2DD,
+ 0xC2F8,
+ 0xC2F9,
+ 0xC314,
+ 0xC315,
+ 0xC330,
+ 0xC331,
+ 0xC34C,
+ 0xC34D,
+ 0xC368,
+ 0xC369,
+ 0xC384,
+ 0xC385,
+ 0xC3A0,
+ 0xC3A1,
+ 0xC3BC,
+ 0xC3BD,
+ 0xC3D8,
+ 0xC3D9,
+ 0xC3F4,
+ 0xC3F5,
+ 0xC410,
+ 0xC411,
+ 0xC42C,
+ 0xC42D,
+ 0xC448,
+ 0xC449,
+ 0xC464,
+ 0xC465,
+ 0xC480,
+ 0xC481,
+ 0xC49C,
+ 0xC49D,
+ 0xC4B8,
+ 0xC4B9,
+ 0xC4D4,
+ 0xC4D5,
+ 0xC4F0,
+ 0xC4F1,
+ 0xC50C,
+ 0xC50D,
+ 0xC528,
+ 0xC529,
+ 0xC544,
+ 0xC545,
+ 0xC560,
+ 0xC561,
+ 0xC57C,
+ 0xC57D,
+ 0xC598,
+ 0xC599,
+ 0xC5B4,
+ 0xC5B5,
+ 0xC5D0,
+ 0xC5D1,
+ 0xC5EC,
+ 0xC5ED,
+ 0xC608,
+ 0xC609,
+ 0xC624,
+ 0xC625,
+ 0xC640,
+ 0xC641,
+ 0xC65C,
+ 0xC65D,
+ 0xC678,
+ 0xC679,
+ 0xC694,
+ 0xC695,
+ 0xC6B0,
+ 0xC6B1,
+ 0xC6CC,
+ 0xC6CD,
+ 0xC6E8,
+ 0xC6E9,
+ 0xC704,
+ 0xC705,
+ 0xC720,
+ 0xC721,
+ 0xC73C,
+ 0xC73D,
+ 0xC758,
+ 0xC759,
+ 0xC774,
+ 0xC775,
+ 0xC790,
+ 0xC791,
+ 0xC7AC,
+ 0xC7AD,
+ 0xC7C8,
+ 0xC7C9,
+ 0xC7E4,
+ 0xC7E5,
+ 0xC800,
+ 0xC801,
+ 0xC81C,
+ 0xC81D,
+ 0xC838,
+ 0xC839,
+ 0xC854,
+ 0xC855,
+ 0xC870,
+ 0xC871,
+ 0xC88C,
+ 0xC88D,
+ 0xC8A8,
+ 0xC8A9,
+ 0xC8C4,
+ 0xC8C5,
+ 0xC8E0,
+ 0xC8E1,
+ 0xC8FC,
+ 0xC8FD,
+ 0xC918,
+ 0xC919,
+ 0xC934,
+ 0xC935,
+ 0xC950,
+ 0xC951,
+ 0xC96C,
+ 0xC96D,
+ 0xC988,
+ 0xC989,
+ 0xC9A4,
+ 0xC9A5,
+ 0xC9C0,
+ 0xC9C1,
+ 0xC9DC,
+ 0xC9DD,
+ 0xC9F8,
+ 0xC9F9,
+ 0xCA14,
+ 0xCA15,
+ 0xCA30,
+ 0xCA31,
+ 0xCA4C,
+ 0xCA4D,
+ 0xCA68,
+ 0xCA69,
+ 0xCA84,
+ 0xCA85,
+ 0xCAA0,
+ 0xCAA1,
+ 0xCABC,
+ 0xCABD,
+ 0xCAD8,
+ 0xCAD9,
+ 0xCAF4,
+ 0xCAF5,
+ 0xCB10,
+ 0xCB11,
+ 0xCB2C,
+ 0xCB2D,
+ 0xCB48,
+ 0xCB49,
+ 0xCB64,
+ 0xCB65,
+ 0xCB80,
+ 0xCB81,
+ 0xCB9C,
+ 0xCB9D,
+ 0xCBB8,
+ 0xCBB9,
+ 0xCBD4,
+ 0xCBD5,
+ 0xCBF0,
+ 0xCBF1,
+ 0xCC0C,
+ 0xCC0D,
+ 0xCC28,
+ 0xCC29,
+ 0xCC44,
+ 0xCC45,
+ 0xCC60,
+ 0xCC61,
+ 0xCC7C,
+ 0xCC7D,
+ 0xCC98,
+ 0xCC99,
+ 0xCCB4,
+ 0xCCB5,
+ 0xCCD0,
+ 0xCCD1,
+ 0xCCEC,
+ 0xCCED,
+ 0xCD08,
+ 0xCD09,
+ 0xCD24,
+ 0xCD25,
+ 0xCD40,
+ 0xCD41,
+ 0xCD5C,
+ 0xCD5D,
+ 0xCD78,
+ 0xCD79,
+ 0xCD94,
+ 0xCD95,
+ 0xCDB0,
+ 0xCDB1,
+ 0xCDCC,
+ 0xCDCD,
+ 0xCDE8,
+ 0xCDE9,
+ 0xCE04,
+ 0xCE05,
+ 0xCE20,
+ 0xCE21,
+ 0xCE3C,
+ 0xCE3D,
+ 0xCE58,
+ 0xCE59,
+ 0xCE74,
+ 0xCE75,
+ 0xCE90,
+ 0xCE91,
+ 0xCEAC,
+ 0xCEAD,
+ 0xCEC8,
+ 0xCEC9,
+ 0xCEE4,
+ 0xCEE5,
+ 0xCF00,
+ 0xCF01,
+ 0xCF1C,
+ 0xCF1D,
+ 0xCF38,
+ 0xCF39,
+ 0xCF54,
+ 0xCF55,
+ 0xCF70,
+ 0xCF71,
+ 0xCF8C,
+ 0xCF8D,
+ 0xCFA8,
+ 0xCFA9,
+ 0xCFC4,
+ 0xCFC5,
+ 0xCFE0,
+ 0xCFE1,
+ 0xCFFC,
+ 0xCFFD,
+ 0xD018,
+ 0xD019,
+ 0xD034,
+ 0xD035,
+ 0xD050,
+ 0xD051,
+ 0xD06C,
+ 0xD06D,
+ 0xD088,
+ 0xD089,
+ 0xD0A4,
+ 0xD0A5,
+ 0xD0C0,
+ 0xD0C1,
+ 0xD0DC,
+ 0xD0DD,
+ 0xD0F8,
+ 0xD0F9,
+ 0xD114,
+ 0xD115,
+ 0xD130,
+ 0xD131,
+ 0xD14C,
+ 0xD14D,
+ 0xD168,
+ 0xD169,
+ 0xD184,
+ 0xD185,
+ 0xD1A0,
+ 0xD1A1,
+ 0xD1BC,
+ 0xD1BD,
+ 0xD1D8,
+ 0xD1D9,
+ 0xD1F4,
+ 0xD1F5,
+ 0xD210,
+ 0xD211,
+ 0xD22C,
+ 0xD22D,
+ 0xD248,
+ 0xD249,
+ 0xD264,
+ 0xD265,
+ 0xD280,
+ 0xD281,
+ 0xD29C,
+ 0xD29D,
+ 0xD2B8,
+ 0xD2B9,
+ 0xD2D4,
+ 0xD2D5,
+ 0xD2F0,
+ 0xD2F1,
+ 0xD30C,
+ 0xD30D,
+ 0xD328,
+ 0xD329,
+ 0xD344,
+ 0xD345,
+ 0xD360,
+ 0xD361,
+ 0xD37C,
+ 0xD37D,
+ 0xD398,
+ 0xD399,
+ 0xD3B4,
+ 0xD3B5,
+ 0xD3D0,
+ 0xD3D1,
+ 0xD3EC,
+ 0xD3ED,
+ 0xD408,
+ 0xD409,
+ 0xD424,
+ 0xD425,
+ 0xD440,
+ 0xD441,
+ 0xD45C,
+ 0xD45D,
+ 0xD478,
+ 0xD479,
+ 0xD494,
+ 0xD495,
+ 0xD4B0,
+ 0xD4B1,
+ 0xD4CC,
+ 0xD4CD,
+ 0xD4E8,
+ 0xD4E9,
+ 0xD504,
+ 0xD505,
+ 0xD520,
+ 0xD521,
+ 0xD53C,
+ 0xD53D,
+ 0xD558,
+ 0xD559,
+ 0xD574,
+ 0xD575,
+ 0xD590,
+ 0xD591,
+ 0xD5AC,
+ 0xD5AD,
+ 0xD5C8,
+ 0xD5C9,
+ 0xD5E4,
+ 0xD5E5,
+ 0xD600,
+ 0xD601,
+ 0xD61C,
+ 0xD61D,
+ 0xD638,
+ 0xD639,
+ 0xD654,
+ 0xD655,
+ 0xD670,
+ 0xD671,
+ 0xD68C,
+ 0xD68D,
+ 0xD6A8,
+ 0xD6A9,
+ 0xD6C4,
+ 0xD6C5,
+ 0xD6E0,
+ 0xD6E1,
+ 0xD6FC,
+ 0xD6FD,
+ 0xD718,
+ 0xD719,
+ 0xD734,
+ 0xD735,
+ 0xD750,
+ 0xD751,
+ 0xD76C,
+ 0xD76D,
+ 0xD788,
+ 0xD789,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xD800,
+ 0xE000,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFE00,
+ 0xFE10,
+ 0xFE20,
+ 0xFE2E,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFF0,
+ 0xFFFC,
+ 0x101FD,
+ 0x101FE,
+ 0x102E0,
+ 0x102E1,
+ 0x10376,
+ 0x1037B,
+ 0x10A01,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A10,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10AE5,
+ 0x10AE7,
+ 0x11000,
+ 0x11001,
+ 0x11002,
+ 0x11003,
+ 0x11038,
+ 0x11047,
+ 0x1107F,
+ 0x11082,
+ 0x11083,
+ 0x110B0,
+ 0x110B3,
+ 0x110B7,
+ 0x110B9,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x11100,
+ 0x11103,
+ 0x11127,
+ 0x1112C,
+ 0x1112D,
+ 0x11135,
+ 0x11173,
+ 0x11174,
+ 0x11180,
+ 0x11182,
+ 0x11183,
+ 0x111B3,
+ 0x111B6,
+ 0x111BF,
+ 0x111C1,
+ 0x1122C,
+ 0x1122F,
+ 0x11232,
+ 0x11234,
+ 0x11235,
+ 0x11236,
+ 0x11238,
+ 0x112DF,
+ 0x112E0,
+ 0x112E3,
+ 0x112EB,
+ 0x11301,
+ 0x11302,
+ 0x11304,
+ 0x1133C,
+ 0x1133D,
+ 0x1133E,
+ 0x1133F,
+ 0x11340,
+ 0x11341,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x11362,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x114B0,
+ 0x114B1,
+ 0x114B3,
+ 0x114B9,
+ 0x114BA,
+ 0x114BB,
+ 0x114BD,
+ 0x114BE,
+ 0x114BF,
+ 0x114C1,
+ 0x114C2,
+ 0x114C4,
+ 0x115AF,
+ 0x115B0,
+ 0x115B2,
+ 0x115B6,
+ 0x115B8,
+ 0x115BC,
+ 0x115BE,
+ 0x115BF,
+ 0x115C1,
+ 0x11630,
+ 0x11633,
+ 0x1163B,
+ 0x1163D,
+ 0x1163E,
+ 0x1163F,
+ 0x11641,
+ 0x116AB,
+ 0x116AC,
+ 0x116AD,
+ 0x116AE,
+ 0x116B0,
+ 0x116B6,
+ 0x116B7,
+ 0x116B8,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B30,
+ 0x16B37,
+ 0x16F51,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16F93,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1BCA0,
+ 0x1BCA4,
+ 0x1D165,
+ 0x1D166,
+ 0x1D167,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D16E,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1F1E6,
+ 0x1F200,
+ 0xE0000,
+ 0xE0100,
+ 0xE01F0,
+ 0xE1000
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
-static const UV NonL1_Perl_Non_Final_Folds_invlist[] = {
+#if defined(PERL_IN_REGEXEC_C)
+
+#define GCB_ENUM_COUNT 14
+
+typedef enum {
+ GCB_Other = 0,
+ GCB_CR = 1,
+ GCB_Control = 2,
+ GCB_EDGE = 3,
+ GCB_Extend = 4,
+ GCB_L = 5,
+ GCB_LF = 6,
+ GCB_LV = 7,
+ GCB_LVT = 8,
+ GCB_Prepend = 9,
+ GCB_Regional_Indicator = 10,
+ GCB_SpacingMark = 11,
+ GCB_T = 12,
+ GCB_V = 13
+} GCB_enum;
+
+static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC POSIX-BC */
+ GCB_Control,
+ GCB_CR,
+ GCB_Control,
+ GCB_LF,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_L,
+ GCB_V,
+ GCB_T,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_L,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_LV,
+ GCB_LVT,
+ GCB_Other,
+ GCB_V,
+ GCB_Other,
+ GCB_T,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Control,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Regional_Indicator,
+ GCB_Other,
+ GCB_Control,
+ GCB_Extend,
+ GCB_Control,
+ GCB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC POSIX-BC */
45, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 700,
- 701,
- 776,
- 777,
- 787,
- 788,
- 834,
- 835,
- 940,
- 941,
- 942,
- 943,
- 945,
- 946,
- 951,
- 952,
- 953,
- 954,
- 961,
- 962,
- 965,
- 966,
- 969,
- 970,
- 974,
- 975,
- 1381,
- 1382,
- 1396,
- 1397,
- 1406,
- 1407,
- 7936,
- 7944,
- 7968,
- 7976,
- 8032,
- 8040,
- 8048,
- 8049,
- 8052,
- 8053,
- 8060,
- 8061
+ 0x0,
+ 0x2BC,
+ 0x2BD,
+ 0x308,
+ 0x309,
+ 0x313,
+ 0x314,
+ 0x342,
+ 0x343,
+ 0x3AC,
+ 0x3AD,
+ 0x3AE,
+ 0x3AF,
+ 0x3B1,
+ 0x3B2,
+ 0x3B7,
+ 0x3B8,
+ 0x3B9,
+ 0x3BA,
+ 0x3C1,
+ 0x3C2,
+ 0x3C5,
+ 0x3C6,
+ 0x3C9,
+ 0x3CA,
+ 0x3CE,
+ 0x3CF,
+ 0x565,
+ 0x566,
+ 0x574,
+ 0x575,
+ 0x57E,
+ 0x57F,
+ 0x1F00,
+ 0x1F08,
+ 0x1F20,
+ 0x1F28,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1F71,
+ 0x1F74,
+ 0x1F75,
+ 0x1F7C,
+ 0x1F7D
};
-#ifndef PERL_IN_XSUB_RE
+static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC POSIX-BC */
+ 265, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9A,
+ 0x9C,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC0,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFC,
+ 0xFD,
+ 0xFE,
+ 0xFF,
+ 0x100,
+ 0x131,
+ 0x132,
+ 0x138,
+ 0x139,
+ 0x18D,
+ 0x18E,
+ 0x19B,
+ 0x19C,
+ 0x1AA,
+ 0x1AC,
+ 0x1BA,
+ 0x1BC,
+ 0x1BE,
+ 0x1BF,
+ 0x1C0,
+ 0x1C4,
+ 0x221,
+ 0x222,
+ 0x234,
+ 0x23A,
+ 0x255,
+ 0x256,
+ 0x258,
+ 0x259,
+ 0x25A,
+ 0x25B,
+ 0x25D,
+ 0x260,
+ 0x262,
+ 0x263,
+ 0x264,
+ 0x265,
+ 0x267,
+ 0x268,
+ 0x26A,
+ 0x26B,
+ 0x26D,
+ 0x26F,
+ 0x270,
+ 0x271,
+ 0x273,
+ 0x275,
+ 0x276,
+ 0x27D,
+ 0x27E,
+ 0x280,
+ 0x281,
+ 0x283,
+ 0x284,
+ 0x287,
+ 0x28D,
+ 0x292,
+ 0x293,
+ 0x29E,
+ 0x29F,
+ 0x2BC,
+ 0x2BD,
+ 0x2BE,
+ 0x2BF,
+ 0x300,
+ 0x302,
+ 0x307,
+ 0x309,
+ 0x30A,
+ 0x30B,
+ 0x30C,
+ 0x30D,
+ 0x313,
+ 0x314,
+ 0x331,
+ 0x332,
+ 0x342,
+ 0x343,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x374,
+ 0x376,
+ 0x378,
+ 0x37B,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3D2,
+ 0x3D5,
+ 0x3F6,
+ 0x3F7,
+ 0x3FC,
+ 0x3FD,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x561,
+ 0x588,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x1D79,
+ 0x1D7A,
+ 0x1D7D,
+ 0x1D7E,
+ 0x1E00,
+ 0x1E9C,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2126,
+ 0x2127,
+ 0x212A,
+ 0x212C,
+ 0x2132,
+ 0x2133,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2180,
+ 0x2183,
+ 0x2185,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2C71,
+ 0x2C72,
+ 0x2C74,
+ 0x2C75,
+ 0x2C77,
+ 0x2C7E,
+ 0x2CE4,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0xA640,
+ 0xA66E,
+ 0xA680,
+ 0xA69C,
+ 0xA722,
+ 0xA730,
+ 0xA732,
+ 0xA770,
+ 0xA779,
+ 0xA788,
+ 0xA78B,
+ 0xA78E,
+ 0xA790,
+ 0xA794,
+ 0xA796,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0x10400,
+ 0x10450,
+ 0x118A0,
+ 0x118E0
+};
-static const UV _Perl_Folds_To_Multi_Char_invlist[] = {
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC POSIX-BC */
59, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 223,
- 224,
- 304,
- 305,
- 329,
- 330,
- 496,
- 497,
- 912,
- 913,
- 944,
- 945,
- 1415,
- 1416,
- 7830,
- 7835,
- 7838,
- 7839,
- 8016,
- 8017,
- 8018,
- 8019,
- 8020,
- 8021,
- 8022,
- 8023,
- 8064,
- 8112,
- 8114,
- 8117,
- 8118,
- 8120,
- 8124,
- 8125,
- 8130,
- 8133,
- 8134,
- 8136,
- 8140,
- 8141,
- 8146,
- 8148,
- 8150,
- 8152,
- 8162,
- 8165,
- 8166,
- 8168,
- 8178,
- 8181,
- 8182,
- 8184,
- 8188,
- 8189,
- 64256,
- 64263,
- 64275,
- 64280
+ 0x0,
+ 0x59,
+ 0x5A,
+ 0x130,
+ 0x131,
+ 0x149,
+ 0x14A,
+ 0x1F0,
+ 0x1F1,
+ 0x390,
+ 0x391,
+ 0x3B0,
+ 0x3B1,
+ 0x587,
+ 0x588,
+ 0x1E96,
+ 0x1E9B,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1F50,
+ 0x1F51,
+ 0x1F52,
+ 0x1F53,
+ 0x1F54,
+ 0x1F55,
+ 0x1F56,
+ 0x1F57,
+ 0x1F80,
+ 0x1FB0,
+ 0x1FB2,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FB8,
+ 0x1FBC,
+ 0x1FBD,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FC8,
+ 0x1FCC,
+ 0x1FCD,
+ 0x1FD2,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FD8,
+ 0x1FE2,
+ 0x1FE5,
+ 0x1FE6,
+ 0x1FE8,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FF8,
+ 0x1FFC,
+ 0x1FFD,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18
};
-#endif
+#endif /* defined(PERL_IN_REGCOMP_C) */
-#ifndef PERL_IN_XSUB_RE
+#if defined(PERL_IN_UTF8_C)
-static const UV UpperLatin1_invlist[] = {
- 3, /* Number of elements */
+static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC POSIX-BC */
+ 1289, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 128,
- 256
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x6D,
+ 0x6E,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC0,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xFA,
+ 0xFC,
+ 0xFD,
+ 0xFE,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37B,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x483,
+ 0x488,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6DF,
+ 0x6E9,
+ 0x6EA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x840,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x1000,
+ 0x104A,
+ 0x1050,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1735,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x180B,
+ 0x180E,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1946,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AB0,
+ 0x1ABE,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C38,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C7E,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x203F,
+ 0x2041,
+ 0x2054,
+ 0x2055,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20DD,
+ 0x20E1,
+ 0x20E2,
+ 0x20E5,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA62C,
+ 0xA640,
+ 0xA670,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F2,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C5,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA92E,
+ 0xA930,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9C1,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFC5E,
+ 0xFC64,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFA,
+ 0xFE00,
+ 0xFE10,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE33,
+ 0xFE35,
+ 0xFE4D,
+ 0xFE50,
+ 0xFE71,
+ 0xFE72,
+ 0xFE73,
+ 0xFE74,
+ 0xFE77,
+ 0xFE78,
+ 0xFE79,
+ 0xFE7A,
+ 0xFE7B,
+ 0xFE7C,
+ 0xFE7D,
+ 0xFE7E,
+ 0xFE7F,
+ 0xFEFD,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11047,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x110BB,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C5,
+ 0x111D0,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11238,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x11600,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0100,
+ 0xE01F0
};
-#endif
+static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC POSIX-BC */
+ 1119, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x6D,
+ 0x6E,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC0,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFC,
+ 0xFD,
+ 0xFE,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37B,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x620,
+ 0x64B,
+ 0x66E,
+ 0x670,
+ 0x671,
+ 0x6D4,
+ 0x6D5,
+ 0x6D6,
+ 0x6E5,
+ 0x6E7,
+ 0x6EE,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74D,
+ 0x7A6,
+ 0x7B1,
+ 0x7B2,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x840,
+ 0x859,
+ 0x8A0,
+ 0x8B3,
+ 0x904,
+ 0x93A,
+ 0x93D,
+ 0x93E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x971,
+ 0x981,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BD,
+ 0x9BE,
+ 0x9CE,
+ 0x9CF,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E2,
+ 0x9F0,
+ 0x9F2,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA72,
+ 0xA75,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABD,
+ 0xABE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE2,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3D,
+ 0xB3E,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB62,
+ 0xB71,
+ 0xB72,
+ 0xB83,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBD0,
+ 0xBD1,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC3E,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC62,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBD,
+ 0xCBE,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE2,
+ 0xCF1,
+ 0xCF3,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD3E,
+ 0xD4E,
+ 0xD4F,
+ 0xD60,
+ 0xD62,
+ 0xD7A,
+ 0xD80,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xE01,
+ 0xE31,
+ 0xE32,
+ 0xE33,
+ 0xE40,
+ 0xE47,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEB1,
+ 0xEB2,
+ 0xEB3,
+ 0xEBD,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF88,
+ 0xF8D,
+ 0x1000,
+ 0x102B,
+ 0x103F,
+ 0x1040,
+ 0x1050,
+ 0x1056,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1062,
+ 0x1065,
+ 0x1067,
+ 0x106E,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x108E,
+ 0x108F,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1712,
+ 0x1720,
+ 0x1732,
+ 0x1740,
+ 0x1752,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1780,
+ 0x17B4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18A9,
+ 0x18AA,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1950,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19C1,
+ 0x19C8,
+ 0x1A00,
+ 0x1A17,
+ 0x1A20,
+ 0x1A55,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1B05,
+ 0x1B34,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BAE,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1C00,
+ 0x1C24,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1D00,
+ 0x1DC0,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x302A,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA67F,
+ 0xA69E,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA840,
+ 0xA874,
+ 0xA882,
+ 0xA8B4,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA90A,
+ 0xA926,
+ 0xA930,
+ 0xA947,
+ 0xA960,
+ 0xA97D,
+ 0xA984,
+ 0xA9B3,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA29,
+ 0xAA40,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAEB,
+ 0xAAF2,
+ 0xAAF5,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABE3,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFC5E,
+ 0xFC64,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFA,
+ 0xFE71,
+ 0xFE72,
+ 0xFE73,
+ 0xFE74,
+ 0xFE77,
+ 0xFE78,
+ 0xFE79,
+ 0xFE7A,
+ 0xFE7B,
+ 0xFE7C,
+ 0xFE7D,
+ 0xFE7E,
+ 0xFE7F,
+ 0xFEFD,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x10376,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A01,
+ 0x10A10,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11003,
+ 0x11038,
+ 0x11083,
+ 0x110B0,
+ 0x110D0,
+ 0x110E9,
+ 0x11103,
+ 0x11127,
+ 0x11150,
+ 0x11173,
+ 0x11176,
+ 0x11177,
+ 0x11183,
+ 0x111B3,
+ 0x111C1,
+ 0x111C5,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1122C,
+ 0x112B0,
+ 0x112DF,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133D,
+ 0x1133E,
+ 0x1135D,
+ 0x11362,
+ 0x11480,
+ 0x114B0,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x11580,
+ 0x115AF,
+ 0x11600,
+ 0x11630,
+ 0x11644,
+ 0x11645,
+ 0x11680,
+ 0x116AB,
+ 0x118A0,
+ 0x118E0,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16B00,
+ 0x16B30,
+ 0x16B40,
+ 0x16B44,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F51,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E
+};
-#ifndef PERL_IN_XSUB_RE
+#endif /* defined(PERL_IN_UTF8_C) */
-static const UV _Perl_IDStart_invlist[] = {
- 995, /* Number of elements */
+#if defined(PERL_IN_PERL_C)
+
+static const UV Sentence_Break_invlist[] = { /* for EBCDIC POSIX-BC */
+ 2863, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x5,
+ 0x6,
+ 0xB,
+ 0xD,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x40,
+ 0x42,
+ 0x4A,
+ 0x4B,
+ 0x4C,
+ 0x4D,
+ 0x4E,
+ 0x51,
+ 0x5A,
+ 0x5B,
+ 0x5D,
+ 0x5E,
+ 0x60,
+ 0x61,
+ 0x62,
+ 0x6A,
+ 0x6B,
+ 0x6C,
+ 0x6F,
+ 0x70,
+ 0x71,
+ 0x79,
+ 0x7A,
+ 0x7B,
+ 0x7D,
+ 0x7E,
+ 0x7F,
+ 0x80,
+ 0x81,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xBB,
+ 0xBC,
+ 0xBD,
+ 0xBE,
+ 0xC0,
+ 0xC1,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xDD,
+ 0xDE,
+ 0xE0,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFA,
+ 0xFB,
+ 0xFC,
+ 0xFD,
+ 0xFE,
+ 0xFF,
+ 0x100,
+ 0x101,
+ 0x102,
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x106,
+ 0x107,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x10E,
+ 0x10F,
+ 0x110,
+ 0x111,
+ 0x112,
+ 0x113,
+ 0x114,
+ 0x115,
+ 0x116,
+ 0x117,
+ 0x118,
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x11C,
+ 0x11D,
+ 0x11E,
+ 0x11F,
+ 0x120,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x124,
+ 0x125,
+ 0x126,
+ 0x127,
+ 0x128,
+ 0x129,
+ 0x12A,
+ 0x12B,
+ 0x12C,
+ 0x12D,
+ 0x12E,
+ 0x12F,
+ 0x130,
+ 0x131,
+ 0x132,
+ 0x133,
+ 0x134,
+ 0x135,
+ 0x136,
+ 0x137,
+ 0x139,
+ 0x13A,
+ 0x13B,
+ 0x13C,
+ 0x13D,
+ 0x13E,
+ 0x13F,
+ 0x140,
+ 0x141,
+ 0x142,
+ 0x143,
+ 0x144,
+ 0x145,
+ 0x146,
+ 0x147,
+ 0x148,
+ 0x14A,
+ 0x14B,
+ 0x14C,
+ 0x14D,
+ 0x14E,
+ 0x14F,
+ 0x150,
+ 0x151,
+ 0x152,
+ 0x153,
+ 0x154,
+ 0x155,
+ 0x156,
+ 0x157,
+ 0x158,
+ 0x159,
+ 0x15A,
+ 0x15B,
+ 0x15C,
+ 0x15D,
+ 0x15E,
+ 0x15F,
+ 0x160,
+ 0x161,
+ 0x162,
+ 0x163,
+ 0x164,
+ 0x165,
+ 0x166,
+ 0x167,
+ 0x168,
+ 0x169,
+ 0x16A,
+ 0x16B,
+ 0x16C,
+ 0x16D,
+ 0x16E,
+ 0x16F,
+ 0x170,
+ 0x171,
+ 0x172,
+ 0x173,
+ 0x174,
+ 0x175,
+ 0x176,
+ 0x177,
+ 0x178,
+ 0x17A,
+ 0x17B,
+ 0x17C,
+ 0x17D,
+ 0x17E,
+ 0x181,
+ 0x183,
+ 0x184,
+ 0x185,
+ 0x186,
+ 0x188,
+ 0x189,
+ 0x18C,
+ 0x18E,
+ 0x192,
+ 0x193,
+ 0x195,
+ 0x196,
+ 0x199,
+ 0x19C,
+ 0x19E,
+ 0x19F,
+ 0x1A1,
+ 0x1A2,
+ 0x1A3,
+ 0x1A4,
+ 0x1A5,
+ 0x1A6,
+ 0x1A8,
+ 0x1A9,
+ 0x1AA,
+ 0x1AC,
+ 0x1AD,
+ 0x1AE,
+ 0x1B0,
+ 0x1B1,
+ 0x1B4,
+ 0x1B5,
+ 0x1B6,
+ 0x1B7,
+ 0x1B9,
+ 0x1BB,
+ 0x1BC,
+ 0x1BD,
+ 0x1C0,
+ 0x1C4,
+ 0x1C6,
+ 0x1C7,
+ 0x1C9,
+ 0x1CA,
+ 0x1CC,
+ 0x1CD,
+ 0x1CE,
+ 0x1CF,
+ 0x1D0,
+ 0x1D1,
+ 0x1D2,
+ 0x1D3,
+ 0x1D4,
+ 0x1D5,
+ 0x1D6,
+ 0x1D7,
+ 0x1D8,
+ 0x1D9,
+ 0x1DA,
+ 0x1DB,
+ 0x1DC,
+ 0x1DE,
+ 0x1DF,
+ 0x1E0,
+ 0x1E1,
+ 0x1E2,
+ 0x1E3,
+ 0x1E4,
+ 0x1E5,
+ 0x1E6,
+ 0x1E7,
+ 0x1E8,
+ 0x1E9,
+ 0x1EA,
+ 0x1EB,
+ 0x1EC,
+ 0x1ED,
+ 0x1EE,
+ 0x1EF,
+ 0x1F1,
+ 0x1F3,
+ 0x1F4,
+ 0x1F5,
+ 0x1F6,
+ 0x1F9,
+ 0x1FA,
+ 0x1FB,
+ 0x1FC,
+ 0x1FD,
+ 0x1FE,
+ 0x1FF,
+ 0x200,
+ 0x201,
+ 0x202,
+ 0x203,
+ 0x204,
+ 0x205,
+ 0x206,
+ 0x207,
+ 0x208,
+ 0x209,
+ 0x20A,
+ 0x20B,
+ 0x20C,
+ 0x20D,
+ 0x20E,
+ 0x20F,
+ 0x210,
+ 0x211,
+ 0x212,
+ 0x213,
+ 0x214,
+ 0x215,
+ 0x216,
+ 0x217,
+ 0x218,
+ 0x219,
+ 0x21A,
+ 0x21B,
+ 0x21C,
+ 0x21D,
+ 0x21E,
+ 0x21F,
+ 0x220,
+ 0x221,
+ 0x222,
+ 0x223,
+ 0x224,
+ 0x225,
+ 0x226,
+ 0x227,
+ 0x228,
+ 0x229,
+ 0x22A,
+ 0x22B,
+ 0x22C,
+ 0x22D,
+ 0x22E,
+ 0x22F,
+ 0x230,
+ 0x231,
+ 0x232,
+ 0x233,
+ 0x23A,
+ 0x23C,
+ 0x23D,
+ 0x23F,
+ 0x241,
+ 0x242,
+ 0x243,
+ 0x247,
+ 0x248,
+ 0x249,
+ 0x24A,
+ 0x24B,
+ 0x24C,
+ 0x24D,
+ 0x24E,
+ 0x24F,
+ 0x294,
+ 0x295,
+ 0x2B9,
+ 0x2C0,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x370,
+ 0x371,
+ 0x372,
+ 0x373,
+ 0x374,
+ 0x375,
+ 0x376,
+ 0x377,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x390,
+ 0x391,
+ 0x3A2,
+ 0x3A3,
+ 0x3AC,
+ 0x3CF,
+ 0x3D0,
+ 0x3D2,
+ 0x3D5,
+ 0x3D8,
+ 0x3D9,
+ 0x3DA,
+ 0x3DB,
+ 0x3DC,
+ 0x3DD,
+ 0x3DE,
+ 0x3DF,
+ 0x3E0,
+ 0x3E1,
+ 0x3E2,
+ 0x3E3,
+ 0x3E4,
+ 0x3E5,
+ 0x3E6,
+ 0x3E7,
+ 0x3E8,
+ 0x3E9,
+ 0x3EA,
+ 0x3EB,
+ 0x3EC,
+ 0x3ED,
+ 0x3EE,
+ 0x3EF,
+ 0x3F4,
+ 0x3F5,
+ 0x3F6,
+ 0x3F7,
+ 0x3F8,
+ 0x3F9,
+ 0x3FB,
+ 0x3FD,
+ 0x430,
+ 0x460,
+ 0x461,
+ 0x462,
+ 0x463,
+ 0x464,
+ 0x465,
+ 0x466,
+ 0x467,
+ 0x468,
+ 0x469,
+ 0x46A,
+ 0x46B,
+ 0x46C,
+ 0x46D,
+ 0x46E,
+ 0x46F,
+ 0x470,
+ 0x471,
+ 0x472,
+ 0x473,
+ 0x474,
+ 0x475,
+ 0x476,
+ 0x477,
+ 0x478,
+ 0x479,
+ 0x47A,
+ 0x47B,
+ 0x47C,
+ 0x47D,
+ 0x47E,
+ 0x47F,
+ 0x480,
+ 0x481,
+ 0x482,
+ 0x483,
+ 0x48A,
+ 0x48B,
+ 0x48C,
+ 0x48D,
+ 0x48E,
+ 0x48F,
+ 0x490,
+ 0x491,
+ 0x492,
+ 0x493,
+ 0x494,
+ 0x495,
+ 0x496,
+ 0x497,
+ 0x498,
+ 0x499,
+ 0x49A,
+ 0x49B,
+ 0x49C,
+ 0x49D,
+ 0x49E,
+ 0x49F,
+ 0x4A0,
+ 0x4A1,
+ 0x4A2,
+ 0x4A3,
+ 0x4A4,
+ 0x4A5,
+ 0x4A6,
+ 0x4A7,
+ 0x4A8,
+ 0x4A9,
+ 0x4AA,
+ 0x4AB,
+ 0x4AC,
+ 0x4AD,
+ 0x4AE,
+ 0x4AF,
+ 0x4B0,
+ 0x4B1,
+ 0x4B2,
+ 0x4B3,
+ 0x4B4,
+ 0x4B5,
+ 0x4B6,
+ 0x4B7,
+ 0x4B8,
+ 0x4B9,
+ 0x4BA,
+ 0x4BB,
+ 0x4BC,
+ 0x4BD,
+ 0x4BE,
+ 0x4BF,
+ 0x4C0,
+ 0x4C2,
+ 0x4C3,
+ 0x4C4,
+ 0x4C5,
+ 0x4C6,
+ 0x4C7,
+ 0x4C8,
+ 0x4C9,
+ 0x4CA,
+ 0x4CB,
+ 0x4CC,
+ 0x4CD,
+ 0x4CE,
+ 0x4D0,
+ 0x4D1,
+ 0x4D2,
+ 0x4D3,
+ 0x4D4,
+ 0x4D5,
+ 0x4D6,
+ 0x4D7,
+ 0x4D8,
+ 0x4D9,
+ 0x4DA,
+ 0x4DB,
+ 0x4DC,
+ 0x4DD,
+ 0x4DE,
+ 0x4DF,
+ 0x4E0,
+ 0x4E1,
+ 0x4E2,
+ 0x4E3,
+ 0x4E4,
+ 0x4E5,
+ 0x4E6,
+ 0x4E7,
+ 0x4E8,
+ 0x4E9,
+ 0x4EA,
+ 0x4EB,
+ 0x4EC,
+ 0x4ED,
+ 0x4EE,
+ 0x4EF,
+ 0x4F0,
+ 0x4F1,
+ 0x4F2,
+ 0x4F3,
+ 0x4F4,
+ 0x4F5,
+ 0x4F6,
+ 0x4F7,
+ 0x4F8,
+ 0x4F9,
+ 0x4FA,
+ 0x4FB,
+ 0x4FC,
+ 0x4FD,
+ 0x4FE,
+ 0x4FF,
+ 0x500,
+ 0x501,
+ 0x502,
+ 0x503,
+ 0x504,
+ 0x505,
+ 0x506,
+ 0x507,
+ 0x508,
+ 0x509,
+ 0x50A,
+ 0x50B,
+ 0x50C,
+ 0x50D,
+ 0x50E,
+ 0x50F,
+ 0x510,
+ 0x511,
+ 0x512,
+ 0x513,
+ 0x514,
+ 0x515,
+ 0x516,
+ 0x517,
+ 0x518,
+ 0x519,
+ 0x51A,
+ 0x51B,
+ 0x51C,
+ 0x51D,
+ 0x51E,
+ 0x51F,
+ 0x520,
+ 0x521,
+ 0x522,
+ 0x523,
+ 0x524,
+ 0x525,
+ 0x526,
+ 0x527,
+ 0x528,
+ 0x529,
+ 0x52A,
+ 0x52B,
+ 0x52C,
+ 0x52D,
+ 0x52E,
+ 0x52F,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x55D,
+ 0x55E,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58A,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F4,
+ 0x600,
+ 0x606,
+ 0x60C,
+ 0x60E,
+ 0x610,
+ 0x61B,
+ 0x61C,
+ 0x61D,
+ 0x61F,
+ 0x620,
+ 0x64B,
+ 0x660,
+ 0x66A,
+ 0x66B,
+ 0x66D,
+ 0x66E,
+ 0x670,
+ 0x671,
+ 0x6D4,
+ 0x6D5,
+ 0x6D6,
+ 0x6DD,
+ 0x6DE,
+ 0x6DF,
+ 0x6E5,
+ 0x6E7,
+ 0x6E9,
+ 0x6EA,
+ 0x6EE,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x703,
+ 0x70F,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74B,
+ 0x74D,
+ 0x7A6,
+ 0x7B1,
+ 0x7B2,
+ 0x7C0,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7F8,
+ 0x7F9,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x82E,
+ 0x840,
+ 0x859,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x904,
+ 0x93A,
+ 0x93D,
+ 0x93E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x981,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9BD,
+ 0x9BE,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E2,
+ 0x9E4,
+ 0x9E6,
+ 0x9F0,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA70,
+ 0xA72,
+ 0xA75,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xABD,
+ 0xABE,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE2,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB3D,
+ 0xB3E,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB62,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB83,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC3E,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC62,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCBD,
+ 0xCBE,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE2,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD3E,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD62,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE31,
+ 0xE32,
+ 0xE34,
+ 0xE3B,
+ 0xE40,
+ 0xE47,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEB1,
+ 0xEB2,
+ 0xEB4,
+ 0xEBA,
+ 0xEBB,
+ 0xEBD,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF88,
+ 0xF8D,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x1000,
+ 0x102B,
+ 0x103F,
+ 0x1040,
+ 0x104A,
+ 0x104C,
+ 0x1050,
+ 0x1056,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1062,
+ 0x1065,
+ 0x1067,
+ 0x106E,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x108E,
+ 0x108F,
+ 0x1090,
+ 0x109A,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1362,
+ 0x1363,
+ 0x1367,
+ 0x1369,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166E,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x169D,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1712,
+ 0x1715,
+ 0x1720,
+ 0x1732,
+ 0x1735,
+ 0x1737,
+ 0x1740,
+ 0x1752,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17B4,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x1802,
+ 0x1803,
+ 0x1804,
+ 0x1808,
+ 0x1809,
+ 0x180A,
+ 0x180B,
+ 0x180E,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18A9,
+ 0x18AA,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1944,
+ 0x1946,
+ 0x1950,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19C1,
+ 0x19C8,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A17,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A55,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AAC,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B05,
+ 0x1B34,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B5C,
+ 0x1B5E,
+ 0x1B60,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BAE,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C24,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C3D,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1C80,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1E00,
+ 0x1E01,
+ 0x1E02,
+ 0x1E03,
+ 0x1E04,
+ 0x1E05,
+ 0x1E06,
+ 0x1E07,
+ 0x1E08,
+ 0x1E09,
+ 0x1E0A,
+ 0x1E0B,
+ 0x1E0C,
+ 0x1E0D,
+ 0x1E0E,
+ 0x1E0F,
+ 0x1E10,
+ 0x1E11,
+ 0x1E12,
+ 0x1E13,
+ 0x1E14,
+ 0x1E15,
+ 0x1E16,
+ 0x1E17,
+ 0x1E18,
+ 0x1E19,
+ 0x1E1A,
+ 0x1E1B,
+ 0x1E1C,
+ 0x1E1D,
+ 0x1E1E,
+ 0x1E1F,
+ 0x1E20,
+ 0x1E21,
+ 0x1E22,
+ 0x1E23,
+ 0x1E24,
+ 0x1E25,
+ 0x1E26,
+ 0x1E27,
+ 0x1E28,
+ 0x1E29,
+ 0x1E2A,
+ 0x1E2B,
+ 0x1E2C,
+ 0x1E2D,
+ 0x1E2E,
+ 0x1E2F,
+ 0x1E30,
+ 0x1E31,
+ 0x1E32,
+ 0x1E33,
+ 0x1E34,
+ 0x1E35,
+ 0x1E36,
+ 0x1E37,
+ 0x1E38,
+ 0x1E39,
+ 0x1E3A,
+ 0x1E3B,
+ 0x1E3C,
+ 0x1E3D,
+ 0x1E3E,
+ 0x1E3F,
+ 0x1E40,
+ 0x1E41,
+ 0x1E42,
+ 0x1E43,
+ 0x1E44,
+ 0x1E45,
+ 0x1E46,
+ 0x1E47,
+ 0x1E48,
+ 0x1E49,
+ 0x1E4A,
+ 0x1E4B,
+ 0x1E4C,
+ 0x1E4D,
+ 0x1E4E,
+ 0x1E4F,
+ 0x1E50,
+ 0x1E51,
+ 0x1E52,
+ 0x1E53,
+ 0x1E54,
+ 0x1E55,
+ 0x1E56,
+ 0x1E57,
+ 0x1E58,
+ 0x1E59,
+ 0x1E5A,
+ 0x1E5B,
+ 0x1E5C,
+ 0x1E5D,
+ 0x1E5E,
+ 0x1E5F,
+ 0x1E60,
+ 0x1E61,
+ 0x1E62,
+ 0x1E63,
+ 0x1E64,
+ 0x1E65,
+ 0x1E66,
+ 0x1E67,
+ 0x1E68,
+ 0x1E69,
+ 0x1E6A,
+ 0x1E6B,
+ 0x1E6C,
+ 0x1E6D,
+ 0x1E6E,
+ 0x1E6F,
+ 0x1E70,
+ 0x1E71,
+ 0x1E72,
+ 0x1E73,
+ 0x1E74,
+ 0x1E75,
+ 0x1E76,
+ 0x1E77,
+ 0x1E78,
+ 0x1E79,
+ 0x1E7A,
+ 0x1E7B,
+ 0x1E7C,
+ 0x1E7D,
+ 0x1E7E,
+ 0x1E7F,
+ 0x1E80,
+ 0x1E81,
+ 0x1E82,
+ 0x1E83,
+ 0x1E84,
+ 0x1E85,
+ 0x1E86,
+ 0x1E87,
+ 0x1E88,
+ 0x1E89,
+ 0x1E8A,
+ 0x1E8B,
+ 0x1E8C,
+ 0x1E8D,
+ 0x1E8E,
+ 0x1E8F,
+ 0x1E90,
+ 0x1E91,
+ 0x1E92,
+ 0x1E93,
+ 0x1E94,
+ 0x1E95,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1EA1,
+ 0x1EA2,
+ 0x1EA3,
+ 0x1EA4,
+ 0x1EA5,
+ 0x1EA6,
+ 0x1EA7,
+ 0x1EA8,
+ 0x1EA9,
+ 0x1EAA,
+ 0x1EAB,
+ 0x1EAC,
+ 0x1EAD,
+ 0x1EAE,
+ 0x1EAF,
+ 0x1EB0,
+ 0x1EB1,
+ 0x1EB2,
+ 0x1EB3,
+ 0x1EB4,
+ 0x1EB5,
+ 0x1EB6,
+ 0x1EB7,
+ 0x1EB8,
+ 0x1EB9,
+ 0x1EBA,
+ 0x1EBB,
+ 0x1EBC,
+ 0x1EBD,
+ 0x1EBE,
+ 0x1EBF,
+ 0x1EC0,
+ 0x1EC1,
+ 0x1EC2,
+ 0x1EC3,
+ 0x1EC4,
+ 0x1EC5,
+ 0x1EC6,
+ 0x1EC7,
+ 0x1EC8,
+ 0x1EC9,
+ 0x1ECA,
+ 0x1ECB,
+ 0x1ECC,
+ 0x1ECD,
+ 0x1ECE,
+ 0x1ECF,
+ 0x1ED0,
+ 0x1ED1,
+ 0x1ED2,
+ 0x1ED3,
+ 0x1ED4,
+ 0x1ED5,
+ 0x1ED6,
+ 0x1ED7,
+ 0x1ED8,
+ 0x1ED9,
+ 0x1EDA,
+ 0x1EDB,
+ 0x1EDC,
+ 0x1EDD,
+ 0x1EDE,
+ 0x1EDF,
+ 0x1EE0,
+ 0x1EE1,
+ 0x1EE2,
+ 0x1EE3,
+ 0x1EE4,
+ 0x1EE5,
+ 0x1EE6,
+ 0x1EE7,
+ 0x1EE8,
+ 0x1EE9,
+ 0x1EEA,
+ 0x1EEB,
+ 0x1EEC,
+ 0x1EED,
+ 0x1EEE,
+ 0x1EEF,
+ 0x1EF0,
+ 0x1EF1,
+ 0x1EF2,
+ 0x1EF3,
+ 0x1EF4,
+ 0x1EF5,
+ 0x1EF6,
+ 0x1EF7,
+ 0x1EF8,
+ 0x1EF9,
+ 0x1EFA,
+ 0x1EFB,
+ 0x1EFC,
+ 0x1EFD,
+ 0x1EFE,
+ 0x1EFF,
+ 0x1F08,
+ 0x1F10,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F28,
+ 0x1F30,
+ 0x1F38,
+ 0x1F40,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1F7E,
+ 0x1F80,
+ 0x1F88,
+ 0x1F90,
+ 0x1F98,
+ 0x1FA0,
+ 0x1FA8,
+ 0x1FB0,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FB8,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FC8,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FD8,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FE8,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FF8,
+ 0x1FFD,
+ 0x2000,
+ 0x200B,
+ 0x200C,
+ 0x200E,
+ 0x2010,
+ 0x2013,
+ 0x2015,
+ 0x2018,
+ 0x2020,
+ 0x2024,
+ 0x2025,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x2039,
+ 0x203B,
+ 0x203C,
+ 0x203E,
+ 0x2045,
+ 0x2047,
+ 0x204A,
+ 0x205F,
+ 0x2060,
+ 0x2065,
+ 0x2066,
+ 0x2070,
+ 0x2071,
+ 0x2072,
+ 0x207D,
+ 0x207F,
+ 0x2080,
+ 0x208D,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x210B,
+ 0x210E,
+ 0x2110,
+ 0x2113,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x2130,
+ 0x2134,
+ 0x2135,
+ 0x2139,
+ 0x213A,
+ 0x213C,
+ 0x213E,
+ 0x2140,
+ 0x2145,
+ 0x2146,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2170,
+ 0x2180,
+ 0x2183,
+ 0x2184,
+ 0x2185,
+ 0x2189,
+ 0x2308,
+ 0x230C,
+ 0x2329,
+ 0x232B,
+ 0x24B6,
+ 0x24D0,
+ 0x24EA,
+ 0x275B,
+ 0x2761,
+ 0x2768,
+ 0x2776,
+ 0x27C5,
+ 0x27C7,
+ 0x27E6,
+ 0x27F0,
+ 0x2983,
+ 0x2999,
+ 0x29D8,
+ 0x29DC,
+ 0x29FC,
+ 0x29FE,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2C61,
+ 0x2C62,
+ 0x2C65,
+ 0x2C67,
+ 0x2C68,
+ 0x2C69,
+ 0x2C6A,
+ 0x2C6B,
+ 0x2C6C,
+ 0x2C6D,
+ 0x2C71,
+ 0x2C72,
+ 0x2C73,
+ 0x2C75,
+ 0x2C76,
+ 0x2C7E,
+ 0x2C81,
+ 0x2C82,
+ 0x2C83,
+ 0x2C84,
+ 0x2C85,
+ 0x2C86,
+ 0x2C87,
+ 0x2C88,
+ 0x2C89,
+ 0x2C8A,
+ 0x2C8B,
+ 0x2C8C,
+ 0x2C8D,
+ 0x2C8E,
+ 0x2C8F,
+ 0x2C90,
+ 0x2C91,
+ 0x2C92,
+ 0x2C93,
+ 0x2C94,
+ 0x2C95,
+ 0x2C96,
+ 0x2C97,
+ 0x2C98,
+ 0x2C99,
+ 0x2C9A,
+ 0x2C9B,
+ 0x2C9C,
+ 0x2C9D,
+ 0x2C9E,
+ 0x2C9F,
+ 0x2CA0,
+ 0x2CA1,
+ 0x2CA2,
+ 0x2CA3,
+ 0x2CA4,
+ 0x2CA5,
+ 0x2CA6,
+ 0x2CA7,
+ 0x2CA8,
+ 0x2CA9,
+ 0x2CAA,
+ 0x2CAB,
+ 0x2CAC,
+ 0x2CAD,
+ 0x2CAE,
+ 0x2CAF,
+ 0x2CB0,
+ 0x2CB1,
+ 0x2CB2,
+ 0x2CB3,
+ 0x2CB4,
+ 0x2CB5,
+ 0x2CB6,
+ 0x2CB7,
+ 0x2CB8,
+ 0x2CB9,
+ 0x2CBA,
+ 0x2CBB,
+ 0x2CBC,
+ 0x2CBD,
+ 0x2CBE,
+ 0x2CBF,
+ 0x2CC0,
+ 0x2CC1,
+ 0x2CC2,
+ 0x2CC3,
+ 0x2CC4,
+ 0x2CC5,
+ 0x2CC6,
+ 0x2CC7,
+ 0x2CC8,
+ 0x2CC9,
+ 0x2CCA,
+ 0x2CCB,
+ 0x2CCC,
+ 0x2CCD,
+ 0x2CCE,
+ 0x2CCF,
+ 0x2CD0,
+ 0x2CD1,
+ 0x2CD2,
+ 0x2CD3,
+ 0x2CD4,
+ 0x2CD5,
+ 0x2CD6,
+ 0x2CD7,
+ 0x2CD8,
+ 0x2CD9,
+ 0x2CDA,
+ 0x2CDB,
+ 0x2CDC,
+ 0x2CDD,
+ 0x2CDE,
+ 0x2CDF,
+ 0x2CE0,
+ 0x2CE1,
+ 0x2CE2,
+ 0x2CE3,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEC,
+ 0x2CED,
+ 0x2CEE,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF3,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E0E,
+ 0x2E1C,
+ 0x2E1E,
+ 0x2E20,
+ 0x2E2A,
+ 0x2E2E,
+ 0x2E2F,
+ 0x2E30,
+ 0x2E3C,
+ 0x2E3D,
+ 0x2E42,
+ 0x2E43,
+ 0x3000,
+ 0x3001,
+ 0x3002,
+ 0x3003,
+ 0x3005,
+ 0x3008,
+ 0x3012,
+ 0x3014,
+ 0x301C,
+ 0x301D,
+ 0x3020,
+ 0x3021,
+ 0x302A,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA4FF,
+ 0xA500,
+ 0xA60D,
+ 0xA60E,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA641,
+ 0xA642,
+ 0xA643,
+ 0xA644,
+ 0xA645,
+ 0xA646,
+ 0xA647,
+ 0xA648,
+ 0xA649,
+ 0xA64A,
+ 0xA64B,
+ 0xA64C,
+ 0xA64D,
+ 0xA64E,
+ 0xA64F,
+ 0xA650,
+ 0xA651,
+ 0xA652,
+ 0xA653,
+ 0xA654,
+ 0xA655,
+ 0xA656,
+ 0xA657,
+ 0xA658,
+ 0xA659,
+ 0xA65A,
+ 0xA65B,
+ 0xA65C,
+ 0xA65D,
+ 0xA65E,
+ 0xA65F,
+ 0xA660,
+ 0xA661,
+ 0xA662,
+ 0xA663,
+ 0xA664,
+ 0xA665,
+ 0xA666,
+ 0xA667,
+ 0xA668,
+ 0xA669,
+ 0xA66A,
+ 0xA66B,
+ 0xA66C,
+ 0xA66D,
+ 0xA66E,
+ 0xA66F,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA680,
+ 0xA681,
+ 0xA682,
+ 0xA683,
+ 0xA684,
+ 0xA685,
+ 0xA686,
+ 0xA687,
+ 0xA688,
+ 0xA689,
+ 0xA68A,
+ 0xA68B,
+ 0xA68C,
+ 0xA68D,
+ 0xA68E,
+ 0xA68F,
+ 0xA690,
+ 0xA691,
+ 0xA692,
+ 0xA693,
+ 0xA694,
+ 0xA695,
+ 0xA696,
+ 0xA697,
+ 0xA698,
+ 0xA699,
+ 0xA69A,
+ 0xA69B,
+ 0xA69E,
+ 0xA69F,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA6F2,
+ 0xA6F3,
+ 0xA6F4,
+ 0xA6F7,
+ 0xA6F8,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA723,
+ 0xA724,
+ 0xA725,
+ 0xA726,
+ 0xA727,
+ 0xA728,
+ 0xA729,
+ 0xA72A,
+ 0xA72B,
+ 0xA72C,
+ 0xA72D,
+ 0xA72E,
+ 0xA72F,
+ 0xA732,
+ 0xA733,
+ 0xA734,
+ 0xA735,
+ 0xA736,
+ 0xA737,
+ 0xA738,
+ 0xA739,
+ 0xA73A,
+ 0xA73B,
+ 0xA73C,
+ 0xA73D,
+ 0xA73E,
+ 0xA73F,
+ 0xA740,
+ 0xA741,
+ 0xA742,
+ 0xA743,
+ 0xA744,
+ 0xA745,
+ 0xA746,
+ 0xA747,
+ 0xA748,
+ 0xA749,
+ 0xA74A,
+ 0xA74B,
+ 0xA74C,
+ 0xA74D,
+ 0xA74E,
+ 0xA74F,
+ 0xA750,
+ 0xA751,
+ 0xA752,
+ 0xA753,
+ 0xA754,
+ 0xA755,
+ 0xA756,
+ 0xA757,
+ 0xA758,
+ 0xA759,
+ 0xA75A,
+ 0xA75B,
+ 0xA75C,
+ 0xA75D,
+ 0xA75E,
+ 0xA75F,
+ 0xA760,
+ 0xA761,
+ 0xA762,
+ 0xA763,
+ 0xA764,
+ 0xA765,
+ 0xA766,
+ 0xA767,
+ 0xA768,
+ 0xA769,
+ 0xA76A,
+ 0xA76B,
+ 0xA76C,
+ 0xA76D,
+ 0xA76E,
+ 0xA76F,
+ 0xA779,
+ 0xA77A,
+ 0xA77B,
+ 0xA77C,
+ 0xA77D,
+ 0xA77F,
+ 0xA780,
+ 0xA781,
+ 0xA782,
+ 0xA783,
+ 0xA784,
+ 0xA785,
+ 0xA786,
+ 0xA787,
+ 0xA788,
+ 0xA789,
+ 0xA78B,
+ 0xA78C,
+ 0xA78D,
+ 0xA78E,
+ 0xA78F,
+ 0xA790,
+ 0xA791,
+ 0xA792,
+ 0xA793,
+ 0xA796,
+ 0xA797,
+ 0xA798,
+ 0xA799,
+ 0xA79A,
+ 0xA79B,
+ 0xA79C,
+ 0xA79D,
+ 0xA79E,
+ 0xA79F,
+ 0xA7A0,
+ 0xA7A1,
+ 0xA7A2,
+ 0xA7A3,
+ 0xA7A4,
+ 0xA7A5,
+ 0xA7A6,
+ 0xA7A7,
+ 0xA7A8,
+ 0xA7A9,
+ 0xA7AA,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA7F8,
+ 0xA7FB,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA876,
+ 0xA878,
+ 0xA880,
+ 0xA882,
+ 0xA8B4,
+ 0xA8C5,
+ 0xA8CE,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA90A,
+ 0xA926,
+ 0xA92E,
+ 0xA92F,
+ 0xA930,
+ 0xA947,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA984,
+ 0xA9B3,
+ 0xA9C1,
+ 0xA9C8,
+ 0xA9CA,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA29,
+ 0xAA37,
+ 0xAA40,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA5D,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAEB,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF5,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABE3,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD40,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE00,
+ 0xFE10,
+ 0xFE12,
+ 0xFE13,
+ 0xFE14,
+ 0xFE17,
+ 0xFE19,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE31,
+ 0xFE33,
+ 0xFE35,
+ 0xFE45,
+ 0xFE47,
+ 0xFE49,
+ 0xFE50,
+ 0xFE52,
+ 0xFE53,
+ 0xFE55,
+ 0xFE56,
+ 0xFE58,
+ 0xFE59,
+ 0xFE5F,
+ 0xFE63,
+ 0xFE64,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF01,
+ 0xFF02,
+ 0xFF08,
+ 0xFF0A,
+ 0xFF0C,
+ 0xFF0E,
+ 0xFF0F,
+ 0xFF1A,
+ 0xFF1B,
+ 0xFF1F,
+ 0xFF20,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3C,
+ 0xFF3D,
+ 0xFF3E,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF5C,
+ 0xFF5D,
+ 0xFF5E,
+ 0xFF5F,
+ 0xFF61,
+ 0xFF62,
+ 0xFF64,
+ 0xFF65,
+ 0xFF66,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFF9,
+ 0xFFFC,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x10376,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x10428,
+ 0x10450,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A01,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A10,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A56,
+ 0x10A58,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11003,
+ 0x11038,
+ 0x11047,
+ 0x11049,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x11083,
+ 0x110B0,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11103,
+ 0x11127,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11141,
+ 0x11144,
+ 0x11150,
+ 0x11173,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x11183,
+ 0x111B3,
+ 0x111C1,
+ 0x111C5,
+ 0x111C7,
+ 0x111CD,
+ 0x111CE,
+ 0x111D0,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1122C,
+ 0x11238,
+ 0x1123A,
+ 0x1123B,
+ 0x1123D,
+ 0x112B0,
+ 0x112DF,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x1133D,
+ 0x1133E,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11362,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114B0,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115AF,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x115C2,
+ 0x115C4,
+ 0x115C9,
+ 0x115CA,
+ 0x11600,
+ 0x11630,
+ 0x11641,
+ 0x11643,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116AB,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118C0,
+ 0x118E0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B30,
+ 0x16B37,
+ 0x16B39,
+ 0x16B40,
+ 0x16B44,
+ 0x16B45,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F51,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1BCA0,
+ 0x1BCA4,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D41A,
+ 0x1D434,
+ 0x1D44E,
+ 0x1D455,
+ 0x1D456,
+ 0x1D468,
+ 0x1D482,
+ 0x1D49C,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4B6,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D4D0,
+ 0x1D4EA,
+ 0x1D504,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D538,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D56C,
+ 0x1D586,
+ 0x1D5A0,
+ 0x1D5BA,
+ 0x1D5D4,
+ 0x1D5EE,
+ 0x1D608,
+ 0x1D622,
+ 0x1D63C,
+ 0x1D656,
+ 0x1D670,
+ 0x1D68A,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6E2,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D71C,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D756,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D790,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CA,
+ 0x1D7CB,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x1F676,
+ 0x1F679,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define SB_ENUM_COUNT 16
+
+typedef enum {
+ SB_Other = 0,
+ SB_ATerm = 1,
+ SB_CR = 2,
+ SB_Close = 3,
+ SB_EDGE = 4,
+ SB_Extend = 5,
+ SB_Format = 6,
+ SB_LF = 7,
+ SB_Lower = 8,
+ SB_Numeric = 9,
+ SB_OLetter = 10,
+ SB_SContinue = 11,
+ SB_STerm = 12,
+ SB_Sep = 13,
+ SB_Sp = 14,
+ SB_Upper = 15
+} SB_enum;
+
+static const SB_enum Sentence_Break_invmap[] = { /* for EBCDIC POSIX-BC */
+ SB_Other,
+ SB_Sp,
+ SB_Other,
+ SB_Sp,
+ SB_CR,
+ SB_Other,
+ SB_LF,
+ SB_Other,
+ SB_Sep,
+ SB_Other,
+ SB_Sp,
+ SB_Lower,
+ SB_Other,
+ SB_ATerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Lower,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_STerm,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Upper,
+ SB_Lower,
+ SB_Close,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Format,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Numeric,
+ SB_Other,
+ SB_Close,
+ SB_Upper,
+ SB_Close,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Numeric,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Format,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Close,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Numeric,
+ SB_Extend,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Sp,
+ SB_OLetter,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Format,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Numeric,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Lower,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Sp,
+ SB_Format,
+ SB_Extend,
+ SB_Format,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_ATerm,
+ SB_Other,
+ SB_Sep,
+ SB_Format,
+ SB_Sp,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_STerm,
+ SB_Other,
+ SB_Sp,
+ SB_Format,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Close,
+ SB_Lower,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Extend,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Sp,
+ SB_SContinue,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_OLetter,
+ SB_Lower,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_SContinue,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_ATerm,
+ SB_Other,
+ SB_SContinue,
+ SB_STerm,
+ SB_SContinue,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_SContinue,
+ SB_ATerm,
+ SB_Other,
+ SB_SContinue,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Upper,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Lower,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_Close,
+ SB_STerm,
+ SB_Close,
+ SB_SContinue,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Format,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_STerm,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Format,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Upper,
+ SB_Lower,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Close,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV UpperLatin1_invlist[] = { /* for EBCDIC POSIX-BC */
+ 57, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x4,
+ 0x5,
+ 0x6,
+ 0x7,
+ 0x8,
+ 0xB,
+ 0x14,
+ 0x15,
+ 0x17,
+ 0x18,
+ 0x1A,
+ 0x1C,
+ 0x20,
+ 0x26,
+ 0x28,
+ 0x2D,
+ 0x30,
+ 0x32,
+ 0x33,
+ 0x37,
+ 0x38,
+ 0x3C,
+ 0x3E,
+ 0x3F,
+ 0x41,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x5F,
+ 0x60,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x7A,
+ 0x80,
+ 0x81,
+ 0x8A,
+ 0x91,
+ 0x9A,
+ 0xA2,
+ 0xAA,
+ 0xBB,
+ 0xBE,
+ 0xC1,
+ 0xCA,
+ 0xD1,
+ 0xDA,
+ 0xE2,
+ 0xEA,
+ 0xF0,
+ 0xFA,
+ 0xFB,
+ 0xFC,
+ 0xFD,
+ 0xFE,
+ 0xFF
+};
+
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV VertSpace_invlist[] = { /* for EBCDIC POSIX-BC */
+ 9, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 65,
- 91,
- 95,
- 96,
- 97,
- 123,
- 170,
- 171,
- 181,
- 182,
- 186,
- 187,
- 192,
- 215,
- 216,
- 247,
- 248,
- 706,
- 710,
- 722,
- 736,
- 741,
- 748,
- 749,
- 750,
- 751,
- 880,
- 885,
- 886,
- 888,
- 891,
- 894,
- 902,
- 903,
- 904,
- 907,
- 908,
- 909,
- 910,
- 930,
- 931,
- 1014,
- 1015,
- 1154,
- 1162,
- 1320,
- 1329,
- 1367,
- 1369,
- 1370,
- 1377,
- 1416,
- 1488,
- 1515,
- 1520,
- 1523,
- 1568,
- 1611,
- 1646,
- 1648,
- 1649,
- 1748,
- 1749,
- 1750,
- 1765,
- 1767,
- 1774,
- 1776,
- 1786,
- 1789,
- 1791,
- 1792,
- 1808,
- 1809,
- 1810,
- 1840,
- 1869,
- 1958,
- 1969,
- 1970,
- 1994,
- 2027,
- 2036,
- 2038,
- 2042,
- 2043,
- 2048,
- 2070,
- 2074,
- 2075,
- 2084,
- 2085,
- 2088,
- 2089,
- 2112,
- 2137,
- 2208,
- 2209,
- 2210,
- 2221,
- 2308,
- 2362,
- 2365,
- 2366,
- 2384,
- 2385,
- 2392,
- 2402,
- 2417,
- 2424,
- 2425,
- 2432,
- 2437,
- 2445,
- 2447,
- 2449,
- 2451,
- 2473,
- 2474,
- 2481,
- 2482,
- 2483,
- 2486,
- 2490,
- 2493,
- 2494,
- 2510,
- 2511,
- 2524,
- 2526,
- 2527,
- 2530,
- 2544,
- 2546,
- 2565,
- 2571,
- 2575,
- 2577,
- 2579,
- 2601,
- 2602,
- 2609,
- 2610,
- 2612,
- 2613,
- 2615,
- 2616,
- 2618,
- 2649,
- 2653,
- 2654,
- 2655,
- 2674,
- 2677,
- 2693,
- 2702,
- 2703,
- 2706,
- 2707,
- 2729,
- 2730,
- 2737,
- 2738,
- 2740,
- 2741,
- 2746,
- 2749,
- 2750,
- 2768,
- 2769,
- 2784,
- 2786,
- 2821,
- 2829,
- 2831,
- 2833,
- 2835,
- 2857,
- 2858,
- 2865,
- 2866,
- 2868,
- 2869,
- 2874,
- 2877,
- 2878,
- 2908,
- 2910,
- 2911,
- 2914,
- 2929,
- 2930,
- 2947,
- 2948,
- 2949,
- 2955,
- 2958,
- 2961,
- 2962,
- 2966,
- 2969,
- 2971,
- 2972,
- 2973,
- 2974,
- 2976,
- 2979,
- 2981,
- 2984,
- 2987,
- 2990,
- 3002,
- 3024,
- 3025,
- 3077,
- 3085,
- 3086,
- 3089,
- 3090,
- 3113,
- 3114,
- 3124,
- 3125,
- 3130,
- 3133,
- 3134,
- 3160,
- 3162,
- 3168,
- 3170,
- 3205,
- 3213,
- 3214,
- 3217,
- 3218,
- 3241,
- 3242,
- 3252,
- 3253,
- 3258,
- 3261,
- 3262,
- 3294,
- 3295,
- 3296,
- 3298,
- 3313,
- 3315,
- 3333,
- 3341,
- 3342,
- 3345,
- 3346,
- 3387,
- 3389,
- 3390,
- 3406,
- 3407,
- 3424,
- 3426,
- 3450,
- 3456,
- 3461,
- 3479,
- 3482,
- 3506,
- 3507,
- 3516,
- 3517,
- 3518,
- 3520,
- 3527,
- 3585,
- 3633,
- 3634,
- 3635,
- 3648,
- 3655,
- 3713,
- 3715,
- 3716,
- 3717,
- 3719,
- 3721,
- 3722,
- 3723,
- 3725,
- 3726,
- 3732,
- 3736,
- 3737,
- 3744,
- 3745,
- 3748,
- 3749,
- 3750,
- 3751,
- 3752,
- 3754,
- 3756,
- 3757,
- 3761,
- 3762,
- 3763,
- 3773,
- 3774,
- 3776,
- 3781,
- 3782,
- 3783,
- 3804,
- 3808,
- 3840,
- 3841,
- 3904,
- 3912,
- 3913,
- 3949,
- 3976,
- 3981,
- 4096,
- 4139,
- 4159,
- 4160,
- 4176,
- 4182,
- 4186,
- 4190,
- 4193,
- 4194,
- 4197,
- 4199,
- 4206,
- 4209,
- 4213,
- 4226,
- 4238,
- 4239,
- 4256,
- 4294,
- 4295,
- 4296,
- 4301,
- 4302,
- 4304,
- 4347,
- 4348,
- 4681,
- 4682,
- 4686,
- 4688,
- 4695,
- 4696,
- 4697,
- 4698,
- 4702,
- 4704,
- 4745,
- 4746,
- 4750,
- 4752,
- 4785,
- 4786,
- 4790,
- 4792,
- 4799,
- 4800,
- 4801,
- 4802,
- 4806,
- 4808,
- 4823,
- 4824,
- 4881,
- 4882,
- 4886,
- 4888,
- 4955,
- 4992,
- 5008,
- 5024,
- 5109,
- 5121,
- 5741,
- 5743,
- 5760,
- 5761,
- 5787,
- 5792,
- 5867,
- 5870,
- 5873,
- 5888,
- 5901,
- 5902,
- 5906,
- 5920,
- 5938,
- 5952,
- 5970,
- 5984,
- 5997,
- 5998,
- 6001,
- 6016,
- 6068,
- 6103,
- 6104,
- 6108,
- 6109,
- 6176,
- 6264,
- 6272,
- 6313,
- 6314,
- 6315,
- 6320,
- 6390,
- 6400,
- 6429,
- 6480,
- 6510,
- 6512,
- 6517,
- 6528,
- 6572,
- 6593,
- 6600,
- 6656,
- 6679,
- 6688,
- 6741,
- 6823,
- 6824,
- 6917,
- 6964,
- 6981,
- 6988,
- 7043,
- 7073,
- 7086,
- 7088,
- 7098,
- 7142,
- 7168,
- 7204,
- 7245,
- 7248,
- 7258,
- 7294,
- 7401,
- 7405,
- 7406,
- 7410,
- 7413,
- 7415,
- 7424,
- 7616,
- 7680,
- 7958,
- 7960,
- 7966,
- 7968,
- 8006,
- 8008,
- 8014,
- 8016,
- 8024,
- 8025,
- 8026,
- 8027,
- 8028,
- 8029,
- 8030,
- 8031,
- 8062,
- 8064,
- 8117,
- 8118,
- 8125,
- 8126,
- 8127,
- 8130,
- 8133,
- 8134,
- 8141,
- 8144,
- 8148,
- 8150,
- 8156,
- 8160,
- 8173,
- 8178,
- 8181,
- 8182,
- 8189,
- 8305,
- 8306,
- 8319,
- 8320,
- 8336,
- 8349,
- 8450,
- 8451,
- 8455,
- 8456,
- 8458,
- 8468,
- 8469,
- 8470,
- 8473,
- 8478,
- 8484,
- 8485,
- 8486,
- 8487,
- 8488,
- 8489,
- 8490,
- 8494,
- 8495,
- 8506,
- 8508,
- 8512,
- 8517,
- 8522,
- 8526,
- 8527,
- 8544,
- 8585,
- 11264,
- 11311,
- 11312,
- 11359,
- 11360,
- 11493,
- 11499,
- 11503,
- 11506,
- 11508,
- 11520,
- 11558,
- 11559,
- 11560,
- 11565,
- 11566,
- 11568,
- 11624,
- 11631,
- 11632,
- 11648,
- 11671,
- 11680,
- 11687,
- 11688,
- 11695,
- 11696,
- 11703,
- 11704,
- 11711,
- 11712,
- 11719,
- 11720,
- 11727,
- 11728,
- 11735,
- 11736,
- 11743,
- 12293,
- 12296,
- 12321,
- 12330,
- 12337,
- 12342,
- 12344,
- 12349,
- 12353,
- 12439,
- 12445,
- 12448,
- 12449,
- 12539,
- 12540,
- 12544,
- 12549,
- 12590,
- 12593,
- 12687,
- 12704,
- 12731,
- 12784,
- 12800,
- 13312,
- 19894,
- 19968,
- 40909,
- 40960,
- 42125,
- 42192,
- 42238,
- 42240,
- 42509,
- 42512,
- 42528,
- 42538,
- 42540,
- 42560,
- 42607,
- 42623,
- 42648,
- 42656,
- 42736,
- 42775,
- 42784,
- 42786,
- 42889,
- 42891,
- 42895,
- 42896,
- 42900,
- 42912,
- 42923,
- 43000,
- 43010,
- 43011,
- 43014,
- 43015,
- 43019,
- 43020,
- 43043,
- 43072,
- 43124,
- 43138,
- 43188,
- 43250,
- 43256,
- 43259,
- 43260,
- 43274,
- 43302,
- 43312,
- 43335,
- 43360,
- 43389,
- 43396,
- 43443,
- 43471,
- 43472,
- 43520,
- 43561,
- 43584,
- 43587,
- 43588,
- 43596,
- 43616,
- 43639,
- 43642,
- 43643,
- 43648,
- 43696,
- 43697,
- 43698,
- 43701,
- 43703,
- 43705,
- 43710,
- 43712,
- 43713,
- 43714,
- 43715,
- 43739,
- 43742,
- 43744,
- 43755,
- 43762,
- 43765,
- 43777,
- 43783,
- 43785,
- 43791,
- 43793,
- 43799,
- 43808,
- 43815,
- 43816,
- 43823,
- 43968,
- 44003,
- 44032,
- 55204,
- 55216,
- 55239,
- 55243,
- 55292,
- 63744,
- 64110,
- 64112,
- 64218,
- 64256,
- 64263,
- 64275,
- 64280,
- 64285,
- 64286,
- 64287,
- 64297,
- 64298,
- 64311,
- 64312,
- 64317,
- 64318,
- 64319,
- 64320,
- 64322,
- 64323,
- 64325,
- 64326,
- 64434,
- 64467,
- 64606,
- 64612,
- 64830,
- 64848,
- 64912,
- 64914,
- 64968,
- 65008,
- 65018,
- 65137,
- 65138,
- 65139,
- 65140,
- 65143,
- 65144,
- 65145,
- 65146,
- 65147,
- 65148,
- 65149,
- 65150,
- 65151,
- 65277,
- 65313,
- 65339,
- 65345,
- 65371,
- 65382,
- 65438,
- 65440,
- 65471,
- 65474,
- 65480,
- 65482,
- 65488,
- 65490,
- 65496,
- 65498,
- 65501,
- 65536,
- 65548,
- 65549,
- 65575,
- 65576,
- 65595,
- 65596,
- 65598,
- 65599,
- 65614,
- 65616,
- 65630,
- 65664,
- 65787,
- 65856,
- 65909,
- 66176,
- 66205,
- 66208,
- 66257,
- 66304,
- 66335,
- 66352,
- 66379,
- 66432,
- 66462,
- 66464,
- 66500,
- 66504,
- 66512,
- 66513,
- 66518,
- 66560,
- 66718,
- 67584,
- 67590,
- 67592,
- 67593,
- 67594,
- 67638,
- 67639,
- 67641,
- 67644,
- 67645,
- 67647,
- 67670,
- 67840,
- 67862,
- 67872,
- 67898,
- 67968,
- 68024,
- 68030,
- 68032,
- 68096,
- 68097,
- 68112,
- 68116,
- 68117,
- 68120,
- 68121,
- 68148,
- 68192,
- 68221,
- 68352,
- 68406,
- 68416,
- 68438,
- 68448,
- 68467,
- 68608,
- 68681,
- 69635,
- 69688,
- 69763,
- 69808,
- 69840,
- 69865,
- 69891,
- 69927,
- 70019,
- 70067,
- 70081,
- 70085,
- 71296,
- 71339,
- 73728,
- 74607,
- 74752,
- 74851,
- 77824,
- 78895,
- 92160,
- 92729,
- 93952,
- 94021,
- 94032,
- 94033,
- 94099,
- 94112,
- 110592,
- 110594,
- 119808,
- 119893,
- 119894,
- 119965,
- 119966,
- 119968,
- 119970,
- 119971,
- 119973,
- 119975,
- 119977,
- 119981,
- 119982,
- 119994,
- 119995,
- 119996,
- 119997,
- 120004,
- 120005,
- 120070,
- 120071,
- 120075,
- 120077,
- 120085,
- 120086,
- 120093,
- 120094,
- 120122,
- 120123,
- 120127,
- 120128,
- 120133,
- 120134,
- 120135,
- 120138,
- 120145,
- 120146,
- 120486,
- 120488,
- 120513,
- 120514,
- 120539,
- 120540,
- 120571,
- 120572,
- 120597,
- 120598,
- 120629,
- 120630,
- 120655,
- 120656,
- 120687,
- 120688,
- 120713,
- 120714,
- 120745,
- 120746,
- 120771,
- 120772,
- 120780,
- 126464,
- 126468,
- 126469,
- 126496,
- 126497,
- 126499,
- 126500,
- 126501,
- 126503,
- 126504,
- 126505,
- 126515,
- 126516,
- 126520,
- 126521,
- 126522,
- 126523,
- 126524,
- 126530,
- 126531,
- 126535,
- 126536,
- 126537,
- 126538,
- 126539,
- 126540,
- 126541,
- 126544,
- 126545,
- 126547,
- 126548,
- 126549,
- 126551,
- 126552,
- 126553,
- 126554,
- 126555,
- 126556,
- 126557,
- 126558,
- 126559,
- 126560,
- 126561,
- 126563,
- 126564,
- 126565,
- 126567,
- 126571,
- 126572,
- 126579,
- 126580,
- 126584,
- 126585,
- 126589,
- 126590,
- 126591,
- 126592,
- 126602,
- 126603,
- 126620,
- 126625,
- 126628,
- 126629,
- 126634,
- 126635,
- 126652,
- 131072,
- 173783,
- 173824,
- 177973,
- 177984,
- 178206,
- 194560,
- 195102
+ 0x0,
+ 0xB,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x2028,
+ 0x202A
+};
+
+static const UV Word_Break_invlist[] = { /* for EBCDIC POSIX-BC */
+ 1503, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0xB,
+ 0xD,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x42,
+ 0x4A,
+ 0x4B,
+ 0x4C,
+ 0x51,
+ 0x5A,
+ 0x5E,
+ 0x5F,
+ 0x62,
+ 0x6A,
+ 0x6B,
+ 0x6C,
+ 0x6D,
+ 0x6E,
+ 0x70,
+ 0x79,
+ 0x7A,
+ 0x7B,
+ 0x7D,
+ 0x7E,
+ 0x7F,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xB3,
+ 0xB4,
+ 0xC0,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFA,
+ 0xFC,
+ 0xFD,
+ 0xFE,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2D7,
+ 0x2D8,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x483,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58A,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x5F4,
+ 0x5F5,
+ 0x600,
+ 0x606,
+ 0x60C,
+ 0x60E,
+ 0x610,
+ 0x61B,
+ 0x61C,
+ 0x61D,
+ 0x620,
+ 0x64B,
+ 0x660,
+ 0x66A,
+ 0x66B,
+ 0x66C,
+ 0x66D,
+ 0x66E,
+ 0x670,
+ 0x671,
+ 0x6D4,
+ 0x6D5,
+ 0x6D6,
+ 0x6DD,
+ 0x6DE,
+ 0x6DF,
+ 0x6E5,
+ 0x6E7,
+ 0x6E9,
+ 0x6EA,
+ 0x6EE,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x70F,
+ 0x710,
+ 0x711,
+ 0x712,
+ 0x730,
+ 0x74B,
+ 0x74D,
+ 0x7A6,
+ 0x7B1,
+ 0x7B2,
+ 0x7C0,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7F8,
+ 0x7F9,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x816,
+ 0x81A,
+ 0x81B,
+ 0x824,
+ 0x825,
+ 0x828,
+ 0x829,
+ 0x82E,
+ 0x840,
+ 0x859,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x904,
+ 0x93A,
+ 0x93D,
+ 0x93E,
+ 0x950,
+ 0x951,
+ 0x958,
+ 0x962,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x981,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9BD,
+ 0x9BE,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E2,
+ 0x9E4,
+ 0x9E6,
+ 0x9F0,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA70,
+ 0xA72,
+ 0xA75,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xABD,
+ 0xABE,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE2,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB3D,
+ 0xB3E,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB62,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB83,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC3E,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC62,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCBD,
+ 0xCBE,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE2,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD3E,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD62,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE31,
+ 0xE32,
+ 0xE34,
+ 0xE3B,
+ 0xE47,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xEB1,
+ 0xEB2,
+ 0xEB4,
+ 0xEBA,
+ 0xEBB,
+ 0xEBD,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF88,
+ 0xF8D,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x102B,
+ 0x103F,
+ 0x1040,
+ 0x104A,
+ 0x1056,
+ 0x105A,
+ 0x105E,
+ 0x1061,
+ 0x1062,
+ 0x1065,
+ 0x1067,
+ 0x106E,
+ 0x1071,
+ 0x1075,
+ 0x1082,
+ 0x108E,
+ 0x108F,
+ 0x1090,
+ 0x109A,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1712,
+ 0x1715,
+ 0x1720,
+ 0x1732,
+ 0x1735,
+ 0x1740,
+ 0x1752,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x17B4,
+ 0x17D4,
+ 0x17DD,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x180B,
+ 0x180E,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18A9,
+ 0x18AA,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1946,
+ 0x1950,
+ 0x19B0,
+ 0x19C1,
+ 0x19C8,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A17,
+ 0x1A1C,
+ 0x1A55,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B05,
+ 0x1B34,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1B83,
+ 0x1BA1,
+ 0x1BAE,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C24,
+ 0x1C38,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF2,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x200C,
+ 0x200E,
+ 0x2010,
+ 0x2018,
+ 0x201A,
+ 0x2024,
+ 0x2025,
+ 0x2027,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x203F,
+ 0x2041,
+ 0x2044,
+ 0x2045,
+ 0x2054,
+ 0x2055,
+ 0x2060,
+ 0x2065,
+ 0x2066,
+ 0x2070,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3006,
+ 0x302A,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x303B,
+ 0x303D,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x32D0,
+ 0x32FF,
+ 0x3300,
+ 0x3358,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6A0,
+ 0xA6F0,
+ 0xA6F2,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA823,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA882,
+ 0xA8B4,
+ 0xA8C5,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA90A,
+ 0xA926,
+ 0xA92E,
+ 0xA930,
+ 0xA947,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA984,
+ 0xA9B3,
+ 0xA9C1,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9DA,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xAA00,
+ 0xAA29,
+ 0xAA37,
+ 0xAA40,
+ 0xAA43,
+ 0xAA44,
+ 0xAA4C,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAAB0,
+ 0xAAB1,
+ 0xAAB2,
+ 0xAAB5,
+ 0xAAB7,
+ 0xAAB9,
+ 0xAABE,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAE0,
+ 0xAAEB,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF5,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABE3,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB1E,
+ 0xFB1F,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFB50,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE00,
+ 0xFE10,
+ 0xFE11,
+ 0xFE13,
+ 0xFE14,
+ 0xFE15,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE33,
+ 0xFE35,
+ 0xFE4D,
+ 0xFE50,
+ 0xFE51,
+ 0xFE52,
+ 0xFE53,
+ 0xFE54,
+ 0xFE55,
+ 0xFE56,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF07,
+ 0xFF08,
+ 0xFF0C,
+ 0xFF0D,
+ 0xFF0E,
+ 0xFF0F,
+ 0xFF1A,
+ 0xFF1B,
+ 0xFF1C,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFF9E,
+ 0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFF9,
+ 0xFFFC,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x10376,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A01,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A10,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11003,
+ 0x11038,
+ 0x11047,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x11083,
+ 0x110B0,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11103,
+ 0x11127,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11173,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x11183,
+ 0x111B3,
+ 0x111C1,
+ 0x111C5,
+ 0x111D0,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1122C,
+ 0x11238,
+ 0x112B0,
+ 0x112DF,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x1133D,
+ 0x1133E,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11362,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114B0,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115AF,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x11600,
+ 0x11630,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116AB,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118E0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B00,
+ 0x16B30,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F51,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B001,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1BCA0,
+ 0x1BCA4,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x1F1E6,
+ 0x1F200,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define WB_ENUM_COUNT 19
+
+typedef enum {
+ WB_Other = 0,
+ WB_ALetter = 1,
+ WB_CR = 2,
+ WB_Double_Quote = 3,
+ WB_EDGE = 4,
+ WB_Extend = 5,
+ WB_ExtendNumLet = 6,
+ WB_Format = 7,
+ WB_Hebrew_Letter = 8,
+ WB_Katakana = 9,
+ WB_LF = 10,
+ WB_MidLetter = 11,
+ WB_MidNum = 12,
+ WB_MidNumLet = 13,
+ WB_Newline = 14,
+ WB_Numeric = 15,
+ WB_Regional_Indicator = 16,
+ WB_Single_Quote = 17,
+ WB_UNKNOWN = 18
+} WB_enum;
+
+static const WB_enum Word_Break_invmap[] = { /* for EBCDIC POSIX-BC */
+ WB_Other,
+ WB_Newline,
+ WB_CR,
+ WB_Other,
+ WB_LF,
+ WB_Other,
+ WB_Newline,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidLetter,
+ WB_Other,
+ WB_Single_Quote,
+ WB_Other,
+ WB_Double_Quote,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidLetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Format,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidLetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_MidNum,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_MidLetter,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_ALetter,
+ WB_MidLetter,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Numeric,
+ WB_Other,
+ WB_Numeric,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Format,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Numeric,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Numeric,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidLetter,
+ WB_Newline,
+ WB_Format,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Extend,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_Other,
+ WB_Hebrew_Letter,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_MidNum,
+ WB_Other,
+ WB_MidLetter,
+ WB_MidNum,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_MidNum,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidNum,
+ WB_MidLetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidNum,
+ WB_Other,
+ WB_MidNumLet,
+ WB_Other,
+ WB_MidLetter,
+ WB_MidNum,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ExtendNumLet,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Katakana,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Regional_Indicator,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_Other
};
-#endif
+#endif /* defined(PERL_IN_REGEXEC_C) */
-#ifndef PERL_IN_XSUB_RE
+#if defined(PERL_IN_PERL_C)
-static const UV _Perl_IDCont_invlist[] = {
- 1143, /* Number of elements */
+static const UV XPerlSpace_invlist[] = { /* for EBCDIC POSIX-BC */
+ 23, /* Number of elements */
148565664, /* Version and data structure type */
1, /* 0 if the list starts at 0;
1 if it starts at the element beyond 0 */
- 0,
- 48,
- 58,
- 65,
- 91,
- 95,
- 96,
- 97,
- 123,
- 170,
- 171,
- 181,
- 182,
- 186,
- 187,
- 192,
- 215,
- 216,
- 247,
- 248,
- 706,
- 710,
- 722,
- 736,
- 741,
- 748,
- 749,
- 750,
- 751,
- 768,
- 885,
- 886,
- 888,
- 891,
- 894,
- 902,
- 903,
- 904,
- 907,
- 908,
- 909,
- 910,
- 930,
- 931,
- 1014,
- 1015,
- 1154,
- 1155,
- 1160,
- 1162,
- 1320,
- 1329,
- 1367,
- 1369,
- 1370,
- 1377,
- 1416,
- 1425,
- 1470,
- 1471,
- 1472,
- 1473,
- 1475,
- 1476,
- 1478,
- 1479,
- 1480,
- 1488,
- 1515,
- 1520,
- 1523,
- 1552,
- 1563,
- 1568,
- 1642,
- 1646,
- 1748,
- 1749,
- 1757,
- 1759,
- 1769,
- 1770,
- 1789,
- 1791,
- 1792,
- 1808,
- 1867,
- 1869,
- 1970,
- 1984,
- 2038,
- 2042,
- 2043,
- 2048,
- 2094,
- 2112,
- 2140,
- 2208,
- 2209,
- 2210,
- 2221,
- 2276,
- 2303,
- 2304,
- 2404,
- 2406,
- 2416,
- 2417,
- 2424,
- 2425,
- 2432,
- 2433,
- 2436,
- 2437,
- 2445,
- 2447,
- 2449,
- 2451,
- 2473,
- 2474,
- 2481,
- 2482,
- 2483,
- 2486,
- 2490,
- 2492,
- 2501,
- 2503,
- 2505,
- 2507,
- 2511,
- 2519,
- 2520,
- 2524,
- 2526,
- 2527,
- 2532,
- 2534,
- 2546,
- 2561,
- 2564,
- 2565,
- 2571,
- 2575,
- 2577,
- 2579,
- 2601,
- 2602,
- 2609,
- 2610,
- 2612,
- 2613,
- 2615,
- 2616,
- 2618,
- 2620,
- 2621,
- 2622,
- 2627,
- 2631,
- 2633,
- 2635,
- 2638,
- 2641,
- 2642,
- 2649,
- 2653,
- 2654,
- 2655,
- 2662,
- 2678,
- 2689,
- 2692,
- 2693,
- 2702,
- 2703,
- 2706,
- 2707,
- 2729,
- 2730,
- 2737,
- 2738,
- 2740,
- 2741,
- 2746,
- 2748,
- 2758,
- 2759,
- 2762,
- 2763,
- 2766,
- 2768,
- 2769,
- 2784,
- 2788,
- 2790,
- 2800,
- 2817,
- 2820,
- 2821,
- 2829,
- 2831,
- 2833,
- 2835,
- 2857,
- 2858,
- 2865,
- 2866,
- 2868,
- 2869,
- 2874,
- 2876,
- 2885,
- 2887,
- 2889,
- 2891,
- 2894,
- 2902,
- 2904,
- 2908,
- 2910,
- 2911,
- 2916,
- 2918,
- 2928,
- 2929,
- 2930,
- 2946,
- 2948,
- 2949,
- 2955,
- 2958,
- 2961,
- 2962,
- 2966,
- 2969,
- 2971,
- 2972,
- 2973,
- 2974,
- 2976,
- 2979,
- 2981,
- 2984,
- 2987,
- 2990,
- 3002,
- 3006,
- 3011,
- 3014,
- 3017,
- 3018,
- 3022,
- 3024,
- 3025,
- 3031,
- 3032,
- 3046,
- 3056,
- 3073,
- 3076,
- 3077,
- 3085,
- 3086,
- 3089,
- 3090,
- 3113,
- 3114,
- 3124,
- 3125,
- 3130,
- 3133,
- 3141,
- 3142,
- 3145,
- 3146,
- 3150,
- 3157,
- 3159,
- 3160,
- 3162,
- 3168,
- 3172,
- 3174,
- 3184,
- 3202,
- 3204,
- 3205,
- 3213,
- 3214,
- 3217,
- 3218,
- 3241,
- 3242,
- 3252,
- 3253,
- 3258,
- 3260,
- 3269,
- 3270,
- 3273,
- 3274,
- 3278,
- 3285,
- 3287,
- 3294,
- 3295,
- 3296,
- 3300,
- 3302,
- 3312,
- 3313,
- 3315,
- 3330,
- 3332,
- 3333,
- 3341,
- 3342,
- 3345,
- 3346,
- 3387,
- 3389,
- 3397,
- 3398,
- 3401,
- 3402,
- 3407,
- 3415,
- 3416,
- 3424,
- 3428,
- 3430,
- 3440,
- 3450,
- 3456,
- 3458,
- 3460,
- 3461,
- 3479,
- 3482,
- 3506,
- 3507,
- 3516,
- 3517,
- 3518,
- 3520,
- 3527,
- 3530,
- 3531,
- 3535,
- 3541,
- 3542,
- 3543,
- 3544,
- 3552,
- 3570,
- 3572,
- 3585,
- 3643,
- 3648,
- 3663,
- 3664,
- 3674,
- 3713,
- 3715,
- 3716,
- 3717,
- 3719,
- 3721,
- 3722,
- 3723,
- 3725,
- 3726,
- 3732,
- 3736,
- 3737,
- 3744,
- 3745,
- 3748,
- 3749,
- 3750,
- 3751,
- 3752,
- 3754,
- 3756,
- 3757,
- 3770,
- 3771,
- 3774,
- 3776,
- 3781,
- 3782,
- 3783,
- 3784,
- 3790,
- 3792,
- 3802,
- 3804,
- 3808,
- 3840,
- 3841,
- 3864,
- 3866,
- 3872,
- 3882,
- 3893,
- 3894,
- 3895,
- 3896,
- 3897,
- 3898,
- 3902,
- 3912,
- 3913,
- 3949,
- 3953,
- 3973,
- 3974,
- 3992,
- 3993,
- 4029,
- 4038,
- 4039,
- 4096,
- 4170,
- 4176,
- 4254,
- 4256,
- 4294,
- 4295,
- 4296,
- 4301,
- 4302,
- 4304,
- 4347,
- 4348,
- 4681,
- 4682,
- 4686,
- 4688,
- 4695,
- 4696,
- 4697,
- 4698,
- 4702,
- 4704,
- 4745,
- 4746,
- 4750,
- 4752,
- 4785,
- 4786,
- 4790,
- 4792,
- 4799,
- 4800,
- 4801,
- 4802,
- 4806,
- 4808,
- 4823,
- 4824,
- 4881,
- 4882,
- 4886,
- 4888,
- 4955,
- 4957,
- 4960,
- 4992,
- 5008,
- 5024,
- 5109,
- 5121,
- 5741,
- 5743,
- 5760,
- 5761,
- 5787,
- 5792,
- 5867,
- 5870,
- 5873,
- 5888,
- 5901,
- 5902,
- 5909,
- 5920,
- 5941,
- 5952,
- 5972,
- 5984,
- 5997,
- 5998,
- 6001,
- 6002,
- 6004,
- 6016,
- 6100,
- 6103,
- 6104,
- 6108,
- 6110,
- 6112,
- 6122,
- 6155,
- 6158,
- 6160,
- 6170,
- 6176,
- 6264,
- 6272,
- 6315,
- 6320,
- 6390,
- 6400,
- 6429,
- 6432,
- 6444,
- 6448,
- 6460,
- 6470,
- 6510,
- 6512,
- 6517,
- 6528,
- 6572,
- 6576,
- 6602,
- 6608,
- 6618,
- 6656,
- 6684,
- 6688,
- 6751,
- 6752,
- 6781,
- 6783,
- 6794,
- 6800,
- 6810,
- 6823,
- 6824,
- 6912,
- 6988,
- 6992,
- 7002,
- 7019,
- 7028,
- 7040,
- 7156,
- 7168,
- 7224,
- 7232,
- 7242,
- 7245,
- 7294,
- 7376,
- 7379,
- 7380,
- 7415,
- 7424,
- 7655,
- 7676,
- 7958,
- 7960,
- 7966,
- 7968,
- 8006,
- 8008,
- 8014,
- 8016,
- 8024,
- 8025,
- 8026,
- 8027,
- 8028,
- 8029,
- 8030,
- 8031,
- 8062,
- 8064,
- 8117,
- 8118,
- 8125,
- 8126,
- 8127,
- 8130,
- 8133,
- 8134,
- 8141,
- 8144,
- 8148,
- 8150,
- 8156,
- 8160,
- 8173,
- 8178,
- 8181,
- 8182,
- 8189,
- 8255,
- 8257,
- 8276,
- 8277,
- 8305,
- 8306,
- 8319,
- 8320,
- 8336,
- 8349,
- 8400,
- 8413,
- 8417,
- 8418,
- 8421,
- 8433,
- 8450,
- 8451,
- 8455,
- 8456,
- 8458,
- 8468,
- 8469,
- 8470,
- 8473,
- 8478,
- 8484,
- 8485,
- 8486,
- 8487,
- 8488,
- 8489,
- 8490,
- 8494,
- 8495,
- 8506,
- 8508,
- 8512,
- 8517,
- 8522,
- 8526,
- 8527,
- 8544,
- 8585,
- 11264,
- 11311,
- 11312,
- 11359,
- 11360,
- 11493,
- 11499,
- 11508,
- 11520,
- 11558,
- 11559,
- 11560,
- 11565,
- 11566,
- 11568,
- 11624,
- 11631,
- 11632,
- 11647,
- 11671,
- 11680,
- 11687,
- 11688,
- 11695,
- 11696,
- 11703,
- 11704,
- 11711,
- 11712,
- 11719,
- 11720,
- 11727,
- 11728,
- 11735,
- 11736,
- 11743,
- 11744,
- 11776,
- 12293,
- 12296,
- 12321,
- 12336,
- 12337,
- 12342,
- 12344,
- 12349,
- 12353,
- 12439,
- 12441,
- 12443,
- 12445,
- 12448,
- 12449,
- 12539,
- 12540,
- 12544,
- 12549,
- 12590,
- 12593,
- 12687,
- 12704,
- 12731,
- 12784,
- 12800,
- 13312,
- 19894,
- 19968,
- 40909,
- 40960,
- 42125,
- 42192,
- 42238,
- 42240,
- 42509,
- 42512,
- 42540,
- 42560,
- 42608,
- 42612,
- 42622,
- 42623,
- 42648,
- 42655,
- 42738,
- 42775,
- 42784,
- 42786,
- 42889,
- 42891,
- 42895,
- 42896,
- 42900,
- 42912,
- 42923,
- 43000,
- 43048,
- 43072,
- 43124,
- 43136,
- 43205,
- 43216,
- 43226,
- 43232,
- 43256,
- 43259,
- 43260,
- 43264,
- 43310,
- 43312,
- 43348,
- 43360,
- 43389,
- 43392,
- 43457,
- 43471,
- 43482,
- 43520,
- 43575,
- 43584,
- 43598,
- 43600,
- 43610,
- 43616,
- 43639,
- 43642,
- 43644,
- 43648,
- 43715,
- 43739,
- 43742,
- 43744,
- 43760,
- 43762,
- 43767,
- 43777,
- 43783,
- 43785,
- 43791,
- 43793,
- 43799,
- 43808,
- 43815,
- 43816,
- 43823,
- 43968,
- 44011,
- 44012,
- 44014,
- 44016,
- 44026,
- 44032,
- 55204,
- 55216,
- 55239,
- 55243,
- 55292,
- 63744,
- 64110,
- 64112,
- 64218,
- 64256,
- 64263,
- 64275,
- 64280,
- 64285,
- 64297,
- 64298,
- 64311,
- 64312,
- 64317,
- 64318,
- 64319,
- 64320,
- 64322,
- 64323,
- 64325,
- 64326,
- 64434,
- 64467,
- 64606,
- 64612,
- 64830,
- 64848,
- 64912,
- 64914,
- 64968,
- 65008,
- 65018,
- 65024,
- 65040,
- 65056,
- 65063,
- 65075,
- 65077,
- 65101,
- 65104,
- 65137,
- 65138,
- 65139,
- 65140,
- 65143,
- 65144,
- 65145,
- 65146,
- 65147,
- 65148,
- 65149,
- 65150,
- 65151,
- 65277,
- 65296,
- 65306,
- 65313,
- 65339,
- 65343,
- 65344,
- 65345,
- 65371,
- 65382,
- 65471,
- 65474,
- 65480,
- 65482,
- 65488,
- 65490,
- 65496,
- 65498,
- 65501,
- 65536,
- 65548,
- 65549,
- 65575,
- 65576,
- 65595,
- 65596,
- 65598,
- 65599,
- 65614,
- 65616,
- 65630,
- 65664,
- 65787,
- 65856,
- 65909,
- 66045,
- 66046,
- 66176,
- 66205,
- 66208,
- 66257,
- 66304,
- 66335,
- 66352,
- 66379,
- 66432,
- 66462,
- 66464,
- 66500,
- 66504,
- 66512,
- 66513,
- 66518,
- 66560,
- 66718,
- 66720,
- 66730,
- 67584,
- 67590,
- 67592,
- 67593,
- 67594,
- 67638,
- 67639,
- 67641,
- 67644,
- 67645,
- 67647,
- 67670,
- 67840,
- 67862,
- 67872,
- 67898,
- 67968,
- 68024,
- 68030,
- 68032,
- 68096,
- 68100,
- 68101,
- 68103,
- 68108,
- 68116,
- 68117,
- 68120,
- 68121,
- 68148,
- 68152,
- 68155,
- 68159,
- 68160,
- 68192,
- 68221,
- 68352,
- 68406,
- 68416,
- 68438,
- 68448,
- 68467,
- 68608,
- 68681,
- 69632,
- 69703,
- 69734,
- 69744,
- 69760,
- 69819,
- 69840,
- 69865,
- 69872,
- 69882,
- 69888,
- 69941,
- 69942,
- 69952,
- 70016,
- 70085,
- 70096,
- 70106,
- 71296,
- 71352,
- 71360,
- 71370,
- 73728,
- 74607,
- 74752,
- 74851,
- 77824,
- 78895,
- 92160,
- 92729,
- 93952,
- 94021,
- 94032,
- 94079,
- 94095,
- 94112,
- 110592,
- 110594,
- 119141,
- 119146,
- 119149,
- 119155,
- 119163,
- 119171,
- 119173,
- 119180,
- 119210,
- 119214,
- 119362,
- 119365,
- 119808,
- 119893,
- 119894,
- 119965,
- 119966,
- 119968,
- 119970,
- 119971,
- 119973,
- 119975,
- 119977,
- 119981,
- 119982,
- 119994,
- 119995,
- 119996,
- 119997,
- 120004,
- 120005,
- 120070,
- 120071,
- 120075,
- 120077,
- 120085,
- 120086,
- 120093,
- 120094,
- 120122,
- 120123,
- 120127,
- 120128,
- 120133,
- 120134,
- 120135,
- 120138,
- 120145,
- 120146,
- 120486,
- 120488,
- 120513,
- 120514,
- 120539,
- 120540,
- 120571,
- 120572,
- 120597,
- 120598,
- 120629,
- 120630,
- 120655,
- 120656,
- 120687,
- 120688,
- 120713,
- 120714,
- 120745,
- 120746,
- 120771,
- 120772,
- 120780,
- 120782,
- 120832,
- 126464,
- 126468,
- 126469,
- 126496,
- 126497,
- 126499,
- 126500,
- 126501,
- 126503,
- 126504,
- 126505,
- 126515,
- 126516,
- 126520,
- 126521,
- 126522,
- 126523,
- 126524,
- 126530,
- 126531,
- 126535,
- 126536,
- 126537,
- 126538,
- 126539,
- 126540,
- 126541,
- 126544,
- 126545,
- 126547,
- 126548,
- 126549,
- 126551,
- 126552,
- 126553,
- 126554,
- 126555,
- 126556,
- 126557,
- 126558,
- 126559,
- 126560,
- 126561,
- 126563,
- 126564,
- 126565,
- 126567,
- 126571,
- 126572,
- 126579,
- 126580,
- 126584,
- 126585,
- 126589,
- 126590,
- 126591,
- 126592,
- 126602,
- 126603,
- 126620,
- 126625,
- 126628,
- 126629,
- 126634,
- 126635,
- 126652,
- 131072,
- 173783,
- 173824,
- 177973,
- 177984,
- 178206,
- 194560,
- 195102,
- 917760,
- 918000
+ 0x0,
+ 0x5,
+ 0x6,
+ 0xB,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x40,
+ 0x42,
+ 0x1680,
+ 0x1681,
+ 0x2000,
+ 0x200B,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x3000,
+ 0x3001
};
-#endif
+static const UV XPosixAlnum_invlist[] = { /* for EBCDIC POSIX-BC */
+ 1283, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC0,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xFA,
+ 0xFC,
+ 0xFD,
+ 0xFE,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x5B0,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x658,
+ 0x659,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6E1,
+ 0x6E9,
+ 0x6ED,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x740,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x818,
+ 0x81A,
+ 0x82D,
+ 0x840,
+ 0x859,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x8EA,
+ 0x8F0,
+ 0x93C,
+ 0x93D,
+ 0x94D,
+ 0x94E,
+ 0x951,
+ 0x955,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BD,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CD,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4D,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABD,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACD,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3D,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4D,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCD,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4D,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBD,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCD,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4D,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE47,
+ 0xE4D,
+ 0xE4E,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xECD,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF20,
+ 0xF2A,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF82,
+ 0xF88,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0x1000,
+ 0x1037,
+ 0x1038,
+ 0x1039,
+ 0x103B,
+ 0x104A,
+ 0x1050,
+ 0x1063,
+ 0x1065,
+ 0x1069,
+ 0x106E,
+ 0x1087,
+ 0x108E,
+ 0x108F,
+ 0x1090,
+ 0x109A,
+ 0x109C,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135F,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1714,
+ 0x1720,
+ 0x1734,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17B4,
+ 0x17B6,
+ 0x17C9,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x17E0,
+ 0x17EA,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x1939,
+ 0x1946,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A61,
+ 0x1A75,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1B00,
+ 0x1B34,
+ 0x1B35,
+ 0x1B44,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B80,
+ 0x1BAA,
+ 0x1BAC,
+ 0x1BE6,
+ 0x1BE7,
+ 0x1BF2,
+ 0x1C00,
+ 0x1C36,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C7E,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF4,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DE7,
+ 0x1DF5,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x302A,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA674,
+ 0xA67C,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F0,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C4,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA92B,
+ 0xA930,
+ 0xA953,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9B3,
+ 0xA9B4,
+ 0xA9C0,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAABF,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF6,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11046,
+ 0x11066,
+ 0x11070,
+ 0x11082,
+ 0x110B9,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11133,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11173,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C0,
+ 0x111C1,
+ 0x111C5,
+ 0x111D0,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11235,
+ 0x11237,
+ 0x11238,
+ 0x112B0,
+ 0x112E9,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133D,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134D,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11480,
+ 0x114C2,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115BF,
+ 0x11600,
+ 0x1163F,
+ 0x11640,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B6,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9E,
+ 0x1BC9F,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E
+};
+
+static const UV XPosixAlpha_invlist[] = { /* for EBCDIC POSIX-BC */
+ 1225, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC0,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFC,
+ 0xFD,
+ 0xFE,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x345,
+ 0x346,
+ 0x370,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x48A,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x5B0,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x658,
+ 0x659,
+ 0x660,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6E1,
+ 0x6E9,
+ 0x6ED,
+ 0x6F0,
+ 0x6FA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x740,
+ 0x74D,
+ 0x7B2,
+ 0x7CA,
+ 0x7EB,
+ 0x7F4,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x818,
+ 0x81A,
+ 0x82D,
+ 0x840,
+ 0x859,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x8EA,
+ 0x8F0,
+ 0x93C,
+ 0x93D,
+ 0x94D,
+ 0x94E,
+ 0x951,
+ 0x955,
+ 0x964,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BD,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CD,
+ 0x9CE,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9F0,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4D,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA70,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABD,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACD,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3D,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4D,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCD,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4D,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBD,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCD,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4D,
+ 0xD4E,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE47,
+ 0xE4D,
+ 0xE4E,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xECD,
+ 0xECE,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF40,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF82,
+ 0xF88,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0x1000,
+ 0x1037,
+ 0x1038,
+ 0x1039,
+ 0x103B,
+ 0x1040,
+ 0x1050,
+ 0x1063,
+ 0x1065,
+ 0x1069,
+ 0x106E,
+ 0x1087,
+ 0x108E,
+ 0x108F,
+ 0x109C,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135F,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1714,
+ 0x1720,
+ 0x1734,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17B4,
+ 0x17B6,
+ 0x17C9,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DD,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x1939,
+ 0x1950,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A61,
+ 0x1A75,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1B00,
+ 0x1B34,
+ 0x1B35,
+ 0x1B44,
+ 0x1B45,
+ 0x1B4C,
+ 0x1B80,
+ 0x1BAA,
+ 0x1BAC,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1BE6,
+ 0x1BE7,
+ 0x1BF2,
+ 0x1C00,
+ 0x1C36,
+ 0x1C4D,
+ 0x1C50,
+ 0x1C5A,
+ 0x1C7E,
+ 0x1CE9,
+ 0x1CED,
+ 0x1CEE,
+ 0x1CF4,
+ 0x1CF5,
+ 0x1CF7,
+ 0x1D00,
+ 0x1DC0,
+ 0x1DE7,
+ 0x1DF5,
+ 0x1E00,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CEF,
+ 0x2CF2,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D80,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x302A,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA620,
+ 0xA62A,
+ 0xA62C,
+ 0xA640,
+ 0xA66F,
+ 0xA674,
+ 0xA67C,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F0,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA802,
+ 0xA803,
+ 0xA806,
+ 0xA807,
+ 0xA80B,
+ 0xA80C,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C4,
+ 0xA8F2,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA90A,
+ 0xA92B,
+ 0xA930,
+ 0xA953,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9B3,
+ 0xA9B4,
+ 0xA9C0,
+ 0xA9CF,
+ 0xA9D0,
+ 0xA9E0,
+ 0xA9E5,
+ 0xA9E6,
+ 0xA9F0,
+ 0xA9FA,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAA7B,
+ 0xAA7E,
+ 0xAABF,
+ 0xAAC0,
+ 0xAAC1,
+ 0xAAC2,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF6,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE5,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11046,
+ 0x11082,
+ 0x110B9,
+ 0x110D0,
+ 0x110E9,
+ 0x11100,
+ 0x11133,
+ 0x11150,
+ 0x11173,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C0,
+ 0x111C1,
+ 0x111C5,
+ 0x111DA,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11235,
+ 0x11237,
+ 0x11238,
+ 0x112B0,
+ 0x112E9,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133D,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134D,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11480,
+ 0x114C2,
+ 0x114C4,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115BF,
+ 0x11600,
+ 0x1163F,
+ 0x11640,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11680,
+ 0x116B6,
+ 0x118A0,
+ 0x118E0,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F93,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9E,
+ 0x1BC9F,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E
+};
+
+static const UV XPosixBlank_invlist[] = { /* for EBCDIC POSIX-BC */
+ 15, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x5,
+ 0x6,
+ 0x40,
+ 0x42,
+ 0x1680,
+ 0x1681,
+ 0x2000,
+ 0x200B,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x3000,
+ 0x3001
+};
+
+static const UV XPosixCntrl_invlist[] = { /* for EBCDIC POSIX-BC */
+ 4, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 0, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x40,
+ 0x5F,
+ 0x60
+};
+
+static const UV XPosixDigit_invlist[] = { /* for EBCDIC POSIX-BC */
+ 101, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0xF0,
+ 0xFA,
+ 0x660,
+ 0x66A,
+ 0x6F0,
+ 0x6FA,
+ 0x7C0,
+ 0x7CA,
+ 0x966,
+ 0x970,
+ 0x9E6,
+ 0x9F0,
+ 0xA66,
+ 0xA70,
+ 0xAE6,
+ 0xAF0,
+ 0xB66,
+ 0xB70,
+ 0xBE6,
+ 0xBF0,
+ 0xC66,
+ 0xC70,
+ 0xCE6,
+ 0xCF0,
+ 0xD66,
+ 0xD70,
+ 0xDE6,
+ 0xDF0,
+ 0xE50,
+ 0xE5A,
+ 0xED0,
+ 0xEDA,
+ 0xF20,
+ 0xF2A,
+ 0x1040,
+ 0x104A,
+ 0x1090,
+ 0x109A,
+ 0x17E0,
+ 0x17EA,
+ 0x1810,
+ 0x181A,
+ 0x1946,
+ 0x1950,
+ 0x19D0,
+ 0x19DA,
+ 0x1A80,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1B50,
+ 0x1B5A,
+ 0x1BB0,
+ 0x1BBA,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C50,
+ 0x1C5A,
+ 0xA620,
+ 0xA62A,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA900,
+ 0xA90A,
+ 0xA9D0,
+ 0xA9DA,
+ 0xA9F0,
+ 0xA9FA,
+ 0xAA50,
+ 0xAA5A,
+ 0xABF0,
+ 0xABFA,
+ 0xFF10,
+ 0xFF1A,
+ 0x104A0,
+ 0x104AA,
+ 0x11066,
+ 0x11070,
+ 0x110F0,
+ 0x110FA,
+ 0x11136,
+ 0x11140,
+ 0x111D0,
+ 0x111DA,
+ 0x112F0,
+ 0x112FA,
+ 0x114D0,
+ 0x114DA,
+ 0x11650,
+ 0x1165A,
+ 0x116C0,
+ 0x116CA,
+ 0x118E0,
+ 0x118EA,
+ 0x16A60,
+ 0x16A6A,
+ 0x16B50,
+ 0x16B5A,
+ 0x1D7CE,
+ 0x1D800
+};
+
+static const UV XPosixGraph_invlist[] = { /* for EBCDIC POSIX-BC */
+ 1211, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x5F,
+ 0x60,
+ 0x378,
+ 0x37A,
+ 0x380,
+ 0x384,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x560,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58B,
+ 0x58D,
+ 0x590,
+ 0x591,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F5,
+ 0x600,
+ 0x61D,
+ 0x61E,
+ 0x70E,
+ 0x70F,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x830,
+ 0x83F,
+ 0x840,
+ 0x85C,
+ 0x85E,
+ 0x85F,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9FC,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF2,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB78,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBFB,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC78,
+ 0xC80,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD76,
+ 0xD79,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF5,
+ 0xE01,
+ 0xE3B,
+ 0xE3F,
+ 0xE5C,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFBE,
+ 0xFCD,
+ 0xFCE,
+ 0xFDB,
+ 0x1000,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x137D,
+ 0x1380,
+ 0x139A,
+ 0x13A0,
+ 0x13F5,
+ 0x1400,
+ 0x1680,
+ 0x1681,
+ 0x169D,
+ 0x16A0,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1737,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x17F0,
+ 0x17FA,
+ 0x1800,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1940,
+ 0x1941,
+ 0x1944,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DB,
+ 0x19DE,
+ 0x1A1C,
+ 0x1A1E,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA0,
+ 0x1AAE,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B7D,
+ 0x1B80,
+ 0x1BF4,
+ 0x1BFC,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C80,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FDD,
+ 0x1FF0,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFF,
+ 0x200B,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20BE,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218A,
+ 0x2190,
+ 0x23FB,
+ 0x2400,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B98,
+ 0x2BBA,
+ 0x2BBD,
+ 0x2BC9,
+ 0x2BCA,
+ 0x2BD2,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CF4,
+ 0x2CF9,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D71,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E43,
+ 0x2E80,
+ 0x2E9A,
+ 0x2E9B,
+ 0x2EF4,
+ 0x2F00,
+ 0x2FD6,
+ 0x2FF0,
+ 0x2FFC,
+ 0x3001,
+ 0x3040,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x3190,
+ 0x31BB,
+ 0x31C0,
+ 0x31E4,
+ 0x31F0,
+ 0x321F,
+ 0x3220,
+ 0x32FF,
+ 0x3300,
+ 0x4DB6,
+ 0x4DC0,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F8,
+ 0xA700,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA82C,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C5,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8FC,
+ 0xA900,
+ 0xA954,
+ 0xA95F,
+ 0xA97D,
+ 0xA980,
+ 0xA9CE,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9DE,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA5C,
+ 0xAAC3,
+ 0xAADB,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xE000,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBC2,
+ 0xFBD3,
+ 0xFD40,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFE,
+ 0xFE00,
+ 0xFE1A,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE30,
+ 0xFE53,
+ 0xFE54,
+ 0xFE67,
+ 0xFE68,
+ 0xFE6C,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF01,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFE0,
+ 0xFFE7,
+ 0xFFE8,
+ 0xFFEF,
+ 0xFFF9,
+ 0xFFFE,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10100,
+ 0x10103,
+ 0x10107,
+ 0x10134,
+ 0x10137,
+ 0x1018D,
+ 0x10190,
+ 0x1019C,
+ 0x101A0,
+ 0x101A1,
+ 0x101D0,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102FC,
+ 0x10300,
+ 0x10324,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x1039F,
+ 0x103C4,
+ 0x103C8,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x1056F,
+ 0x10570,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10857,
+ 0x1089F,
+ 0x108A7,
+ 0x108B0,
+ 0x10900,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A48,
+ 0x10A50,
+ 0x10A59,
+ 0x10A60,
+ 0x10AA0,
+ 0x10AC0,
+ 0x10AE7,
+ 0x10AEB,
+ 0x10AF7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B39,
+ 0x10B56,
+ 0x10B58,
+ 0x10B73,
+ 0x10B78,
+ 0x10B92,
+ 0x10B99,
+ 0x10B9D,
+ 0x10BA9,
+ 0x10BB0,
+ 0x10C00,
+ 0x10C49,
+ 0x10E60,
+ 0x10E7F,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11070,
+ 0x1107F,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11144,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111C9,
+ 0x111CD,
+ 0x111CE,
+ 0x111D0,
+ 0x111DB,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1123E,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115CA,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B46,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B5B,
+ 0x16B62,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1DE,
+ 0x1D200,
+ 0x1D246,
+ 0x1D300,
+ 0x1D357,
+ 0x1D360,
+ 0x1D372,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1EEF0,
+ 0x1EEF2,
+ 0x1F000,
+ 0x1F02C,
+ 0x1F030,
+ 0x1F094,
+ 0x1F0A0,
+ 0x1F0AF,
+ 0x1F0B1,
+ 0x1F0C0,
+ 0x1F0C1,
+ 0x1F0D0,
+ 0x1F0D1,
+ 0x1F0F6,
+ 0x1F100,
+ 0x1F10D,
+ 0x1F110,
+ 0x1F12F,
+ 0x1F130,
+ 0x1F16C,
+ 0x1F170,
+ 0x1F19B,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23B,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F300,
+ 0x1F32D,
+ 0x1F330,
+ 0x1F37E,
+ 0x1F380,
+ 0x1F3CF,
+ 0x1F3D4,
+ 0x1F3F8,
+ 0x1F400,
+ 0x1F4FF,
+ 0x1F500,
+ 0x1F54B,
+ 0x1F550,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F5A4,
+ 0x1F5A5,
+ 0x1F643,
+ 0x1F645,
+ 0x1F6D0,
+ 0x1F6E0,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6F4,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xF0000,
+ 0xFFFFE,
+ 0x100000,
+ 0x10FFFE
+};
+
+static const UV XPosixLower_invlist[] = { /* for EBCDIC POSIX-BC */
+ 1279, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x70,
+ 0x71,
+ 0x81,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xC0,
+ 0xC1,
+ 0xCB,
+ 0xD0,
+ 0xDB,
+ 0xDD,
+ 0xDE,
+ 0xE0,
+ 0x101,
+ 0x102,
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x106,
+ 0x107,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x10E,
+ 0x10F,
+ 0x110,
+ 0x111,
+ 0x112,
+ 0x113,
+ 0x114,
+ 0x115,
+ 0x116,
+ 0x117,
+ 0x118,
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x11C,
+ 0x11D,
+ 0x11E,
+ 0x11F,
+ 0x120,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x124,
+ 0x125,
+ 0x126,
+ 0x127,
+ 0x128,
+ 0x129,
+ 0x12A,
+ 0x12B,
+ 0x12C,
+ 0x12D,
+ 0x12E,
+ 0x12F,
+ 0x130,
+ 0x131,
+ 0x132,
+ 0x133,
+ 0x134,
+ 0x135,
+ 0x136,
+ 0x137,
+ 0x139,
+ 0x13A,
+ 0x13B,
+ 0x13C,
+ 0x13D,
+ 0x13E,
+ 0x13F,
+ 0x140,
+ 0x141,
+ 0x142,
+ 0x143,
+ 0x144,
+ 0x145,
+ 0x146,
+ 0x147,
+ 0x148,
+ 0x14A,
+ 0x14B,
+ 0x14C,
+ 0x14D,
+ 0x14E,
+ 0x14F,
+ 0x150,
+ 0x151,
+ 0x152,
+ 0x153,
+ 0x154,
+ 0x155,
+ 0x156,
+ 0x157,
+ 0x158,
+ 0x159,
+ 0x15A,
+ 0x15B,
+ 0x15C,
+ 0x15D,
+ 0x15E,
+ 0x15F,
+ 0x160,
+ 0x161,
+ 0x162,
+ 0x163,
+ 0x164,
+ 0x165,
+ 0x166,
+ 0x167,
+ 0x168,
+ 0x169,
+ 0x16A,
+ 0x16B,
+ 0x16C,
+ 0x16D,
+ 0x16E,
+ 0x16F,
+ 0x170,
+ 0x171,
+ 0x172,
+ 0x173,
+ 0x174,
+ 0x175,
+ 0x176,
+ 0x177,
+ 0x178,
+ 0x17A,
+ 0x17B,
+ 0x17C,
+ 0x17D,
+ 0x17E,
+ 0x181,
+ 0x183,
+ 0x184,
+ 0x185,
+ 0x186,
+ 0x188,
+ 0x189,
+ 0x18C,
+ 0x18E,
+ 0x192,
+ 0x193,
+ 0x195,
+ 0x196,
+ 0x199,
+ 0x19C,
+ 0x19E,
+ 0x19F,
+ 0x1A1,
+ 0x1A2,
+ 0x1A3,
+ 0x1A4,
+ 0x1A5,
+ 0x1A6,
+ 0x1A8,
+ 0x1A9,
+ 0x1AA,
+ 0x1AC,
+ 0x1AD,
+ 0x1AE,
+ 0x1B0,
+ 0x1B1,
+ 0x1B4,
+ 0x1B5,
+ 0x1B6,
+ 0x1B7,
+ 0x1B9,
+ 0x1BB,
+ 0x1BD,
+ 0x1C0,
+ 0x1C6,
+ 0x1C7,
+ 0x1C9,
+ 0x1CA,
+ 0x1CC,
+ 0x1CD,
+ 0x1CE,
+ 0x1CF,
+ 0x1D0,
+ 0x1D1,
+ 0x1D2,
+ 0x1D3,
+ 0x1D4,
+ 0x1D5,
+ 0x1D6,
+ 0x1D7,
+ 0x1D8,
+ 0x1D9,
+ 0x1DA,
+ 0x1DB,
+ 0x1DC,
+ 0x1DE,
+ 0x1DF,
+ 0x1E0,
+ 0x1E1,
+ 0x1E2,
+ 0x1E3,
+ 0x1E4,
+ 0x1E5,
+ 0x1E6,
+ 0x1E7,
+ 0x1E8,
+ 0x1E9,
+ 0x1EA,
+ 0x1EB,
+ 0x1EC,
+ 0x1ED,
+ 0x1EE,
+ 0x1EF,
+ 0x1F1,
+ 0x1F3,
+ 0x1F4,
+ 0x1F5,
+ 0x1F6,
+ 0x1F9,
+ 0x1FA,
+ 0x1FB,
+ 0x1FC,
+ 0x1FD,
+ 0x1FE,
+ 0x1FF,
+ 0x200,
+ 0x201,
+ 0x202,
+ 0x203,
+ 0x204,
+ 0x205,
+ 0x206,
+ 0x207,
+ 0x208,
+ 0x209,
+ 0x20A,
+ 0x20B,
+ 0x20C,
+ 0x20D,
+ 0x20E,
+ 0x20F,
+ 0x210,
+ 0x211,
+ 0x212,
+ 0x213,
+ 0x214,
+ 0x215,
+ 0x216,
+ 0x217,
+ 0x218,
+ 0x219,
+ 0x21A,
+ 0x21B,
+ 0x21C,
+ 0x21D,
+ 0x21E,
+ 0x21F,
+ 0x220,
+ 0x221,
+ 0x222,
+ 0x223,
+ 0x224,
+ 0x225,
+ 0x226,
+ 0x227,
+ 0x228,
+ 0x229,
+ 0x22A,
+ 0x22B,
+ 0x22C,
+ 0x22D,
+ 0x22E,
+ 0x22F,
+ 0x230,
+ 0x231,
+ 0x232,
+ 0x233,
+ 0x23A,
+ 0x23C,
+ 0x23D,
+ 0x23F,
+ 0x241,
+ 0x242,
+ 0x243,
+ 0x247,
+ 0x248,
+ 0x249,
+ 0x24A,
+ 0x24B,
+ 0x24C,
+ 0x24D,
+ 0x24E,
+ 0x24F,
+ 0x294,
+ 0x295,
+ 0x2B9,
+ 0x2C0,
+ 0x2C2,
+ 0x2E0,
+ 0x2E5,
+ 0x345,
+ 0x346,
+ 0x371,
+ 0x372,
+ 0x373,
+ 0x374,
+ 0x377,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x390,
+ 0x391,
+ 0x3AC,
+ 0x3CF,
+ 0x3D0,
+ 0x3D2,
+ 0x3D5,
+ 0x3D8,
+ 0x3D9,
+ 0x3DA,
+ 0x3DB,
+ 0x3DC,
+ 0x3DD,
+ 0x3DE,
+ 0x3DF,
+ 0x3E0,
+ 0x3E1,
+ 0x3E2,
+ 0x3E3,
+ 0x3E4,
+ 0x3E5,
+ 0x3E6,
+ 0x3E7,
+ 0x3E8,
+ 0x3E9,
+ 0x3EA,
+ 0x3EB,
+ 0x3EC,
+ 0x3ED,
+ 0x3EE,
+ 0x3EF,
+ 0x3F4,
+ 0x3F5,
+ 0x3F6,
+ 0x3F8,
+ 0x3F9,
+ 0x3FB,
+ 0x3FD,
+ 0x430,
+ 0x460,
+ 0x461,
+ 0x462,
+ 0x463,
+ 0x464,
+ 0x465,
+ 0x466,
+ 0x467,
+ 0x468,
+ 0x469,
+ 0x46A,
+ 0x46B,
+ 0x46C,
+ 0x46D,
+ 0x46E,
+ 0x46F,
+ 0x470,
+ 0x471,
+ 0x472,
+ 0x473,
+ 0x474,
+ 0x475,
+ 0x476,
+ 0x477,
+ 0x478,
+ 0x479,
+ 0x47A,
+ 0x47B,
+ 0x47C,
+ 0x47D,
+ 0x47E,
+ 0x47F,
+ 0x480,
+ 0x481,
+ 0x482,
+ 0x48B,
+ 0x48C,
+ 0x48D,
+ 0x48E,
+ 0x48F,
+ 0x490,
+ 0x491,
+ 0x492,
+ 0x493,
+ 0x494,
+ 0x495,
+ 0x496,
+ 0x497,
+ 0x498,
+ 0x499,
+ 0x49A,
+ 0x49B,
+ 0x49C,
+ 0x49D,
+ 0x49E,
+ 0x49F,
+ 0x4A0,
+ 0x4A1,
+ 0x4A2,
+ 0x4A3,
+ 0x4A4,
+ 0x4A5,
+ 0x4A6,
+ 0x4A7,
+ 0x4A8,
+ 0x4A9,
+ 0x4AA,
+ 0x4AB,
+ 0x4AC,
+ 0x4AD,
+ 0x4AE,
+ 0x4AF,
+ 0x4B0,
+ 0x4B1,
+ 0x4B2,
+ 0x4B3,
+ 0x4B4,
+ 0x4B5,
+ 0x4B6,
+ 0x4B7,
+ 0x4B8,
+ 0x4B9,
+ 0x4BA,
+ 0x4BB,
+ 0x4BC,
+ 0x4BD,
+ 0x4BE,
+ 0x4BF,
+ 0x4C0,
+ 0x4C2,
+ 0x4C3,
+ 0x4C4,
+ 0x4C5,
+ 0x4C6,
+ 0x4C7,
+ 0x4C8,
+ 0x4C9,
+ 0x4CA,
+ 0x4CB,
+ 0x4CC,
+ 0x4CD,
+ 0x4CE,
+ 0x4D0,
+ 0x4D1,
+ 0x4D2,
+ 0x4D3,
+ 0x4D4,
+ 0x4D5,
+ 0x4D6,
+ 0x4D7,
+ 0x4D8,
+ 0x4D9,
+ 0x4DA,
+ 0x4DB,
+ 0x4DC,
+ 0x4DD,
+ 0x4DE,
+ 0x4DF,
+ 0x4E0,
+ 0x4E1,
+ 0x4E2,
+ 0x4E3,
+ 0x4E4,
+ 0x4E5,
+ 0x4E6,
+ 0x4E7,
+ 0x4E8,
+ 0x4E9,
+ 0x4EA,
+ 0x4EB,
+ 0x4EC,
+ 0x4ED,
+ 0x4EE,
+ 0x4EF,
+ 0x4F0,
+ 0x4F1,
+ 0x4F2,
+ 0x4F3,
+ 0x4F4,
+ 0x4F5,
+ 0x4F6,
+ 0x4F7,
+ 0x4F8,
+ 0x4F9,
+ 0x4FA,
+ 0x4FB,
+ 0x4FC,
+ 0x4FD,
+ 0x4FE,
+ 0x4FF,
+ 0x500,
+ 0x501,
+ 0x502,
+ 0x503,
+ 0x504,
+ 0x505,
+ 0x506,
+ 0x507,
+ 0x508,
+ 0x509,
+ 0x50A,
+ 0x50B,
+ 0x50C,
+ 0x50D,
+ 0x50E,
+ 0x50F,
+ 0x510,
+ 0x511,
+ 0x512,
+ 0x513,
+ 0x514,
+ 0x515,
+ 0x516,
+ 0x517,
+ 0x518,
+ 0x519,
+ 0x51A,
+ 0x51B,
+ 0x51C,
+ 0x51D,
+ 0x51E,
+ 0x51F,
+ 0x520,
+ 0x521,
+ 0x522,
+ 0x523,
+ 0x524,
+ 0x525,
+ 0x526,
+ 0x527,
+ 0x528,
+ 0x529,
+ 0x52A,
+ 0x52B,
+ 0x52C,
+ 0x52D,
+ 0x52E,
+ 0x52F,
+ 0x530,
+ 0x561,
+ 0x588,
+ 0x1D00,
+ 0x1DC0,
+ 0x1E01,
+ 0x1E02,
+ 0x1E03,
+ 0x1E04,
+ 0x1E05,
+ 0x1E06,
+ 0x1E07,
+ 0x1E08,
+ 0x1E09,
+ 0x1E0A,
+ 0x1E0B,
+ 0x1E0C,
+ 0x1E0D,
+ 0x1E0E,
+ 0x1E0F,
+ 0x1E10,
+ 0x1E11,
+ 0x1E12,
+ 0x1E13,
+ 0x1E14,
+ 0x1E15,
+ 0x1E16,
+ 0x1E17,
+ 0x1E18,
+ 0x1E19,
+ 0x1E1A,
+ 0x1E1B,
+ 0x1E1C,
+ 0x1E1D,
+ 0x1E1E,
+ 0x1E1F,
+ 0x1E20,
+ 0x1E21,
+ 0x1E22,
+ 0x1E23,
+ 0x1E24,
+ 0x1E25,
+ 0x1E26,
+ 0x1E27,
+ 0x1E28,
+ 0x1E29,
+ 0x1E2A,
+ 0x1E2B,
+ 0x1E2C,
+ 0x1E2D,
+ 0x1E2E,
+ 0x1E2F,
+ 0x1E30,
+ 0x1E31,
+ 0x1E32,
+ 0x1E33,
+ 0x1E34,
+ 0x1E35,
+ 0x1E36,
+ 0x1E37,
+ 0x1E38,
+ 0x1E39,
+ 0x1E3A,
+ 0x1E3B,
+ 0x1E3C,
+ 0x1E3D,
+ 0x1E3E,
+ 0x1E3F,
+ 0x1E40,
+ 0x1E41,
+ 0x1E42,
+ 0x1E43,
+ 0x1E44,
+ 0x1E45,
+ 0x1E46,
+ 0x1E47,
+ 0x1E48,
+ 0x1E49,
+ 0x1E4A,
+ 0x1E4B,
+ 0x1E4C,
+ 0x1E4D,
+ 0x1E4E,
+ 0x1E4F,
+ 0x1E50,
+ 0x1E51,
+ 0x1E52,
+ 0x1E53,
+ 0x1E54,
+ 0x1E55,
+ 0x1E56,
+ 0x1E57,
+ 0x1E58,
+ 0x1E59,
+ 0x1E5A,
+ 0x1E5B,
+ 0x1E5C,
+ 0x1E5D,
+ 0x1E5E,
+ 0x1E5F,
+ 0x1E60,
+ 0x1E61,
+ 0x1E62,
+ 0x1E63,
+ 0x1E64,
+ 0x1E65,
+ 0x1E66,
+ 0x1E67,
+ 0x1E68,
+ 0x1E69,
+ 0x1E6A,
+ 0x1E6B,
+ 0x1E6C,
+ 0x1E6D,
+ 0x1E6E,
+ 0x1E6F,
+ 0x1E70,
+ 0x1E71,
+ 0x1E72,
+ 0x1E73,
+ 0x1E74,
+ 0x1E75,
+ 0x1E76,
+ 0x1E77,
+ 0x1E78,
+ 0x1E79,
+ 0x1E7A,
+ 0x1E7B,
+ 0x1E7C,
+ 0x1E7D,
+ 0x1E7E,
+ 0x1E7F,
+ 0x1E80,
+ 0x1E81,
+ 0x1E82,
+ 0x1E83,
+ 0x1E84,
+ 0x1E85,
+ 0x1E86,
+ 0x1E87,
+ 0x1E88,
+ 0x1E89,
+ 0x1E8A,
+ 0x1E8B,
+ 0x1E8C,
+ 0x1E8D,
+ 0x1E8E,
+ 0x1E8F,
+ 0x1E90,
+ 0x1E91,
+ 0x1E92,
+ 0x1E93,
+ 0x1E94,
+ 0x1E95,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1EA1,
+ 0x1EA2,
+ 0x1EA3,
+ 0x1EA4,
+ 0x1EA5,
+ 0x1EA6,
+ 0x1EA7,
+ 0x1EA8,
+ 0x1EA9,
+ 0x1EAA,
+ 0x1EAB,
+ 0x1EAC,
+ 0x1EAD,
+ 0x1EAE,
+ 0x1EAF,
+ 0x1EB0,
+ 0x1EB1,
+ 0x1EB2,
+ 0x1EB3,
+ 0x1EB4,
+ 0x1EB5,
+ 0x1EB6,
+ 0x1EB7,
+ 0x1EB8,
+ 0x1EB9,
+ 0x1EBA,
+ 0x1EBB,
+ 0x1EBC,
+ 0x1EBD,
+ 0x1EBE,
+ 0x1EBF,
+ 0x1EC0,
+ 0x1EC1,
+ 0x1EC2,
+ 0x1EC3,
+ 0x1EC4,
+ 0x1EC5,
+ 0x1EC6,
+ 0x1EC7,
+ 0x1EC8,
+ 0x1EC9,
+ 0x1ECA,
+ 0x1ECB,
+ 0x1ECC,
+ 0x1ECD,
+ 0x1ECE,
+ 0x1ECF,
+ 0x1ED0,
+ 0x1ED1,
+ 0x1ED2,
+ 0x1ED3,
+ 0x1ED4,
+ 0x1ED5,
+ 0x1ED6,
+ 0x1ED7,
+ 0x1ED8,
+ 0x1ED9,
+ 0x1EDA,
+ 0x1EDB,
+ 0x1EDC,
+ 0x1EDD,
+ 0x1EDE,
+ 0x1EDF,
+ 0x1EE0,
+ 0x1EE1,
+ 0x1EE2,
+ 0x1EE3,
+ 0x1EE4,
+ 0x1EE5,
+ 0x1EE6,
+ 0x1EE7,
+ 0x1EE8,
+ 0x1EE9,
+ 0x1EEA,
+ 0x1EEB,
+ 0x1EEC,
+ 0x1EED,
+ 0x1EEE,
+ 0x1EEF,
+ 0x1EF0,
+ 0x1EF1,
+ 0x1EF2,
+ 0x1EF3,
+ 0x1EF4,
+ 0x1EF5,
+ 0x1EF6,
+ 0x1EF7,
+ 0x1EF8,
+ 0x1EF9,
+ 0x1EFA,
+ 0x1EFB,
+ 0x1EFC,
+ 0x1EFD,
+ 0x1EFE,
+ 0x1EFF,
+ 0x1F08,
+ 0x1F10,
+ 0x1F16,
+ 0x1F20,
+ 0x1F28,
+ 0x1F30,
+ 0x1F38,
+ 0x1F40,
+ 0x1F46,
+ 0x1F50,
+ 0x1F58,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1F7E,
+ 0x1F80,
+ 0x1F88,
+ 0x1F90,
+ 0x1F98,
+ 0x1FA0,
+ 0x1FA8,
+ 0x1FB0,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FB8,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FC8,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FD8,
+ 0x1FE0,
+ 0x1FE8,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FF8,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x210A,
+ 0x210B,
+ 0x210E,
+ 0x2110,
+ 0x2113,
+ 0x2114,
+ 0x212F,
+ 0x2130,
+ 0x2134,
+ 0x2135,
+ 0x2139,
+ 0x213A,
+ 0x213C,
+ 0x213E,
+ 0x2146,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2170,
+ 0x2180,
+ 0x2184,
+ 0x2185,
+ 0x24D0,
+ 0x24EA,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C61,
+ 0x2C62,
+ 0x2C65,
+ 0x2C67,
+ 0x2C68,
+ 0x2C69,
+ 0x2C6A,
+ 0x2C6B,
+ 0x2C6C,
+ 0x2C6D,
+ 0x2C71,
+ 0x2C72,
+ 0x2C73,
+ 0x2C75,
+ 0x2C76,
+ 0x2C7E,
+ 0x2C81,
+ 0x2C82,
+ 0x2C83,
+ 0x2C84,
+ 0x2C85,
+ 0x2C86,
+ 0x2C87,
+ 0x2C88,
+ 0x2C89,
+ 0x2C8A,
+ 0x2C8B,
+ 0x2C8C,
+ 0x2C8D,
+ 0x2C8E,
+ 0x2C8F,
+ 0x2C90,
+ 0x2C91,
+ 0x2C92,
+ 0x2C93,
+ 0x2C94,
+ 0x2C95,
+ 0x2C96,
+ 0x2C97,
+ 0x2C98,
+ 0x2C99,
+ 0x2C9A,
+ 0x2C9B,
+ 0x2C9C,
+ 0x2C9D,
+ 0x2C9E,
+ 0x2C9F,
+ 0x2CA0,
+ 0x2CA1,
+ 0x2CA2,
+ 0x2CA3,
+ 0x2CA4,
+ 0x2CA5,
+ 0x2CA6,
+ 0x2CA7,
+ 0x2CA8,
+ 0x2CA9,
+ 0x2CAA,
+ 0x2CAB,
+ 0x2CAC,
+ 0x2CAD,
+ 0x2CAE,
+ 0x2CAF,
+ 0x2CB0,
+ 0x2CB1,
+ 0x2CB2,
+ 0x2CB3,
+ 0x2CB4,
+ 0x2CB5,
+ 0x2CB6,
+ 0x2CB7,
+ 0x2CB8,
+ 0x2CB9,
+ 0x2CBA,
+ 0x2CBB,
+ 0x2CBC,
+ 0x2CBD,
+ 0x2CBE,
+ 0x2CBF,
+ 0x2CC0,
+ 0x2CC1,
+ 0x2CC2,
+ 0x2CC3,
+ 0x2CC4,
+ 0x2CC5,
+ 0x2CC6,
+ 0x2CC7,
+ 0x2CC8,
+ 0x2CC9,
+ 0x2CCA,
+ 0x2CCB,
+ 0x2CCC,
+ 0x2CCD,
+ 0x2CCE,
+ 0x2CCF,
+ 0x2CD0,
+ 0x2CD1,
+ 0x2CD2,
+ 0x2CD3,
+ 0x2CD4,
+ 0x2CD5,
+ 0x2CD6,
+ 0x2CD7,
+ 0x2CD8,
+ 0x2CD9,
+ 0x2CDA,
+ 0x2CDB,
+ 0x2CDC,
+ 0x2CDD,
+ 0x2CDE,
+ 0x2CDF,
+ 0x2CE0,
+ 0x2CE1,
+ 0x2CE2,
+ 0x2CE3,
+ 0x2CE5,
+ 0x2CEC,
+ 0x2CED,
+ 0x2CEE,
+ 0x2CEF,
+ 0x2CF3,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0xA641,
+ 0xA642,
+ 0xA643,
+ 0xA644,
+ 0xA645,
+ 0xA646,
+ 0xA647,
+ 0xA648,
+ 0xA649,
+ 0xA64A,
+ 0xA64B,
+ 0xA64C,
+ 0xA64D,
+ 0xA64E,
+ 0xA64F,
+ 0xA650,
+ 0xA651,
+ 0xA652,
+ 0xA653,
+ 0xA654,
+ 0xA655,
+ 0xA656,
+ 0xA657,
+ 0xA658,
+ 0xA659,
+ 0xA65A,
+ 0xA65B,
+ 0xA65C,
+ 0xA65D,
+ 0xA65E,
+ 0xA65F,
+ 0xA660,
+ 0xA661,
+ 0xA662,
+ 0xA663,
+ 0xA664,
+ 0xA665,
+ 0xA666,
+ 0xA667,
+ 0xA668,
+ 0xA669,
+ 0xA66A,
+ 0xA66B,
+ 0xA66C,
+ 0xA66D,
+ 0xA66E,
+ 0xA681,
+ 0xA682,
+ 0xA683,
+ 0xA684,
+ 0xA685,
+ 0xA686,
+ 0xA687,
+ 0xA688,
+ 0xA689,
+ 0xA68A,
+ 0xA68B,
+ 0xA68C,
+ 0xA68D,
+ 0xA68E,
+ 0xA68F,
+ 0xA690,
+ 0xA691,
+ 0xA692,
+ 0xA693,
+ 0xA694,
+ 0xA695,
+ 0xA696,
+ 0xA697,
+ 0xA698,
+ 0xA699,
+ 0xA69A,
+ 0xA69B,
+ 0xA69E,
+ 0xA723,
+ 0xA724,
+ 0xA725,
+ 0xA726,
+ 0xA727,
+ 0xA728,
+ 0xA729,
+ 0xA72A,
+ 0xA72B,
+ 0xA72C,
+ 0xA72D,
+ 0xA72E,
+ 0xA72F,
+ 0xA732,
+ 0xA733,
+ 0xA734,
+ 0xA735,
+ 0xA736,
+ 0xA737,
+ 0xA738,
+ 0xA739,
+ 0xA73A,
+ 0xA73B,
+ 0xA73C,
+ 0xA73D,
+ 0xA73E,
+ 0xA73F,
+ 0xA740,
+ 0xA741,
+ 0xA742,
+ 0xA743,
+ 0xA744,
+ 0xA745,
+ 0xA746,
+ 0xA747,
+ 0xA748,
+ 0xA749,
+ 0xA74A,
+ 0xA74B,
+ 0xA74C,
+ 0xA74D,
+ 0xA74E,
+ 0xA74F,
+ 0xA750,
+ 0xA751,
+ 0xA752,
+ 0xA753,
+ 0xA754,
+ 0xA755,
+ 0xA756,
+ 0xA757,
+ 0xA758,
+ 0xA759,
+ 0xA75A,
+ 0xA75B,
+ 0xA75C,
+ 0xA75D,
+ 0xA75E,
+ 0xA75F,
+ 0xA760,
+ 0xA761,
+ 0xA762,
+ 0xA763,
+ 0xA764,
+ 0xA765,
+ 0xA766,
+ 0xA767,
+ 0xA768,
+ 0xA769,
+ 0xA76A,
+ 0xA76B,
+ 0xA76C,
+ 0xA76D,
+ 0xA76E,
+ 0xA76F,
+ 0xA779,
+ 0xA77A,
+ 0xA77B,
+ 0xA77C,
+ 0xA77D,
+ 0xA77F,
+ 0xA780,
+ 0xA781,
+ 0xA782,
+ 0xA783,
+ 0xA784,
+ 0xA785,
+ 0xA786,
+ 0xA787,
+ 0xA788,
+ 0xA78C,
+ 0xA78D,
+ 0xA78E,
+ 0xA78F,
+ 0xA791,
+ 0xA792,
+ 0xA793,
+ 0xA796,
+ 0xA797,
+ 0xA798,
+ 0xA799,
+ 0xA79A,
+ 0xA79B,
+ 0xA79C,
+ 0xA79D,
+ 0xA79E,
+ 0xA79F,
+ 0xA7A0,
+ 0xA7A1,
+ 0xA7A2,
+ 0xA7A3,
+ 0xA7A4,
+ 0xA7A5,
+ 0xA7A6,
+ 0xA7A7,
+ 0xA7A8,
+ 0xA7A9,
+ 0xA7AA,
+ 0xA7F8,
+ 0xA7FB,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFF41,
+ 0xFF5B,
+ 0x10428,
+ 0x10450,
+ 0x118C0,
+ 0x118E0,
+ 0x1D41A,
+ 0x1D434,
+ 0x1D44E,
+ 0x1D455,
+ 0x1D456,
+ 0x1D468,
+ 0x1D482,
+ 0x1D49C,
+ 0x1D4B6,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D4D0,
+ 0x1D4EA,
+ 0x1D504,
+ 0x1D51E,
+ 0x1D538,
+ 0x1D552,
+ 0x1D56C,
+ 0x1D586,
+ 0x1D5A0,
+ 0x1D5BA,
+ 0x1D5D4,
+ 0x1D5EE,
+ 0x1D608,
+ 0x1D622,
+ 0x1D63C,
+ 0x1D656,
+ 0x1D670,
+ 0x1D68A,
+ 0x1D6A6,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6E2,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D71C,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D756,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D790,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CA,
+ 0x1D7CB,
+ 0x1D7CC
+};
+
+static const UV XPosixPrint_invlist[] = { /* for EBCDIC POSIX-BC */
+ 1205, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x40,
+ 0x5F,
+ 0x60,
+ 0x378,
+ 0x37A,
+ 0x380,
+ 0x384,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x560,
+ 0x561,
+ 0x588,
+ 0x589,
+ 0x58B,
+ 0x58D,
+ 0x590,
+ 0x591,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F5,
+ 0x600,
+ 0x61D,
+ 0x61E,
+ 0x70E,
+ 0x70F,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x830,
+ 0x83F,
+ 0x840,
+ 0x85C,
+ 0x85E,
+ 0x85F,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9FC,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF2,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB78,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBFB,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC78,
+ 0xC80,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD76,
+ 0xD79,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF5,
+ 0xE01,
+ 0xE3B,
+ 0xE3F,
+ 0xE5C,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFBE,
+ 0xFCD,
+ 0xFCE,
+ 0xFDB,
+ 0x1000,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x137D,
+ 0x1380,
+ 0x139A,
+ 0x13A0,
+ 0x13F5,
+ 0x1400,
+ 0x169D,
+ 0x16A0,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1737,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x17F0,
+ 0x17FA,
+ 0x1800,
+ 0x180F,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1940,
+ 0x1941,
+ 0x1944,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DB,
+ 0x19DE,
+ 0x1A1C,
+ 0x1A1E,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA0,
+ 0x1AAE,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B7D,
+ 0x1B80,
+ 0x1BF4,
+ 0x1BFC,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C80,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FDD,
+ 0x1FF0,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFF,
+ 0x2000,
+ 0x2028,
+ 0x202A,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20BE,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218A,
+ 0x2190,
+ 0x23FB,
+ 0x2400,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B98,
+ 0x2BBA,
+ 0x2BBD,
+ 0x2BC9,
+ 0x2BCA,
+ 0x2BD2,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CF4,
+ 0x2CF9,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D71,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E43,
+ 0x2E80,
+ 0x2E9A,
+ 0x2E9B,
+ 0x2EF4,
+ 0x2F00,
+ 0x2FD6,
+ 0x2FF0,
+ 0x2FFC,
+ 0x3000,
+ 0x3040,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x3190,
+ 0x31BB,
+ 0x31C0,
+ 0x31E4,
+ 0x31F0,
+ 0x321F,
+ 0x3220,
+ 0x32FF,
+ 0x3300,
+ 0x4DB6,
+ 0x4DC0,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F8,
+ 0xA700,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA82C,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C5,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8FC,
+ 0xA900,
+ 0xA954,
+ 0xA95F,
+ 0xA97D,
+ 0xA980,
+ 0xA9CE,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9DE,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA5C,
+ 0xAAC3,
+ 0xAADB,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xE000,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBC2,
+ 0xFBD3,
+ 0xFD40,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFE,
+ 0xFE00,
+ 0xFE1A,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE30,
+ 0xFE53,
+ 0xFE54,
+ 0xFE67,
+ 0xFE68,
+ 0xFE6C,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFEFF,
+ 0xFF00,
+ 0xFF01,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0xFFE0,
+ 0xFFE7,
+ 0xFFE8,
+ 0xFFEF,
+ 0xFFF9,
+ 0xFFFE,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10100,
+ 0x10103,
+ 0x10107,
+ 0x10134,
+ 0x10137,
+ 0x1018D,
+ 0x10190,
+ 0x1019C,
+ 0x101A0,
+ 0x101A1,
+ 0x101D0,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102FC,
+ 0x10300,
+ 0x10324,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x1039F,
+ 0x103C4,
+ 0x103C8,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x1056F,
+ 0x10570,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10857,
+ 0x1089F,
+ 0x108A7,
+ 0x108B0,
+ 0x10900,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A48,
+ 0x10A50,
+ 0x10A59,
+ 0x10A60,
+ 0x10AA0,
+ 0x10AC0,
+ 0x10AE7,
+ 0x10AEB,
+ 0x10AF7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B39,
+ 0x10B56,
+ 0x10B58,
+ 0x10B73,
+ 0x10B78,
+ 0x10B92,
+ 0x10B99,
+ 0x10B9D,
+ 0x10BA9,
+ 0x10BB0,
+ 0x10C00,
+ 0x10C49,
+ 0x10E60,
+ 0x10E7F,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11070,
+ 0x1107F,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11144,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111C9,
+ 0x111CD,
+ 0x111CE,
+ 0x111D0,
+ 0x111DB,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1123E,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115CA,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B46,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B5B,
+ 0x16B62,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1DE,
+ 0x1D200,
+ 0x1D246,
+ 0x1D300,
+ 0x1D357,
+ 0x1D360,
+ 0x1D372,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1EEF0,
+ 0x1EEF2,
+ 0x1F000,
+ 0x1F02C,
+ 0x1F030,
+ 0x1F094,
+ 0x1F0A0,
+ 0x1F0AF,
+ 0x1F0B1,
+ 0x1F0C0,
+ 0x1F0C1,
+ 0x1F0D0,
+ 0x1F0D1,
+ 0x1F0F6,
+ 0x1F100,
+ 0x1F10D,
+ 0x1F110,
+ 0x1F12F,
+ 0x1F130,
+ 0x1F16C,
+ 0x1F170,
+ 0x1F19B,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23B,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F300,
+ 0x1F32D,
+ 0x1F330,
+ 0x1F37E,
+ 0x1F380,
+ 0x1F3CF,
+ 0x1F3D4,
+ 0x1F3F8,
+ 0x1F400,
+ 0x1F4FF,
+ 0x1F500,
+ 0x1F54B,
+ 0x1F550,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F5A4,
+ 0x1F5A5,
+ 0x1F643,
+ 0x1F645,
+ 0x1F6D0,
+ 0x1F6E0,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6F4,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xF0000,
+ 0xFFFFE,
+ 0x100000,
+ 0x10FFFE
+};
+
+static const UV XPosixPunct_invlist[] = { /* for EBCDIC POSIX-BC */
+ 307, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x5F,
+ 0x60,
+ 0x62,
+ 0x6A,
+ 0x70,
+ 0x7A,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0xAA,
+ 0xAC,
+ 0xB3,
+ 0xB4,
+ 0xB5,
+ 0xB7,
+ 0xBB,
+ 0xBE,
+ 0xFB,
+ 0xFC,
+ 0xFD,
+ 0xFE,
+ 0xFF,
+ 0x100,
+ 0x37E,
+ 0x37F,
+ 0x387,
+ 0x388,
+ 0x55A,
+ 0x560,
+ 0x589,
+ 0x58B,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5F3,
+ 0x5F5,
+ 0x609,
+ 0x60B,
+ 0x60C,
+ 0x60E,
+ 0x61B,
+ 0x61C,
+ 0x61E,
+ 0x620,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x700,
+ 0x70E,
+ 0x7F7,
+ 0x7FA,
+ 0x830,
+ 0x83F,
+ 0x85E,
+ 0x85F,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0xAF0,
+ 0xAF1,
+ 0xDF4,
+ 0xDF5,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE5C,
+ 0xF04,
+ 0xF13,
+ 0xF14,
+ 0xF15,
+ 0xF3A,
+ 0xF3E,
+ 0xF85,
+ 0xF86,
+ 0xFD0,
+ 0xFD5,
+ 0xFD9,
+ 0xFDB,
+ 0x104A,
+ 0x1050,
+ 0x10FB,
+ 0x10FC,
+ 0x1360,
+ 0x1369,
+ 0x1400,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x169B,
+ 0x169D,
+ 0x16EB,
+ 0x16EE,
+ 0x1735,
+ 0x1737,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DB,
+ 0x1800,
+ 0x180B,
+ 0x1944,
+ 0x1946,
+ 0x1A1E,
+ 0x1A20,
+ 0x1AA0,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AAE,
+ 0x1B5A,
+ 0x1B61,
+ 0x1BFC,
+ 0x1C00,
+ 0x1C3B,
+ 0x1C40,
+ 0x1C7E,
+ 0x1C80,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD3,
+ 0x1CD4,
+ 0x2010,
+ 0x2028,
+ 0x2030,
+ 0x2044,
+ 0x2045,
+ 0x2052,
+ 0x2053,
+ 0x205F,
+ 0x207D,
+ 0x207F,
+ 0x208D,
+ 0x208F,
+ 0x2308,
+ 0x230C,
+ 0x2329,
+ 0x232B,
+ 0x2768,
+ 0x2776,
+ 0x27C5,
+ 0x27C7,
+ 0x27E6,
+ 0x27F0,
+ 0x2983,
+ 0x2999,
+ 0x29D8,
+ 0x29DC,
+ 0x29FC,
+ 0x29FE,
+ 0x2CF9,
+ 0x2CFD,
+ 0x2CFE,
+ 0x2D00,
+ 0x2D70,
+ 0x2D71,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x2E43,
+ 0x3001,
+ 0x3004,
+ 0x3008,
+ 0x3012,
+ 0x3014,
+ 0x3020,
+ 0x3030,
+ 0x3031,
+ 0x303D,
+ 0x303E,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA6F2,
+ 0xA6F8,
+ 0xA874,
+ 0xA878,
+ 0xA8CE,
+ 0xA8D0,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA92E,
+ 0xA930,
+ 0xA95F,
+ 0xA960,
+ 0xA9C1,
+ 0xA9CE,
+ 0xA9DE,
+ 0xA9E0,
+ 0xAA5C,
+ 0xAA60,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xABEB,
+ 0xABEC,
+ 0xFD3E,
+ 0xFD40,
+ 0xFE10,
+ 0xFE1A,
+ 0xFE30,
+ 0xFE53,
+ 0xFE54,
+ 0xFE62,
+ 0xFE63,
+ 0xFE64,
+ 0xFE68,
+ 0xFE69,
+ 0xFE6A,
+ 0xFE6C,
+ 0xFF01,
+ 0xFF04,
+ 0xFF05,
+ 0xFF0B,
+ 0xFF0C,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF1C,
+ 0xFF1F,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3E,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF5B,
+ 0xFF5C,
+ 0xFF5D,
+ 0xFF5E,
+ 0xFF5F,
+ 0xFF66,
+ 0x10100,
+ 0x10103,
+ 0x1039F,
+ 0x103A0,
+ 0x103D0,
+ 0x103D1,
+ 0x1056F,
+ 0x10570,
+ 0x10857,
+ 0x10858,
+ 0x1091F,
+ 0x10920,
+ 0x1093F,
+ 0x10940,
+ 0x10A50,
+ 0x10A59,
+ 0x10A7F,
+ 0x10A80,
+ 0x10AF0,
+ 0x10AF7,
+ 0x10B39,
+ 0x10B40,
+ 0x10B99,
+ 0x10B9D,
+ 0x11047,
+ 0x1104E,
+ 0x110BB,
+ 0x110BD,
+ 0x110BE,
+ 0x110C2,
+ 0x11140,
+ 0x11144,
+ 0x11174,
+ 0x11176,
+ 0x111C5,
+ 0x111C9,
+ 0x111CD,
+ 0x111CE,
+ 0x11238,
+ 0x1123E,
+ 0x114C6,
+ 0x114C7,
+ 0x115C1,
+ 0x115CA,
+ 0x11641,
+ 0x11644,
+ 0x12470,
+ 0x12475,
+ 0x16A6E,
+ 0x16A70,
+ 0x16AF5,
+ 0x16AF6,
+ 0x16B37,
+ 0x16B3C,
+ 0x16B44,
+ 0x16B45,
+ 0x1BC9F,
+ 0x1BCA0
+};
+
+static const UV XPosixSpace_invlist[] = { /* for EBCDIC POSIX-BC */
+ 23, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x5,
+ 0x6,
+ 0xB,
+ 0xE,
+ 0x15,
+ 0x16,
+ 0x25,
+ 0x26,
+ 0x40,
+ 0x42,
+ 0x1680,
+ 0x1681,
+ 0x2000,
+ 0x200B,
+ 0x2028,
+ 0x202A,
+ 0x202F,
+ 0x2030,
+ 0x205F,
+ 0x2060,
+ 0x3000,
+ 0x3001
+};
+
+static const UV XPosixUpper_invlist[] = { /* for EBCDIC POSIX-BC */
+ 1275, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x62,
+ 0x6A,
+ 0x71,
+ 0x79,
+ 0x80,
+ 0x81,
+ 0x9E,
+ 0x9F,
+ 0xAC,
+ 0xAF,
+ 0xC1,
+ 0xCA,
+ 0xD1,
+ 0xDA,
+ 0xDD,
+ 0xDE,
+ 0xE0,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xF0,
+ 0xFC,
+ 0xFD,
+ 0xFE,
+ 0xFF,
+ 0x100,
+ 0x101,
+ 0x102,
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x106,
+ 0x107,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x10E,
+ 0x10F,
+ 0x110,
+ 0x111,
+ 0x112,
+ 0x113,
+ 0x114,
+ 0x115,
+ 0x116,
+ 0x117,
+ 0x118,
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x11C,
+ 0x11D,
+ 0x11E,
+ 0x11F,
+ 0x120,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x124,
+ 0x125,
+ 0x126,
+ 0x127,
+ 0x128,
+ 0x129,
+ 0x12A,
+ 0x12B,
+ 0x12C,
+ 0x12D,
+ 0x12E,
+ 0x12F,
+ 0x130,
+ 0x131,
+ 0x132,
+ 0x133,
+ 0x134,
+ 0x135,
+ 0x136,
+ 0x137,
+ 0x139,
+ 0x13A,
+ 0x13B,
+ 0x13C,
+ 0x13D,
+ 0x13E,
+ 0x13F,
+ 0x140,
+ 0x141,
+ 0x142,
+ 0x143,
+ 0x144,
+ 0x145,
+ 0x146,
+ 0x147,
+ 0x148,
+ 0x14A,
+ 0x14B,
+ 0x14C,
+ 0x14D,
+ 0x14E,
+ 0x14F,
+ 0x150,
+ 0x151,
+ 0x152,
+ 0x153,
+ 0x154,
+ 0x155,
+ 0x156,
+ 0x157,
+ 0x158,
+ 0x159,
+ 0x15A,
+ 0x15B,
+ 0x15C,
+ 0x15D,
+ 0x15E,
+ 0x15F,
+ 0x160,
+ 0x161,
+ 0x162,
+ 0x163,
+ 0x164,
+ 0x165,
+ 0x166,
+ 0x167,
+ 0x168,
+ 0x169,
+ 0x16A,
+ 0x16B,
+ 0x16C,
+ 0x16D,
+ 0x16E,
+ 0x16F,
+ 0x170,
+ 0x171,
+ 0x172,
+ 0x173,
+ 0x174,
+ 0x175,
+ 0x176,
+ 0x177,
+ 0x178,
+ 0x17A,
+ 0x17B,
+ 0x17C,
+ 0x17D,
+ 0x17E,
+ 0x181,
+ 0x183,
+ 0x184,
+ 0x185,
+ 0x186,
+ 0x188,
+ 0x189,
+ 0x18C,
+ 0x18E,
+ 0x192,
+ 0x193,
+ 0x195,
+ 0x196,
+ 0x199,
+ 0x19C,
+ 0x19E,
+ 0x19F,
+ 0x1A1,
+ 0x1A2,
+ 0x1A3,
+ 0x1A4,
+ 0x1A5,
+ 0x1A6,
+ 0x1A8,
+ 0x1A9,
+ 0x1AA,
+ 0x1AC,
+ 0x1AD,
+ 0x1AE,
+ 0x1B0,
+ 0x1B1,
+ 0x1B4,
+ 0x1B5,
+ 0x1B6,
+ 0x1B7,
+ 0x1B9,
+ 0x1BC,
+ 0x1BD,
+ 0x1C4,
+ 0x1C5,
+ 0x1C7,
+ 0x1C8,
+ 0x1CA,
+ 0x1CB,
+ 0x1CD,
+ 0x1CE,
+ 0x1CF,
+ 0x1D0,
+ 0x1D1,
+ 0x1D2,
+ 0x1D3,
+ 0x1D4,
+ 0x1D5,
+ 0x1D6,
+ 0x1D7,
+ 0x1D8,
+ 0x1D9,
+ 0x1DA,
+ 0x1DB,
+ 0x1DC,
+ 0x1DE,
+ 0x1DF,
+ 0x1E0,
+ 0x1E1,
+ 0x1E2,
+ 0x1E3,
+ 0x1E4,
+ 0x1E5,
+ 0x1E6,
+ 0x1E7,
+ 0x1E8,
+ 0x1E9,
+ 0x1EA,
+ 0x1EB,
+ 0x1EC,
+ 0x1ED,
+ 0x1EE,
+ 0x1EF,
+ 0x1F1,
+ 0x1F2,
+ 0x1F4,
+ 0x1F5,
+ 0x1F6,
+ 0x1F9,
+ 0x1FA,
+ 0x1FB,
+ 0x1FC,
+ 0x1FD,
+ 0x1FE,
+ 0x1FF,
+ 0x200,
+ 0x201,
+ 0x202,
+ 0x203,
+ 0x204,
+ 0x205,
+ 0x206,
+ 0x207,
+ 0x208,
+ 0x209,
+ 0x20A,
+ 0x20B,
+ 0x20C,
+ 0x20D,
+ 0x20E,
+ 0x20F,
+ 0x210,
+ 0x211,
+ 0x212,
+ 0x213,
+ 0x214,
+ 0x215,
+ 0x216,
+ 0x217,
+ 0x218,
+ 0x219,
+ 0x21A,
+ 0x21B,
+ 0x21C,
+ 0x21D,
+ 0x21E,
+ 0x21F,
+ 0x220,
+ 0x221,
+ 0x222,
+ 0x223,
+ 0x224,
+ 0x225,
+ 0x226,
+ 0x227,
+ 0x228,
+ 0x229,
+ 0x22A,
+ 0x22B,
+ 0x22C,
+ 0x22D,
+ 0x22E,
+ 0x22F,
+ 0x230,
+ 0x231,
+ 0x232,
+ 0x233,
+ 0x23A,
+ 0x23C,
+ 0x23D,
+ 0x23F,
+ 0x241,
+ 0x242,
+ 0x243,
+ 0x247,
+ 0x248,
+ 0x249,
+ 0x24A,
+ 0x24B,
+ 0x24C,
+ 0x24D,
+ 0x24E,
+ 0x24F,
+ 0x370,
+ 0x371,
+ 0x372,
+ 0x373,
+ 0x376,
+ 0x377,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x390,
+ 0x391,
+ 0x3A2,
+ 0x3A3,
+ 0x3AC,
+ 0x3CF,
+ 0x3D0,
+ 0x3D2,
+ 0x3D5,
+ 0x3D8,
+ 0x3D9,
+ 0x3DA,
+ 0x3DB,
+ 0x3DC,
+ 0x3DD,
+ 0x3DE,
+ 0x3DF,
+ 0x3E0,
+ 0x3E1,
+ 0x3E2,
+ 0x3E3,
+ 0x3E4,
+ 0x3E5,
+ 0x3E6,
+ 0x3E7,
+ 0x3E8,
+ 0x3E9,
+ 0x3EA,
+ 0x3EB,
+ 0x3EC,
+ 0x3ED,
+ 0x3EE,
+ 0x3EF,
+ 0x3F4,
+ 0x3F5,
+ 0x3F7,
+ 0x3F8,
+ 0x3F9,
+ 0x3FB,
+ 0x3FD,
+ 0x430,
+ 0x460,
+ 0x461,
+ 0x462,
+ 0x463,
+ 0x464,
+ 0x465,
+ 0x466,
+ 0x467,
+ 0x468,
+ 0x469,
+ 0x46A,
+ 0x46B,
+ 0x46C,
+ 0x46D,
+ 0x46E,
+ 0x46F,
+ 0x470,
+ 0x471,
+ 0x472,
+ 0x473,
+ 0x474,
+ 0x475,
+ 0x476,
+ 0x477,
+ 0x478,
+ 0x479,
+ 0x47A,
+ 0x47B,
+ 0x47C,
+ 0x47D,
+ 0x47E,
+ 0x47F,
+ 0x480,
+ 0x481,
+ 0x48A,
+ 0x48B,
+ 0x48C,
+ 0x48D,
+ 0x48E,
+ 0x48F,
+ 0x490,
+ 0x491,
+ 0x492,
+ 0x493,
+ 0x494,
+ 0x495,
+ 0x496,
+ 0x497,
+ 0x498,
+ 0x499,
+ 0x49A,
+ 0x49B,
+ 0x49C,
+ 0x49D,
+ 0x49E,
+ 0x49F,
+ 0x4A0,
+ 0x4A1,
+ 0x4A2,
+ 0x4A3,
+ 0x4A4,
+ 0x4A5,
+ 0x4A6,
+ 0x4A7,
+ 0x4A8,
+ 0x4A9,
+ 0x4AA,
+ 0x4AB,
+ 0x4AC,
+ 0x4AD,
+ 0x4AE,
+ 0x4AF,
+ 0x4B0,
+ 0x4B1,
+ 0x4B2,
+ 0x4B3,
+ 0x4B4,
+ 0x4B5,
+ 0x4B6,
+ 0x4B7,
+ 0x4B8,
+ 0x4B9,
+ 0x4BA,
+ 0x4BB,
+ 0x4BC,
+ 0x4BD,
+ 0x4BE,
+ 0x4BF,
+ 0x4C0,
+ 0x4C2,
+ 0x4C3,
+ 0x4C4,
+ 0x4C5,
+ 0x4C6,
+ 0x4C7,
+ 0x4C8,
+ 0x4C9,
+ 0x4CA,
+ 0x4CB,
+ 0x4CC,
+ 0x4CD,
+ 0x4CE,
+ 0x4D0,
+ 0x4D1,
+ 0x4D2,
+ 0x4D3,
+ 0x4D4,
+ 0x4D5,
+ 0x4D6,
+ 0x4D7,
+ 0x4D8,
+ 0x4D9,
+ 0x4DA,
+ 0x4DB,
+ 0x4DC,
+ 0x4DD,
+ 0x4DE,
+ 0x4DF,
+ 0x4E0,
+ 0x4E1,
+ 0x4E2,
+ 0x4E3,
+ 0x4E4,
+ 0x4E5,
+ 0x4E6,
+ 0x4E7,
+ 0x4E8,
+ 0x4E9,
+ 0x4EA,
+ 0x4EB,
+ 0x4EC,
+ 0x4ED,
+ 0x4EE,
+ 0x4EF,
+ 0x4F0,
+ 0x4F1,
+ 0x4F2,
+ 0x4F3,
+ 0x4F4,
+ 0x4F5,
+ 0x4F6,
+ 0x4F7,
+ 0x4F8,
+ 0x4F9,
+ 0x4FA,
+ 0x4FB,
+ 0x4FC,
+ 0x4FD,
+ 0x4FE,
+ 0x4FF,
+ 0x500,
+ 0x501,
+ 0x502,
+ 0x503,
+ 0x504,
+ 0x505,
+ 0x506,
+ 0x507,
+ 0x508,
+ 0x509,
+ 0x50A,
+ 0x50B,
+ 0x50C,
+ 0x50D,
+ 0x50E,
+ 0x50F,
+ 0x510,
+ 0x511,
+ 0x512,
+ 0x513,
+ 0x514,
+ 0x515,
+ 0x516,
+ 0x517,
+ 0x518,
+ 0x519,
+ 0x51A,
+ 0x51B,
+ 0x51C,
+ 0x51D,
+ 0x51E,
+ 0x51F,
+ 0x520,
+ 0x521,
+ 0x522,
+ 0x523,
+ 0x524,
+ 0x525,
+ 0x526,
+ 0x527,
+ 0x528,
+ 0x529,
+ 0x52A,
+ 0x52B,
+ 0x52C,
+ 0x52D,
+ 0x52E,
+ 0x52F,
+ 0x531,
+ 0x557,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x1E00,
+ 0x1E01,
+ 0x1E02,
+ 0x1E03,
+ 0x1E04,
+ 0x1E05,
+ 0x1E06,
+ 0x1E07,
+ 0x1E08,
+ 0x1E09,
+ 0x1E0A,
+ 0x1E0B,
+ 0x1E0C,
+ 0x1E0D,
+ 0x1E0E,
+ 0x1E0F,
+ 0x1E10,
+ 0x1E11,
+ 0x1E12,
+ 0x1E13,
+ 0x1E14,
+ 0x1E15,
+ 0x1E16,
+ 0x1E17,
+ 0x1E18,
+ 0x1E19,
+ 0x1E1A,
+ 0x1E1B,
+ 0x1E1C,
+ 0x1E1D,
+ 0x1E1E,
+ 0x1E1F,
+ 0x1E20,
+ 0x1E21,
+ 0x1E22,
+ 0x1E23,
+ 0x1E24,
+ 0x1E25,
+ 0x1E26,
+ 0x1E27,
+ 0x1E28,
+ 0x1E29,
+ 0x1E2A,
+ 0x1E2B,
+ 0x1E2C,
+ 0x1E2D,
+ 0x1E2E,
+ 0x1E2F,
+ 0x1E30,
+ 0x1E31,
+ 0x1E32,
+ 0x1E33,
+ 0x1E34,
+ 0x1E35,
+ 0x1E36,
+ 0x1E37,
+ 0x1E38,
+ 0x1E39,
+ 0x1E3A,
+ 0x1E3B,
+ 0x1E3C,
+ 0x1E3D,
+ 0x1E3E,
+ 0x1E3F,
+ 0x1E40,
+ 0x1E41,
+ 0x1E42,
+ 0x1E43,
+ 0x1E44,
+ 0x1E45,
+ 0x1E46,
+ 0x1E47,
+ 0x1E48,
+ 0x1E49,
+ 0x1E4A,
+ 0x1E4B,
+ 0x1E4C,
+ 0x1E4D,
+ 0x1E4E,
+ 0x1E4F,
+ 0x1E50,
+ 0x1E51,
+ 0x1E52,
+ 0x1E53,
+ 0x1E54,
+ 0x1E55,
+ 0x1E56,
+ 0x1E57,
+ 0x1E58,
+ 0x1E59,
+ 0x1E5A,
+ 0x1E5B,
+ 0x1E5C,
+ 0x1E5D,
+ 0x1E5E,
+ 0x1E5F,
+ 0x1E60,
+ 0x1E61,
+ 0x1E62,
+ 0x1E63,
+ 0x1E64,
+ 0x1E65,
+ 0x1E66,
+ 0x1E67,
+ 0x1E68,
+ 0x1E69,
+ 0x1E6A,
+ 0x1E6B,
+ 0x1E6C,
+ 0x1E6D,
+ 0x1E6E,
+ 0x1E6F,
+ 0x1E70,
+ 0x1E71,
+ 0x1E72,
+ 0x1E73,
+ 0x1E74,
+ 0x1E75,
+ 0x1E76,
+ 0x1E77,
+ 0x1E78,
+ 0x1E79,
+ 0x1E7A,
+ 0x1E7B,
+ 0x1E7C,
+ 0x1E7D,
+ 0x1E7E,
+ 0x1E7F,
+ 0x1E80,
+ 0x1E81,
+ 0x1E82,
+ 0x1E83,
+ 0x1E84,
+ 0x1E85,
+ 0x1E86,
+ 0x1E87,
+ 0x1E88,
+ 0x1E89,
+ 0x1E8A,
+ 0x1E8B,
+ 0x1E8C,
+ 0x1E8D,
+ 0x1E8E,
+ 0x1E8F,
+ 0x1E90,
+ 0x1E91,
+ 0x1E92,
+ 0x1E93,
+ 0x1E94,
+ 0x1E95,
+ 0x1E9E,
+ 0x1E9F,
+ 0x1EA0,
+ 0x1EA1,
+ 0x1EA2,
+ 0x1EA3,
+ 0x1EA4,
+ 0x1EA5,
+ 0x1EA6,
+ 0x1EA7,
+ 0x1EA8,
+ 0x1EA9,
+ 0x1EAA,
+ 0x1EAB,
+ 0x1EAC,
+ 0x1EAD,
+ 0x1EAE,
+ 0x1EAF,
+ 0x1EB0,
+ 0x1EB1,
+ 0x1EB2,
+ 0x1EB3,
+ 0x1EB4,
+ 0x1EB5,
+ 0x1EB6,
+ 0x1EB7,
+ 0x1EB8,
+ 0x1EB9,
+ 0x1EBA,
+ 0x1EBB,
+ 0x1EBC,
+ 0x1EBD,
+ 0x1EBE,
+ 0x1EBF,
+ 0x1EC0,
+ 0x1EC1,
+ 0x1EC2,
+ 0x1EC3,
+ 0x1EC4,
+ 0x1EC5,
+ 0x1EC6,
+ 0x1EC7,
+ 0x1EC8,
+ 0x1EC9,
+ 0x1ECA,
+ 0x1ECB,
+ 0x1ECC,
+ 0x1ECD,
+ 0x1ECE,
+ 0x1ECF,
+ 0x1ED0,
+ 0x1ED1,
+ 0x1ED2,
+ 0x1ED3,
+ 0x1ED4,
+ 0x1ED5,
+ 0x1ED6,
+ 0x1ED7,
+ 0x1ED8,
+ 0x1ED9,
+ 0x1EDA,
+ 0x1EDB,
+ 0x1EDC,
+ 0x1EDD,
+ 0x1EDE,
+ 0x1EDF,
+ 0x1EE0,
+ 0x1EE1,
+ 0x1EE2,
+ 0x1EE3,
+ 0x1EE4,
+ 0x1EE5,
+ 0x1EE6,
+ 0x1EE7,
+ 0x1EE8,
+ 0x1EE9,
+ 0x1EEA,
+ 0x1EEB,
+ 0x1EEC,
+ 0x1EED,
+ 0x1EEE,
+ 0x1EEF,
+ 0x1EF0,
+ 0x1EF1,
+ 0x1EF2,
+ 0x1EF3,
+ 0x1EF4,
+ 0x1EF5,
+ 0x1EF6,
+ 0x1EF7,
+ 0x1EF8,
+ 0x1EF9,
+ 0x1EFA,
+ 0x1EFB,
+ 0x1EFC,
+ 0x1EFD,
+ 0x1EFE,
+ 0x1EFF,
+ 0x1F08,
+ 0x1F10,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F28,
+ 0x1F30,
+ 0x1F38,
+ 0x1F40,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F60,
+ 0x1F68,
+ 0x1F70,
+ 0x1FB8,
+ 0x1FBC,
+ 0x1FC8,
+ 0x1FCC,
+ 0x1FD8,
+ 0x1FDC,
+ 0x1FE8,
+ 0x1FED,
+ 0x1FF8,
+ 0x1FFC,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210B,
+ 0x210E,
+ 0x2110,
+ 0x2113,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x2130,
+ 0x2134,
+ 0x213E,
+ 0x2140,
+ 0x2145,
+ 0x2146,
+ 0x2160,
+ 0x2170,
+ 0x2183,
+ 0x2184,
+ 0x24B6,
+ 0x24D0,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C60,
+ 0x2C61,
+ 0x2C62,
+ 0x2C65,
+ 0x2C67,
+ 0x2C68,
+ 0x2C69,
+ 0x2C6A,
+ 0x2C6B,
+ 0x2C6C,
+ 0x2C6D,
+ 0x2C71,
+ 0x2C72,
+ 0x2C73,
+ 0x2C75,
+ 0x2C76,
+ 0x2C7E,
+ 0x2C81,
+ 0x2C82,
+ 0x2C83,
+ 0x2C84,
+ 0x2C85,
+ 0x2C86,
+ 0x2C87,
+ 0x2C88,
+ 0x2C89,
+ 0x2C8A,
+ 0x2C8B,
+ 0x2C8C,
+ 0x2C8D,
+ 0x2C8E,
+ 0x2C8F,
+ 0x2C90,
+ 0x2C91,
+ 0x2C92,
+ 0x2C93,
+ 0x2C94,
+ 0x2C95,
+ 0x2C96,
+ 0x2C97,
+ 0x2C98,
+ 0x2C99,
+ 0x2C9A,
+ 0x2C9B,
+ 0x2C9C,
+ 0x2C9D,
+ 0x2C9E,
+ 0x2C9F,
+ 0x2CA0,
+ 0x2CA1,
+ 0x2CA2,
+ 0x2CA3,
+ 0x2CA4,
+ 0x2CA5,
+ 0x2CA6,
+ 0x2CA7,
+ 0x2CA8,
+ 0x2CA9,
+ 0x2CAA,
+ 0x2CAB,
+ 0x2CAC,
+ 0x2CAD,
+ 0x2CAE,
+ 0x2CAF,
+ 0x2CB0,
+ 0x2CB1,
+ 0x2CB2,
+ 0x2CB3,
+ 0x2CB4,
+ 0x2CB5,
+ 0x2CB6,
+ 0x2CB7,
+ 0x2CB8,
+ 0x2CB9,
+ 0x2CBA,
+ 0x2CBB,
+ 0x2CBC,
+ 0x2CBD,
+ 0x2CBE,
+ 0x2CBF,
+ 0x2CC0,
+ 0x2CC1,
+ 0x2CC2,
+ 0x2CC3,
+ 0x2CC4,
+ 0x2CC5,
+ 0x2CC6,
+ 0x2CC7,
+ 0x2CC8,
+ 0x2CC9,
+ 0x2CCA,
+ 0x2CCB,
+ 0x2CCC,
+ 0x2CCD,
+ 0x2CCE,
+ 0x2CCF,
+ 0x2CD0,
+ 0x2CD1,
+ 0x2CD2,
+ 0x2CD3,
+ 0x2CD4,
+ 0x2CD5,
+ 0x2CD6,
+ 0x2CD7,
+ 0x2CD8,
+ 0x2CD9,
+ 0x2CDA,
+ 0x2CDB,
+ 0x2CDC,
+ 0x2CDD,
+ 0x2CDE,
+ 0x2CDF,
+ 0x2CE0,
+ 0x2CE1,
+ 0x2CE2,
+ 0x2CE3,
+ 0x2CEB,
+ 0x2CEC,
+ 0x2CED,
+ 0x2CEE,
+ 0x2CF2,
+ 0x2CF3,
+ 0xA640,
+ 0xA641,
+ 0xA642,
+ 0xA643,
+ 0xA644,
+ 0xA645,
+ 0xA646,
+ 0xA647,
+ 0xA648,
+ 0xA649,
+ 0xA64A,
+ 0xA64B,
+ 0xA64C,
+ 0xA64D,
+ 0xA64E,
+ 0xA64F,
+ 0xA650,
+ 0xA651,
+ 0xA652,
+ 0xA653,
+ 0xA654,
+ 0xA655,
+ 0xA656,
+ 0xA657,
+ 0xA658,
+ 0xA659,
+ 0xA65A,
+ 0xA65B,
+ 0xA65C,
+ 0xA65D,
+ 0xA65E,
+ 0xA65F,
+ 0xA660,
+ 0xA661,
+ 0xA662,
+ 0xA663,
+ 0xA664,
+ 0xA665,
+ 0xA666,
+ 0xA667,
+ 0xA668,
+ 0xA669,
+ 0xA66A,
+ 0xA66B,
+ 0xA66C,
+ 0xA66D,
+ 0xA680,
+ 0xA681,
+ 0xA682,
+ 0xA683,
+ 0xA684,
+ 0xA685,
+ 0xA686,
+ 0xA687,
+ 0xA688,
+ 0xA689,
+ 0xA68A,
+ 0xA68B,
+ 0xA68C,
+ 0xA68D,
+ 0xA68E,
+ 0xA68F,
+ 0xA690,
+ 0xA691,
+ 0xA692,
+ 0xA693,
+ 0xA694,
+ 0xA695,
+ 0xA696,
+ 0xA697,
+ 0xA698,
+ 0xA699,
+ 0xA69A,
+ 0xA69B,
+ 0xA722,
+ 0xA723,
+ 0xA724,
+ 0xA725,
+ 0xA726,
+ 0xA727,
+ 0xA728,
+ 0xA729,
+ 0xA72A,
+ 0xA72B,
+ 0xA72C,
+ 0xA72D,
+ 0xA72E,
+ 0xA72F,
+ 0xA732,
+ 0xA733,
+ 0xA734,
+ 0xA735,
+ 0xA736,
+ 0xA737,
+ 0xA738,
+ 0xA739,
+ 0xA73A,
+ 0xA73B,
+ 0xA73C,
+ 0xA73D,
+ 0xA73E,
+ 0xA73F,
+ 0xA740,
+ 0xA741,
+ 0xA742,
+ 0xA743,
+ 0xA744,
+ 0xA745,
+ 0xA746,
+ 0xA747,
+ 0xA748,
+ 0xA749,
+ 0xA74A,
+ 0xA74B,
+ 0xA74C,
+ 0xA74D,
+ 0xA74E,
+ 0xA74F,
+ 0xA750,
+ 0xA751,
+ 0xA752,
+ 0xA753,
+ 0xA754,
+ 0xA755,
+ 0xA756,
+ 0xA757,
+ 0xA758,
+ 0xA759,
+ 0xA75A,
+ 0xA75B,
+ 0xA75C,
+ 0xA75D,
+ 0xA75E,
+ 0xA75F,
+ 0xA760,
+ 0xA761,
+ 0xA762,
+ 0xA763,
+ 0xA764,
+ 0xA765,
+ 0xA766,
+ 0xA767,
+ 0xA768,
+ 0xA769,
+ 0xA76A,
+ 0xA76B,
+ 0xA76C,
+ 0xA76D,
+ 0xA76E,
+ 0xA76F,
+ 0xA779,
+ 0xA77A,
+ 0xA77B,
+ 0xA77C,
+ 0xA77D,
+ 0xA77F,
+ 0xA780,
+ 0xA781,
+ 0xA782,
+ 0xA783,
+ 0xA784,
+ 0xA785,
+ 0xA786,
+ 0xA787,
+ 0xA78B,
+ 0xA78C,
+ 0xA78D,
+ 0xA78E,
+ 0xA790,
+ 0xA791,
+ 0xA792,
+ 0xA793,
+ 0xA796,
+ 0xA797,
+ 0xA798,
+ 0xA799,
+ 0xA79A,
+ 0xA79B,
+ 0xA79C,
+ 0xA79D,
+ 0xA79E,
+ 0xA79F,
+ 0xA7A0,
+ 0xA7A1,
+ 0xA7A2,
+ 0xA7A3,
+ 0xA7A4,
+ 0xA7A5,
+ 0xA7A6,
+ 0xA7A7,
+ 0xA7A8,
+ 0xA7A9,
+ 0xA7AA,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xFF21,
+ 0xFF3B,
+ 0x10400,
+ 0x10428,
+ 0x118A0,
+ 0x118C0,
+ 0x1D400,
+ 0x1D41A,
+ 0x1D434,
+ 0x1D44E,
+ 0x1D468,
+ 0x1D482,
+ 0x1D49C,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4B6,
+ 0x1D4D0,
+ 0x1D4EA,
+ 0x1D504,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D538,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D56C,
+ 0x1D586,
+ 0x1D5A0,
+ 0x1D5BA,
+ 0x1D5D4,
+ 0x1D5EE,
+ 0x1D608,
+ 0x1D622,
+ 0x1D63C,
+ 0x1D656,
+ 0x1D670,
+ 0x1D68A,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6E2,
+ 0x1D6FB,
+ 0x1D71C,
+ 0x1D735,
+ 0x1D756,
+ 0x1D76F,
+ 0x1D790,
+ 0x1D7A9,
+ 0x1D7CA,
+ 0x1D7CB,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A
+};
+
+static const UV XPosixWord_invlist[] = { /* for EBCDIC POSIX-BC */
+ 1283, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x42,
+ 0x4A,
+ 0x51,
+ 0x5A,
+ 0x62,
+ 0x6A,
+ 0x6D,
+ 0x6E,
+ 0x70,
+ 0x79,
+ 0x80,
+ 0x8A,
+ 0x8C,
+ 0x8F,
+ 0x91,
+ 0x9D,
+ 0x9E,
+ 0x9F,
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xAA,
+ 0xAC,
+ 0xAF,
+ 0xC0,
+ 0xCA,
+ 0xCB,
+ 0xD0,
+ 0xD1,
+ 0xDA,
+ 0xDB,
+ 0xE1,
+ 0xE2,
+ 0xEA,
+ 0xEB,
+ 0xFA,
+ 0xFC,
+ 0xFD,
+ 0xFE,
+ 0xFF,
+ 0x100,
+ 0x2C2,
+ 0x2C6,
+ 0x2D2,
+ 0x2E0,
+ 0x2E5,
+ 0x2EC,
+ 0x2ED,
+ 0x2EE,
+ 0x2EF,
+ 0x300,
+ 0x375,
+ 0x376,
+ 0x378,
+ 0x37A,
+ 0x37E,
+ 0x37F,
+ 0x380,
+ 0x386,
+ 0x387,
+ 0x388,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x3F6,
+ 0x3F7,
+ 0x482,
+ 0x483,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x55A,
+ 0x561,
+ 0x588,
+ 0x591,
+ 0x5BE,
+ 0x5BF,
+ 0x5C0,
+ 0x5C1,
+ 0x5C3,
+ 0x5C4,
+ 0x5C6,
+ 0x5C7,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5F0,
+ 0x5F3,
+ 0x610,
+ 0x61B,
+ 0x620,
+ 0x66A,
+ 0x66E,
+ 0x6D4,
+ 0x6D5,
+ 0x6DD,
+ 0x6DF,
+ 0x6E9,
+ 0x6EA,
+ 0x6FD,
+ 0x6FF,
+ 0x700,
+ 0x710,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7F6,
+ 0x7FA,
+ 0x7FB,
+ 0x800,
+ 0x82E,
+ 0x840,
+ 0x85C,
+ 0x8A0,
+ 0x8B3,
+ 0x8E4,
+ 0x964,
+ 0x966,
+ 0x970,
+ 0x971,
+ 0x984,
+ 0x985,
+ 0x98D,
+ 0x98F,
+ 0x991,
+ 0x993,
+ 0x9A9,
+ 0x9AA,
+ 0x9B1,
+ 0x9B2,
+ 0x9B3,
+ 0x9B6,
+ 0x9BA,
+ 0x9BC,
+ 0x9C5,
+ 0x9C7,
+ 0x9C9,
+ 0x9CB,
+ 0x9CF,
+ 0x9D7,
+ 0x9D8,
+ 0x9DC,
+ 0x9DE,
+ 0x9DF,
+ 0x9E4,
+ 0x9E6,
+ 0x9F2,
+ 0xA01,
+ 0xA04,
+ 0xA05,
+ 0xA0B,
+ 0xA0F,
+ 0xA11,
+ 0xA13,
+ 0xA29,
+ 0xA2A,
+ 0xA31,
+ 0xA32,
+ 0xA34,
+ 0xA35,
+ 0xA37,
+ 0xA38,
+ 0xA3A,
+ 0xA3C,
+ 0xA3D,
+ 0xA3E,
+ 0xA43,
+ 0xA47,
+ 0xA49,
+ 0xA4B,
+ 0xA4E,
+ 0xA51,
+ 0xA52,
+ 0xA59,
+ 0xA5D,
+ 0xA5E,
+ 0xA5F,
+ 0xA66,
+ 0xA76,
+ 0xA81,
+ 0xA84,
+ 0xA85,
+ 0xA8E,
+ 0xA8F,
+ 0xA92,
+ 0xA93,
+ 0xAA9,
+ 0xAAA,
+ 0xAB1,
+ 0xAB2,
+ 0xAB4,
+ 0xAB5,
+ 0xABA,
+ 0xABC,
+ 0xAC6,
+ 0xAC7,
+ 0xACA,
+ 0xACB,
+ 0xACE,
+ 0xAD0,
+ 0xAD1,
+ 0xAE0,
+ 0xAE4,
+ 0xAE6,
+ 0xAF0,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB56,
+ 0xB58,
+ 0xB5C,
+ 0xB5E,
+ 0xB5F,
+ 0xB64,
+ 0xB66,
+ 0xB70,
+ 0xB71,
+ 0xB72,
+ 0xB82,
+ 0xB84,
+ 0xB85,
+ 0xB8B,
+ 0xB8E,
+ 0xB91,
+ 0xB92,
+ 0xB96,
+ 0xB99,
+ 0xB9B,
+ 0xB9C,
+ 0xB9D,
+ 0xB9E,
+ 0xBA0,
+ 0xBA3,
+ 0xBA5,
+ 0xBA8,
+ 0xBAB,
+ 0xBAE,
+ 0xBBA,
+ 0xBBE,
+ 0xBC3,
+ 0xBC6,
+ 0xBC9,
+ 0xBCA,
+ 0xBCE,
+ 0xBD0,
+ 0xBD1,
+ 0xBD7,
+ 0xBD8,
+ 0xBE6,
+ 0xBF0,
+ 0xC00,
+ 0xC04,
+ 0xC05,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3D,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5A,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC81,
+ 0xC84,
+ 0xC85,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDE,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD01,
+ 0xD04,
+ 0xD05,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD3B,
+ 0xD3D,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD4F,
+ 0xD57,
+ 0xD58,
+ 0xD60,
+ 0xD64,
+ 0xD66,
+ 0xD70,
+ 0xD7A,
+ 0xD80,
+ 0xD82,
+ 0xD84,
+ 0xD85,
+ 0xD97,
+ 0xD9A,
+ 0xDB2,
+ 0xDB3,
+ 0xDBC,
+ 0xDBD,
+ 0xDBE,
+ 0xDC0,
+ 0xDC7,
+ 0xDCA,
+ 0xDCB,
+ 0xDCF,
+ 0xDD5,
+ 0xDD6,
+ 0xDD7,
+ 0xDD8,
+ 0xDE0,
+ 0xDE6,
+ 0xDF0,
+ 0xDF2,
+ 0xDF4,
+ 0xE01,
+ 0xE3B,
+ 0xE40,
+ 0xE4F,
+ 0xE50,
+ 0xE5A,
+ 0xE81,
+ 0xE83,
+ 0xE84,
+ 0xE85,
+ 0xE87,
+ 0xE89,
+ 0xE8A,
+ 0xE8B,
+ 0xE8D,
+ 0xE8E,
+ 0xE94,
+ 0xE98,
+ 0xE99,
+ 0xEA0,
+ 0xEA1,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEA8,
+ 0xEAA,
+ 0xEAC,
+ 0xEAD,
+ 0xEBA,
+ 0xEBB,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECE,
+ 0xED0,
+ 0xEDA,
+ 0xEDC,
+ 0xEE0,
+ 0xF00,
+ 0xF01,
+ 0xF18,
+ 0xF1A,
+ 0xF20,
+ 0xF2A,
+ 0xF35,
+ 0xF36,
+ 0xF37,
+ 0xF38,
+ 0xF39,
+ 0xF3A,
+ 0xF3E,
+ 0xF48,
+ 0xF49,
+ 0xF6D,
+ 0xF71,
+ 0xF85,
+ 0xF86,
+ 0xF98,
+ 0xF99,
+ 0xFBD,
+ 0xFC6,
+ 0xFC7,
+ 0x1000,
+ 0x104A,
+ 0x1050,
+ 0x109E,
+ 0x10A0,
+ 0x10C6,
+ 0x10C7,
+ 0x10C8,
+ 0x10CD,
+ 0x10CE,
+ 0x10D0,
+ 0x10FB,
+ 0x10FC,
+ 0x1249,
+ 0x124A,
+ 0x124E,
+ 0x1250,
+ 0x1257,
+ 0x1258,
+ 0x1259,
+ 0x125A,
+ 0x125E,
+ 0x1260,
+ 0x1289,
+ 0x128A,
+ 0x128E,
+ 0x1290,
+ 0x12B1,
+ 0x12B2,
+ 0x12B6,
+ 0x12B8,
+ 0x12BF,
+ 0x12C0,
+ 0x12C1,
+ 0x12C2,
+ 0x12C6,
+ 0x12C8,
+ 0x12D7,
+ 0x12D8,
+ 0x1311,
+ 0x1312,
+ 0x1316,
+ 0x1318,
+ 0x135B,
+ 0x135D,
+ 0x1360,
+ 0x1380,
+ 0x1390,
+ 0x13A0,
+ 0x13F5,
+ 0x1401,
+ 0x166D,
+ 0x166F,
+ 0x1680,
+ 0x1681,
+ 0x169B,
+ 0x16A0,
+ 0x16EB,
+ 0x16EE,
+ 0x16F9,
+ 0x1700,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1720,
+ 0x1735,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17D4,
+ 0x17D7,
+ 0x17D8,
+ 0x17DC,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x180B,
+ 0x180E,
+ 0x1810,
+ 0x181A,
+ 0x1820,
+ 0x1878,
+ 0x1880,
+ 0x18AB,
+ 0x18B0,
+ 0x18F6,
+ 0x1900,
+ 0x191F,
+ 0x1920,
+ 0x192C,
+ 0x1930,
+ 0x193C,
+ 0x1946,
+ 0x196E,
+ 0x1970,
+ 0x1975,
+ 0x1980,
+ 0x19AC,
+ 0x19B0,
+ 0x19CA,
+ 0x19D0,
+ 0x19DA,
+ 0x1A00,
+ 0x1A1C,
+ 0x1A20,
+ 0x1A5F,
+ 0x1A60,
+ 0x1A7D,
+ 0x1A7F,
+ 0x1A8A,
+ 0x1A90,
+ 0x1A9A,
+ 0x1AA7,
+ 0x1AA8,
+ 0x1AB0,
+ 0x1ABF,
+ 0x1B00,
+ 0x1B4C,
+ 0x1B50,
+ 0x1B5A,
+ 0x1B6B,
+ 0x1B74,
+ 0x1B80,
+ 0x1BF4,
+ 0x1C00,
+ 0x1C38,
+ 0x1C40,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C7E,
+ 0x1CD0,
+ 0x1CD3,
+ 0x1CD4,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFC,
+ 0x1F16,
+ 0x1F18,
+ 0x1F1E,
+ 0x1F20,
+ 0x1F46,
+ 0x1F48,
+ 0x1F4E,
+ 0x1F50,
+ 0x1F58,
+ 0x1F59,
+ 0x1F5A,
+ 0x1F5B,
+ 0x1F5C,
+ 0x1F5D,
+ 0x1F5E,
+ 0x1F5F,
+ 0x1F7E,
+ 0x1F80,
+ 0x1FB5,
+ 0x1FB6,
+ 0x1FBD,
+ 0x1FBE,
+ 0x1FBF,
+ 0x1FC2,
+ 0x1FC5,
+ 0x1FC6,
+ 0x1FCD,
+ 0x1FD0,
+ 0x1FD4,
+ 0x1FD6,
+ 0x1FDC,
+ 0x1FE0,
+ 0x1FED,
+ 0x1FF2,
+ 0x1FF5,
+ 0x1FF6,
+ 0x1FFD,
+ 0x200C,
+ 0x200E,
+ 0x203F,
+ 0x2041,
+ 0x2054,
+ 0x2055,
+ 0x2071,
+ 0x2072,
+ 0x207F,
+ 0x2080,
+ 0x2090,
+ 0x209D,
+ 0x20D0,
+ 0x20F1,
+ 0x2102,
+ 0x2103,
+ 0x2107,
+ 0x2108,
+ 0x210A,
+ 0x2114,
+ 0x2115,
+ 0x2116,
+ 0x2119,
+ 0x211E,
+ 0x2124,
+ 0x2125,
+ 0x2126,
+ 0x2127,
+ 0x2128,
+ 0x2129,
+ 0x212A,
+ 0x212E,
+ 0x212F,
+ 0x213A,
+ 0x213C,
+ 0x2140,
+ 0x2145,
+ 0x214A,
+ 0x214E,
+ 0x214F,
+ 0x2160,
+ 0x2189,
+ 0x24B6,
+ 0x24EA,
+ 0x2C00,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2CE5,
+ 0x2CEB,
+ 0x2CF4,
+ 0x2D00,
+ 0x2D26,
+ 0x2D27,
+ 0x2D28,
+ 0x2D2D,
+ 0x2D2E,
+ 0x2D30,
+ 0x2D68,
+ 0x2D6F,
+ 0x2D70,
+ 0x2D7F,
+ 0x2D97,
+ 0x2DA0,
+ 0x2DA7,
+ 0x2DA8,
+ 0x2DAF,
+ 0x2DB0,
+ 0x2DB7,
+ 0x2DB8,
+ 0x2DBF,
+ 0x2DC0,
+ 0x2DC7,
+ 0x2DC8,
+ 0x2DCF,
+ 0x2DD0,
+ 0x2DD7,
+ 0x2DD8,
+ 0x2DDF,
+ 0x2DE0,
+ 0x2E00,
+ 0x2E2F,
+ 0x2E30,
+ 0x3005,
+ 0x3008,
+ 0x3021,
+ 0x3030,
+ 0x3031,
+ 0x3036,
+ 0x3038,
+ 0x303D,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x309B,
+ 0x309D,
+ 0x30A0,
+ 0x30A1,
+ 0x30FB,
+ 0x30FC,
+ 0x3100,
+ 0x3105,
+ 0x312E,
+ 0x3131,
+ 0x318F,
+ 0x31A0,
+ 0x31BB,
+ 0x31F0,
+ 0x3200,
+ 0x3400,
+ 0x4DB6,
+ 0x4E00,
+ 0x9FCD,
+ 0xA000,
+ 0xA48D,
+ 0xA4D0,
+ 0xA4FE,
+ 0xA500,
+ 0xA60D,
+ 0xA610,
+ 0xA62C,
+ 0xA640,
+ 0xA673,
+ 0xA674,
+ 0xA67E,
+ 0xA67F,
+ 0xA69E,
+ 0xA69F,
+ 0xA6F2,
+ 0xA717,
+ 0xA720,
+ 0xA722,
+ 0xA789,
+ 0xA78B,
+ 0xA78F,
+ 0xA790,
+ 0xA7AE,
+ 0xA7B0,
+ 0xA7B2,
+ 0xA7F7,
+ 0xA828,
+ 0xA840,
+ 0xA874,
+ 0xA880,
+ 0xA8C5,
+ 0xA8D0,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8F8,
+ 0xA8FB,
+ 0xA8FC,
+ 0xA900,
+ 0xA92E,
+ 0xA930,
+ 0xA954,
+ 0xA960,
+ 0xA97D,
+ 0xA980,
+ 0xA9C1,
+ 0xA9CF,
+ 0xA9DA,
+ 0xA9E0,
+ 0xA9FF,
+ 0xAA00,
+ 0xAA37,
+ 0xAA40,
+ 0xAA4E,
+ 0xAA50,
+ 0xAA5A,
+ 0xAA60,
+ 0xAA77,
+ 0xAA7A,
+ 0xAAC3,
+ 0xAADB,
+ 0xAADE,
+ 0xAAE0,
+ 0xAAF0,
+ 0xAAF2,
+ 0xAAF7,
+ 0xAB01,
+ 0xAB07,
+ 0xAB09,
+ 0xAB0F,
+ 0xAB11,
+ 0xAB17,
+ 0xAB20,
+ 0xAB27,
+ 0xAB28,
+ 0xAB2F,
+ 0xAB30,
+ 0xAB5B,
+ 0xAB5C,
+ 0xAB60,
+ 0xAB64,
+ 0xAB66,
+ 0xABC0,
+ 0xABEB,
+ 0xABEC,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xF900,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB29,
+ 0xFB2A,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBB2,
+ 0xFBD3,
+ 0xFD3E,
+ 0xFD50,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDF0,
+ 0xFDFC,
+ 0xFE00,
+ 0xFE10,
+ 0xFE20,
+ 0xFE2E,
+ 0xFE33,
+ 0xFE35,
+ 0xFE4D,
+ 0xFE50,
+ 0xFE70,
+ 0xFE75,
+ 0xFE76,
+ 0xFEFD,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF3B,
+ 0xFF3F,
+ 0xFF40,
+ 0xFF41,
+ 0xFF5B,
+ 0xFF66,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
+ 0x10000,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10140,
+ 0x10175,
+ 0x101FD,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102E1,
+ 0x10300,
+ 0x10320,
+ 0x10330,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x103A0,
+ 0x103C4,
+ 0x103C8,
+ 0x103D0,
+ 0x103D1,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10860,
+ 0x10877,
+ 0x10880,
+ 0x1089F,
+ 0x10900,
+ 0x10916,
+ 0x10920,
+ 0x1093A,
+ 0x10980,
+ 0x109B8,
+ 0x109BE,
+ 0x109C0,
+ 0x10A00,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A34,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A40,
+ 0x10A60,
+ 0x10A7D,
+ 0x10A80,
+ 0x10A9D,
+ 0x10AC0,
+ 0x10AC8,
+ 0x10AC9,
+ 0x10AE7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B40,
+ 0x10B56,
+ 0x10B60,
+ 0x10B73,
+ 0x10B80,
+ 0x10B92,
+ 0x10C00,
+ 0x10C49,
+ 0x11000,
+ 0x11047,
+ 0x11066,
+ 0x11070,
+ 0x1107F,
+ 0x110BB,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11140,
+ 0x11150,
+ 0x11174,
+ 0x11176,
+ 0x11177,
+ 0x11180,
+ 0x111C5,
+ 0x111D0,
+ 0x111DB,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11238,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11301,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11480,
+ 0x114C6,
+ 0x114C7,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115C1,
+ 0x11600,
+ 0x11641,
+ 0x11644,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x118A0,
+ 0x118EA,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x12000,
+ 0x12399,
+ 0x12400,
+ 0x1246F,
+ 0x13000,
+ 0x1342F,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF5,
+ 0x16B00,
+ 0x16B37,
+ 0x16B40,
+ 0x16B44,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16F00,
+ 0x16F45,
+ 0x16F50,
+ 0x16F7F,
+ 0x16F8F,
+ 0x16FA0,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9D,
+ 0x1BC9F,
+ 0x1D165,
+ 0x1D16A,
+ 0x1D16D,
+ 0x1D173,
+ 0x1D17B,
+ 0x1D183,
+ 0x1D185,
+ 0x1D18C,
+ 0x1D1AA,
+ 0x1D1AE,
+ 0x1D242,
+ 0x1D245,
+ 0x1D400,
+ 0x1D455,
+ 0x1D456,
+ 0x1D49D,
+ 0x1D49E,
+ 0x1D4A0,
+ 0x1D4A2,
+ 0x1D4A3,
+ 0x1D4A5,
+ 0x1D4A7,
+ 0x1D4A9,
+ 0x1D4AD,
+ 0x1D4AE,
+ 0x1D4BA,
+ 0x1D4BB,
+ 0x1D4BC,
+ 0x1D4BD,
+ 0x1D4C4,
+ 0x1D4C5,
+ 0x1D506,
+ 0x1D507,
+ 0x1D50B,
+ 0x1D50D,
+ 0x1D515,
+ 0x1D516,
+ 0x1D51D,
+ 0x1D51E,
+ 0x1D53A,
+ 0x1D53B,
+ 0x1D53F,
+ 0x1D540,
+ 0x1D545,
+ 0x1D546,
+ 0x1D547,
+ 0x1D54A,
+ 0x1D551,
+ 0x1D552,
+ 0x1D6A6,
+ 0x1D6A8,
+ 0x1D6C1,
+ 0x1D6C2,
+ 0x1D6DB,
+ 0x1D6DC,
+ 0x1D6FB,
+ 0x1D6FC,
+ 0x1D715,
+ 0x1D716,
+ 0x1D735,
+ 0x1D736,
+ 0x1D74F,
+ 0x1D750,
+ 0x1D76F,
+ 0x1D770,
+ 0x1D789,
+ 0x1D78A,
+ 0x1D7A9,
+ 0x1D7AA,
+ 0x1D7C3,
+ 0x1D7C4,
+ 0x1D7CC,
+ 0x1D7CE,
+ 0x1D800,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8D0,
+ 0x1E8D7,
+ 0x1EE00,
+ 0x1EE04,
+ 0x1EE05,
+ 0x1EE20,
+ 0x1EE21,
+ 0x1EE23,
+ 0x1EE24,
+ 0x1EE25,
+ 0x1EE27,
+ 0x1EE28,
+ 0x1EE29,
+ 0x1EE33,
+ 0x1EE34,
+ 0x1EE38,
+ 0x1EE39,
+ 0x1EE3A,
+ 0x1EE3B,
+ 0x1EE3C,
+ 0x1EE42,
+ 0x1EE43,
+ 0x1EE47,
+ 0x1EE48,
+ 0x1EE49,
+ 0x1EE4A,
+ 0x1EE4B,
+ 0x1EE4C,
+ 0x1EE4D,
+ 0x1EE50,
+ 0x1EE51,
+ 0x1EE53,
+ 0x1EE54,
+ 0x1EE55,
+ 0x1EE57,
+ 0x1EE58,
+ 0x1EE59,
+ 0x1EE5A,
+ 0x1EE5B,
+ 0x1EE5C,
+ 0x1EE5D,
+ 0x1EE5E,
+ 0x1EE5F,
+ 0x1EE60,
+ 0x1EE61,
+ 0x1EE63,
+ 0x1EE64,
+ 0x1EE65,
+ 0x1EE67,
+ 0x1EE6B,
+ 0x1EE6C,
+ 0x1EE73,
+ 0x1EE74,
+ 0x1EE78,
+ 0x1EE79,
+ 0x1EE7D,
+ 0x1EE7E,
+ 0x1EE7F,
+ 0x1EE80,
+ 0x1EE8A,
+ 0x1EE8B,
+ 0x1EE9C,
+ 0x1EEA1,
+ 0x1EEA4,
+ 0x1EEA5,
+ 0x1EEAA,
+ 0x1EEAB,
+ 0x1EEBC,
+ 0x1F130,
+ 0x1F14A,
+ 0x1F150,
+ 0x1F16A,
+ 0x1F170,
+ 0x1F18A,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0100,
+ 0xE01F0
+};
+
+static const UV XPosixXDigit_invlist[] = { /* for EBCDIC POSIX-BC */
+ 13, /* Number of elements */
+ 148565664, /* Version and data structure type */
+ 1, /* 0 if the list starts at 0;
+ 1 if it starts at the element beyond 0 */
+ 0x0,
+ 0x81,
+ 0x87,
+ 0xC1,
+ 0xC7,
+ 0xF0,
+ 0xFA,
+ 0xFF10,
+ 0xFF1A,
+ 0xFF21,
+ 0xFF27,
+ 0xFF41,
+ 0xFF47
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#endif /* EBCDIC POSIX-BC */
-/* ex: set ro: */
+/* Generated from:
+ * 083180df694deb1fc173361406c1a75619fb8376403db3a76dc585c1e3951eca lib/Unicode/UCD.pm
+ * 827aa7ee45ca9fe09f3e0969a5a27a69ce58a6c7134548125266210018d27b49 lib/unicore/ArabicShaping.txt
+ * 3748fbbe9d280a9da700bfd0c28beaaf6f32a67ec263a124fcb0a4095a30fae5 lib/unicore/BidiBrackets.txt
+ * 3925329c2432fa7248b2e180cddcedb9a4f9eafbbb10ab9e105eaf833043b2fb lib/unicore/BidiMirroring.txt
+ * 7f5a1b4a346c6cdbe948d3baf50fc31fff29c26bcd4ad422dc1fbcc1c23b0bde lib/unicore/Blocks.txt
+ * 82f3cc8217455f22d294d7df767a62906baf31456ea8902336ae7fee943a2538 lib/unicore/CaseFolding.txt
+ * 8be553529f7dd22e3e0ffa25eb3f1743f5243bbfe868559be73bf3a163c21913 lib/unicore/CompositionExclusions.txt
+ * ab64278818411762311b9d5974438ac5cf14e98c79b44a6373022f0780de38a7 lib/unicore/DAge.txt
+ * f2ff892add5e6624cee8300c297373216df7f1a596c6e74510afe5e8b96c8d91 lib/unicore/DCoreProperties.txt
+ * 656aa2c6996a049e84c6d38676bc73c3245c808869d64073b812690ae475d534 lib/unicore/DNormalizationProps.txt
+ * e064b066e555cbace95951fcba9b5336a4d04c88c5949a1ff7615190eaa67682 lib/unicore/EastAsianWidth.txt
+ * 2aa574984e9cea6980eddd6e36044168d543b7f0449266fa3248aca28790cf06 lib/unicore/HangulSyllableType.txt
+ * e7122c4d4d598854b5fbefeb2b1ee9f05aef6a8d6e718b5f56c2a8ea31145f12 lib/unicore/IndicMatraCategory.txt
+ * 478ca00ea86b47209f0b27eb3959ad83cb2b76f5159213d242390d07d5af2b8d lib/unicore/IndicSyllabicCategory.txt
+ * 0aa8af5cbb4d0570b1006aefffc021c6ef637dffb15572a5a85e7f7e7778fe22 lib/unicore/Jamo.txt
+ * 3b359eeff325f7e773ea9d5feb8af053b94c579844f0db7ce648f418c9d136d8 lib/unicore/LineBreak.txt
+ * af85d961d0ed6055271ca6e0174451a8dc1822e31de9e07e1246535318b9341a lib/unicore/NameAliases.txt
+ * 1c379b9c1b0f6cd14208b766f74fc92ff5a9528aee66083db307f1fc9a615729 lib/unicore/NamedSequences.txt
+ * 0df343d93293f14e9ff0b0a721d8b8e6c23c86dbad7be18d362d6bf1281590d9 lib/unicore/PropList.txt
+ * 6c14f474761b8db46f95cf2d1e235ce40abf3382226c5b1a2210df83775fe6fa lib/unicore/PropValueAliases.txt
+ * 3f3dd77644faa905ce02de7c0e3167fdc4afdf94748f074192bd70821c8341ea lib/unicore/PropertyAliases.txt
+ * 2767531dec8c525a317ab488b95eed73461fe9c6fbb8088594f3886964724475 lib/unicore/ScriptExtensions.txt
+ * a638f9f0eb3c521ed6c7755fce93c04bf6e4ba89f23ac3d1bd4c4e486c400118 lib/unicore/Scripts.txt
+ * 35496d45fc8babd8deb866491ea82ff7b3d2d49ad4c9c656685cd14833101e25 lib/unicore/SpecialCasing.txt
+ * bfa3da58ea982199829e1107ac5a9a544b83100470a2d0cc28fb50ec234cb840 lib/unicore/UnicodeData.txt
+ * 916289f471c4a337fb1e0715985a11e6bc8bb205736e84164849d601d265d9e0 lib/unicore/auxiliary/GCBTest.txt
+ * 3d7ffae56e506d595f3e0e5d36978bc6721d53470e5ca9666ad7cdfc4a46cb3d lib/unicore/auxiliary/GraphemeBreakProperty.txt
+ * 370ddf3ba9b337819cf21795c2bd7cda578ac5ff4700d1a3ac923e8be988b57e lib/unicore/auxiliary/SBTest.txt
+ * 28356f6912113a9fe8244d9396e9786115dbc10b3ffb5e31b08969122e91d3f3 lib/unicore/auxiliary/SentenceBreakProperty.txt
+ * 3f56d3ccfc35c6dac44d143a4d6087af4e4ee9f1bdbae482c12f6149b60dec3b lib/unicore/auxiliary/WBTest.txt
+ * 82f7304030e6866ef8e02cdfb0485c52c18a661282bfce9c259cc6300abd79ad lib/unicore/auxiliary/WordBreakProperty.txt
+ * b88801b4a469207892a0401697c6b1c5fd64042ae0ef867f4ad0ec04942b415c lib/unicore/extracted/DBidiClass.txt
+ * 074d33ea6c7349eab840d690369dffb3568e2f7b039552b7c10480274d321545 lib/unicore/extracted/DBinaryProperties.txt
+ * 8ad457aef3525aedce823b9177dad33e0088df536dff11e3df405ecefc92ba08 lib/unicore/extracted/DCombiningClass.txt
+ * 59ec46c1e30458ffff50d41196fd45e3bbaf3172a8111117af1b930199be2d96 lib/unicore/extracted/DDecompositionType.txt
+ * cf7c07557ae915a7508c6c7fc8c2e8c900782364ec62e8a5d2813f3b97449ee0 lib/unicore/extracted/DEastAsianWidth.txt
+ * 56a5b47331a7ec784e848bcaae1ddc08cbf72aab583ca82dcc98ecf2851a3d43 lib/unicore/extracted/DGeneralCategory.txt
+ * c14e83161e56eb15d78b1589352d6c0bd8feb7889a5d17f70a2ebb2a43cab86d lib/unicore/extracted/DJoinGroup.txt
+ * 8c9405c54d8b1dd3fe2f2d691b30c0816ca15481995152ed07fc9b844dfd0ad4 lib/unicore/extracted/DJoinType.txt
+ * a9791f08281d7b0a417e4ad882cf64463f6815db8156932acd85228ac717fd94 lib/unicore/extracted/DLineBreak.txt
+ * a17a0330e57d774343a53c019f1bc69827c2676982a1bf48e0898a76710e8877 lib/unicore/extracted/DNumType.txt
+ * c2cb810a67cc5fb4a8d236b6c1bc6dd4d89733d8603881997e8aae2c816a3db1 lib/unicore/extracted/DNumValues.txt
+ * 808d76136d9952faf581347e9bc040dbab5158f143f243a6de455a4af39b7401 lib/unicore/mktables
+ * 746472de66b936ac885ca6d6e68058242b4e909e3260c6317f3ec719f78f76cc lib/unicore/version
+ * 4360c31f23eb368e0f3bfd045a44d3bc37ff0889e216f686ebea02543ac188d9 regen/mk_invlists.pl
+ * ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/config.h b/Master/tlpkg/tlperl/lib/CORE/config.h
index cd9bfd51d2c..ba6573ac7b8 100644
--- a/Master/tlpkg/tlperl/lib/CORE/config.h
+++ b/Master/tlpkg/tlperl/lib/CORE/config.h
@@ -9,7 +9,7 @@
/* Package name : perl5
* Source directory :
- * Configuration time: Fri Apr 24 15:37:17 2015
+ * Configuration time: Sun Mar 13 16:28:51 2016
* Configured by : siepo
* Target system :
*/
@@ -46,6 +46,12 @@
*/
/*#define HAS_BZERO / **/
+/* HAS_CBRT:
+ * This symbol, if defined, indicates that the cbrt() (cube root)
+ * function is available.
+ */
+/*#define HAS_CBRT / **/
+
/* HAS_CHOWN:
* This symbol, if defined, indicates that the chown routine is
* available.
@@ -246,13 +252,13 @@
/* HAS_MBSTOWCS:
* This symbol, if defined, indicates that the mbstowcs routine is
- * available to covert a multibyte string into a wide character string.
+ * available to convert a multibyte string into a wide character string.
*/
#define HAS_MBSTOWCS /**/
/* HAS_MBTOWC:
* This symbol, if defined, indicates that the mbtowc routine is available
- * to covert a multibyte to a wide character.
+ * to convert a multibyte to a wide character.
*/
#define HAS_MBTOWC /**/
@@ -384,6 +390,13 @@
*/
/*#define HAS_READLINK / **/
+/* HAS_REGCOMP:
+ * This symbol, if defined, indicates that the regcomp() routine is
+ * available to do some regular patern matching (usually on POSIX.2
+ * conforming systems).
+ */
+/*#define HAS_REGCOMP / * POSIX.2 */
+
/* HAS_RENAME:
* This symbol, if defined, indicates that the rename routine is available
* to rename files. Otherwise you should do the unlink(), link(), unlink()
@@ -499,6 +512,12 @@
*/
/*#define HAS_SETSID / **/
+/* HAS_STAT:
+ * This symbol, if defined, indicates that the stat routine is
+ * available to get file status.
+ */
+#define HAS_STAT /**/
+
/* HAS_STRCHR:
* This symbol is defined to indicate that the strchr()/strrchr()
* functions are available for string searching. If not, try the
@@ -614,7 +633,7 @@
/* HAS_WCTOMB:
* This symbol, if defined, indicates that the wctomb routine is available
- * to covert a wide character to a multibyte.
+ * to convert a wide character to a multibyte.
*/
#define HAS_WCTOMB /**/
@@ -864,7 +883,7 @@
* feature tests from Configure are generally more reliable.
*/
#define OSNAME "MSWin32" /**/
-#define OSVERS "4.0" /**/
+#define OSVERS "6.1" /**/
/* MULTIARCH:
* This symbol, if defined, signifies that the build
@@ -943,17 +962,8 @@
* This symbol holds the hexadecimal constant defined in byteorder,
* in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc...
* If the compiler supports cross-compiling or multiple-architecture
- * binaries (e.g. on NeXT systems), use compiler-defined macros to
+ * binaries, use compiler-defined macros to
* determine the byte order.
- * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
- * Binaries (MAB) on either big endian or little endian machines.
- * The endian-ness is available at compile-time. This only matters
- * for perl, where the config.h can be generated and installed on
- * one system, and used by a different architecture to build an
- * extension. Older versions of NeXT that might not have
- * defined either *_ENDIAN__ were all on Motorola 680x0 series,
- * so the default case (for NeXT) is big endian to catch them.
- * This might matter for NeXT 3.0.
*/
#if defined(MULTIARCH)
# ifdef __LITTLE_ENDIAN__
@@ -975,12 +985,9 @@
# endif
# endif
# endif
-# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
-# define BYTEORDER 0x4321
-# endif
#else
#define BYTEORDER 0x1234 /* large digits for MSB */
-#endif /* NeXT */
+#endif
/* CHARBITS:
* This symbol contains the size of a char, so that the C preprocessor
@@ -1102,6 +1109,13 @@
/*#define HASATTRIBUTE_UNUSED / **/
/*#define HASATTRIBUTE_WARN_UNUSED_RESULT / **/
+/* HAS_BACKTRACE:
+ * This symbol, if defined, indicates that the backtrace() routine is
+ * available to get a stack trace. The <execinfo.h> header must be
+ * included to use this routine.
+ */
+/*#define HAS_BACKTRACE / **/
+
/* CASTI32:
* This symbol is defined if the C compiler can cast negative
* or large floating point numbers to 32-bit ints.
@@ -1190,6 +1204,13 @@
/*#define HAS_CTIME_R / **/
#define CTIME_R_PROTO 0 /**/
+/* HAS_DLADDR:
+ * This symbol, if defined, indicates that the dladdr() routine is
+ * available to query dynamic linker information for an address.
+ * The <dlfcn.h> header must be included to use this routine.
+ */
+/*#define HAS_DLADDR / **/
+
/* SETUID_SCRIPTS_ARE_SECURE_NOW:
* This symbol, if defined, indicates that the bug that prevents
* setuid scripts from being secure is not present in this kernel.
@@ -1896,11 +1917,39 @@
/* LONG_DOUBLESIZE:
* This symbol contains the size of a long double, so that the
* C preprocessor can make decisions based on it. It is only
- * defined if the system supports long doubles.
- */
+ * defined if the system supports long doubles. Note that this
+ * is sizeof(long double), which may include unused bytes.
+ */
+/* HAS_LDEXPL:
+ * This symbol, if defined, indicates that the ldexpl routine is
+ * available to shift a long double floating-point number
+ * by an integral power of 2.
+ */
+/* LONG_DOUBLEKIND:
+ * LONG_DOUBLEKIND will be one of
+ * LONG_DOUBLE_IS_DOUBLE
+ * LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+ * LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+ * LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN
+ * LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN
+ * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN
+ * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN
+ * LONG_DOUBLE_IS_UNKNOWN_FORMAT
+ * It is only defined if the system supports long doubles.
+ */
+/*#define HAS_LDEXPL / **/
#define HAS_LONG_DOUBLE /**/
#ifdef HAS_LONG_DOUBLE
#define LONG_DOUBLESIZE 12 /**/
+#define LONG_DOUBLEKIND 3 /**/
+#define LONG_DOUBLE_IS_DOUBLE 0
+#define LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN 1
+#define LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 2
+#define LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN 3
+#define LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN 4
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN 5
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN 6
+#define LONG_DOUBLE_IS_UNKNOWN_FORMAT -1
#endif
/* HAS_LONG_LONG:
@@ -2638,14 +2687,7 @@
* This symbol, if defined, indicates that this system uses
* EBCDIC encoding.
*/
-/* BOOTSTRAP_CHARSET:
- * This symbol, if defined, indicates that this system needs
- * converting various files to the native character set before
- * bringing up perl on a system that has a non-ASCII character
- * set and no working perl.
- */
/*#define EBCDIC / **/
-/*#define BOOTSTRAP_CHARSET / **/
/* Fpos_t:
* This symbol holds the type used to declare file positions in libc.
@@ -2699,6 +2741,12 @@
#define DIRNAMLEN /**/
#define Direntry_t struct direct
+/* I_EXECINFO:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <execinfo.h> for backtrace() support.
+ */
+/*#define I_EXECINFO / **/
+
/* I_GRP:
* This symbol, if defined, indicates to the C program that it should
* include <grp.h>.
@@ -2837,6 +2885,26 @@
*/
/*#define I_SYSUIO / **/
+/* I_TERMIO:
+ * This symbol, if defined, indicates that the program should include
+ * <termio.h> rather than <sgtty.h>. There are also differences in
+ * the ioctl() calls that depend on the value of this symbol.
+ */
+/* I_TERMIOS:
+ * This symbol, if defined, indicates that the program should include
+ * the POSIX termios.h rather than sgtty.h or termio.h.
+ * There are also differences in the ioctl() calls that depend on the
+ * value of this symbol.
+ */
+/* I_SGTTY:
+ * This symbol, if defined, indicates that the program should include
+ * <sgtty.h> rather than <termio.h>. There are also differences in
+ * the ioctl() calls that depend on the value of this symbol.
+ */
+/*#define I_TERMIO / **/
+/*#define I_TERMIOS / **/
+/*#define I_SGTTY / **/
+
/* I_TIME:
* This symbol, if defined, indicates to the C program that it should
* include <time.h>.
@@ -3292,26 +3360,6 @@
/*#define PERL_VENDORLIB_EXP "" / **/
/*#define PERL_VENDORLIB_STEM "" / **/
-/* I_TERMIO:
- * This symbol, if defined, indicates that the program should include
- * <termio.h> rather than <sgtty.h>. There are also differences in
- * the ioctl() calls that depend on the value of this symbol.
- */
-/* I_TERMIOS:
- * This symbol, if defined, indicates that the program should include
- * the POSIX termios.h rather than sgtty.h or termio.h.
- * There are also differences in the ioctl() calls that depend on the
- * value of this symbol.
- */
-/* I_SGTTY:
- * This symbol, if defined, indicates that the program should include
- * <sgtty.h> rather than <termio.h>. There are also differences in
- * the ioctl() calls that depend on the value of this symbol.
- */
-/*#define I_TERMIO / **/
-/*#define I_TERMIOS / **/
-/*#define I_SGTTY / **/
-
/* USE_CROSS_COMPILE:
* This symbol, if defined, indicates that Perl is being cross-compiled.
*/
@@ -3349,12 +3397,30 @@
*/
/*#define HAS__FWALK / **/
+/* HAS_ACOSH:
+ * This symbol, if defined, indicates that the acosh routine is
+ * available to do the inverse hyperbolic cosine function.
+ */
+/*#define HAS_ACOSH / **/
+
/* HAS_AINTL:
* This symbol, if defined, indicates that the aintl routine is
* available. If copysignl is also present we can emulate modfl.
*/
/*#define HAS_AINTL / **/
+/* HAS_ASINH:
+ * This symbol, if defined, indicates that the asinh routine is
+ * available to do the inverse hyperbolic sine function.
+ */
+/*#define HAS_ASINH / **/
+
+/* HAS_ATANH:
+ * This symbol, if defined, indicates that the atanh routine is
+ * available to do the inverse hyperbolic tangent function.
+ */
+/*#define HAS_ATANH / **/
+
/* HAS_BUILTIN_CHOOSE_EXPR:
* Can we handle GCC builtin for compile-time ternary-like expressions
*/
@@ -3400,6 +3466,12 @@
*/
/*#define HAS_STRUCT_CMSGHDR / **/
+/* HAS_COPYSIGN:
+ * This symbol, if defined, indicates that the copysign routine is
+ * available to do the copysign function.
+ */
+/*#define HAS_COPYSIGN / **/
+
/* HAS_COPYSIGNL:
* This symbol, if defined, indicates that the copysignl routine is
* available. If aintl is also present we can emulate modfl.
@@ -3440,6 +3512,30 @@
*/
/*#define DLSYM_NEEDS_UNDERSCORE / **/
+/* HAS_ERF:
+ * This symbol, if defined, indicates that the erf routine is
+ * available to do the error function.
+ */
+/*#define HAS_ERF / **/
+
+/* HAS_ERFC:
+ * This symbol, if defined, indicates that the erfc routine is
+ * available to do the complementary error function.
+ */
+/*#define HAS_ERFC / **/
+
+/* HAS_EXP2:
+ * This symbol, if defined, indicates that the exp2 routine is
+ * available to do the 2**x function.
+ */
+/*#define HAS_EXP2 / **/
+
+/* HAS_EXPM1:
+ * This symbol, if defined, indicates that the expm1 routine is
+ * available to do the exp(x) - 1 when x is near 1 function.
+ */
+/*#define HAS_EXPM1 / **/
+
/* HAS_FAST_STDIO:
* This symbol, if defined, indicates that the "fast stdio"
* is available to manipulate the stdio buffers directly.
@@ -3459,6 +3555,19 @@
*/
/*#define FCNTL_CAN_LOCK / **/
+/* HAS_FDIM:
+ * This symbol, if defined, indicates that the fdim routine is
+ * available to do the positive difference function.
+ */
+/*#define HAS_FDIM / **/
+
+/* HAS_FEGETROUND:
+ * This symbol, if defined, indicates that the fegetround routine is
+ * available to return the macro corresponding to the current rounding
+ * mode.
+ */
+/*#define HAS_FEGETROUND / **/
+
/* HAS_FINITE:
* This symbol, if defined, indicates that the finite routine is
* available to check whether a double is finite (non-infinity non-NaN).
@@ -3480,6 +3589,24 @@
*/
#define HAS_FLOCK_PROTO /**/
+/* HAS_FMA:
+ * This symbol, if defined, indicates that the fma routine is
+ * available to do the multiply-add function.
+ */
+/*#define HAS_FMA / **/
+
+/* HAS_FMAX:
+ * This symbol, if defined, indicates that the fmax routine is
+ * available to do the maximum function.
+ */
+/*#define HAS_FMAX / **/
+
+/* HAS_FMIN:
+ * This symbol, if defined, indicates that the fmin routine is
+ * available to do the minimum function.
+ */
+/*#define HAS_FMIN / **/
+
/* HAS_FP_CLASS:
* This symbol, if defined, indicates that the fp_class routine is
* available to classify doubles. Available for example in Digital UNIX.
@@ -3498,6 +3625,13 @@
*/
/*#define HAS_FP_CLASS / **/
+/* HAS_FP_CLASSL:
+ * This symbol, if defined, indicates that the fp_classl routine is
+ * available to classify long doubles. Available for example in
+ * Digital UNIX. See for possible values HAS_FP_CLASS.
+ */
+/*#define HAS_FP_CLASSL / **/
+
/* HAS_FPCLASS:
* This symbol, if defined, indicates that the fpclass routine is
* available to classify doubles. Available for example in Solaris/SVR4.
@@ -3528,7 +3662,19 @@
* FP_NAN NaN
*
*/
-/*#define HAS_FPCLASSIFY / **/
+/* HAS_FP_CLASSIFY:
+ * This symbol, if defined, indicates that the fp_classify routine is
+ * available to classify doubles. The values are defined in <math.h>
+ *
+ * FP_NORMAL Normalized
+ * FP_ZERO Zero
+ * FP_INFINITE Infinity
+ * FP_SUBNORMAL Denormalized
+ * FP_NAN NaN
+ *
+ */
+/*#define HAS_FPCLASSIFY / **/
+/*#define HAS_FP_CLASSIFY / **/
/* HAS_FPCLASSL:
* This symbol, if defined, indicates that the fpclassl routine is
@@ -3548,6 +3694,12 @@
*/
/*#define HAS_FPCLASSL / **/
+/* HAS_FPGETROUND:
+ * This symbol, if defined, indicates that the fpgetround routine is
+ * available to get the floating point rounding mode.
+ */
+/*#define HAS_FPGETROUND / **/
+
/* HAS_FPOS64_T:
* This symbol will be defined if the C compiler supports fpos64_t.
*/
@@ -3663,6 +3815,18 @@
*/
/*#define HAS_HASMNTOPT / **/
+/* HAS_HYPOT:
+ * This symbol, if defined, indicates that the hypot routine is
+ * available to do the hypotenuse function.
+ */
+/*#define HAS_HYPOT / **/
+
+/* HAS_ILOGB:
+ * This symbol, if defined, indicates that the ilogb routine is
+ * available to get integer exponent of a floating-point value.
+ */
+/*#define HAS_ILOGB / **/
+
/* HAS_ILOGBL:
* This symbol, if defined, indicates that the ilogbl routine is
* available. If scalbnl is also present we can emulate frexpl.
@@ -3700,12 +3864,31 @@
*/
/*#define HAS_ISFINITE / **/
+/* HAS_ISFINITEL:
+ * This symbol, if defined, indicates that the isfinitel routine is
+ * available to check whether a long double is finite.
+ * (non-infinity non-NaN).
+ */
+/*#define HAS_ISFINITEL / **/
+
/* HAS_ISINF:
* This symbol, if defined, indicates that the isinf routine is
* available to check whether a double is an infinity.
*/
/*#define HAS_ISINF / **/
+/* HAS_ISINFL:
+ * This symbol, if defined, indicates that the isinfl routine is
+ * available to check whether a long double is an infinity.
+ */
+/*#define HAS_ISINFL / **/
+
+/* HAS_ISLESS:
+ * This symbol, if defined, indicates that the isless routine is
+ * available to do the isless function.
+ */
+/*#define HAS_ISLESS / **/
+
/* HAS_ISNAN:
* This symbol, if defined, indicates that the isnan routine is
* available to check whether a double is a NaN.
@@ -3718,6 +3901,31 @@
*/
/*#define HAS_ISNANL / **/
+/* HAS_ISNORMAL:
+ * This symbol, if defined, indicates that the isnormal routine is
+ * available to check whether a double is normal (non-zero normalized).
+ */
+/*#define HAS_ISNORMAL / **/
+
+/* HAS_J0:
+ * This symbol, if defined, indicates to the C program that the
+ * j0() function is available for Bessel functions of the first
+ * kind of the order zero, for doubles.
+ */
+/* HAS_J0L:
+ * This symbol, if defined, indicates to the C program that the
+ * j0l() function is available for Bessel functions of the first
+ * kind of the order zero, for long doubles.
+ */
+/*#define HAS_J0 / **/
+/*#define HAS_J0L / **/
+
+/* HAS_LC_MONETARY_2008:
+ * This symbol, if defined, indicates that the localeconv routine is
+ * available and has the additional members added in POSIX 1003.1-2008.
+ */
+/*#define HAS_LC_MONETARY_2008 / **/
+
/* HAS_LDBL_DIG:
* This symbol, if defined, indicates that this system's <float.h>
* or <limits.h> defines the symbol LDBL_DIG, which is the number
@@ -3726,12 +3934,98 @@
*/
#define HAS_LDBL_DIG /**/
+/* HAS_LGAMMA:
+ * This symbol, if defined, indicates that the lgamma routine is
+ * available to do the log gamma function. See also HAS_TGAMMA and
+ * HAS_LGAMMA_R.
+ */
+/*#define HAS_LGAMMA / **/
+
+/* HAS_LGAMMA_R:
+ * This symbol, if defined, indicates that the lgamma_r routine is
+ * available to do the log gamma function without using the global
+ * signgam variable.
+ */
+/*#define HAS_LGAMMA_R / **/
+
/* LIBM_LIB_VERSION:
* This symbol, if defined, indicates that libm exports _LIB_VERSION
* and that math.h defines the enum to manipulate it.
*/
/*#define LIBM_LIB_VERSION / **/
+/* HAS_LLRINT:
+ * This symbol, if defined, indicates that the llrint routine is
+ * available to return the closest long long value according to
+ * the current rounding mode.
+ */
+/*#define HAS_LLRINT / **/
+
+/* HAS_LLRINTL:
+ * This symbol, if defined, indicates that the llrintl routine is
+ * available to return the closest long long value of the long double
+ * argument according to the current rounding mode.
+ */
+/*#define HAS_LLRINTL / **/
+
+/* HAS_LLROUND:
+ * This symbol, if defined, indicates that the llround routine is
+ * available to return the nearest long long value.
+ */
+/*#define HAS_LLROUND / **/
+
+/* HAS_LLROUNDL:
+ * This symbol, if defined, indicates that the llroundl routine is
+ * available to return the nearest long long value away from zero of
+ * the long double argument value.
+ */
+/*#define HAS_LLROUNDL / **/
+
+/* HAS_LOG1P:
+ * This symbol, if defined, indicates that the log1p routine is
+ * available to do the logarithm of 1 plus argument function.
+ */
+/*#define HAS_LOG1P / **/
+
+/* HAS_LOG2:
+ * This symbol, if defined, indicates that the log2 routine is
+ * available to do the log2 function.
+ */
+/*#define HAS_LOG2 / **/
+
+/* HAS_LOGB:
+ * This symbol, if defined, indicates that the logb routine is
+ * available to do the logb function.
+ */
+/*#define HAS_LOGB / **/
+
+/* HAS_LRINT:
+ * This symbol, if defined, indicates that the lrint routine is
+ * available to return the closest integral value according to
+ * the current rounding mode.
+ */
+/*#define HAS_LRINT / **/
+
+/* HAS_LRINTL:
+ * This symbol, if defined, indicates that the lrintl routine is
+ * available to return the closest integral value of the long double
+ * argument according to the current rounding mode.
+ */
+/*#define HAS_LRINTL / **/
+
+/* HAS_LROUND:
+ * This symbol, if defined, indicates that the lround routine is
+ * available to return the nearest integral value.
+ */
+/*#define HAS_LROUND / **/
+
+/* HAS_LROUNDL:
+ * This symbol, if defined, indicates that the lroundl routine is
+ * available to return the nearest integral value away from zero of
+ * the long double argument value.
+ */
+/*#define HAS_LROUNDL / **/
+
/* HAS_MADVISE:
* This symbol, if defined, indicates that the madvise system call is
* available to map a file into memory.
@@ -3796,6 +4090,33 @@
*/
/*#define HAS_STRUCT_MSGHDR / **/
+/* HAS_NAN:
+ * This symbol, if defined, indicates that the nan routine is
+ * available to generate NaN.
+ */
+/*#define HAS_NAN / **/
+
+/* HAS_NEARBYINT:
+ * This symbol, if defined, indicates that the nearbyint routine is
+ * available to return the integral value closest to (according to
+ * the current rounding mode) to x.
+ */
+/*#define HAS_NEARBYINT / **/
+
+/* HAS_NEXTAFTER:
+ * This symbol, if defined, indicates that the nextafter routine is
+ * available to return the next machine representable double from
+ * x in direction y.
+ */
+/*#define HAS_NEXTAFTER / **/
+
+/* HAS_NEXTTOWARD:
+ * This symbol, if defined, indicates that the nexttoward routine is
+ * available to return the next machine representable long double from
+ * x in direction y.
+ */
+/*#define HAS_NEXTTOWARD / **/
+
/* HAS_NL_LANGINFO:
* This symbol, if defined, indicates that the nl_langinfo routine is
* available to return local data. You will also need <langinfo.h>
@@ -3811,6 +4132,8 @@
/* HAS_PRCTL:
* This symbol, if defined, indicates that the prctl routine is
* available to set process title.
+ * Note that there are at least two prctl variants: Linux and Irix.
+ * While they are somewhat similar, they are incompatible.
*/
/* HAS_PRCTL_SET_NAME:
* This symbol, if defined, indicates that the prctl routine is
@@ -3840,6 +4163,11 @@
*/
/*#define HAS_PTHREAD_ATTR_SETSCOPE / **/
+/* HAS_PTRDIFF_T:
+ * This symbol will be defined if the C compiler supports ptrdiff_t.
+ */
+#define HAS_PTRDIFF_T /**/
+
/* HAS_READV:
* This symbol, if defined, indicates that the readv routine is
* available to do gather reads. You will also need <sys/uio.h>
@@ -3853,6 +4181,31 @@
*/
/*#define HAS_RECVMSG / **/
+/* HAS_REMAINDER:
+ * This symbol, if defined, indicates that the remainder routine is
+ * available to return the floating-point remainder.
+ */
+/*#define HAS_REMAINDER / **/
+
+/* HAS_REMQUO:
+ * This symbol, if defined, indicates that the remquo routine is
+ * available to return the remainder and part of quotient.
+ */
+/*#define HAS_REMQUO / **/
+
+/* HAS_RINT:
+ * This symbol, if defined, indicates that the rint routine is
+ * available to return the nearest integral value to x as double
+ * using the current rounding mode.
+ */
+/*#define HAS_RINT / **/
+
+/* HAS_ROUND:
+ * This symbol, if defined, indicates that the round routine is
+ * available to round to nearest integer, away from zero.
+ */
+/*#define HAS_ROUND / **/
+
/* HAS_SBRK_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the sbrk() function. Otherwise, it is up
@@ -3862,6 +4215,13 @@
*/
/*#define HAS_SBRK_PROTO / **/
+/* HAS_SCALBN:
+ * This symbol, if defined, indicates that the scalbn routine is
+ * available to multiply floating-point number by integral power
+ * of radix.
+ */
+/*#define HAS_SCALBN / **/
+
/* HAS_SCALBNL:
* This symbol, if defined, indicates that the scalbnl routine is
* available. If ilogbl is also present we can emulate frexpl.
@@ -4060,6 +4420,12 @@
*/
#define HAS_TELLDIR_PROTO /**/
+/* HAS_TGAMMA:
+ * This symbol, if defined, indicates that the tgamma routine is
+ * available to do the gamma function. See also HAS_LGAMMA.
+ */
+/*#define HAS_TGAMMA / **/
+
/* HAS_CTIME64:
* This symbol, if defined, indicates that the ctime64 () routine is
* available to do the 64bit variant of ctime ()
@@ -4097,6 +4463,18 @@
*/
/*#define HAS_TIMEGM / **/
+/* HAS_TRUNC:
+ * This symbol, if defined, indicates that the trunc routine is
+ * available to round doubles towards zero.
+ */
+/*#define HAS_TRUNC / **/
+
+/* HAS_TRUNCL:
+ * This symbol, if defined, indicates that the truncl routine is
+ * available. If copysignl is also present we can emulate modfl.
+ */
+/*#define HAS_TRUNCL / **/
+
/* U32_ALIGNMENT_REQUIRED:
* This symbol, if defined, indicates that you must access
* character data through U32-aligned pointers.
@@ -4138,6 +4516,18 @@
*/
/*#define HAS_USTAT / **/
+/* HAS_WCSCMP:
+ * This symbol, if defined, indicates that the wcscmp routine is
+ * available to compare two wide character strings.
+ */
+#define HAS_WCSCMP /**/
+
+/* HAS_WCSXFRM:
+ * This symbol, if defined, indicates that the wcsxfrm routine is
+ * available to tranform a wide character string for wcscmp().
+ */
+#define HAS_WCSXFRM /**/
+
/* HAS_WRITEV:
* This symbol, if defined, indicates that the writev routine is
* available to do scatter writes.
@@ -4172,6 +4562,12 @@
*/
#define I_ASSERT /**/
+/* I_BFD:
+ * This symbol, if defined, indicates that <bfd.h> exists and
+ * can be included.
+ */
+/*#define I_BFD / **/
+
/* I_CRYPT:
* This symbol, if defined, indicates that <crypt.h> exists and
* should be included.
@@ -4208,6 +4604,12 @@
#define DB_VERSION_MINOR_CFG 0 /**/
#define DB_VERSION_PATCH_CFG 0 /**/
+/* I_FENV:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <fenv.h> to get the floating point environment definitions.
+ */
+/*#define I_FENV / **/
+
/* I_FP:
* This symbol, if defined, indicates that <fp.h> exists and
* should be included.
@@ -4274,6 +4676,12 @@
*/
/*#define I_PROT / **/
+/* I_QUADMATH:
+ * This symbol, if defined, indicates that <quadmath.h> exists and
+ * should be included.
+ */
+/*#define I_QUADMATH / **/
+
/* I_SHADOW:
* This symbol, if defined, indicates that <shadow.h> exists and
* should be included.
@@ -4292,6 +4700,12 @@
*/
#define I_STDBOOL /**/
+/* I_STDINT:
+ * This symbol, if defined, indicates that <stdint.h> exists and
+ * should be included.
+ */
+/*#define I_STDINT / **/
+
/* I_SUNMATH:
* This symbol, if defined, indicates that <sunmath.h> exists and
* should be included.
@@ -4361,16 +4775,32 @@
* This symbol, if defined, contains the string used by stdio to
* format long doubles (format 'f') for input.
*/
-/*#define PERL_PRIfldbl "f" / **/
-/*#define PERL_PRIgldbl "g" / **/
-/*#define PERL_PRIeldbl "e" / **/
-/*#define PERL_SCNfldbl "f" / **/
-
-/* PERL_MAD:
- * This symbol, if defined, indicates that the Misc Attribution
- * Declaration code should be conditionally compiled.
- */
-/*#define PERL_MAD / **/
+/* DOUBLEKIND:
+ * DOUBLEKIND will be one of
+ * DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN
+ * DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN
+ * DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN
+ * DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN
+ * DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+ * DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+ * DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
+ * DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+ * DOUBLE_IS_UNKNOWN_FORMAT
+ */
+#define DOUBLEKIND 3 /**/
+#define DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN 1
+#define DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN 2
+#define DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN 3
+#define DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN 4
+#define DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN 5
+#define DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 6
+#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE 7
+#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE 8
+#define DOUBLE_IS_UNKNOWN_FORMAT -1
+/*#define PERL_PRIfldbl "Lf" / **/
+/*#define PERL_PRIgldbl "Lg" / **/
+/*#define PERL_PRIeldbl "Le" / **/
+/*#define PERL_SCNfldbl "Lf" / **/
/* NEED_VA_COPY:
* This symbol, if defined, indicates that the system stores
@@ -4448,6 +4878,11 @@
*/
/* NVSIZE:
* This symbol contains the sizeof(NV).
+ * Note that some floating point formats have unused bytes.
+ * The most notable example is the x86* 80-bit extended precision
+ * which comes in byte sizes of 12 and 16 (for 32 and 64 bit
+ * platforms, respectively), but which only uses 10 bytes.
+ * Perl compiled with -Duselongdouble on x86* is like this.
*/
/* NV_PRESERVES_UV:
* This symbol, if defined, indicates that a variable of type NVTYPE
@@ -4637,6 +5072,12 @@
/*#define USE_64_BIT_ALL / **/
#endif
+/* USE_CBACKTRACE:
+ * This symbol, if defined, indicates that Perl should
+ * be built with support for backtrace.
+ */
+/*#define USE_CBACKTRACE / **/
+
/* USE_DTRACE:
* This symbol, if defined, indicates that Perl should
* be built with support for DTrace.
@@ -4707,6 +5148,14 @@
#define USE_PERLIO /**/
#endif
+/* USE_QUADMATH:
+ * This symbol, if defined, indicates that the quadmath library should
+ * be used when available.
+ */
+#ifndef USE_QUADMATH
+/*#define USE_QUADMATH / **/
+#endif
+
/* USE_SOCKS:
* This symbol, if defined, indicates that Perl should
* be built to use socks.
diff --git a/Master/tlpkg/tlperl/lib/CORE/cop.h b/Master/tlpkg/tlperl/lib/CORE/cop.h
index 37980f04bdd..8a96331de33 100644
--- a/Master/tlpkg/tlperl/lib/CORE/cop.h
+++ b/Master/tlpkg/tlperl/lib/CORE/cop.h
@@ -7,7 +7,7 @@
* License or the Artistic License, as specified in the README file.
*
* Control ops (cops) are one of the two ops OP_NEXTSTATE and OP_DBSTATE,
- * that (loosely speaking) are separate statements.
+ * that (loosely speaking) are statement separators.
* They hold information important for lexical state and error reporting.
* At run time, PL_curcop is set to point to the most recently executed cop,
* and thus can be used to determine our current state.
@@ -617,6 +617,7 @@ struct block_format {
cx->blk_format.gv = gv; \
cx->blk_format.retop = (retop); \
cx->blk_format.dfoutgv = PL_defoutgv; \
+ cx->blk_u16 = 0; \
if (!CvDEPTH(cv)) SvREFCNT_inc_simple_void_NN(cv); \
CvDEPTH(cv)++; \
SvREFCNT_inc_void(cx->blk_format.dfoutgv)
@@ -639,6 +640,8 @@ struct block_format {
#define POPSUB(cx,sv) \
STMT_START { \
const I32 olddepth = cx->blk_sub.olddepth; \
+ if (!(cx->blk_u16 & CxPOPSUB_DONE)) { \
+ cx->blk_u16 |= CxPOPSUB_DONE; \
RETURN_PROBE(CvNAMED(cx->blk_sub.cv) \
? HEK_KEY(CvNAME_HEK(cx->blk_sub.cv)) \
: GvENAME(CvGV(cx->blk_sub.cv)), \
@@ -661,6 +664,7 @@ struct block_format {
CLEAR_ARGARRAY(cx->blk_sub.argarray); \
} \
} \
+ } \
sv = MUTABLE_SV(cx->blk_sub.cv); \
LEAVE_SCOPE(PL_scopestack[cx->blk_oldscopesp-1]); \
if (sv && (CvDEPTH((const CV*)sv) = olddepth)) \
@@ -674,13 +678,16 @@ struct block_format {
#define POPFORMAT(cx) \
STMT_START { \
+ if (!(cx->blk_u16 & CxPOPSUB_DONE)) { \
CV * const cv = cx->blk_format.cv; \
GV * const dfuot = cx->blk_format.dfoutgv; \
+ cx->blk_u16 |= CxPOPSUB_DONE; \
setdefout(dfuot); \
LEAVE_SCOPE(PL_scopestack[cx->blk_oldscopesp-1]); \
if (!--CvDEPTH(cv)) \
SvREFCNT_dec_NN(cx->blk_format.cv); \
SvREFCNT_dec_NN(dfuot); \
+ } \
} STMT_END
/* eval context */
@@ -761,14 +768,19 @@ struct block_loop {
((c)->blk_loop.itervar_u.oldcomppad \
? (CxPADLOOP(c) \
? CxITERVAR_PADSV(c) \
- : &GvSV((c)->blk_loop.itervar_u.gv)) \
+ : isGV((c)->blk_loop.itervar_u.gv) \
+ ? &GvSV((c)->blk_loop.itervar_u.gv) \
+ : (SV **)&(c)->blk_loop.itervar_u.gv) \
: (SV**)NULL)
#define CxLABEL(c) (0 + CopLABEL((c)->blk_oldcop))
#define CxLABEL_len(c,len) (0 + CopLABEL_len((c)->blk_oldcop, len))
#define CxLABEL_len_flags(c,len,flags) (0 + CopLABEL_len_flags((c)->blk_oldcop, len, flags))
#define CxHASARGS(c) (((c)->cx_type & CXp_HASARGS) == CXp_HASARGS)
-#define CxLVAL(c) (0 + (c)->blk_u16)
+#define CxLVAL(c) (0 + ((c)->blk_u16 & 0xff))
+/* POPSUB has already been performed on this context frame */
+#define CxPOPSUB_DONE 0x100
+
#define PUSHLOOP_PLAIN(cx, s) \
cx->blk_loop.resetsp = s - PL_stack_base; \
@@ -880,9 +892,9 @@ struct subst {
U8 sbu_type; /* what kind of context this is */
U8 sbu_rflags;
U16 sbu_rxtainted; /* matches struct block */
- I32 sbu_iters;
- I32 sbu_maxiters;
I32 sbu_oldsave;
+ SSize_t sbu_iters;
+ SSize_t sbu_maxiters;
char * sbu_orig;
SV * sbu_dstr;
SV * sbu_targ;
@@ -980,6 +992,7 @@ struct context {
/* private flags for CXt_LOOP */
#define CXp_FOR_DEF 0x10 /* foreach using $_ */
+#define CXp_FOR_LVREF 0x20 /* foreach using \$var */
#define CxPADLOOP(c) ((c)->blk_loop.my_op->op_targ)
/* private flags for CXt_SUBST */
@@ -1263,11 +1276,5 @@ See L<perlcall/LIGHTWEIGHT CALLBACKS>.
multicall_cop = CvSTART(cv); \
} STMT_END
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/cv.h b/Master/tlpkg/tlperl/lib/CORE/cv.h
index 36afba7ee80..d4dfd2d3f9a 100644
--- a/Master/tlpkg/tlperl/lib/CORE/cv.h
+++ b/Master/tlpkg/tlperl/lib/CORE/cv.h
@@ -49,8 +49,9 @@ See L<perlguts/Autoloading with XSUBs>.
#define CvROOT(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_root_u.xcv_root
#define CvXSUB(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_root_u.xcv_xsub
#define CvXSUBANY(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_start_u.xcv_xsubany
-#define CvGV(sv) S_CvGV((const CV *)(sv))
+#define CvGV(sv) S_CvGV(aTHX_ (CV *)(sv))
#define CvGV_set(cv,gv) Perl_cvgv_set(aTHX_ cv, gv)
+#define CvHASGV(cv) cBOOL(SvANY(cv)->xcv_gv_u.xcv_gv)
#define CvFILE(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_file
#ifdef USE_ITHREADS
# define CvFILE_set_from_cop(sv, cop) \
@@ -61,10 +62,38 @@ See L<perlguts/Autoloading with XSUBs>.
#endif
#define CvFILEGV(sv) (gv_fetchfile(CvFILE(sv)))
#define CvDEPTH(sv) (*S_CvDEPTHp((const CV *)sv))
-#define CvPADLIST(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_padlist
-#define CvOUTSIDE(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_outside
-#define CvFLAGS(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_flags
+/* For use when you only have a XPVCV*, not a real CV*.
+ Must be assert protected as in S_CvDEPTHp before use. */
+#define CvDEPTHunsafe(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_depth
+
+/* these CvPADLIST/CvRESERVED asserts can be reverted one day, once stabilized */
+#define CvPADLIST(sv) (*(assert_(!CvISXSUB((CV*)(sv))) \
+ &(((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_padlist_u.xcv_padlist)))
+/* CvPADLIST_set is not public API, it can be removed one day, once stabilized */
+#ifdef DEBUGGING
+# define CvPADLIST_set(sv, padlist) Perl_set_padlist((CV*)sv, padlist)
+#else
+# define CvPADLIST_set(sv, padlist) (CvPADLIST(sv) = (padlist))
+#endif
+#define CvHSCXT(sv) *(assert_(CvISXSUB((CV*)(sv))) \
+ &(((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_padlist_u.xcv_hscxt))
+#ifdef DEBUGGING
+# if PTRSIZE == 8
+# define PoisonPADLIST(sv) \
+ (((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_padlist_u.xcv_padlist = (PADLIST *)UINT64_C(0xEFEFEFEFEFEFEFEF))
+# elif PTRSIZE == 4
+# define PoisonPADLIST(sv) \
+ (((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_padlist_u.xcv_padlist = (PADLIST *)0xEFEFEFEF)
+# else
+# error unknown pointer size
+# endif
+#else
+# define PoisonPADLIST(sv) NOOP
+#endif
+
+#define CvOUTSIDE(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_outside
#define CvOUTSIDE_SEQ(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_outside_seq
+#define CvFLAGS(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_flags
/* These two are sometimes called on non-CVs */
#define CvPROTO(sv) \
@@ -104,9 +133,11 @@ See L<perlguts/Autoloading with XSUBs>.
#define CVf_AUTOLOAD 0x2000 /* SvPVX contains AUTOLOADed sub name */
#define CVf_HASEVAL 0x4000 /* contains string eval */
#define CVf_NAMED 0x8000 /* Has a name HEK */
+#define CVf_LEXICAL 0x10000 /* Omit package from name */
+#define CVf_ANONCONST 0x20000 /* :const - create anonconst op */
/* This symbol for optimised communication between toke.c and op.c: */
-#define CVf_BUILTIN_ATTRS (CVf_METHOD|CVf_LVALUE)
+#define CVf_BUILTIN_ATTRS (CVf_METHOD|CVf_LVALUE|CVf_ANONCONST)
#define CvCLONE(cv) (CvFLAGS(cv) & CVf_CLONE)
#define CvCLONE_on(cv) (CvFLAGS(cv) |= CVf_CLONE)
@@ -185,16 +216,17 @@ See L<perlguts/Autoloading with XSUBs>.
#define CvNAMED_on(cv) (CvFLAGS(cv) |= CVf_NAMED)
#define CvNAMED_off(cv) (CvFLAGS(cv) &= ~CVf_NAMED)
+#define CvLEXICAL(cv) (CvFLAGS(cv) & CVf_LEXICAL)
+#define CvLEXICAL_on(cv) (CvFLAGS(cv) |= CVf_LEXICAL)
+#define CvLEXICAL_off(cv) (CvFLAGS(cv) &= ~CVf_LEXICAL)
+
+#define CvANONCONST(cv) (CvFLAGS(cv) & CVf_ANONCONST)
+#define CvANONCONST_on(cv) (CvFLAGS(cv) |= CVf_ANONCONST)
+#define CvANONCONST_off(cv) (CvFLAGS(cv) &= ~CVf_ANONCONST)
+
/* Flags for newXS_flags */
#define XS_DYNAMIC_FILENAME 0x01 /* The filename isn't static */
-PERL_STATIC_INLINE GV *
-S_CvGV(const CV *sv)
-{
- return CvNAMED(sv)
- ? 0
- : ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_gv_u.xcv_gv;
-}
PERL_STATIC_INLINE HEK *
CvNAME_HEK(CV *sv)
{
@@ -269,12 +301,14 @@ should print 123:
typedef OP *(*Perl_call_checker)(pTHX_ OP *, GV *, SV *);
+#define CALL_CHECKER_REQUIRE_GV MGf_REQUIRE_GV
+
+#define CV_NAME_NOTQUAL 1
+
+#ifdef PERL_CORE
+# define CV_UNDEF_KEEP_NAME 1
+#endif
+
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/dosish.h b/Master/tlpkg/tlperl/lib/CORE/dosish.h
index 8b34369ab5c..2e4e7451769 100644
--- a/Master/tlpkg/tlperl/lib/CORE/dosish.h
+++ b/Master/tlpkg/tlperl/lib/CORE/dosish.h
@@ -184,11 +184,5 @@
#define PERL_NO_DEV_RANDOM
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/ebcdic_tables.h b/Master/tlpkg/tlperl/lib/CORE/ebcdic_tables.h
new file mode 100644
index 00000000000..344a99048d5
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/CORE/ebcdic_tables.h
@@ -0,0 +1,607 @@
+/* -*- buffer-read-only: t -*-
+ * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ * This file is built by regen/ebcdic.pl.
+ * Any changes made here will be lost!
+ */
+
+
+#ifndef H_EBCDIC_TABLES /* Guard against nested #includes */
+#define H_EBCDIC_TABLES 1
+
+/* This file contains definitions for various tables used in EBCDIC handling.
+ * More info is in utfebcdic.h */
+
+#if 'A' == 193 /* EBCDIC 1047 */ \
+ && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
+ && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 121
+
+/* Index is ASCII platform code point; value is EBCDIC 1047 equivalent */
+EXTCONST U8 PL_a2e[] = {
+ 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 21, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
+ 64, 90, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122, 94, 76, 126, 110, 111,
+ 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 173, 224, 189, 95, 109,
+ 121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192, 79, 208, 161, 7,
+ 32, 33, 34, 35, 36, 37, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
+ 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62, 255,
+ 65, 170, 74, 177, 159, 178, 106, 181, 187, 180, 154, 138, 176, 202, 175, 188,
+ 144, 143, 234, 250, 190, 160, 182, 179, 157, 218, 155, 139, 183, 184, 185, 171,
+ 100, 101, 98, 102, 99, 103, 158, 104, 116, 113, 114, 115, 120, 117, 118, 119,
+ 172, 105, 237, 238, 235, 239, 236, 191, 128, 253, 254, 251, 252, 186, 174, 89,
+ 68, 69, 66, 70, 67, 71, 156, 72, 84, 81, 82, 83, 88, 85, 86, 87,
+ 140, 73, 205, 206, 203, 207, 204, 225, 112, 221, 222, 219, 220, 141, 142, 223
+};
+
+/* Index is EBCDIC 1047 code point; value is ASCII platform equivalent */
+EXTCONST U8 PL_e2a[] = {
+ 0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 157, 10, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
+ 128, 129, 130, 131, 132, 133, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
+ 144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
+ 32, 160, 226, 228, 224, 225, 227, 229, 231, 241, 162, 46, 60, 40, 43, 124,
+ 38, 233, 234, 235, 232, 237, 238, 239, 236, 223, 33, 36, 42, 41, 59, 94,
+ 45, 47, 194, 196, 192, 193, 195, 197, 199, 209, 166, 44, 37, 95, 62, 63,
+ 248, 201, 202, 203, 200, 205, 206, 207, 204, 96, 58, 35, 64, 39, 61, 34,
+ 216, 97, 98, 99, 100, 101, 102, 103, 104, 105, 171, 187, 240, 253, 254, 177,
+ 176, 106, 107, 108, 109, 110, 111, 112, 113, 114, 170, 186, 230, 184, 198, 164,
+ 181, 126, 115, 116, 117, 118, 119, 120, 121, 122, 161, 191, 208, 91, 222, 174,
+ 172, 163, 165, 183, 169, 167, 182, 188, 189, 190, 221, 168, 175, 93, 180, 215,
+ 123, 65, 66, 67, 68, 69, 70, 71, 72, 73, 173, 244, 246, 242, 243, 245,
+ 125, 74, 75, 76, 77, 78, 79, 80, 81, 82, 185, 251, 252, 249, 250, 255,
+ 92, 247, 83, 84, 85, 86, 87, 88, 89, 90, 178, 212, 214, 210, 211, 213,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 179, 219, 220, 217, 218, 159
+};
+
+/* (Confusingly named) Index is EBCDIC 1047 I8 byte; value is
+ * EBCDIC 1047 UTF-EBCDIC equivalent */
+EXTCONST U8 PL_utf2e[] = {
+ 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 21, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
+ 64, 90, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122, 94, 76, 126, 110, 111,
+ 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 173, 224, 189, 95, 109,
+ 121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192, 79, 208, 161, 7,
+ 32, 33, 34, 35, 36, 37, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
+ 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62, 255,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 98, 99, 100, 101, 102, 103, 104, 105, 106, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 128, 138, 139, 140, 141, 142, 143, 144, 154, 155, 156,
+ 157, 158, 159, 160, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 183, 184, 185, 186, 187, 188, 190, 191, 202, 203, 204, 205, 206, 207, 218, 219,
+ 220, 221, 222, 223, 225, 234, 235, 236, 237, 238, 239, 250, 251, 252, 253, 254
+};
+
+/* (Confusingly named) Index is EBCDIC 1047 UTF-EBCDIC byte; value is
+ * EBCDIC 1047 I8 equivalent */
+EXTCONST U8 PL_e2utf[] = {
+ 0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 157, 10, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
+ 128, 129, 130, 131, 132, 133, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
+ 144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
+ 32, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 46, 60, 40, 43, 124,
+ 38, 170, 171, 172, 173, 174, 175, 176, 177, 178, 33, 36, 42, 41, 59, 94,
+ 45, 47, 179, 180, 181, 182, 183, 184, 185, 186, 187, 44, 37, 95, 62, 63,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 96, 58, 35, 64, 39, 61, 34,
+ 197, 97, 98, 99, 100, 101, 102, 103, 104, 105, 198, 199, 200, 201, 202, 203,
+ 204, 106, 107, 108, 109, 110, 111, 112, 113, 114, 205, 206, 207, 208, 209, 210,
+ 211, 126, 115, 116, 117, 118, 119, 120, 121, 122, 212, 213, 214, 91, 215, 216,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 93, 230, 231,
+ 123, 65, 66, 67, 68, 69, 70, 71, 72, 73, 232, 233, 234, 235, 236, 237,
+ 125, 74, 75, 76, 77, 78, 79, 80, 81, 82, 238, 239, 240, 241, 242, 243,
+ 92, 244, 83, 84, 85, 86, 87, 88, 89, 90, 245, 246, 247, 248, 249, 250,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 251, 252, 253, 254, 255, 159
+};
+
+/* Index is EBCDIC 1047 UTF-EBCDIC byte; value is UTF8SKIP for start bytes;
+ * 1 for continuation. Adapted from the shadow flags table in tr16. The
+ * entries marked 9 in tr16 are continuation bytes and are marked as length 1
+ * here so that we can recover. */
+EXTCONST U8 PL_utf8skip[] = {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 1, 3, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 4, 4, 4,
+ 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 5, 5, 5,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 6, 7, 7, 1
+};
+
+/* Index is EBCDIC 1047 code point; value is its lowercase equivalent */
+EXTCONST U8 PL_latin1_lc[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, 106, 107, 108, 109, 110, 111,
+ 112, 81, 82, 83, 84, 85, 86, 87, 88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 156, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 140, 173, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 141, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
+};
+
+/* Index is EBCDIC 1047 code point; value is its uppercase equivalent.
+ * The 'mod' in the name means that codepoints whose uppercase is above 255 or
+ * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */
+EXTCONST U8 PL_mod_latin1_uc[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 98, 99, 100, 101, 102, 103, 104, 105, 74, 75, 76, 77, 78, 79,
+ 80, 113, 114, 115, 116, 117, 118, 119, 120, 223, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 128, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 186, 174, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 158, 159,
+ 223, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 235, 236, 237, 238, 239,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 251, 252, 253, 254, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+};
+
+/* Index is EBCDIC 1047 code point; For A-Z, value is a-z; for a-z, value
+ * is A-Z; all other code points map to themselves */
+EXTCONST U8 PL_fold[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 140, 141, 142, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 156, 157, 158, 159,
+ 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+};
+
+/* Index is EBCDIC 1047 code point; value is its other fold-pair equivalent
+ * (A => a; a => A, etc) in the 0-255 range. If no such equivalent, value is
+ * the code point itself */
+EXTCONST U8 PL_fold_latin1[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 98, 99, 100, 101, 102, 103, 104, 105, 74, 75, 76, 77, 78, 79,
+ 80, 113, 114, 115, 116, 117, 118, 119, 120, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, 106, 107, 108, 109, 110, 111,
+ 128, 81, 82, 83, 84, 85, 86, 87, 88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 186, 174, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 156, 159,
+ 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 140, 173, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 141, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 235, 236, 237, 238, 239,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 251, 252, 253, 254, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
+};
+
+#endif /* EBCDIC 1047 */
+
+#if 'A' == 193 /* EBCDIC 037 */ \
+ && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
+ && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 121
+
+/* Index is ASCII platform code point; value is EBCDIC 037 equivalent */
+EXTCONST U8 PL_a2e[] = {
+ 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 37, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
+ 64, 90, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122, 94, 76, 126, 110, 111,
+ 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 186, 224, 187, 176, 109,
+ 121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192, 79, 208, 161, 7,
+ 32, 33, 34, 35, 36, 21, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
+ 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62, 255,
+ 65, 170, 74, 177, 159, 178, 106, 181, 189, 180, 154, 138, 95, 202, 175, 188,
+ 144, 143, 234, 250, 190, 160, 182, 179, 157, 218, 155, 139, 183, 184, 185, 171,
+ 100, 101, 98, 102, 99, 103, 158, 104, 116, 113, 114, 115, 120, 117, 118, 119,
+ 172, 105, 237, 238, 235, 239, 236, 191, 128, 253, 254, 251, 252, 173, 174, 89,
+ 68, 69, 66, 70, 67, 71, 156, 72, 84, 81, 82, 83, 88, 85, 86, 87,
+ 140, 73, 205, 206, 203, 207, 204, 225, 112, 221, 222, 219, 220, 141, 142, 223
+};
+
+/* Index is EBCDIC 037 code point; value is ASCII platform equivalent */
+EXTCONST U8 PL_e2a[] = {
+ 0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 157, 133, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
+ 128, 129, 130, 131, 132, 10, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
+ 144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
+ 32, 160, 226, 228, 224, 225, 227, 229, 231, 241, 162, 46, 60, 40, 43, 124,
+ 38, 233, 234, 235, 232, 237, 238, 239, 236, 223, 33, 36, 42, 41, 59, 172,
+ 45, 47, 194, 196, 192, 193, 195, 197, 199, 209, 166, 44, 37, 95, 62, 63,
+ 248, 201, 202, 203, 200, 205, 206, 207, 204, 96, 58, 35, 64, 39, 61, 34,
+ 216, 97, 98, 99, 100, 101, 102, 103, 104, 105, 171, 187, 240, 253, 254, 177,
+ 176, 106, 107, 108, 109, 110, 111, 112, 113, 114, 170, 186, 230, 184, 198, 164,
+ 181, 126, 115, 116, 117, 118, 119, 120, 121, 122, 161, 191, 208, 221, 222, 174,
+ 94, 163, 165, 183, 169, 167, 182, 188, 189, 190, 91, 93, 175, 168, 180, 215,
+ 123, 65, 66, 67, 68, 69, 70, 71, 72, 73, 173, 244, 246, 242, 243, 245,
+ 125, 74, 75, 76, 77, 78, 79, 80, 81, 82, 185, 251, 252, 249, 250, 255,
+ 92, 247, 83, 84, 85, 86, 87, 88, 89, 90, 178, 212, 214, 210, 211, 213,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 179, 219, 220, 217, 218, 159
+};
+
+/* (Confusingly named) Index is EBCDIC 037 I8 byte; value is
+ * EBCDIC 037 UTF-EBCDIC equivalent */
+EXTCONST U8 PL_utf2e[] = {
+ 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 37, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
+ 64, 90, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122, 94, 76, 126, 110, 111,
+ 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 186, 224, 187, 176, 109,
+ 121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192, 79, 208, 161, 7,
+ 32, 33, 34, 35, 36, 21, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
+ 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62, 255,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 95, 98, 99, 100, 101, 102, 103, 104, 105, 106, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 128, 138, 139, 140, 141, 142, 143, 144, 154, 155,
+ 156, 157, 158, 159, 160, 170, 171, 172, 173, 174, 175, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 188, 189, 190, 191, 202, 203, 204, 205, 206, 207, 218, 219,
+ 220, 221, 222, 223, 225, 234, 235, 236, 237, 238, 239, 250, 251, 252, 253, 254
+};
+
+/* (Confusingly named) Index is EBCDIC 037 UTF-EBCDIC byte; value is
+ * EBCDIC 037 I8 equivalent */
+EXTCONST U8 PL_e2utf[] = {
+ 0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 157, 133, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
+ 128, 129, 130, 131, 132, 10, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
+ 144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
+ 32, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 46, 60, 40, 43, 124,
+ 38, 170, 171, 172, 173, 174, 175, 176, 177, 178, 33, 36, 42, 41, 59, 179,
+ 45, 47, 180, 181, 182, 183, 184, 185, 186, 187, 188, 44, 37, 95, 62, 63,
+ 189, 190, 191, 192, 193, 194, 195, 196, 197, 96, 58, 35, 64, 39, 61, 34,
+ 198, 97, 98, 99, 100, 101, 102, 103, 104, 105, 199, 200, 201, 202, 203, 204,
+ 205, 106, 107, 108, 109, 110, 111, 112, 113, 114, 206, 207, 208, 209, 210, 211,
+ 212, 126, 115, 116, 117, 118, 119, 120, 121, 122, 213, 214, 215, 216, 217, 218,
+ 94, 219, 220, 221, 222, 223, 224, 225, 226, 227, 91, 93, 228, 229, 230, 231,
+ 123, 65, 66, 67, 68, 69, 70, 71, 72, 73, 232, 233, 234, 235, 236, 237,
+ 125, 74, 75, 76, 77, 78, 79, 80, 81, 82, 238, 239, 240, 241, 242, 243,
+ 92, 244, 83, 84, 85, 86, 87, 88, 89, 90, 245, 246, 247, 248, 249, 250,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 251, 252, 253, 254, 255, 159
+};
+
+/* Index is EBCDIC 037 UTF-EBCDIC byte; value is UTF8SKIP for start bytes;
+ * 1 for continuation. Adapted from the shadow flags table in tr16. The
+ * entries marked 9 in tr16 are continuation bytes and are marked as length 1
+ * here so that we can recover. */
+EXTCONST U8 PL_utf8skip[] = {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+ 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 4, 4, 4,
+ 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 5, 5, 5,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 6, 7, 7, 1
+};
+
+/* Index is EBCDIC 037 code point; value is its lowercase equivalent */
+EXTCONST U8 PL_latin1_lc[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, 106, 107, 108, 109, 110, 111,
+ 112, 81, 82, 83, 84, 85, 86, 87, 88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 156, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 140, 141, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
+};
+
+/* Index is EBCDIC 037 code point; value is its uppercase equivalent.
+ * The 'mod' in the name means that codepoints whose uppercase is above 255 or
+ * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */
+EXTCONST U8 PL_mod_latin1_uc[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 98, 99, 100, 101, 102, 103, 104, 105, 74, 75, 76, 77, 78, 79,
+ 80, 113, 114, 115, 116, 117, 118, 119, 120, 223, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 128, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 158, 159,
+ 223, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 235, 236, 237, 238, 239,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 251, 252, 253, 254, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+};
+
+/* Index is EBCDIC 037 code point; For A-Z, value is a-z; for a-z, value
+ * is A-Z; all other code points map to themselves */
+EXTCONST U8 PL_fold[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 140, 141, 142, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 156, 157, 158, 159,
+ 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+};
+
+/* Index is EBCDIC 037 code point; value is its other fold-pair equivalent
+ * (A => a; a => A, etc) in the 0-255 range. If no such equivalent, value is
+ * the code point itself */
+EXTCONST U8 PL_fold_latin1[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 98, 99, 100, 101, 102, 103, 104, 105, 74, 75, 76, 77, 78, 79,
+ 80, 113, 114, 115, 116, 117, 118, 119, 120, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, 106, 107, 108, 109, 110, 111,
+ 128, 81, 82, 83, 84, 85, 86, 87, 88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 156, 159,
+ 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 140, 141, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 235, 236, 237, 238, 239,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 251, 252, 253, 254, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
+};
+
+#endif /* EBCDIC 037 */
+
+#if 'A' == 193 /* EBCDIC POSIX-BC */ \
+ && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
+ && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 74
+
+/* Index is ASCII platform code point; value is EBCDIC POSIX-BC equivalent */
+EXTCONST U8 PL_a2e[] = {
+ 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 21, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
+ 64, 90, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122, 94, 76, 126, 110, 111,
+ 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 187, 188, 189, 106, 109,
+ 74, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 251, 79, 253, 255, 7,
+ 32, 33, 34, 35, 36, 37, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
+ 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62, 95,
+ 65, 170, 176, 177, 159, 178, 208, 181, 121, 180, 154, 138, 186, 202, 175, 161,
+ 144, 143, 234, 250, 190, 160, 182, 179, 157, 218, 155, 139, 183, 184, 185, 171,
+ 100, 101, 98, 102, 99, 103, 158, 104, 116, 113, 114, 115, 120, 117, 118, 119,
+ 172, 105, 237, 238, 235, 239, 236, 191, 128, 224, 254, 221, 252, 173, 174, 89,
+ 68, 69, 66, 70, 67, 71, 156, 72, 84, 81, 82, 83, 88, 85, 86, 87,
+ 140, 73, 205, 206, 203, 207, 204, 225, 112, 192, 222, 219, 220, 141, 142, 223
+};
+
+/* Index is EBCDIC POSIX-BC code point; value is ASCII platform equivalent */
+EXTCONST U8 PL_e2a[] = {
+ 0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 157, 10, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
+ 128, 129, 130, 131, 132, 133, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
+ 144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
+ 32, 160, 226, 228, 224, 225, 227, 229, 231, 241, 96, 46, 60, 40, 43, 124,
+ 38, 233, 234, 235, 232, 237, 238, 239, 236, 223, 33, 36, 42, 41, 59, 159,
+ 45, 47, 194, 196, 192, 193, 195, 197, 199, 209, 94, 44, 37, 95, 62, 63,
+ 248, 201, 202, 203, 200, 205, 206, 207, 204, 168, 58, 35, 64, 39, 61, 34,
+ 216, 97, 98, 99, 100, 101, 102, 103, 104, 105, 171, 187, 240, 253, 254, 177,
+ 176, 106, 107, 108, 109, 110, 111, 112, 113, 114, 170, 186, 230, 184, 198, 164,
+ 181, 175, 115, 116, 117, 118, 119, 120, 121, 122, 161, 191, 208, 221, 222, 174,
+ 162, 163, 165, 183, 169, 167, 182, 188, 189, 190, 172, 91, 92, 93, 180, 215,
+ 249, 65, 66, 67, 68, 69, 70, 71, 72, 73, 173, 244, 246, 242, 243, 245,
+ 166, 74, 75, 76, 77, 78, 79, 80, 81, 82, 185, 251, 252, 219, 250, 255,
+ 217, 247, 83, 84, 85, 86, 87, 88, 89, 90, 178, 212, 214, 210, 211, 213,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 179, 123, 220, 125, 218, 126
+};
+
+/* (Confusingly named) Index is EBCDIC POSIX-BC I8 byte; value is
+ * EBCDIC POSIX-BC UTF-EBCDIC equivalent */
+EXTCONST U8 PL_utf2e[] = {
+ 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 21, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
+ 64, 90, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122, 94, 76, 126, 110, 111,
+ 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 187, 188, 189, 106, 109,
+ 74, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 251, 79, 253, 255, 7,
+ 32, 33, 34, 35, 36, 37, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
+ 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62, 95,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 98, 99, 100, 101, 102, 103, 104, 105, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 128, 138, 139, 140, 141, 142, 143, 144, 154, 155, 156, 157,
+ 158, 159, 160, 161, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 190, 191, 192, 202, 203, 204, 205, 206, 207, 208, 218,
+ 219, 220, 221, 222, 223, 224, 225, 234, 235, 236, 237, 238, 239, 250, 252, 254
+};
+
+/* (Confusingly named) Index is EBCDIC POSIX-BC UTF-EBCDIC byte; value is
+ * EBCDIC POSIX-BC I8 equivalent */
+EXTCONST U8 PL_e2utf[] = {
+ 0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 157, 10, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
+ 128, 129, 130, 131, 132, 133, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
+ 144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
+ 32, 160, 161, 162, 163, 164, 165, 166, 167, 168, 96, 46, 60, 40, 43, 124,
+ 38, 169, 170, 171, 172, 173, 174, 175, 176, 177, 33, 36, 42, 41, 59, 159,
+ 45, 47, 178, 179, 180, 181, 182, 183, 184, 185, 94, 44, 37, 95, 62, 63,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 58, 35, 64, 39, 61, 34,
+ 196, 97, 98, 99, 100, 101, 102, 103, 104, 105, 197, 198, 199, 200, 201, 202,
+ 203, 106, 107, 108, 109, 110, 111, 112, 113, 114, 204, 205, 206, 207, 208, 209,
+ 210, 211, 115, 116, 117, 118, 119, 120, 121, 122, 212, 213, 214, 215, 216, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 91, 92, 93, 229, 230,
+ 231, 65, 66, 67, 68, 69, 70, 71, 72, 73, 232, 233, 234, 235, 236, 237,
+ 238, 74, 75, 76, 77, 78, 79, 80, 81, 82, 239, 240, 241, 242, 243, 244,
+ 245, 246, 83, 84, 85, 86, 87, 88, 89, 90, 247, 248, 249, 250, 251, 252,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 253, 123, 254, 125, 255, 126
+};
+
+/* Index is EBCDIC POSIX-BC UTF-EBCDIC byte; value is UTF8SKIP for start bytes;
+ * 1 for continuation. Adapted from the shadow flags table in tr16. The
+ * entries marked 9 in tr16 are continuation bytes and are marked as length 1
+ * here so that we can recover. */
+EXTCONST U8 PL_utf8skip[] = {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+ 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3,
+ 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3,
+ 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 4, 4, 4, 4,
+ 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 5, 5, 5, 6,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 1, 7, 1, 7, 1
+};
+
+/* Index is EBCDIC POSIX-BC code point; value is its lowercase equivalent */
+EXTCONST U8 PL_latin1_lc[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, 106, 107, 108, 109, 110, 111,
+ 112, 81, 82, 83, 84, 85, 86, 87, 88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 156, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 140, 141, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 219, 222, 223,
+ 192, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 220, 253, 222, 255
+};
+
+/* Index is EBCDIC POSIX-BC code point; value is its uppercase equivalent.
+ * The 'mod' in the name means that codepoints whose uppercase is above 255 or
+ * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */
+EXTCONST U8 PL_mod_latin1_uc[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 98, 99, 100, 101, 102, 103, 104, 105, 74, 75, 76, 77, 78, 79,
+ 80, 113, 114, 115, 116, 117, 118, 119, 120, 223, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 128, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 158, 159,
+ 223, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 224, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 235, 236, 237, 238, 239,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 221, 252, 221, 254, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+};
+
+/* Index is EBCDIC POSIX-BC code point; For A-Z, value is a-z; for a-z, value
+ * is A-Z; all other code points map to themselves */
+EXTCONST U8 PL_fold[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 140, 141, 142, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 156, 157, 158, 159,
+ 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+};
+
+/* Index is EBCDIC POSIX-BC code point; value is its other fold-pair equivalent
+ * (A => a; a => A, etc) in the 0-255 range. If no such equivalent, value is
+ * the code point itself */
+EXTCONST U8 PL_fold_latin1[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 98, 99, 100, 101, 102, 103, 104, 105, 74, 75, 76, 77, 78, 79,
+ 80, 113, 114, 115, 116, 117, 118, 119, 120, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, 106, 107, 108, 109, 110, 111,
+ 128, 81, 82, 83, 84, 85, 86, 87, 88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 156, 159,
+ 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 140, 141, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 224, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 235, 236, 237, 238, 239,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 221, 252, 219, 254, 223,
+ 192, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 220, 253, 222, 255
+};
+
+#endif /* EBCDIC POSIX-BC */
+
+#endif /* H_EBCDIC_TABLES */
+
+/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/embed.h b/Master/tlpkg/tlperl/lib/CORE/embed.h
index a6e3b9d1820..687819c64e4 100644
--- a/Master/tlpkg/tlperl/lib/CORE/embed.h
+++ b/Master/tlpkg/tlperl/lib/CORE/embed.h
@@ -27,13 +27,19 @@
/* Hide global symbols */
#define Gv_AMupdate(a,b) Perl_Gv_AMupdate(aTHX_ a,b)
+#define _is_in_locale_category(a,b) Perl__is_in_locale_category(aTHX_ a,b)
#define _is_uni_FOO(a,b) Perl__is_uni_FOO(aTHX_ a,b)
#define _is_uni_perl_idcont(a) Perl__is_uni_perl_idcont(aTHX_ a)
#define _is_uni_perl_idstart(a) Perl__is_uni_perl_idstart(aTHX_ a)
#define _is_utf8_FOO(a,b) Perl__is_utf8_FOO(aTHX_ a,b)
+#define _is_utf8_char_slow S__is_utf8_char_slow
+#define _is_utf8_idcont(a) Perl__is_utf8_idcont(aTHX_ a)
+#define _is_utf8_idstart(a) Perl__is_utf8_idstart(aTHX_ a)
#define _is_utf8_mark(a) Perl__is_utf8_mark(aTHX_ a)
#define _is_utf8_perl_idcont(a) Perl__is_utf8_perl_idcont(aTHX_ a)
#define _is_utf8_perl_idstart(a) Perl__is_utf8_perl_idstart(aTHX_ a)
+#define _is_utf8_xidcont(a) Perl__is_utf8_xidcont(aTHX_ a)
+#define _is_utf8_xidstart(a) Perl__is_utf8_xidstart(aTHX_ a)
#define _to_uni_fold_flags(a,b,c,d) Perl__to_uni_fold_flags(aTHX_ a,b,c,d)
#define _to_utf8_fold_flags(a,b,c,d) Perl__to_utf8_fold_flags(aTHX_ a,b,c,d)
#define _to_utf8_lower_flags(a,b,c,d) Perl__to_utf8_lower_flags(aTHX_ a,b,c,d)
@@ -60,7 +66,9 @@
#define av_top_index(a) S_av_top_index(aTHX_ a)
#define av_undef(a) Perl_av_undef(aTHX_ a)
#define av_unshift(a,b) Perl_av_unshift(aTHX_ a,b)
+#define block_end(a,b) Perl_block_end(aTHX_ a,b)
#define block_gimme() Perl_block_gimme(aTHX)
+#define block_start(a) Perl_block_start(aTHX_ a)
#define bytes_cmp_utf8(a,b,c,d) Perl_bytes_cmp_utf8(aTHX_ a,b,c,d)
#define bytes_from_utf8(a,b,c) Perl_bytes_from_utf8(aTHX_ a,b,c)
#define bytes_to_utf8(a,b) Perl_bytes_to_utf8(aTHX_ a,b)
@@ -71,10 +79,10 @@
#define call_pv(a,b) Perl_call_pv(aTHX_ a,b)
#define call_sv(a,b) Perl_call_sv(aTHX_ a,b)
#define caller_cx(a,b) Perl_caller_cx(aTHX_ a,b)
-#define cast_i32(a) Perl_cast_i32(aTHX_ a)
-#define cast_iv(a) Perl_cast_iv(aTHX_ a)
-#define cast_ulong(a) Perl_cast_ulong(aTHX_ a)
-#define cast_uv(a) Perl_cast_uv(aTHX_ a)
+#define cast_i32 Perl_cast_i32
+#define cast_iv Perl_cast_iv
+#define cast_ulong Perl_cast_ulong
+#define cast_uv Perl_cast_uv
#define ck_entersub_args_list(a) Perl_ck_entersub_args_list(aTHX_ a)
#define ck_entersub_args_proto(a,b,c) Perl_ck_entersub_args_proto(aTHX_ a,b,c)
#define ck_entersub_args_proto_or_list(a,b,c) Perl_ck_entersub_args_proto_or_list(aTHX_ a,b,c)
@@ -92,9 +100,11 @@
#define custom_op_desc(a) Perl_custom_op_desc(aTHX_ a)
#define custom_op_name(a) Perl_custom_op_name(aTHX_ a)
#define cv_clone(a) Perl_cv_clone(aTHX_ a)
-#define cv_const_sv(a) Perl_cv_const_sv(aTHX_ a)
+#define cv_const_sv Perl_cv_const_sv
#define cv_get_call_checker(a,b,c) Perl_cv_get_call_checker(aTHX_ a,b,c)
+#define cv_name(a,b,c) Perl_cv_name(aTHX_ a,b,c)
#define cv_set_call_checker(a,b,c) Perl_cv_set_call_checker(aTHX_ a,b,c)
+#define cv_set_call_checker_flags(a,b,c,d) Perl_cv_set_call_checker_flags(aTHX_ a,b,c,d)
#define cv_undef(a) Perl_cv_undef(aTHX_ a)
#define cx_dump(a) Perl_cx_dump(aTHX_ a)
#define cxinc() Perl_cxinc(aTHX)
@@ -170,7 +180,9 @@
#define gp_ref(a) Perl_gp_ref(aTHX_ a)
#define grok_bin(a,b,c,d) Perl_grok_bin(aTHX_ a,b,c,d)
#define grok_hex(a,b,c,d) Perl_grok_hex(aTHX_ a,b,c,d)
+#define grok_infnan(a,b) Perl_grok_infnan(aTHX_ a,b)
#define grok_number(a,b,c) Perl_grok_number(aTHX_ a,b,c)
+#define grok_number_flags(a,b,c,d) Perl_grok_number_flags(aTHX_ a,b,c,d)
#define grok_numeric_radix(a,b) Perl_grok_numeric_radix(aTHX_ a,b)
#define grok_oct(a,b,c,d) Perl_grok_oct(aTHX_ a,b,c,d)
#define gv_add_by_type(a,b) Perl_gv_add_by_type(aTHX_ a,b)
@@ -229,7 +241,10 @@
#define init_stacks() Perl_init_stacks(aTHX)
#define init_tm(a) Perl_init_tm(aTHX_ a)
#define instr Perl_instr
-#define is_ascii_string Perl_is_ascii_string
+#define intro_my() Perl_intro_my(aTHX)
+#define isALNUM_lazy(a) Perl_isALNUM_lazy(aTHX_ a)
+#define isIDFIRST_lazy(a) Perl_isIDFIRST_lazy(aTHX_ a)
+#define is_invariant_string Perl_is_invariant_string
#define is_lvalue_sub() Perl_is_lvalue_sub(aTHX)
#define is_safe_syscall(a,b,c,d) S_is_safe_syscall(aTHX_ a,b,c,d)
#define is_uni_alnum(a) Perl_is_uni_alnum(aTHX_ a)
@@ -268,7 +283,6 @@
#define is_utf8_ascii(a) Perl_is_utf8_ascii(aTHX_ a)
#define is_utf8_blank(a) Perl_is_utf8_blank(aTHX_ a)
#define is_utf8_char Perl_is_utf8_char
-#define is_utf8_char_buf Perl_is_utf8_char_buf
#define is_utf8_cntrl(a) Perl_is_utf8_cntrl(aTHX_ a)
#define is_utf8_digit(a) Perl_is_utf8_digit(aTHX_ a)
#define is_utf8_graph(a) Perl_is_utf8_graph(aTHX_ a)
@@ -288,6 +302,7 @@
#define is_utf8_xdigit(a) Perl_is_utf8_xdigit(aTHX_ a)
#define is_utf8_xidcont(a) Perl_is_utf8_xidcont(aTHX_ a)
#define is_utf8_xidfirst(a) Perl_is_utf8_xidfirst(aTHX_ a)
+#define isinfnan Perl_isinfnan
#define leave_scope(a) Perl_leave_scope(aTHX_ a)
#define lex_bufutf8() Perl_lex_bufutf8(aTHX)
#define lex_discard_to(a) Perl_lex_discard_to(aTHX_ a)
@@ -314,22 +329,22 @@
#define mess_sv(a,b) Perl_mess_sv(aTHX_ a,b)
#define mg_clear(a) Perl_mg_clear(aTHX_ a)
#define mg_copy(a,b,c,d) Perl_mg_copy(aTHX_ a,b,c,d)
-#define mg_find(a,b) Perl_mg_find(aTHX_ a,b)
-#define mg_findext(a,b,c) Perl_mg_findext(aTHX_ a,b,c)
+#define mg_find Perl_mg_find
+#define mg_findext Perl_mg_findext
#define mg_free(a) Perl_mg_free(aTHX_ a)
#define mg_free_type(a,b) Perl_mg_free_type(aTHX_ a,b)
#define mg_get(a) Perl_mg_get(aTHX_ a)
#define mg_length(a) Perl_mg_length(aTHX_ a)
-#define mg_magical(a) Perl_mg_magical(aTHX_ a)
+#define mg_magical Perl_mg_magical
#define mg_set(a) Perl_mg_set(aTHX_ a)
#define mg_size(a) Perl_mg_size(aTHX_ a)
-#define mini_mktime(a) Perl_mini_mktime(aTHX_ a)
+#define mini_mktime Perl_mini_mktime
#define moreswitches(a) Perl_moreswitches(aTHX_ a)
#define mro_get_linear_isa(a) Perl_mro_get_linear_isa(aTHX_ a)
#define mro_method_changed_in(a) Perl_mro_method_changed_in(aTHX_ a)
#define my_atof(a) Perl_my_atof(aTHX_ a)
#define my_atof2(a,b) Perl_my_atof2(aTHX_ a,b)
-#define my_dirfd(a) Perl_my_dirfd(aTHX_ a)
+#define my_dirfd Perl_my_dirfd
#define my_exit(a) Perl_my_exit(aTHX_ a)
#define my_failure_exit() Perl_my_failure_exit(aTHX)
#define my_fflush_all() Perl_my_fflush_all(aTHX)
@@ -337,6 +352,7 @@
#define my_popen_list(a,b,c) Perl_my_popen_list(aTHX_ a,b,c)
#define my_setenv(a,b) Perl_my_setenv(aTHX_ a,b)
#define my_socketpair Perl_my_socketpair
+#define my_strerror(a) Perl_my_strerror(aTHX_ a)
#define my_strftime(a,b,c,d,e,f,g,h,i,j) Perl_my_strftime(aTHX_ a,b,c,d,e,f,g,h,i,j)
#define newANONATTRSUB(a,b,c,d) Perl_newANONATTRSUB(aTHX_ a,b,c,d)
#define newANONHASH(a) Perl_newANONHASH(aTHX_ a)
@@ -349,6 +365,8 @@
#define newCONSTSUB(a,b,c) Perl_newCONSTSUB(aTHX_ a,b,c)
#define newCONSTSUB_flags(a,b,c,d,e) Perl_newCONSTSUB_flags(aTHX_ a,b,c,d,e)
#define newCVREF(a,b) Perl_newCVREF(aTHX_ a,b)
+#define newDEFSVOP() Perl_newDEFSVOP(aTHX)
+#define newFORM(a,b,c) Perl_newFORM(aTHX_ a,b,c)
#define newFOROP(a,b,c,d,e) Perl_newFOROP(aTHX_ a,b,c,d,e)
#define newGIVENOP(a,b,c) Perl_newGIVENOP(aTHX_ a,b,c)
#define newGVOP(a,b,c) Perl_newGVOP(aTHX_ a,b,c)
@@ -360,9 +378,14 @@
#define newLOGOP(a,b,c,d) Perl_newLOGOP(aTHX_ a,b,c,d)
#define newLOOPEX(a,b) Perl_newLOOPEX(aTHX_ a,b)
#define newLOOPOP(a,b,c,d) Perl_newLOOPOP(aTHX_ a,b,c,d)
+#define newMETHOP(a,b,c) Perl_newMETHOP(aTHX_ a,b,c)
+#define newMETHOP_named(a,b,c) Perl_newMETHOP_named(aTHX_ a,b,c)
#define newMYSUB(a,b,c,d,e) Perl_newMYSUB(aTHX_ a,b,c,d,e)
#define newNULLLIST() Perl_newNULLLIST(aTHX)
#define newOP(a,b) Perl_newOP(aTHX_ a,b)
+#define newPADNAMELIST Perl_newPADNAMELIST
+#define newPADNAMEouter Perl_newPADNAMEouter
+#define newPADNAMEpvn Perl_newPADNAMEpvn
#define newPMOP(a,b) Perl_newPMOP(aTHX_ a,b)
#define newPROG(a) Perl_newPROG(aTHX_ a)
#define newPVOP(a,b,c) Perl_newPVOP(aTHX_ a,b,c)
@@ -390,6 +413,7 @@
#define newSVsv(a) Perl_newSVsv(aTHX_ a)
#define newSVuv(a) Perl_newSVuv(aTHX_ a)
#define newUNOP(a,b,c) Perl_newUNOP(aTHX_ a,b,c)
+#define newUNOP_AUX(a,b,c,d) Perl_newUNOP_AUX(aTHX_ a,b,c,d)
#define newWHENOP(a,b) Perl_newWHENOP(aTHX_ a,b)
#define newWHILEOP(a,b,c,d,e,f,g) Perl_newWHILEOP(aTHX_ a,b,c,d,e,f,g)
#define newXS(a,b,c) Perl_newXS(aTHX_ a,b,c)
@@ -404,6 +428,7 @@
#define op_append_elem(a,b,c) Perl_op_append_elem(aTHX_ a,b,c)
#define op_append_list(a,b,c) Perl_op_append_list(aTHX_ a,b,c)
#define op_contextualize(a,b) Perl_op_contextualize(aTHX_ a,b)
+#define op_convert_list(a,b,c) Perl_op_convert_list(aTHX_ a,b,c)
#define op_dump(a) Perl_op_dump(aTHX_ a)
#define op_free(a) Perl_op_free(aTHX_ a)
#define op_linklist(a) Perl_op_linklist(aTHX_ a)
@@ -412,6 +437,7 @@
#define op_refcnt_lock() Perl_op_refcnt_lock(aTHX)
#define op_refcnt_unlock() Perl_op_refcnt_unlock(aTHX)
#define op_scope(a) Perl_op_scope(aTHX_ a)
+#define op_sibling_splice Perl_op_sibling_splice
#define pack_cat(a,b,c,d,e,f,g) Perl_pack_cat(aTHX_ a,b,c,d,e,f,g)
#define packlist(a,b,c,d,e) Perl_packlist(aTHX_ a,b,c,d,e)
#define pad_add_anon(a,b) Perl_pad_add_anon(aTHX_ a,b)
@@ -425,6 +451,8 @@
#define pad_findmy_sv(a,b) Perl_pad_findmy_sv(aTHX_ a,b)
#define pad_new(a) Perl_pad_new(aTHX_ a)
#define pad_tidy(a) Perl_pad_tidy(aTHX_ a)
+#define padnamelist_fetch Perl_padnamelist_fetch
+#define padnamelist_store(a,b,c) Perl_padnamelist_store(aTHX_ a,b,c)
#define parse_arithexpr(a) Perl_parse_arithexpr(aTHX_ a)
#define parse_barestmt(a) Perl_parse_barestmt(aTHX_ a)
#define parse_block(a) Perl_parse_block(aTHX_ a)
@@ -536,7 +564,6 @@
#define scan_oct(a,b,c) Perl_scan_oct(aTHX_ a,b,c)
#define scan_version(a,b,c) Perl_scan_version(aTHX_ a,b,c)
#define scan_vstring(a,b,c) Perl_scan_vstring(aTHX_ a,b,c)
-#define screaminstr(a,b,c,d,e,f) Perl_screaminstr(aTHX_ a,b,c,d,e,f)
#define seed() Perl_seed(aTHX)
#define set_context Perl_set_context
#define set_numeric_local() Perl_set_numeric_local(aTHX)
@@ -559,7 +586,7 @@
#define sv_2pvbyte(a,b) Perl_sv_2pvbyte(aTHX_ a,b)
#define sv_2pvutf8(a,b) Perl_sv_2pvutf8(aTHX_ a,b)
#define sv_2uv_flags(a,b) Perl_sv_2uv_flags(aTHX_ a,b)
-#define sv_backoff(a) Perl_sv_backoff(aTHX_ a)
+#define sv_backoff Perl_sv_backoff
#define sv_bless(a,b) Perl_sv_bless(aTHX_ a,b)
#define sv_cat_decode(a,b,c,d,e,f) Perl_sv_cat_decode(aTHX_ a,b,c,d,e,f)
#define sv_catpv(a,b) Perl_sv_catpv(aTHX_ a,b)
@@ -591,6 +618,7 @@
#define sv_eq_flags(a,b,c) Perl_sv_eq_flags(aTHX_ a,b,c)
#define sv_force_normal_flags(a,b) Perl_sv_force_normal_flags(aTHX_ a,b)
#define sv_free(a) Perl_sv_free(aTHX_ a)
+#define sv_get_backrefs Perl_sv_get_backrefs
#define sv_gets(a,b,c) Perl_sv_gets(aTHX_ a,b,c)
#define sv_grow(a,b) Perl_sv_grow(aTHX_ a,b)
#define sv_inc(a) Perl_sv_inc(aTHX_ a)
@@ -671,9 +699,9 @@
#define sv_vsetpvfn(a,b,c,d,e,f,g) Perl_sv_vsetpvfn(aTHX_ a,b,c,d,e,f,g)
#define swash_fetch(a,b,c) Perl_swash_fetch(aTHX_ a,b,c)
#define swash_init(a,b,c,d,e) Perl_swash_init(aTHX_ a,b,c,d,e)
+#define sync_locale() Perl_sync_locale(aTHX)
#define taint_env() Perl_taint_env(aTHX)
#define taint_proper(a,b) Perl_taint_proper(aTHX_ a,b)
-#define tmps_grow(a) Perl_tmps_grow(aTHX_ a)
#define to_uni_lower(a,b,c) Perl_to_uni_lower(aTHX_ a,b,c)
#define to_uni_lower_lc(a) Perl_to_uni_lower_lc(aTHX_ a)
#define to_uni_title(a,b,c) Perl_to_uni_title(aTHX_ a,b,c)
@@ -688,7 +716,7 @@
#define utf16_to_utf8(a,b,c,d) Perl_utf16_to_utf8(aTHX_ a,b,c,d)
#define utf16_to_utf8_reversed(a,b,c,d) Perl_utf16_to_utf8_reversed(aTHX_ a,b,c,d)
#define utf8_distance(a,b) Perl_utf8_distance(aTHX_ a,b)
-#define utf8_hop(a,b) Perl_utf8_hop(aTHX_ a,b)
+#define utf8_hop Perl_utf8_hop
#define utf8_length(a,b) Perl_utf8_length(aTHX_ a,b)
#define utf8_to_bytes(a,b) Perl_utf8_to_bytes(aTHX_ a,b)
#define utf8_to_uvchr(a,b) Perl_utf8_to_uvchr(aTHX_ a,b)
@@ -731,9 +759,6 @@
#if !(defined(NO_MATHOMS))
#define sv_nounlocking(a) Perl_sv_nounlocking(aTHX_ a)
#endif
-#if !(defined(PERL_MAD))
-#define newFORM(a,b,c) Perl_newFORM(aTHX_ a,b,c)
-#endif
#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
#define my_bzero Perl_my_bzero
#endif
@@ -797,14 +822,18 @@
#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
#endif
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-#define _get_regclass_nonbitmap_data(a,b,c,d,e) Perl__get_regclass_nonbitmap_data(aTHX_ a,b,c,d,e)
+#define _get_regclass_nonbitmap_data(a,b,c,d,e,f) Perl__get_regclass_nonbitmap_data(aTHX_ a,b,c,d,e,f)
#endif
-#if defined(PERL_MAD)
-#define newFORM(a,b,c) Perl_newFORM(aTHX_ a,b,c)
+#if defined(PERL_OP_PARENT)
+#define op_parent Perl_op_parent
#endif
#if defined(UNLINK_ALL_VERSIONS)
#define unlnk(a) Perl_unlnk(aTHX_ a)
#endif
+#if defined(USE_C_BACKTRACE)
+#define dump_c_backtrace(a,b,c) Perl_dump_c_backtrace(aTHX_ a,b,c)
+#define get_c_backtrace_dump(a,b) Perl_get_c_backtrace_dump(aTHX_ a,b)
+#endif
#if defined(USE_ITHREADS)
#define alloccopstash(a) Perl_alloccopstash(aTHX_ a)
#define any_dup(a,b) Perl_any_dup(aTHX_ a,b)
@@ -825,6 +854,9 @@
#define sv_dup(a,b) Perl_sv_dup(aTHX_ a,b)
#define sv_dup_inc(a,b) Perl_sv_dup_inc(aTHX_ a,b)
#endif
+#if defined(USE_LOCALE) && (defined(PERL_IN_LOCALE_C) || defined (PERL_EXT_POSIX))
+#define _is_cur_LC_category_utf8(a) Perl__is_cur_LC_category_utf8(aTHX_ a)
+#endif
#if defined(USE_LOCALE_COLLATE)
#define sv_collxfrm_flags(a,b,c) Perl_sv_collxfrm_flags(aTHX_ a,b,c)
#endif
@@ -852,6 +884,10 @@
#define PerlIO_unread(a,b,c) Perl_PerlIO_unread(aTHX_ a,b,c)
#define PerlIO_write(a,b,c) Perl_PerlIO_write(aTHX_ a,b,c)
#endif
+#if defined(USE_QUADMATH)
+#define quadmath_format_needed Perl_quadmath_format_needed
+#define quadmath_format_single Perl_quadmath_format_single
+#endif
#if defined(WIN32)
#define my_setlocale(a,b) Perl_my_setlocale(aTHX_ a,b)
#endif
@@ -861,10 +897,14 @@
#define do_spawn_nowait(a) Perl_do_spawn_nowait(aTHX_ a)
#endif
#if defined(PERL_CORE) || defined(PERL_EXT)
+#define _get_encoding() Perl__get_encoding(aTHX)
+#define _warn_problematic_locale Perl__warn_problematic_locale
#define av_reify(a) Perl_av_reify(aTHX_ a)
#define current_re_engine() Perl_current_re_engine(aTHX)
#define cv_ckproto_len_flags(a,b,c,d,e) Perl_cv_ckproto_len_flags(aTHX_ a,b,c,d,e)
+#define grok_atoUV Perl_grok_atoUV
#define mg_find_mglob(a) Perl_mg_find_mglob(aTHX_ a)
+#define multideref_stringify(a,b) Perl_multideref_stringify(aTHX_ a,b)
#define op_clear(a) Perl_op_clear(aTHX_ a)
#define qerror(a) Perl_qerror(aTHX_ a)
#define reg_named_buff(a,b,c,d) Perl_reg_named_buff(aTHX_ a,b,c,d)
@@ -874,21 +914,30 @@
#define reg_numbered_buff_store(a,b,c) Perl_reg_numbered_buff_store(aTHX_ a,b,c)
#define reg_qr_package(a) Perl_reg_qr_package(aTHX_ a)
#define reg_temp_copy(a,b) Perl_reg_temp_copy(aTHX_ a,b)
-#define regprop(a,b,c,d) Perl_regprop(aTHX_ a,b,c,d)
#define report_uninit(a) Perl_report_uninit(aTHX_ a)
#define sv_magicext_mglob(a) Perl_sv_magicext_mglob(aTHX_ a)
+#define sv_only_taint_gmagic S_sv_only_taint_gmagic
#define validate_proto(a,b,c) Perl_validate_proto(aTHX_ a,b,c)
#define vivify_defelem(a) Perl_vivify_defelem(aTHX_ a)
#define yylex() Perl_yylex(aTHX)
+# if !defined(PERL_EXT_RE_BUILD)
+# if defined(PERL_IN_REGCOMP_C)
+#define get_invlist_previous_index_addr S_get_invlist_previous_index_addr
+#define invlist_is_iterating S_invlist_is_iterating
+#define invlist_previous_index S_invlist_previous_index
+#define invlist_set_previous_index S_invlist_set_previous_index
+#define invlist_trim S_invlist_trim
+# endif
+# endif
# if defined(DEBUGGING)
# if defined(PERL_IN_REGCOMP_C)
#define dump_trie(a,b,c,d) S_dump_trie(aTHX_ a,b,c,d)
#define dump_trie_interim_list(a,b,c,d,e) S_dump_trie_interim_list(aTHX_ a,b,c,d,e)
#define dump_trie_interim_table(a,b,c,d,e) S_dump_trie_interim_table(aTHX_ a,b,c,d,e)
#define dumpuntil(a,b,c,d,e,f,g,h) S_dumpuntil(aTHX_ a,b,c,d,e,f,g,h)
-#define put_byte(a,b) S_put_byte(aTHX_ a,b)
-#define put_latin1_charclass_innards(a,b) S_put_latin1_charclass_innards(aTHX_ a,b)
-#define put_range(a,b,c) S_put_range(aTHX_ a,b,c)
+#define put_charclass_bitmap_innards(a,b,c) S_put_charclass_bitmap_innards(aTHX_ a,b,c)
+#define put_code_point(a,b) S_put_code_point(aTHX_ a,b)
+#define put_range(a,b,c,d) S_put_range(aTHX_ a,b,c,d)
#define regdump_extflags(a,b) S_regdump_extflags(aTHX_ a,b)
#define regdump_intflags(a,b) S_regdump_intflags(aTHX_ a,b)
#define regtail_study(a,b,c,d) S_regtail_study(aTHX_ a,b,c,d)
@@ -906,64 +955,64 @@
# endif
# if defined(PERL_IN_REGCOMP_C)
#define _append_range_to_invlist(a,b,c) S__append_range_to_invlist(aTHX_ a,b,c)
-#define _invlist_array_init(a,b) S__invlist_array_init(aTHX_ a,b)
+#define _invlist_array_init S__invlist_array_init
+#define _make_exactf_invlist(a,b) S__make_exactf_invlist(aTHX_ a,b)
+#define add_above_Latin1_folds(a,b,c) S_add_above_Latin1_folds(aTHX_ a,b,c)
#define add_cp_to_invlist(a,b) S_add_cp_to_invlist(aTHX_ a,b)
#define add_data S_add_data
+#define add_multi_match(a,b,c) S_add_multi_match(aTHX_ a,b,c)
#define alloc_maybe_populate_EXACT(a,b,c,d,e,f) S_alloc_maybe_populate_EXACT(aTHX_ a,b,c,d,e,f)
-#define compute_EXACTish(a) S_compute_EXACTish(aTHX_ a)
-#define could_it_be_a_POSIX_class(a) S_could_it_be_a_POSIX_class(aTHX_ a)
+#define cntrl_to_mnemonic S_cntrl_to_mnemonic
+#define compute_EXACTish S_compute_EXACTish
+#define construct_ahocorasick_from_trie(a,b,c) S_construct_ahocorasick_from_trie(aTHX_ a,b,c)
+#define could_it_be_a_POSIX_class S_could_it_be_a_POSIX_class
#define get_ANYOF_cp_list_for_ssc(a,b) S_get_ANYOF_cp_list_for_ssc(aTHX_ a,b)
-#define get_invlist_iter_addr(a) S_get_invlist_iter_addr(aTHX_ a)
-#define get_invlist_previous_index_addr(a) S_get_invlist_previous_index_addr(aTHX_ a)
-#define grok_bslash_N(a,b,c,d,e,f,g) S_grok_bslash_N(aTHX_ a,b,c,d,e,f,g)
+#define get_invlist_iter_addr S_get_invlist_iter_addr
+#define grok_bslash_N(a,b,c,d,e,f) S_grok_bslash_N(aTHX_ a,b,c,d,e,f)
#define handle_regex_sets(a,b,c,d,e) S_handle_regex_sets(aTHX_ a,b,c,d,e)
-#define invlist_array(a) S_invlist_array(aTHX_ a)
#define invlist_clone(a) S_invlist_clone(aTHX_ a)
#define invlist_extend(a,b) S_invlist_extend(aTHX_ a,b)
-#define invlist_highest(a) S_invlist_highest(aTHX_ a)
-#define invlist_is_iterating(a) S_invlist_is_iterating(aTHX_ a)
-#define invlist_iterfinish(a) S_invlist_iterfinish(aTHX_ a)
-#define invlist_iterinit(a) S_invlist_iterinit(aTHX_ a)
-#define invlist_iternext(a,b,c) S_invlist_iternext(aTHX_ a,b,c)
-#define invlist_max(a) S_invlist_max(aTHX_ a)
-#define invlist_previous_index(a) S_invlist_previous_index(aTHX_ a)
+#define invlist_highest S_invlist_highest
+#define invlist_iterfinish S_invlist_iterfinish
+#define invlist_iterinit S_invlist_iterinit
+#define invlist_iternext S_invlist_iternext
+#define invlist_max S_invlist_max
#define invlist_set_len(a,b,c) S_invlist_set_len(aTHX_ a,b,c)
-#define invlist_set_previous_index(a,b) S_invlist_set_previous_index(aTHX_ a,b)
-#define invlist_trim(a) S_invlist_trim(aTHX_ a)
+#define is_ssc_worth_it S_is_ssc_worth_it
#define join_exact(a,b,c,d,e,f,g) S_join_exact(aTHX_ a,b,c,d,e,f,g)
#define make_trie(a,b,c,d,e,f,g,h) S_make_trie(aTHX_ a,b,c,d,e,f,g,h)
-#define make_trie_failtable(a,b,c,d) S_make_trie_failtable(aTHX_ a,b,c,d)
#define nextchar(a) S_nextchar(aTHX_ a)
#define parse_lparen_question_flags(a) S_parse_lparen_question_flags(aTHX_ a)
#define populate_ANYOF_from_invlist(a,b) S_populate_ANYOF_from_invlist(aTHX_ a,b)
#define reg(a,b,c,d) S_reg(aTHX_ a,b,c,d)
+#define reg2Lanode(a,b,c,d) S_reg2Lanode(aTHX_ a,b,c,d)
#define reg_node(a,b) S_reg_node(aTHX_ a,b)
#define reg_recode(a,b) S_reg_recode(aTHX_ a,b)
#define reg_scan_name(a,b) S_reg_scan_name(aTHX_ a,b)
-#define reg_skipcomment(a) S_reg_skipcomment(aTHX_ a)
+#define reg_skipcomment S_reg_skipcomment
#define reganode(a,b,c) S_reganode(aTHX_ a,b,c)
#define regatom(a,b,c) S_regatom(aTHX_ a,b,c)
#define regbranch(a,b,c,d) S_regbranch(aTHX_ a,b,c,d)
-#define regclass(a,b,c,d,e,f,g) S_regclass(aTHX_ a,b,c,d,e,f,g)
+#define regclass(a,b,c,d,e,f,g,h) S_regclass(aTHX_ a,b,c,d,e,f,g,h)
+#define regex_set_precedence S_regex_set_precedence
#define reginsert(a,b,c,d) S_reginsert(aTHX_ a,b,c,d)
+#define regnode_guts(a,b,c,d) S_regnode_guts(aTHX_ a,b,c,d)
#define regpatws S_regpatws
#define regpiece(a,b,c) S_regpiece(aTHX_ a,b,c)
#define regpposixcc(a,b,c) S_regpposixcc(aTHX_ a,b,c)
#define regtail(a,b,c,d) S_regtail(aTHX_ a,b,c,d)
-#define reguni(a,b,c) S_reguni(aTHX_ a,b,c)
-#define regwhite S_regwhite
#define scan_commit(a,b,c,d) S_scan_commit(aTHX_ a,b,c,d)
#define set_ANYOF_arg(a,b,c,d,e,f,g) S_set_ANYOF_arg(aTHX_ a,b,c,d,e,f,g)
#define ssc_add_range(a,b,c) S_ssc_add_range(aTHX_ a,b,c)
#define ssc_and(a,b,c) S_ssc_and(aTHX_ a,b,c)
#define ssc_anything(a) S_ssc_anything(aTHX_ a)
-#define ssc_clear_locale(a) S_ssc_clear_locale(aTHX_ a)
+#define ssc_clear_locale S_ssc_clear_locale
#define ssc_cp_and(a,b) S_ssc_cp_and(aTHX_ a,b)
#define ssc_finalize(a,b) S_ssc_finalize(aTHX_ a,b)
#define ssc_init(a,b) S_ssc_init(aTHX_ a,b)
#define ssc_intersection(a,b,c) S_ssc_intersection(aTHX_ a,b,c)
-#define ssc_is_anything(a) S_ssc_is_anything(aTHX_ a)
-#define ssc_is_cp_posixl_init(a,b) S_ssc_is_cp_posixl_init(aTHX_ a,b)
+#define ssc_is_anything S_ssc_is_anything
+#define ssc_is_cp_posixl_init S_ssc_is_cp_posixl_init
#define ssc_or(a,b,c) S_ssc_or(aTHX_ a,b,c)
#define ssc_union(a,b,c) S_ssc_union(aTHX_ a,b,c)
#define study_chunk(a,b,c,d,e,f,g,h,i,j,k) S_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k)
@@ -971,14 +1020,19 @@
# if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C)
#define _invlist_dump(a,b,c,d) Perl__invlist_dump(aTHX_ a,b,c,d)
# endif
+# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
+#define _load_PL_utf8_foldclosures() Perl__load_PL_utf8_foldclosures(aTHX)
+#define regprop(a,b,c,d,e) Perl_regprop(aTHX_ a,b,c,d,e)
+# endif
# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
#define _get_swash_invlist(a) Perl__get_swash_invlist(aTHX_ a)
-#define _invlist_contains_cp(a,b) S__invlist_contains_cp(aTHX_ a,b)
+#define _invlist_contains_cp S__invlist_contains_cp
#define _invlist_contents(a) Perl__invlist_contents(aTHX_ a)
-#define _invlist_len(a) S__invlist_len(aTHX_ a)
-#define _invlist_search(a,b) Perl__invlist_search(aTHX_ a,b)
+#define _invlist_len S__invlist_len
+#define _invlist_search Perl__invlist_search
#define _swash_inversion_hash(a) Perl__swash_inversion_hash(aTHX_ a)
-#define get_invlist_offset_addr(a) S_get_invlist_offset_addr(aTHX_ a)
+#define get_invlist_offset_addr S_get_invlist_offset_addr
+#define invlist_array S_invlist_array
# endif
# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_TOKE_C)
#define _core_swash_init(a,b,c,d,e,f,g) Perl__core_swash_init(aTHX_ a,b,c,d,e,f,g)
@@ -988,23 +1042,30 @@
#define grok_bslash_c(a,b) S_grok_bslash_c(aTHX_ a,b)
#define grok_bslash_o(a,b,c,d,e,f,g) S_grok_bslash_o(aTHX_ a,b,c,d,e,f,g)
#define grok_bslash_x(a,b,c,d,e,f,g) S_grok_bslash_x(aTHX_ a,b,c,d,e,f,g)
-#define regcurly(a,b) S_regcurly(aTHX_ a,b)
+#define regcurly S_regcurly
# endif
# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
#define _add_range_to_invlist(a,b,c) Perl__add_range_to_invlist(aTHX_ a,b,c)
#define _invlist_intersection_maybe_complement_2nd(a,b,c,d) Perl__invlist_intersection_maybe_complement_2nd(aTHX_ a,b,c,d)
#define _invlist_invert(a) Perl__invlist_invert(aTHX_ a)
-#define _invlist_populate_swatch(a,b,c,d) Perl__invlist_populate_swatch(aTHX_ a,b,c,d)
+#define _invlist_populate_swatch Perl__invlist_populate_swatch
#define _invlist_union_maybe_complement_2nd(a,b,c,d) Perl__invlist_union_maybe_complement_2nd(aTHX_ a,b,c,d)
#define _new_invlist(a) Perl__new_invlist(aTHX_ a)
#define _setup_canned_invlist(a,b,c) Perl__setup_canned_invlist(aTHX_ a,b,c)
#define _swash_to_invlist(a) Perl__swash_to_invlist(aTHX_ a)
# endif
# if defined(PERL_IN_REGEXEC_C)
+#define advance_one_SB(a,b,c) S_advance_one_SB(aTHX_ a,b,c)
+#define advance_one_WB(a,b,c) S_advance_one_WB(aTHX_ a,b,c)
+#define backup_one_SB(a,b,c) S_backup_one_SB(aTHX_ a,b,c)
+#define backup_one_WB(a,b,c,d) S_backup_one_WB(aTHX_ a,b,c,d)
#define find_byclass(a,b,c,d,e) S_find_byclass(aTHX_ a,b,c,d,e)
#define isFOO_lc(a,b) S_isFOO_lc(aTHX_ a,b)
#define isFOO_utf8_lc(a,b) S_isFOO_utf8_lc(aTHX_ a,b)
-#define reg_check_named_buff_matched(a,b) S_reg_check_named_buff_matched(aTHX_ a,b)
+#define isGCB S_isGCB
+#define isSB(a,b,c,d,e,f) S_isSB(aTHX_ a,b,c,d,e,f)
+#define isWB(a,b,c,d,e,f,g) S_isWB(aTHX_ a,b,c,d,e,f,g)
+#define reg_check_named_buff_matched S_reg_check_named_buff_matched
#define regcppop(a,b) S_regcppop(aTHX_ a,b)
#define regcppush(a,b,c) S_regcppush(aTHX_ a,b,c)
#define reghop3 S_reghop3
@@ -1029,8 +1090,6 @@
#define apply(a,b,c) Perl_apply(aTHX_ a,b,c)
#define av_extend_guts(a,b,c,d,e) Perl_av_extend_guts(aTHX_ a,b,c,d,e)
#define bind_match(a,b,c) Perl_bind_match(aTHX_ a,b,c)
-#define block_end(a,b) Perl_block_end(aTHX_ a,b)
-#define block_start(a) Perl_block_start(aTHX_ a)
#define boot_core_PerlIO() Perl_boot_core_PerlIO(aTHX)
#define boot_core_UNIVERSAL() Perl_boot_core_UNIVERSAL(aTHX)
#define boot_core_mro() Perl_boot_core_mro(aTHX)
@@ -1061,7 +1120,9 @@
#define ck_method(a) Perl_ck_method(aTHX_ a)
#define ck_null(a) Perl_ck_null(aTHX_ a)
#define ck_open(a) Perl_ck_open(aTHX_ a)
+#define ck_prototype(a) Perl_ck_prototype(aTHX_ a)
#define ck_readline(a) Perl_ck_readline(aTHX_ a)
+#define ck_refassign(a) Perl_ck_refassign(aTHX_ a)
#define ck_repeat(a) Perl_ck_repeat(aTHX_ a)
#define ck_require(a) Perl_ck_require(aTHX_ a)
#define ck_return(a) Perl_ck_return(aTHX_ a)
@@ -1074,13 +1135,13 @@
#define ck_sort(a) Perl_ck_sort(aTHX_ a)
#define ck_spair(a) Perl_ck_spair(aTHX_ a)
#define ck_split(a) Perl_ck_split(aTHX_ a)
+#define ck_stringify(a) Perl_ck_stringify(aTHX_ a)
#define ck_subr(a) Perl_ck_subr(aTHX_ a)
#define ck_substr(a) Perl_ck_substr(aTHX_ a)
#define ck_svconst(a) Perl_ck_svconst(aTHX_ a)
#define ck_tell(a) Perl_ck_tell(aTHX_ a)
#define ck_trunc(a) Perl_ck_trunc(aTHX_ a)
#define closest_cop(a,b,c,d) Perl_closest_cop(aTHX_ a,b,c,d)
-#define convert(a,b,c) Perl_convert(aTHX_ a,b,c)
#define core_prototype(a,b,c,d) Perl_core_prototype(aTHX_ a,b,c,d)
#define coresub_op(a,b,c) Perl_coresub_op(aTHX_ a,b,c)
#define create_eval_scope(a) Perl_create_eval_scope(aTHX_ a)
@@ -1088,8 +1149,9 @@
#define croak_popstack Perl_croak_popstack
#define custom_op_get_field(a,b) Perl_custom_op_get_field(aTHX_ a,b)
#define cv_clone_into(a,b) Perl_cv_clone_into(aTHX_ a,b)
-#define cv_const_sv_or_av(a) Perl_cv_const_sv_or_av(aTHX_ a)
+#define cv_const_sv_or_av Perl_cv_const_sv_or_av
#define cv_forget_slab(a) Perl_cv_forget_slab(aTHX_ a)
+#define cv_undef_flags(a,b) Perl_cv_undef_flags(aTHX_ a,b)
#define cvgv_set(a,b) Perl_cvgv_set(aTHX_ a,b)
#define cvstash_set(a,b) Perl_cvstash_set(aTHX_ a,b)
#define deb_stack_all() Perl_deb_stack_all(aTHX)
@@ -1126,17 +1188,16 @@
#define get_no_modify() Perl_get_no_modify(aTHX)
#define get_opargs() Perl_get_opargs(aTHX)
#define gv_override(a,b) Perl_gv_override(aTHX_ a,b)
+#define gv_setref(a,b) Perl_gv_setref(aTHX_ a,b)
#define gv_try_downgrade(a) Perl_gv_try_downgrade(aTHX_ a)
#define hv_ename_add(a,b,c,d) Perl_hv_ename_add(aTHX_ a,b,c,d)
#define hv_ename_delete(a,b,c,d) Perl_hv_ename_delete(aTHX_ a,b,c,d)
#define init_argv_symbols(a,b) Perl_init_argv_symbols(aTHX_ a,b)
#define init_constants() Perl_init_constants(aTHX)
#define init_debugger() Perl_init_debugger(aTHX)
-#define intro_my() Perl_intro_my(aTHX)
#define invert(a) Perl_invert(aTHX_ a)
-#define io_close(a,b) Perl_io_close(aTHX_ a,b)
-#define isALNUM_lazy(a) S_isALNUM_lazy(aTHX_ a)
-#define isIDFIRST_lazy(a) S_isIDFIRST_lazy(aTHX_ a)
+#define io_close(a,b,c,d) Perl_io_close(aTHX_ a,b,c,d)
+#define isinfnansv(a) Perl_isinfnansv(aTHX_ a)
#define jmaybe(a) Perl_jmaybe(aTHX_ a)
#define keyword(a,b,c) Perl_keyword(aTHX_ a,b,c)
#define list(a) Perl_list(aTHX_ a)
@@ -1155,6 +1216,7 @@
#define magic_freeovrld(a,b) Perl_magic_freeovrld(aTHX_ a,b)
#define magic_get(a,b) Perl_magic_get(aTHX_ a,b)
#define magic_getarylen(a,b) Perl_magic_getarylen(aTHX_ a,b)
+#define magic_getdebugvar(a,b) Perl_magic_getdebugvar(aTHX_ a,b)
#define magic_getdefelem(a,b) Perl_magic_getdefelem(aTHX_ a,b)
#define magic_getnkeys(a,b) Perl_magic_getnkeys(aTHX_ a,b)
#define magic_getpack(a,b) Perl_magic_getpack(aTHX_ a,b)
@@ -1173,10 +1235,12 @@
#define magic_set_all_env(a,b) Perl_magic_set_all_env(aTHX_ a,b)
#define magic_setarylen(a,b) Perl_magic_setarylen(aTHX_ a,b)
#define magic_setdbline(a,b) Perl_magic_setdbline(aTHX_ a,b)
+#define magic_setdebugvar(a,b) Perl_magic_setdebugvar(aTHX_ a,b)
#define magic_setdefelem(a,b) Perl_magic_setdefelem(aTHX_ a,b)
#define magic_setenv(a,b) Perl_magic_setenv(aTHX_ a,b)
#define magic_sethint(a,b) Perl_magic_sethint(aTHX_ a,b)
#define magic_setisa(a,b) Perl_magic_setisa(aTHX_ a,b)
+#define magic_setlvref(a,b) Perl_magic_setlvref(aTHX_ a,b)
#define magic_setmglob(a,b) Perl_magic_setmglob(aTHX_ a,b)
#define magic_setnkeys(a,b) Perl_magic_setnkeys(aTHX_ a,b)
#define magic_setpack(a,b) Perl_magic_setpack(aTHX_ a,b)
@@ -1202,13 +1266,16 @@
#define newATTRSUB_x(a,b,c,d,e,f) Perl_newATTRSUB_x(aTHX_ a,b,c,d,e,f)
#define newSTUB(a,b) Perl_newSTUB(aTHX_ a,b)
#define newSVavdefelem(a,b,c) Perl_newSVavdefelem(aTHX_ a,b,c)
+#define newXS_deffile(a,b) Perl_newXS_deffile(aTHX_ a,b)
#define newXS_len_flags(a,b,c,d,e,f,g) Perl_newXS_len_flags(aTHX_ a,b,c,d,e,f,g)
-#define nextargv(a) Perl_nextargv(aTHX_ a)
+#define nextargv(a,b) Perl_nextargv(aTHX_ a,b)
+#define noperl_die Perl_noperl_die
#define oopsAV(a) Perl_oopsAV(aTHX_ a)
#define oopsHV(a) Perl_oopsHV(aTHX_ a)
-#define op_const_sv(a,b) Perl_op_const_sv(aTHX_ a,b)
#define op_unscope(a) Perl_op_unscope(aTHX_ a)
+#define package(a) Perl_package(aTHX_ a)
#define package_version(a) Perl_package_version(aTHX_ a)
+#define pad_add_weakref(a) Perl_pad_add_weakref(aTHX_ a)
#define pad_block_start(a) Perl_pad_block_start(aTHX_ a)
#define pad_fixup_inner_anons(a,b,c) Perl_pad_fixup_inner_anons(aTHX_ a,b,c)
#define pad_free(a) Perl_pad_free(aTHX_ a)
@@ -1220,7 +1287,7 @@
#define parse_unicode_opts(a) Perl_parse_unicode_opts(aTHX_ a)
#define parser_free(a) Perl_parser_free(aTHX_ a)
#define peep(a) Perl_peep(aTHX_ a)
-#define pmruntime(a,b,c,d) Perl_pmruntime(aTHX_ a,b,c,d)
+#define pmruntime(a,b,c,d,e) Perl_pmruntime(aTHX_ a,b,c,d,e)
#define re_op_compile(a,b,c,d,e,f,g,h) Perl_re_op_compile(aTHX_ a,b,c,d,e,f,g,h)
#define refcounted_he_chain_2hv(a,b) Perl_refcounted_he_chain_2hv(aTHX_ a,b)
#define refcounted_he_fetch_pv(a,b,c,d) Perl_refcounted_he_fetch_pv(aTHX_ a,b,c,d)
@@ -1237,6 +1304,7 @@
#define rsignal_restore(a,b) Perl_rsignal_restore(aTHX_ a,b)
#define rsignal_save(a,b,c) Perl_rsignal_save(aTHX_ a,b,c)
#define rxres_save(a,b) Perl_rxres_save(aTHX_ a,b)
+#define save_aliased_sv(a) Perl_save_aliased_sv(aTHX_ a)
#define save_strlen(a) Perl_save_strlen(aTHX_ a)
#define sawparens(a) Perl_sawparens(aTHX_ a)
#define scalar(a) Perl_scalar(aTHX_ a)
@@ -1256,11 +1324,14 @@
#ifndef PERL_IMPLICIT_CONTEXT
#define tied_method Perl_tied_method
#endif
+#define tmps_grow_p(a) Perl_tmps_grow_p(aTHX_ a)
#define unshare_hek(a) Perl_unshare_hek(aTHX_ a)
+#define utilize(a,b,c,d,e) Perl_utilize(aTHX_ a,b,c,d,e)
#define vivify_ref(a,b) Perl_vivify_ref(aTHX_ a,b)
#define wait4pid(a,b,c) Perl_wait4pid(aTHX_ a,b,c)
#define watch(a) Perl_watch(aTHX_ a)
#define write_to_stderr(a) Perl_write_to_stderr(aTHX_ a)
+#define xs_boot_epilog(a) Perl_xs_boot_epilog(aTHX_ a)
#define yyerror(a) Perl_yyerror(aTHX_ a)
#define yyerror_pv(a,b) Perl_yyerror_pv(aTHX_ a,b)
#define yyerror_pvn(a,b,c) Perl_yyerror_pvn(aTHX_ a,b,c)
@@ -1279,10 +1350,6 @@
# if !(defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION))
#define do_exec(a) Perl_do_exec(aTHX_ a)
# endif
-# if !(defined(PERL_MAD))
-#define package(a) Perl_package(aTHX_ a)
-#define utilize(a,b,c,d,e) Perl_utilize(aTHX_ a,b,c,d,e)
-# endif
# if !(defined(_MSC_VER))
#define magic_regdatum_set(a,b) Perl_magic_regdatum_set(aTHX_ a,b)
# endif
@@ -1320,11 +1387,17 @@
#define utf16_textfilter(a,b,c) S_utf16_textfilter(aTHX_ a,b,c)
# endif
# endif
+# if !defined(USE_QUADMATH)
+# if defined(PERL_IN_NUMERIC_C)
+#define mulexp10 S_mulexp10
+# endif
+# endif
# if !defined(WIN32)
#define do_exec3(a,b,c) Perl_do_exec3(aTHX_ a,b,c)
# endif
# if defined(DEBUGGING)
#define get_debug_opts(a,b) Perl_get_debug_opts(aTHX_ a,b)
+#define set_padlist Perl_set_padlist
# if defined(PERL_IN_PAD_C)
#define cv_dump(a,b) S_cv_dump(aTHX_ a,b)
# endif
@@ -1359,6 +1432,7 @@
#define opslab_free(a) Perl_opslab_free(aTHX_ a)
#define opslab_free_nopad(a) Perl_opslab_free_nopad(aTHX_ a)
#define parser_free_nexttoke_ops(a,b) Perl_parser_free_nexttoke_ops(aTHX_ a,b)
+#define should_warn_nl S_should_warn_nl
# if defined(PERL_DEBUG_READONLY_OPS)
#define Slab_to_ro(a) Perl_Slab_to_ro(aTHX_ a)
#define Slab_to_rw(a) Perl_Slab_to_rw(aTHX_ a)
@@ -1404,10 +1478,13 @@
# endif
# if defined(PERL_IN_GV_C)
#define find_default_stash(a,b,c,d,e,f) S_find_default_stash(aTHX_ a,b,c,d,e,f)
+#define gv_fetchmeth_internal(a,b,c,d,e,f) S_gv_fetchmeth_internal(aTHX_ a,b,c,d,e,f)
#define gv_init_svtype(a,b) S_gv_init_svtype(aTHX_ a,b)
#define gv_is_in_main(a,b,c) S_gv_is_in_main(aTHX_ a,b,c)
#define gv_magicalize(a,b,c,d,e,f) S_gv_magicalize(aTHX_ a,b,c,d,e,f)
#define gv_magicalize_isa(a) S_gv_magicalize_isa(aTHX_ a)
+#define gv_stashpvn_internal(a,b,c) S_gv_stashpvn_internal(aTHX_ a,b,c)
+#define gv_stashsvpvn_cached(a,b,c,d) S_gv_stashsvpvn_cached(aTHX_ a,b,c,d)
#define maybe_multimagic_gv(a,b,c) S_maybe_multimagic_gv(aTHX_ a,b,c)
#define parse_gv_stash_name(a,b,c,d,e,f,g,h) S_parse_gv_stash_name(aTHX_ a,b,c,d,e,f,g,h)
#define require_tie_mod(a,b,c,d,e) S_require_tie_mod(aTHX_ a,b,c,d,e)
@@ -1429,10 +1506,6 @@
#define share_hek_flags(a,b,c,d) S_share_hek_flags(aTHX_ a,b,c,d)
#define unshare_hek_or_pvn(a,b,c,d) S_unshare_hek_or_pvn(aTHX_ a,b,c,d)
# endif
-# if defined(PERL_IN_LOCALE_C) && defined(USE_LOCALE)
-#define is_cur_LC_category_utf8(a) S_is_cur_LC_category_utf8(aTHX_ a)
-#define stdize_locale(a) S_stdize_locale(aTHX_ a)
-# endif
# if defined(PERL_IN_MALLOC_C)
#define adjust_size_and_find_bucket S_adjust_size_and_find_bucket
# endif
@@ -1445,45 +1518,41 @@
#define unwind_handler_stack(a) S_unwind_handler_stack(aTHX_ a)
# endif
# if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
-#define translate_substr_offsets(a,b,c,d,e,f,g) Perl_translate_substr_offsets(aTHX_ a,b,c,d,e,f,g)
+#define translate_substr_offsets Perl_translate_substr_offsets
# endif
# if defined(PERL_IN_MRO_C)
#define mro_clean_isarev(a,b,c,d,e,f) S_mro_clean_isarev(aTHX_ a,b,c,d,e,f)
#define mro_gather_and_rename(a,b,c,d,e) S_mro_gather_and_rename(aTHX_ a,b,c,d,e)
#define mro_get_linear_isa_dfs(a,b) S_mro_get_linear_isa_dfs(aTHX_ a,b)
# endif
-# if defined(PERL_IN_NUMERIC_C)
-#define mulexp10 S_mulexp10
-# endif
# if defined(PERL_IN_OP_C)
#define aassign_common_vars(a) S_aassign_common_vars(aTHX_ a)
#define apply_attrs(a,b,c) S_apply_attrs(aTHX_ a,b,c)
#define apply_attrs_my(a,b,c,d) S_apply_attrs_my(aTHX_ a,b,c,d)
-#define bad_type_gv(a,b,c,d,e) S_bad_type_gv(aTHX_ a,b,c,d,e)
-#define bad_type_pv(a,b,c,d,e) S_bad_type_pv(aTHX_ a,b,c,d,e)
+#define assignment_type(a) S_assignment_type(aTHX_ a)
+#define bad_type_gv(a,b,c,d) S_bad_type_gv(aTHX_ a,b,c,d)
+#define bad_type_pv(a,b,c,d) S_bad_type_pv(aTHX_ a,b,c,d)
+#define clear_special_blocks(a,b,c) S_clear_special_blocks(aTHX_ a,b,c)
#define cop_free(a) S_cop_free(aTHX_ a)
#define dup_attrlist(a) S_dup_attrlist(aTHX_ a)
#define finalize_op(a) S_finalize_op(aTHX_ a)
#define find_and_forget_pmops(a) S_find_and_forget_pmops(aTHX_ a)
#define fold_constants(a) S_fold_constants(aTHX_ a)
-#define force_list(a) S_force_list(aTHX_ a)
+#define force_list(a,b) S_force_list(aTHX_ a,b)
#define forget_pmop(a) S_forget_pmop(aTHX_ a)
#define gen_constant_list(a) S_gen_constant_list(aTHX_ a)
-#define gv_ename(a) S_gv_ename(aTHX_ a)
#define inplace_aassign(a) S_inplace_aassign(aTHX_ a)
#define is_handle_constructor S_is_handle_constructor
-#define is_list_assignment(a) S_is_list_assignment(aTHX_ a)
#define listkids(a) S_listkids(aTHX_ a)
#define looks_like_bool(a) S_looks_like_bool(aTHX_ a)
#define modkids(a,b) S_modkids(aTHX_ a,b)
#define move_proto_attr(a,b,c) S_move_proto_attr(aTHX_ a,b,c)
#define my_kid(a,b,c) S_my_kid(aTHX_ a,b,c)
-#define newDEFSVOP() S_newDEFSVOP(aTHX)
#define newGIVWHENOP(a,b,c,d,e) S_newGIVWHENOP(aTHX_ a,b,c,d,e)
+#define newMETHOP_internal(a,b,c,d) S_newMETHOP_internal(aTHX_ a,b,c,d)
#define new_logop(a,b,c,d) S_new_logop(aTHX_ a,b,c,d)
#define no_bareword_allowed(a) S_no_bareword_allowed(aTHX_ a)
#define no_fh_allowed(a) S_no_fh_allowed(aTHX_ a)
-#define null_listop_in_list_context(a) S_null_listop_in_list_context(aTHX_ a)
#define op_integerize(a) S_op_integerize(aTHX_ a)
#define op_std_init(a) S_op_std_init(aTHX_ a)
#define pmtrans(a,b,c) S_pmtrans(aTHX_ a,b,c)
@@ -1497,9 +1566,10 @@
#define search_const(a) S_search_const(aTHX_ a)
#define simplify_sort(a) S_simplify_sort(aTHX_ a)
#define too_few_arguments_pv(a,b,c) S_too_few_arguments_pv(aTHX_ a,b,c)
-#define too_few_arguments_sv(a,b,c) S_too_few_arguments_sv(aTHX_ a,b,c)
#define too_many_arguments_pv(a,b,c) S_too_many_arguments_pv(aTHX_ a,b,c)
-#define too_many_arguments_sv(a,b,c) S_too_many_arguments_sv(aTHX_ a,b,c)
+# if defined(USE_ITHREADS)
+#define op_relocate_sv(a,b) S_op_relocate_sv(aTHX_ a,b)
+# endif
# endif
# if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
#define report_redefined_cv(a,b,c) Perl_report_redefined_cv(aTHX_ a,b,c)
@@ -1536,7 +1606,6 @@
#define refto(a) S_refto(aTHX_ a)
# endif
# if defined(PERL_IN_PP_CTL_C)
-#define adjust_stack_on_leave(a,b,c,d,e,f) S_adjust_stack_on_leave(aTHX_ a,b,c,d,e,f)
#define check_type_and_open(a) S_check_type_and_open(aTHX_ a)
#define destroy_matcher(a) S_destroy_matcher(aTHX_ a)
#define do_smartmatch(a,b,c) S_do_smartmatch(aTHX_ a,b,c)
@@ -1550,6 +1619,7 @@
#define dopoptoloop(a) S_dopoptoloop(aTHX_ a)
#define dopoptosub_at(a,b) S_dopoptosub_at(aTHX_ a,b)
#define dopoptowhen(a) S_dopoptowhen(aTHX_ a)
+#define leave_common(a,b,c,d,e,f) S_leave_common(aTHX_ a,b,c,d,e,f)
#define make_matcher(a) S_make_matcher(aTHX_ a)
#define matcher_matches_sv(a,b) S_matcher_matches_sv(aTHX_ a,b)
#define num_overflow S_num_overflow
@@ -1561,10 +1631,9 @@
# endif
# if defined(PERL_IN_PP_HOT_C)
#define do_oddball(a,b) S_do_oddball(aTHX_ a,b)
-#define method_common(a,b) S_method_common(aTHX_ a,b)
+#define opmethod_stash(a) S_opmethod_stash(aTHX_ a)
# endif
# if defined(PERL_IN_PP_PACK_C)
-#define bytes_to_uni S_bytes_to_uni
#define div128(a,b) S_div128(aTHX_ a,b)
#define first_symbol S_first_symbol
#define get_num(a,b) S_get_num(aTHX_ a,b)
@@ -1572,6 +1641,7 @@
#define is_an_int(a,b) S_is_an_int(aTHX_ a,b)
#define measure_struct(a) S_measure_struct(aTHX_ a)
#define mul128(a,b) S_mul128(aTHX_ a,b)
+#define my_bytes_to_utf8 S_my_bytes_to_utf8
#define need_utf8 S_need_utf8
#define next_symbol(a) S_next_symbol(aTHX_ a)
#define pack_rec(a,b,c,d) S_pack_rec(aTHX_ a,b,c,d)
@@ -1580,7 +1650,6 @@
# endif
# if defined(PERL_IN_PP_SORT_C)
#define amagic_cmp(a,b) S_amagic_cmp(aTHX_ a,b)
-#define amagic_cmp_locale(a,b) S_amagic_cmp_locale(aTHX_ a,b)
#define amagic_i_ncmp(a,b) S_amagic_i_ncmp(aTHX_ a,b)
#define amagic_ncmp(a,b) S_amagic_ncmp(aTHX_ a,b)
#define qsortsvu(a,b,c) S_qsortsvu(aTHX_ a,b,c)
@@ -1589,6 +1658,9 @@
#define sortcv_xsub(a,b) S_sortcv_xsub(aTHX_ a,b)
#define sv_i_ncmp(a,b) S_sv_i_ncmp(aTHX_ a,b)
#define sv_ncmp(a,b) S_sv_ncmp(aTHX_ a,b)
+# if defined(USE_LOCALE_COLLATE)
+#define amagic_cmp_locale(a,b) S_amagic_cmp_locale(aTHX_ a,b)
+# endif
# endif
# if defined(PERL_IN_PP_SYS_C)
#define doform(a,b,c) S_doform(aTHX_ a,b,c)
@@ -1606,15 +1678,16 @@
#define expect_number(a) S_expect_number(aTHX_ a)
#define find_array_subscript(a,b) S_find_array_subscript(aTHX_ a,b)
#define find_hash_subscript(a,b) S_find_hash_subscript(aTHX_ a,b)
-#define find_uninit_var(a,b,c) S_find_uninit_var(aTHX_ a,b,c)
+#define find_uninit_var(a,b,c,d) S_find_uninit_var(aTHX_ a,b,c,d)
#define glob_2number(a) S_glob_2number(aTHX_ a)
#define glob_assign_glob(a,b,c) S_glob_assign_glob(aTHX_ a,b,c)
-#define glob_assign_ref(a,b) S_glob_assign_ref(aTHX_ a,b)
#define more_sv() S_more_sv(aTHX)
#define not_a_number(a) S_not_a_number(aTHX_ a)
+#define not_incrementable(a) S_not_incrementable(aTHX_ a)
#define ptr_table_find S_ptr_table_find
#define sv_2iuv_common(a) S_sv_2iuv_common(aTHX_ a)
#define sv_add_arena(a,b,c) S_sv_add_arena(aTHX_ a,b,c)
+#define sv_display(a,b,c) S_sv_display(aTHX_ a,b,c)
#define sv_pos_b2u_midway(a,b,c,d) S_sv_pos_b2u_midway(aTHX_ a,b,c,d)
#define sv_pos_u2b_cached(a,b,c,d,e,f,g) S_sv_pos_u2b_cached(aTHX_ a,b,c,d,e,f,g)
#define sv_pos_u2b_forwards S_sv_pos_u2b_forwards
@@ -1664,7 +1737,7 @@
#define scan_ident(a,b,c,d) S_scan_ident(aTHX_ a,b,c,d)
#define scan_inputsymbol(a) S_scan_inputsymbol(aTHX_ a)
#define scan_pat(a,b) S_scan_pat(aTHX_ a,b)
-#define scan_str(a,b,c,d,e,f) S_scan_str(aTHX_ a,b,c,d,e,f)
+#define scan_str(a,b,c,d,e) S_scan_str(aTHX_ a,b,c,d,e)
#define scan_subst(a) S_scan_subst(aTHX_ a)
#define scan_trans(a) S_scan_trans(aTHX_ a)
#define scan_word(a,b,c,d,e) S_scan_word(aTHX_ a,b,c,d,e)
@@ -1677,23 +1750,16 @@
#define tokeq(a) S_tokeq(aTHX_ a)
#define update_debugger_info(a,b,c) S_update_debugger_info(aTHX_ a,b,c)
#define yywarn(a,b) S_yywarn(aTHX_ a,b)
-# if defined(PERL_MAD)
-#define curmad(a,b) S_curmad(aTHX_ a,b)
-#define skipspace0(a) S_skipspace0(aTHX_ a)
-#define skipspace1(a) S_skipspace1(aTHX_ a)
-#define skipspace2(a,b) S_skipspace2(aTHX_ a,b)
-#define start_force(a) S_start_force(aTHX_ a)
-# endif
# endif
# if defined(PERL_IN_UNIVERSAL_C)
#define isa_lookup(a,b,c,d) S_isa_lookup(aTHX_ a,b,c,d)
# endif
# if defined(PERL_IN_UTF8_C)
#define check_locale_boundary_crossing(a,b,c,d) S_check_locale_boundary_crossing(aTHX_ a,b,c,d)
-#define is_utf8_char_slow S_is_utf8_char_slow
#define is_utf8_common(a,b,c,d) S_is_utf8_common(aTHX_ a,b,c,d)
+#define swash_scan_list_line(a,b,c,d,e,f,g) S_swash_scan_list_line(aTHX_ a,b,c,d,e,f,g)
#define swatch_get(a,b,c) S_swatch_get(aTHX_ a,b,c)
-#define to_lower_latin1(a,b,c) S_to_lower_latin1(aTHX_ a,b,c)
+#define to_lower_latin1 S_to_lower_latin1
# endif
# if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
#define _to_upper_title_latin1(a,b,c,d) Perl__to_upper_title_latin1(aTHX_ a,b,c,d)
@@ -1707,55 +1773,29 @@
#define mem_log_common S_mem_log_common
# endif
# endif
-# if defined(PERL_MAD)
-#define addmad(a,b,c) Perl_addmad(aTHX_ a,b,c)
-#define append_madprops(a,b,c) Perl_append_madprops(aTHX_ a,b,c)
-#define do_op_xmldump(a,b,c) Perl_do_op_xmldump(aTHX_ a,b,c)
-#define do_pmop_xmldump(a,b,c) Perl_do_pmop_xmldump(aTHX_ a,b,c)
-#define mad_free(a) Perl_mad_free(aTHX_ a)
-#define madlex() Perl_madlex(aTHX)
-#define madparse(a) Perl_madparse(aTHX_ a)
-#define newMADPROP(a,b,c,d) Perl_newMADPROP(aTHX_ a,b,c,d)
-#define newMADsv(a,b) Perl_newMADsv(aTHX_ a,b)
-#define newTOKEN(a,b,c) Perl_newTOKEN(aTHX_ a,b,c)
-#define op_getmad(a,b,c) Perl_op_getmad(aTHX_ a,b,c)
-#define op_getmad_weak(a,b,c) Perl_op_getmad_weak(aTHX_ a,b,c)
-#define op_xmldump(a) Perl_op_xmldump(aTHX_ a)
-#define package(a) Perl_package(aTHX_ a)
-#define pad_peg Perl_pad_peg
-#define pmop_xmldump(a) Perl_pmop_xmldump(aTHX_ a)
-#define prepend_madprops(a,b,c) Perl_prepend_madprops(aTHX_ a,b,c)
-#define sv_catxmlpv(a,b,c) Perl_sv_catxmlpv(aTHX_ a,b,c)
-#define sv_catxmlpvn(a,b,c,d) Perl_sv_catxmlpvn(aTHX_ a,b,c,d)
-#define sv_catxmlsv(a,b) Perl_sv_catxmlsv(aTHX_ a,b)
-#define sv_xmlpeek(a) Perl_sv_xmlpeek(aTHX_ a)
-#define token_free(a) Perl_token_free(aTHX_ a)
-#define token_getmad(a,b,c) Perl_token_getmad(aTHX_ a,b,c)
-#define utilize(a,b,c,d,e) Perl_utilize(aTHX_ a,b,c,d,e)
-#define xmldump_all() Perl_xmldump_all(aTHX)
-#define xmldump_all_perl(a) Perl_xmldump_all_perl(aTHX_ a)
-#define xmldump_eval() Perl_xmldump_eval(aTHX)
-#define xmldump_form(a) Perl_xmldump_form(aTHX_ a)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define xmldump_indent Perl_xmldump_indent
-#endif
-#define xmldump_packsubs(a) Perl_xmldump_packsubs(aTHX_ a)
-#define xmldump_packsubs_perl(a,b) Perl_xmldump_packsubs_perl(aTHX_ a,b)
-#define xmldump_sub(a) Perl_xmldump_sub(aTHX_ a)
-#define xmldump_sub_perl(a,b) Perl_xmldump_sub_perl(aTHX_ a,b)
-#define xmldump_vindent(a,b,c,d) Perl_xmldump_vindent(aTHX_ a,b,c,d)
-# endif
# if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
#define pidgone(a,b) S_pidgone(aTHX_ a,b)
# endif
+# if defined(USE_C_BACKTRACE)
+#define get_c_backtrace(a,b) Perl_get_c_backtrace(aTHX_ a,b)
+# endif
# if defined(USE_ITHREADS)
#define mro_meta_dup(a,b) Perl_mro_meta_dup(aTHX_ a,b)
#define padlist_dup(a,b) Perl_padlist_dup(aTHX_ a,b)
+#define padname_dup(a,b) Perl_padname_dup(aTHX_ a,b)
+#define padnamelist_dup(a,b) Perl_padnamelist_dup(aTHX_ a,b)
+# endif
+# if defined(USE_LOCALE) && defined(PERL_IN_LOCALE_C)
+#define stdize_locale(a) S_stdize_locale(aTHX_ a)
# endif
# if defined(USE_LOCALE_COLLATE)
#define magic_setcollxfrm(a,b) Perl_magic_setcollxfrm(aTHX_ a,b)
#define mem_collxfrm(a,b,c) Perl_mem_collxfrm(aTHX_ a,b,c)
# endif
+# if defined(USE_PERLIO)
+#define PerlIO_restore_errno(a) Perl_PerlIO_restore_errno(aTHX_ a)
+#define PerlIO_save_errno(a) Perl_PerlIO_save_errno(aTHX_ a)
+# endif
# if defined(_MSC_VER)
#define magic_regdatum_set(a,b) Perl_magic_regdatum_set(aTHX_ a,b)
# endif
diff --git a/Master/tlpkg/tlperl/lib/CORE/embedvar.h b/Master/tlpkg/tlperl/lib/CORE/embedvar.h
index 5ae8d051b17..9ed30e02dfa 100644
--- a/Master/tlpkg/tlperl/lib/CORE/embedvar.h
+++ b/Master/tlpkg/tlperl/lib/CORE/embedvar.h
@@ -43,6 +43,7 @@
#define PL_AboveLatin1 (vTHX->IAboveLatin1)
#define PL_Argv (vTHX->IArgv)
#define PL_Cmd (vTHX->ICmd)
+#define PL_DBcontrol (vTHX->IDBcontrol)
#define PL_DBcv (vTHX->IDBcv)
#define PL_DBgv (vTHX->IDBgv)
#define PL_DBline (vTHX->IDBline)
@@ -52,7 +53,9 @@
#define PL_DBtrace (vTHX->IDBtrace)
#define PL_Dir (vTHX->IDir)
#define PL_Env (vTHX->IEnv)
+#define PL_GCB_invlist (vTHX->IGCB_invlist)
#define PL_HasMultiCharFold (vTHX->IHasMultiCharFold)
+#define PL_InBitmap (vTHX->IInBitmap)
#define PL_LIO (vTHX->ILIO)
#define PL_Latin1 (vTHX->ILatin1)
#define PL_Mem (vTHX->IMem)
@@ -61,14 +64,15 @@
#define PL_NonL1NonFinalFold (vTHX->INonL1NonFinalFold)
#define PL_Posix_ptrs (vTHX->IPosix_ptrs)
#define PL_Proc (vTHX->IProc)
+#define PL_SB_invlist (vTHX->ISB_invlist)
#define PL_Sock (vTHX->ISock)
#define PL_StdIO (vTHX->IStdIO)
#define PL_Sv (vTHX->ISv)
#define PL_UpperLatin1 (vTHX->IUpperLatin1)
+#define PL_WB_invlist (vTHX->IWB_invlist)
#define PL_XPosix_ptrs (vTHX->IXPosix_ptrs)
#define PL_Xpv (vTHX->IXpv)
#define PL_an (vTHX->Ian)
-#define PL_apiversion (vTHX->Iapiversion)
#define PL_argvgv (vTHX->Iargvgv)
#define PL_argvout_stack (vTHX->Iargvout_stack)
#define PL_argvoutgv (vTHX->Iargvoutgv)
@@ -97,6 +101,7 @@
#define PL_comppad_name (vTHX->Icomppad_name)
#define PL_comppad_name_fill (vTHX->Icomppad_name_fill)
#define PL_comppad_name_floor (vTHX->Icomppad_name_floor)
+#define PL_constpadix (vTHX->Iconstpadix)
#define PL_cop_seqmax (vTHX->Icop_seqmax)
#define PL_cryptseen (vTHX->Icryptseen)
#define PL_curcop (vTHX->Icurcop)
@@ -177,10 +182,10 @@
#define PL_lastgotoprobe (vTHX->Ilastgotoprobe)
#define PL_laststatval (vTHX->Ilaststatval)
#define PL_laststype (vTHX->Ilaststype)
+#define PL_lex_encoding (vTHX->Ilex_encoding)
#define PL_localizing (vTHX->Ilocalizing)
#define PL_localpatches (vTHX->Ilocalpatches)
#define PL_lockhook (vTHX->Ilockhook)
-#define PL_madskills (vTHX->Imadskills)
#define PL_main_cv (vTHX->Imain_cv)
#define PL_main_root (vTHX->Imain_root)
#define PL_main_start (vTHX->Imain_start)
@@ -203,6 +208,7 @@
#define PL_minus_p (vTHX->Iminus_p)
#define PL_modcount (vTHX->Imodcount)
#define PL_modglobal (vTHX->Imodglobal)
+#define PL_multideref_pc (vTHX->Imultideref_pc)
#define PL_my_cxt_keys (vTHX->Imy_cxt_keys)
#define PL_my_cxt_list (vTHX->Imy_cxt_list)
#define PL_my_cxt_size (vTHX->Imy_cxt_size)
@@ -228,6 +234,9 @@
#define PL_pad_reset_pending (vTHX->Ipad_reset_pending)
#define PL_padix (vTHX->Ipadix)
#define PL_padix_floor (vTHX->Ipadix_floor)
+#define PL_padlist_generation (vTHX->Ipadlist_generation)
+#define PL_padname_const (vTHX->Ipadname_const)
+#define PL_padname_undef (vTHX->Ipadname_undef)
#define PL_parser (vTHX->Iparser)
#define PL_patchlevel (vTHX->Ipatchlevel)
#define PL_peepp (vTHX->Ipeepp)
@@ -261,6 +270,7 @@
#define PL_savestack (vTHX->Isavestack)
#define PL_savestack_ix (vTHX->Isavestack_ix)
#define PL_savestack_max (vTHX->Isavestack_max)
+#define PL_sawalias (vTHX->Isawalias)
#ifndef PL_sawampersand
#define PL_sawampersand (vTHX->Isawampersand)
#endif
@@ -304,7 +314,6 @@
#define PL_sv_consts (vTHX->Isv_consts)
#define PL_sv_count (vTHX->Isv_count)
#define PL_sv_no (vTHX->Isv_no)
-#define PL_sv_objcount (vTHX->Isv_objcount)
#define PL_sv_root (vTHX->Isv_root)
#define PL_sv_serial (vTHX->Isv_serial)
#define PL_sv_undef (vTHX->Isv_undef)
@@ -326,8 +335,6 @@
#define PL_unitcheckav_save (vTHX->Iunitcheckav_save)
#define PL_unlockhook (vTHX->Iunlockhook)
#define PL_unsafe (vTHX->Iunsafe)
-#define PL_utf8_X_extend (vTHX->Iutf8_X_extend)
-#define PL_utf8_X_regular_begin (vTHX->Iutf8_X_regular_begin)
#define PL_utf8_charname_begin (vTHX->Iutf8_charname_begin)
#define PL_utf8_charname_continue (vTHX->Iutf8_charname_continue)
#define PL_utf8_foldable (vTHX->Iutf8_foldable)
@@ -346,10 +353,11 @@
#define PL_utf8_xidstart (vTHX->Iutf8_xidstart)
#define PL_utf8cache (vTHX->Iutf8cache)
#define PL_utf8locale (vTHX->Iutf8locale)
+#define PL_warn_locale (vTHX->Iwarn_locale)
#define PL_warnhook (vTHX->Iwarnhook)
#define PL_watchaddr (vTHX->Iwatchaddr)
#define PL_watchok (vTHX->Iwatchok)
-#define PL_xmlfp (vTHX->Ixmlfp)
+#define PL_xsubfilename (vTHX->Ixsubfilename)
#endif /* MULTIPLICITY */
diff --git a/Master/tlpkg/tlperl/lib/CORE/fakesdio.h b/Master/tlpkg/tlperl/lib/CORE/fakesdio.h
index 094fd006c3e..928d37b90a6 100644
--- a/Master/tlpkg/tlperl/lib/CORE/fakesdio.h
+++ b/Master/tlpkg/tlperl/lib/CORE/fakesdio.h
@@ -123,11 +123,5 @@
#define fgets(s,n,f) _CANNOT _fgets_
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/feature.h b/Master/tlpkg/tlperl/lib/CORE/feature.h
index 698302c43f8..ba796eb8bdf 100644
--- a/Master/tlpkg/tlperl/lib/CORE/feature.h
+++ b/Master/tlpkg/tlperl/lib/CORE/feature.h
@@ -60,6 +60,12 @@
FEATURE_IS_ENABLED("switch")) \
)
+#define FEATURE_BITWISE_IS_ENABLED \
+ ( \
+ CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
+ FEATURE_IS_ENABLED("bitwise") \
+ )
+
#define FEATURE_EVALBYTES_IS_ENABLED \
( \
CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_515 \
@@ -93,6 +99,12 @@
FEATURE_IS_ENABLED("__SUB__")) \
)
+#define FEATURE_REFALIASING_IS_ENABLED \
+ ( \
+ CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
+ FEATURE_IS_ENABLED("refaliasing") \
+ )
+
#define FEATURE_LEXSUBS_IS_ENABLED \
( \
CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
diff --git a/Master/tlpkg/tlperl/lib/CORE/gv.h b/Master/tlpkg/tlperl/lib/CORE/gv.h
index d7ca92fb58c..a6bb7494433 100644
--- a/Master/tlpkg/tlperl/lib/CORE/gv.h
+++ b/Master/tlpkg/tlperl/lib/CORE/gv.h
@@ -12,13 +12,14 @@ struct gp {
SV * gp_sv; /* scalar value */
struct io * gp_io; /* filehandle value */
CV * gp_cv; /* subroutine value */
- U32 gp_cvgen; /* generational validity of cached gv_cv */
+ U32 gp_cvgen; /* generational validity of cached gp_cv */
U32 gp_refcnt; /* how many globs point to this? */
HV * gp_hv; /* hash value */
AV * gp_av; /* array value */
CV * gp_form; /* format value */
GV * gp_egv; /* effective gv, if *glob */
- line_t gp_line; /* line first declared at (for -w) */
+ PERL_BITFIELD32 gp_line:31; /* line first declared at (for -w) */
+ PERL_BITFIELD32 gp_flags:1;
HEK * gp_file_hek; /* file first declared in (for -w) */
};
@@ -139,6 +140,8 @@ Return the CV from the GV.
#define GvCVGEN(gv) (GvGP(gv)->gp_cvgen)
#define GvCVu(gv) (GvGP(gv)->gp_cvgen ? NULL : GvGP(gv)->gp_cv)
+#define GvGPFLAGS(gv) (GvGP(gv)->gp_flags)
+
#define GvLINE(gv) (GvGP(gv)->gp_line)
#define GvFILE_HEK(gv) (GvGP(gv)->gp_file_hek)
#define GvFILEx(gv) HEK_KEY(GvFILE_HEK(gv))
@@ -156,7 +159,7 @@ Return the CV from the GV.
#define GVf_INTRO 0x01
#define GVf_MULTI 0x02
#define GVf_ASSUMECV 0x04
-#define GVf_IN_PAD 0x08
+/* UNUSED 0x08 */
#define GVf_IMPORTED 0xF0
#define GVf_IMPORTED_SV 0x10
#define GVf_IMPORTED_AV 0x20
@@ -195,11 +198,16 @@ Return the CV from the GV.
#define GvIMPORTED_CV_on(gv) (GvFLAGS(gv) |= GVf_IMPORTED_CV)
#define GvIMPORTED_CV_off(gv) (GvFLAGS(gv) &= ~GVf_IMPORTED_CV)
-#define GvIN_PAD(gv) (GvFLAGS(gv) & GVf_IN_PAD)
-#define GvIN_PAD_on(gv) (GvFLAGS(gv) |= GVf_IN_PAD)
-#define GvIN_PAD_off(gv) (GvFLAGS(gv) &= ~GVf_IN_PAD)
+#define GPf_ALIASED_SV 1
+
+#define GvALIASED_SV(gv) (GvGPFLAGS(gv) & GPf_ALIASED_SV)
+#define GvALIASED_SV_on(gv) (GvGPFLAGS(gv) |= GPf_ALIASED_SV)
+#define GvALIASED_SV_off(gv) (GvGPFLAGS(gv) &= ~GPf_ALIASED_SV)
#ifndef PERL_CORE
+# define GvIN_PAD(gv) 0
+# define GvIN_PAD_on(gv) NOOP
+# define GvIN_PAD_off(gv) NOOP
# define Nullgv Null(GV*)
#endif
@@ -221,7 +229,7 @@ Return the CV from the GV.
#define GV_ADDMULTI 0x02 /* add, pretending it has been added
already; used also by gv_init_* */
#define GV_ADDWARN 0x04 /* add, but warn if symbol wasn't already there */
-#define GV_ADDINEVAL 0x08 /* add, as though we're doing so within an eval */
+ /* 0x08 UNUSED */
#define GV_NOINIT 0x10 /* add, but don't init symbol, if type != PVGV */
/* This is used by toke.c to avoid turing placeholder constants in the symbol
table into full PVGVs with attached constant subroutines. */
@@ -235,6 +243,8 @@ Return the CV from the GV.
#define GV_ADDMG 0x400 /* add if magical */
#define GV_NO_SVGMAGIC 0x800 /* Skip get-magic on an SV argument;
used only by gv_fetchsv(_nomg) */
+#define GV_CACHE_ONLY 0x1000 /* return stash only if found in cache;
+ used only in flags parameter to gv_stash* family */
/* Flags for gv_fetchmeth_pvn and gv_autoload_pvn*/
#define GV_SUPER 0x1000 /* SUPER::method */
@@ -279,11 +289,5 @@ Return the CV from the GV.
#define gv_SVadd(gv) gv_add_by_type((gv), SVt_NULL)
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/handy.h b/Master/tlpkg/tlperl/lib/CORE/handy.h
index 8e79a15e431..3e6fd525290 100644
--- a/Master/tlpkg/tlperl/lib/CORE/handy.h
+++ b/Master/tlpkg/tlperl/lib/CORE/handy.h
@@ -96,19 +96,6 @@ Null SV pointer. (No longer available when C<PERL_CORE> is defined.)
# endif
#endif
-/* The NeXT dynamic loader headers will not build with the bool macro
- So declare them now to clear confusion.
-*/
-#if defined(NeXT) || defined(__NeXT__)
-# undef FALSE
-# undef TRUE
- typedef enum bool { FALSE = 0, TRUE = 1 } bool;
-# define ENUM_BOOL 1
-# ifndef HAS_BOOL
-# define HAS_BOOL 1
-# endif /* !HAS_BOOL */
-#endif /* NeXT || __NeXT__ */
-
#ifndef HAS_BOOL
# ifdef bool
# undef bool
@@ -193,30 +180,47 @@ typedef U64TYPE U64;
# endif
#endif /* PERL_CORE */
-#if defined(HAS_QUAD) && defined(USE_64_BIT_INT)
-# if defined(HAS_LONG_LONG) && QUADKIND == QUAD_IS_LONG_LONG
-# define PeRl_INT64_C(c) CAT2(c,LL)
-# define PeRl_UINT64_C(c) CAT2(c,ULL)
-# else
-# if QUADKIND == QUAD_IS___INT64
-# define PeRl_INT64_C(c) CAT2(c,I64)
-# define PeRl_UINT64_C(c) CAT2(c,UI64)
-# else
-# if LONGSIZE == 8 && QUADKIND == QUAD_IS_LONG
-# define PeRl_INT64_C(c) CAT2(c,L)
-# define PeRl_UINT64_C(c) CAT2(c,UL)
-# else
-# define PeRl_INT64_C(c) ((I64TYPE)(c))
-# define PeRl_UINT64_C(c) ((U64TYPE)(c))
-# endif
-# endif
-# endif
-# ifndef UINT64_C
-# define UINT64_C(c) PeRl_UINT64_C(c)
-# endif
-# ifndef INT64_C
-# define INT64_C(c) PeRl_INT64_C(c)
-# endif
+/* INT64_C/UINT64_C are C99 from <stdint.h> (so they will not be
+ * available in strict C89 mode), but they are nice, so let's define
+ * them if necessary. */
+#if defined(HAS_QUAD)
+# undef PeRl_INT64_C
+# undef PeRl_UINT64_C
+/* Prefer the native integer types (int and long) over long long
+ * (which is not C89) and Win32-specific __int64. */
+# if QUADKIND == QUAD_IS_INT && INTSIZE == 8
+# define PeRl_INT64_C(c) (c)
+# define PeRl_UINT64_C(c) CAT2(c,U)
+# endif
+# if QUADKIND == QUAD_IS_LONG && LONGSIZE == 8
+# define PeRl_INT64_C(c) CAT2(c,L)
+# define PeRl_UINT64_C(c) CAT2(c,UL)
+# endif
+# if QUADKIND == QUAD_IS_LONG_LONG && defined(HAS_LONG_LONG)
+# define PeRl_INT64_C(c) CAT2(c,LL)
+# define PeRl_UINT64_C(c) CAT2(c,ULL)
+# endif
+# if QUADKIND == QUAD_IS___INT64
+# define PeRl_INT64_C(c) CAT2(c,I64)
+# define PeRl_UINT64_C(c) CAT2(c,UI64)
+# endif
+# ifndef PeRl_INT64_C
+# define PeRl_INT64_C(c) ((I64TYPE)(c)) /* last resort */
+# define PeRl_UINT64_C(c) ((U64TYPE)(c))
+# endif
+/* In OS X the INT64_C/UINT64_C are defined with LL/ULL, which will
+ * not fly with C89-pedantic gcc, so let's undefine them first so that
+ * we can redefine them with our native integer preferring versions. */
+# if defined(PERL_DARWIN) && defined(PERL_GCC_PEDANTIC)
+# undef INT64_C
+# undef UINT64_C
+# endif
+# ifndef INT64_C
+# define INT64_C(c) PeRl_INT64_C(c)
+# endif
+# ifndef UINT64_C
+# define UINT64_C(c) PeRl_UINT64_C(c)
+# endif
#endif
#if defined(UINT8_MAX) && defined(INT16_MAX) && defined(INT32_MAX)
@@ -271,6 +275,7 @@ typedef U64TYPE U64;
#define TYPE_DIGITS(T) BIT_DIGITS(sizeof(T) * 8)
#define TYPE_CHARS(T) (TYPE_DIGITS(T) + 2) /* sign, NUL */
+/* Unused by core; should be deprecated */
#define Ctl(ch) ((ch) & 037)
/* This is a helper macro to avoid preprocessor issues, replaced by nothing
@@ -444,6 +449,16 @@ Test two strings to see if they are equal. The C<len> parameter indicates
the number of bytes to compare. Returns true or false. (A wrapper for
C<strncmp>).
+=for apidoc Am|bool|memEQ|char* s1|char* s2|STRLEN len
+Test two buffers (which may contain embedded C<NUL> characters, to see if they
+are equal. The C<len> parameter indicates the number of bytes to compare.
+Returns zero if equal, or non-zero if non-equal.
+
+=for apidoc Am|bool|memNE|char* s1|char* s2|STRLEN len
+Test two buffers (which may contain embedded C<NUL> characters, to see if they
+are not equal. The C<len> parameter indicates the number of bytes to compare.
+Returns zero if non-equal, or non-zero if equal.
+
=cut
*/
@@ -489,7 +504,7 @@ C<strncmp>).
/*
-=head1 Character classes
+=head1 Character classification
This section is about functions (really macros) that classify characters
into types, such as punctuation versus alphabetic, etc. Most of these are
analogous to regular expression character classes. (See
@@ -531,7 +546,9 @@ for. If Perl can determine that the current locale is a UTF-8 locale, it uses
the published Unicode rules; otherwise, it uses the C library function that
gives the named classification. For example, C<isDIGIT_LC()> when not in a
UTF-8 locale returns the result of calling C<isdigit()>. FALSE is always
-returned if the input won't fit into an octet.
+returned if the input won't fit into an octet. On some platforms where the C
+library function is known to be defective, Perl changes its result to follow
+the POSIX standard's rules.
Variant C<isFOO_LC_uvchr> is like C<isFOO_LC>, but is defined on any UV. It
returns the same as C<isFOO_LC> for input code points less than 256, and
@@ -545,14 +562,16 @@ is tested.
=for apidoc Am|bool|isALPHA|char ch
Returns a boolean indicating whether the specified character is an
alphabetic character, analogous to C<m/[[:alpha:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isALPHA_A>, C<isALPHA_L1>, C<isALPHA_uni>, C<isALPHA_utf8>, C<isALPHA_LC>,
C<isALPHA_LC_uvchr>, and C<isALPHA_LC_utf8>.
=for apidoc Am|bool|isALPHANUMERIC|char ch
Returns a boolean indicating whether the specified character is a either an
alphabetic character or decimal digit, analogous to C<m/[[:alnum:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isALPHANUMERIC_A>, C<isALPHANUMERIC_L1>, C<isALPHANUMERIC_uni>,
C<isALPHANUMERIC_utf8>, C<isALPHANUMERIC_LC>, C<isALPHANUMERIC_LC_uvchr>, and
C<isALPHANUMERIC_LC_utf8>.
@@ -563,7 +582,8 @@ characters in the ASCII character set, analogous to C<m/[[:ascii:]]/>.
On non-ASCII platforms, it returns TRUE iff this
character corresponds to an ASCII character. Variants C<isASCII_A()> and
C<isASCII_L1()> are identical to C<isASCII()>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isASCII_uni>, C<isASCII_utf8>, C<isASCII_LC>, C<isASCII_LC_uvchr>, and
C<isASCII_LC_utf8>. Note, however, that some platforms do not have the C
library routine C<isascii()>. In these cases, the variants whose names contain
@@ -578,7 +598,8 @@ work properly on any string encoded or not in UTF-8.
=for apidoc Am|bool|isBLANK|char ch
Returns a boolean indicating whether the specified character is a
character considered to be a blank, analogous to C<m/[[:blank:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isBLANK_A>, C<isBLANK_L1>, C<isBLANK_uni>, C<isBLANK_utf8>, C<isBLANK_LC>,
C<isBLANK_LC_uvchr>, and C<isBLANK_LC_utf8>. Note, however, that some
platforms do not have the C library routine C<isblank()>. In these cases, the
@@ -588,7 +609,8 @@ without.
=for apidoc Am|bool|isCNTRL|char ch
Returns a boolean indicating whether the specified character is a
control character, analogous to C<m/[[:cntrl:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isCNTRL_A>, C<isCNTRL_L1>, C<isCNTRL_uni>, C<isCNTRL_utf8>, C<isCNTRL_LC>,
C<isCNTRL_LC_uvchr>, and C<isCNTRL_LC_utf8>
On EBCDIC platforms, you almost always want to use the C<isCNTRL_L1> variant.
@@ -597,21 +619,24 @@ On EBCDIC platforms, you almost always want to use the C<isCNTRL_L1> variant.
Returns a boolean indicating whether the specified character is a
digit, analogous to C<m/[[:digit:]]/>.
Variants C<isDIGIT_A> and C<isDIGIT_L1> are identical to C<isDIGIT>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isDIGIT_uni>, C<isDIGIT_utf8>, C<isDIGIT_LC>, C<isDIGIT_LC_uvchr>, and
C<isDIGIT_LC_utf8>.
=for apidoc Am|bool|isGRAPH|char ch
Returns a boolean indicating whether the specified character is a
graphic character, analogous to C<m/[[:graph:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isGRAPH_A>, C<isGRAPH_L1>, C<isGRAPH_uni>, C<isGRAPH_utf8>, C<isGRAPH_LC>,
C<isGRAPH_LC_uvchr>, and C<isGRAPH_LC_utf8>.
=for apidoc Am|bool|isLOWER|char ch
Returns a boolean indicating whether the specified character is a
lowercase character, analogous to C<m/[[:lower:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isLOWER_A>, C<isLOWER_L1>, C<isLOWER_uni>, C<isLOWER_utf8>, C<isLOWER_LC>,
C<isLOWER_LC_uvchr>, and C<isLOWER_LC_utf8>.
@@ -627,7 +652,8 @@ punctuation character, analogous to C<m/[[:punct:]]/>.
Note that the definition of what is punctuation isn't as
straightforward as one might desire. See L<perlrecharclass/POSIX Character
Classes> for details.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isPUNCT_A>, C<isPUNCT_L1>, C<isPUNCT_uni>, C<isPUNCT_utf8>, C<isPUNCT_LC>,
C<isPUNCT_LC_uvchr>, and C<isPUNCT_LC_utf8>.
@@ -635,44 +661,44 @@ C<isPUNCT_LC_uvchr>, and C<isPUNCT_LC_utf8>.
Returns a boolean indicating whether the specified character is a
whitespace character. This is analogous
to what C<m/\s/> matches in a regular expression. Starting in Perl 5.18
-(experimentally), this also matches what C<m/[[:space:]]/> does.
-("Experimentally" means that this change may be backed out in 5.22 if
-field experience indicates that it was unwise.) Prior to 5.18, only the
+this also matches what C<m/[[:space:]]/> does. Prior to 5.18, only the
locale forms of this macro (the ones with C<LC> in their names) matched
precisely what C<m/[[:space:]]/> does. In those releases, the only difference,
in the non-locale variants, was that C<isSPACE()> did not match a vertical tab.
(See L</isPSXSPC> for a macro that matches a vertical tab in all releases.)
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isSPACE_A>, C<isSPACE_L1>, C<isSPACE_uni>, C<isSPACE_utf8>, C<isSPACE_LC>,
C<isSPACE_LC_uvchr>, and C<isSPACE_LC_utf8>.
=for apidoc Am|bool|isPSXSPC|char ch
(short for Posix Space)
-Starting in 5.18, this is identical (experimentally) in all its forms to the
-corresponding C<isSPACE()> macros. ("Experimentally" means that this change
-may be backed out in 5.22 if field experience indicates that it
-was unwise.)
+Starting in 5.18, this is identical in all its forms to the
+corresponding C<isSPACE()> macros.
The locale forms of this macro are identical to their corresponding
C<isSPACE()> forms in all Perl releases. In releases prior to 5.18, the
non-locale forms differ from their C<isSPACE()> forms only in that the
C<isSPACE()> forms don't match a Vertical Tab, and the C<isPSXSPC()> forms do.
Otherwise they are identical. Thus this macro is analogous to what
C<m/[[:space:]]/> matches in a regular expression.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isPSXSPC_A>, C<isPSXSPC_L1>, C<isPSXSPC_uni>, C<isPSXSPC_utf8>, C<isPSXSPC_LC>,
C<isPSXSPC_LC_uvchr>, and C<isPSXSPC_LC_utf8>.
=for apidoc Am|bool|isUPPER|char ch
Returns a boolean indicating whether the specified character is an
uppercase character, analogous to C<m/[[:upper:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isUPPER_A>, C<isUPPER_L1>, C<isUPPER_uni>, C<isUPPER_utf8>, C<isUPPER_LC>,
C<isUPPER_LC_uvchr>, and C<isUPPER_LC_utf8>.
=for apidoc Am|bool|isPRINT|char ch
Returns a boolean indicating whether the specified character is a
printable character, analogous to C<m/[[:print:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isPRINT_A>, C<isPRINT_L1>, C<isPRINT_uni>, C<isPRINT_utf8>, C<isPRINT_LC>,
C<isPRINT_LC_uvchr>, and C<isPRINT_LC_utf8>.
@@ -685,15 +711,18 @@ a "mark" character that attaches to one of those (like some sort of accent).
C<isALNUM()> is a synonym provided for backward compatibility, even though a
word character includes more than the standard C language meaning of
alphanumeric.
-See the L<top of this section|/Character classes> for an explanation of variants
-C<isWORDCHAR_A>, C<isWORDCHAR_L1>, C<isWORDCHAR_uni>, C<isWORDCHAR_utf8>,
-C<isWORDCHAR_LC>, C<isWORDCHAR_LC_uvchr>, and C<isWORDCHAR_LC_utf8>.
+See the L<top of this section|/Character classification> for an explanation of
+variants
+C<isWORDCHAR_A>, C<isWORDCHAR_L1>, C<isWORDCHAR_uni>, and C<isWORDCHAR_utf8>.
+C<isWORDCHAR_LC>, C<isWORDCHAR_LC_uvchr>, and C<isWORDCHAR_LC_utf8> are also as
+described there, but additionally include the platform's native underscore.
=for apidoc Am|bool|isXDIGIT|char ch
Returns a boolean indicating whether the specified character is a hexadecimal
digit. In the ASCII range these are C<[0-9A-Fa-f]>. Variants C<isXDIGIT_A()>
and C<isXDIGIT_L1()> are identical to C<isXDIGIT()>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isXDIGIT_uni>, C<isXDIGIT_utf8>, C<isXDIGIT_LC>, C<isXDIGIT_LC_uvchr>, and
C<isXDIGIT_LC_utf8>.
@@ -702,7 +731,8 @@ Returns a boolean indicating whether the specified character can be the first
character of an identifier. This is very close to, but not quite the same as
the official Unicode property C<XID_Start>. The difference is that this
returns true only if the input character also matches L</isWORDCHAR>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
C<isIDFIRST_A>, C<isIDFIRST_L1>, C<isIDFIRST_uni>, C<isIDFIRST_utf8>,
C<isIDFIRST_LC>, C<isIDFIRST_LC_uvchr>, and C<isIDFIRST_LC_utf8>.
@@ -711,7 +741,8 @@ Returns a boolean indicating whether the specified character can be the
second or succeeding character of an identifier. This is very close to, but
not quite the same as the official Unicode property C<XID_Continue>. The
difference is that this returns true only if the input character also matches
-L</isWORDCHAR>. See the L<top of this section|/Character classes> for an
+L</isWORDCHAR>. See the L<top of this section|/Character classification> for
+an
explanation of variants C<isIDCONT_A>, C<isIDCONT_L1>, C<isIDCONT_uni>,
C<isIDCONT_utf8>, C<isIDCONT_LC>, C<isIDCONT_LC_uvchr>, and
C<isIDCONT_LC_utf8>.
@@ -808,10 +839,6 @@ The first code point of the lowercased version is returned
The input character at C<p> is assumed to be well-formed.
-=for apidoc Am|U8|toLOWER_LC|U8 ch
-Converts the specified character to lowercase using the current locale's rules,
-if possible; otherwise returns the input character itself.
-
=for apidoc Am|U8|toTITLE|U8 ch
Converts the specified character to titlecase. If the input is anything but an
ASCII lowercase character, that input character itself is returned. Variant
@@ -869,27 +896,22 @@ patched there. The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
#ifdef EBCDIC
# ifndef _ALL_SOURCE
- /* This returns the wrong results on at least z/OS unless this is
- * defined. */
+ /* The native libc isascii() et.al. functions return the wrong results
+ * on at least z/OS unless this is defined. */
# error _ALL_SOURCE should probably be defined
# endif
-
- /* We could be called without perl.h, in which case NATIVE_TO_ASCII() is
- * likely not defined, and so we use the native function */
-# define isASCII(c) cBOOL(isascii(c))
#else
+ /* There is a simple definition of ASCII for ASCII platforms. But the
+ * EBCDIC one isn't so simple, so is defined using table look-up like the
+ * other macros below */
# define isASCII(c) ((WIDEST_UTYPE)(c) < 128)
#endif
-#define isASCII_A(c) isASCII(c)
-#define isASCII_L1(c) isASCII(c)
-
/* The lower 3 bits in both the ASCII and EBCDIC representations of '0' are 0,
* and the 8 possible permutations of those bits exactly comprise the 8 octal
* digits */
#define isOCTAL_A(c) cBOOL(FITS_IN_8_BITS(c) && (0xF8 & (c)) == '0')
-/* ASCII range only */
#ifdef H_PERL /* If have access to perl.h, lookup in its table */
/* Character class numbers. For internal core Perl use only. The ones less
@@ -923,27 +945,26 @@ patched there. The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
* useful to group these which have no members that match above Latin1, (or
* above ASCII in the latter case) */
-# define _CC_SPACE 10 /* \s */
+# define _CC_SPACE 10 /* \s, [:space:] */
# define _CC_BLANK 11 /* [:blank:] */
# define _CC_XDIGIT 12 /* [:xdigit:] */
-# define _CC_PSXSPC 13 /* [:space:] */
-# define _CC_CNTRL 14 /* [:cntrl:] */
-# define _CC_ASCII 15 /* [:ascii:] */
-# define _CC_VERTSPACE 16 /* \v */
+# define _CC_CNTRL 13 /* [:cntrl:] */
+# define _CC_ASCII 14 /* [:ascii:] */
+# define _CC_VERTSPACE 15 /* \v */
# define _HIGHEST_REGCOMP_DOT_H_SYNC _CC_VERTSPACE
/* The members of the third group below do not need to be coordinated with data
- * structures in regcomp.[ch] and regexec.c. But they should be added to
- * bootstrap_ctype() */
-# define _CC_IDFIRST 17
-# define _CC_CHARNAME_CONT 18
-# define _CC_NONLATIN1_FOLD 19
-# define _CC_QUOTEMETA 20
-# define _CC_NON_FINAL_FOLD 21
-# define _CC_IS_IN_SOME_FOLD 22
-# define _CC_BACKSLASH_FOO_LBRACE_IS_META 31 /* temp, see mk_PL_charclass.pl */
-/* Unused: 23-30
+ * structures in regcomp.[ch] and regexec.c. */
+# define _CC_IDFIRST 16
+# define _CC_CHARNAME_CONT 17
+# define _CC_NONLATIN1_FOLD 18
+# define _CC_NONLATIN1_SIMPLE_FOLD 19
+# define _CC_QUOTEMETA 20
+# define _CC_NON_FINAL_FOLD 21
+# define _CC_IS_IN_SOME_FOLD 22
+# define _CC_MNEMONIC_CNTRL 23
+/* Unused: 24-31
* If more bits are needed, one could add a second word for non-64bit
* QUAD_IS_INT systems, using some #ifdefs to distinguish between having a 2nd
* word or not. The IS_IN_SOME_FOLD bit is the most easily expendable, as it
@@ -966,7 +987,6 @@ typedef enum {
_CC_ENUM_GRAPH = _CC_GRAPH,
_CC_ENUM_LOWER = _CC_LOWER,
_CC_ENUM_PRINT = _CC_PRINT,
- _CC_ENUM_PSXSPC = _CC_PSXSPC,
_CC_ENUM_PUNCT = _CC_PUNCT,
_CC_ENUM_SPACE = _CC_SPACE,
_CC_ENUM_UPPER = _CC_UPPER,
@@ -1004,6 +1024,7 @@ static const char* const swash_property_names[] = {
};
#endif
+START_EXTERN_C
# ifdef DOINIT
EXTCONST U32 PL_charclass[] = {
# include "l1_char_class_tab.h"
@@ -1012,16 +1033,14 @@ EXTCONST U32 PL_charclass[] = {
# else /* ! DOINIT */
EXTCONST U32 PL_charclass[];
# endif
-#endif /* Has perl.h */
-
-#if defined(H_PERL) && ! defined(BOOTSTRAP_CHARSET)
+END_EXTERN_C
/* The 1U keeps Solaris from griping when shifting sets the uppermost bit */
# define _CC_mask(classnum) (1U << (classnum))
/* For internal core Perl use only: the base macro for defining macros like
* isALPHA */
-# define _generic_isCC(c, classnum) cBOOL(FITS_IN_8_BITS(c) \
+# define _generic_isCC(c, classnum) cBOOL(FITS_IN_8_BITS(c) \
&& (PL_charclass[(U8) (c)] & _CC_mask(classnum)))
/* The mask for the _A versions of the macros; it just adds in the bit for
@@ -1039,16 +1058,15 @@ EXTCONST U32 PL_charclass[];
# define isALPHANUMERIC_A(c) _generic_isCC_A(c, _CC_ALPHANUMERIC)
# define isBLANK_A(c) _generic_isCC_A(c, _CC_BLANK)
# define isCNTRL_A(c) _generic_isCC_A(c, _CC_CNTRL)
-# define isDIGIT_A(c) _generic_isCC(c, _CC_DIGIT)
+# define isDIGIT_A(c) _generic_isCC(c, _CC_DIGIT) /* No non-ASCII digits */
# define isGRAPH_A(c) _generic_isCC_A(c, _CC_GRAPH)
# define isLOWER_A(c) _generic_isCC_A(c, _CC_LOWER)
# define isPRINT_A(c) _generic_isCC_A(c, _CC_PRINT)
-# define isPSXSPC_A(c) _generic_isCC_A(c, _CC_PSXSPC)
# define isPUNCT_A(c) _generic_isCC_A(c, _CC_PUNCT)
# define isSPACE_A(c) _generic_isCC_A(c, _CC_SPACE)
# define isUPPER_A(c) _generic_isCC_A(c, _CC_UPPER)
# define isWORDCHAR_A(c) _generic_isCC_A(c, _CC_WORDCHAR)
-# define isXDIGIT_A(c) _generic_isCC(c, _CC_XDIGIT)
+# define isXDIGIT_A(c) _generic_isCC(c, _CC_XDIGIT) /* No non-ASCII xdigits */
# define isIDFIRST_A(c) _generic_isCC_A(c, _CC_IDFIRST)
# define isALPHA_L1(c) _generic_isCC(c, _CC_ALPHA)
# define isALPHANUMERIC_L1(c) _generic_isCC(c, _CC_ALPHANUMERIC)
@@ -1061,15 +1079,21 @@ EXTCONST U32 PL_charclass[];
# define isGRAPH_L1(c) _generic_isCC(c, _CC_GRAPH)
# define isLOWER_L1(c) _generic_isCC(c, _CC_LOWER)
# define isPRINT_L1(c) _generic_isCC(c, _CC_PRINT)
-# define isPSXSPC_L1(c) _generic_isCC(c, _CC_PSXSPC)
+# define isPSXSPC_L1(c) isSPACE_L1(c)
# define isPUNCT_L1(c) _generic_isCC(c, _CC_PUNCT)
# define isSPACE_L1(c) _generic_isCC(c, _CC_SPACE)
# define isUPPER_L1(c) _generic_isCC(c, _CC_UPPER)
# define isWORDCHAR_L1(c) _generic_isCC(c, _CC_WORDCHAR)
# define isIDFIRST_L1(c) _generic_isCC(c, _CC_IDFIRST)
- /* Either participates in a fold with a character above 255, or is a
- * multi-char fold */
+# ifdef EBCDIC
+# define isASCII(c) _generic_isCC(c, _CC_ASCII)
+# endif
+
+ /* Participates in a single-character fold with a character above 255 */
+# define _HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(c) ((! cBOOL(FITS_IN_8_BITS(c))) || (PL_charclass[(U8) (c)] & _CC_mask(_CC_NONLATIN1_SIMPLE_FOLD)))
+
+ /* Like the above, but also can be part of a multi-char fold */
# define _HAS_NONLATIN1_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(c) ((! cBOOL(FITS_IN_8_BITS(c))) || (PL_charclass[(U8) (c)] & _CC_mask(_CC_NONLATIN1_FOLD)))
# define _isQUOTEMETA(c) _generic_isCC(c, _CC_QUOTEMETA)
@@ -1077,59 +1101,97 @@ EXTCONST U32 PL_charclass[];
_generic_isCC(c, _CC_NON_FINAL_FOLD)
# define _IS_IN_SOME_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C(c) \
_generic_isCC(c, _CC_IS_IN_SOME_FOLD)
-#else /* Either don't have perl.h or don't want to use char_class_tab.h */
+# define _IS_MNEMONIC_CNTRL_ONLY_FOR_USE_BY_REGCOMP_DOT_C(c) \
+ _generic_isCC(c, _CC_MNEMONIC_CNTRL)
+#else /* else we don't have perl.h H_PERL */
/* If we don't have perl.h, we are compiling a utility program. Below we
* hard-code various macro definitions that wouldn't otherwise be available
- * to it. We can also get here if we are configured to bootstrap up Perl
- * on a non-ASCII platform that doesn't have a working Perl (currently only
- * EBCDIC). For these we currently use the native definitions to get
- * things going. (It should also be possible to use the translation
- * function NATIVE_TO_LATIN1(), but that is an extra layer of dependence on
- * Perl, so it is currently avoided for the macros where it's possible to
- * do so.) */
-# ifdef EBCDIC
- /* Use the native functions. They likely will return false for all
- * non-ASCII values, but this makes sure */
-# define isALPHA_A(c) (isASCII(c) && isalpha(c))
-# define isALPHANUMERIC_A(c) (isASCII(c) && isalnum(c))
-# define isCNTRL_A(c) (isASCII(c) && iscntrl(c))
-# define isDIGIT_A(c) (isASCII(c) && isdigit(c))
-# define isGRAPH_A(c) (isASCII(c) && isgraph(c))
-# define isLOWER_A(c) (isASCII(c) && islower(c))
-# define isPRINT_A(c) (isASCII(c) && isprint(c))
-# define isPUNCT_A(c) (isASCII(c) && ispunct(c))
-# define isSPACE_A(c) (isASCII(c) && isspace(c))
-# define isUPPER_A(c) (isASCII(c) && isupper(c))
-# define isXDIGIT_A(c) (isASCII(c) && isxdigit(c))
-# else /* ASCII platform. These are coded based on first principals */
-# define isALPHA_A(c) (isUPPER_A(c) || isLOWER_A(c))
-# define isALPHANUMERIC_A(c) (isALPHA_A(c) || isDIGIT_A(c))
-# define isCNTRL_A(c) (isASCII(c) && (! isPRINT_A(c)))
-# define isDIGIT_A(c) ((c) <= '9' && (c) >= '0')
-# define isGRAPH_A(c) (isPRINT_A(c) && (c) != ' ')
+ * to it. Most are coded based on first principals. First some ones common
+ * to both ASCII and EBCDIC */
+# define isDIGIT_A(c) ((c) <= '9' && (c) >= '0')
+# define isBLANK_A(c) ((c) == ' ' || (c) == '\t')
+# define isSPACE_A(c) (isBLANK_A(c) \
+ || (c) == '\n' \
+ || (c) == '\r' \
+ || (c) == '\v' \
+ || (c) == '\f')
+# ifdef EBCDIC /* There are gaps between 'i' and 'j'; 'r' and 's'. Same
+ for uppercase. This is ordered to exclude most things
+ early */
+# define isLOWER_A(c) ((c) >= 'a' && (c) <= 'z' \
+ && ((c) <= 'i' \
+ || ((c) >= 'j' && (c) <= 'r') \
+ || (c) >= 's'))
+# define isUPPER_A(c) ((c) >= 'A' && (c) <= 'Z' \
+ && ((c) <= 'I' \
+ || ((c) >= 'J' && (c) <= 'R') \
+ || (c) >= 'S'))
+# else /* ASCII platform. */
# define isLOWER_A(c) ((c) >= 'a' && (c) <= 'z')
-# define isPRINT_A(c) (((c) >= 32 && (c) < 127))
-# define isPUNCT_A(c) (isGRAPH_A(c) && (! isALPHANUMERIC_A(c)))
-# define isSPACE_A(c) ((c) == ' ' \
- || (c) == '\t' \
- || (c) == '\n' \
- || (c) == '\r' \
- || (c) =='\v' \
- || (c) == '\f')
# define isUPPER_A(c) ((c) <= 'Z' && (c) >= 'A')
-# define isXDIGIT_A(c) (isDIGIT_A(c) \
- || ((c) >= 'a' && (c) <= 'f') \
- || ((c) <= 'F' && (c) >= 'A'))
-# endif /* Below are common definitions for ASCII and non-ASCII */
-# define isBLANK_A(c) ((c) == ' ' || (c) == '\t')
-# define isIDFIRST_A(c) (isALPHA_A(c) || (c) == '_')
+# endif
+
+ /* Some more ASCII, non-ASCII common definitions */
+# define isALPHA_A(c) (isUPPER_A(c) || isLOWER_A(c))
+# define isALPHANUMERIC_A(c) (isALPHA_A(c) || isDIGIT_A(c))
# define isWORDCHAR_A(c) (isALPHANUMERIC_A(c) || (c) == '_')
+# define isIDFIRST_A(c) (isALPHA_A(c) || (c) == '_')
+# define isXDIGIT_A(c) (isDIGIT_A(c) \
+ || ((c) >= 'a' && (c) <= 'f') \
+ || ((c) <= 'F' && (c) >= 'A'))
+
+# ifdef EBCDIC
+# define isPUNCT_A(c) ((c) == '-' || (c) == '!' || (c) == '"' \
+ || (c) == '#' || (c) == '$' || (c) == '%' \
+ || (c) == '&' || (c) == '\'' || (c) == '(' \
+ || (c) == ')' || (c) == '*' || (c) == '+' \
+ || (c) == ',' || (c) == '.' || (c) == '/' \
+ || (c) == ':' || (c) == ';' || (c) == '<' \
+ || (c) == '=' || (c) == '>' || (c) == '?' \
+ || (c) == '@' || (c) == '[' || (c) == '\\' \
+ || (c) == ']' || (c) == '^' || (c) == '_' \
+ || (c) == '`' || (c) == '{' || (c) == '|' \
+ || (c) == '}' || (c) == '~')
+# define isGRAPH_A(c) (isALPHANUMERIC_A(c) || isPUNCT_A(c))
+# define isPRINT_A(c) (isGRAPH_A(c) || (c) == ' ')
+
+# ifdef QUESTION_MARK_CTRL
+# define _isQMC(c) ((c) == QUESTION_MARK_CTRL)
+# else
+# define _isQMC(c) 0
+# endif
+
+ /* I (khw) can't think of a way to define all the ASCII controls
+ * without resorting to a libc (locale-sensitive) call. But we know
+ * that all controls but the question-mark one are in the range 0-0x3f.
+ * This makes sure that all the controls that have names are included,
+ * and all controls that are also considered ASCII in the locale. This
+ * may include more or fewer than what it actually should, but the
+ * wrong ones are less-important controls, so likely won't impact
+ * things (keep in mind that this is compiled only if perl.h isn't
+ * available). The question mark control is included if available */
+# define isCNTRL_A(c) (((c) < 0x40 && isascii(c)) \
+ || (c) == '\0' || (c) == '\a' || (c) == '\b' \
+ || (c) == '\f' || (c) == '\n' || (c) == '\r' \
+ || (c) == '\t' || (c) == '\v' || _isQMC(c))
+
+# define isASCII(c) (isCNTRL_A(c) || isPRINT_A(c))
+# else /* ASCII platform; things are simpler, and isASCII has already
+ been defined */
+# define isGRAPH_A(c) (((c) > ' ' && (c) < 127))
+# define isPRINT_A(c) (isGRAPH_A(c) || (c) == ' ')
+# define isPUNCT_A(c) (isGRAPH_A(c) && (! isALPHANUMERIC_A(c)))
+# define isCNTRL_A(c) (isASCII(c) && (! isPRINT_A(c)))
+# endif
- /* The _L1 macros may be unnecessary for both the utilities and for
- * bootstrapping; I (khw) added them during debugging of bootstrapping, and
- * it seems best to keep them. */
-# define isPSXSPC_A(c) isSPACE_A(c) /* XXX Assumes SPACE matches '\v' */
+ /* The _L1 macros may be unnecessary for the utilities; I (khw) added them
+ * during debugging, and it seems best to keep them. We may be called
+ * without NATIVE_TO_LATIN1 being defined. On ASCII platforms, it doesn't
+ * do anything anyway, so make it not a problem */
+# if ! defined(EBCDIC) && ! defined(NATIVE_TO_LATIN1)
+# define NATIVE_TO_LATIN1(ch) (ch)
+# endif
# define isALPHA_L1(c) (isUPPER_L1(c) || isLOWER_L1(c))
# define isALPHANUMERIC_L1(c) (isALPHA_L1(c) || isDIGIT_A(c))
# define isBLANK_L1(c) (isBLANK_A(c) \
@@ -1147,7 +1209,6 @@ EXTCONST U32 PL_charclass[];
# define isPRINT_L1(c) (isPRINT_A(c) \
|| (FITS_IN_8_BITS(c) \
&& NATIVE_TO_LATIN1((U8) c) >= 0xA0))
-# define isPSXSPC_L1(c) isSPACE_L1(c)
# define isPUNCT_L1(c) (isPUNCT_A(c) \
|| (FITS_IN_8_BITS(c) \
&& (NATIVE_TO_LATIN1((U8) c) == 0xA1 \
@@ -1182,6 +1243,7 @@ EXTCONST U32 PL_charclass[];
/* And these aren't accurate at all. They are useful only for above
* Latin1, which utilities and bootstrapping don't deal with */
# define _IS_NON_FINAL_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C(c) 0
+# define _HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(c) 0
# define _HAS_NONLATIN1_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(c) 0
/* Many of the macros later in this file are defined in terms of these. By
@@ -1195,10 +1257,12 @@ EXTCONST U32 PL_charclass[];
(FITS_IN_8_BITS(c) && S_bootstrap_ctype((U8) (c), (classnum), TRUE))
# define _generic_isCC_A(c, classnum) \
(FITS_IN_8_BITS(c) && S_bootstrap_ctype((U8) (c), (classnum), FALSE))
-#endif /* End of no perl.h or have BOOTSTRAP_CHARSET */
+#endif /* End of no perl.h H_PERL */
#define isALPHANUMERIC(c) isALPHANUMERIC_A(c)
#define isALPHA(c) isALPHA_A(c)
+#define isASCII_A(c) isASCII(c)
+#define isASCII_L1(c) isASCII(c)
#define isBLANK(c) isBLANK_A(c)
#define isCNTRL(c) isCNTRL_A(c)
#define isDIGIT(c) isDIGIT_A(c)
@@ -1206,7 +1270,9 @@ EXTCONST U32 PL_charclass[];
#define isIDFIRST(c) isIDFIRST_A(c)
#define isLOWER(c) isLOWER_A(c)
#define isPRINT(c) isPRINT_A(c)
+#define isPSXSPC_A(c) isSPACE_A(c)
#define isPSXSPC(c) isPSXSPC_A(c)
+#define isPSXSPC_L1(c) isSPACE_L1(c)
#define isPUNCT(c) isPUNCT_A(c)
#define isSPACE(c) isSPACE_A(c)
#define isUPPER(c) isUPPER_A(c)
@@ -1286,7 +1352,7 @@ EXTCONST U32 PL_charclass[];
? (c) \
: (IN_UTF8_CTYPE_LOCALE) \
? PL_latin1_lc[ (U8) (c) ] \
- : function((cast)(c)))
+ : (cast)function((cast)(c)))
/* Note that the result can be larger than a byte in a UTF-8 locale. It
* returns a single value, so can't adequately return the upper case of LATIN
@@ -1297,7 +1363,7 @@ EXTCONST U32 PL_charclass[];
(! FITS_IN_8_BITS(c) \
? (c) \
: ((! IN_UTF8_CTYPE_LOCALE) \
- ? function((cast)(c)) \
+ ? (cast)function((cast)(c)) \
: ((((U8)(c)) == MICRO_SIGN) \
? GREEK_CAPITAL_LETTER_MU \
: ((((U8)(c)) == LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \
@@ -1319,89 +1385,93 @@ EXTCONST U32 PL_charclass[];
_generic_toLOWER_LC(c, function, cast)))
/* Use the libc versions for these if available. */
-#if defined(HAS_ISASCII) && ! defined(USE_NEXT_CTYPE)
+#if defined(HAS_ISASCII)
# define isASCII_LC(c) (FITS_IN_8_BITS(c) && isascii( (U8) (c)))
#else
# define isASCII_LC(c) isASCII(c)
#endif
-#if defined(HAS_ISBLANK) && ! defined(USE_NEXT_CTYPE)
+#if defined(HAS_ISBLANK)
# define isBLANK_LC(c) _generic_LC(c, _CC_BLANK, isblank)
#else /* Unlike isASCII, varies if in a UTF-8 locale */
-# define isBLANK_LC(c) (IN_UTF8_CTYPE_LOCALE) ? isBLANK_L1(c) : isBLANK(c)
+# define isBLANK_LC(c) ((IN_UTF8_CTYPE_LOCALE) ? isBLANK_L1(c) : isBLANK(c))
#endif
-#ifdef USE_NEXT_CTYPE /* NeXT computers */
-
-# define _LC_CAST unsigned int /* Needed by _generic_LC. NeXT functions
- use this as their input type */
-
-# define isALPHA_LC(c) _generic_LC(c, _CC_ALPHA, NXIsAlpha)
-# define isALPHANUMERIC_LC(c) _generic_LC(c, _CC_ALPHANUMERIC, NXIsAlNum)
-# define isCNTRL_LC(c) _generic_LC(c, _CC_CNTRL, NXIsCntrl)
-# define isDIGIT_LC(c) _generic_LC(c, _CC_DIGIT, NXIsDigit)
-# define isGRAPH_LC(c) _generic_LC(c, _CC_GRAPH, NXIsGraph)
-# define isIDFIRST_LC(c) _generic_LC_underscore(c, _CC_IDFIRST, NXIsAlpha)
-# define isLOWER_LC(c) _generic_LC(c, _CC_LOWER, NXIsLower)
-# define isPRINT_LC(c) _generic_LC(c, _CC_PRINT, NXIsPrint)
-# define isPUNCT_LC(c) _generic_LC(c, _CC_PUNCT, NXIsPunct)
-# define isSPACE_LC(c) _generic_LC(c, _CC_SPACE, NXIsSpace)
-# define isUPPER_LC(c) _generic_LC(c, _CC_UPPER, NXIsUpper)
-# define isWORDCHAR_LC(c) _generic_LC_underscore(c, _CC_WORDCHAR, NXIsAlNum)
-# define isXDIGIT_LC(c) _generic_LC(c, _CC_XDIGIT, NXIsXdigit)
-
-# define toLOWER_LC(c) _generic_toLOWER_LC((c), NXToLower, unsigned int)
-# define toUPPER_LC(c) _generic_toUPPER_LC((c), NXToUpper, unsigned int)
-# define toFOLD_LC(c) _generic_toFOLD_LC((c), NXToLower, unsigned int)
-
-#else /* !USE_NEXT_CTYPE */
-
-# define _LC_CAST U8
-
-# if defined(CTYPE256) || (!defined(isascii) && !defined(HAS_ISASCII))
+#define _LC_CAST U8
+
+#ifdef WIN32
+ /* The Windows functions don't bother to follow the POSIX standard, which
+ * for example says that something can't both be a printable and a control.
+ * But Windows treats the \t control as a printable, and does such things
+ * as making superscripts into both digits and punctuation. This tames
+ * these flaws by assuming that the definitions of both controls and space
+ * are correct, and then making sure that other definitions don't have
+ * weirdnesses, by making sure that isalnum() isn't also ispunct(), etc.
+ * Not all possible weirdnesses are checked for, just the ones that were
+ * detected on actual Microsoft code pages */
+
+# define isCNTRL_LC(c) _generic_LC(c, _CC_CNTRL, iscntrl)
+# define isSPACE_LC(c) _generic_LC(c, _CC_SPACE, isspace)
+
+# define isALPHA_LC(c) (_generic_LC(c, _CC_ALPHA, isalpha) && isALPHANUMERIC_LC(c))
+# define isALPHANUMERIC_LC(c) (_generic_LC(c, _CC_ALPHANUMERIC, isalnum) && ! isPUNCT_LC(c))
+# define isDIGIT_LC(c) (_generic_LC(c, _CC_DIGIT, isdigit) && isALPHANUMERIC_LC(c))
+# define isGRAPH_LC(c) (_generic_LC(c, _CC_GRAPH, isgraph) && isPRINT_LC(c))
+# define isIDFIRST_LC(c) (((c) == '_') || (_generic_LC(c, _CC_IDFIRST, isalpha) && ! isPUNCT_LC(c)))
+# define isLOWER_LC(c) (_generic_LC(c, _CC_LOWER, islower) && isALPHA_LC(c))
+# define isPRINT_LC(c) (_generic_LC(c, _CC_PRINT, isprint) && ! isCNTRL_LC(c))
+# define isPUNCT_LC(c) (_generic_LC(c, _CC_PUNCT, ispunct) && ! isCNTRL_LC(c))
+# define isUPPER_LC(c) (_generic_LC(c, _CC_UPPER, isupper) && isALPHA_LC(c))
+# define isWORDCHAR_LC(c) (((c) == '_') || isALPHANUMERIC_LC(c))
+# define isXDIGIT_LC(c) (_generic_LC(c, _CC_XDIGIT, isxdigit) && isALPHANUMERIC_LC(c))
+
+# define toLOWER_LC(c) _generic_toLOWER_LC((c), tolower, U8)
+# define toUPPER_LC(c) _generic_toUPPER_LC((c), toupper, U8)
+# define toFOLD_LC(c) _generic_toFOLD_LC((c), tolower, U8)
+
+#elif defined(CTYPE256) || (!defined(isascii) && !defined(HAS_ISASCII))
/* For most other platforms */
-# define isALPHA_LC(c) _generic_LC(c, _CC_ALPHA, isalpha)
-# define isALPHANUMERIC_LC(c) _generic_LC(c, _CC_ALPHANUMERIC, isalnum)
-# define isCNTRL_LC(c) _generic_LC(c, _CC_CNTRL, iscntrl)
-# define isDIGIT_LC(c) _generic_LC(c, _CC_DIGIT, isdigit)
-# define isGRAPH_LC(c) _generic_LC(c, _CC_GRAPH, isgraph)
-# define isIDFIRST_LC(c) _generic_LC_underscore(c, _CC_IDFIRST, isalpha)
-# define isLOWER_LC(c) _generic_LC(c, _CC_LOWER, islower)
-# define isPRINT_LC(c) _generic_LC(c, _CC_PRINT, isprint)
-# define isPUNCT_LC(c) _generic_LC(c, _CC_PUNCT, ispunct)
-# define isSPACE_LC(c) _generic_LC(c, _CC_SPACE, isspace)
-# define isUPPER_LC(c) _generic_LC(c, _CC_UPPER, isupper)
-# define isWORDCHAR_LC(c) _generic_LC_underscore(c, _CC_WORDCHAR, isalnum)
-# define isXDIGIT_LC(c) _generic_LC(c, _CC_XDIGIT, isxdigit)
-
-
-# define toLOWER_LC(c) _generic_toLOWER_LC((c), tolower, U8)
-# define toUPPER_LC(c) _generic_toUPPER_LC((c), toupper, U8)
-# define toFOLD_LC(c) _generic_toFOLD_LC((c), tolower, U8)
-
-# else /* The final fallback position */
-
-# define isALPHA_LC(c) (isascii(c) && isalpha(c))
-# define isALPHANUMERIC_LC(c) (isascii(c) && isalnum(c))
-# define isCNTRL_LC(c) (isascii(c) && iscntrl(c))
-# define isDIGIT_LC(c) (isascii(c) && isdigit(c))
-# define isGRAPH_LC(c) (isascii(c) && isgraph(c))
-# define isIDFIRST_LC(c) (isascii(c) && (isalpha(c) || (c) == '_'))
-# define isLOWER_LC(c) (isascii(c) && islower(c))
-# define isPRINT_LC(c) (isascii(c) && isprint(c))
-# define isPUNCT_LC(c) (isascii(c) && ispunct(c))
-# define isSPACE_LC(c) (isascii(c) && isspace(c))
-# define isUPPER_LC(c) (isascii(c) && isupper(c))
-# define isWORDCHAR_LC(c) (isascii(c) && (isalnum(c) || (c) == '_'))
-# define isXDIGIT_LC(c) (isascii(c) && isxdigit(c))
-
-# define toLOWER_LC(c) (isascii(c) ? tolower(c) : (c))
-# define toUPPER_LC(c) (isascii(c) ? toupper(c) : (c))
-# define toFOLD_LC(c) (isascii(c) ? tolower(c) : (c))
+# define isALPHA_LC(c) _generic_LC(c, _CC_ALPHA, isalpha)
+# define isALPHANUMERIC_LC(c) _generic_LC(c, _CC_ALPHANUMERIC, isalnum)
+# define isCNTRL_LC(c) _generic_LC(c, _CC_CNTRL, iscntrl)
+# define isDIGIT_LC(c) _generic_LC(c, _CC_DIGIT, isdigit)
+# define isGRAPH_LC(c) _generic_LC(c, _CC_GRAPH, isgraph)
+# define isIDFIRST_LC(c) _generic_LC_underscore(c, _CC_IDFIRST, isalpha)
+# define isLOWER_LC(c) _generic_LC(c, _CC_LOWER, islower)
+# define isPRINT_LC(c) _generic_LC(c, _CC_PRINT, isprint)
+# define isPUNCT_LC(c) _generic_LC(c, _CC_PUNCT, ispunct)
+# define isSPACE_LC(c) _generic_LC(c, _CC_SPACE, isspace)
+# define isUPPER_LC(c) _generic_LC(c, _CC_UPPER, isupper)
+# define isWORDCHAR_LC(c) _generic_LC_underscore(c, _CC_WORDCHAR, isalnum)
+# define isXDIGIT_LC(c) _generic_LC(c, _CC_XDIGIT, isxdigit)
+
+
+# define toLOWER_LC(c) _generic_toLOWER_LC((c), tolower, U8)
+# define toUPPER_LC(c) _generic_toUPPER_LC((c), toupper, U8)
+# define toFOLD_LC(c) _generic_toFOLD_LC((c), tolower, U8)
+
+#else /* The final fallback position */
+
+# define isALPHA_LC(c) (isascii(c) && isalpha(c))
+# define isALPHANUMERIC_LC(c) (isascii(c) && isalnum(c))
+# define isCNTRL_LC(c) (isascii(c) && iscntrl(c))
+# define isDIGIT_LC(c) (isascii(c) && isdigit(c))
+# define isGRAPH_LC(c) (isascii(c) && isgraph(c))
+# define isIDFIRST_LC(c) (isascii(c) && (isalpha(c) || (c) == '_'))
+# define isLOWER_LC(c) (isascii(c) && islower(c))
+# define isPRINT_LC(c) (isascii(c) && isprint(c))
+# define isPUNCT_LC(c) (isascii(c) && ispunct(c))
+# define isSPACE_LC(c) (isascii(c) && isspace(c))
+# define isUPPER_LC(c) (isascii(c) && isupper(c))
+# define isWORDCHAR_LC(c) (isascii(c) && (isalnum(c) || (c) == '_'))
+# define isXDIGIT_LC(c) (isascii(c) && isxdigit(c))
+
+# define toLOWER_LC(c) (isascii(c) ? tolower(c) : (c))
+# define toUPPER_LC(c) (isascii(c) ? toupper(c) : (c))
+# define toFOLD_LC(c) (isascii(c) ? tolower(c) : (c))
-# endif
-#endif /* USE_NEXT_CTYPE */
+#endif
#define isIDCONT(c) isWORDCHAR(c)
#define isIDCONT_A(c) isWORDCHAR_A(c)
@@ -1441,11 +1511,10 @@ EXTCONST U32 PL_charclass[];
#define isLOWER_uni(c) _generic_swash_uni(_CC_LOWER, c)
#define isPRINT_uni(c) _generic_swash_uni(_CC_PRINT, c)
-/* Posix and regular space are identical above Latin1 */
-#define isPSXSPC_uni(c) _generic_uni(_CC_PSXSPC, is_XPERLSPACE_cp_high, c)
-
#define isPUNCT_uni(c) _generic_swash_uni(_CC_PUNCT, c)
#define isSPACE_uni(c) _generic_uni(_CC_SPACE, is_XPERLSPACE_cp_high, c)
+#define isPSXSPC_uni(c) isSPACE_uni(c)
+
#define isUPPER_uni(c) _generic_swash_uni(_CC_UPPER, c)
#define isVERTWS_uni(c) _generic_uni(_CC_VERTSPACE, is_VERTWS_cp_high, c)
#define isWORDCHAR_uni(c) _generic_swash_uni(_CC_WORDCHAR, c)
@@ -1480,8 +1549,7 @@ EXTCONST U32 PL_charclass[];
_is_uni_perl_idstart, c)
#define isLOWER_LC_uvchr(c) _generic_LC_swash_uvchr(isLOWER_LC, _CC_LOWER, c)
#define isPRINT_LC_uvchr(c) _generic_LC_swash_uvchr(isPRINT_LC, _CC_PRINT, c)
-#define isPSXSPC_LC_uvchr(c) isSPACE_LC_uvchr(c) /* space is identical to posix
- space under locale */
+#define isPSXSPC_LC_uvchr(c) isSPACE_LC_uvchr(c)
#define isPUNCT_LC_uvchr(c) _generic_LC_swash_uvchr(isPUNCT_LC, _CC_PUNCT, c)
#define isSPACE_LC_uvchr(c) _generic_LC_uvchr(isSPACE_LC, \
is_XPERLSPACE_cp_high, c)
@@ -1517,8 +1585,9 @@ EXTCONST U32 PL_charclass[];
_generic_utf8(classnum, p, _is_utf8_FOO(classnum, p))
/* Like the above, but should be used only when it is known that there are no
- * characters in the range 128-255 which the class is TRUE for. Hence it can
- * skip the tests for this range. 'above_latin1' should include its arguments */
+ * characters in the upper-Latin1 range (128-255 on ASCII platforms) which the
+ * class is TRUE for. Hence it can skip the tests for this range.
+ * 'above_latin1' should include its arguments */
#define _generic_utf8_no_upper_latin1(classnum, p, above_latin1) \
(UTF8_IS_INVARIANT(*(p)) \
? _generic_isCC(*(p), classnum) \
@@ -1540,7 +1609,15 @@ EXTCONST U32 PL_charclass[];
utf8, the non-utf8 macro works
*/
#define isBLANK_utf8(p) _generic_func_utf8(_CC_BLANK, is_HORIZWS_high, p)
-#define isCNTRL_utf8(p) _generic_utf8(_CC_CNTRL, p, 0)
+
+#ifdef EBCDIC
+ /* Because all controls are UTF-8 invariants in EBCDIC, we can use this
+ * more efficient macro instead of the more general one */
+# define isCNTRL_utf8(p) isCNTRL_L1(*(p))
+#else
+# define isCNTRL_utf8(p) _generic_utf8(_CC_CNTRL, p, 0)
+#endif
+
#define isDIGIT_utf8(p) _generic_utf8_no_upper_latin1(_CC_DIGIT, p, \
_is_utf8_FOO(_CC_DIGIT, p))
#define isGRAPH_utf8(p) _generic_swash_utf8(_CC_GRAPH, p)
@@ -1558,10 +1635,7 @@ EXTCONST U32 PL_charclass[];
#define isLOWER_utf8(p) _generic_swash_utf8(_CC_LOWER, p)
#define isPRINT_utf8(p) _generic_swash_utf8(_CC_PRINT, p)
-
-/* Posix and regular space are identical above Latin1 */
-#define isPSXSPC_utf8(p) _generic_func_utf8(_CC_PSXSPC, is_XPERLSPACE_high, p)
-
+#define isPSXSPC_utf8(p) isSPACE_utf8(p)
#define isPUNCT_utf8(p) _generic_swash_utf8(_CC_PUNCT, p)
#define isSPACE_utf8(p) _generic_func_utf8(_CC_SPACE, is_XPERLSPACE_high, p)
#define isUPPER_utf8(p) _generic_swash_utf8(_CC_UPPER, p)
@@ -1603,8 +1677,7 @@ EXTCONST U32 PL_charclass[];
#define isIDFIRST_LC_utf8(p) _generic_LC_func_utf8(isIDFIRST_LC, _is_utf8_perl_idstart, p)
#define isLOWER_LC_utf8(p) _generic_LC_swash_utf8(isLOWER_LC, _CC_LOWER, p)
#define isPRINT_LC_utf8(p) _generic_LC_swash_utf8(isPRINT_LC, _CC_PRINT, p)
-#define isPSXSPC_LC_utf8(p) isSPACE_LC_utf8(p) /* space is identical to posix
- space under locale */
+#define isPSXSPC_LC_utf8(p) isSPACE_LC_utf8(p)
#define isPUNCT_LC_utf8(p) _generic_LC_swash_utf8(isPUNCT_LC, _CC_PUNCT, p)
#define isSPACE_LC_utf8(p) _generic_LC_func_utf8(isSPACE_LC, is_XPERLSPACE_high, p)
#define isUPPER_LC_utf8(p) _generic_LC_swash_utf8(isUPPER_LC, _CC_UPPER, p)
@@ -1642,15 +1715,19 @@ EXTCONST U32 PL_charclass[];
* the outlier from the block that contains the other controls, just like
* toCTRL('?') on ASCII yields DEL, the control that is the outlier from the C0
* block. If it weren't special cased, it would yield a non-control.
- * The conversion works both ways, so CTRL('D') is 4, and CTRL(4) is D, etc. */
+ * The conversion works both ways, so toCTRL('D') is 4, and toCTRL(4) is D,
+ * etc. */
#ifndef EBCDIC
-# define toCTRL(c) (toUPPER(c) ^ 64)
+# define toCTRL(c) (__ASSERT_(FITS_IN_8_BITS(c)) toUPPER(((U8)(c))) ^ 64)
#else
-# define toCTRL(c) ((c) == '?' \
- ? LATIN1_TO_NATIVE(0x9F) \
- : (c) == LATIN1_TO_NATIVE(0x9F) \
- ? '?' \
- : (NATIVE_TO_LATIN1(toUPPER(c)) ^ 64))
+# define toCTRL(c) (__ASSERT_(FITS_IN_8_BITS(c)) \
+ ((isPRINT_A(c)) \
+ ? (UNLIKELY((c) == '?') \
+ ? QUESTION_MARK_CTRL \
+ : (NATIVE_TO_LATIN1(toUPPER((U8) (c))) ^ 64)) \
+ : (UNLIKELY((c) == QUESTION_MARK_CTRL) \
+ ? '?' \
+ : (LATIN1_TO_NATIVE(((U8) (c)) ^ 64)))))
#endif
/* Line numbers are unsigned, 32 bits. */
@@ -1687,6 +1764,25 @@ typedef U32 line_t;
* both ASCII and EBCDIC the last 3 bits of the octal digits range from 0-7. */
#define OCTAL_VALUE(c) (__ASSERT_(isOCTAL(c)) (7 & (c)))
+/* Efficiently returns a boolean as to if two native characters are equivalent
+ * case-insenstively. At least one of the characters must be one of [A-Za-z];
+ * the ALPHA in the name is to remind you of that. This is asserted() in
+ * DEBUGGING builds. Because [A-Za-z] are invariant under UTF-8, this macro
+ * works (on valid input) for both non- and UTF-8-encoded bytes.
+ *
+ * When one of the inputs is a compile-time constant and gets folded by the
+ * compiler, this reduces to an AND and a TEST. On both EBCDIC and ASCII
+ * machines, 'A' and 'a' differ by a single bit; the same with the upper and
+ * lower case of all other ASCII-range alphabetics. On ASCII platforms, they
+ * are 32 apart; on EBCDIC, they are 64. At compile time, this uses an
+ * exclusive 'or' to find that bit and then inverts it to form a mask, with
+ * just a single 0, in the bit position where the upper- and lowercase differ.
+ * */
+#define isALPHA_FOLD_EQ(c1, c2) \
+ (__ASSERT_(isALPHA_A(c1) || isALPHA_A(c2)) \
+ ((c1) & ~('A' ^ 'a')) == ((c2) & ~('A' ^ 'a')))
+#define isALPHA_FOLD_NE(c1, c2) (! isALPHA_FOLD_EQ((c1), (c2)))
+
/*
=head1 Memory Management
@@ -1790,14 +1886,49 @@ PoisonWith(0xEF) for catching access to freed memory.
#define MEM_SIZE_MAX ((MEM_SIZE)~0)
-/* The +0.0 in MEM_WRAP_CHECK_ is an attempt to foil
- * overly eager compilers that will bleat about e.g.
- * (U16)n > (size_t)~0/sizeof(U16) always being false. */
+
#ifdef PERL_MALLOC_WRAP
-#define MEM_WRAP_CHECK(n,t) \
- (void)(UNLIKELY(sizeof(t) > 1 && ((MEM_SIZE)(n)+0.0) > MEM_SIZE_MAX/sizeof(t)) && (croak_memory_wrap(),0))
-#define MEM_WRAP_CHECK_1(n,t,a) \
- (void)(UNLIKELY(sizeof(t) > 1 && ((MEM_SIZE)(n)+0.0) > MEM_SIZE_MAX/sizeof(t)) && (Perl_croak_nocontext("%s",(a)),0))
+
+/* This expression will be constant-folded at compile time. It checks
+ * whether or not the type of the count n is so small (e.g. U8 or U16, or
+ * U32 on 64-bit systems) that there's no way a wrap-around could occur.
+ * As well as avoiding the need for a run-time check in some cases, it's
+ * designed to avoid compiler warnings like:
+ * comparison is always false due to limited range of data type
+ */
+
+# define _MEM_WRAP_NEEDS_RUNTIME_CHECK(n,t) \
+ (sizeof(t) > ((MEM_SIZE)1 << 8*(sizeof(MEM_SIZE) - sizeof(n))))
+
+/* This is written in a slightly odd way to avoid various spurious
+ * compiler warnings. We *want* to write the expression as
+ * _MEM_WRAP_NEEDS_RUNTIME_CHECK(n,t) && (n > C)
+ * (for some compile-time constant C), but even when the LHS
+ * constant-folds to false at compile-time, g++ insists on emitting
+ * warnings about the RHS (e.g. "comparison is always false"), so instead
+ * we write it as
+ *
+ * (cond ? n : X) > C
+ *
+ * where X is a constant with X > C always false. Choosing a value for X
+ * is tricky. If 0, some compilers will complain about 0 > C always being
+ * false; if 1, Coverity complains when n happens to be the constant value
+ * '1', that cond ? 1 : 1 has the same value on both branches; so use C
+ * for X and hope that nothing else whines.
+ */
+
+# define _MEM_WRAP_WILL_WRAP(n,t) \
+ ((_MEM_WRAP_NEEDS_RUNTIME_CHECK(n,t) ? (MEM_SIZE)(n) : \
+ MEM_SIZE_MAX/sizeof(t)) > MEM_SIZE_MAX/sizeof(t))
+
+# define MEM_WRAP_CHECK(n,t) \
+ (void)(UNLIKELY(_MEM_WRAP_WILL_WRAP(n,t)) \
+ && (croak_memory_wrap(),0))
+
+# define MEM_WRAP_CHECK_1(n,t,a) \
+ (void)(UNLIKELY(_MEM_WRAP_WILL_WRAP(n,t)) \
+ && (Perl_croak_nocontext("%s",(a)),0))
+
#define MEM_WRAP_CHECK_(n,t) MEM_WRAP_CHECK(n,t),
#define PERL_STRLEN_ROUNDUP(n) ((void)(((n) > MEM_SIZE_MAX - 2 * PERL_STRLEN_ROUNDUP_QUANTUM) ? (croak_memory_wrap(),0):0),((n-1+PERL_STRLEN_ROUNDUP_QUANTUM)&~((MEM_SIZE)PERL_STRLEN_ROUNDUP_QUANTUM-1)))
@@ -2016,11 +2147,5 @@ void Perl_mem_log_del_sv(const SV *sv, const char *filename, const int linenumbe
#endif /* HANDY_H */
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/hv.h b/Master/tlpkg/tlperl/lib/CORE/hv.h
index 95dde4681ed..9533af58f2a 100644
--- a/Master/tlpkg/tlperl/lib/CORE/hv.h
+++ b/Master/tlpkg/tlperl/lib/CORE/hv.h
@@ -58,7 +58,7 @@ struct shared_he {
/* Subject to change.
Don't access this directly.
- Use the funcs in mro.c
+ Use the funcs in mro_core.c
*/
struct mro_alg {
@@ -629,11 +629,5 @@ Creates a new HV. The reference count is set to 1.
#include "hv_func.h"
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/hv_func.h b/Master/tlpkg/tlperl/lib/CORE/hv_func.h
index 191912a6cc7..49a677eb33f 100755
--- a/Master/tlpkg/tlperl/lib/CORE/hv_func.h
+++ b/Master/tlpkg/tlperl/lib/CORE/hv_func.h
@@ -21,6 +21,8 @@
|| defined(PERL_HASH_FUNC_ONE_AT_A_TIME) \
|| defined(PERL_HASH_FUNC_ONE_AT_A_TIME_HARD) \
|| defined(PERL_HASH_FUNC_ONE_AT_A_TIME_OLD) \
+ || defined(PERL_HASH_FUNC_MURMUR_HASH_64A) \
+ || defined(PERL_HASH_FUNC_MURMUR_HASH_64B) \
)
#define PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
#endif
@@ -28,38 +30,46 @@
#if defined(PERL_HASH_FUNC_SIPHASH)
# define PERL_HASH_FUNC "SIPHASH_2_4"
# define PERL_HASH_SEED_BYTES 16
-# define PERL_HASH(hash,str,len) (hash)= S_perl_hash_siphash_2_4(PERL_HASH_SEED,(U8*)(str),(len))
+# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_siphash_2_4((seed),(U8*)(str),(len))
#elif defined(PERL_HASH_FUNC_SUPERFAST)
# define PERL_HASH_FUNC "SUPERFAST"
# define PERL_HASH_SEED_BYTES 4
-# define PERL_HASH(hash,str,len) (hash)= S_perl_hash_superfast(PERL_HASH_SEED,(U8*)(str),(len))
+# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_superfast((seed),(U8*)(str),(len))
#elif defined(PERL_HASH_FUNC_MURMUR3)
# define PERL_HASH_FUNC "MURMUR3"
# define PERL_HASH_SEED_BYTES 4
-# define PERL_HASH(hash,str,len) (hash)= S_perl_hash_murmur3(PERL_HASH_SEED,(U8*)(str),(len))
+# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_murmur3((seed),(U8*)(str),(len))
#elif defined(PERL_HASH_FUNC_DJB2)
# define PERL_HASH_FUNC "DJB2"
# define PERL_HASH_SEED_BYTES 4
-# define PERL_HASH(hash,str,len) (hash)= S_perl_hash_djb2(PERL_HASH_SEED,(U8*)(str),(len))
+# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_djb2((seed),(U8*)(str),(len))
#elif defined(PERL_HASH_FUNC_SDBM)
# define PERL_HASH_FUNC "SDBM"
# define PERL_HASH_SEED_BYTES 4
-# define PERL_HASH(hash,str,len) (hash)= S_perl_hash_sdbm(PERL_HASH_SEED,(U8*)(str),(len))
+# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_sdbm((seed),(U8*)(str),(len))
#elif defined(PERL_HASH_FUNC_ONE_AT_A_TIME_HARD)
# define PERL_HASH_FUNC "ONE_AT_A_TIME_HARD"
# define PERL_HASH_SEED_BYTES 8
-# define PERL_HASH(hash,str,len) (hash)= S_perl_hash_one_at_a_time_hard(PERL_HASH_SEED,(U8*)(str),(len))
+# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_one_at_a_time_hard((seed),(U8*)(str),(len))
#elif defined(PERL_HASH_FUNC_ONE_AT_A_TIME)
# define PERL_HASH_FUNC "ONE_AT_A_TIME"
# define PERL_HASH_SEED_BYTES 4
-# define PERL_HASH(hash,str,len) (hash)= S_perl_hash_one_at_a_time(PERL_HASH_SEED,(U8*)(str),(len))
+# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_one_at_a_time((seed),(U8*)(str),(len))
#elif defined(PERL_HASH_FUNC_ONE_AT_A_TIME_OLD)
# define PERL_HASH_FUNC "ONE_AT_A_TIME_OLD"
# define PERL_HASH_SEED_BYTES 4
-# define PERL_HASH(hash,str,len) (hash)= S_perl_hash_old_one_at_a_time(PERL_HASH_SEED,(U8*)(str),(len))
+# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_old_one_at_a_time((seed),(U8*)(str),(len))
+#elif defined(PERL_HASH_FUNC_MURMUR_HASH_64A)
+# define PERL_HASH_FUNC "MURMUR_HASH_64A"
+# define PERL_HASH_SEED_BYTES 8
+# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_murmur_hash_64a((seed),(U8*)(str),(len))
+#elif defined(PERL_HASH_FUNC_MURMUR_HASH_64B)
+# define PERL_HASH_FUNC "MURMUR_HASH_64B"
+# define PERL_HASH_SEED_BYTES 8
+# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_murmur_hash_64b((seed),(U8*)(str),(len))
#endif
-#ifndef PERL_HASH
+#ifndef PERL_HASH_WITH_SEED
#error "No hash function defined!"
#endif
#ifndef PERL_HASH_SEED_BYTES
@@ -73,14 +83,18 @@
# if defined(USE_HASH_SEED) || defined(USE_HASH_SEED_EXPLICIT)
# define PERL_HASH_SEED PL_hash_seed
# elif PERL_HASH_SEED_BYTES == 4
-# define PERL_HASH_SEED "PeRl"
+# define PERL_HASH_SEED ((const U8 *)"PeRl")
+# elif PERL_HASH_SEED_BYTES == 8
+# define PERL_HASH_SEED ((const U8 *)"PeRlHaSh")
# elif PERL_HASH_SEED_BYTES == 16
-# define PERL_HASH_SEED "PeRlHaShhAcKpErl"
+# define PERL_HASH_SEED ((const U8 *)"PeRlHaShhAcKpErl")
# else
# error "No PERL_HASH_SEED definition for " PERL_HASH_FUNC
# endif
#endif
+#define PERL_HASH(hash,str,len) PERL_HASH_WITH_SEED(PERL_HASH_SEED,hash,str,len)
+
/*-----------------------------------------------------------------------------
* Endianess, misalignment capabilities and util macros
*
@@ -88,7 +102,7 @@
* are only needed to help derive these 3.
*
* U8TO32_LE(x) Read a little endian unsigned 32-bit int
- * UNALIGNED_SAFE Defined if READ_UINT32 works on non-word boundaries
+ * UNALIGNED_SAFE Defined if unaligned access is safe
* ROTL32(x,r) Rotate x left by r bits
*/
@@ -102,8 +116,6 @@
+((const U8 *)(d))[0])
#endif
-
-/* Now find best way we can to READ_UINT32 */
#if (BYTEORDER == 0x1234 || BYTEORDER == 0x12345678) && U32SIZE == 4
/* CPU endian matches murmurhash algorithm, so read 32-bit word directly */
#define U8TO32_LE(ptr) (*((U32*)(ptr)))
@@ -192,10 +204,10 @@
PERL_STATIC_INLINE U32
S_perl_hash_siphash_2_4(const unsigned char * const seed, const unsigned char *in, const STRLEN inlen) {
/* "somepseudorandomlygeneratedbytes" */
- U64TYPE v0 = 0x736f6d6570736575ULL;
- U64TYPE v1 = 0x646f72616e646f6dULL;
- U64TYPE v2 = 0x6c7967656e657261ULL;
- U64TYPE v3 = 0x7465646279746573ULL;
+ U64TYPE v0 = UINT64_C(0x736f6d6570736575);
+ U64TYPE v1 = UINT64_C(0x646f72616e646f6d);
+ U64TYPE v2 = UINT64_C(0x6c7967656e657261);
+ U64TYPE v3 = UINT64_C(0x7465646279746573);
U64TYPE b;
U64TYPE k0 = ((U64TYPE*)seed)[0];
@@ -257,7 +269,7 @@ S_perl_hash_siphash_2_4(const unsigned char * const seed, const unsigned char *i
PERL_STATIC_INLINE U32
S_perl_hash_superfast(const unsigned char * const seed, const unsigned char *str, STRLEN len) {
- U32 hash = *((U32*)seed) + len;
+ U32 hash = *((U32*)seed) + (U32)len;
U32 tmp;
int rem= len & 3;
len >>= 2;
@@ -367,7 +379,7 @@ S_perl_hash_murmur3(const unsigned char * const seed, const unsigned char *ptr,
const unsigned char *end;
int bytes_in_carry = 0; /* bytes in carry */
- I32 total_length= len;
+ I32 total_length= (I32)len;
#if defined(UNALIGNED_SAFE)
/* Handle carry: commented out as its only used in incremental mode - it never fires for us
@@ -390,7 +402,7 @@ S_perl_hash_murmur3(const unsigned char * const seed, const unsigned char *ptr,
/* Consume enough so that the next data byte is word aligned */
STRLEN i = -PTR2IV(ptr) & 3;
if(i && i <= len) {
- MURMUR_DOBYTES(i, h1, carry, bytes_in_carry, ptr, len);
+ MURMUR_DOBYTES((int)i, h1, carry, bytes_in_carry, ptr, len);
}
/* We're now aligned. Process in aligned blocks. Specialise for each possible carry count */
@@ -431,7 +443,7 @@ S_perl_hash_murmur3(const unsigned char * const seed, const unsigned char *ptr,
len -= len/4*4;
/* Append any remaining bytes into carry */
- MURMUR_DOBYTES(len, h1, carry, bytes_in_carry, ptr, len);
+ MURMUR_DOBYTES((int)len, h1, carry, bytes_in_carry, ptr, len);
if (bytes_in_carry) {
k1 = carry >> ( 4 - bytes_in_carry ) * 8;
@@ -455,7 +467,7 @@ S_perl_hash_murmur3(const unsigned char * const seed, const unsigned char *ptr,
PERL_STATIC_INLINE U32
S_perl_hash_djb2(const unsigned char * const seed, const unsigned char *str, const STRLEN len) {
const unsigned char * const end = (const unsigned char *)str + len;
- U32 hash = *((U32*)seed + len);
+ U32 hash = *((U32*)seed) + (U32)len;
while (str < end) {
hash = ((hash << 5) + hash) + *str++;
}
@@ -465,7 +477,7 @@ S_perl_hash_djb2(const unsigned char * const seed, const unsigned char *str, con
PERL_STATIC_INLINE U32
S_perl_hash_sdbm(const unsigned char * const seed, const unsigned char *str, const STRLEN len) {
const unsigned char * const end = (const unsigned char *)str + len;
- U32 hash = *((U32*)seed + len);
+ U32 hash = *((U32*)seed) + (U32)len;
while (str < end) {
hash = (hash << 6) + (hash << 16) - hash + *str++;
}
@@ -491,7 +503,7 @@ S_perl_hash_sdbm(const unsigned char * const seed, const unsigned char *str, con
PERL_STATIC_INLINE U32
S_perl_hash_one_at_a_time(const unsigned char * const seed, const unsigned char *str, const STRLEN len) {
const unsigned char * const end = (const unsigned char *)str + len;
- U32 hash = *((U32*)seed) + len;
+ U32 hash = *((U32*)seed) + (U32)len;
while (str < end) {
hash += *str++;
hash += (hash << 10);
@@ -506,7 +518,7 @@ S_perl_hash_one_at_a_time(const unsigned char * const seed, const unsigned char
PERL_STATIC_INLINE U32
S_perl_hash_one_at_a_time_hard(const unsigned char * const seed, const unsigned char *str, const STRLEN len) {
const unsigned char * const end = (const unsigned char *)str + len;
- U32 hash = *((U32*)seed) + len;
+ U32 hash = *((U32*)seed) + (U32)len;
while (str < end) {
hash += (hash << 10);
@@ -552,6 +564,134 @@ S_perl_hash_old_one_at_a_time(const unsigned char * const seed, const unsigned c
return (hash + (hash << 15));
}
+#ifdef PERL_HASH_FUNC_MURMUR_HASH_64A
+/* This code is from Austin Appleby and is in the public domain.
+ Altered by Yves Orton to match Perl's hash interface, and to
+ return a 32 bit hash.
+
+ Note uses unaligned 64 bit loads - will NOT work on machines with
+ strict alignment requirements.
+
+ Also this code may not be suitable for big-endian machines.
+*/
+
+/* a 64 bit hash where we only use the low 32 bits */
+PERL_STATIC_INLINE U32
+S_perl_hash_murmur_hash_64a (const unsigned char * const seed, const unsigned char *str, const STRLEN len)
+{
+ const U64TYPE m = 0xc6a4a7935bd1e995;
+ const int r = 47;
+ U64TYPE h = *((U64TYPE*)seed) ^ len;
+ const U64TYPE * data = (const U64TYPE *)str;
+ const U64TYPE * end = data + (len/8);
+ const unsigned char * data2;
+
+ while(data != end)
+ {
+ U64TYPE k = *data++;
+
+ k *= m;
+ k ^= k >> r;
+ k *= m;
+
+ h ^= k;
+ h *= m;
+ }
+
+ data2 = (const unsigned char *)data;
+
+ switch(len & 7)
+ {
+ case 7: h ^= (U64TYPE)(data2[6]) << 48; /* fallthrough */
+ case 6: h ^= (U64TYPE)(data2[5]) << 40; /* fallthrough */
+ case 5: h ^= (U64TYPE)(data2[4]) << 32; /* fallthrough */
+ case 4: h ^= (U64TYPE)(data2[3]) << 24; /* fallthrough */
+ case 3: h ^= (U64TYPE)(data2[2]) << 16; /* fallthrough */
+ case 2: h ^= (U64TYPE)(data2[1]) << 8; /* fallthrough */
+ case 1: h ^= (U64TYPE)(data2[0]); /* fallthrough */
+ h *= m;
+ };
+
+ h ^= h >> r;
+ h *= m;
+ h ^= h >> r;
+
+ /* was: return h; */
+ return h & 0xFFFFFFFF;
+}
+
+#endif
+
+#ifdef PERL_HASH_FUNC_MURMUR_HASH_64B
+/* This code is from Austin Appleby and is in the public domain.
+ Altered by Yves Orton to match Perl's hash interface and return
+ a 32 bit value
+
+ Note uses unaligned 32 bit loads - will NOT work on machines with
+ strict alignment requirements.
+
+ Also this code may not be suitable for big-endian machines.
+*/
+
+/* a 64-bit hash for 32-bit platforms where we only use the low 32 bits */
+PERL_STATIC_INLINE U32
+S_perl_hash_murmur_hash_64b (const unsigned char * const seed, const unsigned char *str, STRLEN len)
+{
+ const U32 m = 0x5bd1e995;
+ const int r = 24;
+
+ U32 h1 = ((U32 *)seed)[0] ^ len;
+ U32 h2 = ((U32 *)seed)[1];
+
+ const U32 * data = (const U32 *)str;
+
+ while(len >= 8)
+ {
+ U32 k1, k2;
+ k1 = *data++;
+ k1 *= m; k1 ^= k1 >> r; k1 *= m;
+ h1 *= m; h1 ^= k1;
+ len -= 4;
+
+ k2 = *data++;
+ k2 *= m; k2 ^= k2 >> r; k2 *= m;
+ h2 *= m; h2 ^= k2;
+ len -= 4;
+ }
+
+ if(len >= 4)
+ {
+ U32 k1 = *data++;
+ k1 *= m; k1 ^= k1 >> r; k1 *= m;
+ h1 *= m; h1 ^= k1;
+ len -= 4;
+ }
+
+ switch(len)
+ {
+ case 3: h2 ^= ((unsigned char*)data)[2] << 16; /* fallthrough */
+ case 2: h2 ^= ((unsigned char*)data)[1] << 8; /* fallthrough */
+ case 1: h2 ^= ((unsigned char*)data)[0]; /* fallthrough */
+ h2 *= m;
+ };
+
+ h1 ^= h2 >> 18; h1 *= m;
+ h2 ^= h1 >> 22; h2 *= m;
+ /*
+ The following code has been removed as it is unused
+ when only the low 32 bits are used. -- Yves
+
+ h1 ^= h2 >> 17; h1 *= m;
+
+ U64TYPE h = h1;
+
+ h = (h << 32) | h2;
+ */
+
+ return h2;
+}
+#endif
+
/* legacy - only mod_perl should be doing this. */
#ifdef PERL_HASH_INTERNAL_ACCESS
#define PERL_HASH_INTERNAL(hash,str,len) PERL_HASH(hash,str,len)
@@ -560,11 +700,5 @@ S_perl_hash_old_one_at_a_time(const unsigned char * const seed, const unsigned c
#endif /*compile once*/
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/inline.h b/Master/tlpkg/tlperl/lib/CORE/inline.h
index 0fe8a0eee1a..46a8cb6d342 100755
--- a/Master/tlpkg/tlperl/lib/CORE/inline.h
+++ b/Master/tlpkg/tlperl/lib/CORE/inline.h
@@ -25,6 +25,14 @@ S_av_top_index(pTHX_ AV *av)
/* ------------------------------- cv.h ------------------------------- */
+PERL_STATIC_INLINE GV *
+S_CvGV(pTHX_ CV *sv)
+{
+ return CvNAMED(sv)
+ ? Perl_cvgv_from_hek(aTHX_ sv)
+ : ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_gv_u.xcv_gv;
+}
+
PERL_STATIC_INLINE I32 *
S_CvDEPTHp(const CV * const sv)
{
@@ -82,6 +90,41 @@ S_MgBYTEPOS(pTHX_ MAGIC *mg, SV *sv, const char *s, STRLEN len)
}
#endif
+/* ------------------------------- pad.h ------------------------------ */
+
+#if defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
+PERL_STATIC_INLINE bool
+PadnameIN_SCOPE(const PADNAME * const pn, const U32 seq)
+{
+ /* is seq within the range _LOW to _HIGH ?
+ * This is complicated by the fact that PL_cop_seqmax
+ * may have wrapped around at some point */
+ if (COP_SEQ_RANGE_LOW(pn) == PERL_PADSEQ_INTRO)
+ return FALSE; /* not yet introduced */
+
+ if (COP_SEQ_RANGE_HIGH(pn) == PERL_PADSEQ_INTRO) {
+ /* in compiling scope */
+ if (
+ (seq > COP_SEQ_RANGE_LOW(pn))
+ ? (seq - COP_SEQ_RANGE_LOW(pn) < (U32_MAX >> 1))
+ : (COP_SEQ_RANGE_LOW(pn) - seq > (U32_MAX >> 1))
+ )
+ return TRUE;
+ }
+ else if (
+ (COP_SEQ_RANGE_LOW(pn) > COP_SEQ_RANGE_HIGH(pn))
+ ?
+ ( seq > COP_SEQ_RANGE_LOW(pn)
+ || seq <= COP_SEQ_RANGE_HIGH(pn))
+
+ : ( seq > COP_SEQ_RANGE_LOW(pn)
+ && seq <= COP_SEQ_RANGE_HIGH(pn))
+ )
+ return TRUE;
+ return FALSE;
+}
+#endif
+
/* ----------------------------- regexp.h ----------------------------- */
PERL_STATIC_INLINE struct regexp *
@@ -148,27 +191,15 @@ SvAMAGIC_off(SV *sv)
}
PERL_STATIC_INLINE U32
-S_SvPADTMP_on(SV *sv)
-{
- assert(!(SvFLAGS(sv) & SVs_PADMY));
- return SvFLAGS(sv) |= SVs_PADTMP;
-}
-PERL_STATIC_INLINE U32
-S_SvPADTMP_off(SV *sv)
-{
- assert(!(SvFLAGS(sv) & SVs_PADMY));
- return SvFLAGS(sv) &= ~SVs_PADTMP;
-}
-PERL_STATIC_INLINE U32
S_SvPADSTALE_on(SV *sv)
{
- assert(SvFLAGS(sv) & SVs_PADMY);
+ assert(!(SvFLAGS(sv) & SVs_PADTMP));
return SvFLAGS(sv) |= SVs_PADSTALE;
}
PERL_STATIC_INLINE U32
S_SvPADSTALE_off(SV *sv)
{
- assert(SvFLAGS(sv) & SVs_PADMY);
+ assert(!(SvFLAGS(sv) & SVs_PADTMP));
return SvFLAGS(sv) &= ~SVs_PADSTALE;
}
#if defined(PERL_CORE) || defined (PERL_EXT)
@@ -188,64 +219,16 @@ S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp)
/* ------------------------------- handy.h ------------------------------- */
/* saves machine code for a common noreturn idiom typically used in Newx*() */
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunused-function"
+#ifdef GCC_DIAG_PRAGMA
+GCC_DIAG_IGNORE(-Wunused-function) /* Intentionally left semicolonless. */
#endif
static void
S_croak_memory_wrap(void)
{
Perl_croak_nocontext("%s",PL_memory_wrap);
}
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-#ifdef BOOTSTRAP_CHARSET
-static bool
-S_bootstrap_ctype(U8 character, UV classnum, bool full_Latin1)
-{
- /* See comments in handy.h. This is placed in this file primarily to avoid
- * having to have an entry for it in embed.fnc */
-
- dTHX;
-
- if (! full_Latin1 && ! isASCII(character)) {
- return FALSE;
- }
-
- switch (classnum) {
- case _CC_ALPHANUMERIC: return isALPHANUMERIC_L1(character);
- case _CC_ALPHA: return isALPHA_L1(character);
- case _CC_ASCII: return isASCII_L1(character);
- case _CC_BLANK: return isBLANK_L1(character);
- case _CC_CASED: return isLOWER_L1(character)
- || isUPPER_L1(character);
- case _CC_CNTRL: return isCNTRL_L1(character);
- case _CC_DIGIT: return isDIGIT_L1(character);
- case _CC_GRAPH: return isGRAPH_L1(character);
- case _CC_LOWER: return isLOWER_L1(character);
- case _CC_PRINT: return isPRINT_L1(character);
- case _CC_PSXSPC: return isPSXSPC_L1(character);
- case _CC_PUNCT: return isPUNCT_L1(character);
- case _CC_SPACE: return isSPACE_L1(character);
- case _CC_UPPER: return isUPPER_L1(character);
- case _CC_WORDCHAR: return isWORDCHAR_L1(character);
- case _CC_XDIGIT: return isXDIGIT_L1(character);
- case _CC_VERTSPACE: return isSPACE_L1(character) && ! isBLANK_L1(character);
- case _CC_IDFIRST: return isIDFIRST_L1(character);
- case _CC_QUOTEMETA: return _isQUOTEMETA(character);
- case _CC_CHARNAME_CONT: return isCHARNAME_CONT(character);
- case _CC_NONLATIN1_FOLD: return _HAS_NONLATIN1_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(character);
- case _CC_NON_FINAL_FOLD: return _IS_NON_FINAL_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C(character);
- case _CC_IS_IN_SOME_FOLD: return _IS_IN_SOME_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C(character);
- case _CC_BACKSLASH_FOO_LBRACE_IS_META: return 0;
-
-
- default: break;
- }
- Perl_croak(aTHX_ "panic: bootstrap_ctype() has an unexpected character class '%" UVxf "'", classnum);
-}
+#ifdef GCC_DIAG_PRAGMA
+GCC_DIAG_RESTORE /* Intentionally left semicolonless. */
#endif
/* ------------------------------- utf8.h ------------------------------- */
@@ -266,28 +249,41 @@ S_append_utf8_from_native_byte(const U8 byte, U8** dest)
}
}
-/* These two exist only to replace the macros they formerly were so that their
- * use can be deprecated */
+/*
-PERL_STATIC_INLINE bool
-S_isIDFIRST_lazy(pTHX_ const char* p)
-{
- PERL_ARGS_ASSERT_ISIDFIRST_LAZY;
+A helper function for the macro isUTF8_CHAR(), which should be used instead of
+this function. The macro will handle smaller code points directly saving time,
+using this function as a fall-back for higher code points.
- return isIDFIRST_lazy_if(p,1);
-}
+Tests if the first bytes of string C<s> form a valid UTF-8 character. 0 is
+returned if the bytes starting at C<s> up to but not including C<e> do not form a
+complete well-formed UTF-8 character; otherwise the number of bytes in the
+character is returned.
-PERL_STATIC_INLINE bool
-S_isALNUM_lazy(pTHX_ const char* p)
+Note that an INVARIANT (i.e. ASCII on non-EBCDIC) character is a valid UTF-8
+character.
+
+=cut */
+PERL_STATIC_INLINE STRLEN
+S__is_utf8_char_slow(const U8 *s, const U8 *e)
{
- PERL_ARGS_ASSERT_ISALNUM_LAZY;
+ dTHX; /* The function called below requires thread context */
+
+ STRLEN actual_len;
+
+ PERL_ARGS_ASSERT__IS_UTF8_CHAR_SLOW;
- return isALNUM_lazy_if(p,1);
+ assert(e >= s);
+ utf8n_to_uvchr(s, e - s, &actual_len, UTF8_CHECK_ONLY);
+
+ return (actual_len == (STRLEN) -1) ? 0 : actual_len;
}
/* ------------------------------- perl.h ----------------------------- */
/*
+=head1 Miscellaneous Functions
+
=for apidoc AiR|bool|is_safe_syscall|const char *pv|STRLEN len|const char *what|const char *op_name
Test that the given C<pv> doesn't contain any internal C<NUL> characters.
@@ -308,7 +304,7 @@ S_is_safe_syscall(pTHX_ const char *pv, STRLEN len, const char *what, const char
PERL_ARGS_ASSERT_IS_SAFE_SYSCALL;
- if (pv && len > 1) {
+ if (len > 1) {
char *null_at;
if (UNLIKELY((null_at = (char *)memchr(pv, 0, len-1)) != NULL)) {
SETERRNO(ENOENT, LIB_INVARG);
@@ -323,11 +319,88 @@ S_is_safe_syscall(pTHX_ const char *pv, STRLEN len, const char *what, const char
}
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
+
+Return true if the supplied filename has a newline character
+immediately before the final NUL.
+
+My original look at this incorrectly used the len from SvPV(), but
+that's incorrect, since we allow for a NUL in pv[len-1].
+
+So instead, strlen() and work from there.
+
+This allow for the user reading a filename, forgetting to chomp it,
+then calling:
+
+ open my $foo, "$file\0";
+
+*/
+
+#ifdef PERL_CORE
+
+PERL_STATIC_INLINE bool
+S_should_warn_nl(const char *pv) {
+ STRLEN len;
+
+ PERL_ARGS_ASSERT_SHOULD_WARN_NL;
+
+ len = strlen(pv);
+
+ return len > 0 && pv[len-1] == '\n';
+}
+
+#endif
+
+/* ------------------ pp.c, regcomp.c, toke.c, universal.c ------------ */
+
+#define MAX_CHARSET_NAME_LENGTH 2
+
+PERL_STATIC_INLINE const char *
+get_regex_charset_name(const U32 flags, STRLEN* const lenp)
+{
+ /* Returns a string that corresponds to the name of the regex character set
+ * given by 'flags', and *lenp is set the length of that string, which
+ * cannot exceed MAX_CHARSET_NAME_LENGTH characters */
+
+ *lenp = 1;
+ switch (get_regex_charset(flags)) {
+ case REGEX_DEPENDS_CHARSET: return DEPENDS_PAT_MODS;
+ case REGEX_LOCALE_CHARSET: return LOCALE_PAT_MODS;
+ case REGEX_UNICODE_CHARSET: return UNICODE_PAT_MODS;
+ case REGEX_ASCII_RESTRICTED_CHARSET: return ASCII_RESTRICT_PAT_MODS;
+ case REGEX_ASCII_MORE_RESTRICTED_CHARSET:
+ *lenp = 2;
+ return ASCII_MORE_RESTRICT_PAT_MODS;
+ }
+ /* The NOT_REACHED; hides an assert() which has a rather complex
+ * definition in perl.h. */
+ NOT_REACHED; /* NOTREACHED */
+ return "?"; /* Unknown */
+}
+
+/*
+
+Return false if any get magic is on the SV other than taint magic.
+
+*/
+
+PERL_STATIC_INLINE bool
+S_sv_only_taint_gmagic(SV *sv) {
+ MAGIC *mg = SvMAGIC(sv);
+
+ PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC;
+
+ while (mg) {
+ if (mg->mg_type != PERL_MAGIC_taint
+ && !(mg->mg_flags & MGf_GSKIP)
+ && mg->mg_virtual->svt_get) {
+ return FALSE;
+ }
+ mg = mg->mg_moremagic;
+ }
+
+ return TRUE;
+}
+
+/*
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/intrpvar.h b/Master/tlpkg/tlperl/lib/CORE/intrpvar.h
index 08c4a382224..96336358b2c 100644
--- a/Master/tlpkg/tlperl/lib/CORE/intrpvar.h
+++ b/Master/tlpkg/tlperl/lib/CORE/intrpvar.h
@@ -60,6 +60,9 @@ PERLVAR(I, markstack, I32 *) /* stack_sp locations we're
PERLVAR(I, markstack_ptr, I32 *)
PERLVAR(I, markstack_max, I32 *)
+PERLVARI(I, sawalias, bool, FALSE) /* must enable common-vars
+ pessimisation */
+
#ifdef PERL_HASH_RANDOMIZE_KEYS
#ifdef USE_PERL_PERTURB_KEYS
PERLVARI(I, hash_rand_bits_enabled, U8, 1) /* used to randomize hash stuff 0 == no-random, 1 == random, 2 == determinsitic */
@@ -67,6 +70,9 @@ PERLVARI(I, hash_rand_bits_enabled, U8, 1) /* used to randomize hash stuff 0 ==
PERLVARI(I, hash_rand_bits, UV, 0) /* used to randomize hash stuff */
#endif
PERLVAR(I, strtab, HV *) /* shared string table */
+/* prog counter for the currently executing OP_MULTIDEREF Used to signal
+ * to S_find_uninit_var() where we are */
+PERLVAR(I, multideref_pc, UNOP_AUX_item *)
/* Fields used by magic variables such as $@, $/ and so on */
PERLVAR(I, curpm, PMOP *) /* what to do \ interps in REs from */
@@ -109,9 +115,6 @@ PERLVAR(I, mainstack, AV *) /* the stack when nothing funny is
/* memory management */
PERLVAR(I, sv_count, IV) /* how many SV* are currently allocated */
-PERLVAR(I, sv_objcount, IV) /* DEPRECATED AND UNMAINTAINED.
- * Will be removed in Perl 5.22.
- * Used to be: how many objects are currently allocated. */
PERLVAR(I, sv_root, SV *) /* storage for SVs belonging to interp */
PERLVAR(I, sv_arenaroot, SV *) /* list of areas for garbage collection */
@@ -146,6 +149,8 @@ C<&PL_sv_yes>.
PERLVAR(I, sv_undef, SV)
PERLVAR(I, sv_no, SV)
PERLVAR(I, sv_yes, SV)
+PERLVAR(I, padname_undef, PADNAME)
+PERLVAR(I, padname_const, PADNAME)
PERLVAR(I, Sv, SV *) /* used to hold temporary values */
PERLVAR(I, parser, yy_parser *) /* current parser state */
@@ -174,7 +179,7 @@ PERLVAR(I, statgv, GV *)
PERLVARI(I, statname, SV *, NULL)
#ifdef HAS_TIMES
-/* Will be removed soon after v5.21.0. See RT #121351 */
+/* Will be removed soon after v5.22.1. See RT #121351 */
PERLVAR(I, timesbuf, struct tms)
#endif
@@ -233,6 +238,9 @@ PERLVAR(I, exit_flags, U8) /* was exit() unexpected, etc. */
PERLVAR(I, utf8locale, bool) /* utf8 locale detected */
PERLVAR(I, in_utf8_CTYPE_locale, bool)
+#ifdef USE_LOCALE_CTYPE
+ PERLVAR(I, warn_locale, SV *)
+#endif
PERLVARA(I, colors,6, char *) /* values from PERL_RE_COLORS env var */
@@ -313,12 +321,12 @@ PERLVAR(I, envgv, GV *)
PERLVAR(I, incgv, GV *)
PERLVAR(I, hintgv, GV *)
PERLVAR(I, origfilename, char *)
+PERLVARI(I, xsubfilename, const char *, NULL)
PERLVAR(I, diehook, SV *)
PERLVAR(I, warnhook, SV *)
/* switches */
PERLVAR(I, patchlevel, SV *)
-PERLVAR(I, apiversion, SV *)
PERLVAR(I, localpatches, const char * const *)
PERLVARI(I, splitstr, const char *, " ")
@@ -393,6 +401,8 @@ PERLVAR(I, DBtrace, SV *) /* $DB::trace */
PERLVAR(I, DBsignal, SV *) /* $DB::signal */
PERLVAR(I, dbargs, AV *) /* args to call listed by caller function */
+PERLVARA(I, DBcontrol, DBVARMG_COUNT, IV) /* IV versions of $DB::single, trace, signal */
+
/* symbol tables */
PERLVAR(I, debstash, HV *) /* symbol table for perldb package */
PERLVAR(I, globalstash, HV *) /* global keyword overrides imported here */
@@ -534,7 +544,9 @@ PERLVAR(I, subline, I32) /* line this subroutine began on */
PERLVAR(I, min_intro_pending, I32) /* start of vars to introduce */
PERLVAR(I, max_intro_pending, I32) /* end of vars to introduce */
-PERLVAR(I, padix, I32) /* max used index in current "register" pad */
+PERLVAR(I, padix, I32) /* lowest unused index - 1
+ in current "register" pad */
+PERLVAR(I, constpadix, I32) /* lowest unused for constants */
PERLVAR(I, padix_floor, I32) /* how low may inner block reset padix */
@@ -568,7 +580,7 @@ PERLVARI(I, perl_destruct_level, signed char, 0)
#ifdef USE_LOCALE_NUMERIC
-PERLVARI(I, numeric_standard, bool, TRUE)
+PERLVARI(I, numeric_standard, int, TRUE)
/* Assume simple numerics */
PERLVARI(I, numeric_local, bool, TRUE)
/* Assume local numerics */
@@ -581,14 +593,13 @@ PERLVAR(I, numeric_radix_sv, SV *) /* The radix separator if not '.' */
PERLVAR(I, Latin1, SV *)
PERLVAR(I, UpperLatin1, SV *) /* Code points 128 - 255 */
PERLVAR(I, AboveLatin1, SV *)
+PERLVAR(I, InBitmap, SV *)
PERLVAR(I, NonL1NonFinalFold, SV *)
PERLVAR(I, HasMultiCharFold, SV *)
/* utf8 character class swashes */
PERLVAR(I, utf8_mark, SV *)
-PERLVAR(I, utf8_X_regular_begin, SV *)
-PERLVAR(I, utf8_X_extend, SV *)
PERLVAR(I, utf8_toupper, SV *)
PERLVAR(I, utf8_totitle, SV *)
PERLVAR(I, utf8_tolower, SV *)
@@ -599,6 +610,9 @@ PERLVAR(I, utf8_charname_continue, SV *)
PERLVARA(I, utf8_swash_ptrs, POSIX_SWASH_COUNT, SV *)
PERLVARA(I, Posix_ptrs, POSIX_CC_COUNT, SV *)
PERLVARA(I, XPosix_ptrs, POSIX_CC_COUNT, SV *)
+PERLVAR(I, GCB_invlist, SV *)
+PERLVAR(I, SB_invlist, SV *)
+PERLVAR(I, WB_invlist, SV *)
PERLVAR(I, last_swash_hv, HV *)
PERLVAR(I, last_swash_tmps, U8 *)
@@ -667,7 +681,8 @@ PERLVARI(I, known_layers, PerlIO_list_t *, NULL)
PERLVARI(I, def_layerlist, PerlIO_list_t *, NULL)
#endif
-PERLVARI(I, encoding, SV *, NULL) /* character encoding */
+PERLVARI(I, encoding, SV *, NULL) /* $^ENCODING */
+PERLVARI(I, lex_encoding, SV *, NULL) /* encoding pragma */
PERLVAR(I, utf8_idstart, SV *)
PERLVAR(I, utf8_idcont, SV *)
@@ -736,7 +751,9 @@ PERLVAR(I, debug_pad, struct perl_debug_pad) /* always needed because of the re
/* Hook for File::Glob */
PERLVARI(I, globhook, globhook_t, NULL)
-/* The last unconditional member of the interpreter structure when 5.20.2 was
+PERLVARI(I, padlist_generation, U32, 1) /* id to identify padlist clones */
+
+/* The last unconditional member of the interpreter structure when 5.22.1 was
released. The offset of the end of this is baked into a global variable in
any shared perl library which will allow a sanity test in future perl
releases. */
@@ -760,11 +777,6 @@ PERLVAR(I, memory_debug_header, struct perl_memory_debug_header)
PERLVARI(I, dumper_fd, int, -1)
#endif
-#ifdef PERL_MAD
-PERLVARI(I, madskills, bool, FALSE) /* preserve all syntactic info */
- /* (MAD = Misc Attribute Decoration) */
-PERLVARI(I, xmlfp, PerlIO *, NULL)
-#endif
#ifdef DEBUG_LEAKING_SCALARS
PERLVARI(I, sv_serial, U32, 0) /* SV serial number, used in sv.c */
diff --git a/Master/tlpkg/tlperl/lib/CORE/iperlsys.h b/Master/tlpkg/tlperl/lib/CORE/iperlsys.h
index 003405f690f..57160e0804f 100644
--- a/Master/tlpkg/tlperl/lib/CORE/iperlsys.h
+++ b/Master/tlpkg/tlperl/lib/CORE/iperlsys.h
@@ -315,10 +315,12 @@ struct IPerlStdIOInfo
#define PerlSIO_fputs(s,f) fputs(s,f)
#define PerlSIO_fflush(f) Fflush(f)
#define PerlSIO_fgets(s, n, f) fgets(s,n,f)
-#if defined(VMS) && defined(__DECC)
+#if defined(__VMS)
/* Unusual definition of ungetc() here to accommodate fast_sv_gets()'
* belief that it can mix getc/ungetc with reads from stdio buffer */
+START_EXTERN_C
int decc$ungetc(int __c, FILE *__stream);
+END_EXTERN_C
# define PerlSIO_ungetc(c,f) ((c) == EOF ? EOF : \
((*(f) && !((*(f))->_flag & _IONBF) && \
((*(f))->_ptr > (*(f))->_base)) ? \
@@ -1413,11 +1415,5 @@ struct IPerlSockInfo
#endif /* __Inc__IPerl___ */
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/keywords.h b/Master/tlpkg/tlperl/lib/CORE/keywords.h
index f23896c4106..faf1125ec61 100644
--- a/Master/tlpkg/tlperl/lib/CORE/keywords.h
+++ b/Master/tlpkg/tlperl/lib/CORE/keywords.h
@@ -270,5 +270,5 @@
#define KEY_y 254
/* Generated from:
- * 7c6d47fd2890b2422a40331ec90eac08f9808209b01f2b9c113141410fea91b5 regen/keywords.pl
+ * 963511f90d23994583c88b07c3cf2258473567702972e94b59a635727c4aa944 regen/keywords.pl
* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h b/Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h
index b5bf444a6af..bdab9890094 100644
--- a/Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h
+++ b/Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h
@@ -4,6 +4,10 @@
* Any changes made here will be lost!
*/
+/* For code points whose position is not the same as Unicode, both are shown
+ * in the comment*/
+
+#if 'A' == 65 /* ASCII/Latin1 */
/* U+00 NUL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+01 SOH */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
@@ -11,13 +15,13 @@
/* U+04 EOT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+05 ENQ */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+06 ACK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
/* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
@@ -31,19 +35,19 @@
/* U+18 CAN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+19 EOM */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
/* U+1C FS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+1D GS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+1E RS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+1F US */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+20 SPACE */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
/* U+21 '!' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
/* U+22 '"' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
/* U+23 '#' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
/* U+24 '$' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
/* U+25 '%' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
/* U+26 '&' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+27 ''' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+27 "'" */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
/* U+28 '(' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
/* U+29 ')' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
/* U+2A '*' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
@@ -79,15 +83,15 @@
/* U+48 'H' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+49 'I' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+4A 'J' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+4B 'K' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+4B 'K' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+4C 'L' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+4D 'M' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+4E 'N' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
+/* U+4E 'N' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+4F 'O' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+50 'P' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
+/* U+50 'P' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+51 'Q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+52 'R' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+53 'S' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+53 'S' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+54 'T' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+55 'U' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+56 'V' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
@@ -107,24 +111,24 @@
/* U+64 'd' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+65 'e' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+66 'f' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+67 'g' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
+/* U+67 'g' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+68 'h' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+69 'i' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+6A 'j' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+6B 'k' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
+/* U+6B 'k' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+6C 'l' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+6D 'm' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+6E 'n' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+6F 'o' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
-/* U+70 'p' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
+/* U+6F 'o' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+70 'p' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+71 'q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+72 'r' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+73 's' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+73 's' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+74 't' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+75 'u' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+76 'v' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+77 'w' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+78 'x' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
+/* U+78 'x' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+79 'y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+7A 'z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+7B '{' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
@@ -137,7 +141,7 @@
/* U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
/* U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
@@ -164,101 +168,892 @@
/* U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+A0 NO-BREAK SPACE */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* U+A1 INVERTED EXCLAMATION MARK */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+A2 CENT SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+A3 POUND SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+A4 CURRENCY SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+A5 YEN SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* U+A1 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+A2 CENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+A3 POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+A4 CURRENCY */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+A5 YEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
/* U+A6 BROKEN BAR */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+A7 SECTION SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+A7 SECTION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
/* U+A8 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+A9 COPYRIGHT SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+AA FEMININE ORDINAL INDICATOR */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+AC NOT SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+A9 COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+AA FEMININE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* U+AB LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+AC NOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
/* U+AD SOFT HYPHEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+AE REGISTERED SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+AE REGISTERED */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
/* U+AF MACRON */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+B0 DEGREE SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+B1 PLUS-MINUS SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+B2 SUPERSCRIPT TWO */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+B3 SUPERSCRIPT THREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* U+B0 DEGREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+B1 PLUS-MINUS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+B2 SUPERSCRIPT 2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* U+B3 SUPERSCRIPT 3 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
/* U+B4 ACUTE ACCENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+B5 MICRO SIGN */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+B6 PILCROW SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+B5 MICRO */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+B6 PILCROW */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
/* U+B7 MIDDLE DOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT),
/* U+B8 CEDILLA */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+B9 SUPERSCRIPT ONE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+BA MASCULINE ORDINAL INDICATOR */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+BC VULGAR FRACTION ONE QUARTER */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+BD VULGAR FRACTION ONE HALF */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+BE VULGAR FRACTION THREE QUARTERS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+BF INVERTED QUESTION MARK */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+C0 A WITH GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C1 A WITH ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C2 A WITH CIRCUMFLEX */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C3 A WITH TILDE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C4 A WITH DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C5 A WITH RING ABOVE */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+B9 SUPERSCRIPT 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* U+BA MASCULINE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* U+BB RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+BC 1/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* U+BD 1/2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* U+BE 3/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* U+BF INVERTED '?' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+C0 A with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C1 A with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C2 A with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C3 A with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C4 A with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C5 A with RING */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+C6 AE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C7 C WITH CEDILLA */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C8 E WITH GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C9 E WITH ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+CA E WITH CIRCUMFLEX */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+CB E WITH DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+CC I WITH GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+CD I WITH ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+CE I WITH CIRCUMFLEX */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+CF I WITH DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C7 C with CEDILLA */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C8 E with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C9 E with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+CA E with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+CB E with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+CC I with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+CD I with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+CE I with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+CF I with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+D0 ETH */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D1 N WITH TILDE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D2 O WITH GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D3 O WITH ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D4 O WITH CIRCUMFLEX */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D5 O WITH TILDE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D6 O WITH DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D7 MULTIPLICATION SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+D8 O WITH STROKE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D9 U WITH GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+DA U WITH ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+DB U WITH CIRCUMFLEX */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+DC U WITH DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+DD Y WITH ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D1 N with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D2 O with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D3 O with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D4 O with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D5 O with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D6 O with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D7 MULTIPLICATION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+D8 O with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D9 U with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+DA U with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+DB U with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+DC U with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+DD Y with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+DE THORN */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+DF sharp s */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+DF sharp s */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+E0 a with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+E1 a with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+E2 a with circumflex */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+E3 a with tilde */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+E2 a with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+E3 a with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+E4 a with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+E5 a with ring above */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+E5 a with ring */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+E6 ae */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+E7 c with cedilla */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+E8 e with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+E9 e with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+EA e with circumflex */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+EA e with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+EB e with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+EC i with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+ED i with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+EE i with circumflex */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+EE i with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+EF i with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+F0 eth */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+F1 n with tilde */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+F1 n with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+F2 o with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+F3 o with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+F4 o with circumflex */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+F5 o with tilde */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+F4 o with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+F5 o with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+F6 o with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+F7 DIVISION SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+F8 o with stroke */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+F7 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+F8 o with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+F9 u with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+FA u with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+FB u with circumflex */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+FB u with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+FC u with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+FD y with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
/* U+FE thorn */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+FF y with diaeresis */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+FF y with diaeresis */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+
+#endif /* ASCII/Latin1 */
+
+#if 'A' == 193 /* EBCDIC 1047 */ \
+ && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
+ && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 121
+/* U+00 NUL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+01 SOH */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+03 ETX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x04 U+9C ST */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x06 U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x07 U+7F DEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x08 U+97 EPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x09 U+8D RI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x0A U+8E SS2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+11 DC1 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+12 DC2 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+13 DC3 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x14 U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x15 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+18 CAN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+19 EOM */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x1A U+92 PU2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x1B U+8F SS3 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1C FS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1D GS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1E RS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1F US */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x20 U+80 PAD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x21 U+81 HOP */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x22 U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x23 U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x24 U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x25 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* 0x26 U+17 ETB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x27 U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x28 U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x29 U+89 HTJ */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2A U+8A VTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2B U+8B PLD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2C U+8C PLU */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2D U+05 ENQ */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2E U+06 ACK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2F U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x30 U+90 DCS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x31 U+91 PU1 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x32 U+16 SYN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x33 U+93 STS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x34 U+94 CCH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x35 U+95 MW */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x36 U+96 SPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x37 U+04 EOT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x38 U+98 SOS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x39 U+99 SGC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3A U+9A SCI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3B U+9B CSI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3C U+14 DC4 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3D U+15 NAK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3E U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3F U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x42 U+E2 a with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x43 U+E4 a with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x44 U+E0 a with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x45 U+E1 a with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x46 U+E3 a with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x47 U+E5 a with ring */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x48 U+E7 c with cedilla */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x49 U+F1 n with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x4A U+A2 CENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x4B U+2E '.' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4C U+3C '<' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4D U+28 '(' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4E U+2B '+' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4F U+7C '|' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x50 U+26 '&' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x51 U+E9 e with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x52 U+EA e with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x53 U+EB e with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x54 U+E8 e with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x55 U+ED i with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x56 U+EE i with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x57 U+EF i with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x58 U+EC i with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x59 U+DF sharp s */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x5A U+21 '!' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5B U+24 '$' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5C U+2A '*' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5D U+29 ')' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5E U+3B ';' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5F U+5E '^' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x60 U+2D '-' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x61 U+2F '/' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x62 U+C2 A with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x63 U+C4 A with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x64 U+C0 A with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x65 U+C1 A with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x66 U+C3 A with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x67 U+C5 A with RING */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x68 U+C7 C with CEDILLA */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x69 U+D1 N with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x6A U+A6 BROKEN BAR */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x6B U+2C ',' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6C U+25 '%' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6D U+5F '_' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_WORDCHAR),
+/* 0x6E U+3E '>' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6F U+3F '?' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x70 U+F8 o with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x71 U+C9 E with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x72 U+CA E with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x73 U+CB E with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x74 U+C8 E with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x75 U+CD I with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x76 U+CE I with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x77 U+CF I with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x78 U+CC I with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x79 U+60 '`' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7A U+3A ':' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7B U+23 '#' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7C U+40 '@' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7D U+27 "'" */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7E U+3D '=' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7F U+22 '"' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x80 U+D8 O with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x81 U+61 'a' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x82 U+62 'b' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x83 U+63 'c' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x84 U+64 'd' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x85 U+65 'e' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x86 U+66 'f' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x87 U+67 'g' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x88 U+68 'h' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x89 U+69 'i' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8A U+AB LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x8B U+BB RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x8C U+F0 eth */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8D U+FD y with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8E U+FE thorn */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8F U+B1 PLUS-MINUS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x90 U+B0 DEGREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x91 U+6A 'j' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x92 U+6B 'k' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x93 U+6C 'l' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x94 U+6D 'm' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x95 U+6E 'n' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x96 U+6F 'o' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x97 U+70 'p' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x98 U+71 'q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x99 U+72 'r' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9A U+AA FEMININE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* 0x9B U+BA MASCULINE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* 0x9C U+E6 ae */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9D U+B8 CEDILLA */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0x9E U+C6 AE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9F U+A4 CURRENCY */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xA0 U+B5 MICRO */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA1 U+7E '~' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xA2 U+73 's' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA3 U+74 't' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA4 U+75 'u' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA5 U+76 'v' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA6 U+77 'w' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA7 U+78 'x' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA8 U+79 'y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA9 U+7A 'z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAA U+A1 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAB U+BF INVERTED '?' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAC U+D0 ETH */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAD U+5B '[' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAE U+DE THORN */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAF U+AE REGISTERED */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB0 U+AC NOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB1 U+A3 POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB2 U+A5 YEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB3 U+B7 MIDDLE DOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT),
+/* 0xB4 U+A9 COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB5 U+A7 SECTION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+B6 PILCROW */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xB7 U+BC 1/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xB8 U+BD 1/2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xB9 U+BE 3/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBA U+DD Y with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xBB U+A8 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBC U+AF MACRON */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBD U+5D ']' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xBE U+B4 ACUTE ACCENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBF U+D7 MULTIPLICATION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xC0 U+7B '{' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xC1 U+41 'A' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC2 U+42 'B' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC3 U+43 'C' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC4 U+44 'D' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC5 U+45 'E' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC6 U+46 'F' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC7 U+47 'G' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC8 U+48 'H' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC9 U+49 'I' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCA U+AD SOFT HYPHEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xCB U+F4 o with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCC U+F6 o with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCD U+F2 o with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCE U+F3 o with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCF U+F5 o with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD0 U+7D '}' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xD1 U+4A 'J' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD2 U+4B 'K' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD3 U+4C 'L' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD4 U+4D 'M' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD5 U+4E 'N' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD6 U+4F 'O' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD7 U+50 'P' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD8 U+51 'Q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD9 U+52 'R' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDA U+B9 SUPERSCRIPT 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xDB U+FB u with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDC U+FC u with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDD U+F9 u with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDE U+FA u with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDF U+FF y with diaeresis */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE0 U+5C '\' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xE1 U+F7 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xE2 U+53 'S' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE3 U+54 'T' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE4 U+55 'U' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE5 U+56 'V' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE6 U+57 'W' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE7 U+58 'X' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE8 U+59 'Y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE9 U+5A 'Z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEA U+B2 SUPERSCRIPT 2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xEB U+D4 O with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEC U+D6 O with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xED U+D2 O with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEE U+D3 O with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEF U+D5 O with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xF0 U+30 '0' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF1 U+31 '1' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF2 U+32 '2' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF3 U+33 '3' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF4 U+34 '4' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF5 U+35 '5' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF6 U+36 '6' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF7 U+37 '7' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF8 U+38 '8' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF9 U+39 '9' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xFA U+B3 SUPERSCRIPT 3 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xFB U+DB U with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFC U+DC U with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFD U+D9 U with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFE U+DA U with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFF U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+
+#endif /* EBCDIC 1047 */
+
+#if 'A' == 193 /* EBCDIC 037 */ \
+ && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
+ && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 121
+/* U+00 NUL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+01 SOH */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+03 ETX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x04 U+9C ST */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x06 U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x07 U+7F DEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x08 U+97 EPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x09 U+8D RI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x0A U+8E SS2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+11 DC1 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+12 DC2 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+13 DC3 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x14 U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x15 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+18 CAN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+19 EOM */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x1A U+92 PU2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x1B U+8F SS3 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1C FS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1D GS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1E RS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1F US */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x20 U+80 PAD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x21 U+81 HOP */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x22 U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x23 U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x24 U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x25 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x26 U+17 ETB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x27 U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x28 U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x29 U+89 HTJ */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2A U+8A VTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2B U+8B PLD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2C U+8C PLU */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2D U+05 ENQ */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2E U+06 ACK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2F U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x30 U+90 DCS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x31 U+91 PU1 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x32 U+16 SYN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x33 U+93 STS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x34 U+94 CCH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x35 U+95 MW */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x36 U+96 SPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x37 U+04 EOT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x38 U+98 SOS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x39 U+99 SGC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3A U+9A SCI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3B U+9B CSI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3C U+14 DC4 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3D U+15 NAK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3E U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3F U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x42 U+E2 a with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x43 U+E4 a with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x44 U+E0 a with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x45 U+E1 a with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x46 U+E3 a with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x47 U+E5 a with ring */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x48 U+E7 c with cedilla */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x49 U+F1 n with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x4A U+A2 CENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x4B U+2E '.' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4C U+3C '<' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4D U+28 '(' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4E U+2B '+' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4F U+7C '|' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x50 U+26 '&' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x51 U+E9 e with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x52 U+EA e with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x53 U+EB e with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x54 U+E8 e with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x55 U+ED i with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x56 U+EE i with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x57 U+EF i with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x58 U+EC i with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x59 U+DF sharp s */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x5A U+21 '!' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5B U+24 '$' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5C U+2A '*' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5D U+29 ')' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5E U+3B ';' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5F U+AC NOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x60 U+2D '-' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x61 U+2F '/' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x62 U+C2 A with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x63 U+C4 A with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x64 U+C0 A with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x65 U+C1 A with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x66 U+C3 A with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x67 U+C5 A with RING */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x68 U+C7 C with CEDILLA */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x69 U+D1 N with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x6A U+A6 BROKEN BAR */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x6B U+2C ',' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6C U+25 '%' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6D U+5F '_' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_WORDCHAR),
+/* 0x6E U+3E '>' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6F U+3F '?' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x70 U+F8 o with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x71 U+C9 E with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x72 U+CA E with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x73 U+CB E with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x74 U+C8 E with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x75 U+CD I with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x76 U+CE I with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x77 U+CF I with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x78 U+CC I with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x79 U+60 '`' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7A U+3A ':' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7B U+23 '#' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7C U+40 '@' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7D U+27 "'" */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7E U+3D '=' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7F U+22 '"' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x80 U+D8 O with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x81 U+61 'a' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x82 U+62 'b' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x83 U+63 'c' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x84 U+64 'd' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x85 U+65 'e' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x86 U+66 'f' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x87 U+67 'g' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x88 U+68 'h' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x89 U+69 'i' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8A U+AB LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x8B U+BB RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x8C U+F0 eth */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8D U+FD y with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8E U+FE thorn */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8F U+B1 PLUS-MINUS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x90 U+B0 DEGREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x91 U+6A 'j' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x92 U+6B 'k' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x93 U+6C 'l' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x94 U+6D 'm' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x95 U+6E 'n' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x96 U+6F 'o' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x97 U+70 'p' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x98 U+71 'q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x99 U+72 'r' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9A U+AA FEMININE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* 0x9B U+BA MASCULINE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* 0x9C U+E6 ae */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9D U+B8 CEDILLA */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0x9E U+C6 AE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9F U+A4 CURRENCY */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xA0 U+B5 MICRO */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA1 U+7E '~' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xA2 U+73 's' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA3 U+74 't' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA4 U+75 'u' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA5 U+76 'v' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA6 U+77 'w' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA7 U+78 'x' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA8 U+79 'y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA9 U+7A 'z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAA U+A1 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAB U+BF INVERTED '?' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAC U+D0 ETH */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAD U+DD Y with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAE U+DE THORN */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAF U+AE REGISTERED */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB0 U+5E '^' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xB1 U+A3 POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB2 U+A5 YEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB3 U+B7 MIDDLE DOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT),
+/* 0xB4 U+A9 COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB5 U+A7 SECTION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+B6 PILCROW */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xB7 U+BC 1/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xB8 U+BD 1/2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xB9 U+BE 3/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBA U+5B '[' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xBB U+5D ']' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xBC U+AF MACRON */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBD U+A8 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBE U+B4 ACUTE ACCENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBF U+D7 MULTIPLICATION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xC0 U+7B '{' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xC1 U+41 'A' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC2 U+42 'B' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC3 U+43 'C' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC4 U+44 'D' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC5 U+45 'E' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC6 U+46 'F' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC7 U+47 'G' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC8 U+48 'H' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC9 U+49 'I' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCA U+AD SOFT HYPHEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xCB U+F4 o with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCC U+F6 o with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCD U+F2 o with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCE U+F3 o with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCF U+F5 o with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD0 U+7D '}' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xD1 U+4A 'J' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD2 U+4B 'K' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD3 U+4C 'L' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD4 U+4D 'M' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD5 U+4E 'N' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD6 U+4F 'O' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD7 U+50 'P' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD8 U+51 'Q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD9 U+52 'R' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDA U+B9 SUPERSCRIPT 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xDB U+FB u with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDC U+FC u with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDD U+F9 u with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDE U+FA u with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDF U+FF y with diaeresis */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE0 U+5C '\' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xE1 U+F7 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xE2 U+53 'S' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE3 U+54 'T' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE4 U+55 'U' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE5 U+56 'V' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE6 U+57 'W' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE7 U+58 'X' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE8 U+59 'Y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE9 U+5A 'Z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEA U+B2 SUPERSCRIPT 2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xEB U+D4 O with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEC U+D6 O with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xED U+D2 O with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEE U+D3 O with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEF U+D5 O with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xF0 U+30 '0' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF1 U+31 '1' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF2 U+32 '2' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF3 U+33 '3' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF4 U+34 '4' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF5 U+35 '5' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF6 U+36 '6' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF7 U+37 '7' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF8 U+38 '8' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF9 U+39 '9' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xFA U+B3 SUPERSCRIPT 3 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xFB U+DB U with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFC U+DC U with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFD U+D9 U with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFE U+DA U with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFF U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+
+#endif /* EBCDIC 037 */
+
+#if 'A' == 193 /* EBCDIC POSIX-BC */ \
+ && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
+ && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 74
+/* U+00 NUL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+01 SOH */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+03 ETX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x04 U+9C ST */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x06 U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x07 U+7F DEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x08 U+97 EPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x09 U+8D RI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x0A U+8E SS2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+11 DC1 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+12 DC2 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+13 DC3 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x14 U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x15 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+18 CAN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+19 EOM */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x1A U+92 PU2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x1B U+8F SS3 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1C FS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1D GS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1E RS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1F US */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x20 U+80 PAD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x21 U+81 HOP */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x22 U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x23 U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x24 U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x25 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* 0x26 U+17 ETB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x27 U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x28 U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x29 U+89 HTJ */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2A U+8A VTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2B U+8B PLD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2C U+8C PLU */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2D U+05 ENQ */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2E U+06 ACK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2F U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x30 U+90 DCS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x31 U+91 PU1 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x32 U+16 SYN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x33 U+93 STS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x34 U+94 CCH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x35 U+95 MW */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x36 U+96 SPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x37 U+04 EOT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x38 U+98 SOS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x39 U+99 SGC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3A U+9A SCI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3B U+9B CSI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3C U+14 DC4 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3D U+15 NAK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3E U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3F U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x42 U+E2 a with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x43 U+E4 a with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x44 U+E0 a with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x45 U+E1 a with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x46 U+E3 a with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x47 U+E5 a with ring */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x48 U+E7 c with cedilla */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x49 U+F1 n with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x4A U+60 '`' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4B U+2E '.' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4C U+3C '<' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4D U+28 '(' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4E U+2B '+' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4F U+7C '|' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x50 U+26 '&' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x51 U+E9 e with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x52 U+EA e with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x53 U+EB e with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x54 U+E8 e with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x55 U+ED i with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x56 U+EE i with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x57 U+EF i with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x58 U+EC i with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x59 U+DF sharp s */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x5A U+21 '!' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5B U+24 '$' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5C U+2A '*' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5D U+29 ')' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5E U+3B ';' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5F U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x60 U+2D '-' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x61 U+2F '/' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x62 U+C2 A with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x63 U+C4 A with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x64 U+C0 A with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x65 U+C1 A with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x66 U+C3 A with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x67 U+C5 A with RING */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x68 U+C7 C with CEDILLA */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x69 U+D1 N with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x6A U+5E '^' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6B U+2C ',' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6C U+25 '%' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6D U+5F '_' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_WORDCHAR),
+/* 0x6E U+3E '>' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6F U+3F '?' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x70 U+F8 o with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x71 U+C9 E with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x72 U+CA E with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x73 U+CB E with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x74 U+C8 E with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x75 U+CD I with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x76 U+CE I with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x77 U+CF I with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x78 U+CC I with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x79 U+A8 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0x7A U+3A ':' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7B U+23 '#' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7C U+40 '@' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7D U+27 "'" */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7E U+3D '=' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7F U+22 '"' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x80 U+D8 O with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x81 U+61 'a' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x82 U+62 'b' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x83 U+63 'c' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x84 U+64 'd' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x85 U+65 'e' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x86 U+66 'f' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x87 U+67 'g' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x88 U+68 'h' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x89 U+69 'i' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8A U+AB LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x8B U+BB RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x8C U+F0 eth */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8D U+FD y with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8E U+FE thorn */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8F U+B1 PLUS-MINUS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x90 U+B0 DEGREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x91 U+6A 'j' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x92 U+6B 'k' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x93 U+6C 'l' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x94 U+6D 'm' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x95 U+6E 'n' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x96 U+6F 'o' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x97 U+70 'p' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x98 U+71 'q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x99 U+72 'r' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9A U+AA FEMININE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* 0x9B U+BA MASCULINE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* 0x9C U+E6 ae */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9D U+B8 CEDILLA */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0x9E U+C6 AE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9F U+A4 CURRENCY */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xA0 U+B5 MICRO */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA1 U+AF MACRON */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xA2 U+73 's' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA3 U+74 't' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA4 U+75 'u' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA5 U+76 'v' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA6 U+77 'w' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA7 U+78 'x' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA8 U+79 'y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA9 U+7A 'z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAA U+A1 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAB U+BF INVERTED '?' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAC U+D0 ETH */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAD U+DD Y with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAE U+DE THORN */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAF U+AE REGISTERED */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB0 U+A2 CENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB1 U+A3 POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB2 U+A5 YEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB3 U+B7 MIDDLE DOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT),
+/* 0xB4 U+A9 COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB5 U+A7 SECTION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+B6 PILCROW */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xB7 U+BC 1/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xB8 U+BD 1/2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xB9 U+BE 3/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBA U+AC NOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xBB U+5B '[' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xBC U+5C '\' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xBD U+5D ']' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xBE U+B4 ACUTE ACCENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBF U+D7 MULTIPLICATION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xC0 U+F9 u with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC1 U+41 'A' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC2 U+42 'B' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC3 U+43 'C' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC4 U+44 'D' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC5 U+45 'E' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC6 U+46 'F' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC7 U+47 'G' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC8 U+48 'H' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC9 U+49 'I' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCA U+AD SOFT HYPHEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xCB U+F4 o with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCC U+F6 o with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCD U+F2 o with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCE U+F3 o with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCF U+F5 o with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD0 U+A6 BROKEN BAR */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xD1 U+4A 'J' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD2 U+4B 'K' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD3 U+4C 'L' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD4 U+4D 'M' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD5 U+4E 'N' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD6 U+4F 'O' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD7 U+50 'P' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD8 U+51 'Q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD9 U+52 'R' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDA U+B9 SUPERSCRIPT 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xDB U+FB u with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDC U+FC u with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDD U+DB U with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDE U+FA u with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDF U+FF y with diaeresis */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE0 U+D9 U with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE1 U+F7 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xE2 U+53 'S' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE3 U+54 'T' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE4 U+55 'U' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE5 U+56 'V' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE6 U+57 'W' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE7 U+58 'X' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE8 U+59 'Y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE9 U+5A 'Z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEA U+B2 SUPERSCRIPT 2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xEB U+D4 O with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEC U+D6 O with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xED U+D2 O with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEE U+D3 O with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEF U+D5 O with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xF0 U+30 '0' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF1 U+31 '1' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF2 U+32 '2' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF3 U+33 '3' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF4 U+34 '4' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF5 U+35 '5' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF6 U+36 '6' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF7 U+37 '7' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF8 U+38 '8' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF9 U+39 '9' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xFA U+B3 SUPERSCRIPT 3 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xFB U+7B '{' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xFC U+DC U with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFD U+7D '}' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xFE U+DA U with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFF U+7E '~' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+
+#endif /* EBCDIC POSIX-BC */
/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/libperl520.a b/Master/tlpkg/tlperl/lib/CORE/libperl522.a
index 7ceb92ba676..c0d5a88f513 100644
--- a/Master/tlpkg/tlperl/lib/CORE/libperl520.a
+++ b/Master/tlpkg/tlperl/lib/CORE/libperl522.a
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/CORE/metaconfig.h b/Master/tlpkg/tlperl/lib/CORE/metaconfig.h
index 0a90c86ed03..fef2e4ba947 100644
--- a/Master/tlpkg/tlperl/lib/CORE/metaconfig.h
+++ b/Master/tlpkg/tlperl/lib/CORE/metaconfig.h
@@ -11,28 +11,29 @@
* in Configure, this is the way to force them into availability.
*
* BOOTSTRAP_CHARSET
- * CHARBITS
+ * DOUBLEKIND
+ * HAS_ACOSH
* HAS_ASCTIME64
* HAS_CTIME64
* HAS_DIFFTIME64
+ * HAS_DLADDR
+ * HAS_FEGETROUND
+ * HAS_FPCLASSIFY
* HAS_GMTIME64
- * HAS_ISBLANK
+ * HAS_ISFINITEL
+ * HAS_ISINFL
+ * HAS_ISLESS
+ * HAS_J0
* HAS_LOCALTIME64
- * HAS_IP_MREQ
- * HAS_IP_MREQ_SOURCE
- * HAS_IPV6_MREQ
- * HAS_IPV6_MREQ_SOURCE
* HAS_MKTIME64
* HAS_PRCTL
* HAS_PSEUDOFORK
* HAS_TIMEGM
- * HAS_SOCKADDR_IN6
* I16SIZE
* I64SIZE
* I8SIZE
* LOCALTIME_R_NEEDS_TZSET
+ * LONG_DOUBLEKIND
* U8SIZE
- * USE_KERN_PROC_PATHNAME
- * USE_NSGETEXECUTABLEPATH
- *
+ * USE_CBACKTRACE
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/mg.h b/Master/tlpkg/tlperl/lib/CORE/mg.h
index 81ed296f8a2..034fd7eaf05 100644
--- a/Master/tlpkg/tlperl/lib/CORE/mg.h
+++ b/Master/tlpkg/tlperl/lib/CORE/mg.h
@@ -33,12 +33,14 @@ struct magic {
#define MGf_TAINTEDDIR 1 /* PERL_MAGIC_envelem only */
#define MGf_MINMATCH 1 /* PERL_MAGIC_regex_global only */
+#define MGf_REQUIRE_GV 1 /* PERL_MAGIC_checkcall only */
#define MGf_REFCOUNTED 2
#define MGf_GSKIP 4 /* skip further GETs until after next SET */
#define MGf_COPY 8 /* has an svt_copy MGVTBL entry */
#define MGf_DUP 0x10 /* has an svt_dup MGVTBL entry */
#define MGf_LOCAL 0x20 /* has an svt_local MGVTBL entry */
#define MGf_BYTES 0x40 /* PERL_MAGIC_regex_global only */
+#define MGf_PERSIST 0x80 /* PERL_MAGIC_lvref only */
#define MgTAINTEDDIR(mg) (mg->mg_flags & MGf_TAINTEDDIR)
#define MgTAINTEDDIR_on(mg) (mg->mg_flags |= MGf_TAINTEDDIR)
@@ -63,7 +65,7 @@ struct magic {
/* assumes get-magic and stringification have already occurred */
# define MgBYTEPOS_set(mg,sv,pv,off) ( \
assert_((mg)->mg_type == PERL_MAGIC_regex_global) \
- SvPOK(sv) && !SvGMAGICAL(sv) \
+ SvPOK(sv) && (!SvGMAGICAL(sv) || sv_only_taint_gmagic(sv)) \
? (mg)->mg_len = (off), (mg)->mg_flags |= MGf_BYTES \
: ((mg)->mg_len = DO_UTF8(sv) \
? (SSize_t)utf8_length((U8 *)(pv), (U8 *)(pv)+(off)) \
@@ -74,11 +76,5 @@ struct magic {
#define whichsig(pv) whichsig_pv(pv)
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/mg_data.h b/Master/tlpkg/tlperl/lib/CORE/mg_data.h
index 1a7670bc6cd..e52c34bca8f 100644
--- a/Master/tlpkg/tlperl/lib/CORE/mg_data.h
+++ b/Master/tlpkg/tlperl/lib/CORE/mg_data.h
@@ -38,14 +38,14 @@
/* arylen '#' Array length ($#ary) */
want_vtbl_arylen | PERL_MAGIC_VALUE_MAGIC,
0,
- /* rhash '%' extra data for restricted hashes */
+ /* rhash '%' Extra data for restricted hashes */
magic_vtable_max | PERL_MAGIC_VALUE_MAGIC,
- /* proto '&' my sub prototype CV */
- magic_vtable_max,
0,
0,
0,
0,
+ /* debugvar '*' $DB::single, signal, trace vars */
+ want_vtbl_debugvar,
0,
0,
0,
@@ -62,15 +62,15 @@
0,
0,
0,
- /* symtab ':' extra data for symbol tables */
+ /* symtab ':' Extra data for symbol tables */
magic_vtable_max | PERL_MAGIC_VALUE_MAGIC,
0,
- /* backref '<' for weak ref data */
+ /* backref '<' For weak ref data */
want_vtbl_backref | PERL_MAGIC_READONLY_ACCEPTABLE | PERL_MAGIC_VALUE_MAGIC,
0,
0,
0,
- /* arylen_p '@' to move arylen out of XPVAV */
+ /* arylen_p '@' To move arylen out of XPVAV */
magic_vtable_max | PERL_MAGIC_VALUE_MAGIC,
0,
/* bm 'B' Boyer-Moore (fast string search) */
@@ -109,8 +109,9 @@
0,
0,
0,
- 0,
- /* checkcall ']' inlining/mutation of call to this CV */
+ /* lvref '\' Lvalue reference constructor */
+ want_vtbl_lvref,
+ /* checkcall ']' Inlining/mutation of call to this CV */
want_vtbl_checkcall | PERL_MAGIC_VALUE_MAGIC,
0,
0,
@@ -144,7 +145,7 @@
want_vtbl_packelem,
/* tiedscalar 'q' Tied scalar or handle */
want_vtbl_packelem,
- /* qr 'r' precompiled qr// regex */
+ /* qr 'r' Precompiled qr// regex */
want_vtbl_regexp | PERL_MAGIC_READONLY_ACCEPTABLE | PERL_MAGIC_VALUE_MAGIC,
/* sigelem 's' %SIG hash element */
want_vtbl_sigelem,
@@ -164,7 +165,7 @@
0,
0,
/* ext '~' Available for use by extensions */
- magic_vtable_max,
+ magic_vtable_max | PERL_MAGIC_READONLY_ACCEPTABLE,
0,
0,
0,
diff --git a/Master/tlpkg/tlperl/lib/CORE/mg_raw.h b/Master/tlpkg/tlperl/lib/CORE/mg_raw.h
index f508ad0e572..b3e25d646b5 100644
--- a/Master/tlpkg/tlperl/lib/CORE/mg_raw.h
+++ b/Master/tlpkg/tlperl/lib/CORE/mg_raw.h
@@ -11,17 +11,17 @@
{ '#', "want_vtbl_arylen | PERL_MAGIC_VALUE_MAGIC",
"/* arylen '#' Array length ($#ary) */" },
{ '%', "magic_vtable_max | PERL_MAGIC_VALUE_MAGIC",
- "/* rhash '%' extra data for restricted hashes */" },
- { '&', "magic_vtable_max",
- "/* proto '&' my sub prototype CV */" },
+ "/* rhash '%' Extra data for restricted hashes */" },
+ { '*', "want_vtbl_debugvar",
+ "/* debugvar '*' $DB::single, signal, trace vars */" },
{ '.', "want_vtbl_pos | PERL_MAGIC_VALUE_MAGIC",
"/* pos '.' pos() lvalue */" },
{ ':', "magic_vtable_max | PERL_MAGIC_VALUE_MAGIC",
- "/* symtab ':' extra data for symbol tables */" },
+ "/* symtab ':' Extra data for symbol tables */" },
{ '<', "want_vtbl_backref | PERL_MAGIC_READONLY_ACCEPTABLE | PERL_MAGIC_VALUE_MAGIC",
- "/* backref '<' for weak ref data */" },
+ "/* backref '<' For weak ref data */" },
{ '@', "magic_vtable_max | PERL_MAGIC_VALUE_MAGIC",
- "/* arylen_p '@' to move arylen out of XPVAV */" },
+ "/* arylen_p '@' To move arylen out of XPVAV */" },
{ 'B', "want_vtbl_regexp | PERL_MAGIC_READONLY_ACCEPTABLE | PERL_MAGIC_VALUE_MAGIC",
"/* bm 'B' Boyer-Moore (fast string search) */" },
{ 'c', "want_vtbl_ovrld",
@@ -61,7 +61,7 @@
{ 'q', "want_vtbl_packelem",
"/* tiedscalar 'q' Tied scalar or handle */" },
{ 'r', "want_vtbl_regexp | PERL_MAGIC_READONLY_ACCEPTABLE | PERL_MAGIC_VALUE_MAGIC",
- "/* qr 'r' precompiled qr// regex */" },
+ "/* qr 'r' Precompiled qr// regex */" },
{ 'S', "magic_vtable_max",
"/* sig 'S' %SIG hash */" },
{ 's', "want_vtbl_sigelem",
@@ -80,9 +80,11 @@
"/* substr 'x' substr() lvalue */" },
{ 'y', "want_vtbl_defelem | PERL_MAGIC_VALUE_MAGIC",
"/* defelem 'y' Shadow \"foreach\" iterator variable / smart parameter vivification */" },
+ { '\\', "want_vtbl_lvref",
+ "/* lvref '\\' Lvalue reference constructor */" },
{ ']', "want_vtbl_checkcall | PERL_MAGIC_VALUE_MAGIC",
- "/* checkcall ']' inlining/mutation of call to this CV */" },
- { '~', "magic_vtable_max",
+ "/* checkcall ']' Inlining/mutation of call to this CV */" },
+ { '~', "magic_vtable_max | PERL_MAGIC_READONLY_ACCEPTABLE",
"/* ext '~' Available for use by extensions */" },
/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/mg_vtable.h b/Master/tlpkg/tlperl/lib/CORE/mg_vtable.h
index f3917137619..c71a988cf76 100644
--- a/Master/tlpkg/tlperl/lib/CORE/mg_vtable.h
+++ b/Master/tlpkg/tlperl/lib/CORE/mg_vtable.h
@@ -14,12 +14,12 @@
#define PERL_MAGIC_sv '\0' /* Special scalar variable */
#define PERL_MAGIC_arylen '#' /* Array length ($#ary) */
-#define PERL_MAGIC_rhash '%' /* extra data for restricted hashes */
-#define PERL_MAGIC_proto '&' /* my sub prototype CV */
+#define PERL_MAGIC_rhash '%' /* Extra data for restricted hashes */
+#define PERL_MAGIC_debugvar '*' /* $DB::single, signal, trace vars */
#define PERL_MAGIC_pos '.' /* pos() lvalue */
-#define PERL_MAGIC_symtab ':' /* extra data for symbol tables */
-#define PERL_MAGIC_backref '<' /* for weak ref data */
-#define PERL_MAGIC_arylen_p '@' /* to move arylen out of XPVAV */
+#define PERL_MAGIC_symtab ':' /* Extra data for symbol tables */
+#define PERL_MAGIC_backref '<' /* For weak ref data */
+#define PERL_MAGIC_arylen_p '@' /* To move arylen out of XPVAV */
#define PERL_MAGIC_bm 'B' /* Boyer-Moore (fast string search) */
#define PERL_MAGIC_overload_table 'c' /* Holds overload table (AMT) on stash */
#define PERL_MAGIC_regdata 'D' /* Regex match position data
@@ -42,7 +42,7 @@
#define PERL_MAGIC_tied 'P' /* Tied array or hash */
#define PERL_MAGIC_tiedelem 'p' /* Tied array or hash element */
#define PERL_MAGIC_tiedscalar 'q' /* Tied scalar or handle */
-#define PERL_MAGIC_qr 'r' /* precompiled qr// regex */
+#define PERL_MAGIC_qr 'r' /* Precompiled qr// regex */
#define PERL_MAGIC_sig 'S' /* %SIG hash */
#define PERL_MAGIC_sigelem 's' /* %SIG hash element */
#define PERL_MAGIC_taint 't' /* Taintedness */
@@ -54,7 +54,8 @@
#define PERL_MAGIC_substr 'x' /* substr() lvalue */
#define PERL_MAGIC_defelem 'y' /* Shadow "foreach" iterator variable /
smart parameter vivification */
-#define PERL_MAGIC_checkcall ']' /* inlining/mutation of call to this CV */
+#define PERL_MAGIC_lvref '\\' /* Lvalue reference constructor */
+#define PERL_MAGIC_checkcall ']' /* Inlining/mutation of call to this CV */
#define PERL_MAGIC_ext '~' /* Available for use by extensions */
enum { /* pass one of these to get_vtbl */
@@ -64,6 +65,7 @@ enum { /* pass one of these to get_vtbl */
want_vtbl_checkcall,
want_vtbl_collxfrm,
want_vtbl_dbline,
+ want_vtbl_debugvar,
want_vtbl_defelem,
want_vtbl_env,
want_vtbl_envelem,
@@ -71,6 +73,7 @@ enum { /* pass one of these to get_vtbl */
want_vtbl_hintselem,
want_vtbl_isa,
want_vtbl_isaelem,
+ want_vtbl_lvref,
want_vtbl_mglob,
want_vtbl_nkeys,
want_vtbl_ovrld,
@@ -98,6 +101,7 @@ EXTCONST char * const PL_magic_vtable_names[magic_vtable_max] = {
"checkcall",
"collxfrm",
"dbline",
+ "debugvar",
"defelem",
"env",
"envelem",
@@ -105,6 +109,7 @@ EXTCONST char * const PL_magic_vtable_names[magic_vtable_max] = {
"hintselem",
"isa",
"isaelem",
+ "lvref",
"mglob",
"nkeys",
"ovrld",
@@ -155,6 +160,7 @@ EXT_MGVTBL PL_magic_vtables[magic_vtable_max] = {
{ 0, 0, 0, 0, 0, 0, 0, 0 },
#endif
{ 0, Perl_magic_setdbline, 0, 0, 0, 0, 0, 0 },
+ { Perl_magic_getdebugvar, Perl_magic_setdebugvar, 0, 0, 0, 0, 0, 0 },
{ Perl_magic_getdefelem, Perl_magic_setdefelem, 0, 0, 0, 0, 0, 0 },
{ 0, Perl_magic_set_all_env, 0, Perl_magic_clear_all_env, 0, 0, 0, 0 },
{ 0, Perl_magic_setenv, 0, Perl_magic_clearenv, 0, 0, 0, 0 },
@@ -162,6 +168,7 @@ EXT_MGVTBL PL_magic_vtables[magic_vtable_max] = {
{ 0, Perl_magic_sethint, 0, Perl_magic_clearhint, 0, 0, 0, 0 },
{ 0, Perl_magic_setisa, 0, Perl_magic_clearisa, 0, 0, 0, 0 },
{ 0, Perl_magic_setisa, 0, 0, 0, 0, 0, 0 },
+ { 0, Perl_magic_setlvref, 0, 0, 0, 0, 0, 0 },
{ 0, Perl_magic_setmglob, 0, 0, 0, 0, 0, 0 },
{ Perl_magic_getnkeys, Perl_magic_setnkeys, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, Perl_magic_freeovrld, 0, 0, 0 },
@@ -197,6 +204,7 @@ EXT_MGVTBL PL_magic_vtables[magic_vtable_max];
#define PL_vtbl_checkcall PL_magic_vtables[want_vtbl_checkcall]
#define PL_vtbl_collxfrm PL_magic_vtables[want_vtbl_collxfrm]
#define PL_vtbl_dbline PL_magic_vtables[want_vtbl_dbline]
+#define PL_vtbl_debugvar PL_magic_vtables[want_vtbl_debugvar]
#define PL_vtbl_defelem PL_magic_vtables[want_vtbl_defelem]
#define PL_vtbl_env PL_magic_vtables[want_vtbl_env]
#define PL_vtbl_envelem PL_magic_vtables[want_vtbl_envelem]
@@ -205,6 +213,7 @@ EXT_MGVTBL PL_magic_vtables[magic_vtable_max];
#define PL_vtbl_hintselem PL_magic_vtables[want_vtbl_hintselem]
#define PL_vtbl_isa PL_magic_vtables[want_vtbl_isa]
#define PL_vtbl_isaelem PL_magic_vtables[want_vtbl_isaelem]
+#define PL_vtbl_lvref PL_magic_vtables[want_vtbl_lvref]
#define PL_vtbl_mglob PL_magic_vtables[want_vtbl_mglob]
#define PL_vtbl_nkeys PL_magic_vtables[want_vtbl_nkeys]
#define PL_vtbl_ovrld PL_magic_vtables[want_vtbl_ovrld]
diff --git a/Master/tlpkg/tlperl/lib/CORE/mydtrace.h b/Master/tlpkg/tlperl/lib/CORE/mydtrace.h
index 5093f466ab2..6e797676fa8 100644
--- a/Master/tlpkg/tlperl/lib/CORE/mydtrace.h
+++ b/Master/tlpkg/tlperl/lib/CORE/mydtrace.h
@@ -91,11 +91,5 @@
#endif
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/nostdio.h b/Master/tlpkg/tlperl/lib/CORE/nostdio.h
index ef8d6526b45..64276aa0606 100644
--- a/Master/tlpkg/tlperl/lib/CORE/nostdio.h
+++ b/Master/tlpkg/tlperl/lib/CORE/nostdio.h
@@ -25,6 +25,8 @@ struct _FILE;
#define FILE struct _FILE
#endif
+#ifndef EBCDIC
+
#define _CANNOT "CANNOT"
#undef clearerr
@@ -125,12 +127,8 @@ struct _FILE;
#define pclose(f) _CANNOT _pclose_
#endif
+#endif /*not define EBCDIC */
+
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/op.h b/Master/tlpkg/tlperl/lib/CORE/op.h
index 9d9dd58d8fa..ed3e9a128e1 100644
--- a/Master/tlpkg/tlperl/lib/CORE/op.h
+++ b/Master/tlpkg/tlperl/lib/CORE/op.h
@@ -24,7 +24,8 @@
* !op_slabbed.
* op_savefree on savestack via SAVEFREEOP
* op_folded Result/remainder of a constant fold operation.
- * op_spare Two spare bits
+ * op_moresib this op is is not the last sibling
+ * op_spare One spare bit
* op_flags Flags common to all operations. See OPf_* below.
* op_private Flags peculiar to a particular operation (BUT,
* by default, set to the number of children until
@@ -35,22 +36,24 @@
#define OPCODE U16
-#ifdef PERL_MAD
-# define MADPROP_IN_BASEOP MADPROP* op_madprop;
+typedef PERL_BITFIELD16 Optype;
+
+/* this field now either points to the next sibling or to the parent,
+ * depending on op_moresib. So rename it from op_sibling to op_sibparent.
+ */
+#ifdef PERL_OP_PARENT
+# define _OP_SIBPARENT_FIELDNAME op_sibparent
#else
-# define MADPROP_IN_BASEOP
+# define _OP_SIBPARENT_FIELDNAME op_sibling
#endif
-typedef PERL_BITFIELD16 Optype;
-
#ifdef BASEOP_DEFINITION
#define BASEOP BASEOP_DEFINITION
#else
#define BASEOP \
OP* op_next; \
- OP* op_sibling; \
+ OP* _OP_SIBPARENT_FIELDNAME;\
OP* (*op_ppaddr)(pTHX); \
- MADPROP_IN_BASEOP \
PADOFFSET op_targ; \
PERL_BITFIELD16 op_type:9; \
PERL_BITFIELD16 op_opt:1; \
@@ -58,7 +61,8 @@ typedef PERL_BITFIELD16 Optype;
PERL_BITFIELD16 op_savefree:1; \
PERL_BITFIELD16 op_static:1; \
PERL_BITFIELD16 op_folded:1; \
- PERL_BITFIELD16 op_spare:2; \
+ PERL_BITFIELD16 op_moresib:1; \
+ PERL_BITFIELD16 op_spare:1; \
U8 op_flags; \
U8 op_private;
#endif
@@ -114,12 +118,12 @@ Deprecated. Use C<GIMME_V> instead.
/* On control verbs, we saw no label */
/* On flipflop, we saw ... instead of .. */
/* On UNOPs, saw bare parens, e.g. eof(). */
- /* On OP_ENTERSUB || OP_NULL, saw a "do". */
+ /* On OP_CHDIR, handle (or bare parens) */
+ /* On OP_NULL, saw a "do". */
/* On OP_EXISTS, treat av as av, not avhv. */
/* On OP_(ENTER|LEAVE)EVAL, don't clear $@ */
/* On pushre, rx is used as part of split, e.g. split " " */
/* On regcomp, "use re 'eval'" was in scope */
- /* On OP_READLINE, was <$filehandle> */
/* On RV2[ACGHS]V, don't create GV--in
defined()*/
/* On OP_DBSTATE, indicates breakpoint
@@ -130,9 +134,10 @@ Deprecated. Use C<GIMME_V> instead.
/* On OP_SMARTMATCH, an implicit smartmatch */
/* On OP_ANONHASH and OP_ANONLIST, create a
reference to the new anon hash or array */
- /* On OP_HELEM and OP_HSLICE, localization will be followed
- by assignment, so do not wipe the target if it is special
- (e.g. a glob or a magic SV) */
+ /* On OP_HELEM, OP_MULTIDEREF and OP_HSLICE,
+ localization will be followed by assignment,
+ so do not wipe the target if it is special
+ (e.g. a glob or a magic SV) */
/* On OP_MATCH, OP_SUBST & OP_TRANS, the
operand of a logical or conditional
that was optimised away, so it should
@@ -144,225 +149,55 @@ Deprecated. Use C<GIMME_V> instead.
*/
/* On OP_PADRANGE, push @_ */
/* On OP_DUMP, has no label */
+ /* On OP_UNSTACK, in a C-style for loop */
+/* There is no room in op_flags for this one, so it has its own bit-
+ field member (op_folded) instead. The flag is only used to tell
+ op_convert_list to set op_folded. */
+#define OPf_FOLDED 1<<16
/* old names; don't use in new code, but don't break them, either */
#define OPf_LIST OPf_WANT_LIST
#define OPf_KNOW OPf_WANT
-#define GIMME \
+#if !defined(PERL_CORE) && !defined(PERL_EXT)
+# define GIMME \
(PL_op->op_flags & OPf_WANT \
? ((PL_op->op_flags & OPf_WANT) == OPf_WANT_LIST \
? G_ARRAY \
: G_SCALAR) \
: dowantarray())
+#endif
-/* Lower bits of op_private often carry the number of arguments, as
- * set by newBINOP, newUNOP and ck_fun */
-
-/* NOTE: OP_NEXTSTATE and OP_DBSTATE (i.e. COPs) carry NATIVE_HINTS
- * in op_private */
-
-/* Private for lvalues */
-#define OPpLVAL_INTRO 128 /* Lvalue must be localized or lvalue sub */
-/* Private for OPs with TARGLEX */
- /* (lower bits may carry MAXARG) */
-#define OPpTARGET_MY 16 /* Target is PADMY. */
+/* NOTE: OPp* flags are now auto-generated and defined in opcode.h,
+ * from data in regen/op_private */
-/* Private for OP_LEAVE, OP_LEAVESUB, OP_LEAVESUBLV and OP_LEAVEWRITE */
-#define OPpREFCOUNTED 64 /* op_targ carries a refcount */
-/* Private for OP_LEAVE and OP_LEAVELOOP */
-#define OPpLVALUE 128 /* Do not copy return value */
+#define OPpTRANS_ALL (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL|OPpTRANS_SQUASH|OPpTRANS_COMPLEMENT|OPpTRANS_GROWS|OPpTRANS_DELETE)
-/* Private for OP_AASSIGN */
-#define OPpASSIGN_COMMON 64 /* Left & right have syms in common. */
-/* Private for OP_SASSIGN */
-#define OPpASSIGN_BACKWARDS 64 /* Left & right switched. */
-#define OPpASSIGN_CV_TO_GV 128 /* Possible optimisation for constants. */
-/* Private for OP_MATCH and OP_SUBST{,CONT} */
-#define OPpRUNTIME 64 /* Pattern coming in on the stack */
+/* Mask for OP_ENTERSUB flags, the absence of which must be propagated
+ in dynamic context */
+#define OPpENTERSUB_LVAL_MASK (OPpLVAL_INTRO|OPpENTERSUB_INARGS)
-/* Private for OP_TRANS */
-#define OPpTRANS_FROM_UTF 1
-#define OPpTRANS_TO_UTF 2
-#define OPpTRANS_IDENTICAL 4 /* right side is same as left */
-#define OPpTRANS_SQUASH 8
- /* 16 is used for OPpTARGET_MY */
-#define OPpTRANS_COMPLEMENT 32
-#define OPpTRANS_GROWS 64
-#define OPpTRANS_DELETE 128
-#define OPpTRANS_ALL (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL|OPpTRANS_SQUASH|OPpTRANS_COMPLEMENT|OPpTRANS_GROWS|OPpTRANS_DELETE)
-/* Private for OP_REPEAT */
-#define OPpREPEAT_DOLIST 64 /* List replication. */
-
-/* Private for OP_RV2GV, OP_RV2SV, OP_AELEM, OP_HELEM, OP_PADSV */
-#define OPpDEREF (32|64) /* autovivify: Want ref to something: */
-#define OPpDEREF_AV 32 /* Want ref to AV. */
-#define OPpDEREF_HV 64 /* Want ref to HV. */
-#define OPpDEREF_SV (32|64) /* Want ref to SV. */
-
-/* OP_ENTERSUB and OP_RV2CV flags
-
-Flags are set on entersub and rv2cv in three phases:
- parser - the parser passes the flag to the op constructor
- check - the check routine called by the op constructor sets the flag
- context - application of scalar/ref/lvalue context applies the flag
-
-In the third stage, an entersub op might turn into an rv2cv op (undef &foo,
-\&foo, lock &foo, exists &foo, defined &foo). The two places where that
-happens (op_lvalue_flags and doref in op.c) need to make sure the flags do
-not conflict. Flags applied in the context phase are only set when there
-is no conversion of op type.
-
- bit entersub flag phase rv2cv flag phase
- --- ------------- ----- ---------- -----
- 1 OPpENTERSUB_INARGS context OPpMAY_RETURN_CONSTANT context
- 2 HINT_STRICT_REFS check HINT_STRICT_REFS check
- 4 OPpENTERSUB_HASTARG check
- 8 OPpENTERSUB_AMPER parser
- 16 OPpENTERSUB_DB check
- 32 OPpDEREF_AV context
- 64 OPpDEREF_HV context
- 128 OPpLVAL_INTRO context OPpENTERSUB_NOPAREN parser
+/* things that can be elements of op_aux */
+typedef union {
+ PADOFFSET pad_offset;
+ SV *sv;
+ IV iv;
+ UV uv;
+} UNOP_AUX_item;
-*/
+#ifdef USE_ITHREADS
+# define UNOP_AUX_item_sv(item) PAD_SVl((item)->pad_offset);
+#else
+# define UNOP_AUX_item_sv(item) ((item)->sv);
+#endif
- /* OP_ENTERSUB only */
-#define OPpENTERSUB_DB 16 /* Debug subroutine. */
-#define OPpENTERSUB_HASTARG 4 /* Called from OP tree. */
-#define OPpENTERSUB_INARGS 1 /* Lval used as arg to a sub. */
-/* used by OPpDEREF (32|64) */
-/* used by HINT_STRICT_REFS 2 */
- /* Mask for OP_ENTERSUB flags, the absence of which must be propagated
- in dynamic context */
-#define OPpENTERSUB_LVAL_MASK (OPpLVAL_INTRO|OPpENTERSUB_INARGS)
- /* OP_RV2CV only */
-#define OPpENTERSUB_AMPER 8 /* Used & form to call. */
-#define OPpENTERSUB_NOPAREN 128 /* bare sub call (without parens) */
-#define OPpMAY_RETURN_CONSTANT 1 /* If a constant sub, return the constant */
-
- /* OP_GV only */
-#define OPpEARLY_CV 32 /* foo() called before sub foo was parsed */
- /* OP_?ELEM only */
-#define OPpLVAL_DEFER 16 /* Defer creation of array/hash elem */
- /* OP_RV2[AH]V OP_[AH]SLICE */
-#define OPpSLICEWARNING 4 /* warn about @hash{$scalar} */
- /* OP_RV2[SAH]V, OP_GVSV, OP_ENTERITER only */
-#define OPpOUR_INTRO 16 /* Variable was in an our() */
- /* OP_RV2[AGH]V, OP_PAD[AH]V, OP_[AH]ELEM, OP_[AH]SLICE OP_AV2ARYLEN,
- OP_R?KEYS, OP_SUBSTR, OP_POS, OP_VEC */
-#define OPpMAYBE_LVSUB 8 /* We might be an lvalue to return */
- /* OP_RV2HV and OP_PADHV */
-#define OPpTRUEBOOL 32 /* %hash in (%hash || $foo) in
- void context */
-#define OPpMAYBE_TRUEBOOL 64 /* %hash in (%hash || $foo) where
- cx is not known till run time */
-
- /* OP_SUBSTR only */
-#define OPpSUBSTR_REPL_FIRST 16 /* 1st arg is replacement string */
-
- /* OP_PADSV only */
-#define OPpPAD_STATE 16 /* is a "state" pad */
- /* for OP_RV2?V, lower bits carry hints (currently only HINT_STRICT_REFS) */
-
- /* OP_PADRANGE only */
- /* bit 7 is OPpLVAL_INTRO */
-#define OPpPADRANGE_COUNTMASK 127 /* bits 6..0 hold target range, */
-#define OPpPADRANGE_COUNTSHIFT 7 /* 7 bits in total */
-
- /* OP_RV2GV only */
-#define OPpDONT_INIT_GV 4 /* Call gv_fetchpv with GV_NOINIT */
-/* (Therefore will return whatever is currently in the symbol table, not
- guaranteed to be a PVGV) */
-#define OPpALLOW_FAKE 16 /* OK to return fake glob */
-
-/* Private for OP_ENTERITER and OP_ITER */
-#define OPpITER_REVERSED 4 /* for (reverse ...) */
-#define OPpITER_DEF 8 /* for $_ or for my $_ */
-
-/* Private for OP_CONST */
-#define OPpCONST_NOVER 2 /* no 6; */
-#define OPpCONST_SHORTCIRCUIT 4 /* eg the constant 5 in (5 || foo) */
-#define OPpCONST_STRICT 8 /* bareword subject to strict 'subs' */
-#define OPpCONST_ENTERED 16 /* Has been entered as symbol. */
-#define OPpCONST_BARE 64 /* Was a bare word (filehandle?). */
-
-/* Private for OP_FLIP/FLOP */
-#define OPpFLIP_LINENUM 64 /* Range arg potentially a line num. */
-
-/* Private for OP_LIST */
-#define OPpLIST_GUESSED 64 /* Guessed that pushmark was needed. */
-
-/* Private for OP_DELETE */
-#define OPpSLICE 64 /* Operating on a list of keys */
-/* Also OPpLVAL_INTRO (128) */
-
-/* Private for OP_EXISTS */
-#define OPpEXISTS_SUB 64 /* Checking for &sub, not {} or []. */
-
-/* Private for OP_SORT */
-#define OPpSORT_NUMERIC 1 /* Optimized away { $a <=> $b } */
-#define OPpSORT_INTEGER 2 /* Ditto while under "use integer" */
-#define OPpSORT_REVERSE 4 /* Reversed sort */
-#define OPpSORT_INPLACE 8 /* sort in-place; eg @a = sort @a */
-#define OPpSORT_DESCEND 16 /* Descending sort */
-#define OPpSORT_QSORT 32 /* Use quicksort (not mergesort) */
-#define OPpSORT_STABLE 64 /* Use a stable algorithm */
-
-/* Private for OP_REVERSE */
-#define OPpREVERSE_INPLACE 8 /* reverse in-place (@a = reverse @a) */
-
-/* Private for OP_OPEN and OP_BACKTICK */
-#define OPpOPEN_IN_RAW 16 /* binmode(F,":raw") on input fh */
-#define OPpOPEN_IN_CRLF 32 /* binmode(F,":crlf") on input fh */
-#define OPpOPEN_OUT_RAW 64 /* binmode(F,":raw") on output fh */
-#define OPpOPEN_OUT_CRLF 128 /* binmode(F,":crlf") on output fh */
-
-/* Private for COPs */
-#define OPpHUSH_VMSISH 32 /* hush DCL exit msg vmsish mode*/
-/* Note: Used for NATIVE_HINTS (shifted from the values in PL_hints),
- currently defined by vms/vmsish.h:
- 64
- 128
- */
-/* Private for OP_FTXXX */
-#define OPpFT_ACCESS 2 /* use filetest 'access' */
-#define OPpFT_STACKED 4 /* stacked filetest, as "-f" in "-f -x $f" */
-#define OPpFT_STACKING 8 /* stacking filetest, as "-x" in "-f -x $f" */
-#define OPpFT_AFTER_t 16 /* previous op was -t */
-
-/* Private for OP_(MAP|GREP)(WHILE|START) */
-#define OPpGREP_LEX 2 /* iterate over lexical $_ */
-
-/* Private for OP_ENTEREVAL */
-#define OPpEVAL_HAS_HH 2 /* Does it have a copy of %^H */
-#define OPpEVAL_UNICODE 4
-#define OPpEVAL_BYTES 8
-#define OPpEVAL_COPHH 16 /* Construct %^H from cop hints */
-#define OPpEVAL_RE_REPARSING 32 /* eval_sv(..., G_RE_REPARSING) */
-
-/* Private for OP_CALLER, OP_WANTARRAY and OP_RUNCV */
-#define OPpOFFBYONE 128 /* Treat caller(1) as caller(2) */
-
-/* Private for OP_COREARGS */
-/* These must not conflict with OPpDONT_INIT_GV or OPpALLOW_FAKE.
- See pp.c:S_rv2gv. */
-#define OPpCOREARGS_DEREF1 1 /* Arg 1 is a handle constructor */
-#define OPpCOREARGS_DEREF2 2 /* Arg 2 is a handle constructor */
-#define OPpCOREARGS_SCALARMOD 64 /* \$ rather than \[$@%*] */
-#define OPpCOREARGS_PUSHMARK 128 /* Call pp_pushmark */
-
-/* Private for OP_(LAST|REDO|NEXT|GOTO|DUMP) */
-#define OPpPV_IS_UTF8 128 /* label is in UTF8 */
-
-/* Private for OP_SPLIT */
-#define OPpSPLIT_IMPLIM 128 /* implicit limit */
struct op {
BASEOP
@@ -373,6 +208,12 @@ struct unop {
OP * op_first;
};
+struct unop_aux {
+ BASEOP
+ OP *op_first;
+ UNOP_AUX_item *op_aux;
+};
+
struct binop {
BASEOP
OP * op_first;
@@ -391,6 +232,22 @@ struct listop {
OP * op_last;
};
+struct methop {
+ BASEOP
+ union {
+ /* op_u.op_first *must* be aligned the same as the op_first
+ * field of the other op types, and op_u.op_meth_sv *must*
+ * be aligned with op_sv */
+ OP* op_first; /* optree for method name */
+ SV* op_meth_sv; /* static method name */
+ } op_u;
+#ifdef USE_ITHREADS
+ PADOFFSET op_rclass_targ; /* pad index for redirect class */
+#else
+ SV* op_rclass_sv; /* static redirect class $o->A::meth() */
+#endif
+};
+
struct pmop {
BASEOP
OP * op_first;
@@ -441,52 +298,84 @@ struct pmop {
#define PM_SETRE(o,r) ((o)->op_pmregexp = (r))
#endif
-/* Leave some space, so future bit allocations can go either in the shared or
- * unshared area without affecting binary compatibility */
-#define PMf_BASE_SHIFT (_RXf_PMf_SHIFT_NEXT+6)
+/* Currently these PMf flags occupy a single 32-bit word. Not all bits are
+ * currently used. The lower bits are shared with their corresponding RXf flag
+ * bits, up to but not including _RXf_PMf_SHIFT_NEXT. The unused bits
+ * immediately follow; finally the used Pmf-only (unshared) bits, so that the
+ * highest bit in the word is used. This gathers all the unused bits as a pool
+ * in the middle, like so: 11111111111111110000001111111111
+ * where the '1's represent used bits, and the '0's unused. This design allows
+ * us to allocate off one end of the pool if we need to add a shared bit, and
+ * off the other end if we need a non-shared bit, without disturbing the other
+ * bits. This maximizes the likelihood of being able to change things without
+ * breaking binary compatibility.
+ *
+ * To add shared bits, do so in op_reg_common.h. This should change
+ * _RXf_PMf_SHIFT_NEXT so that things won't compile. Then come to regexp.h and
+ * op.h and adjust the constant adders in the definitions of PMf_BASE_SHIFT and
+ * Pmf_BASE_SHIFT down by the number of shared bits you added. That's it.
+ * Things should be binary compatible. But if either of these gets to having
+ * to subtract rather than add, leave at 0 and adjust all the entries below
+ * that are in terms of this according. But if the first one of those is
+ * already PMf_BASE_SHIFT+0, there are no bits left, and a redesign is in
+ * order.
+ *
+ * To remove unshared bits, just delete its entry. If you're where breaking
+ * binary compatibility is ok to do, you might want to adjust things to move
+ * the newly opened space so that it gets absorbed into the common pool.
+ *
+ * To add unshared bits, first use up any gaps in the middle. Otherwise,
+ * allocate off the low end until you get to PMf_BASE_SHIFT+0. If that isn't
+ * enough, move PMf_BASE_SHIFT down (if possible) and add the new bit at the
+ * other end instead; this preserves binary compatibility. */
+#define PMf_BASE_SHIFT (_RXf_PMf_SHIFT_NEXT+2)
/* 'use re "taint"' in scope: taint $1 etc. if target tainted */
-#define PMf_RETAINT (1<<(PMf_BASE_SHIFT+0))
+#define PMf_RETAINT (1U<<(PMf_BASE_SHIFT+5))
/* match successfully only once per reset, with related flag RXf_USED in
* re->extflags holding state. This is used only for ?? matches, and only on
* OP_MATCH and OP_QR */
-#define PMf_ONCE (1<<(PMf_BASE_SHIFT+1))
+#define PMf_ONCE (1U<<(PMf_BASE_SHIFT+6))
/* PMf_ONCE, i.e. ?pat?, has matched successfully. Not used under threading. */
-#define PMf_USED (1<<(PMf_BASE_SHIFT+3))
+#define PMf_USED (1U<<(PMf_BASE_SHIFT+7))
/* subst replacement is constant */
-#define PMf_CONST (1<<(PMf_BASE_SHIFT+4))
+#define PMf_CONST (1U<<(PMf_BASE_SHIFT+8))
/* keep 1st runtime pattern forever */
-#define PMf_KEEP (1<<(PMf_BASE_SHIFT+5))
+#define PMf_KEEP (1U<<(PMf_BASE_SHIFT+9))
-#define PMf_GLOBAL (1<<(PMf_BASE_SHIFT+6)) /* pattern had a g modifier */
+#define PMf_GLOBAL (1U<<(PMf_BASE_SHIFT+10)) /* pattern had a g modifier */
/* don't reset pos() if //g fails */
-#define PMf_CONTINUE (1<<(PMf_BASE_SHIFT+7))
+#define PMf_CONTINUE (1U<<(PMf_BASE_SHIFT+11))
/* evaluating replacement as expr */
-#define PMf_EVAL (1<<(PMf_BASE_SHIFT+8))
+#define PMf_EVAL (1U<<(PMf_BASE_SHIFT+12))
/* Return substituted string instead of modifying it. */
-#define PMf_NONDESTRUCT (1<<(PMf_BASE_SHIFT+9))
+#define PMf_NONDESTRUCT (1U<<(PMf_BASE_SHIFT+13))
/* the pattern has a CV attached (currently only under qr/...(?{}).../) */
-#define PMf_HAS_CV (1<<(PMf_BASE_SHIFT+10))
+#define PMf_HAS_CV (1U<<(PMf_BASE_SHIFT+14))
/* op_code_list is private; don't free it etc. It may well point to
* code within another sub, with different pad etc */
-#define PMf_CODELIST_PRIVATE (1<<(PMf_BASE_SHIFT+11))
+#define PMf_CODELIST_PRIVATE (1U<<(PMf_BASE_SHIFT+15))
/* the PMOP is a QR (we should be able to detect that from the op type,
* but the regex compilation API passes just the pm flags, not the op
* itself */
-#define PMf_IS_QR (1<<(PMf_BASE_SHIFT+12))
-#define PMf_USE_RE_EVAL (1<<(PMf_BASE_SHIFT+13)) /* use re'eval' in scope */
-
-#if PMf_BASE_SHIFT+13 > 31
+#define PMf_IS_QR (1U<<(PMf_BASE_SHIFT+16))
+#define PMf_USE_RE_EVAL (1U<<(PMf_BASE_SHIFT+17)) /* use re'eval' in scope */
+
+/* See comments at the beginning of these defines about adding bits. The
+ * highest bit position should be used, so that if PMf_BASE_SHIFT gets
+ * increased, the #error below will be triggered so that you will be reminded
+ * to adjust things at the other end to keep the bit positions unchanged */
+#if PMf_BASE_SHIFT+17 > 31
# error Too many PMf_ bits used. See above and regnodes.h for any spare in middle
#endif
@@ -539,18 +428,21 @@ struct loop {
OP * op_lastop;
};
-#define cUNOPx(o) ((UNOP*)o)
-#define cBINOPx(o) ((BINOP*)o)
-#define cLISTOPx(o) ((LISTOP*)o)
-#define cLOGOPx(o) ((LOGOP*)o)
-#define cPMOPx(o) ((PMOP*)o)
-#define cSVOPx(o) ((SVOP*)o)
-#define cPADOPx(o) ((PADOP*)o)
-#define cPVOPx(o) ((PVOP*)o)
-#define cCOPx(o) ((COP*)o)
-#define cLOOPx(o) ((LOOP*)o)
+#define cUNOPx(o) ((UNOP*)(o))
+#define cUNOP_AUXx(o) ((UNOP_AUX*)(o))
+#define cBINOPx(o) ((BINOP*)(o))
+#define cLISTOPx(o) ((LISTOP*)(o))
+#define cLOGOPx(o) ((LOGOP*)(o))
+#define cPMOPx(o) ((PMOP*)(o))
+#define cSVOPx(o) ((SVOP*)(o))
+#define cPADOPx(o) ((PADOP*)(o))
+#define cPVOPx(o) ((PVOP*)(o))
+#define cCOPx(o) ((COP*)(o))
+#define cLOOPx(o) ((LOOP*)(o))
+#define cMETHOPx(o) ((METHOP*)(o))
#define cUNOP cUNOPx(PL_op)
+#define cUNOP_AUX cUNOP_AUXx(PL_op)
#define cBINOP cBINOPx(PL_op)
#define cLISTOP cLISTOPx(PL_op)
#define cLOGOP cLOGOPx(PL_op)
@@ -562,6 +454,7 @@ struct loop {
#define cLOOP cLOOPx(PL_op)
#define cUNOPo cUNOPx(o)
+#define cUNOP_AUXo cUNOP_AUXx(o)
#define cBINOPo cBINOPx(o)
#define cLISTOPo cLISTOPx(o)
#define cLOGOPo cLOGOPx(o)
@@ -573,6 +466,7 @@ struct loop {
#define cLOOPo cLOOPx(o)
#define kUNOP cUNOPx(kid)
+#define kUNOP_AUX cUNOP_AUXx(kid)
#define kBINOP cBINOPx(kid)
#define kLISTOP cLISTOPx(kid)
#define kLOGOP cLOGOPx(kid)
@@ -586,22 +480,29 @@ struct loop {
#ifdef USE_ITHREADS
# define cGVOPx_gv(o) ((GV*)PAD_SVl(cPADOPx(o)->op_padix))
-# define IS_PADGV(v) (v && SvTYPE(v) == SVt_PVGV && isGV_with_GP(v) \
- && GvIN_PAD(v))
-# define IS_PADCONST(v) \
+# ifndef PERL_CORE
+# define IS_PADGV(v) (v && isGV(v))
+# define IS_PADCONST(v) \
(v && (SvREADONLY(v) || (SvIsCOW(v) && !SvLEN(v))))
+# endif
# define cSVOPx_sv(v) (cSVOPx(v)->op_sv \
? cSVOPx(v)->op_sv : PAD_SVl((v)->op_targ))
# define cSVOPx_svp(v) (cSVOPx(v)->op_sv \
? &cSVOPx(v)->op_sv : &PAD_SVl((v)->op_targ))
+# define cMETHOPx_rclass(v) PAD_SVl(cMETHOPx(v)->op_rclass_targ)
#else
# define cGVOPx_gv(o) ((GV*)cSVOPx(o)->op_sv)
-# define IS_PADGV(v) FALSE
-# define IS_PADCONST(v) FALSE
+# ifndef PERL_CORE
+# define IS_PADGV(v) FALSE
+# define IS_PADCONST(v) FALSE
+# endif
# define cSVOPx_sv(v) (cSVOPx(v)->op_sv)
# define cSVOPx_svp(v) (&cSVOPx(v)->op_sv)
+# define cMETHOPx_rclass(v) (cMETHOPx(v)->op_rclass_sv)
#endif
+# define cMETHOPx_meth(v) cSVOPx_sv(v)
+
#define cGVOP_gv cGVOPx_gv(PL_op)
#define cGVOPo_gv cGVOPx_gv(o)
#define kGVOP_gv cGVOPx_gv(kid)
@@ -623,7 +524,7 @@ struct loop {
#define OA_DANGEROUS 64
#define OA_DEFGV 128
-/* The next 4 bits encode op class information */
+/* The next 4 bits (8..11) encode op class information */
#define OCSHIFT 8
#define OA_CLASS_MASK (15 << OCSHIFT)
@@ -642,10 +543,13 @@ struct loop {
#define OA_BASEOP_OR_UNOP (11 << OCSHIFT)
#define OA_FILESTATOP (12 << OCSHIFT)
#define OA_LOOPEXOP (13 << OCSHIFT)
+#define OA_METHOP (14 << OCSHIFT)
+#define OA_UNOP_AUX (15 << OCSHIFT)
+/* Each remaining nybble of PL_opargs (i.e. bits 12..15, 16..19 etc)
+ * encode the type for each arg */
#define OASHIFT 12
-/* Remaining nybbles of PL_opargs */
#define OA_SCALAR 1
#define OA_LIST 2
#define OA_AVREF 3
@@ -693,7 +597,10 @@ struct loop {
/* flags used by Perl_load_module() */
#define PERL_LOADMOD_DENY 0x1 /* no Module */
#define PERL_LOADMOD_NOIMPORT 0x2 /* use Module () */
-#define PERL_LOADMOD_IMPORT_OPS 0x4 /* use Module (...) */
+#define PERL_LOADMOD_IMPORT_OPS 0x4 /* import arguments
+ are passed as a sin-
+ gle op tree, not a
+ list of SVs */
#if defined(PERL_IN_PERLY_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_TOKE_C)
#define ref(o, type) doref(o, type, TRUE)
@@ -884,6 +791,11 @@ preprocessing token; the type of I<arg> depends on I<which>.
#define RV2CVOPCV_MARK_EARLY 0x00000001
#define RV2CVOPCV_RETURN_NAME_GV 0x00000002
+#define RV2CVOPCV_RETURN_STUB 0x00000004
+#ifdef PERL_CORE /* behaviour of this flag is subject to change: */
+# define RV2CVOPCV_MAYBE_NAME_GV 0x00000008
+#endif
+#define RV2CVOPCV_FLAG_MASK 0x0000000f /* all of the above */
#define op_lvalue(op,t) Perl_op_lvalue_flags(aTHX_ op,t,0)
@@ -1005,7 +917,7 @@ For custom ops the type is returned from the registration, and it is up
to the registree to ensure it is accurate. The value returned will be
one of the OA_* constants from op.h.
-=for apidoc Am|bool|OP_TYPE_IS|OP *o, Optype type
+=for apidoc Am|bool|OP_TYPE_IS|OP *o|Optype type
Returns true if the given OP is not a NULL pointer
and if it is of the given type.
@@ -1013,7 +925,7 @@ The negation of this macro, C<OP_TYPE_ISNT> is also available
as well as C<OP_TYPE_IS_NN> and C<OP_TYPE_ISNT_NN> which elide
the NULL pointer check.
-=for apidoc Am|bool|OP_TYPE_IS_OR_WAS|OP *o, Optype type
+=for apidoc Am|bool|OP_TYPE_IS_OR_WAS|OP *o|Optype type
Returns true if the given OP is not a NULL pointer and
if it is of the given type or used to be before being
replaced by an OP of type OP_NULL.
@@ -1023,6 +935,27 @@ is also available as well as C<OP_TYPE_IS_OR_WAS_NN>
and C<OP_TYPE_ISNT_AND_WASNT_NN> which elide
the NULL pointer check.
+=for apidoc Am|bool|OpHAS_SIBLING|OP *o
+Returns true if o has a sibling
+
+=for apidoc Am|OP*|OpSIBLING|OP *o
+Returns the sibling of o, or NULL if there is no sibling
+
+=for apidoc Am|void|OpMORESIB_set|OP *o|OP *sib
+Sets the sibling of o to the non-zero value sib. See also C<OpLASTSIB_set>
+and C<OpMAYBESIB_set>. For a higher-level interface, see
+C<op_sibling_splice>.
+
+=for apidoc Am|void|OpLASTSIB_set|OP *o|OP *parent
+Marks o as having no further siblings. On C<PERL_OP_PARENT> builds, marks
+o as having the specified parent. See also C<OpMORESIB_set> and
+C<OpMAYBESIB_set>. For a higher-level interface, see
+C<op_sibling_splice>.
+
+=for apidoc Am|void|OpMAYBESIB_set|OP *o|OP *sib|OP *parent
+Conditionally does C<OpMORESIB_set> or C<OpLASTSIB_set> depending on whether
+sib is non-null. For a higher-level interface, see C<op_sibling_splice>.
+
=cut
*/
@@ -1059,105 +992,32 @@ the NULL pointer check.
#define OP_TYPE_ISNT_AND_WASNT(o, type) \
( (o) && OP_TYPE_ISNT_AND_WASNT_NN(o, type) )
-#define newATTRSUB(f, o, p, a, b) Perl_newATTRSUB_x(aTHX_ f, o, p, a, b, FALSE)
-#define newSUB(f, o, p, b) newATTRSUB((f), (o), (p), NULL, (b))
-#ifdef PERL_MAD
-# define MAD_NULL 1
-# define MAD_PV 2
-# define MAD_OP 3
-# define MAD_SV 4
-
-struct madprop {
- MADPROP* mad_next;
- void *mad_val;
- U32 mad_vlen;
-/* short mad_count; */
- char mad_key;
- char mad_type;
-};
+#ifdef PERL_OP_PARENT
+# define OpHAS_SIBLING(o) (cBOOL((o)->op_moresib))
+# define OpSIBLING(o) (0 + (o)->op_moresib ? (o)->op_sibparent : NULL)
+# define OpMORESIB_set(o, sib) ((o)->op_moresib = 1, (o)->op_sibparent = (sib))
+# define OpLASTSIB_set(o, parent) \
+ ((o)->op_moresib = 0, (o)->op_sibparent = (parent))
+# define OpMAYBESIB_set(o, sib, parent) \
+ ((o)->op_sibparent = ((o)->op_moresib = cBOOL(sib)) ? (sib) : (parent))
+#else
+# define OpHAS_SIBLING(o) (cBOOL((o)->op_sibling))
+# define OpSIBLING(o) (0 + (o)->op_sibling)
+# define OpMORESIB_set(o, sib) ((o)->op_moresib = 1, (o)->op_sibling = (sib))
+# define OpLASTSIB_set(o, parent) \
+ ((o)->op_moresib = 0, (o)->op_sibling = NULL)
+# define OpMAYBESIB_set(o, sib, parent) \
+ ((o)->op_moresib = cBOOL(sib), (o)->op_sibling = (sib))
+#endif
-struct token {
- I32 tk_type;
- YYSTYPE tk_lval;
- MADPROP* tk_mad;
-};
+#if !defined(PERL_CORE) && !defined(PERL_EXT)
+/* for backwards compatibility only */
+# define OP_SIBLING(o) OpSIBLING(o)
#endif
-/*
- * Values that can be held by mad_key :
- * ^ unfilled head spot
- * , literal ,
- * ; literal ; (blank if implicit ; at end of block)
- * : literal : from ?: or attr list
- * + unary +
- * ? literal ? from ?:
- * ( literal (
- * ) literal )
- * [ literal [
- * ] literal ]
- * { literal {
- * } literal }
- * @ literal @ sigil
- * $ literal $ sigil
- * * literal * sigil
- * ! use is source filtered
- * & & or sub
- * # whitespace/comment following ; or }
- * # $# sigil
- * 1 1st ; from for(;;)
- * 1 retired protasis
- * 2 2nd ; from for(;;)
- * 2 retired apodosis
- * 3 C-style for list
- * a sub or var attributes
- * a non-method arrow operator
- * A method arrow operator
- * A use import args
- * b format block
- * B retired stub block
- * C constant conditional op
- * d declarator
- * D do block
- * e unreached "else" (see C)
- * e expression producing E
- * E tr/E/R/, /E/
- * f folded constant op
- * F peg op for format
- * g op was forced to be a word
- * i if/unless modifier
- * I if/elsif/unless statement
- * k local declarator
- * K retired kid op
- * l last index of array ($#foo)
- * L label
- * m modifier on regex
- * n sub or format name
- * o current operator/declarator name
- * o else/continue
- * O generic optimized op
- * p peg to hold extra whitespace at statement level
- * P peg op for package declaration
- * q opening quote
- * = quoted material
- * Q closing quote
- * Q optimized qw//
- * r expression producing R
- * R tr/E/R/ s/E/R/
- * s sub signature
- * S use import stub (no import)
- * S retired sort block
- * t unreached "then" (see C)
- * U use import op
- * v private sv of for loop
- * V use version
- * w while/until modifier
- * W while/for statement
- * x optimized qw
- * X random thing
- * _ whitespace/comments preceding anything else
- * ~ =~ operator
- */
+#define newATTRSUB(f, o, p, a, b) Perl_newATTRSUB_x(aTHX_ f, o, p, a, b, FALSE)
+#define newSUB(f, o, p, b) newATTRSUB((f), (o), (p), NULL, (b))
/*
=head1 Hook manipulation
@@ -1175,12 +1035,47 @@ struct token {
# define OP_CHECK_MUTEX_TERM NOOP
#endif
+
+/* Stuff for OP_MULTDEREF/pp_multideref. */
+
+/* actions */
+
+/* Load another word of actions/flag bits. Must be 0 */
+#define MDEREF_reload 0
+
+#define MDEREF_AV_pop_rv2av_aelem 1
+#define MDEREF_AV_gvsv_vivify_rv2av_aelem 2
+#define MDEREF_AV_padsv_vivify_rv2av_aelem 3
+#define MDEREF_AV_vivify_rv2av_aelem 4
+#define MDEREF_AV_padav_aelem 5
+#define MDEREF_AV_gvav_aelem 6
+
+#define MDEREF_HV_pop_rv2hv_helem 8
+#define MDEREF_HV_gvsv_vivify_rv2hv_helem 9
+#define MDEREF_HV_padsv_vivify_rv2hv_helem 10
+#define MDEREF_HV_vivify_rv2hv_helem 11
+#define MDEREF_HV_padhv_helem 12
+#define MDEREF_HV_gvhv_helem 13
+
+#define MDEREF_ACTION_MASK 0xf
+
+/* key / index type */
+
+#define MDEREF_INDEX_none 0x00 /* run external ops to generate index */
+#define MDEREF_INDEX_const 0x10 /* index is const PV/UV */
+#define MDEREF_INDEX_padsv 0x20 /* index is lexical var */
+#define MDEREF_INDEX_gvsv 0x30 /* index is GV */
+
+#define MDEREF_INDEX_MASK 0x30
+
+/* bit flags */
+
+#define MDEREF_FLAG_last 0x40 /* the last [ah]elem; PL_op flags apply */
+
+#define MDEREF_MASK 0x7F
+#define MDEREF_SHIFT 7
+
+
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/op_reg_common.h b/Master/tlpkg/tlperl/lib/CORE/op_reg_common.h
index 9dcdaaec63b..6b5841eb203 100644
--- a/Master/tlpkg/tlperl/lib/CORE/op_reg_common.h
+++ b/Master/tlpkg/tlperl/lib/CORE/op_reg_common.h
@@ -10,7 +10,7 @@
*/
/* These defines are used in both op.h and regexp.h The definitions use the
- * shift form so that ext/B/defsubs_h.PL will pick them up.
+ * shift form so that ext/B/Makefile.PL will pick them up.
*
* Data structures used in the two headers have common fields, and in fact one
* is copied onto the other. This makes it easy to keep them in sync */
@@ -23,16 +23,19 @@
#define RXf_PMf_STD_PMMOD_SHIFT 0
-/* The bits need to be ordered so that the msix are contiguous starting at bit
+/* The bits need to be ordered so that the msixn are contiguous starting at bit
* RXf_PMf_STD_PMMOD_SHIFT, followed by the p. See STD_PAT_MODS and
* INT_PAT_MODS in regexp.h for the reason contiguity is needed */
/* Make sure to update lib/re.pm when changing these! */
/* Make sure you keep the pure PMf_ versions below in sync */
-#define RXf_PMf_MULTILINE (1 << (RXf_PMf_STD_PMMOD_SHIFT+0)) /* /m */
-#define RXf_PMf_SINGLELINE (1 << (RXf_PMf_STD_PMMOD_SHIFT+1)) /* /s */
-#define RXf_PMf_FOLD (1 << (RXf_PMf_STD_PMMOD_SHIFT+2)) /* /i */
-#define RXf_PMf_EXTENDED (1 << (RXf_PMf_STD_PMMOD_SHIFT+3)) /* /x */
-#define RXf_PMf_KEEPCOPY (1 << (RXf_PMf_STD_PMMOD_SHIFT+4)) /* /p */
+#define RXf_PMf_MULTILINE (1U << (RXf_PMf_STD_PMMOD_SHIFT+0)) /* /m */
+#define RXf_PMf_SINGLELINE (1U << (RXf_PMf_STD_PMMOD_SHIFT+1)) /* /s */
+#define RXf_PMf_FOLD (1U << (RXf_PMf_STD_PMMOD_SHIFT+2)) /* /i */
+#define RXf_PMf_EXTENDED (1U << (RXf_PMf_STD_PMMOD_SHIFT+3)) /* /x */
+#define RXf_PMf_EXTENDED_MORE (1U << (RXf_PMf_STD_PMMOD_SHIFT+4)) /* /xx */
+#define RXf_PMf_NOCAPTURE (1U << (RXf_PMf_STD_PMMOD_SHIFT+5)) /* /n */
+
+#define RXf_PMf_KEEPCOPY (1U << (RXf_PMf_STD_PMMOD_SHIFT+6)) /* /p */
/* The character set for the regex is stored in a field of more than one bit
* using an enum, for reasons of compactness and to ensure that the options are
@@ -48,8 +51,8 @@ typedef enum {
REGEX_ASCII_MORE_RESTRICTED_CHARSET
} regex_charset;
-#define _RXf_PMf_CHARSET_SHIFT ((RXf_PMf_STD_PMMOD_SHIFT)+5)
-#define RXf_PMf_CHARSET (7 << (_RXf_PMf_CHARSET_SHIFT)) /* 3 bits */
+#define _RXf_PMf_CHARSET_SHIFT ((RXf_PMf_STD_PMMOD_SHIFT)+7)
+#define RXf_PMf_CHARSET (7U << (_RXf_PMf_CHARSET_SHIFT)) /* 3 bits */
/* Manually decorate these functions here with gcc-style attributes just to
* avoid making the regex_charset typedef global, which it would need to be for
@@ -80,38 +83,51 @@ get_regex_charset(const U32 flags)
return (regex_charset) ((flags & RXf_PMf_CHARSET) >> _RXf_PMf_CHARSET_SHIFT);
}
-#define _RXf_PMf_SHIFT_COMPILETIME (RXf_PMf_STD_PMMOD_SHIFT+8)
+#define RXf_PMf_STRICT (1U<<(RXf_PMf_STD_PMMOD_SHIFT+10))
+
+#define _RXf_PMf_SHIFT_COMPILETIME (RXf_PMf_STD_PMMOD_SHIFT+11)
+
/*
Set in Perl_pmruntime if op_flags & OPf_SPECIAL, i.e. split. Will
be used by regex engines to check whether they should set
RXf_SKIPWHITE
*/
-#define RXf_PMf_SPLIT (1<<(RXf_PMf_STD_PMMOD_SHIFT+8))
+#define RXf_PMf_SPLIT (1U<<(RXf_PMf_STD_PMMOD_SHIFT+11))
/* Next available bit after the above. Name begins with '_' so won't be
* exported by B */
-#define _RXf_PMf_SHIFT_NEXT (RXf_PMf_STD_PMMOD_SHIFT+9)
+#define _RXf_PMf_SHIFT_NEXT (RXf_PMf_STD_PMMOD_SHIFT+12)
/* Mask of the above bits. These need to be transferred from op_pmflags to
* re->extflags during compilation */
-#define RXf_PMf_COMPILETIME (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_FOLD|RXf_PMf_EXTENDED|RXf_PMf_KEEPCOPY|RXf_PMf_CHARSET)
-#define RXf_PMf_FLAGCOPYMASK (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_FOLD|RXf_PMf_EXTENDED|RXf_PMf_KEEPCOPY|RXf_PMf_CHARSET|RXf_PMf_SPLIT)
-
-#if RXf_PMf_COMPILETIME > 255
-# error RXf_PMf_COMPILETIME wont fit in U8 flags field of eval node
+#define RXf_PMf_COMPILETIME (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_FOLD|RXf_PMf_EXTENDED|RXf_PMf_EXTENDED_MORE|RXf_PMf_KEEPCOPY|RXf_PMf_NOCAPTURE|RXf_PMf_CHARSET|RXf_PMf_STRICT)
+#define RXf_PMf_FLAGCOPYMASK (RXf_PMf_COMPILETIME|RXf_PMf_SPLIT)
+
+#if 0 /* Temporary to get Jenkins happy again */
+See thread starting at http://nntp.perl.org/group/perl.perl5.porters/220710
+ /* Exclude win32 because it can't cope with I32_MAX definition */
+#ifndef WIN32
+# if RXf_PMf_COMPILETIME > I32_MAX
+# error RXf_PMf_COMPILETIME wont fit in arg2 field of eval node
+# endif
+#endif
#endif
-/* These copies need to be numerical or defsubs_h.PL won't know about them. */
-#define PMf_MULTILINE 1<<0
-#define PMf_SINGLELINE 1<<1
-#define PMf_FOLD 1<<2
-#define PMf_EXTENDED 1<<3
-#define PMf_KEEPCOPY 1<<4
-#define PMf_CHARSET 7<<5
-#define PMf_SPLIT 1<<8
-
-#if PMf_MULTILINE != RXf_PMf_MULTILINE || PMf_SINGLELINE != RXf_PMf_SINGLELINE || PMf_FOLD != RXf_PMf_FOLD || PMf_EXTENDED != RXf_PMf_EXTENDED || PMf_KEEPCOPY != RXf_PMf_KEEPCOPY || PMf_SPLIT != RXf_PMf_SPLIT || PMf_CHARSET != RXf_PMf_CHARSET
+/* These copies need to be numerical or ext/B/Makefile.PL won't think they are
+ * constants */
+#define PMf_MULTILINE (1U<<0)
+#define PMf_SINGLELINE (1U<<1)
+#define PMf_FOLD (1U<<2)
+#define PMf_EXTENDED (1U<<3)
+#define PMf_EXTENDED_MORE (1U<<4)
+#define PMf_NOCAPTURE (1U<<5)
+#define PMf_KEEPCOPY (1U<<6)
+#define PMf_CHARSET (7U<<7)
+#define PMf_STRICT (1U<<10)
+#define PMf_SPLIT (1U<<11)
+
+#if PMf_MULTILINE != RXf_PMf_MULTILINE || PMf_SINGLELINE != RXf_PMf_SINGLELINE || PMf_FOLD != RXf_PMf_FOLD || PMf_EXTENDED != RXf_PMf_EXTENDED || PMf_EXTENDED_MORE != RXf_PMf_EXTENDED_MORE || PMf_KEEPCOPY != RXf_PMf_KEEPCOPY || PMf_SPLIT != RXf_PMf_SPLIT || PMf_CHARSET != RXf_PMf_CHARSET || PMf_NOCAPTURE != RXf_PMf_NOCAPTURE || PMf_STRICT != RXf_PMf_STRICT
# error RXf_PMf defines are wrong
#endif
diff --git a/Master/tlpkg/tlperl/lib/CORE/opcode.h b/Master/tlpkg/tlperl/lib/CORE/opcode.h
index fbc3fe12ee8..5c4254b6026 100644
--- a/Master/tlpkg/tlperl/lib/CORE/opcode.h
+++ b/Master/tlpkg/tlperl/lib/CORE/opcode.h
@@ -31,6 +31,8 @@
#define Perl_pp_sgt Perl_pp_sle
#define Perl_pp_sge Perl_pp_sle
#define Perl_pp_bit_xor Perl_pp_bit_or
+#define Perl_pp_nbit_xor Perl_pp_nbit_or
+#define Perl_pp_sbit_xor Perl_pp_sbit_or
#define Perl_pp_cos Perl_pp_sin
#define Perl_pp_exp Perl_pp_sin
#define Perl_pp_log Perl_pp_sin
@@ -44,7 +46,7 @@
#define Perl_pp_keys Perl_do_kv
#define Perl_pp_rv2hv Perl_pp_rv2av
#define Perl_pp_pop Perl_pp_shift
-#define Perl_pp_mapstart Perl_unimplemented_op
+#define Perl_pp_mapstart Perl_pp_grepstart
#define Perl_pp_dor Perl_pp_defined
#define Perl_pp_andassign Perl_pp_and
#define Perl_pp_orassign Perl_pp_or
@@ -243,10 +245,18 @@ EXTCONST char* const PL_op_name[] = {
"bit_and",
"bit_xor",
"bit_or",
+ "nbit_and",
+ "nbit_xor",
+ "nbit_or",
+ "sbit_and",
+ "sbit_xor",
+ "sbit_or",
"negate",
"i_negate",
"not",
"complement",
+ "ncomplement",
+ "scomplement",
"smartmatch",
"atan2",
"sin",
@@ -293,6 +303,7 @@ EXTCONST char* const PL_op_name[] = {
"helem",
"hslice",
"kvhslice",
+ "multideref",
"unpack",
"pack",
"split",
@@ -350,6 +361,9 @@ EXTCONST char* const PL_op_name[] = {
"goto",
"exit",
"method_named",
+ "method_super",
+ "method_redir",
+ "method_redir_super",
"entergiven",
"leavegiven",
"enterwhen",
@@ -527,6 +541,11 @@ EXTCONST char* const PL_op_name[] = {
"introcv",
"clonecv",
"padrange",
+ "refassign",
+ "lvref",
+ "lvrefslice",
+ "lvavref",
+ "anonconst",
"freed",
};
#endif
@@ -630,10 +649,18 @@ EXTCONST char* const PL_op_desc[] = {
"bitwise and (&)",
"bitwise xor (^)",
"bitwise or (|)",
+ "numeric bitiwse and (&)",
+ "numeric bitwise xor (^)",
+ "numeric bitwise or (|)",
+ "string bitiwse and (&)",
+ "string bitwise xor (^)",
+ "string bitwise or (|)",
"negation (-)",
"integer negation (-)",
"not",
"1's complement (~)",
+ "numeric 1's complement (~)",
+ "string 1's complement (~)",
"smart match",
"atan2",
"sin",
@@ -680,13 +707,14 @@ EXTCONST char* const PL_op_desc[] = {
"hash element",
"hash slice",
"key/value hash slice",
+ "array or hash lookup",
"unpack",
"pack",
"split",
"join or string",
"list",
"list slice",
- "anonymous list ([])",
+ "anonymous array ([])",
"anonymous hash ({})",
"splice",
"push",
@@ -737,6 +765,9 @@ EXTCONST char* const PL_op_desc[] = {
"goto",
"exit",
"method with known name",
+ "super with known name",
+ "redirect method with known name",
+ "redirect super method with known name",
"given()",
"leave given block",
"when()",
@@ -914,6 +945,11 @@ EXTCONST char* const PL_op_desc[] = {
"private subroutine",
"private subroutine",
"list of private variables",
+ "lvalue ref assignment",
+ "lvalue ref assignment",
+ "lvalue ref assignment",
+ "lvalue array reference",
+ "anonymous constant",
"freed op",
};
#endif
@@ -1031,10 +1067,18 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_bit_and,
Perl_pp_bit_xor, /* implemented by Perl_pp_bit_or */
Perl_pp_bit_or,
+ Perl_pp_nbit_and,
+ Perl_pp_nbit_xor, /* implemented by Perl_pp_nbit_or */
+ Perl_pp_nbit_or,
+ Perl_pp_sbit_and,
+ Perl_pp_sbit_xor, /* implemented by Perl_pp_sbit_or */
+ Perl_pp_sbit_or,
Perl_pp_negate,
Perl_pp_i_negate,
Perl_pp_not,
Perl_pp_complement,
+ Perl_pp_ncomplement,
+ Perl_pp_scomplement,
Perl_pp_smartmatch,
Perl_pp_atan2,
Perl_pp_sin,
@@ -1081,6 +1125,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_helem,
Perl_pp_hslice,
Perl_pp_kvhslice,
+ Perl_pp_multideref,
Perl_pp_unpack,
Perl_pp_pack,
Perl_pp_split,
@@ -1098,7 +1143,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_reverse,
Perl_pp_grepstart,
Perl_pp_grepwhile,
- Perl_pp_mapstart, /* implemented by Perl_unimplemented_op */
+ Perl_pp_mapstart, /* implemented by Perl_pp_grepstart */
Perl_pp_mapwhile,
Perl_pp_range,
Perl_pp_flip,
@@ -1138,6 +1183,9 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_goto,
Perl_pp_exit,
Perl_pp_method_named,
+ Perl_pp_method_super,
+ Perl_pp_method_redir,
+ Perl_pp_method_redir_super,
Perl_pp_entergiven,
Perl_pp_leavegiven,
Perl_pp_enterwhen,
@@ -1315,6 +1363,11 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_introcv,
Perl_pp_clonecv,
Perl_pp_padrange,
+ Perl_pp_refassign,
+ Perl_pp_lvref,
+ Perl_pp_lvrefslice,
+ Perl_pp_lvavref,
+ Perl_pp_anonconst,
}
#endif
#ifdef PERL_PPADDR_INITED
@@ -1352,7 +1405,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_null, /* av2arylen */
Perl_ck_rvconst, /* rv2cv */
Perl_ck_anoncode, /* anoncode */
- Perl_ck_null, /* prototype */
+ Perl_ck_prototype, /* prototype */
Perl_ck_spair, /* refgen */
Perl_ck_null, /* srefgen */
Perl_ck_fun, /* ref */
@@ -1401,7 +1454,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_null, /* subtract */
Perl_ck_null, /* i_subtract */
Perl_ck_concat, /* concat */
- Perl_ck_fun, /* stringify */
+ Perl_ck_stringify, /* stringify */
Perl_ck_bitop, /* left_shift */
Perl_ck_bitop, /* right_shift */
Perl_ck_cmp, /* lt */
@@ -1428,10 +1481,18 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_bitop, /* bit_and */
Perl_ck_bitop, /* bit_xor */
Perl_ck_bitop, /* bit_or */
+ Perl_ck_bitop, /* nbit_and */
+ Perl_ck_bitop, /* nbit_xor */
+ Perl_ck_bitop, /* nbit_or */
+ Perl_ck_bitop, /* sbit_and */
+ Perl_ck_bitop, /* sbit_xor */
+ Perl_ck_bitop, /* sbit_or */
Perl_ck_null, /* negate */
Perl_ck_null, /* i_negate */
Perl_ck_null, /* not */
Perl_ck_bitop, /* complement */
+ Perl_ck_bitop, /* ncomplement */
+ Perl_ck_bitop, /* scomplement */
Perl_ck_smartmatch, /* smartmatch */
Perl_ck_fun, /* atan2 */
Perl_ck_fun, /* sin */
@@ -1478,6 +1539,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_null, /* helem */
Perl_ck_null, /* hslice */
Perl_ck_null, /* kvhslice */
+ Perl_ck_null, /* multideref */
Perl_ck_fun, /* unpack */
Perl_ck_fun, /* pack */
Perl_ck_split, /* split */
@@ -1535,6 +1597,9 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_null, /* goto */
Perl_ck_fun, /* exit */
Perl_ck_null, /* method_named */
+ Perl_ck_null, /* method_super */
+ Perl_ck_null, /* method_redir */
+ Perl_ck_null, /* method_redir_super */
Perl_ck_null, /* entergiven */
Perl_ck_null, /* leavegiven */
Perl_ck_null, /* enterwhen */
@@ -1712,6 +1777,11 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_null, /* introcv */
Perl_ck_null, /* clonecv */
Perl_ck_null, /* padrange */
+ Perl_ck_refassign, /* refassign */
+ Perl_ck_null, /* lvref */
+ Perl_ck_null, /* lvrefslice */
+ Perl_ck_null, /* lvavref */
+ Perl_ck_null, /* anonconst */
}
#endif
#ifdef PERL_CHECK_INITED
@@ -1732,7 +1802,7 @@ EXTCONST U32 PL_opargs[] = {
0x00000604, /* const */
0x00000644, /* gvsv */
0x00000644, /* gv */
- 0x00011240, /* gelem */
+ 0x00011244, /* gelem */
0x00000044, /* padsv */
0x00000040, /* padav */
0x00000040, /* padhv */
@@ -1742,8 +1812,8 @@ EXTCONST U32 PL_opargs[] = {
0x00000144, /* rv2sv */
0x00000104, /* av2arylen */
0x00000140, /* rv2cv */
- 0x00000600, /* anoncode */
- 0x00001b04, /* prototype */
+ 0x00000604, /* anoncode */
+ 0x00009b84, /* prototype */
0x00002101, /* refgen */
0x00001106, /* srefgen */
0x00009b8c, /* ref */
@@ -1755,10 +1825,10 @@ EXTCONST U32 PL_opargs[] = {
0x00001104, /* regcmaybe */
0x00001104, /* regcreset */
0x00001304, /* regcomp */
- 0x00000540, /* match */
+ 0x00000500, /* match */
0x00000504, /* qr */
- 0x00001544, /* subst */
- 0x00000344, /* substcont */
+ 0x00001504, /* subst */
+ 0x00000304, /* substcont */
0x00001804, /* trans */
0x00001804, /* transr */
0x00000004, /* sassign */
@@ -1775,10 +1845,10 @@ EXTCONST U32 PL_opargs[] = {
0x00001144, /* i_preinc */
0x00001164, /* predec */
0x00001144, /* i_predec */
- 0x0000116c, /* postinc */
- 0x0000115c, /* i_postinc */
- 0x0000116c, /* postdec */
- 0x0000115c, /* i_postdec */
+ 0x0000112c, /* postinc */
+ 0x0000110c, /* i_postinc */
+ 0x0000112c, /* postdec */
+ 0x0000110c, /* i_postdec */
0x0001121e, /* pow */
0x0001123e, /* multiply */
0x0001121e, /* i_multiply */
@@ -1819,10 +1889,18 @@ EXTCONST U32 PL_opargs[] = {
0x0001120e, /* bit_and */
0x0001120e, /* bit_xor */
0x0001120e, /* bit_or */
+ 0x0001121e, /* nbit_and */
+ 0x0001121e, /* nbit_xor */
+ 0x0001121e, /* nbit_or */
+ 0x0001120e, /* sbit_and */
+ 0x0001120e, /* sbit_xor */
+ 0x0001120e, /* sbit_or */
0x0000112e, /* negate */
- 0x0000111e, /* i_negate */
+ 0x0000110e, /* i_negate */
0x00001106, /* not */
0x0000110e, /* complement */
+ 0x0000111e, /* ncomplement */
+ 0x0000111e, /* scomplement */
0x00000204, /* smartmatch */
0x0001141e, /* atan2 */
0x00009b9e, /* sin */
@@ -1852,16 +1930,16 @@ EXTCONST U32 PL_opargs[] = {
0x00009b8e, /* lc */
0x00009b8e, /* quotemeta */
0x00000148, /* rv2av */
- 0x00013604, /* aelemfast */
+ 0x00013644, /* aelemfast */
0x00013040, /* aelemfast_lex */
0x00013204, /* aelem */
0x00023401, /* aslice */
0x00023401, /* kvaslice */
- 0x00003b00, /* aeach */
+ 0x00003b40, /* aeach */
0x00003b08, /* akeys */
- 0x00003b08, /* avalues */
- 0x00004b00, /* each */
- 0x00004b08, /* values */
+ 0x00003b48, /* avalues */
+ 0x00004b40, /* each */
+ 0x00004b48, /* values */
0x00004b08, /* keys */
0x00001b00, /* delete */
0x00001b04, /* exists */
@@ -1869,10 +1947,11 @@ EXTCONST U32 PL_opargs[] = {
0x00014204, /* helem */
0x00024401, /* hslice */
0x00024401, /* kvhslice */
+ 0x00000f44, /* multideref */
0x00091480, /* unpack */
0x0002140f, /* pack */
0x00111408, /* split */
- 0x0002140d, /* join */
+ 0x0002140f, /* join */
0x00002401, /* list */
0x00224200, /* lslice */
0x00002405, /* anonlist */
@@ -1882,12 +1961,12 @@ EXTCONST U32 PL_opargs[] = {
0x0000bb04, /* pop */
0x0000bb04, /* shift */
0x0002341d, /* unshift */
- 0x0002d441, /* sort */
+ 0x0002d401, /* sort */
0x00002409, /* reverse */
- 0x00025441, /* grepstart */
- 0x00000348, /* grepwhile */
- 0x00025441, /* mapstart */
- 0x00000348, /* mapwhile */
+ 0x00025401, /* grepstart */
+ 0x00000308, /* grepwhile */
+ 0x00025401, /* mapstart */
+ 0x00000308, /* mapwhile */
0x00011300, /* range */
0x00011100, /* flip */
0x00000100, /* flop */
@@ -1895,17 +1974,17 @@ EXTCONST U32 PL_opargs[] = {
0x00000300, /* or */
0x00011206, /* xor */
0x00000300, /* dor */
- 0x00000340, /* cond_expr */
+ 0x00000300, /* cond_expr */
0x00000304, /* andassign */
0x00000304, /* orassign */
0x00000304, /* dorassign */
- 0x00000140, /* method */
- 0x00002149, /* entersub */
+ 0x00000e40, /* method */
+ 0x00002141, /* entersub */
0x00000100, /* leavesub */
0x00000100, /* leavesublv */
0x00009b08, /* caller */
0x0000240d, /* warn */
- 0x0000244d, /* die */
+ 0x0000240d, /* die */
0x00009b04, /* reset */
0x00000400, /* lineseq */
0x00000a04, /* nextstate */
@@ -1918,14 +1997,17 @@ EXTCONST U32 PL_opargs[] = {
0x00000000, /* iter */
0x00000940, /* enterloop */
0x00000200, /* leaveloop */
- 0x00002441, /* return */
- 0x00000d44, /* last */
- 0x00000d44, /* next */
- 0x00000d44, /* redo */
+ 0x00002401, /* return */
+ 0x00000d04, /* last */
+ 0x00000d04, /* next */
+ 0x00000d04, /* redo */
0x00000d44, /* dump */
- 0x00000d44, /* goto */
- 0x00009b44, /* exit */
- 0x00000640, /* method_named */
+ 0x00000d04, /* goto */
+ 0x00009b04, /* exit */
+ 0x00000e40, /* method_named */
+ 0x00000e40, /* method_super */
+ 0x00000e40, /* method_redir */
+ 0x00000e40, /* method_redir_super */
0x00000340, /* entergiven */
0x00000100, /* leavegiven */
0x00000340, /* enterwhen */
@@ -1940,14 +2022,14 @@ EXTCONST U32 PL_opargs[] = {
0x00096404, /* binmode */
0x00217445, /* tie */
0x00007b04, /* untie */
- 0x00007b04, /* tied */
+ 0x00007b44, /* tied */
0x00114404, /* dbmopen */
0x00004b04, /* dbmclose */
0x01111408, /* sselect */
0x0000e40c, /* select */
0x0000eb0c, /* getc */
0x0917640d, /* read */
- 0x0000eb44, /* enterwrite */
+ 0x0000eb04, /* enterwrite */
0x00000100, /* leavewrite */
0x0002e405, /* prtf */
0x0002e405, /* print */
@@ -2027,8 +2109,8 @@ EXTCONST U32 PL_opargs[] = {
0x0000001c, /* wait */
0x0001141c, /* waitpid */
0x0002941d, /* system */
- 0x0002945d, /* exec */
- 0x0000245d, /* kill */
+ 0x0002941d, /* exec */
+ 0x0000241d, /* kill */
0x0000001c, /* getppid */
0x00009b1c, /* getpgrp */
0x0009941c, /* setpgrp */
@@ -2051,7 +2133,7 @@ EXTCONST U32 PL_opargs[] = {
0x0001140d, /* semop */
0x0011140d, /* semget */
0x0111140d, /* semctl */
- 0x00009bc0, /* require */
+ 0x00009bc4, /* require */
0x00001140, /* dofile */
0x00000604, /* hintseval */
0x00009bc0, /* entereval */
@@ -2093,9 +2175,9 @@ EXTCONST U32 PL_opargs[] = {
0x00007b04, /* lock */
0x00000300, /* once */
0x00000000, /* custom */
- 0x00001b00, /* reach */
+ 0x00001b40, /* reach */
0x00001b08, /* rkeys */
- 0x00001b08, /* rvalues */
+ 0x00001b48, /* rvalues */
0x00000600, /* coreargs */
0x00000004, /* runcv */
0x00009b8e, /* fc */
@@ -2103,6 +2185,11 @@ EXTCONST U32 PL_opargs[] = {
0x00000040, /* introcv */
0x00000040, /* clonecv */
0x00000040, /* padrange */
+ 0x00000244, /* refassign */
+ 0x00000b40, /* lvref */
+ 0x00000440, /* lvrefslice */
+ 0x00000b40, /* lvavref */
+ 0x00000144, /* anonconst */
};
#endif
@@ -2110,4 +2197,1130 @@ EXTCONST U32 PL_opargs[] = {
END_EXTERN_C
+
+#define OPpLVREF_SV 0x00
+#define OPpARG1_MASK 0x01
+#define OPpCOREARGS_DEREF1 0x01
+#define OPpENTERSUB_INARGS 0x01
+#define OPpSORT_NUMERIC 0x01
+#define OPpTRANS_FROM_UTF 0x01
+#define OPpCONST_NOVER 0x02
+#define OPpCOREARGS_DEREF2 0x02
+#define OPpEVAL_HAS_HH 0x02
+#define OPpFT_ACCESS 0x02
+#define OPpGREP_LEX 0x02
+#define OPpHINT_STRICT_REFS 0x02
+#define OPpSORT_INTEGER 0x02
+#define OPpTRANS_TO_UTF 0x02
+#define OPpARG2_MASK 0x03
+#define OPpCONST_SHORTCIRCUIT 0x04
+#define OPpDONT_INIT_GV 0x04
+#define OPpENTERSUB_HASTARG 0x04
+#define OPpEVAL_UNICODE 0x04
+#define OPpFT_STACKED 0x04
+#define OPpITER_REVERSED 0x04
+#define OPpLVREF_ELEM 0x04
+#define OPpSLICEWARNING 0x04
+#define OPpSORT_REVERSE 0x04
+#define OPpTRANS_IDENTICAL 0x04
+#define OPpARG3_MASK 0x07
+#define OPpPADRANGE_COUNTSHIFT 0x07
+#define OPpCONST_STRICT 0x08
+#define OPpENTERSUB_AMPER 0x08
+#define OPpEVAL_BYTES 0x08
+#define OPpFT_STACKING 0x08
+#define OPpITER_DEF 0x08
+#define OPpLVREF_ITER 0x08
+#define OPpMAYBE_LVSUB 0x08
+#define OPpREVERSE_INPLACE 0x08
+#define OPpSORT_INPLACE 0x08
+#define OPpTRANS_SQUASH 0x08
+#define OPpARG4_MASK 0x0f
+#define OPpCONST_ENTERED 0x10
+#define OPpDEREF_AV 0x10
+#define OPpEVAL_COPHH 0x10
+#define OPpFT_AFTER_t 0x10
+#define OPpLVREF_AV 0x10
+#define OPpMAYBE_TRUEBOOL 0x10
+#define OPpMULTIDEREF_EXISTS 0x10
+#define OPpOPEN_IN_RAW 0x10
+#define OPpSORT_DESCEND 0x10
+#define OPpSUBSTR_REPL_FIRST 0x10
+#define OPpTARGET_MY 0x10
+#define OPpDEREF_HV 0x20
+#define OPpEARLY_CV 0x20
+#define OPpEVAL_RE_REPARSING 0x20
+#define OPpHUSH_VMSISH 0x20
+#define OPpLVREF_HV 0x20
+#define OPpMAY_RETURN_CONSTANT 0x20
+#define OPpMULTIDEREF_DELETE 0x20
+#define OPpOPEN_IN_CRLF 0x20
+#define OPpSORT_QSORT 0x20
+#define OPpTRANS_COMPLEMENT 0x20
+#define OPpTRUEBOOL 0x20
+#define OPpDEREF 0x30
+#define OPpDEREF_SV 0x30
+#define OPpLVREF_CV 0x30
+#define OPpLVREF_TYPE 0x30
+#define OPpALLOW_FAKE 0x40
+#define OPpASSIGN_BACKWARDS 0x40
+#define OPpASSIGN_COMMON 0x40
+#define OPpCONST_BARE 0x40
+#define OPpCOREARGS_SCALARMOD 0x40
+#define OPpENTERSUB_DB 0x40
+#define OPpEXISTS_SUB 0x40
+#define OPpFLIP_LINENUM 0x40
+#define OPpLIST_GUESSED 0x40
+#define OPpLVAL_DEFER 0x40
+#define OPpOPEN_OUT_RAW 0x40
+#define OPpOUR_INTRO 0x40
+#define OPpPAD_STATE 0x40
+#define OPpREFCOUNTED 0x40
+#define OPpREPEAT_DOLIST 0x40
+#define OPpRUNTIME 0x40
+#define OPpSLICE 0x40
+#define OPpSORT_STABLE 0x40
+#define OPpTRANS_GROWS 0x40
+#define OPpPADRANGE_COUNTMASK 0x7f
+#define OPpASSIGN_CV_TO_GV 0x80
+#define OPpCOREARGS_PUSHMARK 0x80
+#define OPpENTERSUB_NOPAREN 0x80
+#define OPpLVALUE 0x80
+#define OPpLVAL_INTRO 0x80
+#define OPpOFFBYONE 0x80
+#define OPpOPEN_OUT_CRLF 0x80
+#define OPpPV_IS_UTF8 0x80
+#define OPpSPLIT_IMPLIM 0x80
+#define OPpTRANS_DELETE 0x80
+START_EXTERN_C
+
+#ifndef PERL_GLOBAL_STRUCT_INIT
+
+# ifndef DOINIT
+
+/* data about the flags in op_private */
+
+EXTCONST I16 PL_op_private_bitdef_ix[];
+EXTCONST U16 PL_op_private_bitdefs[];
+EXTCONST char PL_op_private_labels[];
+EXTCONST I16 PL_op_private_bitfields[];
+EXTCONST U8 PL_op_private_valid[];
+
+# else
+
+
+/* PL_op_private_labels[]: the short descriptions of private flags.
+ * All labels are concatenated into a single char array
+ * (separated by \0's) for compactness.
+ */
+
+EXTCONST char PL_op_private_labels[] = {
+ '$','M','O','D','\0',
+ '+','1','\0',
+ '-','\0',
+ '<','U','T','F','\0',
+ '>','U','T','F','\0',
+ 'A','M','P','E','R','\0',
+ 'A','V','\0',
+ 'B','A','R','E','\0',
+ 'B','K','W','A','R','D','\0',
+ 'B','O','O','L','\0',
+ 'B','O','O','L','?','\0',
+ 'B','Y','T','E','S','\0',
+ 'C','O','M','M','O','N','\0',
+ 'C','O','M','P','L','\0',
+ 'C','O','N','S','T','\0',
+ 'C','O','P','H','H','\0',
+ 'C','V','\0',
+ 'C','V','2','G','V','\0',
+ 'D','B','G','\0',
+ 'D','E','F','\0',
+ 'D','E','L','\0',
+ 'D','E','L','E','T','E','\0',
+ 'D','E','R','E','F','1','\0',
+ 'D','E','R','E','F','2','\0',
+ 'D','E','S','C','\0',
+ 'D','O','L','I','S','T','\0',
+ 'D','R','E','F','A','V','\0',
+ 'D','R','E','F','H','V','\0',
+ 'D','R','E','F','S','V','\0',
+ 'E','A','R','L','Y','C','V','\0',
+ 'E','L','E','M','\0',
+ 'E','N','T','E','R','E','D','\0',
+ 'E','X','I','S','T','S','\0',
+ 'F','A','K','E','\0',
+ 'F','T','A','C','C','E','S','S','\0',
+ 'F','T','A','F','T','E','R','t','\0',
+ 'F','T','S','T','A','C','K','E','D','\0',
+ 'F','T','S','T','A','C','K','I','N','G','\0',
+ 'G','R','E','P','L','E','X','\0',
+ 'G','R','O','W','S','\0',
+ 'G','U','E','S','S','E','D','\0',
+ 'H','A','S','_','H','H','\0',
+ 'H','U','S','H','\0',
+ 'H','V','\0',
+ 'I','D','E','N','T','\0',
+ 'I','M','P','L','I','M','\0',
+ 'I','N','A','R','G','S','\0',
+ 'I','N','B','I','N','\0',
+ 'I','N','C','R','\0',
+ 'I','N','P','L','A','C','E','\0',
+ 'I','N','T','\0',
+ 'I','T','E','R','\0',
+ 'L','I','N','E','N','U','M','\0',
+ 'L','V','\0',
+ 'L','V','D','E','F','E','R','\0',
+ 'L','V','I','N','T','R','O','\0',
+ 'L','V','S','U','B','\0',
+ 'M','A','R','K','\0',
+ 'N','O','(',')','\0',
+ 'N','O','I','N','I','T','\0',
+ 'N','O','V','E','R','\0',
+ 'N','U','M','\0',
+ 'O','U','R','I','N','T','R','\0',
+ 'O','U','T','B','I','N','\0',
+ 'O','U','T','C','R','\0',
+ 'Q','S','O','R','T','\0',
+ 'R','E','F','C','\0',
+ 'R','E','P','A','R','S','E','\0',
+ 'R','E','P','L','1','S','T','\0',
+ 'R','E','V','\0',
+ 'R','E','V','E','R','S','E','D','\0',
+ 'R','T','I','M','E','\0',
+ 'S','H','O','R','T','\0',
+ 'S','L','I','C','E','\0',
+ 'S','L','I','C','E','W','A','R','N','\0',
+ 'S','Q','U','A','S','H','\0',
+ 'S','T','A','B','L','E','\0',
+ 'S','T','A','T','E','\0',
+ 'S','T','R','I','C','T','\0',
+ 'S','U','B','\0',
+ 'S','V','\0',
+ 'T','A','R','G','\0',
+ 'T','A','R','G','M','Y','\0',
+ 'U','N','I','\0',
+ 'U','T','F','\0',
+
+};
+
+
+
+/* PL_op_private_bitfields[]: details about each bit field type.
+ * Each definition consists of the following list of words:
+ * bitmin
+ * label (index into PL_op_private_labels[]; -1 if no label)
+ * repeat for each enum entry (if any):
+ * enum value
+ * enum label (index into PL_op_private_labels[])
+ * -1
+ */
+
+EXTCONST I16 PL_op_private_bitfields[] = {
+ 0, 8, -1,
+ 0, 8, -1,
+ 0, 8, -1,
+ 0, 8, -1,
+ 0, 8, -1,
+ 0, 8, -1,
+ 4, -1, 1, 137, 2, 144, 3, 151, -1,
+ 4, -1, 0, 495, 1, 26, 2, 264, 3, 83, -1,
+
+};
+
+
+/* PL_op_private_bitdef_ix[]: map an op number to a starting position
+ * in PL_op_private_bitdefs. If -1, the op has no bits defined */
+
+EXTCONST I16 PL_op_private_bitdef_ix[] = {
+ -1, /* null */
+ -1, /* stub */
+ 0, /* scalar */
+ 1, /* pushmark */
+ 3, /* wantarray */
+ 4, /* const */
+ 9, /* gvsv */
+ 11, /* gv */
+ 12, /* gelem */
+ 13, /* padsv */
+ 16, /* padav */
+ 20, /* padhv */
+ -1, /* padany */
+ 26, /* pushre */
+ 28, /* rv2gv */
+ 35, /* rv2sv */
+ 40, /* av2arylen */
+ 42, /* rv2cv */
+ -1, /* anoncode */
+ 0, /* prototype */
+ 0, /* refgen */
+ 0, /* srefgen */
+ 0, /* ref */
+ 49, /* bless */
+ 50, /* backtick */
+ 49, /* glob */
+ 0, /* readline */
+ -1, /* rcatline */
+ 0, /* regcmaybe */
+ 0, /* regcreset */
+ 0, /* regcomp */
+ 26, /* match */
+ 26, /* qr */
+ 26, /* subst */
+ 55, /* substcont */
+ 57, /* trans */
+ 57, /* transr */
+ 65, /* sassign */
+ 68, /* aassign */
+ 0, /* chop */
+ 0, /* schop */
+ 71, /* chomp */
+ 71, /* schomp */
+ 0, /* defined */
+ 0, /* undef */
+ 0, /* study */
+ 40, /* pos */
+ 0, /* preinc */
+ 0, /* i_preinc */
+ 0, /* predec */
+ 0, /* i_predec */
+ 0, /* postinc */
+ 0, /* i_postinc */
+ 0, /* postdec */
+ 0, /* i_postdec */
+ 73, /* pow */
+ 73, /* multiply */
+ 73, /* i_multiply */
+ 73, /* divide */
+ 73, /* i_divide */
+ 73, /* modulo */
+ 73, /* i_modulo */
+ 75, /* repeat */
+ 73, /* add */
+ 73, /* i_add */
+ 73, /* subtract */
+ 73, /* i_subtract */
+ 73, /* concat */
+ 77, /* stringify */
+ 73, /* left_shift */
+ 73, /* right_shift */
+ 12, /* lt */
+ 12, /* i_lt */
+ 12, /* gt */
+ 12, /* i_gt */
+ 12, /* le */
+ 12, /* i_le */
+ 12, /* ge */
+ 12, /* i_ge */
+ 12, /* eq */
+ 12, /* i_eq */
+ 12, /* ne */
+ 12, /* i_ne */
+ 12, /* ncmp */
+ 12, /* i_ncmp */
+ 12, /* slt */
+ 12, /* sgt */
+ 12, /* sle */
+ 12, /* sge */
+ 12, /* seq */
+ 12, /* sne */
+ 12, /* scmp */
+ 12, /* bit_and */
+ 12, /* bit_xor */
+ 12, /* bit_or */
+ 73, /* nbit_and */
+ 73, /* nbit_xor */
+ 73, /* nbit_or */
+ 12, /* sbit_and */
+ 12, /* sbit_xor */
+ 12, /* sbit_or */
+ 0, /* negate */
+ 0, /* i_negate */
+ 0, /* not */
+ 0, /* complement */
+ 71, /* ncomplement */
+ 71, /* scomplement */
+ 12, /* smartmatch */
+ 77, /* atan2 */
+ 71, /* sin */
+ 71, /* cos */
+ 77, /* rand */
+ 77, /* srand */
+ 71, /* exp */
+ 71, /* log */
+ 71, /* sqrt */
+ 71, /* int */
+ 71, /* hex */
+ 71, /* oct */
+ 71, /* abs */
+ 71, /* length */
+ 79, /* substr */
+ 82, /* vec */
+ 77, /* index */
+ 77, /* rindex */
+ 49, /* sprintf */
+ 49, /* formline */
+ 71, /* ord */
+ 71, /* chr */
+ 77, /* crypt */
+ 0, /* ucfirst */
+ 0, /* lcfirst */
+ 0, /* uc */
+ 0, /* lc */
+ 0, /* quotemeta */
+ 84, /* rv2av */
+ 90, /* aelemfast */
+ 90, /* aelemfast_lex */
+ 91, /* aelem */
+ 96, /* aslice */
+ 99, /* kvaslice */
+ 0, /* aeach */
+ 0, /* akeys */
+ 0, /* avalues */
+ 0, /* each */
+ 0, /* values */
+ 40, /* keys */
+ 100, /* delete */
+ 103, /* exists */
+ 105, /* rv2hv */
+ 91, /* helem */
+ 96, /* hslice */
+ 99, /* kvhslice */
+ 113, /* multideref */
+ 49, /* unpack */
+ 49, /* pack */
+ 120, /* split */
+ 49, /* join */
+ 122, /* list */
+ 12, /* lslice */
+ 49, /* anonlist */
+ 49, /* anonhash */
+ 49, /* splice */
+ 77, /* push */
+ 0, /* pop */
+ 0, /* shift */
+ 77, /* unshift */
+ 124, /* sort */
+ 131, /* reverse */
+ 133, /* grepstart */
+ 133, /* grepwhile */
+ 133, /* mapstart */
+ 133, /* mapwhile */
+ 0, /* range */
+ 135, /* flip */
+ 135, /* flop */
+ 0, /* and */
+ 0, /* or */
+ 12, /* xor */
+ 0, /* dor */
+ 137, /* cond_expr */
+ 0, /* andassign */
+ 0, /* orassign */
+ 0, /* dorassign */
+ 0, /* method */
+ 139, /* entersub */
+ 146, /* leavesub */
+ 146, /* leavesublv */
+ 148, /* caller */
+ 49, /* warn */
+ 49, /* die */
+ 49, /* reset */
+ -1, /* lineseq */
+ 150, /* nextstate */
+ 150, /* dbstate */
+ -1, /* unstack */
+ -1, /* enter */
+ 151, /* leave */
+ -1, /* scope */
+ 153, /* enteriter */
+ 157, /* iter */
+ -1, /* enterloop */
+ 158, /* leaveloop */
+ -1, /* return */
+ 160, /* last */
+ 160, /* next */
+ 160, /* redo */
+ 160, /* dump */
+ 160, /* goto */
+ 49, /* exit */
+ 0, /* method_named */
+ 0, /* method_super */
+ 0, /* method_redir */
+ 0, /* method_redir_super */
+ 0, /* entergiven */
+ 0, /* leavegiven */
+ 0, /* enterwhen */
+ 0, /* leavewhen */
+ -1, /* break */
+ -1, /* continue */
+ 162, /* open */
+ 49, /* close */
+ 49, /* pipe_op */
+ 49, /* fileno */
+ 49, /* umask */
+ 49, /* binmode */
+ 49, /* tie */
+ 0, /* untie */
+ 0, /* tied */
+ 49, /* dbmopen */
+ 0, /* dbmclose */
+ 49, /* sselect */
+ 49, /* select */
+ 49, /* getc */
+ 49, /* read */
+ 49, /* enterwrite */
+ 146, /* leavewrite */
+ -1, /* prtf */
+ -1, /* print */
+ -1, /* say */
+ 49, /* sysopen */
+ 49, /* sysseek */
+ 49, /* sysread */
+ 49, /* syswrite */
+ 49, /* eof */
+ 49, /* tell */
+ 49, /* seek */
+ 49, /* truncate */
+ 49, /* fcntl */
+ 49, /* ioctl */
+ 77, /* flock */
+ 49, /* send */
+ 49, /* recv */
+ 49, /* socket */
+ 49, /* sockpair */
+ 49, /* bind */
+ 49, /* connect */
+ 49, /* listen */
+ 49, /* accept */
+ 49, /* shutdown */
+ 49, /* gsockopt */
+ 49, /* ssockopt */
+ 0, /* getsockname */
+ 0, /* getpeername */
+ 0, /* lstat */
+ 0, /* stat */
+ 167, /* ftrread */
+ 167, /* ftrwrite */
+ 167, /* ftrexec */
+ 167, /* fteread */
+ 167, /* ftewrite */
+ 167, /* fteexec */
+ 172, /* ftis */
+ 172, /* ftsize */
+ 172, /* ftmtime */
+ 172, /* ftatime */
+ 172, /* ftctime */
+ 172, /* ftrowned */
+ 172, /* fteowned */
+ 172, /* ftzero */
+ 172, /* ftsock */
+ 172, /* ftchr */
+ 172, /* ftblk */
+ 172, /* ftfile */
+ 172, /* ftdir */
+ 172, /* ftpipe */
+ 172, /* ftsuid */
+ 172, /* ftsgid */
+ 172, /* ftsvtx */
+ 172, /* ftlink */
+ 172, /* fttty */
+ 172, /* fttext */
+ 172, /* ftbinary */
+ 77, /* chdir */
+ 77, /* chown */
+ 71, /* chroot */
+ 77, /* unlink */
+ 77, /* chmod */
+ 77, /* utime */
+ 77, /* rename */
+ 77, /* link */
+ 77, /* symlink */
+ 0, /* readlink */
+ 77, /* mkdir */
+ 71, /* rmdir */
+ 49, /* open_dir */
+ 0, /* readdir */
+ 0, /* telldir */
+ 49, /* seekdir */
+ 0, /* rewinddir */
+ 0, /* closedir */
+ -1, /* fork */
+ 176, /* wait */
+ 77, /* waitpid */
+ 77, /* system */
+ 77, /* exec */
+ 77, /* kill */
+ 176, /* getppid */
+ 77, /* getpgrp */
+ 77, /* setpgrp */
+ 77, /* getpriority */
+ 77, /* setpriority */
+ 176, /* time */
+ -1, /* tms */
+ 0, /* localtime */
+ 49, /* gmtime */
+ 0, /* alarm */
+ 77, /* sleep */
+ 49, /* shmget */
+ 49, /* shmctl */
+ 49, /* shmread */
+ 49, /* shmwrite */
+ 49, /* msgget */
+ 49, /* msgctl */
+ 49, /* msgsnd */
+ 49, /* msgrcv */
+ 49, /* semop */
+ 49, /* semget */
+ 49, /* semctl */
+ 0, /* require */
+ 0, /* dofile */
+ -1, /* hintseval */
+ 177, /* entereval */
+ 146, /* leaveeval */
+ 0, /* entertry */
+ -1, /* leavetry */
+ 0, /* ghbyname */
+ 49, /* ghbyaddr */
+ -1, /* ghostent */
+ 0, /* gnbyname */
+ 49, /* gnbyaddr */
+ -1, /* gnetent */
+ 0, /* gpbyname */
+ 49, /* gpbynumber */
+ -1, /* gprotoent */
+ 49, /* gsbyname */
+ 49, /* gsbyport */
+ -1, /* gservent */
+ 0, /* shostent */
+ 0, /* snetent */
+ 0, /* sprotoent */
+ 0, /* sservent */
+ -1, /* ehostent */
+ -1, /* enetent */
+ -1, /* eprotoent */
+ -1, /* eservent */
+ 0, /* gpwnam */
+ 0, /* gpwuid */
+ -1, /* gpwent */
+ -1, /* spwent */
+ -1, /* epwent */
+ 0, /* ggrnam */
+ 0, /* ggrgid */
+ -1, /* ggrent */
+ -1, /* sgrent */
+ -1, /* egrent */
+ -1, /* getlogin */
+ 49, /* syscall */
+ 0, /* lock */
+ 0, /* once */
+ -1, /* custom */
+ 0, /* reach */
+ 40, /* rkeys */
+ 0, /* rvalues */
+ 183, /* coreargs */
+ 3, /* runcv */
+ 0, /* fc */
+ -1, /* padcv */
+ -1, /* introcv */
+ -1, /* clonecv */
+ 187, /* padrange */
+ 189, /* refassign */
+ 195, /* lvref */
+ 201, /* lvrefslice */
+ 202, /* lvavref */
+ 0, /* anonconst */
+
+};
+
+
+
+/* PL_op_private_bitdefs[]: given a starting position in this array (as
+ * supplied by PL_op_private_bitdef_ix[]), each word (until a stop bit is
+ * seen) defines the meaning of a particular op_private bit for a
+ * particular op. Each word consists of:
+ * bit 0: stop bit: this is the last bit def for the current op
+ * bit 1: bitfield: if set, this defines a bit field rather than a flag
+ * bits 2..4: unsigned number in the range 0..7 which is the bit number
+ * bits 5..15: unsigned number in the range 0..2047 which is an index
+ * into PL_op_private_labels[] (for a flag), or
+ * into PL_op_private_bitfields[] (for a bit field)
+ */
+
+EXTCONST U16 PL_op_private_bitdefs[] = {
+ 0x0003, /* scalar, prototype, refgen, srefgen, ref, readline, regcmaybe, regcreset, regcomp, chop, schop, defined, undef, study, preinc, i_preinc, predec, i_predec, postinc, i_postinc, postdec, i_postdec, negate, i_negate, not, complement, ucfirst, lcfirst, uc, lc, quotemeta, aeach, akeys, avalues, each, values, pop, shift, range, and, or, dor, andassign, orassign, dorassign, method, method_named, method_super, method_redir, method_redir_super, entergiven, leavegiven, enterwhen, leavewhen, untie, tied, dbmclose, getsockname, getpeername, lstat, stat, readlink, readdir, telldir, rewinddir, closedir, localtime, alarm, require, dofile, entertry, ghbyname, gnbyname, gpbyname, shostent, snetent, sprotoent, sservent, gpwnam, gpwuid, ggrnam, ggrgid, lock, once, reach, rvalues, fc, anonconst */
+ 0x29dc, 0x3bd9, /* pushmark */
+ 0x00bd, /* wantarray, runcv */
+ 0x03b8, 0x1570, 0x3c8c, 0x3748, 0x2da5, /* const */
+ 0x29dc, 0x2ef9, /* gvsv */
+ 0x13d5, /* gv */
+ 0x0067, /* gelem, lt, i_lt, gt, i_gt, le, i_le, ge, i_ge, eq, i_eq, ne, i_ne, ncmp, i_ncmp, slt, sgt, sle, sge, seq, sne, scmp, bit_and, bit_xor, bit_or, sbit_and, sbit_xor, sbit_or, smartmatch, lslice, xor */
+ 0x29dc, 0x3bd8, 0x0257, /* padsv */
+ 0x29dc, 0x3bd8, 0x2acc, 0x38c9, /* padav */
+ 0x29dc, 0x3bd8, 0x0534, 0x05d0, 0x2acc, 0x38c9, /* padhv */
+ 0x3698, 0x3ef1, /* pushre, match, qr, subst */
+ 0x29dc, 0x1758, 0x0256, 0x2acc, 0x2cc8, 0x3c84, 0x0003, /* rv2gv */
+ 0x29dc, 0x2ef8, 0x0256, 0x3c84, 0x0003, /* rv2sv */
+ 0x2acc, 0x0003, /* av2arylen, pos, keys, rkeys */
+ 0x2c3c, 0x0b98, 0x08f4, 0x028c, 0x3e48, 0x3c84, 0x0003, /* rv2cv */
+ 0x012f, /* bless, glob, sprintf, formline, unpack, pack, join, anonlist, anonhash, splice, warn, die, reset, exit, close, pipe_op, fileno, umask, binmode, tie, dbmopen, sselect, select, getc, read, enterwrite, sysopen, sysseek, sysread, syswrite, eof, tell, seek, truncate, fcntl, ioctl, send, recv, socket, sockpair, bind, connect, listen, accept, shutdown, gsockopt, ssockopt, open_dir, seekdir, gmtime, shmget, shmctl, shmread, shmwrite, msgget, msgctl, msgsnd, msgrcv, semop, semget, semctl, ghbyaddr, gnbyaddr, gpbynumber, gsbyname, gsbyport, syscall */
+ 0x30dc, 0x2ff8, 0x24b4, 0x23f0, 0x0003, /* backtick */
+ 0x3698, 0x0003, /* substcont */
+ 0x0c9c, 0x1dd8, 0x0834, 0x3ef0, 0x3a0c, 0x2168, 0x01e4, 0x0141, /* trans, transr */
+ 0x0adc, 0x0458, 0x0067, /* sassign */
+ 0x0758, 0x2acc, 0x0067, /* aassign */
+ 0x3ef0, 0x0003, /* chomp, schomp, ncomplement, scomplement, sin, cos, exp, log, sqrt, int, hex, oct, abs, length, ord, chr, chroot, rmdir */
+ 0x3ef0, 0x0067, /* pow, multiply, i_multiply, divide, i_divide, modulo, i_modulo, add, i_add, subtract, i_subtract, concat, left_shift, right_shift, nbit_and, nbit_xor, nbit_or */
+ 0x1058, 0x0067, /* repeat */
+ 0x3ef0, 0x012f, /* stringify, atan2, rand, srand, index, rindex, crypt, push, unshift, flock, chdir, chown, unlink, chmod, utime, rename, link, symlink, mkdir, waitpid, system, exec, kill, getpgrp, setpgrp, getpriority, setpriority, sleep */
+ 0x33f0, 0x2acc, 0x00cb, /* substr */
+ 0x2acc, 0x0067, /* vec */
+ 0x29dc, 0x2ef8, 0x2acc, 0x38c8, 0x3c84, 0x0003, /* rv2av */
+ 0x01ff, /* aelemfast, aelemfast_lex */
+ 0x29dc, 0x28d8, 0x0256, 0x2acc, 0x0067, /* aelem, helem */
+ 0x29dc, 0x2acc, 0x38c9, /* aslice, hslice */
+ 0x2acd, /* kvaslice, kvhslice */
+ 0x29dc, 0x3818, 0x0003, /* delete */
+ 0x3d78, 0x0003, /* exists */
+ 0x29dc, 0x2ef8, 0x0534, 0x05d0, 0x2acc, 0x38c8, 0x3c84, 0x0003, /* rv2hv */
+ 0x29dc, 0x28d8, 0x0d14, 0x1670, 0x2acc, 0x3c84, 0x0003, /* multideref */
+ 0x223c, 0x2ef9, /* split */
+ 0x29dc, 0x1e99, /* list */
+ 0x3af8, 0x3194, 0x0fb0, 0x254c, 0x34e8, 0x2644, 0x2e61, /* sort */
+ 0x254c, 0x0003, /* reverse */
+ 0x1cc4, 0x0003, /* grepstart, grepwhile, mapstart, mapwhile */
+ 0x2778, 0x0003, /* flip, flop */
+ 0x29dc, 0x0003, /* cond_expr */
+ 0x29dc, 0x0b98, 0x0256, 0x028c, 0x3e48, 0x3c84, 0x2301, /* entersub */
+ 0x3258, 0x0003, /* leavesub, leavesublv, leavewrite, leaveeval */
+ 0x00bc, 0x012f, /* caller */
+ 0x2075, /* nextstate, dbstate */
+ 0x287c, 0x3259, /* leave */
+ 0x29dc, 0x2ef8, 0x0c0c, 0x3569, /* enteriter */
+ 0x3569, /* iter */
+ 0x287c, 0x0067, /* leaveloop */
+ 0x405c, 0x0003, /* last, next, redo, dump, goto */
+ 0x30dc, 0x2ff8, 0x24b4, 0x23f0, 0x012f, /* open */
+ 0x1910, 0x1b6c, 0x1a28, 0x17e4, 0x0003, /* ftrread, ftrwrite, ftrexec, fteread, ftewrite, fteexec */
+ 0x1910, 0x1b6c, 0x1a28, 0x0003, /* ftis, ftsize, ftmtime, ftatime, ftctime, ftrowned, fteowned, ftzero, ftsock, ftchr, ftblk, ftfile, ftdir, ftpipe, ftsuid, ftsgid, ftsvtx, ftlink, fttty, fttext, ftbinary */
+ 0x3ef1, /* wait, getppid, time */
+ 0x32f4, 0x09b0, 0x068c, 0x3fc8, 0x1f84, 0x0003, /* entereval */
+ 0x2b9c, 0x0018, 0x0ec4, 0x0de1, /* coreargs */
+ 0x29dc, 0x019b, /* padrange */
+ 0x29dc, 0x3bd8, 0x0376, 0x26cc, 0x14c8, 0x0067, /* refassign */
+ 0x29dc, 0x3bd8, 0x0376, 0x26cc, 0x14c8, 0x0003, /* lvref */
+ 0x29dd, /* lvrefslice */
+ 0x29dc, 0x3bd8, 0x0003, /* lvavref */
+
+};
+
+
+/* PL_op_private_valid: for each op, indexed by op_type, indicate which
+ * flags bits in op_private are legal */
+
+EXTCONST U8 PL_op_private_valid[] = {
+ /* NULL */ (0xff),
+ /* STUB */ (0),
+ /* SCALAR */ (OPpARG1_MASK),
+ /* PUSHMARK */ (OPpPAD_STATE|OPpLVAL_INTRO),
+ /* WANTARRAY */ (OPpOFFBYONE),
+ /* CONST */ (OPpCONST_NOVER|OPpCONST_SHORTCIRCUIT|OPpCONST_STRICT|OPpCONST_ENTERED|OPpCONST_BARE),
+ /* GVSV */ (OPpOUR_INTRO|OPpLVAL_INTRO),
+ /* GV */ (OPpEARLY_CV),
+ /* GELEM */ (OPpARG2_MASK),
+ /* PADSV */ (OPpDEREF|OPpPAD_STATE|OPpLVAL_INTRO),
+ /* PADAV */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpPAD_STATE|OPpLVAL_INTRO),
+ /* PADHV */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpMAYBE_TRUEBOOL|OPpTRUEBOOL|OPpPAD_STATE|OPpLVAL_INTRO),
+ /* PADANY */ (0),
+ /* PUSHRE */ (OPpTARGET_MY|OPpRUNTIME),
+ /* RV2GV */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpDONT_INIT_GV|OPpMAYBE_LVSUB|OPpDEREF|OPpALLOW_FAKE|OPpLVAL_INTRO),
+ /* RV2SV */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpDEREF|OPpOUR_INTRO|OPpLVAL_INTRO),
+ /* AV2ARYLEN */ (OPpARG1_MASK|OPpMAYBE_LVSUB),
+ /* RV2CV */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpENTERSUB_HASTARG|OPpENTERSUB_AMPER|OPpMAY_RETURN_CONSTANT|OPpENTERSUB_DB|OPpENTERSUB_NOPAREN),
+ /* ANONCODE */ (0),
+ /* PROTOTYPE */ (OPpARG1_MASK),
+ /* REFGEN */ (OPpARG1_MASK),
+ /* SREFGEN */ (OPpARG1_MASK),
+ /* REF */ (OPpARG1_MASK),
+ /* BLESS */ (OPpARG4_MASK),
+ /* BACKTICK */ (OPpARG1_MASK|OPpOPEN_IN_RAW|OPpOPEN_IN_CRLF|OPpOPEN_OUT_RAW|OPpOPEN_OUT_CRLF),
+ /* GLOB */ (OPpARG4_MASK),
+ /* READLINE */ (OPpARG1_MASK),
+ /* RCATLINE */ (0),
+ /* REGCMAYBE */ (OPpARG1_MASK),
+ /* REGCRESET */ (OPpARG1_MASK),
+ /* REGCOMP */ (OPpARG1_MASK),
+ /* MATCH */ (OPpTARGET_MY|OPpRUNTIME),
+ /* QR */ (OPpTARGET_MY|OPpRUNTIME),
+ /* SUBST */ (OPpTARGET_MY|OPpRUNTIME),
+ /* SUBSTCONT */ (OPpARG1_MASK|OPpRUNTIME),
+ /* TRANS */ (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL|OPpTRANS_SQUASH|OPpTARGET_MY|OPpTRANS_COMPLEMENT|OPpTRANS_GROWS|OPpTRANS_DELETE),
+ /* TRANSR */ (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL|OPpTRANS_SQUASH|OPpTARGET_MY|OPpTRANS_COMPLEMENT|OPpTRANS_GROWS|OPpTRANS_DELETE),
+ /* SASSIGN */ (OPpARG2_MASK|OPpASSIGN_BACKWARDS|OPpASSIGN_CV_TO_GV),
+ /* AASSIGN */ (OPpARG2_MASK|OPpMAYBE_LVSUB|OPpASSIGN_COMMON),
+ /* CHOP */ (OPpARG1_MASK),
+ /* SCHOP */ (OPpARG1_MASK),
+ /* CHOMP */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* SCHOMP */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* DEFINED */ (OPpARG1_MASK),
+ /* UNDEF */ (OPpARG1_MASK),
+ /* STUDY */ (OPpARG1_MASK),
+ /* POS */ (OPpARG1_MASK|OPpMAYBE_LVSUB),
+ /* PREINC */ (OPpARG1_MASK),
+ /* I_PREINC */ (OPpARG1_MASK),
+ /* PREDEC */ (OPpARG1_MASK),
+ /* I_PREDEC */ (OPpARG1_MASK),
+ /* POSTINC */ (OPpARG1_MASK),
+ /* I_POSTINC */ (OPpARG1_MASK),
+ /* POSTDEC */ (OPpARG1_MASK),
+ /* I_POSTDEC */ (OPpARG1_MASK),
+ /* POW */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* MULTIPLY */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* I_MULTIPLY */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* DIVIDE */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* I_DIVIDE */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* MODULO */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* I_MODULO */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* REPEAT */ (OPpARG2_MASK|OPpREPEAT_DOLIST),
+ /* ADD */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* I_ADD */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* SUBTRACT */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* I_SUBTRACT */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* CONCAT */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* STRINGIFY */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* LEFT_SHIFT */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* RIGHT_SHIFT */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* LT */ (OPpARG2_MASK),
+ /* I_LT */ (OPpARG2_MASK),
+ /* GT */ (OPpARG2_MASK),
+ /* I_GT */ (OPpARG2_MASK),
+ /* LE */ (OPpARG2_MASK),
+ /* I_LE */ (OPpARG2_MASK),
+ /* GE */ (OPpARG2_MASK),
+ /* I_GE */ (OPpARG2_MASK),
+ /* EQ */ (OPpARG2_MASK),
+ /* I_EQ */ (OPpARG2_MASK),
+ /* NE */ (OPpARG2_MASK),
+ /* I_NE */ (OPpARG2_MASK),
+ /* NCMP */ (OPpARG2_MASK),
+ /* I_NCMP */ (OPpARG2_MASK),
+ /* SLT */ (OPpARG2_MASK),
+ /* SGT */ (OPpARG2_MASK),
+ /* SLE */ (OPpARG2_MASK),
+ /* SGE */ (OPpARG2_MASK),
+ /* SEQ */ (OPpARG2_MASK),
+ /* SNE */ (OPpARG2_MASK),
+ /* SCMP */ (OPpARG2_MASK),
+ /* BIT_AND */ (OPpARG2_MASK),
+ /* BIT_XOR */ (OPpARG2_MASK),
+ /* BIT_OR */ (OPpARG2_MASK),
+ /* NBIT_AND */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* NBIT_XOR */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* NBIT_OR */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* SBIT_AND */ (OPpARG2_MASK),
+ /* SBIT_XOR */ (OPpARG2_MASK),
+ /* SBIT_OR */ (OPpARG2_MASK),
+ /* NEGATE */ (OPpARG1_MASK),
+ /* I_NEGATE */ (OPpARG1_MASK),
+ /* NOT */ (OPpARG1_MASK),
+ /* COMPLEMENT */ (OPpARG1_MASK),
+ /* NCOMPLEMENT */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* SCOMPLEMENT */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* SMARTMATCH */ (OPpARG2_MASK),
+ /* ATAN2 */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* SIN */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* COS */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* RAND */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* SRAND */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* EXP */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* LOG */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* SQRT */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* INT */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* HEX */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* OCT */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* ABS */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* LENGTH */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* SUBSTR */ (OPpARG3_MASK|OPpMAYBE_LVSUB|OPpSUBSTR_REPL_FIRST),
+ /* VEC */ (OPpARG2_MASK|OPpMAYBE_LVSUB),
+ /* INDEX */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* RINDEX */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* SPRINTF */ (OPpARG4_MASK),
+ /* FORMLINE */ (OPpARG4_MASK),
+ /* ORD */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* CHR */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* CRYPT */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* UCFIRST */ (OPpARG1_MASK),
+ /* LCFIRST */ (OPpARG1_MASK),
+ /* UC */ (OPpARG1_MASK),
+ /* LC */ (OPpARG1_MASK),
+ /* QUOTEMETA */ (OPpARG1_MASK),
+ /* RV2AV */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpOUR_INTRO|OPpLVAL_INTRO),
+ /* AELEMFAST */ (255),
+ /* AELEMFAST_LEX */ (255),
+ /* AELEM */ (OPpARG2_MASK|OPpMAYBE_LVSUB|OPpDEREF|OPpLVAL_DEFER|OPpLVAL_INTRO),
+ /* ASLICE */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpLVAL_INTRO),
+ /* KVASLICE */ (OPpMAYBE_LVSUB),
+ /* AEACH */ (OPpARG1_MASK),
+ /* AKEYS */ (OPpARG1_MASK),
+ /* AVALUES */ (OPpARG1_MASK),
+ /* EACH */ (OPpARG1_MASK),
+ /* VALUES */ (OPpARG1_MASK),
+ /* KEYS */ (OPpARG1_MASK|OPpMAYBE_LVSUB),
+ /* DELETE */ (OPpARG1_MASK|OPpSLICE|OPpLVAL_INTRO),
+ /* EXISTS */ (OPpARG1_MASK|OPpEXISTS_SUB),
+ /* RV2HV */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpMAYBE_TRUEBOOL|OPpTRUEBOOL|OPpOUR_INTRO|OPpLVAL_INTRO),
+ /* HELEM */ (OPpARG2_MASK|OPpMAYBE_LVSUB|OPpDEREF|OPpLVAL_DEFER|OPpLVAL_INTRO),
+ /* HSLICE */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpLVAL_INTRO),
+ /* KVHSLICE */ (OPpMAYBE_LVSUB),
+ /* MULTIDEREF */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpMAYBE_LVSUB|OPpMULTIDEREF_EXISTS|OPpMULTIDEREF_DELETE|OPpLVAL_DEFER|OPpLVAL_INTRO),
+ /* UNPACK */ (OPpARG4_MASK),
+ /* PACK */ (OPpARG4_MASK),
+ /* SPLIT */ (OPpOUR_INTRO|OPpSPLIT_IMPLIM),
+ /* JOIN */ (OPpARG4_MASK),
+ /* LIST */ (OPpLIST_GUESSED|OPpLVAL_INTRO),
+ /* LSLICE */ (OPpARG2_MASK),
+ /* ANONLIST */ (OPpARG4_MASK),
+ /* ANONHASH */ (OPpARG4_MASK),
+ /* SPLICE */ (OPpARG4_MASK),
+ /* PUSH */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* POP */ (OPpARG1_MASK),
+ /* SHIFT */ (OPpARG1_MASK),
+ /* UNSHIFT */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* SORT */ (OPpSORT_NUMERIC|OPpSORT_INTEGER|OPpSORT_REVERSE|OPpSORT_INPLACE|OPpSORT_DESCEND|OPpSORT_QSORT|OPpSORT_STABLE),
+ /* REVERSE */ (OPpARG1_MASK|OPpREVERSE_INPLACE),
+ /* GREPSTART */ (OPpARG1_MASK|OPpGREP_LEX),
+ /* GREPWHILE */ (OPpARG1_MASK|OPpGREP_LEX),
+ /* MAPSTART */ (OPpARG1_MASK|OPpGREP_LEX),
+ /* MAPWHILE */ (OPpARG1_MASK|OPpGREP_LEX),
+ /* RANGE */ (OPpARG1_MASK),
+ /* FLIP */ (OPpARG1_MASK|OPpFLIP_LINENUM),
+ /* FLOP */ (OPpARG1_MASK|OPpFLIP_LINENUM),
+ /* AND */ (OPpARG1_MASK),
+ /* OR */ (OPpARG1_MASK),
+ /* XOR */ (OPpARG2_MASK),
+ /* DOR */ (OPpARG1_MASK),
+ /* COND_EXPR */ (OPpARG1_MASK|OPpLVAL_INTRO),
+ /* ANDASSIGN */ (OPpARG1_MASK),
+ /* ORASSIGN */ (OPpARG1_MASK),
+ /* DORASSIGN */ (OPpARG1_MASK),
+ /* METHOD */ (OPpARG1_MASK),
+ /* ENTERSUB */ (OPpENTERSUB_INARGS|OPpHINT_STRICT_REFS|OPpENTERSUB_HASTARG|OPpENTERSUB_AMPER|OPpDEREF|OPpENTERSUB_DB|OPpLVAL_INTRO),
+ /* LEAVESUB */ (OPpARG1_MASK|OPpREFCOUNTED),
+ /* LEAVESUBLV */ (OPpARG1_MASK|OPpREFCOUNTED),
+ /* CALLER */ (OPpARG4_MASK|OPpOFFBYONE),
+ /* WARN */ (OPpARG4_MASK),
+ /* DIE */ (OPpARG4_MASK),
+ /* RESET */ (OPpARG4_MASK),
+ /* LINESEQ */ (0),
+ /* NEXTSTATE */ (OPpHUSH_VMSISH),
+ /* DBSTATE */ (OPpHUSH_VMSISH),
+ /* UNSTACK */ (0),
+ /* ENTER */ (0),
+ /* LEAVE */ (OPpREFCOUNTED|OPpLVALUE),
+ /* SCOPE */ (0),
+ /* ENTERITER */ (OPpITER_REVERSED|OPpITER_DEF|OPpOUR_INTRO|OPpLVAL_INTRO),
+ /* ITER */ (OPpITER_REVERSED),
+ /* ENTERLOOP */ (0),
+ /* LEAVELOOP */ (OPpARG2_MASK|OPpLVALUE),
+ /* RETURN */ (0),
+ /* LAST */ (OPpARG1_MASK|OPpPV_IS_UTF8),
+ /* NEXT */ (OPpARG1_MASK|OPpPV_IS_UTF8),
+ /* REDO */ (OPpARG1_MASK|OPpPV_IS_UTF8),
+ /* DUMP */ (OPpARG1_MASK|OPpPV_IS_UTF8),
+ /* GOTO */ (OPpARG1_MASK|OPpPV_IS_UTF8),
+ /* EXIT */ (OPpARG4_MASK),
+ /* METHOD_NAMED */ (OPpARG1_MASK),
+ /* METHOD_SUPER */ (OPpARG1_MASK),
+ /* METHOD_REDIR */ (OPpARG1_MASK),
+ /* METHOD_REDIR_SUPER */ (OPpARG1_MASK),
+ /* ENTERGIVEN */ (OPpARG1_MASK),
+ /* LEAVEGIVEN */ (OPpARG1_MASK),
+ /* ENTERWHEN */ (OPpARG1_MASK),
+ /* LEAVEWHEN */ (OPpARG1_MASK),
+ /* BREAK */ (0),
+ /* CONTINUE */ (0),
+ /* OPEN */ (OPpARG4_MASK|OPpOPEN_IN_RAW|OPpOPEN_IN_CRLF|OPpOPEN_OUT_RAW|OPpOPEN_OUT_CRLF),
+ /* CLOSE */ (OPpARG4_MASK),
+ /* PIPE_OP */ (OPpARG4_MASK),
+ /* FILENO */ (OPpARG4_MASK),
+ /* UMASK */ (OPpARG4_MASK),
+ /* BINMODE */ (OPpARG4_MASK),
+ /* TIE */ (OPpARG4_MASK),
+ /* UNTIE */ (OPpARG1_MASK),
+ /* TIED */ (OPpARG1_MASK),
+ /* DBMOPEN */ (OPpARG4_MASK),
+ /* DBMCLOSE */ (OPpARG1_MASK),
+ /* SSELECT */ (OPpARG4_MASK),
+ /* SELECT */ (OPpARG4_MASK),
+ /* GETC */ (OPpARG4_MASK),
+ /* READ */ (OPpARG4_MASK),
+ /* ENTERWRITE */ (OPpARG4_MASK),
+ /* LEAVEWRITE */ (OPpARG1_MASK|OPpREFCOUNTED),
+ /* PRTF */ (0),
+ /* PRINT */ (0),
+ /* SAY */ (0),
+ /* SYSOPEN */ (OPpARG4_MASK),
+ /* SYSSEEK */ (OPpARG4_MASK),
+ /* SYSREAD */ (OPpARG4_MASK),
+ /* SYSWRITE */ (OPpARG4_MASK),
+ /* EOF */ (OPpARG4_MASK),
+ /* TELL */ (OPpARG4_MASK),
+ /* SEEK */ (OPpARG4_MASK),
+ /* TRUNCATE */ (OPpARG4_MASK),
+ /* FCNTL */ (OPpARG4_MASK),
+ /* IOCTL */ (OPpARG4_MASK),
+ /* FLOCK */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* SEND */ (OPpARG4_MASK),
+ /* RECV */ (OPpARG4_MASK),
+ /* SOCKET */ (OPpARG4_MASK),
+ /* SOCKPAIR */ (OPpARG4_MASK),
+ /* BIND */ (OPpARG4_MASK),
+ /* CONNECT */ (OPpARG4_MASK),
+ /* LISTEN */ (OPpARG4_MASK),
+ /* ACCEPT */ (OPpARG4_MASK),
+ /* SHUTDOWN */ (OPpARG4_MASK),
+ /* GSOCKOPT */ (OPpARG4_MASK),
+ /* SSOCKOPT */ (OPpARG4_MASK),
+ /* GETSOCKNAME */ (OPpARG1_MASK),
+ /* GETPEERNAME */ (OPpARG1_MASK),
+ /* LSTAT */ (OPpARG1_MASK),
+ /* STAT */ (OPpARG1_MASK),
+ /* FTRREAD */ (OPpARG1_MASK|OPpFT_ACCESS|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTRWRITE */ (OPpARG1_MASK|OPpFT_ACCESS|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTREXEC */ (OPpARG1_MASK|OPpFT_ACCESS|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTEREAD */ (OPpARG1_MASK|OPpFT_ACCESS|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTEWRITE */ (OPpARG1_MASK|OPpFT_ACCESS|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTEEXEC */ (OPpARG1_MASK|OPpFT_ACCESS|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTIS */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTSIZE */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTMTIME */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTATIME */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTCTIME */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTROWNED */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTEOWNED */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTZERO */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTSOCK */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTCHR */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTBLK */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTFILE */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTDIR */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTPIPE */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTSUID */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTSGID */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTSVTX */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTLINK */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTTTY */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTTEXT */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* FTBINARY */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t),
+ /* CHDIR */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* CHOWN */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* CHROOT */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* UNLINK */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* CHMOD */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* UTIME */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* RENAME */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* LINK */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* SYMLINK */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* READLINK */ (OPpARG1_MASK),
+ /* MKDIR */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* RMDIR */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* OPEN_DIR */ (OPpARG4_MASK),
+ /* READDIR */ (OPpARG1_MASK),
+ /* TELLDIR */ (OPpARG1_MASK),
+ /* SEEKDIR */ (OPpARG4_MASK),
+ /* REWINDDIR */ (OPpARG1_MASK),
+ /* CLOSEDIR */ (OPpARG1_MASK),
+ /* FORK */ (0),
+ /* WAIT */ (OPpTARGET_MY),
+ /* WAITPID */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* SYSTEM */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* EXEC */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* KILL */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* GETPPID */ (OPpTARGET_MY),
+ /* GETPGRP */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* SETPGRP */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* GETPRIORITY */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* SETPRIORITY */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* TIME */ (OPpTARGET_MY),
+ /* TMS */ (0),
+ /* LOCALTIME */ (OPpARG1_MASK),
+ /* GMTIME */ (OPpARG4_MASK),
+ /* ALARM */ (OPpARG1_MASK),
+ /* SLEEP */ (OPpARG4_MASK|OPpTARGET_MY),
+ /* SHMGET */ (OPpARG4_MASK),
+ /* SHMCTL */ (OPpARG4_MASK),
+ /* SHMREAD */ (OPpARG4_MASK),
+ /* SHMWRITE */ (OPpARG4_MASK),
+ /* MSGGET */ (OPpARG4_MASK),
+ /* MSGCTL */ (OPpARG4_MASK),
+ /* MSGSND */ (OPpARG4_MASK),
+ /* MSGRCV */ (OPpARG4_MASK),
+ /* SEMOP */ (OPpARG4_MASK),
+ /* SEMGET */ (OPpARG4_MASK),
+ /* SEMCTL */ (OPpARG4_MASK),
+ /* REQUIRE */ (OPpARG1_MASK),
+ /* DOFILE */ (OPpARG1_MASK),
+ /* HINTSEVAL */ (0),
+ /* ENTEREVAL */ (OPpARG1_MASK|OPpEVAL_HAS_HH|OPpEVAL_UNICODE|OPpEVAL_BYTES|OPpEVAL_COPHH|OPpEVAL_RE_REPARSING),
+ /* LEAVEEVAL */ (OPpARG1_MASK|OPpREFCOUNTED),
+ /* ENTERTRY */ (OPpARG1_MASK),
+ /* LEAVETRY */ (0),
+ /* GHBYNAME */ (OPpARG1_MASK),
+ /* GHBYADDR */ (OPpARG4_MASK),
+ /* GHOSTENT */ (0),
+ /* GNBYNAME */ (OPpARG1_MASK),
+ /* GNBYADDR */ (OPpARG4_MASK),
+ /* GNETENT */ (0),
+ /* GPBYNAME */ (OPpARG1_MASK),
+ /* GPBYNUMBER */ (OPpARG4_MASK),
+ /* GPROTOENT */ (0),
+ /* GSBYNAME */ (OPpARG4_MASK),
+ /* GSBYPORT */ (OPpARG4_MASK),
+ /* GSERVENT */ (0),
+ /* SHOSTENT */ (OPpARG1_MASK),
+ /* SNETENT */ (OPpARG1_MASK),
+ /* SPROTOENT */ (OPpARG1_MASK),
+ /* SSERVENT */ (OPpARG1_MASK),
+ /* EHOSTENT */ (0),
+ /* ENETENT */ (0),
+ /* EPROTOENT */ (0),
+ /* ESERVENT */ (0),
+ /* GPWNAM */ (OPpARG1_MASK),
+ /* GPWUID */ (OPpARG1_MASK),
+ /* GPWENT */ (0),
+ /* SPWENT */ (0),
+ /* EPWENT */ (0),
+ /* GGRNAM */ (OPpARG1_MASK),
+ /* GGRGID */ (OPpARG1_MASK),
+ /* GGRENT */ (0),
+ /* SGRENT */ (0),
+ /* EGRENT */ (0),
+ /* GETLOGIN */ (0),
+ /* SYSCALL */ (OPpARG4_MASK),
+ /* LOCK */ (OPpARG1_MASK),
+ /* ONCE */ (OPpARG1_MASK),
+ /* CUSTOM */ (0xff),
+ /* REACH */ (OPpARG1_MASK),
+ /* RKEYS */ (OPpARG1_MASK|OPpMAYBE_LVSUB),
+ /* RVALUES */ (OPpARG1_MASK),
+ /* COREARGS */ (OPpCOREARGS_DEREF1|OPpCOREARGS_DEREF2|OPpCOREARGS_SCALARMOD|OPpCOREARGS_PUSHMARK),
+ /* RUNCV */ (OPpOFFBYONE),
+ /* FC */ (OPpARG1_MASK),
+ /* PADCV */ (0),
+ /* INTROCV */ (0),
+ /* CLONECV */ (0),
+ /* PADRANGE */ (OPpPADRANGE_COUNTMASK|OPpLVAL_INTRO),
+ /* REFASSIGN */ (OPpARG2_MASK|OPpLVREF_ELEM|OPpLVREF_ITER|OPpLVREF_TYPE|OPpPAD_STATE|OPpLVAL_INTRO),
+ /* LVREF */ (OPpARG1_MASK|OPpLVREF_ELEM|OPpLVREF_ITER|OPpLVREF_TYPE|OPpPAD_STATE|OPpLVAL_INTRO),
+ /* LVREFSLICE */ (OPpLVAL_INTRO),
+ /* LVAVREF */ (OPpARG1_MASK|OPpPAD_STATE|OPpLVAL_INTRO),
+ /* ANONCONST */ (OPpARG1_MASK),
+
+};
+
+# endif /* !DOINIT */
+#endif /* !PERL_GLOBAL_STRUCT_INIT */
+
+END_EXTERN_C
+
+
+
/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/opnames.h b/Master/tlpkg/tlperl/lib/CORE/opnames.h
index 68ce927cd9e..c225ac42c02 100644
--- a/Master/tlpkg/tlperl/lib/CORE/opnames.h
+++ b/Master/tlpkg/tlperl/lib/CORE/opnames.h
@@ -109,294 +109,311 @@ typedef enum opcode {
OP_BIT_AND = 92,
OP_BIT_XOR = 93,
OP_BIT_OR = 94,
- OP_NEGATE = 95,
- OP_I_NEGATE = 96,
- OP_NOT = 97,
- OP_COMPLEMENT = 98,
- OP_SMARTMATCH = 99,
- OP_ATAN2 = 100,
- OP_SIN = 101,
- OP_COS = 102,
- OP_RAND = 103,
- OP_SRAND = 104,
- OP_EXP = 105,
- OP_LOG = 106,
- OP_SQRT = 107,
- OP_INT = 108,
- OP_HEX = 109,
- OP_OCT = 110,
- OP_ABS = 111,
- OP_LENGTH = 112,
- OP_SUBSTR = 113,
- OP_VEC = 114,
- OP_INDEX = 115,
- OP_RINDEX = 116,
- OP_SPRINTF = 117,
- OP_FORMLINE = 118,
- OP_ORD = 119,
- OP_CHR = 120,
- OP_CRYPT = 121,
- OP_UCFIRST = 122,
- OP_LCFIRST = 123,
- OP_UC = 124,
- OP_LC = 125,
- OP_QUOTEMETA = 126,
- OP_RV2AV = 127,
- OP_AELEMFAST = 128,
- OP_AELEMFAST_LEX = 129,
- OP_AELEM = 130,
- OP_ASLICE = 131,
- OP_KVASLICE = 132,
- OP_AEACH = 133,
- OP_AKEYS = 134,
- OP_AVALUES = 135,
- OP_EACH = 136,
- OP_VALUES = 137,
- OP_KEYS = 138,
- OP_DELETE = 139,
- OP_EXISTS = 140,
- OP_RV2HV = 141,
- OP_HELEM = 142,
- OP_HSLICE = 143,
- OP_KVHSLICE = 144,
- OP_UNPACK = 145,
- OP_PACK = 146,
- OP_SPLIT = 147,
- OP_JOIN = 148,
- OP_LIST = 149,
- OP_LSLICE = 150,
- OP_ANONLIST = 151,
- OP_ANONHASH = 152,
- OP_SPLICE = 153,
- OP_PUSH = 154,
- OP_POP = 155,
- OP_SHIFT = 156,
- OP_UNSHIFT = 157,
- OP_SORT = 158,
- OP_REVERSE = 159,
- OP_GREPSTART = 160,
- OP_GREPWHILE = 161,
- OP_MAPSTART = 162,
- OP_MAPWHILE = 163,
- OP_RANGE = 164,
- OP_FLIP = 165,
- OP_FLOP = 166,
- OP_AND = 167,
- OP_OR = 168,
- OP_XOR = 169,
- OP_DOR = 170,
- OP_COND_EXPR = 171,
- OP_ANDASSIGN = 172,
- OP_ORASSIGN = 173,
- OP_DORASSIGN = 174,
- OP_METHOD = 175,
- OP_ENTERSUB = 176,
- OP_LEAVESUB = 177,
- OP_LEAVESUBLV = 178,
- OP_CALLER = 179,
- OP_WARN = 180,
- OP_DIE = 181,
- OP_RESET = 182,
- OP_LINESEQ = 183,
- OP_NEXTSTATE = 184,
- OP_DBSTATE = 185,
- OP_UNSTACK = 186,
- OP_ENTER = 187,
- OP_LEAVE = 188,
- OP_SCOPE = 189,
- OP_ENTERITER = 190,
- OP_ITER = 191,
- OP_ENTERLOOP = 192,
- OP_LEAVELOOP = 193,
- OP_RETURN = 194,
- OP_LAST = 195,
- OP_NEXT = 196,
- OP_REDO = 197,
- OP_DUMP = 198,
- OP_GOTO = 199,
- OP_EXIT = 200,
- OP_METHOD_NAMED = 201,
- OP_ENTERGIVEN = 202,
- OP_LEAVEGIVEN = 203,
- OP_ENTERWHEN = 204,
- OP_LEAVEWHEN = 205,
- OP_BREAK = 206,
- OP_CONTINUE = 207,
- OP_OPEN = 208,
- OP_CLOSE = 209,
- OP_PIPE_OP = 210,
- OP_FILENO = 211,
- OP_UMASK = 212,
- OP_BINMODE = 213,
- OP_TIE = 214,
- OP_UNTIE = 215,
- OP_TIED = 216,
- OP_DBMOPEN = 217,
- OP_DBMCLOSE = 218,
- OP_SSELECT = 219,
- OP_SELECT = 220,
- OP_GETC = 221,
- OP_READ = 222,
- OP_ENTERWRITE = 223,
- OP_LEAVEWRITE = 224,
- OP_PRTF = 225,
- OP_PRINT = 226,
- OP_SAY = 227,
- OP_SYSOPEN = 228,
- OP_SYSSEEK = 229,
- OP_SYSREAD = 230,
- OP_SYSWRITE = 231,
- OP_EOF = 232,
- OP_TELL = 233,
- OP_SEEK = 234,
- OP_TRUNCATE = 235,
- OP_FCNTL = 236,
- OP_IOCTL = 237,
- OP_FLOCK = 238,
- OP_SEND = 239,
- OP_RECV = 240,
- OP_SOCKET = 241,
- OP_SOCKPAIR = 242,
- OP_BIND = 243,
- OP_CONNECT = 244,
- OP_LISTEN = 245,
- OP_ACCEPT = 246,
- OP_SHUTDOWN = 247,
- OP_GSOCKOPT = 248,
- OP_SSOCKOPT = 249,
- OP_GETSOCKNAME = 250,
- OP_GETPEERNAME = 251,
- OP_LSTAT = 252,
- OP_STAT = 253,
- OP_FTRREAD = 254,
- OP_FTRWRITE = 255,
- OP_FTREXEC = 256,
- OP_FTEREAD = 257,
- OP_FTEWRITE = 258,
- OP_FTEEXEC = 259,
- OP_FTIS = 260,
- OP_FTSIZE = 261,
- OP_FTMTIME = 262,
- OP_FTATIME = 263,
- OP_FTCTIME = 264,
- OP_FTROWNED = 265,
- OP_FTEOWNED = 266,
- OP_FTZERO = 267,
- OP_FTSOCK = 268,
- OP_FTCHR = 269,
- OP_FTBLK = 270,
- OP_FTFILE = 271,
- OP_FTDIR = 272,
- OP_FTPIPE = 273,
- OP_FTSUID = 274,
- OP_FTSGID = 275,
- OP_FTSVTX = 276,
- OP_FTLINK = 277,
- OP_FTTTY = 278,
- OP_FTTEXT = 279,
- OP_FTBINARY = 280,
- OP_CHDIR = 281,
- OP_CHOWN = 282,
- OP_CHROOT = 283,
- OP_UNLINK = 284,
- OP_CHMOD = 285,
- OP_UTIME = 286,
- OP_RENAME = 287,
- OP_LINK = 288,
- OP_SYMLINK = 289,
- OP_READLINK = 290,
- OP_MKDIR = 291,
- OP_RMDIR = 292,
- OP_OPEN_DIR = 293,
- OP_READDIR = 294,
- OP_TELLDIR = 295,
- OP_SEEKDIR = 296,
- OP_REWINDDIR = 297,
- OP_CLOSEDIR = 298,
- OP_FORK = 299,
- OP_WAIT = 300,
- OP_WAITPID = 301,
- OP_SYSTEM = 302,
- OP_EXEC = 303,
- OP_KILL = 304,
- OP_GETPPID = 305,
- OP_GETPGRP = 306,
- OP_SETPGRP = 307,
- OP_GETPRIORITY = 308,
- OP_SETPRIORITY = 309,
- OP_TIME = 310,
- OP_TMS = 311,
- OP_LOCALTIME = 312,
- OP_GMTIME = 313,
- OP_ALARM = 314,
- OP_SLEEP = 315,
- OP_SHMGET = 316,
- OP_SHMCTL = 317,
- OP_SHMREAD = 318,
- OP_SHMWRITE = 319,
- OP_MSGGET = 320,
- OP_MSGCTL = 321,
- OP_MSGSND = 322,
- OP_MSGRCV = 323,
- OP_SEMOP = 324,
- OP_SEMGET = 325,
- OP_SEMCTL = 326,
- OP_REQUIRE = 327,
- OP_DOFILE = 328,
- OP_HINTSEVAL = 329,
- OP_ENTEREVAL = 330,
- OP_LEAVEEVAL = 331,
- OP_ENTERTRY = 332,
- OP_LEAVETRY = 333,
- OP_GHBYNAME = 334,
- OP_GHBYADDR = 335,
- OP_GHOSTENT = 336,
- OP_GNBYNAME = 337,
- OP_GNBYADDR = 338,
- OP_GNETENT = 339,
- OP_GPBYNAME = 340,
- OP_GPBYNUMBER = 341,
- OP_GPROTOENT = 342,
- OP_GSBYNAME = 343,
- OP_GSBYPORT = 344,
- OP_GSERVENT = 345,
- OP_SHOSTENT = 346,
- OP_SNETENT = 347,
- OP_SPROTOENT = 348,
- OP_SSERVENT = 349,
- OP_EHOSTENT = 350,
- OP_ENETENT = 351,
- OP_EPROTOENT = 352,
- OP_ESERVENT = 353,
- OP_GPWNAM = 354,
- OP_GPWUID = 355,
- OP_GPWENT = 356,
- OP_SPWENT = 357,
- OP_EPWENT = 358,
- OP_GGRNAM = 359,
- OP_GGRGID = 360,
- OP_GGRENT = 361,
- OP_SGRENT = 362,
- OP_EGRENT = 363,
- OP_GETLOGIN = 364,
- OP_SYSCALL = 365,
- OP_LOCK = 366,
- OP_ONCE = 367,
- OP_CUSTOM = 368,
- OP_REACH = 369,
- OP_RKEYS = 370,
- OP_RVALUES = 371,
- OP_COREARGS = 372,
- OP_RUNCV = 373,
- OP_FC = 374,
- OP_PADCV = 375,
- OP_INTROCV = 376,
- OP_CLONECV = 377,
- OP_PADRANGE = 378,
+ OP_NBIT_AND = 95,
+ OP_NBIT_XOR = 96,
+ OP_NBIT_OR = 97,
+ OP_SBIT_AND = 98,
+ OP_SBIT_XOR = 99,
+ OP_SBIT_OR = 100,
+ OP_NEGATE = 101,
+ OP_I_NEGATE = 102,
+ OP_NOT = 103,
+ OP_COMPLEMENT = 104,
+ OP_NCOMPLEMENT = 105,
+ OP_SCOMPLEMENT = 106,
+ OP_SMARTMATCH = 107,
+ OP_ATAN2 = 108,
+ OP_SIN = 109,
+ OP_COS = 110,
+ OP_RAND = 111,
+ OP_SRAND = 112,
+ OP_EXP = 113,
+ OP_LOG = 114,
+ OP_SQRT = 115,
+ OP_INT = 116,
+ OP_HEX = 117,
+ OP_OCT = 118,
+ OP_ABS = 119,
+ OP_LENGTH = 120,
+ OP_SUBSTR = 121,
+ OP_VEC = 122,
+ OP_INDEX = 123,
+ OP_RINDEX = 124,
+ OP_SPRINTF = 125,
+ OP_FORMLINE = 126,
+ OP_ORD = 127,
+ OP_CHR = 128,
+ OP_CRYPT = 129,
+ OP_UCFIRST = 130,
+ OP_LCFIRST = 131,
+ OP_UC = 132,
+ OP_LC = 133,
+ OP_QUOTEMETA = 134,
+ OP_RV2AV = 135,
+ OP_AELEMFAST = 136,
+ OP_AELEMFAST_LEX = 137,
+ OP_AELEM = 138,
+ OP_ASLICE = 139,
+ OP_KVASLICE = 140,
+ OP_AEACH = 141,
+ OP_AKEYS = 142,
+ OP_AVALUES = 143,
+ OP_EACH = 144,
+ OP_VALUES = 145,
+ OP_KEYS = 146,
+ OP_DELETE = 147,
+ OP_EXISTS = 148,
+ OP_RV2HV = 149,
+ OP_HELEM = 150,
+ OP_HSLICE = 151,
+ OP_KVHSLICE = 152,
+ OP_MULTIDEREF = 153,
+ OP_UNPACK = 154,
+ OP_PACK = 155,
+ OP_SPLIT = 156,
+ OP_JOIN = 157,
+ OP_LIST = 158,
+ OP_LSLICE = 159,
+ OP_ANONLIST = 160,
+ OP_ANONHASH = 161,
+ OP_SPLICE = 162,
+ OP_PUSH = 163,
+ OP_POP = 164,
+ OP_SHIFT = 165,
+ OP_UNSHIFT = 166,
+ OP_SORT = 167,
+ OP_REVERSE = 168,
+ OP_GREPSTART = 169,
+ OP_GREPWHILE = 170,
+ OP_MAPSTART = 171,
+ OP_MAPWHILE = 172,
+ OP_RANGE = 173,
+ OP_FLIP = 174,
+ OP_FLOP = 175,
+ OP_AND = 176,
+ OP_OR = 177,
+ OP_XOR = 178,
+ OP_DOR = 179,
+ OP_COND_EXPR = 180,
+ OP_ANDASSIGN = 181,
+ OP_ORASSIGN = 182,
+ OP_DORASSIGN = 183,
+ OP_METHOD = 184,
+ OP_ENTERSUB = 185,
+ OP_LEAVESUB = 186,
+ OP_LEAVESUBLV = 187,
+ OP_CALLER = 188,
+ OP_WARN = 189,
+ OP_DIE = 190,
+ OP_RESET = 191,
+ OP_LINESEQ = 192,
+ OP_NEXTSTATE = 193,
+ OP_DBSTATE = 194,
+ OP_UNSTACK = 195,
+ OP_ENTER = 196,
+ OP_LEAVE = 197,
+ OP_SCOPE = 198,
+ OP_ENTERITER = 199,
+ OP_ITER = 200,
+ OP_ENTERLOOP = 201,
+ OP_LEAVELOOP = 202,
+ OP_RETURN = 203,
+ OP_LAST = 204,
+ OP_NEXT = 205,
+ OP_REDO = 206,
+ OP_DUMP = 207,
+ OP_GOTO = 208,
+ OP_EXIT = 209,
+ OP_METHOD_NAMED = 210,
+ OP_METHOD_SUPER = 211,
+ OP_METHOD_REDIR = 212,
+ OP_METHOD_REDIR_SUPER = 213,
+ OP_ENTERGIVEN = 214,
+ OP_LEAVEGIVEN = 215,
+ OP_ENTERWHEN = 216,
+ OP_LEAVEWHEN = 217,
+ OP_BREAK = 218,
+ OP_CONTINUE = 219,
+ OP_OPEN = 220,
+ OP_CLOSE = 221,
+ OP_PIPE_OP = 222,
+ OP_FILENO = 223,
+ OP_UMASK = 224,
+ OP_BINMODE = 225,
+ OP_TIE = 226,
+ OP_UNTIE = 227,
+ OP_TIED = 228,
+ OP_DBMOPEN = 229,
+ OP_DBMCLOSE = 230,
+ OP_SSELECT = 231,
+ OP_SELECT = 232,
+ OP_GETC = 233,
+ OP_READ = 234,
+ OP_ENTERWRITE = 235,
+ OP_LEAVEWRITE = 236,
+ OP_PRTF = 237,
+ OP_PRINT = 238,
+ OP_SAY = 239,
+ OP_SYSOPEN = 240,
+ OP_SYSSEEK = 241,
+ OP_SYSREAD = 242,
+ OP_SYSWRITE = 243,
+ OP_EOF = 244,
+ OP_TELL = 245,
+ OP_SEEK = 246,
+ OP_TRUNCATE = 247,
+ OP_FCNTL = 248,
+ OP_IOCTL = 249,
+ OP_FLOCK = 250,
+ OP_SEND = 251,
+ OP_RECV = 252,
+ OP_SOCKET = 253,
+ OP_SOCKPAIR = 254,
+ OP_BIND = 255,
+ OP_CONNECT = 256,
+ OP_LISTEN = 257,
+ OP_ACCEPT = 258,
+ OP_SHUTDOWN = 259,
+ OP_GSOCKOPT = 260,
+ OP_SSOCKOPT = 261,
+ OP_GETSOCKNAME = 262,
+ OP_GETPEERNAME = 263,
+ OP_LSTAT = 264,
+ OP_STAT = 265,
+ OP_FTRREAD = 266,
+ OP_FTRWRITE = 267,
+ OP_FTREXEC = 268,
+ OP_FTEREAD = 269,
+ OP_FTEWRITE = 270,
+ OP_FTEEXEC = 271,
+ OP_FTIS = 272,
+ OP_FTSIZE = 273,
+ OP_FTMTIME = 274,
+ OP_FTATIME = 275,
+ OP_FTCTIME = 276,
+ OP_FTROWNED = 277,
+ OP_FTEOWNED = 278,
+ OP_FTZERO = 279,
+ OP_FTSOCK = 280,
+ OP_FTCHR = 281,
+ OP_FTBLK = 282,
+ OP_FTFILE = 283,
+ OP_FTDIR = 284,
+ OP_FTPIPE = 285,
+ OP_FTSUID = 286,
+ OP_FTSGID = 287,
+ OP_FTSVTX = 288,
+ OP_FTLINK = 289,
+ OP_FTTTY = 290,
+ OP_FTTEXT = 291,
+ OP_FTBINARY = 292,
+ OP_CHDIR = 293,
+ OP_CHOWN = 294,
+ OP_CHROOT = 295,
+ OP_UNLINK = 296,
+ OP_CHMOD = 297,
+ OP_UTIME = 298,
+ OP_RENAME = 299,
+ OP_LINK = 300,
+ OP_SYMLINK = 301,
+ OP_READLINK = 302,
+ OP_MKDIR = 303,
+ OP_RMDIR = 304,
+ OP_OPEN_DIR = 305,
+ OP_READDIR = 306,
+ OP_TELLDIR = 307,
+ OP_SEEKDIR = 308,
+ OP_REWINDDIR = 309,
+ OP_CLOSEDIR = 310,
+ OP_FORK = 311,
+ OP_WAIT = 312,
+ OP_WAITPID = 313,
+ OP_SYSTEM = 314,
+ OP_EXEC = 315,
+ OP_KILL = 316,
+ OP_GETPPID = 317,
+ OP_GETPGRP = 318,
+ OP_SETPGRP = 319,
+ OP_GETPRIORITY = 320,
+ OP_SETPRIORITY = 321,
+ OP_TIME = 322,
+ OP_TMS = 323,
+ OP_LOCALTIME = 324,
+ OP_GMTIME = 325,
+ OP_ALARM = 326,
+ OP_SLEEP = 327,
+ OP_SHMGET = 328,
+ OP_SHMCTL = 329,
+ OP_SHMREAD = 330,
+ OP_SHMWRITE = 331,
+ OP_MSGGET = 332,
+ OP_MSGCTL = 333,
+ OP_MSGSND = 334,
+ OP_MSGRCV = 335,
+ OP_SEMOP = 336,
+ OP_SEMGET = 337,
+ OP_SEMCTL = 338,
+ OP_REQUIRE = 339,
+ OP_DOFILE = 340,
+ OP_HINTSEVAL = 341,
+ OP_ENTEREVAL = 342,
+ OP_LEAVEEVAL = 343,
+ OP_ENTERTRY = 344,
+ OP_LEAVETRY = 345,
+ OP_GHBYNAME = 346,
+ OP_GHBYADDR = 347,
+ OP_GHOSTENT = 348,
+ OP_GNBYNAME = 349,
+ OP_GNBYADDR = 350,
+ OP_GNETENT = 351,
+ OP_GPBYNAME = 352,
+ OP_GPBYNUMBER = 353,
+ OP_GPROTOENT = 354,
+ OP_GSBYNAME = 355,
+ OP_GSBYPORT = 356,
+ OP_GSERVENT = 357,
+ OP_SHOSTENT = 358,
+ OP_SNETENT = 359,
+ OP_SPROTOENT = 360,
+ OP_SSERVENT = 361,
+ OP_EHOSTENT = 362,
+ OP_ENETENT = 363,
+ OP_EPROTOENT = 364,
+ OP_ESERVENT = 365,
+ OP_GPWNAM = 366,
+ OP_GPWUID = 367,
+ OP_GPWENT = 368,
+ OP_SPWENT = 369,
+ OP_EPWENT = 370,
+ OP_GGRNAM = 371,
+ OP_GGRGID = 372,
+ OP_GGRENT = 373,
+ OP_SGRENT = 374,
+ OP_EGRENT = 375,
+ OP_GETLOGIN = 376,
+ OP_SYSCALL = 377,
+ OP_LOCK = 378,
+ OP_ONCE = 379,
+ OP_CUSTOM = 380,
+ OP_REACH = 381,
+ OP_RKEYS = 382,
+ OP_RVALUES = 383,
+ OP_COREARGS = 384,
+ OP_RUNCV = 385,
+ OP_FC = 386,
+ OP_PADCV = 387,
+ OP_INTROCV = 388,
+ OP_CLONECV = 389,
+ OP_PADRANGE = 390,
+ OP_REFASSIGN = 391,
+ OP_LVREF = 392,
+ OP_LVREFSLICE = 393,
+ OP_LVAVREF = 394,
+ OP_ANONCONST = 395,
OP_max
} opcode;
-#define MAXO 379
+#define MAXO 396
#define OP_FREED MAXO
/* the OP_IS_* macros are optimized to a simple range check because
@@ -419,4 +436,7 @@ typedef enum opcode {
#define OP_IS_DIRHOP(op) \
((op) >= OP_READDIR && (op) <= OP_CLOSEDIR)
+#define OP_IS_INFIX_BIT(op) \
+ ((op) >= OP_BIT_AND && (op) <= OP_SBIT_OR)
+
/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/overload.h b/Master/tlpkg/tlperl/lib/CORE/overload.h
index 1628ac00252..50e7660ad7a 100644
--- a/Master/tlpkg/tlperl/lib/CORE/overload.h
+++ b/Master/tlpkg/tlperl/lib/CORE/overload.h
@@ -62,26 +62,33 @@ enum {
rshift_ass_amg, /* 0x2d >>= */
band_amg, /* 0x2e & */
band_ass_amg, /* 0x2f &= */
- bor_amg, /* 0x30 | */
- bor_ass_amg, /* 0x31 |= */
- bxor_amg, /* 0x32 ^ */
- bxor_ass_amg, /* 0x33 ^= */
- ncmp_amg, /* 0x34 <=> */
- scmp_amg, /* 0x35 cmp */
- compl_amg, /* 0x36 ~ */
- atan2_amg, /* 0x37 atan2 */
- cos_amg, /* 0x38 cos */
- sin_amg, /* 0x39 sin */
- exp_amg, /* 0x3a exp */
- log_amg, /* 0x3b log */
- sqrt_amg, /* 0x3c sqrt */
- repeat_amg, /* 0x3d x */
- repeat_ass_amg, /* 0x3e x= */
- concat_amg, /* 0x3f . */
- concat_ass_amg, /* 0x40 .= */
- smart_amg, /* 0x41 ~~ */
- ftest_amg, /* 0x42 -X */
- regexp_amg, /* 0x43 qr */
+ sband_amg, /* 0x30 &. */
+ sband_ass_amg, /* 0x31 &.= */
+ bor_amg, /* 0x32 | */
+ bor_ass_amg, /* 0x33 |= */
+ sbor_amg, /* 0x34 |. */
+ sbor_ass_amg, /* 0x35 |.= */
+ bxor_amg, /* 0x36 ^ */
+ bxor_ass_amg, /* 0x37 ^= */
+ sbxor_amg, /* 0x38 ^. */
+ sbxor_ass_amg, /* 0x39 ^.= */
+ ncmp_amg, /* 0x3a <=> */
+ scmp_amg, /* 0x3b cmp */
+ compl_amg, /* 0x3c ~ */
+ scompl_amg, /* 0x3d ~. */
+ atan2_amg, /* 0x3e atan2 */
+ cos_amg, /* 0x3f cos */
+ sin_amg, /* 0x40 sin */
+ exp_amg, /* 0x41 exp */
+ log_amg, /* 0x42 log */
+ sqrt_amg, /* 0x43 sqrt */
+ repeat_amg, /* 0x44 x */
+ repeat_ass_amg, /* 0x45 x= */
+ concat_amg, /* 0x46 . */
+ concat_ass_amg, /* 0x47 .= */
+ smart_amg, /* 0x48 ~~ */
+ ftest_amg, /* 0x49 -X */
+ regexp_amg, /* 0x4a qr */
max_amg_code
/* Do not leave a trailing comma here. C9X allows it, C89 doesn't. */
};
diff --git a/Master/tlpkg/tlperl/lib/CORE/pad.h b/Master/tlpkg/tlperl/lib/CORE/pad.h
index 90517c65df8..1f86248ac69 100644
--- a/Master/tlpkg/tlperl/lib/CORE/pad.h
+++ b/Master/tlpkg/tlperl/lib/CORE/pad.h
@@ -27,81 +27,86 @@ typedef U64TYPE PADOFFSET;
#endif
#define NOT_IN_PAD ((PADOFFSET) -1)
+/* B.xs expects the first members of these two structs to line up
+ (xpadl_max with xpadnl_fill).
+ */
struct padlist {
SSize_t xpadl_max; /* max index for which array has space */
PAD ** xpadl_alloc; /* pointer to beginning of array of AVs */
- PADNAMELIST*xpadl_outid; /* Padnamelist of outer pad; used as ID */
+ U32 xpadl_id; /* Semi-unique ID, shared between clones */
+ U32 xpadl_outid; /* ID of outer pad */
+};
+
+struct padnamelist {
+ SSize_t xpadnl_fill; /* max index in use */
+ PADNAME ** xpadnl_alloc; /* pointer to beginning of array */
+ SSize_t xpadnl_max; /* max index for which array has space */
+ PADOFFSET xpadnl_max_named; /* highest index with len > 0 */
+ U32 xpadnl_refcnt;
+};
+
+/* PERL_PADNAME_MINIMAL uses less memory, but on some platforms
+ PERL_PADNAME_ALIGNED may be faster, so platform-specific hints can
+ define one or the other. */
+#if defined(PERL_PADNAME_MINIMAL) && defined (PERL_PADNAME_ALIGNED)
+# error PERL_PADNAME_MINIMAL and PERL_PADNAME_ALIGNED are exclusive
+#endif
+
+#if !defined(PERL_PADNAME_MINIMAL) && !defined(PERL_PADNAME_ALIGNED)
+# define PERL_PADNAME_MINIMAL
+#endif
+
+#define _PADNAME_BASE \
+ char * xpadn_pv; \
+ HV * xpadn_ourstash; \
+ union { \
+ HV * xpadn_typestash; \
+ CV * xpadn_protocv; \
+ } xpadn_type_u; \
+ U32 xpadn_low; \
+ U32 xpadn_high; \
+ U32 xpadn_refcnt; \
+ int xpadn_gen; \
+ U8 xpadn_len; \
+ U8 xpadn_flags
+
+struct padname {
+ _PADNAME_BASE;
+};
+
+struct padname_with_str {
+#ifdef PERL_PADNAME_MINIMAL
+ _PADNAME_BASE;
+#else
+ struct padname xpadn_padname;
+#endif
+ char xpadn_str[1];
};
+#undef _PADNAME_BASE
+
+#define PADNAME_FROM_PV(s) \
+ ((PADNAME *)((s) - STRUCT_OFFSET(struct padname_with_str, xpadn_str)))
+
/* a value that PL_cop_seqmax is guaranteed never to be,
* flagging that a lexical is being introduced, or has not yet left scope
*/
#define PERL_PADSEQ_INTRO U32_MAX
+#define COP_SEQMAX_INC \
+ (PL_cop_seqmax++, \
+ (void)(PL_cop_seqmax == PERL_PADSEQ_INTRO && PL_cop_seqmax++))
/* B.xs needs these for the benefit of B::Deparse */
/* Low range end is exclusive (valid from the cop seq after this one) */
/* High range end is inclusive (valid up to this cop seq) */
-#if defined (DEBUGGING) && defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
-# define COP_SEQ_RANGE_LOW(sv) \
- (({ const SV *const _sv_cop_seq_range_low = (const SV *) (sv); \
- assert(SvTYPE(_sv_cop_seq_range_low) == SVt_NV \
- || SvTYPE(_sv_cop_seq_range_low) >= SVt_PVNV); \
- assert(SvTYPE(_sv_cop_seq_range_low) != SVt_PVAV); \
- assert(SvTYPE(_sv_cop_seq_range_low) != SVt_PVHV); \
- assert(SvTYPE(_sv_cop_seq_range_low) != SVt_PVCV); \
- assert(SvTYPE(_sv_cop_seq_range_low) != SVt_PVFM); \
- assert(!isGV_with_GP(_sv_cop_seq_range_low)); \
- ((XPVNV*) MUTABLE_PTR(SvANY(_sv_cop_seq_range_low)))->xnv_u.xpad_cop_seq.xlow; \
- }))
-# define COP_SEQ_RANGE_HIGH(sv) \
- (({ const SV *const _sv_cop_seq_range_high = (const SV *) (sv); \
- assert(SvTYPE(_sv_cop_seq_range_high) == SVt_NV \
- || SvTYPE(_sv_cop_seq_range_high) >= SVt_PVNV); \
- assert(SvTYPE(_sv_cop_seq_range_high) != SVt_PVAV); \
- assert(SvTYPE(_sv_cop_seq_range_high) != SVt_PVHV); \
- assert(SvTYPE(_sv_cop_seq_range_high) != SVt_PVCV); \
- assert(SvTYPE(_sv_cop_seq_range_high) != SVt_PVFM); \
- assert(!isGV_with_GP(_sv_cop_seq_range_high)); \
- ((XPVNV*) MUTABLE_PTR(SvANY(_sv_cop_seq_range_high)))->xnv_u.xpad_cop_seq.xhigh; \
- }))
-# define PARENT_PAD_INDEX(sv) \
- (({ const SV *const _sv_parent_pad_index = (const SV *) (sv); \
- assert(SvTYPE(_sv_parent_pad_index) == SVt_NV \
- || SvTYPE(_sv_parent_pad_index) >= SVt_PVNV); \
- assert(SvTYPE(_sv_parent_pad_index) != SVt_PVAV); \
- assert(SvTYPE(_sv_parent_pad_index) != SVt_PVHV); \
- assert(SvTYPE(_sv_parent_pad_index) != SVt_PVCV); \
- assert(SvTYPE(_sv_parent_pad_index) != SVt_PVFM); \
- assert(!isGV_with_GP(_sv_parent_pad_index)); \
- ((XPVNV*) MUTABLE_PTR(SvANY(_sv_parent_pad_index)))->xnv_u.xpad_cop_seq.xlow; \
- }))
-# define PARENT_FAKELEX_FLAGS(sv) \
- (({ const SV *const _sv_parent_fakelex_flags = (const SV *) (sv); \
- assert(SvTYPE(_sv_parent_fakelex_flags) == SVt_NV \
- || SvTYPE(_sv_parent_fakelex_flags) >= SVt_PVNV); \
- assert(SvTYPE(_sv_parent_fakelex_flags) != SVt_PVAV); \
- assert(SvTYPE(_sv_parent_fakelex_flags) != SVt_PVHV); \
- assert(SvTYPE(_sv_parent_fakelex_flags) != SVt_PVCV); \
- assert(SvTYPE(_sv_parent_fakelex_flags) != SVt_PVFM); \
- assert(!isGV_with_GP(_sv_parent_fakelex_flags)); \
- ((XPVNV*) MUTABLE_PTR(SvANY(_sv_parent_fakelex_flags)))->xnv_u.xpad_cop_seq.xhigh; \
- }))
-#else
-# define COP_SEQ_RANGE_LOW(sv) \
- (0 + (((XPVNV*) SvANY(sv))->xnv_u.xpad_cop_seq.xlow))
-# define COP_SEQ_RANGE_HIGH(sv) \
- (0 + (((XPVNV*) SvANY(sv))->xnv_u.xpad_cop_seq.xhigh))
-
-
-# define PARENT_PAD_INDEX(sv) \
- (0 + (((XPVNV*) SvANY(sv))->xnv_u.xpad_cop_seq.xlow))
-# define PARENT_FAKELEX_FLAGS(sv) \
- (0 + (((XPVNV*) SvANY(sv))->xnv_u.xpad_cop_seq.xhigh))
-#endif
+#define COP_SEQ_RANGE_LOW(pn) (pn)->xpadn_low
+#define COP_SEQ_RANGE_HIGH(pn) (pn)->xpadn_high
+#define PARENT_PAD_INDEX(pn) (pn)->xpadn_low
+#define PARENT_FAKELEX_FLAGS(pn) (pn)->xpadn_high
/* Flags set in the SvIVX field of FAKE namesvs */
@@ -129,15 +134,12 @@ typedef enum {
#define padadd_NO_DUP_CHECK 0x04 /* skip warning on dups. */
#define padadd_STALEOK 0x08 /* allow stale lexical in active
* sub, but only one level up */
-#define padadd_UTF8_NAME SVf_UTF8 /* name is UTF-8 encoded. */
/* ASSERT_CURPAD_LEGAL and ASSERT_CURPAD_ACTIVE respectively determine
* whether PL_comppad and PL_curpad are consistent and whether they have
* active values */
-#ifndef PERL_MAD
# define pad_peg(label)
-#endif
#ifdef DEBUGGING
# define ASSERT_CURPAD_LEGAL(label) \
@@ -202,6 +204,12 @@ The C array of pad names.
=for apidoc Amx|SSize_t|PadnamelistMAX|PADNAMELIST pnl
The index of the last pad name.
+=for apidoc Amx|SSize_t|PadnamelistREFCNT|PADNAMELIST pnl
+The reference count of the pad name list.
+
+=for apidoc Amx|void|PadnamelistREFCNT_dec|PADNAMELIST pnl
+Lowers the reference count of the pad name list.
+
=for apidoc Amx|SV **|PadARRAY|PAD pad
The C array of pad entries.
@@ -209,18 +217,17 @@ The C array of pad entries.
The index of the last pad entry.
=for apidoc Amx|char *|PadnamePV|PADNAME pn
-The name stored in the pad name struct. This returns NULL for a target or
-GV slot.
+The name stored in the pad name struct. This returns NULL for a target
+slot.
=for apidoc Amx|STRLEN|PadnameLEN|PADNAME pn
The length of the name.
=for apidoc Amx|bool|PadnameUTF8|PADNAME pn
-Whether PadnamePV is in UTF8.
+Whether PadnamePV is in UTF8. Currently, this is always true.
=for apidoc Amx|SV *|PadnameSV|PADNAME pn
-Returns the pad name as an SV. This is currently just C<pn>. It will
-begin returning a new mortal SV if pad names ever stop being SVs.
+Returns the pad name as a mortal SV.
=for apidoc m|bool|PadnameIsOUR|PADNAME pn
Whether this is an "our" variable.
@@ -229,7 +236,8 @@ Whether this is an "our" variable.
The stash in which this "our" variable was declared.
=for apidoc m|bool|PadnameOUTER|PADNAME pn
-Whether this entry belongs to an outer pad.
+Whether this entry belongs to an outer pad. Entries for which this is true
+are often referred to as 'fake'.
=for apidoc m|bool|PadnameIsSTATE|PADNAME pn
Whether this is a "state" variable.
@@ -238,6 +246,12 @@ Whether this is a "state" variable.
The stash associated with a typed lexical. This returns the %Foo:: hash
for C<my Foo $bar>.
+=for apidoc Amx|SSize_t|PadnameREFCNT|PADNAME pn
+The reference count of the pad name.
+
+=for apidoc Amx|void|PadnameREFCNT_dec|PADNAME pn
+Lowers the reference count of the pad name.
+
=for apidoc m|SV *|PAD_SETSV |PADOFFSET po|SV* sv
Set the slot at offset C<po> in the current pad to C<sv>
@@ -281,29 +295,59 @@ Restore the old pad saved into the local variable opad by PAD_SAVE_LOCAL()
#define PadlistARRAY(pl) (pl)->xpadl_alloc
#define PadlistMAX(pl) (pl)->xpadl_max
-#define PadlistNAMES(pl) (*PadlistARRAY(pl))
+#define PadlistNAMES(pl) ((PADNAMELIST *)*PadlistARRAY(pl))
#define PadlistNAMESARRAY(pl) PadnamelistARRAY(PadlistNAMES(pl))
#define PadlistNAMESMAX(pl) PadnamelistMAX(PadlistNAMES(pl))
#define PadlistREFCNT(pl) 1 /* reserved for future use */
-#define PadnamelistARRAY(pnl) AvARRAY(pnl)
-#define PadnamelistMAX(pnl) AvFILLp(pnl)
-#define PadnamelistMAXNAMED(pnl) \
- ((XPVAV*) SvANY(pnl))->xmg_u.xmg_hash_index
+#define PadnamelistARRAY(pnl) (pnl)->xpadnl_alloc
+#define PadnamelistMAX(pnl) (pnl)->xpadnl_fill
+#define PadnamelistMAXNAMED(pnl) (pnl)->xpadnl_max_named
+#define PadnamelistREFCNT(pnl) (pnl)->xpadnl_refcnt
+#define PadnamelistREFCNT_dec(pnl) Perl_padnamelist_free(aTHX_ pnl)
#define PadARRAY(pad) AvARRAY(pad)
#define PadMAX(pad) AvFILLp(pad)
-#define PadnamePV(pn) (SvPOKp(pn) ? SvPVX(pn) : NULL)
-#define PadnameLEN(pn) ((pn) == &PL_sv_undef ? 0 : SvCUR(pn))
-#define PadnameUTF8(pn) !!SvUTF8(pn)
-#define PadnameSV(pn) pn
-#define PadnameIsOUR(pn) !!SvPAD_OUR(pn)
-#define PadnameOURSTASH(pn) SvOURSTASH(pn)
-#define PadnameOUTER(pn) !!SvFAKE(pn)
-#define PadnameIsSTATE(pn) !!SvPAD_STATE(pn)
-#define PadnameTYPE(pn) (SvPAD_TYPED(pn) ? SvSTASH(pn) : NULL)
-
+#define PadnamePV(pn) (pn)->xpadn_pv
+#define PadnameLEN(pn) (pn)->xpadn_len
+#define PadnameUTF8(pn) 1
+#define PadnameSV(pn) \
+ newSVpvn_flags(PadnamePV(pn), PadnameLEN(pn), SVs_TEMP|SVf_UTF8)
+#define PadnameFLAGS(pn) (pn)->xpadn_flags
+#define PadnameIsOUR(pn) (!!(pn)->xpadn_ourstash)
+#define PadnameOURSTASH(pn) (pn)->xpadn_ourstash
+#define PadnameTYPE(pn) (pn)->xpadn_type_u.xpadn_typestash
+#define PadnamePROTOCV(pn) (pn)->xpadn_type_u.xpadn_protocv
+#define PadnameREFCNT(pn) (pn)->xpadn_refcnt
+#define PadnameREFCNT_dec(pn) Perl_padname_free(aTHX_ pn)
+#define PadnameOURSTASH_set(pn,s) (PadnameOURSTASH(pn) = (s))
+#define PadnameTYPE_set(pn,s) (PadnameTYPE(pn) = (s))
+#define PadnameOUTER(pn) (PadnameFLAGS(pn) & PADNAMEt_OUTER)
+#define PadnameIsSTATE(pn) (PadnameFLAGS(pn) & PADNAMEt_STATE)
+#define PadnameLVALUE(pn) (PadnameFLAGS(pn) & PADNAMEt_LVALUE)
+
+#define PadnameLVALUE_on(pn) (PadnameFLAGS(pn) |= PADNAMEt_LVALUE)
+#define PadnameIsSTATE_on(pn) (PadnameFLAGS(pn) |= PADNAMEt_STATE)
+
+#define PADNAMEt_OUTER 1 /* outer lexical var */
+#define PADNAMEt_STATE 2 /* state var */
+#define PADNAMEt_LVALUE 4 /* used as lvalue */
+#define PADNAMEt_TYPED 8 /* for B; unused by core */
+#define PADNAMEt_OUR 16 /* for B; unused by core */
+
+/* backward compatibility */
+#define SvPAD_STATE PadnameIsSTATE
+#define SvPAD_TYPED(pn) (!!PadnameTYPE(pn))
+#define SvPAD_OUR(pn) (!!PadnameOURSTASH(pn))
+#define SvPAD_STATE_on PadnameIsSTATE_on
+#define SvPAD_TYPED_on(pn) (PadnameFLAGS(pn) |= PADNAMEt_TYPED)
+#define SvPAD_OUR_on(pn) (PadnameFLAGS(pn) |= PADNAMEt_OUR)
+#define SvOURSTASH PadnameOURSTASH
+#define SvOURSTASH_set PadnameOURSTASH_set
+#define SVpad_STATE PADNAMEt_STATE
+#define SVpad_TYPED PADNAMEt_TYPED
+#define SVpad_OUR PADNAMEt_OUR
#ifdef DEBUGGING
# define PAD_SV(po) pad_sv(po)
@@ -400,19 +444,21 @@ ling pad (lvalue) to C<gen>. Note that C<SvUV_set> is hijacked for this purpose
*/
#define PAD_COMPNAME(po) PAD_COMPNAME_SV(po)
-#define PAD_COMPNAME_SV(po) (*av_fetch(PL_comppad_name, (po), FALSE))
-#define PAD_COMPNAME_FLAGS(po) SvFLAGS(PAD_COMPNAME_SV(po))
+#define PAD_COMPNAME_SV(po) (PadnamelistARRAY(PL_comppad_name)[(po)])
+#define PAD_COMPNAME_FLAGS(po) PadnameFLAGS(PAD_COMPNAME(po))
#define PAD_COMPNAME_FLAGS_isOUR(po) SvPAD_OUR(PAD_COMPNAME_SV(po))
-#define PAD_COMPNAME_PV(po) SvPV_nolen(PAD_COMPNAME_SV(po))
+#define PAD_COMPNAME_PV(po) PadnamePV(PAD_COMPNAME(po))
-#define PAD_COMPNAME_TYPE(po) pad_compname_type(po)
+#define PAD_COMPNAME_TYPE(po) PadnameTYPE(PAD_COMPNAME(po))
#define PAD_COMPNAME_OURSTASH(po) \
(SvOURSTASH(PAD_COMPNAME_SV(po)))
-#define PAD_COMPNAME_GEN(po) ((STRLEN)SvUVX(AvARRAY(PL_comppad_name)[po]))
+#define PAD_COMPNAME_GEN(po) \
+ ((STRLEN)PadnamelistARRAY(PL_comppad_name)[po]->xpadn_gen)
-#define PAD_COMPNAME_GEN_set(po, gen) SvUV_set(AvARRAY(PL_comppad_name)[po], (UV)(gen))
+#define PAD_COMPNAME_GEN_set(po, gen) \
+ (PadnamelistARRAY(PL_comppad_name)[po]->xpadn_gen = (gen))
/*
@@ -433,7 +479,8 @@ Clone the state variables associated with running and compiling pads.
#define PAD_CLONE_VARS(proto_perl, param) \
PL_comppad = av_dup(proto_perl->Icomppad, param); \
PL_curpad = PL_comppad ? AvARRAY(PL_comppad) : NULL; \
- PL_comppad_name = av_dup(proto_perl->Icomppad_name, param); \
+ PL_comppad_name = \
+ padnamelist_dup(proto_perl->Icomppad_name, param); \
PL_comppad_name_fill = proto_perl->Icomppad_name_fill; \
PL_comppad_name_floor = proto_perl->Icomppad_name_floor; \
PL_min_intro_pending = proto_perl->Imin_intro_pending; \
@@ -468,11 +515,5 @@ of a string/length pair.
Perl_pad_findmy_pvn(aTHX_ STR_WITH_LEN(name), flags)
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/parser.h b/Master/tlpkg/tlperl/lib/CORE/parser.h
index ff5867e4427..96ab4f5ff57 100644
--- a/Master/tlpkg/tlperl/lib/CORE/parser.h
+++ b/Master/tlpkg/tlperl/lib/CORE/parser.h
@@ -56,7 +56,7 @@ typedef struct yy_parser {
U8 lex_defer; /* state after determined token */
U8 lex_dojoin; /* doing an array interpolation
1 = @{...} 2 = ->@ */
- U8 lex_expect; /* expect after determined token */
+ U8 lex_expect; /* UNUSED */
U8 expect; /* how to interpret ambiguous tokens */
I32 lex_formbrack; /* bracket count at outer format level */
OP *lex_inpat; /* in pattern $) and $| are special */
@@ -98,28 +98,9 @@ typedef struct yy_parser {
AV *rsfp_filters; /* holds chain of active source filters */
U8 form_lex_state; /* remember lex_state when parsing fmt */
-#ifdef PERL_MAD
- SV *endwhite;
- I32 faketokens;
- I32 lasttoke;
- SV *nextwhite;
- I32 realtokenstart;
- SV *skipwhite;
- SV *thisclose;
- MADPROP * thismad;
- SV *thisopen;
- SV *thisstuff;
- SV *thistoken;
- SV *thiswhite;
-
-/* What we know when we're in LEX_KNOWNEXT state. */
- NEXTTOKE nexttoke[5]; /* value of next token, if any */
- I32 curforce;
-#else
YYSTYPE nextval[5]; /* value of next token, if any */
I32 nexttype[5]; /* type of next token */
- I32 nexttoke;
-#endif
+ U32 nexttoke;
COP *saved_curcop; /* the previous PL_curcop */
char tokenbuf[256];
@@ -130,6 +111,7 @@ typedef struct yy_parser {
PERL_BITFIELD16 in_pod:1; /* lexer is within a =pod section */
PERL_BITFIELD16 filtered:1; /* source filters in evalbytes */
PERL_BITFIELD16 saw_infix_sigil:1; /* saw & or * or % operator */
+ PERL_BITFIELD16 parsed_sub:1; /* last thing parsed was a sub */
} yy_parser;
/* flags for lexer API */
@@ -167,11 +149,5 @@ enum {
};
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/patchlevel.h b/Master/tlpkg/tlperl/lib/CORE/patchlevel.h
index 07e1217e991..bd566121152 100644
--- a/Master/tlpkg/tlperl/lib/CORE/patchlevel.h
+++ b/Master/tlpkg/tlperl/lib/CORE/patchlevel.h
@@ -14,8 +14,8 @@
* exactly on the third column */
#define PERL_REVISION 5 /* age */
-#define PERL_VERSION 20 /* epoch */
-#define PERL_SUBVERSION 2 /* generation */
+#define PERL_VERSION 22 /* epoch */
+#define PERL_SUBVERSION 1 /* generation */
/* The following numbers describe the earliest compatible version of
Perl ("compatibility" here being defined as sufficient binary/API
@@ -35,7 +35,7 @@
changing them should not be necessary.
*/
#define PERL_API_REVISION 5
-#define PERL_API_VERSION 20
+#define PERL_API_VERSION 22
#define PERL_API_SUBVERSION 0
/*
XXX Note: The selection of non-default Configure options, such
diff --git a/Master/tlpkg/tlperl/lib/CORE/perl.h b/Master/tlpkg/tlperl/lib/CORE/perl.h
index 1325de9b9d0..e840450a3d9 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perl.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perl.h
@@ -28,6 +28,17 @@
# include "config.h"
#endif
+/* NOTE 1: that with gcc -std=c89 the __STDC_VERSION__ is *not* defined
+ * because the __STDC_VERSION__ became a thing only with C90. Therefore,
+ * with gcc, HAS_C99 will never become true as long as we use -std=c89.
+
+ * NOTE 2: headers lie. Do not expect that if HAS_C99 gets to be true,
+ * all the C99 features are there and are correct. */
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
+ defined(_STDC_C99)
+# define HAS_C99 1
+#endif
+
/* See L<perlguts/"The Perl API"> for detailed notes on
* PERL_IMPLICIT_CONTEXT and PERL_IMPLICIT_SYS */
@@ -129,15 +140,15 @@
# ifdef PERL_GLOBAL_STRUCT_PRIVATE
EXTERN_C struct perl_vars* Perl_GetVarsPrivate();
# define PERL_GET_VARS() Perl_GetVarsPrivate() /* see miniperlmain.c */
-# ifndef PERLIO_FUNCS_CONST
-# define PERLIO_FUNCS_CONST /* Can't have these lying around. */
-# endif
# else
# define PERL_GET_VARS() PL_VarsPtr
# endif
# endif
#endif
+/* this used to be off by default, now its on, see perlio.h */
+#define PERLIO_FUNCS_CONST
+
#define pVAR struct perl_vars* my_vars PERL_UNUSED_DECL
#ifdef PERL_GLOBAL_STRUCT
@@ -298,7 +309,7 @@
#endif
#ifndef PERL_UNUSED_DECL
-# if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus)
+# if defined(HASATTRIBUTE_UNUSED) && (!defined(__cplusplus) || (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))
# define PERL_UNUSED_DECL __attribute__unused__
# else
# define PERL_UNUSED_DECL
@@ -307,21 +318,22 @@
/* gcc -Wall:
* for silencing unused variables that are actually used most of the time,
- * but we cannot quite get rid of, such as "ax" in PPCODE+noargs xsubs
+ * but we cannot quite get rid of, such as "ax" in PPCODE+noargs xsubs,
+ * or variables/arguments that are used only in certain configurations.
*/
#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)
+# define PERL_UNUSED_ARG(x) ((void)sizeof(x))
# endif
#endif
#ifndef PERL_UNUSED_VAR
-# define PERL_UNUSED_VAR(x) ((void)x)
+# define PERL_UNUSED_VAR(x) ((void)sizeof(x))
#endif
-#ifdef USE_ITHREADS
+#if defined(USE_ITHREADS) || defined(PERL_GLOBAL_STRUCT)
# define PERL_UNUSED_CONTEXT PERL_UNUSED_ARG(my_perl)
#else
# define PERL_UNUSED_CONTEXT
@@ -384,21 +396,32 @@
*
* Note that "pragma GCC diagnostic push/pop" was added in GCC 4.6, Mar 2011;
* clang only pretends to be GCC 4.2, but still supports push/pop.
+ *
+ * Note on usage: on non-gcc (or lookalike, like clang) compilers
+ * one cannot use these at file (global) level without warnings
+ * since they are defined as empty, which leads into the terminating
+ * semicolon being left alone on a line:
+ * ;
+ * which makes compilers mildly cranky. Therefore at file level one
+ * should use the GCC_DIAG_IGNORE and GCC_DIAG_RESTORE_FILE *without*
+ * the semicolons.
+ *
+ * (A dead-on-arrival solution would be to try to define the macros as
+ * NOOP or dNOOP, those don't work both inside functions and outside.)
*/
-#if defined(__clang) || \
+#if defined(__clang__) || defined(__clang) || \
(defined( __GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406)
-# define GCC_DIAG_DO_PRAGMA_(x) _Pragma (#x)
-
+# define GCC_DIAG_PRAGMA(x) _Pragma (#x)
+/* clang has "clang diagnostic" pragmas, but also understands gcc. */
# define GCC_DIAG_IGNORE(x) _Pragma("GCC diagnostic push") \
- GCC_DIAG_DO_PRAGMA_(GCC diagnostic ignored #x)
+ GCC_DIAG_PRAGMA(GCC diagnostic ignored #x)
# define GCC_DIAG_RESTORE _Pragma("GCC diagnostic pop")
#else
# define GCC_DIAG_IGNORE(w)
# define GCC_DIAG_RESTORE
#endif
-
#define NOOP /*EMPTY*/(void)0
/* cea2e8a9dd23747f accidentally lost the comment originally from the first
check in of thread.h, explaining why we need dNOOP at all: */
@@ -698,21 +721,11 @@
# endif
#endif
-#ifdef USE_NEXT_CTYPE
+#ifdef I_STDINT
+# include <stdint.h>
+#endif
-#if NX_CURRENT_COMPILER_RELEASE >= 500
-# include <bsd/ctypes.h>
-#else
-# if NX_CURRENT_COMPILER_RELEASE >= 400
-# include <objc/NXCType.h>
-# else /* NX_CURRENT_COMPILER_RELEASE < 400 */
-# include <appkit/NXCType.h>
-# endif /* NX_CURRENT_COMPILER_RELEASE >= 400 */
-#endif /* NX_CURRENT_COMPILER_RELEASE >= 500 */
-
-#else /* !USE_NEXT_CTYPE */
#include <ctype.h>
-#endif /* USE_NEXT_CTYPE */
#ifdef METHOD /* Defined by OSF/1 v3.0 by ctype.h */
#undef METHOD
@@ -746,11 +759,18 @@
# if !defined(NO_LOCALE_MONETARY) && defined(LC_MONETARY)
# define USE_LOCALE_MONETARY
# endif
+# if !defined(NO_LOCALE_TIME) && defined(LC_TIME)
+# define USE_LOCALE_TIME
+# endif
# ifndef WIN32 /* No wrapper except on Windows */
# define my_setlocale(a,b) setlocale(a,b)
# endif
#endif /* !NO_LOCALE && HAS_SETLOCALE */
+/* Is $^ENCODING set, or are we under the encoding pragma? */
+#define IN_ENCODING UNLIKELY(PL_encoding \
+ || (PL_lex_encoding && _get_encoding() != NULL))
+
#include <setjmp.h>
#ifdef I_SYS_PARAM
@@ -895,13 +915,18 @@ EXTERN_C int usleep(unsigned int);
# define PERL_STRLEN_EXPAND_SHIFT 2
#endif
-#if defined(STANDARD_C) && defined(I_STDDEF)
+#if defined(STANDARD_C) && defined(I_STDDEF) && !defined(PERL_GCC_PEDANTIC)
# include <stddef.h>
# define STRUCT_OFFSET(s,m) offsetof(s,m)
#else
# define STRUCT_OFFSET(s,m) (Size_t)(&(((s *)0)->m))
#endif
+/* ptrdiff_t is C11, so undef it under pedantic builds */
+#ifdef PERL_GCC_PEDANTIC
+# undef HAS_PTRDIFF_T
+#endif
+
#ifndef __SYMBIAN32__
# if defined(I_STRING) || defined(__cplusplus)
# include <string.h>
@@ -939,7 +964,7 @@ EXTERN_C int usleep(unsigned int);
# define CHECK_MALLOC_TAINT(newval) \
CHECK_MALLOC_TOO_LATE_FOR_( \
if (newval) { \
- panic_write2("panic: tainting with $ENV{PERL_MALLOC_OPT}\n");\
+ PERL_UNUSED_RESULT(panic_write2("panic: tainting with $ENV{PERL_MALLOC_OPT}\n"));\
exit(1); })
# define MALLOC_CHECK_TAINT(argc,argv,env) STMT_START { \
if (doing_taint(argc,argv,env)) { \
@@ -1200,6 +1225,8 @@ EXTERN_C char *crypt(const char *, const char *);
# define SS_DEVOFFLINE SS$_DEVOFFLINE
# define SS_IVCHAN SS$_IVCHAN
# define SS_NORMAL SS$_NORMAL
+# define SS_NOPRIV SS$_NOPRIV
+# define SS_BUFFEROVF SS$_BUFFEROVF
#else
# define LIB_INVARG 0
# define RMS_DIR 0
@@ -1213,6 +1240,8 @@ EXTERN_C char *crypt(const char *, const char *);
# define SS_DEVOFFLINE 0
# define SS_IVCHAN 0
# define SS_NORMAL 0
+# define SS_NOPRIV 0
+# define SS_BUFFEROVF 0
#endif
#ifdef WIN32
@@ -1242,19 +1271,22 @@ EXTERN_C char *crypt(const char *, const char *);
#define ERRSV GvSVn(PL_errgv)
+/* contains inlined gv_add_by_type */
#define CLEAR_ERRSV() STMT_START { \
- if (!GvSV(PL_errgv)) { \
- sv_setpvs(GvSV(gv_add_by_type(PL_errgv, SVt_PV)), ""); \
- } else if (SvREADONLY(GvSV(PL_errgv))) { \
- SvREFCNT_dec(GvSV(PL_errgv)); \
- GvSV(PL_errgv) = newSVpvs(""); \
+ SV ** const svp = &GvSV(PL_errgv); \
+ if (!*svp) { \
+ goto clresv_newemptypv; \
+ } else if (SvREADONLY(*svp)) { \
+ SvREFCNT_dec_NN(*svp); \
+ clresv_newemptypv: \
+ *svp = newSVpvs(""); \
} else { \
- SV *const errsv = GvSV(PL_errgv); \
+ SV *const errsv = *svp; \
sv_setpvs(errsv, ""); \
+ SvPOK_only(errsv); \
if (SvMAGICAL(errsv)) { \
mg_free(errsv); \
} \
- SvPOK_only(errsv); \
} \
} STMT_END
@@ -1340,10 +1372,6 @@ EXTERN_C char *crypt(const char *, const char *);
/* Configure already sets Direntry_t */
#if defined(I_DIRENT)
# include <dirent.h>
- /* NeXT needs dirent + sys/dir.h */
-# if defined(I_SYS_DIR) && (defined(NeXT) || defined(__NeXT__))
-# include <sys/dir.h>
-# endif
#else
# ifdef I_SYS_NDIR
# include <sys/ndir.h>
@@ -1542,30 +1570,70 @@ EXTERN_C char *crypt(const char *, const char *);
* that should be true only if the snprintf()/vsnprintf() are true
* to the standard. */
+#define PERL_SNPRINTF_CHECK(len, max, api) STMT_START { if ((max) > 0 && (Size_t)len >= (max)) Perl_croak_nocontext("panic: %s buffer overflow", STRINGIFY(api)); } STMT_END
+
+#ifdef USE_QUADMATH
+# define my_snprintf Perl_my_snprintf
+# define PERL_MY_SNPRINTF_GUARDED
+#else
#if defined(HAS_SNPRINTF) && defined(HAS_C99_VARIADIC_MACROS) && !(defined(DEBUGGING) && !defined(PERL_USE_GCC_BRACE_GROUPS)) && !defined(PERL_GCC_PEDANTIC)
# ifdef PERL_USE_GCC_BRACE_GROUPS
-# define my_snprintf(buffer, len, ...) ({ int __len__ = snprintf(buffer, len, __VA_ARGS__); if ((len) > 0 && (Size_t)__len__ >= (len)) Perl_croak_nocontext("panic: snprintf buffer overflow"); __len__; })
+# define my_snprintf(buffer, max, ...) ({ int len = snprintf(buffer, max, __VA_ARGS__); PERL_SNPRINTF_CHECK(len, max, snprintf); len; })
# define PERL_MY_SNPRINTF_GUARDED
# else
-# define my_snprintf(buffer, len, ...) snprintf(buffer, len, __VA_ARGS__)
+# define my_snprintf(buffer, max, ...) snprintf(buffer, max, __VA_ARGS__)
# endif
#else
# define my_snprintf Perl_my_snprintf
# define PERL_MY_SNPRINTF_GUARDED
#endif
+#endif
+/* There is no quadmath_vsnprintf, and therefore my_vsnprintf()
+ * dies if called under USE_QUADMATH. */
#if defined(HAS_VSNPRINTF) && defined(HAS_C99_VARIADIC_MACROS) && !(defined(DEBUGGING) && !defined(PERL_USE_GCC_BRACE_GROUPS)) && !defined(PERL_GCC_PEDANTIC)
# ifdef PERL_USE_GCC_BRACE_GROUPS
-# define my_vsnprintf(buffer, len, ...) ({ int __len__ = vsnprintf(buffer, len, __VA_ARGS__); if ((len) > 0 && (Size_t)__len__ >= (Size_t)(len)) Perl_croak_nocontext("panic: vsnprintf buffer overflow"); __len__; })
+# define my_vsnprintf(buffer, max, ...) ({ int len = vsnprintf(buffer, max, __VA_ARGS__); PERL_SNPRINTF_CHECK(len, max, vsnprintf); len; })
# define PERL_MY_VSNPRINTF_GUARDED
# else
-# define my_vsnprintf(buffer, len, ...) vsnprintf(buffer, len, __VA_ARGS__)
+# define my_vsnprintf(buffer, max, ...) vsnprintf(buffer, max, __VA_ARGS__)
# endif
#else
# define my_vsnprintf Perl_my_vsnprintf
# define PERL_MY_VSNPRINTF_GUARDED
#endif
+/* You will definitely need to use the PERL_MY_SNPRINTF_POST_GUARD()
+ * or PERL_MY_VSNPRINTF_POST_GUARD() if you otherwise decide to ignore
+ * the result of my_snprintf() or my_vsnprintf(). (No, you should not
+ * completely ignore it: otherwise you cannot know whether your output
+ * was too long.)
+ *
+ * int len = my_sprintf(buf, max, ...);
+ * PERL_MY_SNPRINTF_POST_GUARD(len, max);
+ *
+ * The trick is that in certain platforms [a] the my_sprintf() already
+ * contains the sanity check, while in certain platforms [b] it needs
+ * to be done as a separate step. The POST_GUARD is that step-- in [a]
+ * platforms the POST_GUARD actually does nothing since the check has
+ * already been done. Watch out for the max being the same in both calls.
+ *
+ * If you actually use the snprintf/vsnprintf return value already,
+ * you assumedly are checking its validity somehow. But you can
+ * insert the POST_GUARD() also in that case. */
+
+#ifndef PERL_MY_SNPRINTF_GUARDED
+# define PERL_MY_SNPRINTF_POST_GUARD(len, max) PERL_SNPRINTF_CHECK(len, max, snprintf)
+#else
+# define PERL_MY_SNPRINTF_POST_GUARD(len, max) PERL_UNUSED_VAR(len)
+#endif
+
+#ifndef PERL_MY_VSNPRINTF_GUARDED
+# define PERL_MY_VSNPRINTF_POST_GUARD(len, max) PERL_SNPRINTF_CHECK(len, max, vsnprintf)
+#else
+# define PERL_MY_VSNPRINTF_POST_GUARD(len, max) PERL_UNUSED_VAR(len)
+#endif
+
#ifdef HAS_STRLCAT
# define my_strlcat strlcat
#else
@@ -1642,7 +1710,8 @@ typedef UVTYPE UV;
# endif
#endif
-#define SSize_t_MAX (SSize_t)(~(size_t)0 >> 1)
+#define Size_t_MAX (~(Size_t)0)
+#define SSize_t_MAX (SSize_t)(~(Size_t)0 >> 1)
#define IV_DIG (BIT_DIGITS(IVSIZE * 8))
#define UV_DIG (BIT_DIGITS(UVSIZE * 8))
@@ -1701,11 +1770,9 @@ typedef UVTYPE UV;
#define FPTR2DPTR(t,p) ((t)PTR2nat(p)) /* function pointer to data pointer */
#ifdef USE_LONG_DOUBLE
-# if defined(HAS_LONG_DOUBLE) && LONG_DOUBLESIZE == DOUBLESIZE
-# define LONG_DOUBLE_EQUALS_DOUBLE
-# endif
-# if !(defined(HAS_LONG_DOUBLE) && (LONG_DOUBLESIZE > DOUBLESIZE))
-# undef USE_LONG_DOUBLE /* Ouch! */
+# if LONG_DOUBLESIZE == DOUBLESIZE
+# define LONG_DOUBLE_EQUALS_DOUBLE
+# undef USE_LONG_DOUBLE /* Ouch! */
# endif
#endif
@@ -1807,86 +1874,156 @@ typedef NVTYPE NV;
/* Also Tru64 cc has broken NaN comparisons. */
# define NAN_COMPARE_BROKEN
#endif
+#if defined(__sgi)
+# define NAN_COMPARE_BROKEN
+#endif
#ifdef USE_LONG_DOUBLE
# ifdef I_SUNMATH
# include <sunmath.h>
# endif
-# define NV_DIG LDBL_DIG
-# ifdef LDBL_MANT_DIG
-# define NV_MANT_DIG LDBL_MANT_DIG
-# endif
-# ifdef LDBL_MIN
-# define NV_MIN LDBL_MIN
-# endif
-# ifdef LDBL_MAX
-# define NV_MAX LDBL_MAX
-# endif
-# ifdef LDBL_MIN_10_EXP
-# define NV_MIN_10_EXP LDBL_MIN_10_EXP
-# endif
-# ifdef LDBL_MAX_10_EXP
-# define NV_MAX_10_EXP LDBL_MAX_10_EXP
-# endif
-# ifdef LDBL_EPSILON
-# define NV_EPSILON LDBL_EPSILON
-# endif
-# ifdef LDBL_MAX
-# define NV_MAX LDBL_MAX
+# if defined(LDBL_DIG)
+# define NV_DIG LDBL_DIG
+# ifdef LDBL_MANT_DIG
+# define NV_MANT_DIG LDBL_MANT_DIG
+# endif
+# ifdef LDBL_MIN
+# define NV_MIN LDBL_MIN
+# endif
+# ifdef LDBL_MAX
+# define NV_MAX LDBL_MAX
+# endif
+# ifdef LDBL_MIN_EXP
+# define NV_MIN_EXP LDBL_MIN_EXP
+# endif
+# ifdef LDBL_MAX_EXP
+# define NV_MAX_EXP LDBL_MAX_EXP
+# endif
+# ifdef LDBL_MIN_10_EXP
+# define NV_MIN_10_EXP LDBL_MIN_10_EXP
+# endif
+# ifdef LDBL_MAX_10_EXP
+# define NV_MAX_10_EXP LDBL_MAX_10_EXP
+# endif
+# ifdef LDBL_EPSILON
+# define NV_EPSILON LDBL_EPSILON
+# endif
+# ifdef LDBL_MAX
+# define NV_MAX LDBL_MAX
/* Having LDBL_MAX doesn't necessarily mean that we have LDBL_MIN... -Allen */
-# else
-# ifdef HUGE_VALL
-# define NV_MAX HUGE_VALL
# else
-# ifdef HUGE_VAL
-# define NV_MAX ((NV)HUGE_VAL)
+# ifdef HUGE_VALL
+# define NV_MAX HUGE_VALL
# endif
# endif
# endif
-# ifdef HAS_SQRTL
+# if defined(HAS_SQRTL)
+# define Perl_acos acosl
+# define Perl_asin asinl
+# define Perl_atan atanl
+# define Perl_atan2 atan2l
+# define Perl_ceil ceill
# define Perl_cos cosl
-# define Perl_sin sinl
-# define Perl_sqrt sqrtl
+# define Perl_cosh coshl
# define Perl_exp expl
-# define Perl_log logl
-# define Perl_atan2 atan2l
-# define Perl_pow powl
+/* no Perl_fabs, but there's PERL_ABS */
# define Perl_floor floorl
-# define Perl_ceil ceill
# define Perl_fmod fmodl
+# define Perl_log logl
+# define Perl_log10 log10l
+# define Perl_pow powl
+# define Perl_sin sinl
+# define Perl_sinh sinhl
+# define Perl_sqrt sqrtl
+# define Perl_tan tanl
+# define Perl_tanh tanhl
# endif
/* e.g. libsunmath doesn't have modfl and frexpl as of mid-March 2000 */
-# ifdef HAS_MODFL
-# define Perl_modf(x,y) modfl(x,y)
+# ifndef Perl_modf
+# ifdef HAS_MODFL
+# define Perl_modf(x,y) modfl(x,y)
/* eg glibc 2.2 series seems to provide modfl on ppc and arm, but has no
prototype in <math.h> */
-# ifndef HAS_MODFL_PROTO
+# ifndef HAS_MODFL_PROTO
EXTERN_C long double modfl(long double, long double *);
-# endif
-# else
-# if defined(HAS_AINTL) && defined(HAS_COPYSIGNL)
+# endif
+# elif (defined(HAS_TRUNCL) || defined(HAS_AINTL)) && defined(HAS_COPYSIGNL)
extern long double Perl_my_modfl(long double x, long double *ip);
# define Perl_modf(x,y) Perl_my_modfl(x,y)
# endif
# endif
-# ifdef HAS_FREXPL
-# define Perl_frexp(x,y) frexpl(x,y)
-# else
-# if defined(HAS_ILOGBL) && defined(HAS_SCALBNL)
- extern long double Perl_my_frexpl(long double x, int *e);
-# define Perl_frexp(x,y) Perl_my_frexpl(x,y)
+# ifndef Perl_frexp
+# ifdef HAS_FREXPL
+# define Perl_frexp(x,y) frexpl(x,y)
+# else
+# if defined(HAS_ILOGBL) && defined(HAS_SCALBNL)
+extern long double Perl_my_frexpl(long double x, int *e);
+# define Perl_frexp(x,y) Perl_my_frexpl(x,y)
+# endif
+# endif
+# endif
+# ifndef Perl_ldexp
+# ifdef HAS_LDEXPL
+# define Perl_ldexp(x, y) ldexpl(x,y)
+# else
+# if defined(HAS_SCALBNL) && FLT_RADIX == 2
+# define Perl_ldexp(x,y) scalbnl(x,y)
+# endif
# endif
# endif
# ifndef Perl_isnan
-# ifdef HAS_ISNANL
+# if defined(HAS_ISNANL) && !(defined(isnan) && defined(HAS_C99))
# define Perl_isnan(x) isnanl(x)
# endif
# endif
# ifndef Perl_isinf
-# ifdef HAS_FINITEL
-# define Perl_isinf(x) !(finitel(x)||Perl_isnan(x))
+# if defined(HAS_ISINFL) && !(defined(isinf) && defined(HAS_C99))
+# define Perl_isinf(x) isinfl(x)
+# elif defined(LDBL_MAX) && !defined(NAN_COMPARE_BROKEN)
+# define Perl_isinf(x) ((x) > LDBL_MAX || (x) < -LDBL_MAX)
# endif
# endif
+# ifndef Perl_isfinite
+# define Perl_isfinite(x) Perl_isfinitel(x)
+# endif
+#elif defined(USE_QUADMATH) && defined(I_QUADMATH)
+# include <quadmath.h>
+# define NV_DIG FLT128_DIG
+# define NV_MANT_DIG FLT128_MANT_DIG
+# define NV_MIN FLT128_MIN
+# define NV_MAX FLT128_MAX
+# define NV_MIN_EXP FLT128_MIN_EXP
+# define NV_MAX_EXP FLT128_MAX_EXP
+# define NV_EPSILON FLT128_EPSILON
+# define NV_MIN_10_EXP FLT128_MIN_10_EXP
+# define NV_MAX_10_EXP FLT128_MAX_10_EXP
+# define NV_INF HUGE_VALQ
+# define NV_NAN nanq("0")
+# define Perl_acos acosq
+# define Perl_asin asinq
+# define Perl_atan atanq
+# define Perl_atan2 atan2q
+# define Perl_ceil ceilq
+# define Perl_cos cosq
+# define Perl_cosh coshq
+# define Perl_exp expq
+/* no Perl_fabs, but there's PERL_ABS */
+# define Perl_floor floorq
+# define Perl_fmod fmodq
+# define Perl_log logq
+# define Perl_log10 log10q
+# define Perl_pow powq
+# define Perl_sin sinq
+# define Perl_sinh sinhq
+# define Perl_sqrt sqrtq
+# define Perl_tan tanq
+# define Perl_tanh tanhq
+# define Perl_modf(x,y) modfq(x,y)
+# define Perl_frexp(x,y) frexpq(x,y)
+# define Perl_ldexp(x, y) ldexpq(x,y)
+# define Perl_isinf(x) isinfq(x)
+# define Perl_isnan(x) isnanq(x)
+# define Perl_isfinite(x) !(isnanq(x) || isinfq(x))
#else
# define NV_DIG DBL_DIG
# ifdef DBL_MANT_DIG
@@ -1898,6 +2035,12 @@ EXTERN_C long double modfl(long double, long double *);
# ifdef DBL_MAX
# define NV_MAX DBL_MAX
# endif
+# ifdef DBL_MIN_EXP
+# define NV_MIN_EXP DBL_MIN_EXP
+# endif
+# ifdef DBL_MAX_EXP
+# define NV_MAX_EXP DBL_MAX_EXP
+# endif
# ifdef DBL_MIN_10_EXP
# define NV_MIN_10_EXP DBL_MIN_10_EXP
# endif
@@ -1915,30 +2058,121 @@ EXTERN_C long double modfl(long double, long double *);
# define NV_MAX HUGE_VAL
# endif
# endif
+
+/* These math interfaces are C89. */
+# define Perl_acos acos
+# define Perl_asin asin
+# define Perl_atan atan
+# define Perl_atan2 atan2
+# define Perl_ceil ceil
# define Perl_cos cos
-# define Perl_sin sin
-# define Perl_sqrt sqrt
+# define Perl_cosh cosh
# define Perl_exp exp
-# define Perl_log log
-# define Perl_atan2 atan2
-# define Perl_pow pow
+/* no Perl_fabs, but there's PERL_ABS */
# define Perl_floor floor
-# define Perl_ceil ceil
# define Perl_fmod fmod
+# define Perl_log log
+# define Perl_log10 log10
+# define Perl_pow pow
+# define Perl_sin sin
+# define Perl_sinh sinh
+# define Perl_sqrt sqrt
+# define Perl_tan tan
+# define Perl_tanh tanh
+
# define Perl_modf(x,y) modf(x,y)
# define Perl_frexp(x,y) frexp(x,y)
+# define Perl_ldexp(x,y) ldexp(x,y)
+
+# ifndef Perl_isnan
+# ifdef HAS_ISNAN
+# define Perl_isnan(x) isnan(x)
+# endif
+# endif
+# ifndef Perl_isinf
+# if defined(HAS_ISINF)
+# define Perl_isinf(x) isinf(x)
+# elif defined(DBL_MAX) && !defined(NAN_COMPARE_BROKEN)
+# define Perl_isinf(x) ((x) > DBL_MAX || (x) < -DBL_MAX)
+# endif
+# endif
+# ifndef Perl_isfinite
+# ifdef HAS_ISFINITE
+# define Perl_isfinite(x) isfinite(x)
+# elif defined(HAS_FINITE)
+# define Perl_isfinite(x) finite(x)
+# endif
+# endif
#endif
-/* rumor has it that Win32 has _fpclass() */
+/* fpclassify(): C99. It is supposed to be a macro that switches on
+* the sizeof() of its argument, so there's no need for e.g. fpclassifyl().*/
+#if !defined(Perl_fp_class) && defined(HAS_FPCLASSIFY)
+# include <math.h>
+# if defined(FP_INFINITE) && defined(FP_NAN)
+# define Perl_fp_class(x) fpclassify(x)
+# define Perl_fp_class_inf(x) (Perl_fp_class(x)==FP_INFINITE)
+# define Perl_fp_class_nan(x) (Perl_fp_class(x)==FP_NAN)
+# define Perl_fp_class_norm(x) (Perl_fp_class(x)==FP_NORMAL)
+# define Perl_fp_class_denorm(x) (Perl_fp_class(x)==FP_SUBNORMAL)
+# define Perl_fp_class_zero(x) (Perl_fp_class(x)==FP_ZERO)
+# elif defined(FP_PLUS_INF) && defined(FP_QNAN)
+/* Some versions of HP-UX (10.20) have (only) fpclassify() but which is
+ * actually not the C99 fpclassify, with its own set of return defines. */
+# define Perl_fp_class(x) fpclassify(x)
+# define Perl_fp_class_pinf(x) (Perl_fp_class(x)==FP_PLUS_INF)
+# define Perl_fp_class_ninf(x) (Perl_fp_class(x)==FP_MINUS_INF)
+# define Perl_fp_class_snan(x) (Perl_fp_class(x)==FP_SNAN)
+# define Perl_fp_class_qnan(x) (Perl_fp_class(x)==FP_QNAN)
+# define Perl_fp_class_pnorm(x) (Perl_fp_class(x)==FP_PLUS_NORM)
+# define Perl_fp_class_nnorm(x) (Perl_fp_class(x)==FP_MINUS_NORM)
+# define Perl_fp_class_pdenorm(x) (Perl_fp_class(x)==FP_PLUS_DENORM)
+# define Perl_fp_class_ndenorm(x) (Perl_fp_class(x)==FP_MINUS_DENORM)
+# define Perl_fp_class_pzero(x) (Perl_fp_class(x)==FP_PLUS_ZERO)
+# define Perl_fp_class_nzero(x) (Perl_fp_class(x)==FP_MINUS_ZERO)
+# else
+# undef Perl_fp_class /* Unknown set of defines */
+# endif
+#endif
+
+/* fp_classify(): Legacy: VMS, maybe Unicos? The values, however,
+ * are identical to the C99 fpclassify(). */
+#if !defined(Perl_fp_class) && defined(HAS_FP_CLASSIFY)
+# include <math.h>
+# ifdef __VMS
+ /* FP_INFINITE and others are here rather than in math.h as C99 stipulates */
+# include <fp.h>
+ /* oh, and the isnormal macro has a typo in it! */
+# undef isnormal
+# define isnormal(x) Perl_fp_class_norm(x)
+# endif
+# if defined(FP_INFINITE) && defined(FP_NAN)
+# define Perl_fp_class(x) fp_classify(x)
+# define Perl_fp_class_inf(x) (Perl_fp_class(x)==FP_INFINITE)
+# define Perl_fp_class_nan(x) (Perl_fp_class(x)==FP_NAN)
+# define Perl_fp_class_norm(x) (Perl_fp_class(x)==FP_NORMAL)
+# define Perl_fp_class_denorm(x) (Perl_fp_class(x)==FP_SUBNORMAL)
+# define Perl_fp_class_zero(x) (Perl_fp_class(x)==FP_ZERO)
+# else
+# undef Perl_fp_class /* Unknown set of defines */
+# endif
+#endif
-/* SGI has fpclassl... but not with the same result values,
- * and it's via a typedef (not via #define), so will need to redo Configure
- * to use. Not worth the trouble, IMO, at least until the below is used
- * more places. Also has fp_class_l, BTW, via fp_class.h. Feel free to check
- * with me for the SGI manpages, SGI testing, etcetera, if you want to
- * try getting this to work with IRIX. - Allen <allens@cpan.org> */
+/* Feel free to check with me for the SGI manpages, SGI testing,
+ * etcetera, if you want to try getting this to work with IRIX.
+ *
+ * - Allen <allens@cpan.org> */
+/* fpclass(): SysV, at least Solaris and some versions of IRIX. */
#if !defined(Perl_fp_class) && (defined(HAS_FPCLASS)||defined(HAS_FPCLASSL))
+/* Solaris and IRIX have fpclass/fpclassl, but they are using
+ * an enum typedef, not cpp symbols, and Configure doesn't detect that.
+ * Define some symbols also as cpp symbols so we can detect them. */
+# if defined(__sun) || defined(__irix__) /* XXX Configure test instead */
+# define FP_PINF FP_PINF
+# define FP_QNAN FP_QNAN
+# endif
+# include <math.h>
# ifdef I_IEEFP
# include <ieeefp.h>
# endif
@@ -1946,134 +2180,221 @@ EXTERN_C long double modfl(long double, long double *);
# include <fp.h>
# endif
# if defined(USE_LONG_DOUBLE) && defined(HAS_FPCLASSL)
-# define Perl_fp_class() fpclassl(x)
+# define Perl_fp_class(x) fpclassl(x)
# else
-# define Perl_fp_class() fpclass(x)
+# define Perl_fp_class(x) fpclass(x)
# endif
-# define Perl_fp_class_snan(x) (Perl_fp_class(x)==FP_CLASS_SNAN)
-# define Perl_fp_class_qnan(x) (Perl_fp_class(x)==FP_CLASS_QNAN)
-# define Perl_fp_class_nan(x) (Perl_fp_class(x)==FP_CLASS_SNAN||Perl_fp_class(x)==FP_CLASS_QNAN)
-# define Perl_fp_class_ninf(x) (Perl_fp_class(x)==FP_CLASS_NINF)
-# define Perl_fp_class_pinf(x) (Perl_fp_class(x)==FP_CLASS_PINF)
-# define Perl_fp_class_inf(x) (Perl_fp_class(x)==FP_CLASS_NINF||Perl_fp_class(x)==FP_CLASS_PINF)
-# define Perl_fp_class_nnorm(x) (Perl_fp_class(x)==FP_CLASS_NNORM)
-# define Perl_fp_class_pnorm(x) (Perl_fp_class(x)==FP_CLASS_PNORM)
-# define Perl_fp_class_norm(x) (Perl_fp_class(x)==FP_CLASS_NNORM||Perl_fp_class(x)==FP_CLASS_PNORM)
-# define Perl_fp_class_ndenorm(x) (Perl_fp_class(x)==FP_CLASS_NDENORM)
-# define Perl_fp_class_pdenorm(x) (Perl_fp_class(x)==FP_CLASS_PDENORM)
-# define Perl_fp_class_denorm(x) (Perl_fp_class(x)==FP_CLASS_NDENORM||Perl_fp_class(x)==FP_CLASS_PDENORM)
-# define Perl_fp_class_nzero(x) (Perl_fp_class(x)==FP_CLASS_NZERO)
-# define Perl_fp_class_pzero(x) (Perl_fp_class(x)==FP_CLASS_PZERO)
-# define Perl_fp_class_zero(x) (Perl_fp_class(x)==FP_CLASS_NZERO||Perl_fp_class(x)==FP_CLASS_PZERO)
-#endif
-
-#if !defined(Perl_fp_class) && defined(HAS_FP_CLASS)
-# include <math.h>
-# if !defined(FP_SNAN) && defined(I_FP_CLASS)
-# include <fp_class.h>
+# if defined(FP_CLASS_PINF) && defined(FP_CLASS_SNAN)
+# define Perl_fp_class_snan(x) (Perl_fp_class(x)==FP_CLASS_SNAN)
+# define Perl_fp_class_qnan(x) (Perl_fp_class(x)==FP_CLASS_QNAN)
+# define Perl_fp_class_ninf(x) (Perl_fp_class(x)==FP_CLASS_NINF)
+# define Perl_fp_class_pinf(x) (Perl_fp_class(x)==FP_CLASS_PINF)
+# define Perl_fp_class_nnorm(x) (Perl_fp_class(x)==FP_CLASS_NNORM)
+# define Perl_fp_class_pnorm(x) (Perl_fp_class(x)==FP_CLASS_PNORM)
+# define Perl_fp_class_ndenorm(x) (Perl_fp_class(x)==FP_CLASS_NDENORM)
+# define Perl_fp_class_pdenorm(x) (Perl_fp_class(x)==FP_CLASS_PDENORM)
+# define Perl_fp_class_nzero(x) (Perl_fp_class(x)==FP_CLASS_NZERO)
+# define Perl_fp_class_pzero(x) (Perl_fp_class(x)==FP_CLASS_PZERO)
+# elif defined(FP_PINF) && defined(FP_QNAN)
+# define Perl_fp_class_snan(x) (Perl_fp_class(x)==FP_SNAN)
+# define Perl_fp_class_qnan(x) (Perl_fp_class(x)==FP_QNAN)
+# define Perl_fp_class_ninf(x) (Perl_fp_class(x)==FP_NINF)
+# define Perl_fp_class_pinf(x) (Perl_fp_class(x)==FP_PINF)
+# define Perl_fp_class_nnorm(x) (Perl_fp_class(x)==FP_NNORM)
+# define Perl_fp_class_pnorm(x) (Perl_fp_class(x)==FP_PNORM)
+# define Perl_fp_class_ndenorm(x) (Perl_fp_class(x)==FP_NDENORM)
+# define Perl_fp_class_pdenorm(x) (Perl_fp_class(x)==FP_PDENORM)
+# define Perl_fp_class_nzero(x) (Perl_fp_class(x)==FP_NZERO)
+# define Perl_fp_class_pzero(x) (Perl_fp_class(x)==FP_PZERO)
+# else
+# undef Perl_fp_class /* Unknown set of defines */
# endif
-# define Perl_fp_class(x) fp_class(x)
-# define Perl_fp_class_snan(x) (fp_class(x)==FP_SNAN)
-# define Perl_fp_class_qnan(x) (fp_class(x)==FP_QNAN)
-# define Perl_fp_class_nan(x) (fp_class(x)==FP_SNAN||fp_class(x)==FP_QNAN)
-# define Perl_fp_class_ninf(x) (fp_class(x)==FP_NEG_INF)
-# define Perl_fp_class_pinf(x) (fp_class(x)==FP_POS_INF)
-# define Perl_fp_class_inf(x) (fp_class(x)==FP_NEG_INF||fp_class(x)==FP_POS_INF)
-# define Perl_fp_class_nnorm(x) (fp_class(x)==FP_NEG_NORM)
-# define Perl_fp_class_pnorm(x) (fp_class(x)==FP_POS_NORM)
-# define Perl_fp_class_norm(x) (fp_class(x)==FP_NEG_NORM||fp_class(x)==FP_POS_NORM)
-# define Perl_fp_class_ndenorm(x) (fp_class(x)==FP_NEG_DENORM)
-# define Perl_fp_class_pdenorm(x) (fp_class(x)==FP_POS_DENORM)
-# define Perl_fp_class_denorm(x) (fp_class(x)==FP_NEG_DENORM||fp_class(x)==FP_POS_DENORM)
-# define Perl_fp_class_nzero(x) (fp_class(x)==FP_NEG_ZERO)
-# define Perl_fp_class_pzero(x) (fp_class(x)==FP_POS_ZERO)
-# define Perl_fp_class_zero(x) (fp_class(x)==FP_NEG_ZERO||fp_class(x)==FP_POS_ZERO)
#endif
-#if !defined(Perl_fp_class) && defined(HAS_FPCLASSIFY)
+/* fp_class(): Legacy: at least Tru64, some versions of IRIX. */
+#if !defined(Perl_fp_class) && (defined(HAS_FP_CLASS)||defined(HAS_FP_CLASSL))
# include <math.h>
-# define Perl_fp_class(x) fpclassify(x)
-# define Perl_fp_class_nan(x) (fp_classify(x)==FP_SNAN||fp_classify(x)==FP_QNAN)
-# define Perl_fp_class_inf(x) (fp_classify(x)==FP_INFINITE)
-# define Perl_fp_class_norm(x) (fp_classify(x)==FP_NORMAL)
-# define Perl_fp_class_denorm(x) (fp_classify(x)==FP_SUBNORMAL)
-# define Perl_fp_class_zero(x) (fp_classify(x)==FP_ZERO)
+# if !defined(FP_SNAN) && defined(I_FP_CLASS)
+# include <fp_class.h>
+# endif
+# if defined(FP_POS_INF) && defined(FP_QNAN)
+# ifdef __irix__ /* XXX Configure test instead */
+# ifdef USE_LONG_DOUBLE
+# define Perl_fp_class(x) fp_class_l(x)
+# else
+# define Perl_fp_class(x) fp_class_d(x)
+# endif
+# else
+# if defined(USE_LONG_DOUBLE) && defined(HAS_FP_CLASSL)
+# define Perl_fp_class(x) fp_classl(x)
+# else
+# define Perl_fp_class(x) fp_class(x)
+# endif
+# endif
+# if defined(FP_POS_INF) && defined(FP_QNAN)
+# define Perl_fp_class_snan(x) (Perl_fp_class(x)==FP_SNAN)
+# define Perl_fp_class_qnan(x) (Perl_fp_class(x)==FP_QNAN)
+# define Perl_fp_class_ninf(x) (Perl_fp_class(x)==FP_NEG_INF)
+# define Perl_fp_class_pinf(x) (Perl_fp_class(x)==FP_POS_INF)
+# define Perl_fp_class_nnorm(x) (Perl_fp_class(x)==FP_NEG_NORM)
+# define Perl_fp_class_pnorm(x) (Perl_fp_class(x)==FP_POS_NORM)
+# define Perl_fp_class_ndenorm(x) (Perl_fp_class(x)==FP_NEG_DENORM)
+# define Perl_fp_class_pdenorm(x) (Perl_fp_class(x)==FP_POS_DENORM)
+# define Perl_fp_class_nzero(x) (Perl_fp_class(x)==FP_NEG_ZERO)
+# define Perl_fp_class_pzero(x) (Perl_fp_class(x)==FP_POS_ZERO)
+# else
+# undef Perl_fp_class /* Unknown set of defines */
+# endif
+# endif
#endif
+/* class(), _class(): Legacy: AIX. */
#if !defined(Perl_fp_class) && defined(HAS_CLASS)
# include <math.h>
-# ifndef _cplusplus
-# define Perl_fp_class(x) class(x)
-# else
-# define Perl_fp_class(x) _class(x)
+# if defined(FP_PLUS_NORM) && defined(FP_PLUS_INF)
+# ifndef _cplusplus
+# define Perl_fp_class(x) class(x)
+# else
+# define Perl_fp_class(x) _class(x)
+# endif
+# if defined(FP_PLUS_INF) && defined(FP_NANQ)
+# define Perl_fp_class_snan(x) (Perl_fp_class(x)==FP_NANS)
+# define Perl_fp_class_qnan(x) (Perl_fp_class(x)==FP_NANQ)
+# define Perl_fp_class_ninf(x) (Perl_fp_class(x)==FP_MINUS_INF)
+# define Perl_fp_class_pinf(x) (Perl_fp_class(x)==FP_PLUS_INF)
+# define Perl_fp_class_nnorm(x) (Perl_fp_class(x)==FP_MINUS_NORM)
+# define Perl_fp_class_pnorm(x) (Perl_fp_class(x)==FP_PLUS_NORM)
+# define Perl_fp_class_ndenorm(x) (Perl_fp_class(x)==FP_MINUS_DENORM)
+# define Perl_fp_class_pdenorm(x) (Perl_fp_class(x)==FP_PLUS_DENORM)
+# define Perl_fp_class_nzero(x) (Perl_fp_class(x)==FP_MINUS_ZERO)
+# define Perl_fp_class_pzero(x) (Perl_fp_class(x)==FP_PLUS_ZERO)
+# else
+# undef Perl_fp_class /* Unknown set of defines */
+# endif
# endif
-# define Perl_fp_class_snan(x) (Perl_fp_class(x)==FP_NANS)
-# define Perl_fp_class_qnan(x) (Perl_fp_class(x)==FP_NANQ)
-# define Perl_fp_class_nan(x) (Perl_fp_class(x)==FP_SNAN||Perl_fp_class(x)==FP_QNAN)
-# define Perl_fp_class_ninf(x) (Perl_fp_class(x)==FP_MINUS_INF)
-# define Perl_fp_class_pinf(x) (Perl_fp_class(x)==FP_PLUS_INF)
-# define Perl_fp_class_inf(x) (Perl_fp_class(x)==FP_MINUS_INF||Perl_fp_class(x)==FP_PLUS_INF)
-# define Perl_fp_class_nnorm(x) (Perl_fp_class(x)==FP_MINUS_NORM)
-# define Perl_fp_class_pnorm(x) (Perl_fp_class(x)==FP_PLUS_NORM)
-# define Perl_fp_class_norm(x) (Perl_fp_class(x)==FP_MINUS_NORM||Perl_fp_class(x)==FP_PLUS_NORM)
-# define Perl_fp_class_ndenorm(x) (Perl_fp_class(x)==FP_MINUS_DENORM)
-# define Perl_fp_class_pdenorm(x) (Perl_fp_class(x)==FP_PLUS_DENORM)
-# define Perl_fp_class_denorm(x) (Perl_fp_class(x)==FP_MINUS_DENORM||Perl_fp_class(x)==FP_PLUS_DENORM)
-# define Perl_fp_class_nzero(x) (Perl_fp_class(x)==FP_MINUS_ZERO)
-# define Perl_fp_class_pzero(x) (Perl_fp_class(x)==FP_PLUS_ZERO)
-# define Perl_fp_class_zero(x) (Perl_fp_class(x)==FP_MINUS_ZERO||Perl_fp_class(x)==FP_PLUS_ZERO)
-#endif
-
-/* rumor has it that Win32 has _isnan() */
+#endif
-#ifndef Perl_isnan
-# ifdef HAS_ISNAN
-# define Perl_isnan(x) isnan((NV)x)
-# else
-# ifdef Perl_fp_class_nan
-# define Perl_isnan(x) Perl_fp_class_nan(x)
-# else
-# ifdef HAS_UNORDERED
-# define Perl_isnan(x) unordered((x), 0.0)
-# else
-# define Perl_isnan(x) ((x)!=(x))
-# endif
-# endif
-# endif
+/* Win32: _fpclass(), _isnan(), _finite(). */
+#ifdef WIN32
+# ifndef Perl_isnan
+# define Perl_isnan(x) _isnan(x)
+# endif
+# ifndef Perl_isfinite
+# define Perl_isfinite(x) _finite(x)
+# endif
+# ifndef Perl_fp_class_snan
+/* No simple way to #define Perl_fp_class because _fpclass()
+ * returns a set of bits. */
+# define Perl_fp_class_snan(x) (_fpclass(x) & _FPCLASS_SNAN)
+# define Perl_fp_class_qnan(x) (_fpclass(x) & _FPCLASS_QNAN)
+# define Perl_fp_class_nan(x) (_fpclass(x) & (_FPCLASS_SNAN|_FPCLASS_QNAN))
+# define Perl_fp_class_ninf(x) (_fpclass(x) & _FPCLASS_NINF))
+# define Perl_fp_class_pinf(x) (_fpclass(x) & _FPCLASS_PINF))
+# define Perl_fp_class_inf(x) (_fpclass(x) & (_FPCLASS_NINF|_FPCLASS_PINF))
+# define Perl_fp_class_nnorm(x) (_fpclass(x) & _FPCLASS_NN)
+# define Perl_fp_class_pnorm(x) (_fpclass(x) & _FPCLASS_PN)
+# define Perl_fp_class_norm(x) (_fpclass(x) & (_FPCLASS_NN|_FPCLASS_PN))
+# define Perl_fp_class_ndenorm(x) (_fpclass(x) & _FPCLASS_ND)
+# define Perl_fp_class_pdenorm(x) (_fpclass(x) & _FPCLASS_PD)
+# define Perl_fp_class_denorm(x) (_fpclass(x) & (_FPCLASS_ND|_FPCLASS_PD))
+# define Perl_fp_class_nzero(x) (_fpclass(x) & _FPCLASS_NZ)
+# define Perl_fp_class_pzero(x) (_fpclass(x) & _FPCLASS_PZ)
+# define Perl_fp_class_zero(x) (_fpclass(x) & (_FPCLASS_NZ|_FPCLASS_PZ))
+# endif
+#endif
+
+#if !defined(Perl_fp_class_inf) && \
+ defined(Perl_fp_class_pinf) && defined(Perl_fp_class_ninf)
+# define Perl_fp_class_inf(x) \
+ (Perl_fp_class_pinf(x) || Perl_fp_class_ninf(x))
+#endif
+
+#if !defined(Perl_fp_class_nan) && \
+ defined(Perl_fp_class_snan) && defined(Perl_fp_class_qnan)
+# define Perl_fp_class_nan(x) \
+ (Perl_fp_class_snan(x) || Perl_fp_class_qnan(x))
+#endif
+
+#if !defined(Perl_fp_class_zero) && \
+ defined(Perl_fp_class_pzero) && defined(Perl_fp_class_nzero)
+# define Perl_fp_class_zero(x) \
+ (Perl_fp_class_pzero(x) || Perl_fp_class_nzero(x))
+#endif
+
+#if !defined(Perl_fp_class_norm) && \
+ defined(Perl_fp_class_pnorm) && defined(Perl_fp_class_nnorm)
+# define Perl_fp_class_norm(x) \
+ (Perl_fp_class_pnorm(x) || Perl_fp_class_nnorm(x))
+#endif
+
+#if !defined(Perl_fp_class_denorm) && \
+ defined(Perl_fp_class_pdenorm) && defined(Perl_fp_class_ndenorm)
+# define Perl_fp_class_denorm(x) \
+ (Perl_fp_class_pdenorm(x) || Perl_fp_class_ndenorm(x))
#endif
#ifdef UNDER_CE
int isnan(double d);
#endif
-#ifndef Perl_isinf
-# ifdef HAS_ISINF
-# define Perl_isinf(x) isinf((NV)x)
+#ifndef Perl_isnan
+# ifdef Perl_fp_class_nan
+# define Perl_isnan(x) Perl_fp_class_nan(x)
# else
-# ifdef Perl_fp_class_inf
-# define Perl_isinf(x) Perl_fp_class_inf(x)
+# ifdef HAS_UNORDERED
+# define Perl_isnan(x) unordered((x), 0.0)
# else
-# define Perl_isinf(x) ((x)==NV_INF)
+# define Perl_isnan(x) ((x)!=(x))
# endif
# endif
#endif
+#ifndef Perl_isinf
+# ifdef Perl_fp_class_inf
+# define Perl_isinf(x) Perl_fp_class_inf(x)
+# endif
+#endif
+
#ifndef Perl_isfinite
-# ifdef HAS_FINITE
-# define Perl_isfinite(x) finite((NV)x)
+# if defined(HAS_ISFINITE) && !defined(isfinite)
+# define Perl_isfinite(x) isfinite((double)(x))
+# elif defined(HAS_FINITE)
+# define Perl_isfinite(x) finite((double)(x))
+# elif defined(Perl_fp_class_finite)
+# define Perl_isfinite(x) Perl_fp_class_finite(x)
# else
-# ifdef HAS_ISFINITE
-# define Perl_isfinite(x) isfinite(x)
-# else
-# ifdef Perl_fp_class_finite
-# define Perl_isfinite(x) Perl_fp_class_finite(x)
-# else
-# define Perl_isfinite(x) !(Perl_is_inf(x)||Perl_is_nan(x))
-# endif
-# endif
+/* For the infinities the multiplication returns nan,
+ * for the nan the multiplication also returns nan,
+ * for everything else (that is, finite) zero should be returned. */
+# define Perl_isfinite(x) (((x) * 0) == 0)
# endif
#endif
+#ifndef Perl_isinf
+# if defined(Perl_isfinite) && defined(Perl_isnan)
+# define Perl_isinf(x) !(Perl_isfinite(x)||Perl_isnan(x))
+# endif
+#endif
+
+/* We need Perl_isfinitel (ends with ell) (if available) even when
+ * not USE_LONG_DOUBLE because the printf code (sv_catpvfn_flags)
+ * needs that. */
+#if defined(HAS_LONG_DOUBLE) && !defined(Perl_isfinitel)
+/* If isfinite() is a macro and looks like we have C99,
+ * we assume it's the type-aware C99 isfinite(). */
+# if defined(HAS_ISFINITE) && defined(isfinite) && defined(HAS_C99)
+# define Perl_isfinitel(x) isfinite(x)
+# elif defined(HAS_ISFINITEL)
+# define Perl_isfinitel(x) isfinitel(x)
+# elif defined(HAS_FINITEL)
+# define Perl_isfinitel(x) finitel(x)
+# elif defined(HAS_INFL) && defined(HAS_NANL)
+# define Perl_isfinitel(x) !(isinfl(x)||isnanl(x))
+# else
+# define Perl_isfinitel(x) ((x) * 0 == 0) /* See Perl_isfinite. */
+# endif
+#endif
+
/* The default is to use Perl's own atof() implementation (in numeric.c).
* Usually that is the one to use but for some platforms (e.g. UNICOS)
* it is however best to use the native implementation of atof.
@@ -2278,14 +2599,10 @@ int isnan(double d);
typedef MEM_SIZE STRLEN;
-#ifdef PERL_MAD
-typedef struct token TOKEN;
-typedef struct madprop MADPROP;
-typedef struct nexttoken NEXTTOKE;
-#endif
typedef struct op OP;
typedef struct cop COP;
typedef struct unop UNOP;
+typedef struct unop_aux UNOP_AUX;
typedef struct binop BINOP;
typedef struct listop LISTOP;
typedef struct logop LOGOP;
@@ -2294,6 +2611,7 @@ typedef struct svop SVOP;
typedef struct padop PADOP;
typedef struct pvop PVOP;
typedef struct loop LOOP;
+typedef struct methop METHOP;
#ifdef PERL_CORE
typedef struct opslab OPSLAB;
@@ -2343,12 +2661,12 @@ typedef struct ptr_tbl_ent PTR_TBL_ENT_t;
typedef struct ptr_tbl PTR_TBL_t;
typedef struct clone_params CLONE_PARAMS;
-/* a pad or name pad is currently just an AV; but that might change,
+/* a pad is currently just an AV; but that might change,
* so hide the type. */
typedef struct padlist PADLIST;
typedef AV PAD;
-typedef AV PADNAMELIST;
-typedef SV PADNAME;
+typedef struct padnamelist PADNAMELIST;
+typedef struct padname PADNAME;
/* enable PERL_NEW_COPY_ON_WRITE by default */
#if !defined(PERL_OLD_COPY_ON_WRITE) && !defined(PERL_NEW_COPY_ON_WRITE) && !defined(PERL_NO_COW)
@@ -2365,7 +2683,12 @@ typedef SV PADNAME;
# define PERL_SAWAMPERSAND
#endif
+#if defined(PERL_DEBUG_READONLY_OPS) && !defined(USE_ITHREADS)
+# error PERL_DEBUG_READONLY_OPS only works with ithreads
+#endif
+
#include "handy.h"
+#include "charclass_invlists.h"
#if defined(USE_LARGE_FILES) && !defined(NO_64_BIT_RAWIO)
# if LSEEKSIZE == 8 && !defined(USE_64_BIT_RAWIO)
@@ -2586,11 +2909,50 @@ typedef SV PADNAME;
# define PERL_FPU_POST_EXEC }
#endif
+/* In Tru64 the cc -ieee enables the IEEE math but disables traps.
+ * We need to reenable the "invalid" trap because otherwise generation
+ * of NaN values leaves the IEEE fp flags in bad state, leaving any further
+ * fp ops behaving strangely (Inf + 1 resulting in zero, for example). */
+#ifdef __osf__
+# include <machine/fpu.h>
+# define PERL_SYS_FPU_INIT \
+ STMT_START { \
+ ieee_set_fp_control(IEEE_TRAP_ENABLE_INV); \
+ signal(SIGFPE, SIG_IGN); \
+ } STMT_END
+#endif
+/* In IRIX the default for Flush to Zero bit is true,
+ * which means that results going below the minimum of normal
+ * floating points go to zero, instead of going denormal/subnormal.
+ * This is unlike almost any other system running Perl, so let's clear it.
+ * [perl #123767] IRIX64 blead (ddce084a) opbasic/arith.t failure, originally
+ * [perl #120426] small numbers shouldn't round to zero if they have extra floating digits
+ *
+ * XXX The flush-to-zero behaviour should be a Configure scan.
+ * To change the behaviour usually requires some system-specific
+ * incantation, though, like the below. */
+#ifdef __sgi
+# include <sys/fpu.h>
+# define PERL_SYS_FPU_INIT \
+ STMT_START { \
+ union fpc_csr csr; \
+ csr.fc_word = get_fpc_csr(); \
+ csr.fc_struct.flush = 0; \
+ set_fpc_csr(csr.fc_word); \
+ } STMT_END
+#endif
+
+#ifndef PERL_SYS_FPU_INIT
+# define PERL_SYS_FPU_INIT NOOP
+#endif
+
#ifndef PERL_SYS_INIT3_BODY
# define PERL_SYS_INIT3_BODY(argvp,argcp,envp) PERL_SYS_INIT_BODY(argvp,argcp)
#endif
/*
+=head1 Miscellaneous Functions
+
=for apidoc Am|void|PERL_SYS_INIT|int *argc|char*** argv
Provides system-specific tune up of the C runtime environment necessary to
run Perl interpreters. This should be called only once, before creating
@@ -2705,9 +3067,6 @@ freeing any remaining Perl interpreters.
# else
# ifdef I_MACH_CTHREADS
# include <mach/cthreads.h>
-# if (defined(NeXT) || defined(__NeXT__)) && defined(PERL_POLLUTE_MALLOC)
-# define MUTEX_INIT_CALLS_MALLOC
-# endif
typedef cthread_t perl_os_thread;
typedef mutex_t perl_mutex;
typedef condition_t perl_cond;
@@ -3078,6 +3437,9 @@ typedef pthread_key_t perl_key;
#endif
#define UTF8fARG(u,l,p) (int)cBOOL(u), (UV)(l), (void*)(p)
+#define PNf UTF8f
+#define PNfARG(pn) (int)1, (UV)PadnameLEN(pn), (void *)PadnamePV(pn)
+
#ifdef PERL_CORE
/* not used; but needed for backward compatibility with XS code? - RMB */
# undef UVf
@@ -3138,6 +3500,13 @@ typedef pthread_key_t perl_key;
# define __attribute__warn_unused_result__
#endif
+#ifdef I_ASSERT
+# if !defined(DEBUGGING) && !defined(NDEBUG)
+# define NDEBUG 1
+# endif
+# include <assert.h>
+#endif
+
/* For functions that are marked as __attribute__noreturn__, it's not
appropriate to call return. In either case, include the lint directive.
*/
@@ -3165,6 +3534,40 @@ typedef pthread_key_t perl_key;
/* placeholder */
#endif
+/* STATIC_ASSERT_GLOBAL/STATIC_ASSERT_STMT are like assert(), but for compile
+ time invariants. That is, their argument must be a constant expression that
+ can be verified by the compiler. This expression can contain anything that's
+ known to the compiler, e.g. #define constants, enums, or sizeof (...). If
+ the expression evaluates to 0, compilation fails.
+ Because they generate no runtime code (i.e. their use is "free"), they're
+ always active, even under non-DEBUGGING builds.
+ STATIC_ASSERT_GLOBAL expands to a declaration and is suitable for use at
+ file scope (outside of any function).
+ STATIC_ASSERT_STMT expands to a statement and is suitable for use inside a
+ function.
+*/
+#if (defined(static_assert) || (defined(__cplusplus) && __cplusplus >= 201103L)) && (!defined(__IBMC__) || __IBMC__ >= 1210)
+/* static_assert is a macro defined in <assert.h> in C11 or a compiler
+ builtin in C++11.
+*/
+/* IBM XL C V11 does not support _Static_assert, no matter what <assert.h> says */
+# define STATIC_ASSERT_GLOBAL(COND) static_assert(COND, #COND)
+#else
+/* We use a bit-field instead of an array because gcc accepts
+ 'typedef char x[n]' where n is not a compile-time constant.
+ We want to enforce constantness.
+*/
+# define STATIC_ASSERT_2(COND, SUFFIX) \
+ typedef struct { \
+ unsigned int _static_assertion_failed_##SUFFIX : (COND) ? 1 : -1; \
+ } _static_assertion_failed_##SUFFIX PERL_UNUSED_DECL
+# define STATIC_ASSERT_1(COND, SUFFIX) STATIC_ASSERT_2(COND, SUFFIX)
+# define STATIC_ASSERT_GLOBAL(COND) STATIC_ASSERT_1(COND, __LINE__)
+#endif
+/* We need this wrapper even in C11 because 'case X: static_assert(...);' is an
+ error (static_assert is a declaration, and only statements can have labels).
+*/
+#define STATIC_ASSERT_STMT(COND) do { STATIC_ASSERT_GLOBAL(COND); } while (0)
#ifndef __has_builtin
# define __has_builtin(x) 0 /* not a clang style compiler */
@@ -3175,13 +3578,13 @@ typedef pthread_key_t perl_key;
expression, which allows the compiler to generate better machine code.
In a debug build, ASSUME(x) is a synonym for assert(x). ASSUME(0) means
the control path is unreachable. In a for loop, ASSUME can be used to hint
- that a loop will run atleast X times. ASSUME is based off MSVC's __assume
+ that a loop will run at least X times. ASSUME is based off MSVC's __assume
intrinsic function, see its documents for more details.
*/
#ifndef DEBUGGING
# if __has_builtin(__builtin_unreachable) \
- || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5 || __GNUC__ > 5) /* 4.5 -> */
+ || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5 || __GNUC__ > 4) /* 4.5 -> */
# define ASSUME(x) ((x) ? (void) 0 : __builtin_unreachable())
# elif defined(_MSC_VER)
# define ASSUME(x) __assume(x)
@@ -3313,13 +3716,6 @@ typedef struct crypt_data { /* straight from /usr/include/crypt.h */
#endif
#include "perly.h"
-#ifdef PERL_MAD
-struct nexttoken {
- YYSTYPE next_val; /* value of next token, if any */
- I32 next_type; /* type of next token */
- MADPROP *next_mad; /* everything else about that token */
-};
-#endif
/* macros to define bit-fields in structs. */
#ifndef PERL_BITFIELD8
@@ -3682,6 +4078,7 @@ Gid_t getegid (void);
# define DEBUG_Pv_TEST DEBUG_Pv_TEST_
# define PERL_DEB(a) a
+# define PERL_DEB2(a,b) a
# define PERL_DEBUG(a) if (PL_debug) a
# define DEBUG_p(a) if (DEBUG_p_TEST) a
# define DEBUG_s(a) if (DEBUG_s_TEST) a
@@ -3764,6 +4161,7 @@ Gid_t getegid (void);
# define DEBUG_Pv_TEST (0)
# define PERL_DEB(a)
+# define PERL_DEB2(a,b) b
# define PERL_DEBUG(a)
# define DEBUG_p(a)
# define DEBUG_s(a)
@@ -3803,19 +4201,17 @@ Gid_t getegid (void);
where, (long)PL_scopestack_ix, (long)PL_savestack_ix, \
__FILE__, __LINE__));
-#if defined(DEBUGGING) && defined(I_ASSERT)
-# include <assert.h>
-#endif
-
/* Keep the old croak based assert for those who want it, and as a fallback if
the platform is so heretically non-ANSI that it can't assert. */
-#define Perl_assert(what) PERL_DEB( \
+#define Perl_assert(what) PERL_DEB2( \
((what) ? ((void) 0) : \
(Perl_croak_nocontext("Assertion %s failed: file \"" __FILE__ \
"\", line %d", STRINGIFY(what), __LINE__), \
- (void) 0)))
+ (void) 0)), ((void)0))
+/* assert() gets defined if DEBUGGING (and I_ASSERT).
+ * If no DEBUGGING, the <assert.h> has not been included. */
#ifndef assert
# define assert(what) Perl_assert(what)
#endif
@@ -3877,6 +4273,10 @@ char *strcpy(), *strcat();
#ifdef I_MATH
# include <math.h>
+# ifdef __VMS
+ /* isfinite and others are here rather than in math.h as C99 stipulates */
+# include <fp.h>
+# endif
#else
START_EXTERN_C
double exp (double);
@@ -3893,8 +4293,19 @@ START_EXTERN_C
END_EXTERN_C
#endif
-#if !defined(NV_INF) && defined(USE_LONG_DOUBLE) && defined(LDBL_INFINITY)
-# define NV_INF LDBL_INFINITY
+/* If you are thinking of using HUGE_VAL for infinity, or using
+ * <math.h> functions to generate NV_INF (e.g. exp(1e9), log(-1.0)),
+ * stop. Neither will work portably: HUGE_VAL can be just DBL_MAX,
+ * and the math functions might be just generating DBL_MAX, or even
+ * zero. */
+
+#if !defined(NV_INF) && defined(USE_LONG_DOUBLE)
+# if !defined(NV_INF) && defined(LDBL_INFINITY)
+# define NV_INF LDBL_INFINITY
+# endif
+# if !defined(NV_INF) && defined(INFINITYL)
+# define NV_INF INFINITYL
+# endif
#endif
#if !defined(NV_INF) && defined(DBL_INFINITY)
# define NV_INF (NV)DBL_INFINITY
@@ -3905,23 +4316,43 @@ END_EXTERN_C
#if !defined(NV_INF) && defined(INF)
# define NV_INF (NV)INF
#endif
-#if !defined(NV_INF) && defined(USE_LONG_DOUBLE) && defined(HUGE_VALL)
-# define NV_INF (NV)HUGE_VALL
+#if !defined(NV_INF)
+# if INTSIZE == 4
+/* At this point we assume the IEEE 754 floating point (and of course,
+ * we also assume a floating point format that can encode an infinity).
+ * We will coerce an int32 (which will encode the infinity) into
+ * a 32-bit float, which will then be cast into NV.
+ *
+ * Note that we intentionally use a float and 32-bit int, instead of
+ * shifting a small integer into a full IV, and from that into a full
+ * NV, because:
+ *
+ * (1) an IV might not be wide enough to cover all the bits of an NV.
+ * (2) the exponent part (including the infinity and nan bits) of a NV
+ * might be wider than just 16 bits.
+ *
+ * Below the NV_NAN logic has similar __PL_nan_u fallback, the only
+ * difference being the int32 constant being coerced. */
+# define __PL_inf_float_int32 0x7F800000
+static const union { unsigned int __i; float __f; } __PL_inf_u =
+ { __PL_inf_float_int32 };
+# define NV_INF ((NV)(__PL_inf_u.__f))
+# endif
#endif
-#if !defined(NV_INF) && defined(HUGE_VAL)
-# define NV_INF (NV)HUGE_VAL
+#if !defined(NV_INF)
+# define NV_INF ((NV)1.0/0.0) /* Some compilers will warn. */
#endif
#if !defined(NV_NAN) && defined(USE_LONG_DOUBLE)
# if !defined(NV_NAN) && defined(LDBL_NAN)
# define NV_NAN LDBL_NAN
# endif
+# if !defined(NV_NAN) && defined(NANL)
+# define NV_NAN NANL
+# endif
# if !defined(NV_NAN) && defined(LDBL_QNAN)
# define NV_NAN LDBL_QNAN
# endif
-# if !defined(NV_NAN) && defined(LDBL_SNAN)
-# define NV_NAN LDBL_SNAN
-# endif
#endif
#if !defined(NV_NAN) && defined(DBL_NAN)
# define NV_NAN (NV)DBL_NAN
@@ -3929,29 +4360,37 @@ END_EXTERN_C
#if !defined(NV_NAN) && defined(DBL_QNAN)
# define NV_NAN (NV)DBL_QNAN
#endif
-#if !defined(NV_NAN) && defined(DBL_SNAN)
-# define NV_NAN (NV)DBL_SNAN
+#if !defined(NV_NAN) && defined(NAN)
+# define NV_NAN (NV)NAN
#endif
#if !defined(NV_NAN) && defined(QNAN)
# define NV_NAN (NV)QNAN
#endif
-#if !defined(NV_NAN) && defined(SNAN)
-# define NV_NAN (NV)SNAN
+#if !defined(NV_NAN) && defined(USE_LONG_DOUBLE) && defined(I_SUNMATH)
+# define NV_NAN (NV)quiet_nan()
#endif
-#if !defined(NV_NAN) && defined(NAN)
-# define NV_NAN (NV)NAN
+#if !defined(NV_NAN)
+# if INTSIZE == 4
+/* See the discussion near __PL_inf_u. */
+# define __PL_nan_float_int32 0x7FC00000
+static const union { unsigned int __i; float __f; } __PL_nan_u =
+ { __PL_nan_float_int32 };
+# define NV_NAN ((NV)(__PL_nan_u.__f))
+# endif
#endif
+#if !defined(NV_NAN)
+# define NV_NAN ((NV)0.0/0.0) /* Some compilers will warn. */
+#endif
+/* Do NOT try doing NV_NAN based on NV_INF and trying (NV_INF-NV_INF).
+ * Though IEEE-754-logically correct, some compilers (like Visual C 2003)
+ * falsely misoptimize that to zero (x-x is zero, right?) */
#ifndef __cplusplus
-# if defined(NeXT) || defined(__NeXT__) /* or whatever catches all NeXTs */
-char *crypt (); /* Maybe more hosts will need the unprototyped version */
-# else
-# if !defined(WIN32) && !defined(VMS)
+# if !defined(WIN32) && !defined(VMS)
#ifndef crypt
char *crypt (const char*, const char*);
#endif
-# endif /* !WIN32 */
-# endif /* !NeXT && !__NeXT__ */
+# endif /* !WIN32 */
# ifndef DONT_DECLARE_STD
# ifndef getenv
char *getenv (const char*);
@@ -4153,19 +4592,9 @@ typedef OP* (*PPADDR_t[]) (pTHX);
typedef bool (*destroyable_proc_t) (pTHX_ SV *sv);
typedef void (*despatch_signals_proc_t) (pTHX);
-/* NeXT has problems with crt0.o globals */
-#if defined(__DYNAMIC__) && \
- (defined(NeXT) || defined(__NeXT__) || defined(PERL_DARWIN))
-# if defined(NeXT) || defined(__NeXT)
-# include <mach-o/dyld.h>
-# define environ (*environ_pointer)
-EXT char *** environ_pointer;
-# else
-# if defined(PERL_DARWIN) && defined(PERL_CORE)
-# include <crt_externs.h> /* for the env array */
-# define environ (*_NSGetEnviron())
-# endif
-# endif
+#if defined(__DYNAMIC__) && defined(PERL_DARWIN) && defined(PERL_CORE)
+# include <crt_externs.h> /* for the env array */
+# define environ (*_NSGetEnviron())
#else
/* VMS and some other platforms don't use the environ array */
# ifdef USE_ENVIRON_ARRAY
@@ -4204,12 +4633,13 @@ EXTCONST char PL_warn_nl[]
INIT("Unsuccessful %s on filename containing newline");
EXTCONST char PL_no_wrongref[]
INIT("Can't use %s ref as %s ref");
-/* The core no longer needs these here. If you require the string constant,
+/* The core no longer needs this here. If you require the string constant,
please inline a copy into your own code. */
EXTCONST char PL_no_symref[] __attribute__deprecated__
INIT("Can't use string (\"%.32s\") as %s ref while \"strict refs\" in use");
-EXTCONST char PL_no_symref_sv[] __attribute__deprecated__
- INIT("Can't use string (\"%" SVf32 "\") as %s ref while \"strict refs\" in use");
+EXTCONST char PL_no_symref_sv[]
+ INIT("Can't use string (\"%" SVf32 "\"%s) as %s ref while \"strict refs\" in use");
+
EXTCONST char PL_no_usym[]
INIT("Can't use an undefined value as %s reference");
EXTCONST char PL_no_aelem[]
@@ -4229,7 +4659,7 @@ EXTCONST char PL_no_dir_func[]
EXTCONST char PL_no_func[]
INIT("The %s function is unimplemented");
EXTCONST char PL_no_myglob[]
- INIT("\"%s\" variable %s can't be in a package");
+ INIT("\"%s\" %se %s can't be in a package");
EXTCONST char PL_no_localize_ref[]
INIT("Can't localize through a reference");
EXTCONST char PL_memory_wrap[]
@@ -4651,9 +5081,6 @@ EXTCONST char PL_bincompat_options[] =
# ifdef PERL_IMPLICIT_SYS
" PERL_IMPLICIT_SYS"
# endif
-# ifdef PERL_MAD
- " PERL_MAD"
-# endif
# ifdef PERL_MICRO
" PERL_MICRO"
# endif
@@ -4699,12 +5126,18 @@ EXTCONST char PL_bincompat_options[] =
# ifdef USE_LOCALE_NUMERIC
" USE_LOCALE_NUMERIC"
# endif
+# ifdef USE_LOCALE_TIME
+ " USE_LOCALE_TIME"
+# endif
# ifdef USE_LONG_DOUBLE
" USE_LONG_DOUBLE"
# endif
# ifdef USE_PERLIO
" USE_PERLIO"
# endif
+# ifdef USE_QUADMATH
+ " USE_QUADMATH"
+# endif
# ifdef USE_REENTRANT_API
" USE_REENTRANT_API"
# endif
@@ -4796,6 +5229,7 @@ typedef enum {
XATTRBLOCK,
XATTRTERM,
XTERMBLOCK,
+ XBLOCKTERM,
XPOSTDEREF,
XTERMORDORDOR /* evil hack */
/* update exp_name[] in toke.c if adding to this enum */
@@ -4806,12 +5240,18 @@ typedef enum {
However, bitops store HINT_INTEGER in their op_private.
NOTE: The typical module using these has the bit value hard-coded, so don't
- blindly change the values of these */
+ blindly change the values of these.
+
+ If we run out of bits, the 2 locale ones could be combined. The PARTIAL one
+ is for "use locale 'FOO'" which excludes some categories. It requires going
+ to %^H to find out which are in and which are out. This could be extended
+ for the normal case of a plain HINT_LOCALE, so that %^H would be used for
+ any locale form. */
#define HINT_INTEGER 0x00000001 /* integer pragma */
#define HINT_STRICT_REFS 0x00000002 /* strict pragma */
#define HINT_LOCALE 0x00000004 /* locale pragma */
#define HINT_BYTES 0x00000008 /* bytes pragma */
-#define HINT_LOCALE_NOT_CHARS 0x00000010 /* locale ':not_characters' pragma */
+#define HINT_LOCALE_PARTIAL 0x00000010 /* locale, but a subset of categories */
#define HINT_EXPLICIT_STRICT_REFS 0x00000020 /* strict.pm */
#define HINT_EXPLICIT_STRICT_SUBS 0x00000040 /* strict.pm */
@@ -4844,8 +5284,8 @@ typedef enum {
#define HINT_FEATURE_MASK 0x1c000000 /* 3 bits for feature bundles */
- /* Note: Used for NATIVE_HINTS, currently
- defined by vms/vmsish.h:
+ /* Note: Used for HINT_M_VMSISH_*,
+ currently defined by vms/vmsish.h:
0x40000000
0x80000000
*/
@@ -4867,6 +5307,16 @@ typedef enum {
(SAWAMPERSAND_LEFT|SAWAMPERSAND_MIDDLE|SAWAMPERSAND_RIGHT)
#endif
+/* Used for debugvar magic */
+#define DBVARMG_SINGLE 0
+#define DBVARMG_TRACE 1
+#define DBVARMG_SIGNAL 2
+#define DBVARMG_COUNT 3
+
+#define PL_DBsingle_iv (PL_DBcontrol[DBVARMG_SINGLE])
+#define PL_DBtrace_iv (PL_DBcontrol[DBVARMG_TRACE])
+#define PL_DBsignal_iv (PL_DBcontrol[DBVARMG_SIGNAL])
+
/* Various states of the input record separator SV (rs) */
#define RsSNARF(sv) (! SvOK(sv))
#define RsSIMPLE(sv) (SvOK(sv) && (! SvPOK(sv) || SvCUR(sv)))
@@ -5066,12 +5516,6 @@ struct tempsym; /* defined in pp_pack.c */
#if !defined(PERL_FOR_X2P)
# include "embedvar.h"
#endif
-#ifndef PERL_MAD
-# undef PL_madskills
-# undef PL_xmlfp
-# define PL_madskills 0
-# define PL_xmlfp 0
-#endif
/* Now include all the 'global' variables
* If we don't have threads or multiple interpreters
@@ -5098,10 +5542,6 @@ END_EXTERN_C
In particular, need the relevant *ish file included already, as it may
define HAVE_INTERP_INTERN */
#include "embed.h"
-#ifndef PERL_MAD
-# undef op_getmad
-# define op_getmad(arg,pegop,slot) NOOP
-#endif
#ifndef PERL_GLOBAL_STRUCT
START_EXTERN_C
@@ -5116,6 +5556,26 @@ END_EXTERN_C
#undef PERLVARI
#undef PERLVARIC
+#if !defined(MULTIPLICITY)
+/* Set up PERLVAR macros for populating structs */
+# define PERLVAR(prefix,var,type) type prefix##var;
+/* 'var' is an array of length 'n' */
+# define PERLVARA(prefix,var,n,type) type prefix##var[n];
+/* initialize 'var' to init' */
+# define PERLVARI(prefix,var,type,init) type prefix##var;
+/* like PERLVARI, but make 'var' a const */
+# define PERLVARIC(prefix,var,type,init) type prefix##var;
+
+/* this is never instantiated, is it just used for sizeof(struct PerlHandShakeInterpreter) */
+struct PerlHandShakeInterpreter {
+# include "intrpvar.h"
+};
+# undef PERLVAR
+# undef PERLVARA
+# undef PERLVARI
+# undef PERLVARIC
+#endif
+
START_EXTERN_C
/* dummy variables that hold pointers to both runops functions, thus forcing
@@ -5126,14 +5586,7 @@ EXTCONST runops_proc_t PL_runops_std
EXTCONST runops_proc_t PL_runops_dbg
INIT(Perl_runops_debug);
-/* PERL_GLOBAL_STRUCT_PRIVATE wants to keep global data like the
- * magic vtables const, but this is incompatible with SWIG which
- * does want to modify the vtables. */
-#ifdef PERL_GLOBAL_STRUCT_PRIVATE
-# define EXT_MGVTBL EXTCONST MGVTBL
-#else
-# define EXT_MGVTBL EXT MGVTBL
-#endif
+#define EXT_MGVTBL EXTCONST MGVTBL
#define PERL_MAGIC_READONLY_ACCEPTABLE 0x40
#define PERL_MAGIC_VALUE_MAGIC 0x80
@@ -5183,6 +5636,25 @@ EXTCONST bool PL_valid_types_NV_set[];
#endif
+
+/* if these never got defined, they need defaults */
+#ifndef PERL_SET_CONTEXT
+# define PERL_SET_CONTEXT(i) PERL_SET_INTERP(i)
+#endif
+
+#ifndef PERL_GET_CONTEXT
+# define PERL_GET_CONTEXT PERL_GET_INTERP
+#endif
+
+#ifndef PERL_GET_THX
+# define PERL_GET_THX ((void*)NULL)
+#endif
+
+#ifndef PERL_SET_THX
+# define PERL_SET_THX(t) NOOP
+#endif
+
+
#ifndef PERL_NO_INLINE_FUNCTIONS
/* Static inline funcs that depend on includes and declarations above.
Some of these reference functions in the perl object files, and some
@@ -5282,152 +5754,349 @@ typedef struct am_table_short AMTS;
#define PERLDBf_SAVESRC_NOSUBS 0x800 /* Including evals that generate no subroutines */
#define PERLDBf_SAVESRC_INVALID 0x1000 /* Save source that did not compile */
-#define PERLDB_SUB (PL_perldb && (PL_perldb & PERLDBf_SUB))
-#define PERLDB_LINE (PL_perldb && (PL_perldb & PERLDBf_LINE))
-#define PERLDB_NOOPT (PL_perldb && (PL_perldb & PERLDBf_NOOPT))
-#define PERLDB_INTER (PL_perldb && (PL_perldb & PERLDBf_INTER))
-#define PERLDB_SUBLINE (PL_perldb && (PL_perldb & PERLDBf_SUBLINE))
-#define PERLDB_SINGLE (PL_perldb && (PL_perldb & PERLDBf_SINGLE))
-#define PERLDB_SUB_NN (PL_perldb && (PL_perldb & (PERLDBf_NONAME)))
-#define PERLDB_GOTO (PL_perldb && (PL_perldb & PERLDBf_GOTO))
-#define PERLDB_NAMEEVAL (PL_perldb && (PL_perldb & PERLDBf_NAMEEVAL))
-#define PERLDB_NAMEANON (PL_perldb && (PL_perldb & PERLDBf_NAMEANON))
-#define PERLDB_SAVESRC (PL_perldb && (PL_perldb & PERLDBf_SAVESRC))
-#define PERLDB_SAVESRC_NOSUBS (PL_perldb && (PL_perldb & PERLDBf_SAVESRC_NOSUBS))
-#define PERLDB_SAVESRC_INVALID (PL_perldb && (PL_perldb & PERLDBf_SAVESRC_INVALID))
+#define PERLDB_SUB (PL_perldb & PERLDBf_SUB)
+#define PERLDB_LINE (PL_perldb & PERLDBf_LINE)
+#define PERLDB_NOOPT (PL_perldb & PERLDBf_NOOPT)
+#define PERLDB_INTER (PL_perldb & PERLDBf_INTER)
+#define PERLDB_SUBLINE (PL_perldb & PERLDBf_SUBLINE)
+#define PERLDB_SINGLE (PL_perldb & PERLDBf_SINGLE)
+#define PERLDB_SUB_NN (PL_perldb & PERLDBf_NONAME)
+#define PERLDB_GOTO (PL_perldb & PERLDBf_GOTO)
+#define PERLDB_NAMEEVAL (PL_perldb & PERLDBf_NAMEEVAL)
+#define PERLDB_NAMEANON (PL_perldb & PERLDBf_NAMEANON)
+#define PERLDB_SAVESRC (PL_perldb & PERLDBf_SAVESRC)
+#define PERLDB_SAVESRC_NOSUBS (PL_perldb & PERLDBf_SAVESRC_NOSUBS)
+#define PERLDB_SAVESRC_INVALID (PL_perldb & PERLDBf_SAVESRC_INVALID)
+
+#ifdef USE_LOCALE
+/* These locale things are all subject to change */
+/* Returns TRUE if the plain locale pragma without a parameter is in effect
+ */
+# define IN_LOCALE_RUNTIME cBOOL(CopHINTS_get(PL_curcop) & HINT_LOCALE)
-/*
+/* Returns TRUE if either form of the locale pragma is in effect */
+# define IN_SOME_LOCALE_FORM_RUNTIME \
+ cBOOL(CopHINTS_get(PL_curcop) & (HINT_LOCALE|HINT_LOCALE_PARTIAL))
-=head1 Locale-related functions and macros
+# define IN_LOCALE_COMPILETIME cBOOL(PL_hints & HINT_LOCALE)
+# define IN_SOME_LOCALE_FORM_COMPILETIME \
+ cBOOL(PL_hints & (HINT_LOCALE|HINT_LOCALE_PARTIAL))
-=for apidoc sync_locale
+# define IN_LOCALE \
+ (IN_PERL_COMPILETIME ? IN_LOCALE_COMPILETIME : IN_LOCALE_RUNTIME)
+# define IN_SOME_LOCALE_FORM \
+ (IN_PERL_COMPILETIME ? IN_SOME_LOCALE_FORM_COMPILETIME \
+ : IN_SOME_LOCALE_FORM_RUNTIME)
-Changing the program's locale should be avoided by XS code. Nevertheless,
-certain non-Perl libraries called from XS, such as C<Gtk> do so. When this
-happens, Perl needs to be told that the locale has changed. Use this macro
-to do so, before returning to Perl code.
+# define IN_LC_ALL_COMPILETIME IN_LOCALE_COMPILETIME
+# define IN_LC_ALL_RUNTIME IN_LOCALE_RUNTIME
+
+# define IN_LC_PARTIAL_COMPILETIME cBOOL(PL_hints & HINT_LOCALE_PARTIAL)
+# define IN_LC_PARTIAL_RUNTIME \
+ cBOOL(CopHINTS_get(PL_curcop) & HINT_LOCALE_PARTIAL)
+
+# define IN_LC_COMPILETIME(category) \
+ (IN_LC_ALL_COMPILETIME || (IN_LC_PARTIAL_COMPILETIME \
+ && _is_in_locale_category(TRUE, (category))))
+# define IN_LC_RUNTIME(category) \
+ (IN_LC_ALL_RUNTIME || (IN_LC_PARTIAL_RUNTIME \
+ && _is_in_locale_category(FALSE, (category))))
+# define IN_LC(category) \
+ (IN_LC_COMPILETIME(category) || IN_LC_RUNTIME(category))
+
+# if defined (PERL_CORE) || defined (PERL_IN_XSUB_RE)
+
+ /* This internal macro should be called from places that operate under
+ * locale rules. It there is a problem with the current locale that
+ * hasn't been raised yet, it will output a warning this time. Because
+ * this will so rarely be true, there is no point to optimize for
+ * time; instead it makes sense to minimize space used and do all the
+ * work in the rarely called function */
+# ifdef USE_LOCALE_CTYPE
+# define _CHECK_AND_WARN_PROBLEMATIC_LOCALE \
+ STMT_START { \
+ if (UNLIKELY(PL_warn_locale)) { \
+ _warn_problematic_locale(); \
+ } \
+ } STMT_END
+# else
+# define _CHECK_AND_WARN_PROBLEMATIC_LOCALE
+# endif
-=cut
-*/
-/* Temporary for maint. Is a function in 5.21 */
-#define sync_locale() (new_ctype(setlocale(LC_CTYPE, NULL)), \
- new_collate(setlocale(LC_COLLATE, NULL)), \
- set_numeric_local(), \
- new_numeric(setlocale(LC_NUMERIC, NULL)))
+ /* These two internal macros are called when a warning should be raised,
+ * and will do so if enabled. The first takes a single code point
+ * argument; the 2nd, is a pointer to the first byte of the UTF-8 encoded
+ * string, and an end position which it won't try to read past */
+# define _CHECK_AND_OUTPUT_WIDE_LOCALE_CP_MSG(cp) \
+ STMT_START { \
+ if (! PL_in_utf8_CTYPE_locale && ckWARN(WARN_LOCALE)) { \
+ Perl_warner(aTHX_ packWARN(WARN_LOCALE), \
+ "Wide character (U+%"UVXf") in %s", \
+ (UV) cp, OP_DESC(PL_op)); \
+ } \
+ } STMT_END
+
+# define _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(s, send) \
+ STMT_START { /* Check if to warn before doing the conversion work */\
+ if (! PL_in_utf8_CTYPE_locale && ckWARN(WARN_LOCALE)) { \
+ UV cp = utf8_to_uvchr_buf((U8 *) s, (U8 *) send, NULL); \
+ Perl_warner(aTHX_ packWARN(WARN_LOCALE), \
+ "Wide character (U+%"UVXf") in %s", \
+ (cp == 0) \
+ ? UNICODE_REPLACEMENT \
+ : (UV) cp, \
+ OP_DESC(PL_op)); \
+ } \
+ } STMT_END
+
+# endif /* PERL_CORE or PERL_IN_XSUB_RE */
+
+#else /* No locale usage */
+# define IN_LOCALE_RUNTIME 0
+# define IN_SOME_LOCALE_FORM_RUNTIME 0
+# define IN_LOCALE_COMPILETIME 0
+# define IN_SOME_LOCALE_FORM_COMPILETIME 0
+# define IN_LOCALE 0
+# define IN_SOME_LOCALE_FORM 0
+# define IN_LC_ALL_COMPILETIME 0
+# define IN_LC_ALL_RUNTIME 0
+# define IN_LC_PARTIAL_COMPILETIME 0
+# define IN_LC_PARTIAL_RUNTIME 0
+# define IN_LC_COMPILETIME(category) 0
+# define IN_LC_RUNTIME(category) 0
+# define IN_LC(category) 0
+
+# define _CHECK_AND_WARN_PROBLEMATIC_LOCALE
+# define _CHECK_AND_OUTPUT_WIDE_LOCALE_CP_MSG(a)
+# define _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(a,b)
+#endif
#ifdef USE_LOCALE_NUMERIC
-/* Returns TRUE if the plain locale pragma without a parameter is in effect
- */
-#define IN_LOCALE_RUNTIME cBOOL(CopHINTS_get(PL_curcop) & HINT_LOCALE)
+/* These macros are for toggling between the underlying locale (UNDERLYING or
+ * LOCAL) and the C locale (STANDARD).
-/* Returns TRUE if either form of the locale pragma is in effect */
-#define IN_SOME_LOCALE_FORM_RUNTIME \
- cBOOL(CopHINTS_get(PL_curcop) & (HINT_LOCALE|HINT_LOCALE_NOT_CHARS))
+=head1 Locale-related functions and macros
-#define IN_LOCALE_COMPILETIME cBOOL(PL_hints & HINT_LOCALE)
-#define IN_SOME_LOCALE_FORM_COMPILETIME \
- cBOOL(PL_hints & (HINT_LOCALE|HINT_LOCALE_NOT_CHARS))
+=for apidoc Amn|void|DECLARATION_FOR_LC_NUMERIC_MANIPULATION
+
+This macro should be used as a statement. It declares a private variable
+(whose name begins with an underscore) that is needed by the other macros in
+this section. Failing to include this correctly should lead to a syntax error.
+For compatibility with C89 C compilers it should be placed in a block before
+any executable statements.
+
+=for apidoc Am|void|STORE_LC_NUMERIC_FORCE_TO_UNDERLYING
+
+This is used by XS code that that is C<LC_NUMERIC> locale-aware to force the
+locale for category C<LC_NUMERIC> to be what perl thinks is the current
+underlying locale. (The perl interpreter could be wrong about what the
+underlying locale actually is if some C or XS code has called the C library
+function L<setlocale(3)> behind its back; calling L</sync_locale> before calling
+this macro will update perl's records.)
+
+A call to L</DECLARATION_FOR_LC_NUMERIC_MANIPULATION> must have been made to
+declare at compile time a private variable used by this macro. This macro
+should be called as a single statement, not an expression, but with an empty
+argument list, like this:
+
+ {
+ DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+ ...
+ STORE_LC_NUMERIC_FORCE_TO_UNDERLYING();
+ ...
+ RESTORE_LC_NUMERIC();
+ ...
+ }
+
+The private variable is used to save the current locale state, so
+that the requisite matching call to L</RESTORE_LC_NUMERIC> can restore it.
+
+=for apidoc Am|void|STORE_LC_NUMERIC_SET_TO_NEEDED
+
+This is used to help wrap XS or C code that that is C<LC_NUMERIC> locale-aware.
+This locale category is generally kept set to the C locale by Perl for
+backwards compatibility, and because most XS code that reads floating point
+values can cope only with the decimal radix character being a dot.
+
+This macro makes sure the current C<LC_NUMERIC> state is set properly, to be
+aware of locale if the call to the XS or C code from the Perl program is
+from within the scope of a S<C<use locale>>; or to ignore locale if the call is
+instead from outside such scope.
+
+This macro is the start of wrapping the C or XS code; the wrap ending is done
+by calling the L</RESTORE_LC_NUMERIC> macro after the operation. Otherwise
+the state can be changed that will adversely affect other XS code.
+
+A call to L</DECLARATION_FOR_LC_NUMERIC_MANIPULATION> must have been made to
+declare at compile time a private variable used by this macro. This macro
+should be called as a single statement, not an expression, but with an empty
+argument list, like this:
+
+ {
+ DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+ ...
+ STORE_LC_NUMERIC_SET_TO_NEEDED();
+ ...
+ RESTORE_LC_NUMERIC();
+ ...
+ }
-#define IN_LOCALE \
- (IN_PERL_COMPILETIME ? IN_LOCALE_COMPILETIME : IN_LOCALE_RUNTIME)
-#define IN_SOME_LOCALE_FORM \
- (IN_PERL_COMPILETIME ? IN_SOME_LOCALE_FORM_COMPILETIME \
- : IN_SOME_LOCALE_FORM_RUNTIME)
+=for apidoc Am|void|RESTORE_LC_NUMERIC
-/* These macros are for toggling between the underlying locale (LOCAL) and the
- * C locale. */
-
-/* The first set makes sure that the locale is set to C unless within a 'use
- * locale's scope; otherwise to the default locale. A function pointer is
- * used, which can be declared separately by
- * DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED, followed by the actual
- * setting (using STORE_LC_NUMERIC_SET_TO_NEEDED()), or the two can be combined
- * into one call DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED().
- * RESTORE_LC_NUMERIC() in all cases restores the locale to what it was before
- * these were called */
-
-#define DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED \
- void (*_restore_LC_NUMERIC_function)(pTHX) = NULL;
-
-#define STORE_LC_NUMERIC_SET_TO_NEEDED() \
- if (IN_SOME_LOCALE_FORM) { \
- if (! PL_numeric_local) { \
- SET_NUMERIC_LOCAL(); \
- _restore_LC_NUMERIC_function = &Perl_set_numeric_standard; \
- } \
- } \
- else { \
- if (! PL_numeric_standard) { \
- SET_NUMERIC_STANDARD(); \
- _restore_LC_NUMERIC_function = &Perl_set_numeric_local; \
- } \
- }
+This is used in conjunction with one of the macros
+L</STORE_LC_NUMERIC_SET_TO_NEEDED>
+and
+L</STORE_LC_NUMERIC_FORCE_TO_UNDERLYING>
-#define DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED() \
- DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED; \
- STORE_LC_NUMERIC_SET_TO_NEEDED();
+to properly restore the C<LC_NUMERIC> state.
+
+A call to L</DECLARATION_FOR_LC_NUMERIC_MANIPULATION> must have been made to
+declare at compile time a private variable used by this macro and the two
+C<STORE> ones. This macro should be called as a single statement, not an
+expression, but with an empty argument list, like this:
+
+ {
+ DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+ ...
+ RESTORE_LC_NUMERIC();
+ ...
+ }
-#define RESTORE_LC_NUMERIC() \
- if (_restore_LC_NUMERIC_function) { \
- _restore_LC_NUMERIC_function(aTHX); \
+=cut
+
+*/
+
+#define _NOT_IN_NUMERIC_STANDARD (! PL_numeric_standard)
+
+/* We can lock the category to stay in the C locale, making requests to the
+ * contrary be noops, in the dynamic scope by setting PL_numeric_standard to 2.
+ * */
+#define _NOT_IN_NUMERIC_UNDERLYING \
+ (! PL_numeric_local && PL_numeric_standard < 2)
+
+#define DECLARATION_FOR_LC_NUMERIC_MANIPULATION \
+ void (*_restore_LC_NUMERIC_function)(pTHX) = NULL
+
+#define STORE_LC_NUMERIC_SET_TO_NEEDED() \
+ if (IN_LC(LC_NUMERIC)) { \
+ if (_NOT_IN_NUMERIC_UNDERLYING) { \
+ set_numeric_local(); \
+ _restore_LC_NUMERIC_function = &Perl_set_numeric_standard; \
+ } \
+ } \
+ else { \
+ if (_NOT_IN_NUMERIC_STANDARD) { \
+ SET_NUMERIC_STANDARD(); \
+ _restore_LC_NUMERIC_function = &Perl_set_numeric_local; \
+ } \
+ }
+
+#define RESTORE_LC_NUMERIC() \
+ if (_restore_LC_NUMERIC_function) { \
+ _restore_LC_NUMERIC_function(aTHX); \
}
/* The next two macros set unconditionally. These should be rarely used, and
* only after being sure that this is what is needed */
-#define SET_NUMERIC_STANDARD() \
- set_numeric_standard();
+#define SET_NUMERIC_STANDARD() \
+ STMT_START { if (_NOT_IN_NUMERIC_STANDARD) set_numeric_standard(); \
+ } STMT_END
-#define SET_NUMERIC_LOCAL() \
- set_numeric_local();
+#define SET_NUMERIC_UNDERLYING() \
+ STMT_START { if (_NOT_IN_NUMERIC_UNDERLYING) \
+ set_numeric_local(); } STMT_END
/* The rest of these LC_NUMERIC macros toggle to one or the other state, with
* the RESTORE_foo ones called to switch back, but only if need be */
-#define STORE_NUMERIC_LOCAL_SET_STANDARD() \
- bool was_local = PL_numeric_local; \
- if (was_local) SET_NUMERIC_STANDARD();
+#define STORE_LC_NUMERIC_UNDERLYING_SET_STANDARD() \
+ bool _was_local = _NOT_IN_NUMERIC_STANDARD; \
+ if (_was_local) set_numeric_standard();
/* Doesn't change to underlying locale unless within the scope of some form of
* 'use locale'. This is the usual desired behavior. */
-#define STORE_NUMERIC_STANDARD_SET_LOCAL() \
- bool was_standard = PL_numeric_standard && IN_SOME_LOCALE_FORM; \
- if (was_standard) SET_NUMERIC_LOCAL();
+#define STORE_LC_NUMERIC_STANDARD_SET_UNDERLYING() \
+ bool _was_standard = _NOT_IN_NUMERIC_UNDERLYING \
+ && IN_LC(LC_NUMERIC); \
+ if (_was_standard) set_numeric_local();
/* Rarely, we want to change to the underlying locale even outside of 'use
* locale'. This is principally in the POSIX:: functions */
-#define STORE_NUMERIC_STANDARD_FORCE_LOCAL() \
- bool was_standard = PL_numeric_standard; \
- if (was_standard) SET_NUMERIC_LOCAL();
+#define STORE_LC_NUMERIC_FORCE_TO_UNDERLYING() \
+ if (_NOT_IN_NUMERIC_UNDERLYING) { \
+ set_numeric_local(); \
+ _restore_LC_NUMERIC_function = &Perl_set_numeric_standard; \
+ }
-#define RESTORE_NUMERIC_LOCAL() \
- if (was_local) SET_NUMERIC_LOCAL();
+/* Lock to the C locale until unlock is called */
+#define LOCK_LC_NUMERIC_STANDARD() \
+ (__ASSERT_(PL_numeric_standard) \
+ PL_numeric_standard = 2)
-#define RESTORE_NUMERIC_STANDARD() \
- if (was_standard) SET_NUMERIC_STANDARD();
+#define UNLOCK_LC_NUMERIC_STANDARD() \
+ (__ASSERT_(PL_numeric_standard == 2) \
+ PL_numeric_standard = 1)
-#define Atof my_atof
+#define RESTORE_LC_NUMERIC_UNDERLYING() \
+ if (_was_local) set_numeric_local();
+
+#define RESTORE_LC_NUMERIC_STANDARD() \
+ if (_restore_LC_NUMERIC_function) { \
+ _restore_LC_NUMERIC_function(aTHX); \
+ }
#else /* !USE_LOCALE_NUMERIC */
-#define SET_NUMERIC_STANDARD() /**/
-#define SET_NUMERIC_LOCAL() /**/
+#define SET_NUMERIC_STANDARD()
+#define SET_NUMERIC_UNDERLYING()
#define IS_NUMERIC_RADIX(a, b) (0)
-#define STORE_NUMERIC_LOCAL_SET_STANDARD() /**/
-#define STORE_NUMERIC_STANDARD_SET_LOCAL() /**/
-#define STORE_NUMERIC_STANDARD_FORCE_LOCAL()
-#define RESTORE_NUMERIC_LOCAL() /**/
-#define RESTORE_NUMERIC_STANDARD() /**/
-#define DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED
+#define STORE_LC_NUMERIC_UNDERLYING_SET_STANDARD()
+#define STORE_LC_NUMERIC_STANDARD_SET_UNDERLYING()
+#define STORE_LC_NUMERIC_FORCE_TO_UNDERLYING()
+#define RESTORE_LC_NUMERIC_UNDERLYING()
+#define RESTORE_LC_NUMERIC_STANDARD()
+#define DECLARATION_FOR_LC_NUMERIC_MANIPULATION
#define STORE_LC_NUMERIC_SET_TO_NEEDED()
-#define DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED()
#define RESTORE_LC_NUMERIC()
+#define LOCK_LC_NUMERIC_STANDARD()
+#define UNLOCK_LC_NUMERIC_STANDARD()
+
+#endif /* !USE_LOCALE_NUMERIC */
#define Atof my_atof
-#define IN_LOCALE_RUNTIME 0
-#define IN_LOCALE_COMPILETIME 0
-#endif /* !USE_LOCALE_NUMERIC */
+/* Back-compat names */
+#define DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED \
+ DECLARATION_FOR_LC_NUMERIC_MANIPULATION
+#define DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED() \
+ DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED; \
+ STORE_LC_NUMERIC_SET_TO_NEEDED();
+#define LOCK_NUMERIC_STANDARD() LOCK_LC_NUMERIC_STANDARD()
+#define RESTORE_NUMERIC_LOCAL() RESTORE_LC_NUMERIC_UNDERLYING()
+#define RESTORE_NUMERIC_STANDARD() RESTORE_LC_NUMERIC_STANDARD()
+#define SET_NUMERIC_LOCAL() SET_NUMERIC_UNDERLYING()
+#define STORE_NUMERIC_LOCAL_SET_STANDARD() \
+ STORE_LC_NUMERIC_UNDERLYING_SET_STANDARD()
+#define STORE_NUMERIC_STANDARD_SET_LOCAL() \
+ STORE_LC_NUMERIC_STANDARD_SET_UNDERLYING()
+#define STORE_NUMERIC_STANDARD_FORCE_LOCAL() \
+ STORE_LC_NUMERIC_FORCE_TO_UNDERLYING()
+#define UNLOCK_NUMERIC_STANDARD() UNLOCK_LC_NUMERIC_STANDARD()
+
+
+
+#ifdef USE_QUADMATH
+# define Perl_strtod(s, e) strtoflt128(s, e)
+#elif defined(HAS_LONG_DOUBLE) && defined(USE_LONG_DOUBLE)
+# if defined(HAS_STRTOLD)
+# define Perl_strtod(s, e) strtold(s, e)
+# elif defined(HAS_STRTOD)
+# define Perl_strtod(s, e) (NV)strtod(s, e) /* Unavoidable loss. */
+# endif
+#elif defined(HAS_STRTOD)
+# define Perl_strtod(s, e) strtod(s, e)
+#endif
#if !defined(Strtol) && defined(USE_64_BIT_INT) && defined(IV_IS_QUAD) && \
(QUADKIND == QUAD_IS_LONG_LONG || QUADKIND == QUAD_IS___INT64)
@@ -5489,24 +6158,6 @@ to do so, before returning to Perl code.
# define Atoul(s) Strtoul(s, NULL, 10)
#endif
-
-/* if these never got defined, they need defaults */
-#ifndef PERL_SET_CONTEXT
-# define PERL_SET_CONTEXT(i) PERL_SET_INTERP(i)
-#endif
-
-#ifndef PERL_GET_CONTEXT
-# define PERL_GET_CONTEXT PERL_GET_INTERP
-#endif
-
-#ifndef PERL_GET_THX
-# define PERL_GET_THX ((void*)NULL)
-#endif
-
-#ifndef PERL_SET_THX
-# define PERL_SET_THX(t) NOOP
-#endif
-
#ifndef PERL_SCRIPT_MODE
#define PERL_SCRIPT_MODE "r"
#endif
@@ -5637,8 +6288,10 @@ to do so, before returning to Perl code.
/* Clones the per-interpreter data. */
# define MY_CXT_CLONE \
my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
- Copy(PL_my_cxt_list[MY_CXT_INDEX], my_cxtp, 1, my_cxt_t);\
- PL_my_cxt_list[MY_CXT_INDEX] = my_cxtp \
+ void * old_my_cxtp = PL_my_cxt_list[MY_CXT_INDEX]; \
+ PL_my_cxt_list[MY_CXT_INDEX] = my_cxtp; \
+ Copy(old_my_cxtp, my_cxtp, 1, my_cxt_t);
+
/* This macro must be used to access members of the my_cxt_t structure.
@@ -5706,7 +6359,7 @@ int flock(int fd, int op);
#endif
#if O_TEXT != O_BINARY
- /* If you have different O_TEXT and O_BINARY and you are a CLRF shop,
+ /* If you have different O_TEXT and O_BINARY and you are a CRLF shop,
* that is, you are somehow DOSish. */
# if defined(__HAIKU__) || defined(__VOS__) || defined(__CYGWIN__)
/* Haiku has O_TEXT != O_BINARY but O_TEXT and O_BINARY have no effect;
@@ -5734,10 +6387,11 @@ int flock(int fd, int op);
int). value returned in pointed-
to UV */
#define IS_NUMBER_GREATER_THAN_UV_MAX 0x02 /* pointed to UV undefined */
-#define IS_NUMBER_NOT_INT 0x04 /* saw . or E notation */
+#define IS_NUMBER_NOT_INT 0x04 /* saw . or E notation or infnan */
#define IS_NUMBER_NEG 0x08 /* leading minus sign */
#define IS_NUMBER_INFINITY 0x10 /* this is big */
#define IS_NUMBER_NAN 0x20 /* this is not */
+#define IS_NUMBER_TRAILING 0x40 /* number has trailing trash */
#define GROK_NUMERIC_RADIX(sp, send) grok_numeric_radix(sp, send)
@@ -5747,6 +6401,9 @@ int flock(int fd, int op);
#define PERL_SCAN_SILENT_ILLDIGIT 0x04 /* grok_??? not warn about illegal digits */
#define PERL_SCAN_SILENT_NON_PORTABLE 0x08 /* grok_??? not warn about very large
numbers which are <= UV_MAX */
+#define PERL_SCAN_TRAILING 0x10 /* grok_number_flags() allow trailing
+ and set IS_NUMBER_TRAILING */
+
/* Output flags: */
#define PERL_SCAN_GREATER_THAN_UV_MAX 0x02 /* should this merge with above? */
@@ -5864,31 +6521,100 @@ extern void moncontrol(int);
* passed straight through to _escape.
*/
-#define PERL_PV_ESCAPE_QUOTE 0x0001
+#define PERL_PV_ESCAPE_QUOTE 0x000001
#define PERL_PV_PRETTY_QUOTE PERL_PV_ESCAPE_QUOTE
-#define PERL_PV_PRETTY_ELLIPSES 0x0002
-#define PERL_PV_PRETTY_LTGT 0x0004
+#define PERL_PV_PRETTY_ELLIPSES 0x000002
+#define PERL_PV_PRETTY_LTGT 0x000004
+#define PERL_PV_PRETTY_EXACTSIZE 0x000008
-#define PERL_PV_ESCAPE_FIRSTCHAR 0x0008
+#define PERL_PV_ESCAPE_UNI 0x000100
+#define PERL_PV_ESCAPE_UNI_DETECT 0x000200
+#define PERL_PV_ESCAPE_NONASCII 0x000400
+#define PERL_PV_ESCAPE_FIRSTCHAR 0x000800
-#define PERL_PV_ESCAPE_UNI 0x0100
-#define PERL_PV_ESCAPE_UNI_DETECT 0x0200
-#define PERL_PV_ESCAPE_NONASCII 0x0400
+#define PERL_PV_ESCAPE_ALL 0x001000
+#define PERL_PV_ESCAPE_NOBACKSLASH 0x002000
+#define PERL_PV_ESCAPE_NOCLEAR 0x004000
+#define PERL_PV_PRETTY_NOCLEAR PERL_PV_ESCAPE_NOCLEAR
+#define PERL_PV_ESCAPE_RE 0x008000
-#define PERL_PV_ESCAPE_ALL 0x1000
-#define PERL_PV_ESCAPE_NOBACKSLASH 0x2000
-#define PERL_PV_ESCAPE_NOCLEAR 0x4000
-#define PERL_PV_ESCAPE_RE 0x8000
+#define PERL_PV_ESCAPE_DWIM 0x010000
-#define PERL_PV_ESCAPE_DWIM 0x10000
-
-#define PERL_PV_PRETTY_NOCLEAR PERL_PV_ESCAPE_NOCLEAR
/* used by pv_display in dump.c*/
#define PERL_PV_PRETTY_DUMP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_QUOTE
#define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE|PERL_PV_ESCAPE_NONASCII
+#if DOUBLEKIND == DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN || \
+ DOUBLEKIND == DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN || \
+ DOUBLEKIND == DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+# define DOUBLE_LITTLE_ENDIAN
+#endif
+
+#if DOUBLEKIND == DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN || \
+ DOUBLEKIND == DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN || \
+ DOUBLEKIND == DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+# define DOUBLE_BIG_ENDIAN
+#endif
+
+#if DOUBLEKIND == DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE || \
+ DOUBLEKIND == DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+# define DOUBLE_MIX_ENDIAN
+#endif
+
+/* All the basic IEEE formats have the implicit bit,
+ * except for the 80-bit extended formats, which will undef this. */
+#define NV_IMPLICIT_BIT
+
+#ifdef LONG_DOUBLEKIND
+
+# if LONG_DOUBLEKIND == LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN || \
+ LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN || \
+ LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN
+# define LONGDOUBLE_LITTLE_ENDIAN
+# endif
+
+# if LONG_DOUBLEKIND == LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN || \
+ LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN || \
+ LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN
+# define LONGDOUBLE_BIG_ENDIAN
+# endif
+
+# if LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN || \
+ LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN
+# define LONGDOUBLE_X86_80_BIT
+# ifdef USE_LONG_DOUBLE
+# undef NV_IMPLICIT_BIT
+# endif
+# endif
+
+# if LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN || \
+ LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN
+# define LONGDOUBLE_DOUBLEDOUBLE
+# endif
+
+#endif /* LONG_DOUBLEKIND */
+
+#if NVSIZE == DOUBLESIZE
+# ifdef DOUBLE_LITTLE_ENDIAN
+# define NV_LITTLE_ENDIAN
+# endif
+# ifdef DOUBLE_BIG_ENDIAN
+# define NV_BIG_ENDIAN
+# endif
+# ifdef DOUBLE_MIX_ENDIAN
+# define NV_MIX_ENDIAN
+# endif
+#elif NVSIZE == LONG_DOUBLESIZE
+# ifdef LONGDOUBLE_LITTLE_ENDIAN
+# define NV_LITTLE_ENDIAN
+# endif
+# ifdef LONGDOUBLE_BIG_ENDIAN
+# define NV_BIG_ENDIAN
+# endif
+#endif
+
/*
(KEEP THIS LAST IN perl.h!)
@@ -5942,11 +6668,5 @@ extern void moncontrol(int);
#endif /* Include guard */
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/perlhost.h b/Master/tlpkg/tlperl/lib/CORE/perlhost.h
index 265328b69b7..b1c6c805e50 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perlhost.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perlhost.h
@@ -1759,8 +1759,10 @@ restart:
SvREFCNT_dec(PL_curstash);
PL_curstash = (HV *)SvREFCNT_inc(PL_defstash);
}
- if (PL_endav && !PL_minus_c)
+ if (PL_endav && !PL_minus_c) {
+ PERL_SET_PHASE(PERL_PHASE_END);
call_list(oldscope, PL_endav);
+ }
status = STATUS_EXIT;
break;
case 3:
diff --git a/Master/tlpkg/tlperl/lib/CORE/perlio.h b/Master/tlpkg/tlperl/lib/CORE/perlio.h
index 777c886f3f3..55e0ce330b5 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perlio.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perlio.h
@@ -14,7 +14,7 @@
Interface for perl to IO functions.
There is a hierarchy of Configure determined #define controls:
USE_STDIO - forces PerlIO_xxx() to be #define-d onto stdio functions.
- This is used for x2p subdirectory and for conservative
+ This is used for conservative
builds - "just like perl5.00X used to be".
This dominates over the others.
@@ -86,10 +86,8 @@ typedef PerlIOl *PerlIO;
#define PerlIO PerlIO
#define PERLIO_LAYERS 1
-/* Making the big PerlIO_funcs vtables const is good (enables placing
- * them in the const section which is good for speed, security, and
- * embeddability) but this cannot be done by default because of
- * backward compatibility. */
+/* PERLIO_FUNCS_CONST is now on by default for efficiency, PERLIO_FUNCS_CONST
+ can be removed 1 day once stable & then PerlIO vtables are permanently RO */
#ifdef PERLIO_FUNCS_CONST
#define PERLIO_FUNCS_DECL(funcs) const PerlIO_funcs funcs
#define PERLIO_FUNCS_CAST(funcs) (PerlIO_funcs*)(funcs)
@@ -369,11 +367,5 @@ END_EXTERN_C
#endif /* _PERLIO_H */
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/perliol.h b/Master/tlpkg/tlperl/lib/CORE/perliol.h
index 236932616df..b8c0eae6d6d 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perliol.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perliol.h
@@ -67,6 +67,14 @@ struct _PerlIO {
PerlIOl *next; /* Lower layer */
PerlIO_funcs *tab; /* Functions for this layer */
U32 flags; /* Various flags for state */
+ int err; /* Saved errno value */
+#ifdef VMS
+ unsigned os_err; /* Saved vaxc$errno value */
+#elif defined (OS2)
+ unsigned long os_err;
+#elif defined (WIN32)
+ DWORD os_err; /* Saved GetLastError() value */
+#endif
PerlIOl *head; /* our ultimate parent pointer */
};
@@ -281,11 +289,5 @@ PERL_EXPORT_C IV PerlIOUtf8_pushed(pTHX_ PerlIO *f, const char *mode, SV
#endif /* _PERLIOL_H */
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/perlsdio.h b/Master/tlpkg/tlperl/lib/CORE/perlsdio.h
index 29e817617af..cb255775790 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perlsdio.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perlsdio.h
@@ -36,45 +36,30 @@
#define PerlIO_close(f) PerlSIO_fclose(f)
#define PerlIO_puts(f,s) PerlSIO_fputs(s,f)
#define PerlIO_putc(f,c) PerlSIO_fputc(c,f)
-#if defined(VMS)
-# if defined(__DECC)
+#if defined(__VMS)
/* Unusual definition of ungetc() here to accommodate fast_sv_gets()'
* belief that it can mix getc/ungetc with reads from stdio buffer */
+START_EXTERN_C
int decc$ungetc(int __c, FILE *__stream);
+END_EXTERN_C
# define PerlIO_ungetc(f,c) ((c) == EOF ? EOF : \
((*(f) && !((*(f))->_flag & _IONBF) && \
((*(f))->_ptr > (*(f))->_base)) ? \
((*(f))->_cnt++, *(--(*(f))->_ptr) = (c)) : decc$ungetc(c,f)))
-# else
-# define PerlIO_ungetc(f,c) ungetc(c,f)
-# endif
- /* Work around bug in DECCRTL/AXP (DECC v5.x) and some versions of old
- * VAXCRTL which causes read from a pipe after EOF has been returned
- * once to hang.
- */
-# define PerlIO_getc(f) \
- (feof(f) ? EOF : getc(f))
-# define PerlIO_read(f,buf,count) \
- (feof(f) ? 0 : (SSize_t)fread(buf,1,count,f))
-# define PerlIO_tell(f) ftell(f)
#else
-# define PerlIO_getc(f) PerlSIO_fgetc(f)
-# define PerlIO_ungetc(f,c) PerlSIO_ungetc(c,f)
-# define PerlIO_read(f,buf,count) (SSize_t)PerlSIO_fread(buf,1,count,f)
-# define PerlIO_tell(f) PerlSIO_ftell(f)
+# define PerlIO_ungetc(f,c) ungetc(c,f)
#endif
+#define PerlIO_getc(f) PerlSIO_fgetc(f)
+#define PerlIO_ungetc(f,c) PerlSIO_ungetc(c,f)
+#define PerlIO_read(f,buf,count) (SSize_t)PerlSIO_fread(buf,1,count,f)
+#define PerlIO_tell(f) PerlSIO_ftell(f)
#define PerlIO_eof(f) PerlSIO_feof(f)
#define PerlIO_getname(f,b) fgetname(f,b)
#define PerlIO_error(f) PerlSIO_ferror(f)
#define PerlIO_fileno(f) PerlSIO_fileno(f)
#define PerlIO_clearerr(f) PerlSIO_clearerr(f)
#define PerlIO_flush(f) PerlSIO_fflush(f)
-#if defined(VMS) && !defined(__DECC)
-/* Old VAXC RTL doesn't reset EOF on seek; Perl folk seem to expect this */
-#define PerlIO_seek(f,o,w) (((f) && (*f) && ((*f)->_flag &= ~_IOEOF)),fseek(f,o,w))
-#else
-# define PerlIO_seek(f,o,w) PerlSIO_fseek(f,o,w)
-#endif
+#define PerlIO_seek(f,o,w) PerlSIO_fseek(f,o,w)
#define PerlIO_rewind(f) PerlSIO_rewind(f)
#define PerlIO_tmpfile() PerlSIO_tmpfile()
@@ -154,11 +139,5 @@
#endif /* PERLIO_IS_STDIO */
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/perly.h b/Master/tlpkg/tlperl/lib/CORE/perly.h
index e6426df92ad..db139d85f32 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perly.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perly.h
@@ -5,24 +5,27 @@
*/
#ifdef PERL_CORE
-/* A Bison parser, made by GNU Bison 2.5. */
+/* A Bison parser, made by GNU Bison 2.3. */
-/* Bison interface for Yacc-like parsers in C
-
- Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
+/* Skeleton interface for Bison's Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -33,11 +36,10 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
-
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
@@ -123,11 +125,9 @@
POSTINC = 334,
PREDEC = 335,
PREINC = 336,
- ARROW = 337,
- PEG = 338
+ ARROW = 337
};
#endif
-
/* Tokens. */
#define GRAMPROG 258
#define GRAMEXPR 259
@@ -209,7 +209,7 @@
#define PREDEC 335
#define PREINC 336
#define ARROW 337
-#define PEG 338
+
@@ -239,39 +239,23 @@ S_is_opval_token(int type) {
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
-
-/* Line 2068 of yacc.c */
-
I32 ival; /* __DEFAULT__ (marker for regen_perly.pl;
must always be 1st union member) */
char *pval;
OP *opval;
GV *gvval;
-#ifdef PERL_IN_MADLY_C
- TOKEN* p_tkval;
- TOKEN* i_tkval;
-#else
- char *p_tkval;
- I32 i_tkval;
-#endif
-#ifdef PERL_MAD
- TOKEN* tkval;
-#endif
-
-
-
-/* Line 2068 of yacc.c */
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
+}
+/* Line 1529 of yacc.c. */
+ YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
#endif
-
/* Generated from:
- * bb8245a1a537b2afb2445b3973f63b210f9ec346a1955071aef7d05ba97196ae perly.y
- * 5c9d2a0262457fe9b70073fc8ad6c188f812f38ad57712b7e2f53daa01b297cc regen_perly.pl
+ * e2ef3626c25dd92c66987e4c2f707e7f194c2bd5df74da27c51df206d9809412 perly.y
+ * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl
* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/pp.h b/Master/tlpkg/tlperl/lib/CORE/pp.h
index 97738c2d8d4..828b7a2820f 100644
--- a/Master/tlpkg/tlperl/lib/CORE/pp.h
+++ b/Master/tlpkg/tlperl/lib/CORE/pp.h
@@ -57,9 +57,10 @@ Refetch the stack pointer. Used after a callback. See L<perlcall>.
#define PUSHMARK(p) \
STMT_START { \
- if (UNLIKELY(++PL_markstack_ptr == PL_markstack_max)) \
- markstack_grow(); \
- *PL_markstack_ptr = (I32)((p) - PL_stack_base);\
+ I32 * mark_stack_entry; \
+ if (UNLIKELY((mark_stack_entry = ++PL_markstack_ptr) == PL_markstack_max)) \
+ mark_stack_entry = markstack_grow(); \
+ *mark_stack_entry = (I32)((p) - PL_stack_base); \
} STMT_END
#define TOPMARK (*PL_markstack_ptr)
@@ -271,23 +272,31 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
*/
#ifdef STRESS_REALLOC
-# define EXTEND(p,n) (void)(sp = stack_grow(sp,p, (SSize_t)(n)))
+# define EXTEND(p,n) STMT_START { \
+ sp = stack_grow(sp,p,(SSize_t) (n)); \
+ PERL_UNUSED_VAR(sp); \
+ } STMT_END
/* Same thing, but update mark register too. */
-# define MEXTEND(p,n) STMT_START { \
- const int markoff = mark - PL_stack_base; \
- sp = stack_grow(sp,p,(SSize_t) (n)); \
- mark = PL_stack_base + markoff; \
- } STMT_END
+# define MEXTEND(p,n) STMT_START { \
+ const SSize_t markoff = mark - PL_stack_base; \
+ sp = stack_grow(sp,p,(SSize_t) (n)); \
+ mark = PL_stack_base + markoff; \
+ PERL_UNUSED_VAR(sp); \
+ } STMT_END
#else
-# define EXTEND(p,n) (void)(UNLIKELY(PL_stack_max - p < (SSize_t)(n)) && \
- (sp = stack_grow(sp,p, (SSize_t) (n))))
-
+# define EXTEND(p,n) STMT_START { \
+ if (UNLIKELY(PL_stack_max - p < (SSize_t)(n))) { \
+ sp = stack_grow(sp,p,(SSize_t) (n)); \
+ PERL_UNUSED_VAR(sp); \
+ } } STMT_END
/* Same thing, but update mark register too. */
-# define MEXTEND(p,n) STMT_START {if (UNLIKELY(PL_stack_max - p < (int)(n))) {\
- const int markoff = mark - PL_stack_base; \
- sp = stack_grow(sp,p,(SSize_t) (n)); \
- mark = PL_stack_base + markoff; \
- } } STMT_END
+# define MEXTEND(p,n) STMT_START { \
+ if (UNLIKELY(PL_stack_max - p < (SSize_t)(n))) { \
+ const SSize_t markoff = mark - PL_stack_base; \
+ sp = stack_grow(sp,p,(SSize_t) (n)); \
+ mark = PL_stack_base + markoff; \
+ PERL_UNUSED_VAR(sp); \
+ } } STMT_END
#endif
#define PUSHs(s) (*++sp = (s))
@@ -297,7 +306,7 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
#define PUSHi(i) STMT_START { sv_setiv(TARG, (IV)(i)); PUSHTARG; } STMT_END
#define PUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG; } STMT_END
-#define XPUSHs(s) (EXTEND(sp,1), *++sp = (s))
+#define XPUSHs(s) STMT_START { EXTEND(sp,1); *++sp = (s); } STMT_END
#define XPUSHTARG STMT_START { SvSETMAGIC(TARG); XPUSHs(TARG); } STMT_END
#define XPUSHp(p,l) STMT_START { sv_setpvn(TARG, (p), (l)); XPUSHTARG; } STMT_END
#define XPUSHn(n) STMT_START { sv_setnv(TARG, (NV)(n)); XPUSHTARG; } STMT_END
@@ -367,11 +376,11 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
#define RETSETYES RETURNX(SETs(&PL_sv_yes))
#define RETSETNO RETURNX(SETs(&PL_sv_no))
#define RETSETUNDEF RETURNX(SETs(&PL_sv_undef))
+#define RETSETTARG STMT_START { SETTARG; RETURN; } STMT_END
#define ARGTARG PL_op->op_targ
- /* See OPpTARGET_MY: */
-#define MAXARG (PL_op->op_private & 15)
+#define MAXARG (PL_op->op_private & OPpARG4_MASK)
#define SWITCHSTACK(f,t) \
STMT_START { \
@@ -383,9 +392,10 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
} STMT_END
#define EXTEND_MORTAL(n) \
- STMT_START { \
- if (UNLIKELY(PL_tmps_ix + (n) >= PL_tmps_max)) \
- tmps_grow(n); \
+ STMT_START { \
+ SSize_t eMiX = PL_tmps_ix + (n); \
+ if (UNLIKELY(eMiX >= PL_tmps_max)) \
+ (void)Perl_tmps_grow_p(aTHX_ eMiX); \
} STMT_END
#define AMGf_noright 1
@@ -395,6 +405,7 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
#define AMGf_numeric 0x10 /* for Perl_try_amagic_bin */
#define AMGf_set 0x20 /* for Perl_try_amagic_bin */
#define AMGf_want_list 0x40
+#define AMGf_numarg 0x80
/* do SvGETMAGIC on the stack args before checking for overload */
@@ -429,7 +440,7 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
{ \
SPAGAIN; \
if (gimme == G_VOID) { \
- (void)POPs; /* XXX ??? */ \
+ NOOP; \
} \
else if (gimme == G_ARRAY) { \
SSize_t i; \
@@ -471,15 +482,6 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
#define opASSIGN (PL_op->op_flags & OPf_STACKED)
-#define SETsv(sv) STMT_START { \
- if (opASSIGN || (SvFLAGS(TARG) & SVs_PADMY)) \
- { sv_setsv(TARG, (sv)); SETTARG; } \
- else SETs(sv); } STMT_END
-
-#define SETsvUN(sv) STMT_START { \
- if (SvFLAGS(TARG) & SVs_PADMY) \
- { sv_setsv(TARG, (sv)); SETTARG; } \
- else SETs(sv); } STMT_END
/*
=for apidoc mU||LVRET
@@ -526,11 +528,5 @@ True if this op will be the return value of an lvalue subroutine
#endif
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/pp_proto.h b/Master/tlpkg/tlperl/lib/CORE/pp_proto.h
index 73ff532b5c8..7f9d1223334 100644
--- a/Master/tlpkg/tlperl/lib/CORE/pp_proto.h
+++ b/Master/tlpkg/tlperl/lib/CORE/pp_proto.h
@@ -16,6 +16,7 @@ PERL_CALLCONV OP *Perl_pp_akeys(pTHX);
PERL_CALLCONV OP *Perl_pp_alarm(pTHX);
PERL_CALLCONV OP *Perl_pp_and(pTHX);
PERL_CALLCONV OP *Perl_pp_anoncode(pTHX);
+PERL_CALLCONV OP *Perl_pp_anonconst(pTHX);
PERL_CALLCONV OP *Perl_pp_anonhash(pTHX);
PERL_CALLCONV OP *Perl_pp_anonlist(pTHX);
PERL_CALLCONV OP *Perl_pp_aslice(pTHX);
@@ -145,14 +146,24 @@ PERL_CALLCONV OP *Perl_pp_listen(pTHX);
PERL_CALLCONV OP *Perl_pp_lock(pTHX);
PERL_CALLCONV OP *Perl_pp_lslice(pTHX);
PERL_CALLCONV OP *Perl_pp_lt(pTHX);
+PERL_CALLCONV OP *Perl_pp_lvavref(pTHX);
+PERL_CALLCONV OP *Perl_pp_lvref(pTHX);
+PERL_CALLCONV OP *Perl_pp_lvrefslice(pTHX);
PERL_CALLCONV OP *Perl_pp_mapwhile(pTHX);
PERL_CALLCONV OP *Perl_pp_match(pTHX);
PERL_CALLCONV OP *Perl_pp_method(pTHX);
PERL_CALLCONV OP *Perl_pp_method_named(pTHX);
+PERL_CALLCONV OP *Perl_pp_method_redir(pTHX);
+PERL_CALLCONV OP *Perl_pp_method_redir_super(pTHX);
+PERL_CALLCONV OP *Perl_pp_method_super(pTHX);
PERL_CALLCONV OP *Perl_pp_mkdir(pTHX);
PERL_CALLCONV OP *Perl_pp_modulo(pTHX);
+PERL_CALLCONV OP *Perl_pp_multideref(pTHX);
PERL_CALLCONV OP *Perl_pp_multiply(pTHX);
+PERL_CALLCONV OP *Perl_pp_nbit_and(pTHX);
+PERL_CALLCONV OP *Perl_pp_nbit_or(pTHX);
PERL_CALLCONV OP *Perl_pp_ncmp(pTHX);
+PERL_CALLCONV OP *Perl_pp_ncomplement(pTHX);
PERL_CALLCONV OP *Perl_pp_ne(pTHX);
PERL_CALLCONV OP *Perl_pp_negate(pTHX);
PERL_CALLCONV OP *Perl_pp_next(pTHX);
@@ -192,6 +203,7 @@ PERL_CALLCONV OP *Perl_pp_readline(pTHX);
PERL_CALLCONV OP *Perl_pp_readlink(pTHX);
PERL_CALLCONV OP *Perl_pp_redo(pTHX);
PERL_CALLCONV OP *Perl_pp_ref(pTHX);
+PERL_CALLCONV OP *Perl_pp_refassign(pTHX);
PERL_CALLCONV OP *Perl_pp_refgen(pTHX);
PERL_CALLCONV OP *Perl_pp_regcomp(pTHX);
PERL_CALLCONV OP *Perl_pp_regcreset(pTHX);
@@ -211,8 +223,11 @@ PERL_CALLCONV OP *Perl_pp_rv2cv(pTHX);
PERL_CALLCONV OP *Perl_pp_rv2gv(pTHX);
PERL_CALLCONV OP *Perl_pp_rv2sv(pTHX);
PERL_CALLCONV OP *Perl_pp_sassign(pTHX);
+PERL_CALLCONV OP *Perl_pp_sbit_and(pTHX);
+PERL_CALLCONV OP *Perl_pp_sbit_or(pTHX);
PERL_CALLCONV OP *Perl_pp_schop(pTHX);
PERL_CALLCONV OP *Perl_pp_scmp(pTHX);
+PERL_CALLCONV OP *Perl_pp_scomplement(pTHX);
PERL_CALLCONV OP *Perl_pp_seekdir(pTHX);
PERL_CALLCONV OP *Perl_pp_select(pTHX);
PERL_CALLCONV OP *Perl_pp_semctl(pTHX);
diff --git a/Master/tlpkg/tlperl/lib/CORE/proto.h b/Master/tlpkg/tlperl/lib/CORE/proto.h
index 6532ba8afa2..0a3375884a7 100644
--- a/Master/tlpkg/tlperl/lib/CORE/proto.h
+++ b/Master/tlpkg/tlperl/lib/CORE/proto.h
@@ -42,6 +42,10 @@ PERL_CALLCONV void Perl_Slab_Free(pTHX_ void *op)
#define PERL_ARGS_ASSERT_SLAB_FREE \
assert(op)
+PERL_CALLCONV SV* Perl__get_encoding(pTHX)
+ __attribute__pure__;
+
+PERL_CALLCONV bool Perl__is_in_locale_category(pTHX_ const bool compiling, const int category);
PERL_CALLCONV bool Perl__is_uni_FOO(pTHX_ const U8 classnum, const UV c)
__attribute__warn_unused_result__;
@@ -57,6 +61,25 @@ PERL_CALLCONV bool Perl__is_utf8_FOO(pTHX_ const U8 classnum, const U8 *p)
#define PERL_ARGS_ASSERT__IS_UTF8_FOO \
assert(p)
+PERL_STATIC_INLINE STRLEN S__is_utf8_char_slow(const U8 *s, const U8 *e)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT__IS_UTF8_CHAR_SLOW \
+ assert(s); assert(e)
+
+PERL_CALLCONV bool Perl__is_utf8_idcont(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__IS_UTF8_IDCONT \
+ assert(p)
+
+PERL_CALLCONV bool Perl__is_utf8_idstart(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__IS_UTF8_IDSTART \
+ assert(p)
+
PERL_CALLCONV bool Perl__is_utf8_mark(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
@@ -75,6 +98,18 @@ PERL_CALLCONV bool Perl__is_utf8_perl_idstart(pTHX_ const U8 *p)
#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART \
assert(p)
+PERL_CALLCONV bool Perl__is_utf8_xidcont(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__IS_UTF8_XIDCONT \
+ assert(p)
+
+PERL_CALLCONV bool Perl__is_utf8_xidstart(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__IS_UTF8_XIDSTART \
+ assert(p)
+
PERL_CALLCONV UV Perl__to_uni_fold_flags(pTHX_ UV c, U8 *p, STRLEN *lenp, U8 flags)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
@@ -105,6 +140,7 @@ PERL_CALLCONV UV Perl__to_utf8_upper_flags(pTHX_ const U8 *p, U8* ustrp, STRLEN
#define PERL_ARGS_ASSERT__TO_UTF8_UPPER_FLAGS \
assert(p); assert(ustrp)
+PERL_CALLCONV void Perl__warn_problematic_locale(void);
PERL_CALLCONV PADOFFSET Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_ALLOCMY \
@@ -342,16 +378,16 @@ PERL_CALLCONV bool Perl_cando(pTHX_ Mode_t mode, bool effective, const Stat_t* s
#define PERL_ARGS_ASSERT_CANDO \
assert(statbufp)
-PERL_CALLCONV I32 Perl_cast_i32(pTHX_ NV f)
+PERL_CALLCONV I32 Perl_cast_i32(NV f)
__attribute__warn_unused_result__;
-PERL_CALLCONV IV Perl_cast_iv(pTHX_ NV f)
+PERL_CALLCONV IV Perl_cast_iv(NV f)
__attribute__warn_unused_result__;
-PERL_CALLCONV U32 Perl_cast_ulong(pTHX_ NV f)
+PERL_CALLCONV U32 Perl_cast_ulong(NV f)
__attribute__warn_unused_result__;
-PERL_CALLCONV UV Perl_cast_uv(pTHX_ NV f)
+PERL_CALLCONV UV Perl_cast_uv(NV f)
__attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_check_utf8_print(pTHX_ const U8 *s, const STRLEN len)
@@ -535,12 +571,24 @@ PERL_CALLCONV OP * Perl_ck_open(pTHX_ OP *o)
#define PERL_ARGS_ASSERT_CK_OPEN \
assert(o)
+PERL_CALLCONV OP * Perl_ck_prototype(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_PROTOTYPE \
+ assert(o)
+
PERL_CALLCONV OP * Perl_ck_readline(pTHX_ OP *o)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_CK_READLINE \
assert(o)
+PERL_CALLCONV OP * Perl_ck_refassign(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_REFASSIGN \
+ assert(o)
+
PERL_CALLCONV OP * Perl_ck_repeat(pTHX_ OP *o)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
@@ -613,6 +661,12 @@ PERL_CALLCONV OP * Perl_ck_split(pTHX_ OP *o)
#define PERL_ARGS_ASSERT_CK_SPLIT \
assert(o)
+PERL_CALLCONV OP * Perl_ck_stringify(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_STRINGIFY \
+ assert(o)
+
PERL_CALLCONV OP * Perl_ck_subr(pTHX_ OP *o)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
@@ -662,9 +716,6 @@ PERL_CALLCONV const COP* Perl_closest_cop(pTHX_ const COP *cop, const OP *o, con
#define PERL_ARGS_ASSERT_CLOSEST_COP \
assert(cop)
-PERL_CALLCONV OP* Perl_convert(pTHX_ I32 optype, I32 flags, OP* o)
- __attribute__warn_unused_result__;
-
PERL_CALLCONV const char * Perl_cop_fetch_label(pTHX_ COP *const cop, STRLEN *len, U32 *flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_COP_FETCH_LABEL \
@@ -761,17 +812,13 @@ PERL_CALLCONV CV* Perl_cv_clone_into(pTHX_ CV* proto, CV *target)
#define PERL_ARGS_ASSERT_CV_CLONE_INTO \
assert(proto); assert(target)
-PERL_CALLCONV SV* Perl_cv_const_sv(pTHX_ const CV *const cv)
+PERL_CALLCONV SV* Perl_cv_const_sv(const CV *const cv)
__attribute__warn_unused_result__;
-PERL_CALLCONV SV* Perl_cv_const_sv_or_av(pTHX_ const CV *const cv)
+PERL_CALLCONV SV* Perl_cv_const_sv_or_av(const CV *const cv)
__attribute__warn_unused_result__;
-PERL_CALLCONV void Perl_cv_forget_slab(pTHX_ CV *cv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CV_FORGET_SLAB \
- assert(cv)
-
+PERL_CALLCONV void Perl_cv_forget_slab(pTHX_ CV *cv);
PERL_CALLCONV void Perl_cv_get_call_checker(pTHX_ CV *cv, Perl_call_checker *ckfun_p, SV **ckobj_p)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -779,6 +826,11 @@ PERL_CALLCONV void Perl_cv_get_call_checker(pTHX_ CV *cv, Perl_call_checker *ckf
#define PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER \
assert(cv); assert(ckfun_p); assert(ckobj_p)
+PERL_CALLCONV SV * Perl_cv_name(pTHX_ CV *cv, SV *sv, U32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CV_NAME \
+ assert(cv)
+
PERL_CALLCONV void Perl_cv_set_call_checker(pTHX_ CV *cv, Perl_call_checker ckfun, SV *ckobj)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -786,11 +838,28 @@ PERL_CALLCONV void Perl_cv_set_call_checker(pTHX_ CV *cv, Perl_call_checker ckfu
#define PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER \
assert(cv); assert(ckfun); assert(ckobj)
+PERL_CALLCONV void Perl_cv_set_call_checker_flags(pTHX_ CV *cv, Perl_call_checker ckfun, SV *ckobj, U32 flags)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER_FLAGS \
+ assert(cv); assert(ckfun); assert(ckobj)
+
PERL_CALLCONV void Perl_cv_undef(pTHX_ CV* cv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_CV_UNDEF \
assert(cv)
+PERL_CALLCONV void Perl_cv_undef_flags(pTHX_ CV* cv, U32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CV_UNDEF_FLAGS \
+ assert(cv)
+
+PERL_CALLCONV GV * Perl_cvgv_from_hek(pTHX_ CV* cv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CVGV_FROM_HEK \
+ assert(cv)
+
PERL_CALLCONV void Perl_cvgv_set(pTHX_ CV* cv, GV* gv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_CVGV_SET \
@@ -841,10 +910,12 @@ PERL_CALLCONV char* Perl_delimcpy(char* to, const char* toend, const char* from,
assert(to); assert(toend); assert(from); assert(fromend); assert(retlen)
PERL_CALLCONV void Perl_despatch_signals(pTHX);
-PERL_CALLCONV OP* Perl_die(pTHX_ const char* pat, ...)
+PERL_CALLCONV_NO_RET OP* Perl_die(pTHX_ const char* pat, ...)
+ __attribute__noreturn__
__attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
-PERL_CALLCONV OP* Perl_die_sv(pTHX_ SV *baseex)
+PERL_CALLCONV_NO_RET OP* Perl_die_sv(pTHX_ SV *baseex)
+ __attribute__noreturn__
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_DIE_SV \
assert(baseex)
@@ -911,10 +982,9 @@ PERL_CALLCONV void Perl_do_join(pTHX_ SV *sv, SV *delim, SV **mark, SV **sp)
assert(sv); assert(delim); assert(mark); assert(sp)
PERL_CALLCONV void Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, const MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
+ __attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_DO_MAGIC_DUMP \
- assert(file); assert(mg)
+ assert(file)
PERL_CALLCONV I32 Perl_do_ncmp(pTHX_ SV *const left, SV *const right)
__attribute__warn_unused_result__
@@ -1265,6 +1335,12 @@ PERL_CALLCONV int Perl_getcwd_sv(pTHX_ SV* sv)
PERL_CALLCONV void Perl_gp_free(pTHX_ GV* gv);
PERL_CALLCONV GP* Perl_gp_ref(pTHX_ GP* gp);
+PERL_CALLCONV bool Perl_grok_atoUV(const char* pv, UV* valptr, const char** endptr)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_GROK_ATOUV \
+ assert(pv); assert(valptr)
+
PERL_CALLCONV UV Perl_grok_bin(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -1279,11 +1355,22 @@ PERL_CALLCONV UV Perl_grok_hex(pTHX_ const char* start, STRLEN* len_p, I32* flag
#define PERL_ARGS_ASSERT_GROK_HEX \
assert(start); assert(len_p); assert(flags)
+PERL_CALLCONV int Perl_grok_infnan(pTHX_ const char** sp, const char *send)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_GROK_INFNAN \
+ assert(sp); assert(send)
+
PERL_CALLCONV int Perl_grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_GROK_NUMBER \
assert(pv)
+PERL_CALLCONV int Perl_grok_number_flags(pTHX_ const char *pv, STRLEN len, UV *valuep, U32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GROK_NUMBER_FLAGS \
+ assert(pv)
+
PERL_CALLCONV bool Perl_grok_numeric_radix(pTHX_ const char **sp, const char *send)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
@@ -1335,11 +1422,7 @@ PERL_CALLCONV SV* Perl_gv_const_sv(pTHX_ GV* gv)
#define PERL_ARGS_ASSERT_GV_CONST_SV \
assert(gv)
-PERL_CALLCONV void Perl_gv_dump(pTHX_ GV* gv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GV_DUMP \
- assert(gv)
-
+PERL_CALLCONV void Perl_gv_dump(pTHX_ GV* gv);
PERL_CALLCONV void Perl_gv_efullname(pTHX_ SV* sv, const GV* gv)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -1503,6 +1586,12 @@ PERL_CALLCONV GV * Perl_gv_override(pTHX_ const char * const name, const STRLEN
#define PERL_ARGS_ASSERT_GV_OVERRIDE \
assert(name)
+PERL_CALLCONV void Perl_gv_setref(pTHX_ SV *const dstr, SV *const sstr)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_GV_SETREF \
+ assert(dstr); assert(sstr)
+
PERL_CALLCONV HV* Perl_gv_stashpv(pTHX_ const char* name, I32 flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_GV_STASHPV \
@@ -1757,12 +1846,12 @@ PERL_CALLCONV U32 Perl_intro_my(pTHX);
PERL_CALLCONV OP* Perl_invert(pTHX_ OP* cmd)
__attribute__warn_unused_result__;
-PERL_CALLCONV bool Perl_io_close(pTHX_ IO* io, bool not_implicit)
+PERL_CALLCONV bool Perl_io_close(pTHX_ IO* io, GV *gv, bool not_implicit, bool warn_on_fail)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_IO_CLOSE \
assert(io)
-PERL_STATIC_INLINE bool S_isALNUM_lazy(pTHX_ const char* p)
+PERL_CALLCONV bool Perl_isALNUM_lazy(pTHX_ const char* p)
__attribute__deprecated__
__attribute__warn_unused_result__
__attribute__pure__
@@ -1770,7 +1859,7 @@ PERL_STATIC_INLINE bool S_isALNUM_lazy(pTHX_ const char* p)
#define PERL_ARGS_ASSERT_ISALNUM_LAZY \
assert(p)
-PERL_STATIC_INLINE bool S_isIDFIRST_lazy(pTHX_ const char* p)
+PERL_CALLCONV bool Perl_isIDFIRST_lazy(pTHX_ const char* p)
__attribute__deprecated__
__attribute__warn_unused_result__
__attribute__pure__
@@ -1778,9 +1867,14 @@ PERL_STATIC_INLINE bool S_isIDFIRST_lazy(pTHX_ const char* p)
#define PERL_ARGS_ASSERT_ISIDFIRST_LAZY \
assert(p)
-PERL_CALLCONV bool Perl_is_ascii_string(const U8 *s, STRLEN len)
+/* PERL_CALLCONV bool Perl_is_ascii_string(pTHX_ const U8 *s, STRLEN len)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1); */
+
+PERL_CALLCONV bool Perl_is_invariant_string(const U8 *s, STRLEN len)
+ __attribute__warn_unused_result__
__attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_IS_ASCII_STRING \
+#define PERL_ARGS_ASSERT_IS_INVARIANT_STRING \
assert(s)
PERL_CALLCONV I32 Perl_is_lvalue_sub(pTHX)
@@ -1985,9 +2079,9 @@ PERL_CALLCONV STRLEN Perl_is_utf8_char(const U8 *s)
#define PERL_ARGS_ASSERT_IS_UTF8_CHAR \
assert(s)
-PERL_CALLCONV STRLEN Perl_is_utf8_char_buf(const U8 *buf, const U8 *buf_end)
+/* PERL_CALLCONV STRLEN Perl_is_utf8_char_buf(const U8 *buf, const U8 *buf_end)
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2); */
#define PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF \
assert(buf); assert(buf_end)
@@ -2125,6 +2219,12 @@ PERL_CALLCONV bool Perl_is_utf8_xidfirst(pTHX_ const U8 *p)
#define PERL_ARGS_ASSERT_IS_UTF8_XIDFIRST \
assert(p)
+PERL_CALLCONV bool Perl_isinfnan(NV nv);
+PERL_CALLCONV bool Perl_isinfnansv(pTHX_ SV *sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_ISINFNANSV \
+ assert(sv)
+
PERL_CALLCONV OP* Perl_jmaybe(pTHX_ OP *o)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_JMAYBE \
@@ -2282,6 +2382,12 @@ PERL_CALLCONV int Perl_magic_getarylen(pTHX_ SV* sv, const MAGIC* mg)
#define PERL_ARGS_ASSERT_MAGIC_GETARYLEN \
assert(sv); assert(mg)
+PERL_CALLCONV int Perl_magic_getdebugvar(pTHX_ SV* sv, MAGIC* mg)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MAGIC_GETDEBUGVAR \
+ assert(sv); assert(mg)
+
PERL_CALLCONV int Perl_magic_getdefelem(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -2398,6 +2504,12 @@ PERL_CALLCONV int Perl_magic_setdbline(pTHX_ SV* sv, MAGIC* mg)
#define PERL_ARGS_ASSERT_MAGIC_SETDBLINE \
assert(sv); assert(mg)
+PERL_CALLCONV int Perl_magic_setdebugvar(pTHX_ SV* sv, MAGIC* mg)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MAGIC_SETDEBUGVAR \
+ assert(sv); assert(mg)
+
PERL_CALLCONV int Perl_magic_setdefelem(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -2422,6 +2534,12 @@ PERL_CALLCONV int Perl_magic_setisa(pTHX_ SV* sv, MAGIC* mg)
#define PERL_ARGS_ASSERT_MAGIC_SETISA \
assert(sv); assert(mg)
+PERL_CALLCONV int Perl_magic_setlvref(pTHX_ SV* sv, MAGIC* mg)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MAGIC_SETLVREF \
+ assert(sv); assert(mg)
+
PERL_CALLCONV int Perl_magic_setmglob(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -2503,7 +2621,7 @@ PERL_CALLCONV Malloc_t Perl_malloc(MEM_SIZE nbytes)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV void Perl_markstack_grow(pTHX);
+PERL_CALLCONV I32 * Perl_markstack_grow(pTHX);
PERL_CALLCONV SV* Perl_mess(pTHX_ const char* pat, ...)
__attribute__format__(__printf__,pTHX_1,pTHX_2)
__attribute__nonnull__(pTHX_1);
@@ -2527,7 +2645,7 @@ PERL_CALLCONV int Perl_mg_copy(pTHX_ SV *sv, SV *nsv, const char *key, I32 klen)
#define PERL_ARGS_ASSERT_MG_COPY \
assert(sv); assert(nsv)
-PERL_CALLCONV MAGIC* Perl_mg_find(pTHX_ const SV* sv, int type)
+PERL_CALLCONV MAGIC* Perl_mg_find(const SV* sv, int type)
__attribute__warn_unused_result__;
PERL_CALLCONV MAGIC* Perl_mg_find_mglob(pTHX_ SV* sv)
@@ -2536,7 +2654,7 @@ PERL_CALLCONV MAGIC* Perl_mg_find_mglob(pTHX_ SV* sv)
#define PERL_ARGS_ASSERT_MG_FIND_MGLOB \
assert(sv)
-PERL_CALLCONV MAGIC* Perl_mg_findext(pTHX_ const SV* sv, int type, const MGVTBL *vtbl)
+PERL_CALLCONV MAGIC* Perl_mg_findext(const SV* sv, int type, const MGVTBL *vtbl)
__attribute__warn_unused_result__;
PERL_CALLCONV int Perl_mg_free(pTHX_ SV* sv)
@@ -2566,8 +2684,8 @@ PERL_CALLCONV void Perl_mg_localize(pTHX_ SV* sv, SV* nsv, bool setmagic)
#define PERL_ARGS_ASSERT_MG_LOCALIZE \
assert(sv); assert(nsv)
-PERL_CALLCONV void Perl_mg_magical(pTHX_ SV* sv)
- __attribute__nonnull__(pTHX_1);
+PERL_CALLCONV void Perl_mg_magical(SV* sv)
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_MG_MAGICAL \
assert(sv)
@@ -2581,8 +2699,8 @@ PERL_CALLCONV I32 Perl_mg_size(pTHX_ SV* sv)
#define PERL_ARGS_ASSERT_MG_SIZE \
assert(sv)
-PERL_CALLCONV void Perl_mini_mktime(pTHX_ struct tm *ptm)
- __attribute__nonnull__(pTHX_1);
+PERL_CALLCONV void Perl_mini_mktime(struct tm *ptm)
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_MINI_MKTIME \
assert(ptm)
@@ -2647,6 +2765,11 @@ PERL_CALLCONV SV* Perl_mro_set_private_data(pTHX_ struct mro_meta *const smeta,
#define PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA \
assert(smeta); assert(which); assert(data)
+PERL_CALLCONV SV* Perl_multideref_stringify(pTHX_ const OP* o, CV *cv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MULTIDEREF_STRINGIFY \
+ assert(o)
+
PERL_CALLCONV NV Perl_my_atof(pTHX_ const char *s)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_MY_ATOF \
@@ -2664,7 +2787,7 @@ PERL_CALLCONV OP * Perl_my_attrs(pTHX_ OP *o, OP *attrs)
assert(o)
PERL_CALLCONV void Perl_my_clearenv(pTHX);
-PERL_CALLCONV int Perl_my_dirfd(pTHX_ DIR* dir);
+PERL_CALLCONV int Perl_my_dirfd(DIR* dir);
PERL_CALLCONV_NO_RET void Perl_my_exit(pTHX_ U32 status)
__attribute__noreturn__;
@@ -2692,6 +2815,7 @@ PERL_CALLCONV int Perl_my_snprintf(char *buffer, const Size_t len, const char *f
PERL_CALLCONV int Perl_my_socketpair(int family, int type, int protocol, int fd[2]);
/* PERL_CALLCONV I32 Perl_my_stat(pTHX); */
PERL_CALLCONV I32 Perl_my_stat_flags(pTHX_ const U32 flags);
+PERL_CALLCONV char* Perl_my_strerror(pTHX_ const int errnum);
PERL_CALLCONV char * Perl_my_strftime(pTHX_ const char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst)
__attribute__format__(__strftime__,pTHX_1,0)
__attribute__nonnull__(pTHX_1);
@@ -2748,6 +2872,10 @@ PERL_CALLCONV OP* Perl_newCVREF(pTHX_ I32 flags, OP* o)
__attribute__malloc__
__attribute__warn_unused_result__;
+PERL_CALLCONV OP* Perl_newDEFSVOP(pTHX)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV void Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
PERL_CALLCONV OP* Perl_newFOROP(pTHX_ I32 flags, OP* sv, OP* expr, OP* block, OP* cont)
__attribute__malloc__
__attribute__warn_unused_result__
@@ -2830,6 +2958,20 @@ PERL_CALLCONV OP* Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP* expr, OP*
__attribute__malloc__
__attribute__warn_unused_result__;
+PERL_CALLCONV OP* Perl_newMETHOP(pTHX_ I32 type, I32 flags, OP* dynamic_meth)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_NEWMETHOP \
+ assert(dynamic_meth)
+
+PERL_CALLCONV OP* Perl_newMETHOP_named(pTHX_ I32 type, I32 flags, SV* const_meth)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_NEWMETHOP_NAMED \
+ assert(const_meth)
+
PERL_CALLCONV CV * Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_NEWMYSUB \
@@ -2843,6 +2985,24 @@ PERL_CALLCONV OP* Perl_newOP(pTHX_ I32 optype, I32 flags)
__attribute__malloc__
__attribute__warn_unused_result__;
+PERL_CALLCONV PADNAMELIST * Perl_newPADNAMELIST(size_t max)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV PADNAME * Perl_newPADNAMEouter(PADNAME *outer)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_NEWPADNAMEOUTER \
+ assert(outer)
+
+PERL_CALLCONV PADNAME * Perl_newPADNAMEpvn(const char *s, STRLEN len)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_NEWPADNAMEPVN \
+ assert(s)
+
PERL_CALLCONV OP* Perl_newPMOP(pTHX_ I32 type, I32 flags)
__attribute__malloc__
__attribute__warn_unused_result__;
@@ -2871,12 +3031,12 @@ PERL_CALLCONV SV* Perl_newRV(pTHX_ SV *const sv)
#define PERL_ARGS_ASSERT_NEWRV \
assert(sv)
-PERL_CALLCONV SV* Perl_newRV_noinc(pTHX_ SV *const sv)
+PERL_CALLCONV SV* Perl_newRV_noinc(pTHX_ SV *const tmpRef)
__attribute__malloc__
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_NEWRV_NOINC \
- assert(sv)
+ assert(tmpRef)
PERL_CALLCONV OP* Perl_newSLICEOP(pTHX_ I32 flags, OP* subscript, OP* listop)
__attribute__malloc__
@@ -2978,6 +3138,10 @@ PERL_CALLCONV OP* Perl_newUNOP(pTHX_ I32 type, I32 flags, OP* first)
__attribute__malloc__
__attribute__warn_unused_result__;
+PERL_CALLCONV OP* Perl_newUNOP_AUX(pTHX_ I32 type, I32 flags, OP* first, UNOP_AUX_item *aux)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+
PERL_CALLCONV OP* Perl_newWHENOP(pTHX_ OP* cond, OP* block)
__attribute__malloc__
__attribute__warn_unused_result__
@@ -2995,6 +3159,12 @@ PERL_CALLCONV CV* Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const c
#define PERL_ARGS_ASSERT_NEWXS \
assert(subaddr); assert(filename)
+PERL_CALLCONV CV * Perl_newXS_deffile(pTHX_ const char *name, XSUBADDR_t subaddr)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_NEWXS_DEFFILE \
+ assert(name); assert(subaddr)
+
PERL_CALLCONV CV * Perl_newXS_flags(pTHX_ const char *name, XSUBADDR_t subaddr, const char *const filename, const char *const proto, U32 flags)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
@@ -3002,10 +3172,9 @@ PERL_CALLCONV CV * Perl_newXS_flags(pTHX_ const char *name, XSUBADDR_t subaddr,
assert(subaddr); assert(filename)
PERL_CALLCONV CV * Perl_newXS_len_flags(pTHX_ const char *name, STRLEN len, XSUBADDR_t subaddr, const char *const filename, const char *const proto, SV **const_svp, U32 flags)
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_4);
+ __attribute__nonnull__(pTHX_3);
#define PERL_ARGS_ASSERT_NEWXS_LEN_FLAGS \
- assert(subaddr); assert(filename)
+ assert(subaddr)
PERL_CALLCONV void Perl_new_collate(pTHX_ const char* newcoll);
PERL_CALLCONV void Perl_new_ctype(pTHX_ const char* newctype)
@@ -3030,7 +3199,7 @@ PERL_CALLCONV STRLEN * Perl_new_warnings_bitfield(pTHX_ STRLEN *buffer, const ch
#define PERL_ARGS_ASSERT_NEW_WARNINGS_BITFIELD \
assert(bits)
-PERL_CALLCONV PerlIO* Perl_nextargv(pTHX_ GV* gv)
+PERL_CALLCONV PerlIO* Perl_nextargv(pTHX_ GV* gv, bool nomagicopen)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_NEXTARGV \
assert(gv)
@@ -3044,6 +3213,13 @@ PERL_CALLCONV char* Perl_ninstr(const char* big, const char* bigend, const char*
#define PERL_ARGS_ASSERT_NINSTR \
assert(big); assert(bigend); assert(little); assert(lend)
+PERL_CALLCONV_NO_RET void Perl_noperl_die(const char* pat, ...)
+ __attribute__noreturn__
+ __attribute__format__(__printf__,1,2)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_NOPERL_DIE \
+ assert(pat)
+
PERL_CALLCONV int Perl_nothreadhook(pTHX);
PERL_CALLCONV OP* Perl_oopsAV(pTHX_ OP* o)
__attribute__warn_unused_result__
@@ -3064,14 +3240,14 @@ PERL_CALLCONV void Perl_op_clear(pTHX_ OP* o)
#define PERL_ARGS_ASSERT_OP_CLEAR \
assert(o)
-PERL_CALLCONV SV* Perl_op_const_sv(pTHX_ const OP* o, CV* cv)
- __attribute__warn_unused_result__;
-
PERL_CALLCONV OP* Perl_op_contextualize(pTHX_ OP* o, I32 context)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_OP_CONTEXTUALIZE \
assert(o)
+PERL_CALLCONV OP* Perl_op_convert_list(pTHX_ I32 optype, I32 flags, OP* o)
+ __attribute__warn_unused_result__;
+
PERL_CALLCONV void Perl_op_dump(pTHX_ const OP *o)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_OP_DUMP \
@@ -3094,6 +3270,7 @@ PERL_CALLCONV OP* Perl_op_prepend_elem(pTHX_ I32 optype, OP* first, OP* last);
PERL_CALLCONV void Perl_op_refcnt_lock(pTHX);
PERL_CALLCONV void Perl_op_refcnt_unlock(pTHX);
PERL_CALLCONV OP* Perl_op_scope(pTHX_ OP* o);
+PERL_CALLCONV OP* Perl_op_sibling_splice(OP *parent, OP *start, int del_count, OP* insert);
PERL_CALLCONV OP* Perl_op_unscope(pTHX_ OP* o);
PERL_CALLCONV void Perl_pack_cat(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags)
__attribute__nonnull__(pTHX_1)
@@ -3105,6 +3282,11 @@ PERL_CALLCONV void Perl_pack_cat(pTHX_ SV *cat, const char *pat, const char *pat
#define PERL_ARGS_ASSERT_PACK_CAT \
assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist); assert(next_in_list)
+PERL_CALLCONV void Perl_package(pTHX_ OP* o)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PACKAGE \
+ assert(o)
+
PERL_CALLCONV void Perl_package_version(pTHX_ OP* v)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_PACKAGE_VERSION \
@@ -3139,6 +3321,11 @@ PERL_CALLCONV PADOFFSET Perl_pad_add_name_sv(pTHX_ SV *name, U32 flags, HV *type
#define PERL_ARGS_ASSERT_PAD_ADD_NAME_SV \
assert(name)
+PERL_CALLCONV void Perl_pad_add_weakref(pTHX_ CV* func)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PAD_ADD_WEAKREF \
+ assert(func)
+
PERL_CALLCONV PADOFFSET Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype);
PERL_CALLCONV void Perl_pad_block_start(pTHX_ int full);
PERL_CALLCONV HV* Perl_pad_compname_type(pTHX_ const PADOFFSET po)
@@ -3184,6 +3371,27 @@ PERL_CALLCONV PAD ** Perl_padlist_store(pTHX_ PADLIST *padlist, I32 key, PAD *va
#define PERL_ARGS_ASSERT_PADLIST_STORE \
assert(padlist)
+PERL_CALLCONV void Perl_padname_free(pTHX_ PADNAME *pn)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PADNAME_FREE \
+ assert(pn)
+
+PERL_CALLCONV PADNAME * Perl_padnamelist_fetch(PADNAMELIST *pnl, SSize_t key)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_PADNAMELIST_FETCH \
+ assert(pnl)
+
+PERL_CALLCONV void Perl_padnamelist_free(pTHX_ PADNAMELIST *pnl)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PADNAMELIST_FREE \
+ assert(pnl)
+
+PERL_CALLCONV PADNAME ** Perl_padnamelist_store(pTHX_ PADNAMELIST *pnl, SSize_t key, PADNAME *val)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PADNAMELIST_STORE \
+ assert(pnl)
+
PERL_CALLCONV OP* Perl_parse_arithexpr(pTHX_ U32 flags);
PERL_CALLCONV OP* Perl_parse_barestmt(pTHX_ U32 flags);
PERL_CALLCONV OP* Perl_parse_block(pTHX_ U32 flags);
@@ -3234,7 +3442,7 @@ PERL_CALLCONV int perl_run(PerlInterpreter *my_perl)
assert(my_perl)
PERL_CALLCONV void Perl_pmop_dump(pTHX_ PMOP* pm);
-PERL_CALLCONV OP* Perl_pmruntime(pTHX_ OP *o, OP *expr, bool isreg, I32 floor)
+PERL_CALLCONV OP* Perl_pmruntime(pTHX_ OP *o, OP *expr, OP *repl, bool isreg, I32 floor)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_PMRUNTIME \
@@ -3304,10 +3512,9 @@ PERL_CALLCONV char* Perl_pv_display(pTHX_ SV *dsv, const char *pv, STRLEN cur, S
assert(dsv); assert(pv)
PERL_CALLCONV char* Perl_pv_escape(pTHX_ SV *dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags)
- __attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_PV_ESCAPE \
- assert(dsv); assert(str)
+ assert(str)
PERL_CALLCONV char* Perl_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)
__attribute__nonnull__(pTHX_1)
@@ -3491,12 +3698,6 @@ PERL_CALLCONV void Perl_reginitcolors(pTHX);
PERL_CALLCONV regnode* Perl_regnext(pTHX_ regnode* p)
__attribute__warn_unused_result__;
-PERL_CALLCONV void Perl_regprop(pTHX_ const regexp *prog, SV* sv, const regnode* o, const regmatch_info *reginfo)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_REGPROP \
- assert(sv); assert(o)
-
PERL_CALLCONV void Perl_repeatcpy(char* to, const char* from, I32 len, IV count)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -3585,6 +3786,11 @@ PERL_CALLCONV void Perl_save_aelem_flags(pTHX_ AV* av, SSize_t idx, SV **sptr, c
#define PERL_ARGS_ASSERT_SAVE_AELEM_FLAGS \
assert(av); assert(sptr)
+PERL_CALLCONV void Perl_save_aliased_sv(pTHX_ GV* gv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SAVE_ALIASED_SV \
+ assert(gv)
+
PERL_CALLCONV I32 Perl_save_alloc(pTHX_ I32 size, I32 pad);
PERL_CALLCONV void Perl_save_aptr(pTHX_ AV** aptr)
__attribute__nonnull__(pTHX_1);
@@ -3822,13 +4028,6 @@ PERL_CALLCONV char* Perl_scan_vstring(pTHX_ const char *s, const char *const e,
#define PERL_ARGS_ASSERT_SCAN_VSTRING \
assert(s); assert(e); assert(sv)
-PERL_CALLCONV char* Perl_screaminstr(pTHX_ SV *bigstr, SV *littlestr, I32 start_shift, I32 end_shift, I32 *old_posp, I32 last)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_5);
-#define PERL_ARGS_ASSERT_SCREAMINSTR \
- assert(bigstr); assert(littlestr); assert(old_posp)
-
PERL_CALLCONV U32 Perl_seed(pTHX);
PERL_CALLCONV void Perl_set_caret_X(pTHX);
PERL_CALLCONV void Perl_set_context(void *t)
@@ -3971,8 +4170,8 @@ PERL_CALLCONV UV Perl_sv_2uv_flags(pTHX_ SV *const sv, const I32 flags)
#define PERL_ARGS_ASSERT_SV_2UV_FLAGS \
assert(sv)
-PERL_CALLCONV int Perl_sv_backoff(pTHX_ SV *const sv)
- __attribute__nonnull__(pTHX_1);
+PERL_CALLCONV int Perl_sv_backoff(SV *const sv)
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_SV_BACKOFF \
assert(sv)
@@ -4175,6 +4374,12 @@ PERL_CALLCONV void Perl_sv_free2(pTHX_ SV *const sv, const U32 refcnt)
assert(sv)
PERL_CALLCONV void Perl_sv_free_arenas(pTHX);
+PERL_CALLCONV SV* Perl_sv_get_backrefs(SV *const sv)
+ __attribute__pure__
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_SV_GET_BACKREFS \
+ assert(sv)
+
PERL_CALLCONV char* Perl_sv_gets(pTHX_ SV *const sv, PerlIO *const fp, I32 append)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -4252,6 +4457,11 @@ PERL_CALLCONV NV Perl_sv_nv(pTHX_ SV* sv)
#define PERL_ARGS_ASSERT_SV_NV \
assert(sv)
+PERL_STATIC_INLINE bool S_sv_only_taint_gmagic(SV *sv)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC \
+ assert(sv)
+
PERL_CALLCONV char* Perl_sv_peek(pTHX_ SV* sv);
PERL_CALLCONV void Perl_sv_pos_b2u(pTHX_ SV *const sv, I32 *const offsetp)
__attribute__nonnull__(pTHX_2);
@@ -4646,7 +4856,7 @@ PERL_CALLCONV SV* Perl_swash_init(pTHX_ const char* pkg, const char* name, SV* l
#define PERL_ARGS_ASSERT_SWASH_INIT \
assert(pkg); assert(name); assert(listsv)
-/* PERL_CALLCONV void sync_locale(void); */
+PERL_CALLCONV void Perl_sync_locale(pTHX);
PERL_CALLCONV void Perl_sys_init(int* argc, char*** argv)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -4675,7 +4885,7 @@ PERL_CALLCONV OP * Perl_tied_method(pTHX_ SV *methname, SV **sp, SV *const sv, c
#define PERL_ARGS_ASSERT_TIED_METHOD \
assert(methname); assert(sp); assert(sv); assert(mg)
-PERL_CALLCONV void Perl_tmps_grow(pTHX_ SSize_t n);
+PERL_CALLCONV SSize_t Perl_tmps_grow_p(pTHX_ SSize_t ix);
/* PERL_CALLCONV UV Perl_to_uni_fold(pTHX_ UV c, U8 *p, STRLEN *lenp)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3); */
@@ -4792,10 +5002,10 @@ PERL_CALLCONV IV Perl_utf8_distance(pTHX_ const U8 *a, const U8 *b)
#define PERL_ARGS_ASSERT_UTF8_DISTANCE \
assert(a); assert(b)
-PERL_CALLCONV U8* Perl_utf8_hop(pTHX_ const U8 *s, I32 off)
+PERL_CALLCONV U8* Perl_utf8_hop(const U8 *s, I32 off)
__attribute__warn_unused_result__
__attribute__pure__
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_UTF8_HOP \
assert(s)
@@ -4846,6 +5056,11 @@ PERL_CALLCONV UV Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *r
#define PERL_ARGS_ASSERT_UTF8N_TO_UVUNI \
assert(s)
+PERL_CALLCONV void Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_UTILIZE \
+ assert(idop)
+
/* PERL_CALLCONV U8* uvchr_to_utf8(pTHX_ U8 *d, UV uv)
__attribute__nonnull__(pTHX_1); */
@@ -5019,16 +5234,12 @@ PERL_CALLCONV void Perl_write_to_stderr(pTHX_ SV* msv)
#define PERL_ARGS_ASSERT_WRITE_TO_STDERR \
assert(msv)
-PERL_CALLCONV void Perl_xs_apiversion_bootcheck(pTHX_ SV *module, const char *api_p, STRLEN api_len)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_XS_APIVERSION_BOOTCHECK \
- assert(module); assert(api_p)
-
-PERL_CALLCONV void Perl_xs_version_bootcheck(pTHX_ U32 items, U32 ax, const char *xs_p, STRLEN xs_len)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_XS_VERSION_BOOTCHECK \
- assert(xs_p)
+PERL_CALLCONV void Perl_xs_boot_epilog(pTHX_ const U32 ax);
+PERL_CALLCONV I32 Perl_xs_handshake(const U32 key, void * v_my_perl, const char * file, ...)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+#define PERL_ARGS_ASSERT_XS_HANDSHAKE \
+ assert(v_my_perl); assert(file)
PERL_CALLCONV int Perl_yyerror(pTHX_ const char *const s)
__attribute__nonnull__(pTHX_1);
@@ -5082,19 +5293,6 @@ PERL_CALLCONV void* Perl_my_cxt_init(pTHX_ int *index, size_t size)
# endif
#endif
-#if !(defined(PERL_MAD))
-PERL_CALLCONV void Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
-PERL_CALLCONV void Perl_package(pTHX_ OP* o)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PACKAGE \
- assert(o)
-
-PERL_CALLCONV void Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg)
- __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_UTILIZE \
- assert(idop)
-
-#endif
#if !(defined(WIN32))
/* PERL_CALLCONV char* my_setlocale(pTHX_ int category, const char* locale)
__attribute__pure__; */
@@ -5196,6 +5394,38 @@ STATIC PerlIO * S_doopen_pm(pTHX_ SV *name)
# endif
#endif
+#if !defined(PERL_EXT_RE_BUILD)
+# if defined(PERL_IN_REGCOMP_C)
+PERL_STATIC_INLINE IV* S_get_invlist_previous_index_addr(SV* invlist)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR \
+ assert(invlist)
+
+PERL_STATIC_INLINE bool S_invlist_is_iterating(SV* const invlist)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_INVLIST_IS_ITERATING \
+ assert(invlist)
+
+PERL_STATIC_INLINE IV S_invlist_previous_index(SV* const invlist)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX \
+ assert(invlist)
+
+PERL_STATIC_INLINE void S_invlist_set_previous_index(SV* const invlist, const IV index)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX \
+ assert(invlist)
+
+PERL_STATIC_INLINE void S_invlist_trim(SV* const invlist)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_INVLIST_TRIM \
+ assert(invlist)
+
+# endif
+#endif
#if !defined(PERL_IMPLICIT_SYS)
PERL_CALLCONV I32 Perl_my_pclose(pTHX_ PerlIO* ptr);
PERL_CALLCONV PerlIO* Perl_my_popen(pTHX_ const char* cmd, const char* mode)
@@ -5247,6 +5477,11 @@ PERL_CALLCONV int Perl_my_sprintf(char *buffer, const char *pat, ...)
assert(buffer); assert(pat)
#endif
+#if !defined(USE_QUADMATH)
+# if defined(PERL_IN_NUMERIC_C)
+STATIC NV S_mulexp10(NV value, I32 exponent);
+# endif
+#endif
#if !defined(WIN32)
PERL_CALLCONV bool Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report)
__attribute__nonnull__(pTHX_1);
@@ -5280,6 +5515,11 @@ PERL_CALLCONV void Perl_pad_setsv(pTHX_ PADOFFSET po, SV* sv)
assert(sv)
PERL_CALLCONV SV* Perl_pad_sv(pTHX_ PADOFFSET po);
+PERL_CALLCONV void Perl_set_padlist(CV * cv, PADLIST * padlist)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_SET_PADLIST \
+ assert(cv)
+
# if defined(PERL_IN_PAD_C)
STATIC void S_cv_dump(pTHX_ const CV *cv, const char *title)
__attribute__nonnull__(pTHX_1)
@@ -5315,18 +5555,18 @@ STATIC const regnode* S_dumpuntil(pTHX_ const regexp *r, const regnode *start, c
#define PERL_ARGS_ASSERT_DUMPUNTIL \
assert(r); assert(start); assert(node); assert(sv)
-STATIC void S_put_byte(pTHX_ SV* sv, int c)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PUT_BYTE \
- assert(sv)
-
-STATIC bool S_put_latin1_charclass_innards(pTHX_ SV* sv, char* bitmap)
+STATIC bool S_put_charclass_bitmap_innards(pTHX_ SV* sv, char* bitmap, SV** bitmap_invlist)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_PUT_LATIN1_CHARCLASS_INNARDS \
+#define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS \
assert(sv); assert(bitmap)
-STATIC void S_put_range(pTHX_ SV* sv, UV start, UV end)
+STATIC void S_put_code_point(pTHX_ SV* sv, UV c)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PUT_CODE_POINT \
+ assert(sv)
+
+STATIC void S_put_range(pTHX_ SV* sv, UV start, const UV end, const bool allow_literals)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_PUT_RANGE \
assert(sv)
@@ -5496,6 +5736,12 @@ PERL_CALLCONV void Perl_parser_free_nexttoke_ops(pTHX_ yy_parser *parser, OPSLAB
#define PERL_ARGS_ASSERT_PARSER_FREE_NEXTTOKE_OPS \
assert(parser); assert(slab)
+PERL_STATIC_INLINE bool S_should_warn_nl(const char *pv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_SHOULD_WARN_NL \
+ assert(pv)
+
# if defined(PERL_DEBUG_READONLY_OPS)
PERL_CALLCONV void Perl_Slab_to_ro(pTHX_ OPSLAB *slab)
__attribute__nonnull__(pTHX_1);
@@ -5591,7 +5837,8 @@ PERL_CALLCONV void Perl_deb_nocontext(const char* pat, ...)
#define PERL_ARGS_ASSERT_DEB_NOCONTEXT \
assert(pat)
-PERL_CALLCONV OP* Perl_die_nocontext(const char* pat, ...)
+PERL_CALLCONV_NO_RET OP* Perl_die_nocontext(const char* pat, ...)
+ __attribute__noreturn__
__attribute__format__null_ok__(__printf__,1,2);
PERL_CALLCONV char* Perl_form_nocontext(const char* pat, ...)
@@ -5783,7 +6030,7 @@ STATIC I32 S_do_trans_simple_utf8(pTHX_ SV * const sv)
#endif
#if defined(PERL_IN_DUMP_C)
-STATIC CV* S_deb_curcv(pTHX_ const I32 ix);
+STATIC CV* S_deb_curcv(pTHX_ I32 ix);
STATIC void S_debprof(pTHX_ const OP *o)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_DEBPROF \
@@ -5795,15 +6042,6 @@ STATIC SV* S_pm_description(pTHX_ const PMOP *pm)
assert(pm)
STATIC UV S_sequence_num(pTHX_ const OP *o);
-# if defined(PERL_MAD)
-STATIC void S_xmldump_attr(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
- __attribute__format__(__printf__,pTHX_3,pTHX_4)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_XMLDUMP_ATTR \
- assert(file); assert(pat)
-
-# endif
#endif
#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_SCOPE_C)
PERL_CALLCONV void Perl_hv_kill_backrefs(pTHX_ HV *hv)
@@ -5813,12 +6051,13 @@ PERL_CALLCONV void Perl_hv_kill_backrefs(pTHX_ HV *hv)
#endif
#if defined(PERL_IN_GV_C)
-STATIC bool S_find_default_stash(pTHX_ HV **stash, const char *name, STRLEN len, const U32 is_utf8, const I32 add, svtype sv_type)
+STATIC bool S_find_default_stash(pTHX_ HV **stash, const char *name, STRLEN len, const U32 is_utf8, const I32 add, const svtype sv_type)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_FIND_DEFAULT_STASH \
assert(stash); assert(name)
+PERL_STATIC_INLINE GV* S_gv_fetchmeth_internal(pTHX_ HV* stash, SV* meth, const char* name, STRLEN len, I32 level, U32 flags);
STATIC void S_gv_init_svtype(pTHX_ GV *gv, const svtype sv_type)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_GV_INIT_SVTYPE \
@@ -5829,7 +6068,7 @@ STATIC bool S_gv_is_in_main(pTHX_ const char *name, STRLEN len, const U32 is_utf
#define PERL_ARGS_ASSERT_GV_IS_IN_MAIN \
assert(name)
-STATIC bool S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, bool addmg, svtype sv_type)
+STATIC bool S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, bool addmg, const svtype sv_type)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
@@ -5841,6 +6080,12 @@ STATIC void S_gv_magicalize_isa(pTHX_ GV *gv)
#define PERL_ARGS_ASSERT_GV_MAGICALIZE_ISA \
assert(gv)
+PERL_STATIC_INLINE HV* S_gv_stashpvn_internal(pTHX_ const char* name, U32 namelen, I32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GV_STASHPVN_INTERNAL \
+ assert(name)
+
+PERL_STATIC_INLINE HV* S_gv_stashsvpvn_cached(pTHX_ SV *namesv, const char* name, U32 namelen, I32 flags);
STATIC void S_maybe_multimagic_gv(pTHX_ GV *gv, const char *name, const svtype sv_type)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -5960,14 +6205,6 @@ PERL_CALLCONV SV* Perl_hfree_next_entry(pTHX_ HV *hv, STRLEN *indexp)
assert(hv); assert(indexp)
#endif
-#if defined(PERL_IN_LOCALE_C) && defined(USE_LOCALE)
-STATIC bool S_is_cur_LC_category_utf8(pTHX_ int category);
-STATIC char* S_stdize_locale(pTHX_ char* locs)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_STDIZE_LOCALE \
- assert(locs)
-
-#endif
#if defined(PERL_IN_MALLOC_C)
STATIC int S_adjust_size_and_find_bucket(size_t *nbytes_p)
__attribute__nonnull__(1);
@@ -6004,9 +6241,9 @@ STATIC void S_save_magic_flags(pTHX_ I32 mgs_ix, SV *sv, U32 flags)
STATIC void S_unwind_handler_stack(pTHX_ const void *p);
#endif
#if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
-PERL_CALLCONV bool Perl_translate_substr_offsets(pTHX_ STRLEN curlen, IV pos1_iv, bool pos1_is_uv, IV len_iv, bool len_is_uv, STRLEN *posp, STRLEN *lenp)
- __attribute__nonnull__(pTHX_6)
- __attribute__nonnull__(pTHX_7);
+PERL_CALLCONV bool Perl_translate_substr_offsets(STRLEN curlen, IV pos1_iv, bool pos1_is_uv, IV len_iv, bool len_is_uv, STRLEN *posp, STRLEN *lenp)
+ __attribute__nonnull__(6)
+ __attribute__nonnull__(7);
#define PERL_ARGS_ASSERT_TRANSLATE_SUBSTR_OFFSETS \
assert(posp); assert(lenp)
@@ -6031,9 +6268,6 @@ STATIC AV* S_mro_get_linear_isa_dfs(pTHX_ HV* stash, U32 level)
assert(stash)
#endif
-#if defined(PERL_IN_NUMERIC_C)
-STATIC NV S_mulexp10(NV value, I32 exponent);
-#endif
#if defined(PERL_IN_OP_C)
PERL_STATIC_INLINE bool S_aassign_common_vars(pTHX_ OP* o);
STATIC void S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs)
@@ -6049,19 +6283,29 @@ STATIC void S_apply_attrs_my(pTHX_ HV *stash, OP *target, OP *attrs, OP **imopsp
#define PERL_ARGS_ASSERT_APPLY_ATTRS_MY \
assert(stash); assert(target); assert(imopsp)
-STATIC void S_bad_type_gv(pTHX_ I32 n, const char *t, GV *gv, U32 flags, const OP *kid)
+STATIC I32 S_assignment_type(pTHX_ const OP *o)
+ __attribute__warn_unused_result__;
+
+STATIC void S_bad_type_gv(pTHX_ I32 n, GV *gv, const OP *kid, const char *t)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_5);
+ __attribute__nonnull__(pTHX_4);
#define PERL_ARGS_ASSERT_BAD_TYPE_GV \
- assert(t); assert(gv); assert(kid)
+ assert(gv); assert(kid); assert(t)
-STATIC void S_bad_type_pv(pTHX_ I32 n, const char *t, const char *name, U32 flags, const OP *kid)
+STATIC void S_bad_type_pv(pTHX_ I32 n, const char *t, const OP *o, const OP *kid)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_5);
+ __attribute__nonnull__(pTHX_4);
#define PERL_ARGS_ASSERT_BAD_TYPE_PV \
- assert(t); assert(name); assert(kid)
+ assert(t); assert(o); assert(kid)
+
+STATIC void S_clear_special_blocks(pTHX_ const char *const fullname, GV *const gv, CV *const cv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_CLEAR_SPECIAL_BLOCKS \
+ assert(fullname); assert(gv); assert(cv)
STATIC void S_cop_free(pTHX_ COP *cop)
__attribute__nonnull__(pTHX_1);
@@ -6088,18 +6332,13 @@ STATIC OP* S_fold_constants(pTHX_ OP *o)
#define PERL_ARGS_ASSERT_FOLD_CONSTANTS \
assert(o)
-STATIC OP* S_force_list(pTHX_ OP* arg);
+STATIC OP* S_force_list(pTHX_ OP* arg, bool nullit);
STATIC void S_forget_pmop(pTHX_ PMOP *const o)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_FORGET_PMOP \
assert(o)
STATIC OP* S_gen_constant_list(pTHX_ OP* o);
-STATIC SV* S_gv_ename(pTHX_ GV *gv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GV_ENAME \
- assert(gv)
-
STATIC void S_inplace_aassign(pTHX_ OP* o)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_INPLACE_AASSIGN \
@@ -6111,9 +6350,6 @@ STATIC bool S_is_handle_constructor(const OP *o, I32 numargs)
#define PERL_ARGS_ASSERT_IS_HANDLE_CONSTRUCTOR \
assert(o)
-STATIC I32 S_is_list_assignment(pTHX_ const OP *o)
- __attribute__warn_unused_result__;
-
STATIC OP* S_listkids(pTHX_ OP* o);
STATIC bool S_looks_like_bool(pTHX_ const OP* o)
__attribute__nonnull__(pTHX_1);
@@ -6133,14 +6369,12 @@ STATIC OP * S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp)
#define PERL_ARGS_ASSERT_MY_KID \
assert(imopsp)
-STATIC OP* S_newDEFSVOP(pTHX)
- __attribute__warn_unused_result__;
-
STATIC OP* S_newGIVWHENOP(pTHX_ OP* cond, OP *block, I32 enter_opcode, I32 leave_opcode, PADOFFSET entertarg)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_NEWGIVWHENOP \
assert(block)
+PERL_STATIC_INLINE OP* S_newMETHOP_internal(pTHX_ I32 type, I32 flags, OP* dynamic_meth, SV* const_meth);
STATIC OP* S_new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_3)
@@ -6159,11 +6393,6 @@ STATIC OP* S_no_fh_allowed(pTHX_ OP *o)
#define PERL_ARGS_ASSERT_NO_FH_ALLOWED \
assert(o)
-STATIC void S_null_listop_in_list_context(pTHX_ OP* o)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_NULL_LISTOP_IN_LIST_CONTEXT \
- assert(o)
-
PERL_STATIC_INLINE OP* S_op_integerize(pTHX_ OP *o)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_OP_INTEGERIZE \
@@ -6181,7 +6410,7 @@ STATIC OP* S_pmtrans(pTHX_ OP* o, OP* expr, OP* repl)
#define PERL_ARGS_ASSERT_PMTRANS \
assert(o); assert(expr); assert(repl)
-STATIC void S_process_special_blocks(pTHX_ I32 floor, const char *const fullname, GV *const gv, CV *const cv)
+STATIC bool S_process_special_blocks(pTHX_ I32 floor, const char *const fullname, GV *const gv, CV *const cv)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3)
__attribute__nonnull__(pTHX_4);
@@ -6218,26 +6447,20 @@ STATIC OP* S_too_few_arguments_pv(pTHX_ OP *o, const char* name, U32 flags)
#define PERL_ARGS_ASSERT_TOO_FEW_ARGUMENTS_PV \
assert(o); assert(name)
-STATIC OP* S_too_few_arguments_sv(pTHX_ OP *o, SV* namesv, U32 flags)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_TOO_FEW_ARGUMENTS_SV \
- assert(o); assert(namesv)
-
STATIC OP* S_too_many_arguments_pv(pTHX_ OP *o, const char* name, U32 flags)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_PV \
assert(o); assert(name)
-STATIC OP* S_too_many_arguments_sv(pTHX_ OP *o, SV* namesv, U32 flags)
- __attribute__warn_unused_result__
+# if defined(USE_ITHREADS)
+PERL_STATIC_INLINE void S_op_relocate_sv(pTHX_ SV** svp, PADOFFSET* targp)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_SV \
- assert(o); assert(namesv)
+#define PERL_ARGS_ASSERT_OP_RELOCATE_SV \
+ assert(svp); assert(targp)
+# endif
#endif
#if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
PERL_CALLCONV void Perl_report_redefined_cv(pTHX_ const SV *name, const CV *old_cv, SV * const *new_const_svp)
@@ -6248,23 +6471,23 @@ PERL_CALLCONV void Perl_report_redefined_cv(pTHX_ const SV *name, const CV *old_
#endif
#if defined(PERL_IN_PAD_C)
-STATIC PADOFFSET S_pad_alloc_name(pTHX_ SV *namesv, U32 flags, HV *typestash, HV *ourstash)
+STATIC PADOFFSET S_pad_alloc_name(pTHX_ PADNAME *name, U32 flags, HV *typestash, HV *ourstash)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_PAD_ALLOC_NAME \
- assert(namesv)
+ assert(name)
-STATIC void S_pad_check_dup(pTHX_ SV *name, U32 flags, const HV *ourstash)
+STATIC void S_pad_check_dup(pTHX_ PADNAME *name, U32 flags, const HV *ourstash)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_PAD_CHECK_DUP \
assert(name)
-STATIC PADOFFSET S_pad_findlex(pTHX_ const char *namepv, STRLEN namelen, U32 flags, const CV* cv, U32 seq, int warn, SV** out_capture, SV** out_name_sv, int *out_flags)
+STATIC PADOFFSET S_pad_findlex(pTHX_ const char *namepv, STRLEN namelen, U32 flags, const CV* cv, U32 seq, int warn, SV** out_capture, PADNAME** out_name, int *out_flags)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_4)
__attribute__nonnull__(pTHX_8)
__attribute__nonnull__(pTHX_9);
#define PERL_ARGS_ASSERT_PAD_FINDLEX \
- assert(namepv); assert(cv); assert(out_name_sv); assert(out_flags)
+ assert(namepv); assert(cv); assert(out_name); assert(out_flags)
STATIC void S_pad_reset(pTHX);
#endif
@@ -6323,7 +6546,7 @@ PERL_STATIC_NO_RET void S_usage(pTHX)
#endif
#if defined(PERL_IN_PP_C)
-STATIC void S_do_chomp(pTHX_ SV *retval, SV *sv, bool chomping)
+STATIC size_t S_do_chomp(pTHX_ SV *retval, SV *sv, bool chomping)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_DO_CHOMP \
@@ -6348,13 +6571,6 @@ PERL_CALLCONV GV* Perl_softref2xv(pTHX_ SV *const sv, const char *const what, co
#endif
#if defined(PERL_IN_PP_CTL_C)
-STATIC SV ** S_adjust_stack_on_leave(pTHX_ SV **newsp, SV **sp, SV **mark, I32 gimme, U32 flags, bool lvalue)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_ADJUST_STACK_ON_LEAVE \
- assert(newsp); assert(sp); assert(mark)
-
STATIC PerlIO * S_check_type_and_open(pTHX_ SV *name)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
@@ -6409,6 +6625,13 @@ STATIC I32 S_dopoptosub_at(pTHX_ const PERL_CONTEXT* cxstk, I32 startingblock)
STATIC I32 S_dopoptowhen(pTHX_ I32 startingblock)
__attribute__warn_unused_result__;
+STATIC SV ** S_leave_common(pTHX_ SV **newsp, SV **sp, SV **mark, I32 gimme, U32 flags, bool lvalue)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_LEAVE_COMMON \
+ assert(newsp); assert(sp); assert(mark)
+
STATIC PMOP* S_make_matcher(pTHX_ REGEXP* re)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
@@ -6461,21 +6684,13 @@ STATIC void S_do_oddball(pTHX_ SV **oddkey, SV **firstkey)
#define PERL_ARGS_ASSERT_DO_ODDBALL \
assert(oddkey); assert(firstkey)
-STATIC SV* S_method_common(pTHX_ SV* meth, U32* hashp)
- __attribute__warn_unused_result__
+PERL_STATIC_INLINE HV* S_opmethod_stash(pTHX_ SV* meth)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_METHOD_COMMON \
+#define PERL_ARGS_ASSERT_OPMETHOD_STASH \
assert(meth)
#endif
#if defined(PERL_IN_PP_PACK_C)
-STATIC char * S_bytes_to_uni(const U8 *start, STRLEN len, char *dest, const bool needs_swap)
- __attribute__warn_unused_result__
- __attribute__nonnull__(1)
- __attribute__nonnull__(3);
-#define PERL_ARGS_ASSERT_BYTES_TO_UNI \
- assert(start); assert(dest)
-
STATIC int S_div128(pTHX_ SV *pnum, bool *done)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -6517,6 +6732,13 @@ STATIC SV* S_mul128(pTHX_ SV *sv, U8 m)
#define PERL_ARGS_ASSERT_MUL128 \
assert(sv)
+STATIC char * S_my_bytes_to_utf8(const U8 *start, STRLEN len, char *dest, const bool needs_swap)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+#define PERL_ARGS_ASSERT_MY_BYTES_TO_UTF8 \
+ assert(start); assert(dest)
+
STATIC bool S_need_utf8(const char *pat, const char *patend)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -6558,12 +6780,6 @@ STATIC I32 S_amagic_cmp(pTHX_ SV *const str1, SV *const str2)
#define PERL_ARGS_ASSERT_AMAGIC_CMP \
assert(str1); assert(str2)
-STATIC I32 S_amagic_cmp_locale(pTHX_ SV *const str1, SV *const str2)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE \
- assert(str1); assert(str2)
-
STATIC I32 S_amagic_i_ncmp(pTHX_ SV *const a, SV *const b)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -6611,6 +6827,14 @@ STATIC I32 S_sv_ncmp(pTHX_ SV *const a, SV *const b)
#define PERL_ARGS_ASSERT_SV_NCMP \
assert(a); assert(b)
+# if defined(USE_LOCALE_COLLATE)
+STATIC I32 S_amagic_cmp_locale(pTHX_ SV *const str1, SV *const str2)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE \
+ assert(str1); assert(str2)
+
+# endif
#endif
#if defined(PERL_IN_PP_SYS_C)
STATIC OP* S_doform(pTHX_ CV *cv, GV *gv, OP *retop)
@@ -6631,12 +6855,25 @@ STATIC void S__append_range_to_invlist(pTHX_ SV* const invlist, const UV start,
#define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST \
assert(invlist)
-PERL_STATIC_INLINE UV* S__invlist_array_init(pTHX_ SV* const invlist, const bool will_have_0)
+PERL_STATIC_INLINE UV* S__invlist_array_init(SV* const invlist, const bool will_have_0)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT \
assert(invlist)
+STATIC SV* S__make_exactf_invlist(pTHX_ RExC_state_t *pRExC_state, regnode *node)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT__MAKE_EXACTF_INVLIST \
+ assert(pRExC_state); assert(node)
+
+STATIC void S_add_above_Latin1_folds(pTHX_ RExC_state_t *pRExC_state, const U8 cp, SV** invlist)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_ADD_ABOVE_LATIN1_FOLDS \
+ assert(pRExC_state); assert(invlist)
+
PERL_STATIC_INLINE SV* S_add_cp_to_invlist(pTHX_ SV* invlist, const UV cp)
__attribute__warn_unused_result__;
@@ -6647,6 +6884,11 @@ STATIC U32 S_add_data(RExC_state_t* const pRExC_state, const char* const s, cons
#define PERL_ARGS_ASSERT_ADD_DATA \
assert(pRExC_state); assert(s)
+STATIC AV* S_add_multi_match(pTHX_ AV* multi_char_matches, SV* multi_string, const STRLEN cp_count)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_ADD_MULTI_MATCH \
+ assert(multi_string)
+
PERL_STATIC_INLINE void S_alloc_maybe_populate_EXACT(pTHX_ RExC_state_t *pRExC_state, regnode *node, I32 *flagp, STRLEN len, UV code_point, bool downgradable)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -6654,13 +6896,22 @@ PERL_STATIC_INLINE void S_alloc_maybe_populate_EXACT(pTHX_ RExC_state_t *pRExC_s
#define PERL_ARGS_ASSERT_ALLOC_MAYBE_POPULATE_EXACT \
assert(pRExC_state); assert(node); assert(flagp)
-PERL_STATIC_INLINE U8 S_compute_EXACTish(pTHX_ RExC_state_t *pRExC_state)
- __attribute__nonnull__(pTHX_1);
+STATIC const char * S_cntrl_to_mnemonic(const U8 c)
+ __attribute__pure__;
+
+PERL_STATIC_INLINE U8 S_compute_EXACTish(RExC_state_t *pRExC_state)
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_COMPUTE_EXACTISH \
assert(pRExC_state)
-STATIC bool S_could_it_be_a_POSIX_class(pTHX_ RExC_state_t *pRExC_state)
- __attribute__nonnull__(pTHX_1);
+STATIC regnode * S_construct_ahocorasick_from_trie(pTHX_ RExC_state_t *pRExC_state, regnode *source, U32 depth)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE \
+ assert(pRExC_state); assert(source)
+
+STATIC bool S_could_it_be_a_POSIX_class(RExC_state_t *pRExC_state)
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_COULD_IT_BE_A_POSIX_CLASS \
assert(pRExC_state)
@@ -6670,21 +6921,15 @@ STATIC SV* S_get_ANYOF_cp_list_for_ssc(pTHX_ const RExC_state_t *pRExC_state, co
#define PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC \
assert(pRExC_state); assert(node)
-PERL_STATIC_INLINE STRLEN* S_get_invlist_iter_addr(pTHX_ SV* invlist)
+PERL_STATIC_INLINE STRLEN* S_get_invlist_iter_addr(SV* invlist)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR \
assert(invlist)
-PERL_STATIC_INLINE IV* S_get_invlist_previous_index_addr(pTHX_ SV* invlist)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR \
- assert(invlist)
-
-STATIC bool S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** nodep, UV *valuep, I32 *flagp, U32 depth, bool in_char_class, const bool strict)
+STATIC bool S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** nodep, UV *code_point_p, int* cp_count, I32 *flagp, const U32 depth)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_4);
+ __attribute__nonnull__(pTHX_5);
#define PERL_ARGS_ASSERT_GROK_BSLASH_N \
assert(pRExC_state); assert(flagp)
@@ -6695,12 +6940,6 @@ STATIC regnode* S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV ** retur
#define PERL_ARGS_ASSERT_HANDLE_REGEX_SETS \
assert(pRExC_state); assert(flagp); assert(oregcomp_parse)
-PERL_STATIC_INLINE UV* S_invlist_array(pTHX_ SV* const invlist)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_INVLIST_ARRAY \
- assert(invlist)
-
PERL_STATIC_INLINE SV* S_invlist_clone(pTHX_ SV* const invlist)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
@@ -6712,62 +6951,46 @@ STATIC void S_invlist_extend(pTHX_ SV* const invlist, const UV len)
#define PERL_ARGS_ASSERT_INVLIST_EXTEND \
assert(invlist)
-PERL_STATIC_INLINE UV S_invlist_highest(pTHX_ SV* const invlist)
+PERL_STATIC_INLINE UV S_invlist_highest(SV* const invlist)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_INVLIST_HIGHEST \
assert(invlist)
-PERL_STATIC_INLINE bool S_invlist_is_iterating(pTHX_ SV* const invlist)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_INVLIST_IS_ITERATING \
- assert(invlist)
-
-PERL_STATIC_INLINE void S_invlist_iterfinish(pTHX_ SV* invlist)
- __attribute__nonnull__(pTHX_1);
+PERL_STATIC_INLINE void S_invlist_iterfinish(SV* invlist)
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_INVLIST_ITERFINISH \
assert(invlist)
-PERL_STATIC_INLINE void S_invlist_iterinit(pTHX_ SV* invlist)
- __attribute__nonnull__(pTHX_1);
+PERL_STATIC_INLINE void S_invlist_iterinit(SV* invlist)
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_INVLIST_ITERINIT \
assert(invlist)
-STATIC bool S_invlist_iternext(pTHX_ SV* invlist, UV* start, UV* end)
+STATIC bool S_invlist_iternext(SV* invlist, UV* start, UV* end)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
#define PERL_ARGS_ASSERT_INVLIST_ITERNEXT \
assert(invlist); assert(start); assert(end)
-PERL_STATIC_INLINE UV S_invlist_max(pTHX_ SV* const invlist)
+PERL_STATIC_INLINE UV S_invlist_max(SV* const invlist)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_INVLIST_MAX \
assert(invlist)
-PERL_STATIC_INLINE IV S_invlist_previous_index(pTHX_ SV* const invlist)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX \
- assert(invlist)
-
PERL_STATIC_INLINE void S_invlist_set_len(pTHX_ SV* const invlist, const UV len, const bool offset)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_INVLIST_SET_LEN \
assert(invlist)
-PERL_STATIC_INLINE void S_invlist_set_previous_index(pTHX_ SV* const invlist, const IV index)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX \
- assert(invlist)
-
-PERL_STATIC_INLINE void S_invlist_trim(pTHX_ SV* const invlist)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_INVLIST_TRIM \
- assert(invlist)
+STATIC bool S_is_ssc_worth_it(const RExC_state_t * pRExC_state, const regnode_ssc * ssc)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_IS_SSC_WORTH_IT \
+ assert(pRExC_state); assert(ssc)
STATIC U32 S_join_exact(pTHX_ RExC_state_t *pRExC_state, regnode *scan, UV *min_subtract, bool *unfolded_multi_char, U32 flags, regnode *val, U32 depth)
__attribute__nonnull__(pTHX_1)
@@ -6786,13 +7009,6 @@ STATIC I32 S_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch, re
#define PERL_ARGS_ASSERT_MAKE_TRIE \
assert(pRExC_state); assert(startbranch); assert(first); assert(last); assert(tail)
-STATIC void S_make_trie_failtable(pTHX_ RExC_state_t *pRExC_state, regnode *source, regnode *stclass, U32 depth)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_MAKE_TRIE_FAILTABLE \
- assert(pRExC_state); assert(source); assert(stclass)
-
STATIC char * S_nextchar(pTHX_ RExC_state_t *pRExC_state)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_NEXTCHAR \
@@ -6822,6 +7038,11 @@ STATIC regnode* S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U3
#define PERL_ARGS_ASSERT_REG \
assert(pRExC_state); assert(flagp)
+STATIC regnode* S_reg2Lanode(pTHX_ RExC_state_t *pRExC_state, const U8 op, const U32 arg1, const I32 arg2)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_REG2LANODE \
+ assert(pRExC_state)
+
STATIC regnode* S_reg_node(pTHX_ RExC_state_t *pRExC_state, U8 op)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_REG_NODE \
@@ -6837,10 +7058,11 @@ STATIC SV * S_reg_scan_name(pTHX_ RExC_state_t *pRExC_state, U32 flags)
#define PERL_ARGS_ASSERT_REG_SCAN_NAME \
assert(pRExC_state)
-STATIC bool S_reg_skipcomment(pTHX_ RExC_state_t *pRExC_state)
- __attribute__nonnull__(pTHX_1);
+PERL_STATIC_INLINE char * S_reg_skipcomment(RExC_state_t *pRExC_state, char * p)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
#define PERL_ARGS_ASSERT_REG_SKIPCOMMENT \
- assert(pRExC_state)
+ assert(pRExC_state); assert(p)
STATIC regnode* S_reganode(pTHX_ RExC_state_t *pRExC_state, U8 op, U32 arg)
__attribute__nonnull__(pTHX_1);
@@ -6859,18 +7081,27 @@ STATIC regnode* S_regbranch(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, I32 fir
#define PERL_ARGS_ASSERT_REGBRANCH \
assert(pRExC_state); assert(flagp)
-STATIC regnode* S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth, const bool stop_at_1, bool allow_multi_fold, const bool silence_non_portable, SV** ret_invlist)
+STATIC regnode* S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth, const bool stop_at_1, bool allow_multi_fold, const bool silence_non_portable, const bool strict, SV** ret_invlist)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_REGCLASS \
assert(pRExC_state); assert(flagp)
+STATIC unsigned int S_regex_set_precedence(const U8 my_operator)
+ __attribute__pure__;
+
STATIC void S_reginsert(pTHX_ RExC_state_t *pRExC_state, U8 op, regnode *opnd, U32 depth)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_3);
#define PERL_ARGS_ASSERT_REGINSERT \
assert(pRExC_state); assert(opnd)
+STATIC regnode* S_regnode_guts(pTHX_ RExC_state_t *pRExC_state, const U8 op, const STRLEN extra_len, const char* const name)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_REGNODE_GUTS \
+ assert(pRExC_state); assert(name)
+
STATIC char * S_regpatws(RExC_state_t *pRExC_state, char *p, const bool recognize_comment)
__attribute__warn_unused_result__
__attribute__nonnull__(1)
@@ -6896,19 +7127,6 @@ STATIC void S_regtail(pTHX_ RExC_state_t *pRExC_state, regnode *p, const regnode
#define PERL_ARGS_ASSERT_REGTAIL \
assert(pRExC_state); assert(p); assert(val)
-PERL_STATIC_INLINE STRLEN S_reguni(pTHX_ const RExC_state_t *pRExC_state, UV uv, char *s)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_REGUNI \
- assert(pRExC_state); assert(s)
-
-STATIC char * S_regwhite(RExC_state_t *pRExC_state, char *p)
- __attribute__warn_unused_result__
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_REGWHITE \
- assert(pRExC_state); assert(p)
-
STATIC void S_scan_commit(pTHX_ const RExC_state_t *pRExC_state, struct scan_data_t *data, SSize_t *minlenp, int is_inf)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -6939,8 +7157,8 @@ STATIC void S_ssc_anything(pTHX_ regnode_ssc *ssc)
#define PERL_ARGS_ASSERT_SSC_ANYTHING \
assert(ssc)
-PERL_STATIC_INLINE void S_ssc_clear_locale(pTHX_ regnode_ssc *ssc)
- __attribute__nonnull__(pTHX_1);
+PERL_STATIC_INLINE void S_ssc_clear_locale(regnode_ssc *ssc)
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE \
assert(ssc)
@@ -6967,16 +7185,16 @@ PERL_STATIC_INLINE void S_ssc_intersection(pTHX_ regnode_ssc *ssc, SV* const inv
#define PERL_ARGS_ASSERT_SSC_INTERSECTION \
assert(ssc); assert(invlist)
-STATIC int S_ssc_is_anything(pTHX_ const regnode_ssc *ssc)
+STATIC int S_ssc_is_anything(const regnode_ssc *ssc)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_SSC_IS_ANYTHING \
assert(ssc)
-STATIC int S_ssc_is_cp_posixl_init(pTHX_ const RExC_state_t *pRExC_state, const regnode_ssc *ssc)
+STATIC int S_ssc_is_cp_posixl_init(const RExC_state_t *pRExC_state, const regnode_ssc *ssc)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
#define PERL_ARGS_ASSERT_SSC_IS_CP_POSIXL_INIT \
assert(pRExC_state); assert(ssc)
@@ -7021,11 +7239,18 @@ PERL_CALLCONV SV* Perl__new_invlist_C_array(pTHX_ const UV* const list)
#endif
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-PERL_CALLCONV SV* Perl__get_regclass_nonbitmap_data(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **lonly_utf8_locale)
+PERL_CALLCONV SV* Perl__get_regclass_nonbitmap_data(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **lonly_utf8_locale, SV *exclude_list)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT__GET_REGCLASS_NONBITMAP_DATA \
assert(node)
+PERL_CALLCONV void Perl__load_PL_utf8_foldclosures(pTHX);
+PERL_CALLCONV void Perl_regprop(pTHX_ const regexp *prog, SV* sv, const regnode* o, const regmatch_info *reginfo, const RExC_state_t *pRExC_state)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_REGPROP \
+ assert(sv); assert(o)
+
#endif
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
PERL_CALLCONV SV* Perl__get_swash_invlist(pTHX_ SV* const swash)
@@ -7034,9 +7259,9 @@ PERL_CALLCONV SV* Perl__get_swash_invlist(pTHX_ SV* const swash)
#define PERL_ARGS_ASSERT__GET_SWASH_INVLIST \
assert(swash)
-PERL_STATIC_INLINE bool S__invlist_contains_cp(pTHX_ SV* const invlist, const UV cp)
+PERL_STATIC_INLINE bool S__invlist_contains_cp(SV* const invlist, const UV cp)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT__INVLIST_CONTAINS_CP \
assert(invlist)
@@ -7046,15 +7271,15 @@ PERL_CALLCONV SV* Perl__invlist_contents(pTHX_ SV* const invlist)
#define PERL_ARGS_ASSERT__INVLIST_CONTENTS \
assert(invlist)
-PERL_STATIC_INLINE UV S__invlist_len(pTHX_ SV* const invlist)
+PERL_STATIC_INLINE UV S__invlist_len(SV* const invlist)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT__INVLIST_LEN \
assert(invlist)
-PERL_CALLCONV IV Perl__invlist_search(pTHX_ SV* const invlist, const UV cp)
+PERL_CALLCONV IV Perl__invlist_search(SV* const invlist, const UV cp)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT__INVLIST_SEARCH \
assert(invlist)
@@ -7064,12 +7289,18 @@ PERL_CALLCONV HV* Perl__swash_inversion_hash(pTHX_ SV* const swash)
#define PERL_ARGS_ASSERT__SWASH_INVERSION_HASH \
assert(swash)
-PERL_STATIC_INLINE bool* S_get_invlist_offset_addr(pTHX_ SV* invlist)
+PERL_STATIC_INLINE bool* S_get_invlist_offset_addr(SV* invlist)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR \
assert(invlist)
+PERL_STATIC_INLINE UV* S_invlist_array(SV* const invlist)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_INVLIST_ARRAY \
+ assert(invlist)
+
#endif
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_TOKE_C)
PERL_CALLCONV SV* Perl__core_swash_init(pTHX_ const char* pkg, const char* name, SV* listsv, I32 minbits, I32 none, SV* invlist, U8* const flags_p)
@@ -7107,10 +7338,10 @@ PERL_STATIC_INLINE bool S_grok_bslash_x(pTHX_ char** s, UV* uv, const char** err
#define PERL_ARGS_ASSERT_GROK_BSLASH_X \
assert(s); assert(uv); assert(error_msg)
-PERL_STATIC_INLINE I32 S_regcurly(pTHX_ const char *s, const bool rbrace_must_be_escaped)
+PERL_STATIC_INLINE I32 S_regcurly(const char *s)
__attribute__warn_unused_result__
__attribute__pure__
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(1);
#define PERL_ARGS_ASSERT_REGCURLY \
assert(s)
@@ -7135,9 +7366,9 @@ PERL_CALLCONV void Perl__invlist_invert(pTHX_ SV* const invlist)
#define PERL_ARGS_ASSERT__INVLIST_INVERT \
assert(invlist)
-PERL_CALLCONV void Perl__invlist_populate_swatch(pTHX_ SV* const invlist, const UV start, const UV end, U8* swatch)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_4);
+PERL_CALLCONV void Perl__invlist_populate_swatch(SV* const invlist, const UV start, const UV end, U8* swatch)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(4);
#define PERL_ARGS_ASSERT__INVLIST_POPULATE_SWATCH \
assert(invlist); assert(swatch)
@@ -7173,6 +7404,35 @@ PERL_CALLCONV SV* Perl__swash_to_invlist(pTHX_ SV* const swash)
#endif
#if defined(PERL_IN_REGEXEC_C)
+STATIC SB_enum S_advance_one_SB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_ADVANCE_ONE_SB \
+ assert(curpos); assert(strend)
+
+STATIC WB_enum S_advance_one_WB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_ADVANCE_ONE_WB \
+ assert(curpos); assert(strend)
+
+STATIC SB_enum S_backup_one_SB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_BACKUP_ONE_SB \
+ assert(strbeg); assert(curpos)
+
+STATIC WB_enum S_backup_one_WB(pTHX_ WB_enum * previous, const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_BACKUP_ONE_WB \
+ assert(previous); assert(strbeg); assert(curpos)
+
STATIC char* S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, const char *strend, regmatch_info *reginfo)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
@@ -7191,10 +7451,29 @@ STATIC bool S_isFOO_utf8_lc(pTHX_ const U8 classnum, const U8* character)
#define PERL_ARGS_ASSERT_ISFOO_UTF8_LC \
assert(character)
-STATIC I32 S_reg_check_named_buff_matched(pTHX_ const regexp *rex, const regnode *scan)
+STATIC bool S_isGCB(const GCB_enum before, const GCB_enum after)
+ __attribute__warn_unused_result__;
+
+STATIC bool S_isSB(pTHX_ SB_enum before, SB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4)
+ __attribute__nonnull__(pTHX_5);
+#define PERL_ARGS_ASSERT_ISSB \
+ assert(strbeg); assert(curpos); assert(strend)
+
+STATIC bool S_isWB(pTHX_ WB_enum previous, WB_enum before, WB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_4)
+ __attribute__nonnull__(pTHX_5)
+ __attribute__nonnull__(pTHX_6);
+#define PERL_ARGS_ASSERT_ISWB \
+ assert(strbeg); assert(curpos); assert(strend)
+
+STATIC I32 S_reg_check_named_buff_matched(const regexp *rex, const regnode *scan)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
#define PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED \
assert(rex); assert(scan)
@@ -7322,7 +7601,11 @@ STATIC SV * S_find_hash_subscript(pTHX_ const HV *const hv, const SV *const val)
#define PERL_ARGS_ASSERT_FIND_HASH_SUBSCRIPT \
assert(val)
-STATIC SV* S_find_uninit_var(pTHX_ const OP *const obase, const SV *const uninit_sv, bool top);
+STATIC SV* S_find_uninit_var(pTHX_ const OP *const obase, const SV *const uninit_sv, bool match, const char **desc_p)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_FIND_UNINIT_VAR \
+ assert(desc_p)
+
STATIC bool S_glob_2number(pTHX_ GV* const gv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_GLOB_2NUMBER \
@@ -7334,18 +7617,17 @@ STATIC void S_glob_assign_glob(pTHX_ SV *const dstr, SV *const sstr, const int d
#define PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB \
assert(dstr); assert(sstr)
-STATIC void S_glob_assign_ref(pTHX_ SV *const dstr, SV *const sstr)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_GLOB_ASSIGN_REF \
- assert(dstr); assert(sstr)
-
STATIC SV * S_more_sv(pTHX);
STATIC void S_not_a_number(pTHX_ SV *const sv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_NOT_A_NUMBER \
assert(sv)
+STATIC void S_not_incrementable(pTHX_ SV *const sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_NOT_INCREMENTABLE \
+ assert(sv)
+
STATIC PTR_TBL_ENT_t * S_ptr_table_find(PTR_TBL_t *const tbl, const void *const sv)
__attribute__warn_unused_result__
__attribute__nonnull__(1);
@@ -7362,6 +7644,12 @@ STATIC void S_sv_add_arena(pTHX_ char *const ptr, const U32 size, const U32 flag
#define PERL_ARGS_ASSERT_SV_ADD_ARENA \
assert(ptr)
+STATIC const char * S_sv_display(pTHX_ SV *const sv, char *tmpbuf, STRLEN tmpbuf_size)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_DISPLAY \
+ assert(sv); assert(tmpbuf)
+
STATIC STRLEN S_sv_pos_b2u_midway(pTHX_ const U8 *const s, const U8 *const target, const U8 *end, STRLEN endu)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -7513,7 +7801,7 @@ STATIC void S_incline(pTHX_ const char *s)
#define PERL_ARGS_ASSERT_INCLINE \
assert(s)
-STATIC int S_intuit_method(pTHX_ char *s, GV *gv, CV *cv)
+STATIC int S_intuit_method(pTHX_ char *s, SV *ioname, CV *cv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_INTUIT_METHOD \
assert(s)
@@ -7586,7 +7874,7 @@ STATIC char* S_scan_pat(pTHX_ char *start, I32 type)
#define PERL_ARGS_ASSERT_SCAN_PAT \
assert(start)
-STATIC char* S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse, bool deprecate_escaped_matching, char **delimp)
+STATIC char* S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse, char **delimp)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SCAN_STR \
@@ -7649,25 +7937,6 @@ STATIC int S_yywarn(pTHX_ const char *const s, U32 flags)
#define PERL_ARGS_ASSERT_YYWARN \
assert(s)
-# if defined(PERL_MAD)
-STATIC void S_curmad(pTHX_ char slot, SV *sv);
-STATIC char* S_skipspace0(pTHX_ char *s)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SKIPSPACE0 \
- assert(s)
-
-STATIC char* S_skipspace1(pTHX_ char *s)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SKIPSPACE1 \
- assert(s)
-
-STATIC char* S_skipspace2(pTHX_ char *s, SV **sv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SKIPSPACE2 \
- assert(s)
-
-STATIC void S_start_force(pTHX_ int where);
-# endif
#endif
#if defined(PERL_IN_UNIVERSAL_C)
STATIC bool S_isa_lookup(pTHX_ HV *stash, const char * const name, STRLEN len, U32 flags)
@@ -7686,12 +7955,6 @@ STATIC UV S_check_locale_boundary_crossing(pTHX_ const U8* const p, const UV res
#define PERL_ARGS_ASSERT_CHECK_LOCALE_BOUNDARY_CROSSING \
assert(p); assert(ustrp); assert(lenp)
-PERL_STATIC_INLINE STRLEN S_is_utf8_char_slow(const U8 *s, const STRLEN len)
- __attribute__warn_unused_result__
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_IS_UTF8_CHAR_SLOW \
- assert(s)
-
PERL_STATIC_INLINE bool S_is_utf8_common(pTHX_ const U8 *const p, SV **swash, const char * const swashname, SV* const invlist)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
@@ -7700,13 +7963,24 @@ PERL_STATIC_INLINE bool S_is_utf8_common(pTHX_ const U8 *const p, SV **swash, co
#define PERL_ARGS_ASSERT_IS_UTF8_COMMON \
assert(p); assert(swash); assert(swashname)
+STATIC U8* S_swash_scan_list_line(pTHX_ U8* l, U8* const lend, UV* min, UV* max, UV* val, const bool wants_value, const U8* const typestr)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4)
+ __attribute__nonnull__(pTHX_5)
+ __attribute__nonnull__(pTHX_7);
+#define PERL_ARGS_ASSERT_SWASH_SCAN_LIST_LINE \
+ assert(l); assert(lend); assert(min); assert(max); assert(val); assert(typestr)
+
STATIC SV* S_swatch_get(pTHX_ SV* swash, UV start, UV span)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SWATCH_GET \
assert(swash)
-STATIC U8 S_to_lower_latin1(pTHX_ const U8 c, U8 *p, STRLEN *lenp)
+STATIC U8 S_to_lower_latin1(const U8 c, U8 *p, STRLEN *lenp)
__attribute__warn_unused_result__;
#endif
@@ -7735,6 +8009,11 @@ STATIC SV * S_with_queued_errors(pTHX_ SV *ex)
#define PERL_ARGS_ASSERT_WITH_QUEUED_ERRORS \
assert(ex)
+STATIC void S_xs_version_bootcheck(pTHX_ U32 items, U32 ax, const char *xs_p, STRLEN xs_len)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_XS_VERSION_BOOTCHECK \
+ assert(xs_p)
+
# if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
STATIC void S_mem_log_common(enum mem_log_type mlt, const UV n, const UV typesize, const char *type_name, const SV *sv, Malloc_t oldalloc, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname)
__attribute__nonnull__(4)
@@ -7745,127 +8024,11 @@ STATIC void S_mem_log_common(enum mem_log_type mlt, const UV n, const UV typesiz
# endif
#endif
-#if defined(PERL_MAD)
-PERL_CALLCONV void Perl_addmad(pTHX_ MADPROP* tm, MADPROP** root, char slot);
-PERL_CALLCONV void Perl_append_madprops(pTHX_ MADPROP* tm, OP* o, char slot);
-PERL_CALLCONV void Perl_do_op_xmldump(pTHX_ I32 level, PerlIO *file, const OP *o)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_OP_XMLDUMP \
- assert(file)
-
-PERL_CALLCONV void Perl_do_pmop_xmldump(pTHX_ I32 level, PerlIO *file, const PMOP *pm)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_PMOP_XMLDUMP \
- assert(file)
-
-PERL_CALLCONV void Perl_mad_free(pTHX_ MADPROP* mp);
-PERL_CALLCONV int Perl_madlex(pTHX);
-PERL_CALLCONV int Perl_madparse(pTHX_ int gramtype);
-PERL_CALLCONV OP* Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
-PERL_CALLCONV MADPROP* Perl_newMADPROP(pTHX_ char key, char type, void* val, I32 vlen);
-PERL_CALLCONV MADPROP* Perl_newMADsv(pTHX_ char key, SV* sv)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_NEWMADSV \
- assert(sv)
-
-PERL_CALLCONV TOKEN* Perl_newTOKEN(pTHX_ I32 optype, YYSTYPE lval, MADPROP* madprop);
-PERL_CALLCONV void Perl_op_getmad(pTHX_ OP* from, OP* o, char slot);
-PERL_CALLCONV void Perl_op_getmad_weak(pTHX_ OP* from, OP* o, char slot);
-PERL_CALLCONV void Perl_op_xmldump(pTHX_ const OP *o)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_OP_XMLDUMP \
- assert(o)
-
-PERL_CALLCONV OP* Perl_package(pTHX_ OP* o)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PACKAGE \
- assert(o)
-
-PERL_CALLCONV void Perl_pad_peg(const char* s)
+#if defined(PERL_OP_PARENT)
+PERL_CALLCONV OP* Perl_op_parent(OP *o)
__attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_PAD_PEG \
- assert(s)
-
-PERL_CALLCONV void Perl_pmop_xmldump(pTHX_ const PMOP* pm);
-PERL_CALLCONV void Perl_prepend_madprops(pTHX_ MADPROP* mp, OP* o, char slot);
-PERL_CALLCONV char* Perl_sv_catxmlpv(pTHX_ SV *dsv, const char *pv, int utf8)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_CATXMLPV \
- assert(dsv); assert(pv)
-
-PERL_CALLCONV char* Perl_sv_catxmlpvn(pTHX_ SV *dsv, const char *pv, STRLEN len, int utf8)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_CATXMLPVN \
- assert(dsv); assert(pv)
-
-PERL_CALLCONV char* Perl_sv_catxmlsv(pTHX_ SV *dsv, SV *ssv)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_CATXMLSV \
- assert(dsv); assert(ssv)
-
-PERL_CALLCONV char* Perl_sv_xmlpeek(pTHX_ SV* sv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_XMLPEEK \
- assert(sv)
-
-PERL_CALLCONV void Perl_token_free(pTHX_ TOKEN *tk)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_TOKEN_FREE \
- assert(tk)
-
-PERL_CALLCONV void Perl_token_getmad(pTHX_ TOKEN *tk, OP *o, char slot)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_TOKEN_GETMAD \
- assert(tk)
-
-PERL_CALLCONV OP * Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg)
- __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_UTILIZE \
- assert(idop)
-
-PERL_CALLCONV void Perl_xmldump_all(pTHX);
-PERL_CALLCONV void Perl_xmldump_all_perl(pTHX_ bool justperl);
-PERL_CALLCONV void Perl_xmldump_eval(pTHX);
-PERL_CALLCONV void Perl_xmldump_form(pTHX_ const GV* gv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_FORM \
- assert(gv)
-
-PERL_CALLCONV void Perl_xmldump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
- __attribute__format__(__printf__,pTHX_3,pTHX_4)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_XMLDUMP_INDENT \
- assert(file); assert(pat)
-
-PERL_CALLCONV void Perl_xmldump_packsubs(pTHX_ const HV* stash)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS \
- assert(stash)
-
-PERL_CALLCONV void Perl_xmldump_packsubs_perl(pTHX_ const HV* stash, bool justperl)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS_PERL \
- assert(stash)
-
-PERL_CALLCONV void Perl_xmldump_sub(pTHX_ const GV* gv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_SUB \
- assert(gv)
-
-PERL_CALLCONV void Perl_xmldump_sub_perl(pTHX_ const GV* gv, bool justperl)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_SUB_PERL \
- assert(gv)
-
-PERL_CALLCONV void Perl_xmldump_vindent(pTHX_ I32 level, PerlIO *file, const char* pat, va_list *args)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_XMLDUMP_VINDENT \
- assert(file); assert(pat)
+#define PERL_ARGS_ASSERT_OP_PARENT \
+ assert(o)
#endif
#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
@@ -7878,6 +8041,18 @@ PERL_CALLCONV I32 Perl_unlnk(pTHX_ const char* f)
assert(f)
#endif
+#if defined(USE_C_BACKTRACE)
+PERL_CALLCONV bool Perl_dump_c_backtrace(pTHX_ PerlIO* fp, int max_depth, int skip)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DUMP_C_BACKTRACE \
+ assert(fp)
+
+/* PERL_CALLCONV void free_c_backtrace(pTHX_ Perl_c_backtrace* bt)
+ __attribute__nonnull__(pTHX_1); */
+
+PERL_CALLCONV Perl_c_backtrace* Perl_get_c_backtrace(pTHX_ int max_depth, int skip);
+PERL_CALLCONV SV* Perl_get_c_backtrace_dump(pTHX_ int max_depth, int skip);
+#endif
#if defined(USE_ITHREADS)
PERL_CALLCONV PADOFFSET Perl_alloccopstash(pTHX_ HV *hv)
__attribute__nonnull__(pTHX_1);
@@ -7959,9 +8134,24 @@ PERL_CALLCONV OP* Perl_newPADOP(pTHX_ I32 type, I32 flags, SV* sv)
PERL_CALLCONV PADLIST * Perl_padlist_dup(pTHX_ PADLIST *srcpad, CLONE_PARAMS *param)
__attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_PADLIST_DUP \
- assert(param)
+ assert(srcpad); assert(param)
+
+PERL_CALLCONV PADNAME * Perl_padname_dup(pTHX_ PADNAME *src, CLONE_PARAMS *param)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_PADNAME_DUP \
+ assert(src); assert(param)
+
+PERL_CALLCONV PADNAMELIST * Perl_padnamelist_dup(pTHX_ PADNAMELIST *srcpad, CLONE_PARAMS *param)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_PADNAMELIST_DUP \
+ assert(srcpad); assert(param)
PERL_CALLCONV yy_parser* Perl_parser_dup(pTHX_ const yy_parser *const proto, CLONE_PARAMS *const param)
__attribute__nonnull__(pTHX_2);
@@ -8020,6 +8210,16 @@ PERL_CALLCONV SV* Perl_sv_dup_inc(pTHX_ const SV *const sstr, CLONE_PARAMS *cons
assert(param)
#endif
+#if defined(USE_LOCALE) && (defined(PERL_IN_LOCALE_C) || defined (PERL_EXT_POSIX))
+PERL_CALLCONV bool Perl__is_cur_LC_category_utf8(pTHX_ int category);
+#endif
+#if defined(USE_LOCALE) && defined(PERL_IN_LOCALE_C)
+STATIC char* S_stdize_locale(pTHX_ char* locs)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_STDIZE_LOCALE \
+ assert(locs)
+
+#endif
#if defined(USE_LOCALE_COLLATE)
PERL_CALLCONV int Perl_magic_setcollxfrm(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
@@ -8065,6 +8265,8 @@ PERL_CALLCONV SSize_t Perl_PerlIO_read(pTHX_ PerlIO *f, void *vbuf, Size_t count
#define PERL_ARGS_ASSERT_PERLIO_READ \
assert(vbuf)
+PERL_CALLCONV void Perl_PerlIO_restore_errno(pTHX_ PerlIO *f);
+PERL_CALLCONV void Perl_PerlIO_save_errno(pTHX_ PerlIO *f);
PERL_CALLCONV int Perl_PerlIO_seek(pTHX_ PerlIO *f, Off_t offset, int whence);
PERL_CALLCONV void Perl_PerlIO_set_cnt(pTHX_ PerlIO *f, SSize_t cnt);
PERL_CALLCONV void Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR *ptr, SSize_t cnt);
@@ -8090,6 +8292,18 @@ PERL_CALLCONV SSize_t Perl_PerlIO_write(pTHX_ PerlIO *f, const void *vbuf, Size_
assert(vbuf)
#endif
+#if defined(USE_QUADMATH)
+PERL_CALLCONV bool Perl_quadmath_format_needed(const char* format)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_QUADMATH_FORMAT_NEEDED \
+ assert(format)
+
+PERL_CALLCONV const char* Perl_quadmath_format_single(const char* format)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_QUADMATH_FORMAT_SINGLE \
+ assert(format)
+
+#endif
#if defined(WIN32)
PERL_CALLCONV char* Perl_my_setlocale(pTHX_ int category, const char* locale)
__attribute__pure__;
diff --git a/Master/tlpkg/tlperl/lib/CORE/regcharclass.h b/Master/tlpkg/tlperl/lib/CORE/regcharclass.h
index 5e34ec0d916..27cf8ea1e66 100644
--- a/Master/tlpkg/tlperl/lib/CORE/regcharclass.h
+++ b/Master/tlpkg/tlperl/lib/CORE/regcharclass.h
@@ -18,6 +18,7 @@
#ifndef H_REGCHARCLASS /* Guard against nested #includes */
#define H_REGCHARCLASS 1
+#if 'A' == 65 /* ASCII/Latin1 */
/*
LNBREAK: Line Break: \R
@@ -27,55 +28,55 @@
/*** GENERATED CODE ***/
#define is_LNBREAK_safe(s,e,is_utf8) \
( ((e)-(s) > 2) ? \
- ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
- : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 ) \
+ ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
: ( is_utf8 ) ? \
- ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
- : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
- : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) \
+ ( ( 0xC2 == ((U8*)s)[0] ) ? \
+ ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
+ : ( 0x85 == ((U8*)s)[0] ) ) \
: ((e)-(s) > 1) ? \
- ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
- : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 ) \
+ ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
: ( is_utf8 ) ? \
- ( ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
- : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) \
+ ( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 ) \
+ : ( 0x85 == ((U8*)s)[0] ) ) \
: ((e)-(s) > 0) ? \
- ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) ? 1\
+ ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1 \
: ( !( is_utf8 ) ) ? \
- ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) \
+ ( 0x85 == ((U8*)s)[0] ) \
: 0 ) \
: 0 )
/*** GENERATED CODE ***/
#define is_LNBREAK_utf8_safe(s,e) \
( ((e)-(s) > 2) ? \
- ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
- : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 ) \
- : ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
- : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
+ ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
+ : ( 0xC2 == ((U8*)s)[0] ) ? \
+ ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
- : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 ) \
- : ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
+ ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
+ : ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 ) \
: ((e)-(s) > 0) ? \
- ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D )\
+ ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) \
: 0 )
/*** GENERATED CODE ***/
#define is_LNBREAK_latin1_safe(s,e) \
( ((e)-(s) > 1) ? \
- ( ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) || 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
- : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 ) \
+ ( ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) || 0x85 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
: 0 ) \
: ((e)-(s) > 0) ? \
- ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) || 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) )\
+ ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )\
: 0 )
/*
@@ -85,20 +86,20 @@
*/
/*** GENERATED CODE ***/
#define is_HORIZWS_high(s) \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8A ) || 0xAF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
- : ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( ( ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )
+( ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( ( 0x9A == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xE2 == ((U8*)s)[0] ) ? \
+ ( ( 0x80 == ((U8*)s)[1] ) ? \
+ ( ( ( ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x81 == ((U8*)s)[1] ) && ( 0x9F == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( ( ( 0xE3 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_HORIZWS_cp_high(cp) \
-( 0x1680 == NATIVE_TO_UNI(cp) || ( 0x1680 < NATIVE_TO_UNI(cp) && \
-( ( 0x2000 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x200A ) || ( 0x200A < NATIVE_TO_UNI(cp) &&\
-( 0x202F == NATIVE_TO_UNI(cp) || ( 0x202F < NATIVE_TO_UNI(cp) && \
-( 0x205F == NATIVE_TO_UNI(cp) || 0x3000 == NATIVE_TO_UNI(cp) ) ) ) ) ) ) )
+( 0x1680 == cp || ( 0x1680 < cp && \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
+( 0x202F == cp || ( 0x202F < cp && \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
/*
VERTWS: Vertical Whitespace: \v \V
@@ -107,11 +108,11 @@
*/
/*** GENERATED CODE ***/
#define is_VERTWS_high(s) \
-( ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
+( ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_VERTWS_cp_high(cp) \
-( 0x2028 == NATIVE_TO_UNI(cp) || 0x2029 == NATIVE_TO_UNI(cp) )
+( 0x2028 == cp || 0x2029 == cp )
/*
XDIGIT: Hexadecimal digits
@@ -120,16 +121,16 @@
*/
/*** GENERATED CODE ***/
#define is_XDIGIT_high(s) \
-( ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( 0x90 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x99 ) || ( 0xA1 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA6 ) ) ? 3 : 0 )\
- : ( ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x81 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )\
+( ( 0xEF == ((U8*)s)[0] ) ? \
+ ( ( 0xBC == ((U8*)s)[1] ) ? \
+ ( ( ( 0x90 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x99 ) || ( 0xA1 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA6 ) ) ? 3 : 0 )\
+ : ( ( 0xBD == ((U8*)s)[1] ) && ( 0x81 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )\
: 0 )
/*** GENERATED CODE ***/
#define is_XDIGIT_cp_high(cp) \
-( ( 0xFF10 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0xFF19 ) || ( 0xFF19 < NATIVE_TO_UNI(cp) &&\
-( ( 0xFF21 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0xFF26 ) || ( 0xFF41 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0xFF46 ) ) ) )
+( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp && \
+( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
/*
XPERLSPACE: \p{XPerlSpace}
@@ -138,22 +139,22 @@
*/
/*** GENERATED CODE ***/
#define is_XPERLSPACE_high(s) \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8A ) || ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 || 0xAF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
- : ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( ( ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )
+( ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( ( 0x9A == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xE2 == ((U8*)s)[0] ) ? \
+ ( ( 0x80 == ((U8*)s)[1] ) ? \
+ ( ( ( ((U8*)s)[2] <= 0x8A ) || ( ((U8*)s)[2] & 0xFE ) == 0xA8 || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x81 == ((U8*)s)[1] ) && ( 0x9F == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( ( ( 0xE3 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_XPERLSPACE_cp_high(cp) \
-( 0x1680 == NATIVE_TO_UNI(cp) || ( 0x1680 < NATIVE_TO_UNI(cp) && \
-( ( 0x2000 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x200A ) || ( 0x200A < NATIVE_TO_UNI(cp) &&\
-( 0x2028 == NATIVE_TO_UNI(cp) || ( 0x2028 < NATIVE_TO_UNI(cp) && \
-( 0x2029 == NATIVE_TO_UNI(cp) || ( 0x2029 < NATIVE_TO_UNI(cp) && \
-( 0x202F == NATIVE_TO_UNI(cp) || ( 0x202F < NATIVE_TO_UNI(cp) && \
-( 0x205F == NATIVE_TO_UNI(cp) || 0x3000 == NATIVE_TO_UNI(cp) ) ) ) ) ) ) ) ) ) ) )
+( 0x1680 == cp || ( 0x1680 < cp && \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
+( 0x2028 == cp || ( 0x2028 < cp && \
+( 0x2029 == cp || ( 0x2029 < cp && \
+( 0x202F == cp || ( 0x202F < cp && \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
/*
REPLACEMENT: Unicode REPLACEMENT CHARACTER
@@ -162,7 +163,7 @@
*/
/*** GENERATED CODE ***/
#define is_REPLACEMENT_utf8_safe(s,e) \
-( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )
+( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xEF == ((U8*)s)[0] ) ) && ( 0xBF == ((U8*)s)[1] ) ) && ( 0xBD == ((U8*)s)[2] ) ) ? 3 : 0 )
/*
NONCHAR: Non character code points
@@ -171,15 +172,15 @@
*/
/*** GENERATED CODE ***/
#define is_NONCHAR_utf8(s) \
-( ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0xB7 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0x90 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xAF ) ? 3 : 0 )\
- : ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xBE ) ) ? 3 : 0 )\
-: ( 0xF0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) == 0x9F || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xEF ) == 0xAF ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xBE ) ) ? 4 : 0 )\
-: ( 0xF1 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0xF3 ) ?\
- ( ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xCF ) == 0x8F ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xBE ) ) ? 4 : 0 )\
-: ( ( ( ( 0xF4 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x8F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xBE ) ) ? 4 : 0 )
+( ( 0xEF == ((U8*)s)[0] ) ? \
+ ( ( 0xB7 == ((U8*)s)[1] ) ? \
+ ( ( 0x90 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xAF ) ? 3 : 0 ) \
+ : ( ( 0xBF == ((U8*)s)[1] ) && ( ((U8*)s)[2] >= 0xBE ) ) ? 3 : 0 ) \
+: ( 0xF0 == ((U8*)s)[0] ) ? \
+ ( ( ( ( ((U8*)s)[1] == 0x9F || ( ( ((U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )\
+: ( 0xF1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xF3 ) ? \
+ ( ( ( ( ( ((U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )\
+: ( ( ( ( 0xF4 == ((U8*)s)[0] ) && ( 0x8F == ((U8*)s)[1] ) ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )
/*
SURROGATE: Surrogate characters
@@ -188,122 +189,615 @@
*/
/*** GENERATED CODE ***/
#define is_SURROGATE_utf8(s) \
-( ( ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[1]) >= 0xA0 ) ) ? 3 : 0 )
+( ( ( 0xED == ((U8*)s)[0] ) && ( ((U8*)s)[1] >= 0xA0 ) ) ? 3 : 0 )
/*
- GCB_L: Grapheme_Cluster_Break=L
+ QUOTEMETA: Meta-characters that \Q should quote
- \p{_X_GCB_L}
+ \p{_Perl_Quotemeta}
*/
/*** GENERATED CODE ***/
-#define is_GCB_L_utf8(s) \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x84 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
+#define is_QUOTEMETA_high(s) \
+( ( 0xCD == ((U8*)s)[0] ) ? \
+ ( ( 0x8F == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xD8 == ((U8*)s)[0] ) ? \
+ ( ( 0x9C == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( 0x85 == ((U8*)s)[1] ) ? \
+ ( ( 0x9F == ((U8*)s)[2] || 0xA0 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( 0x9A == ((U8*)s)[1] ) ? \
+ ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( 0x9E == ((U8*)s)[1] ) ? \
+ ( ( ( ((U8*)s)[2] & 0xFE ) == 0xB4 ) ? 3 : 0 ) \
+ : ( ( 0xA0 == ((U8*)s)[1] ) && ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8E ) ) ? 3 : 0 )\
+: ( 0xE2 == ((U8*)s)[0] ) ? \
+ ( ( 0x80 == ((U8*)s)[1] ) ? \
+ ( ( ((U8*)s)[2] <= 0xBE ) ? 3 : 0 ) \
+ : ( 0x81 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x81 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x93 ) || ( 0x95 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xAF ) ) ? 3 : 0 )\
+ : ( 0x86 == ((U8*)s)[1] ) ? \
+ ( ( ((U8*)s)[2] >= 0x90 ) ? 3 : 0 ) \
+ : ( ( 0x87 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x90 ) || ( 0x94 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x9C ) || ( 0x9F <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xAF ) || ( ((U8*)s)[1] & 0xFE ) == 0xB8 ) ?\
3 \
- : ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x9F ) ) ? 3 : 0 )\
-: ( ( ( 0xEA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0xA0 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBC ) ) ? 3 : 0 )
+ : ( 0x91 == ((U8*)s)[1] ) ? \
+ ( ( ((U8*)s)[2] <= 0x9F ) ? 3 : 0 ) \
+ : ( 0x9D == ((U8*)s)[1] ) ? \
+ ( ( ((U8*)s)[2] <= 0xB5 ) ? 3 : 0 ) \
+ : ( ( 0x9E == ((U8*)s)[1] ) && ( ((U8*)s)[2] >= 0x94 ) ) ? 3 : 0 ) \
+: ( 0xE3 == ((U8*)s)[0] ) ? \
+ ( ( 0x80 == ((U8*)s)[1] ) ? \
+ ( ( ( ((U8*)s)[2] <= 0x83 ) || ( 0x88 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA0 ) || 0xB0 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x85 == ((U8*)s)[1] ) && ( 0xA4 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xEF == ((U8*)s)[0] ) ? \
+ ( ( 0xB4 == ((U8*)s)[1] ) ? \
+ ( ( ((U8*)s)[2] >= 0xBE ) ? 3 : 0 ) \
+ : ( 0xB8 == ((U8*)s)[1] ) ? \
+ ( ( ((U8*)s)[2] <= 0x8F ) ? 3 : 0 ) \
+ : ( 0xB9 == ((U8*)s)[1] ) ? \
+ ( ( 0x85 == ((U8*)s)[2] || 0x86 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( 0xBB == ((U8*)s)[1] ) ? \
+ ( ( 0xBF == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( 0xBE == ((U8*)s)[1] ) ? \
+ ( ( 0xA0 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0xBF == ((U8*)s)[1] ) && ( 0xB0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xB8 ) ) ? 3 : 0 )\
+: ( 0xF0 == ((U8*)s)[0] ) ? \
+ ( ( 0x9B == ((U8*)s)[1] ) ? \
+ ( ( ( 0xB2 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFC ) == 0xA0 ) ) ? 4 : 0 )\
+ : ( ( ( 0x9D == ((U8*)s)[1] ) && ( 0x85 == ((U8*)s)[2] ) ) && ( 0xB3 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0xBA ) ) ? 4 : 0 )\
+: ( ( 0xF3 == ((U8*)s)[0] ) && ( 0xA0 == ((U8*)s)[1] ) ) ? 4 : 0 )
/*
- GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
+ MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
- \p{_X_LV_LVT_V}
+ &regcharclass_multi_char_folds::multi_char_folds(1)
*/
/*** GENERATED CODE ***/
-#define is_GCB_LV_LVT_V_utf8(s) \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xA0 ) ? 3 : 0 ) \
- : ( ( 0x86 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA7 ) ) ? 3 : 0 )\
-: ( 0xEA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) >= 0xB0 ) ? \
- 3 \
+#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
+( ( 0x61 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x66 == ((U8*)s)[0] ) ? \
+ ( ( 0x66 == ((U8*)s)[1] ) ? \
+ ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x68 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x69 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x6A == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x73 == ((U8*)s)[0] ) ? \
+ ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x74 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xC5 == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0xBF == ((U8*)s)[1] ) && ( 0xC5 == ((U8*)s)[2] ) ) && ( 0xBF == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( ( 0xBC == ((U8*)s)[1] ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xCE == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFD ) == 0xAC ) ? \
+ ( ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB1 == ((U8*)s)[1] || 0xB7 == ((U8*)s)[1] ) ? \
+ ( ( 0xCD == ((U8*)s)[2] ) ? \
+ ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0xB9 == ((U8*)s)[1] ) && ( 0xCD == ((U8*)s)[2] ) ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xCF == ((U8*)s)[0] ) ? \
+ ( ( 0x81 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[2] ) && ( 0x93 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x85 == ((U8*)s)[1] ) ? \
+ ( ( 0xCC == ((U8*)s)[2] ) ? \
+ ( ( 0x93 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x89 == ((U8*)s)[1] ) ? \
+ ( ( 0xCD == ((U8*)s)[2] ) ? \
+ ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x8E == ((U8*)s)[1] ) && ( 0xCE == ((U8*)s)[2] ) ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xD5 == ((U8*)s)[0] ) ? \
+ ( ( 0xA5 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xD6 == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB4 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xD5 == ((U8*)s)[2] ) && ( ( ( ((U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((U8*)s)[3] == 0xAB || ((U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
+ : ( ( ( 0xBE == ((U8*)s)[1] ) && ( 0xD5 == ((U8*)s)[2] ) ) && ( 0xB6 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( 0xBC == ((U8*)s)[1] ) ? \
+ ( ( ( ( ( ((U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0xBD == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0xB0 ) || ((U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
+( ((e)-(s) > 3) ? \
+ ( ( 0x61 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x66 == ((U8*)s)[0] ) ? \
+ ( ( 0x66 == ((U8*)s)[1] ) ? \
+ ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x68 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x69 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x6A == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x73 == ((U8*)s)[0] ) ? \
+ ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x74 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xC5 == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0xBF == ((U8*)s)[1] ) && ( 0xC5 == ((U8*)s)[2] ) ) && ( 0xBF == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( ( 0xBC == ((U8*)s)[1] ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xCE == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFD ) == 0xAC ) ? \
+ ( ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB1 == ((U8*)s)[1] || 0xB7 == ((U8*)s)[1] ) ? \
+ ( ( 0xCD == ((U8*)s)[2] ) ? \
+ ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0xB9 == ((U8*)s)[1] ) && ( 0xCD == ((U8*)s)[2] ) ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xCF == ((U8*)s)[0] ) ? \
+ ( ( 0x81 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[2] ) && ( 0x93 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x85 == ((U8*)s)[1] ) ? \
+ ( ( 0xCC == ((U8*)s)[2] ) ? \
+ ( ( 0x93 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x89 == ((U8*)s)[1] ) ? \
+ ( ( 0xCD == ((U8*)s)[2] ) ? \
+ ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x8E == ((U8*)s)[1] ) && ( 0xCE == ((U8*)s)[2] ) ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xD5 == ((U8*)s)[0] ) ? \
+ ( ( 0xA5 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xD6 == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB4 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xD5 == ((U8*)s)[2] ) && ( ( ( ((U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((U8*)s)[3] == 0xAB || ((U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
+ : ( ( ( 0xBE == ((U8*)s)[1] ) && ( 0xD5 == ((U8*)s)[2] ) ) && ( 0xB6 == ((U8*)s)[3] ) ) ? 4 : 0 )\
: 0 ) \
-: ( 0xEB == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0xEC == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
- 3 \
-: ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0x9D ) ? \
- 3 \
- : ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA3 ) || ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xB0 ) ) ? 3 : 0 )\
- : ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )\
+: ((e)-(s) > 2) ? \
+ ( ( 0x61 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x66 == ((U8*)s)[0] ) ? \
+ ( ( 0x66 == ((U8*)s)[1] ) ? \
+ ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x68 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x69 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x6A == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x73 == ((U8*)s)[0] ) ? \
+ ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x74 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0xBC == ((U8*)s)[1] ) ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ? \
+ ( ( 0x66 == ((U8*)s)[0] ) ? \
+ ( ( 0x66 == ((U8*)s)[1] || 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 )\
+ : ( ( 0x73 == ((U8*)s)[0] ) && ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ) ? 2 : 0 )\
: 0 )
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
+( ((e)-(s) > 5) ? \
+ ( ( 0x61 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x66 == ((U8*)s)[0] ) ? \
+ ( ( 0x66 == ((U8*)s)[1] ) ? \
+ ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x68 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x69 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x6A == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x73 == ((U8*)s)[0] ) ? \
+ ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x74 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xC5 == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0xBF == ((U8*)s)[1] ) && ( 0xC5 == ((U8*)s)[2] ) ) && ( 0xBF == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( ( 0xBC == ((U8*)s)[1] ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xCE == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFD ) == 0xAC ) ? \
+ ( ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB1 == ((U8*)s)[1] || 0xB7 == ((U8*)s)[1] ) ? \
+ ( ( 0xCD == ((U8*)s)[2] ) ? \
+ ( ( 0x82 == ((U8*)s)[3] ) ? \
+ ( ( ( 0xCE == ((U8*)s)[4] ) && ( 0xB9 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB9 == ((U8*)s)[1] ) ? \
+ ( ( 0xCC == ((U8*)s)[2] ) ? \
+ ( ( 0x88 == ((U8*)s)[3] ) ? \
+ ( ( 0xCC == ((U8*)s)[4] ) ? \
+ ( ( ( ((U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 ) \
+ : ( ( 0xCD == ((U8*)s)[4] ) && ( 0x82 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : 0 ) \
+ : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
+ : ( 0xCF == ((U8*)s)[0] ) ? \
+ ( ( 0x81 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xCC == ((U8*)s)[2] ) && ( 0x93 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x85 == ((U8*)s)[1] ) ? \
+ ( ( 0xCC == ((U8*)s)[2] ) ? \
+ ( ( 0x88 == ((U8*)s)[3] ) ? \
+ ( ( 0xCC == ((U8*)s)[4] ) ? \
+ ( ( ( ((U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 ) \
+ : ( ( 0xCD == ((U8*)s)[4] ) && ( 0x82 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x93 == ((U8*)s)[3] ) ? \
+ ( ( 0xCC == ((U8*)s)[4] ) ? \
+ ( ( ( ((U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 4 ) \
+ : ( ( 0xCD == ((U8*)s)[4] ) && ( 0x82 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x89 == ((U8*)s)[1] ) ? \
+ ( ( 0xCD == ((U8*)s)[2] ) ? \
+ ( ( 0x82 == ((U8*)s)[3] ) ? \
+ ( ( ( 0xCE == ((U8*)s)[4] ) && ( 0xB9 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x8E == ((U8*)s)[1] ) && ( 0xCE == ((U8*)s)[2] ) ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xD5 == ((U8*)s)[0] ) ? \
+ ( ( 0xA5 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xD6 == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB4 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xD5 == ((U8*)s)[2] ) && ( ( ( ((U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((U8*)s)[3] == 0xAB || ((U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
+ : ( ( ( 0xBE == ((U8*)s)[1] ) && ( 0xD5 == ((U8*)s)[2] ) ) && ( 0xB6 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( 0xBC == ((U8*)s)[1] ) ? \
+ ( ( ( ( ( ((U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0xBD == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0xB0 ) || ((U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 ) \
+: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
+
/*
- GCB_Prepend: Grapheme_Cluster_Break=Prepend
+ MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
- \p{_X_GCB_Prepend}
+ &regcharclass_multi_char_folds::multi_char_folds(0)
*/
/*** GENERATED CODE ***/
-#define is_GCB_Prepend_utf8(s) \
-( 0 )
+#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
+( ((e)-(s) > 2) ? \
+ ( ( ( ((U8*)s)[0] & 0xDF ) == 0x46 ) ? \
+ ( ( ( ((U8*)s)[1] & 0xDF ) == 0x46 ) ? \
+ ( ( ( ( ((U8*)s)[2] & 0xDF ) == 0x49 ) || ( ( ((U8*)s)[2] & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
+ : ( ( ( ((U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
+ : ( ( ( ((U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
+: ((e)-(s) > 1) ? \
+ ( ( ( ((U8*)s)[0] & 0xDF ) == 0x46 ) ? \
+ ( ( ( ( ((U8*)s)[1] & 0xDF ) == 0x46 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
+ : ( ( ( ((U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
+: 0 )
/*
- GCB_RI: Grapheme_Cluster_Break=RI
+ FOLDS_TO_MULTI: characters that fold to multi-char strings
- \p{_X_RI}
+ \p{_Perl_Folds_To_Multi_Char}
*/
/*** GENERATED CODE ***/
-#define is_GCB_RI_utf8(s) \
-( ( ( ( ( 0xF0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xA6 ) ) ? 4 : 0 )
+#define is_FOLDS_TO_MULTI_utf8(s) \
+( ( 0xC3 == ((U8*)s)[0] ) ? \
+ ( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xC4 == ((U8*)s)[0] || 0xC7 == ((U8*)s)[0] ) ? \
+ ( ( 0xB0 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xC5 == ((U8*)s)[0] ) ? \
+ ( ( 0x89 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xCE == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 ) \
+: ( 0xD6 == ((U8*)s)[0] ) ? \
+ ( ( 0x87 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( 0xBA == ((U8*)s)[1] ) ? \
+ ( ( ( 0x96 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9A ) || 0x9E == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0xBD == ((U8*)s)[1] ) ? \
+ ( ( ( ((U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 ) \
+ : ( 0xBE == ((U8*)s)[1] ) ? \
+ ( ( ( ( ((U8*)s)[2] & 0xE0 ) == 0x80 ) || ( ( ((U8*)s)[2] & 0xF0 ) == 0xA0 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0xB2 ) || ( ( ((U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ? 3 : 0 )\
+ : ( ( 0xBF == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xCA ) == 0x82 ) || ( ( ((U8*)s)[2] & 0xF7 ) == 0x84 ) || ((U8*)s)[2] == 0xA4 || ( ( ((U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
+: ( ( ( 0xEF == ((U8*)s)[0] ) && ( 0xAC == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] <= 0x86 ) || ( 0x93 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x97 ) ) ) ? 3 : 0 )
/*
- GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
+ PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
- \p{_X_Special_Begin_Start}
+ \p{_Perl_Problematic_Locale_Folds}
*/
/*** GENERATED CODE ***/
-#define is_GCB_SPECIAL_BEGIN_START_utf8(s) \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFC ) == 0x84 ) ? \
- 3 \
+#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
+( ( ((U8*)s)[0] <= 0x7F ) ? 1 \
+: ( ( ((U8*)s)[0] & 0xFE ) == 0xC2 ) ? \
+ 2 \
+: ( 0xC4 == ((U8*)s)[0] || 0xC7 == ((U8*)s)[0] ) ? \
+ ( ( 0xB0 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xC5 == ((U8*)s)[0] ) ? \
+ ( ( 0x89 == ((U8*)s)[1] || 0xB8 == ((U8*)s)[1] || 0xBF == ((U8*)s)[1] ) ? 2 : 0 )\
+: ( 0xCE == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
+: ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xBA == ((U8*)s)[1] ) && ( ( 0x96 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9A ) || 0x9E == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xE2 == ((U8*)s)[0] ) ? \
+ ( ( ( 0x84 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
+: ( ( ( 0xEF == ((U8*)s)[0] ) && ( 0xAC == ((U8*)s)[1] ) ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
+( cp <= 0xFF || ( 0xFF < cp && \
+( 0x130 == cp || ( 0x130 < cp && \
+( 0x149 == cp || ( 0x149 < cp && \
+( 0x178 == cp || ( 0x178 < cp && \
+( 0x17F == cp || ( 0x17F < cp && \
+( 0x1F0 == cp || ( 0x1F0 < cp && \
+( 0x39C == cp || ( 0x39C < cp && \
+( 0x3BC == cp || ( 0x3BC < cp && \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
+( 0x1E9E == cp || ( 0x1E9E < cp && \
+( 0x212A == cp || ( 0x212A < cp && \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+/*
+ PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
+
+ \p{_Perl_Problematic_Locale_Foldeds_Start}
+*/
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
+( ( ((U8*)s)[0] <= 0x7F ) ? 1 \
+: ( ( ((U8*)s)[0] & 0xFE ) == 0xC2 ) ? \
+ 2 \
+: ( 0xC4 == ((U8*)s)[0] || 0xC7 == ((U8*)s)[0] ) ? \
+ ( ( 0xB0 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xC5 == ((U8*)s)[0] ) ? \
+ ( ( 0x89 == ((U8*)s)[1] || 0xB8 == ((U8*)s)[1] || 0xBF == ((U8*)s)[1] ) ? 2 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( 0xBC == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xCE == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
+: ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xBA == ((U8*)s)[1] ) && ( ( 0x96 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9A ) || 0x9E == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xE2 == ((U8*)s)[0] ) ? \
+ ( ( ( 0x84 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
+: ( ( ( 0xEF == ((U8*)s)[0] ) && ( 0xAC == ((U8*)s)[1] ) ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
+( cp <= 0xFF || ( 0xFF < cp && \
+( 0x130 == cp || ( 0x130 < cp && \
+( 0x149 == cp || ( 0x149 < cp && \
+( 0x178 == cp || ( 0x178 < cp && \
+( 0x17F == cp || ( 0x17F < cp && \
+( 0x1F0 == cp || ( 0x1F0 < cp && \
+( 0x2BC == cp || ( 0x2BC < cp && \
+( 0x39C == cp || ( 0x39C < cp && \
+( 0x3BC == cp || ( 0x3BC < cp && \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
+( 0x1E9E == cp || ( 0x1E9E < cp && \
+( 0x212A == cp || ( 0x212A < cp && \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+/*
+ PATWS: pattern white space
+
+ \p{PatWS}
+*/
+/*** GENERATED CODE ***/
+#define is_PATWS_safe(s,e,is_utf8) \
+( ( LIKELY((e) > (s)) ) ? \
+ ( ( ( 0x09 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x20 == ((U8*)s)[0] ) ? 1\
+ : (! is_utf8 ) ? \
+ ( 0x85 == ((U8*)s)[0] ) \
+ : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ? \
+ ( ( 0xC2 == ((U8*)s)[0] ) ? \
+ ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x8E || ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
+ : 0 ) \
+: 0 )
+
+/*** GENERATED CODE ***/
+#define is_PATWS_cp(cp) \
+( ( 0x09 <= cp && cp <= 0x0D ) || ( 0x0D < cp && \
+( 0x20 == cp || ( 0x20 < cp && \
+( 0x85 == cp || ( 0x85 < cp && \
+( 0x200E == cp || ( 0x200E < cp && \
+( 0x200F == cp || ( 0x200F < cp && \
+( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) )
+
+#endif /* ASCII/Latin1 */
+
+#if 'A' == 193 /* EBCDIC 1047 */ \
+ && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
+ && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 121
+/*
+ LNBREAK: Line Break: \R
+
+ "\x0D\x0A" # CRLF - Network (Windows) line ending
+ \p{VertSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_LNBREAK_safe(s,e,is_utf8) \
+( ((e)-(s) > 2) ? \
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ : ( ( ( ( is_utf8 ) && ( 0xCA == ((U8*)s)[0] ) ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ? \
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
: 0 ) \
-: ( 0xEA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0xA0 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBC ) ? 3 : 0 )\
- : ( NATIVE_TO_LATIN1(((U8*)s)[1]) >= 0xB0 ) ? \
- 3 \
+: ((e)-(s) > 0) ? \
+ ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*** GENERATED CODE ***/
+#define is_LNBREAK_utf8_safe(s,e) \
+( ((e)-(s) > 2) ? \
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ? \
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
: 0 ) \
-: ( 0xEB == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0xEC == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
- 3 \
-: ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0x9D ) ? \
- 3 \
- : ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA3 ) || ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xB0 ) ) ? 3 : 0 )\
- : ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) || ( 0x8B <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBB ) ) ) ? 3 : 0 )\
-: ( ( ( ( 0xF0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xA6 ) ) ? 4 : 0 )
+: ((e)-(s) > 0) ? \
+ ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*** GENERATED CODE ***/
+#define is_LNBREAK_latin1_safe(s,e) \
+( ((e)-(s) > 1) ? \
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ : 0 ) \
+: ((e)-(s) > 0) ? \
+ ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
/*
- GCB_T: Grapheme_Cluster_Break=T
+ HORIZWS: Horizontal Whitespace: \h \H
- \p{_X_GCB_T}
+ \p{HorizSpace}
*/
/*** GENERATED CODE ***/
-#define is_GCB_T_utf8(s) \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x86 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xA8 ) ? 3 : 0 ) \
- : ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- 3 \
+#define is_HORIZWS_high(s) \
+( ( 0xBC == ((U8*)s)[0] ) ? \
+ ( ( ( 0x63 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( 0x41 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( 0x56 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x73 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_HORIZWS_cp_high(cp) \
+( 0x1680 == cp || ( 0x1680 < cp && \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
+( 0x202F == cp || ( 0x202F < cp && \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
+
+/*
+ VERTWS: Vertical Whitespace: \v \V
+
+ \p{VertSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_VERTWS_high(s) \
+( ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_VERTWS_cp_high(cp) \
+( 0x2028 == cp || 0x2029 == cp )
+
+/*
+ XDIGIT: Hexadecimal digits
+
+ \p{XDigit}
+*/
+/*** GENERATED CODE ***/
+#define is_XDIGIT_high(s) \
+( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x73 == ((U8*)s)[1] ) ) ? ( ( 0x67 == ((U8*)s)[2] ) ?\
+ ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x68 ) ) ? 4 : 0 )\
+ : ( ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) && ( 0x42 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
+
+/*** GENERATED CODE ***/
+#define is_XDIGIT_cp_high(cp) \
+( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp && \
+( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
+
+/*
+ XPERLSPACE: \p{XPerlSpace}
+
+ \p{XPerlSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_XPERLSPACE_high(s) \
+( ( 0xBC == ((U8*)s)[0] ) ? \
+ ( ( ( 0x63 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( 0x41 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x73 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_XPERLSPACE_cp_high(cp) \
+( 0x1680 == cp || ( 0x1680 < cp && \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
+( 0x2028 == cp || ( 0x2028 < cp && \
+( 0x2029 == cp || ( 0x2029 < cp && \
+( 0x202F == cp || ( 0x202F < cp && \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
+
+/*
+ REPLACEMENT: Unicode REPLACEMENT CHARACTER
+
+ 0xFFFD
+*/
+/*** GENERATED CODE ***/
+#define is_REPLACEMENT_utf8_safe(s,e) \
+( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((U8*)s)[0] ) ) && ( 0x73 == ((U8*)s)[1] ) ) && ( 0x73 == ((U8*)s)[2] ) ) && ( 0x71 == ((U8*)s)[3] ) ) ? 4 : 0 )
+
+/*
+ NONCHAR: Non character code points
+
+ \p{Nchar}
+*/
+/*** GENERATED CODE ***/
+#define is_NONCHAR_utf8(s) \
+( ( 0xDD == ((U8*)s)[0] ) ? \
+ ( ( 0x73 == ((U8*)s)[1] ) ? \
+ ( ( 0x55 == ((U8*)s)[2] ) ? \
+ ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+ : ( 0x56 == ((U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+ : ( ( 0x73 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
: 0 ) \
-: ( ( ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x8B <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBB ) ) ? 3 : 0 )
+: ( 0xDF == ((U8*)s)[0] || 0xEA == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x73 == ((U8*)s)[2] ) ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
+: ( 0xED == ((U8*)s)[0] ) ? \
+ ( ( ( ( ( ((U8*)s)[1] == 0x4A || ((U8*)s)[1] == 0x52 || ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) || ((U8*)s)[1] == 0x58 || ((U8*)s)[1] == 0x62 || ( ( ((U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFD ) == 0x71 ) ) && ( 0x73 == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 )\
+: ( ( ( ( ( 0xEE == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x73 == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 )
/*
- GCB_V: Grapheme_Cluster_Break=V
+ SURROGATE: Surrogate characters
- \p{_X_GCB_V}
+ \p{Gc=Cs}
*/
/*** GENERATED CODE ***/
-#define is_GCB_V_utf8(s) \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xA0 ) ? 3 : 0 ) \
- : ( ( 0x86 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA7 ) ) ? 3 : 0 )\
-: ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xB0 ) ? 3 : 0 ) \
- : ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )\
-: 0 )
+#define is_SURROGATE_utf8(s) \
+( ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x65 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )
+
+/*
+ UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
+
+ 0xA0 - 0x3FFF
+*/
+/*** GENERATED CODE ***/
+#define is_UTF8_CHAR_utf8_no_length_checks(s) \
+( ( 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xAC ) || ( 0xAE <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xB6 ) ) ?\
+ ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
+: ( ( ( ( ( ((U8*)s)[0] & 0xFC ) == 0xB8 ) || ((U8*)s)[0] == 0xBC || ( ( ((U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xCC ) ) && ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )
/*
QUOTEMETA: Meta-characters that \Q should quote
@@ -312,287 +806,894 @@
*/
/*** GENERATED CODE ***/
#define is_QUOTEMETA_high(s) \
-( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x8F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
-: ( 0xD8 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x9C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
-: ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
- : ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 ) \
- : ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xB4 ) ? 3 : 0 ) \
- : ( ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8B <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8E ) ) ? 3 : 0 )\
-: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBE ) ? 3 : 0 ) \
- : ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( 0x81 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x93 ) || ( 0x95 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xAF ) ) ? 3 : 0 )\
- : ( 0x86 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0x90 ) ? 3 : 0 ) \
- : ( ( 0x87 <= NATIVE_TO_LATIN1(((U8*)s)[1]) && NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0x90 ) || ( 0x94 <= NATIVE_TO_LATIN1(((U8*)s)[1]) && NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0x9C ) || ( 0x9F <= NATIVE_TO_LATIN1(((U8*)s)[1]) && NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0xAF ) || ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFE ) == 0xB8 ) ?\
- 3 \
- : ( 0x91 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x9F ) ? 3 : 0 ) \
- : ( 0x9D == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xB5 ) ? 3 : 0 ) \
- : ( ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0x94 ) ) ? 3 : 0 )\
-: ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x83 ) || ( 0x88 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA0 ) || 0xB0 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
- : ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xA4 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0xB4 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xBE ) ? 3 : 0 ) \
- : ( 0xB8 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8F ) ? 3 : 0 ) \
- : ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x86 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
- : ( 0xBB == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 ) \
- : ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 ) \
- : ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB0 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xB8 ) ) ? 3 : 0 )\
-: ( 0xF0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( ( 0x9D == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB3 <= NATIVE_TO_LATIN1(((U8*)s)[3]) && NATIVE_TO_LATIN1(((U8*)s)[3]) <= 0xBA ) ) ? 4 : 0 )\
-: ( ( 0xF3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 4 : 0 )
+( ( 0xB1 == ((U8*)s)[0] ) ? \
+ ( ( 0x56 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0x57 == ((U8*)s)[1] ) && ( 0x70 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xBB == ((U8*)s)[0] ) ? \
+ ( ( 0x51 == ((U8*)s)[1] ) ? \
+ ( ( 0x73 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xBC == ((U8*)s)[0] ) ? \
+ ( ( 0x63 == ((U8*)s)[1] ) ? \
+ ( ( 0x41 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x71 == ((U8*)s)[1] ) && ( 0x63 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xBE == ((U8*)s)[0] ) ? \
+ ( ( ( 0x41 == ((U8*)s)[1] ) && ( 0x52 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( 0x41 == ((U8*)s)[1] || ( 0x54 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ?\
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+ : ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+ : ( 0x43 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x42 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x62 == ((U8*)s)[2] || ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+ : ( 0x44 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
+ : ( ( 0x53 == ((U8*)s)[1] ) && ( ( 0x57 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xCB == ((U8*)s)[0] ) ? \
+ ( ( ( ( ((U8*)s)[1] & 0xE7 ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ((U8*)s)[1] == 0x4A || ( ( ((U8*)s)[1] & 0xFC ) == 0x54 ) || ((U8*)s)[1] == 0x58 || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ((U8*)s)[1] == 0x71 ) ?\
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+ : ( 0x6A == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x64 ) ) ? 3 : 0 )\
+ : ( ( 0x70 == ((U8*)s)[1] ) && ( ( 0x63 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xCC == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xCD == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x57 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x62 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xCE == ((U8*)s)[0] ) ? \
+ ( ( 0x41 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) || ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+ : ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( 0x41 == ((U8*)s)[2] || 0x57 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x45 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xDD == ((U8*)s)[0] ) ? \
+ ( ( 0x73 == ((U8*)s)[1] ) ? \
+ ( ( 0x4A == ((U8*)s)[2] ) ? \
+ ( ( ( ((U8*)s)[3] & 0xFE ) == 0x72 ) ? 4 : 0 ) \
+ : ( 0x57 == ((U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+ : ( 0x59 == ((U8*)s)[2] ) ? \
+ ( ( ( ((U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 ) \
+ : ( 0x66 == ((U8*)s)[2] ) ? \
+ ( ( 0x73 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( 0x71 == ((U8*)s)[2] ) ? \
+ ( ( 0x41 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0x73 == ((U8*)s)[2] ) && ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x67 ) ) ) ? 4 : 0 )\
+ : 0 ) \
+: ( 0xDF == ((U8*)s)[0] ) ? \
+ ( ( 0x56 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x46 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
+ : ( ( ( 0x63 == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) && ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) ) ? 4 : 0 )\
+: ( ( ( ( ( 0xED == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x6A ) || ( ((U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )
/*
MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
- do regen/regcharclass_multi_char_folds.pl
&regcharclass_multi_char_folds::multi_char_folds(1)
*/
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
-( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )
+( ( 0x81 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] ) ? \
+ ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x88 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x89 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x8F == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x8F == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA2 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xAB == ((U8*)s)[0] ) ? \
+ ( ( ( 0x70 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xB4 == ((U8*)s)[0] ) ? \
+ ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x68 == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB5 == ((U8*)s)[0] ) ? \
+ ( ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[2] ) && ( 0x62 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((U8*)s)[1] ) ? \
+ ( ( 0xAF == ((U8*)s)[2] ) ? \
+ ( ( 0x62 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB4 == ((U8*)s)[2] ) ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xBF == ((U8*)s)[0] ) ? \
+ ( ( 0x67 == ((U8*)s)[1] || 0x68 == ((U8*)s)[1] ) ? \
+ ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x6A == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x63 == ((U8*)s)[2] || 0x70 == ((U8*)s)[2] ) ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 )
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
-( ( 0x74 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x77 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x79 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8A == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x6E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
- ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xB7 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?\
- ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
- ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? \
- ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 4 )\
+( ((e)-(s) > 3) ? \
+ ( ( 0x81 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] ) ? \
+ ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x88 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x89 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x8F == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x8F == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA2 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xAB == ((U8*)s)[0] ) ? \
+ ( ( ( 0x70 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xB4 == ((U8*)s)[0] ) ? \
+ ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x68 == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB5 == ((U8*)s)[0] ) ? \
+ ( ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[2] ) && ( 0x62 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((U8*)s)[1] ) ? \
+ ( ( 0xAF == ((U8*)s)[2] ) ? \
+ ( ( 0x62 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB4 == ((U8*)s)[2] ) ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
+: ((e)-(s) > 2) ? \
+ ( ( 0x81 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] ) ? \
+ ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x88 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x89 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x91 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA2 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( ( ( 0xAB == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ? \
+ ( ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] || 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )\
+ : ( ( 0xA2 == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
+: 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
+( ((e)-(s) > 5) ? \
+ ( ( 0x81 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] ) ? \
+ ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x88 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x89 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x8F == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x8F == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA2 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xAB == ((U8*)s)[0] ) ? \
+ ( ( ( 0x70 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xB4 == ((U8*)s)[0] ) ? \
+ ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? \
+ ( ( ( 0xB4 == ((U8*)s)[4] ) && ( 0x68 == ((U8*)s)[5] ) ) ? 6 : 4 )\
: 0 ) \
- : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
- ( ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? \
- ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[5]) & 0xFE ) == 0x80 ) ? 6 : 0 )\
- : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 0 )\
+ : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x68 == ((U8*)s)[1] ) ? \
+ ( ( 0xAF == ((U8*)s)[2] ) ? \
+ ( ( 0x49 == ((U8*)s)[3] ) ? \
+ ( ( 0xAF == ((U8*)s)[4] ) ? \
+ ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
+ : ( ( 0xB1 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
: 0 ) \
- : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
+ : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
: 0 ) \
- : ( 0xCF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
- ( ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? \
- ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[5]) & 0xFE ) == 0x80 ) ? 6 : 0 )\
- : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 0 )\
- : ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? \
- ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[5]) & 0xFE ) == 0x80 ) ? 6 : 4 )\
- : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 4 )\
+ : ( 0xB5 == ((U8*)s)[0] ) ? \
+ ( ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[2] ) && ( 0x62 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((U8*)s)[1] ) ? \
+ ( ( 0xAF == ((U8*)s)[2] ) ? \
+ ( ( 0x49 == ((U8*)s)[3] ) ? \
+ ( ( 0xAF == ((U8*)s)[4] ) ? \
+ ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
+ : ( ( 0xB1 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x62 == ((U8*)s)[3] ) ? \
+ ( ( 0xAF == ((U8*)s)[4] ) ? \
+ ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 4 )\
+ : ( ( 0xB1 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 4 )\
: 0 ) \
- : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
- ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? \
- ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 4 )\
+ : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? \
+ ( ( ( 0xB4 == ((U8*)s)[4] ) && ( 0x68 == ((U8*)s)[5] ) ) ? 6 : 4 )\
: 0 ) \
- : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( ( ( 0x8E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( 0xD6 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xB4 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[3]) & 0xF7 ) == 0xA5 ) || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xAB || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xB6 ) ) ? 4 : 0 )\
- : ( ( ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB6 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xD8 ) == 0x80 ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ) ? 5 : 0 )\
- : ( ( ( ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFB ) == 0xB0 ) || NATIVE_TO_LATIN1(((U8*)s)[2]) == 0xBC ) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ) ? 5 : 0 )\
- : 0 )
+ : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB4 == ((U8*)s)[2] ) ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB8 == ((U8*)s)[0] ) ? \
+ ( ( 0x52 == ((U8*)s)[1] ) ? \
+ ( ( 0x46 == ((U8*)s)[2] ) ? \
+ ( ( ( ( 0xB8 == ((U8*)s)[3] ) && ( 0x53 == ((U8*)s)[4] ) ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x63 == ((U8*)s)[2] ) ? \
+ ( ( ( ( 0xB8 == ((U8*)s)[3] ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x46 == ((U8*)s)[5] || 0x52 == ((U8*)s)[5] || 0x54 == ((U8*)s)[5] || 0x65 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( ( ( ( 0x72 == ((U8*)s)[2] ) && ( 0xB8 == ((U8*)s)[3] ) ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x65 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : 0 ) \
+ : ( 0xBF == ((U8*)s)[0] ) ? \
+ ( ( 0x67 == ((U8*)s)[1] || 0x68 == ((U8*)s)[1] ) ? \
+ ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x6A == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x63 == ((U8*)s)[2] || 0x70 == ((U8*)s)[2] ) ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 ) \
+: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
+/*
+ MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
+ &regcharclass_multi_char_folds::multi_char_folds(0)
+*/
/*** GENERATED CODE ***/
-#define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
-( ( 0x61 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 2 )\
- : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
- : ( 0x68 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x6A == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
- : ( 0x74 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x77 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x79 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8A == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x6E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
- ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xB7 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?\
- ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
- ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 ) \
- : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( ( ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xCF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
- ( ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 ) \
- : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
- ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 ) \
- : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( ( ( 0x8E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( 0xD6 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xB4 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[3]) & 0xF7 ) == 0xA5 ) || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xAB || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xB6 ) ) ? 4 : 0 )\
- : ( ( ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB6 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : 0 )
+#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
+( ((e)-(s) > 2) ? \
+ ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ( ((U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
+ : ( ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+ : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
+: ((e)-(s) > 1) ? \
+ ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+ : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
+: 0 )
+
+/*
+ FOLDS_TO_MULTI: characters that fold to multi-char strings
+
+ \p{_Perl_Folds_To_Multi_Char}
+*/
+/*** GENERATED CODE ***/
+#define is_FOLDS_TO_MULTI_utf8(s) \
+( ( 0x8A == ((U8*)s)[0] ) ? \
+ ( ( 0x73 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8D == ((U8*)s)[0] || 0x9C == ((U8*)s)[0] || ( 0xB3 == ((U8*)s)[0] || 0xB4 == ((U8*)s)[0] ) ) ?\
+ ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8E == ((U8*)s)[0] ) ? \
+ ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0x53 == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xBF == ((U8*)s)[0] ) ? \
+ ( ( 0x63 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x65 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || 0x72 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x69 == ((U8*)s)[1] ) ? \
+ ( ( 0x57 == ((U8*)s)[2] || 0x59 == ((U8*)s)[2] || 0x63 == ((U8*)s)[2] || 0x65 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x70 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+ : ( 0x71 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) || 0x59 == ((U8*)s)[2] || ( ((U8*)s)[2] & 0xFE ) == 0x62 || ( 0x65 == ((U8*)s)[2] || 0x66 == ((U8*)s)[2] ) || 0x70 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x72 == ((U8*)s)[1] ) ? \
+ ( ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x53 || ((U8*)s)[2] == 0x59 || ( ( ((U8*)s)[2] & 0xFB ) == 0x62 ) || ((U8*)s)[2] == 0x65 ) ? 3 : 0 )\
+ : ( ( 0x73 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x59 || ( ( ((U8*)s)[2] & 0xFE ) == 0x62 ) || ((U8*)s)[2] == 0x65 || ((U8*)s)[2] == 0x66 || ((U8*)s)[2] == 0x70 ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x67 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )
+
+/*
+ PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
+
+ \p{_Perl_Problematic_Locale_Folds}
+*/
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
+( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
+: ( 0x80 == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0x8A ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
+: ( 0x8D == ((U8*)s)[0] || 0x9C == ((U8*)s)[0] ) ? \
+ ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8E == ((U8*)s)[0] ) ? \
+ ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8F == ((U8*)s)[0] ) ? \
+ ( ( 0x67 == ((U8*)s)[1] || 0x73 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB3 == ((U8*)s)[0] || 0xB4 == ((U8*)s)[0] ) ? \
+ ( ( 0x70 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xBF == ((U8*)s)[0] ) ? \
+ ( ( ( 0x63 == ((U8*)s)[1] ) && ( ( 0x65 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x67 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
+( cp <= 0xFF || ( 0xFF < cp && \
+( 0x130 == cp || ( 0x130 < cp && \
+( 0x149 == cp || ( 0x149 < cp && \
+( 0x178 == cp || ( 0x178 < cp && \
+( 0x17F == cp || ( 0x17F < cp && \
+( 0x1F0 == cp || ( 0x1F0 < cp && \
+( 0x39C == cp || ( 0x39C < cp && \
+( 0x3BC == cp || ( 0x3BC < cp && \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
+( 0x1E9E == cp || ( 0x1E9E < cp && \
+( 0x212A == cp || ( 0x212A < cp && \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+/*
+ PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
+
+ \p{_Perl_Problematic_Locale_Foldeds_Start}
+*/
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
+( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
+: ( 0x80 == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0x8A ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
+: ( 0x8D == ((U8*)s)[0] || 0x9C == ((U8*)s)[0] ) ? \
+ ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8E == ((U8*)s)[0] ) ? \
+ ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8F == ((U8*)s)[0] ) ? \
+ ( ( 0x67 == ((U8*)s)[1] || 0x73 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xAB == ((U8*)s)[0] || ( 0xB3 == ((U8*)s)[0] || 0xB4 == ((U8*)s)[0] ) ) ?\
+ ( ( 0x70 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xBF == ((U8*)s)[0] ) ? \
+ ( ( ( 0x63 == ((U8*)s)[1] ) && ( ( 0x65 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x67 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
+( cp <= 0xFF || ( 0xFF < cp && \
+( 0x130 == cp || ( 0x130 < cp && \
+( 0x149 == cp || ( 0x149 < cp && \
+( 0x178 == cp || ( 0x178 < cp && \
+( 0x17F == cp || ( 0x17F < cp && \
+( 0x1F0 == cp || ( 0x1F0 < cp && \
+( 0x2BC == cp || ( 0x2BC < cp && \
+( 0x39C == cp || ( 0x39C < cp && \
+( 0x3BC == cp || ( 0x3BC < cp && \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
+( 0x1E9E == cp || ( 0x1E9E < cp && \
+( 0x212A == cp || ( 0x212A < cp && \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+/*
+ PATWS: pattern white space
+
+ \p{PatWS}
+*/
+/*** GENERATED CODE ***/
+#define is_PATWS_safe(s,e,is_utf8) \
+( ( LIKELY((e) > (s)) ) ? \
+ ( ( ( ( ((U8*)s)[0] & 0xEF ) == 0x05 ) || ((U8*)s)[0] == 0x0B || ( ( ((U8*)s)[0] & 0xFE ) == 0x0C ) || ((U8*)s)[0] == 0x25 || ((U8*)s)[0] == 0x40 ) ? 1\
+ : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((U8*)s)[0] ) ) ? ( ( 0x41 == ((U8*)s)[1] ) ?\
+ ( ( 0x55 == ((U8*)s)[2] || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x42 == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
+: 0 )
/*** GENERATED CODE ***/
-#define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \
+#define is_PATWS_cp(cp) \
+( 0x05 == cp || ( 0x05 < cp && \
+( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp && \
+( 0x15 == cp || ( 0x15 < cp && \
+( 0x25 == cp || ( 0x25 < cp && \
+( 0x40 == cp || ( 0x40 < cp && \
+( 0x200E == cp || ( 0x200E < cp && \
+( 0x200F == cp || ( 0x200F < cp && \
+( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+#endif /* EBCDIC 1047 */
+
+#if 'A' == 193 /* EBCDIC 037 */ \
+ && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
+ && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 121
+/*
+ LNBREAK: Line Break: \R
+
+ "\x0D\x0A" # CRLF - Network (Windows) line ending
+ \p{VertSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_LNBREAK_safe(s,e,is_utf8) \
( ((e)-(s) > 2) ? \
- ( ( 0x61 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 2 )\
- : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
- : ( 0x68 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x6A == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
- : ( 0x74 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x77 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x79 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8A == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x6E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ : ( ( ( ( is_utf8 ) && ( 0xCA == ((U8*)s)[0] ) ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
- : ( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ : 0 ) \
+: ((e)-(s) > 0) ? \
+ ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
: 0 )
+/*** GENERATED CODE ***/
+#define is_LNBREAK_utf8_safe(s,e) \
+( ((e)-(s) > 2) ? \
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ? \
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ : 0 ) \
+: ((e)-(s) > 0) ? \
+ ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
/*** GENERATED CODE ***/
-#define is_MULTI_CHAR_FOLD_utf8_safe_part4(s,e) \
-( ( 0x61 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 2 )\
- : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
- : ( 0x68 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x6A == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
-
-
-/*** GENERATED CODE ***/
-#define is_MULTI_CHAR_FOLD_utf8_safe_part5(s,e) \
-( ((e)-(s) > 4) ? \
- ( ( 0x61 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 2 )\
- : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
- : ( 0x68 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x6A == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
- : ( 0x74 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0x77 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x79 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8A == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x6E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
- : ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
- ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xB7 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?\
- ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
- ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 ) \
- : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( ( ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xCF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
- ( ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 ) \
- : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
- ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 ) \
- : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( ( ( 0x8E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( 0xD6 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xB4 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[3]) & 0xF7 ) == 0xA5 ) || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xAB || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xB6 ) ) ? 4 : 0 )\
- : ( ( ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB6 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
- : ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xD8 ) == 0x80 ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ) ? 5 : 0 )\
- : ( ( ( ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFB ) == 0xB0 ) || NATIVE_TO_LATIN1(((U8*)s)[2]) == 0xBC ) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ) ? 5 : 0 )\
+#define is_LNBREAK_latin1_safe(s,e) \
+( ((e)-(s) > 1) ? \
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 ) \
: 0 ) \
-: ((e)-(s) > 3) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
+: ((e)-(s) > 0) ? \
+ ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*
+ HORIZWS: Horizontal Whitespace: \h \H
+
+ \p{HorizSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_HORIZWS_high(s) \
+( ( 0xBD == ((U8*)s)[0] ) ? \
+ ( ( ( 0x62 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( 0x41 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( 0x56 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_HORIZWS_cp_high(cp) \
+( 0x1680 == cp || ( 0x1680 < cp && \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
+( 0x202F == cp || ( 0x202F < cp && \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
+
+/*
+ VERTWS: Vertical Whitespace: \v \V
+
+ \p{VertSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_VERTWS_high(s) \
+( ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_VERTWS_cp_high(cp) \
+( 0x2028 == cp || 0x2029 == cp )
+
+/*
+ XDIGIT: Hexadecimal digits
+
+ \p{XDigit}
+*/
+/*** GENERATED CODE ***/
+#define is_XDIGIT_high(s) \
+( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) ? ( ( 0x66 == ((U8*)s)[2] ) ?\
+ ( ( ( ( ((U8*)s)[3] & 0xF7 ) == 0x57 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x58 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x62 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) ) ? 4 : 0 )\
+ : ( ( 0x67 == ((U8*)s)[2] || 0x68 == ((U8*)s)[2] ) && ( 0x42 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
+
+/*** GENERATED CODE ***/
+#define is_XDIGIT_cp_high(cp) \
+( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp && \
+( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
+
+/*
+ XPERLSPACE: \p{XPerlSpace}
+
+ \p{XPerlSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_XPERLSPACE_high(s) \
+( ( 0xBD == ((U8*)s)[0] ) ? \
+ ( ( ( 0x62 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( 0x41 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_XPERLSPACE_cp_high(cp) \
+( 0x1680 == cp || ( 0x1680 < cp && \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
+( 0x2028 == cp || ( 0x2028 < cp && \
+( 0x2029 == cp || ( 0x2029 < cp && \
+( 0x202F == cp || ( 0x202F < cp && \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
+
+/*
+ REPLACEMENT: Unicode REPLACEMENT CHARACTER
+
+ 0xFFFD
+*/
+/*** GENERATED CODE ***/
+#define is_REPLACEMENT_utf8_safe(s,e) \
+( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((U8*)s)[0] ) ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x70 == ((U8*)s)[3] ) ) ? 4 : 0 )
+
+/*
+ NONCHAR: Non character code points
+
+ \p{Nchar}
+*/
+/*** GENERATED CODE ***/
+#define is_NONCHAR_utf8(s) \
+( ( 0xDD == ((U8*)s)[0] ) ? \
+ ( ( 0x72 == ((U8*)s)[1] ) ? \
+ ( ( 0x55 == ((U8*)s)[2] ) ? \
+ ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
+ : ( 0x56 == ((U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+ : ( ( 0x72 == ((U8*)s)[2] ) && ( 0x71 == ((U8*)s)[3] || 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
+: ( 0xDF == ((U8*)s)[0] || 0xEA == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x71 == ((U8*)s)[3] || 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+: ( 0xED == ((U8*)s)[0] ) ? \
+ ( ( ( ( ( ((U8*)s)[1] == 0x4A || ((U8*)s)[1] == 0x52 || ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) || ((U8*)s)[1] == 0x58 || ((U8*)s)[1] == 0x5F || ((U8*)s)[1] == 0x63 || ( ( ((U8*)s)[1] & 0xFD ) == 0x65 ) || ((U8*)s)[1] == 0x69 || ( ( ((U8*)s)[1] & 0xFD ) == 0x70 ) ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) && ( 0x71 == ((U8*)s)[4] || 0x72 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+: ( ( ( ( ( 0xEE == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) && ( 0x71 == ((U8*)s)[4] || 0x72 == ((U8*)s)[4] ) ) ? 5 : 0 )
+
+/*
+ SURROGATE: Surrogate characters
+
+ \p{Gc=Cs}
+*/
+/*** GENERATED CODE ***/
+#define is_SURROGATE_utf8(s) \
+( ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0x64 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
+
+/*
+ UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
+
+ 0xA0 - 0x3FFF
+*/
+/*** GENERATED CODE ***/
+#define is_UTF8_CHAR_utf8_no_length_checks(s) \
+( ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xAF ) || ( 0xB1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xB5 ) ) ?\
+ ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
+: ( ( ( ((U8*)s)[0] == 0xB7 || ( ( ((U8*)s)[0] & 0xFE ) == 0xB8 ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xCC ) ) && ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )
+
+/*
+ QUOTEMETA: Meta-characters that \Q should quote
+
+ \p{_Perl_Quotemeta}
+*/
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high_part0(s) \
+( ( 0x51 == ((U8*)s)[1] ) ? \
+ ( ( 0x72 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high_part1(s) \
+( ( 0xBD == ((U8*)s)[0] ) ? \
+ ( ( 0x62 == ((U8*)s)[1] ) ? \
+ ( ( 0x41 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x70 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x62 ) ) ? 3 : 0 )\
+: ( 0xBE == ((U8*)s)[0] ) ? \
+ ( ( ( 0x41 == ((U8*)s)[1] ) && ( 0x52 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( 0x41 == ((U8*)s)[1] || ( 0x54 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ?\
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+ : ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFE ) == 0x70 ) ? 3 : 0 )\
+ : ( 0x43 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x42 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x63 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+ : ( 0x44 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
+ : ( ( 0x53 == ((U8*)s)[1] ) && ( ( 0x57 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xCB == ((U8*)s)[0] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x43 ) || ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x68 ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ?\
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+ : ( 0x69 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( ((U8*)s)[2] & 0xFE ) == 0x62 ) ? 3 : 0 )\
+ : ( ( 0x6A == ((U8*)s)[1] ) && ( ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xCC == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xCD == ((U8*)s)[0] ) ? \
+ ( ( ( ( ( ((U8*)s)[1] & 0xF7 ) == 0x57 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x58 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xCE == ((U8*)s)[0] ) ? \
+ ( ( 0x41 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) || ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+ : ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( 0x41 == ((U8*)s)[2] || 0x57 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x45 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xDD == ((U8*)s)[0] ) ? \
+ ( ( 0x72 == ((U8*)s)[1] ) ? \
+ ( ( 0x4A == ((U8*)s)[2] ) ? \
+ ( ( 0x71 == ((U8*)s)[3] || 0x72 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( 0x57 == ((U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+ : ( 0x59 == ((U8*)s)[2] ) ? \
+ ( ( ( ((U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 ) \
+ : ( 0x65 == ((U8*)s)[2] ) ? \
+ ( ( 0x72 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( 0x70 == ((U8*)s)[2] ) ? \
+ ( ( 0x41 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0x72 == ((U8*)s)[2] ) && ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )\
+ : 0 ) \
+: ( 0xDF == ((U8*)s)[0] ) ? \
+ ( ( 0x56 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x46 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
+ : ( ( ( 0x62 == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) && ( 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x68 ) ) ) ? 4 : 0 )\
+: ( ( ( ( ( 0xED == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || 0x5F == ((U8*)s)[4] || ( 0x62 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high(s) \
+( ( 0xAF == ((U8*)s)[0] ) ? \
+ ( ( 0x56 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB7 == ((U8*)s)[0] ) ? \
+ ( ( ( 0x57 == ((U8*)s)[1] ) && ( 0x6A == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xBC == ((U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
+
+/*
+ MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
+
+ &regcharclass_multi_char_folds::multi_char_folds(1)
+*/
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
+( ( 0x81 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] ) ? \
+ ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x88 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x89 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x8E == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA2 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xAA == ((U8*)s)[0] ) ? \
+ ( ( ( 0x6A == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xB3 == ((U8*)s)[0] ) ? \
+ ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((U8*)s)[1] || 0x65 == ((U8*)s)[1] ) ? \
+ ( ( 0xAF == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x67 == ((U8*)s)[1] ) && ( 0xAF == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB4 == ((U8*)s)[0] ) ? \
+ ( ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[2] ) && ( 0x5F == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((U8*)s)[1] ) ? \
+ ( ( 0xAD == ((U8*)s)[2] ) ? \
+ ( ( 0x5F == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((U8*)s)[1] ) ? \
+ ( ( 0xAF == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xBF == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0x66 ) ? \
+ ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x69 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || 0x6A == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
+( ((e)-(s) > 3) ? \
+ ( ( 0x81 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] ) ? \
+ ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x88 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x89 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x8E == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA2 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xAA == ((U8*)s)[0] ) ? \
+ ( ( ( 0x6A == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xB3 == ((U8*)s)[0] ) ? \
+ ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((U8*)s)[1] || 0x65 == ((U8*)s)[1] ) ? \
+ ( ( 0xAF == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x67 == ((U8*)s)[1] ) && ( 0xAF == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB4 == ((U8*)s)[0] ) ? \
+ ( ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[2] ) && ( 0x5F == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((U8*)s)[1] ) ? \
+ ( ( 0xAD == ((U8*)s)[2] ) ? \
+ ( ( 0x5F == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((U8*)s)[1] ) ? \
+ ( ( 0xAF == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
+: ((e)-(s) > 2) ? \
+ ( ( 0x81 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] ) ? \
+ ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x88 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x89 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x91 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA2 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( ( ( 0xAA == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ? \
+ ( ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] || 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )\
+ : ( ( 0xA2 == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
+: 0 )
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
-( ((e)-(s) > 5) ? is_MULTI_CHAR_FOLD_utf8_safe_part4(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part5(s,e) )
+( ((e)-(s) > 5) ? \
+ ( ( 0x81 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] ) ? \
+ ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x88 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x89 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x8E == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA2 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xAA == ((U8*)s)[0] ) ? \
+ ( ( ( 0x6A == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xB3 == ((U8*)s)[0] ) ? \
+ ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((U8*)s)[1] || 0x65 == ((U8*)s)[1] ) ? \
+ ( ( 0xAF == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? \
+ ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x67 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x67 == ((U8*)s)[1] ) ? \
+ ( ( 0xAD == ((U8*)s)[2] ) ? \
+ ( ( 0x49 == ((U8*)s)[3] ) ? \
+ ( ( 0xAD == ((U8*)s)[4] ) ? \
+ ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
+ : ( ( 0xAF == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : 0 ) \
+ : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
+ : ( 0xB4 == ((U8*)s)[0] ) ? \
+ ( ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xAD == ((U8*)s)[2] ) && ( 0x5F == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((U8*)s)[1] ) ? \
+ ( ( 0xAD == ((U8*)s)[2] ) ? \
+ ( ( 0x49 == ((U8*)s)[3] ) ? \
+ ( ( 0xAD == ((U8*)s)[4] ) ? \
+ ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
+ : ( ( 0xAF == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x5F == ((U8*)s)[3] ) ? \
+ ( ( 0xAD == ((U8*)s)[4] ) ? \
+ ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 4 )\
+ : ( ( 0xAF == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((U8*)s)[1] ) ? \
+ ( ( 0xAF == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? \
+ ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x67 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB7 == ((U8*)s)[0] ) ? \
+ ( ( 0x52 == ((U8*)s)[1] ) ? \
+ ( ( 0x46 == ((U8*)s)[2] ) ? \
+ ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x53 == ((U8*)s)[4] ) ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x62 == ((U8*)s)[2] ) ? \
+ ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x46 == ((U8*)s)[5] || 0x52 == ((U8*)s)[5] || 0x54 == ((U8*)s)[5] || 0x64 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( ( ( ( 0x71 == ((U8*)s)[2] ) && ( 0xB7 == ((U8*)s)[3] ) ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x64 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : 0 ) \
+ : ( 0xBF == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0x66 ) ? \
+ ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x69 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || 0x6A == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 ) \
+: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
/*
MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
@@ -602,15 +1703,15 @@
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
( ((e)-(s) > 2) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xDF ) == 0x46 ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x46 ) ? \
- ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xDF ) == 0x49 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
- : ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x49 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
- : ( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xDF ) == 0x53 ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x53 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
+ ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ( ((U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
+ : ( ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+ : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xDF ) == 0x46 ) ? \
- ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x46 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x49 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
- : ( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xDF ) == 0x53 ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x53 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
+ ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+ : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
: 0 )
/*
@@ -620,25 +1721,27 @@
*/
/*** GENERATED CODE ***/
#define is_FOLDS_TO_MULTI_utf8(s) \
-( ( 0xC3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
-: ( 0xC4 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0xC7 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
- ( ( 0xB0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
-: ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
-: ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x90 ) ? 2 : 0 ) \
-: ( 0xD6 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
-: ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0xBA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( 0x96 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x9A ) || 0x9E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
- : ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF9 ) == 0x90 ) ? 3 : 0 ) \
- : ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
- ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xE0 ) == 0x80 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF0 ) == 0xA0 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFA ) == 0xB2 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF7 ) == 0xB4 ) ) ? 3 : 0 )\
- : ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xCA ) == 0x82 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF7 ) == 0x84 ) || NATIVE_TO_LATIN1(((U8*)s)[2]) == 0xA4 || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
-: ( ( ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xAC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) || ( 0x93 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x97 ) ) ) ? 3 : 0 )
+( ( 0x80 == ((U8*)s)[0] ) ? \
+ ( ( 0x72 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8C == ((U8*)s)[0] || 0x9B == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?\
+ ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8D == ((U8*)s)[0] ) ? \
+ ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB7 == ((U8*)s)[0] ) ? \
+ ( ( ( 0x53 == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xBF == ((U8*)s)[0] ) ? \
+ ( ( 0x62 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x68 ) || 0x71 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x68 == ((U8*)s)[1] ) ? \
+ ( ( 0x57 == ((U8*)s)[2] || 0x59 == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x6A == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+ : ( 0x70 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) || 0x59 == ((U8*)s)[2] || 0x5F == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || ( ((U8*)s)[2] & 0xFE ) == 0x64 || 0x6A == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x71 == ((U8*)s)[1] ) ? \
+ ( ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xDE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x53 || ((U8*)s)[2] == 0x59 || ((U8*)s)[2] == 0x5F ) ? 3 : 0 )\
+ : ( ( 0x72 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xDE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x59 || ((U8*)s)[2] == 0x5F || ( ( ((U8*)s)[2] & 0xF7 ) == 0x62 ) ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x71 == ((U8*)s)[1] ) ) && ( 0x66 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x65 ) ) ) ? 4 : 0 )
/*
PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
@@ -647,35 +1750,37 @@
*/
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
-( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0x80 ) == 0x00 ) ? 1 \
-: ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xFE ) == 0xC2 ) ? \
- 2 \
-: ( 0xC4 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0xC7 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
- ( ( 0xB0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
-: ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xB8 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
-: ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x9C ) ? 2 : 0 ) \
-: ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xBA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( 0x96 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x9A ) || 0x9E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0x84 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
-: ( ( ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xAC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )
+( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x5C ) || ((U8*)s)[0] == 0x5E || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x6C ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ((U8*)s)[0] == 0xB0 || ( ( ((U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
+: ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || 0x8A == ((U8*)s)[0] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
+: ( 0x8C == ((U8*)s)[0] || 0x9B == ((U8*)s)[0] ) ? \
+ ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8D == ((U8*)s)[0] ) ? \
+ ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8E == ((U8*)s)[0] ) ? \
+ ( ( 0x66 == ((U8*)s)[1] || 0x72 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ? \
+ ( ( 0x6A == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xBF == ((U8*)s)[0] ) ? \
+ ( ( ( 0x62 == ((U8*)s)[1] ) && ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x68 ) || 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x71 == ((U8*)s)[1] ) ) && ( 0x66 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
-( NATIVE_TO_UNI(cp) <= 0xFF || ( 0xFF < NATIVE_TO_UNI(cp) && \
-( 0x130 == NATIVE_TO_UNI(cp) || ( 0x130 < NATIVE_TO_UNI(cp) && \
-( 0x149 == NATIVE_TO_UNI(cp) || ( 0x149 < NATIVE_TO_UNI(cp) && \
-( 0x178 == NATIVE_TO_UNI(cp) || ( 0x178 < NATIVE_TO_UNI(cp) && \
-( 0x17F == NATIVE_TO_UNI(cp) || ( 0x17F < NATIVE_TO_UNI(cp) && \
-( 0x1F0 == NATIVE_TO_UNI(cp) || ( 0x1F0 < NATIVE_TO_UNI(cp) && \
-( 0x39C == NATIVE_TO_UNI(cp) || ( 0x39C < NATIVE_TO_UNI(cp) && \
-( 0x3BC == NATIVE_TO_UNI(cp) || ( 0x3BC < NATIVE_TO_UNI(cp) && \
-( ( 0x1E96 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x1E9A ) || ( 0x1E9A < NATIVE_TO_UNI(cp) &&\
-( 0x1E9E == NATIVE_TO_UNI(cp) || ( 0x1E9E < NATIVE_TO_UNI(cp) && \
-( 0x212A == NATIVE_TO_UNI(cp) || ( 0x212A < NATIVE_TO_UNI(cp) && \
-( 0x212B == NATIVE_TO_UNI(cp) || ( 0xFB00 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+( cp <= 0xFF || ( 0xFF < cp && \
+( 0x130 == cp || ( 0x130 < cp && \
+( 0x149 == cp || ( 0x149 < cp && \
+( 0x178 == cp || ( 0x178 < cp && \
+( 0x17F == cp || ( 0x17F < cp && \
+( 0x1F0 == cp || ( 0x1F0 < cp && \
+( 0x39C == cp || ( 0x39C < cp && \
+( 0x3BC == cp || ( 0x3BC < cp && \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
+( 0x1E9E == cp || ( 0x1E9E < cp && \
+( 0x212A == cp || ( 0x212A < cp && \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
/*
PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
@@ -684,38 +1789,38 @@
*/
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
-( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0x80 ) == 0x00 ) ? 1 \
-: ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xFE ) == 0xC2 ) ? \
- 2 \
-: ( 0xC4 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0xC7 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
- ( ( 0xB0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
-: ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xB8 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
-: ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
-: ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x9C ) ? 2 : 0 ) \
-: ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0xBA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( 0x96 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x9A ) || 0x9E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( ( 0x84 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
-: ( ( ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xAC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )
+( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x5C ) || ((U8*)s)[0] == 0x5E || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x6C ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ((U8*)s)[0] == 0xB0 || ( ( ((U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
+: ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || 0x8A == ((U8*)s)[0] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
+: ( 0x8C == ((U8*)s)[0] || 0x9B == ((U8*)s)[0] ) ? \
+ ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8D == ((U8*)s)[0] ) ? \
+ ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8E == ((U8*)s)[0] ) ? \
+ ( ( 0x66 == ((U8*)s)[1] || 0x72 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xAA == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ? \
+ ( ( 0x6A == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xBF == ((U8*)s)[0] ) ? \
+ ( ( ( 0x62 == ((U8*)s)[1] ) && ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x68 ) || 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x71 == ((U8*)s)[1] ) ) && ( 0x66 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
-( NATIVE_TO_UNI(cp) <= 0xFF || ( 0xFF < NATIVE_TO_UNI(cp) && \
-( 0x130 == NATIVE_TO_UNI(cp) || ( 0x130 < NATIVE_TO_UNI(cp) && \
-( 0x149 == NATIVE_TO_UNI(cp) || ( 0x149 < NATIVE_TO_UNI(cp) && \
-( 0x178 == NATIVE_TO_UNI(cp) || ( 0x178 < NATIVE_TO_UNI(cp) && \
-( 0x17F == NATIVE_TO_UNI(cp) || ( 0x17F < NATIVE_TO_UNI(cp) && \
-( 0x1F0 == NATIVE_TO_UNI(cp) || ( 0x1F0 < NATIVE_TO_UNI(cp) && \
-( 0x2BC == NATIVE_TO_UNI(cp) || ( 0x2BC < NATIVE_TO_UNI(cp) && \
-( 0x39C == NATIVE_TO_UNI(cp) || ( 0x39C < NATIVE_TO_UNI(cp) && \
-( 0x3BC == NATIVE_TO_UNI(cp) || ( 0x3BC < NATIVE_TO_UNI(cp) && \
-( ( 0x1E96 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x1E9A ) || ( 0x1E9A < NATIVE_TO_UNI(cp) &&\
-( 0x1E9E == NATIVE_TO_UNI(cp) || ( 0x1E9E < NATIVE_TO_UNI(cp) && \
-( 0x212A == NATIVE_TO_UNI(cp) || ( 0x212A < NATIVE_TO_UNI(cp) && \
-( 0x212B == NATIVE_TO_UNI(cp) || ( 0xFB00 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+( cp <= 0xFF || ( 0xFF < cp && \
+( 0x130 == cp || ( 0x130 < cp && \
+( 0x149 == cp || ( 0x149 < cp && \
+( 0x178 == cp || ( 0x178 < cp && \
+( 0x17F == cp || ( 0x17F < cp && \
+( 0x1F0 == cp || ( 0x1F0 < cp && \
+( 0x2BC == cp || ( 0x2BC < cp && \
+( 0x39C == cp || ( 0x39C < cp && \
+( 0x3BC == cp || ( 0x3BC < cp && \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
+( 0x1E9E == cp || ( 0x1E9E < cp && \
+( 0x212A == cp || ( 0x212A < cp && \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
/*
PATWS: pattern white space
@@ -724,39 +1829,692 @@
*/
/*** GENERATED CODE ***/
#define is_PATWS_safe(s,e,is_utf8) \
-( ((e) > (s)) ? \
- ( ( ( 0x09 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
- : (! is_utf8 ) ? \
- ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) \
- : (((e) - (s)) >= UTF8SKIP(s)) ? \
- ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
- : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0x8E || ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
- : 0 ) \
+( ( LIKELY((e) > (s)) ) ? \
+ ( ( ( ( ((U8*)s)[0] & 0xEF ) == 0x05 ) || ((U8*)s)[0] == 0x0B || ( ( ((U8*)s)[0] & 0xFE ) == 0x0C ) || ((U8*)s)[0] == 0x25 || ((U8*)s)[0] == 0x40 ) ? 1\
+ : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((U8*)s)[0] ) ) ? ( ( 0x41 == ((U8*)s)[1] ) ?\
+ ( ( 0x55 == ((U8*)s)[2] || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x42 == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
: 0 )
/*** GENERATED CODE ***/
-#define is_PATWS_non_low_safe(s,e,is_utf8) \
-( ((e) > (s)) ? \
- ( (! is_utf8) ? \
- ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) \
- : (((e) - (s)) >= UTF8SKIP(s)) ? \
- ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
- ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
- : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0x8E || ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
+#define is_PATWS_cp(cp) \
+( 0x05 == cp || ( 0x05 < cp && \
+( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp && \
+( 0x15 == cp || ( 0x15 < cp && \
+( 0x25 == cp || ( 0x25 < cp && \
+( 0x40 == cp || ( 0x40 < cp && \
+( 0x200E == cp || ( 0x200E < cp && \
+( 0x200F == cp || ( 0x200F < cp && \
+( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+#endif /* EBCDIC 037 */
+
+#if 'A' == 193 /* EBCDIC POSIX-BC */ \
+ && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
+ && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 74
+/*
+ LNBREAK: Line Break: \R
+
+ "\x0D\x0A" # CRLF - Network (Windows) line ending
+ \p{VertSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_LNBREAK_safe(s,e,is_utf8) \
+( ((e)-(s) > 2) ? \
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ : ( ( ( ( is_utf8 ) && ( 0xCA == ((U8*)s)[0] ) ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ? \
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
: 0 ) \
+: ((e)-(s) > 0) ? \
+ ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*** GENERATED CODE ***/
+#define is_LNBREAK_utf8_safe(s,e) \
+( ((e)-(s) > 2) ? \
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ? \
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ : 0 ) \
+: ((e)-(s) > 0) ? \
+ ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*** GENERATED CODE ***/
+#define is_LNBREAK_latin1_safe(s,e) \
+( ((e)-(s) > 1) ? \
+ ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((U8*)s)[0] ) ? \
+ ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ : 0 ) \
+: ((e)-(s) > 0) ? \
+ ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*
+ HORIZWS: Horizontal Whitespace: \h \H
+
+ \p{HorizSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_HORIZWS_high(s) \
+( ( 0xBE == ((U8*)s)[0] ) ? \
+ ( ( ( 0x64 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( 0x41 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( 0x57 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x75 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_HORIZWS_cp_high(cp) \
+( 0x1680 == cp || ( 0x1680 < cp && \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
+( 0x202F == cp || ( 0x202F < cp && \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
+
+/*
+ VERTWS: Vertical Whitespace: \v \V
+
+ \p{VertSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_VERTWS_high(s) \
+( ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_VERTWS_cp_high(cp) \
+( 0x2028 == cp || 0x2029 == cp )
+
+/*
+ XDIGIT: Hexadecimal digits
+
+ \p{XDigit}
+*/
+/*** GENERATED CODE ***/
+#define is_XDIGIT_high(s) \
+( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x75 == ((U8*)s)[1] ) ) ? ( ( 0x68 == ((U8*)s)[2] ) ?\
+ ( ( ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) ) ? 4 : 0 )\
+ : ( ( 0x69 == ((U8*)s)[2] || 0x70 == ((U8*)s)[2] ) && ( 0x42 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
+
+/*** GENERATED CODE ***/
+#define is_XDIGIT_cp_high(cp) \
+( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp && \
+( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
+
+/*
+ XPERLSPACE: \p{XPerlSpace}
+
+ \p{XPerlSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_XPERLSPACE_high(s) \
+( ( 0xBE == ((U8*)s)[0] ) ? \
+ ( ( ( 0x64 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( 0x41 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] || 0x57 == ((U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x75 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_XPERLSPACE_cp_high(cp) \
+( 0x1680 == cp || ( 0x1680 < cp && \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
+( 0x2028 == cp || ( 0x2028 < cp && \
+( 0x2029 == cp || ( 0x2029 < cp && \
+( 0x202F == cp || ( 0x202F < cp && \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
+
+/*
+ REPLACEMENT: Unicode REPLACEMENT CHARACTER
+
+ 0xFFFD
+*/
+/*** GENERATED CODE ***/
+#define is_REPLACEMENT_utf8_safe(s,e) \
+( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDC == ((U8*)s)[0] ) ) && ( 0x75 == ((U8*)s)[1] ) ) && ( 0x75 == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )
+
+/*
+ NONCHAR: Non character code points
+
+ \p{Nchar}
+*/
+/*** GENERATED CODE ***/
+#define is_NONCHAR_utf8(s) \
+( ( 0xDC == ((U8*)s)[0] ) ? \
+ ( ( 0x75 == ((U8*)s)[1] ) ? \
+ ( ( 0x56 == ((U8*)s)[2] ) ? \
+ ( ( ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
+ : ( 0x57 == ((U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x57 ) ) ? 4 : 0 )\
+ : ( ( 0x75 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x74 ) ) ? 4 : 0 )\
+ : 0 ) \
+: ( 0xDE == ((U8*)s)[0] || 0xE0 == ((U8*)s)[0] || 0xEA == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x75 == ((U8*)s)[1] ) && ( 0x75 == ((U8*)s)[2] ) ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x74 ) ) ? 4 : 0 )\
+: ( 0xEB == ((U8*)s)[0] ) ? \
+ ( ( ( ( ( ( ( ((U8*)s)[1] & 0xF9 ) == 0x51 ) || ((U8*)s)[1] == 0x59 || ((U8*)s)[1] == 0x63 || ( ( ((U8*)s)[1] & 0xFD ) == 0x65 ) || ((U8*)s)[1] == 0x69 || ( ( ((U8*)s)[1] & 0xFD ) == 0x71 ) || ((U8*)s)[1] == 0x75 ) && ( 0x75 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x74 ) ) ? 5 : 0 )\
+: ( ( ( ( ( 0xEC == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x75 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x74 ) ) ? 5 : 0 )
+
+/*
+ SURROGATE: Surrogate characters
+
+ \p{Gc=Cs}
+*/
+/*** GENERATED CODE ***/
+#define is_SURROGATE_utf8(s) \
+( ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0x66 ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) && ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ) ? 4 : 0 )
+
+/*
+ UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
+
+ 0xA0 - 0x3FFF
+*/
+/*** GENERATED CODE ***/
+#define is_UTF8_CHAR_utf8_no_length_checks(s) \
+( ( ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA1 ) || ( 0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xB5 ) ) ?\
+ ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) ? 2 : 0 )\
+: ( ( ( ( 0xB7 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xBA ) || ( 0xBE <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xC0 ) || ( 0xCA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xD0 ) || 0xDA == ((U8*)s)[0] ) && ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )
+
+/*
+ QUOTEMETA: Meta-characters that \Q should quote
+
+ \p{_Perl_Quotemeta}
+*/
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high_part0(s) \
+( ( 0x64 == ((U8*)s)[1] ) ? \
+ ( ( 0x41 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x73 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x64 ) ) ? 3 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high_part1(s) \
+( ( 0xBF == ((U8*)s)[0] ) ? \
+ ( ( ( 0x41 == ((U8*)s)[1] ) && ( 0x53 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( 0x41 == ((U8*)s)[1] || ( 0x55 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x69 ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x75 ) ) ?\
+ ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
+ : ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x74 ) ) ? 3 : 0 )\
+ : ( 0x43 == ((U8*)s)[1] ) ? \
+ ( ( ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ((U8*)s)[2] == 0x51 || ((U8*)s)[2] == 0x65 || ( ( ((U8*)s)[2] & 0xFE ) == 0x66 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
+ : ( 0x44 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x57 ) ) ? 3 : 0 )\
+ : ( ( 0x54 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x75 ) ) ) ? 3 : 0 )\
+: ( 0xCB == ((U8*)s)[0] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x43 ) || 0x49 == ((U8*)s)[1] || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x69 ) || 0x70 == ((U8*)s)[1] || ( 0x73 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x75 ) ) ?\
+ ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
+ : ( 0x71 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x65 ) ) ? 3 : 0 )\
+ : ( ( 0x72 == ((U8*)s)[1] ) && ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x75 ) ) ) ? 3 : 0 )\
+: ( 0xCC == ((U8*)s)[0] ) ? \
+ ( ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
+: ( 0xCD == ((U8*)s)[0] ) ? \
+ ( ( ( ( ((U8*)s)[1] & 0xFE ) == 0x58 || ( ((U8*)s)[1] & 0xFE ) == 0x62 ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
+: ( 0xCE == ((U8*)s)[0] ) ? \
+ ( ( 0x41 == ((U8*)s)[1] ) ? \
+ ( ( ( ( ((U8*)s)[2] & 0xE7 ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ((U8*)s)[2] == 0x44 || ( ( ((U8*)s)[2] & 0xFC ) == 0x54 ) || ((U8*)s)[2] == 0x58 || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
+ : ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( 0x41 == ((U8*)s)[2] || 0x58 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x53 == ((U8*)s)[1] ) && ( 0x45 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xDC == ((U8*)s)[0] ) ? \
+ ( ( 0x75 == ((U8*)s)[1] ) ? \
+ ( ( 0x51 == ((U8*)s)[2] ) ? \
+ ( ( ( ((U8*)s)[3] & 0xFE ) == 0x74 ) ? 4 : 0 ) \
+ : ( 0x58 == ((U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x57 ) ) ? 4 : 0 )\
+ : ( 0x62 == ((U8*)s)[2] ) ? \
+ ( ( ( ((U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 ) \
+ : ( 0x67 == ((U8*)s)[2] ) ? \
+ ( ( 0x75 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( 0x73 == ((U8*)s)[2] ) ? \
+ ( ( 0x41 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0x75 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x68 ) ) ) ? 4 : 0 )\
+ : 0 ) \
+: ( 0xDE == ((U8*)s)[0] ) ? \
+ ( ( 0x57 == ((U8*)s)[1] ) ? \
+ ( ( ( 0x46 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
+ : ( ( ( 0x64 == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) && ( ( 0x63 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || 0x70 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+: ( ( ( ( ( 0xEB == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) ) && ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ) && ( ( ( ((U8*)s)[4] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[4] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[4] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[4] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[4] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[4] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[4] & 0xFA ) == 0x70 ) ) ) ? 5 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high(s) \
+( ( 0xB0 == ((U8*)s)[0] ) ? \
+ ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB7 == ((U8*)s)[0] ) ? \
+ ( ( ( 0x58 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xBA == ((U8*)s)[0] ) ? \
+ ( ( 0x52 == ((U8*)s)[1] ) ? \
+ ( ( 0x75 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x53 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xBE == ((U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
+
+/*
+ MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
+
+ &regcharclass_multi_char_folds::multi_char_folds(1)
+*/
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
+( ( 0x81 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x74 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] ) ? \
+ ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x88 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x59 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x89 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x90 == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x75 == ((U8*)s)[1] ) && ( 0x90 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x54 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA2 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xAB == ((U8*)s)[0] ) ? \
+ ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xB3 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) ? \
+ ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x59 == ((U8*)s)[1] || 0x67 == ((U8*)s)[1] ) ? \
+ ( ( 0xB0 == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x69 == ((U8*)s)[1] ) && ( 0xB0 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB4 == ((U8*)s)[0] ) ? \
+ ( ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[2] ) && ( 0x63 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((U8*)s)[1] ) ? \
+ ( ( 0xAE == ((U8*)s)[2] ) ? \
+ ( ( 0x63 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB0 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x51 == ((U8*)s)[1] ) ? \
+ ( ( 0xB0 == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x56 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xC0 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) ? \
+ ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x69 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x71 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x58 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] || 0x72 == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x69 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
+( ((e)-(s) > 3) ? \
+ ( ( 0x81 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x74 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] ) ? \
+ ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x88 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x59 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x89 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x90 == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x75 == ((U8*)s)[1] ) && ( 0x90 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x54 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA2 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xAB == ((U8*)s)[0] ) ? \
+ ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xB3 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) ? \
+ ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x59 == ((U8*)s)[1] || 0x67 == ((U8*)s)[1] ) ? \
+ ( ( 0xB0 == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x69 == ((U8*)s)[1] ) && ( 0xB0 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB4 == ((U8*)s)[0] ) ? \
+ ( ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[2] ) && ( 0x63 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((U8*)s)[1] ) ? \
+ ( ( 0xAE == ((U8*)s)[2] ) ? \
+ ( ( 0x63 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB0 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x51 == ((U8*)s)[1] ) ? \
+ ( ( 0xB0 == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x56 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
+: ((e)-(s) > 2) ? \
+ ( ( 0x81 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x74 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] ) ? \
+ ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x88 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x59 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x89 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x91 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x54 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA2 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( ( ( 0xAB == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ? \
+ ( ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] || 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )\
+ : ( ( 0xA2 == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
+: 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
+( ((e)-(s) > 5) ? \
+ ( ( 0x81 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x74 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x86 == ((U8*)s)[0] ) ? \
+ ( ( 0x86 == ((U8*)s)[1] ) ? \
+ ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
+ : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0x88 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x59 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x89 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0x90 == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x75 == ((U8*)s)[1] ) && ( 0x90 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x54 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA2 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xAB == ((U8*)s)[0] ) ? \
+ ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+ : ( 0xB3 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) ? \
+ ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x59 == ((U8*)s)[1] || 0x67 == ((U8*)s)[1] ) ? \
+ ( ( 0xB0 == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? \
+ ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x69 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x69 == ((U8*)s)[1] ) ? \
+ ( ( 0xAE == ((U8*)s)[2] ) ? \
+ ( ( 0x49 == ((U8*)s)[3] ) ? \
+ ( ( 0xAE == ((U8*)s)[4] ) ? \
+ ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
+ : ( ( 0xB0 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : 0 ) \
+ : ( ( 0xB0 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
+ : ( 0xB4 == ((U8*)s)[0] ) ? \
+ ( ( 0x42 == ((U8*)s)[1] ) ? \
+ ( ( ( 0xAE == ((U8*)s)[2] ) && ( 0x63 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((U8*)s)[1] ) ? \
+ ( ( 0xAE == ((U8*)s)[2] ) ? \
+ ( ( 0x49 == ((U8*)s)[3] ) ? \
+ ( ( 0xAE == ((U8*)s)[4] ) ? \
+ ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
+ : ( ( 0xB0 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x63 == ((U8*)s)[3] ) ? \
+ ( ( 0xAE == ((U8*)s)[4] ) ? \
+ ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 4 )\
+ : ( ( 0xB0 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xB0 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x51 == ((U8*)s)[1] ) ? \
+ ( ( 0xB0 == ((U8*)s)[2] ) ? \
+ ( ( 0x43 == ((U8*)s)[3] ) ? \
+ ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x69 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x56 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB7 == ((U8*)s)[0] ) ? \
+ ( ( 0x53 == ((U8*)s)[1] ) ? \
+ ( ( 0x46 == ((U8*)s)[2] ) ? \
+ ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x54 == ((U8*)s)[4] ) ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x64 == ((U8*)s)[2] ) ? \
+ ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x53 == ((U8*)s)[4] ) ) && ( ( ( ((U8*)s)[5] & 0xDF ) == 0x46 ) || ((U8*)s)[5] == 0x53 || ((U8*)s)[5] == 0x55 ) ) ? 6 : 0 )\
+ : ( ( ( ( 0x74 == ((U8*)s)[2] ) && ( 0xB7 == ((U8*)s)[3] ) ) && ( 0x53 == ((U8*)s)[4] ) ) && ( 0x66 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : 0 ) \
+ : ( 0xC0 == ((U8*)s)[0] ) ? \
+ ( ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) ? \
+ ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x69 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x71 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x58 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] || 0x72 == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x69 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 ) \
+: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
+
+/*
+ MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
+
+ &regcharclass_multi_char_folds::multi_char_folds(0)
+*/
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
+( ((e)-(s) > 2) ? \
+ ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ( ((U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
+ : ( ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+ : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
+: ((e)-(s) > 1) ? \
+ ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+ : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
+: 0 )
+
+/*
+ FOLDS_TO_MULTI: characters that fold to multi-char strings
+
+ \p{_Perl_Folds_To_Multi_Char}
+*/
+/*** GENERATED CODE ***/
+#define is_FOLDS_TO_MULTI_utf8(s) \
+( ( 0x8B == ((U8*)s)[0] ) ? \
+ ( ( 0x75 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8E == ((U8*)s)[0] || 0x9D == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?\
+ ( ( 0x58 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8F == ((U8*)s)[0] ) ? \
+ ( ( 0x51 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB7 == ((U8*)s)[0] ) ? \
+ ( ( ( 0x54 == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
+: ( 0xC0 == ((U8*)s)[0] ) ? \
+ ( ( 0x64 == ((U8*)s)[1] ) ? \
+ ( ( ( ( ((U8*)s)[2] & 0xFE ) == 0x66 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0x70 ) ) ? 3 : 0 )\
+ : ( 0x70 == ((U8*)s)[1] ) ? \
+ ( ( ((U8*)s)[2] == 0x58 || ((U8*)s)[2] == 0x62 || ( ( ((U8*)s)[2] & 0xFD ) == 0x64 ) ) ? 3 : 0 )\
+ : ( 0x72 == ((U8*)s)[1] ) ? \
+ ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
+ : ( 0x73 == ((U8*)s)[1] ) ? \
+ ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x62 ) || ((U8*)s)[2] == 0x64 || ((U8*)s)[2] == 0x72 ) ? 3 : 0 )\
+ : ( 0x74 == ((U8*)s)[1] ) ? \
+ ( ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x54 || ( ( ((U8*)s)[2] & 0xFA ) == 0x62 ) ) ? 3 : 0 )\
+ : ( ( 0x75 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ( ( ((U8*)s)[2] & 0xFA ) == 0x62 ) || ((U8*)s)[2] == 0x64 || ((U8*)s)[2] == 0x72 ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x74 == ((U8*)s)[1] ) ) && ( 0x68 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x63 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x67 ) ) ) ? 4 : 0 )
+
+/*
+ PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
+
+ \p{_Perl_Problematic_Locale_Folds}
+*/
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
+( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0x4A ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xAF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xBF ) == 0xBB ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xBC ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC2 ) || ( ( ((U8*)s)[0] & 0xCC ) == 0xC4 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xF0 ) || ( ( ((U8*)s)[0] & 0xFD ) == 0xFD ) ) ? 1\
+: ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x8C ) ? \
+ ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) ? 2 : 0 )\
+: ( 0x8E == ((U8*)s)[0] || 0x9D == ((U8*)s)[0] ) ? \
+ ( ( 0x58 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8F == ((U8*)s)[0] ) ? \
+ ( ( 0x51 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x90 == ((U8*)s)[0] ) ? \
+ ( ( 0x68 == ((U8*)s)[1] || 0x75 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ? \
+ ( ( 0x72 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xC0 == ((U8*)s)[0] ) ? \
+ ( ( ( 0x64 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFE ) == 0x66 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0x70 ) ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( ( 0x51 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x52 ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x74 == ((U8*)s)[1] ) ) && ( 0x68 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
+( cp <= 0xFF || ( 0xFF < cp && \
+( 0x130 == cp || ( 0x130 < cp && \
+( 0x149 == cp || ( 0x149 < cp && \
+( 0x178 == cp || ( 0x178 < cp && \
+( 0x17F == cp || ( 0x17F < cp && \
+( 0x1F0 == cp || ( 0x1F0 < cp && \
+( 0x39C == cp || ( 0x39C < cp && \
+( 0x3BC == cp || ( 0x3BC < cp && \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
+( 0x1E9E == cp || ( 0x1E9E < cp && \
+( 0x212A == cp || ( 0x212A < cp && \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+/*
+ PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
+
+ \p{_Perl_Problematic_Locale_Foldeds_Start}
+*/
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
+( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0x4A ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xAF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xBF ) == 0xBB ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xBC ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC2 ) || ( ( ((U8*)s)[0] & 0xCC ) == 0xC4 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xF0 ) || ( ( ((U8*)s)[0] & 0xFD ) == 0xFD ) ) ? 1\
+: ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x8C ) ? \
+ ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) ? 2 : 0 )\
+: ( 0x8E == ((U8*)s)[0] || 0x9D == ((U8*)s)[0] ) ? \
+ ( ( 0x58 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8F == ((U8*)s)[0] ) ? \
+ ( ( 0x51 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x90 == ((U8*)s)[0] ) ? \
+ ( ( 0x68 == ((U8*)s)[1] || 0x75 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xAB == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ? \
+ ( ( 0x72 == ((U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xC0 == ((U8*)s)[0] ) ? \
+ ( ( ( 0x64 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFE ) == 0x66 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0x70 ) ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ? \
+ ( ( ( 0x51 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x52 ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x74 == ((U8*)s)[1] ) ) && ( 0x68 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
+( cp <= 0xFF || ( 0xFF < cp && \
+( 0x130 == cp || ( 0x130 < cp && \
+( 0x149 == cp || ( 0x149 < cp && \
+( 0x178 == cp || ( 0x178 < cp && \
+( 0x17F == cp || ( 0x17F < cp && \
+( 0x1F0 == cp || ( 0x1F0 < cp && \
+( 0x2BC == cp || ( 0x2BC < cp && \
+( 0x39C == cp || ( 0x39C < cp && \
+( 0x3BC == cp || ( 0x3BC < cp && \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
+( 0x1E9E == cp || ( 0x1E9E < cp && \
+( 0x212A == cp || ( 0x212A < cp && \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+/*
+ PATWS: pattern white space
+
+ \p{PatWS}
+*/
+/*** GENERATED CODE ***/
+#define is_PATWS_safe(s,e,is_utf8) \
+( ( LIKELY((e) > (s)) ) ? \
+ ( ( ( ( ((U8*)s)[0] & 0xEF ) == 0x05 ) || ((U8*)s)[0] == 0x0B || ( ( ((U8*)s)[0] & 0xFE ) == 0x0C ) || ((U8*)s)[0] == 0x25 || ((U8*)s)[0] == 0x40 ) ? 1\
+ : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((U8*)s)[0] ) ) ? ( ( 0x41 == ((U8*)s)[1] ) ?\
+ ( ( ( ((U8*)s)[2] & 0xFE ) == 0x56 ) ? 3 : 0 ) \
+ : ( ( 0x42 == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
: 0 )
/*** GENERATED CODE ***/
#define is_PATWS_cp(cp) \
-( ( 0x09 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x0D ) || ( 0x0D < NATIVE_TO_UNI(cp) &&\
-( 0x20 == NATIVE_TO_UNI(cp) || ( 0x20 < NATIVE_TO_UNI(cp) && \
-( 0x85 == NATIVE_TO_UNI(cp) || ( 0x85 < NATIVE_TO_UNI(cp) && \
-( 0x200E == NATIVE_TO_UNI(cp) || ( 0x200E < NATIVE_TO_UNI(cp) && \
-( 0x200F == NATIVE_TO_UNI(cp) || ( 0x200F < NATIVE_TO_UNI(cp) && \
-( 0x2028 == NATIVE_TO_UNI(cp) || 0x2029 == NATIVE_TO_UNI(cp) ) ) ) ) ) ) ) ) ) ) )
+( 0x05 == cp || ( 0x05 < cp && \
+( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp && \
+( 0x15 == cp || ( 0x15 < cp && \
+( 0x25 == cp || ( 0x25 < cp && \
+( 0x40 == cp || ( 0x40 < cp && \
+( 0x200E == cp || ( 0x200E < cp && \
+( 0x200F == cp || ( 0x200F < cp && \
+( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+#endif /* EBCDIC POSIX-BC */
#endif /* H_REGCHARCLASS */
-/* ex: set ro: */
+/* Generated from:
+ * 083180df694deb1fc173361406c1a75619fb8376403db3a76dc585c1e3951eca lib/Unicode/UCD.pm
+ * 827aa7ee45ca9fe09f3e0969a5a27a69ce58a6c7134548125266210018d27b49 lib/unicore/ArabicShaping.txt
+ * 3748fbbe9d280a9da700bfd0c28beaaf6f32a67ec263a124fcb0a4095a30fae5 lib/unicore/BidiBrackets.txt
+ * 3925329c2432fa7248b2e180cddcedb9a4f9eafbbb10ab9e105eaf833043b2fb lib/unicore/BidiMirroring.txt
+ * 7f5a1b4a346c6cdbe948d3baf50fc31fff29c26bcd4ad422dc1fbcc1c23b0bde lib/unicore/Blocks.txt
+ * 82f3cc8217455f22d294d7df767a62906baf31456ea8902336ae7fee943a2538 lib/unicore/CaseFolding.txt
+ * 8be553529f7dd22e3e0ffa25eb3f1743f5243bbfe868559be73bf3a163c21913 lib/unicore/CompositionExclusions.txt
+ * ab64278818411762311b9d5974438ac5cf14e98c79b44a6373022f0780de38a7 lib/unicore/DAge.txt
+ * f2ff892add5e6624cee8300c297373216df7f1a596c6e74510afe5e8b96c8d91 lib/unicore/DCoreProperties.txt
+ * 656aa2c6996a049e84c6d38676bc73c3245c808869d64073b812690ae475d534 lib/unicore/DNormalizationProps.txt
+ * e064b066e555cbace95951fcba9b5336a4d04c88c5949a1ff7615190eaa67682 lib/unicore/EastAsianWidth.txt
+ * 2aa574984e9cea6980eddd6e36044168d543b7f0449266fa3248aca28790cf06 lib/unicore/HangulSyllableType.txt
+ * e7122c4d4d598854b5fbefeb2b1ee9f05aef6a8d6e718b5f56c2a8ea31145f12 lib/unicore/IndicMatraCategory.txt
+ * 478ca00ea86b47209f0b27eb3959ad83cb2b76f5159213d242390d07d5af2b8d lib/unicore/IndicSyllabicCategory.txt
+ * 0aa8af5cbb4d0570b1006aefffc021c6ef637dffb15572a5a85e7f7e7778fe22 lib/unicore/Jamo.txt
+ * 3b359eeff325f7e773ea9d5feb8af053b94c579844f0db7ce648f418c9d136d8 lib/unicore/LineBreak.txt
+ * af85d961d0ed6055271ca6e0174451a8dc1822e31de9e07e1246535318b9341a lib/unicore/NameAliases.txt
+ * 1c379b9c1b0f6cd14208b766f74fc92ff5a9528aee66083db307f1fc9a615729 lib/unicore/NamedSequences.txt
+ * 0df343d93293f14e9ff0b0a721d8b8e6c23c86dbad7be18d362d6bf1281590d9 lib/unicore/PropList.txt
+ * 6c14f474761b8db46f95cf2d1e235ce40abf3382226c5b1a2210df83775fe6fa lib/unicore/PropValueAliases.txt
+ * 3f3dd77644faa905ce02de7c0e3167fdc4afdf94748f074192bd70821c8341ea lib/unicore/PropertyAliases.txt
+ * 2767531dec8c525a317ab488b95eed73461fe9c6fbb8088594f3886964724475 lib/unicore/ScriptExtensions.txt
+ * a638f9f0eb3c521ed6c7755fce93c04bf6e4ba89f23ac3d1bd4c4e486c400118 lib/unicore/Scripts.txt
+ * 35496d45fc8babd8deb866491ea82ff7b3d2d49ad4c9c656685cd14833101e25 lib/unicore/SpecialCasing.txt
+ * bfa3da58ea982199829e1107ac5a9a544b83100470a2d0cc28fb50ec234cb840 lib/unicore/UnicodeData.txt
+ * 916289f471c4a337fb1e0715985a11e6bc8bb205736e84164849d601d265d9e0 lib/unicore/auxiliary/GCBTest.txt
+ * 3d7ffae56e506d595f3e0e5d36978bc6721d53470e5ca9666ad7cdfc4a46cb3d lib/unicore/auxiliary/GraphemeBreakProperty.txt
+ * 370ddf3ba9b337819cf21795c2bd7cda578ac5ff4700d1a3ac923e8be988b57e lib/unicore/auxiliary/SBTest.txt
+ * 28356f6912113a9fe8244d9396e9786115dbc10b3ffb5e31b08969122e91d3f3 lib/unicore/auxiliary/SentenceBreakProperty.txt
+ * 3f56d3ccfc35c6dac44d143a4d6087af4e4ee9f1bdbae482c12f6149b60dec3b lib/unicore/auxiliary/WBTest.txt
+ * 82f7304030e6866ef8e02cdfb0485c52c18a661282bfce9c259cc6300abd79ad lib/unicore/auxiliary/WordBreakProperty.txt
+ * b88801b4a469207892a0401697c6b1c5fd64042ae0ef867f4ad0ec04942b415c lib/unicore/extracted/DBidiClass.txt
+ * 074d33ea6c7349eab840d690369dffb3568e2f7b039552b7c10480274d321545 lib/unicore/extracted/DBinaryProperties.txt
+ * 8ad457aef3525aedce823b9177dad33e0088df536dff11e3df405ecefc92ba08 lib/unicore/extracted/DCombiningClass.txt
+ * 59ec46c1e30458ffff50d41196fd45e3bbaf3172a8111117af1b930199be2d96 lib/unicore/extracted/DDecompositionType.txt
+ * cf7c07557ae915a7508c6c7fc8c2e8c900782364ec62e8a5d2813f3b97449ee0 lib/unicore/extracted/DEastAsianWidth.txt
+ * 56a5b47331a7ec784e848bcaae1ddc08cbf72aab583ca82dcc98ecf2851a3d43 lib/unicore/extracted/DGeneralCategory.txt
+ * c14e83161e56eb15d78b1589352d6c0bd8feb7889a5d17f70a2ebb2a43cab86d lib/unicore/extracted/DJoinGroup.txt
+ * 8c9405c54d8b1dd3fe2f2d691b30c0816ca15481995152ed07fc9b844dfd0ad4 lib/unicore/extracted/DJoinType.txt
+ * a9791f08281d7b0a417e4ad882cf64463f6815db8156932acd85228ac717fd94 lib/unicore/extracted/DLineBreak.txt
+ * a17a0330e57d774343a53c019f1bc69827c2676982a1bf48e0898a76710e8877 lib/unicore/extracted/DNumType.txt
+ * c2cb810a67cc5fb4a8d236b6c1bc6dd4d89733d8603881997e8aae2c816a3db1 lib/unicore/extracted/DNumValues.txt
+ * 808d76136d9952faf581347e9bc040dbab5158f143f243a6de455a4af39b7401 lib/unicore/mktables
+ * 746472de66b936ac885ca6d6e68058242b4e909e3260c6317f3ec719f78f76cc lib/unicore/version
+ * 3eaedce3745bef6219cff3b5f63e5f8622c58dc66736281a82df991636d54451 regen/regcharclass.pl
+ * ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/regcomp.h b/Master/tlpkg/tlperl/lib/CORE/regcomp.h
index 3bb1a533f69..f418086c9f2 100644
--- a/Master/tlpkg/tlperl/lib/CORE/regcomp.h
+++ b/Master/tlpkg/tlperl/lib/CORE/regcomp.h
@@ -84,9 +84,7 @@
* but allows patterns to get big without disasters.
*
* [The "next" pointer is always aligned on an even
- * boundary, and reads the offset directly as a short. Also, there is no
- * special test to reverse the sign of BACK pointers since the offset is
- * stored negative.]
+ * boundary, and reads the offset directly as a short.]
*/
/* This is the stuff that used to live in regexp.h that was truly
@@ -140,13 +138,12 @@
#define PREGf_GPOS_SEEN 0x00000100
#define PREGf_GPOS_FLOAT 0x00000200
-#define PREGf_ANCH_BOL 0x00000400
-#define PREGf_ANCH_MBOL 0x00000800
-#define PREGf_ANCH_SBOL 0x00001000
-#define PREGf_ANCH_GPOS 0x00002000
+#define PREGf_ANCH_MBOL 0x00000400
+#define PREGf_ANCH_SBOL 0x00000800
+#define PREGf_ANCH_GPOS 0x00001000
-#define PREGf_ANCH (PREGf_ANCH_SBOL | PREGf_ANCH_GPOS | \
- PREGf_ANCH_MBOL | PREGf_ANCH_BOL )
+#define PREGf_ANCH \
+ ( PREGf_ANCH_SBOL | PREGf_ANCH_GPOS | PREGf_ANCH_MBOL )
/* this is where the old regcomp.h started */
@@ -184,8 +181,22 @@ struct regnode_2 {
U16 arg2;
};
-
-#define ANYOF_BITMAP_SIZE (256 / 8) /* 8 bits/Byte */
+/* This give the number of code points that can be in the bitmap of an ANYOF
+ * node. The shift number must currently be one of: 8..12. It can't be less
+ * than 8 (256) because some code relies on it being at least that. Above 12
+ * (4096), and you start running into warnings that some data structure widths
+ * have been exceeded, though the test suite as of this writing still passes
+ * for up through 16, which is as high as anyone would ever want to go,
+ * encompassing all of the Unicode BMP, and thus including all the economically
+ * important world scripts. At 12 most of them are: including Arabic,
+ * Cyrillic, Greek, Hebrew, Indian subcontinent, Latin, and Thai; but not Han,
+ * Japanese, nor Korean. (The regarglen structure in regnodes.h is a U8, and
+ * the trie types TRIEC and AHOCORASICKC are larger than U8 for shift values
+ * below above 12.) Be sure to benchmark before changing, as larger sizes do
+ * significantly slow down the test suite */
+#define NUM_ANYOF_CODE_POINTS (1 << 8)
+
+#define ANYOF_BITMAP_SIZE (NUM_ANYOF_CODE_POINTS / 8) /* 8 bits/Byte */
/* Note that these form structs which are supersets of the next smaller one, by
* appending fields. Alignment problems can occur if one of those optional
@@ -203,17 +214,17 @@ struct regnode_charclass {
U8 flags;
U8 type;
U16 next_off;
- U32 arg1;
+ U32 arg1; /* set by set_ANYOF_arg() */
char bitmap[ANYOF_BITMAP_SIZE]; /* only compile-time */
};
/* has runtime (locale) \d, \w, ..., [:posix:] classes */
struct regnode_charclass_class {
- U8 flags; /* ANYOF_POSIXL bit must go here */
+ U8 flags; /* ANYOF_MATCHES_POSIXL bit must go here */
U8 type;
U16 next_off;
U32 arg1;
- char bitmap[ANYOF_BITMAP_SIZE]; /* both compile-time */
+ char bitmap[ANYOF_BITMAP_SIZE]; /* both compile-time ... */
U32 classflags; /* and run-time */
};
@@ -221,18 +232,18 @@ struct regnode_charclass_class {
* extra SV*, used only during its construction and which is not used by
* regexec.c. Note that the 'next_off' field is unused, as the SSC stands
* alone, so there is never a next node. Also, there is no alignment issue,
- * becase these are declared or allocated as a complete unit so the compiler
+ * because these are declared or allocated as a complete unit so the compiler
* takes care of alignment. This is unlike the other regnodes which are
* allocated in terms of multiples of a single-argument regnode. SSC nodes can
* have a pointer field because there is no alignment issue, and because it is
* set to NULL after construction, before any cloning of the pattern */
struct regnode_ssc {
- U8 flags; /* ANYOF_POSIXL bit must go here */
+ U8 flags; /* ANYOF_MATCHES_POSIXL bit must go here */
U8 type;
U16 next_off;
U32 arg1;
- char bitmap[ANYOF_BITMAP_SIZE]; /* both compile-time */
- U32 classflags; /* and run-time */
+ char bitmap[ANYOF_BITMAP_SIZE]; /* both compile-time ... */
+ U32 classflags; /* ... and run-time */
/* Auxiliary, only used during construction; NULL afterwards: list of code
* points matched */
@@ -296,7 +307,16 @@ struct regnode_ssc {
#define NEXT_OFF(p) ((p)->next_off)
#define NODE_ALIGN(node)
-#define NODE_ALIGN_FILL(node) ((node)->flags = 0xde) /* deadbeef */
+/* the following define was set to 0xde in 075abff3
+ * as part of some linting logic. I have set it to 0
+ * as otherwise in every place where we /might/ set flags
+ * we have to set it 0 explicitly, which duplicates
+ * assignments and IMO adds an unacceptable level of
+ * surprise to working in the regex engine. If this
+ * is changed from 0 then at the very least make sure
+ * that SBOL for /^/ sets the flags to 0 explicitly.
+ * -- Yves */
+#define NODE_ALIGN_FILL(node) ((node)->flags = 0)
#define SIZE_ALIGN NODE_ALIGN
@@ -339,6 +359,13 @@ struct regnode_ssc {
(ptr)->type = op; (ptr)->next_off = 0; (ptr)++; } STMT_END
#define FILL_ADVANCE_NODE_ARG(ptr, op, arg) STMT_START { \
ARG_SET(ptr, arg); FILL_ADVANCE_NODE(ptr, op); (ptr) += 1; } STMT_END
+#define FILL_ADVANCE_NODE_2L_ARG(ptr, op, arg1, arg2) \
+ STMT_START { \
+ ARG_SET(ptr, arg1); \
+ ARG2L_SET(ptr, arg2); \
+ FILL_ADVANCE_NODE(ptr, op); \
+ (ptr) += 2; \
+ } STMT_END
#define REG_MAGIC 0234
@@ -346,13 +373,13 @@ struct regnode_ssc {
#define PASS1 SIZE_ONLY
#define PASS2 (! SIZE_ONLY)
-/* If the bitmap doesn't fully represent what this ANYOF node can match, the
+/* If the bitmap fully represents what this ANYOF node can match, the
* ARG is set to this special value (since 0, 1, ... are legal, but will never
* reach this high). */
-#define ANYOF_NONBITMAP_EMPTY ((U32) -1)
+#define ANYOF_ONLY_HAS_BITMAP ((U32) -1)
/* Flags for node->flags of ANYOF. These are in short supply, with none
- * currently available. The ABOVE_LATIN1_ALL bit could be freed up
+ * currently available. The ABOVE_BITMAP_ALL bit could be freed up
* by resorting to creating a swash containing everything above 255. This
* introduces a performance penalty. An option that wouldn't slow things down
* would be to split one of the two LOC flags out into a separate
@@ -362,59 +389,65 @@ struct regnode_ssc {
* probably better than that commit anyway. But it could be reinstated if we
* need a bit. The LOC flags are only for /l nodes; the reverted commit was
* only for /d, so there are no combinatorial issues. The LOC flag to use is
- * probably the POSIXL one.
+ * probably the POSIXL one. Now that there is an ANYOFL (locale) node, another
+ * option would be to make all of those include the POSIXL data structure,
+ * which would get rid of needing a separate POSIXL flag. But it would
+ * increase the size of all such nodes, so it's probably not as atractive as
+ * having an ANYOF_POSIXL node type. But if we did do it, note that not all 32
+ * bits of that extra space are used, one bit of that could be set aside for
+ * the LOC_FOLD flag, yielding yet another bit. This would require extra code
+ * for masking, so again not the most attractive solution.
+ *
* Several flags are not used in synthetic start class (SSC) nodes, so could be
- * shared should new flags be needed for SSCs, like ANYOF_EMPTY_STRING now. */
+ * shared should new flags be needed for SSCs, like SSC_MATCHES_EMPTY_STRING
+ * now. */
/* regexec.c is expecting this to be in the low bit */
-#define ANYOF_INVERT 0x01
+#define ANYOF_INVERT 0x01
/* For the SSC node only, which cannot be inverted, so is shared with that bit.
- * This means "Does this SSC match an empty string?" This is used only during
- * regex compilation. */
-#define ANYOF_EMPTY_STRING ANYOF_INVERT
+ * This is used only during regex compilation. */
+#define SSC_MATCHES_EMPTY_STRING ANYOF_INVERT
-/* Are there things that will match only if the target string is encoded in
- * UTF-8? (This is not set if ANYOF_AOVE_LATIN1_ALL is set) */
-#define ANYOF_UTF8 0x02
+/* Are there things outside the bitmap that will match only if the target
+ * string is encoded in UTF-8? (This is not set if ANYOF_ABOVE_BITMAP_ALL is
+ * set) */
+#define ANYOF_HAS_UTF8_NONBITMAP_MATCHES 0x02
/* The fold is calculated and stored in the bitmap where possible at compile
* time. However under locale, the actual folding varies depending on
* what the locale is at the time of execution, so it has to be deferred until
* then */
-#define ANYOF_LOC_FOLD 0x04
+#define ANYOF_LOC_FOLD 0x04
/* Set if this is a regnode_charclass_posixl vs a regnode_charclass. This
* is used for runtime \d, \w, [:posix:], ..., which are used only in locale
* and the optimizer's synthetic start class. Non-locale \d, etc are resolved
* at compile-time */
-#define ANYOF_POSIXL 0x08
-#define ANYOF_CLASS ANYOF_POSIXL
-#define ANYOF_LARGE ANYOF_POSIXL
+#define ANYOF_MATCHES_POSIXL 0x08
/* Should we raise a warning if matching against an above-Unicode code point?
* */
-#define ANYOF_WARN_SUPER 0x10
+#define ANYOF_WARN_SUPER 0x10
/* Can match something outside the bitmap that isn't in utf8 */
-#define ANYOF_NONBITMAP_NON_UTF8 0x20
+#define ANYOF_HAS_NONBITMAP_NON_UTF8_MATCHES 0x20
-/* Matches every code point 0x100 and above*/
-#define ANYOF_ABOVE_LATIN1_ALL 0x40
-#define ANYOF_UNICODE_ALL ANYOF_ABOVE_LATIN1_ALL
+/* Matches every code point NUM_ANYOF_CODE_POINTS and above*/
+#define ANYOF_MATCHES_ALL_ABOVE_BITMAP 0x40
/* Match all Latin1 characters that aren't ASCII when the target string is not
* in utf8. */
-#define ANYOF_NON_UTF8_NON_ASCII_ALL 0x80
+#define ANYOF_MATCHES_ALL_NON_UTF8_NON_ASCII 0x80
#define ANYOF_FLAGS_ALL (0xff)
-#define ANYOF_LOCALE_FLAGS (ANYOF_LOC_FOLD | ANYOF_POSIXL)
+#define ANYOF_LOCALE_FLAGS (ANYOF_LOC_FOLD | ANYOF_MATCHES_POSIXL)
/* These are the flags that apply to both regular ANYOF nodes and synthetic
* start class nodes during construction of the SSC. During finalization of
* the SSC, other of the flags could be added to it */
-#define ANYOF_COMMON_FLAGS (ANYOF_WARN_SUPER|ANYOF_UTF8)
+#define ANYOF_COMMON_FLAGS (ANYOF_WARN_SUPER|ANYOF_HAS_UTF8_NONBITMAP_MATCHES)
/* Character classes for node->classflags of ANYOF */
/* Should be synchronized with a table in regprop() */
@@ -441,8 +474,6 @@ struct regnode_ssc {
#define ANYOF_NLOWER ((ANYOF_LOWER) + 1)
#define ANYOF_PRINT ((_CC_PRINT) * 2)
#define ANYOF_NPRINT ((ANYOF_PRINT) + 1)
-#define ANYOF_PSXSPC ((_CC_PSXSPC) * 2) /* POSIX space: \s plus the vertical tab */
-#define ANYOF_NPSXSPC ((ANYOF_PSXSPC) + 1)
#define ANYOF_PUNCT ((_CC_PUNCT) * 2)
#define ANYOF_NPUNCT ((ANYOF_PUNCT) + 1)
#define ANYOF_SPACE ((_CC_SPACE) * 2) /* \s */
@@ -493,13 +524,9 @@ struct regnode_ssc {
/* Utility macros for the bitmap and classes of ANYOF */
-#define ANYOF_SIZE (sizeof(struct regnode_charclass))
-#define ANYOF_POSIXL_SIZE (sizeof(regnode_charclass_posixl))
-#define ANYOF_CLASS_SIZE ANYOF_POSIXL_SIZE
-
#define ANYOF_FLAGS(p) ((p)->flags)
-#define ANYOF_BIT(c) (1 << ((c) & 7))
+#define ANYOF_BIT(c) (1U << ((c) & 7))
#define ANYOF_POSIXL_SET(p, c) (((regnode_charclass_posixl*) (p))->classflags |= (1U << (c)))
#define ANYOF_CLASS_SET(p, c) ANYOF_POSIXL_SET((p), (c))
@@ -518,7 +545,7 @@ struct regnode_ssc {
#define ANYOF_CLASS_SETALL(ret) ANYOF_POSIXL_SETALL(ret)
#define ANYOF_POSIXL_TEST_ANY_SET(p) \
- ((ANYOF_FLAGS(p) & ANYOF_POSIXL) \
+ ((ANYOF_FLAGS(p) & ANYOF_MATCHES_POSIXL) \
&& (((regnode_charclass_posixl*)(p))->classflags))
#define ANYOF_CLASS_TEST_ANY_SET(p) ANYOF_POSIXL_TEST_ANY_SET(p)
@@ -531,7 +558,7 @@ struct regnode_ssc {
== ((1U << ((ANYOF_POSIXL_MAX) - 1))) - 1)
#define ANYOF_POSIXL_TEST_ALL_SET(p) \
- ((ANYOF_FLAGS(p) & ANYOF_POSIXL) \
+ ((ANYOF_FLAGS(p) & ANYOF_MATCHES_POSIXL) \
&& ((regnode_charclass_posixl*) (p))->classflags \
== ((1U << ((ANYOF_POSIXL_MAX) - 1))) - 1)
@@ -545,19 +572,15 @@ struct regnode_ssc {
#define ANYOF_BITMAP_BYTE(p, c) (ANYOF_BITMAP(p)[(((U8)(c)) >> 3) & 31])
#define ANYOF_BITMAP_SET(p, c) (ANYOF_BITMAP_BYTE(p, c) |= ANYOF_BIT(c))
#define ANYOF_BITMAP_CLEAR(p,c) (ANYOF_BITMAP_BYTE(p, c) &= ~ANYOF_BIT(c))
-#define ANYOF_BITMAP_TEST(p, c) (ANYOF_BITMAP_BYTE(p, c) & ANYOF_BIT(c))
+#define ANYOF_BITMAP_TEST(p, c) cBOOL(ANYOF_BITMAP_BYTE(p, c) & ANYOF_BIT(c))
#define ANYOF_BITMAP_SETALL(p) \
memset (ANYOF_BITMAP(p), 255, ANYOF_BITMAP_SIZE)
#define ANYOF_BITMAP_CLEARALL(p) \
Zero (ANYOF_BITMAP(p), ANYOF_BITMAP_SIZE)
-/* Check that all 256 bits are all set. Used in S_cl_is_anything() */
-#define ANYOF_BITMAP_TESTALLSET(p) /* Assumes sizeof(p) == 32 */ \
- memEQ (ANYOF_BITMAP(p), "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377", ANYOF_BITMAP_SIZE)
-#define ANYOF_SKIP ((ANYOF_SIZE - 1)/sizeof(regnode))
-#define ANYOF_POSIXL_SKIP ((ANYOF_POSIXL_SIZE - 1)/sizeof(regnode))
-#define ANYOF_CLASS_SKIP ANYOF_POSIXL_SKIP
+#define ANYOF_SKIP EXTRA_SIZE(struct regnode_charclass)
+#define ANYOF_POSIXL_SKIP EXTRA_SIZE(regnode_charclass_posixl)
/*
* Utility definitions.
@@ -839,6 +862,7 @@ re.pm, especially to the documentation.
#define RE_DEBUG_COMPILE_TRIE 0x000004
#define RE_DEBUG_COMPILE_DUMP 0x000008
#define RE_DEBUG_COMPILE_FLAGS 0x000010
+#define RE_DEBUG_COMPILE_TEST 0x000020
/* Execute */
#define RE_DEBUG_EXECUTE_MASK 0x00FF00
@@ -874,6 +898,8 @@ re.pm, especially to the documentation.
if (re_debug_flags & RE_DEBUG_COMPILE_TRIE) x )
#define DEBUG_FLAGS_r(x) DEBUG_r( \
if (re_debug_flags & RE_DEBUG_COMPILE_FLAGS) x )
+#define DEBUG_TEST_r(x) DEBUG_r( \
+ if (re_debug_flags & RE_DEBUG_COMPILE_TEST) x )
/* Execute */
#define DEBUG_EXECUTE_r(x) DEBUG_r( \
if (re_debug_flags & RE_DEBUG_EXECUTE_MASK) x )
@@ -965,12 +991,13 @@ re.pm, especially to the documentation.
#endif /* DEBUG RELATED DEFINES */
+typedef enum {
+ TRADITIONAL_BOUND = _CC_WORDCHAR,
+ GCB_BOUND,
+ SB_BOUND,
+ WB_BOUND
+} bound_type;
+
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/regexp.h b/Master/tlpkg/tlperl/lib/CORE/regexp.h
index db7ae8be016..04eeba9c9e5 100644
--- a/Master/tlpkg/tlperl/lib/CORE/regexp.h
+++ b/Master/tlpkg/tlperl/lib/CORE/regexp.h
@@ -185,7 +185,7 @@ typedef struct regexp_engine {
#endif
REGEXP* (*op_comp) (pTHX_ SV ** const patternp, int pat_count,
OP *expr, const struct regexp_engine* eng,
- REGEXP *VOL old_re,
+ REGEXP *old_re,
bool *is_bare_re, U32 orig_rx_flags, U32 pm_flags);
} regexp_engine;
@@ -272,17 +272,25 @@ and check for NULL.
#include "op_reg_common.h"
-#define RXf_PMf_STD_PMMOD (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_FOLD|RXf_PMf_EXTENDED)
+#define RXf_PMf_STD_PMMOD (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_FOLD|RXf_PMf_EXTENDED|RXf_PMf_NOCAPTURE)
-#define CASE_STD_PMMOD_FLAGS_PARSE_SET(pmfl) \
- case IGNORE_PAT_MOD: *(pmfl) |= RXf_PMf_FOLD; break; \
- case MULTILINE_PAT_MOD: *(pmfl) |= RXf_PMf_MULTILINE; break; \
- case SINGLE_PAT_MOD: *(pmfl) |= RXf_PMf_SINGLELINE; break; \
- case XTENDED_PAT_MOD: *(pmfl) |= RXf_PMf_EXTENDED; break
+#define CASE_STD_PMMOD_FLAGS_PARSE_SET(pmfl, x_count) \
+ case IGNORE_PAT_MOD: *(pmfl) |= RXf_PMf_FOLD; break; \
+ case MULTILINE_PAT_MOD: *(pmfl) |= RXf_PMf_MULTILINE; break; \
+ case SINGLE_PAT_MOD: *(pmfl) |= RXf_PMf_SINGLELINE; break; \
+ case XTENDED_PAT_MOD: *(pmfl) |= RXf_PMf_EXTENDED; (x_count)++; break;\
+ case NOCAPTURE_PAT_MOD: *(pmfl) |= RXf_PMf_NOCAPTURE; break;
+
+#define STD_PMMOD_FLAGS_PARSE_X_WARN(x_count) \
+ if (UNLIKELY((x_count) > 1)) { \
+ Perl_ck_warner_d(aTHX_ packWARN2(WARN_DEPRECATED, WARN_REGEXP), \
+ "Having more than one /%c regexp modifier is deprecated", \
+ XTENDED_PAT_MOD); \
+ }
/* Note, includes charset ones, assumes 0 is the default for them */
#define STD_PMMOD_FLAGS_CLEAR(pmfl) \
- *(pmfl) &= ~(RXf_PMf_FOLD|RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_EXTENDED|RXf_PMf_CHARSET)
+ *(pmfl) &= ~(RXf_PMf_FOLD|RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_EXTENDED|RXf_PMf_CHARSET|RXf_PMf_NOCAPTURE)
/* chars and strings used as regex pattern modifiers
* Singular is a 'c'har, plural is a "string"
@@ -294,6 +302,7 @@ and check for NULL.
#define DEFAULT_PAT_MOD '^' /* Short for all the default modifiers */
#define EXEC_PAT_MOD 'e'
#define KEEPCOPY_PAT_MOD 'p'
+#define NOCAPTURE_PAT_MOD 'n'
#define ONCE_PAT_MOD 'o'
#define GLOBAL_PAT_MOD 'g'
#define CONTINUE_PAT_MOD 'c'
@@ -309,6 +318,7 @@ and check for NULL.
#define ONCE_PAT_MODS "o"
#define KEEPCOPY_PAT_MODS "p"
+#define NOCAPTURE_PAT_MODS "n"
#define EXEC_PAT_MODS "e"
#define LOOP_PAT_MODS "gc"
#define NONDESTRUCT_PAT_MODS "r"
@@ -321,7 +331,7 @@ and check for NULL.
/* This string is expected by regcomp.c to be ordered so that the first
* character is the flag in bit RXf_PMf_STD_PMMOD_SHIFT of extflags; the next
* character is bit +1, etc. */
-#define STD_PAT_MODS "msix"
+#define STD_PAT_MODS "msixxn"
#define CHARSET_PAT_MODS ASCII_RESTRICT_PAT_MODS DEPENDS_PAT_MODS LOCALE_PAT_MODS UNICODE_PAT_MODS
@@ -330,7 +340,7 @@ and check for NULL.
* extflags; the next character is in bit +1, etc. */
#define INT_PAT_MODS STD_PAT_MODS KEEPCOPY_PAT_MODS
-#define EXT_PAT_MODS ONCE_PAT_MODS KEEPCOPY_PAT_MODS
+#define EXT_PAT_MODS ONCE_PAT_MODS KEEPCOPY_PAT_MODS NOCAPTURE_PAT_MODS
#define QR_PAT_MODS STD_PAT_MODS EXT_PAT_MODS CHARSET_PAT_MODS
#define M_PAT_MODS QR_PAT_MODS LOOP_PAT_MODS
#define S_PAT_MODS M_PAT_MODS EXEC_PAT_MODS NONDESTRUCT_PAT_MODS
@@ -341,92 +351,89 @@ and check for NULL.
*
*/
-/* Leave some space, so future bit allocations can go either in the shared or
- * unshared area without affecting binary compatibility */
-#define RXf_BASE_SHIFT (_RXf_PMf_SHIFT_NEXT)
-
/*
Set in Perl_pmruntime if op_flags & OPf_SPECIAL, i.e. split. Will
be used by regex engines to check whether they should set
RXf_SKIPWHITE
*/
-#define RXf_SPLIT (1<<(RXf_BASE_SHIFT-1))
-#if RXf_SPLIT != RXf_PMf_SPLIT
-# error "RXf_SPLIT does not match RXf_PMf_SPLIT"
-#endif
-
-/* Manually decorate this function with gcc-style attributes just to
- * avoid having to restructure the header files and their called order,
- * as proto.h would have to be included before this file, and isn't */
-
-PERL_STATIC_INLINE const char *
-get_regex_charset_name(const U32 flags, STRLEN* const lenp)
- __attribute__warn_unused_result__;
-
-#define MAX_CHARSET_NAME_LENGTH 2
-
-PERL_STATIC_INLINE const char *
-get_regex_charset_name(const U32 flags, STRLEN* const lenp)
-{
- /* Returns a string that corresponds to the name of the regex character set
- * given by 'flags', and *lenp is set the length of that string, which
- * cannot exceed MAX_CHARSET_NAME_LENGTH characters */
-
- *lenp = 1;
- switch (get_regex_charset(flags)) {
- case REGEX_DEPENDS_CHARSET: return DEPENDS_PAT_MODS;
- case REGEX_LOCALE_CHARSET: return LOCALE_PAT_MODS;
- case REGEX_UNICODE_CHARSET: return UNICODE_PAT_MODS;
- case REGEX_ASCII_RESTRICTED_CHARSET: return ASCII_RESTRICT_PAT_MODS;
- case REGEX_ASCII_MORE_RESTRICTED_CHARSET:
- *lenp = 2;
- return ASCII_MORE_RESTRICT_PAT_MODS;
- default:
- return "?"; /* Unknown */
- }
-}
+#define RXf_SPLIT RXf_PMf_SPLIT
+
+/* Currently the regex flags occupy a single 32-bit word. Not all bits are
+ * currently used. The lower bits are shared with their corresponding PMf flag
+ * bits, up to but not including _RXf_PMf_SHIFT_NEXT. The unused bits
+ * immediately follow; finally the used RXf-only (unshared) bits, so that the
+ * highest bit in the word is used. This gathers all the unused bits as a pool
+ * in the middle, like so: 11111111111111110000001111111111
+ * where the '1's represent used bits, and the '0's unused. This design allows
+ * us to allocate off one end of the pool if we need to add a shared bit, and
+ * off the other end if we need a non-shared bit, without disturbing the other
+ * bits. This maximizes the likelihood of being able to change things without
+ * breaking binary compatibility.
+ *
+ * To add shared bits, do so in op_reg_common.h. This should change
+ * _RXf_PMf_SHIFT_NEXT so that things won't compile. Then come to regexp.h and
+ * op.h and adjust the constant adders in the definitions of RXf_BASE_SHIFT and
+ * Pmf_BASE_SHIFT down by the number of shared bits you added. That's it.
+ * Things should be binary compatible. But if either of these gets to having
+ * to subtract rather than add, leave at 0 and instead adjust all the entries
+ * that are in terms of it. But if the first one of those is already
+ * RXf_BASE_SHIFT+0, there are no bits left, and a redesign is in order.
+ *
+ * To remove unshared bits, just delete its entry. If you're where breaking
+ * binary compatibility is ok to do, you might want to adjust things to move
+ * the newly opened space so that it gets absorbed into the common pool.
+ *
+ * To add unshared bits, first use up any gaps in the middle. Otherwise,
+ * allocate off the low end until you get to RXf_BASE_SHIFT+0. If that isn't
+ * enough, move RXf_BASE_SHIFT down (if possible) and add the new bit at the
+ * other end instead; this preserves binary compatibility.
+ *
+ * For the regexp bits, PL_reg_extflags_name[] in regnodes.h has a comment
+ * giving which bits are used/unused */
-/* Do we have some sort of anchor? */
-#define RXf_IS_ANCHORED (1<<(RXf_BASE_SHIFT+0))
-#define RXf_UNUSED1 (1<<(RXf_BASE_SHIFT+1))
-#define RXf_UNUSED2 (1<<(RXf_BASE_SHIFT+2))
-#define RXf_UNUSED3 (1<<(RXf_BASE_SHIFT+3))
-#define RXf_UNUSED4 (1<<(RXf_BASE_SHIFT+4))
-#define RXf_UNUSED5 (1<<(RXf_BASE_SHIFT+5))
+#define RXf_BASE_SHIFT (_RXf_PMf_SHIFT_NEXT + 2)
/* What we have seen */
-#define RXf_NO_INPLACE_SUBST (1<<(RXf_BASE_SHIFT+6))
-#define RXf_EVAL_SEEN (1<<(RXf_BASE_SHIFT+7))
-#define RXf_UNUSED8 (1<<(RXf_BASE_SHIFT+8))
+#define RXf_NO_INPLACE_SUBST (1U<<(RXf_BASE_SHIFT+2))
+#define RXf_EVAL_SEEN (1U<<(RXf_BASE_SHIFT+3))
/* Special */
-#define RXf_UNBOUNDED_QUANTIFIER_SEEN (1<<(RXf_BASE_SHIFT+9))
-#define RXf_CHECK_ALL (1<<(RXf_BASE_SHIFT+10))
+#define RXf_UNBOUNDED_QUANTIFIER_SEEN (1U<<(RXf_BASE_SHIFT+4))
+#define RXf_CHECK_ALL (1U<<(RXf_BASE_SHIFT+5))
/* UTF8 related */
-#define RXf_MATCH_UTF8 (1<<(RXf_BASE_SHIFT+11)) /* $1 etc are utf8 */
+#define RXf_MATCH_UTF8 (1U<<(RXf_BASE_SHIFT+6)) /* $1 etc are utf8 */
/* Intuit related */
-#define RXf_USE_INTUIT_NOML (1<<(RXf_BASE_SHIFT+12))
-#define RXf_USE_INTUIT_ML (1<<(RXf_BASE_SHIFT+13))
-#define RXf_INTUIT_TAIL (1<<(RXf_BASE_SHIFT+14))
+#define RXf_USE_INTUIT_NOML (1U<<(RXf_BASE_SHIFT+7))
+#define RXf_USE_INTUIT_ML (1U<<(RXf_BASE_SHIFT+8))
+#define RXf_INTUIT_TAIL (1U<<(RXf_BASE_SHIFT+9))
#define RXf_USE_INTUIT (RXf_USE_INTUIT_NOML|RXf_USE_INTUIT_ML)
+/* Do we have some sort of anchor? */
+#define RXf_IS_ANCHORED (1U<<(RXf_BASE_SHIFT+10))
+
/* Copy and tainted info */
-#define RXf_COPY_DONE (1<<(RXf_BASE_SHIFT+16))
+#define RXf_COPY_DONE (1U<<(RXf_BASE_SHIFT+11))
/* post-execution: $1 et al are tainted */
-#define RXf_TAINTED_SEEN (1<<(RXf_BASE_SHIFT+17))
+#define RXf_TAINTED_SEEN (1U<<(RXf_BASE_SHIFT+12))
/* this pattern was tainted during compilation */
-#define RXf_TAINTED (1<<(RXf_BASE_SHIFT+18))
+#define RXf_TAINTED (1U<<(RXf_BASE_SHIFT+13))
/* Flags indicating special patterns */
-#define RXf_START_ONLY (1<<(RXf_BASE_SHIFT+19)) /* Pattern is /^/ */
-#define RXf_SKIPWHITE (1<<(RXf_BASE_SHIFT+20)) /* Pattern is for a split " " */
-#define RXf_WHITE (1<<(RXf_BASE_SHIFT+21)) /* Pattern is /\s+/ */
-#define RXf_NULL (1U<<(RXf_BASE_SHIFT+22)) /* Pattern is // */
-#if RXf_BASE_SHIFT+22 > 31
-# error Too many RXf_PMf bits used. See regnodes.h for any spare in middle
+#define RXf_START_ONLY (1U<<(RXf_BASE_SHIFT+14)) /* Pattern is /^/ */
+#define RXf_SKIPWHITE (1U<<(RXf_BASE_SHIFT+15)) /* Pattern is for a */
+ /* split " " */
+#define RXf_WHITE (1U<<(RXf_BASE_SHIFT+16)) /* Pattern is /\s+/ */
+#define RXf_NULL (1U<<(RXf_BASE_SHIFT+17)) /* Pattern is // */
+
+/* See comments at the beginning of these defines about adding bits. The
+ * highest bit position should be used, so that if RXf_BASE_SHIFT gets
+ * increased, the #error below will be triggered so that you will be reminded
+ * to adjust things at the other end to keep the bit positions unchanged */
+#if RXf_BASE_SHIFT+17 > 31
+# error Too many RXf_PMf bits used. See comments at beginning of these for what to do
#endif
/*
@@ -841,11 +848,5 @@ typedef struct regmatch_slab {
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/regnodes.h b/Master/tlpkg/tlperl/lib/CORE/regnodes.h
index 43ec681967c..3c9b9912957 100644
--- a/Master/tlpkg/tlperl/lib/CORE/regnodes.h
+++ b/Master/tlpkg/tlperl/lib/CORE/regnodes.h
@@ -11,43 +11,45 @@
#define END 0 /* 0000 End of program. */
#define SUCCEED 1 /* 0x01 Return from a subroutine, basically. */
-#define BOL 2 /* 0x02 Match "" at beginning of line. */
-#define MBOL 3 /* 0x03 Same, assuming multiline. */
-#define SBOL 4 /* 0x04 Same, assuming singleline. */
-#define EOS 5 /* 0x05 Match "" at end of string. */
-#define EOL 6 /* 0x06 Match "" at end of line. */
-#define MEOL 7 /* 0x07 Same, assuming multiline. */
-#define SEOL 8 /* 0x08 Same, assuming singleline. */
-#define BOUND 9 /* 0x09 Match "" at any word boundary using native charset rules for non-utf8 */
-#define BOUNDL 10 /* 0x0a Match "" at any locale word boundary */
-#define BOUNDU 11 /* 0x0b Match "" at any word boundary using Unicode rules */
-#define BOUNDA 12 /* 0x0c Match "" at any word boundary using ASCII rules */
-#define NBOUND 13 /* 0x0d Match "" at any word non-boundary using native charset rules for non-utf8 */
-#define NBOUNDL 14 /* 0x0e Match "" at any locale word non-boundary */
-#define NBOUNDU 15 /* 0x0f Match "" at any word non-boundary using Unicode rules */
-#define NBOUNDA 16 /* 0x10 Match "" at any word non-boundary using ASCII rules */
-#define GPOS 17 /* 0x11 Matches where last m//g left off. */
-#define REG_ANY 18 /* 0x12 Match any one character (except newline). */
-#define SANY 19 /* 0x13 Match any one character. */
-#define CANY 20 /* 0x14 Match any one byte. */
-#define ANYOF 21 /* 0x15 Match character in (or not in) this class, single char match only */
-#define POSIXD 22 /* 0x16 Some [[:class:]] under /d; the FLAGS field gives which one */
-#define POSIXL 23 /* 0x17 Some [[:class:]] under /l; the FLAGS field gives which one */
-#define POSIXU 24 /* 0x18 Some [[:class:]] under /u; the FLAGS field gives which one */
-#define POSIXA 25 /* 0x19 Some [[:class:]] under /a; the FLAGS field gives which one */
-#define NPOSIXD 26 /* 0x1a complement of POSIXD, [[:^class:]] */
-#define NPOSIXL 27 /* 0x1b complement of POSIXL, [[:^class:]] */
-#define NPOSIXU 28 /* 0x1c complement of POSIXU, [[:^class:]] */
-#define NPOSIXA 29 /* 0x1d complement of POSIXA, [[:^class:]] */
-#define CLUMP 30 /* 0x1e Match any extended grapheme cluster sequence */
-#define BRANCH 31 /* 0x1f Match this alternative, or the next... */
-#define BACK 32 /* 0x20 Match "", "next" ptr points backward. */
-#define EXACT 33 /* 0x21 Match this string (preceded by length). */
-#define EXACTF 34 /* 0x22 Match this non-UTF-8 string (not guaranteed to be folded) using /id rules (w/len). */
-#define EXACTFL 35 /* 0x23 Match this string (not guaranteed to be folded) using /il rules (w/len). */
-#define EXACTFU 36 /* 0x24 Match this string (folded iff in UTF-8, length in folding doesn't change if not in UTF-8) using /iu rules (w/len). */
-#define EXACTFA 37 /* 0x25 Match this string (not guaranteed to be folded) using /iaa rules (w/len). */
-#define EXACTFU_SS 38 /* 0x26 Match this string (folded iff in UTF-8, length in folding may change even if not in UTF-8) using /iu rules (w/len). */
+#define SBOL 2 /* 0x02 Match "" at beginning of line: /^/, /\A/ */
+#define BOL 2 /* 0x02 type alias */
+#define MBOL 3 /* 0x03 Same, assuming multiline: /^/m */
+#define SEOL 4 /* 0x04 Match "" at end of line: /$/ */
+#define EOL 4 /* 0x04 type alias */
+#define MEOL 5 /* 0x05 Same, assuming multiline: /$/m */
+#define EOS 6 /* 0x06 Match "" at end of string: /\z/ */
+#define GPOS 7 /* 0x07 Matches where last m//g left off. */
+#define BOUND 8 /* 0x08 Like BOUNDA for non-utf8, otherwise match "" between any Unicode \w\W or \W\w */
+#define BOUNDL 9 /* 0x09 Like BOUND/BOUNDU, but \w and \W are defined by current locale */
+#define BOUNDU 10 /* 0x0a Match "" at any boundary of a given type using Unicode rules */
+#define BOUNDA 11 /* 0x0b Match "" at any boundary between \w\W or \W\w, where \w is [_a-zA-Z0-9] */
+#define NBOUND 12 /* 0x0c Like NBOUNDA for non-utf8, otherwise match "" between any Unicode \w\w or \W\W */
+#define NBOUNDL 13 /* 0x0d Like NBOUND/NBOUNDU, but \w and \W are defined by current locale */
+#define NBOUNDU 14 /* 0x0e Match "" at any non-boundary of a given type using using Unicode rules */
+#define NBOUNDA 15 /* 0x0f Match "" betweeen any \w\w or \W\W, where \w is [_a-zA-Z0-9] */
+#define REG_ANY 16 /* 0x10 Match any one character (except newline). */
+#define SANY 17 /* 0x11 Match any one character. */
+#define CANY 18 /* 0x12 Match any one byte. */
+#define ANYOF 19 /* 0x13 Match character in (or not in) this class, single char match only */
+#define ANYOFL 20 /* 0x14 Like ANYOF, but /l is in effect */
+#define POSIXD 21 /* 0x15 Some [[:class:]] under /d; the FLAGS field gives which one */
+#define POSIXL 22 /* 0x16 Some [[:class:]] under /l; the FLAGS field gives which one */
+#define POSIXU 23 /* 0x17 Some [[:class:]] under /u; the FLAGS field gives which one */
+#define POSIXA 24 /* 0x18 Some [[:class:]] under /a; the FLAGS field gives which one */
+#define NPOSIXD 25 /* 0x19 complement of POSIXD, [[:^class:]] */
+#define NPOSIXL 26 /* 0x1a complement of POSIXL, [[:^class:]] */
+#define NPOSIXU 27 /* 0x1b complement of POSIXU, [[:^class:]] */
+#define NPOSIXA 28 /* 0x1c complement of POSIXA, [[:^class:]] */
+#define CLUMP 29 /* 0x1d Match any extended grapheme cluster sequence */
+#define BRANCH 30 /* 0x1e Match this alternative, or the next... */
+#define EXACT 31 /* 0x1f Match this string (preceded by length). */
+#define EXACTL 32 /* 0x20 Like EXACT, but /l is in effect. */
+#define EXACTF 33 /* 0x21 Match this non-UTF-8 string (not guaranteed to be folded) using /id rules (w/len). */
+#define EXACTFL 34 /* 0x22 Match this string (not guaranteed to be folded) using /il rules (w/len). */
+#define EXACTFU 35 /* 0x23 Match this string (folded iff in UTF-8, length in folding doesn't change if not in UTF-8) using /iu rules (w/len). */
+#define EXACTFA 36 /* 0x24 Match this string (not guaranteed to be folded) using /iaa rules (w/len). */
+#define EXACTFU_SS 37 /* 0x25 Match this string (folded iff in UTF-8, length in folding may change even if not in UTF-8) using /iu rules (w/len). */
+#define EXACTFLU8 38 /* 0x26 Rare cirucmstances: like EXACTFU, but is under /l, UTF-8, folded, and everything in it is above 255. */
#define EXACTFA_NO_TRIE 39 /* 0x27 Match this string (which is not trie-able; not guaranteed to be folded) using /iaa rules (w/len). */
#define NOTHING 40 /* 0x28 Match empty string. */
#define TAIL 41 /* 0x29 Match empty string. Can jump here from outside. */
@@ -70,13 +72,13 @@
#define NREFFL 58 /* 0x3a Match already matched string, folded in loc. */
#define NREFFU 59 /* 0x3b Match already matched string, folded using unicode rules for non-utf8 */
#define NREFFA 60 /* 0x3c Match already matched string, folded using unicode rules for non-utf8, no mixing ASCII, non-ASCII */
-#define IFMATCH 61 /* 0x3d Succeeds if the following matches. */
-#define UNLESSM 62 /* 0x3e Fails if the following matches. */
-#define SUSPEND 63 /* 0x3f "Independent" sub-RE. */
-#define IFTHEN 64 /* 0x40 Switch, should be preceded by switcher. */
-#define GROUPP 65 /* 0x41 Whether the group matched. */
-#define LONGJMP 66 /* 0x42 Jump far away. */
-#define BRANCHJ 67 /* 0x43 BRANCH with long offset. */
+#define LONGJMP 61 /* 0x3d Jump far away. */
+#define BRANCHJ 62 /* 0x3e BRANCH with long offset. */
+#define IFMATCH 63 /* 0x3f Succeeds if the following matches. */
+#define UNLESSM 64 /* 0x40 Fails if the following matches. */
+#define SUSPEND 65 /* 0x41 "Independent" sub-RE. */
+#define IFTHEN 66 /* 0x42 Switch, should be preceded by switcher. */
+#define GROUPP 67 /* 0x43 Whether the group matched. */
#define EVAL 68 /* 0x44 Execute some Perl code. */
#define MINMOD 69 /* 0x45 Next operator is not greedy. */
#define LOGICAL 70 /* 0x46 Next opcode should set the flag only. */
@@ -153,13 +155,12 @@ EXTCONST U8 PL_regkind[];
EXTCONST U8 PL_regkind[] = {
END, /* END */
END, /* SUCCEED */
- BOL, /* BOL */
- BOL, /* MBOL */
BOL, /* SBOL */
- EOL, /* EOS */
- EOL, /* EOL */
- EOL, /* MEOL */
+ BOL, /* MBOL */
EOL, /* SEOL */
+ EOL, /* MEOL */
+ EOL, /* EOS */
+ GPOS, /* GPOS */
BOUND, /* BOUND */
BOUND, /* BOUNDL */
BOUND, /* BOUNDU */
@@ -168,11 +169,11 @@ EXTCONST U8 PL_regkind[] = {
NBOUND, /* NBOUNDL */
NBOUND, /* NBOUNDU */
NBOUND, /* NBOUNDA */
- GPOS, /* GPOS */
REG_ANY, /* REG_ANY */
REG_ANY, /* SANY */
REG_ANY, /* CANY */
ANYOF, /* ANYOF */
+ ANYOF, /* ANYOFL */
POSIXD, /* POSIXD */
POSIXD, /* POSIXL */
POSIXD, /* POSIXU */
@@ -183,13 +184,14 @@ EXTCONST U8 PL_regkind[] = {
NPOSIXD, /* NPOSIXA */
CLUMP, /* CLUMP */
BRANCH, /* BRANCH */
- BACK, /* BACK */
EXACT, /* EXACT */
+ EXACT, /* EXACTL */
EXACT, /* EXACTF */
EXACT, /* EXACTFL */
EXACT, /* EXACTFU */
EXACT, /* EXACTFA */
EXACT, /* EXACTFU_SS */
+ EXACT, /* EXACTFLU8 */
EXACT, /* EXACTFA_NO_TRIE */
NOTHING, /* NOTHING */
NOTHING, /* TAIL */
@@ -212,13 +214,13 @@ EXTCONST U8 PL_regkind[] = {
REF, /* NREFFL */
REF, /* NREFFU */
REF, /* NREFFA */
+ LONGJMP, /* LONGJMP */
+ BRANCHJ, /* BRANCHJ */
BRANCHJ, /* IFMATCH */
BRANCHJ, /* UNLESSM */
BRANCHJ, /* SUSPEND */
BRANCHJ, /* IFTHEN */
GROUPP, /* GROUPP */
- LONGJMP, /* LONGJMP */
- BRANCHJ, /* BRANCHJ */
EVAL, /* EVAL */
MINMOD, /* MINMOD */
LOGICAL, /* LOGICAL */
@@ -295,13 +297,12 @@ EXTCONST U8 PL_regkind[] = {
static const U8 regarglen[] = {
0, /* END */
0, /* SUCCEED */
- 0, /* BOL */
- 0, /* MBOL */
0, /* SBOL */
- 0, /* EOS */
- 0, /* EOL */
- 0, /* MEOL */
+ 0, /* MBOL */
0, /* SEOL */
+ 0, /* MEOL */
+ 0, /* EOS */
+ 0, /* GPOS */
0, /* BOUND */
0, /* BOUNDL */
0, /* BOUNDU */
@@ -310,11 +311,11 @@ static const U8 regarglen[] = {
0, /* NBOUNDL */
0, /* NBOUNDU */
0, /* NBOUNDA */
- 0, /* GPOS */
0, /* REG_ANY */
0, /* SANY */
0, /* CANY */
- 0, /* ANYOF */
+ EXTRA_SIZE(struct regnode_1), /* ANYOF */
+ EXTRA_SIZE(struct regnode_1), /* ANYOFL */
0, /* POSIXD */
0, /* POSIXL */
0, /* POSIXU */
@@ -325,13 +326,14 @@ static const U8 regarglen[] = {
0, /* NPOSIXA */
0, /* CLUMP */
0, /* BRANCH */
- 0, /* BACK */
0, /* EXACT */
+ 0, /* EXACTL */
0, /* EXACTF */
0, /* EXACTFL */
0, /* EXACTFU */
0, /* EXACTFA */
0, /* EXACTFU_SS */
+ 0, /* EXACTFLU8 */
0, /* EXACTFA_NO_TRIE */
0, /* NOTHING */
0, /* TAIL */
@@ -354,14 +356,14 @@ static const U8 regarglen[] = {
EXTRA_SIZE(struct regnode_1), /* NREFFL */
EXTRA_SIZE(struct regnode_1), /* NREFFU */
EXTRA_SIZE(struct regnode_1), /* NREFFA */
+ EXTRA_SIZE(struct regnode_1), /* LONGJMP */
+ EXTRA_SIZE(struct regnode_1), /* BRANCHJ */
EXTRA_SIZE(struct regnode_1), /* IFMATCH */
EXTRA_SIZE(struct regnode_1), /* UNLESSM */
EXTRA_SIZE(struct regnode_1), /* SUSPEND */
EXTRA_SIZE(struct regnode_1), /* IFTHEN */
EXTRA_SIZE(struct regnode_1), /* GROUPP */
- EXTRA_SIZE(struct regnode_1), /* LONGJMP */
- EXTRA_SIZE(struct regnode_1), /* BRANCHJ */
- EXTRA_SIZE(struct regnode_1), /* EVAL */
+ EXTRA_SIZE(struct regnode_2L), /* EVAL */
0, /* MINMOD */
0, /* LOGICAL */
EXTRA_SIZE(struct regnode_1), /* RENUM */
@@ -394,13 +396,12 @@ static const U8 regarglen[] = {
static const char reg_off_by_arg[] = {
0, /* END */
0, /* SUCCEED */
- 0, /* BOL */
- 0, /* MBOL */
0, /* SBOL */
- 0, /* EOS */
- 0, /* EOL */
- 0, /* MEOL */
+ 0, /* MBOL */
0, /* SEOL */
+ 0, /* MEOL */
+ 0, /* EOS */
+ 0, /* GPOS */
0, /* BOUND */
0, /* BOUNDL */
0, /* BOUNDU */
@@ -409,11 +410,11 @@ static const char reg_off_by_arg[] = {
0, /* NBOUNDL */
0, /* NBOUNDU */
0, /* NBOUNDA */
- 0, /* GPOS */
0, /* REG_ANY */
0, /* SANY */
0, /* CANY */
0, /* ANYOF */
+ 0, /* ANYOFL */
0, /* POSIXD */
0, /* POSIXL */
0, /* POSIXU */
@@ -424,13 +425,14 @@ static const char reg_off_by_arg[] = {
0, /* NPOSIXA */
0, /* CLUMP */
0, /* BRANCH */
- 0, /* BACK */
0, /* EXACT */
+ 0, /* EXACTL */
0, /* EXACTF */
0, /* EXACTFL */
0, /* EXACTFU */
0, /* EXACTFA */
0, /* EXACTFU_SS */
+ 0, /* EXACTFLU8 */
0, /* EXACTFA_NO_TRIE */
0, /* NOTHING */
0, /* TAIL */
@@ -453,13 +455,13 @@ static const char reg_off_by_arg[] = {
0, /* NREFFL */
0, /* NREFFU */
0, /* NREFFA */
+ 1, /* LONGJMP */
+ 1, /* BRANCHJ */
2, /* IFMATCH */
2, /* UNLESSM */
1, /* SUSPEND */
1, /* IFTHEN */
0, /* GROUPP */
- 1, /* LONGJMP */
- 1, /* BRANCHJ */
0, /* EVAL */
0, /* MINMOD */
0, /* LOGICAL */
@@ -498,43 +500,43 @@ EXTCONST char * PL_reg_name[];
EXTCONST char * const PL_reg_name[] = {
"END", /* 0000 */
"SUCCEED", /* 0x01 */
- "BOL", /* 0x02 */
+ "SBOL", /* 0x02 */
"MBOL", /* 0x03 */
- "SBOL", /* 0x04 */
- "EOS", /* 0x05 */
- "EOL", /* 0x06 */
- "MEOL", /* 0x07 */
- "SEOL", /* 0x08 */
- "BOUND", /* 0x09 */
- "BOUNDL", /* 0x0a */
- "BOUNDU", /* 0x0b */
- "BOUNDA", /* 0x0c */
- "NBOUND", /* 0x0d */
- "NBOUNDL", /* 0x0e */
- "NBOUNDU", /* 0x0f */
- "NBOUNDA", /* 0x10 */
- "GPOS", /* 0x11 */
- "REG_ANY", /* 0x12 */
- "SANY", /* 0x13 */
- "CANY", /* 0x14 */
- "ANYOF", /* 0x15 */
- "POSIXD", /* 0x16 */
- "POSIXL", /* 0x17 */
- "POSIXU", /* 0x18 */
- "POSIXA", /* 0x19 */
- "NPOSIXD", /* 0x1a */
- "NPOSIXL", /* 0x1b */
- "NPOSIXU", /* 0x1c */
- "NPOSIXA", /* 0x1d */
- "CLUMP", /* 0x1e */
- "BRANCH", /* 0x1f */
- "BACK", /* 0x20 */
- "EXACT", /* 0x21 */
- "EXACTF", /* 0x22 */
- "EXACTFL", /* 0x23 */
- "EXACTFU", /* 0x24 */
- "EXACTFA", /* 0x25 */
- "EXACTFU_SS", /* 0x26 */
+ "SEOL", /* 0x04 */
+ "MEOL", /* 0x05 */
+ "EOS", /* 0x06 */
+ "GPOS", /* 0x07 */
+ "BOUND", /* 0x08 */
+ "BOUNDL", /* 0x09 */
+ "BOUNDU", /* 0x0a */
+ "BOUNDA", /* 0x0b */
+ "NBOUND", /* 0x0c */
+ "NBOUNDL", /* 0x0d */
+ "NBOUNDU", /* 0x0e */
+ "NBOUNDA", /* 0x0f */
+ "REG_ANY", /* 0x10 */
+ "SANY", /* 0x11 */
+ "CANY", /* 0x12 */
+ "ANYOF", /* 0x13 */
+ "ANYOFL", /* 0x14 */
+ "POSIXD", /* 0x15 */
+ "POSIXL", /* 0x16 */
+ "POSIXU", /* 0x17 */
+ "POSIXA", /* 0x18 */
+ "NPOSIXD", /* 0x19 */
+ "NPOSIXL", /* 0x1a */
+ "NPOSIXU", /* 0x1b */
+ "NPOSIXA", /* 0x1c */
+ "CLUMP", /* 0x1d */
+ "BRANCH", /* 0x1e */
+ "EXACT", /* 0x1f */
+ "EXACTL", /* 0x20 */
+ "EXACTF", /* 0x21 */
+ "EXACTFL", /* 0x22 */
+ "EXACTFU", /* 0x23 */
+ "EXACTFA", /* 0x24 */
+ "EXACTFU_SS", /* 0x25 */
+ "EXACTFLU8", /* 0x26 */
"EXACTFA_NO_TRIE", /* 0x27 */
"NOTHING", /* 0x28 */
"TAIL", /* 0x29 */
@@ -557,13 +559,13 @@ EXTCONST char * const PL_reg_name[] = {
"NREFFL", /* 0x3a */
"NREFFU", /* 0x3b */
"NREFFA", /* 0x3c */
- "IFMATCH", /* 0x3d */
- "UNLESSM", /* 0x3e */
- "SUSPEND", /* 0x3f */
- "IFTHEN", /* 0x40 */
- "GROUPP", /* 0x41 */
- "LONGJMP", /* 0x42 */
- "BRANCHJ", /* 0x43 */
+ "LONGJMP", /* 0x3d */
+ "BRANCHJ", /* 0x3e */
+ "IFMATCH", /* 0x3f */
+ "UNLESSM", /* 0x40 */
+ "SUSPEND", /* 0x41 */
+ "IFTHEN", /* 0x42 */
+ "GROUPP", /* 0x43 */
"EVAL", /* 0x44 */
"MINMOD", /* 0x45 */
"LOGICAL", /* 0x46 */
@@ -640,32 +642,32 @@ EXTCONST char * const PL_reg_name[] = {
EXTCONST char * PL_reg_extflags_name[];
#else
EXTCONST char * const PL_reg_extflags_name[] = {
- /* Bits in extflags defined: 11111110111111111111111111111111 */
+ /* Bits in extflags defined: 11111111111111110000111111111111 */
"MULTILINE", /* 0x00000001 */
"SINGLELINE", /* 0x00000002 */
"FOLD", /* 0x00000004 */
"EXTENDED", /* 0x00000008 */
- "KEEPCOPY", /* 0x00000010 */
- "CHARSET0", /* 0x00000020 : "CHARSET" - 0x000000e0 */
- "CHARSET1", /* 0x00000040 : "CHARSET" - 0x000000e0 */
- "CHARSET2", /* 0x00000080 : "CHARSET" - 0x000000e0 */
- "SPLIT", /* 0x00000100 */
- "IS_ANCHORED", /* 0x00000200 */
- "UNUSED1", /* 0x00000400 */
- "UNUSED2", /* 0x00000800 */
- "UNUSED3", /* 0x00001000 */
- "UNUSED4", /* 0x00002000 */
- "UNUSED5", /* 0x00004000 */
- "NO_INPLACE_SUBST", /* 0x00008000 */
- "EVAL_SEEN", /* 0x00010000 */
- "UNUSED8", /* 0x00020000 */
+ "EXTENDED_MORE", /* 0x00000010 */
+ "NOCAPTURE", /* 0x00000020 */
+ "KEEPCOPY", /* 0x00000040 */
+ "CHARSET0", /* 0x00000080 : "CHARSET" - 0x00000380 */
+ "CHARSET1", /* 0x00000100 : "CHARSET" - 0x00000380 */
+ "CHARSET2", /* 0x00000200 : "CHARSET" - 0x00000380 */
+ "STRICT", /* 0x00000400 */
+ "SPLIT", /* 0x00000800 */
+ "UNUSED_BIT_12", /* 0x00001000 */
+ "UNUSED_BIT_13", /* 0x00002000 */
+ "UNUSED_BIT_14", /* 0x00004000 */
+ "UNUSED_BIT_15", /* 0x00008000 */
+ "NO_INPLACE_SUBST", /* 0x00010000 */
+ "EVAL_SEEN", /* 0x00020000 */
"UNBOUNDED_QUANTIFIER_SEEN",/* 0x00040000 */
"CHECK_ALL", /* 0x00080000 */
"MATCH_UTF8", /* 0x00100000 */
"USE_INTUIT_NOML", /* 0x00200000 */
"USE_INTUIT_ML", /* 0x00400000 */
"INTUIT_TAIL", /* 0x00800000 */
- "UNUSED_BIT_24", /* 0x01000000 */
+ "IS_ANCHORED", /* 0x01000000 */
"COPY_DONE", /* 0x02000000 */
"TAINTED_SEEN", /* 0x04000000 */
"TAINTED", /* 0x08000000 */
@@ -696,15 +698,14 @@ EXTCONST char * const PL_reg_intflags_name[] = {
"CANY_SEEN", /* 0x00000080 - PREGf_CANY_SEEN */
"GPOS_SEEN", /* 0x00000100 - PREGf_GPOS_SEEN */
"GPOS_FLOAT", /* 0x00000200 - PREGf_GPOS_FLOAT */
- "ANCH_BOL", /* 0x00000400 - PREGf_ANCH_BOL */
- "ANCH_MBOL", /* 0x00000800 - PREGf_ANCH_MBOL */
- "ANCH_SBOL", /* 0x00001000 - PREGf_ANCH_SBOL */
- "ANCH_GPOS", /* 0x00002000 - PREGf_ANCH_GPOS */
+ "ANCH_MBOL", /* 0x00000400 - PREGf_ANCH_MBOL */
+ "ANCH_SBOL", /* 0x00000800 - PREGf_ANCH_SBOL */
+ "ANCH_GPOS", /* 0x00001000 - PREGf_ANCH_GPOS */
};
#endif /* DOINIT */
#ifdef DEBUGGING
-# define REG_INTFLAGS_NAME_SIZE 14
+# define REG_INTFLAGS_NAME_SIZE 13
#endif
/* The following have no fixed length. U8 so we can do strchr() on it. */
@@ -714,9 +715,9 @@ EXTCONST char * const PL_reg_intflags_name[] = {
EXTCONST U8 PL_varies[] __attribute__deprecated__;
#else
EXTCONST U8 PL_varies[] __attribute__deprecated__ = {
- CLUMP, BRANCH, BACK, STAR, PLUS, CURLY, CURLYN, CURLYM, CURLYX, WHILEM,
- REF, REFF, REFFL, REFFU, REFFA, NREF, NREFF, NREFFL, NREFFU, NREFFA,
- SUSPEND, IFTHEN, BRANCHJ,
+ CLUMP, BRANCH, STAR, PLUS, CURLY, CURLYN, CURLYM, CURLYX, WHILEM, REF,
+ REFF, REFFL, REFFU, REFFA, NREF, NREFF, NREFFL, NREFFU, NREFFA,
+ BRANCHJ, SUSPEND, IFTHEN,
0
};
#endif /* DOINIT */
@@ -725,7 +726,7 @@ EXTCONST U8 PL_varies[] __attribute__deprecated__ = {
EXTCONST U8 PL_varies_bitmask[];
#else
EXTCONST U8 PL_varies_bitmask[] = {
- 0x00, 0x00, 0x00, 0xC0, 0x01, 0xFC, 0xF9, 0x9F, 0x09, 0x00, 0x00, 0x00
+ 0x00, 0x00, 0x00, 0x60, 0x00, 0xFC, 0xF9, 0x5F, 0x06, 0x00, 0x00, 0x00
};
#endif /* DOINIT */
@@ -737,8 +738,8 @@ EXTCONST U8 PL_varies_bitmask[] = {
EXTCONST U8 PL_simple[] __attribute__deprecated__;
#else
EXTCONST U8 PL_simple[] __attribute__deprecated__ = {
- REG_ANY, SANY, CANY, ANYOF, POSIXD, POSIXL, POSIXU, POSIXA, NPOSIXD,
- NPOSIXL, NPOSIXU, NPOSIXA,
+ REG_ANY, SANY, CANY, ANYOF, ANYOFL, POSIXD, POSIXL, POSIXU, POSIXA,
+ NPOSIXD, NPOSIXL, NPOSIXU, NPOSIXA,
0
};
#endif /* DOINIT */
@@ -747,7 +748,7 @@ EXTCONST U8 PL_simple[] __attribute__deprecated__ = {
EXTCONST U8 PL_simple_bitmask[];
#else
EXTCONST U8 PL_simple_bitmask[] = {
- 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ 0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
#endif /* DOINIT */
diff --git a/Master/tlpkg/tlperl/lib/CORE/scope.h b/Master/tlpkg/tlperl/lib/CORE/scope.h
index 0dce9d64530..97ef3faa913 100644
--- a/Master/tlpkg/tlperl/lib/CORE/scope.h
+++ b/Master/tlpkg/tlperl/lib/CORE/scope.h
@@ -16,12 +16,12 @@
#define SAVEt_CLEARPADRANGE 1
#define SAVEt_CLEARSV 2
#define SAVEt_REGCONTEXT 3
-/*** SPARE 4 ***/
-#define SAVEt_ARG0_MAX 4
+#define SAVEt_ARG0_MAX 3
/* one arg */
+#define SAVEt_GP_ALIASED_SV 4
#define SAVEt_BOOL 5
#define SAVEt_COMPILE_WARNINGS 6
#define SAVEt_COMPPAD 7
@@ -39,12 +39,12 @@
#define SAVEt_PARSER 19
#define SAVEt_STACK_POS 20
#define SAVEt_READONLY_OFF 21
+#define SAVEt_FREEPADNAME 22
-#define SAVEt_ARG1_MAX 21
+#define SAVEt_ARG1_MAX 22
/* two args */
-#define SAVEt_APTR 22
#define SAVEt_AV 23
#define SAVEt_DESTRUCTOR 24
#define SAVEt_DESTRUCTOR_X 25
@@ -69,17 +69,19 @@
#define SAVEt_SVREF 44
#define SAVEt_VPTR 45
#define SAVEt_ADELETE 46
+#define SAVEt_APTR 47
-#define SAVEt_ARG2_MAX 46
+#define SAVEt_ARG2_MAX 47
/* three args */
-#define SAVEt_DELETE 47
#define SAVEt_HELEM 48
#define SAVEt_PADSV_AND_MORTALIZE 49
#define SAVEt_SET_SVFLAGS 50
#define SAVEt_GVSLOT 51
#define SAVEt_AELEM 52
+#define SAVEt_DELETE 53
+
#define SAVEf_SETMAGIC 1
#define SAVEf_KEEPOLDELEM 2
@@ -240,6 +242,7 @@ scope has the given name. Name must be a literal string.
#define SAVEVPTR(s) save_vptr((void*)&(s))
#define SAVEPADSVANDMORTALIZE(s) save_padsv_and_mortalize(s)
#define SAVEFREESV(s) save_freesv(MUTABLE_SV(s))
+#define SAVEFREEPADNAME(s) save_pushptr((void *)(s), SAVEt_FREEPADNAME)
#define SAVEMORTALIZESV(s) save_mortalizesv(MUTABLE_SV(s))
#define SAVEFREEOP(o) save_freeop((OP*)(o))
#define SAVEFREEPV(p) save_freepv((char*)(p))
@@ -338,11 +341,5 @@ STMT_START { \
#define save_op() save_pushptr((void *)(PL_op), SAVEt_OP)
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/sv.h b/Master/tlpkg/tlperl/lib/CORE/sv.h
index b129225bd3c..665c330fe6e 100644
--- a/Master/tlpkg/tlperl/lib/CORE/sv.h
+++ b/Master/tlpkg/tlperl/lib/CORE/sv.h
@@ -176,6 +176,9 @@ typedef enum {
#if defined(PERL_IN_HV_C) || defined(PERL_IN_XS_APITEST)
#define HE_SVSLOT SVt_NULL
#endif
+#ifdef PERL_IN_SV_C
+# define SVt_FIRST SVt_NULL /* the type of SV that new_SV() in sv.c returns */
+#endif
#define PERL_ARENA_ROOTS_SIZE (SVt_LAST)
@@ -191,11 +194,18 @@ typedef struct hek HEK;
U32 sv_refcnt; /* how many references to us */ \
U32 sv_flags /* what we are */
+#if NVSIZE <= IVSIZE
+# define _NV_BODYLESS_UNION NV svu_nv;
+#else
+# define _NV_BODYLESS_UNION
+#endif
+
#define _SV_HEAD_UNION \
union { \
char* svu_pv; /* pointer to malloced string */ \
IV svu_iv; \
UV svu_uv; \
+ _NV_BODYLESS_UNION \
SV* svu_rv; /* pointer to another SV */ \
struct regexp* svu_rx; \
SV** svu_array; \
@@ -339,7 +349,7 @@ perform the upgrade if necessary. See C<svtype>.
/* Sadly there are some parts of the core that have pointers to already-freed
SV heads, and rely on being able to tell that they are now free. So mark
them all by using a consistent macro. */
-#define SvIS_FREED(sv) ((sv)->sv_flags == SVTYPEMASK)
+#define SvIS_FREED(sv) UNLIKELY(((sv)->sv_flags == SVTYPEMASK))
/* this is defined in this peculiar way to avoid compiler warnings.
* See the <20121213131428.GD1842@iabyn.com> thread in p5p */
@@ -361,16 +371,11 @@ perform the upgrade if necessary. See C<svtype>.
subroutine in another package. Set the
GvIMPORTED_CV_on() if it needs to be
expanded to a real GV */
-#define SVpad_NAMELIST SVp_SCREAM /* AV is a padnamelist */
-#define SVf_IsCOW 0x00010000 /* copy on write (shared hash key if
- SvLEN == 0) */
-#define SVs_PADTMP 0x00020000 /* in use as tmp; only if ! SVs_PADMY */
-#define SVs_PADSTALE 0x00020000 /* lexical has gone out of scope;
- only valid for SVs_PADMY */
-#define SVpad_TYPED 0x00020000 /* pad name is a Typed Lexical */
-#define SVs_PADMY 0x00040000 /* in use a "my" variable */
-#define SVpad_OUR 0x00040000 /* pad name is "our" instead of "my" */
-#define SVs_TEMP 0x00080000 /* string is stealable? */
+#define SVf_PROTECT 0x00010000 /* very read-only */
+#define SVs_PADTMP 0x00020000 /* in use as tmp */
+#define SVs_PADSTALE 0x00040000 /* lexical has gone out of scope;
+ only used when !PADTMP */
+#define SVs_TEMP 0x00080000 /* mortal (implies string is stealable) */
#define SVs_OBJECT 0x00100000 /* is "blessed" */
#define SVs_GMG 0x00200000 /* has magical get method */
#define SVs_SMG 0x00400000 /* has magical set method */
@@ -381,9 +386,8 @@ perform the upgrade if necessary. See C<svtype>.
2: For PVCV, whether CvUNIQUE(cv)
refers to an eval or once only
[CvEVAL(cv), CvSPECIAL(cv)]
- 3: On a pad name SV, that slot in the
- frame AV is a REFCNT'ed reference
- to a lexical from "outside". */
+ 3: HV: informally reserved by DAPM
+ for vtables */
#define SVf_OOK 0x02000000 /* has valid offset value. For a PVHV this
means that a hv_aux struct is present
after the main array */
@@ -396,19 +400,21 @@ perform the upgrade if necessary. See C<svtype>.
-#define SVf_THINKFIRST (SVf_READONLY|SVf_ROK|SVf_FAKE|SVs_RMG|SVf_IsCOW)
+#define SVf_THINKFIRST (SVf_READONLY|SVf_PROTECT|SVf_ROK|SVf_FAKE \
+ |SVs_RMG|SVf_IsCOW)
#define SVf_OK (SVf_IOK|SVf_NOK|SVf_POK|SVf_ROK| \
SVp_IOK|SVp_NOK|SVp_POK|SVpgv_GP)
#define PRIVSHIFT 4 /* (SVp_?OK >> PRIVSHIFT) == SVf_?OK */
+/* Note that SVf_AMAGIC is now only set on stashes. */
#define SVf_AMAGIC 0x10000000 /* has magical overloaded methods */
+#define SVf_IsCOW 0x10000000 /* copy on write (shared hash key if
+ SvLEN == 0) */
-/* note that SVf_AMAGIC is now only set on stashes, so this bit is free
- * for non-HV SVs */
-
-/* Ensure this value does not clash with the GV_ADD* flags in gv.h: */
+/* Ensure this value does not clash with the GV_ADD* flags in gv.h, or the
+ CV_CKPROTO_* flags in op.c, or the padadd_* flags in pad.h: */
#define SVf_UTF8 0x20000000 /* SvPV is UTF-8 encoded
This is also set on RVs whose overloaded
stringification is UTF-8. This might
@@ -424,22 +430,19 @@ perform the upgrade if necessary. See C<svtype>.
/* Some private flags. */
-/* PVNV, PVMG only, and only used in pads. Should be safe to test on any scalar
- SV, as the core is careful to avoid setting both.
+/* The SVp_SCREAM|SVpbm_VALID (0x40008000) combination is up for grabs.
+ Formerly it was used for pad names, but now it is available. The core
+ is careful to avoid setting both flags.
SVf_POK, SVp_POK also set:
0x00004400 Normal
0x0000C400 method name for DOES (SvSCREAM)
0x40004400 FBM compiled (SvVALID)
- 0x4000C400 pad name.
+ 0x4000C400 *** Formerly used for pad names ***
0x00008000 GV with GP
0x00008800 RV with PCS imported
*/
-#define SVpad_NAME (SVp_SCREAM|SVpbm_VALID)
- /* This SV is a name in the PAD, so
- SVpad_TYPED, SVpad_OUR and SVpad_STATE
- apply */
/* PVAV */
#define SVpav_REAL 0x40000000 /* free old entries */
/* PVHV */
@@ -461,7 +464,6 @@ perform the upgrade if necessary. See C<svtype>.
/* RV upwards. However, SVf_ROK and SVp_IOK are exclusive */
#define SVprv_WEAKREF 0x80000000 /* Weak reference */
/* pad name vars only */
-#define SVpad_STATE 0x80000000 /* pad name is a "state" var */
#define _XPV_HEAD \
HV* xmg_stash; /* class package */ \
@@ -491,9 +493,8 @@ union _xivu {
union _xmgu {
MAGIC* xmg_magic; /* linked list of magicalness */
- HV* xmg_ourstash; /* Stash for our (when SvPAD_OUR is true) */
STRLEN xmg_hash_index; /* used while freeing hash entries */
-}; /* also used by PadnamelistMAXNAMED */
+};
struct xpv {
_XPV_HEAD;
@@ -545,9 +546,14 @@ struct xpvlv {
struct xpvinvlist {
_XPV_HEAD;
- IV prev_index;
- STRLEN iterator;
- bool is_offset; /* */
+ IV prev_index; /* caches result of previous invlist_search() */
+ STRLEN iterator; /* Stores where we are in iterating */
+ bool is_offset; /* The data structure for all inversion lists
+ begins with an element for code point U+0000.
+ If this bool is set, the actual list contains
+ that 0; otherwise, the list actually begins
+ with the following element. Thus to invert
+ the list, merely toggle this flag */
};
/* This structure works in 3 ways - regular scalar, GV with GP, or fast
@@ -575,7 +581,10 @@ typedef U32 cv_flags_t;
HEK * xcv_hek; \
} xcv_gv_u; \
char * xcv_file; \
- PADLIST * xcv_padlist; \
+ union { \
+ PADLIST * xcv_padlist; \
+ void * xcv_hscxt; \
+ } xcv_padlist_u; \
CV * xcv_outside; \
U32 xcv_outside_seq; /* the COP sequence (at the point of our \
* compilation) in the lexically enclosing \
@@ -792,13 +801,18 @@ C<SvIV_set> instead of the lvalue assignment to C<SvIVX>.
Set the value of the NV pointer in sv to val. See C<SvIV_set>.
=for apidoc Am|void|SvPV_set|SV* sv|char* val
-Set the value of the PV pointer in C<sv> to the C<NUL>-terminated string
-C<val>. See also C<SvIV_set>.
+This is probably not what you want to use, you probably wanted
+L</sv_usepvn_flags> or L</sv_setpvn> or L</sv_setpvs>.
+
+Set the value of the PV pointer in C<sv> to the Perl allocated
+C<NUL>-terminated string C<val>. See also C<SvIV_set>.
+Remember to free the previous PV buffer. There are many things to check.
Beware that the existing pointer may be involved in copy-on-write or other
mischief, so do C<SvOOK_off(sv)> and use C<sv_force_normal> or
C<SvPV_force> (or check the SvIsCOW flag) first to make sure this
-modification is safe.
+modification is safe. Then finally, if it is not a COW, call C<SvPV_free> to
+free the previous PV buffer.
=for apidoc Am|void|SvUV_set|SV* sv|UV val
Set the value of the UV pointer in sv to val. See C<SvIV_set>.
@@ -883,6 +897,9 @@ properly, this indicates whether or not the SV contains UTF-8 encoded data.
You should use this I<after> a call to SvPV() or one of its variants, in
case any call to string overloading updates the internal flag.
+If you want to take into account the L<bytes> pragma, use C<L</DO_UTF8>>
+instead.
+
=for apidoc Am|void|SvUTF8_on|SV *sv
Turn on the UTF-8 status of an SV (the data is not changed, just the flag).
Do not use frivolously.
@@ -1043,17 +1060,17 @@ sv_force_normal does nothing.
#define SvTHINKFIRST(sv) (SvFLAGS(sv) & SVf_THINKFIRST)
-#define SvPADMY(sv) (SvFLAGS(sv) & SVs_PADMY)
-#define SvPADMY_on(sv) (SvFLAGS(sv) |= SVs_PADMY)
-
-/* SVs_PADTMP and SVs_PADSTALE share the same bit, mediated by SVs_PADMY */
+#define SVs_PADMY 0
+#define SvPADMY(sv) !(SvFLAGS(sv) & SVs_PADTMP)
+#ifndef PERL_CORE
+# define SvPADMY_on(sv) SvPADTMP_off(sv)
+#endif
-#define SvPADTMP(sv) ((SvFLAGS(sv) & (SVs_PADMY|SVs_PADTMP)) == SVs_PADTMP)
-#define SvPADSTALE(sv) ((SvFLAGS(sv) & (SVs_PADMY|SVs_PADSTALE)) \
- == (SVs_PADMY|SVs_PADSTALE))
+#define SvPADTMP(sv) (SvFLAGS(sv) & (SVs_PADTMP))
+#define SvPADSTALE(sv) (SvFLAGS(sv) & (SVs_PADSTALE))
-#define SvPADTMP_on(sv) S_SvPADTMP_on(MUTABLE_SV(sv))
-#define SvPADTMP_off(sv) S_SvPADTMP_off(MUTABLE_SV(sv))
+#define SvPADTMP_on(sv) (SvFLAGS(sv) |= SVs_PADTMP)
+#define SvPADTMP_off(sv) (SvFLAGS(sv) &= ~SVs_PADTMP)
#define SvPADSTALE_on(sv) S_SvPADSTALE_on(MUTABLE_SV(sv))
#define SvPADSTALE_off(sv) S_SvPADSTALE_off(MUTABLE_SV(sv))
@@ -1065,9 +1082,14 @@ sv_force_normal does nothing.
#define SvOBJECT_on(sv) (SvFLAGS(sv) |= SVs_OBJECT)
#define SvOBJECT_off(sv) (SvFLAGS(sv) &= ~SVs_OBJECT)
-#define SvREADONLY(sv) (SvFLAGS(sv) & SVf_READONLY)
-#define SvREADONLY_on(sv) (SvFLAGS(sv) |= SVf_READONLY)
-#define SvREADONLY_off(sv) (SvFLAGS(sv) &= ~SVf_READONLY)
+#define SvREADONLY(sv) (SvFLAGS(sv) & (SVf_READONLY|SVf_PROTECT))
+#ifdef PERL_CORE
+# define SvREADONLY_on(sv) (SvFLAGS(sv) |= (SVf_READONLY|SVf_PROTECT))
+# define SvREADONLY_off(sv) (SvFLAGS(sv) &=~(SVf_READONLY|SVf_PROTECT))
+#else
+# define SvREADONLY_on(sv) (SvFLAGS(sv) |= SVf_READONLY)
+# define SvREADONLY_off(sv) (SvFLAGS(sv) &= ~SVf_READONLY)
+#endif
#define SvSCREAM(sv) ((SvFLAGS(sv) & (SVp_SCREAM|SVp_POK)) == (SVp_SCREAM|SVp_POK))
#define SvSCREAM_on(sv) (SvFLAGS(sv) |= SVp_SCREAM)
@@ -1118,46 +1140,6 @@ sv_force_normal does nothing.
#define SvTAIL_on(sv) (SvFLAGS(sv) |= SVpbm_TAIL)
#define SvTAIL_off(sv) (SvFLAGS(sv) &= ~SVpbm_TAIL)
-
-#define SvPAD_TYPED(sv) \
- ((SvFLAGS(sv) & (SVpad_NAME|SVpad_TYPED)) == (SVpad_NAME|SVpad_TYPED))
-
-#define SvPAD_OUR(sv) \
- ((SvFLAGS(sv) & (SVpad_NAME|SVpad_OUR)) == (SVpad_NAME|SVpad_OUR))
-
-#define SvPAD_STATE(sv) \
- ((SvFLAGS(sv) & (SVpad_NAME|SVpad_STATE)) == (SVpad_NAME|SVpad_STATE))
-
-#if defined (DEBUGGING) && defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
-# define SvPAD_TYPED_on(sv) ({ \
- SV *const _svpad = MUTABLE_SV(sv); \
- assert(SvTYPE(_svpad) == SVt_PVMG); \
- (SvFLAGS(_svpad) |= SVpad_NAME|SVpad_TYPED); \
- })
-#define SvPAD_OUR_on(sv) ({ \
- SV *const _svpad = MUTABLE_SV(sv); \
- assert(SvTYPE(_svpad) == SVt_PVMG); \
- (SvFLAGS(_svpad) |= SVpad_NAME|SVpad_OUR); \
- })
-#define SvPAD_STATE_on(sv) ({ \
- SV *const _svpad = MUTABLE_SV(sv); \
- assert(SvTYPE(_svpad) == SVt_PVNV || SvTYPE(_svpad) == SVt_PVMG); \
- (SvFLAGS(_svpad) |= SVpad_NAME|SVpad_STATE); \
- })
-#else
-# define SvPAD_TYPED_on(sv) (SvFLAGS(sv) |= SVpad_NAME|SVpad_TYPED)
-# define SvPAD_OUR_on(sv) (SvFLAGS(sv) |= SVpad_NAME|SVpad_OUR)
-# define SvPAD_STATE_on(sv) (SvFLAGS(sv) |= SVpad_NAME|SVpad_STATE)
-#endif
-
-#define SvOURSTASH(sv) \
- (SvPAD_OUR(sv) ? ((XPVMG*) SvANY(sv))->xmg_u.xmg_ourstash : NULL)
-#define SvOURSTASH_set(sv, st) \
- STMT_START { \
- assert(SvTYPE(sv) == SVt_PVMG); \
- ((XPVMG*) SvANY(sv))->xmg_u.xmg_ourstash = st; \
- } STMT_END
-
#define SvRVx(sv) SvRV(sv)
#ifdef PERL_DEBUG_COW
@@ -1240,8 +1222,6 @@ sv_force_normal does nothing.
# define SvMAGIC(sv) \
(*({ const SV *const _svmagic = (const SV *)(sv); \
assert(SvTYPE(_svmagic) >= SVt_PVMG); \
- if(SvTYPE(_svmagic) == SVt_PVMG) \
- assert(!SvPAD_OUR(_svmagic)); \
&(((XPVMG*) MUTABLE_PTR(SvANY(_svmagic)))->xmg_u.xmg_magic); \
}))
# define SvSTASH(sv) \
@@ -1286,11 +1266,11 @@ sv_force_normal does nothing.
Not guaranteed to stay returning void */
/* Macro won't actually call sv_2iv if already IOK */
#define SvIV_please(sv) \
- STMT_START {if (!SvIOKp(sv) && (SvNOK(sv) || SvPOK(sv))) \
+ STMT_START {if (!SvIOKp(sv) && (SvFLAGS(sv) & (SVf_NOK|SVf_POK))) \
(void) SvIV(sv); } STMT_END
#define SvIV_please_nomg(sv) \
- (!SvIOKp(sv) && (SvNOK(sv) || SvPOK(sv)) \
- ? (SvIV_nomg(sv), SvIOK(sv)) \
+ (!(SvFLAGS(sv) & (SVf_IOK|SVp_IOK)) && (SvFLAGS(sv) & (SVf_NOK|SVf_POK)) \
+ ? (sv_2iv_flags(sv, 0), SvIOK(sv)) \
: SvIOK(sv))
#define SvIV_set(sv, val) \
STMT_START { \
@@ -1674,15 +1654,15 @@ Like sv_utf8_upgrade, but doesn't do magic on C<sv>.
#define SvPV_flags_const(sv, lp, flags) \
(SvPOK_nog(sv) \
? ((lp = SvCUR(sv)), SvPVX_const(sv)) : \
- (const char*) sv_2pv_flags(sv, &lp, flags|SV_CONST_RETURN))
+ (const char*) sv_2pv_flags(sv, &lp, (flags|SV_CONST_RETURN)))
#define SvPV_flags_const_nolen(sv, flags) \
(SvPOK_nog(sv) \
? SvPVX_const(sv) : \
- (const char*) sv_2pv_flags(sv, 0, flags|SV_CONST_RETURN))
+ (const char*) sv_2pv_flags(sv, 0, (flags|SV_CONST_RETURN)))
#define SvPV_flags_mutable(sv, lp, flags) \
(SvPOK_nog(sv) \
? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) : \
- sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN))
+ sv_2pv_flags(sv, &lp, (flags|SV_MUTABLE_RETURN)))
#define SvPV_force(sv, lp) SvPV_force_flags(sv, lp, SV_GMAGIC)
#define SvPV_force_nolen(sv) SvPV_force_flags_nolen(sv, SV_GMAGIC)
@@ -1849,12 +1829,8 @@ Like sv_utf8_upgrade, but doesn't do magic on C<sv>.
/* if (after resolving magic etc), the SV is found to be overloaded,
* don't call the overload magic, just return as-is */
#define SV_SKIP_OVERLOAD 8192
-/* It is not yet clear whether we want this as an API, or what the
- * constants should be named. */
-#ifdef PERL_CORE
-# define SV_CATBYTES 16384
-# define SV_CATUTF8 32768
-#endif
+#define SV_CATBYTES 16384
+#define SV_CATUTF8 32768
/* The core is safe for this COW optimisation. XS code on CPAN may not be.
So only default to doing the COW setup if we're in the core.
@@ -1895,7 +1871,7 @@ Like sv_utf8_upgrade, but doesn't do magic on C<sv>.
on-write. */
# define CAN_COW_MASK (SVs_OBJECT|SVs_GMG|SVs_SMG|SVs_RMG|SVf_IOK|SVf_NOK| \
SVf_POK|SVf_ROK|SVp_IOK|SVp_NOK|SVp_POK|SVf_FAKE| \
- SVf_OOK|SVf_BREAK|SVf_READONLY)
+ SVf_OOK|SVf_BREAK|SVf_READONLY|SVf_PROTECT)
#else
# define SvRELEASE_IVX(sv) 0
/* This little game brought to you by the need to shut this warning up:
@@ -1913,7 +1889,7 @@ mg.c:1024: warning: left-hand operand of comma expression has no effect
# define CowREFCNT(sv) (*(U8 *)(SvPVX(sv)+SvLEN(sv)-1))
# define SV_COW_REFCNT_MAX ((1 << sizeof(U8)*8) - 1)
# define CAN_COW_MASK (SVf_POK|SVf_ROK|SVp_POK|SVf_FAKE| \
- SVf_OOK|SVf_BREAK|SVf_READONLY)
+ SVf_OOK|SVf_BREAK|SVf_READONLY|SVf_PROTECT)
# endif
#endif /* PERL_OLD_COPY_ON_WRITE */
@@ -1965,6 +1941,12 @@ mg.c:1024: warning: left-hand operand of comma expression has no effect
(littlelen), SV_GMAGIC)
#define sv_mortalcopy(sv) \
Perl_sv_mortalcopy_flags(aTHX_ sv, SV_GMAGIC|SV_DO_COW_SVSETSV)
+#define sv_cathek(sv,hek) \
+ STMT_START { \
+ HEK * const bmxk = hek; \
+ sv_catpvn_flags(sv, HEK_KEY(bmxk), HEK_LEN(bmxk), \
+ HEK_UTF8(bmxk) ? SV_CATUTF8 : SV_CATBYTES); \
+ } STMT_END
/* Should be named SvCatPVN_utf8_upgrade? */
#define sv_catpvn_nomg_utf8_upgrade(dsv, sstr, slen, nsv) \
@@ -2176,14 +2158,12 @@ C<SvUTF8_on> on the new SV. Implemented as a wrapper around C<newSVpvn_flags>.
/*
=for apidoc Amx|SV*|newSVpadname|PADNAME *pn
-Creates a new SV containing the pad name. This is currently identical
-to C<newSVsv>, but pad names may cease being SVs at some point, so
-C<newSVpadname> is preferable.
+Creates a new SV containing the pad name.
=cut
*/
-#define newSVpadname(pn) newSVsv(pn)
+#define newSVpadname(pn) newSVpvn_utf8(PadnamePV(pn), PadnameLEN(pn), TRUE)
/*
=for apidoc Am|void|SvOOK_offset|NN SV*sv|STRLEN len
@@ -2291,11 +2271,5 @@ Evaluates I<sv> more than once. Sets I<len> to 0 if C<SvOOK(sv)> is false.
#define SV_CONSTS_COUNT 35
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/thread.h b/Master/tlpkg/tlperl/lib/CORE/thread.h
index 43932fbb3b3..1fb1cc61315 100644
--- a/Master/tlpkg/tlperl/lib/CORE/thread.h
+++ b/Master/tlpkg/tlperl/lib/CORE/thread.h
@@ -431,11 +431,5 @@
#endif
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/uconfig.h b/Master/tlpkg/tlperl/lib/CORE/uconfig.h
index e5cca088d84..1c132a31ecf 100644
--- a/Master/tlpkg/tlperl/lib/CORE/uconfig.h
+++ b/Master/tlpkg/tlperl/lib/CORE/uconfig.h
@@ -46,6 +46,12 @@
*/
/*#define HAS_BZERO / **/
+/* HAS_CBRT:
+ * This symbol, if defined, indicates that the cbrt() (cube root)
+ * function is available.
+ */
+/*#define HAS_CBRT / **/
+
/* HAS_CHOWN:
* This symbol, if defined, indicates that the chown routine is
* available.
@@ -246,13 +252,13 @@
/* HAS_MBSTOWCS:
* This symbol, if defined, indicates that the mbstowcs routine is
- * available to covert a multibyte string into a wide character string.
+ * available to convert a multibyte string into a wide character string.
*/
/*#define HAS_MBSTOWCS / **/
/* HAS_MBTOWC:
* This symbol, if defined, indicates that the mbtowc routine is available
- * to covert a multibyte to a wide character.
+ * to convert a multibyte to a wide character.
*/
/*#define HAS_MBTOWC / **/
@@ -384,6 +390,13 @@
*/
/*#define HAS_READLINK / **/
+/* HAS_REGCOMP:
+ * This symbol, if defined, indicates that the regcomp() routine is
+ * available to do some regular patern matching (usually on POSIX.2
+ * conforming systems).
+ */
+#define HAS_REGCOMP /* POSIX.2 */
+
/* HAS_RENAME:
* This symbol, if defined, indicates that the rename routine is available
* to rename files. Otherwise you should do the unlink(), link(), unlink()
@@ -499,6 +512,12 @@
*/
/*#define HAS_SETSID / **/
+/* HAS_STAT:
+ * This symbol, if defined, indicates that the stat routine is
+ * available to get file status.
+ */
+#define HAS_STAT /**/
+
/* HAS_STRCHR:
* This symbol is defined to indicate that the strchr()/strrchr()
* functions are available for string searching. If not, try the
@@ -614,7 +633,7 @@
/* HAS_WCTOMB:
* This symbol, if defined, indicates that the wctomb routine is available
- * to covert a wide character to a multibyte.
+ * to convert a wide character to a multibyte.
*/
/*#define HAS_WCTOMB / **/
@@ -896,8 +915,8 @@
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-/*#define ARCHLIB "/usr/local/lib/perl5/5.20/unknown" / **/
-/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.20/unknown" / **/
+/*#define ARCHLIB "/usr/local/lib/perl5/5.22/unknown" / **/
+/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.22/unknown" / **/
/* ARCHNAME:
* This symbol holds a string representing the architecture name.
@@ -943,17 +962,8 @@
* This symbol holds the hexadecimal constant defined in byteorder,
* in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc...
* If the compiler supports cross-compiling or multiple-architecture
- * binaries (e.g. on NeXT systems), use compiler-defined macros to
+ * binaries, use compiler-defined macros to
* determine the byte order.
- * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
- * Binaries (MAB) on either big endian or little endian machines.
- * The endian-ness is available at compile-time. This only matters
- * for perl, where the config.h can be generated and installed on
- * one system, and used by a different architecture to build an
- * extension. Older versions of NeXT that might not have
- * defined either *_ENDIAN__ were all on Motorola 680x0 series,
- * so the default case (for NeXT) is big endian to catch them.
- * This might matter for NeXT 3.0.
*/
#if defined(MULTIARCH)
# ifdef __LITTLE_ENDIAN__
@@ -975,12 +985,9 @@
# endif
# endif
# endif
-# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
-# define BYTEORDER 0x4321
-# endif
#else
#define BYTEORDER 0x1234 /* large digits for MSB */
-#endif /* NeXT */
+#endif
/* CHARBITS:
* This symbol contains the size of a char, so that the C preprocessor
@@ -1102,6 +1109,13 @@
/*#define HASATTRIBUTE_UNUSED / **/
/*#define HASATTRIBUTE_WARN_UNUSED_RESULT / **/
+/* HAS_BACKTRACE:
+ * This symbol, if defined, indicates that the backtrace() routine is
+ * available to get a stack trace. The <execinfo.h> header must be
+ * included to use this routine.
+ */
+/*#define HAS_BACKTRACE / **/
+
/* CASTI32:
* This symbol is defined if the C compiler can cast negative
* or large floating point numbers to 32-bit ints.
@@ -1190,6 +1204,13 @@
/*#define HAS_CTIME_R / **/
#define CTIME_R_PROTO 0 /**/
+/* HAS_DLADDR:
+ * This symbol, if defined, indicates that the dladdr() routine is
+ * available to query dynamic linker information for an address.
+ * The <dlfcn.h> header must be included to use this routine.
+ */
+/*#define HAS_DLADDR / **/
+
/* SETUID_SCRIPTS_ARE_SECURE_NOW:
* This symbol, if defined, indicates that the bug that prevents
* setuid scripts from being secure is not present in this kernel.
@@ -1896,11 +1917,39 @@
/* LONG_DOUBLESIZE:
* This symbol contains the size of a long double, so that the
* C preprocessor can make decisions based on it. It is only
- * defined if the system supports long doubles.
- */
+ * defined if the system supports long doubles. Note that this
+ * is sizeof(long double), which may include unused bytes.
+ */
+/* HAS_LDEXPL:
+ * This symbol, if defined, indicates that the ldexpl routine is
+ * available to shift a long double floating-point number
+ * by an integral power of 2.
+ */
+/* LONG_DOUBLEKIND:
+ * LONG_DOUBLEKIND will be one of
+ * LONG_DOUBLE_IS_DOUBLE
+ * LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+ * LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+ * LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN
+ * LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN
+ * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN
+ * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN
+ * LONG_DOUBLE_IS_UNKNOWN_FORMAT
+ * It is only defined if the system supports long doubles.
+ */
+/*#define HAS_LDEXPL / **/
/*#define HAS_LONG_DOUBLE / **/
#ifdef HAS_LONG_DOUBLE
#define LONG_DOUBLESIZE 8 /**/
+#define LONG_DOUBLEKIND 0 /**/
+#define LONG_DOUBLE_IS_DOUBLE 0
+#define LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN 1
+#define LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 2
+#define LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN 3
+#define LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN 4
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN 5
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN 6
+#define LONG_DOUBLE_IS_UNKNOWN_FORMAT -1
#endif
/* HAS_LONG_LONG:
@@ -2638,14 +2687,7 @@
* This symbol, if defined, indicates that this system uses
* EBCDIC encoding.
*/
-/* BOOTSTRAP_CHARSET:
- * This symbol, if defined, indicates that this system needs
- * converting various files to the native character set before
- * bringing up perl on a system that has a non-ASCII character
- * set and no working perl.
- */
/*#define EBCDIC / **/
-/*#define BOOTSTRAP_CHARSET / **/
/* Fpos_t:
* This symbol holds the type used to declare file positions in libc.
@@ -2699,6 +2741,12 @@
/*#define DIRNAMLEN / **/
#define Direntry_t struct dirent
+/* I_EXECINFO:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <execinfo.h> for backtrace() support.
+ */
+/*#define I_EXECINFO / **/
+
/* I_GRP:
* This symbol, if defined, indicates to the C program that it should
* include <grp.h>.
@@ -2837,6 +2885,26 @@
*/
/*#define I_SYSUIO / **/
+/* I_TERMIO:
+ * This symbol, if defined, indicates that the program should include
+ * <termio.h> rather than <sgtty.h>. There are also differences in
+ * the ioctl() calls that depend on the value of this symbol.
+ */
+/* I_TERMIOS:
+ * This symbol, if defined, indicates that the program should include
+ * the POSIX termios.h rather than sgtty.h or termio.h.
+ * There are also differences in the ioctl() calls that depend on the
+ * value of this symbol.
+ */
+/* I_SGTTY:
+ * This symbol, if defined, indicates that the program should include
+ * <sgtty.h> rather than <termio.h>. There are also differences in
+ * the ioctl() calls that depend on the value of this symbol.
+ */
+/*#define I_TERMIO / **/
+/*#define I_TERMIOS / **/
+/*#define I_SGTTY / **/
+
/* I_TIME:
* This symbol, if defined, indicates to the C program that it should
* include <time.h>.
@@ -3007,8 +3075,8 @@
* This symbol contains the ~name expanded version of PRIVLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define PRIVLIB "/usr/local/lib/perl5/5.20" /**/
-#define PRIVLIB_EXP "/usr/local/lib/perl5/5.20" /**/
+#define PRIVLIB "/usr/local/lib/perl5/5.22" /**/
+#define PRIVLIB_EXP "/usr/local/lib/perl5/5.22" /**/
/* CAN_PROTOTYPE:
* If defined, this macro indicates that the C compiler can handle
@@ -3151,8 +3219,8 @@
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-/*#define SITEARCH "/usr/local/lib/perl5/5.20/unknown" / **/
-/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.20/unknown" / **/
+/*#define SITEARCH "/usr/local/lib/perl5/5.22/unknown" / **/
+/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.22/unknown" / **/
/* SITELIB:
* This symbol contains the name of the private library for this package.
@@ -3174,8 +3242,8 @@
* removed. The elements in inc_version_list (inc_version_list.U) can
* be tacked onto this variable to generate a list of directories to search.
*/
-#define SITELIB "/usr/local/lib/perl5/5.20" /**/
-#define SITELIB_EXP "/usr/local/lib/perl5/5.20" /**/
+#define SITELIB "/usr/local/lib/perl5/5.22" /**/
+#define SITELIB_EXP "/usr/local/lib/perl5/5.22" /**/
#define SITELIB_STEM "/usr/local/lib/perl5" /**/
/* Size_t_size:
@@ -3292,26 +3360,6 @@
/*#define PERL_VENDORLIB_EXP "" / **/
/*#define PERL_VENDORLIB_STEM "" / **/
-/* I_TERMIO:
- * This symbol, if defined, indicates that the program should include
- * <termio.h> rather than <sgtty.h>. There are also differences in
- * the ioctl() calls that depend on the value of this symbol.
- */
-/* I_TERMIOS:
- * This symbol, if defined, indicates that the program should include
- * the POSIX termios.h rather than sgtty.h or termio.h.
- * There are also differences in the ioctl() calls that depend on the
- * value of this symbol.
- */
-/* I_SGTTY:
- * This symbol, if defined, indicates that the program should include
- * <sgtty.h> rather than <termio.h>. There are also differences in
- * the ioctl() calls that depend on the value of this symbol.
- */
-/*#define I_TERMIO / **/
-/*#define I_TERMIOS / **/
-/*#define I_SGTTY / **/
-
/* USE_CROSS_COMPILE:
* This symbol, if defined, indicates that Perl is being cross-compiled.
*/
@@ -3349,12 +3397,30 @@
*/
/*#define HAS__FWALK / **/
+/* HAS_ACOSH:
+ * This symbol, if defined, indicates that the acosh routine is
+ * available to do the inverse hyperbolic cosine function.
+ */
+/*#define HAS_ACOSH / **/
+
/* HAS_AINTL:
* This symbol, if defined, indicates that the aintl routine is
* available. If copysignl is also present we can emulate modfl.
*/
/*#define HAS_AINTL / **/
+/* HAS_ASINH:
+ * This symbol, if defined, indicates that the asinh routine is
+ * available to do the inverse hyperbolic sine function.
+ */
+/*#define HAS_ASINH / **/
+
+/* HAS_ATANH:
+ * This symbol, if defined, indicates that the atanh routine is
+ * available to do the inverse hyperbolic tangent function.
+ */
+/*#define HAS_ATANH / **/
+
/* HAS_BUILTIN_CHOOSE_EXPR:
* Can we handle GCC builtin for compile-time ternary-like expressions
*/
@@ -3400,6 +3466,12 @@
*/
/*#define HAS_STRUCT_CMSGHDR / **/
+/* HAS_COPYSIGN:
+ * This symbol, if defined, indicates that the copysign routine is
+ * available to do the copysign function.
+ */
+/*#define HAS_COPYSIGN / **/
+
/* HAS_COPYSIGNL:
* This symbol, if defined, indicates that the copysignl routine is
* available. If aintl is also present we can emulate modfl.
@@ -3440,6 +3512,30 @@
*/
/*#define DLSYM_NEEDS_UNDERSCORE / **/
+/* HAS_ERF:
+ * This symbol, if defined, indicates that the erf routine is
+ * available to do the error function.
+ */
+/*#define HAS_ERF / **/
+
+/* HAS_ERFC:
+ * This symbol, if defined, indicates that the erfc routine is
+ * available to do the complementary error function.
+ */
+/*#define HAS_ERFC / **/
+
+/* HAS_EXP2:
+ * This symbol, if defined, indicates that the exp2 routine is
+ * available to do the 2**x function.
+ */
+/*#define HAS_EXP2 / **/
+
+/* HAS_EXPM1:
+ * This symbol, if defined, indicates that the expm1 routine is
+ * available to do the exp(x) - 1 when x is near 1 function.
+ */
+/*#define HAS_EXPM1 / **/
+
/* HAS_FAST_STDIO:
* This symbol, if defined, indicates that the "fast stdio"
* is available to manipulate the stdio buffers directly.
@@ -3459,6 +3555,19 @@
*/
/*#define FCNTL_CAN_LOCK / **/
+/* HAS_FDIM:
+ * This symbol, if defined, indicates that the fdim routine is
+ * available to do the positive difference function.
+ */
+/*#define HAS_FDIM / **/
+
+/* HAS_FEGETROUND:
+ * This symbol, if defined, indicates that the fegetround routine is
+ * available to return the macro corresponding to the current rounding
+ * mode.
+ */
+/*#define HAS_FEGETROUND / **/
+
/* HAS_FINITE:
* This symbol, if defined, indicates that the finite routine is
* available to check whether a double is finite (non-infinity non-NaN).
@@ -3480,6 +3589,24 @@
*/
/*#define HAS_FLOCK_PROTO / **/
+/* HAS_FMA:
+ * This symbol, if defined, indicates that the fma routine is
+ * available to do the multiply-add function.
+ */
+/*#define HAS_FMA / **/
+
+/* HAS_FMAX:
+ * This symbol, if defined, indicates that the fmax routine is
+ * available to do the maximum function.
+ */
+/*#define HAS_FMAX / **/
+
+/* HAS_FMIN:
+ * This symbol, if defined, indicates that the fmin routine is
+ * available to do the minimum function.
+ */
+/*#define HAS_FMIN / **/
+
/* HAS_FP_CLASS:
* This symbol, if defined, indicates that the fp_class routine is
* available to classify doubles. Available for example in Digital UNIX.
@@ -3498,6 +3625,13 @@
*/
/*#define HAS_FP_CLASS / **/
+/* HAS_FP_CLASSL:
+ * This symbol, if defined, indicates that the fp_classl routine is
+ * available to classify long doubles. Available for example in
+ * Digital UNIX. See for possible values HAS_FP_CLASS.
+ */
+/*#define HAS_FP_CLASSL / **/
+
/* HAS_FPCLASS:
* This symbol, if defined, indicates that the fpclass routine is
* available to classify doubles. Available for example in Solaris/SVR4.
@@ -3528,7 +3662,19 @@
* FP_NAN NaN
*
*/
-/*#define HAS_FPCLASSIFY / **/
+/* HAS_FP_CLASSIFY:
+ * This symbol, if defined, indicates that the fp_classify routine is
+ * available to classify doubles. The values are defined in <math.h>
+ *
+ * FP_NORMAL Normalized
+ * FP_ZERO Zero
+ * FP_INFINITE Infinity
+ * FP_SUBNORMAL Denormalized
+ * FP_NAN NaN
+ *
+ */
+/*#define HAS_FPCLASSIFY / **/
+/*#define HAS_FP_CLASSIFY / **/
/* HAS_FPCLASSL:
* This symbol, if defined, indicates that the fpclassl routine is
@@ -3548,6 +3694,12 @@
*/
/*#define HAS_FPCLASSL / **/
+/* HAS_FPGETROUND:
+ * This symbol, if defined, indicates that the fpgetround routine is
+ * available to get the floating point rounding mode.
+ */
+/*#define HAS_FPGETROUND / **/
+
/* HAS_FPOS64_T:
* This symbol will be defined if the C compiler supports fpos64_t.
*/
@@ -3663,6 +3815,18 @@
*/
/*#define HAS_HASMNTOPT / **/
+/* HAS_HYPOT:
+ * This symbol, if defined, indicates that the hypot routine is
+ * available to do the hypotenuse function.
+ */
+/*#define HAS_HYPOT / **/
+
+/* HAS_ILOGB:
+ * This symbol, if defined, indicates that the ilogb routine is
+ * available to get integer exponent of a floating-point value.
+ */
+/*#define HAS_ILOGB / **/
+
/* HAS_ILOGBL:
* This symbol, if defined, indicates that the ilogbl routine is
* available. If scalbnl is also present we can emulate frexpl.
@@ -3700,12 +3864,31 @@
*/
/*#define HAS_ISFINITE / **/
+/* HAS_ISFINITEL:
+ * This symbol, if defined, indicates that the isfinitel routine is
+ * available to check whether a long double is finite.
+ * (non-infinity non-NaN).
+ */
+/*#define HAS_ISFINITEL / **/
+
/* HAS_ISINF:
* This symbol, if defined, indicates that the isinf routine is
* available to check whether a double is an infinity.
*/
/*#define HAS_ISINF / **/
+/* HAS_ISINFL:
+ * This symbol, if defined, indicates that the isinfl routine is
+ * available to check whether a long double is an infinity.
+ */
+/*#define HAS_ISINFL / **/
+
+/* HAS_ISLESS:
+ * This symbol, if defined, indicates that the isless routine is
+ * available to do the isless function.
+ */
+/*#define HAS_ISLESS / **/
+
/* HAS_ISNAN:
* This symbol, if defined, indicates that the isnan routine is
* available to check whether a double is a NaN.
@@ -3718,6 +3901,31 @@
*/
/*#define HAS_ISNANL / **/
+/* HAS_ISNORMAL:
+ * This symbol, if defined, indicates that the isnormal routine is
+ * available to check whether a double is normal (non-zero normalized).
+ */
+/*#define HAS_ISNORMAL / **/
+
+/* HAS_J0:
+ * This symbol, if defined, indicates to the C program that the
+ * j0() function is available for Bessel functions of the first
+ * kind of the order zero, for doubles.
+ */
+/* HAS_J0L:
+ * This symbol, if defined, indicates to the C program that the
+ * j0l() function is available for Bessel functions of the first
+ * kind of the order zero, for long doubles.
+ */
+/*#define HAS_J0 / **/
+/*#define HAS_J0L / **/
+
+/* HAS_LC_MONETARY_2008:
+ * This symbol, if defined, indicates that the localeconv routine is
+ * available and has the additional members added in POSIX 1003.1-2008.
+ */
+/*#define HAS_LC_MONETARY_2008 / **/
+
/* HAS_LDBL_DIG:
* This symbol, if defined, indicates that this system's <float.h>
* or <limits.h> defines the symbol LDBL_DIG, which is the number
@@ -3726,12 +3934,98 @@
*/
/*#define HAS_LDBL_DIG / * */
+/* HAS_LGAMMA:
+ * This symbol, if defined, indicates that the lgamma routine is
+ * available to do the log gamma function. See also HAS_TGAMMA and
+ * HAS_LGAMMA_R.
+ */
+/*#define HAS_LGAMMA / **/
+
+/* HAS_LGAMMA_R:
+ * This symbol, if defined, indicates that the lgamma_r routine is
+ * available to do the log gamma function without using the global
+ * signgam variable.
+ */
+/*#define HAS_LGAMMA_R / **/
+
/* LIBM_LIB_VERSION:
* This symbol, if defined, indicates that libm exports _LIB_VERSION
* and that math.h defines the enum to manipulate it.
*/
/*#define LIBM_LIB_VERSION / **/
+/* HAS_LLRINT:
+ * This symbol, if defined, indicates that the llrint routine is
+ * available to return the closest long long value according to
+ * the current rounding mode.
+ */
+/*#define HAS_LLRINT / **/
+
+/* HAS_LLRINTL:
+ * This symbol, if defined, indicates that the llrintl routine is
+ * available to return the closest long long value of the long double
+ * argument according to the current rounding mode.
+ */
+/*#define HAS_LLRINTL / **/
+
+/* HAS_LLROUND:
+ * This symbol, if defined, indicates that the llround routine is
+ * available to return the nearest long long value.
+ */
+/*#define HAS_LLROUND / **/
+
+/* HAS_LLROUNDL:
+ * This symbol, if defined, indicates that the llroundl routine is
+ * available to return the nearest long long value away from zero of
+ * the long double argument value.
+ */
+/*#define HAS_LLROUNDL / **/
+
+/* HAS_LOG1P:
+ * This symbol, if defined, indicates that the log1p routine is
+ * available to do the logarithm of 1 plus argument function.
+ */
+/*#define HAS_LOG1P / **/
+
+/* HAS_LOG2:
+ * This symbol, if defined, indicates that the log2 routine is
+ * available to do the log2 function.
+ */
+/*#define HAS_LOG2 / **/
+
+/* HAS_LOGB:
+ * This symbol, if defined, indicates that the logb routine is
+ * available to do the logb function.
+ */
+/*#define HAS_LOGB / **/
+
+/* HAS_LRINT:
+ * This symbol, if defined, indicates that the lrint routine is
+ * available to return the closest integral value according to
+ * the current rounding mode.
+ */
+/*#define HAS_LRINT / **/
+
+/* HAS_LRINTL:
+ * This symbol, if defined, indicates that the lrintl routine is
+ * available to return the closest integral value of the long double
+ * argument according to the current rounding mode.
+ */
+/*#define HAS_LRINTL / **/
+
+/* HAS_LROUND:
+ * This symbol, if defined, indicates that the lround routine is
+ * available to return the nearest integral value.
+ */
+/*#define HAS_LROUND / **/
+
+/* HAS_LROUNDL:
+ * This symbol, if defined, indicates that the lroundl routine is
+ * available to return the nearest integral value away from zero of
+ * the long double argument value.
+ */
+/*#define HAS_LROUNDL / **/
+
/* HAS_MADVISE:
* This symbol, if defined, indicates that the madvise system call is
* available to map a file into memory.
@@ -3796,6 +4090,33 @@
*/
/*#define HAS_STRUCT_MSGHDR / **/
+/* HAS_NAN:
+ * This symbol, if defined, indicates that the nan routine is
+ * available to generate NaN.
+ */
+/*#define HAS_NAN / **/
+
+/* HAS_NEARBYINT:
+ * This symbol, if defined, indicates that the nearbyint routine is
+ * available to return the integral value closest to (according to
+ * the current rounding mode) to x.
+ */
+/*#define HAS_NEARBYINT / **/
+
+/* HAS_NEXTAFTER:
+ * This symbol, if defined, indicates that the nextafter routine is
+ * available to return the next machine representable double from
+ * x in direction y.
+ */
+/*#define HAS_NEXTAFTER / **/
+
+/* HAS_NEXTTOWARD:
+ * This symbol, if defined, indicates that the nexttoward routine is
+ * available to return the next machine representable long double from
+ * x in direction y.
+ */
+/*#define HAS_NEXTTOWARD / **/
+
/* HAS_NL_LANGINFO:
* This symbol, if defined, indicates that the nl_langinfo routine is
* available to return local data. You will also need <langinfo.h>
@@ -3811,6 +4132,8 @@
/* HAS_PRCTL:
* This symbol, if defined, indicates that the prctl routine is
* available to set process title.
+ * Note that there are at least two prctl variants: Linux and Irix.
+ * While they are somewhat similar, they are incompatible.
*/
/* HAS_PRCTL_SET_NAME:
* This symbol, if defined, indicates that the prctl routine is
@@ -3840,6 +4163,11 @@
*/
/*#define HAS_PTHREAD_ATTR_SETSCOPE / **/
+/* HAS_PTRDIFF_T:
+ * This symbol will be defined if the C compiler supports ptrdiff_t.
+ */
+#define HAS_PTRDIFF_T /**/
+
/* HAS_READV:
* This symbol, if defined, indicates that the readv routine is
* available to do gather reads. You will also need <sys/uio.h>
@@ -3853,6 +4181,31 @@
*/
/*#define HAS_RECVMSG / **/
+/* HAS_REMAINDER:
+ * This symbol, if defined, indicates that the remainder routine is
+ * available to return the floating-point remainder.
+ */
+/*#define HAS_REMAINDER / **/
+
+/* HAS_REMQUO:
+ * This symbol, if defined, indicates that the remquo routine is
+ * available to return the remainder and part of quotient.
+ */
+/*#define HAS_REMQUO / **/
+
+/* HAS_RINT:
+ * This symbol, if defined, indicates that the rint routine is
+ * available to return the nearest integral value to x as double
+ * using the current rounding mode.
+ */
+/*#define HAS_RINT / **/
+
+/* HAS_ROUND:
+ * This symbol, if defined, indicates that the round routine is
+ * available to round to nearest integer, away from zero.
+ */
+/*#define HAS_ROUND / **/
+
/* HAS_SBRK_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the sbrk() function. Otherwise, it is up
@@ -3862,6 +4215,13 @@
*/
/*#define HAS_SBRK_PROTO / **/
+/* HAS_SCALBN:
+ * This symbol, if defined, indicates that the scalbn routine is
+ * available to multiply floating-point number by integral power
+ * of radix.
+ */
+/*#define HAS_SCALBN / **/
+
/* HAS_SCALBNL:
* This symbol, if defined, indicates that the scalbnl routine is
* available. If ilogbl is also present we can emulate frexpl.
@@ -4060,6 +4420,12 @@
*/
/*#define HAS_TELLDIR_PROTO / **/
+/* HAS_TGAMMA:
+ * This symbol, if defined, indicates that the tgamma routine is
+ * available to do the gamma function. See also HAS_LGAMMA.
+ */
+/*#define HAS_TGAMMA / **/
+
/* HAS_CTIME64:
* This symbol, if defined, indicates that the ctime64 () routine is
* available to do the 64bit variant of ctime ()
@@ -4097,6 +4463,18 @@
*/
/*#define HAS_TIMEGM / **/
+/* HAS_TRUNC:
+ * This symbol, if defined, indicates that the trunc routine is
+ * available to round doubles towards zero.
+ */
+/*#define HAS_TRUNC / **/
+
+/* HAS_TRUNCL:
+ * This symbol, if defined, indicates that the truncl routine is
+ * available. If copysignl is also present we can emulate modfl.
+ */
+/*#define HAS_TRUNCL / **/
+
/* U32_ALIGNMENT_REQUIRED:
* This symbol, if defined, indicates that you must access
* character data through U32-aligned pointers.
@@ -4138,6 +4516,18 @@
*/
/*#define HAS_USTAT / **/
+/* HAS_WCSCMP:
+ * This symbol, if defined, indicates that the wcscmp routine is
+ * available to compare two wide character strings.
+ */
+/*#define HAS_WCSCMP / **/
+
+/* HAS_WCSXFRM:
+ * This symbol, if defined, indicates that the wcsxfrm routine is
+ * available to tranform a wide character string for wcscmp().
+ */
+/*#define HAS_WCSXFRM / **/
+
/* HAS_WRITEV:
* This symbol, if defined, indicates that the writev routine is
* available to do scatter writes.
@@ -4172,6 +4562,12 @@
*/
#define I_ASSERT /**/
+/* I_BFD:
+ * This symbol, if defined, indicates that <bfd.h> exists and
+ * can be included.
+ */
+/*#define I_BFD / **/
+
/* I_CRYPT:
* This symbol, if defined, indicates that <crypt.h> exists and
* should be included.
@@ -4208,6 +4604,12 @@
#define DB_VERSION_MINOR_CFG 0 /**/
#define DB_VERSION_PATCH_CFG 0 /**/
+/* I_FENV:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <fenv.h> to get the floating point environment definitions.
+ */
+/*#define I_FENV / **/
+
/* I_FP:
* This symbol, if defined, indicates that <fp.h> exists and
* should be included.
@@ -4274,6 +4676,12 @@
*/
/*#define I_PROT / **/
+/* I_QUADMATH:
+ * This symbol, if defined, indicates that <quadmath.h> exists and
+ * should be included.
+ */
+/*#define I_QUADMATH / **/
+
/* I_SHADOW:
* This symbol, if defined, indicates that <shadow.h> exists and
* should be included.
@@ -4292,6 +4700,12 @@
*/
/*#define I_STDBOOL / **/
+/* I_STDINT:
+ * This symbol, if defined, indicates that <stdint.h> exists and
+ * should be included.
+ */
+/*#define I_STDINT / **/
+
/* I_SUNMATH:
* This symbol, if defined, indicates that <sunmath.h> exists and
* should be included.
@@ -4361,17 +4775,33 @@
* This symbol, if defined, contains the string used by stdio to
* format long doubles (format 'f') for input.
*/
+/* DOUBLEKIND:
+ * DOUBLEKIND will be one of
+ * DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN
+ * DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN
+ * DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN
+ * DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN
+ * DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+ * DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+ * DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
+ * DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+ * DOUBLE_IS_UNKNOWN_FORMAT
+ */
+#define DOUBLEKIND 3 /**/
+#define DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN 1
+#define DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN 2
+#define DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN 3
+#define DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN 4
+#define DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN 5
+#define DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 6
+#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE 7
+#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE 8
+#define DOUBLE_IS_UNKNOWN_FORMAT -1
/*#define PERL_PRIfldbl "llf" / **/
/*#define PERL_PRIgldbl "llg" / **/
/*#define PERL_PRIeldbl "lle" / **/
/*#define PERL_SCNfldbl "llf" / **/
-/* PERL_MAD:
- * This symbol, if defined, indicates that the Misc Attribution
- * Declaration code should be conditionally compiled.
- */
-/*#define PERL_MAD / **/
-
/* NEED_VA_COPY:
* This symbol, if defined, indicates that the system stores
* the variable argument list datatype, va_list, in a format
@@ -4448,6 +4878,11 @@
*/
/* NVSIZE:
* This symbol contains the sizeof(NV).
+ * Note that some floating point formats have unused bytes.
+ * The most notable example is the x86* 80-bit extended precision
+ * which comes in byte sizes of 12 and 16 (for 32 and 64 bit
+ * platforms, respectively), but which only uses 10 bytes.
+ * Perl compiled with -Duselongdouble on x86* is like this.
*/
/* NV_PRESERVES_UV:
* This symbol, if defined, indicates that a variable of type NVTYPE
@@ -4637,6 +5072,12 @@
/*#define USE_64_BIT_ALL / **/
#endif
+/* USE_CBACKTRACE:
+ * This symbol, if defined, indicates that Perl should
+ * be built with support for backtrace.
+ */
+/*#define USE_CBACKTRACE / **/
+
/* USE_DTRACE:
* This symbol, if defined, indicates that Perl should
* be built with support for DTrace.
@@ -4707,6 +5148,14 @@
/*#define USE_PERLIO / **/
#endif
+/* USE_QUADMATH:
+ * This symbol, if defined, indicates that the quadmath library should
+ * be used when available.
+ */
+#ifndef USE_QUADMATH
+/*#define USE_QUADMATH / **/
+#endif
+
/* USE_SOCKS:
* This symbol, if defined, indicates that Perl should
* be built to use socks.
@@ -4718,6 +5167,6 @@
#endif
/* Generated from:
- * 7557e985de18f71e80f627226b454bc8eaf20477dcf0c45b5b2c51ec792f5c89 config_h.SH
- * dbc8d38ba52ae23e5423418bb3f56b1b6fcdaa82cf71ba0be3463e8221bfe0c0 uconfig.sh
+ * 496e563499c7b715275d61ae663d25dd20d963c75f9d3ee7850dae949df14136 config_h.SH
+ * 45fb46f69ab3d7fd8ea14fc29d490d044cbdd81e8a0111bc0b37aff4321d6182 uconfig.sh
* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/unicode_constants.h b/Master/tlpkg/tlperl/lib/CORE/unicode_constants.h
index 2ae9d77646e..a7ddfeb9afa 100755
--- a/Master/tlpkg/tlperl/lib/CORE/unicode_constants.h
+++ b/Master/tlpkg/tlperl/lib/CORE/unicode_constants.h
@@ -20,31 +20,158 @@
* "_TAIL" if instead it represents all but the first byte. This, and
* with no additional suffix are both string constants */
-#define LATIN_SMALL_LETTER_LONG_S_UTF8 "\xC5\xBF" /* U+017F */
-#define COMBINING_GRAVE_ACCENT_UTF8 "\xCC\x80" /* U+0300 */
+#if 'A' == 65 /* ASCII/Latin1 */
+# define LATIN_SMALL_LETTER_LONG_S_UTF8 "\xC5\xBF" /* U+017F */
-#define GREEK_CAPITAL_LETTER_IOTA_UTF8 "\xCE\x99" /* U+0399 */
-#define GREEK_SMALL_LETTER_MU_UTF8 "\xCE\xBC" /* U+03BC */
+# define COMBINING_GRAVE_ACCENT_UTF8 "\xCC\x80" /* U+0300 */
-#define LATIN_CAPITAL_LETTER_SHARP_S_UTF8 "\xE1\xBA\x9E" /* U+1E9E */
+# define GREEK_CAPITAL_LETTER_IOTA_UTF8 "\xCE\x99" /* U+0399 */
+# define GREEK_SMALL_LETTER_MU_UTF8 "\xCE\xBC" /* U+03BC */
-#define LATIN_SMALL_LIGATURE_LONG_S_T_UTF8 "\xEF\xAC\x85" /* U+FB05 */
-#define LATIN_SMALL_LIGATURE_ST_UTF8 "\xEF\xAC\x86" /* U+FB06 */
+# define LATIN_CAPITAL_LETTER_SHARP_S_UTF8 "\xE1\xBA\x9E" /* U+1E9E */
-#define HYPHEN_UTF8 "\xE2\x80\x90" /* U+2010 */
-#define FIRST_SURROGATE_UTF8_FIRST_BYTE 0xED /* U+D800 */
-#define BOM_UTF8_FIRST_BYTE 0xEF /* U+FEFF */
-#define BOM_UTF8_TAIL "\xBB\xBF" /* U+FEFF */
+# define LATIN_SMALL_LIGATURE_LONG_S_T_UTF8 "\xEF\xAC\x85" /* U+FB05 */
+# define LATIN_SMALL_LIGATURE_ST_UTF8 "\xEF\xAC\x86" /* U+FB06 */
-#define DEL_NATIVE 0x7F /* U+007F */
-#define CR_NATIVE 0x0D /* U+000D */
-#define LF_NATIVE 0x0A /* U+000A */
-#define LATIN_SMALL_LETTER_SHARP_S_NATIVE 0xDF /* U+00DF */
-#define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE 0xE5 /* U+00E5 */
-#define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE 0xC5 /* U+00C5 */
-#define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE 0xFF /* U+00FF */
-#define MICRO_SIGN_NATIVE 0xB5 /* U+00B5 */
+# define HYPHEN_UTF8 "\xE2\x80\x90" /* U+2010 */
+# define FIRST_SURROGATE_UTF8_FIRST_BYTE 0xED /* U+D800 */
+# define BOM_UTF8_FIRST_BYTE 0xEF /* U+FEFF */
+# define BOM_UTF8_TAIL "\xBB\xBF" /* U+FEFF */
+
+# define NBSP_NATIVE 0xA0 /* U+00A0 */
+# define NBSP_UTF8 "\xC2\xA0" /* U+00A0 */
+
+# define DEL_NATIVE 0x7F /* U+007F */
+# define CR_NATIVE 0x0D /* U+000D */
+# define LF_NATIVE 0x0A /* U+000A */
+# define VT_NATIVE 0x0B /* U+000B */
+# define ESC_NATIVE 0x1B /* U+001B */
+# define LATIN_SMALL_LETTER_SHARP_S_NATIVE 0xDF /* U+00DF */
+# define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE 0xE5 /* U+00E5 */
+# define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE 0xC5 /* U+00C5 */
+# define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE 0xFF /* U+00FF */
+# define MICRO_SIGN_NATIVE 0xB5 /* U+00B5 */
+# define MAX_PRINT_A_FOR_USE_ONLY_BY_REGCOMP_DOT_C 0x7E /* The max code point that isPRINT_A */
+
+#endif /* ASCII/Latin1 */
+
+#if 'A' == 193 /* EBCDIC 1047 */ \
+ && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
+ && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 121
+# define LATIN_SMALL_LETTER_LONG_S_UTF8 "\x8F\x73" /* U+017F */
+
+# define COMBINING_GRAVE_ACCENT_UTF8 "\xAF\x41" /* U+0300 */
+
+# define GREEK_CAPITAL_LETTER_IOTA_UTF8 "\xB3\x68" /* U+0399 */
+# define GREEK_SMALL_LETTER_MU_UTF8 "\xB4\x70" /* U+03BC */
+
+# define LATIN_CAPITAL_LETTER_SHARP_S_UTF8 "\xBF\x63\x72" /* U+1E9E */
+
+# define LATIN_SMALL_LIGATURE_LONG_S_T_UTF8 "\xDD\x72\x67\x46" /* U+FB05 */
+# define LATIN_SMALL_LIGATURE_ST_UTF8 "\xDD\x72\x67\x47" /* U+FB06 */
+
+# define HYPHEN_UTF8 "\xCA\x41\x57" /* U+2010 */
+# define FIRST_SURROGATE_UTF8_FIRST_BYTE 0xDD /* U+D800 */
+# define BOM_UTF8_FIRST_BYTE 0xDD /* U+FEFF */
+# define BOM_UTF8_TAIL "\x73\x66\x73" /* U+FEFF */
+
+# define NBSP_NATIVE 0x41 /* U+00A0 */
+# define NBSP_UTF8 "\x80\x41" /* U+00A0 */
+
+# define DEL_NATIVE 0x07 /* U+007F */
+# define CR_NATIVE 0x0D /* U+000D */
+# define LF_NATIVE 0x15 /* U+000A */
+# define VT_NATIVE 0x0B /* U+000B */
+# define ESC_NATIVE 0x27 /* U+001B */
+# define LATIN_SMALL_LETTER_SHARP_S_NATIVE 0x59 /* U+00DF */
+# define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE 0x47 /* U+00E5 */
+# define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE 0x67 /* U+00C5 */
+# define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE 0xDF /* U+00FF */
+# define MICRO_SIGN_NATIVE 0xA0 /* U+00B5 */
+# define MAX_PRINT_A_FOR_USE_ONLY_BY_REGCOMP_DOT_C 0xF9 /* The max code point that isPRINT_A */
+
+#endif /* EBCDIC 1047 */
+
+#if 'A' == 193 /* EBCDIC 037 */ \
+ && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
+ && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 121
+# define LATIN_SMALL_LETTER_LONG_S_UTF8 "\x8E\x72" /* U+017F */
+
+# define COMBINING_GRAVE_ACCENT_UTF8 "\xAD\x41" /* U+0300 */
+
+# define GREEK_CAPITAL_LETTER_IOTA_UTF8 "\xB2\x67" /* U+0399 */
+# define GREEK_SMALL_LETTER_MU_UTF8 "\xB3\x6A" /* U+03BC */
+
+# define LATIN_CAPITAL_LETTER_SHARP_S_UTF8 "\xBF\x62\x71" /* U+1E9E */
+
+# define LATIN_SMALL_LIGATURE_LONG_S_T_UTF8 "\xDD\x71\x66\x46" /* U+FB05 */
+# define LATIN_SMALL_LIGATURE_ST_UTF8 "\xDD\x71\x66\x47" /* U+FB06 */
+
+# define HYPHEN_UTF8 "\xCA\x41\x57" /* U+2010 */
+# define FIRST_SURROGATE_UTF8_FIRST_BYTE 0xDD /* U+D800 */
+# define BOM_UTF8_FIRST_BYTE 0xDD /* U+FEFF */
+# define BOM_UTF8_TAIL "\x72\x65\x72" /* U+FEFF */
+
+# define NBSP_NATIVE 0x41 /* U+00A0 */
+# define NBSP_UTF8 "\x78\x41" /* U+00A0 */
+
+# define DEL_NATIVE 0x07 /* U+007F */
+# define CR_NATIVE 0x0D /* U+000D */
+# define LF_NATIVE 0x25 /* U+000A */
+# define VT_NATIVE 0x0B /* U+000B */
+# define ESC_NATIVE 0x27 /* U+001B */
+# define LATIN_SMALL_LETTER_SHARP_S_NATIVE 0x59 /* U+00DF */
+# define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE 0x47 /* U+00E5 */
+# define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE 0x67 /* U+00C5 */
+# define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE 0xDF /* U+00FF */
+# define MICRO_SIGN_NATIVE 0xA0 /* U+00B5 */
+# define MAX_PRINT_A_FOR_USE_ONLY_BY_REGCOMP_DOT_C 0xF9 /* The max code point that isPRINT_A */
+
+#endif /* EBCDIC 037 */
+
+#if 'A' == 193 /* EBCDIC POSIX-BC */ \
+ && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
+ && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
+ && '$' == 91 && '@' == 124 && '`' == 74
+# define LATIN_SMALL_LETTER_LONG_S_UTF8 "\x90\x75" /* U+017F */
+
+# define COMBINING_GRAVE_ACCENT_UTF8 "\xAE\x41" /* U+0300 */
+
+# define GREEK_CAPITAL_LETTER_IOTA_UTF8 "\xB2\x69" /* U+0399 */
+# define GREEK_SMALL_LETTER_MU_UTF8 "\xB3\x72" /* U+03BC */
+
+# define LATIN_CAPITAL_LETTER_SHARP_S_UTF8 "\xC0\x64\x74" /* U+1E9E */
+
+# define LATIN_SMALL_LIGATURE_LONG_S_T_UTF8 "\xDC\x74\x68\x46" /* U+FB05 */
+# define LATIN_SMALL_LIGATURE_ST_UTF8 "\xDC\x74\x68\x47" /* U+FB06 */
+
+# define HYPHEN_UTF8 "\xCA\x41\x58" /* U+2010 */
+# define FIRST_SURROGATE_UTF8_FIRST_BYTE 0xDC /* U+D800 */
+# define BOM_UTF8_FIRST_BYTE 0xDC /* U+FEFF */
+# define BOM_UTF8_TAIL "\x75\x67\x75" /* U+FEFF */
+
+# define NBSP_NATIVE 0x41 /* U+00A0 */
+# define NBSP_UTF8 "\x8A\x41" /* U+00A0 */
+
+# define DEL_NATIVE 0x07 /* U+007F */
+# define CR_NATIVE 0x0D /* U+000D */
+# define LF_NATIVE 0x15 /* U+000A */
+# define VT_NATIVE 0x0B /* U+000B */
+# define ESC_NATIVE 0x27 /* U+001B */
+# define LATIN_SMALL_LETTER_SHARP_S_NATIVE 0x59 /* U+00DF */
+# define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE 0x47 /* U+00E5 */
+# define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE 0x67 /* U+00C5 */
+# define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE 0xDF /* U+00FF */
+# define MICRO_SIGN_NATIVE 0xA0 /* U+00B5 */
+# define MAX_PRINT_A_FOR_USE_ONLY_BY_REGCOMP_DOT_C 0xFF /* The max code point that isPRINT_A */
+
+#endif /* EBCDIC POSIX-BC */
+
+/* The number of code points not matching \pC */
+#define NON_OTHER_COUNT_FOR_USE_ONLY_BY_REGCOMP_DOT_C 112806
#endif /* H_UNICODE_CONSTANTS */
diff --git a/Master/tlpkg/tlperl/lib/CORE/unixish.h b/Master/tlpkg/tlperl/lib/CORE/unixish.h
index c129ed18b30..1eb6785f952 100644
--- a/Master/tlpkg/tlperl/lib/CORE/unixish.h
+++ b/Master/tlpkg/tlperl/lib/CORE/unixish.h
@@ -147,11 +147,5 @@
#endif
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/utf8.h b/Master/tlpkg/tlperl/lib/CORE/utf8.h
index f0e9d56966a..3e15707ff8a 100644
--- a/Master/tlpkg/tlperl/lib/CORE/utf8.h
+++ b/Master/tlpkg/tlperl/lib/CORE/utf8.h
@@ -39,6 +39,26 @@
#define _CORE_SWASH_INIT_RETURN_IF_UNDEF 0x2
#define _CORE_SWASH_INIT_ACCEPT_INVLIST 0x4
+/*
+=head1 Unicode Support
+L<perlguts/Unicode Support> has an introduction to this API.
+
+See also L</Character classification>,
+and L</Character case changing>.
+Various functions outside this section also work specially with Unicode.
+Search for the string "utf8" in this document.
+
+=for apidoc is_ascii_string
+
+This is a misleadingly-named synonym for L</is_invariant_string>.
+On ASCII-ish platforms, the name isn't misleading: the ASCII-range characters
+are exactly the UTF-8 invariants. But EBCDIC machines have more invariants
+than just the ASCII characters, so C<is_invariant_string> is preferred.
+
+=cut
+*/
+#define is_ascii_string(s, len) is_invariant_string(s, len)
+
#define uvchr_to_utf8(a,b) uvchr_to_utf8_flags(a,b,0)
#define uvchr_to_utf8_flags(d,uv,flags) \
uvoffuni_to_utf8_flags(d,NATIVE_TO_UNI(uv),flags)
@@ -61,14 +81,9 @@
#define FOLDEQ_LOCALE (1 << 1)
#define FOLDEQ_S1_ALREADY_FOLDED (1 << 2)
#define FOLDEQ_S2_ALREADY_FOLDED (1 << 3)
+#define FOLDEQ_S1_FOLDS_SANE (1 << 4)
+#define FOLDEQ_S2_FOLDS_SANE (1 << 5)
-/*
-=for apidoc ibcmp_utf8
-
-This is a synonym for (! foldEQ_utf8())
-
-=cut
-*/
#define ibcmp_utf8(s1, pe1, l1, u1, s2, pe2, l2, u2) \
cBOOL(! foldEQ_utf8(s1, pe1, l1, u1, s2, pe2, l2, u2))
@@ -270,6 +285,10 @@ Perl's extended UTF-8 means we can have start bytes up to FF.
#error UTF8_MAXBYTES must be at least 12
#endif
+/* ^? is defined to be DEL on ASCII systems. See the definition of toCTRL()
+ * for more */
+#define QUESTION_MARK_CTRL DEL_NATIVE
+
#define MAX_UTF8_TWO_BYTE 0x7FF
#define UTF8_MAXBYTES_CASE UTF8_MAXBYTES
@@ -311,11 +330,22 @@ Perl's extended UTF-8 means we can have start bytes up to FF.
/* Number of bytes a code point occupies in UTF-8. */
#define NATIVE_SKIP(uv) OFFUNISKIP(NATIVE_TO_UNI(uv))
+/*
+
+=for apidoc Am|STRLEN|UVCHR_SKIP|UV cp
+returns the number of bytes required to represent the code point C<cp> when
+encoded as UTF-8. C<cp> is a native (ASCII or EBCDIC) code point if less than
+255; a Unicode code point otherwise.
+
+=cut
+ */
+
/* Most code which says UNISKIP is really thinking in terms of native code
* points (0-255) plus all those beyond. This is an imprecise term, but having
- * it means existing code continues to work. For precision, use NATIVE_SKIP
- * and OFFUNISKIP */
+ * it means existing code continues to work. For precision, use UVCHR_SKIP,
+ * NATIVE_SKIP, and OFFUNISKIP */
#define UNISKIP(uv) NATIVE_SKIP(uv)
+#define UVCHR_SKIP(uv) NATIVE_SKIP(uv)
/* Convert a two (not one) byte utf8 character to a native code point value.
* Needs just one iteration of accumulate. Should not be used unless it is
@@ -329,8 +359,14 @@ Perl's extended UTF-8 means we can have start bytes up to FF.
/* Should never be used, and be deprecated */
#define TWO_BYTE_UTF8_TO_UNI(HI, LO) NATIVE_TO_UNI(TWO_BYTE_UTF8_TO_NATIVE(HI, LO))
-/* How many bytes in the UTF-8 encoded character whose first (perhaps only)
- * byte is pointed to by 's' */
+/*
+
+=for apidoc Am|STRLEN|UTF8SKIP|char* s
+returns the number of bytes in the UTF-8 encoded character whose first (perhaps
+only) byte is pointed to by C<s>.
+
+=cut
+ */
#define UTF8SKIP(s) PL_utf8skip[*(const U8*)(s)]
/* Is the byte 'c' the same character when encoded in UTF-8 as when not. This
@@ -380,16 +416,16 @@ Perl's extended UTF-8 means we can have start bytes up to FF.
* code point whose UTF-8 is known to occupy 2 bytes; they are less efficient
* than the EIGHT_BIT versions on EBCDIC platforms. We use the logical '~'
* operator instead of "<=" to avoid getting compiler warnings.
- * MAX_PORTABLE_UTF8_TWO_BYTE should be exactly all one bits in the lower few
+ * MAX_UTF8_TWO_BYTE should be exactly all one bits in the lower few
* places, so the ~ works */
#define UTF8_TWO_BYTE_HI(c) \
(__ASSERT_((sizeof(c) == 1) \
- || !(((WIDEST_UTYPE)(c)) & ~MAX_PORTABLE_UTF8_TWO_BYTE)) \
- ((U8) __BASE_TWO_BYTE_HI(c, NATIVE_TO_LATIN1)))
+ || !(((WIDEST_UTYPE)(c)) & ~MAX_UTF8_TWO_BYTE)) \
+ ((U8) __BASE_TWO_BYTE_HI(c, NATIVE_TO_UNI)))
#define UTF8_TWO_BYTE_LO(c) \
(__ASSERT_((sizeof(c) == 1) \
- || !(((WIDEST_UTYPE)(c)) & ~MAX_PORTABLE_UTF8_TWO_BYTE)) \
- ((U8) __BASE_TWO_BYTE_LO(c, NATIVE_TO_LATIN1)))
+ || !(((WIDEST_UTYPE)(c)) & ~MAX_UTF8_TWO_BYTE)) \
+ ((U8) __BASE_TWO_BYTE_LO(c, NATIVE_TO_UNI)))
/* This is illegal in any well-formed UTF-8 in both EBCDIC and ASCII
* as it is only in overlongs. */
@@ -416,10 +452,25 @@ Perl's extended UTF-8 means we can have start bytes up to FF.
#define UTF8_MAX_FOLD_CHAR_EXPAND 3
#define IN_BYTES (CopHINTS_get(PL_curcop) & HINT_BYTES)
+
+/*
+
+=for apidoc Am|bool|DO_UTF8|SV* sv
+Returns a bool giving whether or not the PV in C<sv> is to be treated as being
+encoded in UTF-8.
+
+You should use this I<after> a call to C<SvPV()> or one of its variants, in
+case any call to string overloading updates the internal UTF-8 encoding flag.
+
+=cut
+*/
#define DO_UTF8(sv) (SvUTF8(sv) && !IN_BYTES)
#define IN_UNI_8_BIT \
- (CopHINTS_get(PL_curcop) & (HINT_UNI_8_BIT|HINT_LOCALE_NOT_CHARS) \
- && ! IN_LOCALE_RUNTIME && ! IN_BYTES)
+ (((CopHINTS_get(PL_curcop) & (HINT_UNI_8_BIT)) \
+ || (CopHINTS_get(PL_curcop) & HINT_LOCALE_PARTIAL \
+ /* -1 below is for :not_characters */ \
+ && _is_in_locale_category(FALSE, -1))) \
+ && ! IN_BYTES)
#define UTF8_ALLOW_EMPTY 0x0001 /* Allow a zero length string */
@@ -485,7 +536,9 @@ Perl's extended UTF-8 means we can have start bytes up to FF.
* U+10FFFF: \xF4\x8F\xBF\xBF \xF9\xA1\xBF\xBF\xBF max legal Unicode
* U+110000: \xF4\x90\x80\x80 \xF9\xA2\xA0\xA0\xA0
* U+110001: \xF4\x90\x80\x81 \xF9\xA2\xA0\xA0\xA1
- */
+ *
+ * BE AWARE that this test doesn't rule out malformed code points, in
+ * particular overlongs */
#ifdef EBCDIC /* Both versions assume well-formed UTF8 */
# define UTF8_IS_SUPER(s) (NATIVE_UTF8_TO_I8(* (U8*) (s)) >= 0xF9 \
&& (NATIVE_UTF8_TO_I8(* (U8*) (s)) > 0xF9 \
@@ -575,75 +628,86 @@ Perl's extended UTF-8 means we can have start bytes up to FF.
(ANYOF_NONBITMAP(node)) && \
(ANYOF_FLAGS(node) & ANYOF_LOC_NONBITMAP_FOLD) && \
((end) > (input) + 1) && \
- toFOLD((input)[0]) == 's' && \
- toFOLD((input)[1]) == 's')
+ isALPHA_FOLD_EQ((input)[0], 's'))
+
#define SHARP_S_SKIP 2
/* If you want to exclude surrogates, and beyond legal Unicode, see the blame
* log for earlier versions which gave details for these */
+/* A helper macro for isUTF8_CHAR, so use that one, and not this one. This is
+ * retained solely for backwards compatibility and may be deprecated and
+ * removed in a future Perl version.
+ *
+ * regen/regcharclass.pl generates is_UTF8_CHAR_utf8() macros for up to these
+ * number of bytes. So this has to be coordinated with that file */
+#ifdef EBCDIC
+# define IS_UTF8_CHAR_FAST(n) ((n) <= 3)
+#else
+# define IS_UTF8_CHAR_FAST(n) ((n) <= 4)
+#endif
+
#ifndef EBCDIC
-/* This was generated by regen/regcharclass.pl, and then moved here. The lines
- * that generated it were then commented out. This was done solely because it
- * takes on the order of 10 minutes to generate, and is never going to change.
- * The EBCDIC equivalent hasn't been commented out in regcharclass.pl, so it
- * should generate and run the correct stuff */
+/* A helper macro for isUTF8_CHAR, so use that one instead of this. This was
+ * generated by regen/regcharclass.pl, and then moved here. The lines that
+ * generated it were then commented out. This was done solely because it takes
+ * on the order of 10 minutes to generate, and is never going to change, unless
+ * the generated code is improved.
+ *
+ * The EBCDIC versions have been cut to not cover all of legal Unicode, so
+ * don't take too long to generate, and there is a separate one for each code
+ * page, so they are in regcharclass.h instead of here */
/*
- UTF8_CHAR: Matches utf8 from 1 to 4 bytes
+ UTF8_CHAR: Matches legal UTF-8 encoded characters from 2 through 4 bytes
- 0x0 - 0x1FFFFF
+ 0x80 - 0x1FFFFF
*/
/*** GENERATED CODE ***/
-#define is_UTF8_CHAR_utf8_safe(s,e) \
-( ((e)-(s) > 3) ? \
- ( ( ( ((U8*)s)[0] & 0x80 ) == 0x00 ) ? 1 \
- : ( 0xC2 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) ? \
- ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 ) \
- : ( 0xE0 == ((U8*)s)[0] ) ? \
- ( ( ( ( ((U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
- : ( 0xE1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xEF ) ? \
- ( ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
- : ( 0xF0 == ((U8*)s)[0] ) ? \
- ( ( ( ( 0x90 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xBF ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
- : ( ( ( ( 0xF1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xF7 ) && ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
-: ((e)-(s) > 2) ? \
- ( ( ( ((U8*)s)[0] & 0x80 ) == 0x00 ) ? 1 \
- : ( 0xC2 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) ? \
- ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 ) \
- : ( 0xE0 == ((U8*)s)[0] ) ? \
- ( ( ( ( ((U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
- : ( ( ( 0xE1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xEF ) && ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
-: ((e)-(s) > 1) ? \
- ( ( ( ((U8*)s)[0] & 0x80 ) == 0x00 ) ? 1 \
- : ( ( 0xC2 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) && ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ) ? 2 : 0 )\
-: ((e)-(s) > 0) ? \
- ( ( ((U8*)s)[0] & 0x80 ) == 0x00 ) \
-: 0 )
+#define is_UTF8_CHAR_utf8_no_length_checks(s) \
+( ( 0xC2 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) ? \
+ ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 ) \
+: ( 0xE0 == ((U8*)s)[0] ) ? \
+ ( ( ( ( ((U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xE1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xEF ) ? \
+ ( ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xF0 == ((U8*)s)[0] ) ? \
+ ( ( ( ( 0x90 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xBF ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
+: ( ( ( ( 0xF1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xF7 ) && ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )
#endif
-/* IS_UTF8_CHAR(p) is strictly speaking wrong (not UTF-8) because it
- * (1) allows UTF-8 encoded UTF-16 surrogates
- * (2) it allows code points past U+10FFFF.
- * The Perl_is_utf8_char() full "slow" code will handle the Perl
- * "extended UTF-8". */
-#define IS_UTF8_CHAR(p, n) (is_UTF8_CHAR_utf8_safe(p, (p) + (n)) == n)
+/*
-/* regen/regcharclass.pl generates is_UTF8_CHAR_utf8_safe() macros for up to
- * these number of bytes. So this has to be coordinated with it */
-#ifdef EBCDIC
-# define IS_UTF8_CHAR_FAST(n) ((n) <= 5)
-#else
-# define IS_UTF8_CHAR_FAST(n) ((n) <= 4)
-#endif
+=for apidoc Am|STRLEN|isUTF8_CHAR|const U8 *s|const U8 *e
+
+Returns the number of bytes beginning at C<s> which form a legal UTF-8 (or
+UTF-EBCDIC) encoded character, looking no further than C<e - s> bytes into
+C<s>. Returns 0 if the sequence starting at C<s> through C<e - 1> is not
+well-formed UTF-8
+
+Note that an INVARIANT character (i.e. ASCII on non-EBCDIC
+machines) is a valid UTF-8 character.
+
+=cut
+*/
+
+#define isUTF8_CHAR(s, e) (UNLIKELY((e) <= (s)) \
+ ? 0 \
+ : (UTF8_IS_INVARIANT(*s)) \
+ ? 1 \
+ : UNLIKELY(((e) - (s)) < UTF8SKIP(s)) \
+ ? 0 \
+ : LIKELY(IS_UTF8_CHAR_FAST(UTF8SKIP(s))) \
+ ? is_UTF8_CHAR_utf8_no_length_checks(s) \
+ : _is_utf8_char_slow(s, e))
+
+#define is_utf8_char_buf(buf, buf_end) isUTF8_CHAR(buf, buf_end)
+
+/* Do not use; should be deprecated. Use isUTF8_CHAR() instead; this is
+ * retained solely for backwards compatibility */
+#define IS_UTF8_CHAR(p, n) (isUTF8_CHAR(p, (p) + (n)) == n)
#endif /* H_UTF8 */
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/utfebcdic.h b/Master/tlpkg/tlperl/lib/CORE/utfebcdic.h
index 54a3d2696e9..24101edf6f0 100644
--- a/Master/tlpkg/tlperl/lib/CORE/utfebcdic.h
+++ b/Master/tlpkg/tlperl/lib/CORE/utfebcdic.h
@@ -7,15 +7,15 @@
* License or the Artistic License, as specified in the README file.
*
* Macros to implement UTF-EBCDIC as perl's internal encoding
- * Taken from version 7.1 of Unicode Technical Report #16:
+ * Adapted from version 7.1 of Unicode Technical Report #16:
* http://www.unicode.org/unicode/reports/tr16
*
* To summarize, the way it works is:
* To convert an EBCDIC character to UTF-EBCDIC:
- * 1) convert to Unicode. The table in this file that does this for
- * EBCDIC bytes is PL_e2a (with inverse PLa2e). The 'a' stands for
- * ASCIIish, meaning latin1.
- * 2) convert that to a utf8-like string called I8 (I stands for
+ * 1) convert to Unicode. The table in the generated file 'ebcdic_tables.h'
+ * that does this for EBCDIC bytes is PL_e2a (with inverse PL_a2e). The
+ * 'a' stands for ASCII platform, meaning latin1.
+ * 2) convert that to a utf8-like string called I8 ('I' stands for
* intermediate) with variant characters occupying multiple bytes. This
* step is similar to the utf8-creating step from Unicode, but the details
* are different. This transformation is called UTF8-Mod. There is a
@@ -29,20 +29,21 @@
* trailing 0 for the very largest possible allocation
* in I8, far beyond the current Unicode standard's
* max, as shown in the comment later in this file.)
- * 3) Use the table published in tr16 to convert each byte from step 2 into
- * final UTF-EBCDIC. That table is reproduced in this file as PL_utf2e,
- * and its inverse is PL_e2utf. They are constructed so that all EBCDIC
- * invariants remain invariant, but no others do. For example, the
- * ordinal value of 'A' is 193 in EBCDIC, and also is 193 in UTF-EBCDIC.
- * Step 1) converts it to 65, Step 2 leaves it at 65, and Step 3 converts
- * it back to 193. As an example of how a variant character works, take
- * LATIN SMALL LETTER Y WITH DIAERESIS, which is typically 0xDF in
- * EBCDIC. Step 1 converts it to the Unicode value, 0xFF. Step 2
- * converts that to two bytes = 11000111 10111111 = C7 BF, and Step 3
- * converts those to 0x8B 0x73. The table is constructed so that the
- * first byte of the final form of a variant will always have its upper
- * bit set (at least in the encodings that Perl recognizes, and probably
- * all). But note that the upper bit of some invariants is also 1.
+ * 3) Use the algorithm in tr16 to convert each byte from step 2 into
+ * final UTF-EBCDIC. This is done by table lookup from a table
+ * constructed from the algorithm, reproduced in ebcdic_tables.h as
+ * PL_utf2e, with its inverse being PL_e2utf. They are constructed so that
+ * all EBCDIC invariants remain invariant, but no others do, and the first
+ * byte of a variant will always have its upper bit set. But note that
+ * the upper bit of some invariants is also 1.
+ *
+ * For example, the ordinal value of 'A' is 193 in EBCDIC, and also is 193 in
+ * UTF-EBCDIC. Step 1) converts it to 65, Step 2 leaves it at 65, and Step 3
+ * converts it back to 193. As an example of how a variant character works,
+ * take LATIN SMALL LETTER Y WITH DIAERESIS, which is typically 0xDF in
+ * EBCDIC. Step 1 converts it to the Unicode value, 0xFF. Step 2 converts
+ * that to two bytes = 11000111 10111111 = C7 BF, and Step 3 converts those to
+ * 0x8B 0x73.
*
* If you're starting from Unicode, skip step 1. For UTF-EBCDIC to straight
* EBCDIC, reverse the steps.
@@ -50,26 +51,57 @@
* The EBCDIC invariants have been chosen to be those characters whose Unicode
* equivalents have ordinal numbers less than 160, that is the same characters
* that are expressible in ASCII, plus the C1 controls. So there are 160
- * invariants instead of the 128 in UTF-8. (My guess is that this is because
- * the C1 control NEL (and maybe others) is important in IBM.)
+ * invariants instead of the 128 in UTF-8.
*
* The purpose of Step 3 is to make the encoding be invariant for the chosen
* characters. This messes up the convenient patterns found in step 2, so
* generally, one has to undo step 3 into a temporary to use them. However,
- * a "shadow", or parallel table, PL_utf8skip, has been constructed so that for
- * each byte, it says how long the sequence is if that byte were to begin it
+ * one "shadow", or parallel table, PL_utf8skip, has been constructed that
+ * doesn't require undoing things. It is such that for each byte, it says
+ * how long the sequence is if that (UTF-EBCDIC) byte were to begin it
+ *
+ * There are actually 3 slightly different UTF-EBCDIC encodings in
+ * ebcdic_tables.h, one for each of the code pages recognized by Perl. That
+ * means that there are actually three different sets of tables, one for each
+ * code page. (If Perl is compiled on platforms using another EBCDIC code
+ * page, it may not compile, or Perl may silently mistake it for one of the
+ * three.)
+ *
+ * Note that tr16 actually only specifies one version of UTF-EBCDIC, based on
+ * the 1047 encoding, and which is supposed to be used for all code pages.
+ * But this doesn't work. To illustrate the problem, consider the '^' character.
+ * On a 037 code page it is the single byte 176, whereas under 1047 UTF-EBCDIC
+ * it is the single byte 95. If Perl implemented tr16 exactly, it would mean
+ * that changing a string containing '^' to UTF-EBCDIC would change that '^'
+ * from 176 to 95 (and vice-versa), violating the rule that ASCII-range
+ * characters are the same in UTF-8 or not. Much code in Perl assumes this
+ * rule. See for example
+ * http://grokbase.com/t/perl/mvs/025xf0yhmn/utf-ebcdic-for-posix-bc-malformed-utf-8-character
+ * What Perl does is create a version of UTF-EBCDIC suited to each code page;
+ * the one for the 1047 code page is identical to what's specified in tr16.
+ * This complicates interchanging files between computers using different code
+ * pages. Best is to convert to I8 before sending them, as the I8
+ * representation is the same no matter what the underlying code page is.
*
- * There are actually 3 slightly different UTF-EBCDIC encodings in this file,
- * one for each of the code pages recognized by Perl. That means that there
- * are actually three different sets of tables, one for each code page. (If
- * Perl is compiled on platforms using another EBCDIC code page, it may not
- * compile, or Perl may silently mistake it for one of the three.)
+ * Because of the way UTF-EBCDIC is constructed, the lowest 32 code points that
+ * aren't equivalent to ASCII characters nor C1 controls form the set of
+ * continuation bytes; the remaining 64 non-ASCII, non-control code points form
+ * the potential start bytes, in order. (However, the first 5 of these lead to
+ * malformed overlongs, so there really are only 59 start bytes.) Hence the
+ * UTF-EBCDIC for the smallest variant code point, 0x160, will have likely 0x41
+ * as its continuation byte, provided 0x41 isn't an ASCII or C1 equivalent.
+ * And its start byte will be the code point that is 37 (32+5) non-ASCII,
+ * non-control code points past it. (0 - 3F are controls, and 40 is SPACE,
+ * leaving 41 as the first potentially available one.) In contrast, on ASCII
+ * platforms, the first 64 (not 32) non-ASCII code points are the continuation
+ * bytes. And the first 2 (not 5) potential start bytes form overlong
+ * malformed sequences.
*
* EBCDIC characters above 0xFF are the same as Unicode in Perl's
* implementation of all 3 encodings, so for those Step 1 is trivial.
*
* (Note that the entries for invariant characters are necessarily the same in
- * PL_e2a and PLe2f, and the same for their inverses.)
+ * PL_e2a and PL_e2utf; likewise for their inverses.)
*
* UTF-EBCDIC strings are the same length or longer than UTF-8 representations
* of the same string. The maximum code point representable as 2 bytes in
@@ -79,583 +111,8 @@
START_EXTERN_C
#ifdef DOINIT
-/* Indexed by encoded byte this table gives the length of the sequence.
- Adapted from the shadow flags table in tr16.
- The entries marked 9 in tr16 are continuation bytes and are marked
- as length 1 here so that we can recover.
-*/
-#if '^' == 95 /* if defined(__MVS__) || defined(??) (VM/ESA?) 1047 */
-EXTCONST U8 PL_utf8skip[] = {
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,
-2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,
-2,2,2,2,2,2,2,3,3,3,3,3,3,1,3,3,
-1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,
-1,1,1,1,1,1,1,1,1,1,3,3,4,4,4,4,
-1,4,1,1,1,1,1,1,1,1,4,4,4,5,5,5,
-1,1,1,1,1,1,1,1,1,1,5,6,6,7,7,1
-};
-#endif
-
-#if '^' == 106 /* if defined(_OSD_POSIX) POSIX-BC */
-U8 PL_utf8skip[] = {
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,2,2,2,2,2,3,1,1,1,1,1,1,
-2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,3,1,1,1,1,1,1,1,1,2,2,2,3,2,2,
-1,2,2,2,2,2,2,3,3,3,2,1,1,1,3,3,
-4,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,
-1,1,1,1,1,1,1,1,1,1,3,3,4,6,4,4,
-7,4,1,1,1,1,1,1,1,1,4,4,4,5,5,5,
-1,1,1,1,1,1,1,1,1,1,5,1,6,1,7,1
-};
-#endif
-
-#if '^' == 176 /* if defined(??) (OS/400?) 037 */
-U8 PL_utf8skip[] = {
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,
-2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,1,1,1,1,1,1,1,1,1,2,2,2,3,2,2,
-1,2,2,2,2,2,2,3,3,3,1,1,3,3,3,3,
-1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,
-1,1,1,1,1,1,1,1,1,1,3,3,4,4,4,4,
-1,4,1,1,1,1,1,1,1,1,4,4,4,5,5,5,
-1,1,1,1,1,1,1,1,1,1,5,6,6,7,7,1
-};
-#endif
-
-/* Transform tables from tr16 applied after encoding to render encoding EBCDIC
- * like, meaning that all the invariants are actually invariant, eg, that 'A'
- * remains 'A' */
-
-#if '^' == 95 /* if defined(__MVS__) || defined(??) (VM/ESA?) 1047 */
-EXTCONST U8 PL_utf2e[] = { /* I8 to UTFEBCDIC (IBM-1047) */
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xAD, 0xE0, 0xBD, 0x5F, 0x6D,
- 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
- 0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0xFF,
- 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56,
- 0x57, 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x70, 0x71, 0x72, 0x73,
- 0x74, 0x75, 0x76, 0x77, 0x78, 0x80, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x9A, 0x9B, 0x9C,
- 0x9D, 0x9E, 0x9F, 0xA0, 0xAA, 0xAB, 0xAC, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
- 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBE, 0xBF, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xDA, 0xDB,
- 0xDC, 0xDD, 0xDE, 0xDF, 0xE1, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE
-};
-
-EXTCONST U8 PL_e2utf[] = { /* UTFEBCDIC (IBM-1047) to I8 */
- 0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x9D, 0x0A, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8F, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1B, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x05, 0x06, 0x07,
- 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9A, 0x9B, 0x14, 0x15, 0x9E, 0x1A,
- 0x20, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
- 0x26, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0x5E,
- 0x2D, 0x2F, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
- 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
- 0xC5, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB,
- 0xCC, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2,
- 0xD3, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xD4, 0xD5, 0xD6, 0x5B, 0xD7, 0xD8,
- 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0x5D, 0xE6, 0xE7,
- 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED,
- 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3,
- 0x5C, 0xF4, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0x9F
-};
-#endif /* 1047 */
-
-#if '^' == 106 /* if defined(_OSD_POSIX) POSIX-BC */
-U8 PL_utf2e[] = { /* I8 to UTFEBCDIC (POSIX-BC) */
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xBB, 0xBC, 0xBD, 0x6A, 0x6D,
- 0x4A, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xFB, 0x4F, 0xFD, 0xFF, 0x07,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
- 0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0x5F,
- 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xB0, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56,
- 0x57, 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xD0, 0x70, 0x71, 0x72, 0x73,
- 0x74, 0x75, 0x76, 0x77, 0x78, 0x80, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x9A, 0x9B, 0x9C,
- 0x9D, 0x9E, 0x9F, 0xA0, 0xAA, 0xAB, 0xAC, 0xAE, 0xAF, 0xBA, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
- 0xB7, 0xB8, 0xB9, 0xAD, 0x79, 0xA1, 0xBE, 0xBF, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xDA, 0xDB,
- 0xDC, 0xC0, 0xDE, 0xDF, 0xE1, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xFA, 0xDD, 0xFC, 0xE0, 0xFE
-};
-
-U8 PL_e2utf[] = { /* UTFEBCDIC (POSIX-BC) to I8 */
- 0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x9D, 0x0A, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8F, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1B, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x05, 0x06, 0x07,
- 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9A, 0x9B, 0x14, 0x15, 0x9E, 0x1A,
- 0x20, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0x60, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
- 0x26, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0x9F,
- 0x2D, 0x2F, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0x5E, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
- 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xE4, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
- 0xC5, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB,
- 0xCC, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2,
- 0xD3, 0xE5, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xD4, 0xD5, 0xD6, 0xE3, 0xD7, 0xD8,
- 0xA9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xD9, 0x5B, 0x5C, 0x5D, 0xE6, 0xE7,
- 0xF1, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED,
- 0xBB, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0xEE, 0xEF, 0xF0, 0xFC, 0xF2, 0xF3,
- 0xFE, 0xF4, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xFB, 0x7B, 0xFD, 0x7D, 0xFF, 0x7E
-};
-#endif /* POSIX-BC */
-
-#if '^' == 176 /* if defined(??) (OS/400?) 037 */
-U8 PL_utf2e[] = { /* I8 to UTFEBCDIC (IBM-037) */
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x25, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xBA, 0xE0, 0xBB, 0xB0, 0x6D,
- 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
- 0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0xFF,
- 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56,
- 0x57, 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x70, 0x71, 0x72, 0x73,
- 0x74, 0x75, 0x76, 0x77, 0x78, 0x80, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x9A, 0x9B, 0x9C,
- 0x9D, 0x9E, 0x9F, 0xA0, 0xAA, 0xAB, 0xAC, 0xAE, 0xAF, 0x5F, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
- 0xB7, 0xB8, 0xB9, 0xAD, 0xBD, 0xBC, 0xBE, 0xBF, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xDA, 0xDB,
- 0xDC, 0xDD, 0xDE, 0xDF, 0xE1, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE
-};
-
-U8 PL_e2utf[] = { /* UTFEBCDIC (IBM-037) to I8 */
- 0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x9D, 0x85, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8F, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x0A, 0x17, 0x1B, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x05, 0x06, 0x07,
- 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9A, 0x9B, 0x14, 0x15, 0x9E, 0x1A,
- 0x20, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
- 0x26, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0xD9,
- 0x2D, 0x2F, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
- 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
- 0xC5, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB,
- 0xCC, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2,
- 0xD3, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xD4, 0xD5, 0xD6, 0xE3, 0xD7, 0xD8,
- 0x5E, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0x5B, 0x5D, 0xE5, 0xE4, 0xE6, 0xE7,
- 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED,
- 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3,
- 0x5C, 0xF4, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0x9F
-};
-#endif /* 037 */
-
-/* These tables moved from perl.h and converted to hex.
- They map platform code page from/to bottom 256 codes of Unicode (i.e. iso-8859-1).
-*/
-#if '^' == 95 /* if defined(__MVS__) || defined(??) (VM/ESA?) 1047 */
-EXTCONST U8 PL_a2e[] = { /* ASCII (iso-8859-1) to EBCDIC (IBM-1047) */
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xAD, 0xE0, 0xBD, 0x5F, 0x6D,
- 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
- 0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0xFF,
- 0x41, 0xAA, 0x4A, 0xB1, 0x9F, 0xB2, 0x6A, 0xB5, 0xBB, 0xB4, 0x9A, 0x8A, 0xB0, 0xCA, 0xAF, 0xBC,
- 0x90, 0x8F, 0xEA, 0xFA, 0xBE, 0xA0, 0xB6, 0xB3, 0x9D, 0xDA, 0x9B, 0x8B, 0xB7, 0xB8, 0xB9, 0xAB,
- 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9E, 0x68, 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
- 0xAC, 0x69, 0xED, 0xEE, 0xEB, 0xEF, 0xEC, 0xBF, 0x80, 0xFD, 0xFE, 0xFB, 0xFC, 0xBA, 0xAE, 0x59,
- 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9C, 0x48, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
- 0x8C, 0x49, 0xCD, 0xCE, 0xCB, 0xCF, 0xCC, 0xE1, 0x70, 0xDD, 0xDE, 0xDB, 0xDC, 0x8D, 0x8E, 0xDF
-};
-
-EXTCONST U8 PL_e2a[] = { /* EBCDIC (IBM-1047) to ASCII (iso-8859-1) */
- 0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x9D, 0x0A, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8F, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1B, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x05, 0x06, 0x07,
- 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9A, 0x9B, 0x14, 0x15, 0x9E, 0x1A,
- 0x20, 0xA0, 0xE2, 0xE4, 0xE0, 0xE1, 0xE3, 0xE5, 0xE7, 0xF1, 0xA2, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
- 0x26, 0xE9, 0xEA, 0xEB, 0xE8, 0xED, 0xEE, 0xEF, 0xEC, 0xDF, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0x5E,
- 0x2D, 0x2F, 0xC2, 0xC4, 0xC0, 0xC1, 0xC3, 0xC5, 0xC7, 0xD1, 0xA6, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
- 0xF8, 0xC9, 0xCA, 0xCB, 0xC8, 0xCD, 0xCE, 0xCF, 0xCC, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
- 0xD8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xAB, 0xBB, 0xF0, 0xFD, 0xFE, 0xB1,
- 0xB0, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0xAA, 0xBA, 0xE6, 0xB8, 0xC6, 0xA4,
- 0xB5, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xA1, 0xBF, 0xD0, 0x5B, 0xDE, 0xAE,
- 0xAC, 0xA3, 0xA5, 0xB7, 0xA9, 0xA7, 0xB6, 0xBC, 0xBD, 0xBE, 0xDD, 0xA8, 0xAF, 0x5D, 0xB4, 0xD7,
- 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xAD, 0xF4, 0xF6, 0xF2, 0xF3, 0xF5,
- 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0xB9, 0xFB, 0xFC, 0xF9, 0xFA, 0xFF,
- 0x5C, 0xF7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xB2, 0xD4, 0xD6, 0xD2, 0xD3, 0xD5,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xB3, 0xDB, 0xDC, 0xD9, 0xDA, 0x9F
-};
-
-EXTCONST U8 PL_latin1_lc[] = { /* lowercasing */
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x70, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x70, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9C, 0x9F,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0x8C, 0xAD, 0x8E, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0x8D, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
- 0xE0, 0xE1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xEA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xDB, 0xDC, 0xDD, 0xDE, 0xFF
-};
-
-EXTCONST U8 PL_mod_latin1_uc[] = { /* uppercasing */
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0xDF, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x80, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x80, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0x8A, 0x8B, 0xAC, 0xBA, 0xAE, 0x8F,
- 0x90, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0x9A, 0x9B, 0x9E, 0x9D, 0x9E, 0x9F,
- 0xDF, 0xA1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF,
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
-};
-
-EXTCONST U8 PL_fold_latin1[] = { /* fast EBCDIC case folding table,
- 'A' => 'a'; 'a' => 'A'; full
- 0-255 range */
- 0, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 98, 99, 100, 101, 102, 103,
- 104, 105, 74, 75, 76, 77, 78, 79,
- 80, 113, 114, 115, 116, 117, 118, 119,
- 120, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 66, 67, 68, 69, 70, 71,
- 72, 73, 106, 107, 108, 109, 110, 111,
- 128, 81, 82, 83, 84, 85, 86, 87,
- 88, 121, 122, 123, 124, 125, 126, 127,
- 112, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 138, 139, 172, 186, 174, 143,
- 144, 'J', 'K', 'L', 'M', 'N', 'O', 'P',
- 'Q', 'R', 154, 155, 158, 157, 156, 159,
- 160, 161, 'S', 'T', 'U', 'V', 'W', 'X',
- 'Y', 'Z', 170, 171, 140, 173, 142, 175,
- 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 141, 187, 188, 189, 190, 191,
- 192, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 202, 235, 236, 237, 238, 239,
- 208, 'j', 'k', 'l', 'm', 'n', 'o', 'p',
- 'q', 'r', 218, 251, 252, 253, 254, 223,
- 224, 225, 's', 't', 'u', 'v', 'w', 'x',
- 'y', 'z', 234, 203, 204, 205, 206, 207,
- 240, 241, 242, 243, 244, 245, 246, 247,
- 248, 249, 250, 219, 220, 221, 222, 255
-};
-#endif /* 1047 */
-
-#if '^' == 106 /* if defined(_OSD_POSIX) POSIX-BC */
-EXTCONST U8 PL_a2e[] = { /* ASCII (ISO8859-1) to EBCDIC (POSIX-BC) */
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xBB, 0xBC, 0xBD, 0x6A, 0x6D,
- 0x4A, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xFB, 0x4F, 0xFD, 0xFF, 0x07,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
- 0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0x5F,
- 0x41, 0xAA, 0xB0, 0xB1, 0x9F, 0xB2, 0xD0, 0xB5, 0x79, 0xB4, 0x9A, 0x8A, 0xBA, 0xCA, 0xAF, 0xA1,
- 0x90, 0x8F, 0xEA, 0xFA, 0xBE, 0xA0, 0xB6, 0xB3, 0x9D, 0xDA, 0x9B, 0x8B, 0xB7, 0xB8, 0xB9, 0xAB,
- 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9E, 0x68, 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
- 0xAC, 0x69, 0xED, 0xEE, 0xEB, 0xEF, 0xEC, 0xBF, 0x80, 0xE0, 0xFE, 0xDD, 0xFC, 0xAD, 0xAE, 0x59,
- 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9C, 0x48, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
- 0x8C, 0x49, 0xCD, 0xCE, 0xCB, 0xCF, 0xCC, 0xE1, 0x70, 0xC0, 0xDE, 0xDB, 0xDC, 0x8D, 0x8E, 0xDF
-};
-
-EXTCONST U8 PL_e2a[] = { /* EBCDIC (POSIX-BC) to ASCII (ISO8859-1) */
- 0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x9D, 0x0A, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8F, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1B, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x05, 0x06, 0x07,
- 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9A, 0x9B, 0x14, 0x15, 0x9E, 0x1A,
- 0x20, 0xA0, 0xE2, 0xE4, 0xE0, 0xE1, 0xE3, 0xE5, 0xE7, 0xF1, 0x60, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
- 0x26, 0xE9, 0xEA, 0xEB, 0xE8, 0xED, 0xEE, 0xEF, 0xEC, 0xDF, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0x9F,
- 0x2D, 0x2F, 0xC2, 0xC4, 0xC0, 0xC1, 0xC3, 0xC5, 0xC7, 0xD1, 0x5E, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
- 0xF8, 0xC9, 0xCA, 0xCB, 0xC8, 0xCD, 0xCE, 0xCF, 0xCC, 0xA8, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
- 0xD8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xAB, 0xBB, 0xF0, 0xFD, 0xFE, 0xB1,
- 0xB0, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0xAA, 0xBA, 0xE6, 0xB8, 0xC6, 0xA4,
- 0xB5, 0xAF, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xA1, 0xBF, 0xD0, 0xDD, 0xDE, 0xAE,
- 0xA2, 0xA3, 0xA5, 0xB7, 0xA9, 0xA7, 0xB6, 0xBC, 0xBD, 0xBE, 0xAC, 0x5B, 0x5C, 0x5D, 0xB4, 0xD7,
- 0xF9, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xAD, 0xF4, 0xF6, 0xF2, 0xF3, 0xF5,
- 0xA6, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0xB9, 0xFB, 0xFC, 0xDB, 0xFA, 0xFF,
- 0xD9, 0xF7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xB2, 0xD4, 0xD6, 0xD2, 0xD3, 0xD5,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xB3, 0x7B, 0xDC, 0x7D, 0xDA, 0x7E
-};
-
-EXTCONST U8 PL_latin1_lc[] = { /* lowercasing */
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x70, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x70, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9C, 0x9F,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0x8C, 0x8D, 0x8E, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xDA, 0xDB, 0xDC, 0xDB, 0xDE, 0xDF,
- 0xC0, 0xE1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xEA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xDC, 0xFD, 0xDE, 0xFF
-};
-
-EXTCONST U8 PL_mod_latin1_uc[] = { /* uppercasing */
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0xDF, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x80, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x80, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0x8A, 0x8B, 0xAC, 0xAD, 0xAE, 0x8F,
- 0x90, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0x9A, 0x9B, 0x9E, 0x9D, 0x9E, 0x9F,
- 0xDF, 0xA1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xE0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDD, 0xFC, 0xDD, 0xFE, 0xDF,
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
-};
-
-EXTCONST U8 PL_fold_latin1[] = { /* fast EBCDIC case folding table,
- 'A' => 'a'; 'a' => 'A'; full
- 0-255 range */
- 0, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 98, 99, 100, 101, 102, 103,
- 104, 105, 74, 75, 76, 77, 78, 79,
- 80, 113, 114, 115, 116, 117, 118, 119,
- 120, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 66, 67, 68, 69, 70, 71,
- 72, 73, 106, 107, 108, 109, 110, 111,
- 128, 81, 82, 83, 84, 85, 86, 87,
- 88, 121, 122, 123, 124, 125, 126, 127,
- 112, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 138, 139, 172, 173, 174, 143,
- 144, 'J', 'K', 'L', 'M', 'N', 'O', 'P',
- 'Q', 'R', 154, 155, 158, 157, 156, 159,
- 160, 161, 'S', 'T', 'U', 'V', 'W', 'X',
- 'Y', 'Z', 170, 171, 140, 141, 142, 175,
- 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191,
- 224, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 202, 235, 236, 237, 238, 239,
- 208, 'j', 'k', 'l', 'm', 'n', 'o', 'p',
- 'q', 'r', 218, 221, 252, 219, 254, 223,
- 192, 225, 's', 't', 'u', 'v', 'w', 'x',
- 'y', 'z', 234, 203, 204, 205, 206, 207,
- 240, 241, 242, 243, 244, 245, 246, 247,
- 248, 249, 250, 251, 220, 253, 222, 255
-};
-#endif /* POSIX-BC */
-
-#if '^' == 176 /* if defined(??) (OS/400?) 037 */
-EXTCONST U8 PL_a2e[] = { /* ASCII (ISO8859-1) to EBCDIC (IBM-037) */
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x25, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xBA, 0xE0, 0xBB, 0xB0, 0x6D,
- 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
- 0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0xFF,
- 0x41, 0xAA, 0x4A, 0xB1, 0x9F, 0xB2, 0x6A, 0xB5, 0xBD, 0xB4, 0x9A, 0x8A, 0x5F, 0xCA, 0xAF, 0xBC,
- 0x90, 0x8F, 0xEA, 0xFA, 0xBE, 0xA0, 0xB6, 0xB3, 0x9D, 0xDA, 0x9B, 0x8B, 0xB7, 0xB8, 0xB9, 0xAB,
- 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9E, 0x68, 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
- 0xAC, 0x69, 0xED, 0xEE, 0xEB, 0xEF, 0xEC, 0xBF, 0x80, 0xFD, 0xFE, 0xFB, 0xFC, 0xAD, 0xAE, 0x59,
- 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9C, 0x48, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
- 0x8C, 0x49, 0xCD, 0xCE, 0xCB, 0xCF, 0xCC, 0xE1, 0x70, 0xDD, 0xDE, 0xDB, 0xDC, 0x8D, 0x8E, 0xDF
-};
-
-EXTCONST U8 PL_e2a[] = { /* EBCDIC (IBM-037) to ASCII (ISO8859-1) */
- 0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x9D, 0x85, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8F, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x0A, 0x17, 0x1B, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x05, 0x06, 0x07,
- 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9A, 0x9B, 0x14, 0x15, 0x9E, 0x1A,
- 0x20, 0xA0, 0xE2, 0xE4, 0xE0, 0xE1, 0xE3, 0xE5, 0xE7, 0xF1, 0xA2, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
- 0x26, 0xE9, 0xEA, 0xEB, 0xE8, 0xED, 0xEE, 0xEF, 0xEC, 0xDF, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0xAC,
- 0x2D, 0x2F, 0xC2, 0xC4, 0xC0, 0xC1, 0xC3, 0xC5, 0xC7, 0xD1, 0xA6, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
- 0xF8, 0xC9, 0xCA, 0xCB, 0xC8, 0xCD, 0xCE, 0xCF, 0xCC, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
- 0xD8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xAB, 0xBB, 0xF0, 0xFD, 0xFE, 0xB1,
- 0xB0, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0xAA, 0xBA, 0xE6, 0xB8, 0xC6, 0xA4,
- 0xB5, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xA1, 0xBF, 0xD0, 0xDD, 0xDE, 0xAE,
- 0x5E, 0xA3, 0xA5, 0xB7, 0xA9, 0xA7, 0xB6, 0xBC, 0xBD, 0xBE, 0x5B, 0x5D, 0xAF, 0xA8, 0xB4, 0xD7,
- 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xAD, 0xF4, 0xF6, 0xF2, 0xF3, 0xF5,
- 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0xB9, 0xFB, 0xFC, 0xF9, 0xFA, 0xFF,
- 0x5C, 0xF7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xB2, 0xD4, 0xD6, 0xD2, 0xD3, 0xD5,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xB3, 0xDB, 0xDC, 0xD9, 0xDA, 0x9F
-};
-
-EXTCONST U8 PL_latin1_lc[] = { /* lowercasing */
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x70, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x70, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9C, 0x9F,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0x8C, 0x8D, 0x8E, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
- 0xE0, 0xE1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xEA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xDB, 0xDC, 0xDD, 0xDE, 0xFF
-};
-
-EXTCONST U8 PL_mod_latin1_uc[] = { /* uppercasing */
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0xDF, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x80, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x80, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0x8A, 0x8B, 0xAC, 0xAD, 0xAE, 0x8F,
- 0x90, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0x9A, 0x9B, 0x9E, 0x9D, 0x9E, 0x9F,
- 0xDF, 0xA1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF,
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
-};
-
-EXTCONST U8 PL_fold_latin1[] = { /* fast EBCDIC case folding table,
- 'A' => 'a'; 'a' => 'A'; full
- 0-255 range */
- 0, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 98, 99, 100, 101, 102, 103,
- 104, 105, 74, 75, 76, 77, 78, 79,
- 80, 113, 114, 115, 116, 117, 118, 119,
- 120, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 66, 67, 68, 69, 70, 71,
- 72, 73, 106, 107, 108, 109, 110, 111,
- 128, 81, 82, 83, 84, 85, 86, 87,
- 88, 121, 122, 123, 124, 125, 126, 127,
- 112, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 138, 139, 172, 173, 174, 143,
- 144, 'J', 'K', 'L', 'M', 'N', 'O', 'P',
- 'Q', 'R', 154, 155, 158, 157, 156, 159,
- 160, 161, 'S', 'T', 'U', 'V', 'W', 'X',
- 'Y', 'Z', 170, 171, 140, 141, 142, 175,
- 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 202, 235, 236, 237, 238, 239,
- 208, 'j', 'k', 'l', 'm', 'n', 'o', 'p',
- 'q', 'r', 218, 251, 252, 253, 254, 223,
- 224, 225, 's', 't', 'u', 'v', 'w', 'x',
- 'y', 'z', 234, 203, 204, 205, 206, 207,
- 240, 241, 242, 243, 244, 245, 246, 247,
- 248, 249, 250, 219, 220, 221, 222, 255
-};
-#endif /* 037 */
-
-/* This is the same in all code pages, as only A-Z, a-z are affected */
-EXTCONST U8 PL_fold[] = { /* fast EBCDIC case folding table, 'A' =>
- 'a'; 'a' => 'A' */
- 0, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87,
- 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 138, 139, 140, 141, 142, 143,
- 144, 'J', 'K', 'L', 'M', 'N', 'O', 'P',
- 'Q', 'R', 154, 155, 156, 157, 158, 159,
- 160, 161, 'S', 'T', 'U', 'V', 'W', 'X',
- 'Y', 'Z', 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 202, 203, 204, 205, 206, 207,
- 208, 'j', 'k', 'l', 'm', 'n', 'o', 'p',
- 'q', 'r', 218, 219, 220, 221, 222, 223,
- 224, 225, 's', 't', 'u', 'v', 'w', 'x',
- 'y', 'z', 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247,
- 248, 249, 250, 251, 252, 253, 254, 255
-};
+#include "ebcdic_tables.h"
#else
EXTCONST U8 PL_utf8skip[];
@@ -750,14 +207,12 @@ END_EXTERN_C
* character occupies 5 bytes, therefore this number is 15 */
#define UTF8_MAXBYTES_CASE 15
+/* ^? is defined to be APC on EBCDIC systems. See the definition of toCTRL()
+ * for more */
+#define QUESTION_MARK_CTRL LATIN1_TO_NATIVE(0x9F)
+
#define MAX_UTF8_TWO_BYTE 0x3FF
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/util.h b/Master/tlpkg/tlperl/lib/CORE/util.h
index 08544f5600c..0d41ebc0270 100644
--- a/Master/tlpkg/tlperl/lib/CORE/util.h
+++ b/Master/tlpkg/tlperl/lib/CORE/util.h
@@ -39,6 +39,8 @@
#endif /* VMS */
/*
+=head1 Miscellaneous Functions
+
=for apidoc ibcmp
This is a synonym for (! foldEQ())
@@ -83,12 +85,150 @@ typedef struct PERL_DRAND48_T perl_drand48_t;
#define Perl_drand48_init(seed) (Perl_drand48_init_r(&PL_random_state, (seed)))
#define Perl_drand48() (Perl_drand48_r(&PL_random_state))
+#ifdef USE_C_BACKTRACE
+
+typedef struct {
+ /* The number of frames returned. */
+ UV frame_count;
+ /* The total size of the Perl_c_backtrace, including this header,
+ * the frames, and the name strings. */
+ UV total_bytes;
+} Perl_c_backtrace_header;
+
+typedef struct {
+ void* addr; /* the program counter at this frame */
+
+ /* We could use Dl_info (as used by dladdr()) for many of these but
+ * that would be naughty towards non-dlfcn systems (hi there, Win32). */
+
+ void* symbol_addr; /* symbol address (hint: try symbol_addr - addr) */
+ void* object_base_addr; /* base address of the shared object */
+
+ /* The offsets are from the beginning of the whole backtrace,
+ * which makes the backtrace relocatable. */
+ STRLEN object_name_offset; /* pathname of the shared object */
+ STRLEN object_name_size; /* length of the pathname */
+ STRLEN symbol_name_offset; /* symbol name */
+ STRLEN symbol_name_size; /* length of the symbol name */
+ STRLEN source_name_offset; /* source code file name */
+ STRLEN source_name_size; /* length of the source code file name */
+ STRLEN source_line_number; /* source code line number */
+
+ /* OS X notes: atos(1) (more recently, "xcrun atos"), but the C
+ * API atos() uses is unknown (private "Symbolicator" framework,
+ * might require Objective-C even if the API would be known).
+ * Currently we open read pipe to "xcrun atos" and parse the
+ * output - quite disgusting. And that won't work if the
+ * Developer Tools isn't installed. */
+
+ /* FreeBSD notes: execinfo.h exists, but probably would need also
+ * the library -lexecinfo. BFD exists if the pkg devel/binutils
+ * has been installed, but there seems to be a known problem that
+ * the "bfd.h" getting installed refers to "ansidecl.h", which
+ * doesn't get installed. */
+
+ /* Win32 notes: as moral equivalents of backtrace() + dladdr(),
+ * one could possibly first use GetCurrentProcess() +
+ * SymInitialize(), and then CaptureStackBackTrace() +
+ * SymFromAddr(). */
+
+ /* Note that using the compiler optimizer easily leads into much
+ * of this information, like the symbol names (think inlining),
+ * and source code locations getting lost or confused. In many
+ * cases keeping the debug information (-g) is necessary.
+ *
+ * Note that for example with gcc you can do both -O and -g.
+ *
+ * Note, however, that on some platforms (e.g. OSX + clang (cc))
+ * backtrace() + dladdr() works fine without -g. */
+
+ /* For example: the mere presence of <bfd.h> is no guarantee: e.g.
+ * OS X has that, but BFD does not seem to work on the OSX executables.
+ *
+ * Another niceness would be to able to see something about
+ * the function arguments, however gdb/lldb manage to do that. */
+} Perl_c_backtrace_frame;
+
+typedef struct {
+ Perl_c_backtrace_header header;
+ Perl_c_backtrace_frame frame_info[1];
+ /* After the header come:
+ * (1) header.frame_count frames
+ * (2) frame_count times the \0-terminated strings (object_name
+ * and so forth). The frames contain the pointers to the starts
+ * of these strings, and the lengths of these strings. */
+} Perl_c_backtrace;
+
+#define Perl_free_c_backtrace(bt) Safefree(bt)
+
+#endif /* USE_C_BACKTRACE */
+
+/* Use a packed 32 bit constant "key" to start the handshake. The key defines
+ ABI compatibility, and how to process the vararg list.
+
+ Note, some bits may be taken from INTRPSIZE (but then a simple x86 AX register
+ can't be used to read it) and 4 bits from API version len can also be taken,
+ since v00.00.00 is 9 bytes long. XS version length should not have any bits
+ taken since XS_VERSION lengths can get quite long since they are user
+ selectable. These spare bits allow for additional features for the varargs
+ stuff or ABI compat test flags in the future.
+*/
+#define HSm_APIVERLEN 0x0000001F /* perl version string won't be more than 31 chars */
+#define HS_APIVERLEN_MAX HSm_APIVERLEN
+#define HSm_XSVERLEN 0x0000FF00 /* if 0, not present, dont check, die if over 255*/
+#define HS_XSVERLEN_MAX 0xFF
+/* uses var file to set default filename for newXS_deffile to use for CvFILE */
+#define HSf_SETXSUBFN 0x00000020
+#define HSf_POPMARK 0x00000040 /* popmark mode or you must supply ax and items */
+#define HSf_IMP_CXT 0x00000080 /* ABI, threaded/PERL_IMPLICIT_CONTEXT, pTHX_ present */
+#define HSm_INTRPSIZE 0xFFFF0000 /* ABI, interp struct size */
+/* A mask of bits in the key which must always match between a XS mod and interp.
+ Also if all ABI bits in a key are true, skip all ABI checks, it is very
+ the unlikely interp size will all 1 bits */
+/* Maybe HSm_APIVERLEN one day if Perl_xs_apiversion_bootcheck is changed to a memcmp */
+#define HSm_KEY_MATCH (HSm_INTRPSIZE|HSf_IMP_CXT)
+#define HSf_NOCHK HSm_KEY_MATCH /* if all ABI bits are 1 in the key, dont chk */
+
+
+#define HS_GETINTERPSIZE(key) ((key) >> 16)
+/* if in the future "" and NULL must be separated, XSVERLEN would be 0
+means arg not present, 1 is empty string/null byte */
+/* (((key) & 0x0000FF00) >> 8) is less efficient on Visual C */
+#define HS_GETXSVERLEN(key) ((key) >> 8 & 0xFF)
+#define HS_GETAPIVERLEN(key) ((key) & HSm_APIVERLEN)
+
+/* internal to util.h macro to create a packed handshake key, all args must be constants */
+/* U32 return = (U16 interpsize, bool cxt, bool setxsubfn, bool popmark,
+ U5 (FIVE!) apiverlen, U8 xsverlen) */
+#define HS_KEYp(interpsize, cxt, setxsubfn, popmark, apiverlen, xsverlen) \
+ (((interpsize) << 16) \
+ | ((xsverlen) > HS_XSVERLEN_MAX \
+ ? (Perl_croak_nocontext("panic: handshake overflow"), HS_XSVERLEN_MAX) \
+ : (xsverlen) << 8) \
+ | (cBOOL(setxsubfn) ? HSf_SETXSUBFN : 0) \
+ | (cBOOL(cxt) ? HSf_IMP_CXT : 0) \
+ | (cBOOL(popmark) ? HSf_POPMARK : 0) \
+ | ((apiverlen) > HS_APIVERLEN_MAX \
+ ? (Perl_croak_nocontext("panic: handshake overflow"), HS_APIVERLEN_MAX) \
+ : (apiverlen)))
+/* overflows above will optimize away unless they will execute */
+
+/* public macro for core usage to create a packed handshake key but this is
+ not public API. This more friendly version already collected all ABI info */
+/* U32 return = (bool setxsubfn, bool popmark, "litteral_string_api_ver",
+ "litteral_string_xs_ver") */
+#ifdef PERL_IMPLICIT_CONTEXT
+# define HS_KEY(setxsubfn, popmark, apiver, xsver) \
+ HS_KEYp(sizeof(PerlInterpreter), TRUE, setxsubfn, popmark, \
+ sizeof("" apiver "")-1, sizeof("" xsver "")-1)
+# define HS_CXT aTHX
+#else
+# define HS_KEY(setxsubfn, popmark, apiver, xsver) \
+ HS_KEYp(sizeof(struct PerlHandShakeInterpreter), FALSE, setxsubfn, popmark, \
+ sizeof("" apiver "")-1, sizeof("" xsver "")-1)
+# define HS_CXT cv
+#endif
+
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/vdir.h b/Master/tlpkg/tlperl/lib/CORE/vdir.h
index a4186a1ad9f..42c306b7795 100644
--- a/Master/tlpkg/tlperl/lib/CORE/vdir.h
+++ b/Master/tlpkg/tlperl/lib/CORE/vdir.h
@@ -85,7 +85,7 @@ protected:
{
char *ptr = dirTableA[index];
if (!ptr) {
- /* simulate the existance of this drive */
+ /* simulate the existence of this drive */
ptr = szLocalBufferA;
ptr[0] = 'A' + index;
ptr[1] = ':';
@@ -98,7 +98,7 @@ protected:
{
WCHAR *ptr = dirTableW[index];
if (!ptr) {
- /* simulate the existance of this drive */
+ /* simulate the existence of this drive */
ptr = szLocalBufferW;
ptr[0] = 'A' + index;
ptr[1] = ':';
diff --git a/Master/tlpkg/tlperl/lib/CORE/vmem.h b/Master/tlpkg/tlperl/lib/CORE/vmem.h
index d691635db59..c662887bcac 100644
--- a/Master/tlpkg/tlperl/lib/CORE/vmem.h
+++ b/Master/tlpkg/tlperl/lib/CORE/vmem.h
@@ -284,7 +284,7 @@ long VMem::AddRef(void)
* is freed, therefore space needs to be reserved for them. Thus, the minimum
* block size (not counting the tags) is 8 bytes.
*
- * Since memory allocation may occur on a single threaded, explict locks are not
+ * Since memory allocation may occur on a single threaded, explicit locks are not
* provided.
*
*/
@@ -1012,7 +1012,7 @@ int VMem::HeapAdd(void* p, size_t size
, BOOL bBigBlock
#endif
)
-{ /* if the block can be succesfully added to the heap, returns 0; otherwise -1. */
+{ /* if the block can be successfully added to the heap, returns 0; otherwise -1. */
int index;
/* Check size, then round size down to next long word boundary. */
diff --git a/Master/tlpkg/tlperl/lib/CORE/warnings.h b/Master/tlpkg/tlperl/lib/CORE/warnings.h
index 66e4153d6b9..24fe243464f 100644
--- a/Master/tlpkg/tlperl/lib/CORE/warnings.h
+++ b/Master/tlpkg/tlperl/lib/CORE/warnings.h
@@ -29,82 +29,93 @@
/* Warnings Categories added in Perl 5.008 */
-#define WARN_ALL 0
-#define WARN_CLOSURE 1
-#define WARN_DEPRECATED 2
-#define WARN_EXITING 3
-#define WARN_GLOB 4
-#define WARN_IO 5
-#define WARN_CLOSED 6
-#define WARN_EXEC 7
-#define WARN_LAYER 8
-#define WARN_NEWLINE 9
-#define WARN_PIPE 10
-#define WARN_UNOPENED 11
-#define WARN_MISC 12
-#define WARN_NUMERIC 13
-#define WARN_ONCE 14
-#define WARN_OVERFLOW 15
-#define WARN_PACK 16
-#define WARN_PORTABLE 17
-#define WARN_RECURSION 18
-#define WARN_REDEFINE 19
-#define WARN_REGEXP 20
-#define WARN_SEVERE 21
-#define WARN_DEBUGGING 22
-#define WARN_INPLACE 23
-#define WARN_INTERNAL 24
-#define WARN_MALLOC 25
-#define WARN_SIGNAL 26
-#define WARN_SUBSTR 27
-#define WARN_SYNTAX 28
-#define WARN_AMBIGUOUS 29
-#define WARN_BAREWORD 30
-#define WARN_DIGIT 31
-#define WARN_PARENTHESIS 32
-#define WARN_PRECEDENCE 33
-#define WARN_PRINTF 34
-#define WARN_PROTOTYPE 35
-#define WARN_QW 36
-#define WARN_RESERVED 37
-#define WARN_SEMICOLON 38
-#define WARN_TAINT 39
-#define WARN_THREADS 40
-#define WARN_UNINITIALIZED 41
-#define WARN_UNPACK 42
-#define WARN_UNTIE 43
-#define WARN_UTF8 44
-#define WARN_VOID 45
+#define WARN_ALL 0
+#define WARN_CLOSURE 1
+#define WARN_DEPRECATED 2
+#define WARN_EXITING 3
+#define WARN_GLOB 4
+#define WARN_IO 5
+#define WARN_CLOSED 6
+#define WARN_EXEC 7
+#define WARN_LAYER 8
+#define WARN_NEWLINE 9
+#define WARN_PIPE 10
+#define WARN_UNOPENED 11
+#define WARN_MISC 12
+#define WARN_NUMERIC 13
+#define WARN_ONCE 14
+#define WARN_OVERFLOW 15
+#define WARN_PACK 16
+#define WARN_PORTABLE 17
+#define WARN_RECURSION 18
+#define WARN_REDEFINE 19
+#define WARN_REGEXP 20
+#define WARN_SEVERE 21
+#define WARN_DEBUGGING 22
+#define WARN_INPLACE 23
+#define WARN_INTERNAL 24
+#define WARN_MALLOC 25
+#define WARN_SIGNAL 26
+#define WARN_SUBSTR 27
+#define WARN_SYNTAX 28
+#define WARN_AMBIGUOUS 29
+#define WARN_BAREWORD 30
+#define WARN_DIGIT 31
+#define WARN_PARENTHESIS 32
+#define WARN_PRECEDENCE 33
+#define WARN_PRINTF 34
+#define WARN_PROTOTYPE 35
+#define WARN_QW 36
+#define WARN_RESERVED 37
+#define WARN_SEMICOLON 38
+#define WARN_TAINT 39
+#define WARN_THREADS 40
+#define WARN_UNINITIALIZED 41
+#define WARN_UNPACK 42
+#define WARN_UNTIE 43
+#define WARN_UTF8 44
+#define WARN_VOID 45
/* Warnings Categories added in Perl 5.011 */
-#define WARN_IMPRECISION 46
-#define WARN_ILLEGALPROTO 47
+#define WARN_IMPRECISION 46
+#define WARN_ILLEGALPROTO 47
/* Warnings Categories added in Perl 5.013 */
-#define WARN_NON_UNICODE 48
-#define WARN_NONCHAR 49
-#define WARN_SURROGATE 50
+#define WARN_NON_UNICODE 48
+#define WARN_NONCHAR 49
+#define WARN_SURROGATE 50
/* Warnings Categories added in Perl 5.017 */
-#define WARN_EXPERIMENTAL 51
-#define WARN_EXPERIMENTAL__LEXICAL_SUBS 52
+#define WARN_EXPERIMENTAL 51
+#define WARN_EXPERIMENTAL__LEXICAL_SUBS 52
#define WARN_EXPERIMENTAL__LEXICAL_TOPIC 53
-#define WARN_EXPERIMENTAL__REGEX_SETS 54
-#define WARN_EXPERIMENTAL__SMARTMATCH 55
+#define WARN_EXPERIMENTAL__REGEX_SETS 54
+#define WARN_EXPERIMENTAL__SMARTMATCH 55
/* Warnings Categories added in Perl 5.019 */
-#define WARN_EXPERIMENTAL__AUTODEREF 56
-#define WARN_EXPERIMENTAL__POSTDEREF 57
-#define WARN_EXPERIMENTAL__SIGNATURES 58
-#define WARN_SYSCALLS 59
-
-#define WARNsize 15
-#define WARN_ALLstring "\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125"
-#define WARN_NONEstring "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+#define WARN_EXPERIMENTAL__AUTODEREF 56
+#define WARN_EXPERIMENTAL__POSTDEREF 57
+#define WARN_EXPERIMENTAL__SIGNATURES 58
+#define WARN_SYSCALLS 59
+
+/* Warnings Categories added in Perl 5.021 */
+
+#define WARN_EXPERIMENTAL__BITWISE 60
+#define WARN_EXPERIMENTAL__CONST_ATTR 61
+#define WARN_EXPERIMENTAL__RE_STRICT 62
+#define WARN_EXPERIMENTAL__REFALIASING 63
+#define WARN_EXPERIMENTAL__WIN32_PERLIO 64
+#define WARN_LOCALE 65
+#define WARN_MISSING 66
+#define WARN_REDUNDANT 67
+
+#define WARNsize 17
+#define WARN_ALLstring "\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125"
+#define WARN_NONEstring "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
#define isLEXWARN_on (PL_curcop->cop_warnings != pWARN_STD)
#define isLEXWARN_off (PL_curcop->cop_warnings == pWARN_STD)
diff --git a/Master/tlpkg/tlperl/lib/CORE/win32.h b/Master/tlpkg/tlperl/lib/CORE/win32.h
index 735c4503e27..daefeb84fb0 100644
--- a/Master/tlpkg/tlperl/lib/CORE/win32.h
+++ b/Master/tlpkg/tlperl/lib/CORE/win32.h
@@ -23,6 +23,9 @@
# define WIN32_NO_SOCKETS
/* less I/O calls during each require */
# define PERL_DISABLE_PMC
+
+/* allow minitest to work */
+# define PERL_TEXTMODE_SCRIPTS
#endif
#ifdef WIN32_NO_SOCKETS
@@ -243,8 +246,6 @@ typedef long gid_t;
typedef unsigned short mode_t;
#endif
-#pragma warning(disable: 4102) /* "unreferenced label" */
-
#if _MSC_VER < 1800
#define isnan _isnan /* Defined already in VC++ 12.0 */
#endif
@@ -259,6 +260,31 @@ typedef unsigned short mode_t;
# pragma intrinsic(_rotl64,_rotr64)
#endif
+# pragma warning(push)
+# pragma warning(disable:4756;disable:4056)
+PERL_STATIC_INLINE
+double S_Infinity() {
+ /* this is a real C literal which can get further constant folded
+ unlike using HUGE_VAL/_HUGE which are data symbol imports from the CRT
+ and therefore can not by folded by VC, an example of constant
+ folding INF is creating -INF */
+ return (DBL_MAX+DBL_MAX);
+}
+# pragma warning(pop)
+# define NV_INF S_Infinity()
+
+/* selectany allows duplicate and unused data symbols to be removed by
+ VC linker, if this were static, each translation unit will have its own,
+ usually unused __PL_nan_u, if this were plain extern it will cause link
+ to fail due to multiple definitions, since we dont know if we are being
+ compiled as static or DLL XS, selectany simply always works, the cost of
+ importing __PL_nan_u across DLL boundaries in size in the importing DLL
+ will be more than the 8 bytes it will take up being in each XS DLL if
+ that DLL actually uses __PL_nan_u */
+extern const __declspec(selectany) union { unsigned __int64 __q; double __d; }
+__PL_nan_u = { 0x7FF8000000000000UI64 };
+# define NV_NAN ((NV)__PL_nan_u.__d)
+
#endif /* _MSC_VER */
#ifdef __MINGW32__ /* Minimal Gnu-Win32 */
@@ -326,8 +352,10 @@ extern void *sbrk(ptrdiff_t need);
#endif
extern char * getlogin(void);
extern int chown(const char *p, uid_t o, gid_t g);
+#if !defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 4
extern int mkstemp(const char *path);
#endif
+#endif
#undef Stat
#define Stat win32_stat
@@ -366,6 +394,7 @@ typedef struct {
DllExport void win32_get_child_IO(child_IO_table* ptr);
DllExport HWND win32_create_message_window(void);
+DllExport int win32_async_check(pTHX);
extern int my_fclose(FILE *);
extern char * win32_get_privlib(const char *pl, STRLEN *const len);
@@ -470,8 +499,6 @@ struct interp_intern {
Sighandler_t sigtable[SIG_SIZE];
};
-DllExport int win32_async_check(pTHX);
-
#define WIN32_POLL_INTERVAL 32768
#define PERL_ASYNC_CHECK() if (w32_do_async || PL_sig_pending) win32_async_check(aTHX)
@@ -541,12 +568,12 @@ typedef struct {
char pipech; /* one char buffer for handles opened on pipes */
int lockinitflag;
CRITICAL_SECTION lock;
-/* this struct defintion breaks ABI compatibility with
+/* this struct definition breaks ABI compatibility with
* not using, cl.exe's native VS version specitfic CRT. */
# if _MSC_VER >= 1400 && _MSC_VER < 1500
# error "This ioinfo struct is incomplete for Visual C 2005"
# endif
-/* VC 2005 CRT has atleast 3 different definitions of this struct based on the
+/* VC 2005 CRT has at least 3 different definitions of this struct based on the
* CRT DLL's build number. */
# if _MSC_VER >= 1500
# ifndef _SAFECRT_IMPL
diff --git a/Master/tlpkg/tlperl/lib/CORE/win32iop.h b/Master/tlpkg/tlperl/lib/CORE/win32iop.h
index 246375faa32..842bc073be1 100644
--- a/Master/tlpkg/tlperl/lib/CORE/win32iop.h
+++ b/Master/tlpkg/tlperl/lib/CORE/win32iop.h
@@ -130,7 +130,6 @@ DllExport int win32_putenv(const char *name);
DllExport unsigned win32_sleep(unsigned int);
DllExport int win32_times(struct tms *timebuf);
DllExport unsigned win32_alarm(unsigned int sec);
-DllExport int win32_stat(const char *path, Stat_t *buf);
DllExport char* win32_longpath(char *path);
DllExport char* win32_ansipath(const WCHAR *path);
DllExport int win32_ioctl(int i, unsigned int u, char *data);
@@ -289,11 +288,11 @@ END_EXTERN_C
# undef abort
#endif
#define abort() win32_abort()
-#ifdef UNDER_CE
+#if defined(UNDER_CE) || defined(__MINGW32__)
# undef fstat
#endif
#define fstat(fd,bufptr) win32_fstat(fd,bufptr)
-#ifdef UNDER_CE
+#if defined(UNDER_CE) || defined(__MINGW32__)
# undef stat
#endif
#define stat(pth,bufptr) win32_stat(pth,bufptr)
diff --git a/Master/tlpkg/tlperl/lib/CPAN.pm b/Master/tlpkg/tlperl/lib/CPAN.pm
index 4ed4b6cdd00..6096916bd9c 100644
--- a/Master/tlpkg/tlperl/lib/CPAN.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN.pm
@@ -2,7 +2,7 @@
# vim: ts=4 sts=4 sw=4:
use strict;
package CPAN;
-$CPAN::VERSION = '2.05';
+$CPAN::VERSION = '2.11';
$CPAN::VERSION =~ s/_//;
# we need to run chdir all over and we would get at wrong libraries
@@ -318,7 +318,6 @@ Enter 'h' for help.
},
$CPAN::VERSION,
- $rl_avail
)
}
my($continuation) = "";
@@ -919,6 +918,9 @@ sub getcwd {Cwd::getcwd();}
#-> sub CPAN::fastcwd ;
sub fastcwd {Cwd::fastcwd();}
+#-> sub CPAN::getdcwd ;
+sub getdcwd {Cwd::getdcwd();}
+
#-> sub CPAN::backtickcwd ;
sub backtickcwd {my $cwd = `cwd`; chomp $cwd; $cwd}
@@ -1020,6 +1022,18 @@ sub has_usable {
},
],
+ 'CPAN::Meta::Requirements' => [
+ sub {
+ 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") {
+ $CPAN::Frontend->mywarn($_);
+ die $_;
+ }
+ }
+ },
+ ],
+
LWP => [ # we frequently had "Can't locate object
# method "new" via package "LWP::UserAgent" at
# (eval 69) line 2006
@@ -1103,6 +1117,20 @@ sub has_usable {
return $HAS_USABLE->{$mod} = 1;
}
+sub frontend {
+ shift;
+ $CPAN::Frontend = shift if @_;
+ $CPAN::Frontend;
+}
+
+sub use_inst {
+ my ($self, $module) = @_;
+
+ unless ($self->has_inst($module)) {
+ $self->frontend->mydie("$module not installed, cannot continue");
+ }
+}
+
#-> sub CPAN::has_inst
sub has_inst {
my($self,$mod,$message) = @_;
@@ -1616,7 +1644,7 @@ in html or plain text format.
=item C<ls> globbing_expression
The first form lists all distribution files in and below an author's
-CPAN directory as stored in the CHECKUMS files distributed on
+CPAN directory as stored in the CHECKSUMS files distributed on
CPAN. The listing recurses into subdirectories.
The second form limits or expands the output with shell
@@ -1865,7 +1893,7 @@ separated):
Modules know their associated Distribution objects. They always refer
to the most recent official release. Developers may mark their releases
-as unstable development versions (by inserting an unserscore into the
+as unstable development versions (by inserting an underscore into the
module version number which will also be reflected in the distribution
name when you run 'make dist'), so the really hottest and newest
distribution is not always the default. If a module Foo circulates
@@ -1923,6 +1951,39 @@ by the cpan shell B<only when surrounded by whitespace>. So piping to
pager or redirecting output into a file works somewhat as in a normal
shell, with the stipulation that you must type extra spaces.
+=head2 Plugin support ***EXPERIMENTAL***
+
+Plugins are objects that implement any of currently eight methods:
+
+ pre_get
+ post_get
+ pre_make
+ post_make
+ pre_test
+ post_test
+ pre_install
+ post_install
+
+The C<plugin_list> configuration parameter holds a list of strings of
+the form
+
+ Modulename=arg0,arg1,arg2,arg3,...
+
+At run time, each listed plugin is instantiated as a singleton object
+by running the equivalent of this pseudo code:
+
+ my $plugin = <string representation from config>;
+ <generate Modulename and arguments from $plugin>;
+ my $p = $instance{$plugin} ||= Modulename->new($arg0,$arg1,...);
+
+The generated singletons are kept around from instantiation until the
+end of the shell session. <plugin_list> can be reconfigured at any
+time at run time. While the cpan shell is running, it checks all
+activated plugins at each of the 8 reference points listed above and
+runs the respective method if it is implemented for that object. The
+method is called with the active CPAN::Distribution object passed in
+as an argument.
+
=head1 CONFIGURATION
When the CPAN module is used for the first time, a configuration
@@ -2091,6 +2152,8 @@ currently defined:
patch path to external prg
patches_dir local directory containing patch files
perl5lib_verbosity verbosity level for PERL5LIB additions
+ plugin_list list of active hooks (see Plugin support above
+ and the CPAN::Plugin module)
prefer_external_tar
per default all untar operations are done with
Archive::Tar; by setting this variable to true
@@ -2202,6 +2265,10 @@ Calls Cwd::getcwd
Calls Cwd::fastcwd
+=item getdcwd
+
+Calls Cwd::getdcwd
+
=item backtickcwd
Calls the external command cwd.
@@ -2272,8 +2339,7 @@ C<ask/no>, CPAN.pm asks the user and sets the default accordingly.
=head2 Configuration for individual distributions (I<Distroprefs>)
-(B<Note:> This feature has been introduced in CPAN.pm 1.8854 and is
-still considered beta quality)
+(B<Note:> This feature has been introduced in CPAN.pm 1.8854)
Distributions on CPAN usually behave according to what we call the
CPAN mantra. Or since the advent of Module::Build we should talk about
@@ -3373,6 +3439,11 @@ loaded:
See the source for details.
+=item use_inst($module)
+
+Similary to L<has_inst()> tries to load optional library but also dies if
+library is not available
+
=item has_usable($module)
Returns true if the module is installed and in a usable state. Only
@@ -3385,6 +3456,12 @@ The constructor for all the singletons used to represent modules,
distributions, authors, and bundles. If the object already exists, this
method returns the object; otherwise, it calls the constructor.
+=item frontend()
+
+=item frontend($new_frontend)
+
+Getter/setter for frontend object. Method just allows to subclass CPAN.pm.
+
=back
=head1 SECURITY
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Distribution.pm b/Master/tlpkg/tlperl/lib/CPAN/Distribution.pm
index 9a0870717da..092b781ac2e 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Distribution.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Distribution.pm
@@ -4,12 +4,37 @@ package CPAN::Distribution;
use strict;
use Cwd qw(chdir);
use CPAN::Distroprefs;
-use CPAN::Meta::Requirements 2;
use CPAN::InfoObj;
use File::Path ();
@CPAN::Distribution::ISA = qw(CPAN::InfoObj);
use vars qw($VERSION);
-$VERSION = "2.02";
+$VERSION = "2.04";
+
+# no prepare, because prepare is not a command on the shell command line
+# TODO: clear instance cache on reload
+my %instance;
+for my $method (qw(get make test install)) {
+ no strict 'refs';
+ for my $prefix (qw(pre post)) {
+ my $hookname = sprintf "%s_%s", $prefix, $method;
+ *$hookname = sub {
+ my($self) = @_;
+ for my $plugin (@{$CPAN::Config->{plugin_list}}) {
+ my($plugin_proper,$args) = split /=/, $plugin, 2;
+ $args = "" unless defined $args;
+ if ($CPAN::META->has_inst($plugin_proper)){
+ my @args = split /,/, $args;
+ $instance{$plugin} ||= $plugin_proper->new(@args);
+ if ($instance{$plugin}->can($hookname)) {
+ $instance{$plugin}->$hookname($self);
+ }
+ } else {
+ $CPAN::Frontend->mydie("Plugin '$plugin_proper' not found");
+ }
+ }
+ };
+ }
+}
# Accessors
sub cpan_comment {
@@ -180,6 +205,7 @@ sub color_cmd_tmps {
return if exists $self->{incommandcolor}
&& $color==1
&& $self->{incommandcolor}==$color;
+ $CPAN::MAX_RECURSION||=0; # silence 'once' warnings
if ($depth>=$CPAN::MAX_RECURSION) {
die(CPAN::Exception::RecursiveDependency->new($ancestors));
}
@@ -187,11 +213,10 @@ sub color_cmd_tmps {
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 (
keys %{$prereq_pm->{requires}||{}},
keys %{$prereq_pm->{build_requires}||{}},
- keys %{$prereq_pm->{opt_requires}||{}},
- keys %{$prereq_pm->{opt_build_requires}||{}}
) {
next PREREQ if $pre eq "perl";
my $premo;
@@ -332,6 +357,8 @@ sub shortcut_get {
sub get {
my($self) = @_;
+ $self->pre_get();
+
$self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG;
if (my $goto = $self->prefs->{goto}) {
return $self->goto($goto);
@@ -379,6 +406,9 @@ sub get {
}
return unless $self->patch;
$self->store_persistent_state;
+
+ $self->post_get();
+
return 1; # success
}
@@ -648,6 +678,11 @@ sub parse_meta_yml {
}
$self->debug(sprintf("yaml[%s]", $early_yaml || 'UNDEF')) if $CPAN::DEBUG;
$self->debug($early_yaml) if $CPAN::DEBUG && $early_yaml;
+ if (!ref $early_yaml or ref $early_yaml ne "HASH"){
+ # fix rt.cpan.org #95271
+ $CPAN::Frontend->mywarn("The content of '$yaml' is not a HASH reference. Cannot use it.\n");
+ return {};
+ }
return $early_yaml || undef;
}
@@ -804,8 +839,16 @@ sub store_persistent_state {
"will not store persistent state\n");
return;
}
- unless ( Cwd::realpath(File::Spec->catdir($dir, File::Spec->updir()) )
- eq Cwd::realpath($CPAN::Config->{build_dir} ) ) {
+ # self-build-dir
+ my $sbd = Cwd::realpath(
+ File::Spec->catdir($dir, File::Spec->updir ())
+ );
+ # config-build-dir
+ my $cbd = Cwd::realpath(
+ # the catdir is a workaround for bug https://rt.cpan.org/Ticket/Display.html?id=101283
+ File::Spec->catdir($CPAN::Config->{build_dir}, File::Spec->curdir())
+ );
+ unless ($sbd eq $cbd) {
$CPAN::Frontend->mywarnonce("Directory '$dir' not below $CPAN::Config->{build_dir}, ".
"will not store persistent state\n");
return;
@@ -1835,8 +1878,8 @@ sub prepare {
$self->debug("Changed directory to $builddir") if $CPAN::DEBUG;
- local $ENV{PERL_AUTOINSTALL} = $ENV{PERL_AUTOINSTALL};
- local $ENV{PERL_EXTUTILS_AUTOINSTALL} = $ENV{PERL_EXTUTILS_AUTOINSTALL};
+ local $ENV{PERL_AUTOINSTALL} = $ENV{PERL_AUTOINSTALL} || '';
+ local $ENV{PERL_EXTUTILS_AUTOINSTALL} = $ENV{PERL_EXTUTILS_AUTOINSTALL} || '';
$self->choose_MM_or_MB
or return;
@@ -1856,8 +1899,8 @@ sub prepare {
if ($self->prefs->{pl}) {
$pl_commandline = $self->prefs->{pl}{commandline};
}
- local $ENV{PERL} = $ENV{PERL};
- local $ENV{PERL5_CPAN_IS_EXECUTING} = $ENV{PERL5_CPAN_IS_EXECUTING};
+ local $ENV{PERL} = defined $ENV{PERL}? $ENV{PERL} : $^X;
+ local $ENV{PERL5_CPAN_IS_EXECUTING} = $ENV{PERL5_CPAN_IS_EXECUTING} || '';
local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
local $ENV{NONINTERACTIVE_TESTING} = 1 if $CPAN::Config->{use_prompt_default};
if ($pl_commandline) {
@@ -2036,6 +2079,8 @@ sub shortcut_make {
sub make {
my($self) = @_;
+ $self->pre_make();
+
$self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG;
if (my $goto = $self->prefs->{goto}) {
return $self->goto($goto);
@@ -2119,10 +2164,10 @@ is part of the perl-%s distribution. To install that, you need to run
my %env;
while (my($k,$v) = each %ENV) {
- next unless defined $v;
- $env{$k} = $v;
+ next if defined $v;
+ $env{$k} = '';
}
- local %ENV = %env;
+ local @ENV{keys %env} = values %env;
my $satisfied = eval { $self->satisfy_requires };
return $self->goodbye($@) if $@;
return unless $satisfied ;
@@ -2130,12 +2175,19 @@ is part of the perl-%s distribution. To install that, you need to run
delete $self->{force_update};
return;
}
+
+ # need to chdir again, because $self->satisfy_requires might change the directory
+ unless (chdir $builddir) {
+ $CPAN::Frontend->mywarn("Couldn't chdir to '$builddir': $!");
+ return;
+ }
+
my $system;
my $make_commandline;
if ($self->prefs->{make}) {
$make_commandline = $self->prefs->{make}{commandline};
}
- local $ENV{PERL} = $ENV{PERL};
+ local $ENV{PERL} = defined $ENV{PERL}? $ENV{PERL} : $^X;
local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
local $ENV{NONINTERACTIVE_TESTING} = 1 if $CPAN::Config->{use_prompt_default};
if ($make_commandline) {
@@ -2200,6 +2252,9 @@ is part of the perl-%s distribution. To install that, you need to run
$CPAN::Frontend->mywarn(" $system -- NOT OK\n");
}
$self->store_persistent_state;
+
+ $self->post_make();
+
return !! $system_ok;
}
@@ -2733,6 +2788,8 @@ 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";
my $merged = CPAN::Meta::Requirements->new;
my $prefs_depends = $self->prefs->{depends}||{};
my $feature_depends = $self->_feature_depends();
@@ -2795,6 +2852,8 @@ 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";
my $merged = CPAN::Meta::Requirements->from_string_hash($merged_hash);
my @merged = $merged->required_modules;
CPAN->debug("all merged_prereqs[@merged]") if $CPAN::DEBUG;
@@ -3145,8 +3204,9 @@ sub prereq_pm {
return;
}
# no Makefile/Build means configuration aborted, so don't look for prereqs
- return unless -f File::Spec->catfile($self->{build_dir},'Makefile')
- || -f File::Spec->catfile($self->{build_dir},'Build');
+ my $makefile = File::Spec->catfile($self->{build_dir}, $^O eq 'VMS' ? 'descrip.mms' : 'Makefile');
+ my $buildfile = File::Spec->catfile($self->{build_dir}, $^O eq 'VMS' ? 'Build.com' : 'Build');
+ return unless -f $makefile || -f $buildfile;
CPAN->debug(sprintf "writemakefile[%s]modulebuild[%s]",
$self->{writemakefile}||"",
$self->{modulebuild}||"",
@@ -3166,6 +3226,7 @@ sub prereq_pm {
# XXX assemble optional_req && optional_breq from recommends/suggests
# depending on corresponding policies -- xdg, 2012-04-01
+ CPAN->use_inst("CPAN::Meta::Requirements");
my $opt_runtime = CPAN::Meta::Requirements->new;
my $opt_build = CPAN::Meta::Requirements->new;
if ( $CPAN::Config->{recommends_policy} ) {
@@ -3413,6 +3474,8 @@ sub _exe_files {
sub test {
my($self) = @_;
+ $self->pre_test();
+
$self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG;
if (my $goto = $self->prefs->{goto}) {
return $self->goto($goto);
@@ -3591,6 +3654,8 @@ sub test {
}
$self->store_persistent_state;
+ $self->post_test();
+
return $self->{force_update} ? 1 : !! $tests_ok;
}
@@ -3815,6 +3880,8 @@ sub shortcut_install {
sub install {
my($self) = @_;
+ $self->pre_install();
+
$self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG;
if (my $goto = $self->prefs->{goto}) {
return $self->goto($goto);
@@ -3867,7 +3934,6 @@ sub install {
$install_directive,
$CPAN::Config->{mbuild_install_arg},
);
-
} else {
my($make_install_make_command) = $self->_make_install_make_command();
$system = sprintf("%s install %s",
@@ -3911,8 +3977,7 @@ sub install {
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 |") || Carp::croak("Can't execute $system: $!");
my($makeout) = "";
while (<$pipe>) {
print $_; # intentionally NOT use Frontend->myprint because it
@@ -3954,6 +4019,9 @@ sub install {
}
delete $self->{force_update};
$self->store_persistent_state;
+
+ $self->post_install();
+
return !! $close_ok;
}
diff --git a/Master/tlpkg/tlperl/lib/CPAN/FirstTime.pm b/Master/tlpkg/tlperl/lib/CPAN/FirstTime.pm
index d1a8eef2607..918e009a2bc 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/FirstTime.pm
+++ b/Master/tlpkg/tlperl/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.5306";
+$VERSION = "5.5307";
=head1 NAME
@@ -198,6 +198,7 @@ alternatives can be configured according to the following table:
cwd Cwd::cwd
getcwd Cwd::getcwd
fastcwd Cwd::fastcwd
+ getdcwd Cwd::getdcwd
backtickcwd external command cwd
Preferred method for determining the current working directory?
@@ -1134,6 +1135,17 @@ sub init {
}
#
+ #= how plugins work
+ #
+
+ # XXX MISSING: my_array_prompt to be used with plugins. We did something like this near
+ # git log -p fd68f8f5e33f4cecea4fdb7abc5ee19c12f138f0..test-notest-test-dependency
+ # Need to do similar steps for plugin_list. As long as we do not support it here, people
+ # must use the cpan shell prompt to write something like
+ # o conf plugin_list push CPAN::Plugin::Specfile=dir,/tmp/foo-20141013,...
+ # o conf commit
+
+ #
#= how FTP works
#
@@ -1144,7 +1156,7 @@ sub init {
#
my_prompt_loop(getcwd => 'cwd', $matcher,
- 'cwd|getcwd|fastcwd|backtickcwd');
+ 'cwd|getcwd|fastcwd|getdcwd|backtickcwd');
#
#= the CPAN shell itself (prompt, color)
diff --git a/Master/tlpkg/tlperl/lib/CPAN/HTTP/Credentials.pm b/Master/tlpkg/tlperl/lib/CPAN/HTTP/Credentials.pm
index 097c67d0ed7..96a98800928 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/HTTP/Credentials.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/HTTP/Credentials.pm
@@ -4,11 +4,11 @@ package CPAN::HTTP::Credentials;
use strict;
use vars qw($USER $PASSWORD $PROXY_USER $PROXY_PASSWORD);
-$CPAN::HTTP::Credentials::VERSION = $CPAN::HTTP::Credentials::VERSION = "1.9600";
+$CPAN::HTTP::Credentials::VERSION = $CPAN::HTTP::Credentials::VERSION = "1.9601";
sub clear_credentials {
- _clear_non_proxy_credentials();
- _clear_proxy_credentials();
+ clear_non_proxy_credentials();
+ clear_proxy_credentials();
}
sub clear_non_proxy_credentials {
diff --git a/Master/tlpkg/tlperl/lib/CPAN/HandleConfig.pm b/Master/tlpkg/tlperl/lib/CPAN/HandleConfig.pm
index a138128bdfe..e596cbcd6c5 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/HandleConfig.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/HandleConfig.pm
@@ -12,7 +12,7 @@ CPAN::HandleConfig - internal configuration handling for CPAN.pm
=cut
-$VERSION = "5.5005"; # see also CPAN::Config::VERSION at end of file
+$VERSION = "5.5006"; # see also CPAN::Config::VERSION at end of file
%can = (
commit => "Commit changes to disk",
@@ -88,6 +88,7 @@ $VERSION = "5.5005"; # see also CPAN::Config::VERSION at end of file
"patch",
"patches_dir",
"perl5lib_verbosity",
+ "plugin_list",
"prefer_external_tar",
"prefer_installer",
"prefs_dir",
@@ -153,7 +154,7 @@ sub edit {
# one day I used randomize_urllist for a boolean, so we must
# list them explicitly --ak
if (0) {
- } elsif ($o =~ /^(wait_list|urllist|dontload_list)$/) {
+ } elsif ($o =~ /^(wait_list|urllist|dontload_list|plugin_list)$/) {
#
# ARRAYS
@@ -768,7 +769,7 @@ sub prefs_lookup {
use strict;
use vars qw($AUTOLOAD $VERSION);
- $VERSION = "5.5005";
+ $VERSION = "5.5006";
# formerly CPAN::HandleConfig was known as CPAN::Config
sub AUTOLOAD { ## no critic
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta.pm
index 3ab0111844a..2a78691906b 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta.pm
@@ -2,55 +2,56 @@ use 5.006;
use strict;
use warnings;
package CPAN::Meta;
-our $VERSION = '2.140640'; # VERSION
-
-# =head1 SYNOPSIS
-#
-# use v5.10;
-# use strict;
-# use warnings;
-# use CPAN::Meta;
-# use Module::Load;
-#
-# my $meta = CPAN::Meta->load_file('META.json');
-#
-# printf "testing requirements for %s version %s\n",
-# $meta->name,
-# $meta->version;
-#
-# my $prereqs = $meta->effective_prereqs;
-#
-# for my $phase ( qw/configure runtime build test/ ) {
-# say "Requirements for $phase:";
-# my $reqs = $prereqs->requirements_for($phase, "requires");
-# for my $module ( sort $reqs->required_modules ) {
-# my $status;
-# if ( eval { load $module unless $module eq 'perl'; 1 } ) {
-# my $version = $module eq 'perl' ? $] : $module->VERSION;
-# $status = $reqs->accepts_module($module, $version)
-# ? "$version ok" : "$version not ok";
-# } else {
-# $status = "missing"
-# };
-# say " $module ($status)";
-# }
-# }
-#
-# =head1 DESCRIPTION
-#
-# Software distributions released to the CPAN include a F<META.json> or, for
-# older distributions, F<META.yml>, which describes the distribution, its
-# contents, and the requirements for building and installing the distribution.
-# The data structure stored in the F<META.json> file is described in
-# L<CPAN::Meta::Spec>.
-#
-# CPAN::Meta provides a simple class to represent this distribution metadata (or
-# I<distmeta>), along with some helpful methods for interrogating that data.
-#
-# The documentation below is only for the methods of the CPAN::Meta object. For
-# information on the meaning of individual fields, consult the spec.
-#
-# =cut
+
+our $VERSION = '2.150001';
+
+#pod =head1 SYNOPSIS
+#pod
+#pod use v5.10;
+#pod use strict;
+#pod use warnings;
+#pod use CPAN::Meta;
+#pod use Module::Load;
+#pod
+#pod my $meta = CPAN::Meta->load_file('META.json');
+#pod
+#pod printf "testing requirements for %s version %s\n",
+#pod $meta->name,
+#pod $meta->version;
+#pod
+#pod my $prereqs = $meta->effective_prereqs;
+#pod
+#pod for my $phase ( qw/configure runtime build test/ ) {
+#pod say "Requirements for $phase:";
+#pod my $reqs = $prereqs->requirements_for($phase, "requires");
+#pod for my $module ( sort $reqs->required_modules ) {
+#pod my $status;
+#pod if ( eval { load $module unless $module eq 'perl'; 1 } ) {
+#pod my $version = $module eq 'perl' ? $] : $module->VERSION;
+#pod $status = $reqs->accepts_module($module, $version)
+#pod ? "$version ok" : "$version not ok";
+#pod } else {
+#pod $status = "missing"
+#pod };
+#pod say " $module ($status)";
+#pod }
+#pod }
+#pod
+#pod =head1 DESCRIPTION
+#pod
+#pod Software distributions released to the CPAN include a F<META.json> or, for
+#pod older distributions, F<META.yml>, which describes the distribution, its
+#pod contents, and the requirements for building and installing the distribution.
+#pod The data structure stored in the F<META.json> file is described in
+#pod L<CPAN::Meta::Spec>.
+#pod
+#pod CPAN::Meta provides a simple class to represent this distribution metadata (or
+#pod I<distmeta>), along with some helpful methods for interrogating that data.
+#pod
+#pod The documentation below is only for the methods of the CPAN::Meta object. For
+#pod information on the meaning of individual fields, consult the spec.
+#pod
+#pod =cut
use Carp qw(carp croak);
use CPAN::Meta::Feature;
@@ -61,22 +62,22 @@ use Parse::CPAN::Meta 1.4414 ();
BEGIN { *_dclone = \&CPAN::Meta::Converter::_dclone }
-# =head1 STRING DATA
-#
-# The following methods return a single value, which is the value for the
-# corresponding entry in the distmeta structure. Values should be either undef
-# or strings.
-#
-# =for :list
-# * abstract
-# * description
-# * dynamic_config
-# * generated_by
-# * name
-# * release_status
-# * version
-#
-# =cut
+#pod =head1 STRING DATA
+#pod
+#pod The following methods return a single value, which is the value for the
+#pod corresponding entry in the distmeta structure. Values should be either undef
+#pod or strings.
+#pod
+#pod =for :list
+#pod * abstract
+#pod * description
+#pod * dynamic_config
+#pod * generated_by
+#pod * name
+#pod * release_status
+#pod * version
+#pod
+#pod =cut
BEGIN {
my @STRING_READERS = qw(
@@ -95,20 +96,20 @@ BEGIN {
}
}
-# =head1 LIST DATA
-#
-# These methods return lists of string values, which might be represented in the
-# distmeta structure as arrayrefs or scalars:
-#
-# =for :list
-# * authors
-# * keywords
-# * licenses
-#
-# The C<authors> and C<licenses> methods may also be called as C<author> and
-# C<license>, respectively, to match the field name in the distmeta structure.
-#
-# =cut
+#pod =head1 LIST DATA
+#pod
+#pod These methods return lists of string values, which might be represented in the
+#pod distmeta structure as arrayrefs or scalars:
+#pod
+#pod =for :list
+#pod * authors
+#pod * keywords
+#pod * licenses
+#pod
+#pod The C<authors> and C<licenses> methods may also be called as C<author> and
+#pod C<license>, respectively, to match the field name in the distmeta structure.
+#pod
+#pod =cut
BEGIN {
my @LIST_READERS = qw(
@@ -132,20 +133,20 @@ BEGIN {
sub authors { $_[0]->author }
sub licenses { $_[0]->license }
-# =head1 MAP DATA
-#
-# These readers return hashrefs of arbitrary unblessed data structures, each
-# described more fully in the specification:
-#
-# =for :list
-# * meta_spec
-# * resources
-# * provides
-# * no_index
-# * prereqs
-# * optional_features
-#
-# =cut
+#pod =head1 MAP DATA
+#pod
+#pod These readers return hashrefs of arbitrary unblessed data structures, each
+#pod described more fully in the specification:
+#pod
+#pod =for :list
+#pod * meta_spec
+#pod * resources
+#pod * provides
+#pod * no_index
+#pod * prereqs
+#pod * optional_features
+#pod
+#pod =cut
BEGIN {
my @MAP_READERS = qw(
@@ -169,16 +170,16 @@ BEGIN {
}
}
-# =head1 CUSTOM DATA
-#
-# A list of custom keys are available from the C<custom_keys> method and
-# particular keys may be retrieved with the C<custom> method.
-#
-# say $meta->custom($_) for $meta->custom_keys;
-#
-# If a custom key refers to a data structure, a deep clone is returned.
-#
-# =cut
+#pod =head1 CUSTOM DATA
+#pod
+#pod A list of custom keys are available from the C<custom_keys> method and
+#pod particular keys may be retrieved with the C<custom> method.
+#pod
+#pod say $meta->custom($_) for $meta->custom_keys;
+#pod
+#pod If a custom key refers to a data structure, a deep clone is returned.
+#pod
+#pod =cut
sub custom_keys {
return grep { /^x_/i } keys %{$_[0]};
@@ -191,29 +192,29 @@ sub custom {
return $value;
}
-# =method new
-#
-# my $meta = CPAN::Meta->new($distmeta_struct, \%options);
-#
-# Returns a valid CPAN::Meta object or dies if the supplied metadata hash
-# reference fails to validate. Older-format metadata will be up-converted to
-# version 2 if they validate against the original stated specification.
-#
-# It takes an optional hashref of options. Valid options include:
-#
-# =over
-#
-# =item *
-#
-# lazy_validation -- if true, new will attempt to convert the given metadata
-# to version 2 before attempting to validate it. This means than any
-# fixable errors will be handled by CPAN::Meta::Converter before validation.
-# (Note that this might result in invalid optional data being silently
-# dropped.) The default is false.
-#
-# =back
-#
-# =cut
+#pod =method new
+#pod
+#pod my $meta = CPAN::Meta->new($distmeta_struct, \%options);
+#pod
+#pod Returns a valid CPAN::Meta object or dies if the supplied metadata hash
+#pod reference fails to validate. Older-format metadata will be up-converted to
+#pod version 2 if they validate against the original stated specification.
+#pod
+#pod It takes an optional hashref of options. Valid options include:
+#pod
+#pod =over
+#pod
+#pod =item *
+#pod
+#pod lazy_validation -- if true, new will attempt to convert the given metadata
+#pod to version 2 before attempting to validate it. This means than any
+#pod fixable errors will be handled by CPAN::Meta::Converter before validation.
+#pod (Note that this might result in invalid optional data being silently
+#pod dropped.) The default is false.
+#pod
+#pod =back
+#pod
+#pod =cut
sub _new {
my ($class, $struct, $options) = @_;
@@ -254,15 +255,15 @@ sub new {
return $self;
}
-# =method create
-#
-# my $meta = CPAN::Meta->create($distmeta_struct, \%options);
-#
-# This is same as C<new()>, except that C<generated_by> and C<meta-spec> fields
-# will be generated if not provided. This means the metadata structure is
-# assumed to otherwise follow the latest L<CPAN::Meta::Spec>.
-#
-# =cut
+#pod =method create
+#pod
+#pod my $meta = CPAN::Meta->create($distmeta_struct, \%options);
+#pod
+#pod This is same as C<new()>, except that C<generated_by> and C<meta-spec> fields
+#pod will be generated if not provided. This means the metadata structure is
+#pod assumed to otherwise follow the latest L<CPAN::Meta::Spec>.
+#pod
+#pod =cut
sub create {
my ($class, $struct, $options) = @_;
@@ -274,19 +275,19 @@ sub create {
return $self;
}
-# =method load_file
-#
-# my $meta = CPAN::Meta->load_file($distmeta_file, \%options);
-#
-# Given a pathname to a file containing metadata, this deserializes the file
-# according to its file suffix and constructs a new C<CPAN::Meta> object, just
-# like C<new()>. It will die if the deserialized version fails to validate
-# against its stated specification version.
-#
-# It takes the same options as C<new()> but C<lazy_validation> defaults to
-# true.
-#
-# =cut
+#pod =method load_file
+#pod
+#pod my $meta = CPAN::Meta->load_file($distmeta_file, \%options);
+#pod
+#pod Given a pathname to a file containing metadata, this deserializes the file
+#pod according to its file suffix and constructs a new C<CPAN::Meta> object, just
+#pod like C<new()>. It will die if the deserialized version fails to validate
+#pod against its stated specification version.
+#pod
+#pod It takes the same options as C<new()> but C<lazy_validation> defaults to
+#pod true.
+#pod
+#pod =cut
sub load_file {
my ($class, $file, $options) = @_;
@@ -304,14 +305,14 @@ sub load_file {
return $self;
}
-# =method load_yaml_string
-#
-# my $meta = CPAN::Meta->load_yaml_string($yaml, \%options);
-#
-# This method returns a new CPAN::Meta object using the first document in the
-# given YAML string. In other respects it is identical to C<load_file()>.
-#
-# =cut
+#pod =method load_yaml_string
+#pod
+#pod my $meta = CPAN::Meta->load_yaml_string($yaml, \%options);
+#pod
+#pod This method returns a new CPAN::Meta object using the first document in the
+#pod given YAML string. In other respects it is identical to C<load_file()>.
+#pod
+#pod =cut
sub load_yaml_string {
my ($class, $yaml, $options) = @_;
@@ -326,14 +327,14 @@ sub load_yaml_string {
return $self;
}
-# =method load_json_string
-#
-# my $meta = CPAN::Meta->load_json_string($json, \%options);
-#
-# This method returns a new CPAN::Meta object using the structure represented by
-# the given JSON string. In other respects it is identical to C<load_file()>.
-#
-# =cut
+#pod =method load_json_string
+#pod
+#pod my $meta = CPAN::Meta->load_json_string($json, \%options);
+#pod
+#pod This method returns a new CPAN::Meta object using the structure represented by
+#pod the given JSON string. In other respects it is identical to C<load_file()>.
+#pod
+#pod =cut
sub load_json_string {
my ($class, $json, $options) = @_;
@@ -348,15 +349,15 @@ sub load_json_string {
return $self;
}
-# =method load_string
-#
-# my $meta = CPAN::Meta->load_string($string, \%options);
-#
-# If you don't know if a string contains YAML or JSON, this method will use
-# L<Parse::CPAN::Meta> to guess. In other respects it is identical to
-# C<load_file()>.
-#
-# =cut
+#pod =method load_string
+#pod
+#pod my $meta = CPAN::Meta->load_string($string, \%options);
+#pod
+#pod If you don't know if a string contains YAML or JSON, this method will use
+#pod L<Parse::CPAN::Meta> to guess. In other respects it is identical to
+#pod C<load_file()>.
+#pod
+#pod =cut
sub load_string {
my ($class, $string, $options) = @_;
@@ -371,27 +372,27 @@ sub load_string {
return $self;
}
-# =method save
-#
-# $meta->save($distmeta_file, \%options);
-#
-# Serializes the object as JSON and writes it to the given file. The only valid
-# option is C<version>, which defaults to '2'. On Perl 5.8.1 or later, the file
-# is saved with UTF-8 encoding.
-#
-# For C<version> 2 (or higher), the filename should end in '.json'. L<JSON::PP>
-# is the default JSON backend. Using another JSON backend requires L<JSON> 2.5 or
-# later and you must set the C<$ENV{PERL_JSON_BACKEND}> to a supported alternate
-# backend like L<JSON::XS>.
-#
-# For C<version> less than 2, the filename should end in '.yml'.
-# L<CPAN::Meta::Converter> is used to generate an older metadata structure, which
-# is serialized to YAML. CPAN::Meta::YAML is the default YAML backend. You may
-# set the C<$ENV{PERL_YAML_BACKEND}> to a supported alternative backend, though
-# this is not recommended due to subtle incompatibilities between YAML parsers on
-# CPAN.
-#
-# =cut
+#pod =method save
+#pod
+#pod $meta->save($distmeta_file, \%options);
+#pod
+#pod Serializes the object as JSON and writes it to the given file. The only valid
+#pod option is C<version>, which defaults to '2'. On Perl 5.8.1 or later, the file
+#pod is saved with UTF-8 encoding.
+#pod
+#pod For C<version> 2 (or higher), the filename should end in '.json'. L<JSON::PP>
+#pod is the default JSON backend. Using another JSON backend requires L<JSON> 2.5 or
+#pod later and you must set the C<$ENV{PERL_JSON_BACKEND}> to a supported alternate
+#pod backend like L<JSON::XS>.
+#pod
+#pod For C<version> less than 2, the filename should end in '.yml'.
+#pod L<CPAN::Meta::Converter> is used to generate an older metadata structure, which
+#pod is serialized to YAML. CPAN::Meta::YAML is the default YAML backend. You may
+#pod set the C<$ENV{PERL_YAML_BACKEND}> to a supported alternative backend, though
+#pod this is not recommended due to subtle incompatibilities between YAML parsers on
+#pod CPAN.
+#pod
+#pod =cut
sub save {
my ($self, $file, $options) = @_;
@@ -419,32 +420,32 @@ sub save {
return 1;
}
-# =method meta_spec_version
-#
-# This method returns the version part of the C<meta_spec> entry in the distmeta
-# structure. It is equivalent to:
-#
-# $meta->meta_spec->{version};
-#
-# =cut
+#pod =method meta_spec_version
+#pod
+#pod This method returns the version part of the C<meta_spec> entry in the distmeta
+#pod structure. It is equivalent to:
+#pod
+#pod $meta->meta_spec->{version};
+#pod
+#pod =cut
sub meta_spec_version {
my ($self) = @_;
return $self->meta_spec->{version};
}
-# =method effective_prereqs
-#
-# my $prereqs = $meta->effective_prereqs;
-#
-# my $prereqs = $meta->effective_prereqs( \@feature_identifiers );
-#
-# This method returns a L<CPAN::Meta::Prereqs> object describing all the
-# prereqs for the distribution. If an arrayref of feature identifiers is given,
-# the prereqs for the identified features are merged together with the
-# distribution's core prereqs before the CPAN::Meta::Prereqs object is returned.
-#
-# =cut
+#pod =method effective_prereqs
+#pod
+#pod my $prereqs = $meta->effective_prereqs;
+#pod
+#pod my $prereqs = $meta->effective_prereqs( \@feature_identifiers );
+#pod
+#pod This method returns a L<CPAN::Meta::Prereqs> object describing all the
+#pod prereqs for the distribution. If an arrayref of feature identifiers is given,
+#pod the prereqs for the identified features are merged together with the
+#pod distribution's core prereqs before the CPAN::Meta::Prereqs object is returned.
+#pod
+#pod =cut
sub effective_prereqs {
my ($self, $features) = @_;
@@ -459,17 +460,18 @@ sub effective_prereqs {
return $prereq->with_merged_prereqs(\@other);
}
-# =method should_index_file
-#
-# ... if $meta->should_index_file( $filename );
-#
-# This method returns true if the given file should be indexed. It decides this
-# by checking the C<file> and C<directory> keys in the C<no_index> property of
-# the distmeta structure.
-#
-# C<$filename> should be given in unix format.
-#
-# =cut
+#pod =method should_index_file
+#pod
+#pod ... if $meta->should_index_file( $filename );
+#pod
+#pod This method returns true if the given file should be indexed. It decides this
+#pod by checking the C<file> and C<directory> keys in the C<no_index> property of
+#pod the distmeta structure. Note that neither the version format nor
+#pod C<release_status> are considered.
+#pod
+#pod C<$filename> should be given in unix format.
+#pod
+#pod =cut
sub should_index_file {
my ($self, $filename) = @_;
@@ -486,15 +488,16 @@ sub should_index_file {
return 1;
}
-# =method should_index_package
-#
-# ... if $meta->should_index_package( $package );
-#
-# This method returns true if the given package should be indexed. It decides
-# this by checking the C<package> and C<namespace> keys in the C<no_index>
-# property of the distmeta structure.
-#
-# =cut
+#pod =method should_index_package
+#pod
+#pod ... if $meta->should_index_package( $package );
+#pod
+#pod This method returns true if the given package should be indexed. It decides
+#pod this by checking the C<package> and C<namespace> keys in the C<no_index>
+#pod property of the distmeta structure. Note that neither the version format nor
+#pod C<release_status> are considered.
+#pod
+#pod =cut
sub should_index_package {
my ($self, $package) = @_;
@@ -510,14 +513,14 @@ sub should_index_package {
return 1;
}
-# =method features
-#
-# my @feature_objects = $meta->features;
-#
-# This method returns a list of L<CPAN::Meta::Feature> objects, one for each
-# optional feature described by the distribution's metadata.
-#
-# =cut
+#pod =method features
+#pod
+#pod my @feature_objects = $meta->features;
+#pod
+#pod This method returns a list of L<CPAN::Meta::Feature> objects, one for each
+#pod optional feature described by the distribution's metadata.
+#pod
+#pod =cut
sub features {
my ($self) = @_;
@@ -529,15 +532,15 @@ sub features {
return @features;
}
-# =method feature
-#
-# my $feature_object = $meta->feature( $identifier );
-#
-# This method returns a L<CPAN::Meta::Feature> object for the optional feature
-# with the given identifier. If no feature with that identifier exists, an
-# exception will be raised.
-#
-# =cut
+#pod =method feature
+#pod
+#pod my $feature_object = $meta->feature( $identifier );
+#pod
+#pod This method returns a L<CPAN::Meta::Feature> object for the optional feature
+#pod with the given identifier. If no feature with that identifier exists, an
+#pod exception will be raised.
+#pod
+#pod =cut
sub feature {
my ($self, $ident) = @_;
@@ -548,18 +551,18 @@ sub feature {
return CPAN::Meta::Feature->new($ident, $f);
}
-# =method as_struct
-#
-# my $copy = $meta->as_struct( \%options );
-#
-# This method returns a deep copy of the object's metadata as an unblessed hash
-# reference. It takes an optional hashref of options. If the hashref contains
-# a C<version> argument, the copied metadata will be converted to the version
-# of the specification and returned. For example:
-#
-# my $old_spec = $meta->as_struct( {version => "1.4"} );
-#
-# =cut
+#pod =method as_struct
+#pod
+#pod my $copy = $meta->as_struct( \%options );
+#pod
+#pod This method returns a deep copy of the object's metadata as an unblessed hash
+#pod reference. It takes an optional hashref of options. If the hashref contains
+#pod a C<version> argument, the copied metadata will be converted to the version
+#pod of the specification and returned. For example:
+#pod
+#pod my $old_spec = $meta->as_struct( {version => "1.4"} );
+#pod
+#pod =cut
sub as_struct {
my ($self, $options) = @_;
@@ -571,24 +574,24 @@ sub as_struct {
return $struct;
}
-# =method as_string
-#
-# my $string = $meta->as_string( \%options );
-#
-# This method returns a serialized copy of the object's metadata as a character
-# string. (The strings are B<not> UTF-8 encoded.) It takes an optional hashref
-# of options. If the hashref contains a C<version> argument, the copied metadata
-# will be converted to the version of the specification and returned. For
-# example:
-#
-# my $string = $meta->as_string( {version => "1.4"} );
-#
-# For C<version> greater than or equal to 2, the string will be serialized as
-# JSON. For C<version> less than 2, the string will be serialized as YAML. In
-# both cases, the same rules are followed as in the C<save()> method for choosing
-# a serialization backend.
-#
-# =cut
+#pod =method as_string
+#pod
+#pod my $string = $meta->as_string( \%options );
+#pod
+#pod This method returns a serialized copy of the object's metadata as a character
+#pod string. (The strings are B<not> UTF-8 encoded.) It takes an optional hashref
+#pod of options. If the hashref contains a C<version> argument, the copied metadata
+#pod will be converted to the version of the specification and returned. For
+#pod example:
+#pod
+#pod my $string = $meta->as_string( {version => "1.4"} );
+#pod
+#pod For C<version> greater than or equal to 2, the string will be serialized as
+#pod JSON. For C<version> less than 2, the string will be serialized as YAML. In
+#pod both cases, the same rules are followed as in the C<save()> method for choosing
+#pod a serialization backend.
+#pod
+#pod =cut
sub as_string {
my ($self, $options) = @_;
@@ -641,7 +644,7 @@ CPAN::Meta - the distribution metadata for a CPAN dist
=head1 VERSION
-version 2.140640
+version 2.150001
=head1 SYNOPSIS
@@ -799,7 +802,8 @@ distribution's core prereqs before the CPAN::Meta::Prereqs object is returned.
This method returns true if the given file should be indexed. It decides this
by checking the C<file> and C<directory> keys in the C<no_index> property of
-the distmeta structure.
+the distmeta structure. Note that neither the version format nor
+C<release_status> are considered.
C<$filename> should be given in unix format.
@@ -809,7 +813,8 @@ C<$filename> should be given in unix format.
This method returns true if the given package should be indexed. It decides
this by checking the C<package> and C<namespace> keys in the C<no_index>
-property of the distmeta structure.
+property of the distmeta structure. Note that neither the version format nor
+C<release_status> are considered.
=head2 features
@@ -1020,6 +1025,8 @@ Ricardo Signes <rjbs@cpan.org>
=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 Olaf Alders Olivier Mengue Randy Sims
+
=over 4
=item *
@@ -1052,6 +1059,10 @@ Eric Wilhelm <ewilhelm@cpan.org>
=item *
+Graham Knop <haarg@haarg.org>
+
+=item *
+
Gregor Hermann <gregoa@debian.org>
=item *
@@ -1060,11 +1071,11 @@ Karen Etheridge <ether@cpan.org>
=item *
-Ken Williams <kwilliams@cpan.org>
+Kenichi Ishigaki <ishigaki@cpan.org>
=item *
-Kenichi Ishigaki <ishigaki@cpan.org>
+Ken Williams <kwilliams@cpan.org>
=item *
@@ -1076,14 +1087,30 @@ Leon Timmermans <leont@cpan.org>
=item *
+majensen <maj@fortinbras.us>
+
+=item *
+
Mark Fowler <markf@cpan.org>
=item *
+Matt S Trout <mst@shadowcat.co.uk>
+
+=item *
+
Michael G. Schwern <mschwern@cpan.org>
=item *
+mohawk2 <mohawk2@users.noreply.github.com>
+
+=item *
+
+moznion <moznion@gmail.com>
+
+=item *
+
Olaf Alders <olaf@wundersolutions.com>
=item *
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/Converter.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/Converter.pm
index 1bb4431f2b2..8b32b1360ab 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/Converter.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/Converter.pm
@@ -2,31 +2,46 @@ use 5.006;
use strict;
use warnings;
package CPAN::Meta::Converter;
-our $VERSION = '2.140640'; # VERSION
-# =head1 SYNOPSIS
-#
-# my $struct = decode_json_file('META.json');
-#
-# my $cmc = CPAN::Meta::Converter->new( $struct );
-#
-# my $new_struct = $cmc->convert( version => "2" );
-#
-# =head1 DESCRIPTION
-#
-# This module converts CPAN Meta structures from one form to another. The
-# primary use is to convert older structures to the most modern version of
-# the specification, but other transformations may be implemented in the
-# future as needed. (E.g. stripping all custom fields or stripping all
-# optional fields.)
-#
-# =cut
+our $VERSION = '2.150001';
+
+#pod =head1 SYNOPSIS
+#pod
+#pod my $struct = decode_json_file('META.json');
+#pod
+#pod my $cmc = CPAN::Meta::Converter->new( $struct );
+#pod
+#pod my $new_struct = $cmc->convert( version => "2" );
+#pod
+#pod =head1 DESCRIPTION
+#pod
+#pod This module converts CPAN Meta structures from one form to another. The
+#pod primary use is to convert older structures to the most modern version of
+#pod the specification, but other transformations may be implemented in the
+#pod future as needed. (E.g. stripping all custom fields or stripping all
+#pod optional fields.)
+#pod
+#pod =cut
use CPAN::Meta::Validator;
use CPAN::Meta::Requirements;
-use version 0.88 ();
use Parse::CPAN::Meta 1.4400 ();
-use List::Util 1.33 qw/all/;
+
+# To help ExtUtils::MakeMaker bootstrap CPAN::Meta::Requirements on perls
+# before 5.10, we fall back to the EUMM bundled compatibility version module if
+# that's the only thing available. This shouldn't ever happen in a normal CPAN
+# install of CPAN::Meta::Requirements, as version.pm will be picked up from
+# prereqs and be available at runtime.
+
+BEGIN {
+ eval "use version ()"; ## no critic
+ if ( my $err = $@ ) {
+ eval "use ExtUtils::MakeMaker::version" or die $err; ## no critic
+ }
+}
+
+# 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} };
sub _dclone {
my $ref = shift;
@@ -36,12 +51,14 @@ sub _dclone {
# right thing for typical things that might be there, like version objects,
# Path::Class objects, etc.
no warnings 'once';
- local *UNIVERSAL::TO_JSON = sub { return "$_[0]" };
-
- my $backend = Parse::CPAN::Meta->json_backend();
- return $backend->new->utf8->decode(
- $backend->new->utf8->allow_blessed->convert_blessed->encode($ref)
- );
+ 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 %known_specs = (
@@ -247,11 +264,11 @@ sub _downgrade_license {
}
elsif( ref $element eq 'ARRAY' ) {
if ( @$element > 1) {
- if ( all { $is_open_source{ $license_downgrade_map{lc $_} || 'unknown' } } @$element ) {
- return 'open_source';
+ if (grep { !$is_open_source{ $license_downgrade_map{lc $_} || 'unknown' } } @$element) {
+ return 'unknown';
}
else {
- return 'unknown';
+ return 'open_source';
}
}
elsif ( @$element == 1 ) {
@@ -303,11 +320,11 @@ sub _no_index_1_2 {
# common mistake: files -> file
if ( exists $no_index->{files} ) {
- $no_index->{file} = delete $no_index->{file};
+ $no_index->{file} = delete $no_index->{files};
}
# common mistake: modules -> module
if ( exists $no_index->{modules} ) {
- $no_index->{module} = delete $no_index->{module};
+ $no_index->{module} = delete $no_index->{modules};
}
return _convert($no_index, $no_index_spec_1_2);
}
@@ -331,11 +348,11 @@ sub _no_index_directory {
}
# common mistake: files -> file
if ( exists $element->{files} ) {
- $element->{file} = delete $element->{file};
+ $element->{file} = delete $element->{files};
}
# common mistake: modules -> module
if ( exists $element->{modules} ) {
- $element->{module} = delete $element->{module};
+ $element->{module} = delete $element->{modules};
}
my $spec = $version == 2 ? $no_index_spec_2 : $no_index_spec_1_3;
return _convert($element, $spec);
@@ -362,7 +379,7 @@ sub _clean_version {
# XXX check defined $v and not just $v because version objects leak memory
# in boolean context -- dagolden, 2012-02-03
if ( defined $v ) {
- return $v->is_qv ? $v->normal : $element;
+ return _is_qv($v) ? $v->normal : $element;
}
else {
return 0;
@@ -372,8 +389,8 @@ sub _clean_version {
sub _bad_version_hook {
my ($v) = @_;
$v =~ s{[a-z]+$}{}; # strip trailing alphabetics
- my $vobj = eval { version->parse($v) };
- return defined($vobj) ? $vobj : version->parse(0); # or give up
+ my $vobj = eval { version->new($v) };
+ return defined($vobj) ? $vobj : version->new(0); # or give up
}
sub _version_map {
@@ -682,7 +699,7 @@ sub _resources_1_2 {
my (undef, undef, $meta) = @_;
my $resources = $meta->{resources} || {};
if ( $meta->{license_url} && ! $resources->{license} ) {
- $resources->{license} = $meta->license_url
+ $resources->{license} = $meta->{license_url}
if _is_urlish($meta->{license_url});
}
return unless keys %$resources;
@@ -740,12 +757,15 @@ sub _provides {
}
sub _convert {
- my ($data, $spec, $to_version) = @_;
+ my ($data, $spec, $to_version, $is_fragment) = @_;
my $new_data = {};
for my $key ( keys %$spec ) {
next if $key eq ':custom' || $key eq ':drop';
next unless my $fcn = $spec->{$key};
+ if ( $is_fragment && $key eq 'generated_by' ) {
+ $fcn = \&_keep;
+ }
die "spec for '$key' is not a coderef"
unless ref $fcn && ref $fcn eq 'CODE';
my $new_value = $fcn->($data->{$key}, $key, $data, $to_version);
@@ -1230,27 +1250,80 @@ my %cleanup = (
},
);
+# for a given field in a spec version, what fields will it feed
+# into in the *latest* spec (i.e. v2); meta-spec omitted because
+# we always expect a meta-spec to be generated
+my %fragments_generate = (
+ '2' => {
+ 'abstract' => 'abstract',
+ 'author' => 'author',
+ 'generated_by' => 'generated_by',
+ 'license' => 'license',
+ 'name' => 'name',
+ 'version' => 'version',
+ 'dynamic_config' => 'dynamic_config',
+ 'release_status' => 'release_status',
+ 'keywords' => 'keywords',
+ 'no_index' => 'no_index',
+ 'optional_features' => 'optional_features',
+ 'provides' => 'provides',
+ 'resources' => 'resources',
+ 'description' => 'description',
+ 'prereqs' => 'prereqs',
+ },
+ '1.4' => {
+ 'abstract' => 'abstract',
+ 'author' => 'author',
+ 'generated_by' => 'generated_by',
+ 'license' => 'license',
+ 'name' => 'name',
+ 'version' => 'version',
+ 'build_requires' => 'prereqs',
+ 'conflicts' => 'prereqs',
+ 'distribution_type' => 'distribution_type',
+ 'dynamic_config' => 'dynamic_config',
+ 'keywords' => 'keywords',
+ 'no_index' => 'no_index',
+ 'optional_features' => 'optional_features',
+ 'provides' => 'provides',
+ 'recommends' => 'prereqs',
+ 'requires' => 'prereqs',
+ 'resources' => 'resources',
+ 'configure_requires' => 'prereqs',
+ },
+);
+# this is not quite true but will work well enough
+# as 1.4 is a superset of earlier ones
+$fragments_generate{$_} = $fragments_generate{'1.4'} for qw/1.3 1.2 1.1 1.0/;
+
#--------------------------------------------------------------------------#
# Code
#--------------------------------------------------------------------------#
-# =method new
-#
-# my $cmc = CPAN::Meta::Converter->new( $struct );
-#
-# The constructor should be passed a valid metadata structure but invalid
-# structures are accepted. If no meta-spec version is provided, version 1.0 will
-# be assumed.
-#
-# =cut
+#pod =method new
+#pod
+#pod my $cmc = CPAN::Meta::Converter->new( $struct );
+#pod
+#pod The constructor should be passed a valid metadata structure but invalid
+#pod structures are accepted. If no meta-spec version is provided, version 1.0 will
+#pod be assumed.
+#pod
+#pod Optionally, you can provide a C<default_version> argument after C<$struct>:
+#pod
+#pod my $cmc = CPAN::Meta::Converter->new( $struct, default_version => "1.4" );
+#pod
+#pod This is only needed when converting a metadata fragment that does not include a
+#pod C<meta-spec> field.
+#pod
+#pod =cut
sub new {
- my ($class,$data) = @_;
+ my ($class,$data,%args) = @_;
# create an attributes hash
my $self = {
'data' => $data,
- 'spec' => _extract_spec_version($data),
+ 'spec' => _extract_spec_version($data, $args{default_version}),
};
# create the object
@@ -1258,11 +1331,11 @@ sub new {
}
sub _extract_spec_version {
- my ($data) = @_;
+ my ($data, $default) = @_;
my $spec = $data->{'meta-spec'};
# is meta-spec there and valid?
- return "1.0" unless defined $spec && ref $spec eq 'HASH'; # before meta-spec?
+ return( $default || "1.0" ) unless defined $spec && ref $spec eq 'HASH'; # before meta-spec?
# does the version key look like a valid version?
my $v = $spec->{version};
@@ -1274,72 +1347,75 @@ sub _extract_spec_version {
# otherwise, use heuristics: look for 1.x vs 2.0 fields
return "2" if exists $data->{prereqs};
return "1.4" if exists $data->{configure_requires};
- return "1.2"; # when meta-spec was first defined
+ return( $default || "1.2" ); # when meta-spec was first defined
}
-# =method convert
-#
-# my $new_struct = $cmc->convert( version => "2" );
-#
-# Returns a new hash reference with the metadata converted to a different form.
-# C<convert> will die if any conversion/standardization still results in an
-# invalid structure.
-#
-# Valid parameters include:
-#
-# =over
-#
-# =item *
-#
-# C<version> -- Indicates the desired specification version (e.g. "1.0", "1.1" ... "1.4", "2").
-# Defaults to the latest version of the CPAN Meta Spec.
-#
-# =back
-#
-# Conversion proceeds through each version in turn. For example, a version 1.2
-# structure might be converted to 1.3 then 1.4 then finally to version 2. The
-# conversion process attempts to clean-up simple errors and standardize data.
-# For example, if C<author> is given as a scalar, it will converted to an array
-# reference containing the item. (Converting a structure to its own version will
-# also clean-up and standardize.)
-#
-# When data are cleaned and standardized, missing or invalid fields will be
-# replaced with sensible defaults when possible. This may be lossy or imprecise.
-# For example, some badly structured META.yml files on CPAN have prerequisite
-# modules listed as both keys and values:
-#
-# requires => { 'Foo::Bar' => 'Bam::Baz' }
-#
-# These would be split and each converted to a prerequisite with a minimum
-# version of zero.
-#
-# When some mandatory fields are missing or invalid, the conversion will attempt
-# to provide a sensible default or will fill them with a value of 'unknown'. For
-# example a missing or unrecognized C<license> field will result in a C<license>
-# field of 'unknown'. Fields that may get an 'unknown' include:
-#
-# =for :list
-# * abstract
-# * author
-# * license
-#
-# =cut
+#pod =method convert
+#pod
+#pod my $new_struct = $cmc->convert( version => "2" );
+#pod
+#pod Returns a new hash reference with the metadata converted to a different form.
+#pod C<convert> will die if any conversion/standardization still results in an
+#pod invalid structure.
+#pod
+#pod Valid parameters include:
+#pod
+#pod =over
+#pod
+#pod =item *
+#pod
+#pod C<version> -- Indicates the desired specification version (e.g. "1.0", "1.1" ... "1.4", "2").
+#pod Defaults to the latest version of the CPAN Meta Spec.
+#pod
+#pod =back
+#pod
+#pod Conversion proceeds through each version in turn. For example, a version 1.2
+#pod structure might be converted to 1.3 then 1.4 then finally to version 2. The
+#pod conversion process attempts to clean-up simple errors and standardize data.
+#pod For example, if C<author> is given as a scalar, it will converted to an array
+#pod reference containing the item. (Converting a structure to its own version will
+#pod also clean-up and standardize.)
+#pod
+#pod When data are cleaned and standardized, missing or invalid fields will be
+#pod replaced with sensible defaults when possible. This may be lossy or imprecise.
+#pod For example, some badly structured META.yml files on CPAN have prerequisite
+#pod modules listed as both keys and values:
+#pod
+#pod requires => { 'Foo::Bar' => 'Bam::Baz' }
+#pod
+#pod These would be split and each converted to a prerequisite with a minimum
+#pod version of zero.
+#pod
+#pod When some mandatory fields are missing or invalid, the conversion will attempt
+#pod to provide a sensible default or will fill them with a value of 'unknown'. For
+#pod example a missing or unrecognized C<license> field will result in a C<license>
+#pod field of 'unknown'. Fields that may get an 'unknown' include:
+#pod
+#pod =for :list
+#pod * abstract
+#pod * author
+#pod * license
+#pod
+#pod =cut
sub convert {
my ($self, %args) = @_;
my $args = { %args };
my $new_version = $args->{version} || $HIGHEST;
+ my $is_fragment = $args->{is_fragment};
my ($old_version) = $self->{spec};
my $converted = _dclone($self->{data});
if ( $old_version == $new_version ) {
- $converted = _convert( $converted, $cleanup{$old_version}, $old_version );
- my $cmv = CPAN::Meta::Validator->new( $converted );
- unless ( $cmv->is_valid ) {
- my $errs = join("\n", $cmv->errors);
- die "Failed to clean-up $old_version metadata. Errors:\n$errs\n";
+ $converted = _convert( $converted, $cleanup{$old_version}, $old_version, $is_fragment );
+ unless ( $args->{is_fragment} ) {
+ my $cmv = CPAN::Meta::Validator->new( $converted );
+ unless ( $cmv->is_valid ) {
+ my $errs = join("\n", $cmv->errors);
+ die "Failed to clean-up $old_version metadata. Errors:\n$errs\n";
+ }
}
return $converted;
}
@@ -1349,11 +1425,13 @@ sub convert {
next if $vers[$i] > $old_version;
last if $vers[$i+1] < $new_version;
my $spec_string = "$vers[$i+1]-from-$vers[$i]";
- $converted = _convert( $converted, $down_convert{$spec_string}, $vers[$i+1] );
- my $cmv = CPAN::Meta::Validator->new( $converted );
- unless ( $cmv->is_valid ) {
- my $errs = join("\n", $cmv->errors);
- die "Failed to downconvert metadata to $vers[$i+1]. Errors:\n$errs\n";
+ $converted = _convert( $converted, $down_convert{$spec_string}, $vers[$i+1], $is_fragment );
+ unless ( $args->{is_fragment} ) {
+ my $cmv = CPAN::Meta::Validator->new( $converted );
+ unless ( $cmv->is_valid ) {
+ my $errs = join("\n", $cmv->errors);
+ die "Failed to downconvert metadata to $vers[$i+1]. Errors:\n$errs\n";
+ }
}
}
return $converted;
@@ -1364,23 +1442,51 @@ sub convert {
next if $vers[$i] < $old_version;
last if $vers[$i+1] > $new_version;
my $spec_string = "$vers[$i+1]-from-$vers[$i]";
- $converted = _convert( $converted, $up_convert{$spec_string}, $vers[$i+1] );
- my $cmv = CPAN::Meta::Validator->new( $converted );
- unless ( $cmv->is_valid ) {
- my $errs = join("\n", $cmv->errors);
- die "Failed to upconvert metadata to $vers[$i+1]. Errors:\n$errs\n";
+ $converted = _convert( $converted, $up_convert{$spec_string}, $vers[$i+1], $is_fragment );
+ unless ( $args->{is_fragment} ) {
+ my $cmv = CPAN::Meta::Validator->new( $converted );
+ unless ( $cmv->is_valid ) {
+ my $errs = join("\n", $cmv->errors);
+ die "Failed to upconvert metadata to $vers[$i+1]. Errors:\n$errs\n";
+ }
}
}
return $converted;
}
}
+#pod =method upgrade_fragment
+#pod
+#pod my $new_struct = $cmc->upgrade_fragment;
+#pod
+#pod Returns a new hash reference with the metadata converted to the latest version
+#pod of the CPAN Meta Spec. No validation is done on the result -- you must
+#pod validate after merging fragments into a complete metadata document.
+#pod
+#pod Available since version 2.141170.
+#pod
+#pod =cut
+
+sub upgrade_fragment {
+ my ($self) = @_;
+ my ($old_version) = $self->{spec};
+ my %expected =
+ map {; $_ => 1 }
+ grep { defined }
+ map { $fragments_generate{$old_version}{$_} }
+ keys %{ $self->{data} };
+ my $converted = $self->convert( version => $HIGHEST, is_fragment => 1 );
+ for my $key ( keys %$converted ) {
+ next if $key =~ /^x_/i || $key eq 'meta-spec';
+ delete $converted->{$key} unless $expected{$key};
+ }
+ return $converted;
+}
+
1;
# ABSTRACT: Convert CPAN distribution metadata structures
-__END__
-
=pod
=encoding UTF-8
@@ -1391,7 +1497,7 @@ CPAN::Meta::Converter - Convert CPAN distribution metadata structures
=head1 VERSION
-version 2.140640
+version 2.150001
=head1 SYNOPSIS
@@ -1419,6 +1525,13 @@ The constructor should be passed a valid metadata structure but invalid
structures are accepted. If no meta-spec version is provided, version 1.0 will
be assumed.
+Optionally, you can provide a C<default_version> argument after C<$struct>:
+
+ my $cmc = CPAN::Meta::Converter->new( $struct, default_version => "1.4" );
+
+This is only needed when converting a metadata fragment that does not include a
+C<meta-spec> field.
+
=head2 convert
my $new_struct = $cmc->convert( version => "2" );
@@ -1476,6 +1589,16 @@ license
=back
+=head2 upgrade_fragment
+
+ my $new_struct = $cmc->upgrade_fragment;
+
+Returns a new hash reference with the metadata converted to the latest version
+of the CPAN Meta Spec. No validation is done on the result -- you must
+validate after merging fragments into a complete metadata document.
+
+Available since version 2.141170.
+
=head1 BUGS
Please report any bugs or feature using the CPAN Request Tracker.
@@ -1507,3 +1630,8 @@ 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
+
+__END__
+
+
+# vim: ts=2 sts=2 sw=2 et:
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/Feature.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/Feature.pm
index f97cc652e83..4bfbb19b4c7 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/Feature.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/Feature.pm
@@ -2,28 +2,29 @@ use 5.006;
use strict;
use warnings;
package CPAN::Meta::Feature;
-our $VERSION = '2.140640'; # VERSION
+
+our $VERSION = '2.150001';
use CPAN::Meta::Prereqs;
-# =head1 DESCRIPTION
-#
-# A CPAN::Meta::Feature object describes an optional feature offered by a CPAN
-# distribution and specified in the distribution's F<META.json> (or F<META.yml>)
-# file.
-#
-# For the most part, this class will only be used when operating on the result of
-# the C<feature> or C<features> methods on a L<CPAN::Meta> object.
-#
-# =method new
-#
-# my $feature = CPAN::Meta::Feature->new( $identifier => \%spec );
-#
-# This returns a new Feature object. The C<%spec> argument to the constructor
-# should be the same as the value of the C<optional_feature> entry in the
-# distmeta. It must contain entries for C<description> and C<prereqs>.
-#
-# =cut
+#pod =head1 DESCRIPTION
+#pod
+#pod A CPAN::Meta::Feature object describes an optional feature offered by a CPAN
+#pod distribution and specified in the distribution's F<META.json> (or F<META.yml>)
+#pod file.
+#pod
+#pod For the most part, this class will only be used when operating on the result of
+#pod the C<feature> or C<features> methods on a L<CPAN::Meta> object.
+#pod
+#pod =method new
+#pod
+#pod my $feature = CPAN::Meta::Feature->new( $identifier => \%spec );
+#pod
+#pod This returns a new Feature object. The C<%spec> argument to the constructor
+#pod should be the same as the value of the C<optional_feature> entry in the
+#pod distmeta. It must contain entries for C<description> and C<prereqs>.
+#pod
+#pod =cut
sub new {
my ($class, $identifier, $spec) = @_;
@@ -37,28 +38,28 @@ sub new {
bless \%guts => $class;
}
-# =method identifier
-#
-# This method returns the feature's identifier.
-#
-# =cut
+#pod =method identifier
+#pod
+#pod This method returns the feature's identifier.
+#pod
+#pod =cut
sub identifier { $_[0]{identifier} }
-# =method description
-#
-# This method returns the feature's long description.
-#
-# =cut
+#pod =method description
+#pod
+#pod This method returns the feature's long description.
+#pod
+#pod =cut
sub description { $_[0]{description} }
-# =method prereqs
-#
-# This method returns the feature's prerequisites as a L<CPAN::Meta::Prereqs>
-# object.
-#
-# =cut
+#pod =method prereqs
+#pod
+#pod This method returns the feature's prerequisites as a L<CPAN::Meta::Prereqs>
+#pod object.
+#pod
+#pod =cut
sub prereqs { $_[0]{prereqs} }
@@ -78,7 +79,7 @@ CPAN::Meta::Feature - an optional feature provided by a CPAN distribution
=head1 VERSION
-version 2.140640
+version 2.150001
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/History.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/History.pm
index 1ebf3893390..3d7e5585199 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/History.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/History.pm
@@ -3,7 +3,8 @@ use 5.006;
use strict;
use warnings;
package CPAN::Meta::History;
-our $VERSION = '2.140640'; # VERSION
+
+our $VERSION = '2.150001';
1;
@@ -21,7 +22,7 @@ CPAN::Meta::History - history of CPAN Meta Spec changes
=head1 VERSION
-version 2.140640
+version 2.150001
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_0.pod b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_0.pod
new file mode 100644
index 00000000000..1052c3eb440
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_0.pod
@@ -0,0 +1,238 @@
+=for :stopwords DOAP RDF
+
+=head1 NAME
+
+CPAN::Meta::History::Meta_1_0 - Version 1.0 metadata specification for META.yml
+
+=head1 PREFACE
+
+This is a historical copy of the version 1.0 specification for F<META.yml>
+files, copyright by Ken Williams.
+
+Modifications from the original:
+
+=over
+
+=item *
+
+Conversion from the original HTML to POD format
+
+=item *
+
+Include list of valid licenses from L<Module::Build> 0.17 rather than
+linking to the module.
+
+=back
+
+=head1 DESCRIPTION
+
+This document describes version 1.0 of the F<META.yml> specification.
+
+The META.yml file describes important properties of contributed Perl
+distributions such as the ones found on L<CPAN|http://www.cpan.org>. It is
+typically created by tools like L<Module::Build> and L<ExtUtils::MakeMaker>.
+
+The fields in the F<META.yml> file are meant to be helpful to people
+maintaining module collections (like CPAN), for people writing
+installation tools (like L<CPAN> or L<CPANPLUS>), or just people who want to
+know some stuff about a distribution before downloading it and starting to
+install it.
+
+=head1 Format
+
+F<META.yml> files are written in the L<YAML|http://www.yaml.org/> format. The
+reasons we chose YAML instead of, say, XML or Data::Dumper are discussed in
+L<this thread|http://archive.develooper.com/makemaker@perl.org/msg00405.html>
+on the MakeMaker mailing list.
+
+The first line of a F<META.yml> file should be a valid L<YAML document header|http://www.yaml.org/spec/#.Document>
+like C<"--- #YAML:1.0">
+
+=head1 Fields
+
+The rest of the META.yml file is one big YAML
+L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->,
+whose keys are described here.
+
+=over 4
+
+=item name
+
+Example: C<Module-Build>
+
+The name of the distribution. Often created by taking the "main
+module" in the distribution and changing "::" to "-". Sometimes it's
+completely different, however, as in the case of the
+L<libwww-perl|http://search.cpan.org/author/GAAS/libwww-perl/> distribution.
+
+=item version
+
+Example: C<0.16>
+
+The version of the distribution to which the META.yml file refers.
+
+=item license
+
+Example: C<perl>
+
+The license under which this distribution may be used and
+redistributed.
+
+Must be one of the following licenses:
+
+=over 4
+
+=item perl
+
+The distribution may be copied and redistributed under the same terms as perl
+itself (this is by far the most common licensing option for modules on CPAN).
+This is a dual license, in which the user may choose between either the GPL or
+the Artistic license.
+
+=item gpl
+
+The distribution is distributed under the terms of the Gnu General Public
+License (L<http://www.opensource.org/licenses/gpl-license.php>).
+
+=item lgpl
+
+The distribution is distributed under the terms of the Gnu Lesser General
+Public License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+
+=item artistic
+
+The distribution is licensed under the Artistic License, as specified by the
+Artistic file in the standard perl distribution.
+
+=item bsd
+
+The distribution is licensed under the BSD License
+(L<http://www.opensource.org/licenses/bsd-license.php>).
+
+=item open_source
+
+The distribution is licensed under some other Open Source Initiative-approved
+license listed at L<http://www.opensource.org/licenses/>.
+
+=item unrestricted
+
+The distribution is licensed under a license that is B<not> approved by
+L<www.opensource.org|http://www.opensource.org> but that allows distribution
+without restrictions.
+
+=item restrictive
+
+The distribution may not be redistributed without special permission from the
+author and/or copyright holder.
+
+=back
+
+=item distribution_type
+
+Example: C<module>
+
+What kind of stuff is contained in this distribution. Most things on
+CPAN are C<module>s (which can also mean a collection of
+modules), but some things are C<script>s.
+
+=item requires
+
+Example:
+
+ Data::Dumper: 0
+ File::Find: 1.03
+
+A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+indicating the Perl modules this distribution requires for proper
+operation. The keys are the module names, and the values are version
+specifications as described in the L<Module::Build|documentation for Module::Build's "requires" parameter>.
+
+I<Note: the exact nature of the fancy specifications like
+C<< ">= 1.2, != 1.5, < 2.0" >> is subject to
+change. Advance notice will be given here. The simple specifications
+like C<"1.2"> will not change in format.>
+
+=item recommends
+
+Example:
+
+ Data::Dumper: 0
+ File::Find: 1.03
+
+A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+indicating the Perl modules this distribution recommends for enhanced
+operation.
+
+=item build_requires
+
+Example:
+
+ Data::Dumper: 0
+ File::Find: 1.03
+
+A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+indicating the Perl modules required for building and/or testing of
+this distribution. These dependencies are not required after the
+module is installed.
+
+=item conflicts
+
+Example:
+
+ Data::Dumper: 0
+ File::Find: 1.03
+
+A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+indicating the Perl modules that cannot be installed while this
+distribution is installed. This is a pretty uncommon situation.
+
+=item dynamic_config
+
+Example: C<0>
+
+A boolean flag indicating whether a F<Build.PL> or
+F<Makefile.PL> (or similar) must be executed, or whether this
+module can be built, tested and installed solely from consulting its
+metadata file. The main reason to set this to a true value if that
+your module performs some dynamic configuration (asking questions,
+sensing the environment, etc.) as part of its build/install process.
+
+Currently L<Module::Build> doesn't actually do anything with
+this flag - it's probably going to be up to higher-level tools like
+L<CPAN|CPAN.pm> to do something useful with it. It can potentially
+bring lots of security, packaging, and convenience improvements.
+
+=item generated_by
+
+Example: C<Module::Build version 0.16>
+
+Indicates the tool that was used to create this F<META.yml> file. It's
+good form to include both the name of the tool and its version, but
+this field is essentially opaque, at least for the moment.
+
+=back
+
+=head1 Related Projects
+
+=over 4
+
+=item DOAP
+
+An RDF vocabulary to describe software projects. L<http://usefulinc.com/doap>.
+
+=back
+
+=head1 History
+
+=over 4
+
+=item *
+
+B<March 14, 2003> (Pi day) - created version 1.0 of this document.
+
+=item *
+
+B<May 8, 2003> - added the "dynamic_config" field, which was missing from the
+initial version.
+
+=back
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_1.pod b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_1.pod
new file mode 100644
index 00000000000..69f34115189
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_1.pod
@@ -0,0 +1,300 @@
+=for :stopwords Ingy READMEs WTF licensure
+
+=head1 NAME
+
+CPAN::Meta::History::Meta_1_1 - Version 1.1 metadata specification for META.yml
+
+=head1 PREFACE
+
+This is a historical copy of the version 1.1 specification for F<META.yml>
+files, copyright by Ken Williams.
+
+Modifications from the original:
+
+=over
+
+=item *
+
+Conversion from the original HTML to POD format
+
+=item *
+
+Include list of valid licenses from L<Module::Build> 0.18 rather than
+linking to the module.
+
+=back
+
+=head1 DESCRIPTION
+
+This document describes version 1.1 of the F<META.yml> specification.
+
+The F<META.yml> file describes important properties of contributed Perl
+distributions such as the ones found on L<CPAN|http://www.cpan.org>. It is
+typically created by tools like L<Module::Build> and L<ExtUtils::MakeMaker>.
+
+The fields in the F<META.yml> file are meant to be helpful to people
+maintaining module collections (like CPAN), for people writing
+installation tools (like L<CPAN> or L<CPANPLUS>), or just people who want to
+know some stuff about a distribution before downloading it and starting to
+install it.
+
+=head1 Format
+
+F<META.yml> files are written in the L<YAML|http://www.yaml.org/> format. The
+reasons we chose YAML instead of, say, XML or Data::Dumper are discussed in
+L<this thread|http://archive.develooper.com/makemaker@perl.org/msg00405.html>
+on the MakeMaker mailing list.
+
+The first line of a F<META.yml> file should be a valid L<YAML document header|http://www.yaml.org/spec/#.Document>
+like C<"--- #YAML:1.0">
+
+=head1 Fields
+
+The rest of the META.yml file is one big YAML
+L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->,
+whose keys are described here.
+
+=over 4
+
+=item name
+
+Example: C<Module-Build>
+
+The name of the distribution. Often created by taking the "main
+module" in the distribution and changing "::" to "-". Sometimes it's
+completely different, however, as in the case of the
+L<libwww-perl|http://search.cpan.org/author/GAAS/libwww-perl/> distribution.
+
+=item version
+
+Example: C<0.16>
+
+The version of the distribution to which the META.yml file refers.
+This is a mandatory field.
+
+The version is essentially an arbitrary string, but I<must> be
+only ASCII characters, and I<strongly should> be of the format
+integer-dot-digit-digit, i.e. C<25.57>, optionally followed by
+underscore-digit-digit, i.e. C<25.57_04>.
+
+The standard tools that deal with module distribution (PAUSE, CPAN,
+etc.) form an identifier for each distribution by joining the 'name'
+and 'version' attributes with a dash (C<->) character. Tools
+who are prepared to deal with distributions that have no version
+numbers generally omit the dash as well.
+
+=item license
+
+Example: C<perl>
+
+a descriptive term for the licenses ... not authoritative, but must
+be consistent with licensure statements in the READMEs, documentation, etc.
+
+The license under which this distribution may be used and
+redistributed.
+
+Must be one of the following licenses:
+
+=over 4
+
+=item perl
+
+The distribution may be copied and redistributed under the same terms as perl
+itself (this is by far the most common licensing option for modules on CPAN).
+This is a dual license, in which the user may choose between either the GPL or
+the Artistic license.
+
+=item gpl
+
+The distribution is distributed under the terms of the Gnu General Public
+License (L<http://www.opensource.org/licenses/gpl-license.php>).
+
+=item lgpl
+
+The distribution is distributed under the terms of the Gnu Lesser General
+Public License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+
+=item artistic
+
+The distribution is licensed under the Artistic License, as specified by the
+Artistic file in the standard perl distribution.
+
+=item bsd
+
+The distribution is licensed under the BSD License
+(L<http://www.opensource.org/licenses/bsd-license.php>).
+
+=item open_source
+
+The distribution is licensed under some other Open Source Initiative-approved
+license listed at L<http://www.opensource.org/licenses/>.
+
+=item unrestricted
+
+The distribution is licensed under a license that is B<not> approved by
+L<www.opensource.org|http://www.opensource.org> but that allows distribution
+without restrictions.
+
+=item restrictive
+
+The distribution may not be redistributed without special permission from the
+author and/or copyright holder.
+
+=back
+
+=item license_uri
+
+This should contain a URI where the exact terms of the license may be found.
+
+(change "unrestricted" to "redistributable"?)
+
+=item distribution_type
+
+Example: C<module>
+
+What kind of stuff is contained in this distribution. Most things on
+CPAN are C<module>s (which can also mean a collection of
+modules), but some things are C<script>s.
+
+This field is basically meaningless, and tools (like Module::Build or
+MakeMaker) will likely stop generating it in the future.
+
+=item private
+
+WTF is going on here?
+
+index_ignore: any application that indexes the contents of
+distributions (PAUSE, search.cpan.org) ought to ignore the items
+(packages, files, directories, namespace hierarchies).
+
+=item requires
+
+Example:
+
+ Data::Dumper: 0
+ File::Find: 1.03
+
+A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+indicating the Perl modules this distribution requires for proper
+operation. The keys are the module names, and the values are version
+specifications as described in the L<Module::Build|documentation for Module::Build's "requires" parameter>.
+
+I<Note: the exact nature of the fancy specifications like
+C<< ">= 1.2, != 1.5, < 2.0" >> is subject to
+change. Advance notice will be given here. The simple specifications
+like C<"1.2"> will not change in format.>
+
+=item recommends
+
+Example:
+
+ Data::Dumper: 0
+ File::Find: 1.03
+
+A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+indicating the Perl modules this distribution recommends for enhanced
+operation.
+
+=item build_requires
+
+Example:
+
+ Data::Dumper: 0
+ File::Find: 1.03
+
+A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+indicating the Perl modules required for building and/or testing of
+this distribution. These dependencies are not required after the
+module is installed.
+
+=item conflicts
+
+Example:
+
+ Data::Dumper: 0
+ File::Find: 1.03
+
+A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+indicating the Perl modules that cannot be installed while this
+distribution is installed. This is a pretty uncommon situation.
+
+- possibly separate out test-time prereqs, complications include: can
+tests be meaningfully preserved for later running? are test-time
+prereqs in addition to build-time, or exclusive?
+
+- make official location for installed *distributions*, which can
+contain tests, etc.
+
+=item dynamic_config
+
+Example: C<0>
+
+A boolean flag indicating whether a F<Build.PL> or
+F<Makefile.PL> (or similar) must be executed, or whether this
+module can be built, tested and installed solely from consulting its
+metadata file. The main reason to set this to a true value if that
+your module performs some dynamic configuration (asking questions,
+sensing the environment, etc.) as part of its build/install process.
+
+Currently L<Module::Build> doesn't actually do anything with
+this flag - it's probably going to be up to higher-level tools like
+L<CPAN|CPAN.pm> to do something useful with it. It can potentially
+bring lots of security, packaging, and convenience improvements.
+
+=item generated_by
+
+Example: C<Module::Build version 0.16>
+
+Indicates the tool that was used to create this F<META.yml> file. It's
+good form to include both the name of the tool and its version, but
+this field is essentially opaque, at least for the moment.
+
+=back
+
+=head2 Ingy's suggestions
+
+=over 4
+
+=item short_description
+
+add as field, containing abstract, maximum 80 characters, suggested minimum 40 characters
+
+=item description
+
+long version of abstract, should add?
+
+=item maturity
+
+alpha, beta, gamma, mature, stable
+
+=item author_id, owner_id
+
+=item categorization, keyword, chapter_id
+
+=item URL for further information
+
+could default to search.cpan.org on PAUSE
+
+=item namespaces
+
+can be specified for single elements by prepending
+dotted-form, i.e. "com.example.my_application.my_property". Default
+namespace for META.yml is probably "org.cpan.meta_author" or
+something. Precedent for this is Apple's Carbon namespaces, I think.
+
+=back
+
+=head1 History
+
+=over 4
+
+=item *
+
+B<March 14, 2003> (Pi day) - created version 1.0 of this document.
+
+=item *
+
+B<May 8, 2003> - added the "dynamic_config" field, which was missing from the
+initial version.
+
+=back
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_2.pod b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_2.pod
new file mode 100644
index 00000000000..69cd5bb5861
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_2.pod
@@ -0,0 +1,711 @@
+=for :stopwords MailingList RWS subcontext
+
+=head1 NAME
+
+CPAN::Meta::History::Meta_1_2 - Version 1.2 metadata specification for META.yml
+
+=head1 PREFACE
+
+This is a historical copy of the version 1.2 specification for F<META.yml>
+files, copyright by Ken Williams.
+
+Modifications from the original:
+
+=over
+
+=item *
+
+Various spelling corrections
+
+=item *
+
+Include list of valid licenses from L<Module::Build> 0.2611 rather than
+linking to the module.
+
+=back
+
+=head1 SYNOPSIS
+
+ --- #YAML:1.0
+ name: Module-Build
+ abstract: Build and install Perl modules
+ version: 0.20
+ author:
+ - Ken Williams <kwilliams@cpan.org>
+ license: perl
+ distribution_type: module
+ requires:
+ Config: 0
+ Cwd: 0
+ Data::Dumper: 0
+ ExtUtils::Install: 0
+ File::Basename: 0
+ File::Compare: 0
+ File::Copy: 0
+ File::Find: 0
+ File::Path: 0
+ File::Spec: 0
+ IO::File: 0
+ perl: 5.005_03
+ recommends:
+ Archive::Tar: 1.00
+ ExtUtils::Install: 0.3
+ ExtUtils::ParseXS: 2.02
+ Pod::Text: 0
+ YAML: 0.35
+ build_requires:
+ Test: 0
+ urls:
+ license: http://dev.perl.org/licenses/
+ meta-spec:
+ version: 1.2
+ url: http://module-build.sourceforge.net/META-spec-v1.2.html
+ generated_by: Module::Build version 0.20
+
+=head1 DESCRIPTION
+
+This document describes version 1.2 of the F<META.yml> specification.
+
+The F<META.yml> file describes important properties of contributed
+Perl distributions such as the ones found on CPAN. It is typically
+created by tools like Module::Build, Module::Install, and
+ExtUtils::MakeMaker.
+
+The fields in the F<META.yml> file are meant to be helpful for people
+maintaining module collections (like CPAN), for people writing
+installation tools (like CPAN.pm or CPANPLUS), or just for people who
+want to know some stuff about a distribution before downloading it and
+starting to install it.
+
+I<Note: The latest stable version of this specification can always be
+found at L<http://module-build.sourceforge.net/META-spec-current.html>,
+and the latest development version (which may include things that
+won't make it into the stable version can always be found at
+L<http://module-build.sourceforge.net/META-spec-blead.html>.>
+
+=head1 FORMAT
+
+F<META.yml> files are written in the YAML format (see
+L<http://www.yaml.org/>).
+
+See the following links to learn why we chose YAML instead of, say,
+XML or Data::Dumper:
+
+=over 4
+
+=item *
+
+Module::Build design plans
+
+L<http://nntp.x.perl.org/group/perl.makemaker/406>
+
+=item *
+
+Not keen on YAML
+
+L<http://nntp.x.perl.org/group/perl.module-authors/1353>
+
+=item *
+
+META Concerns
+
+L<http://nntp.x.perl.org/group/perl.module-authors/1385>
+
+=back
+
+=head1 TERMINOLOGY
+
+=over 4
+
+=item distribution
+
+This is the primary object described by the F<META.yml>
+specification. In the context of this document it usually refers to a
+collection of modules, scripts, and/or documents that are distributed
+for other developers to use.
+
+=item module
+
+This refers to a reusable library of code typically contained in a
+single file. Currently, we primarily talk of perl modules, but this
+specification should be open enough to apply to other languages as
+well (ex. python, ruby).
+
+=back
+
+=head1 VERSION SPECIFICATIONS
+
+Some fields require a version specification (ex. L<"requires">,
+L<"recommends">, L<"build_requires">, etc.). This section details the
+version specifications that are currently supported.
+
+If a single version is listed, then that version is considered to be
+the minimum version supported.
+
+If 0 is given as the version number, then any version is supported.
+
+Additionally, for more complicated requirements, the specification
+supports a list of versions, each of which may be optionally preceded
+by a relational operator.
+
+Supported operators include E<lt> (less than), E<lt>= (less than or
+equal), E<gt> (greater than), E<gt>= (greater than or equal), == (equal), and !=
+(not equal).
+
+If a list is given then it is evaluated from left to right so that any
+specifications in the list that conflict with a previous specification
+are overridden by the later.
+
+Examples:
+
+ >= 1.2, != 1.5, < 2.0
+
+Any version from version 1.2 onward, except version 1.5, that also
+precedes version 2.0.
+
+=head1 HEADER
+
+The first line of a F<META.yml> file should be a valid YAML document
+header like C<"--- #YAML:1.0">.
+
+=head1 FIELDS
+
+The rest of the F<META.yml> file is one big YAML mapping whose keys
+are described here.
+
+=head2 meta-spec
+
+Example:
+
+ meta-spec:
+ version: 1.2
+ url: http://module-build.sourceforge.net/META-spec-v1.2.html
+
+(Spec 1.1) [required] {URL} This field indicates the location of the
+version of the META.yml specification used.
+
+=head2 name
+
+Example:
+
+ name: Module-Build
+
+(Spec 1.0) [required] {string} The name of the distribution which is often
+created by taking the "main module" in the distribution and changing
+"::" to "-". Sometimes it's completely different, however, as in the
+case of the libwww-perl distribution (see
+L<http://search.cpan.org/author/GAAS/libwww-perl/>).
+
+=head2 version
+
+Example:
+
+ version: 0.20
+
+(Spec 1.0) [required] {version} The version of the distribution to which the
+F<META.yml> file refers.
+
+=head2 abstract
+
+Example:
+
+ abstract: Build and install Perl modules.
+
+(Spec 1.1) [required] {string} A short description of the purpose of the
+distribution.
+
+=head2 author
+
+Example:
+
+ author:
+ - Ken Williams <kwilliams@cpan.org>
+
+(Spec 1.1) [required] {list of strings} A YAML sequence indicating the author(s) of the
+distribution. The preferred form is author-name <email-address>.
+
+=head2 license
+
+Example:
+
+ license: perl
+
+(Spec 1.0) [required] {string} The license under which this distribution may be
+used and redistributed.
+
+Must be one of the following licenses:
+
+=over 4
+
+=item perl
+
+The distribution may be copied and redistributed under the same terms as perl
+itself (this is by far the most common licensing option for modules on CPAN).
+This is a dual license, in which the user may choose between either the GPL or
+the Artistic license.
+
+=item gpl
+
+The distribution is distributed under the terms of the Gnu General Public
+License (L<http://www.opensource.org/licenses/gpl-license.php>).
+
+=item lgpl
+
+The distribution is distributed under the terms of the Gnu Lesser General
+Public License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+
+=item artistic
+
+The distribution is licensed under the Artistic License, as specified by the
+Artistic file in the standard perl distribution.
+
+=item bsd
+
+The distribution is licensed under the BSD License
+(L<http://www.opensource.org/licenses/bsd-license.php>).
+
+=item open_source
+
+The distribution is licensed under some other Open Source Initiative-approved
+license listed at L<http://www.opensource.org/licenses/>.
+
+=item unrestricted
+
+The distribution is licensed under a license that is B<not> approved by
+L<www.opensource.org|http://www.opensource.org> but that allows distribution
+without restrictions.
+
+=item restrictive
+
+The distribution may not be redistributed without special permission from the
+author and/or copyright holder.
+
+=back
+
+=head2 distribution_type
+
+Example:
+
+ distribution_type: module
+
+(Spec 1.0) [optional] {string} What kind of stuff is contained in this
+distribution. Most things on CPAN are C<module>s (which can also mean
+a collection of modules), but some things are C<script>s.
+
+Unfortunately this field is basically meaningless, since many
+distributions are hybrids of several kinds of things, or some new
+thing, or subjectively different in focus depending on who's using
+them. Tools like Module::Build and MakeMaker will likely stop
+generating this field.
+
+=head2 requires
+
+Example:
+
+ requires:
+ Data::Dumper: 0
+ File::Find: 1.03
+
+(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules this
+distribution requires for proper operation. The keys are the module
+names, and the values are version specifications as described in
+L<Module::Build> for the "requires" parameter.
+
+=head2 recommends
+
+Example:
+
+ recommends:
+ Data::Dumper: 0
+ File::Find: 1.03
+
+(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules this
+distribution recommends for enhanced operation.
+
+I<ALTERNATIVE: It may be desirable to present to the user which
+features depend on which modules so they can make an informed
+decision about which recommended modules to install.>
+
+Example:
+
+ optional_features:
+ - foo:
+ description: Provides the ability to blah.
+ requires:
+ Data::Dumper: 0
+ File::Find: 1.03
+ - bar:
+ description: This feature is not available on this platform.
+ excludes_os: MSWin32
+
+I<(Spec 1.1) [optional] {map} A YAML sequence of names for optional features
+which are made available when its requirements are met. For each
+feature a description is provided along with any of L<"requires">,
+L<"build_requires">, L<"conflicts">, L<"requires_packages">,
+L<"requires_os">, and L<"excludes_os"> which have the same meaning in
+this subcontext as described elsewhere in this document.>
+
+=head2 build_requires
+
+Example:
+
+ build_requires:
+ Data::Dumper: 0
+ File::Find: 1.03
+
+(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules
+required for building and/or testing of this distribution. These
+dependencies are not required after the module is installed.
+
+=head2 conflicts
+
+Example:
+
+ conflicts:
+ Data::Dumper: 0
+ File::Find: 1.03
+
+(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules that
+cannot be installed while this distribution is installed. This is a
+pretty uncommon situation.
+
+=head2 dynamic_config
+
+Example:
+
+ dynamic_config: 0
+
+(Spec 1.0) [optional] {boolean} A boolean flag indicating whether a F<Build.PL>
+or F<Makefile.PL> (or similar) must be executed when building this
+distribution, or whether it can be built, tested and installed solely
+from consulting its
+metadata file. The main reason to set this to a true value if that
+your module performs some dynamic configuration (asking questions,
+sensing the environment, etc.) as part of its build/install process.
+
+Currently Module::Build doesn't actually do anything with this flag
+- it's probably going to be up to higher-level tools like CPAN
+to do something useful with it. It can potentially bring lots of
+security, packaging, and convenience improvements.
+
+If this field is omitted, it defaults to 1 (true).
+
+=head2 private
+
+I<(Deprecated)> (Spec 1.0) [optional] {map} This field has been renamed to
+L</"no_index">. See below.
+
+=head2 provides
+
+Example:
+
+ provides:
+ Foo::Bar:
+ file: lib/Foo/Bar.pm
+ version: 0.27_02
+ Foo::Bar::Blah:
+ file: lib/Foo/Bar/Blah.pm
+ Foo::Bar::Baz:
+ file: lib/Foo/Bar/Baz.pm
+ version: 0.3
+
+(Spec 1.1) [optional] {map} A YAML mapping that describes all packages
+provided by this distribution. This information can be (and, in some
+cases, is) used by distribution and automation mechanisms like PAUSE,
+CPAN, and search.cpan.org to build indexes saying in which
+distribution various packages can be found.
+
+When using tools like C<Module::Build> that can generate the
+C<provides> mapping for your distribution automatically, make sure you
+examine what it generates to make sure it makes sense - indexers will
+usually trust the C<provides> field if it's present, rather than
+scanning through the distribution files themselves to figure out
+packages and versions. This is a good thing, because it means you can
+use the C<provides> field to tell the indexers precisely what you want
+indexed about your distribution, rather than relying on them to
+essentially guess what you want indexed.
+
+=head2 no_index
+
+Example:
+
+ no_index:
+ file:
+ - My/Module.pm
+ dir:
+ - My/Private
+ package:
+ - My::Module::Stuff
+ namespace:
+ - My::Module::Stuff
+
+(Spec 1.1) [optional] {map} A YAML mapping that describes any files,
+directories, packages, and namespaces that are private
+(i.e. implementation artifacts) that are not of interest to searching
+and indexing tools. This is useful when no C<provides> field is
+present.
+
+I<(Note: I'm not actually sure who looks at this field, or exactly
+what they do with it. This spec could be off in some way from actual
+usage.)>
+
+=head3 file
+
+(Spec 1.1) [optional] Exclude any listed file(s).
+
+=head3 dir
+
+(Spec 1.1) [optional] Exclude anything below the listed
+directory(ies).
+
+=head3 package
+
+(Spec 1.1) [optional] Exclude the listed package(s).
+
+=head3 namespace
+
+(Spec 1.1) [optional] Excludes anything below the listed namespace(s),
+but I<not> the listed namespace(s) its self.
+
+=head2 keywords
+
+Example:
+
+ keywords:
+ - make
+ - build
+ - install
+
+(Spec 1.1) [optional] {list} A sequence of keywords/phrases that describe
+this distribution.
+
+=head2 resources
+
+Example:
+
+ resources:
+ license: http://dev.perl.org/licenses/
+ homepage: http://sourceforge.net/projects/module-build
+ bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Build
+ MailingList: http://lists.sourceforge.net/lists/listinfo/module-build-general
+
+(Spec 1.1) [optional] {map} A mapping of any URL resources related to
+this distribution. All-lower-case keys, such as C<homepage>,
+C<license>, and C<bugtracker>, are reserved by this specification, as
+they have "official" meanings defined here in this specification. If
+you'd like to add your own "special" entries (like the "MailingList"
+entry above), use at least one upper-case letter.
+
+The current set of official keys is:
+
+=over 2
+
+=item homepage
+
+The official home of this project on the web.
+
+=item license
+
+An URL for an official statement of this distribution's license.
+
+=item bugtracker
+
+An URL for a bug tracker (e.g. Bugzilla or RT queue) for this project.
+
+=back
+
+
+=head2 generated_by
+
+Example:
+
+ generated_by: Module::Build version 0.20
+
+(Spec 1.0) [required] {string} Indicates the tool that was used to create this
+F<META.yml> file. It's good form to include both the name of the tool
+and its version, but this field is essentially opaque, at least for
+the moment. If F<META.yml> was generated by hand, it is suggested that
+the author be specified here.
+
+[Note: My F<meta_stats.pl> script which I use to gather statistics
+regarding F<META.yml> usage prefers the form listed above, i.e. it
+splits on /\s+version\s+/ taking the first field as the name of the
+tool that generated the file and the second field as version of that
+tool. RWS]
+
+=head1 SEE ALSO
+
+CPAN, L<http://www.cpan.org/>
+
+CPAN.pm, L<http://search.cpan.org/author/ANDK/CPAN/>
+
+CPANPLUS, L<http://search.cpan.org/author/KANE/CPANPLUS/>
+
+Data::Dumper, L<http://search.cpan.org/author/ILYAM/Data-Dumper/>
+
+ExtUtils::MakeMaker, L<http://search.cpan.org/author/MSCHWERN/ExtUtils-MakeMaker/>
+
+Module::Build, L<http://search.cpan.org/author/KWILLIAMS/Module-Build/>
+
+Module::Install, L<http://search.cpan.org/author/KWILLIAMS/Module-Install/>
+
+XML, L<http://www.w3.org/XML/>
+
+YAML, L<http://www.yaml.org/>
+
+=head1 HISTORY
+
+=over 4
+
+=item March 14, 2003 (Pi day)
+
+=over 2
+
+=item *
+
+Created version 1.0 of this document.
+
+=back
+
+=item May 8, 2003
+
+=over 2
+
+=item *
+
+Added the L</"dynamic_config"> field, which was missing from the initial
+version.
+
+=back
+
+=item November 13, 2003
+
+=over 2
+
+=item *
+
+Added more YAML rationale articles.
+
+=item *
+
+Fixed existing link to YAML discussion thread to point to new
+L<http://nntp.x.perl.org/group/> site.
+
+=item *
+
+Added and deprecated the L<"private"> field.
+
+=item *
+
+Added L<"abstract">, L<"configure">, L<"requires_packages">,
+L<"requires_os">, L<"excludes_os">, and L<"no_index"> fields.
+
+=item *
+
+Bumped version.
+
+=back
+
+=item November 16, 2003
+
+=over 2
+
+=item *
+
+Added L<"generation">, L<"authored_by"> fields.
+
+=item *
+
+Add alternative proposal to the L<"recommends"> field.
+
+=item *
+
+Add proposal for a L<"requires_build_tools"> field.
+
+=back
+
+=item December 9, 2003
+
+=over 2
+
+=item *
+
+Added link to latest version of this specification on CPAN.
+
+=item *
+
+Added section L<"VERSION SPECIFICATIONS">.
+
+=item *
+
+Chang name from Module::Build::META-spec to CPAN::META::Specification.
+
+=item *
+
+Add proposal for L<"auto_regenerate"> field.
+
+=back
+
+=item December 15, 2003
+
+=over 2
+
+=item *
+
+Add L<"index"> field as a compliment to L<"no_index">
+
+=item *
+
+Add L<"keywords"> field as a means to aid searching distributions.
+
+=item *
+
+Add L<"TERMINOLOGY"> section to explain certain terms that may be
+ambiguous.
+
+=back
+
+=item July 26, 2005
+
+=over 2
+
+=item *
+
+Removed a bunch of items (generation, requires_build_tools,
+requires_packages, configure, requires_os, excludes_os,
+auto_regenerate) that have never actually been supported, but were
+more like records of brainstorming.
+
+=item *
+
+Changed C<authored_by> to C<author>, since that's always been what
+it's actually called in actual F<META.yml> files.
+
+=item *
+
+Added the "==" operator to the list of supported version-checking
+operators.
+
+=item *
+
+Noted that the C<distribution_type> field is basically meaningless,
+and shouldn't really be used.
+
+=item *
+
+Clarified C<dynamic_config> a bit.
+
+=back
+
+=item August 23, 2005
+
+=over 2
+
+=item *
+
+Removed the name C<CPAN::META::Specification>, since that implies a
+module that doesn't actually exist.
+
+=back
+
+=back
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_3.pod b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_3.pod
new file mode 100644
index 00000000000..deff28dc828
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_3.pod
@@ -0,0 +1,734 @@
+=for :stopwords MailingList PODs RWS subcontext
+
+=head1 NAME
+
+CPAN::Meta::History::Meta_1_3 - Version 1.3 metadata specification for META.yml
+
+=head1 PREFACE
+
+This is a historical copy of the version 1.3 specification for F<META.yml>
+files, copyright by Ken Williams.
+
+Modifications from the original:
+
+=over
+
+=item *
+
+Various spelling corrections
+
+=item *
+
+Include list of valid licenses from L<Module::Build> 0.2805 rather than
+linking to the module.
+
+=back
+
+=head1 SYNOPSIS
+
+ --- #YAML:1.0
+ name: Module-Build
+ abstract: Build and install Perl modules
+ version: 0.20
+ author:
+ - Ken Williams <kwilliams@cpan.org>
+ license: perl
+ distribution_type: module
+ requires:
+ Config: 0
+ Cwd: 0
+ Data::Dumper: 0
+ ExtUtils::Install: 0
+ File::Basename: 0
+ File::Compare: 0
+ File::Copy: 0
+ File::Find: 0
+ File::Path: 0
+ File::Spec: 0
+ IO::File: 0
+ perl: 5.005_03
+ recommends:
+ Archive::Tar: 1.00
+ ExtUtils::Install: 0.3
+ ExtUtils::ParseXS: 2.02
+ Pod::Text: 0
+ YAML: 0.35
+ build_requires:
+ Test: 0
+ urls:
+ license: http://dev.perl.org/licenses/
+ meta-spec:
+ version: 1.3
+ url: http://module-build.sourceforge.net/META-spec-v1.3.html
+ generated_by: Module::Build version 0.20
+
+=head1 DESCRIPTION
+
+This document describes version 1.3 of the F<META.yml> specification.
+
+The F<META.yml> file describes important properties of contributed
+Perl distributions such as the ones found on CPAN. It is typically
+created by tools like Module::Build, Module::Install, and
+ExtUtils::MakeMaker.
+
+The fields in the F<META.yml> file are meant to be helpful for people
+maintaining module collections (like CPAN), for people writing
+installation tools (like CPAN.pm or CPANPLUS), or just for people who
+want to know some stuff about a distribution before downloading it and
+starting to install it.
+
+I<Note: The latest stable version of this specification can always be
+found at L<http://module-build.sourceforge.net/META-spec-current.html>,
+and the latest development version (which may include things that
+won't make it into the stable version) can always be found at
+L<http://module-build.sourceforge.net/META-spec-blead.html>.>
+
+=head1 FORMAT
+
+F<META.yml> files are written in the YAML format (see
+L<http://www.yaml.org/>).
+
+See the following links to learn why we chose YAML instead of, say,
+XML or Data::Dumper:
+
+=over 4
+
+=item Module::Build design plans
+
+L<http://nntp.x.perl.org/group/perl.makemaker/406>
+
+=item Not keen on YAML
+
+L<http://nntp.x.perl.org/group/perl.module-authors/1353>
+
+=item META Concerns
+
+L<http://nntp.x.perl.org/group/perl.module-authors/1385>
+
+=back
+
+=head1 TERMINOLOGY
+
+=over 4
+
+=item distribution
+
+This is the primary object described by the F<META.yml>
+specification. In the context of this document it usually refers to a
+collection of modules, scripts, and/or documents that are distributed
+together for other developers to use. Examples of distributions are
+C<Class-Container>, C<libwww-perl>, or C<DBI>.
+
+=item module
+
+This refers to a reusable library of code typically contained in a
+single file. Currently, we primarily talk of perl modules, but this
+specification should be open enough to apply to other languages as
+well (ex. python, ruby). Examples of modules are C<Class::Container>,
+C<LWP::Simple>, or C<DBD::File>.
+
+=back
+
+=head1 HEADER
+
+The first line of a F<META.yml> file should be a valid YAML document
+header like C<"--- #YAML:1.0">.
+
+=head1 FIELDS
+
+The rest of the F<META.yml> file is one big YAML mapping whose keys
+are described here.
+
+=head2 meta-spec
+
+Example:
+
+ meta-spec:
+ version: 1.3
+ url: http://module-build.sourceforge.net/META-spec-v1.3.html
+
+(Spec 1.1) [required] {URL} This field indicates the location of the
+version of the META.yml specification used.
+
+=head2 name
+
+Example:
+
+ name: Module-Build
+
+(Spec 1.0) [required] {string} The name of the distribution which is often
+created by taking the "main module" in the distribution and changing
+"::" to "-". Sometimes it's completely different, however, as in the
+case of the libwww-perl distribution (see
+L<http://search.cpan.org/dist/libwww-perl/>).
+
+=head2 version
+
+Example:
+
+ version: 0.20
+
+(Spec 1.0) [required] {version} The version of the distribution to which the
+F<META.yml> file refers.
+
+=head2 abstract
+
+Example:
+
+ abstract: Build and install Perl modules.
+
+(Spec 1.1) [required] {string} A short description of the purpose of the
+distribution.
+
+=head2 author
+
+Example:
+
+ author:
+ - Ken Williams <kwilliams@cpan.org>
+
+(Spec 1.1) [required] {list of strings} A YAML sequence indicating the author(s) of the
+distribution. The preferred form is author-name <email-address>.
+
+=head2 license
+
+Example:
+
+ license: perl
+
+(Spec 1.0) [required] {string} The license under which this distribution may be
+used and redistributed.
+
+Must be one of the following licenses:
+
+=over 4
+
+=item apache
+
+The distribution is licensed under the Apache Software License
+(L<http://opensource.org/licenses/apachepl.php>).
+
+=item artistic
+
+The distribution is licensed under the Artistic License, as specified by the
+Artistic file in the standard perl distribution.
+
+=item bsd
+
+The distribution is licensed under the BSD License
+(L<http://www.opensource.org/licenses/bsd-license.php>).
+
+=item gpl
+
+The distribution is licensed under the terms of the Gnu General Public License
+(L<http://www.opensource.org/licenses/gpl-license.php>).
+
+=item lgpl
+
+The distribution is licensed under the terms of the Gnu Lesser General Public
+License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+
+=item mit
+
+The distribution is licensed under the MIT License
+(L<http://opensource.org/licenses/mit-license.php>).
+
+=item mozilla
+
+The distribution is licensed under the Mozilla Public License.
+(L<http://opensource.org/licenses/mozilla1.0.php> or
+L<http://opensource.org/licenses/mozilla1.1.php>)
+
+=item open_source
+
+The distribution is licensed under some other Open Source Initiative-approved
+license listed at L<http://www.opensource.org/licenses/>.
+
+=item perl
+
+The distribution may be copied and redistributed under the same terms as perl
+itself (this is by far the most common licensing option for modules on CPAN).
+This is a dual license, in which the user may choose between either the GPL or
+the Artistic license.
+
+=item restrictive
+
+The distribution may not be redistributed without special permission from the
+author and/or copyright holder.
+
+=item unrestricted
+
+The distribution is licensed under a license that is not approved by
+L<www.opensource.org|http://www.opensource.org/> but that allows distribution
+without restrictions.
+
+=back
+
+=head2 distribution_type
+
+Example:
+
+ distribution_type: module
+
+(Spec 1.0) [optional] {string} What kind of stuff is contained in this
+distribution. Most things on CPAN are C<module>s (which can also mean
+a collection of modules), but some things are C<script>s.
+
+Unfortunately this field is basically meaningless, since many
+distributions are hybrids of several kinds of things, or some new
+thing, or subjectively different in focus depending on who's using
+them. Tools like Module::Build and MakeMaker will likely stop
+generating this field.
+
+=head2 requires
+
+Example:
+
+ requires:
+ Data::Dumper: 0
+ File::Find: 1.03
+
+(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules this
+distribution requires for proper operation. The keys are the module
+names, and the values are version specifications as described in
+L<VERSION SPECIFICATIONS>.
+
+=head2 recommends
+
+Example:
+
+ recommends:
+ Data::Dumper: 0
+ File::Find: 1.03
+
+(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules
+this distribution recommends for enhanced operation. The keys are the
+module names, and the values are version specifications as described
+in L<VERSION SPECIFICATIONS>.
+
+
+
+I<ALTERNATIVE: It may be desirable to present to the user which
+features depend on which modules so they can make an informed decision
+about which recommended modules to install.>
+
+Example:
+
+ optional_features:
+ - foo:
+ description: Provides the ability to blah.
+ requires:
+ Data::Dumper: 0
+ File::Find: 1.03
+ - bar:
+ description: This feature is not available on this platform.
+ excludes_os: MSWin32
+
+I<(Spec 1.1) [optional] {map} A YAML sequence of names for optional features
+which are made available when its requirements are met. For each
+feature a description is provided along with any of L<"requires">,
+L<"build_requires">, L<"conflicts">, L<"requires_packages">,
+L<"requires_os">, and L<"excludes_os"> which have the same meaning in
+this subcontext as described elsewhere in this document.>
+
+=head2 build_requires
+
+Example:
+
+ build_requires:
+ Data::Dumper: 0
+ File::Find: 1.03
+
+(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules
+required for building and/or testing of this distribution. The keys
+are the module names, and the values are version specifications as
+described in L<VERSION SPECIFICATIONS>. These dependencies are not
+required after the module is installed.
+
+=head2 conflicts
+
+Example:
+
+ conflicts:
+ Data::Dumper: 0
+ File::Find: 1.03
+
+(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules that
+cannot be installed while this distribution is installed. This is a
+pretty uncommon situation. The keys for C<conflicts> are the module
+names, and the values are version specifications as described in
+L<VERSION SPECIFICATIONS>.
+
+
+=head2 dynamic_config
+
+Example:
+
+ dynamic_config: 0
+
+(Spec 1.0) [optional] {boolean} A boolean flag indicating whether a F<Build.PL>
+or F<Makefile.PL> (or similar) must be executed when building this
+distribution, or whether it can be built, tested and installed solely
+from consulting its
+metadata file. The main reason to set this to a true value is that
+your module performs some dynamic configuration (asking questions,
+sensing the environment, etc.) as part of its build/install process.
+
+Currently Module::Build doesn't actually do anything with this flag
+- it's probably going to be up to higher-level tools like CPAN
+to do something useful with it. It can potentially bring lots of
+security, packaging, and convenience improvements.
+
+If this field is omitted, it defaults to 1 (true).
+
+=head2 private
+
+I<(Deprecated)> (Spec 1.0) [optional] {map} This field has been renamed to
+L</"no_index">. See below.
+
+=head2 provides
+
+Example:
+
+ provides:
+ Foo::Bar:
+ file: lib/Foo/Bar.pm
+ version: 0.27_02
+ Foo::Bar::Blah:
+ file: lib/Foo/Bar/Blah.pm
+ Foo::Bar::Baz:
+ file: lib/Foo/Bar/Baz.pm
+ version: 0.3
+
+(Spec 1.1) [optional] {map} A YAML mapping that describes all packages
+provided by this distribution. This information can be (and, in some
+cases, is) used by distribution and automation mechanisms like PAUSE,
+CPAN, and search.cpan.org to build indexes saying in which
+distribution various packages can be found.
+
+When using tools like C<Module::Build> that can generate the
+C<provides> mapping for your distribution automatically, make sure you
+examine what it generates to make sure it makes sense - indexers will
+usually trust the C<provides> field if it's present, rather than
+scanning through the distribution files themselves to figure out
+packages and versions. This is a good thing, because it means you can
+use the C<provides> field to tell the indexers precisely what you want
+indexed about your distribution, rather than relying on them to
+essentially guess what you want indexed.
+
+=head2 no_index
+
+Example:
+
+ no_index:
+ file:
+ - My/Module.pm
+ directory:
+ - My/Private
+ package:
+ - My::Module::Stuff
+ namespace:
+ - My::Module::Stuff
+
+(Spec 1.1) [optional] {map} A YAML mapping that describes any files,
+directories, packages, and namespaces that are private
+(i.e. implementation artifacts) that are not of interest to searching
+and indexing tools. This is useful when no C<provides> field is
+present.
+
+For example, C<search.cpan.org> excludes items listed in C<no_index>
+when searching for POD, meaning files in these directories will not
+converted to HTML and made public - which is useful if you have
+example or test PODs that you don't want the search engine to go
+through.
+
+=head3 file
+
+(Spec 1.1) [optional] Exclude any listed file(s).
+
+=head3 directory
+
+(Spec 1.1) [optional] Exclude anything below the listed
+directory(ies).
+
+[Note: previous editions of the spec had C<dir> instead of
+C<directory>, but I think MakeMaker and various users started using
+C<directory>, so in deference we switched to that.]
+
+=head3 package
+
+(Spec 1.1) [optional] Exclude the listed package(s).
+
+=head3 namespace
+
+(Spec 1.1) [optional] Excludes anything below the listed namespace(s),
+but I<not> the listed namespace(s) its self.
+
+=head2 keywords
+
+Example:
+
+ keywords:
+ - make
+ - build
+ - install
+
+(Spec 1.1) [optional] {list} A sequence of keywords/phrases that describe
+this distribution.
+
+=head2 resources
+
+Example:
+
+ resources:
+ license: http://dev.perl.org/licenses/
+ homepage: http://sourceforge.net/projects/module-build
+ bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Build
+ repository: http://sourceforge.net/cvs/?group_id=45731
+ MailingList: http://lists.sourceforge.net/lists/listinfo/module-build-general
+
+(Spec 1.1) [optional] {map} A mapping of any URL resources related to
+this distribution. All-lower-case keys, such as C<homepage>,
+C<license>, and C<bugtracker>, are reserved by this specification, as
+they have "official" meanings defined here in this specification. If
+you'd like to add your own "special" entries (like the "MailingList"
+entry above), use at least one upper-case letter.
+
+The current set of official keys is:
+
+=over 2
+
+=item homepage
+
+The official home of this project on the web.
+
+=item license
+
+An URL for an official statement of this distribution's license.
+
+=item bugtracker
+
+An URL for a bug tracker (e.g. Bugzilla or RT queue) for this project.
+
+=back
+
+
+=head2 generated_by
+
+Example:
+
+ generated_by: Module::Build version 0.20
+
+(Spec 1.0) [required] {string} Indicates the tool that was used to create this
+F<META.yml> file. It's good form to include both the name of the tool
+and its version, but this field is essentially opaque, at least for
+the moment. If F<META.yml> was generated by hand, it is suggested that
+the author be specified here.
+
+[Note: My F<meta_stats.pl> script which I use to gather statistics
+regarding F<META.yml> usage prefers the form listed above, i.e. it
+splits on /\s+version\s+/ taking the first field as the name of the
+tool that generated the file and the second field as version of that
+tool. RWS]
+
+=head1 VERSION SPECIFICATIONS
+
+Some fields require a version specification (ex. L<"requires">,
+L<"recommends">, L<"build_requires">, etc.) to indicate the particular
+versionZ<>(s) of some other module that may be required as a
+prerequisite. This section details the version specification formats
+that are currently supported.
+
+The simplest format for a version specification is just the version
+number itself, e.g. C<2.4>. This means that B<at least> version 2.4
+must be present. To indicate that B<any> version of a prerequisite is
+okay, even if the prerequisite doesn't define a version at all, use
+the version C<0>.
+
+You may also use the operators E<lt> (less than), E<lt>= (less than or
+equal), E<gt> (greater than), E<gt>= (greater than or equal), ==
+(equal), and != (not equal). For example, the specification C<E<lt>
+2.0> means that any version of the prerequisite less than 2.0 is
+suitable.
+
+For more complicated situations, version specifications may be AND-ed
+together using commas. The specification C<E<gt>= 1.2, != 1.5, E<lt>
+2.0> indicates a version that must be B<at least> 1.2, B<less than>
+2.0, and B<not equal to> 1.5.
+
+=head1 SEE ALSO
+
+CPAN, L<http://www.cpan.org/>
+
+CPAN.pm, L<http://search.cpan.org/dist/CPAN/>
+
+CPANPLUS, L<http://search.cpan.org/dist/CPANPLUS/>
+
+Data::Dumper, L<http://search.cpan.org/dist/Data-Dumper/>
+
+ExtUtils::MakeMaker, L<http://search.cpan.org/dist/ExtUtils-MakeMaker/>
+
+Module::Build, L<http://search.cpan.org/dist/Module-Build/>
+
+Module::Install, L<http://search.cpan.org/dist/Module-Install/>
+
+XML, L<http://www.w3.org/XML/>
+
+YAML, L<http://www.yaml.org/>
+
+=head1 HISTORY
+
+=over 4
+
+=item March 14, 2003 (Pi day)
+
+=over 2
+
+=item *
+
+Created version 1.0 of this document.
+
+=back
+
+=item May 8, 2003
+
+=over 2
+
+=item *
+
+Added the L</"dynamic_config"> field, which was missing from the initial
+version.
+
+=back
+
+=item November 13, 2003
+
+=over 2
+
+=item *
+
+Added more YAML rationale articles.
+
+=item *
+
+Fixed existing link to YAML discussion thread to point to new
+L<http://nntp.x.perl.org/group/> site.
+
+=item *
+
+Added and deprecated the L<"private"> field.
+
+=item *
+
+Added L<"abstract">, L<"configure">, L<"requires_packages">,
+L<"requires_os">, L<"excludes_os">, and L<"no_index"> fields.
+
+=item *
+
+Bumped version.
+
+=back
+
+=item November 16, 2003
+
+=over 2
+
+=item *
+
+Added L<"generation">, L<"authored_by"> fields.
+
+=item *
+
+Add alternative proposal to the L<"recommends"> field.
+
+=item *
+
+Add proposal for a L<"requires_build_tools"> field.
+
+=back
+
+=item December 9, 2003
+
+=over 2
+
+=item *
+
+Added link to latest version of this specification on CPAN.
+
+=item *
+
+Added section L<"VERSION SPECIFICATIONS">.
+
+=item *
+
+Chang name from Module::Build::META-spec to CPAN::META::Specification.
+
+=item *
+
+Add proposal for L<"auto_regenerate"> field.
+
+=back
+
+=item December 15, 2003
+
+=over 2
+
+=item *
+
+Add L<"index"> field as a compliment to L<"no_index">
+
+=item *
+
+Add L<"keywords"> field as a means to aid searching distributions.
+
+=item *
+
+Add L<"TERMINOLOGY"> section to explain certain terms that may be
+ambiguous.
+
+=back
+
+=item July 26, 2005
+
+=over 2
+
+=item *
+
+Removed a bunch of items (generation, requires_build_tools,
+requires_packages, configure, requires_os, excludes_os,
+auto_regenerate) that have never actually been supported, but were
+more like records of brainstorming.
+
+=item *
+
+Changed C<authored_by> to C<author>, since that's always been what
+it's actually called in actual F<META.yml> files.
+
+=item *
+
+Added the "==" operator to the list of supported version-checking
+operators.
+
+=item *
+
+Noted that the C<distribution_type> field is basically meaningless,
+and shouldn't really be used.
+
+=item *
+
+Clarified C<dynamic_config> a bit.
+
+=back
+
+=item August 23, 2005
+
+=over 2
+
+=item *
+
+Removed the name C<CPAN::META::Specification>, since that implies a
+module that doesn't actually exist.
+
+=back
+
+=back
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_4.pod b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_4.pod
new file mode 100644
index 00000000000..a84fb3dd8a6
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_4.pod
@@ -0,0 +1,787 @@
+=for :stopwords MailingList PODs RWS subcontext
+
+=head1 NAME
+
+CPAN::Meta::History::Meta_1_4 - Version 1.4 metadata specification for META.yml
+
+=head1 PREFACE
+
+This is a historical copy of the version 1.4 specification for F<META.yml>
+files, copyright by Ken Williams.
+
+Modifications from the original:
+
+=over
+
+=item *
+
+Various spelling corrections
+
+=item *
+
+Include list of valid licenses from L<Module::Build> 0.2807 rather than
+linking to the module.
+
+=back
+
+=head1 SYNOPSIS
+
+ --- #YAML:1.0
+ name: Module-Build
+ abstract: Build and install Perl modules
+ version: 0.20
+ author:
+ - Ken Williams <kwilliams@cpan.org>
+ license: perl
+ distribution_type: module
+ requires:
+ Config: 0
+ Cwd: 0
+ Data::Dumper: 0
+ ExtUtils::Install: 0
+ File::Basename: 0
+ File::Compare: 0
+ File::Copy: 0
+ File::Find: 0
+ File::Path: 0
+ File::Spec: 0
+ IO::File: 0
+ perl: 5.005_03
+ recommends:
+ Archive::Tar: 1.00
+ ExtUtils::Install: 0.3
+ ExtUtils::ParseXS: 2.02
+ Pod::Text: 0
+ YAML: 0.35
+ build_requires:
+ Test: 0
+ resources:
+ license: http://dev.perl.org/licenses/
+ meta-spec:
+ version: 1.4
+ url: http://module-build.sourceforge.net/META-spec-v1.3.html
+ generated_by: Module::Build version 0.20
+
+=head1 DESCRIPTION
+
+This document describes version 1.4 of the F<META.yml> specification.
+
+The F<META.yml> file describes important properties of contributed
+Perl distributions such as the ones found on CPAN. It is typically
+created by tools like Module::Build, Module::Install, and
+ExtUtils::MakeMaker.
+
+The fields in the F<META.yml> file are meant to be helpful for people
+maintaining module collections (like CPAN), for people writing
+installation tools (like CPAN.pm or CPANPLUS), or just for people who
+want to know some stuff about a distribution before downloading it and
+starting to install it.
+
+I<Note: The latest stable version of this specification can always be
+found at L<http://module-build.sourceforge.net/META-spec-current.html>,
+and the latest development version (which may include things that
+won't make it into the stable version) can always be found at
+L<http://module-build.sourceforge.net/META-spec-blead.html>.>
+
+=begin MAINTAINER
+
+The master source for the META spec is META-spec.pod. META-spec.html
+is built (manually) from META-spec.pod whenever there are changes, and
+the two files should generally be checked in together. Ideally it
+would happen through a trigger or something, but it doesn't.
+
+Ken has a cron job that copies the latest bleeding-edge version of the
+spec (HTML version) to Sourceforge whenever his laptop is turned on:
+
+ 21 * * * * svn cat http://svn.perl.org/modules/Module-Build/trunk/website/META-spec.html \
+ | ssh kwilliams@shell.sourceforge.net \
+ 'cat > /home/groups/m/mo/module-build/htdocs/META-spec-blead.html'
+
+The numbered revisions of the spec at
+L<"http://module-build.sourceforge.net/"> are captures of the spec at
+opportune moments. A couple of symlinks also exist for convenience:
+
+ -rw-r--r-- 1 kwilliams 24585 Oct 10 17:21 META-spec-blead.html
+ lrwxrwxrwx 1 kwilliams 19 Jan 19 2007 META-spec-current.html -> META-spec-v1.3.html
+ lrwxrwxrwx 1 kwilliams 22 Jan 19 2007 META-spec.html -> META-spec-current.html
+ -rw-r--r-- 1 kwilliams 5830 Jul 25 2005 META-spec-v1.0.html
+ -rw-r--r-- 1 kwilliams 7847 Jul 25 2005 META-spec-v1.1.html
+ -rw-r--r-- 1 kwilliams 22635 Aug 23 2005 META-spec-v1.2.html
+ -rw-r--r-- 1 kwilliams 24086 Nov 4 2006 META-spec-v1.3.html
+
+=end MAINTAINER
+
+
+=head1 FORMAT
+
+F<META.yml> files are written in the YAML format (see
+L<http://www.yaml.org/>).
+
+See the following links to learn why we chose YAML instead of, say,
+XML or Data::Dumper:
+
+=over 4
+
+=item Module::Build design plans
+
+L<http://nntp.x.perl.org/group/perl.makemaker/406>
+
+=item Not keen on YAML
+
+L<http://nntp.x.perl.org/group/perl.module-authors/1353>
+
+=item META Concerns
+
+L<http://nntp.x.perl.org/group/perl.module-authors/1385>
+
+=back
+
+=head1 TERMINOLOGY
+
+=over 4
+
+=item distribution
+
+This is the primary object described by the F<META.yml>
+specification. In the context of this document it usually refers to a
+collection of modules, scripts, and/or documents that are distributed
+together for other developers to use. Examples of distributions are
+C<Class-Container>, C<libwww-perl>, or C<DBI>.
+
+=item module
+
+This refers to a reusable library of code typically contained in a
+single file. Currently, we primarily talk of perl modules, but this
+specification should be open enough to apply to other languages as
+well (ex. python, ruby). Examples of modules are C<Class::Container>,
+C<LWP::Simple>, or C<DBD::File>.
+
+=back
+
+=head1 HEADER
+
+The first line of a F<META.yml> file should be a valid YAML document
+header like C<"--- #YAML:1.0">.
+
+=head1 FIELDS
+
+The rest of the F<META.yml> file is one big YAML mapping whose keys
+are described here.
+
+=head2 meta-spec
+
+Example:
+
+ meta-spec:
+ version: 1.4
+ url: http://module-build.sourceforge.net/META-spec-v1.3.html
+
+(Spec 1.1) [required] {URL} This field indicates the location of the
+version of the META.yml specification used.
+
+=head2 name
+
+Example:
+
+ name: Module-Build
+
+(Spec 1.0) [required] {string} The name of the distribution which is often
+created by taking the "main module" in the distribution and changing
+"::" to "-". Sometimes it's completely different, however, as in the
+case of the libwww-perl distribution (see
+L<http://search.cpan.org/dist/libwww-perl/>).
+
+=head2 version
+
+Example:
+
+ version: 0.20
+
+(Spec 1.0) [required] {version} The version of the distribution to which the
+F<META.yml> file refers.
+
+=head2 abstract
+
+Example:
+
+ abstract: Build and install Perl modules.
+
+(Spec 1.1) [required] {string} A short description of the purpose of the
+distribution.
+
+=head2 author
+
+Example:
+
+ author:
+ - Ken Williams <kwilliams@cpan.org>
+
+(Spec 1.1) [required] {list of strings} A YAML sequence indicating the author(s) of the
+distribution. The preferred form is author-name <email-address>.
+
+=head2 license
+
+Example:
+
+ license: perl
+
+(Spec 1.0) [required] {string} The license under which this
+distribution may be used and redistributed.
+
+Must be one of the following licenses:
+
+=over 4
+
+=item apache
+
+The distribution is licensed under the Apache Software License
+(L<http://opensource.org/licenses/apachepl.php>).
+
+=item artistic
+
+The distribution is licensed under the Artistic License, as specified by the
+Artistic file in the standard perl distribution.
+
+=item bsd
+
+The distribution is licensed under the BSD License
+(L<http://www.opensource.org/licenses/bsd-license.php>).
+
+=item gpl
+
+The distribution is licensed under the terms of the Gnu General Public License
+(L<http://www.opensource.org/licenses/gpl-license.php>).
+
+=item lgpl
+
+The distribution is licensed under the terms of the Gnu Lesser General Public
+License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+
+=item mit
+
+The distribution is licensed under the MIT License
+(L<http://opensource.org/licenses/mit-license.php>).
+
+=item mozilla
+
+The distribution is licensed under the Mozilla Public License.
+(L<http://opensource.org/licenses/mozilla1.0.php> or
+L<http://opensource.org/licenses/mozilla1.1.php>)
+
+=item open_source
+
+The distribution is licensed under some other Open Source Initiative-approved
+license listed at L<http://www.opensource.org/licenses/>.
+
+=item perl
+
+The distribution may be copied and redistributed under the same terms as perl
+itself (this is by far the most common licensing option for modules on CPAN).
+This is a dual license, in which the user may choose between either the GPL or
+the Artistic license.
+
+=item restrictive
+
+The distribution may not be redistributed without special permission from the
+author and/or copyright holder.
+
+=item unrestricted
+
+The distribution is licensed under a license that is not approved by
+L<www.opensource.org|http://www.opensource.org/> but that allows distribution
+without restrictions.
+
+=back
+
+=head2 distribution_type
+
+Example:
+
+ distribution_type: module
+
+(Spec 1.0) [optional] {string} What kind of stuff is contained in this
+distribution. Most things on CPAN are C<module>s (which can also mean
+a collection of modules), but some things are C<script>s.
+
+Unfortunately this field is basically meaningless, since many
+distributions are hybrids of several kinds of things, or some new
+thing, or subjectively different in focus depending on who's using
+them. Tools like Module::Build and MakeMaker will likely stop
+generating this field.
+
+=head2 requires
+
+Example:
+
+ requires:
+ Data::Dumper: 0
+ File::Find: 1.03
+
+(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl
+prerequisites this distribution requires for proper operation. The
+keys are the names of the prerequisites (module names or 'perl'), and
+the values are version specifications as described in L<VERSION
+SPECIFICATIONS>.
+
+=head2 recommends
+
+Example:
+
+ recommends:
+ Data::Dumper: 0
+ File::Find: 1.03
+
+(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl
+prerequisites this distribution recommends for enhanced operation.
+The keys are the names of the prerequisites (module names or 'perl'),
+and the values are version specifications as described in L<VERSION
+SPECIFICATIONS>.
+
+
+
+I<ALTERNATIVE: It may be desirable to present to the user which
+features depend on which modules so they can make an informed decision
+about which recommended modules to install.>
+
+Example:
+
+ optional_features:
+ foo:
+ description: Provides the ability to blah.
+ requires:
+ Data::Dumper: 0
+ File::Find: 1.03
+
+I<(Spec 1.1) [optional] {map} A YAML mapping of names for optional features
+which are made available when its requirements are met. For each
+feature a description is provided along with any of L<"requires">,
+L<"build_requires">, and L<"conflicts">, which have the same meaning in
+this subcontext as described elsewhere in this document.>
+
+=head2 build_requires
+
+Example:
+
+ build_requires:
+ Data::Dumper: 0
+ File::Find: 1.03
+
+(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl
+prerequisites required for building and/or testing of this
+distribution. The keys are the names of the prerequisites (module
+names or 'perl'), and the values are version specifications as
+described in L<VERSION SPECIFICATIONS>. These dependencies are not
+required after the distribution is installed.
+
+=head2 configure_requires
+
+Example:
+
+ configure_requires:
+ Module::Build: 0.2809
+ Data::Dumper: 0
+ File::Find: 1.03
+
+(Spec 1.4) [optional] {map} A YAML mapping indicating the Perl prerequisites
+required before configuring this distribution. The keys are the
+names of the prerequisites (module names or 'perl'), and the values are version specifications as described
+in L<VERSION SPECIFICATIONS>. These dependencies are not required
+after the distribution is installed.
+
+=head2 conflicts
+
+Example:
+
+ conflicts:
+ Data::Dumper: 0
+ File::Find: 1.03
+
+(Spec 1.0) [optional] {map} A YAML mapping indicating any items that
+cannot be installed while this distribution is installed. This is a
+pretty uncommon situation. The keys for C<conflicts> are the item
+names (module names or 'perl'), and the values are version
+specifications as described in L<VERSION SPECIFICATIONS>.
+
+
+=head2 dynamic_config
+
+Example:
+
+ dynamic_config: 0
+
+(Spec 1.0) [optional] {boolean} A boolean flag indicating whether a F<Build.PL>
+or F<Makefile.PL> (or similar) must be executed when building this
+distribution, or whether it can be built, tested and installed solely
+from consulting its
+metadata file. The main reason to set this to a true value is that
+your module performs some dynamic configuration (asking questions,
+sensing the environment, etc.) as part of its build/install process.
+
+Currently Module::Build doesn't actually do anything with this flag
+- it's probably going to be up to higher-level tools like CPAN
+to do something useful with it. It can potentially bring lots of
+security, packaging, and convenience improvements.
+
+If this field is omitted, it defaults to 1 (true).
+
+=head2 private
+
+I<(Deprecated)> (Spec 1.0) [optional] {map} This field has been renamed to
+L</"no_index">. See below.
+
+=head2 provides
+
+Example:
+
+ provides:
+ Foo::Bar:
+ file: lib/Foo/Bar.pm
+ version: 0.27_02
+ Foo::Bar::Blah:
+ file: lib/Foo/Bar/Blah.pm
+ Foo::Bar::Baz:
+ file: lib/Foo/Bar/Baz.pm
+ version: 0.3
+
+(Spec 1.1) [optional] {map} A YAML mapping that describes all packages
+provided by this distribution. This information can be (and, in some
+cases, is) used by distribution and automation mechanisms like PAUSE,
+CPAN, and search.cpan.org to build indexes saying in which
+distribution various packages can be found.
+
+When using tools like C<Module::Build> that can generate the
+C<provides> mapping for your distribution automatically, make sure you
+examine what it generates to make sure it makes sense - indexers will
+usually trust the C<provides> field if it's present, rather than
+scanning through the distribution files themselves to figure out
+packages and versions. This is a good thing, because it means you can
+use the C<provides> field to tell the indexers precisely what you want
+indexed about your distribution, rather than relying on them to
+essentially guess what you want indexed.
+
+=head2 no_index
+
+Example:
+
+ no_index:
+ file:
+ - My/Module.pm
+ directory:
+ - My/Private
+ package:
+ - My::Module::Stuff
+ namespace:
+ - My::Module::Stuff
+
+(Spec 1.1) [optional] {map} A YAML mapping that describes any files,
+directories, packages, and namespaces that are private
+(i.e. implementation artifacts) that are not of interest to searching
+and indexing tools. This is useful when no C<provides> field is
+present.
+
+For example, C<search.cpan.org> excludes items listed in C<no_index>
+when searching for POD, meaning files in these directories will not
+converted to HTML and made public - which is useful if you have
+example or test PODs that you don't want the search engine to go
+through.
+
+=head3 file
+
+(Spec 1.1) [optional] Exclude any listed file(s).
+
+=head3 directory
+
+(Spec 1.1) [optional] Exclude anything below the listed
+directory(ies).
+
+[Note: previous editions of the spec had C<dir> instead of
+C<directory>, but I think MakeMaker and various users started using
+C<directory>, so in deference we switched to that.]
+
+=head3 package
+
+(Spec 1.1) [optional] Exclude the listed package(s).
+
+=head3 namespace
+
+(Spec 1.1) [optional] Excludes anything below the listed namespace(s),
+but I<not> the listed namespace(s) its self.
+
+=head2 keywords
+
+Example:
+
+ keywords:
+ - make
+ - build
+ - install
+
+(Spec 1.1) [optional] {list} A sequence of keywords/phrases that describe
+this distribution.
+
+=head2 resources
+
+Example:
+
+ resources:
+ license: http://dev.perl.org/licenses/
+ homepage: http://sourceforge.net/projects/module-build
+ bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Build
+ repository: http://sourceforge.net/cvs/?group_id=45731
+ MailingList: http://lists.sourceforge.net/lists/listinfo/module-build-general
+
+(Spec 1.1) [optional] {map} A mapping of any URL resources related to
+this distribution. All-lower-case keys, such as C<homepage>,
+C<license>, and C<bugtracker>, are reserved by this specification, as
+they have "official" meanings defined here in this specification. If
+you'd like to add your own "special" entries (like the "MailingList"
+entry above), use at least one upper-case letter.
+
+The current set of official keys is:
+
+=over 2
+
+=item homepage
+
+The official home of this project on the web.
+
+=item license
+
+An URL for an official statement of this distribution's license.
+
+=item bugtracker
+
+An URL for a bug tracker (e.g. Bugzilla or RT queue) for this project.
+
+=back
+
+
+=head2 generated_by
+
+Example:
+
+ generated_by: Module::Build version 0.20
+
+(Spec 1.0) [required] {string} Indicates the tool that was used to create this
+F<META.yml> file. It's good form to include both the name of the tool
+and its version, but this field is essentially opaque, at least for
+the moment. If F<META.yml> was generated by hand, it is suggested that
+the author be specified here.
+
+[Note: My F<meta_stats.pl> script which I use to gather statistics
+regarding F<META.yml> usage prefers the form listed above, i.e. it
+splits on /\s+version\s+/ taking the first field as the name of the
+tool that generated the file and the second field as version of that
+tool. RWS]
+
+=head1 VERSION SPECIFICATIONS
+
+Some fields require a version specification (ex. L<"requires">,
+L<"recommends">, L<"build_requires">, etc.) to indicate the particular
+versionZ<>(s) of some other module that may be required as a
+prerequisite. This section details the version specification formats
+that are currently supported.
+
+The simplest format for a version specification is just the version
+number itself, e.g. C<2.4>. This means that B<at least> version 2.4
+must be present. To indicate that B<any> version of a prerequisite is
+okay, even if the prerequisite doesn't define a version at all, use
+the version C<0>.
+
+You may also use the operators E<lt> (less than), E<lt>= (less than or
+equal), E<gt> (greater than), E<gt>= (greater than or equal), ==
+(equal), and != (not equal). For example, the specification C<E<lt>
+2.0> means that any version of the prerequisite less than 2.0 is
+suitable.
+
+For more complicated situations, version specifications may be AND-ed
+together using commas. The specification C<E<gt>= 1.2, != 1.5, E<lt>
+2.0> indicates a version that must be B<at least> 1.2, B<less than>
+2.0, and B<not equal to> 1.5.
+
+=head1 SEE ALSO
+
+CPAN, L<http://www.cpan.org/>
+
+CPAN.pm, L<http://search.cpan.org/dist/CPAN/>
+
+CPANPLUS, L<http://search.cpan.org/dist/CPANPLUS/>
+
+Data::Dumper, L<http://search.cpan.org/dist/Data-Dumper/>
+
+ExtUtils::MakeMaker, L<http://search.cpan.org/dist/ExtUtils-MakeMaker/>
+
+Module::Build, L<http://search.cpan.org/dist/Module-Build/>
+
+Module::Install, L<http://search.cpan.org/dist/Module-Install/>
+
+XML, L<http://www.w3.org/XML/>
+
+YAML, L<http://www.yaml.org/>
+
+=head1 HISTORY
+
+=over 4
+
+=item March 14, 2003 (Pi day)
+
+=over 2
+
+=item *
+
+Created version 1.0 of this document.
+
+=back
+
+=item May 8, 2003
+
+=over 2
+
+=item *
+
+Added the L</"dynamic_config"> field, which was missing from the initial
+version.
+
+=back
+
+=item November 13, 2003
+
+=over 2
+
+=item *
+
+Added more YAML rationale articles.
+
+=item *
+
+Fixed existing link to YAML discussion thread to point to new
+L<http://nntp.x.perl.org/group/> site.
+
+=item *
+
+Added and deprecated the L<"private"> field.
+
+=item *
+
+Added L<"abstract">, L<"configure">, L<"requires_packages">,
+L<"requires_os">, L<"excludes_os">, and L<"no_index"> fields.
+
+=item *
+
+Bumped version.
+
+=back
+
+=item November 16, 2003
+
+=over 2
+
+=item *
+
+Added L<"generation">, L<"authored_by"> fields.
+
+=item *
+
+Add alternative proposal to the L<"recommends"> field.
+
+=item *
+
+Add proposal for a L<"requires_build_tools"> field.
+
+=back
+
+=item December 9, 2003
+
+=over 2
+
+=item *
+
+Added link to latest version of this specification on CPAN.
+
+=item *
+
+Added section L<"VERSION SPECIFICATIONS">.
+
+=item *
+
+Chang name from Module::Build::META-spec to CPAN::META::Specification.
+
+=item *
+
+Add proposal for L<"auto_regenerate"> field.
+
+=back
+
+=item December 15, 2003
+
+=over 2
+
+=item *
+
+Add L<"index"> field as a compliment to L<"no_index">
+
+=item *
+
+Add L<"keywords"> field as a means to aid searching distributions.
+
+=item *
+
+Add L<"TERMINOLOGY"> section to explain certain terms that may be
+ambiguous.
+
+=back
+
+=item July 26, 2005
+
+=over 2
+
+=item *
+
+Removed a bunch of items (generation, requires_build_tools,
+requires_packages, configure, requires_os, excludes_os,
+auto_regenerate) that have never actually been supported, but were
+more like records of brainstorming.
+
+=item *
+
+Changed C<authored_by> to C<author>, since that's always been what
+it's actually called in actual F<META.yml> files.
+
+=item *
+
+Added the "==" operator to the list of supported version-checking
+operators.
+
+=item *
+
+Noted that the C<distribution_type> field is basically meaningless,
+and shouldn't really be used.
+
+=item *
+
+Clarified C<dynamic_config> a bit.
+
+=back
+
+=item August 23, 2005
+
+=over 2
+
+=item *
+
+Removed the name C<CPAN::META::Specification>, since that implies a
+module that doesn't actually exist.
+
+=back
+
+=item June 12, 2007
+
+=over 2
+
+=item *
+
+Added C<configure_requires>.
+
+=back
+
+=back
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/Merge.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/Merge.pm
new file mode 100644
index 00000000000..f4c12869c44
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/Merge.pm
@@ -0,0 +1,278 @@
+use strict;
+use warnings;
+
+package CPAN::Meta::Merge;
+
+our $VERSION = '2.150001';
+
+use Carp qw/croak/;
+use Scalar::Util qw/blessed/;
+use CPAN::Meta::Converter 2.141170;
+
+sub _identical {
+ my ($left, $right, $path) = @_;
+ croak sprintf "Can't merge attribute %s: '%s' does not equal '%s'", join('.', @{$path}), $left, $right unless $left eq $right;
+ return $left;
+}
+
+sub _merge {
+ my ($current, $next, $mergers, $path) = @_;
+ for my $key (keys %{$next}) {
+ if (not exists $current->{$key}) {
+ $current->{$key} = $next->{$key};
+ }
+ elsif (my $merger = $mergers->{$key}) {
+ $current->{$key} = $merger->($current->{$key}, $next->{$key}, [ @{$path}, $key ]);
+ }
+ elsif ($merger = $mergers->{':default'}) {
+ $current->{$key} = $merger->($current->{$key}, $next->{$key}, [ @{$path}, $key ]);
+ }
+ else {
+ croak sprintf "Can't merge unknown attribute '%s'", join '.', @{$path}, $key;
+ }
+ }
+ return $current;
+}
+
+sub _uniq {
+ my %seen = ();
+ return grep { not $seen{$_}++ } @_;
+}
+
+sub _set_addition {
+ my ($left, $right) = @_;
+ return [ +_uniq(@{$left}, @{$right}) ];
+}
+
+sub _uniq_map {
+ my ($left, $right, $path) = @_;
+ for my $key (keys %{$right}) {
+ if (not exists $left->{$key}) {
+ $left->{$key} = $right->{$key};
+ }
+ else {
+ croak 'Duplication of element ' . join '.', @{$path}, $key;
+ }
+ }
+ return $left;
+}
+
+sub _improvize {
+ my ($left, $right, $path) = @_;
+ my ($name) = reverse @{$path};
+ if ($name =~ /^x_/) {
+ if (ref($left) eq 'ARRAY') {
+ return _set_addition($left, $right, $path);
+ }
+ elsif (ref($left) eq 'HASH') {
+ return _uniq_map($left, $right, $path);
+ }
+ else {
+ return _identical($left, $right, $path);
+ }
+ }
+ croak sprintf "Can't merge '%s'", join '.', @{$path};
+}
+
+sub _optional_features {
+ my ($left, $right, $path) = @_;
+
+ for my $key (keys %{$right}) {
+ if (not exists $left->{$key}) {
+ $left->{$key} = $right->{$key};
+ }
+ else {
+ for my $subkey (keys %{ $right->{$key} }) {
+ next if $subkey eq 'prereqs';
+ if (not exists $left->{$key}{$subkey}) {
+ $left->{$key}{$subkey} = $right->{$key}{$subkey};
+ }
+ else {
+ Carp::croak "Cannot merge two optional_features named '$key' with different '$subkey' values"
+ if do { no warnings 'uninitialized'; $left->{$key}{$subkey} ne $right->{$key}{$subkey} };
+ }
+ }
+
+ require CPAN::Meta::Prereqs;
+ $left->{$key}{prereqs} =
+ CPAN::Meta::Prereqs->new($left->{$key}{prereqs})
+ ->with_merged_prereqs(CPAN::Meta::Prereqs->new($right->{$key}{prereqs}))
+ ->as_string_hash;
+ }
+ }
+ return $left;
+}
+
+
+my %default = (
+ abstract => \&_identical,
+ author => \&_set_addition,
+ dynamic_config => sub {
+ my ($left, $right) = @_;
+ return $left || $right;
+ },
+ generated_by => sub {
+ my ($left, $right) = @_;
+ return join ', ', _uniq(split(/, /, $left), split(/, /, $right));
+ },
+ license => \&_set_addition,
+ 'meta-spec' => {
+ version => \&_identical,
+ url => \&_identical
+ },
+ name => \&_identical,
+ release_status => \&_identical,
+ version => \&_identical,
+ description => \&_identical,
+ keywords => \&_set_addition,
+ no_index => { map { ($_ => \&_set_addition) } qw/file directory package namespace/ },
+ optional_features => \&_optional_features,
+ prereqs => sub {
+ require CPAN::Meta::Prereqs;
+ my ($left, $right) = map { CPAN::Meta::Prereqs->new($_) } @_[0,1];
+ return $left->with_merged_prereqs($right)->as_string_hash;
+ },
+ provides => \&_uniq_map,
+ resources => {
+ license => \&_set_addition,
+ homepage => \&_identical,
+ bugtracker => \&_uniq_map,
+ repository => \&_uniq_map,
+ ':default' => \&_improvize,
+ },
+ ':default' => \&_improvize,
+);
+
+sub new {
+ my ($class, %arguments) = @_;
+ croak 'default version required' if not exists $arguments{default_version};
+ my %mapping = %default;
+ my %extra = %{ $arguments{extra_mappings} || {} };
+ for my $key (keys %extra) {
+ if (ref($mapping{$key}) eq 'HASH') {
+ $mapping{$key} = { %{ $mapping{$key} }, %{ $extra{$key} } };
+ }
+ else {
+ $mapping{$key} = $extra{$key};
+ }
+ }
+ return bless {
+ default_version => $arguments{default_version},
+ mapping => _coerce_mapping(\%mapping, []),
+ }, $class;
+}
+
+my %coderef_for = (
+ set_addition => \&_set_addition,
+ uniq_map => \&_uniq_map,
+ identical => \&_identical,
+ improvize => \&_improvize,
+);
+
+sub _coerce_mapping {
+ my ($orig, $map_path) = @_;
+ my %ret;
+ for my $key (keys %{$orig}) {
+ my $value = $orig->{$key};
+ if (ref($orig->{$key}) eq 'CODE') {
+ $ret{$key} = $value;
+ }
+ elsif (ref($value) eq 'HASH') {
+ my $mapping = _coerce_mapping($value, [ @{$map_path}, $key ]);
+ $ret{$key} = sub {
+ my ($left, $right, $path) = @_;
+ return _merge($left, $right, $mapping, [ @{$path} ]);
+ };
+ }
+ elsif ($coderef_for{$value}) {
+ $ret{$key} = $coderef_for{$value};
+ }
+ else {
+ croak "Don't know what to do with " . join '.', @{$map_path}, $key;
+ }
+ }
+ return \%ret;
+}
+
+sub merge {
+ my ($self, @items) = @_;
+ my $current = {};
+ for my $next (@items) {
+ if ( blessed($next) && $next->isa('CPAN::Meta') ) {
+ $next = $next->as_struct;
+ }
+ elsif ( ref($next) eq 'HASH' ) {
+ my $cmc = CPAN::Meta::Converter->new(
+ $next, default_version => $self->{default_version}
+ );
+ $next = $cmc->upgrade_fragment;
+ }
+ else {
+ croak "Don't know how to merge '$next'";
+ }
+ $current = _merge($current, $next, $self->{mapping}, []);
+ }
+ return $current;
+}
+
+1;
+
+# ABSTRACT: Merging CPAN Meta fragments
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+CPAN::Meta::Merge - Merging CPAN Meta fragments
+
+=head1 VERSION
+
+version 2.150001
+
+=head1 SYNOPSIS
+
+ my $merger = CPAN::Meta::Merge->new(default_version => "2");
+ my $meta = $merger->merge($base, @additional);
+
+=head1 DESCRIPTION
+
+=head1 METHODS
+
+=head2 new
+
+This creates a CPAN::Meta::Merge object. It takes one mandatory named
+argument, C<version>, declaring the version of the meta-spec that must be
+used for the merge. It can optionally take an C<extra_mappings> argument
+that allows one to add additional merging functions for specific elements.
+
+=head2 merge(@fragments)
+
+Merge all C<@fragments> together. It will accept both CPAN::Meta objects and
+(possibly incomplete) hashrefs of metadata.
+
+=head1 AUTHORS
+
+=over 4
+
+=item *
+
+David Golden <dagolden@cpan.org>
+
+=item *
+
+Ricardo Signes <rjbs@cpan.org>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+
+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/Master/tlpkg/tlperl/lib/CPAN/Meta/Prereqs.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/Prereqs.pm
index b6e6c73c9e1..75035107f8c 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/Prereqs.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/Prereqs.pm
@@ -2,47 +2,48 @@ use 5.006;
use strict;
use warnings;
package CPAN::Meta::Prereqs;
-our $VERSION = '2.140640'; # VERSION
-# =head1 DESCRIPTION
-#
-# A CPAN::Meta::Prereqs object represents the prerequisites for a CPAN
-# distribution or one of its optional features. Each set of prereqs is
-# organized by phase and type, as described in L<CPAN::Meta::Prereqs>.
-#
-# =cut
+our $VERSION = '2.150001';
+
+#pod =head1 DESCRIPTION
+#pod
+#pod A CPAN::Meta::Prereqs object represents the prerequisites for a CPAN
+#pod distribution or one of its optional features. Each set of prereqs is
+#pod organized by phase and type, as described in L<CPAN::Meta::Prereqs>.
+#pod
+#pod =cut
use Carp qw(confess);
use Scalar::Util qw(blessed);
use CPAN::Meta::Requirements 2.121;
-# =method new
-#
-# my $prereq = CPAN::Meta::Prereqs->new( \%prereq_spec );
-#
-# This method returns a new set of Prereqs. The input should look like the
-# contents of the C<prereqs> field described in L<CPAN::Meta::Spec>, meaning
-# something more or less like this:
-#
-# my $prereq = CPAN::Meta::Prereqs->new({
-# runtime => {
-# requires => {
-# 'Some::Module' => '1.234',
-# ...,
-# },
-# ...,
-# },
-# ...,
-# });
-#
-# You can also construct an empty set of prereqs with:
-#
-# my $prereqs = CPAN::Meta::Prereqs->new;
-#
-# This empty set of prereqs is useful for accumulating new prereqs before finally
-# dumping the whole set into a structure or string.
-#
-# =cut
+#pod =method new
+#pod
+#pod my $prereq = CPAN::Meta::Prereqs->new( \%prereq_spec );
+#pod
+#pod This method returns a new set of Prereqs. The input should look like the
+#pod contents of the C<prereqs> field described in L<CPAN::Meta::Spec>, meaning
+#pod something more or less like this:
+#pod
+#pod my $prereq = CPAN::Meta::Prereqs->new({
+#pod runtime => {
+#pod requires => {
+#pod 'Some::Module' => '1.234',
+#pod ...,
+#pod },
+#pod ...,
+#pod },
+#pod ...,
+#pod });
+#pod
+#pod You can also construct an empty set of prereqs with:
+#pod
+#pod my $prereqs = CPAN::Meta::Prereqs->new;
+#pod
+#pod This empty set of prereqs is useful for accumulating new prereqs before finally
+#pod dumping the whole set into a structure or string.
+#pod
+#pod =cut
sub __legal_phases { qw(configure build test runtime develop) }
sub __legal_types { qw(requires recommends suggests conflicts) }
@@ -78,19 +79,19 @@ sub new {
return bless \%guts => $class;
}
-# =method requirements_for
-#
-# my $requirements = $prereqs->requirements_for( $phase, $type );
-#
-# This method returns a L<CPAN::Meta::Requirements> object for the given
-# phase/type combination. If no prerequisites are registered for that
-# combination, a new CPAN::Meta::Requirements object will be returned, and it may
-# be added to as needed.
-#
-# If C<$phase> or C<$type> are undefined or otherwise invalid, an exception will
-# be raised.
-#
-# =cut
+#pod =method requirements_for
+#pod
+#pod my $requirements = $prereqs->requirements_for( $phase, $type );
+#pod
+#pod This method returns a L<CPAN::Meta::Requirements> object for the given
+#pod phase/type combination. If no prerequisites are registered for that
+#pod combination, a new CPAN::Meta::Requirements object will be returned, and it may
+#pod be added to as needed.
+#pod
+#pod If C<$phase> or C<$type> are undefined or otherwise invalid, an exception will
+#pod be raised.
+#pod
+#pod =cut
sub requirements_for {
my ($self, $phase, $type) = @_;
@@ -113,21 +114,21 @@ sub requirements_for {
return $req;
}
-# =method with_merged_prereqs
-#
-# my $new_prereqs = $prereqs->with_merged_prereqs( $other_prereqs );
-#
-# my $new_prereqs = $prereqs->with_merged_prereqs( \@other_prereqs );
-#
-# This method returns a new CPAN::Meta::Prereqs objects in which all the
-# other prerequisites given are merged into the current set. This is primarily
-# provided for combining a distribution's core prereqs with the prereqs of one of
-# its optional features.
-#
-# The new prereqs object has no ties to the originals, and altering it further
-# will not alter them.
-#
-# =cut
+#pod =method with_merged_prereqs
+#pod
+#pod my $new_prereqs = $prereqs->with_merged_prereqs( $other_prereqs );
+#pod
+#pod my $new_prereqs = $prereqs->with_merged_prereqs( \@other_prereqs );
+#pod
+#pod This method returns a new CPAN::Meta::Prereqs objects in which all the
+#pod other prerequisites given are merged into the current set. This is primarily
+#pod provided for combining a distribution's core prereqs with the prereqs of one of
+#pod its optional features.
+#pod
+#pod The new prereqs object has no ties to the originals, and altering it further
+#pod will not alter them.
+#pod
+#pod =cut
sub with_merged_prereqs {
my ($self, $other) = @_;
@@ -158,18 +159,18 @@ sub with_merged_prereqs {
return (ref $self)->new(\%new_arg);
}
-# =method merged_requirements
-#
-# my $new_reqs = $prereqs->merged_requirements( \@phases, \@types );
-# my $new_reqs = $prereqs->merged_requirements( \@phases );
-# my $new_reqs = $preerqs->merged_requirements();
-#
-# This method joins together all requirements across a number of phases
-# and types into a new L<CPAN::Meta::Requirements> object. If arguments
-# are omitted, it defaults to "runtime", "build" and "test" for phases
-# and "requires" and "recommends" for types.
-#
-# =cut
+#pod =method merged_requirements
+#pod
+#pod my $new_reqs = $prereqs->merged_requirements( \@phases, \@types );
+#pod my $new_reqs = $prereqs->merged_requirements( \@phases );
+#pod my $new_reqs = $preerqs->merged_requirements();
+#pod
+#pod This method joins together all requirements across a number of phases
+#pod and types into a new L<CPAN::Meta::Requirements> object. If arguments
+#pod are omitted, it defaults to "runtime", "build" and "test" for phases
+#pod and "requires" and "recommends" for types.
+#pod
+#pod =cut
sub merged_requirements {
my ($self, $phases, $types) = @_;
@@ -201,13 +202,13 @@ sub merged_requirements {
}
-# =method as_string_hash
-#
-# This method returns a hashref containing structures suitable for dumping into a
-# distmeta data structure. It is made up of hashes and strings, only; there will
-# be no Prereqs, CPAN::Meta::Requirements, or C<version> objects inside it.
-#
-# =cut
+#pod =method as_string_hash
+#pod
+#pod This method returns a hashref containing structures suitable for dumping into a
+#pod distmeta data structure. It is made up of hashes and strings, only; there will
+#pod be no Prereqs, CPAN::Meta::Requirements, or C<version> objects inside it.
+#pod
+#pod =cut
sub as_string_hash {
my ($self) = @_;
@@ -226,22 +227,22 @@ sub as_string_hash {
return \%hash;
}
-# =method is_finalized
-#
-# This method returns true if the set of prereqs has been marked "finalized," and
-# cannot be altered.
-#
-# =cut
+#pod =method is_finalized
+#pod
+#pod This method returns true if the set of prereqs has been marked "finalized," and
+#pod cannot be altered.
+#pod
+#pod =cut
sub is_finalized { $_[0]{finalized} }
-# =method finalize
-#
-# Calling C<finalize> on a Prereqs object will close it for further modification.
-# Attempting to make any changes that would actually alter the prereqs will
-# result in an exception being thrown.
-#
-# =cut
+#pod =method finalize
+#pod
+#pod Calling C<finalize> on a Prereqs object will close it for further modification.
+#pod Attempting to make any changes that would actually alter the prereqs will
+#pod result in an exception being thrown.
+#pod
+#pod =cut
sub finalize {
my ($self) = @_;
@@ -253,16 +254,16 @@ sub finalize {
}
}
-# =method clone
-#
-# my $cloned_prereqs = $prereqs->clone;
-#
-# This method returns a Prereqs object that is identical to the original object,
-# but can be altered without affecting the original object. Finalization does
-# not survive cloning, meaning that you may clone a finalized set of prereqs and
-# then modify the clone.
-#
-# =cut
+#pod =method clone
+#pod
+#pod my $cloned_prereqs = $prereqs->clone;
+#pod
+#pod This method returns a Prereqs object that is identical to the original object,
+#pod but can be altered without affecting the original object. Finalization does
+#pod not survive cloning, meaning that you may clone a finalized set of prereqs and
+#pod then modify the clone.
+#pod
+#pod =cut
sub clone {
my ($self) = @_;
@@ -286,7 +287,7 @@ CPAN::Meta::Prereqs - a set of distribution prerequisites by phase and type
=head1 VERSION
-version 2.140640
+version 2.150001
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/Requirements.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/Requirements.pm
index 621550cef6a..83485594985 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/Requirements.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/Requirements.pm
@@ -1,14 +1,74 @@
use strict;
use warnings;
package CPAN::Meta::Requirements;
-our $VERSION = '2.125'; # VERSION
# ABSTRACT: a set of version requirements for a CPAN dist
+our $VERSION = '2.132';
+
+#pod =head1 SYNOPSIS
+#pod
+#pod use CPAN::Meta::Requirements;
+#pod
+#pod my $build_requires = CPAN::Meta::Requirements->new;
+#pod
+#pod $build_requires->add_minimum('Library::Foo' => 1.208);
+#pod
+#pod $build_requires->add_minimum('Library::Foo' => 2.602);
+#pod
+#pod $build_requires->add_minimum('Module::Bar' => 'v1.2.3');
+#pod
+#pod $METAyml->{build_requires} = $build_requires->as_string_hash;
+#pod
+#pod =head1 DESCRIPTION
+#pod
+#pod A CPAN::Meta::Requirements object models a set of version constraints like
+#pod those specified in the F<META.yml> or F<META.json> files in CPAN distributions,
+#pod and as defined by L<CPAN::Meta::Spec>;
+#pod It can be built up by adding more and more constraints, and it will reduce them
+#pod to the simplest representation.
+#pod
+#pod Logically impossible constraints will be identified immediately by thrown
+#pod exceptions.
+#pod
+#pod =cut
use Carp ();
-use Scalar::Util ();
-use version 0.77 (); # the ->parse method
+# To help ExtUtils::MakeMaker bootstrap CPAN::Meta::Requirements on perls
+# before 5.10, we fall back to the EUMM bundled compatibility version module if
+# that's the only thing available. This shouldn't ever happen in a normal CPAN
+# install of CPAN::Meta::Requirements, as version.pm will be picked up from
+# prereqs and be available at runtime.
+
+BEGIN {
+ eval "use version ()"; ## no critic
+ if ( my $err = $@ ) {
+ eval "use ExtUtils::MakeMaker::version" or die $err; ## no critic
+ }
+}
+
+# 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} };
+
+# construct once, reuse many times
+my $V0 = version->new(0);
+
+#pod =method new
+#pod
+#pod my $req = CPAN::Meta::Requirements->new;
+#pod
+#pod This returns a new CPAN::Meta::Requirements object. It takes an optional
+#pod hash reference argument. Currently, only one key is supported:
+#pod
+#pod =for :list
+#pod * C<bad_version_hook> -- if provided, when a version cannot be parsed into
+#pod a version object, this code reference will be called with the invalid
+#pod version string as first argument, and the module name as second
+#pod argument. It must return a valid version object.
+#pod
+#pod All other keys are ignored.
+#pod
+#pod =cut
my @valid_options = qw( bad_version_hook );
@@ -22,22 +82,60 @@ sub new {
return bless \%self => $class;
}
+# from version::vpp
+sub _find_magic_vstring {
+ my $value = shift;
+ my $tvalue = '';
+ require B;
+ my $sv = B::svref_2object(\$value);
+ my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef;
+ while ( $magic ) {
+ if ( $magic->TYPE eq 'V' ) {
+ $tvalue = $magic->PTR;
+ $tvalue =~ s/^v?(.+)$/v$1/;
+ last;
+ }
+ else {
+ $magic = $magic->MOREMAGIC;
+ }
+ }
+ return $tvalue;
+}
+
+# safe if given an unblessed reference
+sub _isa_version {
+ UNIVERSAL::isa( $_[0], 'UNIVERSAL' ) && $_[0]->isa('version')
+}
+
sub _version_object {
- my ($self, $version) = @_;
+ my ($self, $module, $version) = @_;
my $vobj;
+ # hack around version::vpp not handling <3 character vstring literals
+ if ( $INC{'version/vpp.pm'} || $INC{'ExtUtils/MakeMaker/version/vpp.pm'} ) {
+ my $magic = _find_magic_vstring( $version );
+ $version = $magic if length $magic;
+ }
+
eval {
- $vobj = (! defined $version) ? version->parse(0)
- : (! Scalar::Util::blessed($version)) ? version->parse($version)
- : $version;
+ if (not defined $version or (!ref($version) && $version eq '0')) {
+ $vobj = $V0;
+ }
+ elsif ( ref($version) eq 'version' || _isa_version($version) ) {
+ $vobj = $version;
+ }
+ else {
+ local $SIG{__WARN__} = sub { die "Invalid version: $_[0]" };
+ $vobj = version->new($version);
+ }
};
if ( my $err = $@ ) {
my $hook = $self->{bad_version_hook};
- $vobj = eval { $hook->($version) }
+ $vobj = eval { $hook->($version, $module) }
if ref $hook eq 'CODE';
- unless (Scalar::Util::blessed($vobj) && $vobj->isa("version")) {
+ unless (eval { $vobj->isa("version") }) {
$err =~ s{ at .* line \d+.*$}{};
die "Can't convert '$version': $err";
}
@@ -45,27 +143,78 @@ sub _version_object {
# ensure no leading '.'
if ( $vobj =~ m{\A\.} ) {
- $vobj = version->parse("0$vobj");
+ $vobj = version->new("0$vobj");
}
# ensure normal v-string form
- if ( $vobj->is_qv ) {
- $vobj = version->parse($vobj->normal);
+ if ( _is_qv($vobj) ) {
+ $vobj = version->new($vobj->normal);
}
return $vobj;
}
+#pod =method add_minimum
+#pod
+#pod $req->add_minimum( $module => $version );
+#pod
+#pod This adds a new minimum version requirement. If the new requirement is
+#pod redundant to the existing specification, this has no effect.
+#pod
+#pod Minimum requirements are inclusive. C<$version> is required, along with any
+#pod greater version number.
+#pod
+#pod This method returns the requirements object.
+#pod
+#pod =method add_maximum
+#pod
+#pod $req->add_maximum( $module => $version );
+#pod
+#pod This adds a new maximum version requirement. If the new requirement is
+#pod redundant to the existing specification, this has no effect.
+#pod
+#pod Maximum requirements are inclusive. No version strictly greater than the given
+#pod version is allowed.
+#pod
+#pod This method returns the requirements object.
+#pod
+#pod =method add_exclusion
+#pod
+#pod $req->add_exclusion( $module => $version );
+#pod
+#pod This adds a new excluded version. For example, you might use these three
+#pod method calls:
+#pod
+#pod $req->add_minimum( $module => '1.00' );
+#pod $req->add_maximum( $module => '1.82' );
+#pod
+#pod $req->add_exclusion( $module => '1.75' );
+#pod
+#pod Any version between 1.00 and 1.82 inclusive would be acceptable, except for
+#pod 1.75.
+#pod
+#pod This method returns the requirements object.
+#pod
+#pod =method exact_version
+#pod
+#pod $req->exact_version( $module => $version );
+#pod
+#pod This sets the version required for the given module to I<exactly> the given
+#pod version. No other version would be considered acceptable.
+#pod
+#pod This method returns the requirements object.
+#pod
+#pod =cut
BEGIN {
- for my $type (qw(minimum maximum exclusion exact_version)) {
+ for my $type (qw(maximum exclusion exact_version)) {
my $method = "with_$type";
my $to_add = $type eq 'exact_version' ? $type : "add_$type";
my $code = sub {
my ($self, $name, $version) = @_;
- $version = $self->_version_object( $version );
+ $version = $self->_version_object( $name, $version );
$self->__modify_entry_for($name, $method, $version);
@@ -77,6 +226,36 @@ BEGIN {
}
}
+sub add_minimum {
+ my ($self, $name, $version) = @_;
+
+ if (not defined $version or (!ref($version) && $version eq '0')) {
+ return $self if $self->__entry_for($name);
+ Carp::confess("can't add new requirements to finalized requirements")
+ if $self->is_finalized;
+
+ $self->{requirements}{ $name } =
+ CPAN::Meta::Requirements::_Range::Range->with_minimum($V0);
+ }
+ else {
+ $version = $self->_version_object( $name, $version );
+
+ $self->__modify_entry_for($name, 'with_minimum', $version);
+ }
+ return $self;
+}
+
+#pod =method add_requirements
+#pod
+#pod $req->add_requirements( $another_req_object );
+#pod
+#pod This method adds all the requirements in the given CPAN::Meta::Requirements object
+#pod to the requirements object on which it was called. If there are any conflicts,
+#pod an exception is thrown.
+#pod
+#pod This method returns the requirements object.
+#pod
+#pod =cut
sub add_requirements {
my ($self, $req) = @_;
@@ -92,16 +271,41 @@ sub add_requirements {
return $self;
}
+#pod =method accepts_module
+#pod
+#pod my $bool = $req->accepts_module($module => $version);
+#pod
+#pod Given an module and version, this method returns true if the version
+#pod specification for the module accepts the provided version. In other words,
+#pod given:
+#pod
+#pod Module => '>= 1.00, < 2.00'
+#pod
+#pod We will accept 1.00 and 1.75 but not 0.50 or 2.00.
+#pod
+#pod For modules that do not appear in the requirements, this method will return
+#pod true.
+#pod
+#pod =cut
sub accepts_module {
my ($self, $module, $version) = @_;
- $version = $self->_version_object( $version );
+ $version = $self->_version_object( $module, $version );
return 1 unless my $range = $self->__entry_for($module);
return $range->_accepts($version);
}
+#pod =method clear_requirement
+#pod
+#pod $req->clear_requirement( $module );
+#pod
+#pod This removes the requirement for a given module from the object.
+#pod
+#pod This method returns the requirements object.
+#pod
+#pod =cut
sub clear_requirement {
my ($self, $module) = @_;
@@ -116,6 +320,17 @@ sub clear_requirement {
return $self;
}
+#pod =method requirements_for_module
+#pod
+#pod $req->requirements_for_module( $module );
+#pod
+#pod This returns a string containing the version requirements for a given module in
+#pod the format described in L<CPAN::Meta::Spec> or undef if the given module has no
+#pod requirements. This should only be used for informational purposes such as error
+#pod messages and should not be interpreted or used for comparison (see
+#pod L</accepts_module> instead.)
+#pod
+#pod =cut
sub requirements_for_module {
my ($self, $module) = @_;
@@ -124,9 +339,23 @@ sub requirements_for_module {
return $entry->as_string;
}
+#pod =method required_modules
+#pod
+#pod This method returns a list of all the modules for which requirements have been
+#pod specified.
+#pod
+#pod =cut
sub required_modules { keys %{ $_[0]{requirements} } }
+#pod =method clone
+#pod
+#pod $req->clone;
+#pod
+#pod This method returns a clone of the invocant. The clone and the original object
+#pod can then be changed independent of one another.
+#pod
+#pod =cut
sub clone {
my ($self) = @_;
@@ -155,6 +384,12 @@ sub __modify_entry_for {
$self->{requirements}{ $name } = $new;
}
+#pod =method is_simple
+#pod
+#pod This method returns true if and only if all requirements are inclusive minimums
+#pod -- that is, if their string expression is just the version number.
+#pod
+#pod =cut
sub is_simple {
my ($self) = @_;
@@ -166,12 +401,61 @@ sub is_simple {
return 1;
}
+#pod =method is_finalized
+#pod
+#pod This method returns true if the requirements have been finalized by having the
+#pod C<finalize> method called on them.
+#pod
+#pod =cut
sub is_finalized { $_[0]{finalized} }
+#pod =method finalize
+#pod
+#pod This method marks the requirements finalized. Subsequent attempts to change
+#pod the requirements will be fatal, I<if> they would result in a change. If they
+#pod would not alter the requirements, they have no effect.
+#pod
+#pod If a finalized set of requirements is cloned, the cloned requirements are not
+#pod also finalized.
+#pod
+#pod =cut
sub finalize { $_[0]{finalized} = 1 }
+#pod =method as_string_hash
+#pod
+#pod This returns a reference to a hash describing the requirements using the
+#pod strings in the L<CPAN::Meta::Spec> specification.
+#pod
+#pod For example after the following program:
+#pod
+#pod my $req = CPAN::Meta::Requirements->new;
+#pod
+#pod $req->add_minimum('CPAN::Meta::Requirements' => 0.102);
+#pod
+#pod $req->add_minimum('Library::Foo' => 1.208);
+#pod
+#pod $req->add_maximum('Library::Foo' => 2.602);
+#pod
+#pod $req->add_minimum('Module::Bar' => 'v1.2.3');
+#pod
+#pod $req->add_exclusion('Module::Bar' => 'v1.2.8');
+#pod
+#pod $req->exact_version('Xyzzy' => '6.01');
+#pod
+#pod my $hashref = $req->as_string_hash;
+#pod
+#pod C<$hashref> would contain:
+#pod
+#pod {
+#pod 'CPAN::Meta::Requirements' => '0.102',
+#pod 'Library::Foo' => '>= 1.208, <= 2.206',
+#pod 'Module::Bar' => '>= v1.2.3, != v1.2.8',
+#pod 'Xyzzy' => '== 6.01',
+#pod }
+#pod
+#pod =cut
sub as_string_hash {
my ($self) = @_;
@@ -182,6 +466,40 @@ sub as_string_hash {
return \%hash;
}
+#pod =method add_string_requirement
+#pod
+#pod $req->add_string_requirement('Library::Foo' => '>= 1.208, <= 2.206');
+#pod $req->add_string_requirement('Library::Foo' => v1.208);
+#pod
+#pod This method parses the passed in string and adds the appropriate requirement
+#pod for the given module. A version can be a Perl "v-string". It understands
+#pod version ranges as described in the L<CPAN::Meta::Spec/Version Ranges>. For
+#pod example:
+#pod
+#pod =over 4
+#pod
+#pod =item 1.3
+#pod
+#pod =item >= 1.3
+#pod
+#pod =item <= 1.3
+#pod
+#pod =item == 1.3
+#pod
+#pod =item != 1.3
+#pod
+#pod =item > 1.3
+#pod
+#pod =item < 1.3
+#pod
+#pod =item >= 1.3, != 1.5, <= 2.0
+#pod
+#pod A version number without an operator is equivalent to specifying a minimum
+#pod (C<E<gt>=>). Extra whitespace is allowed.
+#pod
+#pod =back
+#pod
+#pod =cut
my %methods_for_op = (
'==' => [ qw(exact_version) ],
@@ -195,11 +513,18 @@ my %methods_for_op = (
sub add_string_requirement {
my ($self, $module, $req) = @_;
- Carp::confess("No requirement string provided for $module")
- unless defined $req && length $req;
+ unless ( defined $req && length $req ) {
+ $req = 0;
+ $self->_blank_carp($module);
+ }
- my @parts = split qr{\s*,\s*}, $req;
+ my $magic = _find_magic_vstring( $req );
+ if (length $magic) {
+ $self->add_minimum($module => $magic);
+ return;
+ }
+ my @parts = split qr{\s*,\s*}, $req;
for my $part (@parts) {
my ($op, $ver) = $part =~ m{\A\s*(==|>=|>|<=|<|!=)\s*(.*)\z};
@@ -215,17 +540,35 @@ sub add_string_requirement {
}
}
+#pod =method from_string_hash
+#pod
+#pod my $req = CPAN::Meta::Requirements->from_string_hash( \%hash );
+#pod my $req = CPAN::Meta::Requirements->from_string_hash( \%hash, \%opts );
+#pod
+#pod This is an alternate constructor for a CPAN::Meta::Requirements
+#pod object. It takes a hash of module names and version requirement
+#pod strings and returns a new CPAN::Meta::Requirements object. As with
+#pod add_string_requirement, a version can be a Perl "v-string". Optionally,
+#pod you can supply a hash-reference of options, exactly as with the L</new>
+#pod method.
+#pod
+#pod =cut
+
+sub _blank_carp {
+ my ($self, $module) = @_;
+ Carp::carp("Undefined requirement for $module treated as '0'");
+}
sub from_string_hash {
- my ($class, $hash) = @_;
+ my ($class, $hash, $options) = @_;
- my $self = $class->new;
+ my $self = $class->new($options);
for my $module (keys %$hash) {
my $req = $hash->{$module};
unless ( defined $req && length $req ) {
$req = 0;
- Carp::carp("Undefined requirement for $module treated as '0'");
+ $class->_blank_carp($module);
}
$self->add_string_requirement($module, $req);
}
@@ -436,7 +779,7 @@ __END__
=pod
-=encoding utf-8
+=encoding UTF-8
=head1 NAME
@@ -444,7 +787,7 @@ CPAN::Meta::Requirements - a set of version requirements for a CPAN dist
=head1 VERSION
-version 2.125
+version 2.132
=head1 SYNOPSIS
@@ -463,7 +806,8 @@ version 2.125
=head1 DESCRIPTION
A CPAN::Meta::Requirements object models a set of version constraints like
-those specified in the F<META.yml> or F<META.json> files in CPAN distributions.
+those specified in the F<META.yml> or F<META.json> files in CPAN distributions,
+and as defined by L<CPAN::Meta::Spec>;
It can be built up by adding more and more constraints, and it will reduce them
to the simplest representation.
@@ -477,16 +821,13 @@ exceptions.
my $req = CPAN::Meta::Requirements->new;
This returns a new CPAN::Meta::Requirements object. It takes an optional
-hash reference argument. The following keys are supported:
+hash reference argument. Currently, only one key is supported:
=over 4
=item *
-<bad_version_hook> -- if provided, when a version cannot be parsed into
-
-a version object, this code reference will be called with the invalid version
-string as an argument. It must return a valid version object.
+C<bad_version_hook> -- if provided, when a version cannot be parsed into a version object, this code reference will be called with the invalid version string as first argument, and the module name as second argument. It must return a valid version object.
=back
@@ -554,7 +895,7 @@ This method returns the requirements object.
=head2 accepts_module
- my $bool = $req->accepts_modules($module => $version);
+ my $bool = $req->accepts_module($module => $version);
Given an module and version, this method returns true if the version
specification for the module accepts the provided version. In other words,
@@ -619,7 +960,7 @@ also finalized.
=head2 as_string_hash
This returns a reference to a hash describing the requirements using the
-strings in the F<META.yml> specification.
+strings in the L<CPAN::Meta::Spec> specification.
For example after the following program:
@@ -651,10 +992,12 @@ C<$hashref> would contain:
=head2 add_string_requirement
$req->add_string_requirement('Library::Foo' => '>= 1.208, <= 2.206');
+ $req->add_string_requirement('Library::Foo' => v1.208);
This method parses the passed in string and adds the appropriate requirement
-for the given module. It understands version ranges as described in the
-L<CPAN::Meta::Spec/Version Ranges>. For example:
+for the given module. A version can be a Perl "v-string". It understands
+version ranges as described in the L<CPAN::Meta::Spec/Version Ranges>. For
+example:
=over 4
@@ -682,10 +1025,14 @@ A version number without an operator is equivalent to specifying a minimum
=head2 from_string_hash
my $req = CPAN::Meta::Requirements->from_string_hash( \%hash );
+ my $req = CPAN::Meta::Requirements->from_string_hash( \%hash, \%opts );
-This is an alternate constructor for a CPAN::Meta::Requirements object. It takes
-a hash of module names and version requirement strings and returns a new
-CPAN::Meta::Requirements object.
+This is an alternate constructor for a CPAN::Meta::Requirements
+object. It takes a hash of module names and version requirement
+strings and returns a new CPAN::Meta::Requirements object. As with
+add_string_requirement, a version can be a Perl "v-string". Optionally,
+you can supply a hash-reference of options, exactly as with the L</new>
+method.
=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan
@@ -720,6 +1067,30 @@ Ricardo Signes <rjbs@cpan.org>
=back
+=head1 CONTRIBUTORS
+
+=for stopwords Ed J Karen Etheridge Leon Timmermans robario
+
+=over 4
+
+=item *
+
+Ed J <mohawk2@users.noreply.github.com>
+
+=item *
+
+Karen Etheridge <ether@cpan.org>
+
+=item *
+
+Leon Timmermans <fawaka@gmail.com>
+
+=item *
+
+robario <webmaster@robario.com>
+
+=back
+
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by David Golden and Ricardo Signes.
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/Spec.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/Spec.pm
index 1ec27af25e9..ec68f178edf 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/Spec.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/Spec.pm
@@ -7,7 +7,8 @@ use 5.006;
use strict;
use warnings;
package CPAN::Meta::Spec;
-our $VERSION = '2.140640'; # VERSION
+
+our $VERSION = '2.150001';
1;
@@ -28,7 +29,7 @@ CPAN::Meta::Spec - specification for CPAN distribution metadata
=head1 VERSION
-version 2.140640
+version 2.150001
=head1 SYNOPSIS
@@ -289,11 +290,17 @@ etc.) as part of its configuration. This field should be set to a false
value to indicate that prerequisites included in metadata may be
considered final and valid for static analysis.
+Note: when this field is true, post-configuration prerequisites are not
+guaranteed to bear any relation whatsoever to those stated in the metadata,
+and relying on them doing so is an error. See also
+L</Prerequisites for dynamically configured distributions> in the implementors'
+notes.
+
This field explicitly B<does not> indicate whether installation may be
safely performed without using a Makefile or Build file, as there may be
special files to install or custom installation targets (e.g. for
dual-life modules that exist on CPAN as well as in the Perl core). This
-field only defines whether prerequisites are complete as given in the
+field only defines whether or not prerequisites are exactly as given in the
metadata.
=head3 generated_by
@@ -520,7 +527,10 @@ Example:
This Map describes any files, directories, packages, and namespaces that
are private to the packaging or implementation of the distribution and
-should be ignored by indexing or search tools.
+should be ignored by indexing or search tools. Note that this is a list of
+exclusions, and the spec does not define what to I<include> - see
+L</Indexing distributions a la PAUSE> in the implementors notes for more
+information.
Valid subkeys are as follows:
@@ -690,7 +700,8 @@ have a Map with the following valid subkeys:
This field is required. It must contain a Unix-style relative file path
from the root of the distribution directory to a file that contains or
-generates the package.
+generates the package. It may be given as C<META.yml> or C<META.json>
+to claim a package for indexing without needing a C<*.pm>.
=item version
@@ -1103,6 +1114,52 @@ and version prerequisite C<$prereq>:
If the values of C<$mod> and C<$prereq> have not been scrubbed, however,
this presents security implications.
+=head2 Prerequisites for dynamically configured distributions
+
+When C<dynamic_config> is true, it is an error to presume that the
+prerequisites given in distribution metadata will have any relationship
+whatsoever to the actual prerequisites of the distribution.
+
+In practice, however, one can generally expect such prerequisites to be
+one of two things:
+
+=over 4
+
+=item *
+
+The minimum prerequisites for the distribution, to which dynamic configuration will only add items
+
+=item *
+
+Whatever the distribution configured with on the releaser's machine at release time
+
+=back
+
+The second case often turns out to have identical results to the first case,
+albeit only by accident.
+
+As such, consumers may use this data for informational analysis, but
+presenting it to the user as canonical or relying on it as such is
+invariably the height of folly.
+
+=head2 Indexing distributions a la PAUSE
+
+While no_index tells you what must be ignored when indexing, this spec holds
+no opinion on how you should get your initial candidate list of things to
+possibly index. For "normal" distributions you might consider simply indexing
+the contents of lib/, but there are many fascinating oddities on CPAN and
+many dists from the days when it was normal to put the main .pm file in the
+root of the distribution archive - so PAUSE currently indexes all .pm and .PL
+files that are not either (a) specifically excluded by no_index (b) in
+C<inc>, C<xt>, or C<t> directories, or common 'mistake' directories such as
+C<perl5>.
+
+Or: If you're trying to be PAUSE-like, make sure you skip C<inc>, C<xt> and
+C<t> as well as anything marked as no_index.
+
+Also remember: If the META file contains a provides field, you shouldn't be
+indexing anything in the first place - just use that.
+
=head1 SEE ALSO
=over 4
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/Validator.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/Validator.pm
index f8b2fcaf303..cc0409e6e48 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/Validator.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/Validator.pm
@@ -2,26 +2,27 @@ use 5.006;
use strict;
use warnings;
package CPAN::Meta::Validator;
-our $VERSION = '2.140640'; # VERSION
-
-# =head1 SYNOPSIS
-#
-# my $struct = decode_json_file('META.json');
-#
-# my $cmv = CPAN::Meta::Validator->new( $struct );
-#
-# unless ( $cmv->is_valid ) {
-# my $msg = "Invalid META structure. Errors found:\n";
-# $msg .= join( "\n", $cmv->errors );
-# die $msg;
-# }
-#
-# =head1 DESCRIPTION
-#
-# This module validates a CPAN Meta structure against the version of the
-# the specification claimed in the C<meta-spec> field of the structure.
-#
-# =cut
+
+our $VERSION = '2.150001';
+
+#pod =head1 SYNOPSIS
+#pod
+#pod my $struct = decode_json_file('META.json');
+#pod
+#pod my $cmv = CPAN::Meta::Validator->new( $struct );
+#pod
+#pod unless ( $cmv->is_valid ) {
+#pod my $msg = "Invalid META structure. Errors found:\n";
+#pod $msg .= join( "\n", $cmv->errors );
+#pod die $msg;
+#pod }
+#pod
+#pod =head1 DESCRIPTION
+#pod
+#pod This module validates a CPAN Meta structure against the version of the
+#pod the specification claimed in the C<meta-spec> field of the structure.
+#pod
+#pod =cut
#--------------------------------------------------------------------------#
# This code copied and adapted from Test::CPAN::Meta
@@ -437,13 +438,13 @@ my %definitions = (
# Code
#--------------------------------------------------------------------------#
-# =method new
-#
-# my $cmv = CPAN::Meta::Validator->new( $struct )
-#
-# The constructor must be passed a metadata structure.
-#
-# =cut
+#pod =method new
+#pod
+#pod my $cmv = CPAN::Meta::Validator->new( $struct )
+#pod
+#pod The constructor must be passed a metadata structure.
+#pod
+#pod =cut
sub new {
my ($class,$data) = @_;
@@ -459,16 +460,16 @@ sub new {
return bless $self, $class;
}
-# =method is_valid
-#
-# if ( $cmv->is_valid ) {
-# ...
-# }
-#
-# Returns a boolean value indicating whether the metadata provided
-# is valid.
-#
-# =cut
+#pod =method is_valid
+#pod
+#pod if ( $cmv->is_valid ) {
+#pod ...
+#pod }
+#pod
+#pod Returns a boolean value indicating whether the metadata provided
+#pod is valid.
+#pod
+#pod =cut
sub is_valid {
my $self = shift;
@@ -478,13 +479,13 @@ sub is_valid {
return ! $self->errors;
}
-# =method errors
-#
-# warn( join "\n", $cmv->errors );
-#
-# Returns a list of errors seen during validation.
-#
-# =cut
+#pod =method errors
+#pod
+#pod warn( join "\n", $cmv->errors );
+#pod
+#pod Returns a list of errors seen during validation.
+#pod
+#pod =cut
sub errors {
my $self = shift;
@@ -492,31 +493,31 @@ sub errors {
return @{$self->{errors}};
}
-# =begin :internals
-#
-# =head2 Check Methods
-#
-# =over
-#
-# =item *
-#
-# check_map($spec,$data)
-#
-# Checks whether a map (or hash) part of the data structure conforms to the
-# appropriate specification definition.
-#
-# =item *
-#
-# check_list($spec,$data)
-#
-# Checks whether a list (or array) part of the data structure conforms to
-# the appropriate specification definition.
-#
-# =item *
-#
-# =back
-#
-# =cut
+#pod =begin :internals
+#pod
+#pod =head2 Check Methods
+#pod
+#pod =over
+#pod
+#pod =item *
+#pod
+#pod check_map($spec,$data)
+#pod
+#pod Checks whether a map (or hash) part of the data structure conforms to the
+#pod appropriate specification definition.
+#pod
+#pod =item *
+#pod
+#pod check_list($spec,$data)
+#pod
+#pod Checks whether a list (or array) part of the data structure conforms to
+#pod the appropriate specification definition.
+#pod
+#pod =item *
+#pod
+#pod =back
+#pod
+#pod =cut
my $spec_error = "Missing validation action in specification. "
. "Must be one of 'map', 'list', or 'value'";
@@ -606,113 +607,113 @@ sub check_list {
}
}
-# =head2 Validator Methods
-#
-# =over
-#
-# =item *
-#
-# header($self,$key,$value)
-#
-# Validates that the header is valid.
-#
-# Note: No longer used as we now read the data structure, not the file.
-#
-# =item *
-#
-# url($self,$key,$value)
-#
-# Validates that a given value is in an acceptable URL format
-#
-# =item *
-#
-# urlspec($self,$key,$value)
-#
-# Validates that the URL to a META specification is a known one.
-#
-# =item *
-#
-# string_or_undef($self,$key,$value)
-#
-# Validates that the value is either a string or an undef value. Bit of a
-# catchall function for parts of the data structure that are completely user
-# defined.
-#
-# =item *
-#
-# string($self,$key,$value)
-#
-# Validates that a string exists for the given key.
-#
-# =item *
-#
-# file($self,$key,$value)
-#
-# Validate that a file is passed for the given key. This may be made more
-# thorough in the future. For now it acts like \&string.
-#
-# =item *
-#
-# exversion($self,$key,$value)
-#
-# Validates a list of versions, e.g. '<= 5, >=2, ==3, !=4, >1, <6, 0'.
-#
-# =item *
-#
-# version($self,$key,$value)
-#
-# Validates a single version string. Versions of the type '5.8.8' and '0.00_00'
-# are both valid. A leading 'v' like 'v1.2.3' is also valid.
-#
-# =item *
-#
-# boolean($self,$key,$value)
-#
-# Validates for a boolean value. Currently these values are '1', '0', 'true',
-# 'false', however the latter 2 may be removed.
-#
-# =item *
-#
-# license($self,$key,$value)
-#
-# Validates that a value is given for the license. Returns 1 if an known license
-# type, or 2 if a value is given but the license type is not a recommended one.
-#
-# =item *
-#
-# custom_1($self,$key,$value)
-#
-# Validates that the given key is in CamelCase, to indicate a user defined
-# keyword and only has characters in the class [-_a-zA-Z]. In version 1.X
-# of the spec, this was only explicitly stated for 'resources'.
-#
-# =item *
-#
-# custom_2($self,$key,$value)
-#
-# Validates that the given key begins with 'x_' or 'X_', to indicate a user
-# defined keyword and only has characters in the class [-_a-zA-Z]
-#
-# =item *
-#
-# identifier($self,$key,$value)
-#
-# Validates that key is in an acceptable format for the META specification,
-# for an identifier, i.e. any that matches the regular expression
-# qr/[a-z][a-z_]/i.
-#
-# =item *
-#
-# module($self,$key,$value)
-#
-# Validates that a given key is in an acceptable module name format, e.g.
-# 'Test::CPAN::Meta::Version'.
-#
-# =back
-#
-# =end :internals
-#
-# =cut
+#pod =head2 Validator Methods
+#pod
+#pod =over
+#pod
+#pod =item *
+#pod
+#pod header($self,$key,$value)
+#pod
+#pod Validates that the header is valid.
+#pod
+#pod Note: No longer used as we now read the data structure, not the file.
+#pod
+#pod =item *
+#pod
+#pod url($self,$key,$value)
+#pod
+#pod Validates that a given value is in an acceptable URL format
+#pod
+#pod =item *
+#pod
+#pod urlspec($self,$key,$value)
+#pod
+#pod Validates that the URL to a META specification is a known one.
+#pod
+#pod =item *
+#pod
+#pod string_or_undef($self,$key,$value)
+#pod
+#pod Validates that the value is either a string or an undef value. Bit of a
+#pod catchall function for parts of the data structure that are completely user
+#pod defined.
+#pod
+#pod =item *
+#pod
+#pod string($self,$key,$value)
+#pod
+#pod Validates that a string exists for the given key.
+#pod
+#pod =item *
+#pod
+#pod file($self,$key,$value)
+#pod
+#pod Validate that a file is passed for the given key. This may be made more
+#pod thorough in the future. For now it acts like \&string.
+#pod
+#pod =item *
+#pod
+#pod exversion($self,$key,$value)
+#pod
+#pod Validates a list of versions, e.g. '<= 5, >=2, ==3, !=4, >1, <6, 0'.
+#pod
+#pod =item *
+#pod
+#pod version($self,$key,$value)
+#pod
+#pod Validates a single version string. Versions of the type '5.8.8' and '0.00_00'
+#pod are both valid. A leading 'v' like 'v1.2.3' is also valid.
+#pod
+#pod =item *
+#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
+#pod =item *
+#pod
+#pod license($self,$key,$value)
+#pod
+#pod Validates that a value is given for the license. Returns 1 if an known license
+#pod type, or 2 if a value is given but the license type is not a recommended one.
+#pod
+#pod =item *
+#pod
+#pod custom_1($self,$key,$value)
+#pod
+#pod Validates that the given key is in CamelCase, to indicate a user defined
+#pod keyword and only has characters in the class [-_a-zA-Z]. In version 1.X
+#pod of the spec, this was only explicitly stated for 'resources'.
+#pod
+#pod =item *
+#pod
+#pod custom_2($self,$key,$value)
+#pod
+#pod Validates that the given key begins with 'x_' or 'X_', to indicate a user
+#pod defined keyword and only has characters in the class [-_a-zA-Z]
+#pod
+#pod =item *
+#pod
+#pod identifier($self,$key,$value)
+#pod
+#pod Validates that key is in an acceptable format for the META specification,
+#pod for an identifier, i.e. any that matches the regular expression
+#pod qr/[a-z][a-z_]/i.
+#pod
+#pod =item *
+#pod
+#pod module($self,$key,$value)
+#pod
+#pod Validates that a given key is in an acceptable module name format, e.g.
+#pod 'Test::CPAN::Meta::Version'.
+#pod
+#pod =back
+#pod
+#pod =end :internals
+#pod
+#pod =cut
sub header {
my ($self,$key,$value) = @_;
@@ -997,7 +998,7 @@ CPAN::Meta::Validator - validate CPAN distribution metadata structures
=head1 VERSION
-version 2.140640
+version 2.150001
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Module.pm b/Master/tlpkg/tlperl/lib/CPAN/Module.pm
index 2c0c71ae7d1..bf1226c0f04 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Module.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Module.pm
@@ -7,7 +7,7 @@ use strict;
use vars qw(
$VERSION
);
-$VERSION = "5.5001";
+$VERSION = "5.5002";
BEGIN {
# alarm() is not implemented in perl 5.6.x and earlier under Windows
@@ -543,9 +543,18 @@ sub uptodate {
# returns true if installed in privlib or archlib
sub _in_priv_or_arch {
my($self,$inst_file) = @_;
- for my $confdirname (qw(archlibexp privlibexp)) {
- my $confdir = $Config::Config{$confdirname};
- if ($confdir eq substr($inst_file,0,length($confdir))) {
+ foreach my $pair (
+ [qw(sitearchexp archlibexp)],
+ [qw(sitelibexp privlibexp)]
+ ) {
+ my ($site, $priv) = @Config::Config{@$pair};
+ if ($^O eq 'VMS') {
+ for my $d ($site, $priv) { $d = VMS::Filespec::unixify($d) };
+ }
+ s!/*$!!g foreach $site, $priv;
+ next if $site eq $priv;
+
+ if ($priv eq substr($inst_file,0,length($priv))) {
return 1;
}
}
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Plugin.pm b/Master/tlpkg/tlperl/lib/CPAN/Plugin.pm
new file mode 100644
index 00000000000..646d86b2cc9
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/CPAN/Plugin.pm
@@ -0,0 +1,145 @@
+package CPAN::Plugin;
+
+use strict;
+use warnings;
+
+our $VERSION = '0.95';
+
+require CPAN;
+
+######################################################################
+
+sub new { # ;
+ my ($class, %params) = @_;
+
+ my $self = +{
+ (ref $class ? (%$class) : ()),
+ %params,
+ };
+
+ $self = bless $self, ref $class ? ref $class : $class;
+
+ unless (ref $class) {
+ local $_;
+ no warnings 'once';
+ $CPAN::META->use_inst ($_) for $self->plugin_requires;
+ }
+
+ $self;
+}
+
+######################################################################
+sub plugin_requires { # ;
+}
+
+######################################################################
+sub distribution_object { # ;
+ my ($self) = @_;
+ $self->{distribution_object};
+}
+
+######################################################################
+sub distribution { # ;
+ my ($self) = @_;
+
+ my $distribution = $self->distribution_object->id;
+ CPAN::Shell->expand("Distribution",$distribution)
+ or $self->frontend->mydie("Unknowns distribution '$distribution'\n");
+}
+
+######################################################################
+sub distribution_info { # ;
+ my ($self) = @_;
+
+ CPAN::DistnameInfo->new ($self->distribution->id);
+}
+
+######################################################################
+sub build_dir { # ;
+ my ($self) = @_;
+
+ my $build_dir = $self->distribution->{build_dir}
+ or $self->frontend->mydie("Distribution has not been built yet, cannot proceed");
+}
+
+######################################################################
+sub is_xs { #
+ my ($self) = @_;
+
+ my @xs = glob File::Spec->catfile ($self->build_dir, '*.xs'); # quick try
+
+ unless (@xs) {
+ require ExtUtils::Manifest;
+ my $manifest_file = File::Spec->catfile ($self->build_dir, "MANIFEST");
+ my $manifest = ExtUtils::Manifest::maniread($manifest_file);
+ @xs = grep /\.xs$/, keys %$manifest;
+ }
+
+ scalar @xs;
+}
+
+######################################################################
+
+package CPAN::Plugin;
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+CPAN::Plugin - Base class for CPAN shell extensions
+
+=head1 SYNOPSIS
+
+ package My::Plugin;
+ use base 'CPAN::Plugin';
+
+ sub post_test {
+ my ($self, $distribution_object) = @_;
+ $self = $self->new (distribution_object => $distribution_object);
+ ...;
+ }
+
+=head1 DESCRIPTION
+
+=head2 Alpha Status
+
+The plugin system in the CPAN shell was introduced in version 2.07 and
+is still considered experimental.
+
+=head2 How Plugins work?
+
+See L<CPAN/"Plugin support">.
+
+=head1 METHODS
+
+=head2 plugin_requires
+
+returns list of packages given plugin requires for functionality.
+This list is evaluated using C<CPAN->use_inst> method.
+
+=head2 distribution_object
+
+Get current distribution object.
+
+=head2 distribution
+
+=head2 distribution_info
+
+=head2 build_dir
+
+Simple delegatees for misc parameters derived from distribution
+
+=head2 is_xs
+
+Predicate to detect whether package contains XS.
+
+=head1 AUTHOR
+
+Branislav Zahradnik <barney@cpan.org>
+
+=cut
+
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Plugin/Specfile.pm b/Master/tlpkg/tlperl/lib/CPAN/Plugin/Specfile.pm
new file mode 100644
index 00000000000..f63d322c74f
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/CPAN/Plugin/Specfile.pm
@@ -0,0 +1,258 @@
+=head1 NAME
+
+CPAN::Plugin::Specfile - Proof of concept implementation of a trivial CPAN::Plugin
+
+=head1 SYNOPSIS
+
+ # once in the cpan shell
+ o conf plugin_list push CPAN::Plugin::Specfile
+
+ # make permanent
+ o conf commit
+
+ # any time in the cpan shell to write a spec file
+ test Acme::Meta
+
+ # disable
+ o conf plugin_list pop
+
+=head1 DESCRIPTION
+
+Implemented as a post-test hook, this plugin writes a specfile after
+every successful test run. The content is also written to the
+terminal.
+
+As a side effect, the timestamps of the written specfiles reflect the
+linear order of all dependencies.
+
+B<WARNING:> This code is just a small demo how to use the plugin
+system of the CPAN shell, not a full fledged spec file writer. Do not
+expect new features in this plugin.
+
+=head2 OPTIONS
+
+The target directory to store the spec files in can be set using C<dir>
+as in
+
+ o conf plugin_list push CPAN::Plugin::Specfile=dir,/tmp/specfiles-000042
+
+The default directory for this is the
+C<plugins/CPAN::Plugin::Specfile> directory in the I<cpan_home>
+directory.
+
+=head1 AUTHOR
+
+Andreas Koenig <andk@cpan.org>, Branislav Zahradnik <barney@cpan.org>
+
+=cut
+
+package CPAN::Plugin::Specfile;
+
+our $VERSION = '0.01';
+
+use File::Path;
+use File::Spec;
+
+sub __accessor {
+ my ($class, $key) = @_;
+ no strict 'refs';
+ *{$class . '::' . $key} = sub {
+ my $self = shift;
+ if (@_) {
+ $self->{$key} = shift;
+ }
+ return $self->{$key};
+ };
+}
+BEGIN { __PACKAGE__->__accessor($_) for qw(dir dir_default) }
+
+sub new {
+ my($class, @rest) = @_;
+ my $self = bless {}, $class;
+ while (my($arg,$val) = splice @rest, 0, 2) {
+ $self->$arg($val);
+ }
+ $self->dir_default(File::Spec->catdir($CPAN::Config->{cpan_home},"plugins",__PACKAGE__));
+ $self;
+}
+
+sub post_test {
+ my $self = shift;
+ my $distribution_object = shift;
+ my $distribution = $distribution_object->pretty_id;
+ unless ($CPAN::META->has_inst("CPAN::DistnameInfo")){
+ $CPAN::Frontend->mydie("CPAN::DistnameInfo not installed; cannot continue");
+ }
+ my $d = CPAN::Shell->expand("Distribution",$distribution)
+ or $CPAN::Frontend->mydie("Unknowns distribution '$distribution'\n");
+ my $build_dir = $d->{build_dir} or $CPAN::Frontend->mydie("Distribution has not been built yet, cannot proceed");
+ my %contains = map {($_ => undef)} $d->containsmods;
+ my @m;
+ my $width = 16;
+ my $header = sub {
+ my($header,$value) = @_;
+ push @m, sprintf("%-s:%*s%s\n", $header, $width-length($header), "", $value);
+ };
+ my $dni = CPAN::DistnameInfo->new($distribution);
+ my $dist = $dni->dist;
+ my $summary = CPAN::Shell->_guess_manpage($d,\%contains,$dist);
+ $header->("Name", "perl-$dist");
+ my $version = $dni->version;
+ $header->("Version", $version);
+ $header->("Release", "1%{?dist}");
+#Summary: Template processing system
+#Group: Development/Libraries
+#License: GPL+ or Artistic
+#URL: http://www.template-toolkit.org/
+#Source0: http://search.cpan.org/CPAN/authors/id/A/AB/ABW/Template-Toolkit-%{version}.tar.gz
+#Patch0: Template-2.22-SREZIC-01.patch
+#BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+ for my $h_tuple
+ ([Summary => $summary],
+ [Group => "Development/Libraries"],
+ [License =>],
+ [URL =>],
+ [BuildRoot => "%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)"],
+ [Requires => "perl(:MODULE_COMPAT_%(eval \"`%{__perl} -V:version`\"; echo \$version))"],
+ ) {
+ my($h,$v) = @$h_tuple;
+ $v = "unknown" unless defined $v;
+ $header->($h, $v);
+ }
+ $header->("Source0", sprintf(
+ "http://search.cpan.org/CPAN/authors/id/%s/%s/%s",
+ substr($distribution,0,1),
+ substr($distribution,0,2),
+ $distribution
+ ));
+ require POSIX;
+ my @xs = glob "$build_dir/*.xs"; # quick try
+ unless (@xs) {
+ require ExtUtils::Manifest;
+ my $manifest_file = "$build_dir/MANIFEST";
+ my $manifest = ExtUtils::Manifest::maniread($manifest_file);
+ @xs = grep /\.xs$/, keys %$manifest;
+ }
+ if (! @xs) {
+ $header->('BuildArch', 'noarch');
+ }
+ for my $k (sort keys %contains) {
+ my $m = CPAN::Shell->expand("Module",$k);
+ my $v = $contains{$k} = $m->cpan_version;
+ my $vspec = $v eq "undef" ? "" : " = $v";
+ $header->("Provides", "perl($k)$vspec");
+ }
+ if (my $prereq_pm = $d->{prereq_pm}) {
+ my %req;
+ for my $reqkey (keys %$prereq_pm) {
+ while (my($k,$v) = each %{$prereq_pm->{$reqkey}}) {
+ $req{$k} = $v;
+ }
+ }
+ if (-e "$build_dir/Build.PL" && ! exists $req{"Module::Build"}) {
+ $req{"Module::Build"} = 0;
+ }
+ for my $k (sort keys %req) {
+ next if $k eq "perl";
+ my $v = $req{$k};
+ my $vspec = defined $v && length $v && $v > 0 ? " >= $v" : "";
+ $header->(BuildRequires => "perl($k)$vspec");
+ next if $k =~ /^(Module::Build)$/; # MB is always only a
+ # BuildRequires; if we
+ # turn it into a
+ # Requires, then we
+ # would have to make it
+ # a BuildRequires
+ # everywhere we depend
+ # on *one* MB built
+ # module.
+ $header->(Requires => "perl($k)$vspec");
+ }
+ }
+ push @m, "\n%define _use_internal_dependency_generator 0
+%define __find_requires %{nil}
+%define __find_provides %{nil}
+";
+ push @m, "\n%description\n%{summary}.\n";
+ push @m, "\n%prep\n%setup -q -n $dist-%{version}\n";
+ if (-e "$build_dir/Build.PL") {
+ # see http://www.redhat.com/archives/rpm-list/2002-July/msg00110.html about RPM_BUILD_ROOT vs %{buildroot}
+ push @m, <<'EOF';
+
+%build
+%{__perl} Build.PL --installdirs=vendor --libdoc installvendorman3dir
+./Build
+
+%install
+rm -rf $RPM_BUILD_ROOT
+./Build install destdir=$RPM_BUILD_ROOT create_packlist=0
+find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null \;
+%{_fixperms} $RPM_BUILD_ROOT/*
+
+%check
+./Build test
+EOF
+ } elsif (-e "$build_dir/Makefile.PL") {
+ push @m, <<'EOF';
+
+%build
+%{__perl} Makefile.PL INSTALLDIRS=vendor
+make %{?_smp_mflags}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make pure_install DESTDIR=$RPM_BUILD_ROOT
+find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';'
+find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null ';'
+%{_fixperms} $RPM_BUILD_ROOT/*
+
+%check
+make test
+EOF
+ } else {
+ $CPAN::Frontend->mydie("'$distribution' has neither a Build.PL nor a Makefile.PL\n");
+ }
+ push @m, "\n%clean\nrm -rf \$RPM_BUILD_ROOT\n";
+ my $vendorlib = @xs ? "vendorarch" : "vendorlib";
+ my $date = POSIX::strftime("%a %b %d %Y", gmtime);
+ my @doc = grep { -e "$build_dir/$_" } qw(README Changes);
+ my $exe_stanza = "\n";
+ if (my $exe_files = $d->_exe_files) {
+ if (@$exe_files) {
+ $exe_stanza = "%{_mandir}/man1/*.1*\n";
+ for my $e (@$exe_files) {
+ unless (CPAN->has_inst("File::Basename")) {
+ $CPAN::Frontend->mydie("File::Basename not installed, cannot continue");
+ }
+ my $basename = File::Basename::basename($e);
+ $exe_stanza .= "/usr/bin/$basename\n";
+ }
+ }
+ }
+ push @m, <<EOF;
+
+%files
+%defattr(-,root,root,-)
+%doc @doc
+%{perl_$vendorlib}/*
+%{_mandir}/man3/*.3*
+$exe_stanza
+%changelog
+* $date <specfile\@specfile.cpan.org> - $version-1
+- autogenerated by CPAN::Plugin::Specfile()
+
+EOF
+
+ my $ret = join "", @m;
+ $CPAN::Frontend->myprint($ret);
+ my $target_dir = $self->dir || $self->dir_default;
+ File::Path::mkpath($target_dir);
+ my $outfile = File::Spec->catfile($target_dir, "perl-$dist.spec");
+ open my $specout, ">", $outfile
+ or $CPAN::Frontend->mydie("Could not open >$outfile: $!");
+ print $specout $ret;
+ $CPAN::Frontend->myprint("Wrote $outfile");
+ $ret;
+}
+
+1;
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Shell.pm b/Master/tlpkg/tlperl/lib/CPAN/Shell.pm
index 9e0bb14a2b8..43e2fb9fa0b 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Shell.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Shell.pm
@@ -47,7 +47,7 @@ use vars qw(
"CPAN/Tarzip.pm",
"CPAN/Version.pm",
);
-$VERSION = "5.5004";
+$VERSION = "5.5005";
# record the initial timestamp for reload.
$reload = { map {$INC{$_} ? ($_,(stat $INC{$_})[9]) : ()} @relo };
@CPAN::Shell::ISA = qw(CPAN::Debug);
@@ -374,6 +374,9 @@ sub o {
if (!@o_what or $cfilter) { # print all things, "o conf"
$cfilter ||= "";
my $qrfilter = eval 'qr/$cfilter/';
+ if ($@) {
+ $CPAN::Frontend->mydie("Cannot parse commandline: $@");
+ }
my($k,$v);
my $configpm = CPAN::HandleConfig->require_myconfig_or_config;
$CPAN::Frontend->myprint("\$CPAN::Config options from $configpm\:\n");
@@ -794,177 +797,7 @@ sub _guess_manpage {
#-> sub CPAN::Shell::_specfile ;
sub _specfile {
- my $self = shift;
- my $distribution = shift;
- unless ($CPAN::META->has_inst("CPAN::DistnameInfo")){
- $CPAN::Frontend->mydie("CPAN::DistnameInfo not installed; cannot continue");
- }
- my $d = CPAN::Shell->expand("Distribution",$distribution)
- or $CPAN::Frontend->mydie("Unknowns distribution '$distribution'\n");
- my $build_dir = $d->{build_dir} or $CPAN::Frontend->mydie("Distribution has not been built yet, cannot proceed");
- my %contains = map {($_ => undef)} $d->containsmods;
- my @m;
- my $width = 16;
- my $header = sub {
- my($header,$value) = @_;
- push @m, sprintf("%-s:%*s%s\n", $header, $width-length($header), "", $value);
- };
- my $dni = CPAN::DistnameInfo->new($distribution);
- my $dist = $dni->dist;
- my $summary = $self->_guess_manpage($d,\%contains,$dist);
- $header->("Name", "perl-$dist");
- my $version = $dni->version;
- $header->("Version", $version);
- $header->("Release", "1%{?dist}");
-#Summary: Template processing system
-#Group: Development/Libraries
-#License: GPL+ or Artistic
-#URL: http://www.template-toolkit.org/
-#Source0: http://search.cpan.org/CPAN/authors/id/A/AB/ABW/Template-Toolkit-%{version}.tar.gz
-#Patch0: Template-2.22-SREZIC-01.patch
-#BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
- for my $h_tuple
- ([Summary => $summary],
- [Group => "Development/Libraries"],
- [License =>],
- [URL =>],
- [BuildRoot => "%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)"],
- [Requires => "perl(:MODULE_COMPAT_%(eval \"`%{__perl} -V:version`\"; echo \$version))"],
- ) {
- my($h,$v) = @$h_tuple;
- $v = "unknown" unless defined $v;
- $header->($h, $v);
- }
- $header->("Source0", sprintf(
- "http://search.cpan.org/CPAN/authors/id/%s/%s/%s",
- substr($distribution,0,1),
- substr($distribution,0,2),
- $distribution
- ));
- require POSIX;
- my @xs = glob "$build_dir/*.xs"; # quick try
- unless (@xs) {
- require ExtUtils::Manifest;
- my $manifest_file = "$build_dir/MANIFEST";
- my $manifest = ExtUtils::Manifest::maniread($manifest_file);
- @xs = grep /\.xs$/, keys %$manifest;
- }
- if (! @xs) {
- $header->('BuildArch', 'noarch');
- }
- for my $k (sort keys %contains) {
- my $m = CPAN::Shell->expand("Module",$k);
- my $v = $contains{$k} = $m->cpan_version;
- my $vspec = $v eq "undef" ? "" : " = $v";
- $header->("Provides", "perl($k)$vspec");
- }
- if (my $prereq_pm = $d->{prereq_pm}) {
- my %req;
- for my $reqkey (keys %$prereq_pm) {
- while (my($k,$v) = each %{$prereq_pm->{$reqkey}}) {
- $req{$k} = $v;
- }
- }
- if (-e "$build_dir/Build.PL" && ! exists $req{"Module::Build"}) {
- $req{"Module::Build"} = 0;
- }
- for my $k (sort keys %req) {
- next if $k eq "perl";
- my $v = $req{$k};
- my $vspec = defined $v && length $v && $v > 0 ? " >= $v" : "";
- $header->(BuildRequires => "perl($k)$vspec");
- next if $k =~ /^(Module::Build)$/; # MB is always only a
- # BuildRequires; if we
- # turn it into a
- # Requires, then we
- # would have to make it
- # a BuildRequires
- # everywhere we depend
- # on *one* MB built
- # module.
- $header->(Requires => "perl($k)$vspec");
- }
- }
- push @m, "\n%define _use_internal_dependency_generator 0
-%define __find_requires %{nil}
-%define __find_provides %{nil}
-";
- push @m, "\n%description\n%{summary}.\n";
- push @m, "\n%prep\n%setup -q -n $dist-%{version}\n";
- if (-e "$build_dir/Build.PL") {
- # see http://www.redhat.com/archives/rpm-list/2002-July/msg00110.html about RPM_BUILD_ROOT vs %{buildroot}
- push @m, <<'EOF';
-
-%build
-%{__perl} Build.PL --installdirs=vendor --libdoc installvendorman3dir
-./Build
-
-%install
-rm -rf $RPM_BUILD_ROOT
-./Build install destdir=$RPM_BUILD_ROOT create_packlist=0
-find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null \;
-%{_fixperms} $RPM_BUILD_ROOT/*
-
-%check
-./Build test
-EOF
- } elsif (-e "$build_dir/Makefile.PL") {
- push @m, <<'EOF';
-
-%build
-%{__perl} Makefile.PL INSTALLDIRS=vendor
-make %{?_smp_mflags}
-
-%install
-rm -rf $RPM_BUILD_ROOT
-make pure_install DESTDIR=$RPM_BUILD_ROOT
-find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';'
-find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null ';'
-%{_fixperms} $RPM_BUILD_ROOT/*
-
-%check
-make test
-EOF
- } else {
- $CPAN::Frontend->mydie("'$distribution' has neither a Build.PL nor a Makefile.PL\n");
- }
- push @m, "\n%clean\nrm -rf \$RPM_BUILD_ROOT\n";
- my $vendorlib = @xs ? "vendorarch" : "vendorlib";
- my $date = POSIX::strftime("%a %b %d %Y", gmtime);
- my @doc = grep { -e "$build_dir/$_" } qw(README Changes);
- my $exe_stanza = "\n";
- if (my $exe_files = $d->_exe_files) {
- if (@$exe_files) {
- $exe_stanza = "%{_mandir}/man1/*.1*\n";
- for my $e (@$exe_files) {
- unless (CPAN->has_inst("File::Basename")) {
- $CPAN::Frontend->mydie("File::Basename not installed, cannot continue");
- }
- my $basename = File::Basename::basename($e);
- $exe_stanza .= "/usr/bin/$basename\n";
- }
- }
- }
- push @m, <<EOF;
-
-%files
-%defattr(-,root,root,-)
-%doc @doc
-%{perl_$vendorlib}/*
-%{_mandir}/man3/*.3*
-$exe_stanza
-%changelog
-* $date <akoenig\@specfile.cpan.org> - $version-1
-- autogenerated by _specfile() in CPAN.pm
-
-EOF
-
- my $ret = join "", @m;
- $CPAN::Frontend->myprint($ret);
- open my $specout, ">", "perl-$dist.spec" or die;
- print $specout $ret;
- $CPAN::Frontend->myprint("Wrote perl-$dist.spec");
- $ret;
+ die "CPAN::Shell::_specfile() has been moved to CPAN::Plugin::Specfile::post_test()";
}
#-> sub CPAN::Shell::report ;
diff --git a/Master/tlpkg/tlperl/lib/Carp.pm b/Master/tlpkg/tlperl/lib/Carp.pm
index e1dca01e52c..5b191ebfe25 100644
--- a/Master/tlpkg/tlperl/lib/Carp.pm
+++ b/Master/tlpkg/tlperl/lib/Carp.pm
@@ -87,7 +87,7 @@ BEGIN {
}
}
-our $VERSION = '1.3301';
+our $VERSION = '1.36';
our $MaxEvalLen = 0;
our $Verbose = 0;
@@ -299,12 +299,32 @@ sub format_arg {
next;
}
my $o = ord($c);
- substr $arg, $i, 1, sprintf("\\x{%x}", $o)
- if $o < 0x20 || $o > 0x7f;
+
+ # This code is repeated in Regexp::CARP_TRACE()
+ if ($] ge 5.007_003) {
+ substr $arg, $i, 1, sprintf("\\x{%x}", $o)
+ if utf8::native_to_unicode($o) < utf8::native_to_unicode(0x20)
+ || utf8::native_to_unicode($o) > utf8::native_to_unicode(0x7e);
+ } elsif (ord("A") == 65) {
+ substr $arg, $i, 1, sprintf("\\x{%x}", $o)
+ if $o < 0x20 || $o > 0x7e;
+ } else { # Early EBCDIC
+
+ # 3 EBCDIC code pages supported then; all controls but one
+ # are the code points below SPACE. The other one is 0x5F on
+ # POSIX-BC; FF on the other two.
+ substr $arg, $i, 1, sprintf("\\x{%x}", $o)
+ if $o < ord(" ") || ((ord ("^") == 106)
+ ? $o == 0x5f
+ : $o == 0xff);
+ }
}
} else {
$arg =~ s/([\"\\\$\@])/\\$1/g;
- $arg =~ s/([^ -~])/sprintf("\\x{%x}",ord($1))/eg;
+ # This is all the ASCII printables spelled-out. It is portable to all
+ # Perl versions and platforms (such as EBCDIC). There are other more
+ # compact ways to do this, but may not work everywhere every version.
+ $arg =~ s/([^ !"\$\%#'()*+,\-.\/0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]^_`abcdefghijklmnopqrstuvwxyz\{|}~])/sprintf("\\x{%x}",ord($1))/eg;
}
downgrade($arg, 1);
return "\"".$arg."\"".$suffix;
@@ -317,11 +337,25 @@ sub Regexp::CARP_TRACE {
for(my $i = length($arg); $i--; ) {
my $o = ord(substr($arg, $i, 1));
my $x = substr($arg, 0, 0); # work around bug on Perl 5.8.{1,2}
- substr $arg, $i, 1, sprintf("\\x{%x}", $o)
- if $o < 0x20 || $o > 0x7f;
+
+ # This code is repeated in format_arg()
+ if ($] ge 5.007_003) {
+ substr $arg, $i, 1, sprintf("\\x{%x}", $o)
+ if utf8::native_to_unicode($o) < utf8::native_to_unicode(0x20)
+ || utf8::native_to_unicode($o) > utf8::native_to_unicode(0x7e);
+ } elsif (ord("A") == 65) {
+ substr $arg, $i, 1, sprintf("\\x{%x}", $o)
+ if $o < 0x20 || $o > 0x7e;
+ } else { # Early EBCDIC
+ substr $arg, $i, 1, sprintf("\\x{%x}", $o)
+ if $o < ord(" ") || ((ord ("^") == 106)
+ ? $o == 0x5f
+ : $o == 0xff);
+ }
}
} else {
- $arg =~ s/([^ -~])/sprintf("\\x{%x}",ord($1))/eg;
+ # See comment in format_arg() about this same regex.
+ $arg =~ s/([^ !"\$\%#'()*+,\-.\/0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]^_`abcdefghijklmnopqrstuvwxyz\{|}~])/sprintf("\\x{%x}",ord($1))/eg;
}
downgrade($arg, 1);
my $suffix = "";
@@ -865,9 +899,6 @@ The Carp routines don't handle exception objects currently.
If called with a first argument that is a reference, they simply
call die() or warn(), as appropriate.
-Some of the Carp code assumes that Perl's basic character encoding is
-ASCII, and will go wrong on an EBCDIC platform.
-
=head1 SEE ALSO
L<Carp::Always>,
diff --git a/Master/tlpkg/tlperl/lib/Carp/Heavy.pm b/Master/tlpkg/tlperl/lib/Carp/Heavy.pm
index a14672b9728..a602297ed03 100644
--- a/Master/tlpkg/tlperl/lib/Carp/Heavy.pm
+++ b/Master/tlpkg/tlperl/lib/Carp/Heavy.pm
@@ -2,10 +2,12 @@ package Carp::Heavy;
use Carp ();
-our $VERSION = '1.3301';
+our $VERSION = '1.36';
-my $cv = defined($Carp::VERSION) ? $Carp::VERSION : "undef";
-if($cv ne $VERSION) {
+# Carp::Heavy was merged into Carp in version 1.12. Any mismatched versions
+# after this point are not significant and can be ignored.
+if(($Carp::VERSION || 0) < 1.12) {
+ my $cv = defined($Carp::VERSION) ? $Carp::VERSION : "undef";
die "Version mismatch between Carp $cv ($INC{q(Carp.pm)}) and Carp::Heavy $VERSION ($INC{q(Carp/Heavy.pm)}). Did you alter \@INC after Carp was loaded?\n";
}
diff --git a/Master/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm b/Master/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm
index 037ba437156..a5cdc2f5620 100644
--- a/Master/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm
+++ b/Master/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm
@@ -11,7 +11,7 @@ use Carp ;
use bytes ;
our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD);
-$VERSION = '2.064';
+$VERSION = '2.068';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
diff --git a/Master/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm b/Master/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm
index ae711285c0c..34bd4172263 100644
--- a/Master/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm
+++ b/Master/tlpkg/tlperl/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.065';
+$VERSION = '2.068';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
diff --git a/Master/tlpkg/tlperl/lib/Compress/Zlib.pm b/Master/tlpkg/tlperl/lib/Compress/Zlib.pm
index 57e74a8c07b..d197a3478bd 100644
--- a/Master/tlpkg/tlperl/lib/Compress/Zlib.pm
+++ b/Master/tlpkg/tlperl/lib/Compress/Zlib.pm
@@ -7,17 +7,17 @@ use Carp ;
use IO::Handle ;
use Scalar::Util qw(dualvar);
-use IO::Compress::Base::Common 2.064 ;
-use Compress::Raw::Zlib 2.064 ;
-use IO::Compress::Gzip 2.064 ;
-use IO::Uncompress::Gunzip 2.064 ;
+use IO::Compress::Base::Common 2.068 ;
+use Compress::Raw::Zlib 2.068 ;
+use IO::Compress::Gzip 2.068 ;
+use IO::Uncompress::Gunzip 2.068 ;
use strict ;
use warnings ;
use bytes ;
our ($VERSION, $XS_VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
-$VERSION = '2.064';
+$VERSION = '2.068';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -461,7 +461,7 @@ sub inflate
package Compress::Zlib ;
-use IO::Compress::Gzip::Constants 2.064 ;
+use IO::Compress::Gzip::Constants 2.068 ;
sub memGzip($)
{
diff --git a/Master/tlpkg/tlperl/lib/Config.pm b/Master/tlpkg/tlperl/lib/Config.pm
index 1257b5287f7..779cf2da000 100644
--- a/Master/tlpkg/tlperl/lib/Config.pm
+++ b/Master/tlpkg/tlperl/lib/Config.pm
@@ -10,7 +10,7 @@ use strict;
use warnings;
use vars '%Config', '$VERSION';
-$VERSION = "5.020002";
+$VERSION = "5.022001";
# Skip @Config::EXPORT because it only contains %Config, which we special
# case below as it's not a function. @Config::EXPORT won't change in the
@@ -56,11 +56,11 @@ sub import {
return;
}
-die "$0: Perl lib version (5.20.2) doesn't match executable '$^X' version ($])"
+die "$0: Perl lib version (5.22.1) doesn't match executable '$^X' version ($])"
unless $^V;
-$^V eq 5.20.2
- or die sprintf "%s: Perl lib version (5.20.2) doesn't match executable '$^X' version (%vd)", $0, $^V;
+$^V eq 5.22.1
+ or die sprintf "%s: Perl lib version (5.22.1) doesn't match executable '$^X' version (%vd)", $0, $^V;
sub FETCH {
@@ -85,7 +85,7 @@ sub AUTOLOAD {
my $rootdir = __FILE__;
$rootdir =~ s![\\/][^\\/]*[\\/][^\\/]*$!!;
$rootdir =~ s!/!\\!g;
-my $mingdir = "x:\\mingw";
+my $mingdir = "x:\\wprogs\\mingw";
# tie returns the object, so the value returned to require will be true.
tie %Config, 'Config', {
@@ -103,7 +103,7 @@ tie %Config, 'Config', {
ldlibpthname => '',
libpth => "$mingdir\\lib",
osname => 'MSWin32',
- osvers => '4.0',
+ osvers => '6.1',
path_sep => ';',
privlibexp => "$rootdir\\lib",
scriptdir => "$rootdir\\bin",
@@ -112,5 +112,5 @@ tie %Config, 'Config', {
so => 'dll',
useithreads => 'define',
usevendorprefix => undef,
- version => '5.20.2',
+ version => '5.22.1',
};
diff --git a/Master/tlpkg/tlperl/lib/Config.pm.orig b/Master/tlpkg/tlperl/lib/Config.pm.orig
index 69d13dfbea6..07a6b3eff09 100644
--- a/Master/tlpkg/tlperl/lib/Config.pm.orig
+++ b/Master/tlpkg/tlperl/lib/Config.pm.orig
@@ -10,7 +10,7 @@ use strict;
use warnings;
use vars '%Config', '$VERSION';
-$VERSION = "5.020002";
+$VERSION = "5.022001";
# Skip @Config::EXPORT because it only contains %Config, which we special
# case below as it's not a function. @Config::EXPORT won't change in the
@@ -56,11 +56,11 @@ sub import {
return;
}
-die "$0: Perl lib version (5.20.2) doesn't match executable '$^X' version ($])"
+die "$0: Perl lib version (5.22.1) doesn't match executable '$^X' version ($])"
unless $^V;
-$^V eq 5.20.2
- or die sprintf "%s: Perl lib version (5.20.2) doesn't match executable '$^X' version (%vd)", $0, $^V;
+$^V eq 5.22.1
+ or die sprintf "%s: Perl lib version (5.22.1) doesn't match executable '$^X' version (%vd)", $0, $^V;
sub FETCH {
@@ -98,7 +98,7 @@ tie %Config, 'Config', {
ldlibpthname => '',
libpth => 'X:\\mingw\\lib',
osname => 'MSWin32',
- osvers => '4.0',
+ osvers => '6.1',
path_sep => ';',
privlibexp => 'c:\\tlperl\\lib',
scriptdir => 'c:\\tlperl\\bin',
@@ -107,5 +107,5 @@ tie %Config, 'Config', {
so => 'dll',
useithreads => 'define',
usevendorprefix => undef,
- version => '5.20.2',
+ version => '5.22.1',
};
diff --git a/Master/tlpkg/tlperl/lib/Config.pod b/Master/tlpkg/tlperl/lib/Config.pod
index 1ac5fb146b2..3e2020fe2fc 100644
--- a/Master/tlpkg/tlperl/lib/Config.pod
+++ b/Master/tlpkg/tlperl/lib/Config.pod
@@ -406,13 +406,6 @@ This variable is used internally by Configure to determine the
full pathname (if any) of the bison program. After Configure runs,
the value is reset to a plain C<bison> and is not useful.
-=item C<bootstrap_charset>
-
-From F<ebcdic.U>:
-
-This variable conditionally defines C<BOOTSTRAP_CHARSET> if
-this system uses non-C<ASCII> encoding.
-
=item C<byacc>
From F<Loc.U>:
@@ -815,6 +808,13 @@ From F<d_accessx.U>:
This variable conditionally defines the C<HAS_ACCESSX> symbol, which
indicates to the C program that the accessx() routine is available.
+=item C<d_acosh>
+
+From F<d_acosh.U>:
+
+This variable conditionally defines the C<HAS_ACOSH> symbol, which
+indicates to the C program that the acosh() routine is available.
+
=item C<d_aintl>
From F<d_aintl.U>:
@@ -853,6 +853,20 @@ This variable conditionally defines the C<HAS_ASCTIME_R> symbol,
which indicates to the C program that the asctime_r()
routine is available.
+=item C<d_asinh>
+
+From F<d_asinh.U>:
+
+This variable conditionally defines the C<HAS_ASINH> symbol, which
+indicates to the C program that the asinh() routine is available.
+
+=item C<d_atanh>
+
+From F<d_atanh.U>:
+
+This variable conditionally defines the C<HAS_ATANH> symbol, which
+indicates to the C program that the atanh() routine is available.
+
=item C<d_atolf>
From F<atolf.U>:
@@ -933,6 +947,14 @@ C<HASATTRIBUTE_WARN_UNUSED_RESULT>, which indicates that the C
compiler can know that certain functions have a return values
that must not be ignored, such as malloc() or open().
+=item C<d_backtrace>
+
+From F<d_backtrace.U>:
+
+This variable conditionally defines the C<HAS_BACKTRACE> symbol, which
+indicates to the C program that the backtrace() routine is available
+to get a stack trace.
+
=item C<d_bcmp>
From F<d_bcmp.U>:
@@ -1018,6 +1040,14 @@ From F<d_castneg.U>:
This variable conditionally defines C<CASTNEG>, which indicates
whether the C compiler can cast negative float to unsigned.
+=item C<d_cbrt>
+
+From F<d_cbrt.U>:
+
+This variable conditionally defines the C<HAS_CBRT> symbol, which
+indicates to the C program that the cbrt() (cube root) function
+is available.
+
=item C<d_charvspr>
From F<d_vprintf.U>:
@@ -1084,6 +1114,13 @@ This variable conditionally defines the C<HASCONST> symbol, which
indicates to the C program that this C compiler knows about the
const type.
+=item C<d_copysign>
+
+From F<d_copysign.U>:
+
+This variable conditionally defines the C<HAS_COPYSIGN> symbol, which
+indicates to the C program that the copysign() routine is available.
+
=item C<d_copysignl>
From F<d_copysignl.U>:
@@ -1216,6 +1253,14 @@ This variable conditionally defines C<DIRNAMLEN>, which indicates
to the C program that the length of directory entry names is
provided by a d_namelen field.
+=item C<d_dladdr>
+
+From F<d_dladdr.U>:
+
+This variable conditionally defines the C<HAS_DLADDR> symbol, which
+indicates to the C program that the dladdr() routine is available
+to get a stack trace.
+
=item C<d_dlerror>
From F<d_dlerror.U>:
@@ -1376,6 +1421,20 @@ From F<nblock_io.U>:
This variable conditionally defines C<EOF_NONBLOCK> if C<EOF> can be seen
when reading from a non-blocking I/O source.
+=item C<d_erf>
+
+From F<d_erf.U>:
+
+This variable conditionally defines the C<HAS_ERF> symbol, which
+indicates to the C program that the erf() routine is available.
+
+=item C<d_erfc>
+
+From F<d_erfc.U>:
+
+This variable conditionally defines the C<HAS_ERFC> symbol, which
+indicates to the C program that the erfc() routine is available.
+
=item C<d_eunice>
From F<Guess.U>:
@@ -1383,6 +1442,20 @@ From F<Guess.U>:
This variable conditionally defines the symbols C<EUNICE> and C<VAX>, which
alerts the C program that it must deal with idiosyncrasies of C<VMS>.
+=item C<d_exp2>
+
+From F<d_exp2.U>:
+
+This variable conditionally defines the HAS_EXP2 symbol, which
+indicates to the C program that the exp2() routine is available.
+
+=item C<d_expm1>
+
+From F<d_expm1.U>:
+
+This variable conditionally defines the HAS_EXPM1 symbol, which
+indicates to the C program that the expm1() routine is available.
+
=item C<d_faststdio>
From F<d_faststdio.U>:
@@ -1443,6 +1516,13 @@ From F<d_fd_set.U>:
This variable contains the eventual value of the C<HAS_FD_SET> symbol,
which indicates if your C compiler knows about the fd_set typedef.
+=item C<d_fdim>
+
+From F<d_fdim.U>:
+
+This variable conditionally defines the C<HAS_FDIM> symbol, which
+indicates to the C program that the fdim() routine is available.
+
=item C<d_fds_bits>
From F<d_fd_set.U>:
@@ -1453,6 +1533,13 @@ If you have an fd_set typedef, but the dweebs who installed it did
a half-fast job and neglected to provide the macros to manipulate
an fd_set, C<HAS_FDS_BITS> will let us know how to fix the gaffe.
+=item C<d_fegetround>
+
+From F<d_fegetround.U>:
+
+This variable conditionally defines C<HAS_FEGETROUND> if fegetround() is
+available to get the floating point rounding mode.
+
=item C<d_fgetpos>
From F<d_fgetpos.U>:
@@ -1497,6 +1584,27 @@ which indicates to the C program that the system provides
a prototype for the flock() function. Otherwise, it is
up to the program to supply one.
+=item C<d_fma>
+
+From F<d_fma.U>:
+
+This variable conditionally defines the C<HAS_FMA> symbol, which
+indicates to the C program that the fma() routine is available.
+
+=item C<d_fmax>
+
+From F<d_fmax.U>:
+
+This variable conditionally defines the C<HAS_FMAX> symbol, which
+indicates to the C program that the fmax() routine is available.
+
+=item C<d_fmin>
+
+From F<d_fmin.U>:
+
+This variable conditionally defines the C<HAS_FMIN> symbol, which
+indicates to the C program that the fmin() routine is available.
+
=item C<d_fork>
From F<d_fork.U>:
@@ -1511,6 +1619,20 @@ From F<d_fp_class.U>:
This variable conditionally defines the C<HAS_FP_CLASS> symbol, which
indicates to the C program that the fp_class() routine is available.
+=item C<d_fp_classify>
+
+From F<d_fpclassify.U>:
+
+This variable conditionally defines the C<HAS_FP_CLASSIFY> symbol, which
+indicates to the C program that the fp_classify() routine is available.
+
+=item C<d_fp_classl>
+
+From F<d_fp_classl.U>:
+
+This variable conditionally defines the C<HAS_FP_CLASSL> symbol, which
+indicates to the C program that the fp_classl() routine is available.
+
=item C<d_fpathconf>
From F<d_pathconf.U>:
@@ -1541,6 +1663,13 @@ From F<d_fpclassl.U>:
This variable conditionally defines the C<HAS_FPCLASSL> symbol, which
indicates to the C program that the fpclassl() routine is available.
+=item C<d_fpgetround>
+
+From F<d_fpgetround.U>:
+
+This variable conditionally defines C<HAS_FPGETROUND> if fpgetround()
+is available to get the floating point rounding mode.
+
=item C<d_fpos64_t>
From F<d_fpos64_t.U>:
@@ -2169,12 +2298,28 @@ From F<d_htonl.U>:
This variable conditionally defines C<HAS_HTONL> if htonl() and its
friends are available to do network order byte swapping.
+=item C<d_hypot>
+
+From F<d_hypot.U>:
+
+This variable conditionally defines C<HAS_HYPOT> if hypot is available
+for numerically stable hypotenuse function.
+
+=item C<d_ilogb>
+
+From F<d_ilogb.U>:
+
+This variable conditionally defines the C<HAS_ILOGB> symbol, which
+indicates to the C program that the ilogb() routine is available
+for extracting the exponent of double x as a signed integer.
+
=item C<d_ilogbl>
From F<d_ilogbl.U>:
This variable conditionally defines the C<HAS_ILOGBL> symbol, which
-indicates to the C program that the ilogbl() routine is available.
+indicates to the C program that the ilogbl() routine is available
+for extracting the exponent of long double x as a signed integer.
If scalbnl is also present we can emulate frexpl.
=item C<d_inc_version_list>
@@ -2270,6 +2415,13 @@ From F<d_isfinite.U>:
This variable conditionally defines the C<HAS_ISFINITE> symbol, which
indicates to the C program that the isfinite() routine is available.
+=item C<d_isfinitel>
+
+From F<d_isfinitel.U>:
+
+This variable conditionally defines the C<HAS_ISFINITEL> symbol, which
+indicates to the C program that the isfinitel() routine is available.
+
=item C<d_isinf>
From F<d_isinf.U>:
@@ -2277,6 +2429,13 @@ From F<d_isinf.U>:
This variable conditionally defines the C<HAS_ISINF> symbol, which
indicates to the C program that the isinf() routine is available.
+=item C<d_isinfl>
+
+From F<d_isinfl.U>:
+
+This variable conditionally defines the C<HAS_ISINFL> symbol, which
+indicates to the C program that the isinfl() routine is available.
+
=item C<d_isnan>
From F<d_isnan.U>:
@@ -2291,6 +2450,27 @@ From F<d_isnanl.U>:
This variable conditionally defines the C<HAS_ISNANL> symbol, which
indicates to the C program that the isnanl() routine is available.
+=item C<d_isnormal>
+
+From F<d_isnormal.U>:
+
+This variable conditionally defines the C<HAS_ISNORMAL> symbol, which
+indicates to the C program that the isnormal() routine is available.
+
+=item C<d_j0>
+
+From F<d_j0.U>:
+
+This variable conditionally defines the HAS_J0 symbol, which
+indicates to the C program that the j0() routine is available.
+
+=item C<d_j0l>
+
+From F<d_j0.U>:
+
+This variable conditionally defines the HAS_J0L symbol, which
+indicates to the C program that the j0l() routine is available.
+
=item C<d_killpg>
From F<d_killpg.U>:
@@ -2299,6 +2479,14 @@ This variable conditionally defines the C<HAS_KILLPG> symbol, which
indicates to the C program that the killpg() routine is available
to kill process groups.
+=item C<d_lc_monetary_2008>
+
+From F<d_lc_monetary_2008.U>:
+
+This variable conditionally defines HAS_LC_MONETARY_2008 if libc
+has the international currency locale rules from C<POSIX>
+1003.1-2008.
+
=item C<d_lchown>
From F<d_lchown.U>:
@@ -2315,6 +2503,29 @@ This variable conditionally defines d_ldbl_dig if this system's
header files provide C<LDBL_DIG>, which is the number of significant
digits in a long double precision number.
+=item C<d_ldexpl>
+
+From F<d_longdbl.U>:
+
+This variable conditionally defines the C<HAS_LDEXPL> symbol, which
+indicates to the C program that the ldexpl() routine is available.
+
+=item C<d_lgamma>
+
+From F<d_lgamma.U>:
+
+This variable conditionally defines the C<HAS_LGAMMA> symbol, which
+indicates to the C program that the lgamma() routine is available
+for the log gamma function. See also d_tgamma and d_lgamma_r.
+
+=item C<d_lgamma_r>
+
+From F<d_lgamma_r.U>:
+
+This variable conditionally defines the C<HAS_LGAMMA_R> symbol, which
+indicates to the C program that the lgamma_r() routine is available
+for the log gamma function, without using the global signgam variable.
+
=item C<d_libm_lib_version>
From F<d_libm_lib_version.U>:
@@ -2339,6 +2550,40 @@ From F<d_link.U>:
This variable conditionally defines C<HAS_LINK> if link() is
available to create hard links.
+=item C<d_llrint>
+
+From F<d_llrint.U>:
+
+This variable conditionally defines the C<HAS_LLRINT> symbol, which
+indicates to the C program that the llrint() routine is available
+to return the long long value closest to (according to the current
+rounding mode) to x.
+
+=item C<d_llrintl>
+
+From F<d_llrintl.U>:
+
+This variable conditionally defines the C<HAS_LLRINTL> symbol, which
+indicates to the C program that the llrintl() routine is available
+to return the long long value closest to (according to the current
+rounding mode) to long double x.
+
+=item C<d_llround>
+
+From F<d_llround.U>:
+
+This variable conditionally defines the C<HAS_LLROUND> symbol, which
+indicates to the C program that the llround() routine is available
+to return the long long value nearest to x.
+
+=item C<d_llroundl>
+
+From F<d_llroundl.U>:
+
+This variable conditionally defines the C<HAS_LLROUNDL> symbol, which
+indicates to the C program that the llroundl() routine is available
+to return the long long value nearest to long double x.
+
=item C<d_localtime64>
From F<d_timefuncs64.U>:
@@ -2375,6 +2620,30 @@ From F<d_lockf.U>:
This variable conditionally defines C<HAS_LOCKF> if lockf() is
available to do file locking.
+=item C<d_log1p>
+
+From F<d_log1p.U>:
+
+This variable conditionally defines the HAS_LOG1P symbol, which
+indicates to the C program that the logp1() routine is available
+to compute log(1 + x) for values of x close to zero.
+
+=item C<d_log2>
+
+From F<d_log2.U>:
+
+This variable conditionally defines the HAS_LOG2 symbol, which
+indicates to the C program that the log2() routine is available
+to compute log base two.
+
+=item C<d_logb>
+
+From F<d_logb.U>:
+
+This variable conditionally defines the C<HAS_LOGB> symbol, which
+indicates to the C program that the logb() routine is available
+to extract the exponent of x.
+
=item C<d_longdbl>
From F<d_longdbl.U>:
@@ -2389,6 +2658,40 @@ From F<d_longlong.U>:
This variable conditionally defines C<HAS_LONG_LONG> if
the long long type is supported.
+=item C<d_lrint>
+
+From F<d_lrint.U>:
+
+This variable conditionally defines the C<HAS_LRINT> symbol, which
+indicates to the C program that the lrint() routine is available
+to return the integral value closest to (according to the current
+rounding mode) to x.
+
+=item C<d_lrintl>
+
+From F<d_lrintl.U>:
+
+This variable conditionally defines the C<HAS_LRINTL> symbol, which
+indicates to the C program that the lrintl() routine is available
+to return the integral value closest to (according to the current
+rounding mode) to long double x.
+
+=item C<d_lround>
+
+From F<d_lround.U>:
+
+This variable conditionally defines the C<HAS_LROUND> symbol, which
+indicates to the C program that the lround() routine is available
+to return the integral value nearest to x.
+
+=item C<d_lroundl>
+
+From F<d_lroundl.U>:
+
+This variable conditionally defines the C<HAS_LROUNDL> symbol, which
+indicates to the C program that the lroundl() routine is available
+to return the integral value nearest to x of the long double argument.
+
=item C<d_lseekproto>
From F<d_lseekproto.U>:
@@ -2688,6 +2991,13 @@ This variable conditionally defines C<MYMALLOC> in case other parts
of the source want to take special action if C<MYMALLOC> is used.
This may include different sorts of profiling or error detection.
+=item C<d_nan>
+
+From F<d_nan.U>:
+
+This variable conditionally defines C<HAS_NAN> if nan() is
+available to generate NaN.
+
=item C<d_ndbm>
From F<i_ndbm.U>:
@@ -2711,6 +3021,30 @@ special handling when using a C++ compiler and this variable is
undefined. Consult the different d_*ndbm_h_uses_prototypes variables
to get the same information for alternative F<ndbm.h> include files.
+=item C<d_nearbyint>
+
+From F<d_nearbyint.U>:
+
+This variable conditionally defines C<HAS_NEARBYINT> if nearbyint()
+is available to return the integral value closest to (according to
+the current rounding mode) to x.
+
+=item C<d_nextafter>
+
+From F<d_nextafter.U>:
+
+This variable conditionally defines C<HAS_NEXTAFTER> if nextafter()
+is available to return the next machine representable double from
+x in direction y.
+
+=item C<d_nexttoward>
+
+From F<d_nexttoward.U>:
+
+This variable conditionally defines C<HAS_NEXTTOWARD> if nexttoward()
+is available to return the next machine representable long double from
+x in direction y.
+
=item C<d_nice>
From F<d_nice.U>:
@@ -2839,6 +3173,8 @@ From F<d_prctl.U>:
This variable conditionally defines the C<HAS_PRCTL> symbol, which
indicates to the C program that the prctl() routine is available.
+Note that there are at least two prctl variants: Linux and Irix.
+While they are somewhat similar, they are incompatible.
=item C<d_prctl_set_name>
@@ -2986,6 +3322,12 @@ This variable conditionally defines the C<HAS_PTHREAD_YIELD>
symbol if the pthread_yield routine is available to yield
the execution of the current thread.
+=item C<d_ptrdiff_t>
+
+From F<d_ptrdiff_t.U>:
+
+This symbol will be defined if the C compiler supports ptrdiff_t.
+
=item C<d_pwage>
From F<i_pwd.U>:
@@ -3064,6 +3406,15 @@ This variable conditionally defines the C<HAS_RANDOM_R> symbol,
which indicates to the C program that the random_r()
routine is available.
+=item C<d_re_comp>
+
+From F<d_regcmp.U>:
+
+This variable conditionally defines the C<HAS_RECOMP> symbol, which
+indicates to the C program that the re_comp() routine is available
+for regular patern matching (usally on C<BSD>). If so, it is likely that
+re_exec() exists.
+
=item C<d_readdir>
From F<d_readdir.U>:
@@ -3109,6 +3460,36 @@ From F<d_recvmsg.U>:
This variable conditionally defines the C<HAS_RECVMSG> symbol, which
indicates to the C program that the recvmsg() routine is available.
+=item C<d_regcmp>
+
+From F<d_regcmp.U>:
+
+This variable conditionally defines the C<HAS_REGCMP> symbol, which
+indicates to the C program that the regcmp() routine is available
+for regular patern matching (usally on System V).
+
+=item C<d_regcomp>
+
+From F<d_regcmp.U>:
+
+This variable conditionally defines the C<HAS_REGCOMP> symbol, which
+indicates to the C program that the regcomp() routine is available
+for regular patern matching (usally on F<POSIX.2> conforming systems).
+
+=item C<d_remainder>
+
+From F<d_remainder.U>:
+
+This variable conditionally defines the C<HAS_REMAINDER> symbol, which
+indicates to the C program that the remainder() routine is available.
+
+=item C<d_remquo>
+
+From F<d_remquo.U>:
+
+This variable conditionally defines the C<HAS_REMQUO> symbol, which
+indicates to the C program that the remquo() routine is available.
+
=item C<d_rename>
From F<d_rename.U>:
@@ -3124,6 +3505,13 @@ From F<d_readdir.U>:
This variable conditionally defines C<HAS_REWINDDIR> if rewinddir() is
available.
+=item C<d_rint>
+
+From F<d_rint.U>:
+
+This variable conditionally defines the C<HAS_RINT> symbol, which
+indicates to the C program that the rint() routine is available.
+
=item C<d_rmdir>
From F<d_rmdir.U>:
@@ -3131,6 +3519,13 @@ From F<d_rmdir.U>:
This variable conditionally defines C<HAS_RMDIR> if rmdir() is
available to remove directories.
+=item C<d_round>
+
+From F<d_round.U>:
+
+This variable conditionally defines the C<HAS_ROUND> symbol, which
+indicates to the C program that the round() routine is available.
+
=item C<d_safebcpy>
From F<d_safebcpy.U>:
@@ -3164,6 +3559,13 @@ which indicates to the C program that the system provides
a prototype for the sbrk() function. Otherwise, it is
up to the program to supply one.
+=item C<d_scalbn>
+
+From F<d_scalbn.U>:
+
+This variable conditionally defines the C<HAS_SCALBN> symbol, which
+indicates to the C program that the scalbn() routine is available.
+
=item C<d_scalbnl>
From F<d_scalbnl.U>:
@@ -3712,6 +4114,13 @@ which indicates to the C program that the system provides
a prototype for the setresuid() function. Otherwise, it is
up to the program to supply one.
+=item C<d_stat>
+
+From F<d_stat.U>:
+
+This variable conditionally defines C<HAS_STAT> if stat() is
+available to get file status.
+
=item C<d_statblks>
From F<d_statblks.U>:
@@ -4029,6 +4438,14 @@ which indicates to the C program that the system provides
a prototype for the telldir() function. Otherwise, it is
up to the program to supply one.
+=item C<d_tgamma>
+
+From F<d_tgamma.U>:
+
+This variable conditionally defines the C<HAS_TGAMMA> symbol, which
+indicates to the C program that the tgamma() routine is available
+for the gamma function. See also d_lgamma.
+
=item C<d_time>
From F<d_time.U>:
@@ -4074,6 +4491,14 @@ This variable conditionally defines the C<HAS_TMPNAM_R> symbol,
which indicates to the C program that the tmpnam_r()
routine is available.
+=item C<d_trunc>
+
+From F<d_trunc.U>:
+
+This variable conditionally defines the C<HAS_TRUNC> symbol, which
+indicates to the C program that the trunc() routine is available
+to round doubles towards zero.
+
=item C<d_truncate>
From F<d_truncate.U>:
@@ -4081,6 +4506,15 @@ From F<d_truncate.U>:
This variable conditionally defines C<HAS_TRUNCATE> if truncate() is
available to truncate files.
+=item C<d_truncl>
+
+From F<d_truncl.U>:
+
+This variable conditionally defines the C<HAS_TRUNCL> symbol, which
+indicates to the C program that the truncl() routine is available
+to round long doubles towards zero. If copysignl is also present,
+we can emulate modfl.
+
=item C<d_ttyname_r>
From F<d_ttyname_r.U>:
@@ -4263,6 +4697,14 @@ From F<d_waitpid.U>:
This variable conditionally defines C<HAS_WAITPID> if waitpid() is
available to wait for child process.
+=item C<d_wcscmp>
+
+From F<d_wcscmp.U>:
+
+This variable conditionally defines the C<HAS_WCSCMP> symbol if the
+wcscmp() routine is available and can be used to compare wide
+character strings.
+
=item C<d_wcstombs>
From F<d_wcstombs.U>:
@@ -4271,6 +4713,14 @@ This variable conditionally defines the C<HAS_WCSTOMBS> symbol, which
indicates to the C program that the wcstombs() routine is available
to convert wide character strings to multibyte strings.
+=item C<d_wcsxfrm>
+
+From F<d_wcsxfrm.U>:
+
+This variable conditionally defines the C<HAS_WCSXFRM> symbol if the
+wcsxfrm() routine is available and can be used to compare wide
+character strings.
+
=item C<d_wctomb>
From F<d_wctomb.U>:
@@ -4362,6 +4812,21 @@ From F<dlsrc.U>:
This variable contains the name of the dynamic loading file that
will be used with the package.
+=item C<doublekind>
+
+From F<longdblfio.U>:
+
+This variable, if defined, encodes the type of a double:
+1 = C<IEEE> 754 32-bit big little endian,
+2 = C<IEEE> 754 32-bit big big endian,
+3 = C<IEEE> 754 64-bit big little endian,
+4 = C<IEEE> 754 64-bit big big endian,
+5 = C<IEEE> 754 128-bit big little endian,
+6 = C<IEEE> 754 128-bit big big endian,
+7 = C<IEEE> 754 64-bit big mixed endian le-be,
+8 = C<IEEE> 754 64-bit big mixed endian be-le,
+-1 = unknown format.
+
=item C<doublesize>
From F<doublesize.U>:
@@ -4996,14 +5461,15 @@ From F<Oldconfig.U>:
Gives the type of hints used for previous answers. May be one of
C<default>, C<recommended> or C<previous>.
-=item C<hostperl>
+=item C<hostcat>
-From F<Cross.U>:
+From F<nis.U>:
-This variable contains the path to a miniperl binary that can be
-run on the host C<OS> when cross-compiling. Useful and available only
-during Perl build.
-Empty string '' if not cross-compiling.
+This variable contains a command that produces the text of the
+F</etc/hosts> file. This is normally "cat F</etc/hosts>", but can be
+"ypcat hosts" when C<NIS> is used.
+On some systems, such as os390, there may be no equivalent
+command, in which case this variable is unset.
=item C<hostgenerate>
@@ -5023,15 +5489,14 @@ when cross-compiling. This is useful to pick the proper tools
when running build code in the host.
Empty string '' if not cross-compiling.
-=item C<hostcat>
+=item C<hostperl>
-From F<nis.U>:
+From F<Cross.U>:
-This variable contains a command that produces the text of the
-F</etc/hosts> file. This is normally "cat F</etc/hosts>", but can be
-"ypcat hosts" when C<NIS> is used.
-On some systems, such as os390, there may be no equivalent
-command, in which case this variable is unset.
+This variable contains the path to a miniperl binary that can be
+run on the host C<OS> when cross-compiling. Useful and available only
+during Perl build.
+Empty string '' if not cross-compiling.
=item C<html1dir>
@@ -5139,6 +5604,13 @@ This variable conditionally defines the C<I_ASSERT> symbol, which
indicates to the C program that <assert.h> exists and could be
included.
+=item C<i_bfd>
+
+From F<i_bfd.U>:
+
+This variable conditionally defines the C<I_BFD> symbol, and
+indicates whether a C program can include <bfd.h>.
+
=item C<i_bsdioctl>
From F<i_sysioctl.U>:
@@ -5184,6 +5656,13 @@ This variable conditionally defines the C<I_DLFCN> symbol, which
indicates to the C program that <dlfcn.h> exists and should
be included.
+=item C<i_execinfo>
+
+From F<i_execinfo.U>:
+
+This variable conditionally defines the C<I_EXECINFO> symbol, and indicates
+whether a C program may include <execinfo.h>, for backtrace() support.
+
=item C<i_fcntl>
From F<i_fcntl.U>:
@@ -5191,6 +5670,14 @@ From F<i_fcntl.U>:
This variable controls the value of C<I_FCNTL> (which tells
the C program to include <fcntl.h>).
+=item C<i_fenv>
+
+From F<i_fenv.U>:
+
+This variable conditionally defines the C<I_FENV> symbol, which
+indicates to the C program that <fenv.h> exists and should
+be included.
+
=item C<i_float>
From F<i_float.U>:
@@ -5397,6 +5884,13 @@ From F<i_pwd.U>:
This variable conditionally defines C<I_PWD>, which indicates
to the C program that it should include <pwd.h>.
+=item C<i_quadmath>
+
+From F<i_quadmath.U>:
+
+This variable conditionally defines C<I_QUADMATH>, which indicates
+to the C program that it should include <quadmath.h>.
+
=item C<i_rpcsvcdbm>
From F<i_dbm.U>:
@@ -5451,6 +5945,14 @@ This variable conditionally defines the C<I_STDDEF> symbol, which
indicates to the C program that <stddef.h> exists and should
be included.
+=item C<i_stdint>
+
+From F<i_stdint.U>:
+
+This variable conditionally defines the C<I_STDINT> symbol, which
+indicates to the C program that <stdint.h> exists and should
+be included.
+
=item C<i_stdlib>
From F<i_stdlib.U>:
@@ -6360,13 +6862,24 @@ This variable holds the paths (space-separated) used to find local
libraries. It is prepended to libpth, and is intended to be easily
set from the command line.
+=item C<longdblkind>
+
+From F<d_longdbl.U>:
+
+This variable, if defined, encodes the type of a long double:
+0 = double, 1 = C<IEEE> 754 128-bit big little endian,
+2 = C<IEEE> 754 128-bit big big endian, 3 = x86 80-bit little endian,
+4 = x86 80-bit big endian, 5 = double-double 128-bit little endian,
+6 = double-double 128-bit big endian, -1 = unknown format.
+
=item C<longdblsize>
From F<d_longdbl.U>:
This variable contains the value of the C<LONG_DOUBLESIZE> symbol, which
indicates to the C program how many bytes there are in a long double,
-if this system supports long doubles.
+if this system supports long doubles. Note that this is
+sizeof(long double), which may include unused bytes.
=item C<longlongsize>
@@ -6431,34 +6944,6 @@ kernel (which also appears to be lseek's return type).
=cut
-=item C<mad>
-
-From F<mad.U>:
-
-This variable indicates that the Misc Attribute Definition code is to
-be compiled.
-
-=item C<madlyh>
-
-From F<mad.U>:
-
-If the Misc Attribute Decoration is to be compiled, this variable is
-set to the name of the extra header files to be used, else it is ''
-
-=item C<madlyobj>
-
-From F<mad.U>:
-
-If the Misc Attribute Decoration is to be compiled, this variable is
-set to the name of the extra object files to be used, else it is ''
-
-=item C<madlysrc>
-
-From F<mad.U>:
-
-If the Misc Attribute Decoration is to be compiled, this variable is
-set to the name of the extra C source files to be used, else it is ''
-
=item C<mail>
From F<Loc.U>:
@@ -6835,7 +7320,8 @@ a Perl C<NV> using %G-ish floating point format.
From F<perlxv.U>:
-This variable is the size of an C<NV> in bytes.
+This variable is the size of a Perl C<NV> in bytes.
+Note that some floating point formats have unused bytes.
=item C<nvtype>
@@ -8284,7 +8770,7 @@ connect to the host in targethost, if unset defaults to 22 for ssh.
=item C<targetsh>
-From F<Cross.U>:
+From F<sh.U>:
If cross-compiling, this variable contains the location of sh on the
target system.
@@ -8525,6 +9011,13 @@ is employed, just enough to get 64-bit integers into Perl.
This may mean using for example "long longs", while your memory
may still be limited to 2 gigabytes.
+=item C<usecbacktrace>
+
+From F<usebacktrace.U>:
+
+This variable indicates whether we are compiling with backtrace
+support.
+
=item C<usecrosscompile>
From F<Cross.U>:
@@ -8667,6 +9160,14 @@ use for this currently is to allow an easy mechanism
for hints files to indicate that C<POSIX> will not compile
on a particular system.
+=item C<usequadmath>
+
+From F<usequadmath.U>:
+
+This variable conditionally defines the C<USE_QUADMATH> symbol,
+and indicates that the quadmath library __float128 long doubles
+should be used when available.
+
=item C<usereentrant>
From F<usethreads.U>:
diff --git a/Master/tlpkg/tlperl/lib/Config/Perl/V.pm b/Master/tlpkg/tlperl/lib/Config/Perl/V.pm
index 4cbf6fe66f0..def79bb220b 100755
--- a/Master/tlpkg/tlperl/lib/Config/Perl/V.pm
+++ b/Master/tlpkg/tlperl/lib/Config/Perl/V.pm
@@ -8,7 +8,7 @@ use warnings;
use Config;
use Exporter;
use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
-$VERSION = "0.22";
+$VERSION = "0.24";
@ISA = ("Exporter");
@EXPORT_OK = qw( plv2hash summary myconfig signature );
%EXPORT_TAGS = (
@@ -106,6 +106,7 @@ my %BTD = map { $_ => 0 } qw(
USE_LOCALE_TIME
USE_LONG_DOUBLE
USE_PERLIO
+ USE_QUADMATH
USE_REENTRANT_API
USE_SFIO
USE_SOCKS
@@ -534,7 +535,7 @@ H.Merijn Brand <h.m.brand@xs4all.nl>
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2009-2014 H.Merijn Brand
+Copyright (C) 2009-2015 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/Master/tlpkg/tlperl/lib/Config_heavy.pl b/Master/tlpkg/tlperl/lib/Config_heavy.pl
index daa1659bec3..af84e63114f 100644
--- a/Master/tlpkg/tlperl/lib/Config_heavy.pl
+++ b/Master/tlpkg/tlperl/lib/Config_heavy.pl
@@ -88,8 +88,8 @@ Summary of my $package (revision $revision $version_patchlevel_string) configura
optimize='$optimize',
cppflags='$cppflags'
ccversion='$ccversion', gccversion='$gccversion', gccosandvers='$gccosandvers'
- intsize=$intsize, longsize=$longsize, ptrsize=$ptrsize, doublesize=$doublesize, byteorder=$byteorder
- d_longlong=$d_longlong, longlongsize=$longlongsize, d_longdbl=$d_longdbl, longdblsize=$longdblsize
+ intsize=$intsize, longsize=$longsize, ptrsize=$ptrsize, doublesize=$doublesize, byteorder=$byteorder, doublekind=$doublekind
+ d_longlong=$d_longlong, longlongsize=$longlongsize, d_longdbl=$d_longdbl, longdblsize=$longdblsize, longdblkind=$longdblkind
ivtype='$ivtype', ivsize=$ivsize, nvtype='$nvtype', nvsize=$nvsize, Off_t='$lseektype', lseeksize=$lseeksize
alignbytes=$alignbytes, prototype=$prototype
Linker and Libraries:
@@ -128,7 +128,7 @@ sub myconfig {
my $rootdir = __FILE__;
$rootdir =~ s![\\/][^\\/]*[\\/][^\\/]*$!!;
$rootdir =~ s!/!\\!g;
-my $mingdir = "x:\\mingw";
+my $mingdir = "x:\\wprogs\\mingw";
local *_ = \my $a;
$_ = <<"!END!";
@@ -142,15 +142,15 @@ Log='\$Log'
PATCHLEVEL='20'
PERL_API_REVISION='5'
PERL_API_SUBVERSION='0'
-PERL_API_VERSION='20'
+PERL_API_VERSION='22'
PERL_CONFIG_SH='true'
PERL_PATCHLEVEL=''
PERL_REVISION='5'
-PERL_SUBVERSION='2'
-PERL_VERSION='20'
+PERL_SUBVERSION='1'
+PERL_VERSION='22'
RCSfile='\$RCSfile'
Revision='\$Revision'
-SUBVERSION='2'
+SUBVERSION='1'
Source=''
State=''
_a='.a'
@@ -163,8 +163,8 @@ ansi2knr=''
aphostname=''
api_revision='5'
api_subversion='0'
-api_version='20'
-api_versionstring='5.20.0'
+api_version='22'
+api_versionstring='5.22.0'
ar='ar'
archlib='$rootdir\\lib'
archlibexp='$rootdir\\lib'
@@ -187,14 +187,14 @@ cat='type'
cc='gcc'
cccdlflags=' '
ccdlflags=' '
-ccflags=' -s -O0 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields'
+ccflags=' -s -O0 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fwrapv -fno-strict-aliasing -mms-bitfields'
ccflags_uselargefiles=''
ccname='gcc'
ccsymbols=''
ccversion=''
cf_by='siepo'
cf_email='tex-live\@tug.org'
-cf_time='Fri Apr 24 21:28:54 2015'
+cf_time='Sun Mar 13 16:28:51 2016'
charbits='8'
chgrp=''
chmod=''
@@ -223,24 +223,27 @@ d_Gconvert='sprintf((b),"%.*g",(n),(x))'
d_PRIEUldbl='undef'
d_PRIFUldbl='undef'
d_PRIGUldbl='undef'
-d_PRIXU64='undef'
-d_PRId64='undef'
+d_PRIXU64='define'
+d_PRId64='define'
d_PRIeldbl='undef'
d_PRIfldbl='undef'
d_PRIgldbl='undef'
-d_PRIi64='undef'
-d_PRIo64='undef'
-d_PRIu64='undef'
-d_PRIx64='undef'
+d_PRIi64='define'
+d_PRIo64='define'
+d_PRIu64='define'
+d_PRIx64='define'
d_SCNfldbl='undef'
d__fwalk='undef'
d_access='define'
d_accessx='undef'
+d_acosh='undef'
d_aintl='undef'
d_alarm='define'
d_archlib='define'
d_asctime64='undef'
d_asctime_r='undef'
+d_asinh='undef'
+d_atanh='undef'
d_atolf='undef'
d_atoll='undef'
d_attribute_deprecated='undef'
@@ -251,6 +254,7 @@ d_attribute_noreturn='undef'
d_attribute_pure='undef'
d_attribute_unused='undef'
d_attribute_warn_unused_result='undef'
+d_backtrace='undef'
d_bcmp='undef'
d_bcopy='undef'
d_bsd='define'
@@ -262,6 +266,7 @@ d_bzero='undef'
d_c99_variadic_macros='undef'
d_casti32='define'
d_castneg='define'
+d_cbrt='undef'
d_charvspr='undef'
d_chown='undef'
d_chroot='undef'
@@ -271,6 +276,7 @@ d_clearenv='undef'
d_closedir='define'
d_cmsghdr_s='undef'
d_const='define'
+d_copysign='undef'
d_copysignl='undef'
d_cplusplus='undef'
d_crypt='define'
@@ -288,6 +294,7 @@ d_difftime='define'
d_dir_dd_fd='undef'
d_dirfd='undef'
d_dirnamlen='define'
+d_dladdr='undef'
d_dlerror='define'
d_dlopen='define'
d_dlsymun='undef'
@@ -309,7 +316,11 @@ d_endpwent_r='undef'
d_endsent='undef'
d_endservent_r='undef'
d_eofnblk='define'
+d_erf='undef'
+d_erfc='undef'
d_eunice='undef'
+d_exp2='undef'
+d_expm1='undef'
d_faststdio='define'
d_fchdir='undef'
d_fchmod='undef'
@@ -318,19 +329,27 @@ d_fcntl='undef'
d_fcntl_can_lock='undef'
d_fd_macros='define'
d_fd_set='define'
+d_fdim='undef'
d_fds_bits='define'
+d_fegetround='undef'
d_fgetpos='define'
d_finite='undef'
d_finitel='undef'
d_flexfnam='define'
d_flock='define'
d_flockproto='define'
+d_fma='undef'
+d_fmax='undef'
+d_fmin='undef'
d_fork='undef'
d_fp_class='undef'
+d_fp_classify='undef'
+d_fp_classl='undef'
d_fpathconf='undef'
d_fpclass='undef'
d_fpclassify='undef'
d_fpclassl='undef'
+d_fpgetround='undef'
d_fpos64_t='undef'
d_frexpl='undef'
d_fs_data_s='undef'
@@ -408,6 +427,8 @@ d_gnulibc='undef'
d_grpasswd='undef'
d_hasmntopt='undef'
d_htonl='define'
+d_hypot='undef'
+d_ilogb='undef'
d_ilogbl='undef'
d_inc_version_list='undef'
d_index='undef'
@@ -422,21 +443,42 @@ d_ipv6_mreq_source='undef'
d_isascii='define'
d_isblank='undef'
d_isfinite='undef'
+d_isfinitel='undef'
d_isinf='undef'
+d_isinfl='undef'
+d_isless='undef'
d_isnan='define'
d_isnanl='undef'
+d_isnormal='undef'
+d_j0='undef'
+d_j0l='undef'
d_killpg='define'
+d_lc_monetary_2008='undef'
d_lchown='undef'
d_ldbl_dig='define'
+d_ldexpl='undef'
+d_lgamma='undef'
+d_lgamma_r='undef'
d_libm_lib_version='undef'
d_link='define'
+d_llrint='undef'
+d_llrintl='undef'
+d_llround='undef'
+d_llroundl='undef'
d_localtime64='undef'
d_localtime_r='undef'
d_localtime_r_needs_tzset='undef'
d_locconv='define'
d_lockf='undef'
+d_log1p='undef'
+d_log2='undef'
+d_logb='undef'
d_longdbl='define'
d_longlong='define'
+d_lrint='undef'
+d_lrintl='undef'
+d_lround='undef'
+d_lroundl='undef'
d_lseekproto='define'
d_lstat='undef'
d_madvise='undef'
@@ -476,8 +518,12 @@ d_msgsnd='undef'
d_msync='undef'
d_munmap='undef'
d_mymalloc='undef'
+d_nan='undef'
d_ndbm='undef'
d_ndbm_h_uses_prototypes='undef'
+d_nearbyint='undef'
+d_nextafter='undef'
+d_nexttoward='undef'
d_nice='undef'
d_nl_langinfo='undef'
d_nv_preserves_uv='define'
@@ -502,6 +548,7 @@ d_pseudofork='define'
d_pthread_atfork='undef'
d_pthread_attr_setscope='undef'
d_pthread_yield='undef'
+d_ptrdiff_t='define'
d_pwage='undef'
d_pwchange='undef'
d_pwclass='undef'
@@ -519,13 +566,19 @@ d_readdir_r='undef'
d_readlink='undef'
d_readv='undef'
d_recvmsg='undef'
+d_regcomp='undef'
+d_remainder='undef'
+d_remquo='undef'
d_rename='define'
d_rewinddir='define'
+d_rint='undef'
d_rmdir='define'
+d_round='undef'
d_safebcpy='undef'
d_safemcpy='undef'
d_sanemcmp='define'
d_sbrkproto='undef'
+d_scalbn='undef'
d_scalbnl='undef'
d_sched_yield='undef'
d_scm_rights='undef'
@@ -597,6 +650,7 @@ d_srand48_r='undef'
d_srandom_r='undef'
d_sresgproto='undef'
d_sresuproto='undef'
+d_stat='define'
d_statblks='undef'
d_statfs_f_flags='undef'
d_statfs_s='undef'
@@ -639,13 +693,16 @@ d_tcgetpgrp='undef'
d_tcsetpgrp='undef'
d_telldir='define'
d_telldirproto='define'
+d_tgamma='undef'
d_time='define'
d_timegm='undef'
d_times='define'
d_tm_tm_gmtoff='undef'
d_tm_tm_zone='undef'
d_tmpnam_r='undef'
+d_trunc='undef'
d_truncate='undef'
+d_truncl='undef'
d_ttyname_r='undef'
d_tzname='define'
d_u32align='define'
@@ -671,7 +728,9 @@ d_vprintf='define'
d_vsnprintf='define'
d_wait4='undef'
d_waitpid='define'
+d_wcscmp='define'
d_wcstombs='define'
+d_wcsxfrm='define'
d_wctomb='define'
d_writev='undef'
d_xenix='undef'
@@ -685,11 +744,12 @@ direntrytype='struct direct'
dlext='dll'
dlltool='dlltool'
dlsrc='dl_win32.xs'
+doublekind='3'
doublesize='8'
drand01='Perl_drand48()'
drand48_r_proto='0'
dtrace=''
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash IO List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
+dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash IO List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Win32 Win32API/File XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
eagain='EAGAIN'
ebcdic='undef'
echo='echo'
@@ -704,7 +764,7 @@ endservent_r_proto='0'
eunicefix=':'
exe_ext='.exe'
expr='expr'
-extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CGI CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/Build Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Opcode POSIX Package/Constants Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
+extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Opcode POSIX Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
extern_C='extern'
extras=''
fflushNULL='define'
@@ -721,7 +781,7 @@ full_csh=''
full_sed=''
gccansipedantic=''
gccosandvers=''
-gccversion='4.8.3'
+gccversion='4.9.2'
getgrent_r_proto='0'
getgrgid_r_proto='0'
getgrnam_r_proto='0'
@@ -772,13 +832,16 @@ i8size='1'
i8type='char'
i_arpainet='define'
i_assert='define'
+i_bfd='undef'
i_bsdioctl=''
i_crypt='undef'
i_db='undef'
i_dbm='undef'
i_dirent='define'
i_dlfcn='define'
+i_execinfo='undef'
i_fcntl='define'
+i_fenv='undef'
i_float='define'
i_fp='undef'
i_fp_class='undef'
@@ -807,6 +870,7 @@ i_poll='undef'
i_prot='undef'
i_pthread='undef'
i_pwd='undef'
+i_quadmath='undef'
i_rpcsvcdbm='undef'
i_sgtty='undef'
i_shadow='undef'
@@ -814,6 +878,7 @@ i_socks='undef'
i_stdarg='define'
i_stdbool='define'
i_stddef='define'
+i_stdint='undef'
i_stdlib='define'
i_string='define'
i_sunmath='undef'
@@ -897,7 +962,7 @@ issymlink=''
ivdformat='"ld"'
ivsize='4'
ivtype='long'
-known_extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CGI CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/Build Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Package/Constants Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
+known_extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
ksh=''
ld='g++'
lddlflags='-mdll -s -L"$rootdir\\lib\\CORE" -L"$mingdir\\lib"'
@@ -907,7 +972,7 @@ ldlibpthname=''
less='less'
lib_ext='.a'
libc=''
-libperl='libperl520.a'
+libperl='libperl522.a'
libpth='$mingdir\\lib'
libs='-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
libsdirs=''
@@ -924,6 +989,7 @@ lns='copy'
localtime_r_proto='0'
locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
+longdblkind='3'
longdblsize='12'
longlongsize='8'
longsize='4'
@@ -933,9 +999,6 @@ ls='dir'
lseeksize='8'
lseektype='long long'
mad='undef'
-madlyh=''
-madlyobj=''
-madlysrc=''
mail=''
mailx=''
make='dmake'
@@ -970,7 +1033,7 @@ netdb_net_type='long'
nm='nm'
nm_opt=''
nm_so_opt=''
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CGI CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/Build Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Package/Constants Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version'
+nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local Unicode/Normalize XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version'
nroff=''
nvEUformat='"E"'
nvFUformat='"F"'
@@ -988,12 +1051,12 @@ old_pthread_create_joinable=''
optimize='-s -O0'
orderlib='false'
osname='MSWin32'
-osvers='6.3'
+osvers='6.1'
otherlibdirs=''
package='perl5'
pager='more /e'
passcat=''
-patchlevel='20'
+patchlevel='22'
path_sep=';'
perl5=''
perl='perl'
@@ -1035,19 +1098,19 @@ sGMTIME_max="2147483647"
sGMTIME_min="0"
sLOCALTIME_max="2147483647"
sLOCALTIME_min="0"
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
+sPRIEUldbl='"LE"'
+sPRIFUldbl='"LF"'
+sPRIGUldbl='"LG"'
sPRIXU64='"lX"'
sPRId64='"ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
+sPRIeldbl='"Le"'
+sPRIfldbl='"Lf"'
+sPRIgldbl='"Lg"'
sPRIi64='"li"'
sPRIo64='"lo"'
sPRIu64='"lu"'
sPRIx64='"lx"'
-sSCNfldbl='"f"'
+sSCNfldbl='"Lf"'
sched_yield=''
scriptdir='$rootdir\\bin'
scriptdirexp='$rootdir\\bin'
@@ -1126,7 +1189,7 @@ stdio_stream_array=''
strerror_r_proto='0'
strings='/usr/include/string.h'
submit=''
-subversion='2'
+subversion='1'
sysman='/usr/man/man1'
tail=''
tar=''
@@ -1162,6 +1225,7 @@ uquadtype='unsigned long long'
use5005threads='undef'
use64bitall='undef'
use64bitint='undef'
+usecbacktrace='undef'
usecrosscompile='undef'
usedevel='undef'
usedl='define'
@@ -1180,6 +1244,7 @@ usensgetexecutablepath='undef'
useopcode='true'
useperlio='define'
useposix='true'
+usequadmath='undef'
usereentrant='undef'
userelocatableinc='undef'
useshrplib='true'
@@ -1216,8 +1281,8 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.20.2'
-version_patchlevel_string='version 20 subversion 2'
+version='5.22.1'
+version_patchlevel_string='version 22 subversion 1'
versiononly='undef'
vi=''
xlibpth='/usr/lib/386 /lib/386'
@@ -1235,7 +1300,7 @@ s/(byteorder=)(['"]).*?\2/$1$2$Config::byteorder$2/m;
my $config_sh_len = length $_;
our $Config_SH_expanded = "\n$_" . << 'EOVIRTUAL';
-ccflags_nolargefiles=' -s -O0 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields'
+ccflags_nolargefiles=' -s -O0 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fwrapv -fno-strict-aliasing -mms-bitfields'
ldflags_nolargefiles='-s -L\"$rootdir\\lib\\CORE\" -L\"$mingdir\\lib\"'
libs_nolargefiles='-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
libswanted_nolargefiles=''
diff --git a/Master/tlpkg/tlperl/lib/Config_heavy.pl.orig b/Master/tlpkg/tlperl/lib/Config_heavy.pl.orig
index 9d1910868e5..745f9adf08f 100644
--- a/Master/tlpkg/tlperl/lib/Config_heavy.pl.orig
+++ b/Master/tlpkg/tlperl/lib/Config_heavy.pl.orig
@@ -69,7 +69,7 @@ sub header_files {
util.h);
}
-### Configured by: siepo@W7
+### Configured by: siepo@W7_64
### Target system: WIN32
our $summary = <<'!END!';
@@ -88,8 +88,8 @@ Summary of my $package (revision $revision $version_patchlevel_string) configura
optimize='$optimize',
cppflags='$cppflags'
ccversion='$ccversion', gccversion='$gccversion', gccosandvers='$gccosandvers'
- intsize=$intsize, longsize=$longsize, ptrsize=$ptrsize, doublesize=$doublesize, byteorder=$byteorder
- d_longlong=$d_longlong, longlongsize=$longlongsize, d_longdbl=$d_longdbl, longdblsize=$longdblsize
+ intsize=$intsize, longsize=$longsize, ptrsize=$ptrsize, doublesize=$doublesize, byteorder=$byteorder, doublekind=$doublekind
+ d_longlong=$d_longlong, longlongsize=$longlongsize, d_longdbl=$d_longdbl, longdblsize=$longdblsize, longdblkind=$longdblkind
ivtype='$ivtype', ivsize=$ivsize, nvtype='$nvtype', nvsize=$nvsize, Off_t='$lseektype', lseeksize=$lseeksize
alignbytes=$alignbytes, prototype=$prototype
Linker and Libraries:
@@ -134,18 +134,18 @@ Header=''
Id='$Id'
Locker=''
Log='$Log'
-PATCHLEVEL='20'
+PATCHLEVEL='22'
PERL_API_REVISION='5'
PERL_API_SUBVERSION='0'
-PERL_API_VERSION='20'
+PERL_API_VERSION='22'
PERL_CONFIG_SH='true'
PERL_PATCHLEVEL=''
PERL_REVISION='5'
-PERL_SUBVERSION='2'
-PERL_VERSION='20'
+PERL_SUBVERSION='1'
+PERL_VERSION='22'
RCSfile='$RCSfile'
Revision='$Revision'
-SUBVERSION='2'
+SUBVERSION='1'
Source=''
State=''
_a='.a'
@@ -158,8 +158,8 @@ ansi2knr=''
aphostname=''
api_revision='5'
api_subversion='0'
-api_version='20'
-api_versionstring='5.20.0'
+api_version='22'
+api_versionstring='5.22.0'
ar='ar'
archlib='c:\tlperl\lib'
archlibexp='c:\tlperl\lib'
@@ -182,14 +182,14 @@ cat='type'
cc='gcc'
cccdlflags=' '
ccdlflags=' '
-ccflags=' -s -O0 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields'
+ccflags=' -s -O0 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fwrapv -fno-strict-aliasing -mms-bitfields'
ccflags_uselargefiles=''
ccname='gcc'
ccsymbols=''
ccversion=''
cf_by='siepo'
-cf_email='siepo@W7'
-cf_time='Fri Apr 24 15:37:17 2015'
+cf_email='siepo@W7_64'
+cf_time='Sun Mar 13 16:28:51 2016'
charbits='8'
chgrp=''
chmod=''
@@ -218,24 +218,27 @@ d_Gconvert='sprintf((b),"%.*g",(n),(x))'
d_PRIEUldbl='undef'
d_PRIFUldbl='undef'
d_PRIGUldbl='undef'
-d_PRIXU64='undef'
-d_PRId64='undef'
+d_PRIXU64='define'
+d_PRId64='define'
d_PRIeldbl='undef'
d_PRIfldbl='undef'
d_PRIgldbl='undef'
-d_PRIi64='undef'
-d_PRIo64='undef'
-d_PRIu64='undef'
-d_PRIx64='undef'
+d_PRIi64='define'
+d_PRIo64='define'
+d_PRIu64='define'
+d_PRIx64='define'
d_SCNfldbl='undef'
d__fwalk='undef'
d_access='define'
d_accessx='undef'
+d_acosh='undef'
d_aintl='undef'
d_alarm='define'
d_archlib='define'
d_asctime64='undef'
d_asctime_r='undef'
+d_asinh='undef'
+d_atanh='undef'
d_atolf='undef'
d_atoll='undef'
d_attribute_deprecated='undef'
@@ -246,6 +249,7 @@ d_attribute_noreturn='undef'
d_attribute_pure='undef'
d_attribute_unused='undef'
d_attribute_warn_unused_result='undef'
+d_backtrace='undef'
d_bcmp='undef'
d_bcopy='undef'
d_bsd='define'
@@ -257,6 +261,7 @@ d_bzero='undef'
d_c99_variadic_macros='undef'
d_casti32='define'
d_castneg='define'
+d_cbrt='undef'
d_charvspr='undef'
d_chown='undef'
d_chroot='undef'
@@ -266,6 +271,7 @@ d_clearenv='undef'
d_closedir='define'
d_cmsghdr_s='undef'
d_const='define'
+d_copysign='undef'
d_copysignl='undef'
d_cplusplus='undef'
d_crypt='define'
@@ -283,6 +289,7 @@ d_difftime='define'
d_dir_dd_fd='undef'
d_dirfd='undef'
d_dirnamlen='define'
+d_dladdr='undef'
d_dlerror='define'
d_dlopen='define'
d_dlsymun='undef'
@@ -304,7 +311,11 @@ d_endpwent_r='undef'
d_endsent='undef'
d_endservent_r='undef'
d_eofnblk='define'
+d_erf='undef'
+d_erfc='undef'
d_eunice='undef'
+d_exp2='undef'
+d_expm1='undef'
d_faststdio='define'
d_fchdir='undef'
d_fchmod='undef'
@@ -313,19 +324,27 @@ d_fcntl='undef'
d_fcntl_can_lock='undef'
d_fd_macros='define'
d_fd_set='define'
+d_fdim='undef'
d_fds_bits='define'
+d_fegetround='undef'
d_fgetpos='define'
d_finite='undef'
d_finitel='undef'
d_flexfnam='define'
d_flock='define'
d_flockproto='define'
+d_fma='undef'
+d_fmax='undef'
+d_fmin='undef'
d_fork='undef'
d_fp_class='undef'
+d_fp_classify='undef'
+d_fp_classl='undef'
d_fpathconf='undef'
d_fpclass='undef'
d_fpclassify='undef'
d_fpclassl='undef'
+d_fpgetround='undef'
d_fpos64_t='undef'
d_frexpl='undef'
d_fs_data_s='undef'
@@ -403,6 +422,8 @@ d_gnulibc='undef'
d_grpasswd='undef'
d_hasmntopt='undef'
d_htonl='define'
+d_hypot='undef'
+d_ilogb='undef'
d_ilogbl='undef'
d_inc_version_list='undef'
d_index='undef'
@@ -417,21 +438,42 @@ d_ipv6_mreq_source='undef'
d_isascii='define'
d_isblank='undef'
d_isfinite='undef'
+d_isfinitel='undef'
d_isinf='undef'
+d_isinfl='undef'
+d_isless='undef'
d_isnan='define'
d_isnanl='undef'
+d_isnormal='undef'
+d_j0='undef'
+d_j0l='undef'
d_killpg='define'
+d_lc_monetary_2008='undef'
d_lchown='undef'
d_ldbl_dig='define'
+d_ldexpl='undef'
+d_lgamma='undef'
+d_lgamma_r='undef'
d_libm_lib_version='undef'
d_link='define'
+d_llrint='undef'
+d_llrintl='undef'
+d_llround='undef'
+d_llroundl='undef'
d_localtime64='undef'
d_localtime_r='undef'
d_localtime_r_needs_tzset='undef'
d_locconv='define'
d_lockf='undef'
+d_log1p='undef'
+d_log2='undef'
+d_logb='undef'
d_longdbl='define'
d_longlong='define'
+d_lrint='undef'
+d_lrintl='undef'
+d_lround='undef'
+d_lroundl='undef'
d_lseekproto='define'
d_lstat='undef'
d_madvise='undef'
@@ -471,8 +513,12 @@ d_msgsnd='undef'
d_msync='undef'
d_munmap='undef'
d_mymalloc='undef'
+d_nan='undef'
d_ndbm='undef'
d_ndbm_h_uses_prototypes='undef'
+d_nearbyint='undef'
+d_nextafter='undef'
+d_nexttoward='undef'
d_nice='undef'
d_nl_langinfo='undef'
d_nv_preserves_uv='define'
@@ -497,6 +543,7 @@ d_pseudofork='define'
d_pthread_atfork='undef'
d_pthread_attr_setscope='undef'
d_pthread_yield='undef'
+d_ptrdiff_t='define'
d_pwage='undef'
d_pwchange='undef'
d_pwclass='undef'
@@ -514,13 +561,19 @@ d_readdir_r='undef'
d_readlink='undef'
d_readv='undef'
d_recvmsg='undef'
+d_regcomp='undef'
+d_remainder='undef'
+d_remquo='undef'
d_rename='define'
d_rewinddir='define'
+d_rint='undef'
d_rmdir='define'
+d_round='undef'
d_safebcpy='undef'
d_safemcpy='undef'
d_sanemcmp='define'
d_sbrkproto='undef'
+d_scalbn='undef'
d_scalbnl='undef'
d_sched_yield='undef'
d_scm_rights='undef'
@@ -592,6 +645,7 @@ d_srand48_r='undef'
d_srandom_r='undef'
d_sresgproto='undef'
d_sresuproto='undef'
+d_stat='define'
d_statblks='undef'
d_statfs_f_flags='undef'
d_statfs_s='undef'
@@ -634,13 +688,16 @@ d_tcgetpgrp='undef'
d_tcsetpgrp='undef'
d_telldir='define'
d_telldirproto='define'
+d_tgamma='undef'
d_time='define'
d_timegm='undef'
d_times='define'
d_tm_tm_gmtoff='undef'
d_tm_tm_zone='undef'
d_tmpnam_r='undef'
+d_trunc='undef'
d_truncate='undef'
+d_truncl='undef'
d_ttyname_r='undef'
d_tzname='define'
d_u32align='define'
@@ -666,7 +723,9 @@ d_vprintf='define'
d_vsnprintf='define'
d_wait4='undef'
d_waitpid='define'
+d_wcscmp='define'
d_wcstombs='define'
+d_wcsxfrm='define'
d_wctomb='define'
d_writev='undef'
d_xenix='undef'
@@ -680,11 +739,12 @@ direntrytype='struct direct'
dlext='dll'
dlltool='dlltool'
dlsrc='dl_win32.xs'
+doublekind='3'
doublesize='8'
drand01='Perl_drand48()'
drand48_r_proto='0'
dtrace=''
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash IO List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
+dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash IO List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Win32 Win32API/File XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
eagain='EAGAIN'
ebcdic='undef'
echo='echo'
@@ -699,7 +759,7 @@ endservent_r_proto='0'
eunicefix=':'
exe_ext='.exe'
expr='expr'
-extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CGI CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/Build Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Opcode POSIX Package/Constants Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
+extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Opcode POSIX Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
extern_C='extern'
extras=''
fflushNULL='define'
@@ -716,7 +776,7 @@ full_csh=''
full_sed=''
gccansipedantic=''
gccosandvers=''
-gccversion='4.8.3'
+gccversion='4.9.2'
getgrent_r_proto='0'
getgrgid_r_proto='0'
getgrnam_r_proto='0'
@@ -767,13 +827,16 @@ i8size='1'
i8type='char'
i_arpainet='define'
i_assert='define'
+i_bfd='undef'
i_bsdioctl=''
i_crypt='undef'
i_db='undef'
i_dbm='undef'
i_dirent='define'
i_dlfcn='define'
+i_execinfo='undef'
i_fcntl='define'
+i_fenv='undef'
i_float='define'
i_fp='undef'
i_fp_class='undef'
@@ -802,6 +865,7 @@ i_poll='undef'
i_prot='undef'
i_pthread='undef'
i_pwd='undef'
+i_quadmath='undef'
i_rpcsvcdbm='undef'
i_sgtty='undef'
i_shadow='undef'
@@ -809,6 +873,7 @@ i_socks='undef'
i_stdarg='define'
i_stdbool='define'
i_stddef='define'
+i_stdint='undef'
i_stdlib='define'
i_string='define'
i_sunmath='undef'
@@ -892,7 +957,7 @@ issymlink=''
ivdformat='"ld"'
ivsize='4'
ivtype='long'
-known_extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CGI CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/Build Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Package/Constants Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
+known_extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
ksh=''
ld='g++'
lddlflags='-mdll -s -L"c:\tlperl\lib\CORE" -L"X:\mingw\lib"'
@@ -902,7 +967,7 @@ ldlibpthname=''
less='less'
lib_ext='.a'
libc=''
-libperl='libperl520.a'
+libperl='libperl522.a'
libpth='X:\mingw\lib'
libs='-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
libsdirs=''
@@ -919,6 +984,7 @@ lns='copy'
localtime_r_proto='0'
locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
+longdblkind='3'
longdblsize='12'
longlongsize='8'
longsize='4'
@@ -928,9 +994,6 @@ ls='dir'
lseeksize='8'
lseektype='long long'
mad='undef'
-madlyh=''
-madlyobj=''
-madlysrc=''
mail=''
mailx=''
make='dmake'
@@ -965,7 +1028,7 @@ netdb_net_type='long'
nm='nm'
nm_opt=''
nm_so_opt=''
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CGI CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/Build Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Package/Constants Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version'
+nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local Unicode/Normalize XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version'
nroff=''
nvEUformat='"E"'
nvFUformat='"F"'
@@ -983,12 +1046,12 @@ old_pthread_create_joinable=''
optimize='-s -O0'
orderlib='false'
osname='MSWin32'
-osvers='4.0'
+osvers='6.1'
otherlibdirs=''
package='perl5'
pager='more /e'
passcat=''
-patchlevel='20'
+patchlevel='22'
path_sep=';'
perl5=''
perl='perl'
@@ -1030,19 +1093,19 @@ sGMTIME_max="2147483647"
sGMTIME_min="0"
sLOCALTIME_max="2147483647"
sLOCALTIME_min="0"
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
+sPRIEUldbl='"LE"'
+sPRIFUldbl='"LF"'
+sPRIGUldbl='"LG"'
sPRIXU64='"lX"'
sPRId64='"ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
+sPRIeldbl='"Le"'
+sPRIfldbl='"Lf"'
+sPRIgldbl='"Lg"'
sPRIi64='"li"'
sPRIo64='"lo"'
sPRIu64='"lu"'
sPRIx64='"lx"'
-sSCNfldbl='"f"'
+sSCNfldbl='"Lf"'
sched_yield=''
scriptdir='c:\tlperl\bin'
scriptdirexp='c:\tlperl\bin'
@@ -1121,7 +1184,7 @@ stdio_stream_array=''
strerror_r_proto='0'
strings='/usr/include/string.h'
submit=''
-subversion='2'
+subversion='1'
sysman='/usr/man/man1'
tail=''
tar=''
@@ -1157,6 +1220,7 @@ uquadtype='unsigned long long'
use5005threads='undef'
use64bitall='undef'
use64bitint='undef'
+usecbacktrace='undef'
usecrosscompile='undef'
usedevel='undef'
usedl='define'
@@ -1175,6 +1239,7 @@ usensgetexecutablepath='undef'
useopcode='true'
useperlio='define'
useposix='true'
+usequadmath='undef'
usereentrant='undef'
userelocatableinc='undef'
useshrplib='true'
@@ -1211,8 +1276,8 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.20.2'
-version_patchlevel_string='version 20 subversion 2'
+version='5.22.1'
+version_patchlevel_string='version 22 subversion 1'
versiononly='undef'
vi=''
xlibpth='/usr/lib/386 /lib/386'
@@ -1230,7 +1295,7 @@ s/(byteorder=)(['"]).*?\2/$1$2$Config::byteorder$2/m;
my $config_sh_len = length $_;
our $Config_SH_expanded = "\n$_" . << 'EOVIRTUAL';
-ccflags_nolargefiles=' -s -O0 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields'
+ccflags_nolargefiles=' -s -O0 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fwrapv -fno-strict-aliasing -mms-bitfields'
ldflags_nolargefiles='-s -L"c:\tlperl\lib\CORE" -L"X:\mingw\lib"'
libs_nolargefiles='-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
libswanted_nolargefiles=''
diff --git a/Master/tlpkg/tlperl/lib/Cwd.pm b/Master/tlpkg/tlperl/lib/Cwd.pm
index 210ea323da6..49cc4c1b398 100644
--- a/Master/tlpkg/tlperl/lib/Cwd.pm
+++ b/Master/tlpkg/tlperl/lib/Cwd.pm
@@ -1,177 +1,9 @@
package Cwd;
-
-=head1 NAME
-
-Cwd - get pathname of current working directory
-
-=head1 SYNOPSIS
-
- use Cwd;
- my $dir = getcwd;
-
- use Cwd 'abs_path';
- my $abs_path = abs_path($file);
-
-=head1 DESCRIPTION
-
-This module provides functions for determining the pathname of the
-current working directory. It is recommended that getcwd (or another
-*cwd() function) be used in I<all> code to ensure portability.
-
-By default, it exports the functions cwd(), getcwd(), fastcwd(), and
-fastgetcwd() (and, on Win32, getdcwd()) into the caller's namespace.
-
-
-=head2 getcwd and friends
-
-Each of these functions are called without arguments and return the
-absolute path of the current working directory.
-
-=over 4
-
-=item getcwd
-
- my $cwd = getcwd();
-
-Returns the current working directory.
-
-Exposes the POSIX function getcwd(3) or re-implements it if it's not
-available.
-
-=item cwd
-
- my $cwd = cwd();
-
-The cwd() is the most natural form for the current architecture. For
-most systems it is identical to `pwd` (but without the trailing line
-terminator).
-
-=item fastcwd
-
- my $cwd = fastcwd();
-
-A more dangerous version of getcwd(), but potentially faster.
-
-It might conceivably chdir() you out of a directory that it can't
-chdir() you back into. If fastcwd encounters a problem it will return
-undef but will probably leave you in a different directory. For a
-measure of extra security, if everything appears to have worked, the
-fastcwd() function will check that it leaves you in the same directory
-that it started in. If it has changed it will C<die> with the message
-"Unstable directory path, current directory changed
-unexpectedly". That should never happen.
-
-=item fastgetcwd
-
- my $cwd = fastgetcwd();
-
-The fastgetcwd() function is provided as a synonym for cwd().
-
-=item getdcwd
-
- my $cwd = getdcwd();
- my $cwd = getdcwd('C:');
-
-The getdcwd() function is also provided on Win32 to get the current working
-directory on the specified drive, since Windows maintains a separate current
-working directory for each drive. If no drive is specified then the current
-drive is assumed.
-
-This function simply calls the Microsoft C library _getdcwd() function.
-
-=back
-
-
-=head2 abs_path and friends
-
-These functions are exported only on request. They each take a single
-argument and return the absolute pathname for it. If no argument is
-given they'll use the current working directory.
-
-=over 4
-
-=item abs_path
-
- my $abs_path = abs_path($file);
-
-Uses the same algorithm as getcwd(). Symbolic links and relative-path
-components ("." and "..") are resolved to return the canonical
-pathname, just like realpath(3).
-
-=item realpath
-
- my $abs_path = realpath($file);
-
-A synonym for abs_path().
-
-=item fast_abs_path
-
- my $abs_path = fast_abs_path($file);
-
-A more dangerous, but potentially faster version of abs_path.
-
-=back
-
-=head2 $ENV{PWD}
-
-If you ask to override your chdir() built-in function,
-
- use Cwd qw(chdir);
-
-then your PWD environment variable will be kept up to date. Note that
-it will only be kept up to date if all packages which use chdir import
-it from Cwd.
-
-
-=head1 NOTES
-
-=over 4
-
-=item *
-
-Since the path separators are different on some operating systems ('/'
-on Unix, ':' on MacPerl, etc...) we recommend you use the File::Spec
-modules wherever portability is a concern.
-
-=item *
-
-Actually, on Mac OS, the C<getcwd()>, C<fastgetcwd()> and C<fastcwd()>
-functions are all aliases for the C<cwd()> function, which, on Mac OS,
-calls `pwd`. Likewise, the C<abs_path()> function is an alias for
-C<fast_abs_path()>.
-
-=back
-
-=head1 AUTHOR
-
-Originally by the perl5-porters.
-
-Maintained by Ken Williams <KWILLIAMS@cpan.org>
-
-=head1 COPYRIGHT
-
-Copyright (c) 2004 by the Perl 5 Porters. All rights reserved.
-
-This program is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-Portions of the C code in this library are copyright (c) 1994 by the
-Regents of the University of California. All rights reserved. The
-license on this code is compatible with the licensing of the rest of
-the distribution - please see the source code in F<Cwd.xs> for the
-details.
-
-=head1 SEE ALSO
-
-L<File::chdir>
-
-=cut
-
use strict;
use Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
-$VERSION = '3.48_01';
+$VERSION = '3.56';
my $xs_version = $VERSION;
$VERSION =~ tr/_//;
@@ -242,8 +74,10 @@ sub _vms_efs {
# If loading the XS stuff doesn't work, we can fall back to pure perl
-unless (defined &getcwd) {
- eval {
+if(! defined &getcwd && defined &DynaLoader::boot_DynaLoader) {
+ eval {#eval is questionable since we are handling potential errors like
+ #"Cwd object version 3.48 does not match bootstrap parameter 3.50
+ #at lib/DynaLoader.pm line 216." by having this eval
if ( $] >= 5.006 ) {
require XSLoader;
XSLoader::load( __PACKAGE__, $xs_version);
@@ -333,14 +167,15 @@ $METHOD_MAP{NT} = $METHOD_MAP{MSWin32};
# are safe. This prevents _backtick_pwd() consulting $ENV{PATH}
# so everything works under taint mode.
my $pwd_cmd;
-foreach my $try ('/bin/pwd',
- '/usr/bin/pwd',
- '/QOpenSys/bin/pwd', # OS/400 PASE.
- ) {
-
- if( -x $try ) {
- $pwd_cmd = $try;
- last;
+if($^O ne 'MSWin32') {
+ foreach my $try ('/bin/pwd',
+ '/usr/bin/pwd',
+ '/QOpenSys/bin/pwd', # OS/400 PASE.
+ ) {
+ if( -x $try ) {
+ $pwd_cmd = $try;
+ last;
+ }
}
}
@@ -516,7 +351,13 @@ sub chdir_init {
sub chdir {
my $newdir = @_ ? shift : ''; # allow for no arg (chdir to HOME dir)
- $newdir =~ s|///*|/|g unless $^O eq 'MSWin32';
+ if ($^O eq "cygwin") {
+ $newdir =~ s|\A///+|//|;
+ $newdir =~ s|(?<=[^/])//+|/|g;
+ }
+ elsif ($^O ne 'MSWin32') {
+ $newdir =~ s|///*|/|g;
+ }
chdir_init() unless $chdir_init;
my $newpwd;
if ($^O eq 'MSWin32') {
@@ -854,3 +695,171 @@ if (exists $METHOD_MAP{$^O}) {
*realpath = \&abs_path;
1;
+__END__
+
+=head1 NAME
+
+Cwd - get pathname of current working directory
+
+=head1 SYNOPSIS
+
+ use Cwd;
+ my $dir = getcwd;
+
+ use Cwd 'abs_path';
+ my $abs_path = abs_path($file);
+
+=head1 DESCRIPTION
+
+This module provides functions for determining the pathname of the
+current working directory. It is recommended that getcwd (or another
+*cwd() function) be used in I<all> code to ensure portability.
+
+By default, it exports the functions cwd(), getcwd(), fastcwd(), and
+fastgetcwd() (and, on Win32, getdcwd()) into the caller's namespace.
+
+
+=head2 getcwd and friends
+
+Each of these functions are called without arguments and return the
+absolute path of the current working directory.
+
+=over 4
+
+=item getcwd
+
+ my $cwd = getcwd();
+
+Returns the current working directory.
+
+Exposes the POSIX function getcwd(3) or re-implements it if it's not
+available.
+
+=item cwd
+
+ my $cwd = cwd();
+
+The cwd() is the most natural form for the current architecture. For
+most systems it is identical to `pwd` (but without the trailing line
+terminator).
+
+=item fastcwd
+
+ my $cwd = fastcwd();
+
+A more dangerous version of getcwd(), but potentially faster.
+
+It might conceivably chdir() you out of a directory that it can't
+chdir() you back into. If fastcwd encounters a problem it will return
+undef but will probably leave you in a different directory. For a
+measure of extra security, if everything appears to have worked, the
+fastcwd() function will check that it leaves you in the same directory
+that it started in. If it has changed it will C<die> with the message
+"Unstable directory path, current directory changed
+unexpectedly". That should never happen.
+
+=item fastgetcwd
+
+ my $cwd = fastgetcwd();
+
+The fastgetcwd() function is provided as a synonym for cwd().
+
+=item getdcwd
+
+ my $cwd = getdcwd();
+ my $cwd = getdcwd('C:');
+
+The getdcwd() function is also provided on Win32 to get the current working
+directory on the specified drive, since Windows maintains a separate current
+working directory for each drive. If no drive is specified then the current
+drive is assumed.
+
+This function simply calls the Microsoft C library _getdcwd() function.
+
+=back
+
+
+=head2 abs_path and friends
+
+These functions are exported only on request. They each take a single
+argument and return the absolute pathname for it. If no argument is
+given they'll use the current working directory.
+
+=over 4
+
+=item abs_path
+
+ my $abs_path = abs_path($file);
+
+Uses the same algorithm as getcwd(). Symbolic links and relative-path
+components ("." and "..") are resolved to return the canonical
+pathname, just like realpath(3).
+
+=item realpath
+
+ my $abs_path = realpath($file);
+
+A synonym for abs_path().
+
+=item fast_abs_path
+
+ my $abs_path = fast_abs_path($file);
+
+A more dangerous, but potentially faster version of abs_path.
+
+=back
+
+=head2 $ENV{PWD}
+
+If you ask to override your chdir() built-in function,
+
+ use Cwd qw(chdir);
+
+then your PWD environment variable will be kept up to date. Note that
+it will only be kept up to date if all packages which use chdir import
+it from Cwd.
+
+
+=head1 NOTES
+
+=over 4
+
+=item *
+
+Since the path separators are different on some operating systems ('/'
+on Unix, ':' on MacPerl, etc...) we recommend you use the File::Spec
+modules wherever portability is a concern.
+
+=item *
+
+Actually, on Mac OS, the C<getcwd()>, C<fastgetcwd()> and C<fastcwd()>
+functions are all aliases for the C<cwd()> function, which, on Mac OS,
+calls `pwd`. Likewise, the C<abs_path()> function is an alias for
+C<fast_abs_path()>.
+
+=back
+
+=head1 AUTHOR
+
+Originally by the perl5-porters.
+
+Maintained by Ken Williams <KWILLIAMS@cpan.org>
+
+=head1 COPYRIGHT
+
+Copyright (c) 2004 by the Perl 5 Porters. All rights reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+Portions of the C code in this library are copyright (c) 1994 by the
+Regents of the University of California. All rights reserved. The
+license on this code is compatible with the licensing of the rest of
+the distribution - please see the source code in F<Cwd.xs> for the
+details.
+
+=head1 SEE ALSO
+
+L<File::chdir>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/DB.pm b/Master/tlpkg/tlperl/lib/DB.pm
index fd0ff929f2f..404c57cb25c 100644
--- a/Master/tlpkg/tlperl/lib/DB.pm
+++ b/Master/tlpkg/tlperl/lib/DB.pm
@@ -41,7 +41,7 @@ BEGIN {
$DB::subname = ''; # currently executing sub (fully qualified name)
$DB::lineno = ''; # current line number
- $DB::VERSION = $DB::VERSION = '1.07';
+ $DB::VERSION = $DB::VERSION = '1.08';
# initialize private globals to avoid warnings
@@ -244,8 +244,8 @@ sub backtrace {
for (@a) {
s/'/\\'/g;
s/([^\0]*)/'$1'/ unless /^-?[\d.]+$/;
- s/([\200-\377])/sprintf("M-%c",ord($1)&0177)/eg;
- s/([\0-\37\177])/sprintf("^%c",ord($1)^64)/eg;
+ require 'meta_notation.pm';
+ $_ = _meta_notation($_) if /[[:^print:]]/a;
}
$w = $w ? '@ = ' : '$ = ';
$a = $h ? '(' . join(', ', @a) . ')' : '';
diff --git a/Master/tlpkg/tlperl/lib/Data/Dumper.pm b/Master/tlpkg/tlperl/lib/Data/Dumper.pm
index a084712bde9..e884298d746 100644
--- a/Master/tlpkg/tlperl/lib/Data/Dumper.pm
+++ b/Master/tlpkg/tlperl/lib/Data/Dumper.pm
@@ -10,7 +10,7 @@
package Data::Dumper;
BEGIN {
- $VERSION = '2.151_01'; # Don't forget to set version and release
+ $VERSION = '2.158'; # Don't forget to set version and release
} # date in POD below!
#$| = 1;
@@ -37,6 +37,8 @@ BEGIN {
or $Useperl = 1;
}
+my $IS_ASCII = ord 'A' == 65;
+
# module vars and their defaults
$Indent = 2 unless defined $Indent;
$Purity = 0 unless defined $Purity;
@@ -222,8 +224,11 @@ sub DESTROY {}
sub Dump {
return &Dumpxs
- unless $Data::Dumper::Useperl || (ref($_[0]) && $_[0]->{useperl}) ||
- $Data::Dumper::Deparse || (ref($_[0]) && $_[0]->{deparse});
+ unless $Data::Dumper::Useperl || (ref($_[0]) && $_[0]->{useperl})
+ || $Data::Dumper::Deparse || (ref($_[0]) && $_[0]->{deparse})
+
+ # Use pure perl version on earlier releases on EBCDIC platforms
+ || (! $IS_ASCII && $] lt 5.021_010);
return &Dumpperl;
}
@@ -724,41 +729,71 @@ my %esc = (
"\e" => "\\e",
);
+my $low_controls = ($IS_ASCII)
+
+ # This includes \177, because traditionally it has been
+ # output as octal, even though it isn't really a "low"
+ # control
+ ? qr/[\0-\x1f\177]/
+
+ # EBCDIC low controls.
+ : qr/[\0-\x3f]/;
+
# put a string value in double quotes
sub qquote {
local($_) = shift;
s/([\\\"\@\$])/\\$1/g;
+
+ # This efficiently changes the high ordinal characters to \x{} if the utf8
+ # flag is on. On ASCII platforms, the high ordinals are all the
+ # non-ASCII's. On EBCDIC platforms, we don't include in these the non-ASCII
+ # controls whose ordinals are less than SPACE, excluded below by the range
+ # \0-\x3f. On ASCII platforms this range just compiles as part of :ascii:.
+ # On EBCDIC platforms, there is just one outlier high ordinal control, and
+ # it gets output as \x{}.
my $bytes; { use bytes; $bytes = length }
- s/([[:^ascii:]])/'\x{'.sprintf("%x",ord($1)).'}'/ge if $bytes > length;
- return qq("$_") unless
- /[^ !"\#\$%&'()*+,\-.\/0-9:;<=>?\@A-Z[\\\]^_`a-z{|}~]/; # fast exit
+ s/([^[:ascii:]\0-\x3f])/sprintf("\\x{%x}",ord($1))/ge
+ if $bytes > length
- my $high = shift || "";
+ # The above doesn't get the EBCDIC outlier high ordinal control when
+ # the string is UTF-8 but there are no UTF-8 variant characters in it.
+ # We want that to come out as \x{} anyway. We need is_utf8() to do
+ # this.
+ || (! $IS_ASCII && $] ge 5.008_001 && utf8::is_utf8($_));
+
+ return qq("$_") unless /[[:^print:]]/; # fast exit if only printables
+
+ # Here, there is at least one non-printable to output. First, translate the
+ # escapes.
s/([\a\b\t\n\f\r\e])/$esc{$1}/g;
- if (ord('^')==94) { # ascii
- # no need for 3 digits in escape for these
- s/([\0-\037])(?!\d)/'\\'.sprintf('%o',ord($1))/eg;
- s/([\0-\037\177])/'\\'.sprintf('%03o',ord($1))/eg;
+ # no need for 3 digits in escape for octals not followed by a digit.
+ s/($low_controls)(?!\d)/'\\'.sprintf('%o',ord($1))/eg;
+
+ # But otherwise use 3 digits
+ s/($low_controls)/'\\'.sprintf('%03o',ord($1))/eg;
+
# all but last branch below not supported --BEHAVIOR SUBJECT TO CHANGE--
- if ($high eq "iso8859") {
- s/([\200-\240])/'\\'.sprintf('%o',ord($1))/eg;
+ my $high = shift || "";
+ if ($high eq "iso8859") { # Doesn't escape the Latin1 printables
+ if ($IS_ASCII) {
+ s/([\200-\240])/'\\'.sprintf('%o',ord($1))/eg;
+ }
+ elsif ($] ge 5.007_003) {
+ my $high_control = utf8::unicode_to_native(0x9F);
+ s/$high_control/sprintf('\\%o',ord($1))/eg;
+ }
} elsif ($high eq "utf8") {
+# Some discussion of what to do here is in
+# https://rt.perl.org/Ticket/Display.html?id=113088
# use utf8;
# $str =~ s/([^\040-\176])/sprintf "\\x{%04x}", ord($1)/ge;
} elsif ($high eq "8bit") {
# leave it as it is
} else {
- s/([\200-\377])/'\\'.sprintf('%03o',ord($1))/eg;
- s/([^\040-\176])/sprintf "\\x{%04x}", ord($1)/ge;
+ s/([[:^ascii:]])/'\\'.sprintf('%03o',ord($1))/eg;
+ #s/([^\040-\176])/sprintf "\\x{%04x}", ord($1)/ge;
}
- }
- else { # ebcdic
- s{([^ !"\#\$%&'()*+,\-.\/0-9:;<=>?\@A-Z[\\\]^_`a-z{|}~])(?!\d)}
- {my $v = ord($1); '\\'.sprintf(($v <= 037 ? '%o' : '%03o'), $v)}eg;
- s{([^ !"\#\$%&'()*+,\-.\/0-9:;<=>?\@A-Z[\\\]^_`a-z{|}~])}
- {'\\'.sprintf('%03o',ord($1))}eg;
- }
return qq("$_");
}
@@ -1025,9 +1060,7 @@ $Data::Dumper::Useqq I<or> I<$OBJ>->Useqq(I<[NEWVAL]>)
When set, enables the use of double quotes for representing string values.
Whitespace other than space will be represented as C<[\n\t\r]>, "unsafe"
characters will be backslashed, and unprintable characters will be output as
-quoted octal integers. Since setting this variable imposes a performance
-penalty, the default is 0. C<Dump()> will run slower if this flag is set,
-since the fast XSUB implementation doesn't support it yet.
+quoted octal integers. The default is 0.
=item *
@@ -1391,8 +1424,8 @@ to have, you can use the C<Seen> method to pre-seed the internal reference
table and make the dumped output point to them, instead. See L</EXAMPLES>
above.
-The C<Useqq> and C<Deparse> flags makes Dump() run slower, since the
-XSUB implementation does not support them.
+The C<Deparse> flag makes Dump() run slower, since the XSUB
+implementation does not support it.
SCALAR objects have the weirdest looking C<bless> workaround.
@@ -1421,7 +1454,7 @@ modify it under the same terms as Perl itself.
=head1 VERSION
-Version 2.151_01 (January 8 2015)
+Version 2.158 (March 13 2015)
=head1 SEE ALSO
diff --git a/Master/tlpkg/tlperl/lib/Date/Format.pm b/Master/tlpkg/tlperl/lib/Date/Format.pm
deleted file mode 100644
index 3a1ea90ef1f..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Format.pm
+++ /dev/null
@@ -1,403 +0,0 @@
-# Copyright (c) 1995-2009 Graham Barr. This program is free
-# software; you can redistribute it and/or modify it under the same terms
-# as Perl itself.
-
-package Date::Format;
-
-use strict;
-use vars qw(@EXPORT @ISA $VERSION);
-require Exporter;
-
-$VERSION = "2.24";
-@ISA = qw(Exporter);
-@EXPORT = qw(time2str strftime ctime asctime);
-
-sub time2str ($;$$)
-{
- Date::Format::Generic->time2str(@_);
-}
-
-sub strftime ($\@;$)
-{
- Date::Format::Generic->strftime(@_);
-}
-
-sub ctime ($;$)
-{
- my($t,$tz) = @_;
- Date::Format::Generic->time2str("%a %b %e %T %Y\n", $t, $tz);
-}
-
-sub asctime (\@;$)
-{
- my($t,$tz) = @_;
- Date::Format::Generic->strftime("%a %b %e %T %Y\n", $t, $tz);
-}
-
-##
-##
-##
-
-package Date::Format::Generic;
-
-use vars qw($epoch $tzname);
-use Time::Zone;
-use Time::Local;
-
-sub ctime
-{
- my($me,$t,$tz) = @_;
- $me->time2str("%a %b %e %T %Y\n", $t, $tz);
-}
-
-sub asctime
-{
- my($me,$t,$tz) = @_;
- $me->strftime("%a %b %e %T %Y\n", $t, $tz);
-}
-
-sub _subs
-{
- my $fn;
- $_[1] =~ s/
- %(O?[%a-zA-Z])
- /
- ($_[0]->can("format_$1") || sub { $1 })->($_[0]);
- /sgeox;
-
- $_[1];
-}
-
-sub strftime
-{
- my($pkg,$fmt,$time);
-
- ($pkg,$fmt,$time,$tzname) = @_;
-
- my $me = ref($pkg) ? $pkg : bless [];
-
- if(defined $tzname)
- {
- $tzname = uc $tzname;
-
- $tzname = sprintf("%+05d",$tzname)
- unless($tzname =~ /\D/);
-
- $epoch = timegm(@{$time}[0..5]);
-
- @$me = gmtime($epoch + tz_offset($tzname) - tz_offset());
- }
- else
- {
- @$me = @$time;
- undef $epoch;
- }
-
- _subs($me,$fmt);
-}
-
-sub time2str
-{
- my($pkg,$fmt,$time);
-
- ($pkg,$fmt,$time,$tzname) = @_;
-
- my $me = ref($pkg) ? $pkg : bless [], $pkg;
-
- $epoch = $time;
-
- if(defined $tzname)
- {
- $tzname = uc $tzname;
-
- $tzname = sprintf("%+05d",$tzname)
- unless($tzname =~ /\D/);
-
- $time += tz_offset($tzname);
- @$me = gmtime($time);
- }
- else
- {
- @$me = localtime($time);
- }
- $me->[9] = $time;
- _subs($me,$fmt);
-}
-
-my(@DoW,@MoY,@DoWs,@MoYs,@AMPM,%format,@Dsuf);
-
-@DoW = qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday);
-
-@MoY = qw(January February March April May June
- July August September October November December);
-
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-
-@AMPM = qw(AM PM);
-
-@Dsuf = (qw(th st nd rd th th th th th th)) x 3;
-@Dsuf[11,12,13] = qw(th th th);
-@Dsuf[30,31] = qw(th st);
-
-%format = ('x' => "%m/%d/%y",
- 'C' => "%a %b %e %T %Z %Y",
- 'X' => "%H:%M:%S",
- );
-
-my @locale;
-my $locale = "/usr/share/lib/locale/LC_TIME/default";
-local *LOCALE;
-
-if(open(LOCALE,"$locale"))
- {
- chop(@locale = <LOCALE>);
- close(LOCALE);
-
- @MoYs = @locale[0 .. 11];
- @MoY = @locale[12 .. 23];
- @DoWs = @locale[24 .. 30];
- @DoW = @locale[31 .. 37];
- @format{"X","x","C"} = @locale[38 .. 40];
- @AMPM = @locale[41 .. 42];
- }
-
-sub wkyr {
- my($wstart, $wday, $yday) = @_;
- $wday = ($wday + 7 - $wstart) % 7;
- return int(($yday - $wday + 13) / 7 - 1);
-}
-
-##
-## these 6 formatting routins need to be *copied* into the language
-## specific packages
-##
-
-my @roman = ('',qw(I II III IV V VI VII VIII IX));
-sub roman {
- my $n = shift;
-
- $n =~ s/(\d)$//;
- my $r = $roman[ $1 ];
-
- if($n =~ s/(\d)$//) {
- (my $t = $roman[$1]) =~ tr/IVX/XLC/;
- $r = $t . $r;
- }
- if($n =~ s/(\d)$//) {
- (my $t = $roman[$1]) =~ tr/IVX/CDM/;
- $r = $t . $r;
- }
- if($n =~ s/(\d)$//) {
- (my $t = $roman[$1]) =~ tr/IVX/M../;
- $r = $t . $r;
- }
- $r;
-}
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-sub format_P { lc($_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0]) }
-
-sub format_d { sprintf("%02d",$_[0]->[3]) }
-sub format_e { sprintf("%2d",$_[0]->[3]) }
-sub format_H { sprintf("%02d",$_[0]->[2]) }
-sub format_I { sprintf("%02d",$_[0]->[2] % 12 || 12)}
-sub format_j { sprintf("%03d",$_[0]->[7] + 1) }
-sub format_k { sprintf("%2d",$_[0]->[2]) }
-sub format_l { sprintf("%2d",$_[0]->[2] % 12 || 12)}
-sub format_L { $_[0]->[4] + 1 }
-sub format_m { sprintf("%02d",$_[0]->[4] + 1) }
-sub format_M { sprintf("%02d",$_[0]->[1]) }
-sub format_q { sprintf("%01d",int($_[0]->[4] / 3) + 1) }
-sub format_s {
- $epoch = timelocal(@{$_[0]}[0..5])
- unless defined $epoch;
- sprintf("%d",$epoch)
-}
-sub format_S { sprintf("%02d",$_[0]->[0]) }
-sub format_U { wkyr(0, $_[0]->[6], $_[0]->[7]) }
-sub format_w { $_[0]->[6] }
-sub format_W { wkyr(1, $_[0]->[6], $_[0]->[7]) }
-sub format_y { sprintf("%02d",$_[0]->[5] % 100) }
-sub format_Y { sprintf("%04d",$_[0]->[5] + 1900) }
-
-sub format_Z {
- my $o = tz_local_offset(timelocal(@{$_[0]}[0..5]));
- defined $tzname ? $tzname : uc tz_name($o, $_[0]->[8]);
-}
-
-sub format_z {
- my $t = timelocal(@{$_[0]}[0..5]);
- my $o = defined $tzname ? tz_offset($tzname, $t) : tz_offset(undef,$t);
- sprintf("%+03d%02d", int($o / 3600), int(abs($o) % 3600) / 60);
-}
-
-sub format_c { &format_x . " " . &format_X }
-sub format_D { &format_m . "/" . &format_d . "/" . &format_y }
-sub format_r { &format_I . ":" . &format_M . ":" . &format_S . " " . &format_p }
-sub format_R { &format_H . ":" . &format_M }
-sub format_T { &format_H . ":" . &format_M . ":" . &format_S }
-sub format_t { "\t" }
-sub format_n { "\n" }
-sub format_o { sprintf("%2d%s",$_[0]->[3],$Dsuf[$_[0]->[3]]) }
-sub format_x { my $f = $format{'x'}; _subs($_[0],$f); }
-sub format_X { my $f = $format{'X'}; _subs($_[0],$f); }
-sub format_C { my $f = $format{'C'}; _subs($_[0],$f); }
-
-sub format_Od { roman(format_d(@_)) }
-sub format_Oe { roman(format_e(@_)) }
-sub format_OH { roman(format_H(@_)) }
-sub format_OI { roman(format_I(@_)) }
-sub format_Oj { roman(format_j(@_)) }
-sub format_Ok { roman(format_k(@_)) }
-sub format_Ol { roman(format_l(@_)) }
-sub format_Om { roman(format_m(@_)) }
-sub format_OM { roman(format_M(@_)) }
-sub format_Oq { roman(format_q(@_)) }
-sub format_Oy { roman(format_y(@_)) }
-sub format_OY { roman(format_Y(@_)) }
-
-sub format_G { int(($_[0]->[9] - 315993600) / 604800) }
-
-1;
-__END__
-
-=head1 NAME
-
-Date::Format - Date formating subroutines
-
-=head1 SYNOPSIS
-
- use Date::Format;
-
- @lt = localtime(time);
-
- print time2str($template, time);
- print strftime($template, @lt);
-
- print time2str($template, time, $zone);
- print strftime($template, @lt, $zone);
-
- print ctime(time);
- print asctime(@lt);
-
- print ctime(time, $zone);
- print asctime(@lt, $zone);
-
-=head1 DESCRIPTION
-
-This module provides routines to format dates into ASCII strings. They
-correspond to the C library routines C<strftime> and C<ctime>.
-
-=over 4
-
-=item time2str(TEMPLATE, TIME [, ZONE])
-
-C<time2str> converts C<TIME> into an ASCII string using the conversion
-specification given in C<TEMPLATE>. C<ZONE> if given specifies the zone
-which the output is required to be in, C<ZONE> defaults to your current zone.
-
-
-=item strftime(TEMPLATE, TIME [, ZONE])
-
-C<strftime> is similar to C<time2str> with the exception that the time is
-passed as an array, such as the array returned by C<localtime>.
-
-=item ctime(TIME [, ZONE])
-
-C<ctime> calls C<time2str> with the given arguments using the
-conversion specification C<"%a %b %e %T %Y\n">
-
-=item asctime(TIME [, ZONE])
-
-C<asctime> calls C<time2str> with the given arguments using the
-conversion specification C<"%a %b %e %T %Y\n">
-
-=back
-
-=head1 MULTI-LANGUAGE SUPPORT
-
-Date::Format is capable of formating into several languages by creating
-a language specific object and calling methods, see L<Date::Language>
-
- my $lang = Date::Language->new('German');
- $lang->time2str("%a %b %e %T %Y\n", time);
-
-I am open to suggestions on this.
-
-=head1 CONVERSION SPECIFICATION
-
-Each conversion specification is replaced by appropriate
-characters as described in the following list. The
-appropriate characters are determined by the LC_TIME
-category of the program's locale.
-
- %% PERCENT
- %a day of the week abbr
- %A day of the week
- %b month abbr
- %B month
- %c MM/DD/YY HH:MM:SS
- %C ctime format: Sat Nov 19 21:05:57 1994
- %d numeric day of the month, with leading zeros (eg 01..31)
- %e like %d, but a leading zero is replaced by a space (eg 1..32)
- %D MM/DD/YY
- %G GPS week number (weeks since January 6, 1980)
- %h month abbr
- %H hour, 24 hour clock, leading 0's)
- %I hour, 12 hour clock, leading 0's)
- %j day of the year
- %k hour
- %l hour, 12 hour clock
- %L month number, starting with 1
- %m month number, starting with 01
- %M minute, leading 0's
- %n NEWLINE
- %o ornate day of month -- "1st", "2nd", "25th", etc.
- %p AM or PM
- %P am or pm (Yes %p and %P are backwards :)
- %q Quarter number, starting with 1
- %r time format: 09:05:57 PM
- %R time format: 21:05
- %s seconds since the Epoch, UCT
- %S seconds, leading 0's
- %t TAB
- %T time format: 21:05:57
- %U week number, Sunday as first day of week
- %w day of the week, numerically, Sunday == 0
- %W week number, Monday as first day of week
- %x date format: 11/19/94
- %X time format: 21:05:57
- %y year (2 digits)
- %Y year (4 digits)
- %Z timezone in ascii. eg: PST
- %z timezone in format -/+0000
-
-C<%d>, C<%e>, C<%H>, C<%I>, C<%j>, C<%k>, C<%l>, C<%m>, C<%M>, C<%q>,
-C<%y> and C<%Y> can be output in Roman numerals by prefixing the letter
-with C<O>, e.g. C<%OY> will output the year as roman numerals.
-
-=head1 LIMITATION
-
-The functions in this module are limited to the time range that can be
-represented by the time_t data type, i.e. 1901-12-13 20:45:53 GMT to
-2038-01-19 03:14:07 GMT.
-
-=head1 AUTHOR
-
-Graham Barr <gbarr@pobox.com>
-
-=head1 COPYRIGHT
-
-Copyright (c) 1995-2009 Graham Barr. This program is free
-software; you can redistribute it and/or modify it under the same terms
-as Perl itself.
-
-=cut
-
-
diff --git a/Master/tlpkg/tlperl/lib/Date/Language.pm b/Master/tlpkg/tlperl/lib/Date/Language.pm
deleted file mode 100644
index 02a05e7186b..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language.pm
+++ /dev/null
@@ -1,144 +0,0 @@
-
-package Date::Language;
-
-use strict;
-use Time::Local;
-use Carp;
-use vars qw($VERSION @ISA);
-require Date::Format;
-
-$VERSION = "1.10";
-@ISA = qw(Date::Format::Generic);
-
-sub new
-{
- my $self = shift;
- my $type = shift || $self;
-
- $type =~ s/^(\w+)$/Date::Language::$1/;
-
- croak "Bad language"
- unless $type =~ /^[\w:]+$/;
-
- eval "require $type"
- or croak $@;
-
- bless [], $type;
-}
-
-# Stop AUTOLOAD being called ;-)
-sub DESTROY {}
-
-sub AUTOLOAD
-{
- use vars qw($AUTOLOAD);
-
- if($AUTOLOAD =~ /::strptime\Z/o)
- {
- my $self = $_[0];
- my $type = ref($self) || $self;
- require Date::Parse;
-
- no strict 'refs';
- *{"${type}::strptime"} = Date::Parse::gen_parser(
- \%{"${type}::DoW"},
- \%{"${type}::MoY"},
- \@{"${type}::Dsuf"},
- 1);
-
- goto &{"${type}::strptime"};
- }
-
- croak "Undefined method &$AUTOLOAD called";
-}
-
-sub str2time
-{
- my $me = shift;
- my @t = $me->strptime(@_);
-
- return undef
- unless @t;
-
- my($ss,$mm,$hh,$day,$month,$year,$zone) = @t;
- my @lt = localtime(time);
-
- $hh ||= 0;
- $mm ||= 0;
- $ss ||= 0;
-
- $month = $lt[4]
- unless(defined $month);
-
- $day = $lt[3]
- unless(defined $day);
-
- $year = ($month > $lt[4]) ? ($lt[5] - 1) : $lt[5]
- unless(defined $year);
-
- return defined $zone ? timegm($ss,$mm,$hh,$day,$month,$year) - $zone
- : timelocal($ss,$mm,$hh,$day,$month,$year);
-}
-
-1;
-
-__END__
-
-
-=head1 NAME
-
-Date::Language - Language specific date formating and parsing
-
-=head1 SYNOPSIS
-
- use Date::Language;
-
- my $lang = Date::Language->new('German');
- $lang->time2str("%a %b %e %T %Y\n", time);
-
-=head1 DESCRIPTION
-
-L<Date::Language> provides objects to parse and format dates for specific languages. Available languages are
-
- Afar French Russian_cp1251
- Amharic Gedeo Russian_koi8r
- Austrian German Sidama
- Brazilian Greek Somali
- Chinese Hungarian Spanish
- Chinese_GB Icelandic Swedish
- Czech Italian Tigrinya
- Danish Norwegian TigrinyaEritrean
- Dutch Oromo TigrinyaEthiopian
- English Romanian Turkish
- Finnish Russian Bulgarian
-
-=head1 METHODS
-
-=over
-
-=item time2str
-
-See L<Date::Format/time2str>
-
-=item strftime
-
-See L<Date::Format/strftime>
-
-=item ctime
-
-See L<Date::Format/ctime>
-
-=item asctime
-
-See L<Date::Format/asctime>
-
-=item str2time
-
-See L<Date::Parse/str2time>
-
-=item strptime
-
-See L<Date::Parse/strptime>
-
-=back
-
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Afar.pm b/Master/tlpkg/tlperl/lib/Date/Language/Afar.pm
deleted file mode 100644
index f67cf37685c..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Afar.pm
+++ /dev/null
@@ -1,49 +0,0 @@
-##
-## Afar tables
-##
-
-package Date::Language::Afar;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "0.99";
-
-@DoW = qw(Acaada Etleeni Talaata Arbaqa Kamiisi Gumqata Sabti);
-@MoY = (
-"Qunxa Garablu",
-"Kudo",
-"Ciggilta Kudo",
-"Agda Baxis",
-"Caxah Alsa",
-"Qasa Dirri",
-"Qado Dirri",
-"Liiqen",
-"Waysu",
-"Diteli",
-"Ximoli",
-"Kaxxa Garablu"
-);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = qw(saaku carra);
-
-@Dsuf = (qw(th st nd rd th th th th th th)) x 3;
-@Dsuf[11,12,13] = qw(th th th);
-@Dsuf[30,31] = qw(th st);
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Amharic.pm b/Master/tlpkg/tlperl/lib/Date/Language/Amharic.pm
deleted file mode 100644
index a79984ecffa..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Amharic.pm
+++ /dev/null
@@ -1,87 +0,0 @@
-##
-## Amharic tables
-##
-
-package Date::Language::Amharic;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.00";
-
-if ( $] >= 5.006 ) {
-@DoW = (
-"\x{12a5}\x{1211}\x{12f5}",
-"\x{1230}\x{129e}",
-"\x{121b}\x{12ad}\x{1230}\x{129e}",
-"\x{1228}\x{1261}\x{12d5}",
-"\x{1210}\x{1219}\x{1235}",
-"\x{12d3}\x{122d}\x{1265}",
-"\x{1245}\x{12f3}\x{121c}"
-);
-@MoY = (
-"\x{1303}\x{1295}\x{12e9}\x{12c8}\x{122a}",
-"\x{134c}\x{1265}\x{1229}\x{12c8}\x{122a}",
-"\x{121b}\x{122d}\x{127d}",
-"\x{12a4}\x{1355}\x{1228}\x{120d}",
-"\x{121c}\x{12ed}",
-"\x{1301}\x{1295}",
-"\x{1301}\x{120b}\x{12ed}",
-"\x{12a6}\x{1308}\x{1235}\x{1275}",
-"\x{1234}\x{1355}\x{1274}\x{121d}\x{1260}\x{122d}",
-"\x{12a6}\x{12ad}\x{1270}\x{12cd}\x{1260}\x{122d}",
-"\x{1296}\x{126c}\x{121d}\x{1260}\x{122d}",
-"\x{12f2}\x{1234}\x{121d}\x{1260}\x{122d}"
-);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = ( "\x{1320}\x{12cb}\x{1275}", "\x{12a8}\x{1230}\x{12d3}\x{1275}" );
-
-@Dsuf = ("\x{129b}" x 31);
-}
-else {
-@DoW = (
-"እሑድ",
-"ሰኞ",
-"ማክሰኞ",
-"ረቡዕ",
-"áˆáˆ™áˆµ",
-"ዓርብ",
-"ቅዳሜ"
-);
-@MoY = (
-"ጃንዩወሪ",
-"áŒá‰¥áˆ©á‹ˆáˆª",
-"ማርች",
-"ኤá•áˆ¨áˆ",
-"ሜይ",
-"áŒáŠ•",
-"áŒáˆ‹á‹­",
-"ኦገስት",
-"ሴá•á‰´áˆá‰ áˆ­",
-"ኦክተá‹á‰ áˆ­",
-"ኖቬáˆá‰ áˆ­",
-"ዲሴáˆá‰ áˆ­"
-);
-@DoWs = map { substr($_,0,9) } @DoW;
-@MoYs = map { substr($_,0,9) } @MoY;
-@AMPM = ( "ጠዋት", "ከሰዓት" );
-
-@Dsuf = ("ኛ" x 31);
-}
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Austrian.pm b/Master/tlpkg/tlperl/lib/Date/Language/Austrian.pm
deleted file mode 100644
index 8ff398bd106..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Austrian.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-##
-## Austrian tables
-##
-
-package Date::Language::Austrian;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.01";
-
-@MoY = qw(Jänner Feber März April Mai Juni
- Juli August September Oktober November Dezember);
-@MoYs = qw(Jän Feb Mär Apr Mai Jun Jul Aug Sep Oct Nov Dez);
-@DoW = qw(Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag);
-@DoWs = qw(Son Mon Die Mit Don Fre Sam);
-
-use Date::Language::English ();
-@AMPM = @{Date::Language::English::AMPM};
-@Dsuf = @{Date::Language::English::Dsuf};
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Brazilian.pm b/Master/tlpkg/tlperl/lib/Date/Language/Brazilian.pm
deleted file mode 100644
index fa4d15fff91..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Brazilian.pm
+++ /dev/null
@@ -1,35 +0,0 @@
-##
-## Brazilian tables, contributed by Christian Tosta (tosta@cce.ufmg.br)
-##
-
-package Date::Language::Brazilian;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.01";
-
-@DoW = qw(Domingo Segunda Terça Quarta Quinta Sexta Sábado);
-@MoY = qw(Janeiro Fevereiro Março Abril Maio Junho
- Julho Agosto Setembro Outubro Novembro Dezembro);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = qw(AM PM);
-
-@Dsuf = (qw(mo ro do ro to to to mo vo no)) x 3;
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Bulgarian.pm b/Master/tlpkg/tlperl/lib/Date/Language/Bulgarian.pm
deleted file mode 100644
index cf3d127486e..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Bulgarian.pm
+++ /dev/null
@@ -1,92 +0,0 @@
-##
-## Bulgarian tables contributed by Krasimir Berov
-##
-
-package Date::Language::Bulgarian;
-use strict;
-use warnings;
-use utf8;
-use base qw(Date::Language);
-our (@DoW, @DoWs, @MoY, @MoYs, @AMPM, @Dsuf, %MoY, %DoW, $VERSION);
-$VERSION = "1.01";
-
-@DoW = qw(Ð½ÐµÐ´ÐµÐ»Ñ Ð¿Ð¾Ð½ÐµÐ´ÐµÐ»Ð½Ð¸Ðº вторник ÑÑ€Ñда четвъртък петък Ñъбота);
-@MoY = qw(Ñнуари февруари март април май юни
- юли авгуÑÑ‚ Ñептември октомври ноември декември);
-@DoWs = qw(нд пн вт ÑÑ€ чт пт Ñб);
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = qw(AM PM);
-
-@Dsuf = (qw(ти ви ри ти ти ти ти ми ми ти)) x 3;
-@Dsuf[11,12,13] = qw(ти ти ти);
-@Dsuf[30,31] = qw(ти ви);
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-sub format_o { ($_[0]->[3]<10?' ':'').$_[0]->[3].$Dsuf[$_[0]->[3]] }
-
-1;
-
-__END__
-
-=encoding utf8
-
-=head1 NAME
-
-Date::Language::Bulgarian - localization for Date::Format
-
-=head1 DESCRIPTION
-
-This is Bulgarian localization for Date::Format.
-It is important to note that this module source code is in utf8.
-All strings which it outputs are in utf8, so it is safe to use it
-currently only with English. You are left alone to try and convert
-the output when using different Date::Language::* in the same application.
-This should be addresed in the future.
-
-=head1 SYNOPSIS
-
- use strict;
- use warnings;
- use Date::Language;
- local $\=$/;
- my $template ='%a %b %e %T %Y (%Y-%m-%d %H:%M:%S)';
- my $time=1290883821; #or just use time();
- my @lt = localtime($time);
- my %languages = qw(English GMT German EEST Bulgarian EET);
- binmode(select,':utf8');
-
- foreach my $l(keys %languages){
- my $lang = Date::Language->new($l);
- my $zone = $languages{$l};
- print $/. "$l $zone";
- print $lang->time2str($template, $time);
- print $lang->time2str($template, $time, $zone);
-
- print $lang->strftime($template, \@lt);
- }
-
-=head1 AUTHOR
-
-Krasimir Berov (berov@cpan.org)
-
-=head1 COPYRIGHT
-
-Copyright (c) 2010 Krasimir Berov. This program is free
-software; you can redistribute it and/or modify it under the same terms
-as Perl itself.
-
-=cut
-
-
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Chinese.pm b/Master/tlpkg/tlperl/lib/Date/Language/Chinese.pm
deleted file mode 100644
index abfb3c05728..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Chinese.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-##
-## English tables
-##
-
-package Date::Language::Chinese;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.00";
-
-@DoW = qw(星期日 星期一 星期二 星期三 星期四 星期五 星期六);
-@MoY = qw(一月 二月 三月 四月 五月 六月
- 七月 八月 ä¹æœˆ å月 å一月 å二月);
-@DoWs = map { $_ } @DoW;
-@MoYs = map { $_ } @MoY;
-@AMPM = qw(ä¸Šåˆ ä¸‹åˆ);
-
-@Dsuf = (qw(æ—¥ æ—¥ æ—¥ æ—¥ æ—¥ æ—¥ æ—¥ æ—¥ æ—¥ æ—¥)) x 3;
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-sub format_o { sprintf("%2d%s",$_[0]->[3],"æ—¥") }
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Chinese_GB.pm b/Master/tlpkg/tlperl/lib/Date/Language/Chinese_GB.pm
deleted file mode 100644
index 7be05552266..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Chinese_GB.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-##
-## English tables
-##
-
-package Date::Language::Chinese_GB;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.01";
-
-@DoW = qw(ÐÇÆÚÈÕ ÐÇÆÚÒ» ÐÇÆÚ¶þ ÐÇÆÚÈý ÐÇÆÚËÄ ÐÇÆÚÎå ÐÇÆÚÁù);
-@MoY = qw(Ò»ÔÂ ¶þÔÂ ÈýÔÂ ËÄÔÂ ÎåÔÂ ÁùÔÂ
- ÆßÔ °ËÔ ¾ÅÔ ʮÔ ʮһÔ ʮ¶þÔÂ);
-@DoWs = map { $_ } @DoW;
-@MoYs = map { $_ } @MoY;
-@AMPM = qw(ÉÏÎç ÏÂÎç);
-
-@Dsuf = (qw(ÈÕ ÈÕ ÈÕ ÈÕ ÈÕ ÈÕ ÈÕ ÈÕ ÈÕ ÈÕ)) x 3;
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-sub format_o { sprintf("%2d%s",$_[0]->[3],"ÈÕ") }
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Czech.pm b/Master/tlpkg/tlperl/lib/Date/Language/Czech.pm
deleted file mode 100644
index 756f5c552fc..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Czech.pm
+++ /dev/null
@@ -1,58 +0,0 @@
-##
-## Czech tables
-##
-## Contributed by Honza Pazdziora
-
-package Date::Language::Czech;
-
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @MoY2 @AMPM %MoY %DoW $VERSION);
-@ISA = qw(Date::Language Date::Format::Generic);
-$VERSION = "1.01";
-
-@MoY = qw(leden únor bøezen duben kvìten èerven èervenec srpen záøí
- øíjen listopad prosinec);
-@MoYs = qw(led únor bøe dub kvì èvn èec srp záøí øíj lis pro);
-@MoY2 = @MoY;
-for (@MoY2)
- { s!en$!na! or s!ec$!ce! or s!ad$!adu! or s!or$!ora!; }
-
-@DoW = qw(nedìle pondìlí úterý støeda ètvrtek pátek sobota);
-@DoWs = qw(Ne Po Út St Èt Pá So);
-
-@AMPM = qw(dop. odp.);
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-sub format_d { $_[0]->[3] }
-sub format_m { $_[0]->[4] + 1 }
-sub format_o { $_[0]->[3] . '.' }
-
-sub format_Q { $MoY2[$_[0]->[4]] }
-
-sub time2str {
- my $ref = shift;
- my @a = @_;
- $a[0] =~ s/(%[do]\.?\s?)%B/$1%Q/;
- $ref->SUPER::time2str(@a);
- }
-
-sub strftime {
- my $ref = shift;
- my @a = @_;
- $a[0] =~ s/(%[do]\.?\s?)%B/$1%Q/;
- $ref->SUPER::time2str(@a);
- }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Danish.pm b/Master/tlpkg/tlperl/lib/Date/Language/Danish.pm
deleted file mode 100644
index c43d08528ef..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Danish.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-##
-## Danish tables
-##
-
-package Date::Language::Danish;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.01";
-
-@MoY = qw(Januar Februar Marts April Maj Juni
- Juli August September Oktober November December);
-@MoYs = qw(Jan Feb Mar Apr Maj Jun Jul Aug Sep Okt Nov Dec);
-@DoW = qw(Søndag Mandag Tirsdag Onsdag Torsdag Fredag Lørdag Søndag);
-@DoWs = qw(Søn Man Tir Ons Tor Fre Lør Søn);
-
-use Date::Language::English ();
-@AMPM = @{Date::Language::English::AMPM};
-@Dsuf = @{Date::Language::English::Dsuf};
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Dutch.pm b/Master/tlpkg/tlperl/lib/Date/Language/Dutch.pm
deleted file mode 100644
index 219758b4b29..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Dutch.pm
+++ /dev/null
@@ -1,40 +0,0 @@
-##
-## Dutch tables
-## Contributed by Johannes la Poutre <jlpoutre@corp.nl.home.com>
-##
-
-package Date::Language::Dutch;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.02";
-
-@MoY = qw(januari februari maart april mei juni juli
- augustus september oktober november december);
-@MoYs = map(substr($_, 0, 3), @MoY);
-$MoYs[2] = 'mrt'; # mrt is more common (Frank Maas)
-@DoW = map($_ . "dag", qw(zon maan dins woens donder vrij zater));
-@DoWs = map(substr($_, 0, 2), @DoW);
-
-# these aren't normally used...
-@AMPM = qw(VM NM);
-@Dsuf = ('e') x 31;
-
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-sub format_o { sprintf("%2de",$_[0]->[3]) }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/English.pm b/Master/tlpkg/tlperl/lib/Date/Language/English.pm
deleted file mode 100644
index 638cb3c2a21..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/English.pm
+++ /dev/null
@@ -1,37 +0,0 @@
-##
-## English tables
-##
-
-package Date::Language::English;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.01";
-
-@DoW = qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday);
-@MoY = qw(January February March April May June
- July August September October November December);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = qw(AM PM);
-
-@Dsuf = (qw(th st nd rd th th th th th th)) x 3;
-@Dsuf[11,12,13] = qw(th th th);
-@Dsuf[30,31] = qw(th st);
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Finnish.pm b/Master/tlpkg/tlperl/lib/Date/Language/Finnish.pm
deleted file mode 100644
index 415b50c73df..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Finnish.pm
+++ /dev/null
@@ -1,45 +0,0 @@
-##
-## Finnish tables
-## Contributed by Matthew Musgrove <muskrat@mindless.com>
-## Corrected by roke
-##
-
-package Date::Language::Finnish;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.01";
-
-# In Finnish, the names of the months and days are only capitalized at the beginning of sentences.
-@MoY = map($_ . "kuu", qw(tammi helmi maalis huhti touko kesä heinä elo syys loka marras joulu));
-@DoW = qw(sunnuntai maanantai tiistai keskiviikko torstai perjantai lauantai);
-
-# it is not customary to use abbreviated names of months or days
-# per Graham's suggestion:
-@MoYs = @MoY;
-@DoWs = @DoW;
-
-# the short form of ordinals
-@Dsuf = ('.') x 31;
-
-# doesn't look like this is normally used...
-@AMPM = qw(ap ip);
-
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-sub format_o { sprintf("%2de",$_[0]->[3]) }
-
-1; \ No newline at end of file
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/French.pm b/Master/tlpkg/tlperl/lib/Date/Language/French.pm
deleted file mode 100644
index 91b414c2eb4..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/French.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-##
-## French tables, contributed by Emmanuel Bataille (bem@residents.frmug.org)
-##
-
-package Date::Language::French;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.04";
-
-@DoW = qw(dimanche lundi mardi mercredi jeudi vendredi samedi);
-@MoY = qw(janvier février mars avril mai juin
- juillet août septembre octobre novembre décembre);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-$MoYs[6] = 'jul';
-@AMPM = qw(AM PM);
-
-@Dsuf = ((qw(er e e e e e e e e e)) x 3, 'er');
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Gedeo.pm b/Master/tlpkg/tlperl/lib/Date/Language/Gedeo.pm
deleted file mode 100644
index c18ad8cadda..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Gedeo.pm
+++ /dev/null
@@ -1,51 +0,0 @@
-##
-## Gedeo tables
-##
-
-package Date::Language::Gedeo;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "0.99";
-
-@DoW = qw( Sanbbattaa Sanno Masano Roobe Hamusse Arbe Qiddamme);
-@MoY = (
-"Oritto",
-"Birre'a",
-"Onkkollessa",
-"Saddasa",
-"Arrasa",
-"Qammo",
-"Ella",
-"Waacibajje",
-"Canissa",
-"Addolessa",
-"Bittitotessa",
-"Hegeya"
-);
-@DoWs = map { substr($_,0,3) } @DoW;
-$DoWs[0] = "Snb";
-$DoWs[1] = "Sno";
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = qw(gorsa warreti-udumma);
-
-@Dsuf = (qw(th st nd rd th th th th th th)) x 3;
-@Dsuf[11,12,13] = qw(th th th);
-@Dsuf[30,31] = qw(th st);
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/German.pm b/Master/tlpkg/tlperl/lib/Date/Language/German.pm
deleted file mode 100644
index 11242c4c46a..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/German.pm
+++ /dev/null
@@ -1,37 +0,0 @@
-##
-## German tables
-##
-
-package Date::Language::German;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.02";
-
-@MoY = qw(Januar Februar März April Mai Juni
- Juli August September Oktober November Dezember);
-@MoYs = qw(Jan Feb Mär Apr Mai Jun Jul Aug Sep Okt Nov Dez);
-@DoW = qw(Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag);
-@DoWs = qw(Son Mon Die Mit Don Fre Sam);
-
-use Date::Language::English ();
-@AMPM = @{Date::Language::English::AMPM};
-@Dsuf = @{Date::Language::English::Dsuf};
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-sub format_o { sprintf("%2d.",$_[0]->[3]) }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Greek.pm b/Master/tlpkg/tlperl/lib/Date/Language/Greek.pm
deleted file mode 100644
index 00f917ce474..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Greek.pm
+++ /dev/null
@@ -1,91 +0,0 @@
-##
-## Greek tables
-##
-## Traditional date format is: DoW DD{eta} MoY Year (%A %o %B %Y)
-##
-## Matthew Musgrove <muskrat@mindless.com>
-## Translations gratiously provided by Menelaos Stamatelos <men@kwsn.net>
-## This module returns unicode (utf8) encoded characters. You will need to
-## take the necessary steps for this to display correctly.
-##
-
-package Date::Language::Greek;
-
-use utf8;
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.00";
-
-@DoW = (
-"\x{039a}\x{03c5}\x{03c1}\x{03b9}\x{03b1}\x{03ba}\x{03ae}",
-"\x{0394}\x{03b5}\x{03c5}\x{03c4}\x{03ad}\x{03c1}\x{03b1}",
-"\x{03a4}\x{03c1}\x{03af}\x{03c4}\x{03b7}",
-"\x{03a4}\x{03b5}\x{03c4}\x{03ac}\x{03c1}\x{03c4}\x{03b7}",
-"\x{03a0}\x{03ad}\x{03bc}\x{03c0}\x{03c4}\x{03b7}",
-"\x{03a0}\x{03b1}\x{03c1}\x{03b1}\x{03c3}\x{03ba}\x{03b5}\x{03c5}\x{03ae}",
-"\x{03a3}\x{03ac}\x{03b2}\x{03b2}\x{03b1}\x{03c4}\x{03bf}",
-);
-
-@MoY = (
-"\x{0399}\x{03b1}\x{03bd}\x{03bf}\x{03c5}\x{03b1}\x{03c1}\x{03af}\x{03bf}\x{03c5}",
-"\x{03a6}\x{03b5}\x{03b2}\x{03c1}\x{03bf}\x{03c5}\x{03b1}\x{03c1}\x{03af}\x{03bf}\x{03c5}",
-"\x{039c}\x{03b1}\x{03c1}\x{03c4}\x{03af}\x{03bf}\x{03c5}",
-"\x{0391}\x{03c0}\x{03c1}\x{03b9}\x{03bb}\x{03af}\x{03c5}",
-"\x{039c}\x{03b1}\x{0390}\x{03bf}\x{03c5}",
-"\x{0399}\x{03bf}\x{03c5}\x{03bd}\x{03af}\x{03bf}\x{03c5}",
-"\x{0399}\x{03bf}\x{03c5}\x{03bb}\x{03af}\x{03bf}\x{03c5}",
-"\x{0391}\x{03c5}\x{03b3}\x{03bf}\x{03cd}\x{03c3}\x{03c4}\x{03bf}\x{03c5}",
-"\x{03a3}\x{03b5}\x{03c0}\x{03c4}\x{03b5}\x{03bc}\x{03c4}\x{03bf}\x{03c5}",
-"\x{039f}\x{03ba}\x{03c4}\x{03c9}\x{03b2}\x{03c1}\x{03af}\x{03bf}\x{03c5}",
-"\x{039d}\x{03bf}\x{03b5}\x{03bc}\x{03b2}\x{03c1}\x{03af}\x{03bf}\x{03c5}",
-"\x{0394}\x{03b5}\x{03ba}\x{03b5}\x{03bc}\x{03b2}\x{03c1}\x{03bf}\x{03c5}",
-);
-
-@DoWs = (
-"\x{039a}\x{03c5}",
-"\x{0394}\x{03b5}",
-"\x{03a4}\x{03c1}",
-"\x{03a4}\x{03b5}",
-"\x{03a0}\x{03b5}",
-"\x{03a0}\x{03b1}",
-"\x{03a3}\x{03b1}",
-);
-@MoYs = (
-"\x{0399}\x{03b1}\x{03bd}",
-"\x{03a6}\x{03b5}",
-"\x{039c}\x{03b1}\x{03c1}",
-"\x{0391}\x{03c0}\x{03c1}",
-"\x{039c}\x{03b1}",
-"\x{0399}\x{03bf}\x{03c5}\x{03bd}",
-"\x{0399}\x{03bf}\x{03c5}\x{03bb}",
-"\x{0391}\x{03c5}\x{03b3}",
-"\x{03a3}\x{03b5}\x{03c0}",
-"\x{039f}\x{03ba}",
-"\x{039d}\x{03bf}",
-"\x{0394}\x{03b5}",
-);
-
-@AMPM = ("\x{03c0}\x{03bc}", "\x{03bc}\x{03bc}");
-
-@Dsuf = ("\x{03b7}" x 31);
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_o { sprintf("%2d%s",$_[0]->[3],"\x{03b7}") }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Hungarian.pm b/Master/tlpkg/tlperl/lib/Date/Language/Hungarian.pm
deleted file mode 100644
index d9c838d15b9..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Hungarian.pm
+++ /dev/null
@@ -1,88 +0,0 @@
-##
-## Hungarian tables based on English
-##
-#
-# This is a just-because-I-stumbled-across-it
-# -and-my-wife-is-Hungarian release: if Graham or
-# someone adds to docs to Date::Format, I'd be
-# glad to correct bugs and extend as neeed.
-#
-
-package Date::Language::Hungarian;
-
-=head1 NAME
-
-Date::Language::Hungarian - Magyar format for Date::Format
-
-=head1 SYNOPSIS
-
- my $lang = Date::Language->new('Hungarian');
- print $lang->time2str("%a %b %e %T %Y", time);
-
- @lt = localtime(time);
- print $lang->time2str($template, time);
- print $lang->strftime($template, @lt);
-
- print $lang->time2str($template, time, $zone);
- print $lang->strftime($template, @lt, $zone);
-
- print $lang->ctime(time);
- print $lang->asctime(@lt);
-
- print $lang->ctime(time, $zone);
- print $lang->asctime(@lt, $zone);
-
-See L<Date::Format>.
-
-=head1 AUTHOR
-
-Paula Goddard (paula -at- paulacska -dot- com)
-
-=head1 LICENCE
-
-Made available under the same terms as Perl itself.
-
-=cut
-
-use strict;
-use warnings;
-use base "Date::Language";
-use vars qw( @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-$VERSION = "1.01";
-
-@DoW = qw(Vasárnap Hétfõ Kedd Szerda Csütörtök Péntek Szombat);
-@MoY = qw(Január Február Március Április Május Június
- Július Augusztus Szeptember Október November December);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = qw(DE. DU.);
-
-# There is no 'th or 'nd in Hungarian, just a dot
-@Dsuf = (".") x 31;
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-sub format_P { lc($_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0]) }
-sub format_o { $_[0]->[3].'.' }
-
-
-
-sub format_D { &format_y . "." . &format_m . "." . &format_d }
-
-sub format_y { sprintf("%02d",$_[0]->[5] % 100) }
-sub format_d { sprintf("%02d",$_[0]->[3]) }
-sub format_m { sprintf("%02d",$_[0]->[4] + 1) }
-
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Icelandic.pm b/Master/tlpkg/tlperl/lib/Date/Language/Icelandic.pm
deleted file mode 100644
index 5ca3ee32099..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Icelandic.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-##
-## Icelandic tables
-##
-
-package Date::Language::Icelandic;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.01";
-
-@MoY = qw(Janúar Febrúar Mars Apríl Maí Júni
- Júli Ágúst September Október Nóvember Desember);
-@MoYs = qw(Jan Feb Mar Apr Maí Jún Júl Ágú Sep Okt Nóv Des);
-@DoW = qw(Sunnudagur Mánudagur Þriðjudagur Miðvikudagur Fimmtudagur Föstudagur Laugardagur Sunnudagur);
-@DoWs = qw(Sun Mán Þri Mið Fim Fös Lau Sun);
-
-use Date::Language::English ();
-@AMPM = @{Date::Language::English::AMPM};
-@Dsuf = @{Date::Language::English::Dsuf};
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Italian.pm b/Master/tlpkg/tlperl/lib/Date/Language/Italian.pm
deleted file mode 100644
index 6db0a8e67c9..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Italian.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-##
-## Italian tables
-##
-
-package Date::Language::Italian;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.01";
-
-@MoY = qw(Gennaio Febbraio Marzo Aprile Maggio Giugno
- Luglio Agosto Settembre Ottobre Novembre Dicembre);
-@MoYs = qw(Gen Feb Mar Apr Mag Giu Lug Ago Set Ott Nov Dic);
-@DoW = qw(Domenica Lunedi Martedi Mercoledi Giovedi Venerdi Sabato);
-@DoWs = qw(Dom Lun Mar Mer Gio Ven Sab);
-
-use Date::Language::English ();
-@AMPM = @{Date::Language::English::AMPM};
-@Dsuf = @{Date::Language::English::Dsuf};
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Norwegian.pm b/Master/tlpkg/tlperl/lib/Date/Language/Norwegian.pm
deleted file mode 100644
index bbd997f0b4d..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Norwegian.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-##
-## Norwegian tables
-##
-
-package Date::Language::Norwegian;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.01";
-
-@MoY = qw(Januar Februar Mars April Mai Juni
- Juli August September Oktober November Desember);
-@MoYs = qw(Jan Feb Mar Apr Mai Jun Jul Aug Sep Okt Nov Des);
-@DoW = qw(Søndag Mandag Tirsdag Onsdag Torsdag Fredag Lørdag Søndag);
-@DoWs = qw(Søn Man Tir Ons Tor Fre Lør Søn);
-
-use Date::Language::English ();
-@AMPM = @{Date::Language::English::AMPM};
-@Dsuf = @{Date::Language::English::Dsuf};
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Oromo.pm b/Master/tlpkg/tlperl/lib/Date/Language/Oromo.pm
deleted file mode 100644
index b6a6230c87d..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Oromo.pm
+++ /dev/null
@@ -1,37 +0,0 @@
-##
-## Oromo tables
-##
-
-package Date::Language::Oromo;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "0.99";
-
-@DoW = qw(Dilbata Wiixata Qibxata Roobii Kamiisa Jimaata Sanbata);
-@MoY = qw(Amajjii Guraandhala Bitooteessa Elba Caamsa Waxabajjii
- Adooleessa Hagayya Fuulbana Onkololeessa Sadaasa Muddee);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = qw(WD WB);
-
-@Dsuf = (qw(th st nd rd th th th th th th)) x 3;
-@Dsuf[11,12,13] = qw(th th th);
-@Dsuf[30,31] = qw(th st);
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Romanian.pm b/Master/tlpkg/tlperl/lib/Date/Language/Romanian.pm
deleted file mode 100644
index cbd2c8cbc4d..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Romanian.pm
+++ /dev/null
@@ -1,37 +0,0 @@
-##
-## Italian tables
-##
-
-package Date::Language::Romanian;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.01";
-
-@MoY = qw(ianuarie februarie martie aprilie mai iunie
- iulie august septembrie octombrie noembrie decembrie);
-@DoW = qw(duminica luni marti miercuri joi vineri sambata);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-
-@AMPM = qw(AM PM);
-
-@Dsuf = ('') x 31;
-
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Russian.pm b/Master/tlpkg/tlperl/lib/Date/Language/Russian.pm
deleted file mode 100644
index ca9f4142327..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Russian.pm
+++ /dev/null
@@ -1,49 +0,0 @@
-##
-## Russian tables
-##
-## Contributed by Danil Pismenny <dapi@mail.ru>
-
-package Date::Language::Russian;
-
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @MoY2 @AMPM %MoY %DoW $VERSION);
-@ISA = qw(Date::Language Date::Format::Generic);
-$VERSION = "1.01";
-
-@MoY = qw(ñÎ×ÁÒÑ æÅ×ÒÁÌÑ íÁÒÔÁ áÐÒÅÌÑ íÁÑ éÀÎÑ éÀÌÑ á×ÇÕÓÔÁ óÅÎÔÑÂÒÑ ïËÔÑÂÒÑ îÏÑÂÒÑ äÅËÁÂÒÑ);
-@MoY2 = qw(ñÎ×ÁÒØ æÅ×ÒÁÌØ íÁÒÔ áÐÒÅÌØ íÁÊ éÀÎØ éÀÌØ á×ÇÕÓÔ óÅÎÔÑÂÒØ ïËÔÑÂÒØ îÏÑÂÒØ äÅËÁÂÒØ);
-@MoYs = qw(ñÎ× æÅ× íÒÔ áÐÒ íÁÊ éÀÎ éÀÌ á×Ç óÅÎ ïËÔ îÏÑ äÅË);
-
-@DoW = qw(ðÏÎÅÄÅÌØÎÉË ÷ÔÏÒÎÉË óÒÅÄÁ þÅÔ×ÅÒÇ ðÑÔÎÉÃÁ óÕÂÂÏÔÁ ÷ÏÓËÒÅÓÅÎØÅ);
-@DoWs = qw(ðÎ ÷Ô óÒ þÔ ðÔ ó ÷Ó);
-@DoWs2 = qw(ðÎÄ ÷ÔÒ óÒÄ þÔ× ðÔÎ óÂÔ ÷ÓË);
-
-@AMPM = qw(ÄÐ ÐÐ);
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-sub format_d { $_[0]->[3] }
-sub format_m { $_[0]->[4] + 1 }
-sub format_o { $_[0]->[3] . '.' }
-
-sub format_Q { $MoY2[$_[0]->[4]] }
-
-sub str2time {
- my ($self,$value) = @_;
- map {$value=~s/(\s|^)$DoWs2[$_](\s)/$DoWs[$_]$2/ig} (0..6);
- $value=~s/(\s+|^)íÁÒ(\s+)/$1íÒÔ$2/;
- return $self->SUPER::str2time($value);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Russian_cp1251.pm b/Master/tlpkg/tlperl/lib/Date/Language/Russian_cp1251.pm
deleted file mode 100644
index cc28e6ed43a..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Russian_cp1251.pm
+++ /dev/null
@@ -1,39 +0,0 @@
-##
-## Russian cp1251
-##
-
-package Date::Language::Russian_cp1251;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.01";
-
-@DoW = qw(Âîñêðåñåíüå Ïîíåäåëüíèê Âòîðíèê Ñðåäà ×åòâåðã Ïÿòíèöà Ñóááîòà);
-@MoY = qw(ßíâàðü Ôåâðàëü Ìàðò Àïðåëü Ìàé Èþíü
- Èþëü Àâãóñò Ñåíòÿáðü Îêòÿáðü Íîÿáðü Äåêàáðü);
-@DoWs = qw(Âñê Ïíä Âòð Ñðä ×òâ Ïòí Ñáò);
-#@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = qw(AM PM);
-
-@Dsuf = ('e') x 31;
-#@Dsuf[11,12,13] = qw(å å å);
-#@Dsuf[30,31] = qw(å å);
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-sub format_o { sprintf("%2de",$_[0]->[3]) }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Russian_koi8r.pm b/Master/tlpkg/tlperl/lib/Date/Language/Russian_koi8r.pm
deleted file mode 100644
index 53de8d0567b..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Russian_koi8r.pm
+++ /dev/null
@@ -1,39 +0,0 @@
-##
-## Russian koi8r
-##
-
-package Date::Language::Russian_koi8r;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.01";
-
-@DoW = qw(÷ÏÓËÒÅÓÅÎØÅ ðÏÎÅÄÅÌØÎÉË ÷ÔÏÒÎÉË óÒÅÄÁ þÅÔ×ÅÒÇ ðÑÔÎÉÃÁ óÕÂÂÏÔÁ);
-@MoY = qw(ñÎ×ÁÒØ æÅ×ÒÁÌØ íÁÒÔ áÐÒÅÌØ íÁÊ éÀÎØ
- éÀÌØ á×ÇÕÓÔ óÅÎÔÑÂÒØ ïËÔÑÂÒØ îÏÑÂÒØ äÅËÁÂÒØ);
-@DoWs = qw(÷ÓË ðÎÄ ÷ÔÒ óÒÄ þÔ× ðÔÎ óÂÔ);
-#@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = qw(AM PM);
-
-@Dsuf = ('e') x 31;
-#@Dsuf[11,12,13] = qw(Å Å Å);
-#@Dsuf[30,31] = qw(Å Å);
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-sub format_o { sprintf("%2de",$_[0]->[3]) }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Sidama.pm b/Master/tlpkg/tlperl/lib/Date/Language/Sidama.pm
deleted file mode 100644
index bc26d7c3f09..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Sidama.pm
+++ /dev/null
@@ -1,37 +0,0 @@
-##
-## Sidama tables
-##
-
-package Date::Language::Sidama;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "0.99";
-
-@DoW = qw(Sambata Sanyo Maakisanyo Roowe Hamuse Arbe Qidaame);
-@MoY = qw(January February March April May June
- July August September October November December);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = qw(soodo hawwaro);
-
-@Dsuf = (qw(th st nd rd th th th th th th)) x 3;
-@Dsuf[11,12,13] = qw(th th th);
-@Dsuf[30,31] = qw(th st);
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Somali.pm b/Master/tlpkg/tlperl/lib/Date/Language/Somali.pm
deleted file mode 100644
index 5b2496170e9..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Somali.pm
+++ /dev/null
@@ -1,62 +0,0 @@
-##
-## Somali tables
-##
-
-package Date::Language::Somali;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "0.99";
-
-@DoW = qw(Axad Isniin Salaaso Arbaco Khamiis Jimco Sabti);
-@MoY = (
-"Bisha Koobaad",
-"Bisha Labaad",
-"Bisha Saddexaad",
-"Bisha Afraad",
-"Bisha Shanaad",
-"Bisha Lixaad",
-"Bisha Todobaad",
-"Bisha Sideedaad",
-"Bisha Sagaalaad",
-"Bisha Tobnaad",
-"Bisha Kow iyo Tobnaad",
-"Bisha Laba iyo Tobnaad"
-);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = (
-"Kob",
-"Lab",
-"Sad",
-"Afr",
-"Sha",
-"Lix",
-"Tod",
-"Sid",
-"Sag",
-"Tob",
-"KIT",
-"LIT"
-);
-@AMPM = qw(SN GN);
-
-@Dsuf = (qw(th st nd rd th th th th th th)) x 3;
-@Dsuf[11,12,13] = qw(th th th);
-@Dsuf[30,31] = qw(th st);
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Spanish.pm b/Master/tlpkg/tlperl/lib/Date/Language/Spanish.pm
deleted file mode 100644
index d464ae78ad1..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Spanish.pm
+++ /dev/null
@@ -1,35 +0,0 @@
-##
-## Spanish tables
-##
-
-package Date::Language::Spanish;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.00";
-
-@DoW = qw(domingo lunes martes miércoles jueves viernes sábado);
-@MoY = qw(enero febrero marzo abril mayo junio
- julio agosto septiembre octubre noviembre diciembre);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = qw(AM PM);
-
-@Dsuf = ((qw(ro do ro to to to mo vo no mo)) x 3, 'ro');
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Swedish.pm b/Master/tlpkg/tlperl/lib/Date/Language/Swedish.pm
deleted file mode 100644
index 8f16594ba73..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Swedish.pm
+++ /dev/null
@@ -1,41 +0,0 @@
-##
-## Swedish tables
-## Contributed by Matthew Musgrove <muskrat@mindless.com>
-## Corrected by dempa
-##
-
-package Date::Language::Swedish;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.01";
-
-@MoY = qw(januari februari mars april maj juni juli augusti september oktober november december);
-@MoYs = map { substr($_,0,3) } @MoY;
-@DoW = map($_ . "dagen", qw(sön mån tis ons tors fre lör));
-@DoWs = map { substr($_,0,2) } @DoW;
-
-# the ordinals are not typically used in modern times
-@Dsuf = ('a' x 2, 'e' x 29);
-
-use Date::Language::English ();
-@AMPM = @{Date::Language::English::AMPM};
-
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-sub format_o { sprintf("%2de",$_[0]->[3]) }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Tigrinya.pm b/Master/tlpkg/tlperl/lib/Date/Language/Tigrinya.pm
deleted file mode 100644
index ce4fcb3a1cb..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Tigrinya.pm
+++ /dev/null
@@ -1,58 +0,0 @@
-##
-## Tigrinya tables
-##
-
-package Date::Language::Tigrinya;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.00";
-
-@DoW = (
-"\x{1230}\x{1295}\x{1260}\x{1275}",
-"\x{1230}\x{1291}\x{12ed}",
-"\x{1230}\x{1209}\x{1235}",
-"\x{1228}\x{1261}\x{12d5}",
-"\x{1213}\x{1219}\x{1235}",
-"\x{12d3}\x{122d}\x{1262}",
-"\x{1240}\x{12f3}\x{121d}"
-);
-@MoY = (
-"\x{1303}\x{1295}\x{12e9}\x{12c8}\x{122a}",
-"\x{134c}\x{1265}\x{1229}\x{12c8}\x{122a}",
-"\x{121b}\x{122d}\x{127d}",
-"\x{12a4}\x{1355}\x{1228}\x{120d}",
-"\x{121c}\x{12ed}",
-"\x{1301}\x{1295}",
-"\x{1301}\x{120b}\x{12ed}",
-"\x{12a6}\x{1308}\x{1235}\x{1275}",
-"\x{1234}\x{1355}\x{1274}\x{121d}\x{1260}\x{122d}",
-"\x{12a6}\x{12ad}\x{1270}\x{12cd}\x{1260}\x{122d}",
-"\x{1296}\x{126c}\x{121d}\x{1260}\x{122d}",
-"\x{12f2}\x{1234}\x{121d}\x{1260}\x{122d}"
-);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = (
-"\x{1295}/\x{1230}",
-"\x{12F5}/\x{1230}"
-);
-
-@Dsuf = ("\x{12ed}" x 31);
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/TigrinyaEritrean.pm b/Master/tlpkg/tlperl/lib/Date/Language/TigrinyaEritrean.pm
deleted file mode 100644
index 7ab8d0fdd1e..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/TigrinyaEritrean.pm
+++ /dev/null
@@ -1,93 +0,0 @@
-##
-## Tigrinya-Eritrean tables
-##
-
-package Date::Language::TigrinyaEritrean;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.00";
-
-if ( $] >= 5.006 ) {
-@DoW = (
-"\x{1230}\x{1295}\x{1260}\x{1275}",
-"\x{1230}\x{1291}\x{12ed}",
-"\x{1230}\x{1209}\x{1235}",
-"\x{1228}\x{1261}\x{12d5}",
-"\x{1213}\x{1219}\x{1235}",
-"\x{12d3}\x{122d}\x{1262}",
-"\x{1240}\x{12f3}\x{121d}"
-);
-@MoY = (
-"\x{1303}\x{1295}\x{12e9}\x{12c8}\x{122a}",
-"\x{134c}\x{1265}\x{1229}\x{12c8}\x{122a}",
-"\x{121b}\x{122d}\x{127d}",
-"\x{12a4}\x{1355}\x{1228}\x{120d}",
-"\x{121c}\x{12ed}",
-"\x{1301}\x{1295}",
-"\x{1301}\x{120b}\x{12ed}",
-"\x{12a6}\x{1308}\x{1235}\x{1275}",
-"\x{1234}\x{1355}\x{1274}\x{121d}\x{1260}\x{122d}",
-"\x{12a6}\x{12ad}\x{1270}\x{12cd}\x{1260}\x{122d}",
-"\x{1296}\x{126c}\x{121d}\x{1260}\x{122d}",
-"\x{12f2}\x{1234}\x{121d}\x{1260}\x{122d}"
-);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = (
-"\x{1295}/\x{1230}",
-"\x{12F5}/\x{1230}"
-);
-
-@Dsuf = ("\x{12ed}" x 31);
-}
-else {
-@DoW = (
-"ሰንበት",
-"ሰኑይ",
-"ሰሉስ",
-"ረቡዕ",
-"ሓሙስ",
-"ዓርቢ",
-"ቀዳáˆ"
-);
-@MoY = (
-"ጥሪ",
-"ለካቲት",
-"መጋቢት",
-"ሚያá‹á‹«",
-"áŒáŠ•á‰¦á‰µ",
-"ሰáŠ",
-"ሓáˆáˆˆ",
-"áŠáˆ“ሰ",
-"መስከረáˆ",
-"ጥቅáˆá‰²",
-"ሕዳር",
-"ታሕሳስ"
-);
-@DoWs = map { substr($_,0,9) } @DoW;
-@MoYs = map { substr($_,0,9) } @MoY;
-@AMPM = (
-"ን/ሰ",
-"ድ/ሰ"
-);
-
-@Dsuf = ("á‹­" x 31);
-}
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/TigrinyaEthiopian.pm b/Master/tlpkg/tlperl/lib/Date/Language/TigrinyaEthiopian.pm
deleted file mode 100644
index 84fb7237c31..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/TigrinyaEthiopian.pm
+++ /dev/null
@@ -1,93 +0,0 @@
-##
-## Tigrinya-Ethiopian tables
-##
-
-package Date::Language::TigrinyaEthiopian;
-
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION);
-@ISA = qw(Date::Language);
-$VERSION = "1.00";
-
-if ( $] >= 5.006 ) {
-@DoW = (
-"\x{1230}\x{1295}\x{1260}\x{1275}",
-"\x{1230}\x{1291}\x{12ed}",
-"\x{1230}\x{1209}\x{1235}",
-"\x{1228}\x{1261}\x{12d5}",
-"\x{1213}\x{1219}\x{1235}",
-"\x{12d3}\x{122d}\x{1262}",
-"\x{1240}\x{12f3}\x{121d}"
-);
-@MoY = (
-"\x{1303}\x{1295}\x{12e9}\x{12c8}\x{122a}",
-"\x{134c}\x{1265}\x{1229}\x{12c8}\x{122a}",
-"\x{121b}\x{122d}\x{127d}",
-"\x{12a4}\x{1355}\x{1228}\x{120d}",
-"\x{121c}\x{12ed}",
-"\x{1301}\x{1295}",
-"\x{1301}\x{120b}\x{12ed}",
-"\x{12a6}\x{1308}\x{1235}\x{1275}",
-"\x{1234}\x{1355}\x{1274}\x{121d}\x{1260}\x{122d}",
-"\x{12a6}\x{12ad}\x{1270}\x{12cd}\x{1260}\x{122d}",
-"\x{1296}\x{126c}\x{121d}\x{1260}\x{122d}",
-"\x{12f2}\x{1234}\x{121d}\x{1260}\x{122d}"
-);
-@DoWs = map { substr($_,0,3) } @DoW;
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = (
-"\x{1295}/\x{1230}",
-"\x{12F5}/\x{1230}"
-);
-
-@Dsuf = ("\x{12ed}" x 31);
-}
-else {
-@DoW = (
-"ሰንበት",
-"ሰኑይ",
-"ሰሉስ",
-"ረቡዕ",
-"ሓሙስ",
-"ዓርቢ",
-"ቀዳáˆ"
-);
-@MoY = (
-"ጃንዩወሪ",
-"áŒá‰¥áˆ©á‹ˆáˆª",
-"ማርች",
-"ኤá•áˆ¨áˆ",
-"ሜይ",
-"áŒáŠ•",
-"áŒáˆ‹á‹­",
-"ኦገስት",
-"ሴá•á‰´áˆá‰ áˆ­",
-"ኦክተá‹á‰ áˆ­",
-"ኖቬáˆá‰ áˆ­",
-"ዲሴáˆá‰ áˆ­"
-);
-@DoWs = map { substr($_,0,9) } @DoW;
-@MoYs = map { substr($_,0,9) } @MoY;
-@AMPM = (
-"ን/ሰ",
-"ድ/ሰ"
-);
-
-@Dsuf = ("á‹­" x 31);
-}
-
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[$_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[$_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Date/Language/Turkish.pm b/Master/tlpkg/tlperl/lib/Date/Language/Turkish.pm
deleted file mode 100644
index 593e20925cf..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Language/Turkish.pm
+++ /dev/null
@@ -1,59 +0,0 @@
-#----------------------------------------------------#
-#
-# Turkish tables
-# Burak Gürsoy <burak@cpan.org>
-# Last modified: Sat Nov 15 20:28:32 2003
-#
-# use Date::Language;
-# my $turkish = Date::Language->new('Turkish');
-# print $turkish->time2str("%e %b %Y, %a %T\n", time);
-# print $turkish->str2time("25 Haz 1996 21:09:55 +0100");
-#----------------------------------------------------#
-
-package Date::Language::Turkish;
-use Date::Language ();
-use vars qw(@ISA @DoW @DoWs @MoY @MoYs @AMPM @Dsuf %MoY %DoW $VERSION %DsufMAP);
-@ISA = qw(Date::Language);
-$VERSION = "1.0";
-
-@DoW = qw(Pazar Pazartesi Salý Çarþamba Perþembe Cuma Cumartesi);
-@MoY = qw(Ocak Þubat Mart Nisan Mayýs Haziran Temmuz Aðustos Eylül Ekim Kasým Aralýk);
-@DoWs = map { substr($_,0,3) } @DoW;
-$DoWs[1] = 'Pzt'; # Since we'll get two 'Paz' s
-$DoWs[-1] = 'Cmt'; # Since we'll get two 'Cum' s
-@MoYs = map { substr($_,0,3) } @MoY;
-@AMPM = ('',''); # no am-pm thingy
-
-# not easy as in english... maybe we can just use a dot "." ? :)
-%DsufMAP = (
-(map {$_ => 'inci', $_+10 => 'inci', $_+20 => 'inci' } 1,2,5,8 ),
-(map {$_ => 'nci', $_+10 => 'nci', $_+20 => 'nci' } 7 ),
-(map {$_ => 'nci', $_+10 => 'nci', $_+20 => 'nci' } 2 ),
-(map {$_ => 'üncü', $_+10 => 'üncü', $_+20 => 'üncü' } 3,4 ),
-(map {$_ => 'uncu', $_+10 => 'uncu', $_+20 => 'uncu' } 9 ),
-(map {$_ => 'ncý', $_+10 => 'ncý', $_+20 => 'ncý' } 6 ),
-(map {$_ => 'uncu', } 10,30 ),
- 20 => 'nci',
- 31 => 'inci',
-);
-
-@Dsuf = map{ $DsufMAP{$_} } sort {$a <=> $b} keys %DsufMAP;
-@MoY{@MoY} = (0 .. scalar(@MoY));
-@MoY{@MoYs} = (0 .. scalar(@MoYs));
-@DoW{@DoW} = (0 .. scalar(@DoW));
-@DoW{@DoWs} = (0 .. scalar(@DoWs));
-
-# Formatting routines
-
-sub format_a { $DoWs[$_[0]->[6]] }
-sub format_A { $DoW[ $_[0]->[6]] }
-sub format_b { $MoYs[$_[0]->[4]] }
-sub format_B { $MoY[ $_[0]->[4]] }
-sub format_h { $MoYs[$_[0]->[4]] }
-sub format_p { '' } # disable
-sub format_P { '' } # disable
-sub format_o { sprintf("%2d%s",$_[0]->[3],$Dsuf[$_[0]->[3]-1]) }
-
-1;
-
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Date/Parse.pm b/Master/tlpkg/tlperl/lib/Date/Parse.pm
deleted file mode 100644
index 12b04c14ad0..00000000000
--- a/Master/tlpkg/tlperl/lib/Date/Parse.pm
+++ /dev/null
@@ -1,380 +0,0 @@
-# Copyright (c) 1995-2009 Graham Barr. This program is free
-# software; you can redistribute it and/or modify it under the same terms
-# as Perl itself.
-
-package Date::Parse;
-
-require 5.000;
-use strict;
-use vars qw($VERSION @ISA @EXPORT);
-use Time::Local;
-use Carp;
-use Time::Zone;
-use Exporter;
-
-@ISA = qw(Exporter);
-@EXPORT = qw(&strtotime &str2time &strptime);
-
-$VERSION = "2.30";
-
-my %month = (
- january => 0,
- february => 1,
- march => 2,
- april => 3,
- may => 4,
- june => 5,
- july => 6,
- august => 7,
- september => 8,
- sept => 8,
- october => 9,
- november => 10,
- december => 11,
- );
-
-my %day = (
- sunday => 0,
- monday => 1,
- tuesday => 2,
- tues => 2,
- wednesday => 3,
- wednes => 3,
- thursday => 4,
- thur => 4,
- thurs => 4,
- friday => 5,
- saturday => 6,
- );
-
-my @suf = (qw(th st nd rd th th th th th th)) x 3;
-@suf[11,12,13] = qw(th th th);
-
-#Abbreviations
-
-map { $month{substr($_,0,3)} = $month{$_} } keys %month;
-map { $day{substr($_,0,3)} = $day{$_} } keys %day;
-
-my $strptime = <<'ESQ';
- my %month = map { lc $_ } %$mon_ref;
- my $daypat = join("|", map { lc $_ } reverse sort keys %$day_ref);
- my $monpat = join("|", reverse sort keys %month);
- my $sufpat = join("|", reverse sort map { lc $_ } @$suf_ref);
-
- my %ampm = (
- 'a' => 0, # AM
- 'p' => 12, # PM
- );
-
- my($AM, $PM) = (0,12);
-
-sub {
-
- my $dtstr = lc shift;
- my $merid = 24;
-
- my($year,$month,$day,$hh,$mm,$ss,$zone,$dst,$frac);
-
- $zone = tz_offset(shift) if @_;
-
- 1 while $dtstr =~ s#\([^\(\)]*\)# #o;
-
- $dtstr =~ s#(\A|\n|\Z)# #sog;
-
- # ignore day names
- $dtstr =~ s#([\d\w\s])[\.\,]\s#$1 #sog;
- $dtstr =~ s/,/ /g;
- $dtstr =~ s#($daypat)\s*(den\s)?\b# #o;
- # Time: 12:00 or 12:00:00 with optional am/pm
-
- return unless $dtstr =~ /\S/;
-
- if ($dtstr =~ s/\s(\d{4})([-:]?)(\d\d?)\2(\d\d?)(?:[-Tt ](\d\d?)(?:([-:]?)(\d\d?)(?:\6(\d\d?)(?:[.,](\d+))?)?)?)?(?=\D)/ /) {
- ($year,$month,$day,$hh,$mm,$ss,$frac) = ($1,$3-1,$4,$5,$7,$8,$9);
- }
-
- unless (defined $hh) {
- if ($dtstr =~ s#[:\s](\d\d?):(\d\d?)(:(\d\d?)(?:\.\d+)?)?(z)?\s*(?:([ap])\.?m?\.?)?\s# #o) {
- ($hh,$mm,$ss) = ($1,$2,$4);
- $zone = 0 if $5;
- $merid = $ampm{$6} if $6;
- }
-
- # Time: 12 am
-
- elsif ($dtstr =~ s#\s(\d\d?)\s*([ap])\.?m?\.?\s# #o) {
- ($hh,$mm,$ss) = ($1,0,0);
- $merid = $ampm{$2};
- }
- }
-
- if (defined $hh and $hh <= 12 and $dtstr =~ s# ([ap])\.?m?\.?\s# #o) {
- $merid = $ampm{$1};
- }
-
-
- unless (defined $year) {
- # Date: 12-June-96 (using - . or /)
-
- if ($dtstr =~ s#\s(\d\d?)([\-\./])($monpat)(\2(\d\d+))?\s# #o) {
- ($month,$day) = ($month{$3},$1);
- $year = $5 if $5;
- }
-
- # Date: 12-12-96 (using '-', '.' or '/' )
-
- elsif ($dtstr =~ s#\s(\d+)([\-\./])(\d\d?)(\2(\d+))?\s# #o) {
- ($month,$day) = ($1 - 1,$3);
-
- if ($5) {
- $year = $5;
- # Possible match for 1995-01-24 (short mainframe date format);
- ($year,$month,$day) = ($1, $3 - 1, $5) if $month > 12;
- return if length($year) > 2 and $year < 1901;
- }
- }
- elsif ($dtstr =~ s#\s(\d+)\s*($sufpat)?\s*($monpat)# #o) {
- ($month,$day) = ($month{$3},$1);
- }
- elsif ($dtstr =~ s#($monpat)\s*(\d+)\s*($sufpat)?\s# #o) {
- ($month,$day) = ($month{$1},$2);
- }
- elsif ($dtstr =~ s#($monpat)([\/-])(\d+)[\/-]# #o) {
- ($month,$day) = ($month{$1},$3);
- }
-
- # Date: 961212
-
- elsif ($dtstr =~ s#\s(\d\d)(\d\d)(\d\d)\s# #o) {
- ($year,$month,$day) = ($1,$2-1,$3);
- }
-
- $year = $1 if !defined($year) and $dtstr =~ s#\s(\d{2}(\d{2})?)[\s\.,]# #o;
-
- }
-
- # Zone
-
- $dst = 1 if $dtstr =~ s#\bdst\b##o;
-
- if ($dtstr =~ s#\s"?([a-z]{3,4})(dst|\d+[a-z]*|_[a-z]+)?"?\s# #o) {
- $dst = 1 if $2 and $2 eq 'dst';
- $zone = tz_offset($1);
- return unless defined $zone;
- }
- elsif ($dtstr =~ s#\s([a-z]{3,4})?([\-\+]?)-?(\d\d?):?(\d\d)?(00)?\s# #o) {
- my $m = defined($4) ? "$2$4" : 0;
- my $h = "$2$3";
- $zone = defined($1) ? tz_offset($1) : 0;
- return unless defined $zone;
- $zone += 60 * ($m + (60 * $h));
- }
-
- if ($dtstr =~ /\S/) {
- # now for some dumb dates
- if ($dtstr =~ s/^\s*(ut?|z)\s*$//) {
- $zone = 0;
- }
- elsif ($dtstr =~ s#\s([a-z]{3,4})?([\-\+]?)-?(\d\d?)(\d\d)?(00)?\s# #o) {
- my $m = defined($4) ? "$2$4" : 0;
- my $h = "$2$3";
- $zone = defined($1) ? tz_offset($1) : 0;
- return unless defined $zone;
- $zone += 60 * ($m + (60 * $h));
- }
-
- return if $dtstr =~ /\S/o;
- }
-
- if (defined $hh) {
- if ($hh == 12) {
- $hh = 0 if $merid == $AM;
- }
- elsif ($merid == $PM) {
- $hh += 12;
- }
- }
-
- $year -= 1900 if defined $year && $year > 1900;
-
- $zone += 3600 if defined $zone && $dst;
- $ss += "0.$frac" if $frac;
-
- return ($ss,$mm,$hh,$day,$month,$year,$zone);
-}
-ESQ
-
-use vars qw($day_ref $mon_ref $suf_ref $obj);
-
-sub gen_parser
-{
- local($day_ref,$mon_ref,$suf_ref,$obj) = @_;
-
- if($obj)
- {
- my $obj_strptime = $strptime;
- substr($obj_strptime,index($strptime,"sub")+6,0) = <<'ESQ';
- shift; # package
-ESQ
- my $sub = eval "$obj_strptime" or die $@;
- return $sub;
- }
-
- eval "$strptime" or die $@;
-
-}
-
-*strptime = gen_parser(\%day,\%month,\@suf);
-
-sub str2time
-{
- my @t = strptime(@_);
-
- return undef
- unless @t;
-
- my($ss,$mm,$hh,$day,$month,$year,$zone) = @t;
- my @lt = localtime(time);
-
- $hh ||= 0;
- $mm ||= 0;
- $ss ||= 0;
-
- my $frac = $ss - int($ss);
- $ss = int $ss;
-
- $month = $lt[4]
- unless(defined $month);
-
- $day = $lt[3]
- unless(defined $day);
-
- $year = ($month > $lt[4]) ? ($lt[5] - 1) : $lt[5]
- unless(defined $year);
-
- return undef
- unless($month <= 11 && $day >= 1 && $day <= 31
- && $hh <= 23 && $mm <= 59 && $ss <= 59);
-
- my $result;
-
- if (defined $zone) {
- $result = eval {
- local $SIG{__DIE__} = sub {}; # Ick!
- timegm($ss,$mm,$hh,$day,$month,$year);
- };
- return undef
- if !defined $result
- or $result == -1
- && join("",$ss,$mm,$hh,$day,$month,$year)
- ne "595923311169";
- $result -= $zone;
- }
- else {
- $result = eval {
- local $SIG{__DIE__} = sub {}; # Ick!
- timelocal($ss,$mm,$hh,$day,$month,$year);
- };
- return undef
- if !defined $result
- or $result == -1
- && join("",$ss,$mm,$hh,$day,$month,$year)
- ne join("",(localtime(-1))[0..5]);
- }
-
- return $result + $frac;
-}
-
-1;
-
-__END__
-
-
-=head1 NAME
-
-Date::Parse - Parse date strings into time values
-
-=head1 SYNOPSIS
-
- use Date::Parse;
-
- $time = str2time($date);
-
- ($ss,$mm,$hh,$day,$month,$year,$zone) = strptime($date);
-
-=head1 DESCRIPTION
-
-C<Date::Parse> provides two routines for parsing date strings into time values.
-
-=over 4
-
-=item str2time(DATE [, ZONE])
-
-C<str2time> parses C<DATE> and returns a unix time value, or undef upon failure.
-C<ZONE>, if given, specifies the timezone to assume when parsing if the
-date string does not specify a timezone.
-
-=item strptime(DATE [, ZONE])
-
-C<strptime> takes the same arguments as str2time but returns an array of
-values C<($ss,$mm,$hh,$day,$month,$year,$zone)>. Elements are only defined
-if they could be extracted from the date string. The C<$zone> element is
-the timezone offset in seconds from GMT. An empty array is returned upon
-failure.
-
-=head1 MULTI-LANGUAGE SUPPORT
-
-Date::Parse is capable of parsing dates in several languages, these include
-English, French, German and Italian.
-
- $lang = Date::Language->new('German');
- $lang->str2time("25 Jun 1996 21:09:55 +0100");
-
-=head1 EXAMPLE DATES
-
-Below is a sample list of dates that are known to be parsable with Date::Parse
-
- 1995:01:24T09:08:17.1823213 ISO-8601
- 1995-01-24T09:08:17.1823213
- Wed, 16 Jun 94 07:29:35 CST Comma and day name are optional
- Thu, 13 Oct 94 10:13:13 -0700
- Wed, 9 Nov 1994 09:50:32 -0500 (EST) Text in ()'s will be ignored.
- 21 dec 17:05 Will be parsed in the current time zone
- 21-dec 17:05
- 21/dec 17:05
- 21/dec/93 17:05
- 1999 10:02:18 "GMT"
- 16 Nov 94 22:28:20 PST
-
-=head1 LIMITATION
-
-Date::Parse uses L<Time::Local> internally, so is limited to only parsing dates
-which result in valid values for Time::Local::timelocal. This generally means dates
-between 1901-12-17 00:00:00 GMT and 2038-01-16 23:59:59 GMT
-
-=head1 BUGS
-
-When both the month and the date are specified in the date as numbers
-they are always parsed assuming that the month number comes before the
-date. This is the usual format used in American dates.
-
-The reason why it is like this and not dynamic is that it must be
-deterministic. Several people have suggested using the current locale,
-but this will not work as the date being parsed may not be in the format
-of the current locale.
-
-My plans to address this, which will be in a future release, is to allow
-the programmer to state what order they want these values parsed in.
-
-=head1 AUTHOR
-
-Graham Barr <gbarr@pobox.com>
-
-=head1 COPYRIGHT
-
-Copyright (c) 1995-2009 Graham Barr. This program is free
-software; you can redistribute it and/or modify it under the same terms
-as Perl itself.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Devel/PPPort.pm b/Master/tlpkg/tlperl/lib/Devel/PPPort.pm
index f04cb2b7fa8..dc2e1fe97bd 100644
--- a/Master/tlpkg/tlperl/lib/Devel/PPPort.pm
+++ b/Master/tlpkg/tlperl/lib/Devel/PPPort.pm
@@ -30,6 +30,10 @@ Devel::PPPort - Perl/Pollution/Portability
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,
@@ -39,11 +43,14 @@ 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 a single function, called C<WriteFile>. Its
-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 5.003 to 5.11.5 are supported.
+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 5.003 to 5.20 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>.
@@ -95,9 +102,14 @@ 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 5.003 to 5.11.5
+F<ppport.h> supports Perl versions from 5.003 to 5.20
in threaded and non-threaded configurations.
=head2 Provided Perl compatibility API
@@ -120,6 +132,7 @@ in older Perl releases:
call_method
call_pv
call_sv
+ caller_cx
ckWARN
CopFILE
CopFILE_set
@@ -175,6 +188,8 @@ in older Perl releases:
gv_stashpvn
gv_stashpvs
GvSVn
+ HEf_SVKEY
+ HeUTF8
hv_fetchs
hv_stores
HvNAME_get
@@ -208,12 +223,15 @@ in older Perl releases:
memEQs
memNE
memNEs
+ mg_findext
MoveD
mPUSHi
mPUSHn
mPUSHp
mPUSHs
mPUSHu
+ MUTABLE_PTR
+ MUTABLE_SV
mXPUSHi
mXPUSHn
mXPUSHp
@@ -448,6 +466,7 @@ in older Perl releases:
sv_setuv
sv_setuv_mg
SV_SMAGIC
+ sv_unmagicext
sv_usepvn_mg
SV_UTF8_NO_ENCODING
sv_uv
@@ -587,7 +606,7 @@ Perl below which it is unsupported:
=over 4
-=item perl 5.19.3
+=item perl 5.21.8
BhkDISABLE
BhkENABLE
@@ -605,18 +624,23 @@ Perl below which it is unsupported:
PadlistNAMESMAX
PadnameLEN
PadnamePV
+ PadnameREFCNT
+ PadnameREFCNT_dec
PadnameSV
- PadnameUTF8
PadnamelistARRAY
PadnamelistMAX
+ PadnamelistREFCNT
+ PadnamelistREFCNT_dec
+ XS_APIVERSION_BOOTCHECK
XS_EXTERNAL
XS_INTERNAL
+ XS_VERSION_BOOTCHECK
XopDISABLE
XopENABLE
XopENTRY
+ XopENTRYCUSTOM
XopENTRY_set
cophh_new_empty
- croak_memory_wrap
my_lstat
my_stat
reentrant_free
@@ -624,9 +648,87 @@ Perl below which it is unsupported:
reentrant_retry
reentrant_size
ref
- sv_pos_b2u_flags
+ sv_get_backrefs
sv_setref_pvs
+=item perl 5.21.7
+
+ OpHAS_SIBLING
+ OpSIBLING
+ OpSIBLING_set
+ PadnameUTF8
+ is_invariant_string
+ newPADNAMELIST
+ newPADNAMEouter
+ newPADNAMEpvn
+ newUNOP_AUX
+ padnamelist_fetch
+ padnamelist_store
+
+=item perl 5.21.6
+
+ newDEFSVOP
+ op_convert_list
+
+=item perl 5.21.5
+
+ cv_name
+ newMETHOP
+ newMETHOP_named
+
+=item perl 5.21.4
+
+ cv_set_call_checker_flags
+ grok_infnan
+ isinfnan
+ sync_locale
+
+=item perl 5.21.2
+
+ grok_number_flags
+ op_parent
+ op_sibling_splice
+
+=item perl 5.21.1
+
+ _is_in_locale_category
+ _is_utf8_char_slow
+ _is_utf8_idcont
+ _is_utf8_idstart
+ _is_utf8_xidcont
+ _is_utf8_xidstart
+ isALNUM_lazy
+ isIDFIRST_lazy
+ isUTF8_CHAR
+ markstack_grow
+ my_strerror
+
+=item perl 5.19.10
+
+ OP_TYPE_IS_OR_WAS
+
+=item perl 5.19.9
+
+ _to_utf8_fold_flags
+ _to_utf8_lower_flags
+ _to_utf8_title_flags
+ _to_utf8_upper_flags
+
+=item perl 5.19.7
+
+ OP_TYPE_IS
+
+=item perl 5.19.4
+
+ append_utf8_from_native_byte
+ is_safe_syscall
+ uvoffuni_to_utf8_flags
+
+=item perl 5.19.3
+
+ croak_memory_wrap
+ sv_pos_b2u_flags
+
=item perl 5.19.2
SVt_INVLIST
@@ -639,7 +741,7 @@ Perl below which it is unsupported:
toLOWER_L1
toTITLE
-=item perl 5.17.11
+=item perl 5.18.0
hv_rand_set
@@ -691,6 +793,7 @@ Perl below which it is unsupported:
utf8_to_uvchr_buf
utf8_to_uvuni_buf
+ valid_utf8_to_uvchr
valid_utf8_to_uvuni
=item perl 5.15.8
@@ -710,10 +813,6 @@ Perl below which it is unsupported:
=item perl 5.15.6
- _to_utf8_fold_flags
- _to_utf8_lower_flags
- _to_utf8_title_flags
- _to_utf8_upper_flags
newCONSTSUB_flags
=item perl 5.15.4
@@ -761,7 +860,7 @@ Perl below which it is unsupported:
pad_findmy_pvs
pad_findmy_sv
-=item perl 5.13.11
+=item perl 5.14.0
_to_uni_fold_flags
@@ -774,12 +873,10 @@ Perl below which it is unsupported:
=item perl 5.13.8
foldEQ_latin1
- mg_findext
parse_arithexpr
parse_fullexpr
parse_listexpr
parse_termexpr
- sv_unmagicext
=item perl 5.13.7
@@ -855,15 +952,10 @@ Perl below which it is unsupported:
=item perl 5.13.5
PL_rpeepp
- caller_cx
isOCTAL
lex_stuff_pvs
parse_fullstmt
-=item perl 5.13.4
-
- XS_APIVERSION_BOOTCHECK
-
=item perl 5.13.3
blockhook_register
@@ -937,7 +1029,6 @@ Perl below which it is unsupported:
=item perl 5.10.1
- HeUTF8
croak_xs_usage
mro_get_from_name
mro_get_private_data
@@ -953,8 +1044,6 @@ Perl below which it is unsupported:
=item perl 5.10.0
- PERL_SYS_INIT
- PERL_SYS_INIT3
hv_common
hv_common_key_len
sv_destroyable
@@ -964,7 +1053,6 @@ Perl below which it is unsupported:
=item perl 5.9.5
- PL_parser
Perl_signbit
SvRX
SvRXOK
@@ -1082,6 +1170,7 @@ Perl below which it is unsupported:
=item perl 5.8.0
+ HeUTF8
hv_iternext_flags
hv_store_flags
is_utf8_idcont
@@ -1174,8 +1263,9 @@ Perl below which it is unsupported:
=item perl 5.7.1
+ ASCII_TO_NEED
+ NATIVE_TO_NEED
POPpbytex
- XCPT_RETHROW
bytes_from_utf8
despatch_signals
do_openn
@@ -1191,7 +1281,9 @@ Perl below which it is unsupported:
utf8_length
utf8_to_uvchr
utf8_to_uvuni
+ utf8n_to_uvchr
utf8n_to_uvuni
+ uvchr_to_utf8
uvuni_to_utf8
=item perl 5.6.1
@@ -1209,6 +1301,7 @@ Perl below which it is unsupported:
=item perl 5.6.0
+ PERL_SYS_INIT3
PL_check
SvIOK_UV
SvIOK_notUV
@@ -1229,6 +1322,7 @@ Perl below which it is unsupported:
av_delete
av_exists
call_atexit
+ caller_cx
cast_i32
cast_iv
cast_ulong
@@ -1253,8 +1347,6 @@ Perl below which it is unsupported:
gv_dump
init_i18nl10n
init_i18nl14n
- isASCII
- isCNTRL
is_uni_alnum
is_uni_alnum_lc
is_uni_alpha
@@ -1347,7 +1439,6 @@ Perl below which it is unsupported:
sv_utf8_downgrade
sv_utf8_encode
swash_init
- tmps_grow
to_uni_lower_lc
to_uni_title_lc
to_uni_upper_lc
@@ -1388,7 +1479,6 @@ Perl below which it is unsupported:
runops_standard
save_iv
save_op
- screaminstr
sv_iv
sv_nv
sv_peek
@@ -1398,9 +1488,7 @@ Perl below which it is unsupported:
=item perl 5.004_05
- Copy
CopyD
- Move
MoveD
do_binmode
save_aelem
@@ -1410,46 +1498,27 @@ Perl below which it is unsupported:
GIMME_V
G_VOID
- HEf_SVKEY
- HeHASH
- HeKEY
- HeKLEN
HePV
- HeSVKEY
- HeSVKEY_force
HeSVKEY_set
- HeVAL
SvSetMagicSV
SvSetMagicSV_nosteal
SvSetSV_nosteal
SvTAINTED
SvTAINTED_off
SvTAINTED_on
- XCPT_TRY_END
- XCPT_TRY_START
+ block_end
block_gimme
+ block_start
call_list
- cv_const_sv
delimcpy
- do_open
form
gv_autoload4
- gv_efullname3
gv_fetchmethod_autoload
- gv_fullname3
hv_delayfree_ent
- hv_delete_ent
- hv_exists_ent
- hv_fetch_ent
hv_free_ent
- hv_iterkeysv
- hv_ksplit
- hv_store_ent
ibcmp_locale
+ intro_my
my_failure_exit
- my_memset
- my_pclose
- my_popen
newSVpvf
rsignal
rsignal_state
@@ -1461,7 +1530,6 @@ Perl below which it is unsupported:
sv_catpvf_mg
sv_cmp_locale
sv_derived_from
- sv_gets
sv_magic_portable
sv_setpvf
sv_setpvf_mg
@@ -1475,18 +1543,39 @@ Perl below which it is unsupported:
sv_vsetpvf_mg
sv_vsetpvfn
toLOWER_LC
- toUPPER
- unsharepvn
vnewSVpvf
warner
+=item perl 5.003_07
+
+ HeHASH
+ HeKEY
+ HeKLEN
+ HeSVKEY
+ HeSVKEY_force
+ HeVAL
+ cv_const_sv
+ do_open
+ gv_efullname3
+ gv_fullname3
+ hv_delete_ent
+ hv_exists_ent
+ hv_fetch_ent
+ hv_iterkeysv
+ hv_ksplit
+ hv_store_ent
+ my_pclose
+ my_popen
+ sv_gets
+ unsharepvn
+
=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 use the CPAN Request Tracker
-at L<http://rt.cpan.org/> to create a ticket for the module.
+system, or any of its tests fail, please file an issue here:
+L<https://github.com/mhx/Devel-PPPort/issues/>
=head1 AUTHORS
@@ -1504,6 +1593,10 @@ Version 2.x was ported to the Perl core by Paul Marquess.
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
@@ -1528,7 +1621,7 @@ package Devel::PPPort;
use strict;
use vars qw($VERSION $data);
-$VERSION = '3.21';
+$VERSION = '3.31';
sub _init_data
{
@@ -1540,15 +1633,21 @@ sub _init_data
$data =~ s/^\|>//gm;
}
-sub WriteFile
-{
+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 $copy;
+ print F $data;
close F;
return 1;
@@ -1615,7 +1714,7 @@ SKIP
|>=head1 COMPATIBILITY
|>
|>This version of F<ppport.h> is designed to support operation with Perl
-|>installations back to 5.003, and has been tested up to 5.11.5.
+|>installations back to 5.003, and has been tested up to 5.20.
|>
|>=head1 OPTIONS
|>
@@ -1638,7 +1737,7 @@ SKIP
|>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
-|>automagially add a dot between the original filename and the
+|>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.
|>
@@ -1778,6 +1877,7 @@ SKIP
|> -----------------------------------------------------------------------------------------
|> PL_parser NEED_PL_parser NEED_PL_parser_GLOBAL
|> PL_signals NEED_PL_signals NEED_PL_signals_GLOBAL
+|> caller_cx() NEED_caller_cx NEED_caller_cx_GLOBAL
|> eval_pv() NEED_eval_pv NEED_eval_pv_GLOBAL
|> grok_bin() NEED_grok_bin NEED_grok_bin_GLOBAL
|> grok_hex() NEED_grok_hex NEED_grok_hex_GLOBAL
@@ -1785,6 +1885,7 @@ SKIP
|> grok_numeric_radix() NEED_grok_numeric_radix NEED_grok_numeric_radix_GLOBAL
|> grok_oct() NEED_grok_oct NEED_grok_oct_GLOBAL
|> load_module() NEED_load_module NEED_load_module_GLOBAL
+|> mg_findext() NEED_mg_findext NEED_mg_findext_GLOBAL
|> my_snprintf() NEED_my_snprintf NEED_my_snprintf_GLOBAL
|> my_sprintf() NEED_my_sprintf NEED_my_sprintf_GLOBAL
|> my_strlcat() NEED_my_strlcat NEED_my_strlcat_GLOBAL
@@ -1804,6 +1905,7 @@ SKIP
|> sv_pvn_force_flags() NEED_sv_pvn_force_flags NEED_sv_pvn_force_flags_GLOBAL
|> sv_setpvf_mg() NEED_sv_setpvf_mg NEED_sv_setpvf_mg_GLOBAL
|> sv_setpvf_mg_nocontext() NEED_sv_setpvf_mg_nocontext NEED_sv_setpvf_mg_nocontext_GLOBAL
+|> sv_unmagicext() NEED_sv_unmagicext NEED_sv_unmagicext_GLOBAL
|> vload_module() NEED_vload_module NEED_vload_module_GLOBAL
|> vnewSVpvf() NEED_vnewSVpvf NEED_vnewSVpvf_GLOBAL
|> warner() NEED_warner NEED_warner_GLOBAL
@@ -1884,7 +1986,7 @@ SKIP
|>
|>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 using the CPAN Request Tracker at L<http://rt.cpan.org/>.
+|>file a bug report here: L<https://github.com/mhx/Devel-PPPort/issues/>
|>
|>Please include the following information:
|>
@@ -2004,11 +2106,12 @@ my %API = map { /^(\w+)\|([^|]*)\|([^|]*)\|(\w*)$/
(index($4, 'n') >= 0 ? ( nothxarg => 1 ) : ()),
} )
: die "invalid spec: $_" } qw(
+ASCII_TO_NEED||5.007001|n
AvFILLp|5.004050||p
AvFILL|||
-BhkDISABLE||5.019003|
-BhkENABLE||5.019003|
-BhkENTRY_set||5.019003|
+BhkDISABLE||5.021008|
+BhkENABLE||5.021008|
+BhkENTRY_set||5.021008|
BhkENTRY|||
BhkFLAGS|||
CALL_BLOCK_HOOKS|||
@@ -2028,7 +2131,7 @@ CopSTASH_eq|5.006000||p
CopSTASH_set|5.006000||p
CopSTASH|5.006000||p
CopyD|5.009002|5.004050|p
-Copy||5.004050|
+Copy|||
CvPADLIST||5.008001|
CvSTASH|||
CvWEAKOUTSIDE|||
@@ -2058,16 +2161,16 @@ GvHV|||
GvSVn|5.009003||p
GvSV|||
Gv_AMupdate||5.011000|
-HEf_SVKEY||5.004000|
-HeHASH||5.004000|
-HeKEY||5.004000|
-HeKLEN||5.004000|
+HEf_SVKEY|5.003070||p
+HeHASH||5.003070|
+HeKEY||5.003070|
+HeKLEN||5.003070|
HePV||5.004000|
-HeSVKEY_force||5.004000|
+HeSVKEY_force||5.003070|
HeSVKEY_set||5.004000|
-HeSVKEY||5.004000|
-HeUTF8||5.010001|
-HeVAL||5.004000|
+HeSVKEY||5.003070|
+HeUTF8|5.010001|5.008000|p
+HeVAL||5.003070|
HvENAMELEN||5.015004|
HvENAMEUTF8||5.015004|
HvENAME||5.013007|
@@ -2094,12 +2197,15 @@ LEAVE|||
LINKLIST||5.013006|
LVRET|||
MARK|||
-MULTICALL||5.019003|
+MULTICALL||5.021008|
+MUTABLE_PTR|5.010001||p
+MUTABLE_SV|5.010001||p
MY_CXT_CLONE|5.009002||p
MY_CXT_INIT|5.007003||p
MY_CXT|5.007003||p
MoveD|5.009002|5.004050|p
-Move||5.004050|
+Move|||
+NATIVE_TO_NEED||5.007001|n
NOOP|5.005000||p
NUM2PTR|5.006000||p
NVTYPE|5.006000||p
@@ -2117,7 +2223,12 @@ Nullsv|||
OP_CLASS||5.013007|
OP_DESC||5.007003|
OP_NAME||5.007003|
+OP_TYPE_IS_OR_WAS||5.019010|
+OP_TYPE_IS||5.019007|
ORIGMARK|||
+OpHAS_SIBLING||5.021007|
+OpSIBLING_set||5.021007|
+OpSIBLING||5.021007|
PAD_BASE_SV|||
PAD_CLONE_VARS|||
PAD_COMPNAME_FLAGS|||
@@ -2137,13 +2248,13 @@ PAD_SV|||
PERLIO_FUNCS_CAST|5.009003||p
PERLIO_FUNCS_DECL|5.009003||p
PERL_ABS|5.008001||p
-PERL_BCDVERSION|5.019002||p
+PERL_BCDVERSION|5.021008||p
PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||p
-PERL_HASH|5.004000||p
-PERL_INT_MAX|5.004000||p
-PERL_INT_MIN|5.004000||p
-PERL_LONG_MAX|5.004000||p
-PERL_LONG_MIN|5.004000||p
+PERL_HASH|5.003070||p
+PERL_INT_MAX|5.003070||p
+PERL_INT_MIN|5.003070||p
+PERL_LONG_MAX|5.003070||p
+PERL_LONG_MIN|5.003070||p
PERL_MAGIC_arylen|5.007002||p
PERL_MAGIC_backref|5.007002||p
PERL_MAGIC_bm|5.007002||p
@@ -2155,14 +2266,14 @@ PERL_MAGIC_envelem|5.007002||p
PERL_MAGIC_env|5.007002||p
PERL_MAGIC_ext|5.007002||p
PERL_MAGIC_fm|5.007002||p
-PERL_MAGIC_glob|5.019002||p
+PERL_MAGIC_glob|5.021008||p
PERL_MAGIC_isaelem|5.007002||p
PERL_MAGIC_isa|5.007002||p
-PERL_MAGIC_mutex|5.019002||p
+PERL_MAGIC_mutex|5.021008||p
PERL_MAGIC_nkeys|5.007002||p
-PERL_MAGIC_overload_elem|5.019002||p
+PERL_MAGIC_overload_elem|5.021008||p
PERL_MAGIC_overload_table|5.007002||p
-PERL_MAGIC_overload|5.019002||p
+PERL_MAGIC_overload|5.021008||p
PERL_MAGIC_pos|5.007002||p
PERL_MAGIC_qr|5.007002||p
PERL_MAGIC_regdata|5.007002||p
@@ -2197,48 +2308,48 @@ PERL_PV_PRETTY_LTGT|5.009004||p
PERL_PV_PRETTY_NOCLEAR|5.010000||p
PERL_PV_PRETTY_QUOTE|5.009004||p
PERL_PV_PRETTY_REGPROP|5.009004||p
-PERL_QUAD_MAX|5.004000||p
-PERL_QUAD_MIN|5.004000||p
+PERL_QUAD_MAX|5.003070||p
+PERL_QUAD_MIN|5.003070||p
PERL_REVISION|5.006000||p
PERL_SCAN_ALLOW_UNDERSCORES|5.007003||p
PERL_SCAN_DISALLOW_PREFIX|5.007003||p
PERL_SCAN_GREATER_THAN_UV_MAX|5.007003||p
PERL_SCAN_SILENT_ILLDIGIT|5.008001||p
-PERL_SHORT_MAX|5.004000||p
-PERL_SHORT_MIN|5.004000||p
+PERL_SHORT_MAX|5.003070||p
+PERL_SHORT_MIN|5.003070||p
PERL_SIGNALS_UNSAFE_FLAG|5.008001||p
PERL_SUBVERSION|5.006000||p
-PERL_SYS_INIT3||5.010000|
-PERL_SYS_INIT||5.010000|
-PERL_SYS_TERM||5.019003|
-PERL_UCHAR_MAX|5.004000||p
-PERL_UCHAR_MIN|5.004000||p
-PERL_UINT_MAX|5.004000||p
-PERL_UINT_MIN|5.004000||p
-PERL_ULONG_MAX|5.004000||p
-PERL_ULONG_MIN|5.004000||p
+PERL_SYS_INIT3||5.006000|
+PERL_SYS_INIT|||
+PERL_SYS_TERM||5.021008|
+PERL_UCHAR_MAX|5.003070||p
+PERL_UCHAR_MIN|5.003070||p
+PERL_UINT_MAX|5.003070||p
+PERL_UINT_MIN|5.003070||p
+PERL_ULONG_MAX|5.003070||p
+PERL_ULONG_MIN|5.003070||p
PERL_UNUSED_ARG|5.009003||p
PERL_UNUSED_CONTEXT|5.009004||p
PERL_UNUSED_DECL|5.007002||p
PERL_UNUSED_VAR|5.007002||p
-PERL_UQUAD_MAX|5.004000||p
-PERL_UQUAD_MIN|5.004000||p
+PERL_UQUAD_MAX|5.003070||p
+PERL_UQUAD_MIN|5.003070||p
PERL_USE_GCC_BRACE_GROUPS|5.009004||p
-PERL_USHORT_MAX|5.004000||p
-PERL_USHORT_MIN|5.004000||p
+PERL_USHORT_MAX|5.003070||p
+PERL_USHORT_MIN|5.003070||p
PERL_VERSION|5.006000||p
PL_DBsignal|5.005000||p
PL_DBsingle|||pn
PL_DBsub|||pn
PL_DBtrace|||pn
PL_Sv|5.005000||p
-PL_bufend|5.019002||p
-PL_bufptr|5.019002||p
+PL_bufend|5.021008||p
+PL_bufptr|5.021008||p
PL_check||5.006000|
PL_compiling|5.004050||p
PL_comppad_name||5.017004|
PL_comppad||5.008001|
-PL_copline|5.019002||p
+PL_copline|5.021008||p
PL_curcop|5.004050||p
PL_curpad||5.005000|
PL_curstash|5.004050||p
@@ -2248,31 +2359,31 @@ PL_diehook|5.004050||p
PL_dirty|5.004050||p
PL_dowarn|||pn
PL_errgv|5.004050||p
-PL_error_count|5.019002||p
-PL_expect|5.019002||p
+PL_error_count|5.021008||p
+PL_expect|5.021008||p
PL_hexdigit|5.005000||p
PL_hints|5.005000||p
-PL_in_my_stash|5.019002||p
-PL_in_my|5.019002||p
+PL_in_my_stash|5.021008||p
+PL_in_my|5.021008||p
PL_keyword_plugin||5.011002|
PL_last_in_gv|||n
PL_laststatval|5.005000||p
-PL_lex_state|5.019002||p
-PL_lex_stuff|5.019002||p
-PL_linestr|5.019002||p
+PL_lex_state|5.021008||p
+PL_lex_stuff|5.021008||p
+PL_linestr|5.021008||p
PL_modglobal||5.005000|n
PL_na|5.004050||pn
PL_no_modify|5.006000||p
PL_ofsgv|||n
PL_opfreehook||5.011000|n
-PL_parser|5.009005|5.009005|p
+PL_parser|5.009005||p
PL_peepp||5.007003|n
PL_perl_destruct_level|5.004050||p
PL_perldb|5.004050||p
PL_ppaddr|5.006000||p
PL_rpeepp||5.013005|n
-PL_rsfp_filters|5.019002||p
-PL_rsfp|5.019002||p
+PL_rsfp_filters|5.021008||p
+PL_rsfp|5.021008||p
PL_rs|||n
PL_signals|5.008001||p
PL_stack_base|5.004050||p
@@ -2285,8 +2396,8 @@ PL_sv_undef|5.004050||pn
PL_sv_yes|5.004050||pn
PL_tainted|5.004050||p
PL_tainting|5.004050||p
-PL_tokenbuf|5.019002||p
-POP_MULTICALL||5.019003|
+PL_tokenbuf|5.021008||p
+POP_MULTICALL||5.021008|
POPi|||n
POPl|||n
POPn|||n
@@ -2301,7 +2412,7 @@ PTR2nat|5.009003||p
PTR2ul|5.007001||p
PTRV|5.006000||p
PUSHMARK|||
-PUSH_MULTICALL||5.019003|
+PUSH_MULTICALL||5.021008|
PUSHi|||
PUSHmortal|5.009002||p
PUSHn|||
@@ -2309,25 +2420,29 @@ PUSHp|||
PUSHs|||
PUSHu|5.004000||p
PUTBACK|||
-PadARRAY||5.019003|
-PadMAX||5.019003|
-PadlistARRAY||5.019003|
-PadlistMAX||5.019003|
-PadlistNAMESARRAY||5.019003|
-PadlistNAMESMAX||5.019003|
-PadlistNAMES||5.019003|
+PadARRAY||5.021008|
+PadMAX||5.021008|
+PadlistARRAY||5.021008|
+PadlistMAX||5.021008|
+PadlistNAMESARRAY||5.021008|
+PadlistNAMESMAX||5.021008|
+PadlistNAMES||5.021008|
PadlistREFCNT||5.017004|
PadnameIsOUR|||
PadnameIsSTATE|||
-PadnameLEN||5.019003|
+PadnameLEN||5.021008|
PadnameOURSTASH|||
PadnameOUTER|||
-PadnamePV||5.019003|
-PadnameSV||5.019003|
+PadnamePV||5.021008|
+PadnameREFCNT_dec||5.021008|
+PadnameREFCNT||5.021008|
+PadnameSV||5.021008|
PadnameTYPE|||
-PadnameUTF8||5.019003|
-PadnamelistARRAY||5.019003|
-PadnamelistMAX||5.019003|
+PadnameUTF8||5.021007|
+PadnamelistARRAY||5.021008|
+PadnamelistMAX||5.021008|
+PadnamelistREFCNT_dec||5.021008|
+PadnamelistREFCNT||5.021008|
PerlIO_clearerr||5.007003|
PerlIO_close||5.007003|
PerlIO_context_layers||5.009004|
@@ -2341,6 +2456,8 @@ PerlIO_get_bufsiz||5.007003|
PerlIO_get_cnt||5.007003|
PerlIO_get_ptr||5.007003|
PerlIO_read||5.007003|
+PerlIO_restore_errno|||
+PerlIO_save_errno|||
PerlIO_seek||5.007003|
PerlIO_set_cnt||5.007003|
PerlIO_set_ptrcnt||5.007003|
@@ -2552,7 +2669,7 @@ UVuf|5.006000||p
UVxf|5.006000||p
WARN_ALL|5.006000||p
WARN_AMBIGUOUS|5.006000||p
-WARN_ASSERTIONS|5.019002||p
+WARN_ASSERTIONS|5.021008||p
WARN_BAREWORD|5.006000||p
WARN_CLOSED|5.006000||p
WARN_CLOSURE|5.006000||p
@@ -2599,9 +2716,9 @@ WARN_UTF8|5.006000||p
WARN_VOID|5.006000||p
WIDEST_UTYPE|5.015004||p
XCPT_CATCH|5.009002||p
-XCPT_RETHROW|5.009002|5.007001|p
-XCPT_TRY_END|5.009002|5.004000|p
-XCPT_TRY_START|5.009002|5.004000|p
+XCPT_RETHROW|5.009002||p
+XCPT_TRY_END|5.009002||p
+XCPT_TRY_START|5.009002||p
XPUSHi|||
XPUSHmortal|5.009002||p
XPUSHn|||
@@ -2625,17 +2742,18 @@ XST_mPV|||
XST_mUNDEF|||
XST_mUV|5.008001||p
XST_mYES|||
-XS_APIVERSION_BOOTCHECK||5.013004|
-XS_EXTERNAL||5.019003|
-XS_INTERNAL||5.019003|
-XS_VERSION_BOOTCHECK|||
+XS_APIVERSION_BOOTCHECK||5.021008|
+XS_EXTERNAL||5.021008|
+XS_INTERNAL||5.021008|
+XS_VERSION_BOOTCHECK||5.021008|
XS_VERSION|||
XSprePUSH|5.006000||p
XS|||
-XopDISABLE||5.019003|
-XopENABLE||5.019003|
-XopENTRY_set||5.019003|
-XopENTRY||5.019003|
+XopDISABLE||5.021008|
+XopENABLE||5.021008|
+XopENTRYCUSTOM||5.021008|
+XopENTRY_set||5.021008|
+XopENTRY||5.021008|
XopFLAGS||5.013007|
ZeroD|5.009002||p
Zero|||
@@ -2643,53 +2761,67 @@ _aMY_CXT|5.007003||p
_add_range_to_invlist|||
_append_range_to_invlist|||
_core_swash_init|||
+_get_encoding|||
+_get_regclass_nonbitmap_data|||
_get_swash_invlist|||
-_invlist_array_init|||
-_invlist_contains_cp|||
+_invlist_array_init|||n
+_invlist_contains_cp|||n
_invlist_contents|||
_invlist_dump|||
_invlist_intersection_maybe_complement_2nd|||
_invlist_intersection|||
-_invlist_invert_prop|||
_invlist_invert|||
-_invlist_len|||
-_invlist_populate_swatch|||
-_invlist_search|||
+_invlist_len|||n
+_invlist_populate_swatch|||n
+_invlist_search|||n
_invlist_subtract|||
_invlist_union_maybe_complement_2nd|||
_invlist_union|||
+_is_cur_LC_category_utf8|||
+_is_in_locale_category||5.021001|
_is_uni_FOO||5.017008|
_is_uni_perl_idcont||5.017008|
_is_uni_perl_idstart||5.017007|
_is_utf8_FOO||5.017008|
+_is_utf8_char_slow||5.021001|n
+_is_utf8_idcont||5.021001|
+_is_utf8_idstart||5.021001|
_is_utf8_mark||5.017008|
_is_utf8_perl_idcont||5.017008|
_is_utf8_perl_idstart||5.017007|
+_is_utf8_xidcont||5.021001|
+_is_utf8_xidstart||5.021001|
+_load_PL_utf8_foldclosures|||
+_make_exactf_invlist|||
_new_invlist_C_array|||
_new_invlist|||
_pMY_CXT|5.007003||p
+_setup_canned_invlist|||
_swash_inversion_hash|||
_swash_to_invlist|||
_to_fold_latin1|||
-_to_uni_fold_flags||5.013011|
+_to_uni_fold_flags||5.014000|
_to_upper_title_latin1|||
-_to_utf8_fold_flags||5.015006|
-_to_utf8_lower_flags||5.015006|
-_to_utf8_title_flags||5.015006|
-_to_utf8_upper_flags||5.015006|
+_to_utf8_fold_flags||5.019009|
+_to_utf8_lower_flags||5.019009|
+_to_utf8_title_flags||5.019009|
+_to_utf8_upper_flags||5.019009|
+_warn_problematic_locale|||n
aMY_CXT_|5.007003||p
aMY_CXT|5.007003||p
-aTHXR_|5.019002||p
-aTHXR|5.019002||p
+aTHXR_|5.021008||p
+aTHXR|5.021008||p
aTHX_|5.006000||p
aTHX|5.006000||p
aassign_common_vars|||
+add_above_Latin1_folds|||
add_cp_to_invlist|||
add_data|||n
+add_multi_match|||
add_utf16_textfilter|||
-addmad|||
adjust_size_and_find_bucket|||n
-adjust_stack_on_leave|||
+advance_one_SB|||
+advance_one_WB|||
alloc_maybe_populate_EXACT|||
alloccopstash|||
allocmy|||
@@ -2703,12 +2835,13 @@ amagic_ncmp|||
anonymise_cv_maybe|||
any_dup|||
ao|||
-append_madprops|||
+append_utf8_from_native_byte||5.019004|n
apply_attrs_my|||
apply_attrs_string||5.006001|
apply_attrs|||
apply|||
assert_uft8_cache_coherent|||
+assignment_type|||
atfork_lock||5.007003|n
atfork_unlock||5.007003|n
av_arylen_p||5.009003|
@@ -2734,12 +2867,14 @@ av_top_index||5.017009|
av_undef|||
av_unshift|||
ax|||n
+backup_one_SB|||
+backup_one_WB|||
bad_type_gv|||
bad_type_pv|||
bind_match|||
-block_end|||
+block_end||5.004000|
block_gimme||5.004000|
-block_start|||
+block_start||5.004000|
blockhook_register||5.013003|
boolSV|5.004000||p
boot_core_PerlIO|||
@@ -2747,7 +2882,6 @@ boot_core_UNIVERSAL|||
boot_core_mro|||
bytes_cmp_utf8||5.013007|
bytes_from_utf8||5.007001|
-bytes_to_uni|||n
bytes_to_utf8||5.006001|
call_argv|5.006000||p
call_atexit||5.006000|
@@ -2755,13 +2889,13 @@ call_list||5.004000|
call_method|5.006000||p
call_pv|5.006000||p
call_sv|5.006000||p
-caller_cx||5.013005|
+caller_cx|5.013005|5.006000|p
calloc||5.007002|n
cando|||
-cast_i32||5.006000|
-cast_iv||5.006000|
-cast_ulong||5.006000|
-cast_uv||5.006000|
+cast_i32||5.006000|n
+cast_iv||5.006000|n
+cast_ulong||5.006000|n
+cast_uv||5.006000|n
check_locale_boundary_crossing|||
check_type_and_open|||
check_uni|||
@@ -2777,17 +2911,14 @@ ck_warner||5.011001|v
ckwarn_common|||
ckwarn_d||5.009003|
ckwarn||5.009003|
-cl_and|||n
-cl_anything|||n
-cl_init|||n
-cl_is_anything|||n
-cl_or|||n
clear_placeholders|||
+clear_special_blocks|||
clone_params_del|||n
clone_params_new|||n
closest_cop|||
-compute_EXACTish|||
-convert|||
+cntrl_to_mnemonic|||n
+compute_EXACTish|||n
+construct_ahocorasick_from_trie|||
cop_fetch_label||5.015001|
cop_free|||
cop_hints_2hv||5.013007|
@@ -2807,15 +2938,14 @@ cophh_fetch_pvs||5.013007|
cophh_fetch_pv||5.013007|
cophh_fetch_sv||5.013007|
cophh_free||5.013007|
-cophh_new_empty||5.019003|
+cophh_new_empty||5.021008|
cophh_store_pvn||5.013007|
cophh_store_pvs||5.013007|
cophh_store_pv||5.013007|
cophh_store_sv||5.013007|
core_prototype|||
-core_regclass_swash|||
coresub_op|||
-could_it_be_a_POSIX_class|||
+could_it_be_a_POSIX_class|||n
cr_textfilter|||
create_eval_scope|||
croak_memory_wrap||5.019003|n
@@ -2827,23 +2957,27 @@ croak_sv||5.013001|
croak_xs_usage||5.010001|n
croak|||v
csighandler||5.009003|n
-curmad|||
current_re_engine|||
curse|||
custom_op_desc||5.007003|
+custom_op_get_field|||
custom_op_name||5.007003|
custom_op_register||5.013007|
custom_op_xop||5.013007|
cv_ckproto_len_flags|||
cv_clone_into|||
cv_clone|||
-cv_const_sv_or_av|||
-cv_const_sv||5.004000|
+cv_const_sv_or_av|||n
+cv_const_sv||5.003070|n
cv_dump|||
cv_forget_slab|||
cv_get_call_checker||5.013006|
+cv_name||5.021005|
+cv_set_call_checker_flags||5.021004|
cv_set_call_checker||5.013006|
+cv_undef_flags|||
cv_undef|||
+cvgv_from_hek|||
cvgv_set|||
cvstash_set|||
cx_dump||5.005000|
@@ -2860,7 +2994,7 @@ dNOOP|5.006000||p
dORIGMARK|||
dSP|||
dTHR|5.004050||p
-dTHXR|5.019002||p
+dTHXR|5.021008||p
dTHXa|5.006000||p
dTHXoa|5.006000||p
dTHX|5.006000||p
@@ -2919,12 +3053,12 @@ do_msgsnd|||
do_ncmp|||
do_oddball|||
do_op_dump||5.006000|
-do_op_xmldump|||
+do_open6|||
do_open9||5.006000|
+do_open_raw|||
do_openn||5.007001|
-do_open||5.004000|
+do_open||5.003070|
do_pmop_dump||5.006000|
-do_pmop_xmldump|||
do_print|||
do_readline|||
do_seek|||
@@ -2965,11 +3099,13 @@ dopoptowhen|||
doref||5.009003|
dounwind|||
dowantarray|||
+drand48_init_r|||n
+drand48_r|||n
dump_all_perl|||
dump_all||5.006000|
+dump_c_backtrace|||
dump_eval||5.006000|
dump_exec_pos|||
-dump_fds|||
dump_form||5.006000|
dump_indent||5.006000|v
dump_mstats|||
@@ -3002,6 +3138,7 @@ find_and_forget_pmops|||
find_array_subscript|||
find_beginning|||
find_byclass|||
+find_default_stash|||
find_hash_subscript|||
find_in_my_stash|||
find_lexical_cv|||
@@ -3013,6 +3150,7 @@ find_rundefsv||5.013002|
find_script|||
find_uninit_var|||
first_symbol|||n
+fixup_errno_string|||
foldEQ_latin1||5.013008|n
foldEQ_locale||5.013002|n
foldEQ_utf8_flags||5.013010|
@@ -3033,13 +3171,17 @@ form_short_octal_warning|||
form||5.004000|v
fp_dup|||
fprintf_nocontext|||vn
+free_c_backtrace|||
free_global_struct|||
free_tied_hv_pool|||
free_tmps|||
gen_constant_list|||
+get_ANYOF_cp_list_for_ssc|||
get_and_check_backslash_N_name|||
get_aux_mg|||
get_av|5.006000||p
+get_c_backtrace_dump|||
+get_c_backtrace|||
get_context||5.006000|n
get_cvn_flags|5.009005||p
get_cvs|5.011000||p
@@ -3048,9 +3190,9 @@ get_db_sub|||
get_debug_opts|||
get_hash_seed|||
get_hv|5.006000||p
-get_invlist_iter_addr|||
-get_invlist_offset_addr|||
-get_invlist_previous_index_addr|||
+get_invlist_iter_addr|||n
+get_invlist_offset_addr|||n
+get_invlist_previous_index_addr|||n
get_mstats|||
get_no_modify|||
get_num|||
@@ -3065,16 +3207,18 @@ getcwd_sv||5.007002|
getenv_len|||
glob_2number|||
glob_assign_glob|||
-glob_assign_ref|||
gp_dup|||
gp_free|||
gp_ref|||
+grok_atoUV|||n
grok_bin|5.007003||p
grok_bslash_N|||
grok_bslash_c|||
grok_bslash_o|||
grok_bslash_x|||
grok_hex|5.007003||p
+grok_infnan||5.021004|
+grok_number_flags||5.021002|
grok_number|5.007002||p
grok_numeric_radix|5.007002||p
grok_oct|5.007003||p
@@ -3091,13 +3235,13 @@ gv_autoload_sv||5.015004|
gv_check|||
gv_const_sv||5.009003|
gv_dump||5.006000|
-gv_efullname3||5.004000|
+gv_efullname3||5.003070|
gv_efullname4||5.006001|
gv_efullname|||
-gv_ename|||
gv_fetchfile_flags||5.009005|
gv_fetchfile|||
gv_fetchmeth_autoload||5.007003|
+gv_fetchmeth_internal|||
gv_fetchmeth_pv_autoload||5.015004|
gv_fetchmeth_pvn_autoload||5.015004|
gv_fetchmeth_pvn||5.015004|
@@ -3114,7 +3258,7 @@ gv_fetchpvn_flags|5.009002||p
gv_fetchpvs|5.009004||p
gv_fetchpv|||
gv_fetchsv|5.009002||p
-gv_fullname3||5.004000|
+gv_fullname3||5.003070|
gv_fullname4||5.006001|
gv_fullname|||
gv_handler||5.007001|
@@ -3123,11 +3267,17 @@ gv_init_pv||5.015004|
gv_init_svtype|||
gv_init_sv||5.015004|
gv_init|||
+gv_is_in_main|||
gv_magicalize_isa|||
+gv_magicalize|||
gv_name_set||5.009004|
-gv_stashpvn|5.004000||p
+gv_override|||
+gv_setref|||
+gv_stashpvn_internal|||
+gv_stashpvn|5.003070||p
gv_stashpvs|5.009003||p
gv_stashpv|||
+gv_stashsvpvn_cached|||
gv_stashsv|||
gv_try_downgrade|||
handle_regex_sets|||
@@ -3137,6 +3287,7 @@ hfree_next_entry|||
hfreeentries|||
hsplit|||
hv_assert|||
+hv_auxinit_internal|||n
hv_auxinit|||
hv_backreferences_p|||
hv_clear_placeholders||5.009001|
@@ -3146,29 +3297,29 @@ hv_common||5.010000|
hv_copy_hints_hv||5.009004|
hv_delayfree_ent||5.004000|
hv_delete_common|||
-hv_delete_ent||5.004000|
+hv_delete_ent||5.003070|
hv_delete|||
hv_eiter_p||5.009003|
hv_eiter_set||5.009003|
hv_ename_add|||
hv_ename_delete|||
-hv_exists_ent||5.004000|
+hv_exists_ent||5.003070|
hv_exists|||
-hv_fetch_ent||5.004000|
+hv_fetch_ent||5.003070|
hv_fetchs|5.009003||p
hv_fetch|||
hv_fill||5.013002|
hv_free_ent_ret|||
hv_free_ent||5.004000|
hv_iterinit|||
-hv_iterkeysv||5.004000|
+hv_iterkeysv||5.003070|
hv_iterkey|||
hv_iternext_flags||5.008000|
hv_iternextsv|||
hv_iternext|||
hv_iterval|||
hv_kill_backrefs|||
-hv_ksplit||5.004000|
+hv_ksplit||5.003070|
hv_magic_check|||n
hv_magic|||
hv_name_set||5.009003|
@@ -3176,11 +3327,11 @@ hv_notallowed|||
hv_placeholders_get||5.009003|
hv_placeholders_p|||
hv_placeholders_set||5.009003|
-hv_rand_set||5.017011|
+hv_rand_set||5.018000|
hv_riter_p||5.009003|
hv_riter_set||5.009003|
hv_scalar||5.009001|
-hv_store_ent||5.004000|
+hv_store_ent||5.003070|
hv_store_flags||5.008000|
hv_stores|5.009004||p
hv_store|||
@@ -3211,55 +3362,60 @@ init_stacks||5.005000|
init_tm||5.007002|
inplace_aassign|||
instr|||n
-intro_my|||
+intro_my||5.004000|
intuit_method|||
intuit_more|||
invert|||
-invlist_array|||
+invlist_array|||n
invlist_clone|||
invlist_extend|||
-invlist_highest|||
-invlist_is_iterating|||
-invlist_iterfinish|||
-invlist_iterinit|||
-invlist_iternext|||
-invlist_max|||
-invlist_previous_index|||
+invlist_highest|||n
+invlist_is_iterating|||n
+invlist_iterfinish|||n
+invlist_iterinit|||n
+invlist_iternext|||n
+invlist_max|||n
+invlist_previous_index|||n
invlist_set_len|||
-invlist_set_previous_index|||
-invlist_trim|||
+invlist_set_previous_index|||n
+invlist_trim|||n
invoke_exception_hook|||
io_close|||
isALNUMC|5.006000||p
-isALNUM_lazy|||
+isALNUM_lazy||5.021001|
isALPHANUMERIC||5.017008|
isALPHA|||
-isASCII|5.006000|5.006000|p
+isASCII|5.006000||p
isBLANK|5.006001||p
-isCNTRL|5.006000|5.006000|p
+isCNTRL|5.006000||p
isDIGIT|||
isFOO_lc|||
isFOO_utf8_lc|||
+isGCB|||n
isGRAPH|5.006000||p
isGV_with_GP|5.009004||p
isIDCONT||5.017008|
-isIDFIRST_lazy|||
+isIDFIRST_lazy||5.021001|
isIDFIRST|||
isLOWER|||
isOCTAL||5.013005|
isPRINT|5.004000||p
isPSXSPC|5.006001||p
isPUNCT|5.006000||p
+isSB|||
isSPACE|||
isUPPER|||
+isUTF8_CHAR||5.021001|
+isWB|||
isWORDCHAR||5.013006|
isXDIGIT|5.006000||p
is_an_int|||
-is_ascii_string||5.011000|n
-is_cur_LC_category_utf8|||
+is_ascii_string||5.011000|
is_handle_constructor|||n
-is_list_assignment|||
+is_invariant_string||5.021007|n
is_lvalue_sub||5.007001|
+is_safe_syscall||5.019004|
+is_ssc_worth_it|||n
is_uni_alnum_lc||5.006000|
is_uni_alnumc_lc||5.017007|
is_uni_alnumc||5.017007|
@@ -3296,7 +3452,6 @@ is_utf8_alpha||5.006000|
is_utf8_ascii||5.006000|
is_utf8_blank||5.017002|
is_utf8_char_buf||5.015008|n
-is_utf8_char_slow|||n
is_utf8_char||5.006000|n
is_utf8_cntrl||5.006000|
is_utf8_common|||
@@ -3320,12 +3475,15 @@ is_utf8_xdigit||5.006000|
is_utf8_xidcont||5.013010|
is_utf8_xidfirst||5.013010|
isa_lookup|||
+isinfnansv|||
+isinfnan||5.021004|n
items|||n
ix|||n
jmaybe|||
join_exact|||
keyword_plugin_standard|||
keyword|||
+leave_common|||
leave_scope|||
lex_bufutf8||5.011002|
lex_discard_to||5.011002|
@@ -3359,9 +3517,6 @@ mXPUSHn|5.009002||p
mXPUSHp|5.009002||p
mXPUSHs|5.010001||p
mXPUSHu|5.009002||p
-mad_free|||
-madlex|||
-madparse|||
magic_clear_all_env|||
magic_cleararylen_p|||
magic_clearenv|||
@@ -3376,6 +3531,7 @@ magic_existspack|||
magic_freearylen_p|||
magic_freeovrld|||
magic_getarylen|||
+magic_getdebugvar|||
magic_getdefelem|||
magic_getnkeys|||
magic_getpack|||
@@ -3399,10 +3555,12 @@ magic_set_all_env|||
magic_setarylen|||
magic_setcollxfrm|||
magic_setdbline|||
+magic_setdebugvar|||
magic_setdefelem|||
magic_setenv|||
magic_sethint|||
magic_setisa|||
+magic_setlvref|||
magic_setmglob|||
magic_setnkeys|||
magic_setpack|||
@@ -3418,13 +3576,13 @@ magic_set|||
magic_sizepack|||
magic_wipepack|||
make_matcher|||
-make_trie_failtable|||
make_trie|||
malloc_good_size|||n
malloced_size|||n
malloc||5.007002|n
-markstack_grow|||
+markstack_grow||5.021001|
matcher_matches_sv|||
+maybe_multimagic_gv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
@@ -3437,23 +3595,22 @@ mess_alloc|||
mess_nocontext|||vn
mess_sv||5.013001|
mess||5.006000|v
-method_common|||
mfree||5.007002|n
mg_clear|||
mg_copy|||
mg_dup|||
mg_find_mglob|||
-mg_findext||5.013008|
-mg_find|||
+mg_findext|5.013008||pn
+mg_find|||n
mg_free_type||5.013006|
mg_free|||
mg_get|||
mg_length||5.005000|
mg_localize|||
-mg_magical|||
+mg_magical|||n
mg_set|||
mg_size||5.005000|
-mini_mktime||5.007002|
+mini_mktime||5.007002|n
minus_v|||
missingterm|||
mode_from_discipline|||
@@ -3461,6 +3618,7 @@ modkids|||
more_bodies|||
more_sv|||
moreswitches|||
+move_proto_attr|||
mro_clean_isarev|||
mro_gather_and_rename|||
mro_get_from_name||5.010001|
@@ -3477,16 +3635,18 @@ mro_set_mro||5.010001|
mro_set_private_data||5.010001|
mul128|||
mulexp10|||n
+multideref_stringify|||
my_atof2||5.007002|
my_atof||5.006000|
my_attrs|||
my_bcopy|||n
+my_bytes_to_utf8|||n
my_bzero|||n
my_chsize|||
my_clearenv|||
my_cxt_index|||
my_cxt_init|||
-my_dirfd||5.009005|
+my_dirfd||5.009005|n
my_exit_jump|||
my_exit|||
my_failure_exit||5.004000|
@@ -3494,18 +3654,20 @@ my_fflush_all||5.006000|
my_fork||5.007003|n
my_kid|||
my_lstat_flags|||
-my_lstat||5.019003|
+my_lstat||5.021008|
my_memcmp|||n
-my_memset||5.004000|n
-my_pclose||5.004000|
+my_memset|||n
+my_pclose||5.003070|
my_popen_list||5.007001|
-my_popen||5.004000|
+my_popen||5.003070|
my_setenv|||
+my_setlocale|||
my_snprintf|5.009004||pvn
my_socketpair||5.007003|n
my_sprintf|5.009003||pvn
my_stat_flags|||
-my_stat||5.019003|
+my_stat||5.021008|
+my_strerror||5.021001|
my_strftime||5.007002|
my_strlcat|5.009004||pn
my_strlcpy|5.009004||pn
@@ -3517,7 +3679,7 @@ newANONHASH|||
newANONLIST|||
newANONSUB|||
newASSIGNOP|||
-newATTRSUB_flags|||
+newATTRSUB_x|||
newATTRSUB||5.006000|
newAVREF|||
newAV|||
@@ -3526,7 +3688,7 @@ newCONDOP|||
newCONSTSUB_flags||5.015006|
newCONSTSUB|5.004050||p
newCVREF|||
-newDEFSVOP|||
+newDEFSVOP||5.021006|
newFORM|||
newFOROP||5.013007|
newGIVENOP||5.009003|
@@ -3544,11 +3706,15 @@ newLISTOP|||
newLOGOP|||
newLOOPEX|||
newLOOPOP|||
-newMADPROP|||
-newMADsv|||
+newMETHOP_internal|||
+newMETHOP_named||5.021005|
+newMETHOP||5.021005|
newMYSUB||5.017004|
newNULLLIST|||
newOP|||
+newPADNAMELIST||5.021007|n
+newPADNAMEouter||5.021007|n
+newPADNAMEpvn||5.021007|n
newPADOP|||
newPMOP|||
newPROG|||
@@ -3564,6 +3730,7 @@ newSUB|||
newSVOP|||
newSVREF|||
newSV_type|5.009005||p
+newSVavdefelem|||
newSVhek||5.009003|
newSViv|||
newSVnv|||
@@ -3583,10 +3750,11 @@ newSVrv|||
newSVsv|||
newSVuv|5.006000||p
newSV|||
-newTOKEN|||
+newUNOP_AUX||5.021007|
newUNOP|||
newWHENOP||5.009003|
newWHILEOP||5.013007|
+newXS_deffile|||
newXS_flags||5.009004|
newXS_len_flags|||
newXSproto||5.006000|
@@ -3607,6 +3775,7 @@ ninstr|||n
no_bareword_allowed|||
no_fh_allowed|||
no_op|||
+noperl_die|||vn
not_a_number|||
not_incrementable|||
nothreadhook||5.008000|
@@ -3617,27 +3786,30 @@ oopsHV|||
op_append_elem||5.013006|
op_append_list||5.013006|
op_clear|||
-op_const_sv|||
op_contextualize||5.013006|
+op_convert_list||5.021006|
op_dump||5.006000|
op_free|||
-op_getmad_weak|||
-op_getmad|||
op_integerize|||
op_linklist||5.013006|
op_lvalue_flags|||
op_lvalue||5.013007|
op_null||5.007002|
+op_parent||5.021002|n
op_prepend_elem||5.013006|
op_refcnt_dec|||
op_refcnt_inc|||
op_refcnt_lock||5.009002|
op_refcnt_unlock||5.009002|
+op_relocate_sv|||
op_scope||5.013007|
+op_sibling_splice||5.021002|n
op_std_init|||
op_unscope|||
-op_xmldump|||
open_script|||
+openn_cleanup|||
+openn_setup|||
+opmethod_stash|||
opslab_force_free|||
opslab_free_nopad|||
opslab_free|||
@@ -3656,6 +3828,7 @@ pad_add_name_pvn||5.015001|
pad_add_name_pvs||5.015001|
pad_add_name_pv||5.015001|
pad_add_name_sv||5.015001|
+pad_add_weakref|||
pad_alloc_name|||
pad_alloc|||
pad_block_start|||
@@ -3670,7 +3843,6 @@ pad_fixup_inner_anons|||
pad_free|||
pad_leavemy|||
pad_new||5.008001|
-pad_peg|||n
pad_push|||
pad_reset|||
pad_setsv|||
@@ -3679,17 +3851,25 @@ pad_swipe|||
pad_tidy||5.008001|
padlist_dup|||
padlist_store|||
+padname_dup|||
+padname_free|||
+padnamelist_dup|||
+padnamelist_fetch||5.021007|n
+padnamelist_free|||
+padnamelist_store||5.021007|
parse_arithexpr||5.013008|
parse_barestmt||5.013007|
parse_block||5.013007|
parse_body|||
parse_fullexpr||5.013008|
parse_fullstmt||5.013005|
+parse_gv_stash_name|||
parse_ident|||
parse_label||5.013007|
parse_listexpr||5.013008|
parse_lparen_question_flags|||
parse_stmtseq||5.013006|
+parse_subsignature|||
parse_termexpr||5.013008|
parse_unicode_opts|||
parser_dup|||
@@ -3710,16 +3890,15 @@ perl_run|||n
pidgone|||
pm_description|||
pmop_dump||5.006000|
-pmop_xmldump|||
pmruntime|||
pmtrans|||
pop_scope|||
+populate_ANYOF_from_invlist|||
populate_isa|||v
pregcomp||5.009005|
pregexec|||
pregfree2||5.011000|
pregfree|||
-prepend_madprops|||
prescan_version||5.011004|
printbuf|||
printf_nocontext|||vn
@@ -3733,26 +3912,28 @@ ptr_table_new||5.009005|
ptr_table_split||5.009005|
ptr_table_store||5.009005|
push_scope|||
-put_byte|||
-put_latin1_charclass_innards|||
+put_charclass_bitmap_innards|||
+put_code_point|||
+put_range|||
pv_display|5.006000||p
pv_escape|5.009004||p
pv_pretty|5.009004||p
pv_uni_display||5.007003|
qerror|||
qsortsvu|||
+quadmath_format_needed|||n
+quadmath_format_single|||n
re_compile||5.009005|
re_croak2|||
re_dup_guts|||
re_intuit_start||5.019001|
re_intuit_string||5.006000|
re_op_compile|||
-readpipe_override|||
realloc||5.007002|n
-reentrant_free||5.019003|
-reentrant_init||5.019003|
-reentrant_retry||5.019003|vn
-reentrant_size||5.019003|
+reentrant_free||5.021008|
+reentrant_init||5.021008|
+reentrant_retry||5.021008|vn
+reentrant_size||5.021008|
ref_array_or_hash|||
refcounted_he_chain_2hv|||
refcounted_he_fetch_pvn|||
@@ -3768,8 +3949,9 @@ refcounted_he_new_sv|||
refcounted_he_value|||
refkids|||
refto|||
-ref||5.019003|
-reg_check_named_buff_matched|||
+ref||5.021008|
+reg2Lanode|||
+reg_check_named_buff_matched|||n
reg_named_buff_all||5.009005|
reg_named_buff_exists||5.009005|
reg_named_buff_fetch||5.009005|
@@ -3785,7 +3967,7 @@ reg_numbered_buff_store|||
reg_qr_package|||
reg_recode|||
reg_scan_name|||
-reg_skipcomment|||
+reg_skipcomment|||n
reg_temp_copy|||
reganode|||
regatom|||
@@ -3794,7 +3976,7 @@ regclass_swash||5.009004|
regclass|||
regcppop|||
regcppush|||
-regcurly|||
+regcurly|||n
regdump_extflags|||
regdump_intflags|||
regdump||5.005000|
@@ -3809,6 +3991,7 @@ reginitcolors||5.006000|
reginsert|||
regmatch|||
regnext||5.005000|
+regnode_guts|||
regpatws|||n
regpiece|||
regpposixcc|||
@@ -3817,8 +4000,6 @@ regrepeat|||
regtail_study|||
regtail|||
regtry|||
-reguni|||
-regwhite|||n
reg|||
repeatcpy|||n
report_evil_fh|||
@@ -3854,6 +4035,7 @@ save_I8||5.006000|
save_adelete||5.011000|
save_aelem_flags||5.011000|
save_aelem||5.004050|
+save_aliased_sv|||
save_alloc||5.006000|
save_aptr|||
save_ary|||
@@ -3897,6 +4079,7 @@ save_scalar|||
save_set_svflags||5.009000|
save_shared_pvref||5.007003|
save_sptr|||
+save_strlen|||
save_svref|||
save_vptr||5.006000|
savepvn|||
@@ -3933,23 +4116,23 @@ scan_trans|||
scan_version||5.009001|
scan_vstring||5.009005|
scan_word|||
-screaminstr||5.005000|
search_const|||
seed||5.008001|
sequence_num|||
+set_ANYOF_arg|||
+set_caret_X|||
set_context||5.006000|n
set_numeric_local||5.006000|
set_numeric_radix||5.006000|
set_numeric_standard||5.006000|
+set_padlist|||n
setdefout|||
share_hek_flags|||
share_hek||5.004000|
+should_warn_nl|||n
si_dup|||
sighandler|||n
simplify_sort|||
-skipspace0|||
-skipspace1|||
-skipspace2|||
skipspace_flags|||
softref2xv|||
sortcv_stacked|||
@@ -3959,8 +4142,19 @@ sortsv_flags||5.009003|
sortsv||5.007003|
space_join_names_mortal|||
ss_dup|||
+ssc_add_range|||
+ssc_and|||
+ssc_anything|||
+ssc_clear_locale|||n
+ssc_cp_and|||
+ssc_finalize|||
+ssc_init|||
+ssc_intersection|||
+ssc_is_anything|||n
+ssc_is_cp_posixl_init|||n
+ssc_or|||
+ssc_union|||
stack_grow|||
-start_force|||
start_glob|||
start_subparse||5.004000|
stdize_locale|||
@@ -4001,8 +4195,10 @@ sv_2uv_flags||5.009001|
sv_2uv|5.004000||p
sv_add_arena|||
sv_add_backref|||
-sv_backoff|||
+sv_backoff|||n
sv_bless|||
+sv_buf_to_ro|||
+sv_buf_to_rw|||
sv_cat_decode||5.008001|
sv_catpv_flags||5.013006|
sv_catpv_mg|5.004050||p
@@ -4024,9 +4220,6 @@ sv_catsv_flags||5.007002|
sv_catsv_mg|5.004050||p
sv_catsv_nomg|5.007002||p
sv_catsv|||
-sv_catxmlpvn|||
-sv_catxmlpv|||
-sv_catxmlsv|||
sv_chop|||
sv_clean_all|||
sv_clean_objs|||
@@ -4066,7 +4259,8 @@ sv_force_normal||5.006000|
sv_free2|||
sv_free_arenas|||
sv_free|||
-sv_gets||5.004000|
+sv_get_backrefs||5.021008|n
+sv_gets||5.003070|
sv_grow|||
sv_i_ncmp|||
sv_inc_nomg||5.013002|
@@ -4080,7 +4274,7 @@ sv_kill_backrefs|||
sv_len_utf8_nomg|||
sv_len_utf8||5.006000|
sv_len|||
-sv_magic_portable|5.019003|5.004000|p
+sv_magic_portable|5.021008|5.004000|p
sv_magicext_mglob|||
sv_magicext||5.007003|
sv_magic|||
@@ -4093,6 +4287,8 @@ sv_nolocking||5.007003|
sv_nosharing||5.007003|
sv_nounlocking|||
sv_nv||5.005000|
+sv_only_taint_gmagic|||n
+sv_or_pv_pos_u2b|||
sv_peek||5.005000|
sv_pos_b2u_flags||5.019003|
sv_pos_b2u_midway|||
@@ -4142,7 +4338,7 @@ sv_setpv|||
sv_setref_iv|||
sv_setref_nv|||
sv_setref_pvn|||
-sv_setref_pvs||5.019003|
+sv_setref_pvs||5.021008|
sv_setref_pv|||
sv_setref_uv||5.007001|
sv_setsv_cow|||
@@ -4157,7 +4353,7 @@ sv_taint||5.004000|
sv_true||5.005000|
sv_unglob|||
sv_uni_display||5.007003|
-sv_unmagicext||5.013008|
+sv_unmagicext|5.013008||p
sv_unmagic|||
sv_unref_flags||5.007001|
sv_unref|||
@@ -4181,12 +4377,13 @@ sv_vcatpvf|5.006000|5.004000|p
sv_vsetpvf_mg|5.006000|5.004000|p
sv_vsetpvfn||5.004000|
sv_vsetpvf|5.006000|5.004000|p
-sv_xmlpeek|||
svtype|||
swallow_bom|||
swash_fetch||5.007002|
swash_init||5.006000|
+swash_scan_list_line|||
swatch_get|||
+sync_locale||5.021004|
sys_init3||5.010000|n
sys_init||5.010000|n
sys_intern_clear|||
@@ -4196,7 +4393,7 @@ sys_term||5.010000|n
taint_env|||
taint_proper|||
tied_method|||v
-tmps_grow||5.006000|
+tmps_grow_p|||
toFOLD_uni||5.007003|
toFOLD_utf8||5.019001|
toFOLD||5.019001|
@@ -4210,9 +4407,9 @@ toTITLE_utf8||5.015007|
toTITLE||5.019001|
toUPPER_uni||5.007003|
toUPPER_utf8||5.015007|
-toUPPER||5.004000|
+toUPPER|||
to_byte_substr|||
-to_lower_latin1|||
+to_lower_latin1|||n
to_uni_fold||5.007003|
to_uni_lower_lc||5.006000|
to_uni_lower||5.007003|
@@ -4226,16 +4423,12 @@ to_utf8_lower||5.015007|
to_utf8_substr|||
to_utf8_title||5.015007|
to_utf8_upper||5.015007|
-token_free|||
-token_getmad|||
tokenize_use|||
tokeq|||
tokereport|||
too_few_arguments_pv|||
-too_few_arguments_sv|||
too_many_arguments_pv|||
-too_many_arguments_sv|||
-translate_substr_offsets|||
+translate_substr_offsets|||n
try_amagic_bin|||
try_amagic_un|||
uiv_2buf|||n
@@ -4246,7 +4439,7 @@ unpackstring||5.008001|
unreferenced_to_tmp_stack|||
unshare_hek_or_pvn|||
unshare_hek|||
-unsharepvn||5.004000|
+unsharepvn||5.003070|
unwind_handler_stack|||
update_debugger_info|||
upg_version||5.009005|
@@ -4255,7 +4448,7 @@ utf16_textfilter|||
utf16_to_utf8_reversed||5.006001|
utf16_to_utf8||5.006001|
utf8_distance||5.006000|
-utf8_hop||5.006000|
+utf8_hop||5.006000|n
utf8_length||5.007001|
utf8_mg_len_cache_update|||
utf8_mg_pos_cache_update|||
@@ -4264,14 +4457,15 @@ utf8_to_uvchr_buf||5.015009|
utf8_to_uvchr||5.007001|
utf8_to_uvuni_buf||5.015009|
utf8_to_uvuni||5.007001|
-utf8n_to_uvchr|||
+utf8n_to_uvchr||5.007001|
utf8n_to_uvuni||5.007001|
utilize|||
uvchr_to_utf8_flags||5.007003|
-uvchr_to_utf8|||
+uvchr_to_utf8||5.007001|
+uvoffuni_to_utf8_flags||5.019004|
uvuni_to_utf8_flags||5.007003|
uvuni_to_utf8||5.007001|
-valid_utf8_to_uvchr|||
+valid_utf8_to_uvchr||5.015009|
valid_utf8_to_uvuni||5.015009|
validate_proto|||
validate_suid|||
@@ -4308,18 +4502,8 @@ win32_croak_not_implemented|||n
with_queued_errors|||
wrap_op_checker||5.015008|
write_to_stderr|||
-xmldump_all_perl|||
-xmldump_all|||
-xmldump_attr|||
-xmldump_eval|||
-xmldump_form|||
-xmldump_indent|||v
-xmldump_packsubs_perl|||
-xmldump_packsubs|||
-xmldump_sub_perl|||
-xmldump_sub|||
-xmldump_vindent|||
-xs_apiversion_bootcheck|||
+xs_boot_epilog|||
+xs_handshake|||vn
xs_version_bootcheck|||
yyerror_pvn|||
yyerror_pv|||
@@ -5941,7 +6125,11 @@ typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*);
# endif
#ifdef HAS_QUAD
-# define WIDEST_UTYPE U64TYPE
+# ifdef U64TYPE
+# define WIDEST_UTYPE U64TYPE
+# else
+# define WIDEST_UTYPE Quad_t
+# endif
#else
# define WIDEST_UTYPE U32
#endif
@@ -5975,6 +6163,16 @@ typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*);
#endif
+/* Until we figure out how to support this in older perls... */
+#if (PERL_BCDVERSION >= 0x5008000)
+#ifndef HeUTF8
+# define HeUTF8(he) ((HeKLEN(he) == HEf_SVKEY) ? \
+ SvUTF8(HeKEY_sv(he)) : \
+ (U32)HeKUTF8(he))
+#endif
+
+#endif
+
#ifndef PERL_SIGNALS_UNSAFE_FLAG
#define PERL_SIGNALS_UNSAFE_FLAG 0x0001
@@ -6321,6 +6519,9 @@ DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args)
#if (PERL_BCDVERSION >= 0x5004000)
utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0),
veop, modname, imop);
+#elif (PERL_BCDVERSION > 0x5003000)
+ utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(),
+ veop, modname, imop);
#else
utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(),
modname, imop);
@@ -7591,6 +7792,22 @@ DPPP_(my_warner)(U32 err, const char *pat, ...)
#ifndef SvGETMAGIC
# define SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END
#endif
+
+/* Some random bits for sv_unmagicext. These should probably be pulled in for
+ real and organized at some point */
+#ifndef HEf_SVKEY
+# define HEf_SVKEY -2
+#endif
+
+#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 */
#ifndef PERL_MAGIC_sv
# define PERL_MAGIC_sv '\0'
#endif
@@ -7906,6 +8123,100 @@ DPPP_(my_warner)(U32 err, const char *pat, ...)
#endif
+#if !defined(mg_findext)
+#if defined(NEED_mg_findext)
+static MAGIC * DPPP_(my_mg_findext)(SV * sv, int type, const MGVTBL *vtbl);
+static
+#else
+extern MAGIC * DPPP_(my_mg_findext)(SV * sv, int type, const MGVTBL *vtbl);
+#endif
+
+#define mg_findext DPPP_(my_mg_findext)
+#define Perl_mg_findext DPPP_(my_mg_findext)
+
+#if defined(NEED_mg_findext) || defined(NEED_mg_findext_GLOBAL)
+
+MAGIC *
+DPPP_(my_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 defined(NEED_sv_unmagicext)
+static int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, MGVTBL * vtbl);
+static
+#else
+extern int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, MGVTBL * vtbl);
+#endif
+
+#ifdef sv_unmagicext
+# undef sv_unmagicext
+#endif
+#define sv_unmagicext(a,b,c) DPPP_(my_sv_unmagicext)(aTHX_ a,b,c)
+#define Perl_sv_unmagicext DPPP_(my_sv_unmagicext)
+
+#if defined(NEED_sv_unmagicext) || defined(NEED_sv_unmagicext_GLOBAL)
+
+int
+DPPP_(my_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
+
#ifdef USE_ITHREADS
#ifndef CopFILE
# define CopFILE(c) ((c)->cop_file)
@@ -7995,6 +8306,90 @@ DPPP_(my_warner)(U32 err, const char *pat, ...)
#endif
#endif /* USE_ITHREADS */
+
+#if (PERL_BCDVERSION >= 0x5006000)
+#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 defined(NEED_caller_cx)
+static const PERL_CONTEXT * DPPP_(my_caller_cx)(pTHX_ I32 count, const PERL_CONTEXT **dbcxp);
+static
+#else
+extern const PERL_CONTEXT * DPPP_(my_caller_cx)(pTHX_ I32 count, const PERL_CONTEXT **dbcxp);
+#endif
+
+#ifdef caller_cx
+# undef caller_cx
+#endif
+#define caller_cx(a,b) DPPP_(my_caller_cx)(aTHX_ a,b)
+#define Perl_caller_cx DPPP_(my_caller_cx)
+
+#if defined(NEED_caller_cx) || defined(NEED_caller_cx_GLOBAL)
+
+const PERL_CONTEXT *
+DPPP_(my_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 */
#ifndef IN_PERL_COMPILETIME
# define IN_PERL_COMPILETIME (PL_curcop == &PL_compiling)
#endif
@@ -8868,10 +9263,10 @@ DPPP_(my_pv_escape)(pTHX_ SV *dsv, char const * const str,
if (u > 255 || (flags & PERL_PV_ESCAPE_ALL)) {
if (flags & PERL_PV_ESCAPE_FIRSTCHAR)
chsize = my_snprintf(octbuf, sizeof octbuf,
- "%"UVxf, u);
+ "%" UVxf, u);
else
chsize = my_snprintf(octbuf, sizeof octbuf,
- "%cx{%"UVxf"}", esc, u);
+ "%cx{%" UVxf "}", esc, u);
} else if (flags & PERL_PV_ESCAPE_NOBACKSLASH) {
chsize = 1;
} else {
diff --git a/Master/tlpkg/tlperl/lib/Devel/Peek.pm b/Master/tlpkg/tlperl/lib/Devel/Peek.pm
index 731dc111176..bbea3cd4be6 100644
--- a/Master/tlpkg/tlperl/lib/Devel/Peek.pm
+++ b/Master/tlpkg/tlperl/lib/Devel/Peek.pm
@@ -3,7 +3,7 @@
package Devel::Peek;
-$VERSION = '1.16';
+$VERSION = '1.22';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -64,6 +64,16 @@ sub debug_flags (;$) {
$out
}
+sub B::Deparse::pp_Devel_Peek_Dump {
+ my ($deparse,$op,$cx) = @_;
+ my @kids = $deparse->deparse($op->first, 6);
+ my $sib = $op->first->sibling;
+ if (ref $sib ne 'B::NULL') {
+ push @kids, $deparse->deparse($sib, 6);
+ }
+ return "Devel::Peek::Dump(" . join(", ", @kids) . ")";
+}
+
1;
__END__
diff --git a/Master/tlpkg/tlperl/lib/Digest/MD5.pm b/Master/tlpkg/tlperl/lib/Digest/MD5.pm
index 679036f8be7..bb92ddb44a9 100644
--- a/Master/tlpkg/tlperl/lib/Digest/MD5.pm
+++ b/Master/tlpkg/tlperl/lib/Digest/MD5.pm
@@ -3,7 +3,7 @@ package Digest::MD5;
use strict;
use vars qw($VERSION @ISA @EXPORT_OK);
-$VERSION = '2.53';
+$VERSION = '2.54';
require Exporter;
*import = \&Exporter::import;
@@ -227,6 +227,16 @@ The base64 encoded string returned is not padded to be a multiple of 4
bytes long. If you want interoperability with other base64 encoded
md5 digests you might want to append the string "==" to the result.
+=item @ctx = $md5->context
+
+=item $md5->context(@ctx)
+
+Saves or restores the internal state. When called with no arguments,
+returns a 3-element list: number of blocks processed, a 16-byte
+internal state buffer, then up to 63 bytes of unprocessed data. When
+passed those same arguments, restores the state. This is only useful
+for specialised operations.
+
=back
diff --git a/Master/tlpkg/tlperl/lib/Digest/SHA.pm b/Master/tlpkg/tlperl/lib/Digest/SHA.pm
index 57f0bd6ef6f..3abca3d32c1 100644
--- a/Master/tlpkg/tlperl/lib/Digest/SHA.pm
+++ b/Master/tlpkg/tlperl/lib/Digest/SHA.pm
@@ -3,11 +3,12 @@ package Digest::SHA;
require 5.003000;
use strict;
+use warnings;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
use Fcntl;
use integer;
-$VERSION = '5.88';
+$VERSION = '5.95';
require Exporter;
require DynaLoader;
@@ -28,52 +29,30 @@ require DynaLoader;
sha512224 sha512224_base64 sha512224_hex
sha512256 sha512256_base64 sha512256_hex);
-# If possible, inherit from Digest::base
+# Inherit from Digest::base if possible
eval {
require Digest::base;
push(@ISA, 'Digest::base');
};
-*addfile = \&Addfile;
-*hexdigest = \&Hexdigest;
-*b64digest = \&B64digest;
-
# The following routines aren't time-critical, so they can be left in Perl
sub new {
my($class, $alg) = @_;
$alg =~ s/\D+//g if defined $alg;
if (ref($class)) { # instance method
- unless (defined($alg) && ($alg != $class->algorithm)) {
- sharewind($$class);
+ if (!defined($alg) || ($alg == $class->algorithm)) {
+ sharewind($class);
return($class);
}
- if ($$class) { shaclose($$class); $$class = undef }
- return unless $$class = shaopen($alg);
- return($class);
+ return shainit($class, $alg) ? $class : undef;
}
$alg = 1 unless defined $alg;
- my $state = shaopen($alg) || return;
- my $self = \$state;
- bless($self, $class);
- return($self);
-}
-
-sub DESTROY {
- my $self = shift;
- if ($$self) { shaclose($$self); $$self = undef }
-}
-
-sub clone {
- my $self = shift;
- my $state = shadup($$self) || return;
- my $copy = \$state;
- bless($copy, ref($self));
- return($copy);
+ return $class->newSHA($alg);
}
-*reset = \&new;
+BEGIN { *reset = \&new }
sub add_bits {
my($self, $data, $nbits) = @_;
@@ -82,7 +61,7 @@ sub add_bits {
$data = pack("B*", $data);
}
$nbits = length($data) * 8 if $nbits > length($data) * 8;
- shawrite($data, $nbits, $$self);
+ shawrite($data, $nbits, $self);
return($self);
}
@@ -90,48 +69,53 @@ sub _bail {
my $msg = shift;
$msg .= ": $!";
- require Carp;
- Carp::croak($msg);
+ require Carp;
+ Carp::croak($msg);
}
-sub _addfile { # this is "addfile" from Digest::base 1.00
- my ($self, $handle) = @_;
+{
+ my $_can_T_filehandle;
- my $n;
- my $buf = "";
+ sub _istext {
+ local *FH = shift;
+ my $file = shift;
- while (($n = read($handle, $buf, 4096))) {
- $self->add($buf);
- }
- _bail("Read failed") unless defined $n;
-
- $self;
+ if (! defined $_can_T_filehandle) {
+ local $^W = 0;
+ my $istext = eval { -T FH };
+ $_can_T_filehandle = $@ ? 0 : 1;
+ return $_can_T_filehandle ? $istext : -T $file;
+ }
+ return $_can_T_filehandle ? -T FH : -T $file;
+ }
}
-my $_can_T_filehandle;
+sub _addfile {
+ my ($self, $handle) = @_;
-sub _istext {
- local *FH = shift;
- my $file = shift;
+ my $n;
+ my $buf = "";
- if (! defined $_can_T_filehandle) {
- local $^W = 0;
- eval { -T FH };
- $_can_T_filehandle = $@ ? 0 : 1;
+ while (($n = read($handle, $buf, 4096))) {
+ $self->add($buf);
}
- return $_can_T_filehandle ? -T FH : -T $file;
+ _bail("Read failed") unless defined $n;
+
+ $self;
}
-sub Addfile {
+sub addfile {
my ($self, $file, $mode) = @_;
return(_addfile($self, $file)) unless ref(\$file) eq 'SCALAR';
$mode = defined($mode) ? $mode : "";
- my ($binary, $portable, $BITS) = map { $_ eq $mode } ("b", "p", "0");
+ my ($binary, $UNIVERSAL, $BITS, $portable) =
+ map { $_ eq $mode } ("b", "U", "0", "p");
## Always interpret "-" to mean STDIN; otherwise use
## sysopen to handle full range of POSIX file names
+
local *FH;
$file eq '-' and open(FH, '< -')
or sysopen(FH, $file, O_RDONLY)
@@ -148,18 +132,18 @@ sub Addfile {
return($self);
}
- binmode(FH) if $binary || $portable;
- unless ($portable && _istext(*FH, $file)) {
- $self->_addfile(*FH);
- close(FH);
- return($self);
+ binmode(FH) if $binary || $portable || $UNIVERSAL;
+ if ($UNIVERSAL && _istext(*FH, $file)) {
+ $self->_addfileuniv(*FH);
}
-
- while (<FH>) {
- s/\015?\015\012/\012/g; # DOS/Windows
- s/\015/\012/g; # early MacOS
- $self->add($_);
+ 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);
$self;
@@ -192,8 +176,7 @@ sub getstate {
}
sub putstate {
- my $class = shift;
- my $state = shift;
+ my($class, $state) = @_;
my %s = ();
for (split(/\n/, $state)) {
@@ -218,27 +201,17 @@ sub putstate {
$s{'blockcnt'} < ($s{'alg'} <= 256 ? 512 : 1024) or return;
}
- my $state_packed = (
+ my $packed_state = (
pack("H*", $s{'H'}) .
pack("H*", $s{'block'}) .
- pack("N", $s{'blockcnt'}) .
- pack("N", $s{'lenhh'}) .
- pack("N", $s{'lenhl'}) .
- pack("N", $s{'lenlh'}) .
- pack("N", $s{'lenll'})
+ pack("N", $s{'blockcnt'}) .
+ pack("N", $s{'lenhh'}) .
+ pack("N", $s{'lenhl'}) .
+ pack("N", $s{'lenlh'}) .
+ pack("N", $s{'lenll'})
);
- if (ref($class)) { # instance method
- if ($$class) { shaclose($$class); $$class = undef }
- return unless $$class = shaopen($s{'alg'});
- return $class->_putstate($state_packed);
- }
- else {
- my $sha = shaopen($s{'alg'}) or return;
- my $self = \$sha;
- bless($self, $class);
- return $self->_putstate($state_packed);
- }
+ return $class->new($s{'alg'})->_putstate($packed_state);
}
sub dump {
@@ -555,10 +528,10 @@ common string representations of the algorithm (e.g. "sha256",
"SHA-384"). If the argument is missing, SHA-1 will be used by
default.
-Invoking I<new> as an instance method will not create a new object;
-instead, it will simply reset the object to the initial state
-associated with I<$alg>. If the argument is missing, the object
-will continue using the same algorithm that was selected at creation.
+Invoking I<new> as an instance method will reset the object to the
+initial state associated with I<$alg>. If the argument is missing,
+the object will continue using the same algorithm that was selected
+at creation.
=item B<reset($alg)>
@@ -615,6 +588,15 @@ So, the following two statements do the same thing:
$sha->add_bits("111100001010");
$sha->add_bits("\xF0\xA0", 12);
+Note that SHA-1 and SHA-2 use I<most-significant-bit ordering>
+for their internal state. This means that
+
+ $sha3->add_bits("110");
+
+is equivalent to
+
+ $sha3->add_bits("1")->add_bits("1")->add_bits("0");
+
=item B<addfile(*FILE)>
Reads from I<FILE> until EOF, and appends that data to the current
@@ -631,22 +613,31 @@ argument to one of the following values:
"b" read file in binary mode
- "p" use portable mode
+ "U" use universal newlines
"0" use BITS mode
-The "p" mode ensures that the digest value of I<$filename> will be the
-same when computed on different operating systems. It accomplishes
-this by internally translating all newlines in text files to UNIX format
-before calculating the digest. Binary files are read in raw mode with
-no translation whatsoever.
+ "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
+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
-a convenient way to calculate the digest values of partial-byte data by
-using files, rather than having to write programs using the I<add_bits>
-method.
+a convenient way to calculate the digest values of partial-byte data
+by using files, rather than having to write separate programs employing
+the I<add_bits> method.
=item B<getstate>
@@ -691,9 +682,6 @@ Like I<digest>, this method is a read-once operation. Call
I<$sha-E<gt>clone-E<gt>hexdigest> if it's necessary to preserve
the original digest state.
-This method is inherited if L<Digest::base> is installed on your
-system. Otherwise, a functionally equivalent substitute is used.
-
=item B<b64digest>
Returns the digest encoded as a Base64 string.
@@ -702,9 +690,6 @@ Like I<digest>, this method is a read-once operation. Call
I<$sha-E<gt>clone-E<gt>b64digest> if it's necessary to preserve
the original digest state.
-This method is inherited if L<Digest::base> is installed on your
-system. Otherwise, a functionally equivalent substitute is used.
-
It's important to note that the resulting string does B<not> contain
the padding characters typical of Base64 encodings. This omission is
deliberate, and is done to maintain compatibility with the family of
@@ -801,6 +786,7 @@ L<http://csrc.nist.gov/publications/fips/fips198/fips-198a.pdf>
The author is particularly grateful to
Gisle Aas
+ H. Merijn Brand
Sean Burke
Chris Carey
Alexandr Ciornii
@@ -810,7 +796,9 @@ The author is particularly grateful to
Jeffrey Friedl
Robert Gilmour
Brian Gladman
+ Jarkko Hietaniemi
Adam Kennedy
+ Mark Lawrence
Andy Lester
Alex Muntada
Steve Peters
@@ -825,7 +813,7 @@ darkness and moored it in so perfect a calm and in so brilliant a light"
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2003-2014 Mark Shelor
+Copyright (C) 2003-2015 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/Master/tlpkg/tlperl/lib/Digest/SHA1.pm b/Master/tlpkg/tlperl/lib/Digest/SHA1.pm
deleted file mode 100644
index bd2647a1de3..00000000000
--- a/Master/tlpkg/tlperl/lib/Digest/SHA1.pm
+++ /dev/null
@@ -1,246 +0,0 @@
-package Digest::SHA1;
-
-use strict;
-use vars qw($VERSION @ISA @EXPORT_OK);
-
-$VERSION = '2.13';
-
-require Exporter;
-*import = \&Exporter::import;
-@EXPORT_OK = qw(sha1 sha1_hex sha1_base64 sha1_transform);
-
-require DynaLoader;
-@ISA=qw(DynaLoader);
-
-eval {
- require Digest::base;
- push(@ISA, 'Digest::base');
-};
-if ($@) {
- my $err = $@;
- *add_bits = sub { die $err };
-}
-
-Digest::SHA1->bootstrap($VERSION);
-
-1;
-__END__
-
-=head1 NAME
-
-Digest::SHA1 - Perl interface to the SHA-1 algorithm
-
-=head1 SYNOPSIS
-
- # Functional style
- use Digest::SHA1 qw(sha1 sha1_hex sha1_base64);
-
- $digest = sha1($data);
- $digest = sha1_hex($data);
- $digest = sha1_base64($data);
- $digest = sha1_transform($data);
-
-
- # OO style
- use Digest::SHA1;
-
- $sha1 = Digest::SHA1->new;
-
- $sha1->add($data);
- $sha1->addfile(*FILE);
-
- $sha1_copy = $sha1->clone;
-
- $digest = $sha1->digest;
- $digest = $sha1->hexdigest;
- $digest = $sha1->b64digest;
- $digest = $sha1->transform;
-
-=head1 DESCRIPTION
-
-The C<Digest::SHA1> module allows you to use the NIST SHA-1 message
-digest algorithm from within Perl programs. The algorithm takes as
-input a message of arbitrary length and produces as output a 160-bit
-"fingerprint" or "message digest" of the input.
-
-In 2005, security flaws were identified in SHA-1, namely that a possible
-mathematical weakness might exist, indicating that a stronger hash function
-would be desirable. The L<Digest::SHA> module implements the stronger
-algorithms in the SHA family.
-
-The C<Digest::SHA1> module provide a procedural interface for simple
-use, as well as an object oriented interface that can handle messages
-of arbitrary length and which can read files directly.
-
-=head1 FUNCTIONS
-
-The following functions can be exported from the C<Digest::SHA1>
-module. No functions are exported by default.
-
-=over 4
-
-=item sha1($data,...)
-
-This function will concatenate all arguments, calculate the SHA-1
-digest of this "message", and return it in binary form. The returned
-string will be 20 bytes long.
-
-The result of sha1("a", "b", "c") will be exactly the same as the
-result of sha1("abc").
-
-=item sha1_hex($data,...)
-
-Same as sha1(), but will return the digest in hexadecimal form. The
-length of the returned string will be 40 and it will only contain
-characters from this set: '0'..'9' and 'a'..'f'.
-
-=item sha1_base64($data,...)
-
-Same as sha1(), but will return the digest as a base64 encoded string.
-The length of the returned string will be 27 and it will only contain
-characters from this set: 'A'..'Z', 'a'..'z', '0'..'9', '+' and
-'/'.
-
-Note that the base64 encoded string returned is not padded to be a
-multiple of 4 bytes long. If you want interoperability with other
-base64 encoded sha1 digests you might want to append the redundant
-string "=" to the result.
-
-=item sha1_transform($data)
-
-Implements the basic SHA1 transform on a 64 byte block. The $data
-argument and the returned $digest are in binary form. This algorithm
-is used in NIST FIPS 186-2
-
-=back
-
-=head1 METHODS
-
-The object oriented interface to C<Digest::SHA1> is described in this
-section. After a C<Digest::SHA1> object has been created, you will add
-data to it and finally ask for the digest in a suitable format. A
-single object can be used to calculate multiple digests.
-
-The following methods are provided:
-
-=over 4
-
-=item $sha1 = Digest::SHA1->new
-
-The constructor returns a new C<Digest::SHA1> object which encapsulate
-the state of the SHA-1 message-digest algorithm.
-
-If called as an instance method (i.e. $sha1->new) it will just reset the
-state the object to the state of a newly created object. No new
-object is created in this case.
-
-=item $sha1->reset
-
-This is just an alias for $sha1->new.
-
-=item $sha1->clone
-
-This a copy of the $sha1 object. It is useful when you do not want to
-destroy the digests state, but need an intermediate value of the
-digest, e.g. when calculating digests iteratively on a continuous data
-stream. Example:
-
- my $sha1 = Digest::SHA1->new;
- while (<>) {
- $sha1->add($_);
- print "Line $.: ", $sha1->clone->hexdigest, "\n";
- }
-
-=item $sha1->add($data,...)
-
-The $data provided as argument are appended to the message we
-calculate the digest for. The return value is the $sha1 object itself.
-
-All these lines will have the same effect on the state of the $sha1
-object:
-
- $sha1->add("a"); $sha1->add("b"); $sha1->add("c");
- $sha1->add("a")->add("b")->add("c");
- $sha1->add("a", "b", "c");
- $sha1->add("abc");
-
-=item $sha1->addfile($io_handle)
-
-The $io_handle will be read until EOF and its content appended to the
-message we calculate the digest for. The return value is the $sha1
-object itself.
-
-The addfile() method will croak() if it fails reading data for some
-reason. If it croaks it is unpredictable what the state of the $sha1
-object will be in. The addfile() method might have been able to read
-the file partially before it failed. It is probably wise to discard
-or reset the $sha1 object if this occurs.
-
-In most cases you want to make sure that the $io_handle is in
-C<binmode> before you pass it as argument to the addfile() method.
-
-=item $sha1->add_bits($data, $nbits)
-
-=item $sha1->add_bits($bitstring)
-
-This implementation of SHA-1 only supports byte oriented input so you
-might only add bits as multiples of 8. If you need bit level support
-please consider using the C<Digest::SHA> module instead. The
-add_bits() method is provided here for compatibility with other digest
-implementations. See L<Digest> for description of the arguments that
-add_bits() take.
-
-=item $sha1->digest
-
-Return the binary digest for the message. The returned string will be
-20 bytes long.
-
-Note that the C<digest> operation is effectively a destructive,
-read-once operation. Once it has been performed, the C<Digest::SHA1>
-object is automatically C<reset> and can be used to calculate another
-digest value. Call $sha1->clone->digest if you want to calculate the
-digest without reseting the digest state.
-
-=item $sha1->hexdigest
-
-Same as $sha1->digest, but will return the digest in hexadecimal
-form. The length of the returned string will be 40 and it will only
-contain characters from this set: '0'..'9' and 'a'..'f'.
-
-=item $sha1->b64digest
-
-Same as $sha1->digest, but will return the digest as a base64 encoded
-string. The length of the returned string will be 27 and it will only
-contain characters from this set: 'A'..'Z', 'a'..'z', '0'..'9', '+'
-and '/'.
-
-
-The base64 encoded string returned is not padded to be a multiple of 4
-bytes long. If you want interoperability with other base64 encoded
-SHA-1 digests you might want to append the string "=" to the result.
-
-=back
-
-=head1 SEE ALSO
-
-L<Digest>, L<Digest::HMAC_SHA1>, L<Digest::SHA>, L<Digest::MD5>
-
-http://www.itl.nist.gov/fipspubs/fip180-1.htm
-
-http://en.wikipedia.org/wiki/SHA_hash_functions
-
-=head1 COPYRIGHT
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
- Copyright 1999-2004 Gisle Aas.
- Copyright 1997 Uwe Hollerbach.
-
-=head1 AUTHORS
-
-Peter C. Gutmann,
-Uwe Hollerbach <uh@alumni.caltech.edu>,
-Gisle Aas <gisle@aas.no>
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/DynaLoader.pm b/Master/tlpkg/tlperl/lib/DynaLoader.pm
index 7364456f1bc..92b42e9eac3 100644
--- a/Master/tlpkg/tlperl/lib/DynaLoader.pm
+++ b/Master/tlpkg/tlperl/lib/DynaLoader.pm
@@ -16,7 +16,7 @@ package DynaLoader;
# Tim.Bunce@ig.co.uk, August 1994
BEGIN {
- $VERSION = '1.25';
+ $VERSION = '1.32';
}
use Config;
@@ -355,7 +355,7 @@ anyone wishing to use the DynaLoader directly in an application.
The DynaLoader is designed to be a very simple high-level
interface that is sufficiently general to cover the requirements
-of SunOS, HP-UX, NeXT, Linux, VMS and other platforms.
+of SunOS, HP-UX, Linux, VMS and other platforms.
It is also hoped that the interface will cover the needs of OS/2, NT
etc and also allow pseudo-dynamic linking (using C<ld -A> at runtime).
@@ -573,7 +573,6 @@ current values of @dl_require_symbols and @dl_resolve_using if required.
SunOS: dlopen($filename)
HP-UX: shl_load($filename)
Linux: dld_create_reference(@dl_require_symbols); dld_link($filename)
- NeXT: rld_load($filename, @dl_resolve_using)
VMS: lib$find_image_symbol($filename,$dl_require_symbols[0])
(The dlopen() function is also used by Solaris and some versions of
@@ -610,7 +609,6 @@ Apache and mod_perl built with the APXS mechanism.
SunOS: dlclose($libref)
HP-UX: ???
Linux: ???
- NeXT: ???
VMS: ???
(The dlclose() function is also used by Solaris and some versions of
@@ -646,7 +644,6 @@ be passed to, and understood by, dl_install_xsub().
SunOS: dlsym($libref, $symbol)
HP-UX: shl_findsym($libref, $symbol)
Linux: dld_get_func($symbol) and/or dld_get_symbol($symbol)
- NeXT: rld_lookup("_$symbol")
VMS: lib$find_image_symbol($libref,$symbol)
diff --git a/Master/tlpkg/tlperl/lib/Encode.pm b/Master/tlpkg/tlperl/lib/Encode.pm
index 5d477f6bdec..3bb10970de6 100644
--- a/Master/tlpkg/tlperl/lib/Encode.pm
+++ b/Master/tlpkg/tlperl/lib/Encode.pm
@@ -1,10 +1,10 @@
#
-# $Id: Encode.pm,v 2.60 2014/04/29 16:26:49 dankogai Exp dankogai $
+# $Id: Encode.pm,v 2.72 2015/03/14 02:43:24 dankogai Exp $
#
package Encode;
use strict;
use warnings;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.60_01 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.72 $ =~ /(\d+)/g;
use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
use XSLoader ();
XSLoader::load( __PACKAGE__, $VERSION );
@@ -156,7 +156,20 @@ sub encode($$;$) {
require Carp;
Carp::croak("Unknown encoding '$name'");
}
- my $octets = $enc->encode( $string, $check );
+ # For Unicode, warnings need to be caught and re-issued at this level
+ # so that callers can disable utf8 warnings lexically.
+ my $octets;
+ if ( ref($enc) eq 'Encode::Unicode' ) {
+ my $warn = '';
+ {
+ local $SIG{__WARN__} = sub { $warn = shift };
+ $octets = $enc->encode( $string, $check );
+ }
+ warnings::warnif('utf8', $warn) if length $warn;
+ }
+ else {
+ $octets = $enc->encode( $string, $check );
+ }
$_[1] = $string if $check and !ref $check and !( $check & LEAVE_SRC() );
return $octets;
}
@@ -172,7 +185,20 @@ sub decode($$;$) {
require Carp;
Carp::croak("Unknown encoding '$name'");
}
- my $string = $enc->decode( $octets, $check );
+ # For Unicode, warnings need to be caught and re-issued at this level
+ # so that callers can disable utf8 warnings lexically.
+ my $string;
+ if ( ref($enc) eq 'Encode::Unicode' ) {
+ my $warn = '';
+ {
+ local $SIG{__WARN__} = sub { $warn = shift };
+ $string = $enc->decode( $octets, $check );
+ }
+ warnings::warnif('utf8', $warn) if length $warn;
+ }
+ else {
+ $string = $enc->decode( $octets, $check );
+ }
$_[1] = $octets if $check and !ref $check and !( $check & LEAVE_SRC() );
return $string;
}
@@ -457,7 +483,7 @@ If the $string is C<undef>, then C<undef> is returned.
This function returns the string that results from decoding the scalar
value I<OCTETS>, assumed to be a sequence of octets in I<ENCODING>, into
-Perl's internal form. The returns the resulting string. As with encode(),
+Perl's internal form. As with encode(),
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">.
@@ -547,7 +573,7 @@ Also note that:
from_to($octets, $from, $to, $check);
-is equivalent t:o
+is equivalent to:
$octets = encode($to, decode($from, $octets), $check);
@@ -674,7 +700,7 @@ In the first version above, you let the appropriate encoding layer
handle the conversion. In the second, you explicitly translate
from one encoding to the other.
-Unfortunately, it may be that encodings are C<PerlIO>-savvy. You can check
+Unfortunately, it may be that encodings are not C<PerlIO>-savvy. You can check
to see whether your encoding is supported by C<PerlIO> by invoking the
C<perlio_ok> method on it:
@@ -810,7 +836,7 @@ 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
-example if you wish to decode octests as UTF-8, and use ISO-8859-15 as
+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 {
@@ -1029,7 +1055,7 @@ who submitted code to the project.
=head1 COPYRIGHT
-Copyright 2002-2013 Dan Kogai I<< <dankogai@cpan.org> >>.
+Copyright 2002-2014 Dan Kogai I<< <dankogai@cpan.org> >>.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Encode/Alias.pm b/Master/tlpkg/tlperl/lib/Encode/Alias.pm
index 28d3cad34de..c0945be7c8f 100644
--- a/Master/tlpkg/tlperl/lib/Encode/Alias.pm
+++ b/Master/tlpkg/tlperl/lib/Encode/Alias.pm
@@ -2,7 +2,7 @@ package Encode::Alias;
use strict;
use warnings;
no warnings 'redefine';
-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.19 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
use Exporter 'import';
@@ -256,6 +256,10 @@ sub init_aliases {
define_alias( qr/\bhk(?:scs)?[-_]?big5$/i => '"big5-hkscs"' );
}
+ # https://github.com/dankogai/p5-encode/issues/37
+ define_alias(qr/cp65000/i => '"UTF-7"');
+ define_alias(qr/cp65001/i => '"utf-8-strict"');
+
# utf8 is blessed :)
define_alias( qr/\bUTF-8$/i => '"utf-8-strict"' );
diff --git a/Master/tlpkg/tlperl/lib/Encode/MIME/Header.pm b/Master/tlpkg/tlperl/lib/Encode/MIME/Header.pm
index 090a177d113..b970b62577d 100644
--- a/Master/tlpkg/tlperl/lib/Encode/MIME/Header.pm
+++ b/Master/tlpkg/tlperl/lib/Encode/MIME/Header.pm
@@ -3,7 +3,7 @@ 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.16 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use Encode qw(find_encoding encode_utf8 decode_utf8);
use MIME::Base64;
use Carp;
@@ -139,7 +139,7 @@ sub encode($$;$) {
push @line, join( "\n " => @subline );
}
$_[1] = '' if $chk;
- return join( "\n", @line );
+ return (substr($str, 0, 0) . join( "\n", @line ));
}
use constant HEAD => '=?UTF-8?';
diff --git a/Master/tlpkg/tlperl/lib/Encode/compat.pm b/Master/tlpkg/tlperl/lib/Encode/compat.pm
deleted file mode 100644
index 39432b8f9d4..00000000000
--- a/Master/tlpkg/tlperl/lib/Encode/compat.pm
+++ /dev/null
@@ -1,87 +0,0 @@
-# $File: //member/autrijus/Encode-compat/lib/Encode/compat.pm $ $Author: autrijus $
-# $Revision: #7 $ $Change: 10735 $ $DateTime: 2004/06/03 14:08:57 $
-
-package Encode::compat;
-$Encode::compat::VERSION = '0.07';
-
-use strict;
-
-if ($] >= 5.007001 or $INC{'Encode.pm'}) {
- # nothing happens -- Encode.pm already available.
-}
-elsif ($] >= 5.006001 and $] <= 5.007) {
- require Encode::compat::Alias;
- $INC{'Encode/Alias.pm'} = $INC{'Encode/compat/Alias.pm'};
-
- require Encode::compat::common;
- require Encode::compat::5006001;
- $INC{'Encode.pm'} = __FILE__;
-}
-else {
- die "Encode.pm compatibility layer for $] not yet available.";
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Encode::compat - Encode.pm emulation layer
-
-=head1 VERSION
-
-This document describes version 0.07 of Encode::compat, released
-June 3, 2004.
-
-=head1 SYNOPSIS
-
- use Encode::compat; # a no-op for Perl v5.7.1+
- use Encode qw(...); # all constants and imports works transparently
-
- # use Encode functions as normal
-
-=head1 DESCRIPTION
-
-WARNING: THIS IS A PROOF-OF-CONCEPT. Most functions are incomplete.
-All implementation details are subject to change!
-
-This module provide a compatibility layer for B<Encode.pm> users on perl
-versions earlier than v5.7.1. It translates whatever call it receives
-into B<Text::Iconv>, or (in the future) B<Unicode::MapUTF8> to perform
-the actual work.
-
-The C<is_utf8()>, C<_utf8_on()> and C<_utf8_off()> calls are performed
-by the method native to the perl version -- 5.6.1 would use
-C<pack>/C<unpack>, 5.6.0 uses C<tr//CU>, etc.
-
-Theoretically, it could be backported to 5.005 and earlier, with none of
-the unicode-related semantics available, and serves only as a
-abstraction layer above C<Text::Iconv>, C<Unicode::MapUTF8> and possibly
-other transcoding modules.
-
-=head1 CAVEATS
-
-Currently, this module only support 5.6.1+, and merely provides the three
-utility function above (C<encode()>, C<decode()> and C<from_to()>), with
-a very kludgy C<FB_HTMLCREF> fallback against C<latin-1> in
-C<from_to()>.
-
-=head1 SEE ALSO
-
-L<Encode>, L<perlunicode>
-
-=head1 AUTHORS
-
-Autrijus Tang E<lt>autrijus@autrijus.orgE<gt>
-
-=head1 COPYRIGHT
-
-Copyright 2002, 2003, 2004 by Autrijus Tang E<lt>autrijus@autrijus.orgE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See L<http://www.perl.com/perl/misc/Artistic.html>
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Encode/compat/5006001.pm b/Master/tlpkg/tlperl/lib/Encode/compat/5006001.pm
deleted file mode 100644
index cbe2d50180e..00000000000
--- a/Master/tlpkg/tlperl/lib/Encode/compat/5006001.pm
+++ /dev/null
@@ -1,32 +0,0 @@
-# $File: //member/autrijus/Encode-compat/lib/Encode/compat/5006001.pm $ $Author: autrijus $
-# $Revision: #3 $ $Change: 2534 $ $DateTime: 2002/12/02 00:33:16 $
-
-package Encode::compat::5006001;
-our $VERSION = '0.05';
-
-1;
-
-package Encode;
-
-use strict;
-use base 'Exporter';
-no warnings 'redefine';
-
-sub _utf8_on {
- $_[0] = pack('U*', unpack('U0U*', $_[0]))
-}
-
-sub _utf8_off {
- $_[0] = pack('C*', unpack('C*', $_[0]))
-}
-
-sub is_utf8 {
- # XXX: got any better ideas?
- use utf8;
- foreach my $char (split(//, $_[0])) {
- return 1 if ord($char) > 255;
- }
- return 0;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Encode/compat/Alias.pm b/Master/tlpkg/tlperl/lib/Encode/compat/Alias.pm
deleted file mode 100644
index 6e8d74e6a6f..00000000000
--- a/Master/tlpkg/tlperl/lib/Encode/compat/Alias.pm
+++ /dev/null
@@ -1,330 +0,0 @@
-# $File: //member/autrijus/.vimrc $ $Author: autrijus $
-# $Revision: #1 $ $Change: 1649 $ $DateTime: 2002/10/24 15:21:23 $
-
-package Encode::compat::Alias;
-our $VERSION = '0.05';
-
-1;
-
-package Encode::Alias;
-use strict;
-our $VERSION = '0.05';
-our $DEBUG = 0;
-
-use base qw(Exporter);
-
-# Public, encouraged API is exported by default
-
-our @EXPORT =
- qw (
- define_alias
- find_alias
- );
-
-our @Alias; # ordered matching list
-our %Alias; # cached known aliases
-
-sub find_alias
-{
- my $class = shift;
- local $_ = shift;
- unless (exists $Alias{$_})
- {
- $Alias{$_} = undef; # Recursion guard
- for (my $i=0; $i < @Alias; $i += 2)
- {
- my $alias = $Alias[$i];
- my $val = $Alias[$i+1];
- my $new;
- if (ref($alias) eq 'Regexp' && $_ =~ $alias)
- {
- $DEBUG and warn "eval $val";
- $new = eval $val;
- # $@ and warn "$val, $@";
- }
- elsif (ref($alias) eq 'CODE')
- {
- $DEBUG and warn "$alias", "->", "($val)";
- $new = $alias->($val);
- }
- elsif (lc($_) eq lc($alias))
- {
- $new = $val;
- }
- if (defined($new))
- {
- next if $new eq $_; # avoid (direct) recursion on bugs
- $DEBUG and warn "$alias, $new";
- my $enc = (ref($new)) ? $new : Encode::find_encoding($new);
- if ($enc)
- {
- $Alias{$_} = $enc;
- last;
- }
- }
- }
- }
- if ($DEBUG){
- my $name;
- if (my $e = $Alias{$_}){
- $name = $e->name;
- }else{
- $name = "";
- }
- warn "find_alias($class, $_)->name = $name";
- }
- return $Alias{$_};
-}
-
-sub define_alias
-{
- while (@_)
- {
- my ($alias,$name) = splice(@_,0,2);
- unshift(@Alias, $alias => $name); # newer one has precedence
- # clear %Alias cache to allow overrides
- if (ref($alias)){
- my @a = keys %Alias;
- for my $k (@a){
- if (ref($alias) eq 'Regexp' && $k =~ $alias)
- {
- $DEBUG and warn "delete \$Alias\{$k\}";
- delete $Alias{$k};
- }
- elsif (ref($alias) eq 'CODE')
- {
- $DEBUG and warn "delete \$Alias\{$k\}";
- delete $Alias{$alias->($name)};
- }
- }
- }else{
- $DEBUG and warn "delete \$Alias\{$alias\}";
- delete $Alias{$alias};
- }
- }
-}
-
-# 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 );
-# Allow winlatin1 style names as well
-our %Winlatin2cp = (
- 'latin1' => 1252,
- 'latin2' => 1250,
- 'cyrillic' => 1251,
- 'greek' => 1253,
- 'turkish' => 1254,
- 'hebrew' => 1255,
- 'arabic' => 1256,
- 'baltic' => 1257,
- 'vietnamese' => 1258,
- );
-
-init_aliases();
-
-sub undef_aliases{
- @Alias = ();
- %Alias = ();
-}
-
-sub init_aliases
-{
- undef_aliases();
-
- # Try all-lower-case version should all else fails
- define_alias( qr/^(.*)$/ => '"\L$1"' );
-
- # UTF/UCS stuff
- define_alias( qr/^UCS-?2-?LE$/i => '"UCS-2LE"' );
- define_alias( qr/^UCS-?2-?(BE)?$/i => '"UCS-2BE"',
- qr/^UCS-?4-?(BE|LE)?$/i => 'uc("UTF-32$1")',
- qr/^iso-10646-1$/i => '"UCS-2BE"' );
- define_alias( qr/^UTF(16|32)-?BE$/i => '"UTF-$1BE"',
- qr/^UTF(16|32)-?LE$/i => '"UTF-$1LE"',
- qr/^UTF(16|32)$/i => '"UTF-$1"',
- );
- # ASCII
- define_alias(qr/^(?:US-?)ascii$/i => '"ascii"');
- define_alias('C' => 'ascii');
- define_alias(qr/\bISO[-_]?646[-_]?US$/i => '"ascii"');
- # Allow variants of iso-8859-1 etc.
- define_alias( qr/\biso[-_]?(\d+)[-_](\d+)$/i => '"iso-$1-$2"' );
-
- # At least HP-UX has these.
- define_alias( qr/\biso8859(\d+)$/i => '"iso-8859-$1"' );
-
- # More HP stuff.
- define_alias( qr/\b(?:hp-)?(arabic|greek|hebrew|kana|roman|thai|turkish)8$/i => '"${1}8"' );
-
- # The Official name of ASCII.
- define_alias( qr/\bANSI[-_]?X3\.4[-_]?1968$/i => '"ascii"' );
-
- # This is a font issue, not an encoding issue.
- # (The currency symbol of the Latin 1 upper half
- # has been redefined as the euro symbol.)
- define_alias( qr/^(.+)\@euro$/i => '"$1"' );
-
- define_alias( qr/\b(?:iso[-_]?)?latin[-_]?(\d+)$/i
- => 'defined $Encode::Alias::Latin2iso[$1] ? "iso-8859-$Encode::Alias::Latin2iso[$1]" : undef' );
-
- define_alias( qr/\bwin(latin[12]|cyrillic|baltic|greek|turkish|
- hebrew|arabic|baltic|vietnamese)$/ix =>
- '"cp" . $Encode::Alias::Winlatin2cp{lc($1)}' );
-
- # Common names for non-latin prefered MIME names
- define_alias( 'ascii' => 'US-ascii',
- 'cyrillic' => 'iso-8859-5',
- 'arabic' => 'iso-8859-6',
- 'greek' => 'iso-8859-7',
- 'hebrew' => 'iso-8859-8',
- 'thai' => 'iso-8859-11',
- 'tis620' => 'iso-8859-11',
- );
-
- # At least AIX has IBM-NNN (surprisingly...) instead of cpNNN.
- # And Microsoft has their own naming (again, surprisingly).
- # And windows-* is registered in IANA!
- define_alias( qr/\b(?:cp|ibm|ms|windows)[-_ ]?(\d{2,4})$/i => '"cp$1"');
-
- # Sometimes seen with a leading zero.
- # define_alias( qr/\bcp037\b/i => '"cp37"');
-
- # Mac Mappings
- # predefined in *.ucm; unneeded
- # define_alias( qr/\bmacIcelandic$/i => '"macIceland"');
- define_alias( qr/^mac_(.*)$/i => '"mac$1"');
- # Ououououou. gone. They are differente!
- # define_alias( qr/\bmacRomanian$/i => '"macRumanian"');
-
- # Standardize on the dashed versions.
- # define_alias( qr/\butf8$/i => 'utf-8' );
- define_alias( qr/\bkoi8r$/i => 'koi8-r' );
- define_alias( qr/\bkoi8u$/i => 'koi8-u' );
-
- unless ($Encode::ON_EBCDIC){
- # for Encode::CN
- define_alias( qr/\beuc.*cn$/i => '"euc-cn"' );
- define_alias( qr/\bcn.*euc$/i => '"euc-cn"' );
- # define_alias( qr/\bGB[- ]?(\d+)$/i => '"euc-cn"' )
- # CP936 doesn't have vendor-addon for GBK, so they're identical.
- define_alias( qr/^gbk$/i => '"cp936"');
- # This fixes gb2312 vs. euc-cn confusion, practically
- define_alias( qr/\bGB[-_ ]?2312(?:\D.*$|$)/i => '"euc-cn"' );
- # for Encode::JP
- define_alias( qr/\bjis$/i => '"7bit-jis"' );
- define_alias( qr/\beuc.*jp$/i => '"euc-jp"' );
- define_alias( qr/\bjp.*euc$/i => '"euc-jp"' );
- define_alias( qr/\bujis$/i => '"euc-jp"' );
- define_alias( qr/\bshift.*jis$/i => '"shiftjis"' );
- define_alias( qr/\bsjis$/i => '"shiftjis"' );
- # for Encode::KR
- define_alias( qr/\beuc.*kr$/i => '"euc-kr"' );
- define_alias( qr/\bkr.*euc$/i => '"euc-kr"' );
- # This fixes ksc5601 vs. euc-kr confusion, practically
- define_alias( qr/(?:x-)?uhc$/i => '"cp949"' );
- define_alias( qr/(?:x-)?windows-949$/i => '"cp949"' );
- define_alias( qr/\bks_c_5601-1987$/i => '"cp949"' );
- # for Encode::TW
- define_alias( qr/\bbig-?5$/i => '"big5-eten"' );
- define_alias( qr/\bbig5-?et(?:en)?$/i => '"big5-eten"' );
- define_alias( qr/\btca[-_]?big5$/i => '"big5-eten"' );
- define_alias( qr/\bbig5-?hk(?:scs)?$/i => '"big5-hkscs"' );
- define_alias( qr/\bhk(?:scs)?[-_]?big5$/i => '"big5-hkscs"' );
- }
- # utf8 is blessed :)
- define_alias( qr/^UTF-8$/i => '"utf8"',);
- # At last, Map white space and _ to '-'
- define_alias( qr/^(\S+)[\s_]+(.*)$/i => '"$1-$2"' );
-}
-
-1;
-__END__
-
-# TODO: HP-UX '8' encodings arabic8 greek8 hebrew8 kana8 thai8 turkish8
-# TODO: HP-UX '15' encodings japanese15 korean15 roi15
-# TODO: Cyrillic encoding ISO-IR-111 (useful?)
-# TODO: Armenian encoding ARMSCII-8
-# TODO: Hebrew encoding ISO-8859-8-1
-# TODO: Thai encoding TCVN
-# TODO: Vietnamese encodings VPS
-# TODO: Mac Asian+African encodings: Arabic Armenian Bengali Burmese
-# ChineseSimp ChineseTrad Devanagari Ethiopic ExtArabic
-# Farsi Georgian Gujarati Gurmukhi Hebrew Japanese
-# Kannada Khmer Korean Laotian Malayalam Mongolian
-# Oriya Sinhalese Symbol Tamil Telugu Tibetan Vietnamese
-
-=head1 NAME
-
-Encode::Alias - alias definitions to encodings
-
-=head1 SYNOPSIS
-
- use Encode;
- use Encode::Alias;
- define_alias( newName => ENCODING);
-
-=head1 DESCRIPTION
-
-Allows newName to be used as an alias for ENCODING. ENCODING may be
-either the name of an encoding or an encoding object (as described
-in L<Encode>).
-
-Currently I<newName> can be specified in the following ways:
-
-=over 4
-
-=item As a simple string.
-
-=item As a qr// compiled regular expression, e.g.:
-
- define_alias( qr/^iso8859-(\d+)$/i => '"iso-8859-$1"' );
-
-In this case, if I<ENCODING> is not a reference, it is C<eval>-ed
-in order to allow C<$1> etc. to be substituted. The example is one
-way to alias names as used in X11 fonts to the MIME names for the
-iso-8859-* family. Note the double quotes inside the single quotes.
-
-If you are using a regex here, you have to use the quotes as shown or
-it won't work. Also note that regex handling is tricky even for the
-experienced. Use it with caution.
-
-=item As a code reference, e.g.:
-
- define_alias( sub { return /^iso8859-(\d+)$/i ? "iso-8859-$1" : undef } , '');
-
-In this case, C<$_> will be set to the name that is being looked up and
-I<ENCODING> is passed to the sub as its first argument. The example
-is another way to alias names as used in X11 fonts to the MIME names
-for the iso-8859-* family.
-
-=back
-
-=head2 Alias overloading
-
-You can override predefined aliases by simply applying define_alias().
-The new alias is always evaluated first, and when neccessary,
-define_alias() flushes the internal cache to make the new definition
-available.
-
- # redirect SHIFT_JIS to MS/IBM Code Page 932, which is a
- # superset of SHIFT_JIS
-
- define_alias( qr/shift.*jis$/i => '"cp932"' );
- define_alias( qr/sjis$/i => '"cp932"' );
-
-If you want to zap all predefined aliases, you can use
-
- Encode::Alias->undef_aliases;
-
-to do so. And
-
- Encode::Alias->init_aliases;
-
-gets the factory settings back.
-
-=head1 SEE ALSO
-
-L<Encode>, L<Encode::Supported>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Encode/compat/common.pm b/Master/tlpkg/tlperl/lib/Encode/compat/common.pm
deleted file mode 100644
index f9ba21cb67d..00000000000
--- a/Master/tlpkg/tlperl/lib/Encode/compat/common.pm
+++ /dev/null
@@ -1,127 +0,0 @@
-# $File: //member/autrijus/Encode-compat/lib/Encode/compat/common.pm $ $Author: autrijus $
-# $Revision: #7 $ $Change: 10024 $ $DateTime: 2004/02/13 21:42:35 $
-
-package Encode::compat::common;
-our $VERSION = '0.06';
-
-1;
-
-package Encode;
-
-use strict;
-our $VERSION = '0.06';
-
-our @EXPORT = qw(
- decode decode_utf8 encode encode_utf8
- encodings find_encoding
-);
-
-use constant DIE_ON_ERR => 1;
-use constant WARN_ON_ERR => 2;
-use constant RETURN_ON_ERR => 4;
-use constant LEAVE_SRC => 8;
-
-use constant PERLQQ => 256;
-use constant HTMLCREF => 512;
-use constant XMLCREF => 1024;
-
-use constant FB_DEFAULT => 0;
-use constant FB_CROAK => 1;
-use constant FB_QUIET => 4;
-use constant FB_WARN => 6;
-use constant FB_PERLQQ => 256;
-use constant FB_HTMLCREF => 512;
-use constant FB_XMLCREF => 1024;
-
-our @FB_FLAGS = qw(DIE_ON_ERR WARN_ON_ERR RETURN_ON_ERR LEAVE_SRC
- PERLQQ HTMLCREF XMLCREF);
-our @FB_CONSTS = qw(FB_DEFAULT FB_CROAK FB_QUIET FB_WARN
- FB_PERLQQ FB_HTMLCREF FB_XMLCREF);
-
-our @EXPORT_OK =
- (
- qw(
- _utf8_off _utf8_on define_encoding from_to is_16bit is_8bit
- is_utf8 perlio_ok resolve_alias utf8_downgrade utf8_upgrade
- ),
- @FB_FLAGS, @FB_CONSTS,
- );
-
-our %EXPORT_TAGS =
- (
- all => [ @EXPORT, @EXPORT_OK ],
- fallbacks => [ @FB_CONSTS ],
- fallback_all => [ @FB_CONSTS, @FB_FLAGS ],
- );
-
-sub from_to ($$$;$) {
- use utf8;
-
- # XXX: bad hack
- if ($_[3] and $_[3] == FB_HTMLCREF() and lc($_[2]) eq 'latin1') {
- $_[0] = join('', map {
- ord($_) < 128
- ? $_ : '&#' . ord($_) . ';'
- } split(//, decode($_[1], $_[0])));
- }
- else {
- $_[0] = _convert(@_[0..2]);
- }
-}
-
-sub encodings {
- # XXX: revisit
- require Encode::Alias;
- return sort values %Encode::Alias::Alias;
-}
-
-sub find_encoding {
- return $_[0];
-}
-
-sub decode_utf8($;$) {
- return decode("utf-8", @_);
-}
-
-sub encode_utf8($;$) {
- return encode("utf-8", @_);
-}
-
-sub decode($$;$) {
- my $result = ($_[0] =~ /utf-?8/i)
- ? $_[1] : _convert($_[1], $_[0] => 'utf-8');
- _utf8_on($result);
- return $result;
-}
-
-sub encode($$;$) {
- my $result = ($_[0] =~ /utf-?8/i)
- ? $_[1] : _convert($_[1], 'utf-8' => $_[0]);
- _utf8_off($result);
- return $result;
-}
-
-{
- my %decoder;
- sub _convert {
- require Text::Iconv;
- Text::Iconv->raise_error(1);
-
- require Encode::Alias;
- my ($from, $to) = map {
- s/^utf8$/utf-8/i;
- s/^big5-eten$/big5/i;
- $_;
- } map {
- Encode::Alias->find_alias($_) || lc($_)
- } ($_[1], $_[2]);
-
- my $result = ($from eq $to) ? $_[0] : (
- $decoder{$from, $to} ||= Text::Iconv->new( $from, $to )
- )->convert($_[0]);
-
- return $result;
- }
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Errno.pm b/Master/tlpkg/tlperl/lib/Errno.pm
index a8cc0b9abb7..7868f89f560 100644
--- a/Master/tlpkg/tlperl/lib/Errno.pm
+++ b/Master/tlpkg/tlperl/lib/Errno.pm
@@ -9,10 +9,10 @@ use Config;
use strict;
"$Config{'archname'}-$Config{'osvers'}" eq
-"MSWin32-x86-multi-thread-4.0" or
- die "Errno architecture (MSWin32-x86-multi-thread-4.0) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})";
+"MSWin32-x86-multi-thread-6.1" or
+ die "Errno architecture (MSWin32-x86-multi-thread-6.1) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})";
-our $VERSION = "1.20_05";
+our $VERSION = "1.23";
$VERSION = eval $VERSION;
our @ISA = 'Exporter';
@@ -44,6 +44,7 @@ BEGIN {
EXIT_SUCCESS => 0,
ExceptionContinueExecution => 0,
EC_LEFTMARGIN => 1,
+ EDD_GET_DEVICE_INTERFACE_NAME => 1,
EEInfoPreviousRecordsMissing => 1,
EFS_USE_RECOVERY_KEYS => 1,
EIMES_GETCOMPSTRATONCE => 1,
@@ -59,6 +60,7 @@ BEGIN {
ENABLE_PROCESSED_INPUT => 1,
ENABLE_PROCESSED_OUTPUT => 1,
ENCRYPTION_FORMAT_DEFAULT => 1,
+ ENDSESSION_CLOSEAPP => 1,
ENLISTMENT_MAXIMUM_OPTION => 1,
ENLISTMENT_QUERY_INFORMATION => 1,
ENLISTMENT_SUPERIOR => 1,
@@ -309,6 +311,7 @@ BEGIN {
ERROR_SHARING_VIOLATION => 32,
ES_PASSWORD => 32,
EV_RLSD => 32,
+ EWX_QUICKRESOLVE => 32,
EXCEPTION_TARGET_UNWIND => 32,
EDOM => 33,
EMR_SAVEDC => 33,
@@ -636,6 +639,12 @@ BEGIN {
ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY => 217,
ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY => 218,
ENABLE_DISABLE_AUTO_OFFLINE => 219,
+ ERROR_FILE_CHECKED_OUT => 220,
+ ERROR_CHECKOUT_REQUIRED => 221,
+ ERROR_BAD_FILE_TYPE => 222,
+ ERROR_FILE_TOO_LARGE => 223,
+ ERROR_FORMS_AUTH_REQUIRED => 224,
+ ERROR_PIPE_LOCAL => 229,
ERROR_BAD_PIPE => 230,
ERROR_PIPE_BUSY => 231,
ERROR_NO_DATA => 232,
@@ -674,6 +683,16 @@ BEGIN {
ERROR_ARITHMETIC_OVERFLOW => 534,
ERROR_PIPE_CONNECTED => 535,
ERROR_PIPE_LISTENING => 536,
+ ERROR_WAKE_SYSTEM => 730,
+ ERROR_WAIT_1 => 731,
+ ERROR_WAIT_2 => 732,
+ ERROR_WAIT_3 => 733,
+ ERROR_WAIT_63 => 734,
+ ERROR_ABANDONED_WAIT_0 => 735,
+ ERROR_ABANDONED_WAIT_63 => 736,
+ ERROR_USER_APC => 737,
+ ERROR_KERNEL_APC => 738,
+ ERROR_ALERTED => 739,
ENABLERELATIVEWIDTHS => 768,
EN_CHANGE => 768,
ENABLEPAIRKERNING => 769,
@@ -1951,7 +1970,49 @@ BEGIN {
ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN => 13881,
ERROR_IPSEC_IKE_MM_LIMIT => 13882,
ERROR_IPSEC_IKE_NEGOTIATION_DISABLED => 13883,
- ERROR_IPSEC_IKE_NEG_STATUS_END => 13884,
+ ERROR_IPSEC_IKE_QM_LIMIT => 13884,
+ ERROR_IPSEC_IKE_MM_EXPIRED => 13885,
+ ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID => 13886,
+ ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH => 13887,
+ ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID => 13888,
+ ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD => 13889,
+ ERROR_IPSEC_IKE_DOS_COOKIE_SENT => 13890,
+ ERROR_IPSEC_IKE_SHUTTING_DOWN => 13891,
+ ERROR_IPSEC_IKE_CGA_AUTH_FAILED => 13892,
+ ERROR_IPSEC_IKE_PROCESS_ERR_NATOA => 13893,
+ ERROR_IPSEC_IKE_INVALID_MM_FOR_QM => 13894,
+ ERROR_IPSEC_IKE_QM_EXPIRED => 13895,
+ ERROR_IPSEC_IKE_TOO_MANY_FILTERS => 13896,
+ ERROR_IPSEC_IKE_NEG_STATUS_END => 13897,
+ ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL => 13898,
+ ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE => 13899,
+ ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING => 13900,
+ ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING => 13901,
+ ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS => 13902,
+ ERROR_IPSEC_IKE_RATELIMIT_DROP => 13903,
+ ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE => 13904,
+ ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE => 13905,
+ ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE => 13906,
+ ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY => 13907,
+ ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE => 13908,
+ ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END => 13909,
+ ERROR_IPSEC_BAD_SPI => 13910,
+ ERROR_IPSEC_SA_LIFETIME_EXPIRED => 13911,
+ ERROR_IPSEC_WRONG_SA => 13912,
+ ERROR_IPSEC_REPLAY_CHECK_FAILED => 13913,
+ ERROR_IPSEC_INVALID_PACKET => 13914,
+ ERROR_IPSEC_INTEGRITY_CHECK_FAILED => 13915,
+ ERROR_IPSEC_CLEAR_TEXT_DROP => 13916,
+ ERROR_IPSEC_AUTH_FIREWALL_DROP => 13917,
+ ERROR_IPSEC_THROTTLE_DROP => 13918,
+ ERROR_IPSEC_DOSP_BLOCK => 13925,
+ ERROR_IPSEC_DOSP_RECEIVED_MULTICAST => 13926,
+ ERROR_IPSEC_DOSP_INVALID_PACKET => 13927,
+ ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED => 13928,
+ ERROR_IPSEC_DOSP_MAX_ENTRIES => 13929,
+ ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED => 13930,
+ ERROR_IPSEC_DOSP_NOT_INSTALLED => 13931,
+ ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES => 13932,
ERROR_SXS_SECTION_NOT_FOUND => 14000,
ERROR_SXS_CANT_GEN_ACTCTX => 14001,
ERROR_SXS_INVALID_ACTCTXDATA_FORMAT => 14002,
@@ -2033,6 +2094,183 @@ BEGIN {
ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING => 14078,
ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE => 14079,
ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME => 14080,
+ ERROR_SXS_ASSEMBLY_MISSING => 14081,
+ ERROR_SXS_CORRUPT_ACTIVATION_STACK => 14082,
+ ERROR_SXS_CORRUPTION => 14083,
+ ERROR_SXS_EARLY_DEACTIVATION => 14084,
+ ERROR_SXS_INVALID_DEACTIVATION => 14085,
+ ERROR_SXS_MULTIPLE_DEACTIVATION => 14086,
+ ERROR_SXS_PROCESS_TERMINATION_REQUESTED => 14087,
+ ERROR_SXS_RELEASE_ACTIVATION_CONTEXT => 14088,
+ ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY => 14089,
+ ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE => 14090,
+ ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME => 14091,
+ ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE => 14092,
+ ERROR_SXS_IDENTITY_PARSE_ERROR => 14093,
+ ERROR_MALFORMED_SUBSTITUTION_STRING => 14094,
+ ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN => 14095,
+ ERROR_UNMAPPED_SUBSTITUTION_STRING => 14096,
+ ERROR_SXS_ASSEMBLY_NOT_LOCKED => 14097,
+ ERROR_SXS_COMPONENT_STORE_CORRUPT => 14098,
+ ERROR_ADVANCED_INSTALLER_FAILED => 14099,
+ ERROR_XML_ENCODING_MISMATCH => 14100,
+ ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT => 14101,
+ ERROR_SXS_IDENTITIES_DIFFERENT => 14102,
+ ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT => 14103,
+ ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY => 14104,
+ ERROR_SXS_MANIFEST_TOO_BIG => 14105,
+ ERROR_SXS_SETTING_NOT_REGISTERED => 14106,
+ ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE => 14107,
+ ERROR_SMI_PRIMITIVE_INSTALLER_FAILED => 14108,
+ ERROR_GENERIC_COMMAND_FAILED => 14109,
+ ERROR_SXS_FILE_HASH_MISSING => 14110,
+ ERROR_EVT_INVALID_CHANNEL_PATH => 15000,
+ ERROR_EVT_INVALID_QUERY => 15001,
+ ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND => 15002,
+ ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND => 15003,
+ ERROR_EVT_INVALID_PUBLISHER_NAME => 15004,
+ ERROR_EVT_INVALID_EVENT_DATA => 15005,
+ ERROR_EVT_CHANNEL_NOT_FOUND => 15007,
+ ERROR_EVT_MALFORMED_XML_TEXT => 15008,
+ ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL => 15009,
+ ERROR_EVT_CONFIGURATION_ERROR => 15010,
+ ERROR_EVT_QUERY_RESULT_STALE => 15011,
+ ERROR_EVT_QUERY_RESULT_INVALID_POSITION => 15012,
+ ERROR_EVT_NON_VALIDATING_MSXML => 15013,
+ ERROR_EVT_FILTER_ALREADYSCOPED => 15014,
+ ERROR_EVT_FILTER_NOTELTSET => 15015,
+ ERROR_EVT_FILTER_INVARG => 15016,
+ ERROR_EVT_FILTER_INVTEST => 15017,
+ ERROR_EVT_FILTER_INVTYPE => 15018,
+ ERROR_EVT_FILTER_PARSEERR => 15019,
+ ERROR_EVT_FILTER_UNSUPPORTEDOP => 15020,
+ ERROR_EVT_FILTER_UNEXPECTEDTOKEN => 15021,
+ ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL => 15022,
+ ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE => 15023,
+ ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE => 15024,
+ ERROR_EVT_CHANNEL_CANNOT_ACTIVATE => 15025,
+ ERROR_EVT_FILTER_TOO_COMPLEX => 15026,
+ ERROR_EVT_MESSAGE_NOT_FOUND => 15027,
+ ERROR_EVT_MESSAGE_ID_NOT_FOUND => 15028,
+ ERROR_EVT_UNRESOLVED_VALUE_INSERT => 15029,
+ ERROR_EVT_UNRESOLVED_PARAMETER_INSERT => 15030,
+ ERROR_EVT_MAX_INSERTS_REACHED => 15031,
+ ERROR_EVT_EVENT_DEFINITION_NOT_FOUND => 15032,
+ ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND => 15033,
+ ERROR_EVT_VERSION_TOO_OLD => 15034,
+ ERROR_EVT_VERSION_TOO_NEW => 15035,
+ ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY => 15036,
+ ERROR_EVT_PUBLISHER_DISABLED => 15037,
+ ERROR_EVT_FILTER_OUT_OF_RANGE => 15038,
+ ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE => 15080,
+ ERROR_EC_LOG_DISABLED => 15081,
+ ERROR_EC_CIRCULAR_FORWARDING => 15082,
+ ERROR_EC_CREDSTORE_FULL => 15083,
+ ERROR_EC_CRED_NOT_FOUND => 15084,
+ ERROR_EC_NO_ACTIVE_CHANNEL => 15085,
+ ERROR_MUI_FILE_NOT_FOUND => 15100,
+ ERROR_MUI_INVALID_FILE => 15101,
+ ERROR_MUI_INVALID_RC_CONFIG => 15102,
+ ERROR_MUI_INVALID_LOCALE_NAME => 15103,
+ ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME => 15104,
+ ERROR_MUI_FILE_NOT_LOADED => 15105,
+ ERROR_RESOURCE_ENUM_USER_STOP => 15106,
+ ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED => 15107,
+ ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME => 15108,
+ ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE => 15110,
+ ERROR_MRM_INVALID_PRICONFIG => 15111,
+ ERROR_MRM_INVALID_FILE_TYPE => 15112,
+ ERROR_MRM_UNKNOWN_QUALIFIER => 15113,
+ ERROR_MRM_INVALID_QUALIFIER_VALUE => 15114,
+ ERROR_MRM_NO_CANDIDATE => 15115,
+ ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE => 15116,
+ ERROR_MRM_RESOURCE_TYPE_MISMATCH => 15117,
+ ERROR_MRM_DUPLICATE_MAP_NAME => 15118,
+ ERROR_MRM_DUPLICATE_ENTRY => 15119,
+ ERROR_MRM_INVALID_RESOURCE_IDENTIFIER => 15120,
+ ERROR_MRM_FILEPATH_TOO_LONG => 15121,
+ ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE => 15122,
+ ERROR_MRM_INVALID_PRI_FILE => 15126,
+ ERROR_MRM_NAMED_RESOURCE_NOT_FOUND => 15127,
+ ERROR_MRM_MAP_NOT_FOUND => 15135,
+ ERROR_MRM_UNSUPPORTED_PROFILE_TYPE => 15136,
+ ERROR_MRM_INVALID_QUALIFIER_OPERATOR => 15137,
+ ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE => 15138,
+ ERROR_MRM_AUTOMERGE_ENABLED => 15139,
+ ERROR_MRM_TOO_MANY_RESOURCES => 15140,
+ ERROR_MCA_INVALID_CAPABILITIES_STRING => 15200,
+ ERROR_MCA_INVALID_VCP_VERSION => 15201,
+ ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION => 15202,
+ ERROR_MCA_MCCS_VERSION_MISMATCH => 15203,
+ ERROR_MCA_UNSUPPORTED_MCCS_VERSION => 15204,
+ ERROR_MCA_INTERNAL_ERROR => 15205,
+ ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED => 15206,
+ ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE => 15207,
+ ERROR_AMBIGUOUS_SYSTEM_DEVICE => 15250,
+ ERROR_SYSTEM_DEVICE_NOT_FOUND => 15299,
+ ERROR_HASH_NOT_SUPPORTED => 15300,
+ ERROR_HASH_NOT_PRESENT => 15301,
+ ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED => 15321,
+ ERROR_GPIO_CLIENT_INFORMATION_INVALID => 15322,
+ ERROR_GPIO_VERSION_NOT_SUPPORTED => 15323,
+ ERROR_GPIO_INVALID_REGISTRATION_PACKET => 15324,
+ ERROR_GPIO_OPERATION_DENIED => 15325,
+ ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE => 15326,
+ ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED => 15327,
+ ERROR_CANNOT_SWITCH_RUNLEVEL => 15400,
+ ERROR_INVALID_RUNLEVEL_SETTING => 15401,
+ ERROR_RUNLEVEL_SWITCH_TIMEOUT => 15402,
+ ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT => 15403,
+ ERROR_RUNLEVEL_SWITCH_IN_PROGRESS => 15404,
+ ERROR_SERVICES_FAILED_AUTOSTART => 15405,
+ ERROR_COM_TASK_STOP_PENDING => 15501,
+ ERROR_INSTALL_OPEN_PACKAGE_FAILED => 15600,
+ ERROR_INSTALL_PACKAGE_NOT_FOUND => 15601,
+ ERROR_INSTALL_INVALID_PACKAGE => 15602,
+ ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED => 15603,
+ ERROR_INSTALL_OUT_OF_DISK_SPACE => 15604,
+ ERROR_INSTALL_NETWORK_FAILURE => 15605,
+ ERROR_INSTALL_REGISTRATION_FAILURE => 15606,
+ ERROR_INSTALL_DEREGISTRATION_FAILURE => 15607,
+ ERROR_INSTALL_CANCEL => 15608,
+ ERROR_INSTALL_FAILED => 15609,
+ ERROR_REMOVE_FAILED => 15610,
+ ERROR_PACKAGE_ALREADY_EXISTS => 15611,
+ ERROR_NEEDS_REMEDIATION => 15612,
+ ERROR_INSTALL_PREREQUISITE_FAILED => 15613,
+ ERROR_PACKAGE_REPOSITORY_CORRUPTED => 15614,
+ ERROR_INSTALL_POLICY_FAILURE => 15615,
+ ERROR_PACKAGE_UPDATING => 15616,
+ ERROR_DEPLOYMENT_BLOCKED_BY_POLICY => 15617,
+ ERROR_PACKAGES_IN_USE => 15618,
+ ERROR_RECOVERY_FILE_CORRUPT => 15619,
+ ERROR_INVALID_STAGED_SIGNATURE => 15620,
+ ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED => 15621,
+ ERROR_INSTALL_PACKAGE_DOWNGRADE => 15622,
+ ERROR_SYSTEM_NEEDS_REMEDIATION => 15623,
+ ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN => 15624,
+ ERROR_RESILIENCY_FILE_CORRUPT => 15625,
+ ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING => 15626,
+ ERROR_STATE_LOAD_STORE_FAILED => 15800,
+ ERROR_STATE_GET_VERSION_FAILED => 15801,
+ ERROR_STATE_SET_VERSION_FAILED => 15802,
+ ERROR_STATE_STRUCTURED_RESET_FAILED => 15803,
+ ERROR_STATE_OPEN_CONTAINER_FAILED => 15804,
+ ERROR_STATE_CREATE_CONTAINER_FAILED => 15805,
+ ERROR_STATE_DELETE_CONTAINER_FAILED => 15806,
+ ERROR_STATE_READ_SETTING_FAILED => 15807,
+ ERROR_STATE_WRITE_SETTING_FAILED => 15808,
+ ERROR_STATE_DELETE_SETTING_FAILED => 15809,
+ ERROR_STATE_QUERY_SETTING_FAILED => 15810,
+ ERROR_STATE_READ_COMPOSITE_SETTING_FAILED => 15811,
+ ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED => 15812,
+ ERROR_STATE_ENUMERATE_CONTAINER_FAILED => 15813,
+ ERROR_STATE_ENUMERATE_SETTINGS_FAILED => 15814,
+ ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED => 15815,
+ ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED => 15816,
+ ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED => 15817,
+ ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED => 15818,
+ ERROR_API_UNAVAILABLE => 15841,
EVENT_CONSOLE_CARET => 16385,
EVENT_CONSOLE_UPDATE_REGION => 16386,
EVENT_CONSOLE_UPDATE_SIMPLE => 16387,
@@ -2076,9 +2314,12 @@ BEGIN {
ERROR_FLT_IO_COMPLETE => 2031617,
EVENT_ALL_ACCESS => 2031619,
ELEMENT_STATUS_INVERT => 4194304,
+ EWX_HYBRID_SHUTDOWN => 4194304,
ELEMENT_STATUS_SVALID => 8388608,
+ EWX_BOOTOPTIONS => 16777216,
ELEMENT_STATUS_PVOLTAG => 268435456,
ELEMENT_STATUS_AVOLTAG => 536870912,
+ ENDSESSION_CRITICAL => 1073741824,
ERROR_SEVERITY_INFORMATIONAL => 1073741824,
ENHMETA_SIGNATURE => 1179469088,
EPS_SIGNATURE => 1179865157,
diff --git a/Master/tlpkg/tlperl/lib/Exporter.pm b/Master/tlpkg/tlperl/lib/Exporter.pm
index bc72c51c4b4..0b3db2159f4 100644
--- a/Master/tlpkg/tlperl/lib/Exporter.pm
+++ b/Master/tlpkg/tlperl/lib/Exporter.pm
@@ -9,7 +9,7 @@ require 5.006;
our $Debug = 0;
our $ExportLevel = 0;
our $Verbose ||= 0;
-our $VERSION = '5.71';
+our $VERSION = '5.72';
our (%Cache);
sub as_heavy {
@@ -223,7 +223,7 @@ right. Specifications are in the form:
[!]name This name only
[!]:DEFAULT All names in @EXPORT
- [!]:tag All names in $EXPORT_TAGS{tag} anonymous list
+ [!]:tag All names in $EXPORT_TAGS{tag} anonymous array
[!]/pattern/ All names in @EXPORT and @EXPORT_OK which match
A leading ! indicates that matching names should be deleted from the
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm
index 98a68a0b813..17a49633984 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm
@@ -1,13 +1,11 @@
package ExtUtils::CBuilder;
-
+$ExtUtils::CBuilder::VERSION = '0.280221';
use File::Spec ();
use File::Path ();
use File::Basename ();
use Perl::OSType qw/os_type/;
-use vars qw($VERSION @ISA);
-$VERSION = '0.280217';
-$VERSION = eval $VERSION;
+use vars qw(@ISA);
# We only use this once - don't waste a symbol table entry on it.
# More importantly, don't make it an inheritable method.
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm
index 4392b7f5dbb..7df61e4c54b 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm
@@ -1,5 +1,5 @@
package ExtUtils::CBuilder::Base;
-
+$ExtUtils::CBuilder::Base::VERSION = '0.280221';
use strict;
use File::Spec;
use File::Basename;
@@ -9,9 +9,6 @@ use Text::ParseWords;
use IPC::Cmd qw(can_run);
use File::Temp qw(tempfile);
-use vars qw($VERSION);
-$VERSION = '0.280217';
-
# More details about C/C++ compilers:
# http://developers.sun.com/sunstudio/documentation/product/compiler.jsp
# http://gcc.gnu.org/
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm
index d948bbfecb0..a05ae4bca6f 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm
@@ -1,10 +1,9 @@
package ExtUtils::CBuilder::Platform::Unix;
-
+$ExtUtils::CBuilder::Platform::Unix::VERSION = '0.280221';
use strict;
use ExtUtils::CBuilder::Base;
-use vars qw($VERSION @ISA);
-$VERSION = '0.280217';
+use vars qw(@ISA);
@ISA = qw(ExtUtils::CBuilder::Base);
sub link_executable {
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm
index d296bab51c1..6285e33692d 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm
@@ -1,10 +1,9 @@
package ExtUtils::CBuilder::Platform::VMS;
-
+$ExtUtils::CBuilder::Platform::VMS::VERSION = '0.280221';
use strict;
use ExtUtils::CBuilder::Base;
-use vars qw($VERSION @ISA);
-$VERSION = '0.280217';
+use vars qw(@ISA);
@ISA = qw(ExtUtils::CBuilder::Base);
use File::Spec::Functions qw(catfile catdir);
@@ -166,7 +165,6 @@ sub _liblist_ext {
'socket' => '', 'X11' => 'DECW$XLIBSHR',
'Xt' => 'DECW$XTSHR', 'Xm' => 'DECW$XMLIBSHR',
'Xmu' => 'DECW$XMULIBSHR');
- if ($self->{'config'}{'vms_cc_type'} ne 'decc') { $libmap{'curses'} = 'VAXCCURSE'; }
warn "Potential libraries are '$potential_libs'\n" if $verbose;
@@ -267,9 +265,7 @@ sub _liblist_ext {
}
}
if ($ctype) {
- # This has to precede any other CRTLs, so just make it first
- if ($cand eq 'VAXCCURSE') { unshift @{$found{$ctype}}, $cand; }
- else { push @{$found{$ctype}}, $cand; }
+ push @{$found{$ctype}}, $cand;
warn "\tFound as $cand (really $fullname), type $ctype\n"
if $verbose > 1;
push @flibs, $name unless $libs_seen{$fullname}++;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm
index f9e4070b965..472c8012da3 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm
@@ -1,5 +1,5 @@
package ExtUtils::CBuilder::Platform::Windows;
-
+$ExtUtils::CBuilder::Platform::Windows::VERSION = '0.280221';
use strict;
use warnings;
@@ -9,8 +9,7 @@ use File::Spec;
use ExtUtils::CBuilder::Base;
use IO::File;
-use vars qw($VERSION @ISA);
-$VERSION = '0.280217';
+use vars qw(@ISA);
@ISA = qw(ExtUtils::CBuilder::Base);
=begin comment
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm
index aab143791f0..cbba074146a 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm
@@ -1,8 +1,5 @@
package ExtUtils::CBuilder::Platform::Windows::BCC;
-
-use vars qw($VERSION);
-$VERSION = '0.280217';
-
+$ExtUtils::CBuilder::Platform::Windows::BCC::VERSION = '0.280220';
sub format_compiler_cmd {
my ($self, %spec) = @_;
@@ -64,7 +61,7 @@ sub format_linker_cmd {
}
push( @{$spec{startup}}, 'c0d32.obj' )
- unless ( $spec{starup} && @{$spec{startup}} );
+ unless ( $spec{startup} && @{$spec{startup}} );
%spec = $self->write_linker_script(%spec)
if $spec{use_scripts};
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm
index b8a32a873ac..eb37a0e1711 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm
@@ -1,8 +1,5 @@
package ExtUtils::CBuilder::Platform::Windows::GCC;
-
-use vars qw($VERSION);
-$VERSION = '0.280217';
-
+$ExtUtils::CBuilder::Platform::Windows::GCC::VERSION = '0.280220';
sub format_compiler_cmd {
my ($self, %spec) = @_;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm
index 3d4b5abc881..8457485e22f 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm
@@ -1,8 +1,5 @@
package ExtUtils::CBuilder::Platform::Windows::MSVC;
-
-use vars qw($VERSION);
-$VERSION = '0.280217';
-
+$ExtUtils::CBuilder::Platform::Windows::MSVC::VERSION = '0.280220';
sub arg_exec_file {
my ($self, $file) = @_;
return "/OUT:$file";
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm
index ecc14f89e27..c40dfaa5f46 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm
@@ -1,11 +1,10 @@
package ExtUtils::CBuilder::Platform::aix;
-
+$ExtUtils::CBuilder::Platform::aix::VERSION = '0.280221';
use strict;
use ExtUtils::CBuilder::Platform::Unix;
use File::Spec;
-use vars qw($VERSION @ISA);
-$VERSION = '0.280217';
+use vars qw(@ISA);
@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
sub need_prelink { 1 }
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm
index e2be516d2ca..8ceb1454d6d 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm
@@ -1,12 +1,11 @@
package ExtUtils::CBuilder::Platform::android;
-
+$ExtUtils::CBuilder::Platform::android::VERSION = '0.280221';
use strict;
-use Config;
use File::Spec;
use ExtUtils::CBuilder::Platform::Unix;
+use Config;
-use vars qw($VERSION @ISA);
-$VERSION = '0.280217';
+use vars qw(@ISA);
@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
# The Android linker will not recognize symbols from
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm
index 43e6a47b6bd..9f1e7fea397 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm
@@ -1,11 +1,10 @@
package ExtUtils::CBuilder::Platform::cygwin;
-
+$ExtUtils::CBuilder::Platform::cygwin::VERSION = '0.280221';
use strict;
use File::Spec;
use ExtUtils::CBuilder::Platform::Unix;
-use vars qw($VERSION @ISA);
-$VERSION = '0.280217';
+use vars qw(@ISA);
@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
# TODO: If a specific exe_file name is requested, if the exe created
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm
index bc4f1884968..391040bb934 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm
@@ -1,10 +1,9 @@
package ExtUtils::CBuilder::Platform::darwin;
-
+$ExtUtils::CBuilder::Platform::darwin::VERSION = '0.280221';
use strict;
use ExtUtils::CBuilder::Platform::Unix;
-use vars qw($VERSION @ISA);
-$VERSION = '0.280217';
+use vars qw(@ISA);
@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
sub compile {
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm
index f16fc019d59..5d4bdf78b13 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm
@@ -1,12 +1,11 @@
package ExtUtils::CBuilder::Platform::dec_osf;
-
+$ExtUtils::CBuilder::Platform::dec_osf::VERSION = '0.280221';
use strict;
use ExtUtils::CBuilder::Platform::Unix;
use File::Spec;
-use vars qw($VERSION @ISA);
+use vars qw(@ISA);
@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
-$VERSION = '0.280217';
sub link_executable {
my $self = shift;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm
index 3d4867c2f8d..a5d81ca3311 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm
@@ -1,10 +1,9 @@
package ExtUtils::CBuilder::Platform::os2;
-
+$ExtUtils::CBuilder::Platform::os2::VERSION = '0.280221';
use strict;
use ExtUtils::CBuilder::Platform::Unix;
-use vars qw($VERSION @ISA);
-$VERSION = '0.280217';
+use vars qw(@ISA);
@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
sub need_prelink { 1 }
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Command.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Command.pm
index 035d5ca9df7..7f3161a73a1 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Command.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Command.pm
@@ -2,17 +2,12 @@ package ExtUtils::Command;
use 5.00503;
use strict;
-use Carp;
-use File::Copy;
-use File::Compare;
-use File::Basename;
-use File::Path qw(rmtree);
require Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
@ISA = qw(Exporter);
@EXPORT = qw(cp rm_f rm_rf mv cat eqtime mkpath touch test_f test_d chmod
dos2unix);
-$VERSION = '1.18';
+$VERSION = '1.20';
my $Is_VMS = $^O eq 'VMS';
my $Is_VMS_mode = $Is_VMS;
@@ -131,7 +126,8 @@ Removes files and directories - recursively (even if readonly)
sub rm_rf
{
expand_wildcards();
- rmtree([grep -e $_,@ARGV],0,0);
+ require File::Path;
+ File::Path::rmtree([grep -e $_,@ARGV],0,0);
}
=item rm_f
@@ -154,7 +150,8 @@ sub rm_f {
next if _unlink($file);
- carp "Cannot delete $file: $!";
+ require Carp;
+ Carp::carp("Cannot delete $file: $!");
}
}
@@ -204,11 +201,15 @@ sub mv {
my @src = @ARGV;
my $dst = pop @src;
- croak("Too many arguments") if (@src > 1 && ! -d $dst);
+ if (@src > 1 && ! -d $dst) {
+ require Carp;
+ Carp::croak("Too many arguments");
+ }
+ require File::Copy;
my $nok = 0;
foreach my $src (@src) {
- $nok ||= !move($src,$dst);
+ $nok ||= !File::Copy::move($src,$dst);
}
return !$nok;
}
@@ -230,11 +231,15 @@ sub cp {
my @src = @ARGV;
my $dst = pop @src;
- croak("Too many arguments") if (@src > 1 && ! -d $dst);
+ if (@src > 1 && ! -d $dst) {
+ require Carp;
+ Carp::croak("Too many arguments");
+ }
+ require File::Copy;
my $nok = 0;
foreach my $src (@src) {
- $nok ||= !copy($src,$dst);
+ $nok ||= !File::Copy::copy($src,$dst);
# Win32 does not update the mod time of a copied file, just the
# created time which make does not look at.
@@ -257,6 +262,7 @@ sub chmod {
expand_wildcards();
if( $Is_VMS_mode && $Is_VMS_noefs) {
+ require File::Spec;
foreach my $idx (0..$#ARGV) {
my $path = $ARGV[$idx];
next unless -d $path;
@@ -285,6 +291,7 @@ Creates directories, including any parent directories.
sub mkpath
{
expand_wildcards();
+ require File::Path;
File::Path::mkpath([@ARGV],0,0777);
}
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm
index f45d41d0323..203b3aa1d81 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm
@@ -10,7 +10,7 @@ our @ISA = qw(Exporter);
our @EXPORT = qw(test_harness pod2man perllocal_install uninstall
warn_if_old_packlist test_s cp_nonempty);
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
my $Is_VMS = $^O eq 'VMS';
@@ -116,8 +116,9 @@ sub pod2man {
'section|s=s', 'release|r=s', 'center|c=s',
'date|d=s', 'fixed=s', 'fixedbold=s', 'fixeditalic=s',
'fixedbolditalic=s', 'official|o', 'quotes|q=s', 'lax|l',
- 'name|n=s', 'perm_rw=i'
+ 'name|n=s', 'perm_rw=i', 'utf8|u'
);
+ delete $options{utf8} unless $Pod::Man::VERSION >= 2.17;
# If there's no files, don't bother going further.
return 0 unless @ARGV;
@@ -130,6 +131,9 @@ sub pod2man {
# This isn't a valid Pod::Man option and is only accepted for backwards
# compatibility.
delete $options{lax};
+ my $count = scalar @ARGV / 2;
+ my $plural = $count == 1 ? 'document' : 'documents';
+ print "Manifying $count pod $plural\n";
do {{ # so 'next' works
my ($pod, $man) = splice(@ARGV, 0, 2);
@@ -138,8 +142,6 @@ sub pod2man {
(mtime($man) > mtime($pod)) &&
(mtime($man) > mtime("Makefile")));
- print "Manifying $man\n";
-
my $parser = Pod::Man->new(%options);
$parser->parse_from_file($pod, $man)
or do { warn("Could not install $man\n"); next };
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Install.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Install.pm
index eec57aa8b54..1e8ac4cd12b 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Install.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Install.pm
@@ -38,11 +38,11 @@ ExtUtils::Install - install files from here to there
=head1 VERSION
-1.67
+2.04
=cut
-$VERSION = '1.67'; # <-- do not forget to update the POD section just above this line!
+$VERSION = '2.04'; # <-- do not forget to update the POD section just above this line!
$VERSION = eval $VERSION;
=pod
@@ -113,6 +113,7 @@ my $Inc_uninstall_warn_handler;
# install relative to here
my $INSTALL_ROOT = $ENV{PERL_INSTALL_ROOT};
+my $INSTALL_QUIET = $ENV{PERL_INSTALL_QUIET};
my $Curdir = File::Spec->curdir;
my $Updir = File::Spec->updir;
@@ -1171,6 +1172,9 @@ output the new module contents.
You can have an environment variable PERL_INSTALL_ROOT set which will
be prepended as a directory to each installed file (and directory).
+By default verbose output is generated, setting the PERL_INSTALL_QUIET
+environment variable will silence this output.
+
=cut
sub pm_to_blib {
@@ -1179,7 +1183,7 @@ sub pm_to_blib {
_mkpath($autodir,0,0755);
while(my($from, $to) = each %$fromto) {
if( -f $to && -s $from == -s $to && -M $to < -M $from ) {
- print "Skip $to (unchanged)\n";
+ print "Skip $to (unchanged)\n" unless $INSTALL_QUIET;
next;
}
@@ -1192,7 +1196,7 @@ sub pm_to_blib {
$from =~ /\.pm$/;
if (!$need_filtering && 0 == compare($from,$to)) {
- print "Skip $to (unchanged)\n";
+ print "Skip $to (unchanged)\n" unless $INSTALL_QUIET;
next;
}
if (-f $to){
@@ -1206,7 +1210,7 @@ sub pm_to_blib {
print "$pm_filter <$from >$to\n";
} else {
_copy( $from, $to );
- print "cp $from $to\n";
+ print "cp $from $to\n" unless $INSTALL_QUIET;
}
my($mode,$atime,$mtime) = (stat $from)[2,8,9];
utime($atime,$mtime+$Is_VMS,$to);
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Installed.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Installed.pm
index a62de6e377d..061c32916f3 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Installed.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Installed.pm
@@ -17,7 +17,7 @@ my $DOSISH = ($^O =~ /^(MSWin\d\d|os2|dos|mint)$/);
require VMS::Filespec if $Is_VMS;
use vars qw($VERSION);
-$VERSION = '1.999005';
+$VERSION = '2.04';
$VERSION = eval $VERSION;
sub _is_prefix {
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm
index 2d21e12d824..3df17939933 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm
@@ -2,7 +2,7 @@ package ExtUtils::Liblist;
use strict;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
use File::Spec;
require ExtUtils::Liblist::Kid;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm
index e39c8b27ced..37bcfd45129 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm
@@ -11,7 +11,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
use ExtUtils::MakeMaker::Config;
use Cwd 'cwd';
@@ -49,7 +49,7 @@ sub _unix_os2_ext {
# this is a rewrite of Andy Dougherty's extliblist in perl
my ( @searchpath ); # from "-L/path" entries in $potential_libs
- my ( @libpath ) = split " ", $Config{'libpth'};
+ my ( @libpath ) = split " ", $Config{'libpth'} || '';
my ( @ldloadlibs, @bsloadlibs, @extralibs, @ld_run_path, %ld_run_path_seen );
my ( @libs, %libs_seen );
my ( $fullname, @fullname );
@@ -57,6 +57,7 @@ sub _unix_os2_ext {
my ( $found ) = 0;
foreach my $thislib ( split ' ', $potential_libs ) {
+ my ( $custom_name ) = '';
# Handle possible linker path arguments.
if ( $thislib =~ s/^(-[LR]|-Wl,-R|-Wl,-rpath,)// ) { # save path flag type
@@ -92,7 +93,14 @@ sub _unix_os2_ext {
}
# Handle possible library arguments.
- unless ( $thislib =~ s/^-l// ) {
+ if ( $thislib =~ s/^-l(:)?// ) {
+ # Handle -l:foo.so, which means that the library will
+ # actually be called foo.so, not libfoo.so. This
+ # is used in Android by ExtUtils::Depends to allow one XS
+ # module to link to another.
+ $custom_name = $1 || '';
+ }
+ else {
warn "Unrecognized argument in LIBS ignored: '$thislib'\n";
next;
}
@@ -106,8 +114,10 @@ sub _unix_os2_ext {
# For gcc-2.6.2 on linux (March 1995), DLD can not load
# .sa libraries, with the exception of libm.sa, so we
# deliberately skip them.
- if ( @fullname = $self->lsdir( $thispth, "^\Qlib$thislib.$so.\E[0-9]+" ) ) {
-
+ if ((@fullname =
+ $self->lsdir($thispth, "^\Qlib$thislib.$so.\E[0-9]+")) ||
+ (@fullname =
+ $self->lsdir($thispth, "^\Qlib$thislib.\E[0-9]+\Q\.$so"))) {
# Take care that libfoo.so.10 wins against libfoo.so.9.
# Compare two libraries to find the most recent version
# number. E.g. if you have libfoo.so.9.0.7 and
@@ -176,6 +186,8 @@ sub _unix_os2_ext {
#
# , the compilation tools expand the environment variables.)
}
+ elsif ( $custom_name && -f ( $fullname = "$thispth/$thislib" ) ) {
+ }
else {
warn "$thislib not found in $thispth\n" if $verbose;
next;
@@ -189,7 +201,7 @@ sub _unix_os2_ext {
# what do we know about this library...
my $is_dyna = ( $fullname !~ /\Q$Config_libext\E\z/ );
- my $in_perl = ( $libs =~ /\B-l\Q${thislib}\E\b/s );
+ my $in_perl = ( $libs =~ /\B-l:?\Q${thislib}\E\b/s );
# include the path to the lib once in the dynamic linker path
# but only if it is a dynamic lib and not in Perl itself
@@ -209,7 +221,7 @@ sub _unix_os2_ext {
&& ( $thislib eq 'm' || $thislib eq 'ndbm' ) )
)
{
- push( @extralibs, "-l$thislib" );
+ push( @extralibs, "-l$custom_name$thislib" );
}
# We might be able to load this archive file dynamically
@@ -231,11 +243,11 @@ sub _unix_os2_ext {
# For SunOS4, do not add in this shared library if
# it is already linked in the main perl executable
- push( @ldloadlibs, "-l$thislib" )
+ push( @ldloadlibs, "-l$custom_name$thislib" )
unless ( $in_perl and $^O eq 'sunos' );
}
else {
- push( @ldloadlibs, "-l$thislib" );
+ push( @ldloadlibs, "-l$custom_name$thislib" );
}
}
last; # found one here so don't bother looking further
@@ -330,8 +342,8 @@ sub _win32_ext {
return ( '', '', '', '', ( $give_libs ? \@libs : () ) ) unless @extralibs;
# make sure paths with spaces are properly quoted
- @extralibs = map { /\s/ ? qq["$_"] : $_ } @extralibs;
- @libs = map { /\s/ ? qq["$_"] : $_ } @libs;
+ @extralibs = map { qq["$_"] } @extralibs;
+ @libs = map { qq["$_"] } @libs;
my $lib = join( ' ', @extralibs );
@@ -499,7 +511,6 @@ sub _vms_ext {
'Xm' => 'DECW$XMLIBSHR',
'Xmu' => 'DECW$XMULIBSHR'
);
- if ( $Config{'vms_cc_type'} ne 'decc' ) { $libmap{'curses'} = 'VAXCCURSE'; }
warn "Potential libraries are '$potential_libs'\n" if $verbose;
@@ -525,7 +536,7 @@ sub _vms_ext {
}
warn "Resolving directory $dir\n" if $verbose;
if ( File::Spec->file_name_is_absolute( $dir ) ) {
- $dir = $self->fixpath( $dir, 1 );
+ $dir = VMS::Filespec::vmspath( $dir );
}
else {
$dir = $self->catdir( $cwd, $dir );
@@ -609,9 +620,7 @@ sub _vms_ext {
}
if ( $ctype ) {
- # This has to precede any other CRTLs, so just make it first
- if ( $cand eq 'VAXCCURSE' ) { unshift @{ $found{$ctype} }, $cand; }
- else { push @{ $found{$ctype} }, $cand; }
+ push @{ $found{$ctype} }, $cand;
warn "\tFound as $cand (really $fullname), type $ctype\n"
if $verbose > 1;
push @flibs, $name unless $libs_seen{$fullname}++;
@@ -627,6 +636,7 @@ sub _vms_ext {
my $lib = join( ' ', @fndlibs );
$ldlib = $crtlstr ? "$lib $crtlstr" : $lib;
+ $ldlib =~ s/^\s+|\s+$//g;
warn "Result:\n\tEXTRALIBS: $lib\n\tLDLOADLIBS: $ldlib\n" if $verbose;
wantarray ? ( $lib, '', $ldlib, '', ( $give_libs ? \@flibs : () ) ) : $lib;
}
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MANIFEST.SKIP b/Master/tlpkg/tlperl/lib/ExtUtils/MANIFEST.SKIP
index bea687450f3..65592fb83d8 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MANIFEST.SKIP
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MANIFEST.SKIP
@@ -22,6 +22,7 @@
\bpm_to_blib\.ts$
\bpm_to_blib$
\bblibdirs\.ts$ # 6.18 through 6.25 generated this
+\b_eumm/ # 7.05_05 and above
# Avoid Module::Build generated and utility files.
\bBuild$
@@ -31,6 +32,9 @@
\bBUILD.COM$
\bbuild.com$
+# and Module::Build::Tiny generated files
+\b_build_params$
+
# Avoid temp and backup files.
~$
\.old$
@@ -40,6 +44,7 @@
\.tmp$
\.#
\.rej$
+\..*\.sw.?$
# Avoid OS-specific files/dirs
# Mac OSX metadata
@@ -51,5 +56,8 @@
\bcover_db\b
\bcovered\b
+# Avoid prove files
+\B\.prove$
+
# Avoid MYMETA files
^MYMETA\.
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM.pm
index a34015f94d1..f2aa8b4fc0d 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM.pm
@@ -3,7 +3,7 @@ package ExtUtils::MM;
use strict;
use ExtUtils::MakeMaker::Config;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
require ExtUtils::Liblist;
require ExtUtils::MakeMaker;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm
index 7c600a6c2dc..58ea5b917f5 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_AIX;
use strict;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm
index 20663111ef1..4c00129af16 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_Any;
use strict;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
use Carp;
use File::Spec;
@@ -125,6 +125,143 @@ sub can_load_xs {
}
+=head3 can_run
+
+ use ExtUtils::MM;
+ my $runnable = MM->can_run($Config{make});
+
+If called in a scalar context it will return the full path to the binary
+you asked for if it was found, or C<undef> if it was not.
+
+If called in a list context, it will return a list of the full paths to instances
+of the binary where found in C<PATH>, or an empty list if it was not found.
+
+Copied from L<IPC::Cmd|IPC::Cmd/"$path = can_run( PROGRAM );">, but modified into
+a method (and removed C<$INSTANCES> capability).
+
+=cut
+
+sub can_run {
+ my ($self, $command) = @_;
+
+ # a lot of VMS executables have a symbol defined
+ # check those first
+ if ( $^O eq 'VMS' ) {
+ require VMS::DCLsym;
+ my $syms = VMS::DCLsym->new;
+ return $command if scalar $syms->getsym( uc $command );
+ }
+
+ my @possibles;
+
+ if( File::Spec->file_name_is_absolute($command) ) {
+ return $self->maybe_command($command);
+
+ } else {
+ for my $dir (
+ File::Spec->path,
+ File::Spec->curdir
+ ) {
+ next if ! $dir || ! -d $dir;
+ my $abs = File::Spec->catfile($self->os_flavor_is('Win32') ? Win32::GetShortPathName( $dir ) : $dir, $command);
+ push @possibles, $abs if $abs = $self->maybe_command($abs);
+ }
+ }
+ return @possibles if wantarray;
+ return shift @possibles;
+}
+
+
+=head3 can_redirect_error
+
+ $useredirect = MM->can_redirect_error;
+
+True if on an OS where qx operator (or backticks) can redirect C<STDERR>
+onto C<STDOUT>.
+
+=cut
+
+sub can_redirect_error {
+ my $self = shift;
+ $self->os_flavor_is('Unix')
+ or ($self->os_flavor_is('Win32') and !$self->os_flavor_is('Win9x'))
+ or $self->os_flavor_is('OS/2')
+}
+
+
+=head3 is_make_type
+
+ my $is_dmake = $self->is_make_type('dmake');
+
+Returns true if C<<$self->make>> is the given type; possibilities are:
+
+ gmake GNU make
+ dmake
+ nmake
+ bsdmake BSD pmake-derived
+
+=cut
+
+sub is_make_type {
+ my($self, $type) = @_;
+ (undef, undef, my $make_basename) = $self->splitpath($self->make);
+ return 1 if $make_basename =~ /\b$type\b/i; # executable's filename
+ return 0 if $make_basename =~ /\b(dmake|nmake)\b/i; # Never fall through for dmake/nmake
+ # now have to run with "-v" and guess
+ my $redirect = $self->can_redirect_error ? '2>&1' : '';
+ my $make = $self->make || $self->{MAKE};
+ my $minus_v = `"$make" -v $redirect`;
+ return 1 if $type eq 'gmake' and $minus_v =~ /GNU make/i;
+ return 1 if $type eq 'bsdmake'
+ and $minus_v =~ /^usage: make \[-BeikNnqrstWwX\]/im;
+ 0; # it wasn't whatever you asked
+}
+
+
+=head3 can_dep_space
+
+ my $can_dep_space = $self->can_dep_space;
+
+Returns true if C<make> can handle (probably by quoting)
+dependencies that contain a space. Currently known true for GNU make,
+false for BSD pmake derivative.
+
+=cut
+
+my $cached_dep_space;
+sub can_dep_space {
+ my $self = shift;
+ return $cached_dep_space if defined $cached_dep_space;
+ return $cached_dep_space = 1 if $self->is_make_type('gmake');
+ return $cached_dep_space = 0 if $self->is_make_type('dmake'); # only on W32
+ return $cached_dep_space = 0 if $self->is_make_type('bsdmake');
+ return $cached_dep_space = 0; # assume no
+}
+
+
+=head3 quote_dep
+
+ $text = $mm->quote_dep($text);
+
+Method that protects Makefile single-value constants (mainly filenames),
+so that make will still treat them as single values even if they
+inconveniently have spaces in. If the make program being used cannot
+achieve such protection and the given text would need it, throws an
+exception.
+
+=cut
+
+sub quote_dep {
+ my ($self, $arg) = @_;
+ die <<EOF if $arg =~ / / and not $self->can_dep_space;
+Tried to use make dependency with space for make that can't:
+ '$arg'
+EOF
+ $arg =~ s/( )/\\$1/g; # how GNU make does it
+ return $arg;
+}
+
+
=head3 split_command
my @cmds = $MM->split_command($cmd, @args);
@@ -781,9 +918,10 @@ END
my @man_cmds;
foreach my $section (qw(1 3)) {
my $pods = $self->{"MAN${section}PODS"};
- push @man_cmds, $self->split_command(<<CMD, map {($_,$pods->{$_})} sort keys %$pods);
- \$(NOECHO) \$(POD2MAN) --section=$section --perm_rw=\$(PERM_RW)
+ my $p2m = sprintf <<CMD, $] > 5.008 ? " -u" : "";
+ \$(NOECHO) \$(POD2MAN) --section=$section --perm_rw=\$(PERM_RW)%s
CMD
+ push @man_cmds, $self->split_command($p2m, map {($_,$pods->{$_})} sort keys %$pods);
}
$manify .= "\t\$(NOECHO) \$(NOOP)\n" unless @man_cmds;
@@ -1037,8 +1175,7 @@ sub _add_requirements_to_meta_v1_4 {
# 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}
- = _normalize_prereqs($self->{CONFIGURE_REQUIRES});
+ $meta{configure_requires} = $self->{CONFIGURE_REQUIRES};
} else {
$meta{configure_requires} = {
'ExtUtils::MakeMaker' => 0,
@@ -1046,7 +1183,7 @@ sub _add_requirements_to_meta_v1_4 {
}
if( $self->{ARGS}{BUILD_REQUIRES} ) {
- $meta{build_requires} = _normalize_prereqs($self->{BUILD_REQUIRES});
+ $meta{build_requires} = $self->{BUILD_REQUIRES};
} else {
$meta{build_requires} = {
'ExtUtils::MakeMaker' => 0,
@@ -1056,11 +1193,11 @@ sub _add_requirements_to_meta_v1_4 {
if( $self->{ARGS}{TEST_REQUIRES} ) {
$meta{build_requires} = {
%{ $meta{build_requires} },
- %{ _normalize_prereqs($self->{TEST_REQUIRES}) },
+ %{ $self->{TEST_REQUIRES} },
};
}
- $meta{requires} = _normalize_prereqs($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};
@@ -1074,8 +1211,7 @@ sub _add_requirements_to_meta_v2 {
# 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}
- = _normalize_prereqs($self->{CONFIGURE_REQUIRES});
+ $meta{prereqs}{configure}{requires} = $self->{CONFIGURE_REQUIRES};
} else {
$meta{prereqs}{configure}{requires} = {
'ExtUtils::MakeMaker' => 0,
@@ -1083,7 +1219,7 @@ sub _add_requirements_to_meta_v2 {
}
if( $self->{ARGS}{BUILD_REQUIRES} ) {
- $meta{prereqs}{build}{requires} = _normalize_prereqs($self->{BUILD_REQUIRES});
+ $meta{prereqs}{build}{requires} = $self->{BUILD_REQUIRES};
} else {
$meta{prereqs}{build}{requires} = {
'ExtUtils::MakeMaker' => 0,
@@ -1091,10 +1227,10 @@ sub _add_requirements_to_meta_v2 {
}
if( $self->{ARGS}{TEST_REQUIRES} ) {
- $meta{prereqs}{test}{requires} = _normalize_prereqs($self->{TEST_REQUIRES});
+ $meta{prereqs}{test}{requires} = $self->{TEST_REQUIRES};
}
- $meta{prereqs}{runtime}{requires} = _normalize_prereqs($self->{PREREQ_PM})
+ $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};
@@ -1102,15 +1238,6 @@ sub _add_requirements_to_meta_v2 {
return %meta;
}
-sub _normalize_prereqs {
- my ($hash) = @_;
- my %prereqs;
- while ( my ($k,$v) = each %$hash ) {
- $prereqs{$k} = _normalize_version($v);
- }
- return \%prereqs;
-}
-
# Adapted from Module::Build::Base
sub _normalize_version {
my ($version) = @_;
@@ -1993,7 +2120,7 @@ sub init_VERSION {
if (defined $self->{VERSION}) {
if ( $self->{VERSION} !~ /^\s*v?[\d_\.]+\s*$/ ) {
require version;
- my $normal = eval { version->parse( $self->{VERSION} ) };
+ my $normal = eval { version->new( $self->{VERSION} ) };
$self->{VERSION} = $normal if defined $normal;
}
$self->{VERSION} =~ s/^\s+//;
@@ -2060,7 +2187,7 @@ Defines at least these macros.
sub init_tools {
my $self = shift;
- $self->{ECHO} ||= $self->oneliner('print qq{@ARGV}', ['-l']);
+ $self->{ECHO} ||= $self->oneliner('binmode STDOUT, qq{:raw}; print qq{@ARGV}', ['-l']);
$self->{ECHO_N} ||= $self->oneliner('print qq{@ARGV}');
$self->{TOUCH} ||= $self->oneliner('touch', ["-MExtUtils::Command"]);
@@ -2722,7 +2849,7 @@ Used by perldepend() in MM_Unix and MM_VMS via _perl_header_files_fragment()
sub _perl_header_files {
my $self = shift;
- my $header_dir = $self->{PERL_SRC} || $self->catdir($Config{archlibexp}, 'CORE');
+ my $header_dir = $self->{PERL_SRC} || $ENV{PERL_SRC} || $self->catdir($Config{archlibexp}, 'CORE');
opendir my $dh, $header_dir
or die "Failed to opendir '$header_dir' to find header files: $!";
@@ -2759,7 +2886,7 @@ sub _perl_header_files_fragment {
return join("\\\n",
"PERL_HDRS = ",
map {
- sprintf( " \$(PERL_INC)%s%s ", $separator, $_ )
+ sprintf( " \$(PERL_INCDEP)%s%s ", $separator, $_ )
} $self->_perl_header_files()
) . "\n\n"
. "\$(OBJECT) : \$(PERL_HDRS)\n";
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm
index 060ce36837b..35b76c0fdf0 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm
@@ -26,7 +26,7 @@ require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
=item os_flavor
@@ -50,6 +50,7 @@ sub init_linker {
$self->{PERL_ARCHIVE} ||=
File::Spec->catdir('$(PERL_INC)',$Config{libperl});
+ $self->{PERL_ARCHIVEDEP} ||= '';
$self->{PERL_ARCHIVE_AFTER} ||= '';
$self->{EXPORT_LIST} ||= '';
}
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm
index d8f3e3a88fa..b504c479f3c 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm
@@ -9,7 +9,7 @@ require ExtUtils::MM_Unix;
require ExtUtils::MM_Win32;
our @ISA = qw( ExtUtils::MM_Unix );
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
=head1 NAME
@@ -94,6 +94,7 @@ sub init_linker {
'$(PERL_INC)' .'/'. ("$Config{libperl}" or "libperl.a");
}
+ $self->{PERL_ARCHIVEDEP} ||= '';
$self->{PERL_ARCHIVE_AFTER} ||= '';
$self->{EXPORT_LIST} ||= '';
}
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm
index 4f52a9859db..353c54ff9df 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_DOS;
use strict;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm
index 861a544172a..315d1b4dfb1 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm
@@ -7,7 +7,7 @@ BEGIN {
our @ISA = qw( ExtUtils::MM_Unix );
}
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm
index cd3a12a38c0..bef2c00424d 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm
@@ -2,13 +2,10 @@ package ExtUtils::MM_MacOS;
use strict;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
sub new {
- die <<'UNSUPPORTED';
-MacOS Classic (MacPerl) is no longer supported by MakeMaker.
-Please use Module::Build instead.
-UNSUPPORTED
+ die 'MacOS Classic (MacPerl) is no longer supported by MakeMaker';
}
=head1 NAME
@@ -28,12 +25,8 @@ Since there's little chance of it being repaired, MacOS Classic is fading
away, and the code was icky to begin with, the code has been deleted to
make maintenance easier.
-Those interested in writing modules for MacPerl should use Module::Build
-which works better than MakeMaker ever did.
-
Anyone interested in resurrecting this file should pull the old version
-from the MakeMaker CVS repository and contact makemaker@perl.org, but we
-really encourage you to work on Module::Build instead.
+from the MakeMaker CVS repository and contact makemaker@perl.org.
=cut
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm
index f6b0b5bd3a7..4e36796dc8b 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm
@@ -22,7 +22,7 @@ use strict;
use ExtUtils::MakeMaker::Config;
use File::Basename;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm
index 52bc4d1f108..c9ace00b0b5 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm
@@ -5,7 +5,7 @@ use strict;
use ExtUtils::MakeMaker qw(neatvalue);
use File::Spec;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
@@ -129,6 +129,7 @@ sub init_linker {
$self->{PERL_ARCHIVE} = "\$(PERL_INC)/libperl\$(LIB_EXT)";
+ $self->{PERL_ARCHIVEDEP} ||= '';
$self->{PERL_ARCHIVE_AFTER} = $OS2::is_aout
? ''
: '$(PERL_INC)/libperl_override$(LIB_EXT)';
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm
index 7b74bf41d56..13e12c4a9f5 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_QNX;
use strict;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm
index 5b9730025fd..4af2909b80b 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_UWIN;
use strict;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm
index 4140432bc8a..f63145ce116 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm
@@ -15,7 +15,7 @@ use ExtUtils::MakeMaker qw($Verbose neatvalue);
# If we make $VERSION an our variable parse_version() breaks
use vars qw($VERSION);
-$VERSION = '6.98';
+$VERSION = '7.04_01';
$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval]
require ExtUtils::MM_Any;
@@ -190,6 +190,20 @@ sub cflags {
@cflags{qw(cc ccflags optimize shellflags)}
= @Config{qw(cc ccflags optimize shellflags)};
+
+ # Perl 5.21.4 adds the (gcc) warning (-Wall ...) and std (-std=c89)
+ # flags to the %Config, and the modules in the core should be built
+ # with the warning flags, but NOT the -std=c89 flags (the latter
+ # would break using any system header files that are strict C99).
+ my @ccextraflags = qw(ccwarnflags);
+ if ($ENV{PERL_CORE}) {
+ for my $x (@ccextraflags) {
+ if (exists $Config{$x}) {
+ $cflags{$x} = $Config{$x};
+ }
+ }
+ }
+
my($optdebug) = "";
$cflags{shellflags} ||= '';
@@ -258,6 +272,11 @@ sub cflags {
$self->{CCFLAGS} .= ' -DPERL_POLLUTE ';
}
+ for my $x (@ccextraflags) {
+ next unless exists $cflags{$x};
+ $self->{CCFLAGS} .= $cflags{$x} =~ m!^\s! ? $cflags{$x} : ' ' . $cflags{$x};
+ }
+
my $pollute = '';
if ($Config{usemymalloc} and not $Config{bincompat5005}
and not $Config{ccflags} =~ /-DPERL_POLLUTE_MALLOC\b/
@@ -387,10 +406,10 @@ sub constants {
} $self->installvars),
qw(
PERL_LIB
- PERL_ARCHLIB
+ PERL_ARCHLIB PERL_ARCHLIBDEP
LIBPERL_A MYEXTLIB
FIRST_MAKEFILE MAKEFILE_OLD MAKE_APERL_FILE
- PERLMAINCC PERL_SRC PERL_INC
+ PERLMAINCC PERL_SRC PERL_INC PERL_INCDEP
PERL FULLPERL ABSPERL
PERLRUN FULLPERLRUN ABSPERLRUN
PERLRUNINST FULLPERLRUNINST ABSPERLRUNINST
@@ -404,6 +423,8 @@ sub constants {
# pathnames can have sharp signs in them; escape them so
# make doesn't think it is a comment-start character.
$self->{$macro} =~ s/#/\\#/g;
+ $self->{$macro} = $self->quote_dep($self->{$macro})
+ if $ExtUtils::MakeMaker::macro_dep{$macro};
push @m, "$macro = $self->{$macro}\n";
}
@@ -443,7 +464,7 @@ MAN3PODS = ".$self->wraplist(sort keys %{$self->{MAN3PODS}})."
push @m, q{
# Where is the Config information that we are using/depend on
-CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h
+CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h
} if -e File::Spec->catfile( $self->{PERL_INC}, 'config.h' );
@@ -460,11 +481,11 @@ INST_DYNAMIC = $self->{INST_DYNAMIC}
INST_BOOT = $self->{INST_BOOT}
};
-
push @m, qq{
# Extra linker info
EXPORT_LIST = $self->{EXPORT_LIST}
PERL_ARCHIVE = $self->{PERL_ARCHIVE}
+PERL_ARCHIVEDEP = $self->{PERL_ARCHIVEDEP}
PERL_ARCHIVE_AFTER = $self->{PERL_ARCHIVE_AFTER}
};
@@ -878,8 +899,8 @@ $(BOOTSTRAP) : $(FIRST_MAKEFILE) $(BOOTDEP) $(INST_ARCHAUTODIR)$(DFSEP).exists
$(NOECHO) $(PERLRUN) \
"-MExtUtils::Mkbootstrap" \
-e "Mkbootstrap('$(BASEEXT)','$(BSLOADLIBS)');"
- $(NOECHO) $(TOUCH) %s
- $(CHMOD) $(PERM_RW) %s
+ $(NOECHO) $(TOUCH) "%s"
+ $(CHMOD) $(PERM_RW) "%s"
MAKE_FRAG
}
@@ -911,7 +932,7 @@ OTHERLDFLAGS = '.$ld_opt.$otherldflags.'
INST_DYNAMIC_DEP = '.$inst_dynamic_dep.'
INST_DYNAMIC_FIX = '.$ld_fix.'
-$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVE) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP)
+$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP)
');
if ($armaybe ne ':'){
$ldfrom = 'tmp$(LIB_EXT)';
@@ -940,13 +961,13 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPO
# 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';
+ $libs .= ' "-L$(PERL_INC)" "-Wl,-R$(INSTALLARCHLIB)/CORE" "-Wl,-R$(PERL_ARCHLIB)/CORE" -lperl';
} elsif ($Config{'lddlflags'} =~ /-R/) {
- $libs .= ' -L$(PERL_INC) -R$(INSTALLARCHLIB)/CORE -R$(PERL_ARCHLIB)/CORE -lperl';
+ $libs .= ' "-L$(PERL_INC)" "-R$(INSTALLARCHLIB)/CORE" "-R$(PERL_ARCHLIB)/CORE" -lperl';
} elsif ( $Is{Android} ) {
# The Android linker will not recognize symbols from
# libperl unless the module explicitly depends on it.
- $libs .= ' -L$(PERL_INC) -lperl';
+ $libs .= ' "-L$(PERL_INC)" -lperl';
}
}
@@ -1043,7 +1064,7 @@ WARNING
next unless $self->maybe_command($abs);
print "Executing $abs\n" if ($trace >= 2);
- my $version_check = qq{$abs -le "require $ver; print qq{VER_OK}"};
+ my $version_check = qq{"$abs" -le "require $ver; print qq{VER_OK}"};
# To avoid using the unportable 2>&1 to suppress STDERR,
# we close it before running the command.
@@ -1191,10 +1212,6 @@ sub _fixin_replace_shebang {
$shb .= ' ' . $arg if defined $arg;
$shb .= "\n";
}
- $shb .= qq{
-eval 'exec $interpreter $arg -S \$0 \${1+"\$\@"}'
- if 0; # not running under some shell
-} unless $Is{Win32}; # this won't work on win32, so don't
}
else {
warn "Can't find $cmd in PATH, $file unchanged"
@@ -1712,6 +1729,8 @@ EOP
$self->{PERL_LIB} = File::Spec->rel2abs($self->{PERL_LIB});
$self->{PERL_ARCHLIB} = File::Spec->rel2abs($self->{PERL_ARCHLIB});
}
+ $self->{PERL_INCDEP} = $self->{PERL_INC};
+ $self->{PERL_ARCHLIBDEP} = $self->{PERL_ARCHLIB};
# We get SITELIBEXP and SITEARCHEXP directly via
# Get_from_Config. When we are running standard modules, these
@@ -1805,6 +1824,7 @@ Unix has no need of special linker flags.
sub init_linker {
my($self) = shift;
$self->{PERL_ARCHIVE} ||= '';
+ $self->{PERL_ARCHIVEDEP} ||= '';
$self->{PERL_ARCHIVE_AFTER} ||= '';
$self->{EXPORT_LIST} ||= '';
}
@@ -1909,8 +1929,20 @@ sub init_PERL {
$self->{PERL} ||=
$self->find_perl(5.0, \@perls, \@defpath, $Verbose );
- # don't check if perl is executable, maybe they have decided to
- # supply switches with perl
+
+ my $perl = $self->{PERL};
+ $perl =~ s/^"//;
+ my $has_mcr = $perl =~ s/^MCR\s*//;
+ my $perlflags = '';
+ my $stripped_perl;
+ while ($perl) {
+ ($stripped_perl = $perl) =~ s/"$//;
+ last if -x $stripped_perl;
+ last unless $perl =~ s/(\s+\S+)$//;
+ $perlflags = $1.$perlflags;
+ }
+ $self->{PERL} = $stripped_perl;
+ $self->{PERL} = 'MCR '.$self->{PERL} if $has_mcr || $Is{VMS};
# When built for debugging, VMS doesn't create perl.exe but ndbgperl.exe.
my $perl_name = 'perl';
@@ -1920,13 +1952,18 @@ sub init_PERL {
# XXX This logic is flawed. If "miniperl" is anywhere in the path
# it will get confused. It should be fixed to work only on the filename.
# Define 'FULLPERL' to be a non-miniperl (used in test: target)
- ($self->{FULLPERL} = $self->{PERL}) =~ s/\Q$miniperl\E$/$perl_name$Config{exe_ext}/i
- unless $self->{FULLPERL};
+ unless ($self->{FULLPERL}) {
+ ($self->{FULLPERL} = $self->{PERL}) =~ s/\Q$miniperl\E$/$perl_name$Config{exe_ext}/i;
+ $self->{FULLPERL} = qq{"$self->{FULLPERL}"}.$perlflags;
+ }
+ # Can't have an image name with quotes, and findperl will have
+ # already escaped spaces.
+ $self->{FULLPERL} =~ tr/"//d if $Is{VMS};
# Little hack to get around VMS's find_perl putting "MCR" in front
# sometimes.
$self->{ABSPERL} = $self->{PERL};
- my $has_mcr = $self->{ABSPERL} =~ s/^MCR\s*//;
+ $has_mcr = $self->{ABSPERL} =~ s/^MCR\s*//;
if( $self->file_name_is_absolute($self->{ABSPERL}) ) {
$self->{ABSPERL} = '$(PERL)';
}
@@ -1939,6 +1976,11 @@ sub init_PERL {
$self->{ABSPERL} = 'MCR '.$self->{ABSPERL} if $has_mcr;
}
+ $self->{PERL} = qq{"$self->{PERL}"}.$perlflags;
+
+ # Can't have an image name with quotes, and findperl will have
+ # already escaped spaces.
+ $self->{PERL} =~ tr/"//d if $Is{VMS};
# Are we building the core?
$self->{PERL_CORE} = $ENV{PERL_CORE} unless exists $self->{PERL_CORE};
@@ -1948,14 +1990,15 @@ sub init_PERL {
foreach my $perl (qw(PERL FULLPERL ABSPERL)) {
my $run = $perl.'RUN';
- $self->{$run} = "\$($perl)";
+ $self->{$run} = qq{\$($perl)};
# 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) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"}, $perl;
+ sprintf q{$(%sRUN)%s "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"},
+ $perl, $perlflags;
}
return 1;
@@ -2079,54 +2122,54 @@ pure_perl_install :: all
};
push @m,
-q{ read }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \
- write }.$self->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \
+q{ read "}.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{" \
+ write "}.$self->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q{" \
} unless $self->{NO_PACKLIST};
push @m,
-q{ $(INST_LIB) $(DESTINSTALLPRIVLIB) \
- $(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
- $(INST_BIN) $(DESTINSTALLBIN) \
- $(INST_SCRIPT) $(DESTINSTALLSCRIPT) \
- $(INST_MAN1DIR) $(DESTINSTALLMAN1DIR) \
- $(INST_MAN3DIR) $(DESTINSTALLMAN3DIR)
+q{ "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \
+ "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \
+ "$(INST_BIN)" "$(DESTINSTALLBIN)" \
+ "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \
+ "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \
+ "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)"
$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
- }.$self->catdir('$(SITEARCHEXP)','auto','$(FULLEXT)').q{
+ "}.$self->catdir('$(SITEARCHEXP)','auto','$(FULLEXT)').q{"
pure_site_install :: all
$(NOECHO) $(MOD_INSTALL) \
};
push @m,
-q{ read }.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \
- write }.$self->catfile('$(DESTINSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').q{ \
+q{ read "}.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{" \
+ write "}.$self->catfile('$(DESTINSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').q{" \
} unless $self->{NO_PACKLIST};
push @m,
-q{ $(INST_LIB) $(DESTINSTALLSITELIB) \
- $(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \
- $(INST_BIN) $(DESTINSTALLSITEBIN) \
- $(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \
- $(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \
- $(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR)
+q{ "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \
+ "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \
+ "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \
+ "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \
+ "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \
+ "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)"
$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
- }.$self->catdir('$(PERL_ARCHLIB)','auto','$(FULLEXT)').q{
+ "}.$self->catdir('$(PERL_ARCHLIB)','auto','$(FULLEXT)').q{"
pure_vendor_install :: all
$(NOECHO) $(MOD_INSTALL) \
};
push @m,
-q{ read }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \
- write }.$self->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').q{ \
+q{ read "}.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{" \
+ write "}.$self->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').q{" \
} unless $self->{NO_PACKLIST};
push @m,
-q{ $(INST_LIB) $(DESTINSTALLVENDORLIB) \
- $(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
- $(INST_BIN) $(DESTINSTALLVENDORBIN) \
- $(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \
- $(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \
- $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
+q{ "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \
+ "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \
+ "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \
+ "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \
+ "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \
+ "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)"
};
@@ -2144,37 +2187,37 @@ doc_vendor_install :: all
push @m, q{
doc_perl_install :: all
- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
+ $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod"
+ -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)"
-$(NOECHO) $(DOC_INSTALL) \
"Module" "$(NAME)" \
- "installed into" "$(INSTALLPRIVLIB)" \
+ "installed into" $(INSTALLPRIVLIB) \
LINKTYPE "$(LINKTYPE)" \
VERSION "$(VERSION)" \
EXE_FILES "$(EXE_FILES)" \
- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
+ >> "}.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{"
doc_site_install :: all
- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
+ $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod"
+ -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)"
-$(NOECHO) $(DOC_INSTALL) \
"Module" "$(NAME)" \
- "installed into" "$(INSTALLSITELIB)" \
+ "installed into" $(INSTALLSITELIB) \
LINKTYPE "$(LINKTYPE)" \
VERSION "$(VERSION)" \
EXE_FILES "$(EXE_FILES)" \
- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
+ >> "}.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{"
doc_vendor_install :: all
- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
+ $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod"
+ -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)"
-$(NOECHO) $(DOC_INSTALL) \
"Module" "$(NAME)" \
- "installed into" "$(INSTALLVENDORLIB)" \
+ "installed into" $(INSTALLVENDORLIB) \
LINKTYPE "$(LINKTYPE)" \
VERSION "$(VERSION)" \
EXE_FILES "$(EXE_FILES)" \
- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
+ >> "}.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{"
} unless $self->{NO_PERLLOCAL};
@@ -2183,13 +2226,13 @@ uninstall :: uninstall_from_$(INSTALLDIRS)dirs
$(NOECHO) $(NOOP)
uninstall_from_perldirs ::
- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{
+ $(NOECHO) $(UNINSTALL) "}.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{"
uninstall_from_sitedirs ::
- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{
+ $(NOECHO) $(UNINSTALL) "}.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{"
uninstall_from_vendordirs ::
- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{
+ $(NOECHO) $(UNINSTALL) "}.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{"
};
join("",@m);
@@ -2343,7 +2386,7 @@ $(MAP_TARGET) :: static $(MAKE_APERL_FILE)
$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
$(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET)
$(NOECHO) $(PERLRUNINST) \
- Makefile.PL DIR=}, $dir, q{ \
+ Makefile.PL DIR="}, $dir, q{" \
MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \
MAKEAPERL=1 NORECURS=1 CCCDLFLAGS=};
@@ -2521,20 +2564,20 @@ $tmp/perlmain.c: $makefilename}, q{
-e "writemain(grep s#.*/auto/##s, split(q| |, q|$(MAP_STATIC)|))" > $@t && $(MV) $@t $@
};
- push @m, "\t", q{$(NOECHO) $(PERL) $(INSTALLSCRIPT)/fixpmain
+ push @m, "\t", q{$(NOECHO) $(PERL) "$(INSTALLSCRIPT)/fixpmain"
} if (defined (&Dos::UseLFN) && Dos::UseLFN()==0);
push @m, q{
doc_inst_perl :
- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
+ $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod"
+ -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)"
-$(NOECHO) $(DOC_INSTALL) \
"Perl binary" "$(MAP_TARGET)" \
MAP_STATIC "$(MAP_STATIC)" \
MAP_EXTRA "`cat $(INST_ARCHAUTODIR)/extralibs.all`" \
MAP_LIBPERL "$(MAP_LIBPERL)" \
- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
+ >> "}.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{"
};
@@ -2542,7 +2585,7 @@ doc_inst_perl :
inst_perl : pure_inst_perl doc_inst_perl
pure_inst_perl : $(MAP_TARGET)
- }.$self->{CP}.q{ $(MAP_TARGET) }.$self->catfile('$(DESTINSTALLBIN)','$(MAP_TARGET)').q{
+ }.$self->{CP}.q{ $(MAP_TARGET) "}.$self->catfile('$(DESTINSTALLBIN)','$(MAP_TARGET)').q{"
clean :: map_clean
@@ -2651,17 +2694,24 @@ sub parse_abstract {
local $/ = "\n";
open(my $fh, '<', $parsefile) or die "Could not open '$parsefile': $!";
my $inpod = 0;
+ my $pod_encoding;
my $package = $self->{DISTNAME};
$package =~ s/-/::/g;
while (<$fh>) {
$inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod;
next if !$inpod;
chop;
+
+ if ( /^=encoding\s*(.*)$/i ) {
+ $pod_encoding = $1;
+ }
+
if ( /^($package(?:\.pm)? \s+ -+ \s+)(.*)/x ) {
$result = $2;
next;
}
next unless $result;
+
if ( $result && ( /^\s*$/ || /^\=/ ) ) {
last;
}
@@ -2669,6 +2719,16 @@ sub parse_abstract {
}
close $fh;
+ if ( $pod_encoding and !( $] < 5.008 or !$Config{useperlio} ) ) {
+ # Have to wrap in an eval{} for when running under PERL_CORE
+ # Encode isn't available during build phase and parsing
+ # ABSTRACT isn't important there
+ eval {
+ require Encode;
+ $result = Encode::decode($pod_encoding, $result);
+ }
+ }
+
return $result;
}
@@ -2721,43 +2781,32 @@ sub parse_version {
if ( defined $result && $result !~ /^v?[\d_\.]+$/ ) {
require version;
- my $normal = eval { version->parse( $result ) };
+ my $normal = eval { version->new( $result ) };
$result = $normal if defined $normal;
}
$result = "undef" unless defined $result;
return $result;
}
-sub get_version
-{
- my ($self, $parsefile, $sigil, $name) = @_;
- my $eval = qq{
- package ExtUtils::MakeMaker::_version;
- no strict;
- BEGIN { eval {
- # Ensure any version() routine which might have leaked
- # into this package has been deleted. Interferes with
- # version->import()
- undef *version;
- require version;
- "version"->import;
- } }
-
- local $sigil$name;
- \$$name=undef;
- do {
- $_
- };
- \$$name;
- };
- $eval = $1 if $eval =~ m{^(.+)}s;
- local $^W = 0;
- my $result = eval($eval); ## no critic
- warn "Could not eval '$eval' in $parsefile: $@" if $@;
- $result;
+sub get_version {
+ my ($self, $parsefile, $sigil, $name) = @_;
+ my $line = $_; # from the while() loop in parse_version
+ {
+ package ExtUtils::MakeMaker::_version;
+ undef *version; # in case of unexpected version() sub
+ eval {
+ require version;
+ version::->import;
+ };
+ no strict;
+ local *{$name};
+ local $^W = 0;
+ $line = $1 if $line =~ m{^(.+)}s;
+ eval($line); ## no critic
+ return ${$name};
+ }
}
-
=item pasthru (o)
Defines the string that is passed to recursive make calls in
@@ -2821,7 +2870,7 @@ sub perldepend {
# Check for unpropogated config.sh changes. Should never happen.
# We do NOT just update config.h because that is not sufficient.
# An out of date config.h is not fatal but complains loudly!
-$(PERL_INC)/config.h: $(PERL_SRC)/config.sh
+$(PERL_INCDEP)/config.h: $(PERL_SRC)/config.sh
-$(NOECHO) $(ECHO) "Warning: $(PERL_INC)/config.h out of date with $(PERL_SRC)/config.sh"; $(FALSE)
$(PERL_ARCHLIB)/Config.pm: $(PERL_SRC)/config.sh
@@ -2837,7 +2886,7 @@ MAKE_FRAG
push @m, $self->_perl_header_files_fragment("/"); # Directory separator between $(PERL_INC)/header.h
}
- push @m, join(" ", values %{$self->{XS}})." : \$(XSUBPPDEPS)\n" if %{$self->{XS}};
+ push @m, join(" ", sort values %{$self->{XS}})." : \$(XSUBPPDEPS)\n" if %{$self->{XS}};
return join "\n", @m;
}
@@ -2960,11 +3009,11 @@ PPD_PERLVERS
foreach my $prereq (sort keys %prereqs) {
my $name = $prereq;
$name .= '::' unless $name =~ /::/;
- my $version = $prereqs{$prereq}+0; # force numification
+ my $version = $prereqs{$prereq};
my %attrs = ( NAME => $name );
$attrs{VERSION} = $version if $version;
- my $attrs = join " ", map { qq[$_="$attrs{$_}"] } keys %attrs;
+ my $attrs = join " ", map { qq[$_="$attrs{$_}"] } sort keys %attrs;
$ppd_xml .= qq( <REQUIRE $attrs />\n);
}
@@ -3198,6 +3247,17 @@ sub oneliner {
=item quote_literal
+Quotes macro literal value suitable for being used on a command line so
+that when expanded by make, will be received by command as given to
+this method:
+
+ my $quoted = $mm->quote_literal(q{it isn't});
+ # returns:
+ # 'it isn'\''t'
+ print MAKEFILE "target:\n\techo $quoted\n";
+ # when run "make target", will output:
+ # it isn't
+
=cut
sub quote_literal {
@@ -3287,7 +3347,7 @@ 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) $@
+ $(CP) $(MYEXTLIB) "$@"
MAKE_FRAG
my $ar;
@@ -3301,12 +3361,12 @@ MAKE_FRAG
push @m, sprintf <<'MAKE_FRAG', $ar;
$(%s) $(AR_STATIC_ARGS) $@ $(OBJECT) && $(RANLIB) $@
$(CHMOD) $(PERM_RWX) $@
- $(NOECHO) $(ECHO) "$(EXTRALIBS)" > $(INST_ARCHAUTODIR)/extralibs.ld
+ $(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
+ $(NOECHO) $(ECHO) "$(EXTRALIBS)" >> "$(PERL_SRC)/ext.libs"
MAKE_FRAG
join('', @m);
@@ -3420,6 +3480,8 @@ sub test {
elsif (!$tests && -d 't') {
$tests = $self->find_tests;
}
+ # 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,"
@@ -3545,7 +3607,8 @@ sub tool_xsubpp {
}
}
push(@tmdeps, "typemap") if -f "typemap";
- my(@tmargs) = map("-typemap $_", @tmdeps);
+ my @tmargs = map(qq{-typemap "$_"}, @tmdeps);
+ $_ = $self->quote_dep($_) for @tmdeps;
if( exists $self->{XSOPT} ){
unshift( @tmargs, $self->{XSOPT} );
}
@@ -3561,17 +3624,19 @@ sub tool_xsubpp {
$self->{XSPROTOARG} = "" unless defined $self->{XSPROTOARG};
+ my $xsdirdep = $self->quote_dep($xsdir);
+ # -dep for use when dependency not command
return qq{
XSUBPPDIR = $xsdir
-XSUBPP = \$(XSUBPPDIR)\$(DFSEP)xsubpp
+XSUBPP = "\$(XSUBPPDIR)\$(DFSEP)xsubpp"
XSUBPPRUN = \$(PERLRUN) \$(XSUBPP)
XSPROTOARG = $self->{XSPROTOARG}
-XSUBPPDEPS = @tmdeps \$(XSUBPP)
+XSUBPPDEPS = @tmdeps $xsdirdep\$(DFSEP)xsubpp
XSUBPPARGS = @tmargs
XSUBPP_EXTRA_ARGS =
};
-};
+}
=item all_target
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm
index 331cbcd0fa0..45d06b00c52 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm
@@ -15,7 +15,7 @@ BEGIN {
use File::Basename;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
@@ -489,7 +489,7 @@ sub init_tools {
$self->{MOD_INSTALL} ||=
$self->oneliner(<<'CODE', ['-MExtUtils::Install']);
-install([ from_to => {split(' ', <STDIN>)}, verbose => '$(VERBINST)', uninstall_shadows => '$(UNINST)', dir_mode => '$(PERM_DIR)' ]);
+install([ from_to => {split('\|', <STDIN>)}, verbose => '$(VERBINST)', uninstall_shadows => '$(UNINST)', dir_mode => '$(PERM_DIR)' ]);
CODE
$self->{UMASK_NULL} = '! ';
@@ -1176,6 +1176,9 @@ install_perl :: all pure_perl_install doc_perl_install
install_site :: all pure_site_install doc_site_install
$(NOECHO) $(NOOP)
+install_vendor :: all pure_vendor_install doc_vendor_install
+ $(NOECHO) $(NOOP)
+
pure_install :: pure_$(INSTALLDIRS)_install
$(NOECHO) $(NOOP)
@@ -1192,54 +1195,54 @@ doc__install : doc_site_install
pure_perl_install ::
];
push @m,
-q[ $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'read '.File::Spec->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').' '" >.MM_tmp
- $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'write '.File::Spec->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').' '" >>.MM_tmp
+q[ $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'read|'.File::Spec->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').'|'" >.MM_tmp
+ $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'write|'.File::Spec->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').'|'" >>.MM_tmp
] unless $self->{NO_PACKLIST};
push @m,
-q[ $(NOECHO) $(ECHO_N) "$(INST_LIB) $(DESTINSTALLPRIVLIB) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_ARCHLIB) $(DESTINSTALLARCHLIB) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_BIN) $(DESTINSTALLBIN) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_SCRIPT) $(DESTINSTALLSCRIPT) " >>.MM_tmp
+q[ $(NOECHO) $(ECHO_N) "$(INST_LIB)|$(DESTINSTALLPRIVLIB)|" >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_ARCHLIB)|$(DESTINSTALLARCHLIB)|" >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_BIN)|$(DESTINSTALLBIN)|" >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_SCRIPT)|$(DESTINSTALLSCRIPT)|" >>.MM_tmp
$(NOECHO) $(ECHO_N) "$(INST_MAN1DIR) $(DESTINSTALLMAN1DIR) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_MAN3DIR) $(DESTINSTALLMAN3DIR) " >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_MAN3DIR)|$(DESTINSTALLMAN3DIR)" >>.MM_tmp
$(NOECHO) $(MOD_INSTALL) <.MM_tmp
$(NOECHO) $(RM_F) .MM_tmp
- $(NOECHO) $(WARN_IF_OLD_PACKLIST) ].$self->catfile($self->{SITEARCHEXP},'auto',$self->{FULLEXT},'.packlist').q[
+ $(NOECHO) $(WARN_IF_OLD_PACKLIST) "].$self->catfile($self->{SITEARCHEXP},'auto',$self->{FULLEXT},'.packlist').q["
# Likewise
pure_site_install ::
];
push @m,
-q[ $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'read '.File::Spec->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').' '" >.MM_tmp
- $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'write '.File::Spec->catfile('$(DESTINSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').' '" >>.MM_tmp
+q[ $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'read|'.File::Spec->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').'|'" >.MM_tmp
+ $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'write|'.File::Spec->catfile('$(DESTINSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').'|'" >>.MM_tmp
] unless $self->{NO_PACKLIST};
push @m,
-q[ $(NOECHO) $(ECHO_N) "$(INST_LIB) $(DESTINSTALLSITELIB) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_ARCHLIB) $(DESTINSTALLSITEARCH) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_BIN) $(DESTINSTALLSITEBIN) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_SCRIPT) $(DESTINSTALLSCRIPT) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR) " >>.MM_tmp
+q[ $(NOECHO) $(ECHO_N) "$(INST_LIB)|$(DESTINSTALLSITELIB)|" >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_ARCHLIB)|$(DESTINSTALLSITEARCH)|" >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_BIN)|$(DESTINSTALLSITEBIN)|" >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_SCRIPT)|$(DESTINSTALLSCRIPT)|" >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_MAN1DIR)|$(DESTINSTALLSITEMAN1DIR)|" >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_MAN3DIR)|$(DESTINSTALLSITEMAN3DIR)" >>.MM_tmp
$(NOECHO) $(MOD_INSTALL) <.MM_tmp
$(NOECHO) $(RM_F) .MM_tmp
- $(NOECHO) $(WARN_IF_OLD_PACKLIST) ].$self->catfile($self->{PERL_ARCHLIB},'auto',$self->{FULLEXT},'.packlist').q[
+ $(NOECHO) $(WARN_IF_OLD_PACKLIST) "].$self->catfile($self->{PERL_ARCHLIB},'auto',$self->{FULLEXT},'.packlist').q["
pure_vendor_install ::
];
push @m,
-q[ $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'read '.File::Spec->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').' '" >.MM_tmp
- $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'write '.File::Spec->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').' '" >>.MM_tmp
+q[ $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'read|'.File::Spec->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').'|'" >.MM_tmp
+ $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'write|'.File::Spec->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').'|'" >>.MM_tmp
] unless $self->{NO_PACKLIST};
push @m,
-q[ $(NOECHO) $(ECHO_N) "$(INST_LIB) $(DESTINSTALLVENDORLIB) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_BIN) $(DESTINSTALLVENDORBIN) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_SCRIPT) $(DESTINSTALLSCRIPT) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) " >>.MM_tmp
- $(NOECHO) $(ECHO_N) "$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR) " >>.MM_tmp
+q[ $(NOECHO) $(ECHO_N) "$(INST_LIB)|$(DESTINSTALLVENDORLIB)|" >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_ARCHLIB)|$(DESTINSTALLVENDORARCH)|" >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_BIN)|$(DESTINSTALLVENDORBIN)|" >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_SCRIPT)|$(DESTINSTALLSCRIPT)|" >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_MAN1DIR)|$(DESTINSTALLVENDORMAN1DIR)|" >>.MM_tmp
+ $(NOECHO) $(ECHO_N) "$(INST_MAN3DIR)|$(DESTINSTALLVENDORMAN3DIR)" >>.MM_tmp
$(NOECHO) $(MOD_INSTALL) <.MM_tmp
$(NOECHO) $(RM_F) .MM_tmp
@@ -1294,15 +1297,12 @@ uninstall :: uninstall_from_$(INSTALLDIRS)dirs
uninstall_from_perldirs ::
$(NOECHO) $(UNINSTALL) ].$self->catfile($self->{PERL_ARCHLIB},'auto',$self->{FULLEXT},'.packlist').q[
- $(NOECHO) $(ECHO) "Uninstall is now deprecated and makes no actual changes."
- $(NOECHO) $(ECHO) "Please check the list above carefully for errors, and manually remove"
- $(NOECHO) $(ECHO) "the appropriate files. Sorry for the inconvenience."
uninstall_from_sitedirs ::
$(NOECHO) $(UNINSTALL) ].$self->catfile($self->{SITEARCHEXP},'auto',$self->{FULLEXT},'.packlist').q[
- $(NOECHO) $(ECHO) "Uninstall is now deprecated and makes no actual changes."
- $(NOECHO) $(ECHO) "Please check the list above carefully for errors, and manually remove"
- $(NOECHO) $(ECHO) "the appropriate files. Sorry for the inconvenience."
+
+uninstall_from_vendordirs ::
+ $(NOECHO) $(UNINSTALL) ].$self->catfile($self->{VENDORARCHEXP},'auto',$self->{FULLEXT},'.packlist').q[
];
join('',@m);
@@ -1893,6 +1893,7 @@ sub init_linker {
$ENV{$shr} ? $ENV{$shr} : "Sys\$Share:$shr.$Config{'dlext'}";
}
+ $self->{PERL_ARCHIVEDEP} ||= '';
$self->{PERL_ARCHIVE_AFTER} ||= '';
}
@@ -1951,10 +1952,6 @@ sub eliminate_macros {
return '' unless $path;
$self = {} unless ref $self;
- if ($path =~ /\s/) {
- return join ' ', map { $self->eliminate_macros($_) } split /\s+/, $path;
- }
-
my($npath) = unixify($path);
# sometimes unixify will return a string with an off-by-one trailing null
$npath =~ s{\0$}{};
@@ -2013,12 +2010,6 @@ sub fixpath {
$self = bless {}, $self unless ref $self;
my($fixedpath,$prefix,$name);
- if ($path =~ /[ \t]/) {
- return join ' ',
- map { $self->fixpath($_,$force_path) }
- split /[ \t]+/, $path;
- }
-
if ($path =~ m#^\$\([^\)]+\)\Z(?!\n)#s || $path =~ m#[/:>\]]#) {
if ($force_path or $path =~ /(?:DIR\)|\])\Z(?!\n)/) {
$fixedpath = vmspath($self->eliminate_macros($path));
@@ -2065,6 +2056,21 @@ sub os_flavor {
return('VMS');
}
+
+=item is_make_type (override)
+
+None of the make types being checked for is viable on VMS,
+plus our $self->{MAKE} is an unexpanded (and unexpandable)
+macro whose value is known only to the make utility itself.
+
+=cut
+
+sub is_make_type {
+ my($self, $type) = @_;
+ return 0;
+}
+
+
=back
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm
index 648ba5401b6..dfec6d5c9f9 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_VOS;
use strict;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm
index e056d2eacc5..fbd3f49f910 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm
@@ -27,7 +27,7 @@ use ExtUtils::MakeMaker qw( neatvalue );
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
$ENV{EMXSHELL} = 'sh'; # to run `commands`
@@ -128,7 +128,7 @@ sub maybe_command {
=item B<init_DIRFILESEP>
-Using \ for Windows.
+Using \ for Windows, except for "gmake" where it is /.
=cut
@@ -137,7 +137,8 @@ sub init_DIRFILESEP {
# The ^ makes sure its not interpreted as an escape in nmake
$self->{DIRFILESEP} = $self->is_make_type('nmake') ? '^\\' :
- $self->is_make_type('dmake') ? '\\\\'
+ $self->is_make_type('dmake') ? '\\\\' :
+ $self->is_make_type('gmake') ? '/'
: '\\';
}
@@ -154,7 +155,7 @@ sub init_tools {
$self->{DEV_NULL} ||= '> NUL';
$self->{FIXIN} ||= $self->{PERL_CORE} ?
- "\$(PERLRUN) $self->{PERL_SRC}/win32/bin/pl2bat.pl" :
+ "\$(PERLRUN) $self->{PERL_SRC}\\win32\\bin\\pl2bat.pl" :
'pl2bat.bat';
$self->SUPER::init_tools;
@@ -346,27 +347,27 @@ sub dynamic_lib {
OTHERLDFLAGS = '.$otherldflags.'
INST_DYNAMIC_DEP = '.$inst_dynamic_dep.'
-$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVE) $(INST_DYNAMIC_DEP)
+$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(INST_DYNAMIC_DEP)
');
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
+ $(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 });
+ $(LD) -o $@ $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) dll.exp });
} elsif ($BORLAND) {
push(@m,
q{ $(LD) $(LDDLFLAGS) $(OTHERLDFLAGS) }.$ldfrom.q{,$@,,}
.($self->is_make_type('dmake')
- ? q{$(PERL_ARCHIVE:s,/,\,) $(LDLOADLIBS:s,/,\,) }
+ ? q{"$(PERL_ARCHIVE:s,/,\,)" $(LDLOADLIBS:s,/,\,) }
.q{$(MYEXTLIB:s,/,\,),$(EXPORT_LIST:s,/,\,)}
- : q{$(subst /,\,$(PERL_ARCHIVE)) $(subst /,\,$(LDLOADLIBS)) }
+ : q{"$(subst /,\,$(PERL_ARCHIVE))" $(subst /,\,$(LDLOADLIBS)) }
.q{$(subst /,\,$(MYEXTLIB)),$(subst /,\,$(EXPORT_LIST))})
.q{,$(RESFILES)});
} else { # VC
push(@m,
q{ $(LD) -out:$@ $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) }
- .q{$(MYEXTLIB) $(PERL_ARCHIVE) $(LDLOADLIBS) -def:$(EXPORT_LIST)});
+ .q{$(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) -def:$(EXPORT_LIST)});
# Embed the manifest file if it exists
push(@m, q{
@@ -401,6 +402,7 @@ sub init_linker {
my $self = shift;
$self->{PERL_ARCHIVE} = "\$(PERL_INC)\\$Config{libperl}";
+ $self->{PERL_ARCHIVEDEP} = "\$(PERL_INCDEP)\\$Config{libperl}";
$self->{PERL_ARCHIVE_AFTER} = '';
$self->{EXPORT_LIST} = '$(BASEEXT).def';
}
@@ -421,6 +423,29 @@ sub perl_script {
return;
}
+sub can_dep_space {
+ my $self = shift;
+ 1; # with Win32::GetShortPathName
+}
+
+=item quote_dep
+
+=cut
+
+sub quote_dep {
+ my ($self, $arg) = @_;
+ if ($arg =~ / / and not $self->is_make_type('gmake')) {
+ require Win32;
+ $arg = Win32::GetShortPathName($arg);
+ die <<EOF if not defined $arg or $arg =~ / /;
+Tried to use make dependency with space for non-GNU make:
+ '$arg'
+Fallback to short pathname failed.
+EOF
+ return $arg;
+ }
+ return $self->SUPER::quote_dep($arg);
+}
=item xs_o
@@ -622,16 +647,7 @@ PERLTYPE = $self->{PERLTYPE}
}
-sub is_make_type {
- my($self, $type) = @_;
- return !! ($self->make =~ /\b$type(?:\.exe)?$/);
-}
-
1;
__END__
=back
-
-=cut
-
-
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm
index 9c7958058c2..cc37c24140f 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_Win95;
use strict;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MY.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MY.pm
index 37f0e9e29d1..f2114f9c138 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MY.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MY.pm
@@ -3,7 +3,7 @@ package ExtUtils::MY;
use strict;
require ExtUtils::MM;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
our @ISA = qw(ExtUtils::MM);
{
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm
index d2fabf6b282..fe95b2784ad 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm
@@ -7,8 +7,12 @@ BEGIN {require 5.006;}
require Exporter;
use ExtUtils::MakeMaker::Config;
+use ExtUtils::MakeMaker::version; # ensure we always have our fake version.pm
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';
our $Verbose = 0; # exported
our @Parent; # needs to be localized
@@ -17,8 +21,10 @@ our @MM_Sections;
our @Overridable;
my @Prepend_parent;
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 = '6.98';
+our $VERSION = '7.04_01';
$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval]
# Emulate something resembling CVS $Revision$
@@ -28,7 +34,7 @@ $Revision = int $Revision * 10000;
our $Filename = __FILE__; # referenced outside MakeMaker
our @ISA = qw(Exporter);
-our @EXPORT = qw(&WriteMakefile &writeMakefile $Verbose &prompt);
+our @EXPORT = qw(&WriteMakefile $Verbose &prompt);
our @EXPORT_OK = qw($VERSION &neatvalue &mkbootstrap &mksymlists
&WriteEmptyMakefile);
@@ -36,6 +42,7 @@ our @EXPORT_OK = qw($VERSION &neatvalue &mkbootstrap &mksymlists
# purged.
my $Is_VMS = $^O eq 'VMS';
my $Is_Win32 = $^O eq 'MSWin32';
+my $UNDER_CORE = $ENV{PERL_CORE};
full_setup();
@@ -250,14 +257,12 @@ my $PACKNAME = 'PACK000';
sub full_setup {
$Verbose ||= 0;
- my @attrib_help = qw/
+ my @dep_macros = qw/
+ PERL_INCDEP PERL_ARCHLIBDEP PERL_ARCHIVEDEP
+ /;
- AUTHOR ABSTRACT ABSTRACT_FROM BINARY_LOCATION
- C CAPI CCFLAGS CONFIG CONFIGURE DEFINE DIR DISTNAME DISTVNAME
- DL_FUNCS DL_VARS
- EXCLUDE_EXT EXE_FILES FIRST_MAKEFILE
- FULLPERL FULLPERLRUN FULLPERLRUNINST
- FUNCLIST H IMPORTS
+ my @fs_macros = qw/
+ FULLPERL XSUBPPDIR
INST_ARCHLIB INST_SCRIPT INST_BIN INST_LIB INST_MAN1DIR INST_MAN3DIR
INSTALLDIRS
@@ -273,22 +278,41 @@ sub full_setup {
PERL_LIB PERL_ARCHLIB
SITELIBEXP SITEARCHEXP
- INC INCLUDE_EXT LDFROM LIB LIBPERL_A LIBS LICENSE
- LINKTYPE MAKE MAKEAPERL MAKEFILE MAKEFILE_OLD MAN1PODS MAN3PODS MAP_TARGET
+ MAKE LIBPERL_A LIB PERL_SRC PERL_INC
+ PPM_INSTALL_EXEC PPM_UNINSTALL_EXEC
+ PPM_INSTALL_SCRIPT PPM_UNINSTALL_SCRIPT
+ /;
+
+ my @attrib_help = qw/
+
+ AUTHOR ABSTRACT ABSTRACT_FROM BINARY_LOCATION
+ C CAPI CCFLAGS CONFIG CONFIGURE DEFINE DIR DISTNAME DISTVNAME
+ DL_FUNCS DL_VARS
+ EXCLUDE_EXT EXE_FILES FIRST_MAKEFILE
+ FULLPERLRUN FULLPERLRUNINST
+ FUNCLIST H IMPORTS
+
+ INC INCLUDE_EXT LDFROM LIBS LICENSE
+ LINKTYPE MAKEAPERL MAKEFILE MAKEFILE_OLD MAN1PODS MAN3PODS MAP_TARGET
META_ADD META_MERGE MIN_PERL_VERSION BUILD_REQUIRES CONFIGURE_REQUIRES
MYEXTLIB NAME NEEDS_LINKING NOECHO NO_META NO_MYMETA NO_PACKLIST NO_PERLLOCAL
NORECURS NO_VC OBJECT OPTIMIZE PERL_MALLOC_OK PERL PERLMAINCC PERLRUN
PERLRUNINST PERL_CORE
- PERL_SRC PERM_DIR PERM_RW PERM_RWX MAGICXS
- PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE PPM_INSTALL_EXEC PPM_UNINSTALL_EXEC
- PPM_INSTALL_SCRIPT PPM_UNINSTALL_SCRIPT PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ
+ 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
+ MAN1EXT MAN3EXT
+
MACPERL_SRC MACPERL_LIB MACLIBS_68K MACLIBS_PPC MACLIBS_SC MACLIBS_MRC
MACLIBS_ALL_68K MACLIBS_ALL_PPC MACLIBS_SHARED
/;
+ push @attrib_help, @fs_macros;
+ @macro_fsentity{@fs_macros, @dep_macros} = (1) x (@fs_macros+@dep_macros);
+ @macro_dep{@dep_macros} = (1) x @dep_macros;
# IMPORTS is used under OS/2 and Win32
@@ -381,26 +405,6 @@ sub full_setup {
);
}
-sub writeMakefile {
- die <<END;
-
-The extension you are trying to build apparently is rather old and
-most probably outdated. We detect that from the fact, that a
-subroutine "writeMakefile" is called, and this subroutine is not
-supported anymore since about October 1994.
-
-Please contact the author or look into CPAN (details about CPAN can be
-found in the FAQ and at http:/www.perl.com) for a more recent version
-of the extension. If you're really desperate, you can try to change
-the subroutine name from writeMakefile to WriteMakefile and rerun
-'perl Makefile.PL', but you're most probably left alone, when you do
-so.
-
-The MakeMaker team
-
-END
-}
-
sub new {
my($class,$self) = @_;
my($key);
@@ -449,7 +453,7 @@ sub new {
# simulate "use warnings FATAL => 'all'" for vintage perls
die @_;
};
- version->parse( $self->{MIN_PERL_VERSION} )
+ version->new( $self->{MIN_PERL_VERSION} )
};
$self->{MIN_PERL_VERSION} = $normal if defined $normal && !$@;
}
@@ -502,7 +506,7 @@ END
if ( defined $required_version && $required_version =~ /^v?[\d_\.]+$/
|| $required_version !~ /^v?[\d_\.]+$/ ) {
require version;
- my $normal = eval { version->parse( $required_version ) };
+ my $normal = eval { version->new( $required_version ) };
$required_version = $normal if defined $normal;
}
$installed_file = $prereq;
@@ -585,10 +589,7 @@ END
$self->{$key} = $self->{PARENT}{$key};
- unless ($Is_VMS && $key =~ /PERL$/) {
- $self->{$key} = $self->catdir("..",$self->{$key})
- unless $self->file_name_is_absolute($self->{$key});
- } else {
+ if ($Is_VMS && $key =~ /PERL$/) {
# PERL or FULLPERL will be a command verb or even a
# command with an argument instead of a full file
# specification under VMS. So, don't turn the command
@@ -598,6 +599,14 @@ END
$cmd[1] = $self->catfile('[-]',$cmd[1])
unless (@cmd < 2) || $self->file_name_is_absolute($cmd[1]);
$self->{$key} = join(' ', @cmd);
+ } else {
+ my $value = $self->{$key};
+ # not going to test in FS so only stripping start
+ $value =~ s/^"// if $key =~ /PERL$/;
+ $value = $self->catdir("..", $value)
+ unless $self->file_name_is_absolute($value);
+ $value = qq{"$value} if $key =~ /PERL$/;
+ $self->{$key} = $value;
}
}
if ($self->{PARENT}) {
@@ -821,7 +830,7 @@ END
foreach my $key (sort keys %$att){
next if $key eq 'ARGS';
- my ($v) = neatvalue($att->{$key});
+ my $v;
if ($key eq 'PREREQ_PM') {
# CPAN.pm takes prereqs from this field in 'Makefile'
# and does not know about BUILD_REQUIRES
@@ -938,6 +947,7 @@ sub check_manifest {
sub parse_args{
my($self, @args) = @_;
+ @args = map { Encode::decode(locale => $_) } @args if $CAN_DECODE;
foreach (@args) {
unless (m/(.*?)=(.*)/) {
++$Verbose if m/^verb/;
@@ -1162,8 +1172,13 @@ sub flush {
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}}) {
+ my $to_write = "$chunk\n";
+ if (!$CAN_DECODE && $] > 5.008) {
+ utf8::encode $to_write;
+ }
print $fh "$chunk\n"
or die "Can't write to MakeMaker.tmp: $!";
}
@@ -1242,28 +1257,62 @@ sub neatvalue {
push @m, "]";
return join "", @m;
}
- return "$v" unless $t eq 'HASH';
+ return $v unless $t eq 'HASH';
my(@m, $key, $val);
- while (($key,$val) = each %$v){
+ for my $key (sort keys %$v) {
last unless defined $key; # cautious programming in case (undef,undef) is true
- push(@m,"$key=>".neatvalue($val)) ;
+ push @m,"$key=>".neatvalue($v->{$key});
}
return "{ ".join(', ',@m)." }";
}
+sub _find_magic_vstring {
+ my $value = shift;
+ return $value if $UNDER_CORE;
+ my $tvalue = '';
+ require B;
+ my $sv = B::svref_2object(\$value);
+ my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef;
+ while ( $magic ) {
+ if ( $magic->TYPE eq 'V' ) {
+ $tvalue = $magic->PTR;
+ $tvalue =~ s/^v?(.+)$/v$1/;
+ last;
+ }
+ else {
+ $magic = $magic->MOREMAGIC;
+ }
+ }
+ 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 $version = $reqs->{$module};
-
- if( !defined $version or $version !~ /^v?[\d_\.]+$/ ) {
- carp "Unparsable version '$version' for prerequisite $module";
+ 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;
+ }
}
}
@@ -1318,15 +1367,19 @@ won't have to face the possibly bewildering errors resulting from
using the wrong one.
On POSIX systems, that program will likely be GNU Make; on Microsoft
-Windows, it will be either Microsoft NMake or DMake. Note that this
-module does not support generating Makefiles for GNU Make on Windows.
+Windows, it will be either Microsoft NMake, DMake or GNU Make.
See the section on the L</"MAKE"> parameter for details.
-MakeMaker is object oriented. Each directory below the current
+ExtUtils::MakeMaker (EUMM) is object oriented. Each directory below the current
directory that contains a Makefile.PL is treated as a separate
object. This makes it possible to write an unlimited number of
Makefiles with a single invocation of WriteMakefile().
+All inputs to WriteMakefile are Unicode characters, not just octets. EUMM
+seeks to handle all of these correctly. It is currently still not possible
+to portably use Unicode characters in module names, because this requires
+Perl to handle Unicode filenames, which is not yet the case on Windows.
+
=head2 How To Write A Makefile.PL
See L<ExtUtils::MakeMaker::Tutorial>.
@@ -1375,6 +1428,11 @@ It is possible to use globbing with this mechanism.
make test TEST_FILES='t/foobar.t t/dagobah*.t'
+Windows users who are using C<nmake> should note that due to a bug in C<nmake>,
+when specifying C<TEST_FILES> you must use back-slashes instead of forward-slashes.
+
+ nmake test TEST_FILES='t\foobar.t t\dagobah*.t'
+
=head2 make testdb
A useful variation of the above is the target C<testdb>. It runs the
@@ -2111,7 +2169,8 @@ linkext below).
=item MAGICXS
-When this is set to C<1>, C<OBJECT> will be automagically derived from C<XS>.
+When this is set to C<1>, C<OBJECT> will be automagically derived from
+C<O_FILES>.
=item MAKE
@@ -2195,6 +2254,20 @@ own. META_MERGE will merge its value with the default.
Unless you want to override the defaults, prefer META_MERGE so as to
get the advantage of any future defaults.
+Where prereqs are concerned, if META_MERGE is used, prerequisites are merged
+with their counterpart C<WriteMakefile()> argument
+(PREREQ_PM is merged into {prereqs}{runtime}{requires},
+BUILD_REQUIRES into C<{prereqs}{build}{requires}>,
+CONFIGURE_REQUIRES into C<{prereqs}{configure}{requires}>,
+and TEST_REQUIRES into C<{prereqs}{test}{requires})>.
+When prereqs are specified with META_ADD, the only prerequisites added to the
+file come from the metadata, not C<WriteMakefile()> arguments.
+
+Note that these configuration options are only used for generating F<META.yml>
+and F<META.json> -- they are NOT used for F<MYMETA.yml> and F<MYMETA.json>.
+Therefore data in these fields should NOT be used for dynamic (user-side)
+configuration.
+
By default CPAN Meta specification C<1.4> is used. In order to use
CPAN Meta specification C<2.0>, indicate with C<meta-spec> the version
you want to use.
@@ -2232,9 +2305,9 @@ name of the library (see SDBM_File)
The package representing the distribution. For example, C<Test::More>
or C<ExtUtils::MakeMaker>. It will be used to derive information about
-the distribution such as the L<DISTNAME>, installation locations
+the distribution such as the L</DISTNAME>, installation locations
within the Perl library and where XS files will be looked for by
-default (see L<XS>).
+default (see L</XS>).
C<NAME> I<must> be a valid Perl package name and it I<must> have an
associated C<.pm> file. For example, C<Foo::Bar> is a valid C<NAME>
@@ -3092,6 +3165,12 @@ If no $default is provided an empty string will be used instead.
=back
+=head2 Supported versions of Perl
+
+Please note that while this module works on Perl 5.6, it is no longer
+being routinely tested on 5.6 - the earliest Perl version being routinely
+tested, and expressly supported, is 5.8.1. However, patches to repair
+any breakage on 5.6 are still being accepted.
=head1 ENVIRONMENT
@@ -3130,6 +3209,13 @@ help you setup your distribution.
L<CPAN::Meta> and L<CPAN::Meta::Spec> explain CPAN Meta files in detail.
+L<File::ShareDir::Install> makes it easy to install static, sometimes
+also referred to as 'shared' files. L<File::ShareDir> helps accessing
+the shared files after installation.
+
+L<Dist::Zilla> makes it easy for the module author to create MakeMaker-based
+distributions with lots of bells and whistles.
+
=head1 AUTHORS
Andy Dougherty C<doughera@lafayette.edu>, Andreas KE<ouml>nig
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm
index 5c703f08080..9001cc62685 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm
@@ -2,7 +2,7 @@ package ExtUtils::MakeMaker::Config;
use strict;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
use Config ();
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod
index e5acb6a0706..d2b4ab354f5 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod
@@ -1,6 +1,6 @@
package ExtUtils::MakeMaker::FAQ;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
1;
__END__
diff --git a/Master/tlpkg/tlperl/lib/Encode/Locale.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm
index c901c62a07f..23d0c6ecfe9 100644
--- a/Master/tlpkg/tlperl/lib/Encode/Locale.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm
@@ -1,7 +1,7 @@
-package Encode::Locale;
+package ExtUtils::MakeMaker::Locale;
use strict;
-our $VERSION = "1.04";
+our $VERSION = "7.04_01";
use base 'Exporter';
our @EXPORT_OK = qw(
@@ -182,7 +182,7 @@ __END__
=head1 NAME
-Encode::Locale - Determine the locale encoding
+ExtUtils::MakeMaker::Locale - bundled Encode::Locale
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod
index 5d43d40c39f..9cbdd9b2ec5 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod
@@ -1,6 +1,6 @@
package ExtUtils::MakeMaker::Tutorial;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm
new file mode 100644
index 00000000000..3269f444415
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm
@@ -0,0 +1,55 @@
+#--------------------------------------------------------------------------#
+# This is a modified copy of version.pm 0.9909, bundled exclusively for
+# use by ExtUtils::Makemaker and its dependencies to bootstrap when
+# version.pm is not available. It should not be used by ordinary modules.
+#
+# When loaded, it will try to load version.pm. If that fails, it will load
+# ExtUtils::MakeMaker::version::vpp and alias various *version functions
+# to functions in that module. It will also override UNIVERSAL::VERSION.
+#--------------------------------------------------------------------------#
+
+package ExtUtils::MakeMaker::version;
+
+use 5.006002;
+use strict;
+
+use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
+
+$VERSION = '7.04_01';
+$CLASS = 'version';
+
+{
+ local $SIG{'__DIE__'};
+ eval "use version";
+ if ( $@ ) { # don't have any version.pm installed
+ eval "use ExtUtils::MakeMaker::version::vpp";
+ die "$@" if ( $@ );
+ local $^W;
+ delete $INC{'version.pm'};
+ $INC{'version.pm'} = $INC{'ExtUtils/MakeMaker/version.pm'};
+ push @version::ISA, "ExtUtils::MakeMaker::version::vpp";
+ $version::VERSION = $VERSION;
+ *version::qv = \&ExtUtils::MakeMaker::version::vpp::qv;
+ *version::declare = \&ExtUtils::MakeMaker::version::vpp::declare;
+ *version::_VERSION = \&ExtUtils::MakeMaker::version::vpp::_VERSION;
+ *version::vcmp = \&ExtUtils::MakeMaker::version::vpp::vcmp;
+ *version::new = \&ExtUtils::MakeMaker::version::vpp::new;
+ if ($] >= 5.009000) {
+ no strict 'refs';
+ *version::stringify = \&ExtUtils::MakeMaker::version::vpp::stringify;
+ *{'version::(""'} = \&ExtUtils::MakeMaker::version::vpp::stringify;
+ *{'version::(<=>'} = \&ExtUtils::MakeMaker::version::vpp::vcmp;
+ *version::parse = \&ExtUtils::MakeMaker::version::vpp::parse;
+ }
+ require ExtUtils::MakeMaker::version::regex;
+ *version::is_lax = \&ExtUtils::MakeMaker::version::regex::is_lax;
+ *version::is_strict = \&ExtUtils::MakeMaker::version::regex::is_strict;
+ *LAX = \$ExtUtils::MakeMaker::version::regex::LAX;
+ *STRICT = \$ExtUtils::MakeMaker::version::regex::STRICT;
+ }
+ elsif ( ! version->can('is_qv') ) {
+ *version::is_qv = sub { exists $_[0]->{qv} };
+ }
+}
+
+1;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/regex.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/regex.pm
new file mode 100644
index 00000000000..a134a00a42a
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/regex.pm
@@ -0,0 +1,123 @@
+#--------------------------------------------------------------------------#
+# This is a modified copy of version.pm 0.9909, bundled exclusively for
+# use by ExtUtils::Makemaker and its dependencies to bootstrap when
+# version.pm is not available. It should not be used by ordinary modules.
+#--------------------------------------------------------------------------#
+
+package ExtUtils::MakeMaker::version::regex;
+
+use strict;
+
+use vars qw($VERSION $CLASS $STRICT $LAX);
+
+$VERSION = '7.04_01';
+
+#--------------------------------------------------------------------------#
+# Version regexp components
+#--------------------------------------------------------------------------#
+
+# Fraction part of a decimal version number. This is a common part of
+# both strict and lax decimal versions
+
+my $FRACTION_PART = qr/\.[0-9]+/;
+
+# First part of either decimal or dotted-decimal strict version number.
+# Unsigned integer with no leading zeroes (except for zero itself) to
+# avoid confusion with octal.
+
+my $STRICT_INTEGER_PART = qr/0|[1-9][0-9]*/;
+
+# First part of either decimal or dotted-decimal lax version number.
+# Unsigned integer, but allowing leading zeros. Always interpreted
+# as decimal. However, some forms of the resulting syntax give odd
+# results if used as ordinary Perl expressions, due to how perl treats
+# octals. E.g.
+# version->new("010" ) == 10
+# version->new( 010 ) == 8
+# version->new( 010.2) == 82 # "8" . "2"
+
+my $LAX_INTEGER_PART = qr/[0-9]+/;
+
+# Second and subsequent part of a strict dotted-decimal version number.
+# Leading zeroes are permitted, and the number is always decimal.
+# Limited to three digits to avoid overflow when converting to decimal
+# form and also avoid problematic style with excessive leading zeroes.
+
+my $STRICT_DOTTED_DECIMAL_PART = qr/\.[0-9]{1,3}/;
+
+# Second and subsequent part of a lax dotted-decimal version number.
+# Leading zeroes are permitted, and the number is always decimal. No
+# limit on the numerical value or number of digits, so there is the
+# possibility of overflow when converting to decimal form.
+
+my $LAX_DOTTED_DECIMAL_PART = qr/\.[0-9]+/;
+
+# Alpha suffix part of lax version number syntax. Acts like a
+# dotted-decimal part.
+
+my $LAX_ALPHA_PART = qr/_[0-9]+/;
+
+#--------------------------------------------------------------------------#
+# Strict version regexp definitions
+#--------------------------------------------------------------------------#
+
+# Strict decimal version number.
+
+my $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 =
+ 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 =
+ qr/ $STRICT_DECIMAL_VERSION | $STRICT_DOTTED_DECIMAL_VERSION /x;
+
+#--------------------------------------------------------------------------#
+# Lax version regexp definitions
+#--------------------------------------------------------------------------#
+
+# Lax decimal version number. Just like the strict one except for
+# 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? )?
+ |
+ $FRACTION_PART $LAX_ALPHA_PART?
+ /x;
+
+# Lax dotted-decimal version number. Distinguished by having either
+# leading "v" or at least three non-alpha parts. Alpha part is only
+# permitted if there are at least two non-alpha parts. Strangely
+# 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 =
+ qr/
+ v $LAX_INTEGER_PART (?: $LAX_DOTTED_DECIMAL_PART+ $LAX_ALPHA_PART? )?
+ |
+ $LAX_INTEGER_PART? $LAX_DOTTED_DECIMAL_PART{2,} $LAX_ALPHA_PART?
+ /x;
+
+# Complete lax version number syntax -- should generally be used
+# anchored: qr/ \A $LAX \z /x
+#
+# 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;
+
+#--------------------------------------------------------------------------#
+
+# Preloaded methods go here.
+sub is_strict { defined $_[0] && $_[0] =~ qr/ \A $STRICT \z /x }
+sub is_lax { defined $_[0] && $_[0] =~ qr/ \A $LAX \z /x }
+
+1;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/vpp.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/vpp.pm
new file mode 100644
index 00000000000..34bbd01bf1f
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/vpp.pm
@@ -0,0 +1,1028 @@
+#--------------------------------------------------------------------------#
+# This is a modified copy of version.pm 0.9909, bundled exclusively for
+# use by ExtUtils::Makemaker and its dependencies to bootstrap when
+# version.pm is not available. It should not be used by ordinary modules.
+#--------------------------------------------------------------------------#
+
+package ExtUtils::MakeMaker::charstar;
+# a little helper class to emulate C char* semantics in Perl
+# so that prescan_version can use the same code as in C
+
+use overload (
+ '""' => \&thischar,
+ '0+' => \&thischar,
+ '++' => \&increment,
+ '--' => \&decrement,
+ '+' => \&plus,
+ '-' => \&minus,
+ '*' => \&multiply,
+ 'cmp' => \&cmp,
+ '<=>' => \&spaceship,
+ 'bool' => \&thischar,
+ '=' => \&clone,
+);
+
+sub new {
+ my ($self, $string) = @_;
+ my $class = ref($self) || $self;
+
+ my $obj = {
+ string => [split(//,$string)],
+ current => 0,
+ };
+ return bless $obj, $class;
+}
+
+sub thischar {
+ my ($self) = @_;
+ my $last = $#{$self->{string}};
+ my $curr = $self->{current};
+ if ($curr >= 0 && $curr <= $last) {
+ return $self->{string}->[$curr];
+ }
+ else {
+ return '';
+ }
+}
+
+sub increment {
+ my ($self) = @_;
+ $self->{current}++;
+}
+
+sub decrement {
+ my ($self) = @_;
+ $self->{current}--;
+}
+
+sub plus {
+ my ($self, $offset) = @_;
+ my $rself = $self->clone;
+ $rself->{current} += $offset;
+ return $rself;
+}
+
+sub minus {
+ my ($self, $offset) = @_;
+ my $rself = $self->clone;
+ $rself->{current} -= $offset;
+ return $rself;
+}
+
+sub multiply {
+ my ($left, $right, $swapped) = @_;
+ my $char = $left->thischar();
+ return $char * $right;
+}
+
+sub spaceship {
+ my ($left, $right, $swapped) = @_;
+ unless (ref($right)) { # not an object already
+ $right = $left->new($right);
+ }
+ return $left->{current} <=> $right->{current};
+}
+
+sub cmp {
+ my ($left, $right, $swapped) = @_;
+ unless (ref($right)) { # not an object already
+ if (length($right) == 1) { # comparing single character only
+ return $left->thischar cmp $right;
+ }
+ $right = $left->new($right);
+ }
+ return $left->currstr cmp $right->currstr;
+}
+
+sub bool {
+ my ($self) = @_;
+ my $char = $self->thischar;
+ return ($char ne '');
+}
+
+sub clone {
+ my ($left, $right, $swapped) = @_;
+ $right = {
+ string => [@{$left->{string}}],
+ current => $left->{current},
+ };
+ return bless $right, ref($left);
+}
+
+sub currstr {
+ my ($self, $s) = @_;
+ my $curr = $self->{current};
+ my $last = $#{$self->{string}};
+ if (defined($s) && $s->{current} < $last) {
+ $last = $s->{current};
+ }
+
+ my $string = join('', @{$self->{string}}[$curr..$last]);
+ return $string;
+}
+
+package ExtUtils::MakeMaker::version::vpp;
+
+use 5.006002;
+use strict;
+
+use Config;
+use vars qw($VERSION $CLASS @ISA $LAX $STRICT);
+$VERSION = '7.04_01';
+$CLASS = 'ExtUtils::MakeMaker::version::vpp';
+
+require ExtUtils::MakeMaker::version::regex;
+*ExtUtils::MakeMaker::version::vpp::is_strict = \&ExtUtils::MakeMaker::version::regex::is_strict;
+*ExtUtils::MakeMaker::version::vpp::is_lax = \&ExtUtils::MakeMaker::version::regex::is_lax;
+*LAX = \$ExtUtils::MakeMaker::version::regex::LAX;
+*STRICT = \$ExtUtils::MakeMaker::version::regex::STRICT;
+
+use overload (
+ '""' => \&stringify,
+ '0+' => \&numify,
+ 'cmp' => \&vcmp,
+ '<=>' => \&vcmp,
+ 'bool' => \&vbool,
+ '+' => \&vnoop,
+ '-' => \&vnoop,
+ '*' => \&vnoop,
+ '/' => \&vnoop,
+ '+=' => \&vnoop,
+ '-=' => \&vnoop,
+ '*=' => \&vnoop,
+ '/=' => \&vnoop,
+ 'abs' => \&vnoop,
+);
+
+eval "use warnings";
+if ($@) {
+ eval '
+ package
+ warnings;
+ sub enabled {return $^W;}
+ 1;
+ ';
+}
+
+sub import {
+ no strict 'refs';
+ my ($class) = shift;
+
+ # Set up any derived class
+ unless ($class eq $CLASS) {
+ local $^W;
+ *{$class.'::declare'} = \&{$CLASS.'::declare'};
+ *{$class.'::qv'} = \&{$CLASS.'::qv'};
+ }
+
+ my %args;
+ if (@_) { # any remaining terms are arguments
+ map { $args{$_} = 1 } @_
+ }
+ else { # no parameters at all on use line
+ %args =
+ (
+ qv => 1,
+ 'UNIVERSAL::VERSION' => 1,
+ );
+ }
+
+ my $callpkg = caller();
+
+ if (exists($args{declare})) {
+ *{$callpkg.'::declare'} =
+ sub {return $class->declare(shift) }
+ unless defined(&{$callpkg.'::declare'});
+ }
+
+ if (exists($args{qv})) {
+ *{$callpkg.'::qv'} =
+ sub {return $class->qv(shift) }
+ unless defined(&{$callpkg.'::qv'});
+ }
+
+ if (exists($args{'UNIVERSAL::VERSION'})) {
+ local $^W;
+ *UNIVERSAL::VERSION
+ = \&{$CLASS.'::_VERSION'};
+ }
+
+ if (exists($args{'VERSION'})) {
+ *{$callpkg.'::VERSION'} = \&{$CLASS.'::_VERSION'};
+ }
+
+ if (exists($args{'is_strict'})) {
+ *{$callpkg.'::is_strict'} = \&{$CLASS.'::is_strict'}
+ unless defined(&{$callpkg.'::is_strict'});
+ }
+
+ if (exists($args{'is_lax'})) {
+ *{$callpkg.'::is_lax'} = \&{$CLASS.'::is_lax'}
+ unless defined(&{$callpkg.'::is_lax'});
+ }
+}
+
+my $VERSION_MAX = 0x7FFFFFFF;
+
+# implement prescan_version as closely to the C version as possible
+use constant TRUE => 1;
+use constant FALSE => 0;
+
+sub isDIGIT {
+ my ($char) = shift->thischar();
+ return ($char =~ /\d/);
+}
+
+sub isALPHA {
+ my ($char) = shift->thischar();
+ return ($char =~ /[a-zA-Z]/);
+}
+
+sub isSPACE {
+ my ($char) = shift->thischar();
+ return ($char =~ /\s/);
+}
+
+sub BADVERSION {
+ my ($s, $errstr, $error) = @_;
+ if ($errstr) {
+ $$errstr = $error;
+ }
+ return $s;
+}
+
+sub prescan_version {
+ my ($s, $strict, $errstr, $sqv, $ssaw_decimal, $swidth, $salpha) = @_;
+ my $qv = defined $sqv ? $$sqv : FALSE;
+ my $saw_decimal = defined $ssaw_decimal ? $$ssaw_decimal : 0;
+ my $width = defined $swidth ? $$swidth : 3;
+ my $alpha = defined $salpha ? $$salpha : FALSE;
+
+ my $d = $s;
+
+ if ($qv && isDIGIT($d)) {
+ goto dotted_decimal_version;
+ }
+
+ if ($d eq 'v') { # explicit v-string
+ $d++;
+ if (isDIGIT($d)) {
+ $qv = TRUE;
+ }
+ else { # degenerate v-string
+ # requires v1.2.3
+ return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)");
+ }
+
+dotted_decimal_version:
+ if ($strict && $d eq '0' && isDIGIT($d+1)) {
+ # no leading zeros allowed
+ return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)");
+ }
+
+ while (isDIGIT($d)) { # integer part
+ $d++;
+ }
+
+ if ($d eq '.')
+ {
+ $saw_decimal++;
+ $d++; # decimal point
+ }
+ else
+ {
+ if ($strict) {
+ # require v1.2.3
+ return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)");
+ }
+ else {
+ goto version_prescan_finish;
+ }
+ }
+
+ {
+ my $i = 0;
+ my $j = 0;
+ while (isDIGIT($d)) { # just keep reading
+ $i++;
+ while (isDIGIT($d)) {
+ $d++; $j++;
+ # maximum 3 digits between decimal
+ if ($strict && $j > 3) {
+ return BADVERSION($s,$errstr,"Invalid version format (maximum 3 digits between decimals)");
+ }
+ }
+ if ($d eq '_') {
+ if ($strict) {
+ return BADVERSION($s,$errstr,"Invalid version format (no underscores)");
+ }
+ if ( $alpha ) {
+ return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)");
+ }
+ $d++;
+ $alpha = TRUE;
+ }
+ elsif ($d eq '.') {
+ if ($alpha) {
+ return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)");
+ }
+ $saw_decimal++;
+ $d++;
+ }
+ elsif (!isDIGIT($d)) {
+ last;
+ }
+ $j = 0;
+ }
+
+ if ($strict && $i < 2) {
+ # requires v1.2.3
+ return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)");
+ }
+ }
+ } # end if dotted-decimal
+ else
+ { # decimal versions
+ my $j = 0;
+ # special $strict case for leading '.' or '0'
+ if ($strict) {
+ if ($d eq '.') {
+ return BADVERSION($s,$errstr,"Invalid version format (0 before decimal required)");
+ }
+ if ($d eq '0' && isDIGIT($d+1)) {
+ return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)");
+ }
+ }
+
+ # and we never support negative version numbers
+ if ($d eq '-') {
+ return BADVERSION($s,$errstr,"Invalid version format (negative version number)");
+ }
+
+ # consume all of the integer part
+ while (isDIGIT($d)) {
+ $d++;
+ }
+
+ # look for a fractional part
+ if ($d eq '.') {
+ # we found it, so consume it
+ $saw_decimal++;
+ $d++;
+ }
+ elsif (!$d || $d eq ';' || isSPACE($d) || $d eq '}') {
+ if ( $d == $s ) {
+ # found nothing
+ return BADVERSION($s,$errstr,"Invalid version format (version required)");
+ }
+ # found just an integer
+ goto version_prescan_finish;
+ }
+ elsif ( $d == $s ) {
+ # didn't find either integer or period
+ return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)");
+ }
+ elsif ($d eq '_') {
+ # underscore can't come after integer part
+ if ($strict) {
+ return BADVERSION($s,$errstr,"Invalid version format (no underscores)");
+ }
+ elsif (isDIGIT($d+1)) {
+ return BADVERSION($s,$errstr,"Invalid version format (alpha without decimal)");
+ }
+ else {
+ return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)");
+ }
+ }
+ elsif ($d) {
+ # anything else after integer part is just invalid data
+ return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)");
+ }
+
+ # scan the fractional part after the decimal point
+ if ($d && !isDIGIT($d) && ($strict || ! ($d eq ';' || isSPACE($d) || $d eq '}') )) {
+ # $strict or lax-but-not-the-end
+ return BADVERSION($s,$errstr,"Invalid version format (fractional part required)");
+ }
+
+ while (isDIGIT($d)) {
+ $d++; $j++;
+ if ($d eq '.' && isDIGIT($d-1)) {
+ if ($alpha) {
+ return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)");
+ }
+ if ($strict) {
+ return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions must begin with 'v')");
+ }
+ $d = $s; # start all over again
+ $qv = TRUE;
+ goto dotted_decimal_version;
+ }
+ if ($d eq '_') {
+ if ($strict) {
+ return BADVERSION($s,$errstr,"Invalid version format (no underscores)");
+ }
+ if ( $alpha ) {
+ return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)");
+ }
+ if ( ! isDIGIT($d+1) ) {
+ return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)");
+ }
+ $width = $j;
+ $d++;
+ $alpha = TRUE;
+ }
+ }
+ }
+
+version_prescan_finish:
+ while (isSPACE($d)) {
+ $d++;
+ }
+
+ if ($d && !isDIGIT($d) && (! ($d eq ';' || $d eq '}') )) {
+ # trailing non-numeric data
+ return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)");
+ }
+
+ if (defined $sqv) {
+ $$sqv = $qv;
+ }
+ if (defined $swidth) {
+ $$swidth = $width;
+ }
+ if (defined $ssaw_decimal) {
+ $$ssaw_decimal = $saw_decimal;
+ }
+ if (defined $salpha) {
+ $$salpha = $alpha;
+ }
+ return $d;
+}
+
+sub scan_version {
+ my ($s, $rv, $qv) = @_;
+ my $start;
+ my $pos;
+ my $last;
+ my $errstr;
+ my $saw_decimal = 0;
+ my $width = 3;
+ my $alpha = FALSE;
+ my $vinf = FALSE;
+ my @av;
+
+ $s = new ExtUtils::MakeMaker::charstar $s;
+
+ while (isSPACE($s)) { # leading whitespace is OK
+ $s++;
+ }
+
+ $last = prescan_version($s, FALSE, \$errstr, \$qv, \$saw_decimal,
+ \$width, \$alpha);
+
+ if ($errstr) {
+ # 'undef' is a special case and not an error
+ if ( $s ne 'undef') {
+ require Carp;
+ Carp::croak($errstr);
+ }
+ }
+
+ $start = $s;
+ if ($s eq 'v') {
+ $s++;
+ }
+ $pos = $s;
+
+ if ( $qv ) {
+ $$rv->{qv} = $qv;
+ }
+ if ( $alpha ) {
+ $$rv->{alpha} = $alpha;
+ }
+ if ( !$qv && $width < 3 ) {
+ $$rv->{width} = $width;
+ }
+
+ while (isDIGIT($pos)) {
+ $pos++;
+ }
+ if (!isALPHA($pos)) {
+ my $rev;
+
+ for (;;) {
+ $rev = 0;
+ {
+ # this is atoi() that delimits on underscores
+ my $end = $pos;
+ my $mult = 1;
+ my $orev;
+
+ # the following if() will only be true after the decimal
+ # point of a version originally created with a bare
+ # floating point number, i.e. not quoted in any way
+ #
+ if ( !$qv && $s > $start && $saw_decimal == 1 ) {
+ $mult *= 100;
+ while ( $s < $end ) {
+ $orev = $rev;
+ $rev += $s * $mult;
+ $mult /= 10;
+ if ( (abs($orev) > abs($rev))
+ || (abs($rev) > $VERSION_MAX )) {
+ warn("Integer overflow in version %d",
+ $VERSION_MAX);
+ $s = $end - 1;
+ $rev = $VERSION_MAX;
+ $vinf = 1;
+ }
+ $s++;
+ if ( $s eq '_' ) {
+ $s++;
+ }
+ }
+ }
+ else {
+ while (--$end >= $s) {
+ $orev = $rev;
+ $rev += $end * $mult;
+ $mult *= 10;
+ if ( (abs($orev) > abs($rev))
+ || (abs($rev) > $VERSION_MAX )) {
+ warn("Integer overflow in version");
+ $end = $s - 1;
+ $rev = $VERSION_MAX;
+ $vinf = 1;
+ }
+ }
+ }
+ }
+
+ # Append revision
+ push @av, $rev;
+ if ( $vinf ) {
+ $s = $last;
+ last;
+ }
+ elsif ( $pos eq '.' ) {
+ $s = ++$pos;
+ }
+ elsif ( $pos eq '_' && isDIGIT($pos+1) ) {
+ $s = ++$pos;
+ }
+ elsif ( $pos eq ',' && isDIGIT($pos+1) ) {
+ $s = ++$pos;
+ }
+ elsif ( isDIGIT($pos) ) {
+ $s = $pos;
+ }
+ else {
+ $s = $pos;
+ last;
+ }
+ if ( $qv ) {
+ while ( isDIGIT($pos) ) {
+ $pos++;
+ }
+ }
+ else {
+ my $digits = 0;
+ while ( ( isDIGIT($pos) || $pos eq '_' ) && $digits < 3 ) {
+ if ( $pos ne '_' ) {
+ $digits++;
+ }
+ $pos++;
+ }
+ }
+ }
+ }
+ if ( $qv ) { # quoted versions always get at least three terms
+ my $len = $#av;
+ # This for loop appears to trigger a compiler bug on OS X, as it
+ # loops infinitely. Yes, len is negative. No, it makes no sense.
+ # Compiler in question is:
+ # gcc version 3.3 20030304 (Apple Computer, Inc. build 1640)
+ # for ( len = 2 - len; len > 0; len-- )
+ # av_push(MUTABLE_AV(sv), newSViv(0));
+ #
+ $len = 2 - $len;
+ while ($len-- > 0) {
+ push @av, 0;
+ }
+ }
+
+ # need to save off the current version string for later
+ if ( $vinf ) {
+ $$rv->{original} = "v.Inf";
+ $$rv->{vinf} = 1;
+ }
+ elsif ( $s > $start ) {
+ $$rv->{original} = $start->currstr($s);
+ if ( $qv && $saw_decimal == 1 && $start ne 'v' ) {
+ # need to insert a v to be consistent
+ $$rv->{original} = 'v' . $$rv->{original};
+ }
+ }
+ else {
+ $$rv->{original} = '0';
+ push(@av, 0);
+ }
+
+ # And finally, store the AV in the hash
+ $$rv->{version} = \@av;
+
+ # fix RT#19517 - special case 'undef' as string
+ if ($s eq 'undef') {
+ $s += 5;
+ }
+
+ return $s;
+}
+
+sub new {
+ my $class = shift;
+ unless (defined $class or $#_ > 1) {
+ require Carp;
+ Carp::croak('Usage: version::new(class, version)');
+ }
+
+ my $self = bless ({}, ref ($class) || $class);
+ my $qv = FALSE;
+
+ if ( $#_ == 1 ) { # must be CVS-style
+ $qv = TRUE;
+ }
+ my $value = pop; # always going to be the last element
+
+ if ( ref($value) && eval('$value->isa("version")') ) {
+ # Can copy the elements directly
+ $self->{version} = [ @{$value->{version} } ];
+ $self->{qv} = 1 if $value->{qv};
+ $self->{alpha} = 1 if $value->{alpha};
+ $self->{original} = ''.$value->{original};
+ return $self;
+ }
+
+ if ( not defined $value or $value =~ /^undef$/ ) {
+ # RT #19517 - special case for undef comparison
+ # or someone forgot to pass a value
+ push @{$self->{version}}, 0;
+ $self->{original} = "0";
+ return ($self);
+ }
+
+
+ if (ref($value) =~ m/ARRAY|HASH/) {
+ require Carp;
+ Carp::croak("Invalid version format (non-numeric data)");
+ }
+
+ $value = _un_vstring($value);
+
+ if ($Config{d_setlocale} && eval { require POSIX } ) {
+ require locale;
+ my $currlocale = POSIX::setlocale(&POSIX::LC_ALL);
+
+ # if the current locale uses commas for decimal points, we
+ # just replace commas with decimal places, rather than changing
+ # locales
+ if ( POSIX::localeconv()->{decimal_point} eq ',' ) {
+ $value =~ tr/,/./;
+ }
+ }
+
+ # exponential notation
+ if ( $value =~ /\d+.?\d*e[-+]?\d+/ ) {
+ $value = sprintf("%.9f",$value);
+ $value =~ s/(0+)$//; # trim trailing zeros
+ }
+
+ my $s = scan_version($value, \$self, $qv);
+
+ if ($s) { # must be something left over
+ warn("Version string '%s' contains invalid data; "
+ ."ignoring: '%s'", $value, $s);
+ }
+
+ return ($self);
+}
+
+*parse = \&new;
+
+sub numify {
+ my ($self) = @_;
+ unless (_verify($self)) {
+ require Carp;
+ Carp::croak("Invalid version object");
+ }
+ my $width = $self->{width} || 3;
+ my $alpha = $self->{alpha} || "";
+ my $len = $#{$self->{version}};
+ my $digit = $self->{version}[0];
+ my $string = sprintf("%d.", $digit );
+
+ for ( my $i = 1 ; $i < $len ; $i++ ) {
+ $digit = $self->{version}[$i];
+ if ( $width < 3 ) {
+ my $denom = 10**(3-$width);
+ my $quot = int($digit/$denom);
+ my $rem = $digit - ($quot * $denom);
+ $string .= sprintf("%0".$width."d_%d", $quot, $rem);
+ }
+ else {
+ $string .= sprintf("%03d", $digit);
+ }
+ }
+
+ if ( $len > 0 ) {
+ $digit = $self->{version}[$len];
+ if ( $alpha && $width == 3 ) {
+ $string .= "_";
+ }
+ $string .= sprintf("%0".$width."d", $digit);
+ }
+ else # $len = 0
+ {
+ $string .= sprintf("000");
+ }
+
+ return $string;
+}
+
+sub normal {
+ my ($self) = @_;
+ unless (_verify($self)) {
+ require Carp;
+ Carp::croak("Invalid version object");
+ }
+ my $alpha = $self->{alpha} || "";
+ my $len = $#{$self->{version}};
+ my $digit = $self->{version}[0];
+ my $string = sprintf("v%d", $digit );
+
+ for ( my $i = 1 ; $i < $len ; $i++ ) {
+ $digit = $self->{version}[$i];
+ $string .= sprintf(".%d", $digit);
+ }
+
+ if ( $len > 0 ) {
+ $digit = $self->{version}[$len];
+ if ( $alpha ) {
+ $string .= sprintf("_%0d", $digit);
+ }
+ else {
+ $string .= sprintf(".%0d", $digit);
+ }
+ }
+
+ if ( $len <= 2 ) {
+ for ( $len = 2 - $len; $len != 0; $len-- ) {
+ $string .= sprintf(".%0d", 0);
+ }
+ }
+
+ return $string;
+}
+
+sub stringify {
+ my ($self) = @_;
+ unless (_verify($self)) {
+ require Carp;
+ Carp::croak("Invalid version object");
+ }
+ return exists $self->{original}
+ ? $self->{original}
+ : exists $self->{qv}
+ ? $self->normal
+ : $self->numify;
+}
+
+sub vcmp {
+ require UNIVERSAL;
+ my ($left,$right,$swap) = @_;
+ my $class = ref($left);
+ unless ( UNIVERSAL::isa($right, $class) ) {
+ $right = $class->new($right);
+ }
+
+ if ( $swap ) {
+ ($left, $right) = ($right, $left);
+ }
+ unless (_verify($left)) {
+ require Carp;
+ Carp::croak("Invalid version object");
+ }
+ unless (_verify($right)) {
+ require Carp;
+ Carp::croak("Invalid version format");
+ }
+ my $l = $#{$left->{version}};
+ my $r = $#{$right->{version}};
+ my $m = $l < $r ? $l : $r;
+ my $lalpha = $left->is_alpha;
+ my $ralpha = $right->is_alpha;
+ my $retval = 0;
+ my $i = 0;
+ while ( $i <= $m && $retval == 0 ) {
+ $retval = $left->{version}[$i] <=> $right->{version}[$i];
+ $i++;
+ }
+
+ # tiebreaker for alpha with identical terms
+ if ( $retval == 0
+ && $l == $r
+ && $left->{version}[$m] == $right->{version}[$m]
+ && ( $lalpha || $ralpha ) ) {
+
+ if ( $lalpha && !$ralpha ) {
+ $retval = -1;
+ }
+ elsif ( $ralpha && !$lalpha) {
+ $retval = +1;
+ }
+ }
+
+ # possible match except for trailing 0's
+ if ( $retval == 0 && $l != $r ) {
+ if ( $l < $r ) {
+ while ( $i <= $r && $retval == 0 ) {
+ if ( $right->{version}[$i] != 0 ) {
+ $retval = -1; # not a match after all
+ }
+ $i++;
+ }
+ }
+ else {
+ while ( $i <= $l && $retval == 0 ) {
+ if ( $left->{version}[$i] != 0 ) {
+ $retval = +1; # not a match after all
+ }
+ $i++;
+ }
+ }
+ }
+
+ return $retval;
+}
+
+sub vbool {
+ my ($self) = @_;
+ return vcmp($self,$self->new("0"),1);
+}
+
+sub vnoop {
+ require Carp;
+ Carp::croak("operation not supported with version object");
+}
+
+sub is_alpha {
+ my ($self) = @_;
+ return (exists $self->{alpha});
+}
+
+sub qv {
+ my $value = shift;
+ my $class = $CLASS;
+ if (@_) {
+ $class = ref($value) || $value;
+ $value = shift;
+ }
+
+ $value = _un_vstring($value);
+ $value = 'v'.$value unless $value =~ /(^v|\d+\.\d+\.\d)/;
+ my $obj = $CLASS->new($value);
+ return bless $obj, $class;
+}
+
+*declare = \&qv;
+
+sub is_qv {
+ my ($self) = @_;
+ return (exists $self->{qv});
+}
+
+
+sub _verify {
+ my ($self) = @_;
+ if ( ref($self)
+ && eval { exists $self->{version} }
+ && ref($self->{version}) eq 'ARRAY'
+ ) {
+ return 1;
+ }
+ else {
+ return 0;
+ }
+}
+
+sub _is_non_alphanumeric {
+ my $s = shift;
+ $s = new ExtUtils::MakeMaker::charstar $s;
+ while ($s) {
+ return 0 if isSPACE($s); # early out
+ return 1 unless (isALPHA($s) || isDIGIT($s) || $s =~ /[.-]/);
+ $s++;
+ }
+ return 0;
+}
+
+sub _un_vstring {
+ my $value = shift;
+ # may be a v-string
+ if ( length($value) >= 3 && $value !~ /[._]/
+ && _is_non_alphanumeric($value)) {
+ my $tvalue;
+ if ( $] ge 5.008_001 ) {
+ $tvalue = _find_magic_vstring($value);
+ $value = $tvalue if length $tvalue;
+ }
+ elsif ( $] ge 5.006_000 ) {
+ $tvalue = sprintf("v%vd",$value);
+ if ( $tvalue =~ /^v\d+(\.\d+){2,}$/ ) {
+ # must be a v-string
+ $value = $tvalue;
+ }
+ }
+ }
+ return $value;
+}
+
+sub _find_magic_vstring {
+ my $value = shift;
+ my $tvalue = '';
+ require B;
+ my $sv = B::svref_2object(\$value);
+ my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef;
+ while ( $magic ) {
+ if ( $magic->TYPE eq 'V' ) {
+ $tvalue = $magic->PTR;
+ $tvalue =~ s/^v?(.+)$/v$1/;
+ last;
+ }
+ else {
+ $magic = $magic->MOREMAGIC;
+ }
+ }
+ return $tvalue;
+}
+
+sub _VERSION {
+ my ($obj, $req) = @_;
+ my $class = ref($obj) || $obj;
+
+ no strict 'refs';
+ if ( exists $INC{"$class.pm"} and not %{"$class\::"} and $] >= 5.008) {
+ # file but no package
+ require Carp;
+ Carp::croak( "$class defines neither package nor VERSION"
+ ."--version check failed");
+ }
+
+ my $version = eval "\$$class\::VERSION";
+ if ( defined $version ) {
+ local $^W if $] <= 5.008;
+ $version = ExtUtils::MakeMaker::version::vpp->new($version);
+ }
+
+ if ( defined $req ) {
+ unless ( defined $version ) {
+ require Carp;
+ my $msg = $] < 5.006
+ ? "$class version $req required--this is only version "
+ : "$class does not define \$$class\::VERSION"
+ ."--version check failed";
+
+ if ( $ENV{VERSION_DEBUG} ) {
+ Carp::confess($msg);
+ }
+ else {
+ Carp::croak($msg);
+ }
+ }
+
+ $req = ExtUtils::MakeMaker::version::vpp->new($req);
+
+ if ( $req > $version ) {
+ require Carp;
+ if ( $req->is_qv ) {
+ Carp::croak(
+ sprintf ("%s version %s required--".
+ "this is only version %s", $class,
+ $req->normal, $version->normal)
+ );
+ }
+ else {
+ Carp::croak(
+ sprintf ("%s version %s required--".
+ "this is only version %s", $class,
+ $req->stringify, $version->stringify)
+ );
+ }
+ }
+ }
+
+ return defined $version ? $version->stringify : undef;
+}
+
+1; #this line is important and will help the module return a true value
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Manifest.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Manifest.pm
index 5bcd6d693a4..4163c933abf 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Manifest.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Manifest.pm
@@ -5,27 +5,24 @@ use Config;
use File::Basename;
use File::Copy 'copy';
use File::Find;
-use File::Spec;
+use File::Spec 0.8;
use Carp;
use strict;
+use warnings;
-use vars qw($VERSION @ISA @EXPORT_OK
- $Is_MacOS $Is_VMS $Is_VMS_mode $Is_VMS_lc $Is_VMS_nodot
- $Debug $Verbose $Quiet $MANIFEST $DEFAULT_MSKIP);
-
-$VERSION = '1.63';
-@ISA=('Exporter');
-@EXPORT_OK = qw(mkmanifest
+our $VERSION = '1.70';
+our @ISA = ('Exporter');
+our @EXPORT_OK = qw(mkmanifest
manicheck filecheck fullcheck skipcheck
manifind maniread manicopy maniadd
maniskip
);
-$Is_MacOS = $^O eq 'MacOS';
-$Is_VMS = $^O eq 'VMS';
-$Is_VMS_mode = 0;
-$Is_VMS_lc = 0;
-$Is_VMS_nodot = 0; # No dots in dir names or double dots in files
+our $Is_MacOS = $^O eq 'MacOS';
+our $Is_VMS = $^O eq 'VMS';
+our $Is_VMS_mode = 0;
+our $Is_VMS_lc = 0;
+our $Is_VMS_nodot = 0; # No dots in dir names or double dots in files
if ($Is_VMS) {
require VMS::Filespec if $Is_VMS;
@@ -53,19 +50,23 @@ if ($Is_VMS) {
$Is_VMS_nodot = 0 if ($vms_efs);
}
-$Debug = $ENV{PERL_MM_MANIFEST_DEBUG} || 0;
-$Verbose = defined $ENV{PERL_MM_MANIFEST_VERBOSE} ?
+our $Debug = $ENV{PERL_MM_MANIFEST_DEBUG} || 0;
+our $Verbose = defined $ENV{PERL_MM_MANIFEST_VERBOSE} ?
$ENV{PERL_MM_MANIFEST_VERBOSE} : 1;
-$Quiet = 0;
-$MANIFEST = 'MANIFEST';
+our $Quiet = 0;
+our $MANIFEST = 'MANIFEST';
-$DEFAULT_MSKIP = File::Spec->catfile( dirname(__FILE__), "$MANIFEST.SKIP" );
+our $DEFAULT_MSKIP = File::Spec->catfile( dirname(__FILE__), "$MANIFEST.SKIP" );
=head1 NAME
ExtUtils::Manifest - utilities to write and check a MANIFEST file
+=head1 VERSION
+
+version 1.70
+
=head1 SYNOPSIS
use ExtUtils::Manifest qw(...funcs to import...);
@@ -124,6 +125,7 @@ sub mkmanifest {
$bakbase =~ s/\./_/g if $Is_VMS_nodot; # avoid double dots
rename $MANIFEST, "$bakbase.bak" unless $manimiss;
open M, "> $MANIFEST" or die "Could not open $MANIFEST: $!";
+ binmode M, ':raw';
my $skip = maniskip();
my $found = manifind();
my($key,$val,$file,%all);
@@ -197,7 +199,7 @@ sub manifind {
# $File::Find::name is unavailable.
# Also, it's okay to use / here, because MANIFEST files use Unix-style
# paths.
- find({wanted => $wanted},
+ find({wanted => $wanted, follow_fast => 1},
$Is_MacOS ? ":" : ".");
return $found;
@@ -356,7 +358,7 @@ sub maniread {
# filename may contain spaces if enclosed in ''
# (in which case, \\ and \' are escapes)
- if (($file, $comment) = /^'(\\[\\']|.+)+'\s*(.*)/) {
+ if (($file, $comment) = /^'((?:\\[\\']|.+)+)'\s*(.*)/) {
$file =~ s/\\([\\'])/$1/g;
}
else {
@@ -483,6 +485,7 @@ sub _check_mskip_directives {
warn "Problem opening $mfile: $!";
return;
}
+ binmode M, ':raw';
print M $_ for (@lines);
close M;
return;
@@ -696,6 +699,7 @@ sub maniadd {
open(MANIFEST, ">>$MANIFEST") or
die "maniadd() could not open $MANIFEST: $!";
+ binmode MANIFEST, ':raw';
foreach my $file (_sort @needed) {
my $comment = $additions->{$file} || '';
@@ -737,6 +741,7 @@ sub _fix_manifest {
if ( $must_rewrite ) {
1 while unlink $MANIFEST; # avoid multiple versions on VMS
open MANIFEST, ">", $MANIFEST or die "(must_rewrite=$must_rewrite) Could not open >$MANIFEST: $!";
+ binmode MANIFEST, ':raw';
for (my $i=0; $i<=$#manifest; $i+=2) {
print MANIFEST "$manifest[$i]\n";
}
@@ -892,9 +897,14 @@ L<ExtUtils::MakeMaker> which has handy targets for most of the functionality.
Andreas Koenig C<andreas.koenig@anima.de>
-Maintained by Michael G Schwern C<schwern@pobox.com> within the
-ExtUtils-MakeMaker package and, as a separate CPAN package, by
-Randy Kobes C<r.kobes@uwinnipeg.ca>.
+Currently maintained by the Perl Toolchain Gang.
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 1996- by Andreas Koenig.
+
+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/Master/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm
index cede3180f8a..61c66df7ed1 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm
@@ -8,7 +8,7 @@ use vars qw($VERSION @ISA @EXPORT);
@ISA = qw(Exporter);
@EXPORT = qw(writemain);
-$VERSION = '1.01';
+$VERSION = '1.05';
# blead will run this with miniperl, hence we can't use autodie or File::Temp
my $temp;
@@ -136,6 +136,8 @@ main(int argc, char **argv, char **env)
Perl_atfork_unlock);
#endif
+ PERL_SYS_FPU_INIT;
+
if (!PL_do_undump) {
my_perl = perl_alloc();
if (!my_perl)
@@ -191,7 +193,6 @@ main(int argc, char **argv, char **env)
#endif /* PERL_GLOBAL_STRUCT */
exit(exitstatus);
- return exitstatus;
}
/* Register any extra external extensions */
@@ -233,8 +234,9 @@ C<writemain()> takes an argument list of directories containing archive
libraries that relate to perl modules and should be linked into a new
perl binary. It writes a corresponding F<perlmain.c> file that
is a plain C file containing all the bootstrap code to make the
+modules associated with the libraries available from within perl.
If the first argument to C<writemain()> is a reference to a scalar it is
-used as the filename to open for ouput. Any other reference is used as
+used as the filename to open for output. Any other reference is used as
the filehandle to write to. Otherwise output defaults to C<STDOUT>.
The typical usage is from within a Makefile generated by
@@ -247,10 +249,4 @@ L<ExtUtils::MakeMaker>
=cut
-# Local variables:
-# c-indentation-style: bsd
-# c-basic-offset: 4
-# indent-tabs-mode: nil
-# End:
-#
# ex: set ts=8 sts=4 sw=4 et:
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm
index bb85e85cec2..97d4300814e 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm
@@ -3,7 +3,7 @@ package ExtUtils::Mkbootstrap;
# There's just too much Dynaloader incest here to turn on strict vars.
use strict 'refs';
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
require Exporter;
our @ISA = ('Exporter');
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm
index 176faf17529..3a9fc71361a 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm
@@ -10,7 +10,7 @@ use Config;
our @ISA = qw(Exporter);
our @EXPORT = qw(&Mksymlists);
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
sub Mksymlists {
my(%spec) = @_;
@@ -141,19 +141,24 @@ sub _write_win32 {
print $def "EXPORTS\n ";
my @syms;
# Export public symbols both with and without underscores to
- # ensure compatibility between DLLs from different compilers
+ # ensure compatibility between DLLs from Borland C and Visual C
# NOTE: DynaLoader itself only uses the names without underscores,
# so this is only to cover the case when the extension DLL may be
# linked to directly from C. GSAR 97-07-10
- if ($Config::Config{'cc'} =~ /^bcc/i) {
- for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}}) {
- push @syms, "_$_", "$_ = _$_";
+
+ #bcc dropped in 5.16, so dont create useless extra symbols for export table
+ unless($] >= 5.016) {
+ if ($Config::Config{'cc'} =~ /^bcc/i) {
+ push @syms, "_$_", "$_ = _$_"
+ for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}});
}
- }
- else {
- for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}}) {
- push @syms, "$_", "_$_ = $_";
+ else {
+ push @syms, "$_", "_$_ = $_"
+ for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}});
}
+ } else {
+ push @syms, "$_"
+ for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}});
}
print $def join("\n ",@syms, "\n") if @syms;
_print_imports($def, $data);
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Packlist.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Packlist.pm
index 8323725c644..c1ab00216bc 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Packlist.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Packlist.pm
@@ -5,7 +5,7 @@ use strict;
use Carp qw();
use Config;
use vars qw($VERSION $Relocations);
-$VERSION = '1.48';
+$VERSION = '2.04';
$VERSION = eval $VERSION;
# Used for generating filehandle globs. IO::File might not be available!
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm
index 25d3175ec33..0987500ba4d 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm
@@ -11,7 +11,7 @@ use Symbol;
our $VERSION;
BEGIN {
- $VERSION = '3.24';
+ $VERSION = '3.28';
}
use ExtUtils::ParseXS::Constants $VERSION;
use ExtUtils::ParseXS::CountLines $VERSION;
@@ -797,12 +797,15 @@ EOF
#
EOF
- $self->{newXS} = "newXS";
$self->{proto} = "";
-
+ unless($self->{ProtoThisXSUB}) {
+ $self->{newXS} = "newXS_deffile";
+ $self->{file} = "";
+ }
+ else {
# Build the prototype string for the xsub
- if ($self->{ProtoThisXSUB}) {
$self->{newXS} = "newXSproto_portable";
+ $self->{file} = ", file";
if ($self->{ProtoThisXSUB} eq 2) {
# User has specified empty prototype
@@ -831,14 +834,14 @@ EOF
foreach my $xname (sort keys %{ $self->{XsubAliases} }) {
my $value = $self->{XsubAliases}{$xname};
push(@{ $self->{InitFileCode} }, Q(<<"EOF"));
-# cv = $self->{newXS}(\"$xname\", XS_$self->{Full_func_name}, file$self->{proto});
+# cv = $self->{newXS}(\"$xname\", XS_$self->{Full_func_name}$self->{file}$self->{proto});
# XSANY.any_i32 = $value;
EOF
}
}
elsif (@{ $self->{Attributes} }) {
push(@{ $self->{InitFileCode} }, Q(<<"EOF"));
-# cv = $self->{newXS}(\"$self->{pname}\", XS_$self->{Full_func_name}, file$self->{proto});
+# cv = $self->{newXS}(\"$self->{pname}\", XS_$self->{Full_func_name}$self->{file}$self->{proto});
# apply_attrs_string("$self->{Package}", cv, "@{ $self->{Attributes} }", 0);
EOF
}
@@ -847,18 +850,18 @@ EOF
my $value = $self->{Interfaces}{$yname};
$yname = "$self->{Package}\::$yname" unless $yname =~ /::/;
push(@{ $self->{InitFileCode} }, Q(<<"EOF"));
-# cv = $self->{newXS}(\"$yname\", XS_$self->{Full_func_name}, file$self->{proto});
+# cv = $self->{newXS}(\"$yname\", XS_$self->{Full_func_name}$self->{file}$self->{proto});
# $self->{interface_macro_set}(cv,$value);
EOF
}
}
- elsif($self->{newXS} eq 'newXS'){ # work around P5NCI's empty newXS macro
+ elsif($self->{newXS} eq 'newXS_deffile'){ # work around P5NCI's empty newXS macro
push(@{ $self->{InitFileCode} },
- " $self->{newXS}(\"$self->{pname}\", XS_$self->{Full_func_name}, file$self->{proto});\n");
+ " $self->{newXS}(\"$self->{pname}\", XS_$self->{Full_func_name}$self->{file}$self->{proto});\n");
}
else {
push(@{ $self->{InitFileCode} },
- " (void)$self->{newXS}(\"$self->{pname}\", XS_$self->{Full_func_name}, file$self->{proto});\n");
+ " (void)$self->{newXS}(\"$self->{pname}\", XS_$self->{Full_func_name}$self->{file}$self->{proto});\n");
}
} # END 'PARAGRAPH' 'while' loop
@@ -876,7 +879,7 @@ EOF
/* Making a sub named "$self->{Package}::()" allows the package */
/* to be findable via fetchmethod(), and causes */
/* overload::Overloaded("$self->{Package}") to return true. */
- (void)$self->{newXS}("$self->{Package}::()", XS_$self->{Packid}_nil, file$self->{proto});
+ (void)$self->{newXS}("$self->{Package}::()", XS_$self->{Packid}_nil$self->{file}$self->{proto});
MAKE_FETCHMETHOD_WORK
}
@@ -891,11 +894,13 @@ EOF
print Q(<<"EOF");
#XS_EXTERNAL(boot_$self->{Module_cname}); /* prototype to pass -Wmissing-prototypes */
#XS_EXTERNAL(boot_$self->{Module_cname})
-EOF
-
- print Q(<<"EOF");
#[[
+##if PERL_VERSION_LE(5, 21, 5)
# dVAR; dXSARGS;
+##else
+# dVAR; ${\($self->{WantVersionChk} ?
+ 'dXSBOOTARGSXSAPIVERCHK;' : 'dXSBOOTARGSAPIVERCHK;')}
+##endif
EOF
#Under 5.8.x and lower, newXS is declared in proto.h as expecting a non-const
@@ -909,6 +914,8 @@ EOF
##else
# const char* file = __FILE__;
##endif
+#
+# PERL_UNUSED_VAR(file);
EOF
print Q("#\n");
@@ -916,15 +923,26 @@ EOF
print Q(<<"EOF");
# PERL_UNUSED_VAR(cv); /* -W */
# PERL_UNUSED_VAR(items); /* -W */
-##ifdef XS_APIVERSION_BOOTCHECK
+EOF
+
+ if( $self->{WantVersionChk}){
+ print Q(<<"EOF") ;
+##if PERL_VERSION_LE(5, 21, 5)
+# XS_VERSION_BOOTCHECK;
+## ifdef XS_APIVERSION_BOOTCHECK
# XS_APIVERSION_BOOTCHECK;
+## endif
##endif
+
EOF
+ } else {
+ print Q(<<"EOF") ;
+##if PERL_VERSION_LE(5, 21, 5) && defined(XS_APIVERSION_BOOTCHECK)
+# XS_APIVERSION_BOOTCHECK;
+##endif
- print Q(<<"EOF") if $self->{WantVersionChk};
-# XS_VERSION_BOOTCHECK;
-#
EOF
+ }
print Q(<<"EOF") if defined $self->{XsubAliases} or defined $self->{interfaces};
# {
@@ -960,14 +978,15 @@ EOF
}
print Q(<<'EOF');
-##if (PERL_REVISION == 5 && PERL_VERSION >= 9)
-# if (PL_unitcheckav)
-# call_list(PL_scopestack_ix, PL_unitcheckav);
-##endif
-EOF
-
- print Q(<<"EOF");
+##if PERL_VERSION_LE(5, 21, 5)
+## if PERL_VERSION_GE(5, 9, 0)
+# if (PL_unitcheckav)
+# call_list(PL_scopestack_ix, PL_unitcheckav);
+## endif
# XSRETURN_YES;
+##else
+# Perl_xs_boot_epilog(aTHX_ ax);
+##endif
#]]
#
EOF
@@ -1322,7 +1341,7 @@ sub OVERLOAD_handler {
$self->{Overload} = 1 unless $self->{Overload};
my $overload = "$self->{Package}\::(".$1;
push(@{ $self->{InitFileCode} },
- " (void)$self->{newXS}(\"$overload\", XS_$self->{Full_func_name}, file$self->{proto});\n");
+ " (void)$self->{newXS}(\"$overload\", XS_$self->{Full_func_name}$self->{file}$self->{proto});\n");
}
}
}
@@ -1848,7 +1867,10 @@ sub generate_init {
my $typem = $typemaps->get_typemap(ctype => $type);
my $xstype = $typem->xstype;
- $xstype =~ s/OBJ$/REF/ if $self->{func_name} =~ /DESTROY$/;
+ #this is an optimization from perl 5.0 alpha 6, class check is skipped
+ #T_REF_IV_REF is missing since it has no untyped analog at the moment
+ $xstype =~ s/OBJ$/REF/ || $xstype =~ s/^T_REF_IV_PTR$/T_PTRREF/
+ if $self->{func_name} =~ /DESTROY$/;
if ($xstype eq 'T_PV' and exists $self->{lengthof}->{$var}) {
print "\t$var" unless $printed_name;
print " = ($type)SvPV($arg, STRLEN_length_of_$var);\n";
@@ -2002,36 +2024,78 @@ sub generate_output {
print "\t\tSvSETMAGIC(ST(ix_$var));\n" if $do_setmagic;
}
elsif ($var eq 'RETVAL') {
+ my $orig_arg = $arg;
+ my $indent;
+ my $use_RETVALSV = 1;
+ my $do_mortal = 0;
+ my $do_copy_tmp = 1;
+ my $pre_expr;
+ local $eval_vars->{arg} = $arg = 'RETVALSV';
my $evalexpr = $self->eval_output_typemap_code("qq\a$expr\a", $eval_vars);
+
if ($expr =~ /^\t\Q$arg\E = new/) {
# We expect that $arg has refcnt 1, so we need to
# mortalize it.
- print $evalexpr;
- print "\tsv_2mortal(ST($num));\n";
- print "\tSvSETMAGIC(ST($num));\n" if $do_setmagic;
+ $do_mortal = 1;
}
# If RETVAL is immortal, don't mortalize it. This code is not perfect:
# It won't detect a func or expression that only returns immortals, for
# example, this RE must be tried before next elsif.
elsif ($evalexpr =~ /^\t\Q$arg\E\s*=\s*(boolSV\(|(&PL_sv_yes|&PL_sv_no|&PL_sv_undef)\s*;)/) {
- print $evalexpr;
+ $do_copy_tmp = 0; #$arg will be a ST(X), no SV* RETVAL, no RETVALSV
+ $use_RETVALSV = 0;
}
elsif ($evalexpr =~ /^\s*\Q$arg\E\s*=/) {
# We expect that $arg has refcnt >=1, so we need
# to mortalize it!
- print $evalexpr;
- print "\tsv_2mortal(ST(0));\n";
- print "\tSvSETMAGIC(ST(0));\n" if $do_setmagic;
+ $use_RETVALSV = 0 if $ntype eq "SVPtr";#reuse SV* RETVAL vs open new block
+ $do_mortal = 1;
}
else {
# Just hope that the entry would safely write it
# over an already mortalized value. By
- # coincidence, something like $arg = &sv_undef
+ # coincidence, something like $arg = &PL_sv_undef
# works too, but should be caught above.
- print "\tST(0) = sv_newmortal();\n";
- print $evalexpr;
+ $pre_expr = "RETVALSV = sv_newmortal();\n";
# new mortals don't have set magic
+ $do_setmagic = 0;
+ }
+ if($use_RETVALSV) {
+ print "\t{\n\t SV * RETVALSV;\n";
+ $indent = "\t ";
+ } else {
+ $indent = "\t";
+ }
+ print $indent.$pre_expr if $pre_expr;
+
+ if($use_RETVALSV) {
+ #take control of 1 layer of indent, may or may not indent more
+ $evalexpr =~ s/^(\t| )/$indent/gm;
+ #"\t \t" doesn't draw right in some IDEs
+ #break down all \t into spaces
+ $evalexpr =~ s/\t/ /g;
+ #rebuild back into \t'es, \t==8 spaces, indent==4 spaces
+ $evalexpr =~ s/ /\t/g;
+ }
+ else {
+ if($do_mortal || $do_setmagic) {
+ #typemap entry evaled with RETVALSV, if we aren't using RETVALSV replace
+ $evalexpr =~ s/RETVALSV/RETVAL/g; #all uses with RETVAL for prettier code
+ }
+ else { #if no extra boilerplate (no mortal, no set magic) is needed
+ #after $evalexport, get rid of RETVALSV's visual cluter and change
+ $evalexpr =~ s/RETVALSV/$orig_arg/g;#the lvalue to ST(X)
+ }
}
+ #stop " RETVAL = RETVAL;" for SVPtr type
+ print $evalexpr if $evalexpr !~ /^\s*RETVAL = RETVAL;$/;
+ print $indent.'RETVAL'.($use_RETVALSV ? 'SV':'')
+ .' = sv_2mortal(RETVAL'.($use_RETVALSV ? 'SV':'').");\n" if $do_mortal;
+ print $indent.'SvSETMAGIC(RETVAL'.($use_RETVALSV ? 'SV':'').");\n" if $do_setmagic;
+ #dont do "RETVALSV = boolSV(RETVAL); ST(0) = RETVALSV;", it is visual clutter
+ print $indent."$orig_arg = RETVAL".($use_RETVALSV ? 'SV':'').";\n"
+ if $do_mortal || $do_setmagic || $do_copy_tmp;
+ print "\t}\n" if $use_RETVALSV;
}
elsif ($do_push) {
print "\tPUSHs(sv_newmortal());\n";
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm
index 34fbc21e167..5603613489c 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use Symbol;
-our $VERSION = '3.24';
+our $VERSION = '3.28';
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm
index 473f531f750..b30812c5f9a 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm
@@ -1,7 +1,7 @@
package ExtUtils::ParseXS::CountLines;
use strict;
-our $VERSION = '3.24';
+our $VERSION = '3.28';
our $SECTION_END_MARKER;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm
index 4b8cbd6337e..b4f41cb2fac 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm
@@ -2,7 +2,7 @@ package ExtUtils::ParseXS::Eval;
use strict;
use warnings;
-our $VERSION = '3.24';
+our $VERSION = '3.28';
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm
index ae384fd5b58..37094cb3337 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm
@@ -3,10 +3,9 @@ use strict;
use warnings;
use Exporter;
use File::Spec;
-use lib qw( lib );
use ExtUtils::ParseXS::Constants ();
-our $VERSION = '3.24';
+our $VERSION = '3.28';
our (@ISA, @EXPORT_OK);
@ISA = qw(Exporter);
@@ -453,10 +452,10 @@ EOF
/* prototype to pass -Wmissing-prototypes */
STATIC void
-S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params);
+S_croak_xs_usage(const CV *const cv, const char *const params);
STATIC void
-S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params)
+S_croak_xs_usage(const CV *const cv, const char *const params)
{
const GV *const gv = CvGV(cv);
@@ -468,21 +467,17 @@ S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params)
const char *const hvname = stash ? HvNAME(stash) : NULL;
if (hvname)
- Perl_croak(aTHX_ "Usage: %s::%s(%s)", hvname, gvname, params);
+ Perl_croak_nocontext("Usage: %s::%s(%s)", hvname, gvname, params);
else
- Perl_croak(aTHX_ "Usage: %s(%s)", gvname, params);
+ Perl_croak_nocontext("Usage: %s(%s)", gvname, params);
} else {
/* Pants. I don't think that it should be possible to get here. */
- Perl_croak(aTHX_ "Usage: CODE(0x%"UVxf")(%s)", PTR2UV(cv), params);
+ Perl_croak_nocontext("Usage: CODE(0x%"UVxf")(%s)", PTR2UV(cv), params);
}
}
#undef PERL_ARGS_ASSERT_CROAK_XS_USAGE
-#ifdef PERL_IMPLICIT_CONTEXT
-#define croak_xs_usage(a,b) S_croak_xs_usage(aTHX_ a,b)
-#else
#define croak_xs_usage S_croak_xs_usage
-#endif
#endif
@@ -495,6 +490,12 @@ S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params)
#define newXSproto_portable(name, c_impl, file, proto) (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
#endif /* !defined(newXS_flags) */
+#if PERL_VERSION_LE(5, 21, 5)
+# define newXS_deffile(a,b) Perl_newXS(aTHX_ a,b,file)
+#else
+# define newXS_deffile(a,b) Perl_newXS_deffile(aTHX_ a,b)
+#endif
+
EOF
return 1;
}
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm
index 8bc04af04c3..f9b568daf48 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm
@@ -2,8 +2,7 @@ package ExtUtils::Typemaps;
use 5.006001;
use strict;
use warnings;
-our $VERSION = '3.24';
-#use Carp qw(croak);
+our $VERSION = '3.28';
require ExtUtils::ParseXS;
require ExtUtils::ParseXS::Constants;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm
index a0be008148d..c0d13c68ba6 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::Cmd;
use 5.006001;
use strict;
use warnings;
-our $VERSION = '3.24';
+our $VERSION = '3.28';
use ExtUtils::Typemaps;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm
index 3a600354832..3a7c6fe6fda 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::InputMap;
use 5.006001;
use strict;
use warnings;
-our $VERSION = '3.24';
+our $VERSION = '3.28';
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm
index 8a019696c84..758ad5ef056 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::OutputMap;
use 5.006001;
use strict;
use warnings;
-our $VERSION = '3.24';
+our $VERSION = '3.28';
=head1 NAME
@@ -108,7 +108,7 @@ eligible for using the C<TARG>-related macros to optimize this.
Thus the name of the method: C<targetable>.
If this optimization is applicable, C<ExtUtils::ParseXS> will
-emit a C<dXSTARG;> definition at the start of the generate XSUB code,
+emit a C<dXSTARG;> definition at the start of the generated XSUB code,
and type (see below) dependent code to set C<TARG> and push it on
the stack at the end of the generated XSUB code.
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm
index fa0ca695949..47a26624b12 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm
@@ -4,7 +4,7 @@ use strict;
use warnings;
require ExtUtils::Typemaps;
-our $VERSION = '3.24';
+our $VERSION = '3.28';
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm b/Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm
index d8cd4bcb42a..2a5323e1709 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm
@@ -3,7 +3,7 @@ package ExtUtils::testlib;
use strict;
use warnings;
-our $VERSION = '6.98';
+our $VERSION = '7.04_01';
use Cwd;
use File::Spec;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/typemap b/Master/tlpkg/tlperl/lib/ExtUtils/typemap
index 874bc161a80..0b09641f8d6 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/typemap
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/typemap
@@ -71,7 +71,7 @@ T_SVREF
$var = SvRV(xsub_tmp_sv);
}
else{
- Perl_croak(aTHX_ \"%s: %s is not a reference\",
+ Perl_croak_nocontext(\"%s: %s is not a reference\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\");
}
@@ -84,7 +84,7 @@ T_SVREF_REFCOUNT_FIXED
$var = SvRV(xsub_tmp_sv);
}
else{
- Perl_croak(aTHX_ \"%s: %s is not a reference\",
+ Perl_croak_nocontext(\"%s: %s is not a reference\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\");
}
@@ -97,7 +97,7 @@ T_AVREF
$var = (AV*)SvRV(xsub_tmp_sv);
}
else{
- Perl_croak(aTHX_ \"%s: %s is not an ARRAY reference\",
+ Perl_croak_nocontext(\"%s: %s is not an ARRAY reference\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\");
}
@@ -110,7 +110,7 @@ T_AVREF_REFCOUNT_FIXED
$var = (AV*)SvRV(xsub_tmp_sv);
}
else{
- Perl_croak(aTHX_ \"%s: %s is not an ARRAY reference\",
+ Perl_croak_nocontext(\"%s: %s is not an ARRAY reference\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\");
}
@@ -123,7 +123,7 @@ T_HVREF
$var = (HV*)SvRV(xsub_tmp_sv);
}
else{
- Perl_croak(aTHX_ \"%s: %s is not a HASH reference\",
+ Perl_croak_nocontext(\"%s: %s is not a HASH reference\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\");
}
@@ -136,7 +136,7 @@ T_HVREF_REFCOUNT_FIXED
$var = (HV*)SvRV(xsub_tmp_sv);
}
else{
- Perl_croak(aTHX_ \"%s: %s is not a HASH reference\",
+ Perl_croak_nocontext(\"%s: %s is not a HASH reference\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\");
}
@@ -149,7 +149,7 @@ T_CVREF
SvGETMAGIC(xsub_tmp_sv);
$var = sv_2cv(xsub_tmp_sv, &st, &gvp, 0);
if (!$var) {
- Perl_croak(aTHX_ \"%s: %s is not a CODE reference\",
+ Perl_croak_nocontext(\"%s: %s is not a CODE reference\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\");
}
@@ -162,7 +162,7 @@ T_CVREF_REFCOUNT_FIXED
SvGETMAGIC(xsub_tmp_sv);
$var = sv_2cv(xsub_tmp_sv, &st, &gvp, 0);
if (!$var) {
- Perl_croak(aTHX_ \"%s: %s is not a CODE reference\",
+ Perl_croak_nocontext(\"%s: %s is not a CODE reference\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\");
}
@@ -209,7 +209,7 @@ T_PTRREF
$var = INT2PTR($type,tmp);
}
else
- Perl_croak(aTHX_ \"%s: %s is not a reference\",
+ Perl_croak_nocontext(\"%s: %s is not a reference\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\")
T_REF_IV_REF
@@ -218,7 +218,7 @@ T_REF_IV_REF
$var = *INT2PTR($type *, tmp);
}
else
- Perl_croak(aTHX_ \"%s: %s is not of type %s\",
+ Perl_croak_nocontext(\"%s: %s is not of type %s\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\", \"$ntype\")
T_REF_IV_PTR
@@ -227,7 +227,7 @@ T_REF_IV_PTR
$var = INT2PTR($type, tmp);
}
else
- Perl_croak(aTHX_ \"%s: %s is not of type %s\",
+ Perl_croak_nocontext(\"%s: %s is not of type %s\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\", \"$ntype\")
T_PTROBJ
@@ -236,7 +236,7 @@ T_PTROBJ
$var = INT2PTR($type,tmp);
}
else
- Perl_croak(aTHX_ \"%s: %s is not of type %s\",
+ Perl_croak_nocontext(\"%s: %s is not of type %s\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\", \"$ntype\")
T_PTRDESC
@@ -246,7 +246,7 @@ T_PTRDESC
$var = ${type}_desc->ptr;
}
else
- Perl_croak(aTHX_ \"%s: %s is not of type %s\",
+ Perl_croak_nocontext(\"%s: %s is not of type %s\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\", \"$ntype\")
T_REFREF
@@ -255,7 +255,7 @@ T_REFREF
$var = *INT2PTR($type,tmp);
}
else
- Perl_croak(aTHX_ \"%s: %s is not a reference\",
+ Perl_croak_nocontext(\"%s: %s is not a reference\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\")
T_REFOBJ
@@ -264,7 +264,7 @@ T_REFOBJ
$var = *INT2PTR($type,tmp);
}
else
- Perl_croak(aTHX_ \"%s: %s is not of type %s\",
+ Perl_croak_nocontext(\"%s: %s is not of type %s\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
\"$var\", \"$ntype\")
T_OPAQUE
diff --git a/Master/tlpkg/tlperl/lib/Fatal.pm b/Master/tlpkg/tlperl/lib/Fatal.pm
index e538e20d682..8fe7899819e 100644
--- a/Master/tlpkg/tlperl/lib/Fatal.pm
+++ b/Master/tlpkg/tlperl/lib/Fatal.pm
@@ -10,6 +10,8 @@ use Tie::RefHash; # To cache subroutine refs
use Config;
use Scalar::Util qw(set_prototype);
+use autodie::ScopeUtil qw(on_end_of_compile_scope);
+
use constant PERL510 => ( $] >= 5.010 );
use constant LEXICAL_TAG => q{:lexical};
@@ -48,7 +50,7 @@ use constant ERROR_58_HINTS => q{Non-subroutine %s hints for %s are not supporte
use constant MIN_IPC_SYS_SIMPLE_VER => 0.12;
-our $VERSION = '2.23'; # VERSION: Generated by DZP::OurPkg::Version
+our $VERSION = '2.26'; # VERSION: Generated by DZP::OurPkg::Version
our $Debug ||= 0;
@@ -61,6 +63,10 @@ our %_EWOULDBLOCK = (
MSWin32 => 33,
);
+$Carp::CarpInternal{'Fatal'} = 1;
+$Carp::CarpInternal{'autodie'} = 1;
+$Carp::CarpInternal{'autodie::exception'} = 1;
+
# the linux parisc port has separate EAGAIN and EWOULDBLOCK,
# and the kernel returns EAGAIN
my $try_EAGAIN = ($^O eq 'linux' and $Config{archname} =~ /hppa|parisc/) ? 1 : 0;
@@ -72,10 +78,10 @@ my %TAGS = (
':io' => [qw(:dbm :file :filesys :ipc :socket
read seek sysread syswrite sysseek )],
':dbm' => [qw(dbmopen dbmclose)],
- ':file' => [qw(open close flock sysopen fcntl fileno binmode
+ ':file' => [qw(open close flock sysopen fcntl binmode
ioctl truncate)],
':filesys' => [qw(opendir closedir chdir link unlink rename mkdir
- symlink rmdir readlink umask chmod chown utime)],
+ symlink rmdir readlink chmod chown utime)],
':ipc' => [qw(:msg :semaphore :shm pipe kill)],
':msg' => [qw(msgctl msgget msgrcv msgsnd)],
':threads' => [qw(fork)],
@@ -110,6 +116,9 @@ my %TAGS = (
# chown, utime, kill were added in 2.14
':v214' => [qw(:v213 chown utime kill)],
+ # umask was removed in 2.26
+ ':v225' => [qw(:io :threads umask fileno)],
+
# Version specific tags. These allow someone to specify
# use autodie qw(:1.994) and know exactly what they'll get.
@@ -134,21 +143,22 @@ my %TAGS = (
':2.10' => [qw(:v213)],
':2.11' => [qw(:v213)],
':2.12' => [qw(:v213)],
- ':2.13' => [qw(:v213)],
- ':2.14' => [qw(:default)],
- ':2.15' => [qw(:default)],
- ':2.16' => [qw(:default)],
- ':2.17' => [qw(:default)],
- ':2.18' => [qw(:default)],
- ':2.19' => [qw(:default)],
- ':2.20' => [qw(:default)],
- ':2.21' => [qw(:default)],
- ':2.22' => [qw(:default)],
- ':2.23' => [qw(:default)],
+ ':2.13' => [qw(:v213)], # Last release without chown
+ ':2.14' => [qw(:v225)],
+ ':2.15' => [qw(:v225)],
+ ':2.16' => [qw(:v225)],
+ ':2.17' => [qw(:v225)],
+ ':2.18' => [qw(:v225)],
+ ':2.19' => [qw(:v225)],
+ ':2.20' => [qw(:v225)],
+ ':2.21' => [qw(:v225)],
+ ':2.22' => [qw(:v225)],
+ ':2.23' => [qw(:v225)],
+ ':2.24' => [qw(:v225)],
+ ':2.25' => [qw(:v225)],
+ ':2.26' => [qw(:default)],
);
-# chmod was only introduced in 2.07
-# chown was only introduced in 2.14
{
# Expand :all immediately by expanding and flattening all tags.
@@ -205,7 +215,7 @@ my %Retval_action = (
"CORE::open" => q{
# apply the open pragma from our caller
- if( defined $retval ) {
+ if( defined $retval && !( @_ >= 3 && $_[1] =~ /:/ )) {
# Get the caller's hint hash
my $hints = (caller 0)[10];
@@ -326,7 +336,6 @@ my %CORE_prototype_cache;
# setting up lexical guards.
my $PACKAGE = __PACKAGE__;
-my $PACKAGE_GUARD = "guard $PACKAGE";
my $NO_PACKAGE = "no $PACKAGE"; # Used to detect 'no autodie'
# Here's where all the magic happens when someone write 'use Fatal'
@@ -467,9 +476,9 @@ sub import {
# Our package guard gets invoked when we leave our lexical
# scope.
- push(@ { $^H{$PACKAGE_GUARD} }, autodie::Scope::Guard->new(sub {
+ on_end_of_compile_scope(sub {
$class->_install_subs($pkg, \%unload_later);
- }));
+ });
# To allow others to determine when autodie was in scope,
# and with what arguments, we also set a %^H hint which
@@ -561,7 +570,7 @@ sub unimport {
# in which case, we disable Fatalistic behaviour for 'blah'.
my @unimport_these = @_ ? @_ : ':all';
- my %uninstall_subs;
+ my (%uninstall_subs, %reinstall_subs);
for my $symbol ($class->_translate_import_args(@unimport_these)) {
@@ -580,21 +589,18 @@ sub unimport {
# (eg, mixing Fatal with no autodie)
$^H{$NO_PACKAGE}{$sub} = 1;
-
- if (my $original_sub = $Original_user_sub{$sub}) {
- # Hey, we've got an original one of these, put it back.
- $uninstall_subs{$symbol} = $original_sub;
- next;
- }
-
- # We don't have an original copy of the sub, on the assumption
- # it's core (or doesn't exist), we'll just nuke it.
-
- $uninstall_subs{$symbol} = undef;
+ # Record the current sub to be reinstalled at end of scope
+ # and then restore the original (can be undef for "CORE::"
+ # subs)
+ $reinstall_subs{$symbol} = \&$sub;
+ $uninstall_subs{$symbol} = $Original_user_sub{$sub};
}
$class->_install_subs($pkg, \%uninstall_subs);
+ on_end_of_compile_scope(sub {
+ $class->_install_subs($pkg, \%reinstall_subs);
+ });
return;
@@ -1197,7 +1203,7 @@ sub _one_invocation {
sub _make_fatal {
my($class, $sub, $pkg, $void, $lexical, $filename, $insist, $install_subs) = @_;
- my($code, $sref, $real_proto, $proto, $core, $call, $hints, $cache, $cache_type);
+ my($code, $sref, $proto, $core, $call, $hints, $cache, $cache_type);
my $ini = $sub;
my $name = $sub;
@@ -1236,6 +1242,9 @@ sub _make_fatal {
# This could be something that we've fatalised that
# was in core.
+ # Store the current sub in case we need to restore it.
+ $sref = \&$sub;
+
if ( $Package_Fatal{$sub} and exists($CORE_prototype_cache{"CORE::$name"})) {
# Something we previously made Fatal that was core.
@@ -1250,7 +1259,7 @@ sub _make_fatal {
# on, indicating this subroutine should be placed
# back when we're finished.
- $sref = \&$sub;
+
} else {
@@ -1258,7 +1267,7 @@ sub _make_fatal {
# then look-up the name of the original sub for the rest of
# our processing.
- if (exists($Is_fatalised_sub{\&$sub})) {
+ if (exists($Is_fatalised_sub{$sref})) {
# $sub is one of our wrappers around a CORE sub or a
# user sub. Instead of wrapping our wrapper, lets just
# generate a new wrapper for the original sub.
@@ -1267,7 +1276,7 @@ sub _make_fatal {
# mixing between use Fatal + use autodie can occur).
# - Even for nested autodie, we need this as the leak guards
# differ.
- my $s = $Is_fatalised_sub{\&$sub};
+ my $s = $Is_fatalised_sub{$sref};
if (defined($s)) {
# It is a wrapper for a user sub
$sub = $s;
@@ -1282,7 +1291,6 @@ sub _make_fatal {
# A regular user sub, or a user sub wrapping a
# core sub.
- $sref = \&$sub;
if (!$core) {
# A non-CORE sub might have hints and such...
$proto = prototype($sref);
@@ -1434,14 +1442,8 @@ sub _make_fatal {
my $installed_sub = $code;
if ($lexical) {
- my $real_proto = '';
- if (defined $proto) {
- $real_proto = " ($proto)";
- } else {
- $proto = '@';
- }
$installed_sub = $class->_make_leak_guard($filename, $code, $sref, $call,
- $pkg, $proto, $real_proto);
+ $pkg, $proto);
}
$cache->{$cache_type} = $code;
@@ -1509,7 +1511,7 @@ sub exception_class { return "autodie::exception" };
# Creates and returns a leak guard (with prototype if needed).
sub _make_leak_guard {
- my ($class, $filename, $wrapped_sub, $orig_sub, $call, $pkg, $proto, $real_proto) = @_;
+ my ($class, $filename, $wrapped_sub, $orig_sub, $call, $pkg, $proto) = @_;
# The leak guard is rather lengthly (in fact it makes up the most
# of _make_leak_guard). It is possible to split it into a large
@@ -1632,7 +1634,7 @@ sub _make_leak_guard {
# If there is a prototype on the original sub, copy it to the leak
# guard.
- if ($real_proto ne '') {
+ if (defined $proto) {
# The "\&" may appear to be redundant but set_prototype
# croaks when it is removed.
set_prototype(\&$leak_guard, $proto);
@@ -1758,24 +1760,6 @@ sub _autocroak {
exit(255); # Ugh!
}
-package autodie::Scope::Guard;
-
-# This code schedules the cleanup of subroutines at the end of
-# scope. It's directly inspired by chocolateboy's excellent
-# Scope::Guard module.
-
-sub new {
- my ($class, $handler) = @_;
-
- return bless $handler, $class;
-}
-
-sub DESTROY {
- my ($self) = @_;
-
- $self->();
-}
-
1;
__END__
diff --git a/Master/tlpkg/tlperl/lib/Fcntl.pm b/Master/tlpkg/tlperl/lib/Fcntl.pm
index cc35ff02be8..fa5f3935025 100644
--- a/Master/tlpkg/tlperl/lib/Fcntl.pm
+++ b/Master/tlpkg/tlperl/lib/Fcntl.pm
@@ -61,7 +61,7 @@ our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
require Exporter;
require XSLoader;
@ISA = qw(Exporter);
-$VERSION = '1.11';
+$VERSION = '1.13';
XSLoader::load();
@@ -169,18 +169,25 @@ XSLoader::load();
DN_MULTISHOT
DN_RENAME
F_GETLEASE
+ F_GETPIPE_SZ
F_GETSIG
F_NOTIFY
F_SETLEASE
+ F_SETPIPE_SZ
F_SETSIG
LOCK_MAND
LOCK_READ
LOCK_RW
LOCK_WRITE
+ O_ALT_IO
+ O_EVTONLY
O_IGNORE_CTTY
O_NOATIME
O_NOLINK
+ O_NOSIGPIPE
O_NOTRANS
+ O_SYMLINK
+ O_TTY_INIT
), map {@{$_}} values %EXPORT_TAGS);
1;
diff --git a/Master/tlpkg/tlperl/lib/File/Find.pm b/Master/tlpkg/tlperl/lib/File/Find.pm
index 6cfdb59aef3..af2a2e7a6f4 100644
--- a/Master/tlpkg/tlperl/lib/File/Find.pm
+++ b/Master/tlpkg/tlperl/lib/File/Find.pm
@@ -3,353 +3,10 @@ use 5.006;
use strict;
use warnings;
use warnings::register;
-our $VERSION = '1.27';
+our $VERSION = '1.29';
require Exporter;
require Cwd;
-#
-# Modified to ensure sub-directory traversal order is not inverted by stack
-# push and pops. That is remains in the same order as in the directory file,
-# or user pre-processing (EG:sorted).
-#
-
-=head1 NAME
-
-File::Find - Traverse a directory tree.
-
-=head1 SYNOPSIS
-
- use File::Find;
- find(\&wanted, @directories_to_search);
- sub wanted { ... }
-
- use File::Find;
- finddepth(\&wanted, @directories_to_search);
- sub wanted { ... }
-
- use File::Find;
- find({ wanted => \&process, follow => 1 }, '.');
-
-=head1 DESCRIPTION
-
-These are functions for searching through directory trees doing work
-on each file found similar to the Unix I<find> command. File::Find
-exports two functions, C<find> and C<finddepth>. They work similarly
-but have subtle differences.
-
-=over 4
-
-=item B<find>
-
- find(\&wanted, @directories);
- find(\%options, @directories);
-
-C<find()> does a depth-first search over the given C<@directories> in
-the order they are given. For each file or directory found, it calls
-the C<&wanted> subroutine. (See below for details on how to use the
-C<&wanted> function). Additionally, for each directory found, it will
-C<chdir()> into that directory and continue the search, invoking the
-C<&wanted> function on each file or subdirectory in the directory.
-
-=item B<finddepth>
-
- finddepth(\&wanted, @directories);
- finddepth(\%options, @directories);
-
-C<finddepth()> works just like C<find()> except that it invokes the
-C<&wanted> function for a directory I<after> invoking it for the
-directory's contents. It does a postorder traversal instead of a
-preorder traversal, working from the bottom of the directory tree up
-where C<find()> works from the top of the tree down.
-
-=back
-
-=head2 %options
-
-The first argument to C<find()> is either a code reference to your
-C<&wanted> function, or a hash reference describing the operations
-to be performed for each file. The
-code reference is described in L<The wanted function> below.
-
-Here are the possible keys for the hash:
-
-=over 3
-
-=item C<wanted>
-
-The value should be a code reference. This code reference is
-described in L<The wanted function> below. The C<&wanted> subroutine is
-mandatory.
-
-=item C<bydepth>
-
-Reports the name of a directory only AFTER all its entries
-have been reported. Entry point C<finddepth()> is a shortcut for
-specifying C<< { bydepth => 1 } >> in the first argument of C<find()>.
-
-=item C<preprocess>
-
-The value should be a code reference. This code reference is used to
-preprocess the current directory. The name of the currently processed
-directory is in C<$File::Find::dir>. Your preprocessing function is
-called after C<readdir()>, but before the loop that calls the C<wanted()>
-function. It is called with a list of strings (actually file/directory
-names) and is expected to return a list of strings. The code can be
-used to sort the file/directory names alphabetically, numerically,
-or to filter out directory entries based on their name alone. When
-I<follow> or I<follow_fast> are in effect, C<preprocess> is a no-op.
-
-=item C<postprocess>
-
-The value should be a code reference. It is invoked just before leaving
-the currently processed directory. It is called in void context with no
-arguments. The name of the current directory is in C<$File::Find::dir>. This
-hook is handy for summarizing a directory, such as calculating its disk
-usage. When I<follow> or I<follow_fast> are in effect, C<postprocess> is a
-no-op.
-
-=item C<follow>
-
-Causes symbolic links to be followed. Since directory trees with symbolic
-links (followed) may contain files more than once and may even have
-cycles, a hash has to be built up with an entry for each file.
-This might be expensive both in space and time for a large
-directory tree. See L</follow_fast> and L</follow_skip> below.
-If either I<follow> or I<follow_fast> is in effect:
-
-=over 6
-
-=item *
-
-It is guaranteed that an I<lstat> has been called before the user's
-C<wanted()> function is called. This enables fast file checks involving S<_>.
-Note that this guarantee no longer holds if I<follow> or I<follow_fast>
-are not set.
-
-=item *
-
-There is a variable C<$File::Find::fullname> which holds the absolute
-pathname of the file with all symbolic links resolved. If the link is
-a dangling symbolic link, then fullname will be set to C<undef>.
-
-=back
-
-This is a no-op on Win32.
-
-=item C<follow_fast>
-
-This is similar to I<follow> except that it may report some files more
-than once. It does detect cycles, however. Since only symbolic links
-have to be hashed, this is much cheaper both in space and time. If
-processing a file more than once (by the user's C<wanted()> function)
-is worse than just taking time, the option I<follow> should be used.
-
-This is also a no-op on Win32.
-
-=item C<follow_skip>
-
-C<follow_skip==1>, which is the default, causes all files which are
-neither directories nor symbolic links to be ignored if they are about
-to be processed a second time. If a directory or a symbolic link
-are about to be processed a second time, File::Find dies.
-
-C<follow_skip==0> causes File::Find to die if any file is about to be
-processed a second time.
-
-C<follow_skip==2> causes File::Find to ignore any duplicate files and
-directories but to proceed normally otherwise.
-
-=item C<dangling_symlinks>
-
-If true and a code reference, will be called with the symbolic link
-name and the directory it lives in as arguments. Otherwise, if true
-and warnings are on, warning "symbolic_link_name is a dangling
-symbolic link\n" will be issued. If false, the dangling symbolic link
-will be silently ignored.
-
-=item C<no_chdir>
-
-Does not C<chdir()> to each directory as it recurses. The C<wanted()>
-function will need to be aware of this, of course. In this case,
-C<$_> will be the same as C<$File::Find::name>.
-
-=item C<untaint>
-
-If find is used in taint-mode (-T command line switch or if EUID != UID
-or if EGID != GID) then internally directory names have to be untainted
-before they can be chdir'ed to. Therefore they are checked against a regular
-expression I<untaint_pattern>. Note that all names passed to the user's
-I<wanted()> function are still tainted. If this option is used while
-not in taint-mode, C<untaint> is a no-op.
-
-=item C<untaint_pattern>
-
-See above. This should be set using the C<qr> quoting operator.
-The default is set to C<qr|^([-+@\w./]+)$|>.
-Note that the parentheses are vital.
-
-=item C<untaint_skip>
-
-If set, a directory which fails the I<untaint_pattern> is skipped,
-including all its sub-directories. The default is to 'die' in such a case.
-
-=back
-
-=head2 The wanted function
-
-The C<wanted()> function does whatever verifications you want on
-each file and directory. Note that despite its name, the C<wanted()>
-function is a generic callback function, and does B<not> tell
-File::Find if a file is "wanted" or not. In fact, its return value
-is ignored.
-
-The wanted function takes no arguments but rather does its work
-through a collection of variables.
-
-=over 4
-
-=item C<$File::Find::dir> is the current directory name,
-
-=item C<$_> is the current filename within that directory
-
-=item C<$File::Find::name> is the complete pathname to the file.
-
-=back
-
-The above variables have all been localized and may be changed without
-affecting data outside of the wanted function.
-
-For example, when examining the file F</some/path/foo.ext> you will have:
-
- $File::Find::dir = /some/path/
- $_ = foo.ext
- $File::Find::name = /some/path/foo.ext
-
-You are chdir()'d to C<$File::Find::dir> when the function is called,
-unless C<no_chdir> was specified. Note that when changing to
-directories is in effect the root directory (F</>) is a somewhat
-special case inasmuch as the concatenation of C<$File::Find::dir>,
-C<'/'> and C<$_> is not literally equal to C<$File::Find::name>. The
-table below summarizes all variants:
-
- $File::Find::name $File::Find::dir $_
- default / / .
- no_chdir=>0 /etc / etc
- /etc/x /etc x
-
- no_chdir=>1 / / /
- /etc / /etc
- /etc/x /etc /etc/x
-
-
-When C<follow> or C<follow_fast> are in effect, there is
-also a C<$File::Find::fullname>. The function may set
-C<$File::Find::prune> to prune the tree unless C<bydepth> was
-specified. Unless C<follow> or C<follow_fast> is specified, for
-compatibility reasons (find.pl, find2perl) there are in addition the
-following globals available: C<$File::Find::topdir>,
-C<$File::Find::topdev>, C<$File::Find::topino>,
-C<$File::Find::topmode> and C<$File::Find::topnlink>.
-
-This library is useful for the C<find2perl> tool, which when fed,
-
- find2perl / -name .nfs\* -mtime +7 \
- -exec rm -f {} \; -o -fstype nfs -prune
-
-produces something like:
-
- sub wanted {
- /^\.nfs.*\z/s &&
- (($dev, $ino, $mode, $nlink, $uid, $gid) = lstat($_)) &&
- int(-M _) > 7 &&
- unlink($_)
- ||
- ($nlink || (($dev, $ino, $mode, $nlink, $uid, $gid) = lstat($_))) &&
- $dev < 0 &&
- ($File::Find::prune = 1);
- }
-
-Notice the C<_> in the above C<int(-M _)>: the C<_> is a magical
-filehandle that caches the information from the preceding
-C<stat()>, C<lstat()>, or filetest.
-
-Here's another interesting wanted function. It will find all symbolic
-links that don't resolve:
-
- sub wanted {
- -l && !-e && print "bogus link: $File::Find::name\n";
- }
-
-Note that you may mix directories and (non-directory) files in the list of
-directories to be searched by the C<wanted()> function.
-
- find(\&wanted, "./foo", "./bar", "./baz/epsilon");
-
-In the example above, no file in F<./baz/> other than F<./baz/epsilon> will be
-evaluated by C<wanted()>.
-
-See also the script C<pfind> on CPAN for a nice application of this
-module.
-
-=head1 WARNINGS
-
-If you run your program with the C<-w> switch, or if you use the
-C<warnings> pragma, File::Find will report warnings for several weird
-situations. You can disable these warnings by putting the statement
-
- no warnings 'File::Find';
-
-in the appropriate scope. See L<warnings> for more info about lexical
-warnings.
-
-=head1 CAVEAT
-
-=over 2
-
-=item $dont_use_nlink
-
-You can set the variable C<$File::Find::dont_use_nlink> to 1, if you want to
-force File::Find to always stat directories. This was used for file systems
-that do not have an C<nlink> count matching the number of sub-directories.
-Examples are ISO-9660 (CD-ROM), AFS, HPFS (OS/2 file system), FAT (DOS file
-system) and a couple of others.
-
-You shouldn't need to set this variable, since File::Find should now detect
-such file systems on-the-fly and switch itself to using stat. This works even
-for parts of your file system, like a mounted CD-ROM.
-
-If you do set C<$File::Find::dont_use_nlink> to 1, you will notice slow-downs.
-
-=item symlinks
-
-Be aware that the option to follow symbolic links can be dangerous.
-Depending on the structure of the directory tree (including symbolic
-links to directories) you might traverse a given (physical) directory
-more than once (only if C<follow_fast> is in effect).
-Furthermore, deleting or changing files in a symbolically linked directory
-might cause very unpleasant surprises, since you delete or change files
-in an unknown directory.
-
-=back
-
-=head1 BUGS AND CAVEATS
-
-Despite the name of the C<finddepth()> function, both C<find()> and
-C<finddepth()> perform a depth-first search of the directory
-hierarchy.
-
-=head1 HISTORY
-
-File::Find used to produce incorrect results if called recursively.
-During the development of perl 5.8 this bug was fixed.
-The first fixed version of File::Find was 1.01.
-
-=head1 SEE ALSO
-
-find, find2perl.
-
-=cut
-
our @ISA = qw(Exporter);
our @EXPORT = qw(find finddepth);
@@ -1055,21 +712,42 @@ sub _find_dir_symlnk($$$) {
sub wrap_wanted {
my $wanted = shift;
if ( ref($wanted) eq 'HASH' ) {
+ # RT #122547
+ my %valid_options = map {$_ => 1} qw(
+ wanted
+ bydepth
+ preprocess
+ postprocess
+ follow
+ follow_fast
+ follow_skip
+ dangling_symlinks
+ no_chdir
+ untaint
+ untaint_pattern
+ untaint_skip
+ );
+ my @invalid_options = ();
+ for my $v (keys %{$wanted}) {
+ push @invalid_options, $v unless exists $valid_options{$v};
+ }
+ warn "Invalid option(s): @invalid_options" if @invalid_options;
+
unless( exists $wanted->{wanted} and ref( $wanted->{wanted} ) eq 'CODE' ) {
die 'no &wanted subroutine given';
}
- if ( $wanted->{follow} || $wanted->{follow_fast}) {
- $wanted->{follow_skip} = 1 unless defined $wanted->{follow_skip};
- }
- if ( $wanted->{untaint} ) {
- $wanted->{untaint_pattern} = $File::Find::untaint_pattern
- unless defined $wanted->{untaint_pattern};
- $wanted->{untaint_skip} = 0 unless defined $wanted->{untaint_skip};
- }
- return $wanted;
+ if ( $wanted->{follow} || $wanted->{follow_fast}) {
+ $wanted->{follow_skip} = 1 unless defined $wanted->{follow_skip};
+ }
+ if ( $wanted->{untaint} ) {
+ $wanted->{untaint_pattern} = $File::Find::untaint_pattern
+ unless defined $wanted->{untaint_pattern};
+ $wanted->{untaint_skip} = 0 unless defined $wanted->{untaint_skip};
+ }
+ return $wanted;
}
elsif( ref( $wanted ) eq 'CODE' ) {
- return { wanted => $wanted };
+ return { wanted => $wanted };
}
else {
die 'no &wanted subroutine given';
@@ -1127,3 +805,347 @@ unless ($File::Find::dont_use_nlink) {
}
1;
+
+__END__
+#
+# Modified to ensure sub-directory traversal order is not inverted by stack
+# push and pops. That is remains in the same order as in the directory file,
+# or user pre-processing (EG:sorted).
+#
+
+=head1 NAME
+
+File::Find - Traverse a directory tree.
+
+=head1 SYNOPSIS
+
+ use File::Find;
+ find(\&wanted, @directories_to_search);
+ sub wanted { ... }
+
+ use File::Find;
+ finddepth(\&wanted, @directories_to_search);
+ sub wanted { ... }
+
+ use File::Find;
+ find({ wanted => \&process, follow => 1 }, '.');
+
+=head1 DESCRIPTION
+
+These are functions for searching through directory trees doing work
+on each file found similar to the Unix I<find> command. File::Find
+exports two functions, C<find> and C<finddepth>. They work similarly
+but have subtle differences.
+
+=over 4
+
+=item B<find>
+
+ find(\&wanted, @directories);
+ find(\%options, @directories);
+
+C<find()> does a depth-first search over the given C<@directories> in
+the order they are given. For each file or directory found, it calls
+the C<&wanted> subroutine. (See below for details on how to use the
+C<&wanted> function). Additionally, for each directory found, it will
+C<chdir()> into that directory and continue the search, invoking the
+C<&wanted> function on each file or subdirectory in the directory.
+
+=item B<finddepth>
+
+ finddepth(\&wanted, @directories);
+ finddepth(\%options, @directories);
+
+C<finddepth()> works just like C<find()> except that it invokes the
+C<&wanted> function for a directory I<after> invoking it for the
+directory's contents. It does a postorder traversal instead of a
+preorder traversal, working from the bottom of the directory tree up
+where C<find()> works from the top of the tree down.
+
+=back
+
+=head2 %options
+
+The first argument to C<find()> is either a code reference to your
+C<&wanted> function, or a hash reference describing the operations
+to be performed for each file. The
+code reference is described in L<The wanted function> below.
+
+Here are the possible keys for the hash:
+
+=over 3
+
+=item C<wanted>
+
+The value should be a code reference. This code reference is
+described in L<The wanted function> below. The C<&wanted> subroutine is
+mandatory.
+
+=item C<bydepth>
+
+Reports the name of a directory only AFTER all its entries
+have been reported. Entry point C<finddepth()> is a shortcut for
+specifying C<< { bydepth => 1 } >> in the first argument of C<find()>.
+
+=item C<preprocess>
+
+The value should be a code reference. This code reference is used to
+preprocess the current directory. The name of the currently processed
+directory is in C<$File::Find::dir>. Your preprocessing function is
+called after C<readdir()>, but before the loop that calls the C<wanted()>
+function. It is called with a list of strings (actually file/directory
+names) and is expected to return a list of strings. The code can be
+used to sort the file/directory names alphabetically, numerically,
+or to filter out directory entries based on their name alone. When
+I<follow> or I<follow_fast> are in effect, C<preprocess> is a no-op.
+
+=item C<postprocess>
+
+The value should be a code reference. It is invoked just before leaving
+the currently processed directory. It is called in void context with no
+arguments. The name of the current directory is in C<$File::Find::dir>. This
+hook is handy for summarizing a directory, such as calculating its disk
+usage. When I<follow> or I<follow_fast> are in effect, C<postprocess> is a
+no-op.
+
+=item C<follow>
+
+Causes symbolic links to be followed. Since directory trees with symbolic
+links (followed) may contain files more than once and may even have
+cycles, a hash has to be built up with an entry for each file.
+This might be expensive both in space and time for a large
+directory tree. See L</follow_fast> and L</follow_skip> below.
+If either I<follow> or I<follow_fast> is in effect:
+
+=over 6
+
+=item *
+
+It is guaranteed that an I<lstat> has been called before the user's
+C<wanted()> function is called. This enables fast file checks involving S<_>.
+Note that this guarantee no longer holds if I<follow> or I<follow_fast>
+are not set.
+
+=item *
+
+There is a variable C<$File::Find::fullname> which holds the absolute
+pathname of the file with all symbolic links resolved. If the link is
+a dangling symbolic link, then fullname will be set to C<undef>.
+
+=back
+
+This is a no-op on Win32.
+
+=item C<follow_fast>
+
+This is similar to I<follow> except that it may report some files more
+than once. It does detect cycles, however. Since only symbolic links
+have to be hashed, this is much cheaper both in space and time. If
+processing a file more than once (by the user's C<wanted()> function)
+is worse than just taking time, the option I<follow> should be used.
+
+This is also a no-op on Win32.
+
+=item C<follow_skip>
+
+C<follow_skip==1>, which is the default, causes all files which are
+neither directories nor symbolic links to be ignored if they are about
+to be processed a second time. If a directory or a symbolic link
+are about to be processed a second time, File::Find dies.
+
+C<follow_skip==0> causes File::Find to die if any file is about to be
+processed a second time.
+
+C<follow_skip==2> causes File::Find to ignore any duplicate files and
+directories but to proceed normally otherwise.
+
+=item C<dangling_symlinks>
+
+If true and a code reference, will be called with the symbolic link
+name and the directory it lives in as arguments. Otherwise, if true
+and warnings are on, warning "symbolic_link_name is a dangling
+symbolic link\n" will be issued. If false, the dangling symbolic link
+will be silently ignored.
+
+=item C<no_chdir>
+
+Does not C<chdir()> to each directory as it recurses. The C<wanted()>
+function will need to be aware of this, of course. In this case,
+C<$_> will be the same as C<$File::Find::name>.
+
+=item C<untaint>
+
+If find is used in taint-mode (-T command line switch or if EUID != UID
+or if EGID != GID) then internally directory names have to be untainted
+before they can be chdir'ed to. Therefore they are checked against a regular
+expression I<untaint_pattern>. Note that all names passed to the user's
+I<wanted()> function are still tainted. If this option is used while
+not in taint-mode, C<untaint> is a no-op.
+
+=item C<untaint_pattern>
+
+See above. This should be set using the C<qr> quoting operator.
+The default is set to C<qr|^([-+@\w./]+)$|>.
+Note that the parentheses are vital.
+
+=item C<untaint_skip>
+
+If set, a directory which fails the I<untaint_pattern> is skipped,
+including all its sub-directories. The default is to 'die' in such a case.
+
+=back
+
+=head2 The wanted function
+
+The C<wanted()> function does whatever verifications you want on
+each file and directory. Note that despite its name, the C<wanted()>
+function is a generic callback function, and does B<not> tell
+File::Find if a file is "wanted" or not. In fact, its return value
+is ignored.
+
+The wanted function takes no arguments but rather does its work
+through a collection of variables.
+
+=over 4
+
+=item C<$File::Find::dir> is the current directory name,
+
+=item C<$_> is the current filename within that directory
+
+=item C<$File::Find::name> is the complete pathname to the file.
+
+=back
+
+The above variables have all been localized and may be changed without
+affecting data outside of the wanted function.
+
+For example, when examining the file F</some/path/foo.ext> you will have:
+
+ $File::Find::dir = /some/path/
+ $_ = foo.ext
+ $File::Find::name = /some/path/foo.ext
+
+You are chdir()'d to C<$File::Find::dir> when the function is called,
+unless C<no_chdir> was specified. Note that when changing to
+directories is in effect the root directory (F</>) is a somewhat
+special case inasmuch as the concatenation of C<$File::Find::dir>,
+C<'/'> and C<$_> is not literally equal to C<$File::Find::name>. The
+table below summarizes all variants:
+
+ $File::Find::name $File::Find::dir $_
+ default / / .
+ no_chdir=>0 /etc / etc
+ /etc/x /etc x
+
+ no_chdir=>1 / / /
+ /etc / /etc
+ /etc/x /etc /etc/x
+
+
+When C<follow> or C<follow_fast> are in effect, there is
+also a C<$File::Find::fullname>. The function may set
+C<$File::Find::prune> to prune the tree unless C<bydepth> was
+specified. Unless C<follow> or C<follow_fast> is specified, for
+compatibility reasons (find.pl, find2perl) there are in addition the
+following globals available: C<$File::Find::topdir>,
+C<$File::Find::topdev>, C<$File::Find::topino>,
+C<$File::Find::topmode> and C<$File::Find::topnlink>.
+
+This library is useful for the C<find2perl> tool, which when fed,
+
+ find2perl / -name .nfs\* -mtime +7 \
+ -exec rm -f {} \; -o -fstype nfs -prune
+
+produces something like:
+
+ sub wanted {
+ /^\.nfs.*\z/s &&
+ (($dev, $ino, $mode, $nlink, $uid, $gid) = lstat($_)) &&
+ int(-M _) > 7 &&
+ unlink($_)
+ ||
+ ($nlink || (($dev, $ino, $mode, $nlink, $uid, $gid) = lstat($_))) &&
+ $dev < 0 &&
+ ($File::Find::prune = 1);
+ }
+
+Notice the C<_> in the above C<int(-M _)>: the C<_> is a magical
+filehandle that caches the information from the preceding
+C<stat()>, C<lstat()>, or filetest.
+
+Here's another interesting wanted function. It will find all symbolic
+links that don't resolve:
+
+ sub wanted {
+ -l && !-e && print "bogus link: $File::Find::name\n";
+ }
+
+Note that you may mix directories and (non-directory) files in the list of
+directories to be searched by the C<wanted()> function.
+
+ find(\&wanted, "./foo", "./bar", "./baz/epsilon");
+
+In the example above, no file in F<./baz/> other than F<./baz/epsilon> will be
+evaluated by C<wanted()>.
+
+See also the script C<pfind> on CPAN for a nice application of this
+module.
+
+=head1 WARNINGS
+
+If you run your program with the C<-w> switch, or if you use the
+C<warnings> pragma, File::Find will report warnings for several weird
+situations. You can disable these warnings by putting the statement
+
+ no warnings 'File::Find';
+
+in the appropriate scope. See L<warnings> for more info about lexical
+warnings.
+
+=head1 CAVEAT
+
+=over 2
+
+=item $dont_use_nlink
+
+You can set the variable C<$File::Find::dont_use_nlink> to 1, if you want to
+force File::Find to always stat directories. This was used for file systems
+that do not have an C<nlink> count matching the number of sub-directories.
+Examples are ISO-9660 (CD-ROM), AFS, HPFS (OS/2 file system), FAT (DOS file
+system) and a couple of others.
+
+You shouldn't need to set this variable, since File::Find should now detect
+such file systems on-the-fly and switch itself to using stat. This works even
+for parts of your file system, like a mounted CD-ROM.
+
+If you do set C<$File::Find::dont_use_nlink> to 1, you will notice slow-downs.
+
+=item symlinks
+
+Be aware that the option to follow symbolic links can be dangerous.
+Depending on the structure of the directory tree (including symbolic
+links to directories) you might traverse a given (physical) directory
+more than once (only if C<follow_fast> is in effect).
+Furthermore, deleting or changing files in a symbolically linked directory
+might cause very unpleasant surprises, since you delete or change files
+in an unknown directory.
+
+=back
+
+=head1 BUGS AND CAVEATS
+
+Despite the name of the C<finddepth()> function, both C<find()> and
+C<finddepth()> perform a depth-first search of the directory
+hierarchy.
+
+=head1 HISTORY
+
+File::Find used to produce incorrect results if called recursively.
+During the development of perl 5.8 this bug was fixed.
+The first fixed version of File::Find was 1.01.
+
+=head1 SEE ALSO
+
+find, find2perl.
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/File/Glob.pm b/Master/tlpkg/tlperl/lib/File/Glob.pm
index 2b39dce6a8e..de6f72d7c36 100644
--- a/Master/tlpkg/tlperl/lib/File/Glob.pm
+++ b/Master/tlpkg/tlperl/lib/File/Glob.pm
@@ -37,7 +37,7 @@ pop @{$EXPORT_TAGS{bsd_glob}}; # no "glob"
@EXPORT_OK = (@{$EXPORT_TAGS{'glob'}}, 'csh_glob');
-$VERSION = '1.23';
+$VERSION = '1.24';
sub import {
require Exporter;
diff --git a/Master/tlpkg/tlperl/lib/File/Listing.pm b/Master/tlpkg/tlperl/lib/File/Listing.pm
deleted file mode 100644
index c8d72a7185f..00000000000
--- a/Master/tlpkg/tlperl/lib/File/Listing.pm
+++ /dev/null
@@ -1,435 +0,0 @@
-package File::Listing;
-
-sub Version { $VERSION; }
-$VERSION = "6.04";
-
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(parse_dir);
-
-use strict;
-
-use Carp ();
-use HTTP::Date qw(str2time);
-
-
-
-sub parse_dir ($;$$$)
-{
- my($dir, $tz, $fstype, $error) = @_;
-
- $fstype ||= 'unix';
- $fstype = "File::Listing::" . lc $fstype;
-
- my @args = $_[0];
- push(@args, $tz) if(@_ >= 2);
- push(@args, $error) if(@_ >= 4);
-
- $fstype->parse(@args);
-}
-
-
-sub line { Carp::croak("Not implemented yet"); }
-sub init { } # Dummy sub
-
-
-sub file_mode ($)
-{
- Carp::croak("Input to file_mode() must be a 10 character string.")
- unless length($_[0]) == 10;
-
- # This routine was originally borrowed from Graham Barr's
- # Net::FTP package.
-
- local $_ = shift;
- my $mode = 0;
- my($type);
-
- s/^(.)// and $type = $1;
-
- # When the set-group-ID bit (file mode bit 02000) is set, and the group
- # execution bit (file mode bit 00020) is unset, and it is a regular file,
- # some implementations of `ls' use the letter `S', others use `l' or `L'.
- # Convert this `S'.
-
- s/[Ll](...)$/S$1/;
-
- while (/(.)/g) {
- $mode <<= 1;
- $mode |= 1 if $1 ne "-" &&
- $1 ne 'S' &&
- $1 ne 'T';
- }
-
- $mode |= 0004000 if /^..s....../i;
- $mode |= 0002000 if /^.....s.../i;
- $mode |= 0001000 if /^........t/i;
-
- # De facto standard definitions. From 'stat.h' on Solaris 9.
-
- $type eq "p" and $mode |= 0010000 or # fifo
- $type eq "c" and $mode |= 0020000 or # character special
- $type eq "d" and $mode |= 0040000 or # directory
- $type eq "b" and $mode |= 0060000 or # block special
- $type eq "-" and $mode |= 0100000 or # regular
- $type eq "l" and $mode |= 0120000 or # symbolic link
- $type eq "s" and $mode |= 0140000 or # socket
- $type eq "D" and $mode |= 0150000 or # door
- Carp::croak("Unknown file type: $type");
-
- $mode;
-}
-
-
-sub parse
-{
- my($pkg, $dir, $tz, $error) = @_;
-
- # First let's try to determine what kind of dir parameter we have
- # received. We allow both listings, reference to arrays and
- # file handles to read from.
-
- if (ref($dir) eq 'ARRAY') {
- # Already splitted up
- }
- elsif (ref($dir) eq 'GLOB') {
- # A file handle
- }
- elsif (ref($dir)) {
- Carp::croak("Illegal argument to parse_dir()");
- }
- elsif ($dir =~ /^\*\w+(::\w+)+$/) {
- # This scalar looks like a file handle, so we assume it is
- }
- else {
- # A normal scalar listing
- $dir = [ split(/\n/, $dir) ];
- }
-
- $pkg->init();
-
- my @files = ();
- if (ref($dir) eq 'ARRAY') {
- for (@$dir) {
- push(@files, $pkg->line($_, $tz, $error));
- }
- }
- else {
- local($_);
- while (<$dir>) {
- chomp;
- push(@files, $pkg->line($_, $tz, $error));
- }
- }
- wantarray ? @files : \@files;
-}
-
-
-
-package File::Listing::unix;
-
-use HTTP::Date qw(str2time);
-
-# A place to remember current directory from last line parsed.
-use vars qw($curdir @ISA);
-
-@ISA = qw(File::Listing);
-
-
-
-sub init
-{
- $curdir = '';
-}
-
-
-sub line
-{
- shift; # package name
- local($_) = shift;
- my($tz, $error) = @_;
-
- s/\015//g;
- #study;
-
- my ($kind, $size, $date, $name);
- if (($kind, $size, $date, $name) =
- /^([\-FlrwxsStTdD]{10}) # Type and permission bits
- .* # Graps
- \D(\d+) # File size
- \s+ # Some space
- (\w{3}\s+\d+\s+(?:\d{1,2}:\d{2}|\d{4})|\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}) # Date
- \s+ # Some more space
- (.*)$ # File name
- /x )
-
- {
- return if $name eq '.' || $name eq '..';
- $name = "$curdir/$name" if length $curdir;
- my $type = '?';
- if ($kind =~ /^l/ && $name =~ /(.*) -> (.*)/ ) {
- $name = $1;
- $type = "l $2";
- }
- elsif ($kind =~ /^[\-F]/) { # (hopefully) a regular file
- $type = 'f';
- }
- elsif ($kind =~ /^[dD]/) {
- $type = 'd';
- $size = undef; # Don't believe the reported size
- }
- return [$name, $type, $size, str2time($date, $tz),
- File::Listing::file_mode($kind)];
-
- }
- elsif (/^(.+):$/ && !/^[dcbsp].*\s.*\s.*:$/ ) {
- my $dir = $1;
- return () if $dir eq '.';
- $curdir = $dir;
- return ();
- }
- elsif (/^[Tt]otal\s+(\d+)$/ || /^\s*$/) {
- return ();
- }
- elsif (/not found/ || # OSF1, HPUX, and SunOS return
- # "$file not found"
- /No such file/ || # IRIX returns
- # "UX:ls: ERROR: Cannot access $file: No such file or directory"
- # Solaris returns
- # "$file: No such file or directory"
- /cannot find/ # Windows NT returns
- # "The system cannot find the path specified."
- ) {
- return () unless defined $error;
- &$error($_) if ref($error) eq 'CODE';
- warn "Error: $_\n" if $error eq 'warn';
- return ();
- }
- elsif ($_ eq '') { # AIX, and Linux return nothing
- return () unless defined $error;
- &$error("No such file or directory") if ref($error) eq 'CODE';
- warn "Warning: No such file or directory\n" if $error eq 'warn';
- return ();
- }
- else {
- # parse failed, check if the dosftp parse understands it
- File::Listing::dosftp->init();
- return(File::Listing::dosftp->line($_,$tz,$error));
- }
-
-}
-
-
-
-package File::Listing::dosftp;
-
-use HTTP::Date qw(str2time);
-
-# A place to remember current directory from last line parsed.
-use vars qw($curdir @ISA);
-
-@ISA = qw(File::Listing);
-
-
-
-sub init
-{
- $curdir = '';
-}
-
-
-sub line
-{
- shift; # package name
- local($_) = shift;
- my($tz, $error) = @_;
-
- s/\015//g;
-
- my ($date, $size_or_dir, $name, $size);
-
- # 02-05-96 10:48AM 1415 src.slf
- # 09-10-96 09:18AM <DIR> sl_util
- if (($date, $size_or_dir, $name) =
- /^(\d\d-\d\d-\d\d\s+\d\d:\d\d\wM) # Date and time info
- \s+ # Some space
- (<\w{3}>|\d+) # Dir or Size
- \s+ # Some more space
- (.+)$ # File name
- /x )
- {
- return if $name eq '.' || $name eq '..';
- $name = "$curdir/$name" if length $curdir;
- my $type = '?';
- if ($size_or_dir eq '<DIR>') {
- $type = "d";
- $size = ""; # directories have no size in the pc listing
- }
- else {
- $type = 'f';
- $size = $size_or_dir;
- }
- return [$name, $type, $size, str2time($date, $tz), undef];
- }
- else {
- return () unless defined $error;
- &$error($_) if ref($error) eq 'CODE';
- warn "Can't parse: $_\n" if $error eq 'warn';
- return ();
- }
-
-}
-
-
-
-package File::Listing::vms;
-@File::Listing::vms::ISA = qw(File::Listing);
-
-package File::Listing::netware;
-@File::Listing::netware::ISA = qw(File::Listing);
-
-
-
-package File::Listing::apache;
-
-use vars qw(@ISA);
-
-@ISA = qw(File::Listing);
-
-
-sub init { }
-
-
-sub line {
- shift; # package name
- local($_) = shift;
- my($tz, $error) = @_; # ignored for now...
-
- s!</?t[rd][^>]*>! !g; # clean away various table stuff
- if (m!<A\s+HREF=\"([^\"]+)\">.*</A>.*?(\d+)-([a-zA-Z]+|\d+)-(\d+)\s+(\d+):(\d+)\s+(?:([\d\.]+[kMG]?|-))!i) {
- my($filename, $filesize) = ($1, $7);
- my($d,$m,$y, $H,$M) = ($2,$3,$4,$5,$6);
- if ($m =~ /^\d+$/) {
- ($d,$y) = ($y,$d) # iso date
- }
- else {
- $m = _monthabbrev_number($m);
- }
-
- $filesize = 0 if $filesize eq '-';
- if ($filesize =~ s/k$//i) {
- $filesize *= 1024;
- }
- elsif ($filesize =~ s/M$//) {
- $filesize *= 1024*1024;
- }
- elsif ($filesize =~ s/G$//) {
- $filesize *= 1024*1024*1024;
- }
- $filesize = int $filesize;
-
- require Time::Local;
- my $filetime = Time::Local::timelocal(0,$M,$H,$d,$m-1,_guess_year($y)-1900);
- my $filetype = ($filename =~ s|/$|| ? "d" : "f");
- return [$filename, $filetype, $filesize, $filetime, undef];
- }
-
- return ();
-}
-
-
-sub _guess_year {
- my $y = shift;
- if ($y >= 90) {
- $y = 1900+$y;
- }
- elsif ($y < 100) {
- $y = 2000+$y;
- }
- $y;
-}
-
-
-sub _monthabbrev_number {
- my $mon = shift;
- +{'Jan' => 1,
- 'Feb' => 2,
- 'Mar' => 3,
- 'Apr' => 4,
- 'May' => 5,
- 'Jun' => 6,
- 'Jul' => 7,
- 'Aug' => 8,
- 'Sep' => 9,
- 'Oct' => 10,
- 'Nov' => 11,
- 'Dec' => 12,
- }->{$mon};
-}
-
-
-1;
-
-__END__
-
-=head1 NAME
-
-File::Listing - parse directory listing
-
-=head1 SYNOPSIS
-
- use File::Listing qw(parse_dir);
- $ENV{LANG} = "C"; # dates in non-English locales not supported
- for (parse_dir(`ls -l`)) {
- ($name, $type, $size, $mtime, $mode) = @$_;
- next if $type ne 'f'; # plain file
- #...
- }
-
- # directory listing can also be read from a file
- open(LISTING, "zcat ls-lR.gz|");
- $dir = parse_dir(\*LISTING, '+0000');
-
-=head1 DESCRIPTION
-
-This module exports a single function called parse_dir(), which can be
-used to parse directory listings.
-
-The first parameter to parse_dir() is the directory listing to parse.
-It can be a scalar, a reference to an array of directory lines or a
-glob representing a filehandle to read the directory listing from.
-
-The second parameter is the time zone to use when parsing time stamps
-in the listing. If this value is undefined, then the local time zone is
-assumed.
-
-The third parameter is the type of listing to assume. Currently
-supported formats are 'unix', 'apache' and 'dosftp'. The default
-value is 'unix'. Ideally, the listing type should be determined
-automatically.
-
-The fourth parameter specifies how unparseable lines should be treated.
-Values can be 'ignore', 'warn' or a code reference. Warn means that
-the perl warn() function will be called. If a code reference is
-passed, then this routine will be called and the return value from it
-will be incorporated in the listing. The default is 'ignore'.
-
-Only the first parameter is mandatory.
-
-The return value from parse_dir() is a list of directory entries. In
-a scalar context the return value is a reference to the list. The
-directory entries are represented by an array consisting of [
-$filename, $filetype, $filesize, $filetime, $filemode ]. The
-$filetype value is one of the letters 'f', 'd', 'l' or '?'. The
-$filetime value is the seconds since Jan 1, 1970. The
-$filemode is a bitmask like the mode returned by stat().
-
-=head1 COPYRIGHT
-
-Copyright 1996-2010, Gisle Aas
-
-Based on lsparse.pl (from Lee McLoughlin's ftp mirror package) and
-Net::FTP's parse_dir (Graham Barr).
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/File/Spec.pm b/Master/tlpkg/tlperl/lib/File/Spec.pm
index 01a616eaedc..8c77c986e39 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec.pm
@@ -3,7 +3,7 @@ package File::Spec;
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '3.48_01';
+$VERSION = '3.56';
$VERSION =~ tr/_//;
my %module = (MacOS => 'Mac',
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/Cygwin.pm b/Master/tlpkg/tlperl/lib/File/Spec/Cygwin.pm
index b9e3703bf46..1b77e6adbd1 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/Cygwin.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/Cygwin.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.48_01';
+$VERSION = '3.56';
$VERSION =~ tr/_//;
@ISA = qw(File::Spec::Unix);
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/Epoc.pm b/Master/tlpkg/tlperl/lib/File/Spec/Epoc.pm
index e5928b83558..7bc386768ec 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/Epoc.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/Epoc.pm
@@ -3,7 +3,7 @@ package File::Spec::Epoc;
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '3.48_01';
+$VERSION = '3.56';
$VERSION =~ tr/_//;
require File::Spec::Unix;
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/Functions.pm b/Master/tlpkg/tlperl/lib/File/Spec/Functions.pm
index 451f5bd735f..8eafe2483b9 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/Functions.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/Functions.pm
@@ -5,7 +5,7 @@ use strict;
use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION);
-$VERSION = '3.48_01';
+$VERSION = '3.56';
$VERSION =~ tr/_//;
require Exporter;
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/Mac.pm b/Master/tlpkg/tlperl/lib/File/Spec/Mac.pm
index b0aacecf5a4..02cae14b740 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/Mac.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/Mac.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.48_01';
+$VERSION = '3.56';
$VERSION =~ tr/_//;
@ISA = qw(File::Spec::Unix);
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/OS2.pm b/Master/tlpkg/tlperl/lib/File/Spec/OS2.pm
index 7de0f891cb1..fb8f101692f 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/OS2.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/OS2.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.48_01';
+$VERSION = '3.56';
$VERSION =~ tr/_//;
@ISA = qw(File::Spec::Unix);
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/Unix.pm b/Master/tlpkg/tlperl/lib/File/Spec/Unix.pm
index c813cc170df..f76b29e3566 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/Unix.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/Unix.pm
@@ -3,12 +3,15 @@ package File::Spec::Unix;
use strict;
use vars qw($VERSION);
-$VERSION = '3.48_01';
+$VERSION = '3.56';
my $xs_version = $VERSION;
$VERSION =~ tr/_//;
-unless (defined &canonpath) {
- eval {
+#dont try to load XSLoader and DynaLoader only to ultimately fail on miniperl
+if(!defined &canonpath && defined &DynaLoader::boot_DynaLoader) {
+ eval {#eval is questionable since we are handling potential errors like
+ #"Cwd object version 3.48 does not match bootstrap parameter 3.50
+ #at lib/DynaLoader.pm line 216." by having this eval
if ( $] >= 5.006 ) {
require XSLoader;
XSLoader::load("Cwd", $xs_version);
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/VMS.pm b/Master/tlpkg/tlperl/lib/File/Spec/VMS.pm
index 3072fabb6ab..254f5248cd8 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/VMS.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/VMS.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.48_01';
+$VERSION = '3.56';
$VERSION =~ tr/_//;
@ISA = qw(File::Spec::Unix);
@@ -144,8 +144,7 @@ sub catdir {
return $self->SUPER::catdir($spath, $sdir)
}
- $sdir = $self->eliminate_macros($sdir) unless $sdir =~ /^[\w\-]+\Z(?!\n)/s;
- $rslt = $self->fixpath($self->eliminate_macros($spath)."/$sdir",1);
+ $rslt = vmspath( unixify($spath) . '/' . unixify($sdir));
# Special case for VMS absolute directory specs: these will have
# had device prepended during trip through Unix syntax in
@@ -195,7 +194,7 @@ sub catfile {
if ($spath =~ /^(?<!\^)[^\)\]\/:>]+\)\Z(?!\n)/s && basename($file) eq $file) {
$rslt = "$spath$file";
} else {
- $rslt = $self->eliminate_macros($spath);
+ $rslt = unixify($spath);
$rslt .= (defined($rslt) && length($rslt) ? '/' : '') . unixify($file);
$rslt = vmsify($rslt) unless $unix_rpt;
}
@@ -204,7 +203,7 @@ sub catfile {
# Only passed a single file?
my $xfile = (defined($file) && length($file)) ? $file : '';
- $rslt = $unix_rpt ? $file : vmsify($file);
+ $rslt = $unix_rpt ? $xfile : vmsify($xfile);
}
return $self->canonpath($rslt) unless $unix_rpt;
@@ -439,12 +438,16 @@ Attempt to convert an absolute file specification to a relative specification.
sub abs2rel {
my $self = shift;
return vmspath(File::Spec::Unix::abs2rel( $self, @_ ))
- if grep m{/}, @_;
+ if ((grep m{/}, @_) && !(grep m{(?<!\^)[\[<:]}, @_));
my($path,$base) = @_;
$base = $self->_cwd() unless defined $base and length $base;
- for ($path, $base) { $_ = $self->canonpath($_) }
+ # If there is no device or directory syntax on $base, make sure it
+ # is treated as a directory.
+ $base = VMS::Filespec::vmspath($base) unless $base =~ m{(?<!\^)[\[<:]};
+
+ for ($path, $base) { $_ = $self->rel2abs($_) }
# Are we even starting $path on the same (node::)device as $base? Note that
# logical paths or nodename differences may be on the "same device"
@@ -460,8 +463,6 @@ sub abs2rel {
my ($base_volume, $base_directories, $base_file) = $self->splitpath($base);
return $path unless lc($path_volume) eq lc($base_volume);
- for ($path, $base) { $_ = $self->rel2abs($_) }
-
# Now, remove all leading components that are the same
my @pathchunks = $self->splitdir( $path_directories );
my $pathchunks = @pathchunks;
@@ -545,123 +546,11 @@ sub rel2abs {
}
-# eliminate_macros() and fixpath() are MakeMaker-specific methods
-# which are used inside catfile() and catdir(). MakeMaker has its own
-# copies as of 6.06_03 which are the canonical ones. We leave these
-# here, in peace, so that File::Spec continues to work with MakeMakers
-# prior to 6.06_03.
-#
-# Please consider these two methods deprecated. Do not patch them,
-# patch the ones in ExtUtils::MM_VMS instead.
-#
-# Update: MakeMaker 6.48 is still using these routines on VMS.
-# so they need to be kept up to date with ExtUtils::MM_VMS.
-
-sub eliminate_macros {
- my($self,$path) = @_;
- return '' unless (defined $path) && ($path ne '');
- $self = {} unless ref $self;
-
- if ($path =~ /\s/) {
- return join ' ', map { $self->eliminate_macros($_) } split /\s+/, $path;
- }
-
- my $npath = unixify($path);
- # sometimes unixify will return a string with an off-by-one trailing null
- $npath =~ s{\0$}{};
-
- my($complex) = 0;
- my($head,$macro,$tail);
-
- # perform m##g in scalar context so it acts as an iterator
- while ($npath =~ m#(.*?)\$\((\S+?)\)(.*)#gs) {
- if (defined $self->{$2}) {
- ($head,$macro,$tail) = ($1,$2,$3);
- if (ref $self->{$macro}) {
- if (ref $self->{$macro} eq 'ARRAY') {
- $macro = join ' ', @{$self->{$macro}};
- }
- else {
- print "Note: can't expand macro \$($macro) containing ",ref($self->{$macro}),
- "\n\t(using MMK-specific deferred substitutuon; MMS will break)\n";
- $macro = "\cB$macro\cB";
- $complex = 1;
- }
- }
- else { ($macro = unixify($self->{$macro})) =~ s#/\Z(?!\n)##; }
- $npath = "$head$macro$tail";
- }
- }
- if ($complex) { $npath =~ s#\cB(.*?)\cB#\${$1}#gs; }
- $npath;
-}
-
-# Deprecated. See the note above for eliminate_macros().
-
-# Catchall routine to clean up problem MM[SK]/Make macros. Expands macros
-# in any directory specification, in order to avoid juxtaposing two
-# VMS-syntax directories when MM[SK] is run. Also expands expressions which
-# are all macro, so that we can tell how long the expansion is, and avoid
-# overrunning DCL's command buffer when MM[KS] is running.
-
-# fixpath() checks to see whether the result matches the name of a
-# directory in the current default directory and returns a directory or
-# file specification accordingly. C<$is_dir> can be set to true to
-# force fixpath() to consider the path to be a directory or false to force
-# it to be a file.
-
-sub fixpath {
- my($self,$path,$force_path) = @_;
- return '' unless $path;
- $self = bless {}, $self unless ref $self;
- my($fixedpath,$prefix,$name);
-
- if ($path =~ /\s/) {
- return join ' ',
- map { $self->fixpath($_,$force_path) }
- split /\s+/, $path;
- }
-
- if ($path =~ m#^\$\([^\)]+\)\Z(?!\n)#s || $path =~ m#[/:>\]]#) {
- if ($force_path or $path =~ /(?:DIR\)|\])\Z(?!\n)/) {
- $fixedpath = vmspath($self->eliminate_macros($path));
- }
- else {
- $fixedpath = vmsify($self->eliminate_macros($path));
- }
- }
- elsif ((($prefix,$name) = ($path =~ m#^\$\(([^\)]+)\)(.+)#s)) && $self->{$prefix}) {
- my($vmspre) = $self->eliminate_macros("\$($prefix)");
- # is it a dir or just a name?
- $vmspre = ($vmspre =~ m|/| or $prefix =~ /DIR\Z(?!\n)/) ? vmspath($vmspre) : '';
- $fixedpath = ($vmspre ? $vmspre : $self->{$prefix}) . $name;
- $fixedpath = vmspath($fixedpath) if $force_path;
- }
- else {
- $fixedpath = $path;
- $fixedpath = vmspath($fixedpath) if $force_path;
- }
- # No hints, so we try to guess
- if (!defined($force_path) and $fixedpath !~ /[:>(.\]]/) {
- $fixedpath = vmspath($fixedpath) if -d $fixedpath;
- }
-
- # Trim off root dirname if it's had other dirs inserted in front of it.
- $fixedpath =~ s/\.000000([\]>])/$1/;
- # Special case for VMS absolute directory specs: these will have had device
- # prepended during trip through Unix syntax in eliminate_macros(), since
- # Unix syntax has no way to express "absolute from the top of this device's
- # directory tree".
- if ($path =~ /^[\[>][^.\-]/) { $fixedpath =~ s/^[^\[<]+//; }
- $fixedpath;
-}
-
-
=back
=head1 COPYRIGHT
-Copyright (c) 2004 by the Perl 5 Porters. All rights reserved.
+Copyright (c) 2004-14 by the Perl 5 Porters. 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/Master/tlpkg/tlperl/lib/File/Spec/Win32.pm b/Master/tlpkg/tlperl/lib/File/Spec/Win32.pm
index 6c063b5fdb6..53f3854cd72 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/Win32.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/Win32.pm
@@ -5,7 +5,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.48_01';
+$VERSION = '3.56';
$VERSION =~ tr/_//;
@ISA = qw(File::Spec::Unix);
diff --git a/Master/tlpkg/tlperl/lib/File/Which.pm b/Master/tlpkg/tlperl/lib/File/Which.pm
deleted file mode 100644
index 7acf5574846..00000000000
--- a/Master/tlpkg/tlperl/lib/File/Which.pm
+++ /dev/null
@@ -1,281 +0,0 @@
-package File::Which;
-
-use 5.005003;
-use strict;
-use Exporter ();
-use File::Spec ();
-
-use vars qw{$VERSION @ISA @EXPORT @EXPORT_OK};
-BEGIN {
- $VERSION = '1.16';
- @ISA = 'Exporter';
- @EXPORT = 'which';
- @EXPORT_OK = 'where';
-}
-
-use constant IS_VMS => ($^O eq 'VMS');
-use constant IS_MAC => ($^O eq 'MacOS');
-use constant IS_DOS => ($^O eq 'MSWin32' or $^O eq 'dos' or $^O eq 'os2');
-use constant IS_CYG => ($^O eq 'cygwin');
-
-# For Win32 systems, stores the extensions used for
-# executable files
-# For others, the empty string is used
-# because 'perl' . '' eq 'perl' => easier
-my @PATHEXT = ('');
-if ( IS_DOS ) {
- # WinNT. PATHEXT might be set on Cygwin, but not used.
- if ( $ENV{PATHEXT} ) {
- push @PATHEXT, split ';', $ENV{PATHEXT};
- } else {
- # Win9X or other: doesn't have PATHEXT, so needs hardcoded.
- push @PATHEXT, qw{.com .exe .bat};
- }
-} elsif ( IS_VMS ) {
- push @PATHEXT, qw{.exe .com};
-} elsif ( IS_CYG ) {
- # See this for more info
- # http://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-exe
- push @PATHEXT, qw{.exe .com};
-}
-
-sub which {
- my ($exec) = @_;
-
- return undef unless $exec;
-
- my $all = wantarray;
- my @results = ();
-
- # check for aliases first
- if ( IS_VMS ) {
- my $symbol = `SHOW SYMBOL $exec`;
- chomp($symbol);
- unless ( $? ) {
- return $symbol unless $all;
- push @results, $symbol;
- }
- }
- if ( IS_MAC ) {
- my @aliases = split /\,/, $ENV{Aliases};
- foreach my $alias ( @aliases ) {
- # This has not been tested!!
- # PPT which says MPW-Perl cannot resolve `Alias $alias`,
- # let's just hope it's fixed
- if ( lc($alias) eq lc($exec) ) {
- chomp(my $file = `Alias $alias`);
- last unless $file; # if it failed, just go on the normal way
- return $file unless $all;
- push @results, $file;
- # we can stop this loop as if it finds more aliases matching,
- # it'll just be the same result anyway
- last;
- }
- }
- }
-
- return $exec
- if !IS_VMS and !IS_MAC and !IS_DOS and $exec =~ /\// and -f $exec and -x $exec;
-
- my @path = File::Spec->path;
- if ( IS_DOS or IS_VMS or IS_MAC ) {
- unshift @path, File::Spec->curdir;
- }
-
- foreach my $base ( map { File::Spec->catfile($_, $exec) } @path ) {
- for my $ext ( @PATHEXT ) {
- my $file = $base.$ext;
-
- # We don't want dirs (as they are -x)
- next if -d $file;
-
- if (
- # Executable, normal case
- -x _
- or (
- # MacOS doesn't mark as executable so we check -e
- IS_MAC
- ||
- (
- ( IS_DOS or IS_CYG )
- and
- grep {
- $file =~ /$_\z/i
- } @PATHEXT[1..$#PATHEXT]
- )
- # DOSish systems don't pass -x on
- # non-exe/bat/com files. so we check -e.
- # However, we don't want to pass -e on files
- # that aren't in PATHEXT, like README.
- and -e _
- )
- ) {
- return $file unless $all;
- push @results, $file;
- }
- }
- }
-
- if ( $all ) {
- return @results;
- } else {
- return undef;
- }
-}
-
-sub where {
- # force wantarray
- my @res = which($_[0]);
- return @res;
-}
-
-1;
-
-__END__
-
-=pod
-
-=head1 NAME
-
-File::Which - Portable implementation of the `which' utility
-
-=head1 SYNOPSIS
-
- use File::Which; # exports which()
- use File::Which qw(which where); # exports which() and where()
-
- my $exe_path = which('perldoc');
-
- my @paths = where('perl');
- - Or -
- my @paths = which('perl'); # an array forces search for all of them
-
-=head1 DESCRIPTION
-
-C<File::Which> was created to be able to get the paths to executable programs
-on systems under which the `which' program wasn't implemented in the shell.
-
-C<File::Which> searches the directories of the user's C<PATH> (as returned by
-C<File::Spec-E<gt>path()>), looking for executable files having the name
-specified as a parameter to C<which()>. Under Win32 systems, which do not have a
-notion of directly executable files, but uses special extensions such as C<.exe>
-and C<.bat> to identify them, C<File::Which> takes extra steps to assure that
-you will find the correct file (so for example, you might be searching for
-C<perl>, it'll try F<perl.exe>, F<perl.bat>, etc.)
-
-=head1 Steps Used on Win32, DOS, OS2 and VMS
-
-=head2 Windows NT
-
-Windows NT has a special environment variable called C<PATHEXT>, which is used
-by the shell to look for executable files. Usually, it will contain a list in
-the form C<.EXE;.BAT;.COM;.JS;.VBS> etc. If C<File::Which> finds such an
-environment variable, it parses the list and uses it as the different
-extensions.
-
-=head2 Windows 9x and other ancient Win/DOS/OS2
-
-This set of operating systems don't have the C<PATHEXT> variable, and usually
-you will find executable files there with the extensions C<.exe>, C<.bat> and
-(less likely) C<.com>. C<File::Which> uses this hardcoded list if it's running
-under Win32 but does not find a C<PATHEXT> variable.
-
-=head2 VMS
-
-Same case as Windows 9x: uses C<.exe> and C<.com> (in that order).
-
-=head1 Functions
-
-=head2 which($short_exe_name)
-
-Exported by default.
-
-C<$short_exe_name> is the name used in the shell to call the program (for
-example, C<perl>).
-
-If it finds an executable with the name you specified, C<which()> will return
-the absolute path leading to this executable (for example, F</usr/bin/perl> or
-F<C:\Perl\Bin\perl.exe>).
-
-If it does I<not> find the executable, it returns C<undef>.
-
-If C<which()> is called in list context, it will return I<all> the
-matches.
-
-=head2 where($short_exe_name)
-
-Not exported by default.
-
-Same as C<which($short_exe_name)> in array context. Same as the
-C<`where'> utility, will return an array containing all the path names
-matching C<$short_exe_name>.
-
-=head1 CAVEATS
-
-Not tested on VMS or MacOS, although there is platform specific code
-for those. Anyone who haves a second would be very kind to send me a
-report of how it went.
-
-=head1 SUPPORT
-
-Bugs should be reported via the GitHub issue tracker
-
-L<https://github.com/plicease/File-Which/issues>
-
-For other issues, contact the maintainer.
-
-=head1 SEE ALSO
-
-=over 4
-
-=item L<pwhich>
-
-Command line interface to this module.
-
-=item L<IPC::Cmd>
-
-Comes with a C<can_run> function with slightly different semantics that
-the traditional UNIX where. It will find executables in the current
-directory, even though the current directory is not searched for by
-default on Unix.
-
-=item L<Devel::CheckBin>
-
-This module purports to "check that a command is available", but does not
-provide any documentation on how you might use it.
-
-=back
-
-=head1 AUTHOR
-
-Current maintainer: Graham Ollis E<lt>plicease@cpan.orgE<gt>
-
-Previous maintainer: Adam Kennedy E<lt>adamk@cpan.orgE<gt>
-
-Original author: Per Einar Ellefsen E<lt>pereinar@cpan.orgE<gt>
-
-Originated in F<modperl-2.0/lib/Apache/Build.pm>. Changed for use in DocSet
-(for the mod_perl site) and Win32-awareness by me, with slight modifications
-by Stas Bekman, then extracted to create C<File::Which>.
-
-Version 0.04 had some significant platform-related changes, taken from
-the Perl Power Tools C<`which'> implementation by Abigail with
-enhancements from Peter Prymmer. See
-L<http://www.perl.com/language/ppt/src/which/index.html> for more
-information.
-
-=head1 COPYRIGHT
-
-Copyright 2002 Per Einar Ellefsen.
-
-Some parts copyright 2009 Adam Kennedy.
-
-This program is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-L<File::Spec>, L<which(1)>, Perl Power Tools:
-L<http://www.perl.com/language/ppt/index.html>.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Filter/Simple.pm b/Master/tlpkg/tlperl/lib/Filter/Simple.pm
index 4b15e556e00..82129192b82 100644
--- a/Master/tlpkg/tlperl/lib/Filter/Simple.pm
+++ b/Master/tlpkg/tlperl/lib/Filter/Simple.pm
@@ -4,7 +4,7 @@ use Text::Balanced ':ALL';
use vars qw{ $VERSION @EXPORT };
-$VERSION = '0.91';
+$VERSION = '0.92';
use Filter::Util::Call;
use Carp;
@@ -119,8 +119,8 @@ sub gen_std_filter_for {
}
if ($type =~ /^code/) {
my $count = 0;
- local $placeholder = qr/\Q$;\E(\C{4})\Q$;\E/;
- my $extractor = qr/\Q$;\E(\C{4})\Q$;\E/;
+ local $placeholder = qr/\Q$;\E(.{4})\Q$;\E/s;
+ my $extractor = qr/\Q$;\E(.{4})\Q$;\E/s;
$_ = join "",
map { ref $_ ? $;.pack('N',$count++).$; : $_ }
@components;
diff --git a/Master/tlpkg/tlperl/lib/Filter/Util/Call.pm b/Master/tlpkg/tlperl/lib/Filter/Util/Call.pm
index fb379b019cb..f282a1516d5 100644
--- a/Master/tlpkg/tlperl/lib/Filter/Util/Call.pm
+++ b/Master/tlpkg/tlperl/lib/Filter/Util/Call.pm
@@ -18,7 +18,7 @@ use vars qw($VERSION @ISA @EXPORT) ;
@ISA = qw(Exporter DynaLoader);
@EXPORT = qw( filter_add filter_del filter_read filter_read_exact) ;
-$VERSION = "1.49" ;
+$VERSION = "1.54" ;
sub filter_read_exact($)
{
@@ -45,12 +45,12 @@ sub filter_add($)
my($obj) = @_ ;
# Did we get a code reference?
- my $coderef = (ref $obj eq 'CODE') ;
+ my $coderef = (ref $obj eq 'CODE');
# If the parameter isn't already a reference, make it one.
- $obj = \$obj unless ref $obj ;
-
- $obj = bless ($obj, (caller)[0]) unless $coderef ;
+ if (!$coderef and (!ref($obj) or ref($obj) =~ /^ARRAY|HASH$/)) {
+ $obj = bless (\$obj, (caller)[0]);
+ }
# finish off the installation of the filter in C.
Filter::Util::Call::real_import($obj, (caller)[0], $coderef) ;
@@ -193,7 +193,7 @@ If a CODE reference is used then a I<closure filter> will be assumed.
If a CODE reference is not used, a I<method filter> will be assumed.
In a I<method filter>, the reference can be used to store context
information. The reference will be I<blessed> into the package by
-C<filter_add>.
+C<filter_add>, unless the reference was already blessed.
See the filters at the end of this documents for examples of using
context information using both I<method filters> and I<closure
@@ -498,5 +498,13 @@ Paul Marquess
26th January 1996
+=head1 LICENSE
+
+Copyright (c) 1995-2011 Paul Marquess. All rights reserved.
+Copyright (c) 2011-2014 Reini Urban. All rights reserved.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
=cut
diff --git a/Master/tlpkg/tlperl/lib/Getopt/Long.pm b/Master/tlpkg/tlperl/lib/Getopt/Long.pm
index 3ef7d997b85..154c008d3a9 100644
--- a/Master/tlpkg/tlperl/lib/Getopt/Long.pm
+++ b/Master/tlpkg/tlperl/lib/Getopt/Long.pm
@@ -4,8 +4,8 @@
# Author : Johan Vromans
# Created On : Tue Sep 11 15:00:12 1990
# Last Modified By: Johan Vromans
-# Last Modified On: Tue Oct 1 08:25:52 2013
-# Update Count : 1651
+# Last Modified On: Mon Feb 23 20:29:11 2015
+# Update Count : 1683
# Status : Released
################ Module Preamble ################
@@ -17,10 +17,10 @@ use 5.004;
use strict;
use vars qw($VERSION);
-$VERSION = 2.42;
+$VERSION = 2.45;
# For testing versions only.
use vars qw($VERSION_STRING);
-$VERSION_STRING = "2.42";
+$VERSION_STRING = "2.45";
use Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK);
@@ -50,6 +50,9 @@ use vars qw($autoabbrev $getopt_compat $ignorecase $bundling $order
# Official invisible variables.
use vars qw($genprefix $caller $gnu_compat $auto_help $auto_version $longprefix);
+# Really invisible variables.
+my $bundling_values;
+
# Public subroutines.
sub config(@); # deprecated name
@@ -92,6 +95,7 @@ sub ConfigDefaults() {
$passthrough = 0; # leave unrecognized options alone
$gnu_compat = 0; # require --opt=val if value is optional
$longprefix = "(--)"; # what does a long prefix look like
+ $bundling_values = 0; # no bundling of values
}
# Override import.
@@ -296,10 +300,14 @@ sub GetOptionsFromArray(@) {
("Getopt::Long $Getopt::Long::VERSION ",
"called from package \"$pkg\".",
"\n ",
- "argv: (@$argv)",
+ "argv: ",
+ defined($argv)
+ ? UNIVERSAL::isa( $argv, 'ARRAY' ) ? "(@$argv)" : $argv
+ : "<undef>",
"\n ",
"autoabbrev=$autoabbrev,".
"bundling=$bundling,",
+ "bundling_values=$bundling_values,",
"getopt_compat=$getopt_compat,",
"gnu_compat=$gnu_compat,",
"order=$order,",
@@ -458,6 +466,9 @@ sub GetOptionsFromArray(@) {
}
+ $error .= "GetOptionsFromArray: 1st parameter is not an array reference\n"
+ unless $argv && UNIVERSAL::isa( $argv, 'ARRAY' );
+
# Bail out if errors found.
die ($error) if $error;
$error = 0;
@@ -707,7 +718,7 @@ sub GetOptionsFromArray(@) {
elsif ( $order == $PERMUTE ) {
# Try non-options call-back.
my $cb;
- if ( (defined ($cb = $linkage{'<>'})) ) {
+ if ( defined ($cb = $linkage{'<>'}) ) {
print STDERR ("=> &L{$tryopt}(\"$tryopt\")\n")
if $debug;
my $eval_error = do {
@@ -942,7 +953,7 @@ sub FindOption ($$$$$) {
my $tryopt = $opt; # option to try
- if ( $bundling && $starter eq '-' ) {
+ if ( ( $bundling || $bundling_values ) && $starter eq '-' ) {
# To try overrides, obey case ignore.
$tryopt = $ignorecase ? lc($opt) : $opt;
@@ -953,6 +964,23 @@ sub FindOption ($$$$$) {
print STDERR ("=> $starter$tryopt overrides unbundling\n")
if $debug;
}
+
+ # If bundling_values, option may be followed by the value.
+ elsif ( $bundling_values ) {
+ $tryopt = $opt;
+ # Unbundle single letter option.
+ $rest = length ($tryopt) > 0 ? substr ($tryopt, 1) : '';
+ $tryopt = substr ($tryopt, 0, 1);
+ $tryopt = lc ($tryopt) if $ignorecase > 1;
+ print STDERR ("=> $starter$tryopt unbundled from ",
+ "$starter$tryopt$rest\n") if $debug;
+ # Whatever remains may not be considered an option.
+ $optarg = $rest eq '' ? undef : $rest;
+ $rest = undef;
+ }
+
+ # Split off a single letter and leave the rest for
+ # further processing.
else {
$tryopt = $opt;
# Unbundle single letter option.
@@ -1058,6 +1086,7 @@ sub FindOption ($$$$$) {
warn ("Option ", $opt, " does not take an argument\n");
$error++;
undef $opt;
+ undef $optarg if $bundling_values;
}
elsif ( $type eq '' || $type eq '+' ) {
# Supply explicit value.
@@ -1286,13 +1315,13 @@ sub Configure (@) {
[ $error, $debug, $major_version, $minor_version,
$autoabbrev, $getopt_compat, $ignorecase, $bundling, $order,
$gnu_compat, $passthrough, $genprefix, $auto_version, $auto_help,
- $longprefix ];
+ $longprefix, $bundling_values ];
if ( ref($options[0]) eq 'ARRAY' ) {
( $error, $debug, $major_version, $minor_version,
$autoabbrev, $getopt_compat, $ignorecase, $bundling, $order,
$gnu_compat, $passthrough, $genprefix, $auto_version, $auto_help,
- $longprefix ) = @{shift(@options)};
+ $longprefix, $bundling_values ) = @{shift(@options)};
}
my $opt;
@@ -1325,6 +1354,7 @@ sub Configure (@) {
$getopt_compat = 0;
$genprefix = "(--|-)";
$order = $PERMUTE;
+ $bundling_values = 0;
}
}
elsif ( $try eq 'gnu_compat' ) {
@@ -1344,9 +1374,15 @@ sub Configure (@) {
}
elsif ( $try eq 'bundling' ) {
$bundling = $action;
+ $bundling_values = 0 if $action;
}
elsif ( $try eq 'bundling_override' ) {
$bundling = $action ? 2 : 0;
+ $bundling_values = 0 if $action;
+ }
+ elsif ( $try eq 'bundling_values' ) {
+ $bundling_values = $action;
+ $bundling = 0 if $action;
}
elsif ( $try eq 'require_order' ) {
$order = $action ? $REQUIRE_ORDER : $PERMUTE;
@@ -2134,12 +2170,12 @@ at once. For example if C<a>, C<v> and C<x> are all valid options,
-vax
-would set all three.
+will set all three.
-Getopt::Long supports two levels of bundling. To enable bundling, a
+Getopt::Long supports three styles of bundling. To enable bundling, a
call to Getopt::Long::Configure is required.
-The first level of bundling can be enabled with:
+The simplest style of bundling can be enabled with:
Getopt::Long::Configure ("bundling");
@@ -2150,21 +2186,21 @@ options,
-vax
-would set C<a>, C<v> and C<x>, but
+will set C<a>, C<v> and C<x>, but
--vax
-would set C<vax>.
+will set C<vax>.
-The second level of bundling lifts this restriction. It can be enabled
+The second style of bundling lifts this restriction. It can be enabled
with:
Getopt::Long::Configure ("bundling_override");
-Now, C<-vax> would set the option C<vax>.
+Now, C<-vax> will set the option C<vax>.
-When any level of bundling is enabled, option values may be inserted
-in the bundle. For example:
+In all of the above cases, option values may be inserted in the
+bundle. For example:
-h24w80
@@ -2172,6 +2208,17 @@ is equivalent to
-h 24 -w 80
+A third style of bundling allows only values to be bundled with
+options. It can be enabled with:
+
+ Getopt::Long::Configure ("bundling_values");
+
+Now, C<-h24> will set the option C<h> to C<24>, but option bundles
+like C<-vxa> and C<-h24w80> are flagged as errors.
+
+Enabling C<bundling_values> will disable the other two styles of
+bundling.
+
When configured for bundling, single-character options are matched
case sensitive while long options are matched case insensitive. To
have the single-character options matched case insensitive as well,
@@ -2399,15 +2446,18 @@ C<require> statement.
=item pass_through (default: disabled)
-Options that are unknown, ambiguous or supplied with an invalid option
-value are passed through in C<@ARGV> instead of being flagged as
-errors. This makes it possible to write wrapper scripts that process
-only part of the user supplied command line arguments, and pass the
+With C<pass_through> anything that is unknown, ambiguous or supplied with
+an invalid option will not be flagged as an error. Instead the unknown
+option(s) will be passed to the catchall C<< <> >> if present, otherwise
+through to C<@ARGV>. This makes it possible to write wrapper scripts that
+process only part of the user supplied command line arguments, and pass the
remaining options to some other program.
-If C<require_order> is enabled, options processing will terminate at
-the first unrecognized option, or non-option, whichever comes first.
-However, if C<permute> is enabled instead, results can become confusing.
+If C<require_order> is enabled, options processing will terminate at the
+first unrecognized option, or non-option, whichever comes first and all
+remaining arguments are passed to C<@ARGV> instead of the catchall
+C<< <> >> if present. However, if C<permute> is enabled instead, results
+can become confusing.
Note that the options terminator (default C<-->), if present, will
also be passed through in C<@ARGV>.
@@ -2673,7 +2723,7 @@ Johan Vromans <jvromans@squirrel.nl>
=head1 COPYRIGHT AND DISCLAIMER
-This program is Copyright 1990,2013 by Johan Vromans.
+This program is Copyright 1990,2015 by Johan Vromans.
This program is free software; you can redistribute it and/or
modify it under the terms of the Perl Artistic License or the
GNU General Public License as published by the Free Software
diff --git a/Master/tlpkg/tlperl/lib/Getopt/Std.pm b/Master/tlpkg/tlperl/lib/Getopt/Std.pm
index ecb7ebbf971..b7f8132b381 100644
--- a/Master/tlpkg/tlperl/lib/Getopt/Std.pm
+++ b/Master/tlpkg/tlperl/lib/Getopt/Std.pm
@@ -36,8 +36,8 @@ The C<getopts()> function returns true unless an invalid option was found.
The C<getopt()> function is similar, but its argument is a string containing
all switches that take an argument. If no argument is provided for a switch,
say, C<y>, the corresponding C<$opt_y> will be set to an undefined value.
-Unspecified switches are silently accepted. B<Use of C<getopts()> is not
-recommended.>
+Unspecified switches are silently accepted. Use of C<getopt()> is not
+recommended.
Note that, if your code is running under the recommended C<use strict
vars> pragma, you will need to declare these package variables
@@ -81,7 +81,7 @@ and version_mess() with the switches string as an argument.
@ISA = qw(Exporter);
@EXPORT = qw(getopt getopts);
-$VERSION = '1.10';
+$VERSION = '1.11';
# uncomment the next line to disable 1.03-backward compatibility paranoia
# $STANDARD_HELP_VERSION = 1;
diff --git a/Master/tlpkg/tlperl/lib/HTML/Entities.pm b/Master/tlpkg/tlperl/lib/HTML/Entities.pm
deleted file mode 100644
index ecd8e0d31fa..00000000000
--- a/Master/tlpkg/tlperl/lib/HTML/Entities.pm
+++ /dev/null
@@ -1,483 +0,0 @@
-package HTML::Entities;
-
-=encoding utf8
-
-=head1 NAME
-
-HTML::Entities - Encode or decode strings with HTML entities
-
-=head1 SYNOPSIS
-
- use HTML::Entities;
-
- $a = "V&aring;re norske tegn b&oslash;r &#230res";
- decode_entities($a);
- encode_entities($a, "\200-\377");
-
-For example, this:
-
- $input = "vis-à-vis Beyoncé's naïve\npapier-mâché résumé";
- print encode_entities($input), "\n"
-
-Prints this out:
-
- vis-&agrave;-vis Beyonc&eacute;'s na&iuml;ve
- papier-m&acirc;ch&eacute; r&eacute;sum&eacute;
-
-=head1 DESCRIPTION
-
-This module deals with encoding and decoding of strings with HTML
-character entities. The module provides the following functions:
-
-=over 4
-
-=item decode_entities( $string, ... )
-
-This routine replaces HTML entities found in the $string with the
-corresponding Unicode character. Unrecognized entities are left alone.
-
-If multiple strings are provided as argument they are each decoded
-separately and the same number of strings are returned.
-
-If called in void context the arguments are decoded in-place.
-
-This routine is exported by default.
-
-=item _decode_entities( $string, \%entity2char )
-
-=item _decode_entities( $string, \%entity2char, $expand_prefix )
-
-This will in-place replace HTML entities in $string. The %entity2char
-hash must be provided. Named entities not found in the %entity2char
-hash are left alone. Numeric entities are expanded unless their value
-overflow.
-
-The keys in %entity2char are the entity names to be expanded and their
-values are what they should expand into. The values do not have to be
-single character strings. If a key has ";" as suffix,
-then occurrences in $string are only expanded if properly terminated
-with ";". Entities without ";" will be expanded regardless of how
-they are terminated for compatibility with how common browsers treat
-entities in the Latin-1 range.
-
-If $expand_prefix is TRUE then entities without trailing ";" in
-%entity2char will even be expanded as a prefix of a longer
-unrecognized name. The longest matching name in %entity2char will be
-used. This is mainly present for compatibility with an MSIE
-misfeature.
-
- $string = "foo&nbspbar";
- _decode_entities($string, { nb => "@", nbsp => "\xA0" }, 1);
- print $string; # will print "foo bar"
-
-This routine is exported by default.
-
-=item encode_entities( $string )
-
-=item encode_entities( $string, $unsafe_chars )
-
-This routine replaces unsafe characters in $string with their entity
-representation. A second argument can be given to specify which characters to
-consider unsafe. The unsafe characters is specified using the regular
-expression character class syntax (what you find within brackets in regular
-expressions).
-
-The default set of characters to encode are control chars, high-bit chars, and
-the C<< < >>, C<< & >>, C<< > >>, C<< ' >> and C<< " >> characters. But this,
-for example, would encode I<just> the C<< < >>, C<< & >>, C<< > >>, and C<< "
->> characters:
-
- $encoded = encode_entities($input, '<>&"');
-
-and this would only encode non-plain ascii:
-
- $encoded = encode_entities($input, '^\n\x20-\x25\x27-\x7e');
-
-This routine is exported by default.
-
-=item encode_entities_numeric( $string )
-
-=item encode_entities_numeric( $string, $unsafe_chars )
-
-This routine works just like encode_entities, except that the replacement
-entities are always C<&#xI<hexnum>;> and never C<&I<entname>;>. For
-example, C<encode_entities("r\xF4le")> returns "r&ocirc;le", but
-C<encode_entities_numeric("r\xF4le")> returns "r&#xF4;le".
-
-This routine is I<not> exported by default. But you can always
-export it with C<use HTML::Entities qw(encode_entities_numeric);>
-or even C<use HTML::Entities qw(:DEFAULT encode_entities_numeric);>
-
-=back
-
-All these routines modify the string passed as the first argument, if
-called in a void context. In scalar and array contexts, the encoded or
-decoded string is returned (without changing the input string).
-
-If you prefer not to import these routines into your namespace, you can
-call them as:
-
- use HTML::Entities ();
- $decoded = HTML::Entities::decode($a);
- $encoded = HTML::Entities::encode($a);
- $encoded = HTML::Entities::encode_numeric($a);
-
-The module can also export the %char2entity and the %entity2char
-hashes, which contain the mapping from all characters to the
-corresponding entities (and vice versa, respectively).
-
-=head1 COPYRIGHT
-
-Copyright 1995-2006 Gisle Aas. All rights reserved.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
-
-use strict;
-use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
-use vars qw(%entity2char %char2entity);
-
-require 5.004;
-require Exporter;
-@ISA = qw(Exporter);
-
-@EXPORT = qw(encode_entities decode_entities _decode_entities);
-@EXPORT_OK = qw(%entity2char %char2entity encode_entities_numeric);
-
-$VERSION = "3.69";
-sub Version { $VERSION; }
-
-require HTML::Parser; # for fast XS implemented decode_entities
-
-
-%entity2char = (
- # Some normal chars that have special meaning in SGML context
- amp => '&', # ampersand
-'gt' => '>', # greater than
-'lt' => '<', # less than
- quot => '"', # double quote
- apos => "'", # single quote
-
- # PUBLIC ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML
- AElig => chr(198), # capital AE diphthong (ligature)
- Aacute => chr(193), # capital A, acute accent
- Acirc => chr(194), # capital A, circumflex accent
- Agrave => chr(192), # capital A, grave accent
- Aring => chr(197), # capital A, ring
- Atilde => chr(195), # capital A, tilde
- Auml => chr(196), # capital A, dieresis or umlaut mark
- Ccedil => chr(199), # capital C, cedilla
- ETH => chr(208), # capital Eth, Icelandic
- Eacute => chr(201), # capital E, acute accent
- Ecirc => chr(202), # capital E, circumflex accent
- Egrave => chr(200), # capital E, grave accent
- Euml => chr(203), # capital E, dieresis or umlaut mark
- Iacute => chr(205), # capital I, acute accent
- Icirc => chr(206), # capital I, circumflex accent
- Igrave => chr(204), # capital I, grave accent
- Iuml => chr(207), # capital I, dieresis or umlaut mark
- Ntilde => chr(209), # capital N, tilde
- Oacute => chr(211), # capital O, acute accent
- Ocirc => chr(212), # capital O, circumflex accent
- Ograve => chr(210), # capital O, grave accent
- Oslash => chr(216), # capital O, slash
- Otilde => chr(213), # capital O, tilde
- Ouml => chr(214), # capital O, dieresis or umlaut mark
- THORN => chr(222), # capital THORN, Icelandic
- Uacute => chr(218), # capital U, acute accent
- Ucirc => chr(219), # capital U, circumflex accent
- Ugrave => chr(217), # capital U, grave accent
- Uuml => chr(220), # capital U, dieresis or umlaut mark
- Yacute => chr(221), # capital Y, acute accent
- aacute => chr(225), # small a, acute accent
- acirc => chr(226), # small a, circumflex accent
- aelig => chr(230), # small ae diphthong (ligature)
- agrave => chr(224), # small a, grave accent
- aring => chr(229), # small a, ring
- atilde => chr(227), # small a, tilde
- auml => chr(228), # small a, dieresis or umlaut mark
- ccedil => chr(231), # small c, cedilla
- eacute => chr(233), # small e, acute accent
- ecirc => chr(234), # small e, circumflex accent
- egrave => chr(232), # small e, grave accent
- eth => chr(240), # small eth, Icelandic
- euml => chr(235), # small e, dieresis or umlaut mark
- iacute => chr(237), # small i, acute accent
- icirc => chr(238), # small i, circumflex accent
- igrave => chr(236), # small i, grave accent
- iuml => chr(239), # small i, dieresis or umlaut mark
- ntilde => chr(241), # small n, tilde
- oacute => chr(243), # small o, acute accent
- ocirc => chr(244), # small o, circumflex accent
- ograve => chr(242), # small o, grave accent
- oslash => chr(248), # small o, slash
- otilde => chr(245), # small o, tilde
- ouml => chr(246), # small o, dieresis or umlaut mark
- szlig => chr(223), # small sharp s, German (sz ligature)
- thorn => chr(254), # small thorn, Icelandic
- uacute => chr(250), # small u, acute accent
- ucirc => chr(251), # small u, circumflex accent
- ugrave => chr(249), # small u, grave accent
- uuml => chr(252), # small u, dieresis or umlaut mark
- yacute => chr(253), # small y, acute accent
- yuml => chr(255), # small y, dieresis or umlaut mark
-
- # Some extra Latin 1 chars that are listed in the HTML3.2 draft (21-May-96)
- copy => chr(169), # copyright sign
- reg => chr(174), # registered sign
- nbsp => chr(160), # non breaking space
-
- # Additional ISO-8859/1 entities listed in rfc1866 (section 14)
- iexcl => chr(161),
- cent => chr(162),
- pound => chr(163),
- curren => chr(164),
- yen => chr(165),
- brvbar => chr(166),
- sect => chr(167),
- uml => chr(168),
- ordf => chr(170),
- laquo => chr(171),
-'not' => chr(172), # not is a keyword in perl
- shy => chr(173),
- macr => chr(175),
- deg => chr(176),
- plusmn => chr(177),
- sup1 => chr(185),
- sup2 => chr(178),
- sup3 => chr(179),
- acute => chr(180),
- micro => chr(181),
- para => chr(182),
- middot => chr(183),
- cedil => chr(184),
- ordm => chr(186),
- raquo => chr(187),
- frac14 => chr(188),
- frac12 => chr(189),
- frac34 => chr(190),
- iquest => chr(191),
-'times' => chr(215), # times is a keyword in perl
- divide => chr(247),
-
- ( $] > 5.007 ? (
- 'OElig;' => chr(338),
- 'oelig;' => chr(339),
- 'Scaron;' => chr(352),
- 'scaron;' => chr(353),
- 'Yuml;' => chr(376),
- 'fnof;' => chr(402),
- 'circ;' => chr(710),
- 'tilde;' => chr(732),
- 'Alpha;' => chr(913),
- 'Beta;' => chr(914),
- 'Gamma;' => chr(915),
- 'Delta;' => chr(916),
- 'Epsilon;' => chr(917),
- 'Zeta;' => chr(918),
- 'Eta;' => chr(919),
- 'Theta;' => chr(920),
- 'Iota;' => chr(921),
- 'Kappa;' => chr(922),
- 'Lambda;' => chr(923),
- 'Mu;' => chr(924),
- 'Nu;' => chr(925),
- 'Xi;' => chr(926),
- 'Omicron;' => chr(927),
- 'Pi;' => chr(928),
- 'Rho;' => chr(929),
- 'Sigma;' => chr(931),
- 'Tau;' => chr(932),
- 'Upsilon;' => chr(933),
- 'Phi;' => chr(934),
- 'Chi;' => chr(935),
- 'Psi;' => chr(936),
- 'Omega;' => chr(937),
- 'alpha;' => chr(945),
- 'beta;' => chr(946),
- 'gamma;' => chr(947),
- 'delta;' => chr(948),
- 'epsilon;' => chr(949),
- 'zeta;' => chr(950),
- 'eta;' => chr(951),
- 'theta;' => chr(952),
- 'iota;' => chr(953),
- 'kappa;' => chr(954),
- 'lambda;' => chr(955),
- 'mu;' => chr(956),
- 'nu;' => chr(957),
- 'xi;' => chr(958),
- 'omicron;' => chr(959),
- 'pi;' => chr(960),
- 'rho;' => chr(961),
- 'sigmaf;' => chr(962),
- 'sigma;' => chr(963),
- 'tau;' => chr(964),
- 'upsilon;' => chr(965),
- 'phi;' => chr(966),
- 'chi;' => chr(967),
- 'psi;' => chr(968),
- 'omega;' => chr(969),
- 'thetasym;' => chr(977),
- 'upsih;' => chr(978),
- 'piv;' => chr(982),
- 'ensp;' => chr(8194),
- 'emsp;' => chr(8195),
- 'thinsp;' => chr(8201),
- 'zwnj;' => chr(8204),
- 'zwj;' => chr(8205),
- 'lrm;' => chr(8206),
- 'rlm;' => chr(8207),
- 'ndash;' => chr(8211),
- 'mdash;' => chr(8212),
- 'lsquo;' => chr(8216),
- 'rsquo;' => chr(8217),
- 'sbquo;' => chr(8218),
- 'ldquo;' => chr(8220),
- 'rdquo;' => chr(8221),
- 'bdquo;' => chr(8222),
- 'dagger;' => chr(8224),
- 'Dagger;' => chr(8225),
- 'bull;' => chr(8226),
- 'hellip;' => chr(8230),
- 'permil;' => chr(8240),
- 'prime;' => chr(8242),
- 'Prime;' => chr(8243),
- 'lsaquo;' => chr(8249),
- 'rsaquo;' => chr(8250),
- 'oline;' => chr(8254),
- 'frasl;' => chr(8260),
- 'euro;' => chr(8364),
- 'image;' => chr(8465),
- 'weierp;' => chr(8472),
- 'real;' => chr(8476),
- 'trade;' => chr(8482),
- 'alefsym;' => chr(8501),
- 'larr;' => chr(8592),
- 'uarr;' => chr(8593),
- 'rarr;' => chr(8594),
- 'darr;' => chr(8595),
- 'harr;' => chr(8596),
- 'crarr;' => chr(8629),
- 'lArr;' => chr(8656),
- 'uArr;' => chr(8657),
- 'rArr;' => chr(8658),
- 'dArr;' => chr(8659),
- 'hArr;' => chr(8660),
- 'forall;' => chr(8704),
- 'part;' => chr(8706),
- 'exist;' => chr(8707),
- 'empty;' => chr(8709),
- 'nabla;' => chr(8711),
- 'isin;' => chr(8712),
- 'notin;' => chr(8713),
- 'ni;' => chr(8715),
- 'prod;' => chr(8719),
- 'sum;' => chr(8721),
- 'minus;' => chr(8722),
- 'lowast;' => chr(8727),
- 'radic;' => chr(8730),
- 'prop;' => chr(8733),
- 'infin;' => chr(8734),
- 'ang;' => chr(8736),
- 'and;' => chr(8743),
- 'or;' => chr(8744),
- 'cap;' => chr(8745),
- 'cup;' => chr(8746),
- 'int;' => chr(8747),
- 'there4;' => chr(8756),
- 'sim;' => chr(8764),
- 'cong;' => chr(8773),
- 'asymp;' => chr(8776),
- 'ne;' => chr(8800),
- 'equiv;' => chr(8801),
- 'le;' => chr(8804),
- 'ge;' => chr(8805),
- 'sub;' => chr(8834),
- 'sup;' => chr(8835),
- 'nsub;' => chr(8836),
- 'sube;' => chr(8838),
- 'supe;' => chr(8839),
- 'oplus;' => chr(8853),
- 'otimes;' => chr(8855),
- 'perp;' => chr(8869),
- 'sdot;' => chr(8901),
- 'lceil;' => chr(8968),
- 'rceil;' => chr(8969),
- 'lfloor;' => chr(8970),
- 'rfloor;' => chr(8971),
- 'lang;' => chr(9001),
- 'rang;' => chr(9002),
- 'loz;' => chr(9674),
- 'spades;' => chr(9824),
- 'clubs;' => chr(9827),
- 'hearts;' => chr(9829),
- 'diams;' => chr(9830),
- ) : ())
-);
-
-
-# Make the opposite mapping
-while (my($entity, $char) = each(%entity2char)) {
- $entity =~ s/;\z//;
- $char2entity{$char} = "&$entity;";
-}
-delete $char2entity{"'"}; # only one-way decoding
-
-# Fill in missing entities
-for (0 .. 255) {
- next if exists $char2entity{chr($_)};
- $char2entity{chr($_)} = "&#$_;";
-}
-
-my %subst; # compiled encoding regexps
-
-sub encode_entities
-{
- return undef unless defined $_[0];
- my $ref;
- if (defined wantarray) {
- my $x = $_[0];
- $ref = \$x; # copy
- } else {
- $ref = \$_[0]; # modify in-place
- }
- if (defined $_[1] and length $_[1]) {
- unless (exists $subst{$_[1]}) {
- # Because we can't compile regex we fake it with a cached sub
- my $chars = $_[1];
- $chars =~ s,(?<!\\)([]/]),\\$1,g;
- $chars =~ s,(?<!\\)\\\z,\\\\,;
- my $code = "sub {\$_[0] =~ s/([$chars])/\$char2entity{\$1} || num_entity(\$1)/ge; }";
- $subst{$_[1]} = eval $code;
- die( $@ . " while trying to turn range: \"$_[1]\"\n "
- . "into code: $code\n "
- ) if $@;
- }
- &{$subst{$_[1]}}($$ref);
- } else {
- # Encode control chars, high bit chars and '<', '&', '>', ''' and '"'
- $$ref =~ s/([^\n\r\t !\#\$%\(-;=?-~])/$char2entity{$1} || num_entity($1)/ge;
- }
- $$ref;
-}
-
-sub encode_entities_numeric {
- local %char2entity;
- return &encode_entities; # a goto &encode_entities wouldn't work
-}
-
-
-sub num_entity {
- sprintf "&#x%X;", ord($_[0]);
-}
-
-# Set up aliases
-*encode = \&encode_entities;
-*encode_numeric = \&encode_entities_numeric;
-*encode_numerically = \&encode_entities_numeric;
-*decode = \&decode_entities;
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/HTML/Filter.pm b/Master/tlpkg/tlperl/lib/HTML/Filter.pm
deleted file mode 100644
index c5aa16e6dd8..00000000000
--- a/Master/tlpkg/tlperl/lib/HTML/Filter.pm
+++ /dev/null
@@ -1,112 +0,0 @@
-package HTML::Filter;
-
-use strict;
-use vars qw(@ISA $VERSION);
-
-require HTML::Parser;
-@ISA=qw(HTML::Parser);
-
-$VERSION = "3.57";
-
-sub declaration { $_[0]->output("<!$_[1]>") }
-sub process { $_[0]->output($_[2]) }
-sub comment { $_[0]->output("<!--$_[1]-->") }
-sub start { $_[0]->output($_[4]) }
-sub end { $_[0]->output($_[2]) }
-sub text { $_[0]->output($_[1]) }
-
-sub output { print $_[1] }
-
-1;
-
-__END__
-
-=head1 NAME
-
-HTML::Filter - Filter HTML text through the parser
-
-=head1 NOTE
-
-B<This module is deprecated.> The C<HTML::Parser> now provides the
-functionally of C<HTML::Filter> much more efficiently with the the
-C<default> handler.
-
-=head1 SYNOPSIS
-
- require HTML::Filter;
- $p = HTML::Filter->new->parse_file("index.html");
-
-=head1 DESCRIPTION
-
-C<HTML::Filter> is an HTML parser that by default prints the
-original text of each HTML element (a slow version of cat(1) basically).
-The callback methods may be overridden to modify the filtering for some
-HTML elements and you can override output() method which is called to
-print the HTML text.
-
-C<HTML::Filter> is a subclass of C<HTML::Parser>. This means that
-the document should be given to the parser by calling the $p->parse()
-or $p->parse_file() methods.
-
-=head1 EXAMPLES
-
-The first example is a filter that will remove all comments from an
-HTML file. This is achieved by simply overriding the comment method
-to do nothing.
-
- package CommentStripper;
- require HTML::Filter;
- @ISA=qw(HTML::Filter);
- sub comment { } # ignore comments
-
-The second example shows a filter that will remove any E<lt>TABLE>s
-found in the HTML file. We specialize the start() and end() methods
-to count table tags and then make output not happen when inside a
-table.
-
- package TableStripper;
- require HTML::Filter;
- @ISA=qw(HTML::Filter);
- sub start
- {
- my $self = shift;
- $self->{table_seen}++ if $_[0] eq "table";
- $self->SUPER::start(@_);
- }
-
- sub end
- {
- my $self = shift;
- $self->SUPER::end(@_);
- $self->{table_seen}-- if $_[0] eq "table";
- }
-
- sub output
- {
- my $self = shift;
- unless ($self->{table_seen}) {
- $self->SUPER::output(@_);
- }
- }
-
-If you want to collect the parsed text internally you might want to do
-something like this:
-
- package FilterIntoString;
- require HTML::Filter;
- @ISA=qw(HTML::Filter);
- sub output { push(@{$_[0]->{fhtml}}, $_[1]) }
- sub filtered_html { join("", @{$_[0]->{fhtml}}) }
-
-=head1 SEE ALSO
-
-L<HTML::Parser>
-
-=head1 COPYRIGHT
-
-Copyright 1997-1999 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/HTML/HeadParser.pm b/Master/tlpkg/tlperl/lib/HTML/HeadParser.pm
deleted file mode 100644
index 28e9cacc40c..00000000000
--- a/Master/tlpkg/tlperl/lib/HTML/HeadParser.pm
+++ /dev/null
@@ -1,315 +0,0 @@
-package HTML::HeadParser;
-
-=head1 NAME
-
-HTML::HeadParser - Parse <HEAD> section of a HTML document
-
-=head1 SYNOPSIS
-
- require HTML::HeadParser;
- $p = HTML::HeadParser->new;
- $p->parse($text) and print "not finished";
-
- $p->header('Title') # to access <title>....</title>
- $p->header('Content-Base') # to access <base href="http://...">
- $p->header('Foo') # to access <meta http-equiv="Foo" content="...">
- $p->header('X-Meta-Author') # to access <meta name="author" content="...">
- $p->header('X-Meta-Charset') # to access <meta charset="...">
-
-=head1 DESCRIPTION
-
-The C<HTML::HeadParser> is a specialized (and lightweight)
-C<HTML::Parser> that will only parse the E<lt>HEAD>...E<lt>/HEAD>
-section of an HTML document. The parse() method
-will return a FALSE value as soon as some E<lt>BODY> element or body
-text are found, and should not be called again after this.
-
-Note that the C<HTML::HeadParser> might get confused if raw undecoded
-UTF-8 is passed to the parse() method. Make sure the strings are
-properly decoded before passing them on.
-
-The C<HTML::HeadParser> keeps a reference to a header object, and the
-parser will update this header object as the various elements of the
-E<lt>HEAD> section of the HTML document are recognized. The following
-header fields are affected:
-
-=over 4
-
-=item Content-Base:
-
-The I<Content-Base> header is initialized from the E<lt>base
-href="..."> element.
-
-=item Title:
-
-The I<Title> header is initialized from the E<lt>title>...E<lt>/title>
-element.
-
-=item Isindex:
-
-The I<Isindex> header will be added if there is a E<lt>isindex>
-element in the E<lt>head>. The header value is initialized from the
-I<prompt> attribute if it is present. If no I<prompt> attribute is
-given it will have '?' as the value.
-
-=item X-Meta-Foo:
-
-All E<lt>meta> elements containing a C<name> attribute will result in
-headers using the prefix C<X-Meta-> appended with the value of the
-C<name> attribute as the name of the header, and the value of the
-C<content> attribute as the pushed header value.
-
-E<lt>meta> elements containing a C<http-equiv> attribute will result
-in headers as in above, but without the C<X-Meta-> prefix in the
-header name.
-
-E<lt>meta> elements containing a C<charset> attribute will result in
-an C<X-Meta-Charset> header, using the value of the C<charset>
-attribute as the pushed header value.
-
-The ':' character can't be represented in header field names, so
-if the meta element contains this char it's substituted with '-'
-before forming the field name.
-
-=back
-
-=head1 METHODS
-
-The following methods (in addition to those provided by the
-superclass) are available:
-
-=over 4
-
-=cut
-
-
-require HTML::Parser;
-@ISA = qw(HTML::Parser);
-
-use HTML::Entities ();
-
-use strict;
-use vars qw($VERSION $DEBUG);
-#$DEBUG = 1;
-$VERSION = "3.71";
-
-=item $hp = HTML::HeadParser->new
-
-=item $hp = HTML::HeadParser->new( $header )
-
-The object constructor. The optional $header argument should be a
-reference to an object that implement the header() and push_header()
-methods as defined by the C<HTTP::Headers> class. Normally it will be
-of some class that is a or delegates to the C<HTTP::Headers> class.
-
-If no $header is given C<HTML::HeadParser> will create an
-C<HTTP::Headers> object by itself (initially empty).
-
-=cut
-
-sub new
-{
- my($class, $header) = @_;
- unless ($header) {
- require HTTP::Headers;
- $header = HTTP::Headers->new;
- }
-
- my $self = $class->SUPER::new(api_version => 3,
- start_h => ["start", "self,tagname,attr"],
- end_h => ["end", "self,tagname"],
- text_h => ["text", "self,text"],
- ignore_elements => [qw(script style)],
- );
- $self->{'header'} = $header;
- $self->{'tag'} = ''; # name of active element that takes textual content
- $self->{'text'} = ''; # the accumulated text associated with the element
- $self;
-}
-
-=item $hp->header;
-
-Returns a reference to the header object.
-
-=item $hp->header( $key )
-
-Returns a header value. It is just a shorter way to write
-C<$hp-E<gt>header-E<gt>header($key)>.
-
-=cut
-
-sub header
-{
- my $self = shift;
- return $self->{'header'} unless @_;
- $self->{'header'}->header(@_);
-}
-
-sub as_string # legacy
-{
- my $self = shift;
- $self->{'header'}->as_string;
-}
-
-sub flush_text # internal
-{
- my $self = shift;
- my $tag = $self->{'tag'};
- my $text = $self->{'text'};
- $text =~ s/^\s+//;
- $text =~ s/\s+$//;
- $text =~ s/\s+/ /g;
- print "FLUSH $tag => '$text'\n" if $DEBUG;
- if ($tag eq 'title') {
- my $decoded;
- $decoded = utf8::decode($text) if $self->utf8_mode && defined &utf8::decode;
- HTML::Entities::decode($text);
- utf8::encode($text) if $decoded;
- $self->{'header'}->push_header(Title => $text);
- }
- $self->{'tag'} = $self->{'text'} = '';
-}
-
-# This is an quote from the HTML3.2 DTD which shows which elements
-# that might be present in a <HEAD>...</HEAD>. Also note that the
-# <HEAD> tags themselves might be missing:
-#
-# <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE? &
-# SCRIPT* & META* & LINK*">
-#
-# <!ELEMENT HEAD O O (%head.content)>
-#
-# From HTML 4.01:
-#
-# <!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT">
-# <!ENTITY % head.content "TITLE & BASE?">
-# <!ELEMENT HEAD O O (%head.content;) +(%head.misc;)>
-#
-# From HTML 5 as of WD-html5-20090825:
-#
-# One or more elements of metadata content, [...]
-# => base, command, link, meta, noscript, script, style, title
-
-sub start
-{
- my($self, $tag, $attr) = @_; # $attr is reference to a HASH
- print "START[$tag]\n" if $DEBUG;
- $self->flush_text if $self->{'tag'};
- if ($tag eq 'meta') {
- my $key = $attr->{'http-equiv'};
- if (!defined($key) || !length($key)) {
- if ($attr->{name}) {
- $key = "X-Meta-\u$attr->{name}";
- } elsif ($attr->{charset}) { # HTML 5 <meta charset="...">
- $key = "X-Meta-Charset";
- $self->{header}->push_header($key => $attr->{charset});
- return;
- } else {
- return;
- }
- }
- $key =~ s/:/-/g;
- $self->{'header'}->push_header($key => $attr->{content});
- } elsif ($tag eq 'base') {
- return unless exists $attr->{href};
- (my $base = $attr->{href}) =~ s/^\s+//; $base =~ s/\s+$//; # HTML5
- $self->{'header'}->push_header('Content-Base' => $base);
- } elsif ($tag eq 'isindex') {
- # This is a non-standard header. Perhaps we should just ignore
- # this element
- $self->{'header'}->push_header(Isindex => $attr->{prompt} || '?');
- } elsif ($tag =~ /^(?:title|noscript|object|command)$/) {
- # Just remember tag. Initialize header when we see the end tag.
- $self->{'tag'} = $tag;
- } elsif ($tag eq 'link') {
- return unless exists $attr->{href};
- # <link href="http:..." rel="xxx" rev="xxx" title="xxx">
- my $href = delete($attr->{href});
- $href =~ s/^\s+//; $href =~ s/\s+$//; # HTML5
- my $h_val = "<$href>";
- for (sort keys %{$attr}) {
- next if $_ eq "/"; # XHTML junk
- $h_val .= qq(; $_="$attr->{$_}");
- }
- $self->{'header'}->push_header(Link => $h_val);
- } elsif ($tag eq 'head' || $tag eq 'html') {
- # ignore
- } else {
- # stop parsing
- $self->eof;
- }
-}
-
-sub end
-{
- my($self, $tag) = @_;
- print "END[$tag]\n" if $DEBUG;
- $self->flush_text if $self->{'tag'};
- $self->eof if $tag eq 'head';
-}
-
-sub text
-{
- my($self, $text) = @_;
- print "TEXT[$text]\n" if $DEBUG;
- unless ($self->{first_chunk}) {
- # drop Unicode BOM if found
- if ($self->utf8_mode) {
- $text =~ s/^\xEF\xBB\xBF//;
- }
- else {
- $text =~ s/^\x{FEFF}//;
- }
- $self->{first_chunk}++;
- }
- my $tag = $self->{tag};
- if (!$tag && $text =~ /\S/) {
- # Normal text means start of body
- $self->eof;
- return;
- }
- return if $tag ne 'title';
- $self->{'text'} .= $text;
-}
-
-BEGIN {
- *utf8_mode = sub { 1 } unless HTML::Entities::UNICODE_SUPPORT;
-}
-
-1;
-
-__END__
-
-=back
-
-=head1 EXAMPLE
-
- $h = HTTP::Headers->new;
- $p = HTML::HeadParser->new($h);
- $p->parse(<<EOT);
- <title>Stupid example</title>
- <base href="http://www.linpro.no/lwp/">
- Normal text starts here.
- EOT
- undef $p;
- print $h->title; # should print "Stupid example"
-
-=head1 SEE ALSO
-
-L<HTML::Parser>, L<HTTP::Headers>
-
-The C<HTTP::Headers> class is distributed as part of the
-I<libwww-perl> package. If you don't have that distribution installed
-you need to provide the $header argument to the C<HTML::HeadParser>
-constructor with your own object that implements the documented
-protocol.
-
-=head1 COPYRIGHT
-
-Copyright 1996-2001 Gisle Aas. All rights reserved.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/HTML/LinkExtor.pm b/Master/tlpkg/tlperl/lib/HTML/LinkExtor.pm
deleted file mode 100644
index c2f08c62d9d..00000000000
--- a/Master/tlpkg/tlperl/lib/HTML/LinkExtor.pm
+++ /dev/null
@@ -1,185 +0,0 @@
-package HTML::LinkExtor;
-
-require HTML::Parser;
-@ISA = qw(HTML::Parser);
-$VERSION = "3.69";
-
-=head1 NAME
-
-HTML::LinkExtor - Extract links from an HTML document
-
-=head1 SYNOPSIS
-
- require HTML::LinkExtor;
- $p = HTML::LinkExtor->new(\&cb, "http://www.perl.org/");
- sub cb {
- my($tag, %links) = @_;
- print "$tag @{[%links]}\n";
- }
- $p->parse_file("index.html");
-
-=head1 DESCRIPTION
-
-I<HTML::LinkExtor> is an HTML parser that extracts links from an
-HTML document. The I<HTML::LinkExtor> is a subclass of
-I<HTML::Parser>. This means that the document should be given to the
-parser by calling the $p->parse() or $p->parse_file() methods.
-
-=cut
-
-use strict;
-use HTML::Tagset ();
-
-# legacy (some applications grabs this hash directly)
-use vars qw(%LINK_ELEMENT);
-*LINK_ELEMENT = \%HTML::Tagset::linkElements;
-
-=over 4
-
-=item $p = HTML::LinkExtor->new
-
-=item $p = HTML::LinkExtor->new( $callback )
-
-=item $p = HTML::LinkExtor->new( $callback, $base )
-
-The constructor takes two optional arguments. The first is a reference
-to a callback routine. It will be called as links are found. If a
-callback is not provided, then links are just accumulated internally
-and can be retrieved by calling the $p->links() method.
-
-The $base argument is an optional base URL used to absolutize all URLs found.
-You need to have the I<URI> module installed if you provide $base.
-
-The callback is called with the lowercase tag name as first argument,
-and then all link attributes as separate key/value pairs. All
-non-link attributes are removed.
-
-=cut
-
-sub new
-{
- my($class, $cb, $base) = @_;
- my $self = $class->SUPER::new(
- start_h => ["_start_tag", "self,tagname,attr"],
- report_tags => [keys %HTML::Tagset::linkElements],
- );
- $self->{extractlink_cb} = $cb;
- if ($base) {
- require URI;
- $self->{extractlink_base} = URI->new($base);
- }
- $self;
-}
-
-sub _start_tag
-{
- my($self, $tag, $attr) = @_;
-
- my $base = $self->{extractlink_base};
- my $links = $HTML::Tagset::linkElements{$tag};
- $links = [$links] unless ref $links;
-
- my @links;
- my $a;
- for $a (@$links) {
- next unless exists $attr->{$a};
- (my $link = $attr->{$a}) =~ s/^\s+//; $link =~ s/\s+$//; # HTML5
- push(@links, $a, $base ? URI->new($link, $base)->abs($base) : $link);
- }
- return unless @links;
- $self->_found_link($tag, @links);
-}
-
-sub _found_link
-{
- my $self = shift;
- my $cb = $self->{extractlink_cb};
- if ($cb) {
- &$cb(@_);
- } else {
- push(@{$self->{'links'}}, [@_]);
- }
-}
-
-=item $p->links
-
-Returns a list of all links found in the document. The returned
-values will be anonymous arrays with the following elements:
-
- [$tag, $attr => $url1, $attr2 => $url2,...]
-
-The $p->links method will also truncate the internal link list. This
-means that if the method is called twice without any parsing
-between them the second call will return an empty list.
-
-Also note that $p->links will always be empty if a callback routine
-was provided when the I<HTML::LinkExtor> was created.
-
-=cut
-
-sub links
-{
- my $self = shift;
- exists($self->{'links'}) ? @{delete $self->{'links'}} : ();
-}
-
-# We override the parse_file() method so that we can clear the links
-# before we start a new file.
-sub parse_file
-{
- my $self = shift;
- delete $self->{'links'};
- $self->SUPER::parse_file(@_);
-}
-
-=back
-
-=head1 EXAMPLE
-
-This is an example showing how you can extract links from a document
-received using LWP:
-
- use LWP::UserAgent;
- use HTML::LinkExtor;
- use URI::URL;
-
- $url = "http://www.perl.org/"; # for instance
- $ua = LWP::UserAgent->new;
-
- # Set up a callback that collect image links
- my @imgs = ();
- sub callback {
- my($tag, %attr) = @_;
- return if $tag ne 'img'; # we only look closer at <img ...>
- push(@imgs, values %attr);
- }
-
- # Make the parser. Unfortunately, we don't know the base yet
- # (it might be different from $url)
- $p = HTML::LinkExtor->new(\&callback);
-
- # Request document and parse it as it arrives
- $res = $ua->request(HTTP::Request->new(GET => $url),
- sub {$p->parse($_[0])});
-
- # Expand all image URLs to absolute ones
- my $base = $res->base;
- @imgs = map { $_ = url($_, $base)->abs; } @imgs;
-
- # Print them out
- print join("\n", @imgs), "\n";
-
-=head1 SEE ALSO
-
-L<HTML::Parser>, L<HTML::Tagset>, L<LWP>, L<URI::URL>
-
-=head1 COPYRIGHT
-
-Copyright 1996-2001 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/HTML/Parser.pm b/Master/tlpkg/tlperl/lib/HTML/Parser.pm
deleted file mode 100644
index 42dd1a1c8c5..00000000000
--- a/Master/tlpkg/tlperl/lib/HTML/Parser.pm
+++ /dev/null
@@ -1,1240 +0,0 @@
-package HTML::Parser;
-
-# Copyright 1996-2009, Gisle Aas.
-# Copyright 1999-2000, Michael A. Chase.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-use strict;
-use vars qw($VERSION @ISA);
-
-$VERSION = "3.71";
-
-require HTML::Entities;
-
-require XSLoader;
-XSLoader::load('HTML::Parser', $VERSION);
-
-sub new
-{
- my $class = shift;
- my $self = bless {}, $class;
- return $self->init(@_);
-}
-
-
-sub init
-{
- my $self = shift;
- $self->_alloc_pstate;
-
- my %arg = @_;
- my $api_version = delete $arg{api_version} || (@_ ? 3 : 2);
- if ($api_version >= 4) {
- require Carp;
- Carp::croak("API version $api_version not supported " .
- "by HTML::Parser $VERSION");
- }
-
- if ($api_version < 3) {
- # Set up method callbacks compatible with HTML-Parser-2.xx
- $self->handler(text => "text", "self,text,is_cdata");
- $self->handler(end => "end", "self,tagname,text");
- $self->handler(process => "process", "self,token0,text");
- $self->handler(start => "start",
- "self,tagname,attr,attrseq,text");
-
- $self->handler(comment =>
- sub {
- my($self, $tokens) = @_;
- for (@$tokens) {
- $self->comment($_);
- }
- }, "self,tokens");
-
- $self->handler(declaration =>
- sub {
- my $self = shift;
- $self->declaration(substr($_[0], 2, -1));
- }, "self,text");
- }
-
- if (my $h = delete $arg{handlers}) {
- $h = {@$h} if ref($h) eq "ARRAY";
- while (my($event, $cb) = each %$h) {
- $self->handler($event => @$cb);
- }
- }
-
- # In the end we try to assume plain attribute or handler
- while (my($option, $val) = each %arg) {
- if ($option =~ /^(\w+)_h$/) {
- $self->handler($1 => @$val);
- }
- elsif ($option =~ /^(text|start|end|process|declaration|comment)$/) {
- require Carp;
- Carp::croak("Bad constructor option '$option'");
- }
- else {
- $self->$option($val);
- }
- }
-
- return $self;
-}
-
-
-sub parse_file
-{
- my($self, $file) = @_;
- my $opened;
- if (!ref($file) && ref(\$file) ne "GLOB") {
- # Assume $file is a filename
- local(*F);
- open(F, "<", $file) || return undef;
- binmode(F); # should we? good for byte counts
- $opened++;
- $file = *F;
- }
- my $chunk = '';
- while (read($file, $chunk, 512)) {
- $self->parse($chunk) || last;
- }
- close($file) if $opened;
- $self->eof;
-}
-
-
-sub netscape_buggy_comment # legacy
-{
- my $self = shift;
- require Carp;
- Carp::carp("netscape_buggy_comment() is deprecated. " .
- "Please use the strict_comment() method instead");
- my $old = !$self->strict_comment;
- $self->strict_comment(!shift) if @_;
- return $old;
-}
-
-# set up method stubs
-sub text { }
-*start = \&text;
-*end = \&text;
-*comment = \&text;
-*declaration = \&text;
-*process = \&text;
-
-1;
-
-__END__
-
-
-=head1 NAME
-
-HTML::Parser - HTML parser class
-
-=head1 SYNOPSIS
-
- use HTML::Parser ();
-
- # Create parser object
- $p = HTML::Parser->new( api_version => 3,
- start_h => [\&start, "tagname, attr"],
- end_h => [\&end, "tagname"],
- marked_sections => 1,
- );
-
- # Parse document text chunk by chunk
- $p->parse($chunk1);
- $p->parse($chunk2);
- #...
- $p->eof; # signal end of document
-
- # Parse directly from file
- $p->parse_file("foo.html");
- # or
- open(my $fh, "<:utf8", "foo.html") || die;
- $p->parse_file($fh);
-
-=head1 DESCRIPTION
-
-Objects of the C<HTML::Parser> class will recognize markup and
-separate it from plain text (alias data content) in HTML
-documents. As different kinds of markup and text are recognized, the
-corresponding event handlers are invoked.
-
-C<HTML::Parser> is not a generic SGML parser. We have tried to
-make it able to deal with the HTML that is actually "out there", and
-it normally parses as closely as possible to the way the popular web
-browsers do it instead of strictly following one of the many HTML
-specifications from W3C. Where there is disagreement, there is often
-an option that you can enable to get the official behaviour.
-
-The document to be parsed may be supplied in arbitrary chunks. This
-makes on-the-fly parsing as documents are received from the network
-possible.
-
-If event driven parsing does not feel right for your application, you
-might want to use C<HTML::PullParser>. This is an C<HTML::Parser>
-subclass that allows a more conventional program structure.
-
-
-=head1 METHODS
-
-The following method is used to construct a new C<HTML::Parser> object:
-
-=over
-
-=item $p = HTML::Parser->new( %options_and_handlers )
-
-This class method creates a new C<HTML::Parser> object and
-returns it. Key/value argument pairs may be provided to assign event
-handlers or initialize parser options. The handlers and parser
-options can also be set or modified later by the method calls described below.
-
-If a top level key is in the form "<event>_h" (e.g., "text_h") then it
-assigns a handler to that event, otherwise it initializes a parser
-option. The event handler specification value must be an array
-reference. Multiple handlers may also be assigned with the 'handlers
-=> [%handlers]' option. See examples below.
-
-If new() is called without any arguments, it will create a parser that
-uses callback methods compatible with version 2 of C<HTML::Parser>.
-See the section on "version 2 compatibility" below for details.
-
-The special constructor option 'api_version => 2' can be used to
-initialize version 2 callbacks while still setting other options and
-handlers. The 'api_version => 3' option can be used if you don't want
-to set any options and don't want to fall back to v2 compatible
-mode.
-
-Examples:
-
- $p = HTML::Parser->new(api_version => 3,
- text_h => [ sub {...}, "dtext" ]);
-
-This creates a new parser object with a text event handler subroutine
-that receives the original text with general entities decoded.
-
- $p = HTML::Parser->new(api_version => 3,
- start_h => [ 'my_start', "self,tokens" ]);
-
-This creates a new parser object with a start event handler method
-that receives the $p and the tokens array.
-
- $p = HTML::Parser->new(api_version => 3,
- handlers => { text => [\@array, "event,text"],
- comment => [\@array, "event,text"],
- });
-
-This creates a new parser object that stores the event type and the
-original text in @array for text and comment events.
-
-=back
-
-The following methods feed the HTML document
-to the C<HTML::Parser> object:
-
-=over
-
-=item $p->parse( $string )
-
-Parse $string as the next chunk of the HTML document. Handlers invoked should
-not attempt to modify the $string in-place until $p->parse returns.
-
-If an invoked event handler aborts parsing by calling $p->eof, then $p->parse()
-will return a FALSE value. Otherwise the return value is a reference to the
-parser object ($p).
-
-=item $p->parse( $code_ref )
-
-If a code reference is passed as the argument to be parsed, then the
-chunks to be parsed are obtained by invoking this function repeatedly.
-Parsing continues until the function returns an empty (or undefined)
-result. When this happens $p->eof is automatically signaled.
-
-Parsing will also abort if one of the event handlers calls $p->eof.
-
-The effect of this is the same as:
-
- while (1) {
- my $chunk = &$code_ref();
- if (!defined($chunk) || !length($chunk)) {
- $p->eof;
- return $p;
- }
- $p->parse($chunk) || return undef;
- }
-
-But it is more efficient as this loop runs internally in XS code.
-
-=item $p->parse_file( $file )
-
-Parse text directly from a file. The $file argument can be a
-filename, an open file handle, or a reference to an open file
-handle.
-
-If $file contains a filename and the file can't be opened, then the
-method returns an undefined value and $! tells why it failed.
-Otherwise the return value is a reference to the parser object.
-
-If a file handle is passed as the $file argument, then the file will
-normally be read until EOF, but not closed.
-
-If an invoked event handler aborts parsing by calling $p->eof,
-then $p->parse_file() may not have read the entire file.
-
-On systems with multi-byte line terminators, the values passed for the
-offset and length argspecs may be too low if parse_file() is called on
-a file handle that is not in binary mode.
-
-If a filename is passed in, then parse_file() will open the file in
-binary mode.
-
-=item $p->eof
-
-Signals the end of the HTML document. Calling the $p->eof method
-outside a handler callback will flush any remaining buffered text
-(which triggers the C<text> event if there is any remaining text).
-
-Calling $p->eof inside a handler will terminate parsing at that point
-and cause $p->parse to return a FALSE value. This also terminates
-parsing by $p->parse_file().
-
-After $p->eof has been called, the parse() and parse_file() methods
-can be invoked to feed new documents with the parser object.
-
-The return value from eof() is a reference to the parser object.
-
-=back
-
-
-Most parser options are controlled by boolean attributes.
-Each boolean attribute is enabled by calling the corresponding method
-with a TRUE argument and disabled with a FALSE argument. The
-attribute value is left unchanged if no argument is given. The return
-value from each method is the old attribute value.
-
-Methods that can be used to get and/or set parser options are:
-
-=over
-
-=item $p->attr_encoded
-
-=item $p->attr_encoded( $bool )
-
-By default, the C<attr> and C<@attr> argspecs will have general
-entities for attribute values decoded. Enabling this attribute leaves
-entities alone.
-
-=item $p->backquote
-
-=item $p->backquote( $bool )
-
-By default, only ' and " are recognized as quote characters around
-attribute values. MSIE also recognizes backquotes for some reason.
-Enabling this attribute provides compatibility with this behaviour.
-
-=item $p->boolean_attribute_value( $val )
-
-This method sets the value reported for boolean attributes inside HTML
-start tags. By default, the name of the attribute is also used as its
-value. This affects the values reported for C<tokens> and C<attr>
-argspecs.
-
-=item $p->case_sensitive
-
-=item $p->case_sensitive( $bool )
-
-By default, tagnames and attribute names are down-cased. Enabling this
-attribute leaves them as found in the HTML source document.
-
-=item $p->closing_plaintext
-
-=item $p->closing_plaintext( $bool )
-
-By default, "plaintext" element can never be closed. Everything up to
-the end of the document is parsed in CDATA mode. This historical
-behaviour is what at least MSIE does. Enabling this attribute makes
-closing "</plaintext>" tag effective and the parsing process will resume
-after seeing this tag. This emulates early gecko-based browsers.
-
-=item $p->empty_element_tags
-
-=item $p->empty_element_tags( $bool )
-
-By default, empty element tags are not recognized as such and the "/"
-before ">" is just treated like a normal name character (unless
-C<strict_names> is enabled). Enabling this attribute make
-C<HTML::Parser> recognize these tags.
-
-Empty element tags look like start tags, but end with the character
-sequence "/>" instead of ">". When recognized by C<HTML::Parser> they
-cause an artificial end event in addition to the start event. The
-C<text> for the artificial end event will be empty and the C<tokenpos>
-array will be undefined even though the the token array will have one
-element containing the tag name.
-
-=item $p->marked_sections
-
-=item $p->marked_sections( $bool )
-
-By default, section markings like <![CDATA[...]]> are treated like
-ordinary text. When this attribute is enabled section markings are
-honoured.
-
-There are currently no events associated with the marked section
-markup, but the text can be returned as C<skipped_text>.
-
-=item $p->strict_comment
-
-=item $p->strict_comment( $bool )
-
-By default, comments are terminated by the first occurrence of "-->".
-This is the behaviour of most popular browsers (like Mozilla, Opera and
-MSIE), but it is not correct according to the official HTML
-standard. Officially, you need an even number of "--" tokens before
-the closing ">" is recognized and there may not be anything but
-whitespace between an even and an odd "--".
-
-The official behaviour is enabled by enabling this attribute.
-
-Enabling of 'strict_comment' also disables recognizing these forms as
-comments:
-
- </ comment>
- <! comment>
-
-
-=item $p->strict_end
-
-=item $p->strict_end( $bool )
-
-By default, attributes and other junk are allowed to be present on end tags in a
-manner that emulates MSIE's behaviour.
-
-The official behaviour is enabled with this attribute. If enabled,
-only whitespace is allowed between the tagname and the final ">".
-
-=item $p->strict_names
-
-=item $p->strict_names( $bool )
-
-By default, almost anything is allowed in tag and attribute names.
-This is the behaviour of most popular browsers and allows us to parse
-some broken tags with invalid attribute values like:
-
- <IMG SRC=newprevlstGr.gif ALT=[PREV LIST] BORDER=0>
-
-By default, "LIST]" is parsed as a boolean attribute, not as
-part of the ALT value as was clearly intended. This is also what
-Mozilla sees.
-
-The official behaviour is enabled by enabling this attribute. If
-enabled, it will cause the tag above to be reported as text
-since "LIST]" is not a legal attribute name.
-
-=item $p->unbroken_text
-
-=item $p->unbroken_text( $bool )
-
-By default, blocks of text are given to the text handler as soon as
-possible (but the parser takes care always to break text at a
-boundary between whitespace and non-whitespace so single words and
-entities can always be decoded safely). This might create breaks that
-make it hard to do transformations on the text. When this attribute is
-enabled, blocks of text are always reported in one piece. This will
-delay the text event until the following (non-text) event has been
-recognized by the parser.
-
-Note that the C<offset> argspec will give you the offset of the first
-segment of text and C<length> is the combined length of the segments.
-Since there might be ignored tags in between, these numbers can't be
-used to directly index in the original document file.
-
-=item $p->utf8_mode
-
-=item $p->utf8_mode( $bool )
-
-Enable this option when parsing raw undecoded UTF-8. This tells the
-parser that the entities expanded for strings reported by C<attr>,
-C<@attr> and C<dtext> should be expanded as decoded UTF-8 so they end
-up compatible with the surrounding text.
-
-If C<utf8_mode> is enabled then it is an error to pass strings
-containing characters with code above 255 to the parse() method, and
-the parse() method will croak if you try.
-
-Example: The Unicode character "\x{2665}" is "\xE2\x99\xA5" when UTF-8
-encoded. The character can also be represented by the entity
-"&hearts;" or "&#x2665". If we feed the parser:
-
- $p->parse("\xE2\x99\xA5&hearts;");
-
-then C<dtext> will be reported as "\xE2\x99\xA5\x{2665}" without
-C<utf8_mode> enabled, but as "\xE2\x99\xA5\xE2\x99\xA5" when enabled.
-The later string is what you want.
-
-This option is only available with perl-5.8 or better.
-
-=item $p->xml_mode
-
-=item $p->xml_mode( $bool )
-
-Enabling this attribute changes the parser to allow some XML
-constructs. This enables the behaviour controlled by individually by
-the C<case_sensitive>, C<empty_element_tags>, C<strict_names> and
-C<xml_pic> attributes and also suppresses special treatment of
-elements that are parsed as CDATA for HTML.
-
-=item $p->xml_pic
-
-=item $p->xml_pic( $bool )
-
-By default, I<processing instructions> are terminated by ">". When
-this attribute is enabled, processing instructions are terminated by
-"?>" instead.
-
-=back
-
-As markup and text is recognized, handlers are invoked. The following
-method is used to set up handlers for different events:
-
-=over
-
-=item $p->handler( event => \&subroutine, $argspec )
-
-=item $p->handler( event => $method_name, $argspec )
-
-=item $p->handler( event => \@accum, $argspec )
-
-=item $p->handler( event => "" );
-
-=item $p->handler( event => undef );
-
-=item $p->handler( event );
-
-This method assigns a subroutine, method, or array to handle an event.
-
-Event is one of C<text>, C<start>, C<end>, C<declaration>, C<comment>,
-C<process>, C<start_document>, C<end_document> or C<default>.
-
-The C<\&subroutine> is a reference to a subroutine which is called to handle
-the event.
-
-The C<$method_name> is the name of a method of $p which is called to handle
-the event.
-
-The C<@accum> is an array that will hold the event information as
-sub-arrays.
-
-If the second argument is "", the event is ignored.
-If it is undef, the default handler is invoked for the event.
-
-The C<$argspec> is a string that describes the information to be reported
-for the event. Any requested information that does not apply to a
-specific event is passed as C<undef>. If argspec is omitted, then it
-is left unchanged.
-
-The return value from $p->handler is the old callback routine or a
-reference to the accumulator array.
-
-Any return values from handler callback routines/methods are always
-ignored. A handler callback can request parsing to be aborted by
-invoking the $p->eof method. A handler callback is not allowed to
-invoke the $p->parse() or $p->parse_file() method. An exception will
-be raised if it tries.
-
-Examples:
-
- $p->handler(start => "start", 'self, attr, attrseq, text' );
-
-This causes the "start" method of object $p to be called for 'start' events.
-The callback signature is $p->start(\%attr, \@attr_seq, $text).
-
- $p->handler(start => \&start, 'attr, attrseq, text' );
-
-This causes subroutine start() to be called for 'start' events.
-The callback signature is start(\%attr, \@attr_seq, $text).
-
- $p->handler(start => \@accum, '"S", attr, attrseq, text' );
-
-This causes 'start' event information to be saved in @accum.
-The array elements will be ['S', \%attr, \@attr_seq, $text].
-
- $p->handler(start => "");
-
-This causes 'start' events to be ignored. It also suppresses
-invocations of any default handler for start events. It is in most
-cases equivalent to $p->handler(start => sub {}), but is more
-efficient. It is different from the empty-sub-handler in that
-C<skipped_text> is not reset by it.
-
- $p->handler(start => undef);
-
-This causes no handler to be associated with start events.
-If there is a default handler it will be invoked.
-
-=back
-
-Filters based on tags can be set up to limit the number of events
-reported. The main bottleneck during parsing is often the huge number
-of callbacks made from the parser. Applying filters can improve
-performance significantly.
-
-The following methods control filters:
-
-=over
-
-=item $p->ignore_elements( @tags )
-
-Both the C<start> event and the C<end> event as well as any events that
-would be reported in between are suppressed. The ignored elements can
-contain nested occurrences of itself. Example:
-
- $p->ignore_elements(qw(script style));
-
-The C<script> and C<style> tags will always nest properly since their
-content is parsed in CDATA mode. For most other tags
-C<ignore_elements> must be used with caution since HTML is often not
-I<well formed>.
-
-=item $p->ignore_tags( @tags )
-
-Any C<start> and C<end> events involving any of the tags given are
-suppressed. To reset the filter (i.e. don't suppress any C<start> and
-C<end> events), call C<ignore_tags> without an argument.
-
-=item $p->report_tags( @tags )
-
-Any C<start> and C<end> events involving any of the tags I<not> given
-are suppressed. To reset the filter (i.e. report all C<start> and
-C<end> events), call C<report_tags> without an argument.
-
-=back
-
-Internally, the system has two filter lists, one for C<report_tags>
-and one for C<ignore_tags>, and both filters are applied. This
-effectively gives C<ignore_tags> precedence over C<report_tags>.
-
-Examples:
-
- $p->ignore_tags(qw(style));
- $p->report_tags(qw(script style));
-
-results in only C<script> events being reported.
-
-=head2 Argspec
-
-Argspec is a string containing a comma-separated list that describes
-the information reported by the event. The following argspec
-identifier names can be used:
-
-=over
-
-=item C<attr>
-
-Attr causes a reference to a hash of attribute name/value pairs to be
-passed.
-
-Boolean attributes' values are either the value set by
-$p->boolean_attribute_value, or the attribute name if no value has been
-set by $p->boolean_attribute_value.
-
-This passes undef except for C<start> events.
-
-Unless C<xml_mode> or C<case_sensitive> is enabled, the attribute
-names are forced to lower case.
-
-General entities are decoded in the attribute values and
-one layer of matching quotes enclosing the attribute values is removed.
-
-The Unicode character set is assumed for entity decoding.
-
-=item C<@attr>
-
-Basically the same as C<attr>, but keys and values are passed as
-individual arguments and the original sequence of the attributes is
-kept. The parameters passed will be the same as the @attr calculated
-here:
-
- @attr = map { $_ => $attr->{$_} } @$attrseq;
-
-assuming $attr and $attrseq here are the hash and array passed as the
-result of C<attr> and C<attrseq> argspecs.
-
-This passes no values for events besides C<start>.
-
-=item C<attrseq>
-
-Attrseq causes a reference to an array of attribute names to be
-passed. This can be useful if you want to walk the C<attr> hash in
-the original sequence.
-
-This passes undef except for C<start> events.
-
-Unless C<xml_mode> or C<case_sensitive> is enabled, the attribute
-names are forced to lower case.
-
-=item C<column>
-
-Column causes the column number of the start of the event to be passed.
-The first column on a line is 0.
-
-=item C<dtext>
-
-Dtext causes the decoded text to be passed. General entities are
-automatically decoded unless the event was inside a CDATA section or
-was between literal start and end tags (C<script>, C<style>,
-C<xmp>, C<iframe>, C<title>, C<textarea> and C<plaintext>).
-
-The Unicode character set is assumed for entity decoding. With Perl
-version 5.6 or earlier only the Latin-1 range is supported, and
-entities for characters outside the range 0..255 are left unchanged.
-
-This passes undef except for C<text> events.
-
-=item C<event>
-
-Event causes the event name to be passed.
-
-The event name is one of C<text>, C<start>, C<end>, C<declaration>,
-C<comment>, C<process>, C<start_document> or C<end_document>.
-
-=item C<is_cdata>
-
-Is_cdata causes a TRUE value to be passed if the event is inside a CDATA
-section or between literal start and end tags (C<script>,
-C<style>, C<xmp>, C<iframe>, C<title>, C<textarea> and C<plaintext>).
-
-if the flag is FALSE for a text event, then you should normally
-either use C<dtext> or decode the entities yourself before the text is
-processed further.
-
-=item C<length>
-
-Length causes the number of bytes of the source text of the event to
-be passed.
-
-=item C<line>
-
-Line causes the line number of the start of the event to be passed.
-The first line in the document is 1. Line counting doesn't start
-until at least one handler requests this value to be reported.
-
-=item C<offset>
-
-Offset causes the byte position in the HTML document of the start of
-the event to be passed. The first byte in the document has offset 0.
-
-=item C<offset_end>
-
-Offset_end causes the byte position in the HTML document of the end of
-the event to be passed. This is the same as C<offset> + C<length>.
-
-=item C<self>
-
-Self causes the current object to be passed to the handler. If the
-handler is a method, this must be the first element in the argspec.
-
-An alternative to passing self as an argspec is to register closures
-that capture $self by themselves as handlers. Unfortunately this
-creates circular references which prevent the HTML::Parser object
-from being garbage collected. Using the C<self> argspec avoids this
-problem.
-
-=item C<skipped_text>
-
-Skipped_text returns the concatenated text of all the events that have
-been skipped since the last time an event was reported. Events might
-be skipped because no handler is registered for them or because some
-filter applies. Skipped text also includes marked section markup,
-since there are no events that can catch it.
-
-If an C<"">-handler is registered for an event, then the text for this
-event is not included in C<skipped_text>. Skipped text both before
-and after the C<"">-event is included in the next reported
-C<skipped_text>.
-
-=item C<tag>
-
-Same as C<tagname>, but prefixed with "/" if it belongs to an C<end>
-event and "!" for a declaration. The C<tag> does not have any prefix
-for C<start> events, and is in this case identical to C<tagname>.
-
-=item C<tagname>
-
-This is the element name (or I<generic identifier> in SGML jargon) for
-start and end tags. Since HTML is case insensitive, this name is
-forced to lower case to ease string matching.
-
-Since XML is case sensitive, the tagname case is not changed when
-C<xml_mode> is enabled. The same happens if the C<case_sensitive> attribute
-is set.
-
-The declaration type of declaration elements is also passed as a tagname,
-even if that is a bit strange.
-In fact, in the current implementation tagname is
-identical to C<token0> except that the name may be forced to lower case.
-
-=item C<token0>
-
-Token0 causes the original text of the first token string to be
-passed. This should always be the same as $tokens->[0].
-
-For C<declaration> events, this is the declaration type.
-
-For C<start> and C<end> events, this is the tag name.
-
-For C<process> and non-strict C<comment> events, this is everything
-inside the tag.
-
-This passes undef if there are no tokens in the event.
-
-=item C<tokenpos>
-
-Tokenpos causes a reference to an array of token positions to be
-passed. For each string that appears in C<tokens>, this array
-contains two numbers. The first number is the offset of the start of
-the token in the original C<text> and the second number is the length
-of the token.
-
-Boolean attributes in a C<start> event will have (0,0) for the
-attribute value offset and length.
-
-This passes undef if there are no tokens in the event (e.g., C<text>)
-and for artificial C<end> events triggered by empty element tags.
-
-If you are using these offsets and lengths to modify C<text>, you
-should either work from right to left, or be very careful to calculate
-the changes to the offsets.
-
-=item C<tokens>
-
-Tokens causes a reference to an array of token strings to be passed.
-The strings are exactly as they were found in the original text,
-no decoding or case changes are applied.
-
-For C<declaration> events, the array contains each word, comment, and
-delimited string starting with the declaration type.
-
-For C<comment> events, this contains each sub-comment. If
-$p->strict_comments is disabled, there will be only one sub-comment.
-
-For C<start> events, this contains the original tag name followed by
-the attribute name/value pairs. The values of boolean attributes will
-be either the value set by $p->boolean_attribute_value, or the
-attribute name if no value has been set by
-$p->boolean_attribute_value.
-
-For C<end> events, this contains the original tag name (always one token).
-
-For C<process> events, this contains the process instructions (always one
-token).
-
-This passes C<undef> for C<text> events.
-
-=item C<text>
-
-Text causes the source text (including markup element delimiters) to be
-passed.
-
-=item C<undef>
-
-Pass an undefined value. Useful as padding where the same handler
-routine is registered for multiple events.
-
-=item C<'...'>
-
-A literal string of 0 to 255 characters enclosed
-in single (') or double (") quotes is passed as entered.
-
-=back
-
-The whole argspec string can be wrapped up in C<'@{...}'> to signal
-that the resulting event array should be flattened. This only makes a
-difference if an array reference is used as the handler target.
-Consider this example:
-
- $p->handler(text => [], 'text');
- $p->handler(text => [], '@{text}']);
-
-With two text events; C<"foo">, C<"bar">; then the first example will end
-up with [["foo"], ["bar"]] and the second with ["foo", "bar"] in
-the handler target array.
-
-
-=head2 Events
-
-Handlers for the following events can be registered:
-
-=over
-
-=item C<comment>
-
-This event is triggered when a markup comment is recognized.
-
-Example:
-
- <!-- This is a comment -- -- So is this -->
-
-=item C<declaration>
-
-This event is triggered when a I<markup declaration> is recognized.
-
-For typical HTML documents, the only declaration you are
-likely to find is <!DOCTYPE ...>.
-
-Example:
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-
-DTDs inside <!DOCTYPE ...> will confuse HTML::Parser.
-
-=item C<default>
-
-This event is triggered for events that do not have a specific
-handler. You can set up a handler for this event to catch stuff you
-did not want to catch explicitly.
-
-=item C<end>
-
-This event is triggered when an end tag is recognized.
-
-Example:
-
- </A>
-
-=item C<end_document>
-
-This event is triggered when $p->eof is called and after any remaining
-text is flushed. There is no document text associated with this event.
-
-=item C<process>
-
-This event is triggered when a processing instructions markup is
-recognized.
-
-The format and content of processing instructions are system and
-application dependent.
-
-Examples:
-
- <? HTML processing instructions >
- <? XML processing instructions ?>
-
-=item C<start>
-
-This event is triggered when a start tag is recognized.
-
-Example:
-
- <A HREF="http://www.perl.com/">
-
-=item C<start_document>
-
-This event is triggered before any other events for a new document. A
-handler for it can be used to initialize stuff. There is no document
-text associated with this event.
-
-=item C<text>
-
-This event is triggered when plain text (characters) is recognized.
-The text may contain multiple lines. A sequence of text may be broken
-between several text events unless $p->unbroken_text is enabled.
-
-The parser will make sure that it does not break a word or a sequence
-of whitespace between two text events.
-
-=back
-
-=head2 Unicode
-
-C<HTML::Parser> can parse Unicode strings when running under
-perl-5.8 or better. If Unicode is passed to $p->parse() then chunks
-of Unicode will be reported to the handlers. The offset and length
-argspecs will also report their position in terms of characters.
-
-It is safe to parse raw undecoded UTF-8 if you either avoid decoding
-entities and make sure to not use I<argspecs> that do, or enable the
-C<utf8_mode> for the parser. Parsing of undecoded UTF-8 might be
-useful when parsing from a file where you need the reported offsets
-and lengths to match the byte offsets in the file.
-
-If a filename is passed to $p->parse_file() then the file will be read
-in binary mode. This will be fine if the file contains only ASCII or
-Latin-1 characters. If the file contains UTF-8 encoded text then care
-must be taken when decoding entities as described in the previous
-paragraph, but better is to open the file with the UTF-8 layer so that
-it is decoded properly:
-
- open(my $fh, "<:utf8", "index.html") || die "...: $!";
- $p->parse_file($fh);
-
-If the file contains text encoded in a charset besides ASCII, Latin-1
-or UTF-8 then decoding will always be needed.
-
-=head1 VERSION 2 COMPATIBILITY
-
-When an C<HTML::Parser> object is constructed with no arguments, a set
-of handlers is automatically provided that is compatible with the old
-HTML::Parser version 2 callback methods.
-
-This is equivalent to the following method calls:
-
- $p->handler(start => "start", "self, tagname, attr, attrseq, text");
- $p->handler(end => "end", "self, tagname, text");
- $p->handler(text => "text", "self, text, is_cdata");
- $p->handler(process => "process", "self, token0, text");
- $p->handler(comment =>
- sub {
- my($self, $tokens) = @_;
- for (@$tokens) {$self->comment($_);}},
- "self, tokens");
- $p->handler(declaration =>
- sub {
- my $self = shift;
- $self->declaration(substr($_[0], 2, -1));},
- "self, text");
-
-Setting up these handlers can also be requested with the "api_version =>
-2" constructor option.
-
-=head1 SUBCLASSING
-
-The C<HTML::Parser> class is subclassable. Parser objects are plain
-hashes and C<HTML::Parser> reserves only hash keys that start with
-"_hparser". The parser state can be set up by invoking the init()
-method, which takes the same arguments as new().
-
-=head1 EXAMPLES
-
-The first simple example shows how you might strip out comments from
-an HTML document. We achieve this by setting up a comment handler that
-does nothing and a default handler that will print out anything else:
-
- use HTML::Parser;
- HTML::Parser->new(default_h => [sub { print shift }, 'text'],
- comment_h => [""],
- )->parse_file(shift || die) || die $!;
-
-An alternative implementation is:
-
- use HTML::Parser;
- HTML::Parser->new(end_document_h => [sub { print shift },
- 'skipped_text'],
- comment_h => [""],
- )->parse_file(shift || die) || die $!;
-
-This will in most cases be much more efficient since only a single
-callback will be made.
-
-The next example prints out the text that is inside the <title>
-element of an HTML document. Here we start by setting up a start
-handler. When it sees the title start tag it enables a text handler
-that prints any text found and an end handler that will terminate
-parsing as soon as the title end tag is seen:
-
- use HTML::Parser ();
-
- sub start_handler
- {
- return if shift ne "title";
- my $self = shift;
- $self->handler(text => sub { print shift }, "dtext");
- $self->handler(end => sub { shift->eof if shift eq "title"; },
- "tagname,self");
- }
-
- my $p = HTML::Parser->new(api_version => 3);
- $p->handler( start => \&start_handler, "tagname,self");
- $p->parse_file(shift || die) || die $!;
- print "\n";
-
-More examples are found in the F<eg/> directory of the C<HTML-Parser>
-distribution: the program C<hrefsub> shows how you can edit all links
-found in a document; the program C<htextsub> shows how to edit the text only; the
-program C<hstrip> shows how you can strip out certain tags/elements
-and/or attributes; and the program C<htext> show how to obtain the
-plain text, but not any script/style content.
-
-You can browse the F<eg/> directory online from the I<[Browse]> link on
-the http://search.cpan.org/~gaas/HTML-Parser/ page.
-
-=head1 BUGS
-
-The <style> and <script> sections do not end with the first "</", but
-need the complete corresponding end tag. The standard behaviour is
-not really practical.
-
-When the I<strict_comment> option is enabled, we still recognize
-comments where there is something other than whitespace between even
-and odd "--" markers.
-
-Once $p->boolean_attribute_value has been set, there is no way to
-restore the default behaviour.
-
-There is currently no way to get both quote characters
-into the same literal argspec.
-
-Empty tags, e.g. "<>" and "</>", are not recognized. SGML allows them
-to repeat the previous start tag or close the previous start tag
-respectively.
-
-NET tags, e.g. "code/.../" are not recognized. This is SGML
-shorthand for "<code>...</code>".
-
-Unclosed start or end tags, e.g. "<tt<b>...</b</tt>" are not
-recognized.
-
-=head1 DIAGNOSTICS
-
-The following messages may be produced by HTML::Parser. The notation
-in this listing is the same as used in L<perldiag>:
-
-=over
-
-=item Not a reference to a hash
-
-(F) The object blessed into or subclassed from HTML::Parser is not a
-hash as required by the HTML::Parser methods.
-
-=item Bad signature in parser state object at %p
-
-(F) The _hparser_xs_state element does not refer to a valid state structure.
-Something must have changed the internal value
-stored in this hash element, or the memory has been overwritten.
-
-=item _hparser_xs_state element is not a reference
-
-(F) The _hparser_xs_state element has been destroyed.
-
-=item Can't find '_hparser_xs_state' element in HTML::Parser hash
-
-(F) The _hparser_xs_state element is missing from the parser hash.
-It was either deleted, or not created when the object was created.
-
-=item API version %s not supported by HTML::Parser %s
-
-(F) The constructor option 'api_version' with an argument greater than
-or equal to 4 is reserved for future extensions.
-
-=item Bad constructor option '%s'
-
-(F) An unknown constructor option key was passed to the new() or
-init() methods.
-
-=item Parse loop not allowed
-
-(F) A handler invoked the parse() or parse_file() method.
-This is not permitted.
-
-=item marked sections not supported
-
-(F) The $p->marked_sections() method was invoked in a HTML::Parser
-module that was compiled without support for marked sections.
-
-=item Unknown boolean attribute (%d)
-
-(F) Something is wrong with the internal logic that set up aliases for
-boolean attributes.
-
-=item Only code or array references allowed as handler
-
-(F) The second argument for $p->handler must be either a subroutine
-reference, then name of a subroutine or method, or a reference to an
-array.
-
-=item No handler for %s events
-
-(F) The first argument to $p->handler must be a valid event name; i.e. one
-of "start", "end", "text", "process", "declaration" or "comment".
-
-=item Unrecognized identifier %s in argspec
-
-(F) The identifier is not a known argspec name.
-Use one of the names mentioned in the argspec section above.
-
-=item Literal string is longer than 255 chars in argspec
-
-(F) The current implementation limits the length of literals in
-an argspec to 255 characters. Make the literal shorter.
-
-=item Backslash reserved for literal string in argspec
-
-(F) The backslash character "\" is not allowed in argspec literals.
-It is reserved to permit quoting inside a literal in a later version.
-
-=item Unterminated literal string in argspec
-
-(F) The terminating quote character for a literal was not found.
-
-=item Bad argspec (%s)
-
-(F) Only identifier names, literals, spaces and commas
-are allowed in argspecs.
-
-=item Missing comma separator in argspec
-
-(F) Identifiers in an argspec must be separated with ",".
-
-=item Parsing of undecoded UTF-8 will give garbage when decoding entities
-
-(W) The first chunk parsed appears to contain undecoded UTF-8 and one
-or more argspecs that decode entities are used for the callback
-handlers.
-
-The result of decoding will be a mix of encoded and decoded characters
-for any entities that expand to characters with code above 127. This
-is not a good thing.
-
-The recommened solution is to apply Encode::decode_utf8() on the data before
-feeding it to the $p->parse(). For $p->parse_file() pass a file that has been
-opened in ":utf8" mode.
-
-The alternative solution is to enable the C<utf8_mode> and not decode before
-passing strings to $p->parse(). The parser can process raw undecoded UTF-8
-sanely if the C<utf8_mode> is enabled, or if the "attr", "@attr" or "dtext"
-argspecs are avoided.
-
-=item Parsing string decoded with wrong endianness
-
-(W) The first character in the document is U+FFFE. This is not a
-legal Unicode character but a byte swapped BOM. The result of parsing
-will likely be garbage.
-
-=item Parsing of undecoded UTF-32
-
-(W) The parser found the Unicode UTF-32 BOM signature at the start
-of the document. The result of parsing will likely be garbage.
-
-=item Parsing of undecoded UTF-16
-
-(W) The parser found the Unicode UTF-16 BOM signature at the start of
-the document. The result of parsing will likely be garbage.
-
-=back
-
-=head1 SEE ALSO
-
-L<HTML::Entities>, L<HTML::PullParser>, L<HTML::TokeParser>, L<HTML::HeadParser>,
-L<HTML::LinkExtor>, L<HTML::Form>
-
-L<HTML::TreeBuilder> (part of the I<HTML-Tree> distribution)
-
-L<http://www.w3.org/TR/html4/>
-
-More information about marked sections and processing instructions may
-be found at L<http://www.is-thought.co.uk/book/sgml-8.htm>.
-
-=head1 COPYRIGHT
-
- Copyright 1996-2008 Gisle Aas. All rights reserved.
- Copyright 1999-2000 Michael A. Chase. All rights reserved.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/HTML/PullParser.pm b/Master/tlpkg/tlperl/lib/HTML/PullParser.pm
deleted file mode 100644
index 30833793251..00000000000
--- a/Master/tlpkg/tlperl/lib/HTML/PullParser.pm
+++ /dev/null
@@ -1,209 +0,0 @@
-package HTML::PullParser;
-
-require HTML::Parser;
-@ISA=qw(HTML::Parser);
-$VERSION = "3.57";
-
-use strict;
-use Carp ();
-
-sub new
-{
- my($class, %cnf) = @_;
-
- # Construct argspecs for the various events
- my %argspec;
- for (qw(start end text declaration comment process default)) {
- my $tmp = delete $cnf{$_};
- next unless defined $tmp;
- $argspec{$_} = $tmp;
- }
- Carp::croak("Info not collected for any events")
- unless %argspec;
-
- my $file = delete $cnf{file};
- my $doc = delete $cnf{doc};
- Carp::croak("Can't parse from both 'doc' and 'file' at the same time")
- if defined($file) && defined($doc);
- Carp::croak("No 'doc' or 'file' given to parse from")
- unless defined($file) || defined($doc);
-
- # Create object
- $cnf{api_version} = 3;
- my $self = $class->SUPER::new(%cnf);
-
- my $accum = $self->{pullparser_accum} = [];
- while (my($event, $argspec) = each %argspec) {
- $self->SUPER::handler($event => $accum, $argspec);
- }
-
- if (defined $doc) {
- $self->{pullparser_str_ref} = ref($doc) ? $doc : \$doc;
- $self->{pullparser_str_pos} = 0;
- }
- else {
- if (!ref($file) && ref(\$file) ne "GLOB") {
- require IO::File;
- $file = IO::File->new($file, "r") || return;
- }
-
- $self->{pullparser_file} = $file;
- }
- $self;
-}
-
-
-sub handler
-{
- Carp::croak("Can't set handlers for HTML::PullParser");
-}
-
-
-sub get_token
-{
- my $self = shift;
- while (!@{$self->{pullparser_accum}} && !$self->{pullparser_eof}) {
- if (my $f = $self->{pullparser_file}) {
- # must try to parse more from the file
- my $buf;
- if (read($f, $buf, 512)) {
- $self->parse($buf);
- } else {
- $self->eof;
- $self->{pullparser_eof}++;
- delete $self->{pullparser_file};
- }
- }
- elsif (my $sref = $self->{pullparser_str_ref}) {
- # must try to parse more from the scalar
- my $pos = $self->{pullparser_str_pos};
- my $chunk = substr($$sref, $pos, 512);
- $self->parse($chunk);
- $pos += length($chunk);
- if ($pos < length($$sref)) {
- $self->{pullparser_str_pos} = $pos;
- }
- else {
- $self->eof;
- $self->{pullparser_eof}++;
- delete $self->{pullparser_str_ref};
- delete $self->{pullparser_str_pos};
- }
- }
- else {
- die;
- }
- }
- shift @{$self->{pullparser_accum}};
-}
-
-
-sub unget_token
-{
- my $self = shift;
- unshift @{$self->{pullparser_accum}}, @_;
- $self;
-}
-
-1;
-
-
-__END__
-
-=head1 NAME
-
-HTML::PullParser - Alternative HTML::Parser interface
-
-=head1 SYNOPSIS
-
- use HTML::PullParser;
-
- $p = HTML::PullParser->new(file => "index.html",
- start => 'event, tagname, @attr',
- end => 'event, tagname',
- ignore_elements => [qw(script style)],
- ) || die "Can't open: $!";
- while (my $token = $p->get_token) {
- #...do something with $token
- }
-
-=head1 DESCRIPTION
-
-The HTML::PullParser is an alternative interface to the HTML::Parser class.
-It basically turns the HTML::Parser inside out. You associate a file
-(or any IO::Handle object or string) with the parser at construction time and
-then repeatedly call $parser->get_token to obtain the tags and text
-found in the parsed document.
-
-The following methods are provided:
-
-=over 4
-
-=item $p = HTML::PullParser->new( file => $file, %options )
-
-=item $p = HTML::PullParser->new( doc => \$doc, %options )
-
-A C<HTML::PullParser> can be made to parse from either a file or a
-literal document based on whether the C<file> or C<doc> option is
-passed to the parser's constructor.
-
-The C<file> passed in can either be a file name or a file handle
-object. If a file name is passed, and it can't be opened for reading,
-then the constructor will return an undefined value and $! will tell
-you why it failed. Otherwise the argument is taken to be some object
-that the C<HTML::PullParser> can read() from when it needs more data.
-The stream will be read() until EOF, but not closed.
-
-A C<doc> can be passed plain or as a reference
-to a scalar. If a reference is passed then the value of this scalar
-should not be changed before all tokens have been extracted.
-
-Next the information to be returned for the different token types must
-be set up. This is done by simply associating an argspec (as defined
-in L<HTML::Parser>) with the events you have an interest in. For
-instance, if you want C<start> tokens to be reported as the string
-C<'S'> followed by the tagname and the attributes you might pass an
-C<start>-option like this:
-
- $p = HTML::PullParser->new(
- doc => $document_to_parse,
- start => '"S", tagname, @attr',
- end => '"E", tagname',
- );
-
-At last other C<HTML::Parser> options, like C<ignore_tags>, and
-C<unbroken_text>, can be passed in. Note that you should not use the
-I<event>_h options to set up parser handlers. That would confuse the
-inner logic of C<HTML::PullParser>.
-
-=item $token = $p->get_token
-
-This method will return the next I<token> found in the HTML document,
-or C<undef> at the end of the document. The token is returned as an
-array reference. The content of this array match the argspec set up
-during C<HTML::PullParser> construction.
-
-=item $p->unget_token( @tokens )
-
-If you find out you have read too many tokens you can push them back,
-so that they are returned again the next time $p->get_token is called.
-
-=back
-
-=head1 EXAMPLES
-
-The 'eg/hform' script shows how we might parse the form section of
-HTML::Documents using HTML::PullParser.
-
-=head1 SEE ALSO
-
-L<HTML::Parser>, L<HTML::TokeParser>
-
-=head1 COPYRIGHT
-
-Copyright 1998-2001 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/HTML/Tagset.pm b/Master/tlpkg/tlperl/lib/HTML/Tagset.pm
deleted file mode 100644
index 754137fd6fe..00000000000
--- a/Master/tlpkg/tlperl/lib/HTML/Tagset.pm
+++ /dev/null
@@ -1,471 +0,0 @@
-package HTML::Tagset;
-
-use strict;
-
-=head1 NAME
-
-HTML::Tagset - data tables useful in parsing HTML
-
-=head1 VERSION
-
-Version 3.20
-
-=cut
-
-use vars qw( $VERSION );
-
-$VERSION = '3.20';
-
-=head1 SYNOPSIS
-
- use HTML::Tagset;
- # Then use any of the items in the HTML::Tagset package
- # as need arises
-
-=head1 DESCRIPTION
-
-This module contains several data tables useful in various kinds of
-HTML parsing operations.
-
-Note that all tag names used are lowercase.
-
-In the following documentation, a "hashset" is a hash being used as a
-set -- the hash conveys that its keys are there, and the actual values
-associated with the keys are not significant. (But what values are
-there, are always true.)
-
-=cut
-
-use vars qw(
- $VERSION
- %emptyElement %optionalEndTag %linkElements %boolean_attr
- %isHeadElement %isBodyElement %isPhraseMarkup
- %is_Possible_Strict_P_Content
- %isHeadOrBodyElement
- %isList %isTableElement %isFormElement
- %isKnown %canTighten
- @p_closure_barriers
- %isCDATA_Parent
-);
-
-=head1 VARIABLES
-
-Note that none of these variables are exported.
-
-=head2 hashset %HTML::Tagset::emptyElement
-
-This hashset has as values the tag-names (GIs) of elements that cannot
-have content. (For example, "base", "br", "hr".) So
-C<$HTML::Tagset::emptyElement{'hr'}> exists and is true.
-C<$HTML::Tagset::emptyElement{'dl'}> does not exist, and so is not true.
-
-=cut
-
-%emptyElement = map {; $_ => 1 } qw(base link meta isindex
- img br hr wbr
- input area param
- embed bgsound spacer
- basefont col frame
- ~comment ~literal
- ~declaration ~pi
- );
-# The "~"-initial names are for pseudo-elements used by HTML::Entities
-# and TreeBuilder
-
-=head2 hashset %HTML::Tagset::optionalEndTag
-
-This hashset lists tag-names for elements that can have content, but whose
-end-tags are generally, "safely", omissible. Example:
-C<$HTML::Tagset::emptyElement{'li'}> exists and is true.
-
-=cut
-
-%optionalEndTag = map {; $_ => 1 } qw(p li dt dd); # option th tr td);
-
-=head2 hash %HTML::Tagset::linkElements
-
-Values in this hash are tagnames for elements that might contain
-links, and the value for each is a reference to an array of the names
-of attributes whose values can be links.
-
-=cut
-
-%linkElements =
-(
- 'a' => ['href'],
- 'applet' => ['archive', 'codebase', 'code'],
- 'area' => ['href'],
- 'base' => ['href'],
- 'bgsound' => ['src'],
- 'blockquote' => ['cite'],
- 'body' => ['background'],
- 'del' => ['cite'],
- 'embed' => ['pluginspage', 'src'],
- 'form' => ['action'],
- 'frame' => ['src', 'longdesc'],
- 'iframe' => ['src', 'longdesc'],
- 'ilayer' => ['background'],
- 'img' => ['src', 'lowsrc', 'longdesc', 'usemap'],
- 'input' => ['src', 'usemap'],
- 'ins' => ['cite'],
- 'isindex' => ['action'],
- 'head' => ['profile'],
- 'layer' => ['background', 'src'],
- 'link' => ['href'],
- 'object' => ['classid', 'codebase', 'data', 'archive', 'usemap'],
- 'q' => ['cite'],
- 'script' => ['src', 'for'],
- 'table' => ['background'],
- 'td' => ['background'],
- 'th' => ['background'],
- 'tr' => ['background'],
- 'xmp' => ['href'],
-);
-
-=head2 hash %HTML::Tagset::boolean_attr
-
-This hash (not hashset) lists what attributes of what elements can be
-printed without showing the value (for example, the "noshade" attribute
-of "hr" elements). For elements with only one such attribute, its value
-is simply that attribute name. For elements with many such attributes,
-the value is a reference to a hashset containing all such attributes.
-
-=cut
-
-%boolean_attr = (
-# TODO: make these all hashes
- 'area' => 'nohref',
- 'dir' => 'compact',
- 'dl' => 'compact',
- 'hr' => 'noshade',
- 'img' => 'ismap',
- 'input' => { 'checked' => 1, 'readonly' => 1, 'disabled' => 1 },
- 'menu' => 'compact',
- 'ol' => 'compact',
- 'option' => 'selected',
- 'select' => 'multiple',
- 'td' => 'nowrap',
- 'th' => 'nowrap',
- 'ul' => 'compact',
-);
-
-#==========================================================================
-# List of all elements from Extensible HTML version 1.0 Transitional DTD:
-#
-# a abbr acronym address applet area b base basefont bdo big
-# blockquote body br button caption center cite code col colgroup
-# dd del dfn dir div dl dt em fieldset font form h1 h2 h3 h4 h5 h6
-# head hr html i iframe img input ins isindex kbd label legend li
-# link map menu meta noframes noscript object ol optgroup option p
-# param pre q s samp script select small span strike strong style
-# sub sup table tbody td textarea tfoot th thead title tr tt u ul
-# var
-#
-# Varia from Mozilla source internal table of tags:
-# Implemented:
-# xmp listing wbr nobr frame frameset noframes ilayer
-# layer nolayer spacer embed multicol
-# But these are unimplemented:
-# sound?? keygen?? server??
-# Also seen here and there:
-# marquee?? app?? (both unimplemented)
-#==========================================================================
-
-=head2 hashset %HTML::Tagset::isPhraseMarkup
-
-This hashset contains all phrasal-level elements.
-
-=cut
-
-%isPhraseMarkup = map {; $_ => 1 } qw(
- span abbr acronym q sub sup
- cite code em kbd samp strong var dfn strike
- b i u s tt small big
- a img br
- wbr nobr blink
- font basefont bdo
- spacer embed noembed
-); # had: center, hr, table
-
-
-=head2 hashset %HTML::Tagset::is_Possible_Strict_P_Content
-
-This hashset contains all phrasal-level elements that be content of a
-P element, for a strict model of HTML.
-
-=cut
-
-%is_Possible_Strict_P_Content = (
- %isPhraseMarkup,
- %isFormElement,
- map {; $_ => 1} qw( object script map )
- # I've no idea why there's these latter exceptions.
- # I'm just following the HTML4.01 DTD.
-);
-
-#from html4 strict:
-#<!ENTITY % fontstyle "TT | I | B | BIG | SMALL">
-#
-#<!ENTITY % phrase "EM | STRONG | DFN | CODE |
-# SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >
-#
-#<!ENTITY % special
-# "A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">
-#
-#<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
-#
-#<!-- %inline; covers inline or "text-level" elements -->
-#<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
-
-=head2 hashset %HTML::Tagset::isHeadElement
-
-This hashset contains all elements that elements that should be
-present only in the 'head' element of an HTML document.
-
-=cut
-
-%isHeadElement = map {; $_ => 1 }
- qw(title base link meta isindex script style object bgsound);
-
-=head2 hashset %HTML::Tagset::isList
-
-This hashset contains all elements that can contain "li" elements.
-
-=cut
-
-%isList = map {; $_ => 1 } qw(ul ol dir menu);
-
-=head2 hashset %HTML::Tagset::isTableElement
-
-This hashset contains all elements that are to be found only in/under
-a "table" element.
-
-=cut
-
-%isTableElement = map {; $_ => 1 }
- qw(tr td th thead tbody tfoot caption col colgroup);
-
-=head2 hashset %HTML::Tagset::isFormElement
-
-This hashset contains all elements that are to be found only in/under
-a "form" element.
-
-=cut
-
-%isFormElement = map {; $_ => 1 }
- qw(input select option optgroup textarea button label);
-
-=head2 hashset %HTML::Tagset::isBodyMarkup
-
-This hashset contains all elements that are to be found only in/under
-the "body" element of an HTML document.
-
-=cut
-
-%isBodyElement = map {; $_ => 1 } qw(
- h1 h2 h3 h4 h5 h6
- p div pre plaintext address blockquote
- xmp listing
- center
-
- multicol
- iframe ilayer nolayer
- bgsound
-
- hr
- ol ul dir menu li
- dl dt dd
- ins del
-
- fieldset legend
-
- map area
- applet param object
- isindex script noscript
- table
- center
- form
- ),
- keys %isFormElement,
- keys %isPhraseMarkup, # And everything phrasal
- keys %isTableElement,
-;
-
-
-=head2 hashset %HTML::Tagset::isHeadOrBodyElement
-
-This hashset includes all elements that I notice can fall either in
-the head or in the body.
-
-=cut
-
-%isHeadOrBodyElement = map {; $_ => 1 }
- qw(script isindex style object map area param noscript bgsound);
- # i.e., if we find 'script' in the 'body' or the 'head', don't freak out.
-
-
-=head2 hashset %HTML::Tagset::isKnown
-
-This hashset lists all known HTML elements.
-
-=cut
-
-%isKnown = (%isHeadElement, %isBodyElement,
- map{; $_=>1 }
- qw( head body html
- frame frameset noframes
- ~comment ~pi ~directive ~literal
-));
- # that should be all known tags ever ever
-
-
-=head2 hashset %HTML::Tagset::canTighten
-
-This hashset lists elements that might have ignorable whitespace as
-children or siblings.
-
-=cut
-
-%canTighten = %isKnown;
-delete @canTighten{
- keys(%isPhraseMarkup), 'input', 'select',
- 'xmp', 'listing', 'plaintext', 'pre',
-};
- # xmp, listing, plaintext, and pre are untightenable, and
- # in a really special way.
-@canTighten{'hr','br'} = (1,1);
- # exceptional 'phrasal' things that ARE subject to tightening.
-
-# The one case where I can think of my tightening rules failing is:
-# <p>foo bar<center> <em>baz quux</em> ...
-# ^-- that would get deleted.
-# But that's pretty gruesome code anyhow. You gets what you pays for.
-
-#==========================================================================
-
-=head2 array @HTML::Tagset::p_closure_barriers
-
-This array has a meaning that I have only seen a need for in
-C<HTML::TreeBuilder>, but I include it here on the off chance that someone
-might find it of use:
-
-When we see a "E<lt>pE<gt>" token, we go lookup up the lineage for a p
-element we might have to minimize. At first sight, we might say that
-if there's a p anywhere in the lineage of this new p, it should be
-closed. But that's wrong. Consider this document:
-
- <html>
- <head>
- <title>foo</title>
- </head>
- <body>
- <p>foo
- <table>
- <tr>
- <td>
- foo
- <p>bar
- </td>
- </tr>
- </table>
- </p>
- </body>
- </html>
-
-The second p is quite legally inside a much higher p.
-
-My formalization of the reason why this is legal, but this:
-
- <p>foo<p>bar</p></p>
-
-isn't, is that something about the table constitutes a "barrier" to
-the application of the rule about what p must minimize.
-
-So C<@HTML::Tagset::p_closure_barriers> is the list of all such
-barrier-tags.
-
-=cut
-
-@p_closure_barriers = qw(
- li blockquote
- ul ol menu dir
- dl dt dd
- td th tr table caption
- div
- );
-
-# In an ideal world (i.e., XHTML) we wouldn't have to bother with any of this
-# monkey business of barriers to minimization!
-
-=head2 hashset %isCDATA_Parent
-
-This hashset includes all elements whose content is CDATA.
-
-=cut
-
-%isCDATA_Parent = map {; $_ => 1 }
- qw(script style xmp listing plaintext);
-
-# TODO: there's nothing else that takes CDATA children, right?
-
-# As the HTML3 DTD (Raggett 1995-04-24) noted:
-# The XMP, LISTING and PLAINTEXT tags are incompatible with SGML
-# and derive from very early versions of HTML. They require non-
-# standard parsers and will cause problems for processing
-# documents with standard SGML tools.
-
-
-=head1 CAVEATS
-
-You may find it useful to alter the behavior of modules (like
-C<HTML::Element> or C<HTML::TreeBuilder>) that use C<HTML::Tagset>'s
-data tables by altering the data tables themselves. You are welcome
-to try, but be careful; and be aware that different modules may or may
-react differently to the data tables being changed.
-
-Note that it may be inappropriate to use these tables for I<producing>
-HTML -- for example, C<%isHeadOrBodyElement> lists the tagnames
-for all elements that can appear either in the head or in the body,
-such as "script". That doesn't mean that I am saying your code that
-produces HTML should feel free to put script elements in either place!
-If you are producing programs that spit out HTML, you should be
-I<intimately> familiar with the DTDs for HTML or XHTML (available at
-C<http://www.w3.org/>), and you should slavishly obey them, not
-the data tables in this document.
-
-=head1 SEE ALSO
-
-L<HTML::Element>, L<HTML::TreeBuilder>, L<HTML::LinkExtor>
-
-=head1 COPYRIGHT & LICENSE
-
-Copyright 1995-2000 Gisle Aas.
-
-Copyright 2000-2005 Sean M. Burke.
-
-Copyright 2005-2008 Andy Lester.
-
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=head1 ACKNOWLEDGEMENTS
-
-Most of the code/data in this module was adapted from code written
-by Gisle Aas for C<HTML::Element>, C<HTML::TreeBuilder>, and
-C<HTML::LinkExtor>. Then it was maintained by Sean M. Burke.
-
-=head1 AUTHOR
-
-Current maintainer: Andy Lester, C<< <andy at petdance.com> >>
-
-=head1 BUGS
-
-Please report any bugs or feature requests to
-C<bug-html-tagset at rt.cpan.org>, or through the web interface at
-L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=HTML-Tagset>. I will
-be notified, and then you'll automatically be notified of progress on
-your bug as I make changes.
-
-=cut
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/HTML/TokeParser.pm b/Master/tlpkg/tlperl/lib/HTML/TokeParser.pm
deleted file mode 100644
index 959b96f6a26..00000000000
--- a/Master/tlpkg/tlperl/lib/HTML/TokeParser.pm
+++ /dev/null
@@ -1,371 +0,0 @@
-package HTML::TokeParser;
-
-require HTML::PullParser;
-@ISA=qw(HTML::PullParser);
-$VERSION = "3.69";
-
-use strict;
-use Carp ();
-use HTML::Entities qw(decode_entities);
-use HTML::Tagset ();
-
-my %ARGS =
-(
- start => "'S',tagname,attr,attrseq,text",
- end => "'E',tagname,text",
- text => "'T',text,is_cdata",
- process => "'PI',token0,text",
- comment => "'C',text",
- declaration => "'D',text",
-
- # options that default on
- unbroken_text => 1,
-);
-
-
-sub new
-{
- my $class = shift;
- my %cnf;
-
- if (@_ == 1) {
- my $type = (ref($_[0]) eq "SCALAR") ? "doc" : "file";
- %cnf = ($type => $_[0]);
- }
- else {
- unshift @_, (ref($_[0]) eq "SCALAR") ? "doc" : "file" if(scalar(@_) % 2 == 1);
- %cnf = @_;
- }
-
- my $textify = delete $cnf{textify} || {img => "alt", applet => "alt"};
-
- my $self = $class->SUPER::new(%ARGS, %cnf) || return undef;
-
- $self->{textify} = $textify;
- $self;
-}
-
-
-sub get_tag
-{
- my $self = shift;
- my $token;
- while (1) {
- $token = $self->get_token || return undef;
- my $type = shift @$token;
- next unless $type eq "S" || $type eq "E";
- substr($token->[0], 0, 0) = "/" if $type eq "E";
- return $token unless @_;
- for (@_) {
- return $token if $token->[0] eq $_;
- }
- }
-}
-
-
-sub _textify {
- my($self, $token) = @_;
- my $tag = $token->[1];
- return undef unless exists $self->{textify}{$tag};
-
- my $alt = $self->{textify}{$tag};
- my $text;
- if (ref($alt)) {
- $text = &$alt(@$token);
- } else {
- $text = $token->[2]{$alt || "alt"};
- $text = "[\U$tag]" unless defined $text;
- }
- return $text;
-}
-
-
-sub get_text
-{
- my $self = shift;
- my @text;
- while (my $token = $self->get_token) {
- my $type = $token->[0];
- if ($type eq "T") {
- my $text = $token->[1];
- decode_entities($text) unless $token->[2];
- push(@text, $text);
- } elsif ($type =~ /^[SE]$/) {
- my $tag = $token->[1];
- if ($type eq "S") {
- if (defined(my $text = _textify($self, $token))) {
- push(@text, $text);
- next;
- }
- } else {
- $tag = "/$tag";
- }
- if (!@_ || grep $_ eq $tag, @_) {
- $self->unget_token($token);
- last;
- }
- push(@text, " ")
- if $tag eq "br" || !$HTML::Tagset::isPhraseMarkup{$token->[1]};
- }
- }
- join("", @text);
-}
-
-
-sub get_trimmed_text
-{
- my $self = shift;
- my $text = $self->get_text(@_);
- $text =~ s/^\s+//; $text =~ s/\s+$//; $text =~ s/\s+/ /g;
- $text;
-}
-
-sub get_phrase {
- my $self = shift;
- my @text;
- while (my $token = $self->get_token) {
- my $type = $token->[0];
- if ($type eq "T") {
- my $text = $token->[1];
- decode_entities($text) unless $token->[2];
- push(@text, $text);
- } elsif ($type =~ /^[SE]$/) {
- my $tag = $token->[1];
- if ($type eq "S") {
- if (defined(my $text = _textify($self, $token))) {
- push(@text, $text);
- next;
- }
- }
- if (!$HTML::Tagset::isPhraseMarkup{$tag}) {
- $self->unget_token($token);
- last;
- }
- push(@text, " ") if $tag eq "br";
- }
- }
- my $text = join("", @text);
- $text =~ s/^\s+//; $text =~ s/\s+$//; $text =~ s/\s+/ /g;
- $text;
-}
-
-1;
-
-
-__END__
-
-=head1 NAME
-
-HTML::TokeParser - Alternative HTML::Parser interface
-
-=head1 SYNOPSIS
-
- require HTML::TokeParser;
- $p = HTML::TokeParser->new("index.html") ||
- die "Can't open: $!";
- $p->empty_element_tags(1); # configure its behaviour
-
- while (my $token = $p->get_token) {
- #...
- }
-
-=head1 DESCRIPTION
-
-The C<HTML::TokeParser> is an alternative interface to the
-C<HTML::Parser> class. It is an C<HTML::PullParser> subclass with a
-predeclared set of token types. If you wish the tokens to be reported
-differently you probably want to use the C<HTML::PullParser> directly.
-
-The following methods are available:
-
-=over 4
-
-=item $p = HTML::TokeParser->new( $filename, %opt );
-
-=item $p = HTML::TokeParser->new( $filehandle, %opt );
-
-=item $p = HTML::TokeParser->new( \$document, %opt );
-
-The object constructor argument is either a file name, a file handle
-object, or the complete document to be parsed. Extra options can be
-provided as key/value pairs and are processed as documented by the base
-classes.
-
-If the argument is a plain scalar, then it is taken as the name of a
-file to be opened and parsed. If the file can't be opened for
-reading, then the constructor will return C<undef> and $! will tell
-you why it failed.
-
-If the argument is a reference to a plain scalar, then this scalar is
-taken to be the literal document to parse. The value of this
-scalar should not be changed before all tokens have been extracted.
-
-Otherwise the argument is taken to be some object that the
-C<HTML::TokeParser> can read() from when it needs more data. Typically
-it will be a filehandle of some kind. The stream will be read() until
-EOF, but not closed.
-
-A newly constructed C<HTML::TokeParser> differ from its base classes
-by having the C<unbroken_text> attribute enabled by default. See
-L<HTML::Parser> for a description of this and other attributes that
-influence how the document is parsed. It is often a good idea to enable
-C<empty_element_tags> behaviour.
-
-Note that the parsing result will likely not be valid if raw undecoded
-UTF-8 is used as a source. When parsing UTF-8 encoded files turn
-on UTF-8 decoding:
-
- open(my $fh, "<:utf8", "index.html") || die "Can't open 'index.html': $!";
- my $p = HTML::TokeParser->new( $fh );
- # ...
-
-If a $filename is passed to the constructor the file will be opened in
-raw mode and the parsing result will only be valid if its content is
-Latin-1 or pure ASCII.
-
-If parsing from an UTF-8 encoded string buffer decode it first:
-
- utf8::decode($document);
- my $p = HTML::TokeParser->new( \$document );
- # ...
-
-=item $p->get_token
-
-This method will return the next I<token> found in the HTML document,
-or C<undef> at the end of the document. The token is returned as an
-array reference. The first element of the array will be a string
-denoting the type of this token: "S" for start tag, "E" for end tag,
-"T" for text, "C" for comment, "D" for declaration, and "PI" for
-process instructions. The rest of the token array depend on the type
-like this:
-
- ["S", $tag, $attr, $attrseq, $text]
- ["E", $tag, $text]
- ["T", $text, $is_data]
- ["C", $text]
- ["D", $text]
- ["PI", $token0, $text]
-
-where $attr is a hash reference, $attrseq is an array reference and
-the rest are plain scalars. The L<HTML::Parser/Argspec> explains the
-details.
-
-=item $p->unget_token( @tokens )
-
-If you find you have read too many tokens you can push them back,
-so that they are returned the next time $p->get_token is called.
-
-=item $p->get_tag
-
-=item $p->get_tag( @tags )
-
-This method returns the next start or end tag (skipping any other
-tokens), or C<undef> if there are no more tags in the document. If
-one or more arguments are given, then we skip tokens until one of the
-specified tag types is found. For example:
-
- $p->get_tag("font", "/font");
-
-will find the next start or end tag for a font-element.
-
-The tag information is returned as an array reference in the same form
-as for $p->get_token above, but the type code (first element) is
-missing. A start tag will be returned like this:
-
- [$tag, $attr, $attrseq, $text]
-
-The tagname of end tags are prefixed with "/", i.e. end tag is
-returned like this:
-
- ["/$tag", $text]
-
-=item $p->get_text
-
-=item $p->get_text( @endtags )
-
-This method returns all text found at the current position. It will
-return a zero length string if the next token is not text. Any
-entities will be converted to their corresponding character.
-
-If one or more arguments are given, then we return all text occurring
-before the first of the specified tags found. For example:
-
- $p->get_text("p", "br");
-
-will return the text up to either a paragraph of linebreak element.
-
-The text might span tags that should be I<textified>. This is
-controlled by the $p->{textify} attribute, which is a hash that
-defines how certain tags can be treated as text. If the name of a
-start tag matches a key in this hash then this tag is converted to
-text. The hash value is used to specify which tag attribute to obtain
-the text from. If this tag attribute is missing, then the upper case
-name of the tag enclosed in brackets is returned, e.g. "[IMG]". The
-hash value can also be a subroutine reference. In this case the
-routine is called with the start tag token content as its argument and
-the return value is treated as the text.
-
-The default $p->{textify} value is:
-
- {img => "alt", applet => "alt"}
-
-This means that <IMG> and <APPLET> tags are treated as text, and that
-the text to substitute can be found in the ALT attribute.
-
-=item $p->get_trimmed_text
-
-=item $p->get_trimmed_text( @endtags )
-
-Same as $p->get_text above, but will collapse any sequences of white
-space to a single space character. Leading and trailing white space is
-removed.
-
-=item $p->get_phrase
-
-This will return all text found at the current position ignoring any
-phrasal-level tags. Text is extracted until the first non
-phrasal-level tag. Textification of tags is the same as for
-get_text(). This method will collapse white space in the same way as
-get_trimmed_text() does.
-
-The definition of <i>phrasal-level tags</i> is obtained from the
-HTML::Tagset module.
-
-=back
-
-=head1 EXAMPLES
-
-This example extracts all links from a document. It will print one
-line for each link, containing the URL and the textual description
-between the <A>...</A> tags:
-
- use HTML::TokeParser;
- $p = HTML::TokeParser->new(shift||"index.html");
-
- while (my $token = $p->get_tag("a")) {
- my $url = $token->[1]{href} || "-";
- my $text = $p->get_trimmed_text("/a");
- print "$url\t$text\n";
- }
-
-This example extract the <TITLE> from the document:
-
- use HTML::TokeParser;
- $p = HTML::TokeParser->new(shift||"index.html");
- if ($p->get_tag("title")) {
- my $title = $p->get_trimmed_text;
- print "Title: $title\n";
- }
-
-=head1 SEE ALSO
-
-L<HTML::PullParser>, L<HTML::Parser>
-
-=head1 COPYRIGHT
-
-Copyright 1998-2005 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Config.pm b/Master/tlpkg/tlperl/lib/HTTP/Config.pm
deleted file mode 100644
index 931f63db69d..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Config.pm
+++ /dev/null
@@ -1,436 +0,0 @@
-package HTTP::Config;
-
-use strict;
-use URI;
-use vars qw($VERSION);
-
-$VERSION = "6.00";
-
-sub new {
- my $class = shift;
- return bless [], $class;
-}
-
-sub entries {
- my $self = shift;
- @$self;
-}
-
-sub empty {
- my $self = shift;
- not @$self;
-}
-
-sub add {
- if (@_ == 2) {
- my $self = shift;
- push(@$self, shift);
- return;
- }
- my($self, %spec) = @_;
- push(@$self, \%spec);
- return;
-}
-
-sub find2 {
- my($self, %spec) = @_;
- my @found;
- my @rest;
- ITEM:
- for my $item (@$self) {
- for my $k (keys %spec) {
- if (!exists $item->{$k} || $spec{$k} ne $item->{$k}) {
- push(@rest, $item);
- next ITEM;
- }
- }
- push(@found, $item);
- }
- return \@found unless wantarray;
- return \@found, \@rest;
-}
-
-sub find {
- my $self = shift;
- my $f = $self->find2(@_);
- return @$f if wantarray;
- return $f->[0];
-}
-
-sub remove {
- my($self, %spec) = @_;
- my($removed, $rest) = $self->find2(%spec);
- @$self = @$rest if @$removed;
- return @$removed;
-}
-
-my %MATCH = (
- m_scheme => sub {
- my($v, $uri) = @_;
- return $uri->_scheme eq $v; # URI known to be canonical
- },
- m_secure => sub {
- my($v, $uri) = @_;
- my $secure = $uri->can("secure") ? $uri->secure : $uri->_scheme eq "https";
- return $secure == !!$v;
- },
- m_host_port => sub {
- my($v, $uri) = @_;
- return unless $uri->can("host_port");
- return $uri->host_port eq $v, 7;
- },
- m_host => sub {
- my($v, $uri) = @_;
- return unless $uri->can("host");
- return $uri->host eq $v, 6;
- },
- m_port => sub {
- my($v, $uri) = @_;
- return unless $uri->can("port");
- return $uri->port eq $v;
- },
- m_domain => sub {
- my($v, $uri) = @_;
- return unless $uri->can("host");
- my $h = $uri->host;
- $h = "$h.local" unless $h =~ /\./;
- $v = ".$v" unless $v =~ /^\./;
- return length($v), 5 if substr($h, -length($v)) eq $v;
- return 0;
- },
- m_path => sub {
- my($v, $uri) = @_;
- return unless $uri->can("path");
- return $uri->path eq $v, 4;
- },
- m_path_prefix => sub {
- my($v, $uri) = @_;
- return unless $uri->can("path");
- my $path = $uri->path;
- my $len = length($v);
- return $len, 3 if $path eq $v;
- return 0 if length($path) <= $len;
- $v .= "/" unless $v =~ m,/\z,,;
- return $len, 3 if substr($path, 0, length($v)) eq $v;
- return 0;
- },
- m_path_match => sub {
- my($v, $uri) = @_;
- return unless $uri->can("path");
- return $uri->path =~ $v;
- },
- m_uri__ => sub {
- my($v, $k, $uri) = @_;
- return unless $uri->can($k);
- return 1 unless defined $v;
- return $uri->$k eq $v;
- },
- m_method => sub {
- my($v, $uri, $request) = @_;
- return $request && $request->method eq $v;
- },
- m_proxy => sub {
- my($v, $uri, $request) = @_;
- return $request && ($request->{proxy} || "") eq $v;
- },
- m_code => sub {
- my($v, $uri, $request, $response) = @_;
- $v =~ s/xx\z//;
- return unless $response;
- return length($v), 2 if substr($response->code, 0, length($v)) eq $v;
- },
- m_media_type => sub { # for request too??
- my($v, $uri, $request, $response) = @_;
- return unless $response;
- return 1, 1 if $v eq "*/*";
- my $ct = $response->content_type;
- return 2, 1 if $v =~ s,/\*\z,, && $ct =~ m,^\Q$v\E/,;
- return 3, 1 if $v eq "html" && $response->content_is_html;
- return 4, 1 if $v eq "xhtml" && $response->content_is_xhtml;
- return 10, 1 if $v eq $ct;
- return 0;
- },
- m_header__ => sub {
- my($v, $k, $uri, $request, $response) = @_;
- return unless $request;
- return 1 if $request->header($k) eq $v;
- return 1 if $response && $response->header($k) eq $v;
- return 0;
- },
- m_response_attr__ => sub {
- my($v, $k, $uri, $request, $response) = @_;
- return unless $response;
- return 1 if !defined($v) && exists $response->{$k};
- return 0 unless exists $response->{$k};
- return 1 if $response->{$k} eq $v;
- return 0;
- },
-);
-
-sub matching {
- my $self = shift;
- if (@_ == 1) {
- if ($_[0]->can("request")) {
- unshift(@_, $_[0]->request);
- unshift(@_, undef) unless defined $_[0];
- }
- unshift(@_, $_[0]->uri_canonical) if $_[0] && $_[0]->can("uri_canonical");
- }
- my($uri, $request, $response) = @_;
- $uri = URI->new($uri) unless ref($uri);
-
- my @m;
- ITEM:
- for my $item (@$self) {
- my $order;
- for my $ikey (keys %$item) {
- my $mkey = $ikey;
- my $k;
- $k = $1 if $mkey =~ s/__(.*)/__/;
- if (my $m = $MATCH{$mkey}) {
- #print "$ikey $mkey\n";
- my($c, $o);
- my @arg = (
- defined($k) ? $k : (),
- $uri, $request, $response
- );
- my $v = $item->{$ikey};
- $v = [$v] unless ref($v) eq "ARRAY";
- for (@$v) {
- ($c, $o) = $m->($_, @arg);
- #print " - $_ ==> $c $o\n";
- last if $c;
- }
- next ITEM unless $c;
- $order->[$o || 0] += $c;
- }
- }
- $order->[7] ||= 0;
- $item->{_order} = join(".", reverse map sprintf("%03d", $_ || 0), @$order);
- push(@m, $item);
- }
- @m = sort { $b->{_order} cmp $a->{_order} } @m;
- delete $_->{_order} for @m;
- return @m if wantarray;
- return $m[0];
-}
-
-sub add_item {
- my $self = shift;
- my $item = shift;
- return $self->add(item => $item, @_);
-}
-
-sub remove_items {
- my $self = shift;
- return map $_->{item}, $self->remove(@_);
-}
-
-sub matching_items {
- my $self = shift;
- return map $_->{item}, $self->matching(@_);
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-HTTP::Config - Configuration for request and response objects
-
-=head1 SYNOPSIS
-
- use HTTP::Config;
- my $c = HTTP::Config->new;
- $c->add(m_domain => ".example.com", m_scheme => "http", verbose => 1);
-
- use HTTP::Request;
- my $request = HTTP::Request->new(GET => "http://www.example.com");
-
- if (my @m = $c->matching($request)) {
- print "Yadayada\n" if $m[0]->{verbose};
- }
-
-=head1 DESCRIPTION
-
-An C<HTTP::Config> object is a list of entries that
-can be matched against request or request/response pairs. Its
-purpose is to hold configuration data that can be looked up given a
-request or response object.
-
-Each configuration entry is a hash. Some keys specify matching to
-occur against attributes of request/response objects. Other keys can
-be used to hold user data.
-
-The following methods are provided:
-
-=over 4
-
-=item $conf = HTTP::Config->new
-
-Constructs a new empty C<HTTP::Config> object and returns it.
-
-=item $conf->entries
-
-Returns the list of entries in the configuration object.
-In scalar context returns the number of entries.
-
-=item $conf->empty
-
-Return true if there are no entries in the configuration object.
-This is just a shorthand for C<< not $conf->entries >>.
-
-=item $conf->add( %matchspec, %other )
-
-=item $conf->add( \%entry )
-
-Adds a new entry to the configuration.
-You can either pass separate key/value pairs or a hash reference.
-
-=item $conf->remove( %spec )
-
-Removes (and returns) the entries that have matches for all the key/value pairs in %spec.
-If %spec is empty this will match all entries; so it will empty the configuation object.
-
-=item $conf->matching( $uri, $request, $response )
-
-=item $conf->matching( $uri )
-
-=item $conf->matching( $request )
-
-=item $conf->matching( $response )
-
-Returns the entries that match the given $uri, $request and $response triplet.
-
-If called with a single $request object then the $uri is obtained by calling its 'uri_canonical' method.
-If called with a single $response object, then the request object is obtained by calling its 'request' method;
-and then the $uri is obtained as if a single $request was provided.
-
-The entries are returned with the most specific matches first.
-In scalar context returns the most specific match or C<undef> in none match.
-
-=item $conf->add_item( $item, %matchspec )
-
-=item $conf->remove_items( %spec )
-
-=item $conf->matching_items( $uri, $request, $response )
-
-Wrappers that hides the entries themselves.
-
-=back
-
-=head2 Matching
-
-The following keys on a configuration entry specify matching. For all
-of these you can provide an array of values instead of a single value.
-The entry matches if at least one of the values in the array matches.
-
-Entries that require match against a response object attribute will never match
-unless a response object was provided.
-
-=over
-
-=item m_scheme => $scheme
-
-Matches if the URI uses the specified scheme; e.g. "http".
-
-=item m_secure => $bool
-
-If $bool is TRUE; matches if the URI uses a secure scheme. If $bool
-is FALSE; matches if the URI does not use a secure scheme. An example
-of a secure scheme is "https".
-
-=item m_host_port => "$hostname:$port"
-
-Matches if the URI's host_port method return the specified value.
-
-=item m_host => $hostname
-
-Matches if the URI's host method returns the specified value.
-
-=item m_port => $port
-
-Matches if the URI's port method returns the specified value.
-
-=item m_domain => ".$domain"
-
-Matches if the URI's host method return a value that within the given
-domain. The hostname "www.example.com" will for instance match the
-domain ".com".
-
-=item m_path => $path
-
-Matches if the URI's path method returns the specified value.
-
-=item m_path_prefix => $path
-
-Matches if the URI's path is the specified path or has the specified
-path as prefix.
-
-=item m_path_match => $Regexp
-
-Matches if the regular expression matches the URI's path. Eg. qr/\.html$/.
-
-=item m_method => $method
-
-Matches if the request method matches the specified value. Eg. "GET" or "POST".
-
-=item m_code => $digit
-
-=item m_code => $status_code
-
-Matches if the response status code matches. If a single digit is
-specified; matches for all response status codes beginning with that digit.
-
-=item m_proxy => $url
-
-Matches if the request is to be sent to the given Proxy server.
-
-=item m_media_type => "*/*"
-
-=item m_media_type => "text/*"
-
-=item m_media_type => "html"
-
-=item m_media_type => "xhtml"
-
-=item m_media_type => "text/html"
-
-Matches if the response media type matches.
-
-With a value of "html" matches if $response->content_is_html returns TRUE.
-With a value of "xhtml" matches if $response->content_is_xhtml returns TRUE.
-
-=item m_uri__I<$method> => undef
-
-Matches if the URI object provides the method.
-
-=item m_uri__I<$method> => $string
-
-Matches if the URI's $method method returns the given value.
-
-=item m_header__I<$field> => $string
-
-Matches if either the request or the response have a header $field with the given value.
-
-=item m_response_attr__I<$key> => undef
-
-=item m_response_attr__I<$key> => $string
-
-Matches if the response object has that key, or the entry has the given value.
-
-=back
-
-=head1 SEE ALSO
-
-L<URI>, L<HTTP::Request>, L<HTTP::Response>
-
-=head1 COPYRIGHT
-
-Copyright 2008, Gisle Aas
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Cookies.pm b/Master/tlpkg/tlperl/lib/HTTP/Cookies.pm
deleted file mode 100644
index 79ac4f27f84..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Cookies.pm
+++ /dev/null
@@ -1,781 +0,0 @@
-package HTTP::Cookies;
-
-use strict;
-use HTTP::Date qw(str2time parse_date time2str);
-use HTTP::Headers::Util qw(_split_header_words join_header_words);
-
-use vars qw($VERSION $EPOCH_OFFSET);
-$VERSION = "6.01";
-
-# Legacy: because "use "HTTP::Cookies" used be the ONLY way
-# to load the class HTTP::Cookies::Netscape.
-require HTTP::Cookies::Netscape;
-
-$EPOCH_OFFSET = 0; # difference from Unix epoch
-if ($^O eq "MacOS") {
- require Time::Local;
- $EPOCH_OFFSET = Time::Local::timelocal(0,0,0,1,0,70);
-}
-
-# A HTTP::Cookies object is a hash. The main attribute is the
-# COOKIES 3 level hash: $self->{COOKIES}{$domain}{$path}{$key}.
-
-sub new
-{
- my $class = shift;
- my $self = bless {
- COOKIES => {},
- }, $class;
- my %cnf = @_;
- for (keys %cnf) {
- $self->{lc($_)} = $cnf{$_};
- }
- $self->load;
- $self;
-}
-
-
-sub add_cookie_header
-{
- my $self = shift;
- my $request = shift || return;
- my $url = $request->uri;
- my $scheme = $url->scheme;
- unless ($scheme =~ /^https?\z/) {
- return;
- }
-
- my $domain = _host($request, $url);
- $domain = "$domain.local" unless $domain =~ /\./;
- my $secure_request = ($scheme eq "https");
- my $req_path = _url_path($url);
- my $req_port = $url->port;
- my $now = time();
- _normalize_path($req_path) if $req_path =~ /%/;
-
- my @cval; # cookie values for the "Cookie" header
- my $set_ver;
- my $netscape_only = 0; # An exact domain match applies to any cookie
-
- while ($domain =~ /\./) {
- # Checking $domain for cookies"
- my $cookies = $self->{COOKIES}{$domain};
- next unless $cookies;
- if ($self->{delayload} && defined($cookies->{'//+delayload'})) {
- my $cookie_data = $cookies->{'//+delayload'}{'cookie'};
- delete $self->{COOKIES}{$domain};
- $self->load_cookie($cookie_data->[1]);
- $cookies = $self->{COOKIES}{$domain};
- next unless $cookies; # should not really happen
- }
-
- # Want to add cookies corresponding to the most specific paths
- # first (i.e. longest path first)
- my $path;
- for $path (sort {length($b) <=> length($a) } keys %$cookies) {
- if (index($req_path, $path) != 0) {
- next;
- }
-
- my($key,$array);
- while (($key,$array) = each %{$cookies->{$path}}) {
- my($version,$val,$port,$path_spec,$secure,$expires) = @$array;
- if ($secure && !$secure_request) {
- next;
- }
- if ($expires && $expires < $now) {
- next;
- }
- if ($port) {
- my $found;
- if ($port =~ s/^_//) {
- # The corresponding Set-Cookie attribute was empty
- $found++ if $port eq $req_port;
- $port = "";
- }
- else {
- my $p;
- for $p (split(/,/, $port)) {
- $found++, last if $p eq $req_port;
- }
- }
- unless ($found) {
- next;
- }
- }
- if ($version > 0 && $netscape_only) {
- next;
- }
-
- # set version number of cookie header.
- # XXX: What should it be if multiple matching
- # Set-Cookie headers have different versions themselves
- if (!$set_ver++) {
- if ($version >= 1) {
- push(@cval, "\$Version=$version");
- }
- elsif (!$self->{hide_cookie2}) {
- $request->header(Cookie2 => '$Version="1"');
- }
- }
-
- # do we need to quote the value
- if ($val =~ /\W/ && $version) {
- $val =~ s/([\\\"])/\\$1/g;
- $val = qq("$val");
- }
-
- # and finally remember this cookie
- push(@cval, "$key=$val");
- if ($version >= 1) {
- push(@cval, qq(\$Path="$path")) if $path_spec;
- push(@cval, qq(\$Domain="$domain")) if $domain =~ /^\./;
- if (defined $port) {
- my $p = '$Port';
- $p .= qq(="$port") if length $port;
- push(@cval, $p);
- }
- }
-
- }
- }
-
- } continue {
- # Try with a more general domain, alternately stripping
- # leading name components and leading dots. When this
- # results in a domain with no leading dot, it is for
- # Netscape cookie compatibility only:
- #
- # a.b.c.net Any cookie
- # .b.c.net Any cookie
- # b.c.net Netscape cookie only
- # .c.net Any cookie
-
- if ($domain =~ s/^\.+//) {
- $netscape_only = 1;
- }
- else {
- $domain =~ s/[^.]*//;
- $netscape_only = 0;
- }
- }
-
- if (@cval) {
- if (my $old = $request->header("Cookie")) {
- unshift(@cval, $old);
- }
- $request->header(Cookie => join("; ", @cval));
- }
-
- $request;
-}
-
-
-sub extract_cookies
-{
- my $self = shift;
- my $response = shift || return;
-
- my @set = _split_header_words($response->_header("Set-Cookie2"));
- my @ns_set = $response->_header("Set-Cookie");
-
- return $response unless @set || @ns_set; # quick exit
-
- my $request = $response->request;
- my $url = $request->uri;
- my $req_host = _host($request, $url);
- $req_host = "$req_host.local" unless $req_host =~ /\./;
- my $req_port = $url->port;
- my $req_path = _url_path($url);
- _normalize_path($req_path) if $req_path =~ /%/;
-
- if (@ns_set) {
- # The old Netscape cookie format for Set-Cookie
- # http://curl.haxx.se/rfc/cookie_spec.html
- # can for instance contain an unquoted "," in the expires
- # field, so we have to use this ad-hoc parser.
- my $now = time();
-
- # Build a hash of cookies that was present in Set-Cookie2
- # headers. We need to skip them if we also find them in a
- # Set-Cookie header.
- my %in_set2;
- for (@set) {
- $in_set2{$_->[0]}++;
- }
-
- my $set;
- for $set (@ns_set) {
- $set =~ s/^\s+//;
- my @cur;
- my $param;
- my $expires;
- my $first_param = 1;
- for $param (split(/;\s*/, $set)) {
- next unless length($param);
- my($k,$v) = split(/\s*=\s*/, $param, 2);
- if (defined $v) {
- $v =~ s/\s+$//;
- #print "$k => $v\n";
- }
- else {
- $k =~ s/\s+$//;
- #print "$k => undef";
- }
- if (!$first_param && lc($k) eq "expires") {
- my $etime = str2time($v);
- if (defined $etime) {
- push(@cur, "Max-Age" => $etime - $now);
- $expires++;
- }
- else {
- # parse_date can deal with years outside the range of time_t,
- my($year, $mon, $day, $hour, $min, $sec, $tz) = parse_date($v);
- if ($year) {
- my $thisyear = (gmtime)[5] + 1900;
- if ($year < $thisyear) {
- push(@cur, "Max-Age" => -1); # any negative value will do
- $expires++;
- }
- elsif ($year >= $thisyear + 10) {
- # the date is at least 10 years into the future, just replace
- # it with something approximate
- push(@cur, "Max-Age" => 10 * 365 * 24 * 60 * 60);
- $expires++;
- }
- }
- }
- }
- elsif (!$first_param && lc($k) =~ /^(?:version|discard|ns-cookie)/) {
- # ignore
- }
- else {
- push(@cur, $k => $v);
- }
- $first_param = 0;
- }
- next unless @cur;
- next if $in_set2{$cur[0]};
-
-# push(@cur, "Port" => $req_port);
- push(@cur, "Discard" => undef) unless $expires;
- push(@cur, "Version" => 0);
- push(@cur, "ns-cookie" => 1);
- push(@set, \@cur);
- }
- }
-
- SET_COOKIE:
- for my $set (@set) {
- next unless @$set >= 2;
-
- my $key = shift @$set;
- my $val = shift @$set;
-
- my %hash;
- while (@$set) {
- my $k = shift @$set;
- my $v = shift @$set;
- my $lc = lc($k);
- # don't loose case distinction for unknown fields
- $k = $lc if $lc =~ /^(?:discard|domain|max-age|
- path|port|secure|version)$/x;
- if ($k eq "discard" || $k eq "secure") {
- $v = 1 unless defined $v;
- }
- next if exists $hash{$k}; # only first value is significant
- $hash{$k} = $v;
- };
-
- my %orig_hash = %hash;
- my $version = delete $hash{version};
- $version = 1 unless defined($version);
- my $discard = delete $hash{discard};
- my $secure = delete $hash{secure};
- my $maxage = delete $hash{'max-age'};
- my $ns_cookie = delete $hash{'ns-cookie'};
-
- # Check domain
- my $domain = delete $hash{domain};
- $domain = lc($domain) if defined $domain;
- if (defined($domain)
- && $domain ne $req_host && $domain ne ".$req_host") {
- if ($domain !~ /\./ && $domain ne "local") {
- next SET_COOKIE;
- }
- $domain = ".$domain" unless $domain =~ /^\./;
- if ($domain =~ /\.\d+$/) {
- next SET_COOKIE;
- }
- my $len = length($domain);
- unless (substr($req_host, -$len) eq $domain) {
- next SET_COOKIE;
- }
- my $hostpre = substr($req_host, 0, length($req_host) - $len);
- if ($hostpre =~ /\./ && !$ns_cookie) {
- next SET_COOKIE;
- }
- }
- else {
- $domain = $req_host;
- }
-
- my $path = delete $hash{path};
- my $path_spec;
- if (defined $path && $path ne '') {
- $path_spec++;
- _normalize_path($path) if $path =~ /%/;
- if (!$ns_cookie &&
- substr($req_path, 0, length($path)) ne $path) {
- next SET_COOKIE;
- }
- }
- else {
- $path = $req_path;
- $path =~ s,/[^/]*$,,;
- $path = "/" unless length($path);
- }
-
- my $port;
- if (exists $hash{port}) {
- $port = delete $hash{port};
- if (defined $port) {
- $port =~ s/\s+//g;
- my $found;
- for my $p (split(/,/, $port)) {
- unless ($p =~ /^\d+$/) {
- next SET_COOKIE;
- }
- $found++ if $p eq $req_port;
- }
- unless ($found) {
- next SET_COOKIE;
- }
- }
- else {
- $port = "_$req_port";
- }
- }
- $self->set_cookie($version,$key,$val,$path,$domain,$port,$path_spec,$secure,$maxage,$discard, \%hash)
- if $self->set_cookie_ok(\%orig_hash);
- }
-
- $response;
-}
-
-sub set_cookie_ok
-{
- 1;
-}
-
-
-sub set_cookie
-{
- my $self = shift;
- my($version,
- $key, $val, $path, $domain, $port,
- $path_spec, $secure, $maxage, $discard, $rest) = @_;
-
- # path and key can not be empty (key can't start with '$')
- return $self if !defined($path) || $path !~ m,^/, ||
- !defined($key) || $key =~ m,^\$,;
-
- # ensure legal port
- if (defined $port) {
- return $self unless $port =~ /^_?\d+(?:,\d+)*$/;
- }
-
- my $expires;
- if (defined $maxage) {
- if ($maxage <= 0) {
- delete $self->{COOKIES}{$domain}{$path}{$key};
- return $self;
- }
- $expires = time() + $maxage;
- }
- $version = 0 unless defined $version;
-
- my @array = ($version, $val,$port,
- $path_spec,
- $secure, $expires, $discard);
- push(@array, {%$rest}) if defined($rest) && %$rest;
- # trim off undefined values at end
- pop(@array) while !defined $array[-1];
-
- $self->{COOKIES}{$domain}{$path}{$key} = \@array;
- $self;
-}
-
-
-sub save
-{
- my $self = shift;
- my $file = shift || $self->{'file'} || return;
- local(*FILE);
- open(FILE, ">$file") or die "Can't open $file: $!";
- print FILE "#LWP-Cookies-1.0\n";
- print FILE $self->as_string(!$self->{ignore_discard});
- close(FILE);
- 1;
-}
-
-
-sub load
-{
- my $self = shift;
- my $file = shift || $self->{'file'} || return;
- local(*FILE, $_);
- local $/ = "\n"; # make sure we got standard record separator
- open(FILE, $file) or return;
- my $magic = <FILE>;
- unless ($magic =~ /^\#LWP-Cookies-(\d+\.\d+)/) {
- warn "$file does not seem to contain cookies";
- return;
- }
- while (<FILE>) {
- next unless s/^Set-Cookie3:\s*//;
- chomp;
- my $cookie;
- for $cookie (_split_header_words($_)) {
- my($key,$val) = splice(@$cookie, 0, 2);
- my %hash;
- while (@$cookie) {
- my $k = shift @$cookie;
- my $v = shift @$cookie;
- $hash{$k} = $v;
- }
- my $version = delete $hash{version};
- my $path = delete $hash{path};
- my $domain = delete $hash{domain};
- my $port = delete $hash{port};
- my $expires = str2time(delete $hash{expires});
-
- my $path_spec = exists $hash{path_spec}; delete $hash{path_spec};
- my $secure = exists $hash{secure}; delete $hash{secure};
- my $discard = exists $hash{discard}; delete $hash{discard};
-
- my @array = ($version,$val,$port,
- $path_spec,$secure,$expires,$discard);
- push(@array, \%hash) if %hash;
- $self->{COOKIES}{$domain}{$path}{$key} = \@array;
- }
- }
- close(FILE);
- 1;
-}
-
-
-sub revert
-{
- my $self = shift;
- $self->clear->load;
- $self;
-}
-
-
-sub clear
-{
- my $self = shift;
- if (@_ == 0) {
- $self->{COOKIES} = {};
- }
- elsif (@_ == 1) {
- delete $self->{COOKIES}{$_[0]};
- }
- elsif (@_ == 2) {
- delete $self->{COOKIES}{$_[0]}{$_[1]};
- }
- elsif (@_ == 3) {
- delete $self->{COOKIES}{$_[0]}{$_[1]}{$_[2]};
- }
- else {
- require Carp;
- Carp::carp('Usage: $c->clear([domain [,path [,key]]])');
- }
- $self;
-}
-
-
-sub clear_temporary_cookies
-{
- my($self) = @_;
-
- $self->scan(sub {
- if($_[9] or # "Discard" flag set
- not $_[8]) { # No expire field?
- $_[8] = -1; # Set the expire/max_age field
- $self->set_cookie(@_); # Clear the cookie
- }
- });
-}
-
-
-sub DESTROY
-{
- my $self = shift;
- local($., $@, $!, $^E, $?);
- $self->save if $self->{'autosave'};
-}
-
-
-sub scan
-{
- my($self, $cb) = @_;
- my($domain,$path,$key);
- for $domain (sort keys %{$self->{COOKIES}}) {
- for $path (sort keys %{$self->{COOKIES}{$domain}}) {
- for $key (sort keys %{$self->{COOKIES}{$domain}{$path}}) {
- my($version,$val,$port,$path_spec,
- $secure,$expires,$discard,$rest) =
- @{$self->{COOKIES}{$domain}{$path}{$key}};
- $rest = {} unless defined($rest);
- &$cb($version,$key,$val,$path,$domain,$port,
- $path_spec,$secure,$expires,$discard,$rest);
- }
- }
- }
-}
-
-
-sub as_string
-{
- my($self, $skip_discard) = @_;
- my @res;
- $self->scan(sub {
- my($version,$key,$val,$path,$domain,$port,
- $path_spec,$secure,$expires,$discard,$rest) = @_;
- return if $discard && $skip_discard;
- my @h = ($key, $val);
- push(@h, "path", $path);
- push(@h, "domain" => $domain);
- push(@h, "port" => $port) if defined $port;
- push(@h, "path_spec" => undef) if $path_spec;
- push(@h, "secure" => undef) if $secure;
- push(@h, "expires" => HTTP::Date::time2isoz($expires)) if $expires;
- push(@h, "discard" => undef) if $discard;
- my $k;
- for $k (sort keys %$rest) {
- push(@h, $k, $rest->{$k});
- }
- push(@h, "version" => $version);
- push(@res, "Set-Cookie3: " . join_header_words(\@h));
- });
- join("\n", @res, "");
-}
-
-sub _host
-{
- my($request, $url) = @_;
- if (my $h = $request->header("Host")) {
- $h =~ s/:\d+$//; # might have a port as well
- return lc($h);
- }
- return lc($url->host);
-}
-
-sub _url_path
-{
- my $url = shift;
- my $path;
- if($url->can('epath')) {
- $path = $url->epath; # URI::URL method
- }
- else {
- $path = $url->path; # URI::_generic method
- }
- $path = "/" unless length $path;
- $path;
-}
-
-sub _normalize_path # so that plain string compare can be used
-{
- my $x;
- $_[0] =~ s/%([0-9a-fA-F][0-9a-fA-F])/
- $x = uc($1);
- $x eq "2F" || $x eq "25" ? "%$x" :
- pack("C", hex($x));
- /eg;
- $_[0] =~ s/([\0-\x20\x7f-\xff])/sprintf("%%%02X",ord($1))/eg;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-HTTP::Cookies - HTTP cookie jars
-
-=head1 SYNOPSIS
-
- use HTTP::Cookies;
- $cookie_jar = HTTP::Cookies->new(
- file => "$ENV{'HOME'}/lwp_cookies.dat",
- autosave => 1,
- );
-
- use LWP;
- my $browser = LWP::UserAgent->new;
- $browser->cookie_jar($cookie_jar);
-
-Or for an empty and temporary cookie jar:
-
- use LWP;
- my $browser = LWP::UserAgent->new;
- $browser->cookie_jar( {} );
-
-=head1 DESCRIPTION
-
-This class is for objects that represent a "cookie jar" -- that is, a
-database of all the HTTP cookies that a given LWP::UserAgent object
-knows about.
-
-Cookies are a general mechanism which server side connections can use
-to both store and retrieve information on the client side of the
-connection. For more information about cookies refer to
-<URL:http://curl.haxx.se/rfc/cookie_spec.html> and
-<URL:http://www.cookiecentral.com/>. This module also implements the
-new style cookies described in I<RFC 2965>.
-The two variants of cookies are supposed to be able to coexist happily.
-
-Instances of the class I<HTTP::Cookies> are able to store a collection
-of Set-Cookie2: and Set-Cookie: headers and are able to use this
-information to initialize Cookie-headers in I<HTTP::Request> objects.
-The state of a I<HTTP::Cookies> object can be saved in and restored from
-files.
-
-=head1 METHODS
-
-The following methods are provided:
-
-=over 4
-
-=item $cookie_jar = HTTP::Cookies->new
-
-The constructor takes hash style parameters. The following
-parameters are recognized:
-
- file: name of the file to restore cookies from and save cookies to
- autosave: save during destruction (bool)
- ignore_discard: save even cookies that are requested to be discarded (bool)
- hide_cookie2: do not add Cookie2 header to requests
-
-Future parameters might include (not yet implemented):
-
- max_cookies 300
- max_cookies_per_domain 20
- max_cookie_size 4096
-
- no_cookies list of domain names that we never return cookies to
-
-=item $cookie_jar->add_cookie_header( $request )
-
-The add_cookie_header() method will set the appropriate Cookie:-header
-for the I<HTTP::Request> object given as argument. The $request must
-have a valid url attribute before this method is called.
-
-=item $cookie_jar->extract_cookies( $response )
-
-The extract_cookies() method will look for Set-Cookie: and
-Set-Cookie2: headers in the I<HTTP::Response> object passed as
-argument. Any of these headers that are found are used to update
-the state of the $cookie_jar.
-
-=item $cookie_jar->set_cookie( $version, $key, $val, $path, $domain, $port, $path_spec, $secure, $maxage, $discard, \%rest )
-
-The set_cookie() method updates the state of the $cookie_jar. The
-$key, $val, $domain, $port and $path arguments are strings. The
-$path_spec, $secure, $discard arguments are boolean values. The $maxage
-value is a number indicating number of seconds that this cookie will
-live. A value <= 0 will delete this cookie. %rest defines
-various other attributes like "Comment" and "CommentURL".
-
-=item $cookie_jar->save
-
-=item $cookie_jar->save( $file )
-
-This method file saves the state of the $cookie_jar to a file.
-The state can then be restored later using the load() method. If a
-filename is not specified we will use the name specified during
-construction. If the attribute I<ignore_discard> is set, then we
-will even save cookies that are marked to be discarded.
-
-The default is to save a sequence of "Set-Cookie3" lines.
-"Set-Cookie3" is a proprietary LWP format, not known to be compatible
-with any browser. The I<HTTP::Cookies::Netscape> sub-class can
-be used to save in a format compatible with Netscape.
-
-=item $cookie_jar->load
-
-=item $cookie_jar->load( $file )
-
-This method reads the cookies from the file and adds them to the
-$cookie_jar. The file must be in the format written by the save()
-method.
-
-=item $cookie_jar->revert
-
-This method empties the $cookie_jar and re-loads the $cookie_jar
-from the last save file.
-
-=item $cookie_jar->clear
-
-=item $cookie_jar->clear( $domain )
-
-=item $cookie_jar->clear( $domain, $path )
-
-=item $cookie_jar->clear( $domain, $path, $key )
-
-Invoking this method without arguments will empty the whole
-$cookie_jar. If given a single argument only cookies belonging to
-that domain will be removed. If given two arguments, cookies
-belonging to the specified path within that domain are removed. If
-given three arguments, then the cookie with the specified key, path
-and domain is removed.
-
-=item $cookie_jar->clear_temporary_cookies
-
-Discard all temporary cookies. Scans for all cookies in the jar
-with either no expire field or a true C<discard> flag. To be
-called when the user agent shuts down according to RFC 2965.
-
-=item $cookie_jar->scan( \&callback )
-
-The argument is a subroutine that will be invoked for each cookie
-stored in the $cookie_jar. The subroutine will be invoked with
-the following arguments:
-
- 0 version
- 1 key
- 2 val
- 3 path
- 4 domain
- 5 port
- 6 path_spec
- 7 secure
- 8 expires
- 9 discard
- 10 hash
-
-=item $cookie_jar->as_string
-
-=item $cookie_jar->as_string( $skip_discardables )
-
-The as_string() method will return the state of the $cookie_jar
-represented as a sequence of "Set-Cookie3" header lines separated by
-"\n". If $skip_discardables is TRUE, it will not return lines for
-cookies with the I<Discard> attribute.
-
-=back
-
-=head1 SEE ALSO
-
-L<HTTP::Cookies::Netscape>, L<HTTP::Cookies::Microsoft>
-
-=head1 COPYRIGHT
-
-Copyright 1997-2002 Gisle Aas
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Cookies/Microsoft.pm b/Master/tlpkg/tlperl/lib/HTTP/Cookies/Microsoft.pm
deleted file mode 100644
index 9c69fa364cf..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Cookies/Microsoft.pm
+++ /dev/null
@@ -1,329 +0,0 @@
-package HTTP::Cookies::Microsoft;
-
-use strict;
-
-use vars qw(@ISA $VERSION);
-
-$VERSION = "6.00";
-
-require HTTP::Cookies;
-@ISA=qw(HTTP::Cookies);
-
-sub load_cookies_from_file
-{
- my ($file) = @_;
- my @cookies;
- my ($key, $value, $domain_path, $flags, $lo_expire, $hi_expire);
- my ($lo_create, $hi_create, $sep);
-
- open(COOKIES, $file) || return;
-
- while ($key = <COOKIES>)
- {
- chomp($key);
- chomp($value = <COOKIES>);
- chomp($domain_path= <COOKIES>);
- chomp($flags = <COOKIES>); # 0x0001 bit is for secure
- chomp($lo_expire = <COOKIES>);
- chomp($hi_expire = <COOKIES>);
- chomp($lo_create = <COOKIES>);
- chomp($hi_create = <COOKIES>);
- chomp($sep = <COOKIES>);
-
- if (!defined($key) || !defined($value) || !defined($domain_path) ||
- !defined($flags) || !defined($hi_expire) || !defined($lo_expire) ||
- !defined($hi_create) || !defined($lo_create) || !defined($sep) ||
- ($sep ne '*'))
- {
- last;
- }
-
- if ($domain_path =~ /^([^\/]+)(\/.*)$/)
- {
- my $domain = $1;
- my $path = $2;
-
- push(@cookies, {KEY => $key, VALUE => $value, DOMAIN => $domain,
- PATH => $path, FLAGS =>$flags, HIXP =>$hi_expire,
- LOXP => $lo_expire, HICREATE => $hi_create,
- LOCREATE => $lo_create});
- }
- }
-
- return \@cookies;
-}
-
-sub get_user_name
-{
- use Win32;
- use locale;
- my $user = lc(Win32::LoginName());
-
- return $user;
-}
-
-# MSIE stores create and expire times as Win32 FILETIME,
-# which is 64 bits of 100 nanosecond intervals since Jan 01 1601
-#
-# But Cookies code expects time in 32-bit value expressed
-# in seconds since Jan 01 1970
-#
-sub epoch_time_offset_from_win32_filetime
-{
- my ($high, $low) = @_;
-
- #--------------------------------------------------------
- # USEFUL CONSTANT
- #--------------------------------------------------------
- # 0x019db1de 0xd53e8000 is 1970 Jan 01 00:00:00 in Win32 FILETIME
- #
- # 100 nanosecond intervals == 0.1 microsecond intervals
-
- my $filetime_low32_1970 = 0xd53e8000;
- my $filetime_high32_1970 = 0x019db1de;
-
- #------------------------------------
- # ALGORITHM
- #------------------------------------
- # To go from 100 nanosecond intervals to seconds since 00:00 Jan 01 1970:
- #
- # 1. Adjust 100 nanosecond intervals to Jan 01 1970 base
- # 2. Divide by 10 to get to microseconds (1/millionth second)
- # 3. Divide by 1000000 (10 ^ 6) to get to seconds
- #
- # We can combine Step 2 & 3 into one divide.
- #
- # After much trial and error, I came up with the following code which
- # avoids using Math::BigInt or floating pt, but still gives correct answers
-
- # If the filetime is before the epoch, return 0
- if (($high < $filetime_high32_1970) ||
- (($high == $filetime_high32_1970) && ($low < $filetime_low32_1970)))
- {
- return 0;
- }
-
- # Can't multiply by 0x100000000, (1 << 32),
- # without Perl issuing an integer overflow warning
- #
- # So use two multiplies by 0x10000 instead of one multiply by 0x100000000
- #
- # The result is the same.
- #
- my $date1970 = (($filetime_high32_1970 * 0x10000) * 0x10000) + $filetime_low32_1970;
- my $time = (($high * 0x10000) * 0x10000) + $low;
-
- $time -= $date1970;
- $time /= 10000000;
-
- return $time;
-}
-
-sub load_cookie
-{
- my($self, $file) = @_;
- my $now = time() - $HTTP::Cookies::EPOCH_OFFSET;
- my $cookie_data;
-
- if (-f $file)
- {
- # open the cookie file and get the data
- $cookie_data = load_cookies_from_file($file);
-
- foreach my $cookie (@{$cookie_data})
- {
- my $secure = ($cookie->{FLAGS} & 1) != 0;
- my $expires = epoch_time_offset_from_win32_filetime($cookie->{HIXP}, $cookie->{LOXP});
-
- $self->set_cookie(undef, $cookie->{KEY}, $cookie->{VALUE},
- $cookie->{PATH}, $cookie->{DOMAIN}, undef,
- 0, $secure, $expires-$now, 0);
- }
- }
-}
-
-sub load
-{
- my($self, $cookie_index) = @_;
- my $now = time() - $HTTP::Cookies::EPOCH_OFFSET;
- my $cookie_dir = '';
- my $delay_load = (defined($self->{'delayload'}) && $self->{'delayload'});
- my $user_name = get_user_name();
- my $data;
-
- $cookie_index ||= $self->{'file'} || return;
- if ($cookie_index =~ /[\\\/][^\\\/]+$/)
- {
- $cookie_dir = $` . "\\";
- }
-
- local(*INDEX, $_);
-
- open(INDEX, $cookie_index) || return;
- binmode(INDEX);
- if (256 != read(INDEX, $data, 256))
- {
- warn "$cookie_index file is not large enough";
- close(INDEX);
- return;
- }
-
- # Cookies' index.dat file starts with 32 bytes of signature
- # followed by an offset to the first record, stored as a little-endian DWORD
- my ($sig, $size) = unpack('a32 V', $data);
-
- if (($sig !~ /^Client UrlCache MMF Ver 5\.2/) || # check that sig is valid (only tested in IE6.0)
- (0x4000 != $size))
- {
- warn "$cookie_index ['$sig' $size] does not seem to contain cookies";
- close(INDEX);
- return;
- }
-
- if (0 == seek(INDEX, $size, 0)) # move the file ptr to start of the first record
- {
- close(INDEX);
- return;
- }
-
- # Cookies are usually stored in 'URL ' records in two contiguous 0x80 byte sectors (256 bytes)
- # so read in two 0x80 byte sectors and adjust if not a Cookie.
- while (256 == read(INDEX, $data, 256))
- {
- # each record starts with a 4-byte signature
- # and a count (little-endian DWORD) of 0x80 byte sectors for the record
- ($sig, $size) = unpack('a4 V', $data);
-
- # Cookies are found in 'URL ' records
- if ('URL ' ne $sig)
- {
- # skip over uninteresting record: I've seen 'HASH' and 'LEAK' records
- if (($sig eq 'HASH') || ($sig eq 'LEAK'))
- {
- # '-2' takes into account the two 0x80 byte sectors we've just read in
- if (($size > 0) && ($size != 2))
- {
- if (0 == seek(INDEX, ($size-2)*0x80, 1))
- {
- # Seek failed. Something's wrong. Gonna stop.
- last;
- }
- }
- }
- next;
- }
-
- #$REMOVE Need to check if URL records in Cookies' index.dat will
- # ever use more than two 0x80 byte sectors
- if ($size > 2)
- {
- my $more_data = ($size-2)*0x80;
-
- if ($more_data != read(INDEX, $data, $more_data, 256))
- {
- last;
- }
- }
-
- (my $user_name2 = $user_name) =~ s/ /_/g;
- if ($data =~ /Cookie\:\Q$user_name\E\@([\x21-\xFF]+).*?((?:\Q$user_name\E|\Q$user_name2\E)\@[\x21-\xFF]+\.txt)/)
- {
- my $cookie_file = $cookie_dir . $2; # form full pathname
-
- if (!$delay_load)
- {
- $self->load_cookie($cookie_file);
- }
- else
- {
- my $domain = $1;
-
- # grab only the domain name, drop everything from the first dir sep on
- if ($domain =~ m{[\\/]})
- {
- $domain = $`;
- }
-
- # set the delayload cookie for this domain with
- # the cookie_file as cookie for later-loading info
- $self->set_cookie(undef, 'cookie', $cookie_file,
- '//+delayload', $domain, undef,
- 0, 0, $now+86400, 0);
- }
- }
- }
-
- close(INDEX);
-
- 1;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-HTTP::Cookies::Microsoft - access to Microsoft cookies files
-
-=head1 SYNOPSIS
-
- use LWP;
- use HTTP::Cookies::Microsoft;
- use Win32::TieRegistry(Delimiter => "/");
- my $cookies_dir = $Registry->
- {"CUser/Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders/Cookies"};
-
- $cookie_jar = HTTP::Cookies::Microsoft->new(
- file => "$cookies_dir\\index.dat",
- 'delayload' => 1,
- );
- my $browser = LWP::UserAgent->new;
- $browser->cookie_jar( $cookie_jar );
-
-=head1 DESCRIPTION
-
-This is a subclass of C<HTTP::Cookies> which
-loads Microsoft Internet Explorer 5.x and 6.x for Windows (MSIE)
-cookie files.
-
-See the documentation for L<HTTP::Cookies>.
-
-=head1 METHODS
-
-The following methods are provided:
-
-=over 4
-
-=item $cookie_jar = HTTP::Cookies::Microsoft->new;
-
-The constructor takes hash style parameters. In addition
-to the regular HTTP::Cookies parameters, HTTP::Cookies::Microsoft
-recognizes the following:
-
- delayload: delay loading of cookie data until a request
- is actually made. This results in faster
- runtime unless you use most of the cookies
- since only the domain's cookie data
- is loaded on demand.
-
-=back
-
-=head1 CAVEATS
-
-Please note that the code DOESN'T support saving to the MSIE
-cookie file format.
-
-=head1 AUTHOR
-
-Johnny Lee <typo_pl@hotmail.com>
-
-=head1 COPYRIGHT
-
-Copyright 2002 Johnny Lee
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Cookies/Netscape.pm b/Master/tlpkg/tlperl/lib/HTTP/Cookies/Netscape.pm
deleted file mode 100644
index 5972029e558..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Cookies/Netscape.pm
+++ /dev/null
@@ -1,114 +0,0 @@
-package HTTP::Cookies::Netscape;
-
-use strict;
-use vars qw(@ISA $VERSION);
-
-$VERSION = "6.00";
-
-require HTTP::Cookies;
-@ISA=qw(HTTP::Cookies);
-
-sub load
-{
- my($self, $file) = @_;
- $file ||= $self->{'file'} || return;
- local(*FILE, $_);
- local $/ = "\n"; # make sure we got standard record separator
- my @cookies;
- open(FILE, $file) || return;
- my $magic = <FILE>;
- unless ($magic =~ /^\#(?: Netscape)? HTTP Cookie File/) {
- warn "$file does not look like a netscape cookies file" if $^W;
- close(FILE);
- return;
- }
- my $now = time() - $HTTP::Cookies::EPOCH_OFFSET;
- while (<FILE>) {
- next if /^\s*\#/;
- next if /^\s*$/;
- tr/\n\r//d;
- my($domain,$bool1,$path,$secure, $expires,$key,$val) = split(/\t/, $_);
- $secure = ($secure eq "TRUE");
- $self->set_cookie(undef,$key,$val,$path,$domain,undef,
- 0,$secure,$expires-$now, 0);
- }
- close(FILE);
- 1;
-}
-
-sub save
-{
- my($self, $file) = @_;
- $file ||= $self->{'file'} || return;
- local(*FILE, $_);
- open(FILE, ">$file") || return;
-
- # Use old, now broken link to the old cookie spec just in case something
- # else (not us!) requires the comment block exactly this way.
- print FILE <<EOT;
-# Netscape HTTP Cookie File
-# http://www.netscape.com/newsref/std/cookie_spec.html
-# This is a generated file! Do not edit.
-
-EOT
-
- my $now = time - $HTTP::Cookies::EPOCH_OFFSET;
- $self->scan(sub {
- my($version,$key,$val,$path,$domain,$port,
- $path_spec,$secure,$expires,$discard,$rest) = @_;
- return if $discard && !$self->{ignore_discard};
- $expires = $expires ? $expires - $HTTP::Cookies::EPOCH_OFFSET : 0;
- return if $now > $expires;
- $secure = $secure ? "TRUE" : "FALSE";
- my $bool = $domain =~ /^\./ ? "TRUE" : "FALSE";
- print FILE join("\t", $domain, $bool, $path, $secure, $expires, $key, $val), "\n";
- });
- close(FILE);
- 1;
-}
-
-1;
-__END__
-
-=head1 NAME
-
-HTTP::Cookies::Netscape - access to Netscape cookies files
-
-=head1 SYNOPSIS
-
- use LWP;
- use HTTP::Cookies::Netscape;
- $cookie_jar = HTTP::Cookies::Netscape->new(
- file => "c:/program files/netscape/users/ZombieCharity/cookies.txt",
- );
- my $browser = LWP::UserAgent->new;
- $browser->cookie_jar( $cookie_jar );
-
-=head1 DESCRIPTION
-
-This is a subclass of C<HTTP::Cookies> that reads (and optionally
-writes) Netscape/Mozilla cookie files.
-
-See the documentation for L<HTTP::Cookies>.
-
-=head1 CAVEATS
-
-Please note that the Netscape/Mozilla cookie file format can't store
-all the information available in the Set-Cookie2 headers, so you will
-probably lose some information if you save in this format.
-
-At time of writing, this module seems to work fine with Mozilla
-Phoenix/Firebird.
-
-=head1 SEE ALSO
-
-L<HTTP::Cookies::Microsoft>
-
-=head1 COPYRIGHT
-
-Copyright 2002-2003 Gisle Aas
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Daemon.pm b/Master/tlpkg/tlperl/lib/HTTP/Daemon.pm
deleted file mode 100644
index 27a7bf4e173..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Daemon.pm
+++ /dev/null
@@ -1,906 +0,0 @@
-package HTTP::Daemon;
-
-use strict;
-use vars qw($VERSION @ISA $PROTO $DEBUG);
-
-$VERSION = "6.01";
-
-use IO::Socket qw(AF_INET INADDR_ANY INADDR_LOOPBACK inet_ntoa);
-@ISA=qw(IO::Socket::INET);
-
-$PROTO = "HTTP/1.1";
-
-
-sub new
-{
- my($class, %args) = @_;
- $args{Listen} ||= 5;
- $args{Proto} ||= 'tcp';
- return $class->SUPER::new(%args);
-}
-
-
-sub accept
-{
- my $self = shift;
- my $pkg = shift || "HTTP::Daemon::ClientConn";
- my ($sock, $peer) = $self->SUPER::accept($pkg);
- if ($sock) {
- ${*$sock}{'httpd_daemon'} = $self;
- return wantarray ? ($sock, $peer) : $sock;
- }
- else {
- return;
- }
-}
-
-
-sub url
-{
- my $self = shift;
- my $url = $self->_default_scheme . "://";
- my $addr = $self->sockaddr;
- if (!$addr || $addr eq INADDR_ANY) {
- require Sys::Hostname;
- $url .= lc Sys::Hostname::hostname();
- }
- elsif ($addr eq INADDR_LOOPBACK) {
- $url .= inet_ntoa($addr);
- }
- else {
- $url .= gethostbyaddr($addr, AF_INET) || inet_ntoa($addr);
- }
- my $port = $self->sockport;
- $url .= ":$port" if $port != $self->_default_port;
- $url .= "/";
- $url;
-}
-
-
-sub _default_port {
- 80;
-}
-
-
-sub _default_scheme {
- "http";
-}
-
-
-sub product_tokens
-{
- "libwww-perl-daemon/$HTTP::Daemon::VERSION";
-}
-
-
-
-package HTTP::Daemon::ClientConn;
-
-use vars qw(@ISA $DEBUG);
-use IO::Socket ();
-@ISA=qw(IO::Socket::INET);
-*DEBUG = \$HTTP::Daemon::DEBUG;
-
-use HTTP::Request ();
-use HTTP::Response ();
-use HTTP::Status;
-use HTTP::Date qw(time2str);
-use LWP::MediaTypes qw(guess_media_type);
-use Carp ();
-
-my $CRLF = "\015\012"; # "\r\n" is not portable
-my $HTTP_1_0 = _http_version("HTTP/1.0");
-my $HTTP_1_1 = _http_version("HTTP/1.1");
-
-
-sub get_request
-{
- my($self, $only_headers) = @_;
- if (${*$self}{'httpd_nomore'}) {
- $self->reason("No more requests from this connection");
- return;
- }
-
- $self->reason("");
- my $buf = ${*$self}{'httpd_rbuf'};
- $buf = "" unless defined $buf;
-
- my $timeout = $ {*$self}{'io_socket_timeout'};
- my $fdset = "";
- vec($fdset, $self->fileno, 1) = 1;
- local($_);
-
- READ_HEADER:
- while (1) {
- # loop until we have the whole header in $buf
- $buf =~ s/^(?:\015?\012)+//; # ignore leading blank lines
- if ($buf =~ /\012/) { # potential, has at least one line
- if ($buf =~ /^\w+[^\012]+HTTP\/\d+\.\d+\015?\012/) {
- if ($buf =~ /\015?\012\015?\012/) {
- last READ_HEADER; # we have it
- }
- elsif (length($buf) > 16*1024) {
- $self->send_error(413); # REQUEST_ENTITY_TOO_LARGE
- $self->reason("Very long header");
- return;
- }
- }
- else {
- last READ_HEADER; # HTTP/0.9 client
- }
- }
- elsif (length($buf) > 16*1024) {
- $self->send_error(414); # REQUEST_URI_TOO_LARGE
- $self->reason("Very long first line");
- return;
- }
- print STDERR "Need more data for complete header\n" if $DEBUG;
- return unless $self->_need_more($buf, $timeout, $fdset);
- }
- if ($buf !~ s/^(\S+)[ \t]+(\S+)(?:[ \t]+(HTTP\/\d+\.\d+))?[^\012]*\012//) {
- ${*$self}{'httpd_client_proto'} = _http_version("HTTP/1.0");
- $self->send_error(400); # BAD_REQUEST
- $self->reason("Bad request line: $buf");
- return;
- }
- my $method = $1;
- my $uri = $2;
- my $proto = $3 || "HTTP/0.9";
- $uri = "http://$uri" if $method eq "CONNECT";
- $uri = $HTTP::URI_CLASS->new($uri, $self->daemon->url);
- my $r = HTTP::Request->new($method, $uri);
- $r->protocol($proto);
- ${*$self}{'httpd_client_proto'} = $proto = _http_version($proto);
- ${*$self}{'httpd_head'} = ($method eq "HEAD");
-
- if ($proto >= $HTTP_1_0) {
- # we expect to find some headers
- my($key, $val);
- HEADER:
- while ($buf =~ s/^([^\012]*)\012//) {
- $_ = $1;
- s/\015$//;
- if (/^([^:\s]+)\s*:\s*(.*)/) {
- $r->push_header($key, $val) if $key;
- ($key, $val) = ($1, $2);
- }
- elsif (/^\s+(.*)/) {
- $val .= " $1";
- }
- else {
- last HEADER;
- }
- }
- $r->push_header($key, $val) if $key;
- }
-
- my $conn = $r->header('Connection');
- if ($proto >= $HTTP_1_1) {
- ${*$self}{'httpd_nomore'}++ if $conn && lc($conn) =~ /\bclose\b/;
- }
- else {
- ${*$self}{'httpd_nomore'}++ unless $conn &&
- lc($conn) =~ /\bkeep-alive\b/;
- }
-
- if ($only_headers) {
- ${*$self}{'httpd_rbuf'} = $buf;
- return $r;
- }
-
- # Find out how much content to read
- my $te = $r->header('Transfer-Encoding');
- my $ct = $r->header('Content-Type');
- my $len = $r->header('Content-Length');
-
- # Act on the Expect header, if it's there
- for my $e ( $r->header('Expect') ) {
- if( lc($e) eq '100-continue' ) {
- $self->send_status_line(100);
- $self->send_crlf;
- }
- else {
- $self->send_error(417);
- $self->reason("Unsupported Expect header value");
- return;
- }
- }
-
- if ($te && lc($te) eq 'chunked') {
- # Handle chunked transfer encoding
- my $body = "";
- CHUNK:
- while (1) {
- print STDERR "Chunked\n" if $DEBUG;
- if ($buf =~ s/^([^\012]*)\012//) {
- my $chunk_head = $1;
- unless ($chunk_head =~ /^([0-9A-Fa-f]+)/) {
- $self->send_error(400);
- $self->reason("Bad chunk header $chunk_head");
- return;
- }
- my $size = hex($1);
- last CHUNK if $size == 0;
-
- my $missing = $size - length($buf) + 2; # 2=CRLF at chunk end
- # must read until we have a complete chunk
- while ($missing > 0) {
- print STDERR "Need $missing more bytes\n" if $DEBUG;
- my $n = $self->_need_more($buf, $timeout, $fdset);
- return unless $n;
- $missing -= $n;
- }
- $body .= substr($buf, 0, $size);
- substr($buf, 0, $size+2) = '';
-
- }
- else {
- # need more data in order to have a complete chunk header
- return unless $self->_need_more($buf, $timeout, $fdset);
- }
- }
- $r->content($body);
-
- # pretend it was a normal entity body
- $r->remove_header('Transfer-Encoding');
- $r->header('Content-Length', length($body));
-
- my($key, $val);
- FOOTER:
- while (1) {
- if ($buf !~ /\012/) {
- # need at least one line to look at
- return unless $self->_need_more($buf, $timeout, $fdset);
- }
- else {
- $buf =~ s/^([^\012]*)\012//;
- $_ = $1;
- s/\015$//;
- if (/^([\w\-]+)\s*:\s*(.*)/) {
- $r->push_header($key, $val) if $key;
- ($key, $val) = ($1, $2);
- }
- elsif (/^\s+(.*)/) {
- $val .= " $1";
- }
- elsif (!length) {
- last FOOTER;
- }
- else {
- $self->reason("Bad footer syntax");
- return;
- }
- }
- }
- $r->push_header($key, $val) if $key;
-
- }
- elsif ($te) {
- $self->send_error(501); # Unknown transfer encoding
- $self->reason("Unknown transfer encoding '$te'");
- return;
-
- }
- elsif ($len) {
- # Plain body specified by "Content-Length"
- my $missing = $len - length($buf);
- while ($missing > 0) {
- print "Need $missing more bytes of content\n" if $DEBUG;
- my $n = $self->_need_more($buf, $timeout, $fdset);
- return unless $n;
- $missing -= $n;
- }
- if (length($buf) > $len) {
- $r->content(substr($buf,0,$len));
- substr($buf, 0, $len) = '';
- }
- else {
- $r->content($buf);
- $buf='';
- }
- }
- elsif ($ct && $ct =~ m/^multipart\/\w+\s*;.*boundary\s*=\s*("?)(\w+)\1/i) {
- # Handle multipart content type
- my $boundary = "$CRLF--$2--";
- my $index;
- while (1) {
- $index = index($buf, $boundary);
- last if $index >= 0;
- # end marker not yet found
- return unless $self->_need_more($buf, $timeout, $fdset);
- }
- $index += length($boundary);
- $r->content(substr($buf, 0, $index));
- substr($buf, 0, $index) = '';
-
- }
- ${*$self}{'httpd_rbuf'} = $buf;
-
- $r;
-}
-
-
-sub _need_more
-{
- my $self = shift;
- #my($buf,$timeout,$fdset) = @_;
- if ($_[1]) {
- my($timeout, $fdset) = @_[1,2];
- print STDERR "select(,,,$timeout)\n" if $DEBUG;
- my $n = select($fdset,undef,undef,$timeout);
- unless ($n) {
- $self->reason(defined($n) ? "Timeout" : "select: $!");
- return;
- }
- }
- print STDERR "sysread()\n" if $DEBUG;
- my $n = sysread($self, $_[0], 2048, length($_[0]));
- $self->reason(defined($n) ? "Client closed" : "sysread: $!") unless $n;
- $n;
-}
-
-
-sub read_buffer
-{
- my $self = shift;
- my $old = ${*$self}{'httpd_rbuf'};
- if (@_) {
- ${*$self}{'httpd_rbuf'} = shift;
- }
- $old;
-}
-
-
-sub reason
-{
- my $self = shift;
- my $old = ${*$self}{'httpd_reason'};
- if (@_) {
- ${*$self}{'httpd_reason'} = shift;
- }
- $old;
-}
-
-
-sub proto_ge
-{
- my $self = shift;
- ${*$self}{'httpd_client_proto'} >= _http_version(shift);
-}
-
-
-sub _http_version
-{
- local($_) = shift;
- return 0 unless m,^(?:HTTP/)?(\d+)\.(\d+)$,i;
- $1 * 1000 + $2;
-}
-
-
-sub antique_client
-{
- my $self = shift;
- ${*$self}{'httpd_client_proto'} < $HTTP_1_0;
-}
-
-
-sub force_last_request
-{
- my $self = shift;
- ${*$self}{'httpd_nomore'}++;
-}
-
-sub head_request
-{
- my $self = shift;
- ${*$self}{'httpd_head'};
-}
-
-
-sub send_status_line
-{
- my($self, $status, $message, $proto) = @_;
- return if $self->antique_client;
- $status ||= RC_OK;
- $message ||= status_message($status) || "";
- $proto ||= $HTTP::Daemon::PROTO || "HTTP/1.1";
- print $self "$proto $status $message$CRLF";
-}
-
-
-sub send_crlf
-{
- my $self = shift;
- print $self $CRLF;
-}
-
-
-sub send_basic_header
-{
- my $self = shift;
- return if $self->antique_client;
- $self->send_status_line(@_);
- print $self "Date: ", time2str(time), $CRLF;
- my $product = $self->daemon->product_tokens;
- print $self "Server: $product$CRLF" if $product;
-}
-
-
-sub send_header
-{
- my $self = shift;
- while (@_) {
- my($k, $v) = splice(@_, 0, 2);
- $v = "" unless defined($v);
- print $self "$k: $v$CRLF";
- }
-}
-
-
-sub send_response
-{
- my $self = shift;
- my $res = shift;
- if (!ref $res) {
- $res ||= RC_OK;
- $res = HTTP::Response->new($res, @_);
- }
- my $content = $res->content;
- my $chunked;
- unless ($self->antique_client) {
- my $code = $res->code;
- $self->send_basic_header($code, $res->message, $res->protocol);
- if ($code =~ /^(1\d\d|[23]04)$/) {
- # make sure content is empty
- $res->remove_header("Content-Length");
- $content = "";
- }
- elsif ($res->request && $res->request->method eq "HEAD") {
- # probably OK
- }
- elsif (ref($content) eq "CODE") {
- if ($self->proto_ge("HTTP/1.1")) {
- $res->push_header("Transfer-Encoding" => "chunked");
- $chunked++;
- }
- else {
- $self->force_last_request;
- }
- }
- elsif (length($content)) {
- $res->header("Content-Length" => length($content));
- }
- else {
- $self->force_last_request;
- $res->header('connection','close');
- }
- print $self $res->headers_as_string($CRLF);
- print $self $CRLF; # separates headers and content
- }
- if ($self->head_request) {
- # no content
- }
- elsif (ref($content) eq "CODE") {
- while (1) {
- my $chunk = &$content();
- last unless defined($chunk) && length($chunk);
- if ($chunked) {
- printf $self "%x%s%s%s", length($chunk), $CRLF, $chunk, $CRLF;
- }
- else {
- print $self $chunk;
- }
- }
- print $self "0$CRLF$CRLF" if $chunked; # no trailers either
- }
- elsif (length $content) {
- print $self $content;
- }
-}
-
-
-sub send_redirect
-{
- my($self, $loc, $status, $content) = @_;
- $status ||= RC_MOVED_PERMANENTLY;
- Carp::croak("Status '$status' is not redirect") unless is_redirect($status);
- $self->send_basic_header($status);
- my $base = $self->daemon->url;
- $loc = $HTTP::URI_CLASS->new($loc, $base) unless ref($loc);
- $loc = $loc->abs($base);
- print $self "Location: $loc$CRLF";
- if ($content) {
- my $ct = $content =~ /^\s*</ ? "text/html" : "text/plain";
- print $self "Content-Type: $ct$CRLF";
- }
- print $self $CRLF;
- print $self $content if $content && !$self->head_request;
- $self->force_last_request; # no use keeping the connection open
-}
-
-
-sub send_error
-{
- my($self, $status, $error) = @_;
- $status ||= RC_BAD_REQUEST;
- Carp::croak("Status '$status' is not an error") unless is_error($status);
- my $mess = status_message($status);
- $error ||= "";
- $mess = <<EOT;
-<title>$status $mess</title>
-<h1>$status $mess</h1>
-$error
-EOT
- unless ($self->antique_client) {
- $self->send_basic_header($status);
- print $self "Content-Type: text/html$CRLF";
- print $self "Content-Length: " . length($mess) . $CRLF;
- print $self $CRLF;
- }
- print $self $mess unless $self->head_request;
- $status;
-}
-
-
-sub send_file_response
-{
- my($self, $file) = @_;
- if (-d $file) {
- $self->send_dir($file);
- }
- elsif (-f _) {
- # plain file
- local(*F);
- sysopen(F, $file, 0) or
- return $self->send_error(RC_FORBIDDEN);
- binmode(F);
- my($ct,$ce) = guess_media_type($file);
- my($size,$mtime) = (stat _)[7,9];
- unless ($self->antique_client) {
- $self->send_basic_header;
- print $self "Content-Type: $ct$CRLF";
- print $self "Content-Encoding: $ce$CRLF" if $ce;
- print $self "Content-Length: $size$CRLF" if $size;
- print $self "Last-Modified: ", time2str($mtime), "$CRLF" if $mtime;
- print $self $CRLF;
- }
- $self->send_file(\*F) unless $self->head_request;
- return RC_OK;
- }
- else {
- $self->send_error(RC_NOT_FOUND);
- }
-}
-
-
-sub send_dir
-{
- my($self, $dir) = @_;
- $self->send_error(RC_NOT_FOUND) unless -d $dir;
- $self->send_error(RC_NOT_IMPLEMENTED);
-}
-
-
-sub send_file
-{
- my($self, $file) = @_;
- my $opened = 0;
- local(*FILE);
- if (!ref($file)) {
- open(FILE, $file) || return undef;
- binmode(FILE);
- $file = \*FILE;
- $opened++;
- }
- my $cnt = 0;
- my $buf = "";
- my $n;
- while ($n = sysread($file, $buf, 8*1024)) {
- last if !$n;
- $cnt += $n;
- print $self $buf;
- }
- close($file) if $opened;
- $cnt;
-}
-
-
-sub daemon
-{
- my $self = shift;
- ${*$self}{'httpd_daemon'};
-}
-
-
-1;
-
-__END__
-
-=head1 NAME
-
-HTTP::Daemon - a simple http server class
-
-=head1 SYNOPSIS
-
- use HTTP::Daemon;
- use HTTP::Status;
-
- my $d = HTTP::Daemon->new || die;
- print "Please contact me at: <URL:", $d->url, ">\n";
- while (my $c = $d->accept) {
- while (my $r = $c->get_request) {
- if ($r->method eq 'GET' and $r->uri->path eq "/xyzzy") {
- # remember, this is *not* recommended practice :-)
- $c->send_file_response("/etc/passwd");
- }
- else {
- $c->send_error(RC_FORBIDDEN)
- }
- }
- $c->close;
- undef($c);
- }
-
-=head1 DESCRIPTION
-
-Instances of the C<HTTP::Daemon> class are HTTP/1.1 servers that
-listen on a socket for incoming requests. The C<HTTP::Daemon> is a
-subclass of C<IO::Socket::INET>, so you can perform socket operations
-directly on it too.
-
-The accept() method will return when a connection from a client is
-available. The returned value will be an C<HTTP::Daemon::ClientConn>
-object which is another C<IO::Socket::INET> subclass. Calling the
-get_request() method on this object will read data from the client and
-return an C<HTTP::Request> object. The ClientConn object also provide
-methods to send back various responses.
-
-This HTTP daemon does not fork(2) for you. Your application, i.e. the
-user of the C<HTTP::Daemon> is responsible for forking if that is
-desirable. Also note that the user is responsible for generating
-responses that conform to the HTTP/1.1 protocol.
-
-The following methods of C<HTTP::Daemon> are new (or enhanced) relative
-to the C<IO::Socket::INET> base class:
-
-=over 4
-
-=item $d = HTTP::Daemon->new
-
-=item $d = HTTP::Daemon->new( %opts )
-
-The constructor method takes the same arguments as the
-C<IO::Socket::INET> constructor, but unlike its base class it can also
-be called without any arguments. The daemon will then set up a listen
-queue of 5 connections and allocate some random port number.
-
-A server that wants to bind to some specific address on the standard
-HTTP port will be constructed like this:
-
- $d = HTTP::Daemon->new(
- LocalAddr => 'www.thisplace.com',
- LocalPort => 80,
- );
-
-See L<IO::Socket::INET> for a description of other arguments that can
-be used configure the daemon during construction.
-
-=item $c = $d->accept
-
-=item $c = $d->accept( $pkg )
-
-=item ($c, $peer_addr) = $d->accept
-
-This method works the same the one provided by the base class, but it
-returns an C<HTTP::Daemon::ClientConn> reference by default. If a
-package name is provided as argument, then the returned object will be
-blessed into the given class. It is probably a good idea to make that
-class a subclass of C<HTTP::Daemon::ClientConn>.
-
-The accept method will return C<undef> if timeouts have been enabled
-and no connection is made within the given time. The timeout() method
-is described in L<IO::Socket>.
-
-In list context both the client object and the peer address will be
-returned; see the description of the accept method L<IO::Socket> for
-details.
-
-=item $d->url
-
-Returns a URL string that can be used to access the server root.
-
-=item $d->product_tokens
-
-Returns the name that this server will use to identify itself. This
-is the string that is sent with the C<Server> response header. The
-main reason to have this method is that subclasses can override it if
-they want to use another product name.
-
-The default is the string "libwww-perl-daemon/#.##" where "#.##" is
-replaced with the version number of this module.
-
-=back
-
-The C<HTTP::Daemon::ClientConn> is a C<IO::Socket::INET>
-subclass. Instances of this class are returned by the accept() method
-of C<HTTP::Daemon>. The following methods are provided:
-
-=over 4
-
-=item $c->get_request
-
-=item $c->get_request( $headers_only )
-
-This method reads data from the client and turns it into an
-C<HTTP::Request> object which is returned. It returns C<undef>
-if reading fails. If it fails, then the C<HTTP::Daemon::ClientConn>
-object ($c) should be discarded, and you should not try call this
-method again on it. The $c->reason method might give you some
-information about why $c->get_request failed.
-
-The get_request() method will normally not return until the whole
-request has been received from the client. This might not be what you
-want if the request is an upload of a large file (and with chunked
-transfer encoding HTTP can even support infinite request messages -
-uploading live audio for instance). If you pass a TRUE value as the
-$headers_only argument, then get_request() will return immediately
-after parsing the request headers and you are responsible for reading
-the rest of the request content. If you are going to call
-$c->get_request again on the same connection you better read the
-correct number of bytes.
-
-=item $c->read_buffer
-
-=item $c->read_buffer( $new_value )
-
-Bytes read by $c->get_request, but not used are placed in the I<read
-buffer>. The next time $c->get_request is called it will consume the
-bytes in this buffer before reading more data from the network
-connection itself. The read buffer is invalid after $c->get_request
-has failed.
-
-If you handle the reading of the request content yourself you need to
-empty this buffer before you read more and you need to place
-unconsumed bytes here. You also need this buffer if you implement
-services like I<101 Switching Protocols>.
-
-This method always returns the old buffer content and can optionally
-replace the buffer content if you pass it an argument.
-
-=item $c->reason
-
-When $c->get_request returns C<undef> you can obtain a short string
-describing why it happened by calling $c->reason.
-
-=item $c->proto_ge( $proto )
-
-Return TRUE if the client announced a protocol with version number
-greater or equal to the given argument. The $proto argument can be a
-string like "HTTP/1.1" or just "1.1".
-
-=item $c->antique_client
-
-Return TRUE if the client speaks the HTTP/0.9 protocol. No status
-code and no headers should be returned to such a client. This should
-be the same as !$c->proto_ge("HTTP/1.0").
-
-=item $c->head_request
-
-Return TRUE if the last request was a C<HEAD> request. No content
-body must be generated for these requests.
-
-=item $c->force_last_request
-
-Make sure that $c->get_request will not try to read more requests off
-this connection. If you generate a response that is not self
-delimiting, then you should signal this fact by calling this method.
-
-This attribute is turned on automatically if the client announces
-protocol HTTP/1.0 or worse and does not include a "Connection:
-Keep-Alive" header. It is also turned on automatically when HTTP/1.1
-or better clients send the "Connection: close" request header.
-
-=item $c->send_status_line
-
-=item $c->send_status_line( $code )
-
-=item $c->send_status_line( $code, $mess )
-
-=item $c->send_status_line( $code, $mess, $proto )
-
-Send the status line back to the client. If $code is omitted 200 is
-assumed. If $mess is omitted, then a message corresponding to $code
-is inserted. If $proto is missing the content of the
-$HTTP::Daemon::PROTO variable is used.
-
-=item $c->send_crlf
-
-Send the CRLF sequence to the client.
-
-=item $c->send_basic_header
-
-=item $c->send_basic_header( $code )
-
-=item $c->send_basic_header( $code, $mess )
-
-=item $c->send_basic_header( $code, $mess, $proto )
-
-Send the status line and the "Date:" and "Server:" headers back to
-the client. This header is assumed to be continued and does not end
-with an empty CRLF line.
-
-See the description of send_status_line() for the description of the
-accepted arguments.
-
-=item $c->send_header( $field, $value )
-
-=item $c->send_header( $field1, $value1, $field2, $value2, ... )
-
-Send one or more header lines.
-
-=item $c->send_response( $res )
-
-Write a C<HTTP::Response> object to the
-client as a response. We try hard to make sure that the response is
-self delimiting so that the connection can stay persistent for further
-request/response exchanges.
-
-The content attribute of the C<HTTP::Response> object can be a normal
-string or a subroutine reference. If it is a subroutine, then
-whatever this callback routine returns is written back to the
-client as the response content. The routine will be called until it
-return an undefined or empty value. If the client is HTTP/1.1 aware
-then we will use chunked transfer encoding for the response.
-
-=item $c->send_redirect( $loc )
-
-=item $c->send_redirect( $loc, $code )
-
-=item $c->send_redirect( $loc, $code, $entity_body )
-
-Send a redirect response back to the client. The location ($loc) can
-be an absolute or relative URL. The $code must be one the redirect
-status codes, and defaults to "301 Moved Permanently"
-
-=item $c->send_error
-
-=item $c->send_error( $code )
-
-=item $c->send_error( $code, $error_message )
-
-Send an error response back to the client. If the $code is missing a
-"Bad Request" error is reported. The $error_message is a string that
-is incorporated in the body of the HTML entity body.
-
-=item $c->send_file_response( $filename )
-
-Send back a response with the specified $filename as content. If the
-file is a directory we try to generate an HTML index of it.
-
-=item $c->send_file( $filename )
-
-=item $c->send_file( $fd )
-
-Copy the file to the client. The file can be a string (which
-will be interpreted as a filename) or a reference to an C<IO::Handle>
-or glob.
-
-=item $c->daemon
-
-Return a reference to the corresponding C<HTTP::Daemon> object.
-
-=back
-
-=head1 SEE ALSO
-
-RFC 2616
-
-L<IO::Socket::INET>, L<IO::Socket>
-
-=head1 COPYRIGHT
-
-Copyright 1996-2003, Gisle Aas
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Date.pm b/Master/tlpkg/tlperl/lib/HTTP/Date.pm
deleted file mode 100644
index d05d21605ae..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Date.pm
+++ /dev/null
@@ -1,388 +0,0 @@
-package HTTP::Date;
-
-$VERSION = "6.02";
-
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(time2str str2time);
-@EXPORT_OK = qw(parse_date time2iso time2isoz);
-
-use strict;
-require Time::Local;
-
-use vars qw(@DoW @MoY %MoY);
-@DoW = qw(Sun Mon Tue Wed Thu Fri Sat);
-@MoY = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
-@MoY{@MoY} = (1..12);
-
-my %GMT_ZONE = (GMT => 1, UTC => 1, UT => 1, Z => 1);
-
-
-sub time2str (;$)
-{
- my $time = shift;
- $time = time unless defined $time;
- my ($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime($time);
- sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT",
- $DoW[$wday],
- $mday, $MoY[$mon], $year+1900,
- $hour, $min, $sec);
-}
-
-
-sub str2time ($;$)
-{
- my $str = shift;
- return undef unless defined $str;
-
- # fast exit for strictly conforming string
- if ($str =~ /^[SMTWF][a-z][a-z], (\d\d) ([JFMAJSOND][a-z][a-z]) (\d\d\d\d) (\d\d):(\d\d):(\d\d) GMT$/) {
- return eval {
- my $t = Time::Local::timegm($6, $5, $4, $1, $MoY{$2}-1, $3);
- $t < 0 ? undef : $t;
- };
- }
-
- my @d = parse_date($str);
- return undef unless @d;
- $d[1]--; # month
-
- my $tz = pop(@d);
- unless (defined $tz) {
- unless (defined($tz = shift)) {
- return eval { my $frac = $d[-1]; $frac -= ($d[-1] = int($frac));
- my $t = Time::Local::timelocal(reverse @d) + $frac;
- $t < 0 ? undef : $t;
- };
- }
- }
-
- my $offset = 0;
- if ($GMT_ZONE{uc $tz}) {
- # offset already zero
- }
- elsif ($tz =~ /^([-+])?(\d\d?):?(\d\d)?$/) {
- $offset = 3600 * $2;
- $offset += 60 * $3 if $3;
- $offset *= -1 if $1 && $1 eq '-';
- }
- else {
- eval { require Time::Zone } || return undef;
- $offset = Time::Zone::tz_offset($tz);
- return undef unless defined $offset;
- }
-
- return eval { my $frac = $d[-1]; $frac -= ($d[-1] = int($frac));
- my $t = Time::Local::timegm(reverse @d) + $frac;
- $t < 0 ? undef : $t - $offset;
- };
-}
-
-
-sub parse_date ($)
-{
- local($_) = shift;
- return unless defined;
-
- # More lax parsing below
- s/^\s+//; # kill leading space
- s/^(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)[a-z]*,?\s*//i; # Useless weekday
-
- my($day, $mon, $yr, $hr, $min, $sec, $tz, $ampm);
-
- # Then we are able to check for most of the formats with this regexp
- (($day,$mon,$yr,$hr,$min,$sec,$tz) =
- /^
- (\d\d?) # day
- (?:\s+|[-\/])
- (\w+) # month
- (?:\s+|[-\/])
- (\d+) # year
- (?:
- (?:\s+|:) # separator before clock
- (\d\d?):(\d\d) # hour:min
- (?::(\d\d))? # optional seconds
- )? # optional clock
- \s*
- ([-+]?\d{2,4}|(?![APap][Mm]\b)[A-Za-z]+)? # timezone
- \s*
- (?:\(\w+\)|\w{3,})? # ASCII representation of timezone.
- \s*$
- /x)
-
- ||
-
- # Try the ctime and asctime format
- (($mon, $day, $hr, $min, $sec, $tz, $yr) =
- /^
- (\w{1,3}) # month
- \s+
- (\d\d?) # day
- \s+
- (\d\d?):(\d\d) # hour:min
- (?::(\d\d))? # optional seconds
- \s+
- (?:([A-Za-z]+)\s+)? # optional timezone
- (\d+) # year
- \s*$ # allow trailing whitespace
- /x)
-
- ||
-
- # Then the Unix 'ls -l' date format
- (($mon, $day, $yr, $hr, $min, $sec) =
- /^
- (\w{3}) # month
- \s+
- (\d\d?) # day
- \s+
- (?:
- (\d\d\d\d) | # year
- (\d{1,2}):(\d{2}) # hour:min
- (?::(\d\d))? # optional seconds
- )
- \s*$
- /x)
-
- ||
-
- # ISO 8601 format '1996-02-29 12:00:00 -0100' and variants
- (($yr, $mon, $day, $hr, $min, $sec, $tz) =
- /^
- (\d{4}) # year
- [-\/]?
- (\d\d?) # numerical month
- [-\/]?
- (\d\d?) # day
- (?:
- (?:\s+|[-:Tt]) # separator before clock
- (\d\d?):?(\d\d) # hour:min
- (?::?(\d\d(?:\.\d*)?))? # optional seconds (and fractional)
- )? # optional clock
- \s*
- ([-+]?\d\d?:?(:?\d\d)?
- |Z|z)? # timezone (Z is "zero meridian", i.e. GMT)
- \s*$
- /x)
-
- ||
-
- # Windows 'dir' 11-12-96 03:52PM
- (($mon, $day, $yr, $hr, $min, $ampm) =
- /^
- (\d{2}) # numerical month
- -
- (\d{2}) # day
- -
- (\d{2}) # year
- \s+
- (\d\d?):(\d\d)([APap][Mm]) # hour:min AM or PM
- \s*$
- /x)
-
- ||
- return; # unrecognized format
-
- # Translate month name to number
- $mon = $MoY{$mon} ||
- $MoY{"\u\L$mon"} ||
- ($mon =~ /^\d\d?$/ && $mon >= 1 && $mon <= 12 && int($mon)) ||
- return;
-
- # If the year is missing, we assume first date before the current,
- # because of the formats we support such dates are mostly present
- # on "ls -l" listings.
- unless (defined $yr) {
- my $cur_mon;
- ($cur_mon, $yr) = (localtime)[4, 5];
- $yr += 1900;
- $cur_mon++;
- $yr-- if $mon > $cur_mon;
- }
- elsif (length($yr) < 3) {
- # Find "obvious" year
- my $cur_yr = (localtime)[5] + 1900;
- my $m = $cur_yr % 100;
- my $tmp = $yr;
- $yr += $cur_yr - $m;
- $m -= $tmp;
- $yr += ($m > 0) ? 100 : -100
- if abs($m) > 50;
- }
-
- # Make sure clock elements are defined
- $hr = 0 unless defined($hr);
- $min = 0 unless defined($min);
- $sec = 0 unless defined($sec);
-
- # Compensate for AM/PM
- if ($ampm) {
- $ampm = uc $ampm;
- $hr = 0 if $hr == 12 && $ampm eq 'AM';
- $hr += 12 if $ampm eq 'PM' && $hr != 12;
- }
-
- return($yr, $mon, $day, $hr, $min, $sec, $tz)
- if wantarray;
-
- if (defined $tz) {
- $tz = "Z" if $tz =~ /^(GMT|UTC?|[-+]?0+)$/;
- }
- else {
- $tz = "";
- }
- return sprintf("%04d-%02d-%02d %02d:%02d:%02d%s",
- $yr, $mon, $day, $hr, $min, $sec, $tz);
-}
-
-
-sub time2iso (;$)
-{
- my $time = shift;
- $time = time unless defined $time;
- my($sec,$min,$hour,$mday,$mon,$year) = localtime($time);
- sprintf("%04d-%02d-%02d %02d:%02d:%02d",
- $year+1900, $mon+1, $mday, $hour, $min, $sec);
-}
-
-
-sub time2isoz (;$)
-{
- my $time = shift;
- $time = time unless defined $time;
- my($sec,$min,$hour,$mday,$mon,$year) = gmtime($time);
- sprintf("%04d-%02d-%02d %02d:%02d:%02dZ",
- $year+1900, $mon+1, $mday, $hour, $min, $sec);
-}
-
-1;
-
-
-__END__
-
-=head1 NAME
-
-HTTP::Date - date conversion routines
-
-=head1 SYNOPSIS
-
- use HTTP::Date;
-
- $string = time2str($time); # Format as GMT ASCII time
- $time = str2time($string); # convert ASCII date to machine time
-
-=head1 DESCRIPTION
-
-This module provides functions that deal the date formats used by the
-HTTP protocol (and then some more). Only the first two functions,
-time2str() and str2time(), are exported by default.
-
-=over 4
-
-=item time2str( [$time] )
-
-The time2str() function converts a machine time (seconds since epoch)
-to a string. If the function is called without an argument or with an
-undefined argument, it will use the current time.
-
-The string returned is in the format preferred for the HTTP protocol.
-This is a fixed length subset of the format defined by RFC 1123,
-represented in Universal Time (GMT). An example of a time stamp
-in this format is:
-
- Sun, 06 Nov 1994 08:49:37 GMT
-
-=item str2time( $str [, $zone] )
-
-The str2time() function converts a string to machine time. It returns
-C<undef> if the format of $str is unrecognized, otherwise whatever the
-C<Time::Local> functions can make out of the parsed time. Dates
-before the system's epoch may not work on all operating systems. The
-time formats recognized are the same as for parse_date().
-
-The function also takes an optional second argument that specifies the
-default time zone to use when converting the date. This parameter is
-ignored if the zone is found in the date string itself. If this
-parameter is missing, and the date string format does not contain any
-zone specification, then the local time zone is assumed.
-
-If the zone is not "C<GMT>" or numerical (like "C<-0800>" or
-"C<+0100>"), then the C<Time::Zone> module must be installed in order
-to get the date recognized.
-
-=item parse_date( $str )
-
-This function will try to parse a date string, and then return it as a
-list of numerical values followed by a (possible undefined) time zone
-specifier; ($year, $month, $day, $hour, $min, $sec, $tz). The $year
-will be the full 4-digit year, and $month numbers start with 1 (for January).
-
-In scalar context the numbers are interpolated in a string of the
-"YYYY-MM-DD hh:mm:ss TZ"-format and returned.
-
-If the date is unrecognized, then the empty list is returned (C<undef> in
-scalar context).
-
-The function is able to parse the following formats:
-
- "Wed, 09 Feb 1994 22:23:32 GMT" -- HTTP format
- "Thu Feb 3 17:03:55 GMT 1994" -- ctime(3) format
- "Thu Feb 3 00:00:00 1994", -- ANSI C asctime() format
- "Tuesday, 08-Feb-94 14:15:29 GMT" -- old rfc850 HTTP format
- "Tuesday, 08-Feb-1994 14:15:29 GMT" -- broken rfc850 HTTP format
-
- "03/Feb/1994:17:03:55 -0700" -- common logfile format
- "09 Feb 1994 22:23:32 GMT" -- HTTP format (no weekday)
- "08-Feb-94 14:15:29 GMT" -- rfc850 format (no weekday)
- "08-Feb-1994 14:15:29 GMT" -- broken rfc850 format (no weekday)
-
- "1994-02-03 14:15:29 -0100" -- ISO 8601 format
- "1994-02-03 14:15:29" -- zone is optional
- "1994-02-03" -- only date
- "1994-02-03T14:15:29" -- Use T as separator
- "19940203T141529Z" -- ISO 8601 compact format
- "19940203" -- only date
-
- "08-Feb-94" -- old rfc850 HTTP format (no weekday, no time)
- "08-Feb-1994" -- broken rfc850 HTTP format (no weekday, no time)
- "09 Feb 1994" -- proposed new HTTP format (no weekday, no time)
- "03/Feb/1994" -- common logfile format (no time, no offset)
-
- "Feb 3 1994" -- Unix 'ls -l' format
- "Feb 3 17:03" -- Unix 'ls -l' format
-
- "11-15-96 03:52PM" -- Windows 'dir' format
-
-The parser ignores leading and trailing whitespace. It also allow the
-seconds to be missing and the month to be numerical in most formats.
-
-If the year is missing, then we assume that the date is the first
-matching date I<before> current month. If the year is given with only
-2 digits, then parse_date() will select the century that makes the
-year closest to the current date.
-
-=item time2iso( [$time] )
-
-Same as time2str(), but returns a "YYYY-MM-DD hh:mm:ss"-formatted
-string representing time in the local time zone.
-
-=item time2isoz( [$time] )
-
-Same as time2str(), but returns a "YYYY-MM-DD hh:mm:ssZ"-formatted
-string representing Universal Time.
-
-
-=back
-
-=head1 SEE ALSO
-
-L<perlfunc/time>, L<Time::Zone>
-
-=head1 COPYRIGHT
-
-Copyright 1995-1999, Gisle Aas
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Headers.pm b/Master/tlpkg/tlperl/lib/HTTP/Headers.pm
deleted file mode 100644
index 532fefed8e8..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Headers.pm
+++ /dev/null
@@ -1,854 +0,0 @@
-package HTTP::Headers;
-
-use strict;
-use Carp ();
-
-use vars qw($VERSION $TRANSLATE_UNDERSCORE);
-$VERSION = "6.05";
-
-# The $TRANSLATE_UNDERSCORE variable controls whether '_' can be used
-# as a replacement for '-' in header field names.
-$TRANSLATE_UNDERSCORE = 1 unless defined $TRANSLATE_UNDERSCORE;
-
-# "Good Practice" order of HTTP message headers:
-# - General-Headers
-# - Request-Headers
-# - Response-Headers
-# - Entity-Headers
-
-my @general_headers = qw(
- Cache-Control Connection Date Pragma Trailer Transfer-Encoding Upgrade
- Via Warning
-);
-
-my @request_headers = qw(
- Accept Accept-Charset Accept-Encoding Accept-Language
- Authorization Expect From Host
- If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since
- Max-Forwards Proxy-Authorization Range Referer TE User-Agent
-);
-
-my @response_headers = qw(
- Accept-Ranges Age ETag Location Proxy-Authenticate Retry-After Server
- Vary WWW-Authenticate
-);
-
-my @entity_headers = qw(
- Allow Content-Encoding Content-Language Content-Length Content-Location
- Content-MD5 Content-Range Content-Type Expires Last-Modified
-);
-
-my %entity_header = map { lc($_) => 1 } @entity_headers;
-
-my @header_order = (
- @general_headers,
- @request_headers,
- @response_headers,
- @entity_headers,
-);
-
-# Make alternative representations of @header_order. This is used
-# for sorting and case matching.
-my %header_order;
-my %standard_case;
-
-{
- my $i = 0;
- for (@header_order) {
- my $lc = lc $_;
- $header_order{$lc} = ++$i;
- $standard_case{$lc} = $_;
- }
-}
-
-
-
-sub new
-{
- my($class) = shift;
- my $self = bless {}, $class;
- $self->header(@_) if @_; # set up initial headers
- $self;
-}
-
-
-sub header
-{
- my $self = shift;
- Carp::croak('Usage: $h->header($field, ...)') unless @_;
- my(@old);
- my %seen;
- while (@_) {
- my $field = shift;
- my $op = @_ ? ($seen{lc($field)}++ ? 'PUSH' : 'SET') : 'GET';
- @old = $self->_header($field, shift, $op);
- }
- return @old if wantarray;
- return $old[0] if @old <= 1;
- join(", ", @old);
-}
-
-sub clear
-{
- my $self = shift;
- %$self = ();
-}
-
-
-sub push_header
-{
- my $self = shift;
- return $self->_header(@_, 'PUSH_H') if @_ == 2;
- while (@_) {
- $self->_header(splice(@_, 0, 2), 'PUSH_H');
- }
-}
-
-
-sub init_header
-{
- Carp::croak('Usage: $h->init_header($field, $val)') if @_ != 3;
- shift->_header(@_, 'INIT');
-}
-
-
-sub remove_header
-{
- my($self, @fields) = @_;
- my $field;
- my @values;
- foreach $field (@fields) {
- $field =~ tr/_/-/ if $field !~ /^:/ && $TRANSLATE_UNDERSCORE;
- my $v = delete $self->{lc $field};
- push(@values, ref($v) eq 'ARRAY' ? @$v : $v) if defined $v;
- }
- return @values;
-}
-
-sub remove_content_headers
-{
- my $self = shift;
- unless (defined(wantarray)) {
- # fast branch that does not create return object
- delete @$self{grep $entity_header{$_} || /^content-/, keys %$self};
- return;
- }
-
- my $c = ref($self)->new;
- for my $f (grep $entity_header{$_} || /^content-/, keys %$self) {
- $c->{$f} = delete $self->{$f};
- }
- if (exists $self->{'::std_case'}) {
- $c->{'::std_case'} = $self->{'::std_case'};
- }
- $c;
-}
-
-
-sub _header
-{
- my($self, $field, $val, $op) = @_;
-
- Carp::croak("Illegal field name '$field'")
- if rindex($field, ':') > 1 || !length($field);
-
- unless ($field =~ /^:/) {
- $field =~ tr/_/-/ if $TRANSLATE_UNDERSCORE;
- my $old = $field;
- $field = lc $field;
- unless($standard_case{$field} || $self->{'::std_case'}{$field}) {
- # generate a %std_case entry for this field
- $old =~ s/\b(\w)/\u$1/g;
- $self->{'::std_case'}{$field} = $old;
- }
- }
-
- $op ||= defined($val) ? 'SET' : 'GET';
- if ($op eq 'PUSH_H') {
- # Like PUSH but where we don't care about the return value
- if (exists $self->{$field}) {
- my $h = $self->{$field};
- if (ref($h) eq 'ARRAY') {
- push(@$h, ref($val) eq "ARRAY" ? @$val : $val);
- }
- else {
- $self->{$field} = [$h, ref($val) eq "ARRAY" ? @$val : $val]
- }
- return;
- }
- $self->{$field} = $val;
- return;
- }
-
- my $h = $self->{$field};
- my @old = ref($h) eq 'ARRAY' ? @$h : (defined($h) ? ($h) : ());
-
- unless ($op eq 'GET' || ($op eq 'INIT' && @old)) {
- if (defined($val)) {
- my @new = ($op eq 'PUSH') ? @old : ();
- if (ref($val) ne 'ARRAY') {
- push(@new, $val);
- }
- else {
- push(@new, @$val);
- }
- $self->{$field} = @new > 1 ? \@new : $new[0];
- }
- elsif ($op ne 'PUSH') {
- delete $self->{$field};
- }
- }
- @old;
-}
-
-
-sub _sorted_field_names
-{
- my $self = shift;
- return [ sort {
- ($header_order{$a} || 999) <=> ($header_order{$b} || 999) ||
- $a cmp $b
- } grep !/^::/, keys %$self ];
-}
-
-
-sub header_field_names {
- my $self = shift;
- return map $standard_case{$_} || $self->{'::std_case'}{$_} || $_, @{ $self->_sorted_field_names },
- if wantarray;
- return grep !/^::/, keys %$self;
-}
-
-
-sub scan
-{
- my($self, $sub) = @_;
- my $key;
- for $key (@{ $self->_sorted_field_names }) {
- my $vals = $self->{$key};
- if (ref($vals) eq 'ARRAY') {
- my $val;
- for $val (@$vals) {
- $sub->($standard_case{$key} || $self->{'::std_case'}{$key} || $key, $val);
- }
- }
- else {
- $sub->($standard_case{$key} || $self->{'::std_case'}{$key} || $key, $vals);
- }
- }
-}
-
-
-sub as_string
-{
- my($self, $endl) = @_;
- $endl = "\n" unless defined $endl;
-
- my @result = ();
- for my $key (@{ $self->_sorted_field_names }) {
- next if index($key, '_') == 0;
- my $vals = $self->{$key};
- if ( ref($vals) eq 'ARRAY' ) {
- for my $val (@$vals) {
- my $field = $standard_case{$key} || $self->{'::std_case'}{$key} || $key;
- $field =~ s/^://;
- if ( index($val, "\n") >= 0 ) {
- $val = _process_newline($val, $endl);
- }
- push @result, $field . ': ' . $val;
- }
- }
- else {
- my $field = $standard_case{$key} || $self->{'::std_case'}{$key} || $key;
- $field =~ s/^://;
- if ( index($vals, "\n") >= 0 ) {
- $vals = _process_newline($vals, $endl);
- }
- push @result, $field . ': ' . $vals;
- }
- }
-
- join($endl, @result, '');
-}
-
-sub _process_newline {
- local $_ = shift;
- my $endl = shift;
- # must handle header values with embedded newlines with care
- s/\s+$//; # trailing newlines and space must go
- s/\n(\x0d?\n)+/\n/g; # no empty lines
- s/\n([^\040\t])/\n $1/g; # initial space for continuation
- s/\n/$endl/g; # substitute with requested line ending
- $_;
-}
-
-
-
-if (eval { require Storable; 1 }) {
- *clone = \&Storable::dclone;
-} else {
- *clone = sub {
- my $self = shift;
- my $clone = HTTP::Headers->new;
- $self->scan(sub { $clone->push_header(@_);} );
- $clone;
- };
-}
-
-
-sub _date_header
-{
- require HTTP::Date;
- my($self, $header, $time) = @_;
- my($old) = $self->_header($header);
- if (defined $time) {
- $self->_header($header, HTTP::Date::time2str($time));
- }
- $old =~ s/;.*// if defined($old);
- HTTP::Date::str2time($old);
-}
-
-
-sub date { shift->_date_header('Date', @_); }
-sub expires { shift->_date_header('Expires', @_); }
-sub if_modified_since { shift->_date_header('If-Modified-Since', @_); }
-sub if_unmodified_since { shift->_date_header('If-Unmodified-Since', @_); }
-sub last_modified { shift->_date_header('Last-Modified', @_); }
-
-# This is used as a private LWP extension. The Client-Date header is
-# added as a timestamp to a response when it has been received.
-sub client_date { shift->_date_header('Client-Date', @_); }
-
-# The retry_after field is dual format (can also be a expressed as
-# number of seconds from now), so we don't provide an easy way to
-# access it until we have know how both these interfaces can be
-# addressed. One possibility is to return a negative value for
-# relative seconds and a positive value for epoch based time values.
-#sub retry_after { shift->_date_header('Retry-After', @_); }
-
-sub content_type {
- my $self = shift;
- my $ct = $self->{'content-type'};
- $self->{'content-type'} = shift if @_;
- $ct = $ct->[0] if ref($ct) eq 'ARRAY';
- return '' unless defined($ct) && length($ct);
- my @ct = split(/;\s*/, $ct, 2);
- for ($ct[0]) {
- s/\s+//g;
- $_ = lc($_);
- }
- wantarray ? @ct : $ct[0];
-}
-
-sub content_type_charset {
- my $self = shift;
- require HTTP::Headers::Util;
- my $h = $self->{'content-type'};
- $h = $h->[0] if ref($h);
- $h = "" unless defined $h;
- my @v = HTTP::Headers::Util::split_header_words($h);
- if (@v) {
- my($ct, undef, %ct_param) = @{$v[0]};
- my $charset = $ct_param{charset};
- if ($ct) {
- $ct = lc($ct);
- $ct =~ s/\s+//;
- }
- if ($charset) {
- $charset = uc($charset);
- $charset =~ s/^\s+//; $charset =~ s/\s+\z//;
- undef($charset) if $charset eq "";
- }
- return $ct, $charset if wantarray;
- return $charset;
- }
- return undef, undef if wantarray;
- return undef;
-}
-
-sub content_is_text {
- my $self = shift;
- return $self->content_type =~ m,^text/,;
-}
-
-sub content_is_html {
- my $self = shift;
- return $self->content_type eq 'text/html' || $self->content_is_xhtml;
-}
-
-sub content_is_xhtml {
- my $ct = shift->content_type;
- return $ct eq "application/xhtml+xml" ||
- $ct eq "application/vnd.wap.xhtml+xml";
-}
-
-sub content_is_xml {
- my $ct = shift->content_type;
- return 1 if $ct eq "text/xml";
- return 1 if $ct eq "application/xml";
- return 1 if $ct =~ /\+xml$/;
- return 0;
-}
-
-sub referer {
- my $self = shift;
- if (@_ && $_[0] =~ /#/) {
- # Strip fragment per RFC 2616, section 14.36.
- my $uri = shift;
- if (ref($uri)) {
- $uri = $uri->clone;
- $uri->fragment(undef);
- }
- else {
- $uri =~ s/\#.*//;
- }
- unshift @_, $uri;
- }
- ($self->_header('Referer', @_))[0];
-}
-*referrer = \&referer; # on tchrist's request
-
-sub title { (shift->_header('Title', @_))[0] }
-sub content_encoding { (shift->_header('Content-Encoding', @_))[0] }
-sub content_language { (shift->_header('Content-Language', @_))[0] }
-sub content_length { (shift->_header('Content-Length', @_))[0] }
-
-sub user_agent { (shift->_header('User-Agent', @_))[0] }
-sub server { (shift->_header('Server', @_))[0] }
-
-sub from { (shift->_header('From', @_))[0] }
-sub warning { (shift->_header('Warning', @_))[0] }
-
-sub www_authenticate { (shift->_header('WWW-Authenticate', @_))[0] }
-sub authorization { (shift->_header('Authorization', @_))[0] }
-
-sub proxy_authenticate { (shift->_header('Proxy-Authenticate', @_))[0] }
-sub proxy_authorization { (shift->_header('Proxy-Authorization', @_))[0] }
-
-sub authorization_basic { shift->_basic_auth("Authorization", @_) }
-sub proxy_authorization_basic { shift->_basic_auth("Proxy-Authorization", @_) }
-
-sub _basic_auth {
- require MIME::Base64;
- my($self, $h, $user, $passwd) = @_;
- my($old) = $self->_header($h);
- if (defined $user) {
- Carp::croak("Basic authorization user name can't contain ':'")
- if $user =~ /:/;
- $passwd = '' unless defined $passwd;
- $self->_header($h => 'Basic ' .
- MIME::Base64::encode("$user:$passwd", ''));
- }
- if (defined $old && $old =~ s/^\s*Basic\s+//) {
- my $val = MIME::Base64::decode($old);
- return $val unless wantarray;
- return split(/:/, $val, 2);
- }
- return;
-}
-
-
-1;
-
-__END__
-
-=head1 NAME
-
-HTTP::Headers - Class encapsulating HTTP Message headers
-
-=head1 SYNOPSIS
-
- require HTTP::Headers;
- $h = HTTP::Headers->new;
-
- $h->header('Content-Type' => 'text/plain'); # set
- $ct = $h->header('Content-Type'); # get
- $h->remove_header('Content-Type'); # delete
-
-=head1 DESCRIPTION
-
-The C<HTTP::Headers> class encapsulates HTTP-style message headers.
-The headers consist of attribute-value pairs also called fields, which
-may be repeated, and which are printed in a particular order. The
-field names are cases insensitive.
-
-Instances of this class are usually created as member variables of the
-C<HTTP::Request> and C<HTTP::Response> classes, internal to the
-library.
-
-The following methods are available:
-
-=over 4
-
-=item $h = HTTP::Headers->new
-
-Constructs a new C<HTTP::Headers> object. You might pass some initial
-attribute-value pairs as parameters to the constructor. I<E.g.>:
-
- $h = HTTP::Headers->new(
- Date => 'Thu, 03 Feb 1994 00:00:00 GMT',
- Content_Type => 'text/html; version=3.2',
- Content_Base => 'http://www.perl.org/');
-
-The constructor arguments are passed to the C<header> method which is
-described below.
-
-=item $h->clone
-
-Returns a copy of this C<HTTP::Headers> object.
-
-=item $h->header( $field )
-
-=item $h->header( $field => $value )
-
-=item $h->header( $f1 => $v1, $f2 => $v2, ... )
-
-Get or set the value of one or more header fields. The header field
-name ($field) is not case sensitive. To make the life easier for perl
-users who wants to avoid quoting before the => operator, you can use
-'_' as a replacement for '-' in header names.
-
-The header() method accepts multiple ($field => $value) pairs, which
-means that you can update several fields with a single invocation.
-
-The $value argument may be a plain string or a reference to an array
-of strings for a multi-valued field. If the $value is provided as
-C<undef> then the field is removed. If the $value is not given, then
-that header field will remain unchanged.
-
-The old value (or values) of the last of the header fields is returned.
-If no such field exists C<undef> will be returned.
-
-A multi-valued field will be returned as separate values in list
-context and will be concatenated with ", " as separator in scalar
-context. The HTTP spec (RFC 2616) promise that joining multiple
-values in this way will not change the semantic of a header field, but
-in practice there are cases like old-style Netscape cookies (see
-L<HTTP::Cookies>) where "," is used as part of the syntax of a single
-field value.
-
-Examples:
-
- $header->header(MIME_Version => '1.0',
- User_Agent => 'My-Web-Client/0.01');
- $header->header(Accept => "text/html, text/plain, image/*");
- $header->header(Accept => [qw(text/html text/plain image/*)]);
- @accepts = $header->header('Accept'); # get multiple values
- $accepts = $header->header('Accept'); # get values as a single string
-
-=item $h->push_header( $field => $value )
-
-=item $h->push_header( $f1 => $v1, $f2 => $v2, ... )
-
-Add a new field value for the specified header field. Previous values
-for the same field are retained.
-
-As for the header() method, the field name ($field) is not case
-sensitive and '_' can be used as a replacement for '-'.
-
-The $value argument may be a scalar or a reference to a list of
-scalars.
-
- $header->push_header(Accept => 'image/jpeg');
- $header->push_header(Accept => [map "image/$_", qw(gif png tiff)]);
-
-=item $h->init_header( $field => $value )
-
-Set the specified header to the given value, but only if no previous
-value for that field is set.
-
-The header field name ($field) is not case sensitive and '_'
-can be used as a replacement for '-'.
-
-The $value argument may be a scalar or a reference to a list of
-scalars.
-
-=item $h->remove_header( $field, ... )
-
-This function removes the header fields with the specified names.
-
-The header field names ($field) are not case sensitive and '_'
-can be used as a replacement for '-'.
-
-The return value is the values of the fields removed. In scalar
-context the number of fields removed is returned.
-
-Note that if you pass in multiple field names then it is generally not
-possible to tell which of the returned values belonged to which field.
-
-=item $h->remove_content_headers
-
-This will remove all the header fields used to describe the content of
-a message. All header field names prefixed with C<Content-> fall
-into this category, as well as C<Allow>, C<Expires> and
-C<Last-Modified>. RFC 2616 denotes these fields as I<Entity Header
-Fields>.
-
-The return value is a new C<HTTP::Headers> object that contains the
-removed headers only.
-
-=item $h->clear
-
-This will remove all header fields.
-
-=item $h->header_field_names
-
-Returns the list of distinct names for the fields present in the
-header. The field names have case as suggested by HTTP spec, and the
-names are returned in the recommended "Good Practice" order.
-
-In scalar context return the number of distinct field names.
-
-=item $h->scan( \&process_header_field )
-
-Apply a subroutine to each header field in turn. The callback routine
-is called with two parameters; the name of the field and a single
-value (a string). If a header field is multi-valued, then the
-routine is called once for each value. The field name passed to the
-callback routine has case as suggested by HTTP spec, and the headers
-will be visited in the recommended "Good Practice" order.
-
-Any return values of the callback routine are ignored. The loop can
-be broken by raising an exception (C<die>), but the caller of scan()
-would have to trap the exception itself.
-
-=item $h->as_string
-
-=item $h->as_string( $eol )
-
-Return the header fields as a formatted MIME header. Since it
-internally uses the C<scan> method to build the string, the result
-will use case as suggested by HTTP spec, and it will follow
-recommended "Good Practice" of ordering the header fields. Long header
-values are not folded.
-
-The optional $eol parameter specifies the line ending sequence to
-use. The default is "\n". Embedded "\n" characters in header field
-values will be substituted with this line ending sequence.
-
-=back
-
-=head1 CONVENIENCE METHODS
-
-The most frequently used headers can also be accessed through the
-following convenience methods. Most of these methods can both be used to read
-and to set the value of a header. The header value is set if you pass
-an argument to the method. The old header value is always returned.
-If the given header did not exist then C<undef> is returned.
-
-Methods that deal with dates/times always convert their value to system
-time (seconds since Jan 1, 1970) and they also expect this kind of
-value when the header value is set.
-
-=over 4
-
-=item $h->date
-
-This header represents the date and time at which the message was
-originated. I<E.g.>:
-
- $h->date(time); # set current date
-
-=item $h->expires
-
-This header gives the date and time after which the entity should be
-considered stale.
-
-=item $h->if_modified_since
-
-=item $h->if_unmodified_since
-
-These header fields are used to make a request conditional. If the requested
-resource has (or has not) been modified since the time specified in this field,
-then the server will return a C<304 Not Modified> response instead of
-the document itself.
-
-=item $h->last_modified
-
-This header indicates the date and time at which the resource was last
-modified. I<E.g.>:
-
- # check if document is more than 1 hour old
- if (my $last_mod = $h->last_modified) {
- if ($last_mod < time - 60*60) {
- ...
- }
- }
-
-=item $h->content_type
-
-The Content-Type header field indicates the media type of the message
-content. I<E.g.>:
-
- $h->content_type('text/html');
-
-The value returned will be converted to lower case, and potential
-parameters will be chopped off and returned as a separate value if in
-an array context. If there is no such header field, then the empty
-string is returned. This makes it safe to do the following:
-
- if ($h->content_type eq 'text/html') {
- # we enter this place even if the real header value happens to
- # be 'TEXT/HTML; version=3.0'
- ...
- }
-
-=item $h->content_type_charset
-
-Returns the upper-cased charset specified in the Content-Type header. In list
-context return the lower-cased bare content type followed by the upper-cased
-charset. Both values will be C<undef> if not specified in the header.
-
-=item $h->content_is_text
-
-Returns TRUE if the Content-Type header field indicate that the
-content is textual.
-
-=item $h->content_is_html
-
-Returns TRUE if the Content-Type header field indicate that the
-content is some kind of HTML (including XHTML). This method can't be
-used to set Content-Type.
-
-=item $h->content_is_xhtml
-
-Returns TRUE if the Content-Type header field indicate that the
-content is XHTML. This method can't be used to set Content-Type.
-
-=item $h->content_is_xml
-
-Returns TRUE if the Content-Type header field indicate that the
-content is XML. This method can't be used to set Content-Type.
-
-=item $h->content_encoding
-
-The Content-Encoding header field is used as a modifier to the
-media type. When present, its value indicates what additional
-encoding mechanism has been applied to the resource.
-
-=item $h->content_length
-
-A decimal number indicating the size in bytes of the message content.
-
-=item $h->content_language
-
-The natural language(s) of the intended audience for the message
-content. The value is one or more language tags as defined by RFC
-1766. Eg. "no" for some kind of Norwegian and "en-US" for English the
-way it is written in the US.
-
-=item $h->title
-
-The title of the document. In libwww-perl this header will be
-initialized automatically from the E<lt>TITLE>...E<lt>/TITLE> element
-of HTML documents. I<This header is no longer part of the HTTP
-standard.>
-
-=item $h->user_agent
-
-This header field is used in request messages and contains information
-about the user agent originating the request. I<E.g.>:
-
- $h->user_agent('Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0)');
-
-=item $h->server
-
-The server header field contains information about the software being
-used by the originating server program handling the request.
-
-=item $h->from
-
-This header should contain an Internet e-mail address for the human
-user who controls the requesting user agent. The address should be
-machine-usable, as defined by RFC822. E.g.:
-
- $h->from('King Kong <king@kong.com>');
-
-I<This header is no longer part of the HTTP standard.>
-
-=item $h->referer
-
-Used to specify the address (URI) of the document from which the
-requested resource address was obtained.
-
-The "Free On-line Dictionary of Computing" as this to say about the
-word I<referer>:
-
- <World-Wide Web> A misspelling of "referrer" which
- somehow made it into the {HTTP} standard. A given {web
- page}'s referer (sic) is the {URL} of whatever web page
- contains the link that the user followed to the current
- page. Most browsers pass this information as part of a
- request.
-
- (1998-10-19)
-
-By popular demand C<referrer> exists as an alias for this method so you
-can avoid this misspelling in your programs and still send the right
-thing on the wire.
-
-When setting the referrer, this method removes the fragment from the
-given URI if it is present, as mandated by RFC2616. Note that
-the removal does I<not> happen automatically if using the header(),
-push_header() or init_header() methods to set the referrer.
-
-=item $h->www_authenticate
-
-This header must be included as part of a C<401 Unauthorized> response.
-The field value consist of a challenge that indicates the
-authentication scheme and parameters applicable to the requested URI.
-
-=item $h->proxy_authenticate
-
-This header must be included in a C<407 Proxy Authentication Required>
-response.
-
-=item $h->authorization
-
-=item $h->proxy_authorization
-
-A user agent that wishes to authenticate itself with a server or a
-proxy, may do so by including these headers.
-
-=item $h->authorization_basic
-
-This method is used to get or set an authorization header that use the
-"Basic Authentication Scheme". In array context it will return two
-values; the user name and the password. In scalar context it will
-return I<"uname:password"> as a single string value.
-
-When used to set the header value, it expects two arguments. I<E.g.>:
-
- $h->authorization_basic($uname, $password);
-
-The method will croak if the $uname contains a colon ':'.
-
-=item $h->proxy_authorization_basic
-
-Same as authorization_basic() but will set the "Proxy-Authorization"
-header instead.
-
-=back
-
-=head1 NON-CANONICALIZED FIELD NAMES
-
-The header field name spelling is normally canonicalized including the
-'_' to '-' translation. There are some application where this is not
-appropriate. Prefixing field names with ':' allow you to force a
-specific spelling. For example if you really want a header field name
-to show up as C<foo_bar> instead of "Foo-Bar", you might set it like
-this:
-
- $h->header(":foo_bar" => 1);
-
-These field names are returned with the ':' intact for
-$h->header_field_names and the $h->scan callback, but the colons do
-not show in $h->as_string.
-
-=head1 COPYRIGHT
-
-Copyright 1995-2005 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Headers/Auth.pm b/Master/tlpkg/tlperl/lib/HTTP/Headers/Auth.pm
deleted file mode 100644
index 64e204ce388..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Headers/Auth.pm
+++ /dev/null
@@ -1,98 +0,0 @@
-package HTTP::Headers::Auth;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = "6.00";
-
-use HTTP::Headers;
-
-package HTTP::Headers;
-
-BEGIN {
- # we provide a new (and better) implementations below
- undef(&www_authenticate);
- undef(&proxy_authenticate);
-}
-
-require HTTP::Headers::Util;
-
-sub _parse_authenticate
-{
- my @ret;
- for (HTTP::Headers::Util::split_header_words(@_)) {
- if (!defined($_->[1])) {
- # this is a new auth scheme
- push(@ret, shift(@$_) => {});
- shift @$_;
- }
- if (@ret) {
- # this a new parameter pair for the last auth scheme
- while (@$_) {
- my $k = shift @$_;
- my $v = shift @$_;
- $ret[-1]{$k} = $v;
- }
- }
- else {
- # something wrong, parameter pair without any scheme seen
- # IGNORE
- }
- }
- @ret;
-}
-
-sub _authenticate
-{
- my $self = shift;
- my $header = shift;
- my @old = $self->_header($header);
- if (@_) {
- $self->remove_header($header);
- my @new = @_;
- while (@new) {
- my $a_scheme = shift(@new);
- if ($a_scheme =~ /\s/) {
- # assume complete valid value, pass it through
- $self->push_header($header, $a_scheme);
- }
- else {
- my @param;
- if (@new) {
- my $p = $new[0];
- if (ref($p) eq "ARRAY") {
- @param = @$p;
- shift(@new);
- }
- elsif (ref($p) eq "HASH") {
- @param = %$p;
- shift(@new);
- }
- }
- my $val = ucfirst(lc($a_scheme));
- if (@param) {
- my $sep = " ";
- while (@param) {
- my $k = shift @param;
- my $v = shift @param;
- if ($v =~ /[^0-9a-zA-Z]/ || lc($k) eq "realm") {
- # must quote the value
- $v =~ s,([\\\"]),\\$1,g;
- $v = qq("$v");
- }
- $val .= "$sep$k=$v";
- $sep = ", ";
- }
- }
- $self->push_header($header, $val);
- }
- }
- }
- return unless defined wantarray;
- wantarray ? _parse_authenticate(@old) : join(", ", @old);
-}
-
-
-sub www_authenticate { shift->_authenticate("WWW-Authenticate", @_) }
-sub proxy_authenticate { shift->_authenticate("Proxy-Authenticate", @_) }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Headers/ETag.pm b/Master/tlpkg/tlperl/lib/HTTP/Headers/ETag.pm
deleted file mode 100644
index e0b2c7e255c..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Headers/ETag.pm
+++ /dev/null
@@ -1,94 +0,0 @@
-package HTTP::Headers::ETag;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = "6.00";
-
-require HTTP::Date;
-
-require HTTP::Headers;
-package HTTP::Headers;
-
-sub _etags
-{
- my $self = shift;
- my $header = shift;
- my @old = _split_etag_list($self->_header($header));
- if (@_) {
- $self->_header($header => join(", ", _split_etag_list(@_)));
- }
- wantarray ? @old : join(", ", @old);
-}
-
-sub etag { shift->_etags("ETag", @_); }
-sub if_match { shift->_etags("If-Match", @_); }
-sub if_none_match { shift->_etags("If-None-Match", @_); }
-
-sub if_range {
- # Either a date or an entity-tag
- my $self = shift;
- my @old = $self->_header("If-Range");
- if (@_) {
- my $new = shift;
- if (!defined $new) {
- $self->remove_header("If-Range");
- }
- elsif ($new =~ /^\d+$/) {
- $self->_date_header("If-Range", $new);
- }
- else {
- $self->_etags("If-Range", $new);
- }
- }
- return unless defined(wantarray);
- for (@old) {
- my $t = HTTP::Date::str2time($_);
- $_ = $t if $t;
- }
- wantarray ? @old : join(", ", @old);
-}
-
-
-# Split a list of entity tag values. The return value is a list
-# consisting of one element per entity tag. Suitable for parsing
-# headers like C<If-Match>, C<If-None-Match>. You might even want to
-# use it on C<ETag> and C<If-Range> entity tag values, because it will
-# normalize them to the common form.
-#
-# entity-tag = [ weak ] opaque-tag
-# weak = "W/"
-# opaque-tag = quoted-string
-
-
-sub _split_etag_list
-{
- my(@val) = @_;
- my @res;
- for (@val) {
- while (length) {
- my $weak = "";
- $weak = "W/" if s,^\s*[wW]/,,;
- my $etag = "";
- if (s/^\s*(\"[^\"\\]*(?:\\.[^\"\\]*)*\")//) {
- push(@res, "$weak$1");
- }
- elsif (s/^\s*,//) {
- push(@res, qq(W/"")) if $weak;
- }
- elsif (s/^\s*([^,\s]+)//) {
- $etag = $1;
- $etag =~ s/([\"\\])/\\$1/g;
- push(@res, qq($weak"$etag"));
- }
- elsif (s/^\s+// || !length) {
- push(@res, qq(W/"")) if $weak;
- }
- else {
- die "This should not happen: '$_'";
- }
- }
- }
- @res;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Headers/Util.pm b/Master/tlpkg/tlperl/lib/HTTP/Headers/Util.pm
deleted file mode 100644
index fdcf501b8e5..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Headers/Util.pm
+++ /dev/null
@@ -1,199 +0,0 @@
-package HTTP::Headers::Util;
-
-use strict;
-use vars qw($VERSION @ISA @EXPORT_OK);
-
-$VERSION = "6.03";
-
-require Exporter;
-@ISA=qw(Exporter);
-
-@EXPORT_OK=qw(split_header_words _split_header_words join_header_words);
-
-
-
-sub split_header_words {
- my @res = &_split_header_words;
- for my $arr (@res) {
- for (my $i = @$arr - 2; $i >= 0; $i -= 2) {
- $arr->[$i] = lc($arr->[$i]);
- }
- }
- return @res;
-}
-
-sub _split_header_words
-{
- my(@val) = @_;
- my @res;
- for (@val) {
- my @cur;
- while (length) {
- if (s/^\s*(=*[^\s=;,]+)//) { # 'token' or parameter 'attribute'
- push(@cur, $1);
- # a quoted value
- if (s/^\s*=\s*\"([^\"\\]*(?:\\.[^\"\\]*)*)\"//) {
- my $val = $1;
- $val =~ s/\\(.)/$1/g;
- push(@cur, $val);
- # some unquoted value
- }
- elsif (s/^\s*=\s*([^;,\s]*)//) {
- my $val = $1;
- $val =~ s/\s+$//;
- push(@cur, $val);
- # no value, a lone token
- }
- else {
- push(@cur, undef);
- }
- }
- elsif (s/^\s*,//) {
- push(@res, [@cur]) if @cur;
- @cur = ();
- }
- elsif (s/^\s*;// || s/^\s+//) {
- # continue
- }
- else {
- die "This should not happen: '$_'";
- }
- }
- push(@res, \@cur) if @cur;
- }
- @res;
-}
-
-
-sub join_header_words
-{
- @_ = ([@_]) if @_ && !ref($_[0]);
- my @res;
- for (@_) {
- my @cur = @$_;
- my @attr;
- while (@cur) {
- my $k = shift @cur;
- my $v = shift @cur;
- if (defined $v) {
- if ($v =~ /[\x00-\x20()<>@,;:\\\"\/\[\]?={}\x7F-\xFF]/ || !length($v)) {
- $v =~ s/([\"\\])/\\$1/g; # escape " and \
- $k .= qq(="$v");
- }
- else {
- # token
- $k .= "=$v";
- }
- }
- push(@attr, $k);
- }
- push(@res, join("; ", @attr)) if @attr;
- }
- join(", ", @res);
-}
-
-
-1;
-
-__END__
-
-=head1 NAME
-
-HTTP::Headers::Util - Header value parsing utility functions
-
-=head1 SYNOPSIS
-
- use HTTP::Headers::Util qw(split_header_words);
- @values = split_header_words($h->header("Content-Type"));
-
-=head1 DESCRIPTION
-
-This module provides a few functions that helps parsing and
-construction of valid HTTP header values. None of the functions are
-exported by default.
-
-The following functions are available:
-
-=over 4
-
-
-=item split_header_words( @header_values )
-
-This function will parse the header values given as argument into a
-list of anonymous arrays containing key/value pairs. The function
-knows how to deal with ",", ";" and "=" as well as quoted values after
-"=". A list of space separated tokens are parsed as if they were
-separated by ";".
-
-If the @header_values passed as argument contains multiple values,
-then they are treated as if they were a single value separated by
-comma ",".
-
-This means that this function is useful for parsing header fields that
-follow this syntax (BNF as from the HTTP/1.1 specification, but we relax
-the requirement for tokens).
-
- headers = #header
- header = (token | parameter) *( [";"] (token | parameter))
-
- token = 1*<any CHAR except CTLs or separators>
- separators = "(" | ")" | "<" | ">" | "@"
- | "," | ";" | ":" | "\" | <">
- | "/" | "[" | "]" | "?" | "="
- | "{" | "}" | SP | HT
-
- quoted-string = ( <"> *(qdtext | quoted-pair ) <"> )
- qdtext = <any TEXT except <">>
- quoted-pair = "\" CHAR
-
- parameter = attribute "=" value
- attribute = token
- value = token | quoted-string
-
-Each I<header> is represented by an anonymous array of key/value
-pairs. The keys will be all be forced to lower case.
-The value for a simple token (not part of a parameter) is C<undef>.
-Syntactically incorrect headers will not necessarily be parsed as you
-would want.
-
-This is easier to describe with some examples:
-
- split_header_words('foo="bar"; port="80,81"; DISCARD, BAR=baz');
- split_header_words('text/html; charset="iso-8859-1"');
- split_header_words('Basic realm="\\"foo\\\\bar\\""');
-
-will return
-
- [foo=>'bar', port=>'80,81', discard=> undef], [bar=>'baz' ]
- ['text/html' => undef, charset => 'iso-8859-1']
- [basic => undef, realm => "\"foo\\bar\""]
-
-If you don't want the function to convert tokens and attribute keys to
-lower case you can call it as C<_split_header_words> instead (with a
-leading underscore).
-
-=item join_header_words( @arrays )
-
-This will do the opposite of the conversion done by split_header_words().
-It takes a list of anonymous arrays as arguments (or a list of
-key/value pairs) and produces a single header value. Attribute values
-are quoted if needed.
-
-Example:
-
- join_header_words(["text/plain" => undef, charset => "iso-8859/1"]);
- join_header_words("text/plain" => undef, charset => "iso-8859/1");
-
-will both return the string:
-
- text/plain; charset="iso-8859/1"
-
-=back
-
-=head1 COPYRIGHT
-
-Copyright 1997-1998, Gisle Aas
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Message.pm b/Master/tlpkg/tlperl/lib/HTTP/Message.pm
deleted file mode 100644
index 3eeebfbfd3b..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Message.pm
+++ /dev/null
@@ -1,1106 +0,0 @@
-package HTTP::Message;
-
-use strict;
-use vars qw($VERSION $AUTOLOAD);
-$VERSION = "6.06";
-
-require HTTP::Headers;
-require Carp;
-
-my $CRLF = "\015\012"; # "\r\n" is not portable
-unless ($HTTP::URI_CLASS) {
- if ($ENV{PERL_HTTP_URI_CLASS}
- && $ENV{PERL_HTTP_URI_CLASS} =~ /^([\w:]+)$/) {
- $HTTP::URI_CLASS = $1;
- } else {
- $HTTP::URI_CLASS = "URI";
- }
-}
-eval "require $HTTP::URI_CLASS"; die $@ if $@;
-
-*_utf8_downgrade = defined(&utf8::downgrade) ?
- sub {
- utf8::downgrade($_[0], 1) or
- Carp::croak("HTTP::Message content must be bytes")
- }
- :
- sub {
- };
-
-sub new
-{
- my($class, $header, $content) = @_;
- if (defined $header) {
- Carp::croak("Bad header argument") unless ref $header;
- if (ref($header) eq "ARRAY") {
- $header = HTTP::Headers->new(@$header);
- }
- else {
- $header = $header->clone;
- }
- }
- else {
- $header = HTTP::Headers->new;
- }
- if (defined $content) {
- _utf8_downgrade($content);
- }
- else {
- $content = '';
- }
-
- bless {
- '_headers' => $header,
- '_content' => $content,
- }, $class;
-}
-
-
-sub parse
-{
- my($class, $str) = @_;
-
- my @hdr;
- while (1) {
- if ($str =~ s/^([^\s:]+)[ \t]*: ?(.*)\n?//) {
- push(@hdr, $1, $2);
- $hdr[-1] =~ s/\r\z//;
- }
- elsif (@hdr && $str =~ s/^([ \t].*)\n?//) {
- $hdr[-1] .= "\n$1";
- $hdr[-1] =~ s/\r\z//;
- }
- else {
- $str =~ s/^\r?\n//;
- last;
- }
- }
- local $HTTP::Headers::TRANSLATE_UNDERSCORE;
- new($class, \@hdr, $str);
-}
-
-
-sub clone
-{
- my $self = shift;
- my $clone = HTTP::Message->new($self->headers,
- $self->content);
- $clone->protocol($self->protocol);
- $clone;
-}
-
-
-sub clear {
- my $self = shift;
- $self->{_headers}->clear;
- $self->content("");
- delete $self->{_parts};
- return;
-}
-
-
-sub protocol {
- shift->_elem('_protocol', @_);
-}
-
-sub headers {
- my $self = shift;
-
- # recalculation of _content might change headers, so we
- # need to force it now
- $self->_content unless exists $self->{_content};
-
- $self->{_headers};
-}
-
-sub headers_as_string {
- shift->headers->as_string(@_);
-}
-
-
-sub content {
-
- my $self = $_[0];
- if (defined(wantarray)) {
- $self->_content unless exists $self->{_content};
- my $old = $self->{_content};
- $old = $$old if ref($old) eq "SCALAR";
- &_set_content if @_ > 1;
- return $old;
- }
-
- if (@_ > 1) {
- &_set_content;
- }
- else {
- Carp::carp("Useless content call in void context") if $^W;
- }
-}
-
-
-sub _set_content {
- my $self = $_[0];
- _utf8_downgrade($_[1]);
- if (!ref($_[1]) && ref($self->{_content}) eq "SCALAR") {
- ${$self->{_content}} = $_[1];
- }
- else {
- die "Can't set content to be a scalar reference" if ref($_[1]) eq "SCALAR";
- $self->{_content} = $_[1];
- delete $self->{_content_ref};
- }
- delete $self->{_parts} unless $_[2];
-}
-
-
-sub add_content
-{
- my $self = shift;
- $self->_content unless exists $self->{_content};
- my $chunkref = \$_[0];
- $chunkref = $$chunkref if ref($$chunkref); # legacy
-
- _utf8_downgrade($$chunkref);
-
- my $ref = ref($self->{_content});
- if (!$ref) {
- $self->{_content} .= $$chunkref;
- }
- elsif ($ref eq "SCALAR") {
- ${$self->{_content}} .= $$chunkref;
- }
- else {
- Carp::croak("Can't append to $ref content");
- }
- delete $self->{_parts};
-}
-
-sub add_content_utf8 {
- my($self, $buf) = @_;
- utf8::upgrade($buf);
- utf8::encode($buf);
- $self->add_content($buf);
-}
-
-sub content_ref
-{
- my $self = shift;
- $self->_content unless exists $self->{_content};
- delete $self->{_parts};
- my $old = \$self->{_content};
- my $old_cref = $self->{_content_ref};
- if (@_) {
- my $new = shift;
- Carp::croak("Setting content_ref to a non-ref") unless ref($new);
- delete $self->{_content}; # avoid modifying $$old
- $self->{_content} = $new;
- $self->{_content_ref}++;
- }
- $old = $$old if $old_cref;
- return $old;
-}
-
-
-sub content_charset
-{
- my $self = shift;
- if (my $charset = $self->content_type_charset) {
- return $charset;
- }
-
- # time to start guessing
- my $cref = $self->decoded_content(ref => 1, charset => "none");
-
- # Unicode BOM
- for ($$cref) {
- return "UTF-8" if /^\xEF\xBB\xBF/;
- return "UTF-32LE" if /^\xFF\xFE\x00\x00/;
- return "UTF-32BE" if /^\x00\x00\xFE\xFF/;
- return "UTF-16LE" if /^\xFF\xFE/;
- return "UTF-16BE" if /^\xFE\xFF/;
- }
-
- if ($self->content_is_xml) {
- # http://www.w3.org/TR/2006/REC-xml-20060816/#sec-guessing
- # XML entity not accompanied by external encoding information and not
- # in UTF-8 or UTF-16 encoding must begin with an XML encoding declaration,
- # in which the first characters must be '<?xml'
- for ($$cref) {
- return "UTF-32BE" if /^\x00\x00\x00</;
- return "UTF-32LE" if /^<\x00\x00\x00/;
- return "UTF-16BE" if /^(?:\x00\s)*\x00</;
- return "UTF-16LE" if /^(?:\s\x00)*<\x00/;
- if (/^\s*(<\?xml[^\x00]*?\?>)/) {
- if ($1 =~ /\sencoding\s*=\s*(["'])(.*?)\1/) {
- my $enc = $2;
- $enc =~ s/^\s+//; $enc =~ s/\s+\z//;
- return $enc if $enc;
- }
- }
- }
- return "UTF-8";
- }
- elsif ($self->content_is_html) {
- # look for <META charset="..."> or <META content="...">
- # http://dev.w3.org/html5/spec/Overview.html#determining-the-character-encoding
- require IO::HTML;
- # Use relaxed search to match previous versions of HTTP::Message:
- my $encoding = IO::HTML::find_charset_in($$cref, { encoding => 1,
- need_pragma => 0 });
- return $encoding->mime_name if $encoding;
- }
- elsif ($self->content_type eq "application/json") {
- for ($$cref) {
- # RFC 4627, ch 3
- return "UTF-32BE" if /^\x00\x00\x00./s;
- return "UTF-32LE" if /^.\x00\x00\x00/s;
- return "UTF-16BE" if /^\x00.\x00./s;
- return "UTF-16LE" if /^.\x00.\x00/s;
- return "UTF-8";
- }
- }
- if ($self->content_type =~ /^text\//) {
- for ($$cref) {
- if (length) {
- return "US-ASCII" unless /[\x80-\xFF]/;
- require Encode;
- eval {
- Encode::decode_utf8($_, Encode::FB_CROAK() | Encode::LEAVE_SRC());
- };
- return "UTF-8" unless $@;
- return "ISO-8859-1";
- }
- }
- }
-
- return undef;
-}
-
-
-sub decoded_content
-{
- my($self, %opt) = @_;
- my $content_ref;
- my $content_ref_iscopy;
-
- eval {
- $content_ref = $self->content_ref;
- die "Can't decode ref content" if ref($content_ref) ne "SCALAR";
-
- if (my $h = $self->header("Content-Encoding")) {
- $h =~ s/^\s+//;
- $h =~ s/\s+$//;
- for my $ce (reverse split(/\s*,\s*/, lc($h))) {
- next unless $ce;
- next if $ce eq "identity";
- if ($ce eq "gzip" || $ce eq "x-gzip") {
- require IO::Uncompress::Gunzip;
- my $output;
- IO::Uncompress::Gunzip::gunzip($content_ref, \$output, Transparent => 0)
- or die "Can't gunzip content: $IO::Uncompress::Gunzip::GunzipError";
- $content_ref = \$output;
- $content_ref_iscopy++;
- }
- elsif ($ce eq "x-bzip2" or $ce eq "bzip2") {
- require IO::Uncompress::Bunzip2;
- my $output;
- IO::Uncompress::Bunzip2::bunzip2($content_ref, \$output, Transparent => 0)
- or die "Can't bunzip content: $IO::Uncompress::Bunzip2::Bunzip2Error";
- $content_ref = \$output;
- $content_ref_iscopy++;
- }
- elsif ($ce eq "deflate") {
- require IO::Uncompress::Inflate;
- my $output;
- my $status = IO::Uncompress::Inflate::inflate($content_ref, \$output, Transparent => 0);
- my $error = $IO::Uncompress::Inflate::InflateError;
- unless ($status) {
- # "Content-Encoding: deflate" is supposed to mean the
- # "zlib" format of RFC 1950, but Microsoft got that
- # wrong, so some servers sends the raw compressed
- # "deflate" data. This tries to inflate this format.
- $output = undef;
- require IO::Uncompress::RawInflate;
- unless (IO::Uncompress::RawInflate::rawinflate($content_ref, \$output)) {
- $self->push_header("Client-Warning" =>
- "Could not raw inflate content: $IO::Uncompress::RawInflate::RawInflateError");
- $output = undef;
- }
- }
- die "Can't inflate content: $error" unless defined $output;
- $content_ref = \$output;
- $content_ref_iscopy++;
- }
- elsif ($ce eq "compress" || $ce eq "x-compress") {
- die "Can't uncompress content";
- }
- elsif ($ce eq "base64") { # not really C-T-E, but should be harmless
- require MIME::Base64;
- $content_ref = \MIME::Base64::decode($$content_ref);
- $content_ref_iscopy++;
- }
- elsif ($ce eq "quoted-printable") { # not really C-T-E, but should be harmless
- require MIME::QuotedPrint;
- $content_ref = \MIME::QuotedPrint::decode($$content_ref);
- $content_ref_iscopy++;
- }
- else {
- die "Don't know how to decode Content-Encoding '$ce'";
- }
- }
- }
-
- if ($self->content_is_text || (my $is_xml = $self->content_is_xml)) {
- my $charset = lc(
- $opt{charset} ||
- $self->content_type_charset ||
- $opt{default_charset} ||
- $self->content_charset ||
- "ISO-8859-1"
- );
- if ($charset eq "none") {
- # leave it asis
- }
- elsif ($charset eq "us-ascii" || $charset eq "iso-8859-1") {
- if ($$content_ref =~ /[^\x00-\x7F]/ && defined &utf8::upgrade) {
- unless ($content_ref_iscopy) {
- my $copy = $$content_ref;
- $content_ref = \$copy;
- $content_ref_iscopy++;
- }
- utf8::upgrade($$content_ref);
- }
- }
- else {
- require Encode;
- eval {
- $content_ref = \Encode::decode($charset, $$content_ref,
- ($opt{charset_strict} ? Encode::FB_CROAK() : 0) | Encode::LEAVE_SRC());
- };
- if ($@) {
- my $retried;
- if ($@ =~ /^Unknown encoding/) {
- my $alt_charset = lc($opt{alt_charset} || "");
- if ($alt_charset && $charset ne $alt_charset) {
- # Retry decoding with the alternative charset
- $content_ref = \Encode::decode($alt_charset, $$content_ref,
- ($opt{charset_strict} ? Encode::FB_CROAK() : 0) | Encode::LEAVE_SRC())
- unless $alt_charset eq "none";
- $retried++;
- }
- }
- die unless $retried;
- }
- die "Encode::decode() returned undef improperly" unless defined $$content_ref;
- if ($is_xml) {
- # Get rid of the XML encoding declaration if present
- $$content_ref =~ s/^\x{FEFF}//;
- if ($$content_ref =~ /^(\s*<\?xml[^\x00]*?\?>)/) {
- substr($$content_ref, 0, length($1)) =~ s/\sencoding\s*=\s*(["']).*?\1//;
- }
- }
- }
- }
- };
- if ($@) {
- Carp::croak($@) if $opt{raise_error};
- return undef;
- }
-
- return $opt{ref} ? $content_ref : $$content_ref;
-}
-
-
-sub decodable
-{
- # should match the Content-Encoding values that decoded_content can deal with
- my $self = shift;
- my @enc;
- # XXX preferably we should determine if the modules are available without loading
- # them here
- eval {
- require IO::Uncompress::Gunzip;
- push(@enc, "gzip", "x-gzip");
- };
- eval {
- require IO::Uncompress::Inflate;
- require IO::Uncompress::RawInflate;
- push(@enc, "deflate");
- };
- eval {
- require IO::Uncompress::Bunzip2;
- push(@enc, "x-bzip2");
- };
- # we don't care about announcing the 'identity', 'base64' and
- # 'quoted-printable' stuff
- return wantarray ? @enc : join(", ", @enc);
-}
-
-
-sub decode
-{
- my $self = shift;
- return 1 unless $self->header("Content-Encoding");
- if (defined(my $content = $self->decoded_content(charset => "none"))) {
- $self->remove_header("Content-Encoding", "Content-Length", "Content-MD5");
- $self->content($content);
- return 1;
- }
- return 0;
-}
-
-
-sub encode
-{
- my($self, @enc) = @_;
-
- Carp::croak("Can't encode multipart/* messages") if $self->content_type =~ m,^multipart/,;
- Carp::croak("Can't encode message/* messages") if $self->content_type =~ m,^message/,;
-
- return 1 unless @enc; # nothing to do
-
- my $content = $self->content;
- for my $encoding (@enc) {
- if ($encoding eq "identity") {
- # nothing to do
- }
- elsif ($encoding eq "base64") {
- require MIME::Base64;
- $content = MIME::Base64::encode($content);
- }
- elsif ($encoding eq "gzip" || $encoding eq "x-gzip") {
- require IO::Compress::Gzip;
- my $output;
- IO::Compress::Gzip::gzip(\$content, \$output, Minimal => 1)
- or die "Can't gzip content: $IO::Compress::Gzip::GzipError";
- $content = $output;
- }
- elsif ($encoding eq "deflate") {
- require IO::Compress::Deflate;
- my $output;
- IO::Compress::Deflate::deflate(\$content, \$output)
- or die "Can't deflate content: $IO::Compress::Deflate::DeflateError";
- $content = $output;
- }
- elsif ($encoding eq "x-bzip2") {
- require IO::Compress::Bzip2;
- my $output;
- IO::Compress::Bzip2::bzip2(\$content, \$output)
- or die "Can't bzip2 content: $IO::Compress::Bzip2::Bzip2Error";
- $content = $output;
- }
- elsif ($encoding eq "rot13") { # for the fun of it
- $content =~ tr/A-Za-z/N-ZA-Mn-za-m/;
- }
- else {
- return 0;
- }
- }
- my $h = $self->header("Content-Encoding");
- unshift(@enc, $h) if $h;
- $self->header("Content-Encoding", join(", ", @enc));
- $self->remove_header("Content-Length", "Content-MD5");
- $self->content($content);
- return 1;
-}
-
-
-sub as_string
-{
- my($self, $eol) = @_;
- $eol = "\n" unless defined $eol;
-
- # The calculation of content might update the headers
- # so we need to do that first.
- my $content = $self->content;
-
- return join("", $self->{'_headers'}->as_string($eol),
- $eol,
- $content,
- (@_ == 1 && length($content) &&
- $content !~ /\n\z/) ? "\n" : "",
- );
-}
-
-
-sub dump
-{
- my($self, %opt) = @_;
- my $content = $self->content;
- my $chopped = 0;
- if (!ref($content)) {
- my $maxlen = $opt{maxlength};
- $maxlen = 512 unless defined($maxlen);
- if ($maxlen && length($content) > $maxlen * 1.1 + 3) {
- $chopped = length($content) - $maxlen;
- $content = substr($content, 0, $maxlen) . "...";
- }
-
- $content =~ s/\\/\\\\/g;
- $content =~ s/\t/\\t/g;
- $content =~ s/\r/\\r/g;
-
- # no need for 3 digits in escape for these
- $content =~ s/([\0-\11\13-\037])(?!\d)/sprintf('\\%o',ord($1))/eg;
-
- $content =~ s/([\0-\11\13-\037\177-\377])/sprintf('\\x%02X',ord($1))/eg;
- $content =~ s/([^\12\040-\176])/sprintf('\\x{%X}',ord($1))/eg;
-
- # remaining whitespace
- $content =~ s/( +)\n/("\\40" x length($1)) . "\n"/eg;
- $content =~ s/(\n+)\n/("\\n" x length($1)) . "\n"/eg;
- $content =~ s/\n\z/\\n/;
-
- my $no_content = $opt{no_content};
- $no_content = "(no content)" unless defined $no_content;
- if ($content eq $no_content) {
- # escape our $no_content marker
- $content =~ s/^(.)/sprintf('\\x%02X',ord($1))/eg;
- }
- elsif ($content eq "") {
- $content = $no_content;
- }
- }
-
- my @dump;
- push(@dump, $opt{preheader}) if $opt{preheader};
- push(@dump, $self->{_headers}->as_string, $content);
- push(@dump, "(+ $chopped more bytes not shown)") if $chopped;
-
- my $dump = join("\n", @dump, "");
- $dump =~ s/^/$opt{prefix}/gm if $opt{prefix};
-
- print $dump unless defined wantarray;
- return $dump;
-}
-
-
-sub parts {
- my $self = shift;
- if (defined(wantarray) && (!exists $self->{_parts} || ref($self->{_content}) eq "SCALAR")) {
- $self->_parts;
- }
- my $old = $self->{_parts};
- if (@_) {
- my @parts = map { ref($_) eq 'ARRAY' ? @$_ : $_ } @_;
- my $ct = $self->content_type || "";
- if ($ct =~ m,^message/,) {
- Carp::croak("Only one part allowed for $ct content")
- if @parts > 1;
- }
- elsif ($ct !~ m,^multipart/,) {
- $self->remove_content_headers;
- $self->content_type("multipart/mixed");
- }
- $self->{_parts} = \@parts;
- _stale_content($self);
- }
- return @$old if wantarray;
- return $old->[0];
-}
-
-sub add_part {
- my $self = shift;
- if (($self->content_type || "") !~ m,^multipart/,) {
- my $p = HTTP::Message->new($self->remove_content_headers,
- $self->content(""));
- $self->content_type("multipart/mixed");
- $self->{_parts} = [];
- if ($p->headers->header_field_names || $p->content ne "") {
- push(@{$self->{_parts}}, $p);
- }
- }
- elsif (!exists $self->{_parts} || ref($self->{_content}) eq "SCALAR") {
- $self->_parts;
- }
-
- push(@{$self->{_parts}}, @_);
- _stale_content($self);
- return;
-}
-
-sub _stale_content {
- my $self = shift;
- if (ref($self->{_content}) eq "SCALAR") {
- # must recalculate now
- $self->_content;
- }
- else {
- # just invalidate cache
- delete $self->{_content};
- delete $self->{_content_ref};
- }
-}
-
-
-# delegate all other method calls the the headers object.
-sub AUTOLOAD
-{
- my $method = substr($AUTOLOAD, rindex($AUTOLOAD, '::')+2);
-
- # We create the function here so that it will not need to be
- # autoloaded the next time.
- no strict 'refs';
- *$method = sub { local $Carp::Internal{+__PACKAGE__} = 1; shift->headers->$method(@_) };
- goto &$method;
-}
-
-
-sub DESTROY {} # avoid AUTOLOADing it
-
-
-# Private method to access members in %$self
-sub _elem
-{
- my $self = shift;
- my $elem = shift;
- my $old = $self->{$elem};
- $self->{$elem} = $_[0] if @_;
- return $old;
-}
-
-
-# Create private _parts attribute from current _content
-sub _parts {
- my $self = shift;
- my $ct = $self->content_type;
- if ($ct =~ m,^multipart/,) {
- require HTTP::Headers::Util;
- my @h = HTTP::Headers::Util::split_header_words($self->header("Content-Type"));
- die "Assert" unless @h;
- my %h = @{$h[0]};
- if (defined(my $b = $h{boundary})) {
- my $str = $self->content;
- $str =~ s/\r?\n--\Q$b\E--.*//s;
- if ($str =~ s/(^|.*?\r?\n)--\Q$b\E\r?\n//s) {
- $self->{_parts} = [map HTTP::Message->parse($_),
- split(/\r?\n--\Q$b\E\r?\n/, $str)]
- }
- }
- }
- elsif ($ct eq "message/http") {
- require HTTP::Request;
- require HTTP::Response;
- my $content = $self->content;
- my $class = ($content =~ m,^(HTTP/.*)\n,) ?
- "HTTP::Response" : "HTTP::Request";
- $self->{_parts} = [$class->parse($content)];
- }
- elsif ($ct =~ m,^message/,) {
- $self->{_parts} = [ HTTP::Message->parse($self->content) ];
- }
-
- $self->{_parts} ||= [];
-}
-
-
-# Create private _content attribute from current _parts
-sub _content {
- my $self = shift;
- my $ct = $self->{_headers}->header("Content-Type") || "multipart/mixed";
- if ($ct =~ m,^\s*message/,i) {
- _set_content($self, $self->{_parts}[0]->as_string($CRLF), 1);
- return;
- }
-
- require HTTP::Headers::Util;
- my @v = HTTP::Headers::Util::split_header_words($ct);
- Carp::carp("Multiple Content-Type headers") if @v > 1;
- @v = @{$v[0]};
-
- my $boundary;
- my $boundary_index;
- for (my @tmp = @v; @tmp;) {
- my($k, $v) = splice(@tmp, 0, 2);
- if ($k eq "boundary") {
- $boundary = $v;
- $boundary_index = @v - @tmp - 1;
- last;
- }
- }
-
- my @parts = map $_->as_string($CRLF), @{$self->{_parts}};
-
- my $bno = 0;
- $boundary = _boundary() unless defined $boundary;
- CHECK_BOUNDARY:
- {
- for (@parts) {
- if (index($_, $boundary) >= 0) {
- # must have a better boundary
- $boundary = _boundary(++$bno);
- redo CHECK_BOUNDARY;
- }
- }
- }
-
- if ($boundary_index) {
- $v[$boundary_index] = $boundary;
- }
- else {
- push(@v, boundary => $boundary);
- }
-
- $ct = HTTP::Headers::Util::join_header_words(@v);
- $self->{_headers}->header("Content-Type", $ct);
-
- _set_content($self, "--$boundary$CRLF" .
- join("$CRLF--$boundary$CRLF", @parts) .
- "$CRLF--$boundary--$CRLF",
- 1);
-}
-
-
-sub _boundary
-{
- my $size = shift || return "xYzZY";
- require MIME::Base64;
- my $b = MIME::Base64::encode(join("", map chr(rand(256)), 1..$size*3), "");
- $b =~ s/[\W]/X/g; # ensure alnum only
- $b;
-}
-
-
-1;
-
-
-__END__
-
-=head1 NAME
-
-HTTP::Message - HTTP style message (base class)
-
-=head1 SYNOPSIS
-
- use base 'HTTP::Message';
-
-=head1 DESCRIPTION
-
-An C<HTTP::Message> object contains some headers and a content body.
-The following methods are available:
-
-=over 4
-
-=item $mess = HTTP::Message->new
-
-=item $mess = HTTP::Message->new( $headers )
-
-=item $mess = HTTP::Message->new( $headers, $content )
-
-This constructs a new message object. Normally you would want
-construct C<HTTP::Request> or C<HTTP::Response> objects instead.
-
-The optional $header argument should be a reference to an
-C<HTTP::Headers> object or a plain array reference of key/value pairs.
-If an C<HTTP::Headers> object is provided then a copy of it will be
-embedded into the constructed message, i.e. it will not be owned and
-can be modified afterwards without affecting the message.
-
-The optional $content argument should be a string of bytes.
-
-=item $mess = HTTP::Message->parse( $str )
-
-This constructs a new message object by parsing the given string.
-
-=item $mess->headers
-
-Returns the embedded C<HTTP::Headers> object.
-
-=item $mess->headers_as_string
-
-=item $mess->headers_as_string( $eol )
-
-Call the as_string() method for the headers in the
-message. This will be the same as
-
- $mess->headers->as_string
-
-but it will make your program a whole character shorter :-)
-
-=item $mess->content
-
-=item $mess->content( $bytes )
-
-The content() method sets the raw content if an argument is given. If no
-argument is given the content is not touched. In either case the
-original raw content is returned.
-
-Note that the content should be a string of bytes. Strings in perl
-can contain characters outside the range of a byte. The C<Encode>
-module can be used to turn such strings into a string of bytes.
-
-=item $mess->add_content( $bytes )
-
-The add_content() methods appends more data bytes to the end of the
-current content buffer.
-
-=item $mess->add_content_utf8( $string )
-
-The add_content_utf8() method appends the UTF-8 bytes representing the
-string to the end of the current content buffer.
-
-=item $mess->content_ref
-
-=item $mess->content_ref( \$bytes )
-
-The content_ref() method will return a reference to content buffer string.
-It can be more efficient to access the content this way if the content
-is huge, and it can even be used for direct manipulation of the content,
-for instance:
-
- ${$res->content_ref} =~ s/\bfoo\b/bar/g;
-
-This example would modify the content buffer in-place.
-
-If an argument is passed it will setup the content to reference some
-external source. The content() and add_content() methods
-will automatically dereference scalar references passed this way. For
-other references content() will return the reference itself and
-add_content() will refuse to do anything.
-
-=item $mess->content_charset
-
-This returns the charset used by the content in the message. The
-charset is either found as the charset attribute of the
-C<Content-Type> header or by guessing.
-
-See L<http://www.w3.org/TR/REC-html40/charset.html#spec-char-encoding>
-for details about how charset is determined.
-
-=item $mess->decoded_content( %options )
-
-Returns the content with any C<Content-Encoding> undone and for textual content
-the raw content encoded to Perl's Unicode strings. If the C<Content-Encoding>
-or C<charset> of the message is unknown this method will fail by returning
-C<undef>.
-
-The following options can be specified.
-
-=over
-
-=item C<charset>
-
-This override the charset parameter for text content. The value
-C<none> can used to suppress decoding of the charset.
-
-=item C<default_charset>
-
-This override the default charset guessed by content_charset() or
-if that fails "ISO-8859-1".
-
-=item C<alt_charset>
-
-If decoding fails because the charset specified in the Content-Type header
-isn't recognized by Perl's Encode module, then try decoding using this charset
-instead of failing. The C<alt_charset> might be specified as C<none> to simply
-return the string without any decoding of charset as alternative.
-
-=item C<charset_strict>
-
-Abort decoding if malformed characters is found in the content. By
-default you get the substitution character ("\x{FFFD}") in place of
-malformed characters.
-
-=item C<raise_error>
-
-If TRUE then raise an exception if not able to decode content. Reason
-might be that the specified C<Content-Encoding> or C<charset> is not
-supported. If this option is FALSE, then decoded_content() will return
-C<undef> on errors, but will still set $@.
-
-=item C<ref>
-
-If TRUE then a reference to decoded content is returned. This might
-be more efficient in cases where the decoded content is identical to
-the raw content as no data copying is required in this case.
-
-=back
-
-=item $mess->decodable
-
-=item HTTP::Message::decodable()
-
-This returns the encoding identifiers that decoded_content() can
-process. In scalar context returns a comma separated string of
-identifiers.
-
-This value is suitable for initializing the C<Accept-Encoding> request
-header field.
-
-=item $mess->decode
-
-This method tries to replace the content of the message with the
-decoded version and removes the C<Content-Encoding> header. Returns
-TRUE if successful and FALSE if not.
-
-If the message does not have a C<Content-Encoding> header this method
-does nothing and returns TRUE.
-
-Note that the content of the message is still bytes after this method
-has been called and you still need to call decoded_content() if you
-want to process its content as a string.
-
-=item $mess->encode( $encoding, ... )
-
-Apply the given encodings to the content of the message. Returns TRUE
-if successful. The "identity" (non-)encoding is always supported; other
-currently supported encodings, subject to availability of required
-additional modules, are "gzip", "deflate", "x-bzip2" and "base64".
-
-A successful call to this function will set the C<Content-Encoding>
-header.
-
-Note that C<multipart/*> or C<message/*> messages can't be encoded and
-this method will croak if you try.
-
-=item $mess->parts
-
-=item $mess->parts( @parts )
-
-=item $mess->parts( \@parts )
-
-Messages can be composite, i.e. contain other messages. The composite
-messages have a content type of C<multipart/*> or C<message/*>. This
-method give access to the contained messages.
-
-The argumentless form will return a list of C<HTTP::Message> objects.
-If the content type of $msg is not C<multipart/*> or C<message/*> then
-this will return the empty list. In scalar context only the first
-object is returned. The returned message parts should be regarded as
-read-only (future versions of this library might make it possible
-to modify the parent by modifying the parts).
-
-If the content type of $msg is C<message/*> then there will only be
-one part returned.
-
-If the content type is C<message/http>, then the return value will be
-either an C<HTTP::Request> or an C<HTTP::Response> object.
-
-If a @parts argument is given, then the content of the message will be
-modified. The array reference form is provided so that an empty list
-can be provided. The @parts array should contain C<HTTP::Message>
-objects. The @parts objects are owned by $mess after this call and
-should not be modified or made part of other messages.
-
-When updating the message with this method and the old content type of
-$mess is not C<multipart/*> or C<message/*>, then the content type is
-set to C<multipart/mixed> and all other content headers are cleared.
-
-This method will croak if the content type is C<message/*> and more
-than one part is provided.
-
-=item $mess->add_part( $part )
-
-This will add a part to a message. The $part argument should be
-another C<HTTP::Message> object. If the previous content type of
-$mess is not C<multipart/*> then the old content (together with all
-content headers) will be made part #1 and the content type made
-C<multipart/mixed> before the new part is added. The $part object is
-owned by $mess after this call and should not be modified or made part
-of other messages.
-
-There is no return value.
-
-=item $mess->clear
-
-Will clear the headers and set the content to the empty string. There
-is no return value
-
-=item $mess->protocol
-
-=item $mess->protocol( $proto )
-
-Sets the HTTP protocol used for the message. The protocol() is a string
-like C<HTTP/1.0> or C<HTTP/1.1>.
-
-=item $mess->clone
-
-Returns a copy of the message object.
-
-=item $mess->as_string
-
-=item $mess->as_string( $eol )
-
-Returns the message formatted as a single string.
-
-The optional $eol parameter specifies the line ending sequence to use.
-The default is "\n". If no $eol is given then as_string will ensure
-that the returned string is newline terminated (even when the message
-content is not). No extra newline is appended if an explicit $eol is
-passed.
-
-=item $mess->dump( %opt )
-
-Returns the message formatted as a string. In void context print the string.
-
-This differs from C<< $mess->as_string >> in that it escapes the bytes
-of the content so that it's safe to print them and it limits how much
-content to print. The escapes syntax used is the same as for Perl's
-double quoted strings. If there is no content the string "(no
-content)" is shown in its place.
-
-Options to influence the output can be passed as key/value pairs. The
-following options are recognized:
-
-=over
-
-=item maxlength => $num
-
-How much of the content to show. The default is 512. Set this to 0
-for unlimited.
-
-If the content is longer then the string is chopped at the limit and
-the string "...\n(### more bytes not shown)" appended.
-
-=item no_content => $str
-
-Replaces the "(no content)" marker.
-
-=item prefix => $str
-
-A string that will be prefixed to each line of the dump.
-
-=back
-
-=back
-
-All methods unknown to C<HTTP::Message> itself are delegated to the
-C<HTTP::Headers> object that is part of every message. This allows
-convenient access to these methods. Refer to L<HTTP::Headers> for
-details of these methods:
-
- $mess->header( $field => $val )
- $mess->push_header( $field => $val )
- $mess->init_header( $field => $val )
- $mess->remove_header( $field )
- $mess->remove_content_headers
- $mess->header_field_names
- $mess->scan( \&doit )
-
- $mess->date
- $mess->expires
- $mess->if_modified_since
- $mess->if_unmodified_since
- $mess->last_modified
- $mess->content_type
- $mess->content_encoding
- $mess->content_length
- $mess->content_language
- $mess->title
- $mess->user_agent
- $mess->server
- $mess->from
- $mess->referer
- $mess->www_authenticate
- $mess->authorization
- $mess->proxy_authorization
- $mess->authorization_basic
- $mess->proxy_authorization_basic
-
-=head1 COPYRIGHT
-
-Copyright 1995-2004 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Negotiate.pm b/Master/tlpkg/tlperl/lib/HTTP/Negotiate.pm
deleted file mode 100644
index d293ce86d97..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Negotiate.pm
+++ /dev/null
@@ -1,528 +0,0 @@
-package HTTP::Negotiate;
-
-$VERSION = "6.01";
-sub Version { $VERSION; }
-
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(choose);
-
-require HTTP::Headers;
-
-$DEBUG = 0;
-
-sub choose ($;$)
-{
- my($variants, $request) = @_;
- my(%accept);
-
- unless (defined $request) {
- # Create a request object from the CGI environment variables
- $request = HTTP::Headers->new;
- $request->header('Accept', $ENV{HTTP_ACCEPT})
- if $ENV{HTTP_ACCEPT};
- $request->header('Accept-Charset', $ENV{HTTP_ACCEPT_CHARSET})
- if $ENV{HTTP_ACCEPT_CHARSET};
- $request->header('Accept-Encoding', $ENV{HTTP_ACCEPT_ENCODING})
- if $ENV{HTTP_ACCEPT_ENCODING};
- $request->header('Accept-Language', $ENV{HTTP_ACCEPT_LANGUAGE})
- if $ENV{HTTP_ACCEPT_LANGUAGE};
- }
-
- # Get all Accept values from the request. Build a hash initialized
- # like this:
- #
- # %accept = ( type => { 'audio/*' => { q => 0.2, mbx => 20000 },
- # 'audio/basic' => { q => 1 },
- # },
- # language => { 'no' => { q => 1 },
- # }
- # );
-
- $request->scan(sub {
- my($key, $val) = @_;
-
- my $type;
- if ($key =~ s/^Accept-//) {
- $type = lc($key);
- }
- elsif ($key eq "Accept") {
- $type = "type";
- }
- else {
- return;
- }
-
- $val =~ s/\s+//g;
- my $default_q = 1;
- for my $name (split(/,/, $val)) {
- my(%param, $param);
- if ($name =~ s/;(.*)//) {
- for $param (split(/;/, $1)) {
- my ($pk, $pv) = split(/=/, $param, 2);
- $param{lc $pk} = $pv;
- }
- }
- $name = lc $name;
- if (defined $param{'q'}) {
- $param{'q'} = 1 if $param{'q'} > 1;
- $param{'q'} = 0 if $param{'q'} < 0;
- }
- else {
- $param{'q'} = $default_q;
-
- # This makes sure that the first ones are slightly better off
- # and therefore more likely to be chosen.
- $default_q -= 0.0001;
- }
- $accept{$type}{$name} = \%param;
- }
- });
-
- # Check if any of the variants specify a language. We do this
- # because it influences how we treat those without (they default to
- # 0.5 instead of 1).
- my $any_lang = 0;
- for $var (@$variants) {
- if ($var->[5]) {
- $any_lang = 1;
- last;
- }
- }
-
- if ($DEBUG) {
- print "Negotiation parameters in the request\n";
- for $type (keys %accept) {
- print " $type:\n";
- for $name (keys %{$accept{$type}}) {
- print " $name\n";
- for $pv (keys %{$accept{$type}{$name}}) {
- print " $pv = $accept{$type}{$name}{$pv}\n";
- }
- }
- }
- }
-
- my @Q = (); # This is where we collect the results of the
- # quality calculations
-
- # Calculate quality for all the variants that are available.
- for (@$variants) {
- my($id, $qs, $ct, $enc, $cs, $lang, $bs) = @$_;
- $qs = 1 unless defined $qs;
- $ct = '' unless defined $ct;
- $bs = 0 unless defined $bs;
- $lang = lc($lang) if $lang; # lg tags are always case-insensitive
- if ($DEBUG) {
- print "\nEvaluating $id (ct='$ct')\n";
- printf " qs = %.3f\n", $qs;
- print " enc = $enc\n" if $enc && !ref($enc);
- print " enc = @$enc\n" if $enc && ref($enc);
- print " cs = $cs\n" if $cs;
- print " lang = $lang\n" if $lang;
- print " bs = $bs\n" if $bs;
- }
-
- # Calculate encoding quality
- my $qe = 1;
- # If the variant has no assigned Content-Encoding, or if no
- # Accept-Encoding field is present, then the value assigned
- # is "qe=1". If *all* of the variant's content encodings
- # are listed in the Accept-Encoding field, then the value
- # assigned is "qw=1". If *any* of the variant's content
- # encodings are not listed in the provided Accept-Encoding
- # field, then the value assigned is "qe=0"
- if (exists $accept{'encoding'} && $enc) {
- my @enc = ref($enc) ? @$enc : ($enc);
- for (@enc) {
- print "Is encoding $_ accepted? " if $DEBUG;
- unless(exists $accept{'encoding'}{$_}) {
- print "no\n" if $DEBUG;
- $qe = 0;
- last;
- }
- else {
- print "yes\n" if $DEBUG;
- }
- }
- }
-
- # Calculate charset quality
- my $qc = 1;
- # If the variant's media-type has no charset parameter,
- # or the variant's charset is US-ASCII, or if no Accept-Charset
- # field is present, then the value assigned is "qc=1". If the
- # variant's charset is listed in the Accept-Charset field,
- # then the value assigned is "qc=1. Otherwise, if the variant's
- # charset is not listed in the provided Accept-Encoding field,
- # then the value assigned is "qc=0".
- if (exists $accept{'charset'} && $cs && $cs ne 'us-ascii' ) {
- $qc = 0 unless $accept{'charset'}{$cs};
- }
-
- # Calculate language quality
- my $ql = 1;
- if ($lang && exists $accept{'language'}) {
- my @lang = ref($lang) ? @$lang : ($lang);
- # If any of the variant's content languages are listed
- # in the Accept-Language field, the the value assigned is
- # the largest of the "q" parameter values for those language
- # tags.
- my $q = undef;
- for (@lang) {
- next unless exists $accept{'language'}{$_};
- my $this_q = $accept{'language'}{$_}{'q'};
- $q = $this_q unless defined $q;
- $q = $this_q if $this_q > $q;
- }
- if(defined $q) {
- $DEBUG and print " -- Exact language match at q=$q\n";
- }
- else {
- # If there was no exact match and at least one of
- # the Accept-Language field values is a complete
- # subtag prefix of the content language tag(s), then
- # the "q" parameter value of the largest matching
- # prefix is used.
- $DEBUG and print " -- No exact language match\n";
- my $selected = undef;
- for $al (keys %{ $accept{'language'} }) {
- if (index($al, "$lang-") == 0) {
- # $lang starting with $al isn't enough, or else
- # Accept-Language: hu (Hungarian) would seem
- # to accept a document in hup (Hupa)
- $DEBUG and print " -- $al ISA $lang\n";
- $selected = $al unless defined $selected;
- $selected = $al if length($al) > length($selected);
- }
- else {
- $DEBUG and print " -- $lang isn't a $al\n";
- }
- }
- $q = $accept{'language'}{$selected}{'q'} if $selected;
-
- # If none of the variant's content language tags or
- # tag prefixes are listed in the provided
- # Accept-Language field, then the value assigned
- # is "ql=0.001"
- $q = 0.001 unless defined $q;
- }
- $ql = $q;
- }
- else {
- $ql = 0.5 if $any_lang && exists $accept{'language'};
- }
-
- my $q = 1;
- my $mbx = undef;
- # If no Accept field is given, then the value assigned is "q=1".
- # If at least one listed media range matches the variant's media
- # type, then the "q" parameter value assigned to the most specific
- # of those matched is used (e.g. "text/html;version=3.0" is more
- # specific than "text/html", which is more specific than "text/*",
- # which in turn is more specific than "*/*"). If not media range
- # in the provided Accept field matches the variant's media type,
- # then the value assigned is "q=0".
- if (exists $accept{'type'} && $ct) {
- # First we clean up our content-type
- $ct =~ s/\s+//g;
- my $params = "";
- $params = $1 if $ct =~ s/;(.*)//;
- my($type, $subtype) = split("/", $ct, 2);
- my %param = ();
- for $param (split(/;/, $params)) {
- my($pk,$pv) = split(/=/, $param, 2);
- $param{$pk} = $pv;
- }
-
- my $sel_q = undef;
- my $sel_mbx = undef;
- my $sel_specificness = 0;
-
- ACCEPT_TYPE:
- for $at (keys %{ $accept{'type'} }) {
- print "Consider $at...\n" if $DEBUG;
- my($at_type, $at_subtype) = split("/", $at, 2);
- # Is it a match on the type
- next if $at_type ne '*' && $at_type ne $type;
- next if $at_subtype ne '*' && $at_subtype ne $subtype;
- my $specificness = 0;
- $specificness++ if $at_type ne '*';
- $specificness++ if $at_subtype ne '*';
- # Let's see if content-type parameters also match
- while (($pk, $pv) = each %param) {
- print "Check if $pk = $pv is true\n" if $DEBUG;
- next unless exists $accept{'type'}{$at}{$pk};
- next ACCEPT_TYPE
- unless $accept{'type'}{$at}{$pk} eq $pv;
- print "yes it is!!\n" if $DEBUG;
- $specificness++;
- }
- print "Hurray, type match with specificness = $specificness\n"
- if $DEBUG;
-
- if (!defined($sel_q) || $sel_specificness < $specificness) {
- $sel_q = $accept{'type'}{$at}{'q'};
- $sel_mbx = $accept{'type'}{$at}{'mbx'};
- $sel_specificness = $specificness;
- }
- }
- $q = $sel_q || 0;
- $mbx = $sel_mbx;
- }
-
- my $Q;
- if (!defined($mbx) || $mbx >= $bs) {
- $Q = $qs * $qe * $qc * $ql * $q;
- }
- else {
- $Q = 0;
- print "Variant's size is too large ==> Q=0\n" if $DEBUG;
- }
-
- if ($DEBUG) {
- $mbx = "undef" unless defined $mbx;
- printf "Q=%.4f", $Q;
- print " (q=$q, mbx=$mbx, qe=$qe, qc=$qc, ql=$ql, qs=$qs)\n";
- }
-
- push(@Q, [$id, $Q, $bs]);
- }
-
-
- @Q = sort { $b->[1] <=> $a->[1] || $a->[2] <=> $b->[2] } @Q;
-
- return @Q if wantarray;
- return undef unless @Q;
- return undef if $Q[0][1] == 0;
- $Q[0][0];
-}
-
-1;
-
-__END__
-
-
-=head1 NAME
-
-HTTP::Negotiate - choose a variant to serve
-
-=head1 SYNOPSIS
-
- use HTTP::Negotiate qw(choose);
-
- # ID QS Content-Type Encoding Char-Set Lang Size
- $variants =
- [['var1', 1.000, 'text/html', undef, 'iso-8859-1', 'en', 3000],
- ['var2', 0.950, 'text/plain', 'gzip', 'us-ascii', 'no', 400],
- ['var3', 0.3, 'image/gif', undef, undef, undef, 43555],
- ];
-
- @preferred = choose($variants, $request_headers);
- $the_one = choose($variants);
-
-=head1 DESCRIPTION
-
-This module provides a complete implementation of the HTTP content
-negotiation algorithm specified in F<draft-ietf-http-v11-spec-00.ps>
-chapter 12. Content negotiation allows for the selection of a
-preferred content representation based upon attributes of the
-negotiable variants and the value of the various Accept* header fields
-in the request.
-
-The variants are ordered by preference by calling the function
-choose().
-
-The first parameter is reference to an array of the variants to
-choose among.
-Each element in this array is an array with the values [$id, $qs,
-$content_type, $content_encoding, $charset, $content_language,
-$content_length] whose meanings are described
-below. The $content_encoding and $content_language can be either a
-single scalar value or an array reference if there are several values.
-
-The second optional parameter is either a HTTP::Headers or a HTTP::Request
-object which is searched for "Accept*" headers. If this
-parameter is missing, then the accept specification is initialized
-from the CGI environment variables HTTP_ACCEPT, HTTP_ACCEPT_CHARSET,
-HTTP_ACCEPT_ENCODING and HTTP_ACCEPT_LANGUAGE.
-
-In an array context, choose() returns a list of [variant
-identifier, calculated quality, size] tuples. The values are sorted by
-quality, highest quality first. If the calculated quality is the same
-for two variants, then they are sorted by size (smallest first). I<E.g.>:
-
- (['var1', 1, 2000], ['var2', 0.3, 512], ['var3', 0.3, 1024]);
-
-Note that also zero quality variants are included in the return list
-even if these should never be served to the client.
-
-In a scalar context, it returns the identifier of the variant with the
-highest score or C<undef> if none have non-zero quality.
-
-If the $HTTP::Negotiate::DEBUG variable is set to TRUE, then a lot of
-noise is generated on STDOUT during evaluation of choose().
-
-=head1 VARIANTS
-
-A variant is described by a list of the following values. If the
-attribute does not make sense or is unknown for a variant, then use
-C<undef> instead.
-
-=over 3
-
-=item identifier
-
-This is a string that you use as the name for the variant. This
-identifier for the preferred variants returned by choose().
-
-=item qs
-
-This is a number between 0.000 and 1.000 that describes the "source
-quality". This is what F<draft-ietf-http-v11-spec-00.ps> says about this
-value:
-
-Source quality is measured by the content provider as representing the
-amount of degradation from the original source. For example, a
-picture in JPEG form would have a lower qs when translated to the XBM
-format, and much lower qs when translated to an ASCII-art
-representation. Note, however, that this is a function of the source
-- an original piece of ASCII-art may degrade in quality if it is
-captured in JPEG form. The qs values should be assigned to each
-variant by the content provider; if no qs value has been assigned, the
-default is generally "qs=1".
-
-=item content-type
-
-This is the media type of the variant. The media type does not
-include a charset attribute, but might contain other parameters.
-Examples are:
-
- text/html
- text/html;version=2.0
- text/plain
- image/gif
- image/jpg
-
-=item content-encoding
-
-This is one or more content encodings that has been applied to the
-variant. The content encoding is generally used as a modifier to the
-content media type. The most common content encodings are:
-
- gzip
- compress
-
-=item content-charset
-
-This is the character set used when the variant contains text.
-The charset value should generally be C<undef> or one of these:
-
- us-ascii
- iso-8859-1 ... iso-8859-9
- iso-2022-jp
- iso-2022-jp-2
- iso-2022-kr
- unicode-1-1
- unicode-1-1-utf-7
- unicode-1-1-utf-8
-
-=item content-language
-
-This describes one or more languages that are used in the variant.
-Language is described like this in F<draft-ietf-http-v11-spec-00.ps>: A
-language is in this context a natural language spoken, written, or
-otherwise conveyed by human beings for communication of information to
-other human beings. Computer languages are explicitly excluded.
-
-The language tags are defined by RFC 3066. Examples
-are:
-
- no Norwegian
- en International English
- en-US US English
- en-cockney
-
-=item content-length
-
-This is the number of bytes used to represent the content.
-
-=back
-
-=head1 ACCEPT HEADERS
-
-The following Accept* headers can be used for describing content
-preferences in a request (This description is an edited extract from
-F<draft-ietf-http-v11-spec-00.ps>):
-
-=over 3
-
-=item Accept
-
-This header can be used to indicate a list of media ranges which are
-acceptable as a response to the request. The "*" character is used to
-group media types into ranges, with "*/*" indicating all media types
-and "type/*" indicating all subtypes of that type.
-
-The parameter q is used to indicate the quality factor, which
-represents the user's preference for that range of media types. The
-parameter mbx gives the maximum acceptable size of the response
-content. The default values are: q=1 and mbx=infinity. If no Accept
-header is present, then the client accepts all media types with q=1.
-
-For example:
-
- Accept: audio/*;q=0.2;mbx=200000, audio/basic
-
-would mean: "I prefer audio/basic (of any size), but send me any audio
-type if it is the best available after an 80% mark-down in quality and
-its size is less than 200000 bytes"
-
-
-=item Accept-Charset
-
-Used to indicate what character sets are acceptable for the response.
-The "us-ascii" character set is assumed to be acceptable for all user
-agents. If no Accept-Charset field is given, the default is that any
-charset is acceptable. Example:
-
- Accept-Charset: iso-8859-1, unicode-1-1
-
-
-=item Accept-Encoding
-
-Restricts the Content-Encoding values which are acceptable in the
-response. If no Accept-Encoding field is present, the server may
-assume that the client will accept any content encoding. An empty
-Accept-Encoding means that no content encoding is acceptable. Example:
-
- Accept-Encoding: compress, gzip
-
-
-=item Accept-Language
-
-This field is similar to Accept, but restricts the set of natural
-languages that are preferred in a response. Each language may be
-given an associated quality value which represents an estimate of the
-user's comprehension of that language. For example:
-
- Accept-Language: no, en-gb;q=0.8, de;q=0.55
-
-would mean: "I prefer Norwegian, but will accept British English (with
-80% comprehension) or German (with 55% comprehension).
-
-=back
-
-
-=head1 COPYRIGHT
-
-Copyright 1996,2001 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 AUTHOR
-
-Gisle Aas <gisle@aas.no>
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Request.pm b/Master/tlpkg/tlperl/lib/HTTP/Request.pm
deleted file mode 100644
index 154ea2f926c..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Request.pm
+++ /dev/null
@@ -1,242 +0,0 @@
-package HTTP::Request;
-
-require HTTP::Message;
-@ISA = qw(HTTP::Message);
-$VERSION = "6.00";
-
-use strict;
-
-
-
-sub new
-{
- my($class, $method, $uri, $header, $content) = @_;
- my $self = $class->SUPER::new($header, $content);
- $self->method($method);
- $self->uri($uri);
- $self;
-}
-
-
-sub parse
-{
- my($class, $str) = @_;
- my $request_line;
- if ($str =~ s/^(.*)\n//) {
- $request_line = $1;
- }
- else {
- $request_line = $str;
- $str = "";
- }
-
- my $self = $class->SUPER::parse($str);
- my($method, $uri, $protocol) = split(' ', $request_line);
- $self->method($method) if defined($method);
- $self->uri($uri) if defined($uri);
- $self->protocol($protocol) if $protocol;
- $self;
-}
-
-
-sub clone
-{
- my $self = shift;
- my $clone = bless $self->SUPER::clone, ref($self);
- $clone->method($self->method);
- $clone->uri($self->uri);
- $clone;
-}
-
-
-sub method
-{
- shift->_elem('_method', @_);
-}
-
-
-sub uri
-{
- my $self = shift;
- my $old = $self->{'_uri'};
- if (@_) {
- my $uri = shift;
- if (!defined $uri) {
- # that's ok
- }
- elsif (ref $uri) {
- Carp::croak("A URI can't be a " . ref($uri) . " reference")
- if ref($uri) eq 'HASH' or ref($uri) eq 'ARRAY';
- Carp::croak("Can't use a " . ref($uri) . " object as a URI")
- unless $uri->can('scheme');
- $uri = $uri->clone;
- unless ($HTTP::URI_CLASS eq "URI") {
- # Argh!! Hate this... old LWP legacy!
- eval { local $SIG{__DIE__}; $uri = $uri->abs; };
- die $@ if $@ && $@ !~ /Missing base argument/;
- }
- }
- else {
- $uri = $HTTP::URI_CLASS->new($uri);
- }
- $self->{'_uri'} = $uri;
- delete $self->{'_uri_canonical'};
- }
- $old;
-}
-
-*url = \&uri; # legacy
-
-sub uri_canonical
-{
- my $self = shift;
- return $self->{'_uri_canonical'} ||= $self->{'_uri'}->canonical;
-}
-
-
-sub accept_decodable
-{
- my $self = shift;
- $self->header("Accept-Encoding", scalar($self->decodable));
-}
-
-sub as_string
-{
- my $self = shift;
- my($eol) = @_;
- $eol = "\n" unless defined $eol;
-
- my $req_line = $self->method || "-";
- my $uri = $self->uri;
- $uri = (defined $uri) ? $uri->as_string : "-";
- $req_line .= " $uri";
- my $proto = $self->protocol;
- $req_line .= " $proto" if $proto;
-
- return join($eol, $req_line, $self->SUPER::as_string(@_));
-}
-
-sub dump
-{
- my $self = shift;
- my @pre = ($self->method || "-", $self->uri || "-");
- if (my $prot = $self->protocol) {
- push(@pre, $prot);
- }
-
- return $self->SUPER::dump(
- preheader => join(" ", @pre),
- @_,
- );
-}
-
-
-1;
-
-__END__
-
-=head1 NAME
-
-HTTP::Request - HTTP style request message
-
-=head1 SYNOPSIS
-
- require HTTP::Request;
- $request = HTTP::Request->new(GET => 'http://www.example.com/');
-
-and usually used like this:
-
- $ua = LWP::UserAgent->new;
- $response = $ua->request($request);
-
-=head1 DESCRIPTION
-
-C<HTTP::Request> is a class encapsulating HTTP style requests,
-consisting of a request line, some headers, and a content body. Note
-that the LWP library uses HTTP style requests even for non-HTTP
-protocols. Instances of this class are usually passed to the
-request() method of an C<LWP::UserAgent> object.
-
-C<HTTP::Request> is a subclass of C<HTTP::Message> and therefore
-inherits its methods. The following additional methods are available:
-
-=over 4
-
-=item $r = HTTP::Request->new( $method, $uri )
-
-=item $r = HTTP::Request->new( $method, $uri, $header )
-
-=item $r = HTTP::Request->new( $method, $uri, $header, $content )
-
-Constructs a new C<HTTP::Request> object describing a request on the
-object $uri using method $method. The $method argument must be a
-string. The $uri argument can be either a string, or a reference to a
-C<URI> object. The optional $header argument should be a reference to
-an C<HTTP::Headers> object or a plain array reference of key/value
-pairs. The optional $content argument should be a string of bytes.
-
-=item $r = HTTP::Request->parse( $str )
-
-This constructs a new request object by parsing the given string.
-
-=item $r->method
-
-=item $r->method( $val )
-
-This is used to get/set the method attribute. The method should be a
-short string like "GET", "HEAD", "PUT" or "POST".
-
-=item $r->uri
-
-=item $r->uri( $val )
-
-This is used to get/set the uri attribute. The $val can be a
-reference to a URI object or a plain string. If a string is given,
-then it should be parseable as an absolute URI.
-
-=item $r->header( $field )
-
-=item $r->header( $field => $value )
-
-This is used to get/set header values and it is inherited from
-C<HTTP::Headers> via C<HTTP::Message>. See L<HTTP::Headers> for
-details and other similar methods that can be used to access the
-headers.
-
-=item $r->accept_decodable
-
-This will set the C<Accept-Encoding> header to the list of encodings
-that decoded_content() can decode.
-
-=item $r->content
-
-=item $r->content( $bytes )
-
-This is used to get/set the content and it is inherited from the
-C<HTTP::Message> base class. See L<HTTP::Message> for details and
-other methods that can be used to access the content.
-
-Note that the content should be a string of bytes. Strings in perl
-can contain characters outside the range of a byte. The C<Encode>
-module can be used to turn such strings into a string of bytes.
-
-=item $r->as_string
-
-=item $r->as_string( $eol )
-
-Method returning a textual representation of the request.
-
-=back
-
-=head1 SEE ALSO
-
-L<HTTP::Headers>, L<HTTP::Message>, L<HTTP::Request::Common>,
-L<HTTP::Response>
-
-=head1 COPYRIGHT
-
-Copyright 1995-2004 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Request/Common.pm b/Master/tlpkg/tlperl/lib/HTTP/Request/Common.pm
deleted file mode 100644
index 79e9e5e7429..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Request/Common.pm
+++ /dev/null
@@ -1,514 +0,0 @@
-package HTTP::Request::Common;
-
-use strict;
-use vars qw(@EXPORT @EXPORT_OK $VERSION $DYNAMIC_FILE_UPLOAD);
-
-$DYNAMIC_FILE_UPLOAD ||= 0; # make it defined (don't know why)
-
-require Exporter;
-*import = \&Exporter::import;
-@EXPORT =qw(GET HEAD PUT POST);
-@EXPORT_OK = qw($DYNAMIC_FILE_UPLOAD DELETE);
-
-require HTTP::Request;
-use Carp();
-
-$VERSION = "6.04";
-
-my $CRLF = "\015\012"; # "\r\n" is not portable
-
-sub GET { _simple_req('GET', @_); }
-sub HEAD { _simple_req('HEAD', @_); }
-sub PUT { _simple_req('PUT' , @_); }
-sub DELETE { _simple_req('DELETE', @_); }
-
-sub POST
-{
- my $url = shift;
- my $req = HTTP::Request->new(POST => $url);
- my $content;
- $content = shift if @_ and ref $_[0];
- my($k, $v);
- while (($k,$v) = splice(@_, 0, 2)) {
- if (lc($k) eq 'content') {
- $content = $v;
- }
- else {
- $req->push_header($k, $v);
- }
- }
- my $ct = $req->header('Content-Type');
- unless ($ct) {
- $ct = 'application/x-www-form-urlencoded';
- }
- elsif ($ct eq 'form-data') {
- $ct = 'multipart/form-data';
- }
-
- if (ref $content) {
- if ($ct =~ m,^multipart/form-data\s*(;|$),i) {
- require HTTP::Headers::Util;
- my @v = HTTP::Headers::Util::split_header_words($ct);
- Carp::carp("Multiple Content-Type headers") if @v > 1;
- @v = @{$v[0]};
-
- my $boundary;
- my $boundary_index;
- for (my @tmp = @v; @tmp;) {
- my($k, $v) = splice(@tmp, 0, 2);
- if ($k eq "boundary") {
- $boundary = $v;
- $boundary_index = @v - @tmp - 1;
- last;
- }
- }
-
- ($content, $boundary) = form_data($content, $boundary, $req);
-
- if ($boundary_index) {
- $v[$boundary_index] = $boundary;
- }
- else {
- push(@v, boundary => $boundary);
- }
-
- $ct = HTTP::Headers::Util::join_header_words(@v);
- }
- else {
- # We use a temporary URI object to format
- # the application/x-www-form-urlencoded content.
- require URI;
- my $url = URI->new('http:');
- $url->query_form(ref($content) eq "HASH" ? %$content : @$content);
- $content = $url->query;
-
- # HTML/4.01 says that line breaks are represented as "CR LF" pairs (i.e., `%0D%0A')
- $content =~ s/(?<!%0D)%0A/%0D%0A/g if defined($content);
- }
- }
-
- $req->header('Content-Type' => $ct); # might be redundant
- if (defined($content)) {
- $req->header('Content-Length' =>
- length($content)) unless ref($content);
- $req->content($content);
- }
- else {
- $req->header('Content-Length' => 0);
- }
- $req;
-}
-
-
-sub _simple_req
-{
- my($method, $url) = splice(@_, 0, 2);
- my $req = HTTP::Request->new($method => $url);
- my($k, $v);
- my $content;
- while (($k,$v) = splice(@_, 0, 2)) {
- if (lc($k) eq 'content') {
- $req->add_content($v);
- $content++;
- }
- else {
- $req->push_header($k, $v);
- }
- }
- if ($content && !defined($req->header("Content-Length"))) {
- $req->header("Content-Length", length(${$req->content_ref}));
- }
- $req;
-}
-
-
-sub form_data # RFC1867
-{
- my($data, $boundary, $req) = @_;
- my @data = ref($data) eq "HASH" ? %$data : @$data; # copy
- my $fhparts;
- my @parts;
- my($k,$v);
- while (($k,$v) = splice(@data, 0, 2)) {
- if (!ref($v)) {
- $k =~ s/([\\\"])/\\$1/g; # escape quotes and backslashes
- push(@parts,
- qq(Content-Disposition: form-data; name="$k"$CRLF$CRLF$v));
- }
- else {
- my($file, $usename, @headers) = @$v;
- unless (defined $usename) {
- $usename = $file;
- $usename =~ s,.*/,, if defined($usename);
- }
- $k =~ s/([\\\"])/\\$1/g;
- my $disp = qq(form-data; name="$k");
- if (defined($usename) and length($usename)) {
- $usename =~ s/([\\\"])/\\$1/g;
- $disp .= qq(; filename="$usename");
- }
- my $content = "";
- my $h = HTTP::Headers->new(@headers);
- if ($file) {
- open(my $fh, "<", $file) or Carp::croak("Can't open file $file: $!");
- binmode($fh);
- if ($DYNAMIC_FILE_UPLOAD) {
- # will read file later, close it now in order to
- # not accumulate to many open file handles
- close($fh);
- $content = \$file;
- }
- else {
- local($/) = undef; # slurp files
- $content = <$fh>;
- close($fh);
- }
- unless ($h->header("Content-Type")) {
- require LWP::MediaTypes;
- LWP::MediaTypes::guess_media_type($file, $h);
- }
- }
- if ($h->header("Content-Disposition")) {
- # just to get it sorted first
- $disp = $h->header("Content-Disposition");
- $h->remove_header("Content-Disposition");
- }
- if ($h->header("Content")) {
- $content = $h->header("Content");
- $h->remove_header("Content");
- }
- my $head = join($CRLF, "Content-Disposition: $disp",
- $h->as_string($CRLF),
- "");
- if (ref $content) {
- push(@parts, [$head, $$content]);
- $fhparts++;
- }
- else {
- push(@parts, $head . $content);
- }
- }
- }
- return ("", "none") unless @parts;
-
- my $content;
- if ($fhparts) {
- $boundary = boundary(10) # hopefully enough randomness
- unless $boundary;
-
- # add the boundaries to the @parts array
- for (1..@parts-1) {
- splice(@parts, $_*2-1, 0, "$CRLF--$boundary$CRLF");
- }
- unshift(@parts, "--$boundary$CRLF");
- push(@parts, "$CRLF--$boundary--$CRLF");
-
- # See if we can generate Content-Length header
- my $length = 0;
- for (@parts) {
- if (ref $_) {
- my ($head, $f) = @$_;
- my $file_size;
- unless ( -f $f && ($file_size = -s _) ) {
- # The file is either a dynamic file like /dev/audio
- # or perhaps a file in the /proc file system where
- # stat may return a 0 size even though reading it
- # will produce data. So we cannot make
- # a Content-Length header.
- undef $length;
- last;
- }
- $length += $file_size + length $head;
- }
- else {
- $length += length;
- }
- }
- $length && $req->header('Content-Length' => $length);
-
- # set up a closure that will return content piecemeal
- $content = sub {
- for (;;) {
- unless (@parts) {
- defined $length && $length != 0 &&
- Carp::croak "length of data sent did not match calculated Content-Length header. Probably because uploaded file changed in size during transfer.";
- return;
- }
- my $p = shift @parts;
- unless (ref $p) {
- $p .= shift @parts while @parts && !ref($parts[0]);
- defined $length && ($length -= length $p);
- return $p;
- }
- my($buf, $fh) = @$p;
- unless (ref($fh)) {
- my $file = $fh;
- undef($fh);
- open($fh, "<", $file) || Carp::croak("Can't open file $file: $!");
- binmode($fh);
- }
- my $buflength = length $buf;
- my $n = read($fh, $buf, 2048, $buflength);
- if ($n) {
- $buflength += $n;
- unshift(@parts, ["", $fh]);
- }
- else {
- close($fh);
- }
- if ($buflength) {
- defined $length && ($length -= $buflength);
- return $buf
- }
- }
- };
-
- }
- else {
- $boundary = boundary() unless $boundary;
-
- my $bno = 0;
- CHECK_BOUNDARY:
- {
- for (@parts) {
- if (index($_, $boundary) >= 0) {
- # must have a better boundary
- $boundary = boundary(++$bno);
- redo CHECK_BOUNDARY;
- }
- }
- last;
- }
- $content = "--$boundary$CRLF" .
- join("$CRLF--$boundary$CRLF", @parts) .
- "$CRLF--$boundary--$CRLF";
- }
-
- wantarray ? ($content, $boundary) : $content;
-}
-
-
-sub boundary
-{
- my $size = shift || return "xYzZY";
- require MIME::Base64;
- my $b = MIME::Base64::encode(join("", map chr(rand(256)), 1..$size*3), "");
- $b =~ s/[\W]/X/g; # ensure alnum only
- $b;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-HTTP::Request::Common - Construct common HTTP::Request objects
-
-=head1 SYNOPSIS
-
- use HTTP::Request::Common;
- $ua = LWP::UserAgent->new;
- $ua->request(GET 'http://www.sn.no/');
- $ua->request(POST 'http://somewhere/foo', [foo => bar, bar => foo]);
-
-=head1 DESCRIPTION
-
-This module provide functions that return newly created C<HTTP::Request>
-objects. These functions are usually more convenient to use than the
-standard C<HTTP::Request> constructor for the most common requests. The
-following functions are provided:
-
-=over 4
-
-=item GET $url
-
-=item GET $url, Header => Value,...
-
-The GET() function returns an C<HTTP::Request> object initialized with
-the "GET" method and the specified URL. It is roughly equivalent to the
-following call
-
- HTTP::Request->new(
- GET => $url,
- HTTP::Headers->new(Header => Value,...),
- )
-
-but is less cluttered. What is different is that a header named
-C<Content> will initialize the content part of the request instead of
-setting a header field. Note that GET requests should normally not
-have a content, so this hack makes more sense for the PUT() and POST()
-functions described below.
-
-The get(...) method of C<LWP::UserAgent> exists as a shortcut for
-$ua->request(GET ...).
-
-=item HEAD $url
-
-=item HEAD $url, Header => Value,...
-
-Like GET() but the method in the request is "HEAD".
-
-The head(...) method of "LWP::UserAgent" exists as a shortcut for
-$ua->request(HEAD ...).
-
-=item PUT $url
-
-=item PUT $url, Header => Value,...
-
-=item PUT $url, Header => Value,..., Content => $content
-
-Like GET() but the method in the request is "PUT".
-
-The content of the request can be specified using the "Content"
-pseudo-header. This steals a bit of the header field namespace as
-there is no way to directly specify a header that is actually called
-"Content". If you really need this you must update the request
-returned in a separate statement.
-
-=item DELETE $url
-
-=item DELETE $url, Header => Value,...
-
-Like GET() but the method in the request is "DELETE". This function
-is not exported by default.
-
-=item POST $url
-
-=item POST $url, Header => Value,...
-
-=item POST $url, $form_ref, Header => Value,...
-
-=item POST $url, Header => Value,..., Content => $form_ref
-
-=item POST $url, Header => Value,..., Content => $content
-
-This works mostly like PUT() with "POST" as the method, but this
-function also takes a second optional array or hash reference
-parameter $form_ref. As for PUT() the content can also be specified
-directly using the "Content" pseudo-header, and you may also provide
-the $form_ref this way.
-
-The $form_ref argument can be used to pass key/value pairs for the
-form content. By default we will initialize a request using the
-C<application/x-www-form-urlencoded> content type. This means that
-you can emulate an HTML E<lt>form> POSTing like this:
-
- POST 'http://www.perl.org/survey.cgi',
- [ name => 'Gisle Aas',
- email => 'gisle@aas.no',
- gender => 'M',
- born => '1964',
- perc => '3%',
- ];
-
-This will create an HTTP::Request object that looks like this:
-
- POST http://www.perl.org/survey.cgi
- Content-Length: 66
- Content-Type: application/x-www-form-urlencoded
-
- name=Gisle%20Aas&email=gisle%40aas.no&gender=M&born=1964&perc=3%25
-
-Multivalued form fields can be specified by either repeating the field
-name or by passing the value as an array reference.
-
-The POST method also supports the C<multipart/form-data> content used
-for I<Form-based File Upload> as specified in RFC 1867. You trigger
-this content format by specifying a content type of C<'form-data'> as
-one of the request headers. If one of the values in the $form_ref is
-an array reference, then it is treated as a file part specification
-with the following interpretation:
-
- [ $file, $filename, Header => Value... ]
- [ undef, $filename, Header => Value,..., Content => $content ]
-
-The first value in the array ($file) is the name of a file to open.
-This file will be read and its content placed in the request. The
-routine will croak if the file can't be opened. Use an C<undef> as
-$file value if you want to specify the content directly with a
-C<Content> header. The $filename is the filename to report in the
-request. If this value is undefined, then the basename of the $file
-will be used. You can specify an empty string as $filename if you
-want to suppress sending the filename when you provide a $file value.
-
-If a $file is provided by no C<Content-Type> header, then C<Content-Type>
-and C<Content-Encoding> will be filled in automatically with the values
-returned by LWP::MediaTypes::guess_media_type()
-
-Sending my F<~/.profile> to the survey used as example above can be
-achieved by this:
-
- POST 'http://www.perl.org/survey.cgi',
- Content_Type => 'form-data',
- Content => [ name => 'Gisle Aas',
- email => 'gisle@aas.no',
- gender => 'M',
- born => '1964',
- init => ["$ENV{HOME}/.profile"],
- ]
-
-This will create an HTTP::Request object that almost looks this (the
-boundary and the content of your F<~/.profile> is likely to be
-different):
-
- POST http://www.perl.org/survey.cgi
- Content-Length: 388
- Content-Type: multipart/form-data; boundary="6G+f"
-
- --6G+f
- Content-Disposition: form-data; name="name"
-
- Gisle Aas
- --6G+f
- Content-Disposition: form-data; name="email"
-
- gisle@aas.no
- --6G+f
- Content-Disposition: form-data; name="gender"
-
- M
- --6G+f
- Content-Disposition: form-data; name="born"
-
- 1964
- --6G+f
- Content-Disposition: form-data; name="init"; filename=".profile"
- Content-Type: text/plain
-
- PATH=/local/perl/bin:$PATH
- export PATH
-
- --6G+f--
-
-If you set the $DYNAMIC_FILE_UPLOAD variable (exportable) to some TRUE
-value, then you get back a request object with a subroutine closure as
-the content attribute. This subroutine will read the content of any
-files on demand and return it in suitable chunks. This allow you to
-upload arbitrary big files without using lots of memory. You can even
-upload infinite files like F</dev/audio> if you wish; however, if
-the file is not a plain file, there will be no Content-Length header
-defined for the request. Not all servers (or server
-applications) like this. Also, if the file(s) change in size between
-the time the Content-Length is calculated and the time that the last
-chunk is delivered, the subroutine will C<Croak>.
-
-The post(...) method of "LWP::UserAgent" exists as a shortcut for
-$ua->request(POST ...).
-
-=back
-
-=head1 SEE ALSO
-
-L<HTTP::Request>, L<LWP::UserAgent>
-
-
-=head1 COPYRIGHT
-
-Copyright 1997-2004, Gisle Aas
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Response.pm b/Master/tlpkg/tlperl/lib/HTTP/Response.pm
deleted file mode 100644
index c5250560528..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Response.pm
+++ /dev/null
@@ -1,637 +0,0 @@
-package HTTP::Response;
-
-require HTTP::Message;
-@ISA = qw(HTTP::Message);
-$VERSION = "6.04";
-
-use strict;
-use HTTP::Status ();
-
-
-
-sub new
-{
- my($class, $rc, $msg, $header, $content) = @_;
- my $self = $class->SUPER::new($header, $content);
- $self->code($rc);
- $self->message($msg);
- $self;
-}
-
-
-sub parse
-{
- my($class, $str) = @_;
- my $status_line;
- if ($str =~ s/^(.*)\n//) {
- $status_line = $1;
- }
- else {
- $status_line = $str;
- $str = "";
- }
-
- my $self = $class->SUPER::parse($str);
- my($protocol, $code, $message);
- if ($status_line =~ /^\d{3} /) {
- # Looks like a response created by HTTP::Response->new
- ($code, $message) = split(' ', $status_line, 2);
- } else {
- ($protocol, $code, $message) = split(' ', $status_line, 3);
- }
- $self->protocol($protocol) if $protocol;
- $self->code($code) if defined($code);
- $self->message($message) if defined($message);
- $self;
-}
-
-
-sub clone
-{
- my $self = shift;
- my $clone = bless $self->SUPER::clone, ref($self);
- $clone->code($self->code);
- $clone->message($self->message);
- $clone->request($self->request->clone) if $self->request;
- # we don't clone previous
- $clone;
-}
-
-
-sub code { shift->_elem('_rc', @_); }
-sub message { shift->_elem('_msg', @_); }
-sub previous { shift->_elem('_previous',@_); }
-sub request { shift->_elem('_request', @_); }
-
-
-sub status_line
-{
- my $self = shift;
- my $code = $self->{'_rc'} || "000";
- my $mess = $self->{'_msg'} || HTTP::Status::status_message($code) || "Unknown code";
- return "$code $mess";
-}
-
-
-sub base
-{
- my $self = shift;
- my $base = (
- $self->header('Content-Base'), # used to be HTTP/1.1
- $self->header('Content-Location'), # HTTP/1.1
- $self->header('Base'), # HTTP/1.0
- )[0];
- if ($base && $base =~ /^$URI::scheme_re:/o) {
- # already absolute
- return $HTTP::URI_CLASS->new($base);
- }
-
- my $req = $self->request;
- if ($req) {
- # if $base is undef here, the return value is effectively
- # just a copy of $self->request->uri.
- return $HTTP::URI_CLASS->new_abs($base, $req->uri);
- }
-
- # can't find an absolute base
- return undef;
-}
-
-
-sub redirects {
- my $self = shift;
- my @r;
- my $r = $self;
- while (my $p = $r->previous) {
- push(@r, $p);
- $r = $p;
- }
- return @r unless wantarray;
- return reverse @r;
-}
-
-
-sub filename
-{
- my $self = shift;
- my $file;
-
- my $cd = $self->header('Content-Disposition');
- if ($cd) {
- require HTTP::Headers::Util;
- if (my @cd = HTTP::Headers::Util::split_header_words($cd)) {
- my ($disposition, undef, %cd_param) = @{$cd[-1]};
- $file = $cd_param{filename};
-
- # RFC 2047 encoded?
- if ($file && $file =~ /^=\?(.+?)\?(.+?)\?(.+)\?=$/) {
- my $charset = $1;
- my $encoding = uc($2);
- my $encfile = $3;
-
- if ($encoding eq 'Q' || $encoding eq 'B') {
- local($SIG{__DIE__});
- eval {
- if ($encoding eq 'Q') {
- $encfile =~ s/_/ /g;
- require MIME::QuotedPrint;
- $encfile = MIME::QuotedPrint::decode($encfile);
- }
- else { # $encoding eq 'B'
- require MIME::Base64;
- $encfile = MIME::Base64::decode($encfile);
- }
-
- require Encode;
- require Encode::Locale;
- Encode::from_to($encfile, $charset, "locale_fs");
- };
-
- $file = $encfile unless $@;
- }
- }
- }
- }
-
- unless (defined($file) && length($file)) {
- my $uri;
- if (my $cl = $self->header('Content-Location')) {
- $uri = URI->new($cl);
- }
- elsif (my $request = $self->request) {
- $uri = $request->uri;
- }
-
- if ($uri) {
- $file = ($uri->path_segments)[-1];
- }
- }
-
- if ($file) {
- $file =~ s,.*[\\/],,; # basename
- }
-
- if ($file && !length($file)) {
- $file = undef;
- }
-
- $file;
-}
-
-
-sub as_string
-{
- my $self = shift;
- my($eol) = @_;
- $eol = "\n" unless defined $eol;
-
- my $status_line = $self->status_line;
- my $proto = $self->protocol;
- $status_line = "$proto $status_line" if $proto;
-
- return join($eol, $status_line, $self->SUPER::as_string(@_));
-}
-
-
-sub dump
-{
- my $self = shift;
-
- my $status_line = $self->status_line;
- my $proto = $self->protocol;
- $status_line = "$proto $status_line" if $proto;
-
- return $self->SUPER::dump(
- preheader => $status_line,
- @_,
- );
-}
-
-
-sub is_info { HTTP::Status::is_info (shift->{'_rc'}); }
-sub is_success { HTTP::Status::is_success (shift->{'_rc'}); }
-sub is_redirect { HTTP::Status::is_redirect (shift->{'_rc'}); }
-sub is_error { HTTP::Status::is_error (shift->{'_rc'}); }
-
-
-sub error_as_HTML
-{
- my $self = shift;
- my $title = 'An Error Occurred';
- my $body = $self->status_line;
- $body =~ s/&/&amp;/g;
- $body =~ s/</&lt;/g;
- return <<EOM;
-<html>
-<head><title>$title</title></head>
-<body>
-<h1>$title</h1>
-<p>$body</p>
-</body>
-</html>
-EOM
-}
-
-
-sub current_age
-{
- my $self = shift;
- my $time = shift;
-
- # Implementation of RFC 2616 section 13.2.3
- # (age calculations)
- my $response_time = $self->client_date;
- my $date = $self->date;
-
- my $age = 0;
- if ($response_time && $date) {
- $age = $response_time - $date; # apparent_age
- $age = 0 if $age < 0;
- }
-
- my $age_v = $self->header('Age');
- if ($age_v && $age_v > $age) {
- $age = $age_v; # corrected_received_age
- }
-
- if ($response_time) {
- my $request = $self->request;
- if ($request) {
- my $request_time = $request->date;
- if ($request_time && $request_time < $response_time) {
- # Add response_delay to age to get 'corrected_initial_age'
- $age += $response_time - $request_time;
- }
- }
- $age += ($time || time) - $response_time;
- }
- return $age;
-}
-
-
-sub freshness_lifetime
-{
- my($self, %opt) = @_;
-
- # First look for the Cache-Control: max-age=n header
- for my $cc ($self->header('Cache-Control')) {
- for my $cc_dir (split(/\s*,\s*/, $cc)) {
- return $1 if $cc_dir =~ /^max-age\s*=\s*(\d+)/i;
- }
- }
-
- # Next possibility is to look at the "Expires" header
- my $date = $self->date || $self->client_date || $opt{time} || time;
- if (my $expires = $self->expires) {
- return $expires - $date;
- }
-
- # Must apply heuristic expiration
- return undef if exists $opt{heuristic_expiry} && !$opt{heuristic_expiry};
-
- # Default heuristic expiration parameters
- $opt{h_min} ||= 60;
- $opt{h_max} ||= 24 * 3600;
- $opt{h_lastmod_fraction} ||= 0.10; # 10% since last-mod suggested by RFC2616
- $opt{h_default} ||= 3600;
-
- # Should give a warning if more than 24 hours according to
- # RFC 2616 section 13.2.4. Here we just make this the default
- # maximum value.
-
- if (my $last_modified = $self->last_modified) {
- my $h_exp = ($date - $last_modified) * $opt{h_lastmod_fraction};
- return $opt{h_min} if $h_exp < $opt{h_min};
- return $opt{h_max} if $h_exp > $opt{h_max};
- return $h_exp;
- }
-
- # default when all else fails
- return $opt{h_min} if $opt{h_min} > $opt{h_default};
- return $opt{h_default};
-}
-
-
-sub is_fresh
-{
- my($self, %opt) = @_;
- $opt{time} ||= time;
- my $f = $self->freshness_lifetime(%opt);
- return undef unless defined($f);
- return $f > $self->current_age($opt{time});
-}
-
-
-sub fresh_until
-{
- my($self, %opt) = @_;
- $opt{time} ||= time;
- my $f = $self->freshness_lifetime(%opt);
- return undef unless defined($f);
- return $f - $self->current_age($opt{time}) + $opt{time};
-}
-
-1;
-
-
-__END__
-
-=head1 NAME
-
-HTTP::Response - HTTP style response message
-
-=head1 SYNOPSIS
-
-Response objects are returned by the request() method of the C<LWP::UserAgent>:
-
- # ...
- $response = $ua->request($request)
- if ($response->is_success) {
- print $response->decoded_content;
- }
- else {
- print STDERR $response->status_line, "\n";
- }
-
-=head1 DESCRIPTION
-
-The C<HTTP::Response> class encapsulates HTTP style responses. A
-response consists of a response line, some headers, and a content
-body. Note that the LWP library uses HTTP style responses even for
-non-HTTP protocol schemes. Instances of this class are usually
-created and returned by the request() method of an C<LWP::UserAgent>
-object.
-
-C<HTTP::Response> is a subclass of C<HTTP::Message> and therefore
-inherits its methods. The following additional methods are available:
-
-=over 4
-
-=item $r = HTTP::Response->new( $code )
-
-=item $r = HTTP::Response->new( $code, $msg )
-
-=item $r = HTTP::Response->new( $code, $msg, $header )
-
-=item $r = HTTP::Response->new( $code, $msg, $header, $content )
-
-Constructs a new C<HTTP::Response> object describing a response with
-response code $code and optional message $msg. The optional $header
-argument should be a reference to an C<HTTP::Headers> object or a
-plain array reference of key/value pairs. The optional $content
-argument should be a string of bytes. The meanings of these arguments are
-described below.
-
-=item $r = HTTP::Response->parse( $str )
-
-This constructs a new response object by parsing the given string.
-
-=item $r->code
-
-=item $r->code( $code )
-
-This is used to get/set the code attribute. The code is a 3 digit
-number that encode the overall outcome of an HTTP response. The
-C<HTTP::Status> module provide constants that provide mnemonic names
-for the code attribute.
-
-=item $r->message
-
-=item $r->message( $message )
-
-This is used to get/set the message attribute. The message is a short
-human readable single line string that explains the response code.
-
-=item $r->header( $field )
-
-=item $r->header( $field => $value )
-
-This is used to get/set header values and it is inherited from
-C<HTTP::Headers> via C<HTTP::Message>. See L<HTTP::Headers> for
-details and other similar methods that can be used to access the
-headers.
-
-=item $r->content
-
-=item $r->content( $bytes )
-
-This is used to get/set the raw content and it is inherited from the
-C<HTTP::Message> base class. See L<HTTP::Message> for details and
-other methods that can be used to access the content.
-
-=item $r->decoded_content( %options )
-
-This will return the content after any C<Content-Encoding> and
-charsets have been decoded. See L<HTTP::Message> for details.
-
-=item $r->request
-
-=item $r->request( $request )
-
-This is used to get/set the request attribute. The request attribute
-is a reference to the the request that caused this response. It does
-not have to be the same request passed to the $ua->request() method,
-because there might have been redirects and authorization retries in
-between.
-
-=item $r->previous
-
-=item $r->previous( $response )
-
-This is used to get/set the previous attribute. The previous
-attribute is used to link together chains of responses. You get
-chains of responses if the first response is redirect or unauthorized.
-The value is C<undef> if this is the first response in a chain.
-
-Note that the method $r->redirects is provided as a more convenient
-way to access the response chain.
-
-=item $r->status_line
-
-Returns the string "E<lt>code> E<lt>message>". If the message attribute
-is not set then the official name of E<lt>code> (see L<HTTP::Status>)
-is substituted.
-
-=item $r->base
-
-Returns the base URI for this response. The return value will be a
-reference to a URI object.
-
-The base URI is obtained from one the following sources (in priority
-order):
-
-=over 4
-
-=item 1.
-
-Embedded in the document content, for instance <BASE HREF="...">
-in HTML documents.
-
-=item 2.
-
-A "Content-Base:" or a "Content-Location:" header in the response.
-
-For backwards compatibility with older HTTP implementations we will
-also look for the "Base:" header.
-
-=item 3.
-
-The URI used to request this response. This might not be the original
-URI that was passed to $ua->request() method, because we might have
-received some redirect responses first.
-
-=back
-
-If none of these sources provide an absolute URI, undef is returned.
-
-When the LWP protocol modules produce the HTTP::Response object, then
-any base URI embedded in the document (step 1) will already have
-initialized the "Content-Base:" header. This means that this method
-only performs the last 2 steps (the content is not always available
-either).
-
-=item $r->filename
-
-Returns a filename for this response. Note that doing sanity checks
-on the returned filename (eg. removing characters that cannot be used
-on the target filesystem where the filename would be used, and
-laundering it for security purposes) are the caller's responsibility;
-the only related thing done by this method is that it makes a simple
-attempt to return a plain filename with no preceding path segments.
-
-The filename is obtained from one the following sources (in priority
-order):
-
-=over 4
-
-=item 1.
-
-A "Content-Disposition:" header in the response. Proper decoding of
-RFC 2047 encoded filenames requires the C<MIME::QuotedPrint> (for "Q"
-encoding), C<MIME::Base64> (for "B" encoding), and C<Encode> modules.
-
-=item 2.
-
-A "Content-Location:" header in the response.
-
-=item 3.
-
-The URI used to request this response. This might not be the original
-URI that was passed to $ua->request() method, because we might have
-received some redirect responses first.
-
-=back
-
-If a filename cannot be derived from any of these sources, undef is
-returned.
-
-=item $r->as_string
-
-=item $r->as_string( $eol )
-
-Returns a textual representation of the response.
-
-=item $r->is_info
-
-=item $r->is_success
-
-=item $r->is_redirect
-
-=item $r->is_error
-
-These methods indicate if the response was informational, successful, a
-redirection, or an error. See L<HTTP::Status> for the meaning of these.
-
-=item $r->error_as_HTML
-
-Returns a string containing a complete HTML document indicating what
-error occurred. This method should only be called when $r->is_error
-is TRUE.
-
-=item $r->redirects
-
-Returns the list of redirect responses that lead up to this response
-by following the $r->previous chain. The list order is oldest first.
-
-In scalar context return the number of redirect responses leading up
-to this one.
-
-=item $r->current_age
-
-Calculates the "current age" of the response as specified by RFC 2616
-section 13.2.3. The age of a response is the time since it was sent
-by the origin server. The returned value is a number representing the
-age in seconds.
-
-=item $r->freshness_lifetime( %opt )
-
-Calculates the "freshness lifetime" of the response as specified by
-RFC 2616 section 13.2.4. The "freshness lifetime" is the length of
-time between the generation of a response and its expiration time.
-The returned value is the number of seconds until expiry.
-
-If the response does not contain an "Expires" or a "Cache-Control"
-header, then this function will apply some simple heuristic based on
-the "Last-Modified" header to determine a suitable lifetime. The
-following options might be passed to control the heuristics:
-
-=over
-
-=item heuristic_expiry => $bool
-
-If passed as a FALSE value, don't apply heuristics and just return
-C<undef> when "Expires" or "Cache-Control" is lacking.
-
-=item h_lastmod_fraction => $num
-
-This number represent the fraction of the difference since the
-"Last-Modified" timestamp to make the expiry time. The default is
-C<0.10>, the suggested typical setting of 10% in RFC 2616.
-
-=item h_min => $sec
-
-This is the lower limit of the heuristic expiry age to use. The
-default is C<60> (1 minute).
-
-=item h_max => $sec
-
-This is the upper limit of the heuristic expiry age to use. The
-default is C<86400> (24 hours).
-
-=item h_default => $sec
-
-This is the expiry age to use when nothing else applies. The default
-is C<3600> (1 hour) or "h_min" if greater.
-
-=back
-
-=item $r->is_fresh( %opt )
-
-Returns TRUE if the response is fresh, based on the values of
-freshness_lifetime() and current_age(). If the response is no longer
-fresh, then it has to be re-fetched or re-validated by the origin
-server.
-
-Options might be passed to control expiry heuristics, see the
-description of freshness_lifetime().
-
-=item $r->fresh_until( %opt )
-
-Returns the time (seconds since epoch) when this entity is no longer fresh.
-
-Options might be passed to control expiry heuristics, see the
-description of freshness_lifetime().
-
-=back
-
-=head1 SEE ALSO
-
-L<HTTP::Headers>, L<HTTP::Message>, L<HTTP::Status>, L<HTTP::Request>
-
-=head1 COPYRIGHT
-
-Copyright 1995-2004 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Status.pm b/Master/tlpkg/tlperl/lib/HTTP/Status.pm
deleted file mode 100644
index f229af6c226..00000000000
--- a/Master/tlpkg/tlperl/lib/HTTP/Status.pm
+++ /dev/null
@@ -1,267 +0,0 @@
-package HTTP::Status;
-
-use strict;
-require 5.002; # because we use prototypes
-
-use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION);
-
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(is_info is_success is_redirect is_error status_message);
-@EXPORT_OK = qw(is_client_error is_server_error);
-$VERSION = "6.03";
-
-# Note also addition of mnemonics to @EXPORT below
-
-# Unmarked codes are from RFC 2616
-# See also: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
-
-my %StatusCode = (
- 100 => 'Continue',
- 101 => 'Switching Protocols',
- 102 => 'Processing', # RFC 2518 (WebDAV)
- 200 => 'OK',
- 201 => 'Created',
- 202 => 'Accepted',
- 203 => 'Non-Authoritative Information',
- 204 => 'No Content',
- 205 => 'Reset Content',
- 206 => 'Partial Content',
- 207 => 'Multi-Status', # RFC 2518 (WebDAV)
- 208 => 'Already Reported', # RFC 5842
- 300 => 'Multiple Choices',
- 301 => 'Moved Permanently',
- 302 => 'Found',
- 303 => 'See Other',
- 304 => 'Not Modified',
- 305 => 'Use Proxy',
- 307 => 'Temporary Redirect',
- 400 => 'Bad Request',
- 401 => 'Unauthorized',
- 402 => 'Payment Required',
- 403 => 'Forbidden',
- 404 => 'Not Found',
- 405 => 'Method Not Allowed',
- 406 => 'Not Acceptable',
- 407 => 'Proxy Authentication Required',
- 408 => 'Request Timeout',
- 409 => 'Conflict',
- 410 => 'Gone',
- 411 => 'Length Required',
- 412 => 'Precondition Failed',
- 413 => 'Request Entity Too Large',
- 414 => 'Request-URI Too Large',
- 415 => 'Unsupported Media Type',
- 416 => 'Request Range Not Satisfiable',
- 417 => 'Expectation Failed',
- 418 => 'I\'m a teapot', # RFC 2324
- 422 => 'Unprocessable Entity', # RFC 2518 (WebDAV)
- 423 => 'Locked', # RFC 2518 (WebDAV)
- 424 => 'Failed Dependency', # RFC 2518 (WebDAV)
- 425 => 'No code', # WebDAV Advanced Collections
- 426 => 'Upgrade Required', # RFC 2817
- 428 => 'Precondition Required',
- 429 => 'Too Many Requests',
- 431 => 'Request Header Fields Too Large',
- 449 => 'Retry with', # unofficial Microsoft
- 500 => 'Internal Server Error',
- 501 => 'Not Implemented',
- 502 => 'Bad Gateway',
- 503 => 'Service Unavailable',
- 504 => 'Gateway Timeout',
- 505 => 'HTTP Version Not Supported',
- 506 => 'Variant Also Negotiates', # RFC 2295
- 507 => 'Insufficient Storage', # RFC 2518 (WebDAV)
- 509 => 'Bandwidth Limit Exceeded', # unofficial
- 510 => 'Not Extended', # RFC 2774
- 511 => 'Network Authentication Required',
-);
-
-my $mnemonicCode = '';
-my ($code, $message);
-while (($code, $message) = each %StatusCode) {
- # create mnemonic subroutines
- $message =~ s/I'm/I am/;
- $message =~ tr/a-z \-/A-Z__/;
- $mnemonicCode .= "sub HTTP_$message () { $code }\n";
- $mnemonicCode .= "*RC_$message = \\&HTTP_$message;\n"; # legacy
- $mnemonicCode .= "push(\@EXPORT_OK, 'HTTP_$message');\n";
- $mnemonicCode .= "push(\@EXPORT, 'RC_$message');\n";
-}
-eval $mnemonicCode; # only one eval for speed
-die if $@;
-
-# backwards compatibility
-*RC_MOVED_TEMPORARILY = \&RC_FOUND; # 302 was renamed in the standard
-push(@EXPORT, "RC_MOVED_TEMPORARILY");
-
-%EXPORT_TAGS = (
- constants => [grep /^HTTP_/, @EXPORT_OK],
- is => [grep /^is_/, @EXPORT, @EXPORT_OK],
-);
-
-
-sub status_message ($) { $StatusCode{$_[0]}; }
-
-sub is_info ($) { $_[0] >= 100 && $_[0] < 200; }
-sub is_success ($) { $_[0] >= 200 && $_[0] < 300; }
-sub is_redirect ($) { $_[0] >= 300 && $_[0] < 400; }
-sub is_error ($) { $_[0] >= 400 && $_[0] < 600; }
-sub is_client_error ($) { $_[0] >= 400 && $_[0] < 500; }
-sub is_server_error ($) { $_[0] >= 500 && $_[0] < 600; }
-
-1;
-
-
-__END__
-
-=head1 NAME
-
-HTTP::Status - HTTP Status code processing
-
-=head1 SYNOPSIS
-
- use HTTP::Status qw(:constants :is status_message);
-
- if ($rc != HTTP_OK) {
- print status_message($rc), "\n";
- }
-
- if (is_success($rc)) { ... }
- if (is_error($rc)) { ... }
- if (is_redirect($rc)) { ... }
-
-=head1 DESCRIPTION
-
-I<HTTP::Status> is a library of routines for defining and
-classifying HTTP status codes for libwww-perl. Status codes are
-used to encode the overall outcome of an HTTP response message. Codes
-correspond to those defined in RFC 2616 and RFC 2518.
-
-=head1 CONSTANTS
-
-The following constant functions can be used as mnemonic status code
-names. None of these are exported by default. Use the C<:constants>
-tag to import them all.
-
- HTTP_CONTINUE (100)
- HTTP_SWITCHING_PROTOCOLS (101)
- HTTP_PROCESSING (102)
-
- HTTP_OK (200)
- HTTP_CREATED (201)
- HTTP_ACCEPTED (202)
- HTTP_NON_AUTHORITATIVE_INFORMATION (203)
- HTTP_NO_CONTENT (204)
- HTTP_RESET_CONTENT (205)
- HTTP_PARTIAL_CONTENT (206)
- HTTP_MULTI_STATUS (207)
- HTTP_ALREADY_REPORTED (208)
-
- HTTP_MULTIPLE_CHOICES (300)
- HTTP_MOVED_PERMANENTLY (301)
- HTTP_FOUND (302)
- HTTP_SEE_OTHER (303)
- HTTP_NOT_MODIFIED (304)
- HTTP_USE_PROXY (305)
- HTTP_TEMPORARY_REDIRECT (307)
-
- HTTP_BAD_REQUEST (400)
- HTTP_UNAUTHORIZED (401)
- HTTP_PAYMENT_REQUIRED (402)
- HTTP_FORBIDDEN (403)
- HTTP_NOT_FOUND (404)
- HTTP_METHOD_NOT_ALLOWED (405)
- HTTP_NOT_ACCEPTABLE (406)
- HTTP_PROXY_AUTHENTICATION_REQUIRED (407)
- HTTP_REQUEST_TIMEOUT (408)
- HTTP_CONFLICT (409)
- HTTP_GONE (410)
- HTTP_LENGTH_REQUIRED (411)
- HTTP_PRECONDITION_FAILED (412)
- HTTP_REQUEST_ENTITY_TOO_LARGE (413)
- HTTP_REQUEST_URI_TOO_LARGE (414)
- HTTP_UNSUPPORTED_MEDIA_TYPE (415)
- HTTP_REQUEST_RANGE_NOT_SATISFIABLE (416)
- HTTP_EXPECTATION_FAILED (417)
- HTTP_I_AM_A_TEAPOT (418)
- HTTP_UNPROCESSABLE_ENTITY (422)
- HTTP_LOCKED (423)
- HTTP_FAILED_DEPENDENCY (424)
- HTTP_NO_CODE (425)
- HTTP_UPGRADE_REQUIRED (426)
- HTTP_PRECONDITION_REQUIRED (428)
- HTTP_TOO_MANY_REQUESTS (429)
- HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE (431)
- HTTP_RETRY_WITH (449)
-
- HTTP_INTERNAL_SERVER_ERROR (500)
- HTTP_NOT_IMPLEMENTED (501)
- HTTP_BAD_GATEWAY (502)
- HTTP_SERVICE_UNAVAILABLE (503)
- HTTP_GATEWAY_TIMEOUT (504)
- HTTP_HTTP_VERSION_NOT_SUPPORTED (505)
- HTTP_VARIANT_ALSO_NEGOTIATES (506)
- HTTP_INSUFFICIENT_STORAGE (507)
- HTTP_BANDWIDTH_LIMIT_EXCEEDED (509)
- HTTP_NOT_EXTENDED (510)
- HTTP_NETWORK_AUTHENTICATION_REQUIRED (511)
-
-=head1 FUNCTIONS
-
-The following additional functions are provided. Most of them are
-exported by default. The C<:is> import tag can be used to import all
-the classification functions.
-
-=over 4
-
-=item status_message( $code )
-
-The status_message() function will translate status codes to human
-readable strings. The string is the same as found in the constant
-names above. If the $code is unknown, then C<undef> is returned.
-
-=item is_info( $code )
-
-Return TRUE if C<$code> is an I<Informational> status code (1xx). This
-class of status code indicates a provisional response which can't have
-any content.
-
-=item is_success( $code )
-
-Return TRUE if C<$code> is a I<Successful> status code (2xx).
-
-=item is_redirect( $code )
-
-Return TRUE if C<$code> is a I<Redirection> status code (3xx). This class of
-status code indicates that further action needs to be taken by the
-user agent in order to fulfill the request.
-
-=item is_error( $code )
-
-Return TRUE if C<$code> is an I<Error> status code (4xx or 5xx). The function
-returns TRUE for both client and server error status codes.
-
-=item is_client_error( $code )
-
-Return TRUE if C<$code> is a I<Client Error> status code (4xx). This class
-of status code is intended for cases in which the client seems to have
-erred.
-
-This function is B<not> exported by default.
-
-=item is_server_error( $code )
-
-Return TRUE if C<$code> is a I<Server Error> status code (5xx). This class
-of status codes is intended for cases in which the server is aware
-that it has erred or is incapable of performing the request.
-
-This function is B<not> exported by default.
-
-=back
-
-=head1 BUGS
-
-For legacy reasons all the C<HTTP_> constants are exported by default
-with the prefix C<RC_>. It's recommended to use explicit imports and
-the C<:constants> tag instead of relying on this.
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Tiny.pm b/Master/tlpkg/tlperl/lib/HTTP/Tiny.pm
index e348753b933..878cce89d8f 100644
--- a/Master/tlpkg/tlperl/lib/HTTP/Tiny.pm
+++ b/Master/tlpkg/tlperl/lib/HTTP/Tiny.pm
@@ -3,60 +3,64 @@ package HTTP::Tiny;
use strict;
use warnings;
# ABSTRACT: A small, simple, correct HTTP/1.1 client
-our $VERSION = '0.043'; # VERSION
+
+our $VERSION = '0.054';
use Carp ();
-# =method new
-#
-# $http = HTTP::Tiny->new( %attributes );
-#
-# This constructor returns a new HTTP::Tiny object. Valid attributes include:
-#
-# =for :list
-# * C<agent>
-# A user-agent string (defaults to 'HTTP-Tiny/$VERSION'). If C<agent> ends in a space character, the default user-agent string is appended.
-# * C<cookie_jar>
-# An instance of L<HTTP::CookieJar> or equivalent class that supports the C<add> and C<cookie_header> methods
-# * C<default_headers>
-# A hashref of default headers to apply to requests
-# * C<local_address>
-# The local IP address to bind to
-# * C<keep_alive>
-# Whether to reuse the last connection (if for the same scheme, host and port) (defaults to 1)
-# * C<max_redirect>
-# Maximum number of redirects allowed (defaults to 5)
-# * C<max_size>
-# Maximum response size (only when not using a data callback). If defined, responses larger than this will return an exception.
-# * C<http_proxy>
-# URL of a proxy server to use for HTTP connections (default is C<$ENV{http_proxy}> if set)
-# * C<https_proxy>
-# URL of a proxy server to use for HTTPS connections (default is C<$ENV{https_proxy}> if set)
-# * C<proxy>
-# URL of a generic proxy server for both HTTP and HTTPS connections (default is C<$ENV{all_proxy}> if set)
-# * C<no_proxy>
-# 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}>)
-# * C<timeout>
-# Request timeout in seconds (default is 60)
-# * C<verify_SSL>
-# A boolean that indicates whether to validate the SSL certificate of an C<https>
-# connection (default is false)
-# * C<SSL_options>
-# A hashref of C<SSL_*> options to pass through to L<IO::Socket::SSL>
-#
-# Exceptions from C<max_size>, C<timeout> or other errors will result in a
-# pseudo-HTTP status code of 599 and a reason of "Internal Exception". The
-# content field in the response will contain the text of the exception.
-#
-# The C<keep_alive> parameter enables a persistent connection, but only to a
-# single destination scheme, host and port. Also, if any connection-relevant
-# attributes are modified, a persistent connection will be dropped. If you want
-# persistent connections across multiple destinations, use multiple HTTP::Tiny
-# objects.
-#
-# See L</SSL SUPPORT> for more on the C<verify_SSL> and C<SSL_options> attributes.
-#
-# =cut
+#pod =method new
+#pod
+#pod $http = HTTP::Tiny->new( %attributes );
+#pod
+#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 (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
+#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.
+#pod
+#pod Exceptions from C<max_size>, C<timeout> or other errors will result in a
+#pod pseudo-HTTP status code of 599 and a reason of "Internal Exception". The
+#pod content field in the response will contain the text of the exception.
+#pod
+#pod The C<keep_alive> parameter enables a persistent connection, but only to a
+#pod single destination scheme, host and port. Also, if any connection-relevant
+#pod attributes are modified, or if the process ID or thread ID change, the
+#pod persistent connection will be dropped. If you want persistent connections
+#pod across multiple destinations, use multiple HTTP::Tiny objects.
+#pod
+#pod See L</SSL SUPPORT> for more on the C<verify_SSL> and C<SSL_options> attributes.
+#pod
+#pod =cut
my @attributes;
BEGIN {
@@ -120,36 +124,47 @@ sub new {
sub _set_proxies {
my ($self) = @_;
- if (! $self->{proxy} ) {
+ # get proxies from %ENV only if not provided; explicit undef will disable
+ # getting proxies from the environment
+
+ # generic proxy
+ if (! exists $self->{proxy} ) {
$self->{proxy} = $ENV{all_proxy} || $ENV{ALL_PROXY};
- if ( defined $self->{proxy} ) {
- $self->_split_proxy( 'generic proxy' => $self->{proxy} ); # validate
- }
- else {
- delete $self->{proxy};
- }
}
- if (! $self->{http_proxy} ) {
- $self->{http_proxy} = $ENV{http_proxy} || $self->{proxy};
- if ( defined $self->{http_proxy} ) {
- $self->_split_proxy( http_proxy => $self->{http_proxy} ); # validate
- $self->{_has_proxy}{http} = 1;
- }
- else {
- delete $self->{http_proxy};
- }
+ if ( defined $self->{proxy} ) {
+ $self->_split_proxy( 'generic proxy' => $self->{proxy} ); # validate
+ }
+ else {
+ delete $self->{proxy};
}
- if (! $self->{https_proxy} ) {
+ # http proxy
+ if (! exists $self->{http_proxy} ) {
+ # under CGI, bypass HTTP_PROXY as request sets it from Proxy header
+ local $ENV{HTTP_PROXY} if $ENV{REQUEST_METHOD};
+ $self->{http_proxy} = $ENV{http_proxy} || $ENV{HTTP_PROXY} || $self->{proxy};
+ }
+
+ if ( defined $self->{http_proxy} ) {
+ $self->_split_proxy( http_proxy => $self->{http_proxy} ); # validate
+ $self->{_has_proxy}{http} = 1;
+ }
+ else {
+ delete $self->{http_proxy};
+ }
+
+ # https proxy
+ if (! exists $self->{https_proxy} ) {
$self->{https_proxy} = $ENV{https_proxy} || $ENV{HTTPS_PROXY} || $self->{proxy};
- if ( $self->{https_proxy} ) {
- $self->_split_proxy( https_proxy => $self->{https_proxy} ); # validate
- $self->{_has_proxy}{https} = 1;
- }
- else {
- delete $self->{https_proxy};
- }
+ }
+
+ if ( $self->{https_proxy} ) {
+ $self->_split_proxy( https_proxy => $self->{https_proxy} ); # validate
+ $self->{_has_proxy}{https} = 1;
+ }
+ else {
+ delete $self->{https_proxy};
}
# Split no_proxy to array reference if not provided as such
@@ -161,19 +176,19 @@ sub _set_proxies {
return;
}
-# =method get|head|put|post|delete
-#
-# $response = $http->get($url);
-# $response = $http->get($url, \%options);
-# $response = $http->head($url);
-#
-# These methods are shorthand for calling C<request()> for the given method. The
-# URL must have unsafe characters escaped and international domain names encoded.
-# See C<request()> for valid options and a description of the response.
-#
-# The C<success> field of the response will be true if the status code is 2XX.
-#
-# =cut
+#pod =method get|head|put|post|delete
+#pod
+#pod $response = $http->get($url);
+#pod $response = $http->get($url, \%options);
+#pod $response = $http->head($url);
+#pod
+#pod These methods are shorthand for calling C<request()> for the given method. The
+#pod URL must have unsafe characters escaped and international domain names encoded.
+#pod See C<request()> for valid options and a description of the response.
+#pod
+#pod The C<success> field of the response will be true if the status code is 2XX.
+#pod
+#pod =cut
for my $sub_name ( qw/get head put post delete/ ) {
my $req_method = uc $sub_name;
@@ -188,25 +203,25 @@ for my $sub_name ( qw/get head put post delete/ ) {
HERE
}
-# =method post_form
-#
-# $response = $http->post_form($url, $form_data);
-# $response = $http->post_form($url, $form_data, \%options);
-#
-# This method executes a C<POST> request and sends the key/value pairs from a
-# form data hash or array reference to the given URL with a C<content-type> of
-# C<application/x-www-form-urlencoded>. If data is provided as an array
-# reference, the order is preserved; if provided as a hash reference, the terms
-# are sorted on key and value for consistency. See documentation for the
-# C<www_form_urlencode> method for details on the encoding.
-#
-# The URL must have unsafe characters escaped and international domain names
-# encoded. See C<request()> for valid options and a description of the response.
-# Any C<content-type> header or content in the options hashref will be ignored.
-#
-# The C<success> field of the response will be true if the status code is 2XX.
-#
-# =cut
+#pod =method post_form
+#pod
+#pod $response = $http->post_form($url, $form_data);
+#pod $response = $http->post_form($url, $form_data, \%options);
+#pod
+#pod This method executes a C<POST> request and sends the key/value pairs from a
+#pod form data hash or array reference to the given URL with a C<content-type> of
+#pod C<application/x-www-form-urlencoded>. If data is provided as an array
+#pod reference, the order is preserved; if provided as a hash reference, the terms
+#pod are sorted on key and value for consistency. See documentation for the
+#pod C<www_form_urlencode> method for details on the encoding.
+#pod
+#pod The URL must have unsafe characters escaped and international domain names
+#pod encoded. See C<request()> for valid options and a description of the response.
+#pod Any C<content-type> header or content in the options hashref will be ignored.
+#pod
+#pod The C<success> field of the response will be true if the status code is 2XX.
+#pod
+#pod =cut
sub post_form {
my ($self, $url, $data, $args) = @_;
@@ -230,28 +245,28 @@ sub post_form {
);
}
-# =method mirror
-#
-# $response = $http->mirror($url, $file, \%options)
-# if ( $response->{success} ) {
-# print "$file is up to date\n";
-# }
-#
-# Executes a C<GET> request for the URL and saves the response body to the file
-# name provided. The URL must have unsafe characters escaped and international
-# domain names encoded. If the file already exists, the request will include an
-# C<If-Modified-Since> header with the modification timestamp of the file. You
-# may specify a different C<If-Modified-Since> header yourself in the C<<
-# $options->{headers} >> hash.
-#
-# The C<success> field of the response will be true if the status code is 2XX
-# or if the status code is 304 (unmodified).
-#
-# If the file was modified and the server response includes a properly
-# formatted C<Last-Modified> header, the file modification time will
-# be updated accordingly.
-#
-# =cut
+#pod =method mirror
+#pod
+#pod $response = $http->mirror($url, $file, \%options)
+#pod if ( $response->{success} ) {
+#pod print "$file is up to date\n";
+#pod }
+#pod
+#pod Executes a C<GET> request for the URL and saves the response body to the file
+#pod name provided. The URL must have unsafe characters escaped and international
+#pod domain names encoded. If the file already exists, the request will include an
+#pod C<If-Modified-Since> header with the modification timestamp of the file. You
+#pod may specify a different C<If-Modified-Since> header yourself in the C<<
+#pod $options->{headers} >> hash.
+#pod
+#pod The C<success> field of the response will be true if the status code is 2XX
+#pod or if the status code is 304 (unmodified).
+#pod
+#pod If the file was modified and the server response includes a properly
+#pod formatted C<Last-Modified> header, the file modification time will
+#pod be updated accordingly.
+#pod
+#pod =cut
sub mirror {
my ($self, $url, $file, $args) = @_;
@@ -284,86 +299,90 @@ sub mirror {
return $response;
}
-# =method request
-#
-# $response = $http->request($method, $url);
-# $response = $http->request($method, $url, \%options);
-#
-# Executes an HTTP request of the given method type ('GET', 'HEAD', 'POST',
-# 'PUT', etc.) on the given URL. The URL must have unsafe characters escaped and
-# international domain names encoded.
-#
-# If the URL includes a "user:password" stanza, they will be used for Basic-style
-# authorization headers. (Authorization headers will not be included in a
-# redirected request.) For example:
-#
-# $http->request('GET', 'http://Aladdin:open sesame@example.com/');
-#
-# If the "user:password" stanza contains reserved characters, they must
-# be percent-escaped:
-#
-# $http->request('GET', 'http://john%40example.com:password@example.com/');
-#
-# A hashref of options may be appended to modify the request.
-#
-# Valid options are:
-#
-# =for :list
-# * C<headers>
-# A hashref containing headers to include with the request. If the value for
-# a header is an array reference, the header will be output multiple times with
-# each value in the array. These headers over-write any default headers.
-# * C<content>
-# A scalar to include as the body of the request OR a code reference
-# that will be called iteratively to produce the body of the request
-# * C<trailer_callback>
-# A code reference that will be called if it exists to provide a hashref
-# of trailing headers (only used with chunked transfer-encoding)
-# * C<data_callback>
-# A code reference that will be called for each chunks of the response
-# body received.
-#
-# If the C<content> option is a code reference, it will be called iteratively
-# to provide the content body of the request. It should return the empty
-# string or undef when the iterator is exhausted.
-#
-# If the C<content> option is the empty string, no C<content-type> or
-# C<content-length> headers will be generated.
-#
-# If the C<data_callback> option is provided, it will be called iteratively until
-# the entire response body is received. The first argument will be a string
-# containing a chunk of the response body, the second argument will be the
-# in-progress response hash reference, as described below. (This allows
-# customizing the action of the callback based on the C<status> or C<headers>
-# received prior to the content body.)
-#
-# The C<request> method returns a hashref containing the response. The hashref
-# will have the following keys:
-#
-# =for :list
-# * C<success>
-# Boolean indicating whether the operation returned a 2XX status code
-# * C<url>
-# URL that provided the response. This is the URL of the request unless
-# there were redirections, in which case it is the last URL queried
-# in a redirection chain
-# * C<status>
-# The HTTP status code of the response
-# * C<reason>
-# The response phrase returned by the server
-# * C<content>
-# The body of the response. If the response does not have any content
-# or if a data callback is provided to consume the response body,
-# this will be the empty string
-# * 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
-#
-# On an exception during the execution of the request, the C<status> field will
-# contain 599, and the C<content> field will contain the text of the exception.
-#
-# =cut
+#pod =method request
+#pod
+#pod $response = $http->request($method, $url);
+#pod $response = $http->request($method, $url, \%options);
+#pod
+#pod Executes an HTTP request of the given method type ('GET', 'HEAD', 'POST',
+#pod 'PUT', etc.) on the given URL. The URL must have unsafe characters escaped and
+#pod international domain names encoded.
+#pod
+#pod If the URL includes a "user:password" stanza, they will be used for Basic-style
+#pod authorization headers. (Authorization headers will not be included in a
+#pod redirected request.) For example:
+#pod
+#pod $http->request('GET', 'http://Aladdin:open sesame@example.com/');
+#pod
+#pod If the "user:password" stanza contains reserved characters, they must
+#pod be percent-escaped:
+#pod
+#pod $http->request('GET', 'http://john%40example.com:password@example.com/');
+#pod
+#pod A hashref of options may be appended to modify the request.
+#pod
+#pod Valid options are:
+#pod
+#pod =for :list
+#pod * C<headers> —
+#pod A hashref containing headers to include with the request. If the value for
+#pod a header is an array reference, the header will be output multiple times with
+#pod each value in the array. These headers over-write any default headers.
+#pod * C<content> —
+#pod A scalar to include as the body of the request OR a code reference
+#pod that will be called iteratively to produce the body of the request
+#pod * C<trailer_callback> —
+#pod A code reference that will be called if it exists to provide a hashref
+#pod of trailing headers (only used with chunked transfer-encoding)
+#pod * C<data_callback> —
+#pod A code reference that will be called for each chunks of the response
+#pod body received.
+#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
+#pod may be ignored or overwritten if necessary for transport compliance.
+#pod
+#pod If the C<content> option is a code reference, it will be called iteratively
+#pod to provide the content body of the request. It should return the empty
+#pod string or undef when the iterator is exhausted.
+#pod
+#pod If the C<content> option is the empty string, no C<content-type> or
+#pod C<content-length> headers will be generated.
+#pod
+#pod If the C<data_callback> option is provided, it will be called iteratively until
+#pod the entire response body is received. The first argument will be a string
+#pod containing a chunk of the response body, the second argument will be the
+#pod in-progress response hash reference, as described below. (This allows
+#pod customizing the action of the callback based on the C<status> or C<headers>
+#pod received prior to the content body.)
+#pod
+#pod The C<request> method returns a hashref containing the response. The hashref
+#pod will have the following keys:
+#pod
+#pod =for :list
+#pod * C<success> —
+#pod Boolean indicating whether the operation returned a 2XX status code
+#pod * C<url> —
+#pod URL that provided the response. This is the URL of the request unless
+#pod there were redirections, in which case it is the last URL queried
+#pod in a redirection chain
+#pod * C<status> —
+#pod The HTTP status code of the response
+#pod * C<reason> —
+#pod The response phrase returned by the server
+#pod * C<content> —
+#pod The body of the response. If the response does not have any content
+#pod or if a data callback is provided to consume the response body,
+#pod this will be the empty string
+#pod * C<headers> —
+#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
+#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.
+#pod
+#pod =cut
my %idempotent = map { $_ => 1 } qw/GET HEAD PUT DELETE OPTIONS TRACE/;
@@ -404,19 +423,19 @@ sub request {
return $response;
}
-# =method www_form_urlencode
-#
-# $params = $http->www_form_urlencode( $data );
-# $response = $http->get("http://example.com/query?$params");
-#
-# This method converts the key/value pairs from a data hash or array reference
-# into a C<x-www-form-urlencoded> string. The keys and values from the data
-# reference will be UTF-8 encoded and escaped per RFC 3986. If a value is an
-# array reference, the key will be repeated with each of the values of the array
-# reference. If data is provided as a hash reference, the key/value pairs in the
-# resulting string will be sorted by key and value for consistent ordering.
-#
-# =cut
+#pod =method www_form_urlencode
+#pod
+#pod $params = $http->www_form_urlencode( $data );
+#pod $response = $http->get("http://example.com/query?$params");
+#pod
+#pod This method converts the key/value pairs from a data hash or array reference
+#pod into a C<x-www-form-urlencoded> string. The keys and values from the data
+#pod reference will be UTF-8 encoded and escaped per RFC 3986. If a value is an
+#pod array reference, the key will be repeated with each of the values of the array
+#pod reference. If data is provided as a hash reference, the key/value pairs in the
+#pod resulting string will be sorted by key and value for consistent ordering.
+#pod
+#pod =cut
sub www_form_urlencode {
my ($self, $data) = @_;
@@ -455,7 +474,7 @@ my %DefaultPort = (
sub _agent {
my $class = ref($_[0]) || $_[0];
(my $default_agent = $class) =~ s{::}{-}g;
- return $default_agent . "/" . ($class->VERSION || 0);
+ return $default_agent . "/" . $class->VERSION;
}
sub _request {
@@ -467,6 +486,7 @@ sub _request {
method => $method,
scheme => $scheme,
host => $host,
+ port => $port,
host_port => ($port == $DefaultPort{$scheme} ? $host : "$host:$port"),
uri => $path_query,
headers => {},
@@ -603,9 +623,9 @@ sub _create_proxy_tunnel {
my $connect_request = {
method => 'CONNECT',
- uri => $request->{host_port},
+ uri => "$request->{host}:$request->{port}",
headers => {
- host => $request->{host_port},
+ host => "$request->{host}:$request->{port}",
'user-agent' => $agent,
}
};
@@ -641,6 +661,11 @@ sub _prepare_headers_and_cb {
$request->{headers}{lc $k} = $v;
}
}
+
+ if (exists $request->{headers}{'host'}) {
+ die(qq/The 'Host' header must not be provided as header option\n/);
+ }
+
$request->{headers}{'host'} = $request->{host_port};
$request->{headers}{'user-agent'} ||= $self->{agent};
$request->{headers}{'connection'} = "close"
@@ -757,31 +782,27 @@ sub _split_url {
my $url = pop;
# URI regex adapted from the URI module
- my ($scheme, $authority, $path_query) = $url =~ m<\A([^:/?#]+)://([^/?#]*)([^#]*)>
+ my ($scheme, $host, $path_query) = $url =~ m<\A([^:/?#]+)://([^/?#]*)([^#]*)>
or die(qq/Cannot parse URL: '$url'\n/);
$scheme = lc $scheme;
$path_query = "/$path_query" unless $path_query =~ m<\A/>;
- my ($auth,$host);
- $authority = (length($authority)) ? $authority : 'localhost';
- if ( $authority =~ /@/ ) {
- ($auth,$host) = $authority =~ m/\A([^@]*)@(.*)\z/; # user:pass@host
+ my $auth = '';
+ if ( (my $i = index $host, '@') != -1 ) {
+ # user:pass@host
+ $auth = substr $host, 0, $i, ''; # take up to the @ for auth
+ substr $host, 0, 1, ''; # knock the @ off the host
+
# userinfo might be percent escaped, so recover real auth info
$auth =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
}
- else {
- $host = $authority;
- $auth = '';
- }
- $host = lc $host;
- my $port = do {
- $host =~ s/:([0-9]*)\z// && length $1
- ? $1
- : ($scheme eq 'http' ? 80 : $scheme eq 'https' ? 443 : undef);
- };
+ my $port = $host =~ s/:(\d*)\z// && length $1 ? $1
+ : $scheme eq 'http' ? 80
+ : $scheme eq 'https' ? 443
+ : undef;
- return ($scheme, $host, $port, $path_query, $auth);
+ return ($scheme, (length $host ? lc $host : "localhost") , $port, $path_query, $auth);
}
# Date conversions adapted from HTTP::Date
@@ -907,6 +928,8 @@ sub connect {
$self->{scheme} = $scheme;
$self->{host} = $host;
$self->{port} = $port;
+ $self->{pid} = $$;
+ $self->{tid} = _get_tid();
return $self;
}
@@ -1132,8 +1155,7 @@ sub write_header_lines {
$HeaderCase{lc $field_name} = $field_name;
}
for (ref $v eq 'ARRAY' ? @$v : $v) {
- /[^\x0D\x0A]/
- or die(qq/Invalid HTTP header field value ($field_name): / . $Printable->($_). "\n");
+ $_ = '' unless defined $_;
$buf .= "$field_name: $_\x0D\x0A";
}
}
@@ -1206,7 +1228,7 @@ sub write_content_body {
}
$len == $content_length
- or die(qq/Content-Length missmatch (got: $len expected: $content_length)\n/);
+ or die(qq/Content-Length mismatch (got: $len expected: $content_length)\n/);
return $len;
}
@@ -1351,7 +1373,9 @@ sub _assert_ssl {
sub can_reuse {
my ($self,$scheme,$host,$port) = @_;
return 0 if
- length($self->{rbuf})
+ $self->{pid} != $$
+ || $self->{tid} != _get_tid()
+ || length($self->{rbuf})
|| $scheme ne $self->{scheme}
|| $host ne $self->{host}
|| $port ne $self->{port}
@@ -1371,11 +1395,16 @@ sub _find_CA_file {
return Mozilla::CA::SSL_ca_file()
if eval { require Mozilla::CA };
- foreach my $ca_bundle (qw{
- /etc/ssl/certs/ca-certificates.crt
- /etc/pki/tls/certs/ca-bundle.crt
- /etc/ssl/ca-bundle.pem
- }
+ # cert list copied from golang src/crypto/x509/root_unix.go
+ foreach my $ca_bundle (
+ "/etc/ssl/certs/ca-certificates.crt", # Debian/Ubuntu/Gentoo etc.
+ "/etc/pki/tls/certs/ca-bundle.crt", # Fedora/RHEL
+ "/etc/ssl/ca-bundle.pem", # OpenSUSE
+ "/etc/openssl/certs/ca-certificates.crt", # NetBSD
+ "/etc/ssl/cert.pem", # OpenBSD
+ "/usr/local/share/certs/ca-root-nss.crt", # FreeBSD/DragonFly
+ "/etc/pki/tls/cacert.pem", # OpenELEC
+ "/etc/certs/ca-certificates.crt", # Solaris 11.2+
) {
return $ca_bundle if -e $ca_bundle;
}
@@ -1384,6 +1413,12 @@ sub _find_CA_file {
. qq/Try installing Mozilla::CA from CPAN\n/;
}
+# for thread safety, we need to know thread id if threads are loaded
+sub _get_tid {
+ no warnings 'reserved'; # for 'threads'
+ return threads->can("tid") ? threads->tid : 0;
+}
+
sub _ssl_args {
my ($self, $host) = @_;
@@ -1428,7 +1463,7 @@ HTTP::Tiny - A small, simple, correct HTTP/1.1 client
=head1 VERSION
-version 0.043
+version 0.054
=head1 SYNOPSIS
@@ -1473,100 +1508,74 @@ This constructor returns a new HTTP::Tiny object. Valid attributes include:
=item *
-C<agent>
-
-A user-agent string (defaults to 'HTTP-Tiny/$VERSION'). If C<agent> ends in a space character, the default user-agent string is appended.
+C<agent> — A user-agent string (defaults to 'HTTP-Tiny/$VERSION'). If C<agent> — ends in a space character, the default user-agent string is appended.
=item *
-C<cookie_jar>
-
-An instance of L<HTTP::CookieJar> or equivalent class that supports the C<add> and C<cookie_header> methods
+C<cookie_jar> — An instance of L<HTTP::CookieJar> — or equivalent class that supports the C<add> and C<cookie_header> methods
=item *
-C<default_headers>
-
-A hashref of default headers to apply to requests
+C<default_headers> — A hashref of default headers to apply to requests
=item *
-C<local_address>
-
-The local IP address to bind to
+C<local_address> — The local IP address to bind to
=item *
-C<keep_alive>
-
-Whether to reuse the last connection (if for the same scheme, host and port) (defaults to 1)
+C<keep_alive> — Whether to reuse the last connection (if for the same scheme, host and port) (defaults to 1)
=item *
-C<max_redirect>
-
-Maximum number of redirects allowed (defaults to 5)
+C<max_redirect> — Maximum number of redirects allowed (defaults to 5)
=item *
-C<max_size>
-
-Maximum response size (only when not using a data callback). If defined, responses larger than this will return an exception.
+C<max_size> — Maximum response size (only when not using a data callback). If defined, responses larger than this will return an exception.
=item *
-C<http_proxy>
-
-URL of a proxy server to use for HTTP connections (default is C<$ENV{http_proxy}> if set)
+C<http_proxy> — URL of a proxy server to use for HTTP connections (default is C<$ENV{http_proxy}> — if set)
=item *
-C<https_proxy>
-
-URL of a proxy server to use for HTTPS connections (default is C<$ENV{https_proxy}> if set)
+C<https_proxy> — URL of a proxy server to use for HTTPS connections (default is C<$ENV{https_proxy}> — if set)
=item *
-C<proxy>
-
-URL of a generic proxy server for both HTTP and HTTPS connections (default is C<$ENV{all_proxy}> if set)
+C<proxy> — URL of a generic proxy server for both HTTP and HTTPS connections (default is C<$ENV{all_proxy}> — if set)
=item *
-C<no_proxy>
-
-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}>)
+C<no_proxy> — 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}> —)
=item *
-C<timeout>
-
-Request timeout in seconds (default is 60)
+C<timeout> — Request timeout in seconds (default is 60)
=item *
-C<verify_SSL>
-
-A boolean that indicates whether to validate the SSL certificate of an C<https>
-connection (default is false)
+C<verify_SSL> — A boolean that indicates whether to validate the SSL certificate of an C<https> — connection (default is false)
=item *
-C<SSL_options>
-
-A hashref of C<SSL_*> options to pass through to L<IO::Socket::SSL>
+C<SSL_options> — A hashref of C<SSL_*> — options to pass through to L<IO::Socket::SSL>
=back
+Passing an explicit C<undef> for C<proxy>, C<http_proxy> or C<https_proxy> will
+prevent getting the corresponding proxies from the environment.
+
Exceptions from C<max_size>, C<timeout> or other errors will result in a
pseudo-HTTP status code of 599 and a reason of "Internal Exception". The
content field in the response will contain the text of the exception.
The C<keep_alive> parameter enables a persistent connection, but only to a
single destination scheme, host and port. Also, if any connection-relevant
-attributes are modified, a persistent connection will be dropped. If you want
-persistent connections across multiple destinations, use multiple HTTP::Tiny
-objects.
+attributes are modified, or if the process ID or thread ID change, the
+persistent connection will be dropped. If you want persistent connections
+across multiple destinations, use multiple HTTP::Tiny objects.
See L</SSL SUPPORT> for more on the C<verify_SSL> and C<SSL_options> attributes.
@@ -1649,35 +1658,26 @@ Valid options are:
=item *
-C<headers>
-
-A hashref containing headers to include with the request. If the value for
-a header is an array reference, the header will be output multiple times with
-each value in the array. These headers over-write any default headers.
+C<headers> — A hashref containing headers to include with the request. If the value for a header is an array reference, the header will be output multiple times with each value in the array. These headers over-write any default headers.
=item *
-C<content>
-
-A scalar to include as the body of the request OR a code reference
-that will be called iteratively to produce the body of the request
+C<content> — A scalar to include as the body of the request OR a code reference that will be called iteratively to produce the body of the request
=item *
-C<trailer_callback>
-
-A code reference that will be called if it exists to provide a hashref
-of trailing headers (only used with chunked transfer-encoding)
+C<trailer_callback> — A code reference that will be called if it exists to provide a hashref of trailing headers (only used with chunked transfer-encoding)
=item *
-C<data_callback>
-
-A code reference that will be called for each chunks of the response
-body received.
+C<data_callback> — A code reference that will be called for each chunks of the response body received.
=back
+The C<Host> header is generated from the URL in accordance with RFC 2616. It
+is a fatal error to specify C<Host> in the C<headers> option. Other headers
+may be ignored or overwritten if necessary for transport compliance.
+
If the C<content> option is a code reference, it will be called iteratively
to provide the content body of the request. It should return the empty
string or undef when the iterator is exhausted.
@@ -1699,45 +1699,27 @@ will have the following keys:
=item *
-C<success>
-
-Boolean indicating whether the operation returned a 2XX status code
+C<success> — Boolean indicating whether the operation returned a 2XX status code
=item *
-C<url>
-
-URL that provided the response. This is the URL of the request unless
-there were redirections, in which case it is the last URL queried
-in a redirection chain
+C<url> — URL that provided the response. This is the URL of the request unless there were redirections, in which case it is the last URL queried in a redirection chain
=item *
-C<status>
-
-The HTTP status code of the response
+C<status> — The HTTP status code of the response
=item *
-C<reason>
-
-The response phrase returned by the server
+C<reason> — The response phrase returned by the server
=item *
-C<content>
-
-The body of the response. If the response does not have any content
-or if a data callback is provided to consume the response body,
-this will be the empty string
+C<content> — The body of the response. If the response does not have any content or if a data callback is provided to consume the response body, this will be the empty string
=item *
-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
+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
=back
@@ -1775,7 +1757,7 @@ verify_SSL
Direct C<https> connections are supported only if L<IO::Socket::SSL> 1.56 or
greater and L<Net::SSLeay> 1.49 or greater are installed. An exception will be
-thrown if a new enough versions of these modules not installed or if the SSL
+thrown if new enough versions of these modules are not installed or if the SSL
encryption fails. An C<https> connection may be made via an C<http> proxy that
supports the CONNECT command (i.e. RFC 2817). You may not proxy C<https> via
a proxy that itself requires C<https> to communicate.
@@ -1867,7 +1849,7 @@ HTTP::Tiny supports the following proxy environment variables:
=item *
-http_proxy
+http_proxy or HTTP_PROXY
=item *
@@ -1879,6 +1861,11 @@ all_proxy or ALL_PROXY
=back
+If the C<REQUEST_METHOD> environment variable is set, then this might be a CGI
+process and C<HTTP_PROXY> would be set from the C<Proxy:> header, which is a
+security risk. If C<REQUEST_METHOD> is set, C<HTTP_PROXY> (the upper case
+variant only) is ignored.
+
Tunnelling C<https> over an C<http> proxy using the CONNECT method is
supported. If your proxy uses C<https> itself, you can not tunnel C<https>
over it.
@@ -1895,9 +1882,40 @@ environment variables.
=head1 LIMITATIONS
HTTP::Tiny is I<conditionally compliant> with the
-L<HTTP/1.1 specification|http://www.w3.org/Protocols/rfc2616/rfc2616.html>.
+L<HTTP/1.1 specifications|http://www.w3.org/Protocols/>:
+
+=over 4
+
+=item *
+
+"Message Syntax and Routing" [RFC7230]
+
+=item *
+
+"Semantics and Content" [RFC7231]
+
+=item *
+
+"Conditional Requests" [RFC7232]
+
+=item *
+
+"Range Requests" [RFC7233]
+
+=item *
+
+"Caching" [RFC7234]
+
+=item *
+
+"Authentication" [RFC7235]
+
+=back
+
It attempts to meet all "MUST" requirements of the specification, but does not
-implement all "SHOULD" requirements.
+implement all "SHOULD" requirements. (Note: it was developed against the
+earlier RFC 2616 specification and may not yet meet the revised RFC 7230-7235
+spec.)
Some particular limitations of note include:
@@ -2015,6 +2033,8 @@ David Golden <dagolden@cpan.org>
=head1 CONTRIBUTORS
+=for stopwords Alan Gardner Alessandro Ghedini Brad Gilbert Chris Nehren Weyl Claes Jakobsson Clinton Gormley Craig Berry David Mitchell Dean Pearce Edward Zborowski James Raspass Jess Robinson Lukas Eklund Martin J. Evans Martin-Louis Bright Mike Doherty Olaf Alders Petr Písař Serguei Trouchelle Sören Kornetzki Syohei YOSHIDA Tom Hukins Tony Cook
+
=over 4
=item *
@@ -2055,10 +2075,18 @@ David Mitchell <davem@iabyn.com>
=item *
+Dean Pearce <pearce@pythian.com>
+
+=item *
+
Edward Zborowski <ed@rubensteintech.com>
=item *
+James Raspass <jraspass@gmail.com>
+
+=item *
+
Jess Robinson <castaway@desert-island.me.uk>
=item *
@@ -2079,6 +2107,10 @@ Mike Doherty <doherty@cpan.org>
=item *
+Olaf Alders <olaf@wundersolutions.com>
+
+=item *
+
Petr Písař <ppisar@redhat.com>
=item *
@@ -2087,17 +2119,25 @@ Serguei Trouchelle <stro@cpan.org>
=item *
+Sören Kornetzki <soeren.kornetzki@delti.com>
+
+=item *
+
Syohei YOSHIDA <syohex@gmail.com>
=item *
+Tom Hukins <tom@eborcom.com>
+
+=item *
+
Tony Cook <tony@develop-help.com>
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2014 by Christian Hansen.
+This software is copyright (c) 2015 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/Master/tlpkg/tlperl/lib/Hash/Util.pm b/Master/tlpkg/tlperl/lib/Hash/Util.pm
index 8ae25d14d97..da0251059cf 100644
--- a/Master/tlpkg/tlperl/lib/Hash/Util.pm
+++ b/Master/tlpkg/tlperl/lib/Hash/Util.pm
@@ -29,12 +29,12 @@ our @EXPORT_OK = qw(
hidden_ref_keys legal_ref_keys
hash_seed hash_value hv_store
- bucket_stats bucket_info bucket_array
+ bucket_stats bucket_stats_formatted bucket_info bucket_array
lock_hash_recurse unlock_hash_recurse
hash_traversal_mask
);
-our $VERSION = '0.16';
+our $VERSION = '0.18';
require XSLoader;
XSLoader::load();
@@ -523,21 +523,20 @@ See also bucket_stats() and bucket_array().
Returns a list of statistics about a hash.
- my ($keys, buckets, $used, $utilization_ratio, $collision_pct,
- $mean, $stddev, @length_counts) = bucket_info($hashref);
-
+ my ($keys, $buckets, $used, $quality, $utilization_ratio,
+ $collision_pct, $mean, $stddev, @length_counts)
+ = bucket_stats($hashref);
Fields are as follows:
-
0: Number of keys in the hash
1: Number of buckets in the hash
2: Number of used buckets in the hash
3: Hash Quality Score
4: Percent of buckets used
5: Percent of keys which are in collision
- 6: Average bucket length
- 7: Standard Deviation of bucket lengths.
+ 6: Mean bucket length of occupied buckets
+ 7: Standard Deviation of bucket lengths of occupied buckets
rest : list of counts, Kth element is the number of buckets
with K keys in it.
@@ -581,21 +580,128 @@ sub bucket_stats {
my ($keys, $buckets, $used, @length_counts) = bucket_info($hash);
my $sum;
my $score;
- for (0 .. $#length_counts) {
+ for (1 .. $#length_counts) {
$sum += ($length_counts[$_] * $_);
$score += $length_counts[$_] * ( $_ * ($_ + 1 ) / 2 );
}
$score = $score /
(( $keys / (2 * $buckets )) * ( $keys + ( 2 * $buckets ) - 1 ))
if $keys;
- my $mean= $sum/$buckets;
- $sum= 0;
- $sum += ($length_counts[$_] * (($_-$mean)**2)) for 0 .. $#length_counts;
+ my ($mean, $stddev)= (0, 0);
+ if ($used) {
+ $mean= $sum / $used;
+ $sum= 0;
+ $sum += ($length_counts[$_] * (($_-$mean)**2)) for 1 .. $#length_counts;
- my $stddev= sqrt($sum/$buckets);
+ $stddev= sqrt($sum/$used);
+ }
return $keys, $buckets, $used, $keys ? ($score, $used/$buckets, ($keys-$used)/$keys, $mean, $stddev, @length_counts) : ();
}
+=item B<bucket_stats_formatted>
+
+ print bucket_stats_formatted($hashref);
+
+Return a formatted report of the information returned by bucket_stats().
+An example report looks like this:
+
+ Keys: 50 Buckets: 33/64 Quality-Score: 1.01 (Good)
+ Utilized Buckets: 51.56% Optimal: 78.12% Keys In Collision: 34.00%
+ Chain Length - mean: 1.52 stddev: 0.66
+ Buckets 64 [0000000000000000000000000000000111111111111111111122222222222333]
+ Len 0 Pct: 48.44 [###############################]
+ Len 1 Pct: 29.69 [###################]
+ Len 2 Pct: 17.19 [###########]
+ Len 3 Pct: 4.69 [###]
+ Keys 50 [11111111111111111111111111111111122222222222222333]
+ Pos 1 Pct: 66.00 [#################################]
+ Pos 2 Pct: 28.00 [##############]
+ Pos 3 Pct: 6.00 [###]
+
+The first set of stats gives some summary statistical information,
+including the quality score translated into "Good", "Poor" and "Bad",
+(score<=1.05, score<=1.2, score>1.2). See the documentation in
+bucket_stats() for more details.
+
+The two sets of barcharts give stats and a visual indication of performance
+of the hash.
+
+The first gives data on bucket chain lengths and provides insight on how
+much work a fetch *miss* will take. In this case we have to inspect every item
+in a bucket before we can be sure the item is not in the list. The performance
+for an insert is equivalent to this case, as is a delete where the item
+is not in the hash.
+
+The second gives data on how many keys are at each depth in the chain, and
+gives an idea of how much work a fetch *hit* will take. The performance for
+an update or delete of an item in the hash is equivalent to this case.
+
+Note that these statistics are summary only. Actual performance will depend
+on real hit/miss ratios accessing the hash. If you are concerned by hit ratios
+you are recommended to "oversize" your hash by using something like:
+
+ keys(%hash)= keys(%hash) << $k;
+
+With $k chosen carefully, and likely to be a small number like 1 or 2. In
+theory the larger the bucket array the less chance of collision.
+
+=cut
+
+
+sub _bucket_stats_formatted_bars {
+ my ($total, $ary, $start_idx, $title, $row_title)= @_;
+
+ my $return = "";
+ my $max_width= $total > 64 ? 64 : $total;
+ my $bar_width= $max_width / $total;
+
+ my $str= "";
+ if ( @$ary < 10) {
+ for my $idx ($start_idx .. $#$ary) {
+ $str .= $idx x sprintf("%.0f", ($ary->[$idx] * $bar_width));
+ }
+ } else {
+ $str= "-" x $max_width;
+ }
+ $return .= sprintf "%-7s %6d [%s]\n",$title, $total, $str;
+
+ foreach my $idx ($start_idx .. $#$ary) {
+ $return .= sprintf "%-.3s %3d %6.2f%% %6d [%s]\n",
+ $row_title,
+ $idx,
+ $ary->[$idx] / $total * 100,
+ $ary->[$idx],
+ "#" x sprintf("%.0f", ($ary->[$idx] * $bar_width)),
+ ;
+ }
+ return $return;
+}
+
+sub bucket_stats_formatted {
+ my ($hashref)= @_;
+ my ($keys, $buckets, $used, $score, $utilization_ratio, $collision_pct,
+ $mean, $stddev, @length_counts) = bucket_stats($hashref);
+
+ my $return= sprintf "Keys: %d Buckets: %d/%d Quality-Score: %.2f (%s)\n"
+ . "Utilized Buckets: %.2f%% Optimal: %.2f%% Keys In Collision: %.2f%%\n"
+ . "Chain Length - mean: %.2f stddev: %.2f\n",
+ $keys, $used, $buckets, $score, $score <= 1.05 ? "Good" : $score < 1.2 ? "Poor" : "Bad",
+ $utilization_ratio * 100,
+ $keys/$buckets * 100,
+ $collision_pct * 100,
+ $mean, $stddev;
+
+ my @key_depth;
+ $key_depth[$_]= $length_counts[$_] + ( $key_depth[$_+1] || 0 )
+ for reverse 1 .. $#length_counts;
+
+ if ($keys) {
+ $return .= _bucket_stats_formatted_bars($buckets, \@length_counts, 0, "Buckets", "Len");
+ $return .= _bucket_stats_formatted_bars($keys, \@key_depth, 1, "Keys", "Pos");
+ }
+ return $return
+}
+
=item B<hv_store>
my $sv = 0;
diff --git a/Master/tlpkg/tlperl/lib/IO.pm b/Master/tlpkg/tlperl/lib/IO.pm
index ba89f0c8e6c..27629582108 100644
--- a/Master/tlpkg/tlperl/lib/IO.pm
+++ b/Master/tlpkg/tlperl/lib/IO.pm
@@ -7,7 +7,7 @@ use Carp;
use strict;
use warnings;
-our $VERSION = "1.31";
+our $VERSION = "1.35";
XSLoader::load 'IO', $VERSION;
sub import {
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm
index c77e06b29b7..096c7530971 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm
@@ -4,12 +4,12 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.064 qw(:Status);
+use IO::Compress::Base::Common 2.068 qw(:Status);
-use Compress::Raw::Bzip2 2.064 ;
+use Compress::Raw::Bzip2 2.068 ;
our ($VERSION);
-$VERSION = '2.064';
+$VERSION = '2.068';
sub mkCompObject
{
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm
index c8fdf2a2c7d..a52b623352d 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm
@@ -4,13 +4,13 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.064 qw(:Status);
-use Compress::Raw::Zlib 2.064 qw( !crc32 !adler32 ) ;
+use IO::Compress::Base::Common 2.068 qw(:Status);
+use Compress::Raw::Zlib 2.068 qw( !crc32 !adler32 ) ;
require Exporter;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, @EXPORT, %DEFLATE_CONSTANTS);
-$VERSION = '2.064';
+$VERSION = '2.068';
@ISA = qw(Exporter);
@EXPORT_OK = @Compress::Raw::Zlib::DEFLATE_CONSTANTS;
%EXPORT_TAGS = %Compress::Raw::Zlib::DEFLATE_CONSTANTS;
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm
index b612de0a22b..b001abef576 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm
@@ -4,10 +4,10 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.064 qw(:Status);
+use IO::Compress::Base::Common 2.068 qw(:Status);
our ($VERSION);
-$VERSION = '2.064';
+$VERSION = '2.068';
sub mkCompObject
{
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Base.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Base.pm
index 6dc791776ab..20adb0e19da 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Base.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Base.pm
@@ -6,7 +6,7 @@ require 5.006 ;
use strict ;
use warnings;
-use IO::Compress::Base::Common 2.064 ;
+use IO::Compress::Base::Common 2.068 ;
use IO::File (); ;
use Scalar::Util ();
@@ -20,7 +20,7 @@ use Symbol();
our (@ISA, $VERSION);
@ISA = qw(Exporter IO::File);
-$VERSION = '2.064';
+$VERSION = '2.068';
#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.
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm
index aa61c792c86..86bcaa6ef88 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm
+++ b/Master/tlpkg/tlperl/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.064';
+$VERSION = '2.068';
@EXPORT = qw( isaFilehandle isaFilename isaScalar
whatIsInput whatIsOutput
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm
index fc62b4f4f95..d6c2d66a79b 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm
@@ -5,16 +5,16 @@ use warnings;
use bytes;
require Exporter ;
-use IO::Compress::Base 2.064 ;
+use IO::Compress::Base 2.068 ;
-use IO::Compress::Base::Common 2.064 qw();
-use IO::Compress::Adapter::Bzip2 2.064 ;
+use IO::Compress::Base::Common 2.068 qw();
+use IO::Compress::Adapter::Bzip2 2.068 ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bzip2Error);
-$VERSION = '2.064';
+$VERSION = '2.068';
$Bzip2Error = '';
@ISA = qw(Exporter IO::Compress::Base);
@@ -51,7 +51,7 @@ sub getExtraParams
{
my $self = shift ;
- use IO::Compress::Base::Common 2.064 qw(:Parse);
+ use IO::Compress::Base::Common 2.068 qw(:Parse);
return (
'blocksize100k' => [IO::Compress::Base::Common::Parse_unsigned, 1],
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Deflate.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Deflate.pm
index d8848d7f696..4b8095343a8 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Deflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Deflate.pm
@@ -8,16 +8,16 @@ use bytes;
require Exporter ;
-use IO::Compress::RawDeflate 2.064 ();
-use IO::Compress::Adapter::Deflate 2.064 ;
+use IO::Compress::RawDeflate 2.068 ();
+use IO::Compress::Adapter::Deflate 2.068 ;
-use IO::Compress::Zlib::Constants 2.064 ;
-use IO::Compress::Base::Common 2.064 qw();
+use IO::Compress::Zlib::Constants 2.068 ;
+use IO::Compress::Base::Common 2.068 qw();
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $DeflateError);
-$VERSION = '2.064';
+$VERSION = '2.068';
$DeflateError = '';
@ISA = qw(Exporter IO::Compress::RawDeflate);
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Gzip.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Gzip.pm
index febeea6ca91..01ee34ef15c 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Gzip.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Gzip.pm
@@ -8,12 +8,12 @@ use bytes;
require Exporter ;
-use IO::Compress::RawDeflate 2.064 () ;
-use IO::Compress::Adapter::Deflate 2.064 ;
+use IO::Compress::RawDeflate 2.068 () ;
+use IO::Compress::Adapter::Deflate 2.068 ;
-use IO::Compress::Base::Common 2.064 qw(:Status );
-use IO::Compress::Gzip::Constants 2.064 ;
-use IO::Compress::Zlib::Extra 2.064 ;
+use IO::Compress::Base::Common 2.068 qw(:Status );
+use IO::Compress::Gzip::Constants 2.068 ;
+use IO::Compress::Zlib::Extra 2.068 ;
BEGIN
{
@@ -25,7 +25,7 @@ BEGIN
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $GzipError);
-$VERSION = '2.064';
+$VERSION = '2.068';
$GzipError = '' ;
@ISA = qw(Exporter IO::Compress::RawDeflate);
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm
index f6c15c72c9a..2b73a3c94c6 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm
+++ b/Master/tlpkg/tlperl/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.064';
+$VERSION = '2.068';
@ISA = qw(Exporter);
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm b/Master/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm
index 38f7f7dab0e..2209952cd2b 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm
@@ -6,15 +6,15 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base 2.064 ;
-use IO::Compress::Base::Common 2.064 qw(:Status );
-use IO::Compress::Adapter::Deflate 2.064 ;
+use IO::Compress::Base 2.068 ;
+use IO::Compress::Base::Common 2.068 qw(:Status );
+use IO::Compress::Adapter::Deflate 2.068 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError);
-$VERSION = '2.064';
+$VERSION = '2.068';
$RawDeflateError = '';
@ISA = qw(Exporter IO::Compress::Base);
@@ -116,8 +116,8 @@ sub getExtraParams
return getZlibParams();
}
-use IO::Compress::Base::Common 2.064 qw(:Parse);
-use Compress::Raw::Zlib 2.064 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
+use IO::Compress::Base::Common 2.068 qw(:Parse);
+use Compress::Raw::Zlib 2.068 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],
@@ -147,7 +147,7 @@ sub getFileInfo
}
-use IO::Seekable qw(SEEK_SET);
+use Fcntl qw(SEEK_SET);
sub createMerge
{
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Zip.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Zip.pm
index a8645b346af..f8ec20cda70 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Zip.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Zip.pm
@@ -4,30 +4,30 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.064 qw(:Status );
-use IO::Compress::RawDeflate 2.064 ();
-use IO::Compress::Adapter::Deflate 2.064 ;
-use IO::Compress::Adapter::Identity 2.064 ;
-use IO::Compress::Zlib::Extra 2.064 ;
-use IO::Compress::Zip::Constants 2.064 ;
+use IO::Compress::Base::Common 2.068 qw(:Status );
+use IO::Compress::RawDeflate 2.068 ();
+use IO::Compress::Adapter::Deflate 2.068 ;
+use IO::Compress::Adapter::Identity 2.068 ;
+use IO::Compress::Zlib::Extra 2.068 ;
+use IO::Compress::Zip::Constants 2.068 ;
use File::Spec();
use Config;
-use Compress::Raw::Zlib 2.064 ();
+use Compress::Raw::Zlib 2.068 ();
BEGIN
{
eval { require IO::Compress::Adapter::Bzip2 ;
- import IO::Compress::Adapter::Bzip2 2.064 ;
+ import IO::Compress::Adapter::Bzip2 2.068 ;
require IO::Compress::Bzip2 ;
- import IO::Compress::Bzip2 2.064 ;
+ import IO::Compress::Bzip2 2.068 ;
} ;
eval { require IO::Compress::Adapter::Lzma ;
- import IO::Compress::Adapter::Lzma 2.064 ;
+ import IO::Compress::Adapter::Lzma 2.068 ;
require IO::Compress::Lzma ;
- import IO::Compress::Lzma 2.064 ;
+ import IO::Compress::Lzma 2.068 ;
} ;
}
@@ -36,7 +36,7 @@ require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $ZipError);
-$VERSION = '2.064';
+$VERSION = '2.068';
$ZipError = '';
@ISA = qw(Exporter IO::Compress::RawDeflate);
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm
index 02609b940a4..bc56966a452 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm
@@ -7,7 +7,7 @@ require Exporter;
our ($VERSION, @ISA, @EXPORT, %ZIP_CM_MIN_VERSIONS);
-$VERSION = '2.064';
+$VERSION = '2.068';
@ISA = qw(Exporter);
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm
index 7dd1622dfb2..f85364d5b7f 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm
@@ -9,7 +9,7 @@ require Exporter;
our ($VERSION, @ISA, @EXPORT);
-$VERSION = '2.064';
+$VERSION = '2.068';
@ISA = qw(Exporter);
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm
index ca92b5f9bd9..f99b9ed02b9 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm
@@ -8,9 +8,9 @@ use bytes;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS);
-$VERSION = '2.064';
+$VERSION = '2.068';
-use IO::Compress::Gzip::Constants 2.064 ;
+use IO::Compress::Gzip::Constants 2.068 ;
sub ExtraFieldError
{
diff --git a/Master/tlpkg/tlperl/lib/IO/HTML.pm b/Master/tlpkg/tlperl/lib/IO/HTML.pm
deleted file mode 100755
index 5fdad2237e1..00000000000
--- a/Master/tlpkg/tlperl/lib/IO/HTML.pm
+++ /dev/null
@@ -1,575 +0,0 @@
-#---------------------------------------------------------------------
-package IO::HTML;
-#
-# Copyright 2014 Christopher J. Madsen
-#
-# Author: Christopher J. Madsen <perl@cjmweb.net>
-# Created: 14 Jan 2012
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the same terms as Perl itself.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either the
-# GNU General Public License or the Artistic License for more details.
-#
-# ABSTRACT: Open an HTML file with automatic charset detection
-#---------------------------------------------------------------------
-
-use 5.008;
-use strict;
-use warnings;
-
-use Carp 'croak';
-use Encode 2.10 qw(decode find_encoding); # need utf-8-strict encoding
-use Exporter 5.57 'import';
-
-our $VERSION = '1.001';
-# This file is part of IO-HTML 1.001 (June 28, 2014)
-
-our $default_encoding ||= 'cp1252';
-
-our @EXPORT = qw(html_file);
-our @EXPORT_OK = qw(find_charset_in html_file_and_encoding html_outfile
- sniff_encoding);
-
-our %EXPORT_TAGS = (
- rw => [qw( html_file html_file_and_encoding html_outfile )],
- all => [ @EXPORT, @EXPORT_OK ],
-);
-
-#=====================================================================
-
-
-sub html_file
-{
- (&html_file_and_encoding)[0]; # return just the filehandle
-} # end html_file
-
-
-# Note: I made html_file and html_file_and_encoding separate functions
-# (instead of making html_file context-sensitive) because I wanted to
-# use html_file in function calls (i.e. list context) without having
-# to write "scalar html_file" all the time.
-
-sub html_file_and_encoding
-{
- my ($filename, $options) = @_;
-
- $options ||= {};
-
- open(my $in, '<:raw', $filename) or croak "Failed to open $filename: $!";
-
-
- my ($encoding, $bom) = sniff_encoding($in, $filename, $options);
-
- if (not defined $encoding) {
- croak "No default encoding specified"
- unless defined($encoding = $default_encoding);
- $encoding = find_encoding($encoding) if $options->{encoding};
- } # end if we didn't find an encoding
-
- binmode $in, sprintf(":encoding(%s):crlf",
- $options->{encoding} ? $encoding->name : $encoding);
-
- return ($in, $encoding, $bom);
-} # end html_file_and_encoding
-#---------------------------------------------------------------------
-
-
-sub html_outfile
-{
- my ($filename, $encoding, $bom) = @_;
-
- if (not defined $encoding) {
- croak "No default encoding specified"
- unless defined($encoding = $default_encoding);
- } # end if we didn't find an encoding
- elsif (ref $encoding) {
- $encoding = $encoding->name;
- }
-
- open(my $out, ">:encoding($encoding)", $filename)
- or croak "Failed to open $filename: $!";
-
- print $out "\x{FeFF}" if $bom;
-
- return $out;
-} # end html_outfile
-#---------------------------------------------------------------------
-
-
-sub sniff_encoding
-{
- my ($in, $filename, $options) = @_;
-
- $filename = 'file' unless defined $filename;
- $options ||= {};
-
- my $pos = tell $in;
- croak "Could not seek $filename: $!" if $pos < 0;
-
- croak "Could not read $filename: $!" unless defined read $in, my $buf, 1024;
-
- seek $in, $pos, 0 or croak "Could not seek $filename: $!";
-
-
- # Check for BOM:
- my $bom;
- my $encoding = do {
- if ($buf =~ /^\xFe\xFF/) {
- $bom = 2;
- 'UTF-16BE';
- } elsif ($buf =~ /^\xFF\xFe/) {
- $bom = 2;
- 'UTF-16LE';
- } elsif ($buf =~ /^\xEF\xBB\xBF/) {
- $bom = 3;
- 'utf-8-strict';
- } else {
- find_charset_in($buf, $options); # check for <meta charset>
- }
- }; # end $encoding
-
- if ($bom) {
- seek $in, $bom, 1 or croak "Could not seek $filename: $!";
- $bom = 1;
- }
- elsif (not defined $encoding) { # try decoding as UTF-8
- my $test = decode('utf-8-strict', $buf, Encode::FB_QUIET);
- if ($buf =~ /^(?: # nothing left over
- | [\xC2-\xDF] # incomplete 2-byte char
- | [\xE0-\xEF] [\x80-\xBF]? # incomplete 3-byte char
- | [\xF0-\xF4] [\x80-\xBF]{0,2} # incomplete 4-byte char
- )\z/x and $test =~ /[^\x00-\x7F]/) {
- $encoding = 'utf-8-strict';
- } # end if valid UTF-8 with at least one multi-byte character:
- } # end if testing for UTF-8
-
- if (defined $encoding and $options->{encoding} and not ref $encoding) {
- $encoding = find_encoding($encoding);
- } # end if $encoding is a string and we want an object
-
- return wantarray ? ($encoding, $bom) : $encoding;
-} # end sniff_encoding
-
-#=====================================================================
-# Based on HTML5 8.2.2.2 Determining the character encoding:
-
-# Get attribute from current position of $_
-sub _get_attribute
-{
- m!\G[\x09\x0A\x0C\x0D /]+!gc; # skip whitespace or /
-
- return if /\G>/gc or not /\G(=?[^\x09\x0A\x0C\x0D =]*)/gc;
-
- my ($name, $value) = (lc $1, '');
-
- if (/\G[\x09\x0A\x0C\x0D ]*=[\x09\x0A\x0C\x0D ]*/gc
- and (/\G"([^"]*)"?/gc or
- /\G'([^']*)'?/gc or
- /\G([^\x09\x0A\x0C\x0D >]*)/gc)) {
- $value = lc $1;
- } # end if attribute has value
-
- return wantarray ? ($name, $value) : 1;
-} # end _get_attribute
-
-# Examine a meta value for a charset:
-sub _get_charset_from_meta
-{
- for (shift) {
- while (/charset[\x09\x0A\x0C\x0D ]*=[\x09\x0A\x0C\x0D ]*/ig) {
- return $1 if (/\G"([^"]*)"/gc or
- /\G'([^']*)'/gc or
- /\G(?!['"])([^\x09\x0A\x0C\x0D ;]+)/gc);
- }
- } # end for value
-
- return undef;
-} # end _get_charset_from_meta
-#---------------------------------------------------------------------
-
-
-sub find_charset_in
-{
- for (shift) {
- my $options = shift || {};
- my $stop = length > 1024 ? 1024 : length; # search first 1024 bytes
-
- my $expect_pragma = (defined $options->{need_pragma}
- ? $options->{need_pragma} : 1);
-
- pos() = 0;
- while (pos() < $stop) {
- if (/\G<!--.*?(?<=--)>/sgc) {
- } # Skip comment
- elsif (m!\G<meta(?=[\x09\x0A\x0C\x0D /])!gic) {
- my ($got_pragma, $need_pragma, $charset);
-
- while (my ($name, $value) = &_get_attribute) {
- if ($name eq 'http-equiv' and $value eq 'content-type') {
- $got_pragma = 1;
- } elsif ($name eq 'content' and not defined $charset) {
- $need_pragma = $expect_pragma
- if defined($charset = _get_charset_from_meta($value));
- } elsif ($name eq 'charset') {
- $charset = $value;
- $need_pragma = 0;
- }
- } # end while more attributes in this <meta> tag
-
- if (defined $need_pragma and (not $need_pragma or $got_pragma)) {
- $charset = 'UTF-8' if $charset =~ /^utf-?16/;
- $charset = 'cp1252' if $charset eq 'iso-8859-1'; # people lie
- if (my $encoding = find_encoding($charset)) {
- return $options->{encoding} ? $encoding : $encoding->name;
- } # end if charset is a recognized encoding
- } # end if found charset
- } # end elsif <meta
- elsif (m!\G</?[a-zA-Z][^\x09\x0A\x0C\x0D >]*!gc) {
- 1 while &_get_attribute;
- } # end elsif some other tag
- elsif (m{\G<[!/?][^>]*}gc) {
- } # skip unwanted things
- elsif (m/\G</gc) {
- } # skip < that doesn't open anything we recognize
-
- # Advance to the next <:
- m/\G[^<]+/gc;
- } # end while not at search boundary
- } # end for string
-
- return undef; # Couldn't find a charset
-} # end find_charset_in
-#---------------------------------------------------------------------
-
-
-# Shortcuts for people who don't like exported functions:
-*file = \&html_file;
-*file_and_encoding = \&html_file_and_encoding;
-*outfile = \&html_outfile;
-
-#=====================================================================
-# Package Return Value:
-
-1;
-
-__END__
-
-=head1 NAME
-
-IO::HTML - Open an HTML file with automatic charset detection
-
-=head1 VERSION
-
-This document describes version 1.001 of
-IO::HTML, released June 28, 2014.
-
-=head1 SYNOPSIS
-
- use IO::HTML; # exports html_file by default
- use HTML::TreeBuilder;
-
- my $tree = HTML::TreeBuilder->new_from_file(
- html_file('foo.html')
- );
-
- # Alternative interface:
- open(my $in, '<:raw', 'bar.html');
- my $encoding = IO::HTML::sniff_encoding($in, 'bar.html');
-
-=head1 DESCRIPTION
-
-IO::HTML provides an easy way to open a file containing HTML while
-automatically determining its encoding. It uses the HTML5 encoding
-sniffing algorithm specified in section 8.2.2.2 of the draft standard.
-
-The algorithm as implemented here is:
-
-=over
-
-=item 1.
-
-If the file begins with a byte order mark indicating UTF-16LE,
-UTF-16BE, or UTF-8, then that is the encoding.
-
-=item 2.
-
-If the first 1024 bytes of the file contain a C<< <meta> >> tag that
-indicates the charset, and Encode recognizes the specified charset
-name, then that is the encoding. (This portion of the algorithm is
-implemented by C<find_charset_in>.)
-
-The C<< <meta> >> tag can be in one of two formats:
-
- <meta charset="...">
- <meta http-equiv="Content-Type" content="...charset=...">
-
-The search is case-insensitive, and the order of attributes within the
-tag is irrelevant. Any additional attributes of the tag are ignored.
-The first matching tag with a recognized encoding ends the search.
-
-=item 3.
-
-If the first 1024 bytes of the file are valid UTF-8 (with at least 1
-non-ASCII character), then the encoding is UTF-8.
-
-=item 4.
-
-If all else fails, use the default character encoding. The HTML5
-standard suggests the default encoding should be locale dependent, but
-currently it is always C<cp1252> unless you set
-C<$IO::HTML::default_encoding> to a different value. Note:
-C<sniff_encoding> does not apply this step; only C<html_file> does
-that.
-
-=back
-
-=head1 SUBROUTINES
-
-=head2 html_file
-
- $filehandle = html_file($filename, \%options);
-
-This function (exported by default) is the primary entry point. It
-opens the file specified by C<$filename> for reading, uses
-C<sniff_encoding> to find a suitable encoding layer, and applies it.
-It also applies the C<:crlf> layer. If the file begins with a BOM,
-the filehandle is positioned just after the BOM.
-
-The optional second argument is a hashref containing options. The
-possible keys are described under C<find_charset_in>.
-
-If C<sniff_encoding> is unable to determine the encoding, it defaults
-to C<$IO::HTML::default_encoding>, which is set to C<cp1252>
-(a.k.a. Windows-1252) by default. According to the standard, the
-default should be locale dependent, but that is not currently
-implemented.
-
-It dies if the file cannot be opened.
-
-
-=head2 html_file_and_encoding
-
- ($filehandle, $encoding, $bom)
- = html_file_and_encoding($filename, \%options);
-
-This function (exported only by request) is just like C<html_file>,
-but returns more information. In addition to the filehandle, it
-returns the name of the encoding used, and a flag indicating whether a
-byte order mark was found (if C<$bom> is true, the file began with a
-BOM). This may be useful if you want to write the file out again
-(especially in conjunction with the C<html_outfile> function).
-
-The optional second argument is a hashref containing options. The
-possible keys are described under C<find_charset_in>.
-
-It dies if the file cannot be opened. The result of calling it in
-scalar context is undefined.
-
-
-=head2 html_outfile
-
- $filehandle = html_outfile($filename, $encoding, $bom);
-
-This function (exported only by request) opens C<$filename> for output
-using C<$encoding>, and writes a BOM to it if C<$bom> is true.
-If C<$encoding> is C<undef>, it defaults to C<$IO::HTML::default_encoding>.
-C<$encoding> may be either an encoding name or an Encode::Encoding object.
-
-It dies if the file cannot be opened.
-
-
-=head2 sniff_encoding
-
- ($encoding, $bom) = sniff_encoding($filehandle, $filename, \%options);
-
-This function (exported only by request) runs the HTML5 encoding
-sniffing algorithm on C<$filehandle> (which must be seekable, and
-should have been opened in C<:raw> mode). C<$filename> is used only
-for error messages (if there's a problem using the filehandle), and
-defaults to "file" if omitted. The optional third argument is a
-hashref containing options. The possible keys are described under
-C<find_charset_in>.
-
-It returns Perl's canonical name for the encoding, which is not
-necessarily the same as the MIME or IANA charset name. It returns
-C<undef> if the encoding cannot be determined. C<$bom> is true if the
-file began with a byte order mark. In scalar context, it returns only
-C<$encoding>.
-
-The filehandle's position is restored to its original position
-(normally the beginning of the file) unless C<$bom> is true. In that
-case, the position is immediately after the BOM.
-
-Tip: If you want to run C<sniff_encoding> on a file you've already
-loaded into a string, open an in-memory file on the string, and pass
-that handle:
-
- ($encoding, $bom) = do {
- open(my $fh, '<', \$string); sniff_encoding($fh)
- };
-
-(This only makes sense if C<$string> contains bytes, not characters.)
-
-
-=head2 find_charset_in
-
- $encoding = find_charset_in($string_containing_HTML, \%options);
-
-This function (exported only by request) looks for charset information
-in a C<< <meta> >> tag in a possibly incomplete HTML document using
-the "two step" algorithm specified by HTML5. It does not look for a BOM.
-Only the first 1024 bytes of the string are checked.
-
-It returns Perl's canonical name for the encoding, which is not
-necessarily the same as the MIME or IANA charset name. It returns
-C<undef> if no charset is specified or if the specified charset is not
-recognized by the Encode module.
-
-The optional second argument is a hashref containing options. The
-following keys are recognized:
-
-=over
-
-=item C<encoding>
-
-If true, return the L<Encode::Encoding> object instead of its name.
-Defaults to false.
-
-=item C<need_pragma>
-
-If true (the default), follow the HTML5 spec and examine the
-C<content> attribute only of C<< <meta http-equiv="Content-Type" >>.
-If set to 0, relax the HTML5 spec, and look for "charset=" in the
-C<content> attribute of I<every> meta tag.
-
-=back
-
-=head1 EXPORTS
-
-By default, only C<html_file> is exported. Other functions may be
-exported on request.
-
-For people who prefer not to export functions, all functions beginning
-with C<html_> have an alias without that prefix (e.g. you can call
-C<IO::HTML::file(...)> instead of C<IO::HTML::html_file(...)>. These
-aliases are not exportable.
-
-=for Pod::Coverage
-file
-file_and_encoding
-outfile
-
-The following export tags are available:
-
-=over
-
-=item C<:all>
-
-All exportable functions.
-
-=item C<:rw>
-
-C<html_file>, C<html_file_and_encoding>, C<html_outfile>.
-
-=back
-
-=head1 SEE ALSO
-
-The HTML5 specification, section 8.2.2.2 Determining the character encoding:
-L<http://www.w3.org/TR/html5/syntax.html#determining-the-character-encoding>
-
-=head1 DIAGNOSTICS
-
-=over
-
-=item C<< Could not read %s: %s >>
-
-The specified file could not be read from for the reason specified by C<$!>.
-
-
-=item C<< Could not seek %s: %s >>
-
-The specified file could not be rewound for the reason specified by C<$!>.
-
-
-=item C<< Failed to open %s: %s >>
-
-The specified file could not be opened for reading for the reason
-specified by C<$!>.
-
-
-=item C<< No default encoding specified >>
-
-The C<sniff_encoding> algorithm didn't find an encoding to use, and
-you set C<$IO::HTML::default_encoding> to C<undef>.
-
-
-=back
-
-=head1 CONFIGURATION AND ENVIRONMENT
-
-IO::HTML requires no configuration files or environment variables.
-
-=head1 DEPENDENCIES
-
-IO::HTML has no non-core dependencies for Perl 5.8.7+. With earlier
-versions of Perl 5.8, you need to upgrade L<Encode> to at least
-version 2.10, and
-you may need to upgrade L<Exporter> to at least version
-5.57.
-
-=head1 INCOMPATIBILITIES
-
-None reported.
-
-=head1 BUGS AND LIMITATIONS
-
-No bugs have been reported.
-
-=head1 AUTHOR
-
-Christopher J. Madsen S<C<< <perl AT cjmweb.net> >>>
-
-Please report any bugs or feature requests
-to S<C<< <bug-IO-HTML AT rt.cpan.org> >>>
-or through the web interface at
-L<< http://rt.cpan.org/Public/Bug/Report.html?Queue=IO-HTML >>.
-
-You can follow or contribute to IO-HTML's development at
-L<< https://github.com/madsen/io-html >>.
-
-=head1 COPYRIGHT AND LICENSE
-
-This software is copyright (c) 2014 by Christopher J. Madsen.
-
-This is free software; you can redistribute it and/or modify it under
-the same terms as the Perl 5 programming language system itself.
-
-=head1 DISCLAIMER OF WARRANTY
-
-BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
-EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
-ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH
-YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
-NECESSARY SERVICING, REPAIR, OR CORRECTION.
-
-IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENSE, BE
-LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL,
-OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
-THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/IO/Socket/IP.pm b/Master/tlpkg/tlperl/lib/IO/Socket/IP.pm
index 30e0464d70b..3266fab792a 100644
--- a/Master/tlpkg/tlperl/lib/IO/Socket/IP.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Socket/IP.pm
@@ -1,13 +1,13 @@
# You may distribute under the terms of either the GNU General Public License
# or the Artistic License (the same terms as Perl itself)
#
-# (C) Paul Evans, 2010-2014 -- leonerd@leonerd.org.uk
+# (C) Paul Evans, 2010-2015 -- leonerd@leonerd.org.uk
package IO::Socket::IP;
# $VERSION needs to be set before use base 'IO::Socket'
# - https://rt.cpan.org/Ticket/Display.html?id=92107
BEGIN {
- $VERSION = '0.29';
+ $VERSION = '0.37';
}
use strict;
@@ -31,7 +31,7 @@ use Socket 1.97 qw(
my $AF_INET6 = eval { Socket::AF_INET6() }; # may not be defined
my $AI_ADDRCONFIG = eval { Socket::AI_ADDRCONFIG() } || 0;
use POSIX qw( dup2 );
-use Errno qw( EINVAL EINPROGRESS EISCONN );
+use Errno qw( EINVAL EINPROGRESS EISCONN ENOTCONN ETIMEDOUT EWOULDBLOCK );
use constant HAVE_MSWIN32 => ( $^O eq "MSWin32" );
@@ -304,6 +304,22 @@ If defined but false, the socket will be set to non-blocking mode. Otherwise
it will default to blocking mode. See the NON-BLOCKING section below for more
detail.
+=item Timeout => NUM
+
+If defined, gives a maximum time in seconds to block per C<connect()> call
+when in blocking mode. If missing, no timeout is applied other than that
+provided by the underlying operating system. When in non-blocking mode this
+parameter is ignored.
+
+Note that if the hostname resolves to multiple address candidates, the same
+timeout will apply to each connection attempt individually, rather than to the
+operation as a whole. Further note that the timeout does not apply to the
+initial hostname resolve operation, if connecting by hostname.
+
+This behviour is copied inspired by C<IO::Socket::INET>; for more fine grained
+control over connection timeouts, consider performing a nonblocking connect
+directly.
+
=back
If neither C<Type> nor C<Proto> hints are provided, a default of
@@ -380,6 +396,12 @@ sub _io_socket_ip__configure
my @localinfos;
my @peerinfos;
+ my $listenqueue = $arg->{Listen};
+ if( defined $listenqueue and
+ ( defined $arg->{PeerHost} || defined $arg->{PeerService} || defined $arg->{PeerAddrInfo} ) ) {
+ croak "Cannot Listen with a peer address";
+ }
+
if( defined $arg->{GetAddrInfoFlags} ) {
$hints{flags} = $arg->{GetAddrInfoFlags};
}
@@ -425,11 +447,17 @@ sub _io_socket_ip__configure
ref $info eq "ARRAY" or croak "Expected 'LocalAddrInfo' to be an ARRAY ref";
@localinfos = @$info;
}
- elsif( defined $arg->{LocalHost} or defined $arg->{LocalService} ) {
+ elsif( defined $arg->{LocalHost} or
+ defined $arg->{LocalService} or
+ HAVE_MSWIN32 and $arg->{Listen} ) {
# Either may be undef
my $host = $arg->{LocalHost};
my $service = $arg->{LocalService};
+ unless ( defined $host or defined $service ) {
+ $service = 0;
+ }
+
local $1; # Placate a taint-related bug; [perl #67962]
defined $service and $service =~ s/\((\d+)\)$// and
my $fallback_port = $1;
@@ -481,10 +509,6 @@ sub _io_socket_ip__configure
push @sockopts_enabled, SO_REUSEPORT if $arg->{ReusePort};
push @sockopts_enabled, SO_BROADCAST if $arg->{Broadcast};
- my $listenqueue = $arg->{Listen};
-
- croak "Cannot Listen with a PeerHost" if defined $listenqueue and @peerinfos;
-
my $blocking = $arg->{Blocking};
defined $blocking or $blocking = 1;
@@ -606,11 +630,18 @@ sub setup
return 1;
}
- if( $! == EINPROGRESS or HAVE_MSWIN32 && $! == Errno::EWOULDBLOCK() ) {
+ if( $! == EINPROGRESS or $! == EWOULDBLOCK ) {
${*$self}{io_socket_ip_connect_in_progress} = 1;
return 0;
}
+ # If connect failed but we have no system error there must be an error
+ # at the application layer, like a bad certificate with
+ # IO::Socket::SSL.
+ # In this case don't continue IP based multi-homing because the problem
+ # cannot be solved at the IP layer.
+ return 0 if ! $!;
+
${*$self}{io_socket_ip_errors}[0] = $!;
next;
}
@@ -624,17 +655,58 @@ sub setup
return undef;
}
-sub connect
+sub connect :method
{
my $self = shift;
# It seems that IO::Socket hides EINPROGRESS errors, making them look like
# a success. This is annoying here.
# Instead of putting up with its frankly-irritating intentional breakage of
- # useful APIs I'm just going to end-run around it and call CORE::connect()
+ # useful APIs I'm just going to end-run around it and call core's connect()
# directly
- return CORE::connect( $self, $_[0] ) if @_;
+ if( @_ ) {
+ my ( $addr ) = @_;
+
+ # Annoyingly IO::Socket's connect() is where the timeout logic is
+ # implemented, so we'll have to reinvent it here
+ my $timeout = ${*$self}{'io_socket_timeout'};
+
+ return connect( $self, $addr ) unless defined $timeout;
+
+ my $was_blocking = $self->blocking( 0 );
+
+ my $err = defined connect( $self, $addr ) ? 0 : $!+0;
+
+ if( !$err ) {
+ # All happy
+ $self->blocking( $was_blocking );
+ return 1;
+ }
+ elsif( not( $err == EINPROGRESS or $err == EWOULDBLOCK ) ) {
+ # Failed for some other reason
+ return undef;
+ }
+ elsif( !$was_blocking ) {
+ # We shouldn't block anyway
+ return undef;
+ }
+
+ my $vec = ''; vec( $vec, $self->fileno, 1 ) = 1;
+ if( !select( undef, $vec, $vec, $timeout ) ) {
+ $! = ETIMEDOUT;
+ return undef;
+ }
+
+ # Hoist the error by connect()ing a second time
+ $err = $self->getsockopt( SOL_SOCKET, SO_ERROR );
+ $err = 0 if $err == EISCONN; # Some OSes give EISCONN
+
+ $self->blocking( $was_blocking );
+
+ $! = $err, return undef if $err;
+ return 1;
+ }
return 1 if !${*$self}{io_socket_ip_connect_in_progress};
@@ -651,7 +723,7 @@ sub connect
# (still in progress). This even works on MSWin32.
my $addr = ${*$self}{io_socket_ip_infos}[${*$self}{io_socket_ip_idx}]{peeraddr};
- if( $self->connect( $addr ) or $! == EISCONN ) {
+ if( connect( $self, $addr ) or $! == EISCONN ) {
delete ${*$self}{io_socket_ip_connect_in_progress};
$! = 0;
return 1;
@@ -682,6 +754,9 @@ sub _get_host_service
my $self = shift;
my ( $addr, $flags, $xflags ) = @_;
+ defined $addr or
+ $! = ENOTCONN, return;
+
$flags |= NI_DGRAM if $self->socktype == SOCK_DGRAM;
my ( $err, $host, $service ) = getnameinfo( $addr, $flags, $xflags || 0 );
@@ -747,11 +822,11 @@ Return the resolved name of the local port number
=cut
-sub sockhost { my $self = shift; ( $self->_get_host_service( $self->sockname, NI_NUMERICHOST, NIx_NOSERV ) )[0] }
-sub sockport { my $self = shift; ( $self->_get_host_service( $self->sockname, NI_NUMERICSERV, NIx_NOHOST ) )[1] }
+sub sockhost { my $self = shift; scalar +( $self->_get_host_service( $self->sockname, NI_NUMERICHOST, NIx_NOSERV ) )[0] }
+sub sockport { my $self = shift; scalar +( $self->_get_host_service( $self->sockname, NI_NUMERICSERV, NIx_NOHOST ) )[1] }
-sub sockhostname { my $self = shift; ( $self->_get_host_service( $self->sockname, 0, NIx_NOSERV ) )[0] }
-sub sockservice { my $self = shift; ( $self->_get_host_service( $self->sockname, 0, NIx_NOHOST ) )[1] }
+sub sockhostname { my $self = shift; scalar +( $self->_get_host_service( $self->sockname, 0, NIx_NOSERV ) )[0] }
+sub sockservice { my $self = shift; scalar +( $self->_get_host_service( $self->sockname, 0, NIx_NOHOST ) )[1] }
=head2 $addr = $sock->sockaddr
@@ -800,11 +875,11 @@ Return the resolved name of the peer port number
=cut
-sub peerhost { my $self = shift; ( $self->_get_host_service( $self->peername, NI_NUMERICHOST, NIx_NOSERV ) )[0] }
-sub peerport { my $self = shift; ( $self->_get_host_service( $self->peername, NI_NUMERICSERV, NIx_NOHOST ) )[1] }
+sub peerhost { my $self = shift; scalar +( $self->_get_host_service( $self->peername, NI_NUMERICHOST, NIx_NOSERV ) )[0] }
+sub peerport { my $self = shift; scalar +( $self->_get_host_service( $self->peername, NI_NUMERICSERV, NIx_NOHOST ) )[1] }
-sub peerhostname { my $self = shift; ( $self->_get_host_service( $self->peername, 0, NIx_NOSERV ) )[0] }
-sub peerservice { my $self = shift; ( $self->_get_host_service( $self->peername, 0, NIx_NOHOST ) )[1] }
+sub peerhostname { my $self = shift; scalar +( $self->_get_host_service( $self->peername, 0, NIx_NOSERV ) )[0] }
+sub peerservice { my $self = shift; scalar +( $self->_get_host_service( $self->peername, 0, NIx_NOHOST ) )[1] }
=head2 $addr = $peer->peeraddr
@@ -830,13 +905,13 @@ sub accept
# This second unbelievably dodgy hack guarantees that $self->fileno doesn't
# change, which is useful during nonblocking connect
-sub socket
+sub socket :method
{
my $self = shift;
return $self->SUPER::socket(@_) if not defined $self->fileno;
# I hate core prototypes sometimes...
- CORE::socket( my $tmph, $_[0], $_[1], $_[2] ) or return undef;
+ socket( my $tmph, $_[0], $_[1], $_[2] ) or return undef;
dup2( $tmph->fileno, $self->fileno ) or die "Unable to dup2 $tmph onto $self - $!";
}
@@ -844,7 +919,7 @@ sub socket
# Versions of IO::Socket before 1.35 may leave socktype undef if from, say, an
# ->fdopen call. In this case we'll apply a fix
BEGIN {
- if( $IO::Socket::VERSION < 1.35 ) {
+ if( eval($IO::Socket::VERSION) < 1.35 ) {
*socktype = sub {
my $self = shift;
my $type = $self->SUPER::socktype;
@@ -1083,6 +1158,37 @@ constructor will ignore the value of this argument, except if it is defined
but false. An exception is thrown in this case, because that would request it
disable the C<getaddrinfo(3)> search behaviour in the first place.
+=item *
+
+C<IO::Socket::IP> implements both the C<Blocking> and C<Timeout> parameters,
+but it implements the interaction of both in a different way.
+
+In C<::INET>, supplying a timeout overrides the non-blocking behaviour,
+meaning that the C<connect()> operation will still block despite that the
+caller asked for a non-blocking socket. This is not explicitly specified in
+its documentation, nor does this author believe that is a useful behaviour -
+it appears to come from a quirk of implementation.
+
+In C<::IP> therefore, the C<Blocking> parameter takes precedence - if a
+non-blocking socket is requested, no operation will block. The C<Timeout>
+parameter here simply defines the maximum time that a blocking C<connect()>
+call will wait, if it blocks at all.
+
+In order to specifically obtain the "blocking connect then non-blocking send
+and receive" behaviour of specifying this combination of options to C<::INET>
+when using C<::IP>, perform first a blocking connect, then afterwards turn the
+socket into nonblocking mode.
+
+ my $sock = IO::Socket::IP->new(
+ PeerHost => $peer,
+ Timeout => 20,
+ ) or die "Cannot connect - $@";
+
+ $sock->blocking( 0 );
+
+This code will behave identically under both C<IO::Socket::INET> and
+C<IO::Socket::IP>.
+
=back
=cut
diff --git a/Master/tlpkg/tlperl/lib/IO/String.pm b/Master/tlpkg/tlperl/lib/IO/String.pm
deleted file mode 100644
index 4bc8e719601..00000000000
--- a/Master/tlpkg/tlperl/lib/IO/String.pm
+++ /dev/null
@@ -1,551 +0,0 @@
-package IO::String;
-
-# Copyright 1998-2005 Gisle Aas.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-require 5.005_03;
-use strict;
-use vars qw($VERSION $DEBUG $IO_CONSTANTS);
-$VERSION = "1.08"; # $Date: 2005/12/05 12:00:47 $
-
-use Symbol ();
-
-sub new
-{
- my $class = shift;
- my $self = bless Symbol::gensym(), ref($class) || $class;
- tie *$self, $self;
- $self->open(@_);
- return $self;
-}
-
-sub open
-{
- my $self = shift;
- return $self->new(@_) unless ref($self);
-
- if (@_) {
- my $bufref = ref($_[0]) ? $_[0] : \$_[0];
- $$bufref = "" unless defined $$bufref;
- *$self->{buf} = $bufref;
- }
- else {
- my $buf = "";
- *$self->{buf} = \$buf;
- }
- *$self->{pos} = 0;
- *$self->{lno} = 0;
- return $self;
-}
-
-sub pad
-{
- my $self = shift;
- my $old = *$self->{pad};
- *$self->{pad} = substr($_[0], 0, 1) if @_;
- return "\0" unless defined($old) && length($old);
- return $old;
-}
-
-sub dump
-{
- require Data::Dumper;
- my $self = shift;
- print Data::Dumper->Dump([$self], ['*self']);
- print Data::Dumper->Dump([*$self{HASH}], ['$self{HASH}']);
- return;
-}
-
-sub TIEHANDLE
-{
- print "TIEHANDLE @_\n" if $DEBUG;
- return $_[0] if ref($_[0]);
- my $class = shift;
- my $self = bless Symbol::gensym(), $class;
- $self->open(@_);
- return $self;
-}
-
-sub DESTROY
-{
- print "DESTROY @_\n" if $DEBUG;
-}
-
-sub close
-{
- my $self = shift;
- delete *$self->{buf};
- delete *$self->{pos};
- delete *$self->{lno};
- undef *$self if $] eq "5.008"; # workaround for some bug
- return 1;
-}
-
-sub opened
-{
- my $self = shift;
- return defined *$self->{buf};
-}
-
-sub binmode
-{
- my $self = shift;
- return 1 unless @_;
- # XXX don't know much about layers yet :-(
- return 0;
-}
-
-sub getc
-{
- my $self = shift;
- my $buf;
- return $buf if $self->read($buf, 1);
- return undef;
-}
-
-sub ungetc
-{
- my $self = shift;
- $self->setpos($self->getpos() - 1);
- return 1;
-}
-
-sub eof
-{
- my $self = shift;
- return length(${*$self->{buf}}) <= *$self->{pos};
-}
-
-sub print
-{
- my $self = shift;
- if (defined $\) {
- if (defined $,) {
- $self->write(join($,, @_).$\);
- }
- else {
- $self->write(join("",@_).$\);
- }
- }
- else {
- if (defined $,) {
- $self->write(join($,, @_));
- }
- else {
- $self->write(join("",@_));
- }
- }
- return 1;
-}
-*printflush = \*print;
-
-sub printf
-{
- my $self = shift;
- print "PRINTF(@_)\n" if $DEBUG;
- my $fmt = shift;
- $self->write(sprintf($fmt, @_));
- return 1;
-}
-
-
-my($SEEK_SET, $SEEK_CUR, $SEEK_END);
-
-sub _init_seek_constants
-{
- if ($IO_CONSTANTS) {
- require IO::Handle;
- $SEEK_SET = &IO::Handle::SEEK_SET;
- $SEEK_CUR = &IO::Handle::SEEK_CUR;
- $SEEK_END = &IO::Handle::SEEK_END;
- }
- else {
- $SEEK_SET = 0;
- $SEEK_CUR = 1;
- $SEEK_END = 2;
- }
-}
-
-
-sub seek
-{
- my($self,$off,$whence) = @_;
- my $buf = *$self->{buf} || return 0;
- my $len = length($$buf);
- my $pos = *$self->{pos};
-
- _init_seek_constants() unless defined $SEEK_SET;
-
- if ($whence == $SEEK_SET) { $pos = $off }
- elsif ($whence == $SEEK_CUR) { $pos += $off }
- elsif ($whence == $SEEK_END) { $pos = $len + $off }
- else { die "Bad whence ($whence)" }
- print "SEEK(POS=$pos,OFF=$off,LEN=$len)\n" if $DEBUG;
-
- $pos = 0 if $pos < 0;
- $self->truncate($pos) if $pos > $len; # extend file
- *$self->{pos} = $pos;
- return 1;
-}
-
-sub pos
-{
- my $self = shift;
- my $old = *$self->{pos};
- if (@_) {
- my $pos = shift || 0;
- my $buf = *$self->{buf};
- my $len = $buf ? length($$buf) : 0;
- $pos = $len if $pos > $len;
- *$self->{pos} = $pos;
- }
- return $old;
-}
-
-sub getpos { shift->pos; }
-
-*sysseek = \&seek;
-*setpos = \&pos;
-*tell = \&getpos;
-
-
-
-sub getline
-{
- my $self = shift;
- my $buf = *$self->{buf} || return;
- my $len = length($$buf);
- my $pos = *$self->{pos};
- return if $pos >= $len;
-
- unless (defined $/) { # slurp
- *$self->{pos} = $len;
- return substr($$buf, $pos);
- }
-
- unless (length $/) { # paragraph mode
- # XXX slow&lazy implementation using getc()
- my $para = "";
- my $eol = 0;
- my $c;
- while (defined($c = $self->getc)) {
- if ($c eq "\n") {
- $eol++;
- next if $eol > 2;
- }
- elsif ($eol > 1) {
- $self->ungetc($c);
- last;
- }
- else {
- $eol = 0;
- }
- $para .= $c;
- }
- return $para; # XXX wantarray
- }
-
- my $idx = index($$buf,$/,$pos);
- if ($idx < 0) {
- # return rest of it
- *$self->{pos} = $len;
- $. = ++ *$self->{lno};
- return substr($$buf, $pos);
- }
- $len = $idx - $pos + length($/);
- *$self->{pos} += $len;
- $. = ++ *$self->{lno};
- return substr($$buf, $pos, $len);
-}
-
-sub getlines
-{
- die "getlines() called in scalar context\n" unless wantarray;
- my $self = shift;
- my($line, @lines);
- push(@lines, $line) while defined($line = $self->getline);
- return @lines;
-}
-
-sub READLINE
-{
- goto &getlines if wantarray;
- goto &getline;
-}
-
-sub input_line_number
-{
- my $self = shift;
- my $old = *$self->{lno};
- *$self->{lno} = shift if @_;
- return $old;
-}
-
-sub truncate
-{
- my $self = shift;
- my $len = shift || 0;
- my $buf = *$self->{buf};
- if (length($$buf) >= $len) {
- substr($$buf, $len) = '';
- *$self->{pos} = $len if $len < *$self->{pos};
- }
- else {
- $$buf .= ($self->pad x ($len - length($$buf)));
- }
- return 1;
-}
-
-sub read
-{
- my $self = shift;
- my $buf = *$self->{buf};
- return undef unless $buf;
-
- my $pos = *$self->{pos};
- my $rem = length($$buf) - $pos;
- my $len = $_[1];
- $len = $rem if $len > $rem;
- return undef if $len < 0;
- if (@_ > 2) { # read offset
- substr($_[0],$_[2]) = substr($$buf, $pos, $len);
- }
- else {
- $_[0] = substr($$buf, $pos, $len);
- }
- *$self->{pos} += $len;
- return $len;
-}
-
-sub write
-{
- my $self = shift;
- my $buf = *$self->{buf};
- return unless $buf;
-
- my $pos = *$self->{pos};
- my $slen = length($_[0]);
- my $len = $slen;
- my $off = 0;
- if (@_ > 1) {
- $len = $_[1] if $_[1] < $len;
- if (@_ > 2) {
- $off = $_[2] || 0;
- die "Offset outside string" if $off > $slen;
- if ($off < 0) {
- $off += $slen;
- die "Offset outside string" if $off < 0;
- }
- my $rem = $slen - $off;
- $len = $rem if $rem < $len;
- }
- }
- substr($$buf, $pos, $len) = substr($_[0], $off, $len);
- *$self->{pos} += $len;
- return $len;
-}
-
-*sysread = \&read;
-*syswrite = \&write;
-
-sub stat
-{
- my $self = shift;
- return unless $self->opened;
- return 1 unless wantarray;
- my $len = length ${*$self->{buf}};
-
- return (
- undef, undef, # dev, ino
- 0666, # filemode
- 1, # links
- $>, # user id
- $), # group id
- undef, # device id
- $len, # size
- undef, # atime
- undef, # mtime
- undef, # ctime
- 512, # blksize
- int(($len+511)/512) # blocks
- );
-}
-
-sub FILENO {
- return undef; # XXX perlfunc says this means the file is closed
-}
-
-sub blocking {
- my $self = shift;
- my $old = *$self->{blocking} || 0;
- *$self->{blocking} = shift if @_;
- return $old;
-}
-
-my $notmuch = sub { return };
-
-*fileno = $notmuch;
-*error = $notmuch;
-*clearerr = $notmuch;
-*sync = $notmuch;
-*flush = $notmuch;
-*setbuf = $notmuch;
-*setvbuf = $notmuch;
-
-*untaint = $notmuch;
-*autoflush = $notmuch;
-*fcntl = $notmuch;
-*ioctl = $notmuch;
-
-*GETC = \&getc;
-*PRINT = \&print;
-*PRINTF = \&printf;
-*READ = \&read;
-*WRITE = \&write;
-*SEEK = \&seek;
-*TELL = \&getpos;
-*EOF = \&eof;
-*CLOSE = \&close;
-*BINMODE = \&binmode;
-
-
-sub string_ref
-{
- my $self = shift;
- return *$self->{buf};
-}
-*sref = \&string_ref;
-
-1;
-
-__END__
-
-=head1 NAME
-
-IO::String - Emulate file interface for in-core strings
-
-=head1 SYNOPSIS
-
- use IO::String;
- $io = IO::String->new;
- $io = IO::String->new($var);
- tie *IO, 'IO::String';
-
- # read data
- <$io>;
- $io->getline;
- read($io, $buf, 100);
-
- # write data
- print $io "string\n";
- $io->print(@data);
- syswrite($io, $buf, 100);
-
- select $io;
- printf "Some text %s\n", $str;
-
- # seek
- $pos = $io->getpos;
- $io->setpos(0); # rewind
- $io->seek(-30, -1);
- seek($io, 0, 0);
-
-=head1 DESCRIPTION
-
-The C<IO::String> module provides the C<IO::File> interface for in-core
-strings. An C<IO::String> object can be attached to a string, and
-makes it possible to use the normal file operations for reading or
-writing data, as well as for seeking to various locations of the string.
-This is useful when you want to use a library module that only
-provides an interface to file handles on data that you have in a string
-variable.
-
-Note that perl-5.8 and better has built-in support for "in memory"
-files, which are set up by passing a reference instead of a filename
-to the open() call. The reason for using this module is that it
-makes the code backwards compatible with older versions of Perl.
-
-The C<IO::String> module provides an interface compatible with
-C<IO::File> as distributed with F<IO-1.20>, but the following methods
-are not available: new_from_fd, fdopen, format_write,
-format_page_number, format_lines_per_page, format_lines_left,
-format_name, format_top_name.
-
-The following methods are specific to the C<IO::String> class:
-
-=over 4
-
-=item $io = IO::String->new
-
-=item $io = IO::String->new( $string )
-
-The constructor returns a newly-created C<IO::String> object. It
-takes an optional argument, which is the string to read from or write
-into. If no $string argument is given, then an internal buffer
-(initially empty) is allocated.
-
-The C<IO::String> object returned is tied to itself. This means
-that you can use most Perl I/O built-ins on it too: readline, <>, getc,
-print, printf, syswrite, sysread, close.
-
-=item $io->open
-
-=item $io->open( $string )
-
-Attaches an existing IO::String object to some other $string, or
-allocates a new internal buffer (if no argument is given). The
-position is reset to 0.
-
-=item $io->string_ref
-
-Returns a reference to the string that is attached to
-the C<IO::String> object. Most useful when you let the C<IO::String>
-create an internal buffer to write into.
-
-=item $io->pad
-
-=item $io->pad( $char )
-
-Specifies the padding to use if
-the string is extended by either the seek() or truncate() methods. It
-is a single character and defaults to "\0".
-
-=item $io->pos
-
-=item $io->pos( $newpos )
-
-Yet another interface for reading and setting the current read/write
-position within the string (the normal getpos/setpos/tell/seek
-methods are also available). The pos() method always returns the
-old position, and if you pass it an argument it sets the new
-position.
-
-There is (deliberately) a difference between the setpos() and seek()
-methods in that seek() extends the string (with the specified
-padding) if you go to a location past the end, whereas setpos()
-just snaps back to the end. If truncate() is used to extend the string,
-then it works as seek().
-
-=back
-
-=head1 BUGS
-
-In Perl versions < 5.6, the TIEHANDLE interface was incomplete.
-If you use such a Perl, then seek(), tell(), eof(), fileno(), binmode() will
-not do anything on an C<IO::String> handle. See L<perltie> for
-details.
-
-=head1 SEE ALSO
-
-L<IO::File>, L<IO::Stringy>, L<perlfunc/open>
-
-=head1 COPYRIGHT
-
-Copyright 1998-2005 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm
index 53b8ef1d583..0161b8fe7b7 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm
@@ -4,12 +4,12 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.064 qw(:Status);
+use IO::Compress::Base::Common 2.068 qw(:Status);
-use Compress::Raw::Bzip2 2.064 ;
+use Compress::Raw::Bzip2 2.068 ;
our ($VERSION, @ISA);
-$VERSION = '2.064';
+$VERSION = '2.068';
sub mkUncompObject
{
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm
index 812f3f87d1b..ecc66b9a807 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm
@@ -4,14 +4,14 @@ use warnings;
use strict;
use bytes;
-use IO::Compress::Base::Common 2.064 qw(:Status);
+use IO::Compress::Base::Common 2.068 qw(:Status);
use IO::Compress::Zip::Constants ;
our ($VERSION);
-$VERSION = '2.064';
+$VERSION = '2.068';
-use Compress::Raw::Zlib 2.064 ();
+use Compress::Raw::Zlib 2.068 ();
sub mkUncompObject
{
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm
index 68beea145c9..2cfe61e865d 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm
@@ -4,11 +4,11 @@ use strict;
use warnings;
#use bytes;
-use IO::Compress::Base::Common 2.064 qw(:Status);
-use Compress::Raw::Zlib 2.064 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
+use IO::Compress::Base::Common 2.068 qw(:Status);
+use Compress::Raw::Zlib 2.068 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
our ($VERSION);
-$VERSION = '2.064';
+$VERSION = '2.068';
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm
index cdf229a252a..fd0bd69d8c7 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm
@@ -6,22 +6,22 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.064 ();
+use IO::Compress::Base::Common 2.068 ();
-use IO::Uncompress::Adapter::Inflate 2.064 ();
+use IO::Uncompress::Adapter::Inflate 2.068 ();
-use IO::Uncompress::Base 2.064 ;
-use IO::Uncompress::Gunzip 2.064 ;
-use IO::Uncompress::Inflate 2.064 ;
-use IO::Uncompress::RawInflate 2.064 ;
-use IO::Uncompress::Unzip 2.064 ;
+use IO::Uncompress::Base 2.068 ;
+use IO::Uncompress::Gunzip 2.068 ;
+use IO::Uncompress::Inflate 2.068 ;
+use IO::Uncompress::RawInflate 2.068 ;
+use IO::Uncompress::Unzip 2.068 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyInflateError);
-$VERSION = '2.064';
+$VERSION = '2.068';
$AnyInflateError = '';
@ISA = qw( Exporter IO::Uncompress::Base );
@@ -48,7 +48,7 @@ sub anyinflate
sub getExtraParams
{
- use IO::Compress::Base::Common 2.064 qw(:Parse);
+ use IO::Compress::Base::Common 2.068 qw(:Parse);
return ( 'rawinflate' => [Parse_boolean, 0] ) ;
}
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm
index e2b104dff43..0d2568e5b3c 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm
@@ -4,16 +4,16 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.064 ();
+use IO::Compress::Base::Common 2.068 ();
-use IO::Uncompress::Base 2.064 ;
+use IO::Uncompress::Base 2.068 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyUncompressError);
-$VERSION = '2.064';
+$VERSION = '2.068';
$AnyUncompressError = '';
@ISA = qw( Exporter IO::Uncompress::Base );
@@ -27,22 +27,22 @@ Exporter::export_ok_tags('all');
BEGIN
{
- eval ' use IO::Uncompress::Adapter::Inflate 2.064 ;';
- eval ' use IO::Uncompress::Adapter::Bunzip2 2.064 ;';
- eval ' use IO::Uncompress::Adapter::LZO 2.064 ;';
- eval ' use IO::Uncompress::Adapter::Lzf 2.064 ;';
- eval ' use IO::Uncompress::Adapter::UnLzma 2.064 ;';
- eval ' use IO::Uncompress::Adapter::UnXz 2.064 ;';
-
- eval ' use IO::Uncompress::Bunzip2 2.064 ;';
- eval ' use IO::Uncompress::UnLzop 2.064 ;';
- eval ' use IO::Uncompress::Gunzip 2.064 ;';
- eval ' use IO::Uncompress::Inflate 2.064 ;';
- eval ' use IO::Uncompress::RawInflate 2.064 ;';
- eval ' use IO::Uncompress::Unzip 2.064 ;';
- eval ' use IO::Uncompress::UnLzf 2.064 ;';
- eval ' use IO::Uncompress::UnLzma 2.064 ;';
- eval ' use IO::Uncompress::UnXz 2.064 ;';
+ eval ' use IO::Uncompress::Adapter::Inflate 2.068 ;';
+ eval ' use IO::Uncompress::Adapter::Bunzip2 2.068 ;';
+ eval ' use IO::Uncompress::Adapter::LZO 2.068 ;';
+ eval ' use IO::Uncompress::Adapter::Lzf 2.068 ;';
+ eval ' use IO::Uncompress::Adapter::UnLzma 2.068 ;';
+ eval ' use IO::Uncompress::Adapter::UnXz 2.068 ;';
+
+ eval ' use IO::Uncompress::Bunzip2 2.068 ;';
+ eval ' use IO::Uncompress::UnLzop 2.068 ;';
+ eval ' use IO::Uncompress::Gunzip 2.068 ;';
+ eval ' use IO::Uncompress::Inflate 2.068 ;';
+ eval ' use IO::Uncompress::RawInflate 2.068 ;';
+ eval ' use IO::Uncompress::Unzip 2.068 ;';
+ eval ' use IO::Uncompress::UnLzf 2.068 ;';
+ eval ' use IO::Uncompress::UnLzma 2.068 ;';
+ eval ' use IO::Uncompress::UnXz 2.068 ;';
}
sub new
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Base.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Base.pm
index 4d1b7802850..04348a23540 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Base.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Base.pm
@@ -9,12 +9,12 @@ our (@ISA, $VERSION, @EXPORT_OK, %EXPORT_TAGS);
@ISA = qw(Exporter IO::File);
-$VERSION = '2.064';
+$VERSION = '2.068';
use constant G_EOF => 0 ;
use constant G_ERR => -1 ;
-use IO::Compress::Base::Common 2.064 ;
+use IO::Compress::Base::Common 2.068 ;
use IO::File ;
use Symbol;
@@ -756,7 +756,8 @@ sub _rd2
while (($status = $z->read($x->{buff})) > 0) {
if ($fh) {
- syswrite $fh, ${ $x->{buff} }
+ local $\;
+ print $fh ${ $x->{buff} }
or return $z->saveErrorString(undef, "Error writing to output file: $!", $!);
${ $x->{buff} } = '' ;
}
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm
index aad835f32f3..c6e7f466ad6 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm
@@ -4,15 +4,15 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.064 qw(:Status );
+use IO::Compress::Base::Common 2.068 qw(:Status );
-use IO::Uncompress::Base 2.064 ;
-use IO::Uncompress::Adapter::Bunzip2 2.064 ;
+use IO::Uncompress::Base 2.068 ;
+use IO::Uncompress::Adapter::Bunzip2 2.068 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bunzip2Error);
-$VERSION = '2.064';
+$VERSION = '2.068';
$Bunzip2Error = '';
@ISA = qw( Exporter IO::Uncompress::Base );
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm
index b8012d0ee0d..1f33f0b2ae0 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm
@@ -9,12 +9,12 @@ use strict ;
use warnings;
use bytes;
-use IO::Uncompress::RawInflate 2.064 ;
+use IO::Uncompress::RawInflate 2.068 ;
-use Compress::Raw::Zlib 2.064 () ;
-use IO::Compress::Base::Common 2.064 qw(:Status );
-use IO::Compress::Gzip::Constants 2.064 ;
-use IO::Compress::Zlib::Extra 2.064 ;
+use Compress::Raw::Zlib 2.068 () ;
+use IO::Compress::Base::Common 2.068 qw(:Status );
+use IO::Compress::Gzip::Constants 2.068 ;
+use IO::Compress::Zlib::Extra 2.068 ;
require Exporter ;
@@ -28,7 +28,7 @@ Exporter::export_ok_tags('all');
$GunzipError = '';
-$VERSION = '2.064';
+$VERSION = '2.068';
sub new
{
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm
index a5df2eacb95..1330731e42a 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm
@@ -5,15 +5,15 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.064 qw(:Status );
-use IO::Compress::Zlib::Constants 2.064 ;
+use IO::Compress::Base::Common 2.068 qw(:Status );
+use IO::Compress::Zlib::Constants 2.068 ;
-use IO::Uncompress::RawInflate 2.064 ;
+use IO::Uncompress::RawInflate 2.068 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $InflateError);
-$VERSION = '2.064';
+$VERSION = '2.068';
$InflateError = '';
@ISA = qw( Exporter IO::Uncompress::RawInflate );
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm
index b0259f30430..3a375a7c16e 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm
@@ -5,16 +5,16 @@ use strict ;
use warnings;
#use bytes;
-use Compress::Raw::Zlib 2.064 ;
-use IO::Compress::Base::Common 2.064 qw(:Status );
+use Compress::Raw::Zlib 2.068 ;
+use IO::Compress::Base::Common 2.068 qw(:Status );
-use IO::Uncompress::Base 2.064 ;
-use IO::Uncompress::Adapter::Inflate 2.064 ;
+use IO::Uncompress::Base 2.068 ;
+use IO::Uncompress::Adapter::Inflate 2.068 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $RawInflateError);
-$VERSION = '2.064';
+$VERSION = '2.068';
$RawInflateError = '';
@ISA = qw( Exporter IO::Uncompress::Base );
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm
index 3b36f839a05..f73313fe8ed 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm
@@ -9,14 +9,14 @@ use warnings;
#use bytes;
use IO::File;
-use IO::Uncompress::RawInflate 2.064 ;
-use IO::Compress::Base::Common 2.064 qw(:Status );
-use IO::Uncompress::Adapter::Inflate 2.064 ;
-use IO::Uncompress::Adapter::Identity 2.064 ;
-use IO::Compress::Zlib::Extra 2.064 ;
-use IO::Compress::Zip::Constants 2.064 ;
+use IO::Uncompress::RawInflate 2.068 ;
+use IO::Compress::Base::Common 2.068 qw(:Status );
+use IO::Uncompress::Adapter::Inflate 2.068 ;
+use IO::Uncompress::Adapter::Identity 2.068 ;
+use IO::Compress::Zlib::Extra 2.068 ;
+use IO::Compress::Zip::Constants 2.068 ;
-use Compress::Raw::Zlib 2.064 () ;
+use Compress::Raw::Zlib 2.068 () ;
BEGIN
{
@@ -31,7 +31,7 @@ require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $UnzipError, %headerLookup);
-$VERSION = '2.064';
+$VERSION = '2.068';
$UnzipError = '';
@ISA = qw(Exporter IO::Uncompress::RawInflate);
diff --git a/Master/tlpkg/tlperl/lib/IPC/Open3.pm b/Master/tlpkg/tlperl/lib/IPC/Open3.pm
index c8620b77ae7..7c7e9b532ad 100644
--- a/Master/tlpkg/tlperl/lib/IPC/Open3.pm
+++ b/Master/tlpkg/tlperl/lib/IPC/Open3.pm
@@ -9,7 +9,7 @@ require Exporter;
use Carp;
use Symbol qw(gensym qualify);
-$VERSION = '1.16';
+$VERSION = '1.18';
@ISA = qw(Exporter);
@EXPORT = qw(open3);
@@ -246,6 +246,7 @@ sub _open3 {
# A tie in the parent should not be allowed to cause problems.
untie *STDIN;
untie *STDOUT;
+ untie *STDERR;
close $stat_r;
require Fcntl;
@@ -361,7 +362,7 @@ sub open3 {
sub spawn_with_handles {
my $fds = shift; # Fields: handle, mode, open_as
my $close_in_child = shift;
- my ($fd, $pid, @saved_fh, $saved, %saved, @errs);
+ my ($fd, %saved, @errs);
foreach $fd (@$fds) {
$fd->{tmp_copy} = IO::Handle->new_from_fd($fd->{handle}, $fd->{mode});
@@ -372,10 +373,12 @@ sub spawn_with_handles {
unless eval { $fd->{handle}->isa('IO::Handle') } ;
# If some of handles to redirect-to coincide with handles to
# redirect, we need to use saved variants:
- $fd->{handle}->fdopen(defined fileno $fd->{open_as}
- ? $saved{fileno $fd->{open_as}} || $fd->{open_as}
- : $fd->{open_as},
- $fd->{mode});
+ my $open_as = $fd->{open_as};
+ my $fileno = fileno($open_as);
+ $fd->{handle}->fdopen(defined($fileno)
+ ? $saved{$fileno} || $open_as
+ : $open_as,
+ $fd->{mode});
}
unless ($^O eq 'MSWin32') {
require Fcntl;
@@ -387,6 +390,7 @@ sub spawn_with_handles {
}
}
+ my $pid;
unless (@errs) {
if (FORCE_DEBUG_SPAWN) {
pipe my $r, my $w or die "Pipe failed: $!";
diff --git a/Master/tlpkg/tlperl/lib/JSON/PP.pm b/Master/tlpkg/tlperl/lib/JSON/PP.pm
index c1b4f1b0f5b..7a011a4dea9 100644
--- a/Master/tlpkg/tlperl/lib/JSON/PP.pm
+++ b/Master/tlpkg/tlperl/lib/JSON/PP.pm
@@ -11,7 +11,7 @@ use Carp ();
use B ();
#use Devel::Peek;
-$JSON::PP::VERSION = '2.27203';
+$JSON::PP::VERSION = '2.27300';
@JSON::PP::EXPORT = qw(encode_json decode_json from_json to_json);
@@ -655,6 +655,7 @@ BEGIN {
}
else {
utf8::upgrade( $text );
+ utf8::encode( $text );
}
$len = length $text;
@@ -806,17 +807,12 @@ BEGIN {
else{
if ( ord $ch > 127 ) {
- if ( $utf8 ) {
- unless( $ch = is_valid_utf8($ch) ) {
- $at -= 1;
- decode_error("malformed UTF-8 character in JSON string");
- }
- else {
- $at += $utf8_len - 1;
- }
+ unless( $ch = is_valid_utf8($ch) ) {
+ $at -= 1;
+ decode_error("malformed UTF-8 character in JSON string");
}
else {
- utf8::encode( $ch );
+ $at += $utf8_len - 1;
}
$is_utf8 = 1;
@@ -1630,7 +1626,7 @@ JSON::PP - JSON::XS compatible pure-Perl module.
=head1 VERSION
- 2.27202
+ 2.27300
L<JSON::XS> 2.27 (~2.30) compatible.
@@ -2791,7 +2787,7 @@ Makamaka Hannyaharamitu, E<lt>makamaka[at]cpan.orgE<gt>
=head1 COPYRIGHT AND LICENSE
-Copyright 2007-2013 by Makamaka Hannyaharamitu
+Copyright 2007-2014 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/Master/tlpkg/tlperl/lib/LWP.pm b/Master/tlpkg/tlperl/lib/LWP.pm
deleted file mode 100644
index fa5d1097de3..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP.pm
+++ /dev/null
@@ -1,669 +0,0 @@
-package LWP;
-
-$VERSION = "6.13";
-sub Version { $VERSION; }
-
-require 5.008;
-require LWP::UserAgent; # this should load everything you need
-
-1;
-
-__END__
-
-=encoding utf-8
-
-=head1 NAME
-
-LWP - The World-Wide Web library for Perl
-
-=head1 SYNOPSIS
-
- use LWP;
- print "This is libwww-perl-$LWP::VERSION\n";
-
-
-=head1 DESCRIPTION
-
-The libwww-perl collection is a set of Perl modules which provides a
-simple and consistent application programming interface (API) to the
-World-Wide Web. The main focus of the library is to provide classes
-and functions that allow you to write WWW clients. The library also
-contain modules that are of more general use and even classes that
-help you implement simple HTTP servers.
-
-Most modules in this library provide an object oriented API. The user
-agent, requests sent and responses received from the WWW server are
-all represented by objects. This makes a simple and powerful
-interface to these services. The interface is easy to extend
-and customize for your own needs.
-
-The main features of the library are:
-
-=over 3
-
-=item *
-
-Contains various reusable components (modules) that can be
-used separately or together.
-
-=item *
-
-Provides an object oriented model of HTTP-style communication. Within
-this framework we currently support access to http, https, gopher, ftp, news,
-file, and mailto resources.
-
-=item *
-
-Provides a full object oriented interface or
-a very simple procedural interface.
-
-=item *
-
-Supports the basic and digest authorization schemes.
-
-=item *
-
-Supports transparent redirect handling.
-
-=item *
-
-Supports access through proxy servers.
-
-=item *
-
-Provides parser for F<robots.txt> files and a framework for constructing robots.
-
-=item *
-
-Supports parsing of HTML forms.
-
-=item *
-
-Implements HTTP content negotiation algorithm that can
-be used both in protocol modules and in server scripts (like CGI
-scripts).
-
-=item *
-
-Supports HTTP cookies.
-
-=item *
-
-Some simple command line clients, for instance C<lwp-request> and C<lwp-download>.
-
-=back
-
-
-=head1 HTTP STYLE COMMUNICATION
-
-
-The libwww-perl library is based on HTTP style communication. This
-section tries to describe what that means.
-
-Let us start with this quote from the HTTP specification document
-<URL:http://www.w3.org/Protocols/>:
-
-=over 3
-
-=item *
-
-The HTTP protocol is based on a request/response paradigm. A client
-establishes a connection with a server and sends a request to the
-server in the form of a request method, URI, and protocol version,
-followed by a MIME-like message containing request modifiers, client
-information, and possible body content. The server responds with a
-status line, including the message's protocol version and a success or
-error code, followed by a MIME-like message containing server
-information, entity meta-information, and possible body content.
-
-=back
-
-What this means to libwww-perl is that communication always take place
-through these steps: First a I<request> object is created and
-configured. This object is then passed to a server and we get a
-I<response> object in return that we can examine. A request is always
-independent of any previous requests, i.e. the service is stateless.
-The same simple model is used for any kind of service we want to
-access.
-
-For example, if we want to fetch a document from a remote file server,
-then we send it a request that contains a name for that document and
-the response will contain the document itself. If we access a search
-engine, then the content of the request will contain the query
-parameters and the response will contain the query result. If we want
-to send a mail message to somebody then we send a request object which
-contains our message to the mail server and the response object will
-contain an acknowledgment that tells us that the message has been
-accepted and will be forwarded to the recipient(s).
-
-It is as simple as that!
-
-
-=head2 The Request Object
-
-The libwww-perl request object has the class name C<HTTP::Request>.
-The fact that the class name uses C<HTTP::> as a
-prefix only implies that we use the HTTP model of communication. It
-does not limit the kind of services we can try to pass this I<request>
-to. For instance, we will send C<HTTP::Request>s both to ftp and
-gopher servers, as well as to the local file system.
-
-The main attributes of the request objects are:
-
-=over 3
-
-=item *
-
-B<method> is a short string that tells what kind of
-request this is. The most common methods are B<GET>, B<PUT>,
-B<POST> and B<HEAD>.
-
-=item *
-
-B<uri> is a string denoting the protocol, server and
-the name of the "document" we want to access. The B<uri> might
-also encode various other parameters.
-
-=item *
-
-B<headers> contains additional information about the
-request and can also used to describe the content. The headers
-are a set of keyword/value pairs.
-
-=item *
-
-B<content> is an arbitrary amount of data.
-
-=back
-
-=head2 The Response Object
-
-The libwww-perl response object has the class name C<HTTP::Response>.
-The main attributes of objects of this class are:
-
-=over 3
-
-=item *
-
-B<code> is a numerical value that indicates the overall
-outcome of the request.
-
-=item *
-
-B<message> is a short, human readable string that
-corresponds to the I<code>.
-
-=item *
-
-B<headers> contains additional information about the
-response and describe the content.
-
-=item *
-
-B<content> is an arbitrary amount of data.
-
-=back
-
-Since we don't want to handle all possible I<code> values directly in
-our programs, a libwww-perl response object has methods that can be
-used to query what kind of response this is. The most commonly used
-response classification methods are:
-
-=over 3
-
-=item is_success()
-
-The request was successfully received, understood or accepted.
-
-=item is_error()
-
-The request failed. The server or the resource might not be
-available, access to the resource might be denied or other things might
-have failed for some reason.
-
-=back
-
-=head2 The User Agent
-
-Let us assume that we have created a I<request> object. What do we
-actually do with it in order to receive a I<response>?
-
-The answer is that you pass it to a I<user agent> object and this
-object takes care of all the things that need to be done
-(like low-level communication and error handling) and returns
-a I<response> object. The user agent represents your
-application on the network and provides you with an interface that
-can accept I<requests> and return I<responses>.
-
-The user agent is an interface layer between
-your application code and the network. Through this interface you are
-able to access the various servers on the network.
-
-The class name for the user agent is C<LWP::UserAgent>. Every
-libwww-perl application that wants to communicate should create at
-least one object of this class. The main method provided by this
-object is request(). This method takes an C<HTTP::Request> object as
-argument and (eventually) returns a C<HTTP::Response> object.
-
-The user agent has many other attributes that let you
-configure how it will interact with the network and with your
-application.
-
-=over 3
-
-=item *
-
-B<timeout> specifies how much time we give remote servers to
-respond before the library disconnects and creates an
-internal I<timeout> response.
-
-=item *
-
-B<agent> specifies the name that your application uses when it
-presents itself on the network.
-
-=item *
-
-B<from> can be set to the e-mail address of the person
-responsible for running the application. If this is set, then the
-address will be sent to the servers with every request.
-
-=item *
-
-B<parse_head> specifies whether we should initialize response
-headers from the E<lt>head> section of HTML documents.
-
-=item *
-
-B<proxy> and B<no_proxy> specify if and when to go through
-a proxy server. <URL:http://www.w3.org/History/1994/WWW/Proxies/>
-
-=item *
-
-B<credentials> provides a way to set up user names and
-passwords needed to access certain services.
-
-=back
-
-Many applications want even more control over how they interact
-with the network and they get this by sub-classing
-C<LWP::UserAgent>. The library includes a
-sub-class, C<LWP::RobotUA>, for robot applications.
-
-=head2 An Example
-
-This example shows how the user agent, a request and a response are
-represented in actual perl code:
-
- # Create a user agent object
- use LWP::UserAgent;
- my $ua = LWP::UserAgent->new;
- $ua->agent("MyApp/0.1 ");
-
- # Create a request
- my $req = HTTP::Request->new(POST => 'http://search.cpan.org/search');
- $req->content_type('application/x-www-form-urlencoded');
- $req->content('query=libwww-perl&mode=dist');
-
- # Pass request to the user agent and get a response back
- my $res = $ua->request($req);
-
- # Check the outcome of the response
- if ($res->is_success) {
- print $res->content;
- }
- else {
- print $res->status_line, "\n";
- }
-
-The $ua is created once when the application starts up. New request
-objects should normally created for each request sent.
-
-
-=head1 NETWORK SUPPORT
-
-This section discusses the various protocol schemes and
-the HTTP style methods that headers may be used for each.
-
-For all requests, a "User-Agent" header is added and initialized from
-the $ua->agent attribute before the request is handed to the network
-layer. In the same way, a "From" header is initialized from the
-$ua->from attribute.
-
-For all responses, the library adds a header called "Client-Date".
-This header holds the time when the response was received by
-your application. The format and semantics of the header are the
-same as the server created "Date" header. You may also encounter other
-"Client-XXX" headers. They are all generated by the library
-internally and are not received from the servers.
-
-=head2 HTTP Requests
-
-HTTP requests are just handed off to an HTTP server and it
-decides what happens. Few servers implement methods beside the usual
-"GET", "HEAD", "POST" and "PUT", but CGI-scripts may implement
-any method they like.
-
-If the server is not available then the library will generate an
-internal error response.
-
-The library automatically adds a "Host" and a "Content-Length" header
-to the HTTP request before it is sent over the network.
-
-For a GET request you might want to add a "If-Modified-Since" or
-"If-None-Match" header to make the request conditional.
-
-For a POST request you should add the "Content-Type" header. When you
-try to emulate HTML E<lt>FORM> handling you should usually let the value
-of the "Content-Type" header be "application/x-www-form-urlencoded".
-See L<lwpcook> for examples of this.
-
-The libwww-perl HTTP implementation currently support the HTTP/1.1
-and HTTP/1.0 protocol.
-
-The library allows you to access proxy server through HTTP. This
-means that you can set up the library to forward all types of request
-through the HTTP protocol module. See L<LWP::UserAgent> for
-documentation of this.
-
-
-=head2 HTTPS Requests
-
-HTTPS requests are HTTP requests over an encrypted network connection
-using the SSL protocol developed by Netscape. Everything about HTTP
-requests above also apply to HTTPS requests. In addition the library
-will add the headers "Client-SSL-Cipher", "Client-SSL-Cert-Subject" and
-"Client-SSL-Cert-Issuer" to the response. These headers denote the
-encryption method used and the name of the server owner.
-
-The request can contain the header "If-SSL-Cert-Subject" in order to
-make the request conditional on the content of the server certificate.
-If the certificate subject does not match, no request is sent to the
-server and an internally generated error response is returned. The
-value of the "If-SSL-Cert-Subject" header is interpreted as a Perl
-regular expression.
-
-
-=head2 FTP Requests
-
-The library currently supports GET, HEAD and PUT requests. GET
-retrieves a file or a directory listing from an FTP server. PUT
-stores a file on a ftp server.
-
-You can specify a ftp account for servers that want this in addition
-to user name and password. This is specified by including an "Account"
-header in the request.
-
-User name/password can be specified using basic authorization or be
-encoded in the URL. Failed logins return an UNAUTHORIZED response with
-"WWW-Authenticate: Basic" and can be treated like basic authorization
-for HTTP.
-
-The library supports ftp ASCII transfer mode by specifying the "type=a"
-parameter in the URL. It also supports transfer of ranges for FTP transfers
-using the "Range" header.
-
-Directory listings are by default returned unprocessed (as returned
-from the ftp server) with the content media type reported to be
-"text/ftp-dir-listing". The C<File::Listing> module provides methods
-for parsing of these directory listing.
-
-The ftp module is also able to convert directory listings to HTML and
-this can be requested via the standard HTTP content negotiation
-mechanisms (add an "Accept: text/html" header in the request if you
-want this).
-
-For normal file retrievals, the "Content-Type" is guessed based on the
-file name suffix. See L<LWP::MediaTypes>.
-
-The "If-Modified-Since" request header works for servers that implement
-the MDTM command. It will probably not work for directory listings though.
-
-Example:
-
- $req = HTTP::Request->new(GET => 'ftp://me:passwd@ftp.some.where.com/');
- $req->header(Accept => "text/html, */*;q=0.1");
-
-=head2 News Requests
-
-Access to the USENET News system is implemented through the NNTP
-protocol. The name of the news server is obtained from the
-NNTP_SERVER environment variable and defaults to "news". It is not
-possible to specify the hostname of the NNTP server in news: URLs.
-
-The library supports GET and HEAD to retrieve news articles through the
-NNTP protocol. You can also post articles to newsgroups by using
-(surprise!) the POST method.
-
-GET on newsgroups is not implemented yet.
-
-Examples:
-
- $req = HTTP::Request->new(GET => 'news:abc1234@a.sn.no');
-
- $req = HTTP::Request->new(POST => 'news:comp.lang.perl.test');
- $req->header(Subject => 'This is a test',
- From => 'me@some.where.org');
- $req->content(<<EOT);
- This is the content of the message that we are sending to
- the world.
- EOT
-
-
-=head2 Gopher Request
-
-The library supports the GET and HEAD methods for gopher requests. All
-request header values are ignored. HEAD cheats and returns a
-response without even talking to server.
-
-Gopher menus are always converted to HTML.
-
-The response "Content-Type" is generated from the document type
-encoded (as the first letter) in the request URL path itself.
-
-Example:
-
- $req = HTTP::Request->new(GET => 'gopher://gopher.sn.no/');
-
-
-
-=head2 File Request
-
-The library supports GET and HEAD methods for file requests. The
-"If-Modified-Since" header is supported. All other headers are
-ignored. The I<host> component of the file URL must be empty or set
-to "localhost". Any other I<host> value will be treated as an error.
-
-Directories are always converted to an HTML document. For normal
-files, the "Content-Type" and "Content-Encoding" in the response are
-guessed based on the file suffix.
-
-Example:
-
- $req = HTTP::Request->new(GET => 'file:/etc/passwd');
-
-
-=head2 Mailto Request
-
-You can send (aka "POST") mail messages using the library. All
-headers specified for the request are passed on to the mail system.
-The "To" header is initialized from the mail address in the URL.
-
-Example:
-
- $req = HTTP::Request->new(POST => 'mailto:libwww@perl.org');
- $req->header(Subject => "subscribe");
- $req->content("Please subscribe me to the libwww-perl mailing list!\n");
-
-=head2 CPAN Requests
-
-URLs with scheme C<cpan:> are redirected to the a suitable CPAN
-mirror. If you have your own local mirror of CPAN you might tell LWP
-to use it for C<cpan:> URLs by an assignment like this:
-
- $LWP::Protocol::cpan::CPAN = "file:/local/CPAN/";
-
-Suitable CPAN mirrors are also picked up from the configuration for
-the CPAN.pm, so if you have used that module a suitable mirror should
-be picked automatically. If neither of these apply, then a redirect
-to the generic CPAN http location is issued.
-
-Example request to download the newest perl:
-
- $req = HTTP::Request->new(GET => "cpan:src/latest.tar.gz");
-
-
-=head1 OVERVIEW OF CLASSES AND PACKAGES
-
-This table should give you a quick overview of the classes provided by the
-library. Indentation shows class inheritance.
-
- LWP::MemberMixin -- Access to member variables of Perl5 classes
- LWP::UserAgent -- WWW user agent class
- LWP::RobotUA -- When developing a robot applications
- LWP::Protocol -- Interface to various protocol schemes
- LWP::Protocol::http -- http:// access
- LWP::Protocol::file -- file:// access
- LWP::Protocol::ftp -- ftp:// access
- ...
-
- LWP::Authen::Basic -- Handle 401 and 407 responses
- LWP::Authen::Digest
-
- HTTP::Headers -- MIME/RFC822 style header (used by HTTP::Message)
- HTTP::Message -- HTTP style message
- HTTP::Request -- HTTP request
- HTTP::Response -- HTTP response
- HTTP::Daemon -- A HTTP server class
-
- WWW::RobotRules -- Parse robots.txt files
- WWW::RobotRules::AnyDBM_File -- Persistent RobotRules
-
- Net::HTTP -- Low level HTTP client
-
-The following modules provide various functions and definitions.
-
- LWP -- This file. Library version number and documentation.
- LWP::MediaTypes -- MIME types configuration (text/html etc.)
- LWP::Simple -- Simplified procedural interface for common functions
- HTTP::Status -- HTTP status code (200 OK etc)
- HTTP::Date -- Date parsing module for HTTP date formats
- HTTP::Negotiate -- HTTP content negotiation calculation
- File::Listing -- Parse directory listings
- HTML::Form -- Processing for <form>s in HTML documents
-
-
-=head1 MORE DOCUMENTATION
-
-All modules contain detailed information on the interfaces they
-provide. The L<lwpcook> manpage is the libwww-perl cookbook that contain
-examples of typical usage of the library. You might want to take a
-look at how the scripts L<lwp-request>, L<lwp-download>, L<lwp-dump>
-and L<lwp-mirror> are implemented.
-
-=head1 ENVIRONMENT
-
-The following environment variables are used by LWP:
-
-=over
-
-=item HOME
-
-The C<LWP::MediaTypes> functions will look for the F<.media.types> and
-F<.mime.types> files relative to you home directory.
-
-=item http_proxy
-
-=item ftp_proxy
-
-=item xxx_proxy
-
-=item no_proxy
-
-These environment variables can be set to enable communication through
-a proxy server. See the description of the C<env_proxy> method in
-L<LWP::UserAgent>.
-
-=item PERL_LWP_ENV_PROXY
-
-If set to a TRUE value, then the C<LWP::UserAgent> will by default call
-C<env_proxy> during initialization. This makes LWP honor the proxy variables
-described above.
-
-=item PERL_LWP_SSL_VERIFY_HOSTNAME
-
-The default C<verify_hostname> setting for C<LWP::UserAgent>. If
-not set the default will be 1. Set it as 0 to disable hostname
-verification (the default prior to libwww-perl 5.840.
-
-=item PERL_LWP_SSL_CA_FILE
-
-=item PERL_LWP_SSL_CA_PATH
-
-The file and/or directory
-where the trusted Certificate Authority certificates
-is located. See L<LWP::UserAgent> for details.
-
-=item PERL_HTTP_URI_CLASS
-
-Used to decide what URI objects to instantiate. The default is C<URI>.
-You might want to set it to C<URI::URL> for compatibility with old times.
-
-=back
-
-=head1 AUTHORS
-
-LWP was made possible by contributions from Adam Newby, Albert
-Dvornik, Alexandre Duret-Lutz, Andreas Gustafsson, Andreas König,
-Andrew Pimlott, Andy Lester, Ben Coleman, Benjamin Low, Ben Low, Ben
-Tilly, Blair Zajac, Bob Dalgleish, BooK, Brad Hughes, Brian
-J. Murrell, Brian McCauley, Charles C. Fu, Charles Lane, Chris Nandor,
-Christian Gilmore, Chris W. Unger, Craig Macdonald, Dale Couch, Dan
-Kubb, Dave Dunkin, Dave W. Smith, David Coppit, David Dick, David
-D. Kilzer, Doug MacEachern, Edward Avis, erik, Gary Shea, Gisle Aas,
-Graham Barr, Gurusamy Sarathy, Hans de Graaff, Harald Joerg, Harry
-Bochner, Hugo, Ilya Zakharevich, INOUE Yoshinari, Ivan Panchenko, Jack
-Shirazi, James Tillman, Jan Dubois, Jared Rhine, Jim Stern, Joao
-Lopes, John Klar, Johnny Lee, Josh Kronengold, Josh Rai, Joshua
-Chamas, Joshua Hoblitt, Kartik Subbarao, Keiichiro Nagano, Ken
-Williams, KONISHI Katsuhiro, Lee T Lindley, Liam Quinn, Marc Hedlund,
-Marc Langheinrich, Mark D. Anderson, Marko Asplund, Mark Stosberg,
-Markus B Krüger, Markus Laker, Martijn Koster, Martin Thurn, Matthew
-Eldridge, Matthew.van.Eerde, Matt Sergeant, Michael A. Chase, Michael
-Quaranta, Michael Thompson, Mike Schilli, Moshe Kaminsky, Nathan
-Torkington, Nicolai Langfeldt, Norton Allen, Olly Betts, Paul
-J. Schinder, peterm, Philip GuentherDaniel Buenzli, Pon Hwa Lin,
-Radoslaw Zielinski, Radu Greab, Randal L. Schwartz, Richard Chen,
-Robin Barker, Roy Fielding, Sander van Zoest, Sean M. Burke,
-shildreth, Slaven Rezic, Steve A Fink, Steve Hay, Steven Butler,
-Steve_Kilbane, Takanori Ugai, Thomas Lotterer, Tim Bunce, Tom Hughes,
-Tony Finch, Ville Skyttä, Ward Vandewege, William York, Yale Huang,
-and Yitzchak Scott-Thoennes.
-
-LWP owes a lot in motivation, design, and code, to the libwww-perl
-library for Perl4 by Roy Fielding, which included work from Alberto
-Accomazzi, James Casey, Brooks Cutter, Martijn Koster, Oscar
-Nierstrasz, Mel Melchner, Gertjan van Oosten, Jared Rhine, Jack
-Shirazi, Gene Spafford, Marc VanHeyningen, Steven E. Brenner, Marion
-Hakanson, Waldemar Kebsch, Tony Sanders, and Larry Wall; see the
-libwww-perl-0.40 library for details.
-
-=head1 COPYRIGHT
-
- Copyright 1995-2009, Gisle Aas
- Copyright 1995, Martijn Koster
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 AVAILABILITY
-
-The latest version of this library is likely to be available from CPAN
-as well as:
-
- http://github.com/libwww-perl/libwww-perl
-
-The best place to discuss this code is on the <libwww@perl.org>
-mailing list.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/LWP/Authen/Basic.pm b/Master/tlpkg/tlperl/lib/LWP/Authen/Basic.pm
deleted file mode 100644
index e7815bd247f..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Authen/Basic.pm
+++ /dev/null
@@ -1,65 +0,0 @@
-package LWP::Authen::Basic;
-use strict;
-
-require MIME::Base64;
-
-sub auth_header {
- my($class, $user, $pass) = @_;
- return "Basic " . MIME::Base64::encode("$user:$pass", "");
-}
-
-sub authenticate
-{
- my($class, $ua, $proxy, $auth_param, $response,
- $request, $arg, $size) = @_;
-
- my $realm = $auth_param->{realm} || "";
- my $url = $proxy ? $request->{proxy} : $request->uri_canonical;
- return $response unless $url;
- my $host_port = $url->host_port;
- my $auth_header = $proxy ? "Proxy-Authorization" : "Authorization";
-
- my @m = $proxy ? (m_proxy => $url) : (m_host_port => $host_port);
- push(@m, realm => $realm);
-
- my $h = $ua->get_my_handler("request_prepare", @m, sub {
- $_[0]{callback} = sub {
- my($req, $ua, $h) = @_;
- my($user, $pass) = $ua->credentials($host_port, $h->{realm});
- if (defined $user) {
- my $auth_value = $class->auth_header($user, $pass, $req, $ua, $h);
- $req->header($auth_header => $auth_value);
- }
- };
- });
- $h->{auth_param} = $auth_param;
-
- if (!$proxy && !$request->header($auth_header) && $ua->credentials($host_port, $realm)) {
- # we can make sure this handler applies and retry
- add_path($h, $url->path);
- return $ua->request($request->clone, $arg, $size, $response);
- }
-
- my($user, $pass) = $ua->get_basic_credentials($realm, $url, $proxy);
- unless (defined $user and defined $pass) {
- $ua->set_my_handler("request_prepare", undef, @m); # delete handler
- return $response;
- }
-
- # check that the password has changed
- my ($olduser, $oldpass) = $ua->credentials($host_port, $realm);
- return $response if (defined $olduser and defined $oldpass and
- $user eq $olduser and $pass eq $oldpass);
-
- $ua->credentials($host_port, $realm, $user, $pass);
- add_path($h, $url->path) unless $proxy;
- return $ua->request($request->clone, $arg, $size, $response);
-}
-
-sub add_path {
- my($h, $path) = @_;
- $path =~ s,[^/]+\z,,;
- push(@{$h->{m_path_prefix}}, $path);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/LWP/Authen/Digest.pm b/Master/tlpkg/tlperl/lib/LWP/Authen/Digest.pm
deleted file mode 100644
index 6fe542e29b3..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Authen/Digest.pm
+++ /dev/null
@@ -1,75 +0,0 @@
-package LWP::Authen::Digest;
-
-use strict;
-use base 'LWP::Authen::Basic';
-
-require Digest::MD5;
-
-sub auth_header {
- my($class, $user, $pass, $request, $ua, $h) = @_;
-
- my $auth_param = $h->{auth_param};
-
- my $nc = sprintf "%08X", ++$ua->{authen_md5_nonce_count}{$auth_param->{nonce}};
- my $cnonce = sprintf "%8x", time;
-
- my $uri = $request->uri->path_query;
- $uri = "/" unless length $uri;
-
- my $md5 = Digest::MD5->new;
-
- my(@digest);
- $md5->add(join(":", $user, $auth_param->{realm}, $pass));
- push(@digest, $md5->hexdigest);
- $md5->reset;
-
- push(@digest, $auth_param->{nonce});
-
- if ($auth_param->{qop}) {
- push(@digest, $nc, $cnonce, ($auth_param->{qop} =~ m|^auth[,;]auth-int$|) ? 'auth' : $auth_param->{qop});
- }
-
- $md5->add(join(":", $request->method, $uri));
- push(@digest, $md5->hexdigest);
- $md5->reset;
-
- $md5->add(join(":", @digest));
- my($digest) = $md5->hexdigest;
- $md5->reset;
-
- my %resp = map { $_ => $auth_param->{$_} } qw(realm nonce opaque);
- @resp{qw(username uri response algorithm)} = ($user, $uri, $digest, "MD5");
-
- if (($auth_param->{qop} || "") =~ m|^auth([,;]auth-int)?$|) {
- @resp{qw(qop cnonce nc)} = ("auth", $cnonce, $nc);
- }
-
- my(@order) = qw(username realm qop algorithm uri nonce nc cnonce response);
- if($request->method =~ /^(?:POST|PUT)$/) {
- $md5->add($request->content);
- my $content = $md5->hexdigest;
- $md5->reset;
- $md5->add(join(":", @digest[0..1], $content));
- $md5->reset;
- $resp{"message-digest"} = $md5->hexdigest;
- push(@order, "message-digest");
- }
- push(@order, "opaque");
- my @pairs;
- for (@order) {
- next unless defined $resp{$_};
-
- # RFC2617 sais that qop-value and nc-value should be unquoted.
- if ( $_ eq 'qop' || $_ eq 'nc' ) {
- push(@pairs, "$_=" . $resp{$_});
- }
- else {
- push(@pairs, "$_=" . qq("$resp{$_}"));
- }
- }
-
- my $auth_value = "Digest " . join(", ", @pairs);
- return $auth_value;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/LWP/Authen/Ntlm.pm b/Master/tlpkg/tlperl/lib/LWP/Authen/Ntlm.pm
deleted file mode 100644
index 2a571b75bcb..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Authen/Ntlm.pm
+++ /dev/null
@@ -1,180 +0,0 @@
-package LWP::Authen::Ntlm;
-
-use strict;
-use vars qw/$VERSION/;
-
-$VERSION = "6.13";
-
-use Authen::NTLM "1.02";
-use MIME::Base64 "2.12";
-
-sub authenticate {
- my($class, $ua, $proxy, $auth_param, $response,
- $request, $arg, $size) = @_;
-
- my($user, $pass) = $ua->get_basic_credentials($auth_param->{realm},
- $request->uri, $proxy);
-
- unless(defined $user and defined $pass) {
- return $response;
- }
-
- if (!$ua->conn_cache()) {
- warn "The keep_alive option must be enabled for NTLM authentication to work. NTLM authentication aborted.\n";
- return $response;
- }
-
- my($domain, $username) = split(/\\/, $user);
-
- ntlm_domain($domain);
- ntlm_user($username);
- ntlm_password($pass);
-
- my $auth_header = $proxy ? "Proxy-Authorization" : "Authorization";
-
- # my ($challenge) = $response->header('WWW-Authenticate');
- my $challenge;
- foreach ($response->header('WWW-Authenticate')) {
- last if /^NTLM/ && ($challenge=$_);
- }
-
- if ($challenge eq 'NTLM') {
- # First phase, send handshake
- my $auth_value = "NTLM " . ntlm();
- ntlm_reset();
-
- # Need to check this isn't a repeated fail!
- my $r = $response;
- my $retry_count = 0;
- while ($r) {
- my $auth = $r->request->header($auth_header);
- ++$retry_count if ($auth && $auth eq $auth_value);
- if ($retry_count > 2) {
- # here we know this failed before
- $response->header("Client-Warning" =>
- "Credentials for '$user' failed before");
- return $response;
- }
- $r = $r->previous;
- }
-
- my $referral = $request->clone;
- $referral->header($auth_header => $auth_value);
- return $ua->request($referral, $arg, $size, $response);
- }
-
- else {
- # Second phase, use the response challenge (unless non-401 code
- # was returned, in which case, we just send back the response
- # object, as is
- my $auth_value;
- if ($response->code ne '401') {
- return $response;
- }
- else {
- my $challenge;
- foreach ($response->header('WWW-Authenticate')) {
- last if /^NTLM/ && ($challenge=$_);
- }
- $challenge =~ s/^NTLM //;
- ntlm();
- $auth_value = "NTLM " . ntlm($challenge);
- ntlm_reset();
- }
-
- my $referral = $request->clone;
- $referral->header($auth_header => $auth_value);
- my $response2 = $ua->request($referral, $arg, $size, $response);
- return $response2;
- }
-}
-
-1;
-
-
-=head1 NAME
-
-LWP::Authen::Ntlm - Library for enabling NTLM authentication (Microsoft) in LWP
-
-=head1 SYNOPSIS
-
- use LWP::UserAgent;
- use HTTP::Request::Common;
- my $url = 'http://www.company.com/protected_page.html';
-
- # Set up the ntlm client and then the base64 encoded ntlm handshake message
- my $ua = LWP::UserAgent->new(keep_alive=>1);
- $ua->credentials('www.company.com:80', '', "MyDomain\\MyUserCode", 'MyPassword');
-
- $request = GET $url;
- print "--Performing request now...-----------\n";
- $response = $ua->request($request);
- print "--Done with request-------------------\n";
-
- if ($response->is_success) {print "It worked!->" . $response->code . "\n"}
- else {print "It didn't work!->" . $response->code . "\n"}
-
-=head1 DESCRIPTION
-
-C<LWP::Authen::Ntlm> allows LWP to authenticate against servers that are using the
-NTLM authentication scheme popularized by Microsoft. This type of authentication is
-common on intranets of Microsoft-centric organizations.
-
-The module takes advantage of the Authen::NTLM module by Mark Bush. Since there
-is also another Authen::NTLM module available from CPAN by Yee Man Chan with an
-entirely different interface, it is necessary to ensure that you have the correct
-NTLM module.
-
-In addition, there have been problems with incompatibilities between different
-versions of Mime::Base64, which Bush's Authen::NTLM makes use of. Therefore, it is
-necessary to ensure that your Mime::Base64 module supports exporting of the
-encode_base64 and decode_base64 functions.
-
-=head1 USAGE
-
-The module is used indirectly through LWP, rather than including it directly in your
-code. The LWP system will invoke the NTLM authentication when it encounters the
-authentication scheme while attempting to retrieve a URL from a server. In order
-for the NTLM authentication to work, you must have a few things set up in your
-code prior to attempting to retrieve the URL:
-
-=over 4
-
-=item *
-
-Enable persistent HTTP connections
-
-To do this, pass the "keep_alive=>1" option to the LWP::UserAgent when creating it, like this:
-
- my $ua = LWP::UserAgent->new(keep_alive=>1);
-
-=item *
-
-Set the credentials on the UserAgent object
-
-The credentials must be set like this:
-
- $ua->credentials('www.company.com:80', '', "MyDomain\\MyUserCode", 'MyPassword');
-
-Note that you cannot use the HTTP::Request object's authorization_basic() method to set
-the credentials. Note, too, that the 'www.company.com:80' portion only sets credentials
-on the specified port AND it is case-sensitive (this is due to the way LWP is coded, and
-has nothing to do with LWP::Authen::Ntlm)
-
-=back
-
-=head1 AVAILABILITY
-
-General queries regarding LWP should be made to the LWP Mailing List.
-
-Questions specific to LWP::Authen::Ntlm can be forwarded to jtillman@bigfoot.com
-
-=head1 COPYRIGHT
-
-Copyright (c) 2002 James Tillman. All rights reserved. This
-program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-L<LWP>, L<LWP::UserAgent>, L<lwpcook>.
diff --git a/Master/tlpkg/tlperl/lib/LWP/ConnCache.pm b/Master/tlpkg/tlperl/lib/LWP/ConnCache.pm
deleted file mode 100644
index 4969ec5a4dc..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/ConnCache.pm
+++ /dev/null
@@ -1,313 +0,0 @@
-package LWP::ConnCache;
-
-use strict;
-use vars qw($VERSION $DEBUG);
-
-$VERSION = "6.13";
-
-
-sub new {
- my($class, %cnf) = @_;
-
- my $total_capacity = 1;
- if (exists $cnf{total_capacity}) {
- $total_capacity = delete $cnf{total_capacity};
- }
- if (%cnf && $^W) {
- require Carp;
- Carp::carp("Unrecognised options: @{[sort keys %cnf]}")
- }
- my $self = bless { cc_conns => [] }, $class;
- $self->total_capacity($total_capacity);
- $self;
-}
-
-
-sub deposit {
- my($self, $type, $key, $conn) = @_;
- push(@{$self->{cc_conns}}, [$conn, $type, $key, time]);
- $self->enforce_limits($type);
- return;
-}
-
-
-sub withdraw {
- my($self, $type, $key) = @_;
- my $conns = $self->{cc_conns};
- for my $i (0 .. @$conns - 1) {
- my $c = $conns->[$i];
- next unless $c->[1] eq $type && $c->[2] eq $key;
- splice(@$conns, $i, 1); # remove it
- return $c->[0];
- }
- return undef;
-}
-
-
-sub total_capacity {
- my $self = shift;
- my $old = $self->{cc_limit_total};
- if (@_) {
- $self->{cc_limit_total} = shift;
- $self->enforce_limits;
- }
- $old;
-}
-
-
-sub capacity {
- my $self = shift;
- my $type = shift;
- my $old = $self->{cc_limit}{$type};
- if (@_) {
- $self->{cc_limit}{$type} = shift;
- $self->enforce_limits($type);
- }
- $old;
-}
-
-
-sub enforce_limits {
- my($self, $type) = @_;
- my $conns = $self->{cc_conns};
-
- my @types = $type ? ($type) : ($self->get_types);
- for $type (@types) {
- next unless $self->{cc_limit};
- my $limit = $self->{cc_limit}{$type};
- next unless defined $limit;
- for my $i (reverse 0 .. @$conns - 1) {
- next unless $conns->[$i][1] eq $type;
- if (--$limit < 0) {
- $self->dropping(splice(@$conns, $i, 1), "$type capacity exceeded");
- }
- }
- }
-
- if (defined(my $total = $self->{cc_limit_total})) {
- while (@$conns > $total) {
- $self->dropping(shift(@$conns), "Total capacity exceeded");
- }
- }
-}
-
-
-sub dropping {
- my($self, $c, $reason) = @_;
- print "DROPPING @$c [$reason]\n" if $DEBUG;
-}
-
-
-sub drop {
- my($self, $checker, $reason) = @_;
- if (ref($checker) ne "CODE") {
- # make it so
- if (!defined $checker) {
- $checker = sub { 1 }; # drop all of them
- }
- elsif (_looks_like_number($checker)) {
- my $age_limit = $checker;
- my $time_limit = time - $age_limit;
- $reason ||= "older than $age_limit";
- $checker = sub { $_[3] < $time_limit };
- }
- else {
- my $type = $checker;
- $reason ||= "drop $type";
- $checker = sub { $_[1] eq $type }; # match on type
- }
- }
- $reason ||= "drop";
-
- local $SIG{__DIE__}; # don't interfere with eval below
- local $@;
- my @c;
- for (@{$self->{cc_conns}}) {
- my $drop;
- eval {
- if (&$checker(@$_)) {
- $self->dropping($_, $reason);
- $drop++;
- }
- };
- push(@c, $_) unless $drop;
- }
- @{$self->{cc_conns}} = @c;
-}
-
-
-sub prune {
- my $self = shift;
- $self->drop(sub { !shift->ping }, "ping");
-}
-
-
-sub get_types {
- my $self = shift;
- my %t;
- $t{$_->[1]}++ for @{$self->{cc_conns}};
- return keys %t;
-}
-
-
-sub get_connections {
- my($self, $type) = @_;
- my @c;
- for (@{$self->{cc_conns}}) {
- push(@c, $_->[0]) if !$type || ($type && $type eq $_->[1]);
- }
- @c;
-}
-
-
-sub _looks_like_number {
- $_[0] =~ /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/;
-}
-
-1;
-
-
-__END__
-
-=head1 NAME
-
-LWP::ConnCache - Connection cache manager
-
-=head1 NOTE
-
-This module is experimental. Details of its interface is likely to
-change in the future.
-
-=head1 SYNOPSIS
-
- use LWP::ConnCache;
- my $cache = LWP::ConnCache->new;
- $cache->deposit($type, $key, $sock);
- $sock = $cache->withdraw($type, $key);
-
-=head1 DESCRIPTION
-
-The C<LWP::ConnCache> class is the standard connection cache manager
-for LWP::UserAgent.
-
-The following basic methods are provided:
-
-=over
-
-=item $cache = LWP::ConnCache->new( %options )
-
-This method constructs a new C<LWP::ConnCache> object. The only
-option currently accepted is 'total_capacity'. If specified it
-initialize the total_capacity option. It defaults to the value 1.
-
-=item $cache->total_capacity( [$num_connections] )
-
-Get/sets the number of connection that will be cached. Connections
-will start to be dropped when this limit is reached. If set to C<0>,
-then all connections are immediately dropped. If set to C<undef>,
-then there is no limit.
-
-=item $cache->capacity($type, [$num_connections] )
-
-Get/set a limit for the number of connections of the specified type
-that can be cached. The $type will typically be a short string like
-"http" or "ftp".
-
-=item $cache->drop( [$checker, [$reason]] )
-
-Drop connections by some criteria. The $checker argument is a
-subroutine that is called for each connection. If the routine returns
-a TRUE value then the connection is dropped. The routine is called
-with ($conn, $type, $key, $deposit_time) as arguments.
-
-Shortcuts: If the $checker argument is absent (or C<undef>) all cached
-connections are dropped. If the $checker is a number then all
-connections untouched that the given number of seconds or more are
-dropped. If $checker is a string then all connections of the given
-type are dropped.
-
-The $reason argument is passed on to the dropped() method.
-
-=item $cache->prune
-
-Calling this method will drop all connections that are dead. This is
-tested by calling the ping() method on the connections. If the ping()
-method exists and returns a FALSE value, then the connection is
-dropped.
-
-=item $cache->get_types
-
-This returns all the 'type' fields used for the currently cached
-connections.
-
-=item $cache->get_connections( [$type] )
-
-This returns all connection objects of the specified type. If no type
-is specified then all connections are returned. In scalar context the
-number of cached connections of the specified type is returned.
-
-=back
-
-
-The following methods are called by low-level protocol modules to
-try to save away connections and to get them back.
-
-=over
-
-=item $cache->deposit($type, $key, $conn)
-
-This method adds a new connection to the cache. As a result other
-already cached connections might be dropped. Multiple connections with
-the same $type/$key might added.
-
-=item $conn = $cache->withdraw($type, $key)
-
-This method tries to fetch back a connection that was previously
-deposited. If no cached connection with the specified $type/$key is
-found, then C<undef> is returned. There is not guarantee that a
-deposited connection can be withdrawn, as the cache manger is free to
-drop connections at any time.
-
-=back
-
-The following methods are called internally. Subclasses might want to
-override them.
-
-=over
-
-=item $conn->enforce_limits([$type])
-
-This method is called with after a new connection is added (deposited)
-in the cache or capacity limits are adjusted. The default
-implementation drops connections until the specified capacity limits
-are not exceeded.
-
-=item $conn->dropping($conn_record, $reason)
-
-This method is called when a connection is dropped. The record
-belonging to the dropped connection is passed as the first argument
-and a string describing the reason for the drop is passed as the
-second argument. The default implementation makes some noise if the
-$LWP::ConnCache::DEBUG variable is set and nothing more.
-
-=back
-
-=head1 SUBCLASSING
-
-For specialized cache policy it makes sense to subclass
-C<LWP::ConnCache> and perhaps override the deposit(), enforce_limits()
-and dropping() methods.
-
-The object itself is a hash. Keys prefixed with C<cc_> are reserved
-for the base class.
-
-=head1 SEE ALSO
-
-L<LWP::UserAgent>
-
-=head1 COPYRIGHT
-
-Copyright 2001 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/LWP/Debug.pm b/Master/tlpkg/tlperl/lib/LWP/Debug.pm
deleted file mode 100644
index 99011d57ab7..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Debug.pm
+++ /dev/null
@@ -1,110 +0,0 @@
-package LWP::Debug; # legacy
-
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT_OK = qw(level trace debug conns);
-
-use Carp ();
-
-my @levels = qw(trace debug conns);
-%current_level = ();
-
-
-sub import
-{
- my $pack = shift;
- my $callpkg = caller(0);
- my @symbols = ();
- my @levels = ();
- for (@_) {
- if (/^[-+]/) {
- push(@levels, $_);
- }
- else {
- push(@symbols, $_);
- }
- }
- Exporter::export($pack, $callpkg, @symbols);
- level(@levels);
-}
-
-
-sub level
-{
- for (@_) {
- if ($_ eq '+') { # all on
- # switch on all levels
- %current_level = map { $_ => 1 } @levels;
- }
- elsif ($_ eq '-') { # all off
- %current_level = ();
- }
- elsif (/^([-+])(\w+)$/) {
- $current_level{$2} = $1 eq '+';
- }
- else {
- Carp::croak("Illegal level format $_");
- }
- }
-}
-
-
-sub trace { _log(@_) if $current_level{'trace'}; }
-sub debug { _log(@_) if $current_level{'debug'}; }
-sub conns { _log(@_) if $current_level{'conns'}; }
-
-
-sub _log
-{
- my $msg = shift;
- $msg .= "\n" unless $msg =~ /\n$/; # ensure trailing "\n"
-
- my($package,$filename,$line,$sub) = caller(2);
- print STDERR "$sub: $msg";
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-LWP::Debug - deprecated
-
-=head1 DESCRIPTION
-
-LWP::Debug is used to provide tracing facilities, but these are not used
-by LWP any more. The code in this module is kept around
-(undocumented) so that 3rd party code that happens to use the old
-interfaces continue to run.
-
-One useful feature that LWP::Debug provided (in an imprecise and
-troublesome way) was network traffic monitoring. The following
-section provides some hints about recommended replacements.
-
-=head2 Network traffic monitoring
-
-The best way to monitor the network traffic that LWP generates is to
-use an external TCP monitoring program. The Wireshark program
-(L<http://www.wireshark.org/>) is highly recommended for this.
-
-Another approach it to use a debugging HTTP proxy server and make
-LWP direct all its traffic via this one. Call C<< $ua->proxy >> to
-set it up and then just use LWP as before.
-
-For less precise monitoring needs just setting up a few simple
-handlers might do. The following example sets up handlers to dump the
-request and response objects that pass through LWP:
-
- use LWP::UserAgent;
- $ua = LWP::UserAgent->new;
- $ua->default_header('Accept-Encoding' => scalar HTTP::Message::decodable());
-
- $ua->add_handler("request_send", sub { shift->dump; return });
- $ua->add_handler("response_done", sub { shift->dump; return });
-
- $ua->get("http://www.example.com");
-
-=head1 SEE ALSO
-
-L<LWP::UserAgent>
diff --git a/Master/tlpkg/tlperl/lib/LWP/DebugFile.pm b/Master/tlpkg/tlperl/lib/LWP/DebugFile.pm
deleted file mode 100644
index aacdfca0fe5..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/DebugFile.pm
+++ /dev/null
@@ -1,5 +0,0 @@
-package LWP::DebugFile;
-
-# legacy stub
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/LWP/MediaTypes.pm b/Master/tlpkg/tlperl/lib/LWP/MediaTypes.pm
deleted file mode 100644
index 8c2a8aee334..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/MediaTypes.pm
+++ /dev/null
@@ -1,280 +0,0 @@
-package LWP::MediaTypes;
-
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(guess_media_type media_suffix);
-@EXPORT_OK = qw(add_type add_encoding read_media_types);
-$VERSION = "6.02";
-
-use strict;
-
-# note: These hashes will also be filled with the entries found in
-# the 'media.types' file.
-
-my %suffixType = (
- 'txt' => 'text/plain',
- 'html' => 'text/html',
- 'gif' => 'image/gif',
- 'jpg' => 'image/jpeg',
- 'xml' => 'text/xml',
-);
-
-my %suffixExt = (
- 'text/plain' => 'txt',
- 'text/html' => 'html',
- 'image/gif' => 'gif',
- 'image/jpeg' => 'jpg',
- 'text/xml' => 'xml',
-);
-
-#XXX: there should be some way to define this in the media.types files.
-my %suffixEncoding = (
- 'Z' => 'compress',
- 'gz' => 'gzip',
- 'hqx' => 'x-hqx',
- 'uu' => 'x-uuencode',
- 'z' => 'x-pack',
- 'bz2' => 'x-bzip2',
-);
-
-read_media_types();
-
-
-
-sub guess_media_type
-{
- my($file, $header) = @_;
- return undef unless defined $file;
-
- my $fullname;
- if (ref($file)) {
- # assume URI object
- $file = $file->path;
- #XXX should handle non http:, file: or ftp: URIs differently
- }
- else {
- $fullname = $file; # enable peek at actual file
- }
-
- my @encoding = ();
- my $ct = undef;
- for (file_exts($file)) {
- # first check this dot part as encoding spec
- if (exists $suffixEncoding{$_}) {
- unshift(@encoding, $suffixEncoding{$_});
- next;
- }
- if (exists $suffixEncoding{lc $_}) {
- unshift(@encoding, $suffixEncoding{lc $_});
- next;
- }
-
- # check content-type
- if (exists $suffixType{$_}) {
- $ct = $suffixType{$_};
- last;
- }
- if (exists $suffixType{lc $_}) {
- $ct = $suffixType{lc $_};
- last;
- }
-
- # don't know nothing about this dot part, bail out
- last;
- }
- unless (defined $ct) {
- # Take a look at the file
- if (defined $fullname) {
- $ct = (-T $fullname) ? "text/plain" : "application/octet-stream";
- }
- else {
- $ct = "application/octet-stream";
- }
- }
-
- if ($header) {
- $header->header('Content-Type' => $ct);
- $header->header('Content-Encoding' => \@encoding) if @encoding;
- }
-
- wantarray ? ($ct, @encoding) : $ct;
-}
-
-
-sub media_suffix {
- if (!wantarray && @_ == 1 && $_[0] !~ /\*/) {
- return $suffixExt{lc $_[0]};
- }
- my(@type) = @_;
- my(@suffix, $ext, $type);
- foreach (@type) {
- if (s/\*/.*/) {
- while(($ext,$type) = each(%suffixType)) {
- push(@suffix, $ext) if $type =~ /^$_$/i;
- }
- }
- else {
- my $ltype = lc $_;
- while(($ext,$type) = each(%suffixType)) {
- push(@suffix, $ext) if lc $type eq $ltype;
- }
- }
- }
- wantarray ? @suffix : $suffix[0];
-}
-
-
-sub file_exts
-{
- require File::Basename;
- my @parts = reverse split(/\./, File::Basename::basename($_[0]));
- pop(@parts); # never consider first part
- @parts;
-}
-
-
-sub add_type
-{
- my($type, @exts) = @_;
- for my $ext (@exts) {
- $ext =~ s/^\.//;
- $suffixType{$ext} = $type;
- }
- $suffixExt{lc $type} = $exts[0] if @exts;
-}
-
-
-sub add_encoding
-{
- my($type, @exts) = @_;
- for my $ext (@exts) {
- $ext =~ s/^\.//;
- $suffixEncoding{$ext} = $type;
- }
-}
-
-
-sub read_media_types
-{
- my(@files) = @_;
-
- local($/, $_) = ("\n", undef); # ensure correct $INPUT_RECORD_SEPARATOR
-
- my @priv_files = ();
- push(@priv_files, "$ENV{HOME}/.media.types", "$ENV{HOME}/.mime.types")
- if defined $ENV{HOME}; # Some doesn't have a home (for instance Win32)
-
- # Try to locate "media.types" file, and initialize %suffixType from it
- my $typefile;
- unless (@files) {
- @files = map {"$_/LWP/media.types"} @INC;
- push @files, @priv_files;
- }
- for $typefile (@files) {
- local(*TYPE);
- open(TYPE, $typefile) || next;
- while (<TYPE>) {
- next if /^\s*#/; # comment line
- next if /^\s*$/; # blank line
- s/#.*//; # remove end-of-line comments
- my($type, @exts) = split(' ', $_);
- add_type($type, @exts);
- }
- close(TYPE);
- }
-}
-
-1;
-
-
-__END__
-
-=head1 NAME
-
-LWP::MediaTypes - guess media type for a file or a URL
-
-=head1 SYNOPSIS
-
- use LWP::MediaTypes qw(guess_media_type);
- $type = guess_media_type("/tmp/foo.gif");
-
-=head1 DESCRIPTION
-
-This module provides functions for handling media (also known as
-MIME) types and encodings. The mapping from file extensions to media
-types is defined by the F<media.types> file. If the F<~/.media.types>
-file exists it is used instead.
-For backwards compatibility we will also look for F<~/.mime.types>.
-
-The following functions are exported by default:
-
-=over 4
-
-=item guess_media_type( $filename )
-
-=item guess_media_type( $uri )
-
-=item guess_media_type( $filename_or_uri, $header_to_modify )
-
-This function tries to guess media type and encoding for a file or a URI.
-It returns the content type, which is a string like C<"text/html">.
-In array context it also returns any content encodings applied (in the
-order used to encode the file). You can pass a URI object
-reference, instead of the file name.
-
-If the type can not be deduced from looking at the file name,
-then guess_media_type() will let the C<-T> Perl operator take a look.
-If this works (and C<-T> returns a TRUE value) then we return
-I<text/plain> as the type, otherwise we return
-I<application/octet-stream> as the type.
-
-The optional second argument should be a reference to a HTTP::Headers
-object or any object that implements the $obj->header method in a
-similar way. When it is present the values of the
-'Content-Type' and 'Content-Encoding' will be set for this header.
-
-=item media_suffix( $type, ... )
-
-This function will return all suffixes that can be used to denote the
-specified media type(s). Wildcard types can be used. In a scalar
-context it will return the first suffix found. Examples:
-
- @suffixes = media_suffix('image/*', 'audio/basic');
- $suffix = media_suffix('text/html');
-
-=back
-
-The following functions are only exported by explicit request:
-
-=over 4
-
-=item add_type( $type, @exts )
-
-Associate a list of file extensions with the given media type.
-Example:
-
- add_type("x-world/x-vrml" => qw(wrl vrml));
-
-=item add_encoding( $type, @ext )
-
-Associate a list of file extensions with an encoding type.
-Example:
-
- add_encoding("x-gzip" => "gz");
-
-=item read_media_types( @files )
-
-Parse media types files and add the type mappings found there.
-Example:
-
- read_media_types("conf/mime.types");
-
-=back
-
-=head1 COPYRIGHT
-
-Copyright 1995-1999 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
diff --git a/Master/tlpkg/tlperl/lib/LWP/MemberMixin.pm b/Master/tlpkg/tlperl/lib/LWP/MemberMixin.pm
deleted file mode 100644
index e5ee6f6382e..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/MemberMixin.pm
+++ /dev/null
@@ -1,44 +0,0 @@
-package LWP::MemberMixin;
-
-sub _elem
-{
- my $self = shift;
- my $elem = shift;
- my $old = $self->{$elem};
- $self->{$elem} = shift if @_;
- return $old;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-LWP::MemberMixin - Member access mixin class
-
-=head1 SYNOPSIS
-
- package Foo;
- require LWP::MemberMixin;
- @ISA=qw(LWP::MemberMixin);
-
-=head1 DESCRIPTION
-
-A mixin class to get methods that provide easy access to member
-variables in the %$self.
-Ideally there should be better Perl language support for this.
-
-There is only one method provided:
-
-=over 4
-
-=item _elem($elem [, $val])
-
-Internal method to get/set the value of member variable
-C<$elem>. If C<$val> is present it is used as the new value
-for the member variable. If it is not present the current
-value is not touched. In both cases the previous value of
-the member variable is returned.
-
-=back
diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol.pm
deleted file mode 100644
index 8f17d4db5fb..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Protocol.pm
+++ /dev/null
@@ -1,291 +0,0 @@
-package LWP::Protocol;
-
-require LWP::MemberMixin;
-@ISA = qw(LWP::MemberMixin);
-$VERSION = "6.13";
-
-use strict;
-use Carp ();
-use HTTP::Status ();
-use HTTP::Response;
-
-my %ImplementedBy = (); # scheme => classname
-
-
-
-sub new
-{
- my($class, $scheme, $ua) = @_;
-
- my $self = bless {
- scheme => $scheme,
- ua => $ua,
-
- # historical/redundant
- max_size => $ua->{max_size},
- }, $class;
-
- $self;
-}
-
-
-sub create
-{
- my($scheme, $ua) = @_;
- my $impclass = LWP::Protocol::implementor($scheme) or
- Carp::croak("Protocol scheme '$scheme' is not supported");
-
- # hand-off to scheme specific implementation sub-class
- my $protocol = $impclass->new($scheme, $ua);
-
- return $protocol;
-}
-
-
-sub implementor
-{
- my($scheme, $impclass) = @_;
-
- if ($impclass) {
- $ImplementedBy{$scheme} = $impclass;
- }
- my $ic = $ImplementedBy{$scheme};
- return $ic if $ic;
-
- return '' unless $scheme =~ /^([.+\-\w]+)$/; # check valid URL schemes
- $scheme = $1; # untaint
- $scheme =~ s/[.+\-]/_/g; # make it a legal module name
-
- # scheme not yet known, look for a 'use'd implementation
- $ic = "LWP::Protocol::$scheme"; # default location
- $ic = "LWP::Protocol::nntp" if $scheme eq 'news'; #XXX ugly hack
- no strict 'refs';
- # check we actually have one for the scheme:
- unless (@{"${ic}::ISA"}) {
- # try to autoload it
- eval "require $ic";
- if ($@) {
- if ($@ =~ /Can't locate/) { #' #emacs get confused by '
- $ic = '';
- }
- else {
- die "$@\n";
- }
- }
- }
- $ImplementedBy{$scheme} = $ic if $ic;
- $ic;
-}
-
-
-sub request
-{
- my($self, $request, $proxy, $arg, $size, $timeout) = @_;
- Carp::croak('LWP::Protocol::request() needs to be overridden in subclasses');
-}
-
-
-# legacy
-sub timeout { shift->_elem('timeout', @_); }
-sub max_size { shift->_elem('max_size', @_); }
-
-
-sub collect
-{
- my ($self, $arg, $response, $collector) = @_;
- my $content;
- my($ua, $max_size) = @{$self}{qw(ua max_size)};
-
- eval {
- local $\; # protect the print below from surprises
- if (!defined($arg) || !$response->is_success) {
- $response->{default_add_content} = 1;
- }
- elsif (!ref($arg) && length($arg)) {
- open(my $fh, ">", $arg) or die "Can't write to '$arg': $!";
- binmode($fh);
- push(@{$response->{handlers}{response_data}}, {
- callback => sub {
- print $fh $_[3] or die "Can't write to '$arg': $!";
- 1;
- },
- });
- push(@{$response->{handlers}{response_done}}, {
- callback => sub {
- close($fh) or die "Can't write to '$arg': $!";
- undef($fh);
- },
- });
- }
- elsif (ref($arg) eq 'CODE') {
- push(@{$response->{handlers}{response_data}}, {
- callback => sub {
- &$arg($_[3], $_[0], $self);
- 1;
- },
- });
- }
- else {
- die "Unexpected collect argument '$arg'";
- }
-
- $ua->run_handlers("response_header", $response);
-
- if (delete $response->{default_add_content}) {
- push(@{$response->{handlers}{response_data}}, {
- callback => sub {
- $_[0]->add_content($_[3]);
- 1;
- },
- });
- }
-
-
- my $content_size = 0;
- my $length = $response->content_length;
- my %skip_h;
-
- while ($content = &$collector, length $$content) {
- for my $h ($ua->handlers("response_data", $response)) {
- next if $skip_h{$h};
- unless ($h->{callback}->($response, $ua, $h, $$content)) {
- # XXX remove from $response->{handlers}{response_data} if present
- $skip_h{$h}++;
- }
- }
- $content_size += length($$content);
- $ua->progress(($length ? ($content_size / $length) : "tick"), $response);
- if (defined($max_size) && $content_size > $max_size) {
- $response->push_header("Client-Aborted", "max_size");
- last;
- }
- }
- };
- my $err = $@;
- delete $response->{handlers}{response_data};
- delete $response->{handlers} unless %{$response->{handlers}};
- if ($err) {
- chomp($err);
- $response->push_header('X-Died' => $err);
- $response->push_header("Client-Aborted", "die");
- return $response;
- }
-
- return $response;
-}
-
-
-sub collect_once
-{
- my($self, $arg, $response) = @_;
- my $content = \ $_[3];
- my $first = 1;
- $self->collect($arg, $response, sub {
- return $content if $first--;
- return \ "";
- });
-}
-
-1;
-
-
-__END__
-
-=head1 NAME
-
-LWP::Protocol - Base class for LWP protocols
-
-=head1 SYNOPSIS
-
- package LWP::Protocol::foo;
- require LWP::Protocol;
- @ISA=qw(LWP::Protocol);
-
-=head1 DESCRIPTION
-
-This class is used a the base class for all protocol implementations
-supported by the LWP library.
-
-When creating an instance of this class using
-C<LWP::Protocol::create($url)>, and you get an initialized subclass
-appropriate for that access method. In other words, the
-LWP::Protocol::create() function calls the constructor for one of its
-subclasses.
-
-All derived LWP::Protocol classes need to override the request()
-method which is used to service a request. The overridden method can
-make use of the collect() function to collect together chunks of data
-as it is received.
-
-The following methods and functions are provided:
-
-=over 4
-
-=item $prot = LWP::Protocol->new()
-
-The LWP::Protocol constructor is inherited by subclasses. As this is a
-virtual base class this method should B<not> be called directly.
-
-=item $prot = LWP::Protocol::create($scheme)
-
-Create an object of the class implementing the protocol to handle the
-given scheme. This is a function, not a method. It is more an object
-factory than a constructor. This is the function user agents should
-use to access protocols.
-
-=item $class = LWP::Protocol::implementor($scheme, [$class])
-
-Get and/or set implementor class for a scheme. Returns '' if the
-specified scheme is not supported.
-
-=item $prot->request(...)
-
- $response = $protocol->request($request, $proxy, undef);
- $response = $protocol->request($request, $proxy, '/tmp/sss');
- $response = $protocol->request($request, $proxy, \&callback, 1024);
-
-Dispatches a request over the protocol, and returns a response
-object. This method needs to be overridden in subclasses. Refer to
-L<LWP::UserAgent> for description of the arguments.
-
-=item $prot->collect($arg, $response, $collector)
-
-Called to collect the content of a request, and process it
-appropriately into a scalar, file, or by calling a callback. If $arg
-is undefined, then the content is stored within the $response. If
-$arg is a simple scalar, then $arg is interpreted as a file name and
-the content is written to this file. If $arg is a reference to a
-routine, then content is passed to this routine.
-
-The $collector is a routine that will be called and which is
-responsible for returning pieces (as ref to scalar) of the content to
-process. The $collector signals EOF by returning a reference to an
-empty string.
-
-The return value from collect() is the $response object reference.
-
-B<Note:> We will only use the callback or file argument if
-$response->is_success(). This avoids sending content data for
-redirects and authentication responses to the callback which would be
-confusing.
-
-=item $prot->collect_once($arg, $response, $content)
-
-Can be called when the whole response content is available as
-$content. This will invoke collect() with a collector callback that
-returns a reference to $content the first time and an empty string the
-next.
-
-=back
-
-=head1 SEE ALSO
-
-Inspect the F<LWP/Protocol/file.pm> and F<LWP/Protocol/http.pm> files
-for examples of usage.
-
-=head1 COPYRIGHT
-
-Copyright 1995-2001 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/GHTTP.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/GHTTP.pm
deleted file mode 100644
index 2a356b5fcb1..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Protocol/GHTTP.pm
+++ /dev/null
@@ -1,73 +0,0 @@
-package LWP::Protocol::GHTTP;
-
-# You can tell LWP to use this module for 'http' requests by running
-# code like this before you make requests:
-#
-# require LWP::Protocol::GHTTP;
-# LWP::Protocol::implementor('http', 'LWP::Protocol::GHTTP');
-#
-
-use strict;
-use vars qw(@ISA);
-
-require LWP::Protocol;
-@ISA=qw(LWP::Protocol);
-
-require HTTP::Response;
-require HTTP::Status;
-
-use HTTP::GHTTP qw(METHOD_GET METHOD_HEAD METHOD_POST);
-
-my %METHOD =
-(
- GET => METHOD_GET,
- HEAD => METHOD_HEAD,
- POST => METHOD_POST,
-);
-
-sub request
-{
- my($self, $request, $proxy, $arg, $size, $timeout) = @_;
-
- my $method = $request->method;
- unless (exists $METHOD{$method}) {
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- "Bad method '$method'");
- }
-
- my $r = HTTP::GHTTP->new($request->uri);
-
- # XXX what headers for repeated headers here?
- $request->headers->scan(sub { $r->set_header(@_)});
-
- $r->set_type($METHOD{$method});
-
- # XXX should also deal with subroutine content.
- my $cref = $request->content_ref;
- $r->set_body($$cref) if length($$cref);
-
- # XXX is this right
- $r->set_proxy($proxy->as_string) if $proxy;
-
- $r->process_request;
-
- my $response = HTTP::Response->new($r->get_status);
-
- # XXX How can get the headers out of $r?? This way is too stupid.
- my @headers;
- eval {
- # Wrapped in eval because this method is not always available
- @headers = $r->get_headers;
- };
- @headers = qw(Date Connection Server Content-type
- Accept-Ranges Server
- Content-Length Last-Modified ETag) if $@;
- for (@headers) {
- my $v = $r->get_header($_);
- $response->header($_ => $v) if defined $v;
- }
-
- return $self->collect_once($arg, $response, $r->get_body);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/cpan.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/cpan.pm
deleted file mode 100644
index 66d8f213b98..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Protocol/cpan.pm
+++ /dev/null
@@ -1,72 +0,0 @@
-package LWP::Protocol::cpan;
-
-use strict;
-use vars qw(@ISA);
-
-require LWP::Protocol;
-@ISA = qw(LWP::Protocol);
-
-require URI;
-require HTTP::Status;
-require HTTP::Response;
-
-our $CPAN;
-
-unless ($CPAN) {
- # Try to find local CPAN mirror via $CPAN::Config
- eval {
- require CPAN::Config;
- if($CPAN::Config) {
- my $urls = $CPAN::Config->{urllist};
- if (ref($urls) eq "ARRAY") {
- my $file;
- for (@$urls) {
- if (/^file:/) {
- $file = $_;
- last;
- }
- }
-
- if ($file) {
- $CPAN = $file;
- }
- else {
- $CPAN = $urls->[0];
- }
- }
- }
- };
-
- $CPAN ||= "http://cpan.org/"; # last resort
-}
-
-# ensure that we don't chop of last part
-$CPAN .= "/" unless $CPAN =~ m,/$,;
-
-
-sub request {
- my($self, $request, $proxy, $arg, $size) = @_;
- # check proxy
- if (defined $proxy)
- {
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- 'You can not proxy with cpan');
- }
-
- # check method
- my $method = $request->method;
- unless ($method eq 'GET' || $method eq 'HEAD') {
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- 'Library does not allow method ' .
- "$method for 'cpan:' URLs");
- }
-
- my $path = $request->uri->path;
- $path =~ s,^/,,;
-
- my $response = HTTP::Response->new(&HTTP::Status::RC_FOUND);
- $response->header("Location" => URI->new_abs($path, $CPAN));
- $response;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/data.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/data.pm
deleted file mode 100644
index c29c3b4f919..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Protocol/data.pm
+++ /dev/null
@@ -1,52 +0,0 @@
-package LWP::Protocol::data;
-
-# Implements access to data:-URLs as specified in RFC 2397
-
-use strict;
-use vars qw(@ISA);
-
-require HTTP::Response;
-require HTTP::Status;
-
-require LWP::Protocol;
-@ISA = qw(LWP::Protocol);
-
-use HTTP::Date qw(time2str);
-require LWP; # needs version number
-
-sub request
-{
- my($self, $request, $proxy, $arg, $size) = @_;
-
- # check proxy
- if (defined $proxy)
- {
- return HTTP::Response->new( &HTTP::Status::RC_BAD_REQUEST,
- 'You can not proxy with data');
- }
-
- # check method
- my $method = $request->method;
- unless ($method eq 'GET' || $method eq 'HEAD') {
- return HTTP::Response->new( &HTTP::Status::RC_BAD_REQUEST,
- 'Library does not allow method ' .
- "$method for 'data:' URLs");
- }
-
- my $url = $request->uri;
- my $response = HTTP::Response->new( &HTTP::Status::RC_OK, "Document follows");
-
- my $media_type = $url->media_type;
-
- my $data = $url->data;
- $response->header('Content-Type' => $media_type,
- 'Content-Length' => length($data),
- 'Date' => time2str(time),
- 'Server' => "libwww-perl-internal/$LWP::VERSION"
- );
-
- $data = "" if $method eq "HEAD";
- return $self->collect_once($arg, $response, $data);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/file.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/file.pm
deleted file mode 100644
index f2887f4b2f3..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Protocol/file.pm
+++ /dev/null
@@ -1,146 +0,0 @@
-package LWP::Protocol::file;
-
-require LWP::Protocol;
-@ISA = qw(LWP::Protocol);
-
-use strict;
-
-require LWP::MediaTypes;
-require HTTP::Request;
-require HTTP::Response;
-require HTTP::Status;
-require HTTP::Date;
-
-
-sub request
-{
- my($self, $request, $proxy, $arg, $size) = @_;
-
- $size = 4096 unless defined $size and $size > 0;
-
- # check proxy
- if (defined $proxy)
- {
- return HTTP::Response->new( &HTTP::Status::RC_BAD_REQUEST,
- 'You can not proxy through the filesystem');
- }
-
- # check method
- my $method = $request->method;
- unless ($method eq 'GET' || $method eq 'HEAD') {
- return HTTP::Response->new( &HTTP::Status::RC_BAD_REQUEST,
- 'Library does not allow method ' .
- "$method for 'file:' URLs");
- }
-
- # check url
- my $url = $request->uri;
-
- my $scheme = $url->scheme;
- if ($scheme ne 'file') {
- return HTTP::Response->new( &HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "LWP::Protocol::file::request called for '$scheme'");
- }
-
- # URL OK, look at file
- my $path = $url->file;
-
- # test file exists and is readable
- unless (-e $path) {
- return HTTP::Response->new( &HTTP::Status::RC_NOT_FOUND,
- "File `$path' does not exist");
- }
- unless (-r _) {
- return HTTP::Response->new( &HTTP::Status::RC_FORBIDDEN,
- 'User does not have read permission');
- }
-
- # looks like file exists
- my($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$filesize,
- $atime,$mtime,$ctime,$blksize,$blocks)
- = stat(_);
-
- # XXX should check Accept headers?
-
- # check if-modified-since
- my $ims = $request->header('If-Modified-Since');
- if (defined $ims) {
- my $time = HTTP::Date::str2time($ims);
- if (defined $time and $time >= $mtime) {
- return HTTP::Response->new( &HTTP::Status::RC_NOT_MODIFIED,
- "$method $path");
- }
- }
-
- # Ok, should be an OK response by now...
- my $response = HTTP::Response->new( &HTTP::Status::RC_OK );
-
- # fill in response headers
- $response->header('Last-Modified', HTTP::Date::time2str($mtime));
-
- if (-d _) { # If the path is a directory, process it
- # generate the HTML for directory
- opendir(D, $path) or
- return HTTP::Response->new( &HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "Cannot read directory '$path': $!");
- my(@files) = sort readdir(D);
- closedir(D);
-
- # Make directory listing
- require URI::Escape;
- require HTML::Entities;
- my $pathe = $path . ( $^O eq 'MacOS' ? ':' : '/');
- for (@files) {
- my $furl = URI::Escape::uri_escape($_);
- if ( -d "$pathe$_" ) {
- $furl .= '/';
- $_ .= '/';
- }
- my $desc = HTML::Entities::encode($_);
- $_ = qq{<LI><A HREF="$furl">$desc</A>};
- }
- # Ensure that the base URL is "/" terminated
- my $base = $url->clone;
- unless ($base->path =~ m|/$|) {
- $base->path($base->path . "/");
- }
- my $html = join("\n",
- "<HTML>\n<HEAD>",
- "<TITLE>Directory $path</TITLE>",
- "<BASE HREF=\"$base\">",
- "</HEAD>\n<BODY>",
- "<H1>Directory listing of $path</H1>",
- "<UL>", @files, "</UL>",
- "</BODY>\n</HTML>\n");
-
- $response->header('Content-Type', 'text/html');
- $response->header('Content-Length', length $html);
- $html = "" if $method eq "HEAD";
-
- return $self->collect_once($arg, $response, $html);
-
- }
-
- # path is a regular file
- $response->header('Content-Length', $filesize);
- LWP::MediaTypes::guess_media_type($path, $response);
-
- # read the file
- if ($method ne "HEAD") {
- open(F, $path) or return new
- HTTP::Response(&HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "Cannot read file '$path': $!");
- binmode(F);
- $response = $self->collect($arg, $response, sub {
- my $content = "";
- my $bytes = sysread(F, $content, $size);
- return \$content if $bytes > 0;
- return \ "";
- });
- close(F);
- }
-
- $response;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/ftp.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/ftp.pm
deleted file mode 100644
index f478c6ee732..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Protocol/ftp.pm
+++ /dev/null
@@ -1,543 +0,0 @@
-package LWP::Protocol::ftp;
-
-# Implementation of the ftp protocol (RFC 959). We let the Net::FTP
-# package do all the dirty work.
-
-use Carp ();
-
-use HTTP::Status ();
-use HTTP::Negotiate ();
-use HTTP::Response ();
-use LWP::MediaTypes ();
-use File::Listing ();
-
-require LWP::Protocol;
-@ISA = qw(LWP::Protocol);
-
-use strict;
-eval {
- package LWP::Protocol::MyFTP;
-
- require Net::FTP;
- Net::FTP->require_version(2.00);
-
- use vars qw(@ISA);
- @ISA=qw(Net::FTP);
-
- sub new {
- my $class = shift;
-
- my $self = $class->SUPER::new(@_) || return undef;
-
- my $mess = $self->message; # welcome message
- $mess =~ s|\n.*||s; # only first line left
- $mess =~ s|\s*ready\.?$||;
- # Make the version number more HTTP like
- $mess =~ s|\s*\(Version\s*|/| and $mess =~ s|\)$||;
- ${*$self}{myftp_server} = $mess;
- #$response->header("Server", $mess);
-
- $self;
- }
-
- sub http_server {
- my $self = shift;
- ${*$self}{myftp_server};
- }
-
- sub home {
- my $self = shift;
- my $old = ${*$self}{myftp_home};
- if (@_) {
- ${*$self}{myftp_home} = shift;
- }
- $old;
- }
-
- sub go_home {
- my $self = shift;
- $self->cwd(${*$self}{myftp_home});
- }
-
- sub request_count {
- my $self = shift;
- ++${*$self}{myftp_reqcount};
- }
-
- sub ping {
- my $self = shift;
- return $self->go_home;
- }
-
-};
-my $init_failed = $@;
-
-
-sub _connect {
- my($self, $host, $port, $user, $account, $password, $timeout) = @_;
-
- my $key;
- my $conn_cache = $self->{ua}{conn_cache};
- if ($conn_cache) {
- $key = "$host:$port:$user";
- $key .= ":$account" if defined($account);
- if (my $ftp = $conn_cache->withdraw("ftp", $key)) {
- if ($ftp->ping) {
- # save it again
- $conn_cache->deposit("ftp", $key, $ftp);
- return $ftp;
- }
- }
- }
-
- # try to make a connection
- my $ftp = LWP::Protocol::MyFTP->new($host,
- Port => $port,
- Timeout => $timeout,
- LocalAddr => $self->{ua}{local_address},
- );
- # XXX Should be some what to pass on 'Passive' (header??)
- unless ($ftp) {
- $@ =~ s/^Net::FTP: //;
- return HTTP::Response->new(&HTTP::Status::RC_INTERNAL_SERVER_ERROR, $@);
- }
-
- unless ($ftp->login($user, $password, $account)) {
- # Unauthorized. Let's fake a RC_UNAUTHORIZED response
- my $mess = scalar($ftp->message);
- $mess =~ s/\n$//;
- my $res = HTTP::Response->new(&HTTP::Status::RC_UNAUTHORIZED, $mess);
- $res->header("Server", $ftp->http_server);
- $res->header("WWW-Authenticate", qq(Basic Realm="FTP login"));
- return $res;
- }
-
- my $home = $ftp->pwd;
- $ftp->home($home);
-
- $conn_cache->deposit("ftp", $key, $ftp) if $conn_cache;
-
- return $ftp;
-}
-
-
-sub request
-{
- my($self, $request, $proxy, $arg, $size, $timeout) = @_;
-
- $size = 4096 unless $size;
-
- # check proxy
- if (defined $proxy)
- {
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- 'You can not proxy through the ftp');
- }
-
- my $url = $request->uri;
- if ($url->scheme ne 'ftp') {
- my $scheme = $url->scheme;
- return HTTP::Response->new(&HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "LWP::Protocol::ftp::request called for '$scheme'");
- }
-
- # check method
- my $method = $request->method;
-
- unless ($method eq 'GET' || $method eq 'HEAD' || $method eq 'PUT') {
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- 'Library does not allow method ' .
- "$method for 'ftp:' URLs");
- }
-
- if ($init_failed) {
- return HTTP::Response->new(&HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- $init_failed);
- }
-
- my $host = $url->host;
- my $port = $url->port;
- my $user = $url->user;
- my $password = $url->password;
-
- # If a basic authorization header is present than we prefer these over
- # the username/password specified in the URL.
- {
- my($u,$p) = $request->authorization_basic;
- if (defined $u) {
- $user = $u;
- $password = $p;
- }
- }
-
- # We allow the account to be specified in the "Account" header
- my $account = $request->header('Account');
-
- my $ftp = $self->_connect($host, $port, $user, $account, $password, $timeout);
- return $ftp if ref($ftp) eq "HTTP::Response"; # ugh!
-
- # Create an initial response object
- my $response = HTTP::Response->new(&HTTP::Status::RC_OK, "OK");
- $response->header(Server => $ftp->http_server);
- $response->header('Client-Request-Num' => $ftp->request_count);
- $response->request($request);
-
- # Get & fix the path
- my @path = grep { length } $url->path_segments;
- my $remote_file = pop(@path);
- $remote_file = '' unless defined $remote_file;
-
- my $type;
- if (ref $remote_file) {
- my @params;
- ($remote_file, @params) = @$remote_file;
- for (@params) {
- $type = $_ if s/^type=//;
- }
- }
-
- if ($type && $type eq 'a') {
- $ftp->ascii;
- }
- else {
- $ftp->binary;
- }
-
- for (@path) {
- unless ($ftp->cwd($_)) {
- return HTTP::Response->new(&HTTP::Status::RC_NOT_FOUND,
- "Can't chdir to $_");
- }
- }
-
- if ($method eq 'GET' || $method eq 'HEAD') {
- if (my $mod_time = $ftp->mdtm($remote_file)) {
- $response->last_modified($mod_time);
- if (my $ims = $request->if_modified_since) {
- if ($mod_time <= $ims) {
- $response->code(&HTTP::Status::RC_NOT_MODIFIED);
- $response->message("Not modified");
- return $response;
- }
- }
- }
-
- # We'll use this later to abort the transfer if necessary.
- # if $max_size is defined, we need to abort early. Otherwise, it's
- # a normal transfer
- my $max_size = undef;
-
- # Set resume location, if the client requested it
- if ($request->header('Range') && $ftp->supported('REST'))
- {
- my $range_info = $request->header('Range');
-
- # Change bytes=2772992-6781209 to just 2772992
- my ($start_byte,$end_byte) = $range_info =~ /.*=\s*(\d+)-(\d+)?/;
- if ( defined $start_byte && !defined $end_byte ) {
-
- # open range -- only the start is specified
-
- $ftp->restart( $start_byte );
- # don't define $max_size, we don't want to abort early
- }
- elsif ( defined $start_byte && defined $end_byte &&
- $start_byte >= 0 && $end_byte >= $start_byte ) {
-
- $ftp->restart( $start_byte );
- $max_size = $end_byte - $start_byte;
- }
- else {
-
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- 'Incorrect syntax for Range request');
- }
- }
- elsif ($request->header('Range') && !$ftp->supported('REST'))
- {
- return HTTP::Response->new(&HTTP::Status::RC_NOT_IMPLEMENTED,
- "Server does not support resume.");
- }
-
- my $data; # the data handle
- if (length($remote_file) and $data = $ftp->retr($remote_file)) {
- my($type, @enc) = LWP::MediaTypes::guess_media_type($remote_file);
- $response->header('Content-Type', $type) if $type;
- for (@enc) {
- $response->push_header('Content-Encoding', $_);
- }
- my $mess = $ftp->message;
- if ($mess =~ /\((\d+)\s+bytes\)/) {
- $response->header('Content-Length', "$1");
- }
-
- if ($method ne 'HEAD') {
- # Read data from server
- $response = $self->collect($arg, $response, sub {
- my $content = '';
- my $result = $data->read($content, $size);
-
- # Stop early if we need to.
- if (defined $max_size)
- {
- # We need an interface to Net::FTP::dataconn for getting
- # the number of bytes already read
- my $bytes_received = $data->bytes_read();
-
- # We were already over the limit. (Should only happen
- # once at the end.)
- if ($bytes_received - length($content) > $max_size)
- {
- $content = '';
- }
- # We just went over the limit
- elsif ($bytes_received > $max_size)
- {
- # Trim content
- $content = substr($content, 0,
- $max_size - ($bytes_received - length($content)) );
- }
- # We're under the limit
- else
- {
- }
- }
-
- return \$content;
- } );
- }
- # abort is needed for HEAD, it's == close if the transfer has
- # already completed.
- unless ($data->abort) {
- # Something did not work too well. Note that we treat
- # responses to abort() with code 0 in case of HEAD as ok
- # (at least wu-ftpd 2.6.1(1) does that).
- if ($method ne 'HEAD' || $ftp->code != 0) {
- $response->code(&HTTP::Status::RC_INTERNAL_SERVER_ERROR);
- $response->message("FTP close response: " . $ftp->code .
- " " . $ftp->message);
- }
- }
- }
- elsif (!length($remote_file) || ( $ftp->code >= 400 && $ftp->code < 600 )) {
- # not a plain file, try to list instead
- if (length($remote_file) && !$ftp->cwd($remote_file)) {
- return HTTP::Response->new(&HTTP::Status::RC_NOT_FOUND,
- "File '$remote_file' not found");
- }
-
- # It should now be safe to try to list the directory
- my @lsl = $ftp->dir;
-
- # Try to figure out if the user want us to convert the
- # directory listing to HTML.
- my @variants =
- (
- ['html', 0.60, 'text/html' ],
- ['dir', 1.00, 'text/ftp-dir-listing' ]
- );
- #$HTTP::Negotiate::DEBUG=1;
- my $prefer = HTTP::Negotiate::choose(\@variants, $request);
-
- my $content = '';
-
- if (!defined($prefer)) {
- return HTTP::Response->new(&HTTP::Status::RC_NOT_ACCEPTABLE,
- "Neither HTML nor directory listing wanted");
- }
- elsif ($prefer eq 'html') {
- $response->header('Content-Type' => 'text/html');
- $content = "<HEAD><TITLE>File Listing</TITLE>\n";
- my $base = $request->uri->clone;
- my $path = $base->path;
- $base->path("$path/") unless $path =~ m|/$|;
- $content .= qq(<BASE HREF="$base">\n</HEAD>\n);
- $content .= "<BODY>\n<UL>\n";
- for (File::Listing::parse_dir(\@lsl, 'GMT')) {
- my($name, $type, $size, $mtime, $mode) = @$_;
- $content .= qq( <LI> <a href="$name">$name</a>);
- $content .= " $size bytes" if $type eq 'f';
- $content .= "\n";
- }
- $content .= "</UL></body>\n";
- }
- else {
- $response->header('Content-Type', 'text/ftp-dir-listing');
- $content = join("\n", @lsl, '');
- }
-
- $response->header('Content-Length', length($content));
-
- if ($method ne 'HEAD') {
- $response = $self->collect_once($arg, $response, $content);
- }
- }
- else {
- my $res = HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- "FTP return code " . $ftp->code);
- $res->content_type("text/plain");
- $res->content($ftp->message);
- return $res;
- }
- }
- elsif ($method eq 'PUT') {
- # method must be PUT
- unless (length($remote_file)) {
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- "Must have a file name to PUT to");
- }
- my $data;
- if ($data = $ftp->stor($remote_file)) {
- my $content = $request->content;
- my $bytes = 0;
- if (defined $content) {
- if (ref($content) eq 'SCALAR') {
- $bytes = $data->write($$content, length($$content));
- }
- elsif (ref($content) eq 'CODE') {
- my($buf, $n);
- while (length($buf = &$content)) {
- $n = $data->write($buf, length($buf));
- last unless $n;
- $bytes += $n;
- }
- }
- elsif (!ref($content)) {
- if (defined $content && length($content)) {
- $bytes = $data->write($content, length($content));
- }
- }
- else {
- die "Bad content";
- }
- }
- $data->close;
-
- $response->code(&HTTP::Status::RC_CREATED);
- $response->header('Content-Type', 'text/plain');
- $response->content("$bytes bytes stored as $remote_file on $host\n")
-
- }
- else {
- my $res = HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- "FTP return code " . $ftp->code);
- $res->content_type("text/plain");
- $res->content($ftp->message);
- return $res;
- }
- }
- else {
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- "Illegal method $method");
- }
-
- $response;
-}
-
-1;
-
-__END__
-
-# This is what RFC 1738 has to say about FTP access:
-# --------------------------------------------------
-#
-# 3.2. FTP
-#
-# The FTP URL scheme is used to designate files and directories on
-# Internet hosts accessible using the FTP protocol (RFC959).
-#
-# A FTP URL follow the syntax described in Section 3.1. If :<port> is
-# omitted, the port defaults to 21.
-#
-# 3.2.1. FTP Name and Password
-#
-# A user name and password may be supplied; they are used in the ftp
-# "USER" and "PASS" commands after first making the connection to the
-# FTP server. If no user name or password is supplied and one is
-# requested by the FTP server, the conventions for "anonymous" FTP are
-# to be used, as follows:
-#
-# The user name "anonymous" is supplied.
-#
-# The password is supplied as the Internet e-mail address
-# of the end user accessing the resource.
-#
-# If the URL supplies a user name but no password, and the remote
-# server requests a password, the program interpreting the FTP URL
-# should request one from the user.
-#
-# 3.2.2. FTP url-path
-#
-# The url-path of a FTP URL has the following syntax:
-#
-# <cwd1>/<cwd2>/.../<cwdN>/<name>;type=<typecode>
-#
-# Where <cwd1> through <cwdN> and <name> are (possibly encoded) strings
-# and <typecode> is one of the characters "a", "i", or "d". The part
-# ";type=<typecode>" may be omitted. The <cwdx> and <name> parts may be
-# empty. The whole url-path may be omitted, including the "/"
-# delimiting it from the prefix containing user, password, host, and
-# port.
-#
-# The url-path is interpreted as a series of FTP commands as follows:
-#
-# Each of the <cwd> elements is to be supplied, sequentially, as the
-# argument to a CWD (change working directory) command.
-#
-# If the typecode is "d", perform a NLST (name list) command with
-# <name> as the argument, and interpret the results as a file
-# directory listing.
-#
-# Otherwise, perform a TYPE command with <typecode> as the argument,
-# and then access the file whose name is <name> (for example, using
-# the RETR command.)
-#
-# Within a name or CWD component, the characters "/" and ";" are
-# reserved and must be encoded. The components are decoded prior to
-# their use in the FTP protocol. In particular, if the appropriate FTP
-# sequence to access a particular file requires supplying a string
-# containing a "/" as an argument to a CWD or RETR command, it is
-# necessary to encode each "/".
-#
-# For example, the URL <URL:ftp://myname@host.dom/%2Fetc/motd> is
-# interpreted by FTP-ing to "host.dom", logging in as "myname"
-# (prompting for a password if it is asked for), and then executing
-# "CWD /etc" and then "RETR motd". This has a different meaning from
-# <URL:ftp://myname@host.dom/etc/motd> which would "CWD etc" and then
-# "RETR motd"; the initial "CWD" might be executed relative to the
-# default directory for "myname". On the other hand,
-# <URL:ftp://myname@host.dom//etc/motd>, would "CWD " with a null
-# argument, then "CWD etc", and then "RETR motd".
-#
-# FTP URLs may also be used for other operations; for example, it is
-# possible to update a file on a remote file server, or infer
-# information about it from the directory listings. The mechanism for
-# doing so is not spelled out here.
-#
-# 3.2.3. FTP Typecode is Optional
-#
-# The entire ;type=<typecode> part of a FTP URL is optional. If it is
-# omitted, the client program interpreting the URL must guess the
-# appropriate mode to use. In general, the data content type of a file
-# can only be guessed from the name, e.g., from the suffix of the name;
-# the appropriate type code to be used for transfer of the file can
-# then be deduced from the data content of the file.
-#
-# 3.2.4 Hierarchy
-#
-# For some file systems, the "/" used to denote the hierarchical
-# structure of the URL corresponds to the delimiter used to construct a
-# file name hierarchy, and thus, the filename will look similar to the
-# URL path. This does NOT mean that the URL is a Unix filename.
-#
-# 3.2.5. Optimization
-#
-# Clients accessing resources via FTP may employ additional heuristics
-# to optimize the interaction. For some FTP servers, for example, it
-# may be reasonable to keep the control connection open while accessing
-# multiple URLs from the same server. However, there is no common
-# hierarchical model to the FTP protocol, so if a directory change
-# command has been given, it is impossible in general to deduce what
-# sequence should be given to navigate to another directory for a
-# second retrieval, if the paths are different. The only reliable
-# algorithm is to disconnect and reestablish the control connection.
diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/gopher.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/gopher.pm
deleted file mode 100644
index db6c0bfba9d..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Protocol/gopher.pm
+++ /dev/null
@@ -1,213 +0,0 @@
-package LWP::Protocol::gopher;
-
-# Implementation of the gopher protocol (RFC 1436)
-#
-# This code is based on 'wwwgopher.pl,v 0.10 1994/10/17 18:12:34 shelden'
-# which in turn is a vastly modified version of Oscar's http'get()
-# dated 28/3/94 in <ftp://cui.unige.ch/PUBLIC/oscar/scripts/http.pl>
-# including contributions from Marc van Heyningen and Martijn Koster.
-
-use strict;
-use vars qw(@ISA);
-
-require HTTP::Response;
-require HTTP::Status;
-require IO::Socket;
-require IO::Select;
-
-require LWP::Protocol;
-@ISA = qw(LWP::Protocol);
-
-
-my %gopher2mimetype = (
- '0' => 'text/plain', # 0 file
- '1' => 'text/html', # 1 menu
- # 2 CSO phone-book server
- # 3 Error
- '4' => 'application/mac-binhex40', # 4 BinHexed Macintosh file
- '5' => 'application/zip', # 5 DOS binary archive of some sort
- '6' => 'application/octet-stream', # 6 UNIX uuencoded file.
- '7' => 'text/html', # 7 Index-Search server
- # 8 telnet session
- '9' => 'application/octet-stream', # 9 binary file
- 'h' => 'text/html', # html
- 'g' => 'image/gif', # gif
- 'I' => 'image/*', # some kind of image
-);
-
-my %gopher2encoding = (
- '6' => 'x_uuencode', # 6 UNIX uuencoded file.
-);
-
-sub request
-{
- my($self, $request, $proxy, $arg, $size, $timeout) = @_;
-
- $size = 4096 unless $size;
-
- # check proxy
- if (defined $proxy) {
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- 'You can not proxy through the gopher');
- }
-
- my $url = $request->uri;
- die "bad scheme" if $url->scheme ne 'gopher';
-
-
- my $method = $request->method;
- unless ($method eq 'GET' || $method eq 'HEAD') {
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- 'Library does not allow method ' .
- "$method for 'gopher:' URLs");
- }
-
- my $gophertype = $url->gopher_type;
- unless (exists $gopher2mimetype{$gophertype}) {
- return HTTP::Response->new(&HTTP::Status::RC_NOT_IMPLEMENTED,
- 'Library does not support gophertype ' .
- $gophertype);
- }
-
- my $response = HTTP::Response->new(&HTTP::Status::RC_OK, "OK");
- $response->header('Content-type' => $gopher2mimetype{$gophertype}
- || 'text/plain');
- $response->header('Content-Encoding' => $gopher2encoding{$gophertype})
- if exists $gopher2encoding{$gophertype};
-
- if ($method eq 'HEAD') {
- # XXX: don't even try it so we set this header
- $response->header('Client-Warning' => 'Client answer only');
- return $response;
- }
-
- if ($gophertype eq '7' && ! $url->search) {
- # the url is the prompt for a gopher search; supply boiler-plate
- return $self->collect_once($arg, $response, <<"EOT");
-<HEAD>
-<TITLE>Gopher Index</TITLE>
-<ISINDEX>
-</HEAD>
-<BODY>
-<H1>$url<BR>Gopher Search</H1>
-This is a searchable Gopher index.
-Use the search function of your browser to enter search terms.
-</BODY>
-EOT
- }
-
- my $host = $url->host;
- my $port = $url->port;
-
- my $requestLine = "";
-
- my $selector = $url->selector;
- if (defined $selector) {
- $requestLine .= $selector;
- my $search = $url->search;
- if (defined $search) {
- $requestLine .= "\t$search";
- my $string = $url->string;
- if (defined $string) {
- $requestLine .= "\t$string";
- }
- }
- }
- $requestLine .= "\015\012";
-
- # potential request headers are just ignored
-
- # Ok, lets make the request
- my $socket = IO::Socket::INET->new(PeerAddr => $host,
- PeerPort => $port,
- LocalAddr => $self->{ua}{local_address},
- Proto => 'tcp',
- Timeout => $timeout);
- die "Can't connect to $host:$port" unless $socket;
- my $sel = IO::Select->new($socket);
-
- {
- die "write timeout" if $timeout && !$sel->can_write($timeout);
- my $n = syswrite($socket, $requestLine, length($requestLine));
- die $! unless defined($n);
- die "short write" if $n != length($requestLine);
- }
-
- my $user_arg = $arg;
-
- # must handle menus in a special way since they are to be
- # converted to HTML. Undefing $arg ensures that the user does
- # not see the data before we get a change to convert it.
- $arg = undef if $gophertype eq '1' || $gophertype eq '7';
-
- # collect response
- my $buf = '';
- $response = $self->collect($arg, $response, sub {
- die "read timeout" if $timeout && !$sel->can_read($timeout);
- my $n = sysread($socket, $buf, $size);
- die $! unless defined($n);
- return \$buf;
- } );
-
- # Convert menu to HTML and return data to user.
- if ($gophertype eq '1' || $gophertype eq '7') {
- my $content = menu2html($response->content);
- if (defined $user_arg) {
- $response = $self->collect_once($user_arg, $response, $content);
- }
- else {
- $response->content($content);
- }
- }
-
- $response;
-}
-
-
-sub gopher2url
-{
- my($gophertype, $path, $host, $port) = @_;
-
- my $url;
-
- if ($gophertype eq '8' || $gophertype eq 'T') {
- # telnet session
- $url = $HTTP::URI_CLASS->new($gophertype eq '8' ? 'telnet:':'tn3270:');
- $url->user($path) if defined $path;
- }
- else {
- $path = URI::Escape::uri_escape($path);
- $url = $HTTP::URI_CLASS->new("gopher:/$gophertype$path");
- }
- $url->host($host);
- $url->port($port);
- $url;
-}
-
-sub menu2html {
- my($menu) = @_;
-
- $menu =~ s/\015//g; # remove carriage return
- my $tmp = <<"EOT";
-<HTML>
-<HEAD>
- <TITLE>Gopher menu</TITLE>
-</HEAD>
-<BODY>
-<H1>Gopher menu</H1>
-EOT
- for (split("\n", $menu)) {
- last if /^\./;
- my($pretty, $path, $host, $port) = split("\t");
-
- $pretty =~ s/^(.)//;
- my $type = $1;
-
- my $url = gopher2url($type, $path, $host, $port)->as_string;
- $tmp .= qq{<A HREF="$url">$pretty</A><BR>\n};
- }
- $tmp .= "</BODY>\n</HTML>\n";
- $tmp;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/http.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/http.pm
deleted file mode 100644
index 23c361f7055..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Protocol/http.pm
+++ /dev/null
@@ -1,515 +0,0 @@
-package LWP::Protocol::http;
-
-use strict;
-
-require HTTP::Response;
-require HTTP::Status;
-require Net::HTTP;
-
-use vars qw(@ISA @EXTRA_SOCK_OPTS);
-
-require LWP::Protocol;
-@ISA = qw(LWP::Protocol);
-
-my $CRLF = "\015\012";
-
-sub _new_socket
-{
- my($self, $host, $port, $timeout) = @_;
-
- # IPv6 literal IP address should be [bracketed] to remove
- # ambiguity between ip address and port number.
- if ( ($host =~ /:/) && ($host !~ /^\[/) ) {
- $host = "[$host]";
- }
-
- local($^W) = 0; # IO::Socket::INET can be noisy
- my $sock = $self->socket_class->new(PeerAddr => $host,
- PeerPort => $port,
- LocalAddr => $self->{ua}{local_address},
- Proto => 'tcp',
- Timeout => $timeout,
- KeepAlive => !!$self->{ua}{conn_cache},
- SendTE => 1,
- $self->_extra_sock_opts($host, $port),
- );
-
- unless ($sock) {
- # IO::Socket::INET leaves additional error messages in $@
- my $status = "Can't connect to $host:$port";
- if ($@ =~ /\bconnect: (.*)/ ||
- $@ =~ /\b(Bad hostname)\b/ ||
- $@ =~ /\b(certificate verify failed)\b/ ||
- $@ =~ /\b(Crypt-SSLeay can't verify hostnames)\b/
- ) {
- $status .= " ($1)";
- }
- die "$status\n\n$@";
- }
-
- # perl 5.005's IO::Socket does not have the blocking method.
- eval { $sock->blocking(0); };
-
- $sock;
-}
-
-sub socket_type
-{
- return "http";
-}
-
-sub socket_class
-{
- my $self = shift;
- (ref($self) || $self) . "::Socket";
-}
-
-sub _extra_sock_opts # to be overridden by subclass
-{
- return @EXTRA_SOCK_OPTS;
-}
-
-sub _check_sock
-{
- #my($self, $req, $sock) = @_;
-}
-
-sub _get_sock_info
-{
- my($self, $res, $sock) = @_;
- if (defined(my $peerhost = $sock->peerhost)) {
- $res->header("Client-Peer" => "$peerhost:" . $sock->peerport);
- }
-}
-
-sub _fixup_header
-{
- my($self, $h, $url, $proxy) = @_;
-
- # Extract 'Host' header
- my $hhost = $url->authority;
- if ($hhost =~ s/^([^\@]*)\@//) { # get rid of potential "user:pass@"
- # add authorization header if we need them. HTTP URLs do
- # not really support specification of user and password, but
- # we allow it.
- if (defined($1) && not $h->header('Authorization')) {
- require URI::Escape;
- $h->authorization_basic(map URI::Escape::uri_unescape($_),
- split(":", $1, 2));
- }
- }
- $h->init_header('Host' => $hhost);
-
- if ($proxy && $url->scheme ne 'https') {
- # Check the proxy URI's userinfo() for proxy credentials
- # export http_proxy="http://proxyuser:proxypass@proxyhost:port".
- # For https only the initial CONNECT requests needs authorization.
- my $p_auth = $proxy->userinfo();
- if(defined $p_auth) {
- require URI::Escape;
- $h->proxy_authorization_basic(map URI::Escape::uri_unescape($_),
- split(":", $p_auth, 2))
- }
- }
-}
-
-sub hlist_remove {
- my($hlist, $k) = @_;
- $k = lc $k;
- for (my $i = @$hlist - 2; $i >= 0; $i -= 2) {
- next unless lc($hlist->[$i]) eq $k;
- splice(@$hlist, $i, 2);
- }
-}
-
-sub request
-{
- my($self, $request, $proxy, $arg, $size, $timeout) = @_;
-
- $size ||= 4096;
-
- # check method
- my $method = $request->method;
- unless ($method =~ /^[A-Za-z0-9_!\#\$%&\'*+\-.^\`|~]+$/) { # HTTP token
- return HTTP::Response->new( &HTTP::Status::RC_BAD_REQUEST,
- 'Library does not allow method ' .
- "$method for 'http:' URLs");
- }
-
- my $url = $request->uri;
-
- # Proxying SSL with a http proxy needs issues a CONNECT request to build a
- # tunnel and then upgrades the tunnel to SSL. But when doing keep-alive the
- # https request does not need to be the first request in the connection, so
- # we need to distinguish between
- # - not yet connected (create socket and ssl upgrade)
- # - connected but not inside ssl tunnel (ssl upgrade)
- # - inside ssl tunnel to the target - once we are in the tunnel to the
- # target we cannot only reuse the tunnel for more https requests with the
- # same target
-
- my $ssl_tunnel = $proxy && $url->scheme eq 'https'
- && $url->host.":".$url->port;
-
- my ($host,$port) = $proxy
- ? ($proxy->host,$proxy->port)
- : ($url->host,$url->port);
- my $fullpath =
- $method eq 'CONNECT' ? $url->host . ":" . $url->port :
- $proxy && ! $ssl_tunnel ? $url->as_string :
- do {
- my $path = $url->path_query;
- $path = "/$path" if $path !~m{^/};
- $path
- };
-
- my $socket;
- my $conn_cache = $self->{ua}{conn_cache};
- my $cache_key;
- if ( $conn_cache ) {
- $cache_key = "$host:$port";
- # For https we reuse the socket immediatly only if it has an established
- # tunnel to the target. Otherwise a CONNECT request followed by an SSL
- # upgrade need to be done first. The request itself might reuse an
- # existing non-ssl connection to the proxy
- $cache_key .= "!".$ssl_tunnel if $ssl_tunnel;
- if ( $socket = $conn_cache->withdraw($self->socket_type,$cache_key)) {
- if ($socket->can_read(0)) {
- # if the socket is readable, then either the peer has closed the
- # connection or there are some garbage bytes on it. In either
- # case we abandon it.
- $socket->close;
- $socket = undef;
- } # else use $socket
- }
- }
-
- if ( ! $socket && $ssl_tunnel ) {
- my $proto_https = LWP::Protocol::create('https',$self->{ua})
- or die "no support for scheme https found";
-
- # only if ssl socket class is IO::Socket::SSL we can upgrade
- # a plain socket to SSL. In case of Net::SSL we fall back to
- # the old version
- if ( my $upgrade_sub = $proto_https->can('_upgrade_sock')) {
- my $response = $self->request(
- HTTP::Request->new('CONNECT',"http://$ssl_tunnel"),
- $proxy,
- undef,$size,$timeout
- );
- $response->is_success or die
- "establishing SSL tunnel failed: ".$response->status_line;
- $socket = $upgrade_sub->($proto_https,
- $response->{client_socket},$url)
- or die "SSL upgrade failed: $@";
- } else {
- $socket = $proto_https->_new_socket($url->host,$url->port,$timeout);
- }
- }
-
- if ( ! $socket ) {
- # connect to remote site w/o reusing established socket
- $socket = $self->_new_socket($host, $port, $timeout );
- }
-
- my $http_version = "";
- if (my $proto = $request->protocol) {
- if ($proto =~ /^(?:HTTP\/)?(1.\d+)$/) {
- $http_version = $1;
- $socket->http_version($http_version);
- $socket->send_te(0) if $http_version eq "1.0";
- }
- }
-
- $self->_check_sock($request, $socket);
-
- my @h;
- my $request_headers = $request->headers->clone;
- $self->_fixup_header($request_headers, $url, $proxy);
-
- $request_headers->scan(sub {
- my($k, $v) = @_;
- $k =~ s/^://;
- $v =~ s/\n/ /g;
- push(@h, $k, $v);
- });
-
- my $content_ref = $request->content_ref;
- $content_ref = $$content_ref if ref($$content_ref);
- my $chunked;
- my $has_content;
-
- if (ref($content_ref) eq 'CODE') {
- my $clen = $request_headers->header('Content-Length');
- $has_content++ if $clen;
- unless (defined $clen) {
- push(@h, "Transfer-Encoding" => "chunked");
- $has_content++;
- $chunked++;
- }
- }
- else {
- # Set (or override) Content-Length header
- my $clen = $request_headers->header('Content-Length');
- if (defined($$content_ref) && length($$content_ref)) {
- $has_content = length($$content_ref);
- if (!defined($clen) || $clen ne $has_content) {
- if (defined $clen) {
- warn "Content-Length header value was wrong, fixed";
- hlist_remove(\@h, 'Content-Length');
- }
- push(@h, 'Content-Length' => $has_content);
- }
- }
- elsif ($clen) {
- warn "Content-Length set when there is no content, fixed";
- hlist_remove(\@h, 'Content-Length');
- }
- }
-
- my $write_wait = 0;
- $write_wait = 2
- if ($request_headers->header("Expect") || "") =~ /100-continue/;
-
- my $req_buf = $socket->format_request($method, $fullpath, @h);
- #print "------\n$req_buf\n------\n";
-
- if (!$has_content || $write_wait || $has_content > 8*1024) {
- WRITE:
- {
- # Since this just writes out the header block it should almost
- # always succeed to send the whole buffer in a single write call.
- my $n = $socket->syswrite($req_buf, length($req_buf));
- unless (defined $n) {
- redo WRITE if $!{EINTR};
- if ($!{EWOULDBLOCK} || $!{EAGAIN}) {
- select(undef, undef, undef, 0.1);
- redo WRITE;
- }
- die "write failed: $!";
- }
- if ($n) {
- substr($req_buf, 0, $n, "");
- }
- else {
- select(undef, undef, undef, 0.5);
- }
- redo WRITE if length $req_buf;
- }
- }
-
- my($code, $mess, @junk);
- my $drop_connection;
-
- if ($has_content) {
- my $eof;
- my $wbuf;
- my $woffset = 0;
- INITIAL_READ:
- if ($write_wait) {
- # skip filling $wbuf when waiting for 100-continue
- # because if the response is a redirect or auth required
- # the request will be cloned and there is no way
- # to reset the input stream
- # return here via the label after the 100-continue is read
- }
- elsif (ref($content_ref) eq 'CODE') {
- my $buf = &$content_ref();
- $buf = "" unless defined($buf);
- $buf = sprintf "%x%s%s%s", length($buf), $CRLF, $buf, $CRLF
- if $chunked;
- substr($buf, 0, 0) = $req_buf if $req_buf;
- $wbuf = \$buf;
- }
- else {
- if ($req_buf) {
- my $buf = $req_buf . $$content_ref;
- $wbuf = \$buf;
- }
- else {
- $wbuf = $content_ref;
- }
- $eof = 1;
- }
-
- my $fbits = '';
- vec($fbits, fileno($socket), 1) = 1;
-
- WRITE:
- while ($write_wait || $woffset < length($$wbuf)) {
-
- my $sel_timeout = $timeout;
- if ($write_wait) {
- $sel_timeout = $write_wait if $write_wait < $sel_timeout;
- }
- my $time_before;
- $time_before = time if $sel_timeout;
-
- my $rbits = $fbits;
- my $wbits = $write_wait ? undef : $fbits;
- my $sel_timeout_before = $sel_timeout;
- SELECT:
- {
- my $nfound = select($rbits, $wbits, undef, $sel_timeout);
- if ($nfound < 0) {
- if ($!{EINTR} || $!{EWOULDBLOCK} || $!{EAGAIN}) {
- if ($time_before) {
- $sel_timeout = $sel_timeout_before - (time - $time_before);
- $sel_timeout = 0 if $sel_timeout < 0;
- }
- redo SELECT;
- }
- die "select failed: $!";
- }
- }
-
- if ($write_wait) {
- $write_wait -= time - $time_before;
- $write_wait = 0 if $write_wait < 0;
- }
-
- if (defined($rbits) && $rbits =~ /[^\0]/) {
- # readable
- my $buf = $socket->_rbuf;
- my $n = $socket->sysread($buf, 1024, length($buf));
- unless (defined $n) {
- die "read failed: $!" unless $!{EINTR} || $!{EWOULDBLOCK} || $!{EAGAIN};
- # if we get here the rest of the block will do nothing
- # and we will retry the read on the next round
- }
- elsif ($n == 0) {
- # the server closed the connection before we finished
- # writing all the request content. No need to write any more.
- $drop_connection++;
- last WRITE;
- }
- $socket->_rbuf($buf);
- if (!$code && $buf =~ /\015?\012\015?\012/) {
- # a whole response header is present, so we can read it without blocking
- ($code, $mess, @h) = $socket->read_response_headers(laxed => 1,
- junk_out => \@junk,
- );
- if ($code eq "100") {
- $write_wait = 0;
- undef($code);
- goto INITIAL_READ;
- }
- else {
- $drop_connection++;
- last WRITE;
- # XXX should perhaps try to abort write in a nice way too
- }
- }
- }
- if (defined($wbits) && $wbits =~ /[^\0]/) {
- my $n = $socket->syswrite($$wbuf, length($$wbuf), $woffset);
- unless (defined $n) {
- die "write failed: $!" unless $!{EINTR} || $!{EWOULDBLOCK} || $!{EAGAIN};
- $n = 0; # will retry write on the next round
- }
- elsif ($n == 0) {
- die "write failed: no bytes written";
- }
- $woffset += $n;
-
- if (!$eof && $woffset >= length($$wbuf)) {
- # need to refill buffer from $content_ref code
- my $buf = &$content_ref();
- $buf = "" unless defined($buf);
- $eof++ unless length($buf);
- $buf = sprintf "%x%s%s%s", length($buf), $CRLF, $buf, $CRLF
- if $chunked;
- $wbuf = \$buf;
- $woffset = 0;
- }
- }
- } # WRITE
- }
-
- ($code, $mess, @h) = $socket->read_response_headers(laxed => 1, junk_out => \@junk)
- unless $code;
- ($code, $mess, @h) = $socket->read_response_headers(laxed => 1, junk_out => \@junk)
- if $code eq "100";
-
- my $response = HTTP::Response->new($code, $mess);
- my $peer_http_version = $socket->peer_http_version;
- $response->protocol("HTTP/$peer_http_version");
- {
- local $HTTP::Headers::TRANSLATE_UNDERSCORE;
- $response->push_header(@h);
- }
- $response->push_header("Client-Junk" => \@junk) if @junk;
-
- $response->request($request);
- $self->_get_sock_info($response, $socket);
-
- if ($method eq "CONNECT") {
- $response->{client_socket} = $socket; # so it can be picked up
- return $response;
- }
-
- if (my @te = $response->remove_header('Transfer-Encoding')) {
- $response->push_header('Client-Transfer-Encoding', \@te);
- }
- $response->push_header('Client-Response-Num', scalar $socket->increment_response_count);
-
- my $complete;
- $response = $self->collect($arg, $response, sub {
- my $buf = ""; #prevent use of uninitialized value in SSLeay.xs
- my $n;
- READ:
- {
- $n = $socket->read_entity_body($buf, $size);
- unless (defined $n) {
- redo READ if $!{EINTR} || $!{EWOULDBLOCK} || $!{EAGAIN} || $!{ENOTTY};
- die "read failed: $!";
- }
- redo READ if $n == -1;
- }
- $complete++ if !$n;
- return \$buf;
- } );
- $drop_connection++ unless $complete;
-
- @h = $socket->get_trailers;
- if (@h) {
- local $HTTP::Headers::TRANSLATE_UNDERSCORE;
- $response->push_header(@h);
- }
-
- # keep-alive support
- unless ($drop_connection) {
- if ($cache_key) {
- my %connection = map { (lc($_) => 1) }
- split(/\s*,\s*/, ($response->header("Connection") || ""));
- if (($peer_http_version eq "1.1" && !$connection{close}) ||
- $connection{"keep-alive"})
- {
- $conn_cache->deposit($self->socket_type, $cache_key, $socket);
- }
- }
- }
-
- $response;
-}
-
-
-#-----------------------------------------------------------
-package LWP::Protocol::http::SocketMethods;
-
-sub ping {
- my $self = shift;
- !$self->can_read(0);
-}
-
-sub increment_response_count {
- my $self = shift;
- return ++${*$self}{'myhttp_response_count'};
-}
-
-#-----------------------------------------------------------
-package LWP::Protocol::http::Socket;
-use vars qw(@ISA);
-@ISA = qw(LWP::Protocol::http::SocketMethods Net::HTTP);
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/loopback.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/loopback.pm
deleted file mode 100644
index 2cd67ae3608..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Protocol/loopback.pm
+++ /dev/null
@@ -1,26 +0,0 @@
-package LWP::Protocol::loopback;
-
-use strict;
-use vars qw(@ISA);
-require HTTP::Response;
-
-require LWP::Protocol;
-@ISA = qw(LWP::Protocol);
-
-sub request {
- my($self, $request, $proxy, $arg, $size, $timeout) = @_;
-
- my $response = HTTP::Response->new(200, "OK");
- $response->content_type("message/http; msgtype=request");
-
- $response->header("Via", "loopback/1.0 $proxy")
- if $proxy;
-
- $response->header("X-Arg", $arg);
- $response->header("X-Read-Size", $size);
- $response->header("X-Timeout", $timeout);
-
- return $self->collect_once($arg, $response, $request->as_string);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/mailto.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/mailto.pm
deleted file mode 100644
index 46db7162e44..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Protocol/mailto.pm
+++ /dev/null
@@ -1,183 +0,0 @@
-package LWP::Protocol::mailto;
-
-# This module implements the mailto protocol. It is just a simple
-# frontend to the Unix sendmail program except on MacOS, where it uses
-# Mail::Internet.
-
-require LWP::Protocol;
-require HTTP::Request;
-require HTTP::Response;
-require HTTP::Status;
-
-use Carp;
-use strict;
-use vars qw(@ISA $SENDMAIL);
-
-@ISA = qw(LWP::Protocol);
-
-unless ($SENDMAIL = $ENV{SENDMAIL}) {
- for my $sm (qw(/usr/sbin/sendmail
- /usr/lib/sendmail
- /usr/ucblib/sendmail
- ))
- {
- if (-x $sm) {
- $SENDMAIL = $sm;
- last;
- }
- }
- die "Can't find the 'sendmail' program" unless $SENDMAIL;
-}
-
-sub request
-{
- my($self, $request, $proxy, $arg, $size) = @_;
-
- my ($mail, $addr) if $^O eq "MacOS";
- my @text = () if $^O eq "MacOS";
-
- # check proxy
- if (defined $proxy)
- {
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- 'You can not proxy with mail');
- }
-
- # check method
- my $method = $request->method;
-
- if ($method ne 'POST') {
- return HTTP::Response->new( &HTTP::Status::RC_BAD_REQUEST,
- 'Library does not allow method ' .
- "$method for 'mailto:' URLs");
- }
-
- # check url
- my $url = $request->uri;
-
- my $scheme = $url->scheme;
- if ($scheme ne 'mailto') {
- return HTTP::Response->new( &HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "LWP::Protocol::mailto::request called for '$scheme'");
- }
- if ($^O eq "MacOS") {
- eval {
- require Mail::Internet;
- };
- if($@) {
- return HTTP::Response->new( &HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "You don't have MailTools installed");
- }
- unless ($ENV{SMTPHOSTS}) {
- return HTTP::Response->new( &HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "You don't have SMTPHOSTS defined");
- }
- }
- else {
- unless (-x $SENDMAIL) {
- return HTTP::Response->new( &HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "You don't have $SENDMAIL");
- }
- }
- if ($^O eq "MacOS") {
- $mail = Mail::Internet->new or
- return HTTP::Response->new( &HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "Can't get a Mail::Internet object");
- }
- else {
- open(SENDMAIL, "| $SENDMAIL -oi -t") or
- return HTTP::Response->new( &HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "Can't run $SENDMAIL: $!");
- }
- if ($^O eq "MacOS") {
- $addr = $url->encoded822addr;
- }
- else {
- $request = $request->clone; # we modify a copy
- my @h = $url->headers; # URL headers override those in the request
- while (@h) {
- my $k = shift @h;
- my $v = shift @h;
- next unless defined $v;
- if (lc($k) eq "body") {
- $request->content($v);
- }
- else {
- $request->push_header($k => $v);
- }
- }
- }
- if ($^O eq "MacOS") {
- $mail->add(To => $addr);
- $mail->add(split(/[:\n]/,$request->headers_as_string));
- }
- else {
- print SENDMAIL $request->headers_as_string;
- print SENDMAIL "\n";
- }
- my $content = $request->content;
- if (defined $content) {
- my $contRef = ref($content) ? $content : \$content;
- if (ref($contRef) eq 'SCALAR') {
- if ($^O eq "MacOS") {
- @text = split("\n",$$contRef);
- foreach (@text) {
- $_ .= "\n";
- }
- }
- else {
- print SENDMAIL $$contRef;
- }
-
- }
- elsif (ref($contRef) eq 'CODE') {
- # Callback provides data
- my $d;
- if ($^O eq "MacOS") {
- my $stuff = "";
- while (length($d = &$contRef)) {
- $stuff .= $d;
- }
- @text = split("\n",$stuff);
- foreach (@text) {
- $_ .= "\n";
- }
- }
- else {
- print SENDMAIL $d;
- }
- }
- }
- if ($^O eq "MacOS") {
- $mail->body(\@text);
- unless ($mail->smtpsend) {
- return HTTP::Response->new(&HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "Mail::Internet->smtpsend unable to send message to <$addr>");
- }
- }
- else {
- unless (close(SENDMAIL)) {
- my $err = $! ? "$!" : "Exit status $?";
- return HTTP::Response->new(&HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "$SENDMAIL: $err");
- }
- }
-
-
- my $response = HTTP::Response->new(&HTTP::Status::RC_ACCEPTED,
- "Mail accepted");
- $response->header('Content-Type', 'text/plain');
- if ($^O eq "MacOS") {
- $response->header('Server' => "Mail::Internet $Mail::Internet::VERSION");
- $response->content("Message sent to <$addr>\n");
- }
- else {
- $response->header('Server' => $SENDMAIL);
- my $to = $request->header("To");
- $response->content("Message sent to <$to>\n");
- }
-
- return $response;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/nntp.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/nntp.pm
deleted file mode 100644
index 788477d488a..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Protocol/nntp.pm
+++ /dev/null
@@ -1,145 +0,0 @@
-package LWP::Protocol::nntp;
-
-# Implementation of the Network News Transfer Protocol (RFC 977)
-
-require LWP::Protocol;
-@ISA = qw(LWP::Protocol);
-
-require HTTP::Response;
-require HTTP::Status;
-require Net::NNTP;
-
-use strict;
-
-
-sub request
-{
- my($self, $request, $proxy, $arg, $size, $timeout) = @_;
-
- $size = 4096 unless $size;
-
- # Check for proxy
- if (defined $proxy) {
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- 'You can not proxy through NNTP');
- }
-
- # Check that the scheme is as expected
- my $url = $request->uri;
- my $scheme = $url->scheme;
- unless ($scheme eq 'news' || $scheme eq 'nntp') {
- return HTTP::Response->new(&HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "LWP::Protocol::nntp::request called for '$scheme'");
- }
-
- # check for a valid method
- my $method = $request->method;
- unless ($method eq 'GET' || $method eq 'HEAD' || $method eq 'POST') {
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- 'Library does not allow method ' .
- "$method for '$scheme:' URLs");
- }
-
- # extract the identifier and check against posting to an article
- my $groupart = $url->_group;
- my $is_art = $groupart =~ /@/;
-
- if ($is_art && $method eq 'POST') {
- return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,
- "Can't post to an article <$groupart>");
- }
-
- my $nntp = Net::NNTP->new($url->host,
- #Port => 18574,
- Timeout => $timeout,
- #Debug => 1,
- );
- die "Can't connect to nntp server" unless $nntp;
-
- # Check the initial welcome message from the NNTP server
- if ($nntp->status != 2) {
- return HTTP::Response->new(&HTTP::Status::RC_SERVICE_UNAVAILABLE,
- $nntp->message);
- }
- my $response = HTTP::Response->new(&HTTP::Status::RC_OK, "OK");
-
- my $mess = $nntp->message;
-
- # Try to extract server name from greeting message.
- # Don't know if this works well for a large class of servers, but
- # this works for our server.
- $mess =~ s/\s+ready\b.*//;
- $mess =~ s/^\S+\s+//;
- $response->header(Server => $mess);
-
- # First we handle posting of articles
- if ($method eq 'POST') {
- $nntp->quit; $nntp = undef;
- $response->code(&HTTP::Status::RC_NOT_IMPLEMENTED);
- $response->message("POST not implemented yet");
- return $response;
- }
-
- # The method must be "GET" or "HEAD" by now
- if (!$is_art) {
- if (!$nntp->group($groupart)) {
- $response->code(&HTTP::Status::RC_NOT_FOUND);
- $response->message($nntp->message);
- }
- $nntp->quit; $nntp = undef;
- # HEAD: just check if the group exists
- if ($method eq 'GET' && $response->is_success) {
- $response->code(&HTTP::Status::RC_NOT_IMPLEMENTED);
- $response->message("GET newsgroup not implemented yet");
- }
- return $response;
- }
-
- # Send command to server to retrieve an article (or just the headers)
- my $get = $method eq 'HEAD' ? "head" : "article";
- my $art = $nntp->$get("<$groupart>");
- unless ($art) {
- $nntp->quit; $nntp = undef;
- $response->code(&HTTP::Status::RC_NOT_FOUND);
- $response->message($nntp->message);
- return $response;
- }
-
- # Parse headers
- my($key, $val);
- local $_;
- while ($_ = shift @$art) {
- if (/^\s+$/) {
- last; # end of headers
- }
- elsif (/^(\S+):\s*(.*)/) {
- $response->push_header($key, $val) if $key;
- ($key, $val) = ($1, $2);
- }
- elsif (/^\s+(.*)/) {
- next unless $key;
- $val .= $1;
- }
- else {
- unshift(@$art, $_);
- last;
- }
- }
- $response->push_header($key, $val) if $key;
-
- # Ensure that there is a Content-Type header
- $response->header("Content-Type", "text/plain")
- unless $response->header("Content-Type");
-
- # Collect the body
- $response = $self->collect_once($arg, $response, join("", @$art))
- if @$art;
-
- # Say goodbye to the server
- $nntp->quit;
- $nntp = undef;
-
- $response;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/nogo.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/nogo.pm
deleted file mode 100644
index 68150a722d5..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Protocol/nogo.pm
+++ /dev/null
@@ -1,24 +0,0 @@
-package LWP::Protocol::nogo;
-# If you want to disable access to a particular scheme, use this
-# class and then call
-# LWP::Protocol::implementor(that_scheme, 'LWP::Protocol::nogo');
-# For then on, attempts to access URLs with that scheme will generate
-# a 500 error.
-
-use strict;
-use vars qw(@ISA);
-require HTTP::Response;
-require HTTP::Status;
-require LWP::Protocol;
-@ISA = qw(LWP::Protocol);
-
-sub request {
- my($self, $request) = @_;
- my $scheme = $request->uri->scheme;
-
- return HTTP::Response->new(
- &HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "Access to \'$scheme\' URIs has been disabled"
- );
-}
-1;
diff --git a/Master/tlpkg/tlperl/lib/LWP/RobotUA.pm b/Master/tlpkg/tlperl/lib/LWP/RobotUA.pm
deleted file mode 100644
index 7b6ab7e1ee7..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/RobotUA.pm
+++ /dev/null
@@ -1,303 +0,0 @@
-package LWP::RobotUA;
-
-require LWP::UserAgent;
-@ISA = qw(LWP::UserAgent);
-$VERSION = "6.13";
-
-require WWW::RobotRules;
-require HTTP::Request;
-require HTTP::Response;
-
-use Carp ();
-use HTTP::Status ();
-use HTTP::Date qw(time2str);
-use strict;
-
-
-#
-# Additional attributes in addition to those found in LWP::UserAgent:
-#
-# $self->{'delay'} Required delay between request to the same
-# server in minutes.
-#
-# $self->{'rules'} A WWW::RobotRules object
-#
-
-sub new
-{
- my $class = shift;
- my %cnf;
- if (@_ < 4) {
- # legacy args
- @cnf{qw(agent from rules)} = @_;
- }
- else {
- %cnf = @_;
- }
-
- Carp::croak('LWP::RobotUA agent required') unless $cnf{agent};
- Carp::croak('LWP::RobotUA from address required')
- unless $cnf{from} && $cnf{from} =~ m/\@/;
-
- my $delay = delete $cnf{delay} || 1;
- my $use_sleep = delete $cnf{use_sleep};
- $use_sleep = 1 unless defined($use_sleep);
- my $rules = delete $cnf{rules};
-
- my $self = LWP::UserAgent->new(%cnf);
- $self = bless $self, $class;
-
- $self->{'delay'} = $delay; # minutes
- $self->{'use_sleep'} = $use_sleep;
-
- if ($rules) {
- $rules->agent($cnf{agent});
- $self->{'rules'} = $rules;
- }
- else {
- $self->{'rules'} = WWW::RobotRules->new($cnf{agent});
- }
-
- $self;
-}
-
-
-sub delay { shift->_elem('delay', @_); }
-sub use_sleep { shift->_elem('use_sleep', @_); }
-
-
-sub agent
-{
- my $self = shift;
- my $old = $self->SUPER::agent(@_);
- if (@_) {
- # Changing our name means to start fresh
- $self->{'rules'}->agent($self->{'agent'});
- }
- $old;
-}
-
-
-sub rules {
- my $self = shift;
- my $old = $self->_elem('rules', @_);
- $self->{'rules'}->agent($self->{'agent'}) if @_;
- $old;
-}
-
-
-sub no_visits
-{
- my($self, $netloc) = @_;
- $self->{'rules'}->no_visits($netloc) || 0;
-}
-
-*host_count = \&no_visits; # backwards compatibility with LWP-5.02
-
-
-sub host_wait
-{
- my($self, $netloc) = @_;
- return undef unless defined $netloc;
- my $last = $self->{'rules'}->last_visit($netloc);
- if ($last) {
- my $wait = int($self->{'delay'} * 60 - (time - $last));
- $wait = 0 if $wait < 0;
- return $wait;
- }
- return 0;
-}
-
-
-sub simple_request
-{
- my($self, $request, $arg, $size) = @_;
-
- # Do we try to access a new server?
- my $allowed = $self->{'rules'}->allowed($request->uri);
-
- if ($allowed < 0) {
- # Host is not visited before, or robots.txt expired; fetch "robots.txt"
- my $robot_url = $request->uri->clone;
- $robot_url->path("robots.txt");
- $robot_url->query(undef);
-
- # make access to robot.txt legal since this will be a recursive call
- $self->{'rules'}->parse($robot_url, "");
-
- my $robot_req = HTTP::Request->new('GET', $robot_url);
- my $parse_head = $self->parse_head(0);
- my $robot_res = $self->request($robot_req);
- $self->parse_head($parse_head);
- my $fresh_until = $robot_res->fresh_until;
- my $content = "";
- if ($robot_res->is_success && $robot_res->content_is_text) {
- $content = $robot_res->decoded_content;
- $content = "" unless $content && $content =~ /^\s*Disallow\s*:/mi;
- }
- $self->{'rules'}->parse($robot_url, $content, $fresh_until);
-
- # recalculate allowed...
- $allowed = $self->{'rules'}->allowed($request->uri);
- }
-
- # Check rules
- unless ($allowed) {
- my $res = HTTP::Response->new(
- &HTTP::Status::RC_FORBIDDEN, 'Forbidden by robots.txt');
- $res->request( $request ); # bind it to that request
- return $res;
- }
-
- my $netloc = eval { local $SIG{__DIE__}; $request->uri->host_port; };
- my $wait = $self->host_wait($netloc);
-
- if ($wait) {
- if ($self->{'use_sleep'}) {
- sleep($wait)
- }
- else {
- my $res = HTTP::Response->new(
- &HTTP::Status::RC_SERVICE_UNAVAILABLE, 'Please, slow down');
- $res->header('Retry-After', time2str(time + $wait));
- $res->request( $request ); # bind it to that request
- return $res;
- }
- }
-
- # Perform the request
- my $res = $self->SUPER::simple_request($request, $arg, $size);
-
- $self->{'rules'}->visit($netloc);
-
- $res;
-}
-
-
-sub as_string
-{
- my $self = shift;
- my @s;
- push(@s, "Robot: $self->{'agent'} operated by $self->{'from'} [$self]");
- push(@s, " Minimum delay: " . int($self->{'delay'}*60) . "s");
- push(@s, " Will sleep if too early") if $self->{'use_sleep'};
- push(@s, " Rules = $self->{'rules'}");
- join("\n", @s, '');
-}
-
-1;
-
-
-__END__
-
-=head1 NAME
-
-LWP::RobotUA - a class for well-behaved Web robots
-
-=head1 SYNOPSIS
-
- use LWP::RobotUA;
- my $ua = LWP::RobotUA->new('my-robot/0.1', 'me@foo.com');
- $ua->delay(10); # be very nice -- max one hit every ten minutes!
- ...
-
- # Then just use it just like a normal LWP::UserAgent:
- my $response = $ua->get('http://whatever.int/...');
- ...
-
-=head1 DESCRIPTION
-
-This class implements a user agent that is suitable for robot
-applications. Robots should be nice to the servers they visit. They
-should consult the F</robots.txt> file to ensure that they are welcomed
-and they should not make requests too frequently.
-
-But before you consider writing a robot, take a look at
-<URL:http://www.robotstxt.org/>.
-
-When you use an I<LWP::RobotUA> object as your user agent, then you do not
-really have to think about these things yourself; C<robots.txt> files
-are automatically consulted and obeyed, the server isn't queried
-too rapidly, and so on. Just send requests
-as you do when you are using a normal I<LWP::UserAgent>
-object (using C<< $ua->get(...) >>, C<< $ua->head(...) >>,
-C<< $ua->request(...) >>, etc.), and this
-special agent will make sure you are nice.
-
-=head1 METHODS
-
-The LWP::RobotUA is a sub-class of LWP::UserAgent and implements the
-same methods. In addition the following methods are provided:
-
-=over 4
-
-=item $ua = LWP::RobotUA->new( %options )
-
-=item $ua = LWP::RobotUA->new( $agent, $from )
-
-=item $ua = LWP::RobotUA->new( $agent, $from, $rules )
-
-The LWP::UserAgent options C<agent> and C<from> are mandatory. The
-options C<delay>, C<use_sleep> and C<rules> initialize attributes
-private to the RobotUA. If C<rules> are not provided, then
-C<WWW::RobotRules> is instantiated providing an internal database of
-F<robots.txt>.
-
-It is also possible to just pass the value of C<agent>, C<from> and
-optionally C<rules> as plain positional arguments.
-
-=item $ua->delay
-
-=item $ua->delay( $minutes )
-
-Get/set the minimum delay between requests to the same server, in
-I<minutes>. The default is 1 minute. Note that this number doesn't
-have to be an integer; for example, this sets the delay to 10 seconds:
-
- $ua->delay(10/60);
-
-=item $ua->use_sleep
-
-=item $ua->use_sleep( $boolean )
-
-Get/set a value indicating whether the UA should sleep() if requests
-arrive too fast, defined as $ua->delay minutes not passed since
-last request to the given server. The default is TRUE. If this value is
-FALSE then an internal SERVICE_UNAVAILABLE response will be generated.
-It will have a Retry-After header that indicates when it is OK to
-send another request to this server.
-
-=item $ua->rules
-
-=item $ua->rules( $rules )
-
-Set/get which I<WWW::RobotRules> object to use.
-
-=item $ua->no_visits( $netloc )
-
-Returns the number of documents fetched from this server host. Yeah I
-know, this method should probably have been named num_visits() or
-something like that. :-(
-
-=item $ua->host_wait( $netloc )
-
-Returns the number of I<seconds> (from now) you must wait before you can
-make a new request to this host.
-
-=item $ua->as_string
-
-Returns a string that describes the state of the UA.
-Mainly useful for debugging.
-
-=back
-
-=head1 SEE ALSO
-
-L<LWP::UserAgent>, L<WWW::RobotRules>
-
-=head1 COPYRIGHT
-
-Copyright 1996-2004 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/LWP/Simple.pm b/Master/tlpkg/tlperl/lib/LWP/Simple.pm
deleted file mode 100644
index aa159c41d67..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/Simple.pm
+++ /dev/null
@@ -1,253 +0,0 @@
-package LWP::Simple;
-
-use strict;
-use vars qw($ua %loop_check $FULL_LWP @EXPORT @EXPORT_OK $VERSION);
-
-require Exporter;
-
-@EXPORT = qw(get head getprint getstore mirror);
-@EXPORT_OK = qw($ua);
-
-# I really hate this. I was a bad idea to do it in the first place.
-# Wonder how to get rid of it??? (It even makes LWP::Simple 7% slower
-# for trivial tests)
-use HTTP::Status;
-push(@EXPORT, @HTTP::Status::EXPORT);
-
-$VERSION = "6.13";
-
-sub import
-{
- my $pkg = shift;
- my $callpkg = caller;
- Exporter::export($pkg, $callpkg, @_);
-}
-
-use LWP::UserAgent ();
-use HTTP::Status ();
-use HTTP::Date ();
-$ua = LWP::UserAgent->new; # we create a global UserAgent object
-$ua->agent("LWP::Simple/$VERSION ");
-$ua->env_proxy;
-
-
-sub get ($)
-{
- my $response = $ua->get(shift);
- return $response->decoded_content if $response->is_success;
- return undef;
-}
-
-
-sub head ($)
-{
- my($url) = @_;
- my $request = HTTP::Request->new(HEAD => $url);
- my $response = $ua->request($request);
-
- if ($response->is_success) {
- return $response unless wantarray;
- return (scalar $response->header('Content-Type'),
- scalar $response->header('Content-Length'),
- HTTP::Date::str2time($response->header('Last-Modified')),
- HTTP::Date::str2time($response->header('Expires')),
- scalar $response->header('Server'),
- );
- }
- return;
-}
-
-
-sub getprint ($)
-{
- my($url) = @_;
- my $request = HTTP::Request->new(GET => $url);
- local($\) = ""; # ensure standard $OUTPUT_RECORD_SEPARATOR
- my $callback = sub { print $_[0] };
- if ($^O eq "MacOS") {
- $callback = sub { $_[0] =~ s/\015?\012/\n/g; print $_[0] }
- }
- my $response = $ua->request($request, $callback);
- unless ($response->is_success) {
- print STDERR $response->status_line, " <URL:$url>\n";
- }
- $response->code;
-}
-
-
-sub getstore ($$)
-{
- my($url, $file) = @_;
- my $request = HTTP::Request->new(GET => $url);
- my $response = $ua->request($request, $file);
-
- $response->code;
-}
-
-
-sub mirror ($$)
-{
- my($url, $file) = @_;
- my $response = $ua->mirror($url, $file);
- $response->code;
-}
-
-
-1;
-
-__END__
-
-=head1 NAME
-
-LWP::Simple - simple procedural interface to LWP
-
-=head1 SYNOPSIS
-
- perl -MLWP::Simple -e 'getprint "http://www.sn.no"'
-
- use LWP::Simple;
- $content = get("http://www.sn.no/");
- die "Couldn't get it!" unless defined $content;
-
- if (mirror("http://www.sn.no/", "foo") == RC_NOT_MODIFIED) {
- ...
- }
-
- if (is_success(getprint("http://www.sn.no/"))) {
- ...
- }
-
-=head1 DESCRIPTION
-
-This module is meant for people who want a simplified view of the
-libwww-perl library. It should also be suitable for one-liners. If
-you need more control or access to the header fields in the requests
-sent and responses received, then you should use the full object-oriented
-interface provided by the C<LWP::UserAgent> module.
-
-The following functions are provided (and exported) by this module:
-
-=over 3
-
-=item get($url)
-
-The get() function will fetch the document identified by the given URL
-and return it. It returns C<undef> if it fails. The $url argument can
-be either a string or a reference to a URI object.
-
-You will not be able to examine the response code or response headers
-(like 'Content-Type') when you are accessing the web using this
-function. If you need that information you should use the full OO
-interface (see L<LWP::UserAgent>).
-
-=item head($url)
-
-Get document headers. Returns the following 5 values if successful:
-($content_type, $document_length, $modified_time, $expires, $server)
-
-Returns an empty list if it fails. In scalar context returns TRUE if
-successful.
-
-=item getprint($url)
-
-Get and print a document identified by a URL. The document is printed
-to the selected default filehandle for output (normally STDOUT) as
-data is received from the network. If the request fails, then the
-status code and message are printed on STDERR. The return value is
-the HTTP response code.
-
-=item getstore($url, $file)
-
-Gets a document identified by a URL and stores it in the file. The
-return value is the HTTP response code.
-
-=item mirror($url, $file)
-
-Get and store a document identified by a URL, using
-I<If-modified-since>, and checking the I<Content-Length>. Returns
-the HTTP response code.
-
-=back
-
-This module also exports the HTTP::Status constants and procedures.
-You can use them when you check the response code from getprint(),
-getstore() or mirror(). The constants are:
-
- RC_CONTINUE
- RC_SWITCHING_PROTOCOLS
- RC_OK
- RC_CREATED
- RC_ACCEPTED
- RC_NON_AUTHORITATIVE_INFORMATION
- RC_NO_CONTENT
- RC_RESET_CONTENT
- RC_PARTIAL_CONTENT
- RC_MULTIPLE_CHOICES
- RC_MOVED_PERMANENTLY
- RC_MOVED_TEMPORARILY
- RC_SEE_OTHER
- RC_NOT_MODIFIED
- RC_USE_PROXY
- RC_BAD_REQUEST
- RC_UNAUTHORIZED
- RC_PAYMENT_REQUIRED
- RC_FORBIDDEN
- RC_NOT_FOUND
- RC_METHOD_NOT_ALLOWED
- RC_NOT_ACCEPTABLE
- RC_PROXY_AUTHENTICATION_REQUIRED
- RC_REQUEST_TIMEOUT
- RC_CONFLICT
- RC_GONE
- RC_LENGTH_REQUIRED
- RC_PRECONDITION_FAILED
- RC_REQUEST_ENTITY_TOO_LARGE
- RC_REQUEST_URI_TOO_LARGE
- RC_UNSUPPORTED_MEDIA_TYPE
- RC_INTERNAL_SERVER_ERROR
- RC_NOT_IMPLEMENTED
- RC_BAD_GATEWAY
- RC_SERVICE_UNAVAILABLE
- RC_GATEWAY_TIMEOUT
- RC_HTTP_VERSION_NOT_SUPPORTED
-
-The HTTP::Status classification functions are:
-
-=over 3
-
-=item is_success($rc)
-
-True if response code indicated a successful request.
-
-=item is_error($rc)
-
-True if response code indicated that an error occurred.
-
-=back
-
-The module will also export the LWP::UserAgent object as C<$ua> if you
-ask for it explicitly.
-
-The user agent created by this module will identify itself as
-"LWP::Simple/#.##"
-and will initialize its proxy defaults from the environment (by
-calling $ua->env_proxy).
-
-=head1 CAVEAT
-
-Note that if you are using both LWP::Simple and the very popular CGI.pm
-module, you may be importing a C<head> function from each module,
-producing a warning like "Prototype mismatch: sub main::head ($) vs
-none". Get around this problem by just not importing LWP::Simple's
-C<head> function, like so:
-
- use LWP::Simple qw(!head);
- use CGI qw(:standard); # then only CGI.pm defines a head()
-
-Then if you do need LWP::Simple's C<head> function, you can just call
-it as C<LWP::Simple::head($url)>.
-
-=head1 SEE ALSO
-
-L<LWP>, L<lwpcook>, L<LWP::UserAgent>, L<HTTP::Status>, L<lwp-request>,
-L<lwp-mirror>
diff --git a/Master/tlpkg/tlperl/lib/LWP/UserAgent.pm b/Master/tlpkg/tlperl/lib/LWP/UserAgent.pm
deleted file mode 100644
index 0f0773e9ef4..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/UserAgent.pm
+++ /dev/null
@@ -1,1861 +0,0 @@
-package LWP::UserAgent;
-
-use strict;
-use vars qw(@ISA $VERSION);
-
-require LWP::MemberMixin;
-@ISA = qw(LWP::MemberMixin);
-$VERSION = "6.13";
-
-use HTTP::Request ();
-use HTTP::Response ();
-use HTTP::Date ();
-
-use LWP ();
-use LWP::Protocol ();
-
-use Carp ();
-
-
-sub new
-{
- # Check for common user mistake
- Carp::croak("Options to LWP::UserAgent should be key/value pairs, not hash reference")
- if ref($_[1]) eq 'HASH';
-
- my($class, %cnf) = @_;
-
- my $agent = delete $cnf{agent};
- my $from = delete $cnf{from};
- my $def_headers = delete $cnf{default_headers};
- my $timeout = delete $cnf{timeout};
- $timeout = 3*60 unless defined $timeout;
- my $local_address = delete $cnf{local_address};
- my $ssl_opts = delete $cnf{ssl_opts} || {};
- unless (exists $ssl_opts->{verify_hostname}) {
- # The processing of HTTPS_CA_* below is for compatibility with Crypt::SSLeay
- if (exists $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}) {
- $ssl_opts->{verify_hostname} = $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME};
- }
- elsif ($ENV{HTTPS_CA_FILE} || $ENV{HTTPS_CA_DIR}) {
- # Crypt-SSLeay compatibility (verify peer certificate; but not the hostname)
- $ssl_opts->{verify_hostname} = 0;
- $ssl_opts->{SSL_verify_mode} = 1;
- }
- else {
- $ssl_opts->{verify_hostname} = 1;
- }
- }
- unless (exists $ssl_opts->{SSL_ca_file}) {
- if (my $ca_file = $ENV{PERL_LWP_SSL_CA_FILE} || $ENV{HTTPS_CA_FILE}) {
- $ssl_opts->{SSL_ca_file} = $ca_file;
- }
- }
- unless (exists $ssl_opts->{SSL_ca_path}) {
- if (my $ca_path = $ENV{PERL_LWP_SSL_CA_PATH} || $ENV{HTTPS_CA_DIR}) {
- $ssl_opts->{SSL_ca_path} = $ca_path;
- }
- }
- my $use_eval = delete $cnf{use_eval};
- $use_eval = 1 unless defined $use_eval;
- my $parse_head = delete $cnf{parse_head};
- $parse_head = 1 unless defined $parse_head;
- my $show_progress = delete $cnf{show_progress};
- my $max_size = delete $cnf{max_size};
- my $max_redirect = delete $cnf{max_redirect};
- $max_redirect = 7 unless defined $max_redirect;
- my $env_proxy = exists $cnf{env_proxy} ? delete $cnf{env_proxy} : $ENV{PERL_LWP_ENV_PROXY};
-
- my $cookie_jar = delete $cnf{cookie_jar};
- my $conn_cache = delete $cnf{conn_cache};
- my $keep_alive = delete $cnf{keep_alive};
-
- Carp::croak("Can't mix conn_cache and keep_alive")
- if $conn_cache && $keep_alive;
-
- my $protocols_allowed = delete $cnf{protocols_allowed};
- my $protocols_forbidden = delete $cnf{protocols_forbidden};
-
- my $requests_redirectable = delete $cnf{requests_redirectable};
- $requests_redirectable = ['GET', 'HEAD']
- unless defined $requests_redirectable;
-
- # Actually ""s are just as good as 0's, but for concision we'll just say:
- Carp::croak("protocols_allowed has to be an arrayref or 0, not \"$protocols_allowed\"!")
- if $protocols_allowed and ref($protocols_allowed) ne 'ARRAY';
- Carp::croak("protocols_forbidden has to be an arrayref or 0, not \"$protocols_forbidden\"!")
- if $protocols_forbidden and ref($protocols_forbidden) ne 'ARRAY';
- Carp::croak("requests_redirectable has to be an arrayref or 0, not \"$requests_redirectable\"!")
- if $requests_redirectable and ref($requests_redirectable) ne 'ARRAY';
-
-
- if (%cnf && $^W) {
- Carp::carp("Unrecognized LWP::UserAgent options: @{[sort keys %cnf]}");
- }
-
- my $self = bless {
- def_headers => $def_headers,
- timeout => $timeout,
- local_address => $local_address,
- ssl_opts => $ssl_opts,
- use_eval => $use_eval,
- show_progress=> $show_progress,
- max_size => $max_size,
- max_redirect => $max_redirect,
- proxy => {},
- no_proxy => [],
- protocols_allowed => $protocols_allowed,
- protocols_forbidden => $protocols_forbidden,
- requests_redirectable => $requests_redirectable,
- }, $class;
-
- $self->agent(defined($agent) ? $agent : $class->_agent)
- if defined($agent) || !$def_headers || !$def_headers->header("User-Agent");
- $self->from($from) if $from;
- $self->cookie_jar($cookie_jar) if $cookie_jar;
- $self->parse_head($parse_head);
- $self->env_proxy if $env_proxy;
-
- $self->protocols_allowed( $protocols_allowed ) if $protocols_allowed;
- $self->protocols_forbidden($protocols_forbidden) if $protocols_forbidden;
-
- if ($keep_alive) {
- $conn_cache ||= { total_capacity => $keep_alive };
- }
- $self->conn_cache($conn_cache) if $conn_cache;
-
- return $self;
-}
-
-
-sub send_request
-{
- my($self, $request, $arg, $size) = @_;
- my($method, $url) = ($request->method, $request->uri);
- my $scheme = $url->scheme;
-
- local($SIG{__DIE__}); # protect against user defined die handlers
-
- $self->progress("begin", $request);
-
- my $response = $self->run_handlers("request_send", $request);
-
- unless ($response) {
- my $protocol;
-
- {
- # Honor object-specific restrictions by forcing protocol objects
- # into class LWP::Protocol::nogo.
- my $x;
- if($x = $self->protocols_allowed) {
- if (grep lc($_) eq $scheme, @$x) {
- }
- else {
- require LWP::Protocol::nogo;
- $protocol = LWP::Protocol::nogo->new;
- }
- }
- elsif ($x = $self->protocols_forbidden) {
- if(grep lc($_) eq $scheme, @$x) {
- require LWP::Protocol::nogo;
- $protocol = LWP::Protocol::nogo->new;
- }
- }
- # else fall thru and create the protocol object normally
- }
-
- # Locate protocol to use
- my $proxy = $request->{proxy};
- if ($proxy) {
- $scheme = $proxy->scheme;
- }
-
- unless ($protocol) {
- $protocol = eval { LWP::Protocol::create($scheme, $self) };
- if ($@) {
- $@ =~ s/ at .* line \d+.*//s; # remove file/line number
- $response = _new_response($request, &HTTP::Status::RC_NOT_IMPLEMENTED, $@);
- if ($scheme eq "https") {
- $response->message($response->message . " (LWP::Protocol::https not installed)");
- $response->content_type("text/plain");
- $response->content(<<EOT);
-LWP will support https URLs if the LWP::Protocol::https module
-is installed.
-EOT
- }
- }
- }
-
- if (!$response && $self->{use_eval}) {
- # we eval, and turn dies into responses below
- eval {
- $response = $protocol->request($request, $proxy, $arg, $size, $self->{timeout}) ||
- die "No response returned by $protocol";
- };
- if ($@) {
- if (UNIVERSAL::isa($@, "HTTP::Response")) {
- $response = $@;
- $response->request($request);
- }
- else {
- my $full = $@;
- (my $status = $@) =~ s/\n.*//s;
- $status =~ s/ at .* line \d+.*//s; # remove file/line number
- my $code = ($status =~ s/^(\d\d\d)\s+//) ? $1 : &HTTP::Status::RC_INTERNAL_SERVER_ERROR;
- $response = _new_response($request, $code, $status, $full);
- }
- }
- }
- elsif (!$response) {
- $response = $protocol->request($request, $proxy,
- $arg, $size, $self->{timeout});
- # XXX: Should we die unless $response->is_success ???
- }
- }
-
- $response->request($request); # record request for reference
- $response->header("Client-Date" => HTTP::Date::time2str(time));
-
- $self->run_handlers("response_done", $response);
-
- $self->progress("end", $response);
- return $response;
-}
-
-
-sub prepare_request
-{
- my($self, $request) = @_;
- die "Method missing" unless $request->method;
- my $url = $request->uri;
- die "URL missing" unless $url;
- die "URL must be absolute" unless $url->scheme;
-
- $self->run_handlers("request_preprepare", $request);
-
- if (my $def_headers = $self->{def_headers}) {
- for my $h ($def_headers->header_field_names) {
- $request->init_header($h => [$def_headers->header($h)]);
- }
- }
-
- $self->run_handlers("request_prepare", $request);
-
- return $request;
-}
-
-
-sub simple_request
-{
- my($self, $request, $arg, $size) = @_;
-
- # sanity check the request passed in
- if (defined $request) {
- if (ref $request) {
- Carp::croak("You need a request object, not a " . ref($request) . " object")
- if ref($request) eq 'ARRAY' or ref($request) eq 'HASH' or
- !$request->can('method') or !$request->can('uri');
- }
- else {
- Carp::croak("You need a request object, not '$request'");
- }
- }
- else {
- Carp::croak("No request object passed in");
- }
-
- eval {
- $request = $self->prepare_request($request);
- };
- if ($@) {
- $@ =~ s/ at .* line \d+.*//s; # remove file/line number
- return _new_response($request, &HTTP::Status::RC_BAD_REQUEST, $@);
- }
- return $self->send_request($request, $arg, $size);
-}
-
-
-sub request
-{
- my($self, $request, $arg, $size, $previous) = @_;
-
- my $response = $self->simple_request($request, $arg, $size);
- $response->previous($previous) if $previous;
-
- if ($response->redirects >= $self->{max_redirect}) {
- $response->header("Client-Warning" =>
- "Redirect loop detected (max_redirect = $self->{max_redirect})");
- return $response;
- }
-
- if (my $req = $self->run_handlers("response_redirect", $response)) {
- return $self->request($req, $arg, $size, $response);
- }
-
- my $code = $response->code;
-
- if ($code == &HTTP::Status::RC_MOVED_PERMANENTLY or
- $code == &HTTP::Status::RC_FOUND or
- $code == &HTTP::Status::RC_SEE_OTHER or
- $code == &HTTP::Status::RC_TEMPORARY_REDIRECT)
- {
- my $referral = $request->clone;
-
- # These headers should never be forwarded
- $referral->remove_header('Host', 'Cookie');
-
- if ($referral->header('Referer') &&
- $request->uri->scheme eq 'https' &&
- $referral->uri->scheme eq 'http')
- {
- # RFC 2616, section 15.1.3.
- # https -> http redirect, suppressing Referer
- $referral->remove_header('Referer');
- }
-
- if ($code == &HTTP::Status::RC_SEE_OTHER ||
- $code == &HTTP::Status::RC_FOUND)
- {
- my $method = uc($referral->method);
- unless ($method eq "GET" || $method eq "HEAD") {
- $referral->method("GET");
- $referral->content("");
- $referral->remove_content_headers;
- }
- }
-
- # And then we update the URL based on the Location:-header.
- my $referral_uri = $response->header('Location');
- {
- # Some servers erroneously return a relative URL for redirects,
- # so make it absolute if it not already is.
- local $URI::ABS_ALLOW_RELATIVE_SCHEME = 1;
- my $base = $response->base;
- $referral_uri = "" unless defined $referral_uri;
- $referral_uri = $HTTP::URI_CLASS->new($referral_uri, $base)
- ->abs($base);
- }
- $referral->uri($referral_uri);
-
- return $response unless $self->redirect_ok($referral, $response);
- return $self->request($referral, $arg, $size, $response);
-
- }
- elsif ($code == &HTTP::Status::RC_UNAUTHORIZED ||
- $code == &HTTP::Status::RC_PROXY_AUTHENTICATION_REQUIRED
- )
- {
- my $proxy = ($code == &HTTP::Status::RC_PROXY_AUTHENTICATION_REQUIRED);
- my $ch_header = $proxy || $request->method eq 'CONNECT'
- ? "Proxy-Authenticate" : "WWW-Authenticate";
- my @challenge = $response->header($ch_header);
- unless (@challenge) {
- $response->header("Client-Warning" =>
- "Missing Authenticate header");
- return $response;
- }
-
- require HTTP::Headers::Util;
- CHALLENGE: for my $challenge (@challenge) {
- $challenge =~ tr/,/;/; # "," is used to separate auth-params!!
- ($challenge) = HTTP::Headers::Util::split_header_words($challenge);
- my $scheme = shift(@$challenge);
- shift(@$challenge); # no value
- $challenge = { @$challenge }; # make rest into a hash
-
- unless ($scheme =~ /^([a-z]+(?:-[a-z]+)*)$/) {
- $response->header("Client-Warning" =>
- "Bad authentication scheme '$scheme'");
- return $response;
- }
- $scheme = $1; # untainted now
- my $class = "LWP::Authen::\u$scheme";
- $class =~ s/-/_/g;
-
- no strict 'refs';
- unless (%{"$class\::"}) {
- # try to load it
- eval "require $class";
- if ($@) {
- if ($@ =~ /^Can\'t locate/) {
- $response->header("Client-Warning" =>
- "Unsupported authentication scheme '$scheme'");
- }
- else {
- $response->header("Client-Warning" => $@);
- }
- next CHALLENGE;
- }
- }
- unless ($class->can("authenticate")) {
- $response->header("Client-Warning" =>
- "Unsupported authentication scheme '$scheme'");
- next CHALLENGE;
- }
- return $class->authenticate($self, $proxy, $challenge, $response,
- $request, $arg, $size);
- }
- return $response;
- }
- return $response;
-}
-
-
-#
-# Now the shortcuts...
-#
-sub get {
- require HTTP::Request::Common;
- my($self, @parameters) = @_;
- my @suff = $self->_process_colonic_headers(\@parameters,1);
- return $self->request( HTTP::Request::Common::GET( @parameters ), @suff );
-}
-
-
-sub post {
- require HTTP::Request::Common;
- my($self, @parameters) = @_;
- my @suff = $self->_process_colonic_headers(\@parameters, (ref($parameters[1]) ? 2 : 1));
- return $self->request( HTTP::Request::Common::POST( @parameters ), @suff );
-}
-
-
-sub head {
- require HTTP::Request::Common;
- my($self, @parameters) = @_;
- my @suff = $self->_process_colonic_headers(\@parameters,1);
- return $self->request( HTTP::Request::Common::HEAD( @parameters ), @suff );
-}
-
-
-sub put {
- require HTTP::Request::Common;
- my($self, @parameters) = @_;
- my @suff = $self->_process_colonic_headers(\@parameters, (ref($parameters[1]) ? 2 : 1));
- return $self->request( HTTP::Request::Common::PUT( @parameters ), @suff );
-}
-
-
-sub delete {
- require HTTP::Request::Common;
- my($self, @parameters) = @_;
- my @suff = $self->_process_colonic_headers(\@parameters,1);
- return $self->request( HTTP::Request::Common::DELETE( @parameters ), @suff );
-}
-
-
-sub _process_colonic_headers {
- # Process :content_cb / :content_file / :read_size_hint headers.
- my($self, $args, $start_index) = @_;
-
- my($arg, $size);
- for(my $i = $start_index; $i < @$args; $i += 2) {
- next unless defined $args->[$i];
-
- #printf "Considering %s => %s\n", $args->[$i], $args->[$i + 1];
-
- if($args->[$i] eq ':content_cb') {
- # Some sanity-checking...
- $arg = $args->[$i + 1];
- Carp::croak("A :content_cb value can't be undef") unless defined $arg;
- Carp::croak("A :content_cb value must be a coderef")
- unless ref $arg and UNIVERSAL::isa($arg, 'CODE');
-
- }
- elsif ($args->[$i] eq ':content_file') {
- $arg = $args->[$i + 1];
-
- # Some sanity-checking...
- Carp::croak("A :content_file value can't be undef")
- unless defined $arg;
- Carp::croak("A :content_file value can't be a reference")
- if ref $arg;
- Carp::croak("A :content_file value can't be \"\"")
- unless length $arg;
-
- }
- elsif ($args->[$i] eq ':read_size_hint') {
- $size = $args->[$i + 1];
- # Bother checking it?
-
- }
- else {
- next;
- }
- splice @$args, $i, 2;
- $i -= 2;
- }
-
- # And return a suitable suffix-list for request(REQ,...)
-
- return unless defined $arg;
- return $arg, $size if defined $size;
- return $arg;
-}
-
-
-sub is_online {
- my $self = shift;
- return 1 if $self->get("http://www.msftncsi.com/ncsi.txt")->content eq "Microsoft NCSI";
- return 1 if $self->get("http://www.apple.com")->content =~ m,<title>Apple</title>,;
- return 0;
-}
-
-
-my @ANI = qw(- \ | /);
-
-sub progress {
- my($self, $status, $m) = @_;
- return unless $self->{show_progress};
-
- local($,, $\);
- if ($status eq "begin") {
- print STDERR "** ", $m->method, " ", $m->uri, " ==> ";
- $self->{progress_start} = time;
- $self->{progress_lastp} = "";
- $self->{progress_ani} = 0;
- }
- elsif ($status eq "end") {
- delete $self->{progress_lastp};
- delete $self->{progress_ani};
- print STDERR $m->status_line;
- my $t = time - delete $self->{progress_start};
- print STDERR " (${t}s)" if $t;
- print STDERR "\n";
- }
- elsif ($status eq "tick") {
- print STDERR "$ANI[$self->{progress_ani}++]\b";
- $self->{progress_ani} %= @ANI;
- }
- else {
- my $p = sprintf "%3.0f%%", $status * 100;
- return if $p eq $self->{progress_lastp};
- print STDERR "$p\b\b\b\b";
- $self->{progress_lastp} = $p;
- }
- STDERR->flush;
-}
-
-
-#
-# This whole allow/forbid thing is based on man 1 at's way of doing things.
-#
-sub is_protocol_supported
-{
- my($self, $scheme) = @_;
- if (ref $scheme) {
- # assume we got a reference to an URI object
- $scheme = $scheme->scheme;
- }
- else {
- Carp::croak("Illegal scheme '$scheme' passed to is_protocol_supported")
- if $scheme =~ /\W/;
- $scheme = lc $scheme;
- }
-
- my $x;
- if(ref($self) and $x = $self->protocols_allowed) {
- return 0 unless grep lc($_) eq $scheme, @$x;
- }
- elsif (ref($self) and $x = $self->protocols_forbidden) {
- return 0 if grep lc($_) eq $scheme, @$x;
- }
-
- local($SIG{__DIE__}); # protect against user defined die handlers
- $x = LWP::Protocol::implementor($scheme);
- return 1 if $x and $x ne 'LWP::Protocol::nogo';
- return 0;
-}
-
-
-sub protocols_allowed { shift->_elem('protocols_allowed' , @_) }
-sub protocols_forbidden { shift->_elem('protocols_forbidden' , @_) }
-sub requests_redirectable { shift->_elem('requests_redirectable', @_) }
-
-
-sub redirect_ok
-{
- # RFC 2616, section 10.3.2 and 10.3.3 say:
- # If the 30[12] status code is received in response to a request other
- # than GET or HEAD, the user agent MUST NOT automatically redirect the
- # request unless it can be confirmed by the user, since this might
- # change the conditions under which the request was issued.
-
- # Note that this routine used to be just:
- # return 0 if $_[1]->method eq "POST"; return 1;
-
- my($self, $new_request, $response) = @_;
- my $method = $response->request->method;
- return 0 unless grep $_ eq $method,
- @{ $self->requests_redirectable || [] };
-
- if ($new_request->uri->scheme eq 'file') {
- $response->header("Client-Warning" =>
- "Can't redirect to a file:// URL!");
- return 0;
- }
-
- # Otherwise it's apparently okay...
- return 1;
-}
-
-
-sub credentials
-{
- my $self = shift;
- my $netloc = lc(shift);
- my $realm = shift || "";
- my $old = $self->{basic_authentication}{$netloc}{$realm};
- if (@_) {
- $self->{basic_authentication}{$netloc}{$realm} = [@_];
- }
- return unless $old;
- return @$old if wantarray;
- return join(":", @$old);
-}
-
-
-sub get_basic_credentials
-{
- my($self, $realm, $uri, $proxy) = @_;
- return if $proxy;
- return $self->credentials($uri->host_port, $realm);
-}
-
-
-sub timeout { shift->_elem('timeout', @_); }
-sub local_address{ shift->_elem('local_address',@_); }
-sub max_size { shift->_elem('max_size', @_); }
-sub max_redirect { shift->_elem('max_redirect', @_); }
-sub show_progress{ shift->_elem('show_progress', @_); }
-
-sub ssl_opts {
- my $self = shift;
- if (@_ == 1) {
- my $k = shift;
- return $self->{ssl_opts}{$k};
- }
- if (@_) {
- my $old;
- while (@_) {
- my($k, $v) = splice(@_, 0, 2);
- $old = $self->{ssl_opts}{$k} unless @_;
- if (defined $v) {
- $self->{ssl_opts}{$k} = $v;
- }
- else {
- delete $self->{ssl_opts}{$k};
- }
- }
- %{$self->{ssl_opts}} = (%{$self->{ssl_opts}}, @_);
- return $old;
- }
-
- return keys %{$self->{ssl_opts}};
-}
-
-sub parse_head {
- my $self = shift;
- if (@_) {
- my $flag = shift;
- my $parser;
- my $old = $self->set_my_handler("response_header", $flag ? sub {
- my($response, $ua) = @_;
- require HTML::HeadParser;
- $parser = HTML::HeadParser->new;
- $parser->xml_mode(1) if $response->content_is_xhtml;
- $parser->utf8_mode(1) if $] >= 5.008 && $HTML::Parser::VERSION >= 3.40;
-
- push(@{$response->{handlers}{response_data}}, {
- callback => sub {
- return unless $parser;
- unless ($parser->parse($_[3])) {
- my $h = $parser->header;
- my $r = $_[0];
- for my $f ($h->header_field_names) {
- $r->init_header($f, [$h->header($f)]);
- }
- undef($parser);
- }
- },
- });
-
- } : undef,
- m_media_type => "html",
- );
- return !!$old;
- }
- else {
- return !!$self->get_my_handler("response_header");
- }
-}
-
-sub cookie_jar {
- my $self = shift;
- my $old = $self->{cookie_jar};
- if (@_) {
- my $jar = shift;
- if (ref($jar) eq "HASH") {
- require HTTP::Cookies;
- $jar = HTTP::Cookies->new(%$jar);
- }
- $self->{cookie_jar} = $jar;
- $self->set_my_handler("request_prepare",
- $jar ? sub { $jar->add_cookie_header($_[0]); } : undef,
- );
- $self->set_my_handler("response_done",
- $jar ? sub { $jar->extract_cookies($_[0]); } : undef,
- );
- }
- $old;
-}
-
-sub default_headers {
- my $self = shift;
- my $old = $self->{def_headers} ||= HTTP::Headers->new;
- if (@_) {
- Carp::croak("default_headers not set to HTTP::Headers compatible object")
- unless @_ == 1 && $_[0]->can("header_field_names");
- $self->{def_headers} = shift;
- }
- return $old;
-}
-
-sub default_header {
- my $self = shift;
- return $self->default_headers->header(@_);
-}
-
-sub _agent { "libwww-perl/$LWP::VERSION" }
-
-sub agent {
- my $self = shift;
- if (@_) {
- my $agent = shift;
- if ($agent) {
- $agent .= $self->_agent if $agent =~ /\s+$/;
- }
- else {
- undef($agent)
- }
- return $self->default_header("User-Agent", $agent);
- }
- return $self->default_header("User-Agent");
-}
-
-sub from { # legacy
- my $self = shift;
- return $self->default_header("From", @_);
-}
-
-
-sub conn_cache {
- my $self = shift;
- my $old = $self->{conn_cache};
- if (@_) {
- my $cache = shift;
- if (ref($cache) eq "HASH") {
- require LWP::ConnCache;
- $cache = LWP::ConnCache->new(%$cache);
- }
- $self->{conn_cache} = $cache;
- }
- $old;
-}
-
-
-sub add_handler {
- my($self, $phase, $cb, %spec) = @_;
- $spec{line} ||= join(":", (caller)[1,2]);
- my $conf = $self->{handlers}{$phase} ||= do {
- require HTTP::Config;
- HTTP::Config->new;
- };
- $conf->add(%spec, callback => $cb);
-}
-
-sub set_my_handler {
- my($self, $phase, $cb, %spec) = @_;
- $spec{owner} = (caller(1))[3] unless exists $spec{owner};
- $self->remove_handler($phase, %spec);
- $spec{line} ||= join(":", (caller)[1,2]);
- $self->add_handler($phase, $cb, %spec) if $cb;
-}
-
-sub get_my_handler {
- my $self = shift;
- my $phase = shift;
- my $init = pop if @_ % 2;
- my %spec = @_;
- my $conf = $self->{handlers}{$phase};
- unless ($conf) {
- return unless $init;
- require HTTP::Config;
- $conf = $self->{handlers}{$phase} = HTTP::Config->new;
- }
- $spec{owner} = (caller(1))[3] unless exists $spec{owner};
- my @h = $conf->find(%spec);
- if (!@h && $init) {
- if (ref($init) eq "CODE") {
- $init->(\%spec);
- }
- elsif (ref($init) eq "HASH") {
- while (my($k, $v) = each %$init) {
- $spec{$k} = $v;
- }
- }
- $spec{callback} ||= sub {};
- $spec{line} ||= join(":", (caller)[1,2]);
- $conf->add(\%spec);
- return \%spec;
- }
- return wantarray ? @h : $h[0];
-}
-
-sub remove_handler {
- my($self, $phase, %spec) = @_;
- if ($phase) {
- my $conf = $self->{handlers}{$phase} || return;
- my @h = $conf->remove(%spec);
- delete $self->{handlers}{$phase} if $conf->empty;
- return @h;
- }
-
- return unless $self->{handlers};
- return map $self->remove_handler($_), sort keys %{$self->{handlers}};
-}
-
-sub handlers {
- my($self, $phase, $o) = @_;
- my @h;
- if ($o->{handlers} && $o->{handlers}{$phase}) {
- push(@h, @{$o->{handlers}{$phase}});
- }
- if (my $conf = $self->{handlers}{$phase}) {
- push(@h, $conf->matching($o));
- }
- return @h;
-}
-
-sub run_handlers {
- my($self, $phase, $o) = @_;
- if (defined(wantarray)) {
- for my $h ($self->handlers($phase, $o)) {
- my $ret = $h->{callback}->($o, $self, $h);
- return $ret if $ret;
- }
- return undef;
- }
-
- for my $h ($self->handlers($phase, $o)) {
- $h->{callback}->($o, $self, $h);
- }
-}
-
-
-# deprecated
-sub use_eval { shift->_elem('use_eval', @_); }
-sub use_alarm
-{
- Carp::carp("LWP::UserAgent->use_alarm(BOOL) is a no-op")
- if @_ > 1 && $^W;
- "";
-}
-
-
-sub clone
-{
- my $self = shift;
- my $copy = bless { %$self }, ref $self; # copy most fields
-
- delete $copy->{handlers};
- delete $copy->{conn_cache};
-
- # copy any plain arrays and hashes; known not to need recursive copy
- for my $k (qw(proxy no_proxy requests_redirectable ssl_opts)) {
- next unless $copy->{$k};
- if (ref($copy->{$k}) eq "ARRAY") {
- $copy->{$k} = [ @{$copy->{$k}} ];
- }
- elsif (ref($copy->{$k}) eq "HASH") {
- $copy->{$k} = { %{$copy->{$k}} };
- }
- }
-
- if ($self->{def_headers}) {
- $copy->{def_headers} = $self->{def_headers}->clone;
- }
-
- # re-enable standard handlers
- $copy->parse_head($self->parse_head);
-
- # no easy way to clone the cookie jar; so let's just remove it for now
- $copy->cookie_jar(undef);
-
- $copy;
-}
-
-
-sub mirror
-{
- my($self, $url, $file) = @_;
-
- my $request = HTTP::Request->new('GET', $url);
-
- # If the file exists, add a cache-related header
- if ( -e $file ) {
- my ($mtime) = ( stat($file) )[9];
- if ($mtime) {
- $request->header( 'If-Modified-Since' => HTTP::Date::time2str($mtime) );
- }
- }
- my $tmpfile = "$file-$$";
-
- my $response = $self->request($request, $tmpfile);
- if ( $response->header('X-Died') ) {
- die $response->header('X-Died');
- }
-
- # Only fetching a fresh copy of the would be considered success.
- # If the file was not modified, "304" would returned, which
- # is considered by HTTP::Status to be a "redirect", /not/ "success"
- if ( $response->is_success ) {
- my @stat = stat($tmpfile) or die "Could not stat tmpfile '$tmpfile': $!";
- my $file_length = $stat[7];
- my ($content_length) = $response->header('Content-length');
-
- if ( defined $content_length and $file_length < $content_length ) {
- unlink($tmpfile);
- die "Transfer truncated: " . "only $file_length out of $content_length bytes received\n";
- }
- elsif ( defined $content_length and $file_length > $content_length ) {
- unlink($tmpfile);
- die "Content-length mismatch: " . "expected $content_length bytes, got $file_length\n";
- }
- # The file was the expected length.
- else {
- # Replace the stale file with a fresh copy
- if ( -e $file ) {
- # Some DOSish systems fail to rename if the target exists
- chmod 0777, $file;
- unlink $file;
- }
- rename( $tmpfile, $file )
- or die "Cannot rename '$tmpfile' to '$file': $!\n";
-
- # make sure the file has the same last modification time
- if ( my $lm = $response->last_modified ) {
- utime $lm, $lm, $file;
- }
- }
- }
- # The local copy is fresh enough, so just delete the temp file
- else {
- unlink($tmpfile);
- }
- return $response;
-}
-
-
-sub _need_proxy {
- my($req, $ua) = @_;
- return if exists $req->{proxy};
- my $proxy = $ua->{proxy}{$req->uri->scheme} || return;
- if ($ua->{no_proxy}) {
- if (my $host = eval { $req->uri->host }) {
- for my $domain (@{$ua->{no_proxy}}) {
- if ($host =~ /\Q$domain\E$/) {
- return;
- }
- }
- }
- }
- $req->{proxy} = $HTTP::URI_CLASS->new($proxy);
-}
-
-
-sub proxy
-{
- my $self = shift;
- my $key = shift;
- return map $self->proxy($_, @_), @$key if ref $key;
-
- Carp::croak("'$key' is not a valid URI scheme") unless $key =~ /^$URI::scheme_re\z/;
- my $old = $self->{'proxy'}{$key};
- if (@_) {
- my $url = shift;
- if (defined($url) && length($url)) {
- Carp::croak("Proxy must be specified as absolute URI; '$url' is not") unless $url =~ /^$URI::scheme_re:/;
- Carp::croak("Bad http proxy specification '$url'") if $url =~ /^https?:/ && $url !~ m,^https?://\w,;
- }
- $self->{proxy}{$key} = $url;
- $self->set_my_handler("request_preprepare", \&_need_proxy)
- }
- return $old;
-}
-
-
-sub env_proxy {
- my ($self) = @_;
- require Encode;
- require Encode::Locale;
- my($k,$v);
- while(($k, $v) = each %ENV) {
- if ($ENV{REQUEST_METHOD}) {
- # Need to be careful when called in the CGI environment, as
- # the HTTP_PROXY variable is under control of that other guy.
- next if $k =~ /^HTTP_/;
- $k = "HTTP_PROXY" if $k eq "CGI_HTTP_PROXY";
- }
- $k = lc($k);
- next unless $k =~ /^(.*)_proxy$/;
- $k = $1;
- if ($k eq 'no') {
- $self->no_proxy(split(/\s*,\s*/, $v));
- }
- else {
- # Ignore random _proxy variables, allow only valid schemes
- next unless $k =~ /^$URI::scheme_re\z/;
- # Ignore xxx_proxy variables if xxx isn't a supported protocol
- next unless LWP::Protocol::implementor($k);
- $self->proxy($k, Encode::decode(locale => $v));
- }
- }
-}
-
-
-sub no_proxy {
- my($self, @no) = @_;
- if (@no) {
- push(@{ $self->{'no_proxy'} }, @no);
- }
- else {
- $self->{'no_proxy'} = [];
- }
-}
-
-
-sub _new_response {
- my($request, $code, $message, $content) = @_;
- $message ||= HTTP::Status::status_message($code);
- my $response = HTTP::Response->new($code, $message);
- $response->request($request);
- $response->header("Client-Date" => HTTP::Date::time2str(time));
- $response->header("Client-Warning" => "Internal response");
- $response->header("Content-Type" => "text/plain");
- $response->content($content || "$code $message\n");
- return $response;
-}
-
-
-1;
-
-__END__
-
-=head1 NAME
-
-LWP::UserAgent - Web user agent class
-
-=head1 SYNOPSIS
-
- require LWP::UserAgent;
-
- my $ua = LWP::UserAgent->new;
- $ua->timeout(10);
- $ua->env_proxy;
-
- my $response = $ua->get('http://search.cpan.org/');
-
- if ($response->is_success) {
- print $response->decoded_content; # or whatever
- }
- else {
- die $response->status_line;
- }
-
-=head1 DESCRIPTION
-
-The C<LWP::UserAgent> is a class implementing a web user agent.
-C<LWP::UserAgent> objects can be used to dispatch web requests.
-
-In normal use the application creates an C<LWP::UserAgent> object, and
-then configures it with values for timeouts, proxies, name, etc. It
-then creates an instance of C<HTTP::Request> for the request that
-needs to be performed. This request is then passed to one of the
-request method the UserAgent, which dispatches it using the relevant
-protocol, and returns a C<HTTP::Response> object. There are
-convenience methods for sending the most common request types: get(),
-head(), post(), put() and delete(). When using these methods then the
-creation of the request object is hidden as shown in the synopsis above.
-
-The basic approach of the library is to use HTTP style communication
-for all protocol schemes. This means that you will construct
-C<HTTP::Request> objects and receive C<HTTP::Response> objects even
-for non-HTTP resources like I<gopher> and I<ftp>. In order to achieve
-even more similarity to HTTP style communications, gopher menus and
-file directories are converted to HTML documents.
-
-=head1 CONSTRUCTOR METHODS
-
-The following constructor methods are available:
-
-=over 4
-
-=item $ua = LWP::UserAgent->new( %options )
-
-This method constructs a new C<LWP::UserAgent> object and returns it.
-Key/value pair arguments may be provided to set up the initial state.
-The following options correspond to attribute methods described below:
-
- KEY DEFAULT
- ----------- --------------------
- agent "libwww-perl/#.###"
- from undef
- conn_cache undef
- cookie_jar undef
- default_headers HTTP::Headers->new
- local_address undef
- ssl_opts { verify_hostname => 1 }
- max_size undef
- max_redirect 7
- parse_head 1
- protocols_allowed undef
- protocols_forbidden undef
- requests_redirectable ['GET', 'HEAD']
- timeout 180
-
-The following additional options are also accepted: If the C<env_proxy> option
-is passed in with a TRUE value, then proxy settings are read from environment
-variables (see env_proxy() method below). If C<env_proxy> isn't provided the
-C<PERL_LWP_ENV_PROXY> environment variable controls if env_proxy() is called
-during initialization. If the C<keep_alive> option is passed in, then a
-C<LWP::ConnCache> is set up (see conn_cache() method below). The C<keep_alive>
-value is passed on as the C<total_capacity> for the connection cache.
-
-=item $ua->clone
-
-Returns a copy of the LWP::UserAgent object.
-
-=back
-
-=head1 ATTRIBUTES
-
-The settings of the configuration attributes modify the behaviour of the
-C<LWP::UserAgent> when it dispatches requests. Most of these can also
-be initialized by options passed to the constructor method.
-
-The following attribute methods are provided. The attribute value is
-left unchanged if no argument is given. The return value from each
-method is the old attribute value.
-
-=over
-
-=item $ua->agent
-
-=item $ua->agent( $product_id )
-
-Get/set the product token that is used to identify the user agent on
-the network. The agent value is sent as the "User-Agent" header in
-the requests. The default is the string returned by the _agent()
-method (see below).
-
-If the $product_id ends with space then the _agent() string is
-appended to it.
-
-The user agent string should be one or more simple product identifiers
-with an optional version number separated by the "/" character.
-Examples are:
-
- $ua->agent('Checkbot/0.4 ' . $ua->_agent);
- $ua->agent('Checkbot/0.4 '); # same as above
- $ua->agent('Mozilla/5.0');
- $ua->agent(""); # don't identify
-
-=item $ua->_agent
-
-Returns the default agent identifier. This is a string of the form
-"libwww-perl/#.###", where "#.###" is substituted with the version number
-of this library.
-
-=item $ua->from
-
-=item $ua->from( $email_address )
-
-Get/set the e-mail address for the human user who controls
-the requesting user agent. The address should be machine-usable, as
-defined in RFC 822. The C<from> value is send as the "From" header in
-the requests. Example:
-
- $ua->from('gaas@cpan.org');
-
-The default is to not send a "From" header. See the default_headers()
-method for the more general interface that allow any header to be defaulted.
-
-=item $ua->cookie_jar
-
-=item $ua->cookie_jar( $cookie_jar_obj )
-
-Get/set the cookie jar object to use. The only requirement is that
-the cookie jar object must implement the extract_cookies($response) and
-add_cookie_header($request) methods. These methods will then be
-invoked by the user agent as requests are sent and responses are
-received. Normally this will be a C<HTTP::Cookies> object or some
-subclass.
-
-The default is to have no cookie_jar, i.e. never automatically add
-"Cookie" headers to the requests.
-
-Shortcut: If a reference to a plain hash is passed in as the
-$cookie_jar_object, then it is replaced with an instance of
-C<HTTP::Cookies> that is initialized based on the hash. This form also
-automatically loads the C<HTTP::Cookies> module. It means that:
-
- $ua->cookie_jar({ file => "$ENV{HOME}/.cookies.txt" });
-
-is really just a shortcut for:
-
- require HTTP::Cookies;
- $ua->cookie_jar(HTTP::Cookies->new(file => "$ENV{HOME}/.cookies.txt"));
-
-=item $ua->default_headers
-
-=item $ua->default_headers( $headers_obj )
-
-Get/set the headers object that will provide default header values for
-any requests sent. By default this will be an empty C<HTTP::Headers>
-object.
-
-=item $ua->default_header( $field )
-
-=item $ua->default_header( $field => $value )
-
-This is just a short-cut for $ua->default_headers->header( $field =>
-$value ). Example:
-
- $ua->default_header('Accept-Encoding' => scalar HTTP::Message::decodable());
- $ua->default_header('Accept-Language' => "no, en");
-
-=item $ua->conn_cache
-
-=item $ua->conn_cache( $cache_obj )
-
-Get/set the C<LWP::ConnCache> object to use. See L<LWP::ConnCache>
-for details.
-
-=item $ua->credentials( $netloc, $realm )
-
-=item $ua->credentials( $netloc, $realm, $uname, $pass )
-
-Get/set the user name and password to be used for a realm.
-
-The $netloc is a string of the form "<host>:<port>". The username and
-password will only be passed to this server. Example:
-
- $ua->credentials("www.example.com:80", "Some Realm", "foo", "secret");
-
-=item $ua->local_address
-
-=item $ua->local_address( $address )
-
-Get/set the local interface to bind to for network connections. The interface
-can be specified as a hostname or an IP address. This value is passed as the
-C<LocalAddr> argument to L<IO::Socket::INET>.
-
-=item $ua->max_size
-
-=item $ua->max_size( $bytes )
-
-Get/set the size limit for response content. The default is C<undef>,
-which means that there is no limit. If the returned response content
-is only partial, because the size limit was exceeded, then a
-"Client-Aborted" header will be added to the response. The content
-might end up longer than C<max_size> as we abort once appending a
-chunk of data makes the length exceed the limit. The "Content-Length"
-header, if present, will indicate the length of the full content and
-will normally not be the same as C<< length($res->content) >>.
-
-=item $ua->max_redirect
-
-=item $ua->max_redirect( $n )
-
-This reads or sets the object's limit of how many times it will obey
-redirection responses in a given request cycle.
-
-By default, the value is 7. This means that if you call request()
-method and the response is a redirect elsewhere which is in turn a
-redirect, and so on seven times, then LWP gives up after that seventh
-request.
-
-=item $ua->parse_head
-
-=item $ua->parse_head( $boolean )
-
-Get/set a value indicating whether we should initialize response
-headers from the E<lt>head> section of HTML documents. The default is
-TRUE. Do not turn this off, unless you know what you are doing.
-
-=item $ua->protocols_allowed
-
-=item $ua->protocols_allowed( \@protocols )
-
-This reads (or sets) this user agent's list of protocols that the
-request methods will exclusively allow. The protocol names are case
-insensitive.
-
-For example: C<$ua-E<gt>protocols_allowed( [ 'http', 'https'] );>
-means that this user agent will I<allow only> those protocols,
-and attempts to use this user agent to access URLs with any other
-schemes (like "ftp://...") will result in a 500 error.
-
-To delete the list, call: C<$ua-E<gt>protocols_allowed(undef)>
-
-By default, an object has neither a C<protocols_allowed> list, nor a
-C<protocols_forbidden> list.
-
-Note that having a C<protocols_allowed> list causes any
-C<protocols_forbidden> list to be ignored.
-
-=item $ua->protocols_forbidden
-
-=item $ua->protocols_forbidden( \@protocols )
-
-This reads (or sets) this user agent's list of protocols that the
-request method will I<not> allow. The protocol names are case
-insensitive.
-
-For example: C<$ua-E<gt>protocols_forbidden( [ 'file', 'mailto'] );>
-means that this user agent will I<not> allow those protocols, and
-attempts to use this user agent to access URLs with those schemes
-will result in a 500 error.
-
-To delete the list, call: C<$ua-E<gt>protocols_forbidden(undef)>
-
-=item $ua->requests_redirectable
-
-=item $ua->requests_redirectable( \@requests )
-
-This reads or sets the object's list of request names that
-C<$ua-E<gt>redirect_ok(...)> will allow redirection for. By
-default, this is C<['GET', 'HEAD']>, as per RFC 2616. To
-change to include 'POST', consider:
-
- push @{ $ua->requests_redirectable }, 'POST';
-
-=item $ua->show_progress
-
-=item $ua->show_progress( $boolean )
-
-Get/set a value indicating whether a progress bar should be displayed
-on the terminal as requests are processed. The default is FALSE.
-
-=item $ua->timeout
-
-=item $ua->timeout( $secs )
-
-Get/set the timeout value in seconds. The default timeout() value is
-180 seconds, i.e. 3 minutes.
-
-The requests is aborted if no activity on the connection to the server
-is observed for C<timeout> seconds. This means that the time it takes
-for the complete transaction and the request() method to actually
-return might be longer.
-
-=item $ua->ssl_opts
-
-=item $ua->ssl_opts( $key )
-
-=item $ua->ssl_opts( $key => $value )
-
-Get/set the options for SSL connections. Without argument return the list
-of options keys currently set. With a single argument return the current
-value for the given option. With 2 arguments set the option value and return
-the old. Setting an option to the value C<undef> removes this option.
-
-The options that LWP relates to are:
-
-=over
-
-=item C<verify_hostname> => $bool
-
-When TRUE LWP will for secure protocol schemes ensure it connects to servers
-that have a valid certificate matching the expected hostname. If FALSE no
-checks are made and you can't be sure that you communicate with the expected peer.
-The no checks behaviour was the default for libwww-perl-5.837 and earlier releases.
-
-This option is initialized from the L<PERL_LWP_SSL_VERIFY_HOSTNAME> environment
-variable. If this environment variable isn't set; then C<verify_hostname>
-defaults to 1.
-
-=item C<SSL_ca_file> => $path
-
-The path to a file containing Certificate Authority certificates.
-A default setting for this option is provided by checking the environment
-variables C<PERL_LWP_SSL_CA_FILE> and C<HTTPS_CA_FILE> in order.
-
-=item C<SSL_ca_path> => $path
-
-The path to a directory containing files containing Certificate Authority
-certificates.
-A default setting for this option is provided by checking the environment
-variables C<PERL_LWP_SSL_CA_PATH> and C<HTTPS_CA_DIR> in order.
-
-=back
-
-Other options can be set and are processed directly by the SSL Socket implementation
-in use. See L<IO::Socket::SSL> or L<Net::SSL> for details.
-
-The libwww-perl core no longer bundles protocol plugins for SSL. You will need
-to install L<LWP::Protocol::https> separately to enable support for processing
-https-URLs.
-
-=back
-
-=head2 Proxy attributes
-
-The following methods set up when requests should be passed via a
-proxy server.
-
-=over
-
-=item $ua->proxy(\@schemes, $proxy_url)
-
-=item $ua->proxy($scheme, $proxy_url)
-
-Set/retrieve proxy URL for a scheme:
-
- $ua->proxy(['http', 'ftp'], 'http://proxy.sn.no:8001/');
- $ua->proxy('gopher', 'http://proxy.sn.no:8001/');
-
-The first form specifies that the URL is to be used for proxying of
-access methods listed in the list in the first method argument,
-i.e. 'http' and 'ftp'.
-
-The second form shows a shorthand form for specifying
-proxy URL for a single access scheme.
-
-=item $ua->no_proxy( $domain, ... )
-
-Do not proxy requests to the given domains. Calling no_proxy without
-any domains clears the list of domains. Eg:
-
- $ua->no_proxy('localhost', 'example.com');
-
-=item $ua->env_proxy
-
-Load proxy settings from *_proxy environment variables. You might
-specify proxies like this (sh-syntax):
-
- gopher_proxy=http://proxy.my.place/
- wais_proxy=http://proxy.my.place/
- no_proxy="localhost,example.com"
- export gopher_proxy wais_proxy no_proxy
-
-csh or tcsh users should use the C<setenv> command to define these
-environment variables.
-
-On systems with case insensitive environment variables there exists a
-name clash between the CGI environment variables and the C<HTTP_PROXY>
-environment variable normally picked up by env_proxy(). Because of
-this C<HTTP_PROXY> is not honored for CGI scripts. The
-C<CGI_HTTP_PROXY> environment variable can be used instead.
-
-=back
-
-=head2 Handlers
-
-Handlers are code that injected at various phases during the
-processing of requests. The following methods are provided to manage
-the active handlers:
-
-=over
-
-=item $ua->add_handler( $phase => \&cb, %matchspec )
-
-Add handler to be invoked in the given processing phase. For how to
-specify %matchspec see L<HTTP::Config/"Matching">.
-
-The possible values $phase and the corresponding callback signatures are:
-
-=over
-
-=item request_preprepare => sub { my($request, $ua, $h) = @_; ... }
-
-The handler is called before the C<request_prepare> and other standard
-initialization of the request. This can be used to set up headers
-and attributes that the C<request_prepare> handler depends on. Proxy
-initialization should take place here; but in general don't register
-handlers for this phase.
-
-=item request_prepare => sub { my($request, $ua, $h) = @_; ... }
-
-The handler is called before the request is sent and can modify the
-request any way it see fit. This can for instance be used to add
-certain headers to specific requests.
-
-The method can assign a new request object to $_[0] to replace the
-request that is sent fully.
-
-The return value from the callback is ignored. If an exception is
-raised it will abort the request and make the request method return a
-"400 Bad request" response.
-
-=item request_send => sub { my($request, $ua, $h) = @_; ... }
-
-This handler gets a chance of handling requests before they're sent to the
-protocol handlers. It should return an HTTP::Response object if it
-wishes to terminate the processing; otherwise it should return nothing.
-
-The C<response_header> and C<response_data> handlers will not be
-invoked for this response, but the C<response_done> will be.
-
-=item response_header => sub { my($response, $ua, $h) = @_; ... }
-
-This handler is called right after the response headers have been
-received, but before any content data. The handler might set up
-handlers for data and might croak to abort the request.
-
-The handler might set the $response->{default_add_content} value to
-control if any received data should be added to the response object
-directly. This will initially be false if the $ua->request() method
-was called with a $content_file or $content_cb argument; otherwise true.
-
-=item response_data => sub { my($response, $ua, $h, $data) = @_; ... }
-
-This handler is called for each chunk of data received for the
-response. The handler might croak to abort the request.
-
-This handler needs to return a TRUE value to be called again for
-subsequent chunks for the same request.
-
-=item response_done => sub { my($response, $ua, $h) = @_; ... }
-
-The handler is called after the response has been fully received, but
-before any redirect handling is attempted. The handler can be used to
-extract information or modify the response.
-
-=item response_redirect => sub { my($response, $ua, $h) = @_; ... }
-
-The handler is called in $ua->request after C<response_done>. If the
-handler returns an HTTP::Request object we'll start over with processing
-this request instead.
-
-=back
-
-=item $ua->remove_handler( undef, %matchspec )
-
-=item $ua->remove_handler( $phase, %matchspec )
-
-Remove handlers that match the given %matchspec. If $phase is not
-provided remove handlers from all phases.
-
-Be careful as calling this function with %matchspec that is not
-specific enough can remove handlers not owned by you. It's probably
-better to use the set_my_handler() method instead.
-
-The removed handlers are returned.
-
-=item $ua->set_my_handler( $phase, $cb, %matchspec )
-
-Set handlers private to the executing subroutine. Works by defaulting
-an C<owner> field to the %matchspec that holds the name of the called
-subroutine. You might pass an explicit C<owner> to override this.
-
-If $cb is passed as C<undef>, remove the handler.
-
-=item $ua->get_my_handler( $phase, %matchspec )
-
-=item $ua->get_my_handler( $phase, %matchspec, $init )
-
-Will retrieve the matching handler as hash ref.
-
-If C<$init> is passed as a TRUE value, create and add the
-handler if it's not found. If $init is a subroutine reference, then
-it's called with the created handler hash as argument. This sub might
-populate the hash with extra fields; especially the callback. If
-$init is a hash reference, merge the hashes.
-
-=item $ua->handlers( $phase, $request )
-
-=item $ua->handlers( $phase, $response )
-
-Returns the handlers that apply to the given request or response at
-the given processing phase.
-
-=back
-
-=head1 REQUEST METHODS
-
-The methods described in this section are used to dispatch requests
-via the user agent. The following request methods are provided:
-
-=over
-
-=item $ua->get( $url )
-
-=item $ua->get( $url , $field_name => $value, ... )
-
-This method will dispatch a C<GET> request on the given $url. Further
-arguments can be given to initialize the headers of the request. These
-are given as separate name/value pairs. The return value is a
-response object. See L<HTTP::Response> for a description of the
-interface it provides.
-
-There will still be a response object returned when LWP can't connect to the
-server specified in the URL or when other failures in protocol handlers occur.
-These internal responses use the standard HTTP status codes, so the responses
-can't be differentiated by testing the response status code alone. Error
-responses that LWP generates internally will have the "Client-Warning" header
-set to the value "Internal response". If you need to differentiate these
-internal responses from responses that a remote server actually generates, you
-need to test this header value.
-
-Fields names that start with ":" are special. These will not
-initialize headers of the request but will determine how the response
-content is treated. The following special field names are recognized:
-
- :content_file => $filename
- :content_cb => \&callback
- :read_size_hint => $bytes
-
-If a $filename is provided with the C<:content_file> option, then the
-response content will be saved here instead of in the response
-object. If a callback is provided with the C<:content_cb> option then
-this function will be called for each chunk of the response content as
-it is received from the server. If neither of these options are
-given, then the response content will accumulate in the response
-object itself. This might not be suitable for very large response
-bodies. Only one of C<:content_file> or C<:content_cb> can be
-specified. The content of unsuccessful responses will always
-accumulate in the response object itself, regardless of the
-C<:content_file> or C<:content_cb> options passed in.
-
-The C<:read_size_hint> option is passed to the protocol module which
-will try to read data from the server in chunks of this size. A
-smaller value for the C<:read_size_hint> will result in a higher
-number of callback invocations.
-
-The callback function is called with 3 arguments: a chunk of data, a
-reference to the response object, and a reference to the protocol
-object. The callback can abort the request by invoking die(). The
-exception message will show up as the "X-Died" header field in the
-response returned by the get() function.
-
-=item $ua->head( $url )
-
-=item $ua->head( $url , $field_name => $value, ... )
-
-This method will dispatch a C<HEAD> request on the given $url.
-Otherwise it works like the get() method described above.
-
-=item $ua->post( $url, \%form )
-
-=item $ua->post( $url, \@form )
-
-=item $ua->post( $url, \%form, $field_name => $value, ... )
-
-=item $ua->post( $url, $field_name => $value,... Content => \%form )
-
-=item $ua->post( $url, $field_name => $value,... Content => \@form )
-
-=item $ua->post( $url, $field_name => $value,... Content => $content )
-
-This method will dispatch a C<POST> request on the given $url, with
-%form or @form providing the key/value pairs for the fill-in form
-content. Additional headers and content options are the same as for
-the get() method.
-
-This method will use the POST() function from C<HTTP::Request::Common>
-to build the request. See L<HTTP::Request::Common> for a details on
-how to pass form content and other advanced features.
-
-=item $ua->put( $url, \%form )
-
-=item $ua->put( $url, \@form )
-
-=item $ua->put( $url, \%form, $field_name => $value, ... )
-
-=item $ua->put( $url, $field_name => $value,... Content => \%form )
-
-=item $ua->put( $url, $field_name => $value,... Content => \@form )
-
-=item $ua->put( $url, $field_name => $value,... Content => $content )
-
-This method will dispatch a C<PUT> request on the given $url, with
-%form or @form providing the key/value pairs for the fill-in form
-content. Additional headers and content options are the same as for
-the get() method.
-
-This method will use the PUT() function from C<HTTP::Request::Common>
-to build the request. See L<HTTP::Request::Common> for a details on
-how to pass form content and other advanced features.
-
-=item $ua->delete( $url )
-
-=item $ua->delete( $url, $field_name => $value, ... )
-
-This method will dispatch a C<DELETE> request on the given $url. Additional
-headers and content options are the same as for the get() method.
-
-This method will use the DELETE() function from C<HTTP::Request::Common>
-to build the request. See L<HTTP::Request::Common> for a details on
-how to pass form content and other advanced features.
-
-=item $ua->mirror( $url, $filename )
-
-This method will get the document identified by $url and store it in
-file called $filename. If the file already exists, then the request
-will contain an "If-Modified-Since" header matching the modification
-time of the file. If the document on the server has not changed since
-this time, then nothing happens. If the document has been updated, it
-will be downloaded again. The modification time of the file will be
-forced to match that of the server.
-
-The return value is the response object.
-
-=item $ua->request( $request )
-
-=item $ua->request( $request, $content_file )
-
-=item $ua->request( $request, $content_cb )
-
-=item $ua->request( $request, $content_cb, $read_size_hint )
-
-This method will dispatch the given $request object. Normally this
-will be an instance of the C<HTTP::Request> class, but any object with
-a similar interface will do. The return value is a response object.
-See L<HTTP::Request> and L<HTTP::Response> for a description of the
-interface provided by these classes.
-
-The request() method will process redirects and authentication
-responses transparently. This means that it may actually send several
-simple requests via the simple_request() method described below.
-
-The request methods described above; get(), head(), post() and
-mirror(), will all dispatch the request they build via this method.
-They are convenience methods that simply hides the creation of the
-request object for you.
-
-The $content_file, $content_cb and $read_size_hint all correspond to
-options described with the get() method above.
-
-You are allowed to use a CODE reference as C<content> in the request
-object passed in. The C<content> function should return the content
-when called. The content can be returned in chunks. The content
-function will be invoked repeatedly until it return an empty string to
-signal that there is no more content.
-
-=item $ua->simple_request( $request )
-
-=item $ua->simple_request( $request, $content_file )
-
-=item $ua->simple_request( $request, $content_cb )
-
-=item $ua->simple_request( $request, $content_cb, $read_size_hint )
-
-This method dispatches a single request and returns the response
-received. Arguments are the same as for request() described above.
-
-The difference from request() is that simple_request() will not try to
-handle redirects or authentication responses. The request() method
-will in fact invoke this method for each simple request it sends.
-
-=item $ua->is_online
-
-Tries to determine if you have access to the Internet. Returns
-TRUE if the built-in heuristics determine that the user agent is
-able to access the Internet (over HTTP). See also L<LWP::Online>.
-
-=item $ua->is_protocol_supported( $scheme )
-
-You can use this method to test whether this user agent object supports the
-specified C<scheme>. (The C<scheme> might be a string (like 'http' or
-'ftp') or it might be an URI object reference.)
-
-Whether a scheme is supported, is determined by the user agent's
-C<protocols_allowed> or C<protocols_forbidden> lists (if any), and by
-the capabilities of LWP. I.e., this will return TRUE only if LWP
-supports this protocol I<and> it's permitted for this particular
-object.
-
-=back
-
-=head2 Callback methods
-
-The following methods will be invoked as requests are processed. These
-methods are documented here because subclasses of C<LWP::UserAgent>
-might want to override their behaviour.
-
-=over
-
-=item $ua->prepare_request( $request )
-
-This method is invoked by simple_request(). Its task is to modify the
-given $request object by setting up various headers based on the
-attributes of the user agent. The return value should normally be the
-$request object passed in. If a different request object is returned
-it will be the one actually processed.
-
-The headers affected by the base implementation are; "User-Agent",
-"From", "Range" and "Cookie".
-
-=item $ua->redirect_ok( $prospective_request, $response )
-
-This method is called by request() before it tries to follow a
-redirection to the request in $response. This should return a TRUE
-value if this redirection is permissible. The $prospective_request
-will be the request to be sent if this method returns TRUE.
-
-The base implementation will return FALSE unless the method
-is in the object's C<requests_redirectable> list,
-FALSE if the proposed redirection is to a "file://..."
-URL, and TRUE otherwise.
-
-=item $ua->get_basic_credentials( $realm, $uri, $isproxy )
-
-This is called by request() to retrieve credentials for documents
-protected by Basic or Digest Authentication. The arguments passed in
-is the $realm provided by the server, the $uri requested and a boolean
-flag to indicate if this is authentication against a proxy server.
-
-The method should return a username and password. It should return an
-empty list to abort the authentication resolution attempt. Subclasses
-can override this method to prompt the user for the information. An
-example of this can be found in C<lwp-request> program distributed
-with this library.
-
-The base implementation simply checks a set of pre-stored member
-variables, set up with the credentials() method.
-
-=item $ua->progress( $status, $request_or_response )
-
-This is called frequently as the response is received regardless of
-how the content is processed. The method is called with $status
-"begin" at the start of processing the request and with $state "end"
-before the request method returns. In between these $status will be
-the fraction of the response currently received or the string "tick"
-if the fraction can't be calculated.
-
-When $status is "begin" the second argument is the request object,
-otherwise it is the response object.
-
-=back
-
-=head1 SEE ALSO
-
-See L<LWP> for a complete overview of libwww-perl5. See L<lwpcook>
-and the scripts F<lwp-request> and F<lwp-download> for examples of
-usage.
-
-See L<HTTP::Request> and L<HTTP::Response> for a description of the
-message objects dispatched and received. See L<HTTP::Request::Common>
-and L<HTML::Form> for other ways to build request objects.
-
-See L<WWW::Mechanize> and L<WWW::Search> for examples of more
-specialized user agents based on C<LWP::UserAgent>.
-
-=head1 COPYRIGHT
-
-Copyright 1995-2009 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/LWP/media.types b/Master/tlpkg/tlperl/lib/LWP/media.types
deleted file mode 100644
index 6a90929c0d2..00000000000
--- a/Master/tlpkg/tlperl/lib/LWP/media.types
+++ /dev/null
@@ -1,1479 +0,0 @@
-# This file maps Internet media types to unique file extension(s).
-# Although created for httpd, this file is used by many software systems
-# and has been placed in the public domain for unlimited redisribution.
-#
-# The table below contains both registered and (common) unregistered types.
-# A type that has no unique extension can be ignored -- they are listed
-# here to guide configurations toward known types and to make it easier to
-# identify "new" types. File extensions are also commonly used to indicate
-# content languages and encodings, so choose them carefully.
-#
-# Internet media types should be registered as described in RFC 4288.
-# The registry is at <http://www.iana.org/assignments/media-types/>.
-#
-# MIME type (lowercased) Extensions
-# ============================================ ==========
-# application/1d-interleaved-parityfec
-# application/3gpp-ims+xml
-# application/activemessage
-application/andrew-inset ez
-# application/applefile
-application/applixware aw
-application/atom+xml atom
-application/atomcat+xml atomcat
-# application/atomicmail
-application/atomsvc+xml atomsvc
-# application/auth-policy+xml
-# application/batch-smtp
-# application/beep+xml
-# application/cals-1840
-application/ccxml+xml ccxml
-application/cdmi-capability cdmia
-application/cdmi-container cdmic
-application/cdmi-domain cdmid
-application/cdmi-object cdmio
-application/cdmi-queue cdmiq
-# application/cea-2018+xml
-# application/cellml+xml
-# application/cfw
-# application/cnrp+xml
-# application/commonground
-# application/conference-info+xml
-# application/cpl+xml
-# application/csta+xml
-# application/cstadata+xml
-application/cu-seeme cu
-# application/cybercash
-application/davmount+xml davmount
-# application/dca-rft
-# application/dec-dx
-# application/dialog-info+xml
-# application/dicom
-# application/dns
-# application/dskpp+xml
-application/dssc+der dssc
-application/dssc+xml xdssc
-# application/dvcs
-application/ecmascript ecma
-# application/edi-consent
-# application/edi-x12
-# application/edifact
-application/emma+xml emma
-# application/epp+xml
-application/epub+zip epub
-# application/eshop
-# application/example
-application/exi exi
-# application/fastinfoset
-# application/fastsoap
-# application/fits
-application/font-tdpfr pfr
-# application/framework-attributes+xml
-# application/h224
-# application/held+xml
-# application/http
-application/hyperstudio stk
-# application/ibe-key-request+xml
-# application/ibe-pkg-reply+xml
-# application/ibe-pp-data
-# application/iges
-# application/im-iscomposing+xml
-# application/index
-# application/index.cmd
-# application/index.obj
-# application/index.response
-# application/index.vnd
-# application/iotp
-application/ipfix ipfix
-# application/ipp
-# application/isup
-application/java-archive jar
-application/java-serialized-object ser
-application/java-vm class
-application/javascript js
-application/json json
-# application/kpml-request+xml
-# application/kpml-response+xml
-application/lost+xml lostxml
-application/mac-binhex40 hqx
-application/mac-compactpro cpt
-# application/macwriteii
-application/mads+xml mads
-application/marc mrc
-application/marcxml+xml mrcx
-application/mathematica ma nb mb
-# application/mathml-content+xml
-# application/mathml-presentation+xml
-application/mathml+xml mathml
-# application/mbms-associated-procedure-description+xml
-# application/mbms-deregister+xml
-# application/mbms-envelope+xml
-# application/mbms-msk+xml
-# application/mbms-msk-response+xml
-# application/mbms-protection-description+xml
-# application/mbms-reception-report+xml
-# application/mbms-register+xml
-# application/mbms-register-response+xml
-# application/mbms-user-service-description+xml
-application/mbox mbox
-# application/media_control+xml
-application/mediaservercontrol+xml mscml
-application/metalink4+xml meta4
-application/mets+xml mets
-# application/mikey
-application/mods+xml mods
-# application/moss-keys
-# application/moss-signature
-# application/mosskey-data
-# application/mosskey-request
-application/mp21 m21 mp21
-application/mp4 mp4s
-# application/mpeg4-generic
-# application/mpeg4-iod
-# application/mpeg4-iod-xmt
-# application/msc-ivr+xml
-# application/msc-mixer+xml
-application/msword doc dot
-application/mxf mxf
-# application/nasdata
-# application/news-checkgroups
-# application/news-groupinfo
-# application/news-transmission
-# application/nss
-# application/ocsp-request
-# application/ocsp-response
-application/octet-stream bin dms lha lrf lzh so iso dmg dist distz pkg bpk dump elc deploy
-application/oda oda
-application/oebps-package+xml opf
-application/ogg ogx
-application/onenote onetoc onetoc2 onetmp onepkg
-# application/parityfec
-application/patch-ops-error+xml xer
-application/pdf pdf
-application/pgp-encrypted pgp
-# application/pgp-keys
-application/pgp-signature asc sig
-application/pics-rules prf
-# application/pidf+xml
-# application/pidf-diff+xml
-application/pkcs10 p10
-application/pkcs7-mime p7m p7c
-application/pkcs7-signature p7s
-application/pkcs8 p8
-application/pkix-attr-cert ac
-application/pkix-cert cer
-application/pkix-crl crl
-application/pkix-pkipath pkipath
-application/pkixcmp pki
-application/pls+xml pls
-# application/poc-settings+xml
-application/postscript ai eps ps
-# application/prs.alvestrand.titrax-sheet
-application/prs.cww cww
-# application/prs.nprend
-# application/prs.plucker
-# application/prs.rdf-xml-crypt
-# application/prs.xsf+xml
-application/pskc+xml pskcxml
-# application/qsig
-application/rdf+xml rdf
-application/reginfo+xml rif
-application/relax-ng-compact-syntax rnc
-# application/remote-printing
-application/resource-lists+xml rl
-application/resource-lists-diff+xml rld
-# application/riscos
-# application/rlmi+xml
-application/rls-services+xml rs
-application/rsd+xml rsd
-application/rss+xml rss
-application/rtf rtf
-# application/rtx
-# application/samlassertion+xml
-# application/samlmetadata+xml
-application/sbml+xml sbml
-application/scvp-cv-request scq
-application/scvp-cv-response scs
-application/scvp-vp-request spq
-application/scvp-vp-response spp
-application/sdp sdp
-# application/set-payment
-application/set-payment-initiation setpay
-# application/set-registration
-application/set-registration-initiation setreg
-# application/sgml
-# application/sgml-open-catalog
-application/shf+xml shf
-# application/sieve
-# application/simple-filter+xml
-# application/simple-message-summary
-# application/simplesymbolcontainer
-# application/slate
-# application/smil
-application/smil+xml smi smil
-# application/soap+fastinfoset
-# application/soap+xml
-application/sparql-query rq
-application/sparql-results+xml srx
-# application/spirits-event+xml
-application/srgs gram
-application/srgs+xml grxml
-application/sru+xml sru
-application/ssml+xml ssml
-# application/tamp-apex-update
-# application/tamp-apex-update-confirm
-# application/tamp-community-update
-# application/tamp-community-update-confirm
-# application/tamp-error
-# application/tamp-sequence-adjust
-# application/tamp-sequence-adjust-confirm
-# application/tamp-status-query
-# application/tamp-status-response
-# application/tamp-update
-# application/tamp-update-confirm
-application/tei+xml tei teicorpus
-application/thraud+xml tfi
-# application/timestamp-query
-# application/timestamp-reply
-application/timestamped-data tsd
-# application/tve-trigger
-# application/ulpfec
-# application/vemmi
-# application/vividence.scriptfile
-# application/vnd.3gpp.bsf+xml
-application/vnd.3gpp.pic-bw-large plb
-application/vnd.3gpp.pic-bw-small psb
-application/vnd.3gpp.pic-bw-var pvb
-# application/vnd.3gpp.sms
-# application/vnd.3gpp2.bcmcsinfo+xml
-# application/vnd.3gpp2.sms
-application/vnd.3gpp2.tcap tcap
-application/vnd.3m.post-it-notes pwn
-application/vnd.accpac.simply.aso aso
-application/vnd.accpac.simply.imp imp
-application/vnd.acucobol acu
-application/vnd.acucorp atc acutc
-application/vnd.adobe.air-application-installer-package+zip air
-application/vnd.adobe.fxp fxp fxpl
-# application/vnd.adobe.partial-upload
-application/vnd.adobe.xdp+xml xdp
-application/vnd.adobe.xfdf xfdf
-# application/vnd.aether.imp
-# application/vnd.ah-barcode
-application/vnd.ahead.space ahead
-application/vnd.airzip.filesecure.azf azf
-application/vnd.airzip.filesecure.azs azs
-application/vnd.amazon.ebook azw
-application/vnd.americandynamics.acc acc
-application/vnd.amiga.ami ami
-# application/vnd.amundsen.maze+xml
-application/vnd.android.package-archive apk
-application/vnd.anser-web-certificate-issue-initiation cii
-application/vnd.anser-web-funds-transfer-initiation fti
-application/vnd.antix.game-component atx
-application/vnd.apple.installer+xml mpkg
-application/vnd.apple.mpegurl m3u8
-# application/vnd.arastra.swi
-application/vnd.aristanetworks.swi swi
-application/vnd.audiograph aep
-# application/vnd.autopackage
-# application/vnd.avistar+xml
-application/vnd.blueice.multipass mpm
-# application/vnd.bluetooth.ep.oob
-application/vnd.bmi bmi
-application/vnd.businessobjects rep
-# application/vnd.cab-jscript
-# application/vnd.canon-cpdl
-# application/vnd.canon-lips
-# application/vnd.cendio.thinlinc.clientconf
-application/vnd.chemdraw+xml cdxml
-application/vnd.chipnuts.karaoke-mmd mmd
-application/vnd.cinderella cdy
-# application/vnd.cirpack.isdn-ext
-application/vnd.claymore cla
-application/vnd.cloanto.rp9 rp9
-application/vnd.clonk.c4group c4g c4d c4f c4p c4u
-application/vnd.cluetrust.cartomobile-config c11amc
-application/vnd.cluetrust.cartomobile-config-pkg c11amz
-# application/vnd.commerce-battelle
-application/vnd.commonspace csp
-application/vnd.contact.cmsg cdbcmsg
-application/vnd.cosmocaller cmc
-application/vnd.crick.clicker clkx
-application/vnd.crick.clicker.keyboard clkk
-application/vnd.crick.clicker.palette clkp
-application/vnd.crick.clicker.template clkt
-application/vnd.crick.clicker.wordbank clkw
-application/vnd.criticaltools.wbs+xml wbs
-application/vnd.ctc-posml pml
-# application/vnd.ctct.ws+xml
-# application/vnd.cups-pdf
-# application/vnd.cups-postscript
-application/vnd.cups-ppd ppd
-# application/vnd.cups-raster
-# application/vnd.cups-raw
-application/vnd.curl.car car
-application/vnd.curl.pcurl pcurl
-# application/vnd.cybank
-application/vnd.data-vision.rdz rdz
-application/vnd.dece.data uvf uvvf uvd uvvd
-application/vnd.dece.ttml+xml uvt uvvt
-application/vnd.dece.unspecified uvx uvvx
-application/vnd.denovo.fcselayout-link fe_launch
-# application/vnd.dir-bi.plate-dl-nosuffix
-application/vnd.dna dna
-application/vnd.dolby.mlp mlp
-# application/vnd.dolby.mobile.1
-# application/vnd.dolby.mobile.2
-application/vnd.dpgraph dpg
-application/vnd.dreamfactory dfac
-application/vnd.dvb.ait ait
-# application/vnd.dvb.dvbj
-# application/vnd.dvb.esgcontainer
-# application/vnd.dvb.ipdcdftnotifaccess
-# application/vnd.dvb.ipdcesgaccess
-# application/vnd.dvb.ipdcesgaccess2
-# application/vnd.dvb.ipdcesgpdd
-# application/vnd.dvb.ipdcroaming
-# application/vnd.dvb.iptv.alfec-base
-# application/vnd.dvb.iptv.alfec-enhancement
-# application/vnd.dvb.notif-aggregate-root+xml
-# application/vnd.dvb.notif-container+xml
-# application/vnd.dvb.notif-generic+xml
-# application/vnd.dvb.notif-ia-msglist+xml
-# application/vnd.dvb.notif-ia-registration-request+xml
-# application/vnd.dvb.notif-ia-registration-response+xml
-# application/vnd.dvb.notif-init+xml
-# application/vnd.dvb.pfr
-application/vnd.dvb.service svc
-# application/vnd.dxr
-application/vnd.dynageo geo
-# application/vnd.easykaraoke.cdgdownload
-# application/vnd.ecdis-update
-application/vnd.ecowin.chart mag
-# application/vnd.ecowin.filerequest
-# application/vnd.ecowin.fileupdate
-# application/vnd.ecowin.series
-# application/vnd.ecowin.seriesrequest
-# application/vnd.ecowin.seriesupdate
-# application/vnd.emclient.accessrequest+xml
-application/vnd.enliven nml
-application/vnd.epson.esf esf
-application/vnd.epson.msf msf
-application/vnd.epson.quickanime qam
-application/vnd.epson.salt slt
-application/vnd.epson.ssf ssf
-# application/vnd.ericsson.quickcall
-application/vnd.eszigno3+xml es3 et3
-# application/vnd.etsi.aoc+xml
-# application/vnd.etsi.cug+xml
-# application/vnd.etsi.iptvcommand+xml
-# application/vnd.etsi.iptvdiscovery+xml
-# application/vnd.etsi.iptvprofile+xml
-# application/vnd.etsi.iptvsad-bc+xml
-# application/vnd.etsi.iptvsad-cod+xml
-# application/vnd.etsi.iptvsad-npvr+xml
-# application/vnd.etsi.iptvservice+xml
-# application/vnd.etsi.iptvsync+xml
-# application/vnd.etsi.iptvueprofile+xml
-# application/vnd.etsi.mcid+xml
-# application/vnd.etsi.overload-control-policy-dataset+xml
-# application/vnd.etsi.sci+xml
-# application/vnd.etsi.simservs+xml
-# application/vnd.etsi.tsl+xml
-# application/vnd.etsi.tsl.der
-# application/vnd.eudora.data
-application/vnd.ezpix-album ez2
-application/vnd.ezpix-package ez3
-# application/vnd.f-secure.mobile
-application/vnd.fdf fdf
-application/vnd.fdsn.mseed mseed
-application/vnd.fdsn.seed seed dataless
-# application/vnd.ffsns
-# application/vnd.fints
-application/vnd.flographit gph
-application/vnd.fluxtime.clip ftc
-# application/vnd.font-fontforge-sfd
-application/vnd.framemaker fm frame maker book
-application/vnd.frogans.fnc fnc
-application/vnd.frogans.ltf ltf
-application/vnd.fsc.weblaunch fsc
-application/vnd.fujitsu.oasys oas
-application/vnd.fujitsu.oasys2 oa2
-application/vnd.fujitsu.oasys3 oa3
-application/vnd.fujitsu.oasysgp fg5
-application/vnd.fujitsu.oasysprs bh2
-# application/vnd.fujixerox.art-ex
-# application/vnd.fujixerox.art4
-# application/vnd.fujixerox.hbpl
-application/vnd.fujixerox.ddd ddd
-application/vnd.fujixerox.docuworks xdw
-application/vnd.fujixerox.docuworks.binder xbd
-# application/vnd.fut-misnet
-application/vnd.fuzzysheet fzs
-application/vnd.genomatix.tuxedo txd
-# application/vnd.geocube+xml
-application/vnd.geogebra.file ggb
-application/vnd.geogebra.tool ggt
-application/vnd.geometry-explorer gex gre
-application/vnd.geonext gxt
-application/vnd.geoplan g2w
-application/vnd.geospace g3w
-# application/vnd.globalplatform.card-content-mgt
-# application/vnd.globalplatform.card-content-mgt-response
-application/vnd.gmx gmx
-application/vnd.google-earth.kml+xml kml
-application/vnd.google-earth.kmz kmz
-application/vnd.grafeq gqf gqs
-# application/vnd.gridmp
-application/vnd.groove-account gac
-application/vnd.groove-help ghf
-application/vnd.groove-identity-message gim
-application/vnd.groove-injector grv
-application/vnd.groove-tool-message gtm
-application/vnd.groove-tool-template tpl
-application/vnd.groove-vcard vcg
-application/vnd.hal+xml hal
-application/vnd.handheld-entertainment+xml zmm
-application/vnd.hbci hbci
-# application/vnd.hcl-bireports
-application/vnd.hhe.lesson-player les
-application/vnd.hp-hpgl hpgl
-application/vnd.hp-hpid hpid
-application/vnd.hp-hps hps
-application/vnd.hp-jlyt jlt
-application/vnd.hp-pcl pcl
-application/vnd.hp-pclxl pclxl
-# application/vnd.httphone
-application/vnd.hydrostatix.sof-data sfd-hdstx
-application/vnd.hzn-3d-crossword x3d
-# application/vnd.ibm.afplinedata
-# application/vnd.ibm.electronic-media
-application/vnd.ibm.minipay mpy
-application/vnd.ibm.modcap afp listafp list3820
-application/vnd.ibm.rights-management irm
-application/vnd.ibm.secure-container sc
-application/vnd.iccprofile icc icm
-application/vnd.igloader igl
-application/vnd.immervision-ivp ivp
-application/vnd.immervision-ivu ivu
-# application/vnd.informedcontrol.rms+xml
-# application/vnd.informix-visionary
-# application/vnd.infotech.project
-# application/vnd.infotech.project+xml
-application/vnd.insors.igm igm
-application/vnd.intercon.formnet xpw xpx
-application/vnd.intergeo i2g
-# application/vnd.intertrust.digibox
-# application/vnd.intertrust.nncp
-application/vnd.intu.qbo qbo
-application/vnd.intu.qfx qfx
-# application/vnd.iptc.g2.conceptitem+xml
-# application/vnd.iptc.g2.knowledgeitem+xml
-# application/vnd.iptc.g2.newsitem+xml
-# application/vnd.iptc.g2.packageitem+xml
-application/vnd.ipunplugged.rcprofile rcprofile
-application/vnd.irepository.package+xml irp
-application/vnd.is-xpr xpr
-application/vnd.isac.fcs fcs
-application/vnd.jam jam
-# application/vnd.japannet-directory-service
-# application/vnd.japannet-jpnstore-wakeup
-# application/vnd.japannet-payment-wakeup
-# application/vnd.japannet-registration
-# application/vnd.japannet-registration-wakeup
-# application/vnd.japannet-setstore-wakeup
-# application/vnd.japannet-verification
-# application/vnd.japannet-verification-wakeup
-application/vnd.jcp.javame.midlet-rms rms
-application/vnd.jisp jisp
-application/vnd.joost.joda-archive joda
-application/vnd.kahootz ktz ktr
-application/vnd.kde.karbon karbon
-application/vnd.kde.kchart chrt
-application/vnd.kde.kformula kfo
-application/vnd.kde.kivio flw
-application/vnd.kde.kontour kon
-application/vnd.kde.kpresenter kpr kpt
-application/vnd.kde.kspread ksp
-application/vnd.kde.kword kwd kwt
-application/vnd.kenameaapp htke
-application/vnd.kidspiration kia
-application/vnd.kinar kne knp
-application/vnd.koan skp skd skt skm
-application/vnd.kodak-descriptor sse
-application/vnd.las.las+xml lasxml
-# application/vnd.liberty-request+xml
-application/vnd.llamagraphics.life-balance.desktop lbd
-application/vnd.llamagraphics.life-balance.exchange+xml lbe
-application/vnd.lotus-1-2-3 123
-application/vnd.lotus-approach apr
-application/vnd.lotus-freelance pre
-application/vnd.lotus-notes nsf
-application/vnd.lotus-organizer org
-application/vnd.lotus-screencam scm
-application/vnd.lotus-wordpro lwp
-application/vnd.macports.portpkg portpkg
-# application/vnd.marlin.drm.actiontoken+xml
-# application/vnd.marlin.drm.conftoken+xml
-# application/vnd.marlin.drm.license+xml
-# application/vnd.marlin.drm.mdcf
-application/vnd.mcd mcd
-application/vnd.medcalcdata mc1
-application/vnd.mediastation.cdkey cdkey
-# application/vnd.meridian-slingshot
-application/vnd.mfer mwf
-application/vnd.mfmp mfm
-application/vnd.micrografx.flo flo
-application/vnd.micrografx.igx igx
-application/vnd.mif mif
-# application/vnd.minisoft-hp3000-save
-# application/vnd.mitsubishi.misty-guard.trustweb
-application/vnd.mobius.daf daf
-application/vnd.mobius.dis dis
-application/vnd.mobius.mbk mbk
-application/vnd.mobius.mqy mqy
-application/vnd.mobius.msl msl
-application/vnd.mobius.plc plc
-application/vnd.mobius.txf txf
-application/vnd.mophun.application mpn
-application/vnd.mophun.certificate mpc
-# application/vnd.motorola.flexsuite
-# application/vnd.motorola.flexsuite.adsi
-# application/vnd.motorola.flexsuite.fis
-# application/vnd.motorola.flexsuite.gotap
-# application/vnd.motorola.flexsuite.kmr
-# application/vnd.motorola.flexsuite.ttc
-# application/vnd.motorola.flexsuite.wem
-# application/vnd.motorola.iprm
-application/vnd.mozilla.xul+xml xul
-application/vnd.ms-artgalry cil
-# application/vnd.ms-asf
-application/vnd.ms-cab-compressed cab
-application/vnd.ms-excel xls xlm xla xlc xlt xlw
-application/vnd.ms-excel.addin.macroenabled.12 xlam
-application/vnd.ms-excel.sheet.binary.macroenabled.12 xlsb
-application/vnd.ms-excel.sheet.macroenabled.12 xlsm
-application/vnd.ms-excel.template.macroenabled.12 xltm
-application/vnd.ms-fontobject eot
-application/vnd.ms-htmlhelp chm
-application/vnd.ms-ims ims
-application/vnd.ms-lrm lrm
-# application/vnd.ms-office.activex+xml
-application/vnd.ms-officetheme thmx
-application/vnd.ms-pki.seccat cat
-application/vnd.ms-pki.stl stl
-# application/vnd.ms-playready.initiator+xml
-application/vnd.ms-powerpoint ppt pps pot
-application/vnd.ms-powerpoint.addin.macroenabled.12 ppam
-application/vnd.ms-powerpoint.presentation.macroenabled.12 pptm
-application/vnd.ms-powerpoint.slide.macroenabled.12 sldm
-application/vnd.ms-powerpoint.slideshow.macroenabled.12 ppsm
-application/vnd.ms-powerpoint.template.macroenabled.12 potm
-application/vnd.ms-project mpp mpt
-# application/vnd.ms-tnef
-# application/vnd.ms-wmdrm.lic-chlg-req
-# application/vnd.ms-wmdrm.lic-resp
-# application/vnd.ms-wmdrm.meter-chlg-req
-# application/vnd.ms-wmdrm.meter-resp
-application/vnd.ms-word.document.macroenabled.12 docm
-application/vnd.ms-word.template.macroenabled.12 dotm
-application/vnd.ms-works wps wks wcm wdb
-application/vnd.ms-wpl wpl
-application/vnd.ms-xpsdocument xps
-application/vnd.mseq mseq
-# application/vnd.msign
-# application/vnd.multiad.creator
-# application/vnd.multiad.creator.cif
-# application/vnd.music-niff
-application/vnd.musician mus
-application/vnd.muvee.style msty
-# application/vnd.ncd.control
-# application/vnd.ncd.reference
-# application/vnd.nervana
-# application/vnd.netfpx
-application/vnd.neurolanguage.nlu nlu
-application/vnd.noblenet-directory nnd
-application/vnd.noblenet-sealer nns
-application/vnd.noblenet-web nnw
-# application/vnd.nokia.catalogs
-# application/vnd.nokia.conml+wbxml
-# application/vnd.nokia.conml+xml
-# application/vnd.nokia.isds-radio-presets
-# application/vnd.nokia.iptv.config+xml
-# application/vnd.nokia.landmark+wbxml
-# application/vnd.nokia.landmark+xml
-# application/vnd.nokia.landmarkcollection+xml
-# application/vnd.nokia.n-gage.ac+xml
-application/vnd.nokia.n-gage.data ngdat
-application/vnd.nokia.n-gage.symbian.install n-gage
-# application/vnd.nokia.ncd
-# application/vnd.nokia.pcd+wbxml
-# application/vnd.nokia.pcd+xml
-application/vnd.nokia.radio-preset rpst
-application/vnd.nokia.radio-presets rpss
-application/vnd.novadigm.edm edm
-application/vnd.novadigm.edx edx
-application/vnd.novadigm.ext ext
-# application/vnd.ntt-local.file-transfer
-# application/vnd.ntt-local.sip-ta_remote
-# application/vnd.ntt-local.sip-ta_tcp_stream
-application/vnd.oasis.opendocument.chart odc
-application/vnd.oasis.opendocument.chart-template otc
-application/vnd.oasis.opendocument.database odb
-application/vnd.oasis.opendocument.formula odf
-application/vnd.oasis.opendocument.formula-template odft
-application/vnd.oasis.opendocument.graphics odg
-application/vnd.oasis.opendocument.graphics-template otg
-application/vnd.oasis.opendocument.image odi
-application/vnd.oasis.opendocument.image-template oti
-application/vnd.oasis.opendocument.presentation odp
-application/vnd.oasis.opendocument.presentation-template otp
-application/vnd.oasis.opendocument.spreadsheet ods
-application/vnd.oasis.opendocument.spreadsheet-template ots
-application/vnd.oasis.opendocument.text odt
-application/vnd.oasis.opendocument.text-master odm
-application/vnd.oasis.opendocument.text-template ott
-application/vnd.oasis.opendocument.text-web oth
-# application/vnd.obn
-# application/vnd.oipf.contentaccessdownload+xml
-# application/vnd.oipf.contentaccessstreaming+xml
-# application/vnd.oipf.cspg-hexbinary
-# application/vnd.oipf.dae.svg+xml
-# application/vnd.oipf.dae.xhtml+xml
-# application/vnd.oipf.mippvcontrolmessage+xml
-# application/vnd.oipf.pae.gem
-# application/vnd.oipf.spdiscovery+xml
-# application/vnd.oipf.spdlist+xml
-# application/vnd.oipf.ueprofile+xml
-# application/vnd.oipf.userprofile+xml
-application/vnd.olpc-sugar xo
-# application/vnd.oma-scws-config
-# application/vnd.oma-scws-http-request
-# application/vnd.oma-scws-http-response
-# application/vnd.oma.bcast.associated-procedure-parameter+xml
-# application/vnd.oma.bcast.drm-trigger+xml
-# application/vnd.oma.bcast.imd+xml
-# application/vnd.oma.bcast.ltkm
-# application/vnd.oma.bcast.notification+xml
-# application/vnd.oma.bcast.provisioningtrigger
-# application/vnd.oma.bcast.sgboot
-# application/vnd.oma.bcast.sgdd+xml
-# application/vnd.oma.bcast.sgdu
-# application/vnd.oma.bcast.simple-symbol-container
-# application/vnd.oma.bcast.smartcard-trigger+xml
-# application/vnd.oma.bcast.sprov+xml
-# application/vnd.oma.bcast.stkm
-# application/vnd.oma.cab-address-book+xml
-# application/vnd.oma.cab-pcc+xml
-# application/vnd.oma.dcd
-# application/vnd.oma.dcdc
-application/vnd.oma.dd2+xml dd2
-# application/vnd.oma.drm.risd+xml
-# application/vnd.oma.group-usage-list+xml
-# application/vnd.oma.poc.detailed-progress-report+xml
-# application/vnd.oma.poc.final-report+xml
-# application/vnd.oma.poc.groups+xml
-# application/vnd.oma.poc.invocation-descriptor+xml
-# application/vnd.oma.poc.optimized-progress-report+xml
-# application/vnd.oma.push
-# application/vnd.oma.scidm.messages+xml
-# application/vnd.oma.xcap-directory+xml
-# application/vnd.omads-email+xml
-# application/vnd.omads-file+xml
-# application/vnd.omads-folder+xml
-# application/vnd.omaloc-supl-init
-application/vnd.openofficeorg.extension oxt
-# application/vnd.openxmlformats-officedocument.custom-properties+xml
-# application/vnd.openxmlformats-officedocument.customxmlproperties+xml
-# application/vnd.openxmlformats-officedocument.drawing+xml
-# application/vnd.openxmlformats-officedocument.drawingml.chart+xml
-# application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml
-# application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml
-# application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml
-# application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml
-# application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml
-# application/vnd.openxmlformats-officedocument.extended-properties+xml
-# application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml
-# application/vnd.openxmlformats-officedocument.presentationml.comments+xml
-# application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml
-# application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml
-# application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml
-application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
-# application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml
-# application/vnd.openxmlformats-officedocument.presentationml.presprops+xml
-application/vnd.openxmlformats-officedocument.presentationml.slide sldx
-# application/vnd.openxmlformats-officedocument.presentationml.slide+xml
-# application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml
-# application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml
-application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
-# application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml
-# application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml
-# application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml
-# application/vnd.openxmlformats-officedocument.presentationml.tags+xml
-application/vnd.openxmlformats-officedocument.presentationml.template potx
-# application/vnd.openxmlformats-officedocument.presentationml.template.main+xml
-# application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml
-application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
-# application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml
-application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
-# application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml
-# application/vnd.openxmlformats-officedocument.theme+xml
-# application/vnd.openxmlformats-officedocument.themeoverride+xml
-# application/vnd.openxmlformats-officedocument.vmldrawing
-# application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml
-application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
-# application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml
-application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
-# application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml
-# application/vnd.openxmlformats-package.core-properties+xml
-# application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml
-# application/vnd.openxmlformats-package.relationships+xml
-# application/vnd.quobject-quoxdocument
-# application/vnd.osa.netdeploy
-application/vnd.osgeo.mapguide.package mgp
-# application/vnd.osgi.bundle
-application/vnd.osgi.dp dp
-# application/vnd.otps.ct-kip+xml
-application/vnd.palm pdb pqa oprc
-# application/vnd.paos.xml
-application/vnd.pawaafile paw
-application/vnd.pg.format str
-application/vnd.pg.osasli ei6
-# application/vnd.piaccess.application-licence
-application/vnd.picsel efif
-application/vnd.pmi.widget wg
-# application/vnd.poc.group-advertisement+xml
-application/vnd.pocketlearn plf
-application/vnd.powerbuilder6 pbd
-# application/vnd.powerbuilder6-s
-# application/vnd.powerbuilder7
-# application/vnd.powerbuilder7-s
-# application/vnd.powerbuilder75
-# application/vnd.powerbuilder75-s
-# application/vnd.preminet
-application/vnd.previewsystems.box box
-application/vnd.proteus.magazine mgz
-application/vnd.publishare-delta-tree qps
-application/vnd.pvi.ptid1 ptid
-# application/vnd.pwg-multiplexed
-# application/vnd.pwg-xhtml-print+xml
-# application/vnd.qualcomm.brew-app-res
-application/vnd.quark.quarkxpress qxd qxt qwd qwt qxl qxb
-# application/vnd.radisys.moml+xml
-# application/vnd.radisys.msml+xml
-# application/vnd.radisys.msml-audit+xml
-# application/vnd.radisys.msml-audit-conf+xml
-# application/vnd.radisys.msml-audit-conn+xml
-# application/vnd.radisys.msml-audit-dialog+xml
-# application/vnd.radisys.msml-audit-stream+xml
-# application/vnd.radisys.msml-conf+xml
-# application/vnd.radisys.msml-dialog+xml
-# application/vnd.radisys.msml-dialog-base+xml
-# application/vnd.radisys.msml-dialog-fax-detect+xml
-# application/vnd.radisys.msml-dialog-fax-sendrecv+xml
-# application/vnd.radisys.msml-dialog-group+xml
-# application/vnd.radisys.msml-dialog-speech+xml
-# application/vnd.radisys.msml-dialog-transform+xml
-# application/vnd.rainstor.data
-# application/vnd.rapid
-application/vnd.realvnc.bed bed
-application/vnd.recordare.musicxml mxl
-application/vnd.recordare.musicxml+xml musicxml
-# application/vnd.renlearn.rlprint
-application/vnd.rig.cryptonote cryptonote
-application/vnd.rim.cod cod
-application/vnd.rn-realmedia rm
-application/vnd.route66.link66+xml link66
-# application/vnd.ruckus.download
-# application/vnd.s3sms
-application/vnd.sailingtracker.track st
-# application/vnd.sbm.cid
-# application/vnd.sbm.mid2
-# application/vnd.scribus
-# application/vnd.sealed.3df
-# application/vnd.sealed.csf
-# application/vnd.sealed.doc
-# application/vnd.sealed.eml
-# application/vnd.sealed.mht
-# application/vnd.sealed.net
-# application/vnd.sealed.ppt
-# application/vnd.sealed.tiff
-# application/vnd.sealed.xls
-# application/vnd.sealedmedia.softseal.html
-# application/vnd.sealedmedia.softseal.pdf
-application/vnd.seemail see
-application/vnd.sema sema
-application/vnd.semd semd
-application/vnd.semf semf
-application/vnd.shana.informed.formdata ifm
-application/vnd.shana.informed.formtemplate itp
-application/vnd.shana.informed.interchange iif
-application/vnd.shana.informed.package ipk
-application/vnd.simtech-mindmapper twd twds
-application/vnd.smaf mmf
-# application/vnd.smart.notebook
-application/vnd.smart.teacher teacher
-# application/vnd.software602.filler.form+xml
-# application/vnd.software602.filler.form-xml-zip
-application/vnd.solent.sdkm+xml sdkm sdkd
-application/vnd.spotfire.dxp dxp
-application/vnd.spotfire.sfs sfs
-# application/vnd.sss-cod
-# application/vnd.sss-dtf
-# application/vnd.sss-ntf
-application/vnd.stardivision.calc sdc
-application/vnd.stardivision.draw sda
-application/vnd.stardivision.impress sdd
-application/vnd.stardivision.math smf
-application/vnd.stardivision.writer sdw vor
-application/vnd.stardivision.writer-global sgl
-application/vnd.stepmania.stepchart sm
-# application/vnd.street-stream
-application/vnd.sun.xml.calc sxc
-application/vnd.sun.xml.calc.template stc
-application/vnd.sun.xml.draw sxd
-application/vnd.sun.xml.draw.template std
-application/vnd.sun.xml.impress sxi
-application/vnd.sun.xml.impress.template sti
-application/vnd.sun.xml.math sxm
-application/vnd.sun.xml.writer sxw
-application/vnd.sun.xml.writer.global sxg
-application/vnd.sun.xml.writer.template stw
-# application/vnd.sun.wadl+xml
-application/vnd.sus-calendar sus susp
-application/vnd.svd svd
-# application/vnd.swiftview-ics
-application/vnd.symbian.install sis sisx
-application/vnd.syncml+xml xsm
-application/vnd.syncml.dm+wbxml bdm
-application/vnd.syncml.dm+xml xdm
-# application/vnd.syncml.dm.notification
-# application/vnd.syncml.ds.notification
-application/vnd.tao.intent-module-archive tao
-application/vnd.tmobile-livetv tmo
-application/vnd.trid.tpt tpt
-application/vnd.triscape.mxs mxs
-application/vnd.trueapp tra
-# application/vnd.truedoc
-# application/vnd.ubisoft.webplayer
-application/vnd.ufdl ufd ufdl
-application/vnd.uiq.theme utz
-application/vnd.umajin umj
-application/vnd.unity unityweb
-application/vnd.uoml+xml uoml
-# application/vnd.uplanet.alert
-# application/vnd.uplanet.alert-wbxml
-# application/vnd.uplanet.bearer-choice
-# application/vnd.uplanet.bearer-choice-wbxml
-# application/vnd.uplanet.cacheop
-# application/vnd.uplanet.cacheop-wbxml
-# application/vnd.uplanet.channel
-# application/vnd.uplanet.channel-wbxml
-# application/vnd.uplanet.list
-# application/vnd.uplanet.list-wbxml
-# application/vnd.uplanet.listcmd
-# application/vnd.uplanet.listcmd-wbxml
-# application/vnd.uplanet.signal
-application/vnd.vcx vcx
-# application/vnd.vd-study
-# application/vnd.vectorworks
-# application/vnd.verimatrix.vcas
-# application/vnd.vidsoft.vidconference
-application/vnd.visio vsd vst vss vsw
-application/vnd.visionary vis
-# application/vnd.vividence.scriptfile
-application/vnd.vsf vsf
-# application/vnd.wap.sic
-# application/vnd.wap.slc
-application/vnd.wap.wbxml wbxml
-application/vnd.wap.wmlc wmlc
-application/vnd.wap.wmlscriptc wmlsc
-application/vnd.webturbo wtb
-# application/vnd.wfa.wsc
-# application/vnd.wmc
-# application/vnd.wmf.bootstrap
-# application/vnd.wolfram.mathematica
-# application/vnd.wolfram.mathematica.package
-application/vnd.wolfram.player nbp
-application/vnd.wordperfect wpd
-application/vnd.wqd wqd
-# application/vnd.wrq-hp3000-labelled
-application/vnd.wt.stf stf
-# application/vnd.wv.csp+wbxml
-# application/vnd.wv.csp+xml
-# application/vnd.wv.ssp+xml
-application/vnd.xara xar
-application/vnd.xfdl xfdl
-# application/vnd.xfdl.webform
-# application/vnd.xmi+xml
-# application/vnd.xmpie.cpkg
-# application/vnd.xmpie.dpkg
-# application/vnd.xmpie.plan
-# application/vnd.xmpie.ppkg
-# application/vnd.xmpie.xlim
-application/vnd.yamaha.hv-dic hvd
-application/vnd.yamaha.hv-script hvs
-application/vnd.yamaha.hv-voice hvp
-application/vnd.yamaha.openscoreformat osf
-application/vnd.yamaha.openscoreformat.osfpvg+xml osfpvg
-# application/vnd.yamaha.remote-setup
-application/vnd.yamaha.smaf-audio saf
-application/vnd.yamaha.smaf-phrase spf
-# application/vnd.yamaha.tunnel-udpencap
-application/vnd.yellowriver-custom-menu cmp
-application/vnd.zul zir zirz
-application/vnd.zzazz.deck+xml zaz
-application/voicexml+xml vxml
-# application/vq-rtcpxr
-# application/watcherinfo+xml
-# application/whoispp-query
-# application/whoispp-response
-application/widget wgt
-application/winhlp hlp
-# application/wita
-# application/wordperfect5.1
-application/wsdl+xml wsdl
-application/wspolicy+xml wspolicy
-application/x-7z-compressed 7z
-application/x-abiword abw
-application/x-ace-compressed ace
-application/x-authorware-bin aab x32 u32 vox
-application/x-authorware-map aam
-application/x-authorware-seg aas
-application/x-bcpio bcpio
-application/x-bittorrent torrent
-application/x-bzip bz
-application/x-bzip2 bz2 boz
-application/x-cdlink vcd
-application/x-chat chat
-application/x-chess-pgn pgn
-# application/x-compress
-application/x-cpio cpio
-application/x-csh csh
-application/x-debian-package deb udeb
-application/x-director dir dcr dxr cst cct cxt w3d fgd swa
-application/x-doom wad
-application/x-dtbncx+xml ncx
-application/x-dtbook+xml dtb
-application/x-dtbresource+xml res
-application/x-dvi dvi
-application/x-font-bdf bdf
-# application/x-font-dos
-# application/x-font-framemaker
-application/x-font-ghostscript gsf
-# application/x-font-libgrx
-application/x-font-linux-psf psf
-application/x-font-otf otf
-application/x-font-pcf pcf
-application/x-font-snf snf
-# application/x-font-speedo
-# application/x-font-sunos-news
-application/x-font-ttf ttf ttc
-application/x-font-type1 pfa pfb pfm afm
-application/x-font-woff woff
-# application/x-font-vfont
-application/x-futuresplash spl
-application/x-gnumeric gnumeric
-application/x-gtar gtar
-# application/x-gzip
-application/x-hdf hdf
-application/x-java-jnlp-file jnlp
-application/x-latex latex
-application/x-mobipocket-ebook prc mobi
-application/x-ms-application application
-application/x-ms-wmd wmd
-application/x-ms-wmz wmz
-application/x-ms-xbap xbap
-application/x-msaccess mdb
-application/x-msbinder obd
-application/x-mscardfile crd
-application/x-msclip clp
-application/x-msdownload exe dll com bat msi
-application/x-msmediaview mvb m13 m14
-application/x-msmetafile wmf
-application/x-msmoney mny
-application/x-mspublisher pub
-application/x-msschedule scd
-application/x-msterminal trm
-application/x-mswrite wri
-application/x-netcdf nc cdf
-application/x-pkcs12 p12 pfx
-application/x-pkcs7-certificates p7b spc
-application/x-pkcs7-certreqresp p7r
-application/x-rar-compressed rar
-application/x-sh sh
-application/x-shar shar
-application/x-shockwave-flash swf
-application/x-silverlight-app xap
-application/x-stuffit sit
-application/x-stuffitx sitx
-application/x-sv4cpio sv4cpio
-application/x-sv4crc sv4crc
-application/x-tar tar
-application/x-tcl tcl
-application/x-tex tex
-application/x-tex-tfm tfm
-application/x-texinfo texinfo texi
-application/x-ustar ustar
-application/x-wais-source src
-application/x-x509-ca-cert der crt
-application/x-xfig fig
-application/x-xpinstall xpi
-# application/x400-bp
-# application/xcap-att+xml
-# application/xcap-caps+xml
-application/xcap-diff+xml xdf
-# application/xcap-el+xml
-# application/xcap-error+xml
-# application/xcap-ns+xml
-# application/xcon-conference-info-diff+xml
-# application/xcon-conference-info+xml
-application/xenc+xml xenc
-application/xhtml+xml xhtml xht
-# application/xhtml-voice+xml
-application/xml xml xsl
-application/xml-dtd dtd
-# application/xml-external-parsed-entity
-# application/xmpp+xml
-application/xop+xml xop
-application/xslt+xml xslt
-application/xspf+xml xspf
-application/xv+xml mxml xhvml xvml xvm
-application/yang yang
-application/yin+xml yin
-application/zip zip
-# audio/1d-interleaved-parityfec
-# audio/32kadpcm
-# audio/3gpp
-# audio/3gpp2
-# audio/ac3
-audio/adpcm adp
-# audio/amr
-# audio/amr-wb
-# audio/amr-wb+
-# audio/asc
-# audio/atrac-advanced-lossless
-# audio/atrac-x
-# audio/atrac3
-audio/basic au snd
-# audio/bv16
-# audio/bv32
-# audio/clearmode
-# audio/cn
-# audio/dat12
-# audio/dls
-# audio/dsr-es201108
-# audio/dsr-es202050
-# audio/dsr-es202211
-# audio/dsr-es202212
-# audio/dvi4
-# audio/eac3
-# audio/evrc
-# audio/evrc-qcp
-# audio/evrc0
-# audio/evrc1
-# audio/evrcb
-# audio/evrcb0
-# audio/evrcb1
-# audio/evrcwb
-# audio/evrcwb0
-# audio/evrcwb1
-# audio/example
-# audio/g719
-# audio/g722
-# audio/g7221
-# audio/g723
-# audio/g726-16
-# audio/g726-24
-# audio/g726-32
-# audio/g726-40
-# audio/g728
-# audio/g729
-# audio/g7291
-# audio/g729d
-# audio/g729e
-# audio/gsm
-# audio/gsm-efr
-# audio/gsm-hr-08
-# audio/ilbc
-# audio/l16
-# audio/l20
-# audio/l24
-# audio/l8
-# audio/lpc
-audio/midi mid midi kar rmi
-# audio/mobile-xmf
-audio/mp4 mp4a
-# audio/mp4a-latm
-# audio/mpa
-# audio/mpa-robust
-audio/mpeg mpga mp2 mp2a mp3 m2a m3a
-# audio/mpeg4-generic
-audio/ogg oga ogg spx
-# audio/parityfec
-# audio/pcma
-# audio/pcma-wb
-# audio/pcmu-wb
-# audio/pcmu
-# audio/prs.sid
-# audio/qcelp
-# audio/red
-# audio/rtp-enc-aescm128
-# audio/rtp-midi
-# audio/rtx
-# audio/smv
-# audio/smv0
-# audio/smv-qcp
-# audio/sp-midi
-# audio/speex
-# audio/t140c
-# audio/t38
-# audio/telephone-event
-# audio/tone
-# audio/uemclip
-# audio/ulpfec
-# audio/vdvi
-# audio/vmr-wb
-# audio/vnd.3gpp.iufp
-# audio/vnd.4sb
-# audio/vnd.audiokoz
-# audio/vnd.celp
-# audio/vnd.cisco.nse
-# audio/vnd.cmles.radio-events
-# audio/vnd.cns.anp1
-# audio/vnd.cns.inf1
-audio/vnd.dece.audio uva uvva
-audio/vnd.digital-winds eol
-# audio/vnd.dlna.adts
-# audio/vnd.dolby.heaac.1
-# audio/vnd.dolby.heaac.2
-# audio/vnd.dolby.mlp
-# audio/vnd.dolby.mps
-# audio/vnd.dolby.pl2
-# audio/vnd.dolby.pl2x
-# audio/vnd.dolby.pl2z
-# audio/vnd.dolby.pulse.1
-audio/vnd.dra dra
-audio/vnd.dts dts
-audio/vnd.dts.hd dtshd
-# audio/vnd.everad.plj
-# audio/vnd.hns.audio
-audio/vnd.lucent.voice lvp
-audio/vnd.ms-playready.media.pya pya
-# audio/vnd.nokia.mobile-xmf
-# audio/vnd.nortel.vbk
-audio/vnd.nuera.ecelp4800 ecelp4800
-audio/vnd.nuera.ecelp7470 ecelp7470
-audio/vnd.nuera.ecelp9600 ecelp9600
-# audio/vnd.octel.sbc
-# audio/vnd.qcelp
-# audio/vnd.rhetorex.32kadpcm
-audio/vnd.rip rip
-# audio/vnd.sealedmedia.softseal.mpeg
-# audio/vnd.vmx.cvsd
-# audio/vorbis
-# audio/vorbis-config
-audio/webm weba
-audio/x-aac aac
-audio/x-aiff aif aiff aifc
-audio/x-mpegurl m3u
-audio/x-ms-wax wax
-audio/x-ms-wma wma
-audio/x-pn-realaudio ram ra
-audio/x-pn-realaudio-plugin rmp
-audio/x-wav wav
-chemical/x-cdx cdx
-chemical/x-cif cif
-chemical/x-cmdf cmdf
-chemical/x-cml cml
-chemical/x-csml csml
-# chemical/x-pdb
-chemical/x-xyz xyz
-image/bmp bmp
-image/cgm cgm
-# image/example
-# image/fits
-image/g3fax g3
-image/gif gif
-image/ief ief
-# image/jp2
-image/jpeg jpeg jpg jpe
-# image/jpm
-# image/jpx
-image/ktx ktx
-# image/naplps
-image/png png
-image/prs.btif btif
-# image/prs.pti
-image/svg+xml svg svgz
-# image/t38
-image/tiff tiff tif
-# image/tiff-fx
-image/vnd.adobe.photoshop psd
-# image/vnd.cns.inf2
-image/vnd.dece.graphic uvi uvvi uvg uvvg
-image/vnd.dvb.subtitle sub
-image/vnd.djvu djvu djv
-image/vnd.dwg dwg
-image/vnd.dxf dxf
-image/vnd.fastbidsheet fbs
-image/vnd.fpx fpx
-image/vnd.fst fst
-image/vnd.fujixerox.edmics-mmr mmr
-image/vnd.fujixerox.edmics-rlc rlc
-# image/vnd.globalgraphics.pgb
-# image/vnd.microsoft.icon
-# image/vnd.mix
-image/vnd.ms-modi mdi
-image/vnd.net-fpx npx
-# image/vnd.radiance
-# image/vnd.sealed.png
-# image/vnd.sealedmedia.softseal.gif
-# image/vnd.sealedmedia.softseal.jpg
-# image/vnd.svf
-image/vnd.wap.wbmp wbmp
-image/vnd.xiff xif
-image/webp webp
-image/x-cmu-raster ras
-image/x-cmx cmx
-image/x-freehand fh fhc fh4 fh5 fh7
-image/x-icon ico
-image/x-pcx pcx
-image/x-pict pic pct
-image/x-portable-anymap pnm
-image/x-portable-bitmap pbm
-image/x-portable-graymap pgm
-image/x-portable-pixmap ppm
-image/x-rgb rgb
-image/x-xbitmap xbm
-image/x-xpixmap xpm
-image/x-xwindowdump xwd
-# message/cpim
-# message/delivery-status
-# message/disposition-notification
-# message/example
-# message/external-body
-# message/feedback-report
-# message/global
-# message/global-delivery-status
-# message/global-disposition-notification
-# message/global-headers
-# message/http
-# message/imdn+xml
-# message/news
-# message/partial
-message/rfc822 eml mime
-# message/s-http
-# message/sip
-# message/sipfrag
-# message/tracking-status
-# message/vnd.si.simp
-# model/example
-model/iges igs iges
-model/mesh msh mesh silo
-model/vnd.collada+xml dae
-model/vnd.dwf dwf
-# model/vnd.flatland.3dml
-model/vnd.gdl gdl
-# model/vnd.gs-gdl
-# model/vnd.gs.gdl
-model/vnd.gtw gtw
-# model/vnd.moml+xml
-model/vnd.mts mts
-# model/vnd.parasolid.transmit.binary
-# model/vnd.parasolid.transmit.text
-model/vnd.vtu vtu
-model/vrml wrl vrml
-# multipart/alternative
-# multipart/appledouble
-# multipart/byteranges
-# multipart/digest
-# multipart/encrypted
-# multipart/example
-# multipart/form-data
-# multipart/header-set
-# multipart/mixed
-# multipart/parallel
-# multipart/related
-# multipart/report
-# multipart/signed
-# multipart/voice-message
-# text/1d-interleaved-parityfec
-text/calendar ics ifb
-text/css css
-text/csv csv
-# text/directory
-# text/dns
-# text/ecmascript
-# text/enriched
-# text/example
-text/html html htm
-# text/javascript
-text/n3 n3
-# text/parityfec
-text/plain txt text conf def list log in
-# text/prs.fallenstein.rst
-text/prs.lines.tag dsc
-# text/vnd.radisys.msml-basic-layout
-# text/red
-# text/rfc822-headers
-text/richtext rtx
-# text/rtf
-# text/rtp-enc-aescm128
-# text/rtx
-text/sgml sgml sgm
-# text/t140
-text/tab-separated-values tsv
-text/troff t tr roff man me ms
-text/turtle ttl
-# text/ulpfec
-text/uri-list uri uris urls
-# text/vnd.abc
-text/vnd.curl curl
-text/vnd.curl.dcurl dcurl
-text/vnd.curl.scurl scurl
-text/vnd.curl.mcurl mcurl
-# text/vnd.dmclientscript
-# text/vnd.esmertec.theme-descriptor
-text/vnd.fly fly
-text/vnd.fmi.flexstor flx
-text/vnd.graphviz gv
-text/vnd.in3d.3dml 3dml
-text/vnd.in3d.spot spot
-# text/vnd.iptc.newsml
-# text/vnd.iptc.nitf
-# text/vnd.latex-z
-# text/vnd.motorola.reflex
-# text/vnd.ms-mediapackage
-# text/vnd.net2phone.commcenter.command
-# text/vnd.si.uricatalogue
-text/vnd.sun.j2me.app-descriptor jad
-# text/vnd.trolltech.linguist
-# text/vnd.wap.si
-# text/vnd.wap.sl
-text/vnd.wap.wml wml
-text/vnd.wap.wmlscript wmls
-text/x-asm s asm
-text/x-c c cc cxx cpp h hh dic
-text/x-fortran f for f77 f90
-text/x-pascal p pas
-text/x-java-source java
-text/x-setext etx
-text/x-uuencode uu
-text/x-vcalendar vcs
-text/x-vcard vcf
-# text/xml
-# text/xml-external-parsed-entity
-# video/1d-interleaved-parityfec
-video/3gpp 3gp
-# video/3gpp-tt
-video/3gpp2 3g2
-# video/bmpeg
-# video/bt656
-# video/celb
-# video/dv
-# video/example
-video/h261 h261
-video/h263 h263
-# video/h263-1998
-# video/h263-2000
-video/h264 h264
-# video/h264-rcdo
-# video/h264-svc
-video/jpeg jpgv
-# video/jpeg2000
-video/jpm jpm jpgm
-video/mj2 mj2 mjp2
-# video/mp1s
-# video/mp2p
-# video/mp2t
-video/mp4 mp4 mp4v mpg4
-# video/mp4v-es
-video/mpeg mpeg mpg mpe m1v m2v
-# video/mpeg4-generic
-# video/mpv
-# video/nv
-video/ogg ogv
-# video/parityfec
-# video/pointer
-video/quicktime qt mov
-# video/raw
-# video/rtp-enc-aescm128
-# video/rtx
-# video/smpte292m
-# video/ulpfec
-# video/vc1
-# video/vnd.cctv
-video/vnd.dece.hd uvh uvvh
-video/vnd.dece.mobile uvm uvvm
-# video/vnd.dece.mp4
-video/vnd.dece.pd uvp uvvp
-video/vnd.dece.sd uvs uvvs
-video/vnd.dece.video uvv uvvv
-# video/vnd.directv.mpeg
-# video/vnd.directv.mpeg-tts
-# video/vnd.dlna.mpeg-tts
-video/vnd.fvt fvt
-# video/vnd.hns.video
-# video/vnd.iptvforum.1dparityfec-1010
-# video/vnd.iptvforum.1dparityfec-2005
-# video/vnd.iptvforum.2dparityfec-1010
-# video/vnd.iptvforum.2dparityfec-2005
-# video/vnd.iptvforum.ttsavc
-# video/vnd.iptvforum.ttsmpeg2
-# video/vnd.motorola.video
-# video/vnd.motorola.videop
-video/vnd.mpegurl mxu m4u
-video/vnd.ms-playready.media.pyv pyv
-# video/vnd.nokia.interleaved-multimedia
-# video/vnd.nokia.videovoip
-# video/vnd.objectvideo
-# video/vnd.sealed.mpeg1
-# video/vnd.sealed.mpeg4
-# video/vnd.sealed.swf
-# video/vnd.sealedmedia.softseal.mov
-video/vnd.uvvu.mp4 uvu uvvu
-video/vnd.vivo viv
-video/webm webm
-video/x-f4v f4v
-video/x-fli fli
-video/x-flv flv
-video/x-m4v m4v
-video/x-ms-asf asf asx
-video/x-ms-wm wm
-video/x-ms-wmv wmv
-video/x-ms-wmx wmx
-video/x-ms-wvx wvx
-video/x-msvideo avi
-video/x-sgi-movie movie
-x-conference/x-cooltalk ice
diff --git a/Master/tlpkg/tlperl/lib/List/Util.pm b/Master/tlpkg/tlperl/lib/List/Util.pm
index 76b31be3c21..837b6c89a22 100644
--- a/Master/tlpkg/tlperl/lib/List/Util.pm
+++ b/Master/tlpkg/tlperl/lib/List/Util.pm
@@ -14,7 +14,7 @@ our @EXPORT_OK = qw(
all any first min max minstr maxstr none notall product reduce sum sum0 shuffle
pairmap pairgrep pairfirst pairs pairkeys pairvalues
);
-our $VERSION = "1.38";
+our $VERSION = "1.41";
our $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -34,6 +34,10 @@ sub import
goto &Exporter::import;
}
+# For objects returned by pairs()
+sub List::Util::_Pair::key { shift->[0] }
+sub List::Util::_Pair::value { shift->[1] }
+
1;
__END__
@@ -106,7 +110,11 @@ C<undef> being returned
The remaining list-reduction functions are all specialisations of this generic
idea.
-=head2 $b = any { BLOCK } @list
+=head2 any
+
+ my $bool = any { BLOCK } @list;
+
+I<Since version 1.33.>
Similar to C<grep> in that it evaluates C<BLOCK> setting C<$_> to each element
of C<@list> in turn. C<any> returns true if any element makes the C<BLOCK>
@@ -120,22 +128,34 @@ instead, as it can short-circuit after the first true result.
# at least one string has more than 10 characters
}
-=head2 $b = all { BLOCK } @list
+=head2 all
+
+ my $bool = all { BLOCK } @list;
+
+I<Since version 1.33.>
+
+Similar to L</any>, except that it requires all elements of the C<@list> to
+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.
-Similar to C<any>, except that it requires all elements of the C<@list> to 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.
+=head2 none
-=head2 $b = none { BLOCK } @list
+=head2 notall
-=head2 $b = notall { BLOCK } @list
+ my $bool = none { BLOCK } @list;
-Similar to C<any> and C<all>, but with the return sense inverted. C<none>
-returns true only if no value in the LIST causes the BLOCK to return true, and
-C<notall> returns true only if not all of the values do.
+ my $bool = notall { BLOCK } @list;
-=head2 $val = first { BLOCK } @list
+I<Since version 1.33.>
+
+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.
+
+=head2 first
+
+ my $val = first { BLOCK } @list;
Similar to C<grep> in that it evaluates C<BLOCK> setting C<$_> to each element
of C<@list> in turn. C<first> returns the first element where the result from
@@ -146,7 +166,9 @@ then C<undef> is returned.
$foo = first { $_ > $value } @list # first value in @list which
# is greater than $value
-=head2 $num = max @list
+=head2 max
+
+ my $num = max @list;
Returns the entry in the list with the highest numerical value. If the list is
empty then C<undef> is returned.
@@ -155,9 +177,11 @@ empty then C<undef> is returned.
$foo = max 3,9,12 # 12
$foo = max @bar, @baz # whatever
-=head2 $str = maxstr @list
+=head2 maxstr
+
+ my $str = maxstr @list;
-Similar to C<max>, but treats all the entries in the list as strings and
+Similar to L</max>, but treats all the entries in the list as strings and
returns the highest string as defined by the C<gt> operator. If the list is
empty then C<undef> is returned.
@@ -165,18 +189,22 @@ empty then C<undef> is returned.
$foo = maxstr "hello","world" # "world"
$foo = maxstr @bar, @baz # whatever
-=head2 $num = min @list
+=head2 min
+
+ my $num = min @list;
-Similar to C<max> but returns the entry in the list with the lowest numerical
+Similar to L</max> but returns the entry in the list with the lowest numerical
value. If the list is empty then C<undef> is returned.
$foo = min 1..10 # 1
$foo = min 3,9,12 # 3
$foo = min @bar, @baz # whatever
-=head2 $str = minstr @list
+=head2 minstr
-Similar to C<min>, but treats all the entries in the list as strings and
+ my $str = minstr @list;
+
+Similar to L</min>, but treats all the entries in the list as strings and
returns the lowest string as defined by the C<lt> operator. If the list is
empty then C<undef> is returned.
@@ -184,7 +212,11 @@ empty then C<undef> is returned.
$foo = minstr "hello","world" # "hello"
$foo = minstr @bar, @baz # whatever
-=head2 $num = product @list
+=head2 product
+
+ my $num = product @list;
+
+I<Since version 1.35.>
Returns the numerical product of all the elements in C<@list>. If C<@list> is
empty then C<1> is returned.
@@ -192,7 +224,9 @@ empty then C<1> is returned.
$foo = product 1..10 # 3628800
$foo = product 3,9,12 # 324
-=head2 $num_or_undef = sum @list
+=head2 sum
+
+ my $num_or_undef = sum @list;
Returns the numerical sum of all the elements in C<@list>. For backwards
compatibility, if C<@list> is empty then C<undef> is returned.
@@ -201,10 +235,14 @@ compatibility, if C<@list> is empty then C<undef> is returned.
$foo = sum 3,9,12 # 24
$foo = sum @bar, @baz # whatever
-=head2 $num = sum0 @list
+=head2 sum0
+
+ my $num = sum0 @list;
+
+I<Since version 1.26.>
-Similar to C<sum>, except this returns 0 when given an empty list, rather than
-C<undef>.
+Similar to L</sum>, except this returns 0 when given an empty list, rather
+than C<undef>.
=cut
@@ -218,9 +256,13 @@ value - nor even do they require that the first of each pair be a plain string.
=cut
-=head2 @kvlist = pairgrep { BLOCK } @kvlist
+=head2 pairgrep
-=head2 $count = pairgrep { BLOCK } @kvlist
+ my @kvlist = pairgrep { BLOCK } @kvlist;
+
+ my $count = pairgrep { BLOCK } @kvlist;
+
+I<Since version 1.29.>
Similar to perl's C<grep> keyword, but interprets the given list as an
even-sized list of pairs. It invokes the C<BLOCK> multiple times, in scalar
@@ -238,11 +280,15 @@ As with C<grep> aliasing C<$_> to list elements, C<pairgrep> aliases C<$a> and
C<$b> to elements of the given list. Any modifications of it by the code block
will be visible to the caller.
-=head2 ( $key, $val ) = pairfirst { BLOCK } @kvlist
+=head2 pairfirst
+
+ my ( $key, $val ) = pairfirst { BLOCK } @kvlist;
-=head2 $found = pairfirst { BLOCK } @kvlist
+ my $found = pairfirst { BLOCK } @kvlist;
-Similar to the C<first> function, but interprets the given list as an
+I<Since version 1.30.>
+
+Similar to the L</first> function, but interprets the given list as an
even-sized list of pairs. It invokes the C<BLOCK> multiple times, in scalar
context, with C<$a> and C<$b> set to successive pairs of values from the
C<@kvlist>.
@@ -258,9 +304,13 @@ As with C<grep> aliasing C<$_> to list elements, C<pairfirst> aliases C<$a> and
C<$b> to elements of the given list. Any modifications of it by the code block
will be visible to the caller.
-=head2 @list = pairmap { BLOCK } @kvlist
+=head2 pairmap
+
+ my @list = pairmap { BLOCK } @kvlist;
+
+ my $count = pairmap { BLOCK } @kvlist;
-=head2 $count = pairmap { BLOCK } @kvlist
+I<Since version 1.29.>
Similar to perl's C<map> keyword, but interprets the given list as an
even-sized list of pairs. It invokes the C<BLOCK> multiple times, in list
@@ -277,7 +327,13 @@ As with C<map> aliasing C<$_> to list elements, C<pairmap> aliases C<$a> and
C<$b> to elements of the given list. Any modifications of it by the code block
will be visible to the caller.
-=head2 @pairs = pairs @kvlist
+See L</KNOWN BUGS> for a known-bug with C<pairmap>, and a workaround.
+
+=head2 pairs
+
+ my @pairs = pairs @kvlist;
+
+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
@@ -287,12 +343,25 @@ list. It is a more efficient version of
It is most convenient to use in a C<foreach> loop, for example:
- foreach ( pairs @KVLIST ) {
- my ( $key, $value ) = @$_;
+ 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:
+
+ foreach my $pair ( pairs @KVLIST ) {
+ my $key = $pair->key;
+ my $value = $pair->value;
...
}
-=head2 @keys = pairkeys @kvlist
+=head2 pairkeys
+
+ my @keys = pairkeys @kvlist;
+
+I<Since version 1.29.>
A convenient shortcut to operating on even-sized lists of pairs, this function
returns a list of the the first values of each of the pairs in the given list.
@@ -300,7 +369,11 @@ It is a more efficient version of
@keys = pairmap { $a } @kvlist
-=head2 @values = pairvalues @kvlist
+=head2 pairvalues
+
+ my @values = pairvalues @kvlist;
+
+I<Since version 1.29.>
A convenient shortcut to operating on even-sized lists of pairs, this function
returns a list of the the second values of each of the pairs in the given list.
@@ -314,7 +387,9 @@ It is a more efficient version of
=cut
-=head2 @values = shuffle @values
+=head2 shuffle
+
+ my @values = shuffle @values;
Returns the values of the input in a random order
@@ -324,8 +399,48 @@ Returns the values of the input in a random order
=head1 KNOWN BUGS
-With perl versions prior to 5.005 there are some cases where reduce will return
-an incorrect result. This will show up as test 7 of reduce.t failing.
+=head2 RT #95409
+
+L<https://rt.cpan.org/Ticket/Display.html?id=95409>
+
+If the block of code given to L</pairmap> contains lexical variables that are
+captured by a returned closure, and the closure is executed after the block
+has been re-used for the next iteration, these lexicals will not see the
+correct values. For example:
+
+ my @subs = pairmap {
+ my $var = "$a is $b";
+ sub { print "$var\n" };
+ } one => 1, two => 2, three => 3;
+
+ $_->() for @subs;
+
+Will incorrectly print
+
+ three is 3
+ three is 3
+ three is 3
+
+This is due to the performance optimisation of using C<MULTICALL> for the code
+block, which means that fresh SVs do not get allocated for each call to the
+block. Instead, the same SV is re-assigned for each iteration, and all the
+closures will share the value seen on the final iteration.
+
+To work around this bug, surround the code with a second set of braces. This
+creates an inner block that defeats the C<MULTICALL> logic, and does get fresh
+SVs allocated each time:
+
+ my @subs = pairmap {
+ {
+ my $var = "$a is $b";
+ sub { print "$var\n"; }
+ }
+ } one => 1, two => 2, three => 3;
+
+This bug only affects closures that are generated by the block but used
+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.
=head1 SUGGESTED ADDITIONS
diff --git a/Master/tlpkg/tlperl/lib/List/Util/XS.pm b/Master/tlpkg/tlperl/lib/List/Util/XS.pm
index 32c10972aa5..f2e01ae94ba 100644
--- a/Master/tlpkg/tlperl/lib/List/Util/XS.pm
+++ b/Master/tlpkg/tlperl/lib/List/Util/XS.pm
@@ -2,7 +2,7 @@ package List::Util::XS;
use strict;
use List::Util;
-our $VERSION = "1.38"; # FIXUP
+our $VERSION = "1.41"; # FIXUP
$VERSION = eval $VERSION; # FIXUP
1;
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes.pm
index 32380a09d4a..855c377162b 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes.pm
@@ -1,7 +1,7 @@
package Locale::Codes;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -31,7 +31,7 @@ our($VERSION,%Data,%Retired);
# $Retired{ TYPE }{ CODESET }{ code }{ CODE } = NAME
# { name }{ NAME } = [CODE,NAME] (the key is lowercase)
-$VERSION='3.30';
+$VERSION='3.34';
#=======================================================================
#
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes.pod b/Master/tlpkg/tlperl/lib/Locale/Codes.pod
index 672cdf0e062..430a4648c73 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes.pod
@@ -289,7 +289,7 @@ perl problem tracker at:
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-2014 Sullivan Beck
+ 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.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/API.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/API.pod
index 110719d18ad..4353e1937d6 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/API.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/API.pod
@@ -312,7 +312,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2014 Sullivan Beck
+ 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.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Changes.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/Changes.pod
index 6700f17d212..697a2e43ba8 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Changes.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Changes.pod
@@ -22,11 +22,51 @@ 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.33 (planned 2014-12-01; sbeck)
+=head1 VERSION 3.37 (planned 2015-12-01; sbeck)
-=head1 VERSION 3.32 (planned 2014-09-01; sbeck)
+=head1 VERSION 3.36 (planned 2015-09-01; sbeck)
-=head1 VERSION 3.31 (planned 2014-06-01; sbeck)
+=head1 VERSION 3.35 (planned 2015-06-01; sbeck)
+
+=head1 VERSION 3.34 (2015-03-01; sbeck)
+
+NEW CODE(s)
+
+=head1 VERSION 3.33 (2014-12-01; sbeck)
+
+NEW CODE(s)
+
+=over 4
+
+=item B<Filled out LOCALE_LANG_TERM codeset>
+
+The terminologic language codes only included codes from languages where
+the ISO specified both a bibliographic code and a terminologic code. If
+both are not specified, the better solution was to use the code for both
+code sets. Prompted by a suggestion by Jarkko Hietaniemi.
+
+=item B<Moved repository to GitHub>
+
+Suggested by Gabor Szabo.
+
+=back
+
+=head1 VERSION 3.32 (2014-09-01; sbeck)
+
+NEW CODE(s)
+
+=head1 VERSION 3.31 (2014-06-01; sbeck)
+
+NEW CODE(s)
+
+=over 4
+
+=item B<Bug fixes>
+
+Fixed a bug in the scripts used to extract data from spreadsheets
+that prevented the SHP currency code from being found. RT 94229
+
+=back
=head1 VERSION 3.30 (2014-03-04; sbeck)
@@ -700,7 +740,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2014 Sullivan Beck
+ 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.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pm
index d9977ff7197..256d695a70f 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pm
@@ -1,7 +1,7 @@
package Locale::Codes::Constants;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -17,7 +17,7 @@ require Exporter;
our($VERSION,@ISA,@EXPORT);
our(%ALL_CODESETS);
-$VERSION='3.30';
+$VERSION='3.34';
@ISA = qw(Exporter);
@EXPORT = qw(LOCALE_CODE_ALPHA_2
LOCALE_CODE_ALPHA_3
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pod
index 04bc28da967..0ad133526f2 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pod
@@ -32,7 +32,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2014 Sullivan Beck
+ 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.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pm
index c4071cbbc11..2fc76c442ef 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pm
@@ -1,7 +1,7 @@
package Locale::Codes::Country;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -22,7 +22,7 @@ use Locale::Codes::Country_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.30';
+$VERSION='3.34';
@ISA = qw(Exporter);
@EXPORT = qw(code2country
country2code
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pod
index c9e9180cc77..e1d86466fac 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pod
@@ -80,15 +80,15 @@ Locale::Codes::Changes document for details.
=over 4
-=item B<code2country ( CODE [,CODESET] )>
+=item B<code2country ( CODE [,CODESET] [,'retired'])>
-=item B<country2code ( NAME [,CODESET] )>
+=item B<country2code ( NAME [,CODESET] [,'retired'])>
=item B<country_code2code ( CODE ,CODESET ,CODESET2 )>
-=item B<all_country_codes ( [CODESET] )>
+=item B<all_country_codes ( [CODESET] [,'retired'])>
-=item B<all_country_names ( [CODESET] )>
+=item B<all_country_names ( [CODESET] [,'retired'])>
=item B<Locale::Codes::Country::rename_country ( CODE ,NEW_NAME [,CODESET] )>
@@ -198,7 +198,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2014 Sullivan Beck
+ 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.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Codes.pm
index f3fc8e51aeb..4a0ffdbc652 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Codes.pm
+++ b/Master/tlpkg/tlperl/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: Thu Feb 27 15:43:45 EST 2014
+# Generated on: Thu Feb 19 20:23:53 GMT 2015
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
-$Locale::Codes::Data{'country'}{'id'} = '0252';
+$Locale::Codes::Data{'country'}{'id'} = '0250';
$Locale::Codes::Data{'country'}{'id2names'} = {
q(0001) => [
@@ -98,8 +98,8 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Bhutan),
],
q(0027) => [
- q(Bolivia, Plurinational State of),
q(Bolivia (Plurinational State of)),
+ q(Bolivia, Plurinational State of),
q(Plurinational State of Bolivia),
q(Bolivia),
],
@@ -138,16 +138,16 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Burundi),
],
q(0038) => [
- q(Cambodia),
+ q(Cabo Verde),
],
q(0039) => [
- q(Cameroon),
+ q(Cambodia),
],
q(0040) => [
- q(Canada),
+ q(Cameroon),
],
q(0041) => [
- q(Cape Verde),
+ q(Canada),
],
q(0042) => [
q(Cayman Islands),
@@ -188,17 +188,11 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
],
q(0050) => [
q(Comoros),
+ q(The Comoros),
+ q(Comoros, The),
+ q(Comoros (The)),
],
q(0051) => [
- q(Congo),
- q(The Republic of the Congo),
- q(Republic of the Congo),
- q(Congo, The Republic of the),
- q(Congo, Republic of the),
- q(Congo-Brazzaville),
- q(Congo (Brazzaville)),
- ],
- q(0052) => [
q(Congo (The Democratic Republic of the)),
q(Congo, The Democratic Republic of the),
q(Congo, Democratic Republic of the),
@@ -207,6 +201,18 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Congo-Kinshasa),
q(Congo (Kinshasa)),
],
+ q(0052) => [
+ q(Congo),
+ q(The Congo),
+ q(Congo, The),
+ q(Congo (The)),
+ q(The Republic of the Congo),
+ q(Republic of the Congo),
+ q(Congo, The Republic of the),
+ q(Congo, Republic of the),
+ q(Congo-Brazzaville),
+ q(Congo (Brazzaville)),
+ ],
q(0053) => [
q(Cook Islands),
q(The Cook Islands),
@@ -366,13 +372,13 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Heard Island and McDonald Islands),
],
q(0098) => [
+ q(Holy See),
+ q(The Holy See),
+ q(Holy See, The),
+ q(Holy See (The)),
q(Holy See (The) [Vatican City State]),
q(Holy See (Vatican City State)),
q(Holy See (Vatican City)),
- q(The Holy See),
- q(Holy See),
- q(Holy See (The)),
- q(Holy See, The),
q(Vatican City),
],
q(0099) => [
@@ -397,12 +403,12 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Indonesia),
],
q(0105) => [
- q(Iran, The Islamic Republic of),
+ q(Iran (Islamic Republic of)),
q(Iran (The Islamic Republic of)),
q(Iran, Islamic Republic of),
- q(Iran (Islamic Republic of)),
- q(The Islamic Republic of Iran),
+ q(Iran, The Islamic Republic of),
q(Islamic Republic of Iran),
+ q(The Islamic Republic of Iran),
q(Iran),
],
q(0106) => [
@@ -553,12 +559,12 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Mexico),
],
q(0145) => [
- q(Micronesia, The Federated States of),
+ q(Micronesia (Federated States of)),
+ q(Federated States of Micronesia),
q(Micronesia (The Federated States of)),
q(Micronesia, Federated States of),
- q(Micronesia (Federated States of)),
+ q(Micronesia, The Federated States of),
q(The Federated States of Micronesia),
- q(Federated States of Micronesia),
],
q(0146) => [
q(Moldova, The Republic of),
@@ -768,9 +774,9 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
],
q(0204) => [
q(Solomon Islands),
- q(The Solomon Islands),
- q(Solomon Islands, The),
q(Solomon Islands (The)),
+ q(Solomon Islands, The),
+ q(The Solomon Islands),
],
q(0205) => [
q(Somalia),
@@ -815,9 +821,9 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
],
q(0217) => [
q(Syrian Arab Republic),
- q(The Syrian Arab Republic),
- q(Syrian Arab Republic, The),
q(Syrian Arab Republic (The)),
+ q(Syrian Arab Republic, The),
+ q(The Syrian Arab Republic),
q(Syria),
],
q(0218) => [
@@ -889,29 +895,34 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(United Arab Emirates (The)),
],
q(0235) => [
- q(United Kingdom),
+ q(United Kingdom of Great Britain and Northern Ireland),
+ q(The United Kingdom of Great Britain and Northern Ireland),
+ q(United Kingdom of Great Britain and Northern Ireland, The),
+ q(United Kingdom of Great Britain and Northern Ireland (The)),
+ q(Great Britain),
+ q(United Kingdom (The)),
q(The United Kingdom),
+ q(United Kingdom),
q(United Kingdom, The),
- q(United Kingdom (The)),
- q(Great Britain),
- q(United Kingdom of Great Britain and Northern Ireland),
q(UK),
],
q(0236) => [
- q(United States),
+ q(United States Minor Outlying Islands),
+ q(The United States Minor Outlying Islands),
+ q(United States Minor Outlying Islands, The),
+ q(United States Minor Outlying Islands (The)),
+ ],
+ q(0237) => [
+ q(United States of America),
+ q(The United States of America),
+ q(United States of America, The),
+ q(United States of America (The)),
q(The United States),
+ q(United States),
q(United States, The),
q(United States (The)),
q(US),
q(USA),
- q(United States of America),
- q(The United States of America),
- ],
- q(0237) => [
- q(United States Minor Outlying Islands),
- q(The United States Minor Outlying Islands),
- q(United States Minor Outlying Islands, The),
- q(United States Minor Outlying Islands (The)),
],
q(0238) => [
q(Uruguay),
@@ -923,7 +934,10 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Vanuatu),
],
q(0241) => [
- q(Venezuela, Bolivarian Republic of ),
+ q(Venezuela (Bolivarian Republic of)),
+ q(Venezuela, Bolivarian Republic of),
+ q(Venezuela, Bolivarian Republic),
+ q(Venezuela),
],
q(0242) => [
q(Viet Nam),
@@ -972,12 +986,6 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Republic of Zimbabwe, The),
q(Republic of Zimbabwe (The)),
],
- q(0250) => [
- q(Netherlands Antilles),
- ],
- q(0251) => [
- q(USSR),
- ],
};
$Locale::Codes::Data{'country'}{'alias2id'} = {
@@ -1099,11 +1107,11 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(bolivia (plurinational state of)) => [
q(0027),
- q(1),
+ q(0),
],
q(bolivia, plurinational state of) => [
q(0027),
- q(0),
+ q(1),
],
q(bonaire, sint eustatius and saba) => [
q(0028),
@@ -1165,19 +1173,19 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0037),
q(0),
],
- q(cambodia) => [
+ q(cabo verde) => [
q(0038),
q(0),
],
- q(cameroon) => [
+ q(cambodia) => [
q(0039),
q(0),
],
- q(canada) => [
+ q(cameroon) => [
q(0040),
q(0),
],
- q(cape verde) => [
+ q(canada) => [
q(0041),
q(0),
],
@@ -1253,44 +1261,60 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0050),
q(0),
],
+ q(comoros (the)) => [
+ q(0050),
+ q(3),
+ ],
+ q(comoros, the) => [
+ q(0050),
+ q(2),
+ ],
q(congo) => [
- q(0051),
+ q(0052),
q(0),
],
q(congo (brazzaville)) => [
- q(0051),
- q(6),
+ q(0052),
+ q(9),
],
q(congo (kinshasa)) => [
- q(0052),
+ q(0051),
q(6),
],
q(congo (the democratic republic of the)) => [
- q(0052),
+ q(0051),
q(0),
],
- q(congo, democratic republic of the) => [
+ q(congo (the)) => [
q(0052),
+ q(3),
+ ],
+ q(congo, democratic republic of the) => [
+ q(0051),
q(2),
],
q(congo, republic of the) => [
- q(0051),
- q(4),
+ q(0052),
+ q(7),
],
- q(congo, the democratic republic of the) => [
+ q(congo, the) => [
q(0052),
+ q(2),
+ ],
+ q(congo, the democratic republic of the) => [
+ q(0051),
q(1),
],
q(congo, the republic of the) => [
- q(0051),
- q(3),
+ q(0052),
+ q(6),
],
q(congo-brazzaville) => [
- q(0051),
- q(5),
+ q(0052),
+ q(8),
],
q(congo-kinshasa) => [
- q(0052),
+ q(0051),
q(5),
],
q(cook islands) => [
@@ -1346,7 +1370,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(5),
],
q(democratic republic of the congo) => [
- q(0052),
+ q(0051),
q(4),
],
q(democratic republic of timor-leste) => [
@@ -1439,7 +1463,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(federated states of micronesia) => [
q(0145),
- q(5),
+ q(1),
],
q(fiji) => [
q(0074),
@@ -1567,27 +1591,27 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(holy see) => [
q(0098),
- q(4),
+ q(0),
],
q(holy see (the)) => [
q(0098),
- q(5),
+ q(3),
],
q(holy see (the) [vatican city state]) => [
q(0098),
- q(0),
+ q(4),
],
q(holy see (vatican city state)) => [
q(0098),
- q(1),
+ q(5),
],
q(holy see (vatican city)) => [
q(0098),
- q(2),
+ q(6),
],
q(holy see, the) => [
q(0098),
- q(6),
+ q(2),
],
q(honduras) => [
q(0099),
@@ -1627,7 +1651,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(iran (islamic republic of)) => [
q(0105),
- q(3),
+ q(0),
],
q(iran (the islamic republic of)) => [
q(0105),
@@ -1639,7 +1663,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(iran, the islamic republic of) => [
q(0105),
- q(0),
+ q(3),
],
q(iraq) => [
q(0106),
@@ -1651,7 +1675,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(islamic republic of iran) => [
q(0105),
- q(5),
+ q(4),
],
q(isle of man) => [
q(0108),
@@ -1883,19 +1907,19 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(micronesia (federated states of)) => [
q(0145),
- q(3),
+ q(0),
],
q(micronesia (the federated states of)) => [
q(0145),
- q(1),
+ q(2),
],
q(micronesia, federated states of) => [
q(0145),
- q(2),
+ q(3),
],
q(micronesia, the federated states of) => [
q(0145),
- q(0),
+ q(4),
],
q(moldova (republic of)) => [
q(0146),
@@ -1961,10 +1985,6 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0157),
q(3),
],
- q(netherlands antilles) => [
- q(0250),
- q(0),
- ],
q(netherlands, the) => [
q(0157),
q(2),
@@ -2114,8 +2134,8 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(5),
],
q(republic of the congo) => [
- q(0051),
- q(2),
+ q(0052),
+ q(5),
],
q(republic of the union of myanmar) => [
q(0153),
@@ -2271,7 +2291,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(solomon islands (the)) => [
q(0204),
- q(3),
+ q(1),
],
q(solomon islands, the) => [
q(0204),
@@ -2359,7 +2379,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(syrian arab republic (the)) => [
q(0217),
- q(3),
+ q(1),
],
q(syrian arab republic, the) => [
q(0217),
@@ -2421,6 +2441,14 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0048),
q(5),
],
+ q(the comoros) => [
+ q(0050),
+ q(1),
+ ],
+ q(the congo) => [
+ q(0052),
+ q(1),
+ ],
q(the cook islands) => [
q(0053),
q(1),
@@ -2434,7 +2462,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(4),
],
q(the democratic republic of the congo) => [
- q(0052),
+ q(0051),
q(3),
],
q(the democratic republic of timor-leste) => [
@@ -2455,7 +2483,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(the federated states of micronesia) => [
q(0145),
- q(4),
+ q(5),
],
q(the former yugoslav republic of macedonia) => [
q(0132),
@@ -2471,11 +2499,11 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(the holy see) => [
q(0098),
- q(3),
+ q(1),
],
q(the islamic republic of iran) => [
q(0105),
- q(4),
+ q(5),
],
q(the keeling islands) => [
q(0048),
@@ -2514,8 +2542,8 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(4),
],
q(the republic of the congo) => [
- q(0051),
- q(1),
+ q(0052),
+ q(4),
],
q(the republic of the union of myanmar) => [
q(0153),
@@ -2535,7 +2563,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(the solomon islands) => [
q(0204),
- q(1),
+ q(3),
],
q(the sudan) => [
q(0211),
@@ -2543,7 +2571,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(the syrian arab republic) => [
q(0217),
- q(1),
+ q(3),
],
q(the territory of the wallis and futuna islands) => [
q(0245),
@@ -2559,19 +2587,23 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(the united kingdom) => [
q(0235),
+ q(6),
+ ],
+ q(the united kingdom of great britain and northern ireland) => [
+ q(0235),
q(1),
],
q(the united states) => [
- q(0236),
- q(1),
+ q(0237),
+ q(4),
],
q(the united states minor outlying islands) => [
- q(0237),
+ q(0236),
q(1),
],
q(the united states of america) => [
- q(0236),
- q(7),
+ q(0237),
+ q(1),
],
q(the yemeni republic) => [
q(0247),
@@ -2647,7 +2679,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(uk) => [
q(0235),
- q(6),
+ q(9),
],
q(ukraine) => [
q(0233),
@@ -2667,71 +2699,83 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(united kingdom) => [
q(0235),
- q(0),
+ q(7),
],
q(united kingdom (the)) => [
q(0235),
- q(3),
+ q(5),
],
q(united kingdom of great britain and northern ireland) => [
q(0235),
- q(5),
+ q(0),
],
- q(united kingdom, the) => [
+ q(united kingdom of great britain and northern ireland (the)) => [
+ q(0235),
+ q(3),
+ ],
+ q(united kingdom of great britain and northern ireland, the) => [
q(0235),
q(2),
],
+ q(united kingdom, the) => [
+ q(0235),
+ q(8),
+ ],
q(united republic of tanzania) => [
q(0220),
q(2),
],
q(united states) => [
+ q(0237),
+ q(5),
+ ],
+ q(united states (the)) => [
+ q(0237),
+ q(7),
+ ],
+ q(united states minor outlying islands) => [
q(0236),
q(0),
],
- q(united states (the)) => [
+ q(united states minor outlying islands (the)) => [
q(0236),
q(3),
],
- q(united states minor outlying islands) => [
+ q(united states minor outlying islands, the) => [
+ q(0236),
+ q(2),
+ ],
+ q(united states of america) => [
q(0237),
q(0),
],
- q(united states minor outlying islands (the)) => [
+ q(united states of america (the)) => [
q(0237),
q(3),
],
- q(united states minor outlying islands, the) => [
+ q(united states of america, the) => [
q(0237),
q(2),
],
- q(united states of america) => [
- q(0236),
- q(6),
- ],
q(united states virgin islands) => [
q(0244),
q(1),
],
q(united states, the) => [
- q(0236),
- q(2),
+ q(0237),
+ q(6),
],
q(uruguay) => [
q(0238),
q(0),
],
q(us) => [
- q(0236),
- q(4),
+ q(0237),
+ q(8),
],
q(usa) => [
- q(0236),
- q(5),
- ],
- q(ussr) => [
- q(0251),
- q(0),
+ q(0237),
+ q(9),
],
q(uzbekistan) => [
q(0239),
@@ -2745,10 +2789,22 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0098),
q(7),
],
- q(venezuela, bolivarian republic of ) => [
+ q(venezuela) => [
+ q(0241),
+ q(3),
+ ],
+ q(venezuela (bolivarian republic of)) => [
q(0241),
q(0),
],
+ q(venezuela, bolivarian republic) => [
+ q(0241),
+ q(2),
+ ],
+ q(venezuela, bolivarian republic of) => [
+ q(0241),
+ q(1),
+ ],
q(viet nam) => [
q(0242),
q(0),
@@ -2974,7 +3030,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(ca) => [
- q(0040),
+ q(0041),
q(0),
],
q(cc) => [
@@ -2982,7 +3038,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(cd) => [
- q(0052),
+ q(0051),
q(0),
],
q(cf) => [
@@ -2990,7 +3046,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(cg) => [
- q(0051),
+ q(0052),
q(0),
],
q(ch) => [
@@ -3010,7 +3066,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(cm) => [
- q(0039),
+ q(0040),
q(0),
],
q(cn) => [
@@ -3030,7 +3086,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(cv) => [
- q(0041),
+ q(0038),
q(0),
],
q(cw) => [
@@ -3290,7 +3346,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(kh) => [
- q(0038),
+ q(0039),
q(0),
],
q(ki) => [
@@ -3750,11 +3806,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(um) => [
- q(0237),
+ q(0236),
q(0),
],
q(us) => [
- q(0236),
+ q(0237),
q(0),
],
q(uy) => [
@@ -3980,7 +4036,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(can) => [
- q(0040),
+ q(0041),
q(0),
],
q(cck) => [
@@ -4004,15 +4060,15 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(cmr) => [
- q(0039),
+ q(0040),
q(0),
],
q(cod) => [
- q(0052),
+ q(0051),
q(0),
],
q(cog) => [
- q(0051),
+ q(0052),
q(0),
],
q(cok) => [
@@ -4028,7 +4084,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(cpv) => [
- q(0041),
+ q(0038),
q(0),
],
q(cri) => [
@@ -4300,7 +4356,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(khm) => [
- q(0038),
+ q(0039),
q(0),
],
q(kir) => [
@@ -4752,7 +4808,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(umi) => [
- q(0237),
+ q(0236),
q(0),
],
q(ury) => [
@@ -4760,7 +4816,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(usa) => [
- q(0236),
+ q(0237),
q(0),
],
q(uzb) => [
@@ -4849,10 +4905,6 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0012),
q(0),
],
- q(an) => [
- q(0250),
- q(0),
- ],
q(ao) => [
q(0007),
q(0),
@@ -4974,7 +5026,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(ca) => [
- q(0040),
+ q(0041),
q(0),
],
q(cc) => [
@@ -4982,7 +5034,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(cd) => [
- q(0052),
+ q(0051),
q(0),
],
q(cf) => [
@@ -4990,7 +5042,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(cg) => [
- q(0051),
+ q(0052),
q(0),
],
q(ch) => [
@@ -5010,7 +5062,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(cm) => [
- q(0039),
+ q(0040),
q(0),
],
q(cn) => [
@@ -5030,7 +5082,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(cv) => [
- q(0041),
+ q(0038),
q(0),
],
q(cw) => [
@@ -5290,7 +5342,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(kh) => [
- q(0038),
+ q(0039),
q(0),
],
q(ki) => [
@@ -5661,10 +5713,6 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0194),
q(0),
],
- q(su) => [
- q(0251),
- q(0),
- ],
q(sv) => [
q(0067),
q(0),
@@ -5725,10 +5773,6 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0225),
q(0),
],
- q(tp) => [
- q(0222),
- q(1),
- ],
q(tr) => [
q(0228),
q(0),
@@ -5758,11 +5802,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(um) => [
- q(0237),
+ q(0236),
q(0),
],
q(us) => [
- q(0236),
+ q(0237),
q(0),
],
q(uy) => [
@@ -5968,19 +6012,19 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(116) => [
- q(0038),
+ q(0039),
q(0),
],
q(120) => [
- q(0039),
+ q(0040),
q(0),
],
q(124) => [
- q(0040),
+ q(0041),
q(0),
],
q(132) => [
- q(0041),
+ q(0038),
q(0),
],
q(136) => [
@@ -6032,11 +6076,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(178) => [
- q(0051),
+ q(0052),
q(0),
],
q(180) => [
- q(0052),
+ q(0051),
q(0),
],
q(184) => [
@@ -6492,7 +6536,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(581) => [
- q(0237),
+ q(0236),
q(0),
],
q(583) => [
@@ -6788,7 +6832,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
q(840) => [
- q(0236),
+ q(0237),
q(0),
],
q(850) => [
@@ -6869,10 +6913,10 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0035) => q(bg),
q(0036) => q(bf),
q(0037) => q(bi),
- q(0038) => q(kh),
- q(0039) => q(cm),
- q(0040) => q(ca),
- q(0041) => q(cv),
+ 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),
@@ -6882,8 +6926,8 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0048) => q(cc),
q(0049) => q(co),
q(0050) => q(km),
- q(0051) => q(cg),
- q(0052) => q(cd),
+ q(0051) => q(cd),
+ q(0052) => q(cg),
q(0053) => q(ck),
q(0054) => q(cr),
q(0055) => q(ci),
@@ -7067,8 +7111,8 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0233) => q(ua),
q(0234) => q(ae),
q(0235) => q(gb),
- q(0236) => q(us),
- q(0237) => q(um),
+ q(0236) => q(um),
+ q(0237) => q(us),
q(0238) => q(uy),
q(0239) => q(uz),
q(0240) => q(vu),
@@ -7120,10 +7164,10 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0035) => q(bgr),
q(0036) => q(bfa),
q(0037) => q(bdi),
- q(0038) => q(khm),
- q(0039) => q(cmr),
- q(0040) => q(can),
- q(0041) => q(cpv),
+ 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),
@@ -7133,8 +7177,8 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0048) => q(cck),
q(0049) => q(col),
q(0050) => q(com),
- q(0051) => q(cog),
- q(0052) => q(cod),
+ q(0051) => q(cod),
+ q(0052) => q(cog),
q(0053) => q(cok),
q(0054) => q(cri),
q(0055) => q(civ),
@@ -7318,8 +7362,8 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0233) => q(ukr),
q(0234) => q(are),
q(0235) => q(gbr),
- q(0236) => q(usa),
- q(0237) => q(umi),
+ q(0236) => q(umi),
+ q(0237) => q(usa),
q(0238) => q(ury),
q(0239) => q(uzb),
q(0240) => q(vut),
@@ -7371,10 +7415,10 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0035) => q(bg),
q(0036) => q(bf),
q(0037) => q(bi),
- q(0038) => q(kh),
- q(0039) => q(cm),
- q(0040) => q(ca),
- q(0041) => q(cv),
+ 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),
@@ -7384,8 +7428,8 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0048) => q(cc),
q(0049) => q(co),
q(0050) => q(km),
- q(0051) => q(cg),
- q(0052) => q(cd),
+ q(0051) => q(cd),
+ q(0052) => q(cg),
q(0053) => q(ck),
q(0054) => q(cr),
q(0055) => q(ci),
@@ -7555,7 +7599,7 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0219) => q(tj),
q(0220) => q(tz),
q(0221) => q(th),
- q(0222) => q(tp),
+ q(0222) => q(tl),
q(0223) => q(tg),
q(0224) => q(tk),
q(0225) => q(to),
@@ -7569,8 +7613,8 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0233) => q(ua),
q(0234) => q(ae),
q(0235) => q(gb),
- q(0236) => q(us),
- q(0237) => q(um),
+ q(0236) => q(um),
+ q(0237) => q(us),
q(0238) => q(uy),
q(0239) => q(uz),
q(0240) => q(vu),
@@ -7583,8 +7627,6 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0247) => q(ye),
q(0248) => q(zm),
q(0249) => q(zw),
- q(0250) => q(an),
- q(0251) => q(su),
},
q(numeric) => {
q(0001) => q(004),
@@ -7624,10 +7666,10 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0035) => q(100),
q(0036) => q(854),
q(0037) => q(108),
- q(0038) => q(116),
- q(0039) => q(120),
- q(0040) => q(124),
- q(0041) => q(132),
+ 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),
@@ -7637,8 +7679,8 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0048) => q(166),
q(0049) => q(170),
q(0050) => q(174),
- q(0051) => q(178),
- q(0052) => q(180),
+ q(0051) => q(180),
+ q(0052) => q(178),
q(0053) => q(184),
q(0054) => q(188),
q(0055) => q(384),
@@ -7822,8 +7864,8 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0233) => q(804),
q(0234) => q(784),
q(0235) => q(826),
- q(0236) => q(840),
- q(0237) => q(581),
+ q(0236) => q(581),
+ q(0237) => q(840),
q(0238) => q(858),
q(0239) => q(860),
q(0240) => q(548),
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Retired.pm
index f71f85122ff..7defc73bfb5 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Retired.pm
+++ b/Master/tlpkg/tlperl/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 Mar 4 13:19:40 EST 2014
+# Generated on: Fri Feb 20 15:27:22 GMT 2015
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
$Locale::Codes::Retired{'country'}{'alpha-2'}{'code'} = {
q(an) => q(Netherlands Antilles),
@@ -301,7 +301,10 @@ $Locale::Codes::Retired{'country'}{'dom'}{'code'} = {
q(ZM) => q(Zambia),
q(ZW) => q(Zimbabwe),
q(ac) => q(Ascension Island),
+ q(an) => q(Netherlands Antilles),
q(eu) => q(European Union),
+ q(su) => q(USSR),
+ q(tp) => q(East Timor),
q(uk) => q(United Kingdom),
};
@@ -326,16 +329,20 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'code'} = {
$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) ],
q(bonaire, saint eustatius and saba) => [ q(bq), q(Bonaire, Saint Eustatius and Saba) ],
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(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) ],
q(heard and mc donald islands) => [ q(hm), q(Heard and Mc Donald Islands) ],
+ q(holy see (the) [vatican city state]) => [ q(va), q(Holy See (The) [Vatican City State]) ],
q(holy see (vatican city state)) => [ q(va), q(Holy See (Vatican City State)) ],
q(iran (islamic republic of)) => [ q(ir), q(Iran (Islamic Republic of)) ],
q(iran, islamic republic of) => [ q(ir), q(Iran, Islamic Republic of) ],
+ q(iran, the islamic republic of) => [ q(ir), q(Iran, The Islamic Republic of) ],
q(kazakstan) => [ q(kz), q(Kazakstan) ],
q(korea, democratic people's republic of) => [ q(kp), q(Korea, Democratic People's Republic of) ],
q(korea, republic of) => [ q(kr), q(Korea, Republic of) ],
@@ -343,6 +350,7 @@ $Locale::Codes::Retired{'country'}{'alpha-2'}{'name'} = {
q(macau) => [ q(mo), q(Macau) ],
q(micronesia (federated states of)) => [ q(fm), q(Micronesia (Federated States of)) ],
q(micronesia, federated states of) => [ q(fm), q(Micronesia, Federated States of) ],
+ q(micronesia, the federated states of) => [ q(fm), q(Micronesia, The Federated States of) ],
q(moldova, republic of) => [ q(md), q(Moldova, Republic of) ],
q(netherlands antilles) => [ q(an), q(Netherlands Antilles) ],
q(saint helena) => [ q(sh), q(Saint Helena) ],
@@ -352,9 +360,12 @@ $Locale::Codes::Retired{'country'}{'alpha-2'}{'name'} = {
q(st. pierre and miquelon) => [ q(pm), q(St. Pierre and Miquelon) ],
q(svalbard and jan mayen islands) => [ q(sj), q(Svalbard and Jan Mayen Islands) ],
q(taiwan, province of china) => [ q(tw), q(Taiwan, Province of China) ],
+ q(united kingdom) => [ q(gb), q(United Kingdom) ],
+ q(united states) => [ q(us), q(United States) ],
q(vatican city state (holy see)) => [ q(va), q(Vatican City State (Holy See)) ],
q(venezuela) => [ q(ve), q(Venezuela) ],
q(venezuela, bolivarian republic of) => [ q(ve), q(Venezuela, Bolivarian Republic of) ],
+ q(venezuela, bolivarian republic of ) => [ q(ve), q(Venezuela, Bolivarian Republic of ) ],
q(vietnam) => [ q(vn), q(Vietnam) ],
q(virgin islands (british)) => [ q(vg), q(Virgin Islands (British)) ],
q(virgin islands (u.s.)) => [ q(vi), q(Virgin Islands (U.S.)) ],
@@ -369,6 +380,7 @@ $Locale::Codes::Retired{'country'}{'alpha-3'}{'name'} = {
q(antarctica) => [ q(ata), q(Antarctica) ],
q(bolivia) => [ q(bol), q(Bolivia) ],
q(bolivia (plurinational state of)) => [ q(bol), q(Bolivia (Plurinational State of)) ],
+ q(bolivia, plurinational state of) => [ q(bol), q(Bolivia, Plurinational State of) ],
q(bonaire, saint eustatius and saba) => [ q(bes), q(Bonaire, Saint Eustatius and Saba) ],
q(bouvet island) => [ q(bvt), q(Bouvet Island) ],
q(british indian ocean territory) => [ q(iot), q(British Indian Ocean Territory) ],
@@ -391,11 +403,13 @@ $Locale::Codes::Retired{'country'}{'alpha-3'}{'name'} = {
q(french southern territories) => [ q(atf), q(French Southern Territories) ],
q(heard island and mcdonald islands) => [ q(hmd), q(Heard Island and Mcdonald Islands) ],
q(holy see) => [ q(vat), q(Holy See) ],
+ q(holy see (the) [vatican city state]) => [ q(vat), q(Holy See (The) [Vatican City State]) ],
q(holy see (vatican city state)) => [ q(vat), q(Holy See (Vatican City State)) ],
q(hong kong) => [ q(hkg), q(Hong Kong) ],
q(hong kong special administrative region of china) => [ q(hkg), q(Hong Kong Special Administrative Region of China) ],
q(iran (islamic republic of)) => [ q(irn), q(Iran (Islamic Republic of)) ],
q(iran, islamic republic of) => [ q(irn), q(Iran, Islamic Republic of) ],
+ q(iran, the islamic republic of) => [ q(irn), q(Iran, The Islamic Republic of) ],
q(kazakstan) => [ q(kaz), q(Kazakstan) ],
q(korea, democratic people's republic of) => [ q(prk), q(Korea, Democratic People's Republic of) ],
q(korea, republic of) => [ q(kor), q(Korea, Republic of) ],
@@ -406,6 +420,7 @@ $Locale::Codes::Retired{'country'}{'alpha-3'}{'name'} = {
q(macedonia, the former yugoslav republic of) => [ q(mkd), q(Macedonia, the Former Yugoslav Republic of) ],
q(micronesia (federated states of)) => [ q(fsm), q(Micronesia (Federated States of)) ],
q(micronesia, federated states of) => [ q(fsm), q(Micronesia, Federated States of) ],
+ q(micronesia, the federated states of) => [ q(fsm), q(Micronesia, The Federated States of) ],
q(moldova, republic of) => [ q(mda), q(Moldova, Republic of) ],
q(netherlands antilles) => [ q(ant), q(Netherlands Antilles) ],
q(palestinian territory, occupied) => [ q(pse), q(Palestinian Territory, Occupied) ],
@@ -433,6 +448,7 @@ $Locale::Codes::Retired{'country'}{'alpha-3'}{'name'} = {
q(united states virgin islands) => [ q(vir), q(United States Virgin Islands) ],
q(venezuela) => [ q(ven), q(Venezuela) ],
q(venezuela (bolivarian republic of)) => [ q(ven), q(Venezuela (Bolivarian Republic of)) ],
+ q(venezuela, bolivarian republic of ) => [ q(ven), q(Venezuela, Bolivarian Republic of ) ],
q(vietnam) => [ q(vnm), q(Vietnam) ],
q(virgin islands, british) => [ q(vgb), q(Virgin Islands, British) ],
q(virgin islands, u.s.) => [ q(vir), q(Virgin Islands, U.S.) ],
@@ -444,19 +460,26 @@ $Locale::Codes::Retired{'country'}{'alpha-3'}{'name'} = {
$Locale::Codes::Retired{'country'}{'dom'}{'name'} = {
q(ascension island) => [ q(ac), q(Ascension Island) ],
+ q(bolivia, plurinational state of) => [ q(bo), q(Bolivia, Plurinational State of) ],
q(bonaire, saint eustatius and saba) => [ q(bq), q(Bonaire, Saint Eustatius and Saba) ],
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(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)) ],
q(france, metropolitan) => [ q(FX), q(France, Metropolitan) ],
+ q(holy see (the) [vatican city state]) => [ q(va), q(Holy See (The) [Vatican City State]) ],
q(holy see (vatican city state)) => [ q(va), q(Holy See (Vatican City State)) ],
q(iran, islamic republic of) => [ q(ir), q(Iran, Islamic Republic of) ],
+ q(iran, the islamic republic of) => [ q(ir), q(Iran, The Islamic Republic of) ],
q(korea, democratic people's republic of) => [ q(kp), q(Korea, Democratic People's Republic of) ],
q(korea, republic of) => [ q(kr), q(Korea, Republic of) ],
q(libyan arab jamahiriya) => [ q(LY), q(Libyan Arab Jamahiriya) ],
q(micronesia, federated states of) => [ q(fm), q(Micronesia, Federated States of) ],
+ q(micronesia, the federated states of) => [ q(fm), q(Micronesia, The Federated States of) ],
q(moldova, republic of) => [ q(md), q(Moldova, Republic of) ],
+ q(netherlands antilles) => [ q(an), q(Netherlands Antilles) ],
q(portuguese timor) => [ q(TP), q(Portuguese Timor) ],
q(portuguese timor ) => [ q(TP), q(Portuguese Timor ) ],
q(saint helena, ascension and tristan da cunha) => [ q(SH), q(Saint Helena, Ascension and Tristan da Cunha) ],
@@ -465,7 +488,11 @@ $Locale::Codes::Retired{'country'}{'dom'}{'name'} = {
q(soviet union ) => [ q(SU), q(Soviet Union ) ],
q(taiwan) => [ q(TW), q(Taiwan) ],
q(taiwan, province of china) => [ q(tw), q(Taiwan, Province of China) ],
+ q(united kingdom) => [ q(gb), q(United Kingdom) ],
+ q(united states) => [ q(us), q(United States) ],
+ q(ussr) => [ q(su), q(USSR) ],
q(venezuela, bolivarian republic of) => [ q(ve), q(Venezuela, Bolivarian Republic of) ],
+ q(venezuela, bolivarian republic of ) => [ q(ve), q(Venezuela, Bolivarian Republic of ) ],
q(virgin islands, british) => [ q(vg), q(Virgin Islands, British) ],
q(virgin islands, u.s.) => [ q(vi), q(Virgin Islands, U.S.) ],
q(yugoslavia ) => [ q(YU), q(Yugoslavia ) ],
@@ -475,6 +502,7 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
q(antarctica) => [ q(010), q(Antarctica) ],
q(bolivia) => [ q(068), q(Bolivia) ],
q(bolivia (plurinational state of)) => [ q(068), q(Bolivia (Plurinational State of)) ],
+ q(bolivia, plurinational state of) => [ q(068), q(Bolivia, Plurinational State of) ],
q(bonaire, saint eustatius and saba) => [ q(535), q(Bonaire, Saint Eustatius and Saba) ],
q(bouvet island) => [ q(074), q(Bouvet Island) ],
q(british indian ocean territory) => [ q(086), q(British Indian Ocean Territory) ],
@@ -498,11 +526,13 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
q(french southern territories) => [ q(260), q(French Southern Territories) ],
q(heard island and mcdonald islands) => [ q(334), q(Heard Island and Mcdonald Islands) ],
q(holy see) => [ q(336), q(Holy See) ],
+ q(holy see (the) [vatican city state]) => [ q(336), q(Holy See (The) [Vatican City State]) ],
q(holy see (vatican city state)) => [ q(336), q(Holy See (Vatican City State)) ],
q(hong kong) => [ q(344), q(Hong Kong) ],
q(hong kong special administrative region of china) => [ q(344), q(Hong Kong Special Administrative Region of China) ],
q(iran (islamic republic of)) => [ q(364), q(Iran (Islamic Republic of)) ],
q(iran, islamic republic of) => [ q(364), q(Iran, Islamic Republic of) ],
+ q(iran, the islamic republic of) => [ q(364), q(Iran, The Islamic Republic of) ],
q(kazakstan) => [ q(398), q(Kazakstan) ],
q(korea, democratic people's republic of) => [ q(408), q(Korea, Democratic People's Republic of) ],
q(korea, republic of) => [ q(410), q(Korea, Republic of) ],
@@ -513,6 +543,7 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
q(macedonia, the former yugoslav republic of) => [ q(807), q(Macedonia, the Former Yugoslav Republic of) ],
q(micronesia (federated states of)) => [ q(583), q(Micronesia (Federated States of)) ],
q(micronesia, federated states of) => [ q(583), q(Micronesia, Federated States of) ],
+ q(micronesia, the federated states of) => [ q(583), q(Micronesia, The Federated States of) ],
q(moldova, republic of) => [ q(498), q(Moldova, Republic of) ],
q(netherlands antilles) => [ q(530), q(Netherlands Antilles) ],
q(palestinian territory, occupied) => [ q(275), q(Palestinian Territory, Occupied) ],
@@ -541,6 +572,7 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
q(united states virgin islands) => [ q(850), q(United States Virgin Islands) ],
q(venezuela) => [ q(862), q(Venezuela) ],
q(venezuela (bolivarian republic of)) => [ q(862), q(Venezuela (Bolivarian Republic of)) ],
+ q(venezuela, bolivarian republic of ) => [ q(862), q(Venezuela, Bolivarian Republic of ) ],
q(vietnam) => [ q(704), q(Vietnam) ],
q(virgin islands, british) => [ q(092), q(Virgin Islands, British) ],
q(virgin islands, u.s.) => [ q(850), q(Virgin Islands, U.S.) ],
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pm
index 89a8680b660..a2478c2acd1 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pm
@@ -1,7 +1,7 @@
package Locale::Codes::Currency;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -22,7 +22,7 @@ use Locale::Codes::Currency_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.30';
+$VERSION='3.34';
@ISA = qw(Exporter);
@EXPORT = qw(code2currency
currency2code
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pod
index 52ddd6387a5..39221f8d875 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pod
@@ -60,15 +60,15 @@ This is the set of three-digit numeric codes from ISO 4217.
=over 4
-=item B<code2currency ( CODE [,CODESET] )>
+=item B<code2currency ( CODE [,CODESET] [,'retired'])>
-=item B<currency2code ( NAME [,CODESET] )>
+=item B<currency2code ( NAME [,CODESET] [,'retired'])>
=item B<currency_code2code ( CODE ,CODESET ,CODESET2 )>
-=item B<all_currency_codes ( [CODESET] )>
+=item B<all_currency_codes ( [CODESET] [,'retired'])>
-=item B<all_currency_names ( [CODESET] )>
+=item B<all_currency_names ( [CODESET] [,'retired'])>
=item B<Locale::Codes::Currency::rename_currency ( CODE ,NEW_NAME [,CODESET] )>
@@ -119,7 +119,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001 Michael Hennecke
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2014 Sullivan Beck
+ 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.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Codes.pm
index df38cd9a9b0..812d8276cc7 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Codes.pm
+++ b/Master/tlpkg/tlperl/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: Thu Feb 27 15:44:26 EST 2014
+# Generated on: Thu Feb 19 20:50:17 GMT 2015
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
-$Locale::Codes::Data{'currency'}{'id'} = '0178';
+$Locale::Codes::Data{'currency'}{'id'} = '0177';
$Locale::Codes::Data{'currency'}{'id2names'} = {
q(0001) => [
@@ -119,7 +119,7 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Canadian Dollar),
],
q(0035) => [
- q(Cape Verde Escudo),
+ q(Cabo Verde Escudo),
],
q(0036) => [
q(Cayman Islands Dollar),
@@ -299,103 +299,103 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Swiss Franc),
],
q(0095) => [
- q(Lithuanian Litas),
+ q(Pataca),
],
q(0096) => [
- q(Pataca),
+ q(Denar),
],
q(0097) => [
- q(Denar),
+ q(Malagasy Ariary),
],
q(0098) => [
- q(Malagasy Ariary),
+ q(Kwacha),
],
q(0099) => [
- q(Kwacha),
+ q(Malaysian Ringgit),
],
q(0100) => [
- q(Malaysian Ringgit),
+ q(Rufiyaa),
],
q(0101) => [
- q(Rufiyaa),
+ q(Ouguiya),
],
q(0102) => [
- q(Ouguiya),
+ q(Mauritius Rupee),
],
q(0103) => [
- q(Mauritius Rupee),
+ q(ADB Unit of Account),
],
q(0104) => [
- q(ADB Unit of Account),
+ q(Mexican Peso),
],
q(0105) => [
- q(Mexican Peso),
+ q(Mexican Unidad de Inversion (UDI)),
],
q(0106) => [
- q(Mexican Unidad de Inversion (UDI)),
+ q(Moldovan Leu),
],
q(0107) => [
- q(Moldovan Leu),
+ q(Tugrik),
],
q(0108) => [
- q(Tugrik),
+ q(Moroccan Dirham),
],
q(0109) => [
- q(Moroccan Dirham),
+ q(Mozambique Metical),
],
q(0110) => [
- q(Mozambique Metical),
+ q(Kyat),
],
q(0111) => [
- q(Kyat),
+ q(Namibia Dollar),
],
q(0112) => [
- q(Namibia Dollar),
+ q(Nepalese Rupee),
],
q(0113) => [
- q(Nepalese Rupee),
+ q(Cordoba Oro),
],
q(0114) => [
- q(Cordoba Oro),
+ q(Naira),
],
q(0115) => [
- q(Naira),
+ q(Rial Omani),
],
q(0116) => [
- q(Rial Omani),
+ q(Pakistan Rupee),
],
q(0117) => [
- q(Pakistan Rupee),
+ q(Balboa),
],
q(0118) => [
- q(Balboa),
+ q(Kina),
],
q(0119) => [
- q(Kina),
+ q(Guarani),
],
q(0120) => [
- q(Guarani),
+ q(Nuevo Sol),
],
q(0121) => [
- q(Nuevo Sol),
+ q(Philippine Peso),
],
q(0122) => [
- q(Philippine Peso),
+ q(Zloty),
],
q(0123) => [
- q(Zloty),
+ q(Qatari Rial),
],
q(0124) => [
- q(Qatari Rial),
+ q(New Romanian Leu),
],
q(0125) => [
- q(New Romanian Leu),
+ q(Russian Ruble),
],
q(0126) => [
- q(Russian Ruble),
+ q(Rwanda Franc),
],
q(0127) => [
- q(Rwanda Franc),
+ q(Saint Helena Pound),
],
q(0128) => [
q(Tala),
@@ -494,64 +494,61 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(US Dollar (Next day)),
],
q(0160) => [
- q(US Dollar (Same day)),
- ],
- q(0161) => [
q(Uruguay Peso en Unidades Indexadas (URUIURUI)),
],
- q(0162) => [
+ q(0161) => [
q(Peso Uruguayo),
],
- q(0163) => [
+ q(0162) => [
q(Uzbekistan Sum),
],
- q(0164) => [
+ q(0163) => [
q(Vatu),
],
- q(0165) => [
+ q(0164) => [
q(Bolivar),
],
- q(0166) => [
+ q(0165) => [
q(Dong),
],
- q(0167) => [
+ q(0166) => [
q(Yemeni Rial),
],
- q(0168) => [
+ q(0167) => [
q(Zambian Kwacha),
],
- q(0169) => [
+ q(0168) => [
q(Zimbabwe Dollar),
],
- q(0170) => [
+ q(0169) => [
q(Bond Markets Unit European Composite Unit (EURCO)),
],
- q(0171) => [
+ q(0170) => [
q(Bond Markets Unit European Monetary Unit (E.M.U.-6)),
],
- q(0172) => [
+ q(0171) => [
q(Bond Markets Unit European Unit of Account 9 (E.U.A.-9)),
],
- q(0173) => [
+ q(0172) => [
q(Bond Markets Unit European Unit of Account 17 (E.U.A.-17)),
],
- q(0174) => [
+ q(0173) => [
q(Gold),
],
- q(0175) => [
+ q(0174) => [
q(Palladium),
],
- q(0176) => [
+ q(0175) => [
q(Platinum),
],
- q(0177) => [
+ q(0176) => [
q(Silver),
],
};
$Locale::Codes::Data{'currency'}{'alias2id'} = {
q(adb unit of account) => [
- q(0104),
+ q(0103),
q(0),
],
q(afghani) => [
@@ -595,7 +592,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(balboa) => [
- q(0118),
+ q(0117),
q(0),
],
q(barbados dollar) => [
@@ -615,7 +612,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(bolivar) => [
- q(0165),
+ q(0164),
q(0),
],
q(boliviano) => [
@@ -623,19 +620,19 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(bond markets unit european composite unit (eurco)) => [
- q(0170),
+ q(0169),
q(0),
],
q(bond markets unit european monetary unit (e.m.u.-6)) => [
- q(0171),
+ q(0170),
q(0),
],
q(bond markets unit european unit of account 17 (e.u.a.-17)) => [
- q(0173),
+ q(0172),
q(0),
],
q(bond markets unit european unit of account 9 (e.u.a.-9)) => [
- q(0172),
+ q(0171),
q(0),
],
q(brazilian real) => [
@@ -654,12 +651,12 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0031),
q(0),
],
- q(canadian dollar) => [
- q(0034),
+ q(cabo verde escudo) => [
+ q(0035),
q(0),
],
- q(cape verde escudo) => [
- q(0035),
+ q(canadian dollar) => [
+ q(0034),
q(0),
],
q(cayman islands dollar) => [
@@ -699,7 +696,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(cordoba oro) => [
- q(0114),
+ q(0113),
q(0),
],
q(costa rican colon) => [
@@ -727,7 +724,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(denar) => [
- q(0097),
+ q(0096),
q(0),
],
q(djibouti franc) => [
@@ -743,7 +740,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(dong) => [
- q(0166),
+ q(0165),
q(0),
],
q(east caribbean dollar) => [
@@ -787,7 +784,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(gold) => [
- q(0174),
+ q(0173),
q(0),
],
q(gourde) => [
@@ -795,7 +792,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(guarani) => [
- q(0120),
+ q(0119),
q(0),
],
q(guinea franc) => [
@@ -843,7 +840,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(kina) => [
- q(0119),
+ q(0118),
q(0),
],
q(kip) => [
@@ -855,7 +852,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(kwacha) => [
- q(0099),
+ q(0098),
q(0),
],
q(kwanza) => [
@@ -863,7 +860,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(kyat) => [
- q(0111),
+ q(0110),
q(0),
],
q(lari) => [
@@ -898,44 +895,40 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0142),
q(0),
],
- q(lithuanian litas) => [
- q(0095),
- q(0),
- ],
q(loti) => [
q(0090),
q(0),
],
q(malagasy ariary) => [
- q(0098),
+ q(0097),
q(0),
],
q(malaysian ringgit) => [
- q(0100),
+ q(0099),
q(0),
],
q(mauritius rupee) => [
- q(0103),
+ q(0102),
q(0),
],
q(mexican peso) => [
- q(0105),
+ q(0104),
q(0),
],
q(mexican unidad de inversion (udi)) => [
- q(0106),
+ q(0105),
q(0),
],
q(moldovan leu) => [
- q(0107),
+ q(0106),
q(0),
],
q(moroccan dirham) => [
- q(0109),
+ q(0108),
q(0),
],
q(mozambique metical) => [
- q(0110),
+ q(0109),
q(0),
],
q(mvdol) => [
@@ -943,7 +936,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(naira) => [
- q(0115),
+ q(0114),
q(0),
],
q(nakfa) => [
@@ -951,11 +944,11 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(namibia dollar) => [
- q(0112),
+ q(0111),
q(0),
],
q(nepalese rupee) => [
- q(0113),
+ q(0112),
q(0),
],
q(netherlands antillean guilder) => [
@@ -967,7 +960,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(new romanian leu) => [
- q(0125),
+ q(0124),
q(0),
],
q(new taiwan dollar) => [
@@ -991,11 +984,11 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(nuevo sol) => [
- q(0121),
+ q(0120),
q(0),
],
q(ouguiya) => [
- q(0102),
+ q(0101),
q(0),
],
q(pa'anga) => [
@@ -1003,15 +996,15 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(pakistan rupee) => [
- q(0117),
+ q(0116),
q(0),
],
q(palladium) => [
- q(0175),
+ q(0174),
q(0),
],
q(pataca) => [
- q(0096),
+ q(0095),
q(0),
],
q(peso convertible) => [
@@ -1019,15 +1012,15 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(peso uruguayo) => [
- q(0162),
+ q(0161),
q(0),
],
q(philippine peso) => [
- q(0122),
+ q(0121),
q(0),
],
q(platinum) => [
- q(0176),
+ q(0175),
q(0),
],
q(pound sterling) => [
@@ -1039,7 +1032,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(qatari rial) => [
- q(0124),
+ q(0123),
q(0),
],
q(quetzal) => [
@@ -1051,7 +1044,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(rial omani) => [
- q(0116),
+ q(0115),
q(0),
],
q(riel) => [
@@ -1059,7 +1052,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(rufiyaa) => [
- q(0101),
+ q(0100),
q(0),
],
q(rupiah) => [
@@ -1067,10 +1060,14 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(russian ruble) => [
- q(0126),
+ q(0125),
q(0),
],
q(rwanda franc) => [
+ q(0126),
+ q(0),
+ ],
+ q(saint helena pound) => [
q(0127),
q(0),
],
@@ -1091,7 +1088,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(silver) => [
- q(0177),
+ q(0176),
q(0),
],
q(singapore dollar) => [
@@ -1167,7 +1164,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(tugrik) => [
- q(0108),
+ q(0107),
q(0),
],
q(tunisian dinar) => [
@@ -1199,7 +1196,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(uruguay peso en unidades indexadas (uruiurui)) => [
- q(0161),
+ q(0160),
q(0),
],
q(us dollar) => [
@@ -1210,16 +1207,12 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0159),
q(0),
],
- q(us dollar (same day)) => [
- q(0160),
- q(0),
- ],
q(uzbekistan sum) => [
- q(0163),
+ q(0162),
q(0),
],
q(vatu) => [
- q(0164),
+ q(0163),
q(0),
],
q(wir euro) => [
@@ -1235,7 +1228,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(yemeni rial) => [
- q(0167),
+ q(0166),
q(0),
],
q(yen) => [
@@ -1247,15 +1240,15 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(zambian kwacha) => [
- q(0168),
+ q(0167),
q(0),
],
q(zimbabwe dollar) => [
- q(0169),
+ q(0168),
q(0),
],
q(zloty) => [
- q(0123),
+ q(0122),
q(0),
],
};
@@ -1610,84 +1603,80 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0090),
q(0),
],
- q(LTL) => [
- q(0095),
- q(0),
- ],
q(LYD) => [
q(0093),
q(0),
],
q(MAD) => [
- q(0109),
+ q(0108),
q(0),
],
q(MDL) => [
- q(0107),
+ q(0106),
q(0),
],
q(MGA) => [
- q(0098),
+ q(0097),
q(0),
],
q(MKD) => [
- q(0097),
+ q(0096),
q(0),
],
q(MMK) => [
- q(0111),
+ q(0110),
q(0),
],
q(MNT) => [
- q(0108),
+ q(0107),
q(0),
],
q(MOP) => [
- q(0096),
+ q(0095),
q(0),
],
q(MRO) => [
- q(0102),
+ q(0101),
q(0),
],
q(MUR) => [
- q(0103),
+ q(0102),
q(0),
],
q(MVR) => [
- q(0101),
+ q(0100),
q(0),
],
q(MWK) => [
- q(0099),
+ q(0098),
q(0),
],
q(MXN) => [
- q(0105),
+ q(0104),
q(0),
],
q(MXV) => [
- q(0106),
+ q(0105),
q(0),
],
q(MYR) => [
- q(0100),
+ q(0099),
q(0),
],
q(MZN) => [
- q(0110),
+ q(0109),
q(0),
],
q(NAD) => [
- q(0112),
+ q(0111),
q(0),
],
q(NGN) => [
- q(0115),
+ q(0114),
q(0),
],
q(NIO) => [
- q(0114),
+ q(0113),
q(0),
],
q(NOK) => [
@@ -1695,7 +1684,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(NPR) => [
- q(0113),
+ q(0112),
q(0),
],
q(NZD) => [
@@ -1703,43 +1692,43 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(OMR) => [
- q(0116),
+ q(0115),
q(0),
],
q(PAB) => [
- q(0118),
+ q(0117),
q(0),
],
q(PEN) => [
- q(0121),
+ q(0120),
q(0),
],
q(PGK) => [
- q(0119),
+ q(0118),
q(0),
],
q(PHP) => [
- q(0122),
+ q(0121),
q(0),
],
q(PKR) => [
- q(0117),
+ q(0116),
q(0),
],
q(PLN) => [
- q(0123),
+ q(0122),
q(0),
],
q(PYG) => [
- q(0120),
+ q(0119),
q(0),
],
q(QAR) => [
- q(0124),
+ q(0123),
q(0),
],
q(RON) => [
- q(0125),
+ q(0124),
q(0),
],
q(RSD) => [
@@ -1747,11 +1736,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(RUB) => [
- q(0126),
+ q(0125),
q(0),
],
q(RWF) => [
- q(0127),
+ q(0126),
q(0),
],
q(SAR) => [
@@ -1778,6 +1767,10 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0134),
q(0),
],
+ q(SHP) => [
+ q(0127),
+ q(0),
+ ],
q(SLL) => [
q(0133),
q(0),
@@ -1862,32 +1855,28 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0159),
q(0),
],
- q(USS) => [
- q(0160),
- q(0),
- ],
q(UYI) => [
- q(0161),
+ q(0160),
q(0),
],
q(UYU) => [
- q(0162),
+ q(0161),
q(0),
],
q(UZS) => [
- q(0163),
+ q(0162),
q(0),
],
q(VEF) => [
- q(0165),
+ q(0164),
q(0),
],
q(VND) => [
- q(0166),
+ q(0165),
q(0),
],
q(VUV) => [
- q(0164),
+ q(0163),
q(0),
],
q(WST) => [
@@ -1899,27 +1888,27 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(XAG) => [
- q(0177),
+ q(0176),
q(0),
],
q(XAU) => [
- q(0174),
+ q(0173),
q(0),
],
q(XBA) => [
- q(0170),
+ q(0169),
q(0),
],
q(XBB) => [
- q(0171),
+ q(0170),
q(0),
],
q(XBC) => [
- q(0172),
+ q(0171),
q(0),
],
q(XBD) => [
- q(0173),
+ q(0172),
q(0),
],
q(XCD) => [
@@ -1935,7 +1924,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(XPD) => [
- q(0175),
+ q(0174),
q(0),
],
q(XPF) => [
@@ -1943,7 +1932,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(XPT) => [
- q(0176),
+ q(0175),
q(0),
],
q(XSU) => [
@@ -1951,11 +1940,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(XUA) => [
- q(0104),
+ q(0103),
q(0),
],
q(YER) => [
- q(0167),
+ q(0166),
q(0),
],
q(ZAR) => [
@@ -1963,11 +1952,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(ZMW) => [
- q(0168),
+ q(0167),
q(0),
],
q(ZWL) => [
- q(0169),
+ q(0168),
q(0),
],
},
@@ -2037,7 +2026,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(104) => [
- q(0111),
+ q(0110),
q(0),
],
q(108) => [
@@ -2244,60 +2233,56 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0093),
q(0),
],
- q(440) => [
- q(0095),
- q(0),
- ],
q(446) => [
- q(0096),
+ q(0095),
q(0),
],
q(454) => [
- q(0099),
+ q(0098),
q(0),
],
q(458) => [
- q(0100),
+ q(0099),
q(0),
],
q(462) => [
- q(0101),
+ q(0100),
q(0),
],
q(478) => [
- q(0102),
+ q(0101),
q(0),
],
q(480) => [
- q(0103),
+ q(0102),
q(0),
],
q(484) => [
- q(0105),
+ q(0104),
q(0),
],
q(496) => [
- q(0108),
+ q(0107),
q(0),
],
q(498) => [
- q(0107),
+ q(0106),
q(0),
],
q(504) => [
- q(0109),
+ q(0108),
q(0),
],
q(512) => [
- q(0116),
+ q(0115),
q(0),
],
q(516) => [
- q(0112),
+ q(0111),
q(0),
],
q(524) => [
- q(0113),
+ q(0112),
q(0),
],
q(532) => [
@@ -2309,7 +2294,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(548) => [
- q(0164),
+ q(0163),
q(0),
],
q(554) => [
@@ -2317,11 +2302,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(558) => [
- q(0114),
+ q(0113),
q(0),
],
q(566) => [
- q(0115),
+ q(0114),
q(0),
],
q(578) => [
@@ -2329,38 +2314,42 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(586) => [
- q(0117),
+ q(0116),
q(0),
],
q(590) => [
- q(0118),
+ q(0117),
q(0),
],
q(598) => [
- q(0119),
+ q(0118),
q(0),
],
q(600) => [
- q(0120),
+ q(0119),
q(0),
],
q(604) => [
- q(0121),
+ q(0120),
q(0),
],
q(608) => [
- q(0122),
+ q(0121),
q(0),
],
q(634) => [
- q(0124),
+ q(0123),
q(0),
],
q(643) => [
- q(0126),
+ q(0125),
q(0),
],
q(646) => [
+ q(0126),
+ q(0),
+ ],
+ q(654) => [
q(0127),
q(0),
],
@@ -2385,7 +2374,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(704) => [
- q(0166),
+ q(0165),
q(0),
],
q(706) => [
@@ -2441,7 +2430,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(807) => [
- q(0097),
+ q(0096),
q(0),
],
q(818) => [
@@ -2461,11 +2450,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(858) => [
- q(0162),
+ q(0161),
q(0),
],
q(860) => [
- q(0163),
+ q(0162),
q(0),
],
q(882) => [
@@ -2473,7 +2462,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(886) => [
- q(0167),
+ q(0166),
q(0),
],
q(901) => [
@@ -2485,7 +2474,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(932) => [
- q(0169),
+ q(0168),
q(0),
],
q(934) => [
@@ -2497,7 +2486,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(937) => [
- q(0165),
+ q(0164),
q(0),
],
q(938) => [
@@ -2505,7 +2494,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(940) => [
- q(0161),
+ q(0160),
q(0),
],
q(941) => [
@@ -2513,7 +2502,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(943) => [
- q(0110),
+ q(0109),
q(0),
],
q(944) => [
@@ -2521,7 +2510,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(946) => [
- q(0125),
+ q(0124),
q(0),
],
q(947) => [
@@ -2553,23 +2542,23 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(955) => [
- q(0170),
+ q(0169),
q(0),
],
q(956) => [
- q(0171),
+ q(0170),
q(0),
],
q(957) => [
- q(0172),
+ q(0171),
q(0),
],
q(958) => [
- q(0173),
+ q(0172),
q(0),
],
q(959) => [
- q(0174),
+ q(0173),
q(0),
],
q(960) => [
@@ -2577,23 +2566,23 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(961) => [
- q(0177),
+ q(0176),
q(0),
],
q(962) => [
- q(0176),
+ q(0175),
q(0),
],
q(964) => [
- q(0175),
+ q(0174),
q(0),
],
q(965) => [
- q(0104),
+ q(0103),
q(0),
],
q(967) => [
- q(0168),
+ q(0167),
q(0),
],
q(968) => [
@@ -2601,7 +2590,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(969) => [
- q(0098),
+ q(0097),
q(0),
],
q(970) => [
@@ -2641,7 +2630,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(979) => [
- q(0106),
+ q(0105),
q(0),
],
q(980) => [
@@ -2657,7 +2646,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(985) => [
- q(0123),
+ q(0122),
q(0),
],
q(986) => [
@@ -2676,10 +2665,6 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0159),
q(0),
],
- q(998) => [
- q(0160),
- q(0),
- ],
},
};
@@ -2779,39 +2764,39 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0092) => q(LRD),
q(0093) => q(LYD),
q(0094) => q(CHF),
- q(0095) => q(LTL),
- q(0096) => q(MOP),
- q(0097) => q(MKD),
- q(0098) => q(MGA),
- q(0099) => q(MWK),
- q(0100) => q(MYR),
- q(0101) => q(MVR),
- q(0102) => q(MRO),
- q(0103) => q(MUR),
- q(0104) => q(XUA),
- q(0105) => q(MXN),
- q(0106) => q(MXV),
- q(0107) => q(MDL),
- q(0108) => q(MNT),
- q(0109) => q(MAD),
- q(0110) => q(MZN),
- q(0111) => q(MMK),
- q(0112) => q(NAD),
- q(0113) => q(NPR),
- q(0114) => q(NIO),
- q(0115) => q(NGN),
- q(0116) => q(OMR),
- q(0117) => q(PKR),
- q(0118) => q(PAB),
- q(0119) => q(PGK),
- q(0120) => q(PYG),
- q(0121) => q(PEN),
- q(0122) => q(PHP),
- q(0123) => q(PLN),
- q(0124) => q(QAR),
- q(0125) => q(RON),
- q(0126) => q(RUB),
- q(0127) => q(RWF),
+ q(0095) => q(MOP),
+ q(0096) => q(MKD),
+ q(0097) => q(MGA),
+ q(0098) => q(MWK),
+ q(0099) => q(MYR),
+ q(0100) => q(MVR),
+ q(0101) => q(MRO),
+ q(0102) => q(MUR),
+ q(0103) => q(XUA),
+ q(0104) => q(MXN),
+ q(0105) => q(MXV),
+ q(0106) => q(MDL),
+ q(0107) => q(MNT),
+ q(0108) => q(MAD),
+ q(0109) => q(MZN),
+ q(0110) => q(MMK),
+ q(0111) => q(NAD),
+ q(0112) => q(NPR),
+ q(0113) => q(NIO),
+ q(0114) => q(NGN),
+ q(0115) => q(OMR),
+ q(0116) => q(PKR),
+ q(0117) => q(PAB),
+ q(0118) => q(PGK),
+ q(0119) => q(PYG),
+ q(0120) => q(PEN),
+ q(0121) => q(PHP),
+ q(0122) => q(PLN),
+ q(0123) => q(QAR),
+ q(0124) => q(RON),
+ q(0125) => q(RUB),
+ q(0126) => q(RWF),
+ q(0127) => q(SHP),
q(0128) => q(WST),
q(0129) => q(STD),
q(0130) => q(SAR),
@@ -2844,24 +2829,23 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0157) => q(UAH),
q(0158) => q(AED),
q(0159) => q(USN),
- q(0160) => q(USS),
- q(0161) => q(UYI),
- q(0162) => q(UYU),
- q(0163) => q(UZS),
- q(0164) => q(VUV),
- q(0165) => q(VEF),
- q(0166) => q(VND),
- q(0167) => q(YER),
- q(0168) => q(ZMW),
- q(0169) => q(ZWL),
- q(0170) => q(XBA),
- q(0171) => q(XBB),
- q(0172) => q(XBC),
- q(0173) => q(XBD),
- q(0174) => q(XAU),
- q(0175) => q(XPD),
- q(0176) => q(XPT),
- q(0177) => q(XAG),
+ q(0160) => q(UYI),
+ q(0161) => q(UYU),
+ q(0162) => q(UZS),
+ q(0163) => q(VUV),
+ q(0164) => q(VEF),
+ q(0165) => q(VND),
+ q(0166) => q(YER),
+ q(0167) => q(ZMW),
+ q(0168) => q(ZWL),
+ q(0169) => q(XBA),
+ q(0170) => q(XBB),
+ q(0171) => q(XBC),
+ q(0172) => q(XBD),
+ q(0173) => q(XAU),
+ q(0174) => q(XPD),
+ q(0175) => q(XPT),
+ q(0176) => q(XAG),
},
q(num) => {
q(0001) => q(971),
@@ -2958,39 +2942,39 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0092) => q(430),
q(0093) => q(434),
q(0094) => q(756),
- q(0095) => q(440),
- q(0096) => q(446),
- q(0097) => q(807),
- q(0098) => q(969),
- q(0099) => q(454),
- q(0100) => q(458),
- q(0101) => q(462),
- q(0102) => q(478),
- q(0103) => q(480),
- q(0104) => q(965),
- q(0105) => q(484),
- q(0106) => q(979),
- q(0107) => q(498),
- q(0108) => q(496),
- q(0109) => q(504),
- q(0110) => q(943),
- q(0111) => q(104),
- q(0112) => q(516),
- q(0113) => q(524),
- q(0114) => q(558),
- q(0115) => q(566),
- q(0116) => q(512),
- q(0117) => q(586),
- q(0118) => q(590),
- q(0119) => q(598),
- q(0120) => q(600),
- q(0121) => q(604),
- q(0122) => q(608),
- q(0123) => q(985),
- q(0124) => q(634),
- q(0125) => q(946),
- q(0126) => q(643),
- q(0127) => q(646),
+ q(0095) => q(446),
+ q(0096) => q(807),
+ q(0097) => q(969),
+ q(0098) => q(454),
+ q(0099) => q(458),
+ q(0100) => q(462),
+ q(0101) => q(478),
+ q(0102) => q(480),
+ q(0103) => q(965),
+ q(0104) => q(484),
+ q(0105) => q(979),
+ q(0106) => q(498),
+ q(0107) => q(496),
+ q(0108) => q(504),
+ q(0109) => q(943),
+ q(0110) => q(104),
+ q(0111) => q(516),
+ q(0112) => q(524),
+ q(0113) => q(558),
+ q(0114) => q(566),
+ q(0115) => q(512),
+ q(0116) => q(586),
+ q(0117) => q(590),
+ q(0118) => q(598),
+ q(0119) => q(600),
+ q(0120) => q(604),
+ q(0121) => q(608),
+ q(0122) => q(985),
+ q(0123) => q(634),
+ q(0124) => q(946),
+ q(0125) => q(643),
+ q(0126) => q(646),
+ q(0127) => q(654),
q(0128) => q(882),
q(0129) => q(678),
q(0130) => q(682),
@@ -3023,24 +3007,23 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0157) => q(980),
q(0158) => q(784),
q(0159) => q(997),
- q(0160) => q(998),
- q(0161) => q(940),
- q(0162) => q(858),
- q(0163) => q(860),
- q(0164) => q(548),
- q(0165) => q(937),
- q(0166) => q(704),
- q(0167) => q(886),
- q(0168) => q(967),
- q(0169) => q(932),
- q(0170) => q(955),
- q(0171) => q(956),
- q(0172) => q(957),
- q(0173) => q(958),
- q(0174) => q(959),
- q(0175) => q(964),
- q(0176) => q(962),
- q(0177) => q(961),
+ q(0160) => q(940),
+ q(0161) => q(858),
+ q(0162) => q(860),
+ q(0163) => q(548),
+ q(0164) => q(937),
+ q(0165) => q(704),
+ q(0166) => q(886),
+ q(0167) => q(967),
+ q(0168) => q(932),
+ q(0169) => q(955),
+ q(0170) => q(956),
+ q(0171) => q(957),
+ q(0172) => q(958),
+ q(0173) => q(959),
+ q(0174) => q(964),
+ q(0175) => q(962),
+ q(0176) => q(961),
},
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Retired.pm
index 367da08a57e..eef9e73e7bb 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Retired.pm
+++ b/Master/tlpkg/tlperl/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 Mar 4 13:19:40 EST 2014
+# Generated on: Fri Feb 20 15:27:22 GMT 2015
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
$Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
q(ADP) => q(Andorran Peseta),
@@ -36,6 +36,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
q(GWP) => q(Guinea-Bissau Peso),
q(IEP) => q(Irish Pound),
q(ITL) => q(Italian Lira),
+ q(LTL) => q(Lithuanian Litas),
q(LUF) => q(Luxembourg Franc),
q(LVL) => q(Latvian Lats),
q(MGF) => q(Malagasy Franc),
@@ -55,6 +56,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
q(TPE) => q(Timor Escudo),
q(TRL) => q(Turkish Lira),
q(UAK) => q(Karbovanets),
+ q(USS) => q(US Dollar (Same day)),
q(VEB) => q(Bolivar),
q(XB5) => q(European Unit of Account 17),
q(XEU) => q(ECU (until 1998-12-31)),
@@ -68,7 +70,9 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
$Locale::Codes::Retired{'currency'}{'num'}{'code'} = {
q(428) => q(Latvian Lats),
+ q(440) => q(Lithuanian Litas),
q(654) => q(Saint Helena Pound),
+ q(998) => q(US Dollar (Same day)),
};
$Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
@@ -80,6 +84,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
q(bolivar fuerte) => [ q(VEF), q(Bolivar Fuerte) ],
q(bond markets units european composite unit (eurco)) => [ q(XBA), q(Bond Markets Units European Composite Unit (EURCO)) ],
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(convertible marks) => [ q(BAM), q(Convertible Marks) ],
q(cyprus pound) => [ q(CYP), q(Cyprus Pound) ],
@@ -108,6 +113,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
q(latvian lats) => [ q(LVL), q(Latvian Lats) ],
q(leu) => [ q(RON), q(Leu) ],
q(lev) => [ q(BGL), q(Lev) ],
+ q(lithuanian litas) => [ q(LTL), q(Lithuanian Litas) ],
q(luxembourg franc) => [ q(LUF), q(Luxembourg Franc) ],
q(malagasy franc) => [ q(MGF), q(Malagasy Franc) ],
q(maltese lira) => [ q(MTL), q(Maltese Lira) ],
@@ -141,17 +147,21 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
q(unidades de fomento) => [ q(CLF), q(Unidades de fomento) ],
q(unidades de formento) => [ q(CLF), q(Unidades de Formento) ],
q(uruguay peso en unidades indexadas) => [ q(UYI), q(Uruguay Peso en Unidades Indexadas) ],
+ q(us dollar (same day)) => [ q(USS), q(US Dollar (Same day)) ],
};
$Locale::Codes::Retired{'currency'}{'num'}{'name'} = {
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(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(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/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pm
index c37d41bf2ba..561e5d152d3 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pm
@@ -1,5 +1,5 @@
package Locale::Codes::LangExt;
-# Copyright (c) 2011-2014 Sullivan Beck
+# Copyright (c) 2011-2015 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -20,7 +20,7 @@ use Locale::Codes::LangExt_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.30';
+$VERSION='3.34';
@ISA = qw(Exporter);
@EXPORT = qw(code2langext
langext2code
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pod
index 47cb8abc3f4..4cc1b449bd6 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pod
@@ -52,15 +52,15 @@ This is the default code set.
=over 4
-=item B<code2langext ( CODE [,CODESET] )>
+=item B<code2langext ( CODE [,CODESET] [,'retired'])>
-=item B<langext2code ( NAME [,CODESET] )>
+=item B<langext2code ( NAME [,CODESET] [,'retired'])>
=item B<langext_code2code ( CODE ,CODESET ,CODESET2 )>
-=item B<all_langext_codes ( [CODESET] )>
+=item B<all_langext_codes ( [CODESET] [,'retired'])>
-=item B<all_langext_names ( [CODESET] )>
+=item B<all_langext_names ( [CODESET] [,'retired'])>
=item B<Locale::Codes::LangExt::rename_langext ( CODE ,NEW_NAME [,CODESET] )>
@@ -108,7 +108,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 2011-2014 Sullivan Beck
+ Copyright (c) 2011-2015 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/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Codes.pm
index a1c920ca5ae..c7e5e1e31f7 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Codes.pm
+++ b/Master/tlpkg/tlperl/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: Thu Feb 27 15:45:50 EST 2014
+# Generated on: Thu Feb 19 20:50:35 GMT 2015
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
-$Locale::Codes::Data{'langext'}{'id'} = '0228';
+$Locale::Codes::Data{'langext'}{'id'} = '0229';
$Locale::Codes::Data{'langext'}{'id2names'} = {
q(0001) => [
@@ -298,6 +298,7 @@ $Locale::Codes::Data{'langext'}{'id2names'} = {
q(Ho Chi Minh City Sign Language),
],
q(0093) => [
+ q(Hawai'i Sign Language (HSL)),
q(Hawai'i Pidgin Sign Language),
],
q(0094) => [
@@ -313,401 +314,405 @@ $Locale::Codes::Data{'langext'}{'id2names'} = {
q(Icelandic Sign Language),
],
q(0098) => [
- q(International Sign),
+ q(Inuit Sign Language),
],
q(0099) => [
- q(Indonesian Sign Language),
+ q(International Sign),
],
q(0100) => [
- q(Indian Sign Language),
+ q(Indonesian Sign Language),
],
q(0101) => [
- q(Italian Sign Language),
+ q(Indian Sign Language),
],
q(0102) => [
- q(Irish Sign Language),
+ q(Italian Sign Language),
],
q(0103) => [
- q(Israeli Sign Language),
+ q(Irish Sign Language),
],
q(0104) => [
- q(Jakun),
+ q(Israeli Sign Language),
],
q(0105) => [
- q(Jambi Malay),
+ q(Jakun),
],
q(0106) => [
- q(Jamaican Country Sign Language),
+ q(Jambi Malay),
],
q(0107) => [
- q(Jhankot Sign Language),
+ q(Jamaican Country Sign Language),
],
q(0108) => [
- q(Jamaican Sign Language),
+ q(Jhankot Sign Language),
],
q(0109) => [
- q(Jordanian Sign Language),
+ q(Jamaican Sign Language),
],
q(0110) => [
- q(Japanese Sign Language),
+ q(Jordanian Sign Language),
],
q(0111) => [
- q(Jumla Sign Language),
+ q(Japanese Sign Language),
],
q(0112) => [
- q(Selangor Sign Language),
+ q(Jumla Sign Language),
],
q(0113) => [
- q(Konkani (individual language)),
+ q(Selangor Sign Language),
],
q(0114) => [
- q(Kubu),
+ q(Konkani (individual language)),
],
q(0115) => [
- q(Korean Sign Language),
+ q(Kubu),
],
q(0116) => [
- q(Kerinci),
+ q(Korean Sign Language),
],
q(0117) => [
- q(Brunei),
+ q(Kerinci),
],
q(0118) => [
- q(Libyan Sign Language),
+ q(Brunei),
],
q(0119) => [
- q(Loncong),
+ q(Libyan Sign Language),
],
q(0120) => [
- q(Lubu),
+ q(Loncong),
],
q(0121) => [
- q(Col),
+ q(Lubu),
],
q(0122) => [
- q(Lithuanian Sign Language),
+ q(Col),
],
q(0123) => [
- q(Lyons Sign Language),
+ q(Lithuanian Sign Language),
],
q(0124) => [
- q(Latvian Sign Language),
+ q(Lyons Sign Language),
],
q(0125) => [
- q(Laos Sign Language),
+ q(Latvian Sign Language),
],
q(0126) => [
+ q(Laos Sign Language),
+ ],
+ q(0127) => [
q(Panamanian Sign Language),
q(Lengua de Senas Panamenas),
],
- q(0127) => [
+ q(0128) => [
q(Trinidad and Tobago Sign Language),
],
- q(0128) => [
+ q(0129) => [
q(Mauritian Sign Language),
],
- q(0129) => [
+ q(0130) => [
q(Latgalian),
],
- q(0130) => [
+ q(0131) => [
q(Standard Latvian),
],
- q(0131) => [
+ q(0132) => [
q(Literary Chinese),
],
- q(0132) => [
+ q(0133) => [
q(North Moluccan Malay),
],
- q(0133) => [
+ q(0134) => [
q(Maltese Sign Language),
],
- q(0134) => [
+ q(0135) => [
q(Kedah Malay),
],
- q(0135) => [
+ q(0136) => [
q(Pattani Malay),
],
- q(0136) => [
+ q(0137) => [
q(Bangka),
],
- q(0137) => [
+ q(0138) => [
q(Mexican Sign Language),
],
- q(0138) => [
+ q(0139) => [
q(Minangkabau),
],
- q(0139) => [
+ q(0140) => [
q(Min Bei Chinese),
],
- q(0140) => [
+ q(0141) => [
q(Kota Bangun Kutai Malay),
],
- q(0141) => [
+ q(0142) => [
q(Martha's Vineyard Sign Language),
],
- q(0142) => [
+ q(0143) => [
q(Yucatec Maya Sign Language),
],
- q(0143) => [
+ q(0144) => [
q(Sabah Malay),
],
- q(0144) => [
+ q(0145) => [
q(Mongolian Sign Language),
],
- q(0145) => [
+ q(0146) => [
q(Musi),
],
- q(0146) => [
+ q(0147) => [
q(Madagascar Sign Language),
],
- q(0147) => [
+ q(0148) => [
q(Monastic Sign Language),
],
- q(0148) => [
+ q(0149) => [
q(Mozambican Sign Language),
],
- q(0149) => [
+ q(0150) => [
q(Min Nan Chinese),
],
- q(0150) => [
+ q(0151) => [
q(Namibian Sign Language),
],
- q(0151) => [
+ q(0152) => [
q(Nicaraguan Sign Language),
],
- q(0152) => [
+ q(0153) => [
q(Nigerian Sign Language),
],
- q(0153) => [
+ q(0154) => [
q(Norwegian Sign Language),
],
- q(0154) => [
+ q(0155) => [
q(Nepalese Sign Language),
],
- q(0155) => [
+ q(0156) => [
q(Maritime Sign Language),
],
- q(0156) => [
+ q(0157) => [
q(New Zealand Sign Language),
],
- q(0157) => [
+ q(0158) => [
q(Old Kentish Sign Language),
],
- q(0158) => [
+ q(0159) => [
q(Orang Kanaq),
],
- q(0159) => [
+ q(0160) => [
q(Orang Seletar),
],
- q(0160) => [
+ q(0161) => [
q(Pekal),
],
- q(0161) => [
+ q(0162) => [
q(Sudanese Creole Arabic),
],
- q(0162) => [
+ q(0163) => [
q(Pakistan Sign Language),
],
- q(0163) => [
+ q(0164) => [
q(Peruvian Sign Language),
],
- q(0164) => [
+ q(0165) => [
q(Providencia Sign Language),
],
- q(0165) => [
+ q(0166) => [
q(Persian Sign Language),
],
- q(0166) => [
+ q(0167) => [
q(Plains Indian Sign Language),
],
- q(0167) => [
+ q(0168) => [
q(Central Malay),
],
- q(0168) => [
+ q(0169) => [
q(Penang Sign Language),
],
- q(0169) => [
+ q(0170) => [
q(Puerto Rican Sign Language),
],
- q(0170) => [
+ q(0171) => [
q(Polish Sign Language),
],
- q(0171) => [
+ q(0172) => [
q(Philippine Sign Language),
],
- q(0172) => [
+ q(0173) => [
q(Portuguese Sign Language),
],
- q(0173) => [
+ q(0174) => [
q(Paraguayan Sign Language),
q(Lengua de Senas del Paraguay),
],
- q(0174) => [
+ q(0175) => [
q(Romanian Sign Language),
],
- q(0175) => [
+ q(0176) => [
q(Rennellese Sign Language),
],
- q(0176) => [
+ q(0177) => [
q(Russian Sign Language),
],
- q(0177) => [
+ q(0178) => [
q(Saudi Arabian Sign Language),
],
- q(0178) => [
+ q(0179) => [
q(Langue des signes de Belgique Francophone),
q(French Belgian Sign Language),
],
- q(0179) => [
+ q(0180) => [
q(South African Sign Language),
],
- q(0180) => [
+ q(0181) => [
q(Swiss-German Sign Language),
],
- q(0181) => [
+ q(0182) => [
q(Sierra Leone Sign Language),
],
- q(0182) => [
+ q(0183) => [
q(Chadian Arabic),
],
- q(0183) => [
+ q(0184) => [
q(Swiss-Italian Sign Language),
],
- q(0184) => [
+ q(0185) => [
q(Singapore Sign Language),
],
- q(0185) => [
+ q(0186) => [
q(Albanian Sign Language),
],
- q(0186) => [
+ q(0187) => [
q(Sri Lankan Sign Language),
],
- q(0187) => [
+ q(0188) => [
q(Shihhi Arabic),
],
- q(0188) => [
+ q(0189) => [
q(Spanish Sign Language),
],
- q(0189) => [
+ q(0190) => [
q(Swiss-French Sign Language),
],
- q(0190) => [
+ q(0191) => [
q(Slovakian Sign Language),
],
- q(0191) => [
+ q(0192) => [
q(Congo Swahili),
],
- q(0192) => [
+ q(0193) => [
q(Swahili (individual language)),
q(Kiswahili),
],
- q(0193) => [
+ q(0194) => [
q(Swedish Sign Language),
],
- q(0194) => [
+ q(0195) => [
q(Al-Sayyid Bedouin Sign Language),
],
- q(0195) => [
+ q(0196) => [
q(Temuan),
],
- q(0196) => [
+ q(0197) => [
q(Tunisian Sign Language),
],
- q(0197) => [
+ q(0198) => [
q(Turkish Sign Language),
q(Turk Isaret Dili),
],
- q(0198) => [
+ q(0199) => [
q(Thai Sign Language),
],
- q(0199) => [
+ q(0200) => [
q(Taiwan Sign Language),
],
- q(0200) => [
+ q(0201) => [
q(Tebul Sign Language),
],
- q(0201) => [
+ q(0202) => [
q(Tanzanian Sign Language),
],
- q(0202) => [
+ q(0203) => [
q(Ugandan Sign Language),
],
- q(0203) => [
+ q(0204) => [
q(Uruguayan Sign Language),
],
- q(0204) => [
+ q(0205) => [
q(Ukrainian Sign Language),
],
- q(0205) => [
+ q(0206) => [
q(Urubu-Kaapor Sign Language),
q(Kaapor Sign Language),
],
- q(0206) => [
+ q(0207) => [
q(Urak Lawoi'),
],
- q(0207) => [
+ q(0208) => [
q(Northern Uzbek),
],
- q(0208) => [
+ q(0209) => [
q(Southern Uzbek),
],
- q(0209) => [
+ q(0210) => [
q(Vlaamse Gebarentaal),
q(Flemish Sign Language),
],
- q(0210) => [
+ q(0211) => [
q(Kaur),
],
- q(0211) => [
+ q(0212) => [
q(Tenggarong Kutai Malay),
],
- q(0212) => [
+ q(0213) => [
q(Moldova Sign Language),
],
- q(0213) => [
+ q(0214) => [
q(Venezuelan Sign Language),
],
- q(0214) => [
+ q(0215) => [
q(Valencian Sign Language),
q(Llengua de signes valenciana),
],
- q(0215) => [
- q(Wu Chinese),
- ],
q(0216) => [
- q(Kenyan Sign Language),
+ q(Wu Chinese),
],
q(0217) => [
- q(Malaysian Sign Language),
+ q(Kenyan Sign Language),
],
q(0218) => [
- q(Manado Malay),
+ q(Malaysian Sign Language),
],
q(0219) => [
- q(Moroccan Sign Language),
+ q(Manado Malay),
],
q(0220) => [
- q(Yiddish Sign Language),
+ q(Moroccan Sign Language),
],
q(0221) => [
- q(Yugoslavian Sign Language),
+ q(Yolnu Sign Language),
],
q(0222) => [
- q(Yue Chinese),
+ q(Yugoslavian Sign Language),
],
q(0223) => [
- q(Zimbabwe Sign Language),
+ q(Yue Chinese),
+ q(Cantonese),
],
q(0224) => [
- q(Malay (individual language)),
+ q(Zimbabwe Sign Language),
],
q(0225) => [
- q(Negeri Sembilan Malay),
+ q(Malay (individual language)),
],
q(0226) => [
- q(Zambian Sign Language),
+ q(Negeri Sembilan Malay),
],
q(0227) => [
+ q(Zambian Sign Language),
+ ],
+ q(0228) => [
q(Standard Malay),
],
};
@@ -722,11 +727,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(al-sayyid bedouin sign language) => [
- q(0194),
+ q(0195),
q(0),
],
q(albanian sign language) => [
- q(0185),
+ q(0186),
q(0),
],
q(algerian arabic) => [
@@ -786,7 +791,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(bangka) => [
- q(0136),
+ q(0137),
q(0),
],
q(banjar) => [
@@ -814,7 +819,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(brunei) => [
- q(0117),
+ q(0118),
q(0),
],
q(bukit malay) => [
@@ -825,16 +830,20 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0041),
q(0),
],
+ q(cantonese) => [
+ q(0223),
+ q(1),
+ ],
q(catalan sign language) => [
q(0054),
q(0),
],
q(central malay) => [
- q(0167),
+ q(0168),
q(0),
],
q(chadian arabic) => [
- q(0182),
+ q(0183),
q(0),
],
q(chadian sign language) => [
@@ -858,7 +867,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(col) => [
- q(0121),
+ q(0122),
q(0),
],
q(colombian sign language) => [
@@ -866,7 +875,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(congo swahili) => [
- q(0191),
+ q(0192),
q(0),
],
q(costa rican sign language) => [
@@ -946,11 +955,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(flemish sign language) => [
- q(0209),
+ q(0210),
q(1),
],
q(french belgian sign language) => [
- q(0178),
+ q(0179),
q(1),
],
q(french sign language) => [
@@ -1019,6 +1028,10 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
],
q(hawai'i pidgin sign language) => [
q(0093),
+ q(1),
+ ],
+ q(hawai'i sign language (hsl)) => [
+ q(0093),
q(0),
],
q(heung kong sau yue) => [
@@ -1054,51 +1067,55 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(indian sign language) => [
- q(0100),
+ q(0101),
q(0),
],
q(indonesian sign language) => [
- q(0099),
+ q(0100),
q(0),
],
q(international sign) => [
+ q(0099),
+ q(0),
+ ],
+ q(inuit sign language) => [
q(0098),
q(0),
],
q(irish sign language) => [
- q(0102),
+ q(0103),
q(0),
],
q(israeli sign language) => [
- q(0103),
+ q(0104),
q(0),
],
q(italian sign language) => [
- q(0101),
+ q(0102),
q(0),
],
q(jakun) => [
- q(0104),
+ q(0105),
q(0),
],
q(jamaican country sign language) => [
- q(0106),
+ q(0107),
q(0),
],
q(jamaican sign language) => [
- q(0108),
+ q(0109),
q(0),
],
q(jambi malay) => [
- q(0105),
+ q(0106),
q(0),
],
q(japanese sign language) => [
- q(0110),
+ q(0111),
q(0),
],
q(jhankot sign language) => [
- q(0107),
+ q(0108),
q(0),
],
q(jinyu chinese) => [
@@ -1106,67 +1123,67 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(jordanian sign language) => [
- q(0109),
+ q(0110),
q(0),
],
q(jumla sign language) => [
- q(0111),
+ q(0112),
q(0),
],
q(kaapor sign language) => [
- q(0205),
+ q(0206),
q(1),
],
q(kaur) => [
- q(0210),
+ q(0211),
q(0),
],
q(kedah malay) => [
- q(0134),
+ q(0135),
q(0),
],
q(kenyan sign language) => [
- q(0216),
+ q(0217),
q(0),
],
q(kerinci) => [
- q(0116),
+ q(0117),
q(0),
],
q(kiswahili) => [
- q(0192),
+ q(0193),
q(1),
],
q(konkani (individual language)) => [
- q(0113),
+ q(0114),
q(0),
],
q(korean sign language) => [
- q(0115),
+ q(0116),
q(0),
],
q(kota bangun kutai malay) => [
- q(0140),
+ q(0141),
q(0),
],
q(kubu) => [
- q(0114),
+ q(0115),
q(0),
],
q(langue des signes de belgique francophone) => [
- q(0178),
+ q(0179),
q(0),
],
q(laos sign language) => [
- q(0125),
+ q(0126),
q(0),
],
q(latgalian) => [
- q(0129),
+ q(0130),
q(0),
],
q(latvian sign language) => [
- q(0124),
+ q(0125),
q(0),
],
q(lengua de senas catalana) => [
@@ -1174,11 +1191,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(1),
],
q(lengua de senas del paraguay) => [
- q(0173),
+ q(0174),
q(1),
],
q(lengua de senas panamenas) => [
- q(0126),
+ q(0127),
q(1),
],
q(libyan arabic) => [
@@ -1186,15 +1203,15 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(libyan sign language) => [
- q(0118),
+ q(0119),
q(0),
],
q(literary chinese) => [
- q(0131),
+ q(0132),
q(0),
],
q(lithuanian sign language) => [
- q(0122),
+ q(0123),
q(0),
],
q(llengua de signes catalana) => [
@@ -1202,39 +1219,39 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(2),
],
q(llengua de signes valenciana) => [
- q(0214),
+ q(0215),
q(1),
],
q(loncong) => [
- q(0119),
+ q(0120),
q(0),
],
q(lubu) => [
- q(0120),
+ q(0121),
q(0),
],
q(lyons sign language) => [
- q(0123),
+ q(0124),
q(0),
],
q(madagascar sign language) => [
- q(0146),
+ q(0147),
q(0),
],
q(malay (individual language)) => [
- q(0224),
+ q(0225),
q(0),
],
q(malaysian sign language) => [
- q(0217),
+ q(0218),
q(0),
],
q(maltese sign language) => [
- q(0133),
+ q(0134),
q(0),
],
q(manado malay) => [
- q(0218),
+ q(0219),
q(0),
],
q(mandarin chinese) => [
@@ -1242,15 +1259,15 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(maritime sign language) => [
- q(0155),
+ q(0156),
q(0),
],
q(martha's vineyard sign language) => [
- q(0141),
+ q(0142),
q(0),
],
q(mauritian sign language) => [
- q(0128),
+ q(0129),
q(0),
],
q(mesopotamian arabic) => [
@@ -1258,11 +1275,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(mexican sign language) => [
- q(0137),
+ q(0138),
q(0),
],
q(min bei chinese) => [
- q(0139),
+ q(0140),
q(0),
],
q(min dong chinese) => [
@@ -1270,7 +1287,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(min nan chinese) => [
- q(0149),
+ q(0150),
q(0),
],
q(min zhong chinese) => [
@@ -1278,19 +1295,19 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(minangkabau) => [
- q(0138),
+ q(0139),
q(0),
],
q(moldova sign language) => [
- q(0212),
+ q(0213),
q(0),
],
q(monastic sign language) => [
- q(0147),
+ q(0148),
q(0),
],
q(mongolian sign language) => [
- q(0144),
+ q(0145),
q(0),
],
q(moroccan arabic) => [
@@ -1298,15 +1315,15 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(moroccan sign language) => [
- q(0219),
+ q(0220),
q(0),
],
q(mozambican sign language) => [
- q(0148),
+ q(0149),
q(0),
],
q(musi) => [
- q(0145),
+ q(0146),
q(0),
],
q(najdi arabic) => [
@@ -1314,27 +1331,27 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(namibian sign language) => [
- q(0150),
+ q(0151),
q(0),
],
q(negeri sembilan malay) => [
- q(0225),
+ q(0226),
q(0),
],
q(nepalese sign language) => [
- q(0154),
+ q(0155),
q(0),
],
q(new zealand sign language) => [
- q(0156),
+ q(0157),
q(0),
],
q(nicaraguan sign language) => [
- q(0151),
+ q(0152),
q(0),
],
q(nigerian sign language) => [
- q(0152),
+ q(0153),
q(0),
],
q(north levantine arabic) => [
@@ -1346,19 +1363,19 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(north moluccan malay) => [
- q(0132),
+ q(0133),
q(0),
],
q(northern uzbek) => [
- q(0207),
+ q(0208),
q(0),
],
q(norwegian sign language) => [
- q(0153),
+ q(0154),
q(0),
],
q(old kentish sign language) => [
- q(0157),
+ q(0158),
q(0),
],
q(omani arabic) => [
@@ -1366,63 +1383,63 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(orang kanaq) => [
- q(0158),
+ q(0159),
q(0),
],
q(orang seletar) => [
- q(0159),
+ q(0160),
q(0),
],
q(pakistan sign language) => [
- q(0162),
+ q(0163),
q(0),
],
q(panamanian sign language) => [
- q(0126),
+ q(0127),
q(0),
],
q(paraguayan sign language) => [
- q(0173),
+ q(0174),
q(0),
],
q(pattani malay) => [
- q(0135),
+ q(0136),
q(0),
],
q(pekal) => [
- q(0160),
+ q(0161),
q(0),
],
q(penang sign language) => [
- q(0168),
+ q(0169),
q(0),
],
q(persian sign language) => [
- q(0165),
+ q(0166),
q(0),
],
q(peruvian sign language) => [
- q(0163),
+ q(0164),
q(0),
],
q(philippine sign language) => [
- q(0171),
+ q(0172),
q(0),
],
q(plains indian sign language) => [
- q(0166),
+ q(0167),
q(0),
],
q(polish sign language) => [
- q(0170),
+ q(0171),
q(0),
],
q(portuguese sign language) => [
- q(0172),
+ q(0173),
q(0),
],
q(providencia sign language) => [
- q(0164),
+ q(0165),
q(0),
],
q(pu-xian chinese) => [
@@ -1430,7 +1447,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(puerto rican sign language) => [
- q(0169),
+ q(0170),
q(0),
],
q(quebec sign language) => [
@@ -1438,19 +1455,19 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(rennellese sign language) => [
- q(0175),
+ q(0176),
q(0),
],
q(romanian sign language) => [
- q(0174),
+ q(0175),
q(0),
],
q(russian sign language) => [
- q(0176),
+ q(0177),
q(0),
],
q(sabah malay) => [
- q(0143),
+ q(0144),
q(0),
],
q(saidi arabic) => [
@@ -1466,31 +1483,31 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(saudi arabian sign language) => [
- q(0177),
+ q(0178),
q(0),
],
q(selangor sign language) => [
- q(0112),
+ q(0113),
q(0),
],
q(shihhi arabic) => [
- q(0187),
+ q(0188),
q(0),
],
q(sierra leone sign language) => [
- q(0181),
+ q(0182),
q(0),
],
q(singapore sign language) => [
- q(0184),
+ q(0185),
q(0),
],
q(slovakian sign language) => [
- q(0190),
+ q(0191),
q(0),
],
q(south african sign language) => [
- q(0179),
+ q(0180),
q(0),
],
q(south levantine arabic) => [
@@ -1498,15 +1515,15 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(southern uzbek) => [
- q(0208),
+ q(0209),
q(0),
],
q(spanish sign language) => [
- q(0188),
+ q(0189),
q(0),
],
q(sri lankan sign language) => [
- q(0186),
+ q(0187),
q(0),
],
q(standard arabic) => [
@@ -1514,11 +1531,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(standard latvian) => [
- q(0130),
+ q(0131),
q(0),
],
q(standard malay) => [
- q(0227),
+ q(0228),
q(0),
],
q(sudanese arabic) => [
@@ -1526,7 +1543,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(sudanese creole arabic) => [
- q(0161),
+ q(0162),
q(0),
],
q(suomenruotsalainen viittomakieli) => [
@@ -1534,23 +1551,23 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(2),
],
q(swahili (individual language)) => [
- q(0192),
+ q(0193),
q(0),
],
q(swedish sign language) => [
- q(0193),
+ q(0194),
q(0),
],
q(swiss-french sign language) => [
- q(0189),
+ q(0190),
q(0),
],
q(swiss-german sign language) => [
- q(0180),
+ q(0181),
q(0),
],
q(swiss-italian sign language) => [
- q(0183),
+ q(0184),
q(0),
],
q(ta'izzi-adeni arabic) => [
@@ -1558,7 +1575,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(taiwan sign language) => [
- q(0199),
+ q(0200),
q(0),
],
q(tajiki arabic) => [
@@ -1566,27 +1583,27 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(tanzanian sign language) => [
- q(0201),
+ q(0202),
q(0),
],
q(tebul sign language) => [
- q(0200),
+ q(0201),
q(0),
],
q(temuan) => [
- q(0195),
+ q(0196),
q(0),
],
q(tenggarong kutai malay) => [
- q(0211),
+ q(0212),
q(0),
],
q(thai sign language) => [
- q(0198),
+ q(0199),
q(0),
],
q(trinidad and tobago sign language) => [
- q(0127),
+ q(0128),
q(0),
],
q(tunisian arabic) => [
@@ -1594,35 +1611,35 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(tunisian sign language) => [
- q(0196),
+ q(0197),
q(0),
],
q(turk isaret dili) => [
- q(0197),
+ q(0198),
q(1),
],
q(turkish sign language) => [
- q(0197),
+ q(0198),
q(0),
],
q(ugandan sign language) => [
- q(0202),
+ q(0203),
q(0),
],
q(ukrainian sign language) => [
- q(0204),
+ q(0205),
q(0),
],
q(urak lawoi') => [
- q(0206),
+ q(0207),
q(0),
],
q(urubu-kaapor sign language) => [
- q(0205),
+ q(0206),
q(0),
],
q(uruguayan sign language) => [
- q(0203),
+ q(0204),
q(0),
],
q(uzbeki arabic) => [
@@ -1630,47 +1647,47 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(valencian sign language) => [
- q(0214),
+ q(0215),
q(0),
],
q(venezuelan sign language) => [
- q(0213),
+ q(0214),
q(0),
],
q(vlaamse gebarentaal) => [
- q(0209),
+ q(0210),
q(0),
],
q(wu chinese) => [
- q(0215),
+ q(0216),
q(0),
],
q(xiang chinese) => [
q(0096),
q(0),
],
- q(yiddish sign language) => [
- q(0220),
+ q(yolnu sign language) => [
+ q(0221),
q(0),
],
q(yucatec maya sign language) => [
- q(0142),
+ q(0143),
q(0),
],
q(yue chinese) => [
- q(0222),
+ q(0223),
q(0),
],
q(yugoslavian sign language) => [
- q(0221),
+ q(0222),
q(0),
],
q(zambian sign language) => [
- q(0226),
+ q(0227),
q(0),
],
q(zimbabwe sign language) => [
- q(0223),
+ q(0224),
q(0),
],
};
@@ -2065,526 +2082,530 @@ $Locale::Codes::Data{'langext'}{'code2id'} = {
q(0097),
q(0),
],
- q(ils) => [
+ q(iks) => [
q(0098),
q(0),
],
- q(inl) => [
+ q(ils) => [
q(0099),
q(0),
],
- q(ins) => [
+ q(inl) => [
q(0100),
q(0),
],
- q(ise) => [
+ q(ins) => [
q(0101),
q(0),
],
- q(isg) => [
+ q(ise) => [
q(0102),
q(0),
],
- q(isr) => [
+ q(isg) => [
q(0103),
q(0),
],
- q(jak) => [
+ q(isr) => [
q(0104),
q(0),
],
- q(jax) => [
+ q(jak) => [
q(0105),
q(0),
],
- q(jcs) => [
+ q(jax) => [
q(0106),
q(0),
],
- q(jhs) => [
+ q(jcs) => [
q(0107),
q(0),
],
- q(jls) => [
+ q(jhs) => [
q(0108),
q(0),
],
- q(jos) => [
+ q(jls) => [
q(0109),
q(0),
],
- q(jsl) => [
+ q(jos) => [
q(0110),
q(0),
],
- q(jus) => [
+ q(jsl) => [
q(0111),
q(0),
],
- q(kgi) => [
+ q(jus) => [
q(0112),
q(0),
],
- q(knn) => [
+ q(kgi) => [
q(0113),
q(0),
],
- q(kvb) => [
+ q(knn) => [
q(0114),
q(0),
],
- q(kvk) => [
+ q(kvb) => [
q(0115),
q(0),
],
- q(kvr) => [
+ q(kvk) => [
q(0116),
q(0),
],
- q(kxd) => [
+ q(kvr) => [
q(0117),
q(0),
],
- q(lbs) => [
+ q(kxd) => [
q(0118),
q(0),
],
- q(lce) => [
+ q(lbs) => [
q(0119),
q(0),
],
- q(lcf) => [
+ q(lce) => [
q(0120),
q(0),
],
- q(liw) => [
+ q(lcf) => [
q(0121),
q(0),
],
- q(lls) => [
+ q(liw) => [
q(0122),
q(0),
],
- q(lsg) => [
+ q(lls) => [
q(0123),
q(0),
],
- q(lsl) => [
+ q(lsg) => [
q(0124),
q(0),
],
- q(lso) => [
+ q(lsl) => [
q(0125),
q(0),
],
- q(lsp) => [
+ q(lso) => [
q(0126),
q(0),
],
- q(lst) => [
+ q(lsp) => [
q(0127),
q(0),
],
- q(lsy) => [
+ q(lst) => [
q(0128),
q(0),
],
- q(ltg) => [
+ q(lsy) => [
q(0129),
q(0),
],
- q(lvs) => [
+ q(ltg) => [
q(0130),
q(0),
],
- q(lzh) => [
+ q(lvs) => [
q(0131),
q(0),
],
- q(max) => [
+ q(lzh) => [
q(0132),
q(0),
],
- q(mdl) => [
+ q(max) => [
q(0133),
q(0),
],
- q(meo) => [
+ q(mdl) => [
q(0134),
q(0),
],
- q(mfa) => [
+ q(meo) => [
q(0135),
q(0),
],
- q(mfb) => [
+ q(mfa) => [
q(0136),
q(0),
],
- q(mfs) => [
+ q(mfb) => [
q(0137),
q(0),
],
- q(min) => [
+ q(mfs) => [
q(0138),
q(0),
],
- q(mnp) => [
+ q(min) => [
q(0139),
q(0),
],
- q(mqg) => [
+ q(mnp) => [
q(0140),
q(0),
],
- q(mre) => [
+ q(mqg) => [
q(0141),
q(0),
],
- q(msd) => [
+ q(mre) => [
q(0142),
q(0),
],
- q(msi) => [
+ q(msd) => [
q(0143),
q(0),
],
- q(msr) => [
+ q(msi) => [
q(0144),
q(0),
],
- q(mui) => [
+ q(msr) => [
q(0145),
q(0),
],
- q(mzc) => [
+ q(mui) => [
q(0146),
q(0),
],
- q(mzg) => [
+ q(mzc) => [
q(0147),
q(0),
],
- q(mzy) => [
+ q(mzg) => [
q(0148),
q(0),
],
- q(nan) => [
+ q(mzy) => [
q(0149),
q(0),
],
- q(nbs) => [
+ q(nan) => [
q(0150),
q(0),
],
- q(ncs) => [
+ q(nbs) => [
q(0151),
q(0),
],
- q(nsi) => [
+ q(ncs) => [
q(0152),
q(0),
],
- q(nsl) => [
+ q(nsi) => [
q(0153),
q(0),
],
- q(nsp) => [
+ q(nsl) => [
q(0154),
q(0),
],
- q(nsr) => [
+ q(nsp) => [
q(0155),
q(0),
],
- q(nzs) => [
+ q(nsr) => [
q(0156),
q(0),
],
- q(okl) => [
+ q(nzs) => [
q(0157),
q(0),
],
- q(orn) => [
+ q(okl) => [
q(0158),
q(0),
],
- q(ors) => [
+ q(orn) => [
q(0159),
q(0),
],
- q(pel) => [
+ q(ors) => [
q(0160),
q(0),
],
- q(pga) => [
+ q(pel) => [
q(0161),
q(0),
],
- q(pks) => [
+ q(pga) => [
q(0162),
q(0),
],
- q(prl) => [
+ q(pks) => [
q(0163),
q(0),
],
- q(prz) => [
+ q(prl) => [
q(0164),
q(0),
],
- q(psc) => [
+ q(prz) => [
q(0165),
q(0),
],
- q(psd) => [
+ q(psc) => [
q(0166),
q(0),
],
- q(pse) => [
+ q(psd) => [
q(0167),
q(0),
],
- q(psg) => [
+ q(pse) => [
q(0168),
q(0),
],
- q(psl) => [
+ q(psg) => [
q(0169),
q(0),
],
- q(pso) => [
+ q(psl) => [
q(0170),
q(0),
],
- q(psp) => [
+ q(pso) => [
q(0171),
q(0),
],
- q(psr) => [
+ q(psp) => [
q(0172),
q(0),
],
- q(pys) => [
+ q(psr) => [
q(0173),
q(0),
],
- q(rms) => [
+ q(pys) => [
q(0174),
q(0),
],
- q(rsi) => [
+ q(rms) => [
q(0175),
q(0),
],
- q(rsl) => [
+ q(rsi) => [
q(0176),
q(0),
],
- q(sdl) => [
+ q(rsl) => [
q(0177),
q(0),
],
- q(sfb) => [
+ q(sdl) => [
q(0178),
q(0),
],
- q(sfs) => [
+ q(sfb) => [
q(0179),
q(0),
],
- q(sgg) => [
+ q(sfs) => [
q(0180),
q(0),
],
- q(sgx) => [
+ q(sgg) => [
q(0181),
q(0),
],
- q(shu) => [
+ q(sgx) => [
q(0182),
q(0),
],
- q(slf) => [
+ q(shu) => [
q(0183),
q(0),
],
- q(sls) => [
+ q(slf) => [
q(0184),
q(0),
],
- q(sqk) => [
+ q(sls) => [
q(0185),
q(0),
],
- q(sqs) => [
+ q(sqk) => [
q(0186),
q(0),
],
- q(ssh) => [
+ q(sqs) => [
q(0187),
q(0),
],
- q(ssp) => [
+ q(ssh) => [
q(0188),
q(0),
],
- q(ssr) => [
+ q(ssp) => [
q(0189),
q(0),
],
- q(svk) => [
+ q(ssr) => [
q(0190),
q(0),
],
- q(swc) => [
+ q(svk) => [
q(0191),
q(0),
],
- q(swh) => [
+ q(swc) => [
q(0192),
q(0),
],
- q(swl) => [
+ q(swh) => [
q(0193),
q(0),
],
- q(syy) => [
+ q(swl) => [
q(0194),
q(0),
],
- q(tmw) => [
+ q(syy) => [
q(0195),
q(0),
],
- q(tse) => [
+ q(tmw) => [
q(0196),
q(0),
],
- q(tsm) => [
+ q(tse) => [
q(0197),
q(0),
],
- q(tsq) => [
+ q(tsm) => [
q(0198),
q(0),
],
- q(tss) => [
+ q(tsq) => [
q(0199),
q(0),
],
- q(tsy) => [
+ q(tss) => [
q(0200),
q(0),
],
- q(tza) => [
+ q(tsy) => [
q(0201),
q(0),
],
- q(ugn) => [
+ q(tza) => [
q(0202),
q(0),
],
- q(ugy) => [
+ q(ugn) => [
q(0203),
q(0),
],
- q(ukl) => [
+ q(ugy) => [
q(0204),
q(0),
],
- q(uks) => [
+ q(ukl) => [
q(0205),
q(0),
],
- q(urk) => [
+ q(uks) => [
q(0206),
q(0),
],
- q(uzn) => [
+ q(urk) => [
q(0207),
q(0),
],
- q(uzs) => [
+ q(uzn) => [
q(0208),
q(0),
],
- q(vgt) => [
+ q(uzs) => [
q(0209),
q(0),
],
- q(vkk) => [
+ q(vgt) => [
q(0210),
q(0),
],
- q(vkt) => [
+ q(vkk) => [
q(0211),
q(0),
],
- q(vsi) => [
+ q(vkt) => [
q(0212),
q(0),
],
- q(vsl) => [
+ q(vsi) => [
q(0213),
q(0),
],
- q(vsv) => [
+ q(vsl) => [
q(0214),
q(0),
],
- q(wuu) => [
+ q(vsv) => [
q(0215),
q(0),
],
- q(xki) => [
+ q(wuu) => [
q(0216),
q(0),
],
- q(xml) => [
+ q(xki) => [
q(0217),
q(0),
],
- q(xmm) => [
+ q(xml) => [
q(0218),
q(0),
],
- q(xms) => [
+ q(xmm) => [
q(0219),
q(0),
],
- q(yds) => [
+ q(xms) => [
q(0220),
q(0),
],
- q(ysl) => [
+ q(ygs) => [
q(0221),
q(0),
],
- q(yue) => [
+ q(ysl) => [
q(0222),
q(0),
],
- q(zib) => [
+ q(yue) => [
q(0223),
q(0),
],
- q(zlm) => [
+ q(zib) => [
q(0224),
q(0),
],
- q(zmi) => [
+ q(zlm) => [
q(0225),
q(0),
],
- q(zsl) => [
+ q(zmi) => [
q(0226),
q(0),
],
- q(zsm) => [
+ q(zsl) => [
q(0227),
q(0),
],
+ q(zsm) => [
+ q(0228),
+ q(0),
+ ],
},
};
@@ -2687,136 +2708,137 @@ $Locale::Codes::Data{'langext'}{'id2code'} = {
q(0095) => q(hsl),
q(0096) => q(hsn),
q(0097) => q(icl),
- q(0098) => q(ils),
- q(0099) => q(inl),
- q(0100) => q(ins),
- q(0101) => q(ise),
- q(0102) => q(isg),
- q(0103) => q(isr),
- q(0104) => q(jak),
- q(0105) => q(jax),
- q(0106) => q(jcs),
- q(0107) => q(jhs),
- q(0108) => q(jls),
- q(0109) => q(jos),
- q(0110) => q(jsl),
- q(0111) => q(jus),
- q(0112) => q(kgi),
- q(0113) => q(knn),
- q(0114) => q(kvb),
- q(0115) => q(kvk),
- q(0116) => q(kvr),
- q(0117) => q(kxd),
- q(0118) => q(lbs),
- q(0119) => q(lce),
- q(0120) => q(lcf),
- q(0121) => q(liw),
- q(0122) => q(lls),
- q(0123) => q(lsg),
- q(0124) => q(lsl),
- q(0125) => q(lso),
- q(0126) => q(lsp),
- q(0127) => q(lst),
- q(0128) => q(lsy),
- q(0129) => q(ltg),
- q(0130) => q(lvs),
- q(0131) => q(lzh),
- q(0132) => q(max),
- q(0133) => q(mdl),
- q(0134) => q(meo),
- q(0135) => q(mfa),
- q(0136) => q(mfb),
- q(0137) => q(mfs),
- q(0138) => q(min),
- q(0139) => q(mnp),
- q(0140) => q(mqg),
- q(0141) => q(mre),
- q(0142) => q(msd),
- q(0143) => q(msi),
- q(0144) => q(msr),
- q(0145) => q(mui),
- q(0146) => q(mzc),
- q(0147) => q(mzg),
- q(0148) => q(mzy),
- q(0149) => q(nan),
- q(0150) => q(nbs),
- q(0151) => q(ncs),
- q(0152) => q(nsi),
- q(0153) => q(nsl),
- q(0154) => q(nsp),
- q(0155) => q(nsr),
- q(0156) => q(nzs),
- q(0157) => q(okl),
- q(0158) => q(orn),
- q(0159) => q(ors),
- q(0160) => q(pel),
- q(0161) => q(pga),
- q(0162) => q(pks),
- q(0163) => q(prl),
- q(0164) => q(prz),
- q(0165) => q(psc),
- q(0166) => q(psd),
- q(0167) => q(pse),
- q(0168) => q(psg),
- q(0169) => q(psl),
- q(0170) => q(pso),
- q(0171) => q(psp),
- q(0172) => q(psr),
- q(0173) => q(pys),
- q(0174) => q(rms),
- q(0175) => q(rsi),
- q(0176) => q(rsl),
- q(0177) => q(sdl),
- q(0178) => q(sfb),
- q(0179) => q(sfs),
- q(0180) => q(sgg),
- q(0181) => q(sgx),
- q(0182) => q(shu),
- q(0183) => q(slf),
- q(0184) => q(sls),
- q(0185) => q(sqk),
- q(0186) => q(sqs),
- q(0187) => q(ssh),
- q(0188) => q(ssp),
- q(0189) => q(ssr),
- q(0190) => q(svk),
- q(0191) => q(swc),
- q(0192) => q(swh),
- q(0193) => q(swl),
- q(0194) => q(syy),
- q(0195) => q(tmw),
- q(0196) => q(tse),
- q(0197) => q(tsm),
- q(0198) => q(tsq),
- q(0199) => q(tss),
- q(0200) => q(tsy),
- q(0201) => q(tza),
- q(0202) => q(ugn),
- q(0203) => q(ugy),
- q(0204) => q(ukl),
- q(0205) => q(uks),
- q(0206) => q(urk),
- q(0207) => q(uzn),
- q(0208) => q(uzs),
- q(0209) => q(vgt),
- q(0210) => q(vkk),
- q(0211) => q(vkt),
- q(0212) => q(vsi),
- q(0213) => q(vsl),
- q(0214) => q(vsv),
- q(0215) => q(wuu),
- q(0216) => q(xki),
- q(0217) => q(xml),
- q(0218) => q(xmm),
- q(0219) => q(xms),
- q(0220) => q(yds),
- q(0221) => q(ysl),
- q(0222) => q(yue),
- q(0223) => q(zib),
- q(0224) => q(zlm),
- q(0225) => q(zmi),
- q(0226) => q(zsl),
- q(0227) => q(zsm),
+ q(0098) => q(iks),
+ q(0099) => q(ils),
+ q(0100) => q(inl),
+ q(0101) => q(ins),
+ q(0102) => q(ise),
+ q(0103) => q(isg),
+ q(0104) => q(isr),
+ q(0105) => q(jak),
+ q(0106) => q(jax),
+ q(0107) => q(jcs),
+ q(0108) => q(jhs),
+ q(0109) => q(jls),
+ q(0110) => q(jos),
+ q(0111) => q(jsl),
+ q(0112) => q(jus),
+ q(0113) => q(kgi),
+ q(0114) => q(knn),
+ q(0115) => q(kvb),
+ q(0116) => q(kvk),
+ q(0117) => q(kvr),
+ q(0118) => q(kxd),
+ q(0119) => q(lbs),
+ q(0120) => q(lce),
+ q(0121) => q(lcf),
+ q(0122) => q(liw),
+ q(0123) => q(lls),
+ q(0124) => q(lsg),
+ q(0125) => q(lsl),
+ q(0126) => q(lso),
+ q(0127) => q(lsp),
+ q(0128) => q(lst),
+ q(0129) => q(lsy),
+ q(0130) => q(ltg),
+ q(0131) => q(lvs),
+ q(0132) => q(lzh),
+ q(0133) => q(max),
+ q(0134) => q(mdl),
+ q(0135) => q(meo),
+ q(0136) => q(mfa),
+ q(0137) => q(mfb),
+ q(0138) => q(mfs),
+ q(0139) => q(min),
+ q(0140) => q(mnp),
+ q(0141) => q(mqg),
+ q(0142) => q(mre),
+ q(0143) => q(msd),
+ q(0144) => q(msi),
+ q(0145) => q(msr),
+ q(0146) => q(mui),
+ q(0147) => q(mzc),
+ q(0148) => q(mzg),
+ q(0149) => q(mzy),
+ q(0150) => q(nan),
+ q(0151) => q(nbs),
+ q(0152) => q(ncs),
+ q(0153) => q(nsi),
+ q(0154) => q(nsl),
+ q(0155) => q(nsp),
+ q(0156) => q(nsr),
+ q(0157) => q(nzs),
+ q(0158) => q(okl),
+ q(0159) => q(orn),
+ 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(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(ysl),
+ q(0223) => q(yue),
+ q(0224) => q(zib),
+ q(0225) => q(zlm),
+ q(0226) => q(zmi),
+ q(0227) => q(zsl),
+ q(0228) => q(zsm),
},
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Retired.pm
index 0020e0898fa..4fe85fab04e 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Retired.pm
+++ b/Master/tlpkg/tlperl/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 Mar 4 13:19:40 EST 2014
+# Generated on: Fri Feb 20 15:27:22 GMT 2015
use strict;
require 5.006;
@@ -11,12 +11,15 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
$Locale::Codes::Retired{'langext'}{'alpha'}{'code'} = {
+ 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(yiddish sign language) => [ q(yds), q(Yiddish Sign Language) ],
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pm
index 9d9075bd735..a83c82d8dec 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pm
@@ -1,5 +1,5 @@
package Locale::Codes::LangFam;
-# Copyright (c) 2011-2014 Sullivan Beck
+# Copyright (c) 2011-2015 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -20,7 +20,7 @@ use Locale::Codes::LangFam_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.30';
+$VERSION='3.34';
@ISA = qw(Exporter);
@EXPORT = qw(code2langfam
langfam2code
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pod
index 0b597d488c4..00d60a8a1e7 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pod
@@ -52,15 +52,15 @@ This is the default code set.
=over 4
-=item B<code2langfam ( CODE [,CODESET] )>
+=item B<code2langfam ( CODE [,CODESET] [,'retired'])>
-=item B<langfam2code ( NAME [,CODESET] )>
+=item B<langfam2code ( NAME [,CODESET] [,'retired'])>
=item B<langfam_code2code ( CODE ,CODESET ,CODESET2 )>
-=item B<all_langfam_codes ( [CODESET] )>
+=item B<all_langfam_codes ( [CODESET] [,'retired'])>
-=item B<all_langfam_names ( [CODESET] )>
+=item B<all_langfam_names ( [CODESET] [,'retired'])>
=item B<Locale::Codes::LangFam::rename_langfam ( CODE ,NEW_NAME [,CODESET] )>
@@ -108,7 +108,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 2011-2014 Sullivan Beck
+ Copyright (c) 2011-2015 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/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Codes.pm
index 254fdec6f8b..c1988a15ebd 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Codes.pm
+++ b/Master/tlpkg/tlperl/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: Thu Feb 27 15:46:01 EST 2014
+# Generated on: Thu Feb 19 20:50:47 GMT 2015
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
$Locale::Codes::Data{'langfam'}{'id'} = '0116';
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Retired.pm
index 9549bb8fa22..7fb4daf15de 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Retired.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Retired.pm
@@ -26,7 +26,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2014 Sullivan Beck
+ 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.
@@ -38,7 +38,7 @@ use warnings;
require 5.002;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
$Locale::Codes::Retired{'langfam'}{'alpha'}{'code'} = {
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pm
index 96f7e15c9f1..9d9fc396a4a 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pm
@@ -1,5 +1,5 @@
package Locale::Codes::LangVar;
-# Copyright (c) 2011-2014 Sullivan Beck
+# Copyright (c) 2011-2015 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -20,7 +20,7 @@ use Locale::Codes::LangVar_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.30';
+$VERSION='3.34';
@ISA = qw(Exporter);
@EXPORT = qw(code2langvar
langvar2code
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pod
index e0a3c068883..35d979b26a8 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pod
@@ -54,15 +54,15 @@ This is the default code set.
=over 4
-=item B<code2langvar ( CODE [,CODESET] )>
+=item B<code2langvar ( CODE [,CODESET] [,'retired'])>
-=item B<langvar2code ( NAME [,CODESET] )>
+=item B<langvar2code ( NAME [,CODESET] [,'retired'])>
=item B<langvar_code2code ( CODE ,CODESET ,CODESET2 )>
-=item B<all_langvar_codes ( [CODESET] )>
+=item B<all_langvar_codes ( [CODESET] [,'retired'])>
-=item B<all_langvar_names ( [CODESET] )>
+=item B<all_langvar_names ( [CODESET] [,'retired'])>
=item B<Locale::Codes::LangVar::rename_langvar ( CODE ,NEW_NAME [,CODESET] )>
@@ -110,7 +110,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 2011-2014 Sullivan Beck
+ Copyright (c) 2011-2015 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/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Codes.pm
index 1003f22be32..49daafa1d85 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Codes.pm
+++ b/Master/tlpkg/tlperl/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: Thu Feb 27 15:45:55 EST 2014
+# Generated on: Thu Feb 19 20:50:44 GMT 2015
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
-$Locale::Codes::Data{'langvar'}{'id'} = '0067';
+$Locale::Codes::Data{'langvar'}{'id'} = '0068';
$Locale::Codes::Data{'langvar'}{'id2names'} = {
q(0001) => [
@@ -113,38 +113,41 @@ $Locale::Codes::Data{'langvar'}{'id2names'} = {
q(Common Cornish orthography of Revived Cornish),
],
q(0032) => [
+ q(The Kociewie dialect of Polish),
+ ],
+ q(0033) => [
q(Standard Cornish orthography of Revived Cornish),
q(Kernowek Standard),
],
- q(0033) => [
+ q(0034) => [
q(Classical Sanskrit),
],
- q(0034) => [
+ q(0035) => [
q(The Lipovaz dialect of Resian),
q(The Lipovec dialect of Resian),
],
- q(0035) => [
+ q(0036) => [
q(Post-1917 Russian orthography),
],
- q(0036) => [
+ q(0037) => [
q(Slovene in Metelko alphabet),
],
- q(0037) => [
+ q(0038) => [
q(Monotonic Greek),
],
- q(0038) => [
+ q(0039) => [
q(Ndyuka dialect),
q(Aukan dialect),
],
- q(0039) => [
+ q(0040) => [
q(Natisone dialect),
q(Nadiza dialect),
],
- q(0040) => [
+ q(0041) => [
q(The Gniva dialect of Resian),
q(The Njiva dialect of Resian),
],
- q(0041) => [
+ q(0042) => [
q(Volapuk nulik),
q(Volapuk perevidol),
q(Volapuk nuladik),
@@ -153,86 +156,86 @@ $Locale::Codes::Data{'langvar'}{'id2names'} = {
q(Revised Volapuk),
q(Modern Volapuk),
],
- q(0042) => [
+ q(0043) => [
q(The Oseacco dialect of Resian),
q(The Osojane dialect of Resian),
],
- q(0043) => [
+ q(0044) => [
q(Pamaka dialect),
],
- q(0044) => [
+ q(0045) => [
q(Petrine orthography),
],
- q(0045) => [
+ q(0046) => [
q(Pinyin romanization),
],
- q(0046) => [
+ q(0047) => [
q(Polytonic Greek),
],
- q(0047) => [
+ q(0048) => [
q(Puter idiom of Romansh),
],
- q(0048) => [
+ q(0049) => [
q(Volapuk rigik),
q(Schleyer's Volapuk),
q(Original Volapuk),
q(Classic Volapuk),
],
- q(0049) => [
+ q(0050) => [
q(Resian),
q(Resianic),
q(Rezijan),
],
- q(0050) => [
+ q(0051) => [
q(Rumantsch Grischun),
],
- q(0051) => [
+ q(0052) => [
q(Scottish Standard English),
],
- q(0052) => [
+ q(0053) => [
q(Scouse),
],
- q(0053) => [
+ q(0054) => [
q(The Stolvizza dialect of Resian),
q(The Solbica dialect of Resian),
],
- q(0054) => [
+ q(0055) => [
q(The Sotavento dialect group of Kabuverdianu),
],
- q(0055) => [
+ q(0056) => [
q(Surmiran idiom of Romansh),
],
- q(0056) => [
+ q(0057) => [
q(Sursilvan idiom of Romansh),
],
- q(0057) => [
+ q(0058) => [
q(Sutsilvan idiom of Romansh),
],
- q(0058) => [
+ q(0059) => [
q(Belarusian in Taraskievica orthography),
],
- q(0059) => [
+ q(0060) => [
q(Unified Cornish orthography of Revived Cornish),
],
- q(0060) => [
+ q(0061) => [
q(Unified Cornish Revised orthography of Revived Cornish),
],
- q(0061) => [
+ q(0062) => [
q(Ulster dialect of Scots),
],
- q(0062) => [
+ q(0063) => [
q(Unifon phonetic alphabet),
],
- q(0063) => [
+ q(0064) => [
q(Vedic Sanskrit),
],
- q(0064) => [
+ q(0065) => [
q(Valencian),
],
- q(0065) => [
+ q(0066) => [
q(Vallader idiom of Romansh),
],
- q(0066) => [
+ q(0067) => [
q(Wade-Giles romanization),
],
};
@@ -251,11 +254,11 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(aukan dialect) => [
- q(0038),
+ q(0039),
q(1),
],
q(belarusian in taraskievica orthography) => [
- q(0058),
+ q(0059),
q(0),
],
q(biscayan dialect of basque) => [
@@ -275,11 +278,11 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(classic volapuk) => [
- q(0048),
+ q(0049),
q(3),
],
q(classical sanskrit) => [
- q(0033),
+ q(0034),
q(0),
],
q(common cornish orthography of revived cornish) => [
@@ -287,7 +290,7 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(de jong's volapuk) => [
- q(0041),
+ q(0042),
q(3),
],
q(early modern english (1500-1700)) => [
@@ -327,7 +330,7 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(kernowek standard) => [
- q(0032),
+ q(0033),
q(1),
],
q(late middle french (to 1606)) => [
@@ -335,27 +338,27 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(modern volapuk) => [
- q(0041),
+ q(0042),
q(6),
],
q(monotonic greek) => [
- q(0037),
+ q(0038),
q(0),
],
q(nadiza dialect) => [
- q(0039),
+ q(0040),
q(1),
],
q(natisone dialect) => [
- q(0039),
+ q(0040),
q(0),
],
q(ndyuka dialect) => [
- q(0038),
+ q(0039),
q(0),
],
q(new volapuk) => [
- q(0041),
+ q(0042),
q(4),
],
q(norwegian in hognorsk (high norwegian) orthography) => [
@@ -363,63 +366,63 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(original volapuk) => [
- q(0048),
+ q(0049),
q(2),
],
q(pamaka dialect) => [
- q(0043),
+ q(0044),
q(0),
],
q(petrine orthography) => [
- q(0044),
+ q(0045),
q(0),
],
q(pinyin romanization) => [
- q(0045),
+ q(0046),
q(0),
],
q(polytonic greek) => [
- q(0046),
+ q(0047),
q(0),
],
q(post-1917 russian orthography) => [
- q(0035),
+ q(0036),
q(0),
],
q(puter idiom of romansh) => [
- q(0047),
+ q(0048),
q(0),
],
q(resian) => [
- q(0049),
+ q(0050),
q(0),
],
q(resianic) => [
- q(0049),
+ q(0050),
q(1),
],
q(revised volapuk) => [
- q(0041),
+ q(0042),
q(5),
],
q(rezijan) => [
- q(0049),
+ q(0050),
q(2),
],
q(rumantsch grischun) => [
- q(0050),
+ q(0051),
q(0),
],
q(schleyer's volapuk) => [
- q(0048),
+ q(0049),
q(1),
],
q(scottish standard english) => [
- q(0051),
+ q(0052),
q(0),
],
q(scouse) => [
- q(0052),
+ q(0053),
q(0),
],
q(serbian with ekavian pronunciation) => [
@@ -439,11 +442,11 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(slovene in metelko alphabet) => [
- q(0036),
+ q(0037),
q(0),
],
q(standard cornish orthography of revived cornish) => [
- q(0032),
+ q(0033),
q(0),
],
q(standardized resian orthography) => [
@@ -451,15 +454,15 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(surmiran idiom of romansh) => [
- q(0055),
+ q(0056),
q(0),
],
q(sursilvan idiom of romansh) => [
- q(0056),
+ q(0057),
q(0),
],
q(sutsilvan idiom of romansh) => [
- q(0057),
+ q(0058),
q(0),
],
q(the balanka dialect of anii) => [
@@ -475,27 +478,31 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(1),
],
q(the gniva dialect of resian) => [
- q(0040),
+ q(0041),
+ q(0),
+ ],
+ q(the kociewie dialect of polish) => [
+ q(0032),
q(0),
],
q(the lipovaz dialect of resian) => [
- q(0034),
+ q(0035),
q(0),
],
q(the lipovec dialect of resian) => [
- q(0034),
+ q(0035),
q(1),
],
q(the njiva dialect of resian) => [
- q(0040),
+ q(0041),
q(1),
],
q(the oseacco dialect of resian) => [
- q(0042),
+ q(0043),
q(0),
],
q(the osojane dialect of resian) => [
- q(0042),
+ q(0043),
q(1),
],
q(the san giorgio dialect of resian) => [
@@ -503,15 +510,15 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(the solbica dialect of resian) => [
- q(0053),
+ q(0054),
q(1),
],
q(the sotavento dialect group of kabuverdianu) => [
- q(0054),
+ q(0055),
q(0),
],
q(the stolvizza dialect of resian) => [
- q(0053),
+ q(0054),
q(0),
],
q(traditional german orthography) => [
@@ -519,15 +526,15 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(ulster dialect of scots) => [
- q(0061),
+ q(0062),
q(0),
],
q(unified cornish orthography of revived cornish) => [
- q(0059),
+ q(0060),
q(0),
],
q(unified cornish revised orthography of revived cornish) => [
- q(0060),
+ q(0061),
q(0),
],
q(unified turkic latin alphabet (historical)) => [
@@ -535,7 +542,7 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(unifon phonetic alphabet) => [
- q(0062),
+ q(0063),
q(0),
],
q(uralic phonetic alphabet) => [
@@ -543,35 +550,35 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(valencian) => [
- q(0064),
+ q(0065),
q(0),
],
q(vallader idiom of romansh) => [
- q(0065),
+ q(0066),
q(0),
],
q(vedic sanskrit) => [
- q(0063),
+ q(0064),
q(0),
],
q(volapuk nuladik) => [
- q(0041),
+ q(0042),
q(2),
],
q(volapuk nulik) => [
- q(0041),
+ q(0042),
q(0),
],
q(volapuk perevidol) => [
- q(0041),
+ q(0042),
q(1),
],
q(volapuk rigik) => [
- q(0048),
+ q(0049),
q(0),
],
q(wade-giles romanization) => [
- q(0066),
+ q(0067),
q(0),
],
q(western armenian) => [
@@ -710,146 +717,150 @@ $Locale::Codes::Data{'langvar'}{'code2id'} = {
q(0031),
q(0),
],
- q(kscor) => [
+ q(kociewie) => [
q(0032),
q(0),
],
- q(laukika) => [
+ q(kscor) => [
q(0033),
q(0),
],
- q(lipaw) => [
+ q(laukika) => [
q(0034),
q(0),
],
- q(luna1918) => [
+ q(lipaw) => [
q(0035),
q(0),
],
- q(metelko) => [
+ q(luna1918) => [
q(0036),
q(0),
],
- q(monoton) => [
+ q(metelko) => [
q(0037),
q(0),
],
- q(ndyuka) => [
+ q(monoton) => [
q(0038),
q(0),
],
- q(nedis) => [
+ q(ndyuka) => [
q(0039),
q(0),
],
- q(njiva) => [
+ q(nedis) => [
q(0040),
q(0),
],
- q(nulik) => [
+ q(njiva) => [
q(0041),
q(0),
],
- q(osojs) => [
+ q(nulik) => [
q(0042),
q(0),
],
- q(pamaka) => [
+ q(osojs) => [
q(0043),
q(0),
],
- q(petr1708) => [
+ q(pamaka) => [
q(0044),
q(0),
],
- q(pinyin) => [
+ q(petr1708) => [
q(0045),
q(0),
],
- q(polyton) => [
+ q(pinyin) => [
q(0046),
q(0),
],
- q(puter) => [
+ q(polyton) => [
q(0047),
q(0),
],
- q(rigik) => [
+ q(puter) => [
q(0048),
q(0),
],
- q(rozaj) => [
+ q(rigik) => [
q(0049),
q(0),
],
- q(rumgr) => [
+ q(rozaj) => [
q(0050),
q(0),
],
- q(scotland) => [
+ q(rumgr) => [
q(0051),
q(0),
],
- q(scouse) => [
+ q(scotland) => [
q(0052),
q(0),
],
- q(solba) => [
+ q(scouse) => [
q(0053),
q(0),
],
- q(sotav) => [
+ q(solba) => [
q(0054),
q(0),
],
- q(surmiran) => [
+ q(sotav) => [
q(0055),
q(0),
],
- q(sursilv) => [
+ q(surmiran) => [
q(0056),
q(0),
],
- q(sutsilv) => [
+ q(sursilv) => [
q(0057),
q(0),
],
- q(tarask) => [
+ q(sutsilv) => [
q(0058),
q(0),
],
- q(uccor) => [
+ q(tarask) => [
q(0059),
q(0),
],
- q(ucrcor) => [
+ q(uccor) => [
q(0060),
q(0),
],
- q(ulster) => [
+ q(ucrcor) => [
q(0061),
q(0),
],
- q(unifon) => [
+ q(ulster) => [
q(0062),
q(0),
],
- q(vaidika) => [
+ q(unifon) => [
q(0063),
q(0),
],
- q(valencia) => [
+ q(vaidika) => [
q(0064),
q(0),
],
- q(vallader) => [
+ q(valencia) => [
q(0065),
q(0),
],
- q(wadegile) => [
+ q(vallader) => [
q(0066),
q(0),
],
+ q(wadegile) => [
+ q(0067),
+ q(0),
+ ],
},
};
@@ -886,41 +897,42 @@ $Locale::Codes::Data{'langvar'}{'id2code'} = {
q(0029) => q(jauer),
q(0030) => q(jyutping),
q(0031) => q(kkcor),
- q(0032) => q(kscor),
- q(0033) => q(laukika),
- q(0034) => q(lipaw),
- q(0035) => q(luna1918),
- q(0036) => q(metelko),
- q(0037) => q(monoton),
- q(0038) => q(ndyuka),
- q(0039) => q(nedis),
- q(0040) => q(njiva),
- q(0041) => q(nulik),
- q(0042) => q(osojs),
- q(0043) => q(pamaka),
- q(0044) => q(petr1708),
- q(0045) => q(pinyin),
- q(0046) => q(polyton),
- q(0047) => q(puter),
- q(0048) => q(rigik),
- q(0049) => q(rozaj),
- q(0050) => q(rumgr),
- q(0051) => q(scotland),
- q(0052) => q(scouse),
- q(0053) => q(solba),
- q(0054) => q(sotav),
- q(0055) => q(surmiran),
- q(0056) => q(sursilv),
- q(0057) => q(sutsilv),
- q(0058) => q(tarask),
- q(0059) => q(uccor),
- q(0060) => q(ucrcor),
- q(0061) => q(ulster),
- q(0062) => q(unifon),
- q(0063) => q(vaidika),
- q(0064) => q(valencia),
- q(0065) => q(vallader),
- q(0066) => q(wadegile),
+ q(0032) => q(kociewie),
+ q(0033) => q(kscor),
+ q(0034) => q(laukika),
+ q(0035) => q(lipaw),
+ q(0036) => q(luna1918),
+ q(0037) => q(metelko),
+ q(0038) => q(monoton),
+ q(0039) => q(ndyuka),
+ q(0040) => q(nedis),
+ q(0041) => q(njiva),
+ q(0042) => q(nulik),
+ q(0043) => q(osojs),
+ q(0044) => q(pamaka),
+ q(0045) => q(petr1708),
+ q(0046) => q(pinyin),
+ q(0047) => q(polyton),
+ q(0048) => q(puter),
+ q(0049) => q(rigik),
+ q(0050) => q(rozaj),
+ q(0051) => q(rumgr),
+ q(0052) => q(scotland),
+ q(0053) => q(scouse),
+ q(0054) => q(solba),
+ q(0055) => q(sotav),
+ q(0056) => q(surmiran),
+ q(0057) => q(sursilv),
+ q(0058) => q(sutsilv),
+ q(0059) => q(tarask),
+ q(0060) => q(uccor),
+ q(0061) => q(ucrcor),
+ q(0062) => q(ulster),
+ q(0063) => q(unifon),
+ q(0064) => q(vaidika),
+ q(0065) => q(valencia),
+ q(0066) => q(vallader),
+ q(0067) => q(wadegile),
},
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Retired.pm
index cd82e2cca0f..67ce0e9f518 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Retired.pm
+++ b/Master/tlpkg/tlperl/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 Mar 4 13:19:40 EST 2014
+# Generated on: Fri Feb 20 15:27:22 GMT 2015
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
$Locale::Codes::Retired{'langvar'}{'alpha'}{'code'} = {
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pm
index 844d1361583..3daf64501ff 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pm
@@ -1,7 +1,7 @@
package Locale::Codes::Language;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -22,7 +22,7 @@ use Locale::Codes::Language_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.30';
+$VERSION='3.34';
@ISA = qw(Exporter);
@EXPORT = qw(code2language
language2code
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pod
index 648da38da7c..a9145668d7f 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pod
@@ -63,15 +63,15 @@ ISO 639.
=over 4
-=item B<code2language ( CODE [,CODESET] )>
+=item B<code2language ( CODE [,CODESET] [,'retired'])>
-=item B<language2code ( NAME [,CODESET] )>
+=item B<language2code ( NAME [,CODESET] [,'retired'])>
=item B<language_code2code ( CODE ,CODESET ,CODESET2 )>
-=item B<all_language_codes ( [CODESET] )>
+=item B<all_language_codes ( [CODESET] [,'retired'])>
-=item B<all_language_names ( [CODESET] )>
+=item B<all_language_names ( [CODESET] [,'retired'])>
=item B<Locale::Codes::Language::rename_language ( CODE ,NEW_NAME [,CODESET] )>
@@ -129,7 +129,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2014 Sullivan Beck
+ 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.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Codes.pm
index 9ea74f5ab36..7c2fa8388e1 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Codes.pm
+++ b/Master/tlpkg/tlperl/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: Thu Feb 27 15:44:16 EST 2014
+# Generated on: Thu Feb 19 20:49:39 GMT 2015
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
-$Locale::Codes::Data{'language'}{'id'} = '7985';
+$Locale::Codes::Data{'language'}{'id'} = '7974';
$Locale::Codes::Data{'language'}{'id2names'} = {
q(0001) => [
@@ -1787,22620 +1787,22606 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
q(Afade),
],
q(0549) => [
- q(Aramanik),
+ q(Anambe),
],
q(0550) => [
- q(Anambe),
+ q(Algerian Saharan Arabic),
],
q(0551) => [
- q(Algerian Saharan Arabic),
+ q(Para Arara),
],
q(0552) => [
- q(Para Arara),
+ q(Eastern Abnaki),
],
q(0553) => [
- q(Eastern Abnaki),
+ q(Aasax),
],
q(0554) => [
- q(Aasax),
+ q(Arvanitika Albanian),
],
q(0555) => [
- q(Arvanitika Albanian),
+ q(Abau),
],
q(0556) => [
- q(Abau),
+ q(Solong),
],
q(0557) => [
- q(Solong),
+ q(Mandobo Atas),
],
q(0558) => [
- q(Mandobo Atas),
+ q(Amarasi),
],
q(0559) => [
- q(Amarasi),
+ q(Abe),
],
q(0560) => [
- q(Abe),
+ q(Bankon),
],
q(0561) => [
- q(Bankon),
+ q(Ambala Ayta),
],
q(0562) => [
- q(Ambala Ayta),
+ q(Manide),
],
q(0563) => [
- q(Manide),
+ q(Western Abnaki),
],
q(0564) => [
- q(Western Abnaki),
+ q(Abai Sungai),
],
q(0565) => [
- q(Abai Sungai),
+ q(Abaga),
],
q(0566) => [
- q(Abaga),
+ q(Tajiki Arabic),
],
q(0567) => [
- q(Tajiki Arabic),
+ q(Abidji),
],
q(0568) => [
- q(Abidji),
+ q(Aka-Bea),
],
q(0569) => [
- q(Aka-Bea),
+ q(Lampung Nyo),
],
q(0570) => [
- q(Lampung Nyo),
+ q(Abanyom),
],
q(0571) => [
- q(Abanyom),
+ q(Abua),
],
q(0572) => [
- q(Abua),
+ q(Abon),
],
q(0573) => [
- q(Abon),
+ q(Abellen Ayta),
],
q(0574) => [
- q(Abellen Ayta),
+ q(Abaza),
],
q(0575) => [
- q(Abaza),
+ q(Abron),
],
q(0576) => [
- q(Abron),
+ q(Ambonese Malay),
],
q(0577) => [
- q(Ambonese Malay),
+ q(Ambulas),
],
q(0578) => [
- q(Ambulas),
+ q(Abure),
],
q(0579) => [
- q(Abure),
+ q(Baharna Arabic),
],
q(0580) => [
- q(Baharna Arabic),
+ q(Pal),
],
q(0581) => [
- q(Pal),
+ q(Inabaknon),
],
q(0582) => [
- q(Inabaknon),
+ q(Aneme Wake),
],
q(0583) => [
- q(Aneme Wake),
+ q(Abui),
],
q(0584) => [
- q(Abui),
+ q(Achagua),
],
q(0585) => [
- q(Achagua),
+ q(Anca),
],
q(0586) => [
- q(Anca),
+ q(Gikyode),
],
q(0587) => [
- q(Gikyode),
+ q(Saint Lucian Creole French),
],
q(0588) => [
- q(Saint Lucian Creole French),
+ q(Aka-Cari),
],
q(0589) => [
- q(Aka-Cari),
+ q(Aka-Kora),
],
q(0590) => [
- q(Aka-Kora),
+ q(Akar-Bale),
],
q(0591) => [
- q(Akar-Bale),
+ q(Mesopotamian Arabic),
],
q(0592) => [
- q(Mesopotamian Arabic),
+ q(Achang),
],
q(0593) => [
- q(Achang),
+ q(Eastern Acipa),
],
q(0594) => [
- q(Eastern Acipa),
+ q(Ta'izzi-Adeni Arabic),
],
q(0595) => [
- q(Ta'izzi-Adeni Arabic),
+ q(Achi),
],
q(0596) => [
- q(Achi),
+ q(Acroa),
],
q(0597) => [
- q(Acroa),
+ q(Achterhoeks),
],
q(0598) => [
- q(Achterhoeks),
+ q(Achuar-Shiwiar),
],
q(0599) => [
- q(Achuar-Shiwiar),
+ q(Achumawi),
],
q(0600) => [
- q(Achumawi),
+ q(Hijazi Arabic),
],
q(0601) => [
- q(Hijazi Arabic),
+ q(Omani Arabic),
],
q(0602) => [
- q(Omani Arabic),
+ q(Cypriot Arabic),
],
q(0603) => [
- q(Cypriot Arabic),
+ q(Acheron),
],
q(0604) => [
- q(Acheron),
+ q(Adabe),
],
q(0605) => [
- q(Adabe),
+ q(Dzodinka),
],
q(0606) => [
- q(Dzodinka),
+ q(Adele),
],
q(0607) => [
- q(Adele),
+ q(Dhofari Arabic),
],
q(0608) => [
- q(Dhofari Arabic),
+ q(Andegerebinha),
],
q(0609) => [
- q(Andegerebinha),
+ q(Adhola),
],
q(0610) => [
- q(Adhola),
+ q(Adi),
],
q(0611) => [
- q(Adi),
+ q(Adioukrou),
],
q(0612) => [
- q(Adioukrou),
+ q(Galo),
],
q(0613) => [
- q(Galo),
+ q(Adang),
],
q(0614) => [
- q(Adang),
+ q(Abu),
],
q(0615) => [
- q(Abu),
+ q(Adangbe),
],
q(0616) => [
- q(Adap),
+ q(Adonara),
],
q(0617) => [
- q(Adangbe),
+ q(Adamorobe Sign Language),
],
q(0618) => [
- q(Adonara),
+ q(Adnyamathanha),
],
q(0619) => [
- q(Adamorobe Sign Language),
+ q(Aduge),
],
q(0620) => [
- q(Adnyamathanha),
+ q(Amundava),
],
q(0621) => [
- q(Aduge),
+ q(Amdo Tibetan),
],
q(0622) => [
- q(Amundava),
+ q(Adzera),
],
q(0623) => [
- q(Amdo Tibetan),
+ q(Areba),
],
q(0624) => [
- q(Adzera),
+ q(Tunisian Arabic),
],
q(0625) => [
- q(Areba),
+ q(Saidi Arabic),
],
q(0626) => [
- q(Tunisian Arabic),
+ q(Argentine Sign Language),
],
q(0627) => [
- q(Saidi Arabic),
+ q(Northeast Pashai),
+ q(Northeast Pashayi),
],
q(0628) => [
- q(Argentine Sign Language),
+ q(Haeke),
],
q(0629) => [
- q(Northeast Pashayi),
+ q(Ambele),
],
q(0630) => [
- q(Haeke),
+ q(Arem),
],
q(0631) => [
- q(Ambele),
+ q(Armenian Sign Language),
],
q(0632) => [
- q(Arem),
+ q(Aer),
],
q(0633) => [
- q(Armenian Sign Language),
+ q(Eastern Arrernte),
],
q(0634) => [
- q(Aer),
+ q(Alsea),
],
q(0635) => [
- q(Eastern Arrernte),
+ q(Akeu),
],
q(0636) => [
- q(Alsea),
+ q(Ambakich),
],
q(0637) => [
- q(Akeu),
+ q(Amele),
],
q(0638) => [
- q(Ambakich),
+ q(Aeka),
],
q(0639) => [
- q(Amele),
+ q(Gulf Arabic),
],
q(0640) => [
- q(Aeka),
+ q(Andai),
],
q(0641) => [
- q(Gulf Arabic),
+ q(Putukwam),
],
q(0642) => [
- q(Andai),
+ q(Afghan Sign Language),
],
q(0643) => [
- q(Putukwam),
+ q(Akrukay),
+ q(Chini),
],
q(0644) => [
- q(Afghan Sign Language),
+ q(Nanubae),
],
q(0645) => [
- q(Akrukay),
+ q(Defaka),
],
q(0646) => [
- q(Nanubae),
+ q(Eloyi),
],
q(0647) => [
- q(Defaka),
+ q(Tapei),
],
q(0648) => [
- q(Eloyi),
+ q(Afro-Seminole Creole),
],
q(0649) => [
- q(Tapei),
+ q(Afitti),
],
q(0650) => [
- q(Afro-Seminole Creole),
+ q(Awutu),
],
q(0651) => [
- q(Afitti),
+ q(Obokuitai),
],
q(0652) => [
- q(Awutu),
+ q(Aguano),
],
q(0653) => [
- q(Obokuitai),
+ q(Legbo),
],
q(0654) => [
- q(Aguano),
+ q(Agatu),
],
q(0655) => [
- q(Legbo),
+ q(Agarabi),
],
q(0656) => [
- q(Agatu),
+ q(Angal),
],
q(0657) => [
- q(Agarabi),
+ q(Arguni),
],
q(0658) => [
- q(Angal),
+ q(Angor),
],
q(0659) => [
- q(Arguni),
+ q(Ngelima),
],
q(0660) => [
- q(Angor),
+ q(Agariya),
],
q(0661) => [
- q(Ngelima),
+ q(Argobba),
],
q(0662) => [
- q(Agariya),
+ q(Isarog Agta),
],
q(0663) => [
- q(Argobba),
+ q(Fembe),
],
q(0664) => [
- q(Isarog Agta),
+ q(Angaataha),
],
q(0665) => [
- q(Fembe),
+ q(Agutaynen),
],
q(0666) => [
- q(Angaataha),
+ q(Tainae),
],
q(0667) => [
- q(Agutaynen),
+ q(Aghem),
],
q(0668) => [
- q(Tainae),
+ q(Aguaruna),
],
q(0669) => [
- q(Aghem),
+ q(Esimbi),
],
q(0670) => [
- q(Aguaruna),
+ q(Central Cagayan Agta),
],
q(0671) => [
- q(Esimbi),
+ q(Aguacateco),
],
q(0672) => [
- q(Central Cagayan Agta),
+ q(Remontado Dumagat),
],
q(0673) => [
- q(Aguacateco),
+ q(Kahua),
],
q(0674) => [
- q(Remontado Dumagat),
+ q(Aghul),
],
q(0675) => [
- q(Kahua),
+ q(Southern Alta),
],
q(0676) => [
- q(Aghul),
+ q(Mt. Iriga Agta),
],
q(0677) => [
- q(Southern Alta),
+ q(Ahanta),
],
q(0678) => [
- q(Mt. Iriga Agta),
+ q(Axamb),
],
q(0679) => [
- q(Ahanta),
+ q(Qimant),
],
q(0680) => [
- q(Axamb),
+ q(Aghu),
],
q(0681) => [
- q(Qimant),
+ q(Tiagbamrin Aizi),
],
q(0682) => [
- q(Aghu),
+ q(Akha),
],
q(0683) => [
- q(Tiagbamrin Aizi),
+ q(Igo),
],
q(0684) => [
- q(Akha),
+ q(Mobumrin Aizi),
],
q(0685) => [
- q(Igo),
+ q(Ahan),
],
q(0686) => [
- q(Mobumrin Aizi),
+ q(Ahom),
],
q(0687) => [
- q(Ahan),
+ q(Aproumu Aizi),
],
q(0688) => [
- q(Ahom),
+ q(Ahirani),
],
q(0689) => [
- q(Aproumu Aizi),
+ q(Ashe),
],
q(0690) => [
- q(Ahirani),
+ q(Ahtena),
],
q(0691) => [
- q(Ashe),
+ q(Arosi),
],
q(0692) => [
- q(Ahtena),
+ q(Ainu (China)),
],
q(0693) => [
- q(Arosi),
+ q(Ainbai),
],
q(0694) => [
- q(Ainu (China)),
+ q(Alngith),
],
q(0695) => [
- q(Ainbai),
+ q(Amara),
],
q(0696) => [
- q(Alngith),
+ q(Agi),
],
q(0697) => [
- q(Amara),
+ q(Antigua and Barbuda Creole English),
],
q(0698) => [
- q(Agi),
+ q(Ai-Cham),
],
q(0699) => [
- q(Antigua and Barbuda Creole English),
+ q(Assyrian Neo-Aramaic),
],
q(0700) => [
- q(Ai-Cham),
+ q(Lishanid Noshan),
],
q(0701) => [
- q(Assyrian Neo-Aramaic),
+ q(Ake),
],
q(0702) => [
- q(Lishanid Noshan),
+ q(Aimele),
],
q(0703) => [
- q(Ake),
+ q(Aimol),
],
q(0704) => [
- q(Aimele),
+ q(Aiton),
],
q(0705) => [
- q(Aimol),
+ q(Burumakok),
],
q(0706) => [
- q(Aiton),
+ q(Aimaq),
],
q(0707) => [
- q(Burumakok),
+ q(Airoran),
],
q(0708) => [
- q(Aimaq),
+ q(Nataoran Amis),
],
q(0709) => [
- q(Airoran),
+ q(Arikem),
],
q(0710) => [
- q(Nataoran Amis),
+ q(Aari),
],
q(0711) => [
- q(Arikem),
+ q(Aighon),
],
q(0712) => [
- q(Aari),
+ q(Ali),
],
q(0713) => [
- q(Aighon),
+ q(Aja (Sudan)),
],
q(0714) => [
- q(Ali),
+ q(Aja (Benin)),
],
q(0715) => [
- q(Aja (Sudan)),
+ q(Ajie),
],
q(0716) => [
- q(Aja (Benin)),
+ q(Andajin),
],
q(0717) => [
- q(Ajie),
+ q(South Levantine Arabic),
],
q(0718) => [
- q(Andajin),
+ q(Judeo-Tunisian Arabic),
],
q(0719) => [
- q(South Levantine Arabic),
+ q(Judeo-Moroccan Arabic),
],
q(0720) => [
- q(Judeo-Tunisian Arabic),
+ q(Ajawa),
],
q(0721) => [
- q(Judeo-Moroccan Arabic),
+ q(Amri Karbi),
],
q(0722) => [
- q(Ajawa),
+ q(Batak Angkola),
],
q(0723) => [
- q(Amri Karbi),
+ q(Mpur),
],
q(0724) => [
- q(Batak Angkola),
+ q(Ukpet-Ehom),
],
q(0725) => [
- q(Mpur),
+ q(Akawaio),
],
q(0726) => [
- q(Ukpet-Ehom),
+ q(Akpa),
],
q(0727) => [
- q(Akawaio),
+ q(Anakalangu),
],
q(0728) => [
- q(Akpa),
+ q(Angal Heneng),
],
q(0729) => [
- q(Anakalangu),
+ q(Aiome),
],
q(0730) => [
- q(Angal Heneng),
+ q(Aka-Jeru),
],
q(0731) => [
- q(Aiome),
+ q(Aklanon),
],
q(0732) => [
- q(Aka-Jeru),
+ q(Aka-Bo),
],
q(0733) => [
- q(Aklanon),
+ q(Akurio),
],
q(0734) => [
- q(Aka-Bo),
+ q(Siwu),
],
q(0735) => [
- q(Akurio),
+ q(Ak),
],
q(0736) => [
- q(Siwu),
+ q(Araki),
],
q(0737) => [
- q(Ak),
+ q(Akaselem),
],
q(0738) => [
- q(Araki),
+ q(Akolet),
],
q(0739) => [
- q(Akaselem),
+ q(Akum),
],
q(0740) => [
- q(Akolet),
+ q(Akhvakh),
],
q(0741) => [
- q(Akum),
+ q(Akwa),
],
q(0742) => [
- q(Akhvakh),
+ q(Aka-Kede),
],
q(0743) => [
- q(Akwa),
+ q(Aka-Kol),
],
q(0744) => [
- q(Aka-Kede),
+ q(Alabama),
],
q(0745) => [
- q(Aka-Kol),
+ q(Alago),
],
q(0746) => [
- q(Alabama),
+ q(Qawasqar),
],
q(0747) => [
- q(Alago),
+ q(Alladian),
],
q(0748) => [
- q(Qawasqar),
+ q(Alege),
],
q(0749) => [
- q(Alladian),
+ q(Alawa),
],
q(0750) => [
- q(Alege),
+ q(Amaimon),
],
q(0751) => [
- q(Alawa),
+ q(Alangan),
],
q(0752) => [
- q(Amaimon),
+ q(Alak),
],
q(0753) => [
- q(Alangan),
+ q(Allar),
],
q(0754) => [
- q(Alak),
+ q(Amblong),
],
q(0755) => [
- q(Allar),
+ q(Gheg Albanian),
],
q(0756) => [
- q(Amblong),
+ q(Larike-Wakasihu),
],
q(0757) => [
- q(Gheg Albanian),
+ q(Alune),
],
q(0758) => [
- q(Larike-Wakasihu),
+ q(Algonquin),
],
q(0759) => [
- q(Alune),
+ q(Alutor),
],
q(0760) => [
- q(Algonquin),
+ q(Tosk Albanian),
],
q(0761) => [
- q(Alutor),
+ q('Are'are),
],
q(0762) => [
- q(Tosk Albanian),
+ q(Alaba-K'abeena),
+ q(Wanbasana),
],
q(0763) => [
- q('Are'are),
+ q(Amol),
],
q(0764) => [
- q(Alaba-K'abeena),
- q(Wanbasana),
+ q(Alyawarr),
],
q(0765) => [
- q(Amol),
+ q(Alur),
],
q(0766) => [
- q(Alyawarr),
+ q(Amanaye),
],
q(0767) => [
- q(Alur),
+ q(Ambo),
],
q(0768) => [
- q(Amanaye),
+ q(Amahuaca),
],
q(0769) => [
- q(Ambo),
+ q(Yanesha'),
],
q(0770) => [
- q(Amahuaca),
+ q(Hamer-Banna),
],
q(0771) => [
- q(Yanesha'),
+ q(Amurdak),
],
q(0772) => [
- q(Hamer-Banna),
+ q(Amis),
],
q(0773) => [
- q(Amurdak),
+ q(Amdang),
],
q(0774) => [
- q(Amis),
+ q(Ambai),
],
q(0775) => [
- q(Amdang),
+ q(War-Jaintia),
],
q(0776) => [
- q(Ambai),
+ q(Ama (Papua New Guinea)),
],
q(0777) => [
- q(War-Jaintia),
+ q(Amanab),
],
q(0778) => [
- q(Ama (Papua New Guinea)),
+ q(Amo),
],
q(0779) => [
- q(Amanab),
+ q(Alamblak),
],
q(0780) => [
- q(Amo),
+ q(Amahai),
],
q(0781) => [
- q(Alamblak),
+ q(Amarakaeri),
],
q(0782) => [
- q(Amahai),
+ q(Southern Amami-Oshima),
],
q(0783) => [
- q(Amarakaeri),
+ q(Amto),
],
q(0784) => [
- q(Southern Amami-Oshima),
+ q(Guerrero Amuzgo),
],
q(0785) => [
- q(Amto),
+ q(Ambelau),
],
q(0786) => [
- q(Guerrero Amuzgo),
+ q(Western Neo-Aramaic),
],
q(0787) => [
- q(Ambelau),
+ q(Anmatyerre),
],
q(0788) => [
- q(Western Neo-Aramaic),
+ q(Ami),
],
q(0789) => [
- q(Anmatyerre),
+ q(Atampaya),
],
q(0790) => [
- q(Ami),
+ q(Andaqui),
],
q(0791) => [
- q(Atampaya),
+ q(Andoa),
],
q(0792) => [
- q(Andaqui),
+ q(Ngas),
],
q(0793) => [
- q(Andoa),
+ q(Ansus),
],
q(0794) => [
- q(Ngas),
+ q(Xaracuu),
],
q(0795) => [
- q(Ansus),
+ q(Animere),
],
q(0796) => [
- q(Xaracuu),
+ q(Nend),
],
q(0797) => [
- q(Animere),
+ q(Andi),
],
q(0798) => [
- q(Nend),
+ q(Anor),
],
q(0799) => [
- q(Andi),
+ q(Goemai),
],
q(0800) => [
- q(Anor),
+ q(Anu-Hkongso Chin),
],
q(0801) => [
- q(Goemai),
+ q(Anal),
],
q(0802) => [
- q(Anu-Hkongso Chin),
+ q(Obolo),
],
q(0803) => [
- q(Anal),
+ q(Andoque),
],
q(0804) => [
- q(Obolo),
+ q(Jarawa (India)),
],
q(0805) => [
- q(Andoque),
+ q(Andh),
],
q(0806) => [
- q(Jarawa (India)),
+ q(Anserma),
],
q(0807) => [
- q(Andh),
+ q(Antakarinya),
],
q(0808) => [
- q(Anserma),
+ q(Anuak),
],
q(0809) => [
- q(Antakarinya),
+ q(Denya),
],
q(0810) => [
- q(Anuak),
+ q(Anaang),
],
q(0811) => [
- q(Denya),
+ q(Andra-Hus),
],
q(0812) => [
- q(Anaang),
+ q(Anyin),
],
q(0813) => [
- q(Andra-Hus),
+ q(Anem),
],
q(0814) => [
- q(Anyin),
+ q(Angolar),
],
q(0815) => [
- q(Anem),
+ q(Abom),
],
q(0816) => [
- q(Angolar),
+ q(Pemon),
],
q(0817) => [
- q(Abom),
+ q(Andarum),
],
q(0818) => [
- q(Pemon),
+ q(Angal Enen),
],
q(0819) => [
- q(Andarum),
+ q(Bragat),
],
q(0820) => [
- q(Angal Enen),
+ q(Angoram),
],
q(0821) => [
- q(Bragat),
+ q(Arma),
],
q(0822) => [
- q(Angoram),
+ q(Anindilyakwa),
],
q(0823) => [
- q(Arma),
+ q(Mufian),
],
q(0824) => [
- q(Anindilyakwa),
+ q(Arho),
],
q(0825) => [
- q(Mufian),
+ q(Alor),
],
q(0826) => [
- q(Arho),
+ q(Omie),
],
q(0827) => [
- q(Alor),
+ q(Bumbita Arapesh),
],
q(0828) => [
- q(Omie),
+ q(Aore),
],
q(0829) => [
- q(Bumbita Arapesh),
+ q(Taikat),
],
q(0830) => [
- q(Aore),
+ q(Atong),
+ q(A'tong),
],
q(0831) => [
- q(Taikat),
+ q(A'ou),
],
q(0832) => [
- q(A'tong),
+ q(Atorada),
],
q(0833) => [
- q(A'ou),
+ q(Uab Meto),
],
q(0834) => [
- q(Atorada),
+ q(Sa'a),
],
q(0835) => [
- q(Uab Meto),
+ q(North Levantine Arabic),
],
q(0836) => [
- q(Sa'a),
+ q(Sudanese Arabic),
],
q(0837) => [
- q(North Levantine Arabic),
+ q(Bukiyip),
],
q(0838) => [
- q(Sudanese Arabic),
+ q(Pahanan Agta),
],
q(0839) => [
- q(Bukiyip),
+ q(Ampanang),
],
q(0840) => [
- q(Pahanan Agta),
+ q(Athpariya),
],
q(0841) => [
- q(Ampanang),
+ q(Apiaka),
],
q(0842) => [
- q(Athpariya),
+ q(Jicarilla Apache),
],
q(0843) => [
- q(Apiaka),
+ q(Kiowa Apache),
],
q(0844) => [
- q(Jicarilla Apache),
+ q(Lipan Apache),
],
q(0845) => [
- q(Kiowa Apache),
+ q(Mescalero-Chiricahua Apache),
],
q(0846) => [
- q(Lipan Apache),
+ q(Apinaye),
],
q(0847) => [
- q(Mescalero-Chiricahua Apache),
+ q(Ambul),
],
q(0848) => [
- q(Apinaye),
+ q(Apma),
],
q(0849) => [
- q(Ambul),
+ q(A-Pucikwar),
],
q(0850) => [
- q(Apma),
+ q(Arop-Lokep),
],
q(0851) => [
- q(A-Pucikwar),
+ q(Arop-Sissano),
],
q(0852) => [
- q(Arop-Lokep),
+ q(Apatani),
],
q(0853) => [
- q(Arop-Sissano),
+ q(Apurina),
],
q(0854) => [
- q(Apatani),
+ q(Alapmunte),
],
q(0855) => [
- q(Apurina),
+ q(Western Apache),
],
q(0856) => [
- q(Alapmunte),
+ q(Aputai),
],
q(0857) => [
- q(Western Apache),
+ q(Apalai),
],
q(0858) => [
- q(Aputai),
+ q(Safeyoka),
],
q(0859) => [
- q(Apalai),
+ q(Archi),
],
q(0860) => [
- q(Safeyoka),
+ q(Ampari Dogon),
],
q(0861) => [
- q(Archi),
+ q(Arigidi),
],
q(0862) => [
- q(Ampari Dogon),
+ q(Atohwaim),
],
q(0863) => [
- q(Arigidi),
+ q(Northern Alta),
],
q(0864) => [
- q(Atohwaim),
+ q(Atakapa),
],
q(0865) => [
- q(Northern Alta),
+ q(Arha),
],
q(0866) => [
- q(Atakapa),
+ q(Angaite),
],
q(0867) => [
- q(Arha),
- ],
- q(0868) => [
q(Akuntsu),
],
- q(0869) => [
+ q(0868) => [
q(Standard Arabic),
],
- q(0870) => [
+ q(0869) => [
q(Arabana),
],
- q(0871) => [
+ q(0870) => [
q(Western Arrarnta),
],
- q(0872) => [
+ q(0871) => [
q(Arhuaco),
],
- q(0873) => [
+ q(0872) => [
q(Arikara),
],
- q(0874) => [
+ q(0873) => [
q(Arapaso),
],
- q(0875) => [
+ q(0874) => [
q(Arikapu),
],
- q(0876) => [
+ q(0875) => [
q(Arabela),
],
- q(0877) => [
+ q(0876) => [
q(Araona),
],
- q(0878) => [
+ q(0877) => [
q(Algerian Arabic),
],
- q(0879) => [
+ q(0878) => [
q(Karo (Brazil)),
],
- q(0880) => [
+ q(0879) => [
q(Najdi Arabic),
],
- q(0881) => [
+ q(0880) => [
q(Arua (Amazonas State)),
q(Arawa),
],
- q(0882) => [
+ q(0881) => [
q(Arbore),
],
- q(0883) => [
+ q(0882) => [
q(Arua (Rodonia State)),
],
- q(0884) => [
+ q(0883) => [
q(Moroccan Arabic),
],
- q(0885) => [
+ q(0884) => [
q(Egyptian Arabic),
],
- q(0886) => [
+ q(0885) => [
q(Asu (Tanzania)),
],
- q(0887) => [
+ q(0886) => [
q(Assiniboine),
],
- q(0888) => [
+ q(0887) => [
q(Casuarina Coast Asmat),
],
- q(0889) => [
+ q(0888) => [
q(Asas),
],
- q(0890) => [
+ q(0889) => [
q(American Sign Language),
],
- q(0891) => [
+ q(0890) => [
q(Australian Sign Language),
],
- q(0892) => [
+ q(0891) => [
q(Cishingini),
],
- q(0893) => [
+ q(0892) => [
q(Abishira),
],
- q(0894) => [
+ q(0893) => [
q(Buruwai),
],
- q(0895) => [
+ q(0894) => [
q(Sari),
],
- q(0896) => [
+ q(0895) => [
q(Ashkun),
],
- q(0897) => [
+ q(0896) => [
q(Asilulu),
],
- q(0898) => [
+ q(0897) => [
q(Xingu Asurini),
],
- q(0899) => [
+ q(0898) => [
q(Dano),
],
- q(0900) => [
+ q(0899) => [
q(Algerian Sign Language),
],
- q(0901) => [
+ q(0900) => [
q(Austrian Sign Language),
],
- q(0902) => [
+ q(0901) => [
q(Asuri),
],
- q(0903) => [
+ q(0902) => [
q(Ipulo),
],
- q(0904) => [
+ q(0903) => [
q(Tocantins Asurini),
],
- q(0905) => [
+ q(0904) => [
q(Asoa),
],
- q(0906) => [
+ q(0905) => [
q(Australian Aborigines Sign Language),
],
- q(0907) => [
+ q(0906) => [
q(Muratayak),
],
- q(0908) => [
+ q(0907) => [
q(Yaosakor Asmat),
],
- q(0909) => [
+ q(0908) => [
q(As),
],
- q(0910) => [
+ q(0909) => [
q(Pele-Ata),
],
- q(0911) => [
+ q(0910) => [
q(Zaiwa),
],
- q(0912) => [
+ q(0911) => [
q(Atsahuaca),
],
- q(0913) => [
+ q(0912) => [
q(Ata Manobo),
],
- q(0914) => [
+ q(0913) => [
q(Atemble),
],
- q(0915) => [
+ q(0914) => [
q(Ivbie North-Okpela-Arhe),
],
- q(0916) => [
+ q(0915) => [
q(Attie),
],
- q(0917) => [
+ q(0916) => [
q(Atikamekw),
],
- q(0918) => [
+ q(0917) => [
q(Ati),
],
- q(0919) => [
+ q(0918) => [
q(Mt. Iraya Agta),
],
- q(0920) => [
+ q(0919) => [
q(Ata),
],
- q(0921) => [
+ q(0920) => [
q(Ashtiani),
],
- q(0922) => [
- q(Atong),
- ],
- q(0923) => [
+ q(0921) => [
q(Pudtol Atta),
],
- q(0924) => [
+ q(0922) => [
q(Aralle-Tabulahan),
],
- q(0925) => [
+ q(0923) => [
q(Waimiri-Atroari),
],
- q(0926) => [
+ q(0924) => [
q(Gros Ventre),
],
- q(0927) => [
+ q(0925) => [
q(Pamplona Atta),
],
- q(0928) => [
+ q(0926) => [
q(Reel),
],
- q(0929) => [
+ q(0927) => [
q(Northern Altai),
],
- q(0930) => [
+ q(0928) => [
q(Atsugewi),
],
- q(0931) => [
+ q(0929) => [
q(Arutani),
],
- q(0932) => [
+ q(0930) => [
q(Aneityum),
],
- q(0933) => [
+ q(0931) => [
q(Arta),
],
- q(0934) => [
+ q(0932) => [
q(Asumboa),
],
- q(0935) => [
+ q(0933) => [
q(Alugu),
],
- q(0936) => [
+ q(0934) => [
q(Waorani),
],
- q(0937) => [
+ q(0935) => [
q(Anuta),
],
- q(0938) => [
- q(=/Kx'au//'ein),
- ],
- q(0939) => [
+ q(0936) => [
q(Aguna),
],
- q(0940) => [
+ q(0937) => [
q(Aushi),
],
- q(0941) => [
+ q(0938) => [
q(Anuki),
],
- q(0942) => [
+ q(0939) => [
q(Awjilah),
],
- q(0943) => [
+ q(0940) => [
q(Heyo),
],
- q(0944) => [
+ q(0941) => [
q(Aulua),
],
- q(0945) => [
+ q(0942) => [
q(Asu (Nigeria)),
],
- q(0946) => [
+ q(0943) => [
q(Molmo One),
],
- q(0947) => [
+ q(0944) => [
q(Auyokawa),
],
- q(0948) => [
+ q(0945) => [
q(Makayam),
],
- q(0949) => [
+ q(0946) => [
q(Anus),
q(Korur),
],
- q(0950) => [
+ q(0947) => [
q(Aruek),
],
- q(0951) => [
+ q(0948) => [
q(Austral),
],
- q(0952) => [
+ q(0949) => [
q(Auye),
],
- q(0953) => [
+ q(0950) => [
q(Awyi),
],
- q(0954) => [
+ q(0951) => [
q(Aura),
],
- q(0955) => [
+ q(0952) => [
q(Awiyaana),
],
- q(0956) => [
+ q(0953) => [
q(Uzbeki Arabic),
],
- q(0957) => [
+ q(0954) => [
q(Avau),
],
- q(0958) => [
+ q(0955) => [
q(Alviri-Vidari),
],
- q(0959) => [
+ q(0956) => [
q(Avikam),
],
- q(0960) => [
+ q(0957) => [
q(Kotava),
],
- q(0961) => [
+ q(0958) => [
q(Eastern Egyptian Bedawi Arabic),
],
- q(0962) => [
+ q(0959) => [
q(Angkamuthi),
],
- q(0963) => [
+ q(0960) => [
q(Avatime),
],
- q(0964) => [
+ q(0961) => [
q(Agavotaguerra),
],
- q(0965) => [
+ q(0962) => [
q(Aushiri),
],
- q(0966) => [
+ q(0963) => [
q(Au),
],
- q(0967) => [
+ q(0964) => [
q(Avokaya),
],
- q(0968) => [
+ q(0965) => [
q(Ava-Canoeiro),
],
- q(0969) => [
+ q(0966) => [
q(Awa (Papua New Guinea)),
],
- q(0970) => [
+ q(0967) => [
q(Cicipu),
],
- q(0971) => [
+ q(0968) => [
q(Aweti),
],
- q(0972) => [
+ q(0969) => [
q(Anguthimri),
],
- q(0973) => [
+ q(0970) => [
q(Awbono),
],
- q(0974) => [
+ q(0971) => [
q(Aekyom),
],
- q(0975) => [
+ q(0972) => [
q(Awabakal),
],
- q(0976) => [
+ q(0973) => [
q(Arawum),
],
- q(0977) => [
+ q(0974) => [
q(Awngi),
],
- q(0978) => [
+ q(0975) => [
q(Awak),
],
- q(0979) => [
+ q(0976) => [
q(Awera),
],
- q(0980) => [
+ q(0977) => [
q(South Awyu),
],
- q(0981) => [
+ q(0978) => [
q(Arawete),
],
- q(0982) => [
+ q(0979) => [
q(Central Awyu),
],
- q(0983) => [
+ q(0980) => [
q(Jair Awyu),
],
- q(0984) => [
+ q(0981) => [
q(Awun),
],
- q(0985) => [
+ q(0982) => [
q(Awara),
],
- q(0986) => [
+ q(0983) => [
q(Edera Awyu),
],
- q(0987) => [
+ q(0984) => [
q(Abipon),
],
- q(0988) => [
+ q(0985) => [
q(Ayerrerenge),
],
- q(0989) => [
+ q(0986) => [
q(Mato Grosso Arara),
],
- q(0990) => [
+ q(0987) => [
q(Yaka (Central African Republic)),
],
- q(0991) => [
+ q(0988) => [
q(Lower Southern Aranda),
],
- q(0992) => [
+ q(0989) => [
q(Middle Armenian),
],
- q(0993) => [
+ q(0990) => [
q(Xaragure),
],
- q(0994) => [
+ q(0991) => [
q(Awar),
],
- q(0995) => [
+ q(0992) => [
q(Ayizo Gbe),
],
- q(0996) => [
+ q(0993) => [
q(Southern Aymara),
],
- q(0997) => [
+ q(0994) => [
q(Ayabadhu),
],
- q(0998) => [
+ q(0995) => [
q(Ayere),
],
- q(0999) => [
+ q(0996) => [
q(Ginyanga),
],
- q(1000) => [
+ q(0997) => [
q(Hadrami Arabic),
],
- q(1001) => [
+ q(0998) => [
q(Leyigha),
],
- q(1002) => [
+ q(0999) => [
q(Akuku),
],
- q(1003) => [
+ q(1000) => [
q(Libyan Arabic),
],
- q(1004) => [
+ q(1001) => [
q(Sanaani Arabic),
],
- q(1005) => [
+ q(1002) => [
q(Ayoreo),
],
- q(1006) => [
+ q(1003) => [
q(North Mesopotamian Arabic),
],
- q(1007) => [
+ q(1004) => [
q(Ayi (Papua New Guinea)),
],
- q(1008) => [
+ q(1005) => [
q(Central Aymara),
],
- q(1009) => [
+ q(1006) => [
q(Sorsogon Ayta),
],
- q(1010) => [
+ q(1007) => [
q(Magbukun Ayta),
],
- q(1011) => [
+ q(1008) => [
q(Ayu),
],
- q(1012) => [
+ q(1009) => [
q(Tayabas Ayta),
],
- q(1013) => [
+ q(1010) => [
q(Mai Brat),
],
- q(1014) => [
+ q(1011) => [
q(Azha),
],
- q(1015) => [
+ q(1012) => [
q(South Azerbaijani),
],
- q(1016) => [
+ q(1013) => [
q(Eastern Durango Nahuatl),
],
- q(1017) => [
+ q(1014) => [
q(San Pedro Amuzgos Amuzgo),
],
- q(1018) => [
+ q(1015) => [
q(North Azerbaijani),
],
- q(1019) => [
+ q(1016) => [
q(Ipalapa Amuzgo),
],
- q(1020) => [
+ q(1017) => [
q(Western Durango Nahuatl),
],
- q(1021) => [
+ q(1018) => [
q(Awing),
],
- q(1022) => [
+ q(1019) => [
q(Faire Atta),
],
- q(1023) => [
+ q(1020) => [
q(Highland Puebla Nahuatl),
],
- q(1024) => [
+ q(1021) => [
q(Babatana),
],
- q(1025) => [
+ q(1022) => [
q(Bainouk-Gunyuno),
],
- q(1026) => [
+ q(1023) => [
q(Badui),
],
- q(1027) => [
+ q(1024) => [
q(Bare),
],
- q(1028) => [
+ q(1025) => [
q(Nubaca),
],
- q(1029) => [
+ q(1026) => [
q(Tuki),
],
- q(1030) => [
+ q(1027) => [
q(Bahamas Creole English),
],
- q(1031) => [
+ q(1028) => [
q(Barakai),
],
- q(1032) => [
+ q(1029) => [
q(Waimaha),
],
- q(1033) => [
+ q(1030) => [
q(Bantawa),
],
- q(1034) => [
+ q(1031) => [
q(Bavarian),
],
- q(1035) => [
+ q(1032) => [
q(Bada (Nigeria)),
],
- q(1036) => [
+ q(1033) => [
q(Vengo),
],
- q(1037) => [
+ q(1034) => [
q(Bambili-Bambui),
],
- q(1038) => [
+ q(1035) => [
q(Bamun),
],
- q(1039) => [
+ q(1036) => [
q(Batuley),
],
- q(1040) => [
+ q(1037) => [
q(Baatonum),
],
- q(1041) => [
+ q(1038) => [
q(Barai),
],
- q(1042) => [
+ q(1039) => [
q(Batak Toba),
],
- q(1043) => [
+ q(1040) => [
q(Bau),
],
- q(1044) => [
+ q(1041) => [
q(Bangba),
],
- q(1045) => [
+ q(1042) => [
q(Baibai),
],
- q(1046) => [
+ q(1043) => [
q(Barama),
],
- q(1047) => [
+ q(1044) => [
q(Bugan),
],
- q(1048) => [
+ q(1045) => [
q(Barombi),
],
- q(1049) => [
+ q(1046) => [
q(Ghomala'),
],
- q(1050) => [
+ q(1047) => [
q(Babanki),
],
- q(1051) => [
+ q(1048) => [
q(Bats),
],
- q(1052) => [
+ q(1049) => [
q(Babango),
],
- q(1053) => [
+ q(1050) => [
q(Uneapa),
],
- q(1054) => [
+ q(1051) => [
q(Northern Bobo Madare),
q(Konabere),
],
- q(1055) => [
+ q(1052) => [
q(West Central Banda),
],
- q(1056) => [
+ q(1053) => [
q(Bamali),
],
- q(1057) => [
+ q(1054) => [
q(Girawa),
],
- q(1058) => [
+ q(1055) => [
q(Bakpinka),
],
- q(1059) => [
+ q(1056) => [
q(Mburku),
],
- q(1060) => [
+ q(1057) => [
q(Kulung (Nigeria)),
],
- q(1061) => [
+ q(1058) => [
q(Karnai),
],
- q(1062) => [
+ q(1059) => [
q(Baba),
],
- q(1063) => [
+ q(1060) => [
q(Bubia),
],
- q(1064) => [
+ q(1061) => [
q(Befang),
],
- q(1065) => [
+ q(1062) => [
q(Babalia Creole Arabic),
],
- q(1066) => [
+ q(1063) => [
q(Central Bai),
],
- q(1067) => [
+ q(1064) => [
q(Bainouk-Samik),
],
- q(1068) => [
+ q(1065) => [
q(Southern Balochi),
],
- q(1069) => [
+ q(1066) => [
q(North Babar),
],
- q(1070) => [
+ q(1067) => [
q(Bamenyam),
],
- q(1071) => [
+ q(1068) => [
q(Bamu),
],
- q(1072) => [
+ q(1069) => [
q(Baga Binari),
],
- q(1073) => [
+ q(1070) => [
q(Bariai),
],
- q(1074) => [
+ q(1071) => [
q(Baoule),
],
- q(1075) => [
+ q(1072) => [
q(Bardi),
],
- q(1076) => [
+ q(1073) => [
q(Bunaba),
],
- q(1077) => [
+ q(1074) => [
q(Central Bikol),
],
- q(1078) => [
+ q(1075) => [
q(Bannoni),
],
- q(1079) => [
+ q(1076) => [
q(Bali (Nigeria)),
],
- q(1080) => [
+ q(1077) => [
q(Kaluli),
],
- q(1081) => [
+ q(1078) => [
q(Bali (Democratic Republic of Congo)),
],
- q(1082) => [
+ q(1079) => [
q(Bench),
],
- q(1083) => [
+ q(1080) => [
q(Babine),
],
- q(1084) => [
+ q(1081) => [
q(Kohumono),
],
- q(1085) => [
+ q(1082) => [
q(Bendi),
],
- q(1086) => [
+ q(1083) => [
q(Awad Bing),
],
- q(1087) => [
+ q(1084) => [
q(Shoo-Minda-Nye),
],
- q(1088) => [
+ q(1085) => [
q(Bana),
],
- q(1089) => [
+ q(1086) => [
q(Bacama),
],
- q(1090) => [
+ q(1087) => [
q(Bainouk-Gunyaamolo),
],
- q(1091) => [
+ q(1088) => [
q(Bayot),
],
- q(1092) => [
+ q(1089) => [
q(Basap),
],
- q(1093) => [
+ q(1090) => [
q(Embera-Baudo),
],
- q(1094) => [
+ q(1091) => [
q(Bunama),
],
- q(1095) => [
+ q(1092) => [
q(Bade),
],
- q(1096) => [
+ q(1093) => [
q(Biage),
],
- q(1097) => [
+ q(1094) => [
q(Bonggi),
],
- q(1098) => [
+ q(1095) => [
q(Baka (Sudan)),
],
- q(1099) => [
+ q(1096) => [
q(Burun),
],
- q(1100) => [
+ q(1097) => [
q(Bai),
],
- q(1101) => [
+ q(1098) => [
q(Budukh),
],
- q(1102) => [
+ q(1099) => [
q(Indonesian Bajau),
],
- q(1103) => [
+ q(1100) => [
q(Buduma),
],
- q(1104) => [
+ q(1101) => [
q(Baldemu),
],
- q(1105) => [
+ q(1102) => [
q(Morom),
],
- q(1106) => [
+ q(1103) => [
q(Bende),
],
- q(1107) => [
+ q(1104) => [
q(Bahnar),
],
- q(1108) => [
+ q(1105) => [
q(West Coast Bajau),
],
- q(1109) => [
+ q(1106) => [
q(Burunge),
],
- q(1110) => [
+ q(1107) => [
q(Bokoto),
],
- q(1111) => [
+ q(1108) => [
q(Oroko),
],
- q(1112) => [
+ q(1109) => [
q(Bodo Parja),
],
- q(1113) => [
+ q(1110) => [
q(Baham),
],
- q(1114) => [
+ q(1111) => [
q(Budong-Budong),
],
- q(1115) => [
+ q(1112) => [
q(Bandjalang),
],
- q(1116) => [
+ q(1113) => [
q(Badeshi),
],
- q(1117) => [
+ q(1114) => [
q(Beaver),
],
- q(1118) => [
+ q(1115) => [
q(Bebele),
],
- q(1119) => [
+ q(1116) => [
q(Iceve-Maci),
],
- q(1120) => [
+ q(1117) => [
q(Bedoanas),
],
- q(1121) => [
+ q(1118) => [
q(Byangsi),
],
- q(1122) => [
+ q(1119) => [
q(Benabena),
],
- q(1123) => [
+ q(1120) => [
q(Belait),
],
- q(1124) => [
+ q(1121) => [
q(Biali),
],
- q(1125) => [
+ q(1122) => [
q(Bekati'),
],
- q(1126) => [
+ q(1123) => [
q(Bebeli),
],
- q(1127) => [
+ q(1124) => [
q(Beami),
],
- q(1128) => [
+ q(1125) => [
q(Besoa),
],
- q(1129) => [
+ q(1126) => [
q(Beembe),
],
- q(1130) => [
+ q(1127) => [
q(Besme),
],
- q(1131) => [
+ q(1128) => [
q(Guiberoua Bete),
],
- q(1132) => [
+ q(1129) => [
q(Blagar),
],
- q(1133) => [
+ q(1130) => [
q(Daloa Bete),
],
- q(1134) => [
+ q(1131) => [
q(Betawi),
],
- q(1135) => [
+ q(1132) => [
q(Jur Modo),
],
- q(1136) => [
+ q(1133) => [
q(Beli (Papua New Guinea)),
],
- q(1137) => [
+ q(1134) => [
q(Bena (Tanzania)),
],
- q(1138) => [
+ q(1135) => [
q(Bari),
],
- q(1139) => [
+ q(1136) => [
q(Pauri Bareli),
],
- q(1140) => [
+ q(1137) => [
+ q(Panyi Bai),
q(Northern Bai),
],
- q(1141) => [
+ q(1138) => [
q(Bafut),
],
- q(1142) => [
+ q(1139) => [
q(Betaf),
q(Tena),
],
- q(1143) => [
+ q(1140) => [
q(Bofi),
],
- q(1144) => [
+ q(1141) => [
q(Busang Kayan),
],
- q(1145) => [
+ q(1142) => [
q(Blafe),
],
- q(1146) => [
+ q(1143) => [
q(British Sign Language),
],
- q(1147) => [
+ q(1144) => [
q(Bafanji),
],
- q(1148) => [
+ q(1145) => [
q(Ban Khor Sign Language),
],
- q(1149) => [
+ q(1146) => [
q(Banda-Ndele),
],
- q(1150) => [
+ q(1147) => [
q(Mmen),
],
- q(1151) => [
+ q(1148) => [
q(Bunak),
],
- q(1152) => [
+ q(1149) => [
q(Malba Birifor),
],
- q(1153) => [
+ q(1150) => [
q(Beba),
],
- q(1154) => [
+ q(1151) => [
q(Badaga),
],
- q(1155) => [
+ q(1152) => [
q(Bazigar),
],
- q(1156) => [
+ q(1153) => [
q(Southern Bai),
],
- q(1157) => [
+ q(1154) => [
q(Balti),
],
- q(1158) => [
+ q(1155) => [
q(Gahri),
],
- q(1159) => [
+ q(1156) => [
q(Bondo),
],
- q(1160) => [
+ q(1157) => [
q(Bantayanon),
],
- q(1161) => [
+ q(1158) => [
q(Bagheli),
],
- q(1162) => [
+ q(1159) => [
q(Mahasu Pahari),
],
- q(1163) => [
+ q(1160) => [
q(Gwamhi-Wuri),
],
- q(1164) => [
+ q(1161) => [
q(Bobongko),
],
- q(1165) => [
+ q(1162) => [
q(Haryanvi),
],
- q(1166) => [
+ q(1163) => [
q(Rathwi Bareli),
],
- q(1167) => [
+ q(1164) => [
q(Bauria),
],
- q(1168) => [
+ q(1165) => [
q(Bangandu),
],
- q(1169) => [
+ q(1166) => [
q(Bugun),
],
- q(1170) => [
+ q(1167) => [
q(Giangan),
],
- q(1171) => [
+ q(1168) => [
q(Bangolan),
],
- q(1172) => [
+ q(1169) => [
q(Bit),
q(Buxinhua),
],
- q(1173) => [
+ q(1170) => [
q(Bo (Laos)),
],
- q(1174) => [
+ q(1171) => [
q(Baga Mboteni),
],
- q(1175) => [
+ q(1172) => [
q(Western Balochi),
],
- q(1176) => [
+ q(1173) => [
q(Baga Koga),
],
- q(1177) => [
+ q(1174) => [
q(Eastern Balochi),
],
- q(1178) => [
+ q(1175) => [
q(Bagri),
],
- q(1179) => [
+ q(1176) => [
q(Bawm Chin),
],
- q(1180) => [
+ q(1177) => [
q(Tagabawa),
],
- q(1181) => [
+ q(1178) => [
q(Bughotu),
],
- q(1182) => [
+ q(1179) => [
q(Mbongno),
],
- q(1183) => [
+ q(1180) => [
q(Warkay-Bipim),
],
- q(1184) => [
+ q(1181) => [
q(Bhatri),
],
- q(1185) => [
+ q(1182) => [
q(Balkan Gagauz Turkish),
],
- q(1186) => [
+ q(1183) => [
q(Benggoi),
],
- q(1187) => [
+ q(1184) => [
q(Banggai),
],
- q(1188) => [
+ q(1185) => [
q(Bharia),
],
- q(1189) => [
+ q(1186) => [
q(Bhili),
],
- q(1190) => [
+ q(1187) => [
q(Biga),
],
- q(1191) => [
+ q(1188) => [
q(Bhadrawahi),
],
- q(1192) => [
+ q(1189) => [
q(Bhaya),
],
- q(1193) => [
+ q(1190) => [
q(Odiai),
],
- q(1194) => [
+ q(1191) => [
q(Binandere),
],
- q(1195) => [
+ q(1192) => [
q(Bukharic),
],
- q(1196) => [
+ q(1193) => [
q(Bhilali),
],
- q(1197) => [
+ q(1194) => [
q(Bahing),
],
- q(1198) => [
+ q(1195) => [
q(Bimin),
],
- q(1199) => [
+ q(1196) => [
q(Bathari),
],
- q(1200) => [
+ q(1197) => [
q(Bohtan Neo-Aramaic),
],
- q(1201) => [
+ q(1198) => [
q(Bima),
],
- q(1202) => [
+ q(1199) => [
q(Tukang Besi South),
],
- q(1203) => [
+ q(1200) => [
q(Bara Malagasy),
],
- q(1204) => [
+ q(1201) => [
q(Buwal),
],
- q(1205) => [
+ q(1202) => [
q(Bhattiyali),
],
- q(1206) => [
+ q(1203) => [
q(Bhunjia),
],
- q(1207) => [
+ q(1204) => [
q(Bahau),
],
- q(1208) => [
+ q(1205) => [
q(Biak),
],
- q(1209) => [
+ q(1206) => [
q(Bhalay),
],
- q(1210) => [
+ q(1207) => [
q(Bhele),
],
- q(1211) => [
+ q(1208) => [
q(Bada (Indonesia)),
],
- q(1212) => [
+ q(1209) => [
q(Badimaya),
],
- q(1213) => [
+ q(1210) => [
q(Bissa),
q(Bisa),
],
- q(1214) => [
+ q(1211) => [
q(Bikaru),
],
- q(1215) => [
+ q(1212) => [
q(Bidiyo),
],
- q(1216) => [
+ q(1213) => [
q(Bepour),
],
- q(1217) => [
+ q(1214) => [
q(Biafada),
],
- q(1218) => [
+ q(1215) => [
q(Biangai),
],
- q(1219) => [
+ q(1216) => [
q(Vaghat-Ya-Bijim-Legeri),
],
- q(1220) => [
+ q(1217) => [
q(Bile),
],
- q(1221) => [
+ q(1218) => [
q(Bimoba),
],
- q(1222) => [
+ q(1219) => [
q(Nai),
],
- q(1223) => [
+ q(1220) => [
q(Bila),
],
- q(1224) => [
+ q(1221) => [
q(Bipi),
],
- q(1225) => [
+ q(1222) => [
q(Bisorio),
],
- q(1226) => [
+ q(1223) => [
q(Berinomo),
],
- q(1227) => [
+ q(1224) => [
q(Biete),
],
- q(1228) => [
+ q(1225) => [
q(Southern Birifor),
],
- q(1229) => [
+ q(1226) => [
q(Kol (Cameroon)),
],
- q(1230) => [
+ q(1227) => [
q(Bijori),
],
- q(1231) => [
+ q(1228) => [
q(Birhor),
],
- q(1232) => [
+ q(1229) => [
q(Baloi),
],
- q(1233) => [
+ q(1230) => [
q(Budza),
],
- q(1234) => [
+ q(1231) => [
q(Banggarla),
],
- q(1235) => [
+ q(1232) => [
q(Bariji),
],
- q(1236) => [
+ q(1233) => [
q(Biao-Jiao Mien),
],
- q(1237) => [
+ q(1234) => [
q(Barzani Jewish Neo-Aramaic),
],
- q(1238) => [
+ q(1235) => [
q(Bidyogo),
],
- q(1239) => [
+ q(1236) => [
q(Bahinemo),
],
- q(1240) => [
+ q(1237) => [
q(Burji),
],
- q(1241) => [
+ q(1238) => [
q(Kanauji),
],
- q(1242) => [
+ q(1239) => [
q(Barok),
],
- q(1243) => [
+ q(1240) => [
q(Bulu (Papua New Guinea)),
],
- q(1244) => [
+ q(1241) => [
q(Bajelani),
],
- q(1245) => [
+ q(1242) => [
q(Banjar),
],
- q(1246) => [
+ q(1243) => [
q(Mid-Southern Banda),
],
- q(1247) => [
+ q(1244) => [
q(Fanamaket),
],
- q(1248) => [
+ q(1245) => [
q(Binumarien),
],
- q(1249) => [
+ q(1246) => [
q(Bajan),
],
- q(1250) => [
+ q(1247) => [
q(Balanta-Ganja),
],
- q(1251) => [
+ q(1248) => [
q(Busuu),
],
- q(1252) => [
+ q(1249) => [
q(Bedjond),
],
- q(1253) => [
+ q(1250) => [
q(Bakwe),
],
- q(1254) => [
+ q(1251) => [
q(Banao Itneg),
],
- q(1255) => [
+ q(1252) => [
q(Bayali),
],
- q(1256) => [
+ q(1253) => [
q(Baruga),
],
- q(1257) => [
+ q(1254) => [
q(Kyak),
],
- q(1258) => [
+ q(1255) => [
q(Baka (Cameroon)),
],
- q(1259) => [
+ q(1256) => [
q(Binukid),
q(Talaandig),
],
- q(1260) => [
+ q(1257) => [
q(Beeke),
],
- q(1261) => [
+ q(1258) => [
q(Buraka),
],
- q(1262) => [
+ q(1259) => [
q(Bakoko),
],
- q(1263) => [
+ q(1260) => [
q(Baki),
],
- q(1264) => [
+ q(1261) => [
q(Pande),
],
- q(1265) => [
+ q(1262) => [
q(Brokskat),
],
- q(1266) => [
+ q(1263) => [
q(Berik),
],
- q(1267) => [
+ q(1264) => [
q(Kom (Cameroon)),
],
- q(1268) => [
+ q(1265) => [
q(Bukitan),
],
- q(1269) => [
+ q(1266) => [
q(Kwa'),
],
- q(1270) => [
+ q(1267) => [
q(Boko (Democratic Republic of Congo)),
],
- q(1271) => [
+ q(1268) => [
q(Bakairi),
],
- q(1272) => [
+ q(1269) => [
q(Bakumpai),
],
- q(1273) => [
+ q(1270) => [
q(Northern Sorsoganon),
],
- q(1274) => [
+ q(1271) => [
q(Boloki),
],
- q(1275) => [
+ q(1272) => [
q(Buhid),
],
- q(1276) => [
+ q(1273) => [
q(Bekwarra),
],
- q(1277) => [
+ q(1274) => [
q(Bekwel),
],
- q(1278) => [
+ q(1275) => [
q(Baikeno),
],
- q(1279) => [
+ q(1276) => [
q(Bokyi),
],
- q(1280) => [
+ q(1277) => [
q(Bungku),
],
- q(1281) => [
+ q(1278) => [
q(Bilua),
],
- q(1282) => [
+ q(1279) => [
q(Bella Coola),
],
- q(1283) => [
+ q(1280) => [
q(Bolango),
],
- q(1284) => [
+ q(1281) => [
q(Balanta-Kentohe),
],
- q(1285) => [
+ q(1282) => [
q(Buol),
],
- q(1286) => [
+ q(1283) => [
q(Balau),
],
- q(1287) => [
+ q(1284) => [
q(Kuwaa),
],
- q(1288) => [
+ q(1285) => [
q(Bolia),
],
- q(1289) => [
+ q(1286) => [
q(Bolongan),
],
- q(1290) => [
+ q(1287) => [
q(Pa'o Karen),
q(Pa'O),
],
- q(1291) => [
+ q(1288) => [
q(Biloxi),
],
- q(1292) => [
+ q(1289) => [
q(Beli (Sudan)),
],
- q(1293) => [
+ q(1290) => [
q(Southern Catanduanes Bikol),
],
- q(1294) => [
+ q(1291) => [
q(Anii),
],
- q(1295) => [
+ q(1292) => [
q(Blablanga),
],
- q(1296) => [
+ q(1293) => [
q(Baluan-Pam),
],
- q(1297) => [
+ q(1294) => [
q(Blang),
],
- q(1298) => [
+ q(1295) => [
q(Balaesang),
],
- q(1299) => [
+ q(1296) => [
q(Tai Dam),
],
- q(1300) => [
+ q(1297) => [
q(Bolo),
],
- q(1301) => [
+ q(1298) => [
q(Balangao),
],
- q(1302) => [
+ q(1299) => [
q(Mag-Indi Ayta),
],
- q(1303) => [
+ q(1300) => [
q(Notre),
],
- q(1304) => [
+ q(1301) => [
q(Balantak),
],
- q(1305) => [
+ q(1302) => [
q(Lame),
],
- q(1306) => [
+ q(1303) => [
q(Bembe),
],
- q(1307) => [
+ q(1304) => [
q(Biem),
],
- q(1308) => [
+ q(1305) => [
q(Baga Manduri),
],
- q(1309) => [
+ q(1306) => [
q(Limassa),
],
- q(1310) => [
+ q(1307) => [
q(Bom),
],
- q(1311) => [
+ q(1308) => [
q(Bamwe),
],
- q(1312) => [
+ q(1309) => [
q(Kein),
],
- q(1313) => [
+ q(1310) => [
q(Bagirmi),
],
- q(1314) => [
+ q(1311) => [
q(Bote-Majhi),
],
- q(1315) => [
+ q(1312) => [
q(Ghayavi),
],
- q(1316) => [
+ q(1313) => [
q(Bomboli),
],
- q(1317) => [
+ q(1314) => [
q(Northern Betsimisaraka Malagasy),
],
- q(1318) => [
+ q(1315) => [
q(Bina (Papua New Guinea)),
],
- q(1319) => [
+ q(1316) => [
q(Bambalang),
],
- q(1320) => [
+ q(1317) => [
q(Bulgebi),
],
- q(1321) => [
+ q(1318) => [
q(Bomu),
],
- q(1322) => [
+ q(1319) => [
q(Muinane),
],
- q(1323) => [
+ q(1320) => [
q(Bilma Kanuri),
],
- q(1324) => [
+ q(1321) => [
q(Biao Mon),
],
- q(1325) => [
+ q(1322) => [
q(Somba-Siawari),
],
- q(1326) => [
+ q(1323) => [
q(Bum),
],
- q(1327) => [
+ q(1324) => [
q(Bomwali),
],
- q(1328) => [
+ q(1325) => [
q(Baimak),
],
- q(1329) => [
- q(Bemba (Democratic Republic of Congo)),
- ],
- q(1330) => [
+ q(1326) => [
q(Baramu),
],
- q(1331) => [
+ q(1327) => [
q(Bonerate),
],
- q(1332) => [
+ q(1328) => [
q(Bookan),
],
- q(1333) => [
+ q(1329) => [
q(Bontok),
],
- q(1334) => [
+ q(1330) => [
q(Banda (Indonesia)),
],
- q(1335) => [
+ q(1331) => [
q(Bintauna),
],
- q(1336) => [
+ q(1332) => [
q(Masiwang),
],
- q(1337) => [
+ q(1333) => [
q(Benga),
],
- q(1338) => [
+ q(1334) => [
q(Bangi),
],
- q(1339) => [
+ q(1335) => [
q(Eastern Tawbuid),
],
- q(1340) => [
+ q(1336) => [
q(Bierebo),
],
- q(1341) => [
+ q(1337) => [
q(Boon),
],
- q(1342) => [
+ q(1338) => [
q(Batanga),
],
- q(1343) => [
+ q(1339) => [
q(Bunun),
],
- q(1344) => [
+ q(1340) => [
q(Bantoanon),
],
- q(1345) => [
+ q(1341) => [
q(Bola),
],
- q(1346) => [
+ q(1342) => [
q(Bantik),
],
- q(1347) => [
+ q(1343) => [
q(Butmas-Tur),
],
- q(1348) => [
+ q(1344) => [
q(Bundeli),
],
- q(1349) => [
+ q(1345) => [
q(Bentong),
],
- q(1350) => [
+ q(1346) => [
q(Bonerif),
q(Beneraf),
q(Edwas),
],
- q(1351) => [
+ q(1347) => [
q(Bisis),
],
- q(1352) => [
+ q(1348) => [
q(Bangubangu),
],
- q(1353) => [
+ q(1349) => [
q(Bintulu),
],
- q(1354) => [
+ q(1350) => [
q(Beezen),
],
- q(1355) => [
+ q(1351) => [
q(Bora),
],
- q(1356) => [
+ q(1352) => [
q(Aweer),
],
- q(1357) => [
+ q(1353) => [
q(Mundabli),
],
- q(1358) => [
+ q(1354) => [
q(Bolon),
],
- q(1359) => [
+ q(1355) => [
q(Bamako Sign Language),
],
- q(1360) => [
+ q(1356) => [
q(Boma),
],
- q(1361) => [
+ q(1357) => [
q(Barbareno),
],
- q(1362) => [
+ q(1358) => [
q(Anjam),
],
- q(1363) => [
+ q(1359) => [
q(Bonjo),
],
- q(1364) => [
+ q(1360) => [
q(Bole),
],
- q(1365) => [
+ q(1361) => [
q(Berom),
],
- q(1366) => [
+ q(1362) => [
q(Bine),
],
- q(1367) => [
+ q(1363) => [
q(Tiemacewe Bozo),
],
- q(1368) => [
+ q(1364) => [
q(Bonkiman),
],
- q(1369) => [
+ q(1365) => [
q(Bogaya),
],
- q(1370) => [
+ q(1366) => [
q(Bororo),
],
- q(1371) => [
+ q(1367) => [
q(Bongo),
],
- q(1372) => [
+ q(1368) => [
q(Bondei),
],
- q(1373) => [
+ q(1369) => [
q(Tuwuli),
],
- q(1374) => [
+ q(1370) => [
q(Rema),
],
- q(1375) => [
+ q(1371) => [
q(Buamu),
],
- q(1376) => [
+ q(1372) => [
q(Bodo (Central African Republic)),
],
- q(1377) => [
+ q(1373) => [
q(Tieyaxo Bozo),
],
- q(1378) => [
+ q(1374) => [
q(Daakaka),
],
- q(1379) => [
+ q(1375) => [
q(Barbacoas),
],
- q(1380) => [
+ q(1376) => [
q(Banda-Banda),
],
- q(1381) => [
+ q(1377) => [
q(Bonggo),
],
- q(1382) => [
+ q(1378) => [
q(Botlikh),
],
- q(1383) => [
+ q(1379) => [
q(Bagupi),
],
- q(1384) => [
+ q(1380) => [
q(Binji),
],
- q(1385) => [
+ q(1381) => [
q(Orowe),
q('Oroe),
],
- q(1386) => [
+ q(1382) => [
q(Broome Pearling Lugger Pidgin),
],
- q(1387) => [
+ q(1383) => [
q(Biyom),
],
- q(1388) => [
+ q(1384) => [
q(Dzao Min),
],
- q(1389) => [
+ q(1385) => [
q(Anasi),
],
- q(1390) => [
+ q(1386) => [
q(Kaure),
],
- q(1391) => [
+ q(1387) => [
q(Banda Malay),
],
- q(1392) => [
+ q(1388) => [
q(Koronadal Blaan),
],
- q(1393) => [
+ q(1389) => [
q(Sarangani Blaan),
],
- q(1394) => [
+ q(1390) => [
q(Barrow Point),
],
- q(1395) => [
+ q(1391) => [
q(Bongu),
],
- q(1396) => [
+ q(1392) => [
q(Bian Marind),
],
- q(1397) => [
+ q(1393) => [
q(Bo (Papua New Guinea)),
],
- q(1398) => [
+ q(1394) => [
q(Palya Bareli),
],
- q(1399) => [
+ q(1395) => [
q(Bishnupriya),
],
- q(1400) => [
+ q(1396) => [
q(Bilba),
],
- q(1401) => [
+ q(1397) => [
q(Tchumbuli),
],
- q(1402) => [
+ q(1398) => [
q(Bagusa),
],
- q(1403) => [
+ q(1399) => [
q(Boko (Benin)),
q(Boo),
],
- q(1404) => [
+ q(1400) => [
q(Bung),
],
- q(1405) => [
+ q(1401) => [
q(Baga Kaloum),
],
- q(1406) => [
+ q(1402) => [
q(Bago-Kusuntu),
],
- q(1407) => [
+ q(1403) => [
q(Baima),
],
- q(1408) => [
+ q(1404) => [
q(Bakhtiari),
],
- q(1409) => [
+ q(1405) => [
q(Bandial),
],
- q(1410) => [
+ q(1406) => [
q(Banda-Mbres),
],
- q(1411) => [
+ q(1407) => [
q(Bilakura),
],
- q(1412) => [
+ q(1408) => [
q(Wumboko),
],
- q(1413) => [
+ q(1409) => [
q(Bulgarian Sign Language),
],
- q(1414) => [
+ q(1410) => [
q(Balo),
],
- q(1415) => [
+ q(1411) => [
q(Busa),
],
- q(1416) => [
+ q(1412) => [
q(Biritai),
],
- q(1417) => [
+ q(1413) => [
q(Burusu),
],
- q(1418) => [
+ q(1414) => [
q(Bosngun),
],
- q(1419) => [
+ q(1415) => [
q(Bamukumbit),
],
- q(1420) => [
+ q(1416) => [
q(Boguru),
],
- q(1421) => [
+ q(1417) => [
q(Koro Wachi),
q(Begbere-Ejar),
],
- q(1422) => [
+ q(1418) => [
q(Buru (Nigeria)),
],
- q(1423) => [
+ q(1419) => [
q(Baangi),
],
- q(1424) => [
+ q(1420) => [
q(Bengkala Sign Language),
],
- q(1425) => [
+ q(1421) => [
q(Bakaka),
],
- q(1426) => [
+ q(1422) => [
q(Lave),
],
- q(1427) => [
+ q(1423) => [
q(Berbice Creole Dutch),
],
- q(1428) => [
+ q(1424) => [
q(Baraamu),
],
- q(1429) => [
+ q(1425) => [
q(Bera),
],
- q(1430) => [
+ q(1426) => [
q(Baure),
],
- q(1431) => [
+ q(1427) => [
q(Brahui),
],
- q(1432) => [
+ q(1428) => [
q(Mokpwe),
],
- q(1433) => [
+ q(1429) => [
q(Bieria),
],
- q(1434) => [
+ q(1430) => [
q(Birked),
],
- q(1435) => [
+ q(1431) => [
q(Birwa),
],
- q(1436) => [
+ q(1432) => [
q(Barambu),
],
- q(1437) => [
+ q(1433) => [
q(Boruca),
],
- q(1438) => [
+ q(1434) => [
q(Brokkat),
],
- q(1439) => [
+ q(1435) => [
q(Barapasi),
],
- q(1440) => [
+ q(1436) => [
q(Breri),
],
- q(1441) => [
+ q(1437) => [
q(Birao),
],
- q(1442) => [
+ q(1438) => [
q(Baras),
],
- q(1443) => [
+ q(1439) => [
q(Bitare),
],
- q(1444) => [
+ q(1440) => [
q(Eastern Bru),
],
- q(1445) => [
+ q(1441) => [
q(Western Bru),
],
- q(1446) => [
+ q(1442) => [
q(Bellari),
],
- q(1447) => [
+ q(1443) => [
q(Bodo (India)),
],
- q(1448) => [
+ q(1444) => [
q(Burui),
],
- q(1449) => [
+ q(1445) => [
q(Bilbil),
],
- q(1450) => [
+ q(1446) => [
q(Abinomn),
],
- q(1451) => [
+ q(1447) => [
q(Brunei Bisaya),
],
- q(1452) => [
+ q(1448) => [
q(Bassari),
q(Oniyan),
],
- q(1453) => [
+ q(1449) => [
q(Wushi),
],
- q(1454) => [
+ q(1450) => [
q(Bauchi),
],
- q(1455) => [
+ q(1451) => [
q(Bashkardi),
],
- q(1456) => [
+ q(1452) => [
q(Kati),
],
- q(1457) => [
+ q(1453) => [
q(Bassossi),
],
- q(1458) => [
+ q(1454) => [
q(Bangwinji),
],
- q(1459) => [
+ q(1455) => [
q(Burushaski),
],
- q(1460) => [
+ q(1456) => [
q(Basa-Gumna),
],
- q(1461) => [
+ q(1457) => [
q(Busami),
],
- q(1462) => [
+ q(1458) => [
q(Barasana-Eduria),
],
- q(1463) => [
+ q(1459) => [
q(Buso),
],
- q(1464) => [
+ q(1460) => [
q(Baga Sitemu),
],
- q(1465) => [
+ q(1461) => [
q(Bassa),
],
- q(1466) => [
+ q(1462) => [
q(Bassa-Kontagora),
],
- q(1467) => [
+ q(1463) => [
q(Akoose),
],
- q(1468) => [
+ q(1464) => [
q(Basketo),
],
- q(1469) => [
+ q(1465) => [
q(Bahonsuai),
],
- q(1470) => [
+ q(1466) => [
q(Baga Sobane),
],
- q(1471) => [
+ q(1467) => [
q(Baiso),
],
- q(1472) => [
+ q(1468) => [
q(Yangkam),
],
- q(1473) => [
+ q(1469) => [
q(Sabah Bisaya),
],
- q(1474) => [
+ q(1470) => [
q(Bata),
],
- q(1475) => [
+ q(1471) => [
q(Bati (Cameroon)),
],
- q(1476) => [
+ q(1472) => [
q(Batak Dairi),
],
- q(1477) => [
+ q(1473) => [
q(Gamo-Ningi),
],
- q(1478) => [
+ q(1474) => [
q(Birgit),
],
- q(1479) => [
+ q(1475) => [
q(Gagnoa Bete),
],
- q(1480) => [
+ q(1476) => [
q(Biatah Bidayuh),
],
- q(1481) => [
+ q(1477) => [
q(Burate),
],
- q(1482) => [
+ q(1478) => [
q(Bacanese Malay),
],
- q(1483) => [
+ q(1479) => [
q(Bhatola),
],
- q(1484) => [
+ q(1480) => [
q(Batak Mandailing),
],
- q(1485) => [
+ q(1481) => [
q(Ratagnon),
],
- q(1486) => [
+ q(1482) => [
q(Rinconada Bikol),
],
- q(1487) => [
+ q(1483) => [
q(Budibud),
],
- q(1488) => [
+ q(1484) => [
q(Batek),
],
- q(1489) => [
+ q(1485) => [
q(Baetora),
],
- q(1490) => [
+ q(1486) => [
q(Batak Simalungun),
],
- q(1491) => [
+ q(1487) => [
q(Bete-Bendi),
],
- q(1492) => [
+ q(1488) => [
q(Batu),
],
- q(1493) => [
+ q(1489) => [
q(Bateri),
],
- q(1494) => [
+ q(1490) => [
q(Butuanon),
],
- q(1495) => [
+ q(1491) => [
q(Batak Karo),
],
- q(1496) => [
+ q(1492) => [
q(Bobot),
],
- q(1497) => [
+ q(1493) => [
q(Batak Alas-Kluet),
],
- q(1498) => [
+ q(1494) => [
q(Bua),
],
- q(1499) => [
+ q(1495) => [
q(Bushi),
],
- q(1500) => [
+ q(1496) => [
q(Ntcham),
],
- q(1501) => [
+ q(1497) => [
q(Beothuk),
],
- q(1502) => [
+ q(1498) => [
q(Bushoong),
],
- q(1503) => [
+ q(1499) => [
q(Younuo Bunu),
],
- q(1504) => [
+ q(1500) => [
q(Bongili),
],
- q(1505) => [
+ q(1501) => [
q(Basa-Gurmana),
],
- q(1506) => [
+ q(1502) => [
q(Bugawac),
],
- q(1507) => [
+ q(1503) => [
q(Bulu (Cameroon)),
],
- q(1508) => [
+ q(1504) => [
q(Sherbro),
],
- q(1509) => [
+ q(1505) => [
q(Terei),
],
- q(1510) => [
+ q(1506) => [
q(Busoa),
],
- q(1511) => [
+ q(1507) => [
q(Brem),
],
- q(1512) => [
+ q(1508) => [
q(Bokobaru),
],
- q(1513) => [
+ q(1509) => [
q(Bungain),
],
- q(1514) => [
+ q(1510) => [
q(Budu),
],
- q(1515) => [
+ q(1511) => [
q(Bun),
],
- q(1516) => [
+ q(1512) => [
q(Bubi),
],
- q(1517) => [
+ q(1513) => [
q(Boghom),
],
- q(1518) => [
+ q(1514) => [
q(Bullom So),
],
- q(1519) => [
+ q(1515) => [
q(Bukwen),
],
- q(1520) => [
+ q(1516) => [
q(Barein),
],
- q(1521) => [
+ q(1517) => [
q(Bube),
],
- q(1522) => [
+ q(1518) => [
q(Baelelea),
],
- q(1523) => [
+ q(1519) => [
q(Baeggu),
],
- q(1524) => [
+ q(1520) => [
q(Berau Malay),
],
- q(1525) => [
+ q(1521) => [
q(Boor),
],
- q(1526) => [
+ q(1522) => [
q(Bonkeng),
],
- q(1527) => [
+ q(1523) => [
q(Bure),
],
- q(1528) => [
+ q(1524) => [
q(Belanda Viri),
],
- q(1529) => [
+ q(1525) => [
q(Baan),
],
- q(1530) => [
+ q(1526) => [
q(Bukat),
],
- q(1531) => [
+ q(1527) => [
q(Bolivian Sign Language),
],
- q(1532) => [
+ q(1528) => [
q(Bamunka),
],
- q(1533) => [
+ q(1529) => [
q(Buna),
],
- q(1534) => [
+ q(1530) => [
q(Bolgo),
],
- q(1535) => [
+ q(1531) => [
q(Bumang),
],
- q(1536) => [
+ q(1532) => [
q(Birri),
],
- q(1537) => [
+ q(1533) => [
q(Burarra),
],
- q(1538) => [
+ q(1534) => [
q(Bati (Indonesia)),
],
- q(1539) => [
+ q(1535) => [
q(Bukit Malay),
],
- q(1540) => [
+ q(1536) => [
q(Baniva),
],
- q(1541) => [
+ q(1537) => [
q(Boga),
],
- q(1542) => [
+ q(1538) => [
q(Dibole),
],
- q(1543) => [
+ q(1539) => [
q(Baybayanon),
],
- q(1544) => [
+ q(1540) => [
q(Bauzi),
],
- q(1545) => [
+ q(1541) => [
q(Bwatoo),
],
- q(1546) => [
+ q(1542) => [
q(Namosi-Naitasiri-Serua),
],
- q(1547) => [
+ q(1543) => [
q(Bwile),
],
- q(1548) => [
+ q(1544) => [
q(Bwaidoka),
],
- q(1549) => [
+ q(1545) => [
q(Bwe Karen),
],
- q(1550) => [
+ q(1546) => [
q(Boselewa),
],
- q(1551) => [
+ q(1547) => [
q(Barwe),
],
- q(1552) => [
+ q(1548) => [
q(Bishuo),
],
- q(1553) => [
+ q(1549) => [
q(Baniwa),
],
- q(1554) => [
+ q(1550) => [
q(Laa Laa Bwamu),
],
- q(1555) => [
+ q(1551) => [
q(Bauwaki),
],
- q(1556) => [
+ q(1552) => [
q(Bwela),
],
- q(1557) => [
+ q(1553) => [
q(Biwat),
],
- q(1558) => [
+ q(1554) => [
q(Wunai Bunu),
],
- q(1559) => [
+ q(1555) => [
q(Boro (Ethiopia)),
q(Borna (Ethiopia)),
],
- q(1560) => [
+ q(1556) => [
q(Mandobo Bawah),
],
- q(1561) => [
+ q(1557) => [
q(Southern Bobo Madare),
],
- q(1562) => [
+ q(1558) => [
q(Bura-Pabir),
],
- q(1563) => [
+ q(1559) => [
q(Bomboma),
],
- q(1564) => [
+ q(1560) => [
q(Bafaw-Balong),
],
- q(1565) => [
+ q(1561) => [
q(Buli (Ghana)),
],
- q(1566) => [
+ q(1562) => [
q(Bwa),
],
- q(1567) => [
+ q(1563) => [
q(Bu-Nao Bunu),
],
- q(1568) => [
+ q(1564) => [
q(Cwi Bwamu),
],
- q(1569) => [
+ q(1565) => [
q(Bwisi),
],
- q(1570) => [
+ q(1566) => [
q(Tairaha),
],
- q(1571) => [
+ q(1567) => [
q(Belanda Bor),
],
- q(1572) => [
+ q(1568) => [
q(Molengue),
],
- q(1573) => [
+ q(1569) => [
q(Pela),
],
- q(1574) => [
+ q(1570) => [
q(Birale),
],
- q(1575) => [
+ q(1571) => [
q(Bilur),
q(Minigir),
],
- q(1576) => [
+ q(1572) => [
q(Bangala),
],
- q(1577) => [
+ q(1573) => [
q(Buhutu),
],
- q(1578) => [
+ q(1574) => [
q(Pirlatapa),
],
- q(1579) => [
+ q(1575) => [
q(Bayungu),
],
- q(1580) => [
+ q(1576) => [
q(Bukusu),
q(Lubukusu),
],
- q(1581) => [
+ q(1577) => [
q(Jalkunan),
],
- q(1582) => [
+ q(1578) => [
q(Mongolia Buriat),
],
- q(1583) => [
+ q(1579) => [
q(Burduna),
],
- q(1584) => [
+ q(1580) => [
q(Barikanchi),
],
- q(1585) => [
+ q(1581) => [
q(Bebil),
],
- q(1586) => [
+ q(1582) => [
q(Beele),
],
- q(1587) => [
+ q(1583) => [
q(Russia Buriat),
],
- q(1588) => [
+ q(1584) => [
q(Busam),
],
- q(1589) => [
+ q(1585) => [
q(China Buriat),
],
- q(1590) => [
+ q(1586) => [
q(Berakou),
],
- q(1591) => [
+ q(1587) => [
q(Bankagooma),
],
- q(1592) => [
- q(Borna (Democratic Republic of Congo)),
- ],
- q(1593) => [
+ q(1588) => [
q(Binahari),
],
- q(1594) => [
+ q(1589) => [
q(Batak),
],
- q(1595) => [
+ q(1590) => [
q(Bikya),
],
- q(1596) => [
+ q(1591) => [
q(Ubaghara),
],
- q(1597) => [
+ q(1592) => [
q(Benyadu'),
],
- q(1598) => [
+ q(1593) => [
q(Pouye),
],
- q(1599) => [
+ q(1594) => [
q(Bete),
],
- q(1600) => [
+ q(1595) => [
q(Baygo),
],
- q(1601) => [
+ q(1596) => [
q(Bhujel),
],
- q(1602) => [
+ q(1597) => [
q(Buyu),
],
- q(1603) => [
+ q(1598) => [
q(Bina (Nigeria)),
],
- q(1604) => [
+ q(1599) => [
q(Biao),
],
- q(1605) => [
+ q(1600) => [
q(Bayono),
],
- q(1606) => [
+ q(1601) => [
q(Bidyara),
],
- q(1607) => [
+ q(1602) => [
q(Biyo),
],
- q(1608) => [
+ q(1603) => [
q(Bumaji),
],
- q(1609) => [
+ q(1604) => [
q(Basay),
],
- q(1610) => [
+ q(1605) => [
q(Baruya),
q(Yipma),
],
- q(1611) => [
+ q(1606) => [
q(Burak),
],
- q(1612) => [
+ q(1607) => [
q(Berti),
],
- q(1613) => [
+ q(1608) => [
q(Medumba),
],
- q(1614) => [
+ q(1609) => [
q(Belhariya),
],
- q(1615) => [
+ q(1610) => [
q(Qaqet),
],
- q(1616) => [
- q(Buya),
- ],
- q(1617) => [
+ q(1611) => [
q(Banaro),
],
- q(1618) => [
+ q(1612) => [
q(Bandi),
],
- q(1619) => [
+ q(1613) => [
q(Andio),
],
- q(1620) => [
+ q(1614) => [
q(Southern Betsimisaraka Malagasy),
],
- q(1621) => [
+ q(1615) => [
q(Bribri),
],
- q(1622) => [
+ q(1616) => [
q(Jenaama Bozo),
],
- q(1623) => [
+ q(1617) => [
q(Boikin),
],
- q(1624) => [
+ q(1618) => [
q(Babuza),
],
- q(1625) => [
+ q(1619) => [
q(Mapos Buang),
],
- q(1626) => [
+ q(1620) => [
q(Bisu),
],
- q(1627) => [
+ q(1621) => [
q(Belize Kriol English),
],
- q(1628) => [
+ q(1622) => [
q(Nicaragua Creole English),
],
- q(1629) => [
+ q(1623) => [
q(Boano (Sulawesi)),
],
- q(1630) => [
+ q(1624) => [
q(Bolondo),
],
- q(1631) => [
+ q(1625) => [
q(Boano (Maluku)),
],
- q(1632) => [
+ q(1626) => [
q(Bozaba),
],
- q(1633) => [
+ q(1627) => [
q(Kemberano),
],
- q(1634) => [
+ q(1628) => [
q(Buli (Indonesia)),
],
- q(1635) => [
+ q(1629) => [
q(Biri),
],
- q(1636) => [
+ q(1630) => [
q(Brazilian Sign Language),
],
- q(1637) => [
+ q(1631) => [
q(Brithenig),
],
- q(1638) => [
+ q(1632) => [
q(Burmeso),
],
- q(1639) => [
+ q(1633) => [
q(Naami),
],
- q(1640) => [
+ q(1634) => [
q(Basa (Nigeria)),
],
- q(1641) => [
+ q(1635) => [
q(Kelengazxo Bozo),
],
- q(1642) => [
+ q(1636) => [
q(Obanliku),
],
- q(1643) => [
+ q(1637) => [
q(Evant),
],
- q(1644) => [
+ q(1638) => [
q(Chorti),
],
- q(1645) => [
+ q(1639) => [
q(Garifuna),
],
- q(1646) => [
+ q(1640) => [
q(Chuj),
],
- q(1647) => [
+ q(1641) => [
q(Lehar),
q(Laalaa),
],
- q(1648) => [
+ q(1642) => [
q(Southern Carrier),
],
- q(1649) => [
+ q(1643) => [
q(Nivacle),
],
- q(1650) => [
+ q(1644) => [
q(Cahuarano),
],
- q(1651) => [
+ q(1645) => [
q(Chane),
],
- q(1652) => [
+ q(1646) => [
q(Kaqchikel),
q(Cakchiquel),
],
- q(1653) => [
+ q(1647) => [
q(Carolinian),
],
- q(1654) => [
+ q(1648) => [
q(Cemuhi),
],
- q(1655) => [
+ q(1649) => [
q(Chambri),
],
- q(1656) => [
+ q(1650) => [
q(Chacobo),
],
- q(1657) => [
+ q(1651) => [
q(Chipaya),
],
- q(1658) => [
+ q(1652) => [
q(Car Nicobarese),
],
- q(1659) => [
+ q(1653) => [
q(Tsimane),
],
- q(1660) => [
+ q(1654) => [
q(Cavinena),
],
- q(1661) => [
+ q(1655) => [
q(Callawalla),
],
- q(1662) => [
+ q(1656) => [
q(Chiquitano),
],
- q(1663) => [
+ q(1657) => [
q(Cayuga),
],
- q(1664) => [
+ q(1658) => [
q(Canichana),
],
- q(1665) => [
+ q(1659) => [
q(Cabiyari),
],
- q(1666) => [
+ q(1660) => [
q(Carapana),
],
- q(1667) => [
+ q(1661) => [
q(Carijona),
],
- q(1668) => [
+ q(1662) => [
q(Chipiajes),
],
- q(1669) => [
+ q(1663) => [
q(Chimila),
],
- q(1670) => [
+ q(1664) => [
q(Cagua),
],
- q(1671) => [
+ q(1665) => [
q(Chachi),
],
- q(1672) => [
+ q(1666) => [
q(Ede Cabe),
],
- q(1673) => [
+ q(1667) => [
q(Chavacano),
],
- q(1674) => [
+ q(1668) => [
q(Bualkhaw Chin),
],
- q(1675) => [
+ q(1669) => [
q(Nyahkur),
],
- q(1676) => [
+ q(1670) => [
q(Izora),
],
- q(1677) => [
+ q(1671) => [
+ q(Tsucuba),
+ q(Cuba),
+ ],
+ q(1672) => [
q(Cashibo-Cacataibo),
],
- q(1678) => [
+ q(1673) => [
q(Cashinahua),
],
- q(1679) => [
+ q(1674) => [
q(Chayahuita),
],
- q(1680) => [
+ q(1675) => [
q(Candoshi-Shapra),
],
- q(1681) => [
+ q(1676) => [
q(Cacua),
],
- q(1682) => [
+ q(1677) => [
q(Kinabalian),
],
- q(1683) => [
+ q(1678) => [
q(Carabayo),
],
- q(1684) => [
+ q(1679) => [
q(Cauca),
],
- q(1685) => [
+ q(1680) => [
q(Chamicuro),
],
- q(1686) => [
+ q(1681) => [
q(Cafundo Creole),
],
- q(1687) => [
+ q(1682) => [
q(Chopi),
],
- q(1688) => [
+ q(1683) => [
q(Samba Daka),
],
- q(1689) => [
+ q(1684) => [
q(Atsam),
],
- q(1690) => [
+ q(1685) => [
q(Kasanga),
],
- q(1691) => [
+ q(1686) => [
q(Cutchi-Swahili),
],
- q(1692) => [
+ q(1687) => [
q(Malaccan Creole Malay),
],
- q(1693) => [
+ q(1688) => [
q(Comaltepec Chinantec),
],
- q(1694) => [
+ q(1689) => [
q(Chakma),
],
- q(1695) => [
+ q(1690) => [
q(Cacaopera),
],
- q(1696) => [
+ q(1691) => [
q(Choni),
],
- q(1697) => [
+ q(1692) => [
q(Chenchu),
],
- q(1698) => [
+ q(1693) => [
q(Chiru),
],
- q(1699) => [
+ q(1694) => [
q(Chamari),
],
- q(1700) => [
+ q(1695) => [
q(Chambeali),
],
- q(1701) => [
+ q(1696) => [
q(Chodri),
],
- q(1702) => [
+ q(1697) => [
q(Churahi),
],
- q(1703) => [
+ q(1698) => [
q(Chepang),
],
- q(1704) => [
+ q(1699) => [
q(Chaudangsi),
],
- q(1705) => [
+ q(1700) => [
q(Min Dong Chinese),
],
- q(1706) => [
+ q(1701) => [
q(Cinda-Regi-Tiyal),
],
- q(1707) => [
+ q(1702) => [
q(Chadian Sign Language),
],
- q(1708) => [
+ q(1703) => [
q(Chadong),
],
- q(1709) => [
+ q(1704) => [
q(Koda),
],
- q(1710) => [
+ q(1705) => [
q(Lower Chehalis),
],
- q(1711) => [
+ q(1706) => [
q(Chamacoco),
],
- q(1712) => [
+ q(1707) => [
q(Eastern Khumi Chin),
],
- q(1713) => [
+ q(1708) => [
q(Cen),
],
- q(1714) => [
+ q(1709) => [
q(Centuum),
],
- q(1715) => [
+ q(1710) => [
q(Dijim-Bwilim),
],
- q(1716) => [
+ q(1711) => [
q(Cara),
],
- q(1717) => [
+ q(1712) => [
q(Como Karim),
],
- q(1718) => [
+ q(1713) => [
q(Falam Chin),
],
- q(1719) => [
+ q(1714) => [
q(Changriwa),
],
- q(1720) => [
+ q(1715) => [
q(Kagayanen),
],
- q(1721) => [
+ q(1716) => [
q(Chiga),
],
- q(1722) => [
+ q(1717) => [
q(Chocangacakha),
],
- q(1723) => [
+ q(1718) => [
q(Catawba),
],
- q(1724) => [
+ q(1719) => [
q(Highland Oaxaca Chontal),
],
- q(1725) => [
+ q(1720) => [
q(Tabasco Chontal),
],
- q(1726) => [
+ q(1721) => [
q(Chinook),
],
- q(1727) => [
+ q(1722) => [
q(Ojitlan Chinantec),
],
- q(1728) => [
+ q(1723) => [
q(Cahuilla),
],
- q(1729) => [
+ q(1724) => [
q(Quiotepec Chinantec),
],
- q(1730) => [
+ q(1725) => [
q(Cholon),
],
- q(1731) => [
+ q(1726) => [
q(Chuwabu),
],
- q(1732) => [
+ q(1727) => [
q(Chantyal),
],
- q(1733) => [
+ q(1728) => [
q(Ozumacin Chinantec),
],
- q(1734) => [
+ q(1729) => [
q(Cia-Cia),
],
- q(1735) => [
+ q(1730) => [
q(Ci Gbe),
],
- q(1736) => [
+ q(1731) => [
q(Chickasaw),
],
- q(1737) => [
+ q(1732) => [
q(Chimariko),
],
- q(1738) => [
+ q(1733) => [
q(Cineni),
],
- q(1739) => [
+ q(1734) => [
q(Chinali),
],
- q(1740) => [
+ q(1735) => [
q(Chitkuli Kinnauri),
],
- q(1741) => [
+ q(1736) => [
q(Cimbrian),
],
- q(1742) => [
+ q(1737) => [
q(Cinta Larga),
],
- q(1743) => [
+ q(1738) => [
q(Chiapanec),
],
- q(1744) => [
+ q(1739) => [
q(Tiri),
q(Hamea),
q(Mea),
],
- q(1745) => [
+ q(1740) => [
q(Chippewa),
],
- q(1746) => [
+ q(1741) => [
q(Chaima),
],
- q(1747) => [
+ q(1742) => [
q(Western Cham),
],
- q(1748) => [
+ q(1743) => [
q(Chru),
],
- q(1749) => [
+ q(1744) => [
q(Upper Chehalis),
],
- q(1750) => [
+ q(1745) => [
q(Chamalal),
],
- q(1751) => [
+ q(1746) => [
q(Chokwe),
],
- q(1752) => [
+ q(1747) => [
q(Eastern Cham),
],
- q(1753) => [
+ q(1748) => [
q(Chenapian),
],
- q(1754) => [
+ q(1749) => [
q(Asheninka Pajonal),
],
- q(1755) => [
+ q(1750) => [
q(Cabecar),
],
- q(1756) => [
+ q(1751) => [
q(Shor),
],
- q(1757) => [
+ q(1752) => [
q(Chuave),
],
- q(1758) => [
+ q(1753) => [
q(Jinyu Chinese),
],
- q(1759) => [
+ q(1754) => [
q(Central Kurdish),
],
- q(1760) => [
+ q(1755) => [
q(Chak),
],
- q(1761) => [
+ q(1756) => [
q(Cibak),
],
- q(1762) => [
+ q(1757) => [
q(Kaang Chin),
],
- q(1763) => [
+ q(1758) => [
q(Anufo),
],
- q(1764) => [
+ q(1759) => [
q(Kajakse),
],
- q(1765) => [
+ q(1760) => [
q(Kairak),
],
- q(1766) => [
+ q(1761) => [
q(Tayo),
],
- q(1767) => [
+ q(1762) => [
q(Chukot),
],
- q(1768) => [
+ q(1763) => [
q(Koasati),
],
- q(1769) => [
+ q(1764) => [
q(Kavalan),
],
- q(1770) => [
+ q(1765) => [
q(Caka),
],
- q(1771) => [
+ q(1766) => [
q(Cakfem-Mushere),
],
- q(1772) => [
+ q(1767) => [
q(Cakchiquel-Quiche Mixed Language),
],
- q(1773) => [
+ q(1768) => [
q(Ron),
],
- q(1774) => [
+ q(1769) => [
q(Chilcotin),
],
- q(1775) => [
+ q(1770) => [
q(Chaldean Neo-Aramaic),
],
- q(1776) => [
+ q(1771) => [
q(Lealao Chinantec),
],
- q(1777) => [
+ q(1772) => [
q(Chilisso),
],
- q(1778) => [
+ q(1773) => [
q(Chakali),
],
- q(1779) => [
+ q(1774) => [
q(Laitu Chin),
],
- q(1780) => [
+ q(1775) => [
q(Idu-Mishmi),
],
- q(1781) => [
+ q(1776) => [
q(Chala),
],
- q(1782) => [
+ q(1777) => [
q(Clallam),
],
- q(1783) => [
+ q(1778) => [
q(Lowland Oaxaca Chontal),
],
- q(1784) => [
+ q(1779) => [
q(Lautu Chin),
],
- q(1785) => [
+ q(1780) => [
q(Caluyanun),
],
- q(1786) => [
+ q(1781) => [
q(Chulym),
],
- q(1787) => [
+ q(1782) => [
q(Eastern Highland Chatino),
],
- q(1788) => [
+ q(1783) => [
q(Maa),
],
- q(1789) => [
+ q(1784) => [
q(Cerma),
],
- q(1790) => [
+ q(1785) => [
q(Classical Mongolian),
],
- q(1791) => [
+ q(1786) => [
q(Embera-Chami),
],
- q(1792) => [
+ q(1787) => [
q(Campalagian),
],
- q(1793) => [
+ q(1788) => [
q(Michigamea),
],
- q(1794) => [
+ q(1789) => [
q(Mandarin Chinese),
],
- q(1795) => [
+ q(1790) => [
q(Central Mnong),
],
- q(1796) => [
+ q(1791) => [
q(Mro-Khimi Chin),
],
- q(1797) => [
+ q(1792) => [
q(Messapic),
],
- q(1798) => [
+ q(1793) => [
q(Camtho),
],
- q(1799) => [
+ q(1794) => [
q(Changthang),
],
- q(1800) => [
+ q(1795) => [
q(Chinbon Chin),
],
- q(1801) => [
+ q(1796) => [
q(Coong),
],
- q(1802) => [
+ q(1797) => [
q(Northern Qiang),
],
- q(1803) => [
+ q(1798) => [
q(Haka Chin),
],
- q(1804) => [
+ q(1799) => [
q(Ashaninka),
],
- q(1805) => [
+ q(1800) => [
q(Khumi Chin),
],
- q(1806) => [
+ q(1801) => [
q(Lalana Chinantec),
],
- q(1807) => [
+ q(1802) => [
q(Con),
],
- q(1808) => [
+ q(1803) => [
q(Central Asmat),
],
- q(1809) => [
+ q(1804) => [
q(Tepetotutla Chinantec),
],
- q(1810) => [
+ q(1805) => [
q(Chenoua),
],
- q(1811) => [
+ q(1806) => [
q(Ngawn Chin),
],
- q(1812) => [
+ q(1807) => [
q(Middle Cornish),
],
- q(1813) => [
+ q(1808) => [
q(Cocos Islands Malay),
],
- q(1814) => [
+ q(1809) => [
q(Chicomuceltec),
],
- q(1815) => [
+ q(1810) => [
q(Cocopa),
],
- q(1816) => [
+ q(1811) => [
q(Cocama-Cocamilla),
],
- q(1817) => [
+ q(1812) => [
q(Koreguaje),
],
- q(1818) => [
+ q(1813) => [
q(Colorado),
],
- q(1819) => [
+ q(1814) => [
q(Chong),
],
- q(1820) => [
+ q(1815) => [
q(Chonyi-Dzihana-Kauma),
q(Chichonyi-Chidzihana-Chikauma),
],
- q(1821) => [
+ q(1816) => [
q(Cochimi),
],
- q(1822) => [
+ q(1817) => [
q(Santa Teresa Cora),
],
- q(1823) => [
+ q(1818) => [
q(Columbia-Wenatchi),
],
- q(1824) => [
+ q(1819) => [
q(Comanche),
],
- q(1825) => [
+ q(1820) => [
q(Cofan),
],
- q(1826) => [
+ q(1821) => [
q(Comox),
],
- q(1827) => [
+ q(1822) => [
q(Coquille),
],
- q(1828) => [
+ q(1823) => [
q(Caquinte),
],
- q(1829) => [
+ q(1824) => [
q(Wamey),
],
- q(1830) => [
+ q(1825) => [
q(Cao Miao),
],
- q(1831) => [
+ q(1826) => [
q(Cowlitz),
],
- q(1832) => [
+ q(1827) => [
q(Nanti),
],
- q(1833) => [
+ q(1828) => [
q(Coyaima),
],
- q(1834) => [
+ q(1829) => [
q(Chochotec),
],
- q(1835) => [
+ q(1830) => [
q(Palantla Chinantec),
],
- q(1836) => [
+ q(1831) => [
q(Ucayali-Yurua Asheninka),
],
- q(1837) => [
+ q(1832) => [
q(Ajyininka Apurucayali),
],
- q(1838) => [
+ q(1833) => [
q(Cappadocian Greek),
],
- q(1839) => [
+ q(1834) => [
q(Chinese Pidgin English),
],
- q(1840) => [
+ q(1835) => [
q(Cherepon),
],
- q(1841) => [
+ q(1836) => [
q(Kpeego),
],
- q(1842) => [
+ q(1837) => [
q(Capiznon),
],
- q(1843) => [
+ q(1838) => [
q(Pichis Asheninka),
],
- q(1844) => [
+ q(1839) => [
q(Pu-Xian Chinese),
],
- q(1845) => [
+ q(1840) => [
q(South Ucayali Asheninka),
],
- q(1846) => [
+ q(1841) => [
q(Chuanqiandian Cluster Miao),
],
- q(1847) => [
+ q(1842) => [
q(Chilean Quechua),
],
- q(1848) => [
+ q(1843) => [
q(Chara),
],
- q(1849) => [
+ q(1844) => [
q(Island Carib),
],
- q(1850) => [
+ q(1845) => [
q(Lonwolwol),
],
- q(1851) => [
+ q(1846) => [
q(Coeur d'Alene),
],
- q(1852) => [
+ q(1847) => [
q(Caramanta),
],
- q(1853) => [
+ q(1848) => [
q(Michif),
],
- q(1854) => [
+ q(1849) => [
q(Saotomense),
],
- q(1855) => [
+ q(1850) => [
q(Southern East Cree),
],
- q(1856) => [
+ q(1851) => [
q(Plains Cree),
],
- q(1857) => [
+ q(1852) => [
q(Northern East Cree),
],
- q(1858) => [
+ q(1853) => [
q(Moose Cree),
],
- q(1859) => [
+ q(1854) => [
q(El Nayar Cora),
],
- q(1860) => [
+ q(1855) => [
q(Crow),
],
- q(1861) => [
+ q(1856) => [
q(Iyo'wujwa Chorote),
],
- q(1862) => [
+ q(1857) => [
q(Carolina Algonquian),
],
- q(1863) => [
+ q(1858) => [
q(Seselwa Creole French),
],
- q(1864) => [
+ q(1859) => [
q(Iyojwa'ja Chorote),
],
- q(1865) => [
+ q(1860) => [
q(Chaura),
],
- q(1866) => [
+ q(1861) => [
q(Chrau),
],
- q(1867) => [
+ q(1862) => [
q(Carrier),
],
- q(1868) => [
+ q(1863) => [
q(Cori),
],
- q(1869) => [
+ q(1864) => [
q(Cruzeno),
],
- q(1870) => [
+ q(1865) => [
q(Chiltepec Chinantec),
],
- q(1871) => [
+ q(1866) => [
q(Catalan Sign Language),
q(Lengua de senas catalana),
q(Llengua de Signes Catalana),
],
- q(1872) => [
+ q(1867) => [
q(Chiangmai Sign Language),
],
- q(1873) => [
+ q(1868) => [
q(Czech Sign Language),
],
- q(1874) => [
+ q(1869) => [
q(Cuba Sign Language),
],
- q(1875) => [
+ q(1870) => [
q(Chilean Sign Language),
],
- q(1876) => [
+ q(1871) => [
q(Asho Chin),
],
- q(1877) => [
+ q(1872) => [
q(Coast Miwok),
],
- q(1878) => [
+ q(1873) => [
q(Songlai Chin),
],
- q(1879) => [
+ q(1874) => [
q(Jola-Kasa),
],
- q(1880) => [
+ q(1875) => [
q(Chinese Sign Language),
],
- q(1881) => [
+ q(1876) => [
q(Central Sierra Miwok),
],
- q(1882) => [
+ q(1877) => [
q(Colombian Sign Language),
],
- q(1883) => [
+ q(1878) => [
q(Sochiapam Chinantec),
q(Sochiapan Chinantec),
],
- q(1884) => [
+ q(1879) => [
q(Croatia Sign Language),
],
- q(1885) => [
+ q(1880) => [
q(Costa Rican Sign Language),
],
- q(1886) => [
+ q(1881) => [
q(Southern Ohlone),
],
- q(1887) => [
+ q(1882) => [
q(Northern Ohlone),
],
- q(1888) => [
+ q(1883) => [
q(Sumtu Chin),
],
- q(1889) => [
+ q(1884) => [
q(Swampy Cree),
],
- q(1890) => [
+ q(1885) => [
q(Siyin Chin),
],
- q(1891) => [
+ q(1886) => [
q(Coos),
],
- q(1892) => [
+ q(1887) => [
q(Tataltepec Chatino),
],
- q(1893) => [
+ q(1888) => [
q(Chetco),
],
- q(1894) => [
+ q(1889) => [
q(Tedim Chin),
],
- q(1895) => [
+ q(1890) => [
q(Tepinapa Chinantec),
],
- q(1896) => [
+ q(1891) => [
q(Chittagonian),
],
- q(1897) => [
+ q(1892) => [
q(Thaiphum Chin),
],
- q(1898) => [
+ q(1893) => [
q(Tlacoatzintepec Chinantec),
],
- q(1899) => [
+ q(1894) => [
q(Chitimacha),
],
- q(1900) => [
+ q(1895) => [
q(Chhintange),
],
- q(1901) => [
+ q(1896) => [
q(Embera-Catio),
],
- q(1902) => [
+ q(1897) => [
q(Western Highland Chatino),
],
- q(1903) => [
+ q(1898) => [
q(Northern Catanduanes Bikol),
],
- q(1904) => [
+ q(1899) => [
q(Wayanad Chetti),
],
- q(1905) => [
+ q(1900) => [
q(Chol),
],
- q(1906) => [
+ q(1901) => [
q(Zacatepec Chatino),
],
- q(1907) => [
+ q(1902) => [
q(Cua),
],
- q(1908) => [
+ q(1903) => [
q(Cubeo),
],
- q(1909) => [
+ q(1904) => [
q(Usila Chinantec),
],
- q(1910) => [
+ q(1905) => [
q(Cung),
],
- q(1911) => [
+ q(1906) => [
q(Chuka),
q(Gichuka),
],
- q(1912) => [
+ q(1907) => [
q(Cuiba),
],
- q(1913) => [
+ q(1908) => [
q(Mashco Piro),
],
- q(1914) => [
+ q(1909) => [
q(San Blas Kuna),
],
- q(1915) => [
+ q(1910) => [
q(Culina),
q(Kulina),
],
- q(1916) => [
+ q(1911) => [
q(Cumeral),
],
- q(1917) => [
+ q(1912) => [
q(Cumanagoto),
],
- q(1918) => [
+ q(1913) => [
q(Cupeno),
],
- q(1919) => [
+ q(1914) => [
q(Cun),
],
- q(1920) => [
+ q(1915) => [
q(Chhulung),
],
- q(1921) => [
+ q(1916) => [
q(Teutila Cuicatec),
],
- q(1922) => [
+ q(1917) => [
q(Tai Ya),
],
- q(1923) => [
+ q(1918) => [
q(Cuvok),
],
- q(1924) => [
+ q(1919) => [
q(Chukwa),
],
- q(1925) => [
+ q(1920) => [
q(Tepeuxila Cuicatec),
],
- q(1926) => [
+ q(1921) => [
q(Chug),
],
- q(1927) => [
+ q(1922) => [
q(Valle Nacional Chinantec),
],
- q(1928) => [
+ q(1923) => [
q(Kabwa),
],
- q(1929) => [
+ q(1924) => [
q(Maindo),
],
- q(1930) => [
+ q(1925) => [
q(Woods Cree),
],
- q(1931) => [
+ q(1926) => [
q(Kwere),
],
- q(1932) => [
+ q(1927) => [
q(Chewong),
q(Cheq Wong),
],
- q(1933) => [
+ q(1928) => [
q(Kuwaataay),
],
- q(1934) => [
+ q(1929) => [
q(Nopala Chatino),
],
- q(1935) => [
+ q(1930) => [
q(Cayubaba),
],
- q(1936) => [
+ q(1931) => [
q(Cuyonon),
],
- q(1937) => [
+ q(1932) => [
q(Huizhou Chinese),
],
- q(1938) => [
+ q(1933) => [
q(Knaanic),
],
- q(1939) => [
+ q(1934) => [
q(Zenzontepec Chatino),
],
- q(1940) => [
+ q(1935) => [
q(Min Zhong Chinese),
],
- q(1941) => [
+ q(1936) => [
q(Zotung Chin),
],
- q(1942) => [
+ q(1937) => [
q(Dangaleat),
],
- q(1943) => [
+ q(1938) => [
q(Dambi),
],
- q(1944) => [
+ q(1939) => [
q(Marik),
],
- q(1945) => [
+ q(1940) => [
q(Duupa),
],
- q(1946) => [
+ q(1941) => [
q(Dagbani),
],
- q(1947) => [
+ q(1942) => [
q(Gwahatike),
],
- q(1948) => [
+ q(1943) => [
q(Day),
],
- q(1949) => [
+ q(1944) => [
q(Dar Fur Daju),
],
- q(1950) => [
+ q(1945) => [
q(Dahalo),
],
- q(1951) => [
+ q(1946) => [
q(Damakawa),
],
- q(1952) => [
+ q(1947) => [
q(Daai Chin),
],
- q(1953) => [
+ q(1948) => [
q(Dandami Maria),
],
- q(1954) => [
+ q(1949) => [
q(Daho-Doo),
],
- q(1955) => [
+ q(1950) => [
q(Dar Sila Daju),
],
- q(1956) => [
+ q(1951) => [
q(Taita),
q(Dawida),
],
- q(1957) => [
+ q(1952) => [
q(Davawenyo),
],
- q(1958) => [
+ q(1953) => [
q(Dayi),
],
- q(1959) => [
+ q(1954) => [
q(Dao),
],
- q(1960) => [
+ q(1955) => [
q(Bangime),
],
- q(1961) => [
+ q(1956) => [
q(Deno),
],
- q(1962) => [
+ q(1957) => [
q(Dadiya),
],
- q(1963) => [
+ q(1958) => [
q(Dabe),
],
- q(1964) => [
+ q(1959) => [
q(Edopi),
],
- q(1965) => [
+ q(1960) => [
q(Dogul Dom Dogon),
],
- q(1966) => [
+ q(1961) => [
q(Doka),
],
- q(1967) => [
+ q(1962) => [
q(Ida'an),
],
- q(1968) => [
+ q(1963) => [
q(Dyirbal),
],
- q(1969) => [
+ q(1964) => [
q(Duguri),
],
- q(1970) => [
+ q(1965) => [
q(Duriankere),
],
- q(1971) => [
+ q(1966) => [
q(Dulbu),
],
- q(1972) => [
+ q(1967) => [
q(Duwai),
],
- q(1973) => [
+ q(1968) => [
q(Daba),
],
- q(1974) => [
+ q(1969) => [
q(Dabarre),
],
- q(1975) => [
+ q(1970) => [
q(Ben Tey Dogon),
],
- q(1976) => [
+ q(1971) => [
q(Bondum Dom Dogon),
],
- q(1977) => [
+ q(1972) => [
q(Dungu),
],
- q(1978) => [
+ q(1973) => [
q(Bankan Tey Dogon),
],
- q(1979) => [
+ q(1974) => [
q(Dibiyaso),
],
- q(1980) => [
+ q(1975) => [
q(Deccan),
],
- q(1981) => [
+ q(1976) => [
q(Negerhollands),
],
- q(1982) => [
+ q(1977) => [
q(Dadi Dadi),
],
- q(1983) => [
+ q(1978) => [
q(Dongotono),
],
- q(1984) => [
+ q(1979) => [
q(Doondo),
],
- q(1985) => [
+ q(1980) => [
q(Fataluku),
],
- q(1986) => [
+ q(1981) => [
q(West Goodenough),
],
- q(1987) => [
+ q(1982) => [
q(Jaru),
],
- q(1988) => [
+ q(1983) => [
q(Dendi (Benin)),
],
- q(1989) => [
+ q(1984) => [
q(Dido),
],
- q(1990) => [
+ q(1985) => [
q(Dhudhuroa),
],
- q(1991) => [
+ q(1986) => [
q(Donno So Dogon),
],
- q(1992) => [
+ q(1987) => [
q(Dawera-Daweloor),
],
- q(1993) => [
+ q(1988) => [
q(Dagik),
],
- q(1994) => [
+ q(1989) => [
q(Dedua),
],
- q(1995) => [
+ q(1990) => [
q(Dewoin),
],
- q(1996) => [
+ q(1991) => [
q(Dezfuli),
],
- q(1997) => [
+ q(1992) => [
q(Degema),
],
- q(1998) => [
+ q(1993) => [
q(Dehwari),
],
- q(1999) => [
+ q(1994) => [
q(Demisa),
],
- q(2000) => [
+ q(1995) => [
q(Dek),
],
- q(2001) => [
+ q(1996) => [
q(Dem),
],
- q(2002) => [
+ q(1997) => [
q(Pidgin Delaware),
],
- q(2003) => [
+ q(1998) => [
q(Dendi (Central African Republic)),
],
- q(2004) => [
+ q(1999) => [
q(Deori),
],
- q(2005) => [
+ q(2000) => [
q(Desano),
],
- q(2006) => [
+ q(2001) => [
q(Domung),
],
- q(2007) => [
+ q(2002) => [
q(Dengese),
],
- q(2008) => [
+ q(2003) => [
q(Southern Dagaare),
],
- q(2009) => [
+ q(2004) => [
q(Bunoge Dogon),
],
- q(2010) => [
+ q(2005) => [
q(Casiguran Dumagat Agta),
],
- q(2011) => [
+ q(2006) => [
q(Dagaari Dioula),
],
- q(2012) => [
+ q(2007) => [
q(Degenan),
],
- q(2013) => [
+ q(2008) => [
q(Doga),
],
- q(2014) => [
+ q(2009) => [
q(Dghwede),
],
- q(2015) => [
+ q(2010) => [
q(Northern Dagara),
],
- q(2016) => [
+ q(2011) => [
q(Dagba),
],
- q(2017) => [
+ q(2012) => [
q(Andaandi),
q(Dongolawi),
],
- q(2018) => [
+ q(2013) => [
q(Dagoman),
],
- q(2019) => [
+ q(2014) => [
q(Dogri (individual language)),
],
- q(2020) => [
+ q(2015) => [
q(Dogoso),
],
- q(2021) => [
+ q(2016) => [
q(Ndra'ngith),
],
- q(2022) => [
+ q(2017) => [
q(Degaru),
],
- q(2023) => [
+ q(2018) => [
q(Daungwurrung),
],
- q(2024) => [
+ q(2019) => [
q(Doghoro),
],
- q(2025) => [
+ q(2020) => [
q(Daga),
],
- q(2026) => [
+ q(2021) => [
q(Dhundari),
],
- q(2027) => [
- q(Djangu),
+ q(2022) => [
q(Dhangu),
+ q(Djangu),
],
- q(2028) => [
+ q(2023) => [
q(Dhimal),
],
- q(2029) => [
+ q(2024) => [
q(Dhalandji),
],
- q(2030) => [
+ q(2025) => [
q(Zemba),
],
- q(2031) => [
+ q(2026) => [
q(Dhanki),
],
- q(2032) => [
+ q(2027) => [
q(Dhodia),
],
- q(2033) => [
+ q(2028) => [
q(Dhargari),
],
- q(2034) => [
+ q(2029) => [
q(Dhaiso),
],
- q(2035) => [
+ q(2030) => [
q(Dhurga),
],
- q(2036) => [
+ q(2031) => [
q(Dehu),
q(Drehu),
],
- q(2037) => [
+ q(2032) => [
q(Dhanwar (Nepal)),
],
- q(2038) => [
+ q(2033) => [
q(Dhungaloo),
],
- q(2039) => [
+ q(2034) => [
q(Dia),
],
- q(2040) => [
+ q(2035) => [
q(South Central Dinka),
],
- q(2041) => [
+ q(2036) => [
q(Lakota Dida),
],
- q(2042) => [
+ q(2037) => [
q(Didinga),
],
- q(2043) => [
+ q(2038) => [
q(Dieri),
],
- q(2044) => [
+ q(2039) => [
q(Digo),
q(Chidigo),
],
- q(2045) => [
+ q(2040) => [
q(Kumiai),
],
- q(2046) => [
+ q(2041) => [
q(Dimbong),
],
- q(2047) => [
+ q(2042) => [
q(Dai),
],
- q(2048) => [
+ q(2043) => [
q(Southwestern Dinka),
],
- q(2049) => [
+ q(2044) => [
q(Dilling),
],
- q(2050) => [
+ q(2045) => [
q(Dime),
],
- q(2051) => [
+ q(2046) => [
q(Dibo),
],
- q(2052) => [
+ q(2047) => [
q(Northeastern Dinka),
],
- q(2053) => [
+ q(2048) => [
q(Dimli (individual language)),
],
- q(2054) => [
+ q(2049) => [
q(Dirim),
],
- q(2055) => [
+ q(2050) => [
q(Dimasa),
],
- q(2056) => [
+ q(2051) => [
q(Dirari),
],
- q(2057) => [
+ q(2052) => [
q(Diriku),
],
- q(2058) => [
+ q(2053) => [
q(Northwestern Dinka),
],
- q(2059) => [
+ q(2054) => [
q(Dixon Reef),
],
- q(2060) => [
+ q(2055) => [
q(Diuwe),
],
- q(2061) => [
+ q(2056) => [
q(Ding),
],
- q(2062) => [
+ q(2057) => [
q(Djadjawurrung),
],
- q(2063) => [
+ q(2058) => [
q(Djinba),
],
- q(2064) => [
+ q(2059) => [
q(Dar Daju Daju),
],
- q(2065) => [
+ q(2060) => [
q(Djamindjung),
],
- q(2066) => [
+ q(2061) => [
q(Zarma),
],
- q(2067) => [
+ q(2062) => [
q(Djangun),
],
- q(2068) => [
+ q(2063) => [
q(Djinang),
],
- q(2069) => [
+ q(2064) => [
q(Djeebbana),
],
- q(2070) => [
+ q(2065) => [
q(Eastern Maroon Creole),
q(Businenge Tongo),
q(Nenge),
],
- q(2071) => [
+ q(2066) => [
q(Jamsay Dogon),
],
- q(2072) => [
+ q(2067) => [
q(Djauan),
],
- q(2073) => [
+ q(2068) => [
q(Jangkang),
],
- q(2074) => [
+ q(2069) => [
q(Djambarrpuyngu),
],
- q(2075) => [
+ q(2070) => [
q(Kapriman),
],
- q(2076) => [
+ q(2071) => [
q(Djawi),
],
- q(2077) => [
+ q(2072) => [
q(Dakpakha),
],
- q(2078) => [
+ q(2073) => [
q(Dakka),
],
- q(2079) => [
+ q(2074) => [
q(Kuijau),
],
- q(2080) => [
+ q(2075) => [
q(Southeastern Dinka),
],
- q(2081) => [
+ q(2076) => [
q(Mazagway),
],
- q(2082) => [
+ q(2077) => [
q(Dolgan),
],
- q(2083) => [
+ q(2078) => [
q(Dahalik),
],
- q(2084) => [
+ q(2079) => [
q(Dalmatian),
],
- q(2085) => [
+ q(2080) => [
q(Darlong),
],
- q(2086) => [
+ q(2081) => [
q(Duma),
],
- q(2087) => [
+ q(2082) => [
q(Mombo Dogon),
],
- q(2088) => [
+ q(2083) => [
q(Gavak),
],
- q(2089) => [
+ q(2084) => [
q(Madhi Madhi),
],
- q(2090) => [
+ q(2085) => [
q(Dugwor),
],
- q(2091) => [
+ q(2086) => [
q(Upper Kinabatangan),
],
- q(2092) => [
+ q(2087) => [
q(Domaaki),
],
- q(2093) => [
+ q(2088) => [
q(Dameli),
],
- q(2094) => [
+ q(2089) => [
q(Dama),
],
- q(2095) => [
+ q(2090) => [
q(Kemedzung),
],
- q(2096) => [
+ q(2091) => [
q(East Damar),
],
- q(2097) => [
+ q(2092) => [
q(Dampelas),
],
- q(2098) => [
+ q(2093) => [
q(Dubu),
q(Tebi),
],
- q(2099) => [
+ q(2094) => [
q(Dumpas),
],
- q(2100) => [
+ q(2095) => [
q(Mudburra),
],
- q(2101) => [
+ q(2096) => [
q(Dema),
],
- q(2102) => [
+ q(2097) => [
q(Demta),
q(Sowari),
],
- q(2103) => [
+ q(2098) => [
q(Upper Grand Valley Dani),
],
- q(2104) => [
+ q(2099) => [
q(Daonda),
],
- q(2105) => [
+ q(2100) => [
q(Ndendeule),
],
- q(2106) => [
+ q(2101) => [
q(Dungan),
],
- q(2107) => [
+ q(2102) => [
q(Lower Grand Valley Dani),
],
- q(2108) => [
+ q(2103) => [
q(Dan),
],
- q(2109) => [
+ q(2104) => [
q(Dengka),
],
- q(2110) => [
+ q(2105) => [
q(Dzuungoo),
],
- q(2111) => [
+ q(2106) => [
q(Danaru),
],
- q(2112) => [
+ q(2107) => [
q(Mid Grand Valley Dani),
],
- q(2113) => [
+ q(2108) => [
q(Danau),
],
- q(2114) => [
+ q(2109) => [
q(Danu),
],
- q(2115) => [
+ q(2110) => [
q(Western Dani),
],
- q(2116) => [
+ q(2111) => [
q(Deni),
],
- q(2117) => [
+ q(2112) => [
q(Dom),
],
- q(2118) => [
+ q(2113) => [
q(Dobu),
],
- q(2119) => [
+ q(2114) => [
q(Northern Dong),
],
- q(2120) => [
+ q(2115) => [
q(Doe),
],
- q(2121) => [
+ q(2116) => [
q(Domu),
],
- q(2122) => [
+ q(2117) => [
q(Dong),
],
- q(2123) => [
+ q(2118) => [
q(Dondo),
],
- q(2124) => [
+ q(2119) => [
q(Doso),
],
- q(2125) => [
+ q(2120) => [
q(Toura (Papua New Guinea)),
],
- q(2126) => [
+ q(2121) => [
q(Dongo),
],
- q(2127) => [
+ q(2122) => [
q(Lukpa),
],
- q(2128) => [
+ q(2123) => [
q(Dominican Sign Language),
],
- q(2129) => [
+ q(2124) => [
q(Dori'o),
],
- q(2130) => [
+ q(2125) => [
q(Dogose),
],
- q(2131) => [
+ q(2126) => [
q(Dass),
],
- q(2132) => [
+ q(2127) => [
q(Dombe),
],
- q(2133) => [
+ q(2128) => [
q(Doyayo),
],
- q(2134) => [
+ q(2129) => [
q(Bussa),
],
- q(2135) => [
+ q(2130) => [
q(Dompo),
],
- q(2136) => [
+ q(2131) => [
q(Dorze),
],
- q(2137) => [
+ q(2132) => [
q(Papar),
],
- q(2138) => [
+ q(2133) => [
q(Dair),
],
- q(2139) => [
+ q(2134) => [
q(Minderico),
],
- q(2140) => [
+ q(2135) => [
q(Darmiya),
],
- q(2141) => [
+ q(2136) => [
q(Dolpo),
],
- q(2142) => [
+ q(2137) => [
q(Rungus),
],
- q(2143) => [
+ q(2138) => [
q(C'lela),
],
- q(2144) => [
+ q(2139) => [
q(Paakantyi),
],
- q(2145) => [
+ q(2140) => [
q(West Damar),
],
- q(2146) => [
+ q(2141) => [
q(Daro-Matu Melanau),
],
- q(2147) => [
+ q(2142) => [
q(Dura),
],
- q(2148) => [
+ q(2143) => [
q(Dororo),
],
- q(2149) => [
+ q(2144) => [
q(Gedeo),
],
- q(2150) => [
+ q(2145) => [
q(Drents),
],
- q(2151) => [
+ q(2146) => [
q(Rukai),
],
- q(2152) => [
+ q(2147) => [
q(Darai),
],
- q(2153) => [
+ q(2148) => [
q(Dutch Sign Language),
],
- q(2154) => [
+ q(2149) => [
q(Daasanach),
],
- q(2155) => [
+ q(2150) => [
q(Disa),
],
- q(2156) => [
+ q(2151) => [
q(Danish Sign Language),
],
- q(2157) => [
+ q(2152) => [
q(Dusner),
],
- q(2158) => [
+ q(2153) => [
q(Desiya),
],
- q(2159) => [
+ q(2154) => [
q(Tadaksahak),
],
- q(2160) => [
+ q(2155) => [
q(Daur),
],
- q(2161) => [
+ q(2156) => [
q(Labuk-Kinabatangan Kadazan),
],
- q(2162) => [
+ q(2157) => [
q(Ditidaht),
],
- q(2163) => [
+ q(2158) => [
q(Adithinngithigh),
],
- q(2164) => [
+ q(2159) => [
q(Ana Tinga Dogon),
],
- q(2165) => [
+ q(2160) => [
q(Tene Kan Dogon),
],
- q(2166) => [
+ q(2161) => [
q(Tomo Kan Dogon),
],
- q(2167) => [
+ q(2162) => [
q(Tommo So Dogon),
],
- q(2168) => [
+ q(2163) => [
q(Central Dusun),
],
- q(2169) => [
+ q(2164) => [
q(Lotud),
],
- q(2170) => [
+ q(2165) => [
q(Toro So Dogon),
],
- q(2171) => [
+ q(2166) => [
q(Toro Tegu Dogon),
],
- q(2172) => [
+ q(2167) => [
q(Tebul Ure Dogon),
],
- q(2173) => [
+ q(2168) => [
q(Dotyali),
],
- q(2174) => [
+ q(2169) => [
q(Dubli),
],
- q(2175) => [
+ q(2170) => [
q(Duna),
],
- q(2176) => [
+ q(2171) => [
q(Hun-Saare),
],
- q(2177) => [
+ q(2172) => [
q(Umiray Dumaget Agta),
],
- q(2178) => [
+ q(2173) => [
q(Dumbea),
q(Drubea),
],
- q(2179) => [
+ q(2174) => [
q(Duruma),
q(Chiduruma),
],
- q(2180) => [
+ q(2175) => [
q(Dungra Bhil),
],
- q(2181) => [
+ q(2176) => [
q(Dumun),
],
- q(2182) => [
+ q(2177) => [
q(Dhuwal),
],
- q(2183) => [
+ q(2178) => [
q(Uyajitaya),
],
- q(2184) => [
+ q(2179) => [
q(Alabat Island Agta),
],
- q(2185) => [
+ q(2180) => [
q(Dusun Deyah),
],
- q(2186) => [
+ q(2181) => [
q(Dupaninan Agta),
],
- q(2187) => [
+ q(2182) => [
q(Duano),
],
- q(2188) => [
+ q(2183) => [
q(Dusun Malang),
],
- q(2189) => [
+ q(2184) => [
q(Dii),
],
- q(2190) => [
+ q(2185) => [
q(Dumi),
],
- q(2191) => [
+ q(2186) => [
q(Drung),
],
- q(2192) => [
+ q(2187) => [
q(Duvle),
],
- q(2193) => [
+ q(2188) => [
q(Dusun Witu),
],
- q(2194) => [
+ q(2189) => [
q(Duungooma),
],
- q(2195) => [
+ q(2190) => [
q(Dicamay Agta),
],
- q(2196) => [
+ q(2191) => [
q(Duli),
],
- q(2197) => [
+ q(2192) => [
q(Duau),
],
- q(2198) => [
+ q(2193) => [
q(Diri),
],
- q(2199) => [
+ q(2194) => [
q(Dawro),
],
- q(2200) => [
+ q(2195) => [
q(Dutton World Speedwords),
],
- q(2201) => [
+ q(2196) => [
q(Dawawa),
],
- q(2202) => [
+ q(2197) => [
q(Dyan),
],
- q(2203) => [
+ q(2198) => [
q(Dyaberdyaber),
],
- q(2204) => [
+ q(2199) => [
q(Dyugun),
],
- q(2205) => [
+ q(2200) => [
q(Villa Viciosa Agta),
],
- q(2206) => [
+ q(2201) => [
q(Djimini Senoufo),
],
- q(2207) => [
+ q(2202) => [
q(Yanda Dom Dogon),
],
- q(2208) => [
+ q(2203) => [
q(Dyangadi),
],
- q(2209) => [
+ q(2204) => [
q(Jola-Fonyi),
],
- q(2210) => [
+ q(2205) => [
q(Dyaabugay),
],
- q(2211) => [
+ q(2206) => [
q(Tunzu),
],
- q(2212) => [
- q(Daza),
- ],
- q(2213) => [
+ q(2207) => [
q(Djiwarli),
],
- q(2214) => [
+ q(2208) => [
q(Dazaga),
],
- q(2215) => [
+ q(2209) => [
q(Dzalakha),
],
- q(2216) => [
+ q(2210) => [
q(Dzando),
],
- q(2217) => [
+ q(2211) => [
q(Karenggapa),
],
- q(2218) => [
+ q(2212) => [
q(Ebughu),
],
- q(2219) => [
+ q(2213) => [
q(Eastern Bontok),
],
- q(2220) => [
+ q(2214) => [
q(Teke-Ebo),
],
- q(2221) => [
+ q(2215) => [
q(Ebrie),
],
- q(2222) => [
+ q(2216) => [
q(Embu),
q(Kiembu),
],
- q(2223) => [
+ q(2217) => [
q(Eteocretan),
],
- q(2224) => [
+ q(2218) => [
q(Ecuadorian Sign Language),
],
- q(2225) => [
+ q(2219) => [
q(Eteocypriot),
],
- q(2226) => [
+ q(2220) => [
q(E),
],
- q(2227) => [
+ q(2221) => [
q(Efai),
],
- q(2228) => [
+ q(2222) => [
q(Efe),
],
- q(2229) => [
+ q(2223) => [
q(Ega),
],
- q(2230) => [
+ q(2224) => [
q(Emilian),
],
- q(2231) => [
+ q(2225) => [
q(Eggon),
],
- q(2232) => [
+ q(2226) => [
q(Ehueun),
],
- q(2233) => [
+ q(2227) => [
q(Eipomek),
],
- q(2234) => [
+ q(2228) => [
q(Eitiep),
],
- q(2235) => [
+ q(2229) => [
q(Askopan),
],
- q(2236) => [
+ q(2230) => [
q(Ejamat),
],
- q(2237) => [
+ q(2231) => [
q(Eastern Karnic),
],
- q(2238) => [
+ q(2232) => [
q(Ekit),
],
- q(2239) => [
+ q(2233) => [
q(Ekari),
],
- q(2240) => [
+ q(2234) => [
q(Eki),
],
- q(2241) => [
+ q(2235) => [
q(Standard Estonian),
],
- q(2242) => [
+ q(2236) => [
q(Kol (Bangladesh)),
q(Kol),
],
- q(2243) => [
+ q(2237) => [
q(Elip),
],
- q(2244) => [
+ q(2238) => [
q(Koti),
],
- q(2245) => [
+ q(2239) => [
q(Ekpeye),
],
- q(2246) => [
+ q(2240) => [
q(Yace),
],
- q(2247) => [
+ q(2241) => [
q(Eastern Kayah),
],
- q(2248) => [
+ q(2242) => [
q(Elepi),
],
- q(2249) => [
+ q(2243) => [
q(El Hugeirat),
],
- q(2250) => [
+ q(2244) => [
q(Nding),
],
- q(2251) => [
+ q(2245) => [
q(Elkei),
],
- q(2252) => [
+ q(2246) => [
q(Eleme),
],
- q(2253) => [
+ q(2247) => [
q(El Molo),
],
- q(2254) => [
+ q(2248) => [
q(Elu),
],
- q(2255) => [
+ q(2249) => [
q(Emai-Iuleha-Ora),
],
- q(2256) => [
+ q(2250) => [
q(Embaloh),
],
- q(2257) => [
+ q(2251) => [
q(Emerillon),
],
- q(2258) => [
+ q(2252) => [
q(Eastern Meohang),
],
- q(2259) => [
+ q(2253) => [
q(Mussau-Emira),
],
- q(2260) => [
+ q(2254) => [
q(Eastern Maninkakan),
],
- q(2261) => [
+ q(2255) => [
q(Mamulique),
],
- q(2262) => [
+ q(2256) => [
q(Eman),
],
- q(2263) => [
- q(Emok),
- ],
- q(2264) => [
+ q(2257) => [
q(Northern Embera),
],
- q(2265) => [
+ q(2258) => [
q(Pacific Gulf Yupik),
],
- q(2266) => [
+ q(2259) => [
q(Eastern Muria),
],
- q(2267) => [
+ q(2260) => [
q(Emplawas),
],
- q(2268) => [
+ q(2261) => [
q(Erromintxela),
],
- q(2269) => [
+ q(2262) => [
q(Epigraphic Mayan),
],
- q(2270) => [
+ q(2263) => [
q(Apali),
],
- q(2271) => [
+ q(2264) => [
q(Markweeta),
],
- q(2272) => [
+ q(2265) => [
q(En),
],
- q(2273) => [
+ q(2266) => [
q(Ende),
],
- q(2274) => [
+ q(2267) => [
q(Forest Enets),
],
- q(2275) => [
+ q(2268) => [
q(Tundra Enets),
],
- q(2276) => [
+ q(2269) => [
+ q(Enlhet),
+ ],
+ q(2270) => [
q(Engenni),
],
- q(2277) => [
+ q(2271) => [
q(Enggano),
],
- q(2278) => [
+ q(2272) => [
q(Enga),
],
- q(2279) => [
+ q(2273) => [
q(Emumu),
q(Emem),
],
- q(2280) => [
+ q(2274) => [
q(Enu),
],
- q(2281) => [
+ q(2275) => [
q(Enwan (Edu State)),
],
- q(2282) => [
+ q(2276) => [
q(Enwan (Akwa Ibom State)),
],
- q(2283) => [
+ q(2277) => [
+ q(Enxet),
+ ],
+ q(2278) => [
q(Beti (Cote d'Ivoire)),
],
- q(2284) => [
+ q(2279) => [
q(Epie),
],
- q(2285) => [
+ q(2280) => [
q(Eravallan),
],
- q(2286) => [
+ q(2281) => [
q(Sie),
],
- q(2287) => [
+ q(2282) => [
q(Eruwa),
],
- q(2288) => [
+ q(2283) => [
q(Ogea),
],
- q(2289) => [
+ q(2284) => [
q(South Efate),
],
- q(2290) => [
+ q(2285) => [
q(Horpa),
],
- q(2291) => [
+ q(2286) => [
q(Erre),
],
- q(2292) => [
+ q(2287) => [
q(Ersu),
],
- q(2293) => [
+ q(2288) => [
q(Eritai),
],
- q(2294) => [
+ q(2289) => [
q(Erokwanas),
],
- q(2295) => [
+ q(2290) => [
q(Ese Ejja),
],
- q(2296) => [
+ q(2291) => [
q(Eshtehardi),
],
- q(2297) => [
+ q(2292) => [
q(North Alaskan Inupiatun),
],
- q(2298) => [
+ q(2293) => [
q(Northwest Alaska Inupiatun),
],
- q(2299) => [
+ q(2294) => [
q(Egypt Sign Language),
],
- q(2300) => [
+ q(2295) => [
q(Esuma),
],
- q(2301) => [
+ q(2296) => [
q(Salvadoran Sign Language),
],
- q(2302) => [
+ q(2297) => [
q(Estonian Sign Language),
],
- q(2303) => [
+ q(2298) => [
q(Esselen),
],
- q(2304) => [
+ q(2299) => [
q(Central Siberian Yupik),
],
- q(2305) => [
+ q(2300) => [
q(Central Yupik),
],
- q(2306) => [
+ q(2301) => [
+ q(Eskayan),
+ ],
+ q(2302) => [
q(Etebi),
],
- q(2307) => [
+ q(2303) => [
q(Etchemin),
],
- q(2308) => [
+ q(2304) => [
q(Ethiopian Sign Language),
],
- q(2309) => [
+ q(2305) => [
q(Eton (Vanuatu)),
],
- q(2310) => [
+ q(2306) => [
q(Eton (Cameroon)),
],
- q(2311) => [
+ q(2307) => [
q(Edolo),
],
- q(2312) => [
+ q(2308) => [
q(Yekhee),
],
- q(2313) => [
+ q(2309) => [
q(Etruscan),
],
- q(2314) => [
+ q(2310) => [
q(Ejagham),
],
- q(2315) => [
+ q(2311) => [
q(Eten),
],
- q(2316) => [
+ q(2312) => [
q(Semimi),
],
- q(2317) => [
+ q(2313) => [
q(Even),
],
- q(2318) => [
+ q(2314) => [
q(Uvbie),
],
- q(2319) => [
+ q(2315) => [
q(Evenki),
],
- q(2320) => [
+ q(2316) => [
q(Extremaduran),
],
- q(2321) => [
+ q(2317) => [
q(Eyak),
],
- q(2322) => [
+ q(2318) => [
q(Keiyo),
],
- q(2323) => [
+ q(2319) => [
q(Ezaa),
],
- q(2324) => [
+ q(2320) => [
q(Uzekwe),
],
- q(2325) => [
+ q(2321) => [
q(Fasu),
],
- q(2326) => [
+ q(2322) => [
q(Fa d'Ambu),
],
- q(2327) => [
+ q(2323) => [
q(Wagi),
],
- q(2328) => [
+ q(2324) => [
q(Fagani),
],
- q(2329) => [
+ q(2325) => [
q(Finongan),
],
- q(2330) => [
+ q(2326) => [
q(Baissa Fali),
],
- q(2331) => [
+ q(2327) => [
q(Faiwol),
],
- q(2332) => [
+ q(2328) => [
q(Faita),
],
- q(2333) => [
+ q(2329) => [
q(Fang (Cameroon)),
],
- q(2334) => [
+ q(2330) => [
q(South Fali),
],
- q(2335) => [
+ q(2331) => [
q(Fam),
],
- q(2336) => [
+ q(2332) => [
q(Palor),
],
- q(2337) => [
+ q(2333) => [
q(Fataleka),
],
- q(2338) => [
+ q(2334) => [
q(Fayu),
],
- q(2339) => [
+ q(2335) => [
q(Fala),
],
- q(2340) => [
+ q(2336) => [
q(Southwestern Fars),
],
- q(2341) => [
+ q(2337) => [
q(Northwestern Fars),
],
- q(2342) => [
+ q(2338) => [
q(West Albay Bikol),
],
- q(2343) => [
+ q(2339) => [
q(Quebec Sign Language),
],
- q(2344) => [
+ q(2340) => [
q(Feroge),
],
- q(2345) => [
+ q(2341) => [
q(Foia Foia),
],
- q(2346) => [
+ q(2342) => [
q(Maasina Fulfulde),
],
- q(2347) => [
+ q(2343) => [
q(Fongoro),
],
- q(2348) => [
+ q(2344) => [
q(Nobiin),
],
- q(2349) => [
+ q(2345) => [
q(Fyer),
],
- q(2350) => [
+ q(2346) => [
q(Fipa),
],
- q(2351) => [
+ q(2347) => [
q(Firan),
],
- q(2352) => [
+ q(2348) => [
q(Tornedalen Finnish),
],
- q(2353) => [
+ q(2349) => [
q(Fiwaga),
],
- q(2354) => [
+ q(2350) => [
q(Kirya-Konzel),
],
- q(2355) => [
+ q(2351) => [
q(Kven Finnish),
],
- q(2356) => [
+ q(2352) => [
q(Kalispel-Pend d'Oreille),
],
- q(2357) => [
+ q(2353) => [
q(Foau),
],
- q(2358) => [
+ q(2354) => [
q(Fali),
],
- q(2359) => [
+ q(2355) => [
q(North Fali),
],
- q(2360) => [
+ q(2356) => [
q(Flinders Island),
],
- q(2361) => [
+ q(2357) => [
q(Fuliiru),
],
- q(2362) => [
+ q(2358) => [
+ q(Flaaitaal),
q(Tsotsitaal),
],
- q(2363) => [
+ q(2359) => [
q(Fe'fe'),
],
- q(2364) => [
+ q(2360) => [
q(Far Western Muria),
],
- q(2365) => [
+ q(2361) => [
q(Fanagalo),
],
- q(2366) => [
+ q(2362) => [
q(Fania),
],
- q(2367) => [
+ q(2363) => [
q(Foodo),
],
- q(2368) => [
+ q(2364) => [
q(Foi),
],
- q(2369) => [
+ q(2365) => [
q(Foma),
],
- q(2370) => [
+ q(2366) => [
q(Fore),
],
- q(2371) => [
+ q(2367) => [
q(Siraya),
],
- q(2372) => [
+ q(2368) => [
q(Fernando Po Creole English),
],
- q(2373) => [
+ q(2369) => [
q(Fas),
],
- q(2374) => [
+ q(2370) => [
q(Cajun French),
],
- q(2375) => [
+ q(2371) => [
q(Fordata),
],
- q(2376) => [
+ q(2372) => [
q(Frankish),
],
- q(2377) => [
+ q(2373) => [
q(Arpitan),
q(Francoprovencal),
],
- q(2378) => [
+ q(2374) => [
q(Forak),
],
- q(2379) => [
+ q(2375) => [
q(Fortsenal),
],
- q(2380) => [
+ q(2376) => [
q(Finnish Sign Language),
],
- q(2381) => [
+ q(2377) => [
q(French Sign Language),
],
- q(2382) => [
+ q(2378) => [
q(Finland-Swedish Sign Language),
q(finlandssvenskt teckensprak),
q(suomenruotsalainen viittomakieli),
],
- q(2383) => [
+ q(2379) => [
q(Adamawa Fulfulde),
],
- q(2384) => [
+ q(2380) => [
q(Pulaar),
],
- q(2385) => [
+ q(2381) => [
q(East Futuna),
],
- q(2386) => [
+ q(2382) => [
q(Borgu Fulfulde),
],
- q(2387) => [
+ q(2383) => [
q(Pular),
],
- q(2388) => [
+ q(2384) => [
q(Western Niger Fulfulde),
],
- q(2389) => [
+ q(2385) => [
q(Bagirmi Fulfulde),
],
- q(2390) => [
+ q(2386) => [
q(Ko),
],
- q(2391) => [
+ q(2387) => [
q(Fum),
],
- q(2392) => [
+ q(2388) => [
q(Fulnio),
],
- q(2393) => [
+ q(2389) => [
q(Central-Eastern Niger Fulfulde),
],
- q(2394) => [
+ q(2390) => [
q(Futuna-Aniwa),
],
- q(2395) => [
+ q(2391) => [
q(Furu),
],
- q(2396) => [
+ q(2392) => [
q(Nigerian Fulfulde),
],
- q(2397) => [
+ q(2393) => [
q(Fuyug),
],
- q(2398) => [
+ q(2394) => [
q(Fur),
],
- q(2399) => [
+ q(2395) => [
q(Fwai),
],
- q(2400) => [
+ q(2396) => [
q(Fwe),
],
- q(2401) => [
+ q(2397) => [
q(Gabri),
],
- q(2402) => [
+ q(2398) => [
q(Mixed Great Andamanese),
],
- q(2403) => [
+ q(2399) => [
q(Gaddang),
],
- q(2404) => [
+ q(2400) => [
q(Guarequena),
],
- q(2405) => [
+ q(2401) => [
q(Gende),
],
- q(2406) => [
+ q(2402) => [
q(Gagauz),
],
- q(2407) => [
+ q(2403) => [
q(Alekano),
],
- q(2408) => [
+ q(2404) => [
q(Borei),
],
- q(2409) => [
+ q(2405) => [
q(Gadsup),
],
- q(2410) => [
+ q(2406) => [
q(Gamkonora),
],
- q(2411) => [
+ q(2407) => [
q(Galolen),
],
- q(2412) => [
+ q(2408) => [
q(Kandawo),
],
- q(2413) => [
+ q(2409) => [
q(Gan Chinese),
],
- q(2414) => [
+ q(2410) => [
q(Gants),
],
- q(2415) => [
+ q(2411) => [
q(Gal),
],
- q(2416) => [
+ q(2412) => [
q(Gata'),
],
- q(2417) => [
+ q(2413) => [
q(Galeya),
],
- q(2418) => [
+ q(2414) => [
q(Adiwasi Garasia),
],
- q(2419) => [
+ q(2415) => [
q(Kenati),
],
- q(2420) => [
+ q(2416) => [
q(Mudhili Gadaba),
],
- q(2421) => [
+ q(2417) => [
q(Nobonob),
],
- q(2422) => [
+ q(2418) => [
q(Borana-Arsi-Guji Oromo),
],
- q(2423) => [
+ q(2419) => [
q(West Central Oromo),
],
- q(2424) => [
+ q(2420) => [
q(Kaytetye),
],
- q(2425) => [
+ q(2421) => [
q(Karadjeri),
],
- q(2426) => [
+ q(2422) => [
q(Niksek),
],
- q(2427) => [
+ q(2423) => [
q(Gaikundi),
],
- q(2428) => [
+ q(2424) => [
q(Gbanziri),
],
- q(2429) => [
+ q(2425) => [
q(Defi Gbe),
],
- q(2430) => [
+ q(2426) => [
q(Galela),
],
- q(2431) => [
+ q(2427) => [
q(Bodo Gadaba),
],
- q(2432) => [
+ q(2428) => [
q(Gaddi),
],
- q(2433) => [
+ q(2429) => [
q(Gamit),
],
- q(2434) => [
+ q(2430) => [
q(Garhwali),
],
- q(2435) => [
+ q(2431) => [
q(Mo'da),
],
- q(2436) => [
+ q(2432) => [
q(Northern Grebo),
],
- q(2437) => [
+ q(2433) => [
q(Gbaya-Bossangoa),
],
- q(2438) => [
+ q(2434) => [
q(Gbaya-Bozoum),
],
- q(2439) => [
+ q(2435) => [
q(Gbagyi),
],
- q(2440) => [
+ q(2436) => [
q(Gbesi Gbe),
],
- q(2441) => [
+ q(2437) => [
q(Gagadu),
],
- q(2442) => [
+ q(2438) => [
q(Gbanu),
],
- q(2443) => [
+ q(2439) => [
q(Gabi-Gabi),
],
- q(2444) => [
+ q(2440) => [
q(Eastern Xwla Gbe),
],
- q(2445) => [
+ q(2441) => [
q(Gbari),
],
- q(2446) => [
+ q(2442) => [
q(Zoroastrian Dari),
],
- q(2447) => [
+ q(2443) => [
q(Mali),
],
- q(2448) => [
+ q(2444) => [
q(Ganggalida),
],
- q(2449) => [
+ q(2445) => [
q(Galice),
],
- q(2450) => [
+ q(2446) => [
q(Guadeloupean Creole French),
],
- q(2451) => [
+ q(2447) => [
q(Grenadian Creole English),
],
- q(2452) => [
+ q(2448) => [
q(Gaina),
],
- q(2453) => [
+ q(2449) => [
q(Guianese Creole French),
],
- q(2454) => [
+ q(2450) => [
q(Colonia Tovar German),
],
- q(2455) => [
+ q(2451) => [
q(Gade Lohar),
],
- q(2456) => [
+ q(2452) => [
q(Pottangi Ollar Gadaba),
],
- q(2457) => [
+ q(2453) => [
q(Gugu Badhun),
],
- q(2458) => [
+ q(2454) => [
q(Gedaged),
],
- q(2459) => [
+ q(2455) => [
q(Gude),
],
- q(2460) => [
+ q(2456) => [
q(Guduf-Gava),
],
- q(2461) => [
+ q(2457) => [
q(Ga'dang),
],
- q(2462) => [
+ q(2458) => [
q(Gadjerawang),
],
- q(2463) => [
+ q(2459) => [
q(Gundi),
],
- q(2464) => [
+ q(2460) => [
q(Gurdjar),
],
- q(2465) => [
+ q(2461) => [
q(Gadang),
],
- q(2466) => [
+ q(2462) => [
q(Dirasha),
],
- q(2467) => [
+ q(2463) => [
q(Laal),
],
- q(2468) => [
+ q(2464) => [
q(Umanakaina),
],
- q(2469) => [
+ q(2465) => [
q(Ghodoberi),
],
- q(2470) => [
+ q(2466) => [
q(Mehri),
],
- q(2471) => [
+ q(2467) => [
q(Wipi),
],
- q(2472) => [
+ q(2468) => [
q(Ghandruk Sign Language),
],
- q(2473) => [
+ q(2469) => [
q(Kungardutyi),
],
- q(2474) => [
+ q(2470) => [
q(Gudu),
],
- q(2475) => [
+ q(2471) => [
q(Godwari),
],
- q(2476) => [
+ q(2472) => [
q(Geruma),
],
- q(2477) => [
+ q(2473) => [
q(Kire),
],
- q(2478) => [
+ q(2474) => [
q(Gboloo Grebo),
],
- q(2479) => [
+ q(2475) => [
q(Gade),
],
- q(2480) => [
+ q(2476) => [
q(Gengle),
],
- q(2481) => [
+ q(2477) => [
q(Hutterite German),
q(Hutterisch),
],
- q(2482) => [
+ q(2478) => [
q(Gebe),
],
- q(2483) => [
+ q(2479) => [
q(Gen),
],
- q(2484) => [
+ q(2480) => [
q(Yiwom),
],
- q(2485) => [
+ q(2481) => [
q(ut-Ma'in),
],
- q(2486) => [
+ q(2482) => [
q(Geme),
],
- q(2487) => [
+ q(2483) => [
q(Geser-Gorom),
],
- q(2488) => [
+ q(2484) => [
+ q(Eviya),
+ ],
+ q(2485) => [
q(Gera),
],
- q(2489) => [
+ q(2486) => [
q(Garre),
],
- q(2490) => [
+ q(2487) => [
q(Enya),
],
- q(2491) => [
+ q(2488) => [
q(Patpatar),
],
- q(2492) => [
+ q(2489) => [
q(Gafat),
],
- q(2493) => [
- q(Mangetti Dune !Xung),
- ],
- q(2494) => [
+ q(2490) => [
q(Gao),
],
- q(2495) => [
+ q(2491) => [
q(Gbii),
],
- q(2496) => [
+ q(2492) => [
q(Gugadj),
],
- q(2497) => [
+ q(2493) => [
q(Guragone),
],
- q(2498) => [
+ q(2494) => [
q(Gurgula),
],
- q(2499) => [
+ q(2495) => [
q(Kungarakany),
],
- q(2500) => [
+ q(2496) => [
q(Ganglau),
],
- q(2501) => [
+ q(2497) => [
q(Eastern Gurung),
],
- q(2502) => [
+ q(2498) => [
q(Southern Gondi),
],
- q(2503) => [
+ q(2499) => [
q(Gitua),
],
- q(2504) => [
+ q(2500) => [
q(Gagu),
q(Gban),
],
- q(2505) => [
+ q(2501) => [
q(Gogodala),
],
- q(2506) => [
+ q(2502) => [
q(Ghadames),
],
- q(2507) => [
+ q(2503) => [
q(Hiberno-Scottish Gaelic),
],
- q(2508) => [
+ q(2504) => [
q(Southern Ghale),
],
- q(2509) => [
+ q(2505) => [
q(Northern Ghale),
],
- q(2510) => [
+ q(2506) => [
q(Geko Karen),
],
- q(2511) => [
+ q(2507) => [
q(Ghulfan),
],
- q(2512) => [
+ q(2508) => [
q(Ghanongga),
],
- q(2513) => [
+ q(2509) => [
q(Ghomara),
],
- q(2514) => [
+ q(2510) => [
q(Ghera),
],
- q(2515) => [
+ q(2511) => [
q(Guhu-Samane),
],
- q(2516) => [
+ q(2512) => [
q(Kuke),
q(Kutang Ghale),
],
- q(2517) => [
+ q(2513) => [
q(Kitja),
],
- q(2518) => [
+ q(2514) => [
q(Gibanawa),
],
- q(2519) => [
+ q(2515) => [
q(Gail),
],
- q(2520) => [
+ q(2516) => [
q(Gidar),
],
- q(2521) => [
+ q(2517) => [
q(Goaria),
],
- q(2522) => [
+ q(2518) => [
q(Githabul),
],
- q(2523) => [
+ q(2519) => [
q(Gimi (Eastern Highlands)),
],
- q(2524) => [
+ q(2520) => [
q(Hinukh),
],
- q(2525) => [
+ q(2521) => [
q(Gimi (West New Britain)),
],
- q(2526) => [
+ q(2522) => [
q(Green Gelao),
],
- q(2527) => [
+ q(2523) => [
q(Red Gelao),
],
- q(2528) => [
+ q(2524) => [
q(North Giziga),
],
- q(2529) => [
+ q(2525) => [
q(Gitxsan),
],
- q(2530) => [
+ q(2526) => [
q(Mulao),
],
- q(2531) => [
+ q(2527) => [
q(White Gelao),
],
- q(2532) => [
+ q(2528) => [
q(Gilima),
],
- q(2533) => [
+ q(2529) => [
q(Giyug),
],
- q(2534) => [
+ q(2530) => [
q(South Giziga),
],
- q(2535) => [
+ q(2531) => [
q(Geji),
],
- q(2536) => [
+ q(2532) => [
q(Kachi Koli),
],
- q(2537) => [
+ q(2533) => [
q(Gunditjmara),
],
- q(2538) => [
+ q(2534) => [
q(Gonja),
],
- q(2539) => [
+ q(2535) => [
q(Gujari),
],
- q(2540) => [
+ q(2536) => [
q(Guya),
],
- q(2541) => [
+ q(2537) => [
q(Ndai),
],
- q(2542) => [
+ q(2538) => [
q(Gokana),
],
- q(2543) => [
+ q(2539) => [
q(Kok-Nar),
],
- q(2544) => [
+ q(2540) => [
q(Guinea Kpelle),
],
- q(2545) => [
+ q(2541) => [
+ q(Ungkue),
+ q(=/Ungkue),
+ ],
+ q(2542) => [
q(Bon Gula),
],
- q(2546) => [
+ q(2543) => [
q(Nanai),
],
- q(2547) => [
+ q(2544) => [
+ q(Northwest Pashai),
q(Northwest Pashayi),
],
- q(2548) => [
+ q(2545) => [
q(Guliguli),
],
- q(2549) => [
+ q(2546) => [
q(Gula Iro),
],
- q(2550) => [
+ q(2547) => [
q(Gilaki),
],
- q(2551) => [
+ q(2548) => [
q(Garlali),
],
- q(2552) => [
+ q(2549) => [
q(Galambu),
],
- q(2553) => [
+ q(2550) => [
q(Glaro-Twabo),
],
- q(2554) => [
+ q(2551) => [
q(Gula (Chad)),
],
- q(2555) => [
+ q(2552) => [
q(Glavda),
],
- q(2556) => [
+ q(2553) => [
q(Gule),
],
- q(2557) => [
+ q(2554) => [
q(Gambera),
],
- q(2558) => [
+ q(2555) => [
q(Gula'alaa),
],
- q(2559) => [
+ q(2556) => [
q(Maghdi),
],
- q(2560) => [
+ q(2557) => [
+ q(Magyi),
+ ],
+ q(2558) => [
q(Middle Low German),
],
- q(2561) => [
+ q(2559) => [
q(Gbaya-Mbodomo),
],
- q(2562) => [
+ q(2560) => [
q(Gimnime),
],
- q(2563) => [
+ q(2561) => [
q(Gumalu),
],
- q(2564) => [
+ q(2562) => [
q(Gamo),
],
- q(2565) => [
+ q(2563) => [
q(Magoma),
],
- q(2566) => [
+ q(2564) => [
q(Mycenaean Greek),
],
- q(2567) => [
+ q(2565) => [
q(Mgbolizhia),
],
- q(2568) => [
+ q(2566) => [
q(Kaansa),
],
- q(2569) => [
+ q(2567) => [
q(Gangte),
],
- q(2570) => [
+ q(2568) => [
q(Guanche),
],
- q(2571) => [
+ q(2569) => [
q(Zulgo-Gemzek),
],
- q(2572) => [
+ q(2570) => [
q(Ganang),
],
- q(2573) => [
+ q(2571) => [
q(Ngangam),
],
- q(2574) => [
+ q(2572) => [
q(Lere),
],
- q(2575) => [
+ q(2573) => [
q(Gooniyandi),
],
- q(2576) => [
+ q(2574) => [
q(//Gana),
],
- q(2577) => [
+ q(2575) => [
q(Gangulu),
],
- q(2578) => [
+ q(2576) => [
q(Ginuman),
],
- q(2579) => [
+ q(2577) => [
q(Gumatj),
],
- q(2580) => [
+ q(2578) => [
q(Northern Gondi),
],
- q(2581) => [
+ q(2579) => [
q(Gana),
],
- q(2582) => [
+ q(2580) => [
q(Gureng Gureng),
],
- q(2583) => [
+ q(2581) => [
q(Guntai),
],
- q(2584) => [
+ q(2582) => [
q(Gnau),
],
- q(2585) => [
+ q(2583) => [
q(Western Bolivian Guarani),
],
- q(2586) => [
+ q(2584) => [
q(Ganzi),
],
- q(2587) => [
+ q(2585) => [
q(Guro),
],
- q(2588) => [
+ q(2586) => [
q(Playero),
],
- q(2589) => [
+ q(2587) => [
q(Gorakor),
],
- q(2590) => [
+ q(2588) => [
q(Godie),
],
- q(2591) => [
+ q(2589) => [
q(Gongduk),
],
- q(2592) => [
+ q(2590) => [
q(Gofa),
],
- q(2593) => [
+ q(2591) => [
q(Gogo),
],
- q(2594) => [
+ q(2592) => [
q(Gobasi),
],
- q(2595) => [
+ q(2593) => [
q(Gowlan),
],
- q(2596) => [
+ q(2594) => [
q(Gowli),
],
- q(2597) => [
+ q(2595) => [
q(Gola),
],
- q(2598) => [
+ q(2596) => [
q(Goan Konkani),
],
- q(2599) => [
+ q(2597) => [
q(Gone Dau),
],
- q(2600) => [
+ q(2598) => [
q(Yeretuar),
],
- q(2601) => [
+ q(2599) => [
q(Gorap),
],
- q(2602) => [
+ q(2600) => [
q(Gronings),
],
- q(2603) => [
+ q(2601) => [
q(Gavar),
],
- q(2604) => [
+ q(2602) => [
q(Gorowa),
],
- q(2605) => [
+ q(2603) => [
q(Gobu),
],
- q(2606) => [
+ q(2604) => [
q(Goundo),
],
- q(2607) => [
+ q(2605) => [
q(Gozarkhani),
],
- q(2608) => [
+ q(2606) => [
q(Gupa-Abawa),
],
- q(2609) => [
+ q(2607) => [
q(Ghanaian Pidgin English),
],
- q(2610) => [
+ q(2608) => [
q(Taiap),
],
- q(2611) => [
+ q(2609) => [
q(Ga'anda),
],
- q(2612) => [
+ q(2610) => [
q(Guiqiong),
],
- q(2613) => [
+ q(2611) => [
q(Guana (Brazil)),
],
- q(2614) => [
+ q(2612) => [
q(Gor),
],
- q(2615) => [
+ q(2613) => [
q(Qau),
],
- q(2616) => [
+ q(2614) => [
q(Rajput Garasia),
],
- q(2617) => [
+ q(2615) => [
q(Guruntum-Mbaaru),
],
- q(2618) => [
+ q(2616) => [
q(Madi),
],
- q(2619) => [
+ q(2617) => [
q(Gbiri-Niragu),
],
- q(2620) => [
+ q(2618) => [
q(Ghari),
],
- q(2621) => [
+ q(2619) => [
q(Southern Grebo),
],
- q(2622) => [
+ q(2620) => [
q(Kota Marudu Talantang),
],
- q(2623) => [
+ q(2621) => [
q(Groma),
],
- q(2624) => [
+ q(2622) => [
q(Gorovu),
],
- q(2625) => [
+ q(2623) => [
q(Taznatit),
],
- q(2626) => [
+ q(2624) => [
q(Gresi),
],
- q(2627) => [
+ q(2625) => [
q(Garo),
],
- q(2628) => [
+ q(2626) => [
q(Kistane),
],
- q(2629) => [
+ q(2627) => [
q(Central Grebo),
],
- q(2630) => [
+ q(2628) => [
q(Gweda),
],
- q(2631) => [
+ q(2629) => [
q(Guriaso),
],
- q(2632) => [
+ q(2630) => [
q(Barclayville Grebo),
],
- q(2633) => [
+ q(2631) => [
q(Guramalum),
],
- q(2634) => [
+ q(2632) => [
q(Ghanaian Sign Language),
],
- q(2635) => [
+ q(2633) => [
q(German Sign Language),
],
- q(2636) => [
+ q(2634) => [
q(Gusilay),
],
- q(2637) => [
+ q(2635) => [
q(Guatemalan Sign Language),
],
- q(2638) => [
+ q(2636) => [
q(Gusan),
],
- q(2639) => [
+ q(2637) => [
q(Southwest Gbaya),
],
- q(2640) => [
+ q(2638) => [
q(Wasembo),
],
- q(2641) => [
+ q(2639) => [
q(Greek Sign Language),
],
- q(2642) => [
+ q(2640) => [
q(Guato),
],
- q(2643) => [
- q(Gbati-ri),
- ],
- q(2644) => [
+ q(2641) => [
q(Aghu-Tharnggala),
],
- q(2645) => [
+ q(2642) => [
q(Shiki),
],
- q(2646) => [
+ q(2643) => [
q(Guajajara),
],
- q(2647) => [
+ q(2644) => [
q(Wayuu),
],
- q(2648) => [
+ q(2645) => [
q(Yocoboue Dida),
],
- q(2649) => [
+ q(2646) => [
q(Gurinji),
],
- q(2650) => [
+ q(2647) => [
q(Gupapuyngu),
],
- q(2651) => [
+ q(2648) => [
q(Paraguayan Guarani),
],
- q(2652) => [
+ q(2649) => [
q(Guahibo),
],
- q(2653) => [
+ q(2650) => [
q(Eastern Bolivian Guarani),
],
- q(2654) => [
+ q(2651) => [
q(Gumuz),
],
- q(2655) => [
+ q(2652) => [
q(Sea Island Creole English),
],
- q(2656) => [
+ q(2653) => [
q(Guambiano),
],
- q(2657) => [
+ q(2654) => [
q(Mbya Guarani),
],
- q(2658) => [
+ q(2655) => [
q(Guayabero),
],
- q(2659) => [
+ q(2656) => [
q(Gunwinggu),
],
- q(2660) => [
+ q(2657) => [
q(Ache),
],
- q(2661) => [
+ q(2658) => [
q(Farefare),
],
- q(2662) => [
+ q(2659) => [
q(Guinean Sign Language),
],
- q(2663) => [
+ q(2660) => [
q(Maleku Jaika),
],
- q(2664) => [
+ q(2661) => [
q(Yanomamo),
],
- q(2665) => [
+ q(2662) => [
q(Gey),
],
- q(2666) => [
+ q(2663) => [
q(Gun),
],
- q(2667) => [
+ q(2664) => [
q(Gourmanchema),
],
- q(2668) => [
+ q(2665) => [
q(Gusii),
q(Ekegusii),
],
- q(2669) => [
+ q(2666) => [
q(Guana (Paraguay)),
],
- q(2670) => [
+ q(2667) => [
q(Guanano),
],
- q(2671) => [
+ q(2668) => [
q(Duwet),
],
- q(2672) => [
+ q(2669) => [
q(Golin),
],
- q(2673) => [
+ q(2670) => [
q(Guaja),
],
- q(2674) => [
+ q(2671) => [
q(Gulay),
],
- q(2675) => [
+ q(2672) => [
q(Gurmana),
],
- q(2676) => [
+ q(2673) => [
q(Kuku-Yalanji),
],
- q(2677) => [
+ q(2674) => [
q(Gaviao Do Jiparana),
],
- q(2678) => [
+ q(2675) => [
q(Para Gaviao),
],
- q(2679) => [
+ q(2676) => [
q(Western Gurung),
],
- q(2680) => [
+ q(2677) => [
q(Gumawana),
],
- q(2681) => [
+ q(2678) => [
q(Guyani),
],
- q(2682) => [
+ q(2679) => [
q(Mbato),
],
- q(2683) => [
+ q(2680) => [
q(Gwa),
],
- q(2684) => [
+ q(2681) => [
q(Kalami),
],
- q(2685) => [
+ q(2682) => [
q(Gawwada),
],
- q(2686) => [
+ q(2683) => [
q(Gweno),
],
- q(2687) => [
+ q(2684) => [
q(Gowro),
],
- q(2688) => [
+ q(2685) => [
q(Moo),
],
- q(2689) => [
+ q(2686) => [
q(/Gwi),
],
- q(2690) => [
+ q(2687) => [
q(Awngthim),
],
- q(2691) => [
+ q(2688) => [
q(Gwandara),
],
- q(2692) => [
+ q(2689) => [
q(Gwere),
],
- q(2693) => [
+ q(2690) => [
q(Gawar-Bati),
],
- q(2694) => [
+ q(2691) => [
q(Guwamu),
],
- q(2695) => [
+ q(2692) => [
q(Kwini),
],
- q(2696) => [
+ q(2693) => [
q(Gua),
],
- q(2697) => [
+ q(2694) => [
q(We Southern),
],
- q(2698) => [
+ q(2695) => [
q(Northwest Gbaya),
],
- q(2699) => [
+ q(2696) => [
q(Garus),
],
- q(2700) => [
+ q(2697) => [
q(Kayardild),
],
- q(2701) => [
+ q(2698) => [
q(Gyem),
],
- q(2702) => [
+ q(2699) => [
q(Gungabula),
],
- q(2703) => [
+ q(2700) => [
q(Gbayi),
],
- q(2704) => [
+ q(2701) => [
q(Gyele),
],
- q(2705) => [
+ q(2702) => [
q(Gayil),
],
- q(2706) => [
+ q(2703) => [
q(Ngabere),
],
- q(2707) => [
+ q(2704) => [
q(Guyanese Creole English),
],
- q(2708) => [
+ q(2705) => [
q(Guarayu),
],
- q(2709) => [
+ q(2706) => [
q(Gunya),
],
- q(2710) => [
+ q(2707) => [
q(Ganza),
],
- q(2711) => [
+ q(2708) => [
q(Gazi),
],
- q(2712) => [
+ q(2709) => [
q(Gane),
],
- q(2713) => [
+ q(2710) => [
q(Han),
],
- q(2714) => [
+ q(2711) => [
q(Hanoi Sign Language),
],
- q(2715) => [
+ q(2712) => [
q(Gurani),
],
- q(2716) => [
+ q(2713) => [
q(Hatam),
],
- q(2717) => [
+ q(2714) => [
q(Eastern Oromo),
],
- q(2718) => [
+ q(2715) => [
q(Haiphong Sign Language),
],
- q(2719) => [
+ q(2716) => [
q(Hanga),
],
- q(2720) => [
+ q(2717) => [
q(Hahon),
],
- q(2721) => [
+ q(2718) => [
q(Hajong),
],
- q(2722) => [
+ q(2719) => [
q(Hakka Chinese),
],
- q(2723) => [
+ q(2720) => [
q(Halang),
],
- q(2724) => [
+ q(2721) => [
q(Hewa),
],
- q(2725) => [
+ q(2722) => [
q(Hangaza),
],
- q(2726) => [
+ q(2723) => [
q(Hako),
],
- q(2727) => [
+ q(2724) => [
q(Hupla),
],
- q(2728) => [
+ q(2725) => [
q(Ha),
],
- q(2729) => [
+ q(2726) => [
q(Harari),
],
- q(2730) => [
+ q(2727) => [
q(Haisla),
],
- q(2731) => [
+ q(2728) => [
q(Havu),
],
- q(2732) => [
+ q(2729) => [
q(Southern Haida),
],
- q(2733) => [
+ q(2730) => [
q(Haya),
],
- q(2734) => [
+ q(2731) => [
q(Hazaragi),
],
- q(2735) => [
+ q(2732) => [
q(Hamba),
],
- q(2736) => [
+ q(2733) => [
q(Huba),
],
- q(2737) => [
+ q(2734) => [
q(Heiban),
],
- q(2738) => [
+ q(2735) => [
q(Ancient Hebrew),
],
- q(2739) => [
+ q(2736) => [
q(Habu),
],
- q(2740) => [
+ q(2737) => [
q(Andaman Creole Hindi),
],
- q(2741) => [
+ q(2738) => [
q(Huichol),
],
- q(2742) => [
+ q(2739) => [
q(Northern Haida),
],
- q(2743) => [
+ q(2740) => [
q(Honduras Sign Language),
],
- q(2744) => [
+ q(2741) => [
q(Hadiyya),
],
- q(2745) => [
+ q(2742) => [
q(Northern Qiandong Miao),
],
- q(2746) => [
+ q(2743) => [
q(Herde),
],
- q(2747) => [
+ q(2744) => [
q(Helong),
],
- q(2748) => [
+ q(2745) => [
q(Hehe),
],
- q(2749) => [
+ q(2746) => [
q(Heiltsuk),
],
- q(2750) => [
+ q(2747) => [
q(Hemba),
],
- q(2751) => [
+ q(2748) => [
q(Hai//om),
],
- q(2752) => [
+ q(2749) => [
q(Haigwai),
],
- q(2753) => [
+ q(2750) => [
q(Hoia Hoia),
],
- q(2754) => [
+ q(2751) => [
q(Kerak),
],
- q(2755) => [
+ q(2752) => [
q(Hoyahoya),
],
- q(2756) => [
+ q(2753) => [
q(Lamang),
],
- q(2757) => [
+ q(2754) => [
q(Hibito),
],
- q(2758) => [
+ q(2755) => [
q(Hidatsa),
],
- q(2759) => [
+ q(2756) => [
q(Fiji Hindi),
],
- q(2760) => [
+ q(2757) => [
q(Kamwe),
],
- q(2761) => [
+ q(2758) => [
q(Pamosu),
],
- q(2762) => [
+ q(2759) => [
q(Hinduri),
],
- q(2763) => [
+ q(2760) => [
q(Hijuk),
],
- q(2764) => [
+ q(2761) => [
q(Seit-Kaitetu),
],
- q(2765) => [
+ q(2762) => [
q(Tsoa),
],
- q(2766) => [
+ q(2763) => [
q(Himarima),
],
- q(2767) => [
+ q(2764) => [
q(Hiw),
],
- q(2768) => [
+ q(2765) => [
q(Hixkaryana),
],
- q(2769) => [
+ q(2766) => [
q(Haji),
],
- q(2770) => [
+ q(2767) => [
q(Kahe),
],
- q(2771) => [
+ q(2768) => [
q(Hunde),
],
- q(2772) => [
+ q(2769) => [
q(Hunjara-Kaina Ke),
],
- q(2773) => [
+ q(2770) => [
q(Hong Kong Sign Language),
q(Heung Kong Sau Yue),
],
- q(2774) => [
+ q(2771) => [
q(Halia),
],
- q(2775) => [
+ q(2772) => [
q(Halbi),
],
- q(2776) => [
+ q(2773) => [
q(Halang Doan),
],
- q(2777) => [
+ q(2774) => [
q(Hlersu),
],
- q(2778) => [
+ q(2775) => [
q(Matu Chin),
],
- q(2779) => [
+ q(2776) => [
q(Hieroglyphic Luwian),
],
- q(2780) => [
+ q(2777) => [
q(Southern Mashan Hmong),
q(Southern Mashan Miao),
],
- q(2781) => [
+ q(2778) => [
q(Humburi Senni Songhay),
],
- q(2782) => [
+ q(2779) => [
q(Central Huishui Hmong),
q(Central Huishui Miao),
],
- q(2783) => [
+ q(2780) => [
q(Large Flowery Miao),
q(A-hmaos),
q(Da-Hua Miao),
],
- q(2784) => [
+ q(2781) => [
q(Eastern Huishui Hmong),
q(Eastern Huishui Miao),
],
- q(2785) => [
+ q(2782) => [
q(Hmong Don),
],
- q(2786) => [
+ q(2783) => [
q(Southwestern Guiyang Hmong),
],
- q(2787) => [
+ q(2784) => [
q(Southwestern Huishui Hmong),
q(Southwestern Huishui Miao),
],
- q(2788) => [
+ q(2785) => [
q(Northern Huishui Hmong),
q(Northern Huishui Miao),
],
- q(2789) => [
+ q(2786) => [
q(Ge),
q(Gejia),
],
- q(2790) => [
+ q(2787) => [
q(Maek),
],
- q(2791) => [
+ q(2788) => [
q(Luopohe Hmong),
q(Luopohe Miao),
],
- q(2792) => [
+ q(2789) => [
q(Central Mashan Hmong),
q(Central Mashan Miao),
],
- q(2793) => [
+ q(2790) => [
q(Northern Mashan Hmong),
q(Northern Mashan Miao),
],
- q(2794) => [
+ q(2791) => [
q(Eastern Qiandong Miao),
],
- q(2795) => [
+ q(2792) => [
q(Hmar),
],
- q(2796) => [
+ q(2793) => [
q(Southern Qiandong Miao),
],
- q(2797) => [
+ q(2794) => [
q(Hamtai),
],
- q(2798) => [
+ q(2795) => [
q(Hamap),
],
- q(2799) => [
+ q(2796) => [
q(Hmong Do),
],
- q(2800) => [
+ q(2797) => [
q(Western Mashan Hmong),
q(Western Mashan Miao),
],
- q(2801) => [
+ q(2798) => [
q(Southern Guiyang Hmong),
q(Southern Guiyang Miao),
],
- q(2802) => [
+ q(2799) => [
q(Hmong Shua),
q(Sinicized Miao),
],
- q(2803) => [
+ q(2800) => [
q(Mina (Cameroon)),
],
- q(2804) => [
+ q(2801) => [
q(Southern Hindko),
],
- q(2805) => [
+ q(2802) => [
q(Chhattisgarhi),
],
- q(2806) => [
+ q(2803) => [
q(//Ani),
],
- q(2807) => [
+ q(2804) => [
q(Hani),
],
- q(2808) => [
+ q(2805) => [
q(Hmong Njua),
q(Mong Leng),
q(Mong Njua),
],
- q(2809) => [
+ q(2806) => [
q(Hanunoo),
],
- q(2810) => [
+ q(2807) => [
q(Northern Hindko),
],
- q(2811) => [
+ q(2808) => [
q(Caribbean Hindustani),
],
- q(2812) => [
+ q(2809) => [
q(Hung),
],
- q(2813) => [
+ q(2810) => [
q(Hoava),
],
- q(2814) => [
+ q(2811) => [
q(Mari (Madang Province)),
],
- q(2815) => [
+ q(2812) => [
q(Ho),
],
- q(2816) => [
+ q(2813) => [
q(Holma),
],
- q(2817) => [
+ q(2814) => [
q(Horom),
],
- q(2818) => [
+ q(2815) => [
q(Hobyot),
],
- q(2819) => [
+ q(2816) => [
q(Holikachuk),
],
- q(2820) => [
+ q(2817) => [
q(Hadothi),
q(Haroti),
],
- q(2821) => [
+ q(2818) => [
q(Holu),
],
- q(2822) => [
+ q(2819) => [
q(Homa),
],
- q(2823) => [
+ q(2820) => [
q(Holoholo),
],
- q(2824) => [
+ q(2821) => [
q(Hopi),
],
- q(2825) => [
+ q(2822) => [
q(Horo),
],
- q(2826) => [
+ q(2823) => [
q(Ho Chi Minh City Sign Language),
],
- q(2827) => [
+ q(2824) => [
q(Hote),
q(Male),
],
- q(2828) => [
+ q(2825) => [
q(Hovongan),
],
- q(2829) => [
+ q(2826) => [
q(Honi),
],
- q(2830) => [
+ q(2827) => [
q(Holiya),
],
- q(2831) => [
+ q(2828) => [
q(Hozo),
],
- q(2832) => [
+ q(2829) => [
q(Hpon),
],
- q(2833) => [
+ q(2830) => [
+ q(Hawai'i Sign Language (HSL)),
q(Hawai'i Pidgin Sign Language),
],
- q(2834) => [
+ q(2831) => [
q(Hrangkhol),
],
- q(2835) => [
+ q(2832) => [
q(Niwer Mil),
],
- q(2836) => [
+ q(2833) => [
q(Hre),
],
- q(2837) => [
+ q(2834) => [
q(Haruku),
],
- q(2838) => [
+ q(2835) => [
q(Horned Miao),
],
- q(2839) => [
+ q(2836) => [
q(Haroi),
],
- q(2840) => [
+ q(2837) => [
q(Nhirrpi),
],
- q(2841) => [
+ q(2838) => [
q(Hertevin),
],
- q(2842) => [
+ q(2839) => [
q(Hruso),
],
- q(2843) => [
+ q(2840) => [
q(Warwar Feni),
],
- q(2844) => [
+ q(2841) => [
q(Hunsrik),
],
- q(2845) => [
+ q(2842) => [
q(Harzani),
],
- q(2846) => [
+ q(2843) => [
q(Hungarian Sign Language),
],
- q(2847) => [
+ q(2844) => [
q(Hausa Sign Language),
],
- q(2848) => [
+ q(2845) => [
q(Xiang Chinese),
],
- q(2849) => [
+ q(2846) => [
q(Harsusi),
],
- q(2850) => [
+ q(2847) => [
q(Hoti),
],
- q(2851) => [
+ q(2848) => [
q(Minica Huitoto),
],
- q(2852) => [
+ q(2849) => [
q(Hadza),
],
- q(2853) => [
+ q(2850) => [
q(Hitu),
],
- q(2854) => [
+ q(2851) => [
q(Middle Hittite),
],
- q(2855) => [
+ q(2852) => [
q(Huambisa),
],
- q(2856) => [
+ q(2853) => [
q(=/Hua),
],
- q(2857) => [
+ q(2854) => [
q(Huaulu),
],
- q(2858) => [
+ q(2855) => [
q(San Francisco Del Mar Huave),
],
- q(2859) => [
+ q(2856) => [
q(Humene),
],
- q(2860) => [
+ q(2857) => [
q(Huachipaeri),
],
- q(2861) => [
+ q(2858) => [
q(Huilliche),
],
- q(2862) => [
+ q(2859) => [
q(Huli),
],
- q(2863) => [
+ q(2860) => [
q(Northern Guiyang Hmong),
q(Northern Guiyang Miao),
],
- q(2864) => [
+ q(2861) => [
q(Hulung),
],
- q(2865) => [
+ q(2862) => [
q(Hula),
],
- q(2866) => [
+ q(2863) => [
q(Hungana),
],
- q(2867) => [
+ q(2864) => [
q(Hu),
],
- q(2868) => [
+ q(2865) => [
q(Tsat),
],
- q(2869) => [
+ q(2866) => [
q(Halkomelem),
],
- q(2870) => [
+ q(2867) => [
q(Huastec),
],
- q(2871) => [
+ q(2868) => [
q(Humla),
],
- q(2872) => [
+ q(2869) => [
q(Murui Huitoto),
],
- q(2873) => [
+ q(2870) => [
q(San Mateo Del Mar Huave),
],
- q(2874) => [
+ q(2871) => [
q(Hukumina),
],
- q(2875) => [
+ q(2872) => [
q(Nupode Huitoto),
],
- q(2876) => [
+ q(2873) => [
q(Hulaula),
],
- q(2877) => [
+ q(2874) => [
q(Hunzib),
],
- q(2878) => [
+ q(2875) => [
q(Haitian Vodoun Culture Language),
],
- q(2879) => [
+ q(2876) => [
q(San Dionisio Del Mar Huave),
],
- q(2880) => [
+ q(2877) => [
q(Haveke),
],
- q(2881) => [
+ q(2878) => [
q(Sabu),
],
- q(2882) => [
+ q(2879) => [
q(Santa Maria Del Mar Huave),
],
- q(2883) => [
+ q(2880) => [
q(Wane),
],
- q(2884) => [
+ q(2881) => [
q(Hawai'i Creole English),
q(Hawai'i Pidgin),
],
- q(2885) => [
+ q(2882) => [
q(Hwana),
],
- q(2886) => [
+ q(2883) => [
q(Hya),
],
- q(2887) => [
+ q(2884) => [
q(Iaai),
],
- q(2888) => [
+ q(2885) => [
q(Iatmul),
],
- q(2889) => [
+ q(2886) => [
q(Iapama),
],
- q(2890) => [
+ q(2887) => [
q(Purari),
],
- q(2891) => [
+ q(2888) => [
q(Ibibio),
],
- q(2892) => [
+ q(2889) => [
q(Iwaidja),
],
- q(2893) => [
+ q(2890) => [
q(Akpes),
],
- q(2894) => [
+ q(2891) => [
q(Ibanag),
],
- q(2895) => [
+ q(2892) => [
q(Ibaloi),
],
- q(2896) => [
+ q(2893) => [
q(Agoi),
],
- q(2897) => [
+ q(2894) => [
q(Ibino),
],
- q(2898) => [
+ q(2895) => [
q(Ibuoro),
],
- q(2899) => [
+ q(2896) => [
q(Ibu),
],
- q(2900) => [
+ q(2897) => [
q(Ibani),
],
- q(2901) => [
+ q(2898) => [
q(Ede Ica),
],
- q(2902) => [
+ q(2899) => [
q(Etkywan),
],
- q(2903) => [
+ q(2900) => [
q(Icelandic Sign Language),
],
- q(2904) => [
+ q(2901) => [
q(Islander Creole English),
],
- q(2905) => [
+ q(2902) => [
q(Idakho-Isukha-Tiriki),
q(Luidakho-Luisukha-Lutirichi),
],
- q(2906) => [
+ q(2903) => [
q(Indo-Portuguese),
],
- q(2907) => [
+ q(2904) => [
q(Idon),
q(Ajiya),
],
- q(2908) => [
+ q(2905) => [
q(Ede Idaca),
],
- q(2909) => [
+ q(2906) => [
q(Idere),
],
- q(2910) => [
+ q(2907) => [
q(Idi),
],
- q(2911) => [
+ q(2908) => [
q(Indri),
],
- q(2912) => [
+ q(2909) => [
q(Idesa),
],
- q(2913) => [
+ q(2910) => [
q(Idate),
],
- q(2914) => [
+ q(2911) => [
q(Idoma),
],
- q(2915) => [
+ q(2912) => [
q(Amganad Ifugao),
],
- q(2916) => [
+ q(2913) => [
q(Batad Ifugao),
q(Ayangan Ifugao),
],
- q(2917) => [
+ q(2914) => [
q(Ife),
],
- q(2918) => [
+ q(2915) => [
q(Ifo),
],
- q(2919) => [
+ q(2916) => [
q(Tuwali Ifugao),
],
- q(2920) => [
+ q(2917) => [
q(Teke-Fuumu),
],
- q(2921) => [
+ q(2918) => [
q(Mayoyao Ifugao),
],
- q(2922) => [
+ q(2919) => [
q(Keley-I Kallahan),
],
- q(2923) => [
+ q(2920) => [
q(Ebira),
],
- q(2924) => [
+ q(2921) => [
q(Igede),
],
- q(2925) => [
+ q(2922) => [
q(Igana),
],
- q(2926) => [
+ q(2923) => [
q(Igala),
],
- q(2927) => [
+ q(2924) => [
q(Kanggape),
],
- q(2928) => [
+ q(2925) => [
q(Ignaciano),
],
- q(2929) => [
+ q(2926) => [
q(Isebe),
],
- q(2930) => [
+ q(2927) => [
q(Interglossa),
],
- q(2931) => [
+ q(2928) => [
q(Igwe),
],
- q(2932) => [
+ q(2929) => [
q(Iha Based Pidgin),
],
- q(2933) => [
+ q(2930) => [
q(Ihievbe),
],
- q(2934) => [
+ q(2931) => [
q(Iha),
],
- q(2935) => [
+ q(2932) => [
q(Bidhawal),
],
- q(2936) => [
+ q(2933) => [
q(Thiin),
],
- q(2937) => [
+ q(2934) => [
q(Izon),
],
- q(2938) => [
+ q(2935) => [
q(Biseni),
],
- q(2939) => [
+ q(2936) => [
q(Ede Ije),
],
- q(2940) => [
+ q(2937) => [
q(Kalabari),
],
- q(2941) => [
+ q(2938) => [
q(Southeast Ijo),
],
- q(2942) => [
+ q(2939) => [
q(Eastern Canadian Inuktitut),
],
- q(2943) => [
+ q(2940) => [
q(Iko),
],
- q(2944) => [
+ q(2941) => [
q(Ika),
],
- q(2945) => [
+ q(2942) => [
q(Ikulu),
],
- q(2946) => [
+ q(2943) => [
q(Olulumo-Ikom),
],
- q(2947) => [
+ q(2944) => [
q(Ikpeshi),
],
- q(2948) => [
+ q(2945) => [
q(Ikaranggal),
],
- q(2949) => [
+ q(2946) => [
+ q(Inuit Sign Language),
+ ],
+ q(2947) => [
q(Inuinnaqtun),
q(Western Canadian Inuktitut),
],
- q(2950) => [
+ q(2948) => [
q(Iku-Gora-Ankwa),
],
- q(2951) => [
+ q(2949) => [
q(Ikwere),
],
- q(2952) => [
+ q(2950) => [
q(Ik),
],
- q(2953) => [
+ q(2951) => [
q(Ikizu),
],
- q(2954) => [
+ q(2952) => [
q(Ile Ape),
],
- q(2955) => [
+ q(2953) => [
q(Ila),
],
- q(2956) => [
+ q(2954) => [
q(Garig-Ilgar),
],
- q(2957) => [
+ q(2955) => [
q(Ili Turki),
],
- q(2958) => [
+ q(2956) => [
q(Ilongot),
],
- q(2959) => [
+ q(2957) => [
q(Iranun),
],
- q(2960) => [
+ q(2958) => [
q(International Sign),
],
- q(2961) => [
+ q(2959) => [
q(Ili'uun),
],
- q(2962) => [
+ q(2960) => [
q(Ilue),
],
- q(2963) => [
+ q(2961) => [
q(Mala Malasar),
],
- q(2964) => [
- q(Imeraguen),
- ],
- q(2965) => [
+ q(2962) => [
q(Anamgura),
],
- q(2966) => [
+ q(2963) => [
q(Miluk),
],
- q(2967) => [
+ q(2964) => [
q(Imonda),
],
- q(2968) => [
+ q(2965) => [
q(Imbongu),
],
- q(2969) => [
+ q(2966) => [
q(Imroing),
],
- q(2970) => [
+ q(2967) => [
q(Marsian),
],
- q(2971) => [
+ q(2968) => [
q(Milyan),
],
- q(2972) => [
+ q(2969) => [
q(Inga),
],
- q(2973) => [
+ q(2970) => [
q(Degexit'an),
],
- q(2974) => [
+ q(2971) => [
q(Jungle Inga),
],
- q(2975) => [
+ q(2972) => [
q(Indonesian Sign Language),
],
- q(2976) => [
+ q(2973) => [
q(Minaean),
],
- q(2977) => [
+ q(2974) => [
q(Isinai),
],
- q(2978) => [
+ q(2975) => [
q(Inoke-Yate),
],
- q(2979) => [
+ q(2976) => [
q(Inapari),
],
- q(2980) => [
+ q(2977) => [
q(Indian Sign Language),
],
- q(2981) => [
+ q(2978) => [
q(Intha),
],
- q(2982) => [
+ q(2979) => [
q(Ineseno),
],
- q(2983) => [
+ q(2980) => [
q(Inor),
],
- q(2984) => [
+ q(2981) => [
q(Tuma-Irumu),
],
- q(2985) => [
+ q(2982) => [
q(Iowa-Oto),
],
- q(2986) => [
+ q(2983) => [
q(Ipili),
],
- q(2987) => [
+ q(2984) => [
q(Ipiko),
],
- q(2988) => [
+ q(2985) => [
q(Iquito),
],
- q(2989) => [
+ q(2986) => [
q(Ikwo),
],
- q(2990) => [
+ q(2987) => [
q(Iresim),
],
- q(2991) => [
+ q(2988) => [
q(Irarutu),
],
- q(2992) => [
+ q(2989) => [
q(Irigwe),
],
- q(2993) => [
+ q(2990) => [
q(Iraqw),
],
- q(2994) => [
+ q(2991) => [
q(Irantxe),
],
- q(2995) => [
+ q(2992) => [
q(Ir),
],
- q(2996) => [
+ q(2993) => [
q(Irula),
],
- q(2997) => [
+ q(2994) => [
q(Kamberau),
],
- q(2998) => [
+ q(2995) => [
q(Iraya),
],
- q(2999) => [
+ q(2996) => [
q(Isabi),
],
- q(3000) => [
+ q(2997) => [
q(Isconahua),
],
- q(3001) => [
+ q(2998) => [
q(Isnag),
],
- q(3002) => [
+ q(2999) => [
q(Italian Sign Language),
],
- q(3003) => [
+ q(3000) => [
q(Irish Sign Language),
],
- q(3004) => [
+ q(3001) => [
q(Esan),
],
- q(3005) => [
+ q(3002) => [
q(Nkem-Nkum),
],
- q(3006) => [
+ q(3003) => [
q(Ishkashimi),
],
- q(3007) => [
+ q(3004) => [
q(Masimasi),
],
- q(3008) => [
+ q(3005) => [
q(Isanzu),
],
- q(3009) => [
+ q(3006) => [
q(Isoko),
],
- q(3010) => [
+ q(3007) => [
q(Israeli Sign Language),
],
- q(3011) => [
+ q(3008) => [
q(Istriot),
],
- q(3012) => [
+ q(3009) => [
q(Isu (Menchum Division)),
],
- q(3013) => [
+ q(3010) => [
q(Binongan Itneg),
],
- q(3014) => [
+ q(3011) => [
q(Itene),
],
- q(3015) => [
+ q(3012) => [
q(Inlaod Itneg),
],
- q(3016) => [
+ q(3013) => [
q(Judeo-Italian),
],
- q(3017) => [
+ q(3014) => [
q(Itelmen),
],
- q(3018) => [
+ q(3015) => [
q(Itu Mbon Uzo),
],
- q(3019) => [
+ q(3016) => [
q(Itonama),
],
- q(3020) => [
+ q(3017) => [
q(Iteri),
],
- q(3021) => [
+ q(3018) => [
q(Isekiri),
],
- q(3022) => [
+ q(3019) => [
q(Maeng Itneg),
],
- q(3023) => [
+ q(3020) => [
q(Itawit),
],
- q(3024) => [
+ q(3021) => [
q(Ito),
],
- q(3025) => [
+ q(3022) => [
q(Itik),
],
- q(3026) => [
+ q(3023) => [
q(Moyadan Itneg),
],
- q(3027) => [
+ q(3024) => [
q(Itza),
],
- q(3028) => [
+ q(3025) => [
q(Iu Mien),
],
- q(3029) => [
+ q(3026) => [
q(Ibatan),
],
- q(3030) => [
+ q(3027) => [
q(Ivatan),
],
- q(3031) => [
+ q(3028) => [
q(I-Wak),
],
- q(3032) => [
+ q(3029) => [
q(Iwam),
],
- q(3033) => [
+ q(3030) => [
q(Iwur),
],
- q(3034) => [
+ q(3031) => [
q(Sepik Iwam),
],
- q(3035) => [
+ q(3032) => [
q(Ixcatec),
],
- q(3036) => [
+ q(3033) => [
q(Ixil),
],
- q(3037) => [
+ q(3034) => [
q(Iyayu),
],
- q(3038) => [
+ q(3035) => [
q(Mesaka),
],
- q(3039) => [
+ q(3036) => [
q(Yaka (Congo)),
],
- q(3040) => [
+ q(3037) => [
q(Ingrian),
],
- q(3041) => [
+ q(3038) => [
q(Izere),
],
- q(3042) => [
+ q(3039) => [
q(Izii),
],
- q(3043) => [
+ q(3040) => [
q(Jamamadi),
],
- q(3044) => [
+ q(3041) => [
q(Hyam),
],
- q(3045) => [
+ q(3042) => [
q(Popti'),
q(Jakalteko),
],
- q(3046) => [
+ q(3043) => [
q(Jahanka),
],
- q(3047) => [
+ q(3044) => [
q(Yabem),
],
- q(3048) => [
+ q(3045) => [
q(Jara),
],
- q(3049) => [
+ q(3046) => [
q(Jah Hut),
],
- q(3050) => [
+ q(3047) => [
q(Zazao),
],
- q(3051) => [
+ q(3048) => [
q(Jakun),
],
- q(3052) => [
+ q(3049) => [
q(Yalahatan),
],
- q(3053) => [
+ q(3050) => [
q(Jamaican Creole English),
],
- q(3054) => [
+ q(3051) => [
q(Jandai),
],
- q(3055) => [
+ q(3052) => [
q(Yanyuwa),
],
- q(3056) => [
+ q(3053) => [
q(Yaqay),
],
- q(3057) => [
+ q(3054) => [
q(New Caledonian Javanese),
],
- q(3058) => [
+ q(3055) => [
q(Jakati),
],
- q(3059) => [
+ q(3056) => [
q(Yaur),
],
- q(3060) => [
+ q(3057) => [
q(Jambi Malay),
],
- q(3061) => [
+ q(3058) => [
q(Yan-nhangu),
],
- q(3062) => [
+ q(3059) => [
q(Jawe),
],
- q(3063) => [
+ q(3060) => [
q(Judeo-Berber),
],
- q(3064) => [
+ q(3061) => [
q(Badjiri),
],
- q(3065) => [
+ q(3062) => [
q(Arandai),
],
- q(3066) => [
+ q(3063) => [
q(Barikewa),
],
- q(3067) => [
+ q(3064) => [
q(Nafusi),
],
- q(3068) => [
+ q(3065) => [
q(Jofotek-Bromnya),
],
- q(3069) => [
+ q(3066) => [
q(Jabuti),
],
- q(3070) => [
+ q(3067) => [
q(Jukun Takum),
],
- q(3071) => [
+ q(3068) => [
q(Yawijibaya),
],
- q(3072) => [
+ q(3069) => [
q(Jamaican Country Sign Language),
],
- q(3073) => [
+ q(3070) => [
q(Krymchak),
],
- q(3074) => [
+ q(3071) => [
q(Jad),
],
- q(3075) => [
+ q(3072) => [
q(Jadgali),
],
- q(3076) => [
+ q(3073) => [
q(Judeo-Tat),
],
- q(3077) => [
+ q(3074) => [
q(Jebero),
],
- q(3078) => [
+ q(3075) => [
q(Jerung),
],
- q(3079) => [
+ q(3076) => [
q(Jeng),
],
- q(3080) => [
+ q(3077) => [
q(Jeh),
],
- q(3081) => [
+ q(3078) => [
q(Yei),
],
- q(3082) => [
+ q(3079) => [
q(Jeri Kuo),
],
- q(3083) => [
+ q(3080) => [
q(Yelmek),
],
- q(3084) => [
+ q(3081) => [
q(Dza),
],
- q(3085) => [
+ q(3082) => [
q(Jere),
],
- q(3086) => [
+ q(3083) => [
q(Manem),
],
- q(3087) => [
+ q(3084) => [
q(Jonkor Bourmataguil),
],
- q(3088) => [
+ q(3085) => [
q(Ngbee),
],
- q(3089) => [
+ q(3086) => [
q(Judeo-Georgian),
],
- q(3090) => [
+ q(3087) => [
q(Gwak),
],
- q(3091) => [
+ q(3088) => [
q(Ngomba),
],
- q(3092) => [
+ q(3089) => [
q(Jehai),
],
- q(3093) => [
+ q(3090) => [
q(Jhankot Sign Language),
],
- q(3094) => [
+ q(3091) => [
q(Jina),
],
- q(3095) => [
+ q(3092) => [
q(Jibu),
],
- q(3096) => [
+ q(3093) => [
q(Tol),
],
- q(3097) => [
+ q(3094) => [
q(Bu),
],
- q(3098) => [
+ q(3095) => [
q(Jilbe),
],
- q(3099) => [
+ q(3096) => [
q(Djingili),
],
- q(3100) => [
+ q(3097) => [
q(sTodsde),
q(Shangzhai),
],
- q(3101) => [
+ q(3098) => [
q(Jiiddu),
],
- q(3102) => [
+ q(3099) => [
q(Jilim),
],
- q(3103) => [
+ q(3100) => [
q(Jimi (Cameroon)),
],
- q(3104) => [
+ q(3101) => [
q(Jiamao),
],
- q(3105) => [
+ q(3102) => [
q(Guanyinqiao),
q(Lavrung),
],
- q(3106) => [
+ q(3103) => [
q(Jita),
],
- q(3107) => [
+ q(3104) => [
q(Youle Jinuo),
],
- q(3108) => [
+ q(3105) => [
q(Shuar),
],
- q(3109) => [
+ q(3106) => [
q(Buyuan Jinuo),
],
- q(3110) => [
+ q(3107) => [
+ q(Jejueo),
+ ],
+ q(3108) => [
q(Bankal),
],
- q(3111) => [
+ q(3109) => [
q(Mobwa Karen),
],
- q(3112) => [
+ q(3110) => [
q(Kubo),
],
- q(3113) => [
+ q(3111) => [
q(Paku Karen),
],
- q(3114) => [
+ q(3112) => [
q(Koro (India)),
],
- q(3115) => [
+ q(3113) => [
q(Labir),
],
- q(3116) => [
+ q(3114) => [
q(Ngile),
],
- q(3117) => [
+ q(3115) => [
q(Jamaican Sign Language),
],
- q(3118) => [
+ q(3116) => [
q(Dima),
],
- q(3119) => [
+ q(3117) => [
q(Zumbun),
],
- q(3120) => [
+ q(3118) => [
q(Machame),
],
- q(3121) => [
+ q(3119) => [
q(Yamdena),
],
- q(3122) => [
+ q(3120) => [
q(Jimi (Nigeria)),
],
- q(3123) => [
+ q(3121) => [
q(Jumli),
],
- q(3124) => [
+ q(3122) => [
q(Makuri Naga),
],
- q(3125) => [
+ q(3123) => [
q(Kamara),
],
- q(3126) => [
+ q(3124) => [
q(Mashi (Nigeria)),
],
- q(3127) => [
+ q(3125) => [
q(Mouwase),
],
- q(3128) => [
+ q(3126) => [
q(Western Juxtlahuaca Mixtec),
],
- q(3129) => [
+ q(3127) => [
q(Jangshung),
],
- q(3130) => [
+ q(3128) => [
q(Jandavra),
],
- q(3131) => [
+ q(3129) => [
q(Yangman),
],
- q(3132) => [
+ q(3130) => [
q(Janji),
],
- q(3133) => [
+ q(3131) => [
q(Yemsa),
],
- q(3134) => [
+ q(3132) => [
q(Rawat),
],
- q(3135) => [
+ q(3133) => [
q(Jaunsari),
],
- q(3136) => [
+ q(3134) => [
q(Joba),
],
- q(3137) => [
+ q(3135) => [
q(Wojenaka),
],
- q(3138) => [
+ q(3136) => [
q(Jora),
],
- q(3139) => [
+ q(3137) => [
q(Jordanian Sign Language),
],
- q(3140) => [
+ q(3138) => [
q(Jowulu),
],
- q(3141) => [
+ q(3139) => [
q(Jewish Palestinian Aramaic),
],
- q(3142) => [
+ q(3140) => [
q(Jaqaru),
],
- q(3143) => [
+ q(3141) => [
q(Jarai),
],
- q(3144) => [
+ q(3142) => [
q(Jiru),
],
- q(3145) => [
+ q(3143) => [
q(Jorto),
],
- q(3146) => [
+ q(3144) => [
q(Japreria),
],
- q(3147) => [
+ q(3145) => [
q(Japanese Sign Language),
],
- q(3148) => [
+ q(3146) => [
q(Juma),
],
- q(3149) => [
+ q(3147) => [
q(Wannu),
],
- q(3150) => [
+ q(3148) => [
q(Jurchen),
],
- q(3151) => [
+ q(3149) => [
q(Worodougou),
],
- q(3152) => [
+ q(3150) => [
q(Hone),
],
- q(3153) => [
+ q(3151) => [
q(Ngadjuri),
],
- q(3154) => [
+ q(3152) => [
q(Wapan),
],
- q(3155) => [
+ q(3153) => [
q(Jirel),
],
- q(3156) => [
+ q(3154) => [
q(Jumjum),
],
- q(3157) => [
+ q(3155) => [
q(Juang),
],
- q(3158) => [
+ q(3156) => [
q(Jiba),
],
- q(3159) => [
+ q(3157) => [
q(Hupde),
],
- q(3160) => [
+ q(3158) => [
q(Juruna),
],
- q(3161) => [
+ q(3159) => [
q(Jumla Sign Language),
],
- q(3162) => [
+ q(3160) => [
q(Jutish),
],
- q(3163) => [
+ q(3161) => [
q(Ju),
],
- q(3164) => [
+ q(3162) => [
q(Wapha),
],
- q(3165) => [
+ q(3163) => [
q(Juray),
],
- q(3166) => [
+ q(3164) => [
q(Javindo),
],
- q(3167) => [
+ q(3165) => [
q(Caribbean Javanese),
],
- q(3168) => [
+ q(3166) => [
q(Jwira-Pepesa),
],
- q(3169) => [
+ q(3167) => [
q(Jiarong),
],
- q(3170) => [
+ q(3168) => [
q(Judeo-Yemeni Arabic),
],
- q(3171) => [
+ q(3169) => [
q(Jaya),
],
- q(3172) => [
+ q(3170) => [
q(Adara),
],
- q(3173) => [
+ q(3171) => [
q(Ketangalan),
],
- q(3174) => [
+ q(3172) => [
q(Katso),
],
- q(3175) => [
+ q(3173) => [
q(Kajaman),
],
- q(3176) => [
+ q(3174) => [
q(Kara (Central African Republic)),
],
- q(3177) => [
+ q(3175) => [
q(Karekare),
],
- q(3178) => [
+ q(3176) => [
q(Jju),
],
- q(3179) => [
+ q(3177) => [
q(Kayapa Kallahan),
],
- q(3180) => [
+ q(3178) => [
q(Xaasongaxango),
],
- q(3181) => [
+ q(3179) => [
q(Bezhta),
],
- q(3182) => [
+ q(3180) => [
q(Capanahua),
],
- q(3183) => [
+ q(3181) => [
q(Katukina),
],
- q(3184) => [
+ q(3182) => [
q(Kao),
],
- q(3185) => [
+ q(3183) => [
q(Kamayura),
],
- q(3186) => [
+ q(3184) => [
q(Kalarko),
],
- q(3187) => [
+ q(3185) => [
q(Kaxuiana),
],
- q(3188) => [
+ q(3186) => [
q(Kadiweu),
],
- q(3189) => [
+ q(3187) => [
q(Kanju),
],
- q(3190) => [
- q(Kakauhua),
- ],
- q(3191) => [
+ q(3188) => [
q(Khamba),
],
- q(3192) => [
+ q(3189) => [
q(Camsa),
],
- q(3193) => [
+ q(3190) => [
q(Kaptiau),
],
- q(3194) => [
+ q(3191) => [
q(Kari),
],
- q(3195) => [
+ q(3192) => [
q(Grass Koiari),
],
- q(3196) => [
+ q(3193) => [
q(Kanembu),
],
- q(3197) => [
+ q(3194) => [
q(Iwal),
],
- q(3198) => [
+ q(3195) => [
q(Kare (Central African Republic)),
],
- q(3199) => [
+ q(3196) => [
q(Keliko),
],
- q(3200) => [
+ q(3197) => [
q(Kabiye),
],
- q(3201) => [
+ q(3198) => [
q(Kamano),
],
- q(3202) => [
+ q(3199) => [
q(Kafa),
],
- q(3203) => [
+ q(3200) => [
q(Kande),
],
- q(3204) => [
+ q(3201) => [
q(Abadi),
],
- q(3205) => [
+ q(3202) => [
q(Kabutra),
],
- q(3206) => [
+ q(3203) => [
q(Dera (Indonesia)),
],
- q(3207) => [
+ q(3204) => [
q(Kaiep),
],
- q(3208) => [
+ q(3205) => [
q(Ap Ma),
],
- q(3209) => [
+ q(3206) => [
q(Manga Kanuri),
],
- q(3210) => [
+ q(3207) => [
q(Duhwa),
],
- q(3211) => [
+ q(3208) => [
q(Khanty),
],
- q(3212) => [
+ q(3209) => [
q(Kawacha),
],
- q(3213) => [
+ q(3210) => [
q(Lubila),
],
- q(3214) => [
+ q(3211) => [
q(Ngkalmpw Kanum),
],
- q(3215) => [
+ q(3212) => [
q(Kaivi),
],
- q(3216) => [
+ q(3213) => [
q(Ukaan),
],
- q(3217) => [
+ q(3214) => [
q(Tyap),
],
- q(3218) => [
+ q(3215) => [
q(Vono),
],
- q(3219) => [
+ q(3216) => [
q(Kamantan),
],
- q(3220) => [
+ q(3217) => [
q(Kobiana),
],
- q(3221) => [
+ q(3218) => [
q(Kalanga),
],
- q(3222) => [
+ q(3219) => [
q(Kela (Papua New Guinea)),
q(Kala),
],
- q(3223) => [
+ q(3220) => [
q(Gula (Central African Republic)),
],
- q(3224) => [
+ q(3221) => [
q(Nubi),
],
- q(3225) => [
+ q(3222) => [
q(Kinalakna),
],
- q(3226) => [
+ q(3223) => [
q(Kanga),
],
- q(3227) => [
+ q(3224) => [
q(Kamo),
],
- q(3228) => [
+ q(3225) => [
q(Katla),
],
- q(3229) => [
+ q(3226) => [
q(Koenoem),
],
- q(3230) => [
+ q(3227) => [
q(Kaian),
],
- q(3231) => [
+ q(3228) => [
q(Kami (Tanzania)),
],
- q(3232) => [
+ q(3229) => [
q(Kete),
],
- q(3233) => [
+ q(3230) => [
q(Kabwari),
],
- q(3234) => [
+ q(3231) => [
q(Kachama-Ganjule),
],
- q(3235) => [
+ q(3232) => [
q(Korandje),
],
- q(3236) => [
+ q(3233) => [
q(Konongo),
],
- q(3237) => [
+ q(3234) => [
q(Worimi),
],
- q(3238) => [
+ q(3235) => [
q(Kutu),
],
- q(3239) => [
+ q(3236) => [
q(Yankunytjatjara),
],
- q(3240) => [
+ q(3237) => [
q(Makonde),
],
- q(3241) => [
+ q(3238) => [
q(Mamusi),
],
- q(3242) => [
+ q(3239) => [
q(Seba),
],
- q(3243) => [
+ q(3240) => [
q(Tem),
],
- q(3244) => [
+ q(3241) => [
q(Kumam),
],
- q(3245) => [
+ q(3242) => [
q(Karamojong),
],
- q(3246) => [
+ q(3243) => [
q(Numee),
q(Kwenyi),
],
- q(3247) => [
+ q(3244) => [
q(Tsikimba),
],
- q(3248) => [
+ q(3245) => [
q(Kagoma),
],
- q(3249) => [
+ q(3246) => [
q(Kunda),
],
- q(3250) => [
+ q(3247) => [
q(Kaningdon-Nindem),
],
- q(3251) => [
+ q(3248) => [
q(Koch),
],
- q(3252) => [
+ q(3249) => [
q(Karaim),
],
- q(3253) => [
+ q(3250) => [
q(Kuy),
],
- q(3254) => [
+ q(3251) => [
q(Kadaru),
],
- q(3255) => [
+ q(3252) => [
q(Koneraw),
],
- q(3256) => [
+ q(3253) => [
q(Kam),
],
- q(3257) => [
+ q(3254) => [
q(Keder),
q(Keijar),
],
- q(3258) => [
+ q(3255) => [
q(Kwaja),
],
- q(3259) => [
+ q(3256) => [
q(Kabuverdianu),
],
- q(3260) => [
+ q(3257) => [
q(Kele),
],
- q(3261) => [
+ q(3258) => [
q(Keiga),
],
- q(3262) => [
+ q(3259) => [
q(Kerewe),
],
- q(3263) => [
+ q(3260) => [
q(Eastern Keres),
],
- q(3264) => [
+ q(3261) => [
q(Kpessi),
],
- q(3265) => [
+ q(3262) => [
q(Tese),
],
- q(3266) => [
+ q(3263) => [
q(Keak),
],
- q(3267) => [
+ q(3264) => [
q(Kei),
],
- q(3268) => [
+ q(3265) => [
q(Kadar),
],
- q(3269) => [
+ q(3266) => [
q(Kekchi),
],
- q(3270) => [
+ q(3267) => [
q(Kela (Democratic Republic of Congo)),
],
- q(3271) => [
+ q(3268) => [
q(Kemak),
],
- q(3272) => [
+ q(3269) => [
q(Kenyang),
],
- q(3273) => [
+ q(3270) => [
q(Kakwa),
],
- q(3274) => [
+ q(3271) => [
q(Kaikadi),
],
- q(3275) => [
+ q(3272) => [
q(Kamar),
],
- q(3276) => [
+ q(3273) => [
q(Kera),
],
- q(3277) => [
+ q(3274) => [
q(Kugbo),
],
- q(3278) => [
+ q(3275) => [
q(Ket),
],
- q(3279) => [
+ q(3276) => [
q(Akebu),
],
- q(3280) => [
+ q(3277) => [
q(Kanikkaran),
],
- q(3281) => [
+ q(3278) => [
q(West Kewa),
],
- q(3282) => [
+ q(3279) => [
q(Kukna),
],
- q(3283) => [
+ q(3280) => [
q(Kupia),
],
- q(3284) => [
+ q(3281) => [
q(Kukele),
],
- q(3285) => [
+ q(3282) => [
q(Kodava),
],
- q(3286) => [
+ q(3283) => [
q(Northwestern Kolami),
],
- q(3287) => [
+ q(3284) => [
q(Konda-Dora),
],
- q(3288) => [
+ q(3285) => [
q(Korra Koraga),
],
- q(3289) => [
+ q(3286) => [
q(Kota (India)),
],
- q(3290) => [
+ q(3287) => [
q(Koya),
],
- q(3291) => [
+ q(3288) => [
q(Kudiya),
],
- q(3292) => [
+ q(3289) => [
q(Kurichiya),
],
- q(3293) => [
+ q(3290) => [
q(Kannada Kurumba),
],
- q(3294) => [
+ q(3291) => [
q(Kemiehua),
],
- q(3295) => [
+ q(3292) => [
q(Kinnauri),
],
- q(3296) => [
+ q(3293) => [
q(Kung),
],
- q(3297) => [
+ q(3294) => [
q(Khunsari),
],
- q(3298) => [
+ q(3295) => [
q(Kuk),
],
- q(3299) => [
+ q(3296) => [
q(Koro (Cote d'Ivoire)),
],
- q(3300) => [
+ q(3297) => [
q(Korwa),
],
- q(3301) => [
+ q(3298) => [
q(Korku),
],
- q(3302) => [
+ q(3299) => [
q(Kachchi),
],
- q(3303) => [
+ q(3300) => [
q(Bilaspuri),
],
- q(3304) => [
+ q(3301) => [
q(Kanjari),
],
- q(3305) => [
+ q(3302) => [
q(Katkari),
],
- q(3306) => [
+ q(3303) => [
q(Kurmukar),
],
- q(3307) => [
+ q(3304) => [
q(Kharam Naga),
],
- q(3308) => [
+ q(3305) => [
q(Kullu Pahari),
],
- q(3309) => [
+ q(3306) => [
q(Kumaoni),
],
- q(3310) => [
+ q(3307) => [
q(Koromfe),
],
- q(3311) => [
+ q(3308) => [
q(Koyaga),
],
- q(3312) => [
+ q(3309) => [
q(Kawe),
],
- q(3313) => [
+ q(3310) => [
q(Kasseng),
],
- q(3314) => [
+ q(3311) => [
q(Kataang),
],
- q(3315) => [
+ q(3312) => [
q(Komering),
],
- q(3316) => [
+ q(3313) => [
q(Kube),
],
- q(3317) => [
+ q(3314) => [
q(Kusunda),
],
- q(3318) => [
+ q(3315) => [
q(Selangor Sign Language),
],
- q(3319) => [
+ q(3316) => [
q(Gamale Kham),
],
- q(3320) => [
+ q(3317) => [
q(Kaiwa),
],
- q(3321) => [
+ q(3318) => [
q(Kunggari),
],
- q(3322) => [
+ q(3319) => [
q(Karipuna),
],
- q(3323) => [
+ q(3320) => [
q(Karingani),
],
- q(3324) => [
+ q(3321) => [
q(Krongo),
],
- q(3325) => [
+ q(3322) => [
q(Kaingang),
],
- q(3326) => [
+ q(3323) => [
q(Kamoro),
],
- q(3327) => [
+ q(3324) => [
q(Abun),
],
- q(3328) => [
+ q(3325) => [
q(Kumbainggar),
],
- q(3329) => [
+ q(3326) => [
q(Somyev),
],
- q(3330) => [
+ q(3327) => [
q(Kobol),
],
- q(3331) => [
+ q(3328) => [
q(Karas),
],
- q(3332) => [
+ q(3329) => [
q(Karon Dori),
],
- q(3333) => [
+ q(3330) => [
q(Kamaru),
],
- q(3334) => [
+ q(3331) => [
q(Kyerung),
],
- q(3335) => [
+ q(3332) => [
q(Lu),
],
- q(3336) => [
+ q(3333) => [
q(Tukang Besi North),
],
- q(3337) => [
+ q(3334) => [
q(Badi Kanum),
],
- q(3338) => [
+ q(3335) => [
q(Korowai),
],
- q(3339) => [
+ q(3336) => [
q(Khuen),
],
- q(3340) => [
+ q(3337) => [
q(Khams Tibetan),
],
- q(3341) => [
+ q(3338) => [
q(Kehu),
],
- q(3342) => [
+ q(3339) => [
q(Kuturmi),
],
- q(3343) => [
+ q(3340) => [
q(Halh Mongolian),
],
- q(3344) => [
+ q(3341) => [
q(Lusi),
],
- q(3345) => [
+ q(3342) => [
q(Khandesi),
],
- q(3346) => [
+ q(3343) => [
q(Kapori),
q(Kapauri),
],
- q(3347) => [
+ q(3344) => [
q(Koyra Chiini Songhay),
],
- q(3348) => [
+ q(3345) => [
q(Kharia),
],
- q(3349) => [
+ q(3346) => [
q(Kasua),
],
- q(3350) => [
+ q(3347) => [
q(Khamti),
],
- q(3351) => [
+ q(3348) => [
q(Nkhumbi),
],
- q(3352) => [
+ q(3349) => [
q(Khvarshi),
],
- q(3353) => [
+ q(3350) => [
q(Khowar),
],
- q(3354) => [
+ q(3351) => [
q(Kanu),
],
- q(3355) => [
+ q(3352) => [
q(Kele (Democratic Republic of Congo)),
],
- q(3356) => [
+ q(3353) => [
q(Keapara),
],
- q(3357) => [
+ q(3354) => [
q(Kim),
],
- q(3358) => [
+ q(3355) => [
q(Koalib),
],
- q(3359) => [
+ q(3356) => [
q(Kickapoo),
],
- q(3360) => [
+ q(3357) => [
q(Koshin),
],
- q(3361) => [
+ q(3358) => [
q(Kibet),
],
- q(3362) => [
+ q(3359) => [
q(Eastern Parbate Kham),
],
- q(3363) => [
+ q(3360) => [
q(Kimaama),
q(Kimaghima),
],
- q(3364) => [
+ q(3361) => [
q(Kilmeri),
],
- q(3365) => [
+ q(3362) => [
q(Kitsai),
],
- q(3366) => [
+ q(3363) => [
q(Kilivila),
],
- q(3367) => [
+ q(3364) => [
q(Kariya),
],
- q(3368) => [
+ q(3365) => [
q(Karagas),
],
- q(3369) => [
+ q(3366) => [
q(Kiowa),
],
- q(3370) => [
+ q(3367) => [
q(Sheshi Kham),
],
- q(3371) => [
+ q(3368) => [
q(Kosadle),
q(Kosare),
],
- q(3372) => [
+ q(3369) => [
q(Kis),
],
- q(3373) => [
+ q(3370) => [
q(Agob),
],
- q(3374) => [
+ q(3371) => [
q(Kirmanjki (individual language)),
],
- q(3375) => [
+ q(3372) => [
q(Kimbu),
],
- q(3376) => [
+ q(3373) => [
q(Northeast Kiwai),
],
- q(3377) => [
+ q(3374) => [
q(Khiamniungan Naga),
],
- q(3378) => [
+ q(3375) => [
q(Kirikiri),
],
- q(3379) => [
+ q(3376) => [
q(Kisi),
],
- q(3380) => [
+ q(3377) => [
q(Mlap),
],
- q(3381) => [
+ q(3378) => [
q(Q'anjob'al),
q(Kanjobal),
],
- q(3382) => [
+ q(3379) => [
q(Coastal Konjo),
],
- q(3383) => [
+ q(3380) => [
q(Southern Kiwai),
],
- q(3384) => [
+ q(3381) => [
q(Kisar),
],
- q(3385) => [
+ q(3382) => [
q(Khalaj),
],
- q(3386) => [
+ q(3383) => [
q(Khmu),
],
- q(3387) => [
+ q(3384) => [
q(Khakas),
],
- q(3388) => [
+ q(3385) => [
q(Zabana),
],
- q(3389) => [
+ q(3386) => [
q(Khinalugh),
],
- q(3390) => [
+ q(3387) => [
q(Highland Konjo),
],
- q(3391) => [
+ q(3388) => [
q(Western Parbate Kham),
],
- q(3392) => [
+ q(3389) => [
q(Khang),
],
- q(3393) => [
+ q(3390) => [
q(Kunjen),
],
- q(3394) => [
+ q(3391) => [
q(Harijan Kinnauri),
],
- q(3395) => [
+ q(3392) => [
q(Pwo Eastern Karen),
],
- q(3396) => [
+ q(3393) => [
q(Western Keres),
],
- q(3397) => [
+ q(3394) => [
q(Kurudu),
],
- q(3398) => [
+ q(3395) => [
q(East Kewa),
],
- q(3399) => [
+ q(3396) => [
q(Phrae Pwo Karen),
],
- q(3400) => [
+ q(3397) => [
q(Kashaya),
],
- q(3401) => [
+ q(3398) => [
+ q(Kaikavian Literary Language),
+ ],
+ q(3399) => [
q(Ramopa),
],
- q(3402) => [
+ q(3400) => [
q(Erave),
],
- q(3403) => [
+ q(3401) => [
q(Bumthangkha),
],
- q(3404) => [
+ q(3402) => [
q(Kakanda),
],
- q(3405) => [
+ q(3403) => [
q(Kwerisa),
],
- q(3406) => [
+ q(3404) => [
q(Odoodee),
],
- q(3407) => [
+ q(3405) => [
q(Kinuku),
],
- q(3408) => [
+ q(3406) => [
q(Kakabe),
],
- q(3409) => [
+ q(3407) => [
q(Kalaktang Monpa),
],
- q(3410) => [
+ q(3408) => [
q(Mabaka Valley Kalinga),
],
- q(3411) => [
+ q(3409) => [
q(Khun),
],
- q(3412) => [
+ q(3410) => [
q(Kagulu),
],
- q(3413) => [
+ q(3411) => [
q(Kako),
],
- q(3414) => [
+ q(3412) => [
q(Kokota),
],
- q(3415) => [
+ q(3413) => [
q(Kosarek Yale),
],
- q(3416) => [
+ q(3414) => [
q(Kiong),
],
- q(3417) => [
+ q(3415) => [
q(Kon Keu),
],
- q(3418) => [
+ q(3416) => [
q(Karko),
],
- q(3419) => [
+ q(3417) => [
q(Gugubera),
],
- q(3420) => [
+ q(3418) => [
q(Kaiku),
],
- q(3421) => [
+ q(3419) => [
q(Kir-Balar),
],
- q(3422) => [
+ q(3420) => [
q(Giiwo),
],
- q(3423) => [
+ q(3421) => [
q(Koi),
],
- q(3424) => [
+ q(3422) => [
q(Tumi),
],
- q(3425) => [
+ q(3423) => [
q(Kangean),
],
- q(3426) => [
+ q(3424) => [
q(Teke-Kukuya),
],
- q(3427) => [
+ q(3425) => [
q(Kohin),
],
- q(3428) => [
+ q(3426) => [
q(Guguyimidjir),
],
- q(3429) => [
+ q(3427) => [
q(Kaska),
],
- q(3430) => [
+ q(3428) => [
q(Klamath-Modoc),
],
- q(3431) => [
+ q(3429) => [
q(Kiliwa),
],
- q(3432) => [
+ q(3430) => [
q(Kolbila),
],
- q(3433) => [
+ q(3431) => [
q(Gamilaraay),
],
- q(3434) => [
+ q(3432) => [
q(Kulung (Nepal)),
],
- q(3435) => [
+ q(3433) => [
q(Kendeje),
],
- q(3436) => [
+ q(3434) => [
q(Tagakaulo),
],
- q(3437) => [
+ q(3435) => [
q(Weliki),
],
- q(3438) => [
+ q(3436) => [
q(Kalumpang),
],
- q(3439) => [
+ q(3437) => [
q(Turkic Khalaj),
],
- q(3440) => [
+ q(3438) => [
q(Kono (Nigeria)),
],
- q(3441) => [
+ q(3439) => [
q(Kagan Kalagan),
],
- q(3442) => [
+ q(3440) => [
q(Migum),
],
- q(3443) => [
+ q(3441) => [
q(Kalenjin),
],
- q(3444) => [
+ q(3442) => [
q(Kapya),
],
- q(3445) => [
+ q(3443) => [
q(Kamasa),
],
- q(3446) => [
+ q(3444) => [
q(Rumu),
],
- q(3447) => [
+ q(3445) => [
q(Khaling),
],
- q(3448) => [
+ q(3446) => [
q(Kalasha),
],
- q(3449) => [
+ q(3447) => [
q(Nukna),
],
- q(3450) => [
+ q(3448) => [
q(Klao),
],
- q(3451) => [
+ q(3449) => [
q(Maskelynes),
],
- q(3452) => [
+ q(3450) => [
q(Lindu),
],
- q(3453) => [
+ q(3451) => [
q(Koluwawa),
],
- q(3454) => [
+ q(3452) => [
q(Kalao),
],
- q(3455) => [
+ q(3453) => [
q(Kabola),
],
- q(3456) => [
+ q(3454) => [
q(Konni),
],
- q(3457) => [
+ q(3455) => [
q(Southern Dong),
],
- q(3458) => [
+ q(3456) => [
q(Majukayang Kalinga),
],
- q(3459) => [
+ q(3457) => [
q(Bakole),
],
- q(3460) => [
+ q(3458) => [
q(Kare (Papua New Guinea)),
],
- q(3461) => [
+ q(3459) => [
q(Kate),
],
- q(3462) => [
+ q(3460) => [
q(Kalam),
],
- q(3463) => [
+ q(3461) => [
q(Kami (Nigeria)),
],
- q(3464) => [
+ q(3462) => [
q(Kumarbhag Paharia),
],
- q(3465) => [
+ q(3463) => [
q(Limos Kalinga),
],
- q(3466) => [
+ q(3464) => [
q(Tanudan Kalinga),
],
- q(3467) => [
+ q(3465) => [
q(Kom (India)),
],
- q(3468) => [
+ q(3466) => [
q(Awtuw),
],
- q(3469) => [
+ q(3467) => [
q(Kwoma),
],
- q(3470) => [
+ q(3468) => [
q(Gimme),
],
- q(3471) => [
+ q(3469) => [
q(Kwama),
],
- q(3472) => [
+ q(3470) => [
q(Northern Kurdish),
],
- q(3473) => [
+ q(3471) => [
q(Kamasau),
],
- q(3474) => [
+ q(3472) => [
q(Kemtuik),
],
- q(3475) => [
+ q(3473) => [
q(Kanite),
],
- q(3476) => [
+ q(3474) => [
q(Karipuna Creole French),
],
- q(3477) => [
+ q(3475) => [
q(Komo (Democratic Republic of Congo)),
],
- q(3478) => [
+ q(3476) => [
q(Waboda),
],
- q(3479) => [
+ q(3477) => [
q(Koma),
],
- q(3480) => [
+ q(3478) => [
q(Khorasani Turkish),
],
- q(3481) => [
+ q(3479) => [
q(Dera (Nigeria)),
],
- q(3482) => [
+ q(3480) => [
q(Lubuagan Kalinga),
],
- q(3483) => [
+ q(3481) => [
q(Central Kanuri),
],
- q(3484) => [
+ q(3482) => [
q(Konda),
],
- q(3485) => [
+ q(3483) => [
q(Kankanaey),
],
- q(3486) => [
+ q(3484) => [
q(Mankanya),
],
- q(3487) => [
+ q(3485) => [
q(Koongo),
],
- q(3488) => [
+ q(3486) => [
q(Kanufi),
],
- q(3489) => [
+ q(3487) => [
q(Western Kanjobal),
],
- q(3490) => [
+ q(3488) => [
q(Kuranko),
],
- q(3491) => [
+ q(3489) => [
q(Keninjal),
],
- q(3492) => [
+ q(3490) => [
q(Kanamari),
],
- q(3493) => [
+ q(3491) => [
q(Konkani (individual language)),
],
- q(3494) => [
+ q(3492) => [
q(Kono (Sierra Leone)),
],
- q(3495) => [
+ q(3493) => [
q(Kwanja),
],
- q(3496) => [
+ q(3494) => [
q(Kintaq),
],
- q(3497) => [
+ q(3495) => [
q(Kaningra),
],
- q(3498) => [
+ q(3496) => [
q(Kensiu),
],
- q(3499) => [
+ q(3497) => [
q(Panoan Katukina),
],
- q(3500) => [
+ q(3498) => [
q(Kono (Guinea)),
],
- q(3501) => [
+ q(3499) => [
q(Tabo),
],
- q(3502) => [
+ q(3500) => [
q(Kung-Ekoka),
],
- q(3503) => [
+ q(3501) => [
q(Kendayan),
q(Salako),
],
- q(3504) => [
+ q(3502) => [
q(Kanyok),
],
- q(3505) => [
+ q(3503) => [
q(Kalamse),
],
- q(3506) => [
+ q(3504) => [
q(Konomala),
],
- q(3507) => [
+ q(3505) => [
q(Kpati),
],
- q(3508) => [
+ q(3506) => [
q(Kodi),
],
- q(3509) => [
+ q(3507) => [
q(Kacipo-Balesi),
],
- q(3510) => [
+ q(3508) => [
q(Kubi),
],
- q(3511) => [
+ q(3509) => [
q(Cogui),
q(Kogi),
],
- q(3512) => [
+ q(3510) => [
q(Koyo),
],
- q(3513) => [
+ q(3511) => [
q(Komi-Permyak),
],
- q(3514) => [
- q(Sara Dunjo),
- ],
- q(3515) => [
+ q(3512) => [
q(Kol (Papua New Guinea)),
],
- q(3516) => [
+ q(3513) => [
q(Konzo),
],
- q(3517) => [
+ q(3514) => [
q(Waube),
],
- q(3518) => [
+ q(3515) => [
q(Kota (Gabon)),
],
- q(3519) => [
+ q(3516) => [
q(Lagwan),
],
- q(3520) => [
+ q(3517) => [
q(Koke),
],
- q(3521) => [
+ q(3518) => [
q(Kudu-Camo),
],
- q(3522) => [
+ q(3519) => [
q(Kugama),
],
- q(3523) => [
+ q(3520) => [
q(Coxima),
],
- q(3524) => [
+ q(3521) => [
q(Koyukon),
],
- q(3525) => [
+ q(3522) => [
q(Korak),
],
- q(3526) => [
+ q(3523) => [
q(Kutto),
],
- q(3527) => [
+ q(3524) => [
q(Mullu Kurumba),
],
- q(3528) => [
+ q(3525) => [
q(Curripaco),
],
- q(3529) => [
+ q(3526) => [
q(Koba),
],
- q(3530) => [
+ q(3527) => [
q(Komba),
],
- q(3531) => [
+ q(3528) => [
q(Kapingamarangi),
],
- q(3532) => [
+ q(3529) => [
q(Kplang),
],
- q(3533) => [
+ q(3530) => [
q(Kofei),
],
- q(3534) => [
+ q(3531) => [
q(Karaja),
],
- q(3535) => [
+ q(3532) => [
q(Kpan),
],
- q(3536) => [
+ q(3533) => [
q(Kpala),
],
- q(3537) => [
+ q(3534) => [
q(Koho),
],
- q(3538) => [
+ q(3535) => [
q(Kepkiriwat),
],
- q(3539) => [
+ q(3536) => [
q(Ikposo),
],
- q(3540) => [
+ q(3537) => [
q(Korupun-Sela),
],
- q(3541) => [
+ q(3538) => [
q(Korafe-Yegha),
],
- q(3542) => [
+ q(3539) => [
q(Tehit),
],
- q(3543) => [
+ q(3540) => [
q(Karata),
],
- q(3544) => [
+ q(3541) => [
q(Kafoa),
],
- q(3545) => [
+ q(3542) => [
q(Komi-Zyrian),
],
- q(3546) => [
+ q(3543) => [
q(Kobon),
],
- q(3547) => [
+ q(3544) => [
q(Mountain Koiali),
],
- q(3548) => [
+ q(3545) => [
q(Koryak),
],
- q(3549) => [
+ q(3546) => [
q(Kupsabiny),
],
- q(3550) => [
+ q(3547) => [
q(Mum),
],
- q(3551) => [
+ q(3548) => [
q(Kovai),
],
- q(3552) => [
+ q(3549) => [
q(Doromu-Koki),
],
- q(3553) => [
+ q(3550) => [
q(Koy Sanjaq Surat),
],
- q(3554) => [
+ q(3551) => [
q(Kalagan),
],
- q(3555) => [
+ q(3552) => [
q(Kakabai),
],
- q(3556) => [
+ q(3553) => [
q(Khe),
],
- q(3557) => [
+ q(3554) => [
q(Kisankasa),
],
- q(3558) => [
+ q(3555) => [
q(Koitabu),
],
- q(3559) => [
+ q(3556) => [
q(Koromira),
],
- q(3560) => [
+ q(3557) => [
q(Kotafon Gbe),
],
- q(3561) => [
+ q(3558) => [
q(Kyenele),
],
- q(3562) => [
+ q(3559) => [
q(Khisa),
],
- q(3563) => [
+ q(3560) => [
q(Kaonde),
],
- q(3564) => [
+ q(3561) => [
q(Eastern Krahn),
],
- q(3565) => [
+ q(3562) => [
q(Kimre),
],
- q(3566) => [
+ q(3563) => [
q(Krenak),
],
- q(3567) => [
+ q(3564) => [
q(Kimaragang),
],
- q(3568) => [
+ q(3565) => [
q(Northern Kissi),
],
- q(3569) => [
+ q(3566) => [
q(Klias River Kadazan),
],
- q(3570) => [
+ q(3567) => [
q(Seroa),
],
- q(3571) => [
+ q(3568) => [
q(Okolod),
],
- q(3572) => [
+ q(3569) => [
q(Kandas),
],
- q(3573) => [
+ q(3570) => [
q(Mser),
],
- q(3574) => [
+ q(3571) => [
q(Koorete),
],
- q(3575) => [
+ q(3572) => [
q(Korana),
],
- q(3576) => [
+ q(3573) => [
q(Kumhali),
],
- q(3577) => [
+ q(3574) => [
q(Karkin),
],
- q(3578) => [
+ q(3575) => [
q(Kairui-Midiki),
],
- q(3579) => [
+ q(3576) => [
q(Panara),
],
- q(3580) => [
+ q(3577) => [
q(Koro (Vanuatu)),
],
- q(3581) => [
+ q(3578) => [
q(Kurama),
],
- q(3582) => [
+ q(3579) => [
q(Krio),
],
- q(3583) => [
+ q(3580) => [
q(Kinaray-A),
],
- q(3584) => [
+ q(3581) => [
q(Kerek),
],
- q(3585) => [
+ q(3582) => [
q(Krim),
],
- q(3586) => [
+ q(3583) => [
q(Sapo),
],
- q(3587) => [
+ q(3584) => [
q(Korop),
],
- q(3588) => [
+ q(3585) => [
q(Kru'ng 2),
],
- q(3589) => [
+ q(3586) => [
q(Gbaya (Sudan)),
],
- q(3590) => [
+ q(3587) => [
q(Tumari Kanuri),
],
- q(3591) => [
+ q(3588) => [
q(Kavet),
],
- q(3592) => [
+ q(3589) => [
q(Western Krahn),
],
- q(3593) => [
+ q(3590) => [
q(Karon),
],
- q(3594) => [
+ q(3591) => [
q(Kryts),
],
- q(3595) => [
+ q(3592) => [
q(Sota Kanum),
],
- q(3596) => [
+ q(3593) => [
q(Shuwa-Zamani),
],
- q(3597) => [
+ q(3594) => [
q(Shambala),
],
- q(3598) => [
+ q(3595) => [
q(Southern Kalinga),
],
- q(3599) => [
+ q(3596) => [
q(Kuanua),
],
- q(3600) => [
+ q(3597) => [
q(Kuni),
],
- q(3601) => [
+ q(3598) => [
q(Bafia),
],
- q(3602) => [
+ q(3599) => [
q(Kusaghe),
],
- q(3603) => [
+ q(3600) => [
q(Kolsch),
],
- q(3604) => [
+ q(3601) => [
q(Krisa),
q(I'saka),
],
- q(3605) => [
+ q(3602) => [
q(Uare),
],
- q(3606) => [
+ q(3603) => [
q(Kansa),
],
- q(3607) => [
+ q(3604) => [
q(Kumalu),
],
- q(3608) => [
+ q(3605) => [
q(Kumba),
],
- q(3609) => [
+ q(3606) => [
q(Kasiguranin),
],
- q(3610) => [
+ q(3607) => [
q(Kofa),
],
- q(3611) => [
+ q(3608) => [
q(Kaba),
],
- q(3612) => [
+ q(3609) => [
q(Kwaami),
],
- q(3613) => [
+ q(3610) => [
q(Borong),
],
- q(3614) => [
+ q(3611) => [
q(Southern Kisi),
],
- q(3615) => [
+ q(3612) => [
q(Winye),
],
- q(3616) => [
+ q(3613) => [
q(Khamyang),
],
- q(3617) => [
+ q(3614) => [
q(Kusu),
],
- q(3618) => [
+ q(3615) => [
q(S'gaw Karen),
],
- q(3619) => [
+ q(3616) => [
q(Kedang),
],
- q(3620) => [
+ q(3617) => [
q(Kharia Thar),
],
- q(3621) => [
+ q(3618) => [
q(Kodaku),
],
- q(3622) => [
+ q(3619) => [
q(Katua),
],
- q(3623) => [
+ q(3620) => [
q(Kambaata),
],
- q(3624) => [
+ q(3621) => [
q(Kholok),
],
- q(3625) => [
+ q(3622) => [
q(Kokata),
],
- q(3626) => [
+ q(3623) => [
q(Nubri),
],
- q(3627) => [
+ q(3624) => [
q(Kwami),
],
- q(3628) => [
+ q(3625) => [
q(Kalkutung),
],
- q(3629) => [
+ q(3626) => [
q(Karanga),
],
- q(3630) => [
+ q(3627) => [
q(North Muyu),
],
- q(3631) => [
+ q(3628) => [
q(Plapo Krumen),
],
- q(3632) => [
+ q(3629) => [
q(Kaniet),
],
- q(3633) => [
+ q(3630) => [
q(Koroshi),
],
- q(3634) => [
+ q(3631) => [
q(Kurti),
],
- q(3635) => [
+ q(3632) => [
q(Karitiana),
],
- q(3636) => [
+ q(3633) => [
q(Kuot),
],
- q(3637) => [
+ q(3634) => [
q(Kaduo),
],
- q(3638) => [
+ q(3635) => [
q(Katabaga),
],
- q(3639) => [
+ q(3636) => [
q(Kota Marudu Tinagas),
],
- q(3640) => [
+ q(3637) => [
q(South Muyu),
],
- q(3641) => [
+ q(3638) => [
q(Ketum),
],
- q(3642) => [
+ q(3639) => [
q(Kituba (Democratic Republic of Congo)),
],
- q(3643) => [
+ q(3640) => [
q(Eastern Katu),
],
- q(3644) => [
+ q(3641) => [
q(Kato),
],
- q(3645) => [
+ q(3642) => [
q(Kaxarari),
],
- q(3646) => [
+ q(3643) => [
q(Kango (Bas-Uele District)),
],
- q(3647) => [
+ q(3644) => [
q(Ju/'hoan),
],
- q(3648) => [
+ q(3645) => [
q(Kutep),
],
- q(3649) => [
+ q(3646) => [
q(Kwinsu),
],
- q(3650) => [
+ q(3647) => [
q('Auhelawa),
],
- q(3651) => [
- q(Kuman),
+ q(3648) => [
+ q(Kuman (Papua New Guinea)),
],
- q(3652) => [
+ q(3649) => [
q(Western Katu),
],
- q(3653) => [
+ q(3650) => [
q(Kupa),
],
- q(3654) => [
+ q(3651) => [
q(Kushi),
],
- q(3655) => [
+ q(3652) => [
q(Kuikuro-Kalapalo),
],
- q(3656) => [
+ q(3653) => [
q(Kuria),
],
- q(3657) => [
+ q(3654) => [
q(Kepo'),
],
- q(3658) => [
+ q(3655) => [
q(Kulere),
],
- q(3659) => [
+ q(3656) => [
q(Kunama),
],
- q(3660) => [
+ q(3657) => [
q(Kumukio),
],
- q(3661) => [
+ q(3658) => [
q(Kunimaipa),
],
- q(3662) => [
+ q(3659) => [
q(Kusaal),
],
- q(3663) => [
+ q(3660) => [
q(Upper Kuskokwim),
],
- q(3664) => [
+ q(3661) => [
q(Kur),
],
- q(3665) => [
+ q(3662) => [
q(Kpagua),
],
- q(3666) => [
+ q(3663) => [
q(Kukatja),
],
- q(3667) => [
+ q(3664) => [
q(Kuuku-Ya'u),
],
- q(3668) => [
+ q(3665) => [
q(Kunza),
],
- q(3669) => [
+ q(3666) => [
q(Bagvalal),
],
- q(3670) => [
+ q(3667) => [
q(Kubu),
],
- q(3671) => [
+ q(3668) => [
q(Kove),
],
- q(3672) => [
+ q(3669) => [
q(Kui (Indonesia)),
],
- q(3673) => [
+ q(3670) => [
q(Kalabakan),
],
- q(3674) => [
+ q(3671) => [
q(Kabalai),
],
- q(3675) => [
+ q(3672) => [
q(Kuni-Boazi),
],
- q(3676) => [
+ q(3673) => [
q(Komodo),
],
- q(3677) => [
+ q(3674) => [
q(Kwang),
],
- q(3678) => [
+ q(3675) => [
q(Psikye),
],
- q(3679) => [
+ q(3676) => [
q(Korean Sign Language),
],
- q(3680) => [
+ q(3677) => [
q(Kayaw),
],
- q(3681) => [
+ q(3678) => [
q(Kendem),
],
- q(3682) => [
+ q(3679) => [
q(Border Kuna),
],
- q(3683) => [
+ q(3680) => [
q(Dobel),
],
- q(3684) => [
+ q(3681) => [
q(Kompane),
],
- q(3685) => [
+ q(3682) => [
q(Geba Karen),
],
- q(3686) => [
+ q(3683) => [
q(Kerinci),
],
- q(3687) => [
+ q(3684) => [
q(Kunggara),
],
- q(3688) => [
+ q(3685) => [
q(Lahta Karen),
q(Lahta),
],
- q(3689) => [
+ q(3686) => [
q(Yinbaw Karen),
],
- q(3690) => [
+ q(3687) => [
q(Kola),
],
- q(3691) => [
+ q(3688) => [
q(Wersing),
],
- q(3692) => [
+ q(3689) => [
q(Parkari Koli),
],
- q(3693) => [
+ q(3690) => [
q(Yintale Karen),
q(Yintale),
],
- q(3694) => [
+ q(3691) => [
q(Tsakwambo),
q(Tsaukambo),
],
- q(3695) => [
+ q(3692) => [
q(Daw),
],
- q(3696) => [
+ q(3693) => [
q(Kwa),
],
- q(3697) => [
+ q(3694) => [
q(Likwala),
],
- q(3698) => [
+ q(3695) => [
q(Kwaio),
],
- q(3699) => [
+ q(3696) => [
q(Kwerba),
],
- q(3700) => [
+ q(3697) => [
q(Kwara'ae),
],
- q(3701) => [
+ q(3698) => [
q(Sara Kaba Deme),
],
- q(3702) => [
+ q(3699) => [
q(Kowiai),
],
- q(3703) => [
+ q(3700) => [
q(Awa-Cuaiquer),
],
- q(3704) => [
+ q(3701) => [
q(Kwanga),
],
- q(3705) => [
+ q(3702) => [
q(Kwakiutl),
],
- q(3706) => [
+ q(3703) => [
q(Kofyar),
],
- q(3707) => [
+ q(3704) => [
q(Kwambi),
],
- q(3708) => [
+ q(3705) => [
q(Kwangali),
],
- q(3709) => [
+ q(3706) => [
q(Kwomtari),
],
- q(3710) => [
+ q(3707) => [
q(Kodia),
],
- q(3711) => [
- q(Kwak),
- ],
- q(3712) => [
+ q(3708) => [
q(Kwer),
],
- q(3713) => [
+ q(3709) => [
q(Kwese),
],
- q(3714) => [
+ q(3710) => [
q(Kwesten),
],
- q(3715) => [
+ q(3711) => [
q(Kwakum),
],
- q(3716) => [
+ q(3712) => [
q(Sara Kaba Naa),
],
- q(3717) => [
+ q(3713) => [
q(Kwinti),
],
- q(3718) => [
+ q(3714) => [
q(Khirwar),
],
- q(3719) => [
+ q(3715) => [
q(San Salvador Kongo),
],
- q(3720) => [
+ q(3716) => [
q(Kwadi),
],
- q(3721) => [
+ q(3717) => [
q(Kairiru),
],
- q(3722) => [
+ q(3718) => [
q(Krobu),
],
- q(3723) => [
+ q(3719) => [
q(Konso),
q(Khonso),
],
- q(3724) => [
+ q(3720) => [
q(Brunei),
],
- q(3725) => [
- q(Kakihum),
- ],
- q(3726) => [
+ q(3721) => [
q(Manumanaw Karen),
q(Manumanaw),
],
- q(3727) => [
+ q(3722) => [
q(Karo (Ethiopia)),
],
- q(3728) => [
+ q(3723) => [
q(Keningau Murut),
],
- q(3729) => [
+ q(3724) => [
q(Kulfa),
],
- q(3730) => [
+ q(3725) => [
q(Zayein Karen),
],
- q(3731) => [
+ q(3726) => [
q(Nepali Kurux),
],
- q(3732) => [
+ q(3727) => [
q(Northern Khmer),
],
- q(3733) => [
+ q(3728) => [
q(Kanowit-Tanjong Melanau),
],
- q(3734) => [
+ q(3729) => [
q(Kanoe),
],
- q(3735) => [
+ q(3730) => [
q(Wadiyara Koli),
],
- q(3736) => [
+ q(3731) => [
q(Smarky Kanum),
],
- q(3737) => [
+ q(3732) => [
q(Koro (Papua New Guinea)),
],
- q(3738) => [
+ q(3733) => [
q(Kangjia),
],
- q(3739) => [
+ q(3734) => [
q(Koiwat),
],
- q(3740) => [
+ q(3735) => [
q(Kui (India)),
],
- q(3741) => [
+ q(3736) => [
q(Kuvi),
],
- q(3742) => [
+ q(3737) => [
q(Konai),
],
- q(3743) => [
+ q(3738) => [
q(Likuba),
],
- q(3744) => [
+ q(3739) => [
q(Kayong),
],
- q(3745) => [
+ q(3740) => [
q(Kerewo),
],
- q(3746) => [
+ q(3741) => [
q(Kwaya),
],
- q(3747) => [
+ q(3742) => [
q(Butbut Kalinga),
],
- q(3748) => [
+ q(3743) => [
q(Kyaka),
],
- q(3749) => [
+ q(3744) => [
q(Karey),
],
- q(3750) => [
+ q(3745) => [
q(Krache),
],
- q(3751) => [
+ q(3746) => [
q(Kouya),
],
- q(3752) => [
+ q(3747) => [
q(Keyagana),
],
- q(3753) => [
+ q(3748) => [
q(Karok),
],
- q(3754) => [
+ q(3749) => [
q(Kiput),
],
- q(3755) => [
+ q(3750) => [
q(Karao),
],
- q(3756) => [
+ q(3751) => [
q(Kamayo),
],
- q(3757) => [
+ q(3752) => [
q(Kalapuya),
],
- q(3758) => [
+ q(3753) => [
q(Kpatili),
],
- q(3759) => [
+ q(3754) => [
q(Northern Binukidnon),
],
- q(3760) => [
+ q(3755) => [
q(Kelon),
],
- q(3761) => [
+ q(3756) => [
q(Kang),
],
- q(3762) => [
+ q(3757) => [
q(Kenga),
],
- q(3763) => [
+ q(3758) => [
q(Kuruaya),
],
- q(3764) => [
+ q(3759) => [
q(Baram Kayan),
],
- q(3765) => [
+ q(3760) => [
q(Kayagar),
],
- q(3766) => [
+ q(3761) => [
q(Western Kayah),
],
- q(3767) => [
+ q(3762) => [
q(Kayort),
],
- q(3768) => [
+ q(3763) => [
q(Kudmali),
],
- q(3769) => [
+ q(3764) => [
q(Rapoisi),
],
- q(3770) => [
+ q(3765) => [
q(Kambaira),
],
- q(3771) => [
+ q(3766) => [
q(Kayabi),
],
- q(3772) => [
+ q(3767) => [
q(Western Karaboro),
],
- q(3773) => [
+ q(3768) => [
q(Kaibobo),
],
- q(3774) => [
+ q(3769) => [
q(Bondoukou Kulango),
],
- q(3775) => [
+ q(3770) => [
q(Kadai),
],
- q(3776) => [
+ q(3771) => [
q(Kosena),
],
- q(3777) => [
+ q(3772) => [
q(Da'a Kaili),
],
- q(3778) => [
+ q(3773) => [
q(Kikai),
],
- q(3779) => [
+ q(3774) => [
q(Kelabit),
],
- q(3780) => [
+ q(3775) => [
q(Coastal Kadazan),
],
- q(3781) => [
+ q(3776) => [
q(Kazukuru),
],
- q(3782) => [
+ q(3777) => [
q(Kayeli),
],
- q(3783) => [
+ q(3778) => [
q(Kais),
],
- q(3784) => [
+ q(3779) => [
q(Kokola),
],
- q(3785) => [
+ q(3780) => [
q(Kaningi),
],
- q(3786) => [
+ q(3781) => [
q(Kaidipang),
],
- q(3787) => [
+ q(3782) => [
q(Kaike),
],
- q(3788) => [
+ q(3783) => [
q(Karang),
],
- q(3789) => [
+ q(3784) => [
q(Sugut Dusun),
],
- q(3790) => [
+ q(3785) => [
q(Tambunan Dusun),
],
- q(3791) => [
+ q(3786) => [
q(Kayupulau),
],
- q(3792) => [
+ q(3787) => [
q(Komyandaret),
],
- q(3793) => [
+ q(3788) => [
q(Kariri-Xoco),
],
- q(3794) => [
+ q(3789) => [
q(Kamarian),
],
- q(3795) => [
+ q(3790) => [
q(Kango (Tshopo District)),
],
- q(3796) => [
+ q(3791) => [
q(Kalabra),
],
- q(3797) => [
+ q(3792) => [
q(Southern Subanen),
],
- q(3798) => [
+ q(3793) => [
q(Linear A),
],
- q(3799) => [
+ q(3794) => [
q(Lacandon),
],
- q(3800) => [
+ q(3795) => [
q(Pattani),
],
- q(3801) => [
+ q(3796) => [
q(Lafofa),
],
- q(3802) => [
+ q(3797) => [
q(Langi),
],
- q(3803) => [
+ q(3798) => [
q(Lambya),
],
- q(3804) => [
+ q(3799) => [
q(Lango (Uganda)),
],
- q(3805) => [
+ q(3800) => [
q(Laka (Nigeria)),
],
- q(3806) => [
+ q(3801) => [
q(Lalia),
],
- q(3807) => [
+ q(3802) => [
q(Laru),
],
- q(3808) => [
+ q(3803) => [
q(Laka (Chad)),
],
- q(3809) => [
+ q(3804) => [
q(Qabiao),
],
- q(3810) => [
+ q(3805) => [
q(Larteh),
],
- q(3811) => [
+ q(3806) => [
q(Lama (Togo)),
],
- q(3812) => [
+ q(3807) => [
q(Laba),
],
- q(3813) => [
+ q(3808) => [
q(Lauje),
],
- q(3814) => [
+ q(3809) => [
q(Tiwa),
],
- q(3815) => [
- q(Lama (Myanmar)),
+ q(3810) => [
+ q(Lama Bai),
],
- q(3816) => [
+ q(3811) => [
q(Aribwatsa),
],
- q(3817) => [
+ q(3812) => [
q(Lui),
],
- q(3818) => [
+ q(3813) => [
q(Label),
],
- q(3819) => [
+ q(3814) => [
q(Lakkia),
],
- q(3820) => [
+ q(3815) => [
q(Lak),
],
- q(3821) => [
+ q(3816) => [
q(Tinani),
],
- q(3822) => [
+ q(3817) => [
q(Laopang),
],
- q(3823) => [
+ q(3818) => [
q(La'bi),
],
- q(3824) => [
+ q(3819) => [
q(Ladakhi),
],
- q(3825) => [
+ q(3820) => [
q(Central Bontok),
],
- q(3826) => [
+ q(3821) => [
q(Libon Bikol),
],
- q(3827) => [
+ q(3822) => [
q(Lodhi),
],
- q(3828) => [
+ q(3823) => [
q(Lamet),
],
- q(3829) => [
+ q(3824) => [
q(Laven),
],
- q(3830) => [
+ q(3825) => [
q(Wampar),
],
- q(3831) => [
+ q(3826) => [
q(Lohorung),
],
- q(3832) => [
+ q(3827) => [
q(Libyan Sign Language),
],
- q(3833) => [
+ q(3828) => [
q(Lachi),
],
- q(3834) => [
+ q(3829) => [
q(Labu),
],
- q(3835) => [
+ q(3830) => [
q(Lavatbura-Lamusong),
],
- q(3836) => [
+ q(3831) => [
q(Tolaki),
],
- q(3837) => [
+ q(3832) => [
q(Lawangan),
],
- q(3838) => [
+ q(3833) => [
q(Lamu-Lamu),
],
- q(3839) => [
+ q(3834) => [
q(Lardil),
],
- q(3840) => [
+ q(3835) => [
q(Legenyem),
],
- q(3841) => [
+ q(3836) => [
q(Lola),
],
- q(3842) => [
+ q(3837) => [
q(Loncong),
],
- q(3843) => [
+ q(3838) => [
q(Lubu),
],
- q(3844) => [
+ q(3839) => [
q(Luchazi),
],
- q(3845) => [
+ q(3840) => [
q(Lisela),
],
- q(3846) => [
+ q(3841) => [
q(Tungag),
],
- q(3847) => [
+ q(3842) => [
q(Western Lawa),
],
- q(3848) => [
+ q(3843) => [
q(Luhu),
],
- q(3849) => [
+ q(3844) => [
q(Lisabata-Nuniali),
],
- q(3850) => [
+ q(3845) => [
q(Kla-Dan),
],
- q(3851) => [
+ q(3846) => [
q(Duya),
],
- q(3852) => [
+ q(3847) => [
q(Luri),
],
- q(3853) => [
+ q(3848) => [
q(Lenyima),
],
- q(3854) => [
+ q(3849) => [
q(Lamja-Dengsa-Tola),
],
- q(3855) => [
+ q(3850) => [
q(Laari),
],
- q(3856) => [
+ q(3851) => [
q(Lemoro),
],
- q(3857) => [
+ q(3852) => [
q(Leelau),
],
- q(3858) => [
+ q(3853) => [
q(Kaan),
],
- q(3859) => [
+ q(3854) => [
q(Landoma),
],
- q(3860) => [
+ q(3855) => [
q(Laadan),
],
- q(3861) => [
+ q(3856) => [
q(Loo),
],
- q(3862) => [
+ q(3857) => [
q(Tso),
],
- q(3863) => [
+ q(3858) => [
q(Lufu),
],
- q(3864) => [
+ q(3859) => [
q(Lega-Shabunda),
],
- q(3865) => [
+ q(3860) => [
q(Lala-Bisa),
],
- q(3866) => [
+ q(3861) => [
q(Leco),
],
- q(3867) => [
+ q(3862) => [
q(Lendu),
],
- q(3868) => [
+ q(3863) => [
q(Lyele),
],
- q(3869) => [
+ q(3864) => [
q(Lelemi),
],
- q(3870) => [
- q(Lengua),
- ],
- q(3871) => [
+ q(3865) => [
q(Lenje),
],
- q(3872) => [
+ q(3866) => [
q(Lemio),
],
- q(3873) => [
+ q(3867) => [
q(Lengola),
],
- q(3874) => [
+ q(3868) => [
q(Leipon),
],
- q(3875) => [
+ q(3869) => [
q(Lele (Democratic Republic of Congo)),
],
- q(3876) => [
+ q(3870) => [
q(Nomaande),
],
- q(3877) => [
+ q(3871) => [
q(Lenca),
],
- q(3878) => [
+ q(3872) => [
q(Leti (Cameroon)),
],
- q(3879) => [
+ q(3873) => [
q(Lepcha),
],
- q(3880) => [
+ q(3874) => [
q(Lembena),
],
- q(3881) => [
+ q(3875) => [
q(Lenkau),
],
- q(3882) => [
+ q(3876) => [
q(Lese),
],
- q(3883) => [
+ q(3877) => [
q(Lesing-Gelimi),
q(Amio-Gelimi),
],
- q(3884) => [
+ q(3878) => [
q(Kara (Papua New Guinea)),
],
- q(3885) => [
+ q(3879) => [
q(Lamma),
],
- q(3886) => [
+ q(3880) => [
q(Ledo Kaili),
],
- q(3887) => [
+ q(3881) => [
q(Luang),
],
- q(3888) => [
+ q(3882) => [
q(Lemolang),
],
- q(3889) => [
+ q(3883) => [
q(Lefa),
],
- q(3890) => [
+ q(3884) => [
q(Lingua Franca Nova),
],
- q(3891) => [
+ q(3885) => [
q(Lungga),
],
- q(3892) => [
+ q(3886) => [
q(Laghu),
],
- q(3893) => [
+ q(3887) => [
q(Lugbara),
],
- q(3894) => [
+ q(3888) => [
q(Laghuu),
],
- q(3895) => [
+ q(3889) => [
q(Lengilu),
],
- q(3896) => [
+ q(3890) => [
q(Lingarak),
q(Neverver),
],
- q(3897) => [
+ q(3891) => [
q(Wala),
],
- q(3898) => [
+ q(3892) => [
q(Lega-Mwenga),
],
- q(3899) => [
+ q(3893) => [
q(Opuuo),
],
- q(3900) => [
+ q(3894) => [
q(Logba),
],
- q(3901) => [
+ q(3895) => [
q(Lengo),
],
- q(3902) => [
+ q(3896) => [
q(Pahi),
],
- q(3903) => [
+ q(3897) => [
q(Longgu),
],
- q(3904) => [
+ q(3898) => [
q(Ligenza),
],
- q(3905) => [
+ q(3899) => [
q(Laha (Viet Nam)),
],
- q(3906) => [
+ q(3900) => [
q(Laha (Indonesia)),
],
- q(3907) => [
+ q(3901) => [
q(Lahu Shi),
],
- q(3908) => [
+ q(3902) => [
q(Lahul Lohar),
],
- q(3909) => [
+ q(3903) => [
q(Lhomi),
],
- q(3910) => [
+ q(3904) => [
q(Lahanan),
],
- q(3911) => [
+ q(3905) => [
q(Lhokpu),
],
- q(3912) => [
+ q(3906) => [
q(Mlahso),
],
- q(3913) => [
+ q(3907) => [
q(Lo-Toga),
],
- q(3914) => [
+ q(3908) => [
q(Lahu),
],
- q(3915) => [
+ q(3909) => [
q(West-Central Limba),
],
- q(3916) => [
+ q(3910) => [
q(Likum),
],
- q(3917) => [
+ q(3911) => [
q(Hlai),
],
- q(3918) => [
+ q(3912) => [
q(Nyindrou),
],
- q(3919) => [
+ q(3913) => [
q(Likila),
],
- q(3920) => [
+ q(3914) => [
q(Limbu),
],
- q(3921) => [
+ q(3915) => [
q(Ligbi),
],
- q(3922) => [
+ q(3916) => [
q(Lihir),
],
- q(3923) => [
- q(Lingkhim),
- ],
- q(3924) => [
+ q(3917) => [
q(Ligurian),
],
- q(3925) => [
+ q(3918) => [
q(Lika),
],
- q(3926) => [
+ q(3919) => [
q(Lillooet),
],
- q(3927) => [
+ q(3920) => [
q(Liki),
],
- q(3928) => [
+ q(3921) => [
q(Sekpele),
],
- q(3929) => [
+ q(3922) => [
q(Libido),
],
- q(3930) => [
+ q(3923) => [
q(Liberian English),
],
- q(3931) => [
+ q(3924) => [
q(Lisu),
],
- q(3932) => [
+ q(3925) => [
q(Logorik),
],
- q(3933) => [
+ q(3926) => [
q(Liv),
],
- q(3934) => [
+ q(3927) => [
q(Col),
],
- q(3935) => [
+ q(3928) => [
q(Liabuku),
],
- q(3936) => [
+ q(3929) => [
q(Banda-Bambari),
],
- q(3937) => [
+ q(3930) => [
q(Libinza),
],
- q(3938) => [
+ q(3931) => [
q(Golpa),
],
- q(3939) => [
+ q(3932) => [
q(Rampi),
],
- q(3940) => [
+ q(3933) => [
q(Laiyolo),
],
- q(3941) => [
+ q(3934) => [
q(Li'o),
],
- q(3942) => [
+ q(3935) => [
q(Lampung Api),
],
- q(3943) => [
+ q(3936) => [
q(Yirandali),
],
- q(3944) => [
+ q(3937) => [
q(Yuru),
],
- q(3945) => [
+ q(3938) => [
q(Lakalei),
],
- q(3946) => [
+ q(3939) => [
q(Kabras),
q(Lukabaras),
],
- q(3947) => [
+ q(3940) => [
q(Kucong),
],
- q(3948) => [
+ q(3941) => [
q(Lakonde),
],
- q(3949) => [
+ q(3942) => [
q(Kenyi),
],
- q(3950) => [
+ q(3943) => [
q(Lakha),
],
- q(3951) => [
+ q(3944) => [
q(Laki),
],
- q(3952) => [
+ q(3945) => [
q(Remun),
],
- q(3953) => [
+ q(3946) => [
q(Laeko-Libuat),
],
- q(3954) => [
+ q(3947) => [
q(Kalaamaya),
],
- q(3955) => [
+ q(3948) => [
q(Lakon),
q(Vure),
],
- q(3956) => [
+ q(3949) => [
q(Khayo),
q(Olukhayo),
],
- q(3957) => [
+ q(3950) => [
q(Pari),
],
- q(3958) => [
+ q(3951) => [
q(Kisa),
q(Olushisa),
],
- q(3959) => [
+ q(3952) => [
q(Lakota),
],
- q(3960) => [
+ q(3953) => [
q(Kungkari),
],
- q(3961) => [
+ q(3954) => [
q(Lokoya),
],
- q(3962) => [
+ q(3955) => [
q(Lala-Roba),
],
- q(3963) => [
+ q(3956) => [
q(Lolo),
],
- q(3964) => [
+ q(3957) => [
q(Lele (Guinea)),
],
- q(3965) => [
+ q(3958) => [
q(Ladin),
],
- q(3966) => [
+ q(3959) => [
q(Lele (Papua New Guinea)),
],
- q(3967) => [
+ q(3960) => [
q(Hermit),
],
- q(3968) => [
+ q(3961) => [
q(Lole),
],
- q(3969) => [
+ q(3962) => [
q(Lamu),
],
- q(3970) => [
+ q(3963) => [
q(Teke-Laali),
],
- q(3971) => [
+ q(3964) => [
q(Ladji Ladji),
],
- q(3972) => [
+ q(3965) => [
q(Lelak),
],
- q(3973) => [
+ q(3966) => [
q(Lilau),
],
- q(3974) => [
+ q(3967) => [
q(Lasalimu),
],
- q(3975) => [
+ q(3968) => [
q(Lele (Chad)),
],
- q(3976) => [
+ q(3969) => [
q(Khlor),
],
- q(3977) => [
+ q(3970) => [
q(North Efate),
],
- q(3978) => [
+ q(3971) => [
q(Lolak),
],
- q(3979) => [
+ q(3972) => [
q(Lithuanian Sign Language),
],
- q(3980) => [
+ q(3973) => [
q(Lau),
],
- q(3981) => [
+ q(3974) => [
q(Lauan),
],
- q(3982) => [
+ q(3975) => [
q(East Limba),
],
- q(3983) => [
+ q(3976) => [
q(Merei),
],
- q(3984) => [
+ q(3977) => [
q(Limilngan),
],
- q(3985) => [
+ q(3978) => [
q(Lumun),
],
- q(3986) => [
+ q(3979) => [
q(Peve),
],
- q(3987) => [
+ q(3980) => [
q(South Lembata),
],
- q(3988) => [
+ q(3981) => [
q(Lamogai),
],
- q(3989) => [
+ q(3982) => [
q(Lambichhong),
],
- q(3990) => [
+ q(3983) => [
q(Lombi),
],
- q(3991) => [
+ q(3984) => [
q(West Lembata),
],
- q(3992) => [
+ q(3985) => [
q(Lamkang),
],
- q(3993) => [
+ q(3986) => [
q(Hano),
],
- q(3994) => [
- q(Lamam),
- ],
- q(3995) => [
+ q(3987) => [
q(Lambadi),
],
- q(3996) => [
+ q(3988) => [
q(Lombard),
],
- q(3997) => [
+ q(3989) => [
q(Limbum),
],
- q(3998) => [
+ q(3990) => [
q(Lamatuka),
],
- q(3999) => [
+ q(3991) => [
q(Lamalera),
],
- q(4000) => [
+ q(3992) => [
q(Lamenu),
],
- q(4001) => [
+ q(3993) => [
q(Lomaiviti),
],
- q(4002) => [
+ q(3994) => [
q(Lake Miwok),
],
- q(4003) => [
+ q(3995) => [
q(Laimbue),
],
- q(4004) => [
+ q(3996) => [
q(Lamboya),
],
- q(4005) => [
+ q(3997) => [
q(Lumbee),
],
- q(4006) => [
+ q(3998) => [
q(Langbashe),
],
- q(4007) => [
+ q(3999) => [
q(Mbalanhu),
],
- q(4008) => [
+ q(4000) => [
q(Lundayeh),
q(Lun Bawang),
],
- q(4009) => [
+ q(4001) => [
q(Langobardic),
],
- q(4010) => [
+ q(4002) => [
q(Lanoh),
],
- q(4011) => [
+ q(4003) => [
q(Daantanai'),
],
- q(4012) => [
+ q(4004) => [
q(Leningitij),
],
- q(4013) => [
+ q(4005) => [
q(South Central Banda),
],
- q(4014) => [
+ q(4006) => [
q(Langam),
],
- q(4015) => [
+ q(4007) => [
q(Lorediakarkar),
],
- q(4016) => [
+ q(4008) => [
q(Lango (Sudan)),
],
- q(4017) => [
+ q(4009) => [
q(Lamnso'),
],
- q(4018) => [
+ q(4010) => [
q(Longuda),
],
- q(4019) => [
+ q(4011) => [
q(Lanima),
],
- q(4020) => [
+ q(4012) => [
q(Lonzo),
],
- q(4021) => [
+ q(4013) => [
q(Loloda),
],
- q(4022) => [
+ q(4014) => [
q(Lobi),
],
- q(4023) => [
+ q(4015) => [
q(Inonhan),
],
- q(4024) => [
+ q(4016) => [
q(Saluan),
],
- q(4025) => [
+ q(4017) => [
q(Logol),
],
- q(4026) => [
+ q(4018) => [
q(Logo),
],
- q(4027) => [
+ q(4019) => [
q(Narim),
],
- q(4028) => [
+ q(4020) => [
q(Loma (Cote d'Ivoire)),
],
- q(4029) => [
+ q(4021) => [
q(Lou),
],
- q(4030) => [
+ q(4022) => [
q(Loko),
],
- q(4031) => [
+ q(4023) => [
q(Loma (Liberia)),
],
- q(4032) => [
+ q(4024) => [
q(Malawi Lomwe),
],
- q(4033) => [
+ q(4025) => [
q(Lombo),
],
- q(4034) => [
+ q(4026) => [
q(Lopa),
],
- q(4035) => [
+ q(4027) => [
q(Lobala),
],
- q(4036) => [
+ q(4028) => [
q(Teen),
],
- q(4037) => [
+ q(4029) => [
q(Loniu),
],
- q(4038) => [
+ q(4030) => [
q(Otuho),
],
- q(4039) => [
+ q(4031) => [
q(Louisiana Creole French),
],
- q(4040) => [
+ q(4032) => [
q(Lopi),
],
- q(4041) => [
+ q(4033) => [
q(Tampias Lobu),
],
- q(4042) => [
+ q(4034) => [
q(Loun),
],
- q(4043) => [
+ q(4035) => [
q(Loke),
],
- q(4044) => [
+ q(4036) => [
q(Lelepa),
],
- q(4045) => [
+ q(4037) => [
q(Lepki),
],
- q(4046) => [
+ q(4038) => [
q(Long Phuri Naga),
],
- q(4047) => [
+ q(4039) => [
q(Lipo),
],
- q(4048) => [
+ q(4040) => [
q(Lopit),
],
- q(4049) => [
+ q(4041) => [
q(Rara Bakati'),
],
- q(4050) => [
+ q(4042) => [
q(Northern Luri),
],
- q(4051) => [
+ q(4043) => [
q(Laurentian),
],
- q(4052) => [
+ q(4044) => [
q(Laragia),
],
- q(4053) => [
+ q(4045) => [
q(Marachi),
q(Olumarachi),
],
- q(4054) => [
+ q(4046) => [
q(Loarki),
],
- q(4055) => [
+ q(4047) => [
q(Lari),
],
- q(4056) => [
+ q(4048) => [
q(Marama),
q(Olumarama),
],
- q(4057) => [
+ q(4049) => [
q(Lorang),
],
- q(4058) => [
+ q(4050) => [
q(Laro),
],
- q(4059) => [
+ q(4051) => [
q(Southern Yamphu),
],
- q(4060) => [
+ q(4052) => [
q(Larantuka Malay),
],
- q(4061) => [
+ q(4053) => [
q(Larevat),
],
- q(4062) => [
+ q(4054) => [
q(Lemerig),
],
- q(4063) => [
+ q(4055) => [
q(Lasgerdi),
],
- q(4064) => [
+ q(4056) => [
q(Lishana Deni),
],
- q(4065) => [
+ q(4057) => [
q(Lusengo),
],
- q(4066) => [
+ q(4058) => [
q(Lyons Sign Language),
],
- q(4067) => [
+ q(4059) => [
q(Lish),
],
- q(4068) => [
+ q(4060) => [
q(Lashi),
],
- q(4069) => [
+ q(4061) => [
q(Latvian Sign Language),
],
- q(4070) => [
+ q(4062) => [
q(Saamia),
q(Olusamia),
],
- q(4071) => [
+ q(4063) => [
q(Laos Sign Language),
],
- q(4072) => [
+ q(4064) => [
q(Panamanian Sign Language),
q(Lengua de Senas Panamenas),
],
- q(4073) => [
+ q(4065) => [
q(Aruop),
],
- q(4074) => [
+ q(4066) => [
q(Lasi),
],
- q(4075) => [
+ q(4067) => [
q(Trinidad and Tobago Sign Language),
],
- q(4076) => [
+ q(4068) => [
q(Mauritian Sign Language),
],
- q(4077) => [
+ q(4069) => [
q(Late Middle Chinese),
],
- q(4078) => [
+ q(4070) => [
q(Latgalian),
],
- q(4079) => [
+ q(4071) => [
q(Leti (Indonesia)),
],
- q(4080) => [
+ q(4072) => [
q(Latunde),
],
- q(4081) => [
+ q(4073) => [
q(Tsotso),
q(Olutsotso),
],
- q(4082) => [
+ q(4074) => [
q(Tachoni),
q(Lutachoni),
],
- q(4083) => [
+ q(4075) => [
q(Latu),
],
- q(4084) => [
+ q(4076) => [
q(Aringa),
],
- q(4085) => [
+ q(4077) => [
q(Ludian),
],
- q(4086) => [
+ q(4078) => [
q(Luvale),
],
- q(4087) => [
+ q(4079) => [
q(Laua),
],
- q(4088) => [
+ q(4080) => [
q(Luna),
],
- q(4089) => [
+ q(4081) => [
q(Lunanakha),
],
- q(4090) => [
+ q(4082) => [
q(Olu'bo),
],
- q(4091) => [
+ q(4083) => [
q(Luimbi),
],
- q(4092) => [
+ q(4084) => [
q(Lumbu),
],
- q(4093) => [
+ q(4085) => [
q(Lucumi),
],
- q(4094) => [
+ q(4086) => [
q(Laura),
],
- q(4095) => [
+ q(4087) => [
q(Lushootseed),
],
- q(4096) => [
+ q(4088) => [
q(Lumba-Yakkha),
],
- q(4097) => [
+ q(4089) => [
q(Luwati),
],
- q(4098) => [
+ q(4090) => [
q(Luo (Cameroon)),
],
- q(4099) => [
+ q(4091) => [
q(Luyia),
q(Oluluyia),
],
- q(4100) => [
+ q(4092) => [
q(Southern Luri),
],
- q(4101) => [
+ q(4093) => [
q(Maku'a),
],
- q(4102) => [
+ q(4094) => [
q(Lavukaleve),
],
- q(4103) => [
+ q(4095) => [
q(Standard Latvian),
],
- q(4104) => [
+ q(4096) => [
q(Levuka),
],
- q(4105) => [
+ q(4097) => [
q(Lwalu),
],
- q(4106) => [
+ q(4098) => [
q(Lewo Eleng),
],
- q(4107) => [
+ q(4099) => [
q(Wanga),
q(Oluwanga),
],
- q(4108) => [
+ q(4100) => [
q(White Lachi),
],
- q(4109) => [
+ q(4101) => [
q(Eastern Lawa),
],
- q(4110) => [
+ q(4102) => [
q(Laomian),
],
- q(4111) => [
+ q(4103) => [
q(Luwo),
],
- q(4112) => [
+ q(4104) => [
q(Lewotobi),
],
- q(4113) => [
+ q(4105) => [
q(Lawu),
],
- q(4114) => [
+ q(4106) => [
q(Lewo),
],
- q(4115) => [
+ q(4107) => [
q(Layakha),
],
- q(4116) => [
+ q(4108) => [
q(Lyngngam),
],
- q(4117) => [
+ q(4109) => [
q(Luyana),
],
- q(4118) => [
+ q(4110) => [
q(Literary Chinese),
],
- q(4119) => [
+ q(4111) => [
q(Litzlitz),
],
- q(4120) => [
+ q(4112) => [
q(Leinong Naga),
],
- q(4121) => [
+ q(4113) => [
q(Laz),
],
- q(4122) => [
+ q(4114) => [
q(San Jeronimo Tecoatl Mazatec),
],
- q(4123) => [
+ q(4115) => [
q(Yutanduchi Mixtec),
],
- q(4124) => [
+ q(4116) => [
q(Bo-Rukul),
],
- q(4125) => [
+ q(4117) => [
q(Mafa),
],
- q(4126) => [
+ q(4118) => [
q(Jalapa De Diaz Mazatec),
],
- q(4127) => [
+ q(4119) => [
q(Mam),
],
- q(4128) => [
+ q(4120) => [
q(Chiquihuitlan Mazatec),
],
- q(4129) => [
+ q(4121) => [
q(San Francisco Matlatzinca),
],
- q(4130) => [
+ q(4122) => [
q(Huautla Mazatec),
],
- q(4131) => [
+ q(4123) => [
q(Satere-Mawe),
],
- q(4132) => [
+ q(4124) => [
q(Mampruli),
],
- q(4133) => [
+ q(4125) => [
q(North Moluccan Malay),
],
- q(4134) => [
+ q(4126) => [
q(Central Mazahua),
],
- q(4135) => [
+ q(4127) => [
q(Higaonon),
],
- q(4136) => [
+ q(4128) => [
q(Western Bukidnon Manobo),
],
- q(4137) => [
+ q(4129) => [
q(Macushi),
],
- q(4138) => [
+ q(4130) => [
q(Dibabawon Manobo),
],
- q(4139) => [
+ q(4131) => [
q(Molale),
],
- q(4140) => [
+ q(4132) => [
q(Baba Malay),
],
- q(4141) => [
+ q(4133) => [
q(Mangseng),
],
- q(4142) => [
+ q(4134) => [
q(Ilianen Manobo),
],
- q(4143) => [
+ q(4135) => [
q(Nadeb),
],
- q(4144) => [
+ q(4136) => [
q(Malol),
],
- q(4145) => [
+ q(4137) => [
q(Maxakali),
],
- q(4146) => [
+ q(4138) => [
q(Ombamba),
],
- q(4147) => [
+ q(4139) => [
q(Macaguan),
],
- q(4148) => [
+ q(4140) => [
q(Mbo (Cameroon)),
],
- q(4149) => [
+ q(4141) => [
q(Malayo),
],
- q(4150) => [
+ q(4142) => [
q(Maisin),
],
- q(4151) => [
+ q(4143) => [
q(Nukak Maku),
],
- q(4152) => [
+ q(4144) => [
q(Sarangani Manobo),
],
- q(4153) => [
+ q(4145) => [
q(Matigsalug Manobo),
],
- q(4154) => [
+ q(4146) => [
q(Mbula-Bwazza),
],
- q(4155) => [
+ q(4147) => [
q(Mbulungish),
],
- q(4156) => [
+ q(4148) => [
q(Maring),
],
- q(4157) => [
+ q(4149) => [
q(Mari (East Sepik Province)),
],
- q(4158) => [
+ q(4150) => [
q(Memoni),
],
- q(4159) => [
+ q(4151) => [
q(Amoltepec Mixtec),
],
- q(4160) => [
+ q(4152) => [
q(Maca),
],
- q(4161) => [
+ q(4153) => [
q(Machiguenga),
],
- q(4162) => [
+ q(4154) => [
q(Bitur),
],
- q(4163) => [
+ q(4155) => [
q(Sharanahua),
],
- q(4164) => [
+ q(4156) => [
q(Itundujia Mixtec),
],
- q(4165) => [
+ q(4157) => [
q(Matses),
],
- q(4166) => [
+ q(4158) => [
q(Mapoyo),
],
- q(4167) => [
+ q(4159) => [
q(Maquiritari),
],
- q(4168) => [
+ q(4160) => [
q(Mese),
],
- q(4169) => [
+ q(4161) => [
q(Mvanip),
],
- q(4170) => [
+ q(4162) => [
q(Mbunda),
],
- q(4171) => [
+ q(4163) => [
q(Macaguaje),
],
- q(4172) => [
+ q(4164) => [
q(Malaccan Creole Portuguese),
],
- q(4173) => [
+ q(4165) => [
q(Masana),
],
- q(4174) => [
+ q(4166) => [
q(Coatlan Mixe),
],
- q(4175) => [
+ q(4167) => [
q(Makaa),
],
- q(4176) => [
+ q(4168) => [
q(Ese),
],
- q(4177) => [
+ q(4169) => [
q(Menya),
],
- q(4178) => [
+ q(4170) => [
q(Mambai),
],
- q(4179) => [
+ q(4171) => [
q(Mengisa),
],
- q(4180) => [
+ q(4172) => [
q(Cameroon Mambila),
],
- q(4181) => [
+ q(4173) => [
q(Minanibai),
],
- q(4182) => [
+ q(4174) => [
q(Mawa (Chad)),
],
- q(4183) => [
+ q(4175) => [
q(Mpiemo),
],
- q(4184) => [
+ q(4176) => [
q(South Watut),
],
- q(4185) => [
+ q(4177) => [
q(Mawan),
],
- q(4186) => [
+ q(4178) => [
q(Mada (Nigeria)),
],
- q(4187) => [
+ q(4179) => [
q(Morigi),
],
- q(4188) => [
+ q(4180) => [
q(Male (Papua New Guinea)),
],
- q(4189) => [
+ q(4181) => [
q(Mbum),
],
- q(4190) => [
+ q(4182) => [
q(Maba (Chad)),
],
- q(4191) => [
+ q(4183) => [
q(Massalat),
],
- q(4192) => [
+ q(4184) => [
q(Maguindanaon),
],
- q(4193) => [
+ q(4185) => [
q(Mamvu),
],
- q(4194) => [
+ q(4186) => [
q(Mangbetu),
],
- q(4195) => [
+ q(4187) => [
q(Mangbutu),
],
- q(4196) => [
+ q(4188) => [
q(Maltese Sign Language),
],
- q(4197) => [
+ q(4189) => [
q(Mayogo),
],
- q(4198) => [
+ q(4190) => [
q(Mbati),
],
- q(4199) => [
+ q(4191) => [
q(Mbala),
],
- q(4200) => [
+ q(4192) => [
q(Mbole),
],
- q(4201) => [
+ q(4193) => [
q(Maria (Papua New Guinea)),
],
- q(4202) => [
+ q(4194) => [
q(Mbere),
],
- q(4203) => [
+ q(4195) => [
q(Mboko),
],
- q(4204) => [
+ q(4196) => [
q(Santa Lucia Monteverde Mixtec),
],
- q(4205) => [
+ q(4197) => [
q(Mbosi),
],
- q(4206) => [
+ q(4198) => [
q(Dizin),
],
- q(4207) => [
+ q(4199) => [
q(Male (Ethiopia)),
],
- q(4208) => [
+ q(4200) => [
q(Surui Do Para),
],
- q(4209) => [
+ q(4201) => [
q(Menka),
],
- q(4210) => [
+ q(4202) => [
q(Ikobi),
],
- q(4211) => [
+ q(4203) => [
q(Mara),
],
- q(4212) => [
+ q(4204) => [
q(Melpa),
],
- q(4213) => [
+ q(4205) => [
q(Mengen),
],
- q(4214) => [
+ q(4206) => [
q(Megam),
],
- q(4215) => [
+ q(4207) => [
q(Southwestern Tlaxiaco Mixtec),
],
- q(4216) => [
+ q(4208) => [
q(Midob),
],
- q(4217) => [
+ q(4209) => [
q(Meyah),
],
- q(4218) => [
+ q(4210) => [
q(Mekeo),
],
- q(4219) => [
+ q(4211) => [
q(Central Melanau),
],
- q(4220) => [
+ q(4212) => [
q(Mangala),
],
- q(4221) => [
+ q(4213) => [
q(Kedah Malay),
],
- q(4222) => [
+ q(4214) => [
q(Miriwung),
],
- q(4223) => [
+ q(4215) => [
q(Merey),
],
- q(4224) => [
+ q(4216) => [
q(Meru),
],
- q(4225) => [
+ q(4217) => [
q(Masmaje),
],
- q(4226) => [
+ q(4218) => [
q(Mato),
],
- q(4227) => [
+ q(4219) => [
q(Motu),
],
- q(4228) => [
+ q(4220) => [
q(Mano),
],
- q(4229) => [
+ q(4221) => [
q(Maaka),
],
- q(4230) => [
+ q(4222) => [
q(Hassaniyya),
],
- q(4231) => [
+ q(4223) => [
q(Menominee),
],
- q(4232) => [
+ q(4224) => [
q(Pattani Malay),
],
- q(4233) => [
+ q(4225) => [
q(Bangka),
],
- q(4234) => [
+ q(4226) => [
q(Mba),
],
- q(4235) => [
+ q(4227) => [
q(Mendankwe-Nkwen),
],
- q(4236) => [
+ q(4228) => [
q(Morisyen),
],
- q(4237) => [
+ q(4229) => [
q(Naki),
],
- q(4238) => [
+ q(4230) => [
q(Mogofin),
],
- q(4239) => [
+ q(4231) => [
q(Matal),
],
- q(4240) => [
+ q(4232) => [
q(Wandala),
],
- q(4241) => [
+ q(4233) => [
q(Mefele),
],
- q(4242) => [
+ q(4234) => [
q(North Mofu),
],
- q(4243) => [
+ q(4235) => [
q(Putai),
],
- q(4244) => [
+ q(4236) => [
q(Marghi South),
],
- q(4245) => [
+ q(4237) => [
q(Cross River Mbembe),
],
- q(4246) => [
+ q(4238) => [
q(Mbe),
],
- q(4247) => [
+ q(4239) => [
q(Makassar Malay),
],
- q(4248) => [
+ q(4240) => [
q(Moba),
],
- q(4249) => [
+ q(4241) => [
q(Marithiel),
],
- q(4250) => [
+ q(4242) => [
q(Mexican Sign Language),
],
- q(4251) => [
+ q(4243) => [
q(Mokerang),
],
- q(4252) => [
+ q(4244) => [
q(Mbwela),
],
- q(4253) => [
+ q(4245) => [
q(Mandjak),
],
- q(4254) => [
+ q(4246) => [
q(Mulaha),
],
- q(4255) => [
+ q(4247) => [
q(Melo),
],
- q(4256) => [
+ q(4248) => [
q(Mayo),
],
- q(4257) => [
+ q(4249) => [
q(Mabaan),
],
- q(4258) => [
+ q(4250) => [
q(Mararit),
],
- q(4259) => [
+ q(4251) => [
q(Morokodo),
],
- q(4260) => [
+ q(4252) => [
q(Moru),
],
- q(4261) => [
+ q(4253) => [
q(Mango),
],
- q(4262) => [
+ q(4254) => [
q(Maklew),
],
- q(4263) => [
+ q(4255) => [
q(Mpumpong),
],
- q(4264) => [
+ q(4256) => [
q(Makhuwa-Meetto),
],
- q(4265) => [
+ q(4257) => [
q(Lijili),
],
- q(4266) => [
+ q(4258) => [
q(Abureni),
],
- q(4267) => [
+ q(4259) => [
q(Mawes),
],
- q(4268) => [
+ q(4260) => [
q(Maleu-Kilenge),
],
- q(4269) => [
+ q(4261) => [
q(Mambae),
],
- q(4270) => [
+ q(4262) => [
q(Mbangi),
],
- q(4271) => [
+ q(4263) => [
q(Meta'),
],
- q(4272) => [
+ q(4264) => [
q(Eastern Magar),
],
- q(4273) => [
+ q(4265) => [
q(Malila),
],
- q(4274) => [
+ q(4266) => [
q(Mambwe-Lungu),
],
- q(4275) => [
+ q(4267) => [
q(Manda (Tanzania)),
],
- q(4276) => [
+ q(4268) => [
q(Mongol),
],
- q(4277) => [
+ q(4269) => [
q(Mailu),
],
- q(4278) => [
+ q(4270) => [
q(Matengo),
],
- q(4279) => [
+ q(4271) => [
q(Matumbi),
],
- q(4280) => [
+ q(4272) => [
q(Mbunga),
],
- q(4281) => [
+ q(4273) => [
q(Mbugwe),
],
- q(4282) => [
+ q(4274) => [
q(Manda (India)),
],
- q(4283) => [
+ q(4275) => [
q(Mahongwe),
],
- q(4284) => [
+ q(4276) => [
q(Mocho),
],
- q(4285) => [
+ q(4277) => [
q(Mbugu),
],
- q(4286) => [
+ q(4278) => [
q(Besisi),
q(Mah Meri),
],
- q(4287) => [
+ q(4279) => [
q(Mamaa),
],
- q(4288) => [
+ q(4280) => [
q(Margu),
],
- q(4289) => [
- q(Maskoy Pidgin),
- ],
- q(4290) => [
+ q(4281) => [
q(Ma'di),
],
- q(4291) => [
+ q(4282) => [
q(Mogholi),
],
- q(4292) => [
+ q(4283) => [
q(Mungaka),
],
- q(4293) => [
+ q(4284) => [
q(Mauwake),
],
- q(4294) => [
+ q(4285) => [
q(Makhuwa-Moniga),
],
- q(4295) => [
+ q(4286) => [
q(Mocheno),
],
- q(4296) => [
+ q(4287) => [
q(Mashi (Zambia)),
],
- q(4297) => [
+ q(4288) => [
q(Balinese Malay),
],
- q(4298) => [
+ q(4289) => [
q(Mandan),
],
- q(4299) => [
+ q(4290) => [
q(Eastern Mari),
],
- q(4300) => [
+ q(4291) => [
q(Buru (Indonesia)),
],
- q(4301) => [
+ q(4292) => [
q(Mandahuaca),
],
- q(4302) => [
+ q(4293) => [
q(Digaro-Mishmi),
q(Darang Deng),
],
- q(4303) => [
+ q(4294) => [
q(Mbukushu),
],
- q(4304) => [
+ q(4295) => [
q(Maru),
q(Lhaovo),
],
- q(4305) => [
+ q(4296) => [
q(Ma'anyan),
],
- q(4306) => [
+ q(4297) => [
q(Mor (Mor Islands)),
],
- q(4307) => [
+ q(4298) => [
q(Miami),
],
- q(4308) => [
+ q(4299) => [
q(Atatlahuca Mixtec),
],
- q(4309) => [
+ q(4300) => [
q(Mandaic),
],
- q(4310) => [
+ q(4301) => [
q(Ocotepec Mixtec),
],
- q(4311) => [
+ q(4302) => [
q(Mofu-Gudur),
],
- q(4312) => [
+ q(4303) => [
q(San Miguel El Grande Mixtec),
],
- q(4313) => [
+ q(4304) => [
q(Chayuco Mixtec),
],
- q(4314) => [
+ q(4305) => [
q(Chigmecatitlan Mixtec),
],
- q(4315) => [
+ q(4306) => [
q(Abar),
q(Mungbam),
],
- q(4316) => [
+ q(4307) => [
q(Mikasuki),
],
- q(4317) => [
+ q(4308) => [
q(Penoles Mixtec),
],
- q(4318) => [
+ q(4309) => [
q(Alacatlatzala Mixtec),
],
- q(4319) => [
+ q(4310) => [
q(Pinotepa Nacional Mixtec),
],
- q(4320) => [
+ q(4311) => [
q(Apasco-Apoala Mixtec),
],
- q(4321) => [
+ q(4312) => [
q(Miskito),
],
- q(4322) => [
+ q(4313) => [
q(Isthmus Mixe),
],
- q(4323) => [
+ q(4314) => [
q(Southern Puebla Mixtec),
],
- q(4324) => [
+ q(4315) => [
q(Cacaloxtepec Mixtec),
],
- q(4325) => [
+ q(4316) => [
q(Akoye),
],
- q(4326) => [
+ q(4317) => [
q(Mixtepec Mixtec),
],
- q(4327) => [
+ q(4318) => [
q(Ayutla Mixtec),
],
- q(4328) => [
+ q(4319) => [
q(Coatzospan Mixtec),
],
- q(4329) => [
+ q(4320) => [
q(San Juan Colorado Mixtec),
],
- q(4330) => [
+ q(4321) => [
q(Northwest Maidu),
],
- q(4331) => [
+ q(4322) => [
q(Muskum),
],
- q(4332) => [
+ q(4323) => [
q(Tu),
],
- q(4333) => [
+ q(4324) => [
q(Mwera (Nyasa)),
],
- q(4334) => [
+ q(4325) => [
q(Kim Mun),
],
- q(4335) => [
+ q(4326) => [
q(Mawak),
],
- q(4336) => [
+ q(4327) => [
q(Matukar),
],
- q(4337) => [
+ q(4328) => [
q(Mandeali),
],
- q(4338) => [
+ q(4329) => [
q(Medebur),
],
- q(4339) => [
+ q(4330) => [
q(Ma (Papua New Guinea)),
],
- q(4340) => [
+ q(4331) => [
q(Malankuravan),
],
- q(4341) => [
+ q(4332) => [
q(Malapandaram),
],
- q(4342) => [
+ q(4333) => [
q(Malaryan),
],
- q(4343) => [
+ q(4334) => [
q(Malavedan),
],
- q(4344) => [
+ q(4335) => [
q(Miship),
],
- q(4345) => [
+ q(4336) => [
q(Sauria Paharia),
],
- q(4346) => [
+ q(4337) => [
q(Manna-Dora),
],
- q(4347) => [
+ q(4338) => [
q(Mannan),
],
- q(4348) => [
+ q(4339) => [
q(Karbi),
],
- q(4349) => [
+ q(4340) => [
q(Mahali),
],
- q(4350) => [
+ q(4341) => [
q(Mahican),
],
- q(4351) => [
+ q(4342) => [
q(Majhi),
],
- q(4352) => [
+ q(4343) => [
q(Mbre),
],
- q(4353) => [
+ q(4344) => [
q(Mal Paharia),
],
- q(4354) => [
+ q(4345) => [
q(Siliput),
],
- q(4355) => [
+ q(4346) => [
q(Mawchi),
],
- q(4356) => [
+ q(4347) => [
q(Miya),
],
- q(4357) => [
+ q(4348) => [
q(Mak (China)),
],
- q(4358) => [
+ q(4349) => [
q(Dhatki),
],
- q(4359) => [
+ q(4350) => [
q(Mokilese),
],
- q(4360) => [
+ q(4351) => [
q(Byep),
],
- q(4361) => [
+ q(4352) => [
q(Mokole),
],
- q(4362) => [
+ q(4353) => [
q(Moklen),
],
- q(4363) => [
+ q(4354) => [
q(Kupang Malay),
],
- q(4364) => [
+ q(4355) => [
q(Mingang Doso),
],
- q(4365) => [
+ q(4356) => [
q(Moikodi),
],
- q(4366) => [
+ q(4357) => [
q(Bay Miwok),
],
- q(4367) => [
+ q(4358) => [
q(Malas),
],
- q(4368) => [
+ q(4359) => [
q(Silacayoapan Mixtec),
],
- q(4369) => [
+ q(4360) => [
q(Vamale),
],
- q(4370) => [
+ q(4361) => [
q(Konyanka Maninka),
],
- q(4371) => [
+ q(4362) => [
q(Mafea),
],
- q(4372) => [
+ q(4363) => [
q(Kituba (Congo)),
],
- q(4373) => [
+ q(4364) => [
q(Kinamiging Manobo),
],
- q(4374) => [
+ q(4365) => [
q(East Makian),
],
- q(4375) => [
+ q(4366) => [
q(Makasae),
],
- q(4376) => [
+ q(4367) => [
q(Malo),
],
- q(4377) => [
+ q(4368) => [
q(Mbule),
],
- q(4378) => [
+ q(4369) => [
q(Cao Lan),
],
- q(4379) => [
+ q(4370) => [
q(Manambu),
],
- q(4380) => [
+ q(4371) => [
q(Mal),
],
- q(4381) => [
+ q(4372) => [
q(Mape),
],
- q(4382) => [
+ q(4373) => [
q(Malimpung),
],
- q(4383) => [
+ q(4374) => [
q(Miltu),
],
- q(4384) => [
+ q(4375) => [
q(Ilwana),
q(Kiwilwana),
],
- q(4385) => [
+ q(4376) => [
q(Malua Bay),
],
- q(4386) => [
+ q(4377) => [
q(Mulam),
],
- q(4387) => [
+ q(4378) => [
q(Malango),
],
- q(4388) => [
+ q(4379) => [
q(Mlomp),
],
- q(4389) => [
+ q(4380) => [
q(Bargam),
],
- q(4390) => [
+ q(4381) => [
q(Western Maninkakan),
],
- q(4391) => [
+ q(4382) => [
q(Vame),
],
- q(4392) => [
+ q(4383) => [
q(Masalit),
],
- q(4393) => [
+ q(4384) => [
q(To'abaita),
],
- q(4394) => [
+ q(4385) => [
q(Motlav),
q(Mwotlap),
],
- q(4395) => [
+ q(4386) => [
q(Moloko),
],
- q(4396) => [
+ q(4387) => [
q(Malfaxal),
q(Naha'ai),
],
- q(4397) => [
+ q(4388) => [
q(Malaynon),
],
- q(4398) => [
+ q(4389) => [
q(Mama),
],
- q(4399) => [
+ q(4390) => [
q(Momina),
],
- q(4400) => [
+ q(4391) => [
q(Michoacan Mazahua),
],
- q(4401) => [
+ q(4392) => [
q(Maonan),
],
- q(4402) => [
+ q(4393) => [
q(Mae),
],
- q(4403) => [
+ q(4394) => [
q(Mundat),
],
- q(4404) => [
+ q(4395) => [
q(North Ambrym),
],
- q(4405) => [
+ q(4396) => [
q(Mehinaku),
],
- q(4406) => [
+ q(4397) => [
q(Musar),
],
- q(4407) => [
+ q(4398) => [
q(Majhwar),
],
- q(4408) => [
+ q(4399) => [
q(Mukha-Dora),
],
- q(4409) => [
+ q(4400) => [
q(Man Met),
],
- q(4410) => [
+ q(4401) => [
q(Maii),
],
- q(4411) => [
+ q(4402) => [
q(Mamanwa),
],
- q(4412) => [
+ q(4403) => [
q(Mangga Buang),
],
- q(4413) => [
+ q(4404) => [
q(Siawi),
],
- q(4414) => [
+ q(4405) => [
q(Musak),
],
- q(4415) => [
+ q(4406) => [
q(Western Xiangxi Miao),
],
- q(4416) => [
+ q(4407) => [
q(Malalamai),
],
- q(4417) => [
+ q(4408) => [
q(Mmaala),
],
- q(4418) => [
+ q(4409) => [
q(Miriti),
],
- q(4419) => [
+ q(4410) => [
q(Emae),
],
- q(4420) => [
+ q(4411) => [
q(Madak),
],
- q(4421) => [
+ q(4412) => [
q(Migaama),
],
- q(4422) => [
+ q(4413) => [
q(Mabaale),
],
- q(4423) => [
+ q(4414) => [
q(Mbula),
],
- q(4424) => [
+ q(4415) => [
q(Muna),
],
- q(4425) => [
+ q(4416) => [
q(Monde),
],
- q(4426) => [
+ q(4417) => [
q(Naba),
],
- q(4427) => [
+ q(4418) => [
q(Mundani),
],
- q(4428) => [
+ q(4419) => [
q(Eastern Mnong),
],
- q(4429) => [
+ q(4420) => [
q(Mono (Democratic Republic of Congo)),
],
- q(4430) => [
+ q(4421) => [
q(Munji),
],
- q(4431) => [
+ q(4422) => [
q(Mandinka),
],
- q(4432) => [
+ q(4423) => [
q(Tiale),
],
- q(4433) => [
+ q(4424) => [
q(Mapena),
],
- q(4434) => [
+ q(4425) => [
q(Southern Mnong),
],
- q(4435) => [
+ q(4426) => [
q(Min Bei Chinese),
],
- q(4436) => [
+ q(4427) => [
q(Minriq),
],
- q(4437) => [
+ q(4428) => [
q(Mono (USA)),
],
- q(4438) => [
+ q(4429) => [
q(Mansi),
],
- q(4439) => [
+ q(4430) => [
q(Mer),
],
- q(4440) => [
+ q(4431) => [
q(Rennell-Bellona),
],
- q(4441) => [
+ q(4432) => [
q(Mon),
],
- q(4442) => [
+ q(4433) => [
q(Manikion),
],
- q(4443) => [
+ q(4434) => [
q(Manyawa),
],
- q(4444) => [
+ q(4435) => [
q(Moni),
],
- q(4445) => [
+ q(4436) => [
q(Mwan),
],
- q(4446) => [
+ q(4437) => [
q(Mocovi),
],
- q(4447) => [
+ q(4438) => [
q(Mobilian),
],
- q(4448) => [
+ q(4439) => [
q(Montagnais),
],
- q(4449) => [
+ q(4440) => [
q(Mongondow),
],
- q(4450) => [
+ q(4441) => [
q(Mboi),
],
- q(4451) => [
+ q(4442) => [
q(Monzombo),
],
- q(4452) => [
+ q(4443) => [
q(Morori),
],
- q(4453) => [
+ q(4444) => [
q(Mangue),
],
- q(4454) => [
+ q(4445) => [
q(Monom),
],
- q(4455) => [
+ q(4446) => [
q(Mopan Maya),
],
- q(4456) => [
+ q(4447) => [
q(Mor (Bomberai Peninsula)),
],
- q(4457) => [
+ q(4448) => [
q(Moro),
],
- q(4458) => [
+ q(4449) => [
q(Mogum),
],
- q(4459) => [
+ q(4450) => [
q(Mohave),
],
- q(4460) => [
+ q(4451) => [
q(Moi (Congo)),
],
- q(4461) => [
+ q(4452) => [
q(Molima),
],
- q(4462) => [
+ q(4453) => [
q(Shekkacho),
],
- q(4463) => [
+ q(4454) => [
q(Mukulu),
q(Gergiko),
],
- q(4464) => [
+ q(4455) => [
q(Mpoto),
],
- q(4465) => [
+ q(4456) => [
q(Mullukmulluk),
],
- q(4466) => [
+ q(4457) => [
q(Mangarayi),
],
- q(4467) => [
+ q(4458) => [
q(Machinere),
],
- q(4468) => [
+ q(4459) => [
q(Majang),
],
- q(4469) => [
+ q(4460) => [
q(Marba),
],
- q(4470) => [
+ q(4461) => [
q(Maung),
],
- q(4471) => [
+ q(4462) => [
q(Mpade),
],
- q(4472) => [
+ q(4463) => [
q(Martu Wangka),
],
- q(4473) => [
+ q(4464) => [
q(Mbara (Chad)),
],
- q(4474) => [
+ q(4465) => [
q(Middle Watut),
],
- q(4475) => [
+ q(4466) => [
q(Yosondua Mixtec),
],
- q(4476) => [
+ q(4467) => [
q(Mindiri),
],
- q(4477) => [
+ q(4468) => [
q(Miu),
],
- q(4478) => [
+ q(4469) => [
q(Migabac),
],
- q(4479) => [
+ q(4470) => [
q(Matis),
],
- q(4480) => [
+ q(4471) => [
q(Vangunu),
],
- q(4481) => [
+ q(4472) => [
q(Dadibi),
],
- q(4482) => [
+ q(4473) => [
q(Mian),
],
- q(4483) => [
+ q(4474) => [
q(Makurap),
],
- q(4484) => [
+ q(4475) => [
q(Mungkip),
],
- q(4485) => [
+ q(4476) => [
q(Mapidian),
],
- q(4486) => [
+ q(4477) => [
q(Misima-Panaeati),
],
- q(4487) => [
+ q(4478) => [
q(Mapia),
],
- q(4488) => [
+ q(4479) => [
q(Mpi),
],
- q(4489) => [
+ q(4480) => [
q(Maba (Indonesia)),
],
- q(4490) => [
+ q(4481) => [
q(Mbuko),
],
- q(4491) => [
+ q(4482) => [
q(Mangole),
],
- q(4492) => [
+ q(4483) => [
q(Matepi),
],
- q(4493) => [
+ q(4484) => [
q(Momuna),
],
- q(4494) => [
+ q(4485) => [
q(Kota Bangun Kutai Malay),
],
- q(4495) => [
+ q(4486) => [
q(Tlazoyaltepec Mixtec),
],
- q(4496) => [
+ q(4487) => [
q(Mariri),
],
- q(4497) => [
+ q(4488) => [
q(Mamasa),
],
- q(4498) => [
+ q(4489) => [
q(Rajah Kabunsuwan Manobo),
],
- q(4499) => [
+ q(4490) => [
q(Mbelime),
],
- q(4500) => [
+ q(4491) => [
q(South Marquesan),
],
- q(4501) => [
+ q(4492) => [
q(Moronene),
],
- q(4502) => [
+ q(4493) => [
q(Modole),
],
- q(4503) => [
+ q(4494) => [
q(Manipa),
],
- q(4504) => [
+ q(4495) => [
q(Minokok),
],
- q(4505) => [
+ q(4496) => [
q(Mander),
],
- q(4506) => [
+ q(4497) => [
q(West Makian),
],
- q(4507) => [
+ q(4498) => [
q(Mok),
],
- q(4508) => [
+ q(4499) => [
q(Mandari),
],
- q(4509) => [
+ q(4500) => [
q(Mosimo),
],
- q(4510) => [
+ q(4501) => [
q(Murupi),
],
- q(4511) => [
+ q(4502) => [
q(Mamuju),
],
- q(4512) => [
+ q(4503) => [
q(Manggarai),
],
- q(4513) => [
+ q(4504) => [
q(Pano),
],
- q(4514) => [
+ q(4505) => [
q(Mlabri),
],
- q(4515) => [
+ q(4506) => [
q(Marino),
],
- q(4516) => [
+ q(4507) => [
q(Maricopa),
],
- q(4517) => [
+ q(4508) => [
q(Western Magar),
],
- q(4518) => [
+ q(4509) => [
q(Martha's Vineyard Sign Language),
],
- q(4519) => [
+ q(4510) => [
q(Elseng),
],
- q(4520) => [
+ q(4511) => [
q(Mising),
],
- q(4521) => [
+ q(4512) => [
q(Mara Chin),
],
- q(4522) => [
+ q(4513) => [
q(Western Mari),
],
- q(4523) => [
+ q(4514) => [
q(Hmwaveke),
],
- q(4524) => [
+ q(4515) => [
q(Mortlockese),
],
- q(4525) => [
+ q(4516) => [
q(Merlav),
q(Mwerlap),
],
- q(4526) => [
+ q(4517) => [
q(Cheke Holo),
],
- q(4527) => [
+ q(4518) => [
q(Mru),
],
- q(4528) => [
+ q(4519) => [
q(Morouas),
],
- q(4529) => [
+ q(4520) => [
q(North Marquesan),
],
- q(4530) => [
+ q(4521) => [
q(Maria (India)),
],
- q(4531) => [
+ q(4522) => [
q(Maragus),
],
- q(4532) => [
+ q(4523) => [
q(Marghi Central),
],
- q(4533) => [
+ q(4524) => [
q(Mono (Cameroon)),
],
- q(4534) => [
+ q(4525) => [
q(Mangareva),
],
- q(4535) => [
+ q(4526) => [
q(Maranao),
],
- q(4536) => [
+ q(4527) => [
q(Maremgi),
q(Dineor),
],
- q(4537) => [
+ q(4528) => [
q(Mandaya),
],
- q(4538) => [
+ q(4529) => [
q(Marind),
],
- q(4539) => [
+ q(4530) => [
q(Masbatenyo),
],
- q(4540) => [
+ q(4531) => [
q(Sankaran Maninka),
],
- q(4541) => [
+ q(4532) => [
q(Yucatec Maya Sign Language),
],
- q(4542) => [
+ q(4533) => [
q(Musey),
],
- q(4543) => [
+ q(4534) => [
q(Mekwei),
],
- q(4544) => [
+ q(4535) => [
q(Moraid),
],
- q(4545) => [
+ q(4536) => [
q(Masikoro Malagasy),
],
- q(4546) => [
+ q(4537) => [
q(Sabah Malay),
],
- q(4547) => [
+ q(4538) => [
q(Ma (Democratic Republic of Congo)),
],
- q(4548) => [
+ q(4539) => [
q(Mansaka),
],
- q(4549) => [
+ q(4540) => [
q(Molof),
q(Poule),
],
- q(4550) => [
+ q(4541) => [
q(Agusan Manobo),
],
- q(4551) => [
+ q(4542) => [
q(Vures),
],
- q(4552) => [
+ q(4543) => [
q(Mombum),
],
- q(4553) => [
+ q(4544) => [
q(Maritsaua),
],
- q(4554) => [
+ q(4545) => [
q(Caac),
],
- q(4555) => [
+ q(4546) => [
q(Mongolian Sign Language),
],
- q(4556) => [
+ q(4547) => [
q(West Masela),
],
- q(4557) => [
+ q(4548) => [
q(Musom),
],
- q(4558) => [
+ q(4549) => [
q(Maslam),
],
- q(4559) => [
+ q(4550) => [
q(Mansoanka),
],
- q(4560) => [
+ q(4551) => [
q(Moresada),
],
- q(4561) => [
+ q(4552) => [
q(Aruamu),
],
- q(4562) => [
+ q(4553) => [
q(Momare),
],
- q(4563) => [
+ q(4554) => [
q(Cotabato Manobo),
],
- q(4564) => [
+ q(4555) => [
q(Anyin Morofo),
],
- q(4565) => [
+ q(4556) => [
q(Munit),
],
- q(4566) => [
+ q(4557) => [
q(Mualang),
],
- q(4567) => [
+ q(4558) => [
q(Mono (Solomon Islands)),
],
- q(4568) => [
+ q(4559) => [
q(Murik (Papua New Guinea)),
],
- q(4569) => [
+ q(4560) => [
q(Una),
],
- q(4570) => [
+ q(4561) => [
q(Munggui),
],
- q(4571) => [
+ q(4562) => [
q(Maiwa (Papua New Guinea)),
],
- q(4572) => [
+ q(4563) => [
q(Moskona),
],
- q(4573) => [
+ q(4564) => [
q(Mbe'),
],
- q(4574) => [
+ q(4565) => [
q(Montol),
],
- q(4575) => [
+ q(4566) => [
q(Mator),
],
- q(4576) => [
+ q(4567) => [
q(Matagalpa),
],
- q(4577) => [
+ q(4568) => [
q(Totontepec Mixe),
],
- q(4578) => [
+ q(4569) => [
q(Wichi Lhamtes Nocten),
],
- q(4579) => [
+ q(4570) => [
q(Muong),
],
- q(4580) => [
+ q(4571) => [
q(Mewari),
],
- q(4581) => [
+ q(4572) => [
q(Yora),
],
- q(4582) => [
+ q(4573) => [
q(Mota),
],
- q(4583) => [
+ q(4574) => [
q(Tututepec Mixtec),
],
- q(4584) => [
+ q(4575) => [
q(Asaro'o),
],
- q(4585) => [
+ q(4576) => [
q(Southern Binukidnon),
],
- q(4586) => [
+ q(4577) => [
q(Tidaa Mixtec),
],
- q(4587) => [
+ q(4578) => [
q(Nabi),
],
- q(4588) => [
+ q(4579) => [
q(Mundang),
],
- q(4589) => [
+ q(4580) => [
q(Mubi),
],
- q(4590) => [
+ q(4581) => [
q(Ajumbu),
],
- q(4591) => [
+ q(4582) => [
q(Mednyj Aleut),
],
- q(4592) => [
+ q(4583) => [
q(Media Lengua),
],
- q(4593) => [
+ q(4584) => [
q(Musgu),
],
- q(4594) => [
+ q(4585) => [
q(Mundu),
],
- q(4595) => [
+ q(4586) => [
q(Musi),
],
- q(4596) => [
+ q(4587) => [
q(Mabire),
],
- q(4597) => [
+ q(4588) => [
q(Mugom),
],
- q(4598) => [
+ q(4589) => [
q(Maiwala),
],
- q(4599) => [
+ q(4590) => [
q(Nyong),
],
- q(4600) => [
+ q(4591) => [
q(Malvi),
],
- q(4601) => [
+ q(4592) => [
q(Eastern Xiangxi Miao),
],
- q(4602) => [
+ q(4593) => [
q(Murle),
],
- q(4603) => [
+ q(4594) => [
q(Western Muria),
],
- q(4604) => [
+ q(4595) => [
q(Yaaku),
],
- q(4605) => [
+ q(4596) => [
q(Muthuvan),
],
- q(4606) => [
+ q(4597) => [
q(Bo-Ung),
],
- q(4607) => [
+ q(4598) => [
q(Muyang),
],
- q(4608) => [
+ q(4599) => [
q(Mursi),
],
- q(4609) => [
+ q(4600) => [
q(Manam),
],
- q(4610) => [
+ q(4601) => [
q(Mattole),
],
- q(4611) => [
+ q(4602) => [
q(Mamboru),
],
- q(4612) => [
+ q(4603) => [
q(Marwari (Pakistan)),
],
- q(4613) => [
+ q(4604) => [
q(Peripheral Mongolian),
],
- q(4614) => [
+ q(4605) => [
q(Yucuane Mixtec),
],
- q(4615) => [
+ q(4606) => [
q(Mulgi),
],
- q(4616) => [
+ q(4607) => [
q(Miyako),
],
- q(4617) => [
+ q(4608) => [
q(Mekmek),
],
- q(4618) => [
+ q(4609) => [
q(Mbara (Australia)),
],
- q(4619) => [
+ q(4610) => [
q(Muya),
],
- q(4620) => [
+ q(4611) => [
q(Minaveha),
],
- q(4621) => [
+ q(4612) => [
q(Marovo),
],
- q(4622) => [
+ q(4613) => [
q(Duri),
],
- q(4623) => [
+ q(4614) => [
q(Moere),
],
- q(4624) => [
+ q(4615) => [
q(Marau),
],
- q(4625) => [
+ q(4616) => [
q(Massep),
],
- q(4626) => [
+ q(4617) => [
q(Mpotovoro),
],
- q(4627) => [
+ q(4618) => [
q(Marfa),
],
- q(4628) => [
+ q(4619) => [
q(Tagal Murut),
],
- q(4629) => [
+ q(4620) => [
q(Machinga),
],
- q(4630) => [
+ q(4621) => [
q(Meoswar),
],
- q(4631) => [
+ q(4622) => [
q(Indus Kohistani),
],
- q(4632) => [
+ q(4623) => [
q(Mesqan),
],
- q(4633) => [
+ q(4624) => [
q(Mwatebu),
],
- q(4634) => [
+ q(4625) => [
q(Juwal),
],
- q(4635) => [
+ q(4626) => [
q(Are),
],
- q(4636) => [
+ q(4627) => [
q(Mwera (Chimwera)),
],
- q(4637) => [
+ q(4628) => [
q(Murrinh-Patha),
],
- q(4638) => [
+ q(4629) => [
q(Aiklep),
],
- q(4639) => [
+ q(4630) => [
q(Mouk-Aria),
],
- q(4640) => [
+ q(4631) => [
q(Labo),
q(Ninde),
],
- q(4641) => [
- q(Maligo),
- ],
- q(4642) => [
+ q(4632) => [
q(Kita Maninkakan),
],
- q(4643) => [
+ q(4633) => [
q(Sar),
],
- q(4644) => [
+ q(4634) => [
q(Nyamwanga),
],
- q(4645) => [
+ q(4635) => [
q(Central Maewo),
],
- q(4646) => [
+ q(4636) => [
q(Kala Lagaw Ya),
],
- q(4647) => [
+ q(4637) => [
q(Mun Chin),
],
- q(4648) => [
+ q(4638) => [
q(Mwimbi-Muthambi),
],
- q(4649) => [
+ q(4639) => [
q(Moken),
],
- q(4650) => [
+ q(4640) => [
q(Mittu),
],
- q(4651) => [
+ q(4641) => [
q(Mentawai),
],
- q(4652) => [
+ q(4642) => [
q(Hmong Daw),
],
- q(4653) => [
+ q(4643) => [
q(Mediak),
],
- q(4654) => [
+ q(4644) => [
q(Mosiro),
],
- q(4655) => [
+ q(4645) => [
q(Moingi),
],
- q(4656) => [
+ q(4646) => [
q(Northwest Oaxaca Mixtec),
],
- q(4657) => [
+ q(4647) => [
q(Tezoatlan Mixtec),
],
- q(4658) => [
+ q(4648) => [
q(Manyika),
],
- q(4659) => [
+ q(4649) => [
q(Modang),
],
- q(4660) => [
+ q(4650) => [
q(Mele-Fila),
],
- q(4661) => [
+ q(4651) => [
q(Malgbe),
],
- q(4662) => [
+ q(4652) => [
q(Mbangala),
],
- q(4663) => [
+ q(4653) => [
q(Mvuba),
],
- q(4664) => [
+ q(4654) => [
q(Mozarabic),
],
- q(4665) => [
+ q(4655) => [
q(Miju-Mishmi),
q(Geman Deng),
],
- q(4666) => [
+ q(4656) => [
q(Monumbo),
],
- q(4667) => [
+ q(4657) => [
q(Maxi Gbe),
],
- q(4668) => [
+ q(4658) => [
q(Meramera),
],
- q(4669) => [
+ q(4659) => [
q(Moi (Indonesia)),
],
- q(4670) => [
+ q(4660) => [
q(Mbowe),
],
- q(4671) => [
+ q(4661) => [
q(Tlahuitoltepec Mixe),
],
- q(4672) => [
+ q(4662) => [
q(Juquila Mixe),
],
- q(4673) => [
+ q(4663) => [
q(Murik (Malaysia)),
],
- q(4674) => [
+ q(4664) => [
q(Huitepec Mixtec),
],
- q(4675) => [
+ q(4665) => [
q(Jamiltepec Mixtec),
],
- q(4676) => [
+ q(4666) => [
q(Mada (Cameroon)),
],
- q(4677) => [
+ q(4667) => [
q(Metlatonoc Mixtec),
],
- q(4678) => [
+ q(4668) => [
q(Namo),
],
- q(4679) => [
+ q(4669) => [
q(Mahou),
q(Mawukakan),
],
- q(4680) => [
+ q(4670) => [
q(Southeastern Nochixtlan Mixtec),
],
- q(4681) => [
+ q(4671) => [
q(Central Masela),
],
- q(4682) => [
+ q(4672) => [
q(Mbay),
],
- q(4683) => [
+ q(4673) => [
q(Mayeka),
],
- q(4684) => [
+ q(4674) => [
q(Maramba),
],
- q(4685) => [
+ q(4675) => [
q(Myene),
],
- q(4686) => [
+ q(4676) => [
q(Bambassi),
],
- q(4687) => [
+ q(4677) => [
q(Manta),
],
- q(4688) => [
+ q(4678) => [
q(Makah),
],
- q(4689) => [
+ q(4679) => [
q(Mina (India)),
],
- q(4690) => [
+ q(4680) => [
q(Mangayat),
],
- q(4691) => [
+ q(4681) => [
q(Mamara Senoufo),
],
- q(4692) => [
+ q(4682) => [
q(Moma),
],
- q(4693) => [
+ q(4683) => [
q(Me'en),
],
- q(4694) => [
+ q(4684) => [
q(Anfillo),
],
- q(4695) => [
+ q(4685) => [
q(Piraha),
],
- q(4696) => [
+ q(4686) => [
q(Muniche),
],
- q(4697) => [
+ q(4687) => [
q(Mesmes),
],
- q(4698) => [
+ q(4688) => [
q(Munduruku),
],
- q(4699) => [
+ q(4689) => [
q(Muyuw),
],
- q(4700) => [
+ q(4690) => [
q(Masaaba),
],
- q(4701) => [
+ q(4691) => [
q(Macuna),
],
- q(4702) => [
+ q(4692) => [
q(Classical Mandaic),
],
- q(4703) => [
+ q(4693) => [
q(Santa Maria Zacatepec Mixtec),
],
- q(4704) => [
+ q(4694) => [
q(Tumzabt),
],
- q(4705) => [
+ q(4695) => [
q(Madagascar Sign Language),
],
- q(4706) => [
+ q(4696) => [
q(Malimba),
],
- q(4707) => [
+ q(4697) => [
q(Morawa),
],
- q(4708) => [
+ q(4698) => [
q(Monastic Sign Language),
],
- q(4709) => [
+ q(4699) => [
q(Wichi Lhamtes Guisnay),
],
- q(4710) => [
+ q(4700) => [
q(Ixcatlan Mazatec),
],
- q(4711) => [
+ q(4701) => [
q(Manya),
],
- q(4712) => [
+ q(4702) => [
q(Nigeria Mambila),
],
- q(4713) => [
+ q(4703) => [
q(Mazatlan Mixe),
],
- q(4714) => [
+ q(4704) => [
q(Mumuye),
],
- q(4715) => [
+ q(4705) => [
q(Mazanderani),
],
- q(4716) => [
+ q(4706) => [
q(Matipuhy),
],
- q(4717) => [
+ q(4707) => [
q(Movima),
],
- q(4718) => [
+ q(4708) => [
q(Mori Atas),
],
- q(4719) => [
+ q(4709) => [
q(Marubo),
],
- q(4720) => [
+ q(4710) => [
q(Macanese),
],
- q(4721) => [
+ q(4711) => [
q(Mintil),
],
- q(4722) => [
+ q(4712) => [
q(Inapang),
],
- q(4723) => [
+ q(4713) => [
q(Manza),
],
- q(4724) => [
+ q(4714) => [
q(Deg),
],
- q(4725) => [
+ q(4715) => [
q(Mawayana),
],
- q(4726) => [
+ q(4716) => [
q(Mozambican Sign Language),
],
- q(4727) => [
+ q(4717) => [
q(Maiadomu),
],
- q(4728) => [
+ q(4718) => [
q(Namla),
],
- q(4729) => [
+ q(4719) => [
q(Southern Nambikuara),
],
- q(4730) => [
+ q(4720) => [
q(Narak),
],
- q(4731) => [
+ q(4721) => [
q(Nijadali),
],
- q(4732) => [
+ q(4722) => [
q(Naka'ela),
],
- q(4733) => [
+ q(4723) => [
q(Nabak),
],
- q(4734) => [
+ q(4724) => [
q(Naga Pidgin),
],
- q(4735) => [
+ q(4725) => [
q(Nalu),
],
- q(4736) => [
+ q(4726) => [
q(Nakanai),
],
- q(4737) => [
+ q(4727) => [
q(Nalik),
],
- q(4738) => [
+ q(4728) => [
q(Ngan'gityemerri),
],
- q(4739) => [
+ q(4729) => [
q(Min Nan Chinese),
],
- q(4740) => [
+ q(4730) => [
q(Naaba),
],
- q(4741) => [
+ q(4731) => [
+ q(Khoekhoe),
q(Nama (Namibia)),
],
- q(4742) => [
+ q(4732) => [
q(Iguta),
],
- q(4743) => [
+ q(4733) => [
q(Naasioi),
],
- q(4744) => [
+ q(4734) => [
+ q(Cahungwarya),
q(Hungworo),
],
- q(4745) => [
+ q(4735) => [
q(Nawuri),
],
- q(4746) => [
+ q(4736) => [
q(Nakwi),
],
- q(4747) => [
+ q(4737) => [
q(Narrinyeri),
],
- q(4748) => [
+ q(4738) => [
q(Coatepec Nahuatl),
],
- q(4749) => [
+ q(4739) => [
q(Nyemba),
],
- q(4750) => [
+ q(4740) => [
q(Ndoe),
],
- q(4751) => [
+ q(4741) => [
q(Chang Naga),
],
- q(4752) => [
+ q(4742) => [
q(Ngbinda),
],
- q(4753) => [
+ q(4743) => [
q(Konyak Naga),
],
- q(4754) => [
+ q(4744) => [
q(Nagarchal),
],
- q(4755) => [
+ q(4745) => [
q(Ngamo),
],
- q(4756) => [
+ q(4746) => [
q(Mao Naga),
],
- q(4757) => [
+ q(4747) => [
q(Ngarinman),
],
- q(4758) => [
+ q(4748) => [
q(Nake),
],
- q(4759) => [
+ q(4749) => [
q(Ngbaka Ma'bo),
],
- q(4760) => [
+ q(4750) => [
q(Kuri),
],
- q(4761) => [
+ q(4751) => [
q(Nkukoli),
],
- q(4762) => [
+ q(4752) => [
q(Nnam),
],
- q(4763) => [
+ q(4753) => [
q(Nggem),
],
- q(4764) => [
+ q(4754) => [
q(Numana-Nunku-Gbantu-Numbu),
],
- q(4765) => [
+ q(4755) => [
q(Namibian Sign Language),
],
- q(4766) => [
+ q(4756) => [
q(Na),
],
- q(4767) => [
+ q(4757) => [
q(Rongmei Naga),
],
- q(4768) => [
+ q(4758) => [
q(Ngamambo),
],
- q(4769) => [
+ q(4759) => [
q(Southern Ngbandi),
],
- q(4770) => [
+ q(4760) => [
q(Ningera),
],
- q(4771) => [
+ q(4761) => [
q(Iyo),
],
- q(4772) => [
+ q(4762) => [
q(Central Nicobarese),
],
- q(4773) => [
+ q(4763) => [
q(Ponam),
],
- q(4774) => [
+ q(4764) => [
q(Nachering),
],
- q(4775) => [
+ q(4765) => [
q(Yale),
],
- q(4776) => [
+ q(4766) => [
q(Notsi),
],
- q(4777) => [
+ q(4767) => [
q(Nisga'a),
],
- q(4778) => [
+ q(4768) => [
q(Central Huasteca Nahuatl),
],
- q(4779) => [
+ q(4769) => [
q(Classical Nahuatl),
],
- q(4780) => [
+ q(4770) => [
q(Northern Puebla Nahuatl),
],
- q(4781) => [
+ q(4771) => [
q(Nakara),
],
- q(4782) => [
+ q(4772) => [
q(Michoacan Nahuatl),
],
- q(4783) => [
+ q(4773) => [
q(Nambo),
],
- q(4784) => [
+ q(4774) => [
q(Nauna),
],
- q(4785) => [
+ q(4775) => [
q(Sibe),
],
- q(4786) => [
+ q(4776) => [
q(Ndaktup),
],
- q(4787) => [
+ q(4777) => [
q(Ncane),
],
- q(4788) => [
+ q(4778) => [
q(Nicaraguan Sign Language),
],
- q(4789) => [
+ q(4779) => [
q(Chothe Naga),
],
- q(4790) => [
+ q(4780) => [
q(Chumburung),
],
- q(4791) => [
+ q(4781) => [
q(Central Puebla Nahuatl),
],
- q(4792) => [
+ q(4782) => [
q(Natchez),
],
- q(4793) => [
+ q(4783) => [
q(Ndasa),
],
- q(4794) => [
+ q(4784) => [
q(Kenswei Nsei),
],
- q(4795) => [
+ q(4785) => [
q(Ndau),
],
- q(4796) => [
+ q(4786) => [
q(Nde-Nsele-Nta),
],
- q(4797) => [
+ q(4787) => [
q(Nadruvian),
],
- q(4798) => [
+ q(4788) => [
q(Ndengereko),
],
- q(4799) => [
+ q(4789) => [
q(Ndali),
],
- q(4800) => [
+ q(4790) => [
q(Samba Leko),
],
- q(4801) => [
+ q(4791) => [
q(Ndamba),
],
- q(4802) => [
+ q(4792) => [
q(Ndaka),
],
- q(4803) => [
+ q(4793) => [
q(Ndolo),
],
- q(4804) => [
+ q(4794) => [
q(Ndam),
],
- q(4805) => [
+ q(4795) => [
q(Ngundi),
],
- q(4806) => [
+ q(4796) => [
q(Ndo),
],
- q(4807) => [
+ q(4797) => [
q(Ndombe),
],
- q(4808) => [
+ q(4798) => [
q(Ndoola),
],
- q(4809) => [
+ q(4799) => [
q(Ndunga),
],
- q(4810) => [
+ q(4800) => [
q(Dugun),
],
- q(4811) => [
+ q(4801) => [
q(Ndut),
],
- q(4812) => [
+ q(4802) => [
q(Ndobo),
],
- q(4813) => [
+ q(4803) => [
q(Nduga),
],
- q(4814) => [
+ q(4804) => [
q(Lutos),
],
- q(4815) => [
+ q(4805) => [
q(Ndogo),
],
- q(4816) => [
+ q(4806) => [
q(Eastern Ngad'a),
],
- q(4817) => [
+ q(4807) => [
q(Toura (Cote d'Ivoire)),
],
- q(4818) => [
+ q(4808) => [
q(Nedebang),
],
- q(4819) => [
+ q(4809) => [
q(Nde-Gbite),
],
- q(4820) => [
+ q(4810) => [
q(Nelemwa-Nixumwak),
],
- q(4821) => [
+ q(4811) => [
q(Nefamese),
],
- q(4822) => [
+ q(4812) => [
q(Negidal),
],
- q(4823) => [
+ q(4813) => [
q(Nyenkha),
],
- q(4824) => [
+ q(4814) => [
q(Neo-Hittite),
],
- q(4825) => [
+ q(4815) => [
q(Neko),
],
- q(4826) => [
+ q(4816) => [
q(Neku),
],
- q(4827) => [
+ q(4817) => [
q(Nemi),
],
- q(4828) => [
+ q(4818) => [
q(Nengone),
],
- q(4829) => [
+ q(4819) => [
q(Na-Meo),
],
- q(4830) => [
+ q(4820) => [
q(North Central Mixe),
],
- q(4831) => [
+ q(4821) => [
q(Yahadian),
],
- q(4832) => [
+ q(4822) => [
q(Bhoti Kinnauri),
],
- q(4833) => [
+ q(4823) => [
q(Nete),
],
- q(4834) => [
+ q(4824) => [
q(Neo),
],
- q(4835) => [
+ q(4825) => [
q(Nyaheun),
],
- q(4836) => [
+ q(4826) => [
q(Neme),
],
- q(4837) => [
+ q(4827) => [
q(Neyo),
],
- q(4838) => [
+ q(4828) => [
q(Nez Perce),
],
- q(4839) => [
+ q(4829) => [
q(Dhao),
],
- q(4840) => [
+ q(4830) => [
q(Ahwai),
],
- q(4841) => [
+ q(4831) => [
q(Ayiwo),
q(Aiwoo),
],
- q(4842) => [
+ q(4832) => [
q(Nafaanra),
],
- q(4843) => [
+ q(4833) => [
q(Mfumte),
],
- q(4844) => [
+ q(4834) => [
q(Ngbaka),
],
- q(4845) => [
+ q(4835) => [
q(Northern Ngbandi),
],
- q(4846) => [
+ q(4836) => [
q(Ngombe (Democratic Republic of Congo)),
],
- q(4847) => [
+ q(4837) => [
q(Ngando (Central African Republic)),
],
- q(4848) => [
+ q(4838) => [
q(Ngemba),
],
- q(4849) => [
+ q(4839) => [
q(Ngbaka Manza),
],
- q(4850) => [
+ q(4840) => [
q(N/u),
],
- q(4851) => [
+ q(4841) => [
q(Ngizim),
],
- q(4852) => [
+ q(4842) => [
q(Ngie),
],
- q(4853) => [
+ q(4843) => [
q(Dalabon),
],
- q(4854) => [
+ q(4844) => [
q(Lomwe),
],
- q(4855) => [
+ q(4845) => [
q(Ngatik Men's Creole),
],
- q(4856) => [
+ q(4846) => [
q(Ngwo),
],
- q(4857) => [
+ q(4847) => [
q(Ngoni),
],
- q(4858) => [
+ q(4848) => [
q(Ngulu),
],
- q(4859) => [
+ q(4849) => [
q(Ngurimi),
q(Ngoreme),
],
- q(4860) => [
+ q(4850) => [
q(Engdewu),
],
- q(4861) => [
+ q(4851) => [
q(Gvoko),
],
- q(4862) => [
+ q(4852) => [
q(Ngeq),
],
- q(4863) => [
+ q(4853) => [
q(Guerrero Nahuatl),
],
- q(4864) => [
+ q(4854) => [
q(Nagumi),
],
- q(4865) => [
+ q(4855) => [
q(Ngwaba),
],
- q(4866) => [
+ q(4856) => [
q(Nggwahyi),
],
- q(4867) => [
+ q(4857) => [
q(Tibea),
],
- q(4868) => [
+ q(4858) => [
q(Ngungwel),
],
- q(4869) => [
+ q(4859) => [
q(Nhanda),
],
- q(4870) => [
+ q(4860) => [
q(Beng),
],
- q(4871) => [
+ q(4861) => [
q(Tabasco Nahuatl),
],
- q(4872) => [
+ q(4862) => [
q(Chiripa),
q(Ava Guarani),
],
- q(4873) => [
+ q(4863) => [
q(Eastern Huasteca Nahuatl),
],
- q(4874) => [
+ q(4864) => [
q(Nhuwala),
],
- q(4875) => [
+ q(4865) => [
q(Tetelcingo Nahuatl),
],
- q(4876) => [
+ q(4866) => [
q(Nahari),
],
- q(4877) => [
+ q(4867) => [
q(Zacatlan-Ahuacatlan-Tepetzintla Nahuatl),
],
- q(4878) => [
+ q(4868) => [
q(Isthmus-Cosoleacaque Nahuatl),
],
- q(4879) => [
+ q(4869) => [
q(Morelos Nahuatl),
],
- q(4880) => [
+ q(4870) => [
q(Central Nahuatl),
],
- q(4881) => [
+ q(4871) => [
q(Takuu),
],
- q(4882) => [
+ q(4872) => [
q(Isthmus-Pajapan Nahuatl),
],
- q(4883) => [
+ q(4873) => [
q(Huaxcaleca Nahuatl),
],
- q(4884) => [
+ q(4874) => [
q(Naro),
],
- q(4885) => [
+ q(4875) => [
q(Ometepec Nahuatl),
],
- q(4886) => [
+ q(4876) => [
q(Noone),
],
- q(4887) => [
+ q(4877) => [
q(Temascaltepec Nahuatl),
],
- q(4888) => [
+ q(4878) => [
q(Western Huasteca Nahuatl),
],
- q(4889) => [
+ q(4879) => [
q(Isthmus-Mecayapan Nahuatl),
],
- q(4890) => [
+ q(4880) => [
q(Northern Oaxaca Nahuatl),
],
- q(4891) => [
+ q(4881) => [
q(Santa Maria La Alta Nahuatl),
],
- q(4892) => [
+ q(4882) => [
q(Nakame),
],
- q(4893) => [
+ q(4883) => [
q(Ngandi),
],
- q(4894) => [
+ q(4884) => [
q(Niellim),
],
- q(4895) => [
+ q(4885) => [
q(Nek),
],
- q(4896) => [
+ q(4886) => [
q(Ngalakan),
],
- q(4897) => [
+ q(4887) => [
q(Nyiha (Tanzania)),
],
- q(4898) => [
+ q(4888) => [
q(Nii),
],
- q(4899) => [
+ q(4889) => [
q(Ngaju),
],
- q(4900) => [
+ q(4890) => [
q(Southern Nicobarese),
],
- q(4901) => [
+ q(4891) => [
q(Nila),
],
- q(4902) => [
+ q(4892) => [
q(Nilamba),
],
- q(4903) => [
+ q(4893) => [
q(Ninzo),
],
- q(4904) => [
+ q(4894) => [
q(Nganasan),
],
- q(4905) => [
+ q(4895) => [
q(Nandi),
],
- q(4906) => [
+ q(4896) => [
q(Nimboran),
],
- q(4907) => [
+ q(4897) => [
q(Nimi),
],
- q(4908) => [
+ q(4898) => [
q(Southeastern Kolami),
],
- q(4909) => [
+ q(4899) => [
q(Gilyak),
],
- q(4910) => [
+ q(4900) => [
q(Nimo),
],
- q(4911) => [
+ q(4901) => [
q(Hema),
],
- q(4912) => [
+ q(4902) => [
q(Ngiti),
],
- q(4913) => [
+ q(4903) => [
q(Ningil),
],
- q(4914) => [
+ q(4904) => [
q(Nzanyi),
],
- q(4915) => [
+ q(4905) => [
q(Nocte Naga),
],
- q(4916) => [
+ q(4906) => [
q(Ndonde Hamba),
],
- q(4917) => [
+ q(4907) => [
q(Lotha Naga),
],
- q(4918) => [
+ q(4908) => [
q(Gudanji),
],
- q(4919) => [
+ q(4909) => [
q(Njen),
],
- q(4920) => [
+ q(4910) => [
q(Njalgulgule),
],
- q(4921) => [
+ q(4911) => [
q(Angami Naga),
],
- q(4922) => [
+ q(4912) => [
q(Liangmai Naga),
],
- q(4923) => [
+ q(4913) => [
q(Ao Naga),
],
- q(4924) => [
+ q(4914) => [
q(Njerep),
],
- q(4925) => [
+ q(4915) => [
q(Nisa),
],
- q(4926) => [
+ q(4916) => [
q(Ndyuka-Trio Pidgin),
],
- q(4927) => [
+ q(4917) => [
q(Ngadjunmaya),
],
- q(4928) => [
+ q(4918) => [
q(Kunyi),
],
- q(4929) => [
+ q(4919) => [
q(Njyem),
],
- q(4930) => [
+ q(4920) => [
q(Nyishi),
],
- q(4931) => [
+ q(4921) => [
q(Nkoya),
],
- q(4932) => [
+ q(4922) => [
q(Khoibu Naga),
],
- q(4933) => [
+ q(4923) => [
q(Nkongho),
],
- q(4934) => [
+ q(4924) => [
q(Koireng),
],
- q(4935) => [
+ q(4925) => [
q(Duke),
],
- q(4936) => [
+ q(4926) => [
q(Inpui Naga),
],
- q(4937) => [
+ q(4927) => [
q(Nekgini),
],
- q(4938) => [
+ q(4928) => [
q(Khezha Naga),
],
- q(4939) => [
+ q(4929) => [
q(Thangal Naga),
],
- q(4940) => [
+ q(4930) => [
q(Nakai),
],
- q(4941) => [
+ q(4931) => [
q(Nokuku),
],
- q(4942) => [
+ q(4932) => [
q(Namat),
],
- q(4943) => [
+ q(4933) => [
q(Nkangala),
],
- q(4944) => [
+ q(4934) => [
q(Nkonya),
],
- q(4945) => [
+ q(4935) => [
q(Niuatoputapu),
],
- q(4946) => [
+ q(4936) => [
q(Nkami),
],
- q(4947) => [
+ q(4937) => [
q(Nukuoro),
],
- q(4948) => [
+ q(4938) => [
q(North Asmat),
],
- q(4949) => [
+ q(4939) => [
q(Nyika (Tanzania)),
],
- q(4950) => [
+ q(4940) => [
q(Bouna Kulango),
],
- q(4951) => [
+ q(4941) => [
q(Nyika (Malawi and Zambia)),
],
- q(4952) => [
+ q(4942) => [
q(Nkutu),
],
- q(4953) => [
+ q(4943) => [
q(Nkoroo),
],
- q(4954) => [
+ q(4944) => [
q(Nkari),
],
- q(4955) => [
+ q(4945) => [
q(Ngombale),
],
- q(4956) => [
+ q(4946) => [
q(Nalca),
],
- q(4957) => [
+ q(4947) => [
q(East Nyala),
],
- q(4958) => [
+ q(4948) => [
q(Gela),
],
- q(4959) => [
+ q(4949) => [
q(Grangali),
],
- q(4960) => [
+ q(4950) => [
q(Nyali),
],
- q(4961) => [
+ q(4951) => [
q(Ninia Yali),
],
- q(4962) => [
+ q(4952) => [
q(Nihali),
],
- q(4963) => [
+ q(4953) => [
q(Ngul),
],
- q(4964) => [
+ q(4954) => [
q(Lao Naga),
],
- q(4965) => [
+ q(4955) => [
q(Nchumbulu),
],
- q(4966) => [
+ q(4956) => [
q(Orizaba Nahuatl),
],
- q(4967) => [
+ q(4957) => [
q(Walangama),
],
- q(4968) => [
+ q(4958) => [
q(Nahali),
],
- q(4969) => [
+ q(4959) => [
q(Nyamal),
],
- q(4970) => [
+ q(4960) => [
q(Nalogo),
],
- q(4971) => [
+ q(4961) => [
q(Maram Naga),
],
- q(4972) => [
+ q(4962) => [
q(Big Nambas),
q(V'enen Taut),
],
- q(4973) => [
+ q(4963) => [
q(Ngam),
],
- q(4974) => [
+ q(4964) => [
q(Ndumu),
],
- q(4975) => [
+ q(4965) => [
q(Mzieme Naga),
],
- q(4976) => [
+ q(4966) => [
q(Tangkhul Naga (India)),
],
- q(4977) => [
+ q(4967) => [
q(Kwasio),
],
- q(4978) => [
+ q(4968) => [
q(Monsang Naga),
],
- q(4979) => [
+ q(4969) => [
q(Nyam),
],
- q(4980) => [
+ q(4970) => [
q(Ngombe (Central African Republic)),
],
- q(4981) => [
+ q(4971) => [
q(Namakura),
],
- q(4982) => [
+ q(4972) => [
q(Ndemli),
],
- q(4983) => [
+ q(4973) => [
q(Manangba),
],
- q(4984) => [
+ q(4974) => [
q(!Xoo),
],
- q(4985) => [
+ q(4975) => [
q(Moyon Naga),
],
- q(4986) => [
+ q(4976) => [
q(Nimanbur),
],
- q(4987) => [
+ q(4977) => [
q(Nambya),
],
- q(4988) => [
+ q(4978) => [
q(Nimbari),
],
- q(4989) => [
+ q(4979) => [
q(Letemboi),
],
- q(4990) => [
+ q(4980) => [
q(Namonuito),
],
- q(4991) => [
+ q(4981) => [
q(Northeast Maidu),
],
- q(4992) => [
+ q(4982) => [
q(Ngamini),
],
- q(4993) => [
+ q(4983) => [
q(Nimoa),
+ q(Rifao),
],
- q(4994) => [
+ q(4984) => [
q(Nama (Papua New Guinea)),
],
- q(4995) => [
+ q(4985) => [
q(Namuyi),
],
- q(4996) => [
+ q(4986) => [
q(Nawdm),
],
- q(4997) => [
+ q(4987) => [
q(Nyangumarta),
],
- q(4998) => [
+ q(4988) => [
q(Nande),
],
- q(4999) => [
+ q(4989) => [
q(Nancere),
],
- q(5000) => [
+ q(4990) => [
q(West Ambae),
],
- q(5001) => [
+ q(4991) => [
q(Ngandyera),
],
- q(5002) => [
+ q(4992) => [
q(Ngaing),
],
- q(5003) => [
+ q(4993) => [
q(Maring Naga),
],
- q(5004) => [
+ q(4994) => [
q(Ngiemboon),
],
- q(5005) => [
+ q(4995) => [
q(North Nuaulu),
],
- q(5006) => [
+ q(4996) => [
q(Nyangatom),
],
- q(5007) => [
+ q(4997) => [
q(Nankina),
],
- q(5008) => [
+ q(4998) => [
q(Northern Rengma Naga),
],
- q(5009) => [
+ q(4999) => [
q(Namia),
],
- q(5010) => [
+ q(5000) => [
q(Ngete),
],
- q(5011) => [
+ q(5001) => [
q(Wancho Naga),
],
- q(5012) => [
+ q(5002) => [
q(Ngindo),
],
- q(5013) => [
+ q(5003) => [
q(Narungga),
],
- q(5014) => [
+ q(5004) => [
q(Ningye),
],
- q(5015) => [
+ q(5005) => [
q(Nanticoke),
],
- q(5016) => [
+ q(5006) => [
q(Dwang),
],
- q(5017) => [
+ q(5007) => [
q(Nugunu (Australia)),
],
- q(5018) => [
+ q(5008) => [
q(Southern Nuni),
],
- q(5019) => [
- q(Ngong),
- ],
- q(5020) => [
+ q(5009) => [
q(Nyangga),
],
- q(5021) => [
+ q(5010) => [
q(Nda'nda'),
],
- q(5022) => [
+ q(5011) => [
q(Woun Meu),
],
- q(5023) => [
+ q(5012) => [
q(Nuk),
],
- q(5024) => [
+ q(5013) => [
q(Northern Thai),
],
- q(5025) => [
+ q(5014) => [
q(Nimadi),
],
- q(5026) => [
+ q(5015) => [
q(Nomane),
],
- q(5027) => [
+ q(5016) => [
q(Nomu),
],
- q(5028) => [
+ q(5017) => [
q(Noiri),
],
- q(5029) => [
+ q(5018) => [
q(Nonuya),
],
- q(5030) => [
+ q(5019) => [
q(Nooksack),
],
- q(5031) => [
+ q(5020) => [
q(Nomlaki),
],
- q(5032) => [
+ q(5021) => [
q(Nocaman),
],
- q(5033) => [
+ q(5022) => [
q(Numanggang),
],
- q(5034) => [
+ q(5023) => [
q(Ngongo),
],
- q(5035) => [
+ q(5024) => [
q(Eastern Nisu),
],
- q(5036) => [
+ q(5025) => [
q(Nomatsiguenga),
],
- q(5037) => [
+ q(5026) => [
q(Ewage-Notu),
],
- q(5038) => [
+ q(5027) => [
q(Novial),
],
- q(5039) => [
+ q(5028) => [
q(Nyambo),
],
- q(5040) => [
+ q(5029) => [
q(Noy),
],
- q(5041) => [
+ q(5030) => [
q(Nayi),
],
- q(5042) => [
+ q(5031) => [
q(Nar Phu),
],
- q(5043) => [
+ q(5032) => [
q(Nupbikha),
],
- q(5044) => [
+ q(5033) => [
q(Ponyo-Gongwang Naga),
],
- q(5045) => [
+ q(5034) => [
q(Phom Naga),
],
- q(5046) => [
+ q(5035) => [
q(Nepali (individual language)),
],
- q(5047) => [
+ q(5036) => [
q(Southeastern Puebla Nahuatl),
],
- q(5048) => [
+ q(5037) => [
q(Mondropolon),
],
- q(5049) => [
+ q(5038) => [
q(Pochuri Naga),
],
- q(5050) => [
+ q(5039) => [
q(Nipsan),
],
- q(5051) => [
+ q(5040) => [
q(Puimei Naga),
],
- q(5052) => [
+ q(5041) => [
q(Napu),
],
- q(5053) => [
+ q(5042) => [
q(Southern Nago),
],
- q(5054) => [
+ q(5043) => [
q(Kura Ede Nago),
],
- q(5055) => [
+ q(5044) => [
q(Ndom),
],
- q(5056) => [
+ q(5045) => [
q(Nen),
],
- q(5057) => [
+ q(5046) => [
q(Kyan-Karyaw Naga),
],
- q(5058) => [
+ q(5047) => [
q(Akyaung Ari Naga),
],
- q(5059) => [
+ q(5048) => [
q(Ngom),
],
- q(5060) => [
+ q(5049) => [
q(Nara),
],
- q(5061) => [
+ q(5050) => [
q(Noric),
],
- q(5062) => [
+ q(5051) => [
q(Southern Rengma Naga),
],
- q(5063) => [
+ q(5052) => [
+ q(Jerriais),
+ q(Guernesiais),
+ ],
+ q(5053) => [
q(Narango),
],
- q(5064) => [
+ q(5054) => [
q(Chokri Naga),
],
- q(5065) => [
+ q(5055) => [
q(Ngarla),
],
- q(5066) => [
+ q(5056) => [
q(Ngarluma),
],
- q(5067) => [
+ q(5057) => [
q(Narom),
],
- q(5068) => [
+ q(5058) => [
q(Norn),
],
- q(5069) => [
+ q(5059) => [
q(North Picene),
],
- q(5070) => [
+ q(5060) => [
q(Norra),
q(Nora),
],
- q(5071) => [
+ q(5061) => [
q(Northern Kalapuya),
],
- q(5072) => [
+ q(5062) => [
q(Narua),
],
- q(5073) => [
+ q(5063) => [
q(Ngurmbur),
],
- q(5074) => [
+ q(5064) => [
q(Lala),
],
- q(5075) => [
+ q(5065) => [
q(Sangtam Naga),
],
- q(5076) => [
+ q(5066) => [
q(Nshi),
],
- q(5077) => [
+ q(5067) => [
q(Southern Nisu),
],
- q(5078) => [
+ q(5068) => [
q(Nsenga),
],
- q(5079) => [
+ q(5069) => [
q(Northwestern Nisu),
],
- q(5080) => [
+ q(5070) => [
q(Ngasa),
],
- q(5081) => [
+ q(5071) => [
q(Ngoshie),
],
- q(5082) => [
+ q(5072) => [
q(Nigerian Sign Language),
],
- q(5083) => [
+ q(5073) => [
q(Naskapi),
],
- q(5084) => [
+ q(5074) => [
q(Norwegian Sign Language),
],
- q(5085) => [
+ q(5075) => [
q(Sumi Naga),
],
- q(5086) => [
+ q(5076) => [
q(Nehan),
],
- q(5087) => [
+ q(5077) => [
q(Nepalese Sign Language),
],
- q(5088) => [
+ q(5078) => [
q(Northern Sierra Miwok),
],
- q(5089) => [
+ q(5079) => [
q(Maritime Sign Language),
],
- q(5090) => [
+ q(5080) => [
q(Nali),
],
- q(5091) => [
+ q(5081) => [
q(Tase Naga),
],
- q(5092) => [
+ q(5082) => [
q(Sierra Negra Nahuatl),
],
- q(5093) => [
+ q(5083) => [
q(Southwestern Nisu),
],
- q(5094) => [
+ q(5084) => [
q(Navut),
],
- q(5095) => [
+ q(5085) => [
q(Nsongo),
],
- q(5096) => [
+ q(5086) => [
q(Nasal),
],
- q(5097) => [
+ q(5087) => [
q(Nisenan),
],
- q(5098) => [
+ q(5088) => [
q(Nathembo),
],
- q(5099) => [
+ q(5089) => [
q(Ngantangarra),
],
- q(5100) => [
+ q(5090) => [
q(Natioro),
],
- q(5101) => [
+ q(5091) => [
q(Ngaanyatjarra),
],
- q(5102) => [
+ q(5092) => [
q(Ikoma-Nata-Isenye),
],
- q(5103) => [
+ q(5093) => [
q(Nateni),
],
- q(5104) => [
+ q(5094) => [
q(Ntomba),
],
- q(5105) => [
+ q(5095) => [
q(Northern Tepehuan),
],
- q(5106) => [
+ q(5096) => [
q(Delo),
],
- q(5107) => [
+ q(5097) => [
q(Natagaimas),
],
- q(5108) => [
+ q(5098) => [
q(Natugu),
],
- q(5109) => [
+ q(5099) => [
q(Nottoway),
],
- q(5110) => [
+ q(5100) => [
q(Tangkhul Naga (Myanmar)),
],
- q(5111) => [
+ q(5101) => [
q(Mantsi),
],
- q(5112) => [
+ q(5102) => [
q(Natanzi),
],
- q(5113) => [
+ q(5103) => [
q(Yuanga),
],
- q(5114) => [
+ q(5104) => [
q(Nukuini),
],
- q(5115) => [
+ q(5105) => [
q(Ngala),
],
- q(5116) => [
+ q(5106) => [
q(Ngundu),
],
- q(5117) => [
+ q(5107) => [
q(Nusu),
],
- q(5118) => [
+ q(5108) => [
q(Nungali),
],
- q(5119) => [
+ q(5109) => [
q(Ndunda),
],
- q(5120) => [
+ q(5110) => [
q(Ngumbi),
],
- q(5121) => [
+ q(5111) => [
q(Nyole),
],
- q(5122) => [
+ q(5112) => [
q(Nuu-chah-nulth),
q(Nuuchahnulth),
],
- q(5123) => [
+ q(5113) => [
q(Nusa Laut),
],
- q(5124) => [
+ q(5114) => [
q(Niuafo'ou),
],
- q(5125) => [
+ q(5115) => [
q(Anong),
],
- q(5126) => [
+ q(5116) => [
q(Nguon),
],
- q(5127) => [
+ q(5117) => [
q(Nupe-Nupe-Tako),
],
- q(5128) => [
+ q(5118) => [
q(Nukumanu),
],
- q(5129) => [
+ q(5119) => [
q(Nukuria),
],
- q(5130) => [
+ q(5120) => [
q(Nuer),
],
- q(5131) => [
+ q(5121) => [
q(Nung (Viet Nam)),
],
- q(5132) => [
+ q(5122) => [
q(Ngbundu),
],
- q(5133) => [
+ q(5123) => [
q(Northern Nuni),
],
- q(5134) => [
+ q(5124) => [
q(Nguluwan),
],
- q(5135) => [
+ q(5125) => [
q(Mehek),
],
- q(5136) => [
+ q(5126) => [
q(Nunggubuyu),
],
- q(5137) => [
+ q(5127) => [
q(Tlamacazapa Nahuatl),
],
- q(5138) => [
+ q(5128) => [
q(Nasarian),
],
- q(5139) => [
+ q(5129) => [
q(Namiae),
],
- q(5140) => [
+ q(5130) => [
q(Nyokon),
],
- q(5141) => [
+ q(5131) => [
q(Nawathinehena),
],
- q(5142) => [
+ q(5132) => [
q(Nyabwa),
],
- q(5143) => [
+ q(5133) => [
q(Ngwe),
],
- q(5144) => [
+ q(5134) => [
q(Ngayawung),
],
- q(5145) => [
+ q(5135) => [
q(Southwest Tanna),
],
- q(5146) => [
+ q(5136) => [
q(Nyamusa-Molo),
],
- q(5147) => [
+ q(5137) => [
q(Nauo),
],
- q(5148) => [
+ q(5138) => [
q(Nawaru),
],
- q(5149) => [
+ q(5139) => [
q(Middle Newar),
],
- q(5150) => [
+ q(5140) => [
q(Nottoway-Meherrin),
],
- q(5151) => [
+ q(5141) => [
q(Nauete),
],
- q(5152) => [
+ q(5142) => [
q(Ngando (Democratic Republic of Congo)),
],
- q(5153) => [
+ q(5143) => [
q(Nage),
],
- q(5154) => [
+ q(5144) => [
q(Ngad'a),
],
- q(5155) => [
+ q(5145) => [
q(Nindi),
],
- q(5156) => [
+ q(5146) => [
q(Koki Naga),
],
- q(5157) => [
+ q(5147) => [
q(South Nuaulu),
],
- q(5158) => [
+ q(5148) => [
q(Numidian),
],
- q(5159) => [
+ q(5149) => [
q(Ngawun),
],
- q(5160) => [
+ q(5150) => [
+ q(Ndambomo),
+ ],
+ q(5151) => [
q(Naxi),
],
- q(5161) => [
+ q(5152) => [
q(Ninggerum),
],
- q(5162) => [
+ q(5153) => [
q(Narau),
],
- q(5163) => [
+ q(5154) => [
q(Nafri),
],
- q(5164) => [
+ q(5155) => [
q(Nyangbo),
],
- q(5165) => [
+ q(5156) => [
q(Nyanga-li),
],
- q(5166) => [
+ q(5157) => [
q(Nyore),
q(Olunyole),
],
- q(5167) => [
+ q(5158) => [
q(Nyengo),
],
- q(5168) => [
+ q(5159) => [
q(Giryama),
q(Kigiryama),
],
- q(5169) => [
+ q(5160) => [
q(Nyindu),
],
- q(5170) => [
+ q(5161) => [
q(Nyigina),
],
- q(5171) => [
+ q(5162) => [
q(Ama (Sudan)),
],
- q(5172) => [
+ q(5163) => [
q(Nyanga),
],
- q(5173) => [
+ q(5164) => [
q(Nyaneka),
],
- q(5174) => [
+ q(5165) => [
q(Nyeu),
],
- q(5175) => [
+ q(5166) => [
q(Nyang'i),
],
- q(5176) => [
+ q(5167) => [
q(Nayini),
],
- q(5177) => [
+ q(5168) => [
q(Nyiha (Malawi)),
],
- q(5178) => [
+ q(5169) => [
q(Nyunga),
],
- q(5179) => [
+ q(5170) => [
q(Nyawaygi),
],
- q(5180) => [
+ q(5171) => [
q(Nyungwe),
],
- q(5181) => [
+ q(5172) => [
q(Nyulnyul),
],
- q(5182) => [
+ q(5173) => [
q(Nyaw),
],
- q(5183) => [
+ q(5174) => [
q(Nganyaywana),
],
- q(5184) => [
+ q(5175) => [
q(Nyakyusa-Ngonde),
],
- q(5185) => [
+ q(5176) => [
q(Tigon Mbembe),
],
- q(5186) => [
+ q(5177) => [
q(Njebi),
],
- q(5187) => [
+ q(5178) => [
q(Nzakara),
],
- q(5188) => [
+ q(5179) => [
q(Zeme Naga),
],
- q(5189) => [
+ q(5180) => [
q(New Zealand Sign Language),
],
- q(5190) => [
+ q(5181) => [
q(Teke-Nzikou),
],
- q(5191) => [
+ q(5182) => [
q(Nzakambay),
],
- q(5192) => [
+ q(5183) => [
q(Nanga Dama Dogon),
],
- q(5193) => [
+ q(5184) => [
q(Orok),
],
- q(5194) => [
+ q(5185) => [
q(Oroch),
],
- q(5195) => [
+ q(5186) => [
q(Old Aramaic (up to 700 BCE)),
q(Ancient Aramaic (up to 700 BCE)),
],
- q(5196) => [
+ q(5187) => [
q(Old Avar),
],
- q(5197) => [
+ q(5188) => [
q(Obispeno),
],
- q(5198) => [
+ q(5189) => [
q(Southern Bontok),
],
- q(5199) => [
+ q(5190) => [
q(Oblo),
],
- q(5200) => [
+ q(5191) => [
q(Moabite),
],
- q(5201) => [
+ q(5192) => [
q(Obo Manobo),
],
- q(5202) => [
+ q(5193) => [
q(Old Burmese),
],
- q(5203) => [
+ q(5194) => [
q(Old Breton),
],
- q(5204) => [
+ q(5195) => [
q(Obulom),
],
- q(5205) => [
+ q(5196) => [
q(Ocaina),
],
- q(5206) => [
+ q(5197) => [
q(Old Chinese),
],
- q(5207) => [
+ q(5198) => [
q(Old Cornish),
],
- q(5208) => [
+ q(5199) => [
q(Atzingo Matlatzinca),
],
- q(5209) => [
+ q(5200) => [
q(Odut),
],
- q(5210) => [
+ q(5201) => [
q(Od),
],
- q(5211) => [
+ q(5202) => [
q(Old Dutch),
],
- q(5212) => [
+ q(5203) => [
q(Odual),
],
- q(5213) => [
+ q(5204) => [
q(Ofo),
],
- q(5214) => [
+ q(5205) => [
q(Old Frisian),
],
- q(5215) => [
+ q(5206) => [
q(Efutop),
],
- q(5216) => [
+ q(5207) => [
q(Ogbia),
],
- q(5217) => [
+ q(5208) => [
q(Ogbah),
],
- q(5218) => [
+ q(5209) => [
q(Old Georgian),
],
- q(5219) => [
+ q(5210) => [
q(Ogbogolo),
],
- q(5220) => [
+ q(5211) => [
q(Khana),
],
- q(5221) => [
+ q(5212) => [
q(Ogbronuagum),
],
- q(5222) => [
+ q(5213) => [
q(Old Hittite),
],
- q(5223) => [
+ q(5214) => [
q(Old Hungarian),
],
- q(5224) => [
+ q(5215) => [
q(Oirata),
],
- q(5225) => [
+ q(5216) => [
q(Inebu One),
],
- q(5226) => [
+ q(5217) => [
q(Northwestern Ojibwa),
],
- q(5227) => [
+ q(5218) => [
q(Central Ojibwa),
],
- q(5228) => [
+ q(5219) => [
q(Eastern Ojibwa),
],
- q(5229) => [
+ q(5220) => [
q(Old Japanese),
],
- q(5230) => [
+ q(5221) => [
q(Severn Ojibwa),
],
- q(5231) => [
+ q(5222) => [
q(Ontong Java),
],
- q(5232) => [
+ q(5223) => [
q(Western Ojibwa),
],
- q(5233) => [
+ q(5224) => [
q(Okanagan),
],
- q(5234) => [
+ q(5225) => [
q(Okobo),
],
- q(5235) => [
+ q(5226) => [
q(Okodia),
],
- q(5236) => [
+ q(5227) => [
q(Okpe (Southwestern Edo)),
],
- q(5237) => [
+ q(5228) => [
q(Koko Babangk),
],
- q(5238) => [
+ q(5229) => [
q(Koresh-e Rostam),
],
- q(5239) => [
+ q(5230) => [
q(Okiek),
],
- q(5240) => [
+ q(5231) => [
q(Oko-Juwoi),
],
- q(5241) => [
+ q(5232) => [
q(Kwamtim One),
],
- q(5242) => [
+ q(5233) => [
q(Old Kentish Sign Language),
],
- q(5243) => [
+ q(5234) => [
q(Middle Korean (10th-16th cent.)),
],
- q(5244) => [
+ q(5235) => [
q(Oki-No-Erabu),
],
- q(5245) => [
+ q(5236) => [
q(Old Korean (3rd-9th cent.)),
],
- q(5246) => [
+ q(5237) => [
q(Kirike),
],
- q(5247) => [
+ q(5238) => [
q(Oko-Eni-Osayen),
],
- q(5248) => [
+ q(5239) => [
q(Oku),
],
- q(5249) => [
+ q(5240) => [
q(Orokaiva),
],
- q(5250) => [
+ q(5241) => [
q(Okpe (Northwestern Edo)),
],
- q(5251) => [
+ q(5242) => [
q(Walungge),
],
- q(5252) => [
+ q(5243) => [
q(Mochi),
],
- q(5253) => [
+ q(5244) => [
q(Olekha),
],
- q(5254) => [
+ q(5245) => [
q(Olkol),
],
- q(5255) => [
+ q(5246) => [
q(Oloma),
],
- q(5256) => [
+ q(5247) => [
q(Livvi),
],
- q(5257) => [
+ q(5248) => [
q(Olrat),
],
- q(5258) => [
+ q(5249) => [
+ q(Old Lithuanian),
+ ],
+ q(5250) => [
q(Omaha-Ponca),
],
- q(5259) => [
+ q(5251) => [
q(East Ambae),
],
- q(5260) => [
+ q(5252) => [
q(Mochica),
],
- q(5261) => [
+ q(5253) => [
q(Omejes),
],
- q(5262) => [
+ q(5254) => [
q(Omagua),
],
- q(5263) => [
+ q(5255) => [
q(Omi),
],
- q(5264) => [
+ q(5256) => [
q(Omok),
],
- q(5265) => [
+ q(5257) => [
q(Ombo),
],
- q(5266) => [
+ q(5258) => [
q(Minoan),
],
- q(5267) => [
+ q(5259) => [
q(Utarmbung),
],
- q(5268) => [
+ q(5260) => [
q(Old Manipuri),
],
- q(5269) => [
+ q(5261) => [
q(Old Marathi),
],
- q(5270) => [
+ q(5262) => [
q(Omotik),
],
- q(5271) => [
+ q(5263) => [
q(Omurano),
],
- q(5272) => [
+ q(5264) => [
q(South Tairora),
],
- q(5273) => [
+ q(5265) => [
q(Old Mon),
],
- q(5274) => [
+ q(5266) => [
q(Ona),
],
- q(5275) => [
+ q(5267) => [
q(Lingao),
],
- q(5276) => [
+ q(5268) => [
q(Oneida),
],
- q(5277) => [
+ q(5269) => [
q(Olo),
],
- q(5278) => [
+ q(5270) => [
q(Onin),
],
- q(5279) => [
+ q(5271) => [
q(Onjob),
],
- q(5280) => [
+ q(5272) => [
q(Kabore One),
],
- q(5281) => [
+ q(5273) => [
q(Onobasulu),
],
- q(5282) => [
+ q(5274) => [
q(Onondaga),
],
- q(5283) => [
+ q(5275) => [
q(Sartang),
],
- q(5284) => [
+ q(5276) => [
q(Northern One),
],
- q(5285) => [
+ q(5277) => [
q(Ono),
],
- q(5286) => [
+ q(5278) => [
q(Ontenu),
],
- q(5287) => [
+ q(5279) => [
q(Unua),
],
- q(5288) => [
+ q(5280) => [
q(Old Nubian),
],
- q(5289) => [
+ q(5281) => [
q(Onin Based Pidgin),
],
- q(5290) => [
+ q(5282) => [
q(Tohono O'odham),
],
- q(5291) => [
+ q(5283) => [
q(Ong),
],
- q(5292) => [
+ q(5284) => [
q(Onge),
],
- q(5293) => [
+ q(5285) => [
q(Oorlams),
],
- q(5294) => [
+ q(5286) => [
q(Old Ossetic),
],
- q(5295) => [
+ q(5287) => [
q(Okpamheri),
],
- q(5296) => [
+ q(5288) => [
q(Kopkaka),
],
- q(5297) => [
+ q(5289) => [
q(Oksapmin),
],
- q(5298) => [
+ q(5290) => [
q(Opao),
],
- q(5299) => [
+ q(5291) => [
q(Opata),
],
- q(5300) => [
+ q(5292) => [
q(Ofaye),
],
- q(5301) => [
+ q(5293) => [
q(Oroha),
],
- q(5302) => [
+ q(5294) => [
q(Orma),
],
- q(5303) => [
+ q(5295) => [
q(Orejon),
],
- q(5304) => [
+ q(5296) => [
q(Oring),
],
- q(5305) => [
+ q(5297) => [
q(Oroqen),
],
- q(5306) => [
+ q(5298) => [
q(Orang Kanaq),
],
- q(5307) => [
+ q(5299) => [
q(Orokolo),
],
- q(5308) => [
+ q(5300) => [
q(Oruma),
],
- q(5309) => [
+ q(5301) => [
q(Orang Seletar),
],
- q(5310) => [
+ q(5302) => [
q(Adivasi Oriya),
],
- q(5311) => [
+ q(5303) => [
q(Ormuri),
],
- q(5312) => [
+ q(5304) => [
q(Old Russian),
],
- q(5313) => [
+ q(5305) => [
q(Oro Win),
],
- q(5314) => [
+ q(5306) => [
q(Oro),
],
- q(5315) => [
+ q(5307) => [
q(Oriya (individual language)),
],
- q(5316) => [
+ q(5308) => [
q(Ormu),
],
- q(5317) => [
+ q(5309) => [
q(Oscan),
],
- q(5318) => [
+ q(5310) => [
q(Osing),
],
- q(5319) => [
+ q(5311) => [
q(Ososo),
],
- q(5320) => [
+ q(5312) => [
q(Old Spanish),
],
- q(5321) => [
+ q(5313) => [
q(Osatu),
],
- q(5322) => [
+ q(5314) => [
q(Southern One),
],
- q(5323) => [
+ q(5315) => [
q(Old Saxon),
],
- q(5324) => [
+ q(5316) => [
q(Old Tibetan),
],
- q(5325) => [
+ q(5317) => [
q(Ot Danum),
],
- q(5326) => [
+ q(5318) => [
q(Mezquital Otomi),
],
- q(5327) => [
+ q(5319) => [
q(Oti),
],
- q(5328) => [
+ q(5320) => [
q(Old Turkish),
],
- q(5329) => [
+ q(5321) => [
q(Tilapa Otomi),
],
- q(5330) => [
+ q(5322) => [
q(Eastern Highland Otomi),
],
- q(5331) => [
+ q(5323) => [
q(Tenango Otomi),
],
- q(5332) => [
+ q(5324) => [
q(Queretaro Otomi),
],
- q(5333) => [
+ q(5325) => [
q(Otoro),
],
- q(5334) => [
+ q(5326) => [
q(Estado de Mexico Otomi),
],
- q(5335) => [
+ q(5327) => [
q(Temoaya Otomi),
],
- q(5336) => [
+ q(5328) => [
q(Otuke),
],
- q(5337) => [
+ q(5329) => [
q(Ottawa),
],
- q(5338) => [
+ q(5330) => [
q(Texcatepec Otomi),
],
- q(5339) => [
+ q(5331) => [
q(Old Tamil),
],
- q(5340) => [
+ q(5332) => [
q(Ixtenco Otomi),
],
- q(5341) => [
+ q(5333) => [
q(Tagargrent),
],
- q(5342) => [
+ q(5334) => [
q(Glio-Oubi),
],
- q(5343) => [
+ q(5335) => [
q(Oune),
],
- q(5344) => [
+ q(5336) => [
q(Old Uighur),
],
- q(5345) => [
+ q(5337) => [
q(Ouma),
],
- q(5346) => [
- q(!O!ung),
- ],
- q(5347) => [
+ q(5338) => [
q(Owiniga),
],
- q(5348) => [
+ q(5339) => [
q(Old Welsh),
],
- q(5349) => [
+ q(5340) => [
q(Oy),
],
- q(5350) => [
+ q(5341) => [
q(Oyda),
],
- q(5351) => [
+ q(5342) => [
q(Wayampi),
],
- q(5352) => [
+ q(5343) => [
q(Oya'oya),
],
- q(5353) => [
+ q(5344) => [
q(Koonzime),
],
- q(5354) => [
+ q(5345) => [
q(Parecis),
],
- q(5355) => [
+ q(5346) => [
q(Pacoh),
],
- q(5356) => [
+ q(5347) => [
q(Paumari),
],
- q(5357) => [
+ q(5348) => [
q(Pagibete),
],
- q(5358) => [
+ q(5349) => [
q(Paranawat),
],
- q(5359) => [
+ q(5350) => [
q(Tenharim),
],
- q(5360) => [
+ q(5351) => [
q(Pe),
],
- q(5361) => [
+ q(5352) => [
q(Parakana),
],
- q(5362) => [
+ q(5353) => [
q(Northern Paiute),
],
- q(5363) => [
+ q(5354) => [
q(Parya),
],
- q(5364) => [
+ q(5355) => [
q(Panamint),
q(Timbisha),
],
- q(5365) => [
+ q(5356) => [
q(Papasena),
],
- q(5366) => [
+ q(5357) => [
q(Papitalai),
],
- q(5367) => [
+ q(5358) => [
q(Pakaasnovos),
],
- q(5368) => [
+ q(5359) => [
q(Pawnee),
],
- q(5369) => [
+ q(5360) => [
q(Pankarare),
],
- q(5370) => [
+ q(5361) => [
q(Pech),
],
- q(5371) => [
+ q(5362) => [
q(Pankararu),
],
- q(5372) => [
+ q(5363) => [
q(Paez),
],
- q(5373) => [
+ q(5364) => [
q(Patamona),
],
- q(5374) => [
+ q(5365) => [
q(Mezontla Popoloca),
],
- q(5375) => [
+ q(5366) => [
q(Coyotepec Popoloca),
],
- q(5376) => [
+ q(5367) => [
q(Paraujano),
],
- q(5377) => [
+ q(5368) => [
q(E'napa Woromaipu),
],
- q(5378) => [
+ q(5369) => [
q(Parkwa),
],
- q(5379) => [
+ q(5370) => [
q(Mak (Nigeria)),
],
- q(5380) => [
+ q(5371) => [
q(Kpasam),
],
- q(5381) => [
+ q(5372) => [
q(Papel),
],
- q(5382) => [
+ q(5373) => [
q(Badyara),
],
- q(5383) => [
+ q(5374) => [
q(Pangwa),
],
- q(5384) => [
+ q(5375) => [
q(Central Pame),
],
- q(5385) => [
+ q(5376) => [
q(Southern Pashto),
],
- q(5386) => [
+ q(5377) => [
q(Northern Pashto),
],
- q(5387) => [
+ q(5378) => [
q(Pnar),
],
- q(5388) => [
- q(Pyu),
+ q(5379) => [
+ q(Pyu (Papua New Guinea)),
],
- q(5389) => [
+ q(5380) => [
q(Santa Ines Ahuatempan Popoloca),
],
- q(5390) => [
+ q(5381) => [
q(Pear),
],
- q(5391) => [
+ q(5382) => [
q(Bouyei),
],
- q(5392) => [
+ q(5383) => [
q(Picard),
],
- q(5393) => [
+ q(5384) => [
q(Ruching Palaung),
],
- q(5394) => [
+ q(5385) => [
q(Paliyan),
],
- q(5395) => [
+ q(5386) => [
q(Paniya),
],
- q(5396) => [
+ q(5387) => [
q(Pardhan),
],
- q(5397) => [
+ q(5388) => [
q(Duruwa),
],
- q(5398) => [
+ q(5389) => [
q(Parenga),
],
- q(5399) => [
+ q(5390) => [
q(Paite Chin),
],
- q(5400) => [
+ q(5391) => [
q(Pardhi),
],
- q(5401) => [
+ q(5392) => [
q(Nigerian Pidgin),
],
- q(5402) => [
+ q(5393) => [
q(Piti),
],
- q(5403) => [
+ q(5394) => [
q(Pacahuara),
],
- q(5404) => [
+ q(5395) => [
q(Pyapun),
],
- q(5405) => [
+ q(5396) => [
q(Anam),
],
- q(5406) => [
+ q(5397) => [
q(Pennsylvania German),
],
- q(5407) => [
+ q(5398) => [
q(Pa Di),
],
- q(5408) => [
+ q(5399) => [
q(Podena),
q(Fedan),
],
- q(5409) => [
+ q(5400) => [
q(Padoe),
],
- q(5410) => [
+ q(5401) => [
q(Plautdietsch),
],
- q(5411) => [
+ q(5402) => [
q(Kayan),
],
- q(5412) => [
+ q(5403) => [
q(Peranakan Indonesian),
],
- q(5413) => [
+ q(5404) => [
q(Eastern Pomo),
],
- q(5414) => [
+ q(5405) => [
q(Mala (Papua New Guinea)),
],
- q(5415) => [
+ q(5406) => [
q(Taje),
],
- q(5416) => [
+ q(5407) => [
q(Northeastern Pomo),
],
- q(5417) => [
+ q(5408) => [
q(Pengo),
],
- q(5418) => [
+ q(5409) => [
q(Bonan),
],
- q(5419) => [
+ q(5410) => [
q(Chichimeca-Jonaz),
],
- q(5420) => [
+ q(5411) => [
q(Northern Pomo),
],
- q(5421) => [
+ q(5412) => [
q(Penchal),
],
- q(5422) => [
+ q(5413) => [
q(Pekal),
],
- q(5423) => [
+ q(5414) => [
q(Phende),
],
- q(5424) => [
+ q(5415) => [
q(Kunja),
],
- q(5425) => [
+ q(5416) => [
q(Southern Pomo),
],
- q(5426) => [
+ q(5417) => [
q(Iranian Persian),
],
- q(5427) => [
+ q(5418) => [
q(Pemono),
],
- q(5428) => [
+ q(5419) => [
q(Petats),
],
- q(5429) => [
+ q(5420) => [
q(Petjo),
],
- q(5430) => [
+ q(5421) => [
q(Eastern Penan),
],
- q(5431) => [
+ q(5422) => [
q(Paafang),
],
- q(5432) => [
+ q(5423) => [
q(Peere),
],
- q(5433) => [
+ q(5424) => [
q(Pfaelzisch),
],
- q(5434) => [
+ q(5425) => [
q(Sudanese Creole Arabic),
],
- q(5435) => [
+ q(5426) => [
+ q(Gandhari),
+ ],
+ q(5427) => [
q(Pangwali),
],
- q(5436) => [
+ q(5428) => [
q(Pagi),
],
- q(5437) => [
+ q(5429) => [
q(Rerep),
],
- q(5438) => [
+ q(5430) => [
q(Primitive Irish),
],
- q(5439) => [
+ q(5431) => [
q(Paelignian),
],
- q(5440) => [
+ q(5432) => [
q(Pangseng),
],
- q(5441) => [
+ q(5433) => [
q(Pagu),
],
- q(5442) => [
+ q(5434) => [
q(Pa-Hng),
],
- q(5443) => [
+ q(5435) => [
q(Phudagi),
],
- q(5444) => [
+ q(5436) => [
q(Phuong),
],
- q(5445) => [
+ q(5437) => [
q(Phukha),
],
- q(5446) => [
+ q(5438) => [
q(Phake),
],
- q(5447) => [
+ q(5439) => [
q(Phalura),
q(Palula),
],
- q(5448) => [
+ q(5440) => [
q(Phimbi),
],
- q(5449) => [
+ q(5441) => [
q(Phunoi),
],
- q(5450) => [
+ q(5442) => [
q(Phana'),
],
- q(5451) => [
+ q(5443) => [
q(Pahari-Potwari),
],
- q(5452) => [
+ q(5444) => [
q(Phu Thai),
],
- q(5453) => [
+ q(5445) => [
q(Phuan),
],
- q(5454) => [
+ q(5446) => [
q(Pahlavani),
],
- q(5455) => [
+ q(5447) => [
q(Phangduwali),
],
- q(5456) => [
+ q(5448) => [
q(Pima Bajo),
],
- q(5457) => [
+ q(5449) => [
q(Yine),
],
- q(5458) => [
+ q(5450) => [
q(Pinji),
],
- q(5459) => [
+ q(5451) => [
q(Piaroa),
],
- q(5460) => [
+ q(5452) => [
q(Piro),
],
- q(5461) => [
+ q(5453) => [
q(Pingelapese),
],
- q(5462) => [
+ q(5454) => [
q(Pisabo),
],
- q(5463) => [
+ q(5455) => [
q(Pitcairn-Norfolk),
],
- q(5464) => [
+ q(5456) => [
q(Pini),
],
- q(5465) => [
+ q(5457) => [
q(Pijao),
],
- q(5466) => [
+ q(5458) => [
q(Yom),
],
- q(5467) => [
+ q(5459) => [
q(Powhatan),
],
- q(5468) => [
+ q(5460) => [
q(Piame),
],
- q(5469) => [
+ q(5461) => [
q(Piapoco),
],
- q(5470) => [
+ q(5462) => [
q(Pero),
],
- q(5471) => [
+ q(5463) => [
q(Piratapuyo),
],
- q(5472) => [
+ q(5464) => [
q(Pijin),
],
- q(5473) => [
+ q(5465) => [
q(Pitta Pitta),
],
- q(5474) => [
+ q(5466) => [
q(Pintupi-Luritja),
],
- q(5475) => [
+ q(5467) => [
q(Pileni),
q(Vaeakau-Taumako),
],
- q(5476) => [
+ q(5468) => [
q(Pimbwe),
],
- q(5477) => [
+ q(5469) => [
q(Piu),
],
- q(5478) => [
+ q(5470) => [
q(Piya-Kwonci),
],
- q(5479) => [
+ q(5471) => [
q(Pije),
],
- q(5480) => [
+ q(5472) => [
q(Pitjantjatjara),
],
- q(5481) => [
+ q(5473) => [
q(Ardhamagadhi Prakrit),
],
- q(5482) => [
+ q(5474) => [
q(Pokomo),
q(Kipfokomo),
],
- q(5483) => [
+ q(5475) => [
q(Paekche),
],
- q(5484) => [
+ q(5476) => [
q(Pak-Tong),
],
- q(5485) => [
+ q(5477) => [
q(Pankhu),
],
- q(5486) => [
+ q(5478) => [
q(Pakanha),
],
- q(5487) => [
+ q(5479) => [
q(Pokoot),
],
- q(5488) => [
+ q(5480) => [
q(Pukapuka),
],
- q(5489) => [
+ q(5481) => [
q(Attapady Kurumba),
],
- q(5490) => [
+ q(5482) => [
q(Pakistan Sign Language),
],
- q(5491) => [
+ q(5483) => [
q(Maleng),
],
- q(5492) => [
+ q(5484) => [
q(Paku),
],
- q(5493) => [
+ q(5485) => [
q(Miani),
],
- q(5494) => [
+ q(5486) => [
q(Polonombauk),
],
- q(5495) => [
+ q(5487) => [
q(Central Palawano),
],
- q(5496) => [
+ q(5488) => [
q(Polari),
],
- q(5497) => [
+ q(5489) => [
q(Palu'e),
],
- q(5498) => [
+ q(5490) => [
q(Pilaga),
],
- q(5499) => [
+ q(5491) => [
q(Paulohi),
],
- q(5500) => [
+ q(5492) => [
q(Polci),
],
- q(5501) => [
+ q(5493) => [
q(Kohistani Shina),
],
- q(5502) => [
+ q(5494) => [
q(Shwe Palaung),
],
- q(5503) => [
+ q(5495) => [
q(Palenquero),
],
- q(5504) => [
+ q(5496) => [
q(Oluta Popoluca),
],
- q(5505) => [
+ q(5497) => [
q(Palpa),
],
- q(5506) => [
+ q(5498) => [
q(Palaic),
],
- q(5507) => [
+ q(5499) => [
q(Palaka Senoufo),
],
- q(5508) => [
+ q(5500) => [
+ q(San Marcos Tlacoyalco Popoloca),
q(San Marcos Tlalcoyalco Popoloca),
],
- q(5509) => [
+ q(5501) => [
q(Plateau Malagasy),
],
- q(5510) => [
+ q(5502) => [
q(Palikur),
],
- q(5511) => [
+ q(5503) => [
q(Southwest Palawano),
],
- q(5512) => [
+ q(5504) => [
q(Brooke's Point Palawano),
],
- q(5513) => [
+ q(5505) => [
q(Bolyu),
],
- q(5514) => [
+ q(5506) => [
q(Paluan),
],
- q(5515) => [
+ q(5507) => [
q(Paama),
],
- q(5516) => [
+ q(5508) => [
q(Pambia),
],
- q(5517) => [
+ q(5509) => [
q(Palumata),
],
- q(5518) => [
+ q(5510) => [
q(Pallanganmiddang),
],
- q(5519) => [
+ q(5511) => [
q(Pwaamei),
],
- q(5520) => [
+ q(5512) => [
q(Pamona),
],
- q(5521) => [
+ q(5513) => [
q(Maharastri Prakrit),
],
- q(5522) => [
+ q(5514) => [
q(Northern Pumi),
],
- q(5523) => [
+ q(5515) => [
q(Southern Pumi),
],
- q(5524) => [
+ q(5516) => [
q(Pamlico),
],
- q(5525) => [
+ q(5517) => [
q(Lingua Franca),
],
- q(5526) => [
+ q(5518) => [
q(Pomo),
],
- q(5527) => [
+ q(5519) => [
q(Pam),
],
- q(5528) => [
+ q(5520) => [
q(Pom),
],
- q(5529) => [
+ q(5521) => [
q(Northern Pame),
],
- q(5530) => [
+ q(5522) => [
q(Paynamar),
],
- q(5531) => [
+ q(5523) => [
q(Piemontese),
],
- q(5532) => [
+ q(5524) => [
q(Tuamotuan),
],
- q(5533) => [
- q(Mirpur Panjabi),
- ],
- q(5534) => [
+ q(5525) => [
q(Plains Miwok),
],
- q(5535) => [
+ q(5526) => [
q(Poumei Naga),
],
- q(5536) => [
+ q(5527) => [
q(Papuan Malay),
],
- q(5537) => [
+ q(5528) => [
q(Southern Pame),
],
- q(5538) => [
+ q(5529) => [
q(Punan Bah-Biau),
],
- q(5539) => [
+ q(5530) => [
q(Western Panjabi),
],
- q(5540) => [
+ q(5531) => [
q(Pannei),
],
- q(5541) => [
+ q(5532) => [
q(Western Penan),
],
- q(5542) => [
+ q(5533) => [
q(Pongu),
],
- q(5543) => [
+ q(5534) => [
q(Penrhyn),
],
- q(5544) => [
+ q(5535) => [
q(Aoheng),
],
- q(5545) => [
+ q(5536) => [
q(Pinjarup),
],
- q(5546) => [
+ q(5537) => [
q(Paunaka),
],
- q(5547) => [
+ q(5538) => [
q(Paleni),
],
- q(5548) => [
+ q(5539) => [
q(Punan Batu 1),
],
- q(5549) => [
+ q(5540) => [
q(Pinai-Hagahai),
],
- q(5550) => [
+ q(5541) => [
q(Panobo),
],
- q(5551) => [
+ q(5542) => [
q(Pancana),
],
- q(5552) => [
+ q(5543) => [
q(Pana (Burkina Faso)),
],
- q(5553) => [
+ q(5544) => [
q(Panim),
],
- q(5554) => [
+ q(5545) => [
q(Ponosakan),
],
- q(5555) => [
+ q(5546) => [
q(Pontic),
],
- q(5556) => [
+ q(5547) => [
q(Jiongnai Bunu),
],
- q(5557) => [
+ q(5548) => [
q(Pinigura),
],
- q(5558) => [
+ q(5549) => [
q(Panytyima),
],
- q(5559) => [
+ q(5550) => [
q(Phong-Kniang),
],
- q(5560) => [
+ q(5551) => [
q(Pinyin),
],
- q(5561) => [
+ q(5552) => [
q(Pana (Central African Republic)),
],
- q(5562) => [
+ q(5553) => [
q(Poqomam),
],
- q(5563) => [
+ q(5554) => [
q(Ponares),
],
- q(5564) => [
+ q(5555) => [
q(San Juan Atzingo Popoloca),
],
- q(5565) => [
+ q(5556) => [
q(Poke),
],
- q(5566) => [
+ q(5557) => [
q(Potiguara),
],
- q(5567) => [
+ q(5558) => [
q(Poqomchi'),
],
- q(5568) => [
+ q(5559) => [
q(Highland Popoluca),
],
- q(5569) => [
+ q(5560) => [
q(Pokanga),
],
- q(5570) => [
+ q(5561) => [
q(Southeastern Pomo),
],
- q(5571) => [
+ q(5562) => [
q(Central Pomo),
],
- q(5572) => [
+ q(5563) => [
q(Pwapwa),
],
- q(5573) => [
+ q(5564) => [
q(Texistepec Popoluca),
],
- q(5574) => [
+ q(5565) => [
q(Sayula Popoluca),
],
- q(5575) => [
+ q(5566) => [
q(Potawatomi),
],
- q(5576) => [
+ q(5567) => [
q(Upper Guinea Crioulo),
],
- q(5577) => [
+ q(5568) => [
q(San Felipe Otlaltepec Popoloca),
],
- q(5578) => [
+ q(5569) => [
q(Polabian),
],
- q(5579) => [
+ q(5570) => [
q(Pogolo),
],
- q(5580) => [
+ q(5571) => [
q(Pao),
],
- q(5581) => [
+ q(5572) => [
q(Papi),
],
- q(5582) => [
+ q(5573) => [
q(Paipai),
],
- q(5583) => [
+ q(5574) => [
q(Uma),
],
- q(5584) => [
+ q(5575) => [
q(Pipil),
q(Nicarao),
],
- q(5585) => [
+ q(5576) => [
q(Papuma),
],
- q(5586) => [
+ q(5577) => [
q(Papapana),
],
- q(5587) => [
+ q(5578) => [
q(Folopa),
],
- q(5588) => [
+ q(5579) => [
q(Pelende),
],
- q(5589) => [
+ q(5580) => [
q(Pei),
],
- q(5590) => [
+ q(5581) => [
q(San Luis Temalacayuca Popoloca),
],
- q(5591) => [
+ q(5582) => [
q(Pare),
],
- q(5592) => [
+ q(5583) => [
q(Papora),
],
- q(5593) => [
+ q(5584) => [
q(Pa'a),
],
- q(5594) => [
+ q(5585) => [
q(Malecite-Passamaquoddy),
],
- q(5595) => [
+ q(5586) => [
q(Lua'),
],
- q(5596) => [
+ q(5587) => [
q(Parachi),
],
- q(5597) => [
+ q(5588) => [
q(Parsi-Dari),
],
- q(5598) => [
+ q(5589) => [
q(Principense),
],
- q(5599) => [
+ q(5590) => [
q(Paranan),
],
- q(5600) => [
+ q(5591) => [
q(Prussian),
],
- q(5601) => [
+ q(5592) => [
q(Porohanon),
],
- q(5602) => [
+ q(5593) => [
q(Paici),
],
- q(5603) => [
+ q(5594) => [
q(Parauk),
],
- q(5604) => [
+ q(5595) => [
q(Peruvian Sign Language),
],
- q(5605) => [
+ q(5596) => [
q(Kibiri),
],
- q(5606) => [
+ q(5597) => [
q(Prasuni),
],
- q(5607) => [
+ q(5598) => [
q(Parsi),
],
- q(5608) => [
+ q(5599) => [
q(Asheninka Perene),
],
- q(5609) => [
+ q(5600) => [
q(Puri),
],
- q(5610) => [
+ q(5601) => [
q(Dari),
q(Afghan Persian),
],
- q(5611) => [
+ q(5602) => [
q(Phai),
],
- q(5612) => [
+ q(5603) => [
q(Puragi),
],
- q(5613) => [
+ q(5604) => [
q(Parawen),
],
- q(5614) => [
+ q(5605) => [
q(Purik),
],
- q(5615) => [
+ q(5606) => [
q(Pray 3),
],
- q(5616) => [
+ q(5607) => [
q(Providencia Sign Language),
],
- q(5617) => [
+ q(5608) => [
q(Asue Awyu),
],
- q(5618) => [
+ q(5609) => [
q(Persian Sign Language),
],
- q(5619) => [
+ q(5610) => [
q(Plains Indian Sign Language),
],
- q(5620) => [
+ q(5611) => [
q(Central Malay),
],
- q(5621) => [
+ q(5612) => [
q(Penang Sign Language),
],
- q(5622) => [
+ q(5613) => [
+ q(Southwest Pashai),
q(Southwest Pashayi),
],
- q(5623) => [
+ q(5614) => [
+ q(Southeast Pashai),
q(Southeast Pashayi),
],
- q(5624) => [
+ q(5615) => [
q(Puerto Rican Sign Language),
],
- q(5625) => [
+ q(5616) => [
q(Pauserna),
],
- q(5626) => [
+ q(5617) => [
q(Panasuan),
],
- q(5627) => [
+ q(5618) => [
q(Polish Sign Language),
],
- q(5628) => [
+ q(5619) => [
q(Philippine Sign Language),
],
- q(5629) => [
+ q(5620) => [
q(Pasi),
],
- q(5630) => [
+ q(5621) => [
q(Portuguese Sign Language),
],
- q(5631) => [
+ q(5622) => [
q(Kaulong),
],
- q(5632) => [
+ q(5623) => [
q(Central Pashto),
],
- q(5633) => [
+ q(5624) => [
q(Sauraseni Prakrit),
],
- q(5634) => [
+ q(5625) => [
q(Port Sandwich),
],
- q(5635) => [
+ q(5626) => [
q(Piscataway),
],
- q(5636) => [
+ q(5627) => [
q(Pai Tavytera),
],
- q(5637) => [
+ q(5628) => [
q(Pataxo Ha-Ha-Hae),
],
- q(5638) => [
+ q(5629) => [
q(Pintiini),
],
- q(5639) => [
+ q(5630) => [
q(Patani),
],
- q(5640) => [
+ q(5631) => [
q(Zo'e),
],
- q(5641) => [
+ q(5632) => [
q(Patep),
],
- q(5642) => [
+ q(5633) => [
+ q(Pattapu),
+ ],
+ q(5634) => [
q(Piamatsina),
],
- q(5643) => [
+ q(5635) => [
q(Enrekang),
],
- q(5644) => [
+ q(5636) => [
q(Bambam),
],
- q(5645) => [
+ q(5637) => [
q(Port Vato),
],
- q(5646) => [
+ q(5638) => [
q(Pentlatch),
],
- q(5647) => [
+ q(5639) => [
q(Pathiya),
],
- q(5648) => [
+ q(5640) => [
q(Western Highland Purepecha),
],
- q(5649) => [
+ q(5641) => [
q(Purum),
],
- q(5650) => [
+ q(5642) => [
q(Punan Merap),
],
- q(5651) => [
+ q(5643) => [
q(Punan Aput),
],
- q(5652) => [
+ q(5644) => [
q(Puelche),
],
- q(5653) => [
+ q(5645) => [
q(Punan Merah),
],
- q(5654) => [
+ q(5646) => [
q(Phuie),
],
- q(5655) => [
+ q(5647) => [
q(Puinave),
],
- q(5656) => [
+ q(5648) => [
q(Punan Tubu),
],
- q(5657) => [
+ q(5649) => [
q(Pu Ko),
],
- q(5658) => [
+ q(5650) => [
q(Puma),
],
- q(5659) => [
+ q(5651) => [
q(Puoc),
],
- q(5660) => [
+ q(5652) => [
q(Pulabu),
],
- q(5661) => [
+ q(5653) => [
q(Puquina),
],
- q(5662) => [
+ q(5654) => [
q(Purubora),
],
- q(5663) => [
+ q(5655) => [
q(Putoh),
],
- q(5664) => [
+ q(5656) => [
q(Punu),
],
- q(5665) => [
+ q(5657) => [
q(Puluwatese),
],
- q(5666) => [
+ q(5658) => [
q(Puare),
],
- q(5667) => [
+ q(5659) => [
q(Purisimeno),
],
- q(5668) => [
- q(Purum Naga),
- ],
- q(5669) => [
+ q(5660) => [
q(Pawaia),
],
- q(5670) => [
+ q(5661) => [
q(Panawa),
],
- q(5671) => [
+ q(5662) => [
q(Gapapaiwa),
],
- q(5672) => [
+ q(5663) => [
q(Patwin),
],
- q(5673) => [
+ q(5664) => [
q(Molbog),
],
- q(5674) => [
+ q(5665) => [
q(Paiwan),
],
- q(5675) => [
+ q(5666) => [
q(Pwo Western Karen),
],
- q(5676) => [
+ q(5667) => [
q(Powari),
],
- q(5677) => [
+ q(5668) => [
q(Pwo Northern Karen),
],
- q(5678) => [
+ q(5669) => [
q(Quetzaltepec Mixe),
],
- q(5679) => [
+ q(5670) => [
q(Pye Krumen),
],
- q(5680) => [
+ q(5671) => [
q(Fyam),
],
- q(5681) => [
+ q(5672) => [
q(Poyanawa),
],
- q(5682) => [
+ q(5673) => [
q(Paraguayan Sign Language),
q(Lengua de Senas del Paraguay),
],
- q(5683) => [
+ q(5674) => [
q(Puyuma),
],
- q(5684) => [
+ q(5675) => [
q(Pyu (Myanmar)),
],
- q(5685) => [
+ q(5676) => [
q(Pyen),
],
- q(5686) => [
+ q(5677) => [
q(Para Naga),
],
- q(5687) => [
+ q(5678) => [
q(Quapaw),
],
- q(5688) => [
+ q(5679) => [
q(Huallaga Huanuco Quechua),
],
- q(5689) => [
+ q(5680) => [
q(K'iche'),
q(Quiche),
],
- q(5690) => [
+ q(5681) => [
q(Calderon Highland Quichua),
],
- q(5691) => [
+ q(5682) => [
q(Lambayeque Quechua),
],
- q(5692) => [
+ q(5683) => [
q(Chimborazo Highland Quichua),
],
- q(5693) => [
+ q(5684) => [
q(South Bolivian Quechua),
],
- q(5694) => [
+ q(5685) => [
q(Quileute),
],
- q(5695) => [
+ q(5686) => [
q(Chachapoyas Quechua),
],
- q(5696) => [
+ q(5687) => [
q(North Bolivian Quechua),
],
- q(5697) => [
+ q(5688) => [
q(Sipacapense),
],
- q(5698) => [
+ q(5689) => [
q(Quinault),
],
- q(5699) => [
+ q(5690) => [
q(Southern Pastaza Quechua),
],
- q(5700) => [
+ q(5691) => [
q(Quinqui),
],
- q(5701) => [
+ q(5692) => [
q(Yanahuanca Pasco Quechua),
],
- q(5702) => [
+ q(5693) => [
q(Santiago del Estero Quichua),
],
- q(5703) => [
+ q(5694) => [
q(Sacapulteco),
],
- q(5704) => [
+ q(5695) => [
q(Tena Lowland Quichua),
],
- q(5705) => [
+ q(5696) => [
q(Yauyos Quechua),
],
- q(5706) => [
+ q(5697) => [
q(Ayacucho Quechua),
],
- q(5707) => [
+ q(5698) => [
q(Cusco Quechua),
],
- q(5708) => [
+ q(5699) => [
q(Ambo-Pasco Quechua),
],
- q(5709) => [
+ q(5700) => [
q(Cajamarca Quechua),
],
- q(5710) => [
+ q(5701) => [
q(Eastern Apurimac Quechua),
],
- q(5711) => [
+ q(5702) => [
q(Huamalies-Dos de Mayo Huanuco Quechua),
],
- q(5712) => [
+ q(5703) => [
q(Imbabura Highland Quichua),
],
- q(5713) => [
+ q(5704) => [
q(Loja Highland Quichua),
],
- q(5714) => [
+ q(5705) => [
q(Cajatambo North Lima Quechua),
],
- q(5715) => [
+ q(5706) => [
q(Margos-Yarowilca-Lauricocha Quechua),
],
- q(5716) => [
+ q(5707) => [
q(North Junin Quechua),
],
- q(5717) => [
+ q(5708) => [
q(Napo Lowland Quechua),
],
- q(5718) => [
+ q(5709) => [
q(Pacaraos Quechua),
],
- q(5719) => [
+ q(5710) => [
q(San Martin Quechua),
],
- q(5720) => [
+ q(5711) => [
q(Huaylla Wanca Quechua),
],
- q(5721) => [
+ q(5712) => [
q(Queyu),
],
- q(5722) => [
+ q(5713) => [
q(Northern Pastaza Quichua),
],
- q(5723) => [
+ q(5714) => [
q(Corongo Ancash Quechua),
],
- q(5724) => [
+ q(5715) => [
q(Classical Quechua),
],
- q(5725) => [
+ q(5716) => [
q(Huaylas Ancash Quechua),
],
- q(5726) => [
+ q(5717) => [
q(Kuman (Russia)),
],
- q(5727) => [
+ q(5718) => [
q(Sihuas Ancash Quechua),
],
- q(5728) => [
+ q(5719) => [
q(Kwalhioqua-Tlatskanai),
],
- q(5729) => [
+ q(5720) => [
q(Chiquian Ancash Quechua),
],
- q(5730) => [
+ q(5721) => [
q(Chincha Quechua),
],
- q(5731) => [
+ q(5722) => [
q(Panao Huanuco Quechua),
],
- q(5732) => [
+ q(5723) => [
q(Salasaca Highland Quichua),
],
- q(5733) => [
+ q(5724) => [
q(Northern Conchucos Ancash Quechua),
],
- q(5734) => [
+ q(5725) => [
q(Southern Conchucos Ancash Quechua),
],
- q(5735) => [
+ q(5726) => [
q(Puno Quechua),
],
- q(5736) => [
+ q(5727) => [
q(Qashqa'i),
],
- q(5737) => [
+ q(5728) => [
q(Canar Highland Quichua),
],
- q(5738) => [
+ q(5729) => [
q(Southern Qiang),
],
- q(5739) => [
+ q(5730) => [
q(Santa Ana de Tusi Pasco Quechua),
],
- q(5740) => [
+ q(5731) => [
q(Arequipa-La Union Quechua),
],
- q(5741) => [
+ q(5732) => [
q(Jauja Wanca Quechua),
],
- q(5742) => [
+ q(5733) => [
q(Quenya),
],
- q(5743) => [
+ q(5734) => [
q(Quiripi),
],
- q(5744) => [
+ q(5735) => [
q(Dungmali),
],
- q(5745) => [
+ q(5736) => [
q(Camling),
],
- q(5746) => [
+ q(5737) => [
q(Rasawa),
],
- q(5747) => [
+ q(5738) => [
q(Rade),
],
- q(5748) => [
+ q(5739) => [
q(Western Meohang),
],
- q(5749) => [
+ q(5740) => [
q(Logooli),
q(Lulogooli),
],
- q(5750) => [
+ q(5741) => [
q(Rabha),
],
- q(5751) => [
+ q(5742) => [
q(Ramoaaina),
],
- q(5752) => [
+ q(5743) => [
q(Tulu-Bohuai),
],
- q(5753) => [
+ q(5744) => [
q(Ralte),
],
- q(5754) => [
+ q(5745) => [
q(Canela),
],
- q(5755) => [
+ q(5746) => [
q(Riantana),
],
- q(5756) => [
+ q(5747) => [
q(Rao),
],
- q(5757) => [
+ q(5748) => [
q(Saam),
],
- q(5758) => [
+ q(5749) => [
q(Tegali),
],
- q(5759) => [
+ q(5750) => [
q(Razajerdi),
],
- q(5760) => [
+ q(5751) => [
q(Raute),
],
- q(5761) => [
+ q(5752) => [
q(Sampang),
],
- q(5762) => [
+ q(5753) => [
q(Rawang),
],
- q(5763) => [
+ q(5754) => [
q(Rang),
],
- q(5764) => [
+ q(5755) => [
q(Rapa),
],
- q(5765) => [
+ q(5756) => [
q(Rahambuu),
],
- q(5766) => [
+ q(5757) => [
q(Rumai Palaung),
],
- q(5767) => [
+ q(5758) => [
q(Northern Bontok),
],
- q(5768) => [
+ q(5759) => [
q(Miraya Bikol),
],
- q(5769) => [
+ q(5760) => [
q(Barababaraba),
],
- q(5770) => [
+ q(5761) => [
q(Reunion Creole French),
],
- q(5771) => [
+ q(5762) => [
q(Rudbari),
],
- q(5772) => [
+ q(5763) => [
q(Rerau),
],
- q(5773) => [
+ q(5764) => [
q(Rembong),
],
- q(5774) => [
+ q(5765) => [
q(Rejang Kayan),
],
- q(5775) => [
+ q(5766) => [
q(Kara (Tanzania)),
],
- q(5776) => [
+ q(5767) => [
q(Reli),
],
- q(5777) => [
+ q(5768) => [
q(Rejang),
],
- q(5778) => [
+ q(5769) => [
q(Rendille),
],
- q(5779) => [
+ q(5770) => [
q(Remo),
],
- q(5780) => [
+ q(5771) => [
q(Rengao),
],
- q(5781) => [
+ q(5772) => [
q(Rer Bare),
],
- q(5782) => [
+ q(5773) => [
q(Reshe),
],
- q(5783) => [
+ q(5774) => [
q(Retta),
],
- q(5784) => [
+ q(5775) => [
q(Reyesano),
],
- q(5785) => [
+ q(5776) => [
q(Roria),
],
- q(5786) => [
+ q(5777) => [
q(Romano-Greek),
],
- q(5787) => [
+ q(5778) => [
q(Rangkas),
],
- q(5788) => [
+ q(5779) => [
q(Romagnol),
],
- q(5789) => [
+ q(5780) => [
q(Resigaro),
],
- q(5790) => [
+ q(5781) => [
q(Southern Roglai),
],
- q(5791) => [
+ q(5782) => [
q(Ringgou),
],
- q(5792) => [
+ q(5783) => [
q(Rohingya),
],
- q(5793) => [
+ q(5784) => [
q(Yahang),
],
- q(5794) => [
+ q(5785) => [
q(Riang (India)),
],
- q(5795) => [
+ q(5786) => [
q(Rien),
],
- q(5796) => [
+ q(5787) => [
q(Tarifit),
],
- q(5797) => [
+ q(5788) => [
q(Riang (Myanmar)),
],
- q(5798) => [
+ q(5789) => [
q(Nyaturu),
],
- q(5799) => [
+ q(5790) => [
q(Nungu),
],
- q(5800) => [
+ q(5791) => [
q(Ribun),
],
- q(5801) => [
+ q(5792) => [
q(Ritarungo),
],
- q(5802) => [
+ q(5793) => [
q(Riung),
],
- q(5803) => [
+ q(5794) => [
q(Rajong),
],
- q(5804) => [
+ q(5795) => [
q(Raji),
],
- q(5805) => [
+ q(5796) => [
q(Rajbanshi),
],
- q(5806) => [
+ q(5797) => [
q(Kraol),
],
- q(5807) => [
+ q(5798) => [
q(Rikbaktsa),
],
- q(5808) => [
+ q(5799) => [
q(Rakahanga-Manihiki),
],
- q(5809) => [
+ q(5800) => [
q(Rakhine),
],
- q(5810) => [
+ q(5801) => [
q(Marka),
],
- q(5811) => [
+ q(5802) => [
q(Rangpuri),
q(Kamta),
],
- q(5812) => [
+ q(5803) => [
q(Arakwal),
],
- q(5813) => [
+ q(5804) => [
q(Rama),
],
- q(5814) => [
+ q(5805) => [
q(Rembarunga),
],
- q(5815) => [
+ q(5806) => [
q(Carpathian Romani),
],
- q(5816) => [
+ q(5807) => [
q(Traveller Danish),
],
- q(5817) => [
+ q(5808) => [
q(Angloromani),
],
- q(5818) => [
+ q(5809) => [
q(Kalo Finnish Romani),
],
- q(5819) => [
+ q(5810) => [
q(Traveller Norwegian),
],
- q(5820) => [
+ q(5811) => [
q(Murkim),
],
- q(5821) => [
+ q(5812) => [
q(Lomavren),
],
- q(5822) => [
+ q(5813) => [
q(Romkun),
],
- q(5823) => [
+ q(5814) => [
q(Baltic Romani),
],
- q(5824) => [
+ q(5815) => [
q(Roma),
],
- q(5825) => [
+ q(5816) => [
q(Balkan Romani),
],
- q(5826) => [
+ q(5817) => [
q(Sinte Romani),
],
- q(5827) => [
+ q(5818) => [
q(Rempi),
],
- q(5828) => [
+ q(5819) => [
q(Calo),
],
- q(5829) => [
+ q(5820) => [
q(Romanian Sign Language),
],
- q(5830) => [
+ q(5821) => [
q(Domari),
],
- q(5831) => [
+ q(5822) => [
q(Tavringer Romani),
],
- q(5832) => [
+ q(5823) => [
q(Romanova),
],
- q(5833) => [
+ q(5824) => [
q(Welsh Romani),
],
- q(5834) => [
+ q(5825) => [
q(Romam),
],
- q(5835) => [
+ q(5826) => [
q(Vlax Romani),
],
- q(5836) => [
+ q(5827) => [
q(Marma),
],
- q(5837) => [
+ q(5828) => [
q(Runa),
],
- q(5838) => [
+ q(5829) => [
q(Ruund),
],
- q(5839) => [
+ q(5830) => [
q(Ronga),
],
- q(5840) => [
+ q(5831) => [
q(Ranglong),
],
- q(5841) => [
+ q(5832) => [
q(Roon),
],
- q(5842) => [
+ q(5833) => [
q(Rongpo),
],
- q(5843) => [
+ q(5834) => [
q(Nari Nari),
],
- q(5844) => [
+ q(5835) => [
q(Rungwa),
],
- q(5845) => [
+ q(5836) => [
q(Tae'),
],
- q(5846) => [
+ q(5837) => [
q(Cacgia Roglai),
],
- q(5847) => [
+ q(5838) => [
q(Rogo),
],
- q(5848) => [
+ q(5839) => [
q(Ronji),
],
- q(5849) => [
+ q(5840) => [
q(Rombo),
],
- q(5850) => [
+ q(5841) => [
q(Northern Roglai),
],
- q(5851) => [
+ q(5842) => [
q(Romblomanon),
],
- q(5852) => [
+ q(5843) => [
q(Rotokas),
],
- q(5853) => [
+ q(5844) => [
q(Kriol),
],
- q(5854) => [
+ q(5845) => [
q(Rongga),
],
- q(5855) => [
+ q(5846) => [
q(Runga),
],
- q(5856) => [
+ q(5847) => [
q(Dela-Oenale),
],
- q(5857) => [
+ q(5848) => [
q(Repanbitip),
],
- q(5858) => [
+ q(5849) => [
q(Rapting),
],
- q(5859) => [
+ q(5850) => [
q(Ririo),
],
- q(5860) => [
+ q(5851) => [
q(Waima),
],
- q(5861) => [
+ q(5852) => [
q(Arritinngithigh),
],
- q(5862) => [
+ q(5853) => [
q(Romano-Serbian),
],
- q(5863) => [
+ q(5854) => [
q(Rennellese Sign Language),
],
- q(5864) => [
+ q(5855) => [
q(Russian Sign Language),
],
- q(5865) => [
+ q(5856) => [
q(Rungtu Chin),
],
- q(5866) => [
+ q(5857) => [
q(Ratahan),
],
- q(5867) => [
+ q(5858) => [
q(Rotuman),
],
- q(5868) => [
+ q(5859) => [
+ q(Yurats),
+ ],
+ q(5860) => [
q(Rathawi),
],
- q(5869) => [
+ q(5861) => [
q(Gungu),
],
- q(5870) => [
+ q(5862) => [
q(Ruuli),
],
- q(5871) => [
+ q(5863) => [
q(Rusyn),
],
- q(5872) => [
+ q(5864) => [
q(Luguru),
],
- q(5873) => [
+ q(5865) => [
q(Roviana),
],
- q(5874) => [
+ q(5866) => [
q(Ruga),
],
- q(5875) => [
+ q(5867) => [
q(Rufiji),
],
- q(5876) => [
+ q(5868) => [
q(Che),
],
- q(5877) => [
+ q(5869) => [
q(Istro Romanian),
],
- q(5878) => [
+ q(5870) => [
q(Megleno Romanian),
],
- q(5879) => [
+ q(5871) => [
q(Rutul),
],
- q(5880) => [
+ q(5872) => [
q(Lanas Lobu),
],
- q(5881) => [
+ q(5873) => [
q(Mala (Nigeria)),
],
- q(5882) => [
+ q(5874) => [
q(Ruma),
],
- q(5883) => [
+ q(5875) => [
q(Rawo),
],
- q(5884) => [
+ q(5876) => [
q(Rwa),
],
- q(5885) => [
+ q(5877) => [
q(Amba (Uganda)),
],
- q(5886) => [
+ q(5878) => [
q(Rawa),
],
- q(5887) => [
+ q(5879) => [
q(Marwari (India)),
],
- q(5888) => [
+ q(5880) => [
q(Ngardi),
],
- q(5889) => [
+ q(5881) => [
q(Karuwali),
],
- q(5890) => [
+ q(5882) => [
q(Northern Amami-Oshima),
],
- q(5891) => [
+ q(5883) => [
q(Yaeyama),
],
- q(5892) => [
+ q(5884) => [
q(Central Okinawan),
],
- q(5893) => [
+ q(5885) => [
q(Saba),
],
- q(5894) => [
+ q(5886) => [
q(Buglere),
],
- q(5895) => [
+ q(5887) => [
q(Meskwaki),
],
- q(5896) => [
+ q(5888) => [
q(Sabane),
],
- q(5897) => [
+ q(5889) => [
q(Safaliba),
],
- q(5898) => [
+ q(5890) => [
q(Sahu),
],
- q(5899) => [
+ q(5891) => [
q(Sake),
],
- q(5900) => [
+ q(5892) => [
q(Sause),
],
- q(5901) => [
- q(Sanapana),
- ],
- q(5902) => [
+ q(5893) => [
q(Samburu),
],
- q(5903) => [
+ q(5894) => [
q(Saraveca),
],
- q(5904) => [
+ q(5895) => [
q(Saleman),
],
- q(5905) => [
+ q(5896) => [
q(Saafi-Saafi),
],
- q(5906) => [
+ q(5897) => [
q(Sawi),
],
- q(5907) => [
+ q(5898) => [
q(Sa),
],
- q(5908) => [
+ q(5899) => [
q(Saya),
],
- q(5909) => [
+ q(5900) => [
q(Saurashtra),
],
- q(5910) => [
+ q(5901) => [
q(Ngambay),
],
- q(5911) => [
+ q(5902) => [
q(Simbo),
],
- q(5912) => [
+ q(5903) => [
q(Kele (Papua New Guinea)),
],
- q(5913) => [
+ q(5904) => [
q(Southern Samo),
],
- q(5914) => [
+ q(5905) => [
q(Saliba),
],
- q(5915) => [
+ q(5906) => [
+ q(Chabu),
q(Shabo),
],
- q(5916) => [
+ q(5907) => [
q(Seget),
],
- q(5917) => [
+ q(5908) => [
q(Sori-Harengan),
],
- q(5918) => [
+ q(5909) => [
q(Seti),
],
- q(5919) => [
+ q(5910) => [
q(Surbakhal),
],
- q(5920) => [
+ q(5911) => [
q(Safwa),
],
- q(5921) => [
+ q(5912) => [
q(Botolan Sambal),
],
- q(5922) => [
+ q(5913) => [
q(Sagala),
],
- q(5923) => [
+ q(5914) => [
q(Sindhi Bhil),
],
- q(5924) => [
+ q(5915) => [
q(Sabum),
],
- q(5925) => [
+ q(5916) => [
q(Sangu (Tanzania)),
],
- q(5926) => [
+ q(5917) => [
q(Sileibi),
],
- q(5927) => [
+ q(5918) => [
q(Sembakung Murut),
],
- q(5928) => [
+ q(5919) => [
q(Subiya),
],
- q(5929) => [
+ q(5920) => [
q(Kimki),
],
- q(5930) => [
+ q(5921) => [
q(Stod Bhoti),
],
- q(5931) => [
+ q(5922) => [
q(Sabine),
],
- q(5932) => [
+ q(5923) => [
q(Simba),
],
- q(5933) => [
+ q(5924) => [
q(Seberuang),
],
- q(5934) => [
+ q(5925) => [
q(Soli),
],
- q(5935) => [
+ q(5926) => [
q(Sara Kaba),
],
- q(5936) => [
+ q(5927) => [
q(Chut),
],
- q(5937) => [
+ q(5928) => [
q(Dongxiang),
],
- q(5938) => [
+ q(5929) => [
q(San Miguel Creole French),
],
- q(5939) => [
+ q(5930) => [
q(Sanggau),
],
- q(5940) => [
+ q(5931) => [
q(Sakachep),
],
- q(5941) => [
+ q(5932) => [
q(Sri Lankan Creole Malay),
],
- q(5942) => [
+ q(5933) => [
q(Sadri),
],
- q(5943) => [
+ q(5934) => [
q(Shina),
],
- q(5944) => [
+ q(5935) => [
q(Helambu Sherpa),
],
- q(5945) => [
+ q(5936) => [
q(Sa'och),
],
- q(5946) => [
+ q(5937) => [
q(North Slavey),
],
- q(5947) => [
+ q(5938) => [
q(Shumcho),
],
- q(5948) => [
+ q(5939) => [
q(Sheni),
],
- q(5949) => [
+ q(5940) => [
q(Sha),
],
- q(5950) => [
+ q(5941) => [
q(Sicel),
],
- q(5951) => [
+ q(5942) => [
q(Toraja-Sa'dan),
],
- q(5952) => [
+ q(5943) => [
q(Shabak),
],
- q(5953) => [
+ q(5944) => [
q(Sassarese Sardinian),
],
- q(5954) => [
+ q(5945) => [
q(Surubu),
],
- q(5955) => [
+ q(5946) => [
q(Sarli),
],
- q(5956) => [
+ q(5947) => [
q(Savi),
],
- q(5957) => [
+ q(5948) => [
q(Southern Kurdish),
],
- q(5958) => [
+ q(5949) => [
q(Suundi),
],
- q(5959) => [
+ q(5950) => [
q(Sos Kundi),
],
- q(5960) => [
+ q(5951) => [
q(Saudi Arabian Sign Language),
],
- q(5961) => [
+ q(5952) => [
q(Semandang),
],
- q(5962) => [
+ q(5953) => [
q(Gallurese Sardinian),
],
- q(5963) => [
+ q(5954) => [
q(Bukar-Sadung Bidayuh),
],
- q(5964) => [
+ q(5955) => [
q(Sherdukpen),
],
- q(5965) => [
+ q(5956) => [
q(Oraon Sadri),
],
- q(5966) => [
+ q(5957) => [
q(Sened),
],
- q(5967) => [
+ q(5958) => [
q(Shuadit),
],
- q(5968) => [
+ q(5959) => [
q(Sarudu),
],
- q(5969) => [
+ q(5960) => [
q(Sibu Melanau),
],
- q(5970) => [
+ q(5961) => [
q(Sallands),
],
- q(5971) => [
+ q(5962) => [
q(Semai),
],
- q(5972) => [
+ q(5963) => [
q(Shempire Senoufo),
],
- q(5973) => [
+ q(5964) => [
q(Sechelt),
],
- q(5974) => [
+ q(5965) => [
q(Sedang),
],
- q(5975) => [
+ q(5966) => [
q(Seneca),
],
- q(5976) => [
+ q(5967) => [
q(Cebaara Senoufo),
],
- q(5977) => [
+ q(5968) => [
q(Segeju),
],
- q(5978) => [
+ q(5969) => [
q(Sena),
],
- q(5979) => [
+ q(5970) => [
q(Seri),
],
- q(5980) => [
+ q(5971) => [
q(Sene),
],
- q(5981) => [
+ q(5972) => [
q(Sekani),
],
- q(5982) => [
+ q(5973) => [
q(Nanerige Senoufo),
],
- q(5983) => [
+ q(5974) => [
q(Suarmin),
],
- q(5984) => [
+ q(5975) => [
q(Sicite Senoufo),
],
- q(5985) => [
+ q(5976) => [
q(Senara Senoufo),
],
- q(5986) => [
+ q(5977) => [
q(Serrano),
],
- q(5987) => [
+ q(5978) => [
q(Koyraboro Senni Songhai),
],
- q(5988) => [
+ q(5979) => [
q(Sentani),
],
- q(5989) => [
+ q(5980) => [
q(Serui-Laut),
],
- q(5990) => [
+ q(5981) => [
q(Nyarafolo Senoufo),
],
- q(5991) => [
+ q(5982) => [
q(Sewa Bay),
],
- q(5992) => [
+ q(5983) => [
q(Secoya),
],
- q(5993) => [
+ q(5984) => [
q(Senthang Chin),
],
- q(5994) => [
+ q(5985) => [
q(Langue des signes de Belgique Francophone),
q(French Belgian Sign Language),
],
- q(5995) => [
+ q(5986) => [
q(Eastern Subanen),
],
- q(5996) => [
+ q(5987) => [
q(Small Flowery Miao),
],
- q(5997) => [
+ q(5988) => [
q(South African Sign Language),
],
- q(5998) => [
+ q(5989) => [
q(Sehwi),
],
- q(5999) => [
+ q(5990) => [
q(Mag-antsi Ayta),
],
- q(6000) => [
+ q(5991) => [
q(Kipsigis),
],
- q(6001) => [
+ q(5992) => [
q(Surigaonon),
],
- q(6002) => [
+ q(5993) => [
q(Segai),
],
- q(6003) => [
+ q(5994) => [
q(Swiss-German Sign Language),
],
- q(6004) => [
+ q(5995) => [
q(Shughni),
],
- q(6005) => [
+ q(5996) => [
q(Suga),
],
- q(6006) => [
+ q(5997) => [
q(Surgujia),
],
- q(6007) => [
+ q(5998) => [
q(Sangkong),
],
- q(6008) => [
+ q(5999) => [
q(Singa),
],
- q(6009) => [
- q(Songa),
- ],
- q(6010) => [
+ q(6000) => [
q(Singpho),
],
- q(6011) => [
+ q(6001) => [
q(Sangisari),
],
- q(6012) => [
+ q(6002) => [
q(Samogitian),
],
- q(6013) => [
+ q(6003) => [
q(Brokpake),
],
- q(6014) => [
+ q(6004) => [
q(Salas),
],
- q(6015) => [
+ q(6005) => [
q(Sebat Bet Gurage),
],
- q(6016) => [
+ q(6006) => [
q(Sierra Leone Sign Language),
],
- q(6017) => [
+ q(6007) => [
q(Sanglechi),
],
- q(6018) => [
+ q(6008) => [
q(Sursurunga),
],
- q(6019) => [
+ q(6009) => [
q(Shall-Zwall),
],
- q(6020) => [
+ q(6010) => [
q(Ninam),
],
- q(6021) => [
+ q(6011) => [
q(Sonde),
],
- q(6022) => [
+ q(6012) => [
q(Kundal Shahi),
],
- q(6023) => [
+ q(6013) => [
q(Sheko),
],
- q(6024) => [
+ q(6014) => [
q(Shua),
],
- q(6025) => [
+ q(6015) => [
q(Shoshoni),
],
- q(6026) => [
+ q(6016) => [
q(Tachelhit),
],
- q(6027) => [
+ q(6017) => [
q(Shatt),
],
- q(6028) => [
+ q(6018) => [
q(Shilluk),
],
- q(6029) => [
+ q(6019) => [
q(Shendu),
],
- q(6030) => [
+ q(6020) => [
q(Shahrudi),
],
- q(6031) => [
+ q(6021) => [
q(Shanga),
],
- q(6032) => [
+ q(6022) => [
q(Shipibo-Conibo),
],
- q(6033) => [
+ q(6023) => [
q(Sala),
],
- q(6034) => [
+ q(6024) => [
q(Shi),
],
- q(6035) => [
+ q(6025) => [
q(Shuswap),
],
- q(6036) => [
+ q(6026) => [
q(Shasta),
],
- q(6037) => [
+ q(6027) => [
q(Chadian Arabic),
],
- q(6038) => [
+ q(6028) => [
q(Shehri),
],
- q(6039) => [
+ q(6029) => [
q(Shwai),
],
- q(6040) => [
+ q(6030) => [
q(She),
],
- q(6041) => [
+ q(6031) => [
q(Tachawit),
],
- q(6042) => [
+ q(6032) => [
q(Syenara Senoufo),
],
- q(6043) => [
+ q(6033) => [
q(Akkala Sami),
],
- q(6044) => [
+ q(6034) => [
q(Sebop),
],
- q(6045) => [
+ q(6035) => [
q(Simaa),
],
- q(6046) => [
+ q(6036) => [
q(Siamou),
],
- q(6047) => [
+ q(6037) => [
q(Paasaal),
],
- q(6048) => [
+ q(6038) => [
q(Zire),
q(Sishee),
],
- q(6049) => [
+ q(6039) => [
q(Shom Peng),
],
- q(6050) => [
+ q(6040) => [
q(Numbami),
],
- q(6051) => [
+ q(6041) => [
q(Sikiana),
],
- q(6052) => [
+ q(6042) => [
q(Tumulung Sisaala),
],
- q(6053) => [
+ q(6043) => [
q(Mende (Papua New Guinea)),
],
- q(6054) => [
+ q(6044) => [
q(Sikkimese),
],
- q(6055) => [
+ q(6045) => [
q(Sonia),
],
- q(6056) => [
+ q(6046) => [
q(Siri),
],
- q(6057) => [
+ q(6047) => [
q(Siuslaw),
],
- q(6058) => [
+ q(6048) => [
q(Sinagen),
],
- q(6059) => [
+ q(6049) => [
q(Sumariup),
],
- q(6060) => [
+ q(6050) => [
q(Siwai),
],
- q(6061) => [
+ q(6051) => [
q(Sumau),
],
- q(6062) => [
+ q(6052) => [
q(Sivandi),
],
- q(6063) => [
+ q(6053) => [
q(Siwi),
],
- q(6064) => [
+ q(6054) => [
q(Epena),
],
- q(6065) => [
+ q(6055) => [
q(Sajau Basap),
],
- q(6066) => [
+ q(6056) => [
q(Kildin Sami),
],
- q(6067) => [
+ q(6057) => [
q(Pite Sami),
],
- q(6068) => [
+ q(6058) => [
q(Assangori),
],
- q(6069) => [
+ q(6059) => [
q(Kemi Sami),
],
- q(6070) => [
+ q(6060) => [
q(Sajalong),
q(Miji),
],
- q(6071) => [
+ q(6061) => [
q(Mapun),
],
- q(6072) => [
+ q(6062) => [
q(Sindarin),
],
- q(6073) => [
+ q(6063) => [
q(Xibe),
],
- q(6074) => [
+ q(6064) => [
q(Surjapuri),
],
- q(6075) => [
+ q(6065) => [
q(Siar-Lak),
],
- q(6076) => [
+ q(6066) => [
q(Senhaja De Srair),
],
- q(6077) => [
+ q(6067) => [
q(Ter Sami),
],
- q(6078) => [
+ q(6068) => [
q(Ume Sami),
],
- q(6079) => [
+ q(6069) => [
q(Shawnee),
],
- q(6080) => [
+ q(6070) => [
q(Skagit),
],
- q(6081) => [
+ q(6071) => [
q(Saek),
],
- q(6082) => [
+ q(6072) => [
q(Ma Manda),
],
- q(6083) => [
+ q(6073) => [
q(Southern Sierra Miwok),
],
- q(6084) => [
+ q(6074) => [
q(Seke (Vanuatu)),
],
- q(6085) => [
+ q(6075) => [
q(Sakirabia),
],
- q(6086) => [
+ q(6076) => [
q(Sakalava Malagasy),
],
- q(6087) => [
+ q(6077) => [
q(Sikule),
],
- q(6088) => [
+ q(6078) => [
q(Sika),
],
- q(6089) => [
+ q(6079) => [
q(Seke (Nepal)),
],
- q(6090) => [
+ q(6080) => [
q(Sok),
],
- q(6091) => [
+ q(6081) => [
q(Kutong),
],
- q(6092) => [
+ q(6082) => [
q(Kolibugan Subanon),
],
- q(6093) => [
+ q(6083) => [
q(Seko Tengah),
],
- q(6094) => [
+ q(6084) => [
q(Sekapan),
],
- q(6095) => [
+ q(6085) => [
q(Sininkere),
],
- q(6096) => [
+ q(6086) => [
+ q(Saraiki),
q(Seraiki),
],
- q(6097) => [
+ q(6087) => [
q(Maia),
],
- q(6098) => [
+ q(6088) => [
q(Sakata),
],
- q(6099) => [
+ q(6089) => [
q(Sakao),
],
- q(6100) => [
+ q(6090) => [
q(Skou),
],
- q(6101) => [
+ q(6091) => [
q(Skepi Creole Dutch),
],
- q(6102) => [
+ q(6092) => [
q(Seko Padang),
],
- q(6103) => [
+ q(6093) => [
q(Sikaiana),
],
- q(6104) => [
+ q(6094) => [
q(Sekar),
],
- q(6105) => [
+ q(6095) => [
q(Sissala),
],
- q(6106) => [
+ q(6096) => [
q(Sholaga),
],
- q(6107) => [
+ q(6097) => [
q(Swiss-Italian Sign Language),
],
- q(6108) => [
+ q(6098) => [
q(Selungai Murut),
],
- q(6109) => [
+ q(6099) => [
q(Southern Puget Sound Salish),
],
- q(6110) => [
+ q(6100) => [
q(Lower Silesian),
],
- q(6111) => [
+ q(6101) => [
q(Saluma),
],
- q(6112) => [
+ q(6102) => [
q(Salt-Yui),
],
- q(6113) => [
+ q(6103) => [
q(Pangutaran Sama),
],
- q(6114) => [
+ q(6104) => [
q(Salinan),
],
- q(6115) => [
+ q(6105) => [
q(Lamaholot),
],
- q(6116) => [
+ q(6106) => [
q(Salchuq),
],
- q(6117) => [
+ q(6107) => [
q(Salar),
],
- q(6118) => [
+ q(6108) => [
q(Singapore Sign Language),
],
- q(6119) => [
+ q(6109) => [
q(Sila),
],
- q(6120) => [
+ q(6110) => [
q(Selaru),
],
- q(6121) => [
+ q(6111) => [
q(Sialum),
],
- q(6122) => [
+ q(6112) => [
q(Salampasu),
],
- q(6123) => [
+ q(6113) => [
q(Selayar),
],
- q(6124) => [
+ q(6114) => [
q(Ma'ya),
],
- q(6125) => [
+ q(6115) => [
q(Simbari),
],
- q(6126) => [
+ q(6116) => [
q(Som),
],
- q(6127) => [
+ q(6117) => [
q(Sama),
],
- q(6128) => [
+ q(6118) => [
q(Auwe),
],
- q(6129) => [
+ q(6119) => [
q(Simbali),
],
- q(6130) => [
+ q(6120) => [
q(Samei),
],
- q(6131) => [
+ q(6121) => [
q(Bolinao),
],
- q(6132) => [
+ q(6122) => [
q(Central Sama),
],
- q(6133) => [
+ q(6123) => [
q(Musasa),
],
- q(6134) => [
+ q(6124) => [
q(Samaritan),
],
- q(6135) => [
+ q(6125) => [
q(Samo),
],
- q(6136) => [
+ q(6126) => [
q(Simeulue),
],
- q(6137) => [
+ q(6127) => [
q(Simte),
],
- q(6138) => [
+ q(6128) => [
q(Somray),
],
- q(6139) => [
+ q(6129) => [
q(Samvedi),
],
- q(6140) => [
+ q(6130) => [
q(Sumbawa),
],
- q(6141) => [
+ q(6131) => [
q(Samba),
],
- q(6142) => [
+ q(6132) => [
q(Semnani),
],
- q(6143) => [
+ q(6133) => [
q(Simeku),
],
- q(6144) => [
+ q(6134) => [
q(Sebuyau),
],
- q(6145) => [
+ q(6135) => [
q(Sinaugoro),
],
- q(6146) => [
+ q(6136) => [
q(Bau Bidayuh),
],
- q(6147) => [
+ q(6137) => [
q(Noon),
],
- q(6148) => [
+ q(6138) => [
q(Sanga (Democratic Republic of Congo)),
],
- q(6149) => [
+ q(6139) => [
q(Shinabo),
],
- q(6150) => [
+ q(6140) => [
q(Sensi),
],
- q(6151) => [
+ q(6141) => [
q(Riverain Sango),
],
- q(6152) => [
+ q(6142) => [
q(Sangil),
],
- q(6153) => [
+ q(6143) => [
q(Southern Ma'di),
],
- q(6154) => [
+ q(6144) => [
q(Siona),
],
- q(6155) => [
+ q(6145) => [
q(Snohomish),
],
- q(6156) => [
+ q(6146) => [
q(Siane),
],
- q(6157) => [
+ q(6147) => [
q(Sangu (Gabon)),
],
- q(6158) => [
+ q(6148) => [
q(Sihan),
],
- q(6159) => [
+ q(6149) => [
q(South West Bay),
q(Nahavaq),
],
- q(6160) => [
+ q(6150) => [
q(Senggi),
q(Viid),
],
- q(6161) => [
+ q(6151) => [
q(Sa'ban),
],
- q(6162) => [
+ q(6152) => [
q(Selee),
],
- q(6163) => [
+ q(6153) => [
q(Sam),
],
- q(6164) => [
+ q(6154) => [
q(Saniyo-Hiyewe),
],
- q(6165) => [
+ q(6155) => [
q(Sinsauru),
],
- q(6166) => [
+ q(6156) => [
q(Thai Song),
],
- q(6167) => [
+ q(6157) => [
q(Sobei),
],
- q(6168) => [
+ q(6158) => [
q(So (Democratic Republic of Congo)),
],
- q(6169) => [
+ q(6159) => [
q(Songoora),
],
- q(6170) => [
+ q(6160) => [
q(Songomeno),
],
- q(6171) => [
+ q(6161) => [
q(Aka),
],
- q(6172) => [
+ q(6162) => [
q(Sonha),
],
- q(6173) => [
+ q(6163) => [
q(Soi),
],
- q(6174) => [
+ q(6164) => [
q(Sokoro),
],
- q(6175) => [
+ q(6165) => [
q(Solos),
],
- q(6176) => [
+ q(6166) => [
q(Songo),
],
- q(6177) => [
+ q(6167) => [
q(Songe),
],
- q(6178) => [
+ q(6168) => [
q(Kanasi),
],
- q(6179) => [
+ q(6169) => [
q(Somrai),
],
- q(6180) => [
+ q(6170) => [
q(Seeku),
],
- q(6181) => [
+ q(6171) => [
q(Southern Thai),
],
- q(6182) => [
+ q(6172) => [
q(Sonsorol),
],
- q(6183) => [
+ q(6173) => [
q(Sowanda),
],
- q(6184) => [
+ q(6174) => [
q(Swo),
],
- q(6185) => [
+ q(6175) => [
q(Miyobe),
],
- q(6186) => [
+ q(6176) => [
q(Temi),
],
- q(6187) => [
+ q(6177) => [
q(Sepa (Indonesia)),
],
- q(6188) => [
+ q(6178) => [
q(Sape),
],
- q(6189) => [
+ q(6179) => [
q(Saep),
],
- q(6190) => [
+ q(6180) => [
q(Sepa (Papua New Guinea)),
],
- q(6191) => [
+ q(6181) => [
q(Sian),
],
- q(6192) => [
+ q(6182) => [
q(Saponi),
],
- q(6193) => [
+ q(6183) => [
q(Sengo),
],
- q(6194) => [
+ q(6184) => [
q(Selepet),
],
- q(6195) => [
+ q(6185) => [
q(Akukem),
],
- q(6196) => [
+ q(6186) => [
+ q(Sanapana),
+ ],
+ q(6187) => [
q(Spokane),
],
- q(6197) => [
+ q(6188) => [
q(Supyire Senoufo),
],
- q(6198) => [
+ q(6189) => [
q(Loreto-Ucayali Spanish),
],
- q(6199) => [
+ q(6190) => [
q(Saparua),
],
- q(6200) => [
+ q(6191) => [
q(Saposa),
],
- q(6201) => [
+ q(6192) => [
q(Spiti Bhoti),
],
- q(6202) => [
+ q(6193) => [
q(Sapuan),
],
- q(6203) => [
+ q(6194) => [
q(Sambalpuri),
q(Kosli),
],
- q(6204) => [
+ q(6195) => [
q(South Picene),
],
- q(6205) => [
+ q(6196) => [
q(Sabaot),
],
- q(6206) => [
+ q(6197) => [
q(Shama-Sambuga),
],
- q(6207) => [
+ q(6198) => [
q(Shau),
],
- q(6208) => [
+ q(6199) => [
q(Albanian Sign Language),
],
- q(6209) => [
+ q(6200) => [
q(Suma),
],
- q(6210) => [
+ q(6201) => [
q(Susquehannock),
],
- q(6211) => [
+ q(6202) => [
q(Sorkhei),
],
- q(6212) => [
+ q(6203) => [
q(Sou),
],
- q(6213) => [
+ q(6204) => [
q(Siculo Arabic),
],
- q(6214) => [
+ q(6205) => [
q(Sri Lankan Sign Language),
],
- q(6215) => [
+ q(6206) => [
q(Soqotri),
],
- q(6216) => [
+ q(6207) => [
q(Squamish),
],
- q(6217) => [
+ q(6208) => [
q(Saruga),
],
- q(6218) => [
+ q(6209) => [
q(Sora),
],
- q(6219) => [
+ q(6210) => [
q(Logudorese Sardinian),
],
- q(6220) => [
+ q(6211) => [
q(Sara),
],
- q(6221) => [
+ q(6212) => [
q(Nafi),
],
- q(6222) => [
+ q(6213) => [
q(Sulod),
],
- q(6223) => [
+ q(6214) => [
q(Sarikoli),
],
- q(6224) => [
+ q(6215) => [
q(Siriano),
],
- q(6225) => [
+ q(6216) => [
q(Serudung Murut),
],
- q(6226) => [
+ q(6217) => [
q(Isirawa),
],
- q(6227) => [
+ q(6218) => [
q(Saramaccan),
],
- q(6228) => [
+ q(6219) => [
q(Campidanese Sardinian),
],
- q(6229) => [
+ q(6220) => [
q(Siriono),
],
- q(6230) => [
+ q(6221) => [
q(Sarsi),
],
- q(6231) => [
+ q(6222) => [
q(Sauri),
],
- q(6232) => [
+ q(6223) => [
q(Surui),
],
- q(6233) => [
+ q(6224) => [
q(Southern Sorsoganon),
],
- q(6234) => [
+ q(6225) => [
q(Serua),
],
- q(6235) => [
+ q(6226) => [
q(Sirmauri),
],
- q(6236) => [
+ q(6227) => [
q(Sera),
],
- q(6237) => [
+ q(6228) => [
q(Shahmirzadi),
],
- q(6238) => [
+ q(6229) => [
q(Southern Sama),
],
- q(6239) => [
+ q(6230) => [
q(Suba-Simbiti),
],
- q(6240) => [
+ q(6231) => [
q(Siroi),
],
- q(6241) => [
+ q(6232) => [
q(Balangingi),
q(Bangingih Sama),
],
- q(6242) => [
+ q(6233) => [
q(Thao),
],
- q(6243) => [
+ q(6234) => [
q(Seimat),
],
- q(6244) => [
+ q(6235) => [
q(Shihhi Arabic),
],
- q(6245) => [
+ q(6236) => [
q(Sansi),
],
- q(6246) => [
+ q(6237) => [
q(Sausi),
],
- q(6247) => [
+ q(6238) => [
q(Sunam),
],
- q(6248) => [
+ q(6239) => [
q(Western Sisaala),
],
- q(6249) => [
+ q(6240) => [
q(Semnam),
],
- q(6250) => [
+ q(6241) => [
q(Waata),
],
- q(6251) => [
+ q(6242) => [
q(Sissano),
],
- q(6252) => [
+ q(6243) => [
q(Spanish Sign Language),
],
- q(6253) => [
+ q(6244) => [
q(So'a),
],
- q(6254) => [
+ q(6245) => [
q(Swiss-French Sign Language),
],
- q(6255) => [
+ q(6246) => [
q(So),
],
- q(6256) => [
+ q(6247) => [
q(Sinasina),
],
- q(6257) => [
+ q(6248) => [
q(Susuami),
],
- q(6258) => [
+ q(6249) => [
q(Shark Bay),
],
- q(6259) => [
+ q(6250) => [
q(Samberigi),
],
- q(6260) => [
+ q(6251) => [
q(Saho),
],
- q(6261) => [
+ q(6252) => [
q(Sengseng),
],
- q(6262) => [
+ q(6253) => [
q(Settla),
],
- q(6263) => [
+ q(6254) => [
q(Northern Subanen),
],
- q(6264) => [
+ q(6255) => [
q(Sentinel),
],
- q(6265) => [
+ q(6256) => [
q(Liana-Seti),
],
- q(6266) => [
+ q(6257) => [
q(Seta),
],
- q(6267) => [
+ q(6258) => [
q(Trieng),
],
- q(6268) => [
+ q(6259) => [
q(Shelta),
],
- q(6269) => [
+ q(6260) => [
q(Bulo Stieng),
],
- q(6270) => [
+ q(6261) => [
q(Matya Samo),
],
- q(6271) => [
+ q(6262) => [
q(Arammba),
],
- q(6272) => [
+ q(6263) => [
q(Stellingwerfs),
],
- q(6273) => [
+ q(6264) => [
q(Setaman),
],
- q(6274) => [
+ q(6265) => [
q(Owa),
],
- q(6275) => [
+ q(6266) => [
q(Stoney),
],
- q(6276) => [
+ q(6267) => [
q(Southeastern Tepehuan),
],
- q(6277) => [
+ q(6268) => [
q(Saterfriesisch),
],
- q(6278) => [
+ q(6269) => [
q(Straits Salish),
],
- q(6279) => [
+ q(6270) => [
q(Shumashti),
],
- q(6280) => [
+ q(6271) => [
q(Budeh Stieng),
],
- q(6281) => [
+ q(6272) => [
q(Samtao),
],
- q(6282) => [
+ q(6273) => [
q(Silt'e),
],
- q(6283) => [
+ q(6274) => [
q(Satawalese),
],
- q(6284) => [
+ q(6275) => [
q(Siberian Tatar),
],
- q(6285) => [
+ q(6276) => [
q(Sulka),
],
- q(6286) => [
+ q(6277) => [
q(Suku),
],
- q(6287) => [
+ q(6278) => [
q(Western Subanon),
],
- q(6288) => [
+ q(6279) => [
q(Suena),
],
- q(6289) => [
+ q(6280) => [
q(Suganga),
],
- q(6290) => [
+ q(6281) => [
q(Suki),
],
- q(6291) => [
+ q(6282) => [
q(Shubi),
],
- q(6292) => [
+ q(6283) => [
q(Suri),
],
- q(6293) => [
+ q(6284) => [
q(Mwaghavul),
],
- q(6294) => [
+ q(6285) => [
q(Subtiaba),
],
- q(6295) => [
+ q(6286) => [
q(Puroik),
],
- q(6296) => [
+ q(6287) => [
q(Sumbwa),
],
- q(6297) => [
+ q(6288) => [
q(Suya),
],
- q(6298) => [
+ q(6289) => [
q(Sunwar),
],
- q(6299) => [
+ q(6290) => [
q(Svan),
],
- q(6300) => [
+ q(6291) => [
q(Ulau-Suain),
],
- q(6301) => [
+ q(6292) => [
q(Vincentian Creole English),
],
- q(6302) => [
+ q(6293) => [
q(Serili),
],
- q(6303) => [
+ q(6294) => [
q(Slovakian Sign Language),
],
- q(6304) => [
+ q(6295) => [
q(Slavomolisano),
],
- q(6305) => [
+ q(6296) => [
q(Savara),
],
- q(6306) => [
+ q(6297) => [
q(Savosavo),
],
- q(6307) => [
+ q(6298) => [
q(Skalvian),
],
- q(6308) => [
+ q(6299) => [
q(Maore Comorian),
],
- q(6309) => [
+ q(6300) => [
q(Congo Swahili),
],
- q(6310) => [
+ q(6301) => [
q(Sere),
],
- q(6311) => [
+ q(6302) => [
q(Swabian),
],
- q(6312) => [
+ q(6303) => [
q(Swahili (individual language)),
q(Kiswahili),
],
- q(6313) => [
+ q(6304) => [
q(Sui),
],
- q(6314) => [
+ q(6305) => [
q(Sira),
],
- q(6315) => [
+ q(6306) => [
q(Malawi Sena),
],
- q(6316) => [
+ q(6307) => [
q(Swedish Sign Language),
],
- q(6317) => [
+ q(6308) => [
q(Samosa),
],
- q(6318) => [
+ q(6309) => [
q(Sawknah),
],
- q(6319) => [
+ q(6310) => [
q(Shanenawa),
],
- q(6320) => [
+ q(6311) => [
q(Suau),
],
- q(6321) => [
+ q(6312) => [
q(Sharwa),
],
- q(6322) => [
+ q(6313) => [
q(Saweru),
],
- q(6323) => [
+ q(6314) => [
q(Seluwasan),
],
- q(6324) => [
+ q(6315) => [
q(Sawila),
],
- q(6325) => [
+ q(6316) => [
q(Suwawa),
],
- q(6326) => [
+ q(6317) => [
q(Shekhawati),
],
- q(6327) => [
+ q(6318) => [
q(Sowa),
],
- q(6328) => [
+ q(6319) => [
q(Suruaha),
],
- q(6329) => [
+ q(6320) => [
q(Sarua),
],
- q(6330) => [
+ q(6321) => [
q(Suba),
],
- q(6331) => [
+ q(6322) => [
q(Sicanian),
],
- q(6332) => [
+ q(6323) => [
q(Sighu),
],
- q(6333) => [
+ q(6324) => [
q(Shixing),
],
- q(6334) => [
+ q(6325) => [
q(Southern Kalapuya),
],
- q(6335) => [
+ q(6326) => [
q(Selian),
],
- q(6336) => [
+ q(6327) => [
q(Samre),
],
- q(6337) => [
+ q(6328) => [
q(Sangir),
],
- q(6338) => [
+ q(6329) => [
q(Sorothaptic),
],
- q(6339) => [
+ q(6330) => [
q(Saaroa),
],
- q(6340) => [
+ q(6331) => [
q(Sasaru),
],
- q(6341) => [
+ q(6332) => [
q(Upper Saxon),
],
- q(6342) => [
+ q(6333) => [
q(Saxwe Gbe),
],
- q(6343) => [
+ q(6334) => [
q(Siang),
],
- q(6344) => [
+ q(6335) => [
q(Central Subanen),
],
- q(6345) => [
+ q(6336) => [
q(Seki),
],
- q(6346) => [
+ q(6337) => [
q(Sukur),
],
- q(6347) => [
+ q(6338) => [
q(Sylheti),
],
- q(6348) => [
+ q(6339) => [
q(Maya Samo),
],
- q(6349) => [
+ q(6340) => [
q(Senaya),
],
- q(6350) => [
+ q(6341) => [
q(Suoy),
],
- q(6351) => [
+ q(6342) => [
q(Sinyar),
],
- q(6352) => [
+ q(6343) => [
q(Kagate),
],
- q(6353) => [
+ q(6344) => [
+ q(Samay),
+ ],
+ q(6345) => [
q(Al-Sayyid Bedouin Sign Language),
],
- q(6354) => [
+ q(6346) => [
q(Semelai),
],
- q(6355) => [
+ q(6347) => [
q(Ngalum),
],
- q(6356) => [
+ q(6348) => [
q(Semaq Beri),
],
- q(6357) => [
+ q(6349) => [
q(Seru),
],
- q(6358) => [
+ q(6350) => [
q(Seze),
],
- q(6359) => [
+ q(6351) => [
q(Sengele),
],
- q(6360) => [
+ q(6352) => [
q(Silesian),
],
- q(6361) => [
+ q(6353) => [
q(Sula),
],
- q(6362) => [
+ q(6354) => [
q(Suabo),
],
- q(6363) => [
+ q(6355) => [
q(Isu (Fako Division)),
],
- q(6364) => [
+ q(6356) => [
q(Sawai),
],
- q(6365) => [
+ q(6357) => [
q(Lower Tanana),
],
- q(6366) => [
+ q(6358) => [
q(Tabassaran),
],
- q(6367) => [
+ q(6359) => [
q(Lowland Tarahumara),
],
- q(6368) => [
+ q(6360) => [
q(Tause),
],
- q(6369) => [
+ q(6361) => [
q(Tariana),
],
- q(6370) => [
+ q(6362) => [
q(Tapirape),
],
- q(6371) => [
+ q(6363) => [
q(Tagoi),
],
- q(6372) => [
+ q(6364) => [
q(Eastern Tamang),
],
- q(6373) => [
+ q(6365) => [
q(Tala),
],
- q(6374) => [
+ q(6366) => [
q(Tal),
],
- q(6375) => [
+ q(6367) => [
q(Tangale),
],
- q(6376) => [
+ q(6368) => [
q(Yami),
],
- q(6377) => [
+ q(6369) => [
q(Taabwa),
],
- q(6378) => [
+ q(6370) => [
q(Tamasheq),
],
- q(6379) => [
+ q(6371) => [
q(Central Tarahumara),
],
- q(6380) => [
+ q(6372) => [
q(Tay Boi),
],
- q(6381) => [
+ q(6373) => [
q(Upper Tanana),
],
- q(6382) => [
+ q(6374) => [
q(Tatuyo),
],
- q(6383) => [
+ q(6375) => [
q(Tai),
],
- q(6384) => [
+ q(6376) => [
q(Tamki),
],
- q(6385) => [
+ q(6377) => [
q(Atayal),
],
- q(6386) => [
+ q(6378) => [
q(Tocho),
],
- q(6387) => [
+ q(6379) => [
q(Aikana),
],
- q(6388) => [
+ q(6380) => [
q(Tapeba),
],
- q(6389) => [
+ q(6381) => [
q(Takia),
],
- q(6390) => [
+ q(6382) => [
q(Kaki Ae),
],
- q(6391) => [
+ q(6383) => [
q(Tanimbili),
],
- q(6392) => [
+ q(6384) => [
q(Mandara),
],
- q(6393) => [
+ q(6385) => [
q(North Tairora),
],
- q(6394) => [
+ q(6386) => [
q(Thurawal),
],
- q(6395) => [
+ q(6387) => [
q(Gaam),
],
- q(6396) => [
+ q(6388) => [
q(Tiang),
],
- q(6397) => [
+ q(6389) => [
q(Calamian Tagbanwa),
],
- q(6398) => [
+ q(6390) => [
q(Tboli),
],
- q(6399) => [
+ q(6391) => [
q(Tagbu),
],
- q(6400) => [
+ q(6392) => [
q(Barro Negro Tunebo),
],
- q(6401) => [
+ q(6393) => [
q(Tawala),
],
- q(6402) => [
+ q(6394) => [
q(Taworta),
q(Diebroud),
],
- q(6403) => [
+ q(6395) => [
q(Tumtum),
],
- q(6404) => [
+ q(6396) => [
q(Tanguat),
],
- q(6405) => [
+ q(6397) => [
q(Tembo (Kitembo)),
],
- q(6406) => [
+ q(6398) => [
q(Tubar),
],
- q(6407) => [
+ q(6399) => [
q(Tobo),
],
- q(6408) => [
+ q(6400) => [
q(Tagbanwa),
],
- q(6409) => [
+ q(6401) => [
q(Kapin),
],
- q(6410) => [
+ q(6402) => [
q(Tabaru),
],
- q(6411) => [
+ q(6403) => [
q(Ditammari),
],
- q(6412) => [
+ q(6404) => [
q(Ticuna),
],
- q(6413) => [
+ q(6405) => [
q(Tanacross),
],
- q(6414) => [
+ q(6406) => [
q(Datooga),
],
- q(6415) => [
+ q(6407) => [
q(Tafi),
],
- q(6416) => [
+ q(6408) => [
q(Southern Tutchone),
],
- q(6417) => [
+ q(6409) => [
q(Malinaltepec Me'phaa),
q(Malinaltepec Tlapanec),
],
- q(6418) => [
+ q(6410) => [
q(Tamagario),
],
- q(6419) => [
+ q(6411) => [
q(Turks And Caicos Creole English),
],
- q(6420) => [
+ q(6412) => [
q(Wara),
],
- q(6421) => [
+ q(6413) => [
q(Tchitchege),
],
- q(6422) => [
+ q(6414) => [
q(Taman (Myanmar)),
],
- q(6423) => [
+ q(6415) => [
q(Tanahmerah),
],
- q(6424) => [
+ q(6416) => [
q(Tichurong),
],
- q(6425) => [
+ q(6417) => [
q(Taungyo),
],
- q(6426) => [
+ q(6418) => [
q(Tawr Chin),
],
- q(6427) => [
+ q(6419) => [
q(Kaiy),
],
- q(6428) => [
+ q(6420) => [
q(Torres Strait Creole),
],
- q(6429) => [
+ q(6421) => [
q(T'en),
],
- q(6430) => [
+ q(6422) => [
q(Southeastern Tarahumara),
],
- q(6431) => [
+ q(6423) => [
q(Tecpatlan Totonac),
],
- q(6432) => [
+ q(6424) => [
q(Toda),
],
- q(6433) => [
+ q(6425) => [
q(Tulu),
],
- q(6434) => [
+ q(6426) => [
q(Thado Chin),
],
- q(6435) => [
+ q(6427) => [
q(Tagdal),
],
- q(6436) => [
+ q(6428) => [
q(Panchpargania),
],
- q(6437) => [
+ q(6429) => [
q(Embera-Tado),
],
- q(6438) => [
+ q(6430) => [
q(Tai Nua),
],
- q(6439) => [
+ q(6431) => [
q(Tiranige Diga Dogon),
],
- q(6440) => [
+ q(6432) => [
q(Talieng),
],
- q(6441) => [
+ q(6433) => [
q(Western Tamang),
],
- q(6442) => [
+ q(6434) => [
q(Thulung),
],
- q(6443) => [
+ q(6435) => [
q(Tomadino),
],
- q(6444) => [
+ q(6436) => [
q(Tajio),
],
- q(6445) => [
+ q(6437) => [
q(Tambas),
],
- q(6446) => [
+ q(6438) => [
q(Sur),
],
- q(6447) => [
+ q(6439) => [
q(Tondano),
],
- q(6448) => [
+ q(6440) => [
q(Teme),
],
- q(6449) => [
+ q(6441) => [
q(Tita),
],
- q(6450) => [
+ q(6442) => [
q(Todrah),
],
- q(6451) => [
+ q(6443) => [
q(Doutai),
],
- q(6452) => [
+ q(6444) => [
q(Tetun Dili),
],
- q(6453) => [
+ q(6445) => [
q(Tempasuk Dusun),
],
- q(6454) => [
+ q(6446) => [
q(Toro),
],
- q(6455) => [
+ q(6447) => [
q(Tandroy-Mahafaly Malagasy),
],
- q(6456) => [
+ q(6448) => [
q(Tadyawan),
],
- q(6457) => [
+ q(6449) => [
q(Temiar),
],
- q(6458) => [
+ q(6450) => [
q(Tetete),
],
- q(6459) => [
+ q(6451) => [
q(Terik),
],
- q(6460) => [
+ q(6452) => [
q(Tepo Krumen),
],
- q(6461) => [
+ q(6453) => [
q(Huehuetla Tepehua),
],
- q(6462) => [
+ q(6454) => [
q(Teressa),
],
- q(6463) => [
+ q(6455) => [
q(Teke-Tege),
],
- q(6464) => [
+ q(6456) => [
q(Tehuelche),
],
- q(6465) => [
+ q(6457) => [
q(Torricelli),
],
- q(6466) => [
+ q(6458) => [
q(Ibali Teke),
],
- q(6467) => [
+ q(6459) => [
q(Tama (Colombia)),
],
- q(6468) => [
+ q(6460) => [
q(Teso),
],
- q(6469) => [
+ q(6461) => [
q(Tepecano),
],
- q(6470) => [
+ q(6462) => [
q(Temein),
],
- q(6471) => [
+ q(6463) => [
q(Tengger),
],
- q(6472) => [
+ q(6464) => [
q(Soo),
],
- q(6473) => [
+ q(6465) => [
q(Teor),
],
- q(6474) => [
+ q(6466) => [
q(Tewa (USA)),
],
- q(6475) => [
+ q(6467) => [
q(Tennet),
],
- q(6476) => [
+ q(6468) => [
q(Tulishi),
],
- q(6477) => [
+ q(6469) => [
q(Tofin Gbe),
],
- q(6478) => [
+ q(6470) => [
q(Tanaina),
],
- q(6479) => [
+ q(6471) => [
q(Tefaro),
],
- q(6480) => [
+ q(6472) => [
q(Teribe),
],
- q(6481) => [
+ q(6473) => [
q(Ternate),
],
- q(6482) => [
+ q(6474) => [
q(Sagalla),
],
- q(6483) => [
+ q(6475) => [
q(Tobilung),
],
- q(6484) => [
+ q(6476) => [
q(Tigak),
],
- q(6485) => [
+ q(6477) => [
q(Ciwogai),
],
- q(6486) => [
+ q(6478) => [
q(Eastern Gorkha Tamang),
],
- q(6487) => [
+ q(6479) => [
q(Chalikha),
],
- q(6488) => [
+ q(6480) => [
q(Tobagonian Creole English),
],
- q(6489) => [
+ q(6481) => [
q(Lawunuia),
],
- q(6490) => [
+ q(6482) => [
q(Tagin),
],
- q(6491) => [
+ q(6483) => [
q(Tandaganon),
],
- q(6492) => [
+ q(6484) => [
q(Sudest),
],
- q(6493) => [
+ q(6485) => [
q(Tangoa),
],
- q(6494) => [
+ q(6486) => [
q(Tring),
],
- q(6495) => [
+ q(6487) => [
q(Tareng),
],
- q(6496) => [
+ q(6488) => [
q(Nume),
],
- q(6497) => [
+ q(6489) => [
q(Central Tagbanwa),
],
- q(6498) => [
+ q(6490) => [
q(Tanggu),
],
- q(6499) => [
+ q(6491) => [
q(Tingui-Boto),
],
- q(6500) => [
+ q(6492) => [
q(Tagwana Senoufo),
],
- q(6501) => [
+ q(6493) => [
q(Tagish),
],
- q(6502) => [
+ q(6494) => [
q(Togoyo),
],
- q(6503) => [
+ q(6495) => [
q(Tagalaka),
],
- q(6504) => [
+ q(6496) => [
q(Tai Hang Tong),
],
- q(6505) => [
+ q(6497) => [
q(Thayore),
],
- q(6506) => [
+ q(6498) => [
q(Chitwania Tharu),
],
- q(6507) => [
+ q(6499) => [
q(Thangmi),
],
- q(6508) => [
+ q(6500) => [
q(Northern Tarahumara),
],
- q(6509) => [
+ q(6501) => [
q(Tai Long),
],
- q(6510) => [
+ q(6502) => [
q(Tharaka),
q(Kitharaka),
],
- q(6511) => [
+ q(6503) => [
q(Dangaura Tharu),
],
- q(6512) => [
+ q(6504) => [
q(Aheu),
],
- q(6513) => [
+ q(6505) => [
q(Thachanadan),
],
- q(6514) => [
+ q(6506) => [
q(Thompson),
],
- q(6515) => [
+ q(6507) => [
q(Kochila Tharu),
],
- q(6516) => [
+ q(6508) => [
q(Rana Tharu),
],
- q(6517) => [
+ q(6509) => [
q(Thakali),
],
- q(6518) => [
+ q(6510) => [
q(Tahltan),
],
- q(6519) => [
+ q(6511) => [
q(Thuri),
],
- q(6520) => [
+ q(6512) => [
q(Tahaggart Tamahaq),
],
- q(6521) => [
+ q(6513) => [
q(Thudam),
],
- q(6522) => [
- q(The),
- ],
- q(6523) => [
+ q(6514) => [
q(Tha),
],
- q(6524) => [
+ q(6515) => [
q(Tayart Tamajeq),
],
- q(6525) => [
+ q(6516) => [
q(Tidikelt Tamazight),
],
- q(6526) => [
+ q(6517) => [
q(Tira),
],
- q(6527) => [
+ q(6518) => [
q(Tidong),
],
- q(6528) => [
+ q(6519) => [
q(Tifal),
],
- q(6529) => [
+ q(6520) => [
q(Timugon Murut),
],
- q(6530) => [
+ q(6521) => [
q(Tiene),
],
- q(6531) => [
+ q(6522) => [
q(Tilung),
],
- q(6532) => [
+ q(6523) => [
q(Tikar),
],
- q(6533) => [
+ q(6524) => [
q(Tillamook),
],
- q(6534) => [
+ q(6525) => [
q(Timbe),
],
- q(6535) => [
+ q(6526) => [
q(Tindi),
],
- q(6536) => [
+ q(6527) => [
q(Teop),
],
- q(6537) => [
+ q(6528) => [
q(Trimuris),
],
- q(6538) => [
+ q(6529) => [
q(Tiefo),
],
- q(6539) => [
+ q(6530) => [
q(Masadiit Itneg),
],
- q(6540) => [
+ q(6531) => [
q(Tinigua),
],
- q(6541) => [
+ q(6532) => [
q(Adasen),
],
- q(6542) => [
+ q(6533) => [
q(Tiwi),
],
- q(6543) => [
+ q(6534) => [
q(Southern Tiwa),
],
- q(6544) => [
+ q(6535) => [
q(Tiruray),
],
- q(6545) => [
+ q(6536) => [
q(Tai Hongjin),
],
- q(6546) => [
+ q(6537) => [
q(Tajuasohn),
],
- q(6547) => [
+ q(6538) => [
q(Tunjung),
],
- q(6548) => [
+ q(6539) => [
q(Northern Tujia),
],
- q(6549) => [
+ q(6540) => [
q(Tai Laing),
],
- q(6550) => [
+ q(6541) => [
q(Timucua),
],
- q(6551) => [
+ q(6542) => [
q(Tonjon),
],
- q(6552) => [
+ q(6543) => [
q(Temacine Tamazight),
],
- q(6553) => [
+ q(6544) => [
q(Southern Tujia),
],
- q(6554) => [
+ q(6545) => [
q(Tjurruru),
],
- q(6555) => [
+ q(6546) => [
q(Djabwurrung),
],
- q(6556) => [
+ q(6547) => [
q(Truka),
],
- q(6557) => [
+ q(6548) => [
q(Buksa),
],
- q(6558) => [
+ q(6549) => [
q(Tukudede),
],
- q(6559) => [
+ q(6550) => [
q(Takwane),
],
- q(6560) => [
+ q(6551) => [
q(Tukumanfed),
],
- q(6561) => [
+ q(6552) => [
q(Tesaka Malagasy),
],
- q(6562) => [
+ q(6553) => [
q(Takelma),
],
- q(6563) => [
+ q(6554) => [
q(Toku-No-Shima),
],
- q(6564) => [
+ q(6555) => [
q(Tikopia),
],
- q(6565) => [
+ q(6556) => [
q(Tee),
],
- q(6566) => [
+ q(6557) => [
q(Tsakhur),
],
- q(6567) => [
+ q(6558) => [
q(Takestani),
],
- q(6568) => [
+ q(6559) => [
q(Kathoriya Tharu),
],
- q(6569) => [
+ q(6560) => [
q(Upper Necaxa Totonac),
],
- q(6570) => [
+ q(6561) => [
+ q(Mur Pano),
+ ],
+ q(6562) => [
q(Teanu),
],
- q(6571) => [
+ q(6563) => [
q(Tangko),
],
- q(6572) => [
+ q(6564) => [
q(Takua),
],
- q(6573) => [
+ q(6565) => [
q(Southwestern Tepehuan),
],
- q(6574) => [
+ q(6566) => [
q(Tobelo),
],
- q(6575) => [
+ q(6567) => [
q(Yecuatla Totonac),
],
- q(6576) => [
+ q(6568) => [
q(Talaud),
],
- q(6577) => [
+ q(6569) => [
q(Telefol),
],
- q(6578) => [
+ q(6570) => [
q(Tofanma),
],
- q(6579) => [
+ q(6571) => [
q(Talinga-Bwisi),
],
- q(6580) => [
+ q(6572) => [
q(Taloki),
],
- q(6581) => [
+ q(6573) => [
q(Tetela),
],
- q(6582) => [
+ q(6574) => [
q(Tolomako),
],
- q(6583) => [
+ q(6575) => [
q(Talondo'),
],
- q(6584) => [
+ q(6576) => [
q(Talodi),
],
- q(6585) => [
+ q(6577) => [
q(Filomena Mata-Coahuitlan Totonac),
],
- q(6586) => [
+ q(6578) => [
q(Tai Loi),
],
- q(6587) => [
+ q(6579) => [
q(Talise),
],
- q(6588) => [
+ q(6580) => [
q(Tambotalo),
],
- q(6589) => [
+ q(6581) => [
q(Teluti),
],
- q(6590) => [
+ q(6582) => [
q(Tulehu),
],
- q(6591) => [
+ q(6583) => [
q(Taliabu),
],
- q(6592) => [
+ q(6584) => [
q(Khehek),
],
- q(6593) => [
+ q(6585) => [
q(Talysh),
],
- q(6594) => [
+ q(6586) => [
q(Tama (Chad)),
],
- q(6595) => [
+ q(6587) => [
q(Katbol),
q(Avava),
],
- q(6596) => [
+ q(6588) => [
q(Tumak),
],
- q(6597) => [
+ q(6589) => [
q(Haruai),
],
- q(6598) => [
+ q(6590) => [
q(Tremembe),
],
- q(6599) => [
+ q(6591) => [
q(Toba-Maskoy),
],
- q(6600) => [
+ q(6592) => [
q(Ternateno),
],
- q(6601) => [
+ q(6593) => [
q(Tutuba),
],
- q(6602) => [
+ q(6594) => [
q(Samarokena),
],
- q(6603) => [
+ q(6595) => [
q(Northwestern Tamang),
],
- q(6604) => [
+ q(6596) => [
q(Tamnim Citak),
],
- q(6605) => [
+ q(6597) => [
q(Tai Thanh),
],
- q(6606) => [
+ q(6598) => [
q(Taman (Indonesia)),
],
- q(6607) => [
+ q(6599) => [
q(Temoq),
],
- q(6608) => [
+ q(6600) => [
q(Tai Mene),
],
- q(6609) => [
+ q(6601) => [
q(Tumleo),
],
- q(6610) => [
+ q(6602) => [
q(Jewish Babylonian Aramaic (ca. 200-1200 CE)),
],
- q(6611) => [
+ q(6603) => [
q(Tima),
],
- q(6612) => [
+ q(6604) => [
q(Tasmate),
],
- q(6613) => [
+ q(6605) => [
q(Iau),
],
- q(6614) => [
+ q(6606) => [
q(Tembo (Motembo)),
],
- q(6615) => [
+ q(6607) => [
q(Temuan),
],
- q(6616) => [
+ q(6608) => [
q(Tami),
],
- q(6617) => [
+ q(6609) => [
q(Tamanaku),
],
- q(6618) => [
+ q(6610) => [
q(Tacana),
],
- q(6619) => [
+ q(6611) => [
q(Western Tunebo),
],
- q(6620) => [
+ q(6612) => [
q(Tanimuca-Retuara),
],
- q(6621) => [
+ q(6613) => [
q(Angosturas Tunebo),
],
- q(6622) => [
+ q(6614) => [
q(Tinoc Kallahan),
],
- q(6623) => [
+ q(6615) => [
q(Tobanga),
],
- q(6624) => [
+ q(6616) => [
q(Maiani),
],
- q(6625) => [
+ q(6617) => [
q(Tandia),
],
- q(6626) => [
+ q(6618) => [
q(Kwamera),
],
- q(6627) => [
+ q(6619) => [
q(Lenakel),
],
- q(6628) => [
+ q(6620) => [
q(Tabla),
],
- q(6629) => [
+ q(6621) => [
q(North Tanna),
],
- q(6630) => [
+ q(6622) => [
q(Toromono),
],
- q(6631) => [
+ q(6623) => [
q(Whitesands),
],
- q(6632) => [
+ q(6624) => [
q(Taino),
],
- q(6633) => [
+ q(6625) => [
q(Menik),
],
- q(6634) => [
+ q(6626) => [
q(Tenis),
],
- q(6635) => [
+ q(6627) => [
q(Tontemboan),
],
- q(6636) => [
+ q(6628) => [
q(Tay Khang),
],
- q(6637) => [
+ q(6629) => [
q(Tangchangya),
],
- q(6638) => [
+ q(6630) => [
q(Tonsawang),
],
- q(6639) => [
+ q(6631) => [
q(Tanema),
],
- q(6640) => [
+ q(6632) => [
q(Tongwe),
],
- q(6641) => [
+ q(6633) => [
q(Tonga (Thailand)),
],
- q(6642) => [
+ q(6634) => [
q(Toba),
],
- q(6643) => [
+ q(6635) => [
q(Coyutla Totonac),
],
- q(6644) => [
+ q(6636) => [
q(Toma),
],
- q(6645) => [
+ q(6637) => [
q(Tomedes),
],
- q(6646) => [
+ q(6638) => [
q(Gizrra),
],
- q(6647) => [
+ q(6639) => [
q(Gitonga),
],
- q(6648) => [
+ q(6640) => [
q(Tonga (Zambia)),
],
- q(6649) => [
+ q(6641) => [
q(Tojolabal),
],
- q(6650) => [
+ q(6642) => [
q(Tolowa),
],
- q(6651) => [
+ q(6643) => [
q(Tombulu),
],
- q(6652) => [
+ q(6644) => [
q(Xicotepec De Juarez Totonac),
],
- q(6653) => [
+ q(6645) => [
q(Papantla Totonac),
],
- q(6654) => [
+ q(6646) => [
q(Toposa),
],
- q(6655) => [
+ q(6647) => [
q(Togbo-Vara Banda),
],
- q(6656) => [
+ q(6648) => [
q(Highland Totonac),
],
- q(6657) => [
+ q(6649) => [
q(Tho),
],
- q(6658) => [
+ q(6650) => [
q(Upper Taromi),
],
- q(6659) => [
+ q(6651) => [
q(Jemez),
],
- q(6660) => [
+ q(6652) => [
q(Tobian),
],
- q(6661) => [
+ q(6653) => [
q(Topoiyo),
],
- q(6662) => [
+ q(6654) => [
q(To),
],
- q(6663) => [
+ q(6655) => [
q(Taupota),
],
- q(6664) => [
+ q(6656) => [
q(Azoyu Me'phaa),
q(Azoyu Tlapanec),
],
- q(6665) => [
+ q(6657) => [
q(Tippera),
],
- q(6666) => [
+ q(6658) => [
q(Tarpia),
],
- q(6667) => [
+ q(6659) => [
q(Kula),
],
- q(6668) => [
+ q(6660) => [
q(Tapiete),
],
- q(6669) => [
+ q(6661) => [
q(Tupinikin),
],
- q(6670) => [
+ q(6662) => [
q(Tlacoapa Me'phaa),
q(Tlacoapa Tlapanec),
],
- q(6671) => [
+ q(6663) => [
q(Tampulma),
],
- q(6672) => [
+ q(6664) => [
q(Tupinamba),
],
- q(6673) => [
+ q(6665) => [
q(Tai Pao),
],
- q(6674) => [
+ q(6666) => [
q(Pisaflores Tepehua),
],
- q(6675) => [
+ q(6667) => [
q(Tukpa),
],
- q(6676) => [
+ q(6668) => [
q(Tupari),
],
- q(6677) => [
+ q(6669) => [
q(Tlachichilco Tepehua),
],
- q(6678) => [
+ q(6670) => [
q(Tampuan),
],
- q(6679) => [
+ q(6671) => [
q(Tanapag),
],
- q(6680) => [
+ q(6672) => [
q(Tupi),
],
- q(6681) => [
+ q(6673) => [
q(Acatepec Me'phaa),
q(Acatepec Tlapanec),
],
- q(6682) => [
+ q(6674) => [
q(Trumai),
],
- q(6683) => [
+ q(6675) => [
q(Tinputz),
],
- q(6684) => [
+ q(6676) => [
q(Tembe),
],
- q(6685) => [
+ q(6677) => [
q(Lehali),
],
- q(6686) => [
+ q(6678) => [
q(Turumsa),
],
- q(6687) => [
+ q(6679) => [
q(Tenino),
],
- q(6688) => [
+ q(6680) => [
q(Toaripi),
],
- q(6689) => [
+ q(6681) => [
q(Tomoip),
],
- q(6690) => [
+ q(6682) => [
q(Tunni),
],
- q(6691) => [
+ q(6683) => [
q(Torona),
],
- q(6692) => [
+ q(6684) => [
q(Western Totonac),
],
- q(6693) => [
+ q(6685) => [
q(Touo),
],
- q(6694) => [
+ q(6686) => [
q(Tonkawa),
],
- q(6695) => [
+ q(6687) => [
q(Tirahi),
],
- q(6696) => [
+ q(6688) => [
q(Terebu),
],
- q(6697) => [
+ q(6689) => [
q(Copala Triqui),
],
- q(6698) => [
+ q(6690) => [
q(Turi),
],
- q(6699) => [
+ q(6691) => [
q(East Tarangan),
],
- q(6700) => [
+ q(6692) => [
q(Trinidadian Creole English),
],
- q(6701) => [
+ q(6693) => [
q(Lishan Didan),
],
- q(6702) => [
+ q(6694) => [
q(Turaka),
],
- q(6703) => [
+ q(6695) => [
q(Trio),
],
- q(6704) => [
+ q(6696) => [
q(Toram),
],
- q(6705) => [
+ q(6697) => [
q(Traveller Scottish),
],
- q(6706) => [
+ q(6698) => [
q(Tregami),
],
- q(6707) => [
+ q(6699) => [
q(Trinitario),
],
- q(6708) => [
+ q(6700) => [
q(Tarao Naga),
],
- q(6709) => [
+ q(6701) => [
q(Kok Borok),
],
- q(6710) => [
+ q(6702) => [
q(San Martin Itunyoso Triqui),
],
- q(6711) => [
+ q(6703) => [
q(Taushiro),
],
- q(6712) => [
+ q(6704) => [
q(Chicahuaxtla Triqui),
],
- q(6713) => [
+ q(6705) => [
q(Tunggare),
],
- q(6714) => [
+ q(6706) => [
q(Turoyo),
q(Surayt),
],
- q(6715) => [
+ q(6707) => [
q(Taroko),
],
- q(6716) => [
+ q(6708) => [
q(Torwali),
],
- q(6717) => [
+ q(6709) => [
q(Tringgus-Sembaan Bidayuh),
],
- q(6718) => [
+ q(6710) => [
q(Turung),
],
- q(6719) => [
+ q(6711) => [
q(Tora),
],
- q(6720) => [
+ q(6712) => [
q(Tsaangi),
],
- q(6721) => [
+ q(6713) => [
q(Tsamai),
],
- q(6722) => [
+ q(6714) => [
q(Tswa),
],
- q(6723) => [
+ q(6715) => [
q(Tsakonian),
],
- q(6724) => [
+ q(6716) => [
q(Tunisian Sign Language),
],
- q(6725) => [
- q(Southwestern Tamang),
- ],
- q(6726) => [
+ q(6717) => [
q(Tausug),
],
- q(6727) => [
+ q(6718) => [
q(Tsuvan),
],
- q(6728) => [
+ q(6719) => [
q(Tshangla),
],
- q(6729) => [
+ q(6720) => [
q(Tseku),
],
- q(6730) => [
+ q(6721) => [
q(Ts'un-Lao),
],
- q(6731) => [
+ q(6722) => [
q(Turkish Sign Language),
q(Turk Isaret Dili),
],
- q(6732) => [
+ q(6723) => [
q(Northern Toussian),
],
- q(6733) => [
+ q(6724) => [
q(Thai Sign Language),
],
- q(6734) => [
+ q(6725) => [
q(Akei),
],
- q(6735) => [
+ q(6726) => [
q(Taiwan Sign Language),
],
- q(6736) => [
+ q(6727) => [
q(Tondi Songway Kiini),
],
- q(6737) => [
+ q(6728) => [
q(Tsou),
],
- q(6738) => [
+ q(6729) => [
q(Tsogo),
],
- q(6739) => [
+ q(6730) => [
q(Tsishingini),
],
- q(6740) => [
+ q(6731) => [
q(Mubami),
],
- q(6741) => [
+ q(6732) => [
q(Tebul Sign Language),
],
- q(6742) => [
+ q(6733) => [
q(Purepecha),
],
- q(6743) => [
+ q(6734) => [
q(Tutelo),
],
- q(6744) => [
+ q(6735) => [
q(Gaa),
],
- q(6745) => [
+ q(6736) => [
q(Tektiteko),
],
- q(6746) => [
+ q(6737) => [
q(Tauade),
],
- q(6747) => [
+ q(6738) => [
q(Bwanabwana),
],
- q(6748) => [
+ q(6739) => [
q(Tuotomb),
],
- q(6749) => [
+ q(6740) => [
q(Tutong),
],
- q(6750) => [
+ q(6741) => [
q(Upper Ta'oih),
],
- q(6751) => [
+ q(6742) => [
q(Tobati),
],
- q(6752) => [
+ q(6743) => [
q(Tooro),
],
- q(6753) => [
+ q(6744) => [
q(Totoro),
],
- q(6754) => [
+ q(6745) => [
q(Totela),
],
- q(6755) => [
+ q(6746) => [
q(Northern Tutchone),
],
- q(6756) => [
+ q(6747) => [
q(Towei),
],
- q(6757) => [
+ q(6748) => [
q(Lower Ta'oih),
],
- q(6758) => [
+ q(6749) => [
q(Tombelala),
],
- q(6759) => [
+ q(6750) => [
q(Tawallammat Tamajaq),
],
- q(6760) => [
+ q(6751) => [
q(Tera),
],
- q(6761) => [
+ q(6752) => [
q(Northeastern Thai),
],
- q(6762) => [
+ q(6753) => [
q(Muslim Tat),
],
- q(6763) => [
+ q(6754) => [
q(Torau),
],
- q(6764) => [
+ q(6755) => [
q(Titan),
],
- q(6765) => [
+ q(6756) => [
q(Long Wat),
],
- q(6766) => [
+ q(6757) => [
q(Sikaritai),
],
- q(6767) => [
+ q(6758) => [
q(Tsum),
],
- q(6768) => [
+ q(6759) => [
q(Wiarumus),
],
- q(6769) => [
+ q(6760) => [
q(Tubatulabal),
],
- q(6770) => [
+ q(6761) => [
q(Mutu),
],
- q(6771) => [
+ q(6762) => [
q(Tuxa),
],
- q(6772) => [
+ q(6763) => [
q(Tuyuca),
],
- q(6773) => [
+ q(6764) => [
q(Central Tunebo),
],
- q(6774) => [
+ q(6765) => [
q(Tunia),
],
- q(6775) => [
+ q(6766) => [
q(Taulil),
],
- q(6776) => [
+ q(6767) => [
q(Tupuri),
],
- q(6777) => [
+ q(6768) => [
q(Tugutil),
],
- q(6778) => [
+ q(6769) => [
q(Tula),
],
- q(6779) => [
+ q(6770) => [
q(Tunica),
],
- q(6780) => [
+ q(6771) => [
q(Tucano),
],
- q(6781) => [
+ q(6772) => [
q(Tedaga),
],
- q(6782) => [
+ q(6773) => [
q(Tuscarora),
],
- q(6783) => [
+ q(6774) => [
q(Tututni),
],
- q(6784) => [
+ q(6775) => [
q(Turkana),
],
- q(6785) => [
+ q(6776) => [
q(Tuxinawa),
],
- q(6786) => [
+ q(6777) => [
q(Tugen),
],
- q(6787) => [
+ q(6778) => [
q(Turka),
],
- q(6788) => [
+ q(6779) => [
q(Vaghua),
],
- q(6789) => [
+ q(6780) => [
q(Tsuvadi),
],
- q(6790) => [
+ q(6781) => [
q(Te'un),
],
- q(6791) => [
+ q(6782) => [
q(Southeast Ambrym),
],
- q(6792) => [
+ q(6783) => [
q(Tela-Masbuar),
],
- q(6793) => [
+ q(6784) => [
q(Tavoyan),
],
- q(6794) => [
+ q(6785) => [
q(Tidore),
],
- q(6795) => [
+ q(6786) => [
q(Taveta),
],
- q(6796) => [
+ q(6787) => [
q(Tutsa Naga),
],
- q(6797) => [
+ q(6788) => [
q(Tunen),
],
- q(6798) => [
+ q(6789) => [
q(Sedoa),
],
- q(6799) => [
+ q(6790) => [
q(Timor Pidgin),
],
- q(6800) => [
+ q(6791) => [
q(Twana),
],
- q(6801) => [
+ q(6792) => [
q(Western Tawbuid),
],
- q(6802) => [
+ q(6793) => [
q(Teshenawa),
],
- q(6803) => [
+ q(6794) => [
q(Twents),
],
- q(6804) => [
+ q(6795) => [
q(Tewa (Indonesia)),
],
- q(6805) => [
+ q(6796) => [
q(Northern Tiwa),
],
- q(6806) => [
+ q(6797) => [
q(Tereweng),
],
- q(6807) => [
+ q(6798) => [
q(Tai Don),
],
- q(6808) => [
+ q(6799) => [
q(Tawara),
],
- q(6809) => [
+ q(6800) => [
q(Tawang Monpa),
],
- q(6810) => [
+ q(6801) => [
q(Twendi),
],
- q(6811) => [
+ q(6802) => [
q(Tswapong),
],
- q(6812) => [
+ q(6803) => [
q(Ere),
],
- q(6813) => [
+ q(6804) => [
q(Tasawaq),
],
- q(6814) => [
+ q(6805) => [
q(Southwestern Tarahumara),
],
- q(6815) => [
+ q(6806) => [
q(Turiwara),
],
- q(6816) => [
+ q(6807) => [
q(Termanu),
],
- q(6817) => [
+ q(6808) => [
q(Tuwari),
],
- q(6818) => [
+ q(6809) => [
q(Tewe),
],
- q(6819) => [
+ q(6810) => [
q(Tawoyan),
],
- q(6820) => [
+ q(6811) => [
q(Tombonuo),
],
- q(6821) => [
+ q(6812) => [
q(Tokharian B),
],
- q(6822) => [
+ q(6813) => [
q(Tsetsaut),
],
- q(6823) => [
+ q(6814) => [
q(Totoli),
],
- q(6824) => [
+ q(6815) => [
q(Tangut),
],
- q(6825) => [
+ q(6816) => [
q(Thracian),
],
- q(6826) => [
+ q(6817) => [
q(Ikpeng),
],
- q(6827) => [
+ q(6818) => [
+ q(Tarjumo),
+ ],
+ q(6819) => [
q(Tomini),
],
- q(6828) => [
+ q(6820) => [
q(West Tarangan),
],
- q(6829) => [
+ q(6821) => [
q(Toto),
],
- q(6830) => [
+ q(6822) => [
q(Tii),
],
- q(6831) => [
+ q(6823) => [
q(Tartessian),
],
- q(6832) => [
+ q(6824) => [
q(Tonsea),
],
- q(6833) => [
+ q(6825) => [
q(Citak),
],
- q(6834) => [
+ q(6826) => [
q(Kayapo),
],
- q(6835) => [
+ q(6827) => [
q(Tatana),
],
- q(6836) => [
+ q(6828) => [
q(Tanosy Malagasy),
],
- q(6837) => [
+ q(6829) => [
q(Tauya),
],
- q(6838) => [
+ q(6830) => [
q(Kyanga),
],
- q(6839) => [
+ q(6831) => [
q(O'du),
],
- q(6840) => [
+ q(6832) => [
q(Teke-Tsaayi),
],
- q(6841) => [
+ q(6833) => [
q(Tai Do),
],
- q(6842) => [
+ q(6834) => [
q(Thu Lao),
],
- q(6843) => [
+ q(6835) => [
q(Kombai),
],
- q(6844) => [
+ q(6836) => [
q(Thaypan),
],
- q(6845) => [
+ q(6837) => [
q(Tai Daeng),
],
- q(6846) => [
+ q(6838) => [
q(Tay Sa Pa),
],
- q(6847) => [
+ q(6839) => [
q(Tay Tac),
],
- q(6848) => [
+ q(6840) => [
q(Kua),
],
- q(6849) => [
+ q(6841) => [
q(Teke-Tyee),
],
- q(6850) => [
+ q(6842) => [
q(Tay),
],
- q(6851) => [
+ q(6843) => [
q(Tanzanian Sign Language),
],
- q(6852) => [
+ q(6844) => [
q(Tzeltal),
],
- q(6853) => [
+ q(6845) => [
q(Tz'utujil),
],
- q(6854) => [
+ q(6846) => [
q(Talossan),
],
- q(6855) => [
+ q(6847) => [
q(Central Atlas Tamazight),
],
- q(6856) => [
+ q(6848) => [
q(Tugun),
],
- q(6857) => [
+ q(6849) => [
q(Tzotzil),
],
- q(6858) => [
+ q(6850) => [
q(Tabriak),
],
- q(6859) => [
+ q(6851) => [
q(Uamue),
],
- q(6860) => [
+ q(6852) => [
q(Kuan),
],
- q(6861) => [
+ q(6853) => [
q(Tairuma),
],
- q(6862) => [
+ q(6854) => [
q(Ubang),
],
- q(6863) => [
+ q(6855) => [
q(Ubi),
],
- q(6864) => [
+ q(6856) => [
q(Buhi'non Bikol),
],
- q(6865) => [
+ q(6857) => [
q(Ubir),
],
- q(6866) => [
+ q(6858) => [
q(Umbu-Ungu),
],
- q(6867) => [
+ q(6859) => [
q(Ubykh),
],
- q(6868) => [
+ q(6860) => [
q(Uda),
],
- q(6869) => [
+ q(6861) => [
q(Udihe),
],
- q(6870) => [
+ q(6862) => [
q(Muduga),
],
- q(6871) => [
+ q(6863) => [
q(Udi),
],
- q(6872) => [
+ q(6864) => [
q(Ujir),
],
- q(6873) => [
+ q(6865) => [
q(Wuzlam),
],
- q(6874) => [
+ q(6866) => [
q(Uduk),
],
- q(6875) => [
+ q(6867) => [
q(Kioko),
],
- q(6876) => [
+ q(6868) => [
q(Ufim),
],
- q(6877) => [
+ q(6869) => [
q(Kuku-Ugbanh),
],
- q(6878) => [
+ q(6870) => [
q(Ughele),
],
- q(6879) => [
+ q(6871) => [
q(Ugandan Sign Language),
],
- q(6880) => [
+ q(6872) => [
q(Ugong),
],
- q(6881) => [
+ q(6873) => [
q(Uruguayan Sign Language),
],
- q(6882) => [
+ q(6874) => [
q(Uhami),
],
- q(6883) => [
+ q(6875) => [
q(Damal),
],
- q(6884) => [
+ q(6876) => [
q(Uisai),
],
- q(6885) => [
+ q(6877) => [
q(Iyive),
],
- q(6886) => [
+ q(6878) => [
q(Tanjijili),
],
- q(6887) => [
+ q(6879) => [
q(Kaburi),
],
- q(6888) => [
+ q(6880) => [
q(Ukuriguma),
],
- q(6889) => [
+ q(6881) => [
q(Ukhwejo),
],
- q(6890) => [
+ q(6882) => [
q(Ukrainian Sign Language),
],
- q(6891) => [
+ q(6883) => [
q(Ukpe-Bayobiri),
],
- q(6892) => [
+ q(6884) => [
q(Ukwa),
],
- q(6893) => [
+ q(6885) => [
q(Urubu-Kaapor Sign Language),
q(Kaapor Sign Language),
],
- q(6894) => [
+ q(6886) => [
q(Ukue),
],
- q(6895) => [
+ q(6887) => [
q(Ukwuani-Aboh-Ndoni),
],
- q(6896) => [
+ q(6888) => [
q(Kuuk-Yak),
],
- q(6897) => [
+ q(6889) => [
q(Fungwa),
],
- q(6898) => [
+ q(6890) => [
q(Ulukwumi),
],
- q(6899) => [
+ q(6891) => [
q(Ulch),
],
- q(6900) => [
+ q(6892) => [
q(Lule),
],
- q(6901) => [
+ q(6893) => [
q(Usku),
q(Afra),
],
- q(6902) => [
+ q(6894) => [
q(Ulithian),
],
- q(6903) => [
+ q(6895) => [
q(Meriam),
],
- q(6904) => [
+ q(6896) => [
q(Ullatan),
],
- q(6905) => [
+ q(6897) => [
q(Ulumanda'),
],
- q(6906) => [
+ q(6898) => [
q(Unserdeutsch),
],
- q(6907) => [
+ q(6899) => [
q(Uma' Lung),
],
- q(6908) => [
+ q(6900) => [
q(Ulwa),
],
- q(6909) => [
+ q(6901) => [
q(Umatilla),
],
- q(6910) => [
+ q(6902) => [
q(Marrucinian),
],
- q(6911) => [
+ q(6903) => [
q(Umbindhamu),
],
- q(6912) => [
+ q(6904) => [
q(Umbuygamu),
],
- q(6913) => [
+ q(6905) => [
q(Ukit),
],
- q(6914) => [
+ q(6906) => [
q(Umon),
],
- q(6915) => [
+ q(6907) => [
q(Makyan Naga),
],
- q(6916) => [
+ q(6908) => [
q(Umotina),
],
- q(6917) => [
+ q(6909) => [
q(Umpila),
],
- q(6918) => [
+ q(6910) => [
q(Umbugarla),
],
- q(6919) => [
+ q(6911) => [
q(Pendau),
],
- q(6920) => [
+ q(6912) => [
q(Munsee),
],
- q(6921) => [
+ q(6913) => [
q(North Watut),
],
- q(6922) => [
+ q(6914) => [
q(Uneme),
],
- q(6923) => [
+ q(6915) => [
q(Ngarinyin),
],
- q(6924) => [
+ q(6916) => [
q(Enawene-Nawe),
],
- q(6925) => [
+ q(6917) => [
q(Unami),
],
- q(6926) => [
+ q(6918) => [
q(Kurnai),
],
- q(6927) => [
+ q(6919) => [
q(Mundari),
],
- q(6928) => [
+ q(6920) => [
q(Unubahe),
],
- q(6929) => [
+ q(6921) => [
q(Munda),
],
- q(6930) => [
+ q(6922) => [
q(Unde Kaili),
],
- q(6931) => [
- q(Uokha),
- ],
- q(6932) => [
+ q(6923) => [
q(Umeda),
],
- q(6933) => [
+ q(6924) => [
q(Uripiv-Wala-Rano-Atchin),
],
- q(6934) => [
+ q(6925) => [
q(Urarina),
],
- q(6935) => [
+ q(6926) => [
q(Urubu-Kaapor),
q(Kaapor),
],
- q(6936) => [
+ q(6927) => [
q(Urningangg),
],
- q(6937) => [
+ q(6928) => [
q(Uru),
],
- q(6938) => [
+ q(6929) => [
q(Uradhi),
],
- q(6939) => [
+ q(6930) => [
q(Urigina),
],
- q(6940) => [
+ q(6931) => [
q(Urhobo),
],
- q(6941) => [
+ q(6932) => [
q(Urim),
],
- q(6942) => [
+ q(6933) => [
q(Urak Lawoi'),
],
- q(6943) => [
+ q(6934) => [
q(Urali),
],
- q(6944) => [
+ q(6935) => [
q(Urapmin),
],
- q(6945) => [
+ q(6936) => [
q(Uruangnirin),
],
- q(6946) => [
+ q(6937) => [
q(Ura (Papua New Guinea)),
],
- q(6947) => [
+ q(6938) => [
q(Uru-Pa-In),
],
- q(6948) => [
+ q(6939) => [
q(Lehalurup),
q(Loyop),
],
- q(6949) => [
+ q(6940) => [
q(Urat),
],
- q(6950) => [
+ q(6941) => [
q(Urumi),
],
- q(6951) => [
+ q(6942) => [
q(Uruava),
],
- q(6952) => [
+ q(6943) => [
q(Sop),
],
- q(6953) => [
+ q(6944) => [
q(Urimo),
],
- q(6954) => [
+ q(6945) => [
q(Orya),
],
- q(6955) => [
+ q(6946) => [
q(Uru-Eu-Wau-Wau),
],
- q(6956) => [
+ q(6947) => [
q(Usarufa),
],
- q(6957) => [
+ q(6948) => [
q(Ushojo),
],
- q(6958) => [
+ q(6949) => [
q(Usui),
],
- q(6959) => [
+ q(6950) => [
q(Usaghade),
],
- q(6960) => [
+ q(6951) => [
q(Uspanteco),
],
- q(6961) => [
+ q(6952) => [
q(Uya),
],
- q(6962) => [
+ q(6953) => [
q(Otank),
],
- q(6963) => [
+ q(6954) => [
q(Ute-Southern Paiute),
],
- q(6964) => [
+ q(6955) => [
q(Amba (Solomon Islands)),
],
- q(6965) => [
+ q(6956) => [
q(Etulo),
],
- q(6966) => [
+ q(6957) => [
q(Utu),
],
- q(6967) => [
+ q(6958) => [
q(Urum),
],
- q(6968) => [
+ q(6959) => [
q(Kulon-Pazeh),
],
- q(6969) => [
+ q(6960) => [
q(Ura (Vanuatu)),
],
- q(6970) => [
+ q(6961) => [
q(U),
],
- q(6971) => [
+ q(6962) => [
q(West Uvean),
q(Fagauvea),
],
- q(6972) => [
+ q(6963) => [
q(Uri),
],
- q(6973) => [
+ q(6964) => [
q(Lote),
],
- q(6974) => [
+ q(6965) => [
q(Kuku-Uwanh),
],
- q(6975) => [
+ q(6966) => [
q(Doko-Uyanga),
],
- q(6976) => [
+ q(6967) => [
q(Northern Uzbek),
],
- q(6977) => [
+ q(6968) => [
q(Southern Uzbek),
],
- q(6978) => [
+ q(6969) => [
q(Vaagri Booli),
],
- q(6979) => [
+ q(6970) => [
q(Vale),
],
- q(6980) => [
+ q(6971) => [
q(Vafsi),
],
- q(6981) => [
+ q(6972) => [
q(Vagla),
],
- q(6982) => [
+ q(6973) => [
q(Varhadi-Nagpuri),
],
- q(6983) => [
- q(Vasekela Bushman),
+ q(6974) => [
+ q(Sekele),
+ q(Northwestern Kung),
+ q(Northwestern Kung),
+ q(Vasekele),
],
- q(6984) => [
+ q(6975) => [
q(Vehes),
],
- q(6985) => [
+ q(6976) => [
q(Vanimo),
],
- q(6986) => [
+ q(6977) => [
q(Valman),
],
- q(6987) => [
+ q(6978) => [
q(Vao),
],
- q(6988) => [
+ q(6979) => [
q(Vaiphei),
],
- q(6989) => [
+ q(6980) => [
q(Huarijio),
],
- q(6990) => [
+ q(6981) => [
q(Vasavi),
],
- q(6991) => [
+ q(6982) => [
q(Vanuma),
],
- q(6992) => [
+ q(6983) => [
q(Varli),
],
- q(6993) => [
+ q(6984) => [
q(Wayu),
],
- q(6994) => [
+ q(6985) => [
q(Southeast Babar),
],
- q(6995) => [
+ q(6986) => [
q(Southwestern Bontok),
],
- q(6996) => [
+ q(6987) => [
q(Venetian),
],
- q(6997) => [
+ q(6988) => [
q(Veddah),
],
- q(6998) => [
+ q(6989) => [
q(Veluws),
],
- q(6999) => [
+ q(6990) => [
q(Vemgo-Mabas),
],
- q(7000) => [
+ q(6991) => [
q(Ventureno),
],
- q(7001) => [
+ q(6992) => [
q(Veps),
],
- q(7002) => [
+ q(6993) => [
q(Mom Jango),
],
- q(7003) => [
+ q(6994) => [
q(Vaghri),
],
- q(7004) => [
+ q(6995) => [
q(Vlaamse Gebarentaal),
q(Flemish Sign Language),
],
- q(7005) => [
+ q(6996) => [
q(Virgin Islands Creole English),
],
- q(7006) => [
+ q(6997) => [
q(Vidunda),
],
- q(7007) => [
+ q(6998) => [
q(Vili),
],
- q(7008) => [
+ q(6999) => [
q(Viemo),
],
- q(7009) => [
+ q(7000) => [
q(Vilela),
],
- q(7010) => [
+ q(7001) => [
q(Vinza),
],
- q(7011) => [
+ q(7002) => [
q(Vishavan),
],
- q(7012) => [
+ q(7003) => [
q(Viti),
],
- q(7013) => [
+ q(7004) => [
q(Iduna),
],
- q(7014) => [
+ q(7005) => [
q(Kariyarra),
],
- q(7015) => [
+ q(7006) => [
q(Ija-Zuba),
],
- q(7016) => [
+ q(7007) => [
q(Kujarge),
],
- q(7017) => [
+ q(7008) => [
q(Kaur),
],
- q(7018) => [
+ q(7009) => [
q(Kulisusu),
],
- q(7019) => [
+ q(7010) => [
q(Kamakan),
],
- q(7020) => [
+ q(7011) => [
q(Kodeoha),
],
- q(7021) => [
+ q(7012) => [
q(Korlai Creole Portuguese),
],
- q(7022) => [
+ q(7013) => [
q(Tenggarong Kutai Malay),
],
- q(7023) => [
+ q(7014) => [
q(Kurrama),
],
- q(7024) => [
+ q(7015) => [
q(Valpei),
],
- q(7025) => [
+ q(7016) => [
q(Vlaams),
],
- q(7026) => [
+ q(7017) => [
q(Martuyhunira),
],
- q(7027) => [
+ q(7018) => [
q(Barbaram),
],
- q(7028) => [
+ q(7019) => [
q(Juxtlahuaca Mixtec),
],
- q(7029) => [
+ q(7020) => [
q(Mudu Koraga),
],
- q(7030) => [
+ q(7021) => [
q(East Masela),
],
- q(7031) => [
+ q(7022) => [
q(Mainfrankisch),
],
- q(7032) => [
+ q(7023) => [
q(Lungalunga),
],
- q(7033) => [
+ q(7024) => [
q(Maraghei),
],
- q(7034) => [
+ q(7025) => [
q(Miwa),
],
- q(7035) => [
+ q(7026) => [
q(Ixtayutla Mixtec),
],
- q(7036) => [
+ q(7027) => [
q(Makhuwa-Shirima),
],
- q(7037) => [
+ q(7028) => [
q(Malgana),
],
- q(7038) => [
+ q(7029) => [
q(Mitlatongo Mixtec),
],
- q(7039) => [
+ q(7030) => [
q(Soyaltepec Mazatec),
],
- q(7040) => [
+ q(7031) => [
q(Soyaltepec Mixtec),
],
- q(7041) => [
+ q(7032) => [
q(Marenje),
],
- q(7042) => [
+ q(7033) => [
q(Moksela),
],
- q(7043) => [
+ q(7034) => [
q(Muluridyi),
],
- q(7044) => [
+ q(7035) => [
q(Valley Maidu),
],
- q(7045) => [
+ q(7036) => [
q(Makhuwa),
],
- q(7046) => [
+ q(7037) => [
q(Tamazola Mixtec),
],
- q(7047) => [
+ q(7038) => [
q(Ayautla Mazatec),
],
- q(7048) => [
+ q(7039) => [
q(Mazatlan Mazatec),
],
- q(7049) => [
+ q(7040) => [
q(Vano),
q(Lovono),
],
- q(7050) => [
+ q(7041) => [
q(Vinmavis),
q(Neve'ei),
],
- q(7051) => [
+ q(7042) => [
q(Vunapu),
],
- q(7052) => [
+ q(7043) => [
q(Voro),
],
- q(7053) => [
+ q(7044) => [
q(Vera'a),
],
- q(7054) => [
+ q(7045) => [
q(Varisi),
],
- q(7055) => [
+ q(7046) => [
q(Burmbar),
q(Banam Bay),
],
- q(7056) => [
+ q(7047) => [
q(Moldova Sign Language),
],
- q(7057) => [
+ q(7048) => [
q(Venezuelan Sign Language),
],
- q(7058) => [
+ q(7049) => [
q(Valencian Sign Language),
q(Llengua de signes valenciana),
],
- q(7059) => [
+ q(7050) => [
q(Vitou),
],
- q(7060) => [
+ q(7051) => [
q(Vumbu),
],
- q(7061) => [
+ q(7052) => [
q(Vunjo),
],
- q(7062) => [
+ q(7053) => [
q(Vute),
],
- q(7063) => [
+ q(7054) => [
q(Awa (China)),
],
- q(7064) => [
+ q(7055) => [
q(Walla Walla),
],
- q(7065) => [
+ q(7056) => [
q(Wab),
],
- q(7066) => [
+ q(7057) => [
q(Wasco-Wishram),
],
- q(7067) => [
+ q(7058) => [
q(Wandamen),
],
- q(7068) => [
+ q(7059) => [
q(Walser),
],
- q(7069) => [
+ q(7060) => [
q(Wakona),
],
- q(7070) => [
+ q(7061) => [
q(Wa'ema),
],
- q(7071) => [
+ q(7062) => [
q(Watubela),
],
- q(7072) => [
+ q(7063) => [
q(Wares),
],
- q(7073) => [
+ q(7064) => [
q(Waffa),
],
- q(7074) => [
+ q(7065) => [
q(Wampanoag),
],
- q(7075) => [
+ q(7066) => [
q(Wan),
],
- q(7076) => [
+ q(7067) => [
q(Wappo),
],
- q(7077) => [
+ q(7068) => [
q(Wapishana),
],
- q(7078) => [
+ q(7069) => [
q(Wageman),
],
- q(7079) => [
+ q(7070) => [
q(Kaninuwa),
],
- q(7080) => [
+ q(7071) => [
q(Waura),
],
- q(7081) => [
+ q(7072) => [
q(Waka),
],
- q(7082) => [
+ q(7073) => [
q(Waiwai),
],
- q(7083) => [
+ q(7074) => [
q(Watam),
q(Marangis),
],
- q(7084) => [
+ q(7075) => [
q(Wayana),
],
- q(7085) => [
+ q(7076) => [
q(Wampur),
],
- q(7086) => [
+ q(7077) => [
q(Warao),
],
- q(7087) => [
+ q(7078) => [
q(Wabo),
],
- q(7088) => [
+ q(7079) => [
q(Waritai),
],
- q(7089) => [
+ q(7080) => [
q(Wanda),
],
- q(7090) => [
+ q(7081) => [
q(Vwanji),
],
- q(7091) => [
+ q(7082) => [
q(Alagwa),
],
- q(7092) => [
+ q(7083) => [
q(Waigali),
],
- q(7093) => [
+ q(7084) => [
q(Wakhi),
],
- q(7094) => [
+ q(7085) => [
q(Wa),
],
- q(7095) => [
+ q(7086) => [
q(Warlpiri),
],
- q(7096) => [
+ q(7087) => [
q(Waddar),
],
- q(7097) => [
+ q(7088) => [
q(Wagdi),
],
- q(7098) => [
+ q(7089) => [
q(Wanman),
],
- q(7099) => [
+ q(7090) => [
q(Wajarri),
],
- q(7100) => [
+ q(7091) => [
q(Woi),
],
- q(7101) => [
+ q(7092) => [
q(Yanomami),
],
- q(7102) => [
+ q(7093) => [
q(Waci Gbe),
],
- q(7103) => [
+ q(7094) => [
q(Wandji),
],
- q(7104) => [
+ q(7095) => [
q(Wadaginam),
],
- q(7105) => [
+ q(7096) => [
q(Wadjiginy),
],
- q(7106) => [
+ q(7097) => [
q(Wadikali),
],
- q(7107) => [
+ q(7098) => [
q(Wadjigu),
],
- q(7108) => [
+ q(7099) => [
q(Wadjabangayi),
],
- q(7109) => [
+ q(7100) => [
q(Wewaw),
],
- q(7110) => [
+ q(7101) => [
q(We Western),
],
- q(7111) => [
+ q(7102) => [
q(Wedau),
],
- q(7112) => [
+ q(7103) => [
q(Wergaia),
],
- q(7113) => [
+ q(7104) => [
q(Weh),
],
- q(7114) => [
+ q(7105) => [
q(Kiunum),
],
- q(7115) => [
+ q(7106) => [
q(Weme Gbe),
],
- q(7116) => [
+ q(7107) => [
q(Wemale),
],
- q(7117) => [
+ q(7108) => [
q(Westphalien),
],
- q(7118) => [
+ q(7109) => [
q(Weri),
],
- q(7119) => [
+ q(7110) => [
q(Cameroon Pidgin),
],
- q(7120) => [
+ q(7111) => [
q(Perai),
],
- q(7121) => [
+ q(7112) => [
q(Rawngtu Chin),
],
- q(7122) => [
+ q(7113) => [
q(Wejewa),
],
- q(7123) => [
+ q(7114) => [
q(Yafi),
q(Zorop),
],
- q(7124) => [
+ q(7115) => [
q(Wagaya),
],
- q(7125) => [
+ q(7116) => [
q(Wagawaga),
],
- q(7126) => [
+ q(7117) => [
q(Wangganguru),
],
- q(7127) => [
+ q(7118) => [
q(Wahgi),
],
- q(7128) => [
+ q(7119) => [
q(Waigeo),
],
- q(7129) => [
+ q(7120) => [
q(Wirangu),
],
- q(7130) => [
+ q(7121) => [
q(Warrgamay),
],
- q(7131) => [
+ q(7122) => [
q(Manusela),
],
- q(7132) => [
+ q(7123) => [
q(North Wahgi),
],
- q(7133) => [
+ q(7124) => [
q(Wahau Kenyah),
],
- q(7134) => [
+ q(7125) => [
q(Wahau Kayan),
],
- q(7135) => [
+ q(7126) => [
q(Southern Toussian),
],
- q(7136) => [
+ q(7127) => [
q(Wichita),
],
- q(7137) => [
+ q(7128) => [
q(Wik-Epa),
],
- q(7138) => [
+ q(7129) => [
q(Wik-Keyangan),
],
- q(7139) => [
+ q(7130) => [
q(Wik-Ngathana),
],
- q(7140) => [
+ q(7131) => [
q(Wik-Me'anha),
],
- q(7141) => [
+ q(7132) => [
q(Minidien),
],
- q(7142) => [
+ q(7133) => [
q(Wik-Iiyanh),
],
- q(7143) => [
+ q(7134) => [
q(Wikalkan),
],
- q(7144) => [
+ q(7135) => [
q(Wilawila),
],
- q(7145) => [
+ q(7136) => [
q(Wik-Mungkan),
],
- q(7146) => [
+ q(7137) => [
q(Ho-Chunk),
],
- q(7147) => [
+ q(7138) => [
q(Wirafed),
],
- q(7148) => [
+ q(7139) => [
q(Wiru),
],
- q(7149) => [
+ q(7140) => [
q(Vitu),
],
- q(7150) => [
+ q(7141) => [
q(Wiyot),
],
- q(7151) => [
+ q(7142) => [
q(Waja),
],
- q(7152) => [
+ q(7143) => [
q(Warji),
],
- q(7153) => [
+ q(7144) => [
q(Kw'adza),
],
- q(7154) => [
+ q(7145) => [
q(Kumbaran),
],
- q(7155) => [
+ q(7146) => [
q(Wakde),
q(Mo),
],
- q(7156) => [
+ q(7147) => [
q(Kalanadi),
],
- q(7157) => [
+ q(7148) => [
q(Kunduvadi),
],
- q(7158) => [
+ q(7149) => [
q(Wakawaka),
],
- q(7159) => [
+ q(7150) => [
q(Wangkayutyuru),
],
- q(7160) => [
+ q(7151) => [
q(Walio),
],
- q(7161) => [
+ q(7152) => [
q(Mwali Comorian),
],
- q(7162) => [
+ q(7153) => [
q(Wolane),
],
- q(7163) => [
+ q(7154) => [
q(Kunbarlang),
],
- q(7164) => [
+ q(7155) => [
q(Waioli),
],
- q(7165) => [
+ q(7156) => [
q(Wailaki),
],
- q(7166) => [
+ q(7157) => [
q(Wali (Sudan)),
],
- q(7167) => [
+ q(7158) => [
q(Middle Welsh),
],
- q(7168) => [
+ q(7159) => [
q(Wolio),
],
- q(7169) => [
+ q(7160) => [
q(Wailapa),
],
- q(7170) => [
+ q(7161) => [
q(Wallisian),
],
- q(7171) => [
+ q(7162) => [
q(Wuliwuli),
],
- q(7172) => [
+ q(7163) => [
q(Wichi Lhamtes Vejoz),
],
- q(7173) => [
+ q(7164) => [
q(Walak),
],
- q(7174) => [
+ q(7165) => [
q(Wali (Ghana)),
],
- q(7175) => [
+ q(7166) => [
q(Waling),
],
- q(7176) => [
+ q(7167) => [
q(Mawa (Nigeria)),
],
- q(7177) => [
+ q(7168) => [
q(Wambaya),
],
- q(7178) => [
+ q(7169) => [
q(Wamas),
],
- q(7179) => [
+ q(7170) => [
q(Mamainde),
],
- q(7180) => [
+ q(7171) => [
q(Wambule),
],
- q(7181) => [
+ q(7172) => [
q(Waima'a),
],
- q(7182) => [
+ q(7173) => [
q(Wamin),
],
- q(7183) => [
+ q(7174) => [
q(Maiwa (Indonesia)),
],
- q(7184) => [
+ q(7175) => [
q(Waamwang),
],
- q(7185) => [
+ q(7176) => [
q(Wom (Papua New Guinea)),
],
- q(7186) => [
+ q(7177) => [
q(Wambon),
],
- q(7187) => [
+ q(7178) => [
q(Walmajarri),
],
- q(7188) => [
+ q(7179) => [
q(Mwani),
],
- q(7189) => [
+ q(7180) => [
q(Womo),
],
- q(7190) => [
+ q(7181) => [
q(Wanambre),
],
- q(7191) => [
+ q(7182) => [
q(Wantoat),
],
- q(7192) => [
+ q(7183) => [
q(Wandarang),
],
- q(7193) => [
+ q(7184) => [
q(Waneci),
],
- q(7194) => [
+ q(7185) => [
q(Wanggom),
],
- q(7195) => [
+ q(7186) => [
q(Ndzwani Comorian),
],
- q(7196) => [
+ q(7187) => [
q(Wanukaka),
],
- q(7197) => [
+ q(7188) => [
q(Wanggamala),
],
- q(7198) => [
+ q(7189) => [
q(Wunumara),
],
- q(7199) => [
+ q(7190) => [
q(Wano),
],
- q(7200) => [
+ q(7191) => [
q(Wanap),
],
- q(7201) => [
+ q(7192) => [
q(Usan),
],
- q(7202) => [
+ q(7193) => [
q(Wintu),
],
- q(7203) => [
+ q(7194) => [
q(Wanyi),
],
- q(7204) => [
+ q(7195) => [
q(Tyaraity),
],
- q(7205) => [
+ q(7196) => [
q(We Northern),
],
- q(7206) => [
+ q(7197) => [
q(Wogeo),
],
- q(7207) => [
+ q(7198) => [
q(Wolani),
],
- q(7208) => [
+ q(7199) => [
q(Woleaian),
],
- q(7209) => [
+ q(7200) => [
q(Gambian Wolof),
],
- q(7210) => [
+ q(7201) => [
q(Wogamusin),
],
- q(7211) => [
+ q(7202) => [
q(Kamang),
],
- q(7212) => [
+ q(7203) => [
q(Longto),
],
- q(7213) => [
+ q(7204) => [
q(Wom (Nigeria)),
],
- q(7214) => [
+ q(7205) => [
q(Wongo),
],
- q(7215) => [
+ q(7206) => [
q(Manombai),
],
- q(7216) => [
+ q(7207) => [
q(Woria),
],
- q(7217) => [
+ q(7208) => [
q(Hanga Hundi),
],
- q(7218) => [
+ q(7209) => [
q(Wawonii),
],
- q(7219) => [
+ q(7210) => [
q(Weyto),
],
- q(7220) => [
+ q(7211) => [
q(Maco),
],
- q(7221) => [
+ q(7212) => [
q(Warapu),
],
- q(7222) => [
+ q(7213) => [
q(Warluwara),
],
- q(7223) => [
+ q(7214) => [
q(Warduji),
],
- q(7224) => [
+ q(7215) => [
q(Warungu),
],
- q(7225) => [
+ q(7216) => [
q(Wiradhuri),
],
- q(7226) => [
+ q(7217) => [
q(Wariyangga),
],
- q(7227) => [
+ q(7218) => [
q(Garrwa),
],
- q(7228) => [
+ q(7219) => [
q(Warlmanpa),
],
- q(7229) => [
+ q(7220) => [
q(Warumungu),
],
- q(7230) => [
+ q(7221) => [
q(Warnang),
],
- q(7231) => [
+ q(7222) => [
q(Worrorra),
],
- q(7232) => [
+ q(7223) => [
q(Waropen),
],
- q(7233) => [
+ q(7224) => [
q(Wardaman),
],
- q(7234) => [
+ q(7225) => [
q(Waris),
],
- q(7235) => [
+ q(7226) => [
q(Waru),
],
- q(7236) => [
+ q(7227) => [
q(Waruna),
],
- q(7237) => [
+ q(7228) => [
q(Gugu Warra),
],
- q(7238) => [
+ q(7229) => [
q(Wae Rana),
],
- q(7239) => [
+ q(7230) => [
q(Merwari),
],
- q(7240) => [
+ q(7231) => [
q(Waray (Australia)),
],
- q(7241) => [
+ q(7232) => [
q(Warembori),
],
- q(7242) => [
+ q(7233) => [
q(Wusi),
],
- q(7243) => [
+ q(7234) => [
q(Waskia),
],
- q(7244) => [
+ q(7235) => [
q(Owenia),
],
- q(7245) => [
+ q(7236) => [
q(Wasa),
],
- q(7246) => [
+ q(7237) => [
q(Wasu),
],
- q(7247) => [
+ q(7238) => [
q(Wotapuri-Katarqalai),
],
- q(7248) => [
+ q(7239) => [
q(Watiwa),
],
- q(7249) => [
+ q(7240) => [
q(Wathawurrung),
],
- q(7250) => [
+ q(7241) => [
q(Berta),
],
- q(7251) => [
+ q(7242) => [
q(Watakataui),
],
- q(7252) => [
+ q(7243) => [
q(Mewati),
],
- q(7253) => [
+ q(7244) => [
q(Wotu),
],
- q(7254) => [
+ q(7245) => [
q(Wikngenchera),
],
- q(7255) => [
+ q(7246) => [
q(Wunambal),
],
- q(7256) => [
+ q(7247) => [
q(Wudu),
],
- q(7257) => [
+ q(7248) => [
q(Wutunhua),
],
- q(7258) => [
+ q(7249) => [
q(Silimo),
],
- q(7259) => [
+ q(7250) => [
q(Wumbvu),
],
- q(7260) => [
+ q(7251) => [
q(Bungu),
],
- q(7261) => [
+ q(7252) => [
q(Wurrugu),
],
- q(7262) => [
+ q(7253) => [
q(Wutung),
],
- q(7263) => [
+ q(7254) => [
q(Wu Chinese),
],
- q(7264) => [
+ q(7255) => [
q(Wuvulu-Aua),
],
- q(7265) => [
+ q(7256) => [
q(Wulna),
],
- q(7266) => [
+ q(7257) => [
q(Wauyai),
],
- q(7267) => [
+ q(7258) => [
q(Waama),
],
- q(7268) => [
+ q(7259) => [
q(Wakabunga),
],
- q(7269) => [
+ q(7260) => [
q(Wetamut),
q(Dorig),
],
- q(7270) => [
+ q(7261) => [
q(Warrwa),
],
- q(7271) => [
+ q(7262) => [
q(Wawa),
],
- q(7272) => [
+ q(7263) => [
q(Waxianghua),
],
- q(7273) => [
+ q(7264) => [
q(Wardandi),
],
- q(7274) => [
+ q(7265) => [
q(Wyandot),
],
- q(7275) => [
+ q(7266) => [
q(Wangaaybuwan-Ngiyambaa),
],
- q(7276) => [
+ q(7267) => [
q(Woiwurrung),
],
- q(7277) => [
+ q(7268) => [
q(Wymysorys),
],
- q(7278) => [
+ q(7269) => [
q(Wayoro),
],
- q(7279) => [
+ q(7270) => [
q(Western Fijian),
],
- q(7280) => [
+ q(7271) => [
q(Andalusian Arabic),
],
- q(7281) => [
+ q(7272) => [
q(Sambe),
],
- q(7282) => [
+ q(7273) => [
q(Kachari),
],
- q(7283) => [
+ q(7274) => [
q(Adai),
],
- q(7284) => [
+ q(7275) => [
q(Aequian),
],
- q(7285) => [
+ q(7276) => [
q(Aghwan),
],
- q(7286) => [
+ q(7277) => [
q(Kaimbe),
],
- q(7287) => [
+ q(7278) => [
+ q(Ararandewara),
+ ],
+ q(7279) => [
q(/Xam),
],
- q(7288) => [
+ q(7280) => [
q(Xamtanga),
],
- q(7289) => [
+ q(7281) => [
q(Khao),
],
- q(7290) => [
+ q(7282) => [
q(Apalachee),
],
- q(7291) => [
+ q(7283) => [
q(Aquitanian),
],
- q(7292) => [
+ q(7284) => [
q(Karami),
],
- q(7293) => [
+ q(7285) => [
q(Kamas),
],
- q(7294) => [
+ q(7286) => [
q(Katawixi),
],
- q(7295) => [
+ q(7287) => [
q(Kauwera),
],
- q(7296) => [
+ q(7288) => [
q(Xavante),
],
- q(7297) => [
+ q(7289) => [
q(Kawaiisu),
],
- q(7298) => [
+ q(7290) => [
q(Kayan Mahakam),
],
- q(7299) => [
+ q(7291) => [
q(Kamba (Brazil)),
],
- q(7300) => [
+ q(7292) => [
q(Lower Burdekin),
],
- q(7301) => [
+ q(7293) => [
q(Bactrian),
],
- q(7302) => [
+ q(7294) => [
q(Bindal),
],
- q(7303) => [
+ q(7295) => [
q(Bigambal),
],
- q(7304) => [
+ q(7296) => [
q(Bunganditj),
],
- q(7305) => [
+ q(7297) => [
q(Kombio),
],
- q(7306) => [
+ q(7298) => [
q(Birrpayi),
],
- q(7307) => [
+ q(7299) => [
q(Middle Breton),
],
- q(7308) => [
+ q(7300) => [
q(Kenaboi),
],
- q(7309) => [
+ q(7301) => [
q(Bolgarian),
],
- q(7310) => [
+ q(7302) => [
q(Bibbulman),
],
- q(7311) => [
+ q(7303) => [
q(Kambera),
],
- q(7312) => [
+ q(7304) => [
q(Kambiwa),
],
- q(7313) => [
+ q(7305) => [
q(Kabixi),
],
- q(7314) => [
+ q(7306) => [
q(Batyala),
],
- q(7315) => [
+ q(7307) => [
q(Cumbric),
],
- q(7316) => [
+ q(7308) => [
q(Camunic),
],
- q(7317) => [
+ q(7309) => [
q(Celtiberian),
],
- q(7318) => [
+ q(7310) => [
q(Cisalpine Gaulish),
],
- q(7319) => [
+ q(7311) => [
q(Chemakum),
q(Chimakum),
],
- q(7320) => [
+ q(7312) => [
q(Classical Armenian),
],
- q(7321) => [
+ q(7313) => [
q(Comecrudo),
],
- q(7322) => [
+ q(7314) => [
q(Cotoname),
],
- q(7323) => [
+ q(7315) => [
q(Chorasmian),
],
- q(7324) => [
+ q(7316) => [
q(Carian),
],
- q(7325) => [
+ q(7317) => [
q(Classical Tibetan),
],
- q(7326) => [
+ q(7318) => [
q(Curonian),
],
- q(7327) => [
+ q(7319) => [
q(Chuvantsy),
],
- q(7328) => [
+ q(7320) => [
q(Coahuilteco),
],
- q(7329) => [
+ q(7321) => [
q(Cayuse),
],
- q(7330) => [
+ q(7322) => [
q(Darkinyung),
],
- q(7331) => [
+ q(7323) => [
q(Dacian),
],
- q(7332) => [
+ q(7324) => [
q(Dharuk),
],
- q(7333) => [
+ q(7325) => [
q(Edomite),
],
- q(7334) => [
+ q(7326) => [
q(Malayic Dayak),
],
- q(7335) => [
+ q(7327) => [
q(Eblan),
],
- q(7336) => [
+ q(7328) => [
q(Hdi),
],
- q(7337) => [
+ q(7329) => [
q(//Xegwi),
],
- q(7338) => [
+ q(7330) => [
q(Kelo),
],
- q(7339) => [
+ q(7331) => [
q(Kembayan),
],
- q(7340) => [
+ q(7332) => [
q(Epi-Olmec),
],
- q(7341) => [
+ q(7333) => [
q(Xerente),
],
- q(7342) => [
+ q(7334) => [
q(Kesawai),
],
- q(7343) => [
+ q(7335) => [
q(Xeta),
],
- q(7344) => [
+ q(7336) => [
q(Keoru-Ahia),
],
- q(7345) => [
+ q(7337) => [
q(Faliscan),
],
- q(7346) => [
+ q(7338) => [
q(Galatian),
],
- q(7347) => [
+ q(7339) => [
q(Gbin),
],
- q(7348) => [
+ q(7340) => [
q(Gudang),
],
- q(7349) => [
+ q(7341) => [
q(Gabrielino-Fernandeno),
],
- q(7350) => [
+ q(7342) => [
q(Goreng),
],
- q(7351) => [
+ q(7343) => [
q(Garingbal),
],
- q(7352) => [
+ q(7344) => [
q(Galindan),
],
- q(7353) => [
+ q(7345) => [
+ q(Dharumbal),
q(Guwinmal),
],
- q(7354) => [
+ q(7346) => [
q(Garza),
],
- q(7355) => [
+ q(7347) => [
q(Unggumi),
],
- q(7356) => [
+ q(7348) => [
q(Guwa),
],
- q(7357) => [
+ q(7349) => [
q(Harami),
],
- q(7358) => [
+ q(7350) => [
q(Hunnic),
],
- q(7359) => [
+ q(7351) => [
q(Hadrami),
],
- q(7360) => [
+ q(7352) => [
q(Khetrani),
],
- q(7361) => [
+ q(7353) => [
q(Hernican),
],
- q(7362) => [
+ q(7354) => [
q(Hattic),
],
- q(7363) => [
+ q(7355) => [
q(Hurrian),
],
- q(7364) => [
+ q(7356) => [
q(Khua),
],
- q(7365) => [
+ q(7357) => [
q(Iberian),
],
- q(7366) => [
+ q(7358) => [
q(Xiri),
],
- q(7367) => [
+ q(7359) => [
q(Illyrian),
],
- q(7368) => [
+ q(7360) => [
q(Xinca),
],
- q(7369) => [
+ q(7361) => [
q(Xipinawa),
],
- q(7370) => [
+ q(7362) => [
q(Xiriana),
],
- q(7371) => [
+ q(7363) => [
+ q(Kisan),
+ ],
+ q(7364) => [
q(Indus Valley Language),
],
- q(7372) => [
+ q(7365) => [
q(Xipaya),
],
- q(7373) => [
+ q(7366) => [
q(Minjungbal),
],
- q(7374) => [
+ q(7367) => [
q(Jaitmatang),
],
- q(7375) => [
+ q(7368) => [
q(Kalkoti),
],
- q(7376) => [
+ q(7369) => [
q(Northern Nago),
],
- q(7377) => [
+ q(7370) => [
q(Kho'ini),
],
- q(7378) => [
+ q(7371) => [
q(Mendalam Kayan),
],
- q(7379) => [
+ q(7372) => [
q(Kereho),
],
- q(7380) => [
+ q(7373) => [
q(Khengkha),
],
- q(7381) => [
+ q(7374) => [
q(Kagoro),
],
- q(7382) => [
+ q(7375) => [
q(Karahawyana),
],
- q(7383) => [
+ q(7376) => [
q(Kenyan Sign Language),
],
- q(7384) => [
+ q(7377) => [
q(Kajali),
],
- q(7385) => [
+ q(7378) => [
q(Kaco'),
],
- q(7386) => [
+ q(7379) => [
q(Mainstream Kenyah),
],
- q(7387) => [
+ q(7380) => [
q(Kayan River Kayan),
],
- q(7388) => [
+ q(7381) => [
q(Kiorr),
],
- q(7389) => [
+ q(7382) => [
q(Kabatei),
],
- q(7390) => [
+ q(7383) => [
q(Koroni),
],
- q(7391) => [
+ q(7384) => [
q(Xakriaba),
],
- q(7392) => [
+ q(7385) => [
q(Kumbewaha),
],
- q(7393) => [
+ q(7386) => [
q(Kantosi),
],
- q(7394) => [
+ q(7387) => [
q(Kaamba),
],
- q(7395) => [
+ q(7388) => [
q(Kgalagadi),
],
- q(7396) => [
+ q(7389) => [
q(Kembra),
],
- q(7397) => [
+ q(7390) => [
q(Karore),
],
- q(7398) => [
+ q(7391) => [
q(Uma' Lasan),
],
- q(7399) => [
+ q(7392) => [
q(Kurtokha),
],
- q(7400) => [
+ q(7393) => [
q(Kamula),
],
- q(7401) => [
+ q(7394) => [
q(Loup B),
],
- q(7402) => [
+ q(7395) => [
q(Lycian),
],
- q(7403) => [
+ q(7396) => [
q(Lydian),
],
- q(7404) => [
+ q(7397) => [
q(Lemnian),
],
- q(7405) => [
+ q(7398) => [
q(Ligurian (Ancient)),
],
- q(7406) => [
+ q(7399) => [
q(Liburnian),
],
- q(7407) => [
+ q(7400) => [
q(Alanic),
],
- q(7408) => [
+ q(7401) => [
q(Loup A),
],
- q(7409) => [
+ q(7402) => [
q(Lepontic),
],
- q(7410) => [
+ q(7403) => [
q(Lusitanian),
],
- q(7411) => [
+ q(7404) => [
q(Cuneiform Luwian),
],
- q(7412) => [
+ q(7405) => [
q(Elymian),
],
- q(7413) => [
+ q(7406) => [
q(Mushungulu),
],
- q(7414) => [
+ q(7407) => [
q(Mbonga),
],
- q(7415) => [
+ q(7408) => [
q(Makhuwa-Marrevone),
],
- q(7416) => [
+ q(7409) => [
q(Mbudum),
],
- q(7417) => [
+ q(7410) => [
q(Median),
],
- q(7418) => [
+ q(7411) => [
q(Mingrelian),
],
- q(7419) => [
+ q(7412) => [
q(Mengaka),
],
- q(7420) => [
+ q(7413) => [
q(Kuku-Muminh),
],
- q(7421) => [
+ q(7414) => [
q(Majera),
],
- q(7422) => [
+ q(7415) => [
q(Ancient Macedonian),
],
- q(7423) => [
+ q(7416) => [
q(Malaysian Sign Language),
],
- q(7424) => [
+ q(7417) => [
q(Manado Malay),
],
- q(7425) => [
+ q(7418) => [
q(Manichaean Middle Persian),
],
- q(7426) => [
+ q(7419) => [
q(Morerebi),
],
- q(7427) => [
+ q(7420) => [
q(Kuku-Mu'inh),
],
- q(7428) => [
+ q(7421) => [
q(Kuku-Mangk),
],
- q(7429) => [
+ q(7422) => [
q(Meroitic),
],
- q(7430) => [
+ q(7423) => [
q(Moroccan Sign Language),
],
- q(7431) => [
+ q(7424) => [
q(Matbat),
],
- q(7432) => [
+ q(7425) => [
q(Kamu),
],
- q(7433) => [
+ q(7426) => [
q(Antankarana Malagasy),
q(Tankarana Malagasy),
],
- q(7434) => [
+ q(7427) => [
q(Tsimihety Malagasy),
],
- q(7435) => [
+ q(7428) => [
q(Maden),
],
- q(7436) => [
+ q(7429) => [
q(Mayaguduna),
],
- q(7437) => [
+ q(7430) => [
q(Mori Bawah),
],
- q(7438) => [
+ q(7431) => [
q(Ancient North Arabian),
],
- q(7439) => [
+ q(7432) => [
q(Kanakanabu),
],
- q(7440) => [
+ q(7433) => [
q(Middle Mongolian),
],
- q(7441) => [
+ q(7434) => [
q(Kuanhua),
],
- q(7442) => [
+ q(7435) => [
q(Ngarigu),
],
- q(7443) => [
+ q(7436) => [
q(Nganakarti),
],
- q(7444) => [
+ q(7437) => [
q(Northern Kankanay),
],
- q(7445) => [
+ q(7438) => [
q(Anglo-Norman),
],
- q(7446) => [
+ q(7439) => [
q(Kangri),
],
- q(7447) => [
+ q(7440) => [
q(Kanashi),
],
- q(7448) => [
+ q(7441) => [
q(Narragansett),
],
- q(7449) => [
+ q(7442) => [
q(Nukunul),
],
- q(7450) => [
+ q(7443) => [
q(Nyiyaparli),
],
- q(7451) => [
+ q(7444) => [
q(Kenzi),
q(Mattoki),
],
- q(7452) => [
+ q(7445) => [
q(O'chi'chi'),
],
- q(7453) => [
+ q(7446) => [
q(Kokoda),
],
- q(7454) => [
+ q(7447) => [
q(Soga),
],
- q(7455) => [
+ q(7448) => [
q(Kominimung),
],
- q(7456) => [
+ q(7449) => [
q(Xokleng),
],
- q(7457) => [
+ q(7450) => [
q(Komo (Sudan)),
],
- q(7458) => [
+ q(7451) => [
q(Konkomba),
],
- q(7459) => [
+ q(7452) => [
q(Xukuru),
],
- q(7460) => [
+ q(7453) => [
q(Kopar),
],
- q(7461) => [
+ q(7454) => [
q(Korubo),
],
- q(7462) => [
+ q(7455) => [
q(Kowaki),
],
- q(7463) => [
+ q(7456) => [
q(Pirriya),
],
- q(7464) => [
+ q(7457) => [
q(Pecheneg),
],
- q(7465) => [
+ q(7458) => [
q(Liberia Kpelle),
],
- q(7466) => [
+ q(7459) => [
q(Phrygian),
],
- q(7467) => [
+ q(7460) => [
q(Pictish),
],
- q(7468) => [
+ q(7461) => [
q(Mpalitjanh),
],
- q(7469) => [
+ q(7462) => [
q(Kulina Pano),
],
- q(7470) => [
+ q(7463) => [
q(Pumpokol),
],
- q(7471) => [
+ q(7464) => [
q(Kapinawa),
],
- q(7472) => [
+ q(7465) => [
q(Pochutec),
],
- q(7473) => [
+ q(7466) => [
q(Puyo-Paekche),
],
- q(7474) => [
+ q(7467) => [
q(Mohegan-Pequot),
],
- q(7475) => [
+ q(7468) => [
q(Parthian),
],
- q(7476) => [
+ q(7469) => [
q(Pisidian),
],
- q(7477) => [
+ q(7470) => [
q(Punthamara),
],
- q(7478) => [
+ q(7471) => [
q(Punic),
],
- q(7479) => [
+ q(7472) => [
q(Puyo),
],
- q(7480) => [
+ q(7473) => [
q(Karakhanid),
],
- q(7481) => [
+ q(7474) => [
q(Qatabanian),
],
- q(7482) => [
+ q(7475) => [
q(Kraho),
],
- q(7483) => [
+ q(7476) => [
q(Eastern Karaboro),
],
- q(7484) => [
+ q(7477) => [
q(Gundungurra),
],
- q(7485) => [
+ q(7478) => [
q(Kreye),
],
- q(7486) => [
+ q(7479) => [
q(Minang),
],
- q(7487) => [
+ q(7480) => [
q(Krikati-Timbira),
],
- q(7488) => [
+ q(7481) => [
q(Armazic),
],
- q(7489) => [
+ q(7482) => [
q(Arin),
],
- q(7490) => [
+ q(7483) => [
q(Karranga),
],
- q(7491) => [
+ q(7484) => [
q(Raetic),
],
- q(7492) => [
+ q(7485) => [
q(Aranama-Tamique),
],
- q(7493) => [
+ q(7486) => [
q(Marriammu),
],
- q(7494) => [
+ q(7487) => [
q(Karawa),
],
- q(7495) => [
+ q(7488) => [
q(Sabaean),
],
- q(7496) => [
+ q(7489) => [
q(Sambal),
],
- q(7497) => [
+ q(7490) => [
q(Scythian),
],
- q(7498) => [
+ q(7491) => [
q(Sidetic),
],
- q(7499) => [
+ q(7492) => [
q(Sempan),
],
- q(7500) => [
+ q(7493) => [
q(Shamang),
],
- q(7501) => [
+ q(7494) => [
q(Sio),
],
- q(7502) => [
- q(Subi),
- ],
- q(7503) => [
+ q(7495) => [
q(South Slavey),
],
- q(7504) => [
+ q(7496) => [
q(Kasem),
],
- q(7505) => [
+ q(7497) => [
q(Sanga (Nigeria)),
],
- q(7506) => [
+ q(7498) => [
q(Solano),
],
- q(7507) => [
+ q(7499) => [
q(Silopi),
],
- q(7508) => [
+ q(7500) => [
q(Makhuwa-Saka),
],
- q(7509) => [
+ q(7501) => [
q(Sherpa),
],
- q(7510) => [
+ q(7502) => [
q(Assan),
],
- q(7511) => [
+ q(7503) => [
q(Sanuma),
],
- q(7512) => [
+ q(7504) => [
q(Sudovian),
],
- q(7513) => [
+ q(7505) => [
q(Saisiyat),
],
- q(7514) => [
+ q(7506) => [
q(Alcozauca Mixtec),
],
- q(7515) => [
+ q(7507) => [
q(Chazumba Mixtec),
],
- q(7516) => [
+ q(7508) => [
q(Katcha-Kadugli-Miri),
],
- q(7517) => [
+ q(7509) => [
q(Diuxi-Tilantongo Mixtec),
],
- q(7518) => [
+ q(7510) => [
q(Ketengban),
],
- q(7519) => [
+ q(7511) => [
q(Transalpine Gaulish),
],
- q(7520) => [
+ q(7512) => [
q(Yitha Yitha),
],
- q(7521) => [
+ q(7513) => [
q(Sinicahua Mixtec),
],
- q(7522) => [
+ q(7514) => [
q(San Juan Teita Mixtec),
],
- q(7523) => [
+ q(7515) => [
q(Tijaltepec Mixtec),
],
- q(7524) => [
+ q(7516) => [
q(Magdalena Penasco Mixtec),
],
- q(7525) => [
+ q(7517) => [
q(Northern Tlaxiaco Mixtec),
],
- q(7526) => [
+ q(7518) => [
q(Tokharian A),
],
- q(7527) => [
+ q(7519) => [
q(San Miguel Piedras Mixtec),
],
- q(7528) => [
+ q(7520) => [
q(Tumshuqese),
],
- q(7529) => [
+ q(7521) => [
q(Early Tripuri),
],
- q(7530) => [
+ q(7522) => [
q(Sindihui Mixtec),
],
- q(7531) => [
+ q(7523) => [
q(Tacahua Mixtec),
],
- q(7532) => [
+ q(7524) => [
q(Cuyamecalco Mixtec),
],
- q(7533) => [
+ q(7525) => [
q(Thawa),
],
- q(7534) => [
+ q(7526) => [
q(Tawande),
],
- q(7535) => [
+ q(7527) => [
q(Yoloxochitl Mixtec),
],
- q(7536) => [
+ q(7528) => [
q(Tasmanian),
],
- q(7537) => [
+ q(7529) => [
q(Alu Kurumba),
],
- q(7538) => [
+ q(7530) => [
q(Betta Kurumba),
],
- q(7539) => [
+ q(7531) => [
q(Umiida),
],
- q(7540) => [
+ q(7532) => [
q(Kunigami),
],
- q(7541) => [
+ q(7533) => [
q(Jennu Kurumba),
],
- q(7542) => [
+ q(7534) => [
q(Ngunawal),
],
- q(7543) => [
+ q(7535) => [
q(Umbrian),
],
- q(7544) => [
+ q(7536) => [
q(Unggaranggu),
],
- q(7545) => [
+ q(7537) => [
q(Kuo),
],
- q(7546) => [
+ q(7538) => [
q(Upper Umpqua),
],
- q(7547) => [
+ q(7539) => [
q(Urartian),
],
- q(7548) => [
+ q(7540) => [
q(Kuthant),
],
- q(7549) => [
+ q(7541) => [
q(Kxoe),
],
- q(7550) => [
+ q(7542) => [
q(Venetic),
],
- q(7551) => [
+ q(7543) => [
q(Kamviri),
],
- q(7552) => [
+ q(7544) => [
q(Vandalic),
],
- q(7553) => [
+ q(7545) => [
q(Volscian),
],
- q(7554) => [
+ q(7546) => [
q(Vestinian),
],
- q(7555) => [
+ q(7547) => [
q(Kwaza),
],
- q(7556) => [
+ q(7548) => [
q(Woccon),
],
- q(7557) => [
+ q(7549) => [
q(Wadi Wadi),
],
- q(7558) => [
+ q(7550) => [
q(Xwela Gbe),
],
- q(7559) => [
+ q(7551) => [
q(Kwegu),
],
- q(7560) => [
+ q(7552) => [
q(Wajuk),
],
- q(7561) => [
+ q(7553) => [
q(Wangkumara),
],
- q(7562) => [
+ q(7554) => [
q(Western Xwla Gbe),
],
- q(7563) => [
+ q(7555) => [
q(Written Oirat),
],
- q(7564) => [
+ q(7556) => [
q(Kwerba Mamberamo),
],
- q(7565) => [
+ q(7557) => [
q(Wotjobaluk),
],
- q(7566) => [
+ q(7558) => [
q(Wemba Wemba),
],
- q(7567) => [
+ q(7559) => [
q(Boro (Ghana)),
],
- q(7568) => [
+ q(7560) => [
q(Ke'o),
],
- q(7569) => [
+ q(7561) => [
q(Minkin),
],
- q(7570) => [
+ q(7562) => [
q(Koropo),
],
- q(7571) => [
+ q(7563) => [
q(Tambora),
],
- q(7572) => [
+ q(7564) => [
q(Yaygir),
],
- q(7573) => [
+ q(7565) => [
q(Yandjibara),
],
- q(7574) => [
+ q(7566) => [
q(Mayi-Yapi),
],
- q(7575) => [
+ q(7567) => [
q(Mayi-Kulan),
],
- q(7576) => [
+ q(7568) => [
q(Yalakalore),
],
- q(7577) => [
+ q(7569) => [
q(Mayi-Thakurti),
],
- q(7578) => [
+ q(7570) => [
q(Yorta Yorta),
],
- q(7579) => [
+ q(7571) => [
q(Zhang-Zhung),
],
- q(7580) => [
+ q(7572) => [
q(Zemgalian),
],
- q(7581) => [
+ q(7573) => [
q(Ancient Zapotec),
],
- q(7582) => [
+ q(7574) => [
q(Yaminahua),
],
- q(7583) => [
+ q(7575) => [
q(Yuhup),
],
- q(7584) => [
+ q(7576) => [
q(Pass Valley Yali),
],
- q(7585) => [
+ q(7577) => [
q(Yagua),
],
- q(7586) => [
+ q(7578) => [
q(Pume),
],
- q(7587) => [
+ q(7579) => [
q(Yaka (Democratic Republic of Congo)),
],
- q(7588) => [
+ q(7580) => [
q(Yamana),
],
- q(7589) => [
+ q(7581) => [
q(Yazgulyam),
],
- q(7590) => [
+ q(7582) => [
q(Yagnobi),
],
- q(7591) => [
+ q(7583) => [
q(Banda-Yangere),
],
- q(7592) => [
+ q(7584) => [
q(Yakama),
],
- q(7593) => [
+ q(7585) => [
q(Yalunka),
],
- q(7594) => [
+ q(7586) => [
q(Yamba),
],
- q(7595) => [
+ q(7587) => [
q(Mayangna),
],
- q(7596) => [
+ q(7588) => [
q(Yaqui),
],
- q(7597) => [
+ q(7589) => [
q(Yabarana),
],
- q(7598) => [
+ q(7590) => [
q(Nugunu (Cameroon)),
],
- q(7599) => [
+ q(7591) => [
q(Yambeta),
],
- q(7600) => [
+ q(7592) => [
q(Yuwana),
],
- q(7601) => [
+ q(7593) => [
q(Yangben),
],
- q(7602) => [
+ q(7594) => [
q(Yawalapiti),
],
- q(7603) => [
+ q(7595) => [
q(Yauma),
],
- q(7604) => [
+ q(7596) => [
q(Agwagwune),
],
- q(7605) => [
+ q(7597) => [
q(Lokaa),
],
- q(7606) => [
+ q(7598) => [
q(Yala),
],
- q(7607) => [
+ q(7599) => [
q(Yemba),
],
- q(7608) => [
+ q(7600) => [
q(West Yugur),
],
- q(7609) => [
+ q(7601) => [
q(Yakha),
],
- q(7610) => [
+ q(7602) => [
q(Yamphu),
],
- q(7611) => [
+ q(7603) => [
q(Hasha),
],
- q(7612) => [
+ q(7604) => [
q(Bokha),
],
- q(7613) => [
+ q(7605) => [
q(Yukuben),
],
- q(7614) => [
+ q(7606) => [
q(Yaben),
],
- q(7615) => [
+ q(7607) => [
q(Yabaana),
],
- q(7616) => [
+ q(7608) => [
q(Yabong),
],
- q(7617) => [
+ q(7609) => [
q(Yawiyo),
],
- q(7618) => [
+ q(7610) => [
q(Yaweyuha),
],
- q(7619) => [
+ q(7611) => [
q(Chesu),
],
- q(7620) => [
+ q(7612) => [
q(Lolopo),
],
- q(7621) => [
+ q(7613) => [
q(Yucuna),
],
- q(7622) => [
+ q(7614) => [
q(Chepya),
],
- q(7623) => [
+ q(7615) => [
q(Yanda),
],
- q(7624) => [
+ q(7616) => [
q(Eastern Yiddish),
],
- q(7625) => [
+ q(7617) => [
q(Yangum Dey),
],
- q(7626) => [
+ q(7618) => [
q(Yidgha),
],
- q(7627) => [
+ q(7619) => [
q(Yoidik),
],
- q(7628) => [
- q(Yiddish Sign Language),
- ],
- q(7629) => [
+ q(7620) => [
q(Ravula),
],
- q(7630) => [
+ q(7621) => [
q(Yeniche),
],
- q(7631) => [
+ q(7622) => [
q(Yimas),
],
- q(7632) => [
+ q(7623) => [
q(Yeni),
],
- q(7633) => [
+ q(7624) => [
q(Yevanic),
],
- q(7634) => [
+ q(7625) => [
q(Yela),
],
- q(7635) => [
+ q(7626) => [
q(Tarok),
],
- q(7636) => [
+ q(7627) => [
q(Nyankpa),
],
- q(7637) => [
+ q(7628) => [
q(Yetfa),
],
- q(7638) => [
+ q(7629) => [
q(Yerukula),
],
- q(7639) => [
+ q(7630) => [
q(Yapunda),
],
- q(7640) => [
+ q(7631) => [
q(Yeyi),
],
- q(7641) => [
+ q(7632) => [
q(Malyangapa),
],
- q(7642) => [
+ q(7633) => [
q(Yiningayi),
],
- q(7643) => [
+ q(7634) => [
q(Yangum Gel),
],
- q(7644) => [
+ q(7635) => [
q(Yagomi),
],
- q(7645) => [
+ q(7636) => [
q(Gepo),
],
- q(7646) => [
+ q(7637) => [
q(Yagaria),
],
- q(7647) => [
+ q(7638) => [
+ q(Yolnu Sign Language),
+ ],
+ q(7639) => [
q(Yugul),
],
- q(7648) => [
+ q(7640) => [
q(Yagwoia),
],
- q(7649) => [
+ q(7641) => [
q(Baha Buyang),
],
- q(7650) => [
+ q(7642) => [
q(Judeo-Iraqi Arabic),
],
- q(7651) => [
+ q(7643) => [
q(Hlepho Phowa),
],
- q(7652) => [
+ q(7644) => [
q(Yinggarda),
],
- q(7653) => [
+ q(7645) => [
q(Wusa Nasu),
],
- q(7654) => [
+ q(7646) => [
q(Western Yiddish),
],
- q(7655) => [
+ q(7647) => [
q(Yidiny),
],
- q(7656) => [
+ q(7648) => [
q(Yindjibarndi),
],
- q(7657) => [
+ q(7649) => [
q(Dongshanba Lalo),
],
- q(7658) => [
+ q(7650) => [
q(Yindjilandji),
],
- q(7659) => [
+ q(7651) => [
q(Yimchungru Naga),
],
- q(7660) => [
+ q(7652) => [
q(Yinchia),
],
- q(7661) => [
+ q(7653) => [
q(Pholo),
],
- q(7662) => [
+ q(7654) => [
q(Miqie),
],
- q(7663) => [
+ q(7655) => [
q(North Awyu),
],
- q(7664) => [
+ q(7656) => [
q(Yis),
],
- q(7665) => [
+ q(7657) => [
q(Eastern Lalu),
],
- q(7666) => [
+ q(7658) => [
q(Awu),
],
- q(7667) => [
+ q(7659) => [
q(Northern Nisu),
],
- q(7668) => [
+ q(7660) => [
q(Axi Yi),
],
- q(7669) => [
+ q(7661) => [
q(Azhe),
],
- q(7670) => [
+ q(7662) => [
q(Yakan),
],
- q(7671) => [
+ q(7663) => [
q(Northern Yukaghir),
],
- q(7672) => [
+ q(7664) => [
q(Yoke),
],
- q(7673) => [
+ q(7665) => [
q(Yakaikeke),
],
- q(7674) => [
+ q(7666) => [
q(Khlula),
],
- q(7675) => [
+ q(7667) => [
q(Kap),
],
- q(7676) => [
+ q(7668) => [
q(Kua-nsi),
],
- q(7677) => [
+ q(7669) => [
q(Yasa),
],
- q(7678) => [
+ q(7670) => [
q(Yekora),
],
- q(7679) => [
+ q(7671) => [
q(Kathu),
],
- q(7680) => [
+ q(7672) => [
q(Kuamasi),
],
- q(7681) => [
+ q(7673) => [
q(Yakoma),
],
- q(7682) => [
+ q(7674) => [
q(Yaul),
],
- q(7683) => [
+ q(7675) => [
q(Yaleba),
],
- q(7684) => [
+ q(7676) => [
q(Yele),
],
- q(7685) => [
+ q(7677) => [
q(Yelogu),
],
- q(7686) => [
+ q(7678) => [
q(Angguruk Yali),
],
- q(7687) => [
+ q(7679) => [
q(Yil),
],
- q(7688) => [
+ q(7680) => [
q(Limi),
],
- q(7689) => [
+ q(7681) => [
q(Langnian Buyang),
],
- q(7690) => [
+ q(7682) => [
q(Naluo Yi),
],
- q(7691) => [
+ q(7683) => [
q(Yalarnnga),
],
- q(7692) => [
+ q(7684) => [
q(Aribwaung),
],
- q(7693) => [
+ q(7685) => [
q(Nyalayu),
q(Nyelayu),
],
- q(7694) => [
+ q(7686) => [
q(Yambes),
],
- q(7695) => [
+ q(7687) => [
q(Southern Muji),
],
- q(7696) => [
+ q(7688) => [
q(Muda),
],
- q(7697) => [
+ q(7689) => [
q(Yameo),
],
- q(7698) => [
+ q(7690) => [
q(Yamongeri),
],
- q(7699) => [
+ q(7691) => [
q(Mili),
],
- q(7700) => [
+ q(7692) => [
q(Moji),
],
- q(7701) => [
+ q(7693) => [
q(Makwe),
],
- q(7702) => [
+ q(7694) => [
q(Iamalele),
],
- q(7703) => [
+ q(7695) => [
q(Maay),
],
- q(7704) => [
+ q(7696) => [
q(Yamna),
q(Sunum),
],
- q(7705) => [
+ q(7697) => [
q(Yangum Mon),
],
- q(7706) => [
+ q(7698) => [
q(Yamap),
],
- q(7707) => [
+ q(7699) => [
q(Qila Muji),
],
- q(7708) => [
+ q(7700) => [
q(Malasar),
],
- q(7709) => [
+ q(7701) => [
q(Mysian),
],
- q(7710) => [
- q(Mator-Taygi-Karagas),
- ],
- q(7711) => [
+ q(7702) => [
q(Northern Muji),
],
- q(7712) => [
+ q(7703) => [
q(Muzi),
],
- q(7713) => [
+ q(7704) => [
q(Aluo),
],
- q(7714) => [
+ q(7705) => [
q(Yandruwandha),
],
- q(7715) => [
+ q(7706) => [
q(Lang'e),
],
- q(7716) => [
+ q(7707) => [
q(Yango),
],
- q(7717) => [
- q(Yangho),
- ],
- q(7718) => [
+ q(7708) => [
q(Naukan Yupik),
],
- q(7719) => [
+ q(7709) => [
q(Yangulam),
],
- q(7720) => [
+ q(7710) => [
q(Yana),
],
- q(7721) => [
+ q(7711) => [
q(Yong),
],
- q(7722) => [
+ q(7712) => [
q(Yendang),
],
- q(7723) => [
+ q(7713) => [
q(Yansi),
],
- q(7724) => [
+ q(7714) => [
q(Yahuna),
],
- q(7725) => [
+ q(7715) => [
q(Yoba),
],
- q(7726) => [
+ q(7716) => [
q(Yogad),
],
- q(7727) => [
+ q(7717) => [
q(Yonaguni),
],
- q(7728) => [
+ q(7718) => [
q(Yokuts),
],
- q(7729) => [
+ q(7719) => [
q(Yola),
],
- q(7730) => [
+ q(7720) => [
q(Yombe),
],
- q(7731) => [
+ q(7721) => [
q(Yongkom),
],
- q(7732) => [
+ q(7722) => [
q(Yotti),
],
- q(7733) => [
+ q(7723) => [
q(Yoron),
],
- q(7734) => [
+ q(7724) => [
q(Yoy),
],
- q(7735) => [
+ q(7725) => [
q(Phala),
],
- q(7736) => [
+ q(7726) => [
q(Labo Phowa),
],
- q(7737) => [
+ q(7727) => [
q(Phola),
],
- q(7738) => [
+ q(7728) => [
q(Phupha),
],
- q(7739) => [
+ q(7729) => [
q(Phuma),
],
- q(7740) => [
+ q(7730) => [
q(Ani Phowa),
],
- q(7741) => [
+ q(7731) => [
q(Alo Phola),
],
- q(7742) => [
+ q(7732) => [
q(Phupa),
],
- q(7743) => [
+ q(7733) => [
q(Phuza),
],
- q(7744) => [
+ q(7734) => [
q(Yerakai),
],
- q(7745) => [
+ q(7735) => [
q(Yareba),
],
- q(7746) => [
+ q(7736) => [
q(Yaoure),
],
- q(7747) => [
+ q(7737) => [
q(Yari),
],
- q(7748) => [
+ q(7738) => [
q(Nenets),
],
- q(7749) => [
+ q(7739) => [
q(Nhengatu),
],
- q(7750) => [
+ q(7740) => [
q(Yirrk-Mel),
],
- q(7751) => [
+ q(7741) => [
q(Yerong),
],
- q(7752) => [
+ q(7742) => [
q(Yarsun),
],
- q(7753) => [
+ q(7743) => [
q(Yarawata),
],
- q(7754) => [
+ q(7744) => [
q(Yarluyandi),
],
- q(7755) => [
+ q(7745) => [
q(Yassic),
],
- q(7756) => [
+ q(7746) => [
q(Samatao),
],
- q(7757) => [
+ q(7747) => [
q(Sonaga),
],
- q(7758) => [
+ q(7748) => [
q(Yugoslavian Sign Language),
],
- q(7759) => [
+ q(7749) => [
q(Sani),
],
- q(7760) => [
+ q(7750) => [
q(Nisi (China)),
],
- q(7761) => [
+ q(7751) => [
q(Southern Lolopo),
],
- q(7762) => [
+ q(7752) => [
q(Sirenik Yupik),
],
- q(7763) => [
+ q(7753) => [
q(Yessan-Mayo),
],
- q(7764) => [
+ q(7754) => [
q(Sanie),
],
- q(7765) => [
+ q(7755) => [
q(Talu),
],
- q(7766) => [
+ q(7756) => [
q(Tanglang),
],
- q(7767) => [
+ q(7757) => [
q(Thopho),
],
- q(7768) => [
+ q(7758) => [
q(Yout Wam),
],
- q(7769) => [
+ q(7759) => [
q(Yatay),
],
- q(7770) => [
+ q(7760) => [
q(Yucateco),
q(Yucatec Maya),
],
- q(7771) => [
+ q(7761) => [
q(Yugambal),
],
- q(7772) => [
+ q(7762) => [
q(Yuchi),
],
- q(7773) => [
+ q(7763) => [
q(Judeo-Tripolitanian Arabic),
],
- q(7774) => [
+ q(7764) => [
q(Yue Chinese),
+ q(Cantonese),
],
- q(7775) => [
+ q(7765) => [
q(Havasupai-Walapai-Yavapai),
],
- q(7776) => [
+ q(7766) => [
q(Yug),
],
- q(7777) => [
+ q(7767) => [
q(Yuruti),
],
- q(7778) => [
+ q(7768) => [
q(Karkar-Yuri),
],
- q(7779) => [
+ q(7769) => [
q(Yuki),
],
- q(7780) => [
+ q(7770) => [
q(Yulu),
],
- q(7781) => [
+ q(7771) => [
q(Quechan),
],
- q(7782) => [
+ q(7772) => [
q(Bena (Nigeria)),
],
- q(7783) => [
+ q(7773) => [
q(Yukpa),
],
- q(7784) => [
+ q(7774) => [
q(Yuqui),
],
- q(7785) => [
+ q(7775) => [
q(Yurok),
],
- q(7786) => [
+ q(7776) => [
q(Yopno),
],
- q(7787) => [
- q(Yugh),
- ],
- q(7788) => [
+ q(7777) => [
q(Yau (Morobe Province)),
],
- q(7789) => [
+ q(7778) => [
q(Southern Yukaghir),
],
- q(7790) => [
+ q(7779) => [
q(East Yugur),
],
- q(7791) => [
+ q(7780) => [
q(Yuracare),
],
- q(7792) => [
+ q(7781) => [
q(Yawa),
],
- q(7793) => [
+ q(7782) => [
q(Yavitero),
],
- q(7794) => [
+ q(7783) => [
q(Kalou),
],
- q(7795) => [
+ q(7784) => [
q(Yinhawangka),
],
- q(7796) => [
+ q(7785) => [
q(Western Lalu),
],
- q(7797) => [
+ q(7786) => [
q(Yawanawa),
],
- q(7798) => [
+ q(7787) => [
q(Wuding-Luquan Yi),
],
- q(7799) => [
+ q(7788) => [
q(Yawuru),
],
- q(7800) => [
+ q(7789) => [
q(Xishanba Lalo),
q(Central Lalo),
],
- q(7801) => [
+ q(7790) => [
q(Wumeng Nasu),
],
- q(7802) => [
+ q(7791) => [
q(Yawarawarga),
],
- q(7803) => [
+ q(7792) => [
q(Mayawali),
],
- q(7804) => [
+ q(7793) => [
q(Yagara),
],
- q(7805) => [
+ q(7794) => [
q(Yardliyawarra),
],
- q(7806) => [
+ q(7795) => [
q(Yinwum),
],
- q(7807) => [
+ q(7796) => [
q(Yuyu),
],
- q(7808) => [
+ q(7797) => [
q(Yabula Yabula),
],
- q(7809) => [
+ q(7798) => [
q(Yir Yoront),
],
- q(7810) => [
+ q(7799) => [
q(Yau (Sandaun Province)),
],
- q(7811) => [
+ q(7800) => [
q(Ayizi),
],
- q(7812) => [
+ q(7801) => [
q(E'ma Buyang),
],
- q(7813) => [
+ q(7802) => [
q(Zokhuo),
],
- q(7814) => [
+ q(7803) => [
q(Sierra de Juarez Zapotec),
],
- q(7815) => [
+ q(7804) => [
q(San Juan Guelavia Zapotec),
],
- q(7816) => [
+ q(7805) => [
q(Ocotlan Zapotec),
],
- q(7817) => [
+ q(7806) => [
q(Cajonos Zapotec),
],
- q(7818) => [
+ q(7807) => [
q(Yareni Zapotec),
],
- q(7819) => [
+ q(7808) => [
q(Ayoquesco Zapotec),
],
- q(7820) => [
+ q(7809) => [
q(Zaghawa),
],
- q(7821) => [
+ q(7810) => [
q(Zangwal),
],
- q(7822) => [
+ q(7811) => [
q(Isthmus Zapotec),
],
- q(7823) => [
+ q(7812) => [
q(Zaramo),
],
- q(7824) => [
+ q(7813) => [
q(Zanaki),
],
- q(7825) => [
+ q(7814) => [
q(Zauzou),
],
- q(7826) => [
+ q(7815) => [
q(Miahuatlan Zapotec),
],
- q(7827) => [
+ q(7816) => [
q(Ozolotepec Zapotec),
],
- q(7828) => [
+ q(7817) => [
q(Aloapam Zapotec),
],
- q(7829) => [
+ q(7818) => [
q(Rincon Zapotec),
],
- q(7830) => [
+ q(7819) => [
q(Santo Domingo Albarradas Zapotec),
],
- q(7831) => [
+ q(7820) => [
q(Tabaa Zapotec),
],
- q(7832) => [
+ q(7821) => [
q(Zangskari),
],
- q(7833) => [
+ q(7822) => [
q(Yatzachi Zapotec),
],
- q(7834) => [
+ q(7823) => [
q(Mitla Zapotec),
],
- q(7835) => [
+ q(7824) => [
q(Xadani Zapotec),
],
- q(7836) => [
+ q(7825) => [
q(Zayse-Zergulla),
q(Zaysete),
],
- q(7837) => [
+ q(7826) => [
q(Zari),
],
- q(7838) => [
+ q(7827) => [
q(Central Berawan),
],
- q(7839) => [
+ q(7828) => [
q(East Berawan),
],
- q(7840) => [
+ q(7829) => [
q(Batui),
],
- q(7841) => [
+ q(7830) => [
q(West Berawan),
],
- q(7842) => [
+ q(7831) => [
q(Coatecas Altas Zapotec),
],
- q(7843) => [
+ q(7832) => [
q(Central Hongshuihe Zhuang),
],
- q(7844) => [
+ q(7833) => [
q(Ngazidja Comorian),
],
- q(7845) => [
+ q(7834) => [
q(Zeeuws),
],
- q(7846) => [
+ q(7835) => [
q(Zenag),
],
- q(7847) => [
+ q(7836) => [
q(Eastern Hongshuihe Zhuang),
],
- q(7848) => [
+ q(7837) => [
q(Kinga),
],
- q(7849) => [
+ q(7838) => [
q(Guibei Zhuang),
],
- q(7850) => [
+ q(7839) => [
q(Minz Zhuang),
],
- q(7851) => [
+ q(7840) => [
q(Guibian Zhuang),
],
- q(7852) => [
+ q(7841) => [
q(Magori),
],
- q(7853) => [
+ q(7842) => [
q(Zhaba),
],
- q(7854) => [
+ q(7843) => [
q(Dai Zhuang),
],
- q(7855) => [
+ q(7844) => [
q(Zhire),
],
- q(7856) => [
+ q(7845) => [
q(Nong Zhuang),
],
- q(7857) => [
+ q(7846) => [
q(Zhoa),
],
- q(7858) => [
+ q(7847) => [
q(Zia),
],
- q(7859) => [
+ q(7848) => [
q(Zimbabwe Sign Language),
],
- q(7860) => [
+ q(7849) => [
q(Zimakani),
],
- q(7861) => [
+ q(7850) => [
q(Zialo),
],
- q(7862) => [
+ q(7851) => [
q(Mesme),
],
- q(7863) => [
+ q(7852) => [
q(Zinza),
],
- q(7864) => [
+ q(7853) => [
q(Ziriya),
],
- q(7865) => [
+ q(7854) => [
q(Zigula),
],
- q(7866) => [
+ q(7855) => [
q(Zizilivakan),
],
- q(7867) => [
+ q(7856) => [
q(Kaimbulawa),
],
- q(7868) => [
+ q(7857) => [
q(Koibal),
],
- q(7869) => [
+ q(7858) => [
q(Kadu),
],
- q(7870) => [
+ q(7859) => [
q(Koguryo),
],
- q(7871) => [
+ q(7860) => [
q(Khorezmian),
],
- q(7872) => [
+ q(7861) => [
q(Karankawa),
],
- q(7873) => [
+ q(7862) => [
q(Kanan),
],
- q(7874) => [
+ q(7863) => [
q(Kott),
],
- q(7875) => [
+ q(7864) => [
q(Sao Paulo Kaingang),
],
- q(7876) => [
+ q(7865) => [
q(Zakhring),
],
- q(7877) => [
+ q(7866) => [
q(Kitan),
],
- q(7878) => [
+ q(7867) => [
q(Kaurna),
],
- q(7879) => [
+ q(7868) => [
q(Krevinian),
],
- q(7880) => [
+ q(7869) => [
q(Khazar),
],
- q(7881) => [
+ q(7870) => [
q(Liujiang Zhuang),
],
- q(7882) => [
+ q(7871) => [
q(Malay (individual language)),
],
- q(7883) => [
+ q(7872) => [
q(Lianshan Zhuang),
],
- q(7884) => [
+ q(7873) => [
q(Liuqian Zhuang),
],
- q(7885) => [
+ q(7874) => [
q(Manda (Australia)),
],
- q(7886) => [
+ q(7875) => [
q(Zimba),
],
- q(7887) => [
+ q(7876) => [
q(Margany),
],
- q(7888) => [
+ q(7877) => [
q(Maridan),
],
- q(7889) => [
+ q(7878) => [
q(Mangerr),
],
- q(7890) => [
+ q(7879) => [
q(Mfinu),
],
- q(7891) => [
+ q(7880) => [
q(Marti Ke),
],
- q(7892) => [
+ q(7881) => [
q(Makolkol),
],
- q(7893) => [
+ q(7882) => [
q(Negeri Sembilan Malay),
],
- q(7894) => [
+ q(7883) => [
q(Maridjabin),
],
- q(7895) => [
+ q(7884) => [
q(Mandandanyi),
],
- q(7896) => [
+ q(7885) => [
q(Madngele),
],
- q(7897) => [
+ q(7886) => [
q(Marimanindji),
],
- q(7898) => [
+ q(7887) => [
q(Mbangwe),
],
- q(7899) => [
+ q(7888) => [
q(Molo),
],
- q(7900) => [
+ q(7889) => [
q(Mpuono),
],
- q(7901) => [
+ q(7890) => [
q(Mituku),
],
- q(7902) => [
+ q(7891) => [
q(Maranunggu),
],
- q(7903) => [
+ q(7892) => [
q(Mbesa),
],
- q(7904) => [
+ q(7893) => [
q(Maringarr),
],
- q(7905) => [
+ q(7894) => [
q(Muruwari),
],
- q(7906) => [
+ q(7895) => [
q(Mbariman-Gudhinma),
],
- q(7907) => [
+ q(7896) => [
q(Mbo (Democratic Republic of Congo)),
],
- q(7908) => [
+ q(7897) => [
q(Bomitaba),
],
- q(7909) => [
+ q(7898) => [
q(Mariyedi),
],
- q(7910) => [
+ q(7899) => [
q(Mbandja),
],
- q(7911) => [
+ q(7900) => [
q(Zan Gula),
],
- q(7912) => [
+ q(7901) => [
q(Zande (individual language)),
],
- q(7913) => [
+ q(7902) => [
q(Mang),
],
- q(7914) => [
+ q(7903) => [
q(Manangkari),
],
- q(7915) => [
+ q(7904) => [
q(Mangas),
],
- q(7916) => [
+ q(7905) => [
q(Copainala Zoque),
],
- q(7917) => [
+ q(7906) => [
q(Chimalapa Zoque),
],
- q(7918) => [
+ q(7907) => [
q(Zou),
],
- q(7919) => [
+ q(7908) => [
q(Asuncion Mixtepec Zapotec),
],
- q(7920) => [
+ q(7909) => [
q(Tabasco Zoque),
],
- q(7921) => [
+ q(7910) => [
q(Rayon Zoque),
],
- q(7922) => [
+ q(7911) => [
q(Francisco Leon Zoque),
],
- q(7923) => [
+ q(7912) => [
q(Lachiguiri Zapotec),
],
- q(7924) => [
+ q(7913) => [
q(Yautepec Zapotec),
],
- q(7925) => [
+ q(7914) => [
q(Choapan Zapotec),
],
- q(7926) => [
+ q(7915) => [
q(Southeastern Ixtlan Zapotec),
],
- q(7927) => [
+ q(7916) => [
q(Petapa Zapotec),
],
- q(7928) => [
+ q(7917) => [
q(San Pedro Quiatoni Zapotec),
],
- q(7929) => [
+ q(7918) => [
q(Guevea De Humboldt Zapotec),
],
- q(7930) => [
+ q(7919) => [
q(Totomachapan Zapotec),
],
- q(7931) => [
+ q(7920) => [
q(Santa Maria Quiegolani Zapotec),
],
- q(7932) => [
+ q(7921) => [
q(Quiavicuzas Zapotec),
],
- q(7933) => [
+ q(7922) => [
q(Tlacolulita Zapotec),
],
- q(7934) => [
+ q(7923) => [
q(Lachixio Zapotec),
],
- q(7935) => [
+ q(7924) => [
q(Mixtepec Zapotec),
],
- q(7936) => [
+ q(7925) => [
q(Santa Ines Yatzechi Zapotec),
],
- q(7937) => [
+ q(7926) => [
q(Amatlan Zapotec),
],
- q(7938) => [
+ q(7927) => [
q(El Alto Zapotec),
],
- q(7939) => [
+ q(7928) => [
q(Zoogocho Zapotec),
],
- q(7940) => [
+ q(7929) => [
q(Santiago Xanica Zapotec),
],
- q(7941) => [
+ q(7930) => [
q(Coatlan Zapotec),
],
- q(7942) => [
+ q(7931) => [
q(San Vicente Coatlan Zapotec),
],
- q(7943) => [
+ q(7932) => [
q(Yalalag Zapotec),
],
- q(7944) => [
+ q(7933) => [
q(Chichicapan Zapotec),
],
- q(7945) => [
+ q(7934) => [
q(Zaniza Zapotec),
],
- q(7946) => [
+ q(7935) => [
q(San Baltazar Loxicha Zapotec),
],
- q(7947) => [
+ q(7936) => [
q(Mazaltepec Zapotec),
],
- q(7948) => [
+ q(7937) => [
q(Texmelucan Zapotec),
],
- q(7949) => [
+ q(7938) => [
q(Qiubei Zhuang),
],
- q(7950) => [
+ q(7939) => [
q(Kara (Korea)),
],
- q(7951) => [
+ q(7940) => [
q(Mirgan),
],
- q(7952) => [
+ q(7941) => [
q(Zerenkel),
],
- q(7953) => [
+ q(7942) => [
q(Zaparo),
],
- q(7954) => [
+ q(7943) => [
q(Zarphatic),
],
- q(7955) => [
+ q(7944) => [
q(Mairasi),
],
- q(7956) => [
+ q(7945) => [
q(Sarasira),
],
- q(7957) => [
+ q(7946) => [
q(Kaskean),
],
- q(7958) => [
+ q(7947) => [
q(Zambian Sign Language),
],
- q(7959) => [
+ q(7948) => [
q(Standard Malay),
],
- q(7960) => [
+ q(7949) => [
q(Southern Rincon Zapotec),
],
- q(7961) => [
+ q(7950) => [
q(Sukurum),
],
- q(7962) => [
+ q(7951) => [
q(Elotepec Zapotec),
],
- q(7963) => [
+ q(7952) => [
q(Xanaguia Zapotec),
],
- q(7964) => [
+ q(7953) => [
q(Lapaguia-Guivini Zapotec),
],
- q(7965) => [
+ q(7954) => [
q(San Agustin Mixtepec Zapotec),
],
- q(7966) => [
+ q(7955) => [
q(Santa Catarina Albarradas Zapotec),
],
- q(7967) => [
+ q(7956) => [
q(Loxicha Zapotec),
],
- q(7968) => [
+ q(7957) => [
q(Quioquitani-Quieri Zapotec),
],
- q(7969) => [
+ q(7958) => [
q(Tilquiapan Zapotec),
],
- q(7970) => [
+ q(7959) => [
q(Tejalapan Zapotec),
],
- q(7971) => [
+ q(7960) => [
q(Guila Zapotec),
],
- q(7972) => [
+ q(7961) => [
q(Zaachila Zapotec),
],
- q(7973) => [
+ q(7962) => [
q(Yatee Zapotec),
],
- q(7974) => [
+ q(7963) => [
q(Zeem),
],
- q(7975) => [
+ q(7964) => [
q(Tokano),
],
- q(7976) => [
+ q(7965) => [
q(Kumzari),
],
- q(7977) => [
+ q(7966) => [
q(Zumaya),
],
- q(7978) => [
+ q(7967) => [
q(Zay),
],
- q(7979) => [
+ q(7968) => [
q(Yongbei Zhuang),
],
- q(7980) => [
+ q(7969) => [
q(Yang Zhuang),
],
- q(7981) => [
+ q(7970) => [
q(Youjiang Zhuang),
],
- q(7982) => [
+ q(7971) => [
q(Yongnan Zhuang),
],
- q(7983) => [
+ q(7972) => [
q(Zyphe Chin),
],
- q(7984) => [
+ q(7973) => [
q(Zuojiang Zhuang),
],
};
$Locale::Codes::Data{'language'}{'alias2id'} = {
- q(!o!ung) => [
- q(5346),
- q(0),
- ],
q(!xoo) => [
- q(4984),
+ q(4974),
q(0),
],
q('are'are) => [
- q(0763),
+ q(0761),
q(0),
],
q('auhelawa) => [
- q(3650),
+ q(3647),
q(0),
],
q('oroe) => [
- q(1385),
+ q(1381),
q(1),
],
q(//ani) => [
- q(2806),
+ q(2803),
q(0),
],
q(//gana) => [
- q(2576),
+ q(2574),
q(0),
],
q(//xegwi) => [
- q(7337),
+ q(7329),
q(0),
],
q(/gwi) => [
- q(2689),
+ q(2686),
q(0),
],
q(/xam) => [
- q(7287),
+ q(7279),
q(0),
],
q(=/hua) => [
- q(2856),
+ q(2853),
q(0),
],
- q(=/kx'au//'ein) => [
- q(0938),
- q(0),
+ q(=/ungkue) => [
+ q(2541),
+ q(1),
],
q(a'ou) => [
- q(0833),
+ q(0831),
q(0),
],
q(a'tong) => [
- q(0832),
- q(0),
+ q(0830),
+ q(1),
],
q(a-hmaos) => [
- q(2783),
+ q(2780),
q(1),
],
q(a-pucikwar) => [
- q(0851),
+ q(0849),
q(0),
],
q(aari) => [
- q(0712),
+ q(0710),
q(0),
],
q(aasax) => [
- q(0554),
+ q(0553),
q(0),
],
q(abadi) => [
- q(3204),
+ q(3201),
q(0),
],
q(abaga) => [
- q(0566),
+ q(0565),
q(0),
],
q(abai sungai) => [
- q(0565),
+ q(0564),
q(0),
],
q(abanyom) => [
- q(0571),
+ q(0570),
q(0),
],
q(abar) => [
- q(4315),
+ q(4306),
q(0),
],
q(abau) => [
- q(0556),
+ q(0555),
q(0),
],
q(abaza) => [
- q(0575),
+ q(0574),
q(0),
],
q(abe) => [
- q(0560),
+ q(0559),
q(0),
],
q(abellen ayta) => [
- q(0574),
+ q(0573),
q(0),
],
q(abidji) => [
- q(0568),
+ q(0567),
q(0),
],
q(abinomn) => [
- q(1450),
+ q(1446),
q(0),
],
q(abipon) => [
- q(0987),
+ q(0984),
q(0),
],
q(abishira) => [
- q(0893),
+ q(0892),
q(0),
],
q(abkhazian) => [
@@ -24408,19 +24394,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(abom) => [
- q(0817),
+ q(0815),
q(0),
],
q(abon) => [
- q(0573),
+ q(0572),
q(0),
],
q(abron) => [
- q(0576),
+ q(0575),
q(0),
],
q(abu) => [
- q(0615),
+ q(0614),
q(0),
],
q(abu' arapesh) => [
@@ -24428,51 +24414,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(abua) => [
- q(0572),
+ q(0571),
q(0),
],
q(abui) => [
- q(0584),
+ q(0583),
q(0),
],
q(abun) => [
- q(3327),
+ q(3324),
q(0),
],
q(abure) => [
- q(0579),
+ q(0578),
q(0),
],
q(abureni) => [
- q(4266),
+ q(4258),
q(0),
],
q(acatepec me'phaa) => [
- q(6681),
+ q(6673),
q(0),
],
q(acatepec tlapanec) => [
- q(6681),
+ q(6673),
q(1),
],
q(achagua) => [
- q(0585),
+ q(0584),
q(0),
],
q(achang) => [
- q(0593),
+ q(0592),
q(0),
],
q(ache) => [
- q(2660),
+ q(2657),
q(0),
],
q(acheron) => [
- q(0604),
+ q(0603),
q(0),
],
q(achi) => [
- q(0596),
+ q(0595),
q(0),
],
q(achinese) => [
@@ -24480,15 +24466,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(achterhoeks) => [
- q(0598),
+ q(0597),
q(0),
],
q(achuar-shiwiar) => [
- q(0599),
+ q(0598),
q(0),
],
q(achumawi) => [
- q(0600),
+ q(0599),
q(0),
],
q(acoli) => [
@@ -24496,87 +24482,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(acroa) => [
- q(0597),
+ q(0596),
q(0),
],
q(adabe) => [
- q(0605),
+ q(0604),
q(0),
],
q(adai) => [
- q(7283),
+ q(7274),
q(0),
],
q(adamawa fulfulde) => [
- q(2383),
+ q(2379),
q(0),
],
q(adamorobe sign language) => [
- q(0619),
+ q(0617),
q(0),
],
q(adang) => [
- q(0614),
+ q(0613),
q(0),
],
q(adangbe) => [
- q(0617),
+ q(0615),
q(0),
],
q(adangme) => [
q(0005),
q(0),
],
- q(adap) => [
- q(0616),
- q(0),
- ],
q(adara) => [
- q(3172),
+ q(3170),
q(0),
],
q(adasen) => [
- q(6541),
+ q(6532),
q(0),
],
q(adele) => [
- q(0607),
+ q(0606),
q(0),
],
q(adhola) => [
- q(0610),
+ q(0609),
q(0),
],
q(adi) => [
- q(0611),
+ q(0610),
q(0),
],
q(adioukrou) => [
- q(0612),
+ q(0611),
q(0),
],
q(adithinngithigh) => [
- q(2163),
+ q(2158),
q(0),
],
q(adivasi oriya) => [
- q(5310),
+ q(5302),
q(0),
],
q(adiwasi garasia) => [
- q(2418),
+ q(2414),
q(0),
],
q(adnyamathanha) => [
- q(0620),
+ q(0618),
q(0),
],
q(adonara) => [
- q(0618),
+ q(0616),
q(0),
],
q(aduge) => [
- q(0621),
+ q(0619),
q(0),
],
q(adygei) => [
@@ -24588,23 +24570,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(adzera) => [
- q(0624),
+ q(0622),
q(0),
],
q(aeka) => [
- q(0640),
+ q(0638),
q(0),
],
q(aekyom) => [
- q(0974),
+ q(0971),
q(0),
],
q(aequian) => [
- q(7284),
+ q(7275),
q(0),
],
q(aer) => [
- q(0634),
+ q(0632),
q(0),
],
q(afade) => [
@@ -24616,19 +24598,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(afghan persian) => [
- q(5610),
+ q(5601),
q(1),
],
q(afghan sign language) => [
- q(0644),
+ q(0642),
q(0),
],
q(afitti) => [
- q(0651),
+ q(0649),
q(0),
],
q(afra) => [
- q(6901),
+ q(6893),
q(1),
],
q(afrihili) => [
@@ -24644,143 +24626,143 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(afro-seminole creole) => [
- q(0650),
+ q(0648),
q(0),
],
q(agarabi) => [
- q(0657),
+ q(0655),
q(0),
],
q(agariya) => [
- q(0662),
+ q(0660),
q(0),
],
q(agatu) => [
- q(0656),
+ q(0654),
q(0),
],
q(agavotaguerra) => [
- q(0964),
+ q(0961),
q(0),
],
q(aghem) => [
- q(0669),
+ q(0667),
q(0),
],
q(aghu) => [
- q(0682),
+ q(0680),
q(0),
],
q(aghu-tharnggala) => [
- q(2644),
+ q(2641),
q(0),
],
q(aghul) => [
- q(0676),
+ q(0674),
q(0),
],
q(aghwan) => [
- q(7285),
+ q(7276),
q(0),
],
q(agi) => [
- q(0698),
+ q(0696),
q(0),
],
q(agob) => [
- q(3373),
+ q(3370),
q(0),
],
q(agoi) => [
- q(2896),
+ q(2893),
q(0),
],
q(aguacateco) => [
- q(0673),
+ q(0671),
q(0),
],
q(aguano) => [
- q(0654),
+ q(0652),
q(0),
],
q(aguaruna) => [
- q(0670),
+ q(0668),
q(0),
],
q(aguna) => [
- q(0939),
+ q(0936),
q(0),
],
q(agusan manobo) => [
- q(4550),
+ q(4541),
q(0),
],
q(agutaynen) => [
- q(0667),
+ q(0665),
q(0),
],
q(agwagwune) => [
- q(7604),
+ q(7596),
q(0),
],
q(ahan) => [
- q(0687),
+ q(0685),
q(0),
],
q(ahanta) => [
- q(0679),
+ q(0677),
q(0),
],
q(aheu) => [
- q(6512),
+ q(6504),
q(0),
],
q(ahirani) => [
- q(0690),
+ q(0688),
q(0),
],
q(ahom) => [
- q(0688),
+ q(0686),
q(0),
],
q(ahtena) => [
- q(0692),
+ q(0690),
q(0),
],
q(ahwai) => [
- q(4840),
+ q(4830),
q(0),
],
q(ai-cham) => [
- q(0700),
+ q(0698),
q(0),
],
q(aighon) => [
- q(0713),
+ q(0711),
q(0),
],
q(aikana) => [
- q(6387),
+ q(6379),
q(0),
],
q(aiklep) => [
- q(4638),
+ q(4629),
q(0),
],
q(aimaq) => [
- q(0708),
+ q(0706),
q(0),
],
q(aimele) => [
- q(0704),
+ q(0702),
q(0),
],
q(aimol) => [
- q(0705),
+ q(0703),
q(0),
],
q(ainbai) => [
- q(0695),
+ q(0693),
q(0),
],
q(ainu) => [
@@ -24788,7 +24770,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ainu (china)) => [
- q(0694),
+ q(0692),
q(0),
],
q(ainu (japan)) => [
@@ -24796,83 +24778,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(aiome) => [
- q(0731),
+ q(0729),
q(0),
],
q(airoran) => [
- q(0709),
+ q(0707),
q(0),
],
q(aiton) => [
- q(0706),
+ q(0704),
q(0),
],
q(aiwoo) => [
- q(4841),
+ q(4831),
q(1),
],
q(aja (benin)) => [
- q(0716),
+ q(0714),
q(0),
],
q(aja (sudan)) => [
- q(0715),
+ q(0713),
q(0),
],
q(ajawa) => [
- q(0722),
+ q(0720),
q(0),
],
q(ajie) => [
- q(0717),
+ q(0715),
q(0),
],
q(ajiya) => [
- q(2907),
+ q(2904),
q(1),
],
q(ajumbu) => [
- q(4590),
+ q(4581),
q(0),
],
q(ajyininka apurucayali) => [
- q(1837),
+ q(1832),
q(0),
],
q(ak) => [
- q(0737),
+ q(0735),
q(0),
],
q(aka) => [
- q(6171),
+ q(6161),
q(0),
],
q(aka-bea) => [
- q(0569),
+ q(0568),
q(0),
],
q(aka-bo) => [
- q(0734),
+ q(0732),
q(0),
],
q(aka-cari) => [
- q(0589),
+ q(0588),
q(0),
],
q(aka-jeru) => [
- q(0732),
+ q(0730),
q(0),
],
q(aka-kede) => [
- q(0744),
+ q(0742),
q(0),
],
q(aka-kol) => [
- q(0745),
+ q(0743),
q(0),
],
q(aka-kora) => [
- q(0590),
+ q(0589),
q(0),
],
q(akan) => [
@@ -24880,39 +24862,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(akar-bale) => [
- q(0591),
+ q(0590),
q(0),
],
q(akaselem) => [
- q(0739),
+ q(0737),
q(0),
],
q(akawaio) => [
- q(0727),
+ q(0725),
q(0),
],
q(ake) => [
- q(0703),
+ q(0701),
q(0),
],
q(akebu) => [
- q(3279),
+ q(3276),
q(0),
],
q(akei) => [
- q(6734),
+ q(6725),
q(0),
],
q(akeu) => [
- q(0637),
+ q(0635),
q(0),
],
q(akha) => [
- q(0684),
+ q(0682),
q(0),
],
q(akhvakh) => [
- q(0742),
+ q(0740),
q(0),
],
q(akkadian) => [
@@ -24920,79 +24902,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(akkala sami) => [
- q(6043),
+ q(6033),
q(0),
],
q(aklanon) => [
- q(0733),
+ q(0731),
q(0),
],
q(akolet) => [
- q(0740),
+ q(0738),
q(0),
],
q(akoose) => [
- q(1467),
+ q(1463),
q(0),
],
q(akoye) => [
- q(4325),
+ q(4316),
q(0),
],
q(akpa) => [
- q(0728),
+ q(0726),
q(0),
],
q(akpes) => [
- q(2893),
+ q(2890),
q(0),
],
q(akrukay) => [
- q(0645),
+ q(0643),
q(0),
],
q(akukem) => [
- q(6195),
+ q(6185),
q(0),
],
q(akuku) => [
- q(1002),
+ q(0999),
q(0),
],
q(akum) => [
- q(0741),
+ q(0739),
q(0),
],
q(akuntsu) => [
- q(0868),
+ q(0867),
q(0),
],
q(akurio) => [
- q(0735),
+ q(0733),
q(0),
],
q(akwa) => [
- q(0743),
+ q(0741),
q(0),
],
q(akyaung ari naga) => [
- q(5058),
+ q(5047),
q(0),
],
q(al-sayyid bedouin sign language) => [
- q(6353),
+ q(6345),
q(0),
],
q(alaba-k'abeena) => [
- q(0764),
+ q(0762),
q(0),
],
q(alabama) => [
- q(0746),
+ q(0744),
q(0),
],
q(alabat island agta) => [
- q(2184),
+ q(2179),
q(0),
],
q(alacalufan languages) => [
@@ -25000,39 +24982,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(alacatlatzala mixtec) => [
- q(4318),
+ q(4309),
q(0),
],
q(alago) => [
- q(0747),
+ q(0745),
q(0),
],
q(alagwa) => [
- q(7091),
+ q(7082),
q(0),
],
q(alak) => [
- q(0754),
+ q(0752),
q(0),
],
q(alamblak) => [
- q(0781),
+ q(0779),
q(0),
],
q(alangan) => [
- q(0753),
+ q(0751),
q(0),
],
q(alanic) => [
- q(7407),
+ q(7400),
q(0),
],
q(alapmunte) => [
- q(0856),
+ q(0854),
q(0),
],
q(alawa) => [
- q(0751),
+ q(0749),
q(0),
],
q(albanian) => [
@@ -25044,19 +25026,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(albanian sign language) => [
- q(6208),
+ q(6199),
q(0),
],
q(alcozauca mixtec) => [
- q(7514),
+ q(7506),
q(0),
],
q(alege) => [
- q(0750),
+ q(0748),
q(0),
],
q(alekano) => [
- q(2407),
+ q(2403),
q(0),
],
q(alemannic) => [
@@ -25068,15 +25050,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(algerian arabic) => [
- q(0878),
+ q(0877),
q(0),
],
q(algerian saharan arabic) => [
- q(0551),
+ q(0550),
q(0),
],
q(algerian sign language) => [
- q(0900),
+ q(0899),
q(0),
],
q(algic languages) => [
@@ -25088,35 +25070,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(algonquin) => [
- q(0760),
+ q(0758),
q(0),
],
q(ali) => [
- q(0714),
+ q(0712),
q(0),
],
q(alladian) => [
- q(0749),
+ q(0747),
q(0),
],
q(allar) => [
- q(0755),
+ q(0753),
q(0),
],
q(alngith) => [
- q(0696),
+ q(0694),
q(0),
],
q(alo phola) => [
- q(7741),
+ q(7731),
q(0),
],
q(aloapam zapotec) => [
- q(7828),
+ q(7817),
q(0),
],
q(alor) => [
- q(0827),
+ q(0825),
q(0),
],
q(alsatian) => [
@@ -25124,7 +25106,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(alsea) => [
- q(0636),
+ q(0634),
q(0),
],
q(altaic languages) => [
@@ -25132,11 +25114,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(alu kurumba) => [
- q(7537),
+ q(7529),
q(0),
],
q(alugu) => [
- q(0935),
+ q(0933),
q(0),
],
q(alumu-tesu) => [
@@ -25144,47 +25126,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(alune) => [
- q(0759),
+ q(0757),
q(0),
],
q(aluo) => [
- q(7713),
+ q(7704),
q(0),
],
q(alur) => [
- q(0767),
+ q(0765),
q(0),
],
q(alutor) => [
- q(0761),
+ q(0759),
q(0),
],
q(alviri-vidari) => [
- q(0958),
+ q(0955),
q(0),
],
q(alyawarr) => [
- q(0766),
+ q(0764),
q(0),
],
q(ama (papua new guinea)) => [
- q(0778),
+ q(0776),
q(0),
],
q(ama (sudan)) => [
- q(5171),
+ q(5162),
q(0),
],
q(amahai) => [
- q(0782),
+ q(0780),
q(0),
],
q(amahuaca) => [
- q(0770),
+ q(0768),
q(0),
],
q(amaimon) => [
- q(0752),
+ q(0750),
q(0),
],
q(amal) => [
@@ -25192,71 +25174,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(amanab) => [
- q(0779),
+ q(0777),
q(0),
],
q(amanaye) => [
- q(0768),
+ q(0766),
q(0),
],
q(amara) => [
- q(0697),
+ q(0695),
q(0),
],
q(amarakaeri) => [
- q(0783),
+ q(0781),
q(0),
],
q(amarasi) => [
- q(0559),
+ q(0558),
q(0),
],
q(amatlan zapotec) => [
- q(7937),
+ q(7926),
q(0),
],
q(amba (solomon islands)) => [
- q(6964),
+ q(6955),
q(0),
],
q(amba (uganda)) => [
- q(5885),
+ q(5877),
q(0),
],
q(ambai) => [
- q(0776),
+ q(0774),
q(0),
],
q(ambakich) => [
- q(0638),
+ q(0636),
q(0),
],
q(ambala ayta) => [
- q(0562),
+ q(0561),
q(0),
],
q(ambelau) => [
- q(0787),
+ q(0785),
q(0),
],
q(ambele) => [
- q(0631),
+ q(0629),
q(0),
],
q(amblong) => [
- q(0756),
+ q(0754),
q(0),
],
q(ambo) => [
- q(0769),
+ q(0767),
q(0),
],
q(ambo-pasco quechua) => [
- q(5708),
+ q(5699),
q(0),
],
q(ambonese malay) => [
- q(0577),
+ q(0576),
q(0),
],
q(ambrak) => [
@@ -25264,31 +25246,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ambul) => [
- q(0849),
+ q(0847),
q(0),
],
q(ambulas) => [
- q(0578),
+ q(0577),
q(0),
],
q(amdang) => [
- q(0775),
+ q(0773),
q(0),
],
q(amdo tibetan) => [
- q(0623),
+ q(0621),
q(0),
],
q(amele) => [
- q(0639),
+ q(0637),
q(0),
],
q(american sign language) => [
- q(0890),
+ q(0889),
q(0),
],
q(amganad ifugao) => [
- q(2915),
+ q(2912),
q(0),
],
q(amharic) => [
@@ -25296,91 +25278,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ami) => [
- q(0790),
+ q(0788),
q(0),
],
q(amio-gelimi) => [
- q(3883),
+ q(3877),
q(1),
],
q(amis) => [
- q(0774),
+ q(0772),
q(0),
],
q(amo) => [
- q(0780),
+ q(0778),
q(0),
],
q(amol) => [
- q(0765),
+ q(0763),
q(0),
],
q(amoltepec mixtec) => [
- q(4159),
+ q(4151),
q(0),
],
q(ampanang) => [
- q(0841),
+ q(0839),
q(0),
],
q(ampari dogon) => [
- q(0862),
+ q(0860),
q(0),
],
q(amri karbi) => [
- q(0723),
+ q(0721),
q(0),
],
q(amto) => [
- q(0785),
+ q(0783),
q(0),
],
q(amundava) => [
- q(0622),
+ q(0620),
q(0),
],
q(amurdak) => [
- q(0773),
+ q(0771),
q(0),
],
q(ana tinga dogon) => [
- q(2164),
+ q(2159),
q(0),
],
q(anaang) => [
- q(0812),
+ q(0810),
q(0),
],
q(anakalangu) => [
- q(0729),
+ q(0727),
q(0),
],
q(anal) => [
- q(0803),
+ q(0801),
q(0),
],
q(anam) => [
- q(5405),
+ q(5396),
q(0),
],
q(anambe) => [
- q(0550),
+ q(0549),
q(0),
],
q(anamgura) => [
- q(2965),
+ q(2962),
q(0),
],
q(anasi) => [
- q(1389),
+ q(1385),
q(0),
],
q(anca) => [
- q(0586),
+ q(0585),
q(0),
],
q(ancient aramaic (up to 700 bce)) => [
- q(5195),
+ q(5186),
q(1),
],
q(ancient greek (to 1453)) => [
@@ -25388,115 +25370,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(ancient hebrew) => [
- q(2738),
+ q(2735),
q(0),
],
q(ancient macedonian) => [
- q(7422),
+ q(7415),
q(0),
],
q(ancient north arabian) => [
- q(7438),
+ q(7431),
q(0),
],
q(ancient zapotec) => [
- q(7581),
+ q(7573),
q(0),
],
q(andaandi) => [
- q(2017),
+ q(2012),
q(0),
],
q(andai) => [
- q(0642),
+ q(0640),
q(0),
],
q(andajin) => [
- q(0718),
+ q(0716),
q(0),
],
q(andalusian arabic) => [
- q(7280),
+ q(7271),
q(0),
],
q(andaman creole hindi) => [
- q(2740),
+ q(2737),
q(0),
],
q(andaqui) => [
- q(0792),
+ q(0790),
q(0),
],
q(andarum) => [
- q(0819),
+ q(0817),
q(0),
],
q(andegerebinha) => [
- q(0609),
+ q(0608),
q(0),
],
q(andh) => [
- q(0807),
+ q(0805),
q(0),
],
q(andi) => [
- q(0799),
+ q(0797),
q(0),
],
q(andio) => [
- q(1619),
+ q(1613),
q(0),
],
q(andoa) => [
- q(0793),
+ q(0791),
q(0),
],
q(andoque) => [
- q(0805),
+ q(0803),
q(0),
],
q(andra-hus) => [
- q(0813),
+ q(0811),
q(0),
],
q(aneityum) => [
- q(0932),
+ q(0930),
q(0),
],
q(anem) => [
- q(0815),
+ q(0813),
q(0),
],
q(aneme wake) => [
- q(0583),
+ q(0582),
q(0),
],
q(anfillo) => [
- q(4694),
+ q(4684),
q(0),
],
q(angaataha) => [
- q(0666),
+ q(0664),
+ q(0),
+ ],
+ q(angaite) => [
+ q(0866),
q(0),
],
q(angal) => [
- q(0658),
+ q(0656),
q(0),
],
q(angal enen) => [
- q(0820),
+ q(0818),
q(0),
],
q(angal heneng) => [
- q(0730),
+ q(0728),
q(0),
],
q(angami naga) => [
- q(4921),
+ q(4911),
q(0),
],
q(angguruk yali) => [
- q(7686),
+ q(7678),
q(0),
],
q(angika) => [
@@ -25504,55 +25490,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(angkamuthi) => [
- q(0962),
+ q(0959),
q(0),
],
q(anglo-norman) => [
- q(7445),
+ q(7438),
q(0),
],
q(angloromani) => [
- q(5817),
+ q(5808),
q(0),
],
q(angolar) => [
- q(0816),
+ q(0814),
q(0),
],
q(angor) => [
- q(0660),
+ q(0658),
q(0),
],
q(angoram) => [
- q(0822),
+ q(0820),
q(0),
],
q(angosturas tunebo) => [
- q(6621),
+ q(6613),
q(0),
],
q(anguthimri) => [
- q(0972),
+ q(0969),
q(0),
],
q(ani phowa) => [
- q(7740),
+ q(7730),
q(0),
],
q(anii) => [
- q(1294),
+ q(1291),
q(0),
],
q(animere) => [
- q(0797),
+ q(0795),
q(0),
],
q(anindilyakwa) => [
- q(0824),
+ q(0822),
q(0),
],
q(anjam) => [
- q(1362),
+ q(1358),
q(0),
],
q(ankave) => [
@@ -25560,83 +25546,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(anmatyerre) => [
- q(0789),
+ q(0787),
q(0),
],
q(anong) => [
- q(5125),
+ q(5115),
q(0),
],
q(anor) => [
- q(0800),
+ q(0798),
q(0),
],
q(anserma) => [
- q(0808),
+ q(0806),
q(0),
],
q(ansus) => [
- q(0795),
+ q(0793),
q(0),
],
q(antakarinya) => [
- q(0809),
+ q(0807),
q(0),
],
q(antankarana malagasy) => [
- q(7433),
+ q(7426),
q(0),
],
q(antigua and barbuda creole english) => [
- q(0699),
+ q(0697),
q(0),
],
q(anu-hkongso chin) => [
- q(0802),
+ q(0800),
q(0),
],
q(anuak) => [
- q(0810),
+ q(0808),
q(0),
],
q(anufo) => [
- q(1763),
+ q(1758),
q(0),
],
q(anuki) => [
- q(0941),
+ q(0938),
q(0),
],
q(anus) => [
- q(0949),
+ q(0946),
q(0),
],
q(anuta) => [
- q(0937),
+ q(0935),
q(0),
],
q(anyin) => [
- q(0814),
+ q(0812),
q(0),
],
q(anyin morofo) => [
- q(4564),
+ q(4555),
q(0),
],
q(ao naga) => [
- q(4923),
+ q(4913),
q(0),
],
q(aoheng) => [
- q(5544),
+ q(5535),
q(0),
],
q(aore) => [
- q(0830),
+ q(0828),
q(0),
],
q(ap ma) => [
- q(3208),
+ q(3205),
q(0),
],
q(apache languages) => [
@@ -25644,59 +25630,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(apalachee) => [
- q(7290),
+ q(7282),
q(0),
],
q(apalai) => [
- q(0859),
+ q(0857),
q(0),
],
q(apali) => [
- q(2270),
+ q(2263),
q(0),
],
q(apasco-apoala mixtec) => [
- q(4320),
+ q(4311),
q(0),
],
q(apatani) => [
- q(0854),
+ q(0852),
q(0),
],
q(apiaka) => [
- q(0843),
+ q(0841),
q(0),
],
q(apinaye) => [
- q(0848),
+ q(0846),
q(0),
],
q(apma) => [
- q(0850),
+ q(0848),
q(0),
],
q(aproumu aizi) => [
- q(0689),
+ q(0687),
q(0),
],
q(apurina) => [
- q(0855),
+ q(0853),
q(0),
],
q(aputai) => [
- q(0858),
+ q(0856),
q(0),
],
q(aquitanian) => [
- q(7291),
+ q(7283),
q(0),
],
q(arabana) => [
- q(0870),
+ q(0869),
q(0),
],
q(arabela) => [
- q(0876),
+ q(0875),
q(0),
],
q(arabic) => [
@@ -25708,23 +25694,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(araki) => [
- q(0738),
+ q(0736),
q(0),
],
q(arakwal) => [
- q(5812),
+ q(5803),
q(0),
],
q(aralle-tabulahan) => [
- q(0924),
- q(0),
- ],
- q(aramanik) => [
- q(0549),
+ q(0922),
q(0),
],
q(arammba) => [
- q(6271),
+ q(6262),
q(0),
],
q(aranadan) => [
@@ -25732,15 +25714,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aranama-tamique) => [
- q(7492),
+ q(7485),
q(0),
],
q(arandai) => [
- q(3065),
+ q(3062),
q(0),
],
q(araona) => [
- q(0877),
+ q(0876),
q(0),
],
q(arapaho) => [
@@ -25748,7 +25730,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arapaso) => [
- q(0874),
+ q(0873),
+ q(0),
+ ],
+ q(ararandewara) => [
+ q(7278),
q(0),
],
q(arauan languages) => [
@@ -25756,7 +25742,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arawa) => [
- q(0881),
+ q(0880),
q(1),
],
q(arawak) => [
@@ -25768,11 +25754,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arawete) => [
- q(0981),
+ q(0978),
q(0),
],
q(arawum) => [
- q(0976),
+ q(0973),
q(0),
],
q(arbereshe albanian) => [
@@ -25780,55 +25766,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arbore) => [
- q(0882),
+ q(0881),
q(0),
],
q(archi) => [
- q(0861),
+ q(0859),
q(0),
],
q(ardhamagadhi prakrit) => [
- q(5481),
+ q(5473),
q(0),
],
q(are) => [
- q(4635),
+ q(4626),
q(0),
],
q(areba) => [
- q(0625),
+ q(0623),
q(0),
],
q(arem) => [
- q(0632),
+ q(0630),
q(0),
],
q(arequipa-la union quechua) => [
- q(5740),
+ q(5731),
q(0),
],
q(argentine sign language) => [
- q(0628),
+ q(0626),
q(0),
],
q(argobba) => [
- q(0663),
+ q(0661),
q(0),
],
q(arguni) => [
- q(0659),
+ q(0657),
q(0),
],
q(arha) => [
- q(0867),
+ q(0865),
q(0),
],
q(arho) => [
- q(0826),
+ q(0824),
q(0),
],
q(arhuaco) => [
- q(0872),
+ q(0871),
q(0),
],
q(ari) => [
@@ -25836,11 +25822,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aribwatsa) => [
- q(3816),
+ q(3811),
q(0),
],
q(aribwaung) => [
- q(7692),
+ q(7684),
q(0),
],
q(arifama-miniafia) => [
@@ -25848,35 +25834,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arigidi) => [
- q(0863),
+ q(0861),
q(0),
],
q(arikapu) => [
- q(0875),
+ q(0874),
q(0),
],
q(arikara) => [
- q(0873),
+ q(0872),
q(0),
],
q(arikem) => [
- q(0711),
+ q(0709),
q(0),
],
q(arin) => [
- q(7489),
+ q(7482),
q(0),
],
q(aringa) => [
- q(4084),
+ q(4076),
q(0),
],
q(arma) => [
- q(0823),
+ q(0821),
q(0),
],
q(armazic) => [
- q(7488),
+ q(7481),
q(0),
],
q(armenian) => [
@@ -25888,7 +25874,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(armenian sign language) => [
- q(0633),
+ q(0631),
q(0),
],
q(aromanian) => [
@@ -25896,27 +25882,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arop-lokep) => [
- q(0852),
+ q(0850),
q(0),
],
q(arop-sissano) => [
- q(0853),
+ q(0851),
q(0),
],
q(arosi) => [
- q(0693),
+ q(0691),
q(0),
],
q(arpitan) => [
- q(2377),
+ q(2373),
q(0),
],
q(arritinngithigh) => [
- q(5861),
+ q(5852),
q(0),
],
q(arta) => [
- q(0933),
+ q(0931),
q(0),
],
q(artificial languages) => [
@@ -25924,19 +25910,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arua (amazonas state)) => [
- q(0881),
+ q(0880),
q(0),
],
q(arua (rodonia state)) => [
- q(0883),
+ q(0882),
q(0),
],
q(aruamu) => [
- q(4561),
+ q(4552),
q(0),
],
q(aruek) => [
- q(0950),
+ q(0947),
q(0),
],
q(arumanian) => [
@@ -25944,67 +25930,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(aruop) => [
- q(4073),
+ q(4065),
q(0),
],
q(arutani) => [
- q(0931),
+ q(0929),
q(0),
],
q(arvanitika albanian) => [
- q(0555),
+ q(0554),
q(0),
],
q(as) => [
- q(0909),
+ q(0908),
q(0),
],
q(asaro'o) => [
- q(4584),
+ q(4575),
q(0),
],
q(asas) => [
- q(0889),
+ q(0888),
q(0),
],
q(ashaninka) => [
- q(1804),
+ q(1799),
q(0),
],
q(ashe) => [
- q(0691),
+ q(0689),
q(0),
],
q(asheninka pajonal) => [
- q(1754),
+ q(1749),
q(0),
],
q(asheninka perene) => [
- q(5608),
+ q(5599),
q(0),
],
q(ashkun) => [
- q(0896),
+ q(0895),
q(0),
],
q(asho chin) => [
- q(1876),
+ q(1871),
q(0),
],
q(ashtiani) => [
- q(0921),
+ q(0920),
q(0),
],
q(asilulu) => [
- q(0897),
+ q(0896),
q(0),
],
q(askopan) => [
- q(2235),
+ q(2229),
q(0),
],
q(asoa) => [
- q(0905),
+ q(0904),
q(0),
],
q(assamese) => [
@@ -26012,19 +25998,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(assan) => [
- q(7510),
+ q(7502),
q(0),
],
q(assangori) => [
- q(6068),
+ q(6058),
q(0),
],
q(assiniboine) => [
- q(0887),
+ q(0886),
q(0),
],
q(assyrian neo-aramaic) => [
- q(0701),
+ q(0699),
q(0),
],
q(asturian) => [
@@ -26036,55 +26022,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(3),
],
q(asu (nigeria)) => [
- q(0945),
+ q(0942),
q(0),
],
q(asu (tanzania)) => [
- q(0886),
+ q(0885),
q(0),
],
q(asue awyu) => [
- q(5617),
+ q(5608),
q(0),
],
q(asumboa) => [
- q(0934),
+ q(0932),
q(0),
],
q(asuncion mixtepec zapotec) => [
- q(7919),
+ q(7908),
q(0),
],
q(asuri) => [
- q(0902),
+ q(0901),
q(0),
],
q(ata) => [
- q(0920),
+ q(0919),
q(0),
],
q(ata manobo) => [
- q(0913),
+ q(0912),
q(0),
],
q(atakapa) => [
- q(0866),
+ q(0864),
q(0),
],
q(atampaya) => [
- q(0791),
+ q(0789),
q(0),
],
q(atatlahuca mixtec) => [
- q(4308),
+ q(4299),
q(0),
],
q(atayal) => [
- q(6385),
+ q(6377),
q(0),
],
q(atemble) => [
- q(0914),
+ q(0913),
q(0),
],
q(athapascan languages) => [
@@ -26092,15 +26078,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(athpariya) => [
- q(0842),
+ q(0840),
q(0),
],
q(ati) => [
- q(0918),
+ q(0917),
q(0),
],
q(atikamekw) => [
- q(0917),
+ q(0916),
q(0),
],
q(atlantic-congo languages) => [
@@ -26108,67 +26094,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(atohwaim) => [
- q(0864),
+ q(0862),
q(0),
],
q(atong) => [
- q(0922),
+ q(0830),
q(0),
],
q(atorada) => [
- q(0834),
+ q(0832),
q(0),
],
q(atsahuaca) => [
- q(0912),
+ q(0911),
q(0),
],
q(atsam) => [
- q(1689),
+ q(1684),
q(0),
],
q(atsugewi) => [
- q(0930),
+ q(0928),
q(0),
],
q(attapady kurumba) => [
- q(5489),
+ q(5481),
q(0),
],
q(attie) => [
- q(0916),
+ q(0915),
q(0),
],
q(atzingo matlatzinca) => [
- q(5208),
+ q(5199),
q(0),
],
q(au) => [
- q(0966),
+ q(0963),
q(0),
],
q(aulua) => [
- q(0944),
+ q(0941),
q(0),
],
q(aura) => [
- q(0954),
+ q(0951),
q(0),
],
q(aushi) => [
- q(0940),
+ q(0937),
q(0),
],
q(aushiri) => [
- q(0965),
+ q(0962),
q(0),
],
q(austral) => [
- q(0951),
+ q(0948),
q(0),
],
q(australian aborigines sign language) => [
- q(0906),
+ q(0905),
q(0),
],
q(australian languages) => [
@@ -26176,11 +26162,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(australian sign language) => [
- q(0891),
+ q(0890),
q(0),
],
q(austrian sign language) => [
- q(0901),
+ q(0900),
q(0),
],
q(austro-asiatic languages) => [
@@ -26192,23 +26178,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(auwe) => [
- q(6128),
+ q(6118),
q(0),
],
q(auye) => [
- q(0952),
+ q(0949),
q(0),
],
q(auyokawa) => [
- q(0947),
+ q(0944),
q(0),
],
q(ava guarani) => [
- q(4872),
+ q(4862),
q(1),
],
q(ava-canoeiro) => [
- q(0968),
+ q(0965),
q(0),
],
q(avaric) => [
@@ -26216,15 +26202,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(avatime) => [
- q(0963),
+ q(0960),
q(0),
],
q(avau) => [
- q(0957),
+ q(0954),
q(0),
],
q(avava) => [
- q(6595),
+ q(6587),
q(1),
],
q(avestan) => [
@@ -26232,31 +26218,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(avikam) => [
- q(0959),
+ q(0956),
q(0),
],
q(avokaya) => [
- q(0967),
+ q(0964),
q(0),
],
q(awa (china)) => [
- q(7063),
+ q(7054),
q(0),
],
q(awa (papua new guinea)) => [
- q(0969),
+ q(0966),
q(0),
],
q(awa-cuaiquer) => [
- q(3703),
+ q(3700),
q(0),
],
q(awabakal) => [
- q(0975),
+ q(0972),
q(0),
],
q(awad bing) => [
- q(1086),
+ q(1083),
q(0),
],
q(awadhi) => [
@@ -26264,119 +26250,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(awak) => [
- q(0978),
+ q(0975),
q(0),
],
q(awar) => [
- q(0994),
+ q(0991),
q(0),
],
q(awara) => [
- q(0985),
+ q(0982),
q(0),
],
q(awbono) => [
- q(0973),
+ q(0970),
q(0),
],
q(aweer) => [
- q(1356),
+ q(1352),
q(0),
],
q(awera) => [
- q(0979),
+ q(0976),
q(0),
],
q(aweti) => [
- q(0971),
+ q(0968),
q(0),
],
q(awing) => [
- q(1021),
+ q(1018),
q(0),
],
q(awiyaana) => [
- q(0955),
+ q(0952),
q(0),
],
q(awjilah) => [
- q(0942),
+ q(0939),
q(0),
],
q(awngi) => [
- q(0977),
+ q(0974),
q(0),
],
q(awngthim) => [
- q(2690),
+ q(2687),
q(0),
],
q(awtuw) => [
- q(3468),
+ q(3466),
q(0),
],
q(awu) => [
- q(7666),
+ q(7658),
q(0),
],
q(awun) => [
- q(0984),
+ q(0981),
q(0),
],
q(awutu) => [
- q(0652),
+ q(0650),
q(0),
],
q(awyi) => [
- q(0953),
+ q(0950),
q(0),
],
q(axamb) => [
- q(0680),
+ q(0678),
q(0),
],
q(axi yi) => [
- q(7668),
+ q(7660),
q(0),
],
q(ayabadhu) => [
- q(0997),
+ q(0994),
q(0),
],
q(ayacucho quechua) => [
- q(5706),
+ q(5697),
q(0),
],
q(ayangan ifugao) => [
- q(2916),
+ q(2913),
q(1),
],
q(ayautla mazatec) => [
- q(7047),
+ q(7038),
q(0),
],
q(ayere) => [
- q(0998),
+ q(0995),
q(0),
],
q(ayerrerenge) => [
- q(0988),
+ q(0985),
q(0),
],
q(ayi (papua new guinea)) => [
- q(1007),
+ q(1004),
q(0),
],
q(ayiwo) => [
- q(4841),
+ q(4831),
q(0),
],
q(ayizi) => [
- q(7811),
+ q(7800),
q(0),
],
q(ayizo gbe) => [
- q(0995),
+ q(0992),
q(0),
],
q(aymara) => [
@@ -26384,19 +26370,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ayoquesco zapotec) => [
- q(7819),
+ q(7808),
q(0),
],
q(ayoreo) => [
- q(1005),
+ q(1002),
q(0),
],
q(ayu) => [
- q(1011),
+ q(1008),
q(0),
],
q(ayutla mixtec) => [
- q(4327),
+ q(4318),
q(0),
],
q(azerbaijani) => [
@@ -26404,59 +26390,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(azha) => [
- q(1014),
+ q(1011),
q(0),
],
q(azhe) => [
- q(7669),
+ q(7661),
q(0),
],
q(azoyu me'phaa) => [
- q(6664),
+ q(6656),
q(0),
],
q(azoyu tlapanec) => [
- q(6664),
+ q(6656),
q(1),
],
q(baan) => [
- q(1529),
+ q(1525),
q(0),
],
q(baangi) => [
- q(1423),
+ q(1419),
q(0),
],
q(baatonum) => [
- q(1040),
+ q(1037),
q(0),
],
q(baba) => [
- q(1062),
+ q(1059),
q(0),
],
q(baba malay) => [
- q(4140),
+ q(4132),
q(0),
],
q(babalia creole arabic) => [
- q(1065),
+ q(1062),
q(0),
],
q(babango) => [
- q(1052),
+ q(1049),
q(0),
],
q(babanki) => [
- q(1050),
+ q(1047),
q(0),
],
q(babatana) => [
- q(1024),
+ q(1021),
q(0),
],
q(babine) => [
- q(1083),
+ q(1080),
q(0),
],
q(bable) => [
@@ -26464,315 +26450,315 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(babuza) => [
- q(1624),
+ q(1618),
q(0),
],
q(bacama) => [
- q(1089),
+ q(1086),
q(0),
],
q(bacanese malay) => [
- q(1482),
+ q(1478),
q(0),
],
q(bactrian) => [
- q(7301),
+ q(7293),
q(0),
],
q(bada (indonesia)) => [
- q(1211),
+ q(1208),
q(0),
],
q(bada (nigeria)) => [
- q(1035),
+ q(1032),
q(0),
],
q(badaga) => [
- q(1154),
+ q(1151),
q(0),
],
q(bade) => [
- q(1095),
+ q(1092),
q(0),
],
q(badeshi) => [
- q(1116),
+ q(1113),
q(0),
],
q(badi kanum) => [
- q(3337),
+ q(3334),
q(0),
],
q(badimaya) => [
- q(1212),
+ q(1209),
q(0),
],
q(badjiri) => [
- q(3064),
+ q(3061),
q(0),
],
q(badui) => [
- q(1026),
+ q(1023),
q(0),
],
q(badyara) => [
- q(5382),
+ q(5373),
q(0),
],
q(baeggu) => [
- q(1523),
+ q(1519),
q(0),
],
q(baelelea) => [
- q(1522),
+ q(1518),
q(0),
],
q(baetora) => [
- q(1489),
+ q(1485),
q(0),
],
q(bafanji) => [
- q(1147),
+ q(1144),
q(0),
],
q(bafaw-balong) => [
- q(1564),
+ q(1560),
q(0),
],
q(bafia) => [
- q(3601),
+ q(3598),
q(0),
],
q(bafut) => [
- q(1141),
+ q(1138),
q(0),
],
q(baga binari) => [
- q(1072),
+ q(1069),
q(0),
],
q(baga kaloum) => [
- q(1405),
+ q(1401),
q(0),
],
q(baga koga) => [
- q(1176),
+ q(1173),
q(0),
],
q(baga manduri) => [
- q(1308),
+ q(1305),
q(0),
],
q(baga mboteni) => [
- q(1174),
+ q(1171),
q(0),
],
q(baga sitemu) => [
- q(1464),
+ q(1460),
q(0),
],
q(baga sobane) => [
- q(1470),
+ q(1466),
q(0),
],
q(bagheli) => [
- q(1161),
+ q(1158),
q(0),
],
q(bagirmi) => [
- q(1313),
+ q(1310),
q(0),
],
q(bagirmi fulfulde) => [
- q(2389),
+ q(2385),
q(0),
],
q(bago-kusuntu) => [
- q(1406),
+ q(1402),
q(0),
],
q(bagri) => [
- q(1178),
+ q(1175),
q(0),
],
q(bagupi) => [
- q(1383),
+ q(1379),
q(0),
],
q(bagusa) => [
- q(1402),
+ q(1398),
q(0),
],
q(bagvalal) => [
- q(3669),
+ q(3666),
q(0),
],
q(baha buyang) => [
- q(7649),
+ q(7641),
q(0),
],
q(baham) => [
- q(1113),
+ q(1110),
q(0),
],
q(bahamas creole english) => [
- q(1030),
+ q(1027),
q(0),
],
q(baharna arabic) => [
- q(0580),
+ q(0579),
q(0),
],
q(bahau) => [
- q(1207),
+ q(1204),
q(0),
],
q(bahinemo) => [
- q(1239),
+ q(1236),
q(0),
],
q(bahing) => [
- q(1197),
+ q(1194),
q(0),
],
q(bahnar) => [
- q(1107),
+ q(1104),
q(0),
],
q(bahonsuai) => [
- q(1469),
+ q(1465),
q(0),
],
q(bai) => [
- q(1100),
+ q(1097),
q(0),
],
q(baibai) => [
- q(1045),
+ q(1042),
q(0),
],
q(baikeno) => [
- q(1278),
+ q(1275),
q(0),
],
q(baima) => [
- q(1407),
+ q(1403),
q(0),
],
q(baimak) => [
- q(1328),
+ q(1325),
q(0),
],
q(bainouk-gunyaamolo) => [
- q(1090),
+ q(1087),
q(0),
],
q(bainouk-gunyuno) => [
- q(1025),
+ q(1022),
q(0),
],
q(bainouk-samik) => [
- q(1067),
+ q(1064),
q(0),
],
q(baiso) => [
- q(1471),
+ q(1467),
q(0),
],
q(baissa fali) => [
- q(2330),
+ q(2326),
q(0),
],
q(bajan) => [
- q(1249),
+ q(1246),
q(0),
],
q(bajelani) => [
- q(1244),
+ q(1241),
q(0),
],
q(baka (cameroon)) => [
- q(1258),
+ q(1255),
q(0),
],
q(baka (sudan)) => [
- q(1098),
+ q(1095),
q(0),
],
q(bakairi) => [
- q(1271),
+ q(1268),
q(0),
],
q(bakaka) => [
- q(1425),
+ q(1421),
q(0),
],
q(bakhtiari) => [
- q(1408),
+ q(1404),
q(0),
],
q(baki) => [
- q(1263),
+ q(1260),
q(0),
],
q(bakoko) => [
- q(1262),
+ q(1259),
q(0),
],
q(bakole) => [
- q(3459),
+ q(3457),
q(0),
],
q(bakpinka) => [
- q(1058),
+ q(1055),
q(0),
],
q(bakumpai) => [
- q(1272),
+ q(1269),
q(0),
],
q(bakwe) => [
- q(1253),
+ q(1250),
q(0),
],
q(balaesang) => [
- q(1298),
+ q(1295),
q(0),
],
q(balangao) => [
- q(1301),
+ q(1298),
q(0),
],
q(balangingi) => [
- q(6241),
+ q(6232),
q(0),
],
q(balanta-ganja) => [
- q(1250),
+ q(1247),
q(0),
],
q(balanta-kentohe) => [
- q(1284),
+ q(1281),
q(0),
],
q(balantak) => [
- q(1304),
+ q(1301),
q(0),
],
q(balau) => [
- q(1286),
+ q(1283),
q(0),
],
q(baldemu) => [
- q(1104),
+ q(1101),
q(0),
],
q(bali (democratic republic of congo)) => [
- q(1081),
+ q(1078),
q(0),
],
q(bali (nigeria)) => [
- q(1079),
+ q(1076),
q(0),
],
q(balinese) => [
@@ -26780,27 +26766,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(balinese malay) => [
- q(4297),
+ q(4288),
q(0),
],
q(balkan gagauz turkish) => [
- q(1185),
+ q(1182),
q(0),
],
q(balkan romani) => [
- q(5825),
+ q(5816),
q(0),
],
q(balo) => [
- q(1414),
+ q(1410),
q(0),
],
q(baloi) => [
- q(1232),
+ q(1229),
q(0),
],
q(balti) => [
- q(1157),
+ q(1154),
q(0),
],
q(baltic languages) => [
@@ -26808,11 +26794,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baltic romani) => [
- q(5823),
+ q(5814),
q(0),
],
q(baluan-pam) => [
- q(1296),
+ q(1293),
q(0),
],
q(baluchi) => [
@@ -26820,19 +26806,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bamako sign language) => [
- q(1359),
+ q(1355),
q(0),
],
q(bamali) => [
- q(1056),
+ q(1053),
q(0),
],
q(bambalang) => [
- q(1319),
+ q(1316),
q(0),
],
q(bambam) => [
- q(5644),
+ q(5636),
q(0),
],
q(bambara) => [
@@ -26840,15 +26826,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bambassi) => [
- q(4686),
+ q(4676),
q(0),
],
q(bambili-bambui) => [
- q(1037),
+ q(1034),
q(0),
],
q(bamenyam) => [
- q(1070),
+ q(1067),
q(0),
],
q(bamileke languages) => [
@@ -26856,47 +26842,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bamu) => [
- q(1071),
+ q(1068),
q(0),
],
q(bamukumbit) => [
- q(1419),
+ q(1415),
q(0),
],
q(bamun) => [
- q(1038),
+ q(1035),
q(0),
],
q(bamunka) => [
- q(1532),
+ q(1528),
q(0),
],
q(bamwe) => [
- q(1311),
+ q(1308),
q(0),
],
q(ban khor sign language) => [
- q(1148),
+ q(1145),
q(0),
],
q(bana) => [
- q(1088),
+ q(1085),
q(0),
],
q(banam bay) => [
- q(7055),
+ q(7046),
q(1),
],
q(banao itneg) => [
- q(1254),
+ q(1251),
q(0),
],
q(banaro) => [
- q(1617),
+ q(1611),
q(0),
],
q(banda (indonesia)) => [
- q(1334),
+ q(1330),
q(0),
],
q(banda languages) => [
@@ -26904,135 +26890,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(banda malay) => [
- q(1391),
+ q(1387),
q(0),
],
q(banda-bambari) => [
- q(3936),
+ q(3929),
q(0),
],
q(banda-banda) => [
- q(1380),
+ q(1376),
q(0),
],
q(banda-mbres) => [
- q(1410),
+ q(1406),
q(0),
],
q(banda-ndele) => [
- q(1149),
+ q(1146),
q(0),
],
q(banda-yangere) => [
- q(7591),
+ q(7583),
q(0),
],
q(bandi) => [
- q(1618),
+ q(1612),
q(0),
],
q(bandial) => [
- q(1409),
+ q(1405),
q(0),
],
q(bandjalang) => [
- q(1115),
+ q(1112),
q(0),
],
q(bangala) => [
- q(1576),
+ q(1572),
q(0),
],
q(bangandu) => [
- q(1168),
+ q(1165),
q(0),
],
q(bangba) => [
- q(1044),
+ q(1041),
q(0),
],
q(banggai) => [
- q(1187),
+ q(1184),
q(0),
],
q(banggarla) => [
- q(1234),
+ q(1231),
q(0),
],
q(bangi) => [
- q(1338),
+ q(1334),
q(0),
],
q(bangime) => [
- q(1960),
+ q(1955),
q(0),
],
q(bangingih sama) => [
- q(6241),
+ q(6232),
q(1),
],
q(bangka) => [
- q(4233),
+ q(4225),
q(0),
],
q(bangolan) => [
- q(1171),
+ q(1168),
q(0),
],
q(bangubangu) => [
- q(1352),
+ q(1348),
q(0),
],
q(bangwinji) => [
- q(1458),
+ q(1454),
q(0),
],
q(baniva) => [
- q(1540),
+ q(1536),
q(0),
],
q(baniwa) => [
- q(1553),
+ q(1549),
q(0),
],
q(banjar) => [
- q(1245),
+ q(1242),
q(0),
],
q(bankagooma) => [
- q(1591),
+ q(1587),
q(0),
],
q(bankal) => [
- q(3110),
+ q(3108),
q(0),
],
q(bankan tey dogon) => [
- q(1978),
+ q(1973),
q(0),
],
q(bankon) => [
- q(0561),
+ q(0560),
q(0),
],
q(bannoni) => [
- q(1078),
+ q(1075),
q(0),
],
q(bantawa) => [
- q(1033),
+ q(1030),
q(0),
],
q(bantayanon) => [
- q(1160),
+ q(1157),
q(0),
],
q(bantik) => [
- q(1346),
+ q(1342),
q(0),
],
q(bantoanon) => [
- q(1344),
+ q(1340),
q(0),
],
q(bantu (other)) => [
@@ -27044,139 +27030,139 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(baoule) => [
- q(1074),
+ q(1071),
q(0),
],
q(bara malagasy) => [
- q(1203),
+ q(1200),
q(0),
],
q(baraamu) => [
- q(1428),
+ q(1424),
q(0),
],
q(barababaraba) => [
- q(5769),
+ q(5760),
q(0),
],
q(barai) => [
- q(1041),
+ q(1038),
q(0),
],
q(barakai) => [
- q(1031),
+ q(1028),
q(0),
],
q(baram kayan) => [
- q(3764),
+ q(3759),
q(0),
],
q(barama) => [
- q(1046),
+ q(1043),
q(0),
],
q(barambu) => [
- q(1436),
+ q(1432),
q(0),
],
q(baramu) => [
- q(1330),
+ q(1326),
q(0),
],
q(barapasi) => [
- q(1439),
+ q(1435),
q(0),
],
q(baras) => [
- q(1442),
+ q(1438),
q(0),
],
q(barasana-eduria) => [
- q(1462),
+ q(1458),
q(0),
],
q(barbacoas) => [
- q(1379),
+ q(1375),
q(0),
],
q(barbaram) => [
- q(7027),
+ q(7018),
q(0),
],
q(barbareno) => [
- q(1361),
+ q(1357),
q(0),
],
q(barclayville grebo) => [
- q(2632),
+ q(2630),
q(0),
],
q(bardi) => [
- q(1075),
+ q(1072),
q(0),
],
q(bare) => [
- q(1027),
+ q(1024),
q(0),
],
q(barein) => [
- q(1520),
+ q(1516),
q(0),
],
q(bargam) => [
- q(4389),
+ q(4380),
q(0),
],
q(bari) => [
- q(1138),
+ q(1135),
q(0),
],
q(bariai) => [
- q(1073),
+ q(1070),
q(0),
],
q(bariji) => [
- q(1235),
+ q(1232),
q(0),
],
q(barikanchi) => [
- q(1584),
+ q(1580),
q(0),
],
q(barikewa) => [
- q(3066),
+ q(3063),
q(0),
],
q(barok) => [
- q(1242),
+ q(1239),
q(0),
],
q(barombi) => [
- q(1048),
+ q(1045),
q(0),
],
q(barro negro tunebo) => [
- q(6400),
+ q(6392),
q(0),
],
q(barrow point) => [
- q(1394),
+ q(1390),
q(0),
],
q(baruga) => [
- q(1256),
+ q(1253),
q(0),
],
q(baruya) => [
- q(1610),
+ q(1605),
q(0),
],
q(barwe) => [
- q(1551),
+ q(1547),
q(0),
],
q(barzani jewish neo-aramaic) => [
- q(1237),
+ q(1234),
q(0),
],
q(basa) => [
@@ -27188,27 +27174,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(basa (nigeria)) => [
- q(1640),
+ q(1634),
q(0),
],
q(basa-gumna) => [
- q(1460),
+ q(1456),
q(0),
],
q(basa-gurmana) => [
- q(1505),
+ q(1501),
q(0),
],
q(basap) => [
- q(1092),
+ q(1089),
q(0),
],
q(basay) => [
- q(1609),
+ q(1604),
q(0),
],
q(bashkardi) => [
- q(1455),
+ q(1451),
q(0),
],
q(bashkir) => [
@@ -27216,7 +27202,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(basketo) => [
- q(1468),
+ q(1464),
q(0),
],
q(basque) => [
@@ -27228,47 +27214,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bassa) => [
- q(1465),
+ q(1461),
q(0),
],
q(bassa-kontagora) => [
- q(1466),
+ q(1462),
q(0),
],
q(bassari) => [
- q(1452),
+ q(1448),
q(0),
],
q(bassossi) => [
- q(1457),
+ q(1453),
q(0),
],
q(bata) => [
- q(1474),
+ q(1470),
q(0),
],
q(batad ifugao) => [
- q(2916),
+ q(2913),
q(0),
],
q(batak) => [
- q(1594),
+ q(1589),
q(0),
],
q(batak alas-kluet) => [
- q(1497),
+ q(1493),
q(0),
],
q(batak angkola) => [
- q(0724),
+ q(0722),
q(0),
],
q(batak dairi) => [
- q(1476),
+ q(1472),
q(0),
],
q(batak karo) => [
- q(1495),
+ q(1491),
q(0),
],
q(batak languages) => [
@@ -27276,151 +27262,151 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(batak mandailing) => [
- q(1484),
+ q(1480),
q(0),
],
q(batak simalungun) => [
- q(1490),
+ q(1486),
q(0),
],
q(batak toba) => [
- q(1042),
+ q(1039),
q(0),
],
q(batanga) => [
- q(1342),
+ q(1338),
q(0),
],
q(batek) => [
- q(1488),
+ q(1484),
q(0),
],
q(bateri) => [
- q(1493),
+ q(1489),
q(0),
],
q(bathari) => [
- q(1199),
+ q(1196),
q(0),
],
q(bati (cameroon)) => [
- q(1475),
+ q(1471),
q(0),
],
q(bati (indonesia)) => [
- q(1538),
+ q(1534),
q(0),
],
q(bats) => [
- q(1051),
+ q(1048),
q(0),
],
q(batu) => [
- q(1492),
+ q(1488),
q(0),
],
q(batui) => [
- q(7840),
+ q(7829),
q(0),
],
q(batuley) => [
- q(1039),
+ q(1036),
q(0),
],
q(batyala) => [
- q(7314),
+ q(7306),
q(0),
],
q(bau) => [
- q(1043),
+ q(1040),
q(0),
],
q(bau bidayuh) => [
- q(6146),
+ q(6136),
q(0),
],
q(bauchi) => [
- q(1454),
+ q(1450),
q(0),
],
q(baure) => [
- q(1430),
+ q(1426),
q(0),
],
q(bauria) => [
- q(1167),
+ q(1164),
q(0),
],
q(bauwaki) => [
- q(1555),
+ q(1551),
q(0),
],
q(bauzi) => [
- q(1544),
+ q(1540),
q(0),
],
q(bavarian) => [
- q(1034),
+ q(1031),
q(0),
],
q(bawm chin) => [
- q(1179),
+ q(1176),
q(0),
],
q(bay miwok) => [
- q(4366),
+ q(4357),
q(0),
],
q(bayali) => [
- q(1255),
+ q(1252),
q(0),
],
q(baybayanon) => [
- q(1543),
+ q(1539),
q(0),
],
q(baygo) => [
- q(1600),
+ q(1595),
q(0),
],
q(bayono) => [
- q(1605),
+ q(1600),
q(0),
],
q(bayot) => [
- q(1091),
+ q(1088),
q(0),
],
q(bayungu) => [
- q(1579),
+ q(1575),
q(0),
],
q(bazigar) => [
- q(1155),
+ q(1152),
q(0),
],
q(beami) => [
- q(1127),
+ q(1124),
q(0),
],
q(beaver) => [
- q(1117),
+ q(1114),
q(0),
],
q(beba) => [
- q(1153),
+ q(1150),
q(0),
],
q(bebele) => [
- q(1118),
+ q(1115),
q(0),
],
q(bebeli) => [
- q(1126),
+ q(1123),
q(0),
],
q(bebil) => [
- q(1585),
+ q(1581),
q(0),
],
q(bedawiyet) => [
@@ -27428,35 +27414,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(bedjond) => [
- q(1252),
+ q(1249),
q(0),
],
q(bedoanas) => [
- q(1120),
+ q(1117),
q(0),
],
q(beeke) => [
- q(1260),
+ q(1257),
q(0),
],
q(beele) => [
- q(1586),
+ q(1582),
q(0),
],
q(beembe) => [
- q(1129),
+ q(1126),
q(0),
],
q(beezen) => [
- q(1354),
+ q(1350),
q(0),
],
q(befang) => [
- q(1064),
+ q(1061),
q(0),
],
q(begbere-ejar) => [
- q(1421),
+ q(1417),
q(1),
],
q(beja) => [
@@ -27464,27 +27450,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bekati') => [
- q(1125),
+ q(1122),
q(0),
],
q(bekwarra) => [
- q(1276),
+ q(1273),
q(0),
],
q(bekwel) => [
- q(1277),
+ q(1274),
q(0),
],
q(belait) => [
- q(1123),
+ q(1120),
q(0),
],
q(belanda bor) => [
- q(1571),
+ q(1567),
q(0),
],
q(belanda viri) => [
- q(1528),
+ q(1524),
q(0),
],
q(belarusian) => [
@@ -27492,83 +27478,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(belhariya) => [
- q(1614),
+ q(1609),
q(0),
],
q(beli (papua new guinea)) => [
- q(1136),
+ q(1133),
q(0),
],
q(beli (sudan)) => [
- q(1292),
+ q(1289),
q(0),
],
q(belize kriol english) => [
- q(1627),
+ q(1621),
q(0),
],
q(bella coola) => [
- q(1282),
+ q(1279),
q(0),
],
q(bellari) => [
- q(1446),
+ q(1442),
q(0),
],
q(bemba) => [
q(0049),
q(0),
],
- q(bemba (democratic republic of congo)) => [
- q(1329),
- q(0),
- ],
q(bemba (zambia)) => [
q(0049),
q(1),
],
q(bembe) => [
- q(1306),
+ q(1303),
q(0),
],
q(ben tey dogon) => [
- q(1975),
+ q(1970),
q(0),
],
q(bena (nigeria)) => [
- q(7782),
+ q(7772),
q(0),
],
q(bena (tanzania)) => [
- q(1137),
+ q(1134),
q(0),
],
q(benabena) => [
- q(1122),
+ q(1119),
q(0),
],
q(bench) => [
- q(1082),
+ q(1079),
q(0),
],
q(bende) => [
- q(1106),
+ q(1103),
q(0),
],
q(bendi) => [
- q(1085),
+ q(1082),
q(0),
],
q(beneraf) => [
- q(1350),
+ q(1346),
q(1),
],
q(beng) => [
- q(4870),
+ q(4860),
q(0),
],
q(benga) => [
- q(1337),
+ q(1333),
q(0),
],
q(bengali) => [
@@ -27576,39 +27558,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(benggoi) => [
- q(1186),
+ q(1183),
q(0),
],
q(bengkala sign language) => [
- q(1424),
+ q(1420),
q(0),
],
q(bentong) => [
- q(1349),
+ q(1345),
q(0),
],
q(benyadu') => [
- q(1597),
+ q(1592),
q(0),
],
q(beothuk) => [
- q(1501),
+ q(1497),
q(0),
],
q(bepour) => [
- q(1216),
+ q(1213),
q(0),
],
q(bera) => [
- q(1429),
+ q(1425),
q(0),
],
q(berakou) => [
- q(1590),
+ q(1586),
q(0),
],
q(berau malay) => [
- q(1524),
+ q(1520),
q(0),
],
q(berber languages) => [
@@ -27616,107 +27598,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(berbice creole dutch) => [
- q(1427),
+ q(1423),
q(0),
],
q(berik) => [
- q(1266),
+ q(1263),
q(0),
],
q(berinomo) => [
- q(1226),
+ q(1223),
q(0),
],
q(berom) => [
- q(1365),
+ q(1361),
q(0),
],
q(berta) => [
- q(7250),
+ q(7241),
q(0),
],
q(berti) => [
- q(1612),
+ q(1607),
q(0),
],
q(besisi) => [
- q(4286),
+ q(4278),
q(0),
],
q(besme) => [
- q(1130),
+ q(1127),
q(0),
],
q(besoa) => [
- q(1128),
+ q(1125),
q(0),
],
q(betaf) => [
- q(1142),
+ q(1139),
q(0),
],
q(betawi) => [
- q(1134),
+ q(1131),
q(0),
],
q(bete) => [
- q(1599),
+ q(1594),
q(0),
],
q(bete-bendi) => [
- q(1491),
+ q(1487),
q(0),
],
q(beti (cote d'ivoire)) => [
- q(2283),
+ q(2278),
q(0),
],
q(betta kurumba) => [
- q(7538),
+ q(7530),
q(0),
],
q(bezhta) => [
- q(3181),
+ q(3179),
q(0),
],
q(bhadrawahi) => [
- q(1191),
+ q(1188),
q(0),
],
q(bhalay) => [
- q(1209),
+ q(1206),
q(0),
],
q(bharia) => [
- q(1188),
+ q(1185),
q(0),
],
q(bhatola) => [
- q(1483),
+ q(1479),
q(0),
],
q(bhatri) => [
- q(1184),
+ q(1181),
q(0),
],
q(bhattiyali) => [
- q(1205),
+ q(1202),
q(0),
],
q(bhaya) => [
- q(1192),
+ q(1189),
q(0),
],
q(bhele) => [
- q(1210),
+ q(1207),
q(0),
],
q(bhilali) => [
- q(1196),
+ q(1193),
q(0),
],
q(bhili) => [
- q(1189),
+ q(1186),
q(0),
],
q(bhojpuri) => [
@@ -27724,103 +27706,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bhoti kinnauri) => [
- q(4832),
+ q(4822),
q(0),
],
q(bhujel) => [
- q(1601),
+ q(1596),
q(0),
],
q(bhunjia) => [
- q(1206),
+ q(1203),
q(0),
],
q(biafada) => [
- q(1217),
+ q(1214),
q(0),
],
q(biage) => [
- q(1096),
+ q(1093),
q(0),
],
q(biak) => [
- q(1208),
+ q(1205),
q(0),
],
q(biali) => [
- q(1124),
+ q(1121),
q(0),
],
q(bian marind) => [
- q(1396),
+ q(1392),
q(0),
],
q(biangai) => [
- q(1218),
+ q(1215),
q(0),
],
q(biao) => [
- q(1604),
+ q(1599),
q(0),
],
q(biao mon) => [
- q(1324),
+ q(1321),
q(0),
],
q(biao-jiao mien) => [
- q(1236),
+ q(1233),
q(0),
],
q(biatah bidayuh) => [
- q(1480),
+ q(1476),
q(0),
],
q(bibbulman) => [
- q(7310),
+ q(7302),
q(0),
],
q(bidhawal) => [
- q(2935),
+ q(2932),
q(0),
],
q(bidiyo) => [
- q(1215),
+ q(1212),
q(0),
],
q(bidyara) => [
- q(1606),
+ q(1601),
q(0),
],
q(bidyogo) => [
- q(1238),
+ q(1235),
q(0),
],
q(biem) => [
- q(1307),
+ q(1304),
q(0),
],
q(bierebo) => [
- q(1340),
+ q(1336),
q(0),
],
q(bieria) => [
- q(1433),
+ q(1429),
q(0),
],
q(biete) => [
- q(1227),
+ q(1224),
q(0),
],
q(big nambas) => [
- q(4972),
+ q(4962),
q(0),
],
q(biga) => [
- q(1190),
+ q(1187),
q(0),
],
q(bigambal) => [
- q(7303),
+ q(7295),
q(0),
],
q(bihari languages) => [
@@ -27828,11 +27810,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bijori) => [
- q(1230),
+ q(1227),
q(0),
],
q(bikaru) => [
- q(1214),
+ q(1211),
q(0),
],
q(bikol) => [
@@ -27840,31 +27822,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bikya) => [
- q(1595),
+ q(1590),
q(0),
],
q(bila) => [
- q(1223),
+ q(1220),
q(0),
],
q(bilakura) => [
- q(1411),
+ q(1407),
q(0),
],
q(bilaspuri) => [
- q(3303),
+ q(3300),
q(0),
],
q(bilba) => [
- q(1400),
+ q(1396),
q(0),
],
q(bilbil) => [
- q(1449),
+ q(1445),
q(0),
],
q(bile) => [
- q(1220),
+ q(1217),
q(0),
],
q(bilin) => [
@@ -27872,55 +27854,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(bilma kanuri) => [
- q(1323),
+ q(1320),
q(0),
],
q(biloxi) => [
- q(1291),
+ q(1288),
q(0),
],
q(bilua) => [
- q(1281),
+ q(1278),
q(0),
],
q(bilur) => [
- q(1575),
+ q(1571),
q(0),
],
q(bima) => [
- q(1201),
+ q(1198),
q(0),
],
q(bimin) => [
- q(1198),
+ q(1195),
q(0),
],
q(bimoba) => [
- q(1221),
+ q(1218),
q(0),
],
q(bina (nigeria)) => [
- q(1603),
+ q(1598),
q(0),
],
q(bina (papua new guinea)) => [
- q(1318),
+ q(1315),
q(0),
],
q(binahari) => [
- q(1593),
+ q(1588),
q(0),
],
q(binandere) => [
- q(1194),
+ q(1191),
q(0),
],
q(bindal) => [
- q(7302),
+ q(7294),
q(0),
],
q(bine) => [
- q(1366),
+ q(1362),
q(0),
],
q(bini) => [
@@ -27928,91 +27910,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(binji) => [
- q(1384),
+ q(1380),
q(0),
],
q(binongan itneg) => [
- q(3013),
+ q(3010),
q(0),
],
q(bintauna) => [
- q(1335),
+ q(1331),
q(0),
],
q(bintulu) => [
- q(1353),
+ q(1349),
q(0),
],
q(binukid) => [
- q(1259),
+ q(1256),
q(0),
],
q(binumarien) => [
- q(1248),
+ q(1245),
q(0),
],
q(bipi) => [
- q(1224),
+ q(1221),
q(0),
],
q(birale) => [
- q(1574),
+ q(1570),
q(0),
],
q(birao) => [
- q(1441),
+ q(1437),
q(0),
],
q(birgit) => [
- q(1478),
+ q(1474),
q(0),
],
q(birhor) => [
- q(1231),
+ q(1228),
q(0),
],
q(biri) => [
- q(1635),
+ q(1629),
q(0),
],
q(biritai) => [
- q(1416),
+ q(1412),
q(0),
],
q(birked) => [
- q(1434),
+ q(1430),
q(0),
],
q(birri) => [
- q(1536),
+ q(1532),
q(0),
],
q(birrpayi) => [
- q(7306),
+ q(7298),
q(0),
],
q(birwa) => [
- q(1435),
+ q(1431),
q(0),
],
q(bisa) => [
- q(1213),
+ q(1210),
q(1),
],
q(biseni) => [
- q(2938),
+ q(2935),
q(0),
],
q(bishnupriya) => [
- q(1399),
+ q(1395),
q(0),
],
q(bishuo) => [
- q(1552),
+ q(1548),
q(0),
],
q(bisis) => [
- q(1351),
+ q(1347),
q(0),
],
q(bislama) => [
@@ -28020,55 +28002,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bisorio) => [
- q(1225),
+ q(1222),
q(0),
],
q(bissa) => [
- q(1213),
+ q(1210),
q(0),
],
q(bisu) => [
- q(1626),
+ q(1620),
q(0),
],
q(bit) => [
- q(1172),
+ q(1169),
q(0),
],
q(bitare) => [
- q(1443),
+ q(1439),
q(0),
],
q(bitur) => [
- q(4162),
+ q(4154),
q(0),
],
q(biwat) => [
- q(1557),
+ q(1553),
q(0),
],
q(biyo) => [
- q(1607),
+ q(1602),
q(0),
],
q(biyom) => [
- q(1387),
+ q(1383),
q(0),
],
q(blablanga) => [
- q(1295),
+ q(1292),
q(0),
],
q(blafe) => [
- q(1145),
+ q(1142),
q(0),
],
q(blagar) => [
- q(1132),
+ q(1129),
q(0),
],
q(blang) => [
- q(1297),
+ q(1294),
q(0),
],
q(blin) => [
@@ -28088,83 +28070,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bo (laos)) => [
- q(1173),
+ q(1170),
q(0),
],
q(bo (papua new guinea)) => [
- q(1397),
+ q(1393),
q(0),
],
q(bo-rukul) => [
- q(4124),
+ q(4116),
q(0),
],
q(bo-ung) => [
- q(4606),
+ q(4597),
q(0),
],
q(boano (maluku)) => [
- q(1631),
+ q(1625),
q(0),
],
q(boano (sulawesi)) => [
- q(1629),
+ q(1623),
q(0),
],
q(bobongko) => [
- q(1164),
+ q(1161),
q(0),
],
q(bobot) => [
- q(1496),
+ q(1492),
q(0),
],
q(bodo (central african republic)) => [
- q(1376),
+ q(1372),
q(0),
],
q(bodo (india)) => [
- q(1447),
+ q(1443),
q(0),
],
q(bodo gadaba) => [
- q(2431),
+ q(2427),
q(0),
],
q(bodo parja) => [
- q(1112),
+ q(1109),
q(0),
],
q(bofi) => [
- q(1143),
+ q(1140),
q(0),
],
q(boga) => [
- q(1541),
+ q(1537),
q(0),
],
q(bogaya) => [
- q(1369),
+ q(1365),
q(0),
],
q(boghom) => [
- q(1517),
+ q(1513),
q(0),
],
q(boguru) => [
- q(1420),
+ q(1416),
q(0),
],
q(bohtan neo-aramaic) => [
- q(1200),
+ q(1197),
q(0),
],
q(boikin) => [
- q(1623),
+ q(1617),
q(0),
],
q(bokha) => [
- q(7612),
+ q(7604),
q(0),
],
q(bokmal, norwegian) => [
@@ -28172,247 +28154,243 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(boko (benin)) => [
- q(1403),
+ q(1399),
q(0),
],
q(boko (democratic republic of congo)) => [
- q(1270),
+ q(1267),
q(0),
],
q(bokobaru) => [
- q(1512),
+ q(1508),
q(0),
],
q(bokoto) => [
- q(1110),
+ q(1107),
q(0),
],
q(bokyi) => [
- q(1279),
+ q(1276),
q(0),
],
q(bola) => [
- q(1345),
+ q(1341),
q(0),
],
q(bolango) => [
- q(1283),
+ q(1280),
q(0),
],
q(bole) => [
- q(1364),
+ q(1360),
q(0),
],
q(bolgarian) => [
- q(7309),
+ q(7301),
q(0),
],
q(bolgo) => [
- q(1534),
+ q(1530),
q(0),
],
q(bolia) => [
- q(1288),
+ q(1285),
q(0),
],
q(bolinao) => [
- q(6131),
+ q(6121),
q(0),
],
q(bolivian sign language) => [
- q(1531),
+ q(1527),
q(0),
],
q(bolo) => [
- q(1300),
+ q(1297),
q(0),
],
q(boloki) => [
- q(1274),
+ q(1271),
q(0),
],
q(bolon) => [
- q(1358),
+ q(1354),
q(0),
],
q(bolondo) => [
- q(1630),
+ q(1624),
q(0),
],
q(bolongan) => [
- q(1289),
+ q(1286),
q(0),
],
q(bolyu) => [
- q(5513),
+ q(5505),
q(0),
],
q(bom) => [
- q(1310),
+ q(1307),
q(0),
],
q(boma) => [
- q(1360),
+ q(1356),
q(0),
],
q(bomboli) => [
- q(1316),
+ q(1313),
q(0),
],
q(bomboma) => [
- q(1563),
+ q(1559),
q(0),
],
q(bomitaba) => [
- q(7908),
+ q(7897),
q(0),
],
q(bomu) => [
- q(1321),
+ q(1318),
q(0),
],
q(bomwali) => [
- q(1327),
+ q(1324),
q(0),
],
q(bon gula) => [
- q(2545),
+ q(2542),
q(0),
],
q(bonan) => [
- q(5418),
+ q(5409),
q(0),
],
q(bondei) => [
- q(1372),
+ q(1368),
q(0),
],
q(bondo) => [
- q(1159),
+ q(1156),
q(0),
],
q(bondoukou kulango) => [
- q(3774),
+ q(3769),
q(0),
],
q(bondum dom dogon) => [
- q(1976),
+ q(1971),
q(0),
],
q(bonerate) => [
- q(1331),
+ q(1327),
q(0),
],
q(bonerif) => [
- q(1350),
+ q(1346),
q(0),
],
q(bonggi) => [
- q(1097),
+ q(1094),
q(0),
],
q(bonggo) => [
- q(1381),
+ q(1377),
q(0),
],
q(bongili) => [
- q(1504),
+ q(1500),
q(0),
],
q(bongo) => [
- q(1371),
+ q(1367),
q(0),
],
q(bongu) => [
- q(1395),
+ q(1391),
q(0),
],
q(bonjo) => [
- q(1363),
+ q(1359),
q(0),
],
q(bonkeng) => [
- q(1526),
+ q(1522),
q(0),
],
q(bonkiman) => [
- q(1368),
+ q(1364),
q(0),
],
q(bontok) => [
- q(1333),
+ q(1329),
q(0),
],
q(boo) => [
- q(1403),
+ q(1399),
q(1),
],
q(bookan) => [
- q(1332),
+ q(1328),
q(0),
],
q(boon) => [
- q(1341),
+ q(1337),
q(0),
],
q(boor) => [
- q(1525),
+ q(1521),
q(0),
],
q(bora) => [
- q(1355),
+ q(1351),
q(0),
],
q(borana-arsi-guji oromo) => [
- q(2422),
+ q(2418),
q(0),
],
q(border kuna) => [
- q(3682),
+ q(3679),
q(0),
],
q(borei) => [
- q(2408),
+ q(2404),
q(0),
],
q(borgu fulfulde) => [
- q(2386),
- q(0),
- ],
- q(borna (democratic republic of congo)) => [
- q(1592),
+ q(2382),
q(0),
],
q(borna (ethiopia)) => [
- q(1559),
+ q(1555),
q(1),
],
q(boro (ethiopia)) => [
- q(1559),
+ q(1555),
q(0),
],
q(boro (ghana)) => [
- q(7567),
+ q(7559),
q(0),
],
q(borong) => [
- q(3613),
+ q(3610),
q(0),
],
q(bororo) => [
- q(1370),
+ q(1366),
q(0),
],
q(boruca) => [
- q(1437),
+ q(1433),
q(0),
],
q(boselewa) => [
- q(1550),
+ q(1546),
q(0),
],
q(bosngun) => [
- q(1418),
+ q(1414),
q(0),
],
q(bosnian) => [
@@ -28420,35 +28398,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bote-majhi) => [
- q(1314),
+ q(1311),
q(0),
],
q(botlikh) => [
- q(1382),
+ q(1378),
q(0),
],
q(botolan sambal) => [
- q(5921),
+ q(5912),
q(0),
],
q(bouna kulango) => [
- q(4950),
+ q(4940),
q(0),
],
q(bouyei) => [
- q(5391),
+ q(5382),
q(0),
],
q(bozaba) => [
- q(1632),
+ q(1626),
q(0),
],
q(bragat) => [
- q(0821),
+ q(0819),
q(0),
],
q(brahui) => [
- q(1431),
+ q(1427),
q(0),
],
q(braj) => [
@@ -28456,15 +28434,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(brazilian sign language) => [
- q(1636),
+ q(1630),
q(0),
],
q(brem) => [
- q(1511),
+ q(1507),
q(0),
],
q(breri) => [
- q(1440),
+ q(1436),
q(0),
],
q(breton) => [
@@ -28472,115 +28450,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bribri) => [
- q(1621),
+ q(1615),
q(0),
],
q(brithenig) => [
- q(1637),
+ q(1631),
q(0),
],
q(british sign language) => [
- q(1146),
+ q(1143),
q(0),
],
q(brokkat) => [
- q(1438),
+ q(1434),
q(0),
],
q(brokpake) => [
- q(6013),
+ q(6003),
q(0),
],
q(brokskat) => [
- q(1265),
+ q(1262),
q(0),
],
q(brooke's point palawano) => [
- q(5512),
+ q(5504),
q(0),
],
q(broome pearling lugger pidgin) => [
- q(1386),
+ q(1382),
q(0),
],
q(brunei) => [
- q(3724),
+ q(3720),
q(0),
],
q(brunei bisaya) => [
- q(1451),
+ q(1447),
q(0),
],
q(bu) => [
- q(3097),
+ q(3094),
q(0),
],
q(bu-nao bunu) => [
- q(1567),
+ q(1563),
q(0),
],
q(bua) => [
- q(1498),
+ q(1494),
q(0),
],
q(bualkhaw chin) => [
- q(1674),
+ q(1668),
q(0),
],
q(buamu) => [
- q(1375),
+ q(1371),
q(0),
],
q(bube) => [
- q(1521),
+ q(1517),
q(0),
],
q(bubi) => [
- q(1516),
+ q(1512),
q(0),
],
q(bubia) => [
- q(1063),
+ q(1060),
q(0),
],
q(budeh stieng) => [
- q(6280),
+ q(6271),
q(0),
],
q(budibud) => [
- q(1487),
+ q(1483),
q(0),
],
q(budong-budong) => [
- q(1114),
+ q(1111),
q(0),
],
q(budu) => [
- q(1514),
+ q(1510),
q(0),
],
q(budukh) => [
- q(1101),
+ q(1098),
q(0),
],
q(buduma) => [
- q(1103),
+ q(1100),
q(0),
],
q(budza) => [
- q(1233),
+ q(1230),
q(0),
],
q(bugan) => [
- q(1047),
+ q(1044),
q(0),
],
q(bugawac) => [
- q(1506),
+ q(1502),
q(0),
],
q(bughotu) => [
- q(1181),
+ q(1178),
q(0),
],
q(buginese) => [
@@ -28588,59 +28566,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(buglere) => [
- q(5894),
+ q(5886),
q(0),
],
q(bugun) => [
- q(1169),
+ q(1166),
q(0),
],
q(buhi'non bikol) => [
- q(6864),
+ q(6856),
q(0),
],
q(buhid) => [
- q(1275),
+ q(1272),
q(0),
],
q(buhutu) => [
- q(1577),
+ q(1573),
q(0),
],
q(bukar-sadung bidayuh) => [
- q(5963),
+ q(5954),
q(0),
],
q(bukat) => [
- q(1530),
+ q(1526),
q(0),
],
q(bukharic) => [
- q(1195),
+ q(1192),
q(0),
],
q(bukit malay) => [
- q(1539),
+ q(1535),
q(0),
],
q(bukitan) => [
- q(1268),
+ q(1265),
q(0),
],
q(bukiyip) => [
- q(0839),
+ q(0837),
q(0),
],
q(buksa) => [
- q(6557),
+ q(6548),
q(0),
],
q(bukusu) => [
- q(1580),
+ q(1576),
q(0),
],
q(bukwen) => [
- q(1519),
+ q(1515),
q(0),
],
q(bulgarian) => [
@@ -28648,139 +28626,139 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bulgarian sign language) => [
- q(1413),
+ q(1409),
q(0),
],
q(bulgebi) => [
- q(1320),
+ q(1317),
q(0),
],
q(buli (ghana)) => [
- q(1565),
+ q(1561),
q(0),
],
q(buli (indonesia)) => [
- q(1634),
+ q(1628),
q(0),
],
q(bullom so) => [
- q(1518),
+ q(1514),
q(0),
],
q(bulo stieng) => [
- q(6269),
+ q(6260),
q(0),
],
q(bulu (cameroon)) => [
- q(1507),
+ q(1503),
q(0),
],
q(bulu (papua new guinea)) => [
- q(1243),
+ q(1240),
q(0),
],
q(bum) => [
- q(1326),
+ q(1323),
q(0),
],
q(bumaji) => [
- q(1608),
+ q(1603),
q(0),
],
q(bumang) => [
- q(1535),
+ q(1531),
q(0),
],
q(bumbita arapesh) => [
- q(0829),
+ q(0827),
q(0),
],
q(bumthangkha) => [
- q(3403),
+ q(3401),
q(0),
],
q(bun) => [
- q(1515),
+ q(1511),
q(0),
],
q(buna) => [
- q(1533),
+ q(1529),
q(0),
],
q(bunaba) => [
- q(1076),
+ q(1073),
q(0),
],
q(bunak) => [
- q(1151),
+ q(1148),
q(0),
],
q(bunama) => [
- q(1094),
+ q(1091),
q(0),
],
q(bundeli) => [
- q(1348),
+ q(1344),
q(0),
],
q(bung) => [
- q(1404),
+ q(1400),
q(0),
],
q(bungain) => [
- q(1513),
+ q(1509),
q(0),
],
q(bunganditj) => [
- q(7304),
+ q(7296),
q(0),
],
q(bungku) => [
- q(1280),
+ q(1277),
q(0),
],
q(bungu) => [
- q(7260),
+ q(7251),
q(0),
],
q(bunoge dogon) => [
- q(2009),
+ q(2004),
q(0),
],
q(bunun) => [
- q(1343),
+ q(1339),
q(0),
],
q(buol) => [
- q(1285),
+ q(1282),
q(0),
],
q(bura-pabir) => [
- q(1562),
+ q(1558),
q(0),
],
q(burak) => [
- q(1611),
+ q(1606),
q(0),
],
q(buraka) => [
- q(1261),
+ q(1258),
q(0),
],
q(burarra) => [
- q(1537),
+ q(1533),
q(0),
],
q(burate) => [
- q(1481),
+ q(1477),
q(0),
],
q(burduna) => [
- q(1583),
+ q(1579),
q(0),
],
q(bure) => [
- q(1527),
+ q(1523),
q(0),
],
q(buriat) => [
@@ -28788,11 +28766,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(burji) => [
- q(1240),
+ q(1237),
q(0),
],
q(burmbar) => [
- q(7055),
+ q(7046),
q(0),
],
q(burmese) => [
@@ -28800,191 +28778,187 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(burmeso) => [
- q(1638),
+ q(1632),
q(0),
],
q(buru (indonesia)) => [
- q(4300),
+ q(4291),
q(0),
],
q(buru (nigeria)) => [
- q(1422),
+ q(1418),
q(0),
],
q(burui) => [
- q(1448),
+ q(1444),
q(0),
],
q(burumakok) => [
- q(0707),
+ q(0705),
q(0),
],
q(burun) => [
- q(1099),
+ q(1096),
q(0),
],
q(burunge) => [
- q(1109),
+ q(1106),
q(0),
],
q(burushaski) => [
- q(1459),
+ q(1455),
q(0),
],
q(burusu) => [
- q(1417),
+ q(1413),
q(0),
],
q(buruwai) => [
- q(0894),
+ q(0893),
q(0),
],
q(busa) => [
- q(1415),
+ q(1411),
q(0),
],
q(busam) => [
- q(1588),
+ q(1584),
q(0),
],
q(busami) => [
- q(1461),
+ q(1457),
q(0),
],
q(busang kayan) => [
- q(1144),
+ q(1141),
q(0),
],
q(bushi) => [
- q(1499),
+ q(1495),
q(0),
],
q(bushoong) => [
- q(1502),
+ q(1498),
q(0),
],
q(businenge tongo) => [
- q(2070),
+ q(2065),
q(1),
],
q(buso) => [
- q(1463),
+ q(1459),
q(0),
],
q(busoa) => [
- q(1510),
+ q(1506),
q(0),
],
q(bussa) => [
- q(2134),
+ q(2129),
q(0),
],
q(busuu) => [
- q(1251),
+ q(1248),
q(0),
],
q(butbut kalinga) => [
- q(3747),
+ q(3742),
q(0),
],
q(butmas-tur) => [
- q(1347),
+ q(1343),
q(0),
],
q(butuanon) => [
- q(1494),
+ q(1490),
q(0),
],
q(buwal) => [
- q(1204),
+ q(1201),
q(0),
],
q(buxinhua) => [
- q(1172),
+ q(1169),
q(1),
],
- q(buya) => [
- q(1616),
- q(0),
- ],
q(buyu) => [
- q(1602),
+ q(1597),
q(0),
],
q(buyuan jinuo) => [
- q(3109),
+ q(3106),
q(0),
],
q(bwa) => [
- q(1566),
+ q(1562),
q(0),
],
q(bwaidoka) => [
- q(1548),
+ q(1544),
q(0),
],
q(bwanabwana) => [
- q(6747),
+ q(6738),
q(0),
],
q(bwatoo) => [
- q(1545),
+ q(1541),
q(0),
],
q(bwe karen) => [
- q(1549),
+ q(1545),
q(0),
],
q(bwela) => [
- q(1556),
+ q(1552),
q(0),
],
q(bwile) => [
- q(1547),
+ q(1543),
q(0),
],
q(bwisi) => [
- q(1569),
+ q(1565),
q(0),
],
q(byangsi) => [
- q(1121),
+ q(1118),
q(0),
],
q(byep) => [
- q(4360),
+ q(4351),
q(0),
],
q(c'lela) => [
- q(2143),
+ q(2138),
q(0),
],
q(caac) => [
- q(4554),
+ q(4545),
q(0),
],
q(cabecar) => [
- q(1755),
+ q(1750),
q(0),
],
q(cabiyari) => [
- q(1665),
+ q(1659),
q(0),
],
q(cacaloxtepec mixtec) => [
- q(4324),
+ q(4315),
q(0),
],
q(cacaopera) => [
- q(1695),
+ q(1690),
q(0),
],
q(cacgia roglai) => [
- q(5846),
+ q(5837),
q(0),
],
q(cacua) => [
- q(1681),
+ q(1676),
q(0),
],
q(caddo) => [
@@ -28996,207 +28970,215 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cafundo creole) => [
- q(1686),
+ q(1681),
q(0),
],
q(cagua) => [
- q(1670),
+ q(1664),
q(0),
],
q(cahuarano) => [
- q(1650),
+ q(1644),
q(0),
],
q(cahuilla) => [
- q(1728),
+ q(1723),
+ q(0),
+ ],
+ q(cahungwarya) => [
+ q(4734),
q(0),
],
q(cajamarca quechua) => [
- q(5709),
+ q(5700),
q(0),
],
q(cajatambo north lima quechua) => [
- q(5714),
+ q(5705),
q(0),
],
q(cajonos zapotec) => [
- q(7817),
+ q(7806),
q(0),
],
q(cajun french) => [
- q(2374),
+ q(2370),
q(0),
],
q(caka) => [
- q(1770),
+ q(1765),
q(0),
],
q(cakchiquel) => [
- q(1652),
+ q(1646),
q(1),
],
q(cakchiquel-quiche mixed language) => [
- q(1772),
+ q(1767),
q(0),
],
q(cakfem-mushere) => [
- q(1771),
+ q(1766),
q(0),
],
q(calamian tagbanwa) => [
- q(6397),
+ q(6389),
q(0),
],
q(calderon highland quichua) => [
- q(5690),
+ q(5681),
q(0),
],
q(callawalla) => [
- q(1661),
+ q(1655),
q(0),
],
q(calo) => [
- q(5828),
+ q(5819),
q(0),
],
q(caluyanun) => [
- q(1785),
+ q(1780),
q(0),
],
q(cameroon mambila) => [
- q(4180),
+ q(4172),
q(0),
],
q(cameroon pidgin) => [
- q(7119),
+ q(7110),
q(0),
],
q(camling) => [
- q(5745),
+ q(5736),
q(0),
],
q(campalagian) => [
- q(1792),
+ q(1787),
q(0),
],
q(campidanese sardinian) => [
- q(6228),
+ q(6219),
q(0),
],
q(camsa) => [
- q(3192),
+ q(3189),
q(0),
],
q(camtho) => [
- q(1798),
+ q(1793),
q(0),
],
q(camunic) => [
- q(7316),
+ q(7308),
q(0),
],
q(canar highland quichua) => [
- q(5737),
+ q(5728),
q(0),
],
q(candoshi-shapra) => [
- q(1680),
+ q(1675),
q(0),
],
q(canela) => [
- q(5754),
+ q(5745),
q(0),
],
q(canichana) => [
- q(1664),
+ q(1658),
q(0),
],
+ q(cantonese) => [
+ q(7764),
+ q(1),
+ ],
q(cao lan) => [
- q(4378),
+ q(4369),
q(0),
],
q(cao miao) => [
- q(1830),
+ q(1825),
q(0),
],
q(capanahua) => [
- q(3182),
+ q(3180),
q(0),
],
q(capiznon) => [
- q(1842),
+ q(1837),
q(0),
],
q(cappadocian greek) => [
- q(1838),
+ q(1833),
q(0),
],
q(caquinte) => [
- q(1828),
+ q(1823),
q(0),
],
q(car nicobarese) => [
- q(1658),
+ q(1652),
q(0),
],
q(cara) => [
- q(1716),
+ q(1711),
q(0),
],
q(carabayo) => [
- q(1683),
+ q(1678),
q(0),
],
q(caramanta) => [
- q(1852),
+ q(1847),
q(0),
],
q(carapana) => [
- q(1666),
+ q(1660),
q(0),
],
q(carian) => [
- q(7324),
+ q(7316),
q(0),
],
q(caribbean hindustani) => [
- q(2811),
+ q(2808),
q(0),
],
q(caribbean javanese) => [
- q(3167),
+ q(3165),
q(0),
],
q(carijona) => [
- q(1667),
+ q(1661),
q(0),
],
q(carolina algonquian) => [
- q(1862),
+ q(1857),
q(0),
],
q(carolinian) => [
- q(1653),
+ q(1647),
q(0),
],
q(carpathian romani) => [
- q(5815),
+ q(5806),
q(0),
],
q(carrier) => [
- q(1867),
+ q(1862),
q(0),
],
q(cashibo-cacataibo) => [
- q(1677),
+ q(1672),
q(0),
],
q(cashinahua) => [
- q(1678),
+ q(1673),
q(0),
],
q(casiguran dumagat agta) => [
- q(2010),
+ q(2005),
q(0),
],
q(castilian) => [
@@ -29204,7 +29186,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(casuarina coast asmat) => [
- q(0888),
+ q(0887),
q(0),
],
q(catalan) => [
@@ -29212,15 +29194,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(catalan sign language) => [
- q(1871),
+ q(1866),
q(0),
],
q(catawba) => [
- q(1723),
+ q(1718),
q(0),
],
q(cauca) => [
- q(1684),
+ q(1679),
q(0),
],
q(caucasian languages) => [
@@ -29228,23 +29210,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cavinena) => [
- q(1660),
+ q(1654),
q(0),
],
q(cayubaba) => [
- q(1935),
+ q(1930),
q(0),
],
q(cayuga) => [
- q(1663),
+ q(1657),
q(0),
],
q(cayuse) => [
- q(7329),
+ q(7321),
q(0),
],
q(cebaara senoufo) => [
- q(5976),
+ q(5967),
q(0),
],
q(cebuano) => [
@@ -29252,7 +29234,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(celtiberian) => [
- q(7317),
+ q(7309),
q(0),
],
q(celtic languages) => [
@@ -29260,11 +29242,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cemuhi) => [
- q(1654),
+ q(1648),
q(0),
],
q(cen) => [
- q(1713),
+ q(1708),
q(0),
],
q(central american indian languages) => [
@@ -29272,67 +29254,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(central asmat) => [
- q(1808),
+ q(1803),
q(0),
],
q(central atlas tamazight) => [
- q(6855),
+ q(6847),
q(0),
],
q(central awyu) => [
- q(0982),
+ q(0979),
q(0),
],
q(central aymara) => [
- q(1008),
+ q(1005),
q(0),
],
q(central bai) => [
- q(1066),
+ q(1063),
q(0),
],
q(central berawan) => [
- q(7838),
+ q(7827),
q(0),
],
q(central bikol) => [
- q(1077),
+ q(1074),
q(0),
],
q(central bontok) => [
- q(3825),
+ q(3820),
q(0),
],
q(central cagayan agta) => [
- q(0672),
+ q(0670),
q(0),
],
q(central dusun) => [
- q(2168),
+ q(2163),
q(0),
],
q(central grebo) => [
- q(2629),
+ q(2627),
q(0),
],
q(central hongshuihe zhuang) => [
- q(7843),
+ q(7832),
q(0),
],
q(central huasteca nahuatl) => [
- q(4778),
+ q(4768),
q(0),
],
q(central huishui hmong) => [
- q(2782),
+ q(2779),
q(0),
],
q(central huishui miao) => [
- q(2782),
+ q(2779),
q(1),
],
q(central kanuri) => [
- q(3483),
+ q(3481),
q(0),
],
q(central khmer) => [
@@ -29340,19 +29322,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(central kurdish) => [
- q(1759),
+ q(1754),
q(0),
],
q(central lalo) => [
- q(7800),
+ q(7789),
q(1),
],
q(central maewo) => [
- q(4645),
+ q(4635),
q(0),
],
q(central malay) => [
- q(5620),
+ q(5611),
q(0),
],
q(central malayo-polynesian languages) => [
@@ -29360,79 +29342,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(central masela) => [
- q(4681),
+ q(4671),
q(0),
],
q(central mashan hmong) => [
- q(2792),
+ q(2789),
q(0),
],
q(central mashan miao) => [
- q(2792),
+ q(2789),
q(1),
],
q(central mazahua) => [
- q(4134),
+ q(4126),
q(0),
],
q(central melanau) => [
- q(4219),
+ q(4211),
q(0),
],
q(central mnong) => [
- q(1795),
+ q(1790),
q(0),
],
q(central nahuatl) => [
- q(4880),
+ q(4870),
q(0),
],
q(central nicobarese) => [
- q(4772),
+ q(4762),
q(0),
],
q(central ojibwa) => [
- q(5227),
+ q(5218),
q(0),
],
q(central okinawan) => [
- q(5892),
+ q(5884),
q(0),
],
q(central palawano) => [
- q(5495),
+ q(5487),
q(0),
],
q(central pame) => [
- q(5384),
+ q(5375),
q(0),
],
q(central pashto) => [
- q(5632),
+ q(5623),
q(0),
],
q(central pomo) => [
- q(5571),
+ q(5562),
q(0),
],
q(central puebla nahuatl) => [
- q(4791),
+ q(4781),
q(0),
],
q(central sama) => [
- q(6132),
+ q(6122),
q(0),
],
q(central siberian yupik) => [
- q(2304),
+ q(2299),
q(0),
],
q(central sierra miwok) => [
- q(1881),
+ q(1876),
q(0),
],
q(central subanen) => [
- q(6344),
+ q(6335),
q(0),
],
q(central sudanic languages) => [
@@ -29440,51 +29422,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(central tagbanwa) => [
- q(6497),
+ q(6489),
q(0),
],
q(central tarahumara) => [
- q(6379),
+ q(6371),
q(0),
],
q(central tunebo) => [
- q(6773),
+ q(6764),
q(0),
],
q(central yupik) => [
- q(2305),
+ q(2300),
q(0),
],
q(central-eastern niger fulfulde) => [
- q(2393),
+ q(2389),
q(0),
],
q(centuum) => [
- q(1714),
+ q(1709),
q(0),
],
q(cerma) => [
- q(1789),
+ q(1784),
+ q(0),
+ ],
+ q(chabu) => [
+ q(5906),
q(0),
],
q(chachapoyas quechua) => [
- q(5695),
+ q(5686),
q(0),
],
q(chachi) => [
- q(1671),
+ q(1665),
q(0),
],
q(chacobo) => [
- q(1656),
+ q(1650),
q(0),
],
q(chadian arabic) => [
- q(6037),
+ q(6027),
q(0),
],
q(chadian sign language) => [
- q(1707),
+ q(1702),
q(0),
],
q(chadic languages) => [
@@ -29492,7 +29478,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chadong) => [
- q(1708),
+ q(1703),
q(0),
],
q(chagatai) => [
@@ -29500,51 +29486,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chaima) => [
- q(1746),
+ q(1741),
q(0),
],
q(chak) => [
- q(1760),
+ q(1755),
q(0),
],
q(chakali) => [
- q(1778),
+ q(1773),
q(0),
],
q(chakma) => [
- q(1694),
+ q(1689),
q(0),
],
q(chala) => [
- q(1781),
+ q(1776),
q(0),
],
q(chaldean neo-aramaic) => [
- q(1775),
+ q(1770),
q(0),
],
q(chalikha) => [
- q(6487),
+ q(6479),
q(0),
],
q(chamacoco) => [
- q(1711),
+ q(1706),
q(0),
],
q(chamalal) => [
- q(1750),
+ q(1745),
q(0),
],
q(chamari) => [
- q(1699),
+ q(1694),
q(0),
],
q(chambeali) => [
- q(1700),
+ q(1695),
q(0),
],
q(chambri) => [
- q(1655),
+ q(1649),
q(0),
],
q(chamic languages) => [
@@ -29552,7 +29538,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chamicuro) => [
- q(1685),
+ q(1680),
q(0),
],
q(chamorro) => [
@@ -29560,55 +29546,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chane) => [
- q(1651),
+ q(1645),
q(0),
],
q(chang naga) => [
- q(4751),
+ q(4741),
q(0),
],
q(changriwa) => [
- q(1719),
+ q(1714),
q(0),
],
q(changthang) => [
- q(1799),
+ q(1794),
q(0),
],
q(chantyal) => [
- q(1732),
+ q(1727),
q(0),
],
q(chara) => [
- q(1848),
+ q(1843),
q(0),
],
q(chaudangsi) => [
- q(1704),
+ q(1699),
q(0),
],
q(chaura) => [
- q(1865),
+ q(1860),
q(0),
],
q(chavacano) => [
- q(1673),
+ q(1667),
q(0),
],
q(chayahuita) => [
- q(1679),
+ q(1674),
q(0),
],
q(chayuco mixtec) => [
- q(4313),
+ q(4304),
q(0),
],
q(chazumba mixtec) => [
- q(7515),
+ q(7507),
q(0),
],
q(che) => [
- q(5876),
+ q(5868),
q(0),
],
q(chechen) => [
@@ -29616,39 +29602,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cheke holo) => [
- q(4526),
+ q(4517),
q(0),
],
q(chemakum) => [
- q(7319),
+ q(7311),
q(0),
],
q(chenapian) => [
- q(1753),
+ q(1748),
q(0),
],
q(chenchu) => [
- q(1697),
+ q(1692),
q(0),
],
q(chenoua) => [
- q(1810),
+ q(1805),
q(0),
],
q(chepang) => [
- q(1703),
+ q(1698),
q(0),
],
q(chepya) => [
- q(7622),
+ q(7614),
q(0),
],
q(cheq wong) => [
- q(1932),
+ q(1927),
q(1),
],
q(cherepon) => [
- q(1840),
+ q(1835),
q(0),
],
q(cherokee) => [
@@ -29656,11 +29642,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chesu) => [
- q(7619),
+ q(7611),
q(0),
],
q(chetco) => [
- q(1893),
+ q(1888),
q(0),
],
q(chewa) => [
@@ -29668,7 +29654,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(chewong) => [
- q(1932),
+ q(1927),
q(0),
],
q(cheyenne) => [
@@ -29676,23 +29662,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chhattisgarhi) => [
- q(2805),
+ q(2802),
q(0),
],
q(chhintange) => [
- q(1900),
+ q(1895),
q(0),
],
q(chhulung) => [
- q(1920),
+ q(1915),
q(0),
],
q(chiangmai sign language) => [
- q(1872),
+ q(1867),
q(0),
],
q(chiapanec) => [
- q(1743),
+ q(1738),
q(0),
],
q(chibcha) => [
@@ -29704,7 +29690,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chicahuaxtla triqui) => [
- q(6712),
+ q(6704),
q(0),
],
q(chichewa) => [
@@ -29712,95 +29698,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chichicapan zapotec) => [
- q(7944),
+ q(7933),
q(0),
],
q(chichimeca-jonaz) => [
- q(5419),
+ q(5410),
q(0),
],
q(chichonyi-chidzihana-chikauma) => [
- q(1820),
+ q(1815),
q(1),
],
q(chickasaw) => [
- q(1736),
+ q(1731),
q(0),
],
q(chicomuceltec) => [
- q(1814),
+ q(1809),
q(0),
],
q(chidigo) => [
- q(2044),
+ q(2039),
q(1),
],
q(chiduruma) => [
- q(2179),
+ q(2174),
q(1),
],
q(chiga) => [
- q(1721),
+ q(1716),
q(0),
],
q(chigmecatitlan mixtec) => [
- q(4314),
+ q(4305),
q(0),
],
q(chilcotin) => [
- q(1774),
+ q(1769),
q(0),
],
q(chilean quechua) => [
- q(1847),
+ q(1842),
q(0),
],
q(chilean sign language) => [
- q(1875),
+ q(1870),
q(0),
],
q(chilisso) => [
- q(1777),
+ q(1772),
q(0),
],
q(chiltepec chinantec) => [
- q(1870),
+ q(1865),
q(0),
],
q(chimakum) => [
- q(7319),
+ q(7311),
q(1),
],
q(chimalapa zoque) => [
- q(7917),
+ q(7906),
q(0),
],
q(chimariko) => [
- q(1737),
+ q(1732),
q(0),
],
q(chimborazo highland quichua) => [
- q(5692),
+ q(5683),
q(0),
],
q(chimila) => [
- q(1669),
+ q(1663),
q(0),
],
q(china buriat) => [
- q(1589),
+ q(1585),
q(0),
],
q(chinali) => [
- q(1739),
+ q(1734),
q(0),
],
q(chinbon chin) => [
- q(1800),
+ q(1795),
q(0),
],
q(chincha quechua) => [
- q(5730),
+ q(5721),
q(0),
],
q(chinese) => [
@@ -29812,15 +29798,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chinese pidgin english) => [
- q(1839),
+ q(1834),
q(0),
],
q(chinese sign language) => [
- q(1880),
+ q(1875),
q(0),
],
+ q(chini) => [
+ q(0643),
+ q(1),
+ ],
q(chinook) => [
- q(1726),
+ q(1721),
q(0),
],
q(chinook jargon) => [
@@ -29828,7 +29818,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chipaya) => [
- q(1657),
+ q(1651),
q(0),
],
q(chipewyan) => [
@@ -29836,59 +29826,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chipiajes) => [
- q(1668),
+ q(1662),
q(0),
],
q(chippewa) => [
- q(1745),
+ q(1740),
q(0),
],
q(chiquian ancash quechua) => [
- q(5729),
+ q(5720),
q(0),
],
q(chiquihuitlan mazatec) => [
- q(4128),
+ q(4120),
q(0),
],
q(chiquitano) => [
- q(1662),
+ q(1656),
q(0),
],
q(chiripa) => [
- q(4872),
+ q(4862),
q(0),
],
q(chiru) => [
- q(1698),
+ q(1693),
q(0),
],
q(chitimacha) => [
- q(1899),
+ q(1894),
q(0),
],
q(chitkuli kinnauri) => [
- q(1740),
+ q(1735),
q(0),
],
q(chittagonian) => [
- q(1896),
+ q(1891),
q(0),
],
q(chitwania tharu) => [
- q(6506),
+ q(6498),
q(0),
],
q(choapan zapotec) => [
- q(7925),
+ q(7914),
q(0),
],
q(chocangacakha) => [
- q(1722),
+ q(1717),
q(0),
],
q(chochotec) => [
- q(1834),
+ q(1829),
q(0),
],
q(choctaw) => [
@@ -29896,59 +29886,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chodri) => [
- q(1701),
+ q(1696),
q(0),
],
q(chokri naga) => [
- q(5064),
+ q(5054),
q(0),
],
q(chokwe) => [
- q(1751),
+ q(1746),
q(0),
],
q(chol) => [
- q(1905),
+ q(1900),
q(0),
],
q(cholon) => [
- q(1730),
+ q(1725),
q(0),
],
q(chong) => [
- q(1819),
+ q(1814),
q(0),
],
q(choni) => [
- q(1696),
+ q(1691),
q(0),
],
q(chonyi-dzihana-kauma) => [
- q(1820),
+ q(1815),
q(0),
],
q(chopi) => [
- q(1687),
+ q(1682),
q(0),
],
q(chorasmian) => [
- q(7323),
+ q(7315),
q(0),
],
q(chorti) => [
- q(1644),
+ q(1638),
q(0),
],
q(chothe naga) => [
- q(4789),
+ q(4779),
q(0),
],
q(chrau) => [
- q(1866),
+ q(1861),
q(0),
],
q(chru) => [
- q(1748),
+ q(1743),
q(0),
],
q(chuang) => [
@@ -29956,43 +29946,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(chuanqiandian cluster miao) => [
- q(1846),
+ q(1841),
q(0),
],
q(chuave) => [
- q(1757),
+ q(1752),
q(0),
],
q(chug) => [
- q(1926),
+ q(1921),
q(0),
],
q(chuj) => [
- q(1646),
+ q(1640),
q(0),
],
q(chuka) => [
- q(1911),
+ q(1906),
q(0),
],
q(chukot) => [
- q(1767),
+ q(1762),
q(0),
],
q(chukwa) => [
- q(1924),
+ q(1919),
q(0),
],
q(chulym) => [
- q(1786),
+ q(1781),
q(0),
],
q(chumburung) => [
- q(4790),
+ q(4780),
q(0),
],
q(churahi) => [
- q(1702),
+ q(1697),
q(0),
],
q(church slavic) => [
@@ -30004,7 +29994,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(chut) => [
- q(5936),
+ q(5927),
q(0),
],
q(chuukese) => [
@@ -30012,7 +30002,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chuvantsy) => [
- q(7327),
+ q(7319),
q(0),
],
q(chuvash) => [
@@ -30020,75 +30010,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chuwabu) => [
- q(1731),
+ q(1726),
q(0),
],
q(ci gbe) => [
- q(1735),
+ q(1730),
q(0),
],
q(cia-cia) => [
- q(1734),
+ q(1729),
q(0),
],
q(cibak) => [
- q(1761),
+ q(1756),
q(0),
],
q(cicipu) => [
- q(0970),
+ q(0967),
q(0),
],
q(cimbrian) => [
- q(1741),
+ q(1736),
q(0),
],
q(cinda-regi-tiyal) => [
- q(1706),
+ q(1701),
q(0),
],
q(cineni) => [
- q(1738),
+ q(1733),
q(0),
],
q(cinta larga) => [
- q(1742),
+ q(1737),
q(0),
],
q(cisalpine gaulish) => [
- q(7318),
+ q(7310),
q(0),
],
q(cishingini) => [
- q(0892),
+ q(0891),
q(0),
],
q(citak) => [
- q(6833),
+ q(6825),
q(0),
],
q(ciwogai) => [
- q(6485),
+ q(6477),
q(0),
],
q(clallam) => [
- q(1782),
+ q(1777),
q(0),
],
q(classical armenian) => [
- q(7320),
+ q(7312),
q(0),
],
q(classical mandaic) => [
- q(4702),
+ q(4692),
q(0),
],
q(classical mongolian) => [
- q(1790),
+ q(1785),
q(0),
],
q(classical nahuatl) => [
- q(4779),
+ q(4769),
q(0),
],
q(classical nepal bhasa) => [
@@ -30100,7 +30090,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(classical quechua) => [
- q(5724),
+ q(5715),
q(0),
],
q(classical syriac) => [
@@ -30108,119 +30098,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(classical tibetan) => [
- q(7325),
+ q(7317),
q(0),
],
q(coahuilteco) => [
- q(7328),
+ q(7320),
q(0),
],
q(coast miwok) => [
- q(1877),
+ q(1872),
q(0),
],
q(coastal kadazan) => [
- q(3780),
+ q(3775),
q(0),
],
q(coastal konjo) => [
- q(3382),
+ q(3379),
q(0),
],
q(coatecas altas zapotec) => [
- q(7842),
+ q(7831),
q(0),
],
q(coatepec nahuatl) => [
- q(4748),
+ q(4738),
q(0),
],
q(coatlan mixe) => [
- q(4174),
+ q(4166),
q(0),
],
q(coatlan zapotec) => [
- q(7941),
+ q(7930),
q(0),
],
q(coatzospan mixtec) => [
- q(4328),
+ q(4319),
q(0),
],
q(cocama-cocamilla) => [
- q(1816),
+ q(1811),
q(0),
],
q(cochimi) => [
- q(1821),
+ q(1816),
q(0),
],
q(cocopa) => [
- q(1815),
+ q(1810),
q(0),
],
q(cocos islands malay) => [
- q(1813),
+ q(1808),
q(0),
],
q(coeur d'alene) => [
- q(1851),
+ q(1846),
q(0),
],
q(cofan) => [
- q(1825),
+ q(1820),
q(0),
],
q(cogui) => [
- q(3511),
+ q(3509),
q(0),
],
q(col) => [
- q(3934),
+ q(3927),
q(0),
],
q(colombian sign language) => [
- q(1882),
+ q(1877),
q(0),
],
q(colonia tovar german) => [
- q(2454),
+ q(2450),
q(0),
],
q(colorado) => [
- q(1818),
+ q(1813),
q(0),
],
q(columbia-wenatchi) => [
- q(1823),
+ q(1818),
q(0),
],
q(comaltepec chinantec) => [
- q(1693),
+ q(1688),
q(0),
],
q(comanche) => [
- q(1824),
+ q(1819),
q(0),
],
q(comecrudo) => [
- q(7321),
+ q(7313),
q(0),
],
q(como karim) => [
- q(1717),
+ q(1712),
q(0),
],
q(comox) => [
- q(1826),
+ q(1821),
q(0),
],
q(con) => [
- q(1807),
+ q(1802),
q(0),
],
q(congo swahili) => [
- q(6309),
+ q(6300),
q(0),
],
q(cook islands maori) => [
@@ -30228,19 +30218,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(coong) => [
- q(1801),
+ q(1796),
q(0),
],
q(coos) => [
- q(1891),
+ q(1886),
q(0),
],
q(copainala zoque) => [
- q(7916),
+ q(7905),
q(0),
],
q(copala triqui) => [
- q(6697),
+ q(6689),
q(0),
],
q(coptic) => [
@@ -30248,11 +30238,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(coquille) => [
- q(1827),
+ q(1822),
q(0),
],
q(cori) => [
- q(1868),
+ q(1863),
q(0),
],
q(cornish) => [
@@ -30260,7 +30250,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(corongo ancash quechua) => [
- q(5723),
+ q(5714),
q(0),
],
q(corsican) => [
@@ -30268,35 +30258,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(costa rican sign language) => [
- q(1885),
+ q(1880),
q(0),
],
q(cotabato manobo) => [
- q(4563),
+ q(4554),
q(0),
],
q(cotoname) => [
- q(7322),
+ q(7314),
q(0),
],
q(cowlitz) => [
- q(1831),
+ q(1826),
q(0),
],
q(coxima) => [
- q(3523),
+ q(3520),
q(0),
],
q(coyaima) => [
- q(1833),
+ q(1828),
q(0),
],
q(coyotepec popoloca) => [
- q(5375),
+ q(5366),
q(0),
],
q(coyutla totonac) => [
- q(6643),
+ q(6635),
q(0),
],
q(cree) => [
@@ -30348,7 +30338,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(croatia sign language) => [
- q(1884),
+ q(1879),
q(0),
],
q(croatian) => [
@@ -30356,75 +30346,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cross river mbembe) => [
- q(4245),
+ q(4237),
q(0),
],
q(crow) => [
- q(1860),
+ q(1855),
q(0),
],
q(cruzeno) => [
- q(1869),
+ q(1864),
q(0),
],
q(cua) => [
- q(1907),
+ q(1902),
q(0),
],
+ q(cuba) => [
+ q(1671),
+ q(1),
+ ],
q(cuba sign language) => [
- q(1874),
+ q(1869),
q(0),
],
q(cubeo) => [
- q(1908),
+ q(1903),
q(0),
],
q(cuiba) => [
- q(1912),
+ q(1907),
q(0),
],
q(culina) => [
- q(1915),
+ q(1910),
q(0),
],
q(cumanagoto) => [
- q(1917),
+ q(1912),
q(0),
],
q(cumbric) => [
- q(7315),
+ q(7307),
q(0),
],
q(cumeral) => [
- q(1916),
+ q(1911),
q(0),
],
q(cun) => [
- q(1919),
+ q(1914),
q(0),
],
q(cuneiform luwian) => [
- q(7411),
+ q(7404),
q(0),
],
q(cung) => [
- q(1910),
+ q(1905),
q(0),
],
q(cupeno) => [
- q(1918),
+ q(1913),
q(0),
],
q(curonian) => [
- q(7326),
+ q(7318),
q(0),
],
q(curripaco) => [
- q(3528),
+ q(3525),
q(0),
],
q(cusco quechua) => [
- q(5707),
+ q(5698),
q(0),
],
q(cushitic languages) => [
@@ -30432,27 +30426,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cutchi-swahili) => [
- q(1691),
+ q(1686),
q(0),
],
q(cuvok) => [
- q(1923),
+ q(1918),
q(0),
],
q(cuyamecalco mixtec) => [
- q(7532),
+ q(7524),
q(0),
],
q(cuyonon) => [
- q(1936),
+ q(1931),
q(0),
],
q(cwi bwamu) => [
- q(1568),
+ q(1564),
q(0),
],
q(cypriot arabic) => [
- q(0603),
+ q(0602),
q(0),
],
q(czech) => [
@@ -30460,111 +30454,111 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(czech sign language) => [
- q(1873),
+ q(1868),
q(0),
],
q(da'a kaili) => [
- q(3777),
+ q(3772),
q(0),
],
q(da-hua miao) => [
- q(2783),
+ q(2780),
q(2),
],
q(daai chin) => [
- q(1952),
+ q(1947),
q(0),
],
q(daakaka) => [
- q(1378),
+ q(1374),
q(0),
],
q(daantanai') => [
- q(4011),
+ q(4003),
q(0),
],
q(daasanach) => [
- q(2154),
+ q(2149),
q(0),
],
q(daba) => [
- q(1973),
+ q(1968),
q(0),
],
q(dabarre) => [
- q(1974),
+ q(1969),
q(0),
],
q(dabe) => [
- q(1963),
+ q(1958),
q(0),
],
q(dacian) => [
- q(7331),
+ q(7323),
q(0),
],
q(dadi dadi) => [
- q(1982),
+ q(1977),
q(0),
],
q(dadibi) => [
- q(4481),
+ q(4472),
q(0),
],
q(dadiya) => [
- q(1962),
+ q(1957),
q(0),
],
q(daga) => [
- q(2025),
+ q(2020),
q(0),
],
q(dagaari dioula) => [
- q(2011),
+ q(2006),
q(0),
],
q(dagba) => [
- q(2016),
+ q(2011),
q(0),
],
q(dagbani) => [
- q(1946),
+ q(1941),
q(0),
],
q(dagik) => [
- q(1993),
+ q(1988),
q(0),
],
q(dagoman) => [
- q(2018),
+ q(2013),
q(0),
],
q(dahalik) => [
- q(2083),
+ q(2078),
q(0),
],
q(dahalo) => [
- q(1950),
+ q(1945),
q(0),
],
q(daho-doo) => [
- q(1954),
+ q(1949),
q(0),
],
q(dai) => [
- q(2047),
+ q(2042),
q(0),
],
q(dai zhuang) => [
- q(7854),
+ q(7843),
q(0),
],
q(dair) => [
- q(2138),
+ q(2133),
q(0),
],
q(dakka) => [
- q(2078),
+ q(2073),
q(0),
],
q(dakota) => [
@@ -30572,67 +30566,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dakpakha) => [
- q(2077),
+ q(2072),
q(0),
],
q(dalabon) => [
- q(4853),
+ q(4843),
q(0),
],
q(dalmatian) => [
- q(2084),
+ q(2079),
q(0),
],
q(daloa bete) => [
- q(1133),
+ q(1130),
q(0),
],
q(dama) => [
- q(2094),
+ q(2089),
q(0),
],
q(damakawa) => [
- q(1951),
+ q(1946),
q(0),
],
q(damal) => [
- q(6883),
+ q(6875),
q(0),
],
q(dambi) => [
- q(1943),
+ q(1938),
q(0),
],
q(dameli) => [
- q(2093),
+ q(2088),
q(0),
],
q(dampelas) => [
- q(2097),
+ q(2092),
q(0),
],
q(dan) => [
- q(2108),
+ q(2103),
q(0),
],
q(danaru) => [
- q(2111),
+ q(2106),
q(0),
],
q(danau) => [
- q(2113),
+ q(2108),
q(0),
],
q(dandami maria) => [
- q(1953),
+ q(1948),
q(0),
],
q(dangaleat) => [
- q(1942),
+ q(1937),
q(0),
],
q(dangaura tharu) => [
- q(6511),
+ q(6503),
q(0),
],
q(danish) => [
@@ -30640,43 +30634,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(danish sign language) => [
- q(2156),
+ q(2151),
q(0),
],
q(dano) => [
- q(0899),
+ q(0898),
q(0),
],
q(danu) => [
- q(2114),
+ q(2109),
q(0),
],
q(dao) => [
- q(1959),
+ q(1954),
q(0),
],
q(daonda) => [
- q(2104),
+ q(2099),
q(0),
],
q(dar daju daju) => [
- q(2064),
+ q(2059),
q(0),
],
q(dar fur daju) => [
- q(1949),
+ q(1944),
q(0),
],
q(dar sila daju) => [
- q(1955),
+ q(1950),
q(0),
],
q(darai) => [
- q(2152),
+ q(2147),
q(0),
],
q(darang deng) => [
- q(4302),
+ q(4293),
q(1),
],
q(dargwa) => [
@@ -30684,131 +30678,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dari) => [
- q(5610),
+ q(5601),
q(0),
],
q(darkinyung) => [
- q(7330),
+ q(7322),
q(0),
],
q(darlong) => [
- q(2085),
+ q(2080),
q(0),
],
q(darmiya) => [
- q(2140),
+ q(2135),
q(0),
],
q(daro-matu melanau) => [
- q(2146),
+ q(2141),
q(0),
],
q(dass) => [
- q(2131),
+ q(2126),
q(0),
],
q(datooga) => [
- q(6414),
+ q(6406),
q(0),
],
q(daungwurrung) => [
- q(2023),
+ q(2018),
q(0),
],
q(daur) => [
- q(2160),
+ q(2155),
q(0),
],
q(davawenyo) => [
- q(1957),
+ q(1952),
q(0),
],
q(daw) => [
- q(3695),
+ q(3692),
q(0),
],
q(dawawa) => [
- q(2201),
+ q(2196),
q(0),
],
q(dawera-daweloor) => [
- q(1992),
+ q(1987),
q(0),
],
q(dawida) => [
- q(1956),
+ q(1951),
q(1),
],
q(dawro) => [
- q(2199),
+ q(2194),
q(0),
],
q(day) => [
- q(1948),
+ q(1943),
q(0),
],
q(dayi) => [
- q(1958),
- q(0),
- ],
- q(daza) => [
- q(2212),
+ q(1953),
q(0),
],
q(dazaga) => [
- q(2214),
+ q(2208),
q(0),
],
q(deccan) => [
- q(1980),
+ q(1975),
q(0),
],
q(dedua) => [
- q(1994),
+ q(1989),
q(0),
],
q(defaka) => [
- q(0647),
+ q(0645),
q(0),
],
q(defi gbe) => [
- q(2429),
+ q(2425),
q(0),
],
q(deg) => [
- q(4724),
+ q(4714),
q(0),
],
q(degaru) => [
- q(2022),
+ q(2017),
q(0),
],
q(degema) => [
- q(1997),
+ q(1992),
q(0),
],
q(degenan) => [
- q(2012),
+ q(2007),
q(0),
],
q(degexit'an) => [
- q(2973),
+ q(2970),
q(0),
],
q(dehu) => [
- q(2036),
+ q(2031),
q(0),
],
q(dehwari) => [
- q(1998),
+ q(1993),
q(0),
],
q(dek) => [
- q(2000),
+ q(1995),
q(0),
],
q(dela-oenale) => [
- q(5856),
+ q(5847),
q(0),
],
q(delaware) => [
@@ -30816,31 +30806,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(delo) => [
- q(5106),
+ q(5096),
q(0),
],
q(dem) => [
- q(2001),
+ q(1996),
q(0),
],
q(dema) => [
- q(2101),
+ q(2096),
q(0),
],
q(demisa) => [
- q(1999),
+ q(1994),
q(0),
],
q(demta) => [
- q(2102),
+ q(2097),
q(0),
],
q(dendi (benin)) => [
- q(1988),
+ q(1983),
q(0),
],
q(dendi (central african republic)) => [
- q(2003),
+ q(1998),
q(0),
],
q(dene suline) => [
@@ -30848,95 +30838,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(dengese) => [
- q(2007),
+ q(2002),
q(0),
],
q(dengka) => [
- q(2109),
+ q(2104),
q(0),
],
q(deni) => [
- q(2116),
+ q(2111),
q(0),
],
q(deno) => [
- q(1961),
+ q(1956),
q(0),
],
q(denya) => [
- q(0811),
+ q(0809),
q(0),
],
q(deori) => [
- q(2004),
+ q(1999),
q(0),
],
q(dera (indonesia)) => [
- q(3206),
+ q(3203),
q(0),
],
q(dera (nigeria)) => [
- q(3481),
+ q(3479),
q(0),
],
q(desano) => [
- q(2005),
+ q(2000),
q(0),
],
q(desiya) => [
- q(2158),
+ q(2153),
q(0),
],
q(dewoin) => [
- q(1995),
+ q(1990),
q(0),
],
q(dezfuli) => [
- q(1996),
+ q(1991),
q(0),
],
q(dghwede) => [
- q(2014),
+ q(2009),
q(0),
],
q(dhaiso) => [
- q(2034),
+ q(2029),
q(0),
],
q(dhalandji) => [
- q(2029),
+ q(2024),
q(0),
],
q(dhangu) => [
- q(2027),
- q(1),
+ q(2022),
+ q(0),
],
q(dhanki) => [
- q(2031),
+ q(2026),
q(0),
],
q(dhanwar (nepal)) => [
- q(2037),
+ q(2032),
q(0),
],
q(dhao) => [
- q(4839),
+ q(4829),
q(0),
],
q(dhargari) => [
- q(2033),
+ q(2028),
q(0),
],
q(dharuk) => [
- q(7332),
+ q(7324),
+ q(0),
+ ],
+ q(dharumbal) => [
+ q(7345),
q(0),
],
q(dhatki) => [
- q(4358),
+ q(4349),
q(0),
],
q(dhimal) => [
- q(2028),
+ q(2023),
q(0),
],
q(dhivehi) => [
@@ -30944,11 +30938,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(dhodia) => [
- q(2032),
+ q(2027),
q(0),
],
q(dhofari arabic) => [
- q(0608),
+ q(0607),
q(0),
],
q(dholuo) => [
@@ -30956,99 +30950,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(dhudhuroa) => [
- q(1990),
+ q(1985),
q(0),
],
q(dhundari) => [
- q(2026),
+ q(2021),
q(0),
],
q(dhungaloo) => [
- q(2038),
+ q(2033),
q(0),
],
q(dhurga) => [
- q(2035),
+ q(2030),
q(0),
],
q(dhuwal) => [
- q(2182),
+ q(2177),
q(0),
],
q(dia) => [
- q(2039),
+ q(2034),
q(0),
],
q(dibabawon manobo) => [
- q(4138),
+ q(4130),
q(0),
],
q(dibiyaso) => [
- q(1979),
+ q(1974),
q(0),
],
q(dibo) => [
- q(2051),
+ q(2046),
q(0),
],
q(dibole) => [
- q(1542),
+ q(1538),
q(0),
],
q(dicamay agta) => [
- q(2195),
+ q(2190),
q(0),
],
q(didinga) => [
- q(2042),
+ q(2037),
q(0),
],
q(dido) => [
- q(1989),
+ q(1984),
q(0),
],
q(diebroud) => [
- q(6402),
+ q(6394),
q(1),
],
q(dieri) => [
- q(2043),
+ q(2038),
q(0),
],
q(digaro-mishmi) => [
- q(4302),
+ q(4293),
q(0),
],
q(digo) => [
- q(2044),
+ q(2039),
q(0),
],
q(dii) => [
- q(2189),
+ q(2184),
q(0),
],
q(dijim-bwilim) => [
- q(1715),
+ q(1710),
q(0),
],
q(dilling) => [
- q(2049),
+ q(2044),
q(0),
],
q(dima) => [
- q(3118),
+ q(3116),
q(0),
],
q(dimasa) => [
- q(2055),
+ q(2050),
q(0),
],
q(dimbong) => [
- q(2046),
+ q(2041),
q(0),
],
q(dime) => [
- q(2050),
+ q(2045),
q(0),
],
q(dimili) => [
@@ -31060,7 +31054,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(dimli (individual language)) => [
- q(2053),
+ q(2048),
q(0),
],
q(dimli (macrolanguage)) => [
@@ -31068,11 +31062,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(6),
],
q(dineor) => [
- q(4536),
+ q(4527),
q(1),
],
q(ding) => [
- q(2061),
+ q(2056),
q(0),
],
q(dinka) => [
@@ -31080,43 +31074,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dirari) => [
- q(2056),
+ q(2051),
q(0),
],
q(dirasha) => [
- q(2466),
+ q(2462),
q(0),
],
q(diri) => [
- q(2198),
+ q(2193),
q(0),
],
q(diriku) => [
- q(2057),
+ q(2052),
q(0),
],
q(dirim) => [
- q(2054),
+ q(2049),
q(0),
],
q(disa) => [
- q(2155),
+ q(2150),
q(0),
],
q(ditammari) => [
- q(6411),
+ q(6403),
q(0),
],
q(ditidaht) => [
- q(2162),
+ q(2157),
q(0),
],
q(diuwe) => [
- q(2060),
+ q(2055),
q(0),
],
q(diuxi-tilantongo mixtec) => [
- q(7517),
+ q(7509),
q(0),
],
q(divehi) => [
@@ -31124,95 +31118,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dixon reef) => [
- q(2059),
+ q(2054),
q(0),
],
q(dizin) => [
- q(4206),
+ q(4198),
q(0),
],
q(djabwurrung) => [
- q(6555),
+ q(6546),
q(0),
],
q(djadjawurrung) => [
- q(2062),
+ q(2057),
q(0),
],
q(djambarrpuyngu) => [
- q(2074),
+ q(2069),
q(0),
],
q(djamindjung) => [
- q(2065),
+ q(2060),
q(0),
],
q(djangu) => [
- q(2027),
- q(0),
+ q(2022),
+ q(1),
],
q(djangun) => [
- q(2067),
+ q(2062),
q(0),
],
q(djauan) => [
- q(2072),
+ q(2067),
q(0),
],
q(djawi) => [
- q(2076),
+ q(2071),
q(0),
],
q(djeebbana) => [
- q(2069),
+ q(2064),
q(0),
],
q(djimini senoufo) => [
- q(2206),
+ q(2201),
q(0),
],
q(djinang) => [
- q(2068),
+ q(2063),
q(0),
],
q(djinba) => [
- q(2063),
+ q(2058),
q(0),
],
q(djingili) => [
- q(3099),
+ q(3096),
q(0),
],
q(djiwarli) => [
- q(2213),
+ q(2207),
q(0),
],
q(dobel) => [
- q(3683),
+ q(3680),
q(0),
],
q(dobu) => [
- q(2118),
+ q(2113),
q(0),
],
q(doe) => [
- q(2120),
+ q(2115),
q(0),
],
q(doga) => [
- q(2013),
+ q(2008),
q(0),
],
q(doghoro) => [
- q(2024),
+ q(2019),
q(0),
],
q(dogose) => [
- q(2130),
+ q(2125),
q(0),
],
q(dogoso) => [
- q(2020),
+ q(2015),
q(0),
],
q(dogri) => [
@@ -31220,7 +31214,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dogri (individual language)) => [
- q(2019),
+ q(2014),
q(0),
],
q(dogri (macrolanguage)) => [
@@ -31232,127 +31226,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dogul dom dogon) => [
- q(1965),
+ q(1960),
q(0),
],
q(doka) => [
- q(1966),
+ q(1961),
q(0),
],
q(doko-uyanga) => [
- q(6975),
+ q(6966),
q(0),
],
q(dolgan) => [
- q(2082),
+ q(2077),
q(0),
],
q(dolpo) => [
- q(2141),
+ q(2136),
q(0),
],
q(dom) => [
- q(2117),
+ q(2112),
q(0),
],
q(domaaki) => [
- q(2092),
+ q(2087),
q(0),
],
q(domari) => [
- q(5830),
+ q(5821),
q(0),
],
q(dombe) => [
- q(2132),
+ q(2127),
q(0),
],
q(dominican sign language) => [
- q(2128),
+ q(2123),
q(0),
],
q(dompo) => [
- q(2135),
+ q(2130),
q(0),
],
q(domu) => [
- q(2121),
+ q(2116),
q(0),
],
q(domung) => [
- q(2006),
+ q(2001),
q(0),
],
q(dondo) => [
- q(2123),
+ q(2118),
q(0),
],
q(dong) => [
- q(2122),
+ q(2117),
q(0),
],
q(dongo) => [
- q(2126),
+ q(2121),
q(0),
],
q(dongolawi) => [
- q(2017),
+ q(2012),
q(1),
],
q(dongotono) => [
- q(1983),
+ q(1978),
q(0),
],
q(dongshanba lalo) => [
- q(7657),
+ q(7649),
q(0),
],
q(dongxiang) => [
- q(5937),
+ q(5928),
q(0),
],
q(donno so dogon) => [
- q(1991),
+ q(1986),
q(0),
],
q(doondo) => [
- q(1984),
+ q(1979),
q(0),
],
q(dori'o) => [
- q(2129),
+ q(2124),
q(0),
],
q(dorig) => [
- q(7269),
+ q(7260),
q(1),
],
q(doromu-koki) => [
- q(3552),
+ q(3549),
q(0),
],
q(dororo) => [
- q(2148),
+ q(2143),
q(0),
],
q(dorze) => [
- q(2136),
+ q(2131),
q(0),
],
q(doso) => [
- q(2124),
+ q(2119),
q(0),
],
q(dotyali) => [
- q(2173),
+ q(2168),
q(0),
],
q(doutai) => [
- q(6451),
+ q(6443),
q(0),
],
q(doyayo) => [
- q(2133),
+ q(2128),
q(0),
],
q(dravidian languages) => [
@@ -31360,19 +31354,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(drehu) => [
- q(2036),
+ q(2031),
q(1),
],
q(drents) => [
- q(2150),
+ q(2145),
q(0),
],
q(drubea) => [
- q(2178),
+ q(2173),
q(1),
],
q(drung) => [
- q(2191),
+ q(2186),
q(0),
],
q(duala) => [
@@ -31380,127 +31374,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(duano) => [
- q(2187),
+ q(2182),
q(0),
],
q(duau) => [
- q(2197),
+ q(2192),
q(0),
],
q(dubli) => [
- q(2174),
+ q(2169),
q(0),
],
q(dubu) => [
- q(2098),
+ q(2093),
q(0),
],
q(dugun) => [
- q(4810),
+ q(4800),
q(0),
],
q(duguri) => [
- q(1969),
+ q(1964),
q(0),
],
q(dugwor) => [
- q(2090),
+ q(2085),
q(0),
],
q(duhwa) => [
- q(3210),
+ q(3207),
q(0),
],
q(duke) => [
- q(4935),
+ q(4925),
q(0),
],
q(dulbu) => [
- q(1971),
+ q(1966),
q(0),
],
q(duli) => [
- q(2196),
+ q(2191),
q(0),
],
q(duma) => [
- q(2086),
+ q(2081),
q(0),
],
q(dumbea) => [
- q(2178),
+ q(2173),
q(0),
],
q(dumi) => [
- q(2190),
+ q(2185),
q(0),
],
q(dumpas) => [
- q(2099),
+ q(2094),
q(0),
],
q(dumun) => [
- q(2181),
+ q(2176),
q(0),
],
q(duna) => [
- q(2175),
+ q(2170),
q(0),
],
q(dungan) => [
- q(2106),
+ q(2101),
q(0),
],
q(dungmali) => [
- q(5744),
+ q(5735),
q(0),
],
q(dungra bhil) => [
- q(2180),
+ q(2175),
q(0),
],
q(dungu) => [
- q(1977),
+ q(1972),
q(0),
],
q(dupaninan agta) => [
- q(2186),
+ q(2181),
q(0),
],
q(dura) => [
- q(2147),
+ q(2142),
q(0),
],
q(duri) => [
- q(4622),
+ q(4613),
q(0),
],
q(duriankere) => [
- q(1970),
+ q(1965),
q(0),
],
q(duruma) => [
- q(2179),
+ q(2174),
q(0),
],
q(duruwa) => [
- q(5397),
+ q(5388),
q(0),
],
q(dusner) => [
- q(2157),
+ q(2152),
q(0),
],
q(dusun deyah) => [
- q(2185),
+ q(2180),
q(0),
],
q(dusun malang) => [
- q(2188),
+ q(2183),
q(0),
],
q(dusun witu) => [
- q(2193),
+ q(2188),
q(0),
],
q(dutch) => [
@@ -31508,7 +31502,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dutch sign language) => [
- q(2153),
+ q(2148),
q(0),
],
q(dutch, middle (ca.1050-1350)) => [
@@ -31516,59 +31510,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dutton world speedwords) => [
- q(2200),
+ q(2195),
q(0),
],
q(duungooma) => [
- q(2194),
+ q(2189),
q(0),
],
q(duupa) => [
- q(1945),
+ q(1940),
q(0),
],
q(duvle) => [
- q(2192),
+ q(2187),
q(0),
],
q(duwai) => [
- q(1972),
+ q(1967),
q(0),
],
q(duwet) => [
- q(2671),
+ q(2668),
q(0),
],
q(duya) => [
- q(3851),
+ q(3846),
q(0),
],
q(dwang) => [
- q(5016),
+ q(5006),
q(0),
],
q(dyaabugay) => [
- q(2210),
+ q(2205),
q(0),
],
q(dyaberdyaber) => [
- q(2203),
+ q(2198),
q(0),
],
q(dyan) => [
- q(2202),
+ q(2197),
q(0),
],
q(dyangadi) => [
- q(2208),
+ q(2203),
q(0),
],
q(dyirbal) => [
- q(1968),
+ q(1963),
q(0),
],
q(dyugun) => [
- q(2204),
+ q(2199),
q(0),
],
q(dyula) => [
@@ -31576,23 +31570,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dza) => [
- q(3084),
+ q(3081),
q(0),
],
q(dzalakha) => [
- q(2215),
+ q(2209),
q(0),
],
q(dzando) => [
- q(2216),
+ q(2210),
q(0),
],
q(dzao min) => [
- q(1388),
+ q(1384),
q(0),
],
q(dzodinka) => [
- q(0606),
+ q(0605),
q(0),
],
q(dzongkha) => [
@@ -31600,39 +31594,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dzuungoo) => [
- q(2110),
+ q(2105),
q(0),
],
q(e) => [
- q(2226),
+ q(2220),
q(0),
],
q(e'ma buyang) => [
- q(7812),
+ q(7801),
q(0),
],
q(e'napa woromaipu) => [
- q(5377),
+ q(5368),
q(0),
],
q(early tripuri) => [
- q(7529),
+ q(7521),
q(0),
],
q(east ambae) => [
- q(5259),
+ q(5251),
q(0),
],
q(east berawan) => [
- q(7839),
+ q(7828),
q(0),
],
q(east damar) => [
- q(2096),
+ q(2091),
q(0),
],
q(east futuna) => [
- q(2385),
+ q(2381),
q(0),
],
q(east germanic languages) => [
@@ -31640,23 +31634,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(east kewa) => [
- q(3398),
+ q(3395),
q(0),
],
q(east limba) => [
- q(3982),
+ q(3975),
q(0),
],
q(east makian) => [
- q(4374),
+ q(4365),
q(0),
],
q(east masela) => [
- q(7030),
+ q(7021),
q(0),
],
q(east nyala) => [
- q(4957),
+ q(4947),
q(0),
],
q(east slavic languages) => [
@@ -31664,59 +31658,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(east tarangan) => [
- q(6699),
+ q(6691),
q(0),
],
q(east yugur) => [
- q(7790),
+ q(7779),
q(0),
],
q(eastern abnaki) => [
- q(0553),
+ q(0552),
q(0),
],
q(eastern acipa) => [
- q(0594),
+ q(0593),
q(0),
],
q(eastern apurimac quechua) => [
- q(5710),
+ q(5701),
q(0),
],
q(eastern arrernte) => [
- q(0635),
+ q(0633),
q(0),
],
q(eastern balochi) => [
- q(1177),
+ q(1174),
q(0),
],
q(eastern bolivian guarani) => [
- q(2653),
+ q(2650),
q(0),
],
q(eastern bontok) => [
- q(2219),
+ q(2213),
q(0),
],
q(eastern bru) => [
- q(1444),
+ q(1440),
q(0),
],
q(eastern canadian inuktitut) => [
- q(2942),
+ q(2939),
q(0),
],
q(eastern cham) => [
- q(1752),
+ q(1747),
q(0),
],
q(eastern durango nahuatl) => [
- q(1016),
+ q(1013),
q(0),
],
q(eastern egyptian bedawi arabic) => [
- q(0961),
+ q(0958),
q(0),
],
q(eastern frisian) => [
@@ -31724,75 +31718,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eastern gorkha tamang) => [
- q(6486),
+ q(6478),
q(0),
],
q(eastern gurung) => [
- q(2501),
+ q(2497),
q(0),
],
q(eastern highland chatino) => [
- q(1787),
+ q(1782),
q(0),
],
q(eastern highland otomi) => [
- q(5330),
+ q(5322),
q(0),
],
q(eastern hongshuihe zhuang) => [
- q(7847),
+ q(7836),
q(0),
],
q(eastern huasteca nahuatl) => [
- q(4873),
+ q(4863),
q(0),
],
q(eastern huishui hmong) => [
- q(2784),
+ q(2781),
q(0),
],
q(eastern huishui miao) => [
- q(2784),
+ q(2781),
q(1),
],
q(eastern karaboro) => [
- q(7483),
+ q(7476),
q(0),
],
q(eastern karnic) => [
- q(2237),
+ q(2231),
q(0),
],
q(eastern katu) => [
- q(3643),
+ q(3640),
q(0),
],
q(eastern kayah) => [
- q(2247),
+ q(2241),
q(0),
],
q(eastern keres) => [
- q(3263),
+ q(3260),
q(0),
],
q(eastern khumi chin) => [
- q(1712),
+ q(1707),
q(0),
],
q(eastern krahn) => [
- q(3564),
+ q(3561),
q(0),
],
q(eastern lalu) => [
- q(7665),
+ q(7657),
q(0),
],
q(eastern lawa) => [
- q(4109),
+ q(4101),
q(0),
],
q(eastern magar) => [
- q(4272),
+ q(4264),
q(0),
],
q(eastern malayo-polynesian languages) => [
@@ -31800,63 +31794,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eastern maninkakan) => [
- q(2260),
+ q(2254),
q(0),
],
q(eastern mari) => [
- q(4299),
+ q(4290),
q(0),
],
q(eastern maroon creole) => [
- q(2070),
+ q(2065),
q(0),
],
q(eastern meohang) => [
- q(2258),
+ q(2252),
q(0),
],
q(eastern mnong) => [
- q(4428),
+ q(4419),
q(0),
],
q(eastern muria) => [
- q(2266),
+ q(2259),
q(0),
],
q(eastern ngad'a) => [
- q(4816),
+ q(4806),
q(0),
],
q(eastern nisu) => [
- q(5035),
+ q(5024),
q(0),
],
q(eastern ojibwa) => [
- q(5228),
+ q(5219),
q(0),
],
q(eastern oromo) => [
- q(2717),
+ q(2714),
q(0),
],
q(eastern parbate kham) => [
- q(3362),
+ q(3359),
q(0),
],
q(eastern penan) => [
- q(5430),
+ q(5421),
q(0),
],
q(eastern pomo) => [
- q(5413),
+ q(5404),
q(0),
],
q(eastern qiandong miao) => [
- q(2794),
+ q(2791),
q(0),
],
q(eastern subanen) => [
- q(5995),
+ q(5986),
q(0),
],
q(eastern sudanic languages) => [
@@ -31864,63 +31858,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eastern tamang) => [
- q(6372),
+ q(6364),
q(0),
],
q(eastern tawbuid) => [
- q(1339),
+ q(1335),
q(0),
],
q(eastern xiangxi miao) => [
- q(4601),
+ q(4592),
q(0),
],
q(eastern xwla gbe) => [
- q(2444),
+ q(2440),
q(0),
],
q(eastern yiddish) => [
- q(7624),
+ q(7616),
q(0),
],
q(ebira) => [
- q(2923),
+ q(2920),
q(0),
],
q(eblan) => [
- q(7335),
+ q(7327),
q(0),
],
q(ebrie) => [
- q(2221),
+ q(2215),
q(0),
],
q(ebughu) => [
- q(2218),
+ q(2212),
q(0),
],
q(ecuadorian sign language) => [
- q(2224),
+ q(2218),
q(0),
],
q(ede cabe) => [
- q(1672),
+ q(1666),
q(0),
],
q(ede ica) => [
- q(2901),
+ q(2898),
q(0),
],
q(ede idaca) => [
- q(2908),
+ q(2905),
q(0),
],
q(ede ije) => [
- q(2939),
+ q(2936),
q(0),
],
q(edera awyu) => [
- q(0986),
+ q(0983),
q(0),
],
q(edo) => [
@@ -31928,27 +31922,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(edolo) => [
- q(2311),
+ q(2307),
q(0),
],
q(edomite) => [
- q(7333),
+ q(7325),
q(0),
],
q(edopi) => [
- q(1964),
+ q(1959),
q(0),
],
q(edwas) => [
- q(1350),
+ q(1346),
q(2),
],
q(efai) => [
- q(2227),
+ q(2221),
q(0),
],
q(efe) => [
- q(2228),
+ q(2222),
q(0),
],
q(efik) => [
@@ -31956,19 +31950,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(efutop) => [
- q(5215),
+ q(5206),
q(0),
],
q(ega) => [
- q(2229),
+ q(2223),
q(0),
],
q(eggon) => [
- q(2231),
+ q(2225),
q(0),
],
q(egypt sign language) => [
- q(2299),
+ q(2294),
q(0),
],
q(egyptian (ancient)) => [
@@ -31976,7 +31970,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(egyptian arabic) => [
- q(0885),
+ q(0884),
q(0),
],
q(egyptian languages) => [
@@ -31984,23 +31978,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ehueun) => [
- q(2232),
+ q(2226),
q(0),
],
q(eipomek) => [
- q(2233),
+ q(2227),
q(0),
],
q(eitiep) => [
- q(2234),
+ q(2228),
q(0),
],
q(ejagham) => [
- q(2314),
+ q(2310),
q(0),
],
q(ejamat) => [
- q(2236),
+ q(2230),
q(0),
],
q(ekajuk) => [
@@ -32008,39 +32002,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ekari) => [
- q(2239),
+ q(2233),
q(0),
],
q(ekegusii) => [
- q(2668),
+ q(2665),
q(1),
],
q(eki) => [
- q(2240),
+ q(2234),
q(0),
],
q(ekit) => [
- q(2238),
+ q(2232),
q(0),
],
q(ekpeye) => [
- q(2245),
+ q(2239),
q(0),
],
q(el alto zapotec) => [
- q(7938),
+ q(7927),
q(0),
],
q(el hugeirat) => [
- q(2249),
+ q(2243),
q(0),
],
q(el molo) => [
- q(2253),
+ q(2247),
q(0),
],
q(el nayar cora) => [
- q(1859),
+ q(1854),
q(0),
],
q(elamite) => [
@@ -32048,127 +32042,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eleme) => [
- q(2252),
+ q(2246),
q(0),
],
q(elepi) => [
- q(2248),
+ q(2242),
q(0),
],
q(elip) => [
- q(2243),
+ q(2237),
q(0),
],
q(elkei) => [
- q(2251),
+ q(2245),
q(0),
],
q(elotepec zapotec) => [
- q(7962),
+ q(7951),
q(0),
],
q(eloyi) => [
- q(0648),
+ q(0646),
q(0),
],
q(elseng) => [
- q(4519),
+ q(4510),
q(0),
],
q(elu) => [
- q(2254),
+ q(2248),
q(0),
],
q(elymian) => [
- q(7412),
+ q(7405),
q(0),
],
q(emae) => [
- q(4419),
+ q(4410),
q(0),
],
q(emai-iuleha-ora) => [
- q(2255),
+ q(2249),
q(0),
],
q(eman) => [
- q(2262),
+ q(2256),
q(0),
],
q(embaloh) => [
- q(2256),
+ q(2250),
q(0),
],
q(embera-baudo) => [
- q(1093),
+ q(1090),
q(0),
],
q(embera-catio) => [
- q(1901),
+ q(1896),
q(0),
],
q(embera-chami) => [
- q(1791),
+ q(1786),
q(0),
],
q(embera-tado) => [
- q(6437),
+ q(6429),
q(0),
],
q(embu) => [
- q(2222),
+ q(2216),
q(0),
],
q(emem) => [
- q(2279),
+ q(2273),
q(1),
],
q(emerillon) => [
- q(2257),
+ q(2251),
q(0),
],
q(emilian) => [
- q(2230),
- q(0),
- ],
- q(emok) => [
- q(2263),
+ q(2224),
q(0),
],
q(emplawas) => [
- q(2267),
+ q(2260),
q(0),
],
q(emumu) => [
- q(2279),
+ q(2273),
q(0),
],
q(en) => [
- q(2272),
+ q(2265),
q(0),
],
q(enawene-nawe) => [
- q(6924),
+ q(6916),
q(0),
],
q(ende) => [
- q(2273),
+ q(2266),
q(0),
],
q(enga) => [
- q(2278),
+ q(2272),
q(0),
],
q(engdewu) => [
- q(4860),
+ q(4850),
q(0),
],
q(engenni) => [
- q(2276),
+ q(2270),
q(0),
],
q(enggano) => [
- q(2277),
+ q(2271),
q(0),
],
q(english) => [
@@ -32187,76 +32177,84 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0093),
q(2),
],
+ q(enlhet) => [
+ q(2269),
+ q(0),
+ ],
q(enrekang) => [
- q(5643),
+ q(5635),
q(0),
],
q(enu) => [
- q(2280),
+ q(2274),
q(0),
],
q(enwan (akwa ibom state)) => [
- q(2282),
+ q(2276),
q(0),
],
q(enwan (edu state)) => [
- q(2281),
+ q(2275),
+ q(0),
+ ],
+ q(enxet) => [
+ q(2277),
q(0),
],
q(enya) => [
- q(2490),
+ q(2487),
q(0),
],
q(epena) => [
- q(6064),
+ q(6054),
q(0),
],
q(epi-olmec) => [
- q(7340),
+ q(7332),
q(0),
],
q(epie) => [
- q(2284),
+ q(2279),
q(0),
],
q(epigraphic mayan) => [
- q(2269),
+ q(2262),
q(0),
],
q(eravallan) => [
- q(2285),
+ q(2280),
q(0),
],
q(erave) => [
- q(3402),
+ q(3400),
q(0),
],
q(ere) => [
- q(6812),
+ q(6803),
q(0),
],
q(eritai) => [
- q(2293),
+ q(2288),
q(0),
],
q(erokwanas) => [
- q(2294),
+ q(2289),
q(0),
],
q(erre) => [
- q(2291),
+ q(2286),
q(0),
],
q(erromintxela) => [
- q(2268),
+ q(2261),
q(0),
],
q(ersu) => [
- q(2292),
+ q(2287),
q(0),
],
q(eruwa) => [
- q(2287),
+ q(2282),
q(0),
],
q(erzya) => [
@@ -32264,23 +32262,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(esan) => [
- q(3004),
+ q(3001),
q(0),
],
q(ese) => [
- q(4176),
+ q(4168),
q(0),
],
q(ese ejja) => [
- q(2295),
+ q(2290),
q(0),
],
q(eshtehardi) => [
- q(2296),
+ q(2291),
q(0),
],
q(esimbi) => [
- q(0671),
+ q(0669),
+ q(0),
+ ],
+ q(eskayan) => [
+ q(2301),
q(0),
],
q(eskimo-aleut languages) => [
@@ -32292,11 +32294,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(esselen) => [
- q(2303),
+ q(2298),
q(0),
],
q(estado de mexico otomi) => [
- q(5334),
+ q(5326),
q(0),
],
q(estonian) => [
@@ -32304,71 +32306,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(estonian sign language) => [
- q(2302),
+ q(2297),
q(0),
],
q(esuma) => [
- q(2300),
+ q(2295),
q(0),
],
q(etchemin) => [
- q(2307),
+ q(2303),
q(0),
],
q(etebi) => [
- q(2306),
+ q(2302),
q(0),
],
q(eten) => [
- q(2315),
+ q(2311),
q(0),
],
q(eteocretan) => [
- q(2223),
+ q(2217),
q(0),
],
q(eteocypriot) => [
- q(2225),
+ q(2219),
q(0),
],
q(ethiopian sign language) => [
- q(2308),
+ q(2304),
q(0),
],
q(etkywan) => [
- q(2902),
+ q(2899),
q(0),
],
q(eton (cameroon)) => [
- q(2310),
+ q(2306),
q(0),
],
q(eton (vanuatu)) => [
- q(2309),
+ q(2305),
q(0),
],
q(etruscan) => [
- q(2313),
+ q(2309),
q(0),
],
q(etulo) => [
- q(6965),
+ q(6956),
q(0),
],
q(evant) => [
- q(1643),
+ q(1637),
q(0),
],
q(even) => [
- q(2317),
+ q(2313),
q(0),
],
q(evenki) => [
- q(2319),
+ q(2315),
+ q(0),
+ ],
+ q(eviya) => [
+ q(2484),
q(0),
],
q(ewage-notu) => [
- q(5037),
+ q(5026),
q(0),
],
q(ewe) => [
@@ -32380,67 +32386,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(extremaduran) => [
- q(2320),
+ q(2316),
q(0),
],
q(eyak) => [
- q(2321),
+ q(2317),
q(0),
],
q(ezaa) => [
- q(2323),
+ q(2319),
q(0),
],
q(fa d'ambu) => [
- q(2326),
+ q(2322),
q(0),
],
q(fagani) => [
- q(2328),
+ q(2324),
q(0),
],
q(fagauvea) => [
- q(6971),
+ q(6962),
q(1),
],
q(faire atta) => [
- q(1022),
+ q(1019),
q(0),
],
q(faita) => [
- q(2332),
+ q(2328),
q(0),
],
q(faiwol) => [
- q(2331),
+ q(2327),
q(0),
],
q(fala) => [
- q(2339),
+ q(2335),
q(0),
],
q(falam chin) => [
- q(1718),
+ q(1713),
q(0),
],
q(fali) => [
- q(2358),
+ q(2354),
q(0),
],
q(faliscan) => [
- q(7345),
+ q(7337),
q(0),
],
q(fam) => [
- q(2335),
+ q(2331),
q(0),
],
q(fanagalo) => [
- q(2365),
+ q(2361),
q(0),
],
q(fanamaket) => [
- q(1247),
+ q(1244),
q(0),
],
q(fang) => [
@@ -32448,7 +32454,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(fang (cameroon)) => [
- q(2333),
+ q(2329),
q(0),
],
q(fang (equatorial guinea)) => [
@@ -32456,7 +32462,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(fania) => [
- q(2366),
+ q(2362),
q(0),
],
q(fanti) => [
@@ -32464,11 +32470,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(far western muria) => [
- q(2364),
+ q(2360),
q(0),
],
q(farefare) => [
- q(2661),
+ q(2658),
q(0),
],
q(faroese) => [
@@ -32476,47 +32482,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(fas) => [
- q(2373),
+ q(2369),
q(0),
],
q(fasu) => [
- q(2325),
+ q(2321),
q(0),
],
q(fataleka) => [
- q(2337),
+ q(2333),
q(0),
],
q(fataluku) => [
- q(1985),
+ q(1980),
q(0),
],
q(fayu) => [
- q(2338),
+ q(2334),
q(0),
],
q(fe'fe') => [
- q(2363),
+ q(2359),
q(0),
],
q(fedan) => [
- q(5408),
+ q(5399),
q(1),
],
q(fembe) => [
- q(0665),
+ q(0663),
q(0),
],
q(fernando po creole english) => [
- q(2372),
+ q(2368),
q(0),
],
q(feroge) => [
- q(2344),
+ q(2340),
q(0),
],
q(fiji hindi) => [
- q(2759),
+ q(2756),
q(0),
],
q(fijian) => [
@@ -32528,15 +32534,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(filomena mata-coahuitlan totonac) => [
- q(6585),
+ q(6577),
q(0),
],
q(finland-swedish sign language) => [
- q(2382),
+ q(2378),
q(0),
],
q(finlandssvenskt teckensprak) => [
- q(2382),
+ q(2378),
q(1),
],
q(finnish) => [
@@ -32544,7 +32550,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(finnish sign language) => [
- q(2380),
+ q(2376),
q(0),
],
q(finno-ugrian languages) => [
@@ -32552,19 +32558,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(finongan) => [
- q(2329),
+ q(2325),
q(0),
],
q(fipa) => [
- q(2350),
+ q(2346),
q(0),
],
q(firan) => [
- q(2351),
+ q(2347),
q(0),
],
q(fiwaga) => [
- q(2353),
+ q(2349),
+ q(0),
+ ],
+ q(flaaitaal) => [
+ q(2358),
q(0),
],
q(flemish) => [
@@ -32572,31 +32582,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(flemish sign language) => [
- q(7004),
+ q(6995),
q(1),
],
q(flinders island) => [
- q(2360),
+ q(2356),
q(0),
],
q(foau) => [
- q(2357),
+ q(2353),
q(0),
],
q(foi) => [
- q(2368),
+ q(2364),
q(0),
],
q(foia foia) => [
- q(2345),
+ q(2341),
q(0),
],
q(folopa) => [
- q(5587),
+ q(5578),
q(0),
],
q(foma) => [
- q(2369),
+ q(2365),
q(0),
],
q(fon) => [
@@ -32604,27 +32614,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(fongoro) => [
- q(2347),
+ q(2343),
q(0),
],
q(foodo) => [
- q(2367),
+ q(2363),
q(0),
],
q(forak) => [
- q(2378),
+ q(2374),
q(0),
],
q(fordata) => [
- q(2375),
+ q(2371),
q(0),
],
q(fore) => [
- q(2370),
+ q(2366),
q(0),
],
q(forest enets) => [
- q(2274),
+ q(2267),
q(0),
],
q(formosan languages) => [
@@ -32632,19 +32642,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(fortsenal) => [
- q(2379),
+ q(2375),
q(0),
],
q(francisco leon zoque) => [
- q(7922),
+ q(7911),
q(0),
],
q(francoprovencal) => [
- q(2377),
+ q(2373),
q(1),
],
q(frankish) => [
- q(2376),
+ q(2372),
q(0),
],
q(french) => [
@@ -32652,11 +32662,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(french belgian sign language) => [
- q(5994),
+ q(5985),
q(1),
],
q(french sign language) => [
- q(2381),
+ q(2377),
q(0),
],
q(french, middle (ca.1400-1600)) => [
@@ -32680,51 +32690,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(fuliiru) => [
- q(2361),
+ q(2357),
q(0),
],
q(fulnio) => [
- q(2392),
+ q(2388),
q(0),
],
q(fum) => [
- q(2391),
+ q(2387),
q(0),
],
q(fungwa) => [
- q(6897),
+ q(6889),
q(0),
],
q(fur) => [
- q(2398),
+ q(2394),
q(0),
],
q(furu) => [
- q(2395),
+ q(2391),
q(0),
],
q(futuna-aniwa) => [
- q(2394),
+ q(2390),
q(0),
],
q(fuyug) => [
- q(2397),
+ q(2393),
q(0),
],
q(fwai) => [
- q(2399),
+ q(2395),
q(0),
],
q(fwe) => [
- q(2400),
+ q(2396),
q(0),
],
q(fyam) => [
- q(5680),
+ q(5671),
q(0),
],
q(fyer) => [
- q(2349),
+ q(2345),
q(0),
],
q(ga) => [
@@ -32732,59 +32742,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ga'anda) => [
- q(2611),
+ q(2609),
q(0),
],
q(ga'dang) => [
- q(2461),
+ q(2457),
q(0),
],
q(gaa) => [
- q(6744),
+ q(6735),
q(0),
],
q(gaam) => [
- q(6395),
+ q(6387),
q(0),
],
q(gabi-gabi) => [
- q(2443),
+ q(2439),
q(0),
],
q(gabri) => [
- q(2401),
+ q(2397),
q(0),
],
q(gabrielino-fernandeno) => [
- q(7349),
+ q(7341),
q(0),
],
q(gadang) => [
- q(2465),
+ q(2461),
q(0),
],
q(gaddang) => [
- q(2403),
+ q(2399),
q(0),
],
q(gaddi) => [
- q(2432),
+ q(2428),
q(0),
],
q(gade) => [
- q(2479),
+ q(2475),
q(0),
],
q(gade lohar) => [
- q(2455),
+ q(2451),
q(0),
],
q(gadjerawang) => [
- q(2462),
+ q(2458),
q(0),
],
q(gadsup) => [
- q(2409),
+ q(2405),
q(0),
],
q(gaelic) => [
@@ -32792,59 +32802,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gafat) => [
- q(2492),
+ q(2489),
q(0),
],
q(gagadu) => [
- q(2441),
+ q(2437),
q(0),
],
q(gagauz) => [
- q(2406),
+ q(2402),
q(0),
],
q(gagnoa bete) => [
- q(1479),
+ q(1475),
q(0),
],
q(gagu) => [
- q(2504),
+ q(2500),
q(0),
],
q(gahri) => [
- q(1158),
+ q(1155),
q(0),
],
q(gaikundi) => [
- q(2427),
+ q(2423),
q(0),
],
q(gail) => [
- q(2519),
+ q(2515),
q(0),
],
q(gaina) => [
- q(2452),
+ q(2448),
q(0),
],
q(gal) => [
- q(2415),
+ q(2411),
q(0),
],
q(galambu) => [
- q(2552),
+ q(2549),
q(0),
],
q(galatian) => [
- q(7346),
+ q(7338),
q(0),
],
q(galela) => [
- q(2430),
+ q(2426),
q(0),
],
q(galeya) => [
- q(2417),
+ q(2413),
q(0),
],
q(galibi carib) => [
@@ -32852,7 +32862,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(galice) => [
- q(2449),
+ q(2445),
q(0),
],
q(galician) => [
@@ -32860,175 +32870,179 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(galindan) => [
- q(7352),
+ q(7344),
q(0),
],
q(gallurese sardinian) => [
- q(5962),
+ q(5953),
q(0),
],
q(galo) => [
- q(0613),
+ q(0612),
q(0),
],
q(galolen) => [
- q(2411),
+ q(2407),
q(0),
],
q(gamale kham) => [
- q(3319),
+ q(3316),
q(0),
],
q(gambera) => [
- q(2557),
+ q(2554),
q(0),
],
q(gambian wolof) => [
- q(7209),
+ q(7200),
q(0),
],
q(gamilaraay) => [
- q(3433),
+ q(3431),
q(0),
],
q(gamit) => [
- q(2433),
+ q(2429),
q(0),
],
q(gamkonora) => [
- q(2410),
+ q(2406),
q(0),
],
q(gamo) => [
- q(2564),
+ q(2562),
q(0),
],
q(gamo-ningi) => [
- q(1477),
+ q(1473),
q(0),
],
q(gan chinese) => [
- q(2413),
+ q(2409),
q(0),
],
q(gana) => [
- q(2581),
+ q(2579),
q(0),
],
q(ganang) => [
- q(2572),
+ q(2570),
q(0),
],
q(ganda) => [
q(0257),
q(0),
],
+ q(gandhari) => [
+ q(5426),
+ q(0),
+ ],
q(gane) => [
- q(2712),
+ q(2709),
q(0),
],
q(ganggalida) => [
- q(2448),
+ q(2444),
q(0),
],
q(ganglau) => [
- q(2500),
+ q(2496),
q(0),
],
q(gangte) => [
- q(2569),
+ q(2567),
q(0),
],
q(gangulu) => [
- q(2577),
+ q(2575),
q(0),
],
q(gants) => [
- q(2414),
+ q(2410),
q(0),
],
q(ganza) => [
- q(2710),
+ q(2707),
q(0),
],
q(ganzi) => [
- q(2586),
+ q(2584),
q(0),
],
q(gao) => [
- q(2494),
+ q(2490),
q(0),
],
q(gapapaiwa) => [
- q(5671),
+ q(5662),
q(0),
],
q(garhwali) => [
- q(2434),
+ q(2430),
q(0),
],
q(garifuna) => [
- q(1645),
+ q(1639),
q(0),
],
q(garig-ilgar) => [
- q(2956),
+ q(2954),
q(0),
],
q(garingbal) => [
- q(7351),
+ q(7343),
q(0),
],
q(garlali) => [
- q(2551),
+ q(2548),
q(0),
],
q(garo) => [
- q(2627),
+ q(2625),
q(0),
],
q(garre) => [
- q(2489),
+ q(2486),
q(0),
],
q(garrwa) => [
- q(7227),
+ q(7218),
q(0),
],
q(garus) => [
- q(2699),
+ q(2696),
q(0),
],
q(garza) => [
- q(7354),
+ q(7346),
q(0),
],
q(gata') => [
- q(2416),
+ q(2412),
q(0),
],
q(gavak) => [
- q(2088),
+ q(2083),
q(0),
],
q(gavar) => [
- q(2603),
+ q(2601),
q(0),
],
q(gaviao do jiparana) => [
- q(2677),
+ q(2674),
q(0),
],
q(gawar-bati) => [
- q(2693),
+ q(2690),
q(0),
],
q(gawwada) => [
- q(2685),
+ q(2682),
q(0),
],
q(gayil) => [
- q(2705),
+ q(2702),
q(0),
],
q(gayo) => [
@@ -33036,31 +33050,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gazi) => [
- q(2711),
+ q(2708),
q(0),
],
q(gbagyi) => [
- q(2439),
+ q(2435),
q(0),
],
q(gban) => [
- q(2504),
+ q(2500),
q(1),
],
q(gbanu) => [
- q(2442),
+ q(2438),
q(0),
],
q(gbanziri) => [
- q(2428),
+ q(2424),
q(0),
],
q(gbari) => [
- q(2445),
- q(0),
- ],
- q(gbati-ri) => [
- q(2643),
+ q(2441),
q(0),
],
q(gbaya) => [
@@ -33072,63 +33082,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(gbaya (sudan)) => [
- q(3589),
+ q(3586),
q(0),
],
q(gbaya-bossangoa) => [
- q(2437),
+ q(2433),
q(0),
],
q(gbaya-bozoum) => [
- q(2438),
+ q(2434),
q(0),
],
q(gbaya-mbodomo) => [
- q(2561),
+ q(2559),
q(0),
],
q(gbayi) => [
- q(2703),
+ q(2700),
q(0),
],
q(gbesi gbe) => [
- q(2440),
+ q(2436),
q(0),
],
q(gbii) => [
- q(2495),
+ q(2491),
q(0),
],
q(gbin) => [
- q(7347),
+ q(7339),
q(0),
],
q(gbiri-niragu) => [
- q(2619),
+ q(2617),
q(0),
],
q(gboloo grebo) => [
- q(2478),
+ q(2474),
q(0),
],
q(ge) => [
- q(2789),
+ q(2786),
q(0),
],
q(geba karen) => [
- q(3685),
+ q(3682),
q(0),
],
q(gebe) => [
- q(2482),
+ q(2478),
q(0),
],
q(gedaged) => [
- q(2458),
+ q(2454),
q(0),
],
q(gedeo) => [
- q(2149),
+ q(2144),
q(0),
],
q(geez) => [
@@ -33136,39 +33146,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(geji) => [
- q(2535),
+ q(2531),
q(0),
],
q(gejia) => [
- q(2789),
+ q(2786),
q(1),
],
q(geko karen) => [
- q(2510),
+ q(2506),
q(0),
],
q(gela) => [
- q(4958),
+ q(4948),
q(0),
],
q(geman deng) => [
- q(4665),
+ q(4655),
q(1),
],
q(geme) => [
- q(2486),
+ q(2482),
q(0),
],
q(gen) => [
- q(2483),
+ q(2479),
q(0),
],
q(gende) => [
- q(2405),
+ q(2401),
q(0),
],
q(gengle) => [
- q(2480),
+ q(2476),
q(0),
],
q(georgian) => [
@@ -33176,15 +33186,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gepo) => [
- q(7645),
+ q(7636),
q(0),
],
q(gera) => [
- q(2488),
+ q(2485),
q(0),
],
q(gergiko) => [
- q(4463),
+ q(4454),
q(1),
],
q(german) => [
@@ -33192,7 +33202,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(german sign language) => [
- q(2635),
+ q(2633),
q(0),
],
q(german, low) => [
@@ -33212,63 +33222,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(geruma) => [
- q(2476),
+ q(2472),
q(0),
],
q(geser-gorom) => [
- q(2487),
+ q(2483),
q(0),
],
q(gey) => [
- q(2665),
+ q(2662),
q(0),
],
q(ghadames) => [
- q(2506),
+ q(2502),
q(0),
],
q(ghanaian pidgin english) => [
- q(2609),
+ q(2607),
q(0),
],
q(ghanaian sign language) => [
- q(2634),
+ q(2632),
q(0),
],
q(ghandruk sign language) => [
- q(2472),
+ q(2468),
q(0),
],
q(ghanongga) => [
- q(2512),
+ q(2508),
q(0),
],
q(ghari) => [
- q(2620),
+ q(2618),
q(0),
],
q(ghayavi) => [
- q(1315),
+ q(1312),
q(0),
],
q(gheg albanian) => [
- q(0757),
+ q(0755),
q(0),
],
q(ghera) => [
- q(2514),
+ q(2510),
q(0),
],
q(ghodoberi) => [
- q(2469),
+ q(2465),
q(0),
],
q(ghomala') => [
- q(1049),
+ q(1046),
q(0),
],
q(ghomara) => [
- q(2513),
+ q(2509),
q(0),
],
q(ghotuo) => [
@@ -33276,27 +33286,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ghulfan) => [
- q(2511),
+ q(2507),
q(0),
],
q(giangan) => [
- q(1170),
+ q(1167),
q(0),
],
q(gibanawa) => [
- q(2518),
+ q(2514),
q(0),
],
q(gichuka) => [
- q(1911),
+ q(1906),
q(1),
],
q(gidar) => [
- q(2520),
+ q(2516),
q(0),
],
q(giiwo) => [
- q(3422),
+ q(3420),
q(0),
],
q(gikuyu) => [
@@ -33304,11 +33314,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(gikyode) => [
- q(0587),
+ q(0586),
q(0),
],
q(gilaki) => [
- q(2550),
+ q(2547),
q(0),
],
q(gilbertese) => [
@@ -33316,139 +33326,139 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gilima) => [
- q(2532),
+ q(2528),
q(0),
],
q(gilyak) => [
- q(4909),
+ q(4899),
q(0),
],
q(gimi (eastern highlands)) => [
- q(2523),
+ q(2519),
q(0),
],
q(gimi (west new britain)) => [
- q(2525),
+ q(2521),
q(0),
],
q(gimme) => [
- q(3470),
+ q(3468),
q(0),
],
q(gimnime) => [
- q(2562),
+ q(2560),
q(0),
],
q(ginuman) => [
- q(2578),
+ q(2576),
q(0),
],
q(ginyanga) => [
- q(0999),
+ q(0996),
q(0),
],
q(girawa) => [
- q(1057),
+ q(1054),
q(0),
],
q(giryama) => [
- q(5168),
+ q(5159),
q(0),
],
q(githabul) => [
- q(2522),
+ q(2518),
q(0),
],
q(gitonga) => [
- q(6647),
+ q(6639),
q(0),
],
q(gitua) => [
- q(2503),
+ q(2499),
q(0),
],
q(gitxsan) => [
- q(2529),
+ q(2525),
q(0),
],
q(giyug) => [
- q(2533),
+ q(2529),
q(0),
],
q(gizrra) => [
- q(6646),
+ q(6638),
q(0),
],
q(glaro-twabo) => [
- q(2553),
+ q(2550),
q(0),
],
q(glavda) => [
- q(2555),
+ q(2552),
q(0),
],
q(glio-oubi) => [
- q(5342),
+ q(5334),
q(0),
],
q(gnau) => [
- q(2584),
+ q(2582),
q(0),
],
q(goan konkani) => [
- q(2598),
+ q(2596),
q(0),
],
q(goaria) => [
- q(2521),
+ q(2517),
q(0),
],
q(gobasi) => [
- q(2594),
+ q(2592),
q(0),
],
q(gobu) => [
- q(2605),
+ q(2603),
q(0),
],
q(godie) => [
- q(2590),
+ q(2588),
q(0),
],
q(godwari) => [
- q(2475),
+ q(2471),
q(0),
],
q(goemai) => [
- q(0801),
+ q(0799),
q(0),
],
q(gofa) => [
- q(2592),
+ q(2590),
q(0),
],
q(gogo) => [
- q(2593),
+ q(2591),
q(0),
],
q(gogodala) => [
- q(2505),
+ q(2501),
q(0),
],
q(gokana) => [
- q(2542),
+ q(2538),
q(0),
],
q(gola) => [
- q(2597),
+ q(2595),
q(0),
],
q(golin) => [
- q(2672),
+ q(2669),
q(0),
],
q(golpa) => [
- q(3938),
+ q(3931),
q(0),
],
q(gondi) => [
@@ -33456,35 +33466,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gone dau) => [
- q(2599),
+ q(2597),
q(0),
],
q(gongduk) => [
- q(2591),
+ q(2589),
q(0),
],
q(gonja) => [
- q(2538),
+ q(2534),
q(0),
],
q(gooniyandi) => [
- q(2575),
+ q(2573),
q(0),
],
q(gor) => [
- q(2614),
+ q(2612),
q(0),
],
q(gorakor) => [
- q(2589),
+ q(2587),
q(0),
],
q(gorap) => [
- q(2601),
+ q(2599),
q(0),
],
q(goreng) => [
- q(7350),
+ q(7342),
q(0),
],
q(gorontalo) => [
@@ -33492,11 +33502,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gorovu) => [
- q(2624),
+ q(2622),
q(0),
],
q(gorowa) => [
- q(2604),
+ q(2602),
q(0),
],
q(gothic) => [
@@ -33504,35 +33514,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(goundo) => [
- q(2606),
+ q(2604),
q(0),
],
q(gourmanchema) => [
- q(2667),
+ q(2664),
q(0),
],
q(gowlan) => [
- q(2595),
+ q(2593),
q(0),
],
q(gowli) => [
- q(2596),
+ q(2594),
q(0),
],
q(gowro) => [
- q(2687),
+ q(2684),
q(0),
],
q(gozarkhani) => [
- q(2607),
+ q(2605),
q(0),
],
q(grangali) => [
- q(4959),
+ q(4949),
q(0),
],
q(grass koiari) => [
- q(3195),
+ q(3192),
q(0),
],
q(grebo) => [
@@ -33548,7 +33558,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(greek sign language) => [
- q(2641),
+ q(2639),
q(0),
],
q(greek, ancient (to 1453)) => [
@@ -33560,7 +33570,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(green gelao) => [
- q(2526),
+ q(2522),
q(0),
],
q(greenlandic) => [
@@ -33568,67 +33578,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(grenadian creole english) => [
- q(2451),
+ q(2447),
q(0),
],
q(gresi) => [
- q(2626),
+ q(2624),
q(0),
],
q(groma) => [
- q(2623),
+ q(2621),
q(0),
],
q(gronings) => [
- q(2602),
+ q(2600),
q(0),
],
q(gros ventre) => [
- q(0926),
+ q(0924),
q(0),
],
q(gua) => [
- q(2696),
+ q(2693),
q(0),
],
q(guadeloupean creole french) => [
- q(2450),
+ q(2446),
q(0),
],
q(guahibo) => [
- q(2652),
+ q(2649),
q(0),
],
q(guaja) => [
- q(2673),
+ q(2670),
q(0),
],
q(guajajara) => [
- q(2646),
+ q(2643),
q(0),
],
q(guambiano) => [
- q(2656),
+ q(2653),
q(0),
],
q(guana (brazil)) => [
- q(2613),
+ q(2611),
q(0),
],
q(guana (paraguay)) => [
- q(2669),
+ q(2666),
q(0),
],
q(guanano) => [
- q(2670),
+ q(2667),
q(0),
],
q(guanche) => [
- q(2570),
+ q(2568),
q(0),
],
q(guanyinqiao) => [
- q(3105),
+ q(3102),
q(0),
],
q(guarani) => [
@@ -33636,111 +33646,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(guarayu) => [
- q(2708),
+ q(2705),
q(0),
],
q(guarequena) => [
- q(2404),
+ q(2400),
q(0),
],
q(guatemalan sign language) => [
- q(2637),
+ q(2635),
q(0),
],
q(guato) => [
- q(2642),
+ q(2640),
q(0),
],
q(guayabero) => [
- q(2658),
+ q(2655),
q(0),
],
q(gudang) => [
- q(7348),
+ q(7340),
q(0),
],
q(gudanji) => [
- q(4918),
+ q(4908),
q(0),
],
q(gude) => [
- q(2459),
+ q(2455),
q(0),
],
q(gudu) => [
- q(2474),
+ q(2470),
q(0),
],
q(guduf-gava) => [
- q(2460),
+ q(2456),
q(0),
],
+ q(guernesiais) => [
+ q(5052),
+ q(1),
+ ],
q(guerrero amuzgo) => [
- q(0786),
+ q(0784),
q(0),
],
q(guerrero nahuatl) => [
- q(4863),
+ q(4853),
q(0),
],
q(guevea de humboldt zapotec) => [
- q(7929),
+ q(7918),
q(0),
],
q(gugadj) => [
- q(2496),
+ q(2492),
q(0),
],
q(gugu badhun) => [
- q(2457),
+ q(2453),
q(0),
],
q(gugu warra) => [
- q(7237),
+ q(7228),
q(0),
],
q(gugubera) => [
- q(3419),
+ q(3417),
q(0),
],
q(guguyimidjir) => [
- q(3428),
+ q(3426),
q(0),
],
q(guhu-samane) => [
- q(2515),
+ q(2511),
q(0),
],
q(guianese creole french) => [
- q(2453),
+ q(2449),
q(0),
],
q(guibei zhuang) => [
- q(7849),
+ q(7838),
q(0),
],
q(guiberoua bete) => [
- q(1131),
+ q(1128),
q(0),
],
q(guibian zhuang) => [
- q(7851),
+ q(7840),
q(0),
],
q(guila zapotec) => [
- q(7971),
+ q(7960),
q(0),
],
q(guinea kpelle) => [
- q(2544),
+ q(2540),
q(0),
],
q(guinean sign language) => [
- q(2662),
+ q(2659),
q(0),
],
q(guiqiong) => [
- q(2612),
+ q(2610),
q(0),
],
q(gujarati) => [
@@ -33748,215 +33762,215 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gujari) => [
- q(2539),
+ q(2535),
q(0),
],
q(gula (central african republic)) => [
- q(3223),
+ q(3220),
q(0),
],
q(gula (chad)) => [
- q(2554),
+ q(2551),
q(0),
],
q(gula iro) => [
- q(2549),
+ q(2546),
q(0),
],
q(gula'alaa) => [
- q(2558),
+ q(2555),
q(0),
],
q(gulay) => [
- q(2674),
+ q(2671),
q(0),
],
q(gule) => [
- q(2556),
+ q(2553),
q(0),
],
q(gulf arabic) => [
- q(0641),
+ q(0639),
q(0),
],
q(guliguli) => [
- q(2548),
+ q(2545),
q(0),
],
q(gumalu) => [
- q(2563),
+ q(2561),
q(0),
],
q(gumatj) => [
- q(2579),
+ q(2577),
q(0),
],
q(gumawana) => [
- q(2680),
+ q(2677),
q(0),
],
q(gumuz) => [
- q(2654),
+ q(2651),
q(0),
],
q(gun) => [
- q(2666),
+ q(2663),
q(0),
],
q(gundi) => [
- q(2463),
+ q(2459),
q(0),
],
q(gunditjmara) => [
- q(2537),
+ q(2533),
q(0),
],
q(gundungurra) => [
- q(7484),
+ q(7477),
q(0),
],
q(gungabula) => [
- q(2702),
+ q(2699),
q(0),
],
q(gungu) => [
- q(5869),
+ q(5861),
q(0),
],
q(guntai) => [
- q(2583),
+ q(2581),
q(0),
],
q(gunwinggu) => [
- q(2659),
+ q(2656),
q(0),
],
q(gunya) => [
- q(2709),
+ q(2706),
q(0),
],
q(gupa-abawa) => [
- q(2608),
+ q(2606),
q(0),
],
q(gupapuyngu) => [
- q(2650),
+ q(2647),
q(0),
],
q(guragone) => [
- q(2497),
+ q(2493),
q(0),
],
q(guramalum) => [
- q(2633),
+ q(2631),
q(0),
],
q(gurani) => [
- q(2715),
+ q(2712),
q(0),
],
q(gurdjar) => [
- q(2464),
+ q(2460),
q(0),
],
q(gureng gureng) => [
- q(2582),
+ q(2580),
q(0),
],
q(gurgula) => [
- q(2498),
+ q(2494),
q(0),
],
q(guriaso) => [
- q(2631),
+ q(2629),
q(0),
],
q(gurinji) => [
- q(2649),
+ q(2646),
q(0),
],
q(gurmana) => [
- q(2675),
+ q(2672),
q(0),
],
q(guro) => [
- q(2587),
+ q(2585),
q(0),
],
q(guruntum-mbaaru) => [
- q(2617),
+ q(2615),
q(0),
],
q(gusan) => [
- q(2638),
+ q(2636),
q(0),
],
q(gusii) => [
- q(2668),
+ q(2665),
q(0),
],
q(gusilay) => [
- q(2636),
+ q(2634),
q(0),
],
q(guwa) => [
- q(7356),
+ q(7348),
q(0),
],
q(guwamu) => [
- q(2694),
+ q(2691),
q(0),
],
q(guwinmal) => [
- q(7353),
- q(0),
+ q(7345),
+ q(1),
],
q(guya) => [
- q(2540),
+ q(2536),
q(0),
],
q(guyanese creole english) => [
- q(2707),
+ q(2704),
q(0),
],
q(guyani) => [
- q(2681),
+ q(2678),
q(0),
],
q(gvoko) => [
- q(4861),
+ q(4851),
q(0),
],
q(gwa) => [
- q(2683),
+ q(2680),
q(0),
],
q(gwahatike) => [
- q(1947),
+ q(1942),
q(0),
],
q(gwak) => [
- q(3090),
+ q(3087),
q(0),
],
q(gwamhi-wuri) => [
- q(1163),
+ q(1160),
q(0),
],
q(gwandara) => [
- q(2691),
+ q(2688),
q(0),
],
q(gweda) => [
- q(2630),
+ q(2628),
q(0),
],
q(gweno) => [
- q(2686),
+ q(2683),
q(0),
],
q(gwere) => [
- q(2692),
+ q(2689),
q(0),
],
q(gwich'in) => [
@@ -33964,51 +33978,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gyele) => [
- q(2704),
+ q(2701),
q(0),
],
q(gyem) => [
- q(2701),
+ q(2698),
q(0),
],
q(ha) => [
- q(2728),
+ q(2725),
q(0),
],
q(habu) => [
- q(2739),
+ q(2736),
q(0),
],
q(hadiyya) => [
- q(2744),
+ q(2741),
q(0),
],
q(hadothi) => [
- q(2820),
+ q(2817),
q(0),
],
q(hadrami) => [
- q(7359),
+ q(7351),
q(0),
],
q(hadrami arabic) => [
- q(1000),
+ q(0997),
q(0),
],
q(hadza) => [
- q(2852),
+ q(2849),
q(0),
],
q(haeke) => [
- q(0630),
+ q(0628),
q(0),
],
q(hahon) => [
- q(2720),
+ q(2717),
q(0),
],
q(hai//om) => [
- q(2751),
+ q(2748),
q(0),
],
q(haida) => [
@@ -34016,15 +34030,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(haigwai) => [
- q(2752),
+ q(2749),
q(0),
],
q(haiphong sign language) => [
- q(2718),
+ q(2715),
q(0),
],
q(haisla) => [
- q(2730),
+ q(2727),
q(0),
],
q(haitian) => [
@@ -34036,159 +34050,159 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(haitian vodoun culture language) => [
- q(2878),
+ q(2875),
q(0),
],
q(haji) => [
- q(2769),
+ q(2766),
q(0),
],
q(hajong) => [
- q(2721),
+ q(2718),
q(0),
],
q(haka chin) => [
- q(1803),
+ q(1798),
q(0),
],
q(hakka chinese) => [
- q(2722),
+ q(2719),
q(0),
],
q(hako) => [
- q(2726),
+ q(2723),
q(0),
],
q(halang) => [
- q(2723),
+ q(2720),
q(0),
],
q(halang doan) => [
- q(2776),
+ q(2773),
q(0),
],
q(halbi) => [
- q(2775),
+ q(2772),
q(0),
],
q(halh mongolian) => [
- q(3343),
+ q(3340),
q(0),
],
q(halia) => [
- q(2774),
+ q(2771),
q(0),
],
q(halkomelem) => [
- q(2869),
+ q(2866),
q(0),
],
q(hamap) => [
- q(2798),
+ q(2795),
q(0),
],
q(hamba) => [
- q(2735),
+ q(2732),
q(0),
],
q(hamea) => [
- q(1744),
+ q(1739),
q(1),
],
q(hamer-banna) => [
- q(0772),
+ q(0770),
q(0),
],
q(hamtai) => [
- q(2797),
+ q(2794),
q(0),
],
q(han) => [
- q(2713),
+ q(2710),
q(0),
],
q(hanga) => [
- q(2719),
+ q(2716),
q(0),
],
q(hanga hundi) => [
- q(7217),
+ q(7208),
q(0),
],
q(hangaza) => [
- q(2725),
+ q(2722),
q(0),
],
q(hani) => [
- q(2807),
+ q(2804),
q(0),
],
q(hano) => [
- q(3993),
+ q(3986),
q(0),
],
q(hanoi sign language) => [
- q(2714),
+ q(2711),
q(0),
],
q(hanunoo) => [
- q(2809),
+ q(2806),
q(0),
],
q(harami) => [
- q(7357),
+ q(7349),
q(0),
],
q(harari) => [
- q(2729),
+ q(2726),
q(0),
],
q(harijan kinnauri) => [
- q(3394),
+ q(3391),
q(0),
],
q(haroi) => [
- q(2839),
+ q(2836),
q(0),
],
q(haroti) => [
- q(2820),
+ q(2817),
q(1),
],
q(harsusi) => [
- q(2849),
+ q(2846),
q(0),
],
q(haruai) => [
- q(6597),
+ q(6589),
q(0),
],
q(haruku) => [
- q(2837),
+ q(2834),
q(0),
],
q(haryanvi) => [
- q(1165),
+ q(1162),
q(0),
],
q(harzani) => [
- q(2845),
+ q(2842),
q(0),
],
q(hasha) => [
- q(7611),
+ q(7603),
q(0),
],
q(hassaniyya) => [
- q(4230),
+ q(4222),
q(0),
],
q(hatam) => [
- q(2716),
+ q(2713),
q(0),
],
q(hattic) => [
- q(7362),
+ q(7354),
q(0),
],
q(hausa) => [
@@ -34196,31 +34210,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hausa sign language) => [
- q(2847),
+ q(2844),
q(0),
],
q(havasupai-walapai-yavapai) => [
- q(7775),
+ q(7765),
q(0),
],
q(haveke) => [
- q(2880),
+ q(2877),
q(0),
],
q(havu) => [
- q(2731),
+ q(2728),
q(0),
],
q(hawai'i creole english) => [
- q(2884),
+ q(2881),
q(0),
],
q(hawai'i pidgin) => [
- q(2884),
+ q(2881),
q(1),
],
q(hawai'i pidgin sign language) => [
- q(2833),
+ q(2830),
+ q(1),
+ ],
+ q(hawai'i sign language (hsl)) => [
+ q(2830),
q(0),
],
q(hawaiian) => [
@@ -34228,15 +34246,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(haya) => [
- q(2733),
+ q(2730),
q(0),
],
q(hazaragi) => [
- q(2734),
+ q(2731),
q(0),
],
q(hdi) => [
- q(7336),
+ q(7328),
q(0),
],
q(hebrew) => [
@@ -34244,35 +34262,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hehe) => [
- q(2748),
+ q(2745),
q(0),
],
q(heiban) => [
- q(2737),
+ q(2734),
q(0),
],
q(heiltsuk) => [
- q(2749),
+ q(2746),
q(0),
],
q(helambu sherpa) => [
- q(5944),
+ q(5935),
q(0),
],
q(helong) => [
- q(2747),
+ q(2744),
q(0),
],
q(hema) => [
- q(4911),
+ q(4901),
q(0),
],
q(hemba) => [
- q(2750),
+ q(2747),
q(0),
],
q(herde) => [
- q(2746),
+ q(2743),
q(0),
],
q(herero) => [
@@ -34280,75 +34298,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hermit) => [
- q(3967),
+ q(3960),
q(0),
],
q(hernican) => [
- q(7361),
+ q(7353),
q(0),
],
q(hertevin) => [
- q(2841),
+ q(2838),
q(0),
],
q(heung kong sau yue) => [
- q(2773),
+ q(2770),
q(1),
],
q(hewa) => [
- q(2724),
+ q(2721),
q(0),
],
q(heyo) => [
- q(0943),
+ q(0940),
q(0),
],
q(hiberno-scottish gaelic) => [
- q(2507),
+ q(2503),
q(0),
],
q(hibito) => [
- q(2757),
+ q(2754),
q(0),
],
q(hidatsa) => [
- q(2758),
+ q(2755),
q(0),
],
q(hieroglyphic luwian) => [
- q(2779),
+ q(2776),
q(0),
],
q(higaonon) => [
- q(4135),
+ q(4127),
q(0),
],
q(highland konjo) => [
- q(3390),
+ q(3387),
q(0),
],
q(highland oaxaca chontal) => [
- q(1724),
+ q(1719),
q(0),
],
q(highland popoluca) => [
- q(5568),
+ q(5559),
q(0),
],
q(highland puebla nahuatl) => [
- q(1023),
+ q(1020),
q(0),
],
q(highland totonac) => [
- q(6656),
+ q(6648),
q(0),
],
q(hijazi arabic) => [
- q(0601),
+ q(0600),
q(0),
],
q(hijuk) => [
- q(2763),
+ q(2760),
q(0),
],
q(hiligaynon) => [
@@ -34360,7 +34378,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(himarima) => [
- q(2766),
+ q(2763),
q(0),
],
q(hindi) => [
@@ -34368,11 +34386,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hinduri) => [
- q(2762),
+ q(2759),
q(0),
],
q(hinukh) => [
- q(2524),
+ q(2520),
q(0),
],
q(hiri motu) => [
@@ -34384,31 +34402,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hitu) => [
- q(2853),
+ q(2850),
q(0),
],
q(hiw) => [
- q(2767),
+ q(2764),
q(0),
],
q(hixkaryana) => [
- q(2768),
+ q(2765),
q(0),
],
q(hlai) => [
- q(3917),
+ q(3911),
q(0),
],
q(hlepho phowa) => [
- q(7651),
+ q(7643),
q(0),
],
q(hlersu) => [
- q(2777),
+ q(2774),
q(0),
],
q(hmar) => [
- q(2795),
+ q(2792),
q(0),
],
q(hmong) => [
@@ -34416,23 +34434,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hmong daw) => [
- q(4652),
+ q(4642),
q(0),
],
q(hmong do) => [
- q(2799),
+ q(2796),
q(0),
],
q(hmong don) => [
- q(2785),
+ q(2782),
q(0),
],
q(hmong njua) => [
- q(2808),
+ q(2805),
q(0),
],
q(hmong shua) => [
- q(2802),
+ q(2799),
q(0),
],
q(hmong-mien languages) => [
@@ -34440,31 +34458,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hmwaveke) => [
- q(4523),
+ q(4514),
q(0),
],
q(ho) => [
- q(2815),
+ q(2812),
q(0),
],
q(ho chi minh city sign language) => [
- q(2826),
+ q(2823),
q(0),
],
q(ho-chunk) => [
- q(7146),
+ q(7137),
q(0),
],
q(hoava) => [
- q(2813),
+ q(2810),
q(0),
],
q(hobyot) => [
- q(2818),
+ q(2815),
q(0),
],
q(hoia hoia) => [
- q(2753),
+ q(2750),
q(0),
],
q(hokan languages) => [
@@ -34472,219 +34490,219 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(holikachuk) => [
- q(2819),
+ q(2816),
q(0),
],
q(holiya) => [
- q(2830),
+ q(2827),
q(0),
],
q(holma) => [
- q(2816),
+ q(2813),
q(0),
],
q(holoholo) => [
- q(2823),
+ q(2820),
q(0),
],
q(holu) => [
- q(2821),
+ q(2818),
q(0),
],
q(homa) => [
- q(2822),
+ q(2819),
q(0),
],
q(honduras sign language) => [
- q(2743),
+ q(2740),
q(0),
],
q(hone) => [
- q(3152),
+ q(3150),
q(0),
],
q(hong kong sign language) => [
- q(2773),
+ q(2770),
q(0),
],
q(honi) => [
- q(2829),
+ q(2826),
q(0),
],
q(hopi) => [
- q(2824),
+ q(2821),
q(0),
],
q(horned miao) => [
- q(2838),
+ q(2835),
q(0),
],
q(horo) => [
- q(2825),
+ q(2822),
q(0),
],
q(horom) => [
- q(2817),
+ q(2814),
q(0),
],
q(horpa) => [
- q(2290),
+ q(2285),
q(0),
],
q(hote) => [
- q(2827),
+ q(2824),
q(0),
],
q(hoti) => [
- q(2850),
+ q(2847),
q(0),
],
q(hovongan) => [
- q(2828),
+ q(2825),
q(0),
],
q(hoyahoya) => [
- q(2755),
+ q(2752),
q(0),
],
q(hozo) => [
- q(2831),
+ q(2828),
q(0),
],
q(hpon) => [
- q(2832),
+ q(2829),
q(0),
],
q(hrangkhol) => [
- q(2834),
+ q(2831),
q(0),
],
q(hre) => [
- q(2836),
+ q(2833),
q(0),
],
q(hruso) => [
- q(2842),
+ q(2839),
q(0),
],
q(hu) => [
- q(2867),
+ q(2864),
q(0),
],
q(huachipaeri) => [
- q(2860),
+ q(2857),
q(0),
],
q(huallaga huanuco quechua) => [
- q(5688),
+ q(5679),
q(0),
],
q(huamalies-dos de mayo huanuco quechua) => [
- q(5711),
+ q(5702),
q(0),
],
q(huambisa) => [
- q(2855),
+ q(2852),
q(0),
],
q(huarijio) => [
- q(6989),
+ q(6980),
q(0),
],
q(huastec) => [
- q(2870),
+ q(2867),
q(0),
],
q(huaulu) => [
- q(2857),
+ q(2854),
q(0),
],
q(huautla mazatec) => [
- q(4130),
+ q(4122),
q(0),
],
q(huaxcaleca nahuatl) => [
- q(4883),
+ q(4873),
q(0),
],
q(huaylas ancash quechua) => [
- q(5725),
+ q(5716),
q(0),
],
q(huaylla wanca quechua) => [
- q(5720),
+ q(5711),
q(0),
],
q(huba) => [
- q(2736),
+ q(2733),
q(0),
],
q(huehuetla tepehua) => [
- q(6461),
+ q(6453),
q(0),
],
q(huichol) => [
- q(2741),
+ q(2738),
q(0),
],
q(huilliche) => [
- q(2861),
+ q(2858),
q(0),
],
q(huitepec mixtec) => [
- q(4674),
+ q(4664),
q(0),
],
q(huizhou chinese) => [
- q(1937),
+ q(1932),
q(0),
],
q(hukumina) => [
- q(2874),
+ q(2871),
q(0),
],
q(hula) => [
- q(2865),
+ q(2862),
q(0),
],
q(hulaula) => [
- q(2876),
+ q(2873),
q(0),
],
q(huli) => [
- q(2862),
+ q(2859),
q(0),
],
q(hulung) => [
- q(2864),
+ q(2861),
q(0),
],
q(humburi senni songhay) => [
- q(2781),
+ q(2778),
q(0),
],
q(humene) => [
- q(2859),
+ q(2856),
q(0),
],
q(humla) => [
- q(2871),
+ q(2868),
q(0),
],
q(hun-saare) => [
- q(2176),
+ q(2171),
q(0),
],
q(hunde) => [
- q(2771),
+ q(2768),
q(0),
],
q(hung) => [
- q(2812),
+ q(2809),
q(0),
],
q(hungana) => [
- q(2866),
+ q(2863),
q(0),
],
q(hungarian) => [
@@ -34692,27 +34710,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hungarian sign language) => [
- q(2846),
+ q(2843),
q(0),
],
q(hungworo) => [
- q(4744),
- q(0),
+ q(4734),
+ q(1),
],
q(hunjara-kaina ke) => [
- q(2772),
+ q(2769),
q(0),
],
q(hunnic) => [
- q(7358),
+ q(7350),
q(0),
],
q(hunsrik) => [
- q(2844),
+ q(2841),
q(0),
],
q(hunzib) => [
- q(2877),
+ q(2874),
q(0),
],
q(hupa) => [
@@ -34720,71 +34738,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hupde) => [
- q(3159),
+ q(3157),
q(0),
],
q(hupla) => [
- q(2727),
+ q(2724),
q(0),
],
q(hurrian) => [
- q(7363),
+ q(7355),
q(0),
],
q(hutterisch) => [
- q(2481),
+ q(2477),
q(1),
],
q(hutterite german) => [
- q(2481),
+ q(2477),
q(0),
],
q(hwana) => [
- q(2885),
+ q(2882),
q(0),
],
q(hya) => [
- q(2886),
+ q(2883),
q(0),
],
q(hyam) => [
- q(3044),
+ q(3041),
q(0),
],
q(i'saka) => [
- q(3604),
+ q(3601),
q(1),
],
q(i-wak) => [
- q(3031),
+ q(3028),
q(0),
],
q(iaai) => [
- q(2887),
+ q(2884),
q(0),
],
q(iamalele) => [
- q(7702),
+ q(7694),
q(0),
],
q(iapama) => [
- q(2889),
+ q(2886),
q(0),
],
q(iatmul) => [
- q(2888),
+ q(2885),
q(0),
],
q(iau) => [
- q(6613),
+ q(6605),
q(0),
],
q(ibali teke) => [
- q(6466),
+ q(6458),
q(0),
],
q(ibaloi) => [
- q(2895),
+ q(2892),
q(0),
],
q(iban) => [
@@ -34792,35 +34810,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ibanag) => [
- q(2894),
+ q(2891),
q(0),
],
q(ibani) => [
- q(2900),
+ q(2897),
q(0),
],
q(ibatan) => [
- q(3029),
+ q(3026),
q(0),
],
q(iberian) => [
- q(7365),
+ q(7357),
q(0),
],
q(ibibio) => [
- q(2891),
+ q(2888),
q(0),
],
q(ibino) => [
- q(2897),
+ q(2894),
q(0),
],
q(ibu) => [
- q(2899),
+ q(2896),
q(0),
],
q(ibuoro) => [
- q(2898),
+ q(2895),
q(0),
],
q(icelandic) => [
@@ -34828,35 +34846,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(icelandic sign language) => [
- q(2903),
+ q(2900),
q(0),
],
q(iceve-maci) => [
- q(1119),
+ q(1116),
q(0),
],
q(ida'an) => [
- q(1967),
+ q(1962),
q(0),
],
q(idakho-isukha-tiriki) => [
- q(2905),
+ q(2902),
q(0),
],
q(idate) => [
- q(2913),
+ q(2910),
q(0),
],
q(idere) => [
- q(2909),
+ q(2906),
q(0),
],
q(idesa) => [
- q(2912),
+ q(2909),
q(0),
],
q(idi) => [
- q(2910),
+ q(2907),
q(0),
],
q(ido) => [
@@ -34864,35 +34882,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(idoma) => [
- q(2914),
+ q(2911),
q(0),
],
q(idon) => [
- q(2907),
+ q(2904),
q(0),
],
q(idu-mishmi) => [
- q(1780),
+ q(1775),
q(0),
],
q(iduna) => [
- q(7013),
+ q(7004),
q(0),
],
q(ife) => [
- q(2917),
+ q(2914),
q(0),
],
q(ifo) => [
- q(2918),
+ q(2915),
q(0),
],
q(igala) => [
- q(2926),
+ q(2923),
q(0),
],
q(igana) => [
- q(2925),
+ q(2922),
q(0),
],
q(igbo) => [
@@ -34900,39 +34918,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(igede) => [
- q(2924),
+ q(2921),
q(0),
],
q(ignaciano) => [
- q(2928),
+ q(2925),
q(0),
],
q(igo) => [
- q(0685),
+ q(0683),
q(0),
],
q(iguta) => [
- q(4742),
+ q(4732),
q(0),
],
q(igwe) => [
- q(2931),
+ q(2928),
q(0),
],
q(iha) => [
- q(2934),
+ q(2931),
q(0),
],
q(iha based pidgin) => [
- q(2932),
+ q(2929),
q(0),
],
q(ihievbe) => [
- q(2933),
+ q(2930),
q(0),
],
q(ija-zuba) => [
- q(7015),
+ q(7006),
q(0),
],
q(ijo languages) => [
@@ -34940,83 +34958,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ik) => [
- q(2952),
+ q(2950),
q(0),
],
q(ika) => [
- q(2944),
+ q(2941),
q(0),
],
q(ikaranggal) => [
- q(2948),
+ q(2945),
q(0),
],
q(ikizu) => [
- q(2953),
+ q(2951),
q(0),
],
q(iko) => [
- q(2943),
+ q(2940),
q(0),
],
q(ikobi) => [
- q(4210),
+ q(4202),
q(0),
],
q(ikoma-nata-isenye) => [
- q(5102),
+ q(5092),
q(0),
],
q(ikpeng) => [
- q(6826),
+ q(6817),
q(0),
],
q(ikpeshi) => [
- q(2947),
+ q(2944),
q(0),
],
q(ikposo) => [
- q(3539),
+ q(3536),
q(0),
],
q(iku-gora-ankwa) => [
- q(2950),
+ q(2948),
q(0),
],
q(ikulu) => [
- q(2945),
+ q(2942),
q(0),
],
q(ikwere) => [
- q(2951),
+ q(2949),
q(0),
],
q(ikwo) => [
- q(2989),
+ q(2986),
q(0),
],
q(ila) => [
- q(2955),
+ q(2953),
q(0),
],
q(ile ape) => [
- q(2954),
+ q(2952),
q(0),
],
q(ili turki) => [
- q(2957),
+ q(2955),
q(0),
],
q(ili'uun) => [
- q(2961),
+ q(2959),
q(0),
],
q(ilianen manobo) => [
- q(4142),
+ q(4134),
q(0),
],
q(illyrian) => [
- q(7367),
+ q(7359),
q(0),
],
q(iloko) => [
@@ -35024,31 +35042,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ilongot) => [
- q(2958),
+ q(2956),
q(0),
],
q(ilue) => [
- q(2962),
+ q(2960),
q(0),
],
q(ilwana) => [
- q(4384),
+ q(4375),
q(0),
],
q(imbabura highland quichua) => [
- q(5712),
+ q(5703),
q(0),
],
q(imbongu) => [
- q(2968),
- q(0),
- ],
- q(imeraguen) => [
- q(2964),
+ q(2965),
q(0),
],
q(imonda) => [
- q(2967),
+ q(2964),
q(0),
],
q(imperial aramaic (700-300 bce)) => [
@@ -35056,19 +35070,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(imroing) => [
- q(2969),
+ q(2966),
q(0),
],
q(inabaknon) => [
- q(0582),
+ q(0581),
q(0),
],
q(inapang) => [
- q(4722),
+ q(4712),
q(0),
],
q(inapari) => [
- q(2979),
+ q(2976),
q(0),
],
q(inari sami) => [
@@ -35076,7 +35090,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(indian sign language) => [
- q(2980),
+ q(2977),
q(0),
],
q(indic languages) => [
@@ -35092,7 +35106,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(indo-portuguese) => [
- q(2906),
+ q(2903),
q(0),
],
q(indonesian) => [
@@ -35100,39 +35114,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(indonesian bajau) => [
- q(1102),
+ q(1099),
q(0),
],
q(indonesian sign language) => [
- q(2975),
+ q(2972),
q(0),
],
q(indri) => [
- q(2911),
+ q(2908),
q(0),
],
q(indus kohistani) => [
- q(4631),
+ q(4622),
q(0),
],
q(indus valley language) => [
- q(7371),
+ q(7364),
q(0),
],
q(inebu one) => [
- q(5225),
+ q(5216),
q(0),
],
q(ineseno) => [
- q(2982),
+ q(2979),
q(0),
],
q(inga) => [
- q(2972),
+ q(2969),
q(0),
],
q(ingrian) => [
- q(3040),
+ q(3037),
q(0),
],
q(ingush) => [
@@ -35140,27 +35154,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(inlaod itneg) => [
- q(3015),
+ q(3012),
q(0),
],
q(inoke-yate) => [
- q(2978),
+ q(2975),
q(0),
],
q(inonhan) => [
- q(4023),
+ q(4015),
q(0),
],
q(inor) => [
- q(2983),
+ q(2980),
q(0),
],
q(inpui naga) => [
- q(4936),
+ q(4926),
q(0),
],
q(interglossa) => [
- q(2930),
+ q(2927),
q(0),
],
q(interlingua (international auxiliary language association)) => [
@@ -35172,15 +35186,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(international sign) => [
- q(2960),
+ q(2958),
q(0),
],
q(intha) => [
- q(2981),
+ q(2978),
q(0),
],
q(inuinnaqtun) => [
- q(2949),
+ q(2947),
+ q(0),
+ ],
+ q(inuit sign language) => [
+ q(2946),
q(0),
],
q(inuktitut) => [
@@ -35192,31 +35210,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(iowa-oto) => [
- q(2985),
+ q(2982),
q(0),
],
q(ipalapa amuzgo) => [
- q(1019),
+ q(1016),
q(0),
],
q(ipiko) => [
- q(2987),
+ q(2984),
q(0),
],
q(ipili) => [
- q(2986),
+ q(2983),
q(0),
],
q(ipulo) => [
- q(0903),
+ q(0902),
q(0),
],
q(iquito) => [
- q(2988),
+ q(2985),
q(0),
],
q(ir) => [
- q(2995),
+ q(2992),
q(0),
],
q(iranian languages) => [
@@ -35224,35 +35242,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(iranian persian) => [
- q(5426),
+ q(5417),
q(0),
],
q(irantxe) => [
- q(2994),
+ q(2991),
q(0),
],
q(iranun) => [
- q(2959),
+ q(2957),
q(0),
],
q(iraqw) => [
- q(2993),
+ q(2990),
q(0),
],
q(irarutu) => [
- q(2991),
+ q(2988),
q(0),
],
q(iraya) => [
- q(2998),
+ q(2995),
q(0),
],
q(iresim) => [
- q(2990),
+ q(2987),
q(0),
],
q(irigwe) => [
- q(2992),
+ q(2989),
q(0),
],
q(irish) => [
@@ -35260,7 +35278,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(irish sign language) => [
- q(3003),
+ q(3000),
q(0),
],
q(irish, middle (900-1200)) => [
@@ -35276,99 +35294,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(irula) => [
- q(2996),
+ q(2993),
q(0),
],
q(isabi) => [
- q(2999),
+ q(2996),
q(0),
],
q(isanzu) => [
- q(3008),
+ q(3005),
q(0),
],
q(isarog agta) => [
- q(0664),
+ q(0662),
q(0),
],
q(isconahua) => [
- q(3000),
+ q(2997),
q(0),
],
q(isebe) => [
- q(2929),
+ q(2926),
q(0),
],
q(isekiri) => [
- q(3021),
+ q(3018),
q(0),
],
q(ishkashimi) => [
- q(3006),
+ q(3003),
q(0),
],
q(isinai) => [
- q(2977),
+ q(2974),
q(0),
],
q(isirawa) => [
- q(6226),
+ q(6217),
q(0),
],
q(island carib) => [
- q(1849),
+ q(1844),
q(0),
],
q(islander creole english) => [
- q(2904),
+ q(2901),
q(0),
],
q(isnag) => [
- q(3001),
+ q(2998),
q(0),
],
q(isoko) => [
- q(3009),
+ q(3006),
q(0),
],
q(israeli sign language) => [
- q(3010),
+ q(3007),
q(0),
],
q(isthmus mixe) => [
- q(4322),
+ q(4313),
q(0),
],
q(isthmus zapotec) => [
- q(7822),
+ q(7811),
q(0),
],
q(isthmus-cosoleacaque nahuatl) => [
- q(4878),
+ q(4868),
q(0),
],
q(isthmus-mecayapan nahuatl) => [
- q(4889),
+ q(4879),
q(0),
],
q(isthmus-pajapan nahuatl) => [
- q(4882),
+ q(4872),
q(0),
],
q(istriot) => [
- q(3011),
+ q(3008),
q(0),
],
q(istro romanian) => [
- q(5877),
+ q(5869),
q(0),
],
q(isu (fako division)) => [
- q(6363),
+ q(6355),
q(0),
],
q(isu (menchum division)) => [
- q(3012),
+ q(3009),
q(0),
],
q(italian) => [
@@ -35376,7 +35394,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(italian sign language) => [
- q(3002),
+ q(2999),
q(0),
],
q(italic languages) => [
@@ -35384,223 +35402,223 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(itawit) => [
- q(3023),
+ q(3020),
q(0),
],
q(itelmen) => [
- q(3017),
+ q(3014),
q(0),
],
q(itene) => [
- q(3014),
+ q(3011),
q(0),
],
q(iteri) => [
- q(3020),
+ q(3017),
q(0),
],
q(itik) => [
- q(3025),
+ q(3022),
q(0),
],
q(ito) => [
- q(3024),
+ q(3021),
q(0),
],
q(itonama) => [
- q(3019),
+ q(3016),
q(0),
],
q(itu mbon uzo) => [
- q(3018),
+ q(3015),
q(0),
],
q(itundujia mixtec) => [
- q(4164),
+ q(4156),
q(0),
],
q(itza) => [
- q(3027),
+ q(3024),
q(0),
],
q(iu mien) => [
- q(3028),
+ q(3025),
q(0),
],
q(ivatan) => [
- q(3030),
+ q(3027),
q(0),
],
q(ivbie north-okpela-arhe) => [
- q(0915),
+ q(0914),
q(0),
],
q(iwaidja) => [
- q(2892),
+ q(2889),
q(0),
],
q(iwal) => [
- q(3197),
+ q(3194),
q(0),
],
q(iwam) => [
- q(3032),
+ q(3029),
q(0),
],
q(iwur) => [
- q(3033),
+ q(3030),
q(0),
],
q(ixcatec) => [
- q(3035),
+ q(3032),
q(0),
],
q(ixcatlan mazatec) => [
- q(4710),
+ q(4700),
q(0),
],
q(ixil) => [
- q(3036),
+ q(3033),
q(0),
],
q(ixtayutla mixtec) => [
- q(7035),
+ q(7026),
q(0),
],
q(ixtenco otomi) => [
- q(5340),
+ q(5332),
q(0),
],
q(iyayu) => [
- q(3037),
+ q(3034),
q(0),
],
q(iyive) => [
- q(6885),
+ q(6877),
q(0),
],
q(iyo) => [
- q(4771),
+ q(4761),
q(0),
],
q(iyo'wujwa chorote) => [
- q(1861),
+ q(1856),
q(0),
],
q(iyojwa'ja chorote) => [
- q(1864),
+ q(1859),
q(0),
],
q(izere) => [
- q(3041),
+ q(3038),
q(0),
],
q(izii) => [
- q(3042),
+ q(3039),
q(0),
],
q(izon) => [
- q(2937),
+ q(2934),
q(0),
],
q(izora) => [
- q(1676),
+ q(1670),
q(0),
],
q(jabuti) => [
- q(3069),
+ q(3066),
q(0),
],
q(jad) => [
- q(3074),
+ q(3071),
q(0),
],
q(jadgali) => [
- q(3075),
+ q(3072),
q(0),
],
q(jah hut) => [
- q(3049),
+ q(3046),
q(0),
],
q(jahanka) => [
- q(3046),
+ q(3043),
q(0),
],
q(jair awyu) => [
- q(0983),
+ q(0980),
q(0),
],
q(jaitmatang) => [
- q(7374),
+ q(7367),
q(0),
],
q(jakalteko) => [
- q(3045),
+ q(3042),
q(1),
],
q(jakati) => [
- q(3058),
+ q(3055),
q(0),
],
q(jakun) => [
- q(3051),
+ q(3048),
q(0),
],
q(jalapa de diaz mazatec) => [
- q(4126),
+ q(4118),
q(0),
],
q(jalkunan) => [
- q(1581),
+ q(1577),
q(0),
],
q(jamaican country sign language) => [
- q(3072),
+ q(3069),
q(0),
],
q(jamaican creole english) => [
- q(3053),
+ q(3050),
q(0),
],
q(jamaican sign language) => [
- q(3117),
+ q(3115),
q(0),
],
q(jamamadi) => [
- q(3043),
+ q(3040),
q(0),
],
q(jambi malay) => [
- q(3060),
+ q(3057),
q(0),
],
q(jamiltepec mixtec) => [
- q(4675),
+ q(4665),
q(0),
],
q(jamsay dogon) => [
- q(2071),
+ q(2066),
q(0),
],
q(jandai) => [
- q(3054),
+ q(3051),
q(0),
],
q(jandavra) => [
- q(3130),
+ q(3128),
q(0),
],
q(jangkang) => [
- q(2073),
+ q(2068),
q(0),
],
q(jangshung) => [
- q(3129),
+ q(3127),
q(0),
],
q(janji) => [
- q(3132),
+ q(3130),
q(0),
],
q(japanese) => [
@@ -35612,39 +35630,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(japanese sign language) => [
- q(3147),
+ q(3145),
q(0),
],
q(japreria) => [
- q(3146),
+ q(3144),
q(0),
],
q(jaqaru) => [
- q(3142),
+ q(3140),
q(0),
],
q(jara) => [
- q(3048),
+ q(3045),
q(0),
],
q(jarai) => [
- q(3143),
+ q(3141),
q(0),
],
q(jarawa (india)) => [
- q(0806),
+ q(0804),
q(0),
],
q(jaru) => [
- q(1987),
+ q(1982),
q(0),
],
q(jauja wanca quechua) => [
- q(5741),
+ q(5732),
q(0),
],
q(jaunsari) => [
- q(3135),
+ q(3133),
q(0),
],
q(javanese) => [
@@ -35652,111 +35670,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(javindo) => [
- q(3166),
+ q(3164),
q(0),
],
q(jawe) => [
- q(3062),
+ q(3059),
q(0),
],
q(jaya) => [
- q(3171),
+ q(3169),
q(0),
],
q(jebero) => [
- q(3077),
+ q(3074),
q(0),
],
q(jeh) => [
- q(3080),
+ q(3077),
q(0),
],
q(jehai) => [
- q(3092),
+ q(3089),
+ q(0),
+ ],
+ q(jejueo) => [
+ q(3107),
q(0),
],
q(jemez) => [
- q(6659),
+ q(6651),
q(0),
],
q(jenaama bozo) => [
- q(1622),
+ q(1616),
q(0),
],
q(jeng) => [
- q(3079),
+ q(3076),
q(0),
],
q(jennu kurumba) => [
- q(7541),
+ q(7533),
q(0),
],
q(jere) => [
- q(3085),
+ q(3082),
q(0),
],
q(jeri kuo) => [
- q(3082),
+ q(3079),
+ q(0),
+ ],
+ q(jerriais) => [
+ q(5052),
q(0),
],
q(jerung) => [
- q(3078),
+ q(3075),
q(0),
],
q(jewish babylonian aramaic (ca. 200-1200 ce)) => [
- q(6610),
+ q(6602),
q(0),
],
q(jewish palestinian aramaic) => [
- q(3141),
+ q(3139),
q(0),
],
q(jhankot sign language) => [
- q(3093),
+ q(3090),
q(0),
],
q(jiamao) => [
- q(3104),
+ q(3101),
q(0),
],
q(jiarong) => [
- q(3169),
+ q(3167),
q(0),
],
q(jiba) => [
- q(3158),
+ q(3156),
q(0),
],
q(jibu) => [
- q(3095),
+ q(3092),
q(0),
],
q(jicarilla apache) => [
- q(0844),
+ q(0842),
q(0),
],
q(jiiddu) => [
- q(3101),
+ q(3098),
q(0),
],
q(jilbe) => [
- q(3098),
+ q(3095),
q(0),
],
q(jilim) => [
- q(3102),
+ q(3099),
q(0),
],
q(jimi (cameroon)) => [
- q(3103),
+ q(3100),
q(0),
],
q(jimi (nigeria)) => [
- q(3122),
+ q(3120),
q(0),
],
q(jina) => [
- q(3094),
+ q(3091),
q(0),
],
q(jingpho) => [
@@ -35764,75 +35790,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(jinyu chinese) => [
- q(1758),
+ q(1753),
q(0),
],
q(jiongnai bunu) => [
- q(5556),
+ q(5547),
q(0),
],
q(jirel) => [
- q(3155),
+ q(3153),
q(0),
],
q(jiru) => [
- q(3144),
+ q(3142),
q(0),
],
q(jita) => [
- q(3106),
+ q(3103),
q(0),
],
q(jju) => [
- q(3178),
+ q(3176),
q(0),
],
q(joba) => [
- q(3136),
+ q(3134),
q(0),
],
q(jofotek-bromnya) => [
- q(3068),
+ q(3065),
q(0),
],
q(jola-fonyi) => [
- q(2209),
+ q(2204),
q(0),
],
q(jola-kasa) => [
- q(1879),
+ q(1874),
q(0),
],
q(jonkor bourmataguil) => [
- q(3087),
+ q(3084),
q(0),
],
q(jora) => [
- q(3138),
+ q(3136),
q(0),
],
q(jordanian sign language) => [
- q(3139),
+ q(3137),
q(0),
],
q(jorto) => [
- q(3145),
+ q(3143),
q(0),
],
q(jowulu) => [
- q(3140),
+ q(3138),
q(0),
],
q(ju) => [
- q(3163),
+ q(3161),
q(0),
],
q(ju/'hoan) => [
- q(3647),
+ q(3644),
q(0),
],
q(juang) => [
- q(3157),
+ q(3155),
q(0),
],
q(judeo-arabic) => [
@@ -35840,23 +35866,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(judeo-berber) => [
- q(3063),
+ q(3060),
q(0),
],
q(judeo-georgian) => [
- q(3089),
+ q(3086),
q(0),
],
q(judeo-iraqi arabic) => [
- q(7650),
+ q(7642),
q(0),
],
q(judeo-italian) => [
- q(3016),
+ q(3013),
q(0),
],
q(judeo-moroccan arabic) => [
- q(0721),
+ q(0719),
q(0),
],
q(judeo-persian) => [
@@ -35864,115 +35890,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(judeo-tat) => [
- q(3076),
+ q(3073),
q(0),
],
q(judeo-tripolitanian arabic) => [
- q(7773),
+ q(7763),
q(0),
],
q(judeo-tunisian arabic) => [
- q(0720),
+ q(0718),
q(0),
],
q(judeo-yemeni arabic) => [
- q(3170),
+ q(3168),
q(0),
],
q(jukun takum) => [
- q(3070),
+ q(3067),
q(0),
],
q(juma) => [
- q(3148),
+ q(3146),
q(0),
],
q(jumjum) => [
- q(3156),
+ q(3154),
q(0),
],
q(jumla sign language) => [
- q(3161),
+ q(3159),
q(0),
],
q(jumli) => [
- q(3123),
+ q(3121),
q(0),
],
q(jungle inga) => [
- q(2974),
+ q(2971),
q(0),
],
q(juquila mixe) => [
- q(4672),
+ q(4662),
q(0),
],
q(jur modo) => [
- q(1135),
+ q(1132),
q(0),
],
q(juray) => [
- q(3165),
+ q(3163),
q(0),
],
q(jurchen) => [
- q(3150),
+ q(3148),
q(0),
],
q(juruna) => [
- q(3160),
+ q(3158),
q(0),
],
q(jutish) => [
- q(3162),
+ q(3160),
q(0),
],
q(juwal) => [
- q(4634),
+ q(4625),
q(0),
],
q(juxtlahuaca mixtec) => [
- q(7028),
+ q(7019),
q(0),
],
q(jwira-pepesa) => [
- q(3168),
+ q(3166),
q(0),
],
q(k'iche') => [
- q(5689),
+ q(5680),
q(0),
],
q(kaamba) => [
- q(7394),
+ q(7387),
q(0),
],
q(kaan) => [
- q(3858),
+ q(3853),
q(0),
],
q(kaang chin) => [
- q(1762),
+ q(1757),
q(0),
],
q(kaansa) => [
- q(2568),
+ q(2566),
q(0),
],
q(kaapor) => [
- q(6935),
+ q(6926),
q(1),
],
q(kaapor sign language) => [
- q(6893),
+ q(6885),
q(1),
],
q(kaba) => [
- q(3611),
+ q(3608),
q(0),
],
q(kabalai) => [
- q(3674),
+ q(3671),
q(0),
],
q(kabardian) => [
@@ -35980,47 +36006,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kabatei) => [
- q(7389),
+ q(7382),
q(0),
],
q(kabixi) => [
- q(7313),
+ q(7305),
q(0),
],
q(kabiye) => [
- q(3200),
+ q(3197),
q(0),
],
q(kabola) => [
- q(3455),
+ q(3453),
q(0),
],
q(kabore one) => [
- q(5280),
+ q(5272),
q(0),
],
q(kabras) => [
- q(3946),
+ q(3939),
q(0),
],
q(kaburi) => [
- q(6887),
+ q(6879),
q(0),
],
q(kabutra) => [
- q(3205),
+ q(3202),
q(0),
],
q(kabuverdianu) => [
- q(3259),
+ q(3256),
q(0),
],
q(kabwa) => [
- q(1928),
+ q(1923),
q(0),
],
q(kabwari) => [
- q(3233),
+ q(3230),
q(0),
],
q(kabyle) => [
@@ -36028,19 +36054,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kachama-ganjule) => [
- q(3234),
+ q(3231),
q(0),
],
q(kachari) => [
- q(7282),
+ q(7273),
q(0),
],
q(kachchi) => [
- q(3302),
+ q(3299),
q(0),
],
q(kachi koli) => [
- q(2536),
+ q(2532),
q(0),
],
q(kachin) => [
@@ -36048,195 +36074,191 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kacipo-balesi) => [
- q(3509),
+ q(3507),
q(0),
],
q(kaco') => [
- q(7385),
+ q(7378),
q(0),
],
q(kadai) => [
- q(3775),
+ q(3770),
q(0),
],
q(kadar) => [
- q(3268),
+ q(3265),
q(0),
],
q(kadaru) => [
- q(3254),
+ q(3251),
q(0),
],
q(kadiweu) => [
- q(3188),
+ q(3186),
q(0),
],
q(kadu) => [
- q(7869),
+ q(7858),
q(0),
],
q(kaduo) => [
- q(3637),
+ q(3634),
q(0),
],
q(kafa) => [
- q(3202),
+ q(3199),
q(0),
],
q(kafoa) => [
- q(3544),
+ q(3541),
q(0),
],
q(kagan kalagan) => [
- q(3441),
+ q(3439),
q(0),
],
q(kagate) => [
- q(6352),
+ q(6343),
q(0),
],
q(kagayanen) => [
- q(1720),
+ q(1715),
q(0),
],
q(kagoma) => [
- q(3248),
+ q(3245),
q(0),
],
q(kagoro) => [
- q(7381),
+ q(7374),
q(0),
],
q(kagulu) => [
- q(3412),
+ q(3410),
q(0),
],
q(kahe) => [
- q(2770),
+ q(2767),
q(0),
],
q(kahua) => [
- q(0675),
+ q(0673),
q(0),
],
q(kaian) => [
- q(3230),
+ q(3227),
q(0),
],
q(kaibobo) => [
- q(3773),
+ q(3768),
q(0),
],
q(kaidipang) => [
- q(3786),
+ q(3781),
q(0),
],
q(kaiep) => [
- q(3207),
+ q(3204),
q(0),
],
q(kaikadi) => [
- q(3274),
+ q(3271),
+ q(0),
+ ],
+ q(kaikavian literary language) => [
+ q(3398),
q(0),
],
q(kaike) => [
- q(3787),
+ q(3782),
q(0),
],
q(kaiku) => [
- q(3420),
+ q(3418),
q(0),
],
q(kaimbe) => [
- q(7286),
+ q(7277),
q(0),
],
q(kaimbulawa) => [
- q(7867),
+ q(7856),
q(0),
],
q(kaingang) => [
- q(3325),
+ q(3322),
q(0),
],
q(kairak) => [
- q(1765),
+ q(1760),
q(0),
],
q(kairiru) => [
- q(3721),
+ q(3717),
q(0),
],
q(kairui-midiki) => [
- q(3578),
+ q(3575),
q(0),
],
q(kais) => [
- q(3783),
+ q(3778),
q(0),
],
q(kaivi) => [
- q(3215),
+ q(3212),
q(0),
],
q(kaiwa) => [
- q(3320),
+ q(3317),
q(0),
],
q(kaiy) => [
- q(6427),
+ q(6419),
q(0),
],
q(kajakse) => [
- q(1764),
+ q(1759),
q(0),
],
q(kajali) => [
- q(7384),
+ q(7377),
q(0),
],
q(kajaman) => [
- q(3175),
+ q(3173),
q(0),
],
q(kakabai) => [
- q(3555),
+ q(3552),
q(0),
],
q(kakabe) => [
- q(3408),
+ q(3406),
q(0),
],
q(kakanda) => [
- q(3404),
- q(0),
- ],
- q(kakauhua) => [
- q(3190),
+ q(3402),
q(0),
],
q(kaki ae) => [
- q(6390),
- q(0),
- ],
- q(kakihum) => [
- q(3725),
+ q(6382),
q(0),
],
q(kako) => [
- q(3413),
+ q(3411),
q(0),
],
q(kakwa) => [
- q(3273),
+ q(3270),
q(0),
],
q(kala) => [
- q(3222),
+ q(3219),
q(1),
],
q(kala lagaw ya) => [
- q(4646),
+ q(4636),
q(0),
],
q(kalaallisut) => [
@@ -36244,79 +36266,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kalaamaya) => [
- q(3954),
+ q(3947),
q(0),
],
q(kalabakan) => [
- q(3673),
+ q(3670),
q(0),
],
q(kalabari) => [
- q(2940),
+ q(2937),
q(0),
],
q(kalabra) => [
- q(3796),
+ q(3791),
q(0),
],
q(kalagan) => [
- q(3554),
+ q(3551),
q(0),
],
q(kalaktang monpa) => [
- q(3409),
+ q(3407),
q(0),
],
q(kalam) => [
- q(3462),
+ q(3460),
q(0),
],
q(kalami) => [
- q(2684),
+ q(2681),
q(0),
],
q(kalamse) => [
- q(3505),
+ q(3503),
q(0),
],
q(kalanadi) => [
- q(7156),
+ q(7147),
q(0),
],
q(kalanga) => [
- q(3221),
+ q(3218),
q(0),
],
q(kalao) => [
- q(3454),
+ q(3452),
q(0),
],
q(kalapuya) => [
- q(3757),
+ q(3752),
q(0),
],
q(kalarko) => [
- q(3186),
+ q(3184),
q(0),
],
q(kalasha) => [
- q(3448),
+ q(3446),
q(0),
],
q(kalenjin) => [
- q(3443),
+ q(3441),
q(0),
],
q(kalispel-pend d'oreille) => [
- q(2356),
+ q(2352),
q(0),
],
q(kalkoti) => [
- q(7375),
+ q(7368),
q(0),
],
q(kalkutung) => [
- q(3628),
+ q(3625),
q(0),
],
q(kalmyk) => [
@@ -36324,75 +36346,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kalo finnish romani) => [
- q(5818),
+ q(5809),
q(0),
],
q(kalou) => [
- q(7794),
+ q(7783),
q(0),
],
q(kaluli) => [
- q(1080),
+ q(1077),
q(0),
],
q(kalumpang) => [
- q(3438),
+ q(3436),
q(0),
],
q(kam) => [
- q(3256),
+ q(3253),
q(0),
],
q(kamakan) => [
- q(7019),
+ q(7010),
q(0),
],
q(kamang) => [
- q(7211),
+ q(7202),
q(0),
],
q(kamano) => [
- q(3201),
+ q(3198),
q(0),
],
q(kamantan) => [
- q(3219),
+ q(3216),
q(0),
],
q(kamar) => [
- q(3275),
+ q(3272),
q(0),
],
q(kamara) => [
- q(3125),
+ q(3123),
q(0),
],
q(kamarian) => [
- q(3794),
+ q(3789),
q(0),
],
q(kamaru) => [
- q(3333),
+ q(3330),
q(0),
],
q(kamas) => [
- q(7293),
+ q(7285),
q(0),
],
q(kamasa) => [
- q(3445),
+ q(3443),
q(0),
],
q(kamasau) => [
- q(3473),
+ q(3471),
q(0),
],
q(kamayo) => [
- q(3756),
+ q(3751),
q(0),
],
q(kamayura) => [
- q(3185),
+ q(3183),
q(0),
],
q(kamba) => [
@@ -36400,7 +36422,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kamba (brazil)) => [
- q(7299),
+ q(7291),
q(0),
],
q(kamba (kenya)) => [
@@ -36408,175 +36430,175 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(kambaata) => [
- q(3623),
+ q(3620),
q(0),
],
q(kambaira) => [
- q(3770),
+ q(3765),
q(0),
],
q(kambera) => [
- q(7311),
+ q(7303),
q(0),
],
q(kamberau) => [
- q(2997),
+ q(2994),
q(0),
],
q(kambiwa) => [
- q(7312),
+ q(7304),
q(0),
],
q(kami (nigeria)) => [
- q(3463),
+ q(3461),
q(0),
],
q(kami (tanzania)) => [
- q(3231),
+ q(3228),
q(0),
],
q(kamo) => [
- q(3227),
+ q(3224),
q(0),
],
q(kamoro) => [
- q(3326),
+ q(3323),
q(0),
],
q(kamta) => [
- q(5811),
+ q(5802),
q(1),
],
q(kamu) => [
- q(7432),
+ q(7425),
q(0),
],
q(kamula) => [
- q(7400),
+ q(7393),
q(0),
],
q(kamviri) => [
- q(7551),
+ q(7543),
q(0),
],
q(kamwe) => [
- q(2760),
+ q(2757),
q(0),
],
q(kanakanabu) => [
- q(7439),
+ q(7432),
q(0),
],
q(kanamari) => [
- q(3492),
+ q(3490),
q(0),
],
q(kanan) => [
- q(7873),
+ q(7862),
q(0),
],
q(kanashi) => [
- q(7447),
+ q(7440),
q(0),
],
q(kanasi) => [
- q(6178),
+ q(6168),
q(0),
],
q(kanauji) => [
- q(1241),
+ q(1238),
q(0),
],
q(kandas) => [
- q(3572),
+ q(3569),
q(0),
],
q(kandawo) => [
- q(2412),
+ q(2408),
q(0),
],
q(kande) => [
- q(3203),
+ q(3200),
q(0),
],
q(kanembu) => [
- q(3196),
+ q(3193),
q(0),
],
q(kang) => [
- q(3761),
+ q(3756),
q(0),
],
q(kanga) => [
- q(3226),
+ q(3223),
q(0),
],
q(kangean) => [
- q(3425),
+ q(3423),
q(0),
],
q(kanggape) => [
- q(2927),
+ q(2924),
q(0),
],
q(kangjia) => [
- q(3738),
+ q(3733),
q(0),
],
q(kango (bas-uele district)) => [
- q(3646),
+ q(3643),
q(0),
],
q(kango (tshopo district)) => [
- q(3795),
+ q(3790),
q(0),
],
q(kangri) => [
- q(7446),
+ q(7439),
q(0),
],
q(kaniet) => [
- q(3632),
+ q(3629),
q(0),
],
q(kanikkaran) => [
- q(3280),
+ q(3277),
q(0),
],
q(kaningdon-nindem) => [
- q(3250),
+ q(3247),
q(0),
],
q(kaningi) => [
- q(3785),
+ q(3780),
q(0),
],
q(kaningra) => [
- q(3497),
+ q(3495),
q(0),
],
q(kaninuwa) => [
- q(7079),
+ q(7070),
q(0),
],
q(kanite) => [
- q(3475),
+ q(3473),
q(0),
],
q(kanjari) => [
- q(3304),
+ q(3301),
q(0),
],
q(kanjobal) => [
- q(3381),
+ q(3378),
q(1),
],
q(kanju) => [
- q(3189),
+ q(3187),
q(0),
],
q(kankanaey) => [
- q(3485),
+ q(3483),
q(0),
],
q(kannada) => [
@@ -36584,31 +36606,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kannada kurumba) => [
- q(3293),
+ q(3290),
q(0),
],
q(kanoe) => [
- q(3734),
+ q(3729),
q(0),
],
q(kanowit-tanjong melanau) => [
- q(3733),
+ q(3728),
q(0),
],
q(kansa) => [
- q(3606),
+ q(3603),
q(0),
],
q(kantosi) => [
- q(7393),
+ q(7386),
q(0),
],
q(kanu) => [
- q(3354),
+ q(3351),
q(0),
],
q(kanufi) => [
- q(3488),
+ q(3486),
q(0),
],
q(kanuri) => [
@@ -36616,19 +36638,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kanyok) => [
- q(3504),
+ q(3502),
q(0),
],
q(kao) => [
- q(3184),
+ q(3182),
q(0),
],
q(kaonde) => [
- q(3563),
+ q(3560),
q(0),
],
q(kap) => [
- q(7675),
+ q(7667),
q(0),
],
q(kapampangan) => [
@@ -36636,55 +36658,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(kapauri) => [
- q(3346),
+ q(3343),
q(1),
],
q(kapin) => [
- q(6409),
+ q(6401),
q(0),
],
q(kapinawa) => [
- q(7471),
+ q(7464),
q(0),
],
q(kapingamarangi) => [
- q(3531),
+ q(3528),
q(0),
],
q(kapori) => [
- q(3346),
+ q(3343),
q(0),
],
q(kapriman) => [
- q(2075),
+ q(2070),
q(0),
],
q(kaptiau) => [
- q(3193),
+ q(3190),
q(0),
],
q(kapya) => [
- q(3444),
+ q(3442),
q(0),
],
q(kaqchikel) => [
- q(1652),
+ q(1646),
q(0),
],
q(kara (central african republic)) => [
- q(3176),
+ q(3174),
q(0),
],
q(kara (korea)) => [
- q(7950),
+ q(7939),
q(0),
],
q(kara (papua new guinea)) => [
- q(3884),
+ q(3878),
q(0),
],
q(kara (tanzania)) => [
- q(5775),
+ q(5766),
q(0),
],
q(kara-kalpak) => [
@@ -36696,79 +36718,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(karadjeri) => [
- q(2425),
+ q(2421),
q(0),
],
q(karagas) => [
- q(3368),
+ q(3365),
q(0),
],
q(karahawyana) => [
- q(7382),
+ q(7375),
q(0),
],
q(karaim) => [
- q(3252),
+ q(3249),
q(0),
],
q(karaja) => [
- q(3534),
+ q(3531),
q(0),
],
q(karakhanid) => [
- q(7480),
+ q(7473),
q(0),
],
q(karami) => [
- q(7292),
+ q(7284),
q(0),
],
q(karamojong) => [
- q(3245),
+ q(3242),
q(0),
],
q(karang) => [
- q(3788),
+ q(3783),
q(0),
],
q(karanga) => [
- q(3629),
+ q(3626),
q(0),
],
q(karankawa) => [
- q(7872),
+ q(7861),
q(0),
],
q(karao) => [
- q(3755),
+ q(3750),
q(0),
],
q(karas) => [
- q(3331),
+ q(3328),
q(0),
],
q(karata) => [
- q(3543),
+ q(3540),
q(0),
],
q(karawa) => [
- q(7494),
+ q(7487),
q(0),
],
q(karbi) => [
- q(4348),
+ q(4339),
q(0),
],
q(kare (central african republic)) => [
- q(3198),
+ q(3195),
q(0),
],
q(kare (papua new guinea)) => [
- q(3460),
+ q(3458),
q(0),
],
q(karekare) => [
- q(3177),
+ q(3175),
q(0),
],
q(karelian) => [
@@ -36780,103 +36802,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(karenggapa) => [
- q(2217),
+ q(2211),
q(0),
],
q(karey) => [
- q(3749),
+ q(3744),
q(0),
],
q(kari) => [
- q(3194),
+ q(3191),
q(0),
],
q(karingani) => [
- q(3323),
+ q(3320),
q(0),
],
q(karipuna) => [
- q(3322),
+ q(3319),
q(0),
],
q(karipuna creole french) => [
- q(3476),
+ q(3474),
q(0),
],
q(kariri-xoco) => [
- q(3793),
+ q(3788),
q(0),
],
q(karitiana) => [
- q(3635),
+ q(3632),
q(0),
],
q(kariya) => [
- q(3367),
+ q(3364),
q(0),
],
q(kariyarra) => [
- q(7014),
+ q(7005),
q(0),
],
q(karkar-yuri) => [
- q(7778),
+ q(7768),
q(0),
],
q(karkin) => [
- q(3577),
+ q(3574),
q(0),
],
q(karko) => [
- q(3418),
+ q(3416),
q(0),
],
q(karnai) => [
- q(1061),
+ q(1058),
q(0),
],
q(karo (brazil)) => [
- q(0879),
+ q(0878),
q(0),
],
q(karo (ethiopia)) => [
- q(3727),
+ q(3722),
q(0),
],
q(karok) => [
- q(3753),
+ q(3748),
q(0),
],
q(karon) => [
- q(3593),
+ q(3590),
q(0),
],
q(karon dori) => [
- q(3332),
+ q(3329),
q(0),
],
q(karore) => [
- q(7397),
+ q(7390),
q(0),
],
q(karranga) => [
- q(7490),
+ q(7483),
q(0),
],
q(karuwali) => [
- q(5889),
+ q(5881),
q(0),
],
q(kasanga) => [
- q(1690),
+ q(1685),
q(0),
],
q(kasem) => [
- q(7504),
+ q(7496),
q(0),
],
q(kashaya) => [
- q(3400),
+ q(3397),
q(0),
],
q(kashmiri) => [
@@ -36888,123 +36910,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kasiguranin) => [
- q(3609),
+ q(3606),
q(0),
],
q(kaska) => [
- q(3429),
+ q(3427),
q(0),
],
q(kaskean) => [
- q(7957),
+ q(7946),
q(0),
],
q(kasseng) => [
- q(3313),
+ q(3310),
q(0),
],
q(kasua) => [
- q(3349),
+ q(3346),
q(0),
],
q(kataang) => [
- q(3314),
+ q(3311),
q(0),
],
q(katabaga) => [
- q(3638),
+ q(3635),
q(0),
],
q(katawixi) => [
- q(7294),
+ q(7286),
q(0),
],
q(katbol) => [
- q(6595),
+ q(6587),
q(0),
],
q(katcha-kadugli-miri) => [
- q(7516),
+ q(7508),
q(0),
],
q(kate) => [
- q(3461),
+ q(3459),
q(0),
],
q(kathoriya tharu) => [
- q(6568),
+ q(6559),
q(0),
],
q(kathu) => [
- q(7679),
+ q(7671),
q(0),
],
q(kati) => [
- q(1456),
+ q(1452),
q(0),
],
q(katkari) => [
- q(3305),
+ q(3302),
q(0),
],
q(katla) => [
- q(3228),
+ q(3225),
q(0),
],
q(kato) => [
- q(3644),
+ q(3641),
q(0),
],
q(katso) => [
- q(3174),
+ q(3172),
q(0),
],
q(katua) => [
- q(3622),
+ q(3619),
q(0),
],
q(katukina) => [
- q(3183),
+ q(3181),
q(0),
],
q(kaulong) => [
- q(5631),
+ q(5622),
q(0),
],
q(kaur) => [
- q(7017),
+ q(7008),
q(0),
],
q(kaure) => [
- q(1390),
+ q(1386),
q(0),
],
q(kaurna) => [
- q(7878),
+ q(7867),
q(0),
],
q(kauwera) => [
- q(7295),
+ q(7287),
q(0),
],
q(kavalan) => [
- q(1769),
+ q(1764),
q(0),
],
q(kavet) => [
- q(3591),
+ q(3588),
q(0),
],
q(kawacha) => [
- q(3212),
+ q(3209),
q(0),
],
q(kawaiisu) => [
- q(7297),
+ q(7289),
q(0),
],
q(kawe) => [
- q(3312),
+ q(3309),
q(0),
],
q(kawi) => [
@@ -37012,67 +37034,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kaxarari) => [
- q(3645),
+ q(3642),
q(0),
],
q(kaxuiana) => [
- q(3187),
+ q(3185),
q(0),
],
q(kayabi) => [
- q(3771),
+ q(3766),
q(0),
],
q(kayagar) => [
- q(3765),
+ q(3760),
q(0),
],
q(kayan) => [
- q(5411),
+ q(5402),
q(0),
],
q(kayan mahakam) => [
- q(7298),
+ q(7290),
q(0),
],
q(kayan river kayan) => [
- q(7387),
+ q(7380),
q(0),
],
q(kayapa kallahan) => [
- q(3179),
+ q(3177),
q(0),
],
q(kayapo) => [
- q(6834),
+ q(6826),
q(0),
],
q(kayardild) => [
- q(2700),
+ q(2697),
q(0),
],
q(kayaw) => [
- q(3680),
+ q(3677),
q(0),
],
q(kayeli) => [
- q(3782),
+ q(3777),
q(0),
],
q(kayong) => [
- q(3744),
+ q(3739),
q(0),
],
q(kayort) => [
- q(3767),
+ q(3762),
q(0),
],
q(kaytetye) => [
- q(2424),
+ q(2420),
q(0),
],
q(kayupulau) => [
- q(3791),
+ q(3786),
q(0),
],
q(kazakh) => [
@@ -37080,323 +37102,323 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kazukuru) => [
- q(3781),
+ q(3776),
q(0),
],
q(ke'o) => [
- q(7568),
+ q(7560),
q(0),
],
q(keak) => [
- q(3266),
+ q(3263),
q(0),
],
q(keapara) => [
- q(3356),
+ q(3353),
q(0),
],
q(kedah malay) => [
- q(4221),
+ q(4213),
q(0),
],
q(kedang) => [
- q(3619),
+ q(3616),
q(0),
],
q(keder) => [
- q(3257),
+ q(3254),
q(0),
],
q(kehu) => [
- q(3341),
+ q(3338),
q(0),
],
q(kei) => [
- q(3267),
+ q(3264),
q(0),
],
q(keiga) => [
- q(3261),
+ q(3258),
q(0),
],
q(keijar) => [
- q(3257),
+ q(3254),
q(1),
],
q(kein) => [
- q(1312),
+ q(1309),
q(0),
],
q(keiyo) => [
- q(2322),
+ q(2318),
q(0),
],
q(kekchi) => [
- q(3269),
+ q(3266),
q(0),
],
q(kela (democratic republic of congo)) => [
- q(3270),
+ q(3267),
q(0),
],
q(kela (papua new guinea)) => [
- q(3222),
+ q(3219),
q(0),
],
q(kelabit) => [
- q(3779),
+ q(3774),
q(0),
],
q(kele) => [
- q(3260),
+ q(3257),
q(0),
],
q(kele (democratic republic of congo)) => [
- q(3355),
+ q(3352),
q(0),
],
q(kele (papua new guinea)) => [
- q(5912),
+ q(5903),
q(0),
],
q(kelengazxo bozo) => [
- q(1641),
+ q(1635),
q(0),
],
q(keley-i kallahan) => [
- q(2922),
+ q(2919),
q(0),
],
q(keliko) => [
- q(3199),
+ q(3196),
q(0),
],
q(kelo) => [
- q(7338),
+ q(7330),
q(0),
],
q(kelon) => [
- q(3760),
+ q(3755),
q(0),
],
q(kemak) => [
- q(3271),
+ q(3268),
q(0),
],
q(kembayan) => [
- q(7339),
+ q(7331),
q(0),
],
q(kemberano) => [
- q(1633),
+ q(1627),
q(0),
],
q(kembra) => [
- q(7396),
+ q(7389),
q(0),
],
q(kemedzung) => [
- q(2095),
+ q(2090),
q(0),
],
q(kemi sami) => [
- q(6069),
+ q(6059),
q(0),
],
q(kemiehua) => [
- q(3294),
+ q(3291),
q(0),
],
q(kemtuik) => [
- q(3474),
+ q(3472),
q(0),
],
q(kenaboi) => [
- q(7308),
+ q(7300),
q(0),
],
q(kenati) => [
- q(2419),
+ q(2415),
q(0),
],
q(kendayan) => [
- q(3503),
+ q(3501),
q(0),
],
q(kendeje) => [
- q(3435),
+ q(3433),
q(0),
],
q(kendem) => [
- q(3681),
+ q(3678),
q(0),
],
q(kenga) => [
- q(3762),
+ q(3757),
q(0),
],
q(keningau murut) => [
- q(3728),
+ q(3723),
q(0),
],
q(keninjal) => [
- q(3491),
+ q(3489),
q(0),
],
q(kensiu) => [
- q(3498),
+ q(3496),
q(0),
],
q(kenswei nsei) => [
- q(4794),
+ q(4784),
q(0),
],
q(kenyan sign language) => [
- q(7383),
+ q(7376),
q(0),
],
q(kenyang) => [
- q(3272),
+ q(3269),
q(0),
],
q(kenyi) => [
- q(3949),
+ q(3942),
q(0),
],
q(kenzi) => [
- q(7451),
+ q(7444),
q(0),
],
q(keoru-ahia) => [
- q(7344),
+ q(7336),
q(0),
],
q(kepkiriwat) => [
- q(3538),
+ q(3535),
q(0),
],
q(kepo') => [
- q(3657),
+ q(3654),
q(0),
],
q(kera) => [
- q(3276),
+ q(3273),
q(0),
],
q(kerak) => [
- q(2754),
+ q(2751),
q(0),
],
q(kereho) => [
- q(7379),
+ q(7372),
q(0),
],
q(kerek) => [
- q(3584),
+ q(3581),
q(0),
],
q(kerewe) => [
- q(3262),
+ q(3259),
q(0),
],
q(kerewo) => [
- q(3745),
+ q(3740),
q(0),
],
q(kerinci) => [
- q(3686),
+ q(3683),
q(0),
],
q(kesawai) => [
- q(7342),
+ q(7334),
q(0),
],
q(ket) => [
- q(3278),
+ q(3275),
q(0),
],
q(ketangalan) => [
- q(3173),
+ q(3171),
q(0),
],
q(kete) => [
- q(3232),
+ q(3229),
q(0),
],
q(ketengban) => [
- q(7518),
+ q(7510),
q(0),
],
q(ketum) => [
- q(3641),
+ q(3638),
q(0),
],
q(keyagana) => [
- q(3752),
+ q(3747),
q(0),
],
q(kgalagadi) => [
- q(7395),
+ q(7388),
q(0),
],
q(khakas) => [
- q(3387),
+ q(3384),
q(0),
],
q(khalaj) => [
- q(3385),
+ q(3382),
q(0),
],
q(khaling) => [
- q(3447),
+ q(3445),
q(0),
],
q(khamba) => [
- q(3191),
+ q(3188),
q(0),
],
q(khams tibetan) => [
- q(3340),
+ q(3337),
q(0),
],
q(khamti) => [
- q(3350),
+ q(3347),
q(0),
],
q(khamyang) => [
- q(3616),
+ q(3613),
q(0),
],
q(khana) => [
- q(5220),
+ q(5211),
q(0),
],
q(khandesi) => [
- q(3345),
+ q(3342),
q(0),
],
q(khang) => [
- q(3392),
+ q(3389),
q(0),
],
q(khanty) => [
- q(3211),
+ q(3208),
q(0),
],
q(khao) => [
- q(7289),
+ q(7281),
q(0),
],
q(kharam naga) => [
- q(3307),
+ q(3304),
q(0),
],
q(kharia) => [
- q(3348),
+ q(3345),
q(0),
],
q(kharia thar) => [
- q(3620),
+ q(3617),
q(0),
],
q(khasi) => [
@@ -37404,67 +37426,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(khayo) => [
- q(3956),
+ q(3949),
q(0),
],
q(khazar) => [
- q(7880),
+ q(7869),
q(0),
],
q(khe) => [
- q(3556),
+ q(3553),
q(0),
],
q(khehek) => [
- q(6592),
+ q(6584),
q(0),
],
q(khengkha) => [
- q(7380),
+ q(7373),
q(0),
],
q(khetrani) => [
- q(7360),
+ q(7352),
q(0),
],
q(khezha naga) => [
- q(4938),
+ q(4928),
q(0),
],
q(khiamniungan naga) => [
- q(3377),
+ q(3374),
q(0),
],
q(khinalugh) => [
- q(3389),
+ q(3386),
q(0),
],
q(khirwar) => [
- q(3718),
+ q(3714),
q(0),
],
q(khisa) => [
- q(3562),
+ q(3559),
q(0),
],
q(khlor) => [
- q(3976),
+ q(3969),
q(0),
],
q(khlula) => [
- q(7674),
+ q(7666),
q(0),
],
q(khmu) => [
- q(3386),
+ q(3383),
q(0),
],
q(kho'ini) => [
- q(7377),
+ q(7370),
+ q(0),
+ ],
+ q(khoekhoe) => [
+ q(4731),
q(0),
],
q(khoibu naga) => [
- q(4932),
+ q(4922),
q(0),
],
q(khoisan languages) => [
@@ -37472,19 +37498,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kholok) => [
- q(3624),
+ q(3621),
q(0),
],
q(khonso) => [
- q(3723),
+ q(3719),
q(1),
],
q(khorasani turkish) => [
- q(3480),
+ q(3478),
q(0),
],
q(khorezmian) => [
- q(7871),
+ q(7860),
q(0),
],
q(khotanese) => [
@@ -37492,55 +37518,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(khowar) => [
- q(3353),
+ q(3350),
q(0),
],
q(khua) => [
- q(7364),
+ q(7356),
q(0),
],
q(khuen) => [
- q(3339),
+ q(3336),
q(0),
],
q(khumi chin) => [
- q(1805),
+ q(1800),
q(0),
],
q(khun) => [
- q(3411),
+ q(3409),
q(0),
],
q(khunsari) => [
- q(3297),
+ q(3294),
q(0),
],
q(khvarshi) => [
- q(3352),
+ q(3349),
q(0),
],
q(kibet) => [
- q(3361),
+ q(3358),
q(0),
],
q(kibiri) => [
- q(5605),
+ q(5596),
q(0),
],
q(kickapoo) => [
- q(3359),
+ q(3356),
q(0),
],
q(kiembu) => [
- q(2222),
+ q(2216),
q(1),
],
q(kigiryama) => [
- q(5168),
+ q(5159),
q(1),
],
q(kikai) => [
- q(3778),
+ q(3773),
q(0),
],
q(kikuyu) => [
@@ -37548,43 +37574,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kildin sami) => [
- q(6066),
+ q(6056),
q(0),
],
q(kilivila) => [
- q(3366),
+ q(3363),
q(0),
],
q(kiliwa) => [
- q(3431),
+ q(3429),
q(0),
],
q(kilmeri) => [
- q(3364),
+ q(3361),
q(0),
],
q(kim) => [
- q(3357),
+ q(3354),
q(0),
],
q(kim mun) => [
- q(4334),
+ q(4325),
q(0),
],
q(kimaama) => [
- q(3363),
+ q(3360),
q(0),
],
q(kimaghima) => [
- q(3363),
+ q(3360),
q(1),
],
q(kimaragang) => [
- q(3567),
+ q(3564),
q(0),
],
q(kimbu) => [
- q(3375),
+ q(3372),
q(0),
],
q(kimbundu) => [
@@ -37592,43 +37618,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kimki) => [
- q(5929),
+ q(5920),
q(0),
],
q(kimre) => [
- q(3565),
+ q(3562),
q(0),
],
q(kinabalian) => [
- q(1682),
+ q(1677),
q(0),
],
q(kinalakna) => [
- q(3225),
+ q(3222),
q(0),
],
q(kinamiging manobo) => [
- q(4373),
+ q(4364),
q(0),
],
q(kinaray-a) => [
- q(3583),
+ q(3580),
q(0),
],
q(kinga) => [
- q(7848),
+ q(7837),
q(0),
],
q(kinnauri) => [
- q(3295),
+ q(3292),
q(0),
],
q(kintaq) => [
- q(3496),
+ q(3494),
q(0),
],
q(kinuku) => [
- q(3407),
+ q(3405),
q(0),
],
q(kinyarwanda) => [
@@ -37636,39 +37662,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kioko) => [
- q(6875),
+ q(6867),
q(0),
],
q(kiong) => [
- q(3416),
+ q(3414),
q(0),
],
q(kiorr) => [
- q(7388),
+ q(7381),
q(0),
],
q(kiowa) => [
- q(3369),
+ q(3366),
q(0),
],
q(kiowa apache) => [
- q(0845),
+ q(0843),
q(0),
],
q(kipfokomo) => [
- q(5482),
+ q(5474),
q(1),
],
q(kipsigis) => [
- q(6000),
+ q(5991),
q(0),
],
q(kiput) => [
- q(3754),
+ q(3749),
q(0),
],
q(kir-balar) => [
- q(3421),
+ q(3419),
q(0),
],
q(kirdki) => [
@@ -37676,7 +37702,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(3),
],
q(kire) => [
- q(2477),
+ q(2473),
q(0),
],
q(kirghiz) => [
@@ -37684,11 +37710,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kirike) => [
- q(5246),
+ q(5237),
q(0),
],
q(kirikiri) => [
- q(3378),
+ q(3375),
q(0),
],
q(kirmanjki) => [
@@ -37696,7 +37722,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(4),
],
q(kirmanjki (individual language)) => [
- q(3374),
+ q(3371),
q(0),
],
q(kirmanjki (macrolanguage)) => [
@@ -37704,87 +37730,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(7),
],
q(kirya-konzel) => [
- q(2354),
+ q(2350),
q(0),
],
q(kis) => [
- q(3372),
+ q(3369),
q(0),
],
q(kisa) => [
- q(3958),
+ q(3951),
+ q(0),
+ ],
+ q(kisan) => [
+ q(7363),
q(0),
],
q(kisankasa) => [
- q(3557),
+ q(3554),
q(0),
],
q(kisar) => [
- q(3384),
+ q(3381),
q(0),
],
q(kisi) => [
- q(3379),
+ q(3376),
q(0),
],
q(kistane) => [
- q(2628),
+ q(2626),
q(0),
],
q(kiswahili) => [
- q(6312),
+ q(6303),
q(1),
],
q(kita maninkakan) => [
- q(4642),
+ q(4632),
q(0),
],
q(kitan) => [
- q(7877),
+ q(7866),
q(0),
],
q(kitharaka) => [
- q(6510),
+ q(6502),
q(1),
],
q(kitja) => [
- q(2517),
+ q(2513),
q(0),
],
q(kitsai) => [
- q(3365),
+ q(3362),
q(0),
],
q(kituba (congo)) => [
- q(4372),
+ q(4363),
q(0),
],
q(kituba (democratic republic of congo)) => [
- q(3642),
+ q(3639),
q(0),
],
q(kiunum) => [
- q(7114),
+ q(7105),
q(0),
],
q(kiwilwana) => [
- q(4384),
+ q(4375),
q(1),
],
q(kla-dan) => [
- q(3850),
+ q(3845),
q(0),
],
q(klamath-modoc) => [
- q(3430),
+ q(3428),
q(0),
],
q(klao) => [
- q(3450),
+ q(3448),
q(0),
],
q(klias river kadazan) => [
- q(3569),
+ q(3566),
q(0),
],
q(klingon) => [
@@ -37792,227 +37822,227 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(knaanic) => [
- q(1938),
+ q(1933),
q(0),
],
q(ko) => [
- q(2390),
+ q(2386),
q(0),
],
q(koalib) => [
- q(3358),
+ q(3355),
q(0),
],
q(koasati) => [
- q(1768),
+ q(1763),
q(0),
],
q(koba) => [
- q(3529),
+ q(3526),
q(0),
],
q(kobiana) => [
- q(3220),
+ q(3217),
q(0),
],
q(kobol) => [
- q(3330),
+ q(3327),
q(0),
],
q(kobon) => [
- q(3546),
+ q(3543),
q(0),
],
q(koch) => [
- q(3251),
+ q(3248),
q(0),
],
q(kochila tharu) => [
- q(6515),
+ q(6507),
q(0),
],
q(koda) => [
- q(1709),
+ q(1704),
q(0),
],
q(kodaku) => [
- q(3621),
+ q(3618),
q(0),
],
q(kodava) => [
- q(3285),
+ q(3282),
q(0),
],
q(kodeoha) => [
- q(7020),
+ q(7011),
q(0),
],
q(kodi) => [
- q(3508),
+ q(3506),
q(0),
],
q(kodia) => [
- q(3710),
+ q(3707),
q(0),
],
q(koenoem) => [
- q(3229),
+ q(3226),
q(0),
],
q(kofa) => [
- q(3610),
+ q(3607),
q(0),
],
q(kofei) => [
- q(3533),
+ q(3530),
q(0),
],
q(kofyar) => [
- q(3706),
+ q(3703),
q(0),
],
q(kogi) => [
- q(3511),
+ q(3509),
q(1),
],
q(koguryo) => [
- q(7870),
+ q(7859),
q(0),
],
q(kohin) => [
- q(3427),
+ q(3425),
q(0),
],
q(kohistani shina) => [
- q(5501),
+ q(5493),
q(0),
],
q(koho) => [
- q(3537),
+ q(3534),
q(0),
],
q(kohumono) => [
- q(1084),
+ q(1081),
q(0),
],
q(koi) => [
- q(3423),
+ q(3421),
q(0),
],
q(koibal) => [
- q(7868),
+ q(7857),
q(0),
],
q(koireng) => [
- q(4934),
+ q(4924),
q(0),
],
q(koitabu) => [
- q(3558),
+ q(3555),
q(0),
],
q(koiwat) => [
- q(3739),
+ q(3734),
q(0),
],
q(kok borok) => [
- q(6709),
+ q(6701),
q(0),
],
q(kok-nar) => [
- q(2543),
+ q(2539),
q(0),
],
q(kokata) => [
- q(3625),
+ q(3622),
q(0),
],
q(koke) => [
- q(3520),
+ q(3517),
q(0),
],
q(koki naga) => [
- q(5156),
+ q(5146),
q(0),
],
q(koko babangk) => [
- q(5237),
+ q(5228),
q(0),
],
q(kokoda) => [
- q(7453),
+ q(7446),
q(0),
],
q(kokola) => [
- q(3784),
+ q(3779),
q(0),
],
q(kokota) => [
- q(3414),
+ q(3412),
q(0),
],
q(kol) => [
- q(2242),
+ q(2236),
q(1),
],
q(kol (bangladesh)) => [
- q(2242),
+ q(2236),
q(0),
],
q(kol (cameroon)) => [
- q(1229),
+ q(1226),
q(0),
],
q(kol (papua new guinea)) => [
- q(3515),
+ q(3512),
q(0),
],
q(kola) => [
- q(3690),
+ q(3687),
q(0),
],
q(kolbila) => [
- q(3432),
+ q(3430),
q(0),
],
q(kolibugan subanon) => [
- q(6092),
+ q(6082),
q(0),
],
q(kolsch) => [
- q(3603),
+ q(3600),
q(0),
],
q(koluwawa) => [
- q(3453),
+ q(3451),
q(0),
],
q(kom (cameroon)) => [
- q(1267),
+ q(1264),
q(0),
],
q(kom (india)) => [
- q(3467),
+ q(3465),
q(0),
],
q(koma) => [
- q(3479),
+ q(3477),
q(0),
],
q(komba) => [
- q(3530),
+ q(3527),
q(0),
],
q(kombai) => [
- q(6843),
+ q(6835),
q(0),
],
q(kombio) => [
- q(7305),
+ q(7297),
q(0),
],
q(komering) => [
- q(3315),
+ q(3312),
q(0),
],
q(komi) => [
@@ -38020,59 +38050,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(komi-permyak) => [
- q(3513),
+ q(3511),
q(0),
],
q(komi-zyrian) => [
- q(3545),
+ q(3542),
q(0),
],
q(kominimung) => [
- q(7455),
+ q(7448),
q(0),
],
q(komo (democratic republic of congo)) => [
- q(3477),
+ q(3475),
q(0),
],
q(komo (sudan)) => [
- q(7457),
+ q(7450),
q(0),
],
q(komodo) => [
- q(3676),
+ q(3673),
q(0),
],
q(kompane) => [
- q(3684),
+ q(3681),
q(0),
],
q(komyandaret) => [
- q(3792),
+ q(3787),
q(0),
],
q(kon keu) => [
- q(3417),
+ q(3415),
q(0),
],
q(konabere) => [
- q(1054),
+ q(1051),
q(1),
],
q(konai) => [
- q(3742),
+ q(3737),
q(0),
],
q(konda) => [
- q(3484),
+ q(3482),
q(0),
],
q(konda-dora) => [
- q(3287),
+ q(3284),
q(0),
],
q(koneraw) => [
- q(3255),
+ q(3252),
q(0),
],
q(kongo) => [
@@ -38084,7 +38114,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(konkani (individual language)) => [
- q(3493),
+ q(3491),
q(0),
],
q(konkani (macrolanguage)) => [
@@ -38092,83 +38122,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(konkomba) => [
- q(7458),
+ q(7451),
q(0),
],
q(konni) => [
- q(3456),
+ q(3454),
q(0),
],
q(kono (guinea)) => [
- q(3500),
+ q(3498),
q(0),
],
q(kono (nigeria)) => [
- q(3440),
+ q(3438),
q(0),
],
q(kono (sierra leone)) => [
- q(3494),
+ q(3492),
q(0),
],
q(konomala) => [
- q(3506),
+ q(3504),
q(0),
],
q(konongo) => [
- q(3236),
+ q(3233),
q(0),
],
q(konso) => [
- q(3723),
+ q(3719),
q(0),
],
q(konyak naga) => [
- q(4753),
+ q(4743),
q(0),
],
q(konyanka maninka) => [
- q(4370),
+ q(4361),
q(0),
],
q(konzo) => [
- q(3516),
+ q(3513),
q(0),
],
q(koongo) => [
- q(3487),
+ q(3485),
q(0),
],
q(koonzime) => [
- q(5353),
+ q(5344),
q(0),
],
q(koorete) => [
- q(3574),
+ q(3571),
q(0),
],
q(kopar) => [
- q(7460),
+ q(7453),
q(0),
],
q(kopkaka) => [
- q(5296),
+ q(5288),
q(0),
],
q(korafe-yegha) => [
- q(3541),
+ q(3538),
q(0),
],
q(korak) => [
- q(3525),
+ q(3522),
q(0),
],
q(korana) => [
- q(3575),
+ q(3572),
q(0),
],
q(korandje) => [
- q(3235),
+ q(3232),
q(0),
],
q(kordofanian languages) => [
@@ -38180,123 +38210,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(korean sign language) => [
- q(3679),
+ q(3676),
q(0),
],
q(koreguaje) => [
- q(1817),
+ q(1812),
q(0),
],
q(koresh-e rostam) => [
- q(5238),
+ q(5229),
q(0),
],
q(korku) => [
- q(3301),
+ q(3298),
q(0),
],
q(korlai creole portuguese) => [
- q(7021),
+ q(7012),
q(0),
],
q(koro (cote d'ivoire)) => [
- q(3299),
+ q(3296),
q(0),
],
q(koro (india)) => [
- q(3114),
+ q(3112),
q(0),
],
q(koro (papua new guinea)) => [
- q(3737),
+ q(3732),
q(0),
],
q(koro (vanuatu)) => [
- q(3580),
+ q(3577),
q(0),
],
q(koro wachi) => [
- q(1421),
+ q(1417),
q(0),
],
q(koromfe) => [
- q(3310),
+ q(3307),
q(0),
],
q(koromira) => [
- q(3559),
+ q(3556),
q(0),
],
q(koronadal blaan) => [
- q(1392),
+ q(1388),
q(0),
],
q(koroni) => [
- q(7390),
+ q(7383),
q(0),
],
q(korop) => [
- q(3587),
+ q(3584),
q(0),
],
q(koropo) => [
- q(7570),
+ q(7562),
q(0),
],
q(koroshi) => [
- q(3633),
+ q(3630),
q(0),
],
q(korowai) => [
- q(3338),
+ q(3335),
q(0),
],
q(korra koraga) => [
- q(3288),
+ q(3285),
q(0),
],
q(korubo) => [
- q(7461),
+ q(7454),
q(0),
],
q(korupun-sela) => [
- q(3540),
+ q(3537),
q(0),
],
q(korur) => [
- q(0949),
+ q(0946),
q(1),
],
q(korwa) => [
- q(3300),
+ q(3297),
q(0),
],
q(koryak) => [
- q(3548),
+ q(3545),
q(0),
],
q(kosadle) => [
- q(3371),
+ q(3368),
q(0),
],
q(kosare) => [
- q(3371),
+ q(3368),
q(1),
],
q(kosarek yale) => [
- q(3415),
+ q(3413),
q(0),
],
q(kosena) => [
- q(3776),
+ q(3771),
q(0),
],
q(koshin) => [
- q(3360),
+ q(3357),
q(0),
],
q(kosli) => [
- q(6203),
+ q(6194),
q(1),
],
q(kosraean) => [
@@ -38304,115 +38334,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kota (gabon)) => [
- q(3518),
+ q(3515),
q(0),
],
q(kota (india)) => [
- q(3289),
+ q(3286),
q(0),
],
q(kota bangun kutai malay) => [
- q(4494),
+ q(4485),
q(0),
],
q(kota marudu talantang) => [
- q(2622),
+ q(2620),
q(0),
],
q(kota marudu tinagas) => [
- q(3639),
+ q(3636),
q(0),
],
q(kotafon gbe) => [
- q(3560),
+ q(3557),
q(0),
],
q(kotava) => [
- q(0960),
+ q(0957),
q(0),
],
q(koti) => [
- q(2244),
+ q(2238),
q(0),
],
q(kott) => [
- q(7874),
+ q(7863),
q(0),
],
q(kouya) => [
- q(3751),
+ q(3746),
q(0),
],
q(kovai) => [
- q(3551),
+ q(3548),
q(0),
],
q(kove) => [
- q(3671),
+ q(3668),
q(0),
],
q(kowaki) => [
- q(7462),
+ q(7455),
q(0),
],
q(kowiai) => [
- q(3702),
+ q(3699),
q(0),
],
q(koy sanjaq surat) => [
- q(3553),
+ q(3550),
q(0),
],
q(koya) => [
- q(3290),
+ q(3287),
q(0),
],
q(koyaga) => [
- q(3311),
+ q(3308),
q(0),
],
q(koyo) => [
- q(3512),
+ q(3510),
q(0),
],
q(koyra chiini songhay) => [
- q(3347),
+ q(3344),
q(0),
],
q(koyraboro senni songhai) => [
- q(5987),
+ q(5978),
q(0),
],
q(koyukon) => [
- q(3524),
+ q(3521),
q(0),
],
q(kpagua) => [
- q(3665),
+ q(3662),
q(0),
],
q(kpala) => [
- q(3536),
+ q(3533),
q(0),
],
q(kpan) => [
- q(3535),
+ q(3532),
q(0),
],
q(kpasam) => [
- q(5380),
+ q(5371),
q(0),
],
q(kpati) => [
- q(3507),
+ q(3505),
q(0),
],
q(kpatili) => [
- q(3758),
+ q(3753),
q(0),
],
q(kpeego) => [
- q(1841),
+ q(1836),
q(0),
],
q(kpelle) => [
@@ -38420,63 +38450,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kpessi) => [
- q(3264),
+ q(3261),
q(0),
],
q(kplang) => [
- q(3532),
+ q(3529),
q(0),
],
q(krache) => [
- q(3750),
+ q(3745),
q(0),
],
q(kraho) => [
- q(7482),
+ q(7475),
q(0),
],
q(kraol) => [
- q(5806),
+ q(5797),
q(0),
],
q(krenak) => [
- q(3566),
+ q(3563),
q(0),
],
q(krevinian) => [
- q(7879),
+ q(7868),
q(0),
],
q(kreye) => [
- q(7485),
+ q(7478),
q(0),
],
q(krikati-timbira) => [
- q(7487),
+ q(7480),
q(0),
],
q(krim) => [
- q(3585),
+ q(3582),
q(0),
],
q(krio) => [
- q(3582),
+ q(3579),
q(0),
],
q(kriol) => [
- q(5853),
+ q(5844),
q(0),
],
q(krisa) => [
- q(3604),
+ q(3601),
q(0),
],
q(krobu) => [
- q(3722),
+ q(3718),
q(0),
],
q(krongo) => [
- q(3324),
+ q(3321),
q(0),
],
q(kru languages) => [
@@ -38484,39 +38514,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kru'ng 2) => [
- q(3588),
+ q(3585),
q(0),
],
q(krymchak) => [
- q(3073),
+ q(3070),
q(0),
],
q(kryts) => [
- q(3594),
+ q(3591),
q(0),
],
q(kua) => [
- q(6848),
+ q(6840),
q(0),
],
q(kua-nsi) => [
- q(7676),
+ q(7668),
q(0),
],
q(kuamasi) => [
- q(7680),
+ q(7672),
q(0),
],
q(kuan) => [
- q(6860),
+ q(6852),
q(0),
],
q(kuanhua) => [
- q(7441),
+ q(7434),
q(0),
],
q(kuanua) => [
- q(3599),
+ q(3596),
q(0),
],
q(kuanyama) => [
@@ -38524,199 +38554,199 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kube) => [
- q(3316),
+ q(3313),
q(0),
],
q(kubi) => [
- q(3510),
+ q(3508),
q(0),
],
q(kubo) => [
- q(3112),
+ q(3110),
q(0),
],
q(kubu) => [
- q(3670),
+ q(3667),
q(0),
],
q(kucong) => [
- q(3947),
+ q(3940),
q(0),
],
q(kudiya) => [
- q(3291),
+ q(3288),
q(0),
],
q(kudmali) => [
- q(3768),
+ q(3763),
q(0),
],
q(kudu-camo) => [
- q(3521),
+ q(3518),
q(0),
],
q(kugama) => [
- q(3522),
+ q(3519),
q(0),
],
q(kugbo) => [
- q(3277),
+ q(3274),
q(0),
],
q(kui (india)) => [
- q(3740),
+ q(3735),
q(0),
],
q(kui (indonesia)) => [
- q(3672),
+ q(3669),
q(0),
],
q(kuijau) => [
- q(2079),
+ q(2074),
q(0),
],
q(kuikuro-kalapalo) => [
- q(3655),
+ q(3652),
q(0),
],
q(kujarge) => [
- q(7016),
+ q(7007),
q(0),
],
q(kuk) => [
- q(3298),
+ q(3295),
q(0),
],
q(kukatja) => [
- q(3666),
+ q(3663),
q(0),
],
q(kuke) => [
- q(2516),
+ q(2512),
q(0),
],
q(kukele) => [
- q(3284),
+ q(3281),
q(0),
],
q(kukna) => [
- q(3282),
+ q(3279),
q(0),
],
q(kuku-mangk) => [
- q(7428),
+ q(7421),
q(0),
],
q(kuku-mu'inh) => [
- q(7427),
+ q(7420),
q(0),
],
q(kuku-muminh) => [
- q(7420),
+ q(7413),
q(0),
],
q(kuku-ugbanh) => [
- q(6877),
+ q(6869),
q(0),
],
q(kuku-uwanh) => [
- q(6974),
+ q(6965),
q(0),
],
q(kuku-yalanji) => [
- q(2676),
+ q(2673),
q(0),
],
q(kula) => [
- q(6667),
+ q(6659),
q(0),
],
q(kulere) => [
- q(3658),
+ q(3655),
q(0),
],
q(kulfa) => [
- q(3729),
+ q(3724),
q(0),
],
q(kulina) => [
- q(1915),
+ q(1910),
q(1),
],
q(kulina pano) => [
- q(7469),
+ q(7462),
q(0),
],
q(kulisusu) => [
- q(7018),
+ q(7009),
q(0),
],
q(kullu pahari) => [
- q(3308),
+ q(3305),
q(0),
],
q(kulon-pazeh) => [
- q(6968),
+ q(6959),
q(0),
],
q(kulung (nepal)) => [
- q(3434),
+ q(3432),
q(0),
],
q(kulung (nigeria)) => [
- q(1060),
+ q(1057),
q(0),
],
q(kumalu) => [
- q(3607),
+ q(3604),
q(0),
],
q(kumam) => [
- q(3244),
+ q(3241),
q(0),
],
- q(kuman) => [
- q(3651),
+ q(kuman (papua new guinea)) => [
+ q(3648),
q(0),
],
q(kuman (russia)) => [
- q(5726),
+ q(5717),
q(0),
],
q(kumaoni) => [
- q(3309),
+ q(3306),
q(0),
],
q(kumarbhag paharia) => [
- q(3464),
+ q(3462),
q(0),
],
q(kumba) => [
- q(3608),
+ q(3605),
q(0),
],
q(kumbainggar) => [
- q(3328),
+ q(3325),
q(0),
],
q(kumbaran) => [
- q(7154),
+ q(7145),
q(0),
],
q(kumbewaha) => [
- q(7392),
+ q(7385),
q(0),
],
q(kumhali) => [
- q(3576),
+ q(3573),
q(0),
],
q(kumiai) => [
- q(2045),
+ q(2040),
q(0),
],
q(kumukio) => [
- q(3660),
+ q(3657),
q(0),
],
q(kumyk) => [
@@ -38724,127 +38754,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kumzari) => [
- q(7976),
+ q(7965),
q(0),
],
q(kunama) => [
- q(3659),
+ q(3656),
q(0),
],
q(kunbarlang) => [
- q(7163),
+ q(7154),
q(0),
],
q(kunda) => [
- q(3249),
+ q(3246),
q(0),
],
q(kundal shahi) => [
- q(6022),
+ q(6012),
q(0),
],
q(kunduvadi) => [
- q(7157),
+ q(7148),
q(0),
],
q(kung) => [
- q(3296),
+ q(3293),
q(0),
],
q(kung-ekoka) => [
- q(3502),
+ q(3500),
q(0),
],
q(kungarakany) => [
- q(2499),
+ q(2495),
q(0),
],
q(kungardutyi) => [
- q(2473),
+ q(2469),
q(0),
],
q(kunggara) => [
- q(3687),
+ q(3684),
q(0),
],
q(kunggari) => [
- q(3321),
+ q(3318),
q(0),
],
q(kungkari) => [
- q(3960),
+ q(3953),
q(0),
],
q(kuni) => [
- q(3600),
+ q(3597),
q(0),
],
q(kuni-boazi) => [
- q(3675),
+ q(3672),
q(0),
],
q(kunigami) => [
- q(7540),
+ q(7532),
q(0),
],
q(kunimaipa) => [
- q(3661),
+ q(3658),
q(0),
],
q(kunja) => [
- q(5424),
+ q(5415),
q(0),
],
q(kunjen) => [
- q(3393),
+ q(3390),
q(0),
],
q(kunyi) => [
- q(4928),
+ q(4918),
q(0),
],
q(kunza) => [
- q(3668),
+ q(3665),
q(0),
],
q(kuo) => [
- q(7545),
+ q(7537),
q(0),
],
q(kuot) => [
- q(3636),
+ q(3633),
q(0),
],
q(kupa) => [
- q(3653),
+ q(3650),
q(0),
],
q(kupang malay) => [
- q(4363),
+ q(4354),
q(0),
],
q(kupia) => [
- q(3283),
+ q(3280),
q(0),
],
q(kupsabiny) => [
- q(3549),
+ q(3546),
q(0),
],
q(kur) => [
- q(3664),
+ q(3661),
q(0),
],
q(kura ede nago) => [
- q(5054),
+ q(5043),
q(0),
],
q(kurama) => [
- q(3581),
+ q(3578),
q(0),
],
q(kuranko) => [
- q(3490),
+ q(3488),
q(0),
],
q(kurdish) => [
@@ -38852,43 +38882,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kuri) => [
- q(4760),
+ q(4750),
q(0),
],
q(kuria) => [
- q(3656),
+ q(3653),
q(0),
],
q(kurichiya) => [
- q(3292),
+ q(3289),
q(0),
],
q(kurmukar) => [
- q(3306),
+ q(3303),
q(0),
],
q(kurnai) => [
- q(6926),
+ q(6918),
q(0),
],
q(kurrama) => [
- q(7023),
+ q(7014),
q(0),
],
q(kurti) => [
- q(3634),
+ q(3631),
q(0),
],
q(kurtokha) => [
- q(7399),
+ q(7392),
q(0),
],
q(kuruaya) => [
- q(3763),
+ q(3758),
q(0),
],
q(kurudu) => [
- q(3397),
+ q(3394),
q(0),
],
q(kurukh) => [
@@ -38896,27 +38926,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kusaal) => [
- q(3662),
+ q(3659),
q(0),
],
q(kusaghe) => [
- q(3602),
+ q(3599),
q(0),
],
q(kushi) => [
- q(3654),
+ q(3651),
q(0),
],
q(kusu) => [
- q(3617),
+ q(3614),
q(0),
],
q(kusunda) => [
- q(3317),
+ q(3314),
q(0),
],
q(kutang ghale) => [
- q(2516),
+ q(2512),
q(1),
],
q(kutenai) => [
@@ -38924,135 +38954,131 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kutep) => [
- q(3648),
+ q(3645),
q(0),
],
q(kuthant) => [
- q(7548),
+ q(7540),
q(0),
],
q(kutong) => [
- q(6091),
+ q(6081),
q(0),
],
q(kutto) => [
- q(3526),
+ q(3523),
q(0),
],
q(kutu) => [
- q(3238),
+ q(3235),
q(0),
],
q(kuturmi) => [
- q(3342),
+ q(3339),
q(0),
],
q(kuuk-yak) => [
- q(6896),
+ q(6888),
q(0),
],
q(kuuku-ya'u) => [
- q(3667),
+ q(3664),
q(0),
],
q(kuvi) => [
- q(3741),
+ q(3736),
q(0),
],
q(kuwaa) => [
- q(1287),
+ q(1284),
q(0),
],
q(kuwaataay) => [
- q(1933),
+ q(1928),
q(0),
],
q(kuy) => [
- q(3253),
+ q(3250),
q(0),
],
q(kven finnish) => [
- q(2355),
+ q(2351),
q(0),
],
q(kw'adza) => [
- q(7153),
+ q(7144),
q(0),
],
q(kwa) => [
- q(3696),
+ q(3693),
q(0),
],
q(kwa') => [
- q(1269),
+ q(1266),
q(0),
],
q(kwaami) => [
- q(3612),
+ q(3609),
q(0),
],
q(kwadi) => [
- q(3720),
+ q(3716),
q(0),
],
q(kwaio) => [
- q(3698),
+ q(3695),
q(0),
],
q(kwaja) => [
- q(3258),
- q(0),
- ],
- q(kwak) => [
- q(3711),
+ q(3255),
q(0),
],
q(kwakiutl) => [
- q(3705),
+ q(3702),
q(0),
],
q(kwakum) => [
- q(3715),
+ q(3711),
q(0),
],
q(kwalhioqua-tlatskanai) => [
- q(5728),
+ q(5719),
q(0),
],
q(kwama) => [
- q(3471),
+ q(3469),
q(0),
],
q(kwambi) => [
- q(3707),
+ q(3704),
q(0),
],
q(kwamera) => [
- q(6626),
+ q(6618),
q(0),
],
q(kwami) => [
- q(3627),
+ q(3624),
q(0),
],
q(kwamtim one) => [
- q(5241),
+ q(5232),
q(0),
],
q(kwang) => [
- q(3677),
+ q(3674),
q(0),
],
q(kwanga) => [
- q(3704),
+ q(3701),
q(0),
],
q(kwangali) => [
- q(3708),
+ q(3705),
q(0),
],
q(kwanja) => [
- q(3495),
+ q(3493),
q(0),
],
q(kwanyama) => [
@@ -39060,103 +39086,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(kwara'ae) => [
- q(3700),
+ q(3697),
q(0),
],
q(kwasio) => [
- q(4977),
+ q(4967),
q(0),
],
q(kwaya) => [
- q(3746),
+ q(3741),
q(0),
],
q(kwaza) => [
- q(7555),
+ q(7547),
q(0),
],
q(kwegu) => [
- q(7559),
+ q(7551),
q(0),
],
q(kwenyi) => [
- q(3246),
+ q(3243),
q(1),
],
q(kwer) => [
- q(3712),
+ q(3708),
q(0),
],
q(kwerba) => [
- q(3699),
+ q(3696),
q(0),
],
q(kwerba mamberamo) => [
- q(7564),
+ q(7556),
q(0),
],
q(kwere) => [
- q(1931),
+ q(1926),
q(0),
],
q(kwerisa) => [
- q(3405),
+ q(3403),
q(0),
],
q(kwese) => [
- q(3713),
+ q(3709),
q(0),
],
q(kwesten) => [
- q(3714),
+ q(3710),
q(0),
],
q(kwini) => [
- q(2695),
+ q(2692),
q(0),
],
q(kwinsu) => [
- q(3649),
+ q(3646),
q(0),
],
q(kwinti) => [
- q(3717),
+ q(3713),
q(0),
],
q(kwoma) => [
- q(3469),
+ q(3467),
q(0),
],
q(kwomtari) => [
- q(3709),
+ q(3706),
q(0),
],
q(kxoe) => [
- q(7549),
+ q(7541),
q(0),
],
q(kyak) => [
- q(1257),
+ q(1254),
q(0),
],
q(kyaka) => [
- q(3748),
+ q(3743),
q(0),
],
q(kyan-karyaw naga) => [
- q(5057),
+ q(5046),
q(0),
],
q(kyanga) => [
- q(6838),
+ q(6830),
q(0),
],
q(kyenele) => [
- q(3561),
+ q(3558),
q(0),
],
q(kyerung) => [
- q(3334),
+ q(3331),
q(0),
],
q(kyrgyz) => [
@@ -39164,79 +39190,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(la'bi) => [
- q(3823),
+ q(3818),
q(0),
],
q(laa laa bwamu) => [
- q(1554),
+ q(1550),
q(0),
],
q(laadan) => [
- q(3860),
+ q(3855),
q(0),
],
q(laal) => [
- q(2467),
+ q(2463),
q(0),
],
q(laalaa) => [
- q(1647),
+ q(1641),
q(1),
],
q(laari) => [
- q(3855),
+ q(3850),
q(0),
],
q(laba) => [
- q(3812),
+ q(3807),
q(0),
],
q(label) => [
- q(3818),
+ q(3813),
q(0),
],
q(labir) => [
- q(3115),
+ q(3113),
q(0),
],
q(labo) => [
- q(4640),
+ q(4631),
q(0),
],
q(labo phowa) => [
- q(7736),
+ q(7726),
q(0),
],
q(labu) => [
- q(3834),
+ q(3829),
q(0),
],
q(labuk-kinabatangan kadazan) => [
- q(2161),
+ q(2156),
q(0),
],
q(lacandon) => [
- q(3799),
+ q(3794),
q(0),
],
q(lachi) => [
- q(3833),
+ q(3828),
q(0),
],
q(lachiguiri zapotec) => [
- q(7923),
+ q(7912),
q(0),
],
q(lachixio zapotec) => [
- q(7934),
+ q(7923),
q(0),
],
q(ladakhi) => [
- q(3824),
+ q(3819),
q(0),
],
q(ladin) => [
- q(3965),
+ q(3958),
q(0),
],
q(ladino) => [
@@ -39244,39 +39270,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ladji ladji) => [
- q(3971),
+ q(3964),
q(0),
],
q(laeko-libuat) => [
- q(3953),
+ q(3946),
q(0),
],
q(lafofa) => [
- q(3801),
+ q(3796),
q(0),
],
q(laghu) => [
- q(3892),
+ q(3886),
q(0),
],
q(laghuu) => [
- q(3894),
+ q(3888),
q(0),
],
q(lagwan) => [
- q(3519),
+ q(3516),
q(0),
],
q(laha (indonesia)) => [
- q(3906),
+ q(3900),
q(0),
],
q(laha (viet nam)) => [
- q(3905),
+ q(3899),
q(0),
],
q(lahanan) => [
- q(3910),
+ q(3904),
q(0),
],
q(lahnda) => [
@@ -39284,131 +39310,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lahta) => [
- q(3688),
+ q(3685),
q(1),
],
q(lahta karen) => [
- q(3688),
+ q(3685),
q(0),
],
q(lahu) => [
- q(3914),
+ q(3908),
q(0),
],
q(lahu shi) => [
- q(3907),
+ q(3901),
q(0),
],
q(lahul lohar) => [
- q(3908),
+ q(3902),
q(0),
],
q(laimbue) => [
- q(4003),
+ q(3995),
q(0),
],
q(laitu chin) => [
- q(1779),
+ q(1774),
q(0),
],
q(laiyolo) => [
- q(3940),
+ q(3933),
q(0),
],
q(lak) => [
- q(3820),
+ q(3815),
q(0),
],
q(laka (chad)) => [
- q(3808),
+ q(3803),
q(0),
],
q(laka (nigeria)) => [
- q(3805),
+ q(3800),
q(0),
],
q(lakalei) => [
- q(3945),
+ q(3938),
q(0),
],
q(lake miwok) => [
- q(4002),
+ q(3994),
q(0),
],
q(lakha) => [
- q(3950),
+ q(3943),
q(0),
],
q(laki) => [
- q(3951),
+ q(3944),
q(0),
],
q(lakkia) => [
- q(3819),
+ q(3814),
q(0),
],
q(lakon) => [
- q(3955),
+ q(3948),
q(0),
],
q(lakonde) => [
- q(3948),
+ q(3941),
q(0),
],
q(lakota) => [
- q(3959),
+ q(3952),
q(0),
],
q(lakota dida) => [
- q(2041),
+ q(2036),
q(0),
],
q(lala) => [
- q(5074),
+ q(5064),
q(0),
],
q(lala-bisa) => [
- q(3865),
+ q(3860),
q(0),
],
q(lala-roba) => [
- q(3962),
+ q(3955),
q(0),
],
q(lalana chinantec) => [
- q(1806),
+ q(1801),
q(0),
],
q(lalia) => [
- q(3806),
+ q(3801),
q(0),
],
- q(lama (myanmar)) => [
- q(3815),
+ q(lama (togo)) => [
+ q(3806),
q(0),
],
- q(lama (togo)) => [
- q(3811),
+ q(lama bai) => [
+ q(3810),
q(0),
],
q(lamaholot) => [
- q(6115),
+ q(6105),
q(0),
],
q(lamalera) => [
- q(3999),
- q(0),
- ],
- q(lamam) => [
- q(3994),
+ q(3991),
q(0),
],
q(lamang) => [
- q(2756),
+ q(2753),
q(0),
],
q(lamatuka) => [
- q(3998),
+ q(3990),
q(0),
],
q(lamba) => [
@@ -39416,75 +39438,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lambadi) => [
- q(3995),
+ q(3987),
q(0),
],
q(lambayeque quechua) => [
- q(5691),
+ q(5682),
q(0),
],
q(lambichhong) => [
- q(3989),
+ q(3982),
q(0),
],
q(lamboya) => [
- q(4004),
+ q(3996),
q(0),
],
q(lambya) => [
- q(3803),
+ q(3798),
q(0),
],
q(lame) => [
- q(1305),
+ q(1302),
q(0),
],
q(lamenu) => [
- q(4000),
+ q(3992),
q(0),
],
q(lamet) => [
- q(3828),
+ q(3823),
q(0),
],
q(lamja-dengsa-tola) => [
- q(3854),
+ q(3849),
q(0),
],
q(lamkang) => [
- q(3992),
+ q(3985),
q(0),
],
q(lamma) => [
- q(3885),
+ q(3879),
q(0),
],
q(lamnso') => [
- q(4017),
+ q(4009),
q(0),
],
q(lamogai) => [
- q(3988),
+ q(3981),
q(0),
],
q(lampung api) => [
- q(3942),
+ q(3935),
q(0),
],
q(lampung nyo) => [
- q(0570),
+ q(0569),
q(0),
],
q(lamu) => [
- q(3969),
+ q(3962),
q(0),
],
q(lamu-lamu) => [
- q(3838),
+ q(3833),
q(0),
],
q(lanas lobu) => [
- q(5880),
+ q(5872),
q(0),
],
q(land dayak languages) => [
@@ -39492,51 +39514,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(landoma) => [
- q(3859),
+ q(3854),
q(0),
],
q(lang'e) => [
- q(7715),
+ q(7706),
q(0),
],
q(langam) => [
- q(4014),
+ q(4006),
q(0),
],
q(langbashe) => [
- q(4006),
+ q(3998),
q(0),
],
q(langi) => [
- q(3802),
+ q(3797),
q(0),
],
q(langnian buyang) => [
- q(7689),
+ q(7681),
q(0),
],
q(lango (sudan)) => [
- q(4016),
+ q(4008),
q(0),
],
q(lango (uganda)) => [
- q(3804),
+ q(3799),
q(0),
],
q(langobardic) => [
- q(4009),
+ q(4001),
q(0),
],
q(langue des signes de belgique francophone) => [
- q(5994),
+ q(5985),
q(0),
],
q(lanima) => [
- q(4019),
+ q(4011),
q(0),
],
q(lanoh) => [
- q(4010),
+ q(4002),
q(0),
],
q(lao) => [
@@ -39544,87 +39566,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lao naga) => [
- q(4964),
+ q(4954),
q(0),
],
q(laomian) => [
- q(4110),
+ q(4102),
q(0),
],
q(laopang) => [
- q(3822),
+ q(3817),
q(0),
],
q(laos sign language) => [
- q(4071),
+ q(4063),
q(0),
],
q(lapaguia-guivini zapotec) => [
- q(7964),
+ q(7953),
q(0),
],
q(laragia) => [
- q(4052),
+ q(4044),
q(0),
],
q(larantuka malay) => [
- q(4060),
+ q(4052),
q(0),
],
q(lardil) => [
- q(3839),
+ q(3834),
q(0),
],
q(larevat) => [
- q(4061),
+ q(4053),
q(0),
],
q(large flowery miao) => [
- q(2783),
+ q(2780),
q(0),
],
q(lari) => [
- q(4055),
+ q(4047),
q(0),
],
q(larike-wakasihu) => [
- q(0758),
+ q(0756),
q(0),
],
q(laro) => [
- q(4058),
+ q(4050),
q(0),
],
q(larteh) => [
- q(3810),
+ q(3805),
q(0),
],
q(laru) => [
- q(3807),
+ q(3802),
q(0),
],
q(lasalimu) => [
- q(3974),
+ q(3967),
q(0),
],
q(lasgerdi) => [
- q(4063),
+ q(4055),
q(0),
],
q(lashi) => [
- q(4068),
+ q(4060),
q(0),
],
q(lasi) => [
- q(4074),
+ q(4066),
q(0),
],
q(late middle chinese) => [
- q(4077),
+ q(4069),
q(0),
],
q(latgalian) => [
- q(4078),
+ q(4070),
q(0),
],
q(latin) => [
@@ -39632,11 +39654,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(latu) => [
- q(4083),
+ q(4075),
q(0),
],
q(latunde) => [
- q(4080),
+ q(4072),
q(0),
],
q(latvian) => [
@@ -39644,239 +39666,235 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(latvian sign language) => [
- q(4069),
+ q(4061),
q(0),
],
q(lau) => [
- q(3980),
+ q(3973),
q(0),
],
q(laua) => [
- q(4087),
+ q(4079),
q(0),
],
q(lauan) => [
- q(3981),
+ q(3974),
q(0),
],
q(lauje) => [
- q(3813),
+ q(3808),
q(0),
],
q(laura) => [
- q(4094),
+ q(4086),
q(0),
],
q(laurentian) => [
- q(4051),
+ q(4043),
q(0),
],
q(lautu chin) => [
- q(1784),
+ q(1779),
q(0),
],
q(lavatbura-lamusong) => [
- q(3835),
+ q(3830),
q(0),
],
q(lave) => [
- q(1426),
+ q(1422),
q(0),
],
q(laven) => [
- q(3829),
+ q(3824),
q(0),
],
q(lavrung) => [
- q(3105),
+ q(3102),
q(1),
],
q(lavukaleve) => [
- q(4102),
+ q(4094),
q(0),
],
q(lawangan) => [
- q(3837),
+ q(3832),
q(0),
],
q(lawu) => [
- q(4113),
+ q(4105),
q(0),
],
q(lawunuia) => [
- q(6489),
+ q(6481),
q(0),
],
q(layakha) => [
- q(4115),
+ q(4107),
q(0),
],
q(laz) => [
- q(4121),
+ q(4113),
q(0),
],
q(lealao chinantec) => [
- q(1776),
+ q(1771),
q(0),
],
q(leco) => [
- q(3866),
+ q(3861),
q(0),
],
q(ledo kaili) => [
- q(3886),
+ q(3880),
q(0),
],
q(leelau) => [
- q(3857),
+ q(3852),
q(0),
],
q(lefa) => [
- q(3889),
+ q(3883),
q(0),
],
q(lega-mwenga) => [
- q(3898),
+ q(3892),
q(0),
],
q(lega-shabunda) => [
- q(3864),
+ q(3859),
q(0),
],
q(legbo) => [
- q(0655),
+ q(0653),
q(0),
],
q(legenyem) => [
- q(3840),
+ q(3835),
q(0),
],
q(lehali) => [
- q(6685),
+ q(6677),
q(0),
],
q(lehalurup) => [
- q(6948),
+ q(6939),
q(0),
],
q(lehar) => [
- q(1647),
+ q(1641),
q(0),
],
q(leinong naga) => [
- q(4120),
+ q(4112),
q(0),
],
q(leipon) => [
- q(3874),
+ q(3868),
q(0),
],
q(lelak) => [
- q(3972),
+ q(3965),
q(0),
],
q(lele (chad)) => [
- q(3975),
+ q(3968),
q(0),
],
q(lele (democratic republic of congo)) => [
- q(3875),
+ q(3869),
q(0),
],
q(lele (guinea)) => [
- q(3964),
+ q(3957),
q(0),
],
q(lele (papua new guinea)) => [
- q(3966),
+ q(3959),
q(0),
],
q(lelemi) => [
- q(3869),
+ q(3864),
q(0),
],
q(lelepa) => [
- q(4044),
+ q(4036),
q(0),
],
q(lembena) => [
- q(3880),
+ q(3874),
q(0),
],
q(lemerig) => [
- q(4062),
+ q(4054),
q(0),
],
q(lemio) => [
- q(3872),
+ q(3866),
q(0),
],
q(lemnian) => [
- q(7404),
+ q(7397),
q(0),
],
q(lemolang) => [
- q(3888),
+ q(3882),
q(0),
],
q(lemoro) => [
- q(3856),
+ q(3851),
q(0),
],
q(lenakel) => [
- q(6627),
+ q(6619),
q(0),
],
q(lenca) => [
- q(3877),
+ q(3871),
q(0),
],
q(lendu) => [
- q(3867),
+ q(3862),
q(0),
],
q(lengilu) => [
- q(3895),
+ q(3889),
q(0),
],
q(lengo) => [
- q(3901),
+ q(3895),
q(0),
],
q(lengola) => [
- q(3873),
- q(0),
- ],
- q(lengua) => [
- q(3870),
+ q(3867),
q(0),
],
q(lengua de senas catalana) => [
- q(1871),
+ q(1866),
q(1),
],
q(lengua de senas del paraguay) => [
- q(5682),
+ q(5673),
q(1),
],
q(lengua de senas panamenas) => [
- q(4072),
+ q(4064),
q(1),
],
q(leningitij) => [
- q(4012),
+ q(4004),
q(0),
],
q(lenje) => [
- q(3871),
+ q(3865),
q(0),
],
q(lenkau) => [
- q(3881),
+ q(3875),
q(0),
],
q(lenyima) => [
- q(3853),
+ q(3848),
q(0),
],
q(leonese) => [
@@ -39884,39 +39902,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(lepcha) => [
- q(3879),
+ q(3873),
q(0),
],
q(lepki) => [
- q(4045),
+ q(4037),
q(0),
],
q(lepontic) => [
- q(7409),
+ q(7402),
q(0),
],
q(lere) => [
- q(2574),
+ q(2572),
q(0),
],
q(lese) => [
- q(3882),
+ q(3876),
q(0),
],
q(lesing-gelimi) => [
- q(3883),
+ q(3877),
q(0),
],
q(letemboi) => [
- q(4989),
+ q(4979),
q(0),
],
q(leti (cameroon)) => [
- q(3878),
+ q(3872),
q(0),
],
q(leti (indonesia)) => [
- q(4079),
+ q(4071),
q(0),
],
q(letzeburgesch) => [
@@ -39924,23 +39942,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(levuka) => [
- q(4104),
+ q(4096),
q(0),
],
q(lewo) => [
- q(4114),
+ q(4106),
q(0),
],
q(lewo eleng) => [
- q(4106),
+ q(4098),
q(0),
],
q(lewotobi) => [
- q(4112),
+ q(4104),
q(0),
],
q(leyigha) => [
- q(1001),
+ q(0998),
q(0),
],
q(lezghian) => [
@@ -39948,135 +39966,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lhaovo) => [
- q(4304),
+ q(4295),
q(1),
],
q(lhokpu) => [
- q(3911),
+ q(3905),
q(0),
],
q(lhomi) => [
- q(3909),
+ q(3903),
q(0),
],
q(li'o) => [
- q(3941),
+ q(3934),
q(0),
],
q(liabuku) => [
- q(3935),
+ q(3928),
q(0),
],
q(liana-seti) => [
- q(6265),
+ q(6256),
q(0),
],
q(liangmai naga) => [
- q(4922),
+ q(4912),
q(0),
],
q(lianshan zhuang) => [
- q(7883),
+ q(7872),
q(0),
],
q(liberia kpelle) => [
- q(7465),
+ q(7458),
q(0),
],
q(liberian english) => [
- q(3930),
+ q(3923),
q(0),
],
q(libido) => [
- q(3929),
+ q(3922),
q(0),
],
q(libinza) => [
- q(3937),
+ q(3930),
q(0),
],
q(libon bikol) => [
- q(3826),
+ q(3821),
q(0),
],
q(liburnian) => [
- q(7406),
+ q(7399),
q(0),
],
q(libyan arabic) => [
- q(1003),
+ q(1000),
q(0),
],
q(libyan sign language) => [
- q(3832),
+ q(3827),
q(0),
],
q(ligbi) => [
- q(3921),
+ q(3915),
q(0),
],
q(ligenza) => [
- q(3904),
+ q(3898),
q(0),
],
q(ligurian) => [
- q(3924),
+ q(3917),
q(0),
],
q(ligurian (ancient)) => [
- q(7405),
+ q(7398),
q(0),
],
q(lihir) => [
- q(3922),
+ q(3916),
q(0),
],
q(lijili) => [
- q(4265),
+ q(4257),
q(0),
],
q(lika) => [
- q(3925),
+ q(3918),
q(0),
],
q(liki) => [
- q(3927),
+ q(3920),
q(0),
],
q(likila) => [
- q(3919),
+ q(3913),
q(0),
],
q(likuba) => [
- q(3743),
+ q(3738),
q(0),
],
q(likum) => [
- q(3916),
+ q(3910),
q(0),
],
q(likwala) => [
- q(3697),
+ q(3694),
q(0),
],
q(lilau) => [
- q(3973),
+ q(3966),
q(0),
],
q(lillooet) => [
- q(3926),
+ q(3919),
q(0),
],
q(limassa) => [
- q(1309),
+ q(1306),
q(0),
],
q(limbu) => [
- q(3920),
+ q(3914),
q(0),
],
q(limbum) => [
- q(3997),
+ q(3989),
q(0),
],
q(limburgan) => [
@@ -40092,23 +40110,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(limi) => [
- q(7688),
+ q(7680),
q(0),
],
q(limilngan) => [
- q(3984),
+ q(3977),
q(0),
],
q(limos kalinga) => [
- q(3465),
+ q(3463),
q(0),
],
q(lindu) => [
- q(3452),
+ q(3450),
q(0),
],
q(linear a) => [
- q(3798),
+ q(3793),
q(0),
],
q(lingala) => [
@@ -40116,63 +40134,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lingao) => [
- q(5275),
+ q(5267),
q(0),
],
q(lingarak) => [
- q(3896),
- q(0),
- ],
- q(lingkhim) => [
- q(3923),
+ q(3890),
q(0),
],
q(lingua franca) => [
- q(5525),
+ q(5517),
q(0),
],
q(lingua franca nova) => [
- q(3890),
+ q(3884),
q(0),
],
q(lipan apache) => [
- q(0846),
+ q(0844),
q(0),
],
q(lipo) => [
- q(4047),
+ q(4039),
q(0),
],
q(lisabata-nuniali) => [
- q(3849),
+ q(3844),
q(0),
],
q(lisela) => [
- q(3845),
+ q(3840),
q(0),
],
q(lish) => [
- q(4067),
+ q(4059),
q(0),
],
q(lishan didan) => [
- q(6701),
+ q(6693),
q(0),
],
q(lishana deni) => [
- q(4064),
+ q(4056),
q(0),
],
q(lishanid noshan) => [
- q(0702),
+ q(0700),
q(0),
],
q(lisu) => [
- q(3931),
+ q(3924),
q(0),
],
q(literary chinese) => [
- q(4118),
+ q(4110),
q(0),
],
q(lithuanian) => [
@@ -40180,87 +40194,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lithuanian sign language) => [
- q(3979),
+ q(3972),
q(0),
],
q(litzlitz) => [
- q(4119),
+ q(4111),
q(0),
],
q(liujiang zhuang) => [
- q(7881),
+ q(7870),
q(0),
],
q(liuqian zhuang) => [
- q(7884),
+ q(7873),
q(0),
],
q(liv) => [
- q(3933),
+ q(3926),
q(0),
],
q(livvi) => [
- q(5256),
+ q(5247),
q(0),
],
q(llengua de signes catalana) => [
- q(1871),
+ q(1866),
q(2),
],
q(llengua de signes valenciana) => [
- q(7058),
+ q(7049),
q(1),
],
q(lo-toga) => [
- q(3913),
+ q(3907),
q(0),
],
q(loarki) => [
- q(4054),
+ q(4046),
q(0),
],
q(lobala) => [
- q(4035),
+ q(4027),
q(0),
],
q(lobi) => [
- q(4022),
+ q(4014),
q(0),
],
q(lodhi) => [
- q(3827),
+ q(3822),
q(0),
],
q(logba) => [
- q(3900),
+ q(3894),
q(0),
],
q(logo) => [
- q(4026),
+ q(4018),
q(0),
],
q(logol) => [
- q(4025),
+ q(4017),
q(0),
],
q(logooli) => [
- q(5749),
+ q(5740),
q(0),
],
q(logorik) => [
- q(3932),
+ q(3925),
q(0),
],
q(logudorese sardinian) => [
- q(6219),
+ q(6210),
q(0),
],
q(lohorung) => [
- q(3831),
+ q(3826),
q(0),
],
q(loja highland quichua) => [
- q(5713),
+ q(5704),
q(0),
],
q(lojban) => [
@@ -40268,175 +40282,175 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lokaa) => [
- q(7605),
+ q(7597),
q(0),
],
q(loke) => [
- q(4043),
+ q(4035),
q(0),
],
q(loko) => [
- q(4030),
+ q(4022),
q(0),
],
q(lokoya) => [
- q(3961),
+ q(3954),
q(0),
],
q(lola) => [
- q(3841),
+ q(3836),
q(0),
],
q(lolak) => [
- q(3978),
+ q(3971),
q(0),
],
q(lole) => [
- q(3968),
+ q(3961),
q(0),
],
q(lolo) => [
- q(3963),
+ q(3956),
q(0),
],
q(loloda) => [
- q(4021),
+ q(4013),
q(0),
],
q(lolopo) => [
- q(7620),
+ q(7612),
q(0),
],
q(loma (cote d'ivoire)) => [
- q(4028),
+ q(4020),
q(0),
],
q(loma (liberia)) => [
- q(4031),
+ q(4023),
q(0),
],
q(lomaiviti) => [
- q(4001),
+ q(3993),
q(0),
],
q(lomavren) => [
- q(5821),
+ q(5812),
q(0),
],
q(lombard) => [
- q(3996),
+ q(3988),
q(0),
],
q(lombi) => [
- q(3990),
+ q(3983),
q(0),
],
q(lombo) => [
- q(4033),
+ q(4025),
q(0),
],
q(lomwe) => [
- q(4854),
+ q(4844),
q(0),
],
q(loncong) => [
- q(3842),
+ q(3837),
q(0),
],
q(long phuri naga) => [
- q(4046),
+ q(4038),
q(0),
],
q(long wat) => [
- q(6765),
+ q(6756),
q(0),
],
q(longgu) => [
- q(3903),
+ q(3897),
q(0),
],
q(longto) => [
- q(7212),
+ q(7203),
q(0),
],
q(longuda) => [
- q(4018),
+ q(4010),
q(0),
],
q(loniu) => [
- q(4037),
+ q(4029),
q(0),
],
q(lonwolwol) => [
- q(1850),
+ q(1845),
q(0),
],
q(lonzo) => [
- q(4020),
+ q(4012),
q(0),
],
q(loo) => [
- q(3861),
+ q(3856),
q(0),
],
q(lopa) => [
- q(4034),
+ q(4026),
q(0),
],
q(lopi) => [
- q(4040),
+ q(4032),
q(0),
],
q(lopit) => [
- q(4048),
+ q(4040),
q(0),
],
q(lorang) => [
- q(4057),
+ q(4049),
q(0),
],
q(lorediakarkar) => [
- q(4015),
+ q(4007),
q(0),
],
q(loreto-ucayali spanish) => [
- q(6198),
+ q(6189),
q(0),
],
q(lote) => [
- q(6973),
+ q(6964),
q(0),
],
q(lotha naga) => [
- q(4917),
+ q(4907),
q(0),
],
q(lotud) => [
- q(2169),
+ q(2164),
q(0),
],
q(lou) => [
- q(4029),
+ q(4021),
q(0),
],
q(louisiana creole french) => [
- q(4039),
+ q(4031),
q(0),
],
q(loun) => [
- q(4042),
+ q(4034),
q(0),
],
q(loup a) => [
- q(7408),
+ q(7401),
q(0),
],
q(loup b) => [
- q(7401),
+ q(7394),
q(0),
],
q(lovono) => [
- q(7049),
+ q(7040),
q(1),
],
q(low german) => [
@@ -40448,19 +40462,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(lower burdekin) => [
- q(7300),
+ q(7292),
q(0),
],
q(lower chehalis) => [
- q(1710),
+ q(1705),
q(0),
],
q(lower grand valley dani) => [
- q(2107),
+ q(2102),
q(0),
],
q(lower silesian) => [
- q(6110),
+ q(6100),
q(0),
],
q(lower sorbian) => [
@@ -40468,31 +40482,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lower southern aranda) => [
- q(0991),
+ q(0988),
q(0),
],
q(lower ta'oih) => [
- q(6757),
+ q(6748),
q(0),
],
q(lower tanana) => [
- q(6365),
+ q(6357),
q(0),
],
q(lowland oaxaca chontal) => [
- q(1783),
+ q(1778),
q(0),
],
q(lowland tarahumara) => [
- q(6367),
+ q(6359),
q(0),
],
q(loxicha zapotec) => [
- q(7967),
+ q(7956),
q(0),
],
q(loyop) => [
- q(6948),
+ q(6939),
q(1),
],
q(lozi) => [
@@ -40500,15 +40514,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lu) => [
- q(3335),
+ q(3332),
q(0),
],
q(lua') => [
- q(5595),
+ q(5586),
q(0),
],
q(luang) => [
- q(3887),
+ q(3881),
q(0),
],
q(luba-katanga) => [
@@ -40520,59 +40534,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lubila) => [
- q(3213),
+ q(3210),
q(0),
],
q(lubu) => [
- q(3843),
+ q(3838),
q(0),
],
q(lubuagan kalinga) => [
- q(3482),
+ q(3480),
q(0),
],
q(lubukusu) => [
- q(1580),
+ q(1576),
q(1),
],
q(luchazi) => [
- q(3844),
+ q(3839),
q(0),
],
q(lucumi) => [
- q(4093),
+ q(4085),
q(0),
],
q(ludian) => [
- q(4085),
+ q(4077),
q(0),
],
q(lufu) => [
- q(3863),
+ q(3858),
q(0),
],
q(lugbara) => [
- q(3893),
+ q(3887),
q(0),
],
q(luguru) => [
- q(5872),
+ q(5864),
q(0),
],
q(luhu) => [
- q(3848),
+ q(3843),
q(0),
],
q(lui) => [
- q(3817),
+ q(3812),
q(0),
],
q(luidakho-luisukha-lutirichi) => [
- q(2905),
+ q(2902),
q(1),
],
q(luimbi) => [
- q(4091),
+ q(4083),
q(0),
],
q(luiseno) => [
@@ -40580,15 +40594,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lukabaras) => [
- q(3946),
+ q(3939),
q(1),
],
q(lukpa) => [
- q(2127),
+ q(2122),
q(0),
],
q(lule) => [
- q(6900),
+ q(6892),
q(0),
],
q(lule sami) => [
@@ -40596,35 +40610,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lulogooli) => [
- q(5749),
+ q(5740),
q(1),
],
q(lumba-yakkha) => [
- q(4096),
+ q(4088),
q(0),
],
q(lumbee) => [
- q(4005),
+ q(3997),
q(0),
],
q(lumbu) => [
- q(4092),
+ q(4084),
q(0),
],
q(lumun) => [
- q(3985),
+ q(3978),
q(0),
],
q(lun bawang) => [
- q(4008),
+ q(4000),
q(1),
],
q(luna) => [
- q(4088),
+ q(4080),
q(0),
],
q(lunanakha) => [
- q(4089),
+ q(4081),
q(0),
],
q(lunda) => [
@@ -40632,19 +40646,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lundayeh) => [
- q(4008),
+ q(4000),
q(0),
],
q(lungalunga) => [
- q(7032),
+ q(7023),
q(0),
],
q(lungga) => [
- q(3891),
+ q(3885),
q(0),
],
q(luo (cameroon)) => [
- q(4098),
+ q(4090),
q(0),
],
q(luo (kenya and tanzania)) => [
@@ -40652,19 +40666,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(luopohe hmong) => [
- q(2791),
+ q(2788),
q(0),
],
q(luopohe miao) => [
- q(2791),
+ q(2788),
q(1),
],
q(luri) => [
- q(3852),
+ q(3847),
q(0),
],
q(lusengo) => [
- q(4065),
+ q(4057),
q(0),
],
q(lushai) => [
@@ -40672,35 +40686,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lushootseed) => [
- q(4095),
+ q(4087),
q(0),
],
q(lusi) => [
- q(3344),
+ q(3341),
q(0),
],
q(lusitanian) => [
- q(7410),
+ q(7403),
q(0),
],
q(lutachoni) => [
- q(4082),
+ q(4074),
q(1),
],
q(lutos) => [
- q(4814),
+ q(4804),
q(0),
],
q(luvale) => [
- q(4086),
+ q(4078),
q(0),
],
q(luwati) => [
- q(4097),
+ q(4089),
q(0),
],
q(luwo) => [
- q(4111),
+ q(4103),
q(0),
],
q(luxembourgish) => [
@@ -40708,115 +40722,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(luyana) => [
- q(4117),
+ q(4109),
q(0),
],
q(luyia) => [
- q(4099),
+ q(4091),
q(0),
],
q(lwalu) => [
- q(4105),
+ q(4097),
q(0),
],
q(lycian) => [
- q(7402),
+ q(7395),
q(0),
],
q(lydian) => [
- q(7403),
+ q(7396),
q(0),
],
q(lyele) => [
- q(3868),
+ q(3863),
q(0),
],
q(lyngngam) => [
- q(4116),
+ q(4108),
q(0),
],
q(lyons sign language) => [
- q(4066),
+ q(4058),
q(0),
],
q(ma (democratic republic of congo)) => [
- q(4547),
+ q(4538),
q(0),
],
q(ma (papua new guinea)) => [
- q(4339),
+ q(4330),
q(0),
],
q(ma manda) => [
- q(6082),
+ q(6072),
q(0),
],
q(ma'anyan) => [
- q(4305),
+ q(4296),
q(0),
],
q(ma'di) => [
- q(4290),
+ q(4281),
q(0),
],
q(ma'ya) => [
- q(6124),
+ q(6114),
q(0),
],
q(maa) => [
- q(1788),
+ q(1783),
q(0),
],
q(maaka) => [
- q(4229),
+ q(4221),
q(0),
],
q(maasina fulfulde) => [
- q(2346),
+ q(2342),
q(0),
],
q(maay) => [
- q(7703),
+ q(7695),
q(0),
],
q(maba (chad)) => [
- q(4190),
+ q(4182),
q(0),
],
q(maba (indonesia)) => [
- q(4489),
+ q(4480),
q(0),
],
q(mabaale) => [
- q(4422),
+ q(4413),
q(0),
],
q(mabaan) => [
- q(4257),
+ q(4249),
q(0),
],
q(mabaka valley kalinga) => [
- q(3410),
+ q(3408),
q(0),
],
q(mabire) => [
- q(4596),
+ q(4587),
q(0),
],
q(maca) => [
- q(4160),
+ q(4152),
q(0),
],
q(macaguaje) => [
- q(4171),
+ q(4163),
q(0),
],
q(macaguan) => [
- q(4147),
+ q(4139),
q(0),
],
q(macanese) => [
- q(4720),
+ q(4710),
q(0),
],
q(macedo-romanian) => [
@@ -40828,63 +40842,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(machame) => [
- q(3120),
+ q(3118),
q(0),
],
q(machiguenga) => [
- q(4161),
+ q(4153),
q(0),
],
q(machinere) => [
- q(4467),
+ q(4458),
q(0),
],
q(machinga) => [
- q(4629),
+ q(4620),
q(0),
],
q(maco) => [
- q(7220),
+ q(7211),
q(0),
],
q(macuna) => [
- q(4701),
+ q(4691),
q(0),
],
q(macushi) => [
- q(4137),
+ q(4129),
q(0),
],
q(mada (cameroon)) => [
- q(4676),
+ q(4666),
q(0),
],
q(mada (nigeria)) => [
- q(4186),
+ q(4178),
q(0),
],
q(madagascar sign language) => [
- q(4705),
+ q(4695),
q(0),
],
q(madak) => [
- q(4420),
+ q(4411),
q(0),
],
q(maden) => [
- q(7435),
+ q(7428),
q(0),
],
q(madhi madhi) => [
- q(2089),
+ q(2084),
q(0),
],
q(madi) => [
- q(2618),
+ q(2616),
q(0),
],
q(madngele) => [
- q(7896),
+ q(7885),
q(0),
],
q(madurese) => [
@@ -40892,31 +40906,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mae) => [
- q(4402),
+ q(4393),
q(0),
],
q(maek) => [
- q(2790),
+ q(2787),
q(0),
],
q(maeng itneg) => [
- q(3022),
+ q(3019),
q(0),
],
q(mafa) => [
- q(4125),
+ q(4117),
q(0),
],
q(mafea) => [
- q(4371),
+ q(4362),
q(0),
],
q(mag-antsi ayta) => [
- q(5999),
+ q(5990),
q(0),
],
q(mag-indi ayta) => [
- q(1302),
+ q(1299),
q(0),
],
q(magahi) => [
@@ -40924,99 +40938,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(magbukun ayta) => [
- q(1010),
+ q(1007),
q(0),
],
q(magdalena penasco mixtec) => [
- q(7524),
+ q(7516),
q(0),
],
q(maghdi) => [
- q(2559),
+ q(2556),
q(0),
],
q(magoma) => [
- q(2565),
+ q(2563),
q(0),
],
q(magori) => [
- q(7852),
+ q(7841),
q(0),
],
q(maguindanaon) => [
- q(4192),
+ q(4184),
+ q(0),
+ ],
+ q(magyi) => [
+ q(2557),
q(0),
],
q(mah meri) => [
- q(4286),
+ q(4278),
q(1),
],
q(mahali) => [
- q(4349),
+ q(4340),
q(0),
],
q(maharastri prakrit) => [
- q(5521),
+ q(5513),
q(0),
],
q(mahasu pahari) => [
- q(1162),
+ q(1159),
q(0),
],
q(mahican) => [
- q(4350),
+ q(4341),
q(0),
],
q(mahongwe) => [
- q(4283),
+ q(4275),
q(0),
],
q(mahou) => [
- q(4679),
+ q(4669),
q(0),
],
q(mai brat) => [
- q(1013),
+ q(1010),
q(0),
],
q(maia) => [
- q(6097),
+ q(6087),
q(0),
],
q(maiadomu) => [
- q(4727),
+ q(4717),
q(0),
],
q(maiani) => [
- q(6624),
+ q(6616),
q(0),
],
q(maii) => [
- q(4410),
+ q(4401),
q(0),
],
q(mailu) => [
- q(4277),
+ q(4269),
q(0),
],
q(maindo) => [
- q(1929),
+ q(1924),
q(0),
],
q(mainfrankisch) => [
- q(7031),
+ q(7022),
q(0),
],
q(mainstream kenyah) => [
- q(7386),
+ q(7379),
q(0),
],
q(mairasi) => [
- q(7955),
+ q(7944),
q(0),
],
q(maisin) => [
- q(4150),
+ q(4142),
q(0),
],
q(maithili) => [
@@ -41024,55 +41042,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(maiwa (indonesia)) => [
- q(7183),
+ q(7174),
q(0),
],
q(maiwa (papua new guinea)) => [
- q(4571),
+ q(4562),
q(0),
],
q(maiwala) => [
- q(4598),
+ q(4589),
q(0),
],
q(majang) => [
- q(4468),
+ q(4459),
q(0),
],
q(majera) => [
- q(7421),
+ q(7414),
q(0),
],
q(majhi) => [
- q(4351),
+ q(4342),
q(0),
],
q(majhwar) => [
- q(4407),
+ q(4398),
q(0),
],
q(majukayang kalinga) => [
- q(3458),
+ q(3456),
q(0),
],
q(mak (china)) => [
- q(4357),
+ q(4348),
q(0),
],
q(mak (nigeria)) => [
- q(5379),
+ q(5370),
q(0),
],
q(makaa) => [
- q(4175),
+ q(4167),
q(0),
],
q(makah) => [
- q(4688),
+ q(4678),
q(0),
],
q(makasae) => [
- q(4375),
+ q(4366),
q(0),
],
q(makasar) => [
@@ -41080,95 +41098,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(makassar malay) => [
- q(4247),
+ q(4239),
q(0),
],
q(makayam) => [
- q(0948),
+ q(0945),
q(0),
],
q(makhuwa) => [
- q(7045),
+ q(7036),
q(0),
],
q(makhuwa-marrevone) => [
- q(7415),
+ q(7408),
q(0),
],
q(makhuwa-meetto) => [
- q(4264),
+ q(4256),
q(0),
],
q(makhuwa-moniga) => [
- q(4294),
+ q(4285),
q(0),
],
q(makhuwa-saka) => [
- q(7508),
+ q(7500),
q(0),
],
q(makhuwa-shirima) => [
- q(7036),
+ q(7027),
q(0),
],
q(maklew) => [
- q(4262),
+ q(4254),
q(0),
],
q(makolkol) => [
- q(7892),
+ q(7881),
q(0),
],
q(makonde) => [
- q(3240),
+ q(3237),
q(0),
],
q(maku'a) => [
- q(4101),
+ q(4093),
q(0),
],
q(makurap) => [
- q(4483),
+ q(4474),
q(0),
],
q(makuri naga) => [
- q(3124),
+ q(3122),
q(0),
],
q(makwe) => [
- q(7701),
+ q(7693),
q(0),
],
q(makyan naga) => [
- q(6915),
+ q(6907),
q(0),
],
q(mal) => [
- q(4380),
+ q(4371),
q(0),
],
q(mal paharia) => [
- q(4353),
+ q(4344),
q(0),
],
q(mala (nigeria)) => [
- q(5881),
+ q(5873),
q(0),
],
q(mala (papua new guinea)) => [
- q(5414),
+ q(5405),
q(0),
],
q(mala malasar) => [
- q(2963),
+ q(2961),
q(0),
],
q(malaccan creole malay) => [
- q(1692),
+ q(1687),
q(0),
],
q(malaccan creole portuguese) => [
- q(4172),
+ q(4164),
q(0),
],
q(malagasy) => [
@@ -41176,43 +41194,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(malalamai) => [
- q(4416),
+ q(4407),
q(0),
],
q(malango) => [
- q(4387),
+ q(4378),
q(0),
],
q(malankuravan) => [
- q(4340),
+ q(4331),
q(0),
],
q(malapandaram) => [
- q(4341),
+ q(4332),
q(0),
],
q(malaryan) => [
- q(4342),
+ q(4333),
q(0),
],
q(malas) => [
- q(4367),
+ q(4358),
q(0),
],
q(malasar) => [
- q(7708),
+ q(7700),
q(0),
],
q(malavedan) => [
- q(4343),
+ q(4334),
q(0),
],
q(malawi lomwe) => [
- q(4032),
+ q(4024),
q(0),
],
q(malawi sena) => [
- q(6315),
+ q(6306),
q(0),
],
q(malay) => [
@@ -41220,7 +41238,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(malay (individual language)) => [
- q(7882),
+ q(7871),
q(0),
],
q(malay (macrolanguage)) => [
@@ -41232,15 +41250,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(malayic dayak) => [
- q(7334),
+ q(7326),
q(0),
],
q(malaynon) => [
- q(4397),
+ q(4388),
q(0),
],
q(malayo) => [
- q(4149),
+ q(4141),
q(0),
],
q(malayo-polynesian languages) => [
@@ -41248,11 +41266,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(malaysian sign language) => [
- q(7423),
+ q(7416),
q(0),
],
q(malba birifor) => [
- q(1152),
+ q(1149),
q(0),
],
q(maldivian) => [
@@ -41260,79 +41278,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(male) => [
- q(2827),
+ q(2824),
q(1),
],
q(male (ethiopia)) => [
- q(4207),
+ q(4199),
q(0),
],
q(male (papua new guinea)) => [
- q(4188),
+ q(4180),
q(0),
],
q(malecite-passamaquoddy) => [
- q(5594),
+ q(5585),
q(0),
],
q(maleku jaika) => [
- q(2663),
+ q(2660),
q(0),
],
q(maleng) => [
- q(5491),
+ q(5483),
q(0),
],
q(maleu-kilenge) => [
- q(4268),
+ q(4260),
q(0),
],
q(malfaxal) => [
- q(4396),
+ q(4387),
q(0),
],
q(malgana) => [
- q(7037),
+ q(7028),
q(0),
],
q(malgbe) => [
- q(4661),
+ q(4651),
q(0),
],
q(mali) => [
- q(2447),
- q(0),
- ],
- q(maligo) => [
- q(4641),
+ q(2443),
q(0),
],
q(malila) => [
- q(4273),
+ q(4265),
q(0),
],
q(malimba) => [
- q(4706),
+ q(4696),
q(0),
],
q(malimpung) => [
- q(4382),
+ q(4373),
q(0),
],
q(malinaltepec me'phaa) => [
- q(6417),
+ q(6409),
q(0),
],
q(malinaltepec tlapanec) => [
- q(6417),
+ q(6409),
q(1),
],
q(malo) => [
- q(4376),
+ q(4367),
q(0),
],
q(malol) => [
- q(4144),
+ q(4136),
q(0),
],
q(maltese) => [
@@ -41340,107 +41354,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(maltese sign language) => [
- q(4196),
+ q(4188),
q(0),
],
q(malua bay) => [
- q(4385),
+ q(4376),
q(0),
],
q(malvi) => [
- q(4600),
+ q(4591),
q(0),
],
q(malyangapa) => [
- q(7641),
+ q(7632),
q(0),
],
q(mam) => [
- q(4127),
+ q(4119),
q(0),
],
q(mama) => [
- q(4398),
+ q(4389),
q(0),
],
q(mamaa) => [
- q(4287),
+ q(4279),
q(0),
],
q(mamainde) => [
- q(7179),
+ q(7170),
q(0),
],
q(mamanwa) => [
- q(4411),
+ q(4402),
q(0),
],
q(mamara senoufo) => [
- q(4691),
+ q(4681),
q(0),
],
q(mamasa) => [
- q(4497),
+ q(4488),
q(0),
],
q(mambae) => [
- q(4269),
+ q(4261),
q(0),
],
q(mambai) => [
- q(4178),
+ q(4170),
q(0),
],
q(mamboru) => [
- q(4611),
+ q(4602),
q(0),
],
q(mambwe-lungu) => [
- q(4274),
+ q(4266),
q(0),
],
q(mampruli) => [
- q(4132),
+ q(4124),
q(0),
],
q(mamuju) => [
- q(4511),
+ q(4502),
q(0),
],
q(mamulique) => [
- q(2261),
+ q(2255),
q(0),
],
q(mamusi) => [
- q(3241),
+ q(3238),
q(0),
],
q(mamvu) => [
- q(4193),
+ q(4185),
q(0),
],
q(man met) => [
- q(4409),
+ q(4400),
q(0),
],
q(manado malay) => [
- q(7424),
+ q(7417),
q(0),
],
q(manam) => [
- q(4609),
+ q(4600),
q(0),
],
q(manambu) => [
- q(4379),
+ q(4370),
q(0),
],
q(manangba) => [
- q(4983),
+ q(4973),
q(0),
],
q(manangkari) => [
- q(7914),
+ q(7903),
q(0),
],
q(manchu) => [
@@ -41448,31 +41462,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(manda (australia)) => [
- q(7885),
+ q(7874),
q(0),
],
q(manda (india)) => [
- q(4282),
+ q(4274),
q(0),
],
q(manda (tanzania)) => [
- q(4275),
+ q(4267),
q(0),
],
q(mandahuaca) => [
- q(4301),
+ q(4292),
q(0),
],
q(mandaic) => [
- q(4309),
+ q(4300),
q(0),
],
q(mandan) => [
- q(4298),
+ q(4289),
q(0),
],
q(mandandanyi) => [
- q(7895),
+ q(7884),
q(0),
],
q(mandar) => [
@@ -41480,19 +41494,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mandara) => [
- q(6392),
+ q(6384),
q(0),
],
q(mandari) => [
- q(4508),
+ q(4499),
q(0),
],
q(mandarin chinese) => [
- q(1794),
+ q(1789),
q(0),
],
q(mandaya) => [
- q(4537),
+ q(4528),
q(0),
],
q(mande languages) => [
@@ -41500,11 +41514,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mandeali) => [
- q(4337),
+ q(4328),
q(0),
],
q(mander) => [
- q(4505),
+ q(4496),
q(0),
],
q(manding) => [
@@ -41516,107 +41530,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mandinka) => [
- q(4431),
+ q(4422),
q(0),
],
q(mandjak) => [
- q(4253),
+ q(4245),
q(0),
],
q(mandobo atas) => [
- q(0558),
+ q(0557),
q(0),
],
q(mandobo bawah) => [
- q(1560),
+ q(1556),
q(0),
],
q(manem) => [
- q(3086),
+ q(3083),
q(0),
],
q(mang) => [
- q(7913),
+ q(7902),
q(0),
],
q(manga kanuri) => [
- q(3209),
+ q(3206),
q(0),
],
q(mangala) => [
- q(4220),
+ q(4212),
q(0),
],
q(mangarayi) => [
- q(4466),
+ q(4457),
q(0),
],
q(mangareva) => [
- q(4534),
+ q(4525),
q(0),
],
q(mangas) => [
- q(7915),
+ q(7904),
q(0),
],
q(mangayat) => [
- q(4690),
+ q(4680),
q(0),
],
q(mangbetu) => [
- q(4194),
+ q(4186),
q(0),
],
q(mangbutu) => [
- q(4195),
+ q(4187),
q(0),
],
q(mangerr) => [
- q(7889),
- q(0),
- ],
- q(mangetti dune !xung) => [
- q(2493),
+ q(7878),
q(0),
],
q(mangga buang) => [
- q(4412),
+ q(4403),
q(0),
],
q(manggarai) => [
- q(4512),
+ q(4503),
q(0),
],
q(mango) => [
- q(4261),
+ q(4253),
q(0),
],
q(mangole) => [
- q(4491),
+ q(4482),
q(0),
],
q(mangseng) => [
- q(4141),
+ q(4133),
q(0),
],
q(mangue) => [
- q(4453),
+ q(4444),
q(0),
],
q(manichaean middle persian) => [
- q(7425),
+ q(7418),
q(0),
],
q(manide) => [
- q(0563),
+ q(0562),
q(0),
],
q(manikion) => [
- q(4442),
+ q(4433),
q(0),
],
q(manipa) => [
- q(4503),
+ q(4494),
q(0),
],
q(manipuri) => [
@@ -41624,19 +41634,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mankanya) => [
- q(3486),
+ q(3484),
q(0),
],
q(manna-dora) => [
- q(4346),
+ q(4337),
q(0),
],
q(mannan) => [
- q(4347),
+ q(4338),
q(0),
],
q(mano) => [
- q(4228),
+ q(4220),
q(0),
],
q(manobo languages) => [
@@ -41644,39 +41654,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(manombai) => [
- q(7215),
+ q(7206),
q(0),
],
q(mansaka) => [
- q(4548),
+ q(4539),
q(0),
],
q(mansi) => [
- q(4438),
+ q(4429),
q(0),
],
q(mansoanka) => [
- q(4559),
+ q(4550),
q(0),
],
q(manta) => [
- q(4687),
+ q(4677),
q(0),
],
q(mantsi) => [
- q(5111),
+ q(5101),
q(0),
],
q(manumanaw) => [
- q(3726),
+ q(3721),
q(1),
],
q(manumanaw karen) => [
- q(3726),
+ q(3721),
q(0),
],
q(manusela) => [
- q(7131),
+ q(7122),
q(0),
],
q(manx) => [
@@ -41684,31 +41694,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(manya) => [
- q(4711),
+ q(4701),
q(0),
],
q(manyawa) => [
- q(4443),
+ q(4434),
q(0),
],
q(manyika) => [
- q(4658),
+ q(4648),
q(0),
],
q(manza) => [
- q(4723),
+ q(4713),
q(0),
],
q(mao naga) => [
- q(4756),
+ q(4746),
q(0),
],
q(maonan) => [
- q(4401),
+ q(4392),
q(0),
],
q(maore comorian) => [
- q(6308),
+ q(6299),
q(0),
],
q(maori) => [
@@ -41716,27 +41726,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mape) => [
- q(4381),
+ q(4372),
q(0),
],
q(mapena) => [
- q(4433),
+ q(4424),
q(0),
],
q(mapia) => [
- q(4487),
+ q(4478),
q(0),
],
q(mapidian) => [
- q(4485),
+ q(4476),
q(0),
],
q(mapos buang) => [
- q(1625),
+ q(1619),
q(0),
],
q(mapoyo) => [
- q(4166),
+ q(4158),
q(0),
],
q(mapuche) => [
@@ -41748,59 +41758,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mapun) => [
- q(6071),
+ q(6061),
q(0),
],
q(maquiritari) => [
- q(4167),
+ q(4159),
q(0),
],
q(mara) => [
- q(4211),
+ q(4203),
q(0),
],
q(mara chin) => [
- q(4521),
+ q(4512),
q(0),
],
q(marachi) => [
- q(4053),
+ q(4045),
q(0),
],
q(maraghei) => [
- q(7033),
+ q(7024),
q(0),
],
q(maragus) => [
- q(4531),
+ q(4522),
q(0),
],
q(maram naga) => [
- q(4971),
+ q(4961),
q(0),
],
q(marama) => [
- q(4056),
+ q(4048),
q(0),
],
q(maramba) => [
- q(4684),
+ q(4674),
q(0),
],
q(maranao) => [
- q(4535),
+ q(4526),
q(0),
],
q(marangis) => [
- q(7083),
+ q(7074),
q(1),
],
q(maranunggu) => [
- q(7902),
+ q(7891),
q(0),
],
q(mararit) => [
- q(4258),
+ q(4250),
q(0),
],
q(marathi) => [
@@ -41808,43 +41818,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(marau) => [
- q(4624),
+ q(4615),
q(0),
],
q(marba) => [
- q(4469),
+ q(4460),
q(0),
],
q(maremgi) => [
- q(4536),
+ q(4527),
q(0),
],
q(marenje) => [
- q(7041),
+ q(7032),
q(0),
],
q(marfa) => [
- q(4627),
+ q(4618),
q(0),
],
q(margany) => [
- q(7887),
+ q(7876),
q(0),
],
q(marghi central) => [
- q(4532),
+ q(4523),
q(0),
],
q(marghi south) => [
- q(4244),
+ q(4236),
q(0),
],
q(margos-yarowilca-lauricocha quechua) => [
- q(5715),
+ q(5706),
q(0),
],
q(margu) => [
- q(4288),
+ q(4280),
q(0),
],
q(mari) => [
@@ -41852,11 +41862,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mari (east sepik province)) => [
- q(4157),
+ q(4149),
q(0),
],
q(mari (madang province)) => [
- q(2814),
+ q(2811),
q(0),
],
q(mari (russia)) => [
@@ -41864,95 +41874,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(maria (india)) => [
- q(4530),
+ q(4521),
q(0),
],
q(maria (papua new guinea)) => [
- q(4201),
+ q(4193),
q(0),
],
q(maricopa) => [
- q(4516),
+ q(4507),
q(0),
],
q(maridan) => [
- q(7888),
+ q(7877),
q(0),
],
q(maridjabin) => [
- q(7894),
+ q(7883),
q(0),
],
q(marik) => [
- q(1944),
+ q(1939),
q(0),
],
q(marimanindji) => [
- q(7897),
+ q(7886),
q(0),
],
q(marind) => [
- q(4538),
+ q(4529),
q(0),
],
q(maring) => [
- q(4156),
+ q(4148),
q(0),
],
q(maring naga) => [
- q(5003),
+ q(4993),
q(0),
],
q(maringarr) => [
- q(7904),
+ q(7893),
q(0),
],
q(marino) => [
- q(4515),
+ q(4506),
q(0),
],
q(mariri) => [
- q(4496),
+ q(4487),
q(0),
],
q(marithiel) => [
- q(4249),
+ q(4241),
q(0),
],
q(maritime sign language) => [
- q(5089),
+ q(5079),
q(0),
],
q(maritsaua) => [
- q(4553),
+ q(4544),
q(0),
],
q(mariyedi) => [
- q(7909),
+ q(7898),
q(0),
],
q(marka) => [
- q(5810),
+ q(5801),
q(0),
],
q(markweeta) => [
- q(2271),
+ q(2264),
q(0),
],
q(marma) => [
- q(5836),
+ q(5827),
q(0),
],
q(marovo) => [
- q(4621),
+ q(4612),
q(0),
],
q(marriammu) => [
- q(7493),
+ q(7486),
q(0),
],
q(marrucinian) => [
- q(6910),
+ q(6902),
q(0),
],
q(marshallese) => [
@@ -41960,31 +41970,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(marsian) => [
- q(2970),
+ q(2967),
q(0),
],
q(martha's vineyard sign language) => [
- q(4518),
+ q(4509),
q(0),
],
q(marti ke) => [
- q(7891),
+ q(7880),
q(0),
],
q(martu wangka) => [
- q(4472),
+ q(4463),
q(0),
],
q(martuyhunira) => [
- q(7026),
+ q(7017),
q(0),
],
q(maru) => [
- q(4304),
+ q(4295),
q(0),
],
q(marubo) => [
- q(4719),
+ q(4709),
q(0),
],
q(marwari) => [
@@ -41992,19 +42002,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(marwari (india)) => [
- q(5887),
+ q(5879),
q(0),
],
q(marwari (pakistan)) => [
- q(4612),
+ q(4603),
q(0),
],
q(masaaba) => [
- q(4700),
+ q(4690),
q(0),
],
q(masadiit itneg) => [
- q(6539),
+ q(6530),
q(0),
],
q(masai) => [
@@ -42012,199 +42022,191 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(masalit) => [
- q(4392),
+ q(4383),
q(0),
],
q(masana) => [
- q(4173),
+ q(4165),
q(0),
],
q(masbatenyo) => [
- q(4539),
+ q(4530),
q(0),
],
q(mashco piro) => [
- q(1913),
+ q(1908),
q(0),
],
q(mashi (nigeria)) => [
- q(3126),
+ q(3124),
q(0),
],
q(mashi (zambia)) => [
- q(4296),
+ q(4287),
q(0),
],
q(masikoro malagasy) => [
- q(4545),
+ q(4536),
q(0),
],
q(masimasi) => [
- q(3007),
+ q(3004),
q(0),
],
q(masiwang) => [
- q(1336),
+ q(1332),
q(0),
],
q(maskelynes) => [
- q(3451),
- q(0),
- ],
- q(maskoy pidgin) => [
- q(4289),
+ q(3449),
q(0),
],
q(maslam) => [
- q(4558),
+ q(4549),
q(0),
],
q(masmaje) => [
- q(4225),
+ q(4217),
q(0),
],
q(massalat) => [
- q(4191),
+ q(4183),
q(0),
],
q(massep) => [
- q(4625),
+ q(4616),
q(0),
],
q(matagalpa) => [
- q(4576),
+ q(4567),
q(0),
],
q(matal) => [
- q(4239),
+ q(4231),
q(0),
],
q(matbat) => [
- q(7431),
+ q(7424),
q(0),
],
q(matengo) => [
- q(4278),
+ q(4270),
q(0),
],
q(matepi) => [
- q(4492),
+ q(4483),
q(0),
],
q(matigsalug manobo) => [
- q(4153),
+ q(4145),
q(0),
],
q(matipuhy) => [
- q(4716),
+ q(4706),
q(0),
],
q(matis) => [
- q(4479),
+ q(4470),
q(0),
],
q(mato) => [
- q(4226),
+ q(4218),
q(0),
],
q(mato grosso arara) => [
- q(0989),
+ q(0986),
q(0),
],
q(mator) => [
- q(4575),
- q(0),
- ],
- q(mator-taygi-karagas) => [
- q(7710),
+ q(4566),
q(0),
],
q(matses) => [
- q(4165),
+ q(4157),
q(0),
],
q(mattoki) => [
- q(7451),
+ q(7444),
q(1),
],
q(mattole) => [
- q(4610),
+ q(4601),
q(0),
],
q(matu chin) => [
- q(2778),
+ q(2775),
q(0),
],
q(matukar) => [
- q(4336),
+ q(4327),
q(0),
],
q(matumbi) => [
- q(4279),
+ q(4271),
q(0),
],
q(matya samo) => [
- q(6270),
+ q(6261),
q(0),
],
q(maung) => [
- q(4470),
+ q(4461),
q(0),
],
q(mauritian sign language) => [
- q(4076),
+ q(4068),
q(0),
],
q(mauwake) => [
- q(4293),
+ q(4284),
q(0),
],
q(mawa (chad)) => [
- q(4182),
+ q(4174),
q(0),
],
q(mawa (nigeria)) => [
- q(7176),
+ q(7167),
q(0),
],
q(mawak) => [
- q(4335),
+ q(4326),
q(0),
],
q(mawan) => [
- q(4185),
+ q(4177),
q(0),
],
q(mawayana) => [
- q(4725),
+ q(4715),
q(0),
],
q(mawchi) => [
- q(4355),
+ q(4346),
q(0),
],
q(mawes) => [
- q(4267),
+ q(4259),
q(0),
],
q(mawukakan) => [
- q(4679),
+ q(4669),
q(1),
],
q(maxakali) => [
- q(4145),
+ q(4137),
q(0),
],
q(maxi gbe) => [
- q(4667),
+ q(4657),
q(0),
],
q(maya samo) => [
- q(6348),
+ q(6339),
q(0),
],
q(mayaguduna) => [
- q(7436),
+ q(7429),
q(0),
],
q(mayan languages) => [
@@ -42212,323 +42214,323 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mayangna) => [
- q(7595),
+ q(7587),
q(0),
],
q(mayawali) => [
- q(7803),
+ q(7792),
q(0),
],
q(mayeka) => [
- q(4683),
+ q(4673),
q(0),
],
q(mayi-kulan) => [
- q(7575),
+ q(7567),
q(0),
],
q(mayi-thakurti) => [
- q(7577),
+ q(7569),
q(0),
],
q(mayi-yapi) => [
- q(7574),
+ q(7566),
q(0),
],
q(mayo) => [
- q(4256),
+ q(4248),
q(0),
],
q(mayogo) => [
- q(4197),
+ q(4189),
q(0),
],
q(mayoyao ifugao) => [
- q(2921),
+ q(2918),
q(0),
],
q(mazagway) => [
- q(2081),
+ q(2076),
q(0),
],
q(mazaltepec zapotec) => [
- q(7947),
+ q(7936),
q(0),
],
q(mazanderani) => [
- q(4715),
+ q(4705),
q(0),
],
q(mazatlan mazatec) => [
- q(7048),
+ q(7039),
q(0),
],
q(mazatlan mixe) => [
- q(4713),
+ q(4703),
q(0),
],
q(mba) => [
- q(4234),
+ q(4226),
q(0),
],
q(mbala) => [
- q(4199),
+ q(4191),
q(0),
],
q(mbalanhu) => [
- q(4007),
+ q(3999),
q(0),
],
q(mbandja) => [
- q(7910),
+ q(7899),
q(0),
],
q(mbangala) => [
- q(4662),
+ q(4652),
q(0),
],
q(mbangi) => [
- q(4270),
+ q(4262),
q(0),
],
q(mbangwe) => [
- q(7898),
+ q(7887),
q(0),
],
q(mbara (australia)) => [
- q(4618),
+ q(4609),
q(0),
],
q(mbara (chad)) => [
- q(4473),
+ q(4464),
q(0),
],
q(mbariman-gudhinma) => [
- q(7906),
+ q(7895),
q(0),
],
q(mbati) => [
- q(4198),
+ q(4190),
q(0),
],
q(mbato) => [
- q(2682),
+ q(2679),
q(0),
],
q(mbay) => [
- q(4682),
+ q(4672),
q(0),
],
q(mbe) => [
- q(4246),
+ q(4238),
q(0),
],
q(mbe') => [
- q(4573),
+ q(4564),
q(0),
],
q(mbelime) => [
- q(4499),
+ q(4490),
q(0),
],
q(mbere) => [
- q(4202),
+ q(4194),
q(0),
],
q(mbesa) => [
- q(7903),
+ q(7892),
q(0),
],
q(mbo (cameroon)) => [
- q(4148),
+ q(4140),
q(0),
],
q(mbo (democratic republic of congo)) => [
- q(7907),
+ q(7896),
q(0),
],
q(mboi) => [
- q(4450),
+ q(4441),
q(0),
],
q(mboko) => [
- q(4203),
+ q(4195),
q(0),
],
q(mbole) => [
- q(4200),
+ q(4192),
q(0),
],
q(mbonga) => [
- q(7414),
+ q(7407),
q(0),
],
q(mbongno) => [
- q(1182),
+ q(1179),
q(0),
],
q(mbosi) => [
- q(4205),
+ q(4197),
q(0),
],
q(mbowe) => [
- q(4670),
+ q(4660),
q(0),
],
q(mbre) => [
- q(4352),
+ q(4343),
q(0),
],
q(mbudum) => [
- q(7416),
+ q(7409),
q(0),
],
q(mbugu) => [
- q(4285),
+ q(4277),
q(0),
],
q(mbugwe) => [
- q(4281),
+ q(4273),
q(0),
],
q(mbuko) => [
- q(4490),
+ q(4481),
q(0),
],
q(mbukushu) => [
- q(4303),
+ q(4294),
q(0),
],
q(mbula) => [
- q(4423),
+ q(4414),
q(0),
],
q(mbula-bwazza) => [
- q(4154),
+ q(4146),
q(0),
],
q(mbule) => [
- q(4377),
+ q(4368),
q(0),
],
q(mbulungish) => [
- q(4155),
+ q(4147),
q(0),
],
q(mbum) => [
- q(4189),
+ q(4181),
q(0),
],
q(mbunda) => [
- q(4170),
+ q(4162),
q(0),
],
q(mbunga) => [
- q(4280),
+ q(4272),
q(0),
],
q(mburku) => [
- q(1059),
+ q(1056),
q(0),
],
q(mbwela) => [
- q(4252),
+ q(4244),
q(0),
],
q(mbya guarani) => [
- q(2657),
+ q(2654),
q(0),
],
q(me'en) => [
- q(4693),
+ q(4683),
q(0),
],
q(mea) => [
- q(1744),
+ q(1739),
q(2),
],
q(medebur) => [
- q(4338),
+ q(4329),
q(0),
],
q(media lengua) => [
- q(4592),
+ q(4583),
q(0),
],
q(mediak) => [
- q(4653),
+ q(4643),
q(0),
],
q(median) => [
- q(7417),
+ q(7410),
q(0),
],
q(mednyj aleut) => [
- q(4591),
+ q(4582),
q(0),
],
q(medumba) => [
- q(1613),
+ q(1608),
q(0),
],
q(mefele) => [
- q(4241),
+ q(4233),
q(0),
],
q(megam) => [
- q(4214),
+ q(4206),
q(0),
],
q(megleno romanian) => [
- q(5878),
+ q(5870),
q(0),
],
q(mehek) => [
- q(5135),
+ q(5125),
q(0),
],
q(mehinaku) => [
- q(4405),
+ q(4396),
q(0),
],
q(mehri) => [
- q(2470),
+ q(2466),
q(0),
],
q(mekeo) => [
- q(4218),
+ q(4210),
q(0),
],
q(mekmek) => [
- q(4617),
+ q(4608),
q(0),
],
q(mekwei) => [
- q(4543),
+ q(4534),
q(0),
],
q(mele-fila) => [
- q(4660),
+ q(4650),
q(0),
],
q(melo) => [
- q(4255),
+ q(4247),
q(0),
],
q(melpa) => [
- q(4212),
+ q(4204),
q(0),
],
q(memoni) => [
- q(4158),
+ q(4150),
q(0),
],
q(mendalam kayan) => [
- q(7378),
+ q(7371),
q(0),
],
q(mendankwe-nkwen) => [
- q(4235),
+ q(4227),
q(0),
],
q(mende) => [
@@ -42536,7 +42538,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mende (papua new guinea)) => [
- q(6053),
+ q(6043),
q(0),
],
q(mende (sierra leone)) => [
@@ -42544,155 +42546,155 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(mengaka) => [
- q(7419),
+ q(7412),
q(0),
],
q(mengen) => [
- q(4213),
+ q(4205),
q(0),
],
q(mengisa) => [
- q(4179),
+ q(4171),
q(0),
],
q(menik) => [
- q(6633),
+ q(6625),
q(0),
],
q(menka) => [
- q(4209),
+ q(4201),
q(0),
],
q(menominee) => [
- q(4231),
+ q(4223),
q(0),
],
q(mentawai) => [
- q(4651),
+ q(4641),
q(0),
],
q(menya) => [
- q(4177),
+ q(4169),
q(0),
],
q(meoswar) => [
- q(4630),
+ q(4621),
q(0),
],
q(mer) => [
- q(4439),
+ q(4430),
q(0),
],
q(meramera) => [
- q(4668),
+ q(4658),
q(0),
],
q(merei) => [
- q(3983),
+ q(3976),
q(0),
],
q(merey) => [
- q(4223),
+ q(4215),
q(0),
],
q(meriam) => [
- q(6903),
+ q(6895),
q(0),
],
q(merlav) => [
- q(4525),
+ q(4516),
q(0),
],
q(meroitic) => [
- q(7429),
+ q(7422),
q(0),
],
q(meru) => [
- q(4224),
+ q(4216),
q(0),
],
q(merwari) => [
- q(7239),
+ q(7230),
q(0),
],
q(mesaka) => [
- q(3038),
+ q(3035),
q(0),
],
q(mescalero-chiricahua apache) => [
- q(0847),
+ q(0845),
q(0),
],
q(mese) => [
- q(4168),
+ q(4160),
q(0),
],
q(meskwaki) => [
- q(5895),
+ q(5887),
q(0),
],
q(mesme) => [
- q(7862),
+ q(7851),
q(0),
],
q(mesmes) => [
- q(4697),
+ q(4687),
q(0),
],
q(mesopotamian arabic) => [
- q(0592),
+ q(0591),
q(0),
],
q(mesqan) => [
- q(4632),
+ q(4623),
q(0),
],
q(messapic) => [
- q(1797),
+ q(1792),
q(0),
],
q(meta') => [
- q(4271),
+ q(4263),
q(0),
],
q(metlatonoc mixtec) => [
- q(4677),
+ q(4667),
q(0),
],
q(mewari) => [
- q(4580),
+ q(4571),
q(0),
],
q(mewati) => [
- q(7252),
+ q(7243),
q(0),
],
q(mexican sign language) => [
- q(4250),
+ q(4242),
q(0),
],
q(meyah) => [
- q(4217),
+ q(4209),
q(0),
],
q(mezontla popoloca) => [
- q(5374),
+ q(5365),
q(0),
],
q(mezquital otomi) => [
- q(5326),
+ q(5318),
q(0),
],
q(mfinu) => [
- q(7890),
+ q(7879),
q(0),
],
q(mfumte) => [
- q(4843),
+ q(4833),
q(0),
],
q(mgbolizhia) => [
- q(2567),
+ q(2565),
q(0),
],
q(mi'kmaq) => [
@@ -42700,35 +42702,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(miahuatlan zapotec) => [
- q(7826),
+ q(7815),
q(0),
],
q(miami) => [
- q(4307),
+ q(4298),
q(0),
],
q(mian) => [
- q(4482),
+ q(4473),
q(0),
],
q(miani) => [
- q(5493),
+ q(5485),
q(0),
],
q(michif) => [
- q(1853),
+ q(1848),
q(0),
],
q(michigamea) => [
- q(1793),
+ q(1788),
q(0),
],
q(michoacan mazahua) => [
- q(4400),
+ q(4391),
q(0),
],
q(michoacan nahuatl) => [
- q(4782),
+ q(4772),
q(0),
],
q(micmac) => [
@@ -42736,23 +42738,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(mid grand valley dani) => [
- q(2112),
+ q(2107),
q(0),
],
q(mid-southern banda) => [
- q(1246),
+ q(1243),
q(0),
],
q(middle armenian) => [
- q(0992),
+ q(0989),
q(0),
],
q(middle breton) => [
- q(7307),
+ q(7299),
q(0),
],
q(middle cornish) => [
- q(1812),
+ q(1807),
q(0),
],
q(middle dutch (ca. 1050-1350)) => [
@@ -42772,7 +42774,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(middle hittite) => [
- q(2854),
+ q(2851),
q(0),
],
q(middle irish (900-1200)) => [
@@ -42780,103 +42782,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(middle korean (10th-16th cent.)) => [
- q(5243),
+ q(5234),
q(0),
],
q(middle low german) => [
- q(2560),
+ q(2558),
q(0),
],
q(middle mongolian) => [
- q(7440),
+ q(7433),
q(0),
],
q(middle newar) => [
- q(5149),
+ q(5139),
q(0),
],
q(middle watut) => [
- q(4474),
+ q(4465),
q(0),
],
q(middle welsh) => [
- q(7167),
+ q(7158),
q(0),
],
q(midob) => [
- q(4216),
+ q(4208),
q(0),
],
q(migaama) => [
- q(4421),
+ q(4412),
q(0),
],
q(migabac) => [
- q(4478),
+ q(4469),
q(0),
],
q(migum) => [
- q(3442),
+ q(3440),
q(0),
],
q(miji) => [
- q(6070),
+ q(6060),
q(1),
],
q(miju-mishmi) => [
- q(4665),
+ q(4655),
q(0),
],
q(mikasuki) => [
- q(4316),
+ q(4307),
q(0),
],
q(mili) => [
- q(7699),
+ q(7691),
q(0),
],
q(miltu) => [
- q(4383),
+ q(4374),
q(0),
],
q(miluk) => [
- q(2966),
+ q(2963),
q(0),
],
q(milyan) => [
- q(2971),
+ q(2968),
q(0),
],
q(min bei chinese) => [
- q(4435),
+ q(4426),
q(0),
],
q(min dong chinese) => [
- q(1705),
+ q(1700),
q(0),
],
q(min nan chinese) => [
- q(4739),
+ q(4729),
q(0),
],
q(min zhong chinese) => [
- q(1940),
+ q(1935),
q(0),
],
q(mina (cameroon)) => [
- q(2803),
+ q(2800),
q(0),
],
q(mina (india)) => [
- q(4689),
+ q(4679),
q(0),
],
q(minaean) => [
- q(2976),
+ q(2973),
q(0),
],
q(minang) => [
- q(7486),
+ q(7479),
q(0),
],
q(minangkabau) => [
@@ -42884,71 +42886,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(minanibai) => [
- q(4181),
+ q(4173),
q(0),
],
q(minaveha) => [
- q(4620),
+ q(4611),
q(0),
],
q(minderico) => [
- q(2139),
+ q(2134),
q(0),
],
q(mindiri) => [
- q(4476),
+ q(4467),
q(0),
],
q(mingang doso) => [
- q(4364),
+ q(4355),
q(0),
],
q(mingrelian) => [
- q(7418),
+ q(7411),
q(0),
],
q(minica huitoto) => [
- q(2851),
+ q(2848),
q(0),
],
q(minidien) => [
- q(7141),
+ q(7132),
q(0),
],
q(minigir) => [
- q(1575),
+ q(1571),
q(1),
],
q(minjungbal) => [
- q(7373),
+ q(7366),
q(0),
],
q(minkin) => [
- q(7569),
+ q(7561),
q(0),
],
q(minoan) => [
- q(5266),
+ q(5258),
q(0),
],
q(minokok) => [
- q(4504),
+ q(4495),
q(0),
],
q(minriq) => [
- q(4436),
+ q(4427),
q(0),
],
q(mintil) => [
- q(4721),
+ q(4711),
q(0),
],
q(minz zhuang) => [
- q(7850),
+ q(7839),
q(0),
],
q(miqie) => [
- q(7662),
+ q(7654),
q(0),
],
q(mirandese) => [
@@ -42956,163 +42958,159 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(miraya bikol) => [
- q(5768),
+ q(5759),
q(0),
],
q(mirgan) => [
- q(7951),
+ q(7940),
q(0),
],
q(miriti) => [
- q(4418),
+ q(4409),
q(0),
],
q(miriwung) => [
- q(4222),
- q(0),
- ],
- q(mirpur panjabi) => [
- q(5533),
+ q(4214),
q(0),
],
q(miship) => [
- q(4344),
+ q(4335),
q(0),
],
q(misima-panaeati) => [
- q(4486),
+ q(4477),
q(0),
],
q(mising) => [
- q(4520),
+ q(4511),
q(0),
],
q(miskito) => [
- q(4321),
+ q(4312),
q(0),
],
q(mitla zapotec) => [
- q(7834),
+ q(7823),
q(0),
],
q(mitlatongo mixtec) => [
- q(7038),
+ q(7029),
q(0),
],
q(mittu) => [
- q(4650),
+ q(4640),
q(0),
],
q(mituku) => [
- q(7901),
+ q(7890),
q(0),
],
q(miu) => [
- q(4477),
+ q(4468),
q(0),
],
q(miwa) => [
- q(7034),
+ q(7025),
q(0),
],
q(mixed great andamanese) => [
- q(2402),
+ q(2398),
q(0),
],
q(mixtepec mixtec) => [
- q(4326),
+ q(4317),
q(0),
],
q(mixtepec zapotec) => [
- q(7935),
+ q(7924),
q(0),
],
q(miya) => [
- q(4356),
+ q(4347),
q(0),
],
q(miyako) => [
- q(4616),
+ q(4607),
q(0),
],
q(miyobe) => [
- q(6185),
+ q(6175),
q(0),
],
q(mlabri) => [
- q(4514),
+ q(4505),
q(0),
],
q(mlahso) => [
- q(3912),
+ q(3906),
q(0),
],
q(mlap) => [
- q(3380),
+ q(3377),
q(0),
],
q(mlomp) => [
- q(4388),
+ q(4379),
q(0),
],
q(mmaala) => [
- q(4417),
+ q(4408),
q(0),
],
q(mmen) => [
- q(1150),
+ q(1147),
q(0),
],
q(mo) => [
- q(7155),
+ q(7146),
q(1),
],
q(mo'da) => [
- q(2435),
+ q(2431),
q(0),
],
q(moabite) => [
- q(5200),
+ q(5191),
q(0),
],
q(moba) => [
- q(4248),
+ q(4240),
q(0),
],
q(mobilian) => [
- q(4447),
+ q(4438),
q(0),
],
q(mobumrin aizi) => [
- q(0686),
+ q(0684),
q(0),
],
q(mobwa karen) => [
- q(3111),
+ q(3109),
q(0),
],
q(mocheno) => [
- q(4295),
+ q(4286),
q(0),
],
q(mochi) => [
- q(5252),
+ q(5243),
q(0),
],
q(mochica) => [
- q(5260),
+ q(5252),
q(0),
],
q(mocho) => [
- q(4284),
+ q(4276),
q(0),
],
q(mocovi) => [
- q(4446),
+ q(4437),
q(0),
],
q(modang) => [
- q(4659),
+ q(4649),
q(0),
],
q(modern greek (1453-)) => [
@@ -43120,31 +43118,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(modole) => [
- q(4502),
+ q(4493),
q(0),
],
q(moere) => [
- q(4623),
+ q(4614),
q(0),
],
q(mofu-gudur) => [
- q(4311),
+ q(4302),
q(0),
],
q(mogholi) => [
- q(4291),
+ q(4282),
q(0),
],
q(mogofin) => [
- q(4238),
+ q(4230),
q(0),
],
q(mogum) => [
- q(4458),
+ q(4449),
q(0),
],
q(mohave) => [
- q(4459),
+ q(4450),
q(0),
],
q(mohawk) => [
@@ -43152,59 +43150,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mohegan-pequot) => [
- q(7474),
+ q(7467),
q(0),
],
q(moi (congo)) => [
- q(4460),
+ q(4451),
q(0),
],
q(moi (indonesia)) => [
- q(4669),
+ q(4659),
q(0),
],
q(moikodi) => [
- q(4365),
+ q(4356),
q(0),
],
q(moingi) => [
- q(4655),
+ q(4645),
q(0),
],
q(moji) => [
- q(7700),
+ q(7692),
q(0),
],
q(mok) => [
- q(4507),
+ q(4498),
q(0),
],
q(moken) => [
- q(4649),
+ q(4639),
q(0),
],
q(mokerang) => [
- q(4251),
+ q(4243),
q(0),
],
q(mokilese) => [
- q(4359),
+ q(4350),
q(0),
],
q(moklen) => [
- q(4362),
+ q(4353),
q(0),
],
q(mokole) => [
- q(4361),
+ q(4352),
q(0),
],
q(mokpwe) => [
- q(1432),
+ q(1428),
q(0),
],
q(moksela) => [
- q(7042),
+ q(7033),
q(0),
],
q(moksha) => [
@@ -43212,11 +43210,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(molale) => [
- q(4139),
+ q(4131),
q(0),
],
q(molbog) => [
- q(5673),
+ q(5664),
q(0),
],
q(moldavian) => [
@@ -43224,7 +43222,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(moldova sign language) => [
- q(7056),
+ q(7047),
q(0),
],
q(moldovan) => [
@@ -43232,59 +43230,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(molengue) => [
- q(1572),
+ q(1568),
q(0),
],
q(molima) => [
- q(4461),
+ q(4452),
q(0),
],
q(molmo one) => [
- q(0946),
+ q(0943),
q(0),
],
q(molo) => [
- q(7899),
+ q(7888),
q(0),
],
q(molof) => [
- q(4549),
+ q(4540),
q(0),
],
q(moloko) => [
- q(4395),
+ q(4386),
q(0),
],
q(mom jango) => [
- q(7002),
+ q(6993),
q(0),
],
q(moma) => [
- q(4692),
+ q(4682),
q(0),
],
q(momare) => [
- q(4562),
+ q(4553),
q(0),
],
q(mombo dogon) => [
- q(2087),
+ q(2082),
q(0),
],
q(mombum) => [
- q(4552),
+ q(4543),
q(0),
],
q(momina) => [
- q(4399),
+ q(4390),
q(0),
],
q(momuna) => [
- q(4493),
+ q(4484),
q(0),
],
q(mon) => [
- q(4441),
+ q(4432),
q(0),
],
q(mon-khmer languages) => [
@@ -43292,15 +43290,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(monastic sign language) => [
- q(4708),
+ q(4698),
q(0),
],
q(monde) => [
- q(4425),
+ q(4416),
q(0),
],
q(mondropolon) => [
- q(5048),
+ q(5037),
q(0),
],
q(mong) => [
@@ -43308,11 +43306,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(mong leng) => [
- q(2808),
+ q(2805),
q(1),
],
q(mong njua) => [
- q(2808),
+ q(2805),
q(2),
],
q(mongo) => [
@@ -43320,11 +43318,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mongol) => [
- q(4276),
+ q(4268),
q(0),
],
q(mongolia buriat) => [
- q(1582),
+ q(1578),
q(0),
],
q(mongolian) => [
@@ -43336,163 +43334,163 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mongolian sign language) => [
- q(4555),
+ q(4546),
q(0),
],
q(mongondow) => [
- q(4449),
+ q(4440),
q(0),
],
q(moni) => [
- q(4444),
+ q(4435),
q(0),
],
q(mono (cameroon)) => [
- q(4533),
+ q(4524),
q(0),
],
q(mono (democratic republic of congo)) => [
- q(4429),
+ q(4420),
q(0),
],
q(mono (solomon islands)) => [
- q(4567),
+ q(4558),
q(0),
],
q(mono (usa)) => [
- q(4437),
+ q(4428),
q(0),
],
q(monom) => [
- q(4454),
+ q(4445),
q(0),
],
q(monsang naga) => [
- q(4978),
+ q(4968),
q(0),
],
q(montagnais) => [
- q(4448),
+ q(4439),
q(0),
],
q(montol) => [
- q(4574),
+ q(4565),
q(0),
],
q(monumbo) => [
- q(4666),
+ q(4656),
q(0),
],
q(monzombo) => [
- q(4451),
+ q(4442),
q(0),
],
q(moo) => [
- q(2688),
+ q(2685),
q(0),
],
q(moose cree) => [
- q(1858),
+ q(1853),
q(0),
],
q(mopan maya) => [
- q(4455),
+ q(4446),
q(0),
],
q(mor (bomberai peninsula)) => [
- q(4456),
+ q(4447),
q(0),
],
q(mor (mor islands)) => [
- q(4306),
+ q(4297),
q(0),
],
q(moraid) => [
- q(4544),
+ q(4535),
q(0),
],
q(morawa) => [
- q(4707),
+ q(4697),
q(0),
],
q(morelos nahuatl) => [
- q(4879),
+ q(4869),
q(0),
],
q(morerebi) => [
- q(7426),
+ q(7419),
q(0),
],
q(moresada) => [
- q(4560),
+ q(4551),
q(0),
],
q(mori atas) => [
- q(4718),
+ q(4708),
q(0),
],
q(mori bawah) => [
- q(7437),
+ q(7430),
q(0),
],
q(morigi) => [
- q(4187),
+ q(4179),
q(0),
],
q(morisyen) => [
- q(4236),
+ q(4228),
q(0),
],
q(moro) => [
- q(4457),
+ q(4448),
q(0),
],
q(moroccan arabic) => [
- q(0884),
+ q(0883),
q(0),
],
q(moroccan sign language) => [
- q(7430),
+ q(7423),
q(0),
],
q(morokodo) => [
- q(4259),
+ q(4251),
q(0),
],
q(morom) => [
- q(1105),
+ q(1102),
q(0),
],
q(moronene) => [
- q(4501),
+ q(4492),
q(0),
],
q(morori) => [
- q(4452),
+ q(4443),
q(0),
],
q(morouas) => [
- q(4528),
+ q(4519),
q(0),
],
q(mortlockese) => [
- q(4524),
+ q(4515),
q(0),
],
q(moru) => [
- q(4260),
+ q(4252),
q(0),
],
q(mosimo) => [
- q(4509),
+ q(4500),
q(0),
],
q(mosiro) => [
- q(4654),
+ q(4644),
q(0),
],
q(moskona) => [
- q(4572),
+ q(4563),
q(0),
],
q(mossi) => [
@@ -43500,179 +43498,179 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mota) => [
- q(4582),
+ q(4573),
q(0),
],
q(motlav) => [
- q(4394),
+ q(4385),
q(0),
],
q(motu) => [
- q(4227),
+ q(4219),
q(0),
],
q(mouk-aria) => [
- q(4639),
+ q(4630),
q(0),
],
q(mountain koiali) => [
- q(3547),
+ q(3544),
q(0),
],
q(mouwase) => [
- q(3127),
+ q(3125),
q(0),
],
q(movima) => [
- q(4717),
+ q(4707),
q(0),
],
q(moyadan itneg) => [
- q(3026),
+ q(3023),
q(0),
],
q(moyon naga) => [
- q(4985),
+ q(4975),
q(0),
],
q(mozambican sign language) => [
- q(4726),
+ q(4716),
q(0),
],
q(mozarabic) => [
- q(4664),
+ q(4654),
q(0),
],
q(mpade) => [
- q(4471),
+ q(4462),
q(0),
],
q(mpalitjanh) => [
- q(7468),
+ q(7461),
q(0),
],
q(mpi) => [
- q(4488),
+ q(4479),
q(0),
],
q(mpiemo) => [
- q(4183),
+ q(4175),
q(0),
],
q(mpoto) => [
- q(4464),
+ q(4455),
q(0),
],
q(mpotovoro) => [
- q(4626),
+ q(4617),
q(0),
],
q(mpumpong) => [
- q(4263),
+ q(4255),
q(0),
],
q(mpuono) => [
- q(7900),
+ q(7889),
q(0),
],
q(mpur) => [
- q(0725),
+ q(0723),
q(0),
],
q(mro-khimi chin) => [
- q(1796),
+ q(1791),
q(0),
],
q(mru) => [
- q(4527),
+ q(4518),
q(0),
],
q(mser) => [
- q(3573),
+ q(3570),
q(0),
],
q(mt. iraya agta) => [
- q(0919),
+ q(0918),
q(0),
],
q(mt. iriga agta) => [
- q(0678),
+ q(0676),
q(0),
],
q(mualang) => [
- q(4566),
+ q(4557),
q(0),
],
q(mubami) => [
- q(6740),
+ q(6731),
q(0),
],
q(mubi) => [
- q(4589),
+ q(4580),
q(0),
],
q(muda) => [
- q(7696),
+ q(7688),
q(0),
],
q(mudburra) => [
- q(2100),
+ q(2095),
q(0),
],
q(mudhili gadaba) => [
- q(2420),
+ q(2416),
q(0),
],
q(mudu koraga) => [
- q(7029),
+ q(7020),
q(0),
],
q(muduga) => [
- q(6870),
+ q(6862),
q(0),
],
q(mufian) => [
- q(0825),
+ q(0823),
q(0),
],
q(mugom) => [
- q(4597),
+ q(4588),
q(0),
],
q(muinane) => [
- q(1322),
+ q(1319),
q(0),
],
q(mukha-dora) => [
- q(4408),
+ q(4399),
q(0),
],
q(mukulu) => [
- q(4463),
+ q(4454),
q(0),
],
q(mulaha) => [
- q(4254),
+ q(4246),
q(0),
],
q(mulam) => [
- q(4386),
+ q(4377),
q(0),
],
q(mulao) => [
- q(2530),
+ q(2526),
q(0),
],
q(mulgi) => [
- q(4615),
+ q(4606),
q(0),
],
q(mullu kurumba) => [
- q(3527),
+ q(3524),
q(0),
],
q(mullukmulluk) => [
- q(4465),
+ q(4456),
q(0),
],
q(multiple languages) => [
@@ -43680,27 +43678,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(muluridyi) => [
- q(7043),
+ q(7034),
q(0),
],
q(mum) => [
- q(3550),
+ q(3547),
q(0),
],
q(mumuye) => [
- q(4714),
+ q(4704),
q(0),
],
q(mun chin) => [
- q(4647),
+ q(4637),
q(0),
],
q(muna) => [
- q(4424),
+ q(4415),
q(0),
],
q(munda) => [
- q(6929),
+ q(6921),
q(0),
],
q(munda languages) => [
@@ -43708,239 +43706,243 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mundabli) => [
- q(1357),
+ q(1353),
q(0),
],
q(mundang) => [
- q(4588),
+ q(4579),
q(0),
],
q(mundani) => [
- q(4427),
+ q(4418),
q(0),
],
q(mundari) => [
- q(6927),
+ q(6919),
q(0),
],
q(mundat) => [
- q(4403),
+ q(4394),
q(0),
],
q(mundu) => [
- q(4594),
+ q(4585),
q(0),
],
q(munduruku) => [
- q(4698),
+ q(4688),
q(0),
],
q(mungaka) => [
- q(4292),
+ q(4283),
q(0),
],
q(mungbam) => [
- q(4315),
+ q(4306),
q(1),
],
q(munggui) => [
- q(4570),
+ q(4561),
q(0),
],
q(mungkip) => [
- q(4484),
+ q(4475),
q(0),
],
q(muniche) => [
- q(4696),
+ q(4686),
q(0),
],
q(munit) => [
- q(4565),
+ q(4556),
q(0),
],
q(munji) => [
- q(4430),
+ q(4421),
q(0),
],
q(munsee) => [
- q(6920),
+ q(6912),
q(0),
],
q(muong) => [
- q(4579),
+ q(4570),
+ q(0),
+ ],
+ q(mur pano) => [
+ q(6561),
q(0),
],
q(muratayak) => [
- q(0907),
+ q(0906),
q(0),
],
q(murik (malaysia)) => [
- q(4673),
+ q(4663),
q(0),
],
q(murik (papua new guinea)) => [
- q(4568),
+ q(4559),
q(0),
],
q(murkim) => [
- q(5820),
+ q(5811),
q(0),
],
q(murle) => [
- q(4602),
+ q(4593),
q(0),
],
q(murrinh-patha) => [
- q(4637),
+ q(4628),
q(0),
],
q(mursi) => [
- q(4608),
+ q(4599),
q(0),
],
q(murui huitoto) => [
- q(2872),
+ q(2869),
q(0),
],
q(murupi) => [
- q(4510),
+ q(4501),
q(0),
],
q(muruwari) => [
- q(7905),
+ q(7894),
q(0),
],
q(musak) => [
- q(4414),
+ q(4405),
q(0),
],
q(musar) => [
- q(4406),
+ q(4397),
q(0),
],
q(musasa) => [
- q(6133),
+ q(6123),
q(0),
],
q(musey) => [
- q(4542),
+ q(4533),
q(0),
],
q(musgu) => [
- q(4593),
+ q(4584),
q(0),
],
q(mushungulu) => [
- q(7413),
+ q(7406),
q(0),
],
q(musi) => [
- q(4595),
+ q(4586),
q(0),
],
q(muskum) => [
- q(4331),
+ q(4322),
q(0),
],
q(muslim tat) => [
- q(6762),
+ q(6753),
q(0),
],
q(musom) => [
- q(4557),
+ q(4548),
q(0),
],
q(mussau-emira) => [
- q(2259),
+ q(2253),
q(0),
],
q(muthuvan) => [
- q(4605),
+ q(4596),
q(0),
],
q(mutu) => [
- q(6770),
+ q(6761),
q(0),
],
q(muya) => [
- q(4619),
+ q(4610),
q(0),
],
q(muyang) => [
- q(4607),
+ q(4598),
q(0),
],
q(muyuw) => [
- q(4699),
+ q(4689),
q(0),
],
q(muzi) => [
- q(7712),
+ q(7703),
q(0),
],
q(mvanip) => [
- q(4169),
+ q(4161),
q(0),
],
q(mvuba) => [
- q(4663),
+ q(4653),
q(0),
],
q(mwaghavul) => [
- q(6293),
+ q(6284),
q(0),
],
q(mwali comorian) => [
- q(7161),
+ q(7152),
q(0),
],
q(mwan) => [
- q(4445),
+ q(4436),
q(0),
],
q(mwani) => [
- q(7188),
+ q(7179),
q(0),
],
q(mwatebu) => [
- q(4633),
+ q(4624),
q(0),
],
q(mwera (chimwera)) => [
- q(4636),
+ q(4627),
q(0),
],
q(mwera (nyasa)) => [
- q(4333),
+ q(4324),
q(0),
],
q(mwerlap) => [
- q(4525),
+ q(4516),
q(1),
],
q(mwimbi-muthambi) => [
- q(4648),
+ q(4638),
q(0),
],
q(mwotlap) => [
- q(4394),
+ q(4385),
q(1),
],
q(mycenaean greek) => [
- q(2566),
+ q(2564),
q(0),
],
q(myene) => [
- q(4685),
+ q(4675),
q(0),
],
q(mysian) => [
- q(7709),
+ q(7701),
q(0),
],
q(mzieme naga) => [
- q(4975),
+ q(4965),
q(0),
],
q(n'ko) => [
@@ -43948,11 +43950,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(n/u) => [
- q(4850),
+ q(4840),
q(0),
],
q(na) => [
- q(4766),
+ q(4756),
q(0),
],
q(na-dene languages) => [
@@ -43960,91 +43962,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(na-meo) => [
- q(4829),
+ q(4819),
q(0),
],
q(naaba) => [
- q(4740),
+ q(4730),
q(0),
],
q(naami) => [
- q(1639),
+ q(1633),
q(0),
],
q(naasioi) => [
- q(4743),
+ q(4733),
q(0),
],
q(naba) => [
- q(4426),
+ q(4417),
q(0),
],
q(nabak) => [
- q(4733),
+ q(4723),
q(0),
],
q(nabi) => [
- q(4587),
+ q(4578),
q(0),
],
q(nachering) => [
- q(4774),
+ q(4764),
q(0),
],
q(nadeb) => [
- q(4143),
+ q(4135),
q(0),
],
q(nadruvian) => [
- q(4797),
+ q(4787),
q(0),
],
q(nafaanra) => [
- q(4842),
+ q(4832),
q(0),
],
q(nafi) => [
- q(6221),
+ q(6212),
q(0),
],
q(nafri) => [
- q(5163),
+ q(5154),
q(0),
],
q(nafusi) => [
- q(3067),
+ q(3064),
q(0),
],
q(naga pidgin) => [
- q(4734),
+ q(4724),
q(0),
],
q(nagarchal) => [
- q(4754),
+ q(4744),
q(0),
],
q(nage) => [
- q(5153),
+ q(5143),
q(0),
],
q(nagumi) => [
- q(4864),
+ q(4854),
q(0),
],
q(naha'ai) => [
- q(4396),
+ q(4387),
q(1),
],
q(nahali) => [
- q(4968),
+ q(4958),
q(0),
],
q(nahari) => [
- q(4876),
+ q(4866),
q(0),
],
q(nahavaq) => [
- q(6159),
+ q(6149),
q(1),
],
q(nahuatl languages) => [
@@ -44052,283 +44054,283 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nai) => [
- q(1222),
+ q(1219),
q(0),
],
q(najdi arabic) => [
- q(0880),
+ q(0879),
q(0),
],
q(naka'ela) => [
- q(4732),
+ q(4722),
q(0),
],
q(nakai) => [
- q(4940),
+ q(4930),
q(0),
],
q(nakame) => [
- q(4892),
+ q(4882),
q(0),
],
q(nakanai) => [
- q(4736),
+ q(4726),
q(0),
],
q(nakara) => [
- q(4781),
+ q(4771),
q(0),
],
q(nake) => [
- q(4758),
+ q(4748),
q(0),
],
q(naki) => [
- q(4237),
+ q(4229),
q(0),
],
q(nakwi) => [
- q(4746),
+ q(4736),
q(0),
],
q(nalca) => [
- q(4956),
+ q(4946),
q(0),
],
q(nali) => [
- q(5090),
+ q(5080),
q(0),
],
q(nalik) => [
- q(4737),
+ q(4727),
q(0),
],
q(nalogo) => [
- q(4970),
+ q(4960),
q(0),
],
q(nalu) => [
- q(4735),
+ q(4725),
q(0),
],
q(naluo yi) => [
- q(7690),
+ q(7682),
q(0),
],
q(nama (namibia)) => [
- q(4741),
- q(0),
+ q(4731),
+ q(1),
],
q(nama (papua new guinea)) => [
- q(4994),
+ q(4984),
q(0),
],
q(namakura) => [
- q(4981),
+ q(4971),
q(0),
],
q(namat) => [
- q(4942),
+ q(4932),
q(0),
],
q(nambo) => [
- q(4783),
+ q(4773),
q(0),
],
q(nambya) => [
- q(4987),
+ q(4977),
q(0),
],
q(namia) => [
- q(5009),
+ q(4999),
q(0),
],
q(namiae) => [
- q(5139),
+ q(5129),
q(0),
],
q(namibian sign language) => [
- q(4765),
+ q(4755),
q(0),
],
q(namla) => [
- q(4728),
+ q(4718),
q(0),
],
q(namo) => [
- q(4678),
+ q(4668),
q(0),
],
q(namonuito) => [
- q(4990),
+ q(4980),
q(0),
],
q(namosi-naitasiri-serua) => [
- q(1546),
+ q(1542),
q(0),
],
q(namuyi) => [
- q(4995),
+ q(4985),
q(0),
],
q(nanai) => [
- q(2546),
+ q(2543),
q(0),
],
q(nancere) => [
- q(4999),
+ q(4989),
q(0),
],
q(nande) => [
- q(4998),
+ q(4988),
q(0),
],
q(nandi) => [
- q(4905),
+ q(4895),
q(0),
],
q(nanerige senoufo) => [
- q(5982),
+ q(5973),
q(0),
],
q(nanga dama dogon) => [
- q(5192),
+ q(5183),
q(0),
],
q(nankina) => [
- q(5007),
+ q(4997),
q(0),
],
q(nanti) => [
- q(1832),
+ q(1827),
q(0),
],
q(nanticoke) => [
- q(5015),
+ q(5005),
q(0),
],
q(nanubae) => [
- q(0646),
+ q(0644),
q(0),
],
q(napo lowland quechua) => [
- q(5717),
+ q(5708),
q(0),
],
q(napu) => [
- q(5052),
+ q(5041),
q(0),
],
q(nar phu) => [
- q(5042),
+ q(5031),
q(0),
],
q(nara) => [
- q(5060),
+ q(5049),
q(0),
],
q(narak) => [
- q(4730),
+ q(4720),
q(0),
],
q(narango) => [
- q(5063),
+ q(5053),
q(0),
],
q(narau) => [
- q(5162),
+ q(5153),
q(0),
],
q(nari nari) => [
- q(5843),
+ q(5834),
q(0),
],
q(narim) => [
- q(4027),
+ q(4019),
q(0),
],
q(naro) => [
- q(4884),
+ q(4874),
q(0),
],
q(narom) => [
- q(5067),
+ q(5057),
q(0),
],
q(narragansett) => [
- q(7448),
+ q(7441),
q(0),
],
q(narrinyeri) => [
- q(4747),
+ q(4737),
q(0),
],
q(narua) => [
- q(5072),
+ q(5062),
q(0),
],
q(narungga) => [
- q(5013),
+ q(5003),
q(0),
],
q(nasal) => [
- q(5096),
+ q(5086),
q(0),
],
q(nasarian) => [
- q(5138),
+ q(5128),
q(0),
],
q(naskapi) => [
- q(5083),
+ q(5073),
q(0),
],
q(natagaimas) => [
- q(5107),
+ q(5097),
q(0),
],
q(natanzi) => [
- q(5112),
+ q(5102),
q(0),
],
q(nataoran amis) => [
- q(0710),
+ q(0708),
q(0),
],
q(natchez) => [
- q(4792),
+ q(4782),
q(0),
],
q(nateni) => [
- q(5103),
+ q(5093),
q(0),
],
q(nathembo) => [
- q(5098),
+ q(5088),
q(0),
],
q(natioro) => [
- q(5100),
+ q(5090),
q(0),
],
q(natugu) => [
- q(5108),
+ q(5098),
q(0),
],
q(nauete) => [
- q(5151),
+ q(5141),
q(0),
],
q(naukan yupik) => [
- q(7718),
+ q(7708),
q(0),
],
q(nauna) => [
- q(4784),
+ q(4774),
q(0),
],
q(nauo) => [
- q(5147),
+ q(5137),
q(0),
],
q(nauru) => [
@@ -44344,87 +44346,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(navut) => [
- q(5094),
+ q(5084),
q(0),
],
q(nawaru) => [
- q(5148),
+ q(5138),
q(0),
],
q(nawathinehena) => [
- q(5141),
+ q(5131),
q(0),
],
q(nawdm) => [
- q(4996),
+ q(4986),
q(0),
],
q(nawuri) => [
- q(4745),
+ q(4735),
q(0),
],
q(naxi) => [
- q(5160),
+ q(5151),
q(0),
],
q(nayi) => [
- q(5041),
+ q(5030),
q(0),
],
q(nayini) => [
- q(5176),
+ q(5167),
q(0),
],
q(ncane) => [
- q(4787),
+ q(4777),
q(0),
],
q(nchumbulu) => [
- q(4965),
+ q(4955),
q(0),
],
q(nda'nda') => [
- q(5021),
+ q(5010),
q(0),
],
q(ndai) => [
- q(2541),
+ q(2537),
q(0),
],
q(ndaka) => [
- q(4802),
+ q(4792),
q(0),
],
q(ndaktup) => [
- q(4786),
+ q(4776),
q(0),
],
q(ndali) => [
- q(4799),
+ q(4789),
q(0),
],
q(ndam) => [
- q(4804),
+ q(4794),
q(0),
],
q(ndamba) => [
- q(4801),
+ q(4791),
+ q(0),
+ ],
+ q(ndambomo) => [
+ q(5150),
q(0),
],
q(ndasa) => [
- q(4793),
+ q(4783),
q(0),
],
q(ndau) => [
- q(4795),
+ q(4785),
q(0),
],
q(nde-gbite) => [
- q(4819),
+ q(4809),
q(0),
],
q(nde-nsele-nta) => [
- q(4796),
+ q(4786),
q(0),
],
q(ndebele, north) => [
@@ -44436,51 +44442,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ndemli) => [
- q(4982),
+ q(4972),
q(0),
],
q(ndendeule) => [
- q(2105),
+ q(2100),
q(0),
],
q(ndengereko) => [
- q(4798),
+ q(4788),
q(0),
],
q(nding) => [
- q(2250),
+ q(2244),
q(0),
],
q(ndo) => [
- q(4806),
+ q(4796),
q(0),
],
q(ndobo) => [
- q(4812),
+ q(4802),
q(0),
],
q(ndoe) => [
- q(4750),
+ q(4740),
q(0),
],
q(ndogo) => [
- q(4815),
+ q(4805),
q(0),
],
q(ndolo) => [
- q(4803),
+ q(4793),
q(0),
],
q(ndom) => [
- q(5055),
+ q(5044),
q(0),
],
q(ndombe) => [
- q(4807),
+ q(4797),
q(0),
],
q(ndonde hamba) => [
- q(4916),
+ q(4906),
q(0),
],
q(ndonga) => [
@@ -44488,39 +44494,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ndoola) => [
- q(4808),
+ q(4798),
q(0),
],
q(ndra'ngith) => [
- q(2021),
+ q(2016),
q(0),
],
q(nduga) => [
- q(4813),
+ q(4803),
q(0),
],
q(ndumu) => [
- q(4974),
+ q(4964),
q(0),
],
q(ndunda) => [
- q(5119),
+ q(5109),
q(0),
],
q(ndunga) => [
- q(4809),
+ q(4799),
q(0),
],
q(ndut) => [
- q(4811),
+ q(4801),
q(0),
],
q(ndyuka-trio pidgin) => [
- q(4926),
+ q(4916),
q(0),
],
q(ndzwani comorian) => [
- q(7195),
+ q(7186),
q(0),
],
q(neapolitan) => [
@@ -44528,83 +44534,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nedebang) => [
- q(4818),
+ q(4808),
q(0),
],
q(nefamese) => [
- q(4821),
+ q(4811),
q(0),
],
q(negerhollands) => [
- q(1981),
+ q(1976),
q(0),
],
q(negeri sembilan malay) => [
- q(7893),
+ q(7882),
q(0),
],
q(negidal) => [
- q(4822),
+ q(4812),
q(0),
],
q(nehan) => [
- q(5086),
+ q(5076),
q(0),
],
q(nek) => [
- q(4895),
+ q(4885),
q(0),
],
q(nekgini) => [
- q(4937),
+ q(4927),
q(0),
],
q(neko) => [
- q(4825),
+ q(4815),
q(0),
],
q(neku) => [
- q(4826),
+ q(4816),
q(0),
],
q(nelemwa-nixumwak) => [
- q(4820),
+ q(4810),
q(0),
],
q(neme) => [
- q(4836),
+ q(4826),
q(0),
],
q(nemi) => [
- q(4827),
+ q(4817),
q(0),
],
q(nen) => [
- q(5056),
+ q(5045),
q(0),
],
q(nend) => [
- q(0798),
+ q(0796),
q(0),
],
q(nenets) => [
- q(7748),
+ q(7738),
q(0),
],
q(nenge) => [
- q(2070),
+ q(2065),
q(2),
],
q(nengone) => [
- q(4828),
+ q(4818),
q(0),
],
q(neo) => [
- q(4834),
+ q(4824),
q(0),
],
q(neo-hittite) => [
- q(4824),
+ q(4814),
q(0),
],
q(nepal bhasa) => [
@@ -44612,7 +44618,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nepalese sign language) => [
- q(5087),
+ q(5077),
q(0),
],
q(nepali) => [
@@ -44620,7 +44626,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nepali (individual language)) => [
- q(5046),
+ q(5035),
q(0),
],
q(nepali (macrolanguage)) => [
@@ -44628,27 +44634,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(nepali kurux) => [
- q(3731),
+ q(3726),
q(0),
],
q(nete) => [
- q(4833),
+ q(4823),
q(0),
],
q(neve'ei) => [
- q(7050),
+ q(7041),
q(1),
],
q(neverver) => [
- q(3896),
+ q(3890),
q(1),
],
q(new caledonian javanese) => [
- q(3057),
+ q(3054),
q(0),
],
q(new zealand sign language) => [
- q(5189),
+ q(5180),
q(0),
],
q(newari) => [
@@ -44656,351 +44662,347 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(neyo) => [
- q(4837),
+ q(4827),
q(0),
],
q(nez perce) => [
- q(4838),
+ q(4828),
q(0),
],
q(ngaanyatjarra) => [
- q(5101),
+ q(5091),
q(0),
],
q(ngabere) => [
- q(2706),
+ q(2703),
q(0),
],
q(ngad'a) => [
- q(5154),
+ q(5144),
q(0),
],
q(ngadjunmaya) => [
- q(4927),
+ q(4917),
q(0),
],
q(ngadjuri) => [
- q(3153),
+ q(3151),
q(0),
],
q(ngaing) => [
- q(5002),
+ q(4992),
q(0),
],
q(ngaju) => [
- q(4899),
+ q(4889),
q(0),
],
q(ngala) => [
- q(5115),
+ q(5105),
q(0),
],
q(ngalakan) => [
- q(4896),
+ q(4886),
q(0),
],
q(ngalum) => [
- q(6355),
+ q(6347),
q(0),
],
q(ngam) => [
- q(4973),
+ q(4963),
q(0),
],
q(ngamambo) => [
- q(4768),
+ q(4758),
q(0),
],
q(ngambay) => [
- q(5910),
+ q(5901),
q(0),
],
q(ngamini) => [
- q(4992),
+ q(4982),
q(0),
],
q(ngamo) => [
- q(4755),
+ q(4745),
q(0),
],
q(ngan'gityemerri) => [
- q(4738),
+ q(4728),
q(0),
],
q(nganakarti) => [
- q(7443),
+ q(7436),
q(0),
],
q(nganasan) => [
- q(4904),
+ q(4894),
q(0),
],
q(ngandi) => [
- q(4893),
+ q(4883),
q(0),
],
q(ngando (central african republic)) => [
- q(4847),
+ q(4837),
q(0),
],
q(ngando (democratic republic of congo)) => [
- q(5152),
+ q(5142),
q(0),
],
q(ngandyera) => [
- q(5001),
+ q(4991),
q(0),
],
q(ngangam) => [
- q(2573),
+ q(2571),
q(0),
],
q(ngantangarra) => [
- q(5099),
+ q(5089),
q(0),
],
q(nganyaywana) => [
- q(5183),
+ q(5174),
q(0),
],
q(ngardi) => [
- q(5888),
+ q(5880),
q(0),
],
q(ngarigu) => [
- q(7442),
+ q(7435),
q(0),
],
q(ngarinman) => [
- q(4757),
+ q(4747),
q(0),
],
q(ngarinyin) => [
- q(6923),
+ q(6915),
q(0),
],
q(ngarla) => [
- q(5065),
+ q(5055),
q(0),
],
q(ngarluma) => [
- q(5066),
+ q(5056),
q(0),
],
q(ngas) => [
- q(0794),
+ q(0792),
q(0),
],
q(ngasa) => [
- q(5080),
+ q(5070),
q(0),
],
q(ngatik men's creole) => [
- q(4855),
+ q(4845),
q(0),
],
q(ngawn chin) => [
- q(1811),
+ q(1806),
q(0),
],
q(ngawun) => [
- q(5159),
+ q(5149),
q(0),
],
q(ngayawung) => [
- q(5144),
+ q(5134),
q(0),
],
q(ngazidja comorian) => [
- q(7844),
+ q(7833),
q(0),
],
q(ngbaka) => [
- q(4844),
+ q(4834),
q(0),
],
q(ngbaka ma'bo) => [
- q(4759),
+ q(4749),
q(0),
],
q(ngbaka manza) => [
- q(4849),
+ q(4839),
q(0),
],
q(ngbee) => [
- q(3088),
+ q(3085),
q(0),
],
q(ngbinda) => [
- q(4752),
+ q(4742),
q(0),
],
q(ngbundu) => [
- q(5132),
+ q(5122),
q(0),
],
q(ngelima) => [
- q(0661),
+ q(0659),
q(0),
],
q(ngemba) => [
- q(4848),
+ q(4838),
q(0),
],
q(ngeq) => [
- q(4862),
+ q(4852),
q(0),
],
q(ngete) => [
- q(5010),
+ q(5000),
q(0),
],
q(nggem) => [
- q(4763),
+ q(4753),
q(0),
],
q(nggwahyi) => [
- q(4866),
+ q(4856),
q(0),
],
q(ngie) => [
- q(4852),
+ q(4842),
q(0),
],
q(ngiemboon) => [
- q(5004),
+ q(4994),
q(0),
],
q(ngile) => [
- q(3116),
+ q(3114),
q(0),
],
q(ngindo) => [
- q(5012),
+ q(5002),
q(0),
],
q(ngiti) => [
- q(4912),
+ q(4902),
q(0),
],
q(ngizim) => [
- q(4851),
+ q(4841),
q(0),
],
q(ngkalmpw kanum) => [
- q(3214),
+ q(3211),
q(0),
],
q(ngom) => [
- q(5059),
+ q(5048),
q(0),
],
q(ngomba) => [
- q(3091),
+ q(3088),
q(0),
],
q(ngombale) => [
- q(4955),
+ q(4945),
q(0),
],
q(ngombe (central african republic)) => [
- q(4980),
+ q(4970),
q(0),
],
q(ngombe (democratic republic of congo)) => [
- q(4846),
- q(0),
- ],
- q(ngong) => [
- q(5019),
+ q(4836),
q(0),
],
q(ngongo) => [
- q(5034),
+ q(5023),
q(0),
],
q(ngoni) => [
- q(4857),
+ q(4847),
q(0),
],
q(ngoreme) => [
- q(4859),
+ q(4849),
q(1),
],
q(ngoshie) => [
- q(5081),
+ q(5071),
q(0),
],
q(ngul) => [
- q(4963),
+ q(4953),
q(0),
],
q(ngulu) => [
- q(4858),
+ q(4848),
q(0),
],
q(nguluwan) => [
- q(5134),
+ q(5124),
q(0),
],
q(ngumbi) => [
- q(5120),
+ q(5110),
q(0),
],
q(ngunawal) => [
- q(7542),
+ q(7534),
q(0),
],
q(ngundi) => [
- q(4805),
+ q(4795),
q(0),
],
q(ngundu) => [
- q(5116),
+ q(5106),
q(0),
],
q(ngungwel) => [
- q(4868),
+ q(4858),
q(0),
],
q(nguon) => [
- q(5126),
+ q(5116),
q(0),
],
q(ngurimi) => [
- q(4859),
+ q(4849),
q(0),
],
q(ngurmbur) => [
- q(5073),
+ q(5063),
q(0),
],
q(ngwaba) => [
- q(4865),
+ q(4855),
q(0),
],
q(ngwe) => [
- q(5143),
+ q(5133),
q(0),
],
q(ngwo) => [
- q(4856),
+ q(4846),
q(0),
],
q(nhanda) => [
- q(4869),
+ q(4859),
q(0),
],
q(nhengatu) => [
- q(7749),
+ q(7739),
q(0),
],
q(nhirrpi) => [
- q(2840),
+ q(2837),
q(0),
],
q(nhuwala) => [
- q(4874),
+ q(4864),
q(0),
],
q(nias) => [
@@ -45008,19 +45010,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nicaragua creole english) => [
- q(1628),
+ q(1622),
q(0),
],
q(nicaraguan sign language) => [
- q(4788),
+ q(4778),
q(0),
],
q(nicarao) => [
- q(5584),
+ q(5575),
q(1),
],
q(niellim) => [
- q(4894),
+ q(4884),
q(0),
],
q(niger-kordofanian languages) => [
@@ -45028,43 +45030,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nigeria mambila) => [
- q(4712),
+ q(4702),
q(0),
],
q(nigerian fulfulde) => [
- q(2396),
+ q(2392),
q(0),
],
q(nigerian pidgin) => [
- q(5401),
+ q(5392),
q(0),
],
q(nigerian sign language) => [
- q(5082),
+ q(5072),
q(0),
],
q(nihali) => [
- q(4962),
+ q(4952),
q(0),
],
q(nii) => [
- q(4898),
+ q(4888),
q(0),
],
q(nijadali) => [
- q(4731),
+ q(4721),
q(0),
],
q(niksek) => [
- q(2426),
+ q(2422),
q(0),
],
q(nila) => [
- q(4901),
+ q(4891),
q(0),
],
q(nilamba) => [
- q(4902),
+ q(4892),
q(0),
],
q(nilo-saharan languages) => [
@@ -45072,95 +45074,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nimadi) => [
- q(5025),
+ q(5014),
q(0),
],
q(nimanbur) => [
- q(4986),
+ q(4976),
q(0),
],
q(nimbari) => [
- q(4988),
+ q(4978),
q(0),
],
q(nimboran) => [
- q(4906),
+ q(4896),
q(0),
],
q(nimi) => [
- q(4907),
+ q(4897),
q(0),
],
q(nimo) => [
- q(4910),
+ q(4900),
q(0),
],
q(nimoa) => [
- q(4993),
+ q(4983),
q(0),
],
q(ninam) => [
- q(6020),
+ q(6010),
q(0),
],
q(ninde) => [
- q(4640),
+ q(4631),
q(1),
],
q(nindi) => [
- q(5155),
+ q(5145),
q(0),
],
q(ningera) => [
- q(4770),
+ q(4760),
q(0),
],
q(ninggerum) => [
- q(5161),
+ q(5152),
q(0),
],
q(ningil) => [
- q(4913),
+ q(4903),
q(0),
],
q(ningye) => [
- q(5014),
+ q(5004),
q(0),
],
q(ninia yali) => [
- q(4961),
+ q(4951),
q(0),
],
q(ninzo) => [
- q(4903),
+ q(4893),
q(0),
],
q(nipsan) => [
- q(5050),
+ q(5039),
q(0),
],
q(nisa) => [
- q(4925),
+ q(4915),
q(0),
],
q(nisenan) => [
- q(5097),
+ q(5087),
q(0),
],
q(nisga'a) => [
- q(4777),
+ q(4767),
q(0),
],
q(nisi (china)) => [
- q(7760),
+ q(7750),
q(0),
],
q(niuafo'ou) => [
- q(5124),
+ q(5114),
q(0),
],
q(niuatoputapu) => [
- q(4945),
+ q(4935),
q(0),
],
q(niuean) => [
@@ -45168,79 +45170,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nivacle) => [
- q(1649),
+ q(1643),
q(0),
],
q(niwer mil) => [
- q(2835),
+ q(2832),
q(0),
],
q(njalgulgule) => [
- q(4920),
+ q(4910),
q(0),
],
q(njebi) => [
- q(5186),
+ q(5177),
q(0),
],
q(njen) => [
- q(4919),
+ q(4909),
q(0),
],
q(njerep) => [
- q(4924),
+ q(4914),
q(0),
],
q(njyem) => [
- q(4929),
+ q(4919),
q(0),
],
q(nkami) => [
- q(4946),
+ q(4936),
q(0),
],
q(nkangala) => [
- q(4943),
+ q(4933),
q(0),
],
q(nkari) => [
- q(4954),
+ q(4944),
q(0),
],
q(nkem-nkum) => [
- q(3005),
+ q(3002),
q(0),
],
q(nkhumbi) => [
- q(3351),
+ q(3348),
q(0),
],
q(nkongho) => [
- q(4933),
+ q(4923),
q(0),
],
q(nkonya) => [
- q(4944),
+ q(4934),
q(0),
],
q(nkoroo) => [
- q(4953),
+ q(4943),
q(0),
],
q(nkoya) => [
- q(4931),
+ q(4921),
q(0),
],
q(nkukoli) => [
- q(4761),
+ q(4751),
q(0),
],
q(nkutu) => [
- q(4952),
+ q(4942),
q(0),
],
q(nnam) => [
- q(4762),
+ q(4752),
q(0),
],
q(no linguistic content) => [
@@ -45248,19 +45250,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nobiin) => [
- q(2348),
+ q(2344),
q(0),
],
q(nobonob) => [
- q(2421),
+ q(2417),
q(0),
],
q(nocaman) => [
- q(5032),
+ q(5021),
q(0),
],
q(nocte naga) => [
- q(4915),
+ q(4905),
q(0),
],
q(nogai) => [
@@ -45268,71 +45270,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(noiri) => [
- q(5028),
+ q(5017),
q(0),
],
q(nokuku) => [
- q(4941),
+ q(4931),
q(0),
],
q(nomaande) => [
- q(3876),
+ q(3870),
q(0),
],
q(nomane) => [
- q(5026),
+ q(5015),
q(0),
],
q(nomatsiguenga) => [
- q(5036),
+ q(5025),
q(0),
],
q(nomlaki) => [
- q(5031),
+ q(5020),
q(0),
],
q(nomu) => [
- q(5027),
+ q(5016),
q(0),
],
q(nong zhuang) => [
- q(7856),
+ q(7845),
q(0),
],
q(nonuya) => [
- q(5029),
+ q(5018),
q(0),
],
q(nooksack) => [
- q(5030),
+ q(5019),
q(0),
],
q(noon) => [
- q(6147),
+ q(6137),
q(0),
],
q(noone) => [
- q(4886),
+ q(4876),
q(0),
],
q(nopala chatino) => [
- q(1934),
+ q(1929),
q(0),
],
q(nora) => [
- q(5070),
+ q(5060),
q(1),
],
q(noric) => [
- q(5061),
+ q(5050),
q(0),
],
q(norn) => [
- q(5068),
+ q(5058),
q(0),
],
q(norra) => [
- q(5070),
+ q(5060),
q(0),
],
q(norse, old) => [
@@ -45340,11 +45342,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(north alaskan inupiatun) => [
- q(2297),
+ q(2292),
q(0),
],
q(north ambrym) => [
- q(4404),
+ q(4395),
q(0),
],
q(north american indian languages) => [
@@ -45352,23 +45354,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(north asmat) => [
- q(4948),
+ q(4938),
q(0),
],
q(north awyu) => [
- q(7663),
+ q(7655),
q(0),
],
q(north azerbaijani) => [
- q(1018),
+ q(1015),
q(0),
],
q(north babar) => [
- q(1069),
+ q(1066),
q(0),
],
q(north bolivian quechua) => [
- q(5696),
+ q(5687),
q(0),
],
q(north caucasian languages) => [
@@ -45376,15 +45378,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(north central mixe) => [
- q(4830),
+ q(4820),
q(0),
],
q(north efate) => [
- q(3977),
+ q(3970),
q(0),
],
q(north fali) => [
- q(2359),
+ q(2355),
q(0),
],
q(north germanic languages) => [
@@ -45392,35 +45394,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(north giziga) => [
- q(2528),
+ q(2524),
q(0),
],
q(north junin quechua) => [
- q(5716),
+ q(5707),
q(0),
],
q(north levantine arabic) => [
- q(0837),
+ q(0835),
q(0),
],
q(north marquesan) => [
- q(4529),
+ q(4520),
q(0),
],
q(north mesopotamian arabic) => [
- q(1006),
+ q(1003),
q(0),
],
q(north mofu) => [
- q(4242),
+ q(4234),
q(0),
],
q(north moluccan malay) => [
- q(4133),
+ q(4125),
q(0),
],
q(north muyu) => [
- q(3630),
+ q(3627),
q(0),
],
q(north ndebele) => [
@@ -45428,111 +45430,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(north nuaulu) => [
- q(5005),
+ q(4995),
q(0),
],
q(north picene) => [
- q(5069),
+ q(5059),
q(0),
],
q(north slavey) => [
- q(5946),
+ q(5937),
q(0),
],
q(north tairora) => [
- q(6393),
+ q(6385),
q(0),
],
q(north tanna) => [
- q(6629),
+ q(6621),
q(0),
],
q(north wahgi) => [
- q(7132),
+ q(7123),
q(0),
],
q(north watut) => [
- q(6921),
+ q(6913),
q(0),
],
q(northeast kiwai) => [
- q(3376),
+ q(3373),
q(0),
],
q(northeast maidu) => [
- q(4991),
+ q(4981),
q(0),
],
- q(northeast pashayi) => [
- q(0629),
+ q(northeast pashai) => [
+ q(0627),
q(0),
],
+ q(northeast pashayi) => [
+ q(0627),
+ q(1),
+ ],
q(northeastern dinka) => [
- q(2052),
+ q(2047),
q(0),
],
q(northeastern pomo) => [
- q(5416),
+ q(5407),
q(0),
],
q(northeastern thai) => [
- q(6761),
+ q(6752),
q(0),
],
q(northern alta) => [
- q(0865),
+ q(0863),
q(0),
],
q(northern altai) => [
- q(0929),
+ q(0927),
q(0),
],
q(northern amami-oshima) => [
- q(5890),
+ q(5882),
q(0),
],
q(northern bai) => [
- q(1140),
- q(0),
+ q(1137),
+ q(1),
],
q(northern betsimisaraka malagasy) => [
- q(1317),
+ q(1314),
q(0),
],
q(northern binukidnon) => [
- q(3759),
+ q(3754),
q(0),
],
q(northern bobo madare) => [
- q(1054),
+ q(1051),
q(0),
],
q(northern bontok) => [
- q(5767),
+ q(5758),
q(0),
],
q(northern catanduanes bikol) => [
- q(1903),
+ q(1898),
q(0),
],
q(northern conchucos ancash quechua) => [
- q(5733),
+ q(5724),
q(0),
],
q(northern dagara) => [
- q(2015),
+ q(2010),
q(0),
],
q(northern dong) => [
- q(2119),
+ q(2114),
q(0),
],
q(northern east cree) => [
- q(1857),
+ q(1852),
q(0),
],
q(northern embera) => [
- q(2264),
+ q(2257),
q(0),
],
q(northern frisian) => [
@@ -45540,147 +45546,147 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(northern ghale) => [
- q(2509),
+ q(2505),
q(0),
],
q(northern gondi) => [
- q(2580),
+ q(2578),
q(0),
],
q(northern grebo) => [
- q(2436),
+ q(2432),
q(0),
],
q(northern guiyang hmong) => [
- q(2863),
+ q(2860),
q(0),
],
q(northern guiyang miao) => [
- q(2863),
+ q(2860),
q(1),
],
q(northern haida) => [
- q(2742),
+ q(2739),
q(0),
],
q(northern hindko) => [
- q(2810),
+ q(2807),
q(0),
],
q(northern huishui hmong) => [
- q(2788),
+ q(2785),
q(0),
],
q(northern huishui miao) => [
- q(2788),
+ q(2785),
q(1),
],
q(northern kalapuya) => [
- q(5071),
+ q(5061),
q(0),
],
q(northern kankanay) => [
- q(7444),
+ q(7437),
q(0),
],
q(northern khmer) => [
- q(3732),
+ q(3727),
q(0),
],
q(northern kissi) => [
- q(3568),
+ q(3565),
q(0),
],
q(northern kurdish) => [
- q(3472),
+ q(3470),
q(0),
],
q(northern luri) => [
- q(4050),
+ q(4042),
q(0),
],
q(northern mashan hmong) => [
- q(2793),
+ q(2790),
q(0),
],
q(northern mashan miao) => [
- q(2793),
+ q(2790),
q(1),
],
q(northern muji) => [
- q(7711),
+ q(7702),
q(0),
],
q(northern nago) => [
- q(7376),
+ q(7369),
q(0),
],
q(northern ngbandi) => [
- q(4845),
+ q(4835),
q(0),
],
q(northern nisu) => [
- q(7667),
+ q(7659),
q(0),
],
q(northern nuni) => [
- q(5133),
+ q(5123),
q(0),
],
q(northern oaxaca nahuatl) => [
- q(4890),
+ q(4880),
q(0),
],
q(northern ohlone) => [
- q(1887),
+ q(1882),
q(0),
],
q(northern one) => [
- q(5284),
+ q(5276),
q(0),
],
q(northern paiute) => [
- q(5362),
+ q(5353),
q(0),
],
q(northern pame) => [
- q(5529),
+ q(5521),
q(0),
],
q(northern pashto) => [
- q(5386),
+ q(5377),
q(0),
],
q(northern pastaza quichua) => [
- q(5722),
+ q(5713),
q(0),
],
q(northern pomo) => [
- q(5420),
+ q(5411),
q(0),
],
q(northern puebla nahuatl) => [
- q(4780),
+ q(4770),
q(0),
],
q(northern pumi) => [
- q(5522),
+ q(5514),
q(0),
],
q(northern qiandong miao) => [
- q(2745),
+ q(2742),
q(0),
],
q(northern qiang) => [
- q(1802),
+ q(1797),
q(0),
],
q(northern rengma naga) => [
- q(5008),
+ q(4998),
q(0),
],
q(northern roglai) => [
- q(5850),
+ q(5841),
q(0),
],
q(northern sami) => [
@@ -45688,11 +45694,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(northern sierra miwok) => [
- q(5088),
+ q(5078),
q(0),
],
q(northern sorsoganon) => [
- q(1273),
+ q(1270),
q(0),
],
q(northern sotho) => [
@@ -45700,91 +45706,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(northern subanen) => [
- q(6263),
+ q(6254),
q(0),
],
q(northern tarahumara) => [
- q(6508),
+ q(6500),
q(0),
],
q(northern tepehuan) => [
- q(5105),
+ q(5095),
q(0),
],
q(northern thai) => [
- q(5024),
+ q(5013),
q(0),
],
q(northern tiwa) => [
- q(6805),
+ q(6796),
q(0),
],
q(northern tlaxiaco mixtec) => [
- q(7525),
+ q(7517),
q(0),
],
q(northern toussian) => [
- q(6732),
+ q(6723),
q(0),
],
q(northern tujia) => [
- q(6548),
+ q(6539),
q(0),
],
q(northern tutchone) => [
- q(6755),
+ q(6746),
q(0),
],
q(northern uzbek) => [
- q(6976),
+ q(6967),
q(0),
],
q(northern yukaghir) => [
- q(7671),
+ q(7663),
q(0),
],
q(northwest alaska inupiatun) => [
- q(2298),
+ q(2293),
q(0),
],
q(northwest gbaya) => [
- q(2698),
+ q(2695),
q(0),
],
q(northwest maidu) => [
- q(4330),
+ q(4321),
q(0),
],
q(northwest oaxaca mixtec) => [
- q(4656),
+ q(4646),
q(0),
],
- q(northwest pashayi) => [
- q(2547),
+ q(northwest pashai) => [
+ q(2544),
q(0),
],
+ q(northwest pashayi) => [
+ q(2544),
+ q(1),
+ ],
q(northwestern dinka) => [
- q(2058),
+ q(2053),
q(0),
],
q(northwestern fars) => [
- q(2341),
+ q(2337),
q(0),
],
q(northwestern kolami) => [
- q(3286),
+ q(3283),
q(0),
],
+ q(northwestern kung) => [
+ q(6974),
+ q(2),
+ ],
q(northwestern nisu) => [
- q(5079),
+ q(5069),
q(0),
],
q(northwestern ojibwa) => [
- q(5226),
+ q(5217),
q(0),
],
q(northwestern tamang) => [
- q(6603),
+ q(6595),
q(0),
],
q(norwegian) => [
@@ -45800,7 +45814,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(norwegian sign language) => [
- q(5084),
+ q(5074),
q(0),
],
q(not applicable) => [
@@ -45808,55 +45822,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(notre) => [
- q(1303),
+ q(1300),
q(0),
],
q(notsi) => [
- q(4776),
+ q(4766),
q(0),
],
q(nottoway) => [
- q(5109),
+ q(5099),
q(0),
],
q(nottoway-meherrin) => [
- q(5150),
+ q(5140),
q(0),
],
q(novial) => [
- q(5038),
+ q(5027),
q(0),
],
q(noy) => [
- q(5040),
+ q(5029),
q(0),
],
q(nsenga) => [
- q(5078),
+ q(5068),
q(0),
],
q(nshi) => [
- q(5076),
+ q(5066),
q(0),
],
q(nsongo) => [
- q(5095),
+ q(5085),
q(0),
],
q(ntcham) => [
- q(1500),
+ q(1496),
q(0),
],
q(ntomba) => [
- q(5104),
+ q(5094),
q(0),
],
q(nubaca) => [
- q(1028),
+ q(1025),
q(0),
],
q(nubi) => [
- q(3224),
+ q(3221),
q(0),
],
q(nubian languages) => [
@@ -45864,91 +45878,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nubri) => [
- q(3626),
+ q(3623),
q(0),
],
q(nuer) => [
- q(5130),
+ q(5120),
q(0),
],
q(nugunu (australia)) => [
- q(5017),
+ q(5007),
q(0),
],
q(nugunu (cameroon)) => [
- q(7598),
+ q(7590),
q(0),
],
q(nuk) => [
- q(5023),
+ q(5012),
q(0),
],
q(nukak maku) => [
- q(4151),
+ q(4143),
q(0),
],
q(nukna) => [
- q(3449),
+ q(3447),
q(0),
],
q(nukuini) => [
- q(5114),
+ q(5104),
q(0),
],
q(nukumanu) => [
- q(5128),
+ q(5118),
q(0),
],
q(nukunul) => [
- q(7449),
+ q(7442),
q(0),
],
q(nukuoro) => [
- q(4947),
+ q(4937),
q(0),
],
q(nukuria) => [
- q(5129),
+ q(5119),
q(0),
],
q(numana-nunku-gbantu-numbu) => [
- q(4764),
+ q(4754),
q(0),
],
q(numanggang) => [
- q(5033),
+ q(5022),
q(0),
],
q(numbami) => [
- q(6050),
+ q(6040),
q(0),
],
q(nume) => [
- q(6496),
+ q(6488),
q(0),
],
q(numee) => [
- q(3246),
+ q(3243),
q(0),
],
q(numidian) => [
- q(5158),
+ q(5148),
q(0),
],
q(nung (viet nam)) => [
- q(5131),
+ q(5121),
q(0),
],
q(nungali) => [
- q(5118),
+ q(5108),
q(0),
],
q(nunggubuyu) => [
- q(5136),
+ q(5126),
q(0),
],
q(nungu) => [
- q(5799),
+ q(5790),
q(0),
],
q(nuosu) => [
@@ -45956,75 +45970,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(nupbikha) => [
- q(5043),
+ q(5032),
q(0),
],
q(nupe-nupe-tako) => [
- q(5127),
+ q(5117),
q(0),
],
q(nupode huitoto) => [
- q(2875),
+ q(2872),
q(0),
],
q(nusa laut) => [
- q(5123),
+ q(5113),
q(0),
],
q(nusu) => [
- q(5117),
+ q(5107),
q(0),
],
q(nuu-chah-nulth) => [
- q(5122),
+ q(5112),
q(0),
],
q(nuuchahnulth) => [
- q(5122),
+ q(5112),
q(1),
],
q(nyabwa) => [
- q(5142),
+ q(5132),
q(0),
],
q(nyaheun) => [
- q(4835),
+ q(4825),
q(0),
],
q(nyahkur) => [
- q(1675),
+ q(1669),
q(0),
],
q(nyakyusa-ngonde) => [
- q(5184),
+ q(5175),
q(0),
],
q(nyalayu) => [
- q(7693),
+ q(7685),
q(0),
],
q(nyali) => [
- q(4960),
+ q(4950),
q(0),
],
q(nyam) => [
- q(4979),
+ q(4969),
q(0),
],
q(nyamal) => [
- q(4969),
+ q(4959),
q(0),
],
q(nyambo) => [
- q(5039),
+ q(5028),
q(0),
],
q(nyamusa-molo) => [
- q(5146),
+ q(5136),
q(0),
],
q(nyamwanga) => [
- q(4644),
+ q(4634),
q(0),
],
q(nyamwezi) => [
@@ -46032,35 +46046,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nyaneka) => [
- q(5173),
+ q(5164),
q(0),
],
q(nyang'i) => [
- q(5175),
+ q(5166),
q(0),
],
q(nyanga) => [
- q(5172),
+ q(5163),
q(0),
],
q(nyanga-li) => [
- q(5165),
+ q(5156),
q(0),
],
q(nyangatom) => [
- q(5006),
+ q(4996),
q(0),
],
q(nyangbo) => [
- q(5164),
+ q(5155),
q(0),
],
q(nyangga) => [
- q(5020),
+ q(5009),
q(0),
],
q(nyangumarta) => [
- q(4997),
+ q(4987),
q(0),
],
q(nyanja) => [
@@ -46072,79 +46086,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nyankpa) => [
- q(7636),
+ q(7627),
q(0),
],
q(nyarafolo senoufo) => [
- q(5990),
+ q(5981),
q(0),
],
q(nyaturu) => [
- q(5798),
+ q(5789),
q(0),
],
q(nyaw) => [
- q(5182),
+ q(5173),
q(0),
],
q(nyawaygi) => [
- q(5179),
+ q(5170),
q(0),
],
q(nyelayu) => [
- q(7693),
+ q(7685),
q(1),
],
q(nyemba) => [
- q(4749),
+ q(4739),
q(0),
],
q(nyengo) => [
- q(5167),
+ q(5158),
q(0),
],
q(nyenkha) => [
- q(4823),
+ q(4813),
q(0),
],
q(nyeu) => [
- q(5174),
+ q(5165),
q(0),
],
q(nyigina) => [
- q(5170),
+ q(5161),
q(0),
],
q(nyiha (malawi)) => [
- q(5177),
+ q(5168),
q(0),
],
q(nyiha (tanzania)) => [
- q(4897),
+ q(4887),
q(0),
],
q(nyika (malawi and zambia)) => [
- q(4951),
+ q(4941),
q(0),
],
q(nyika (tanzania)) => [
- q(4949),
+ q(4939),
q(0),
],
q(nyindrou) => [
- q(3918),
+ q(3912),
q(0),
],
q(nyindu) => [
- q(5169),
+ q(5160),
q(0),
],
q(nyishi) => [
- q(4930),
+ q(4920),
q(0),
],
q(nyiyaparli) => [
- q(7450),
+ q(7443),
q(0),
],
q(nynorsk, norwegian) => [
@@ -46152,19 +46166,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(nyokon) => [
- q(5140),
+ q(5130),
q(0),
],
q(nyole) => [
- q(5121),
+ q(5111),
q(0),
],
q(nyong) => [
- q(4599),
+ q(4590),
q(0),
],
q(nyore) => [
- q(5166),
+ q(5157),
q(0),
],
q(nyoro) => [
@@ -46172,27 +46186,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nyulnyul) => [
- q(5181),
+ q(5172),
q(0),
],
q(nyunga) => [
- q(5178),
+ q(5169),
q(0),
],
q(nyungwe) => [
- q(5180),
+ q(5171),
q(0),
],
q(nzakambay) => [
- q(5191),
+ q(5182),
q(0),
],
q(nzakara) => [
- q(5187),
+ q(5178),
q(0),
],
q(nzanyi) => [
- q(4914),
+ q(4904),
q(0),
],
q(nzima) => [
@@ -46200,43 +46214,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(o'chi'chi') => [
- q(7452),
+ q(7445),
q(0),
],
q(o'du) => [
- q(6839),
+ q(6831),
q(0),
],
q(obanliku) => [
- q(1642),
+ q(1636),
q(0),
],
q(obispeno) => [
- q(5197),
+ q(5188),
q(0),
],
q(oblo) => [
- q(5199),
+ q(5190),
q(0),
],
q(obo manobo) => [
- q(5201),
+ q(5192),
q(0),
],
q(obokuitai) => [
- q(0653),
+ q(0651),
q(0),
],
q(obolo) => [
- q(0804),
+ q(0802),
q(0),
],
q(obulom) => [
- q(5204),
+ q(5195),
q(0),
],
q(ocaina) => [
- q(5205),
+ q(5196),
q(0),
],
q(occidental) => [
@@ -46248,35 +46262,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ocotepec mixtec) => [
- q(4310),
+ q(4301),
q(0),
],
q(ocotlan zapotec) => [
- q(7816),
+ q(7805),
q(0),
],
q(od) => [
- q(5210),
+ q(5201),
q(0),
],
q(odiai) => [
- q(1193),
+ q(1190),
q(0),
],
q(odoodee) => [
- q(3406),
+ q(3404),
q(0),
],
q(odual) => [
- q(5212),
+ q(5203),
q(0),
],
q(odut) => [
- q(5209),
+ q(5200),
q(0),
],
q(ofaye) => [
- q(5300),
+ q(5292),
q(0),
],
q(official aramaic (700-300 bce)) => [
@@ -46284,27 +46298,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ofo) => [
- q(5213),
+ q(5204),
q(0),
],
q(ogbah) => [
- q(5217),
+ q(5208),
q(0),
],
q(ogbia) => [
- q(5216),
+ q(5207),
q(0),
],
q(ogbogolo) => [
- q(5219),
+ q(5210),
q(0),
],
q(ogbronuagum) => [
- q(5221),
+ q(5212),
q(0),
],
q(ogea) => [
- q(2288),
+ q(2283),
q(0),
],
q(oirat) => [
@@ -46312,7 +46326,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(oirata) => [
- q(5224),
+ q(5215),
q(0),
],
q(ojibwa) => [
@@ -46320,71 +46334,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ojitlan chinantec) => [
- q(1727),
+ q(1722),
q(0),
],
q(okanagan) => [
- q(5233),
+ q(5224),
q(0),
],
q(oki-no-erabu) => [
- q(5244),
+ q(5235),
q(0),
],
q(okiek) => [
- q(5239),
+ q(5230),
q(0),
],
q(oko-eni-osayen) => [
- q(5247),
+ q(5238),
q(0),
],
q(oko-juwoi) => [
- q(5240),
+ q(5231),
q(0),
],
q(okobo) => [
- q(5234),
+ q(5225),
q(0),
],
q(okodia) => [
- q(5235),
+ q(5226),
q(0),
],
q(okolod) => [
- q(3571),
+ q(3568),
q(0),
],
q(okpamheri) => [
- q(5295),
+ q(5287),
q(0),
],
q(okpe (northwestern edo)) => [
- q(5250),
+ q(5241),
q(0),
],
q(okpe (southwestern edo)) => [
- q(5236),
+ q(5227),
q(0),
],
q(oksapmin) => [
- q(5297),
+ q(5289),
q(0),
],
q(oku) => [
- q(5248),
+ q(5239),
q(0),
],
q(old aramaic (up to 700 bce)) => [
- q(5195),
+ q(5186),
q(0),
],
q(old avar) => [
- q(5196),
+ q(5187),
q(0),
],
q(old breton) => [
- q(5203),
+ q(5194),
q(0),
],
q(old bulgarian) => [
@@ -46392,11 +46406,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(3),
],
q(old burmese) => [
- q(5202),
+ q(5193),
q(0),
],
q(old chinese) => [
- q(5206),
+ q(5197),
q(0),
],
q(old church slavonic) => [
@@ -46404,11 +46418,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(4),
],
q(old cornish) => [
- q(5207),
+ q(5198),
q(0),
],
q(old dutch) => [
- q(5211),
+ q(5202),
q(0),
],
q(old english (ca. 450-1100)) => [
@@ -46420,11 +46434,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old frisian) => [
- q(5214),
+ q(5205),
q(0),
],
q(old georgian) => [
- q(5218),
+ q(5209),
q(0),
],
q(old high german (ca. 750-1050)) => [
@@ -46432,11 +46446,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old hittite) => [
- q(5222),
+ q(5213),
q(0),
],
q(old hungarian) => [
- q(5223),
+ q(5214),
q(0),
],
q(old irish (to 900)) => [
@@ -46444,27 +46458,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old japanese) => [
- q(5229),
+ q(5220),
q(0),
],
q(old kentish sign language) => [
- q(5242),
+ q(5233),
q(0),
],
q(old korean (3rd-9th cent.)) => [
- q(5245),
+ q(5236),
+ q(0),
+ ],
+ q(old lithuanian) => [
+ q(5249),
q(0),
],
q(old manipuri) => [
- q(5268),
+ q(5260),
q(0),
],
q(old marathi) => [
- q(5269),
+ q(5261),
q(0),
],
q(old mon) => [
- q(5273),
+ q(5265),
q(0),
],
q(old newari) => [
@@ -46476,7 +46494,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old nubian) => [
- q(5288),
+ q(5280),
q(0),
],
q(old occitan (to 1500)) => [
@@ -46484,7 +46502,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(old ossetic) => [
- q(5294),
+ q(5286),
q(0),
],
q(old persian (ca. 600-400 b.c.)) => [
@@ -46496,11 +46514,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old russian) => [
- q(5312),
+ q(5304),
q(0),
],
q(old saxon) => [
- q(5323),
+ q(5315),
q(0),
],
q(old slavonic) => [
@@ -46508,135 +46526,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old spanish) => [
- q(5320),
+ q(5312),
q(0),
],
q(old tamil) => [
- q(5339),
+ q(5331),
q(0),
],
q(old tibetan) => [
- q(5324),
+ q(5316),
q(0),
],
q(old turkish) => [
- q(5328),
+ q(5320),
q(0),
],
q(old uighur) => [
- q(5344),
+ q(5336),
q(0),
],
q(old welsh) => [
- q(5348),
+ q(5339),
q(0),
],
q(olekha) => [
- q(5253),
+ q(5244),
q(0),
],
q(olkol) => [
- q(5254),
+ q(5245),
q(0),
],
q(olo) => [
- q(5277),
+ q(5269),
q(0),
],
q(oloma) => [
- q(5255),
+ q(5246),
q(0),
],
q(olrat) => [
- q(5257),
+ q(5248),
q(0),
],
q(olu'bo) => [
- q(4090),
+ q(4082),
q(0),
],
q(olukhayo) => [
- q(3956),
+ q(3949),
q(1),
],
q(olulumo-ikom) => [
- q(2946),
+ q(2943),
q(0),
],
q(oluluyia) => [
- q(4099),
+ q(4091),
q(1),
],
q(olumarachi) => [
- q(4053),
+ q(4045),
q(1),
],
q(olumarama) => [
- q(4056),
+ q(4048),
q(1),
],
q(olunyole) => [
- q(5166),
+ q(5157),
q(1),
],
q(olusamia) => [
- q(4070),
+ q(4062),
q(1),
],
q(olushisa) => [
- q(3958),
+ q(3951),
q(1),
],
q(oluta popoluca) => [
- q(5504),
+ q(5496),
q(0),
],
q(olutsotso) => [
- q(4081),
+ q(4073),
q(1),
],
q(oluwanga) => [
- q(4107),
+ q(4099),
q(1),
],
q(omagua) => [
- q(5262),
+ q(5254),
q(0),
],
q(omaha-ponca) => [
- q(5258),
+ q(5250),
q(0),
],
q(omani arabic) => [
- q(0602),
+ q(0601),
q(0),
],
q(ombamba) => [
- q(4146),
+ q(4138),
q(0),
],
q(ombo) => [
- q(5265),
+ q(5257),
q(0),
],
q(omejes) => [
- q(5261),
+ q(5253),
q(0),
],
q(ometepec nahuatl) => [
- q(4885),
+ q(4875),
q(0),
],
q(omi) => [
- q(5263),
+ q(5255),
q(0),
],
q(omie) => [
- q(0828),
+ q(0826),
q(0),
],
q(omok) => [
- q(5264),
+ q(5256),
q(0),
],
q(omotic languages) => [
@@ -46644,99 +46662,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(omotik) => [
- q(5270),
+ q(5262),
q(0),
],
q(omurano) => [
- q(5271),
+ q(5263),
q(0),
],
q(ona) => [
- q(5274),
+ q(5266),
q(0),
],
q(oneida) => [
- q(5276),
+ q(5268),
q(0),
],
q(ong) => [
- q(5291),
+ q(5283),
q(0),
],
q(onge) => [
- q(5292),
+ q(5284),
q(0),
],
q(onin) => [
- q(5278),
+ q(5270),
q(0),
],
q(onin based pidgin) => [
- q(5289),
+ q(5281),
q(0),
],
q(oniyan) => [
- q(1452),
+ q(1448),
q(1),
],
q(onjob) => [
- q(5279),
+ q(5271),
q(0),
],
q(ono) => [
- q(5285),
+ q(5277),
q(0),
],
q(onobasulu) => [
- q(5281),
+ q(5273),
q(0),
],
q(onondaga) => [
- q(5282),
+ q(5274),
q(0),
],
q(ontenu) => [
- q(5286),
+ q(5278),
q(0),
],
q(ontong java) => [
- q(5231),
+ q(5222),
q(0),
],
q(oorlams) => [
- q(5293),
+ q(5285),
q(0),
],
q(opao) => [
- q(5298),
+ q(5290),
q(0),
],
q(opata) => [
- q(5299),
+ q(5291),
q(0),
],
q(opuuo) => [
- q(3899),
+ q(3893),
q(0),
],
q(orang kanaq) => [
- q(5306),
+ q(5298),
q(0),
],
q(orang seletar) => [
- q(5309),
+ q(5301),
q(0),
],
q(oraon sadri) => [
- q(5965),
+ q(5956),
q(0),
],
q(orejon) => [
- q(5303),
+ q(5295),
q(0),
],
q(oring) => [
- q(5304),
+ q(5296),
q(0),
],
q(oriya) => [
@@ -46744,7 +46762,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(oriya (individual language)) => [
- q(5315),
+ q(5307),
q(0),
],
q(oriya (macrolanguage)) => [
@@ -46752,51 +46770,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(orizaba nahuatl) => [
- q(4966),
+ q(4956),
q(0),
],
q(orma) => [
- q(5302),
+ q(5294),
q(0),
],
q(ormu) => [
- q(5316),
+ q(5308),
q(0),
],
q(ormuri) => [
- q(5311),
+ q(5303),
q(0),
],
q(oro) => [
- q(5314),
+ q(5306),
q(0),
],
q(oro win) => [
- q(5313),
+ q(5305),
q(0),
],
q(oroch) => [
- q(5194),
+ q(5185),
q(0),
],
q(oroha) => [
- q(5301),
+ q(5293),
q(0),
],
q(orok) => [
- q(5193),
+ q(5184),
q(0),
],
q(orokaiva) => [
- q(5249),
+ q(5240),
q(0),
],
q(oroko) => [
- q(1111),
+ q(1108),
q(0),
],
q(orokolo) => [
- q(5307),
+ q(5299),
q(0),
],
q(oromo) => [
@@ -46804,19 +46822,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(oroqen) => [
- q(5305),
+ q(5297),
q(0),
],
q(orowe) => [
- q(1385),
+ q(1381),
q(0),
],
q(oruma) => [
- q(5308),
+ q(5300),
q(0),
],
q(orya) => [
- q(6954),
+ q(6945),
q(0),
],
q(osage) => [
@@ -46824,19 +46842,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(osatu) => [
- q(5321),
+ q(5313),
q(0),
],
q(oscan) => [
- q(5317),
+ q(5309),
q(0),
],
q(osing) => [
- q(5318),
+ q(5310),
q(0),
],
q(ososo) => [
- q(5319),
+ q(5311),
q(0),
],
q(ossetian) => [
@@ -46848,15 +46866,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(ot danum) => [
- q(5325),
+ q(5317),
q(0),
],
q(otank) => [
- q(6962),
+ q(6953),
q(0),
],
q(oti) => [
- q(5327),
+ q(5319),
q(0),
],
q(oto-manguean languages) => [
@@ -46868,11 +46886,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(otoro) => [
- q(5333),
+ q(5325),
q(0),
],
q(ottawa) => [
- q(5337),
+ q(5329),
q(0),
],
q(ottoman turkish (1500-1928)) => [
@@ -46880,147 +46898,147 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(otuho) => [
- q(4038),
+ q(4030),
q(0),
],
q(otuke) => [
- q(5336),
+ q(5328),
q(0),
],
q(ouma) => [
- q(5345),
+ q(5337),
q(0),
],
q(oune) => [
- q(5343),
+ q(5335),
q(0),
],
q(owa) => [
- q(6274),
+ q(6265),
q(0),
],
q(owenia) => [
- q(7244),
+ q(7235),
q(0),
],
q(owiniga) => [
- q(5347),
+ q(5338),
q(0),
],
q(oy) => [
- q(5349),
+ q(5340),
q(0),
],
q(oya'oya) => [
- q(5352),
+ q(5343),
q(0),
],
q(oyda) => [
- q(5350),
+ q(5341),
q(0),
],
q(ozolotepec zapotec) => [
- q(7827),
+ q(7816),
q(0),
],
q(ozumacin chinantec) => [
- q(1733),
+ q(1728),
q(0),
],
q(pa di) => [
- q(5407),
+ q(5398),
q(0),
],
q(pa'a) => [
- q(5593),
+ q(5584),
q(0),
],
q(pa'o) => [
- q(1290),
+ q(1287),
q(1),
],
q(pa'o karen) => [
- q(1290),
+ q(1287),
q(0),
],
q(pa-hng) => [
- q(5442),
+ q(5434),
q(0),
],
q(paafang) => [
- q(5431),
+ q(5422),
q(0),
],
q(paakantyi) => [
- q(2144),
+ q(2139),
q(0),
],
q(paama) => [
- q(5515),
+ q(5507),
q(0),
],
q(paasaal) => [
- q(6047),
+ q(6037),
q(0),
],
q(pacahuara) => [
- q(5403),
+ q(5394),
q(0),
],
q(pacaraos quechua) => [
- q(5718),
+ q(5709),
q(0),
],
q(pacific gulf yupik) => [
- q(2265),
+ q(2258),
q(0),
],
q(pacoh) => [
- q(5355),
+ q(5346),
q(0),
],
q(padoe) => [
- q(5409),
+ q(5400),
q(0),
],
q(paekche) => [
- q(5483),
+ q(5475),
q(0),
],
q(paelignian) => [
- q(5439),
+ q(5431),
q(0),
],
q(paez) => [
- q(5372),
+ q(5363),
q(0),
],
q(pagi) => [
- q(5436),
+ q(5428),
q(0),
],
q(pagibete) => [
- q(5357),
+ q(5348),
q(0),
],
q(pagu) => [
- q(5441),
+ q(5433),
q(0),
],
q(pahanan agta) => [
- q(0840),
+ q(0838),
q(0),
],
q(pahari-potwari) => [
- q(5451),
+ q(5443),
q(0),
],
q(pahi) => [
- q(3902),
+ q(3896),
q(0),
],
q(pahlavani) => [
- q(5454),
+ q(5446),
q(0),
],
q(pahlavi) => [
@@ -47028,63 +47046,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pai tavytera) => [
- q(5636),
+ q(5627),
q(0),
],
q(paici) => [
- q(5602),
+ q(5593),
q(0),
],
q(paipai) => [
- q(5582),
+ q(5573),
q(0),
],
q(paite chin) => [
- q(5399),
+ q(5390),
q(0),
],
q(paiwan) => [
- q(5674),
+ q(5665),
q(0),
],
q(pak-tong) => [
- q(5484),
+ q(5476),
q(0),
],
q(pakaasnovos) => [
- q(5367),
+ q(5358),
q(0),
],
q(pakanha) => [
- q(5486),
+ q(5478),
q(0),
],
q(pakistan sign language) => [
- q(5490),
+ q(5482),
q(0),
],
q(paku) => [
- q(5492),
+ q(5484),
q(0),
],
q(paku karen) => [
- q(3113),
+ q(3111),
q(0),
],
q(pal) => [
- q(0581),
+ q(0580),
q(0),
],
q(palaic) => [
- q(5506),
+ q(5498),
q(0),
],
q(palaka senoufo) => [
- q(5507),
+ q(5499),
q(0),
],
q(palantla chinantec) => [
- q(1835),
+ q(1830),
q(0),
],
q(palauan) => [
@@ -47092,11 +47110,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(paleni) => [
- q(5547),
+ q(5538),
q(0),
],
q(palenquero) => [
- q(5503),
+ q(5495),
q(0),
],
q(pali) => [
@@ -47104,63 +47122,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(palikur) => [
- q(5510),
+ q(5502),
q(0),
],
q(paliyan) => [
- q(5394),
+ q(5385),
q(0),
],
q(pallanganmiddang) => [
- q(5518),
+ q(5510),
q(0),
],
q(palor) => [
- q(2336),
+ q(2332),
q(0),
],
q(palpa) => [
- q(5505),
+ q(5497),
q(0),
],
q(palu'e) => [
- q(5497),
+ q(5489),
q(0),
],
q(paluan) => [
- q(5514),
+ q(5506),
q(0),
],
q(palula) => [
- q(5447),
+ q(5439),
q(1),
],
q(palumata) => [
- q(5517),
+ q(5509),
q(0),
],
q(palya bareli) => [
- q(1398),
+ q(1394),
q(0),
],
q(pam) => [
- q(5527),
+ q(5519),
q(0),
],
q(pambia) => [
- q(5516),
+ q(5508),
q(0),
],
q(pamlico) => [
- q(5524),
+ q(5516),
q(0),
],
q(pamona) => [
- q(5520),
+ q(5512),
q(0),
],
q(pamosu) => [
- q(2761),
+ q(2758),
q(0),
],
q(pampanga) => [
@@ -47168,51 +47186,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pamplona atta) => [
- q(0927),
+ q(0925),
q(0),
],
q(pana (burkina faso)) => [
- q(5552),
+ q(5543),
q(0),
],
q(pana (central african republic)) => [
- q(5561),
+ q(5552),
q(0),
],
q(panamanian sign language) => [
- q(4072),
+ q(4064),
q(0),
],
q(panamint) => [
- q(5364),
+ q(5355),
q(0),
],
q(panao huanuco quechua) => [
- q(5731),
+ q(5722),
q(0),
],
q(panara) => [
- q(3579),
+ q(3576),
q(0),
],
q(panasuan) => [
- q(5626),
+ q(5617),
q(0),
],
q(panawa) => [
- q(5670),
+ q(5661),
q(0),
],
q(pancana) => [
- q(5551),
+ q(5542),
q(0),
],
q(panchpargania) => [
- q(6436),
+ q(6428),
q(0),
],
q(pande) => [
- q(1264),
+ q(1261),
q(0),
],
q(pangasinan) => [
@@ -47220,27 +47238,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pangseng) => [
- q(5440),
+ q(5432),
q(0),
],
q(pangutaran sama) => [
- q(6113),
+ q(6103),
q(0),
],
q(pangwa) => [
- q(5383),
+ q(5374),
q(0),
],
q(pangwali) => [
- q(5435),
+ q(5427),
q(0),
],
q(panim) => [
- q(5553),
+ q(5544),
q(0),
],
q(paniya) => [
- q(5395),
+ q(5386),
q(0),
],
q(panjabi) => [
@@ -47248,63 +47266,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pankarare) => [
- q(5369),
+ q(5360),
q(0),
],
q(pankararu) => [
- q(5371),
+ q(5362),
q(0),
],
q(pankhu) => [
- q(5485),
+ q(5477),
q(0),
],
q(pannei) => [
- q(5540),
+ q(5531),
q(0),
],
q(pano) => [
- q(4513),
+ q(4504),
q(0),
],
q(panoan katukina) => [
- q(3499),
+ q(3497),
q(0),
],
q(panobo) => [
- q(5550),
+ q(5541),
+ q(0),
+ ],
+ q(panyi bai) => [
+ q(1137),
q(0),
],
q(panytyima) => [
- q(5558),
+ q(5549),
q(0),
],
q(pao) => [
- q(5580),
+ q(5571),
q(0),
],
q(papantla totonac) => [
- q(6653),
+ q(6645),
q(0),
],
q(papapana) => [
- q(5586),
+ q(5577),
q(0),
],
q(papar) => [
- q(2137),
+ q(2132),
q(0),
],
q(papasena) => [
- q(5365),
+ q(5356),
q(0),
],
q(papel) => [
- q(5381),
+ q(5372),
q(0),
],
q(papi) => [
- q(5581),
+ q(5572),
q(0),
],
q(papiamento) => [
@@ -47312,11 +47334,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(papitalai) => [
- q(5366),
+ q(5357),
q(0),
],
q(papora) => [
- q(5592),
+ q(5583),
q(0),
],
q(papuan languages) => [
@@ -47324,107 +47346,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(papuan malay) => [
- q(5536),
+ q(5527),
q(0),
],
q(papuma) => [
- q(5585),
+ q(5576),
q(0),
],
q(para arara) => [
- q(0552),
+ q(0551),
q(0),
],
q(para gaviao) => [
- q(2678),
+ q(2675),
q(0),
],
q(para naga) => [
- q(5686),
+ q(5677),
q(0),
],
q(parachi) => [
- q(5596),
+ q(5587),
q(0),
],
q(paraguayan guarani) => [
- q(2651),
+ q(2648),
q(0),
],
q(paraguayan sign language) => [
- q(5682),
+ q(5673),
q(0),
],
q(parakana) => [
- q(5361),
+ q(5352),
q(0),
],
q(paranan) => [
- q(5599),
+ q(5590),
q(0),
],
q(paranawat) => [
- q(5358),
+ q(5349),
q(0),
],
q(paraujano) => [
- q(5376),
+ q(5367),
q(0),
],
q(parauk) => [
- q(5603),
+ q(5594),
q(0),
],
q(parawen) => [
- q(5613),
+ q(5604),
q(0),
],
q(pardhan) => [
- q(5396),
+ q(5387),
q(0),
],
q(pardhi) => [
- q(5400),
+ q(5391),
q(0),
],
q(pare) => [
- q(5591),
+ q(5582),
q(0),
],
q(parecis) => [
- q(5354),
+ q(5345),
q(0),
],
q(parenga) => [
- q(5398),
+ q(5389),
q(0),
],
q(pari) => [
- q(3957),
+ q(3950),
q(0),
],
q(parkari koli) => [
- q(3692),
+ q(3689),
q(0),
],
q(parkwa) => [
- q(5378),
+ q(5369),
q(0),
],
q(parsi) => [
- q(5607),
+ q(5598),
q(0),
],
q(parsi-dari) => [
- q(5597),
+ q(5588),
q(0),
],
q(parthian) => [
- q(7475),
+ q(7468),
q(0),
],
q(parya) => [
- q(5363),
+ q(5354),
q(0),
],
q(pashto) => [
@@ -47432,95 +47454,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(pasi) => [
- q(5629),
+ q(5620),
q(0),
],
q(pass valley yali) => [
- q(7584),
+ q(7576),
q(0),
],
q(patamona) => [
- q(5373),
+ q(5364),
q(0),
],
q(patani) => [
- q(5639),
+ q(5630),
q(0),
],
q(pataxo ha-ha-hae) => [
- q(5637),
+ q(5628),
q(0),
],
q(patep) => [
- q(5641),
+ q(5632),
q(0),
],
q(pathiya) => [
- q(5647),
+ q(5639),
q(0),
],
q(patpatar) => [
- q(2491),
+ q(2488),
q(0),
],
q(pattani) => [
- q(3800),
+ q(3795),
q(0),
],
q(pattani malay) => [
- q(4232),
+ q(4224),
+ q(0),
+ ],
+ q(pattapu) => [
+ q(5633),
q(0),
],
q(patwin) => [
- q(5672),
+ q(5663),
q(0),
],
q(paulohi) => [
- q(5499),
+ q(5491),
q(0),
],
q(paumari) => [
- q(5356),
+ q(5347),
q(0),
],
q(paunaka) => [
- q(5546),
+ q(5537),
q(0),
],
q(pauri bareli) => [
- q(1139),
+ q(1136),
q(0),
],
q(pauserna) => [
- q(5625),
+ q(5616),
q(0),
],
q(pawaia) => [
- q(5669),
+ q(5660),
q(0),
],
q(pawnee) => [
- q(5368),
+ q(5359),
q(0),
],
q(paynamar) => [
- q(5530),
+ q(5522),
q(0),
],
q(pe) => [
- q(5360),
+ q(5351),
q(0),
],
q(pear) => [
- q(5390),
+ q(5381),
q(0),
],
q(pech) => [
- q(5370),
+ q(5361),
q(0),
],
q(pecheneg) => [
- q(7464),
+ q(7457),
q(0),
],
q(pedi) => [
@@ -47528,83 +47554,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(peere) => [
- q(5432),
+ q(5423),
q(0),
],
q(pei) => [
- q(5589),
+ q(5580),
q(0),
],
q(pekal) => [
- q(5422),
+ q(5413),
q(0),
],
q(pela) => [
- q(1573),
+ q(1569),
q(0),
],
q(pele-ata) => [
- q(0910),
+ q(0909),
q(0),
],
q(pelende) => [
- q(5588),
+ q(5579),
q(0),
],
q(pemon) => [
- q(0818),
+ q(0816),
q(0),
],
q(pemono) => [
- q(5427),
+ q(5418),
q(0),
],
q(penang sign language) => [
- q(5621),
+ q(5612),
q(0),
],
q(penchal) => [
- q(5421),
+ q(5412),
q(0),
],
q(pendau) => [
- q(6919),
+ q(6911),
q(0),
],
q(pengo) => [
- q(5417),
+ q(5408),
q(0),
],
q(pennsylvania german) => [
- q(5406),
+ q(5397),
q(0),
],
q(penoles mixtec) => [
- q(4317),
+ q(4308),
q(0),
],
q(penrhyn) => [
- q(5543),
+ q(5534),
q(0),
],
q(pentlatch) => [
- q(5646),
+ q(5638),
q(0),
],
q(perai) => [
- q(7120),
+ q(7111),
q(0),
],
q(peranakan indonesian) => [
- q(5412),
+ q(5403),
q(0),
],
q(peripheral mongolian) => [
- q(4613),
+ q(4604),
q(0),
],
q(pero) => [
- q(5470),
+ q(5462),
q(0),
],
q(persian) => [
@@ -47612,7 +47638,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(persian sign language) => [
- q(5618),
+ q(5609),
q(0),
],
q(persian, old (ca.600-400 b.c.)) => [
@@ -47620,55 +47646,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(peruvian sign language) => [
- q(5604),
+ q(5595),
q(0),
],
q(petapa zapotec) => [
- q(7927),
+ q(7916),
q(0),
],
q(petats) => [
- q(5428),
+ q(5419),
q(0),
],
q(petjo) => [
- q(5429),
+ q(5420),
q(0),
],
q(peve) => [
- q(3986),
+ q(3979),
q(0),
],
q(pfaelzisch) => [
- q(5433),
+ q(5424),
q(0),
],
q(phai) => [
- q(5611),
+ q(5602),
q(0),
],
q(phake) => [
- q(5446),
+ q(5438),
q(0),
],
q(phala) => [
- q(7735),
+ q(7725),
q(0),
],
q(phalura) => [
- q(5447),
+ q(5439),
q(0),
],
q(phana') => [
- q(5450),
+ q(5442),
q(0),
],
q(phangduwali) => [
- q(5455),
+ q(5447),
q(0),
],
q(phende) => [
- q(5423),
+ q(5414),
q(0),
],
q(philippine languages) => [
@@ -47676,11 +47702,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(philippine sign language) => [
- q(5628),
+ q(5619),
q(0),
],
q(phimbi) => [
- q(5448),
+ q(5440),
q(0),
],
q(phoenician) => [
@@ -47688,127 +47714,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(phola) => [
- q(7737),
+ q(7727),
q(0),
],
q(pholo) => [
- q(7661),
+ q(7653),
q(0),
],
q(phom naga) => [
- q(5045),
+ q(5034),
q(0),
],
q(phong-kniang) => [
- q(5559),
+ q(5550),
q(0),
],
q(phrae pwo karen) => [
- q(3399),
+ q(3396),
q(0),
],
q(phrygian) => [
- q(7466),
+ q(7459),
q(0),
],
q(phu thai) => [
- q(5452),
+ q(5444),
q(0),
],
q(phuan) => [
- q(5453),
+ q(5445),
q(0),
],
q(phudagi) => [
- q(5443),
+ q(5435),
q(0),
],
q(phuie) => [
- q(5654),
+ q(5646),
q(0),
],
q(phukha) => [
- q(5445),
+ q(5437),
q(0),
],
q(phuma) => [
- q(7739),
+ q(7729),
q(0),
],
q(phunoi) => [
- q(5449),
+ q(5441),
q(0),
],
q(phuong) => [
- q(5444),
+ q(5436),
q(0),
],
q(phupa) => [
- q(7742),
+ q(7732),
q(0),
],
q(phupha) => [
- q(7738),
+ q(7728),
q(0),
],
q(phuza) => [
- q(7743),
+ q(7733),
q(0),
],
q(piamatsina) => [
- q(5642),
+ q(5634),
q(0),
],
q(piame) => [
- q(5468),
+ q(5460),
q(0),
],
q(piapoco) => [
- q(5469),
+ q(5461),
q(0),
],
q(piaroa) => [
- q(5459),
+ q(5451),
q(0),
],
q(picard) => [
- q(5392),
+ q(5383),
q(0),
],
q(pichis asheninka) => [
- q(1843),
+ q(1838),
q(0),
],
q(pictish) => [
- q(7467),
+ q(7460),
q(0),
],
q(pidgin delaware) => [
- q(2002),
+ q(1997),
q(0),
],
q(piemontese) => [
- q(5531),
+ q(5523),
q(0),
],
q(pijao) => [
- q(5465),
+ q(5457),
q(0),
],
q(pije) => [
- q(5479),
+ q(5471),
q(0),
],
q(pijin) => [
- q(5472),
+ q(5464),
q(0),
],
q(pilaga) => [
- q(5498),
+ q(5490),
q(0),
],
q(pileni) => [
- q(5475),
+ q(5467),
q(0),
],
q(pilipino) => [
@@ -47816,167 +47842,167 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(pima bajo) => [
- q(5456),
+ q(5448),
q(0),
],
q(pimbwe) => [
- q(5476),
+ q(5468),
q(0),
],
q(pinai-hagahai) => [
- q(5549),
+ q(5540),
q(0),
],
q(pingelapese) => [
- q(5461),
+ q(5453),
q(0),
],
q(pini) => [
- q(5464),
+ q(5456),
q(0),
],
q(pinigura) => [
- q(5557),
+ q(5548),
q(0),
],
q(pinjarup) => [
- q(5545),
+ q(5536),
q(0),
],
q(pinji) => [
- q(5458),
+ q(5450),
q(0),
],
q(pinotepa nacional mixtec) => [
- q(4319),
+ q(4310),
q(0),
],
q(pintiini) => [
- q(5638),
+ q(5629),
q(0),
],
q(pintupi-luritja) => [
- q(5474),
+ q(5466),
q(0),
],
q(pinyin) => [
- q(5560),
+ q(5551),
q(0),
],
q(pipil) => [
- q(5584),
+ q(5575),
q(0),
],
q(piraha) => [
- q(4695),
+ q(4685),
q(0),
],
q(piratapuyo) => [
- q(5471),
+ q(5463),
q(0),
],
q(pirlatapa) => [
- q(1578),
+ q(1574),
q(0),
],
q(piro) => [
- q(5460),
+ q(5452),
q(0),
],
q(pirriya) => [
- q(7463),
+ q(7456),
q(0),
],
q(pisabo) => [
- q(5462),
+ q(5454),
q(0),
],
q(pisaflores tepehua) => [
- q(6674),
+ q(6666),
q(0),
],
q(piscataway) => [
- q(5635),
+ q(5626),
q(0),
],
q(pisidian) => [
- q(7476),
+ q(7469),
q(0),
],
q(pitcairn-norfolk) => [
- q(5463),
+ q(5455),
q(0),
],
q(pite sami) => [
- q(6067),
+ q(6057),
q(0),
],
q(piti) => [
- q(5402),
+ q(5393),
q(0),
],
q(pitjantjatjara) => [
- q(5480),
+ q(5472),
q(0),
],
q(pitta pitta) => [
- q(5473),
+ q(5465),
q(0),
],
q(piu) => [
- q(5477),
+ q(5469),
q(0),
],
q(piya-kwonci) => [
- q(5478),
+ q(5470),
q(0),
],
q(plains cree) => [
- q(1856),
+ q(1851),
q(0),
],
q(plains indian sign language) => [
- q(5619),
+ q(5610),
q(0),
],
q(plains miwok) => [
- q(5534),
+ q(5525),
q(0),
],
q(plapo krumen) => [
- q(3631),
+ q(3628),
q(0),
],
q(plateau malagasy) => [
- q(5509),
+ q(5501),
q(0),
],
q(plautdietsch) => [
- q(5410),
+ q(5401),
q(0),
],
q(playero) => [
- q(2588),
+ q(2586),
q(0),
],
q(pnar) => [
- q(5387),
+ q(5378),
q(0),
],
q(pochuri naga) => [
- q(5049),
+ q(5038),
q(0),
],
q(pochutec) => [
- q(7472),
+ q(7465),
q(0),
],
q(podena) => [
- q(5408),
+ q(5399),
q(0),
],
q(pogolo) => [
- q(5579),
+ q(5570),
q(0),
],
q(pohnpeian) => [
@@ -47984,31 +48010,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pokanga) => [
- q(5569),
+ q(5560),
q(0),
],
q(poke) => [
- q(5565),
+ q(5556),
q(0),
],
q(pokomo) => [
- q(5482),
+ q(5474),
q(0),
],
q(pokoot) => [
- q(5487),
+ q(5479),
q(0),
],
q(polabian) => [
- q(5578),
+ q(5569),
q(0),
],
q(polari) => [
- q(5496),
+ q(5488),
q(0),
],
q(polci) => [
- q(5500),
+ q(5492),
q(0),
],
q(polish) => [
@@ -48016,67 +48042,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(polish sign language) => [
- q(5627),
+ q(5618),
q(0),
],
q(polonombauk) => [
- q(5494),
+ q(5486),
q(0),
],
q(pom) => [
- q(5528),
+ q(5520),
q(0),
],
q(pomo) => [
- q(5526),
+ q(5518),
q(0),
],
q(ponam) => [
- q(4773),
+ q(4763),
q(0),
],
q(ponares) => [
- q(5563),
+ q(5554),
q(0),
],
q(pongu) => [
- q(5542),
+ q(5533),
q(0),
],
q(ponosakan) => [
- q(5554),
+ q(5545),
q(0),
],
q(pontic) => [
- q(5555),
+ q(5546),
q(0),
],
q(ponyo-gongwang naga) => [
- q(5044),
+ q(5033),
q(0),
],
q(popti') => [
- q(3045),
+ q(3042),
q(0),
],
q(poqomam) => [
- q(5562),
+ q(5553),
q(0),
],
q(poqomchi') => [
- q(5567),
+ q(5558),
q(0),
],
q(porohanon) => [
- q(5601),
+ q(5592),
q(0),
],
q(port sandwich) => [
- q(5634),
+ q(5625),
q(0),
],
q(port vato) => [
- q(5645),
+ q(5637),
q(0),
],
q(portuguese) => [
@@ -48084,7 +48110,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(portuguese sign language) => [
- q(5630),
+ q(5621),
q(0),
],
q(portuguese-based creoles and pidgins) => [
@@ -48092,39 +48118,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(potawatomi) => [
- q(5575),
+ q(5566),
q(0),
],
q(potiguara) => [
- q(5566),
+ q(5557),
q(0),
],
q(pottangi ollar gadaba) => [
- q(2456),
+ q(2452),
q(0),
],
q(poule) => [
- q(4549),
+ q(4540),
q(1),
],
q(poumei naga) => [
- q(5535),
+ q(5526),
q(0),
],
q(pouye) => [
- q(1598),
+ q(1593),
q(0),
],
q(powari) => [
- q(5676),
+ q(5667),
q(0),
],
q(powhatan) => [
- q(5467),
+ q(5459),
q(0),
],
q(poyanawa) => [
- q(5681),
+ q(5672),
q(0),
],
q(prakrit languages) => [
@@ -48132,19 +48158,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(prasuni) => [
- q(5606),
+ q(5597),
q(0),
],
q(pray 3) => [
- q(5615),
+ q(5606),
q(0),
],
q(primitive irish) => [
- q(5438),
+ q(5430),
q(0),
],
q(principense) => [
- q(5598),
+ q(5589),
q(0),
],
q(provencal) => [
@@ -48156,107 +48182,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(providencia sign language) => [
- q(5616),
+ q(5607),
q(0),
],
q(prussian) => [
- q(5600),
+ q(5591),
q(0),
],
q(psikye) => [
- q(3678),
+ q(3675),
q(0),
],
q(pu ko) => [
- q(5657),
+ q(5649),
q(0),
],
q(pu-xian chinese) => [
- q(1844),
+ q(1839),
q(0),
],
q(puare) => [
- q(5666),
+ q(5658),
q(0),
],
q(pudtol atta) => [
- q(0923),
+ q(0921),
q(0),
],
q(puelche) => [
- q(5652),
+ q(5644),
q(0),
],
q(puerto rican sign language) => [
- q(5624),
+ q(5615),
q(0),
],
q(puimei naga) => [
- q(5051),
+ q(5040),
q(0),
],
q(puinave) => [
- q(5655),
+ q(5647),
q(0),
],
q(pukapuka) => [
- q(5488),
+ q(5480),
q(0),
],
q(pulaar) => [
- q(2384),
+ q(2380),
q(0),
],
q(pulabu) => [
- q(5660),
+ q(5652),
q(0),
],
q(pular) => [
- q(2387),
+ q(2383),
q(0),
],
q(puluwatese) => [
- q(5665),
+ q(5657),
q(0),
],
q(puma) => [
- q(5658),
+ q(5650),
q(0),
],
q(pume) => [
- q(7586),
+ q(7578),
q(0),
],
q(pumpokol) => [
- q(7470),
+ q(7463),
q(0),
],
q(punan aput) => [
- q(5651),
+ q(5643),
q(0),
],
q(punan bah-biau) => [
- q(5538),
+ q(5529),
q(0),
],
q(punan batu 1) => [
- q(5548),
+ q(5539),
q(0),
],
q(punan merah) => [
- q(5653),
+ q(5645),
q(0),
],
q(punan merap) => [
- q(5650),
+ q(5642),
q(0),
],
q(punan tubu) => [
- q(5656),
+ q(5648),
q(0),
],
q(punic) => [
- q(7478),
+ q(7471),
q(0),
],
q(punjabi) => [
@@ -48264,63 +48290,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(puno quechua) => [
- q(5735),
+ q(5726),
q(0),
],
q(punthamara) => [
- q(7477),
+ q(7470),
q(0),
],
q(punu) => [
- q(5664),
+ q(5656),
q(0),
],
q(puoc) => [
- q(5659),
+ q(5651),
q(0),
],
q(puquina) => [
- q(5661),
+ q(5653),
q(0),
],
q(puragi) => [
- q(5612),
+ q(5603),
q(0),
],
q(purari) => [
- q(2890),
+ q(2887),
q(0),
],
q(purepecha) => [
- q(6742),
+ q(6733),
q(0),
],
q(puri) => [
- q(5609),
+ q(5600),
q(0),
],
q(purik) => [
- q(5614),
+ q(5605),
q(0),
],
q(purisimeno) => [
- q(5667),
+ q(5659),
q(0),
],
q(puroik) => [
- q(6295),
+ q(6286),
q(0),
],
q(purubora) => [
- q(5662),
+ q(5654),
q(0),
],
q(purum) => [
- q(5649),
- q(0),
- ],
- q(purum naga) => [
- q(5668),
+ q(5641),
q(0),
],
q(pushto) => [
@@ -48328,119 +48350,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(putai) => [
- q(4243),
+ q(4235),
q(0),
],
q(putoh) => [
- q(5663),
+ q(5655),
q(0),
],
q(putukwam) => [
- q(0643),
+ q(0641),
q(0),
],
q(puyo) => [
- q(7479),
+ q(7472),
q(0),
],
q(puyo-paekche) => [
- q(7473),
+ q(7466),
q(0),
],
q(puyuma) => [
- q(5683),
+ q(5674),
q(0),
],
q(pwaamei) => [
- q(5519),
+ q(5511),
q(0),
],
q(pwapwa) => [
- q(5572),
+ q(5563),
q(0),
],
q(pwo eastern karen) => [
- q(3395),
+ q(3392),
q(0),
],
q(pwo northern karen) => [
- q(5677),
+ q(5668),
q(0),
],
q(pwo western karen) => [
- q(5675),
+ q(5666),
q(0),
],
q(pyapun) => [
- q(5404),
+ q(5395),
q(0),
],
q(pye krumen) => [
- q(5679),
+ q(5670),
q(0),
],
q(pyen) => [
- q(5685),
+ q(5676),
q(0),
],
- q(pyu) => [
- q(5388),
+ q(pyu (myanmar)) => [
+ q(5675),
q(0),
],
- q(pyu (myanmar)) => [
- q(5684),
+ q(pyu (papua new guinea)) => [
+ q(5379),
q(0),
],
q(q'anjob'al) => [
- q(3381),
+ q(3378),
q(0),
],
q(qabiao) => [
- q(3809),
+ q(3804),
q(0),
],
q(qaqet) => [
- q(1615),
+ q(1610),
q(0),
],
q(qashqa'i) => [
- q(5736),
+ q(5727),
q(0),
],
q(qatabanian) => [
- q(7481),
+ q(7474),
q(0),
],
q(qau) => [
- q(2615),
+ q(2613),
q(0),
],
q(qawasqar) => [
- q(0748),
+ q(0746),
q(0),
],
q(qila muji) => [
- q(7707),
+ q(7699),
q(0),
],
q(qimant) => [
- q(0681),
+ q(0679),
q(0),
],
q(qiubei zhuang) => [
- q(7949),
+ q(7938),
q(0),
],
q(quapaw) => [
- q(5687),
+ q(5678),
q(0),
],
q(quebec sign language) => [
- q(2343),
+ q(2339),
q(0),
],
q(quechan) => [
- q(7781),
+ q(7771),
q(0),
],
q(quechua) => [
@@ -48452,71 +48474,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(quenya) => [
- q(5742),
+ q(5733),
q(0),
],
q(queretaro otomi) => [
- q(5332),
+ q(5324),
q(0),
],
q(quetzaltepec mixe) => [
- q(5678),
+ q(5669),
q(0),
],
q(queyu) => [
- q(5721),
+ q(5712),
q(0),
],
q(quiavicuzas zapotec) => [
- q(7932),
+ q(7921),
q(0),
],
q(quiche) => [
- q(5689),
+ q(5680),
q(1),
],
q(quileute) => [
- q(5694),
+ q(5685),
q(0),
],
q(quinault) => [
- q(5698),
+ q(5689),
q(0),
],
q(quinqui) => [
- q(5700),
+ q(5691),
q(0),
],
q(quioquitani-quieri zapotec) => [
- q(7968),
+ q(7957),
q(0),
],
q(quiotepec chinantec) => [
- q(1729),
+ q(1724),
q(0),
],
q(quiripi) => [
- q(5743),
+ q(5734),
q(0),
],
q(rabha) => [
- q(5750),
+ q(5741),
q(0),
],
q(rade) => [
- q(5747),
+ q(5738),
q(0),
],
q(raetic) => [
- q(7491),
+ q(7484),
q(0),
],
q(rahambuu) => [
- q(5765),
+ q(5756),
q(0),
],
q(rajah kabunsuwan manobo) => [
- q(4498),
+ q(4489),
q(0),
],
q(rajasthani) => [
@@ -48524,75 +48546,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(rajbanshi) => [
- q(5805),
+ q(5796),
q(0),
],
q(raji) => [
- q(5804),
+ q(5795),
q(0),
],
q(rajong) => [
- q(5803),
+ q(5794),
q(0),
],
q(rajput garasia) => [
- q(2616),
+ q(2614),
q(0),
],
q(rakahanga-manihiki) => [
- q(5808),
+ q(5799),
q(0),
],
q(rakhine) => [
- q(5809),
+ q(5800),
q(0),
],
q(ralte) => [
- q(5753),
+ q(5744),
q(0),
],
q(rama) => [
- q(5813),
+ q(5804),
q(0),
],
q(ramoaaina) => [
- q(5751),
+ q(5742),
q(0),
],
q(ramopa) => [
- q(3401),
+ q(3399),
q(0),
],
q(rampi) => [
- q(3939),
+ q(3932),
q(0),
],
q(rana tharu) => [
- q(6516),
+ q(6508),
q(0),
],
q(rang) => [
- q(5763),
+ q(5754),
q(0),
],
q(rangkas) => [
- q(5787),
+ q(5778),
q(0),
],
q(ranglong) => [
- q(5840),
+ q(5831),
q(0),
],
q(rangpuri) => [
- q(5811),
+ q(5802),
q(0),
],
q(rao) => [
- q(5756),
+ q(5747),
q(0),
],
q(rapa) => [
- q(5764),
+ q(5755),
q(0),
],
q(rapanui) => [
@@ -48600,15 +48622,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(rapoisi) => [
- q(3769),
+ q(3764),
q(0),
],
q(rapting) => [
- q(5858),
+ q(5849),
q(0),
],
q(rara bakati') => [
- q(4049),
+ q(4041),
q(0),
],
q(rarotongan) => [
@@ -48616,139 +48638,139 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(rasawa) => [
- q(5746),
+ q(5737),
q(0),
],
q(ratagnon) => [
- q(1485),
+ q(1481),
q(0),
],
q(ratahan) => [
- q(5866),
+ q(5857),
q(0),
],
q(rathawi) => [
- q(5868),
+ q(5860),
q(0),
],
q(rathwi bareli) => [
- q(1166),
+ q(1163),
q(0),
],
q(raute) => [
- q(5760),
+ q(5751),
q(0),
],
q(ravula) => [
- q(7629),
+ q(7620),
q(0),
],
q(rawa) => [
- q(5886),
+ q(5878),
q(0),
],
q(rawang) => [
- q(5762),
+ q(5753),
q(0),
],
q(rawat) => [
- q(3134),
+ q(3132),
q(0),
],
q(rawngtu chin) => [
- q(7121),
+ q(7112),
q(0),
],
q(rawo) => [
- q(5883),
+ q(5875),
q(0),
],
q(rayon zoque) => [
- q(7921),
+ q(7910),
q(0),
],
q(razajerdi) => [
- q(5759),
+ q(5750),
q(0),
],
q(red gelao) => [
- q(2527),
+ q(2523),
q(0),
],
q(reel) => [
- q(0928),
+ q(0926),
q(0),
],
q(rejang) => [
- q(5777),
+ q(5768),
q(0),
],
q(rejang kayan) => [
- q(5774),
+ q(5765),
q(0),
],
q(reli) => [
- q(5776),
+ q(5767),
q(0),
],
q(rema) => [
- q(1374),
+ q(1370),
q(0),
],
q(rembarunga) => [
- q(5814),
+ q(5805),
q(0),
],
q(rembong) => [
- q(5773),
+ q(5764),
q(0),
],
q(remo) => [
- q(5779),
+ q(5770),
q(0),
],
q(remontado dumagat) => [
- q(0674),
+ q(0672),
q(0),
],
q(rempi) => [
- q(5827),
+ q(5818),
q(0),
],
q(remun) => [
- q(3952),
+ q(3945),
q(0),
],
q(rendille) => [
- q(5778),
+ q(5769),
q(0),
],
q(rengao) => [
- q(5780),
+ q(5771),
q(0),
],
q(rennell-bellona) => [
- q(4440),
+ q(4431),
q(0),
],
q(rennellese sign language) => [
- q(5863),
+ q(5854),
q(0),
],
q(repanbitip) => [
- q(5857),
+ q(5848),
q(0),
],
q(rer bare) => [
- q(5781),
+ q(5772),
q(0),
],
q(rerau) => [
- q(5772),
+ q(5763),
q(0),
],
q(rerep) => [
- q(5437),
+ q(5429),
q(0),
],
q(reserved for local use) => [
@@ -48756,95 +48778,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(reshe) => [
- q(5782),
+ q(5773),
q(0),
],
q(resigaro) => [
- q(5789),
+ q(5780),
q(0),
],
q(retta) => [
- q(5783),
+ q(5774),
q(0),
],
q(reunion creole french) => [
- q(5770),
+ q(5761),
q(0),
],
q(reyesano) => [
- q(5784),
+ q(5775),
q(0),
],
q(riang (india)) => [
- q(5794),
+ q(5785),
q(0),
],
q(riang (myanmar)) => [
- q(5797),
+ q(5788),
q(0),
],
q(riantana) => [
- q(5755),
+ q(5746),
q(0),
],
q(ribun) => [
- q(5800),
+ q(5791),
q(0),
],
q(rien) => [
- q(5795),
+ q(5786),
q(0),
],
+ q(rifao) => [
+ q(4983),
+ q(1),
+ ],
q(rikbaktsa) => [
- q(5807),
+ q(5798),
q(0),
],
q(rincon zapotec) => [
- q(7829),
+ q(7818),
q(0),
],
q(rinconada bikol) => [
- q(1486),
+ q(1482),
q(0),
],
q(ringgou) => [
- q(5791),
+ q(5782),
q(0),
],
q(ririo) => [
- q(5859),
+ q(5850),
q(0),
],
q(ritarungo) => [
- q(5801),
+ q(5792),
q(0),
],
q(riung) => [
- q(5802),
+ q(5793),
q(0),
],
q(riverain sango) => [
- q(6151),
+ q(6141),
q(0),
],
q(rogo) => [
- q(5847),
+ q(5838),
q(0),
],
q(rohingya) => [
- q(5792),
+ q(5783),
q(0),
],
q(roma) => [
- q(5824),
+ q(5815),
q(0),
],
q(romagnol) => [
- q(5788),
+ q(5779),
q(0),
],
q(romam) => [
- q(5834),
+ q(5825),
q(0),
],
q(romance languages) => [
@@ -48856,19 +48882,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(romanian sign language) => [
- q(5829),
+ q(5820),
q(0),
],
q(romano-greek) => [
- q(5786),
+ q(5777),
q(0),
],
q(romano-serbian) => [
- q(5862),
+ q(5853),
q(0),
],
q(romanova) => [
- q(5832),
+ q(5823),
q(0),
],
q(romansh) => [
@@ -48880,95 +48906,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(romblomanon) => [
- q(5851),
+ q(5842),
q(0),
],
q(rombo) => [
- q(5849),
+ q(5840),
q(0),
],
q(romkun) => [
- q(5822),
+ q(5813),
q(0),
],
q(ron) => [
- q(1773),
+ q(1768),
q(0),
],
q(ronga) => [
- q(5839),
+ q(5830),
q(0),
],
q(rongga) => [
- q(5854),
+ q(5845),
q(0),
],
q(rongmei naga) => [
- q(4767),
+ q(4757),
q(0),
],
q(rongpo) => [
- q(5842),
+ q(5833),
q(0),
],
q(ronji) => [
- q(5848),
+ q(5839),
q(0),
],
q(roon) => [
- q(5841),
+ q(5832),
q(0),
],
q(roria) => [
- q(5785),
+ q(5776),
q(0),
],
q(rotokas) => [
- q(5852),
+ q(5843),
q(0),
],
q(rotuman) => [
- q(5867),
+ q(5858),
q(0),
],
q(roviana) => [
- q(5873),
+ q(5865),
q(0),
],
q(ruching palaung) => [
- q(5393),
+ q(5384),
q(0),
],
q(rudbari) => [
- q(5771),
+ q(5762),
q(0),
],
q(rufiji) => [
- q(5875),
+ q(5867),
q(0),
],
q(ruga) => [
- q(5874),
+ q(5866),
q(0),
],
q(rukai) => [
- q(2151),
+ q(2146),
q(0),
],
q(ruma) => [
- q(5882),
+ q(5874),
q(0),
],
q(rumai palaung) => [
- q(5766),
+ q(5757),
q(0),
],
q(rumu) => [
- q(3446),
+ q(3444),
q(0),
],
q(runa) => [
- q(5837),
+ q(5828),
q(0),
],
q(rundi) => [
@@ -48976,23 +49002,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(runga) => [
- q(5855),
+ q(5846),
q(0),
],
q(rungtu chin) => [
- q(5865),
+ q(5856),
q(0),
],
q(rungus) => [
- q(2142),
+ q(2137),
q(0),
],
q(rungwa) => [
- q(5844),
+ q(5835),
q(0),
],
q(russia buriat) => [
- q(1587),
+ q(1583),
q(0),
],
q(russian) => [
@@ -49000,171 +49026,171 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(russian sign language) => [
- q(5864),
+ q(5855),
q(0),
],
q(rusyn) => [
- q(5871),
+ q(5863),
q(0),
],
q(rutul) => [
- q(5879),
+ q(5871),
q(0),
],
q(ruuli) => [
- q(5870),
+ q(5862),
q(0),
],
q(ruund) => [
- q(5838),
+ q(5829),
q(0),
],
q(rwa) => [
- q(5884),
+ q(5876),
q(0),
],
q(s'gaw karen) => [
- q(3618),
+ q(3615),
q(0),
],
q(sa) => [
- q(5907),
+ q(5898),
q(0),
],
q(sa'a) => [
- q(0836),
+ q(0834),
q(0),
],
q(sa'ban) => [
- q(6161),
+ q(6151),
q(0),
],
q(sa'och) => [
- q(5945),
+ q(5936),
q(0),
],
q(saafi-saafi) => [
- q(5905),
+ q(5896),
q(0),
],
q(saam) => [
- q(5757),
+ q(5748),
q(0),
],
q(saamia) => [
- q(4070),
+ q(4062),
q(0),
],
q(saaroa) => [
- q(6339),
+ q(6330),
q(0),
],
q(saba) => [
- q(5893),
+ q(5885),
q(0),
],
q(sabaean) => [
- q(7495),
+ q(7488),
q(0),
],
q(sabah bisaya) => [
- q(1473),
+ q(1469),
q(0),
],
q(sabah malay) => [
- q(4546),
+ q(4537),
q(0),
],
q(sabane) => [
- q(5896),
+ q(5888),
q(0),
],
q(sabaot) => [
- q(6205),
+ q(6196),
q(0),
],
q(sabine) => [
- q(5931),
+ q(5922),
q(0),
],
q(sabu) => [
- q(2881),
+ q(2878),
q(0),
],
q(sabum) => [
- q(5924),
+ q(5915),
q(0),
],
q(sacapulteco) => [
- q(5703),
+ q(5694),
q(0),
],
q(sadri) => [
- q(5942),
+ q(5933),
q(0),
],
q(saek) => [
- q(6081),
+ q(6071),
q(0),
],
q(saep) => [
- q(6189),
+ q(6179),
q(0),
],
q(safaliba) => [
- q(5897),
+ q(5889),
q(0),
],
q(safeyoka) => [
- q(0860),
+ q(0858),
q(0),
],
q(safwa) => [
- q(5920),
+ q(5911),
q(0),
],
q(sagala) => [
- q(5922),
+ q(5913),
q(0),
],
q(sagalla) => [
- q(6482),
+ q(6474),
q(0),
],
q(saho) => [
- q(6260),
+ q(6251),
q(0),
],
q(sahu) => [
- q(5898),
+ q(5890),
q(0),
],
q(saidi arabic) => [
- q(0627),
+ q(0625),
q(0),
],
q(saint lucian creole french) => [
- q(0588),
+ q(0587),
q(0),
],
q(saisiyat) => [
- q(7513),
+ q(7505),
q(0),
],
q(sajalong) => [
- q(6070),
+ q(6060),
q(0),
],
q(sajau basap) => [
- q(6065),
+ q(6055),
q(0),
],
q(sakachep) => [
- q(5940),
+ q(5931),
q(0),
],
q(sakalava malagasy) => [
- q(6086),
+ q(6076),
q(0),
],
q(sakan) => [
@@ -49172,59 +49198,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(sakao) => [
- q(6099),
+ q(6089),
q(0),
],
q(sakata) => [
- q(6098),
+ q(6088),
q(0),
],
q(sake) => [
- q(5899),
+ q(5891),
q(0),
],
q(sakirabia) => [
- q(6085),
+ q(6075),
q(0),
],
q(sala) => [
- q(6033),
+ q(6023),
q(0),
],
q(salako) => [
- q(3503),
+ q(3501),
q(1),
],
q(salampasu) => [
- q(6122),
+ q(6112),
q(0),
],
q(salar) => [
- q(6117),
+ q(6107),
q(0),
],
q(salas) => [
- q(6014),
+ q(6004),
q(0),
],
q(salasaca highland quichua) => [
- q(5732),
+ q(5723),
q(0),
],
q(salchuq) => [
- q(6116),
+ q(6106),
q(0),
],
q(saleman) => [
- q(5904),
+ q(5895),
q(0),
],
q(saliba) => [
- q(5914),
+ q(5905),
q(0),
],
q(salinan) => [
- q(6114),
+ q(6104),
q(0),
],
q(salishan languages) => [
@@ -49232,35 +49258,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sallands) => [
- q(5970),
+ q(5961),
q(0),
],
q(salt-yui) => [
- q(6112),
+ q(6102),
q(0),
],
q(saluan) => [
- q(4024),
+ q(4016),
q(0),
],
q(saluma) => [
- q(6111),
+ q(6101),
q(0),
],
q(salvadoran sign language) => [
- q(2301),
+ q(2296),
q(0),
],
q(sam) => [
- q(6163),
+ q(6153),
q(0),
],
q(sama) => [
- q(6127),
+ q(6117),
q(0),
],
q(samaritan) => [
- q(6134),
+ q(6124),
q(0),
],
q(samaritan aramaic) => [
@@ -49268,47 +49294,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(samarokena) => [
- q(6602),
+ q(6594),
q(0),
],
q(samatao) => [
- q(7756),
+ q(7746),
+ q(0),
+ ],
+ q(samay) => [
+ q(6344),
q(0),
],
q(samba) => [
- q(6141),
+ q(6131),
q(0),
],
q(samba daka) => [
- q(1688),
+ q(1683),
q(0),
],
q(samba leko) => [
- q(4800),
+ q(4790),
q(0),
],
q(sambal) => [
- q(7496),
+ q(7489),
q(0),
],
q(sambalpuri) => [
- q(6203),
+ q(6194),
q(0),
],
q(sambe) => [
- q(7281),
+ q(7272),
q(0),
],
q(samberigi) => [
- q(6259),
+ q(6250),
q(0),
],
q(samburu) => [
- q(5902),
+ q(5893),
q(0),
],
q(samei) => [
- q(6130),
+ q(6120),
q(0),
],
q(sami languages) => [
@@ -49316,7 +49346,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(samo) => [
- q(6135),
+ q(6125),
q(0),
],
q(samoan) => [
@@ -49324,11 +49354,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(samogitian) => [
- q(6012),
+ q(6002),
q(0),
],
q(samosa) => [
- q(6317),
+ q(6308),
q(0),
],
q(samoyedic languages) => [
@@ -49336,123 +49366,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sampang) => [
- q(5761),
+ q(5752),
q(0),
],
q(samre) => [
- q(6336),
+ q(6327),
q(0),
],
q(samtao) => [
- q(6281),
+ q(6272),
q(0),
],
q(samvedi) => [
- q(6139),
+ q(6129),
q(0),
],
q(san agustin mixtepec zapotec) => [
- q(7965),
+ q(7954),
q(0),
],
q(san baltazar loxicha zapotec) => [
- q(7946),
+ q(7935),
q(0),
],
q(san blas kuna) => [
- q(1914),
+ q(1909),
q(0),
],
q(san dionisio del mar huave) => [
- q(2879),
+ q(2876),
q(0),
],
q(san felipe otlaltepec popoloca) => [
- q(5577),
+ q(5568),
q(0),
],
q(san francisco del mar huave) => [
- q(2858),
+ q(2855),
q(0),
],
q(san francisco matlatzinca) => [
- q(4129),
+ q(4121),
q(0),
],
q(san jeronimo tecoatl mazatec) => [
- q(4122),
+ q(4114),
q(0),
],
q(san juan atzingo popoloca) => [
- q(5564),
+ q(5555),
q(0),
],
q(san juan colorado mixtec) => [
- q(4329),
+ q(4320),
q(0),
],
q(san juan guelavia zapotec) => [
- q(7815),
+ q(7804),
q(0),
],
q(san juan teita mixtec) => [
- q(7522),
+ q(7514),
q(0),
],
q(san luis temalacayuca popoloca) => [
- q(5590),
+ q(5581),
q(0),
],
- q(san marcos tlalcoyalco popoloca) => [
- q(5508),
+ q(san marcos tlacoyalco popoloca) => [
+ q(5500),
q(0),
],
+ q(san marcos tlalcoyalco popoloca) => [
+ q(5500),
+ q(1),
+ ],
q(san martin itunyoso triqui) => [
- q(6710),
+ q(6702),
q(0),
],
q(san martin quechua) => [
- q(5719),
+ q(5710),
q(0),
],
q(san mateo del mar huave) => [
- q(2873),
+ q(2870),
q(0),
],
q(san miguel creole french) => [
- q(5938),
+ q(5929),
q(0),
],
q(san miguel el grande mixtec) => [
- q(4312),
+ q(4303),
q(0),
],
q(san miguel piedras mixtec) => [
- q(7527),
+ q(7519),
q(0),
],
q(san pedro amuzgos amuzgo) => [
- q(1017),
+ q(1014),
q(0),
],
q(san pedro quiatoni zapotec) => [
- q(7928),
+ q(7917),
q(0),
],
q(san salvador kongo) => [
- q(3719),
+ q(3715),
q(0),
],
q(san vicente coatlan zapotec) => [
- q(7942),
+ q(7931),
q(0),
],
q(sanaani arabic) => [
- q(1004),
+ q(1001),
q(0),
],
q(sanapana) => [
- q(5901),
+ q(6186),
q(0),
],
q(sandawe) => [
@@ -49460,35 +49494,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sanga (democratic republic of congo)) => [
- q(6148),
+ q(6138),
q(0),
],
q(sanga (nigeria)) => [
- q(7505),
+ q(7497),
q(0),
],
q(sanggau) => [
- q(5939),
+ q(5930),
q(0),
],
q(sangil) => [
- q(6152),
+ q(6142),
q(0),
],
q(sangir) => [
- q(6337),
+ q(6328),
q(0),
],
q(sangisari) => [
- q(6011),
+ q(6001),
q(0),
],
q(sangkong) => [
- q(6007),
+ q(5998),
q(0),
],
q(sanglechi) => [
- q(6017),
+ q(6007),
q(0),
],
q(sango) => [
@@ -49496,35 +49530,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sangtam naga) => [
- q(5075),
+ q(5065),
q(0),
],
q(sangu (gabon)) => [
- q(6157),
+ q(6147),
q(0),
],
q(sangu (tanzania)) => [
- q(5925),
+ q(5916),
q(0),
],
q(sani) => [
- q(7759),
+ q(7749),
q(0),
],
q(sanie) => [
- q(7764),
+ q(7754),
q(0),
],
q(saniyo-hiyewe) => [
- q(6164),
+ q(6154),
q(0),
],
q(sankaran maninka) => [
- q(4540),
+ q(4531),
q(0),
],
q(sansi) => [
- q(6245),
+ q(6236),
q(0),
],
q(sanskrit) => [
@@ -49532,43 +49566,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(santa ana de tusi pasco quechua) => [
- q(5739),
+ q(5730),
q(0),
],
q(santa catarina albarradas zapotec) => [
- q(7966),
+ q(7955),
q(0),
],
q(santa ines ahuatempan popoloca) => [
- q(5389),
+ q(5380),
q(0),
],
q(santa ines yatzechi zapotec) => [
- q(7936),
+ q(7925),
q(0),
],
q(santa lucia monteverde mixtec) => [
- q(4204),
+ q(4196),
q(0),
],
q(santa maria del mar huave) => [
- q(2882),
+ q(2879),
q(0),
],
q(santa maria la alta nahuatl) => [
- q(4891),
+ q(4881),
q(0),
],
q(santa maria quiegolani zapotec) => [
- q(7931),
+ q(7920),
q(0),
],
q(santa maria zacatepec mixtec) => [
- q(4703),
+ q(4693),
q(0),
],
q(santa teresa cora) => [
- q(1822),
+ q(1817),
q(0),
],
q(santali) => [
@@ -49576,95 +49610,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(santiago del estero quichua) => [
- q(5702),
+ q(5693),
q(0),
],
q(santiago xanica zapotec) => [
- q(7940),
+ q(7929),
q(0),
],
q(santo domingo albarradas zapotec) => [
- q(7830),
+ q(7819),
q(0),
],
q(sanuma) => [
- q(7511),
+ q(7503),
q(0),
],
q(sao paulo kaingang) => [
- q(7875),
+ q(7864),
q(0),
],
q(saotomense) => [
- q(1854),
+ q(1849),
q(0),
],
q(saparua) => [
- q(6199),
+ q(6190),
q(0),
],
q(sape) => [
- q(6188),
+ q(6178),
q(0),
],
q(sapo) => [
- q(3586),
+ q(3583),
q(0),
],
q(saponi) => [
- q(6192),
+ q(6182),
q(0),
],
q(saposa) => [
- q(6200),
+ q(6191),
q(0),
],
q(sapuan) => [
- q(6202),
+ q(6193),
q(0),
],
q(sar) => [
- q(4643),
+ q(4633),
q(0),
],
q(sara) => [
- q(6220),
- q(0),
- ],
- q(sara dunjo) => [
- q(3514),
+ q(6211),
q(0),
],
q(sara kaba) => [
- q(5935),
+ q(5926),
q(0),
],
q(sara kaba deme) => [
- q(3701),
+ q(3698),
q(0),
],
q(sara kaba naa) => [
- q(3716),
+ q(3712),
+ q(0),
+ ],
+ q(saraiki) => [
+ q(6086),
q(0),
],
q(saramaccan) => [
- q(6227),
+ q(6218),
q(0),
],
q(sarangani blaan) => [
- q(1393),
+ q(1389),
q(0),
],
q(sarangani manobo) => [
- q(4152),
+ q(4144),
q(0),
],
q(sarasira) => [
- q(7956),
+ q(7945),
q(0),
],
q(saraveca) => [
- q(5903),
+ q(5894),
q(0),
],
q(sardinian) => [
@@ -49672,35 +49706,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sari) => [
- q(0895),
+ q(0894),
q(0),
],
q(sarikoli) => [
- q(6223),
+ q(6214),
q(0),
],
q(sarli) => [
- q(5955),
+ q(5946),
q(0),
],
q(sarsi) => [
- q(6230),
+ q(6221),
q(0),
],
q(sartang) => [
- q(5283),
+ q(5275),
q(0),
],
q(sarua) => [
- q(6329),
+ q(6320),
q(0),
],
q(sarudu) => [
- q(5968),
+ q(5959),
q(0),
],
q(saruga) => [
- q(6217),
+ q(6208),
q(0),
],
q(sasak) => [
@@ -49708,83 +49742,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sasaru) => [
- q(6340),
+ q(6331),
q(0),
],
q(sassarese sardinian) => [
- q(5953),
+ q(5944),
q(0),
],
q(satawalese) => [
- q(6283),
+ q(6274),
q(0),
],
q(satere-mawe) => [
- q(4131),
+ q(4123),
q(0),
],
q(saterfriesisch) => [
- q(6277),
+ q(6268),
q(0),
],
q(saudi arabian sign language) => [
- q(5960),
+ q(5951),
q(0),
],
q(sauraseni prakrit) => [
- q(5633),
+ q(5624),
q(0),
],
q(saurashtra) => [
- q(5909),
+ q(5900),
q(0),
],
q(sauri) => [
- q(6231),
+ q(6222),
q(0),
],
q(sauria paharia) => [
- q(4345),
+ q(4336),
q(0),
],
q(sause) => [
- q(5900),
+ q(5892),
q(0),
],
q(sausi) => [
- q(6246),
+ q(6237),
q(0),
],
q(savara) => [
- q(6305),
+ q(6296),
q(0),
],
q(savi) => [
- q(5956),
+ q(5947),
q(0),
],
q(savosavo) => [
- q(6306),
+ q(6297),
q(0),
],
q(sawai) => [
- q(6364),
+ q(6356),
q(0),
],
q(saweru) => [
- q(6322),
+ q(6313),
q(0),
],
q(sawi) => [
- q(5906),
+ q(5897),
q(0),
],
q(sawila) => [
- q(6324),
+ q(6315),
q(0),
],
q(sawknah) => [
- q(6318),
+ q(6309),
q(0),
],
q(saxon, low) => [
@@ -49792,15 +49826,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(3),
],
q(saxwe gbe) => [
- q(6342),
+ q(6333),
q(0),
],
q(saya) => [
- q(5908),
+ q(5899),
q(0),
],
q(sayula popoluca) => [
- q(5574),
+ q(5565),
q(0),
],
q(scots) => [
@@ -49812,135 +49846,139 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(scythian) => [
- q(7497),
+ q(7490),
q(0),
],
q(sea island creole english) => [
- q(2655),
+ q(2652),
q(0),
],
q(seba) => [
- q(3242),
+ q(3239),
q(0),
],
q(sebat bet gurage) => [
- q(6015),
+ q(6005),
q(0),
],
q(seberuang) => [
- q(5933),
+ q(5924),
q(0),
],
q(sebop) => [
- q(6044),
+ q(6034),
q(0),
],
q(sebuyau) => [
- q(6144),
+ q(6134),
q(0),
],
q(sechelt) => [
- q(5973),
+ q(5964),
q(0),
],
q(secoya) => [
- q(5992),
+ q(5983),
q(0),
],
q(sedang) => [
- q(5974),
+ q(5965),
q(0),
],
q(sedoa) => [
- q(6798),
+ q(6789),
q(0),
],
q(seeku) => [
- q(6180),
+ q(6170),
q(0),
],
q(segai) => [
- q(6002),
+ q(5993),
q(0),
],
q(segeju) => [
- q(5977),
+ q(5968),
q(0),
],
q(seget) => [
- q(5916),
+ q(5907),
q(0),
],
q(sehwi) => [
- q(5998),
+ q(5989),
q(0),
],
q(seimat) => [
- q(6243),
+ q(6234),
q(0),
],
q(seit-kaitetu) => [
- q(2764),
+ q(2761),
q(0),
],
q(sekani) => [
- q(5981),
+ q(5972),
q(0),
],
q(sekapan) => [
- q(6094),
+ q(6084),
q(0),
],
q(sekar) => [
- q(6104),
+ q(6094),
q(0),
],
q(seke (nepal)) => [
- q(6089),
+ q(6079),
q(0),
],
q(seke (vanuatu)) => [
- q(6084),
+ q(6074),
+ q(0),
+ ],
+ q(sekele) => [
+ q(6974),
q(0),
],
q(seki) => [
- q(6345),
+ q(6336),
q(0),
],
q(seko padang) => [
- q(6102),
+ q(6092),
q(0),
],
q(seko tengah) => [
- q(6093),
+ q(6083),
q(0),
],
q(sekpele) => [
- q(3928),
+ q(3921),
q(0),
],
q(selangor sign language) => [
- q(3318),
+ q(3315),
q(0),
],
q(selaru) => [
- q(6120),
+ q(6110),
q(0),
],
q(selayar) => [
- q(6123),
+ q(6113),
q(0),
],
q(selee) => [
- q(6162),
+ q(6152),
q(0),
],
q(selepet) => [
- q(6194),
+ q(6184),
q(0),
],
q(selian) => [
- q(6335),
+ q(6326),
q(0),
],
q(selkup) => [
@@ -49948,35 +49986,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(selungai murut) => [
- q(6108),
+ q(6098),
q(0),
],
q(seluwasan) => [
- q(6323),
+ q(6314),
q(0),
],
q(semai) => [
- q(5971),
+ q(5962),
q(0),
],
q(semandang) => [
- q(5961),
+ q(5952),
q(0),
],
q(semaq beri) => [
- q(6356),
+ q(6348),
q(0),
],
q(sembakung murut) => [
- q(5927),
+ q(5918),
q(0),
],
q(semelai) => [
- q(6354),
+ q(6346),
q(0),
],
q(semimi) => [
- q(2316),
+ q(2312),
q(0),
],
q(semitic languages) => [
@@ -49984,83 +50022,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(semnam) => [
- q(6249),
+ q(6240),
q(0),
],
q(semnani) => [
- q(6142),
+ q(6132),
q(0),
],
q(sempan) => [
- q(7499),
+ q(7492),
q(0),
],
q(sena) => [
- q(5978),
+ q(5969),
q(0),
],
q(senara senoufo) => [
- q(5985),
+ q(5976),
q(0),
],
q(senaya) => [
- q(6349),
+ q(6340),
q(0),
],
q(sene) => [
- q(5980),
+ q(5971),
q(0),
],
q(seneca) => [
- q(5975),
+ q(5966),
q(0),
],
q(sened) => [
- q(5966),
+ q(5957),
q(0),
],
q(sengele) => [
- q(6359),
+ q(6351),
q(0),
],
q(senggi) => [
- q(6160),
+ q(6150),
q(0),
],
q(sengo) => [
- q(6193),
+ q(6183),
q(0),
],
q(sengseng) => [
- q(6261),
+ q(6252),
q(0),
],
q(senhaja de srair) => [
- q(6076),
+ q(6066),
q(0),
],
q(sensi) => [
- q(6150),
+ q(6140),
q(0),
],
q(sentani) => [
- q(5988),
+ q(5979),
q(0),
],
q(senthang chin) => [
- q(5993),
+ q(5984),
q(0),
],
q(sentinel) => [
- q(6264),
+ q(6255),
q(0),
],
q(sepa (indonesia)) => [
- q(6187),
+ q(6177),
q(0),
],
q(sepa (papua new guinea)) => [
- q(6190),
+ q(6180),
q(0),
],
q(sepedi) => [
@@ -50068,16 +50106,16 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(sepik iwam) => [
- q(3034),
+ q(3031),
q(0),
],
q(sera) => [
- q(6236),
+ q(6227),
q(0),
],
q(seraiki) => [
- q(6096),
- q(0),
+ q(6086),
+ q(1),
],
q(serbian) => [
q(0404),
@@ -50088,7 +50126,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sere) => [
- q(6310),
+ q(6301),
q(0),
],
q(serer) => [
@@ -50096,103 +50134,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(seri) => [
- q(5979),
+ q(5970),
q(0),
],
q(serili) => [
- q(6302),
+ q(6293),
q(0),
],
q(seroa) => [
- q(3570),
+ q(3567),
q(0),
],
q(serrano) => [
- q(5986),
+ q(5977),
q(0),
],
q(seru) => [
- q(6357),
+ q(6349),
q(0),
],
q(serua) => [
- q(6234),
+ q(6225),
q(0),
],
q(serudung murut) => [
- q(6225),
+ q(6216),
q(0),
],
q(serui-laut) => [
- q(5989),
+ q(5980),
q(0),
],
q(seselwa creole french) => [
- q(1863),
+ q(1858),
q(0),
],
q(seta) => [
- q(6266),
+ q(6257),
q(0),
],
q(setaman) => [
- q(6273),
+ q(6264),
q(0),
],
q(seti) => [
- q(5918),
+ q(5909),
q(0),
],
q(settla) => [
- q(6262),
+ q(6253),
q(0),
],
q(severn ojibwa) => [
- q(5230),
+ q(5221),
q(0),
],
q(sewa bay) => [
- q(5991),
+ q(5982),
q(0),
],
q(seze) => [
- q(6358),
+ q(6350),
q(0),
],
q(sha) => [
- q(5949),
+ q(5940),
q(0),
],
q(shabak) => [
- q(5952),
+ q(5943),
q(0),
],
q(shabo) => [
- q(5915),
- q(0),
+ q(5906),
+ q(1),
],
q(shahmirzadi) => [
- q(6237),
+ q(6228),
q(0),
],
q(shahrudi) => [
- q(6030),
+ q(6020),
q(0),
],
q(shall-zwall) => [
- q(6019),
+ q(6009),
q(0),
],
q(shama-sambuga) => [
- q(6206),
+ q(6197),
q(0),
],
q(shamang) => [
- q(7500),
+ q(7493),
q(0),
],
q(shambala) => [
- q(3597),
+ q(3594),
q(0),
],
q(shan) => [
@@ -50200,135 +50238,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(shanenawa) => [
- q(6319),
+ q(6310),
q(0),
],
q(shanga) => [
- q(6031),
+ q(6021),
q(0),
],
q(shangzhai) => [
- q(3100),
+ q(3097),
q(1),
],
q(sharanahua) => [
- q(4163),
+ q(4155),
q(0),
],
q(shark bay) => [
- q(6258),
+ q(6249),
q(0),
],
q(sharwa) => [
- q(6321),
+ q(6312),
q(0),
],
q(shasta) => [
- q(6036),
+ q(6026),
q(0),
],
q(shatt) => [
- q(6027),
+ q(6017),
q(0),
],
q(shau) => [
- q(6207),
+ q(6198),
q(0),
],
q(shawnee) => [
- q(6079),
+ q(6069),
q(0),
],
q(she) => [
- q(6040),
+ q(6030),
q(0),
],
q(shehri) => [
- q(6038),
+ q(6028),
q(0),
],
q(shekhawati) => [
- q(6326),
+ q(6317),
q(0),
],
q(shekkacho) => [
- q(4462),
+ q(4453),
q(0),
],
q(sheko) => [
- q(6023),
+ q(6013),
q(0),
],
q(shelta) => [
- q(6268),
+ q(6259),
q(0),
],
q(shempire senoufo) => [
- q(5972),
+ q(5963),
q(0),
],
q(shendu) => [
- q(6029),
+ q(6019),
q(0),
],
q(sheni) => [
- q(5948),
+ q(5939),
q(0),
],
q(sherbro) => [
- q(1508),
+ q(1504),
q(0),
],
q(sherdukpen) => [
- q(5964),
+ q(5955),
q(0),
],
q(sherpa) => [
- q(7509),
+ q(7501),
q(0),
],
q(sheshi kham) => [
- q(3370),
+ q(3367),
q(0),
],
q(shi) => [
- q(6034),
+ q(6024),
q(0),
],
q(shihhi arabic) => [
- q(6244),
+ q(6235),
q(0),
],
q(shiki) => [
- q(2645),
+ q(2642),
q(0),
],
q(shilluk) => [
- q(6028),
+ q(6018),
q(0),
],
q(shina) => [
- q(5943),
+ q(5934),
q(0),
],
q(shinabo) => [
- q(6149),
+ q(6139),
q(0),
],
q(shipibo-conibo) => [
- q(6032),
+ q(6022),
q(0),
],
q(shixing) => [
- q(6333),
+ q(6324),
q(0),
],
q(sholaga) => [
- q(6106),
+ q(6096),
q(0),
],
q(shom peng) => [
- q(6049),
+ q(6039),
q(0),
],
q(shona) => [
@@ -50336,107 +50374,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(shoo-minda-nye) => [
- q(1087),
+ q(1084),
q(0),
],
q(shor) => [
- q(1756),
+ q(1751),
q(0),
],
q(shoshoni) => [
- q(6025),
+ q(6015),
q(0),
],
q(shua) => [
- q(6024),
+ q(6014),
q(0),
],
q(shuadit) => [
- q(5967),
+ q(5958),
q(0),
],
q(shuar) => [
- q(3108),
+ q(3105),
q(0),
],
q(shubi) => [
- q(6291),
+ q(6282),
q(0),
],
q(shughni) => [
- q(6004),
+ q(5995),
q(0),
],
q(shumashti) => [
- q(6279),
+ q(6270),
q(0),
],
q(shumcho) => [
- q(5947),
+ q(5938),
q(0),
],
q(shuswap) => [
- q(6035),
+ q(6025),
q(0),
],
q(shuwa-zamani) => [
- q(3596),
+ q(3593),
q(0),
],
q(shwai) => [
- q(6039),
+ q(6029),
q(0),
],
q(shwe palaung) => [
- q(5502),
+ q(5494),
q(0),
],
q(sialum) => [
- q(6121),
+ q(6111),
q(0),
],
q(siamou) => [
- q(6046),
+ q(6036),
q(0),
],
q(sian) => [
- q(6191),
+ q(6181),
q(0),
],
q(siane) => [
- q(6156),
+ q(6146),
q(0),
],
q(siang) => [
- q(6343),
+ q(6334),
q(0),
],
q(siar-lak) => [
- q(6075),
+ q(6065),
q(0),
],
q(siawi) => [
- q(4413),
+ q(4404),
q(0),
],
q(sibe) => [
- q(4785),
+ q(4775),
q(0),
],
q(siberian tatar) => [
- q(6284),
+ q(6275),
q(0),
],
q(sibu melanau) => [
- q(5969),
+ q(5960),
q(0),
],
q(sicanian) => [
- q(6331),
+ q(6322),
q(0),
],
q(sicel) => [
- q(5950),
+ q(5941),
q(0),
],
q(sichuan yi) => [
@@ -50448,11 +50486,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sicite senoufo) => [
- q(5984),
+ q(5975),
q(0),
],
q(siculo arabic) => [
- q(6213),
+ q(6204),
q(0),
],
q(sidamo) => [
@@ -50460,27 +50498,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sidetic) => [
- q(7498),
+ q(7491),
q(0),
],
q(sie) => [
- q(2286),
+ q(2281),
q(0),
],
q(sierra de juarez zapotec) => [
- q(7814),
+ q(7803),
q(0),
],
q(sierra leone sign language) => [
- q(6016),
+ q(6006),
q(0),
],
q(sierra negra nahuatl) => [
- q(5092),
+ q(5082),
q(0),
],
q(sighu) => [
- q(6332),
+ q(6323),
q(0),
],
q(sign languages) => [
@@ -50488,31 +50526,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sihan) => [
- q(6158),
+ q(6148),
q(0),
],
q(sihuas ancash quechua) => [
- q(5727),
+ q(5718),
q(0),
],
q(sika) => [
- q(6088),
+ q(6078),
q(0),
],
q(sikaiana) => [
- q(6103),
+ q(6093),
q(0),
],
q(sikaritai) => [
- q(6766),
+ q(6757),
q(0),
],
q(sikiana) => [
- q(6051),
+ q(6041),
q(0),
],
q(sikkimese) => [
- q(6054),
+ q(6044),
q(0),
],
q(siksika) => [
@@ -50520,87 +50558,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sikule) => [
- q(6087),
+ q(6077),
q(0),
],
q(sila) => [
- q(6119),
+ q(6109),
q(0),
],
q(silacayoapan mixtec) => [
- q(4368),
+ q(4359),
q(0),
],
q(sileibi) => [
- q(5926),
+ q(5917),
q(0),
],
q(silesian) => [
- q(6360),
+ q(6352),
q(0),
],
q(silimo) => [
- q(7258),
+ q(7249),
q(0),
],
q(siliput) => [
- q(4354),
+ q(4345),
q(0),
],
q(silopi) => [
- q(7507),
+ q(7499),
q(0),
],
q(silt'e) => [
- q(6282),
+ q(6273),
q(0),
],
q(simaa) => [
- q(6045),
+ q(6035),
q(0),
],
q(simba) => [
- q(5932),
+ q(5923),
q(0),
],
q(simbali) => [
- q(6129),
+ q(6119),
q(0),
],
q(simbari) => [
- q(6125),
+ q(6115),
q(0),
],
q(simbo) => [
- q(5911),
+ q(5902),
q(0),
],
q(simeku) => [
- q(6143),
+ q(6133),
q(0),
],
q(simeulue) => [
- q(6136),
+ q(6126),
q(0),
],
q(simte) => [
- q(6137),
+ q(6127),
q(0),
],
q(sinagen) => [
- q(6058),
+ q(6048),
q(0),
],
q(sinasina) => [
- q(6256),
+ q(6247),
q(0),
],
q(sinaugoro) => [
- q(6145),
+ q(6135),
q(0),
],
q(sindarin) => [
- q(6072),
+ q(6062),
q(0),
],
q(sindhi) => [
@@ -50608,23 +50646,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sindhi bhil) => [
- q(5923),
+ q(5914),
q(0),
],
q(sindihui mixtec) => [
- q(7530),
+ q(7522),
q(0),
],
q(singa) => [
- q(6008),
+ q(5999),
q(0),
],
q(singapore sign language) => [
- q(6118),
+ q(6108),
q(0),
],
q(singpho) => [
- q(6010),
+ q(6000),
q(0),
],
q(sinhala) => [
@@ -50636,15 +50674,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(sinicahua mixtec) => [
- q(7521),
+ q(7513),
q(0),
],
q(sinicized miao) => [
- q(2802),
+ q(2799),
q(1),
],
q(sininkere) => [
- q(6095),
+ q(6085),
q(0),
],
q(sino-tibetan languages) => [
@@ -50652,23 +50690,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sinsauru) => [
- q(6165),
+ q(6155),
q(0),
],
q(sinte romani) => [
- q(5826),
+ q(5817),
q(0),
],
q(sinyar) => [
- q(6351),
+ q(6342),
q(0),
],
q(sio) => [
- q(7501),
+ q(7494),
q(0),
],
q(siona) => [
- q(6154),
+ q(6144),
q(0),
],
q(siouan languages) => [
@@ -50676,87 +50714,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sipacapense) => [
- q(5697),
+ q(5688),
q(0),
],
q(sira) => [
- q(6314),
+ q(6305),
q(0),
],
q(siraya) => [
- q(2371),
+ q(2367),
q(0),
],
q(sirenik yupik) => [
- q(7762),
+ q(7752),
q(0),
],
q(siri) => [
- q(6056),
+ q(6046),
q(0),
],
q(siriano) => [
- q(6224),
+ q(6215),
q(0),
],
q(siriono) => [
- q(6229),
+ q(6220),
q(0),
],
q(sirmauri) => [
- q(6235),
+ q(6226),
q(0),
],
q(siroi) => [
- q(6240),
+ q(6231),
q(0),
],
q(sishee) => [
- q(6048),
+ q(6038),
q(1),
],
q(sissala) => [
- q(6105),
+ q(6095),
q(0),
],
q(sissano) => [
- q(6251),
+ q(6242),
q(0),
],
q(siuslaw) => [
- q(6057),
+ q(6047),
q(0),
],
q(sivandi) => [
- q(6062),
+ q(6052),
q(0),
],
q(siwai) => [
- q(6060),
+ q(6050),
q(0),
],
q(siwi) => [
- q(6063),
+ q(6053),
q(0),
],
q(siwu) => [
- q(0736),
+ q(0734),
q(0),
],
q(siyin chin) => [
- q(1890),
+ q(1885),
q(0),
],
q(skagit) => [
- q(6080),
+ q(6070),
q(0),
],
q(skalvian) => [
- q(6307),
+ q(6298),
q(0),
],
q(skepi creole dutch) => [
- q(6101),
+ q(6091),
q(0),
],
q(skolt sami) => [
@@ -50764,7 +50802,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(skou) => [
- q(6100),
+ q(6090),
q(0),
],
q(slave (athapascan)) => [
@@ -50776,7 +50814,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(slavomolisano) => [
- q(6304),
+ q(6295),
q(0),
],
q(slovak) => [
@@ -50784,7 +50822,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(slovakian sign language) => [
- q(6303),
+ q(6294),
q(0),
],
q(slovenian) => [
@@ -50792,43 +50830,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(small flowery miao) => [
- q(5996),
+ q(5987),
q(0),
],
q(smarky kanum) => [
- q(3736),
+ q(3731),
q(0),
],
q(snohomish) => [
- q(6155),
+ q(6145),
q(0),
],
q(so) => [
- q(6255),
+ q(6246),
q(0),
],
q(so (democratic republic of congo)) => [
- q(6168),
+ q(6158),
q(0),
],
q(so'a) => [
- q(6253),
+ q(6244),
q(0),
],
q(sobei) => [
- q(6167),
+ q(6157),
q(0),
],
q(sochiapam chinantec) => [
- q(1883),
+ q(1878),
q(0),
],
q(sochiapan chinantec) => [
- q(1883),
+ q(1878),
q(1),
],
q(soga) => [
- q(7454),
+ q(7447),
q(0),
],
q(sogdian) => [
@@ -50836,35 +50874,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(soi) => [
- q(6173),
+ q(6163),
q(0),
],
q(sok) => [
- q(6090),
+ q(6080),
q(0),
],
q(sokoro) => [
- q(6174),
+ q(6164),
q(0),
],
q(solano) => [
- q(7506),
+ q(7498),
q(0),
],
q(soli) => [
- q(5934),
+ q(5925),
q(0),
],
q(solong) => [
- q(0557),
+ q(0556),
q(0),
],
q(solos) => [
- q(6175),
+ q(6165),
q(0),
],
q(som) => [
- q(6126),
+ q(6116),
q(0),
],
q(somali) => [
@@ -50872,35 +50910,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(somba-siawari) => [
- q(1325),
+ q(1322),
q(0),
],
q(somrai) => [
- q(6179),
+ q(6169),
q(0),
],
q(somray) => [
- q(6138),
+ q(6128),
q(0),
],
q(somyev) => [
- q(3329),
+ q(3326),
q(0),
],
q(sonaga) => [
- q(7757),
+ q(7747),
q(0),
],
q(sonde) => [
- q(6021),
- q(0),
- ],
- q(songa) => [
- q(6009),
+ q(6011),
q(0),
],
q(songe) => [
- q(6177),
+ q(6167),
q(0),
],
q(songhai languages) => [
@@ -50908,27 +50942,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(songlai chin) => [
- q(1878),
+ q(1873),
q(0),
],
q(songo) => [
- q(6176),
+ q(6166),
q(0),
],
q(songomeno) => [
- q(6170),
+ q(6160),
q(0),
],
q(songoora) => [
- q(6169),
+ q(6159),
q(0),
],
q(sonha) => [
- q(6172),
+ q(6162),
q(0),
],
q(sonia) => [
- q(6055),
+ q(6045),
q(0),
],
q(soninke) => [
@@ -50936,23 +50970,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sonsorol) => [
- q(6182),
+ q(6172),
q(0),
],
q(soo) => [
- q(6472),
+ q(6464),
q(0),
],
q(sop) => [
- q(6952),
+ q(6943),
q(0),
],
q(soqotri) => [
- q(6215),
+ q(6206),
q(0),
],
q(sora) => [
- q(6218),
+ q(6209),
q(0),
],
q(sorbian languages) => [
@@ -50960,27 +50994,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sori-harengan) => [
- q(5917),
+ q(5908),
q(0),
],
q(sorkhei) => [
- q(6211),
+ q(6202),
q(0),
],
q(sorothaptic) => [
- q(6338),
+ q(6329),
q(0),
],
q(sorsogon ayta) => [
- q(1009),
+ q(1006),
q(0),
],
q(sos kundi) => [
- q(5959),
+ q(5950),
q(0),
],
q(sota kanum) => [
- q(3595),
+ q(3592),
q(0),
],
q(sotho, southern) => [
@@ -50988,11 +51022,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sou) => [
- q(6212),
+ q(6203),
q(0),
],
q(south african sign language) => [
- q(5997),
+ q(5988),
q(0),
],
q(south american indian (other)) => [
@@ -51004,15 +51038,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(south awyu) => [
- q(0980),
+ q(0977),
q(0),
],
q(south azerbaijani) => [
- q(1015),
+ q(1012),
q(0),
],
q(south bolivian quechua) => [
- q(5693),
+ q(5684),
q(0),
],
q(south caucasian languages) => [
@@ -51020,39 +51054,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(south central banda) => [
- q(4013),
+ q(4005),
q(0),
],
q(south central dinka) => [
- q(2040),
+ q(2035),
q(0),
],
q(south efate) => [
- q(2289),
+ q(2284),
q(0),
],
q(south fali) => [
- q(2334),
+ q(2330),
q(0),
],
q(south giziga) => [
- q(2534),
+ q(2530),
q(0),
],
q(south lembata) => [
- q(3987),
+ q(3980),
q(0),
],
q(south levantine arabic) => [
- q(0719),
+ q(0717),
q(0),
],
q(south marquesan) => [
- q(4500),
+ q(4491),
q(0),
],
q(south muyu) => [
- q(3640),
+ q(3637),
q(0),
],
q(south ndebele) => [
@@ -51060,15 +51094,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(south nuaulu) => [
- q(5157),
+ q(5147),
q(0),
],
q(south picene) => [
- q(6204),
+ q(6195),
q(0),
],
q(south slavey) => [
- q(7503),
+ q(7495),
q(0),
],
q(south slavic languages) => [
@@ -51076,71 +51110,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(south tairora) => [
- q(5272),
+ q(5264),
q(0),
],
q(south ucayali asheninka) => [
- q(1845),
+ q(1840),
q(0),
],
q(south watut) => [
- q(4184),
+ q(4176),
q(0),
],
q(south west bay) => [
- q(6159),
+ q(6149),
q(0),
],
q(southeast ambrym) => [
- q(6791),
+ q(6782),
q(0),
],
q(southeast babar) => [
- q(6994),
+ q(6985),
q(0),
],
q(southeast ijo) => [
- q(2941),
+ q(2938),
q(0),
],
- q(southeast pashayi) => [
- q(5623),
+ q(southeast pashai) => [
+ q(5614),
q(0),
],
+ q(southeast pashayi) => [
+ q(5614),
+ q(1),
+ ],
q(southeastern dinka) => [
- q(2080),
+ q(2075),
q(0),
],
q(southeastern ixtlan zapotec) => [
- q(7926),
+ q(7915),
q(0),
],
q(southeastern kolami) => [
- q(4908),
+ q(4898),
q(0),
],
q(southeastern nochixtlan mixtec) => [
- q(4680),
+ q(4670),
q(0),
],
q(southeastern pomo) => [
- q(5570),
+ q(5561),
q(0),
],
q(southeastern puebla nahuatl) => [
- q(5047),
+ q(5036),
q(0),
],
q(southeastern tarahumara) => [
- q(6430),
+ q(6422),
q(0),
],
q(southeastern tepehuan) => [
- q(6276),
+ q(6267),
q(0),
],
q(southern alta) => [
- q(0677),
+ q(0675),
q(0),
],
q(southern altai) => [
@@ -51148,223 +51186,223 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(southern amami-oshima) => [
- q(0784),
+ q(0782),
q(0),
],
q(southern aymara) => [
- q(0996),
+ q(0993),
q(0),
],
q(southern bai) => [
- q(1156),
+ q(1153),
q(0),
],
q(southern balochi) => [
- q(1068),
+ q(1065),
q(0),
],
q(southern betsimisaraka malagasy) => [
- q(1620),
+ q(1614),
q(0),
],
q(southern binukidnon) => [
- q(4585),
+ q(4576),
q(0),
],
q(southern birifor) => [
- q(1228),
+ q(1225),
q(0),
],
q(southern bobo madare) => [
- q(1561),
+ q(1557),
q(0),
],
q(southern bontok) => [
- q(5198),
+ q(5189),
q(0),
],
q(southern carrier) => [
- q(1648),
+ q(1642),
q(0),
],
q(southern catanduanes bikol) => [
- q(1293),
+ q(1290),
q(0),
],
q(southern conchucos ancash quechua) => [
- q(5734),
+ q(5725),
q(0),
],
q(southern dagaare) => [
- q(2008),
+ q(2003),
q(0),
],
q(southern dong) => [
- q(3457),
+ q(3455),
q(0),
],
q(southern east cree) => [
- q(1855),
+ q(1850),
q(0),
],
q(southern ghale) => [
- q(2508),
+ q(2504),
q(0),
],
q(southern gondi) => [
- q(2502),
+ q(2498),
q(0),
],
q(southern grebo) => [
- q(2621),
+ q(2619),
q(0),
],
q(southern guiyang hmong) => [
- q(2801),
+ q(2798),
q(0),
],
q(southern guiyang miao) => [
- q(2801),
+ q(2798),
q(1),
],
q(southern haida) => [
- q(2732),
+ q(2729),
q(0),
],
q(southern hindko) => [
- q(2804),
+ q(2801),
q(0),
],
q(southern kalapuya) => [
- q(6334),
+ q(6325),
q(0),
],
q(southern kalinga) => [
- q(3598),
+ q(3595),
q(0),
],
q(southern kisi) => [
- q(3614),
+ q(3611),
q(0),
],
q(southern kiwai) => [
- q(3383),
+ q(3380),
q(0),
],
q(southern kurdish) => [
- q(5957),
+ q(5948),
q(0),
],
q(southern lolopo) => [
- q(7761),
+ q(7751),
q(0),
],
q(southern luri) => [
- q(4100),
+ q(4092),
q(0),
],
q(southern ma'di) => [
- q(6153),
+ q(6143),
q(0),
],
q(southern mashan hmong) => [
- q(2780),
+ q(2777),
q(0),
],
q(southern mashan miao) => [
- q(2780),
+ q(2777),
q(1),
],
q(southern mnong) => [
- q(4434),
+ q(4425),
q(0),
],
q(southern muji) => [
- q(7695),
+ q(7687),
q(0),
],
q(southern nago) => [
- q(5053),
+ q(5042),
q(0),
],
q(southern nambikuara) => [
- q(4729),
+ q(4719),
q(0),
],
q(southern ngbandi) => [
- q(4769),
+ q(4759),
q(0),
],
q(southern nicobarese) => [
- q(4900),
+ q(4890),
q(0),
],
q(southern nisu) => [
- q(5077),
+ q(5067),
q(0),
],
q(southern nuni) => [
- q(5018),
+ q(5008),
q(0),
],
q(southern ohlone) => [
- q(1886),
+ q(1881),
q(0),
],
q(southern one) => [
- q(5322),
+ q(5314),
q(0),
],
q(southern pame) => [
- q(5537),
+ q(5528),
q(0),
],
q(southern pashto) => [
- q(5385),
+ q(5376),
q(0),
],
q(southern pastaza quechua) => [
- q(5699),
+ q(5690),
q(0),
],
q(southern pomo) => [
- q(5425),
+ q(5416),
q(0),
],
q(southern puebla mixtec) => [
- q(4323),
+ q(4314),
q(0),
],
q(southern puget sound salish) => [
- q(6109),
+ q(6099),
q(0),
],
q(southern pumi) => [
- q(5523),
+ q(5515),
q(0),
],
q(southern qiandong miao) => [
- q(2796),
+ q(2793),
q(0),
],
q(southern qiang) => [
- q(5738),
+ q(5729),
q(0),
],
q(southern rengma naga) => [
- q(5062),
+ q(5051),
q(0),
],
q(southern rincon zapotec) => [
- q(7960),
+ q(7949),
q(0),
],
q(southern roglai) => [
- q(5790),
+ q(5781),
q(0),
],
q(southern sama) => [
- q(6238),
+ q(6229),
q(0),
],
q(southern sami) => [
@@ -51372,15 +51410,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(southern samo) => [
- q(5913),
+ q(5904),
q(0),
],
q(southern sierra miwok) => [
- q(6083),
+ q(6073),
q(0),
],
q(southern sorsoganon) => [
- q(6233),
+ q(6224),
q(0),
],
q(southern sotho) => [
@@ -51388,119 +51426,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(southern subanen) => [
- q(3797),
+ q(3792),
q(0),
],
q(southern thai) => [
- q(6181),
+ q(6171),
q(0),
],
q(southern tiwa) => [
- q(6543),
+ q(6534),
q(0),
],
q(southern toussian) => [
- q(7135),
+ q(7126),
q(0),
],
q(southern tujia) => [
- q(6553),
+ q(6544),
q(0),
],
q(southern tutchone) => [
- q(6416),
+ q(6408),
q(0),
],
q(southern uzbek) => [
- q(6977),
+ q(6968),
q(0),
],
q(southern yamphu) => [
- q(4059),
+ q(4051),
q(0),
],
q(southern yukaghir) => [
- q(7789),
+ q(7778),
q(0),
],
q(southwest gbaya) => [
- q(2639),
+ q(2637),
q(0),
],
q(southwest palawano) => [
- q(5511),
+ q(5503),
q(0),
],
- q(southwest pashayi) => [
- q(5622),
+ q(southwest pashai) => [
+ q(5613),
q(0),
],
+ q(southwest pashayi) => [
+ q(5613),
+ q(1),
+ ],
q(southwest tanna) => [
- q(5145),
+ q(5135),
q(0),
],
q(southwestern bontok) => [
- q(6995),
+ q(6986),
q(0),
],
q(southwestern dinka) => [
- q(2048),
+ q(2043),
q(0),
],
q(southwestern fars) => [
- q(2340),
+ q(2336),
q(0),
],
q(southwestern guiyang hmong) => [
- q(2786),
+ q(2783),
q(0),
],
q(southwestern huishui hmong) => [
- q(2787),
+ q(2784),
q(0),
],
q(southwestern huishui miao) => [
- q(2787),
+ q(2784),
q(1),
],
q(southwestern nisu) => [
- q(5093),
- q(0),
- ],
- q(southwestern tamang) => [
- q(6725),
+ q(5083),
q(0),
],
q(southwestern tarahumara) => [
- q(6814),
+ q(6805),
q(0),
],
q(southwestern tepehuan) => [
- q(6573),
+ q(6565),
q(0),
],
q(southwestern tlaxiaco mixtec) => [
- q(4215),
+ q(4207),
q(0),
],
q(sowa) => [
- q(6327),
+ q(6318),
q(0),
],
q(sowanda) => [
- q(6183),
+ q(6173),
q(0),
],
q(sowari) => [
- q(2102),
+ q(2097),
q(1),
],
q(soyaltepec mazatec) => [
- q(7039),
+ q(7030),
q(0),
],
q(soyaltepec mixtec) => [
- q(7040),
+ q(7031),
q(0),
],
q(spanish) => [
@@ -51508,19 +51546,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(spanish sign language) => [
- q(6252),
+ q(6243),
q(0),
],
q(spiti bhoti) => [
- q(6201),
+ q(6192),
q(0),
],
q(spokane) => [
- q(6196),
+ q(6187),
q(0),
],
q(squamish) => [
- q(6216),
+ q(6207),
q(0),
],
q(sranan tongo) => [
@@ -51528,27 +51566,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sri lankan creole malay) => [
- q(5941),
+ q(5932),
q(0),
],
q(sri lankan sign language) => [
- q(6214),
+ q(6205),
q(0),
],
q(standard arabic) => [
- q(0869),
+ q(0868),
q(0),
],
q(standard estonian) => [
- q(2241),
+ q(2235),
q(0),
],
q(standard latvian) => [
- q(4103),
+ q(4095),
q(0),
],
q(standard malay) => [
- q(7959),
+ q(7948),
q(0),
],
q(standard moroccan tamazight) => [
@@ -51556,99 +51594,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(stellingwerfs) => [
- q(6272),
+ q(6263),
q(0),
],
q(stod bhoti) => [
- q(5930),
+ q(5921),
q(0),
],
q(stodsde) => [
- q(3100),
+ q(3097),
q(0),
],
q(stoney) => [
- q(6275),
+ q(6266),
q(0),
],
q(straits salish) => [
- q(6278),
+ q(6269),
q(0),
],
q(suabo) => [
- q(6362),
+ q(6354),
q(0),
],
q(suarmin) => [
- q(5983),
+ q(5974),
q(0),
],
q(suau) => [
- q(6320),
+ q(6311),
q(0),
],
q(suba) => [
- q(6330),
+ q(6321),
q(0),
],
q(suba-simbiti) => [
- q(6239),
- q(0),
- ],
- q(subi) => [
- q(7502),
+ q(6230),
q(0),
],
q(subiya) => [
- q(5928),
+ q(5919),
q(0),
],
q(subtiaba) => [
- q(6294),
+ q(6285),
q(0),
],
q(sudanese arabic) => [
- q(0838),
+ q(0836),
q(0),
],
q(sudanese creole arabic) => [
- q(5434),
+ q(5425),
q(0),
],
q(sudest) => [
- q(6492),
+ q(6484),
q(0),
],
q(sudovian) => [
- q(7512),
+ q(7504),
q(0),
],
q(suena) => [
- q(6288),
+ q(6279),
q(0),
],
q(suga) => [
- q(6005),
+ q(5996),
q(0),
],
q(suganga) => [
- q(6289),
+ q(6280),
q(0),
],
q(sugut dusun) => [
- q(3789),
+ q(3784),
q(0),
],
q(sui) => [
- q(6313),
+ q(6304),
q(0),
],
q(suki) => [
- q(6290),
+ q(6281),
q(0),
],
q(suku) => [
- q(6286),
+ q(6277),
q(0),
],
q(sukuma) => [
@@ -51656,43 +51690,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sukur) => [
- q(6346),
+ q(6337),
q(0),
],
q(sukurum) => [
- q(7961),
+ q(7950),
q(0),
],
q(sula) => [
- q(6361),
+ q(6353),
q(0),
],
q(sulka) => [
- q(6285),
+ q(6276),
q(0),
],
q(sulod) => [
- q(6222),
+ q(6213),
q(0),
],
q(suma) => [
- q(6209),
+ q(6200),
q(0),
],
q(sumariup) => [
- q(6059),
+ q(6049),
q(0),
],
q(sumau) => [
- q(6061),
+ q(6051),
q(0),
],
q(sumbawa) => [
- q(6140),
+ q(6130),
q(0),
],
q(sumbwa) => [
- q(6296),
+ q(6287),
q(0),
],
q(sumerian) => [
@@ -51700,15 +51734,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sumi naga) => [
- q(5085),
+ q(5075),
q(0),
],
q(sumtu chin) => [
- q(1888),
+ q(1883),
q(0),
],
q(sunam) => [
- q(6247),
+ q(6238),
q(0),
],
q(sundanese) => [
@@ -51716,75 +51750,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sunum) => [
- q(7704),
+ q(7696),
q(1),
],
q(sunwar) => [
- q(6298),
+ q(6289),
q(0),
],
q(suomenruotsalainen viittomakieli) => [
- q(2382),
+ q(2378),
q(2),
],
q(suoy) => [
- q(6350),
+ q(6341),
q(0),
],
q(supyire senoufo) => [
- q(6197),
+ q(6188),
q(0),
],
q(sur) => [
- q(6446),
+ q(6438),
q(0),
],
q(surayt) => [
- q(6714),
+ q(6706),
q(1),
],
q(surbakhal) => [
- q(5919),
+ q(5910),
q(0),
],
q(surgujia) => [
- q(6006),
+ q(5997),
q(0),
],
q(suri) => [
- q(6292),
+ q(6283),
q(0),
],
q(surigaonon) => [
- q(6001),
+ q(5992),
q(0),
],
q(surjapuri) => [
- q(6074),
+ q(6064),
q(0),
],
q(sursurunga) => [
- q(6018),
+ q(6008),
q(0),
],
q(suruaha) => [
- q(6328),
+ q(6319),
q(0),
],
q(surubu) => [
- q(5954),
+ q(5945),
q(0),
],
q(surui) => [
- q(6232),
+ q(6223),
q(0),
],
q(surui do para) => [
- q(4208),
+ q(4200),
q(0),
],
q(susquehannock) => [
- q(6210),
+ q(6201),
q(0),
],
q(susu) => [
@@ -51792,27 +51826,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(susuami) => [
- q(6257),
+ q(6248),
q(0),
],
q(suundi) => [
- q(5958),
+ q(5949),
q(0),
],
q(suwawa) => [
- q(6325),
+ q(6316),
q(0),
],
q(suya) => [
- q(6297),
+ q(6288),
q(0),
],
q(svan) => [
- q(6299),
+ q(6290),
q(0),
],
q(swabian) => [
- q(6311),
+ q(6302),
q(0),
],
q(swahili) => [
@@ -51820,7 +51854,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(swahili (individual language)) => [
- q(6312),
+ q(6303),
q(0),
],
q(swahili (macrolanguage)) => [
@@ -51828,7 +51862,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(swampy cree) => [
- q(1889),
+ q(1884),
q(0),
],
q(swati) => [
@@ -51840,7 +51874,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(swedish sign language) => [
- q(6316),
+ q(6307),
q(0),
],
q(swiss german) => [
@@ -51848,27 +51882,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(swiss-french sign language) => [
- q(6254),
+ q(6245),
q(0),
],
q(swiss-german sign language) => [
- q(6003),
+ q(5994),
q(0),
],
q(swiss-italian sign language) => [
- q(6107),
+ q(6097),
q(0),
],
q(swo) => [
- q(6184),
+ q(6174),
q(0),
],
q(syenara senoufo) => [
- q(6042),
+ q(6032),
q(0),
],
q(sylheti) => [
- q(6347),
+ q(6338),
q(0),
],
q(syriac) => [
@@ -51876,103 +51910,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(t'en) => [
- q(6429),
+ q(6421),
q(0),
],
q(ta'izzi-adeni arabic) => [
- q(0595),
+ q(0594),
q(0),
],
q(taabwa) => [
- q(6377),
+ q(6369),
q(0),
],
q(tabaa zapotec) => [
- q(7831),
+ q(7820),
q(0),
],
q(tabaru) => [
- q(6410),
+ q(6402),
q(0),
],
q(tabasco chontal) => [
- q(1725),
+ q(1720),
q(0),
],
q(tabasco nahuatl) => [
- q(4871),
+ q(4861),
q(0),
],
q(tabasco zoque) => [
- q(7920),
+ q(7909),
q(0),
],
q(tabassaran) => [
- q(6366),
+ q(6358),
q(0),
],
q(tabla) => [
- q(6628),
+ q(6620),
q(0),
],
q(tabo) => [
- q(3501),
+ q(3499),
q(0),
],
q(tabriak) => [
- q(6858),
+ q(6850),
q(0),
],
q(tacahua mixtec) => [
- q(7531),
+ q(7523),
q(0),
],
q(tacana) => [
- q(6618),
+ q(6610),
q(0),
],
q(tachawit) => [
- q(6041),
+ q(6031),
q(0),
],
q(tachelhit) => [
- q(6026),
+ q(6016),
q(0),
],
q(tachoni) => [
- q(4082),
+ q(4074),
q(0),
],
q(tadaksahak) => [
- q(2159),
+ q(2154),
q(0),
],
q(tadyawan) => [
- q(6456),
+ q(6448),
q(0),
],
q(tae') => [
- q(5845),
+ q(5836),
q(0),
],
q(tafi) => [
- q(6415),
+ q(6407),
q(0),
],
q(tagabawa) => [
- q(1180),
+ q(1177),
q(0),
],
q(tagakaulo) => [
- q(3436),
+ q(3434),
q(0),
],
q(tagal murut) => [
- q(4628),
+ q(4619),
q(0),
],
q(tagalaka) => [
- q(6503),
+ q(6495),
q(0),
],
q(tagalog) => [
@@ -51980,39 +52014,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tagargrent) => [
- q(5341),
+ q(5333),
q(0),
],
q(tagbanwa) => [
- q(6408),
+ q(6400),
q(0),
],
q(tagbu) => [
- q(6399),
+ q(6391),
q(0),
],
q(tagdal) => [
- q(6435),
+ q(6427),
q(0),
],
q(tagin) => [
- q(6490),
+ q(6482),
q(0),
],
q(tagish) => [
- q(6501),
+ q(6493),
q(0),
],
q(tagoi) => [
- q(6371),
+ q(6363),
q(0),
],
q(tagwana senoufo) => [
- q(6500),
+ q(6492),
q(0),
],
q(tahaggart tamahaq) => [
- q(6520),
+ q(6512),
q(0),
],
q(tahitian) => [
@@ -52020,39 +52054,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tahltan) => [
- q(6518),
+ q(6510),
q(0),
],
q(tai) => [
- q(6383),
+ q(6375),
q(0),
],
q(tai daeng) => [
- q(6845),
+ q(6837),
q(0),
],
q(tai dam) => [
- q(1299),
+ q(1296),
q(0),
],
q(tai do) => [
- q(6841),
+ q(6833),
q(0),
],
q(tai don) => [
- q(6807),
+ q(6798),
q(0),
],
q(tai hang tong) => [
- q(6504),
+ q(6496),
q(0),
],
q(tai hongjin) => [
- q(6545),
+ q(6536),
q(0),
],
q(tai laing) => [
- q(6549),
+ q(6540),
q(0),
],
q(tai languages) => [
@@ -52060,67 +52094,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tai loi) => [
- q(6586),
+ q(6578),
q(0),
],
q(tai long) => [
- q(6509),
+ q(6501),
q(0),
],
q(tai mene) => [
- q(6608),
+ q(6600),
q(0),
],
q(tai nua) => [
- q(6438),
+ q(6430),
q(0),
],
q(tai pao) => [
- q(6673),
+ q(6665),
q(0),
],
q(tai thanh) => [
- q(6605),
+ q(6597),
q(0),
],
q(tai ya) => [
- q(1922),
+ q(1917),
q(0),
],
q(taiap) => [
- q(2610),
+ q(2608),
q(0),
],
q(taikat) => [
- q(0831),
+ q(0829),
q(0),
],
q(tainae) => [
- q(0668),
+ q(0666),
q(0),
],
q(taino) => [
- q(6632),
+ q(6624),
q(0),
],
q(tairaha) => [
- q(1570),
+ q(1566),
q(0),
],
q(tairuma) => [
- q(6861),
+ q(6853),
q(0),
],
q(taita) => [
- q(1956),
+ q(1951),
q(0),
],
q(taiwan sign language) => [
- q(6735),
+ q(6726),
q(0),
],
q(taje) => [
- q(5415),
+ q(5406),
q(0),
],
q(tajik) => [
@@ -52128,119 +52162,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tajiki arabic) => [
- q(0567),
+ q(0566),
q(0),
],
q(tajio) => [
- q(6444),
+ q(6436),
q(0),
],
q(tajuasohn) => [
- q(6546),
+ q(6537),
q(0),
],
q(takelma) => [
- q(6562),
+ q(6553),
q(0),
],
q(takestani) => [
- q(6567),
+ q(6558),
q(0),
],
q(takia) => [
- q(6389),
+ q(6381),
q(0),
],
q(takua) => [
- q(6572),
+ q(6564),
q(0),
],
q(takuu) => [
- q(4881),
+ q(4871),
q(0),
],
q(takwane) => [
- q(6559),
+ q(6550),
q(0),
],
q(tal) => [
- q(6374),
+ q(6366),
q(0),
],
q(tala) => [
- q(6373),
+ q(6365),
q(0),
],
q(talaandig) => [
- q(1259),
+ q(1256),
q(1),
],
q(talaud) => [
- q(6576),
+ q(6568),
q(0),
],
q(taliabu) => [
- q(6591),
+ q(6583),
q(0),
],
q(talieng) => [
- q(6440),
+ q(6432),
q(0),
],
q(talinga-bwisi) => [
- q(6579),
+ q(6571),
q(0),
],
q(talise) => [
- q(6587),
+ q(6579),
q(0),
],
q(talodi) => [
- q(6584),
+ q(6576),
q(0),
],
q(taloki) => [
- q(6580),
+ q(6572),
q(0),
],
q(talondo') => [
- q(6583),
+ q(6575),
q(0),
],
q(talossan) => [
- q(6854),
+ q(6846),
q(0),
],
q(talu) => [
- q(7765),
+ q(7755),
q(0),
],
q(talysh) => [
- q(6593),
+ q(6585),
q(0),
],
q(tama (chad)) => [
- q(6594),
+ q(6586),
q(0),
],
q(tama (colombia)) => [
- q(6467),
+ q(6459),
q(0),
],
q(tamagario) => [
- q(6418),
+ q(6410),
q(0),
],
q(taman (indonesia)) => [
- q(6606),
+ q(6598),
q(0),
],
q(taman (myanmar)) => [
- q(6422),
+ q(6414),
q(0),
],
q(tamanaku) => [
- q(6617),
+ q(6609),
q(0),
],
q(tamashek) => [
@@ -52248,31 +52282,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tamasheq) => [
- q(6378),
+ q(6370),
q(0),
],
q(tamazola mixtec) => [
- q(7046),
+ q(7037),
q(0),
],
q(tambas) => [
- q(6445),
+ q(6437),
q(0),
],
q(tambora) => [
- q(7571),
+ q(7563),
q(0),
],
q(tambotalo) => [
- q(6588),
+ q(6580),
q(0),
],
q(tambunan dusun) => [
- q(3790),
+ q(3785),
q(0),
],
q(tami) => [
- q(6616),
+ q(6608),
q(0),
],
q(tamil) => [
@@ -52280,195 +52314,199 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tamki) => [
- q(6384),
+ q(6376),
q(0),
],
q(tamnim citak) => [
- q(6604),
+ q(6596),
q(0),
],
q(tampias lobu) => [
- q(4041),
+ q(4033),
q(0),
],
q(tampuan) => [
- q(6678),
+ q(6670),
q(0),
],
q(tampulma) => [
- q(6671),
+ q(6663),
q(0),
],
q(tanacross) => [
- q(6413),
+ q(6405),
q(0),
],
q(tanahmerah) => [
- q(6423),
+ q(6415),
q(0),
],
q(tanaina) => [
- q(6478),
+ q(6470),
q(0),
],
q(tanapag) => [
- q(6679),
+ q(6671),
q(0),
],
q(tandaganon) => [
- q(6491),
+ q(6483),
q(0),
],
q(tandia) => [
- q(6625),
+ q(6617),
q(0),
],
q(tandroy-mahafaly malagasy) => [
- q(6455),
+ q(6447),
q(0),
],
q(tanema) => [
- q(6639),
+ q(6631),
q(0),
],
q(tangale) => [
- q(6375),
+ q(6367),
q(0),
],
q(tangchangya) => [
- q(6637),
+ q(6629),
q(0),
],
q(tanggu) => [
- q(6498),
+ q(6490),
q(0),
],
q(tangkhul naga (india)) => [
- q(4976),
+ q(4966),
q(0),
],
q(tangkhul naga (myanmar)) => [
- q(5110),
+ q(5100),
q(0),
],
q(tangko) => [
- q(6571),
+ q(6563),
q(0),
],
q(tanglang) => [
- q(7766),
+ q(7756),
q(0),
],
q(tangoa) => [
- q(6493),
+ q(6485),
q(0),
],
q(tanguat) => [
- q(6404),
+ q(6396),
q(0),
],
q(tangut) => [
- q(6824),
+ q(6815),
q(0),
],
q(tanimbili) => [
- q(6391),
+ q(6383),
q(0),
],
q(tanimuca-retuara) => [
- q(6620),
+ q(6612),
q(0),
],
q(tanjijili) => [
- q(6886),
+ q(6878),
q(0),
],
q(tankarana malagasy) => [
- q(7433),
+ q(7426),
q(1),
],
q(tanosy malagasy) => [
- q(6836),
+ q(6828),
q(0),
],
q(tanudan kalinga) => [
- q(3466),
+ q(3464),
q(0),
],
q(tanzanian sign language) => [
- q(6851),
+ q(6843),
q(0),
],
q(tapeba) => [
- q(6388),
+ q(6380),
q(0),
],
q(tapei) => [
- q(0649),
+ q(0647),
q(0),
],
q(tapiete) => [
- q(6668),
+ q(6660),
q(0),
],
q(tapirape) => [
- q(6370),
+ q(6362),
q(0),
],
q(tarao naga) => [
- q(6708),
+ q(6700),
q(0),
],
q(tareng) => [
- q(6495),
+ q(6487),
q(0),
],
q(tariana) => [
- q(6369),
+ q(6361),
q(0),
],
q(tarifit) => [
- q(5796),
+ q(5787),
+ q(0),
+ ],
+ q(tarjumo) => [
+ q(6818),
q(0),
],
q(tarok) => [
- q(7635),
+ q(7626),
q(0),
],
q(taroko) => [
- q(6715),
+ q(6707),
q(0),
],
q(tarpia) => [
- q(6666),
+ q(6658),
q(0),
],
q(tartessian) => [
- q(6831),
+ q(6823),
q(0),
],
q(tasawaq) => [
- q(6813),
+ q(6804),
q(0),
],
q(tase naga) => [
- q(5091),
+ q(5081),
q(0),
],
q(tasmanian) => [
- q(7536),
+ q(7528),
q(0),
],
q(tasmate) => [
- q(6612),
+ q(6604),
q(0),
],
q(tataltepec chatino) => [
- q(1892),
+ q(1887),
q(0),
],
q(tatana) => [
- q(6835),
+ q(6827),
q(0),
],
q(tatar) => [
@@ -52476,235 +52514,235 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tatuyo) => [
- q(6382),
+ q(6374),
q(0),
],
q(tauade) => [
- q(6746),
+ q(6737),
q(0),
],
q(taulil) => [
- q(6775),
+ q(6766),
q(0),
],
q(taungyo) => [
- q(6425),
+ q(6417),
q(0),
],
q(taupota) => [
- q(6663),
+ q(6655),
q(0),
],
q(tause) => [
- q(6368),
+ q(6360),
q(0),
],
q(taushiro) => [
- q(6711),
+ q(6703),
q(0),
],
q(tausug) => [
- q(6726),
+ q(6717),
q(0),
],
q(tauya) => [
- q(6837),
+ q(6829),
q(0),
],
q(taveta) => [
- q(6795),
+ q(6786),
q(0),
],
q(tavoyan) => [
- q(6793),
+ q(6784),
q(0),
],
q(tavringer romani) => [
- q(5831),
+ q(5822),
q(0),
],
q(tawala) => [
- q(6401),
+ q(6393),
q(0),
],
q(tawallammat tamajaq) => [
- q(6759),
+ q(6750),
q(0),
],
q(tawande) => [
- q(7534),
+ q(7526),
q(0),
],
q(tawang monpa) => [
- q(6809),
+ q(6800),
q(0),
],
q(tawara) => [
- q(6808),
+ q(6799),
q(0),
],
q(taworta) => [
- q(6402),
+ q(6394),
q(0),
],
q(tawoyan) => [
- q(6819),
+ q(6810),
q(0),
],
q(tawr chin) => [
- q(6426),
+ q(6418),
q(0),
],
q(tay) => [
- q(6850),
+ q(6842),
q(0),
],
q(tay boi) => [
- q(6380),
+ q(6372),
q(0),
],
q(tay khang) => [
- q(6636),
+ q(6628),
q(0),
],
q(tay sa pa) => [
- q(6846),
+ q(6838),
q(0),
],
q(tay tac) => [
- q(6847),
+ q(6839),
q(0),
],
q(tayabas ayta) => [
- q(1012),
+ q(1009),
q(0),
],
q(tayart tamajeq) => [
- q(6524),
+ q(6515),
q(0),
],
q(tayo) => [
- q(1766),
+ q(1761),
q(0),
],
q(taznatit) => [
- q(2625),
+ q(2623),
q(0),
],
q(tboli) => [
- q(6398),
+ q(6390),
q(0),
],
q(tchitchege) => [
- q(6421),
+ q(6413),
q(0),
],
q(tchumbuli) => [
- q(1401),
+ q(1397),
q(0),
],
q(te'un) => [
- q(6790),
+ q(6781),
q(0),
],
q(teanu) => [
- q(6570),
+ q(6562),
q(0),
],
q(tebi) => [
- q(2098),
+ q(2093),
q(1),
],
q(tebul sign language) => [
- q(6741),
+ q(6732),
q(0),
],
q(tebul ure dogon) => [
- q(2172),
+ q(2167),
q(0),
],
q(tecpatlan totonac) => [
- q(6431),
+ q(6423),
q(0),
],
q(tedaga) => [
- q(6781),
+ q(6772),
q(0),
],
q(tedim chin) => [
- q(1894),
+ q(1889),
q(0),
],
q(tee) => [
- q(6565),
+ q(6556),
q(0),
],
q(teen) => [
- q(4036),
+ q(4028),
q(0),
],
q(tefaro) => [
- q(6479),
+ q(6471),
q(0),
],
q(tegali) => [
- q(5758),
+ q(5749),
q(0),
],
q(tehit) => [
- q(3542),
+ q(3539),
q(0),
],
q(tehuelche) => [
- q(6464),
+ q(6456),
q(0),
],
q(tejalapan zapotec) => [
- q(7970),
+ q(7959),
q(0),
],
q(teke-ebo) => [
- q(2220),
+ q(2214),
q(0),
],
q(teke-fuumu) => [
- q(2920),
+ q(2917),
q(0),
],
q(teke-kukuya) => [
- q(3426),
+ q(3424),
q(0),
],
q(teke-laali) => [
- q(3970),
+ q(3963),
q(0),
],
q(teke-nzikou) => [
- q(5190),
+ q(5181),
q(0),
],
q(teke-tege) => [
- q(6463),
+ q(6455),
q(0),
],
q(teke-tsaayi) => [
- q(6840),
+ q(6832),
q(0),
],
q(teke-tyee) => [
- q(6849),
+ q(6841),
q(0),
],
q(tektiteko) => [
- q(6745),
+ q(6736),
q(0),
],
q(tela-masbuar) => [
- q(6792),
+ q(6783),
q(0),
],
q(telefol) => [
- q(6577),
+ q(6569),
q(0),
],
q(telugu) => [
@@ -52712,147 +52750,147 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(teluti) => [
- q(6589),
+ q(6581),
q(0),
],
q(tem) => [
- q(3243),
+ q(3240),
q(0),
],
q(temacine tamazight) => [
- q(6552),
+ q(6543),
q(0),
],
q(temascaltepec nahuatl) => [
- q(4887),
+ q(4877),
q(0),
],
q(tembe) => [
- q(6684),
+ q(6676),
q(0),
],
q(tembo (kitembo)) => [
- q(6405),
+ q(6397),
q(0),
],
q(tembo (motembo)) => [
- q(6614),
+ q(6606),
q(0),
],
q(teme) => [
- q(6448),
+ q(6440),
q(0),
],
q(temein) => [
- q(6470),
+ q(6462),
q(0),
],
q(temi) => [
- q(6186),
+ q(6176),
q(0),
],
q(temiar) => [
- q(6457),
+ q(6449),
q(0),
],
q(temoaya otomi) => [
- q(5335),
+ q(5327),
q(0),
],
q(temoq) => [
- q(6607),
+ q(6599),
q(0),
],
q(tempasuk dusun) => [
- q(6453),
+ q(6445),
q(0),
],
q(temuan) => [
- q(6615),
+ q(6607),
q(0),
],
q(tena) => [
- q(1142),
+ q(1139),
q(1),
],
q(tena lowland quichua) => [
- q(5704),
+ q(5695),
q(0),
],
q(tenango otomi) => [
- q(5331),
+ q(5323),
q(0),
],
q(tene kan dogon) => [
- q(2165),
+ q(2160),
q(0),
],
q(tenggarong kutai malay) => [
- q(7022),
+ q(7013),
q(0),
],
q(tengger) => [
- q(6471),
+ q(6463),
q(0),
],
q(tenharim) => [
- q(5359),
+ q(5350),
q(0),
],
q(tenino) => [
- q(6687),
+ q(6679),
q(0),
],
q(tenis) => [
- q(6634),
+ q(6626),
q(0),
],
q(tennet) => [
- q(6475),
+ q(6467),
q(0),
],
q(teop) => [
- q(6536),
+ q(6527),
q(0),
],
q(teor) => [
- q(6473),
+ q(6465),
q(0),
],
q(tepecano) => [
- q(6469),
+ q(6461),
q(0),
],
q(tepetotutla chinantec) => [
- q(1809),
+ q(1804),
q(0),
],
q(tepeuxila cuicatec) => [
- q(1925),
+ q(1920),
q(0),
],
q(tepinapa chinantec) => [
- q(1895),
+ q(1890),
q(0),
],
q(tepo krumen) => [
- q(6460),
+ q(6452),
q(0),
],
q(ter sami) => [
- q(6077),
+ q(6067),
q(0),
],
q(tera) => [
- q(6760),
+ q(6751),
q(0),
],
q(terebu) => [
- q(6696),
+ q(6688),
q(0),
],
q(terei) => [
- q(1509),
+ q(1505),
q(0),
],
q(tereno) => [
@@ -52860,59 +52898,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(teressa) => [
- q(6462),
+ q(6454),
q(0),
],
q(tereweng) => [
- q(6806),
+ q(6797),
q(0),
],
q(teribe) => [
- q(6480),
+ q(6472),
q(0),
],
q(terik) => [
- q(6459),
+ q(6451),
q(0),
],
q(termanu) => [
- q(6816),
+ q(6807),
q(0),
],
q(ternate) => [
- q(6481),
+ q(6473),
q(0),
],
q(ternateno) => [
- q(6600),
+ q(6592),
q(0),
],
q(tesaka malagasy) => [
- q(6561),
+ q(6552),
q(0),
],
q(tese) => [
- q(3265),
+ q(3262),
q(0),
],
q(teshenawa) => [
- q(6802),
+ q(6793),
q(0),
],
q(teso) => [
- q(6468),
+ q(6460),
q(0),
],
q(tetela) => [
- q(6581),
+ q(6573),
q(0),
],
q(tetelcingo nahuatl) => [
- q(4875),
+ q(4865),
q(0),
],
q(tetete) => [
- q(6458),
+ q(6450),
q(0),
],
q(tetum) => [
@@ -52920,51 +52958,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tetun dili) => [
- q(6452),
+ q(6444),
q(0),
],
q(teutila cuicatec) => [
- q(1921),
+ q(1916),
q(0),
],
q(tewa (indonesia)) => [
- q(6804),
+ q(6795),
q(0),
],
q(tewa (usa)) => [
- q(6474),
+ q(6466),
q(0),
],
q(tewe) => [
- q(6818),
+ q(6809),
q(0),
],
q(texcatepec otomi) => [
- q(5338),
+ q(5330),
q(0),
],
q(texistepec popoluca) => [
- q(5573),
+ q(5564),
q(0),
],
q(texmelucan zapotec) => [
- q(7948),
+ q(7937),
q(0),
],
q(tezoatlan mixtec) => [
- q(4657),
+ q(4647),
q(0),
],
q(tha) => [
- q(6523),
+ q(6514),
q(0),
],
q(thachanadan) => [
- q(6513),
+ q(6505),
q(0),
],
q(thado chin) => [
- q(6434),
+ q(6426),
q(0),
],
q(thai) => [
@@ -52972,107 +53010,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(thai sign language) => [
- q(6733),
+ q(6724),
q(0),
],
q(thai song) => [
- q(6166),
+ q(6156),
q(0),
],
q(thaiphum chin) => [
- q(1897),
+ q(1892),
q(0),
],
q(thakali) => [
- q(6517),
+ q(6509),
q(0),
],
q(thangal naga) => [
- q(4939),
+ q(4929),
q(0),
],
q(thangmi) => [
- q(6507),
+ q(6499),
q(0),
],
q(thao) => [
- q(6242),
+ q(6233),
q(0),
],
q(tharaka) => [
- q(6510),
+ q(6502),
q(0),
],
q(thawa) => [
- q(7533),
+ q(7525),
q(0),
],
q(thayore) => [
- q(6505),
+ q(6497),
q(0),
],
q(thaypan) => [
- q(6844),
- q(0),
- ],
- q(the) => [
- q(6522),
+ q(6836),
q(0),
],
q(thiin) => [
- q(2936),
+ q(2933),
q(0),
],
q(tho) => [
- q(6657),
+ q(6649),
q(0),
],
q(thompson) => [
- q(6514),
+ q(6506),
q(0),
],
q(thopho) => [
- q(7767),
+ q(7757),
q(0),
],
q(thracian) => [
- q(6825),
+ q(6816),
q(0),
],
q(thu lao) => [
- q(6842),
+ q(6834),
q(0),
],
q(thudam) => [
- q(6521),
+ q(6513),
q(0),
],
q(thulung) => [
- q(6442),
+ q(6434),
q(0),
],
q(thurawal) => [
- q(6394),
+ q(6386),
q(0),
],
q(thuri) => [
- q(6519),
+ q(6511),
q(0),
],
q(tiagbamrin aizi) => [
- q(0683),
+ q(0681),
q(0),
],
q(tiale) => [
- q(4432),
+ q(4423),
q(0),
],
q(tiang) => [
- q(6396),
+ q(6388),
q(0),
],
q(tibea) => [
- q(4867),
+ q(4857),
q(0),
],
q(tibetan) => [
@@ -53084,55 +53118,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tichurong) => [
- q(6424),
+ q(6416),
q(0),
],
q(ticuna) => [
- q(6412),
+ q(6404),
q(0),
],
q(tidaa mixtec) => [
- q(4586),
+ q(4577),
q(0),
],
q(tidikelt tamazight) => [
- q(6525),
+ q(6516),
q(0),
],
q(tidong) => [
- q(6527),
+ q(6518),
q(0),
],
q(tidore) => [
- q(6794),
+ q(6785),
q(0),
],
q(tiefo) => [
- q(6538),
+ q(6529),
q(0),
],
q(tiemacewe bozo) => [
- q(1367),
+ q(1363),
q(0),
],
q(tiene) => [
- q(6530),
+ q(6521),
q(0),
],
q(tieyaxo bozo) => [
- q(1377),
+ q(1373),
q(0),
],
q(tifal) => [
- q(6528),
+ q(6519),
q(0),
],
q(tigak) => [
- q(6484),
+ q(6476),
q(0),
],
q(tigon mbembe) => [
- q(5185),
+ q(5176),
q(0),
],
q(tigre) => [
@@ -53144,47 +53178,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tii) => [
- q(6830),
+ q(6822),
q(0),
],
q(tijaltepec mixtec) => [
- q(7523),
+ q(7515),
q(0),
],
q(tikar) => [
- q(6532),
+ q(6523),
q(0),
],
q(tikopia) => [
- q(6564),
+ q(6555),
q(0),
],
q(tilapa otomi) => [
- q(5329),
+ q(5321),
q(0),
],
q(tillamook) => [
- q(6533),
+ q(6524),
q(0),
],
q(tilquiapan zapotec) => [
- q(7969),
+ q(7958),
q(0),
],
q(tilung) => [
- q(6531),
+ q(6522),
q(0),
],
q(tima) => [
- q(6611),
+ q(6603),
q(0),
],
q(timbe) => [
- q(6534),
+ q(6525),
q(0),
],
q(timbisha) => [
- q(5364),
+ q(5355),
q(1),
],
q(timne) => [
@@ -53192,71 +53226,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(timor pidgin) => [
- q(6799),
+ q(6790),
q(0),
],
q(timucua) => [
- q(6550),
+ q(6541),
q(0),
],
q(timugon murut) => [
- q(6529),
+ q(6520),
q(0),
],
q(tinani) => [
- q(3821),
+ q(3816),
q(0),
],
q(tindi) => [
- q(6535),
+ q(6526),
q(0),
],
q(tingui-boto) => [
- q(6499),
+ q(6491),
q(0),
],
q(tinigua) => [
- q(6540),
+ q(6531),
q(0),
],
q(tinoc kallahan) => [
- q(6622),
+ q(6614),
q(0),
],
q(tinputz) => [
- q(6683),
+ q(6675),
q(0),
],
q(tippera) => [
- q(6665),
+ q(6657),
q(0),
],
q(tira) => [
- q(6526),
+ q(6517),
q(0),
],
q(tirahi) => [
- q(6695),
+ q(6687),
q(0),
],
q(tiranige diga dogon) => [
- q(6439),
+ q(6431),
q(0),
],
q(tiri) => [
- q(1744),
+ q(1739),
q(0),
],
q(tiruray) => [
- q(6544),
+ q(6535),
q(0),
],
q(tita) => [
- q(6449),
+ q(6441),
q(0),
],
q(titan) => [
- q(6764),
+ q(6755),
q(0),
],
q(tiv) => [
@@ -53264,47 +53298,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tiwa) => [
- q(3814),
+ q(3809),
q(0),
],
q(tiwi) => [
- q(6542),
+ q(6533),
q(0),
],
q(tjurruru) => [
- q(6554),
+ q(6545),
q(0),
],
q(tlachichilco tepehua) => [
- q(6677),
+ q(6669),
q(0),
],
q(tlacoapa me'phaa) => [
- q(6670),
+ q(6662),
q(0),
],
q(tlacoapa tlapanec) => [
- q(6670),
+ q(6662),
q(1),
],
q(tlacoatzintepec chinantec) => [
- q(1898),
+ q(1893),
q(0),
],
q(tlacolulita zapotec) => [
- q(7933),
+ q(7922),
q(0),
],
q(tlahuitoltepec mixe) => [
- q(4671),
+ q(4661),
q(0),
],
q(tlamacazapa nahuatl) => [
- q(5137),
+ q(5127),
q(0),
],
q(tlazoyaltepec mixtec) => [
- q(4495),
+ q(4486),
q(0),
],
q(tlhingan-hol) => [
@@ -53316,91 +53350,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(to) => [
- q(6662),
+ q(6654),
q(0),
],
q(to'abaita) => [
- q(4393),
+ q(4384),
q(0),
],
q(toaripi) => [
- q(6688),
+ q(6680),
q(0),
],
q(toba) => [
- q(6642),
+ q(6634),
q(0),
],
q(toba-maskoy) => [
- q(6599),
+ q(6591),
q(0),
],
q(tobagonian creole english) => [
- q(6488),
+ q(6480),
q(0),
],
q(tobanga) => [
- q(6623),
+ q(6615),
q(0),
],
q(tobati) => [
- q(6751),
+ q(6742),
q(0),
],
q(tobelo) => [
- q(6574),
+ q(6566),
q(0),
],
q(tobian) => [
- q(6660),
+ q(6652),
q(0),
],
q(tobilung) => [
- q(6483),
+ q(6475),
q(0),
],
q(tobo) => [
- q(6407),
+ q(6399),
q(0),
],
q(tocantins asurini) => [
- q(0904),
+ q(0903),
q(0),
],
q(tocho) => [
- q(6386),
+ q(6378),
q(0),
],
q(toda) => [
- q(6432),
+ q(6424),
q(0),
],
q(todrah) => [
- q(6450),
+ q(6442),
q(0),
],
q(tofanma) => [
- q(6578),
+ q(6570),
q(0),
],
q(tofin gbe) => [
- q(6477),
+ q(6469),
q(0),
],
q(togbo-vara banda) => [
- q(6655),
+ q(6647),
q(0),
],
q(togoyo) => [
- q(6502),
+ q(6494),
q(0),
],
q(tohono o'odham) => [
- q(5290),
+ q(5282),
q(0),
],
q(tojolabal) => [
- q(6649),
+ q(6641),
q(0),
],
q(tok pisin) => [
@@ -53408,7 +53442,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tokano) => [
- q(7975),
+ q(7964),
q(0),
],
q(tokelau) => [
@@ -53416,79 +53450,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tokharian a) => [
- q(7526),
+ q(7518),
q(0),
],
q(tokharian b) => [
- q(6821),
+ q(6812),
q(0),
],
q(toku-no-shima) => [
- q(6563),
+ q(6554),
q(0),
],
q(tol) => [
- q(3096),
+ q(3093),
q(0),
],
q(tolaki) => [
- q(3836),
+ q(3831),
q(0),
],
q(tolomako) => [
- q(6582),
+ q(6574),
q(0),
],
q(tolowa) => [
- q(6650),
+ q(6642),
q(0),
],
q(toma) => [
- q(6644),
+ q(6636),
q(0),
],
q(tomadino) => [
- q(6443),
+ q(6435),
q(0),
],
q(tombelala) => [
- q(6758),
+ q(6749),
q(0),
],
q(tombonuo) => [
- q(6820),
+ q(6811),
q(0),
],
q(tombulu) => [
- q(6651),
+ q(6643),
q(0),
],
q(tomedes) => [
- q(6645),
+ q(6637),
q(0),
],
q(tomini) => [
- q(6827),
+ q(6819),
q(0),
],
q(tommo so dogon) => [
- q(2167),
+ q(2162),
q(0),
],
q(tomo kan dogon) => [
- q(2166),
+ q(2161),
q(0),
],
q(tomoip) => [
- q(6689),
+ q(6681),
q(0),
],
q(tondano) => [
- q(6447),
+ q(6439),
q(0),
],
q(tondi songway kiini) => [
- q(6736),
+ q(6727),
q(0),
],
q(tonga) => [
@@ -53500,7 +53534,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tonga (thailand)) => [
- q(6641),
+ q(6633),
q(0),
],
q(tonga (tonga islands)) => [
@@ -53508,139 +53542,139 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tonga (zambia)) => [
- q(6648),
+ q(6640),
q(0),
],
q(tongwe) => [
- q(6640),
+ q(6632),
q(0),
],
q(tonjon) => [
- q(6551),
+ q(6542),
q(0),
],
q(tonkawa) => [
- q(6694),
+ q(6686),
q(0),
],
q(tonsawang) => [
- q(6638),
+ q(6630),
q(0),
],
q(tonsea) => [
- q(6832),
+ q(6824),
q(0),
],
q(tontemboan) => [
- q(6635),
+ q(6627),
q(0),
],
q(tooro) => [
- q(6752),
+ q(6743),
q(0),
],
q(topoiyo) => [
- q(6661),
+ q(6653),
q(0),
],
q(toposa) => [
- q(6654),
+ q(6646),
q(0),
],
q(tora) => [
- q(6719),
+ q(6711),
q(0),
],
q(toraja-sa'dan) => [
- q(5951),
+ q(5942),
q(0),
],
q(toram) => [
- q(6704),
+ q(6696),
q(0),
],
q(torau) => [
- q(6763),
+ q(6754),
q(0),
],
q(tornedalen finnish) => [
- q(2352),
+ q(2348),
q(0),
],
q(toro) => [
- q(6454),
+ q(6446),
q(0),
],
q(toro so dogon) => [
- q(2170),
+ q(2165),
q(0),
],
q(toro tegu dogon) => [
- q(2171),
+ q(2166),
q(0),
],
q(toromono) => [
- q(6630),
+ q(6622),
q(0),
],
q(torona) => [
- q(6691),
+ q(6683),
q(0),
],
q(torres strait creole) => [
- q(6428),
+ q(6420),
q(0),
],
q(torricelli) => [
- q(6465),
+ q(6457),
q(0),
],
q(torwali) => [
- q(6716),
+ q(6708),
q(0),
],
q(tosk albanian) => [
- q(0762),
+ q(0760),
q(0),
],
q(totela) => [
- q(6754),
+ q(6745),
q(0),
],
q(toto) => [
- q(6829),
+ q(6821),
q(0),
],
q(totoli) => [
- q(6823),
+ q(6814),
q(0),
],
q(totomachapan zapotec) => [
- q(7930),
+ q(7919),
q(0),
],
q(totontepec mixe) => [
- q(4577),
+ q(4568),
q(0),
],
q(totoro) => [
- q(6753),
+ q(6744),
q(0),
],
q(touo) => [
- q(6693),
+ q(6685),
q(0),
],
q(toura (cote d'ivoire)) => [
- q(4817),
+ q(4807),
q(0),
],
q(toura (papua new guinea)) => [
- q(2125),
+ q(2120),
q(0),
],
q(towei) => [
- q(6756),
+ q(6747),
q(0),
],
q(trans-new guinea languages) => [
@@ -53648,123 +53682,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(transalpine gaulish) => [
- q(7519),
+ q(7511),
q(0),
],
q(traveller danish) => [
- q(5816),
+ q(5807),
q(0),
],
q(traveller norwegian) => [
- q(5819),
+ q(5810),
q(0),
],
q(traveller scottish) => [
- q(6705),
+ q(6697),
q(0),
],
q(tregami) => [
- q(6706),
+ q(6698),
q(0),
],
q(tremembe) => [
- q(6598),
+ q(6590),
q(0),
],
q(trieng) => [
- q(6267),
+ q(6258),
q(0),
],
q(trimuris) => [
- q(6537),
+ q(6528),
q(0),
],
q(tring) => [
- q(6494),
+ q(6486),
q(0),
],
q(tringgus-sembaan bidayuh) => [
- q(6717),
+ q(6709),
q(0),
],
q(trinidad and tobago sign language) => [
- q(4075),
+ q(4067),
q(0),
],
q(trinidadian creole english) => [
- q(6700),
+ q(6692),
q(0),
],
q(trinitario) => [
- q(6707),
+ q(6699),
q(0),
],
q(trio) => [
- q(6703),
+ q(6695),
q(0),
],
q(truka) => [
- q(6556),
+ q(6547),
q(0),
],
q(trumai) => [
- q(6682),
+ q(6674),
q(0),
],
q(ts'un-lao) => [
- q(6730),
+ q(6721),
q(0),
],
q(tsaangi) => [
- q(6720),
+ q(6712),
q(0),
],
q(tsakhur) => [
- q(6566),
+ q(6557),
q(0),
],
q(tsakonian) => [
- q(6723),
+ q(6715),
q(0),
],
q(tsakwambo) => [
- q(3694),
+ q(3691),
q(0),
],
q(tsamai) => [
- q(6721),
+ q(6713),
q(0),
],
q(tsat) => [
- q(2868),
+ q(2865),
q(0),
],
q(tsaukambo) => [
- q(3694),
+ q(3691),
q(1),
],
q(tseku) => [
- q(6729),
+ q(6720),
q(0),
],
q(tsetsaut) => [
- q(6822),
+ q(6813),
q(0),
],
q(tshangla) => [
- q(6728),
+ q(6719),
q(0),
],
q(tsikimba) => [
- q(3247),
+ q(3244),
q(0),
],
q(tsimane) => [
- q(1659),
+ q(1653),
q(0),
],
q(tsimihety malagasy) => [
- q(7434),
+ q(7427),
q(0),
],
q(tsimshian) => [
@@ -53772,19 +53806,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tsishingini) => [
- q(6739),
+ q(6730),
q(0),
],
q(tso) => [
- q(3862),
+ q(3857),
q(0),
],
q(tsoa) => [
- q(2765),
+ q(2762),
q(0),
],
q(tsogo) => [
- q(6738),
+ q(6729),
q(0),
],
q(tsonga) => [
@@ -53792,31 +53826,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tsotsitaal) => [
- q(2362),
- q(0),
+ q(2358),
+ q(1),
],
q(tsotso) => [
- q(4081),
+ q(4073),
q(0),
],
q(tsou) => [
- q(6737),
+ q(6728),
+ q(0),
+ ],
+ q(tsucuba) => [
+ q(1671),
q(0),
],
q(tsum) => [
- q(6767),
+ q(6758),
q(0),
],
q(tsuvadi) => [
- q(6789),
+ q(6780),
q(0),
],
q(tsuvan) => [
- q(6727),
+ q(6718),
q(0),
],
q(tswa) => [
- q(6722),
+ q(6714),
q(0),
],
q(tswana) => [
@@ -53824,95 +53862,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tswapong) => [
- q(6811),
+ q(6802),
q(0),
],
q(tu) => [
- q(4332),
+ q(4323),
q(0),
],
q(tuamotuan) => [
- q(5532),
+ q(5524),
q(0),
],
q(tubar) => [
- q(6406),
+ q(6398),
q(0),
],
q(tubatulabal) => [
- q(6769),
+ q(6760),
q(0),
],
q(tucano) => [
- q(6780),
+ q(6771),
q(0),
],
q(tugen) => [
- q(6786),
+ q(6777),
q(0),
],
q(tugun) => [
- q(6856),
+ q(6848),
q(0),
],
q(tugutil) => [
- q(6777),
+ q(6768),
q(0),
],
q(tukang besi north) => [
- q(3336),
+ q(3333),
q(0),
],
q(tukang besi south) => [
- q(1202),
+ q(1199),
q(0),
],
q(tuki) => [
- q(1029),
+ q(1026),
q(0),
],
q(tukpa) => [
- q(6675),
+ q(6667),
q(0),
],
q(tukudede) => [
- q(6558),
+ q(6549),
q(0),
],
q(tukumanfed) => [
- q(6560),
+ q(6551),
q(0),
],
q(tula) => [
- q(6778),
+ q(6769),
q(0),
],
q(tulehu) => [
- q(6590),
+ q(6582),
q(0),
],
q(tulishi) => [
- q(6476),
+ q(6468),
q(0),
],
q(tulu) => [
- q(6433),
+ q(6425),
q(0),
],
q(tulu-bohuai) => [
- q(5752),
+ q(5743),
q(0),
],
q(tuma-irumu) => [
- q(2984),
+ q(2981),
q(0),
],
q(tumak) => [
- q(6596),
+ q(6588),
q(0),
],
q(tumari kanuri) => [
- q(3590),
+ q(3587),
q(0),
],
q(tumbuka) => [
@@ -53920,43 +53958,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tumi) => [
- q(3424),
+ q(3422),
q(0),
],
q(tumleo) => [
- q(6609),
+ q(6601),
q(0),
],
q(tumshuqese) => [
- q(7528),
+ q(7520),
q(0),
],
q(tumtum) => [
- q(6403),
+ q(6395),
q(0),
],
q(tumulung sisaala) => [
- q(6052),
+ q(6042),
q(0),
],
q(tumzabt) => [
- q(4704),
+ q(4694),
q(0),
],
q(tundra enets) => [
- q(2275),
+ q(2268),
q(0),
],
q(tunen) => [
- q(6797),
+ q(6788),
q(0),
],
q(tungag) => [
- q(3846),
+ q(3841),
q(0),
],
q(tunggare) => [
- q(6713),
+ q(6705),
q(0),
],
q(tungus languages) => [
@@ -53964,43 +54002,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tunia) => [
- q(6774),
+ q(6765),
q(0),
],
q(tunica) => [
- q(6779),
+ q(6770),
q(0),
],
q(tunisian arabic) => [
- q(0626),
+ q(0624),
q(0),
],
q(tunisian sign language) => [
- q(6724),
+ q(6716),
q(0),
],
q(tunjung) => [
- q(6547),
+ q(6538),
q(0),
],
q(tunni) => [
- q(6690),
+ q(6682),
q(0),
],
q(tunzu) => [
- q(2211),
+ q(2206),
q(0),
],
q(tuotomb) => [
- q(6748),
+ q(6739),
q(0),
],
q(tupari) => [
- q(6676),
+ q(6668),
q(0),
],
q(tupi) => [
- q(6680),
+ q(6672),
q(0),
],
q(tupi languages) => [
@@ -54008,43 +54046,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tupinamba) => [
- q(6672),
+ q(6664),
q(0),
],
q(tupinikin) => [
- q(6669),
+ q(6661),
q(0),
],
q(tupuri) => [
- q(6776),
+ q(6767),
q(0),
],
q(turaka) => [
- q(6702),
+ q(6694),
q(0),
],
q(turi) => [
- q(6698),
+ q(6690),
q(0),
],
q(turiwara) => [
- q(6815),
+ q(6806),
q(0),
],
q(turk isaret dili) => [
- q(6731),
+ q(6722),
q(1),
],
q(turka) => [
- q(6787),
+ q(6778),
q(0),
],
q(turkana) => [
- q(6784),
+ q(6775),
q(0),
],
q(turkic khalaj) => [
- q(3439),
+ q(3437),
q(0),
],
q(turkic languages) => [
@@ -54056,7 +54094,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(turkish sign language) => [
- q(6731),
+ q(6722),
q(0),
],
q(turkish, ottoman (1500-1928)) => [
@@ -54068,47 +54106,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(turks and caicos creole english) => [
- q(6419),
+ q(6411),
q(0),
],
q(turoyo) => [
- q(6714),
+ q(6706),
q(0),
],
q(turumsa) => [
- q(6686),
+ q(6678),
q(0),
],
q(turung) => [
- q(6718),
+ q(6710),
q(0),
],
q(tuscarora) => [
- q(6782),
+ q(6773),
q(0),
],
q(tutelo) => [
- q(6743),
+ q(6734),
q(0),
],
q(tutong) => [
- q(6749),
+ q(6740),
q(0),
],
q(tutsa naga) => [
- q(6796),
+ q(6787),
q(0),
],
q(tutuba) => [
- q(6601),
+ q(6593),
q(0),
],
q(tututepec mixtec) => [
- q(4583),
+ q(4574),
q(0),
],
q(tututni) => [
- q(6783),
+ q(6774),
q(0),
],
q(tuvalu) => [
@@ -54120,39 +54158,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tuwali ifugao) => [
- q(2919),
+ q(2916),
q(0),
],
q(tuwari) => [
- q(6817),
+ q(6808),
q(0),
],
q(tuwuli) => [
- q(1373),
+ q(1369),
q(0),
],
q(tuxa) => [
- q(6771),
+ q(6762),
q(0),
],
q(tuxinawa) => [
- q(6785),
+ q(6776),
q(0),
],
q(tuyuca) => [
- q(6772),
+ q(6763),
q(0),
],
q(twana) => [
- q(6800),
+ q(6791),
q(0),
],
q(twendi) => [
- q(6810),
+ q(6801),
q(0),
],
q(twents) => [
- q(6803),
+ q(6794),
q(0),
],
q(twi) => [
@@ -54160,75 +54198,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tyap) => [
- q(3217),
+ q(3214),
q(0),
],
q(tyaraity) => [
- q(7204),
+ q(7195),
q(0),
],
q(tz'utujil) => [
- q(6853),
+ q(6845),
q(0),
],
q(tzeltal) => [
- q(6852),
+ q(6844),
q(0),
],
q(tzotzil) => [
- q(6857),
+ q(6849),
q(0),
],
q(u) => [
- q(6970),
+ q(6961),
q(0),
],
q(uab meto) => [
- q(0835),
+ q(0833),
q(0),
],
q(uamue) => [
- q(6859),
+ q(6851),
q(0),
],
q(uare) => [
- q(3605),
+ q(3602),
q(0),
],
q(ubaghara) => [
- q(1596),
+ q(1591),
q(0),
],
q(ubang) => [
- q(6862),
+ q(6854),
q(0),
],
q(ubi) => [
- q(6863),
+ q(6855),
q(0),
],
q(ubir) => [
- q(6865),
+ q(6857),
q(0),
],
q(ubykh) => [
- q(6867),
+ q(6859),
q(0),
],
q(ucayali-yurua asheninka) => [
- q(1836),
+ q(1831),
q(0),
],
q(uda) => [
- q(6868),
+ q(6860),
q(0),
],
q(udi) => [
- q(6871),
+ q(6863),
q(0),
],
q(udihe) => [
- q(6869),
+ q(6861),
q(0),
],
q(udmurt) => [
@@ -54236,15 +54274,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(uduk) => [
- q(6874),
+ q(6866),
q(0),
],
q(ufim) => [
- q(6876),
+ q(6868),
q(0),
],
q(ugandan sign language) => [
- q(6879),
+ q(6871),
q(0),
],
q(ugaritic) => [
@@ -54252,15 +54290,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ughele) => [
- q(6878),
+ q(6870),
q(0),
],
q(ugong) => [
- q(6880),
+ q(6872),
q(0),
],
q(uhami) => [
- q(6882),
+ q(6874),
q(0),
],
q(uighur) => [
@@ -54268,31 +54306,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(uisai) => [
- q(6884),
+ q(6876),
q(0),
],
q(ujir) => [
- q(6872),
+ q(6864),
q(0),
],
q(ukaan) => [
- q(3216),
+ q(3213),
q(0),
],
q(ukhwejo) => [
- q(6889),
+ q(6881),
q(0),
],
q(ukit) => [
- q(6913),
+ q(6905),
q(0),
],
q(ukpe-bayobiri) => [
- q(6891),
+ q(6883),
q(0),
],
q(ukpet-ehom) => [
- q(0726),
+ q(0724),
q(0),
],
q(ukrainian) => [
@@ -54300,87 +54338,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ukrainian sign language) => [
- q(6890),
+ q(6882),
q(0),
],
q(ukue) => [
- q(6894),
+ q(6886),
q(0),
],
q(ukuriguma) => [
- q(6888),
+ q(6880),
q(0),
],
q(ukwa) => [
- q(6892),
+ q(6884),
q(0),
],
q(ukwuani-aboh-ndoni) => [
- q(6895),
+ q(6887),
q(0),
],
q(ulau-suain) => [
- q(6300),
+ q(6291),
q(0),
],
q(ulch) => [
- q(6899),
+ q(6891),
q(0),
],
q(ulithian) => [
- q(6902),
+ q(6894),
q(0),
],
q(ullatan) => [
- q(6904),
+ q(6896),
q(0),
],
q(ulukwumi) => [
- q(6898),
+ q(6890),
q(0),
],
q(ulumanda') => [
- q(6905),
+ q(6897),
q(0),
],
q(ulwa) => [
- q(6908),
+ q(6900),
q(0),
],
q(uma) => [
- q(5583),
+ q(5574),
q(0),
],
q(uma' lasan) => [
- q(7398),
+ q(7391),
q(0),
],
q(uma' lung) => [
- q(6907),
+ q(6899),
q(0),
],
q(umanakaina) => [
- q(2468),
+ q(2464),
q(0),
],
q(umatilla) => [
- q(6909),
+ q(6901),
q(0),
],
q(umbindhamu) => [
- q(6911),
+ q(6903),
q(0),
],
q(umbrian) => [
- q(7543),
+ q(7535),
q(0),
],
q(umbu-ungu) => [
- q(6866),
+ q(6858),
q(0),
],
q(umbugarla) => [
- q(6918),
+ q(6910),
q(0),
],
q(umbundu) => [
@@ -54388,43 +54426,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(umbuygamu) => [
- q(6912),
+ q(6904),
q(0),
],
q(ume sami) => [
- q(6078),
+ q(6068),
q(0),
],
q(umeda) => [
- q(6932),
+ q(6923),
q(0),
],
q(umiida) => [
- q(7539),
+ q(7531),
q(0),
],
q(umiray dumaget agta) => [
- q(2177),
+ q(2172),
q(0),
],
q(umon) => [
- q(6914),
+ q(6906),
q(0),
],
q(umotina) => [
- q(6916),
+ q(6908),
q(0),
],
q(umpila) => [
- q(6917),
+ q(6909),
q(0),
],
q(una) => [
- q(4569),
+ q(4560),
q(0),
],
q(unami) => [
- q(6925),
+ q(6917),
q(0),
],
q(uncoded languages) => [
@@ -54432,7 +54470,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(unde kaili) => [
- q(6930),
+ q(6922),
q(0),
],
q(undetermined) => [
@@ -54440,63 +54478,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(uneapa) => [
- q(1053),
+ q(1050),
q(0),
],
q(uneme) => [
- q(6922),
+ q(6914),
q(0),
],
q(unggaranggu) => [
- q(7544),
+ q(7536),
q(0),
],
q(unggumi) => [
- q(7355),
+ q(7347),
+ q(0),
+ ],
+ q(ungkue) => [
+ q(2541),
q(0),
],
q(unserdeutsch) => [
- q(6906),
+ q(6898),
q(0),
],
q(unua) => [
- q(5287),
+ q(5279),
q(0),
],
q(unubahe) => [
- q(6928),
- q(0),
- ],
- q(uokha) => [
- q(6931),
+ q(6920),
q(0),
],
q(upper chehalis) => [
- q(1749),
+ q(1744),
q(0),
],
q(upper grand valley dani) => [
- q(2103),
+ q(2098),
q(0),
],
q(upper guinea crioulo) => [
- q(5576),
+ q(5567),
q(0),
],
q(upper kinabatangan) => [
- q(2091),
+ q(2086),
q(0),
],
q(upper kuskokwim) => [
- q(3663),
+ q(3660),
q(0),
],
q(upper necaxa totonac) => [
- q(6569),
+ q(6560),
q(0),
],
q(upper saxon) => [
- q(6341),
+ q(6332),
q(0),
],
q(upper sorbian) => [
@@ -54504,39 +54542,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(upper ta'oih) => [
- q(6750),
+ q(6741),
q(0),
],
q(upper tanana) => [
- q(6381),
+ q(6373),
q(0),
],
q(upper taromi) => [
- q(6658),
+ q(6650),
q(0),
],
q(upper umpqua) => [
- q(7546),
+ q(7538),
q(0),
],
q(ura (papua new guinea)) => [
- q(6946),
+ q(6937),
q(0),
],
q(ura (vanuatu)) => [
- q(6969),
+ q(6960),
q(0),
],
q(uradhi) => [
- q(6938),
+ q(6929),
q(0),
],
q(urak lawoi') => [
- q(6942),
+ q(6933),
q(0),
],
q(urali) => [
- q(6943),
+ q(6934),
q(0),
],
q(uralic languages) => [
@@ -54544,19 +54582,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(urapmin) => [
- q(6944),
+ q(6935),
q(0),
],
q(urarina) => [
- q(6934),
+ q(6925),
q(0),
],
q(urartian) => [
- q(7547),
+ q(7539),
q(0),
],
q(urat) => [
- q(6949),
+ q(6940),
q(0),
],
q(urdu) => [
@@ -54564,115 +54602,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(urhobo) => [
- q(6940),
+ q(6931),
q(0),
],
q(uri) => [
- q(6972),
+ q(6963),
q(0),
],
q(urigina) => [
- q(6939),
+ q(6930),
q(0),
],
q(urim) => [
- q(6941),
+ q(6932),
q(0),
],
q(urimo) => [
- q(6953),
+ q(6944),
q(0),
],
q(uripiv-wala-rano-atchin) => [
- q(6933),
+ q(6924),
q(0),
],
q(urningangg) => [
- q(6936),
+ q(6927),
q(0),
],
q(uru) => [
- q(6937),
+ q(6928),
q(0),
],
q(uru-eu-wau-wau) => [
- q(6955),
+ q(6946),
q(0),
],
q(uru-pa-in) => [
- q(6947),
+ q(6938),
q(0),
],
q(uruangnirin) => [
- q(6945),
+ q(6936),
q(0),
],
q(uruava) => [
- q(6951),
+ q(6942),
q(0),
],
q(urubu-kaapor) => [
- q(6935),
+ q(6926),
q(0),
],
q(urubu-kaapor sign language) => [
- q(6893),
+ q(6885),
q(0),
],
q(uruguayan sign language) => [
- q(6881),
+ q(6873),
q(0),
],
q(urum) => [
- q(6967),
+ q(6958),
q(0),
],
q(urumi) => [
- q(6950),
+ q(6941),
q(0),
],
q(usaghade) => [
- q(6959),
+ q(6950),
q(0),
],
q(usan) => [
- q(7201),
+ q(7192),
q(0),
],
q(usarufa) => [
- q(6956),
+ q(6947),
q(0),
],
q(ushojo) => [
- q(6957),
+ q(6948),
q(0),
],
q(usila chinantec) => [
- q(1909),
+ q(1904),
q(0),
],
q(usku) => [
- q(6901),
+ q(6893),
q(0),
],
q(uspanteco) => [
- q(6960),
+ q(6951),
q(0),
],
q(usui) => [
- q(6958),
+ q(6949),
q(0),
],
q(ut-ma'in) => [
- q(2485),
+ q(2481),
q(0),
],
q(utarmbung) => [
- q(5267),
+ q(5259),
q(0),
],
q(ute-southern paiute) => [
- q(6963),
+ q(6954),
q(0),
],
q(uto-aztecan languages) => [
@@ -54680,19 +54718,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(utu) => [
- q(6966),
+ q(6957),
q(0),
],
q(uvbie) => [
- q(2318),
+ q(2314),
q(0),
],
q(uya) => [
- q(6961),
+ q(6952),
q(0),
],
q(uyajitaya) => [
- q(2183),
+ q(2178),
q(0),
],
q(uyghur) => [
@@ -54704,43 +54742,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(uzbeki arabic) => [
- q(0956),
+ q(0953),
q(0),
],
q(uzekwe) => [
- q(2324),
+ q(2320),
q(0),
],
q(v'enen taut) => [
- q(4972),
+ q(4962),
q(1),
],
q(vaagri booli) => [
- q(6978),
+ q(6969),
q(0),
],
q(vaeakau-taumako) => [
- q(5475),
+ q(5467),
q(1),
],
q(vafsi) => [
- q(6980),
+ q(6971),
q(0),
],
q(vaghat-ya-bijim-legeri) => [
- q(1219),
+ q(1216),
q(0),
],
q(vaghri) => [
- q(7003),
+ q(6994),
q(0),
],
q(vaghua) => [
- q(6788),
+ q(6779),
q(0),
],
q(vagla) => [
- q(6981),
+ q(6972),
q(0),
],
q(vai) => [
@@ -54748,11 +54786,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(vaiphei) => [
- q(6988),
+ q(6979),
q(0),
],
q(vale) => [
- q(6979),
+ q(6970),
q(0),
],
q(valencian) => [
@@ -54760,91 +54798,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(valencian sign language) => [
- q(7058),
+ q(7049),
q(0),
],
q(valle nacional chinantec) => [
- q(1927),
+ q(1922),
q(0),
],
q(valley maidu) => [
- q(7044),
+ q(7035),
q(0),
],
q(valman) => [
- q(6986),
+ q(6977),
q(0),
],
q(valpei) => [
- q(7024),
+ q(7015),
q(0),
],
q(vamale) => [
- q(4369),
+ q(4360),
q(0),
],
q(vame) => [
- q(4391),
+ q(4382),
q(0),
],
q(vandalic) => [
- q(7552),
+ q(7544),
q(0),
],
q(vangunu) => [
- q(4480),
+ q(4471),
q(0),
],
q(vanimo) => [
- q(6985),
+ q(6976),
q(0),
],
q(vano) => [
- q(7049),
+ q(7040),
q(0),
],
q(vanuma) => [
- q(6991),
+ q(6982),
q(0),
],
q(vao) => [
- q(6987),
+ q(6978),
q(0),
],
q(varhadi-nagpuri) => [
- q(6982),
+ q(6973),
q(0),
],
q(varisi) => [
- q(7054),
+ q(7045),
q(0),
],
q(varli) => [
- q(6992),
+ q(6983),
q(0),
],
q(vasavi) => [
- q(6990),
+ q(6981),
q(0),
],
- q(vasekela bushman) => [
- q(6983),
- q(0),
+ q(vasekele) => [
+ q(6974),
+ q(3),
],
q(veddah) => [
- q(6997),
+ q(6988),
q(0),
],
q(vehes) => [
- q(6984),
+ q(6975),
q(0),
],
q(veluws) => [
- q(6998),
+ q(6989),
q(0),
],
q(vemgo-mabas) => [
- q(6999),
+ q(6990),
q(0),
],
q(venda) => [
@@ -54852,43 +54890,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(venetian) => [
- q(6996),
+ q(6987),
q(0),
],
q(venetic) => [
- q(7550),
+ q(7542),
q(0),
],
q(venezuelan sign language) => [
- q(7057),
+ q(7048),
q(0),
],
q(vengo) => [
- q(1036),
+ q(1033),
q(0),
],
q(ventureno) => [
- q(7000),
+ q(6991),
q(0),
],
q(veps) => [
- q(7001),
+ q(6992),
q(0),
],
q(vera'a) => [
- q(7053),
+ q(7044),
q(0),
],
q(vestinian) => [
- q(7554),
+ q(7546),
q(0),
],
q(vidunda) => [
- q(7006),
+ q(6997),
q(0),
],
q(viemo) => [
- q(7008),
+ q(6999),
q(0),
],
q(vietnamese) => [
@@ -54896,63 +54934,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(viid) => [
- q(6160),
+ q(6150),
q(1),
],
q(vilela) => [
- q(7009),
+ q(7000),
q(0),
],
q(vili) => [
- q(7007),
+ q(6998),
q(0),
],
q(villa viciosa agta) => [
- q(2205),
+ q(2200),
q(0),
],
q(vincentian creole english) => [
- q(6301),
+ q(6292),
q(0),
],
q(vinmavis) => [
- q(7050),
+ q(7041),
q(0),
],
q(vinza) => [
- q(7010),
+ q(7001),
q(0),
],
q(virgin islands creole english) => [
- q(7005),
+ q(6996),
q(0),
],
q(vishavan) => [
- q(7011),
+ q(7002),
q(0),
],
q(viti) => [
- q(7012),
+ q(7003),
q(0),
],
q(vitou) => [
- q(7059),
+ q(7050),
q(0),
],
q(vitu) => [
- q(7149),
+ q(7140),
q(0),
],
q(vlaams) => [
- q(7025),
+ q(7016),
q(0),
],
q(vlaamse gebarentaal) => [
- q(7004),
+ q(6995),
q(0),
],
q(vlax romani) => [
- q(5835),
+ q(5826),
q(0),
],
q(volapuk) => [
@@ -54960,15 +54998,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(volscian) => [
- q(7553),
+ q(7545),
q(0),
],
q(vono) => [
- q(3218),
+ q(3215),
q(0),
],
q(voro) => [
- q(7052),
+ q(7043),
q(0),
],
q(votic) => [
@@ -54976,199 +55014,199 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(vumbu) => [
- q(7060),
+ q(7051),
q(0),
],
q(vunapu) => [
- q(7051),
+ q(7042),
q(0),
],
q(vunjo) => [
- q(7061),
+ q(7052),
q(0),
],
q(vure) => [
- q(3955),
+ q(3948),
q(1),
],
q(vures) => [
- q(4551),
+ q(4542),
q(0),
],
q(vute) => [
- q(7062),
+ q(7053),
q(0),
],
q(vwanji) => [
- q(7090),
+ q(7081),
q(0),
],
q(wa) => [
- q(7094),
+ q(7085),
q(0),
],
q(wa'ema) => [
- q(7070),
+ q(7061),
q(0),
],
q(waama) => [
- q(7267),
+ q(7258),
q(0),
],
q(waamwang) => [
- q(7184),
+ q(7175),
q(0),
],
q(waata) => [
- q(6250),
+ q(6241),
q(0),
],
q(wab) => [
- q(7065),
+ q(7056),
q(0),
],
q(wabo) => [
- q(7087),
+ q(7078),
q(0),
],
q(waboda) => [
- q(3478),
+ q(3476),
q(0),
],
q(waci gbe) => [
- q(7102),
+ q(7093),
q(0),
],
q(wadaginam) => [
- q(7104),
+ q(7095),
q(0),
],
q(waddar) => [
- q(7096),
+ q(7087),
q(0),
],
q(wadi wadi) => [
- q(7557),
+ q(7549),
q(0),
],
q(wadikali) => [
- q(7106),
+ q(7097),
q(0),
],
q(wadiyara koli) => [
- q(3735),
+ q(3730),
q(0),
],
q(wadjabangayi) => [
- q(7108),
+ q(7099),
q(0),
],
q(wadjiginy) => [
- q(7105),
+ q(7096),
q(0),
],
q(wadjigu) => [
- q(7107),
+ q(7098),
q(0),
],
q(wae rana) => [
- q(7238),
+ q(7229),
q(0),
],
q(waffa) => [
- q(7073),
+ q(7064),
q(0),
],
q(wagawaga) => [
- q(7125),
+ q(7116),
q(0),
],
q(wagaya) => [
- q(7124),
+ q(7115),
q(0),
],
q(wagdi) => [
- q(7097),
+ q(7088),
q(0),
],
q(wageman) => [
- q(7078),
+ q(7069),
q(0),
],
q(wagi) => [
- q(2327),
+ q(2323),
q(0),
],
q(wahau kayan) => [
- q(7134),
+ q(7125),
q(0),
],
q(wahau kenyah) => [
- q(7133),
+ q(7124),
q(0),
],
q(wahgi) => [
- q(7127),
+ q(7118),
q(0),
],
q(waigali) => [
- q(7092),
+ q(7083),
q(0),
],
q(waigeo) => [
- q(7128),
+ q(7119),
q(0),
],
q(wailaki) => [
- q(7165),
+ q(7156),
q(0),
],
q(wailapa) => [
- q(7169),
+ q(7160),
q(0),
],
q(waima) => [
- q(5860),
+ q(5851),
q(0),
],
q(waima'a) => [
- q(7181),
+ q(7172),
q(0),
],
q(waimaha) => [
- q(1032),
+ q(1029),
q(0),
],
q(waimiri-atroari) => [
- q(0925),
+ q(0923),
q(0),
],
q(waioli) => [
- q(7164),
+ q(7155),
q(0),
],
q(waiwai) => [
- q(7082),
+ q(7073),
q(0),
],
q(waja) => [
- q(7151),
+ q(7142),
q(0),
],
q(wajarri) => [
- q(7099),
+ q(7090),
q(0),
],
q(wajuk) => [
- q(7560),
+ q(7552),
q(0),
],
q(waka) => [
- q(7081),
+ q(7072),
q(0),
],
q(wakabunga) => [
- q(7268),
+ q(7259),
q(0),
],
q(wakashan languages) => [
@@ -55176,27 +55214,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(wakawaka) => [
- q(7158),
+ q(7149),
q(0),
],
q(wakde) => [
- q(7155),
+ q(7146),
q(0),
],
q(wakhi) => [
- q(7093),
+ q(7084),
q(0),
],
q(wakona) => [
- q(7069),
+ q(7060),
q(0),
],
q(wala) => [
- q(3897),
+ q(3891),
q(0),
],
q(walak) => [
- q(7173),
+ q(7164),
q(0),
],
q(walamo) => [
@@ -55204,31 +55242,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(walangama) => [
- q(4967),
+ q(4957),
q(0),
],
q(wali (ghana)) => [
- q(7174),
+ q(7165),
q(0),
],
q(wali (sudan)) => [
- q(7166),
+ q(7157),
q(0),
],
q(waling) => [
- q(7175),
+ q(7166),
q(0),
],
q(walio) => [
- q(7160),
+ q(7151),
q(0),
],
q(walla walla) => [
- q(7064),
+ q(7055),
q(0),
],
q(wallisian) => [
- q(7170),
+ q(7161),
q(0),
],
q(walloon) => [
@@ -55236,187 +55274,187 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(walmajarri) => [
- q(7187),
+ q(7178),
q(0),
],
q(walser) => [
- q(7068),
+ q(7059),
q(0),
],
q(walungge) => [
- q(5251),
+ q(5242),
q(0),
],
q(wamas) => [
- q(7178),
+ q(7169),
q(0),
],
q(wambaya) => [
- q(7177),
+ q(7168),
q(0),
],
q(wambon) => [
- q(7186),
+ q(7177),
q(0),
],
q(wambule) => [
- q(7180),
+ q(7171),
q(0),
],
q(wamey) => [
- q(1829),
+ q(1824),
q(0),
],
q(wamin) => [
- q(7182),
+ q(7173),
q(0),
],
q(wampanoag) => [
- q(7074),
+ q(7065),
q(0),
],
q(wampar) => [
- q(3830),
+ q(3825),
q(0),
],
q(wampur) => [
- q(7085),
+ q(7076),
q(0),
],
q(wan) => [
- q(7075),
+ q(7066),
q(0),
],
q(wanambre) => [
- q(7190),
+ q(7181),
q(0),
],
q(wanap) => [
- q(7200),
+ q(7191),
q(0),
],
q(wanbasana) => [
- q(0764),
+ q(0762),
q(1),
],
q(wancho naga) => [
- q(5011),
+ q(5001),
q(0),
],
q(wanda) => [
- q(7089),
+ q(7080),
q(0),
],
q(wandala) => [
- q(4240),
+ q(4232),
q(0),
],
q(wandamen) => [
- q(7067),
+ q(7058),
q(0),
],
q(wandarang) => [
- q(7192),
+ q(7183),
q(0),
],
q(wandji) => [
- q(7103),
+ q(7094),
q(0),
],
q(wane) => [
- q(2883),
+ q(2880),
q(0),
],
q(waneci) => [
- q(7193),
+ q(7184),
q(0),
],
q(wanga) => [
- q(4107),
+ q(4099),
q(0),
],
q(wangaaybuwan-ngiyambaa) => [
- q(7275),
+ q(7266),
q(0),
],
q(wanggamala) => [
- q(7197),
+ q(7188),
q(0),
],
q(wangganguru) => [
- q(7126),
+ q(7117),
q(0),
],
q(wanggom) => [
- q(7194),
+ q(7185),
q(0),
],
q(wangkayutyuru) => [
- q(7159),
+ q(7150),
q(0),
],
q(wangkumara) => [
- q(7561),
+ q(7553),
q(0),
],
q(wanman) => [
- q(7098),
+ q(7089),
q(0),
],
q(wannu) => [
- q(3149),
+ q(3147),
q(0),
],
q(wano) => [
- q(7199),
+ q(7190),
q(0),
],
q(wantoat) => [
- q(7191),
+ q(7182),
q(0),
],
q(wanukaka) => [
- q(7196),
+ q(7187),
q(0),
],
q(wanyi) => [
- q(7203),
+ q(7194),
q(0),
],
q(waorani) => [
- q(0936),
+ q(0934),
q(0),
],
q(wapan) => [
- q(3154),
+ q(3152),
q(0),
],
q(wapha) => [
- q(3164),
+ q(3162),
q(0),
],
q(wapishana) => [
- q(7077),
+ q(7068),
q(0),
],
q(wappo) => [
- q(7076),
+ q(7067),
q(0),
],
q(war-jaintia) => [
- q(0777),
+ q(0775),
q(0),
],
q(wara) => [
- q(6420),
+ q(6412),
q(0),
],
q(warao) => [
- q(7086),
+ q(7077),
q(0),
],
q(warapu) => [
- q(7221),
+ q(7212),
q(0),
],
q(waray) => [
@@ -55424,7 +55462,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(waray (australia)) => [
- q(7240),
+ q(7231),
q(0),
],
q(waray (philippines)) => [
@@ -55432,103 +55470,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(wardaman) => [
- q(7233),
+ q(7224),
q(0),
],
q(wardandi) => [
- q(7273),
+ q(7264),
q(0),
],
q(warduji) => [
- q(7223),
+ q(7214),
q(0),
],
q(warembori) => [
- q(7241),
+ q(7232),
q(0),
],
q(wares) => [
- q(7072),
+ q(7063),
q(0),
],
q(waris) => [
- q(7234),
+ q(7225),
q(0),
],
q(waritai) => [
- q(7088),
+ q(7079),
q(0),
],
q(wariyangga) => [
- q(7226),
+ q(7217),
q(0),
],
q(warji) => [
- q(7152),
+ q(7143),
q(0),
],
q(warkay-bipim) => [
- q(1183),
+ q(1180),
q(0),
],
q(warlmanpa) => [
- q(7228),
+ q(7219),
q(0),
],
q(warlpiri) => [
- q(7095),
+ q(7086),
q(0),
],
q(warluwara) => [
- q(7222),
+ q(7213),
q(0),
],
q(warnang) => [
- q(7230),
+ q(7221),
q(0),
],
q(waropen) => [
- q(7232),
+ q(7223),
q(0),
],
q(warrgamay) => [
- q(7130),
+ q(7121),
q(0),
],
q(warrwa) => [
- q(7270),
+ q(7261),
q(0),
],
q(waru) => [
- q(7235),
+ q(7226),
q(0),
],
q(warumungu) => [
- q(7229),
+ q(7220),
q(0),
],
q(waruna) => [
- q(7236),
+ q(7227),
q(0),
],
q(warungu) => [
- q(7224),
+ q(7215),
q(0),
],
q(warwar feni) => [
- q(2843),
+ q(2840),
q(0),
],
q(wasa) => [
- q(7245),
+ q(7236),
q(0),
],
q(wasco-wishram) => [
- q(7066),
+ q(7057),
q(0),
],
q(wasembo) => [
- q(2640),
+ q(2638),
q(0),
],
q(washo) => [
@@ -55536,107 +55574,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(waskia) => [
- q(7243),
+ q(7234),
q(0),
],
q(wasu) => [
- q(7246),
+ q(7237),
q(0),
],
q(watakataui) => [
- q(7251),
+ q(7242),
q(0),
],
q(watam) => [
- q(7083),
+ q(7074),
q(0),
],
q(wathawurrung) => [
- q(7249),
+ q(7240),
q(0),
],
q(watiwa) => [
- q(7248),
+ q(7239),
q(0),
],
q(watubela) => [
- q(7071),
+ q(7062),
q(0),
],
q(waube) => [
- q(3517),
+ q(3514),
q(0),
],
q(waura) => [
- q(7080),
+ q(7071),
q(0),
],
q(wauyai) => [
- q(7266),
+ q(7257),
q(0),
],
q(wawa) => [
- q(7271),
+ q(7262),
q(0),
],
q(wawonii) => [
- q(7218),
+ q(7209),
q(0),
],
q(waxianghua) => [
- q(7272),
+ q(7263),
q(0),
],
q(wayampi) => [
- q(5351),
+ q(5342),
q(0),
],
q(wayana) => [
- q(7084),
+ q(7075),
q(0),
],
q(wayanad chetti) => [
- q(1904),
+ q(1899),
q(0),
],
q(wayoro) => [
- q(7278),
+ q(7269),
q(0),
],
q(wayu) => [
- q(6993),
+ q(6984),
q(0),
],
q(wayuu) => [
- q(2647),
+ q(2644),
q(0),
],
q(we northern) => [
- q(7205),
+ q(7196),
q(0),
],
q(we southern) => [
- q(2697),
+ q(2694),
q(0),
],
q(we western) => [
- q(7110),
+ q(7101),
q(0),
],
q(wedau) => [
- q(7111),
+ q(7102),
q(0),
],
q(weh) => [
- q(7113),
+ q(7104),
q(0),
],
q(wejewa) => [
- q(7122),
+ q(7113),
q(0),
],
q(weliki) => [
- q(3437),
+ q(3435),
q(0),
],
q(welsh) => [
@@ -55644,59 +55682,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(welsh romani) => [
- q(5833),
+ q(5824),
q(0),
],
q(wemale) => [
- q(7116),
+ q(7107),
q(0),
],
q(wemba wemba) => [
- q(7566),
+ q(7558),
q(0),
],
q(weme gbe) => [
- q(7115),
+ q(7106),
q(0),
],
q(wergaia) => [
- q(7112),
+ q(7103),
q(0),
],
q(weri) => [
- q(7118),
+ q(7109),
q(0),
],
q(wersing) => [
- q(3691),
+ q(3688),
q(0),
],
q(west albay bikol) => [
- q(2342),
+ q(2338),
q(0),
],
q(west ambae) => [
- q(5000),
+ q(4990),
q(0),
],
q(west berawan) => [
- q(7841),
+ q(7830),
q(0),
],
q(west central banda) => [
- q(1055),
+ q(1052),
q(0),
],
q(west central oromo) => [
- q(2423),
+ q(2419),
q(0),
],
q(west coast bajau) => [
- q(1108),
+ q(1105),
q(0),
],
q(west damar) => [
- q(2145),
+ q(2140),
q(0),
],
q(west germanic languages) => [
@@ -55704,23 +55742,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(west goodenough) => [
- q(1986),
+ q(1981),
q(0),
],
q(west kewa) => [
- q(3281),
+ q(3278),
q(0),
],
q(west lembata) => [
- q(3991),
+ q(3984),
q(0),
],
q(west makian) => [
- q(4506),
+ q(4497),
q(0),
],
q(west masela) => [
- q(4556),
+ q(4547),
q(0),
],
q(west slavic languages) => [
@@ -55728,67 +55766,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(west tarangan) => [
- q(6828),
+ q(6820),
q(0),
],
q(west uvean) => [
- q(6971),
+ q(6962),
q(0),
],
q(west yugur) => [
- q(7608),
+ q(7600),
q(0),
],
q(west-central limba) => [
- q(3915),
+ q(3909),
q(0),
],
q(western abnaki) => [
- q(0564),
+ q(0563),
q(0),
],
q(western apache) => [
- q(0857),
+ q(0855),
q(0),
],
q(western arrarnta) => [
- q(0871),
+ q(0870),
q(0),
],
q(western balochi) => [
- q(1175),
+ q(1172),
q(0),
],
q(western bolivian guarani) => [
- q(2585),
+ q(2583),
q(0),
],
q(western bru) => [
- q(1445),
+ q(1441),
q(0),
],
q(western bukidnon manobo) => [
- q(4136),
+ q(4128),
q(0),
],
q(western canadian inuktitut) => [
- q(2949),
+ q(2947),
q(1),
],
q(western cham) => [
- q(1747),
+ q(1742),
q(0),
],
q(western dani) => [
- q(2115),
+ q(2110),
q(0),
],
q(western durango nahuatl) => [
- q(1020),
+ q(1017),
q(0),
],
q(western fijian) => [
- q(7279),
+ q(7270),
q(0),
],
q(western frisian) => [
@@ -55796,59 +55834,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(western gurung) => [
- q(2679),
+ q(2676),
q(0),
],
q(western highland chatino) => [
- q(1902),
+ q(1897),
q(0),
],
q(western highland purepecha) => [
- q(5648),
+ q(5640),
q(0),
],
q(western huasteca nahuatl) => [
- q(4888),
+ q(4878),
q(0),
],
q(western juxtlahuaca mixtec) => [
- q(3128),
+ q(3126),
q(0),
],
q(western kanjobal) => [
- q(3489),
+ q(3487),
q(0),
],
q(western karaboro) => [
- q(3772),
+ q(3767),
q(0),
],
q(western katu) => [
- q(3652),
+ q(3649),
q(0),
],
q(western kayah) => [
- q(3766),
+ q(3761),
q(0),
],
q(western keres) => [
- q(3396),
+ q(3393),
q(0),
],
q(western krahn) => [
- q(3592),
+ q(3589),
q(0),
],
q(western lalu) => [
- q(7796),
+ q(7785),
q(0),
],
q(western lawa) => [
- q(3847),
+ q(3842),
q(0),
],
q(western magar) => [
- q(4517),
+ q(4508),
q(0),
],
q(western malayo-polynesian languages) => [
@@ -55856,39 +55894,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(western maninkakan) => [
- q(4390),
+ q(4381),
q(0),
],
q(western mari) => [
- q(4522),
+ q(4513),
q(0),
],
q(western mashan hmong) => [
- q(2800),
+ q(2797),
q(0),
],
q(western mashan miao) => [
- q(2800),
+ q(2797),
q(1),
],
q(western meohang) => [
- q(5748),
+ q(5739),
q(0),
],
q(western muria) => [
- q(4603),
+ q(4594),
q(0),
],
q(western neo-aramaic) => [
- q(0788),
+ q(0786),
q(0),
],
q(western niger fulfulde) => [
- q(2388),
+ q(2384),
q(0),
],
q(western ojibwa) => [
- q(5232),
+ q(5223),
q(0),
],
q(western pahari languages) => [
@@ -55896,191 +55934,191 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(western panjabi) => [
- q(5539),
+ q(5530),
q(0),
],
q(western parbate kham) => [
- q(3391),
+ q(3388),
q(0),
],
q(western penan) => [
- q(5541),
+ q(5532),
q(0),
],
q(western sisaala) => [
- q(6248),
+ q(6239),
q(0),
],
q(western subanon) => [
- q(6287),
+ q(6278),
q(0),
],
q(western tamang) => [
- q(6441),
+ q(6433),
q(0),
],
q(western tawbuid) => [
- q(6801),
+ q(6792),
q(0),
],
q(western totonac) => [
- q(6692),
+ q(6684),
q(0),
],
q(western tunebo) => [
- q(6619),
+ q(6611),
q(0),
],
q(western xiangxi miao) => [
- q(4415),
+ q(4406),
q(0),
],
q(western xwla gbe) => [
- q(7562),
+ q(7554),
q(0),
],
q(western yiddish) => [
- q(7654),
+ q(7646),
q(0),
],
q(westphalien) => [
- q(7117),
+ q(7108),
q(0),
],
q(wetamut) => [
- q(7269),
+ q(7260),
q(0),
],
q(wewaw) => [
- q(7109),
+ q(7100),
q(0),
],
q(weyto) => [
- q(7219),
+ q(7210),
q(0),
],
q(white gelao) => [
- q(2531),
+ q(2527),
q(0),
],
q(white lachi) => [
- q(4108),
+ q(4100),
q(0),
],
q(whitesands) => [
- q(6631),
+ q(6623),
q(0),
],
q(wiarumus) => [
- q(6768),
+ q(6759),
q(0),
],
q(wichi lhamtes guisnay) => [
- q(4709),
+ q(4699),
q(0),
],
q(wichi lhamtes nocten) => [
- q(4578),
+ q(4569),
q(0),
],
q(wichi lhamtes vejoz) => [
- q(7172),
+ q(7163),
q(0),
],
q(wichita) => [
- q(7136),
+ q(7127),
q(0),
],
q(wik-epa) => [
- q(7137),
+ q(7128),
q(0),
],
q(wik-iiyanh) => [
- q(7142),
+ q(7133),
q(0),
],
q(wik-keyangan) => [
- q(7138),
+ q(7129),
q(0),
],
q(wik-me'anha) => [
- q(7140),
+ q(7131),
q(0),
],
q(wik-mungkan) => [
- q(7145),
+ q(7136),
q(0),
],
q(wik-ngathana) => [
- q(7139),
+ q(7130),
q(0),
],
q(wikalkan) => [
- q(7143),
+ q(7134),
q(0),
],
q(wikngenchera) => [
- q(7254),
+ q(7245),
q(0),
],
q(wilawila) => [
- q(7144),
+ q(7135),
q(0),
],
q(wintu) => [
- q(7202),
+ q(7193),
q(0),
],
q(winye) => [
- q(3615),
+ q(3612),
q(0),
],
q(wipi) => [
- q(2471),
+ q(2467),
q(0),
],
q(wiradhuri) => [
- q(7225),
+ q(7216),
q(0),
],
q(wirafed) => [
- q(7147),
+ q(7138),
q(0),
],
q(wirangu) => [
- q(7129),
+ q(7120),
q(0),
],
q(wiru) => [
- q(7148),
+ q(7139),
q(0),
],
q(wiyot) => [
- q(7150),
+ q(7141),
q(0),
],
q(woccon) => [
- q(7556),
+ q(7548),
q(0),
],
q(wogamusin) => [
- q(7210),
+ q(7201),
q(0),
],
q(wogeo) => [
- q(7206),
+ q(7197),
q(0),
],
q(woi) => [
- q(7100),
+ q(7091),
q(0),
],
q(woiwurrung) => [
- q(7276),
+ q(7267),
q(0),
],
q(wojenaka) => [
- q(3137),
+ q(3135),
q(0),
],
q(wolaitta) => [
@@ -56088,11 +56126,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(wolane) => [
- q(7162),
+ q(7153),
q(0),
],
q(wolani) => [
- q(7207),
+ q(7198),
q(0),
],
q(wolaytta) => [
@@ -56100,11 +56138,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(woleaian) => [
- q(7208),
+ q(7199),
q(0),
],
q(wolio) => [
- q(7168),
+ q(7159),
q(0),
],
q(wolof) => [
@@ -56112,183 +56150,183 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(wom (nigeria)) => [
- q(7213),
+ q(7204),
q(0),
],
q(wom (papua new guinea)) => [
- q(7185),
+ q(7176),
q(0),
],
q(womo) => [
- q(7189),
+ q(7180),
q(0),
],
q(wongo) => [
- q(7214),
+ q(7205),
q(0),
],
q(woods cree) => [
- q(1930),
+ q(1925),
q(0),
],
q(woria) => [
- q(7216),
+ q(7207),
q(0),
],
q(worimi) => [
- q(3237),
+ q(3234),
q(0),
],
q(worodougou) => [
- q(3151),
+ q(3149),
q(0),
],
q(worrorra) => [
- q(7231),
+ q(7222),
q(0),
],
q(wotapuri-katarqalai) => [
- q(7247),
+ q(7238),
q(0),
],
q(wotjobaluk) => [
- q(7565),
+ q(7557),
q(0),
],
q(wotu) => [
- q(7253),
+ q(7244),
q(0),
],
q(woun meu) => [
- q(5022),
+ q(5011),
q(0),
],
q(written oirat) => [
- q(7563),
+ q(7555),
q(0),
],
q(wu chinese) => [
- q(7263),
+ q(7254),
q(0),
],
q(wuding-luquan yi) => [
- q(7798),
+ q(7787),
q(0),
],
q(wudu) => [
- q(7256),
+ q(7247),
q(0),
],
q(wuliwuli) => [
- q(7171),
+ q(7162),
q(0),
],
q(wulna) => [
- q(7265),
+ q(7256),
q(0),
],
q(wumboko) => [
- q(1412),
+ q(1408),
q(0),
],
q(wumbvu) => [
- q(7259),
+ q(7250),
q(0),
],
q(wumeng nasu) => [
- q(7801),
+ q(7790),
q(0),
],
q(wunai bunu) => [
- q(1558),
+ q(1554),
q(0),
],
q(wunambal) => [
- q(7255),
+ q(7246),
q(0),
],
q(wunumara) => [
- q(7198),
+ q(7189),
q(0),
],
q(wurrugu) => [
- q(7261),
+ q(7252),
q(0),
],
q(wusa nasu) => [
- q(7653),
+ q(7645),
q(0),
],
q(wushi) => [
- q(1453),
+ q(1449),
q(0),
],
q(wusi) => [
- q(7242),
+ q(7233),
q(0),
],
q(wutung) => [
- q(7262),
+ q(7253),
q(0),
],
q(wutunhua) => [
- q(7257),
+ q(7248),
q(0),
],
q(wuvulu-aua) => [
- q(7264),
+ q(7255),
q(0),
],
q(wuzlam) => [
- q(6873),
+ q(6865),
q(0),
],
q(wyandot) => [
- q(7274),
+ q(7265),
q(0),
],
q(wymysorys) => [
- q(7277),
+ q(7268),
q(0),
],
q(xaasongaxango) => [
- q(3180),
+ q(3178),
q(0),
],
q(xadani zapotec) => [
- q(7835),
+ q(7824),
q(0),
],
q(xakriaba) => [
- q(7391),
+ q(7384),
q(0),
],
q(xamtanga) => [
- q(7288),
+ q(7280),
q(0),
],
q(xanaguia zapotec) => [
- q(7963),
+ q(7952),
q(0),
],
q(xaracuu) => [
- q(0796),
+ q(0794),
q(0),
],
q(xaragure) => [
- q(0993),
+ q(0990),
q(0),
],
q(xavante) => [
- q(7296),
+ q(7288),
q(0),
],
q(xerente) => [
- q(7341),
+ q(7333),
q(0),
],
q(xeta) => [
- q(7343),
+ q(7335),
q(0),
],
q(xhosa) => [
@@ -56296,163 +56334,163 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(xiang chinese) => [
- q(2848),
+ q(2845),
q(0),
],
q(xibe) => [
- q(6073),
+ q(6063),
q(0),
],
q(xicotepec de juarez totonac) => [
- q(6652),
+ q(6644),
q(0),
],
q(xinca) => [
- q(7368),
+ q(7360),
q(0),
],
q(xingu asurini) => [
- q(0898),
+ q(0897),
q(0),
],
q(xipaya) => [
- q(7372),
+ q(7365),
q(0),
],
q(xipinawa) => [
- q(7369),
+ q(7361),
q(0),
],
q(xiri) => [
- q(7366),
+ q(7358),
q(0),
],
q(xiriana) => [
- q(7370),
+ q(7362),
q(0),
],
q(xishanba lalo) => [
- q(7800),
+ q(7789),
q(0),
],
q(xokleng) => [
- q(7456),
+ q(7449),
q(0),
],
q(xukuru) => [
- q(7459),
+ q(7452),
q(0),
],
q(xwela gbe) => [
- q(7558),
+ q(7550),
q(0),
],
q(yaaku) => [
- q(4604),
+ q(4595),
q(0),
],
q(yabaana) => [
- q(7615),
+ q(7607),
q(0),
],
q(yabarana) => [
- q(7597),
+ q(7589),
q(0),
],
q(yabem) => [
- q(3047),
+ q(3044),
q(0),
],
q(yaben) => [
- q(7614),
+ q(7606),
q(0),
],
q(yabong) => [
- q(7616),
+ q(7608),
q(0),
],
q(yabula yabula) => [
- q(7808),
+ q(7797),
q(0),
],
q(yace) => [
- q(2246),
+ q(2240),
q(0),
],
q(yaeyama) => [
- q(5891),
+ q(5883),
q(0),
],
q(yafi) => [
- q(7123),
+ q(7114),
q(0),
],
q(yagara) => [
- q(7804),
+ q(7793),
q(0),
],
q(yagaria) => [
- q(7646),
+ q(7637),
q(0),
],
q(yagnobi) => [
- q(7590),
+ q(7582),
q(0),
],
q(yagomi) => [
- q(7644),
+ q(7635),
q(0),
],
q(yagua) => [
- q(7585),
+ q(7577),
q(0),
],
q(yagwoia) => [
- q(7648),
+ q(7640),
q(0),
],
q(yahadian) => [
- q(4831),
+ q(4821),
q(0),
],
q(yahang) => [
- q(5793),
+ q(5784),
q(0),
],
q(yahuna) => [
- q(7724),
+ q(7714),
q(0),
],
q(yaka (central african republic)) => [
- q(0990),
+ q(0987),
q(0),
],
q(yaka (congo)) => [
- q(3039),
+ q(3036),
q(0),
],
q(yaka (democratic republic of congo)) => [
- q(7587),
+ q(7579),
q(0),
],
q(yakaikeke) => [
- q(7673),
+ q(7665),
q(0),
],
q(yakama) => [
- q(7592),
+ q(7584),
q(0),
],
q(yakan) => [
- q(7670),
+ q(7662),
q(0),
],
q(yakha) => [
- q(7609),
+ q(7601),
q(0),
],
q(yakoma) => [
- q(7681),
+ q(7673),
q(0),
],
q(yakut) => [
@@ -56460,175 +56498,171 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yala) => [
- q(7606),
+ q(7598),
q(0),
],
q(yalahatan) => [
- q(3052),
+ q(3049),
q(0),
],
q(yalakalore) => [
- q(7576),
+ q(7568),
q(0),
],
q(yalalag zapotec) => [
- q(7943),
+ q(7932),
q(0),
],
q(yalarnnga) => [
- q(7691),
+ q(7683),
q(0),
],
q(yale) => [
- q(4775),
+ q(4765),
q(0),
],
q(yaleba) => [
- q(7683),
+ q(7675),
q(0),
],
q(yalunka) => [
- q(7593),
+ q(7585),
q(0),
],
q(yamana) => [
- q(7588),
+ q(7580),
q(0),
],
q(yamap) => [
- q(7706),
+ q(7698),
q(0),
],
q(yamba) => [
- q(7594),
+ q(7586),
q(0),
],
q(yambes) => [
- q(7694),
+ q(7686),
q(0),
],
q(yambeta) => [
- q(7599),
+ q(7591),
q(0),
],
q(yamdena) => [
- q(3121),
+ q(3119),
q(0),
],
q(yameo) => [
- q(7697),
+ q(7689),
q(0),
],
q(yami) => [
- q(6376),
+ q(6368),
q(0),
],
q(yaminahua) => [
- q(7582),
+ q(7574),
q(0),
],
q(yamna) => [
- q(7704),
+ q(7696),
q(0),
],
q(yamongeri) => [
- q(7698),
+ q(7690),
q(0),
],
q(yamphu) => [
- q(7610),
+ q(7602),
q(0),
],
q(yan-nhangu) => [
- q(3061),
+ q(3058),
q(0),
],
q(yana) => [
- q(7720),
+ q(7710),
q(0),
],
q(yanahuanca pasco quechua) => [
- q(5701),
+ q(5692),
q(0),
],
q(yanda) => [
- q(7623),
+ q(7615),
q(0),
],
q(yanda dom dogon) => [
- q(2207),
+ q(2202),
q(0),
],
q(yandjibara) => [
- q(7573),
+ q(7565),
q(0),
],
q(yandruwandha) => [
- q(7714),
+ q(7705),
q(0),
],
q(yanesha') => [
- q(0771),
+ q(0769),
q(0),
],
q(yang zhuang) => [
- q(7980),
+ q(7969),
q(0),
],
q(yangben) => [
- q(7601),
- q(0),
- ],
- q(yangho) => [
- q(7717),
+ q(7593),
q(0),
],
q(yangkam) => [
- q(1472),
+ q(1468),
q(0),
],
q(yangman) => [
- q(3131),
+ q(3129),
q(0),
],
q(yango) => [
- q(7716),
+ q(7707),
q(0),
],
q(yangulam) => [
- q(7719),
+ q(7709),
q(0),
],
q(yangum dey) => [
- q(7625),
+ q(7617),
q(0),
],
q(yangum gel) => [
- q(7643),
+ q(7634),
q(0),
],
q(yangum mon) => [
- q(7705),
+ q(7697),
q(0),
],
q(yankunytjatjara) => [
- q(3239),
+ q(3236),
q(0),
],
q(yanomami) => [
- q(7101),
+ q(7092),
q(0),
],
q(yanomamo) => [
- q(2664),
+ q(2661),
q(0),
],
q(yansi) => [
- q(7723),
+ q(7713),
q(0),
],
q(yanyuwa) => [
- q(3055),
+ q(3052),
q(0),
],
q(yao) => [
@@ -56636,11 +56670,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yaosakor asmat) => [
- q(0908),
+ q(0907),
q(0),
],
q(yaoure) => [
- q(7746),
+ q(7736),
q(0),
],
q(yapese) => [
@@ -56648,395 +56682,395 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yapunda) => [
- q(7639),
+ q(7630),
q(0),
],
q(yaqay) => [
- q(3056),
+ q(3053),
q(0),
],
q(yaqui) => [
- q(7596),
+ q(7588),
q(0),
],
q(yarawata) => [
- q(7753),
+ q(7743),
q(0),
],
q(yardliyawarra) => [
- q(7805),
+ q(7794),
q(0),
],
q(yareba) => [
- q(7745),
+ q(7735),
q(0),
],
q(yareni zapotec) => [
- q(7818),
+ q(7807),
q(0),
],
q(yari) => [
- q(7747),
+ q(7737),
q(0),
],
q(yarluyandi) => [
- q(7754),
+ q(7744),
q(0),
],
q(yarsun) => [
- q(7752),
+ q(7742),
q(0),
],
q(yasa) => [
- q(7677),
+ q(7669),
q(0),
],
q(yassic) => [
- q(7755),
+ q(7745),
q(0),
],
q(yatay) => [
- q(7769),
+ q(7759),
q(0),
],
q(yatee zapotec) => [
- q(7973),
+ q(7962),
q(0),
],
q(yatzachi zapotec) => [
- q(7833),
+ q(7822),
q(0),
],
q(yau (morobe province)) => [
- q(7788),
+ q(7777),
q(0),
],
q(yau (sandaun province)) => [
- q(7810),
+ q(7799),
q(0),
],
q(yaul) => [
- q(7682),
+ q(7674),
q(0),
],
q(yauma) => [
- q(7603),
+ q(7595),
q(0),
],
q(yaur) => [
- q(3059),
+ q(3056),
q(0),
],
q(yautepec zapotec) => [
- q(7924),
+ q(7913),
q(0),
],
q(yauyos quechua) => [
- q(5705),
+ q(5696),
q(0),
],
q(yavitero) => [
- q(7793),
+ q(7782),
q(0),
],
q(yawa) => [
- q(7792),
+ q(7781),
q(0),
],
q(yawalapiti) => [
- q(7602),
+ q(7594),
q(0),
],
q(yawanawa) => [
- q(7797),
+ q(7786),
q(0),
],
q(yawarawarga) => [
- q(7802),
+ q(7791),
q(0),
],
q(yaweyuha) => [
- q(7618),
+ q(7610),
q(0),
],
q(yawijibaya) => [
- q(3071),
+ q(3068),
q(0),
],
q(yawiyo) => [
- q(7617),
+ q(7609),
q(0),
],
q(yawuru) => [
- q(7799),
+ q(7788),
q(0),
],
q(yaygir) => [
- q(7572),
+ q(7564),
q(0),
],
q(yazgulyam) => [
- q(7589),
+ q(7581),
q(0),
],
q(yecuatla totonac) => [
- q(6575),
+ q(6567),
q(0),
],
q(yei) => [
- q(3081),
+ q(3078),
q(0),
],
q(yekhee) => [
- q(2312),
+ q(2308),
q(0),
],
q(yekora) => [
- q(7678),
+ q(7670),
q(0),
],
q(yela) => [
- q(7634),
+ q(7625),
q(0),
],
q(yele) => [
- q(7684),
+ q(7676),
q(0),
],
q(yelmek) => [
- q(3083),
+ q(3080),
q(0),
],
q(yelogu) => [
- q(7685),
+ q(7677),
q(0),
],
q(yemba) => [
- q(7607),
+ q(7599),
q(0),
],
q(yemsa) => [
- q(3133),
+ q(3131),
q(0),
],
q(yendang) => [
- q(7722),
+ q(7712),
q(0),
],
q(yeni) => [
- q(7632),
+ q(7623),
q(0),
],
q(yeniche) => [
- q(7630),
+ q(7621),
q(0),
],
q(yerakai) => [
- q(7744),
+ q(7734),
q(0),
],
q(yeretuar) => [
- q(2600),
+ q(2598),
q(0),
],
q(yerong) => [
- q(7751),
+ q(7741),
q(0),
],
q(yerukula) => [
- q(7638),
+ q(7629),
q(0),
],
q(yessan-mayo) => [
- q(7763),
+ q(7753),
q(0),
],
q(yetfa) => [
- q(7637),
+ q(7628),
q(0),
],
q(yevanic) => [
- q(7633),
+ q(7624),
q(0),
],
q(yeyi) => [
- q(7640),
+ q(7631),
q(0),
],
q(yiddish) => [
q(0474),
q(0),
],
- q(yiddish sign language) => [
- q(7628),
- q(0),
- ],
q(yidgha) => [
- q(7626),
+ q(7618),
q(0),
],
q(yidiny) => [
- q(7655),
+ q(7647),
q(0),
],
q(yil) => [
- q(7687),
+ q(7679),
q(0),
],
q(yimas) => [
- q(7631),
+ q(7622),
q(0),
],
q(yimchungru naga) => [
- q(7659),
+ q(7651),
q(0),
],
q(yinbaw karen) => [
- q(3689),
+ q(3686),
q(0),
],
q(yinchia) => [
- q(7660),
+ q(7652),
q(0),
],
q(yindjibarndi) => [
- q(7656),
+ q(7648),
q(0),
],
q(yindjilandji) => [
- q(7658),
+ q(7650),
q(0),
],
q(yine) => [
- q(5457),
+ q(5449),
q(0),
],
q(yinggarda) => [
- q(7652),
+ q(7644),
q(0),
],
q(yinhawangka) => [
- q(7795),
+ q(7784),
q(0),
],
q(yiningayi) => [
- q(7642),
+ q(7633),
q(0),
],
q(yintale) => [
- q(3693),
+ q(3690),
q(1),
],
q(yintale karen) => [
- q(3693),
+ q(3690),
q(0),
],
q(yinwum) => [
- q(7806),
+ q(7795),
q(0),
],
q(yipma) => [
- q(1610),
+ q(1605),
q(1),
],
q(yir yoront) => [
- q(7809),
+ q(7798),
q(0),
],
q(yirandali) => [
- q(3943),
+ q(3936),
q(0),
],
q(yirrk-mel) => [
- q(7750),
+ q(7740),
q(0),
],
q(yis) => [
- q(7664),
+ q(7656),
q(0),
],
q(yitha yitha) => [
- q(7520),
+ q(7512),
q(0),
],
q(yiwom) => [
- q(2484),
+ q(2480),
q(0),
],
q(yoba) => [
- q(7725),
+ q(7715),
q(0),
],
q(yocoboue dida) => [
- q(2648),
+ q(2645),
q(0),
],
q(yogad) => [
- q(7726),
+ q(7716),
q(0),
],
q(yoidik) => [
- q(7627),
+ q(7619),
q(0),
],
q(yoke) => [
- q(7672),
+ q(7664),
q(0),
],
q(yokuts) => [
- q(7728),
+ q(7718),
q(0),
],
q(yola) => [
- q(7729),
+ q(7719),
+ q(0),
+ ],
+ q(yolnu sign language) => [
+ q(7638),
q(0),
],
q(yoloxochitl mixtec) => [
- q(7535),
+ q(7527),
q(0),
],
q(yom) => [
- q(5466),
+ q(5458),
q(0),
],
q(yombe) => [
- q(7730),
+ q(7720),
q(0),
],
q(yonaguni) => [
- q(7727),
+ q(7717),
q(0),
],
q(yong) => [
- q(7721),
+ q(7711),
q(0),
],
q(yongbei zhuang) => [
- q(7979),
+ q(7968),
q(0),
],
q(yongkom) => [
- q(7731),
+ q(7721),
q(0),
],
q(yongnan zhuang) => [
- q(7982),
+ q(7971),
q(0),
],
q(yopno) => [
- q(7786),
+ q(7776),
q(0),
],
q(yora) => [
- q(4581),
+ q(4572),
q(0),
],
q(yoron) => [
- q(7733),
+ q(7723),
q(0),
],
q(yorta yorta) => [
- q(7578),
+ q(7570),
q(0),
],
q(yoruba) => [
@@ -57044,103 +57078,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yosondua mixtec) => [
- q(4475),
+ q(4466),
q(0),
],
q(yotti) => [
- q(7732),
+ q(7722),
q(0),
],
q(youjiang zhuang) => [
- q(7981),
+ q(7970),
q(0),
],
q(youle jinuo) => [
- q(3107),
+ q(3104),
q(0),
],
q(younuo bunu) => [
- q(1503),
+ q(1499),
q(0),
],
q(yout wam) => [
- q(7768),
+ q(7758),
q(0),
],
q(yoy) => [
- q(7734),
+ q(7724),
q(0),
],
q(yuanga) => [
- q(5113),
+ q(5103),
q(0),
],
q(yucatec maya) => [
- q(7770),
+ q(7760),
q(1),
],
q(yucatec maya sign language) => [
- q(4541),
+ q(4532),
q(0),
],
q(yucateco) => [
- q(7770),
+ q(7760),
q(0),
],
q(yuchi) => [
- q(7772),
+ q(7762),
q(0),
],
q(yucuane mixtec) => [
- q(4614),
+ q(4605),
q(0),
],
q(yucuna) => [
- q(7621),
+ q(7613),
q(0),
],
q(yue chinese) => [
- q(7774),
+ q(7764),
q(0),
],
q(yug) => [
- q(7776),
+ q(7766),
q(0),
],
q(yugambal) => [
- q(7771),
- q(0),
- ],
- q(yugh) => [
- q(7787),
+ q(7761),
q(0),
],
q(yugoslavian sign language) => [
- q(7758),
+ q(7748),
q(0),
],
q(yugul) => [
- q(7647),
+ q(7639),
q(0),
],
q(yuhup) => [
- q(7583),
+ q(7575),
q(0),
],
q(yuki) => [
- q(7779),
+ q(7769),
q(0),
],
q(yukpa) => [
- q(7783),
+ q(7773),
q(0),
],
q(yukuben) => [
- q(7613),
+ q(7605),
q(0),
],
q(yulu) => [
- q(7780),
+ q(7770),
q(0),
],
q(yupik languages) => [
@@ -57148,79 +57178,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yuqui) => [
- q(7784),
+ q(7774),
q(0),
],
q(yuracare) => [
- q(7791),
+ q(7780),
+ q(0),
+ ],
+ q(yurats) => [
+ q(5859),
q(0),
],
q(yurok) => [
- q(7785),
+ q(7775),
q(0),
],
q(yuru) => [
- q(3944),
+ q(3937),
q(0),
],
q(yuruti) => [
- q(7777),
+ q(7767),
q(0),
],
q(yutanduchi mixtec) => [
- q(4123),
+ q(4115),
q(0),
],
q(yuwana) => [
- q(7600),
+ q(7592),
q(0),
],
q(yuyu) => [
- q(7807),
+ q(7796),
q(0),
],
q(zaachila zapotec) => [
- q(7972),
+ q(7961),
q(0),
],
q(zabana) => [
- q(3388),
+ q(3385),
q(0),
],
q(zacatepec chatino) => [
- q(1906),
+ q(1901),
q(0),
],
q(zacatlan-ahuacatlan-tepetzintla nahuatl) => [
- q(4877),
+ q(4867),
q(0),
],
q(zaghawa) => [
- q(7820),
+ q(7809),
q(0),
],
q(zaiwa) => [
- q(0911),
+ q(0910),
q(0),
],
q(zakhring) => [
- q(7876),
+ q(7865),
q(0),
],
q(zambian sign language) => [
- q(7958),
+ q(7947),
q(0),
],
q(zan gula) => [
- q(7911),
+ q(7900),
q(0),
],
q(zanaki) => [
- q(7824),
+ q(7813),
q(0),
],
q(zande (individual language)) => [
- q(7912),
+ q(7901),
q(0),
],
q(zande languages) => [
@@ -57228,19 +57262,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(zangskari) => [
- q(7832),
+ q(7821),
q(0),
],
q(zangwal) => [
- q(7821),
+ q(7810),
q(0),
],
q(zaniza zapotec) => [
- q(7945),
+ q(7934),
q(0),
],
q(zaparo) => [
- q(7953),
+ q(7942),
q(0),
],
q(zapotec) => [
@@ -57248,39 +57282,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(zaramo) => [
- q(7823),
+ q(7812),
q(0),
],
q(zari) => [
- q(7837),
+ q(7826),
q(0),
],
q(zarma) => [
- q(2066),
+ q(2061),
q(0),
],
q(zarphatic) => [
- q(7954),
+ q(7943),
q(0),
],
q(zauzou) => [
- q(7825),
+ q(7814),
q(0),
],
q(zay) => [
- q(7978),
+ q(7967),
q(0),
],
q(zayein karen) => [
- q(3730),
+ q(3725),
q(0),
],
q(zayse-zergulla) => [
- q(7836),
+ q(7825),
q(0),
],
q(zaysete) => [
- q(7836),
+ q(7825),
q(1),
],
q(zaza) => [
@@ -57292,31 +57326,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(5),
],
q(zazao) => [
- q(3050),
+ q(3047),
q(0),
],
q(zeem) => [
- q(7974),
+ q(7963),
q(0),
],
q(zeeuws) => [
- q(7845),
+ q(7834),
q(0),
],
q(zemba) => [
- q(2030),
+ q(2025),
q(0),
],
q(zeme naga) => [
- q(5188),
+ q(5179),
q(0),
],
q(zemgalian) => [
- q(7580),
+ q(7572),
q(0),
],
q(zenag) => [
- q(7846),
+ q(7835),
q(0),
],
q(zenaga) => [
@@ -57324,27 +57358,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(zenzontepec chatino) => [
- q(1939),
+ q(1934),
q(0),
],
q(zerenkel) => [
- q(7952),
+ q(7941),
q(0),
],
q(zhaba) => [
- q(7853),
+ q(7842),
q(0),
],
q(zhang-zhung) => [
- q(7579),
+ q(7571),
q(0),
],
q(zhire) => [
- q(7855),
+ q(7844),
q(0),
],
q(zhoa) => [
- q(7857),
+ q(7846),
q(0),
],
q(zhuang) => [
@@ -57352,75 +57386,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(zia) => [
- q(7858),
+ q(7847),
q(0),
],
q(zialo) => [
- q(7861),
+ q(7850),
q(0),
],
q(zigula) => [
- q(7865),
+ q(7854),
q(0),
],
q(zimakani) => [
- q(7860),
+ q(7849),
q(0),
],
q(zimba) => [
- q(7886),
+ q(7875),
q(0),
],
q(zimbabwe sign language) => [
- q(7859),
+ q(7848),
q(0),
],
q(zinza) => [
- q(7863),
+ q(7852),
q(0),
],
q(zire) => [
- q(6048),
+ q(6038),
q(0),
],
q(ziriya) => [
- q(7864),
+ q(7853),
q(0),
],
q(zizilivakan) => [
- q(7866),
+ q(7855),
q(0),
],
q(zo'e) => [
- q(5640),
+ q(5631),
q(0),
],
q(zokhuo) => [
- q(7813),
+ q(7802),
q(0),
],
q(zoogocho zapotec) => [
- q(7939),
+ q(7928),
q(0),
],
q(zoroastrian dari) => [
- q(2446),
+ q(2442),
q(0),
],
q(zorop) => [
- q(7123),
+ q(7114),
q(1),
],
q(zotung chin) => [
- q(1941),
+ q(1936),
q(0),
],
q(zou) => [
- q(7918),
+ q(7907),
q(0),
],
q(zulgo-gemzek) => [
- q(2571),
+ q(2569),
q(0),
],
q(zulu) => [
@@ -57428,11 +57462,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(zumaya) => [
- q(7977),
+ q(7966),
q(0),
],
q(zumbun) => [
- q(3119),
+ q(3117),
q(0),
],
q(zuni) => [
@@ -57440,11 +57474,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(zuojiang zhuang) => [
- q(7984),
+ q(7973),
q(0),
],
q(zyphe chin) => [
- q(7983),
+ q(7972),
q(0),
],
};
@@ -58237,24 +58271,20 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0548),
q(0),
],
- q(aam) => [
- q(0549),
- q(0),
- ],
q(aan) => [
- q(0550),
+ q(0549),
q(0),
],
q(aao) => [
- q(0551),
+ q(0550),
q(0),
],
q(aap) => [
- q(0552),
+ q(0551),
q(0),
],
q(aaq) => [
- q(0553),
+ q(0552),
q(0),
],
q(aar) => [
@@ -58262,15 +58292,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aas) => [
- q(0554),
+ q(0553),
q(0),
],
q(aat) => [
- q(0555),
+ q(0554),
q(0),
],
q(aau) => [
- q(0556),
+ q(0555),
q(0),
],
q(aav) => [
@@ -58278,55 +58308,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aaw) => [
- q(0557),
+ q(0556),
q(0),
],
q(aax) => [
- q(0558),
+ q(0557),
q(0),
],
q(aaz) => [
- q(0559),
+ q(0558),
q(0),
],
q(aba) => [
- q(0560),
+ q(0559),
q(0),
],
q(abb) => [
- q(0561),
+ q(0560),
q(0),
],
q(abc) => [
- q(0562),
+ q(0561),
q(0),
],
q(abd) => [
- q(0563),
+ q(0562),
q(0),
],
q(abe) => [
- q(0564),
+ q(0563),
q(0),
],
q(abf) => [
- q(0565),
+ q(0564),
q(0),
],
q(abg) => [
- q(0566),
+ q(0565),
q(0),
],
q(abh) => [
- q(0567),
+ q(0566),
q(0),
],
q(abi) => [
- q(0568),
+ q(0567),
q(0),
],
q(abj) => [
- q(0569),
+ q(0568),
q(0),
],
q(abk) => [
@@ -58334,75 +58364,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(abl) => [
- q(0570),
+ q(0569),
q(0),
],
q(abm) => [
- q(0571),
+ q(0570),
q(0),
],
q(abn) => [
- q(0572),
+ q(0571),
q(0),
],
q(abo) => [
- q(0573),
+ q(0572),
q(0),
],
q(abp) => [
- q(0574),
+ q(0573),
q(0),
],
q(abq) => [
- q(0575),
+ q(0574),
q(0),
],
q(abr) => [
- q(0576),
+ q(0575),
q(0),
],
q(abs) => [
- q(0577),
+ q(0576),
q(0),
],
q(abt) => [
- q(0578),
+ q(0577),
q(0),
],
q(abu) => [
- q(0579),
+ q(0578),
q(0),
],
q(abv) => [
- q(0580),
+ q(0579),
q(0),
],
q(abw) => [
- q(0581),
+ q(0580),
q(0),
],
q(abx) => [
- q(0582),
+ q(0581),
q(0),
],
q(aby) => [
- q(0583),
+ q(0582),
q(0),
],
q(abz) => [
- q(0584),
+ q(0583),
q(0),
],
q(aca) => [
- q(0585),
+ q(0584),
q(0),
],
q(acb) => [
- q(0586),
+ q(0585),
q(0),
],
q(acd) => [
- q(0587),
+ q(0586),
q(0),
],
q(ace) => [
@@ -58410,7 +58440,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(acf) => [
- q(0588),
+ q(0587),
q(0),
],
q(ach) => [
@@ -58418,67 +58448,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aci) => [
- q(0589),
+ q(0588),
q(0),
],
q(ack) => [
- q(0590),
+ q(0589),
q(0),
],
q(acl) => [
- q(0591),
+ q(0590),
q(0),
],
q(acm) => [
- q(0592),
+ q(0591),
q(0),
],
q(acn) => [
- q(0593),
+ q(0592),
q(0),
],
q(acp) => [
- q(0594),
+ q(0593),
q(0),
],
q(acq) => [
- q(0595),
+ q(0594),
q(0),
],
q(acr) => [
- q(0596),
+ q(0595),
q(0),
],
q(acs) => [
- q(0597),
+ q(0596),
q(0),
],
q(act) => [
- q(0598),
+ q(0597),
q(0),
],
q(acu) => [
- q(0599),
+ q(0598),
q(0),
],
q(acv) => [
- q(0600),
+ q(0599),
q(0),
],
q(acw) => [
- q(0601),
+ q(0600),
q(0),
],
q(acx) => [
- q(0602),
+ q(0601),
q(0),
],
q(acy) => [
- q(0603),
+ q(0602),
q(0),
],
q(acz) => [
- q(0604),
+ q(0603),
q(0),
],
q(ada) => [
@@ -58486,79 +58516,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(adb) => [
- q(0605),
+ q(0604),
q(0),
],
q(add) => [
- q(0606),
+ q(0605),
q(0),
],
q(ade) => [
- q(0607),
+ q(0606),
q(0),
],
q(adf) => [
- q(0608),
+ q(0607),
q(0),
],
q(adg) => [
- q(0609),
+ q(0608),
q(0),
],
q(adh) => [
- q(0610),
+ q(0609),
q(0),
],
q(adi) => [
- q(0611),
+ q(0610),
q(0),
],
q(adj) => [
- q(0612),
+ q(0611),
q(0),
],
q(adl) => [
- q(0613),
+ q(0612),
q(0),
],
q(adn) => [
- q(0614),
+ q(0613),
q(0),
],
q(ado) => [
- q(0615),
- q(0),
- ],
- q(adp) => [
- q(0616),
+ q(0614),
q(0),
],
q(adq) => [
- q(0617),
+ q(0615),
q(0),
],
q(adr) => [
- q(0618),
+ q(0616),
q(0),
],
q(ads) => [
- q(0619),
+ q(0617),
q(0),
],
q(adt) => [
- q(0620),
+ q(0618),
q(0),
],
q(adu) => [
- q(0621),
+ q(0619),
q(0),
],
q(adw) => [
- q(0622),
+ q(0620),
q(0),
],
q(adx) => [
- q(0623),
+ q(0621),
q(0),
],
q(ady) => [
@@ -58566,71 +58592,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(adz) => [
- q(0624),
+ q(0622),
q(0),
],
q(aea) => [
- q(0625),
+ q(0623),
q(0),
],
q(aeb) => [
- q(0626),
+ q(0624),
q(0),
],
q(aec) => [
- q(0627),
+ q(0625),
q(0),
],
q(aed) => [
- q(0628),
+ q(0626),
q(0),
],
q(aee) => [
- q(0629),
+ q(0627),
q(0),
],
q(aek) => [
- q(0630),
+ q(0628),
q(0),
],
q(ael) => [
- q(0631),
+ q(0629),
q(0),
],
q(aem) => [
- q(0632),
+ q(0630),
q(0),
],
q(aen) => [
- q(0633),
+ q(0631),
q(0),
],
q(aeq) => [
- q(0634),
+ q(0632),
q(0),
],
q(aer) => [
- q(0635),
+ q(0633),
q(0),
],
q(aes) => [
- q(0636),
+ q(0634),
q(0),
],
q(aeu) => [
- q(0637),
+ q(0635),
q(0),
],
q(aew) => [
- q(0638),
+ q(0636),
q(0),
],
q(aey) => [
- q(0639),
+ q(0637),
q(0),
],
q(aez) => [
- q(0640),
+ q(0638),
q(0),
],
q(afa) => [
@@ -58638,19 +58664,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(afb) => [
- q(0641),
+ q(0639),
q(0),
],
q(afd) => [
- q(0642),
+ q(0640),
q(0),
],
q(afe) => [
- q(0643),
+ q(0641),
q(0),
],
q(afg) => [
- q(0644),
+ q(0642),
q(0),
],
q(afh) => [
@@ -58658,23 +58684,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(afi) => [
- q(0645),
+ q(0643),
q(0),
],
q(afk) => [
- q(0646),
+ q(0644),
q(0),
],
q(afn) => [
- q(0647),
+ q(0645),
q(0),
],
q(afo) => [
- q(0648),
+ q(0646),
q(0),
],
q(afp) => [
- q(0649),
+ q(0647),
q(0),
],
q(afr) => [
@@ -58682,227 +58708,227 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(afs) => [
- q(0650),
+ q(0648),
q(0),
],
q(aft) => [
- q(0651),
+ q(0649),
q(0),
],
q(afu) => [
- q(0652),
+ q(0650),
q(0),
],
q(afz) => [
- q(0653),
+ q(0651),
q(0),
],
q(aga) => [
- q(0654),
+ q(0652),
q(0),
],
q(agb) => [
- q(0655),
+ q(0653),
q(0),
],
q(agc) => [
- q(0656),
+ q(0654),
q(0),
],
q(agd) => [
- q(0657),
+ q(0655),
q(0),
],
q(age) => [
- q(0658),
+ q(0656),
q(0),
],
q(agf) => [
- q(0659),
+ q(0657),
q(0),
],
q(agg) => [
- q(0660),
+ q(0658),
q(0),
],
q(agh) => [
- q(0661),
+ q(0659),
q(0),
],
q(agi) => [
- q(0662),
+ q(0660),
q(0),
],
q(agj) => [
- q(0663),
+ q(0661),
q(0),
],
q(agk) => [
- q(0664),
+ q(0662),
q(0),
],
q(agl) => [
- q(0665),
+ q(0663),
q(0),
],
q(agm) => [
- q(0666),
+ q(0664),
q(0),
],
q(agn) => [
- q(0667),
+ q(0665),
q(0),
],
q(ago) => [
- q(0668),
+ q(0666),
q(0),
],
q(agq) => [
- q(0669),
+ q(0667),
q(0),
],
q(agr) => [
- q(0670),
+ q(0668),
q(0),
],
q(ags) => [
- q(0671),
+ q(0669),
q(0),
],
q(agt) => [
- q(0672),
+ q(0670),
q(0),
],
q(agu) => [
- q(0673),
+ q(0671),
q(0),
],
q(agv) => [
- q(0674),
+ q(0672),
q(0),
],
q(agw) => [
- q(0675),
+ q(0673),
q(0),
],
q(agx) => [
- q(0676),
+ q(0674),
q(0),
],
q(agy) => [
- q(0677),
+ q(0675),
q(0),
],
q(agz) => [
- q(0678),
+ q(0676),
q(0),
],
q(aha) => [
- q(0679),
+ q(0677),
q(0),
],
q(ahb) => [
- q(0680),
+ q(0678),
q(0),
],
q(ahg) => [
- q(0681),
+ q(0679),
q(0),
],
q(ahh) => [
- q(0682),
+ q(0680),
q(0),
],
q(ahi) => [
- q(0683),
+ q(0681),
q(0),
],
q(ahk) => [
- q(0684),
+ q(0682),
q(0),
],
q(ahl) => [
- q(0685),
+ q(0683),
q(0),
],
q(ahm) => [
- q(0686),
+ q(0684),
q(0),
],
q(ahn) => [
- q(0687),
+ q(0685),
q(0),
],
q(aho) => [
- q(0688),
+ q(0686),
q(0),
],
q(ahp) => [
- q(0689),
+ q(0687),
q(0),
],
q(ahr) => [
- q(0690),
+ q(0688),
q(0),
],
q(ahs) => [
- q(0691),
+ q(0689),
q(0),
],
q(aht) => [
- q(0692),
+ q(0690),
q(0),
],
q(aia) => [
- q(0693),
+ q(0691),
q(0),
],
q(aib) => [
- q(0694),
+ q(0692),
q(0),
],
q(aic) => [
- q(0695),
+ q(0693),
q(0),
],
q(aid) => [
- q(0696),
+ q(0694),
q(0),
],
q(aie) => [
- q(0697),
+ q(0695),
q(0),
],
q(aif) => [
- q(0698),
+ q(0696),
q(0),
],
q(aig) => [
- q(0699),
+ q(0697),
q(0),
],
q(aih) => [
- q(0700),
+ q(0698),
q(0),
],
q(aii) => [
- q(0701),
+ q(0699),
q(0),
],
q(aij) => [
- q(0702),
+ q(0700),
q(0),
],
q(aik) => [
- q(0703),
+ q(0701),
q(0),
],
q(ail) => [
- q(0704),
+ q(0702),
q(0),
],
q(aim) => [
- q(0705),
+ q(0703),
q(0),
],
q(ain) => [
@@ -58910,75 +58936,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(aio) => [
- q(0706),
+ q(0704),
q(0),
],
q(aip) => [
- q(0707),
+ q(0705),
q(0),
],
q(aiq) => [
- q(0708),
+ q(0706),
q(0),
],
q(air) => [
- q(0709),
+ q(0707),
q(0),
],
q(ais) => [
- q(0710),
+ q(0708),
q(0),
],
q(ait) => [
- q(0711),
+ q(0709),
q(0),
],
q(aiw) => [
- q(0712),
+ q(0710),
q(0),
],
q(aix) => [
- q(0713),
+ q(0711),
q(0),
],
q(aiy) => [
- q(0714),
+ q(0712),
q(0),
],
q(aja) => [
- q(0715),
+ q(0713),
q(0),
],
q(ajg) => [
- q(0716),
+ q(0714),
q(0),
],
q(aji) => [
- q(0717),
+ q(0715),
q(0),
],
q(ajn) => [
- q(0718),
+ q(0716),
q(0),
],
q(ajp) => [
- q(0719),
+ q(0717),
q(0),
],
q(ajt) => [
- q(0720),
+ q(0718),
q(0),
],
q(aju) => [
- q(0721),
+ q(0719),
q(0),
],
q(ajw) => [
- q(0722),
+ q(0720),
q(0),
],
q(ajz) => [
- q(0723),
+ q(0721),
q(0),
],
q(aka) => [
@@ -58986,39 +59012,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(akb) => [
- q(0724),
+ q(0722),
q(0),
],
q(akc) => [
- q(0725),
+ q(0723),
q(0),
],
q(akd) => [
- q(0726),
+ q(0724),
q(0),
],
q(ake) => [
- q(0727),
+ q(0725),
q(0),
],
q(akf) => [
- q(0728),
+ q(0726),
q(0),
],
q(akg) => [
- q(0729),
+ q(0727),
q(0),
],
q(akh) => [
- q(0730),
+ q(0728),
q(0),
],
q(aki) => [
- q(0731),
+ q(0729),
q(0),
],
q(akj) => [
- q(0732),
+ q(0730),
q(0),
],
q(akk) => [
@@ -59026,63 +59052,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(akl) => [
- q(0733),
+ q(0731),
q(0),
],
q(akm) => [
- q(0734),
+ q(0732),
q(0),
],
q(ako) => [
- q(0735),
+ q(0733),
q(0),
],
q(akp) => [
- q(0736),
+ q(0734),
q(0),
],
q(akq) => [
- q(0737),
+ q(0735),
q(0),
],
q(akr) => [
- q(0738),
+ q(0736),
q(0),
],
q(aks) => [
- q(0739),
+ q(0737),
q(0),
],
q(akt) => [
- q(0740),
+ q(0738),
q(0),
],
q(aku) => [
- q(0741),
+ q(0739),
q(0),
],
q(akv) => [
- q(0742),
+ q(0740),
q(0),
],
q(akw) => [
- q(0743),
+ q(0741),
q(0),
],
q(akx) => [
- q(0744),
+ q(0742),
q(0),
],
q(aky) => [
- q(0745),
+ q(0743),
q(0),
],
q(akz) => [
- q(0746),
+ q(0744),
q(0),
],
q(ala) => [
- q(0747),
+ q(0745),
q(0),
],
q(alb) => [
@@ -59090,11 +59116,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(alc) => [
- q(0748),
+ q(0746),
q(0),
],
q(ald) => [
- q(0749),
+ q(0747),
q(0),
],
q(ale) => [
@@ -59102,7 +59128,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(alf) => [
- q(0750),
+ q(0748),
q(0),
],
q(alg) => [
@@ -59110,51 +59136,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(alh) => [
- q(0751),
+ q(0749),
q(0),
],
q(ali) => [
- q(0752),
+ q(0750),
q(0),
],
q(alj) => [
- q(0753),
+ q(0751),
q(0),
],
q(alk) => [
- q(0754),
+ q(0752),
q(0),
],
q(all) => [
- q(0755),
+ q(0753),
q(0),
],
q(alm) => [
- q(0756),
+ q(0754),
q(0),
],
q(aln) => [
- q(0757),
+ q(0755),
q(0),
],
q(alo) => [
- q(0758),
+ q(0756),
q(0),
],
q(alp) => [
- q(0759),
+ q(0757),
q(0),
],
q(alq) => [
- q(0760),
+ q(0758),
q(0),
],
q(alr) => [
- q(0761),
+ q(0759),
q(0),
],
q(als) => [
- q(0762),
+ q(0760),
q(0),
],
q(alt) => [
@@ -59162,7 +59188,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(alu) => [
- q(0763),
+ q(0761),
q(0),
],
q(alv) => [
@@ -59170,43 +59196,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(alw) => [
- q(0764),
+ q(0762),
q(0),
],
q(alx) => [
- q(0765),
+ q(0763),
q(0),
],
q(aly) => [
- q(0766),
+ q(0764),
q(0),
],
q(alz) => [
- q(0767),
+ q(0765),
q(0),
],
q(ama) => [
- q(0768),
+ q(0766),
q(0),
],
q(amb) => [
- q(0769),
+ q(0767),
q(0),
],
q(amc) => [
- q(0770),
+ q(0768),
q(0),
],
q(ame) => [
- q(0771),
+ q(0769),
q(0),
],
q(amf) => [
- q(0772),
+ q(0770),
q(0),
],
q(amg) => [
- q(0773),
+ q(0771),
q(0),
],
q(amh) => [
@@ -59214,99 +59240,99 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ami) => [
- q(0774),
+ q(0772),
q(0),
],
q(amj) => [
- q(0775),
+ q(0773),
q(0),
],
q(amk) => [
- q(0776),
+ q(0774),
q(0),
],
q(aml) => [
- q(0777),
+ q(0775),
q(0),
],
q(amm) => [
- q(0778),
+ q(0776),
q(0),
],
q(amn) => [
- q(0779),
+ q(0777),
q(0),
],
q(amo) => [
- q(0780),
+ q(0778),
q(0),
],
q(amp) => [
- q(0781),
+ q(0779),
q(0),
],
q(amq) => [
- q(0782),
+ q(0780),
q(0),
],
q(amr) => [
- q(0783),
+ q(0781),
q(0),
],
q(ams) => [
- q(0784),
+ q(0782),
q(0),
],
q(amt) => [
- q(0785),
+ q(0783),
q(0),
],
q(amu) => [
- q(0786),
+ q(0784),
q(0),
],
q(amv) => [
- q(0787),
+ q(0785),
q(0),
],
q(amw) => [
- q(0788),
+ q(0786),
q(0),
],
q(amx) => [
- q(0789),
+ q(0787),
q(0),
],
q(amy) => [
- q(0790),
+ q(0788),
q(0),
],
q(amz) => [
- q(0791),
+ q(0789),
q(0),
],
q(ana) => [
- q(0792),
+ q(0790),
q(0),
],
q(anb) => [
- q(0793),
+ q(0791),
q(0),
],
q(anc) => [
- q(0794),
+ q(0792),
q(0),
],
q(and) => [
- q(0795),
+ q(0793),
q(0),
],
q(ane) => [
- q(0796),
+ q(0794),
q(0),
],
q(anf) => [
- q(0797),
+ q(0795),
q(0),
],
q(ang) => [
@@ -59314,35 +59340,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(anh) => [
- q(0798),
+ q(0796),
q(0),
],
q(ani) => [
- q(0799),
+ q(0797),
q(0),
],
q(anj) => [
- q(0800),
+ q(0798),
q(0),
],
q(ank) => [
- q(0801),
+ q(0799),
q(0),
],
q(anl) => [
- q(0802),
+ q(0800),
q(0),
],
q(anm) => [
- q(0803),
+ q(0801),
q(0),
],
q(ann) => [
- q(0804),
+ q(0802),
q(0),
],
q(ano) => [
- q(0805),
+ q(0803),
q(0),
],
q(anp) => [
@@ -59350,123 +59376,123 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(anq) => [
- q(0806),
+ q(0804),
q(0),
],
q(anr) => [
- q(0807),
+ q(0805),
q(0),
],
q(ans) => [
- q(0808),
+ q(0806),
q(0),
],
q(ant) => [
- q(0809),
+ q(0807),
q(0),
],
q(anu) => [
- q(0810),
+ q(0808),
q(0),
],
q(anv) => [
- q(0811),
+ q(0809),
q(0),
],
q(anw) => [
- q(0812),
+ q(0810),
q(0),
],
q(anx) => [
- q(0813),
+ q(0811),
q(0),
],
q(any) => [
- q(0814),
+ q(0812),
q(0),
],
q(anz) => [
- q(0815),
+ q(0813),
q(0),
],
q(aoa) => [
- q(0816),
+ q(0814),
q(0),
],
q(aob) => [
- q(0817),
+ q(0815),
q(0),
],
q(aoc) => [
- q(0818),
+ q(0816),
q(0),
],
q(aod) => [
- q(0819),
+ q(0817),
q(0),
],
q(aoe) => [
- q(0820),
+ q(0818),
q(0),
],
q(aof) => [
- q(0821),
+ q(0819),
q(0),
],
q(aog) => [
- q(0822),
+ q(0820),
q(0),
],
q(aoh) => [
- q(0823),
+ q(0821),
q(0),
],
q(aoi) => [
- q(0824),
+ q(0822),
q(0),
],
q(aoj) => [
- q(0825),
+ q(0823),
q(0),
],
q(aok) => [
- q(0826),
+ q(0824),
q(0),
],
q(aol) => [
- q(0827),
+ q(0825),
q(0),
],
q(aom) => [
- q(0828),
+ q(0826),
q(0),
],
q(aon) => [
- q(0829),
+ q(0827),
q(0),
],
q(aor) => [
- q(0830),
+ q(0828),
q(0),
],
q(aos) => [
- q(0831),
+ q(0829),
q(0),
],
q(aot) => [
- q(0832),
+ q(0830),
q(0),
],
q(aou) => [
- q(0833),
+ q(0831),
q(0),
],
q(aox) => [
- q(0834),
+ q(0832),
q(0),
],
q(aoz) => [
- q(0835),
+ q(0833),
q(0),
],
q(apa) => [
@@ -59474,103 +59500,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(apb) => [
- q(0836),
+ q(0834),
q(0),
],
q(apc) => [
- q(0837),
+ q(0835),
q(0),
],
q(apd) => [
- q(0838),
+ q(0836),
q(0),
],
q(ape) => [
- q(0839),
+ q(0837),
q(0),
],
q(apf) => [
- q(0840),
+ q(0838),
q(0),
],
q(apg) => [
- q(0841),
+ q(0839),
q(0),
],
q(aph) => [
- q(0842),
+ q(0840),
q(0),
],
q(api) => [
- q(0843),
+ q(0841),
q(0),
],
q(apj) => [
- q(0844),
+ q(0842),
q(0),
],
q(apk) => [
- q(0845),
+ q(0843),
q(0),
],
q(apl) => [
- q(0846),
+ q(0844),
q(0),
],
q(apm) => [
- q(0847),
+ q(0845),
q(0),
],
q(apn) => [
- q(0848),
+ q(0846),
q(0),
],
q(apo) => [
- q(0849),
+ q(0847),
q(0),
],
q(app) => [
- q(0850),
+ q(0848),
q(0),
],
q(apq) => [
- q(0851),
+ q(0849),
q(0),
],
q(apr) => [
- q(0852),
+ q(0850),
q(0),
],
q(aps) => [
- q(0853),
+ q(0851),
q(0),
],
q(apt) => [
- q(0854),
+ q(0852),
q(0),
],
q(apu) => [
- q(0855),
+ q(0853),
q(0),
],
q(apv) => [
- q(0856),
+ q(0854),
q(0),
],
q(apw) => [
- q(0857),
+ q(0855),
q(0),
],
q(apx) => [
- q(0858),
+ q(0856),
q(0),
],
q(apy) => [
- q(0859),
+ q(0857),
q(0),
],
q(apz) => [
- q(0860),
+ q(0858),
q(0),
],
q(aqa) => [
@@ -59578,15 +59604,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aqc) => [
- q(0861),
+ q(0859),
q(0),
],
q(aqd) => [
- q(0862),
+ q(0860),
q(0),
],
q(aqg) => [
- q(0863),
+ q(0861),
q(0),
],
q(aql) => [
@@ -59594,23 +59620,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aqm) => [
- q(0864),
+ q(0862),
q(0),
],
q(aqn) => [
- q(0865),
+ q(0863),
q(0),
],
q(aqp) => [
- q(0866),
+ q(0864),
q(0),
],
q(aqr) => [
- q(0867),
+ q(0865),
+ q(0),
+ ],
+ q(aqt) => [
+ q(0866),
q(0),
],
q(aqz) => [
- q(0868),
+ q(0867),
q(0),
],
q(ara) => [
@@ -59618,7 +59648,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(arb) => [
- q(0869),
+ q(0868),
q(0),
],
q(arc) => [
@@ -59626,11 +59656,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ard) => [
- q(0870),
+ q(0869),
q(0),
],
q(are) => [
- q(0871),
+ q(0870),
q(0),
],
q(arg) => [
@@ -59638,23 +59668,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(arh) => [
- q(0872),
+ q(0871),
q(0),
],
q(ari) => [
- q(0873),
+ q(0872),
q(0),
],
q(arj) => [
- q(0874),
+ q(0873),
q(0),
],
q(ark) => [
- q(0875),
+ q(0874),
q(0),
],
q(arl) => [
- q(0876),
+ q(0875),
q(0),
],
q(arm) => [
@@ -59666,7 +59696,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aro) => [
- q(0877),
+ q(0876),
q(0),
],
q(arp) => [
@@ -59674,15 +59704,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(arq) => [
- q(0878),
+ q(0877),
q(0),
],
q(arr) => [
- q(0879),
+ q(0878),
q(0),
],
q(ars) => [
- q(0880),
+ q(0879),
q(0),
],
q(art) => [
@@ -59690,11 +59720,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aru) => [
- q(0881),
+ q(0880),
q(0),
],
q(arv) => [
- q(0882),
+ q(0881),
q(0),
],
q(arw) => [
@@ -59702,63 +59732,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(arx) => [
- q(0883),
+ q(0882),
q(0),
],
q(ary) => [
- q(0884),
+ q(0883),
q(0),
],
q(arz) => [
- q(0885),
+ q(0884),
q(0),
],
q(asa) => [
- q(0886),
+ q(0885),
q(0),
],
q(asb) => [
- q(0887),
+ q(0886),
q(0),
],
q(asc) => [
- q(0888),
+ q(0887),
q(0),
],
q(asd) => [
- q(0889),
+ q(0888),
q(0),
],
q(ase) => [
- q(0890),
+ q(0889),
q(0),
],
q(asf) => [
- q(0891),
+ q(0890),
q(0),
],
q(asg) => [
- q(0892),
+ q(0891),
q(0),
],
q(ash) => [
- q(0893),
+ q(0892),
q(0),
],
q(asi) => [
- q(0894),
+ q(0893),
q(0),
],
q(asj) => [
- q(0895),
+ q(0894),
q(0),
],
q(ask) => [
- q(0896),
+ q(0895),
q(0),
],
q(asl) => [
- q(0897),
+ q(0896),
q(0),
],
q(asm) => [
@@ -59766,27 +59796,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(asn) => [
- q(0898),
+ q(0897),
q(0),
],
q(aso) => [
- q(0899),
+ q(0898),
q(0),
],
q(asp) => [
- q(0900),
+ q(0899),
q(0),
],
q(asq) => [
- q(0901),
+ q(0900),
q(0),
],
q(asr) => [
- q(0902),
+ q(0901),
q(0),
],
q(ass) => [
- q(0903),
+ q(0902),
q(0),
],
q(ast) => [
@@ -59794,51 +59824,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(asu) => [
- q(0904),
+ q(0903),
q(0),
],
q(asv) => [
- q(0905),
+ q(0904),
q(0),
],
q(asw) => [
- q(0906),
+ q(0905),
q(0),
],
q(asx) => [
- q(0907),
+ q(0906),
q(0),
],
q(asy) => [
- q(0908),
+ q(0907),
q(0),
],
q(asz) => [
- q(0909),
+ q(0908),
q(0),
],
q(ata) => [
- q(0910),
+ q(0909),
q(0),
],
q(atb) => [
- q(0911),
+ q(0910),
q(0),
],
q(atc) => [
- q(0912),
+ q(0911),
q(0),
],
q(atd) => [
- q(0913),
+ q(0912),
q(0),
],
q(ate) => [
- q(0914),
+ q(0913),
q(0),
],
q(atg) => [
- q(0915),
+ q(0914),
q(0),
],
q(ath) => [
@@ -59846,95 +59876,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ati) => [
- q(0916),
+ q(0915),
q(0),
],
q(atj) => [
- q(0917),
+ q(0916),
q(0),
],
q(atk) => [
- q(0918),
+ q(0917),
q(0),
],
q(atl) => [
- q(0919),
+ q(0918),
q(0),
],
q(atm) => [
- q(0920),
+ q(0919),
q(0),
],
q(atn) => [
- q(0921),
+ q(0920),
q(0),
],
q(ato) => [
- q(0922),
+ q(0830),
q(0),
],
q(atp) => [
- q(0923),
+ q(0921),
q(0),
],
q(atq) => [
- q(0924),
+ q(0922),
q(0),
],
q(atr) => [
- q(0925),
+ q(0923),
q(0),
],
q(ats) => [
- q(0926),
+ q(0924),
q(0),
],
q(att) => [
- q(0927),
+ q(0925),
q(0),
],
q(atu) => [
- q(0928),
+ q(0926),
q(0),
],
q(atv) => [
- q(0929),
+ q(0927),
q(0),
],
q(atw) => [
- q(0930),
+ q(0928),
q(0),
],
q(atx) => [
- q(0931),
+ q(0929),
q(0),
],
q(aty) => [
- q(0932),
+ q(0930),
q(0),
],
q(atz) => [
- q(0933),
+ q(0931),
q(0),
],
q(aua) => [
- q(0934),
+ q(0932),
q(0),
],
q(aub) => [
- q(0935),
+ q(0933),
q(0),
],
q(auc) => [
- q(0936),
+ q(0934),
q(0),
],
q(aud) => [
- q(0937),
- q(0),
- ],
- q(aue) => [
- q(0938),
+ q(0935),
q(0),
],
q(auf) => [
@@ -59942,51 +59968,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aug) => [
- q(0939),
+ q(0936),
q(0),
],
q(auh) => [
- q(0940),
+ q(0937),
q(0),
],
q(aui) => [
- q(0941),
+ q(0938),
q(0),
],
q(auj) => [
- q(0942),
+ q(0939),
q(0),
],
q(auk) => [
- q(0943),
+ q(0940),
q(0),
],
q(aul) => [
- q(0944),
+ q(0941),
q(0),
],
q(aum) => [
- q(0945),
+ q(0942),
q(0),
],
q(aun) => [
- q(0946),
+ q(0943),
q(0),
],
q(auo) => [
- q(0947),
+ q(0944),
q(0),
],
q(aup) => [
- q(0948),
+ q(0945),
q(0),
],
q(auq) => [
- q(0949),
+ q(0946),
q(0),
],
q(aur) => [
- q(0950),
+ q(0947),
q(0),
],
q(aus) => [
@@ -59994,27 +60020,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aut) => [
- q(0951),
+ q(0948),
q(0),
],
q(auu) => [
- q(0952),
+ q(0949),
q(0),
],
q(auw) => [
- q(0953),
+ q(0950),
q(0),
],
q(aux) => [
- q(0954),
+ q(0951),
q(0),
],
q(auy) => [
- q(0955),
+ q(0952),
q(0),
],
q(auz) => [
- q(0956),
+ q(0953),
q(0),
],
q(ava) => [
@@ -60022,11 +60048,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(avb) => [
- q(0957),
+ q(0954),
q(0),
],
q(avd) => [
- q(0958),
+ q(0955),
q(0),
],
q(ave) => [
@@ -60034,43 +60060,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(avi) => [
- q(0959),
+ q(0956),
q(0),
],
q(avk) => [
- q(0960),
+ q(0957),
q(0),
],
q(avl) => [
- q(0961),
+ q(0958),
q(0),
],
q(avm) => [
- q(0962),
+ q(0959),
q(0),
],
q(avn) => [
- q(0963),
+ q(0960),
q(0),
],
q(avo) => [
- q(0964),
+ q(0961),
q(0),
],
q(avs) => [
- q(0965),
+ q(0962),
q(0),
],
q(avt) => [
- q(0966),
+ q(0963),
q(0),
],
q(avu) => [
- q(0967),
+ q(0964),
q(0),
],
q(avv) => [
- q(0968),
+ q(0965),
q(0),
],
q(awa) => [
@@ -60078,11 +60104,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(awb) => [
- q(0969),
+ q(0966),
q(0),
],
q(awc) => [
- q(0970),
+ q(0967),
q(0),
],
q(awd) => [
@@ -60090,135 +60116,135 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(awe) => [
- q(0971),
+ q(0968),
q(0),
],
q(awg) => [
- q(0972),
+ q(0969),
q(0),
],
q(awh) => [
- q(0973),
+ q(0970),
q(0),
],
q(awi) => [
- q(0974),
+ q(0971),
q(0),
],
q(awk) => [
- q(0975),
+ q(0972),
q(0),
],
q(awm) => [
- q(0976),
+ q(0973),
q(0),
],
q(awn) => [
- q(0977),
+ q(0974),
q(0),
],
q(awo) => [
- q(0978),
+ q(0975),
q(0),
],
q(awr) => [
- q(0979),
+ q(0976),
q(0),
],
q(aws) => [
- q(0980),
+ q(0977),
q(0),
],
q(awt) => [
- q(0981),
+ q(0978),
q(0),
],
q(awu) => [
- q(0982),
+ q(0979),
q(0),
],
q(awv) => [
- q(0983),
+ q(0980),
q(0),
],
q(aww) => [
- q(0984),
+ q(0981),
q(0),
],
q(awx) => [
- q(0985),
+ q(0982),
q(0),
],
q(awy) => [
- q(0986),
+ q(0983),
q(0),
],
q(axb) => [
- q(0987),
+ q(0984),
q(0),
],
q(axe) => [
- q(0988),
+ q(0985),
q(0),
],
q(axg) => [
- q(0989),
+ q(0986),
q(0),
],
q(axk) => [
- q(0990),
+ q(0987),
q(0),
],
q(axl) => [
- q(0991),
+ q(0988),
q(0),
],
q(axm) => [
- q(0992),
+ q(0989),
q(0),
],
q(axx) => [
- q(0993),
+ q(0990),
q(0),
],
q(aya) => [
- q(0994),
+ q(0991),
q(0),
],
q(ayb) => [
- q(0995),
+ q(0992),
q(0),
],
q(ayc) => [
- q(0996),
+ q(0993),
q(0),
],
q(ayd) => [
- q(0997),
+ q(0994),
q(0),
],
q(aye) => [
- q(0998),
+ q(0995),
q(0),
],
q(ayg) => [
- q(0999),
+ q(0996),
q(0),
],
q(ayh) => [
- q(1000),
+ q(0997),
q(0),
],
q(ayi) => [
- q(1001),
+ q(0998),
q(0),
],
q(ayk) => [
- q(1002),
+ q(0999),
q(0),
],
q(ayl) => [
- q(1003),
+ q(1000),
q(0),
],
q(aym) => [
@@ -60226,51 +60252,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ayn) => [
- q(1004),
+ q(1001),
q(0),
],
q(ayo) => [
- q(1005),
+ q(1002),
q(0),
],
q(ayp) => [
- q(1006),
+ q(1003),
q(0),
],
q(ayq) => [
- q(1007),
+ q(1004),
q(0),
],
q(ayr) => [
- q(1008),
+ q(1005),
q(0),
],
q(ays) => [
- q(1009),
+ q(1006),
q(0),
],
q(ayt) => [
- q(1010),
+ q(1007),
q(0),
],
q(ayu) => [
- q(1011),
+ q(1008),
q(0),
],
q(ayy) => [
- q(1012),
+ q(1009),
q(0),
],
q(ayz) => [
- q(1013),
+ q(1010),
q(0),
],
q(aza) => [
- q(1014),
+ q(1011),
q(0),
],
q(azb) => [
- q(1015),
+ q(1012),
q(0),
],
q(azc) => [
@@ -60278,7 +60304,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(azd) => [
- q(1016),
+ q(1013),
q(0),
],
q(aze) => [
@@ -60286,43 +60312,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(azg) => [
- q(1017),
+ q(1014),
q(0),
],
q(azj) => [
- q(1018),
+ q(1015),
q(0),
],
q(azm) => [
- q(1019),
+ q(1016),
q(0),
],
q(azn) => [
- q(1020),
+ q(1017),
q(0),
],
q(azo) => [
- q(1021),
+ q(1018),
q(0),
],
q(azt) => [
- q(1022),
+ q(1019),
q(0),
],
q(azz) => [
- q(1023),
+ q(1020),
q(0),
],
q(baa) => [
- q(1024),
+ q(1021),
q(0),
],
q(bab) => [
- q(1025),
+ q(1022),
q(0),
],
q(bac) => [
- q(1026),
+ q(1023),
q(0),
],
q(bad) => [
@@ -60330,19 +60356,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bae) => [
- q(1027),
+ q(1024),
q(0),
],
q(baf) => [
- q(1028),
+ q(1025),
q(0),
],
q(bag) => [
- q(1029),
+ q(1026),
q(0),
],
q(bah) => [
- q(1030),
+ q(1027),
q(0),
],
q(bai) => [
@@ -60350,7 +60376,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(baj) => [
- q(1031),
+ q(1028),
q(0),
],
q(bak) => [
@@ -60370,11 +60396,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bao) => [
- q(1032),
+ q(1029),
q(0),
],
q(bap) => [
- q(1033),
+ q(1030),
q(0),
],
q(baq) => [
@@ -60382,7 +60408,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bar) => [
- q(1034),
+ q(1031),
q(0),
],
q(bas) => [
@@ -60394,367 +60420,367 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bau) => [
- q(1035),
+ q(1032),
q(0),
],
q(bav) => [
- q(1036),
+ q(1033),
q(0),
],
q(baw) => [
- q(1037),
+ q(1034),
q(0),
],
q(bax) => [
- q(1038),
+ q(1035),
q(0),
],
q(bay) => [
- q(1039),
+ q(1036),
q(0),
],
q(bba) => [
- q(1040),
+ q(1037),
q(0),
],
q(bbb) => [
- q(1041),
+ q(1038),
q(0),
],
q(bbc) => [
- q(1042),
+ q(1039),
q(0),
],
q(bbd) => [
- q(1043),
+ q(1040),
q(0),
],
q(bbe) => [
- q(1044),
+ q(1041),
q(0),
],
q(bbf) => [
- q(1045),
+ q(1042),
q(0),
],
q(bbg) => [
- q(1046),
+ q(1043),
q(0),
],
q(bbh) => [
- q(1047),
+ q(1044),
q(0),
],
q(bbi) => [
- q(1048),
+ q(1045),
q(0),
],
q(bbj) => [
- q(1049),
+ q(1046),
q(0),
],
q(bbk) => [
- q(1050),
+ q(1047),
q(0),
],
q(bbl) => [
- q(1051),
+ q(1048),
q(0),
],
q(bbm) => [
- q(1052),
+ q(1049),
q(0),
],
q(bbn) => [
- q(1053),
+ q(1050),
q(0),
],
q(bbo) => [
- q(1054),
+ q(1051),
q(0),
],
q(bbp) => [
- q(1055),
+ q(1052),
q(0),
],
q(bbq) => [
- q(1056),
+ q(1053),
q(0),
],
q(bbr) => [
- q(1057),
+ q(1054),
q(0),
],
q(bbs) => [
- q(1058),
+ q(1055),
q(0),
],
q(bbt) => [
- q(1059),
+ q(1056),
q(0),
],
q(bbu) => [
- q(1060),
+ q(1057),
q(0),
],
q(bbv) => [
- q(1061),
+ q(1058),
q(0),
],
q(bbw) => [
- q(1062),
+ q(1059),
q(0),
],
q(bbx) => [
- q(1063),
+ q(1060),
q(0),
],
q(bby) => [
- q(1064),
+ q(1061),
q(0),
],
q(bbz) => [
- q(1065),
+ q(1062),
q(0),
],
q(bca) => [
- q(1066),
+ q(1063),
q(0),
],
q(bcb) => [
- q(1067),
+ q(1064),
q(0),
],
q(bcc) => [
- q(1068),
+ q(1065),
q(0),
],
q(bcd) => [
- q(1069),
+ q(1066),
q(0),
],
q(bce) => [
- q(1070),
+ q(1067),
q(0),
],
q(bcf) => [
- q(1071),
+ q(1068),
q(0),
],
q(bcg) => [
- q(1072),
+ q(1069),
q(0),
],
q(bch) => [
- q(1073),
+ q(1070),
q(0),
],
q(bci) => [
- q(1074),
+ q(1071),
q(0),
],
q(bcj) => [
- q(1075),
+ q(1072),
q(0),
],
q(bck) => [
- q(1076),
+ q(1073),
q(0),
],
q(bcl) => [
- q(1077),
+ q(1074),
q(0),
],
q(bcm) => [
- q(1078),
+ q(1075),
q(0),
],
q(bcn) => [
- q(1079),
+ q(1076),
q(0),
],
q(bco) => [
- q(1080),
+ q(1077),
q(0),
],
q(bcp) => [
- q(1081),
+ q(1078),
q(0),
],
q(bcq) => [
- q(1082),
+ q(1079),
q(0),
],
q(bcr) => [
- q(1083),
+ q(1080),
q(0),
],
q(bcs) => [
- q(1084),
+ q(1081),
q(0),
],
q(bct) => [
- q(1085),
+ q(1082),
q(0),
],
q(bcu) => [
- q(1086),
+ q(1083),
q(0),
],
q(bcv) => [
- q(1087),
+ q(1084),
q(0),
],
q(bcw) => [
- q(1088),
+ q(1085),
q(0),
],
q(bcy) => [
- q(1089),
+ q(1086),
q(0),
],
q(bcz) => [
- q(1090),
+ q(1087),
q(0),
],
q(bda) => [
- q(1091),
+ q(1088),
q(0),
],
q(bdb) => [
- q(1092),
+ q(1089),
q(0),
],
q(bdc) => [
- q(1093),
+ q(1090),
q(0),
],
q(bdd) => [
- q(1094),
+ q(1091),
q(0),
],
q(bde) => [
- q(1095),
+ q(1092),
q(0),
],
q(bdf) => [
- q(1096),
+ q(1093),
q(0),
],
q(bdg) => [
- q(1097),
+ q(1094),
q(0),
],
q(bdh) => [
- q(1098),
+ q(1095),
q(0),
],
q(bdi) => [
- q(1099),
+ q(1096),
q(0),
],
q(bdj) => [
- q(1100),
+ q(1097),
q(0),
],
q(bdk) => [
- q(1101),
+ q(1098),
q(0),
],
q(bdl) => [
- q(1102),
+ q(1099),
q(0),
],
q(bdm) => [
- q(1103),
+ q(1100),
q(0),
],
q(bdn) => [
- q(1104),
+ q(1101),
q(0),
],
q(bdo) => [
- q(1105),
+ q(1102),
q(0),
],
q(bdp) => [
- q(1106),
+ q(1103),
q(0),
],
q(bdq) => [
- q(1107),
+ q(1104),
q(0),
],
q(bdr) => [
- q(1108),
+ q(1105),
q(0),
],
q(bds) => [
- q(1109),
+ q(1106),
q(0),
],
q(bdt) => [
- q(1110),
+ q(1107),
q(0),
],
q(bdu) => [
- q(1111),
+ q(1108),
q(0),
],
q(bdv) => [
- q(1112),
+ q(1109),
q(0),
],
q(bdw) => [
- q(1113),
+ q(1110),
q(0),
],
q(bdx) => [
- q(1114),
+ q(1111),
q(0),
],
q(bdy) => [
- q(1115),
+ q(1112),
q(0),
],
q(bdz) => [
- q(1116),
+ q(1113),
q(0),
],
q(bea) => [
- q(1117),
+ q(1114),
q(0),
],
q(beb) => [
- q(1118),
+ q(1115),
q(0),
],
q(bec) => [
- q(1119),
+ q(1116),
q(0),
],
q(bed) => [
- q(1120),
+ q(1117),
q(0),
],
q(bee) => [
- q(1121),
+ q(1118),
q(0),
],
q(bef) => [
- q(1122),
+ q(1119),
q(0),
],
q(beg) => [
- q(1123),
+ q(1120),
q(0),
],
q(beh) => [
- q(1124),
+ q(1121),
q(0),
],
q(bei) => [
- q(1125),
+ q(1122),
q(0),
],
q(bej) => [
@@ -60762,7 +60788,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bek) => [
- q(1126),
+ q(1123),
q(0),
],
q(bel) => [
@@ -60778,15 +60804,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(beo) => [
- q(1127),
+ q(1124),
q(0),
],
q(bep) => [
- q(1128),
+ q(1125),
q(0),
],
q(beq) => [
- q(1129),
+ q(1126),
q(0),
],
q(ber) => [
@@ -60794,287 +60820,287 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bes) => [
- q(1130),
+ q(1127),
q(0),
],
q(bet) => [
- q(1131),
+ q(1128),
q(0),
],
q(beu) => [
- q(1132),
+ q(1129),
q(0),
],
q(bev) => [
- q(1133),
+ q(1130),
q(0),
],
q(bew) => [
- q(1134),
+ q(1131),
q(0),
],
q(bex) => [
- q(1135),
+ q(1132),
q(0),
],
q(bey) => [
- q(1136),
+ q(1133),
q(0),
],
q(bez) => [
- q(1137),
+ q(1134),
q(0),
],
q(bfa) => [
- q(1138),
+ q(1135),
q(0),
],
q(bfb) => [
- q(1139),
+ q(1136),
q(0),
],
q(bfc) => [
- q(1140),
+ q(1137),
q(0),
],
q(bfd) => [
- q(1141),
+ q(1138),
q(0),
],
q(bfe) => [
- q(1142),
+ q(1139),
q(0),
],
q(bff) => [
- q(1143),
+ q(1140),
q(0),
],
q(bfg) => [
- q(1144),
+ q(1141),
q(0),
],
q(bfh) => [
- q(1145),
+ q(1142),
q(0),
],
q(bfi) => [
- q(1146),
+ q(1143),
q(0),
],
q(bfj) => [
- q(1147),
+ q(1144),
q(0),
],
q(bfk) => [
- q(1148),
+ q(1145),
q(0),
],
q(bfl) => [
- q(1149),
+ q(1146),
q(0),
],
q(bfm) => [
- q(1150),
+ q(1147),
q(0),
],
q(bfn) => [
- q(1151),
+ q(1148),
q(0),
],
q(bfo) => [
- q(1152),
+ q(1149),
q(0),
],
q(bfp) => [
- q(1153),
+ q(1150),
q(0),
],
q(bfq) => [
- q(1154),
+ q(1151),
q(0),
],
q(bfr) => [
- q(1155),
+ q(1152),
q(0),
],
q(bfs) => [
- q(1156),
+ q(1153),
q(0),
],
q(bft) => [
- q(1157),
+ q(1154),
q(0),
],
q(bfu) => [
- q(1158),
+ q(1155),
q(0),
],
q(bfw) => [
- q(1159),
+ q(1156),
q(0),
],
q(bfx) => [
- q(1160),
+ q(1157),
q(0),
],
q(bfy) => [
- q(1161),
+ q(1158),
q(0),
],
q(bfz) => [
- q(1162),
+ q(1159),
q(0),
],
q(bga) => [
- q(1163),
+ q(1160),
q(0),
],
q(bgb) => [
- q(1164),
+ q(1161),
q(0),
],
q(bgc) => [
- q(1165),
+ q(1162),
q(0),
],
q(bgd) => [
- q(1166),
+ q(1163),
q(0),
],
q(bge) => [
- q(1167),
+ q(1164),
q(0),
],
q(bgf) => [
- q(1168),
+ q(1165),
q(0),
],
q(bgg) => [
- q(1169),
+ q(1166),
q(0),
],
q(bgi) => [
- q(1170),
+ q(1167),
q(0),
],
q(bgj) => [
- q(1171),
+ q(1168),
q(0),
],
q(bgk) => [
- q(1172),
+ q(1169),
q(0),
],
q(bgl) => [
- q(1173),
+ q(1170),
q(0),
],
q(bgm) => [
- q(1174),
+ q(1171),
q(0),
],
q(bgn) => [
- q(1175),
+ q(1172),
q(0),
],
q(bgo) => [
- q(1176),
+ q(1173),
q(0),
],
q(bgp) => [
- q(1177),
+ q(1174),
q(0),
],
q(bgq) => [
- q(1178),
+ q(1175),
q(0),
],
q(bgr) => [
- q(1179),
+ q(1176),
q(0),
],
q(bgs) => [
- q(1180),
+ q(1177),
q(0),
],
q(bgt) => [
- q(1181),
+ q(1178),
q(0),
],
q(bgu) => [
- q(1182),
+ q(1179),
q(0),
],
q(bgv) => [
- q(1183),
+ q(1180),
q(0),
],
q(bgw) => [
- q(1184),
+ q(1181),
q(0),
],
q(bgx) => [
- q(1185),
+ q(1182),
q(0),
],
q(bgy) => [
- q(1186),
+ q(1183),
q(0),
],
q(bgz) => [
- q(1187),
+ q(1184),
q(0),
],
q(bha) => [
- q(1188),
+ q(1185),
q(0),
],
q(bhb) => [
- q(1189),
+ q(1186),
q(0),
],
q(bhc) => [
- q(1190),
+ q(1187),
q(0),
],
q(bhd) => [
- q(1191),
+ q(1188),
q(0),
],
q(bhe) => [
- q(1192),
+ q(1189),
q(0),
],
q(bhf) => [
- q(1193),
+ q(1190),
q(0),
],
q(bhg) => [
- q(1194),
+ q(1191),
q(0),
],
q(bhh) => [
- q(1195),
+ q(1192),
q(0),
],
q(bhi) => [
- q(1196),
+ q(1193),
q(0),
],
q(bhj) => [
- q(1197),
+ q(1194),
q(0),
],
q(bhl) => [
- q(1198),
+ q(1195),
q(0),
],
q(bhm) => [
- q(1199),
+ q(1196),
q(0),
],
q(bhn) => [
- q(1200),
+ q(1197),
q(0),
],
q(bho) => [
@@ -61082,75 +61108,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bhp) => [
- q(1201),
+ q(1198),
q(0),
],
q(bhq) => [
- q(1202),
+ q(1199),
q(0),
],
q(bhr) => [
- q(1203),
+ q(1200),
q(0),
],
q(bhs) => [
- q(1204),
+ q(1201),
q(0),
],
q(bht) => [
- q(1205),
+ q(1202),
q(0),
],
q(bhu) => [
- q(1206),
+ q(1203),
q(0),
],
q(bhv) => [
- q(1207),
+ q(1204),
q(0),
],
q(bhw) => [
- q(1208),
+ q(1205),
q(0),
],
q(bhx) => [
- q(1209),
+ q(1206),
q(0),
],
q(bhy) => [
- q(1210),
+ q(1207),
q(0),
],
q(bhz) => [
- q(1211),
+ q(1208),
q(0),
],
q(bia) => [
- q(1212),
+ q(1209),
q(0),
],
q(bib) => [
- q(1213),
+ q(1210),
q(0),
],
q(bic) => [
- q(1214),
+ q(1211),
q(0),
],
q(bid) => [
- q(1215),
+ q(1212),
q(0),
],
q(bie) => [
- q(1216),
+ q(1213),
q(0),
],
q(bif) => [
- q(1217),
+ q(1214),
q(0),
],
q(big) => [
- q(1218),
+ q(1215),
q(0),
],
q(bih) => [
@@ -61158,7 +61184,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bij) => [
- q(1219),
+ q(1216),
q(0),
],
q(bik) => [
@@ -61166,11 +61192,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bil) => [
- q(1220),
+ q(1217),
q(0),
],
q(bim) => [
- q(1221),
+ q(1218),
q(0),
],
q(bin) => [
@@ -61178,19 +61204,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bio) => [
- q(1222),
+ q(1219),
q(0),
],
q(bip) => [
- q(1223),
+ q(1220),
q(0),
],
q(biq) => [
- q(1224),
+ q(1221),
q(0),
],
q(bir) => [
- q(1225),
+ q(1222),
q(0),
],
q(bis) => [
@@ -61198,223 +61224,223 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bit) => [
- q(1226),
+ q(1223),
q(0),
],
q(biu) => [
- q(1227),
+ q(1224),
q(0),
],
q(biv) => [
- q(1228),
+ q(1225),
q(0),
],
q(biw) => [
- q(1229),
+ q(1226),
q(0),
],
q(bix) => [
- q(1230),
+ q(1227),
q(0),
],
q(biy) => [
- q(1231),
+ q(1228),
q(0),
],
q(biz) => [
- q(1232),
+ q(1229),
q(0),
],
q(bja) => [
- q(1233),
+ q(1230),
q(0),
],
q(bjb) => [
- q(1234),
+ q(1231),
q(0),
],
q(bjc) => [
- q(1235),
+ q(1232),
q(0),
],
q(bje) => [
- q(1236),
+ q(1233),
q(0),
],
q(bjf) => [
- q(1237),
+ q(1234),
q(0),
],
q(bjg) => [
- q(1238),
+ q(1235),
q(0),
],
q(bjh) => [
- q(1239),
+ q(1236),
q(0),
],
q(bji) => [
- q(1240),
+ q(1237),
q(0),
],
q(bjj) => [
- q(1241),
+ q(1238),
q(0),
],
q(bjk) => [
- q(1242),
+ q(1239),
q(0),
],
q(bjl) => [
- q(1243),
+ q(1240),
q(0),
],
q(bjm) => [
- q(1244),
+ q(1241),
q(0),
],
q(bjn) => [
- q(1245),
+ q(1242),
q(0),
],
q(bjo) => [
- q(1246),
+ q(1243),
q(0),
],
q(bjp) => [
- q(1247),
+ q(1244),
q(0),
],
q(bjr) => [
- q(1248),
+ q(1245),
q(0),
],
q(bjs) => [
- q(1249),
+ q(1246),
q(0),
],
q(bjt) => [
- q(1250),
+ q(1247),
q(0),
],
q(bju) => [
- q(1251),
+ q(1248),
q(0),
],
q(bjv) => [
- q(1252),
+ q(1249),
q(0),
],
q(bjw) => [
- q(1253),
+ q(1250),
q(0),
],
q(bjx) => [
- q(1254),
+ q(1251),
q(0),
],
q(bjy) => [
- q(1255),
+ q(1252),
q(0),
],
q(bjz) => [
- q(1256),
+ q(1253),
q(0),
],
q(bka) => [
- q(1257),
+ q(1254),
q(0),
],
q(bkc) => [
- q(1258),
+ q(1255),
q(0),
],
q(bkd) => [
- q(1259),
+ q(1256),
q(0),
],
q(bkf) => [
- q(1260),
+ q(1257),
q(0),
],
q(bkg) => [
- q(1261),
+ q(1258),
q(0),
],
q(bkh) => [
- q(1262),
+ q(1259),
q(0),
],
q(bki) => [
- q(1263),
+ q(1260),
q(0),
],
q(bkj) => [
- q(1264),
+ q(1261),
q(0),
],
q(bkk) => [
- q(1265),
+ q(1262),
q(0),
],
q(bkl) => [
- q(1266),
+ q(1263),
q(0),
],
q(bkm) => [
- q(1267),
+ q(1264),
q(0),
],
q(bkn) => [
- q(1268),
+ q(1265),
q(0),
],
q(bko) => [
- q(1269),
+ q(1266),
q(0),
],
q(bkp) => [
- q(1270),
+ q(1267),
q(0),
],
q(bkq) => [
- q(1271),
+ q(1268),
q(0),
],
q(bkr) => [
- q(1272),
+ q(1269),
q(0),
],
q(bks) => [
- q(1273),
+ q(1270),
q(0),
],
q(bkt) => [
- q(1274),
+ q(1271),
q(0),
],
q(bku) => [
- q(1275),
+ q(1272),
q(0),
],
q(bkv) => [
- q(1276),
+ q(1273),
q(0),
],
q(bkw) => [
- q(1277),
+ q(1274),
q(0),
],
q(bkx) => [
- q(1278),
+ q(1275),
q(0),
],
q(bky) => [
- q(1279),
+ q(1276),
q(0),
],
q(bkz) => [
- q(1280),
+ q(1277),
q(0),
],
q(bla) => [
@@ -61422,275 +61448,271 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(blb) => [
- q(1281),
+ q(1278),
q(0),
],
q(blc) => [
- q(1282),
+ q(1279),
q(0),
],
q(bld) => [
- q(1283),
+ q(1280),
q(0),
],
q(ble) => [
- q(1284),
+ q(1281),
q(0),
],
q(blf) => [
- q(1285),
+ q(1282),
q(0),
],
q(blg) => [
- q(1286),
+ q(1283),
q(0),
],
q(blh) => [
- q(1287),
+ q(1284),
q(0),
],
q(bli) => [
- q(1288),
+ q(1285),
q(0),
],
q(blj) => [
- q(1289),
+ q(1286),
q(0),
],
q(blk) => [
- q(1290),
+ q(1287),
q(0),
],
q(bll) => [
- q(1291),
+ q(1288),
q(0),
],
q(blm) => [
- q(1292),
+ q(1289),
q(0),
],
q(bln) => [
- q(1293),
+ q(1290),
q(0),
],
q(blo) => [
- q(1294),
+ q(1291),
q(0),
],
q(blp) => [
- q(1295),
+ q(1292),
q(0),
],
q(blq) => [
- q(1296),
+ q(1293),
q(0),
],
q(blr) => [
- q(1297),
+ q(1294),
q(0),
],
q(bls) => [
- q(1298),
+ q(1295),
q(0),
],
q(blt) => [
- q(1299),
+ q(1296),
q(0),
],
q(blv) => [
- q(1300),
+ q(1297),
q(0),
],
q(blw) => [
- q(1301),
+ q(1298),
q(0),
],
q(blx) => [
- q(1302),
+ q(1299),
q(0),
],
q(bly) => [
- q(1303),
+ q(1300),
q(0),
],
q(blz) => [
- q(1304),
+ q(1301),
q(0),
],
q(bma) => [
- q(1305),
+ q(1302),
q(0),
],
q(bmb) => [
- q(1306),
+ q(1303),
q(0),
],
q(bmc) => [
- q(1307),
+ q(1304),
q(0),
],
q(bmd) => [
- q(1308),
+ q(1305),
q(0),
],
q(bme) => [
- q(1309),
+ q(1306),
q(0),
],
q(bmf) => [
- q(1310),
+ q(1307),
q(0),
],
q(bmg) => [
- q(1311),
+ q(1308),
q(0),
],
q(bmh) => [
- q(1312),
+ q(1309),
q(0),
],
q(bmi) => [
- q(1313),
+ q(1310),
q(0),
],
q(bmj) => [
- q(1314),
+ q(1311),
q(0),
],
q(bmk) => [
- q(1315),
+ q(1312),
q(0),
],
q(bml) => [
- q(1316),
+ q(1313),
q(0),
],
q(bmm) => [
- q(1317),
+ q(1314),
q(0),
],
q(bmn) => [
- q(1318),
+ q(1315),
q(0),
],
q(bmo) => [
- q(1319),
+ q(1316),
q(0),
],
q(bmp) => [
- q(1320),
+ q(1317),
q(0),
],
q(bmq) => [
- q(1321),
+ q(1318),
q(0),
],
q(bmr) => [
- q(1322),
+ q(1319),
q(0),
],
q(bms) => [
- q(1323),
+ q(1320),
q(0),
],
q(bmt) => [
- q(1324),
+ q(1321),
q(0),
],
q(bmu) => [
- q(1325),
+ q(1322),
q(0),
],
q(bmv) => [
- q(1326),
+ q(1323),
q(0),
],
q(bmw) => [
- q(1327),
+ q(1324),
q(0),
],
q(bmx) => [
- q(1328),
- q(0),
- ],
- q(bmy) => [
- q(1329),
+ q(1325),
q(0),
],
q(bmz) => [
- q(1330),
+ q(1326),
q(0),
],
q(bna) => [
- q(1331),
+ q(1327),
q(0),
],
q(bnb) => [
- q(1332),
+ q(1328),
q(0),
],
q(bnc) => [
- q(1333),
+ q(1329),
q(0),
],
q(bnd) => [
- q(1334),
+ q(1330),
q(0),
],
q(bne) => [
- q(1335),
+ q(1331),
q(0),
],
q(bnf) => [
- q(1336),
+ q(1332),
q(0),
],
q(bng) => [
- q(1337),
+ q(1333),
q(0),
],
q(bni) => [
- q(1338),
+ q(1334),
q(0),
],
q(bnj) => [
- q(1339),
+ q(1335),
q(0),
],
q(bnk) => [
- q(1340),
+ q(1336),
q(0),
],
q(bnl) => [
- q(1341),
+ q(1337),
q(0),
],
q(bnm) => [
- q(1342),
+ q(1338),
q(0),
],
q(bnn) => [
- q(1343),
+ q(1339),
q(0),
],
q(bno) => [
- q(1344),
+ q(1340),
q(0),
],
q(bnp) => [
- q(1345),
+ q(1341),
q(0),
],
q(bnq) => [
- q(1346),
+ q(1342),
q(0),
],
q(bnr) => [
- q(1347),
+ q(1343),
q(0),
],
q(bns) => [
- q(1348),
+ q(1344),
q(0),
],
q(bnt) => [
@@ -61698,91 +61720,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(bnu) => [
- q(1349),
+ q(1345),
q(0),
],
q(bnv) => [
- q(1350),
+ q(1346),
q(0),
],
q(bnw) => [
- q(1351),
+ q(1347),
q(0),
],
q(bnx) => [
- q(1352),
+ q(1348),
q(0),
],
q(bny) => [
- q(1353),
+ q(1349),
q(0),
],
q(bnz) => [
- q(1354),
+ q(1350),
q(0),
],
q(boa) => [
- q(1355),
+ q(1351),
q(0),
],
q(bob) => [
- q(1356),
+ q(1352),
q(0),
],
q(boe) => [
- q(1357),
+ q(1353),
q(0),
],
q(bof) => [
- q(1358),
+ q(1354),
q(0),
],
q(bog) => [
- q(1359),
+ q(1355),
q(0),
],
q(boh) => [
- q(1360),
+ q(1356),
q(0),
],
q(boi) => [
- q(1361),
+ q(1357),
q(0),
],
q(boj) => [
- q(1362),
+ q(1358),
q(0),
],
q(bok) => [
- q(1363),
+ q(1359),
q(0),
],
q(bol) => [
- q(1364),
+ q(1360),
q(0),
],
q(bom) => [
- q(1365),
+ q(1361),
q(0),
],
q(bon) => [
- q(1366),
+ q(1362),
q(0),
],
q(boo) => [
- q(1367),
+ q(1363),
q(0),
],
q(bop) => [
- q(1368),
+ q(1364),
q(0),
],
q(boq) => [
- q(1369),
+ q(1365),
q(0),
],
q(bor) => [
- q(1370),
+ q(1366),
q(0),
],
q(bos) => [
@@ -61790,223 +61812,223 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bot) => [
- q(1371),
+ q(1367),
q(0),
],
q(bou) => [
- q(1372),
+ q(1368),
q(0),
],
q(bov) => [
- q(1373),
+ q(1369),
q(0),
],
q(bow) => [
- q(1374),
+ q(1370),
q(0),
],
q(box) => [
- q(1375),
+ q(1371),
q(0),
],
q(boy) => [
- q(1376),
+ q(1372),
q(0),
],
q(boz) => [
- q(1377),
+ q(1373),
q(0),
],
q(bpa) => [
- q(1378),
+ q(1374),
q(0),
],
q(bpb) => [
- q(1379),
+ q(1375),
q(0),
],
q(bpd) => [
- q(1380),
+ q(1376),
q(0),
],
q(bpg) => [
- q(1381),
+ q(1377),
q(0),
],
q(bph) => [
- q(1382),
+ q(1378),
q(0),
],
q(bpi) => [
- q(1383),
+ q(1379),
q(0),
],
q(bpj) => [
- q(1384),
+ q(1380),
q(0),
],
q(bpk) => [
- q(1385),
+ q(1381),
q(0),
],
q(bpl) => [
- q(1386),
+ q(1382),
q(0),
],
q(bpm) => [
- q(1387),
+ q(1383),
q(0),
],
q(bpn) => [
- q(1388),
+ q(1384),
q(0),
],
q(bpo) => [
- q(1389),
+ q(1385),
q(0),
],
q(bpp) => [
- q(1390),
+ q(1386),
q(0),
],
q(bpq) => [
- q(1391),
+ q(1387),
q(0),
],
q(bpr) => [
- q(1392),
+ q(1388),
q(0),
],
q(bps) => [
- q(1393),
+ q(1389),
q(0),
],
q(bpt) => [
- q(1394),
+ q(1390),
q(0),
],
q(bpu) => [
- q(1395),
+ q(1391),
q(0),
],
q(bpv) => [
- q(1396),
+ q(1392),
q(0),
],
q(bpw) => [
- q(1397),
+ q(1393),
q(0),
],
q(bpx) => [
- q(1398),
+ q(1394),
q(0),
],
q(bpy) => [
- q(1399),
+ q(1395),
q(0),
],
q(bpz) => [
- q(1400),
+ q(1396),
q(0),
],
q(bqa) => [
- q(1401),
+ q(1397),
q(0),
],
q(bqb) => [
- q(1402),
+ q(1398),
q(0),
],
q(bqc) => [
- q(1403),
+ q(1399),
q(0),
],
q(bqd) => [
- q(1404),
+ q(1400),
q(0),
],
q(bqf) => [
- q(1405),
+ q(1401),
q(0),
],
q(bqg) => [
- q(1406),
+ q(1402),
q(0),
],
q(bqh) => [
- q(1407),
+ q(1403),
q(0),
],
q(bqi) => [
- q(1408),
+ q(1404),
q(0),
],
q(bqj) => [
- q(1409),
+ q(1405),
q(0),
],
q(bqk) => [
- q(1410),
+ q(1406),
q(0),
],
q(bql) => [
- q(1411),
+ q(1407),
q(0),
],
q(bqm) => [
- q(1412),
+ q(1408),
q(0),
],
q(bqn) => [
- q(1413),
+ q(1409),
q(0),
],
q(bqo) => [
- q(1414),
+ q(1410),
q(0),
],
q(bqp) => [
- q(1415),
+ q(1411),
q(0),
],
q(bqq) => [
- q(1416),
+ q(1412),
q(0),
],
q(bqr) => [
- q(1417),
+ q(1413),
q(0),
],
q(bqs) => [
- q(1418),
+ q(1414),
q(0),
],
q(bqt) => [
- q(1419),
+ q(1415),
q(0),
],
q(bqu) => [
- q(1420),
+ q(1416),
q(0),
],
q(bqv) => [
- q(1421),
+ q(1417),
q(0),
],
q(bqw) => [
- q(1422),
+ q(1418),
q(0),
],
q(bqx) => [
- q(1423),
+ q(1419),
q(0),
],
q(bqy) => [
- q(1424),
+ q(1420),
q(0),
],
q(bqz) => [
- q(1425),
+ q(1421),
q(0),
],
q(bra) => [
@@ -62014,15 +62036,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(brb) => [
- q(1426),
+ q(1422),
q(0),
],
q(brc) => [
- q(1427),
+ q(1423),
q(0),
],
q(brd) => [
- q(1428),
+ q(1424),
q(0),
],
q(bre) => [
@@ -62030,219 +62052,219 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(brf) => [
- q(1429),
+ q(1425),
q(0),
],
q(brg) => [
- q(1430),
+ q(1426),
q(0),
],
q(brh) => [
- q(1431),
+ q(1427),
q(0),
],
q(bri) => [
- q(1432),
+ q(1428),
q(0),
],
q(brj) => [
- q(1433),
+ q(1429),
q(0),
],
q(brk) => [
- q(1434),
+ q(1430),
q(0),
],
q(brl) => [
- q(1435),
+ q(1431),
q(0),
],
q(brm) => [
- q(1436),
+ q(1432),
q(0),
],
q(brn) => [
- q(1437),
+ q(1433),
q(0),
],
q(bro) => [
- q(1438),
+ q(1434),
q(0),
],
q(brp) => [
- q(1439),
+ q(1435),
q(0),
],
q(brq) => [
- q(1440),
+ q(1436),
q(0),
],
q(brr) => [
- q(1441),
+ q(1437),
q(0),
],
q(brs) => [
- q(1442),
+ q(1438),
q(0),
],
q(brt) => [
- q(1443),
+ q(1439),
q(0),
],
q(bru) => [
- q(1444),
+ q(1440),
q(0),
],
q(brv) => [
- q(1445),
+ q(1441),
q(0),
],
q(brw) => [
- q(1446),
+ q(1442),
q(0),
],
q(brx) => [
- q(1447),
+ q(1443),
q(0),
],
q(bry) => [
- q(1448),
+ q(1444),
q(0),
],
q(brz) => [
- q(1449),
+ q(1445),
q(0),
],
q(bsa) => [
- q(1450),
+ q(1446),
q(0),
],
q(bsb) => [
- q(1451),
+ q(1447),
q(0),
],
q(bsc) => [
- q(1452),
+ q(1448),
q(0),
],
q(bse) => [
- q(1453),
+ q(1449),
q(0),
],
q(bsf) => [
- q(1454),
+ q(1450),
q(0),
],
q(bsg) => [
- q(1455),
+ q(1451),
q(0),
],
q(bsh) => [
- q(1456),
+ q(1452),
q(0),
],
q(bsi) => [
- q(1457),
+ q(1453),
q(0),
],
q(bsj) => [
- q(1458),
+ q(1454),
q(0),
],
q(bsk) => [
- q(1459),
+ q(1455),
q(0),
],
q(bsl) => [
- q(1460),
+ q(1456),
q(0),
],
q(bsm) => [
- q(1461),
+ q(1457),
q(0),
],
q(bsn) => [
- q(1462),
+ q(1458),
q(0),
],
q(bso) => [
- q(1463),
+ q(1459),
q(0),
],
q(bsp) => [
- q(1464),
+ q(1460),
q(0),
],
q(bsq) => [
- q(1465),
+ q(1461),
q(0),
],
q(bsr) => [
- q(1466),
+ q(1462),
q(0),
],
q(bss) => [
- q(1467),
+ q(1463),
q(0),
],
q(bst) => [
- q(1468),
+ q(1464),
q(0),
],
q(bsu) => [
- q(1469),
+ q(1465),
q(0),
],
q(bsv) => [
- q(1470),
+ q(1466),
q(0),
],
q(bsw) => [
- q(1471),
+ q(1467),
q(0),
],
q(bsx) => [
- q(1472),
+ q(1468),
q(0),
],
q(bsy) => [
- q(1473),
+ q(1469),
q(0),
],
q(bta) => [
- q(1474),
+ q(1470),
q(0),
],
q(btc) => [
- q(1475),
+ q(1471),
q(0),
],
q(btd) => [
- q(1476),
+ q(1472),
q(0),
],
q(bte) => [
- q(1477),
+ q(1473),
q(0),
],
q(btf) => [
- q(1478),
+ q(1474),
q(0),
],
q(btg) => [
- q(1479),
+ q(1475),
q(0),
],
q(bth) => [
- q(1480),
+ q(1476),
q(0),
],
q(bti) => [
- q(1481),
+ q(1477),
q(0),
],
q(btj) => [
- q(1482),
+ q(1478),
q(0),
],
q(btk) => [
@@ -62250,63 +62272,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(btl) => [
- q(1483),
+ q(1479),
q(0),
],
q(btm) => [
- q(1484),
+ q(1480),
q(0),
],
q(btn) => [
- q(1485),
+ q(1481),
q(0),
],
q(bto) => [
- q(1486),
+ q(1482),
q(0),
],
q(btp) => [
- q(1487),
+ q(1483),
q(0),
],
q(btq) => [
- q(1488),
+ q(1484),
q(0),
],
q(btr) => [
- q(1489),
+ q(1485),
q(0),
],
q(bts) => [
- q(1490),
+ q(1486),
q(0),
],
q(btt) => [
- q(1491),
+ q(1487),
q(0),
],
q(btu) => [
- q(1492),
+ q(1488),
q(0),
],
q(btv) => [
- q(1493),
+ q(1489),
q(0),
],
q(btw) => [
- q(1494),
+ q(1490),
q(0),
],
q(btx) => [
- q(1495),
+ q(1491),
q(0),
],
q(bty) => [
- q(1496),
+ q(1492),
q(0),
],
q(btz) => [
- q(1497),
+ q(1493),
q(0),
],
q(bua) => [
@@ -62314,23 +62336,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bub) => [
- q(1498),
+ q(1494),
q(0),
],
q(buc) => [
- q(1499),
+ q(1495),
q(0),
],
q(bud) => [
- q(1500),
+ q(1496),
q(0),
],
q(bue) => [
- q(1501),
+ q(1497),
q(0),
],
q(buf) => [
- q(1502),
+ q(1498),
q(0),
],
q(bug) => [
@@ -62338,19 +62360,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(buh) => [
- q(1503),
+ q(1499),
q(0),
],
q(bui) => [
- q(1504),
+ q(1500),
q(0),
],
q(buj) => [
- q(1505),
+ q(1501),
q(0),
],
q(buk) => [
- q(1506),
+ q(1502),
q(0),
],
q(bul) => [
@@ -62358,23 +62380,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bum) => [
- q(1507),
+ q(1503),
q(0),
],
q(bun) => [
- q(1508),
+ q(1504),
q(0),
],
q(buo) => [
- q(1509),
+ q(1505),
q(0),
],
q(bup) => [
- q(1510),
+ q(1506),
q(0),
],
q(buq) => [
- q(1511),
+ q(1507),
q(0),
],
q(bur) => [
@@ -62382,383 +62404,379 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bus) => [
- q(1512),
+ q(1508),
q(0),
],
q(but) => [
- q(1513),
+ q(1509),
q(0),
],
q(buu) => [
- q(1514),
+ q(1510),
q(0),
],
q(buv) => [
- q(1515),
+ q(1511),
q(0),
],
q(buw) => [
- q(1516),
+ q(1512),
q(0),
],
q(bux) => [
- q(1517),
+ q(1513),
q(0),
],
q(buy) => [
- q(1518),
+ q(1514),
q(0),
],
q(buz) => [
- q(1519),
+ q(1515),
q(0),
],
q(bva) => [
- q(1520),
+ q(1516),
q(0),
],
q(bvb) => [
- q(1521),
+ q(1517),
q(0),
],
q(bvc) => [
- q(1522),
+ q(1518),
q(0),
],
q(bvd) => [
- q(1523),
+ q(1519),
q(0),
],
q(bve) => [
- q(1524),
+ q(1520),
q(0),
],
q(bvf) => [
- q(1525),
+ q(1521),
q(0),
],
q(bvg) => [
- q(1526),
+ q(1522),
q(0),
],
q(bvh) => [
- q(1527),
+ q(1523),
q(0),
],
q(bvi) => [
- q(1528),
+ q(1524),
q(0),
],
q(bvj) => [
- q(1529),
+ q(1525),
q(0),
],
q(bvk) => [
- q(1530),
+ q(1526),
q(0),
],
q(bvl) => [
- q(1531),
+ q(1527),
q(0),
],
q(bvm) => [
- q(1532),
+ q(1528),
q(0),
],
q(bvn) => [
- q(1533),
+ q(1529),
q(0),
],
q(bvo) => [
- q(1534),
+ q(1530),
q(0),
],
q(bvp) => [
- q(1535),
+ q(1531),
q(0),
],
q(bvq) => [
- q(1536),
+ q(1532),
q(0),
],
q(bvr) => [
- q(1537),
+ q(1533),
q(0),
],
q(bvt) => [
- q(1538),
+ q(1534),
q(0),
],
q(bvu) => [
- q(1539),
+ q(1535),
q(0),
],
q(bvv) => [
- q(1540),
+ q(1536),
q(0),
],
q(bvw) => [
- q(1541),
+ q(1537),
q(0),
],
q(bvx) => [
- q(1542),
+ q(1538),
q(0),
],
q(bvy) => [
- q(1543),
+ q(1539),
q(0),
],
q(bvz) => [
- q(1544),
+ q(1540),
q(0),
],
q(bwa) => [
- q(1545),
+ q(1541),
q(0),
],
q(bwb) => [
- q(1546),
+ q(1542),
q(0),
],
q(bwc) => [
- q(1547),
+ q(1543),
q(0),
],
q(bwd) => [
- q(1548),
+ q(1544),
q(0),
],
q(bwe) => [
- q(1549),
+ q(1545),
q(0),
],
q(bwf) => [
- q(1550),
+ q(1546),
q(0),
],
q(bwg) => [
- q(1551),
+ q(1547),
q(0),
],
q(bwh) => [
- q(1552),
+ q(1548),
q(0),
],
q(bwi) => [
- q(1553),
+ q(1549),
q(0),
],
q(bwj) => [
- q(1554),
+ q(1550),
q(0),
],
q(bwk) => [
- q(1555),
+ q(1551),
q(0),
],
q(bwl) => [
- q(1556),
+ q(1552),
q(0),
],
q(bwm) => [
- q(1557),
+ q(1553),
q(0),
],
q(bwn) => [
- q(1558),
+ q(1554),
q(0),
],
q(bwo) => [
- q(1559),
+ q(1555),
q(0),
],
q(bwp) => [
- q(1560),
+ q(1556),
q(0),
],
q(bwq) => [
- q(1561),
+ q(1557),
q(0),
],
q(bwr) => [
- q(1562),
+ q(1558),
q(0),
],
q(bws) => [
- q(1563),
+ q(1559),
q(0),
],
q(bwt) => [
- q(1564),
+ q(1560),
q(0),
],
q(bwu) => [
- q(1565),
+ q(1561),
q(0),
],
q(bww) => [
- q(1566),
+ q(1562),
q(0),
],
q(bwx) => [
- q(1567),
+ q(1563),
q(0),
],
q(bwy) => [
- q(1568),
+ q(1564),
q(0),
],
q(bwz) => [
- q(1569),
+ q(1565),
q(0),
],
q(bxa) => [
- q(1570),
+ q(1566),
q(0),
],
q(bxb) => [
- q(1571),
+ q(1567),
q(0),
],
q(bxc) => [
- q(1572),
+ q(1568),
q(0),
],
q(bxd) => [
- q(1573),
+ q(1569),
q(0),
],
q(bxe) => [
- q(1574),
+ q(1570),
q(0),
],
q(bxf) => [
- q(1575),
+ q(1571),
q(0),
],
q(bxg) => [
- q(1576),
+ q(1572),
q(0),
],
q(bxh) => [
- q(1577),
+ q(1573),
q(0),
],
q(bxi) => [
- q(1578),
+ q(1574),
q(0),
],
q(bxj) => [
- q(1579),
+ q(1575),
q(0),
],
q(bxk) => [
- q(1580),
+ q(1576),
q(0),
],
q(bxl) => [
- q(1581),
+ q(1577),
q(0),
],
q(bxm) => [
- q(1582),
+ q(1578),
q(0),
],
q(bxn) => [
- q(1583),
+ q(1579),
q(0),
],
q(bxo) => [
- q(1584),
+ q(1580),
q(0),
],
q(bxp) => [
- q(1585),
+ q(1581),
q(0),
],
q(bxq) => [
- q(1586),
+ q(1582),
q(0),
],
q(bxr) => [
- q(1587),
+ q(1583),
q(0),
],
q(bxs) => [
- q(1588),
+ q(1584),
q(0),
],
q(bxu) => [
- q(1589),
+ q(1585),
q(0),
],
q(bxv) => [
- q(1590),
+ q(1586),
q(0),
],
q(bxw) => [
- q(1591),
- q(0),
- ],
- q(bxx) => [
- q(1592),
+ q(1587),
q(0),
],
q(bxz) => [
- q(1593),
+ q(1588),
q(0),
],
q(bya) => [
- q(1594),
+ q(1589),
q(0),
],
q(byb) => [
- q(1595),
+ q(1590),
q(0),
],
q(byc) => [
- q(1596),
+ q(1591),
q(0),
],
q(byd) => [
- q(1597),
+ q(1592),
q(0),
],
q(bye) => [
- q(1598),
+ q(1593),
q(0),
],
q(byf) => [
- q(1599),
+ q(1594),
q(0),
],
q(byg) => [
- q(1600),
+ q(1595),
q(0),
],
q(byh) => [
- q(1601),
+ q(1596),
q(0),
],
q(byi) => [
- q(1602),
+ q(1597),
q(0),
],
q(byj) => [
- q(1603),
+ q(1598),
q(0),
],
q(byk) => [
- q(1604),
+ q(1599),
q(0),
],
q(byl) => [
- q(1605),
+ q(1600),
q(0),
],
q(bym) => [
- q(1606),
+ q(1601),
q(0),
],
q(byn) => [
@@ -62766,163 +62784,159 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(byo) => [
- q(1607),
+ q(1602),
q(0),
],
q(byp) => [
- q(1608),
+ q(1603),
q(0),
],
q(byq) => [
- q(1609),
+ q(1604),
q(0),
],
q(byr) => [
- q(1610),
+ q(1605),
q(0),
],
q(bys) => [
- q(1611),
+ q(1606),
q(0),
],
q(byt) => [
- q(1612),
+ q(1607),
q(0),
],
q(byv) => [
- q(1613),
+ q(1608),
q(0),
],
q(byw) => [
- q(1614),
+ q(1609),
q(0),
],
q(byx) => [
- q(1615),
- q(0),
- ],
- q(byy) => [
- q(1616),
+ q(1610),
q(0),
],
q(byz) => [
- q(1617),
+ q(1611),
q(0),
],
q(bza) => [
- q(1618),
+ q(1612),
q(0),
],
q(bzb) => [
- q(1619),
+ q(1613),
q(0),
],
q(bzc) => [
- q(1620),
+ q(1614),
q(0),
],
q(bzd) => [
- q(1621),
+ q(1615),
q(0),
],
q(bze) => [
- q(1622),
+ q(1616),
q(0),
],
q(bzf) => [
- q(1623),
+ q(1617),
q(0),
],
q(bzg) => [
- q(1624),
+ q(1618),
q(0),
],
q(bzh) => [
- q(1625),
+ q(1619),
q(0),
],
q(bzi) => [
- q(1626),
+ q(1620),
q(0),
],
q(bzj) => [
- q(1627),
+ q(1621),
q(0),
],
q(bzk) => [
- q(1628),
+ q(1622),
q(0),
],
q(bzl) => [
- q(1629),
+ q(1623),
q(0),
],
q(bzm) => [
- q(1630),
+ q(1624),
q(0),
],
q(bzn) => [
- q(1631),
+ q(1625),
q(0),
],
q(bzo) => [
- q(1632),
+ q(1626),
q(0),
],
q(bzp) => [
- q(1633),
+ q(1627),
q(0),
],
q(bzq) => [
- q(1634),
+ q(1628),
q(0),
],
q(bzr) => [
- q(1635),
+ q(1629),
q(0),
],
q(bzs) => [
- q(1636),
+ q(1630),
q(0),
],
q(bzt) => [
- q(1637),
+ q(1631),
q(0),
],
q(bzu) => [
- q(1638),
+ q(1632),
q(0),
],
q(bzv) => [
- q(1639),
+ q(1633),
q(0),
],
q(bzw) => [
- q(1640),
+ q(1634),
q(0),
],
q(bzx) => [
- q(1641),
+ q(1635),
q(0),
],
q(bzy) => [
- q(1642),
+ q(1636),
q(0),
],
q(bzz) => [
- q(1643),
+ q(1637),
q(0),
],
q(caa) => [
- q(1644),
+ q(1638),
q(0),
],
q(cab) => [
- q(1645),
+ q(1639),
q(0),
],
q(cac) => [
- q(1646),
+ q(1640),
q(0),
],
q(cad) => [
@@ -62930,19 +62944,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cae) => [
- q(1647),
+ q(1641),
q(0),
],
q(caf) => [
- q(1648),
+ q(1642),
q(0),
],
q(cag) => [
- q(1649),
+ q(1643),
q(0),
],
q(cah) => [
- q(1650),
+ q(1644),
q(0),
],
q(cai) => [
@@ -62950,35 +62964,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(caj) => [
- q(1651),
+ q(1645),
q(0),
],
q(cak) => [
- q(1652),
+ q(1646),
q(0),
],
q(cal) => [
- q(1653),
+ q(1647),
q(0),
],
q(cam) => [
- q(1654),
+ q(1648),
q(0),
],
q(can) => [
- q(1655),
+ q(1649),
q(0),
],
q(cao) => [
- q(1656),
+ q(1650),
q(0),
],
q(cap) => [
- q(1657),
+ q(1651),
q(0),
],
q(caq) => [
- q(1658),
+ q(1652),
q(0),
],
q(car) => [
@@ -62986,7 +63000,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cas) => [
- q(1659),
+ q(1653),
q(0),
],
q(cat) => [
@@ -62998,23 +63012,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cav) => [
- q(1660),
+ q(1654),
q(0),
],
q(caw) => [
- q(1661),
+ q(1655),
q(0),
],
q(cax) => [
- q(1662),
+ q(1656),
q(0),
],
q(cay) => [
- q(1663),
+ q(1657),
q(0),
],
q(caz) => [
- q(1664),
+ q(1658),
q(0),
],
q(cba) => [
@@ -63022,115 +63036,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cbb) => [
- q(1665),
+ q(1659),
q(0),
],
q(cbc) => [
- q(1666),
+ q(1660),
q(0),
],
q(cbd) => [
- q(1667),
+ q(1661),
q(0),
],
q(cbe) => [
- q(1668),
+ q(1662),
q(0),
],
q(cbg) => [
- q(1669),
+ q(1663),
q(0),
],
q(cbh) => [
- q(1670),
+ q(1664),
q(0),
],
q(cbi) => [
- q(1671),
+ q(1665),
q(0),
],
q(cbj) => [
- q(1672),
+ q(1666),
q(0),
],
q(cbk) => [
- q(1673),
+ q(1667),
q(0),
],
q(cbl) => [
- q(1674),
+ q(1668),
q(0),
],
q(cbn) => [
- q(1675),
+ q(1669),
q(0),
],
q(cbo) => [
- q(1676),
+ q(1670),
+ q(0),
+ ],
+ q(cbq) => [
+ q(1671),
q(0),
],
q(cbr) => [
- q(1677),
+ q(1672),
q(0),
],
q(cbs) => [
- q(1678),
+ q(1673),
q(0),
],
q(cbt) => [
- q(1679),
+ q(1674),
q(0),
],
q(cbu) => [
- q(1680),
+ q(1675),
q(0),
],
q(cbv) => [
- q(1681),
+ q(1676),
q(0),
],
q(cbw) => [
- q(1682),
+ q(1677),
q(0),
],
q(cby) => [
- q(1683),
+ q(1678),
q(0),
],
q(cca) => [
- q(1684),
+ q(1679),
q(0),
],
q(ccc) => [
- q(1685),
+ q(1680),
q(0),
],
q(ccd) => [
- q(1686),
+ q(1681),
q(0),
],
q(cce) => [
- q(1687),
+ q(1682),
q(0),
],
q(ccg) => [
- q(1688),
+ q(1683),
q(0),
],
q(cch) => [
- q(1689),
+ q(1684),
q(0),
],
q(ccj) => [
- q(1690),
+ q(1685),
q(0),
],
q(ccl) => [
- q(1691),
+ q(1686),
q(0),
],
q(ccm) => [
- q(1692),
+ q(1687),
q(0),
],
q(ccn) => [
@@ -63138,15 +63156,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cco) => [
- q(1693),
+ q(1688),
q(0),
],
q(ccp) => [
- q(1694),
+ q(1689),
q(0),
],
q(ccr) => [
- q(1695),
+ q(1690),
q(0),
],
q(ccs) => [
@@ -63154,7 +63172,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cda) => [
- q(1696),
+ q(1691),
q(0),
],
q(cdc) => [
@@ -63166,59 +63184,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cde) => [
- q(1697),
+ q(1692),
q(0),
],
q(cdf) => [
- q(1698),
+ q(1693),
q(0),
],
q(cdg) => [
- q(1699),
+ q(1694),
q(0),
],
q(cdh) => [
- q(1700),
+ q(1695),
q(0),
],
q(cdi) => [
- q(1701),
+ q(1696),
q(0),
],
q(cdj) => [
- q(1702),
+ q(1697),
q(0),
],
q(cdm) => [
- q(1703),
+ q(1698),
q(0),
],
q(cdn) => [
- q(1704),
+ q(1699),
q(0),
],
q(cdo) => [
- q(1705),
+ q(1700),
q(0),
],
q(cdr) => [
- q(1706),
+ q(1701),
q(0),
],
q(cds) => [
- q(1707),
+ q(1702),
q(0),
],
q(cdy) => [
- q(1708),
+ q(1703),
q(0),
],
q(cdz) => [
- q(1709),
+ q(1704),
q(0),
],
q(cea) => [
- q(1710),
+ q(1705),
q(0),
],
q(ceb) => [
@@ -63226,11 +63244,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ceg) => [
- q(1711),
+ q(1706),
q(0),
],
q(cek) => [
- q(1712),
+ q(1707),
q(0),
],
q(cel) => [
@@ -63238,43 +63256,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cen) => [
- q(1713),
+ q(1708),
q(0),
],
q(cet) => [
- q(1714),
+ q(1709),
q(0),
],
q(cfa) => [
- q(1715),
+ q(1710),
q(0),
],
q(cfd) => [
- q(1716),
+ q(1711),
q(0),
],
q(cfg) => [
- q(1717),
+ q(1712),
q(0),
],
q(cfm) => [
- q(1718),
+ q(1713),
q(0),
],
q(cga) => [
- q(1719),
+ q(1714),
q(0),
],
q(cgc) => [
- q(1720),
+ q(1715),
q(0),
],
q(cgg) => [
- q(1721),
+ q(1716),
q(0),
],
q(cgk) => [
- q(1722),
+ q(1717),
q(0),
],
q(cha) => [
@@ -63286,11 +63304,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chc) => [
- q(1723),
+ q(1718),
q(0),
],
q(chd) => [
- q(1724),
+ q(1719),
q(0),
],
q(che) => [
@@ -63298,7 +63316,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chf) => [
- q(1725),
+ q(1720),
q(0),
],
q(chg) => [
@@ -63306,7 +63324,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chh) => [
- q(1726),
+ q(1721),
q(0),
],
q(chi) => [
@@ -63314,7 +63332,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chj) => [
- q(1727),
+ q(1722),
q(0),
],
q(chk) => [
@@ -63322,7 +63340,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chl) => [
- q(1728),
+ q(1723),
q(0),
],
q(chm) => [
@@ -63342,7 +63360,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chq) => [
- q(1729),
+ q(1724),
q(0),
],
q(chr) => [
@@ -63350,7 +63368,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cht) => [
- q(1730),
+ q(1725),
q(0),
],
q(chu) => [
@@ -63362,11 +63380,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chw) => [
- q(1731),
+ q(1726),
q(0),
],
q(chx) => [
- q(1732),
+ q(1727),
q(0),
],
q(chy) => [
@@ -63374,227 +63392,227 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chz) => [
- q(1733),
+ q(1728),
q(0),
],
q(cia) => [
- q(1734),
+ q(1729),
q(0),
],
q(cib) => [
- q(1735),
+ q(1730),
q(0),
],
q(cic) => [
- q(1736),
+ q(1731),
q(0),
],
q(cid) => [
- q(1737),
+ q(1732),
q(0),
],
q(cie) => [
- q(1738),
+ q(1733),
q(0),
],
q(cih) => [
- q(1739),
+ q(1734),
q(0),
],
q(cik) => [
- q(1740),
+ q(1735),
q(0),
],
q(cim) => [
- q(1741),
+ q(1736),
q(0),
],
q(cin) => [
- q(1742),
+ q(1737),
q(0),
],
q(cip) => [
- q(1743),
+ q(1738),
q(0),
],
q(cir) => [
- q(1744),
+ q(1739),
q(0),
],
q(ciw) => [
- q(1745),
+ q(1740),
q(0),
],
q(ciy) => [
- q(1746),
+ q(1741),
q(0),
],
q(cja) => [
- q(1747),
+ q(1742),
q(0),
],
q(cje) => [
- q(1748),
+ q(1743),
q(0),
],
q(cjh) => [
- q(1749),
+ q(1744),
q(0),
],
q(cji) => [
- q(1750),
+ q(1745),
q(0),
],
q(cjk) => [
- q(1751),
+ q(1746),
q(0),
],
q(cjm) => [
- q(1752),
+ q(1747),
q(0),
],
q(cjn) => [
- q(1753),
+ q(1748),
q(0),
],
q(cjo) => [
- q(1754),
+ q(1749),
q(0),
],
q(cjp) => [
- q(1755),
+ q(1750),
q(0),
],
q(cjs) => [
- q(1756),
+ q(1751),
q(0),
],
q(cjv) => [
- q(1757),
+ q(1752),
q(0),
],
q(cjy) => [
- q(1758),
+ q(1753),
q(0),
],
q(ckb) => [
- q(1759),
+ q(1754),
q(0),
],
q(ckh) => [
- q(1760),
+ q(1755),
q(0),
],
q(ckl) => [
- q(1761),
+ q(1756),
q(0),
],
q(ckn) => [
- q(1762),
+ q(1757),
q(0),
],
q(cko) => [
- q(1763),
+ q(1758),
q(0),
],
q(ckq) => [
- q(1764),
+ q(1759),
q(0),
],
q(ckr) => [
- q(1765),
+ q(1760),
q(0),
],
q(cks) => [
- q(1766),
+ q(1761),
q(0),
],
q(ckt) => [
- q(1767),
+ q(1762),
q(0),
],
q(cku) => [
- q(1768),
+ q(1763),
q(0),
],
q(ckv) => [
- q(1769),
+ q(1764),
q(0),
],
q(ckx) => [
- q(1770),
+ q(1765),
q(0),
],
q(cky) => [
- q(1771),
+ q(1766),
q(0),
],
q(ckz) => [
- q(1772),
+ q(1767),
q(0),
],
q(cla) => [
- q(1773),
+ q(1768),
q(0),
],
q(clc) => [
- q(1774),
+ q(1769),
q(0),
],
q(cld) => [
- q(1775),
+ q(1770),
q(0),
],
q(cle) => [
- q(1776),
+ q(1771),
q(0),
],
q(clh) => [
- q(1777),
+ q(1772),
q(0),
],
q(cli) => [
- q(1778),
+ q(1773),
q(0),
],
q(clj) => [
- q(1779),
+ q(1774),
q(0),
],
q(clk) => [
- q(1780),
+ q(1775),
q(0),
],
q(cll) => [
- q(1781),
+ q(1776),
q(0),
],
q(clm) => [
- q(1782),
+ q(1777),
q(0),
],
q(clo) => [
- q(1783),
+ q(1778),
q(0),
],
q(clt) => [
- q(1784),
+ q(1779),
q(0),
],
q(clu) => [
- q(1785),
+ q(1780),
q(0),
],
q(clw) => [
- q(1786),
+ q(1781),
q(0),
],
q(cly) => [
- q(1787),
+ q(1782),
q(0),
],
q(cma) => [
- q(1788),
+ q(1783),
q(0),
],
q(cmc) => [
@@ -63602,155 +63620,155 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cme) => [
- q(1789),
+ q(1784),
q(0),
],
q(cmg) => [
- q(1790),
+ q(1785),
q(0),
],
q(cmi) => [
- q(1791),
+ q(1786),
q(0),
],
q(cml) => [
- q(1792),
+ q(1787),
q(0),
],
q(cmm) => [
- q(1793),
+ q(1788),
q(0),
],
q(cmn) => [
- q(1794),
+ q(1789),
q(0),
],
q(cmo) => [
- q(1795),
+ q(1790),
q(0),
],
q(cmr) => [
- q(1796),
+ q(1791),
q(0),
],
q(cms) => [
- q(1797),
+ q(1792),
q(0),
],
q(cmt) => [
- q(1798),
+ q(1793),
q(0),
],
q(cna) => [
- q(1799),
+ q(1794),
q(0),
],
q(cnb) => [
- q(1800),
+ q(1795),
q(0),
],
q(cnc) => [
- q(1801),
+ q(1796),
q(0),
],
q(cng) => [
- q(1802),
+ q(1797),
q(0),
],
q(cnh) => [
- q(1803),
+ q(1798),
q(0),
],
q(cni) => [
- q(1804),
+ q(1799),
q(0),
],
q(cnk) => [
- q(1805),
+ q(1800),
q(0),
],
q(cnl) => [
- q(1806),
+ q(1801),
q(0),
],
q(cno) => [
- q(1807),
+ q(1802),
q(0),
],
q(cns) => [
- q(1808),
+ q(1803),
q(0),
],
q(cnt) => [
- q(1809),
+ q(1804),
q(0),
],
q(cnu) => [
- q(1810),
+ q(1805),
q(0),
],
q(cnw) => [
- q(1811),
+ q(1806),
q(0),
],
q(cnx) => [
- q(1812),
+ q(1807),
q(0),
],
q(coa) => [
- q(1813),
+ q(1808),
q(0),
],
q(cob) => [
- q(1814),
+ q(1809),
q(0),
],
q(coc) => [
- q(1815),
+ q(1810),
q(0),
],
q(cod) => [
- q(1816),
+ q(1811),
q(0),
],
q(coe) => [
- q(1817),
+ q(1812),
q(0),
],
q(cof) => [
- q(1818),
+ q(1813),
q(0),
],
q(cog) => [
- q(1819),
+ q(1814),
q(0),
],
q(coh) => [
- q(1820),
+ q(1815),
q(0),
],
q(coj) => [
- q(1821),
+ q(1816),
q(0),
],
q(cok) => [
- q(1822),
+ q(1817),
q(0),
],
q(col) => [
- q(1823),
+ q(1818),
q(0),
],
q(com) => [
- q(1824),
+ q(1819),
q(0),
],
q(con) => [
- q(1825),
+ q(1820),
q(0),
],
q(coo) => [
- q(1826),
+ q(1821),
q(0),
],
q(cop) => [
@@ -63758,7 +63776,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(coq) => [
- q(1827),
+ q(1822),
q(0),
],
q(cor) => [
@@ -63770,43 +63788,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cot) => [
- q(1828),
+ q(1823),
q(0),
],
q(cou) => [
- q(1829),
+ q(1824),
q(0),
],
q(cov) => [
- q(1830),
+ q(1825),
q(0),
],
q(cow) => [
- q(1831),
+ q(1826),
q(0),
],
q(cox) => [
- q(1832),
+ q(1827),
q(0),
],
q(coy) => [
- q(1833),
+ q(1828),
q(0),
],
q(coz) => [
- q(1834),
+ q(1829),
q(0),
],
q(cpa) => [
- q(1835),
+ q(1830),
q(0),
],
q(cpb) => [
- q(1836),
+ q(1831),
q(0),
],
q(cpc) => [
- q(1837),
+ q(1832),
q(0),
],
q(cpe) => [
@@ -63818,19 +63836,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(2),
],
q(cpg) => [
- q(1838),
+ q(1833),
q(0),
],
q(cpi) => [
- q(1839),
+ q(1834),
q(0),
],
q(cpn) => [
- q(1840),
+ q(1835),
q(0),
],
q(cpo) => [
- q(1841),
+ q(1836),
q(0),
],
q(cpp) => [
@@ -63838,43 +63856,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(2),
],
q(cps) => [
- q(1842),
+ q(1837),
q(0),
],
q(cpu) => [
- q(1843),
+ q(1838),
q(0),
],
q(cpx) => [
- q(1844),
+ q(1839),
q(0),
],
q(cpy) => [
- q(1845),
+ q(1840),
q(0),
],
q(cqd) => [
- q(1846),
+ q(1841),
q(0),
],
q(cqu) => [
- q(1847),
+ q(1842),
q(0),
],
q(cra) => [
- q(1848),
+ q(1843),
q(0),
],
q(crb) => [
- q(1849),
+ q(1844),
q(0),
],
q(crc) => [
- q(1850),
+ q(1845),
q(0),
],
q(crd) => [
- q(1851),
+ q(1846),
q(0),
],
q(cre) => [
@@ -63882,11 +63900,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(crf) => [
- q(1852),
+ q(1847),
q(0),
],
q(crg) => [
- q(1853),
+ q(1848),
q(0),
],
q(crh) => [
@@ -63894,31 +63912,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cri) => [
- q(1854),
+ q(1849),
q(0),
],
q(crj) => [
- q(1855),
+ q(1850),
q(0),
],
q(crk) => [
- q(1856),
+ q(1851),
q(0),
],
q(crl) => [
- q(1857),
+ q(1852),
q(0),
],
q(crm) => [
- q(1858),
+ q(1853),
q(0),
],
q(crn) => [
- q(1859),
+ q(1854),
q(0),
],
q(cro) => [
- q(1860),
+ q(1855),
q(0),
],
q(crp) => [
@@ -63926,43 +63944,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(crq) => [
- q(1861),
+ q(1856),
q(0),
],
q(crr) => [
- q(1862),
+ q(1857),
q(0),
],
q(crs) => [
- q(1863),
+ q(1858),
q(0),
],
q(crt) => [
- q(1864),
+ q(1859),
q(0),
],
q(crv) => [
- q(1865),
+ q(1860),
q(0),
],
q(crw) => [
- q(1866),
+ q(1861),
q(0),
],
q(crx) => [
- q(1867),
+ q(1862),
q(0),
],
q(cry) => [
- q(1868),
+ q(1863),
q(0),
],
q(crz) => [
- q(1869),
+ q(1864),
q(0),
],
q(csa) => [
- q(1870),
+ q(1865),
q(0),
],
q(csb) => [
@@ -63970,71 +63988,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(csc) => [
- q(1871),
+ q(1866),
q(0),
],
q(csd) => [
- q(1872),
+ q(1867),
q(0),
],
q(cse) => [
- q(1873),
+ q(1868),
q(0),
],
q(csf) => [
- q(1874),
+ q(1869),
q(0),
],
q(csg) => [
- q(1875),
+ q(1870),
q(0),
],
q(csh) => [
- q(1876),
+ q(1871),
q(0),
],
q(csi) => [
- q(1877),
+ q(1872),
q(0),
],
q(csj) => [
- q(1878),
+ q(1873),
q(0),
],
q(csk) => [
- q(1879),
+ q(1874),
q(0),
],
q(csl) => [
- q(1880),
+ q(1875),
q(0),
],
q(csm) => [
- q(1881),
+ q(1876),
q(0),
],
q(csn) => [
- q(1882),
+ q(1877),
q(0),
],
q(cso) => [
- q(1883),
+ q(1878),
q(0),
],
q(csq) => [
- q(1884),
+ q(1879),
q(0),
],
q(csr) => [
- q(1885),
+ q(1880),
q(0),
],
q(css) => [
- q(1886),
+ q(1881),
q(0),
],
q(cst) => [
- q(1887),
+ q(1882),
q(0),
],
q(csu) => [
@@ -64042,135 +64060,135 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(csv) => [
- q(1888),
+ q(1883),
q(0),
],
q(csw) => [
- q(1889),
+ q(1884),
q(0),
],
q(csy) => [
- q(1890),
+ q(1885),
q(0),
],
q(csz) => [
- q(1891),
+ q(1886),
q(0),
],
q(cta) => [
- q(1892),
+ q(1887),
q(0),
],
q(ctc) => [
- q(1893),
+ q(1888),
q(0),
],
q(ctd) => [
- q(1894),
+ q(1889),
q(0),
],
q(cte) => [
- q(1895),
+ q(1890),
q(0),
],
q(ctg) => [
- q(1896),
+ q(1891),
q(0),
],
q(cth) => [
- q(1897),
+ q(1892),
q(0),
],
q(ctl) => [
- q(1898),
+ q(1893),
q(0),
],
q(ctm) => [
- q(1899),
+ q(1894),
q(0),
],
q(ctn) => [
- q(1900),
+ q(1895),
q(0),
],
q(cto) => [
- q(1901),
+ q(1896),
q(0),
],
q(ctp) => [
- q(1902),
+ q(1897),
q(0),
],
q(cts) => [
- q(1903),
+ q(1898),
q(0),
],
q(ctt) => [
- q(1904),
+ q(1899),
q(0),
],
q(ctu) => [
- q(1905),
+ q(1900),
q(0),
],
q(ctz) => [
- q(1906),
+ q(1901),
q(0),
],
q(cua) => [
- q(1907),
+ q(1902),
q(0),
],
q(cub) => [
- q(1908),
+ q(1903),
q(0),
],
q(cuc) => [
- q(1909),
+ q(1904),
q(0),
],
q(cug) => [
- q(1910),
+ q(1905),
q(0),
],
q(cuh) => [
- q(1911),
+ q(1906),
q(0),
],
q(cui) => [
- q(1912),
+ q(1907),
q(0),
],
q(cuj) => [
- q(1913),
+ q(1908),
q(0),
],
q(cuk) => [
- q(1914),
+ q(1909),
q(0),
],
q(cul) => [
- q(1915),
+ q(1910),
q(0),
],
q(cum) => [
- q(1916),
+ q(1911),
q(0),
],
q(cuo) => [
- q(1917),
+ q(1912),
q(0),
],
q(cup) => [
- q(1918),
+ q(1913),
q(0),
],
q(cuq) => [
- q(1919),
+ q(1914),
q(0),
],
q(cur) => [
- q(1920),
+ q(1915),
q(0),
],
q(cus) => [
@@ -64178,67 +64196,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cut) => [
- q(1921),
+ q(1916),
q(0),
],
q(cuu) => [
- q(1922),
+ q(1917),
q(0),
],
q(cuv) => [
- q(1923),
+ q(1918),
q(0),
],
q(cuw) => [
- q(1924),
+ q(1919),
q(0),
],
q(cux) => [
- q(1925),
+ q(1920),
q(0),
],
q(cvg) => [
- q(1926),
+ q(1921),
q(0),
],
q(cvn) => [
- q(1927),
+ q(1922),
q(0),
],
q(cwa) => [
- q(1928),
+ q(1923),
q(0),
],
q(cwb) => [
- q(1929),
+ q(1924),
q(0),
],
q(cwd) => [
- q(1930),
+ q(1925),
q(0),
],
q(cwe) => [
- q(1931),
+ q(1926),
q(0),
],
q(cwg) => [
- q(1932),
+ q(1927),
q(0),
],
q(cwt) => [
- q(1933),
+ q(1928),
q(0),
],
q(cya) => [
- q(1934),
+ q(1929),
q(0),
],
q(cyb) => [
- q(1935),
+ q(1930),
q(0),
],
q(cyo) => [
- q(1936),
+ q(1931),
q(0),
],
q(cze) => [
@@ -64246,55 +64264,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(czh) => [
- q(1937),
+ q(1932),
q(0),
],
q(czk) => [
- q(1938),
+ q(1933),
q(0),
],
q(czn) => [
- q(1939),
+ q(1934),
q(0),
],
q(czo) => [
- q(1940),
+ q(1935),
q(0),
],
q(czt) => [
- q(1941),
+ q(1936),
q(0),
],
q(daa) => [
- q(1942),
+ q(1937),
q(0),
],
q(dac) => [
- q(1943),
+ q(1938),
q(0),
],
q(dad) => [
- q(1944),
+ q(1939),
q(0),
],
q(dae) => [
- q(1945),
+ q(1940),
q(0),
],
q(dag) => [
- q(1946),
+ q(1941),
q(0),
],
q(dah) => [
- q(1947),
+ q(1942),
q(0),
],
q(dai) => [
- q(1948),
+ q(1943),
q(0),
],
q(daj) => [
- q(1949),
+ q(1944),
q(0),
],
q(dak) => [
@@ -64302,11 +64320,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dal) => [
- q(1950),
+ q(1945),
q(0),
],
q(dam) => [
- q(1951),
+ q(1946),
q(0),
],
q(dan) => [
@@ -64314,11 +64332,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dao) => [
- q(1952),
+ q(1947),
q(0),
],
q(daq) => [
- q(1953),
+ q(1948),
q(0),
],
q(dar) => [
@@ -64326,23 +64344,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(das) => [
- q(1954),
+ q(1949),
q(0),
],
q(dau) => [
- q(1955),
+ q(1950),
q(0),
],
q(dav) => [
- q(1956),
+ q(1951),
q(0),
],
q(daw) => [
- q(1957),
+ q(1952),
q(0),
],
q(dax) => [
- q(1958),
+ q(1953),
q(0),
],
q(day) => [
@@ -64350,171 +64368,171 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(daz) => [
- q(1959),
+ q(1954),
q(0),
],
q(dba) => [
- q(1960),
+ q(1955),
q(0),
],
q(dbb) => [
- q(1961),
+ q(1956),
q(0),
],
q(dbd) => [
- q(1962),
+ q(1957),
q(0),
],
q(dbe) => [
- q(1963),
+ q(1958),
q(0),
],
q(dbf) => [
- q(1964),
+ q(1959),
q(0),
],
q(dbg) => [
- q(1965),
+ q(1960),
q(0),
],
q(dbi) => [
- q(1966),
+ q(1961),
q(0),
],
q(dbj) => [
- q(1967),
+ q(1962),
q(0),
],
q(dbl) => [
- q(1968),
+ q(1963),
q(0),
],
q(dbm) => [
- q(1969),
+ q(1964),
q(0),
],
q(dbn) => [
- q(1970),
+ q(1965),
q(0),
],
q(dbo) => [
- q(1971),
+ q(1966),
q(0),
],
q(dbp) => [
- q(1972),
+ q(1967),
q(0),
],
q(dbq) => [
- q(1973),
+ q(1968),
q(0),
],
q(dbr) => [
- q(1974),
+ q(1969),
q(0),
],
q(dbt) => [
- q(1975),
+ q(1970),
q(0),
],
q(dbu) => [
- q(1976),
+ q(1971),
q(0),
],
q(dbv) => [
- q(1977),
+ q(1972),
q(0),
],
q(dbw) => [
- q(1978),
+ q(1973),
q(0),
],
q(dby) => [
- q(1979),
+ q(1974),
q(0),
],
q(dcc) => [
- q(1980),
+ q(1975),
q(0),
],
q(dcr) => [
- q(1981),
+ q(1976),
q(0),
],
q(dda) => [
- q(1982),
+ q(1977),
q(0),
],
q(ddd) => [
- q(1983),
+ q(1978),
q(0),
],
q(dde) => [
- q(1984),
+ q(1979),
q(0),
],
q(ddg) => [
- q(1985),
+ q(1980),
q(0),
],
q(ddi) => [
- q(1986),
+ q(1981),
q(0),
],
q(ddj) => [
- q(1987),
+ q(1982),
q(0),
],
q(ddn) => [
- q(1988),
+ q(1983),
q(0),
],
q(ddo) => [
- q(1989),
+ q(1984),
q(0),
],
q(ddr) => [
- q(1990),
+ q(1985),
q(0),
],
q(dds) => [
- q(1991),
+ q(1986),
q(0),
],
q(ddw) => [
- q(1992),
+ q(1987),
q(0),
],
q(dec) => [
- q(1993),
+ q(1988),
q(0),
],
q(ded) => [
- q(1994),
+ q(1989),
q(0),
],
q(dee) => [
- q(1995),
+ q(1990),
q(0),
],
q(def) => [
- q(1996),
+ q(1991),
q(0),
],
q(deg) => [
- q(1997),
+ q(1992),
q(0),
],
q(deh) => [
- q(1998),
+ q(1993),
q(0),
],
q(dei) => [
- q(1999),
+ q(1994),
q(0),
],
q(dek) => [
- q(2000),
+ q(1995),
q(0),
],
q(del) => [
@@ -64522,7 +64540,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dem) => [
- q(2001),
+ q(1996),
q(0),
],
q(den) => [
@@ -64530,75 +64548,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dep) => [
- q(2002),
+ q(1997),
q(0),
],
q(deq) => [
- q(2003),
+ q(1998),
q(0),
],
q(der) => [
- q(2004),
+ q(1999),
q(0),
],
q(des) => [
- q(2005),
+ q(2000),
q(0),
],
q(dev) => [
- q(2006),
+ q(2001),
q(0),
],
q(dez) => [
- q(2007),
+ q(2002),
q(0),
],
q(dga) => [
- q(2008),
+ q(2003),
q(0),
],
q(dgb) => [
- q(2009),
+ q(2004),
q(0),
],
q(dgc) => [
- q(2010),
+ q(2005),
q(0),
],
q(dgd) => [
- q(2011),
+ q(2006),
q(0),
],
q(dge) => [
- q(2012),
+ q(2007),
q(0),
],
q(dgg) => [
- q(2013),
+ q(2008),
q(0),
],
q(dgh) => [
- q(2014),
+ q(2009),
q(0),
],
q(dgi) => [
- q(2015),
+ q(2010),
q(0),
],
q(dgk) => [
- q(2016),
+ q(2011),
q(0),
],
q(dgl) => [
- q(2017),
+ q(2012),
q(0),
],
q(dgn) => [
- q(2018),
+ q(2013),
q(0),
],
q(dgo) => [
- q(2019),
+ q(2014),
q(0),
],
q(dgr) => [
@@ -64606,127 +64624,127 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dgs) => [
- q(2020),
+ q(2015),
q(0),
],
q(dgt) => [
- q(2021),
+ q(2016),
q(0),
],
q(dgu) => [
- q(2022),
+ q(2017),
q(0),
],
q(dgw) => [
- q(2023),
+ q(2018),
q(0),
],
q(dgx) => [
- q(2024),
+ q(2019),
q(0),
],
q(dgz) => [
- q(2025),
+ q(2020),
q(0),
],
q(dhd) => [
- q(2026),
+ q(2021),
q(0),
],
q(dhg) => [
- q(2027),
+ q(2022),
q(0),
],
q(dhi) => [
- q(2028),
+ q(2023),
q(0),
],
q(dhl) => [
- q(2029),
+ q(2024),
q(0),
],
q(dhm) => [
- q(2030),
+ q(2025),
q(0),
],
q(dhn) => [
- q(2031),
+ q(2026),
q(0),
],
q(dho) => [
- q(2032),
+ q(2027),
q(0),
],
q(dhr) => [
- q(2033),
+ q(2028),
q(0),
],
q(dhs) => [
- q(2034),
+ q(2029),
q(0),
],
q(dhu) => [
- q(2035),
+ q(2030),
q(0),
],
q(dhv) => [
- q(2036),
+ q(2031),
q(0),
],
q(dhw) => [
- q(2037),
+ q(2032),
q(0),
],
q(dhx) => [
- q(2038),
+ q(2033),
q(0),
],
q(dia) => [
- q(2039),
+ q(2034),
q(0),
],
q(dib) => [
- q(2040),
+ q(2035),
q(0),
],
q(dic) => [
- q(2041),
+ q(2036),
q(0),
],
q(did) => [
- q(2042),
+ q(2037),
q(0),
],
q(dif) => [
- q(2043),
+ q(2038),
q(0),
],
q(dig) => [
- q(2044),
+ q(2039),
q(0),
],
q(dih) => [
- q(2045),
+ q(2040),
q(0),
],
q(dii) => [
- q(2046),
+ q(2041),
q(0),
],
q(dij) => [
- q(2047),
+ q(2042),
q(0),
],
q(dik) => [
- q(2048),
+ q(2043),
q(0),
],
q(dil) => [
- q(2049),
+ q(2044),
q(0),
],
q(dim) => [
- q(2050),
+ q(2045),
q(0),
],
q(din) => [
@@ -64734,31 +64752,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dio) => [
- q(2051),
+ q(2046),
q(0),
],
q(dip) => [
- q(2052),
+ q(2047),
q(0),
],
q(diq) => [
- q(2053),
+ q(2048),
q(0),
],
q(dir) => [
- q(2054),
+ q(2049),
q(0),
],
q(dis) => [
- q(2055),
+ q(2050),
q(0),
],
q(dit) => [
- q(2056),
+ q(2051),
q(0),
],
q(diu) => [
- q(2057),
+ q(2052),
q(0),
],
q(div) => [
@@ -64766,151 +64784,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(diw) => [
- q(2058),
+ q(2053),
q(0),
],
q(dix) => [
- q(2059),
+ q(2054),
q(0),
],
q(diy) => [
- q(2060),
+ q(2055),
q(0),
],
q(diz) => [
- q(2061),
+ q(2056),
q(0),
],
q(dja) => [
- q(2062),
+ q(2057),
q(0),
],
q(djb) => [
- q(2063),
+ q(2058),
q(0),
],
q(djc) => [
- q(2064),
+ q(2059),
q(0),
],
q(djd) => [
- q(2065),
+ q(2060),
q(0),
],
q(dje) => [
- q(2066),
+ q(2061),
q(0),
],
q(djf) => [
- q(2067),
+ q(2062),
q(0),
],
q(dji) => [
- q(2068),
+ q(2063),
q(0),
],
q(djj) => [
- q(2069),
+ q(2064),
q(0),
],
q(djk) => [
- q(2070),
+ q(2065),
q(0),
],
q(djm) => [
- q(2071),
+ q(2066),
q(0),
],
q(djn) => [
- q(2072),
+ q(2067),
q(0),
],
q(djo) => [
- q(2073),
+ q(2068),
q(0),
],
q(djr) => [
- q(2074),
+ q(2069),
q(0),
],
q(dju) => [
- q(2075),
+ q(2070),
q(0),
],
q(djw) => [
- q(2076),
+ q(2071),
q(0),
],
q(dka) => [
- q(2077),
+ q(2072),
q(0),
],
q(dkk) => [
- q(2078),
+ q(2073),
q(0),
],
q(dkr) => [
- q(2079),
+ q(2074),
q(0),
],
q(dks) => [
- q(2080),
+ q(2075),
q(0),
],
q(dkx) => [
- q(2081),
+ q(2076),
q(0),
],
q(dlg) => [
- q(2082),
+ q(2077),
q(0),
],
q(dlk) => [
- q(2083),
+ q(2078),
q(0),
],
q(dlm) => [
- q(2084),
+ q(2079),
q(0),
],
q(dln) => [
- q(2085),
+ q(2080),
q(0),
],
q(dma) => [
- q(2086),
+ q(2081),
q(0),
],
q(dmb) => [
- q(2087),
+ q(2082),
q(0),
],
q(dmc) => [
- q(2088),
+ q(2083),
q(0),
],
q(dmd) => [
- q(2089),
+ q(2084),
q(0),
],
q(dme) => [
- q(2090),
+ q(2085),
q(0),
],
q(dmg) => [
- q(2091),
+ q(2086),
q(0),
],
q(dmk) => [
- q(2092),
+ q(2087),
q(0),
],
q(dml) => [
- q(2093),
+ q(2088),
q(0),
],
q(dmm) => [
- q(2094),
+ q(2089),
q(0),
],
q(dmn) => [
@@ -64918,115 +64936,115 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dmo) => [
- q(2095),
+ q(2090),
q(0),
],
q(dmr) => [
- q(2096),
+ q(2091),
q(0),
],
q(dms) => [
- q(2097),
+ q(2092),
q(0),
],
q(dmu) => [
- q(2098),
+ q(2093),
q(0),
],
q(dmv) => [
- q(2099),
+ q(2094),
q(0),
],
q(dmw) => [
- q(2100),
+ q(2095),
q(0),
],
q(dmx) => [
- q(2101),
+ q(2096),
q(0),
],
q(dmy) => [
- q(2102),
+ q(2097),
q(0),
],
q(dna) => [
- q(2103),
+ q(2098),
q(0),
],
q(dnd) => [
- q(2104),
+ q(2099),
q(0),
],
q(dne) => [
- q(2105),
+ q(2100),
q(0),
],
q(dng) => [
- q(2106),
+ q(2101),
q(0),
],
q(dni) => [
- q(2107),
+ q(2102),
q(0),
],
q(dnj) => [
- q(2108),
+ q(2103),
q(0),
],
q(dnk) => [
- q(2109),
+ q(2104),
q(0),
],
q(dnn) => [
- q(2110),
+ q(2105),
q(0),
],
q(dnr) => [
- q(2111),
+ q(2106),
q(0),
],
q(dnt) => [
- q(2112),
+ q(2107),
q(0),
],
q(dnu) => [
- q(2113),
+ q(2108),
q(0),
],
q(dnv) => [
- q(2114),
+ q(2109),
q(0),
],
q(dnw) => [
- q(2115),
+ q(2110),
q(0),
],
q(dny) => [
- q(2116),
+ q(2111),
q(0),
],
q(doa) => [
- q(2117),
+ q(2112),
q(0),
],
q(dob) => [
- q(2118),
+ q(2113),
q(0),
],
q(doc) => [
- q(2119),
+ q(2114),
q(0),
],
q(doe) => [
- q(2120),
+ q(2115),
q(0),
],
q(dof) => [
- q(2121),
+ q(2116),
q(0),
],
q(doh) => [
- q(2122),
+ q(2117),
q(0),
],
q(doi) => [
@@ -65034,63 +65052,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(dok) => [
- q(2123),
+ q(2118),
q(0),
],
q(dol) => [
- q(2124),
+ q(2119),
q(0),
],
q(don) => [
- q(2125),
+ q(2120),
q(0),
],
q(doo) => [
- q(2126),
+ q(2121),
q(0),
],
q(dop) => [
- q(2127),
+ q(2122),
q(0),
],
q(doq) => [
- q(2128),
+ q(2123),
q(0),
],
q(dor) => [
- q(2129),
+ q(2124),
q(0),
],
q(dos) => [
- q(2130),
+ q(2125),
q(0),
],
q(dot) => [
- q(2131),
+ q(2126),
q(0),
],
q(dov) => [
- q(2132),
+ q(2127),
q(0),
],
q(dow) => [
- q(2133),
+ q(2128),
q(0),
],
q(dox) => [
- q(2134),
+ q(2129),
q(0),
],
q(doy) => [
- q(2135),
+ q(2130),
q(0),
],
q(doz) => [
- q(2136),
+ q(2131),
q(0),
],
q(dpp) => [
- q(2137),
+ q(2132),
q(0),
],
q(dra) => [
@@ -65098,63 +65116,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(drb) => [
- q(2138),
+ q(2133),
q(0),
],
q(drc) => [
- q(2139),
+ q(2134),
q(0),
],
q(drd) => [
- q(2140),
+ q(2135),
q(0),
],
q(dre) => [
- q(2141),
+ q(2136),
q(0),
],
q(drg) => [
- q(2142),
+ q(2137),
q(0),
],
q(dri) => [
- q(2143),
+ q(2138),
q(0),
],
q(drl) => [
- q(2144),
+ q(2139),
q(0),
],
q(drn) => [
- q(2145),
+ q(2140),
q(0),
],
q(dro) => [
- q(2146),
+ q(2141),
q(0),
],
q(drq) => [
- q(2147),
+ q(2142),
q(0),
],
q(drr) => [
- q(2148),
+ q(2143),
q(0),
],
q(drs) => [
- q(2149),
+ q(2144),
q(0),
],
q(drt) => [
- q(2150),
+ q(2145),
q(0),
],
q(dru) => [
- q(2151),
+ q(2146),
q(0),
],
q(dry) => [
- q(2152),
+ q(2147),
q(0),
],
q(dsb) => [
@@ -65162,87 +65180,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dse) => [
- q(2153),
+ q(2148),
q(0),
],
q(dsh) => [
- q(2154),
+ q(2149),
q(0),
],
q(dsi) => [
- q(2155),
+ q(2150),
q(0),
],
q(dsl) => [
- q(2156),
+ q(2151),
q(0),
],
q(dsn) => [
- q(2157),
+ q(2152),
q(0),
],
q(dso) => [
- q(2158),
+ q(2153),
q(0),
],
q(dsq) => [
- q(2159),
+ q(2154),
q(0),
],
q(dta) => [
- q(2160),
+ q(2155),
q(0),
],
q(dtb) => [
- q(2161),
+ q(2156),
q(0),
],
q(dtd) => [
- q(2162),
+ q(2157),
q(0),
],
q(dth) => [
- q(2163),
+ q(2158),
q(0),
],
q(dti) => [
- q(2164),
+ q(2159),
q(0),
],
q(dtk) => [
- q(2165),
+ q(2160),
q(0),
],
q(dtm) => [
- q(2166),
+ q(2161),
q(0),
],
q(dto) => [
- q(2167),
+ q(2162),
q(0),
],
q(dtp) => [
- q(2168),
+ q(2163),
q(0),
],
q(dtr) => [
- q(2169),
+ q(2164),
q(0),
],
q(dts) => [
- q(2170),
+ q(2165),
q(0),
],
q(dtt) => [
- q(2171),
+ q(2166),
q(0),
],
q(dtu) => [
- q(2172),
+ q(2167),
q(0),
],
q(dty) => [
- q(2173),
+ q(2168),
q(0),
],
q(dua) => [
@@ -65250,47 +65268,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dub) => [
- q(2174),
+ q(2169),
q(0),
],
q(duc) => [
- q(2175),
+ q(2170),
q(0),
],
q(dud) => [
- q(2176),
+ q(2171),
q(0),
],
q(due) => [
- q(2177),
+ q(2172),
q(0),
],
q(duf) => [
- q(2178),
+ q(2173),
q(0),
],
q(dug) => [
- q(2179),
+ q(2174),
q(0),
],
q(duh) => [
- q(2180),
+ q(2175),
q(0),
],
q(dui) => [
- q(2181),
+ q(2176),
q(0),
],
q(duj) => [
- q(2182),
+ q(2177),
q(0),
],
q(duk) => [
- q(2183),
+ q(2178),
q(0),
],
q(dul) => [
- q(2184),
+ q(2179),
q(0),
],
q(dum) => [
@@ -65298,27 +65316,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(dun) => [
- q(2185),
+ q(2180),
q(0),
],
q(duo) => [
- q(2186),
+ q(2181),
q(0),
],
q(dup) => [
- q(2187),
+ q(2182),
q(0),
],
q(duq) => [
- q(2188),
+ q(2183),
q(0),
],
q(dur) => [
- q(2189),
+ q(2184),
q(0),
],
q(dus) => [
- q(2190),
+ q(2185),
q(0),
],
q(dut) => [
@@ -65326,79 +65344,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(duu) => [
- q(2191),
+ q(2186),
q(0),
],
q(duv) => [
- q(2192),
+ q(2187),
q(0),
],
q(duw) => [
- q(2193),
+ q(2188),
q(0),
],
q(dux) => [
- q(2194),
+ q(2189),
q(0),
],
q(duy) => [
- q(2195),
+ q(2190),
q(0),
],
q(duz) => [
- q(2196),
+ q(2191),
q(0),
],
q(dva) => [
- q(2197),
+ q(2192),
q(0),
],
q(dwa) => [
- q(2198),
+ q(2193),
q(0),
],
q(dwr) => [
- q(2199),
+ q(2194),
q(0),
],
q(dws) => [
- q(2200),
+ q(2195),
q(0),
],
q(dww) => [
- q(2201),
+ q(2196),
q(0),
],
q(dya) => [
- q(2202),
+ q(2197),
q(0),
],
q(dyb) => [
- q(2203),
+ q(2198),
q(0),
],
q(dyd) => [
- q(2204),
+ q(2199),
q(0),
],
q(dyg) => [
- q(2205),
+ q(2200),
q(0),
],
q(dyi) => [
- q(2206),
+ q(2201),
q(0),
],
q(dym) => [
- q(2207),
+ q(2202),
q(0),
],
q(dyn) => [
- q(2208),
+ q(2203),
q(0),
],
q(dyo) => [
- q(2209),
+ q(2204),
q(0),
],
q(dyu) => [
@@ -65406,31 +65424,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dyy) => [
- q(2210),
+ q(2205),
q(0),
],
q(dza) => [
- q(2211),
- q(0),
- ],
- q(dzd) => [
- q(2212),
+ q(2206),
q(0),
],
q(dze) => [
- q(2213),
+ q(2207),
q(0),
],
q(dzg) => [
- q(2214),
+ q(2208),
q(0),
],
q(dzl) => [
- q(2215),
+ q(2209),
q(0),
],
q(dzn) => [
- q(2216),
+ q(2210),
q(0),
],
q(dzo) => [
@@ -65438,51 +65452,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(eaa) => [
- q(2217),
+ q(2211),
q(0),
],
q(ebg) => [
- q(2218),
+ q(2212),
q(0),
],
q(ebk) => [
- q(2219),
+ q(2213),
q(0),
],
q(ebo) => [
- q(2220),
+ q(2214),
q(0),
],
q(ebr) => [
- q(2221),
+ q(2215),
q(0),
],
q(ebu) => [
- q(2222),
+ q(2216),
q(0),
],
q(ecr) => [
- q(2223),
+ q(2217),
q(0),
],
q(ecs) => [
- q(2224),
+ q(2218),
q(0),
],
q(ecy) => [
- q(2225),
+ q(2219),
q(0),
],
q(eee) => [
- q(2226),
+ q(2220),
q(0),
],
q(efa) => [
- q(2227),
+ q(2221),
q(0),
],
q(efe) => [
- q(2228),
+ q(2222),
q(0),
],
q(efi) => [
@@ -65490,15 +65504,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ega) => [
- q(2229),
+ q(2223),
q(0),
],
q(egl) => [
- q(2230),
+ q(2224),
q(0),
],
q(ego) => [
- q(2231),
+ q(2225),
q(0),
],
q(egx) => [
@@ -65510,23 +65524,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ehu) => [
- q(2232),
+ q(2226),
q(0),
],
q(eip) => [
- q(2233),
+ q(2227),
q(0),
],
q(eit) => [
- q(2234),
+ q(2228),
q(0),
],
q(eiv) => [
- q(2235),
+ q(2229),
q(0),
],
q(eja) => [
- q(2236),
+ q(2230),
q(0),
],
q(eka) => [
@@ -65534,75 +65548,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ekc) => [
- q(2237),
+ q(2231),
q(0),
],
q(eke) => [
- q(2238),
+ q(2232),
q(0),
],
q(ekg) => [
- q(2239),
+ q(2233),
q(0),
],
q(eki) => [
- q(2240),
+ q(2234),
q(0),
],
q(ekk) => [
- q(2241),
+ q(2235),
q(0),
],
q(ekl) => [
- q(2242),
+ q(2236),
q(0),
],
q(ekm) => [
- q(2243),
+ q(2237),
q(0),
],
q(eko) => [
- q(2244),
+ q(2238),
q(0),
],
q(ekp) => [
- q(2245),
+ q(2239),
q(0),
],
q(ekr) => [
- q(2246),
+ q(2240),
q(0),
],
q(eky) => [
- q(2247),
+ q(2241),
q(0),
],
q(ele) => [
- q(2248),
+ q(2242),
q(0),
],
q(elh) => [
- q(2249),
+ q(2243),
q(0),
],
q(eli) => [
- q(2250),
+ q(2244),
q(0),
],
q(elk) => [
- q(2251),
+ q(2245),
q(0),
],
q(elm) => [
- q(2252),
+ q(2246),
q(0),
],
q(elo) => [
- q(2253),
+ q(2247),
q(0),
],
q(elu) => [
- q(2254),
+ q(2248),
q(0),
],
q(elx) => [
@@ -65610,83 +65624,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ema) => [
- q(2255),
+ q(2249),
q(0),
],
q(emb) => [
- q(2256),
+ q(2250),
q(0),
],
q(eme) => [
- q(2257),
+ q(2251),
q(0),
],
q(emg) => [
- q(2258),
+ q(2252),
q(0),
],
q(emi) => [
- q(2259),
+ q(2253),
q(0),
],
q(emk) => [
- q(2260),
+ q(2254),
q(0),
],
q(emm) => [
- q(2261),
+ q(2255),
q(0),
],
q(emn) => [
- q(2262),
- q(0),
- ],
- q(emo) => [
- q(2263),
+ q(2256),
q(0),
],
q(emp) => [
- q(2264),
+ q(2257),
q(0),
],
q(ems) => [
- q(2265),
+ q(2258),
q(0),
],
q(emu) => [
- q(2266),
+ q(2259),
q(0),
],
q(emw) => [
- q(2267),
+ q(2260),
q(0),
],
q(emx) => [
- q(2268),
+ q(2261),
q(0),
],
q(emy) => [
- q(2269),
+ q(2262),
q(0),
],
q(ena) => [
- q(2270),
+ q(2263),
q(0),
],
q(enb) => [
- q(2271),
+ q(2264),
q(0),
],
q(enc) => [
- q(2272),
+ q(2265),
q(0),
],
q(end) => [
- q(2273),
+ q(2266),
q(0),
],
q(enf) => [
- q(2274),
+ q(2267),
q(0),
],
q(eng) => [
@@ -65694,7 +65704,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(enh) => [
- q(2275),
+ q(2268),
+ q(0),
+ ],
+ q(enl) => [
+ q(2269),
q(0),
],
q(enm) => [
@@ -65702,39 +65716,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(enn) => [
- q(2276),
+ q(2270),
q(0),
],
q(eno) => [
- q(2277),
+ q(2271),
q(0),
],
q(enq) => [
- q(2278),
+ q(2272),
q(0),
],
q(enr) => [
- q(2279),
+ q(2273),
q(0),
],
q(enu) => [
- q(2280),
+ q(2274),
q(0),
],
q(env) => [
- q(2281),
+ q(2275),
q(0),
],
q(enw) => [
- q(2282),
+ q(2276),
+ q(0),
+ ],
+ q(enx) => [
+ q(2277),
q(0),
],
q(eot) => [
- q(2283),
+ q(2278),
q(0),
],
q(epi) => [
- q(2284),
+ q(2279),
q(0),
],
q(epo) => [
@@ -65742,83 +65760,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(era) => [
- q(2285),
+ q(2280),
q(0),
],
q(erg) => [
- q(2286),
+ q(2281),
q(0),
],
q(erh) => [
- q(2287),
+ q(2282),
q(0),
],
q(eri) => [
- q(2288),
+ q(2283),
q(0),
],
q(erk) => [
- q(2289),
+ q(2284),
q(0),
],
q(ero) => [
- q(2290),
+ q(2285),
q(0),
],
q(err) => [
- q(2291),
+ q(2286),
q(0),
],
q(ers) => [
- q(2292),
+ q(2287),
q(0),
],
q(ert) => [
- q(2293),
+ q(2288),
q(0),
],
q(erw) => [
- q(2294),
+ q(2289),
q(0),
],
q(ese) => [
- q(2295),
+ q(2290),
q(0),
],
q(esh) => [
- q(2296),
+ q(2291),
q(0),
],
q(esi) => [
- q(2297),
+ q(2292),
q(0),
],
q(esk) => [
- q(2298),
+ q(2293),
q(0),
],
q(esl) => [
- q(2299),
+ q(2294),
q(0),
],
q(esm) => [
- q(2300),
+ q(2295),
q(0),
],
q(esn) => [
- q(2301),
+ q(2296),
q(0),
],
q(eso) => [
- q(2302),
+ q(2297),
q(0),
],
q(esq) => [
- q(2303),
+ q(2298),
q(0),
],
q(ess) => [
- q(2304),
+ q(2299),
q(0),
],
q(est) => [
@@ -65826,55 +65844,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(esu) => [
- q(2305),
+ q(2300),
q(0),
],
q(esx) => [
q(0502),
q(0),
],
+ q(esy) => [
+ q(2301),
+ q(0),
+ ],
q(etb) => [
- q(2306),
+ q(2302),
q(0),
],
q(etc) => [
- q(2307),
+ q(2303),
q(0),
],
q(eth) => [
- q(2308),
+ q(2304),
q(0),
],
q(etn) => [
- q(2309),
+ q(2305),
q(0),
],
q(eto) => [
- q(2310),
+ q(2306),
q(0),
],
q(etr) => [
- q(2311),
+ q(2307),
q(0),
],
q(ets) => [
- q(2312),
+ q(2308),
q(0),
],
q(ett) => [
- q(2313),
+ q(2309),
q(0),
],
q(etu) => [
- q(2314),
+ q(2310),
q(0),
],
q(etx) => [
- q(2315),
+ q(2311),
q(0),
],
q(etz) => [
- q(2316),
+ q(2312),
q(0),
],
q(euq) => [
@@ -65882,15 +65904,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(eve) => [
- q(2317),
+ q(2313),
q(0),
],
q(evh) => [
- q(2318),
+ q(2314),
q(0),
],
q(evn) => [
- q(2319),
+ q(2315),
q(0),
],
q(ewe) => [
@@ -65902,67 +65924,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ext) => [
- q(2320),
+ q(2316),
q(0),
],
q(eya) => [
- q(2321),
+ q(2317),
q(0),
],
q(eyo) => [
- q(2322),
+ q(2318),
q(0),
],
q(eza) => [
- q(2323),
+ q(2319),
q(0),
],
q(eze) => [
- q(2324),
+ q(2320),
q(0),
],
q(faa) => [
- q(2325),
+ q(2321),
q(0),
],
q(fab) => [
- q(2326),
+ q(2322),
q(0),
],
q(fad) => [
- q(2327),
+ q(2323),
q(0),
],
q(faf) => [
- q(2328),
+ q(2324),
q(0),
],
q(fag) => [
- q(2329),
+ q(2325),
q(0),
],
q(fah) => [
- q(2330),
+ q(2326),
q(0),
],
q(fai) => [
- q(2331),
+ q(2327),
q(0),
],
q(faj) => [
- q(2332),
+ q(2328),
q(0),
],
q(fak) => [
- q(2333),
+ q(2329),
q(0),
],
q(fal) => [
- q(2334),
+ q(2330),
q(0),
],
q(fam) => [
- q(2335),
+ q(2331),
q(0),
],
q(fan) => [
@@ -65974,11 +65996,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fap) => [
- q(2336),
+ q(2332),
q(0),
],
q(far) => [
- q(2337),
+ q(2333),
q(0),
],
q(fat) => [
@@ -65986,51 +66008,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fau) => [
- q(2338),
+ q(2334),
q(0),
],
q(fax) => [
- q(2339),
+ q(2335),
q(0),
],
q(fay) => [
- q(2340),
+ q(2336),
q(0),
],
q(faz) => [
- q(2341),
+ q(2337),
q(0),
],
q(fbl) => [
- q(2342),
+ q(2338),
q(0),
],
q(fcs) => [
- q(2343),
+ q(2339),
q(0),
],
q(fer) => [
- q(2344),
+ q(2340),
q(0),
],
q(ffi) => [
- q(2345),
+ q(2341),
q(0),
],
q(ffm) => [
- q(2346),
+ q(2342),
q(0),
],
q(fgr) => [
- q(2347),
+ q(2343),
q(0),
],
q(fia) => [
- q(2348),
+ q(2344),
q(0),
],
q(fie) => [
- q(2349),
+ q(2345),
q(0),
],
q(fij) => [
@@ -66046,15 +66068,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fip) => [
- q(2350),
+ q(2346),
q(0),
],
q(fir) => [
- q(2351),
+ q(2347),
q(0),
],
q(fit) => [
- q(2352),
+ q(2348),
q(0),
],
q(fiu) => [
@@ -66062,71 +66084,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fiw) => [
- q(2353),
+ q(2349),
q(0),
],
q(fkk) => [
- q(2354),
+ q(2350),
q(0),
],
q(fkv) => [
- q(2355),
+ q(2351),
q(0),
],
q(fla) => [
- q(2356),
+ q(2352),
q(0),
],
q(flh) => [
- q(2357),
+ q(2353),
q(0),
],
q(fli) => [
- q(2358),
+ q(2354),
q(0),
],
q(fll) => [
- q(2359),
+ q(2355),
q(0),
],
q(fln) => [
- q(2360),
+ q(2356),
q(0),
],
q(flr) => [
- q(2361),
+ q(2357),
q(0),
],
q(fly) => [
- q(2362),
+ q(2358),
q(0),
],
q(fmp) => [
- q(2363),
+ q(2359),
q(0),
],
q(fmu) => [
- q(2364),
+ q(2360),
q(0),
],
q(fng) => [
- q(2365),
+ q(2361),
q(0),
],
q(fni) => [
- q(2366),
+ q(2362),
q(0),
],
q(fod) => [
- q(2367),
+ q(2363),
q(0),
],
q(foi) => [
- q(2368),
+ q(2364),
q(0),
],
q(fom) => [
- q(2369),
+ q(2365),
q(0),
],
q(fon) => [
@@ -66134,11 +66156,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(for) => [
- q(2370),
+ q(2366),
q(0),
],
q(fos) => [
- q(2371),
+ q(2367),
q(0),
],
q(fox) => [
@@ -66146,19 +66168,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fpe) => [
- q(2372),
+ q(2368),
q(0),
],
q(fqs) => [
- q(2373),
+ q(2369),
q(0),
],
q(frc) => [
- q(2374),
+ q(2370),
q(0),
],
q(frd) => [
- q(2375),
+ q(2371),
q(0),
],
q(fre) => [
@@ -66166,7 +66188,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(frk) => [
- q(2376),
+ q(2372),
q(0),
],
q(frm) => [
@@ -66178,11 +66200,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(frp) => [
- q(2377),
+ q(2373),
q(0),
],
q(frq) => [
- q(2378),
+ q(2374),
q(0),
],
q(frr) => [
@@ -66194,7 +66216,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(frt) => [
- q(2379),
+ q(2375),
q(0),
],
q(fry) => [
@@ -66202,47 +66224,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fse) => [
- q(2380),
+ q(2376),
q(0),
],
q(fsl) => [
- q(2381),
+ q(2377),
q(0),
],
q(fss) => [
- q(2382),
+ q(2378),
q(0),
],
q(fub) => [
- q(2383),
+ q(2379),
q(0),
],
q(fuc) => [
- q(2384),
+ q(2380),
q(0),
],
q(fud) => [
- q(2385),
+ q(2381),
q(0),
],
q(fue) => [
- q(2386),
+ q(2382),
q(0),
],
q(fuf) => [
- q(2387),
+ q(2383),
q(0),
],
q(fuh) => [
- q(2388),
+ q(2384),
q(0),
],
q(fui) => [
- q(2389),
+ q(2385),
q(0),
],
q(fuj) => [
- q(2390),
+ q(2386),
q(0),
],
q(ful) => [
@@ -66250,15 +66272,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fum) => [
- q(2391),
+ q(2387),
q(0),
],
q(fun) => [
- q(2392),
+ q(2388),
q(0),
],
q(fuq) => [
- q(2393),
+ q(2389),
q(0),
],
q(fur) => [
@@ -66266,31 +66288,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fut) => [
- q(2394),
+ q(2390),
q(0),
],
q(fuu) => [
- q(2395),
+ q(2391),
q(0),
],
q(fuv) => [
- q(2396),
+ q(2392),
q(0),
],
q(fuy) => [
- q(2397),
+ q(2393),
q(0),
],
q(fvr) => [
- q(2398),
+ q(2394),
q(0),
],
q(fwa) => [
- q(2399),
+ q(2395),
q(0),
],
q(fwe) => [
- q(2400),
+ q(2396),
q(0),
],
q(gaa) => [
@@ -66298,91 +66320,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gab) => [
- q(2401),
+ q(2397),
q(0),
],
q(gac) => [
- q(2402),
+ q(2398),
q(0),
],
q(gad) => [
- q(2403),
+ q(2399),
q(0),
],
q(gae) => [
- q(2404),
+ q(2400),
q(0),
],
q(gaf) => [
- q(2405),
+ q(2401),
q(0),
],
q(gag) => [
- q(2406),
+ q(2402),
q(0),
],
q(gah) => [
- q(2407),
+ q(2403),
q(0),
],
q(gai) => [
- q(2408),
+ q(2404),
q(0),
],
q(gaj) => [
- q(2409),
+ q(2405),
q(0),
],
q(gak) => [
- q(2410),
+ q(2406),
q(0),
],
q(gal) => [
- q(2411),
+ q(2407),
q(0),
],
q(gam) => [
- q(2412),
+ q(2408),
q(0),
],
q(gan) => [
- q(2413),
+ q(2409),
q(0),
],
q(gao) => [
- q(2414),
+ q(2410),
q(0),
],
q(gap) => [
- q(2415),
+ q(2411),
q(0),
],
q(gaq) => [
- q(2416),
+ q(2412),
q(0),
],
q(gar) => [
- q(2417),
+ q(2413),
q(0),
],
q(gas) => [
- q(2418),
+ q(2414),
q(0),
],
q(gat) => [
- q(2419),
+ q(2415),
q(0),
],
q(gau) => [
- q(2420),
+ q(2416),
q(0),
],
q(gaw) => [
- q(2421),
+ q(2417),
q(0),
],
q(gax) => [
- q(2422),
+ q(2418),
q(0),
],
q(gay) => [
@@ -66390,7 +66412,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gaz) => [
- q(2423),
+ q(2419),
q(0),
],
q(gba) => [
@@ -66398,251 +66420,251 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(gbb) => [
- q(2424),
+ q(2420),
q(0),
],
q(gbd) => [
- q(2425),
+ q(2421),
q(0),
],
q(gbe) => [
- q(2426),
+ q(2422),
q(0),
],
q(gbf) => [
- q(2427),
+ q(2423),
q(0),
],
q(gbg) => [
- q(2428),
+ q(2424),
q(0),
],
q(gbh) => [
- q(2429),
+ q(2425),
q(0),
],
q(gbi) => [
- q(2430),
+ q(2426),
q(0),
],
q(gbj) => [
- q(2431),
+ q(2427),
q(0),
],
q(gbk) => [
- q(2432),
+ q(2428),
q(0),
],
q(gbl) => [
- q(2433),
+ q(2429),
q(0),
],
q(gbm) => [
- q(2434),
+ q(2430),
q(0),
],
q(gbn) => [
- q(2435),
+ q(2431),
q(0),
],
q(gbo) => [
- q(2436),
+ q(2432),
q(0),
],
q(gbp) => [
- q(2437),
+ q(2433),
q(0),
],
q(gbq) => [
- q(2438),
+ q(2434),
q(0),
],
q(gbr) => [
- q(2439),
+ q(2435),
q(0),
],
q(gbs) => [
- q(2440),
+ q(2436),
q(0),
],
q(gbu) => [
- q(2441),
+ q(2437),
q(0),
],
q(gbv) => [
- q(2442),
+ q(2438),
q(0),
],
q(gbw) => [
- q(2443),
+ q(2439),
q(0),
],
q(gbx) => [
- q(2444),
+ q(2440),
q(0),
],
q(gby) => [
- q(2445),
+ q(2441),
q(0),
],
q(gbz) => [
- q(2446),
+ q(2442),
q(0),
],
q(gcc) => [
- q(2447),
+ q(2443),
q(0),
],
q(gcd) => [
- q(2448),
+ q(2444),
q(0),
],
q(gce) => [
- q(2449),
+ q(2445),
q(0),
],
q(gcf) => [
- q(2450),
+ q(2446),
q(0),
],
q(gcl) => [
- q(2451),
+ q(2447),
q(0),
],
q(gcn) => [
- q(2452),
+ q(2448),
q(0),
],
q(gcr) => [
- q(2453),
+ q(2449),
q(0),
],
q(gct) => [
- q(2454),
+ q(2450),
q(0),
],
q(gda) => [
- q(2455),
+ q(2451),
q(0),
],
q(gdb) => [
- q(2456),
+ q(2452),
q(0),
],
q(gdc) => [
- q(2457),
+ q(2453),
q(0),
],
q(gdd) => [
- q(2458),
+ q(2454),
q(0),
],
q(gde) => [
- q(2459),
+ q(2455),
q(0),
],
q(gdf) => [
- q(2460),
+ q(2456),
q(0),
],
q(gdg) => [
- q(2461),
+ q(2457),
q(0),
],
q(gdh) => [
- q(2462),
+ q(2458),
q(0),
],
q(gdi) => [
- q(2463),
+ q(2459),
q(0),
],
q(gdj) => [
- q(2464),
+ q(2460),
q(0),
],
q(gdk) => [
- q(2465),
+ q(2461),
q(0),
],
q(gdl) => [
- q(2466),
+ q(2462),
q(0),
],
q(gdm) => [
- q(2467),
+ q(2463),
q(0),
],
q(gdn) => [
- q(2468),
+ q(2464),
q(0),
],
q(gdo) => [
- q(2469),
+ q(2465),
q(0),
],
q(gdq) => [
- q(2470),
+ q(2466),
q(0),
],
q(gdr) => [
- q(2471),
+ q(2467),
q(0),
],
q(gds) => [
- q(2472),
+ q(2468),
q(0),
],
q(gdt) => [
- q(2473),
+ q(2469),
q(0),
],
q(gdu) => [
- q(2474),
+ q(2470),
q(0),
],
q(gdx) => [
- q(2475),
+ q(2471),
q(0),
],
q(gea) => [
- q(2476),
+ q(2472),
q(0),
],
q(geb) => [
- q(2477),
+ q(2473),
q(0),
],
q(gec) => [
- q(2478),
+ q(2474),
q(0),
],
q(ged) => [
- q(2479),
+ q(2475),
q(0),
],
q(geg) => [
- q(2480),
+ q(2476),
q(0),
],
q(geh) => [
- q(2481),
+ q(2477),
q(0),
],
q(gei) => [
- q(2482),
+ q(2478),
q(0),
],
q(gej) => [
- q(2483),
+ q(2479),
q(0),
],
q(gek) => [
- q(2484),
+ q(2480),
q(0),
],
q(gel) => [
- q(2485),
+ q(2481),
q(0),
],
q(gem) => [
@@ -66654,7 +66676,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(geq) => [
- q(2486),
+ q(2482),
q(0),
],
q(ger) => [
@@ -66662,19 +66684,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ges) => [
- q(2487),
+ q(2483),
+ q(0),
+ ],
+ q(gev) => [
+ q(2484),
q(0),
],
q(gew) => [
- q(2488),
+ q(2485),
q(0),
],
q(gex) => [
- q(2489),
+ q(2486),
q(0),
],
q(gey) => [
- q(2490),
+ q(2487),
q(0),
],
q(gez) => [
@@ -66682,131 +66708,127 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gfk) => [
- q(2491),
+ q(2488),
q(0),
],
q(gft) => [
- q(2492),
- q(0),
- ],
- q(gfx) => [
- q(2493),
+ q(2489),
q(0),
],
q(gga) => [
- q(2494),
+ q(2490),
q(0),
],
q(ggb) => [
- q(2495),
+ q(2491),
q(0),
],
q(ggd) => [
- q(2496),
+ q(2492),
q(0),
],
q(gge) => [
- q(2497),
+ q(2493),
q(0),
],
q(ggg) => [
- q(2498),
+ q(2494),
q(0),
],
q(ggk) => [
- q(2499),
+ q(2495),
q(0),
],
q(ggl) => [
- q(2500),
+ q(2496),
q(0),
],
q(ggn) => [
- q(2501),
+ q(2497),
q(0),
],
q(ggo) => [
- q(2502),
+ q(2498),
q(0),
],
q(ggt) => [
- q(2503),
+ q(2499),
q(0),
],
q(ggu) => [
- q(2504),
+ q(2500),
q(0),
],
q(ggw) => [
- q(2505),
+ q(2501),
q(0),
],
q(gha) => [
- q(2506),
+ q(2502),
q(0),
],
q(ghc) => [
- q(2507),
+ q(2503),
q(0),
],
q(ghe) => [
- q(2508),
+ q(2504),
q(0),
],
q(ghh) => [
- q(2509),
+ q(2505),
q(0),
],
q(ghk) => [
- q(2510),
+ q(2506),
q(0),
],
q(ghl) => [
- q(2511),
+ q(2507),
q(0),
],
q(ghn) => [
- q(2512),
+ q(2508),
q(0),
],
q(gho) => [
- q(2513),
+ q(2509),
q(0),
],
q(ghr) => [
- q(2514),
+ q(2510),
q(0),
],
q(ghs) => [
- q(2515),
+ q(2511),
q(0),
],
q(ght) => [
- q(2516),
+ q(2512),
q(0),
],
q(gia) => [
- q(2517),
+ q(2513),
q(0),
],
q(gib) => [
- q(2518),
+ q(2514),
q(0),
],
q(gic) => [
- q(2519),
+ q(2515),
q(0),
],
q(gid) => [
- q(2520),
+ q(2516),
q(0),
],
q(gig) => [
- q(2521),
+ q(2517),
q(0),
],
q(gih) => [
- q(2522),
+ q(2518),
q(0),
],
q(gil) => [
@@ -66814,91 +66836,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gim) => [
- q(2523),
+ q(2519),
q(0),
],
q(gin) => [
- q(2524),
+ q(2520),
q(0),
],
q(gip) => [
- q(2525),
+ q(2521),
q(0),
],
q(giq) => [
- q(2526),
+ q(2522),
q(0),
],
q(gir) => [
- q(2527),
+ q(2523),
q(0),
],
q(gis) => [
- q(2528),
+ q(2524),
q(0),
],
q(git) => [
- q(2529),
+ q(2525),
q(0),
],
q(giu) => [
- q(2530),
+ q(2526),
q(0),
],
q(giw) => [
- q(2531),
+ q(2527),
q(0),
],
q(gix) => [
- q(2532),
+ q(2528),
q(0),
],
q(giy) => [
- q(2533),
+ q(2529),
q(0),
],
q(giz) => [
- q(2534),
+ q(2530),
q(0),
],
q(gji) => [
- q(2535),
+ q(2531),
q(0),
],
q(gjk) => [
- q(2536),
+ q(2532),
q(0),
],
q(gjm) => [
- q(2537),
+ q(2533),
q(0),
],
q(gjn) => [
- q(2538),
+ q(2534),
q(0),
],
q(gju) => [
- q(2539),
+ q(2535),
q(0),
],
q(gka) => [
- q(2540),
+ q(2536),
q(0),
],
q(gke) => [
- q(2541),
+ q(2537),
q(0),
],
q(gkn) => [
- q(2542),
+ q(2538),
q(0),
],
q(gko) => [
- q(2543),
+ q(2539),
q(0),
],
q(gkp) => [
- q(2544),
+ q(2540),
+ q(0),
+ ],
+ q(gku) => [
+ q(2541),
q(0),
],
q(gla) => [
@@ -66906,11 +66932,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(glc) => [
- q(2545),
+ q(2542),
q(0),
],
q(gld) => [
- q(2546),
+ q(2543),
q(0),
],
q(gle) => [
@@ -66922,35 +66948,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(glh) => [
- q(2547),
+ q(2544),
q(0),
],
q(gli) => [
- q(2548),
+ q(2545),
q(0),
],
q(glj) => [
- q(2549),
+ q(2546),
q(0),
],
q(glk) => [
- q(2550),
+ q(2547),
q(0),
],
q(gll) => [
- q(2551),
+ q(2548),
q(0),
],
q(glo) => [
- q(2552),
+ q(2549),
q(0),
],
q(glr) => [
- q(2553),
+ q(2550),
q(0),
],
q(glu) => [
- q(2554),
+ q(2551),
q(0),
],
q(glv) => [
@@ -66958,43 +66984,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(glw) => [
- q(2555),
+ q(2552),
q(0),
],
q(gly) => [
- q(2556),
+ q(2553),
q(0),
],
q(gma) => [
- q(2557),
+ q(2554),
q(0),
],
q(gmb) => [
- q(2558),
+ q(2555),
q(0),
],
q(gmd) => [
- q(2559),
+ q(2556),
q(0),
],
q(gme) => [
q(0505),
q(0),
],
+ q(gmg) => [
+ q(2557),
+ q(0),
+ ],
q(gmh) => [
q(0157),
q(1),
],
q(gml) => [
- q(2560),
+ q(2558),
q(0),
],
q(gmm) => [
- q(2561),
+ q(2559),
q(0),
],
q(gmn) => [
- q(2562),
+ q(2560),
q(0),
],
q(gmq) => [
@@ -67002,11 +67032,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gmu) => [
- q(2563),
+ q(2561),
q(0),
],
q(gmv) => [
- q(2564),
+ q(2562),
q(0),
],
q(gmw) => [
@@ -67014,119 +67044,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gmx) => [
- q(2565),
+ q(2563),
q(0),
],
q(gmy) => [
- q(2566),
+ q(2564),
q(0),
],
q(gmz) => [
- q(2567),
+ q(2565),
q(0),
],
q(gna) => [
- q(2568),
+ q(2566),
q(0),
],
q(gnb) => [
- q(2569),
+ q(2567),
q(0),
],
q(gnc) => [
- q(2570),
+ q(2568),
q(0),
],
q(gnd) => [
- q(2571),
+ q(2569),
q(0),
],
q(gne) => [
- q(2572),
+ q(2570),
q(0),
],
q(gng) => [
- q(2573),
+ q(2571),
q(0),
],
q(gnh) => [
- q(2574),
+ q(2572),
q(0),
],
q(gni) => [
- q(2575),
+ q(2573),
q(0),
],
q(gnk) => [
- q(2576),
+ q(2574),
q(0),
],
q(gnl) => [
- q(2577),
+ q(2575),
q(0),
],
q(gnm) => [
- q(2578),
+ q(2576),
q(0),
],
q(gnn) => [
- q(2579),
+ q(2577),
q(0),
],
q(gno) => [
- q(2580),
+ q(2578),
q(0),
],
q(gnq) => [
- q(2581),
+ q(2579),
q(0),
],
q(gnr) => [
- q(2582),
+ q(2580),
q(0),
],
q(gnt) => [
- q(2583),
+ q(2581),
q(0),
],
q(gnu) => [
- q(2584),
+ q(2582),
q(0),
],
q(gnw) => [
- q(2585),
+ q(2583),
q(0),
],
q(gnz) => [
- q(2586),
+ q(2584),
q(0),
],
q(goa) => [
- q(2587),
+ q(2585),
q(0),
],
q(gob) => [
- q(2588),
+ q(2586),
q(0),
],
q(goc) => [
- q(2589),
+ q(2587),
q(0),
],
q(god) => [
- q(2590),
+ q(2588),
q(0),
],
q(goe) => [
- q(2591),
+ q(2589),
q(0),
],
q(gof) => [
- q(2592),
+ q(2590),
q(0),
],
q(gog) => [
- q(2593),
+ q(2591),
q(0),
],
q(goh) => [
@@ -67134,23 +67164,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(goi) => [
- q(2594),
+ q(2592),
q(0),
],
q(goj) => [
- q(2595),
+ q(2593),
q(0),
],
q(gok) => [
- q(2596),
+ q(2594),
q(0),
],
q(gol) => [
- q(2597),
+ q(2595),
q(0),
],
q(gom) => [
- q(2598),
+ q(2596),
q(0),
],
q(gon) => [
@@ -67158,15 +67188,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(goo) => [
- q(2599),
+ q(2597),
q(0),
],
q(gop) => [
- q(2600),
+ q(2598),
q(0),
],
q(goq) => [
- q(2601),
+ q(2599),
q(0),
],
q(gor) => [
@@ -67174,7 +67204,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gos) => [
- q(2602),
+ q(2600),
q(0),
],
q(got) => [
@@ -67182,59 +67212,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gou) => [
- q(2603),
+ q(2601),
q(0),
],
q(gow) => [
- q(2604),
+ q(2602),
q(0),
],
q(gox) => [
- q(2605),
+ q(2603),
q(0),
],
q(goy) => [
- q(2606),
+ q(2604),
q(0),
],
q(goz) => [
- q(2607),
+ q(2605),
q(0),
],
q(gpa) => [
- q(2608),
+ q(2606),
q(0),
],
q(gpe) => [
- q(2609),
+ q(2607),
q(0),
],
q(gpn) => [
- q(2610),
+ q(2608),
q(0),
],
q(gqa) => [
- q(2611),
+ q(2609),
q(0),
],
q(gqi) => [
- q(2612),
+ q(2610),
q(0),
],
q(gqn) => [
- q(2613),
+ q(2611),
q(0),
],
q(gqr) => [
- q(2614),
+ q(2612),
q(0),
],
q(gqu) => [
- q(2615),
+ q(2613),
q(0),
],
q(gra) => [
- q(2616),
+ q(2614),
q(0),
],
q(grb) => [
@@ -67246,7 +67276,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(grd) => [
- q(2617),
+ q(2615),
q(0),
],
q(gre) => [
@@ -67254,19 +67284,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(grg) => [
- q(2618),
+ q(2616),
q(0),
],
q(grh) => [
- q(2619),
+ q(2617),
q(0),
],
q(gri) => [
- q(2620),
+ q(2618),
q(0),
],
q(grj) => [
- q(2621),
+ q(2619),
q(0),
],
q(grk) => [
@@ -67274,7 +67304,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(grm) => [
- q(2622),
+ q(2620),
q(0),
],
q(grn) => [
@@ -67282,79 +67312,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gro) => [
- q(2623),
+ q(2621),
q(0),
],
q(grq) => [
- q(2624),
+ q(2622),
q(0),
],
q(grr) => [
- q(2625),
+ q(2623),
q(0),
],
q(grs) => [
- q(2626),
+ q(2624),
q(0),
],
q(grt) => [
- q(2627),
+ q(2625),
q(0),
],
q(gru) => [
- q(2628),
+ q(2626),
q(0),
],
q(grv) => [
- q(2629),
+ q(2627),
q(0),
],
q(grw) => [
- q(2630),
+ q(2628),
q(0),
],
q(grx) => [
- q(2631),
+ q(2629),
q(0),
],
q(gry) => [
- q(2632),
+ q(2630),
q(0),
],
q(grz) => [
- q(2633),
+ q(2631),
q(0),
],
q(gse) => [
- q(2634),
+ q(2632),
q(0),
],
q(gsg) => [
- q(2635),
+ q(2633),
q(0),
],
q(gsl) => [
- q(2636),
+ q(2634),
q(0),
],
q(gsm) => [
- q(2637),
+ q(2635),
q(0),
],
q(gsn) => [
- q(2638),
+ q(2636),
q(0),
],
q(gso) => [
- q(2639),
+ q(2637),
q(0),
],
q(gsp) => [
- q(2640),
+ q(2638),
q(0),
],
q(gss) => [
- q(2641),
+ q(2639),
q(0),
],
q(gsw) => [
@@ -67362,51 +67392,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gta) => [
- q(2642),
- q(0),
- ],
- q(gti) => [
- q(2643),
+ q(2640),
q(0),
],
q(gtu) => [
- q(2644),
+ q(2641),
q(0),
],
q(gua) => [
- q(2645),
+ q(2642),
q(0),
],
q(gub) => [
- q(2646),
+ q(2643),
q(0),
],
q(guc) => [
- q(2647),
+ q(2644),
q(0),
],
q(gud) => [
- q(2648),
+ q(2645),
q(0),
],
q(gue) => [
- q(2649),
+ q(2646),
q(0),
],
q(guf) => [
- q(2650),
+ q(2647),
q(0),
],
q(gug) => [
- q(2651),
+ q(2648),
q(0),
],
q(guh) => [
- q(2652),
+ q(2649),
q(0),
],
q(gui) => [
- q(2653),
+ q(2650),
q(0),
],
q(guj) => [
@@ -67414,143 +67440,143 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(guk) => [
- q(2654),
+ q(2651),
q(0),
],
q(gul) => [
- q(2655),
+ q(2652),
q(0),
],
q(gum) => [
- q(2656),
+ q(2653),
q(0),
],
q(gun) => [
- q(2657),
+ q(2654),
q(0),
],
q(guo) => [
- q(2658),
+ q(2655),
q(0),
],
q(gup) => [
- q(2659),
+ q(2656),
q(0),
],
q(guq) => [
- q(2660),
+ q(2657),
q(0),
],
q(gur) => [
- q(2661),
+ q(2658),
q(0),
],
q(gus) => [
- q(2662),
+ q(2659),
q(0),
],
q(gut) => [
- q(2663),
+ q(2660),
q(0),
],
q(guu) => [
- q(2664),
+ q(2661),
q(0),
],
q(guv) => [
- q(2665),
+ q(2662),
q(0),
],
q(guw) => [
- q(2666),
+ q(2663),
q(0),
],
q(gux) => [
- q(2667),
+ q(2664),
q(0),
],
q(guz) => [
- q(2668),
+ q(2665),
q(0),
],
q(gva) => [
- q(2669),
+ q(2666),
q(0),
],
q(gvc) => [
- q(2670),
+ q(2667),
q(0),
],
q(gve) => [
- q(2671),
+ q(2668),
q(0),
],
q(gvf) => [
- q(2672),
+ q(2669),
q(0),
],
q(gvj) => [
- q(2673),
+ q(2670),
q(0),
],
q(gvl) => [
- q(2674),
+ q(2671),
q(0),
],
q(gvm) => [
- q(2675),
+ q(2672),
q(0),
],
q(gvn) => [
- q(2676),
+ q(2673),
q(0),
],
q(gvo) => [
- q(2677),
+ q(2674),
q(0),
],
q(gvp) => [
- q(2678),
+ q(2675),
q(0),
],
q(gvr) => [
- q(2679),
+ q(2676),
q(0),
],
q(gvs) => [
- q(2680),
+ q(2677),
q(0),
],
q(gvy) => [
- q(2681),
+ q(2678),
q(0),
],
q(gwa) => [
- q(2682),
+ q(2679),
q(0),
],
q(gwb) => [
- q(2683),
+ q(2680),
q(0),
],
q(gwc) => [
- q(2684),
+ q(2681),
q(0),
],
q(gwd) => [
- q(2685),
+ q(2682),
q(0),
],
q(gwe) => [
- q(2686),
+ q(2683),
q(0),
],
q(gwf) => [
- q(2687),
+ q(2684),
q(0),
],
q(gwg) => [
- q(2688),
+ q(2685),
q(0),
],
q(gwi) => [
@@ -67558,131 +67584,131 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gwj) => [
- q(2689),
+ q(2686),
q(0),
],
q(gwm) => [
- q(2690),
+ q(2687),
q(0),
],
q(gwn) => [
- q(2691),
+ q(2688),
q(0),
],
q(gwr) => [
- q(2692),
+ q(2689),
q(0),
],
q(gwt) => [
- q(2693),
+ q(2690),
q(0),
],
q(gwu) => [
- q(2694),
+ q(2691),
q(0),
],
q(gww) => [
- q(2695),
+ q(2692),
q(0),
],
q(gwx) => [
- q(2696),
+ q(2693),
q(0),
],
q(gxx) => [
- q(2697),
+ q(2694),
q(0),
],
q(gya) => [
- q(2698),
+ q(2695),
q(0),
],
q(gyb) => [
- q(2699),
+ q(2696),
q(0),
],
q(gyd) => [
- q(2700),
+ q(2697),
q(0),
],
q(gye) => [
- q(2701),
+ q(2698),
q(0),
],
q(gyf) => [
- q(2702),
+ q(2699),
q(0),
],
q(gyg) => [
- q(2703),
+ q(2700),
q(0),
],
q(gyi) => [
- q(2704),
+ q(2701),
q(0),
],
q(gyl) => [
- q(2705),
+ q(2702),
q(0),
],
q(gym) => [
- q(2706),
+ q(2703),
q(0),
],
q(gyn) => [
- q(2707),
+ q(2704),
q(0),
],
q(gyr) => [
- q(2708),
+ q(2705),
q(0),
],
q(gyy) => [
- q(2709),
+ q(2706),
q(0),
],
q(gza) => [
- q(2710),
+ q(2707),
q(0),
],
q(gzi) => [
- q(2711),
+ q(2708),
q(0),
],
q(gzn) => [
- q(2712),
+ q(2709),
q(0),
],
q(haa) => [
- q(2713),
+ q(2710),
q(0),
],
q(hab) => [
- q(2714),
+ q(2711),
q(0),
],
q(hac) => [
- q(2715),
+ q(2712),
q(0),
],
q(had) => [
- q(2716),
+ q(2713),
q(0),
],
q(hae) => [
- q(2717),
+ q(2714),
q(0),
],
q(haf) => [
- q(2718),
+ q(2715),
q(0),
],
q(hag) => [
- q(2719),
+ q(2716),
q(0),
],
q(hah) => [
- q(2720),
+ q(2717),
q(0),
],
q(hai) => [
@@ -67690,43 +67716,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(haj) => [
- q(2721),
+ q(2718),
q(0),
],
q(hak) => [
- q(2722),
+ q(2719),
q(0),
],
q(hal) => [
- q(2723),
+ q(2720),
q(0),
],
q(ham) => [
- q(2724),
+ q(2721),
q(0),
],
q(han) => [
- q(2725),
+ q(2722),
q(0),
],
q(hao) => [
- q(2726),
+ q(2723),
q(0),
],
q(hap) => [
- q(2727),
+ q(2724),
q(0),
],
q(haq) => [
- q(2728),
+ q(2725),
q(0),
],
q(har) => [
- q(2729),
+ q(2726),
q(0),
],
q(has) => [
- q(2730),
+ q(2727),
q(0),
],
q(hat) => [
@@ -67738,7 +67764,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hav) => [
- q(2731),
+ q(2728),
q(0),
],
q(haw) => [
@@ -67746,59 +67772,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hax) => [
- q(2732),
+ q(2729),
q(0),
],
q(hay) => [
- q(2733),
+ q(2730),
q(0),
],
q(haz) => [
- q(2734),
+ q(2731),
q(0),
],
q(hba) => [
- q(2735),
+ q(2732),
q(0),
],
q(hbb) => [
- q(2736),
+ q(2733),
q(0),
],
q(hbn) => [
- q(2737),
+ q(2734),
q(0),
],
q(hbo) => [
- q(2738),
+ q(2735),
q(0),
],
q(hbu) => [
- q(2739),
+ q(2736),
q(0),
],
q(hca) => [
- q(2740),
+ q(2737),
q(0),
],
q(hch) => [
- q(2741),
+ q(2738),
q(0),
],
q(hdn) => [
- q(2742),
+ q(2739),
q(0),
],
q(hds) => [
- q(2743),
+ q(2740),
q(0),
],
q(hdy) => [
- q(2744),
+ q(2741),
q(0),
],
q(hea) => [
- q(2745),
+ q(2742),
q(0),
],
q(heb) => [
@@ -67806,23 +67832,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hed) => [
- q(2746),
+ q(2743),
q(0),
],
q(heg) => [
- q(2747),
+ q(2744),
q(0),
],
q(heh) => [
- q(2748),
+ q(2745),
q(0),
],
q(hei) => [
- q(2749),
+ q(2746),
q(0),
],
q(hem) => [
- q(2750),
+ q(2747),
q(0),
],
q(her) => [
@@ -67830,59 +67856,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hgm) => [
- q(2751),
+ q(2748),
q(0),
],
q(hgw) => [
- q(2752),
+ q(2749),
q(0),
],
q(hhi) => [
- q(2753),
+ q(2750),
q(0),
],
q(hhr) => [
- q(2754),
+ q(2751),
q(0),
],
q(hhy) => [
- q(2755),
+ q(2752),
q(0),
],
q(hia) => [
- q(2756),
+ q(2753),
q(0),
],
q(hib) => [
- q(2757),
+ q(2754),
q(0),
],
q(hid) => [
- q(2758),
+ q(2755),
q(0),
],
q(hif) => [
- q(2759),
+ q(2756),
q(0),
],
q(hig) => [
- q(2760),
+ q(2757),
q(0),
],
q(hih) => [
- q(2761),
+ q(2758),
q(0),
],
q(hii) => [
- q(2762),
+ q(2759),
q(0),
],
q(hij) => [
- q(2763),
+ q(2760),
q(0),
],
q(hik) => [
- q(2764),
+ q(2761),
q(0),
],
q(hil) => [
@@ -67898,11 +67924,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hio) => [
- q(2765),
+ q(2762),
q(0),
],
q(hir) => [
- q(2766),
+ q(2763),
q(0),
],
q(hit) => [
@@ -67910,107 +67936,107 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hiw) => [
- q(2767),
+ q(2764),
q(0),
],
q(hix) => [
- q(2768),
+ q(2765),
q(0),
],
q(hji) => [
- q(2769),
+ q(2766),
q(0),
],
q(hka) => [
- q(2770),
+ q(2767),
q(0),
],
q(hke) => [
- q(2771),
+ q(2768),
q(0),
],
q(hkk) => [
- q(2772),
+ q(2769),
q(0),
],
q(hks) => [
- q(2773),
+ q(2770),
q(0),
],
q(hla) => [
- q(2774),
+ q(2771),
q(0),
],
q(hlb) => [
- q(2775),
+ q(2772),
q(0),
],
q(hld) => [
- q(2776),
+ q(2773),
q(0),
],
q(hle) => [
- q(2777),
+ q(2774),
q(0),
],
q(hlt) => [
- q(2778),
+ q(2775),
q(0),
],
q(hlu) => [
- q(2779),
+ q(2776),
q(0),
],
q(hma) => [
- q(2780),
+ q(2777),
q(0),
],
q(hmb) => [
- q(2781),
+ q(2778),
q(0),
],
q(hmc) => [
- q(2782),
+ q(2779),
q(0),
],
q(hmd) => [
- q(2783),
+ q(2780),
q(0),
],
q(hme) => [
- q(2784),
+ q(2781),
q(0),
],
q(hmf) => [
- q(2785),
+ q(2782),
q(0),
],
q(hmg) => [
- q(2786),
+ q(2783),
q(0),
],
q(hmh) => [
- q(2787),
+ q(2784),
q(0),
],
q(hmi) => [
- q(2788),
+ q(2785),
q(0),
],
q(hmj) => [
- q(2789),
+ q(2786),
q(0),
],
q(hmk) => [
- q(2790),
+ q(2787),
q(0),
],
q(hml) => [
- q(2791),
+ q(2788),
q(0),
],
q(hmm) => [
- q(2792),
+ q(2789),
q(0),
],
q(hmn) => [
@@ -68022,35 +68048,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hmp) => [
- q(2793),
+ q(2790),
q(0),
],
q(hmq) => [
- q(2794),
+ q(2791),
q(0),
],
q(hmr) => [
- q(2795),
+ q(2792),
q(0),
],
q(hms) => [
- q(2796),
+ q(2793),
q(0),
],
q(hmt) => [
- q(2797),
+ q(2794),
q(0),
],
q(hmu) => [
- q(2798),
+ q(2795),
q(0),
],
q(hmv) => [
- q(2799),
+ q(2796),
q(0),
],
q(hmw) => [
- q(2800),
+ q(2797),
q(0),
],
q(hmx) => [
@@ -68058,83 +68084,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hmy) => [
- q(2801),
+ q(2798),
q(0),
],
q(hmz) => [
- q(2802),
+ q(2799),
q(0),
],
q(hna) => [
- q(2803),
+ q(2800),
q(0),
],
q(hnd) => [
- q(2804),
+ q(2801),
q(0),
],
q(hne) => [
- q(2805),
+ q(2802),
q(0),
],
q(hnh) => [
- q(2806),
+ q(2803),
q(0),
],
q(hni) => [
- q(2807),
+ q(2804),
q(0),
],
q(hnj) => [
- q(2808),
+ q(2805),
q(0),
],
q(hnn) => [
- q(2809),
+ q(2806),
q(0),
],
q(hno) => [
- q(2810),
+ q(2807),
q(0),
],
q(hns) => [
- q(2811),
+ q(2808),
q(0),
],
q(hnu) => [
- q(2812),
+ q(2809),
q(0),
],
q(hoa) => [
- q(2813),
+ q(2810),
q(0),
],
q(hob) => [
- q(2814),
+ q(2811),
q(0),
],
q(hoc) => [
- q(2815),
+ q(2812),
q(0),
],
q(hod) => [
- q(2816),
+ q(2813),
q(0),
],
q(hoe) => [
- q(2817),
+ q(2814),
q(0),
],
q(hoh) => [
- q(2818),
+ q(2815),
q(0),
],
q(hoi) => [
- q(2819),
+ q(2816),
q(0),
],
q(hoj) => [
- q(2820),
+ q(2817),
q(0),
],
q(hok) => [
@@ -68142,91 +68168,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hol) => [
- q(2821),
+ q(2818),
q(0),
],
q(hom) => [
- q(2822),
+ q(2819),
q(0),
],
q(hoo) => [
- q(2823),
+ q(2820),
q(0),
],
q(hop) => [
- q(2824),
+ q(2821),
q(0),
],
q(hor) => [
- q(2825),
+ q(2822),
q(0),
],
q(hos) => [
- q(2826),
+ q(2823),
q(0),
],
q(hot) => [
- q(2827),
+ q(2824),
q(0),
],
q(hov) => [
- q(2828),
+ q(2825),
q(0),
],
q(how) => [
- q(2829),
+ q(2826),
q(0),
],
q(hoy) => [
- q(2830),
+ q(2827),
q(0),
],
q(hoz) => [
- q(2831),
+ q(2828),
q(0),
],
q(hpo) => [
- q(2832),
+ q(2829),
q(0),
],
q(hps) => [
- q(2833),
+ q(2830),
q(0),
],
q(hra) => [
- q(2834),
+ q(2831),
q(0),
],
q(hrc) => [
- q(2835),
+ q(2832),
q(0),
],
q(hre) => [
- q(2836),
+ q(2833),
q(0),
],
q(hrk) => [
- q(2837),
+ q(2834),
q(0),
],
q(hrm) => [
- q(2838),
+ q(2835),
q(0),
],
q(hro) => [
- q(2839),
+ q(2836),
q(0),
],
q(hrp) => [
- q(2840),
+ q(2837),
q(0),
],
q(hrt) => [
- q(2841),
+ q(2838),
q(0),
],
q(hru) => [
- q(2842),
+ q(2839),
q(0),
],
q(hrv) => [
@@ -68234,15 +68260,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hrw) => [
- q(2843),
+ q(2840),
q(0),
],
q(hrx) => [
- q(2844),
+ q(2841),
q(0),
],
q(hrz) => [
- q(2845),
+ q(2842),
q(0),
],
q(hsb) => [
@@ -68250,87 +68276,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hsh) => [
- q(2846),
+ q(2843),
q(0),
],
q(hsl) => [
- q(2847),
+ q(2844),
q(0),
],
q(hsn) => [
- q(2848),
+ q(2845),
q(0),
],
q(hss) => [
- q(2849),
+ q(2846),
q(0),
],
q(hti) => [
- q(2850),
+ q(2847),
q(0),
],
q(hto) => [
- q(2851),
+ q(2848),
q(0),
],
q(hts) => [
- q(2852),
+ q(2849),
q(0),
],
q(htu) => [
- q(2853),
+ q(2850),
q(0),
],
q(htx) => [
- q(2854),
+ q(2851),
q(0),
],
q(hub) => [
- q(2855),
+ q(2852),
q(0),
],
q(huc) => [
- q(2856),
+ q(2853),
q(0),
],
q(hud) => [
- q(2857),
+ q(2854),
q(0),
],
q(hue) => [
- q(2858),
+ q(2855),
q(0),
],
q(huf) => [
- q(2859),
+ q(2856),
q(0),
],
q(hug) => [
- q(2860),
+ q(2857),
q(0),
],
q(huh) => [
- q(2861),
+ q(2858),
q(0),
],
q(hui) => [
- q(2862),
+ q(2859),
q(0),
],
q(huj) => [
- q(2863),
+ q(2860),
q(0),
],
q(huk) => [
- q(2864),
+ q(2861),
q(0),
],
q(hul) => [
- q(2865),
+ q(2862),
q(0),
],
q(hum) => [
- q(2866),
+ q(2863),
q(0),
],
q(hun) => [
@@ -68338,7 +68364,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(huo) => [
- q(2867),
+ q(2864),
q(0),
],
q(hup) => [
@@ -68346,79 +68372,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(huq) => [
- q(2868),
+ q(2865),
q(0),
],
q(hur) => [
- q(2869),
+ q(2866),
q(0),
],
q(hus) => [
- q(2870),
+ q(2867),
q(0),
],
q(hut) => [
- q(2871),
+ q(2868),
q(0),
],
q(huu) => [
- q(2872),
+ q(2869),
q(0),
],
q(huv) => [
- q(2873),
+ q(2870),
q(0),
],
q(huw) => [
- q(2874),
+ q(2871),
q(0),
],
q(hux) => [
- q(2875),
+ q(2872),
q(0),
],
q(huy) => [
- q(2876),
+ q(2873),
q(0),
],
q(huz) => [
- q(2877),
+ q(2874),
q(0),
],
q(hvc) => [
- q(2878),
+ q(2875),
q(0),
],
q(hve) => [
- q(2879),
+ q(2876),
q(0),
],
q(hvk) => [
- q(2880),
+ q(2877),
q(0),
],
q(hvn) => [
- q(2881),
+ q(2878),
q(0),
],
q(hvv) => [
- q(2882),
+ q(2879),
q(0),
],
q(hwa) => [
- q(2883),
+ q(2880),
q(0),
],
q(hwc) => [
- q(2884),
+ q(2881),
q(0),
],
q(hwo) => [
- q(2885),
+ q(2882),
q(0),
],
q(hya) => [
- q(2886),
+ q(2883),
q(0),
],
q(hyx) => [
@@ -68426,19 +68452,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(iai) => [
- q(2887),
+ q(2884),
q(0),
],
q(ian) => [
- q(2888),
+ q(2885),
q(0),
],
q(iap) => [
- q(2889),
+ q(2886),
q(0),
],
q(iar) => [
- q(2890),
+ q(2887),
q(0),
],
q(iba) => [
@@ -68446,31 +68472,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ibb) => [
- q(2891),
+ q(2888),
q(0),
],
q(ibd) => [
- q(2892),
+ q(2889),
q(0),
],
q(ibe) => [
- q(2893),
+ q(2890),
q(0),
],
q(ibg) => [
- q(2894),
+ q(2891),
q(0),
],
q(ibl) => [
- q(2895),
+ q(2892),
q(0),
],
q(ibm) => [
- q(2896),
+ q(2893),
q(0),
],
q(ibn) => [
- q(2897),
+ q(2894),
q(0),
],
q(ibo) => [
@@ -68478,19 +68504,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ibr) => [
- q(2898),
+ q(2895),
q(0),
],
q(ibu) => [
- q(2899),
+ q(2896),
q(0),
],
q(iby) => [
- q(2900),
+ q(2897),
q(0),
],
q(ica) => [
- q(2901),
+ q(2898),
q(0),
],
q(ice) => [
@@ -68498,39 +68524,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ich) => [
- q(2902),
+ q(2899),
q(0),
],
q(icl) => [
- q(2903),
+ q(2900),
q(0),
],
q(icr) => [
- q(2904),
+ q(2901),
q(0),
],
q(ida) => [
- q(2905),
+ q(2902),
q(0),
],
q(idb) => [
- q(2906),
+ q(2903),
q(0),
],
q(idc) => [
- q(2907),
+ q(2904),
q(0),
],
q(idd) => [
- q(2908),
+ q(2905),
q(0),
],
q(ide) => [
- q(2909),
+ q(2906),
q(0),
],
q(idi) => [
- q(2910),
+ q(2907),
q(0),
],
q(ido) => [
@@ -68538,103 +68564,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(idr) => [
- q(2911),
+ q(2908),
q(0),
],
q(ids) => [
- q(2912),
+ q(2909),
q(0),
],
q(idt) => [
- q(2913),
+ q(2910),
q(0),
],
q(idu) => [
- q(2914),
+ q(2911),
q(0),
],
q(ifa) => [
- q(2915),
+ q(2912),
q(0),
],
q(ifb) => [
- q(2916),
+ q(2913),
q(0),
],
q(ife) => [
- q(2917),
+ q(2914),
q(0),
],
q(iff) => [
- q(2918),
+ q(2915),
q(0),
],
q(ifk) => [
- q(2919),
+ q(2916),
q(0),
],
q(ifm) => [
- q(2920),
+ q(2917),
q(0),
],
q(ifu) => [
- q(2921),
+ q(2918),
q(0),
],
q(ify) => [
- q(2922),
+ q(2919),
q(0),
],
q(igb) => [
- q(2923),
+ q(2920),
q(0),
],
q(ige) => [
- q(2924),
+ q(2921),
q(0),
],
q(igg) => [
- q(2925),
+ q(2922),
q(0),
],
q(igl) => [
- q(2926),
+ q(2923),
q(0),
],
q(igm) => [
- q(2927),
+ q(2924),
q(0),
],
q(ign) => [
- q(2928),
+ q(2925),
q(0),
],
q(igo) => [
- q(2929),
+ q(2926),
q(0),
],
q(igs) => [
- q(2930),
+ q(2927),
q(0),
],
q(igw) => [
- q(2931),
+ q(2928),
q(0),
],
q(ihb) => [
- q(2932),
+ q(2929),
q(0),
],
q(ihi) => [
- q(2933),
+ q(2930),
q(0),
],
q(ihp) => [
- q(2934),
+ q(2931),
q(0),
],
q(ihw) => [
- q(2935),
+ q(2932),
q(0),
],
q(iii) => [
@@ -68642,7 +68668,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(iin) => [
- q(2936),
+ q(2933),
q(0),
],
q(iir) => [
@@ -68650,19 +68676,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ijc) => [
- q(2937),
+ q(2934),
q(0),
],
q(ije) => [
- q(2938),
+ q(2935),
q(0),
],
q(ijj) => [
- q(2939),
+ q(2936),
q(0),
],
q(ijn) => [
- q(2940),
+ q(2937),
q(0),
],
q(ijo) => [
@@ -68670,39 +68696,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ijs) => [
- q(2941),
+ q(2938),
q(0),
],
q(ike) => [
- q(2942),
+ q(2939),
q(0),
],
q(iki) => [
- q(2943),
+ q(2940),
q(0),
],
q(ikk) => [
- q(2944),
+ q(2941),
q(0),
],
q(ikl) => [
- q(2945),
+ q(2942),
q(0),
],
q(iko) => [
- q(2946),
+ q(2943),
q(0),
],
q(ikp) => [
- q(2947),
+ q(2944),
q(0),
],
q(ikr) => [
- q(2948),
+ q(2945),
+ q(0),
+ ],
+ q(iks) => [
+ q(2946),
q(0),
],
q(ikt) => [
- q(2949),
+ q(2947),
q(0),
],
q(iku) => [
@@ -68710,27 +68740,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ikv) => [
- q(2950),
+ q(2948),
q(0),
],
q(ikw) => [
- q(2951),
+ q(2949),
q(0),
],
q(ikx) => [
- q(2952),
+ q(2950),
q(0),
],
q(ikz) => [
- q(2953),
+ q(2951),
q(0),
],
q(ila) => [
- q(2954),
+ q(2952),
q(0),
],
q(ilb) => [
- q(2955),
+ q(2953),
q(0),
],
q(ile) => [
@@ -68738,19 +68768,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ilg) => [
- q(2956),
+ q(2954),
q(0),
],
q(ili) => [
- q(2957),
+ q(2955),
q(0),
],
q(ilk) => [
- q(2958),
+ q(2956),
q(0),
],
q(ill) => [
- q(2959),
+ q(2957),
q(0),
],
q(ilo) => [
@@ -68758,51 +68788,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ils) => [
- q(2960),
+ q(2958),
q(0),
],
q(ilu) => [
- q(2961),
+ q(2959),
q(0),
],
q(ilv) => [
- q(2962),
+ q(2960),
q(0),
],
q(ima) => [
- q(2963),
- q(0),
- ],
- q(ime) => [
- q(2964),
+ q(2961),
q(0),
],
q(imi) => [
- q(2965),
+ q(2962),
q(0),
],
q(iml) => [
- q(2966),
+ q(2963),
q(0),
],
q(imn) => [
- q(2967),
+ q(2964),
q(0),
],
q(imo) => [
- q(2968),
+ q(2965),
q(0),
],
q(imr) => [
- q(2969),
+ q(2966),
q(0),
],
q(ims) => [
- q(2970),
+ q(2967),
q(0),
],
q(imy) => [
- q(2971),
+ q(2968),
q(0),
],
q(ina) => [
@@ -68810,7 +68836,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(inb) => [
- q(2972),
+ q(2969),
q(0),
],
q(inc) => [
@@ -68826,7 +68852,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ing) => [
- q(2973),
+ q(2970),
q(0),
],
q(inh) => [
@@ -68834,55 +68860,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(inj) => [
- q(2974),
+ q(2971),
q(0),
],
q(inl) => [
- q(2975),
+ q(2972),
q(0),
],
q(inm) => [
- q(2976),
+ q(2973),
q(0),
],
q(inn) => [
- q(2977),
+ q(2974),
q(0),
],
q(ino) => [
- q(2978),
+ q(2975),
q(0),
],
q(inp) => [
- q(2979),
+ q(2976),
q(0),
],
q(ins) => [
- q(2980),
+ q(2977),
q(0),
],
q(int) => [
- q(2981),
+ q(2978),
q(0),
],
q(inz) => [
- q(2982),
+ q(2979),
q(0),
],
q(ior) => [
- q(2983),
+ q(2980),
q(0),
],
q(iou) => [
- q(2984),
+ q(2981),
q(0),
],
q(iow) => [
- q(2985),
+ q(2982),
q(0),
],
q(ipi) => [
- q(2986),
+ q(2983),
q(0),
],
q(ipk) => [
@@ -68890,15 +68916,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ipo) => [
- q(2987),
+ q(2984),
q(0),
],
q(iqu) => [
- q(2988),
+ q(2985),
q(0),
],
q(iqw) => [
- q(2989),
+ q(2986),
q(0),
],
q(ira) => [
@@ -68906,23 +68932,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ire) => [
- q(2990),
+ q(2987),
q(0),
],
q(irh) => [
- q(2991),
+ q(2988),
q(0),
],
q(iri) => [
- q(2992),
+ q(2989),
q(0),
],
q(irk) => [
- q(2993),
+ q(2990),
q(0),
],
q(irn) => [
- q(2994),
+ q(2991),
q(0),
],
q(iro) => [
@@ -68930,75 +68956,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(irr) => [
- q(2995),
+ q(2992),
q(0),
],
q(iru) => [
- q(2996),
+ q(2993),
q(0),
],
q(irx) => [
- q(2997),
+ q(2994),
q(0),
],
q(iry) => [
- q(2998),
+ q(2995),
q(0),
],
q(isa) => [
- q(2999),
+ q(2996),
q(0),
],
q(isc) => [
- q(3000),
+ q(2997),
q(0),
],
q(isd) => [
- q(3001),
+ q(2998),
q(0),
],
q(ise) => [
- q(3002),
+ q(2999),
q(0),
],
q(isg) => [
- q(3003),
+ q(3000),
q(0),
],
q(ish) => [
- q(3004),
+ q(3001),
q(0),
],
q(isi) => [
- q(3005),
+ q(3002),
q(0),
],
q(isk) => [
- q(3006),
+ q(3003),
q(0),
],
q(ism) => [
- q(3007),
+ q(3004),
q(0),
],
q(isn) => [
- q(3008),
+ q(3005),
q(0),
],
q(iso) => [
- q(3009),
+ q(3006),
q(0),
],
q(isr) => [
- q(3010),
+ q(3007),
q(0),
],
q(ist) => [
- q(3011),
+ q(3008),
q(0),
],
q(isu) => [
- q(3012),
+ q(3009),
q(0),
],
q(ita) => [
@@ -69006,7 +69032,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(itb) => [
- q(3013),
+ q(3010),
q(0),
],
q(itc) => [
@@ -69014,187 +69040,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ite) => [
- q(3014),
+ q(3011),
q(0),
],
q(iti) => [
- q(3015),
+ q(3012),
q(0),
],
q(itk) => [
- q(3016),
+ q(3013),
q(0),
],
q(itl) => [
- q(3017),
+ q(3014),
q(0),
],
q(itm) => [
- q(3018),
+ q(3015),
q(0),
],
q(ito) => [
- q(3019),
+ q(3016),
q(0),
],
q(itr) => [
- q(3020),
+ q(3017),
q(0),
],
q(its) => [
- q(3021),
+ q(3018),
q(0),
],
q(itt) => [
- q(3022),
+ q(3019),
q(0),
],
q(itv) => [
- q(3023),
+ q(3020),
q(0),
],
q(itw) => [
- q(3024),
+ q(3021),
q(0),
],
q(itx) => [
- q(3025),
+ q(3022),
q(0),
],
q(ity) => [
- q(3026),
+ q(3023),
q(0),
],
q(itz) => [
- q(3027),
+ q(3024),
q(0),
],
q(ium) => [
- q(3028),
+ q(3025),
q(0),
],
q(ivb) => [
- q(3029),
+ q(3026),
q(0),
],
q(ivv) => [
- q(3030),
+ q(3027),
q(0),
],
q(iwk) => [
- q(3031),
+ q(3028),
q(0),
],
q(iwm) => [
- q(3032),
+ q(3029),
q(0),
],
q(iwo) => [
- q(3033),
+ q(3030),
q(0),
],
q(iws) => [
- q(3034),
+ q(3031),
q(0),
],
q(ixc) => [
- q(3035),
+ q(3032),
q(0),
],
q(ixl) => [
- q(3036),
+ q(3033),
q(0),
],
q(iya) => [
- q(3037),
+ q(3034),
q(0),
],
q(iyo) => [
- q(3038),
+ q(3035),
q(0),
],
q(iyx) => [
- q(3039),
+ q(3036),
q(0),
],
q(izh) => [
- q(3040),
+ q(3037),
q(0),
],
q(izr) => [
- q(3041),
+ q(3038),
q(0),
],
q(izz) => [
- q(3042),
+ q(3039),
q(0),
],
q(jaa) => [
- q(3043),
+ q(3040),
q(0),
],
q(jab) => [
- q(3044),
+ q(3041),
q(0),
],
q(jac) => [
- q(3045),
+ q(3042),
q(0),
],
q(jad) => [
- q(3046),
+ q(3043),
q(0),
],
q(jae) => [
- q(3047),
+ q(3044),
q(0),
],
q(jaf) => [
- q(3048),
+ q(3045),
q(0),
],
q(jah) => [
- q(3049),
+ q(3046),
q(0),
],
q(jaj) => [
- q(3050),
+ q(3047),
q(0),
],
q(jak) => [
- q(3051),
+ q(3048),
q(0),
],
q(jal) => [
- q(3052),
+ q(3049),
q(0),
],
q(jam) => [
- q(3053),
+ q(3050),
q(0),
],
q(jan) => [
- q(3054),
+ q(3051),
q(0),
],
q(jao) => [
- q(3055),
+ q(3052),
q(0),
],
q(jaq) => [
- q(3056),
+ q(3053),
q(0),
],
q(jas) => [
- q(3057),
+ q(3054),
q(0),
],
q(jat) => [
- q(3058),
+ q(3055),
q(0),
],
q(jau) => [
- q(3059),
+ q(3056),
q(0),
],
q(jav) => [
@@ -69202,35 +69228,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(jax) => [
- q(3060),
+ q(3057),
q(0),
],
q(jay) => [
- q(3061),
+ q(3058),
q(0),
],
q(jaz) => [
- q(3062),
+ q(3059),
q(0),
],
q(jbe) => [
- q(3063),
+ q(3060),
q(0),
],
q(jbi) => [
- q(3064),
+ q(3061),
q(0),
],
q(jbj) => [
- q(3065),
+ q(3062),
q(0),
],
q(jbk) => [
- q(3066),
+ q(3063),
q(0),
],
q(jbn) => [
- q(3067),
+ q(3064),
q(0),
],
q(jbo) => [
@@ -69238,299 +69264,303 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(jbr) => [
- q(3068),
+ q(3065),
q(0),
],
q(jbt) => [
- q(3069),
+ q(3066),
q(0),
],
q(jbu) => [
- q(3070),
+ q(3067),
q(0),
],
q(jbw) => [
- q(3071),
+ q(3068),
q(0),
],
q(jcs) => [
- q(3072),
+ q(3069),
q(0),
],
q(jct) => [
- q(3073),
+ q(3070),
q(0),
],
q(jda) => [
- q(3074),
+ q(3071),
q(0),
],
q(jdg) => [
- q(3075),
+ q(3072),
q(0),
],
q(jdt) => [
- q(3076),
+ q(3073),
q(0),
],
q(jeb) => [
- q(3077),
+ q(3074),
q(0),
],
q(jee) => [
- q(3078),
+ q(3075),
q(0),
],
q(jeg) => [
- q(3079),
+ q(3076),
q(0),
],
q(jeh) => [
- q(3080),
+ q(3077),
q(0),
],
q(jei) => [
- q(3081),
+ q(3078),
q(0),
],
q(jek) => [
- q(3082),
+ q(3079),
q(0),
],
q(jel) => [
- q(3083),
+ q(3080),
q(0),
],
q(jen) => [
- q(3084),
+ q(3081),
q(0),
],
q(jer) => [
- q(3085),
+ q(3082),
q(0),
],
q(jet) => [
- q(3086),
+ q(3083),
q(0),
],
q(jeu) => [
- q(3087),
+ q(3084),
q(0),
],
q(jgb) => [
- q(3088),
+ q(3085),
q(0),
],
q(jge) => [
- q(3089),
+ q(3086),
q(0),
],
q(jgk) => [
- q(3090),
+ q(3087),
q(0),
],
q(jgo) => [
- q(3091),
+ q(3088),
q(0),
],
q(jhi) => [
- q(3092),
+ q(3089),
q(0),
],
q(jhs) => [
- q(3093),
+ q(3090),
q(0),
],
q(jia) => [
- q(3094),
+ q(3091),
q(0),
],
q(jib) => [
- q(3095),
+ q(3092),
q(0),
],
q(jic) => [
- q(3096),
+ q(3093),
q(0),
],
q(jid) => [
- q(3097),
+ q(3094),
q(0),
],
q(jie) => [
- q(3098),
+ q(3095),
q(0),
],
q(jig) => [
- q(3099),
+ q(3096),
q(0),
],
q(jih) => [
- q(3100),
+ q(3097),
q(0),
],
q(jii) => [
- q(3101),
+ q(3098),
q(0),
],
q(jil) => [
- q(3102),
+ q(3099),
q(0),
],
q(jim) => [
- q(3103),
+ q(3100),
q(0),
],
q(jio) => [
- q(3104),
+ q(3101),
q(0),
],
q(jiq) => [
- q(3105),
+ q(3102),
q(0),
],
q(jit) => [
- q(3106),
+ q(3103),
q(0),
],
q(jiu) => [
- q(3107),
+ q(3104),
q(0),
],
q(jiv) => [
- q(3108),
+ q(3105),
q(0),
],
q(jiy) => [
- q(3109),
+ q(3106),
+ q(0),
+ ],
+ q(jje) => [
+ q(3107),
q(0),
],
q(jjr) => [
- q(3110),
+ q(3108),
q(0),
],
q(jkm) => [
- q(3111),
+ q(3109),
q(0),
],
q(jko) => [
- q(3112),
+ q(3110),
q(0),
],
q(jkp) => [
- q(3113),
+ q(3111),
q(0),
],
q(jkr) => [
- q(3114),
+ q(3112),
q(0),
],
q(jku) => [
- q(3115),
+ q(3113),
q(0),
],
q(jle) => [
- q(3116),
+ q(3114),
q(0),
],
q(jls) => [
- q(3117),
+ q(3115),
q(0),
],
q(jma) => [
- q(3118),
+ q(3116),
q(0),
],
q(jmb) => [
- q(3119),
+ q(3117),
q(0),
],
q(jmc) => [
- q(3120),
+ q(3118),
q(0),
],
q(jmd) => [
- q(3121),
+ q(3119),
q(0),
],
q(jmi) => [
- q(3122),
+ q(3120),
q(0),
],
q(jml) => [
- q(3123),
+ q(3121),
q(0),
],
q(jmn) => [
- q(3124),
+ q(3122),
q(0),
],
q(jmr) => [
- q(3125),
+ q(3123),
q(0),
],
q(jms) => [
- q(3126),
+ q(3124),
q(0),
],
q(jmw) => [
- q(3127),
+ q(3125),
q(0),
],
q(jmx) => [
- q(3128),
+ q(3126),
q(0),
],
q(jna) => [
- q(3129),
+ q(3127),
q(0),
],
q(jnd) => [
- q(3130),
+ q(3128),
q(0),
],
q(jng) => [
- q(3131),
+ q(3129),
q(0),
],
q(jni) => [
- q(3132),
+ q(3130),
q(0),
],
q(jnj) => [
- q(3133),
+ q(3131),
q(0),
],
q(jnl) => [
- q(3134),
+ q(3132),
q(0),
],
q(jns) => [
- q(3135),
+ q(3133),
q(0),
],
q(job) => [
- q(3136),
+ q(3134),
q(0),
],
q(jod) => [
- q(3137),
+ q(3135),
q(0),
],
q(jor) => [
- q(3138),
+ q(3136),
q(0),
],
q(jos) => [
- q(3139),
+ q(3137),
q(0),
],
q(jow) => [
- q(3140),
+ q(3138),
q(0),
],
q(jpa) => [
- q(3141),
+ q(3139),
q(0),
],
q(jpn) => [
@@ -69546,11 +69576,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(jqr) => [
- q(3142),
+ q(3140),
q(0),
],
q(jra) => [
- q(3143),
+ q(3141),
q(0),
],
q(jrb) => [
@@ -69558,115 +69588,115 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(jrr) => [
- q(3144),
+ q(3142),
q(0),
],
q(jrt) => [
- q(3145),
+ q(3143),
q(0),
],
q(jru) => [
- q(3146),
+ q(3144),
q(0),
],
q(jsl) => [
- q(3147),
+ q(3145),
q(0),
],
q(jua) => [
- q(3148),
+ q(3146),
q(0),
],
q(jub) => [
- q(3149),
+ q(3147),
q(0),
],
q(juc) => [
- q(3150),
+ q(3148),
q(0),
],
q(jud) => [
- q(3151),
+ q(3149),
q(0),
],
q(juh) => [
- q(3152),
+ q(3150),
q(0),
],
q(jui) => [
- q(3153),
+ q(3151),
q(0),
],
q(juk) => [
- q(3154),
+ q(3152),
q(0),
],
q(jul) => [
- q(3155),
+ q(3153),
q(0),
],
q(jum) => [
- q(3156),
+ q(3154),
q(0),
],
q(jun) => [
- q(3157),
+ q(3155),
q(0),
],
q(juo) => [
- q(3158),
+ q(3156),
q(0),
],
q(jup) => [
- q(3159),
+ q(3157),
q(0),
],
q(jur) => [
- q(3160),
+ q(3158),
q(0),
],
q(jus) => [
- q(3161),
+ q(3159),
q(0),
],
q(jut) => [
- q(3162),
+ q(3160),
q(0),
],
q(juu) => [
- q(3163),
+ q(3161),
q(0),
],
q(juw) => [
- q(3164),
+ q(3162),
q(0),
],
q(juy) => [
- q(3165),
+ q(3163),
q(0),
],
q(jvd) => [
- q(3166),
+ q(3164),
q(0),
],
q(jvn) => [
- q(3167),
+ q(3165),
q(0),
],
q(jwi) => [
- q(3168),
+ q(3166),
q(0),
],
q(jya) => [
- q(3169),
+ q(3167),
q(0),
],
q(jye) => [
- q(3170),
+ q(3168),
q(0),
],
q(jyy) => [
- q(3171),
+ q(3169),
q(0),
],
q(kaa) => [
@@ -69682,35 +69712,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kad) => [
- q(3172),
+ q(3170),
q(0),
],
q(kae) => [
- q(3173),
+ q(3171),
q(0),
],
q(kaf) => [
- q(3174),
+ q(3172),
q(0),
],
q(kag) => [
- q(3175),
+ q(3173),
q(0),
],
q(kah) => [
- q(3176),
+ q(3174),
q(0),
],
q(kai) => [
- q(3177),
+ q(3175),
q(0),
],
q(kaj) => [
- q(3178),
+ q(3176),
q(0),
],
q(kak) => [
- q(3179),
+ q(3177),
q(0),
],
q(kal) => [
@@ -69726,15 +69756,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kao) => [
- q(3180),
+ q(3178),
q(0),
],
q(kap) => [
- q(3181),
+ q(3179),
q(0),
],
q(kaq) => [
- q(3182),
+ q(3180),
q(0),
],
q(kar) => [
@@ -69750,7 +69780,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kav) => [
- q(3183),
+ q(3181),
q(0),
],
q(kaw) => [
@@ -69758,11 +69788,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kax) => [
- q(3184),
+ q(3182),
q(0),
],
q(kay) => [
- q(3185),
+ q(3183),
q(0),
],
q(kaz) => [
@@ -69770,15 +69800,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kba) => [
- q(3186),
+ q(3184),
q(0),
],
q(kbb) => [
- q(3187),
+ q(3185),
q(0),
],
q(kbc) => [
- q(3188),
+ q(3186),
q(0),
],
q(kbd) => [
@@ -69786,247 +69816,243 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kbe) => [
- q(3189),
- q(0),
- ],
- q(kbf) => [
- q(3190),
+ q(3187),
q(0),
],
q(kbg) => [
- q(3191),
+ q(3188),
q(0),
],
q(kbh) => [
- q(3192),
+ q(3189),
q(0),
],
q(kbi) => [
- q(3193),
+ q(3190),
q(0),
],
q(kbj) => [
- q(3194),
+ q(3191),
q(0),
],
q(kbk) => [
- q(3195),
+ q(3192),
q(0),
],
q(kbl) => [
- q(3196),
+ q(3193),
q(0),
],
q(kbm) => [
- q(3197),
+ q(3194),
q(0),
],
q(kbn) => [
- q(3198),
+ q(3195),
q(0),
],
q(kbo) => [
- q(3199),
+ q(3196),
q(0),
],
q(kbp) => [
- q(3200),
+ q(3197),
q(0),
],
q(kbq) => [
- q(3201),
+ q(3198),
q(0),
],
q(kbr) => [
- q(3202),
+ q(3199),
q(0),
],
q(kbs) => [
- q(3203),
+ q(3200),
q(0),
],
q(kbt) => [
- q(3204),
+ q(3201),
q(0),
],
q(kbu) => [
- q(3205),
+ q(3202),
q(0),
],
q(kbv) => [
- q(3206),
+ q(3203),
q(0),
],
q(kbw) => [
- q(3207),
+ q(3204),
q(0),
],
q(kbx) => [
- q(3208),
+ q(3205),
q(0),
],
q(kby) => [
- q(3209),
+ q(3206),
q(0),
],
q(kbz) => [
- q(3210),
+ q(3207),
q(0),
],
q(kca) => [
- q(3211),
+ q(3208),
q(0),
],
q(kcb) => [
- q(3212),
+ q(3209),
q(0),
],
q(kcc) => [
- q(3213),
+ q(3210),
q(0),
],
q(kcd) => [
- q(3214),
+ q(3211),
q(0),
],
q(kce) => [
- q(3215),
+ q(3212),
q(0),
],
q(kcf) => [
- q(3216),
+ q(3213),
q(0),
],
q(kcg) => [
- q(3217),
+ q(3214),
q(0),
],
q(kch) => [
- q(3218),
+ q(3215),
q(0),
],
q(kci) => [
- q(3219),
+ q(3216),
q(0),
],
q(kcj) => [
- q(3220),
+ q(3217),
q(0),
],
q(kck) => [
- q(3221),
+ q(3218),
q(0),
],
q(kcl) => [
- q(3222),
+ q(3219),
q(0),
],
q(kcm) => [
- q(3223),
+ q(3220),
q(0),
],
q(kcn) => [
- q(3224),
+ q(3221),
q(0),
],
q(kco) => [
- q(3225),
+ q(3222),
q(0),
],
q(kcp) => [
- q(3226),
+ q(3223),
q(0),
],
q(kcq) => [
- q(3227),
+ q(3224),
q(0),
],
q(kcr) => [
- q(3228),
+ q(3225),
q(0),
],
q(kcs) => [
- q(3229),
+ q(3226),
q(0),
],
q(kct) => [
- q(3230),
+ q(3227),
q(0),
],
q(kcu) => [
- q(3231),
+ q(3228),
q(0),
],
q(kcv) => [
- q(3232),
+ q(3229),
q(0),
],
q(kcw) => [
- q(3233),
+ q(3230),
q(0),
],
q(kcx) => [
- q(3234),
+ q(3231),
q(0),
],
q(kcy) => [
- q(3235),
+ q(3232),
q(0),
],
q(kcz) => [
- q(3236),
+ q(3233),
q(0),
],
q(kda) => [
- q(3237),
+ q(3234),
q(0),
],
q(kdc) => [
- q(3238),
+ q(3235),
q(0),
],
q(kdd) => [
- q(3239),
+ q(3236),
q(0),
],
q(kde) => [
- q(3240),
+ q(3237),
q(0),
],
q(kdf) => [
- q(3241),
+ q(3238),
q(0),
],
q(kdg) => [
- q(3242),
+ q(3239),
q(0),
],
q(kdh) => [
- q(3243),
+ q(3240),
q(0),
],
q(kdi) => [
- q(3244),
+ q(3241),
q(0),
],
q(kdj) => [
- q(3245),
+ q(3242),
q(0),
],
q(kdk) => [
- q(3246),
+ q(3243),
q(0),
],
q(kdl) => [
- q(3247),
+ q(3244),
q(0),
],
q(kdm) => [
- q(3248),
+ q(3245),
q(0),
],
q(kdn) => [
- q(3249),
+ q(3246),
q(0),
],
q(kdo) => [
@@ -70034,343 +70060,343 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kdp) => [
- q(3250),
+ q(3247),
q(0),
],
q(kdq) => [
- q(3251),
+ q(3248),
q(0),
],
q(kdr) => [
- q(3252),
+ q(3249),
q(0),
],
q(kdt) => [
- q(3253),
+ q(3250),
q(0),
],
q(kdu) => [
- q(3254),
+ q(3251),
q(0),
],
q(kdw) => [
- q(3255),
+ q(3252),
q(0),
],
q(kdx) => [
- q(3256),
+ q(3253),
q(0),
],
q(kdy) => [
- q(3257),
+ q(3254),
q(0),
],
q(kdz) => [
- q(3258),
+ q(3255),
q(0),
],
q(kea) => [
- q(3259),
+ q(3256),
q(0),
],
q(keb) => [
- q(3260),
+ q(3257),
q(0),
],
q(kec) => [
- q(3261),
+ q(3258),
q(0),
],
q(ked) => [
- q(3262),
+ q(3259),
q(0),
],
q(kee) => [
- q(3263),
+ q(3260),
q(0),
],
q(kef) => [
- q(3264),
+ q(3261),
q(0),
],
q(keg) => [
- q(3265),
+ q(3262),
q(0),
],
q(keh) => [
- q(3266),
+ q(3263),
q(0),
],
q(kei) => [
- q(3267),
+ q(3264),
q(0),
],
q(kej) => [
- q(3268),
+ q(3265),
q(0),
],
q(kek) => [
- q(3269),
+ q(3266),
q(0),
],
q(kel) => [
- q(3270),
+ q(3267),
q(0),
],
q(kem) => [
- q(3271),
+ q(3268),
q(0),
],
q(ken) => [
- q(3272),
+ q(3269),
q(0),
],
q(keo) => [
- q(3273),
+ q(3270),
q(0),
],
q(kep) => [
- q(3274),
+ q(3271),
q(0),
],
q(keq) => [
- q(3275),
+ q(3272),
q(0),
],
q(ker) => [
- q(3276),
+ q(3273),
q(0),
],
q(kes) => [
- q(3277),
+ q(3274),
q(0),
],
q(ket) => [
- q(3278),
+ q(3275),
q(0),
],
q(keu) => [
- q(3279),
+ q(3276),
q(0),
],
q(kev) => [
- q(3280),
+ q(3277),
q(0),
],
q(kew) => [
- q(3281),
+ q(3278),
q(0),
],
q(kex) => [
- q(3282),
+ q(3279),
q(0),
],
q(key) => [
- q(3283),
+ q(3280),
q(0),
],
q(kez) => [
- q(3284),
+ q(3281),
q(0),
],
q(kfa) => [
- q(3285),
+ q(3282),
q(0),
],
q(kfb) => [
- q(3286),
+ q(3283),
q(0),
],
q(kfc) => [
- q(3287),
+ q(3284),
q(0),
],
q(kfd) => [
- q(3288),
+ q(3285),
q(0),
],
q(kfe) => [
- q(3289),
+ q(3286),
q(0),
],
q(kff) => [
- q(3290),
+ q(3287),
q(0),
],
q(kfg) => [
- q(3291),
+ q(3288),
q(0),
],
q(kfh) => [
- q(3292),
+ q(3289),
q(0),
],
q(kfi) => [
- q(3293),
+ q(3290),
q(0),
],
q(kfj) => [
- q(3294),
+ q(3291),
q(0),
],
q(kfk) => [
- q(3295),
+ q(3292),
q(0),
],
q(kfl) => [
- q(3296),
+ q(3293),
q(0),
],
q(kfm) => [
- q(3297),
+ q(3294),
q(0),
],
q(kfn) => [
- q(3298),
+ q(3295),
q(0),
],
q(kfo) => [
- q(3299),
+ q(3296),
q(0),
],
q(kfp) => [
- q(3300),
+ q(3297),
q(0),
],
q(kfq) => [
- q(3301),
+ q(3298),
q(0),
],
q(kfr) => [
- q(3302),
+ q(3299),
q(0),
],
q(kfs) => [
- q(3303),
+ q(3300),
q(0),
],
q(kft) => [
- q(3304),
+ q(3301),
q(0),
],
q(kfu) => [
- q(3305),
+ q(3302),
q(0),
],
q(kfv) => [
- q(3306),
+ q(3303),
q(0),
],
q(kfw) => [
- q(3307),
+ q(3304),
q(0),
],
q(kfx) => [
- q(3308),
+ q(3305),
q(0),
],
q(kfy) => [
- q(3309),
+ q(3306),
q(0),
],
q(kfz) => [
- q(3310),
+ q(3307),
q(0),
],
q(kga) => [
- q(3311),
+ q(3308),
q(0),
],
q(kgb) => [
- q(3312),
+ q(3309),
q(0),
],
q(kgc) => [
- q(3313),
+ q(3310),
q(0),
],
q(kgd) => [
- q(3314),
+ q(3311),
q(0),
],
q(kge) => [
- q(3315),
+ q(3312),
q(0),
],
q(kgf) => [
- q(3316),
+ q(3313),
q(0),
],
q(kgg) => [
- q(3317),
+ q(3314),
q(0),
],
q(kgi) => [
- q(3318),
+ q(3315),
q(0),
],
q(kgj) => [
- q(3319),
+ q(3316),
q(0),
],
q(kgk) => [
- q(3320),
+ q(3317),
q(0),
],
q(kgl) => [
- q(3321),
+ q(3318),
q(0),
],
q(kgm) => [
- q(3322),
+ q(3319),
q(0),
],
q(kgn) => [
- q(3323),
+ q(3320),
q(0),
],
q(kgo) => [
- q(3324),
+ q(3321),
q(0),
],
q(kgp) => [
- q(3325),
+ q(3322),
q(0),
],
q(kgq) => [
- q(3326),
+ q(3323),
q(0),
],
q(kgr) => [
- q(3327),
+ q(3324),
q(0),
],
q(kgs) => [
- q(3328),
+ q(3325),
q(0),
],
q(kgt) => [
- q(3329),
+ q(3326),
q(0),
],
q(kgu) => [
- q(3330),
+ q(3327),
q(0),
],
q(kgv) => [
- q(3331),
+ q(3328),
q(0),
],
q(kgw) => [
- q(3332),
+ q(3329),
q(0),
],
q(kgx) => [
- q(3333),
+ q(3330),
q(0),
],
q(kgy) => [
- q(3334),
+ q(3331),
q(0),
],
q(kha) => [
@@ -70378,31 +70404,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(khb) => [
- q(3335),
+ q(3332),
q(0),
],
q(khc) => [
- q(3336),
+ q(3333),
q(0),
],
q(khd) => [
- q(3337),
+ q(3334),
q(0),
],
q(khe) => [
- q(3338),
+ q(3335),
q(0),
],
q(khf) => [
- q(3339),
+ q(3336),
q(0),
],
q(khg) => [
- q(3340),
+ q(3337),
q(0),
],
q(khh) => [
- q(3341),
+ q(3338),
q(0),
],
q(khi) => [
@@ -70410,15 +70436,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(khj) => [
- q(3342),
+ q(3339),
q(0),
],
q(khk) => [
- q(3343),
+ q(3340),
q(0),
],
q(khl) => [
- q(3344),
+ q(3341),
q(0),
],
q(khm) => [
@@ -70426,7 +70452,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(khn) => [
- q(3345),
+ q(3342),
q(0),
],
q(kho) => [
@@ -70434,87 +70460,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(khp) => [
- q(3346),
+ q(3343),
q(0),
],
q(khq) => [
- q(3347),
+ q(3344),
q(0),
],
q(khr) => [
- q(3348),
+ q(3345),
q(0),
],
q(khs) => [
- q(3349),
+ q(3346),
q(0),
],
q(kht) => [
- q(3350),
+ q(3347),
q(0),
],
q(khu) => [
- q(3351),
+ q(3348),
q(0),
],
q(khv) => [
- q(3352),
+ q(3349),
q(0),
],
q(khw) => [
- q(3353),
+ q(3350),
q(0),
],
q(khx) => [
- q(3354),
+ q(3351),
q(0),
],
q(khy) => [
- q(3355),
+ q(3352),
q(0),
],
q(khz) => [
- q(3356),
+ q(3353),
q(0),
],
q(kia) => [
- q(3357),
+ q(3354),
q(0),
],
q(kib) => [
- q(3358),
+ q(3355),
q(0),
],
q(kic) => [
- q(3359),
+ q(3356),
q(0),
],
q(kid) => [
- q(3360),
+ q(3357),
q(0),
],
q(kie) => [
- q(3361),
+ q(3358),
q(0),
],
q(kif) => [
- q(3362),
+ q(3359),
q(0),
],
q(kig) => [
- q(3363),
+ q(3360),
q(0),
],
q(kih) => [
- q(3364),
+ q(3361),
q(0),
],
q(kii) => [
- q(3365),
+ q(3362),
q(0),
],
q(kij) => [
- q(3366),
+ q(3363),
q(0),
],
q(kik) => [
@@ -70522,11 +70548,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kil) => [
- q(3367),
+ q(3364),
q(0),
],
q(kim) => [
- q(3368),
+ q(3365),
q(0),
],
q(kin) => [
@@ -70534,15 +70560,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kio) => [
- q(3369),
+ q(3366),
q(0),
],
q(kip) => [
- q(3370),
+ q(3367),
q(0),
],
q(kiq) => [
- q(3371),
+ q(3368),
q(0),
],
q(kir) => [
@@ -70550,343 +70576,347 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kis) => [
- q(3372),
+ q(3369),
q(0),
],
q(kit) => [
- q(3373),
+ q(3370),
q(0),
],
q(kiu) => [
- q(3374),
+ q(3371),
q(0),
],
q(kiv) => [
- q(3375),
+ q(3372),
q(0),
],
q(kiw) => [
- q(3376),
+ q(3373),
q(0),
],
q(kix) => [
- q(3377),
+ q(3374),
q(0),
],
q(kiy) => [
- q(3378),
+ q(3375),
q(0),
],
q(kiz) => [
- q(3379),
+ q(3376),
q(0),
],
q(kja) => [
- q(3380),
+ q(3377),
q(0),
],
q(kjb) => [
- q(3381),
+ q(3378),
q(0),
],
q(kjc) => [
- q(3382),
+ q(3379),
q(0),
],
q(kjd) => [
- q(3383),
+ q(3380),
q(0),
],
q(kje) => [
- q(3384),
+ q(3381),
q(0),
],
q(kjf) => [
- q(3385),
+ q(3382),
q(0),
],
q(kjg) => [
- q(3386),
+ q(3383),
q(0),
],
q(kjh) => [
- q(3387),
+ q(3384),
q(0),
],
q(kji) => [
- q(3388),
+ q(3385),
q(0),
],
q(kjj) => [
- q(3389),
+ q(3386),
q(0),
],
q(kjk) => [
- q(3390),
+ q(3387),
q(0),
],
q(kjl) => [
- q(3391),
+ q(3388),
q(0),
],
q(kjm) => [
- q(3392),
+ q(3389),
q(0),
],
q(kjn) => [
- q(3393),
+ q(3390),
q(0),
],
q(kjo) => [
- q(3394),
+ q(3391),
q(0),
],
q(kjp) => [
- q(3395),
+ q(3392),
q(0),
],
q(kjq) => [
- q(3396),
+ q(3393),
q(0),
],
q(kjr) => [
- q(3397),
+ q(3394),
q(0),
],
q(kjs) => [
- q(3398),
+ q(3395),
q(0),
],
q(kjt) => [
- q(3399),
+ q(3396),
q(0),
],
q(kju) => [
- q(3400),
+ q(3397),
+ q(0),
+ ],
+ q(kjv) => [
+ q(3398),
q(0),
],
q(kjx) => [
- q(3401),
+ q(3399),
q(0),
],
q(kjy) => [
- q(3402),
+ q(3400),
q(0),
],
q(kjz) => [
- q(3403),
+ q(3401),
q(0),
],
q(kka) => [
- q(3404),
+ q(3402),
q(0),
],
q(kkb) => [
- q(3405),
+ q(3403),
q(0),
],
q(kkc) => [
- q(3406),
+ q(3404),
q(0),
],
q(kkd) => [
- q(3407),
+ q(3405),
q(0),
],
q(kke) => [
- q(3408),
+ q(3406),
q(0),
],
q(kkf) => [
- q(3409),
+ q(3407),
q(0),
],
q(kkg) => [
- q(3410),
+ q(3408),
q(0),
],
q(kkh) => [
- q(3411),
+ q(3409),
q(0),
],
q(kki) => [
- q(3412),
+ q(3410),
q(0),
],
q(kkj) => [
- q(3413),
+ q(3411),
q(0),
],
q(kkk) => [
- q(3414),
+ q(3412),
q(0),
],
q(kkl) => [
- q(3415),
+ q(3413),
q(0),
],
q(kkm) => [
- q(3416),
+ q(3414),
q(0),
],
q(kkn) => [
- q(3417),
+ q(3415),
q(0),
],
q(kko) => [
- q(3418),
+ q(3416),
q(0),
],
q(kkp) => [
- q(3419),
+ q(3417),
q(0),
],
q(kkq) => [
- q(3420),
+ q(3418),
q(0),
],
q(kkr) => [
- q(3421),
+ q(3419),
q(0),
],
q(kks) => [
- q(3422),
+ q(3420),
q(0),
],
q(kkt) => [
- q(3423),
+ q(3421),
q(0),
],
q(kku) => [
- q(3424),
+ q(3422),
q(0),
],
q(kkv) => [
- q(3425),
+ q(3423),
q(0),
],
q(kkw) => [
- q(3426),
+ q(3424),
q(0),
],
q(kkx) => [
- q(3427),
+ q(3425),
q(0),
],
q(kky) => [
- q(3428),
+ q(3426),
q(0),
],
q(kkz) => [
- q(3429),
+ q(3427),
q(0),
],
q(kla) => [
- q(3430),
+ q(3428),
q(0),
],
q(klb) => [
- q(3431),
+ q(3429),
q(0),
],
q(klc) => [
- q(3432),
+ q(3430),
q(0),
],
q(kld) => [
- q(3433),
+ q(3431),
q(0),
],
q(kle) => [
- q(3434),
+ q(3432),
q(0),
],
q(klf) => [
- q(3435),
+ q(3433),
q(0),
],
q(klg) => [
- q(3436),
+ q(3434),
q(0),
],
q(klh) => [
- q(3437),
+ q(3435),
q(0),
],
q(kli) => [
- q(3438),
+ q(3436),
q(0),
],
q(klj) => [
- q(3439),
+ q(3437),
q(0),
],
q(klk) => [
- q(3440),
+ q(3438),
q(0),
],
q(kll) => [
- q(3441),
+ q(3439),
q(0),
],
q(klm) => [
- q(3442),
+ q(3440),
q(0),
],
q(kln) => [
- q(3443),
+ q(3441),
q(0),
],
q(klo) => [
- q(3444),
+ q(3442),
q(0),
],
q(klp) => [
- q(3445),
+ q(3443),
q(0),
],
q(klq) => [
- q(3446),
+ q(3444),
q(0),
],
q(klr) => [
- q(3447),
+ q(3445),
q(0),
],
q(kls) => [
- q(3448),
+ q(3446),
q(0),
],
q(klt) => [
- q(3449),
+ q(3447),
q(0),
],
q(klu) => [
- q(3450),
+ q(3448),
q(0),
],
q(klv) => [
- q(3451),
+ q(3449),
q(0),
],
q(klw) => [
- q(3452),
+ q(3450),
q(0),
],
q(klx) => [
- q(3453),
+ q(3451),
q(0),
],
q(kly) => [
- q(3454),
+ q(3452),
q(0),
],
q(klz) => [
- q(3455),
+ q(3453),
q(0),
],
q(kma) => [
- q(3456),
+ q(3454),
q(0),
],
q(kmb) => [
@@ -70894,235 +70924,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kmc) => [
- q(3457),
+ q(3455),
q(0),
],
q(kmd) => [
- q(3458),
+ q(3456),
q(0),
],
q(kme) => [
- q(3459),
+ q(3457),
q(0),
],
q(kmf) => [
- q(3460),
+ q(3458),
q(0),
],
q(kmg) => [
- q(3461),
+ q(3459),
q(0),
],
q(kmh) => [
- q(3462),
+ q(3460),
q(0),
],
q(kmi) => [
- q(3463),
+ q(3461),
q(0),
],
q(kmj) => [
- q(3464),
+ q(3462),
q(0),
],
q(kmk) => [
- q(3465),
+ q(3463),
q(0),
],
q(kml) => [
- q(3466),
+ q(3464),
q(0),
],
q(kmm) => [
- q(3467),
+ q(3465),
q(0),
],
q(kmn) => [
- q(3468),
+ q(3466),
q(0),
],
q(kmo) => [
- q(3469),
+ q(3467),
q(0),
],
q(kmp) => [
- q(3470),
+ q(3468),
q(0),
],
q(kmq) => [
- q(3471),
+ q(3469),
q(0),
],
q(kmr) => [
- q(3472),
+ q(3470),
q(0),
],
q(kms) => [
- q(3473),
+ q(3471),
q(0),
],
q(kmt) => [
- q(3474),
+ q(3472),
q(0),
],
q(kmu) => [
- q(3475),
+ q(3473),
q(0),
],
q(kmv) => [
- q(3476),
+ q(3474),
q(0),
],
q(kmw) => [
- q(3477),
+ q(3475),
q(0),
],
q(kmx) => [
- q(3478),
+ q(3476),
q(0),
],
q(kmy) => [
- q(3479),
+ q(3477),
q(0),
],
q(kmz) => [
- q(3480),
+ q(3478),
q(0),
],
q(kna) => [
- q(3481),
+ q(3479),
q(0),
],
q(knb) => [
- q(3482),
+ q(3480),
q(0),
],
q(knc) => [
- q(3483),
+ q(3481),
q(0),
],
q(knd) => [
- q(3484),
+ q(3482),
q(0),
],
q(kne) => [
- q(3485),
+ q(3483),
q(0),
],
q(knf) => [
- q(3486),
+ q(3484),
q(0),
],
q(kng) => [
- q(3487),
+ q(3485),
q(0),
],
q(kni) => [
- q(3488),
+ q(3486),
q(0),
],
q(knj) => [
- q(3489),
+ q(3487),
q(0),
],
q(knk) => [
- q(3490),
+ q(3488),
q(0),
],
q(knl) => [
- q(3491),
+ q(3489),
q(0),
],
q(knm) => [
- q(3492),
+ q(3490),
q(0),
],
q(knn) => [
- q(3493),
+ q(3491),
q(0),
],
q(kno) => [
- q(3494),
+ q(3492),
q(0),
],
q(knp) => [
- q(3495),
+ q(3493),
q(0),
],
q(knq) => [
- q(3496),
+ q(3494),
q(0),
],
q(knr) => [
- q(3497),
+ q(3495),
q(0),
],
q(kns) => [
- q(3498),
+ q(3496),
q(0),
],
q(knt) => [
- q(3499),
+ q(3497),
q(0),
],
q(knu) => [
- q(3500),
+ q(3498),
q(0),
],
q(knv) => [
- q(3501),
+ q(3499),
q(0),
],
q(knw) => [
- q(3502),
+ q(3500),
q(0),
],
q(knx) => [
- q(3503),
+ q(3501),
q(0),
],
q(kny) => [
- q(3504),
+ q(3502),
q(0),
],
q(knz) => [
- q(3505),
+ q(3503),
q(0),
],
q(koa) => [
- q(3506),
+ q(3504),
q(0),
],
q(koc) => [
- q(3507),
+ q(3505),
q(0),
],
q(kod) => [
- q(3508),
+ q(3506),
q(0),
],
q(koe) => [
- q(3509),
+ q(3507),
q(0),
],
q(kof) => [
- q(3510),
+ q(3508),
q(0),
],
q(kog) => [
- q(3511),
+ q(3509),
q(0),
],
q(koh) => [
- q(3512),
+ q(3510),
q(0),
],
q(koi) => [
- q(3513),
- q(0),
- ],
- q(koj) => [
- q(3514),
+ q(3511),
q(0),
],
q(kok) => [
@@ -71130,7 +71156,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(kol) => [
- q(3515),
+ q(3512),
q(0),
],
q(kom) => [
@@ -71142,15 +71168,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(koo) => [
- q(3516),
+ q(3513),
q(0),
],
q(kop) => [
- q(3517),
+ q(3514),
q(0),
],
q(koq) => [
- q(3518),
+ q(3515),
q(0),
],
q(kor) => [
@@ -71162,47 +71188,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kot) => [
- q(3519),
+ q(3516),
q(0),
],
q(kou) => [
- q(3520),
+ q(3517),
q(0),
],
q(kov) => [
- q(3521),
+ q(3518),
q(0),
],
q(kow) => [
- q(3522),
+ q(3519),
q(0),
],
q(kox) => [
- q(3523),
+ q(3520),
q(0),
],
q(koy) => [
- q(3524),
+ q(3521),
q(0),
],
q(koz) => [
- q(3525),
+ q(3522),
q(0),
],
q(kpa) => [
- q(3526),
+ q(3523),
q(0),
],
q(kpb) => [
- q(3527),
+ q(3524),
q(0),
],
q(kpc) => [
- q(3528),
+ q(3525),
q(0),
],
q(kpd) => [
- q(3529),
+ q(3526),
q(0),
],
q(kpe) => [
@@ -71210,195 +71236,195 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kpf) => [
- q(3530),
+ q(3527),
q(0),
],
q(kpg) => [
- q(3531),
+ q(3528),
q(0),
],
q(kph) => [
- q(3532),
+ q(3529),
q(0),
],
q(kpi) => [
- q(3533),
+ q(3530),
q(0),
],
q(kpj) => [
- q(3534),
+ q(3531),
q(0),
],
q(kpk) => [
- q(3535),
+ q(3532),
q(0),
],
q(kpl) => [
- q(3536),
+ q(3533),
q(0),
],
q(kpm) => [
- q(3537),
+ q(3534),
q(0),
],
q(kpn) => [
- q(3538),
+ q(3535),
q(0),
],
q(kpo) => [
- q(3539),
+ q(3536),
q(0),
],
q(kpq) => [
- q(3540),
+ q(3537),
q(0),
],
q(kpr) => [
- q(3541),
+ q(3538),
q(0),
],
q(kps) => [
- q(3542),
+ q(3539),
q(0),
],
q(kpt) => [
- q(3543),
+ q(3540),
q(0),
],
q(kpu) => [
- q(3544),
+ q(3541),
q(0),
],
q(kpv) => [
- q(3545),
+ q(3542),
q(0),
],
q(kpw) => [
- q(3546),
+ q(3543),
q(0),
],
q(kpx) => [
- q(3547),
+ q(3544),
q(0),
],
q(kpy) => [
- q(3548),
+ q(3545),
q(0),
],
q(kpz) => [
- q(3549),
+ q(3546),
q(0),
],
q(kqa) => [
- q(3550),
+ q(3547),
q(0),
],
q(kqb) => [
- q(3551),
+ q(3548),
q(0),
],
q(kqc) => [
- q(3552),
+ q(3549),
q(0),
],
q(kqd) => [
- q(3553),
+ q(3550),
q(0),
],
q(kqe) => [
- q(3554),
+ q(3551),
q(0),
],
q(kqf) => [
- q(3555),
+ q(3552),
q(0),
],
q(kqg) => [
- q(3556),
+ q(3553),
q(0),
],
q(kqh) => [
- q(3557),
+ q(3554),
q(0),
],
q(kqi) => [
- q(3558),
+ q(3555),
q(0),
],
q(kqj) => [
- q(3559),
+ q(3556),
q(0),
],
q(kqk) => [
- q(3560),
+ q(3557),
q(0),
],
q(kql) => [
- q(3561),
+ q(3558),
q(0),
],
q(kqm) => [
- q(3562),
+ q(3559),
q(0),
],
q(kqn) => [
- q(3563),
+ q(3560),
q(0),
],
q(kqo) => [
- q(3564),
+ q(3561),
q(0),
],
q(kqp) => [
- q(3565),
+ q(3562),
q(0),
],
q(kqq) => [
- q(3566),
+ q(3563),
q(0),
],
q(kqr) => [
- q(3567),
+ q(3564),
q(0),
],
q(kqs) => [
- q(3568),
+ q(3565),
q(0),
],
q(kqt) => [
- q(3569),
+ q(3566),
q(0),
],
q(kqu) => [
- q(3570),
+ q(3567),
q(0),
],
q(kqv) => [
- q(3571),
+ q(3568),
q(0),
],
q(kqw) => [
- q(3572),
+ q(3569),
q(0),
],
q(kqx) => [
- q(3573),
+ q(3570),
q(0),
],
q(kqy) => [
- q(3574),
+ q(3571),
q(0),
],
q(kqz) => [
- q(3575),
+ q(3572),
q(0),
],
q(kra) => [
- q(3576),
+ q(3573),
q(0),
],
q(krb) => [
- q(3577),
+ q(3574),
q(0),
],
q(krc) => [
@@ -71406,31 +71432,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(krd) => [
- q(3578),
+ q(3575),
q(0),
],
q(kre) => [
- q(3579),
+ q(3576),
q(0),
],
q(krf) => [
- q(3580),
+ q(3577),
q(0),
],
q(krh) => [
- q(3581),
+ q(3578),
q(0),
],
q(kri) => [
- q(3582),
+ q(3579),
q(0),
],
q(krj) => [
- q(3583),
+ q(3580),
q(0),
],
q(krk) => [
- q(3584),
+ q(3581),
q(0),
],
q(krl) => [
@@ -71438,11 +71464,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(krm) => [
- q(3585),
+ q(3582),
q(0),
],
q(krn) => [
- q(3586),
+ q(3583),
q(0),
],
q(kro) => [
@@ -71450,19 +71476,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(krp) => [
- q(3587),
+ q(3584),
q(0),
],
q(krr) => [
- q(3588),
+ q(3585),
q(0),
],
q(krs) => [
- q(3589),
+ q(3586),
q(0),
],
q(krt) => [
- q(3590),
+ q(3587),
q(0),
],
q(kru) => [
@@ -71470,231 +71496,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(krv) => [
- q(3591),
+ q(3588),
q(0),
],
q(krw) => [
- q(3592),
+ q(3589),
q(0),
],
q(krx) => [
- q(3593),
+ q(3590),
q(0),
],
q(kry) => [
- q(3594),
+ q(3591),
q(0),
],
q(krz) => [
- q(3595),
+ q(3592),
q(0),
],
q(ksa) => [
- q(3596),
+ q(3593),
q(0),
],
q(ksb) => [
- q(3597),
+ q(3594),
q(0),
],
q(ksc) => [
- q(3598),
+ q(3595),
q(0),
],
q(ksd) => [
- q(3599),
+ q(3596),
q(0),
],
q(kse) => [
- q(3600),
+ q(3597),
q(0),
],
q(ksf) => [
- q(3601),
+ q(3598),
q(0),
],
q(ksg) => [
- q(3602),
+ q(3599),
q(0),
],
q(ksh) => [
- q(3603),
+ q(3600),
q(0),
],
q(ksi) => [
- q(3604),
+ q(3601),
q(0),
],
q(ksj) => [
- q(3605),
+ q(3602),
q(0),
],
q(ksk) => [
- q(3606),
+ q(3603),
q(0),
],
q(ksl) => [
- q(3607),
+ q(3604),
q(0),
],
q(ksm) => [
- q(3608),
+ q(3605),
q(0),
],
q(ksn) => [
- q(3609),
+ q(3606),
q(0),
],
q(kso) => [
- q(3610),
+ q(3607),
q(0),
],
q(ksp) => [
- q(3611),
+ q(3608),
q(0),
],
q(ksq) => [
- q(3612),
+ q(3609),
q(0),
],
q(ksr) => [
- q(3613),
+ q(3610),
q(0),
],
q(kss) => [
- q(3614),
+ q(3611),
q(0),
],
q(kst) => [
- q(3615),
+ q(3612),
q(0),
],
q(ksu) => [
- q(3616),
+ q(3613),
q(0),
],
q(ksv) => [
- q(3617),
+ q(3614),
q(0),
],
q(ksw) => [
- q(3618),
+ q(3615),
q(0),
],
q(ksx) => [
- q(3619),
+ q(3616),
q(0),
],
q(ksy) => [
- q(3620),
+ q(3617),
q(0),
],
q(ksz) => [
- q(3621),
+ q(3618),
q(0),
],
q(kta) => [
- q(3622),
+ q(3619),
q(0),
],
q(ktb) => [
- q(3623),
+ q(3620),
q(0),
],
q(ktc) => [
- q(3624),
+ q(3621),
q(0),
],
q(ktd) => [
- q(3625),
+ q(3622),
q(0),
],
q(kte) => [
- q(3626),
+ q(3623),
q(0),
],
q(ktf) => [
- q(3627),
+ q(3624),
q(0),
],
q(ktg) => [
- q(3628),
+ q(3625),
q(0),
],
q(kth) => [
- q(3629),
+ q(3626),
q(0),
],
q(kti) => [
- q(3630),
+ q(3627),
q(0),
],
q(ktj) => [
- q(3631),
+ q(3628),
q(0),
],
q(ktk) => [
- q(3632),
+ q(3629),
q(0),
],
q(ktl) => [
- q(3633),
+ q(3630),
q(0),
],
q(ktm) => [
- q(3634),
+ q(3631),
q(0),
],
q(ktn) => [
- q(3635),
+ q(3632),
q(0),
],
q(kto) => [
- q(3636),
+ q(3633),
q(0),
],
q(ktp) => [
- q(3637),
+ q(3634),
q(0),
],
q(ktq) => [
- q(3638),
+ q(3635),
q(0),
],
q(ktr) => [
- q(3639),
+ q(3636),
q(0),
],
q(kts) => [
- q(3640),
+ q(3637),
q(0),
],
q(ktt) => [
- q(3641),
+ q(3638),
q(0),
],
q(ktu) => [
- q(3642),
+ q(3639),
q(0),
],
q(ktv) => [
- q(3643),
+ q(3640),
q(0),
],
q(ktw) => [
- q(3644),
+ q(3641),
q(0),
],
q(ktx) => [
- q(3645),
+ q(3642),
q(0),
],
q(kty) => [
- q(3646),
+ q(3643),
q(0),
],
q(ktz) => [
- q(3647),
+ q(3644),
q(0),
],
q(kua) => [
@@ -71702,47 +71728,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kub) => [
- q(3648),
+ q(3645),
q(0),
],
q(kuc) => [
- q(3649),
+ q(3646),
q(0),
],
q(kud) => [
- q(3650),
+ q(3647),
q(0),
],
q(kue) => [
- q(3651),
+ q(3648),
q(0),
],
q(kuf) => [
- q(3652),
+ q(3649),
q(0),
],
q(kug) => [
- q(3653),
+ q(3650),
q(0),
],
q(kuh) => [
- q(3654),
+ q(3651),
q(0),
],
q(kui) => [
- q(3655),
+ q(3652),
q(0),
],
q(kuj) => [
- q(3656),
+ q(3653),
q(0),
],
q(kuk) => [
- q(3657),
+ q(3654),
q(0),
],
q(kul) => [
- q(3658),
+ q(3655),
q(0),
],
q(kum) => [
@@ -71750,19 +71776,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kun) => [
- q(3659),
+ q(3656),
q(0),
],
q(kuo) => [
- q(3660),
+ q(3657),
q(0),
],
q(kup) => [
- q(3661),
+ q(3658),
q(0),
],
q(kuq) => [
- q(3322),
+ q(3319),
q(0),
],
q(kur) => [
@@ -71770,7 +71796,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kus) => [
- q(3662),
+ q(3659),
q(0),
],
q(kut) => [
@@ -71778,551 +71804,543 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kuu) => [
- q(3663),
+ q(3660),
q(0),
],
q(kuv) => [
- q(3664),
+ q(3661),
q(0),
],
q(kuw) => [
- q(3665),
+ q(3662),
q(0),
],
q(kux) => [
- q(3666),
+ q(3663),
q(0),
],
q(kuy) => [
- q(3667),
+ q(3664),
q(0),
],
q(kuz) => [
- q(3668),
+ q(3665),
q(0),
],
q(kva) => [
- q(3669),
+ q(3666),
q(0),
],
q(kvb) => [
- q(3670),
+ q(3667),
q(0),
],
q(kvc) => [
- q(3671),
+ q(3668),
q(0),
],
q(kvd) => [
- q(3672),
+ q(3669),
q(0),
],
q(kve) => [
- q(3673),
+ q(3670),
q(0),
],
q(kvf) => [
- q(3674),
+ q(3671),
q(0),
],
q(kvg) => [
- q(3675),
+ q(3672),
q(0),
],
q(kvh) => [
- q(3676),
+ q(3673),
q(0),
],
q(kvi) => [
- q(3677),
+ q(3674),
q(0),
],
q(kvj) => [
- q(3678),
+ q(3675),
q(0),
],
q(kvk) => [
- q(3679),
+ q(3676),
q(0),
],
q(kvl) => [
- q(3680),
+ q(3677),
q(0),
],
q(kvm) => [
- q(3681),
+ q(3678),
q(0),
],
q(kvn) => [
- q(3682),
+ q(3679),
q(0),
],
q(kvo) => [
- q(3683),
+ q(3680),
q(0),
],
q(kvp) => [
- q(3684),
+ q(3681),
q(0),
],
q(kvq) => [
- q(3685),
+ q(3682),
q(0),
],
q(kvr) => [
- q(3686),
+ q(3683),
q(0),
],
q(kvs) => [
- q(3687),
+ q(3684),
q(0),
],
q(kvt) => [
- q(3688),
+ q(3685),
q(0),
],
q(kvu) => [
- q(3689),
+ q(3686),
q(0),
],
q(kvv) => [
- q(3690),
+ q(3687),
q(0),
],
q(kvw) => [
- q(3691),
+ q(3688),
q(0),
],
q(kvx) => [
- q(3692),
+ q(3689),
q(0),
],
q(kvy) => [
- q(3693),
+ q(3690),
q(0),
],
q(kvz) => [
- q(3694),
+ q(3691),
q(0),
],
q(kwa) => [
- q(3695),
+ q(3692),
q(0),
],
q(kwb) => [
- q(3696),
+ q(3693),
q(0),
],
q(kwc) => [
- q(3697),
+ q(3694),
q(0),
],
q(kwd) => [
- q(3698),
+ q(3695),
q(0),
],
q(kwe) => [
- q(3699),
+ q(3696),
q(0),
],
q(kwf) => [
- q(3700),
+ q(3697),
q(0),
],
q(kwg) => [
- q(3701),
+ q(3698),
q(0),
],
q(kwh) => [
- q(3702),
+ q(3699),
q(0),
],
q(kwi) => [
- q(3703),
+ q(3700),
q(0),
],
q(kwj) => [
- q(3704),
+ q(3701),
q(0),
],
q(kwk) => [
- q(3705),
+ q(3702),
q(0),
],
q(kwl) => [
- q(3706),
+ q(3703),
q(0),
],
q(kwm) => [
- q(3707),
+ q(3704),
q(0),
],
q(kwn) => [
- q(3708),
+ q(3705),
q(0),
],
q(kwo) => [
- q(3709),
+ q(3706),
q(0),
],
q(kwp) => [
- q(3710),
- q(0),
- ],
- q(kwq) => [
- q(3711),
+ q(3707),
q(0),
],
q(kwr) => [
- q(3712),
+ q(3708),
q(0),
],
q(kws) => [
- q(3713),
+ q(3709),
q(0),
],
q(kwt) => [
- q(3714),
+ q(3710),
q(0),
],
q(kwu) => [
- q(3715),
+ q(3711),
q(0),
],
q(kwv) => [
- q(3716),
+ q(3712),
q(0),
],
q(kww) => [
- q(3717),
+ q(3713),
q(0),
],
q(kwx) => [
- q(3718),
+ q(3714),
q(0),
],
q(kwy) => [
- q(3719),
+ q(3715),
q(0),
],
q(kwz) => [
- q(3720),
+ q(3716),
q(0),
],
q(kxa) => [
- q(3721),
+ q(3717),
q(0),
],
q(kxb) => [
- q(3722),
+ q(3718),
q(0),
],
q(kxc) => [
- q(3723),
+ q(3719),
q(0),
],
q(kxd) => [
- q(3724),
- q(0),
- ],
- q(kxe) => [
- q(3725),
+ q(3720),
q(0),
],
q(kxf) => [
- q(3726),
+ q(3721),
q(0),
],
q(kxh) => [
- q(3727),
+ q(3722),
q(0),
],
q(kxi) => [
- q(3728),
+ q(3723),
q(0),
],
q(kxj) => [
- q(3729),
+ q(3724),
q(0),
],
q(kxk) => [
- q(3730),
+ q(3725),
q(0),
],
q(kxl) => [
- q(3731),
+ q(3726),
q(0),
],
q(kxm) => [
- q(3732),
+ q(3727),
q(0),
],
q(kxn) => [
- q(3733),
+ q(3728),
q(0),
],
q(kxo) => [
- q(3734),
+ q(3729),
q(0),
],
q(kxp) => [
- q(3735),
+ q(3730),
q(0),
],
q(kxq) => [
- q(3736),
+ q(3731),
q(0),
],
q(kxr) => [
- q(3737),
+ q(3732),
q(0),
],
q(kxs) => [
- q(3738),
+ q(3733),
q(0),
],
q(kxt) => [
- q(3739),
+ q(3734),
q(0),
],
q(kxu) => [
- q(3740),
+ q(3735),
q(0),
],
q(kxv) => [
- q(3741),
+ q(3736),
q(0),
],
q(kxw) => [
- q(3742),
+ q(3737),
q(0),
],
q(kxx) => [
- q(3743),
+ q(3738),
q(0),
],
q(kxy) => [
- q(3744),
+ q(3739),
q(0),
],
q(kxz) => [
- q(3745),
+ q(3740),
q(0),
],
q(kya) => [
- q(3746),
+ q(3741),
q(0),
],
q(kyb) => [
- q(3747),
+ q(3742),
q(0),
],
q(kyc) => [
- q(3748),
+ q(3743),
q(0),
],
q(kyd) => [
- q(3749),
+ q(3744),
q(0),
],
q(kye) => [
- q(3750),
+ q(3745),
q(0),
],
q(kyf) => [
- q(3751),
+ q(3746),
q(0),
],
q(kyg) => [
- q(3752),
+ q(3747),
q(0),
],
q(kyh) => [
- q(3753),
+ q(3748),
q(0),
],
q(kyi) => [
- q(3754),
+ q(3749),
q(0),
],
q(kyj) => [
- q(3755),
+ q(3750),
q(0),
],
q(kyk) => [
- q(3756),
+ q(3751),
q(0),
],
q(kyl) => [
- q(3757),
+ q(3752),
q(0),
],
q(kym) => [
- q(3758),
+ q(3753),
q(0),
],
q(kyn) => [
- q(3759),
+ q(3754),
q(0),
],
q(kyo) => [
- q(3760),
+ q(3755),
q(0),
],
q(kyp) => [
- q(3761),
+ q(3756),
q(0),
],
q(kyq) => [
- q(3762),
+ q(3757),
q(0),
],
q(kyr) => [
- q(3763),
+ q(3758),
q(0),
],
q(kys) => [
- q(3764),
+ q(3759),
q(0),
],
q(kyt) => [
- q(3765),
+ q(3760),
q(0),
],
q(kyu) => [
- q(3766),
+ q(3761),
q(0),
],
q(kyv) => [
- q(3767),
+ q(3762),
q(0),
],
q(kyw) => [
- q(3768),
+ q(3763),
q(0),
],
q(kyx) => [
- q(3769),
+ q(3764),
q(0),
],
q(kyy) => [
- q(3770),
+ q(3765),
q(0),
],
q(kyz) => [
- q(3771),
+ q(3766),
q(0),
],
q(kza) => [
- q(3772),
+ q(3767),
q(0),
],
q(kzb) => [
- q(3773),
+ q(3768),
q(0),
],
q(kzc) => [
- q(3774),
+ q(3769),
q(0),
],
q(kzd) => [
- q(3775),
+ q(3770),
q(0),
],
q(kze) => [
- q(3776),
+ q(3771),
q(0),
],
q(kzf) => [
- q(3777),
+ q(3772),
q(0),
],
q(kzg) => [
- q(3778),
+ q(3773),
q(0),
],
q(kzi) => [
- q(3779),
+ q(3774),
q(0),
],
q(kzj) => [
- q(3780),
+ q(3775),
q(0),
],
q(kzk) => [
- q(3781),
+ q(3776),
q(0),
],
q(kzl) => [
- q(3782),
+ q(3777),
q(0),
],
q(kzm) => [
- q(3783),
+ q(3778),
q(0),
],
q(kzn) => [
- q(3784),
+ q(3779),
q(0),
],
q(kzo) => [
- q(3785),
+ q(3780),
q(0),
],
q(kzp) => [
- q(3786),
+ q(3781),
q(0),
],
q(kzq) => [
- q(3787),
+ q(3782),
q(0),
],
q(kzr) => [
- q(3788),
+ q(3783),
q(0),
],
q(kzs) => [
- q(3789),
+ q(3784),
q(0),
],
q(kzt) => [
- q(3790),
+ q(3785),
q(0),
],
q(kzu) => [
- q(3791),
+ q(3786),
q(0),
],
q(kzv) => [
- q(3792),
+ q(3787),
q(0),
],
q(kzw) => [
- q(3793),
+ q(3788),
q(0),
],
q(kzx) => [
- q(3794),
+ q(3789),
q(0),
],
q(kzy) => [
- q(3795),
+ q(3790),
q(0),
],
q(kzz) => [
- q(3796),
+ q(3791),
q(0),
],
q(laa) => [
- q(3797),
+ q(3792),
q(0),
],
q(lab) => [
- q(3798),
+ q(3793),
q(0),
],
q(lac) => [
- q(3799),
+ q(3794),
q(0),
],
q(lad) => [
@@ -72330,15 +72348,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lae) => [
- q(3800),
+ q(3795),
q(0),
],
q(laf) => [
- q(3801),
+ q(3796),
q(0),
],
q(lag) => [
- q(3802),
+ q(3797),
q(0),
],
q(lah) => [
@@ -72346,19 +72364,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lai) => [
- q(3803),
+ q(3798),
q(0),
],
q(laj) => [
- q(3804),
+ q(3799),
q(0),
],
q(lak) => [
- q(3805),
+ q(3800),
q(0),
],
q(lal) => [
- q(3806),
+ q(3801),
q(0),
],
q(lam) => [
@@ -72366,7 +72384,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lan) => [
- q(3807),
+ q(3802),
q(0),
],
q(lao) => [
@@ -72374,19 +72392,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lap) => [
- q(3808),
+ q(3803),
q(0),
],
q(laq) => [
- q(3809),
+ q(3804),
q(0),
],
q(lar) => [
- q(3810),
+ q(3805),
q(0),
],
q(las) => [
- q(3811),
+ q(3806),
q(0),
],
q(lat) => [
@@ -72394,7 +72412,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lau) => [
- q(3812),
+ q(3807),
q(0),
],
q(lav) => [
@@ -72402,307 +72420,303 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(law) => [
- q(3813),
+ q(3808),
q(0),
],
q(lax) => [
- q(3814),
+ q(3809),
q(0),
],
q(lay) => [
- q(3815),
+ q(3810),
q(0),
],
q(laz) => [
- q(3816),
+ q(3811),
q(0),
],
q(lba) => [
- q(3817),
+ q(3812),
q(0),
],
q(lbb) => [
- q(3818),
+ q(3813),
q(0),
],
q(lbc) => [
- q(3819),
+ q(3814),
q(0),
],
q(lbe) => [
- q(3820),
+ q(3815),
q(0),
],
q(lbf) => [
- q(3821),
+ q(3816),
q(0),
],
q(lbg) => [
- q(3822),
+ q(3817),
q(0),
],
q(lbi) => [
- q(3823),
+ q(3818),
q(0),
],
q(lbj) => [
- q(3824),
+ q(3819),
q(0),
],
q(lbk) => [
- q(3825),
+ q(3820),
q(0),
],
q(lbl) => [
- q(3826),
+ q(3821),
q(0),
],
q(lbm) => [
- q(3827),
+ q(3822),
q(0),
],
q(lbn) => [
- q(3828),
+ q(3823),
q(0),
],
q(lbo) => [
- q(3829),
+ q(3824),
q(0),
],
q(lbq) => [
- q(3830),
+ q(3825),
q(0),
],
q(lbr) => [
- q(3831),
+ q(3826),
q(0),
],
q(lbs) => [
- q(3832),
+ q(3827),
q(0),
],
q(lbt) => [
- q(3833),
+ q(3828),
q(0),
],
q(lbu) => [
- q(3834),
+ q(3829),
q(0),
],
q(lbv) => [
- q(3835),
+ q(3830),
q(0),
],
q(lbw) => [
- q(3836),
+ q(3831),
q(0),
],
q(lbx) => [
- q(3837),
+ q(3832),
q(0),
],
q(lby) => [
- q(3838),
+ q(3833),
q(0),
],
q(lbz) => [
- q(3839),
+ q(3834),
q(0),
],
q(lcc) => [
- q(3840),
+ q(3835),
q(0),
],
q(lcd) => [
- q(3841),
+ q(3836),
q(0),
],
q(lce) => [
- q(3842),
+ q(3837),
q(0),
],
q(lcf) => [
- q(3843),
+ q(3838),
q(0),
],
q(lch) => [
- q(3844),
+ q(3839),
q(0),
],
q(lcl) => [
- q(3845),
+ q(3840),
q(0),
],
q(lcm) => [
- q(3846),
+ q(3841),
q(0),
],
q(lcp) => [
- q(3847),
+ q(3842),
q(0),
],
q(lcq) => [
- q(3848),
+ q(3843),
q(0),
],
q(lcs) => [
- q(3849),
+ q(3844),
q(0),
],
q(lda) => [
- q(3850),
+ q(3845),
q(0),
],
q(ldb) => [
- q(3851),
+ q(3846),
q(0),
],
q(ldd) => [
- q(3852),
+ q(3847),
q(0),
],
q(ldg) => [
- q(3853),
+ q(3848),
q(0),
],
q(ldh) => [
- q(3854),
+ q(3849),
q(0),
],
q(ldi) => [
- q(3855),
+ q(3850),
q(0),
],
q(ldj) => [
- q(3856),
+ q(3851),
q(0),
],
q(ldk) => [
- q(3857),
+ q(3852),
q(0),
],
q(ldl) => [
- q(3858),
+ q(3853),
q(0),
],
q(ldm) => [
- q(3859),
+ q(3854),
q(0),
],
q(ldn) => [
- q(3860),
+ q(3855),
q(0),
],
q(ldo) => [
- q(3861),
+ q(3856),
q(0),
],
q(ldp) => [
- q(3862),
+ q(3857),
q(0),
],
q(ldq) => [
- q(3863),
+ q(3858),
q(0),
],
q(lea) => [
- q(3864),
+ q(3859),
q(0),
],
q(leb) => [
- q(3865),
+ q(3860),
q(0),
],
q(lec) => [
- q(3866),
+ q(3861),
q(0),
],
q(led) => [
- q(3867),
+ q(3862),
q(0),
],
q(lee) => [
- q(3868),
+ q(3863),
q(0),
],
q(lef) => [
- q(3869),
- q(0),
- ],
- q(leg) => [
- q(3870),
+ q(3864),
q(0),
],
q(leh) => [
- q(3871),
+ q(3865),
q(0),
],
q(lei) => [
- q(3872),
+ q(3866),
q(0),
],
q(lej) => [
- q(3873),
+ q(3867),
q(0),
],
q(lek) => [
- q(3874),
+ q(3868),
q(0),
],
q(lel) => [
- q(3875),
+ q(3869),
q(0),
],
q(lem) => [
- q(3876),
+ q(3870),
q(0),
],
q(len) => [
- q(3877),
+ q(3871),
q(0),
],
q(leo) => [
- q(3878),
+ q(3872),
q(0),
],
q(lep) => [
- q(3879),
+ q(3873),
q(0),
],
q(leq) => [
- q(3880),
+ q(3874),
q(0),
],
q(ler) => [
- q(3881),
+ q(3875),
q(0),
],
q(les) => [
- q(3882),
+ q(3876),
q(0),
],
q(let) => [
- q(3883),
+ q(3877),
q(0),
],
q(leu) => [
- q(3884),
+ q(3878),
q(0),
],
q(lev) => [
- q(3885),
+ q(3879),
q(0),
],
q(lew) => [
- q(3886),
+ q(3880),
q(0),
],
q(lex) => [
- q(3887),
+ q(3881),
q(0),
],
q(ley) => [
- q(3888),
+ q(3882),
q(0),
],
q(lez) => [
@@ -72710,155 +72724,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lfa) => [
- q(3889),
+ q(3883),
q(0),
],
q(lfn) => [
- q(3890),
+ q(3884),
q(0),
],
q(lga) => [
- q(3891),
+ q(3885),
q(0),
],
q(lgb) => [
- q(3892),
+ q(3886),
q(0),
],
q(lgg) => [
- q(3893),
+ q(3887),
q(0),
],
q(lgh) => [
- q(3894),
+ q(3888),
q(0),
],
q(lgi) => [
- q(3895),
+ q(3889),
q(0),
],
q(lgk) => [
- q(3896),
+ q(3890),
q(0),
],
q(lgl) => [
- q(3897),
+ q(3891),
q(0),
],
q(lgm) => [
- q(3898),
+ q(3892),
q(0),
],
q(lgn) => [
- q(3899),
+ q(3893),
q(0),
],
q(lgq) => [
- q(3900),
+ q(3894),
q(0),
],
q(lgr) => [
- q(3901),
+ q(3895),
q(0),
],
q(lgt) => [
- q(3902),
+ q(3896),
q(0),
],
q(lgu) => [
- q(3903),
+ q(3897),
q(0),
],
q(lgz) => [
- q(3904),
+ q(3898),
q(0),
],
q(lha) => [
- q(3905),
+ q(3899),
q(0),
],
q(lhh) => [
- q(3906),
+ q(3900),
q(0),
],
q(lhi) => [
- q(3907),
+ q(3901),
q(0),
],
q(lhl) => [
- q(3908),
+ q(3902),
q(0),
],
q(lhm) => [
- q(3909),
+ q(3903),
q(0),
],
q(lhn) => [
- q(3910),
+ q(3904),
q(0),
],
q(lhp) => [
- q(3911),
+ q(3905),
q(0),
],
q(lhs) => [
- q(3912),
+ q(3906),
q(0),
],
q(lht) => [
- q(3913),
+ q(3907),
q(0),
],
q(lhu) => [
- q(3914),
+ q(3908),
q(0),
],
q(lia) => [
- q(3915),
+ q(3909),
q(0),
],
q(lib) => [
- q(3916),
+ q(3910),
q(0),
],
q(lic) => [
- q(3917),
+ q(3911),
q(0),
],
q(lid) => [
- q(3918),
+ q(3912),
q(0),
],
q(lie) => [
- q(3919),
+ q(3913),
q(0),
],
q(lif) => [
- q(3920),
+ q(3914),
q(0),
],
q(lig) => [
- q(3921),
+ q(3915),
q(0),
],
q(lih) => [
- q(3922),
- q(0),
- ],
- q(lii) => [
- q(3923),
+ q(3916),
q(0),
],
q(lij) => [
- q(3924),
+ q(3917),
q(0),
],
q(lik) => [
- q(3925),
+ q(3918),
q(0),
],
q(lil) => [
- q(3926),
+ q(3919),
q(0),
],
q(lim) => [
@@ -72870,23 +72880,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lio) => [
- q(3927),
+ q(3920),
q(0),
],
q(lip) => [
- q(3928),
+ q(3921),
q(0),
],
q(liq) => [
- q(3929),
+ q(3922),
q(0),
],
q(lir) => [
- q(3930),
+ q(3923),
q(0),
],
q(lis) => [
- q(3931),
+ q(3924),
q(0),
],
q(lit) => [
@@ -72894,399 +72904,395 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(liu) => [
- q(3932),
+ q(3925),
q(0),
],
q(liv) => [
- q(3933),
+ q(3926),
q(0),
],
q(liw) => [
- q(3934),
+ q(3927),
q(0),
],
q(lix) => [
- q(3935),
+ q(3928),
q(0),
],
q(liy) => [
- q(3936),
+ q(3929),
q(0),
],
q(liz) => [
- q(3937),
+ q(3930),
q(0),
],
q(lja) => [
- q(3938),
+ q(3931),
q(0),
],
q(lje) => [
- q(3939),
+ q(3932),
q(0),
],
q(lji) => [
- q(3940),
+ q(3933),
q(0),
],
q(ljl) => [
- q(3941),
+ q(3934),
q(0),
],
q(ljp) => [
- q(3942),
+ q(3935),
q(0),
],
q(ljw) => [
- q(3943),
+ q(3936),
q(0),
],
q(ljx) => [
- q(3944),
+ q(3937),
q(0),
],
q(lka) => [
- q(3945),
+ q(3938),
q(0),
],
q(lkb) => [
- q(3946),
+ q(3939),
q(0),
],
q(lkc) => [
- q(3947),
+ q(3940),
q(0),
],
q(lkd) => [
- q(3948),
+ q(3941),
q(0),
],
q(lke) => [
- q(3949),
+ q(3942),
q(0),
],
q(lkh) => [
- q(3950),
+ q(3943),
q(0),
],
q(lki) => [
- q(3951),
+ q(3944),
q(0),
],
q(lkj) => [
- q(3952),
+ q(3945),
q(0),
],
q(lkl) => [
- q(3953),
+ q(3946),
q(0),
],
q(lkm) => [
- q(3954),
+ q(3947),
q(0),
],
q(lkn) => [
- q(3955),
+ q(3948),
q(0),
],
q(lko) => [
- q(3956),
+ q(3949),
q(0),
],
q(lkr) => [
- q(3957),
+ q(3950),
q(0),
],
q(lks) => [
- q(3958),
+ q(3951),
q(0),
],
q(lkt) => [
- q(3959),
+ q(3952),
q(0),
],
q(lku) => [
- q(3960),
+ q(3953),
q(0),
],
q(lky) => [
- q(3961),
+ q(3954),
q(0),
],
q(lla) => [
- q(3962),
+ q(3955),
q(0),
],
q(llb) => [
- q(3963),
+ q(3956),
q(0),
],
q(llc) => [
- q(3964),
+ q(3957),
q(0),
],
q(lld) => [
- q(3965),
+ q(3958),
q(0),
],
q(lle) => [
- q(3966),
+ q(3959),
q(0),
],
q(llf) => [
- q(3967),
+ q(3960),
q(0),
],
q(llg) => [
- q(3968),
+ q(3961),
q(0),
],
q(llh) => [
- q(3969),
+ q(3962),
q(0),
],
q(lli) => [
- q(3970),
+ q(3963),
q(0),
],
q(llj) => [
- q(3971),
+ q(3964),
q(0),
],
q(llk) => [
- q(3972),
+ q(3965),
q(0),
],
q(lll) => [
- q(3973),
+ q(3966),
q(0),
],
q(llm) => [
- q(3974),
+ q(3967),
q(0),
],
q(lln) => [
- q(3975),
+ q(3968),
q(0),
],
q(llo) => [
- q(3976),
+ q(3969),
q(0),
],
q(llp) => [
- q(3977),
+ q(3970),
q(0),
],
q(llq) => [
- q(3978),
+ q(3971),
q(0),
],
q(lls) => [
- q(3979),
+ q(3972),
q(0),
],
q(llu) => [
- q(3980),
+ q(3973),
q(0),
],
q(llx) => [
- q(3981),
+ q(3974),
q(0),
],
q(lma) => [
- q(3982),
+ q(3975),
q(0),
],
q(lmb) => [
- q(3983),
+ q(3976),
q(0),
],
q(lmc) => [
- q(3984),
+ q(3977),
q(0),
],
q(lmd) => [
- q(3985),
+ q(3978),
q(0),
],
q(lme) => [
- q(3986),
+ q(3979),
q(0),
],
q(lmf) => [
- q(3987),
+ q(3980),
q(0),
],
q(lmg) => [
- q(3988),
+ q(3981),
q(0),
],
q(lmh) => [
- q(3989),
+ q(3982),
q(0),
],
q(lmi) => [
- q(3990),
+ q(3983),
q(0),
],
q(lmj) => [
- q(3991),
+ q(3984),
q(0),
],
q(lmk) => [
- q(3992),
+ q(3985),
q(0),
],
q(lml) => [
- q(3993),
- q(0),
- ],
- q(lmm) => [
- q(3994),
+ q(3986),
q(0),
],
q(lmn) => [
- q(3995),
+ q(3987),
q(0),
],
q(lmo) => [
- q(3996),
+ q(3988),
q(0),
],
q(lmp) => [
- q(3997),
+ q(3989),
q(0),
],
q(lmq) => [
- q(3998),
+ q(3990),
q(0),
],
q(lmr) => [
- q(3999),
+ q(3991),
q(0),
],
q(lmu) => [
- q(4000),
+ q(3992),
q(0),
],
q(lmv) => [
- q(4001),
+ q(3993),
q(0),
],
q(lmw) => [
- q(4002),
+ q(3994),
q(0),
],
q(lmx) => [
- q(4003),
+ q(3995),
q(0),
],
q(lmy) => [
- q(4004),
+ q(3996),
q(0),
],
q(lmz) => [
- q(4005),
+ q(3997),
q(0),
],
q(lna) => [
- q(4006),
+ q(3998),
q(0),
],
q(lnb) => [
- q(4007),
+ q(3999),
q(0),
],
q(lnd) => [
- q(4008),
+ q(4000),
q(0),
],
q(lng) => [
- q(4009),
+ q(4001),
q(0),
],
q(lnh) => [
- q(4010),
+ q(4002),
q(0),
],
q(lni) => [
- q(4011),
+ q(4003),
q(0),
],
q(lnj) => [
- q(4012),
+ q(4004),
q(0),
],
q(lnl) => [
- q(4013),
+ q(4005),
q(0),
],
q(lnm) => [
- q(4014),
+ q(4006),
q(0),
],
q(lnn) => [
- q(4015),
+ q(4007),
q(0),
],
q(lno) => [
- q(4016),
+ q(4008),
q(0),
],
q(lns) => [
- q(4017),
+ q(4009),
q(0),
],
q(lnu) => [
- q(4018),
+ q(4010),
q(0),
],
q(lnw) => [
- q(4019),
+ q(4011),
q(0),
],
q(lnz) => [
- q(4020),
+ q(4012),
q(0),
],
q(loa) => [
- q(4021),
+ q(4013),
q(0),
],
q(lob) => [
- q(4022),
+ q(4014),
q(0),
],
q(loc) => [
- q(4023),
+ q(4015),
q(0),
],
q(loe) => [
- q(4024),
+ q(4016),
q(0),
],
q(lof) => [
- q(4025),
+ q(4017),
q(0),
],
q(log) => [
- q(4026),
+ q(4018),
q(0),
],
q(loh) => [
- q(4027),
+ q(4019),
q(0),
],
q(loi) => [
- q(4028),
+ q(4020),
q(0),
],
q(loj) => [
- q(4029),
+ q(4021),
q(0),
],
q(lok) => [
- q(4030),
+ q(4022),
q(0),
],
q(lol) => [
@@ -73294,55 +73300,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lom) => [
- q(4031),
+ q(4023),
q(0),
],
q(lon) => [
- q(4032),
+ q(4024),
q(0),
],
q(loo) => [
- q(4033),
+ q(4025),
q(0),
],
q(lop) => [
- q(4034),
+ q(4026),
q(0),
],
q(loq) => [
- q(4035),
+ q(4027),
q(0),
],
q(lor) => [
- q(4036),
+ q(4028),
q(0),
],
q(los) => [
- q(4037),
+ q(4029),
q(0),
],
q(lot) => [
- q(4038),
+ q(4030),
q(0),
],
q(lou) => [
- q(4039),
+ q(4031),
q(0),
],
q(lov) => [
- q(4040),
+ q(4032),
q(0),
],
q(low) => [
- q(4041),
+ q(4033),
q(0),
],
q(lox) => [
- q(4042),
+ q(4034),
q(0),
],
q(loy) => [
- q(4043),
+ q(4035),
q(0),
],
q(loz) => [
@@ -73350,163 +73356,163 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lpa) => [
- q(4044),
+ q(4036),
q(0),
],
q(lpe) => [
- q(4045),
+ q(4037),
q(0),
],
q(lpn) => [
- q(4046),
+ q(4038),
q(0),
],
q(lpo) => [
- q(4047),
+ q(4039),
q(0),
],
q(lpx) => [
- q(4048),
+ q(4040),
q(0),
],
q(lra) => [
- q(4049),
+ q(4041),
q(0),
],
q(lrc) => [
- q(4050),
+ q(4042),
q(0),
],
q(lre) => [
- q(4051),
+ q(4043),
q(0),
],
q(lrg) => [
- q(4052),
+ q(4044),
q(0),
],
q(lri) => [
- q(4053),
+ q(4045),
q(0),
],
q(lrk) => [
- q(4054),
+ q(4046),
q(0),
],
q(lrl) => [
- q(4055),
+ q(4047),
q(0),
],
q(lrm) => [
- q(4056),
+ q(4048),
q(0),
],
q(lrn) => [
- q(4057),
+ q(4049),
q(0),
],
q(lro) => [
- q(4058),
+ q(4050),
q(0),
],
q(lrr) => [
- q(4059),
+ q(4051),
q(0),
],
q(lrt) => [
- q(4060),
+ q(4052),
q(0),
],
q(lrv) => [
- q(4061),
+ q(4053),
q(0),
],
q(lrz) => [
- q(4062),
+ q(4054),
q(0),
],
q(lsa) => [
- q(4063),
+ q(4055),
q(0),
],
q(lsd) => [
- q(4064),
+ q(4056),
q(0),
],
q(lse) => [
- q(4065),
+ q(4057),
q(0),
],
q(lsg) => [
- q(4066),
+ q(4058),
q(0),
],
q(lsh) => [
- q(4067),
+ q(4059),
q(0),
],
q(lsi) => [
- q(4068),
+ q(4060),
q(0),
],
q(lsl) => [
- q(4069),
+ q(4061),
q(0),
],
q(lsm) => [
- q(4070),
+ q(4062),
q(0),
],
q(lso) => [
- q(4071),
+ q(4063),
q(0),
],
q(lsp) => [
- q(4072),
+ q(4064),
q(0),
],
q(lsr) => [
- q(4073),
+ q(4065),
q(0),
],
q(lss) => [
- q(4074),
+ q(4066),
q(0),
],
q(lst) => [
- q(4075),
+ q(4067),
q(0),
],
q(lsy) => [
- q(4076),
+ q(4068),
q(0),
],
q(ltc) => [
- q(4077),
+ q(4069),
q(0),
],
q(ltg) => [
- q(4078),
+ q(4070),
q(0),
],
q(lti) => [
- q(4079),
+ q(4071),
q(0),
],
q(ltn) => [
- q(4080),
+ q(4072),
q(0),
],
q(lto) => [
- q(4081),
+ q(4073),
q(0),
],
q(lts) => [
- q(4082),
+ q(4074),
q(0),
],
q(ltu) => [
- q(4083),
+ q(4075),
q(0),
],
q(ltz) => [
@@ -73522,19 +73528,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(luc) => [
- q(4084),
+ q(4076),
q(0),
],
q(lud) => [
- q(4085),
+ q(4077),
q(0),
],
q(lue) => [
- q(4086),
+ q(4078),
q(0),
],
q(luf) => [
- q(4087),
+ q(4079),
q(0),
],
q(lug) => [
@@ -73546,19 +73552,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(luj) => [
- q(4088),
+ q(4080),
q(0),
],
q(luk) => [
- q(4089),
+ q(4081),
q(0),
],
q(lul) => [
- q(4090),
+ q(4082),
q(0),
],
q(lum) => [
- q(4091),
+ q(4083),
q(0),
],
q(lun) => [
@@ -73570,15 +73576,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lup) => [
- q(4092),
+ q(4084),
q(0),
],
q(luq) => [
- q(4093),
+ q(4085),
q(0),
],
q(lur) => [
- q(4094),
+ q(4086),
q(0),
],
q(lus) => [
@@ -73586,119 +73592,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lut) => [
- q(4095),
+ q(4087),
q(0),
],
q(luu) => [
- q(4096),
+ q(4088),
q(0),
],
q(luv) => [
- q(4097),
+ q(4089),
q(0),
],
q(luw) => [
- q(4098),
+ q(4090),
q(0),
],
q(luy) => [
- q(4099),
+ q(4091),
q(0),
],
q(luz) => [
- q(4100),
+ q(4092),
q(0),
],
q(lva) => [
- q(4101),
+ q(4093),
q(0),
],
q(lvk) => [
- q(4102),
+ q(4094),
q(0),
],
q(lvs) => [
- q(4103),
+ q(4095),
q(0),
],
q(lvu) => [
- q(4104),
+ q(4096),
q(0),
],
q(lwa) => [
- q(4105),
+ q(4097),
q(0),
],
q(lwe) => [
- q(4106),
+ q(4098),
q(0),
],
q(lwg) => [
- q(4107),
+ q(4099),
q(0),
],
q(lwh) => [
- q(4108),
+ q(4100),
q(0),
],
q(lwl) => [
- q(4109),
+ q(4101),
q(0),
],
q(lwm) => [
- q(4110),
+ q(4102),
q(0),
],
q(lwo) => [
- q(4111),
+ q(4103),
q(0),
],
q(lwt) => [
- q(4112),
+ q(4104),
q(0),
],
q(lwu) => [
- q(4113),
+ q(4105),
q(0),
],
q(lww) => [
- q(4114),
+ q(4106),
q(0),
],
q(lya) => [
- q(4115),
+ q(4107),
q(0),
],
q(lyg) => [
- q(4116),
+ q(4108),
q(0),
],
q(lyn) => [
- q(4117),
+ q(4109),
q(0),
],
q(lzh) => [
- q(4118),
+ q(4110),
q(0),
],
q(lzl) => [
- q(4119),
+ q(4111),
q(0),
],
q(lzn) => [
- q(4120),
+ q(4112),
q(0),
],
q(lzz) => [
- q(4121),
+ q(4113),
q(0),
],
q(maa) => [
- q(4122),
+ q(4114),
q(0),
],
q(mab) => [
- q(4123),
+ q(4115),
q(0),
],
q(mac) => [
@@ -73710,11 +73716,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mae) => [
- q(4124),
+ q(4116),
q(0),
],
q(maf) => [
- q(4125),
+ q(4117),
q(0),
],
q(mag) => [
@@ -73730,7 +73736,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(maj) => [
- q(4126),
+ q(4118),
q(0),
],
q(mak) => [
@@ -73742,7 +73748,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mam) => [
- q(4127),
+ q(4119),
q(0),
],
q(man) => [
@@ -73758,7 +73764,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(maq) => [
- q(4128),
+ q(4120),
q(0),
],
q(mar) => [
@@ -73770,23 +73776,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mat) => [
- q(4129),
+ q(4121),
q(0),
],
q(mau) => [
- q(4130),
+ q(4122),
q(0),
],
q(mav) => [
- q(4131),
+ q(4123),
q(0),
],
q(maw) => [
- q(4132),
+ q(4124),
q(0),
],
q(max) => [
- q(4133),
+ q(4125),
q(0),
],
q(may) => [
@@ -73794,231 +73800,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(maz) => [
- q(4134),
+ q(4126),
q(0),
],
q(mba) => [
- q(4135),
+ q(4127),
q(0),
],
q(mbb) => [
- q(4136),
+ q(4128),
q(0),
],
q(mbc) => [
- q(4137),
+ q(4129),
q(0),
],
q(mbd) => [
- q(4138),
+ q(4130),
q(0),
],
q(mbe) => [
- q(4139),
+ q(4131),
q(0),
],
q(mbf) => [
- q(4140),
+ q(4132),
q(0),
],
q(mbh) => [
- q(4141),
+ q(4133),
q(0),
],
q(mbi) => [
- q(4142),
+ q(4134),
q(0),
],
q(mbj) => [
- q(4143),
+ q(4135),
q(0),
],
q(mbk) => [
- q(4144),
+ q(4136),
q(0),
],
q(mbl) => [
- q(4145),
+ q(4137),
q(0),
],
q(mbm) => [
- q(4146),
+ q(4138),
q(0),
],
q(mbn) => [
- q(4147),
+ q(4139),
q(0),
],
q(mbo) => [
- q(4148),
+ q(4140),
q(0),
],
q(mbp) => [
- q(4149),
+ q(4141),
q(0),
],
q(mbq) => [
- q(4150),
+ q(4142),
q(0),
],
q(mbr) => [
- q(4151),
+ q(4143),
q(0),
],
q(mbs) => [
- q(4152),
+ q(4144),
q(0),
],
q(mbt) => [
- q(4153),
+ q(4145),
q(0),
],
q(mbu) => [
- q(4154),
+ q(4146),
q(0),
],
q(mbv) => [
- q(4155),
+ q(4147),
q(0),
],
q(mbw) => [
- q(4156),
+ q(4148),
q(0),
],
q(mbx) => [
- q(4157),
+ q(4149),
q(0),
],
q(mby) => [
- q(4158),
+ q(4150),
q(0),
],
q(mbz) => [
- q(4159),
+ q(4151),
q(0),
],
q(mca) => [
- q(4160),
+ q(4152),
q(0),
],
q(mcb) => [
- q(4161),
+ q(4153),
q(0),
],
q(mcc) => [
- q(4162),
+ q(4154),
q(0),
],
q(mcd) => [
- q(4163),
+ q(4155),
q(0),
],
q(mce) => [
- q(4164),
+ q(4156),
q(0),
],
q(mcf) => [
- q(4165),
+ q(4157),
q(0),
],
q(mcg) => [
- q(4166),
+ q(4158),
q(0),
],
q(mch) => [
- q(4167),
+ q(4159),
q(0),
],
q(mci) => [
- q(4168),
+ q(4160),
q(0),
],
q(mcj) => [
- q(4169),
+ q(4161),
q(0),
],
q(mck) => [
- q(4170),
+ q(4162),
q(0),
],
q(mcl) => [
- q(4171),
+ q(4163),
q(0),
],
q(mcm) => [
- q(4172),
+ q(4164),
q(0),
],
q(mcn) => [
- q(4173),
+ q(4165),
q(0),
],
q(mco) => [
- q(4174),
+ q(4166),
q(0),
],
q(mcp) => [
- q(4175),
+ q(4167),
q(0),
],
q(mcq) => [
- q(4176),
+ q(4168),
q(0),
],
q(mcr) => [
- q(4177),
+ q(4169),
q(0),
],
q(mcs) => [
- q(4178),
+ q(4170),
q(0),
],
q(mct) => [
- q(4179),
+ q(4171),
q(0),
],
q(mcu) => [
- q(4180),
+ q(4172),
q(0),
],
q(mcv) => [
- q(4181),
+ q(4173),
q(0),
],
q(mcw) => [
- q(4182),
+ q(4174),
q(0),
],
q(mcx) => [
- q(4183),
+ q(4175),
q(0),
],
q(mcy) => [
- q(4184),
+ q(4176),
q(0),
],
q(mcz) => [
- q(4185),
+ q(4177),
q(0),
],
q(mda) => [
- q(4186),
+ q(4178),
q(0),
],
q(mdb) => [
- q(4187),
+ q(4179),
q(0),
],
q(mdc) => [
- q(4188),
+ q(4180),
q(0),
],
q(mdd) => [
- q(4189),
+ q(4181),
q(0),
],
q(mde) => [
- q(4190),
+ q(4182),
q(0),
],
q(mdf) => [
@@ -74026,43 +74032,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mdg) => [
- q(4191),
+ q(4183),
q(0),
],
q(mdh) => [
- q(4192),
+ q(4184),
q(0),
],
q(mdi) => [
- q(4193),
+ q(4185),
q(0),
],
q(mdj) => [
- q(4194),
+ q(4186),
q(0),
],
q(mdk) => [
- q(4195),
+ q(4187),
q(0),
],
q(mdl) => [
- q(4196),
+ q(4188),
q(0),
],
q(mdm) => [
- q(4197),
+ q(4189),
q(0),
],
q(mdn) => [
- q(4198),
+ q(4190),
q(0),
],
q(mdp) => [
- q(4199),
+ q(4191),
q(0),
],
q(mdq) => [
- q(4200),
+ q(4192),
q(0),
],
q(mdr) => [
@@ -74070,83 +74076,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mds) => [
- q(4201),
+ q(4193),
q(0),
],
q(mdt) => [
- q(4202),
+ q(4194),
q(0),
],
q(mdu) => [
- q(4203),
+ q(4195),
q(0),
],
q(mdv) => [
- q(4204),
+ q(4196),
q(0),
],
q(mdw) => [
- q(4205),
+ q(4197),
q(0),
],
q(mdx) => [
- q(4206),
+ q(4198),
q(0),
],
q(mdy) => [
- q(4207),
+ q(4199),
q(0),
],
q(mdz) => [
- q(4208),
+ q(4200),
q(0),
],
q(mea) => [
- q(4209),
+ q(4201),
q(0),
],
q(meb) => [
- q(4210),
+ q(4202),
q(0),
],
q(mec) => [
- q(4211),
+ q(4203),
q(0),
],
q(med) => [
- q(4212),
+ q(4204),
q(0),
],
q(mee) => [
- q(4213),
+ q(4205),
q(0),
],
q(mef) => [
- q(4214),
+ q(4206),
q(0),
],
q(meh) => [
- q(4215),
+ q(4207),
q(0),
],
q(mei) => [
- q(4216),
+ q(4208),
q(0),
],
q(mej) => [
- q(4217),
+ q(4209),
q(0),
],
q(mek) => [
- q(4218),
+ q(4210),
q(0),
],
q(mel) => [
- q(4219),
+ q(4211),
q(0),
],
q(mem) => [
- q(4220),
+ q(4212),
q(0),
],
q(men) => [
@@ -74154,151 +74160,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(meo) => [
- q(4221),
+ q(4213),
q(0),
],
q(mep) => [
- q(4222),
+ q(4214),
q(0),
],
q(meq) => [
- q(4223),
+ q(4215),
q(0),
],
q(mer) => [
- q(4224),
+ q(4216),
q(0),
],
q(mes) => [
- q(4225),
+ q(4217),
q(0),
],
q(met) => [
- q(4226),
+ q(4218),
q(0),
],
q(meu) => [
- q(4227),
+ q(4219),
q(0),
],
q(mev) => [
- q(4228),
+ q(4220),
q(0),
],
q(mew) => [
- q(4229),
+ q(4221),
q(0),
],
q(mey) => [
- q(4230),
+ q(4222),
q(0),
],
q(mez) => [
- q(4231),
+ q(4223),
q(0),
],
q(mfa) => [
- q(4232),
+ q(4224),
q(0),
],
q(mfb) => [
- q(4233),
+ q(4225),
q(0),
],
q(mfc) => [
- q(4234),
+ q(4226),
q(0),
],
q(mfd) => [
- q(4235),
+ q(4227),
q(0),
],
q(mfe) => [
- q(4236),
+ q(4228),
q(0),
],
q(mff) => [
- q(4237),
+ q(4229),
q(0),
],
q(mfg) => [
- q(4238),
+ q(4230),
q(0),
],
q(mfh) => [
- q(4239),
+ q(4231),
q(0),
],
q(mfi) => [
- q(4240),
+ q(4232),
q(0),
],
q(mfj) => [
- q(4241),
+ q(4233),
q(0),
],
q(mfk) => [
- q(4242),
+ q(4234),
q(0),
],
q(mfl) => [
- q(4243),
+ q(4235),
q(0),
],
q(mfm) => [
- q(4244),
+ q(4236),
q(0),
],
q(mfn) => [
- q(4245),
+ q(4237),
q(0),
],
q(mfo) => [
- q(4246),
+ q(4238),
q(0),
],
q(mfp) => [
- q(4247),
+ q(4239),
q(0),
],
q(mfq) => [
- q(4248),
+ q(4240),
q(0),
],
q(mfr) => [
- q(4249),
+ q(4241),
q(0),
],
q(mfs) => [
- q(4250),
+ q(4242),
q(0),
],
q(mft) => [
- q(4251),
+ q(4243),
q(0),
],
q(mfu) => [
- q(4252),
+ q(4244),
q(0),
],
q(mfv) => [
- q(4253),
+ q(4245),
q(0),
],
q(mfw) => [
- q(4254),
+ q(4246),
q(0),
],
q(mfx) => [
- q(4255),
+ q(4247),
q(0),
],
q(mfy) => [
- q(4256),
+ q(4248),
q(0),
],
q(mfz) => [
- q(4257),
+ q(4249),
q(0),
],
q(mga) => [
@@ -74306,207 +74312,203 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(mgb) => [
- q(4258),
+ q(4250),
q(0),
],
q(mgc) => [
- q(4259),
+ q(4251),
q(0),
],
q(mgd) => [
- q(4260),
+ q(4252),
q(0),
],
q(mge) => [
- q(4261),
+ q(4253),
q(0),
],
q(mgf) => [
- q(4262),
+ q(4254),
q(0),
],
q(mgg) => [
- q(4263),
+ q(4255),
q(0),
],
q(mgh) => [
- q(4264),
+ q(4256),
q(0),
],
q(mgi) => [
- q(4265),
+ q(4257),
q(0),
],
q(mgj) => [
- q(4266),
+ q(4258),
q(0),
],
q(mgk) => [
- q(4267),
+ q(4259),
q(0),
],
q(mgl) => [
- q(4268),
+ q(4260),
q(0),
],
q(mgm) => [
- q(4269),
+ q(4261),
q(0),
],
q(mgn) => [
- q(4270),
+ q(4262),
q(0),
],
q(mgo) => [
- q(4271),
+ q(4263),
q(0),
],
q(mgp) => [
- q(4272),
+ q(4264),
q(0),
],
q(mgq) => [
- q(4273),
+ q(4265),
q(0),
],
q(mgr) => [
- q(4274),
+ q(4266),
q(0),
],
q(mgs) => [
- q(4275),
+ q(4267),
q(0),
],
q(mgt) => [
- q(4276),
+ q(4268),
q(0),
],
q(mgu) => [
- q(4277),
+ q(4269),
q(0),
],
q(mgv) => [
- q(4278),
+ q(4270),
q(0),
],
q(mgw) => [
- q(4279),
+ q(4271),
q(0),
],
q(mgy) => [
- q(4280),
+ q(4272),
q(0),
],
q(mgz) => [
- q(4281),
+ q(4273),
q(0),
],
q(mha) => [
- q(4282),
+ q(4274),
q(0),
],
q(mhb) => [
- q(4283),
+ q(4275),
q(0),
],
q(mhc) => [
- q(4284),
+ q(4276),
q(0),
],
q(mhd) => [
- q(4285),
+ q(4277),
q(0),
],
q(mhe) => [
- q(4286),
+ q(4278),
q(0),
],
q(mhf) => [
- q(4287),
+ q(4279),
q(0),
],
q(mhg) => [
- q(4288),
- q(0),
- ],
- q(mhh) => [
- q(4289),
+ q(4280),
q(0),
],
q(mhi) => [
- q(4290),
+ q(4281),
q(0),
],
q(mhj) => [
- q(4291),
+ q(4282),
q(0),
],
q(mhk) => [
- q(4292),
+ q(4283),
q(0),
],
q(mhl) => [
- q(4293),
+ q(4284),
q(0),
],
q(mhm) => [
- q(4294),
+ q(4285),
q(0),
],
q(mhn) => [
- q(4295),
+ q(4286),
q(0),
],
q(mho) => [
- q(4296),
+ q(4287),
q(0),
],
q(mhp) => [
- q(4297),
+ q(4288),
q(0),
],
q(mhq) => [
- q(4298),
+ q(4289),
q(0),
],
q(mhr) => [
- q(4299),
+ q(4290),
q(0),
],
q(mhs) => [
- q(4300),
+ q(4291),
q(0),
],
q(mht) => [
- q(4301),
+ q(4292),
q(0),
],
q(mhu) => [
- q(4302),
+ q(4293),
q(0),
],
q(mhw) => [
- q(4303),
+ q(4294),
q(0),
],
q(mhx) => [
- q(4304),
+ q(4295),
q(0),
],
q(mhy) => [
- q(4305),
+ q(4296),
q(0),
],
q(mhz) => [
- q(4306),
+ q(4297),
q(0),
],
q(mia) => [
- q(4307),
+ q(4298),
q(0),
],
q(mib) => [
- q(4308),
+ q(4299),
q(0),
],
q(mic) => [
@@ -74514,43 +74516,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mid) => [
- q(4309),
+ q(4300),
q(0),
],
q(mie) => [
- q(4310),
+ q(4301),
q(0),
],
q(mif) => [
- q(4311),
+ q(4302),
q(0),
],
q(mig) => [
- q(4312),
+ q(4303),
q(0),
],
q(mih) => [
- q(4313),
+ q(4304),
q(0),
],
q(mii) => [
- q(4314),
+ q(4305),
q(0),
],
q(mij) => [
- q(4315),
+ q(4306),
q(0),
],
q(mik) => [
- q(4316),
+ q(4307),
q(0),
],
q(mil) => [
- q(4317),
+ q(4308),
q(0),
],
q(mim) => [
- q(4318),
+ q(4309),
q(0),
],
q(min) => [
@@ -74558,19 +74560,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mio) => [
- q(4319),
+ q(4310),
q(0),
],
q(mip) => [
- q(4320),
+ q(4311),
q(0),
],
q(miq) => [
- q(4321),
+ q(4312),
q(0),
],
q(mir) => [
- q(4322),
+ q(4313),
q(0),
],
q(mis) => [
@@ -74578,143 +74580,143 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mit) => [
- q(4323),
+ q(4314),
q(0),
],
q(miu) => [
- q(4324),
+ q(4315),
q(0),
],
q(miw) => [
- q(4325),
+ q(4316),
q(0),
],
q(mix) => [
- q(4326),
+ q(4317),
q(0),
],
q(miy) => [
- q(4327),
+ q(4318),
q(0),
],
q(miz) => [
- q(4328),
+ q(4319),
q(0),
],
q(mjc) => [
- q(4329),
+ q(4320),
q(0),
],
q(mjd) => [
- q(4330),
+ q(4321),
q(0),
],
q(mje) => [
- q(4331),
+ q(4322),
q(0),
],
q(mjg) => [
- q(4332),
+ q(4323),
q(0),
],
q(mjh) => [
- q(4333),
+ q(4324),
q(0),
],
q(mji) => [
- q(4334),
+ q(4325),
q(0),
],
q(mjj) => [
- q(4335),
+ q(4326),
q(0),
],
q(mjk) => [
- q(4336),
+ q(4327),
q(0),
],
q(mjl) => [
- q(4337),
+ q(4328),
q(0),
],
q(mjm) => [
- q(4338),
+ q(4329),
q(0),
],
q(mjn) => [
- q(4339),
+ q(4330),
q(0),
],
q(mjo) => [
- q(4340),
+ q(4331),
q(0),
],
q(mjp) => [
- q(4341),
+ q(4332),
q(0),
],
q(mjq) => [
- q(4342),
+ q(4333),
q(0),
],
q(mjr) => [
- q(4343),
+ q(4334),
q(0),
],
q(mjs) => [
- q(4344),
+ q(4335),
q(0),
],
q(mjt) => [
- q(4345),
+ q(4336),
q(0),
],
q(mju) => [
- q(4346),
+ q(4337),
q(0),
],
q(mjv) => [
- q(4347),
+ q(4338),
q(0),
],
q(mjw) => [
- q(4348),
+ q(4339),
q(0),
],
q(mjx) => [
- q(4349),
+ q(4340),
q(0),
],
q(mjy) => [
- q(4350),
+ q(4341),
q(0),
],
q(mjz) => [
- q(4351),
+ q(4342),
q(0),
],
q(mka) => [
- q(4352),
+ q(4343),
q(0),
],
q(mkb) => [
- q(4353),
+ q(4344),
q(0),
],
q(mkc) => [
- q(4354),
+ q(4345),
q(0),
],
q(mke) => [
- q(4355),
+ q(4346),
q(0),
],
q(mkf) => [
- q(4356),
+ q(4347),
q(0),
],
q(mkg) => [
- q(4357),
+ q(4348),
q(0),
],
q(mkh) => [
@@ -74722,95 +74724,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mki) => [
- q(4358),
+ q(4349),
q(0),
],
q(mkj) => [
- q(4359),
+ q(4350),
q(0),
],
q(mkk) => [
- q(4360),
+ q(4351),
q(0),
],
q(mkl) => [
- q(4361),
+ q(4352),
q(0),
],
q(mkm) => [
- q(4362),
+ q(4353),
q(0),
],
q(mkn) => [
- q(4363),
+ q(4354),
q(0),
],
q(mko) => [
- q(4364),
+ q(4355),
q(0),
],
q(mkp) => [
- q(4365),
+ q(4356),
q(0),
],
q(mkq) => [
- q(4366),
+ q(4357),
q(0),
],
q(mkr) => [
- q(4367),
+ q(4358),
q(0),
],
q(mks) => [
- q(4368),
+ q(4359),
q(0),
],
q(mkt) => [
- q(4369),
+ q(4360),
q(0),
],
q(mku) => [
- q(4370),
+ q(4361),
q(0),
],
q(mkv) => [
- q(4371),
+ q(4362),
q(0),
],
q(mkw) => [
- q(4372),
+ q(4363),
q(0),
],
q(mkx) => [
- q(4373),
+ q(4364),
q(0),
],
q(mky) => [
- q(4374),
+ q(4365),
q(0),
],
q(mkz) => [
- q(4375),
+ q(4366),
q(0),
],
q(mla) => [
- q(4376),
+ q(4367),
q(0),
],
q(mlb) => [
- q(4377),
+ q(4368),
q(0),
],
q(mlc) => [
- q(4378),
+ q(4369),
q(0),
],
q(mle) => [
- q(4379),
+ q(4370),
q(0),
],
q(mlf) => [
- q(4380),
+ q(4371),
q(0),
],
q(mlg) => [
@@ -74818,51 +74820,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mlh) => [
- q(4381),
+ q(4372),
q(0),
],
q(mli) => [
- q(4382),
+ q(4373),
q(0),
],
q(mlj) => [
- q(4383),
+ q(4374),
q(0),
],
q(mlk) => [
- q(4384),
+ q(4375),
q(0),
],
q(mll) => [
- q(4385),
+ q(4376),
q(0),
],
q(mlm) => [
- q(4386),
+ q(4377),
q(0),
],
q(mln) => [
- q(4387),
+ q(4378),
q(0),
],
q(mlo) => [
- q(4388),
+ q(4379),
q(0),
],
q(mlp) => [
- q(4389),
+ q(4380),
q(0),
],
q(mlq) => [
- q(4390),
+ q(4381),
q(0),
],
q(mlr) => [
- q(4391),
+ q(4382),
q(0),
],
q(mls) => [
- q(4392),
+ q(4383),
q(0),
],
q(mlt) => [
@@ -74870,131 +74872,131 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mlu) => [
- q(4393),
+ q(4384),
q(0),
],
q(mlv) => [
- q(4394),
+ q(4385),
q(0),
],
q(mlw) => [
- q(4395),
+ q(4386),
q(0),
],
q(mlx) => [
- q(4396),
+ q(4387),
q(0),
],
q(mlz) => [
- q(4397),
+ q(4388),
q(0),
],
q(mma) => [
- q(4398),
+ q(4389),
q(0),
],
q(mmb) => [
- q(4399),
+ q(4390),
q(0),
],
q(mmc) => [
- q(4400),
+ q(4391),
q(0),
],
q(mmd) => [
- q(4401),
+ q(4392),
q(0),
],
q(mme) => [
- q(4402),
+ q(4393),
q(0),
],
q(mmf) => [
- q(4403),
+ q(4394),
q(0),
],
q(mmg) => [
- q(4404),
+ q(4395),
q(0),
],
q(mmh) => [
- q(4405),
+ q(4396),
q(0),
],
q(mmi) => [
- q(4406),
+ q(4397),
q(0),
],
q(mmj) => [
- q(4407),
+ q(4398),
q(0),
],
q(mmk) => [
- q(4408),
+ q(4399),
q(0),
],
q(mml) => [
- q(4409),
+ q(4400),
q(0),
],
q(mmm) => [
- q(4410),
+ q(4401),
q(0),
],
q(mmn) => [
- q(4411),
+ q(4402),
q(0),
],
q(mmo) => [
- q(4412),
+ q(4403),
q(0),
],
q(mmp) => [
- q(4413),
+ q(4404),
q(0),
],
q(mmq) => [
- q(4414),
+ q(4405),
q(0),
],
q(mmr) => [
- q(4415),
+ q(4406),
q(0),
],
q(mmt) => [
- q(4416),
+ q(4407),
q(0),
],
q(mmu) => [
- q(4417),
+ q(4408),
q(0),
],
q(mmv) => [
- q(4418),
+ q(4409),
q(0),
],
q(mmw) => [
- q(4419),
+ q(4410),
q(0),
],
q(mmx) => [
- q(4420),
+ q(4411),
q(0),
],
q(mmy) => [
- q(4421),
+ q(4412),
q(0),
],
q(mmz) => [
- q(4422),
+ q(4413),
q(0),
],
q(mna) => [
- q(4423),
+ q(4414),
q(0),
],
q(mnb) => [
- q(4424),
+ q(4415),
q(0),
],
q(mnc) => [
@@ -75002,23 +75004,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mnd) => [
- q(4425),
+ q(4416),
q(0),
],
q(mne) => [
- q(4426),
+ q(4417),
q(0),
],
q(mnf) => [
- q(4427),
+ q(4418),
q(0),
],
q(mng) => [
- q(4428),
+ q(4419),
q(0),
],
q(mnh) => [
- q(4429),
+ q(4420),
q(0),
],
q(mni) => [
@@ -75026,23 +75028,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mnj) => [
- q(4430),
+ q(4421),
q(0),
],
q(mnk) => [
- q(4431),
+ q(4422),
q(0),
],
q(mnl) => [
- q(4432),
+ q(4423),
q(0),
],
q(mnm) => [
- q(4433),
+ q(4424),
q(0),
],
q(mnn) => [
- q(4434),
+ q(4425),
q(0),
],
q(mno) => [
@@ -75050,63 +75052,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mnp) => [
- q(4435),
+ q(4426),
q(0),
],
q(mnq) => [
- q(4436),
+ q(4427),
q(0),
],
q(mnr) => [
- q(4437),
+ q(4428),
q(0),
],
q(mns) => [
- q(4438),
+ q(4429),
q(0),
],
q(mnu) => [
- q(4439),
+ q(4430),
q(0),
],
q(mnv) => [
- q(4440),
+ q(4431),
q(0),
],
q(mnw) => [
- q(4441),
+ q(4432),
q(0),
],
q(mnx) => [
- q(4442),
+ q(4433),
q(0),
],
q(mny) => [
- q(4443),
+ q(4434),
q(0),
],
q(mnz) => [
- q(4444),
+ q(4435),
q(0),
],
q(moa) => [
- q(4445),
+ q(4436),
q(0),
],
q(moc) => [
- q(4446),
+ q(4437),
q(0),
],
q(mod) => [
- q(4447),
+ q(4438),
q(0),
],
q(moe) => [
- q(4448),
+ q(4439),
q(0),
],
q(mog) => [
- q(4449),
+ q(4440),
q(0),
],
q(moh) => [
@@ -75114,19 +75116,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(moi) => [
- q(4450),
+ q(4441),
q(0),
],
q(moj) => [
- q(4451),
+ q(4442),
q(0),
],
q(mok) => [
- q(4452),
+ q(4443),
q(0),
],
q(mom) => [
- q(4453),
+ q(4444),
q(0),
],
q(mon) => [
@@ -75134,19 +75136,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(moo) => [
- q(4454),
+ q(4445),
q(0),
],
q(mop) => [
- q(4455),
+ q(4446),
q(0),
],
q(moq) => [
- q(4456),
+ q(4447),
q(0),
],
q(mor) => [
- q(4457),
+ q(4448),
q(0),
],
q(mos) => [
@@ -75154,567 +75156,567 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mot) => [
- q(1138),
+ q(1135),
q(0),
],
q(mou) => [
- q(4458),
+ q(4449),
q(0),
],
q(mov) => [
- q(4459),
+ q(4450),
q(0),
],
q(mow) => [
- q(4460),
+ q(4451),
q(0),
],
q(mox) => [
- q(4461),
+ q(4452),
q(0),
],
q(moy) => [
- q(4462),
+ q(4453),
q(0),
],
q(moz) => [
- q(4463),
+ q(4454),
q(0),
],
q(mpa) => [
- q(4464),
+ q(4455),
q(0),
],
q(mpb) => [
- q(4465),
+ q(4456),
q(0),
],
q(mpc) => [
- q(4466),
+ q(4457),
q(0),
],
q(mpd) => [
- q(4467),
+ q(4458),
q(0),
],
q(mpe) => [
- q(4468),
+ q(4459),
q(0),
],
q(mpg) => [
- q(4469),
+ q(4460),
q(0),
],
q(mph) => [
- q(4470),
+ q(4461),
q(0),
],
q(mpi) => [
- q(4471),
+ q(4462),
q(0),
],
q(mpj) => [
- q(4472),
+ q(4463),
q(0),
],
q(mpk) => [
- q(4473),
+ q(4464),
q(0),
],
q(mpl) => [
- q(4474),
+ q(4465),
q(0),
],
q(mpm) => [
- q(4475),
+ q(4466),
q(0),
],
q(mpn) => [
- q(4476),
+ q(4467),
q(0),
],
q(mpo) => [
- q(4477),
+ q(4468),
q(0),
],
q(mpp) => [
- q(4478),
+ q(4469),
q(0),
],
q(mpq) => [
- q(4479),
+ q(4470),
q(0),
],
q(mpr) => [
- q(4480),
+ q(4471),
q(0),
],
q(mps) => [
- q(4481),
+ q(4472),
q(0),
],
q(mpt) => [
- q(4482),
+ q(4473),
q(0),
],
q(mpu) => [
- q(4483),
+ q(4474),
q(0),
],
q(mpv) => [
- q(4484),
+ q(4475),
q(0),
],
q(mpw) => [
- q(4485),
+ q(4476),
q(0),
],
q(mpx) => [
- q(4486),
+ q(4477),
q(0),
],
q(mpy) => [
- q(4487),
+ q(4478),
q(0),
],
q(mpz) => [
- q(4488),
+ q(4479),
q(0),
],
q(mqa) => [
- q(4489),
+ q(4480),
q(0),
],
q(mqb) => [
- q(4490),
+ q(4481),
q(0),
],
q(mqc) => [
- q(4491),
+ q(4482),
q(0),
],
q(mqe) => [
- q(4492),
+ q(4483),
q(0),
],
q(mqf) => [
- q(4493),
+ q(4484),
q(0),
],
q(mqg) => [
- q(4494),
+ q(4485),
q(0),
],
q(mqh) => [
- q(4495),
+ q(4486),
q(0),
],
q(mqi) => [
- q(4496),
+ q(4487),
q(0),
],
q(mqj) => [
- q(4497),
+ q(4488),
q(0),
],
q(mqk) => [
- q(4498),
+ q(4489),
q(0),
],
q(mql) => [
- q(4499),
+ q(4490),
q(0),
],
q(mqm) => [
- q(4500),
+ q(4491),
q(0),
],
q(mqn) => [
- q(4501),
+ q(4492),
q(0),
],
q(mqo) => [
- q(4502),
+ q(4493),
q(0),
],
q(mqp) => [
- q(4503),
+ q(4494),
q(0),
],
q(mqq) => [
- q(4504),
+ q(4495),
q(0),
],
q(mqr) => [
- q(4505),
+ q(4496),
q(0),
],
q(mqs) => [
- q(4506),
+ q(4497),
q(0),
],
q(mqt) => [
- q(4507),
+ q(4498),
q(0),
],
q(mqu) => [
- q(4508),
+ q(4499),
q(0),
],
q(mqv) => [
- q(4509),
+ q(4500),
q(0),
],
q(mqw) => [
- q(4510),
+ q(4501),
q(0),
],
q(mqx) => [
- q(4511),
+ q(4502),
q(0),
],
q(mqy) => [
- q(4512),
+ q(4503),
q(0),
],
q(mqz) => [
- q(4513),
+ q(4504),
q(0),
],
q(mra) => [
- q(4514),
+ q(4505),
q(0),
],
q(mrb) => [
- q(4515),
+ q(4506),
q(0),
],
q(mrc) => [
- q(4516),
+ q(4507),
q(0),
],
q(mrd) => [
- q(4517),
+ q(4508),
q(0),
],
q(mre) => [
- q(4518),
+ q(4509),
q(0),
],
q(mrf) => [
- q(4519),
+ q(4510),
q(0),
],
q(mrg) => [
- q(4520),
+ q(4511),
q(0),
],
q(mrh) => [
- q(4521),
+ q(4512),
q(0),
],
q(mrj) => [
- q(4522),
+ q(4513),
q(0),
],
q(mrk) => [
- q(4523),
+ q(4514),
q(0),
],
q(mrl) => [
- q(4524),
+ q(4515),
q(0),
],
q(mrm) => [
- q(4525),
+ q(4516),
q(0),
],
q(mrn) => [
- q(4526),
+ q(4517),
q(0),
],
q(mro) => [
- q(4527),
+ q(4518),
q(0),
],
q(mrp) => [
- q(4528),
+ q(4519),
q(0),
],
q(mrq) => [
- q(4529),
+ q(4520),
q(0),
],
q(mrr) => [
- q(4530),
+ q(4521),
q(0),
],
q(mrs) => [
- q(4531),
+ q(4522),
q(0),
],
q(mrt) => [
- q(4532),
+ q(4523),
q(0),
],
q(mru) => [
- q(4533),
+ q(4524),
q(0),
],
q(mrv) => [
- q(4534),
+ q(4525),
q(0),
],
q(mrw) => [
- q(4535),
+ q(4526),
q(0),
],
q(mrx) => [
- q(4536),
+ q(4527),
q(0),
],
q(mry) => [
- q(4537),
+ q(4528),
q(0),
],
q(mrz) => [
- q(4538),
+ q(4529),
q(0),
],
q(msb) => [
- q(4539),
+ q(4530),
q(0),
],
q(msc) => [
- q(4540),
+ q(4531),
q(0),
],
q(msd) => [
- q(4541),
+ q(4532),
q(0),
],
q(mse) => [
- q(4542),
+ q(4533),
q(0),
],
q(msf) => [
- q(4543),
+ q(4534),
q(0),
],
q(msg) => [
- q(4544),
+ q(4535),
q(0),
],
q(msh) => [
- q(4545),
+ q(4536),
q(0),
],
q(msi) => [
- q(4546),
+ q(4537),
q(0),
],
q(msj) => [
- q(4547),
+ q(4538),
q(0),
],
q(msk) => [
- q(4548),
+ q(4539),
q(0),
],
q(msl) => [
- q(4549),
+ q(4540),
q(0),
],
q(msm) => [
- q(4550),
+ q(4541),
q(0),
],
q(msn) => [
- q(4551),
+ q(4542),
q(0),
],
q(mso) => [
- q(4552),
+ q(4543),
q(0),
],
q(msp) => [
- q(4553),
+ q(4544),
q(0),
],
q(msq) => [
- q(4554),
+ q(4545),
q(0),
],
q(msr) => [
- q(4555),
+ q(4546),
q(0),
],
q(mss) => [
- q(4556),
+ q(4547),
q(0),
],
q(msu) => [
- q(4557),
+ q(4548),
q(0),
],
q(msv) => [
- q(4558),
+ q(4549),
q(0),
],
q(msw) => [
- q(4559),
+ q(4550),
q(0),
],
q(msx) => [
- q(4560),
+ q(4551),
q(0),
],
q(msy) => [
- q(4561),
+ q(4552),
q(0),
],
q(msz) => [
- q(4562),
+ q(4553),
q(0),
],
q(mta) => [
- q(4563),
+ q(4554),
q(0),
],
q(mtb) => [
- q(4564),
+ q(4555),
q(0),
],
q(mtc) => [
- q(4565),
+ q(4556),
q(0),
],
q(mtd) => [
- q(4566),
+ q(4557),
q(0),
],
q(mte) => [
- q(4567),
+ q(4558),
q(0),
],
q(mtf) => [
- q(4568),
+ q(4559),
q(0),
],
q(mtg) => [
- q(4569),
+ q(4560),
q(0),
],
q(mth) => [
- q(4570),
+ q(4561),
q(0),
],
q(mti) => [
- q(4571),
+ q(4562),
q(0),
],
q(mtj) => [
- q(4572),
+ q(4563),
q(0),
],
q(mtk) => [
- q(4573),
+ q(4564),
q(0),
],
q(mtl) => [
- q(4574),
+ q(4565),
q(0),
],
q(mtm) => [
- q(4575),
+ q(4566),
q(0),
],
q(mtn) => [
- q(4576),
+ q(4567),
q(0),
],
q(mto) => [
- q(4577),
+ q(4568),
q(0),
],
q(mtp) => [
- q(4578),
+ q(4569),
q(0),
],
q(mtq) => [
- q(4579),
+ q(4570),
q(0),
],
q(mtr) => [
- q(4580),
+ q(4571),
q(0),
],
q(mts) => [
- q(4581),
+ q(4572),
q(0),
],
q(mtt) => [
- q(4582),
+ q(4573),
q(0),
],
q(mtu) => [
- q(4583),
+ q(4574),
q(0),
],
q(mtv) => [
- q(4584),
+ q(4575),
q(0),
],
q(mtw) => [
- q(4585),
+ q(4576),
q(0),
],
q(mtx) => [
- q(4586),
+ q(4577),
q(0),
],
q(mty) => [
- q(4587),
+ q(4578),
q(0),
],
q(mua) => [
- q(4588),
+ q(4579),
q(0),
],
q(mub) => [
- q(4589),
+ q(4580),
q(0),
],
q(muc) => [
- q(4590),
+ q(4581),
q(0),
],
q(mud) => [
- q(4591),
+ q(4582),
q(0),
],
q(mue) => [
- q(4592),
+ q(4583),
q(0),
],
q(mug) => [
- q(4593),
+ q(4584),
q(0),
],
q(muh) => [
- q(4594),
+ q(4585),
q(0),
],
q(mui) => [
- q(4595),
+ q(4586),
q(0),
],
q(muj) => [
- q(4596),
+ q(4587),
q(0),
],
q(muk) => [
- q(4597),
+ q(4588),
q(0),
],
q(mul) => [
@@ -75722,7 +75724,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mum) => [
- q(4598),
+ q(4589),
q(0),
],
q(mun) => [
@@ -75730,19 +75732,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(muo) => [
- q(4599),
+ q(4590),
q(0),
],
q(mup) => [
- q(4600),
+ q(4591),
q(0),
],
q(muq) => [
- q(4601),
+ q(4592),
q(0),
],
q(mur) => [
- q(4602),
+ q(4593),
q(0),
],
q(mus) => [
@@ -75750,163 +75752,159 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mut) => [
- q(4603),
+ q(4594),
q(0),
],
q(muu) => [
- q(4604),
+ q(4595),
q(0),
],
q(muv) => [
- q(4605),
+ q(4596),
q(0),
],
q(mux) => [
- q(4606),
+ q(4597),
q(0),
],
q(muy) => [
- q(4607),
+ q(4598),
q(0),
],
q(muz) => [
- q(4608),
+ q(4599),
q(0),
],
q(mva) => [
- q(4609),
+ q(4600),
q(0),
],
q(mvb) => [
- q(4610),
+ q(4601),
q(0),
],
q(mvd) => [
- q(4611),
+ q(4602),
q(0),
],
q(mve) => [
- q(4612),
+ q(4603),
q(0),
],
q(mvf) => [
- q(4613),
+ q(4604),
q(0),
],
q(mvg) => [
- q(4614),
+ q(4605),
q(0),
],
q(mvh) => [
- q(4615),
+ q(4606),
q(0),
],
q(mvi) => [
- q(4616),
+ q(4607),
q(0),
],
q(mvk) => [
- q(4617),
+ q(4608),
q(0),
],
q(mvl) => [
- q(4618),
+ q(4609),
q(0),
],
q(mvm) => [
- q(4619),
+ q(4610),
q(0),
],
q(mvn) => [
- q(4620),
+ q(4611),
q(0),
],
q(mvo) => [
- q(4621),
+ q(4612),
q(0),
],
q(mvp) => [
- q(4622),
+ q(4613),
q(0),
],
q(mvq) => [
- q(4623),
+ q(4614),
q(0),
],
q(mvr) => [
- q(4624),
+ q(4615),
q(0),
],
q(mvs) => [
- q(4625),
+ q(4616),
q(0),
],
q(mvt) => [
- q(4626),
+ q(4617),
q(0),
],
q(mvu) => [
- q(4627),
+ q(4618),
q(0),
],
q(mvv) => [
- q(4628),
+ q(4619),
q(0),
],
q(mvw) => [
- q(4629),
+ q(4620),
q(0),
],
q(mvx) => [
- q(4630),
+ q(4621),
q(0),
],
q(mvy) => [
- q(4631),
+ q(4622),
q(0),
],
q(mvz) => [
- q(4632),
+ q(4623),
q(0),
],
q(mwa) => [
- q(4633),
+ q(4624),
q(0),
],
q(mwb) => [
- q(4634),
+ q(4625),
q(0),
],
q(mwc) => [
- q(4635),
+ q(4626),
q(0),
],
q(mwe) => [
- q(4636),
+ q(4627),
q(0),
],
q(mwf) => [
- q(4637),
+ q(4628),
q(0),
],
q(mwg) => [
- q(4638),
+ q(4629),
q(0),
],
q(mwh) => [
- q(4639),
+ q(4630),
q(0),
],
q(mwi) => [
- q(4640),
- q(0),
- ],
- q(mwj) => [
- q(4641),
+ q(4631),
q(0),
],
q(mwk) => [
- q(4642),
+ q(4632),
q(0),
],
q(mwl) => [
@@ -75914,23 +75912,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mwm) => [
- q(4643),
+ q(4633),
q(0),
],
q(mwn) => [
- q(4644),
+ q(4634),
q(0),
],
q(mwo) => [
- q(4645),
+ q(4635),
q(0),
],
q(mwp) => [
- q(4646),
+ q(4636),
q(0),
],
q(mwq) => [
- q(4647),
+ q(4637),
q(0),
],
q(mwr) => [
@@ -75938,187 +75936,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mws) => [
- q(4648),
+ q(4638),
q(0),
],
q(mwt) => [
- q(4649),
+ q(4639),
q(0),
],
q(mwu) => [
- q(4650),
+ q(4640),
q(0),
],
q(mwv) => [
- q(4651),
+ q(4641),
q(0),
],
q(mww) => [
- q(4652),
+ q(4642),
q(0),
],
q(mwx) => [
- q(4653),
+ q(4643),
q(0),
],
q(mwy) => [
- q(4654),
+ q(4644),
q(0),
],
q(mwz) => [
- q(4655),
+ q(4645),
q(0),
],
q(mxa) => [
- q(4656),
+ q(4646),
q(0),
],
q(mxb) => [
- q(4657),
+ q(4647),
q(0),
],
q(mxc) => [
- q(4658),
+ q(4648),
q(0),
],
q(mxd) => [
- q(4659),
+ q(4649),
q(0),
],
q(mxe) => [
- q(4660),
+ q(4650),
q(0),
],
q(mxf) => [
- q(4661),
+ q(4651),
q(0),
],
q(mxg) => [
- q(4662),
+ q(4652),
q(0),
],
q(mxh) => [
- q(4663),
+ q(4653),
q(0),
],
q(mxi) => [
- q(4664),
+ q(4654),
q(0),
],
q(mxj) => [
- q(4665),
+ q(4655),
q(0),
],
q(mxk) => [
- q(4666),
+ q(4656),
q(0),
],
q(mxl) => [
- q(4667),
+ q(4657),
q(0),
],
q(mxm) => [
- q(4668),
+ q(4658),
q(0),
],
q(mxn) => [
- q(4669),
+ q(4659),
q(0),
],
q(mxo) => [
- q(4670),
+ q(4660),
q(0),
],
q(mxp) => [
- q(4671),
+ q(4661),
q(0),
],
q(mxq) => [
- q(4672),
+ q(4662),
q(0),
],
q(mxr) => [
- q(4673),
+ q(4663),
q(0),
],
q(mxs) => [
- q(4674),
+ q(4664),
q(0),
],
q(mxt) => [
- q(4675),
+ q(4665),
q(0),
],
q(mxu) => [
- q(4676),
+ q(4666),
q(0),
],
q(mxv) => [
- q(4677),
+ q(4667),
q(0),
],
q(mxw) => [
- q(4678),
+ q(4668),
q(0),
],
q(mxx) => [
- q(4679),
+ q(4669),
q(0),
],
q(mxy) => [
- q(4680),
+ q(4670),
q(0),
],
q(mxz) => [
- q(4681),
+ q(4671),
q(0),
],
q(myb) => [
- q(4682),
+ q(4672),
q(0),
],
q(myc) => [
- q(4683),
+ q(4673),
q(0),
],
q(myd) => [
- q(4684),
+ q(4674),
q(0),
],
q(mye) => [
- q(4685),
+ q(4675),
q(0),
],
q(myf) => [
- q(4686),
+ q(4676),
q(0),
],
q(myg) => [
- q(4687),
+ q(4677),
q(0),
],
q(myh) => [
- q(4688),
+ q(4678),
q(0),
],
q(myi) => [
- q(4689),
+ q(4679),
q(0),
],
q(myj) => [
- q(4690),
+ q(4680),
q(0),
],
q(myk) => [
- q(4691),
+ q(4681),
q(0),
],
q(myl) => [
- q(4692),
+ q(4682),
q(0),
],
q(mym) => [
- q(4693),
+ q(4683),
q(0),
],
q(myn) => [
@@ -76126,23 +76124,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(myo) => [
- q(4694),
+ q(4684),
q(0),
],
q(myp) => [
- q(4695),
+ q(4685),
q(0),
],
q(myr) => [
- q(4696),
+ q(4686),
q(0),
],
q(mys) => [
- q(4697),
+ q(4687),
q(0),
],
q(myu) => [
- q(4698),
+ q(4688),
q(0),
],
q(myv) => [
@@ -76150,147 +76148,147 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(myw) => [
- q(4699),
+ q(4689),
q(0),
],
q(myx) => [
- q(4700),
+ q(4690),
q(0),
],
q(myy) => [
- q(4701),
+ q(4691),
q(0),
],
q(myz) => [
- q(4702),
+ q(4692),
q(0),
],
q(mza) => [
- q(4703),
+ q(4693),
q(0),
],
q(mzb) => [
- q(4704),
+ q(4694),
q(0),
],
q(mzc) => [
- q(4705),
+ q(4695),
q(0),
],
q(mzd) => [
- q(4706),
+ q(4696),
q(0),
],
q(mze) => [
- q(4707),
+ q(4697),
q(0),
],
q(mzg) => [
- q(4708),
+ q(4698),
q(0),
],
q(mzh) => [
- q(4709),
+ q(4699),
q(0),
],
q(mzi) => [
- q(4710),
+ q(4700),
q(0),
],
q(mzj) => [
- q(4711),
+ q(4701),
q(0),
],
q(mzk) => [
- q(4712),
+ q(4702),
q(0),
],
q(mzl) => [
- q(4713),
+ q(4703),
q(0),
],
q(mzm) => [
- q(4714),
+ q(4704),
q(0),
],
q(mzn) => [
- q(4715),
+ q(4705),
q(0),
],
q(mzo) => [
- q(4716),
+ q(4706),
q(0),
],
q(mzp) => [
- q(4717),
+ q(4707),
q(0),
],
q(mzq) => [
- q(4718),
+ q(4708),
q(0),
],
q(mzr) => [
- q(4719),
+ q(4709),
q(0),
],
q(mzs) => [
- q(4720),
+ q(4710),
q(0),
],
q(mzt) => [
- q(4721),
+ q(4711),
q(0),
],
q(mzu) => [
- q(4722),
+ q(4712),
q(0),
],
q(mzv) => [
- q(4723),
+ q(4713),
q(0),
],
q(mzw) => [
- q(4724),
+ q(4714),
q(0),
],
q(mzx) => [
- q(4725),
+ q(4715),
q(0),
],
q(mzy) => [
- q(4726),
+ q(4716),
q(0),
],
q(mzz) => [
- q(4727),
+ q(4717),
q(0),
],
q(naa) => [
- q(4728),
+ q(4718),
q(0),
],
q(nab) => [
- q(4729),
+ q(4719),
q(0),
],
q(nac) => [
- q(4730),
+ q(4720),
q(0),
],
q(nad) => [
- q(4731),
+ q(4721),
q(0),
],
q(nae) => [
- q(4732),
+ q(4722),
q(0),
],
q(naf) => [
- q(4733),
+ q(4723),
q(0),
],
q(nag) => [
- q(4734),
+ q(4724),
q(0),
],
q(nah) => [
@@ -76302,27 +76300,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(naj) => [
- q(4735),
+ q(4725),
q(0),
],
q(nak) => [
- q(4736),
+ q(4726),
q(0),
],
q(nal) => [
- q(4737),
+ q(4727),
q(0),
],
q(nam) => [
- q(4738),
+ q(4728),
q(0),
],
q(nan) => [
- q(4739),
+ q(4729),
q(0),
],
q(nao) => [
- q(4740),
+ q(4730),
q(0),
],
q(nap) => [
@@ -76330,19 +76328,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(naq) => [
- q(4741),
+ q(4731),
q(0),
],
q(nar) => [
- q(4742),
+ q(4732),
q(0),
],
q(nas) => [
- q(4743),
+ q(4733),
q(0),
],
q(nat) => [
- q(4744),
+ q(4734),
q(0),
],
q(nau) => [
@@ -76354,59 +76352,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(naw) => [
- q(4745),
+ q(4735),
q(0),
],
q(nax) => [
- q(4746),
+ q(4736),
q(0),
],
q(nay) => [
- q(4747),
+ q(4737),
q(0),
],
q(naz) => [
- q(4748),
+ q(4738),
q(0),
],
q(nba) => [
- q(4749),
+ q(4739),
q(0),
],
q(nbb) => [
- q(4750),
+ q(4740),
q(0),
],
q(nbc) => [
- q(4751),
+ q(4741),
q(0),
],
q(nbd) => [
- q(4752),
+ q(4742),
q(0),
],
q(nbe) => [
- q(4753),
+ q(4743),
q(0),
],
q(nbg) => [
- q(4754),
+ q(4744),
q(0),
],
q(nbh) => [
- q(4755),
+ q(4745),
q(0),
],
q(nbi) => [
- q(4756),
+ q(4746),
q(0),
],
q(nbj) => [
- q(4757),
+ q(4747),
q(0),
],
q(nbk) => [
- q(4758),
+ q(4748),
q(0),
],
q(nbl) => [
@@ -76414,155 +76412,155 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nbm) => [
- q(4759),
+ q(4749),
q(0),
],
q(nbn) => [
- q(4760),
+ q(4750),
q(0),
],
q(nbo) => [
- q(4761),
+ q(4751),
q(0),
],
q(nbp) => [
- q(4762),
+ q(4752),
q(0),
],
q(nbq) => [
- q(4763),
+ q(4753),
q(0),
],
q(nbr) => [
- q(4764),
+ q(4754),
q(0),
],
q(nbs) => [
- q(4765),
+ q(4755),
q(0),
],
q(nbt) => [
- q(4766),
+ q(4756),
q(0),
],
q(nbu) => [
- q(4767),
+ q(4757),
q(0),
],
q(nbv) => [
- q(4768),
+ q(4758),
q(0),
],
q(nbw) => [
- q(4769),
+ q(4759),
q(0),
],
q(nby) => [
- q(4770),
+ q(4760),
q(0),
],
q(nca) => [
- q(4771),
+ q(4761),
q(0),
],
q(ncb) => [
- q(4772),
+ q(4762),
q(0),
],
q(ncc) => [
- q(4773),
+ q(4763),
q(0),
],
q(ncd) => [
- q(4774),
+ q(4764),
q(0),
],
q(nce) => [
- q(4775),
+ q(4765),
q(0),
],
q(ncf) => [
- q(4776),
+ q(4766),
q(0),
],
q(ncg) => [
- q(4777),
+ q(4767),
q(0),
],
q(nch) => [
- q(4778),
+ q(4768),
q(0),
],
q(nci) => [
- q(4779),
+ q(4769),
q(0),
],
q(ncj) => [
- q(4780),
+ q(4770),
q(0),
],
q(nck) => [
- q(4781),
+ q(4771),
q(0),
],
q(ncl) => [
- q(4782),
+ q(4772),
q(0),
],
q(ncm) => [
- q(4783),
+ q(4773),
q(0),
],
q(ncn) => [
- q(4784),
+ q(4774),
q(0),
],
q(nco) => [
- q(4785),
+ q(4775),
q(0),
],
q(ncp) => [
- q(4786),
+ q(4776),
q(0),
],
q(ncr) => [
- q(4787),
+ q(4777),
q(0),
],
q(ncs) => [
- q(4788),
+ q(4778),
q(0),
],
q(nct) => [
- q(4789),
+ q(4779),
q(0),
],
q(ncu) => [
- q(4790),
+ q(4780),
q(0),
],
q(ncx) => [
- q(4791),
+ q(4781),
q(0),
],
q(ncz) => [
- q(4792),
+ q(4782),
q(0),
],
q(nda) => [
- q(4793),
+ q(4783),
q(0),
],
q(ndb) => [
- q(4794),
+ q(4784),
q(0),
],
q(ndc) => [
- q(4795),
+ q(4785),
q(0),
],
q(ndd) => [
- q(4796),
+ q(4786),
q(0),
],
q(nde) => [
@@ -76570,39 +76568,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ndf) => [
- q(4797),
+ q(4787),
q(0),
],
q(ndg) => [
- q(4798),
+ q(4788),
q(0),
],
q(ndh) => [
- q(4799),
+ q(4789),
q(0),
],
q(ndi) => [
- q(4800),
+ q(4790),
q(0),
],
q(ndj) => [
- q(4801),
+ q(4791),
q(0),
],
q(ndk) => [
- q(4802),
+ q(4792),
q(0),
],
q(ndl) => [
- q(4803),
+ q(4793),
q(0),
],
q(ndm) => [
- q(4804),
+ q(4794),
q(0),
],
q(ndn) => [
- q(4805),
+ q(4795),
q(0),
],
q(ndo) => [
@@ -76610,15 +76608,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ndp) => [
- q(4806),
+ q(4796),
q(0),
],
q(ndq) => [
- q(4807),
+ q(4797),
q(0),
],
q(ndr) => [
- q(4808),
+ q(4798),
q(0),
],
q(nds) => [
@@ -76626,87 +76624,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ndt) => [
- q(4809),
+ q(4799),
q(0),
],
q(ndu) => [
- q(4810),
+ q(4800),
q(0),
],
q(ndv) => [
- q(4811),
+ q(4801),
q(0),
],
q(ndw) => [
- q(4812),
+ q(4802),
q(0),
],
q(ndx) => [
- q(4813),
+ q(4803),
q(0),
],
q(ndy) => [
- q(4814),
+ q(4804),
q(0),
],
q(ndz) => [
- q(4815),
+ q(4805),
q(0),
],
q(nea) => [
- q(4816),
+ q(4806),
q(0),
],
q(neb) => [
- q(4817),
+ q(4807),
q(0),
],
q(nec) => [
- q(4818),
+ q(4808),
q(0),
],
q(ned) => [
- q(4819),
+ q(4809),
q(0),
],
q(nee) => [
- q(4820),
+ q(4810),
q(0),
],
q(nef) => [
- q(4821),
+ q(4811),
q(0),
],
q(neg) => [
- q(4822),
+ q(4812),
q(0),
],
q(neh) => [
- q(4823),
+ q(4813),
q(0),
],
q(nei) => [
- q(4824),
+ q(4814),
q(0),
],
q(nej) => [
- q(4825),
+ q(4815),
q(0),
],
q(nek) => [
- q(4826),
+ q(4816),
q(0),
],
q(nem) => [
- q(4827),
+ q(4817),
q(0),
],
q(nen) => [
- q(4828),
+ q(4818),
q(0),
],
q(neo) => [
- q(4829),
+ q(4819),
q(0),
],
q(nep) => [
@@ -76714,27 +76712,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(neq) => [
- q(4830),
+ q(4820),
q(0),
],
q(ner) => [
- q(4831),
+ q(4821),
q(0),
],
q(nes) => [
- q(4832),
+ q(4822),
q(0),
],
q(net) => [
- q(4833),
+ q(4823),
q(0),
],
q(neu) => [
- q(4834),
+ q(4824),
q(0),
],
q(nev) => [
- q(4835),
+ q(4825),
q(0),
],
q(new) => [
@@ -76742,55 +76740,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(nex) => [
- q(4836),
+ q(4826),
q(0),
],
q(ney) => [
- q(4837),
+ q(4827),
q(0),
],
q(nez) => [
- q(4838),
+ q(4828),
q(0),
],
q(nfa) => [
- q(4839),
+ q(4829),
q(0),
],
q(nfd) => [
- q(4840),
+ q(4830),
q(0),
],
q(nfl) => [
- q(4841),
+ q(4831),
q(0),
],
q(nfr) => [
- q(4842),
+ q(4832),
q(0),
],
q(nfu) => [
- q(4843),
+ q(4833),
q(0),
],
q(nga) => [
- q(4844),
+ q(4834),
q(0),
],
q(ngb) => [
- q(4845),
+ q(4835),
q(0),
],
q(ngc) => [
- q(4846),
+ q(4836),
q(0),
],
q(ngd) => [
- q(4847),
+ q(4837),
q(0),
],
q(nge) => [
- q(4848),
+ q(4838),
q(0),
],
q(ngf) => [
@@ -76798,175 +76796,175 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ngg) => [
- q(4849),
+ q(4839),
q(0),
],
q(ngh) => [
- q(4850),
+ q(4840),
q(0),
],
q(ngi) => [
- q(4851),
+ q(4841),
q(0),
],
q(ngj) => [
- q(4852),
+ q(4842),
q(0),
],
q(ngk) => [
- q(4853),
+ q(4843),
q(0),
],
q(ngl) => [
- q(4854),
+ q(4844),
q(0),
],
q(ngm) => [
- q(4855),
+ q(4845),
q(0),
],
q(ngn) => [
- q(4856),
+ q(4846),
q(0),
],
q(ngo) => [
- q(4857),
+ q(4847),
q(0),
],
q(ngp) => [
- q(4858),
+ q(4848),
q(0),
],
q(ngq) => [
- q(4859),
+ q(4849),
q(0),
],
q(ngr) => [
- q(4860),
+ q(4850),
q(0),
],
q(ngs) => [
- q(4861),
+ q(4851),
q(0),
],
q(ngt) => [
- q(4862),
+ q(4852),
q(0),
],
q(ngu) => [
- q(4863),
+ q(4853),
q(0),
],
q(ngv) => [
- q(4864),
+ q(4854),
q(0),
],
q(ngw) => [
- q(4865),
+ q(4855),
q(0),
],
q(ngx) => [
- q(4866),
+ q(4856),
q(0),
],
q(ngy) => [
- q(4867),
+ q(4857),
q(0),
],
q(ngz) => [
- q(4868),
+ q(4858),
q(0),
],
q(nha) => [
- q(4869),
+ q(4859),
q(0),
],
q(nhb) => [
- q(4870),
+ q(4860),
q(0),
],
q(nhc) => [
- q(4871),
+ q(4861),
q(0),
],
q(nhd) => [
- q(4872),
+ q(4862),
q(0),
],
q(nhe) => [
- q(4873),
+ q(4863),
q(0),
],
q(nhf) => [
- q(4874),
+ q(4864),
q(0),
],
q(nhg) => [
- q(4875),
+ q(4865),
q(0),
],
q(nhh) => [
- q(4876),
+ q(4866),
q(0),
],
q(nhi) => [
- q(4877),
+ q(4867),
q(0),
],
q(nhk) => [
- q(4878),
+ q(4868),
q(0),
],
q(nhm) => [
- q(4879),
+ q(4869),
q(0),
],
q(nhn) => [
- q(4880),
+ q(4870),
q(0),
],
q(nho) => [
- q(4881),
+ q(4871),
q(0),
],
q(nhp) => [
- q(4882),
+ q(4872),
q(0),
],
q(nhq) => [
- q(4883),
+ q(4873),
q(0),
],
q(nhr) => [
- q(4884),
+ q(4874),
q(0),
],
q(nht) => [
- q(4885),
+ q(4875),
q(0),
],
q(nhu) => [
- q(4886),
+ q(4876),
q(0),
],
q(nhv) => [
- q(4887),
+ q(4877),
q(0),
],
q(nhw) => [
- q(4888),
+ q(4878),
q(0),
],
q(nhx) => [
- q(4889),
+ q(4879),
q(0),
],
q(nhy) => [
- q(4890),
+ q(4880),
q(0),
],
q(nhz) => [
- q(4891),
+ q(4881),
q(0),
],
q(nia) => [
@@ -76974,7 +76972,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nib) => [
- q(4892),
+ q(4882),
q(0),
],
q(nic) => [
@@ -76982,67 +76980,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nid) => [
- q(4893),
+ q(4883),
q(0),
],
q(nie) => [
- q(4894),
+ q(4884),
q(0),
],
q(nif) => [
- q(4895),
+ q(4885),
q(0),
],
q(nig) => [
- q(4896),
+ q(4886),
q(0),
],
q(nih) => [
- q(4897),
+ q(4887),
q(0),
],
q(nii) => [
- q(4898),
+ q(4888),
q(0),
],
q(nij) => [
- q(4899),
+ q(4889),
q(0),
],
q(nik) => [
- q(4900),
+ q(4890),
q(0),
],
q(nil) => [
- q(4901),
+ q(4891),
q(0),
],
q(nim) => [
- q(4902),
+ q(4892),
q(0),
],
q(nin) => [
- q(4903),
+ q(4893),
q(0),
],
q(nio) => [
- q(4904),
+ q(4894),
q(0),
],
q(niq) => [
- q(4905),
+ q(4895),
q(0),
],
q(nir) => [
- q(4906),
+ q(4896),
q(0),
],
q(nis) => [
- q(4907),
+ q(4897),
q(0),
],
q(nit) => [
- q(4908),
+ q(4898),
q(0),
],
q(niu) => [
@@ -77050,411 +77048,411 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(niv) => [
- q(4909),
+ q(4899),
q(0),
],
q(niw) => [
- q(4910),
+ q(4900),
q(0),
],
q(nix) => [
- q(4911),
+ q(4901),
q(0),
],
q(niy) => [
- q(4912),
+ q(4902),
q(0),
],
q(niz) => [
- q(4913),
+ q(4903),
q(0),
],
q(nja) => [
- q(4914),
+ q(4904),
q(0),
],
q(njb) => [
- q(4915),
+ q(4905),
q(0),
],
q(njd) => [
- q(4916),
+ q(4906),
q(0),
],
q(njh) => [
- q(4917),
+ q(4907),
q(0),
],
q(nji) => [
- q(4918),
+ q(4908),
q(0),
],
q(njj) => [
- q(4919),
+ q(4909),
q(0),
],
q(njl) => [
- q(4920),
+ q(4910),
q(0),
],
q(njm) => [
- q(4921),
+ q(4911),
q(0),
],
q(njn) => [
- q(4922),
+ q(4912),
q(0),
],
q(njo) => [
- q(4923),
+ q(4913),
q(0),
],
q(njr) => [
- q(4924),
+ q(4914),
q(0),
],
q(njs) => [
- q(4925),
+ q(4915),
q(0),
],
q(njt) => [
- q(4926),
+ q(4916),
q(0),
],
q(nju) => [
- q(4927),
+ q(4917),
q(0),
],
q(njx) => [
- q(4928),
+ q(4918),
q(0),
],
q(njy) => [
- q(4929),
+ q(4919),
q(0),
],
q(njz) => [
- q(4930),
+ q(4920),
q(0),
],
q(nka) => [
- q(4931),
+ q(4921),
q(0),
],
q(nkb) => [
- q(4932),
+ q(4922),
q(0),
],
q(nkc) => [
- q(4933),
+ q(4923),
q(0),
],
q(nkd) => [
- q(4934),
+ q(4924),
q(0),
],
q(nke) => [
- q(4935),
+ q(4925),
q(0),
],
q(nkf) => [
- q(4936),
+ q(4926),
q(0),
],
q(nkg) => [
- q(4937),
+ q(4927),
q(0),
],
q(nkh) => [
- q(4938),
+ q(4928),
q(0),
],
q(nki) => [
- q(4939),
+ q(4929),
q(0),
],
q(nkj) => [
- q(4940),
+ q(4930),
q(0),
],
q(nkk) => [
- q(4941),
+ q(4931),
q(0),
],
q(nkm) => [
- q(4942),
+ q(4932),
q(0),
],
q(nkn) => [
- q(4943),
+ q(4933),
q(0),
],
q(nko) => [
- q(4944),
+ q(4934),
q(0),
],
q(nkp) => [
- q(4945),
+ q(4935),
q(0),
],
q(nkq) => [
- q(4946),
+ q(4936),
q(0),
],
q(nkr) => [
- q(4947),
+ q(4937),
q(0),
],
q(nks) => [
- q(4948),
+ q(4938),
q(0),
],
q(nkt) => [
- q(4949),
+ q(4939),
q(0),
],
q(nku) => [
- q(4950),
+ q(4940),
q(0),
],
q(nkv) => [
- q(4951),
+ q(4941),
q(0),
],
q(nkw) => [
- q(4952),
+ q(4942),
q(0),
],
q(nkx) => [
- q(4953),
+ q(4943),
q(0),
],
q(nkz) => [
- q(4954),
+ q(4944),
q(0),
],
q(nla) => [
- q(4955),
+ q(4945),
q(0),
],
q(nlc) => [
- q(4956),
+ q(4946),
q(0),
],
q(nle) => [
- q(4957),
+ q(4947),
q(0),
],
q(nlg) => [
- q(4958),
+ q(4948),
q(0),
],
q(nli) => [
- q(4959),
+ q(4949),
q(0),
],
q(nlj) => [
- q(4960),
+ q(4950),
q(0),
],
q(nlk) => [
- q(4961),
+ q(4951),
q(0),
],
q(nll) => [
- q(4962),
+ q(4952),
q(0),
],
q(nlo) => [
- q(4963),
+ q(4953),
q(0),
],
q(nlq) => [
- q(4964),
+ q(4954),
q(0),
],
q(nlu) => [
- q(4965),
+ q(4955),
q(0),
],
q(nlv) => [
- q(4966),
+ q(4956),
q(0),
],
q(nlw) => [
- q(4967),
+ q(4957),
q(0),
],
q(nlx) => [
- q(4968),
+ q(4958),
q(0),
],
q(nly) => [
- q(4969),
+ q(4959),
q(0),
],
q(nlz) => [
- q(4970),
+ q(4960),
q(0),
],
q(nma) => [
- q(4971),
+ q(4961),
q(0),
],
q(nmb) => [
- q(4972),
+ q(4962),
q(0),
],
q(nmc) => [
- q(4973),
+ q(4963),
q(0),
],
q(nmd) => [
- q(4974),
+ q(4964),
q(0),
],
q(nme) => [
- q(4975),
+ q(4965),
q(0),
],
q(nmf) => [
- q(4976),
+ q(4966),
q(0),
],
q(nmg) => [
- q(4977),
+ q(4967),
q(0),
],
q(nmh) => [
- q(4978),
+ q(4968),
q(0),
],
q(nmi) => [
- q(4979),
+ q(4969),
q(0),
],
q(nmj) => [
- q(4980),
+ q(4970),
q(0),
],
q(nmk) => [
- q(4981),
+ q(4971),
q(0),
],
q(nml) => [
- q(4982),
+ q(4972),
q(0),
],
q(nmm) => [
- q(4983),
+ q(4973),
q(0),
],
q(nmn) => [
- q(4984),
+ q(4974),
q(0),
],
q(nmo) => [
- q(4985),
+ q(4975),
q(0),
],
q(nmp) => [
- q(4986),
+ q(4976),
q(0),
],
q(nmq) => [
- q(4987),
+ q(4977),
q(0),
],
q(nmr) => [
- q(4988),
+ q(4978),
q(0),
],
q(nms) => [
- q(4989),
+ q(4979),
q(0),
],
q(nmt) => [
- q(4990),
+ q(4980),
q(0),
],
q(nmu) => [
- q(4991),
+ q(4981),
q(0),
],
q(nmv) => [
- q(4992),
+ q(4982),
q(0),
],
q(nmw) => [
- q(4993),
+ q(4983),
q(0),
],
q(nmx) => [
- q(4994),
+ q(4984),
q(0),
],
q(nmy) => [
- q(4995),
+ q(4985),
q(0),
],
q(nmz) => [
- q(4996),
+ q(4986),
q(0),
],
q(nna) => [
- q(4997),
+ q(4987),
q(0),
],
q(nnb) => [
- q(4998),
+ q(4988),
q(0),
],
q(nnc) => [
- q(4999),
+ q(4989),
q(0),
],
q(nnd) => [
- q(5000),
+ q(4990),
q(0),
],
q(nne) => [
- q(5001),
+ q(4991),
q(0),
],
q(nnf) => [
- q(5002),
+ q(4992),
q(0),
],
q(nng) => [
- q(5003),
+ q(4993),
q(0),
],
q(nnh) => [
- q(5004),
+ q(4994),
q(0),
],
q(nni) => [
- q(5005),
+ q(4995),
q(0),
],
q(nnj) => [
- q(5006),
+ q(4996),
q(0),
],
q(nnk) => [
- q(5007),
+ q(4997),
q(0),
],
q(nnl) => [
- q(5008),
+ q(4998),
q(0),
],
q(nnm) => [
- q(5009),
+ q(4999),
q(0),
],
q(nnn) => [
- q(5010),
+ q(5000),
q(0),
],
q(nno) => [
@@ -77462,51 +77460,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nnp) => [
- q(5011),
+ q(5001),
q(0),
],
q(nnq) => [
- q(5012),
+ q(5002),
q(0),
],
q(nnr) => [
- q(5013),
+ q(5003),
q(0),
],
q(nns) => [
- q(5014),
+ q(5004),
q(0),
],
q(nnt) => [
- q(5015),
+ q(5005),
q(0),
],
q(nnu) => [
- q(5016),
+ q(5006),
q(0),
],
q(nnv) => [
- q(5017),
+ q(5007),
q(0),
],
q(nnw) => [
- q(5018),
- q(0),
- ],
- q(nnx) => [
- q(5019),
+ q(5008),
q(0),
],
q(nny) => [
- q(5020),
+ q(5009),
q(0),
],
q(nnz) => [
- q(5021),
+ q(5010),
q(0),
],
q(noa) => [
- q(5022),
+ q(5011),
q(0),
],
q(nob) => [
@@ -77514,19 +77508,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(noc) => [
- q(5023),
+ q(5012),
q(0),
],
q(nod) => [
- q(5024),
+ q(5013),
q(0),
],
q(noe) => [
- q(5025),
+ q(5014),
q(0),
],
q(nof) => [
- q(5026),
+ q(5015),
q(0),
],
q(nog) => [
@@ -77534,27 +77528,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(noh) => [
- q(5027),
+ q(5016),
q(0),
],
q(noi) => [
- q(5028),
+ q(5017),
q(0),
],
q(noj) => [
- q(5029),
+ q(5018),
q(0),
],
q(nok) => [
- q(5030),
+ q(5019),
q(0),
],
q(nol) => [
- q(5031),
+ q(5020),
q(0),
],
q(nom) => [
- q(5032),
+ q(5021),
q(0),
],
q(non) => [
@@ -77562,11 +77556,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(nop) => [
- q(5033),
+ q(5022),
q(0),
],
q(noq) => [
- q(5034),
+ q(5023),
q(0),
],
q(nor) => [
@@ -77574,91 +77568,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nos) => [
- q(5035),
+ q(5024),
q(0),
],
q(not) => [
- q(5036),
+ q(5025),
q(0),
],
q(nou) => [
- q(5037),
+ q(5026),
q(0),
],
q(nov) => [
- q(5038),
+ q(5027),
q(0),
],
q(now) => [
- q(5039),
+ q(5028),
q(0),
],
q(noy) => [
- q(5040),
+ q(5029),
q(0),
],
q(noz) => [
- q(5041),
+ q(5030),
q(0),
],
q(npa) => [
- q(5042),
+ q(5031),
q(0),
],
q(npb) => [
- q(5043),
+ q(5032),
q(0),
],
q(npg) => [
- q(5044),
+ q(5033),
q(0),
],
q(nph) => [
- q(5045),
+ q(5034),
q(0),
],
q(npi) => [
- q(5046),
+ q(5035),
q(0),
],
q(npl) => [
- q(5047),
+ q(5036),
q(0),
],
q(npn) => [
- q(5048),
+ q(5037),
q(0),
],
q(npo) => [
- q(5049),
+ q(5038),
q(0),
],
q(nps) => [
- q(5050),
+ q(5039),
q(0),
],
q(npu) => [
- q(5051),
+ q(5040),
q(0),
],
q(npy) => [
- q(5052),
+ q(5041),
q(0),
],
q(nqg) => [
- q(5053),
+ q(5042),
q(0),
],
q(nqk) => [
- q(5054),
+ q(5043),
q(0),
],
q(nqm) => [
- q(5055),
+ q(5044),
q(0),
],
q(nqn) => [
- q(5056),
+ q(5045),
q(0),
],
q(nqo) => [
@@ -77666,123 +77660,127 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nqq) => [
- q(5057),
+ q(5046),
q(0),
],
q(nqy) => [
- q(5058),
+ q(5047),
q(0),
],
q(nra) => [
- q(5059),
+ q(5048),
q(0),
],
q(nrb) => [
- q(5060),
+ q(5049),
q(0),
],
q(nrc) => [
- q(5061),
+ q(5050),
q(0),
],
q(nre) => [
- q(5062),
+ q(5051),
+ q(0),
+ ],
+ q(nrf) => [
+ q(5052),
q(0),
],
q(nrg) => [
- q(5063),
+ q(5053),
q(0),
],
q(nri) => [
- q(5064),
+ q(5054),
q(0),
],
q(nrk) => [
- q(5065),
+ q(5055),
q(0),
],
q(nrl) => [
- q(5066),
+ q(5056),
q(0),
],
q(nrm) => [
- q(5067),
+ q(5057),
q(0),
],
q(nrn) => [
- q(5068),
+ q(5058),
q(0),
],
q(nrp) => [
- q(5069),
+ q(5059),
q(0),
],
q(nrr) => [
- q(5070),
+ q(5060),
q(0),
],
q(nrt) => [
- q(5071),
+ q(5061),
q(0),
],
q(nru) => [
- q(5072),
+ q(5062),
q(0),
],
q(nrx) => [
- q(5073),
+ q(5063),
q(0),
],
q(nrz) => [
- q(5074),
+ q(5064),
q(0),
],
q(nsa) => [
- q(5075),
+ q(5065),
q(0),
],
q(nsc) => [
- q(5076),
+ q(5066),
q(0),
],
q(nsd) => [
- q(5077),
+ q(5067),
q(0),
],
q(nse) => [
- q(5078),
+ q(5068),
q(0),
],
q(nsf) => [
- q(5079),
+ q(5069),
q(0),
],
q(nsg) => [
- q(5080),
+ q(5070),
q(0),
],
q(nsh) => [
- q(5081),
+ q(5071),
q(0),
],
q(nsi) => [
- q(5082),
+ q(5072),
q(0),
],
q(nsk) => [
- q(5083),
+ q(5073),
q(0),
],
q(nsl) => [
- q(5084),
+ q(5074),
q(0),
],
q(nsm) => [
- q(5085),
+ q(5075),
q(0),
],
q(nsn) => [
- q(5086),
+ q(5076),
q(0),
],
q(nso) => [
@@ -77790,111 +77788,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nsp) => [
- q(5087),
+ q(5077),
q(0),
],
q(nsq) => [
- q(5088),
+ q(5078),
q(0),
],
q(nsr) => [
- q(5089),
+ q(5079),
q(0),
],
q(nss) => [
- q(5090),
+ q(5080),
q(0),
],
q(nst) => [
- q(5091),
+ q(5081),
q(0),
],
q(nsu) => [
- q(5092),
+ q(5082),
q(0),
],
q(nsv) => [
- q(5093),
+ q(5083),
q(0),
],
q(nsw) => [
- q(5094),
+ q(5084),
q(0),
],
q(nsx) => [
- q(5095),
+ q(5085),
q(0),
],
q(nsy) => [
- q(5096),
+ q(5086),
q(0),
],
q(nsz) => [
- q(5097),
+ q(5087),
q(0),
],
q(nte) => [
- q(5098),
+ q(5088),
q(0),
],
q(ntg) => [
- q(5099),
+ q(5089),
q(0),
],
q(nti) => [
- q(5100),
+ q(5090),
q(0),
],
q(ntj) => [
- q(5101),
+ q(5091),
q(0),
],
q(ntk) => [
- q(5102),
+ q(5092),
q(0),
],
q(ntm) => [
- q(5103),
+ q(5093),
q(0),
],
q(nto) => [
- q(5104),
+ q(5094),
q(0),
],
q(ntp) => [
- q(5105),
+ q(5095),
q(0),
],
q(ntr) => [
- q(5106),
+ q(5096),
q(0),
],
q(nts) => [
- q(5107),
+ q(5097),
q(0),
],
q(ntu) => [
- q(5108),
+ q(5098),
q(0),
],
q(ntw) => [
- q(5109),
+ q(5099),
q(0),
],
q(ntx) => [
- q(5110),
+ q(5100),
q(0),
],
q(nty) => [
- q(5111),
+ q(5101),
q(0),
],
q(ntz) => [
- q(5112),
+ q(5102),
q(0),
],
q(nua) => [
- q(5113),
+ q(5103),
q(0),
],
q(nub) => [
@@ -77902,119 +77900,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nuc) => [
- q(5114),
+ q(5104),
q(0),
],
q(nud) => [
- q(5115),
+ q(5105),
q(0),
],
q(nue) => [
- q(5116),
+ q(5106),
q(0),
],
q(nuf) => [
- q(5117),
+ q(5107),
q(0),
],
q(nug) => [
- q(5118),
+ q(5108),
q(0),
],
q(nuh) => [
- q(5119),
+ q(5109),
q(0),
],
q(nui) => [
- q(5120),
+ q(5110),
q(0),
],
q(nuj) => [
- q(5121),
+ q(5111),
q(0),
],
q(nuk) => [
- q(5122),
+ q(5112),
q(0),
],
q(nul) => [
- q(5123),
+ q(5113),
q(0),
],
q(num) => [
- q(5124),
+ q(5114),
q(0),
],
q(nun) => [
- q(5125),
+ q(5115),
q(0),
],
q(nuo) => [
- q(5126),
+ q(5116),
q(0),
],
q(nup) => [
- q(5127),
+ q(5117),
q(0),
],
q(nuq) => [
- q(5128),
+ q(5118),
q(0),
],
q(nur) => [
- q(5129),
+ q(5119),
q(0),
],
q(nus) => [
- q(5130),
+ q(5120),
q(0),
],
q(nut) => [
- q(5131),
+ q(5121),
q(0),
],
q(nuu) => [
- q(5132),
+ q(5122),
q(0),
],
q(nuv) => [
- q(5133),
+ q(5123),
q(0),
],
q(nuw) => [
- q(5134),
+ q(5124),
q(0),
],
q(nux) => [
- q(5135),
+ q(5125),
q(0),
],
q(nuy) => [
- q(5136),
+ q(5126),
q(0),
],
q(nuz) => [
- q(5137),
+ q(5127),
q(0),
],
q(nvh) => [
- q(5138),
+ q(5128),
q(0),
],
q(nvm) => [
- q(5139),
+ q(5129),
q(0),
],
q(nvo) => [
- q(5140),
+ q(5130),
q(0),
],
q(nwa) => [
- q(5141),
+ q(5131),
q(0),
],
q(nwb) => [
- q(5142),
+ q(5132),
q(0),
],
q(nwc) => [
@@ -78022,87 +78020,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nwe) => [
- q(5143),
+ q(5133),
q(0),
],
q(nwg) => [
- q(5144),
+ q(5134),
q(0),
],
q(nwi) => [
- q(5145),
+ q(5135),
q(0),
],
q(nwm) => [
- q(5146),
+ q(5136),
q(0),
],
q(nwo) => [
- q(5147),
+ q(5137),
q(0),
],
q(nwr) => [
- q(5148),
+ q(5138),
q(0),
],
q(nwx) => [
- q(5149),
+ q(5139),
q(0),
],
q(nwy) => [
- q(5150),
+ q(5140),
q(0),
],
q(nxa) => [
- q(5151),
+ q(5141),
q(0),
],
q(nxd) => [
- q(5152),
+ q(5142),
q(0),
],
q(nxe) => [
- q(5153),
+ q(5143),
q(0),
],
q(nxg) => [
- q(5154),
+ q(5144),
q(0),
],
q(nxi) => [
- q(5155),
+ q(5145),
q(0),
],
q(nxk) => [
- q(5156),
+ q(5146),
q(0),
],
q(nxl) => [
- q(5157),
+ q(5147),
q(0),
],
q(nxm) => [
- q(5158),
+ q(5148),
q(0),
],
q(nxn) => [
- q(5159),
+ q(5149),
+ q(0),
+ ],
+ q(nxo) => [
+ q(5150),
q(0),
],
q(nxq) => [
- q(5160),
+ q(5151),
q(0),
],
q(nxr) => [
- q(5161),
+ q(5152),
q(0),
],
q(nxu) => [
- q(5162),
+ q(5153),
q(0),
],
q(nxx) => [
- q(5163),
+ q(5154),
q(0),
],
q(nya) => [
@@ -78110,47 +78112,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nyb) => [
- q(5164),
+ q(5155),
q(0),
],
q(nyc) => [
- q(5165),
+ q(5156),
q(0),
],
q(nyd) => [
- q(5166),
+ q(5157),
q(0),
],
q(nye) => [
- q(5167),
+ q(5158),
q(0),
],
q(nyf) => [
- q(5168),
+ q(5159),
q(0),
],
q(nyg) => [
- q(5169),
+ q(5160),
q(0),
],
q(nyh) => [
- q(5170),
+ q(5161),
q(0),
],
q(nyi) => [
- q(5171),
+ q(5162),
q(0),
],
q(nyj) => [
- q(5172),
+ q(5163),
q(0),
],
q(nyk) => [
- q(5173),
+ q(5164),
q(0),
],
q(nyl) => [
- q(5174),
+ q(5165),
q(0),
],
q(nym) => [
@@ -78166,51 +78168,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nyp) => [
- q(5175),
+ q(5166),
q(0),
],
q(nyq) => [
- q(5176),
+ q(5167),
q(0),
],
q(nyr) => [
- q(5177),
+ q(5168),
q(0),
],
q(nys) => [
- q(5178),
+ q(5169),
q(0),
],
q(nyt) => [
- q(5179),
+ q(5170),
q(0),
],
q(nyu) => [
- q(5180),
+ q(5171),
q(0),
],
q(nyv) => [
- q(5181),
+ q(5172),
q(0),
],
q(nyw) => [
- q(5182),
+ q(5173),
q(0),
],
q(nyx) => [
- q(5183),
+ q(5174),
q(0),
],
q(nyy) => [
- q(5184),
+ q(5175),
q(0),
],
q(nza) => [
- q(5185),
+ q(5176),
q(0),
],
q(nzb) => [
- q(5186),
+ q(5177),
q(0),
],
q(nzi) => [
@@ -78218,83 +78220,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nzk) => [
- q(5187),
+ q(5178),
q(0),
],
q(nzm) => [
- q(5188),
+ q(5179),
q(0),
],
q(nzs) => [
- q(5189),
+ q(5180),
q(0),
],
q(nzu) => [
- q(5190),
+ q(5181),
q(0),
],
q(nzy) => [
- q(5191),
+ q(5182),
q(0),
],
q(nzz) => [
- q(5192),
+ q(5183),
q(0),
],
q(oaa) => [
- q(5193),
+ q(5184),
q(0),
],
q(oac) => [
- q(5194),
+ q(5185),
q(0),
],
q(oar) => [
- q(5195),
+ q(5186),
q(0),
],
q(oav) => [
- q(5196),
+ q(5187),
q(0),
],
q(obi) => [
- q(5197),
+ q(5188),
q(0),
],
q(obk) => [
- q(5198),
+ q(5189),
q(0),
],
q(obl) => [
- q(5199),
+ q(5190),
q(0),
],
q(obm) => [
- q(5200),
+ q(5191),
q(0),
],
q(obo) => [
- q(5201),
+ q(5192),
q(0),
],
q(obr) => [
- q(5202),
+ q(5193),
q(0),
],
q(obt) => [
- q(5203),
+ q(5194),
q(0),
],
q(obu) => [
- q(5204),
+ q(5195),
q(0),
],
q(oca) => [
- q(5205),
+ q(5196),
q(0),
],
q(och) => [
- q(5206),
+ q(5197),
q(0),
],
q(oci) => [
@@ -78302,91 +78304,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(oco) => [
- q(5207),
+ q(5198),
q(0),
],
q(ocu) => [
- q(5208),
+ q(5199),
q(0),
],
q(oda) => [
- q(5209),
+ q(5200),
q(0),
],
q(odk) => [
- q(5210),
+ q(5201),
q(0),
],
q(odt) => [
- q(5211),
+ q(5202),
q(0),
],
q(odu) => [
- q(5212),
+ q(5203),
q(0),
],
q(ofo) => [
- q(5213),
+ q(5204),
q(0),
],
q(ofs) => [
- q(5214),
+ q(5205),
q(0),
],
q(ofu) => [
- q(5215),
+ q(5206),
q(0),
],
q(ogb) => [
- q(5216),
+ q(5207),
q(0),
],
q(ogc) => [
- q(5217),
+ q(5208),
q(0),
],
q(oge) => [
- q(5218),
+ q(5209),
q(0),
],
q(ogg) => [
- q(5219),
+ q(5210),
q(0),
],
q(ogo) => [
- q(5220),
+ q(5211),
q(0),
],
q(ogu) => [
- q(5221),
+ q(5212),
q(0),
],
q(oht) => [
- q(5222),
+ q(5213),
q(0),
],
q(ohu) => [
- q(5223),
+ q(5214),
q(0),
],
q(oia) => [
- q(5224),
+ q(5215),
q(0),
],
q(oin) => [
- q(5225),
+ q(5216),
q(0),
],
q(ojb) => [
- q(5226),
+ q(5217),
q(0),
],
q(ojc) => [
- q(5227),
+ q(5218),
q(0),
],
q(ojg) => [
- q(5228),
+ q(5219),
q(0),
],
q(oji) => [
@@ -78394,163 +78396,167 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ojp) => [
- q(5229),
+ q(5220),
q(0),
],
q(ojs) => [
- q(5230),
+ q(5221),
q(0),
],
q(ojv) => [
- q(5231),
+ q(5222),
q(0),
],
q(ojw) => [
- q(5232),
+ q(5223),
q(0),
],
q(oka) => [
- q(5233),
+ q(5224),
q(0),
],
q(okb) => [
- q(5234),
+ q(5225),
q(0),
],
q(okd) => [
- q(5235),
+ q(5226),
q(0),
],
q(oke) => [
- q(5236),
+ q(5227),
q(0),
],
q(okg) => [
- q(5237),
+ q(5228),
q(0),
],
q(okh) => [
- q(5238),
+ q(5229),
q(0),
],
q(oki) => [
- q(5239),
+ q(5230),
q(0),
],
q(okj) => [
- q(5240),
+ q(5231),
q(0),
],
q(okk) => [
- q(5241),
+ q(5232),
q(0),
],
q(okl) => [
- q(5242),
+ q(5233),
q(0),
],
q(okm) => [
- q(5243),
+ q(5234),
q(0),
],
q(okn) => [
- q(5244),
+ q(5235),
q(0),
],
q(oko) => [
- q(5245),
+ q(5236),
q(0),
],
q(okr) => [
- q(5246),
+ q(5237),
q(0),
],
q(oks) => [
- q(5247),
+ q(5238),
q(0),
],
q(oku) => [
- q(5248),
+ q(5239),
q(0),
],
q(okv) => [
- q(5249),
+ q(5240),
q(0),
],
q(okx) => [
- q(5250),
+ q(5241),
q(0),
],
q(ola) => [
- q(5251),
+ q(5242),
q(0),
],
q(old) => [
- q(5252),
+ q(5243),
q(0),
],
q(ole) => [
- q(5253),
+ q(5244),
q(0),
],
q(olk) => [
- q(5254),
+ q(5245),
q(0),
],
q(olm) => [
- q(5255),
+ q(5246),
q(0),
],
q(olo) => [
- q(5256),
+ q(5247),
q(0),
],
q(olr) => [
- q(5257),
+ q(5248),
+ q(0),
+ ],
+ q(olt) => [
+ q(5249),
q(0),
],
q(oma) => [
- q(5258),
+ q(5250),
q(0),
],
q(omb) => [
- q(5259),
+ q(5251),
q(0),
],
q(omc) => [
- q(5260),
+ q(5252),
q(0),
],
q(ome) => [
- q(5261),
+ q(5253),
q(0),
],
q(omg) => [
- q(5262),
+ q(5254),
q(0),
],
q(omi) => [
- q(5263),
+ q(5255),
q(0),
],
q(omk) => [
- q(5264),
+ q(5256),
q(0),
],
q(oml) => [
- q(5265),
+ q(5257),
q(0),
],
q(omn) => [
- q(5266),
+ q(5258),
q(0),
],
q(omo) => [
- q(5267),
+ q(5259),
q(0),
],
q(omp) => [
- q(5268),
+ q(5260),
q(0),
],
q(omq) => [
@@ -78558,15 +78564,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(omr) => [
- q(5269),
+ q(5261),
q(0),
],
q(omt) => [
- q(5270),
+ q(5262),
q(0),
],
q(omu) => [
- q(5271),
+ q(5263),
q(0),
],
q(omv) => [
@@ -78574,139 +78580,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(omw) => [
- q(5272),
+ q(5264),
q(0),
],
q(omx) => [
- q(5273),
+ q(5265),
q(0),
],
q(ona) => [
- q(5274),
+ q(5266),
q(0),
],
q(onb) => [
- q(5275),
+ q(5267),
q(0),
],
q(one) => [
- q(5276),
+ q(5268),
q(0),
],
q(ong) => [
- q(5277),
+ q(5269),
q(0),
],
q(oni) => [
- q(5278),
+ q(5270),
q(0),
],
q(onj) => [
- q(5279),
+ q(5271),
q(0),
],
q(onk) => [
- q(5280),
+ q(5272),
q(0),
],
q(onn) => [
- q(5281),
+ q(5273),
q(0),
],
q(ono) => [
- q(5282),
+ q(5274),
q(0),
],
q(onp) => [
- q(5283),
+ q(5275),
q(0),
],
q(onr) => [
- q(5284),
+ q(5276),
q(0),
],
q(ons) => [
- q(5285),
+ q(5277),
q(0),
],
q(ont) => [
- q(5286),
+ q(5278),
q(0),
],
q(onu) => [
- q(5287),
+ q(5279),
q(0),
],
q(onw) => [
- q(5288),
+ q(5280),
q(0),
],
q(onx) => [
- q(5289),
+ q(5281),
q(0),
],
q(ood) => [
- q(5290),
+ q(5282),
q(0),
],
q(oog) => [
- q(5291),
+ q(5283),
q(0),
],
q(oon) => [
- q(5292),
+ q(5284),
q(0),
],
q(oor) => [
- q(5293),
+ q(5285),
q(0),
],
q(oos) => [
- q(5294),
+ q(5286),
q(0),
],
q(opa) => [
- q(5295),
+ q(5287),
q(0),
],
q(opk) => [
- q(5296),
+ q(5288),
q(0),
],
q(opm) => [
- q(5297),
+ q(5289),
q(0),
],
q(opo) => [
- q(5298),
+ q(5290),
q(0),
],
q(opt) => [
- q(5299),
+ q(5291),
q(0),
],
q(opy) => [
- q(5300),
+ q(5292),
q(0),
],
q(ora) => [
- q(5301),
+ q(5293),
q(0),
],
q(orc) => [
- q(5302),
+ q(5294),
q(0),
],
q(ore) => [
- q(5303),
+ q(5295),
q(0),
],
q(org) => [
- q(5304),
+ q(5296),
q(0),
],
q(orh) => [
- q(5305),
+ q(5297),
q(0),
],
q(ori) => [
@@ -78718,47 +78724,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(orn) => [
- q(5306),
+ q(5298),
q(0),
],
q(oro) => [
- q(5307),
+ q(5299),
q(0),
],
q(orr) => [
- q(5308),
+ q(5300),
q(0),
],
q(ors) => [
- q(5309),
+ q(5301),
q(0),
],
q(ort) => [
- q(5310),
+ q(5302),
q(0),
],
q(oru) => [
- q(5311),
+ q(5303),
q(0),
],
q(orv) => [
- q(5312),
+ q(5304),
q(0),
],
q(orw) => [
- q(5313),
+ q(5305),
q(0),
],
q(orx) => [
- q(5314),
+ q(5306),
q(0),
],
q(ory) => [
- q(5315),
+ q(5307),
q(0),
],
q(orz) => [
- q(5316),
+ q(5308),
q(0),
],
q(osa) => [
@@ -78766,19 +78772,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(osc) => [
- q(5317),
+ q(5309),
q(0),
],
q(osi) => [
- q(5318),
+ q(5310),
q(0),
],
q(oso) => [
- q(5319),
+ q(5311),
q(0),
],
q(osp) => [
- q(5320),
+ q(5312),
q(0),
],
q(oss) => [
@@ -78786,15 +78792,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ost) => [
- q(5321),
+ q(5313),
q(0),
],
q(osu) => [
- q(5322),
+ q(5314),
q(0),
],
q(osx) => [
- q(5323),
+ q(5315),
q(0),
],
q(ota) => [
@@ -78802,35 +78808,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(otb) => [
- q(5324),
+ q(5316),
q(0),
],
q(otd) => [
- q(5325),
+ q(5317),
q(0),
],
q(ote) => [
- q(5326),
+ q(5318),
q(0),
],
q(oti) => [
- q(5327),
+ q(5319),
q(0),
],
q(otk) => [
- q(5328),
+ q(5320),
q(0),
],
q(otl) => [
- q(5329),
+ q(5321),
q(0),
],
q(otm) => [
- q(5330),
+ q(5322),
q(0),
],
q(otn) => [
- q(5331),
+ q(5323),
q(0),
],
q(oto) => [
@@ -78838,91 +78844,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(otq) => [
- q(5332),
+ q(5324),
q(0),
],
q(otr) => [
- q(5333),
+ q(5325),
q(0),
],
q(ots) => [
- q(5334),
+ q(5326),
q(0),
],
q(ott) => [
- q(5335),
+ q(5327),
q(0),
],
q(otu) => [
- q(5336),
+ q(5328),
q(0),
],
q(otw) => [
- q(5337),
+ q(5329),
q(0),
],
q(otx) => [
- q(5338),
+ q(5330),
q(0),
],
q(oty) => [
- q(5339),
+ q(5331),
q(0),
],
q(otz) => [
- q(5340),
+ q(5332),
q(0),
],
q(oua) => [
- q(5341),
+ q(5333),
q(0),
],
q(oub) => [
- q(5342),
+ q(5334),
q(0),
],
q(oue) => [
- q(5343),
+ q(5335),
q(0),
],
q(oui) => [
- q(5344),
+ q(5336),
q(0),
],
q(oum) => [
- q(5345),
- q(0),
- ],
- q(oun) => [
- q(5346),
+ q(5337),
q(0),
],
q(owi) => [
- q(5347),
+ q(5338),
q(0),
],
q(owl) => [
- q(5348),
+ q(5339),
q(0),
],
q(oyb) => [
- q(5349),
+ q(5340),
q(0),
],
q(oyd) => [
- q(5350),
+ q(5341),
q(0),
],
q(oym) => [
- q(5351),
+ q(5342),
q(0),
],
q(oyy) => [
- q(5352),
+ q(5343),
q(0),
],
q(ozm) => [
- q(5353),
+ q(5344),
q(0),
],
q(paa) => [
@@ -78930,23 +78932,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pab) => [
- q(5354),
+ q(5345),
q(0),
],
q(pac) => [
- q(5355),
+ q(5346),
q(0),
],
q(pad) => [
- q(5356),
+ q(5347),
q(0),
],
q(pae) => [
- q(5357),
+ q(5348),
q(0),
],
q(paf) => [
- q(5358),
+ q(5349),
q(0),
],
q(pag) => [
@@ -78954,15 +78956,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pah) => [
- q(5359),
+ q(5350),
q(0),
],
q(pai) => [
- q(5360),
+ q(5351),
q(0),
],
q(pak) => [
- q(5361),
+ q(5352),
q(0),
],
q(pal) => [
@@ -78978,7 +78980,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pao) => [
- q(5362),
+ q(5353),
q(0),
],
q(pap) => [
@@ -78986,19 +78988,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(paq) => [
- q(5363),
+ q(5354),
q(0),
],
q(par) => [
- q(5364),
+ q(5355),
q(0),
],
q(pas) => [
- q(5365),
+ q(5356),
q(0),
],
q(pat) => [
- q(5366),
+ q(5357),
q(0),
],
q(pau) => [
@@ -79006,231 +79008,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pav) => [
- q(5367),
+ q(5358),
q(0),
],
q(paw) => [
- q(5368),
+ q(5359),
q(0),
],
q(pax) => [
- q(5369),
+ q(5360),
q(0),
],
q(pay) => [
- q(5370),
+ q(5361),
q(0),
],
q(paz) => [
- q(5371),
+ q(5362),
q(0),
],
q(pbb) => [
- q(5372),
+ q(5363),
q(0),
],
q(pbc) => [
- q(5373),
+ q(5364),
q(0),
],
q(pbe) => [
- q(5374),
+ q(5365),
q(0),
],
q(pbf) => [
- q(5375),
+ q(5366),
q(0),
],
q(pbg) => [
- q(5376),
+ q(5367),
q(0),
],
q(pbh) => [
- q(5377),
+ q(5368),
q(0),
],
q(pbi) => [
- q(5378),
+ q(5369),
q(0),
],
q(pbl) => [
- q(5379),
+ q(5370),
q(0),
],
q(pbn) => [
- q(5380),
+ q(5371),
q(0),
],
q(pbo) => [
- q(5381),
+ q(5372),
q(0),
],
q(pbp) => [
- q(5382),
+ q(5373),
q(0),
],
q(pbr) => [
- q(5383),
+ q(5374),
q(0),
],
q(pbs) => [
- q(5384),
+ q(5375),
q(0),
],
q(pbt) => [
- q(5385),
+ q(5376),
q(0),
],
q(pbu) => [
- q(5386),
+ q(5377),
q(0),
],
q(pbv) => [
- q(5387),
+ q(5378),
q(0),
],
q(pby) => [
- q(5388),
+ q(5379),
q(0),
],
q(pca) => [
- q(5389),
+ q(5380),
q(0),
],
q(pcb) => [
- q(5390),
+ q(5381),
q(0),
],
q(pcc) => [
- q(5391),
+ q(5382),
q(0),
],
q(pcd) => [
- q(5392),
+ q(5383),
q(0),
],
q(pce) => [
- q(5393),
+ q(5384),
q(0),
],
q(pcf) => [
- q(5394),
+ q(5385),
q(0),
],
q(pcg) => [
- q(5395),
+ q(5386),
q(0),
],
q(pch) => [
- q(5396),
+ q(5387),
q(0),
],
q(pci) => [
- q(5397),
+ q(5388),
q(0),
],
q(pcj) => [
- q(5398),
+ q(5389),
q(0),
],
q(pck) => [
- q(5399),
+ q(5390),
q(0),
],
q(pcl) => [
- q(5400),
+ q(5391),
q(0),
],
q(pcm) => [
- q(5401),
+ q(5392),
q(0),
],
q(pcn) => [
- q(5402),
+ q(5393),
q(0),
],
q(pcp) => [
- q(5403),
+ q(5394),
q(0),
],
q(pcw) => [
- q(5404),
+ q(5395),
q(0),
],
q(pda) => [
- q(5405),
+ q(5396),
q(0),
],
q(pdc) => [
- q(5406),
+ q(5397),
q(0),
],
q(pdi) => [
- q(5407),
+ q(5398),
q(0),
],
q(pdn) => [
- q(5408),
+ q(5399),
q(0),
],
q(pdo) => [
- q(5409),
+ q(5400),
q(0),
],
q(pdt) => [
- q(5410),
+ q(5401),
q(0),
],
q(pdu) => [
- q(5411),
+ q(5402),
q(0),
],
q(pea) => [
- q(5412),
+ q(5403),
q(0),
],
q(peb) => [
- q(5413),
+ q(5404),
q(0),
],
q(ped) => [
- q(5414),
+ q(5405),
q(0),
],
q(pee) => [
- q(5415),
+ q(5406),
q(0),
],
q(pef) => [
- q(5416),
+ q(5407),
q(0),
],
q(peg) => [
- q(5417),
+ q(5408),
q(0),
],
q(peh) => [
- q(5418),
+ q(5409),
q(0),
],
q(pei) => [
- q(5419),
+ q(5410),
q(0),
],
q(pej) => [
- q(5420),
+ q(5411),
q(0),
],
q(pek) => [
- q(5421),
+ q(5412),
q(0),
],
q(pel) => [
- q(5422),
+ q(5413),
q(0),
],
q(pem) => [
- q(5423),
+ q(5414),
q(0),
],
q(peo) => [
@@ -79238,11 +79240,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(pep) => [
- q(5424),
+ q(5415),
q(0),
],
q(peq) => [
- q(5425),
+ q(5416),
q(0),
],
q(per) => [
@@ -79250,83 +79252,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pes) => [
- q(5426),
+ q(5417),
q(0),
],
q(pev) => [
- q(5427),
+ q(5418),
q(0),
],
q(pex) => [
- q(5428),
+ q(5419),
q(0),
],
q(pey) => [
- q(5429),
+ q(5420),
q(0),
],
q(pez) => [
- q(5430),
+ q(5421),
q(0),
],
q(pfa) => [
- q(5431),
+ q(5422),
q(0),
],
q(pfe) => [
- q(5432),
+ q(5423),
q(0),
],
q(pfl) => [
- q(5433),
+ q(5424),
q(0),
],
q(pga) => [
- q(5434),
+ q(5425),
+ q(0),
+ ],
+ q(pgd) => [
+ q(5426),
q(0),
],
q(pgg) => [
- q(5435),
+ q(5427),
q(0),
],
q(pgi) => [
- q(5436),
+ q(5428),
q(0),
],
q(pgk) => [
- q(5437),
+ q(5429),
q(0),
],
q(pgl) => [
- q(5438),
+ q(5430),
q(0),
],
q(pgn) => [
- q(5439),
+ q(5431),
q(0),
],
q(pgs) => [
- q(5440),
+ q(5432),
q(0),
],
q(pgu) => [
- q(5441),
+ q(5433),
q(0),
],
q(pha) => [
- q(5442),
+ q(5434),
q(0),
],
q(phd) => [
- q(5443),
+ q(5435),
q(0),
],
q(phg) => [
- q(5444),
+ q(5436),
q(0),
],
q(phh) => [
- q(5445),
+ q(5437),
q(0),
],
q(phi) => [
@@ -79334,15 +79340,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(phk) => [
- q(5446),
+ q(5438),
q(0),
],
q(phl) => [
- q(5447),
+ q(5439),
q(0),
],
q(phm) => [
- q(5448),
+ q(5440),
q(0),
],
q(phn) => [
@@ -79350,199 +79356,199 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pho) => [
- q(5449),
+ q(5441),
q(0),
],
q(phq) => [
- q(5450),
+ q(5442),
q(0),
],
q(phr) => [
- q(5451),
+ q(5443),
q(0),
],
q(pht) => [
- q(5452),
+ q(5444),
q(0),
],
q(phu) => [
- q(5453),
+ q(5445),
q(0),
],
q(phv) => [
- q(5454),
+ q(5446),
q(0),
],
q(phw) => [
- q(5455),
+ q(5447),
q(0),
],
q(pia) => [
- q(5456),
+ q(5448),
q(0),
],
q(pib) => [
- q(5457),
+ q(5449),
q(0),
],
q(pic) => [
- q(5458),
+ q(5450),
q(0),
],
q(pid) => [
- q(5459),
+ q(5451),
q(0),
],
q(pie) => [
- q(5460),
+ q(5452),
q(0),
],
q(pif) => [
- q(5461),
+ q(5453),
q(0),
],
q(pig) => [
- q(5462),
+ q(5454),
q(0),
],
q(pih) => [
- q(5463),
+ q(5455),
q(0),
],
q(pii) => [
- q(5464),
+ q(5456),
q(0),
],
q(pij) => [
- q(5465),
+ q(5457),
q(0),
],
q(pil) => [
- q(5466),
+ q(5458),
q(0),
],
q(pim) => [
- q(5467),
+ q(5459),
q(0),
],
q(pin) => [
- q(5468),
+ q(5460),
q(0),
],
q(pio) => [
- q(5469),
+ q(5461),
q(0),
],
q(pip) => [
- q(5470),
+ q(5462),
q(0),
],
q(pir) => [
- q(5471),
+ q(5463),
q(0),
],
q(pis) => [
- q(5472),
+ q(5464),
q(0),
],
q(pit) => [
- q(5473),
+ q(5465),
q(0),
],
q(piu) => [
- q(5474),
+ q(5466),
q(0),
],
q(piv) => [
- q(5475),
+ q(5467),
q(0),
],
q(piw) => [
- q(5476),
+ q(5468),
q(0),
],
q(pix) => [
- q(5477),
+ q(5469),
q(0),
],
q(piy) => [
- q(5478),
+ q(5470),
q(0),
],
q(piz) => [
- q(5479),
+ q(5471),
q(0),
],
q(pjt) => [
- q(5480),
+ q(5472),
q(0),
],
q(pka) => [
- q(5481),
+ q(5473),
q(0),
],
q(pkb) => [
- q(5482),
+ q(5474),
q(0),
],
q(pkc) => [
- q(5483),
+ q(5475),
q(0),
],
q(pkg) => [
- q(5484),
+ q(5476),
q(0),
],
q(pkh) => [
- q(5485),
+ q(5477),
q(0),
],
q(pkn) => [
- q(5486),
+ q(5478),
q(0),
],
q(pko) => [
- q(5487),
+ q(5479),
q(0),
],
q(pkp) => [
- q(5488),
+ q(5480),
q(0),
],
q(pkr) => [
- q(5489),
+ q(5481),
q(0),
],
q(pks) => [
- q(5490),
+ q(5482),
q(0),
],
q(pkt) => [
- q(5491),
+ q(5483),
q(0),
],
q(pku) => [
- q(5492),
+ q(5484),
q(0),
],
q(pla) => [
- q(5493),
+ q(5485),
q(0),
],
q(plb) => [
- q(5494),
+ q(5486),
q(0),
],
q(plc) => [
- q(5495),
+ q(5487),
q(0),
],
q(pld) => [
- q(5496),
+ q(5488),
q(0),
],
q(ple) => [
- q(5497),
+ q(5489),
q(0),
],
q(plf) => [
@@ -79550,11 +79556,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(plg) => [
- q(5498),
+ q(5490),
q(0),
],
q(plh) => [
- q(5499),
+ q(5491),
q(0),
],
q(pli) => [
@@ -79562,283 +79568,279 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(plj) => [
- q(5500),
+ q(5492),
q(0),
],
q(plk) => [
- q(5501),
+ q(5493),
q(0),
],
q(pll) => [
- q(5502),
+ q(5494),
q(0),
],
q(pln) => [
- q(5503),
+ q(5495),
q(0),
],
q(plo) => [
- q(5504),
+ q(5496),
q(0),
],
q(plp) => [
- q(5505),
+ q(5497),
q(0),
],
q(plq) => [
- q(5506),
+ q(5498),
q(0),
],
q(plr) => [
- q(5507),
+ q(5499),
q(0),
],
q(pls) => [
- q(5508),
+ q(5500),
q(0),
],
q(plt) => [
- q(5509),
+ q(5501),
q(0),
],
q(plu) => [
- q(5510),
+ q(5502),
q(0),
],
q(plv) => [
- q(5511),
+ q(5503),
q(0),
],
q(plw) => [
- q(5512),
+ q(5504),
q(0),
],
q(ply) => [
- q(5513),
+ q(5505),
q(0),
],
q(plz) => [
- q(5514),
+ q(5506),
q(0),
],
q(pma) => [
- q(5515),
+ q(5507),
q(0),
],
q(pmb) => [
- q(5516),
+ q(5508),
q(0),
],
q(pmc) => [
- q(5517),
+ q(5509),
q(0),
],
q(pmd) => [
- q(5518),
+ q(5510),
q(0),
],
q(pme) => [
- q(5519),
+ q(5511),
q(0),
],
q(pmf) => [
- q(5520),
+ q(5512),
q(0),
],
q(pmh) => [
- q(5521),
+ q(5513),
q(0),
],
q(pmi) => [
- q(5522),
+ q(5514),
q(0),
],
q(pmj) => [
- q(5523),
+ q(5515),
q(0),
],
q(pmk) => [
- q(5524),
+ q(5516),
q(0),
],
q(pml) => [
- q(5525),
+ q(5517),
q(0),
],
q(pmm) => [
- q(5526),
+ q(5518),
q(0),
],
q(pmn) => [
- q(5527),
+ q(5519),
q(0),
],
q(pmo) => [
- q(5528),
+ q(5520),
q(0),
],
q(pmq) => [
- q(5529),
+ q(5521),
q(0),
],
q(pmr) => [
- q(5530),
+ q(5522),
q(0),
],
q(pms) => [
- q(5531),
+ q(5523),
q(0),
],
q(pmt) => [
- q(5532),
- q(0),
- ],
- q(pmu) => [
- q(5533),
+ q(5524),
q(0),
],
q(pmw) => [
- q(5534),
+ q(5525),
q(0),
],
q(pmx) => [
- q(5535),
+ q(5526),
q(0),
],
q(pmy) => [
- q(5536),
+ q(5527),
q(0),
],
q(pmz) => [
- q(5537),
+ q(5528),
q(0),
],
q(pna) => [
- q(5538),
+ q(5529),
q(0),
],
q(pnb) => [
- q(5539),
+ q(5530),
q(0),
],
q(pnc) => [
- q(5540),
+ q(5531),
q(0),
],
q(pne) => [
- q(5541),
+ q(5532),
q(0),
],
q(png) => [
- q(5542),
+ q(5533),
q(0),
],
q(pnh) => [
- q(5543),
+ q(5534),
q(0),
],
q(pni) => [
- q(5544),
+ q(5535),
q(0),
],
q(pnj) => [
- q(5545),
+ q(5536),
q(0),
],
q(pnk) => [
- q(5546),
+ q(5537),
q(0),
],
q(pnl) => [
- q(5547),
+ q(5538),
q(0),
],
q(pnm) => [
- q(5548),
+ q(5539),
q(0),
],
q(pnn) => [
- q(5549),
+ q(5540),
q(0),
],
q(pno) => [
- q(5550),
+ q(5541),
q(0),
],
q(pnp) => [
- q(5551),
+ q(5542),
q(0),
],
q(pnq) => [
- q(5552),
+ q(5543),
q(0),
],
q(pnr) => [
- q(5553),
+ q(5544),
q(0),
],
q(pns) => [
- q(5554),
+ q(5545),
q(0),
],
q(pnt) => [
- q(5555),
+ q(5546),
q(0),
],
q(pnu) => [
- q(5556),
+ q(5547),
q(0),
],
q(pnv) => [
- q(5557),
+ q(5548),
q(0),
],
q(pnw) => [
- q(5558),
+ q(5549),
q(0),
],
q(pnx) => [
- q(5559),
+ q(5550),
q(0),
],
q(pny) => [
- q(5560),
+ q(5551),
q(0),
],
q(pnz) => [
- q(5561),
+ q(5552),
q(0),
],
q(poc) => [
- q(5562),
+ q(5553),
q(0),
],
q(pod) => [
- q(5563),
+ q(5554),
q(0),
],
q(poe) => [
- q(5564),
+ q(5555),
q(0),
],
q(pof) => [
- q(5565),
+ q(5556),
q(0),
],
q(pog) => [
- q(5566),
+ q(5557),
q(0),
],
q(poh) => [
- q(5567),
+ q(5558),
q(0),
],
q(poi) => [
- q(5568),
+ q(5559),
q(0),
],
q(pok) => [
- q(5569),
+ q(5560),
q(0),
],
q(pol) => [
@@ -79846,7 +79848,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pom) => [
- q(5570),
+ q(5561),
q(0),
],
q(pon) => [
@@ -79854,15 +79856,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(poo) => [
- q(5571),
+ q(5562),
q(0),
],
q(pop) => [
- q(5572),
+ q(5563),
q(0),
],
q(poq) => [
- q(5573),
+ q(5564),
q(0),
],
q(por) => [
@@ -79870,27 +79872,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pos) => [
- q(5574),
+ q(5565),
q(0),
],
q(pot) => [
- q(5575),
+ q(5566),
q(0),
],
q(pov) => [
- q(5576),
+ q(5567),
q(0),
],
q(pow) => [
- q(5577),
+ q(5568),
q(0),
],
q(pox) => [
- q(5578),
+ q(5569),
q(0),
],
q(poy) => [
- q(5579),
+ q(5570),
q(0),
],
q(poz) => [
@@ -79898,59 +79900,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ppa) => [
- q(5580),
+ q(5571),
q(0),
],
q(ppe) => [
- q(5581),
+ q(5572),
q(0),
],
q(ppi) => [
- q(5582),
+ q(5573),
q(0),
],
q(ppk) => [
- q(5583),
+ q(5574),
q(0),
],
q(ppl) => [
- q(5584),
+ q(5575),
q(0),
],
q(ppm) => [
- q(5585),
+ q(5576),
q(0),
],
q(ppn) => [
- q(5586),
+ q(5577),
q(0),
],
q(ppo) => [
- q(5587),
+ q(5578),
q(0),
],
q(ppp) => [
- q(5588),
+ q(5579),
q(0),
],
q(ppq) => [
- q(5589),
+ q(5580),
q(0),
],
q(pps) => [
- q(5590),
+ q(5581),
q(0),
],
q(ppt) => [
- q(5591),
+ q(5582),
q(0),
],
q(ppu) => [
- q(5592),
+ q(5583),
q(0),
],
q(pqa) => [
- q(5593),
+ q(5584),
q(0),
],
q(pqe) => [
@@ -79958,7 +79960,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pqm) => [
- q(5594),
+ q(5585),
q(0),
],
q(pqw) => [
@@ -79970,51 +79972,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(prb) => [
- q(5595),
+ q(5586),
q(0),
],
q(prc) => [
- q(5596),
+ q(5587),
q(0),
],
q(prd) => [
- q(5597),
+ q(5588),
q(0),
],
q(pre) => [
- q(5598),
+ q(5589),
q(0),
],
q(prf) => [
- q(5599),
+ q(5590),
q(0),
],
q(prg) => [
- q(5600),
+ q(5591),
q(0),
],
q(prh) => [
- q(5601),
+ q(5592),
q(0),
],
q(pri) => [
- q(5602),
+ q(5593),
q(0),
],
q(prk) => [
- q(5603),
+ q(5594),
q(0),
],
q(prl) => [
- q(5604),
+ q(5595),
q(0),
],
q(prm) => [
- q(5605),
+ q(5596),
q(0),
],
q(prn) => [
- q(5606),
+ q(5597),
q(0),
],
q(pro) => [
@@ -80022,227 +80024,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(prp) => [
- q(5607),
+ q(5598),
q(0),
],
q(prq) => [
- q(5608),
+ q(5599),
q(0),
],
q(prr) => [
- q(5609),
+ q(5600),
q(0),
],
q(prs) => [
- q(5610),
+ q(5601),
q(0),
],
q(prt) => [
- q(5611),
+ q(5602),
q(0),
],
q(pru) => [
- q(5612),
+ q(5603),
q(0),
],
q(prw) => [
- q(5613),
+ q(5604),
q(0),
],
q(prx) => [
- q(5614),
+ q(5605),
q(0),
],
q(pry) => [
- q(5615),
+ q(5606),
q(0),
],
q(prz) => [
- q(5616),
+ q(5607),
q(0),
],
q(psa) => [
- q(5617),
+ q(5608),
q(0),
],
q(psc) => [
- q(5618),
+ q(5609),
q(0),
],
q(psd) => [
- q(5619),
+ q(5610),
q(0),
],
q(pse) => [
- q(5620),
+ q(5611),
q(0),
],
q(psg) => [
- q(5621),
+ q(5612),
q(0),
],
q(psh) => [
- q(5622),
+ q(5613),
q(0),
],
q(psi) => [
- q(5623),
+ q(5614),
q(0),
],
q(psl) => [
- q(5624),
+ q(5615),
q(0),
],
q(psm) => [
- q(5625),
+ q(5616),
q(0),
],
q(psn) => [
- q(5626),
+ q(5617),
q(0),
],
q(pso) => [
- q(5627),
+ q(5618),
q(0),
],
q(psp) => [
- q(5628),
+ q(5619),
q(0),
],
q(psq) => [
- q(5629),
+ q(5620),
q(0),
],
q(psr) => [
- q(5630),
+ q(5621),
q(0),
],
q(pss) => [
- q(5631),
+ q(5622),
q(0),
],
q(pst) => [
- q(5632),
+ q(5623),
q(0),
],
q(psu) => [
- q(5633),
+ q(5624),
q(0),
],
q(psw) => [
- q(5634),
+ q(5625),
q(0),
],
q(psy) => [
- q(5635),
+ q(5626),
q(0),
],
q(pta) => [
- q(5636),
+ q(5627),
q(0),
],
q(pth) => [
- q(5637),
+ q(5628),
q(0),
],
q(pti) => [
- q(5638),
+ q(5629),
q(0),
],
q(ptn) => [
- q(5639),
+ q(5630),
q(0),
],
q(pto) => [
- q(5640),
+ q(5631),
q(0),
],
q(ptp) => [
- q(5641),
+ q(5632),
+ q(0),
+ ],
+ q(ptq) => [
+ q(5633),
q(0),
],
q(ptr) => [
- q(5642),
+ q(5634),
q(0),
],
q(ptt) => [
- q(5643),
+ q(5635),
q(0),
],
q(ptu) => [
- q(5644),
+ q(5636),
q(0),
],
q(ptv) => [
- q(5645),
+ q(5637),
q(0),
],
q(ptw) => [
- q(5646),
+ q(5638),
q(0),
],
q(pty) => [
- q(5647),
+ q(5639),
q(0),
],
q(pua) => [
- q(5648),
+ q(5640),
q(0),
],
q(pub) => [
- q(5649),
+ q(5641),
q(0),
],
q(puc) => [
- q(5650),
+ q(5642),
q(0),
],
q(pud) => [
- q(5651),
+ q(5643),
q(0),
],
q(pue) => [
- q(5652),
+ q(5644),
q(0),
],
q(puf) => [
- q(5653),
+ q(5645),
q(0),
],
q(pug) => [
- q(5654),
+ q(5646),
q(0),
],
q(pui) => [
- q(5655),
+ q(5647),
q(0),
],
q(puj) => [
- q(5656),
+ q(5648),
q(0),
],
q(puk) => [
- q(5657),
+ q(5649),
q(0),
],
q(pum) => [
- q(5658),
+ q(5650),
q(0),
],
q(puo) => [
- q(5659),
+ q(5651),
q(0),
],
q(pup) => [
- q(5660),
+ q(5652),
q(0),
],
q(puq) => [
- q(5661),
+ q(5653),
q(0),
],
q(pur) => [
- q(5662),
+ q(5654),
q(0),
],
q(pus) => [
@@ -80250,99 +80256,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(put) => [
- q(5663),
+ q(5655),
q(0),
],
q(puu) => [
- q(5664),
+ q(5656),
q(0),
],
q(puw) => [
- q(5665),
+ q(5657),
q(0),
],
q(pux) => [
- q(5666),
+ q(5658),
q(0),
],
q(puy) => [
- q(5667),
- q(0),
- ],
- q(puz) => [
- q(5668),
+ q(5659),
q(0),
],
q(pwa) => [
- q(5669),
+ q(5660),
q(0),
],
q(pwb) => [
- q(5670),
+ q(5661),
q(0),
],
q(pwg) => [
- q(5671),
+ q(5662),
q(0),
],
q(pwi) => [
- q(5672),
+ q(5663),
q(0),
],
q(pwm) => [
- q(5673),
+ q(5664),
q(0),
],
q(pwn) => [
- q(5674),
+ q(5665),
q(0),
],
q(pwo) => [
- q(5675),
+ q(5666),
q(0),
],
q(pwr) => [
- q(5676),
+ q(5667),
q(0),
],
q(pww) => [
- q(5677),
+ q(5668),
q(0),
],
q(pxm) => [
- q(5678),
+ q(5669),
q(0),
],
q(pye) => [
- q(5679),
+ q(5670),
q(0),
],
q(pym) => [
- q(5680),
+ q(5671),
q(0),
],
q(pyn) => [
- q(5681),
+ q(5672),
q(0),
],
q(pys) => [
- q(5682),
+ q(5673),
q(0),
],
q(pyu) => [
- q(5683),
+ q(5674),
q(0),
],
q(pyx) => [
- q(5684),
+ q(5675),
q(0),
],
q(pyy) => [
- q(5685),
+ q(5676),
q(0),
],
q(pzn) => [
- q(5686),
+ q(5677),
q(0),
],
q(qtz) => [
@@ -80350,19 +80352,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(qua) => [
- q(5687),
+ q(5678),
q(0),
],
q(qub) => [
- q(5688),
+ q(5679),
q(0),
],
q(quc) => [
- q(5689),
+ q(5680),
q(0),
],
q(qud) => [
- q(5690),
+ q(5681),
q(0),
],
q(que) => [
@@ -80370,139 +80372,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(quf) => [
- q(5691),
+ q(5682),
q(0),
],
q(qug) => [
- q(5692),
+ q(5683),
q(0),
],
q(quh) => [
- q(5693),
+ q(5684),
q(0),
],
q(qui) => [
- q(5694),
+ q(5685),
q(0),
],
q(quk) => [
- q(5695),
+ q(5686),
q(0),
],
q(qul) => [
- q(5696),
+ q(5687),
q(0),
],
q(qum) => [
- q(5697),
+ q(5688),
q(0),
],
q(qun) => [
- q(5698),
+ q(5689),
q(0),
],
q(qup) => [
- q(5699),
+ q(5690),
q(0),
],
q(quq) => [
- q(5700),
+ q(5691),
q(0),
],
q(qur) => [
- q(5701),
+ q(5692),
q(0),
],
q(qus) => [
- q(5702),
+ q(5693),
q(0),
],
q(quv) => [
- q(5703),
+ q(5694),
q(0),
],
q(quw) => [
- q(5704),
+ q(5695),
q(0),
],
q(qux) => [
- q(5705),
+ q(5696),
q(0),
],
q(quy) => [
- q(5706),
+ q(5697),
q(0),
],
q(quz) => [
- q(5707),
+ q(5698),
q(0),
],
q(qva) => [
- q(5708),
+ q(5699),
q(0),
],
q(qvc) => [
- q(5709),
+ q(5700),
q(0),
],
q(qve) => [
- q(5710),
+ q(5701),
q(0),
],
q(qvh) => [
- q(5711),
+ q(5702),
q(0),
],
q(qvi) => [
- q(5712),
+ q(5703),
q(0),
],
q(qvj) => [
- q(5713),
+ q(5704),
q(0),
],
q(qvl) => [
- q(5714),
+ q(5705),
q(0),
],
q(qvm) => [
- q(5715),
+ q(5706),
q(0),
],
q(qvn) => [
- q(5716),
+ q(5707),
q(0),
],
q(qvo) => [
- q(5717),
+ q(5708),
q(0),
],
q(qvp) => [
- q(5718),
+ q(5709),
q(0),
],
q(qvs) => [
- q(5719),
+ q(5710),
q(0),
],
q(qvw) => [
- q(5720),
+ q(5711),
q(0),
],
q(qvy) => [
- q(5721),
+ q(5712),
q(0),
],
q(qvz) => [
- q(5722),
+ q(5713),
q(0),
],
q(qwa) => [
- q(5723),
+ q(5714),
q(0),
],
q(qwc) => [
- q(5724),
+ q(5715),
q(0),
],
q(qwe) => [
@@ -80510,111 +80512,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(qwh) => [
- q(5725),
+ q(5716),
q(0),
],
q(qwm) => [
- q(5726),
+ q(5717),
q(0),
],
q(qws) => [
- q(5727),
+ q(5718),
q(0),
],
q(qwt) => [
- q(5728),
+ q(5719),
q(0),
],
q(qxa) => [
- q(5729),
+ q(5720),
q(0),
],
q(qxc) => [
- q(5730),
+ q(5721),
q(0),
],
q(qxh) => [
- q(5731),
+ q(5722),
q(0),
],
q(qxl) => [
- q(5732),
+ q(5723),
q(0),
],
q(qxn) => [
- q(5733),
+ q(5724),
q(0),
],
q(qxo) => [
- q(5734),
+ q(5725),
q(0),
],
q(qxp) => [
- q(5735),
+ q(5726),
q(0),
],
q(qxq) => [
- q(5736),
+ q(5727),
q(0),
],
q(qxr) => [
- q(5737),
+ q(5728),
q(0),
],
q(qxs) => [
- q(5738),
+ q(5729),
q(0),
],
q(qxt) => [
- q(5739),
+ q(5730),
q(0),
],
q(qxu) => [
- q(5740),
+ q(5731),
q(0),
],
q(qxw) => [
- q(5741),
+ q(5732),
q(0),
],
q(qya) => [
- q(5742),
+ q(5733),
q(0),
],
q(qyp) => [
- q(5743),
+ q(5734),
q(0),
],
q(raa) => [
- q(5744),
+ q(5735),
q(0),
],
q(rab) => [
- q(5745),
+ q(5736),
q(0),
],
q(rac) => [
- q(5746),
+ q(5737),
q(0),
],
q(rad) => [
- q(5747),
+ q(5738),
q(0),
],
q(raf) => [
- q(5748),
+ q(5739),
q(0),
],
q(rag) => [
- q(5749),
+ q(5740),
q(0),
],
q(rah) => [
- q(5750),
+ q(5741),
q(0),
],
q(rai) => [
- q(5751),
+ q(5742),
q(0),
],
q(raj) => [
@@ -80622,23 +80624,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(rak) => [
- q(5752),
+ q(5743),
q(0),
],
q(ral) => [
- q(5753),
+ q(5744),
q(0),
],
q(ram) => [
- q(5754),
+ q(5745),
q(0),
],
q(ran) => [
- q(5755),
+ q(5746),
q(0),
],
q(rao) => [
- q(5756),
+ q(5747),
q(0),
],
q(rap) => [
@@ -80646,7 +80648,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(raq) => [
- q(5757),
+ q(5748),
q(0),
],
q(rar) => [
@@ -80654,351 +80656,351 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ras) => [
- q(5758),
+ q(5749),
q(0),
],
q(rat) => [
- q(5759),
+ q(5750),
q(0),
],
q(rau) => [
- q(5760),
+ q(5751),
q(0),
],
q(rav) => [
- q(5761),
+ q(5752),
q(0),
],
q(raw) => [
- q(5762),
+ q(5753),
q(0),
],
q(rax) => [
- q(5763),
+ q(5754),
q(0),
],
q(ray) => [
- q(5764),
+ q(5755),
q(0),
],
q(raz) => [
- q(5765),
+ q(5756),
q(0),
],
q(rbb) => [
- q(5766),
+ q(5757),
q(0),
],
q(rbk) => [
- q(5767),
+ q(5758),
q(0),
],
q(rbl) => [
- q(5768),
+ q(5759),
q(0),
],
q(rbp) => [
- q(5769),
+ q(5760),
q(0),
],
q(rcf) => [
- q(5770),
+ q(5761),
q(0),
],
q(rdb) => [
- q(5771),
+ q(5762),
q(0),
],
q(rea) => [
- q(5772),
+ q(5763),
q(0),
],
q(reb) => [
- q(5773),
+ q(5764),
q(0),
],
q(ree) => [
- q(5774),
+ q(5765),
q(0),
],
q(reg) => [
- q(5775),
+ q(5766),
q(0),
],
q(rei) => [
- q(5776),
+ q(5767),
q(0),
],
q(rej) => [
- q(5777),
+ q(5768),
q(0),
],
q(rel) => [
- q(5778),
+ q(5769),
q(0),
],
q(rem) => [
- q(5779),
+ q(5770),
q(0),
],
q(ren) => [
- q(5780),
+ q(5771),
q(0),
],
q(rer) => [
- q(5781),
+ q(5772),
q(0),
],
q(res) => [
- q(5782),
+ q(5773),
q(0),
],
q(ret) => [
- q(5783),
+ q(5774),
q(0),
],
q(rey) => [
- q(5784),
+ q(5775),
q(0),
],
q(rga) => [
- q(5785),
+ q(5776),
q(0),
],
q(rge) => [
- q(5786),
+ q(5777),
q(0),
],
q(rgk) => [
- q(5787),
+ q(5778),
q(0),
],
q(rgn) => [
- q(5788),
+ q(5779),
q(0),
],
q(rgr) => [
- q(5789),
+ q(5780),
q(0),
],
q(rgs) => [
- q(5790),
+ q(5781),
q(0),
],
q(rgu) => [
- q(5791),
+ q(5782),
q(0),
],
q(rhg) => [
- q(5792),
+ q(5783),
q(0),
],
q(rhp) => [
- q(5793),
+ q(5784),
q(0),
],
q(ria) => [
- q(5794),
+ q(5785),
q(0),
],
q(rie) => [
- q(5795),
+ q(5786),
q(0),
],
q(rif) => [
- q(5796),
+ q(5787),
q(0),
],
q(ril) => [
- q(5797),
+ q(5788),
q(0),
],
q(rim) => [
- q(5798),
+ q(5789),
q(0),
],
q(rin) => [
- q(5799),
+ q(5790),
q(0),
],
q(rir) => [
- q(5800),
+ q(5791),
q(0),
],
q(rit) => [
- q(5801),
+ q(5792),
q(0),
],
q(riu) => [
- q(5802),
+ q(5793),
q(0),
],
q(rjg) => [
- q(5803),
+ q(5794),
q(0),
],
q(rji) => [
- q(5804),
+ q(5795),
q(0),
],
q(rjs) => [
- q(5805),
+ q(5796),
q(0),
],
q(rka) => [
- q(5806),
+ q(5797),
q(0),
],
q(rkb) => [
- q(5807),
+ q(5798),
q(0),
],
q(rkh) => [
- q(5808),
+ q(5799),
q(0),
],
q(rki) => [
- q(5809),
+ q(5800),
q(0),
],
q(rkm) => [
- q(5810),
+ q(5801),
q(0),
],
q(rkt) => [
- q(5811),
+ q(5802),
q(0),
],
q(rkw) => [
- q(5812),
+ q(5803),
q(0),
],
q(rma) => [
- q(5813),
+ q(5804),
q(0),
],
q(rmb) => [
- q(5814),
+ q(5805),
q(0),
],
q(rmc) => [
- q(5815),
+ q(5806),
q(0),
],
q(rmd) => [
- q(5816),
+ q(5807),
q(0),
],
q(rme) => [
- q(5817),
+ q(5808),
q(0),
],
q(rmf) => [
- q(5818),
+ q(5809),
q(0),
],
q(rmg) => [
- q(5819),
+ q(5810),
q(0),
],
q(rmh) => [
- q(5820),
+ q(5811),
q(0),
],
q(rmi) => [
- q(5821),
+ q(5812),
q(0),
],
q(rmk) => [
- q(5822),
+ q(5813),
q(0),
],
q(rml) => [
- q(5823),
+ q(5814),
q(0),
],
q(rmm) => [
- q(5824),
+ q(5815),
q(0),
],
q(rmn) => [
- q(5825),
+ q(5816),
q(0),
],
q(rmo) => [
- q(5826),
+ q(5817),
q(0),
],
q(rmp) => [
- q(5827),
+ q(5818),
q(0),
],
q(rmq) => [
- q(5828),
+ q(5819),
q(0),
],
q(rms) => [
- q(5829),
+ q(5820),
q(0),
],
q(rmt) => [
- q(5830),
+ q(5821),
q(0),
],
q(rmu) => [
- q(5831),
+ q(5822),
q(0),
],
q(rmv) => [
- q(5832),
+ q(5823),
q(0),
],
q(rmw) => [
- q(5833),
+ q(5824),
q(0),
],
q(rmx) => [
- q(5834),
+ q(5825),
q(0),
],
q(rmy) => [
- q(5835),
+ q(5826),
q(0),
],
q(rmz) => [
- q(5836),
+ q(5827),
q(0),
],
q(rna) => [
- q(5837),
+ q(5828),
q(0),
],
q(rnd) => [
- q(5838),
+ q(5829),
q(0),
],
q(rng) => [
- q(5839),
+ q(5830),
q(0),
],
q(rnl) => [
- q(5840),
+ q(5831),
q(0),
],
q(rnn) => [
- q(5841),
+ q(5832),
q(0),
],
q(rnp) => [
- q(5842),
+ q(5833),
q(0),
],
q(rnr) => [
- q(5843),
+ q(5834),
q(0),
],
q(rnw) => [
- q(5844),
+ q(5835),
q(0),
],
q(roa) => [
@@ -81006,27 +81008,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(rob) => [
- q(5845),
+ q(5836),
q(0),
],
q(roc) => [
- q(5846),
+ q(5837),
q(0),
],
q(rod) => [
- q(5847),
+ q(5838),
q(0),
],
q(roe) => [
- q(5848),
+ q(5839),
q(0),
],
q(rof) => [
- q(5849),
+ q(5840),
q(0),
],
q(rog) => [
- q(5850),
+ q(5841),
q(0),
],
q(roh) => [
@@ -81034,7 +81036,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(rol) => [
- q(5851),
+ q(5842),
q(0),
],
q(rom) => [
@@ -81042,103 +81044,107 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(roo) => [
- q(5852),
+ q(5843),
q(0),
],
q(rop) => [
- q(5853),
+ q(5844),
q(0),
],
q(ror) => [
- q(5854),
+ q(5845),
q(0),
],
q(rou) => [
- q(5855),
+ q(5846),
q(0),
],
q(row) => [
- q(5856),
+ q(5847),
q(0),
],
q(rpn) => [
- q(5857),
+ q(5848),
q(0),
],
q(rpt) => [
- q(5858),
+ q(5849),
q(0),
],
q(rri) => [
- q(5859),
+ q(5850),
q(0),
],
q(rro) => [
- q(5860),
+ q(5851),
q(0),
],
q(rrt) => [
- q(5861),
+ q(5852),
q(0),
],
q(rsb) => [
- q(5862),
+ q(5853),
q(0),
],
q(rsi) => [
- q(5863),
+ q(5854),
q(0),
],
q(rsl) => [
- q(5864),
+ q(5855),
q(0),
],
q(rtc) => [
- q(5865),
+ q(5856),
q(0),
],
q(rth) => [
- q(5866),
+ q(5857),
q(0),
],
q(rtm) => [
- q(5867),
+ q(5858),
+ q(0),
+ ],
+ q(rts) => [
+ q(5859),
q(0),
],
q(rtw) => [
- q(5868),
+ q(5860),
q(0),
],
q(rub) => [
- q(5869),
+ q(5861),
q(0),
],
q(ruc) => [
- q(5870),
+ q(5862),
q(0),
],
q(rue) => [
- q(5871),
+ q(5863),
q(0),
],
q(ruf) => [
- q(5872),
+ q(5864),
q(0),
],
q(rug) => [
- q(5873),
+ q(5865),
q(0),
],
q(ruh) => [
- q(5874),
+ q(5866),
q(0),
],
q(rui) => [
- q(5875),
+ q(5867),
q(0),
],
q(ruk) => [
- q(5876),
+ q(5868),
q(0),
],
q(rum) => [
@@ -81150,7 +81156,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ruo) => [
- q(5877),
+ q(5869),
q(0),
],
q(rup) => [
@@ -81158,7 +81164,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(2),
],
q(ruq) => [
- q(5878),
+ q(5870),
q(0),
],
q(rus) => [
@@ -81166,71 +81172,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(rut) => [
- q(5879),
+ q(5871),
q(0),
],
q(ruu) => [
- q(5880),
+ q(5872),
q(0),
],
q(ruy) => [
- q(5881),
+ q(5873),
q(0),
],
q(ruz) => [
- q(5882),
+ q(5874),
q(0),
],
q(rwa) => [
- q(5883),
+ q(5875),
q(0),
],
q(rwk) => [
- q(5884),
+ q(5876),
q(0),
],
q(rwm) => [
- q(5885),
+ q(5877),
q(0),
],
q(rwo) => [
- q(5886),
+ q(5878),
q(0),
],
q(rwr) => [
- q(5887),
+ q(5879),
q(0),
],
q(rxd) => [
- q(5888),
+ q(5880),
q(0),
],
q(rxw) => [
- q(5889),
+ q(5881),
q(0),
],
q(ryn) => [
- q(5890),
+ q(5882),
q(0),
],
q(rys) => [
- q(5891),
+ q(5883),
q(0),
],
q(ryu) => [
- q(5892),
+ q(5884),
q(0),
],
q(saa) => [
- q(5893),
+ q(5885),
q(0),
],
q(sab) => [
- q(5894),
+ q(5886),
q(0),
],
q(sac) => [
- q(5895),
+ q(5887),
q(0),
],
q(sad) => [
@@ -81238,11 +81244,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sae) => [
- q(5896),
+ q(5888),
q(0),
],
q(saf) => [
- q(5897),
+ q(5889),
q(0),
],
q(sag) => [
@@ -81258,11 +81264,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(saj) => [
- q(5898),
+ q(5890),
q(0),
],
q(sak) => [
- q(5899),
+ q(5891),
q(0),
],
q(sal) => [
@@ -81278,19 +81284,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sao) => [
- q(5900),
- q(0),
- ],
- q(sap) => [
- q(5901),
+ q(5892),
q(0),
],
q(saq) => [
- q(5902),
+ q(5893),
q(0),
],
q(sar) => [
- q(5903),
+ q(5894),
q(0),
],
q(sas) => [
@@ -81302,163 +81304,163 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sau) => [
- q(5904),
+ q(5895),
q(0),
],
q(sav) => [
- q(5905),
+ q(5896),
q(0),
],
q(saw) => [
- q(5906),
+ q(5897),
q(0),
],
q(sax) => [
- q(5907),
+ q(5898),
q(0),
],
q(say) => [
- q(5908),
+ q(5899),
q(0),
],
q(saz) => [
- q(5909),
+ q(5900),
q(0),
],
q(sba) => [
- q(5910),
+ q(5901),
q(0),
],
q(sbb) => [
- q(5911),
+ q(5902),
q(0),
],
q(sbc) => [
- q(5912),
+ q(5903),
q(0),
],
q(sbd) => [
- q(5913),
+ q(5904),
q(0),
],
q(sbe) => [
- q(5914),
+ q(5905),
q(0),
],
q(sbf) => [
- q(5915),
+ q(5906),
q(0),
],
q(sbg) => [
- q(5916),
+ q(5907),
q(0),
],
q(sbh) => [
- q(5917),
+ q(5908),
q(0),
],
q(sbi) => [
- q(5918),
+ q(5909),
q(0),
],
q(sbj) => [
- q(5919),
+ q(5910),
q(0),
],
q(sbk) => [
- q(5920),
+ q(5911),
q(0),
],
q(sbl) => [
- q(5921),
+ q(5912),
q(0),
],
q(sbm) => [
- q(5922),
+ q(5913),
q(0),
],
q(sbn) => [
- q(5923),
+ q(5914),
q(0),
],
q(sbo) => [
- q(5924),
+ q(5915),
q(0),
],
q(sbp) => [
- q(5925),
+ q(5916),
q(0),
],
q(sbq) => [
- q(5926),
+ q(5917),
q(0),
],
q(sbr) => [
- q(5927),
+ q(5918),
q(0),
],
q(sbs) => [
- q(5928),
+ q(5919),
q(0),
],
q(sbt) => [
- q(5929),
+ q(5920),
q(0),
],
q(sbu) => [
- q(5930),
+ q(5921),
q(0),
],
q(sbv) => [
- q(5931),
+ q(5922),
q(0),
],
q(sbw) => [
- q(5932),
+ q(5923),
q(0),
],
q(sbx) => [
- q(5933),
+ q(5924),
q(0),
],
q(sby) => [
- q(5934),
+ q(5925),
q(0),
],
q(sbz) => [
- q(5935),
+ q(5926),
q(0),
],
q(scb) => [
- q(5936),
+ q(5927),
q(0),
],
q(sce) => [
- q(5937),
+ q(5928),
q(0),
],
q(scf) => [
- q(5938),
+ q(5929),
q(0),
],
q(scg) => [
- q(5939),
+ q(5930),
q(0),
],
q(sch) => [
- q(5940),
+ q(5931),
q(0),
],
q(sci) => [
- q(5941),
+ q(5932),
q(0),
],
q(sck) => [
- q(5942),
+ q(5933),
q(0),
],
q(scl) => [
- q(5943),
+ q(5934),
q(0),
],
q(scn) => [
@@ -81470,103 +81472,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(scp) => [
- q(5944),
+ q(5935),
q(0),
],
q(scq) => [
- q(5945),
+ q(5936),
q(0),
],
q(scs) => [
- q(5946),
+ q(5937),
q(0),
],
q(scu) => [
- q(5947),
+ q(5938),
q(0),
],
q(scv) => [
- q(5948),
+ q(5939),
q(0),
],
q(scw) => [
- q(5949),
+ q(5940),
q(0),
],
q(scx) => [
- q(5950),
+ q(5941),
q(0),
],
q(sda) => [
- q(5951),
+ q(5942),
q(0),
],
q(sdb) => [
- q(5952),
+ q(5943),
q(0),
],
q(sdc) => [
- q(5953),
+ q(5944),
q(0),
],
q(sde) => [
- q(5954),
+ q(5945),
q(0),
],
q(sdf) => [
- q(5955),
+ q(5946),
q(0),
],
q(sdg) => [
- q(5956),
+ q(5947),
q(0),
],
q(sdh) => [
- q(5957),
+ q(5948),
q(0),
],
q(sdj) => [
- q(5958),
+ q(5949),
q(0),
],
q(sdk) => [
- q(5959),
+ q(5950),
q(0),
],
q(sdl) => [
- q(5960),
+ q(5951),
q(0),
],
q(sdm) => [
- q(5961),
+ q(5952),
q(0),
],
q(sdn) => [
- q(5962),
+ q(5953),
q(0),
],
q(sdo) => [
- q(5963),
+ q(5954),
q(0),
],
q(sdp) => [
- q(5964),
+ q(5955),
q(0),
],
q(sdr) => [
- q(5965),
+ q(5956),
q(0),
],
q(sds) => [
- q(5966),
+ q(5957),
q(0),
],
q(sdt) => [
- q(5967),
+ q(5958),
q(0),
],
q(sdu) => [
- q(5968),
+ q(5959),
q(0),
],
q(sdv) => [
@@ -81574,55 +81576,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sdx) => [
- q(5969),
+ q(5960),
q(0),
],
q(sdz) => [
- q(5970),
+ q(5961),
q(0),
],
q(sea) => [
- q(5971),
+ q(5962),
q(0),
],
q(seb) => [
- q(5972),
+ q(5963),
q(0),
],
q(sec) => [
- q(5973),
+ q(5964),
q(0),
],
q(sed) => [
- q(5974),
+ q(5965),
q(0),
],
q(see) => [
- q(5975),
+ q(5966),
q(0),
],
q(sef) => [
- q(5976),
+ q(5967),
q(0),
],
q(seg) => [
- q(5977),
+ q(5968),
q(0),
],
q(seh) => [
- q(5978),
+ q(5969),
q(0),
],
q(sei) => [
- q(5979),
+ q(5970),
q(0),
],
q(sej) => [
- q(5980),
+ q(5971),
q(0),
],
q(sek) => [
- q(5981),
+ q(5972),
q(0),
],
q(sel) => [
@@ -81634,71 +81636,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sen) => [
- q(5982),
+ q(5973),
q(0),
],
q(seo) => [
- q(5983),
+ q(5974),
q(0),
],
q(sep) => [
- q(5984),
+ q(5975),
q(0),
],
q(seq) => [
- q(5985),
+ q(5976),
q(0),
],
q(ser) => [
- q(5986),
+ q(5977),
q(0),
],
q(ses) => [
- q(5987),
+ q(5978),
q(0),
],
q(set) => [
- q(5988),
+ q(5979),
q(0),
],
q(seu) => [
- q(5989),
+ q(5980),
q(0),
],
q(sev) => [
- q(5990),
+ q(5981),
q(0),
],
q(sew) => [
- q(5991),
+ q(5982),
q(0),
],
q(sey) => [
- q(5992),
+ q(5983),
q(0),
],
q(sez) => [
- q(5993),
+ q(5984),
q(0),
],
q(sfb) => [
- q(5994),
+ q(5985),
q(0),
],
q(sfe) => [
- q(5995),
+ q(5986),
q(0),
],
q(sfm) => [
- q(5996),
+ q(5987),
q(0),
],
q(sfs) => [
- q(5997),
+ q(5988),
q(0),
],
q(sfw) => [
- q(5998),
+ q(5989),
q(0),
],
q(sga) => [
@@ -81706,135 +81708,131 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(sgb) => [
- q(5999),
+ q(5990),
q(0),
],
q(sgc) => [
- q(6000),
+ q(5991),
q(0),
],
q(sgd) => [
- q(6001),
+ q(5992),
q(0),
],
q(sge) => [
- q(6002),
+ q(5993),
q(0),
],
q(sgg) => [
- q(6003),
+ q(5994),
q(0),
],
q(sgh) => [
- q(6004),
+ q(5995),
q(0),
],
q(sgi) => [
- q(6005),
+ q(5996),
q(0),
],
q(sgj) => [
- q(6006),
+ q(5997),
q(0),
],
q(sgk) => [
- q(6007),
+ q(5998),
q(0),
],
q(sgm) => [
- q(6008),
+ q(5999),
q(0),
],
q(sgn) => [
q(0378),
q(0),
],
- q(sgo) => [
- q(6009),
- q(0),
- ],
q(sgp) => [
- q(6010),
+ q(6000),
q(0),
],
q(sgr) => [
- q(6011),
+ q(6001),
q(0),
],
q(sgs) => [
- q(6012),
+ q(6002),
q(0),
],
q(sgt) => [
- q(6013),
+ q(6003),
q(0),
],
q(sgu) => [
- q(6014),
+ q(6004),
q(0),
],
q(sgw) => [
- q(6015),
+ q(6005),
q(0),
],
q(sgx) => [
- q(6016),
+ q(6006),
q(0),
],
q(sgy) => [
- q(6017),
+ q(6007),
q(0),
],
q(sgz) => [
- q(6018),
+ q(6008),
q(0),
],
q(sha) => [
- q(6019),
+ q(6009),
q(0),
],
q(shb) => [
- q(6020),
+ q(6010),
q(0),
],
q(shc) => [
- q(6021),
+ q(6011),
q(0),
],
q(shd) => [
- q(6022),
+ q(6012),
q(0),
],
q(she) => [
- q(6023),
+ q(6013),
q(0),
],
q(shg) => [
- q(6024),
+ q(6014),
q(0),
],
q(shh) => [
- q(6025),
+ q(6015),
q(0),
],
q(shi) => [
- q(6026),
+ q(6016),
q(0),
],
q(shj) => [
- q(6027),
+ q(6017),
q(0),
],
q(shk) => [
- q(6028),
+ q(6018),
q(0),
],
q(shl) => [
- q(6029),
+ q(6019),
q(0),
],
q(shm) => [
- q(6030),
+ q(6020),
q(0),
],
q(shn) => [
@@ -81842,59 +81840,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sho) => [
- q(6031),
+ q(6021),
q(0),
],
q(shp) => [
- q(6032),
+ q(6022),
q(0),
],
q(shq) => [
- q(6033),
+ q(6023),
q(0),
],
q(shr) => [
- q(6034),
+ q(6024),
q(0),
],
q(shs) => [
- q(6035),
+ q(6025),
q(0),
],
q(sht) => [
- q(6036),
+ q(6026),
q(0),
],
q(shu) => [
- q(6037),
+ q(6027),
q(0),
],
q(shv) => [
- q(6038),
+ q(6028),
q(0),
],
q(shw) => [
- q(6039),
+ q(6029),
q(0),
],
q(shx) => [
- q(6040),
+ q(6030),
q(0),
],
q(shy) => [
- q(6041),
+ q(6031),
q(0),
],
q(shz) => [
- q(6042),
+ q(6032),
q(0),
],
q(sia) => [
- q(6043),
+ q(6033),
q(0),
],
q(sib) => [
- q(6044),
+ q(6034),
q(0),
],
q(sid) => [
@@ -81902,39 +81900,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sie) => [
- q(6045),
+ q(6035),
q(0),
],
q(sif) => [
- q(6046),
+ q(6036),
q(0),
],
q(sig) => [
- q(6047),
+ q(6037),
q(0),
],
q(sih) => [
- q(6048),
+ q(6038),
q(0),
],
q(sii) => [
- q(6049),
+ q(6039),
q(0),
],
q(sij) => [
- q(6050),
+ q(6040),
q(0),
],
q(sik) => [
- q(6051),
+ q(6041),
q(0),
],
q(sil) => [
- q(6052),
+ q(6042),
q(0),
],
q(sim) => [
- q(6053),
+ q(6043),
q(0),
],
q(sin) => [
@@ -81946,19 +81944,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sip) => [
- q(6054),
+ q(6044),
q(0),
],
q(siq) => [
- q(6055),
+ q(6045),
q(0),
],
q(sir) => [
- q(6056),
+ q(6046),
q(0),
],
q(sis) => [
- q(6057),
+ q(6047),
q(0),
],
q(sit) => [
@@ -81966,191 +81964,191 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(siu) => [
- q(6058),
+ q(6048),
q(0),
],
q(siv) => [
- q(6059),
+ q(6049),
q(0),
],
q(siw) => [
- q(6060),
+ q(6050),
q(0),
],
q(six) => [
- q(6061),
+ q(6051),
q(0),
],
q(siy) => [
- q(6062),
+ q(6052),
q(0),
],
q(siz) => [
- q(6063),
+ q(6053),
q(0),
],
q(sja) => [
- q(6064),
+ q(6054),
q(0),
],
q(sjb) => [
- q(6065),
+ q(6055),
q(0),
],
q(sjd) => [
- q(6066),
+ q(6056),
q(0),
],
q(sje) => [
- q(6067),
+ q(6057),
q(0),
],
q(sjg) => [
- q(6068),
+ q(6058),
q(0),
],
q(sjk) => [
- q(6069),
+ q(6059),
q(0),
],
q(sjl) => [
- q(6070),
+ q(6060),
q(0),
],
q(sjm) => [
- q(6071),
+ q(6061),
q(0),
],
q(sjn) => [
- q(6072),
+ q(6062),
q(0),
],
q(sjo) => [
- q(6073),
+ q(6063),
q(0),
],
q(sjp) => [
- q(6074),
+ q(6064),
q(0),
],
q(sjr) => [
- q(6075),
+ q(6065),
q(0),
],
q(sjs) => [
- q(6076),
+ q(6066),
q(0),
],
q(sjt) => [
- q(6077),
+ q(6067),
q(0),
],
q(sju) => [
- q(6078),
+ q(6068),
q(0),
],
q(sjw) => [
- q(6079),
+ q(6069),
q(0),
],
q(ska) => [
- q(6080),
+ q(6070),
q(0),
],
q(skb) => [
- q(6081),
+ q(6071),
q(0),
],
q(skc) => [
- q(6082),
+ q(6072),
q(0),
],
q(skd) => [
- q(6083),
+ q(6073),
q(0),
],
q(ske) => [
- q(6084),
+ q(6074),
q(0),
],
q(skf) => [
- q(6085),
+ q(6075),
q(0),
],
q(skg) => [
- q(6086),
+ q(6076),
q(0),
],
q(skh) => [
- q(6087),
+ q(6077),
q(0),
],
q(ski) => [
- q(6088),
+ q(6078),
q(0),
],
q(skj) => [
- q(6089),
+ q(6079),
q(0),
],
q(skk) => [
- q(6090),
+ q(6080),
q(0),
],
q(skm) => [
- q(6091),
+ q(6081),
q(0),
],
q(skn) => [
- q(6092),
+ q(6082),
q(0),
],
q(sko) => [
- q(6093),
+ q(6083),
q(0),
],
q(skp) => [
- q(6094),
+ q(6084),
q(0),
],
q(skq) => [
- q(6095),
+ q(6085),
q(0),
],
q(skr) => [
- q(6096),
+ q(6086),
q(0),
],
q(sks) => [
- q(6097),
+ q(6087),
q(0),
],
q(skt) => [
- q(6098),
+ q(6088),
q(0),
],
q(sku) => [
- q(6099),
+ q(6089),
q(0),
],
q(skv) => [
- q(6100),
+ q(6090),
q(0),
],
q(skw) => [
- q(6101),
+ q(6091),
q(0),
],
q(skx) => [
- q(6102),
+ q(6092),
q(0),
],
q(sky) => [
- q(6103),
+ q(6093),
q(0),
],
q(skz) => [
- q(6104),
+ q(6094),
q(0),
],
q(sla) => [
@@ -82158,47 +82156,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(slc) => [
- q(5914),
+ q(5905),
q(0),
],
q(sld) => [
- q(6105),
+ q(6095),
q(0),
],
q(sle) => [
- q(6106),
+ q(6096),
q(0),
],
q(slf) => [
- q(6107),
+ q(6097),
q(0),
],
q(slg) => [
- q(6108),
+ q(6098),
q(0),
],
q(slh) => [
- q(6109),
+ q(6099),
q(0),
],
q(sli) => [
- q(6110),
+ q(6100),
q(0),
],
q(slj) => [
- q(6111),
+ q(6101),
q(0),
],
q(sll) => [
- q(6112),
+ q(6102),
q(0),
],
q(slm) => [
- q(6113),
+ q(6103),
q(0),
],
q(sln) => [
- q(6114),
+ q(6104),
q(0),
],
q(slo) => [
@@ -82206,27 +82204,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(slp) => [
- q(6115),
+ q(6105),
q(0),
],
q(slq) => [
- q(6116),
+ q(6106),
q(0),
],
q(slr) => [
- q(6117),
+ q(6107),
q(0),
],
q(sls) => [
- q(6118),
+ q(6108),
q(0),
],
q(slt) => [
- q(6119),
+ q(6109),
q(0),
],
q(slu) => [
- q(6120),
+ q(6110),
q(0),
],
q(slv) => [
@@ -82234,19 +82232,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(slw) => [
- q(6121),
+ q(6111),
q(0),
],
q(slx) => [
- q(6122),
+ q(6112),
q(0),
],
q(sly) => [
- q(6123),
+ q(6113),
q(0),
],
q(slz) => [
- q(6124),
+ q(6114),
q(0),
],
q(sma) => [
@@ -82254,15 +82252,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(smb) => [
- q(6125),
+ q(6115),
q(0),
],
q(smc) => [
- q(6126),
+ q(6116),
q(0),
],
q(smd) => [
- q(6127),
+ q(6117),
q(0),
],
q(sme) => [
@@ -82270,15 +82268,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(smf) => [
- q(6128),
+ q(6118),
q(0),
],
q(smg) => [
- q(6129),
+ q(6119),
q(0),
],
q(smh) => [
- q(6130),
+ q(6120),
q(0),
],
q(smi) => [
@@ -82290,15 +82288,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(smk) => [
- q(6131),
+ q(6121),
q(0),
],
q(sml) => [
- q(6132),
+ q(6122),
q(0),
],
q(smm) => [
- q(6133),
+ q(6123),
q(0),
],
q(smn) => [
@@ -82310,15 +82308,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(smp) => [
- q(6134),
+ q(6124),
q(0),
],
q(smq) => [
- q(6135),
+ q(6125),
q(0),
],
q(smr) => [
- q(6136),
+ q(6126),
q(0),
],
q(sms) => [
@@ -82326,31 +82324,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(smt) => [
- q(6137),
+ q(6127),
q(0),
],
q(smu) => [
- q(6138),
+ q(6128),
q(0),
],
q(smv) => [
- q(6139),
+ q(6129),
q(0),
],
q(smw) => [
- q(6140),
+ q(6130),
q(0),
],
q(smx) => [
- q(6141),
+ q(6131),
q(0),
],
q(smy) => [
- q(6142),
+ q(6132),
q(0),
],
q(smz) => [
- q(6143),
+ q(6133),
q(0),
],
q(sna) => [
@@ -82358,11 +82356,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(snb) => [
- q(6144),
+ q(6134),
q(0),
],
q(snc) => [
- q(6145),
+ q(6135),
q(0),
],
q(snd) => [
@@ -82370,27 +82368,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sne) => [
- q(6146),
+ q(6136),
q(0),
],
q(snf) => [
- q(6147),
+ q(6137),
q(0),
],
q(sng) => [
- q(6148),
+ q(6138),
q(0),
],
q(snh) => [
- q(6149),
+ q(6139),
q(0),
],
q(sni) => [
- q(6150),
+ q(6140),
q(0),
],
q(snj) => [
- q(6151),
+ q(6141),
q(0),
],
q(snk) => [
@@ -82398,79 +82396,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(snl) => [
- q(6152),
+ q(6142),
q(0),
],
q(snm) => [
- q(6153),
+ q(6143),
q(0),
],
q(snn) => [
- q(6154),
+ q(6144),
q(0),
],
q(sno) => [
- q(6155),
+ q(6145),
q(0),
],
q(snp) => [
- q(6156),
+ q(6146),
q(0),
],
q(snq) => [
- q(6157),
+ q(6147),
q(0),
],
q(snr) => [
- q(6158),
+ q(6148),
q(0),
],
q(sns) => [
- q(6159),
+ q(6149),
q(0),
],
q(snu) => [
- q(6160),
+ q(6150),
q(0),
],
q(snv) => [
- q(6161),
+ q(6151),
q(0),
],
q(snw) => [
- q(6162),
+ q(6152),
q(0),
],
q(snx) => [
- q(6163),
+ q(6153),
q(0),
],
q(sny) => [
- q(6164),
+ q(6154),
q(0),
],
q(snz) => [
- q(6165),
+ q(6155),
q(0),
],
q(soa) => [
- q(6166),
+ q(6156),
q(0),
],
q(sob) => [
- q(6167),
+ q(6157),
q(0),
],
q(soc) => [
- q(6168),
+ q(6158),
q(0),
],
q(sod) => [
- q(6169),
+ q(6159),
q(0),
],
q(soe) => [
- q(6170),
+ q(6160),
q(0),
],
q(sog) => [
@@ -82478,23 +82476,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(soh) => [
- q(6171),
+ q(6161),
q(0),
],
q(soi) => [
- q(6172),
+ q(6162),
q(0),
],
q(soj) => [
- q(6173),
+ q(6163),
q(0),
],
q(sok) => [
- q(6174),
+ q(6164),
q(0),
],
q(sol) => [
- q(6175),
+ q(6165),
q(0),
],
q(som) => [
@@ -82506,23 +82504,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(soo) => [
- q(6176),
+ q(6166),
q(0),
],
q(sop) => [
- q(6177),
+ q(6167),
q(0),
],
q(soq) => [
- q(6178),
+ q(6168),
q(0),
],
q(sor) => [
- q(6179),
+ q(6169),
q(0),
],
q(sos) => [
- q(6180),
+ q(6170),
q(0),
],
q(sot) => [
@@ -82530,27 +82528,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sou) => [
- q(6181),
+ q(6171),
q(0),
],
q(sov) => [
- q(6182),
+ q(6172),
q(0),
],
q(sow) => [
- q(6183),
+ q(6173),
q(0),
],
q(sox) => [
- q(6184),
+ q(6174),
q(0),
],
q(soy) => [
- q(6185),
+ q(6175),
q(0),
],
q(soz) => [
- q(6186),
+ q(6176),
q(0),
],
q(spa) => [
@@ -82558,87 +82556,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(spb) => [
- q(6187),
+ q(6177),
q(0),
],
q(spc) => [
- q(6188),
+ q(6178),
q(0),
],
q(spd) => [
- q(6189),
+ q(6179),
q(0),
],
q(spe) => [
- q(6190),
+ q(6180),
q(0),
],
q(spg) => [
- q(6191),
+ q(6181),
q(0),
],
q(spi) => [
- q(6192),
+ q(6182),
q(0),
],
q(spk) => [
- q(6193),
+ q(6183),
q(0),
],
q(spl) => [
- q(6194),
+ q(6184),
q(0),
],
q(spm) => [
- q(6195),
+ q(6185),
+ q(0),
+ ],
+ q(spn) => [
+ q(6186),
q(0),
],
q(spo) => [
- q(6196),
+ q(6187),
q(0),
],
q(spp) => [
- q(6197),
+ q(6188),
q(0),
],
q(spq) => [
- q(6198),
+ q(6189),
q(0),
],
q(spr) => [
- q(6199),
+ q(6190),
q(0),
],
q(sps) => [
- q(6200),
+ q(6191),
q(0),
],
q(spt) => [
- q(6201),
+ q(6192),
q(0),
],
q(spu) => [
- q(6202),
+ q(6193),
q(0),
],
q(spv) => [
- q(6203),
+ q(6194),
q(0),
],
q(spx) => [
- q(6204),
+ q(6195),
q(0),
],
q(spy) => [
- q(6205),
+ q(6196),
q(0),
],
q(sqa) => [
- q(6206),
+ q(6197),
q(0),
],
q(sqh) => [
- q(6207),
+ q(6198),
q(0),
],
q(sqj) => [
@@ -82646,51 +82648,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sqk) => [
- q(6208),
+ q(6199),
q(0),
],
q(sqm) => [
- q(6209),
+ q(6200),
q(0),
],
q(sqn) => [
- q(6210),
+ q(6201),
q(0),
],
q(sqo) => [
- q(6211),
+ q(6202),
q(0),
],
q(sqq) => [
- q(6212),
+ q(6203),
q(0),
],
q(sqr) => [
- q(6213),
+ q(6204),
q(0),
],
q(sqs) => [
- q(6214),
+ q(6205),
q(0),
],
q(sqt) => [
- q(6215),
+ q(6206),
q(0),
],
q(squ) => [
- q(6216),
+ q(6207),
q(0),
],
q(sra) => [
- q(6217),
+ q(6208),
q(0),
],
q(srb) => [
- q(6218),
+ q(6209),
q(0),
],
q(src) => [
- q(6219),
+ q(6210),
q(0),
],
q(srd) => [
@@ -82698,35 +82700,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sre) => [
- q(6220),
+ q(6211),
q(0),
],
q(srf) => [
- q(6221),
+ q(6212),
q(0),
],
q(srg) => [
- q(6222),
+ q(6213),
q(0),
],
q(srh) => [
- q(6223),
+ q(6214),
q(0),
],
q(sri) => [
- q(6224),
+ q(6215),
q(0),
],
q(srk) => [
- q(6225),
+ q(6216),
q(0),
],
q(srl) => [
- q(6226),
+ q(6217),
q(0),
],
q(srm) => [
- q(6227),
+ q(6218),
q(0),
],
q(srn) => [
@@ -82734,7 +82736,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sro) => [
- q(6228),
+ q(6219),
q(0),
],
q(srp) => [
@@ -82742,7 +82744,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(srq) => [
- q(6229),
+ q(6220),
q(0),
],
q(srr) => [
@@ -82750,35 +82752,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(srs) => [
- q(6230),
+ q(6221),
q(0),
],
q(srt) => [
- q(6231),
+ q(6222),
q(0),
],
q(sru) => [
- q(6232),
+ q(6223),
q(0),
],
q(srv) => [
- q(6233),
+ q(6224),
q(0),
],
q(srw) => [
- q(6234),
+ q(6225),
q(0),
],
q(srx) => [
- q(6235),
+ q(6226),
q(0),
],
q(sry) => [
- q(6236),
+ q(6227),
q(0),
],
q(srz) => [
- q(6237),
+ q(6228),
q(0),
],
q(ssa) => [
@@ -82786,87 +82788,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ssb) => [
- q(6238),
+ q(6229),
q(0),
],
q(ssc) => [
- q(6239),
+ q(6230),
q(0),
],
q(ssd) => [
- q(6240),
+ q(6231),
q(0),
],
q(sse) => [
- q(6241),
+ q(6232),
q(0),
],
q(ssf) => [
- q(6242),
+ q(6233),
q(0),
],
q(ssg) => [
- q(6243),
+ q(6234),
q(0),
],
q(ssh) => [
- q(6244),
+ q(6235),
q(0),
],
q(ssi) => [
- q(6245),
+ q(6236),
q(0),
],
q(ssj) => [
- q(6246),
+ q(6237),
q(0),
],
q(ssk) => [
- q(6247),
+ q(6238),
q(0),
],
q(ssl) => [
- q(6248),
+ q(6239),
q(0),
],
q(ssm) => [
- q(6249),
+ q(6240),
q(0),
],
q(ssn) => [
- q(6250),
+ q(6241),
q(0),
],
q(sso) => [
- q(6251),
+ q(6242),
q(0),
],
q(ssp) => [
- q(6252),
+ q(6243),
q(0),
],
q(ssq) => [
- q(6253),
+ q(6244),
q(0),
],
q(ssr) => [
- q(6254),
+ q(6245),
q(0),
],
q(sss) => [
- q(6255),
+ q(6246),
q(0),
],
q(sst) => [
- q(6256),
+ q(6247),
q(0),
],
q(ssu) => [
- q(6257),
+ q(6248),
q(0),
],
q(ssv) => [
- q(6258),
+ q(6249),
q(0),
],
q(ssw) => [
@@ -82874,135 +82876,135 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ssx) => [
- q(6259),
+ q(6250),
q(0),
],
q(ssy) => [
- q(6260),
+ q(6251),
q(0),
],
q(ssz) => [
- q(6261),
+ q(6252),
q(0),
],
q(sta) => [
- q(6262),
+ q(6253),
q(0),
],
q(stb) => [
- q(6263),
+ q(6254),
q(0),
],
q(std) => [
- q(6264),
+ q(6255),
q(0),
],
q(ste) => [
- q(6265),
+ q(6256),
q(0),
],
q(stf) => [
- q(6266),
+ q(6257),
q(0),
],
q(stg) => [
- q(6267),
+ q(6258),
q(0),
],
q(sth) => [
- q(6268),
+ q(6259),
q(0),
],
q(sti) => [
- q(6269),
+ q(6260),
q(0),
],
q(stj) => [
- q(6270),
+ q(6261),
q(0),
],
q(stk) => [
- q(6271),
+ q(6262),
q(0),
],
q(stl) => [
- q(6272),
+ q(6263),
q(0),
],
q(stm) => [
- q(6273),
+ q(6264),
q(0),
],
q(stn) => [
- q(6274),
+ q(6265),
q(0),
],
q(sto) => [
- q(6275),
+ q(6266),
q(0),
],
q(stp) => [
- q(6276),
+ q(6267),
q(0),
],
q(stq) => [
- q(6277),
+ q(6268),
q(0),
],
q(str) => [
- q(6278),
+ q(6269),
q(0),
],
q(sts) => [
- q(6279),
+ q(6270),
q(0),
],
q(stt) => [
- q(6280),
+ q(6271),
q(0),
],
q(stu) => [
- q(6281),
+ q(6272),
q(0),
],
q(stv) => [
- q(6282),
+ q(6273),
q(0),
],
q(stw) => [
- q(6283),
+ q(6274),
q(0),
],
q(sty) => [
- q(6284),
+ q(6275),
q(0),
],
q(sua) => [
- q(6285),
+ q(6276),
q(0),
],
q(sub) => [
- q(6286),
+ q(6277),
q(0),
],
q(suc) => [
- q(6287),
+ q(6278),
q(0),
],
q(sue) => [
- q(6288),
+ q(6279),
q(0),
],
q(sug) => [
- q(6289),
+ q(6280),
q(0),
],
q(sui) => [
- q(6290),
+ q(6281),
q(0),
],
q(suj) => [
- q(6291),
+ q(6282),
q(0),
],
q(suk) => [
@@ -83014,11 +83016,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(suq) => [
- q(6292),
+ q(6283),
q(0),
],
q(sur) => [
- q(6293),
+ q(6284),
q(0),
],
q(sus) => [
@@ -83026,15 +83028,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sut) => [
- q(6294),
+ q(6285),
q(0),
],
q(suv) => [
- q(6295),
+ q(6286),
q(0),
],
q(suw) => [
- q(6296),
+ q(6287),
q(0),
],
q(sux) => [
@@ -83042,47 +83044,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(suy) => [
- q(6297),
+ q(6288),
q(0),
],
q(suz) => [
- q(6298),
+ q(6289),
q(0),
],
q(sva) => [
- q(6299),
+ q(6290),
q(0),
],
q(svb) => [
- q(6300),
+ q(6291),
q(0),
],
q(svc) => [
- q(6301),
+ q(6292),
q(0),
],
q(sve) => [
- q(6302),
+ q(6293),
q(0),
],
q(svk) => [
- q(6303),
+ q(6294),
q(0),
],
q(svm) => [
- q(6304),
+ q(6295),
q(0),
],
q(svr) => [
- q(6305),
+ q(6296),
q(0),
],
q(svs) => [
- q(6306),
+ q(6297),
q(0),
],
q(svx) => [
- q(6307),
+ q(6298),
q(0),
],
q(swa) => [
@@ -83090,11 +83092,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(swb) => [
- q(6308),
+ q(6299),
q(0),
],
q(swc) => [
- q(6309),
+ q(6300),
q(0),
],
q(swe) => [
@@ -83102,143 +83104,143 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(swf) => [
- q(6310),
+ q(6301),
q(0),
],
q(swg) => [
- q(6311),
+ q(6302),
q(0),
],
q(swh) => [
- q(6312),
+ q(6303),
q(0),
],
q(swi) => [
- q(6313),
+ q(6304),
q(0),
],
q(swj) => [
- q(6314),
+ q(6305),
q(0),
],
q(swk) => [
- q(6315),
+ q(6306),
q(0),
],
q(swl) => [
- q(6316),
+ q(6307),
q(0),
],
q(swm) => [
- q(6317),
+ q(6308),
q(0),
],
q(swn) => [
- q(6318),
+ q(6309),
q(0),
],
q(swo) => [
- q(6319),
+ q(6310),
q(0),
],
q(swp) => [
- q(6320),
+ q(6311),
q(0),
],
q(swq) => [
- q(6321),
+ q(6312),
q(0),
],
q(swr) => [
- q(6322),
+ q(6313),
q(0),
],
q(sws) => [
- q(6323),
+ q(6314),
q(0),
],
q(swt) => [
- q(6324),
+ q(6315),
q(0),
],
q(swu) => [
- q(6325),
+ q(6316),
q(0),
],
q(swv) => [
- q(6326),
+ q(6317),
q(0),
],
q(sww) => [
- q(6327),
+ q(6318),
q(0),
],
q(swx) => [
- q(6328),
+ q(6319),
q(0),
],
q(swy) => [
- q(6329),
+ q(6320),
q(0),
],
q(sxb) => [
- q(6330),
+ q(6321),
q(0),
],
q(sxc) => [
- q(6331),
+ q(6322),
q(0),
],
q(sxe) => [
- q(6332),
+ q(6323),
q(0),
],
q(sxg) => [
- q(6333),
+ q(6324),
q(0),
],
q(sxk) => [
- q(6334),
+ q(6325),
q(0),
],
q(sxl) => [
- q(6335),
+ q(6326),
q(0),
],
q(sxm) => [
- q(6336),
+ q(6327),
q(0),
],
q(sxn) => [
- q(6337),
+ q(6328),
q(0),
],
q(sxo) => [
- q(6338),
+ q(6329),
q(0),
],
q(sxr) => [
- q(6339),
+ q(6330),
q(0),
],
q(sxs) => [
- q(6340),
+ q(6331),
q(0),
],
q(sxu) => [
- q(6341),
+ q(6332),
q(0),
],
q(sxw) => [
- q(6342),
+ q(6333),
q(0),
],
q(sya) => [
- q(6343),
+ q(6334),
q(0),
],
q(syb) => [
- q(6344),
+ q(6335),
q(0),
],
q(syc) => [
@@ -83250,27 +83252,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(syi) => [
- q(6345),
+ q(6336),
q(0),
],
q(syk) => [
- q(6346),
+ q(6337),
q(0),
],
q(syl) => [
- q(6347),
+ q(6338),
q(0),
],
q(sym) => [
- q(6348),
+ q(6339),
q(0),
],
q(syn) => [
- q(6349),
+ q(6340),
q(0),
],
q(syo) => [
- q(6350),
+ q(6341),
q(0),
],
q(syr) => [
@@ -83278,87 +83280,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sys) => [
- q(6351),
+ q(6342),
q(0),
],
q(syw) => [
- q(6352),
+ q(6343),
+ q(0),
+ ],
+ q(syx) => [
+ q(6344),
q(0),
],
q(syy) => [
- q(6353),
+ q(6345),
q(0),
],
q(sza) => [
- q(6354),
+ q(6346),
q(0),
],
q(szb) => [
- q(6355),
+ q(6347),
q(0),
],
q(szc) => [
- q(6356),
+ q(6348),
q(0),
],
q(szd) => [
- q(6357),
+ q(6349),
q(0),
],
q(sze) => [
- q(6358),
+ q(6350),
q(0),
],
q(szg) => [
- q(6359),
+ q(6351),
q(0),
],
q(szl) => [
- q(6360),
+ q(6352),
q(0),
],
q(szn) => [
- q(6361),
+ q(6353),
q(0),
],
q(szp) => [
- q(6362),
+ q(6354),
q(0),
],
q(szv) => [
- q(6363),
+ q(6355),
q(0),
],
q(szw) => [
- q(6364),
+ q(6356),
q(0),
],
q(taa) => [
- q(6365),
+ q(6357),
q(0),
],
q(tab) => [
- q(6366),
+ q(6358),
q(0),
],
q(tac) => [
- q(6367),
+ q(6359),
q(0),
],
q(tad) => [
- q(6368),
+ q(6360),
q(0),
],
q(tae) => [
- q(6369),
+ q(6361),
q(0),
],
q(taf) => [
- q(6370),
+ q(6362),
q(0),
],
q(tag) => [
- q(6371),
+ q(6363),
q(0),
],
q(tah) => [
@@ -83370,15 +83376,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(taj) => [
- q(6372),
+ q(6364),
q(0),
],
q(tak) => [
- q(6373),
+ q(6365),
q(0),
],
q(tal) => [
- q(6374),
+ q(6366),
q(0),
],
q(tam) => [
@@ -83386,27 +83392,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tan) => [
- q(6375),
+ q(6367),
q(0),
],
q(tao) => [
- q(6376),
+ q(6368),
q(0),
],
q(tap) => [
- q(6377),
+ q(6369),
q(0),
],
q(taq) => [
- q(6378),
+ q(6370),
q(0),
],
q(tar) => [
- q(6379),
+ q(6371),
q(0),
],
q(tas) => [
- q(6380),
+ q(6372),
q(0),
],
q(tat) => [
@@ -83414,91 +83420,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tau) => [
- q(6381),
+ q(6373),
q(0),
],
q(tav) => [
- q(6382),
+ q(6374),
q(0),
],
q(taw) => [
- q(6383),
+ q(6375),
q(0),
],
q(tax) => [
- q(6384),
+ q(6376),
q(0),
],
q(tay) => [
- q(6385),
+ q(6377),
q(0),
],
q(taz) => [
- q(6386),
+ q(6378),
q(0),
],
q(tba) => [
- q(6387),
+ q(6379),
q(0),
],
q(tbb) => [
- q(6388),
+ q(6380),
q(0),
],
q(tbc) => [
- q(6389),
+ q(6381),
q(0),
],
q(tbd) => [
- q(6390),
+ q(6382),
q(0),
],
q(tbe) => [
- q(6391),
+ q(6383),
q(0),
],
q(tbf) => [
- q(6392),
+ q(6384),
q(0),
],
q(tbg) => [
- q(6393),
+ q(6385),
q(0),
],
q(tbh) => [
- q(6394),
+ q(6386),
q(0),
],
q(tbi) => [
- q(6395),
+ q(6387),
q(0),
],
q(tbj) => [
- q(6396),
+ q(6388),
q(0),
],
q(tbk) => [
- q(6397),
+ q(6389),
q(0),
],
q(tbl) => [
- q(6398),
+ q(6390),
q(0),
],
q(tbm) => [
- q(6399),
+ q(6391),
q(0),
],
q(tbn) => [
- q(6400),
+ q(6392),
q(0),
],
q(tbo) => [
- q(6401),
+ q(6393),
q(0),
],
q(tbp) => [
- q(6402),
+ q(6394),
q(0),
],
q(tbq) => [
@@ -83506,259 +83512,259 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tbr) => [
- q(6403),
+ q(6395),
q(0),
],
q(tbs) => [
- q(6404),
+ q(6396),
q(0),
],
q(tbt) => [
- q(6405),
+ q(6397),
q(0),
],
q(tbu) => [
- q(6406),
+ q(6398),
q(0),
],
q(tbv) => [
- q(6407),
+ q(6399),
q(0),
],
q(tbw) => [
- q(6408),
+ q(6400),
q(0),
],
q(tbx) => [
- q(6409),
+ q(6401),
q(0),
],
q(tby) => [
- q(6410),
+ q(6402),
q(0),
],
q(tbz) => [
- q(6411),
+ q(6403),
q(0),
],
q(tca) => [
- q(6412),
+ q(6404),
q(0),
],
q(tcb) => [
- q(6413),
+ q(6405),
q(0),
],
q(tcc) => [
- q(6414),
+ q(6406),
q(0),
],
q(tcd) => [
- q(6415),
+ q(6407),
q(0),
],
q(tce) => [
- q(6416),
+ q(6408),
q(0),
],
q(tcf) => [
- q(6417),
+ q(6409),
q(0),
],
q(tcg) => [
- q(6418),
+ q(6410),
q(0),
],
q(tch) => [
- q(6419),
+ q(6411),
q(0),
],
q(tci) => [
- q(6420),
+ q(6412),
q(0),
],
q(tck) => [
- q(6421),
+ q(6413),
q(0),
],
q(tcl) => [
- q(6422),
+ q(6414),
q(0),
],
q(tcm) => [
- q(6423),
+ q(6415),
q(0),
],
q(tcn) => [
- q(6424),
+ q(6416),
q(0),
],
q(tco) => [
- q(6425),
+ q(6417),
q(0),
],
q(tcp) => [
- q(6426),
+ q(6418),
q(0),
],
q(tcq) => [
- q(6427),
+ q(6419),
q(0),
],
q(tcs) => [
- q(6428),
+ q(6420),
q(0),
],
q(tct) => [
- q(6429),
+ q(6421),
q(0),
],
q(tcu) => [
- q(6430),
+ q(6422),
q(0),
],
q(tcw) => [
- q(6431),
+ q(6423),
q(0),
],
q(tcx) => [
- q(6432),
+ q(6424),
q(0),
],
q(tcy) => [
- q(6433),
+ q(6425),
q(0),
],
q(tcz) => [
- q(6434),
+ q(6426),
q(0),
],
q(tda) => [
- q(6435),
+ q(6427),
q(0),
],
q(tdb) => [
- q(6436),
+ q(6428),
q(0),
],
q(tdc) => [
- q(6437),
+ q(6429),
q(0),
],
q(tdd) => [
- q(6438),
+ q(6430),
q(0),
],
q(tde) => [
- q(6439),
+ q(6431),
q(0),
],
q(tdf) => [
- q(6440),
+ q(6432),
q(0),
],
q(tdg) => [
- q(6441),
+ q(6433),
q(0),
],
q(tdh) => [
- q(6442),
+ q(6434),
q(0),
],
q(tdi) => [
- q(6443),
+ q(6435),
q(0),
],
q(tdj) => [
- q(6444),
+ q(6436),
q(0),
],
q(tdk) => [
- q(6445),
+ q(6437),
q(0),
],
q(tdl) => [
- q(6446),
+ q(6438),
q(0),
],
q(tdn) => [
- q(6447),
+ q(6439),
q(0),
],
q(tdo) => [
- q(6448),
+ q(6440),
q(0),
],
q(tdq) => [
- q(6449),
+ q(6441),
q(0),
],
q(tdr) => [
- q(6450),
+ q(6442),
q(0),
],
q(tds) => [
- q(6451),
+ q(6443),
q(0),
],
q(tdt) => [
- q(6452),
+ q(6444),
q(0),
],
q(tdu) => [
- q(6453),
+ q(6445),
q(0),
],
q(tdv) => [
- q(6454),
+ q(6446),
q(0),
],
q(tdx) => [
- q(6455),
+ q(6447),
q(0),
],
q(tdy) => [
- q(6456),
+ q(6448),
q(0),
],
q(tea) => [
- q(6457),
+ q(6449),
q(0),
],
q(teb) => [
- q(6458),
+ q(6450),
q(0),
],
q(tec) => [
- q(6459),
+ q(6451),
q(0),
],
q(ted) => [
- q(6460),
+ q(6452),
q(0),
],
q(tee) => [
- q(6461),
+ q(6453),
q(0),
],
q(tef) => [
- q(6462),
+ q(6454),
q(0),
],
q(teg) => [
- q(6463),
+ q(6455),
q(0),
],
q(teh) => [
- q(6464),
+ q(6456),
q(0),
],
q(tei) => [
- q(6465),
+ q(6457),
q(0),
],
q(tek) => [
- q(6466),
+ q(6458),
q(0),
],
q(tel) => [
@@ -83770,19 +83776,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ten) => [
- q(6467),
+ q(6459),
q(0),
],
q(teo) => [
- q(6468),
+ q(6460),
q(0),
],
q(tep) => [
- q(6469),
+ q(6461),
q(0),
],
q(teq) => [
- q(6470),
+ q(6462),
q(0),
],
q(ter) => [
@@ -83790,7 +83796,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tes) => [
- q(6471),
+ q(6463),
q(0),
],
q(tet) => [
@@ -83798,79 +83804,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(teu) => [
- q(6472),
+ q(6464),
q(0),
],
q(tev) => [
- q(6473),
+ q(6465),
q(0),
],
q(tew) => [
- q(6474),
+ q(6466),
q(0),
],
q(tex) => [
- q(6475),
+ q(6467),
q(0),
],
q(tey) => [
- q(6476),
+ q(6468),
q(0),
],
q(tfi) => [
- q(6477),
+ q(6469),
q(0),
],
q(tfn) => [
- q(6478),
+ q(6470),
q(0),
],
q(tfo) => [
- q(6479),
+ q(6471),
q(0),
],
q(tfr) => [
- q(6480),
+ q(6472),
q(0),
],
q(tft) => [
- q(6481),
+ q(6473),
q(0),
],
q(tga) => [
- q(6482),
+ q(6474),
q(0),
],
q(tgb) => [
- q(6483),
+ q(6475),
q(0),
],
q(tgc) => [
- q(6484),
+ q(6476),
q(0),
],
q(tgd) => [
- q(6485),
+ q(6477),
q(0),
],
q(tge) => [
- q(6486),
+ q(6478),
q(0),
],
q(tgf) => [
- q(6487),
+ q(6479),
q(0),
],
q(tgh) => [
- q(6488),
+ q(6480),
q(0),
],
q(tgi) => [
- q(6489),
+ q(6481),
q(0),
],
q(tgj) => [
- q(6490),
+ q(6482),
q(0),
],
q(tgk) => [
@@ -83882,55 +83888,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tgn) => [
- q(6491),
+ q(6483),
q(0),
],
q(tgo) => [
- q(6492),
+ q(6484),
q(0),
],
q(tgp) => [
- q(6493),
+ q(6485),
q(0),
],
q(tgq) => [
- q(6494),
+ q(6486),
q(0),
],
q(tgr) => [
- q(6495),
+ q(6487),
q(0),
],
q(tgs) => [
- q(6496),
+ q(6488),
q(0),
],
q(tgt) => [
- q(6497),
+ q(6489),
q(0),
],
q(tgu) => [
- q(6498),
+ q(6490),
q(0),
],
q(tgv) => [
- q(6499),
+ q(6491),
q(0),
],
q(tgw) => [
- q(6500),
+ q(6492),
q(0),
],
q(tgx) => [
- q(6501),
+ q(6493),
q(0),
],
q(tgy) => [
- q(6502),
+ q(6494),
q(0),
],
q(tgz) => [
- q(6503),
+ q(6495),
q(0),
],
q(tha) => [
@@ -83938,91 +83944,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(thc) => [
- q(6504),
+ q(6496),
q(0),
],
q(thd) => [
- q(6505),
+ q(6497),
q(0),
],
q(the) => [
- q(6506),
+ q(6498),
q(0),
],
q(thf) => [
- q(6507),
+ q(6499),
q(0),
],
q(thh) => [
- q(6508),
+ q(6500),
q(0),
],
q(thi) => [
- q(6509),
+ q(6501),
q(0),
],
q(thk) => [
- q(6510),
+ q(6502),
q(0),
],
q(thl) => [
- q(6511),
+ q(6503),
q(0),
],
q(thm) => [
- q(6512),
+ q(6504),
q(0),
],
q(thn) => [
- q(6513),
+ q(6505),
q(0),
],
q(thp) => [
- q(6514),
+ q(6506),
q(0),
],
q(thq) => [
- q(6515),
+ q(6507),
q(0),
],
q(thr) => [
- q(6516),
+ q(6508),
q(0),
],
q(ths) => [
- q(6517),
+ q(6509),
q(0),
],
q(tht) => [
- q(6518),
+ q(6510),
q(0),
],
q(thu) => [
- q(6519),
+ q(6511),
q(0),
],
q(thv) => [
- q(6520),
+ q(6512),
q(0),
],
q(thw) => [
- q(6521),
- q(0),
- ],
- q(thx) => [
- q(6522),
+ q(6513),
q(0),
],
q(thy) => [
- q(6523),
+ q(6514),
q(0),
],
q(thz) => [
- q(6524),
+ q(6515),
q(0),
],
q(tia) => [
- q(6525),
+ q(6516),
q(0),
],
q(tib) => [
@@ -84030,15 +84032,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tic) => [
- q(6526),
+ q(6517),
q(0),
],
q(tid) => [
- q(6527),
+ q(6518),
q(0),
],
q(tif) => [
- q(6528),
+ q(6519),
q(0),
],
q(tig) => [
@@ -84046,43 +84048,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tih) => [
- q(6529),
+ q(6520),
q(0),
],
q(tii) => [
- q(6530),
+ q(6521),
q(0),
],
q(tij) => [
- q(6531),
+ q(6522),
q(0),
],
q(tik) => [
- q(6532),
+ q(6523),
q(0),
],
q(til) => [
- q(6533),
+ q(6524),
q(0),
],
q(tim) => [
- q(6534),
+ q(6525),
q(0),
],
q(tin) => [
- q(6535),
+ q(6526),
q(0),
],
q(tio) => [
- q(6536),
+ q(6527),
q(0),
],
q(tip) => [
- q(6537),
+ q(6528),
q(0),
],
q(tiq) => [
- q(6538),
+ q(6529),
q(0),
],
q(tir) => [
@@ -84090,15 +84092,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tis) => [
- q(6539),
+ q(6530),
q(0),
],
q(tit) => [
- q(6540),
+ q(6531),
q(0),
],
q(tiu) => [
- q(6541),
+ q(6532),
q(0),
],
q(tiv) => [
@@ -84106,83 +84108,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tiw) => [
- q(6542),
+ q(6533),
q(0),
],
q(tix) => [
- q(6543),
+ q(6534),
q(0),
],
q(tiy) => [
- q(6544),
+ q(6535),
q(0),
],
q(tiz) => [
- q(6545),
+ q(6536),
q(0),
],
q(tja) => [
- q(6546),
+ q(6537),
q(0),
],
q(tjg) => [
- q(6547),
+ q(6538),
q(0),
],
q(tji) => [
- q(6548),
+ q(6539),
q(0),
],
q(tjl) => [
- q(6549),
+ q(6540),
q(0),
],
q(tjm) => [
- q(6550),
+ q(6541),
q(0),
],
q(tjn) => [
- q(6551),
+ q(6542),
q(0),
],
q(tjo) => [
- q(6552),
+ q(6543),
q(0),
],
q(tjs) => [
- q(6553),
+ q(6544),
q(0),
],
q(tju) => [
- q(6554),
+ q(6545),
q(0),
],
q(tjw) => [
- q(6555),
+ q(6546),
q(0),
],
q(tka) => [
- q(6556),
+ q(6547),
q(0),
],
q(tkb) => [
- q(6557),
+ q(6548),
q(0),
],
q(tkd) => [
- q(6558),
+ q(6549),
q(0),
],
q(tke) => [
- q(6559),
+ q(6550),
q(0),
],
q(tkf) => [
- q(6560),
+ q(6551),
q(0),
],
q(tkg) => [
- q(6561),
+ q(6552),
q(0),
],
q(tkl) => [
@@ -84190,71 +84192,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tkm) => [
- q(6562),
+ q(6553),
q(0),
],
q(tkn) => [
- q(6563),
+ q(6554),
q(0),
],
q(tkp) => [
- q(6564),
+ q(6555),
q(0),
],
q(tkq) => [
- q(6565),
+ q(6556),
q(0),
],
q(tkr) => [
- q(6566),
+ q(6557),
q(0),
],
q(tks) => [
- q(6567),
+ q(6558),
q(0),
],
q(tkt) => [
- q(6568),
+ q(6559),
q(0),
],
q(tku) => [
- q(6569),
+ q(6560),
+ q(0),
+ ],
+ q(tkv) => [
+ q(6561),
q(0),
],
q(tkw) => [
- q(6570),
+ q(6562),
q(0),
],
q(tkx) => [
- q(6571),
+ q(6563),
q(0),
],
q(tkz) => [
- q(6572),
+ q(6564),
q(0),
],
q(tla) => [
- q(6573),
+ q(6565),
q(0),
],
q(tlb) => [
- q(6574),
+ q(6566),
q(0),
],
q(tlc) => [
- q(6575),
+ q(6567),
q(0),
],
q(tld) => [
- q(6576),
+ q(6568),
q(0),
],
q(tlf) => [
- q(6577),
+ q(6569),
q(0),
],
q(tlg) => [
- q(6578),
+ q(6570),
q(0),
],
q(tlh) => [
@@ -84266,91 +84272,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tlj) => [
- q(6579),
+ q(6571),
q(0),
],
q(tlk) => [
- q(6580),
+ q(6572),
q(0),
],
q(tll) => [
- q(6581),
+ q(6573),
q(0),
],
q(tlm) => [
- q(6582),
+ q(6574),
q(0),
],
q(tln) => [
- q(6583),
+ q(6575),
q(0),
],
q(tlo) => [
- q(6584),
+ q(6576),
q(0),
],
q(tlp) => [
- q(6585),
+ q(6577),
q(0),
],
q(tlq) => [
- q(6586),
+ q(6578),
q(0),
],
q(tlr) => [
- q(6587),
+ q(6579),
q(0),
],
q(tls) => [
- q(6588),
+ q(6580),
q(0),
],
q(tlt) => [
- q(6589),
+ q(6581),
q(0),
],
q(tlu) => [
- q(6590),
+ q(6582),
q(0),
],
q(tlv) => [
- q(6591),
+ q(6583),
q(0),
],
q(tlx) => [
- q(6592),
+ q(6584),
q(0),
],
q(tly) => [
- q(6593),
+ q(6585),
q(0),
],
q(tma) => [
- q(6594),
+ q(6586),
q(0),
],
q(tmb) => [
- q(6595),
+ q(6587),
q(0),
],
q(tmc) => [
- q(6596),
+ q(6588),
q(0),
],
q(tmd) => [
- q(6597),
+ q(6589),
q(0),
],
q(tme) => [
- q(6598),
+ q(6590),
q(0),
],
q(tmf) => [
- q(6599),
+ q(6591),
q(0),
],
q(tmg) => [
- q(6600),
+ q(6592),
q(0),
],
q(tmh) => [
@@ -84358,187 +84364,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tmi) => [
- q(6601),
+ q(6593),
q(0),
],
q(tmj) => [
- q(6602),
+ q(6594),
q(0),
],
q(tmk) => [
- q(6603),
+ q(6595),
q(0),
],
q(tml) => [
- q(6604),
+ q(6596),
q(0),
],
q(tmm) => [
- q(6605),
+ q(6597),
q(0),
],
q(tmn) => [
- q(6606),
+ q(6598),
q(0),
],
q(tmo) => [
- q(6607),
+ q(6599),
q(0),
],
q(tmp) => [
- q(6608),
+ q(6600),
q(0),
],
q(tmq) => [
- q(6609),
+ q(6601),
q(0),
],
q(tmr) => [
- q(6610),
+ q(6602),
q(0),
],
q(tms) => [
- q(6611),
+ q(6603),
q(0),
],
q(tmt) => [
- q(6612),
+ q(6604),
q(0),
],
q(tmu) => [
- q(6613),
+ q(6605),
q(0),
],
q(tmv) => [
- q(6614),
+ q(6606),
q(0),
],
q(tmw) => [
- q(6615),
+ q(6607),
q(0),
],
q(tmy) => [
- q(6616),
+ q(6608),
q(0),
],
q(tmz) => [
- q(6617),
+ q(6609),
q(0),
],
q(tna) => [
- q(6618),
+ q(6610),
q(0),
],
q(tnb) => [
- q(6619),
+ q(6611),
q(0),
],
q(tnc) => [
- q(6620),
+ q(6612),
q(0),
],
q(tnd) => [
- q(6621),
+ q(6613),
q(0),
],
q(tne) => [
- q(6622),
+ q(6614),
q(0),
],
q(tng) => [
- q(6623),
+ q(6615),
q(0),
],
q(tnh) => [
- q(6624),
+ q(6616),
q(0),
],
q(tni) => [
- q(6625),
+ q(6617),
q(0),
],
q(tnk) => [
- q(6626),
+ q(6618),
q(0),
],
q(tnl) => [
- q(6627),
+ q(6619),
q(0),
],
q(tnm) => [
- q(6628),
+ q(6620),
q(0),
],
q(tnn) => [
- q(6629),
+ q(6621),
q(0),
],
q(tno) => [
- q(6630),
+ q(6622),
q(0),
],
q(tnp) => [
- q(6631),
+ q(6623),
q(0),
],
q(tnq) => [
- q(6632),
+ q(6624),
q(0),
],
q(tnr) => [
- q(6633),
+ q(6625),
q(0),
],
q(tns) => [
- q(6634),
+ q(6626),
q(0),
],
q(tnt) => [
- q(6635),
+ q(6627),
q(0),
],
q(tnu) => [
- q(6636),
+ q(6628),
q(0),
],
q(tnv) => [
- q(6637),
+ q(6629),
q(0),
],
q(tnw) => [
- q(6638),
+ q(6630),
q(0),
],
q(tnx) => [
- q(6639),
+ q(6631),
q(0),
],
q(tny) => [
- q(6640),
+ q(6632),
q(0),
],
q(tnz) => [
- q(6641),
+ q(6633),
q(0),
],
q(tob) => [
- q(6642),
+ q(6634),
q(0),
],
q(toc) => [
- q(6643),
+ q(6635),
q(0),
],
q(tod) => [
- q(6644),
+ q(6636),
q(0),
],
q(toe) => [
- q(6645),
+ q(6637),
q(0),
],
q(tof) => [
- q(6646),
+ q(6638),
q(0),
],
q(tog) => [
@@ -84546,23 +84552,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(toh) => [
- q(6647),
+ q(6639),
q(0),
],
q(toi) => [
- q(6648),
+ q(6640),
q(0),
],
q(toj) => [
- q(6649),
+ q(6641),
q(0),
],
q(tol) => [
- q(6650),
+ q(6642),
q(0),
],
q(tom) => [
- q(6651),
+ q(6643),
q(0),
],
q(ton) => [
@@ -84570,67 +84576,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(too) => [
- q(6652),
+ q(6644),
q(0),
],
q(top) => [
- q(6653),
+ q(6645),
q(0),
],
q(toq) => [
- q(6654),
+ q(6646),
q(0),
],
q(tor) => [
- q(6655),
+ q(6647),
q(0),
],
q(tos) => [
- q(6656),
+ q(6648),
q(0),
],
q(tou) => [
- q(6657),
+ q(6649),
q(0),
],
q(tov) => [
- q(6658),
+ q(6650),
q(0),
],
q(tow) => [
- q(6659),
+ q(6651),
q(0),
],
q(tox) => [
- q(6660),
+ q(6652),
q(0),
],
q(toy) => [
- q(6661),
+ q(6653),
q(0),
],
q(toz) => [
- q(6662),
+ q(6654),
q(0),
],
q(tpa) => [
- q(6663),
+ q(6655),
q(0),
],
q(tpc) => [
- q(6664),
+ q(6656),
q(0),
],
q(tpe) => [
- q(6665),
+ q(6657),
q(0),
],
q(tpf) => [
- q(6666),
+ q(6658),
q(0),
],
q(tpg) => [
- q(6667),
+ q(6659),
q(0),
],
q(tpi) => [
@@ -84638,151 +84644,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tpj) => [
- q(6668),
+ q(6660),
q(0),
],
q(tpk) => [
- q(6669),
+ q(6661),
q(0),
],
q(tpl) => [
- q(6670),
+ q(6662),
q(0),
],
q(tpm) => [
- q(6671),
+ q(6663),
q(0),
],
q(tpn) => [
- q(6672),
+ q(6664),
q(0),
],
q(tpo) => [
- q(6673),
+ q(6665),
q(0),
],
q(tpp) => [
- q(6674),
+ q(6666),
q(0),
],
q(tpq) => [
- q(6675),
+ q(6667),
q(0),
],
q(tpr) => [
- q(6676),
+ q(6668),
q(0),
],
q(tpt) => [
- q(6677),
+ q(6669),
q(0),
],
q(tpu) => [
- q(6678),
+ q(6670),
q(0),
],
q(tpv) => [
- q(6679),
+ q(6671),
q(0),
],
q(tpw) => [
- q(6680),
+ q(6672),
q(0),
],
q(tpx) => [
- q(6681),
+ q(6673),
q(0),
],
q(tpy) => [
- q(6682),
+ q(6674),
q(0),
],
q(tpz) => [
- q(6683),
+ q(6675),
q(0),
],
q(tqb) => [
- q(6684),
+ q(6676),
q(0),
],
q(tql) => [
- q(6685),
+ q(6677),
q(0),
],
q(tqm) => [
- q(6686),
+ q(6678),
q(0),
],
q(tqn) => [
- q(6687),
+ q(6679),
q(0),
],
q(tqo) => [
- q(6688),
+ q(6680),
q(0),
],
q(tqp) => [
- q(6689),
+ q(6681),
q(0),
],
q(tqq) => [
- q(6690),
+ q(6682),
q(0),
],
q(tqr) => [
- q(6691),
+ q(6683),
q(0),
],
q(tqt) => [
- q(6692),
+ q(6684),
q(0),
],
q(tqu) => [
- q(6693),
+ q(6685),
q(0),
],
q(tqw) => [
- q(6694),
+ q(6686),
q(0),
],
q(tra) => [
- q(6695),
+ q(6687),
q(0),
],
q(trb) => [
- q(6696),
+ q(6688),
q(0),
],
q(trc) => [
- q(6697),
+ q(6689),
q(0),
],
q(trd) => [
- q(6698),
+ q(6690),
q(0),
],
q(tre) => [
- q(6699),
+ q(6691),
q(0),
],
q(trf) => [
- q(6700),
+ q(6692),
q(0),
],
q(trg) => [
- q(6701),
+ q(6693),
q(0),
],
q(trh) => [
- q(6702),
+ q(6694),
q(0),
],
q(tri) => [
- q(6703),
+ q(6695),
q(0),
],
q(trj) => [
- q(6704),
+ q(6696),
q(0),
],
q(trk) => [
@@ -84790,95 +84796,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(trl) => [
- q(6705),
+ q(6697),
q(0),
],
q(trm) => [
- q(6706),
+ q(6698),
q(0),
],
q(trn) => [
- q(6707),
+ q(6699),
q(0),
],
q(tro) => [
- q(6708),
+ q(6700),
q(0),
],
q(trp) => [
- q(6709),
+ q(6701),
q(0),
],
q(trq) => [
- q(6710),
+ q(6702),
q(0),
],
q(trr) => [
- q(6711),
+ q(6703),
q(0),
],
q(trs) => [
- q(6712),
+ q(6704),
q(0),
],
q(trt) => [
- q(6713),
+ q(6705),
q(0),
],
q(tru) => [
- q(6714),
+ q(6706),
q(0),
],
q(trv) => [
- q(6715),
+ q(6707),
q(0),
],
q(trw) => [
- q(6716),
+ q(6708),
q(0),
],
q(trx) => [
- q(6717),
+ q(6709),
q(0),
],
q(try) => [
- q(6718),
+ q(6710),
q(0),
],
q(trz) => [
- q(6719),
+ q(6711),
q(0),
],
q(tsa) => [
- q(6720),
+ q(6712),
q(0),
],
q(tsb) => [
- q(6721),
+ q(6713),
q(0),
],
q(tsc) => [
- q(6722),
+ q(6714),
q(0),
],
q(tsd) => [
- q(6723),
+ q(6715),
q(0),
],
q(tse) => [
- q(6724),
- q(0),
- ],
- q(tsf) => [
- q(6725),
+ q(6716),
q(0),
],
q(tsg) => [
- q(6726),
+ q(6717),
q(0),
],
q(tsh) => [
- q(6727),
+ q(6718),
q(0),
],
q(tsi) => [
@@ -84886,19 +84888,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tsj) => [
- q(6728),
+ q(6719),
q(0),
],
q(tsk) => [
- q(6729),
+ q(6720),
q(0),
],
q(tsl) => [
- q(6730),
+ q(6721),
q(0),
],
q(tsm) => [
- q(6731),
+ q(6722),
q(0),
],
q(tsn) => [
@@ -84910,187 +84912,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tsp) => [
- q(6732),
+ q(6723),
q(0),
],
q(tsq) => [
- q(6733),
+ q(6724),
q(0),
],
q(tsr) => [
- q(6734),
+ q(6725),
q(0),
],
q(tss) => [
- q(6735),
+ q(6726),
q(0),
],
q(tst) => [
- q(6736),
+ q(6727),
q(0),
],
q(tsu) => [
- q(6737),
+ q(6728),
q(0),
],
q(tsv) => [
- q(6738),
+ q(6729),
q(0),
],
q(tsw) => [
- q(6739),
+ q(6730),
q(0),
],
q(tsx) => [
- q(6740),
+ q(6731),
q(0),
],
q(tsy) => [
- q(6741),
+ q(6732),
q(0),
],
q(tsz) => [
- q(6742),
+ q(6733),
q(0),
],
q(tta) => [
- q(6743),
+ q(6734),
q(0),
],
q(ttb) => [
- q(6744),
+ q(6735),
q(0),
],
q(ttc) => [
- q(6745),
+ q(6736),
q(0),
],
q(ttd) => [
- q(6746),
+ q(6737),
q(0),
],
q(tte) => [
- q(6747),
+ q(6738),
q(0),
],
q(ttf) => [
- q(6748),
+ q(6739),
q(0),
],
q(ttg) => [
- q(6749),
+ q(6740),
q(0),
],
q(tth) => [
- q(6750),
+ q(6741),
q(0),
],
q(tti) => [
- q(6751),
+ q(6742),
q(0),
],
q(ttj) => [
- q(6752),
+ q(6743),
q(0),
],
q(ttk) => [
- q(6753),
+ q(6744),
q(0),
],
q(ttl) => [
- q(6754),
+ q(6745),
q(0),
],
q(ttm) => [
- q(6755),
+ q(6746),
q(0),
],
q(ttn) => [
- q(6756),
+ q(6747),
q(0),
],
q(tto) => [
- q(6757),
+ q(6748),
q(0),
],
q(ttp) => [
- q(6758),
+ q(6749),
q(0),
],
q(ttq) => [
- q(6759),
+ q(6750),
q(0),
],
q(ttr) => [
- q(6760),
+ q(6751),
q(0),
],
q(tts) => [
- q(6761),
+ q(6752),
q(0),
],
q(ttt) => [
- q(6762),
+ q(6753),
q(0),
],
q(ttu) => [
- q(6763),
+ q(6754),
q(0),
],
q(ttv) => [
- q(6764),
+ q(6755),
q(0),
],
q(ttw) => [
- q(6765),
+ q(6756),
q(0),
],
q(tty) => [
- q(6766),
+ q(6757),
q(0),
],
q(ttz) => [
- q(6767),
+ q(6758),
q(0),
],
q(tua) => [
- q(6768),
+ q(6759),
q(0),
],
q(tub) => [
- q(6769),
+ q(6760),
q(0),
],
q(tuc) => [
- q(6770),
+ q(6761),
q(0),
],
q(tud) => [
- q(6771),
+ q(6762),
q(0),
],
q(tue) => [
- q(6772),
+ q(6763),
q(0),
],
q(tuf) => [
- q(6773),
+ q(6764),
q(0),
],
q(tug) => [
- q(6774),
+ q(6765),
q(0),
],
q(tuh) => [
- q(6775),
+ q(6766),
q(0),
],
q(tui) => [
- q(6776),
+ q(6767),
q(0),
],
q(tuj) => [
- q(6777),
+ q(6768),
q(0),
],
q(tuk) => [
@@ -85098,7 +85100,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tul) => [
- q(6778),
+ q(6769),
q(0),
],
q(tum) => [
@@ -85106,11 +85108,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tun) => [
- q(6779),
+ q(6770),
q(0),
],
q(tuo) => [
- q(6780),
+ q(6771),
q(0),
],
q(tup) => [
@@ -85118,7 +85120,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tuq) => [
- q(6781),
+ q(6772),
q(0),
],
q(tur) => [
@@ -85126,7 +85128,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tus) => [
- q(6782),
+ q(6773),
q(0),
],
q(tut) => [
@@ -85134,11 +85136,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tuu) => [
- q(6783),
+ q(6774),
q(0),
],
q(tuv) => [
- q(6784),
+ q(6775),
q(0),
],
q(tuw) => [
@@ -85146,31 +85148,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tux) => [
- q(6785),
+ q(6776),
q(0),
],
q(tuy) => [
- q(6786),
+ q(6777),
q(0),
],
q(tuz) => [
- q(6787),
+ q(6778),
q(0),
],
q(tva) => [
- q(6788),
+ q(6779),
q(0),
],
q(tvd) => [
- q(6789),
+ q(6780),
q(0),
],
q(tve) => [
- q(6790),
+ q(6781),
q(0),
],
q(tvk) => [
- q(6791),
+ q(6782),
q(0),
],
q(tvl) => [
@@ -85178,67 +85180,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tvm) => [
- q(6792),
+ q(6783),
q(0),
],
q(tvn) => [
- q(6793),
+ q(6784),
q(0),
],
q(tvo) => [
- q(6794),
+ q(6785),
q(0),
],
q(tvs) => [
- q(6795),
+ q(6786),
q(0),
],
q(tvt) => [
- q(6796),
+ q(6787),
q(0),
],
q(tvu) => [
- q(6797),
+ q(6788),
q(0),
],
q(tvw) => [
- q(6798),
+ q(6789),
q(0),
],
q(tvy) => [
- q(6799),
+ q(6790),
q(0),
],
q(twa) => [
- q(6800),
+ q(6791),
q(0),
],
q(twb) => [
- q(6801),
+ q(6792),
q(0),
],
q(twc) => [
- q(6802),
+ q(6793),
q(0),
],
q(twd) => [
- q(6803),
+ q(6794),
q(0),
],
q(twe) => [
- q(6804),
+ q(6795),
q(0),
],
q(twf) => [
- q(6805),
+ q(6796),
q(0),
],
q(twg) => [
- q(6806),
+ q(6797),
q(0),
],
q(twh) => [
- q(6807),
+ q(6798),
q(0),
],
q(twi) => [
@@ -85246,167 +85248,171 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(twl) => [
- q(6808),
+ q(6799),
q(0),
],
q(twm) => [
- q(6809),
+ q(6800),
q(0),
],
q(twn) => [
- q(6810),
+ q(6801),
q(0),
],
q(two) => [
- q(6811),
+ q(6802),
q(0),
],
q(twp) => [
- q(6812),
+ q(6803),
q(0),
],
q(twq) => [
- q(6813),
+ q(6804),
q(0),
],
q(twr) => [
- q(6814),
+ q(6805),
q(0),
],
q(twt) => [
- q(6815),
+ q(6806),
q(0),
],
q(twu) => [
- q(6816),
+ q(6807),
q(0),
],
q(tww) => [
- q(6817),
+ q(6808),
q(0),
],
q(twx) => [
- q(6818),
+ q(6809),
q(0),
],
q(twy) => [
- q(6819),
+ q(6810),
q(0),
],
q(txa) => [
- q(6820),
+ q(6811),
q(0),
],
q(txb) => [
- q(6821),
+ q(6812),
q(0),
],
q(txc) => [
- q(6822),
+ q(6813),
q(0),
],
q(txe) => [
- q(6823),
+ q(6814),
q(0),
],
q(txg) => [
- q(6824),
+ q(6815),
q(0),
],
q(txh) => [
- q(6825),
+ q(6816),
q(0),
],
q(txi) => [
- q(6826),
+ q(6817),
+ q(0),
+ ],
+ q(txj) => [
+ q(6818),
q(0),
],
q(txm) => [
- q(6827),
+ q(6819),
q(0),
],
q(txn) => [
- q(6828),
+ q(6820),
q(0),
],
q(txo) => [
- q(6829),
+ q(6821),
q(0),
],
q(txq) => [
- q(6830),
+ q(6822),
q(0),
],
q(txr) => [
- q(6831),
+ q(6823),
q(0),
],
q(txs) => [
- q(6832),
+ q(6824),
q(0),
],
q(txt) => [
- q(6833),
+ q(6825),
q(0),
],
q(txu) => [
- q(6834),
+ q(6826),
q(0),
],
q(txx) => [
- q(6835),
+ q(6827),
q(0),
],
q(txy) => [
- q(6836),
+ q(6828),
q(0),
],
q(tya) => [
- q(6837),
+ q(6829),
q(0),
],
q(tye) => [
- q(6838),
+ q(6830),
q(0),
],
q(tyh) => [
- q(6839),
+ q(6831),
q(0),
],
q(tyi) => [
- q(6840),
+ q(6832),
q(0),
],
q(tyj) => [
- q(6841),
+ q(6833),
q(0),
],
q(tyl) => [
- q(6842),
+ q(6834),
q(0),
],
q(tyn) => [
- q(6843),
+ q(6835),
q(0),
],
q(typ) => [
- q(6844),
+ q(6836),
q(0),
],
q(tyr) => [
- q(6845),
+ q(6837),
q(0),
],
q(tys) => [
- q(6846),
+ q(6838),
q(0),
],
q(tyt) => [
- q(6847),
+ q(6839),
q(0),
],
q(tyu) => [
- q(6848),
+ q(6840),
q(0),
],
q(tyv) => [
@@ -85414,103 +85420,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tyx) => [
- q(6849),
+ q(6841),
q(0),
],
q(tyz) => [
- q(6850),
+ q(6842),
q(0),
],
q(tza) => [
- q(6851),
+ q(6843),
q(0),
],
q(tzh) => [
- q(6852),
+ q(6844),
q(0),
],
q(tzj) => [
- q(6853),
+ q(6845),
q(0),
],
q(tzl) => [
- q(6854),
+ q(6846),
q(0),
],
q(tzm) => [
- q(6855),
+ q(6847),
q(0),
],
q(tzn) => [
- q(6856),
+ q(6848),
q(0),
],
q(tzo) => [
- q(6857),
+ q(6849),
q(0),
],
q(tzx) => [
- q(6858),
+ q(6850),
q(0),
],
q(uam) => [
- q(6859),
+ q(6851),
q(0),
],
q(uan) => [
- q(6860),
+ q(6852),
q(0),
],
q(uar) => [
- q(6861),
+ q(6853),
q(0),
],
q(uba) => [
- q(6862),
+ q(6854),
q(0),
],
q(ubi) => [
- q(6863),
+ q(6855),
q(0),
],
q(ubl) => [
- q(6864),
+ q(6856),
q(0),
],
q(ubr) => [
- q(6865),
+ q(6857),
q(0),
],
q(ubu) => [
- q(6866),
+ q(6858),
q(0),
],
q(uby) => [
- q(6867),
+ q(6859),
q(0),
],
q(uda) => [
- q(6868),
+ q(6860),
q(0),
],
q(ude) => [
- q(6869),
+ q(6861),
q(0),
],
q(udg) => [
- q(6870),
+ q(6862),
q(0),
],
q(udi) => [
- q(6871),
+ q(6863),
q(0),
],
q(udj) => [
- q(6872),
+ q(6864),
q(0),
],
q(udl) => [
- q(6873),
+ q(6865),
q(0),
],
q(udm) => [
@@ -85518,15 +85524,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(udu) => [
- q(6874),
+ q(6866),
q(0),
],
q(ues) => [
- q(6875),
+ q(6867),
q(0),
],
q(ufi) => [
- q(6876),
+ q(6868),
q(0),
],
q(uga) => [
@@ -85534,31 +85540,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ugb) => [
- q(6877),
+ q(6869),
q(0),
],
q(uge) => [
- q(6878),
+ q(6870),
q(0),
],
q(ugn) => [
- q(6879),
+ q(6871),
q(0),
],
q(ugo) => [
- q(6880),
+ q(6872),
q(0),
],
q(ugy) => [
- q(6881),
+ q(6873),
q(0),
],
q(uha) => [
- q(6882),
+ q(6874),
q(0),
],
q(uhn) => [
- q(6883),
+ q(6875),
q(0),
],
q(uig) => [
@@ -85566,39 +85572,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(uis) => [
- q(6884),
+ q(6876),
q(0),
],
q(uiv) => [
- q(6885),
+ q(6877),
q(0),
],
q(uji) => [
- q(6886),
+ q(6878),
q(0),
],
q(uka) => [
- q(6887),
+ q(6879),
q(0),
],
q(ukg) => [
- q(6888),
+ q(6880),
q(0),
],
q(ukh) => [
- q(6889),
+ q(6881),
q(0),
],
q(ukl) => [
- q(6890),
+ q(6882),
q(0),
],
q(ukp) => [
- q(6891),
+ q(6883),
q(0),
],
q(ukq) => [
- q(6892),
+ q(6884),
q(0),
],
q(ukr) => [
@@ -85606,71 +85612,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(uks) => [
- q(6893),
+ q(6885),
q(0),
],
q(uku) => [
- q(6894),
+ q(6886),
q(0),
],
q(ukw) => [
- q(6895),
+ q(6887),
q(0),
],
q(uky) => [
- q(6896),
+ q(6888),
q(0),
],
q(ula) => [
- q(6897),
+ q(6889),
q(0),
],
q(ulb) => [
- q(6898),
+ q(6890),
q(0),
],
q(ulc) => [
- q(6899),
+ q(6891),
q(0),
],
q(ule) => [
- q(6900),
+ q(6892),
q(0),
],
q(ulf) => [
- q(6901),
+ q(6893),
q(0),
],
q(uli) => [
- q(6902),
+ q(6894),
q(0),
],
q(ulk) => [
- q(6903),
+ q(6895),
q(0),
],
q(ull) => [
- q(6904),
+ q(6896),
q(0),
],
q(ulm) => [
- q(6905),
+ q(6897),
q(0),
],
q(uln) => [
- q(6906),
+ q(6898),
q(0),
],
q(ulu) => [
- q(6907),
+ q(6899),
q(0),
],
q(ulw) => [
- q(6908),
+ q(6900),
q(0),
],
q(uma) => [
- q(6909),
+ q(6901),
q(0),
],
q(umb) => [
@@ -85678,51 +85684,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(umc) => [
- q(6910),
+ q(6902),
q(0),
],
q(umd) => [
- q(6911),
+ q(6903),
q(0),
],
q(umg) => [
- q(6912),
+ q(6904),
q(0),
],
q(umi) => [
- q(6913),
+ q(6905),
q(0),
],
q(umm) => [
- q(6914),
+ q(6906),
q(0),
],
q(umn) => [
- q(6915),
+ q(6907),
q(0),
],
q(umo) => [
- q(6916),
+ q(6908),
q(0),
],
q(ump) => [
- q(6917),
+ q(6909),
q(0),
],
q(umr) => [
- q(6918),
+ q(6910),
q(0),
],
q(ums) => [
- q(6919),
+ q(6911),
q(0),
],
q(umu) => [
- q(6920),
+ q(6912),
q(0),
],
q(una) => [
- q(6921),
+ q(6913),
q(0),
],
q(und) => [
@@ -85730,63 +85736,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(une) => [
- q(6922),
+ q(6914),
q(0),
],
q(ung) => [
- q(6923),
+ q(6915),
q(0),
],
q(unk) => [
- q(6924),
+ q(6916),
q(0),
],
q(unm) => [
- q(6925),
+ q(6917),
q(0),
],
q(unn) => [
- q(6926),
+ q(6918),
q(0),
],
q(unr) => [
- q(6927),
+ q(6919),
q(0),
],
q(unu) => [
- q(6928),
+ q(6920),
q(0),
],
q(unx) => [
- q(6929),
+ q(6921),
q(0),
],
q(unz) => [
- q(6930),
- q(0),
- ],
- q(uok) => [
- q(6931),
+ q(6922),
q(0),
],
q(upi) => [
- q(6932),
+ q(6923),
q(0),
],
q(upv) => [
- q(6933),
+ q(6924),
q(0),
],
q(ura) => [
- q(6934),
+ q(6925),
q(0),
],
q(urb) => [
- q(6935),
+ q(6926),
q(0),
],
q(urc) => [
- q(6936),
+ q(6927),
q(0),
],
q(urd) => [
@@ -85794,23 +85796,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ure) => [
- q(6937),
+ q(6928),
q(0),
],
q(urf) => [
- q(6938),
+ q(6929),
q(0),
],
q(urg) => [
- q(6939),
+ q(6930),
q(0),
],
q(urh) => [
- q(6940),
+ q(6931),
q(0),
],
q(uri) => [
- q(6941),
+ q(6932),
q(0),
],
q(urj) => [
@@ -85818,139 +85820,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(urk) => [
- q(6942),
+ q(6933),
q(0),
],
q(url) => [
- q(6943),
+ q(6934),
q(0),
],
q(urm) => [
- q(6944),
+ q(6935),
q(0),
],
q(urn) => [
- q(6945),
+ q(6936),
q(0),
],
q(uro) => [
- q(6946),
+ q(6937),
q(0),
],
q(urp) => [
- q(6947),
+ q(6938),
q(0),
],
q(urr) => [
- q(6948),
+ q(6939),
q(0),
],
q(urt) => [
- q(6949),
+ q(6940),
q(0),
],
q(uru) => [
- q(6950),
+ q(6941),
q(0),
],
q(urv) => [
- q(6951),
+ q(6942),
q(0),
],
q(urw) => [
- q(6952),
+ q(6943),
q(0),
],
q(urx) => [
- q(6953),
+ q(6944),
q(0),
],
q(ury) => [
- q(6954),
+ q(6945),
q(0),
],
q(urz) => [
- q(6955),
+ q(6946),
q(0),
],
q(usa) => [
- q(6956),
+ q(6947),
q(0),
],
q(ush) => [
- q(6957),
+ q(6948),
q(0),
],
q(usi) => [
- q(6958),
+ q(6949),
q(0),
],
q(usk) => [
- q(6959),
+ q(6950),
q(0),
],
q(usp) => [
- q(6960),
+ q(6951),
q(0),
],
q(usu) => [
- q(6961),
+ q(6952),
q(0),
],
q(uta) => [
- q(6962),
+ q(6953),
q(0),
],
q(ute) => [
- q(6963),
+ q(6954),
q(0),
],
q(utp) => [
- q(6964),
+ q(6955),
q(0),
],
q(utr) => [
- q(6965),
+ q(6956),
q(0),
],
q(utu) => [
- q(6966),
+ q(6957),
q(0),
],
q(uum) => [
- q(6967),
+ q(6958),
q(0),
],
q(uun) => [
- q(6968),
+ q(6959),
q(0),
],
q(uur) => [
- q(6969),
+ q(6960),
q(0),
],
q(uuu) => [
- q(6970),
+ q(6961),
q(0),
],
q(uve) => [
- q(6971),
+ q(6962),
q(0),
],
q(uvh) => [
- q(6972),
+ q(6963),
q(0),
],
q(uvl) => [
- q(6973),
+ q(6964),
q(0),
],
q(uwa) => [
- q(6974),
+ q(6965),
q(0),
],
q(uya) => [
- q(6975),
+ q(6966),
q(0),
],
q(uzb) => [
@@ -85958,31 +85960,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(uzn) => [
- q(6976),
+ q(6967),
q(0),
],
q(uzs) => [
- q(6977),
+ q(6968),
q(0),
],
q(vaa) => [
- q(6978),
+ q(6969),
q(0),
],
q(vae) => [
- q(6979),
+ q(6970),
q(0),
],
q(vaf) => [
- q(6980),
+ q(6971),
q(0),
],
q(vag) => [
- q(6981),
+ q(6972),
q(0),
],
q(vah) => [
- q(6982),
+ q(6973),
q(0),
],
q(vai) => [
@@ -85990,71 +85992,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(vaj) => [
- q(6983),
+ q(6974),
q(0),
],
q(val) => [
- q(6984),
+ q(6975),
q(0),
],
q(vam) => [
- q(6985),
+ q(6976),
q(0),
],
q(van) => [
- q(6986),
+ q(6977),
q(0),
],
q(vao) => [
- q(6987),
+ q(6978),
q(0),
],
q(vap) => [
- q(6988),
+ q(6979),
q(0),
],
q(var) => [
- q(6989),
+ q(6980),
q(0),
],
q(vas) => [
- q(6990),
+ q(6981),
q(0),
],
q(vau) => [
- q(6991),
+ q(6982),
q(0),
],
q(vav) => [
- q(6992),
+ q(6983),
q(0),
],
q(vay) => [
- q(6993),
+ q(6984),
q(0),
],
q(vbb) => [
- q(6994),
+ q(6985),
q(0),
],
q(vbk) => [
- q(6995),
+ q(6986),
q(0),
],
q(vec) => [
- q(6996),
+ q(6987),
q(0),
],
q(ved) => [
- q(6997),
+ q(6988),
q(0),
],
q(vel) => [
- q(6998),
+ q(6989),
q(0),
],
q(vem) => [
- q(6999),
+ q(6990),
q(0),
],
q(ven) => [
@@ -86062,31 +86064,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(veo) => [
- q(7000),
+ q(6991),
q(0),
],
q(vep) => [
- q(7001),
+ q(6992),
q(0),
],
q(ver) => [
- q(7002),
+ q(6993),
q(0),
],
q(vgr) => [
- q(7003),
+ q(6994),
q(0),
],
q(vgt) => [
- q(7004),
+ q(6995),
q(0),
],
q(vic) => [
- q(7005),
+ q(6996),
q(0),
],
q(vid) => [
- q(7006),
+ q(6997),
q(0),
],
q(vie) => [
@@ -86094,183 +86096,183 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(vif) => [
- q(7007),
+ q(6998),
q(0),
],
q(vig) => [
- q(7008),
+ q(6999),
q(0),
],
q(vil) => [
- q(7009),
+ q(7000),
q(0),
],
q(vin) => [
- q(7010),
+ q(7001),
q(0),
],
q(vis) => [
- q(7011),
+ q(7002),
q(0),
],
q(vit) => [
- q(7012),
+ q(7003),
q(0),
],
q(viv) => [
- q(7013),
+ q(7004),
q(0),
],
q(vka) => [
- q(7014),
+ q(7005),
q(0),
],
q(vki) => [
- q(7015),
+ q(7006),
q(0),
],
q(vkj) => [
- q(7016),
+ q(7007),
q(0),
],
q(vkk) => [
- q(7017),
+ q(7008),
q(0),
],
q(vkl) => [
- q(7018),
+ q(7009),
q(0),
],
q(vkm) => [
- q(7019),
+ q(7010),
q(0),
],
q(vko) => [
- q(7020),
+ q(7011),
q(0),
],
q(vkp) => [
- q(7021),
+ q(7012),
q(0),
],
q(vkt) => [
- q(7022),
+ q(7013),
q(0),
],
q(vku) => [
- q(7023),
+ q(7014),
q(0),
],
q(vlp) => [
- q(7024),
+ q(7015),
q(0),
],
q(vls) => [
- q(7025),
+ q(7016),
q(0),
],
q(vma) => [
- q(7026),
+ q(7017),
q(0),
],
q(vmb) => [
- q(7027),
+ q(7018),
q(0),
],
q(vmc) => [
- q(7028),
+ q(7019),
q(0),
],
q(vmd) => [
- q(7029),
+ q(7020),
q(0),
],
q(vme) => [
- q(7030),
+ q(7021),
q(0),
],
q(vmf) => [
- q(7031),
+ q(7022),
q(0),
],
q(vmg) => [
- q(7032),
+ q(7023),
q(0),
],
q(vmh) => [
- q(7033),
+ q(7024),
q(0),
],
q(vmi) => [
- q(7034),
+ q(7025),
q(0),
],
q(vmj) => [
- q(7035),
+ q(7026),
q(0),
],
q(vmk) => [
- q(7036),
+ q(7027),
q(0),
],
q(vml) => [
- q(7037),
+ q(7028),
q(0),
],
q(vmm) => [
- q(7038),
+ q(7029),
q(0),
],
q(vmp) => [
- q(7039),
+ q(7030),
q(0),
],
q(vmq) => [
- q(7040),
+ q(7031),
q(0),
],
q(vmr) => [
- q(7041),
+ q(7032),
q(0),
],
q(vms) => [
- q(7042),
+ q(7033),
q(0),
],
q(vmu) => [
- q(7043),
+ q(7034),
q(0),
],
q(vmv) => [
- q(7044),
+ q(7035),
q(0),
],
q(vmw) => [
- q(7045),
+ q(7036),
q(0),
],
q(vmx) => [
- q(7046),
+ q(7037),
q(0),
],
q(vmy) => [
- q(7047),
+ q(7038),
q(0),
],
q(vmz) => [
- q(7048),
+ q(7039),
q(0),
],
q(vnk) => [
- q(7049),
+ q(7040),
q(0),
],
q(vnm) => [
- q(7050),
+ q(7041),
q(0),
],
q(vnp) => [
- q(7051),
+ q(7042),
q(0),
],
q(vol) => [
@@ -86278,7 +86280,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(vor) => [
- q(7052),
+ q(7043),
q(0),
],
q(vot) => [
@@ -86286,91 +86288,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(vra) => [
- q(7053),
+ q(7044),
q(0),
],
q(vro) => [
- q(7052),
+ q(7043),
q(0),
],
q(vrs) => [
- q(7054),
+ q(7045),
q(0),
],
q(vrt) => [
- q(7055),
+ q(7046),
q(0),
],
q(vsi) => [
- q(7056),
+ q(7047),
q(0),
],
q(vsl) => [
- q(7057),
+ q(7048),
q(0),
],
q(vsv) => [
- q(7058),
+ q(7049),
q(0),
],
q(vto) => [
- q(7059),
+ q(7050),
q(0),
],
q(vum) => [
- q(7060),
+ q(7051),
q(0),
],
q(vun) => [
- q(7061),
+ q(7052),
q(0),
],
q(vut) => [
- q(7062),
+ q(7053),
q(0),
],
q(vwa) => [
- q(7063),
+ q(7054),
q(0),
],
q(waa) => [
- q(7064),
+ q(7055),
q(0),
],
q(wab) => [
- q(7065),
+ q(7056),
q(0),
],
q(wac) => [
- q(7066),
+ q(7057),
q(0),
],
q(wad) => [
- q(7067),
+ q(7058),
q(0),
],
q(wae) => [
- q(7068),
+ q(7059),
q(0),
],
q(waf) => [
- q(7069),
+ q(7060),
q(0),
],
q(wag) => [
- q(7070),
+ q(7061),
q(0),
],
q(wah) => [
- q(7071),
+ q(7062),
q(0),
],
q(wai) => [
- q(7072),
+ q(7063),
q(0),
],
q(waj) => [
- q(7073),
+ q(7064),
q(0),
],
q(wak) => [
@@ -86382,23 +86384,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(wam) => [
- q(7074),
+ q(7065),
q(0),
],
q(wan) => [
- q(7075),
+ q(7066),
q(0),
],
q(wao) => [
- q(7076),
+ q(7067),
q(0),
],
q(wap) => [
- q(7077),
+ q(7068),
q(0),
],
q(waq) => [
- q(7078),
+ q(7069),
q(0),
],
q(war) => [
@@ -86410,151 +86412,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(wat) => [
- q(7079),
+ q(7070),
q(0),
],
q(wau) => [
- q(7080),
+ q(7071),
q(0),
],
q(wav) => [
- q(7081),
+ q(7072),
q(0),
],
q(waw) => [
- q(7082),
+ q(7073),
q(0),
],
q(wax) => [
- q(7083),
+ q(7074),
q(0),
],
q(way) => [
- q(7084),
+ q(7075),
q(0),
],
q(waz) => [
- q(7085),
+ q(7076),
q(0),
],
q(wba) => [
- q(7086),
+ q(7077),
q(0),
],
q(wbb) => [
- q(7087),
+ q(7078),
q(0),
],
q(wbe) => [
- q(7088),
+ q(7079),
q(0),
],
q(wbf) => [
- q(6420),
+ q(6412),
q(0),
],
q(wbh) => [
- q(7089),
+ q(7080),
q(0),
],
q(wbi) => [
- q(7090),
+ q(7081),
q(0),
],
q(wbj) => [
- q(7091),
+ q(7082),
q(0),
],
q(wbk) => [
- q(7092),
+ q(7083),
q(0),
],
q(wbl) => [
- q(7093),
+ q(7084),
q(0),
],
q(wbm) => [
- q(7094),
+ q(7085),
q(0),
],
q(wbp) => [
- q(7095),
+ q(7086),
q(0),
],
q(wbq) => [
- q(7096),
+ q(7087),
q(0),
],
q(wbr) => [
- q(7097),
+ q(7088),
q(0),
],
q(wbt) => [
- q(7098),
+ q(7089),
q(0),
],
q(wbv) => [
- q(7099),
+ q(7090),
q(0),
],
q(wbw) => [
- q(7100),
+ q(7091),
q(0),
],
q(wca) => [
- q(7101),
+ q(7092),
q(0),
],
q(wci) => [
- q(7102),
+ q(7093),
q(0),
],
q(wdd) => [
- q(7103),
+ q(7094),
q(0),
],
q(wdg) => [
- q(7104),
+ q(7095),
q(0),
],
q(wdj) => [
- q(7105),
+ q(7096),
q(0),
],
q(wdk) => [
- q(7106),
+ q(7097),
q(0),
],
q(wdu) => [
- q(7107),
+ q(7098),
q(0),
],
q(wdy) => [
- q(7108),
+ q(7099),
q(0),
],
q(wea) => [
- q(7109),
+ q(7100),
q(0),
],
q(wec) => [
- q(7110),
+ q(7101),
q(0),
],
q(wed) => [
- q(7111),
+ q(7102),
q(0),
],
q(weg) => [
- q(7112),
+ q(7103),
q(0),
],
q(weh) => [
- q(7113),
+ q(7104),
q(0),
],
q(wei) => [
- q(7114),
+ q(7105),
q(0),
],
q(wel) => [
@@ -86562,7 +86564,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(wem) => [
- q(7115),
+ q(7106),
q(0),
],
q(wen) => [
@@ -86570,211 +86572,211 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(weo) => [
- q(7116),
+ q(7107),
q(0),
],
q(wep) => [
- q(7117),
+ q(7108),
q(0),
],
q(wer) => [
- q(7118),
+ q(7109),
q(0),
],
q(wes) => [
- q(7119),
+ q(7110),
q(0),
],
q(wet) => [
- q(7120),
+ q(7111),
q(0),
],
q(weu) => [
- q(7121),
+ q(7112),
q(0),
],
q(wew) => [
- q(7122),
+ q(7113),
q(0),
],
q(wfg) => [
- q(7123),
+ q(7114),
q(0),
],
q(wga) => [
- q(7124),
+ q(7115),
q(0),
],
q(wgb) => [
- q(7125),
+ q(7116),
q(0),
],
q(wgg) => [
- q(7126),
+ q(7117),
q(0),
],
q(wgi) => [
- q(7127),
+ q(7118),
q(0),
],
q(wgo) => [
- q(7128),
+ q(7119),
q(0),
],
q(wgu) => [
- q(7129),
+ q(7120),
q(0),
],
q(wgy) => [
- q(7130),
+ q(7121),
q(0),
],
q(wha) => [
- q(7131),
+ q(7122),
q(0),
],
q(whg) => [
- q(7132),
+ q(7123),
q(0),
],
q(whk) => [
- q(7133),
+ q(7124),
q(0),
],
q(whu) => [
- q(7134),
+ q(7125),
q(0),
],
q(wib) => [
- q(7135),
+ q(7126),
q(0),
],
q(wic) => [
- q(7136),
+ q(7127),
q(0),
],
q(wie) => [
- q(7137),
+ q(7128),
q(0),
],
q(wif) => [
- q(7138),
+ q(7129),
q(0),
],
q(wig) => [
- q(7139),
+ q(7130),
q(0),
],
q(wih) => [
- q(7140),
+ q(7131),
q(0),
],
q(wii) => [
- q(7141),
+ q(7132),
q(0),
],
q(wij) => [
- q(7142),
+ q(7133),
q(0),
],
q(wik) => [
- q(7143),
+ q(7134),
q(0),
],
q(wil) => [
- q(7144),
+ q(7135),
q(0),
],
q(wim) => [
- q(7145),
+ q(7136),
q(0),
],
q(win) => [
- q(7146),
+ q(7137),
q(0),
],
q(wir) => [
- q(7147),
+ q(7138),
q(0),
],
q(wiu) => [
- q(7148),
+ q(7139),
q(0),
],
q(wiv) => [
- q(7149),
+ q(7140),
q(0),
],
q(wiy) => [
- q(7150),
+ q(7141),
q(0),
],
q(wja) => [
- q(7151),
+ q(7142),
q(0),
],
q(wji) => [
- q(7152),
+ q(7143),
q(0),
],
q(wka) => [
- q(7153),
+ q(7144),
q(0),
],
q(wkb) => [
- q(7154),
+ q(7145),
q(0),
],
q(wkd) => [
- q(7155),
+ q(7146),
q(0),
],
q(wkl) => [
- q(7156),
+ q(7147),
q(0),
],
q(wku) => [
- q(7157),
+ q(7148),
q(0),
],
q(wkw) => [
- q(7158),
+ q(7149),
q(0),
],
q(wky) => [
- q(7159),
+ q(7150),
q(0),
],
q(wla) => [
- q(7160),
+ q(7151),
q(0),
],
q(wlc) => [
- q(7161),
+ q(7152),
q(0),
],
q(wle) => [
- q(7162),
+ q(7153),
q(0),
],
q(wlg) => [
- q(7163),
+ q(7154),
q(0),
],
q(wli) => [
- q(7164),
+ q(7155),
q(0),
],
q(wlk) => [
- q(7165),
+ q(7156),
q(0),
],
q(wll) => [
- q(7166),
+ q(7157),
q(0),
],
q(wlm) => [
- q(7167),
+ q(7158),
q(0),
],
q(wln) => [
@@ -86782,183 +86784,183 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(wlo) => [
- q(7168),
+ q(7159),
q(0),
],
q(wlr) => [
- q(7169),
+ q(7160),
q(0),
],
q(wls) => [
- q(7170),
+ q(7161),
q(0),
],
q(wlu) => [
- q(7171),
+ q(7162),
q(0),
],
q(wlv) => [
- q(7172),
+ q(7163),
q(0),
],
q(wlw) => [
- q(7173),
+ q(7164),
q(0),
],
q(wlx) => [
- q(7174),
+ q(7165),
q(0),
],
q(wly) => [
- q(7175),
+ q(7166),
q(0),
],
q(wma) => [
- q(7176),
+ q(7167),
q(0),
],
q(wmb) => [
- q(7177),
+ q(7168),
q(0),
],
q(wmc) => [
- q(7178),
+ q(7169),
q(0),
],
q(wmd) => [
- q(7179),
+ q(7170),
q(0),
],
q(wme) => [
- q(7180),
+ q(7171),
q(0),
],
q(wmh) => [
- q(7181),
+ q(7172),
q(0),
],
q(wmi) => [
- q(7182),
+ q(7173),
q(0),
],
q(wmm) => [
- q(7183),
+ q(7174),
q(0),
],
q(wmn) => [
- q(7184),
+ q(7175),
q(0),
],
q(wmo) => [
- q(7185),
+ q(7176),
q(0),
],
q(wms) => [
- q(7186),
+ q(7177),
q(0),
],
q(wmt) => [
- q(7187),
+ q(7178),
q(0),
],
q(wmw) => [
- q(7188),
+ q(7179),
q(0),
],
q(wmx) => [
- q(7189),
+ q(7180),
q(0),
],
q(wnb) => [
- q(7190),
+ q(7181),
q(0),
],
q(wnc) => [
- q(7191),
+ q(7182),
q(0),
],
q(wnd) => [
- q(7192),
+ q(7183),
q(0),
],
q(wne) => [
- q(7193),
+ q(7184),
q(0),
],
q(wng) => [
- q(7194),
+ q(7185),
q(0),
],
q(wni) => [
- q(7195),
+ q(7186),
q(0),
],
q(wnk) => [
- q(7196),
+ q(7187),
q(0),
],
q(wnm) => [
- q(7197),
+ q(7188),
q(0),
],
q(wnn) => [
- q(7198),
+ q(7189),
q(0),
],
q(wno) => [
- q(7199),
+ q(7190),
q(0),
],
q(wnp) => [
- q(7200),
+ q(7191),
q(0),
],
q(wnu) => [
- q(7201),
+ q(7192),
q(0),
],
q(wnw) => [
- q(7202),
+ q(7193),
q(0),
],
q(wny) => [
- q(7203),
+ q(7194),
q(0),
],
q(woa) => [
- q(7204),
+ q(7195),
q(0),
],
q(wob) => [
- q(7205),
+ q(7196),
q(0),
],
q(woc) => [
- q(7206),
+ q(7197),
q(0),
],
q(wod) => [
- q(7207),
+ q(7198),
q(0),
],
q(woe) => [
- q(7208),
+ q(7199),
q(0),
],
q(wof) => [
- q(7209),
+ q(7200),
q(0),
],
q(wog) => [
- q(7210),
+ q(7201),
q(0),
],
q(woi) => [
- q(7211),
+ q(7202),
q(0),
],
q(wok) => [
- q(7212),
+ q(7203),
q(0),
],
q(wol) => [
@@ -86966,299 +86968,303 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(wom) => [
- q(7213),
+ q(7204),
q(0),
],
q(won) => [
- q(7214),
+ q(7205),
q(0),
],
q(woo) => [
- q(7215),
+ q(7206),
q(0),
],
q(wor) => [
- q(7216),
+ q(7207),
q(0),
],
q(wos) => [
- q(7217),
+ q(7208),
q(0),
],
q(wow) => [
- q(7218),
+ q(7209),
q(0),
],
q(woy) => [
- q(7219),
+ q(7210),
q(0),
],
q(wpc) => [
- q(7220),
+ q(7211),
q(0),
],
q(wra) => [
- q(7221),
+ q(7212),
q(0),
],
q(wrb) => [
- q(7222),
+ q(7213),
q(0),
],
q(wrd) => [
- q(7223),
+ q(7214),
q(0),
],
q(wrg) => [
- q(7224),
+ q(7215),
q(0),
],
q(wrh) => [
- q(7225),
+ q(7216),
q(0),
],
q(wri) => [
- q(7226),
+ q(7217),
q(0),
],
q(wrk) => [
- q(7227),
+ q(7218),
q(0),
],
q(wrl) => [
- q(7228),
+ q(7219),
q(0),
],
q(wrm) => [
- q(7229),
+ q(7220),
q(0),
],
q(wrn) => [
- q(7230),
+ q(7221),
q(0),
],
q(wro) => [
- q(7231),
+ q(7222),
q(0),
],
q(wrp) => [
- q(7232),
+ q(7223),
q(0),
],
q(wrr) => [
- q(7233),
+ q(7224),
q(0),
],
q(wrs) => [
- q(7234),
+ q(7225),
q(0),
],
q(wru) => [
- q(7235),
+ q(7226),
q(0),
],
q(wrv) => [
- q(7236),
+ q(7227),
q(0),
],
q(wrw) => [
- q(7237),
+ q(7228),
q(0),
],
q(wrx) => [
- q(7238),
+ q(7229),
q(0),
],
q(wry) => [
- q(7239),
+ q(7230),
q(0),
],
q(wrz) => [
- q(7240),
+ q(7231),
q(0),
],
q(wsa) => [
- q(7241),
+ q(7232),
q(0),
],
q(wsi) => [
- q(7242),
+ q(7233),
q(0),
],
q(wsk) => [
- q(7243),
+ q(7234),
q(0),
],
q(wsr) => [
- q(7244),
+ q(7235),
q(0),
],
q(wss) => [
- q(7245),
+ q(7236),
q(0),
],
q(wsu) => [
- q(7246),
+ q(7237),
q(0),
],
q(wsv) => [
- q(7247),
+ q(7238),
q(0),
],
q(wtf) => [
- q(7248),
+ q(7239),
q(0),
],
q(wth) => [
- q(7249),
+ q(7240),
q(0),
],
q(wti) => [
- q(7250),
+ q(7241),
q(0),
],
q(wtk) => [
- q(7251),
+ q(7242),
q(0),
],
q(wtm) => [
- q(7252),
+ q(7243),
q(0),
],
q(wtw) => [
- q(7253),
+ q(7244),
q(0),
],
q(wua) => [
- q(7254),
+ q(7245),
q(0),
],
q(wub) => [
- q(7255),
+ q(7246),
q(0),
],
q(wud) => [
- q(7256),
+ q(7247),
q(0),
],
q(wuh) => [
- q(7257),
+ q(7248),
q(0),
],
q(wul) => [
- q(7258),
+ q(7249),
q(0),
],
q(wum) => [
- q(7259),
+ q(7250),
q(0),
],
q(wun) => [
- q(7260),
+ q(7251),
q(0),
],
q(wur) => [
- q(7261),
+ q(7252),
q(0),
],
q(wut) => [
- q(7262),
+ q(7253),
q(0),
],
q(wuu) => [
- q(7263),
+ q(7254),
q(0),
],
q(wuv) => [
- q(7264),
+ q(7255),
q(0),
],
q(wux) => [
- q(7265),
+ q(7256),
q(0),
],
q(wuy) => [
- q(7266),
+ q(7257),
q(0),
],
q(wwa) => [
- q(7267),
+ q(7258),
q(0),
],
q(wwb) => [
- q(7268),
+ q(7259),
q(0),
],
q(wwo) => [
- q(7269),
+ q(7260),
q(0),
],
q(wwr) => [
- q(7270),
+ q(7261),
q(0),
],
q(www) => [
- q(7271),
+ q(7262),
q(0),
],
q(wxa) => [
- q(7272),
+ q(7263),
q(0),
],
q(wxw) => [
- q(7273),
+ q(7264),
q(0),
],
q(wya) => [
- q(7274),
+ q(7265),
q(0),
],
q(wyb) => [
- q(7275),
+ q(7266),
q(0),
],
q(wyi) => [
- q(7276),
+ q(7267),
q(0),
],
q(wym) => [
- q(7277),
+ q(7268),
q(0),
],
q(wyr) => [
- q(7278),
+ q(7269),
q(0),
],
q(wyy) => [
- q(7279),
+ q(7270),
q(0),
],
q(xaa) => [
- q(7280),
+ q(7271),
q(0),
],
q(xab) => [
- q(7281),
+ q(7272),
q(0),
],
q(xac) => [
- q(7282),
+ q(7273),
q(0),
],
q(xad) => [
- q(7283),
+ q(7274),
q(0),
],
q(xae) => [
- q(7284),
+ q(7275),
q(0),
],
q(xag) => [
- q(7285),
+ q(7276),
q(0),
],
q(xai) => [
- q(7286),
+ q(7277),
+ q(0),
+ ],
+ q(xaj) => [
+ q(7278),
q(0),
],
q(xal) => [
@@ -87266,271 +87272,271 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(xam) => [
- q(7287),
+ q(7279),
q(0),
],
q(xan) => [
- q(7288),
+ q(7280),
q(0),
],
q(xao) => [
- q(7289),
+ q(7281),
q(0),
],
q(xap) => [
- q(7290),
+ q(7282),
q(0),
],
q(xaq) => [
- q(7291),
+ q(7283),
q(0),
],
q(xar) => [
- q(7292),
+ q(7284),
q(0),
],
q(xas) => [
- q(7293),
+ q(7285),
q(0),
],
q(xat) => [
- q(7294),
+ q(7286),
q(0),
],
q(xau) => [
- q(7295),
+ q(7287),
q(0),
],
q(xav) => [
- q(7296),
+ q(7288),
q(0),
],
q(xaw) => [
- q(7297),
+ q(7289),
q(0),
],
q(xay) => [
- q(7298),
+ q(7290),
q(0),
],
q(xba) => [
- q(7299),
+ q(7291),
q(0),
],
q(xbb) => [
- q(7300),
+ q(7292),
q(0),
],
q(xbc) => [
- q(7301),
+ q(7293),
q(0),
],
q(xbd) => [
- q(7302),
+ q(7294),
q(0),
],
q(xbe) => [
- q(7303),
+ q(7295),
q(0),
],
q(xbg) => [
- q(7304),
+ q(7296),
q(0),
],
q(xbi) => [
- q(7305),
+ q(7297),
q(0),
],
q(xbj) => [
- q(7306),
+ q(7298),
q(0),
],
q(xbm) => [
- q(7307),
+ q(7299),
q(0),
],
q(xbn) => [
- q(7308),
+ q(7300),
q(0),
],
q(xbo) => [
- q(7309),
+ q(7301),
q(0),
],
q(xbp) => [
- q(7310),
+ q(7302),
q(0),
],
q(xbr) => [
- q(7311),
+ q(7303),
q(0),
],
q(xbw) => [
- q(7312),
+ q(7304),
q(0),
],
q(xbx) => [
- q(7313),
+ q(7305),
q(0),
],
q(xby) => [
- q(7314),
+ q(7306),
q(0),
],
q(xcb) => [
- q(7315),
+ q(7307),
q(0),
],
q(xcc) => [
- q(7316),
+ q(7308),
q(0),
],
q(xce) => [
- q(7317),
+ q(7309),
q(0),
],
q(xcg) => [
- q(7318),
+ q(7310),
q(0),
],
q(xch) => [
- q(7319),
+ q(7311),
q(0),
],
q(xcl) => [
- q(7320),
+ q(7312),
q(0),
],
q(xcm) => [
- q(7321),
+ q(7313),
q(0),
],
q(xcn) => [
- q(7322),
+ q(7314),
q(0),
],
q(xco) => [
- q(7323),
+ q(7315),
q(0),
],
q(xcr) => [
- q(7324),
+ q(7316),
q(0),
],
q(xct) => [
- q(7325),
+ q(7317),
q(0),
],
q(xcu) => [
- q(7326),
+ q(7318),
q(0),
],
q(xcv) => [
- q(7327),
+ q(7319),
q(0),
],
q(xcw) => [
- q(7328),
+ q(7320),
q(0),
],
q(xcy) => [
- q(7329),
+ q(7321),
q(0),
],
q(xda) => [
- q(7330),
+ q(7322),
q(0),
],
q(xdc) => [
- q(7331),
+ q(7323),
q(0),
],
q(xdk) => [
- q(7332),
+ q(7324),
q(0),
],
q(xdm) => [
- q(7333),
+ q(7325),
q(0),
],
q(xdy) => [
- q(7334),
+ q(7326),
q(0),
],
q(xeb) => [
- q(7335),
+ q(7327),
q(0),
],
q(xed) => [
- q(7336),
+ q(7328),
q(0),
],
q(xeg) => [
- q(7337),
+ q(7329),
q(0),
],
q(xel) => [
- q(7338),
+ q(7330),
q(0),
],
q(xem) => [
- q(7339),
+ q(7331),
q(0),
],
q(xep) => [
- q(7340),
+ q(7332),
q(0),
],
q(xer) => [
- q(7341),
+ q(7333),
q(0),
],
q(xes) => [
- q(7342),
+ q(7334),
q(0),
],
q(xet) => [
- q(7343),
+ q(7335),
q(0),
],
q(xeu) => [
- q(7344),
+ q(7336),
q(0),
],
q(xfa) => [
- q(7345),
+ q(7337),
q(0),
],
q(xga) => [
- q(7346),
+ q(7338),
q(0),
],
q(xgb) => [
- q(7347),
+ q(7339),
q(0),
],
q(xgd) => [
- q(7348),
+ q(7340),
q(0),
],
q(xgf) => [
- q(7349),
+ q(7341),
q(0),
],
q(xgg) => [
- q(7350),
+ q(7342),
q(0),
],
q(xgi) => [
- q(7351),
+ q(7343),
q(0),
],
q(xgl) => [
- q(7352),
+ q(7344),
q(0),
],
q(xgm) => [
- q(7353),
+ q(7345),
q(0),
],
q(xgn) => [
@@ -87538,31 +87544,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(xgr) => [
- q(7354),
+ q(7346),
q(0),
],
q(xgu) => [
- q(7355),
+ q(7347),
q(0),
],
q(xgw) => [
- q(7356),
+ q(7348),
q(0),
],
q(xha) => [
- q(7357),
+ q(7349),
q(0),
],
q(xhc) => [
- q(7358),
+ q(7350),
q(0),
],
q(xhd) => [
- q(7359),
+ q(7351),
q(0),
],
q(xhe) => [
- q(7360),
+ q(7352),
q(0),
],
q(xho) => [
@@ -87570,319 +87576,323 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(xhr) => [
- q(7361),
+ q(7353),
q(0),
],
q(xht) => [
- q(7362),
+ q(7354),
q(0),
],
q(xhu) => [
- q(7363),
+ q(7355),
q(0),
],
q(xhv) => [
- q(7364),
+ q(7356),
q(0),
],
q(xib) => [
- q(7365),
+ q(7357),
q(0),
],
q(xii) => [
- q(7366),
+ q(7358),
q(0),
],
q(xil) => [
- q(7367),
+ q(7359),
q(0),
],
q(xin) => [
- q(7368),
+ q(7360),
q(0),
],
q(xip) => [
- q(7369),
+ q(7361),
q(0),
],
q(xir) => [
- q(7370),
+ q(7362),
+ q(0),
+ ],
+ q(xis) => [
+ q(7363),
q(0),
],
q(xiv) => [
- q(7371),
+ q(7364),
q(0),
],
q(xiy) => [
- q(7372),
+ q(7365),
q(0),
],
q(xjb) => [
- q(7373),
+ q(7366),
q(0),
],
q(xjt) => [
- q(7374),
+ q(7367),
q(0),
],
q(xka) => [
- q(7375),
+ q(7368),
q(0),
],
q(xkb) => [
- q(7376),
+ q(7369),
q(0),
],
q(xkc) => [
- q(7377),
+ q(7370),
q(0),
],
q(xkd) => [
- q(7378),
+ q(7371),
q(0),
],
q(xke) => [
- q(7379),
+ q(7372),
q(0),
],
q(xkf) => [
- q(7380),
+ q(7373),
q(0),
],
q(xkg) => [
- q(7381),
+ q(7374),
q(0),
],
q(xkh) => [
- q(7382),
+ q(7375),
q(0),
],
q(xki) => [
- q(7383),
+ q(7376),
q(0),
],
q(xkj) => [
- q(7384),
+ q(7377),
q(0),
],
q(xkk) => [
- q(7385),
+ q(7378),
q(0),
],
q(xkl) => [
- q(7386),
+ q(7379),
q(0),
],
q(xkn) => [
- q(7387),
+ q(7380),
q(0),
],
q(xko) => [
- q(7388),
+ q(7381),
q(0),
],
q(xkp) => [
- q(7389),
+ q(7382),
q(0),
],
q(xkq) => [
- q(7390),
+ q(7383),
q(0),
],
q(xkr) => [
- q(7391),
+ q(7384),
q(0),
],
q(xks) => [
- q(7392),
+ q(7385),
q(0),
],
q(xkt) => [
- q(7393),
+ q(7386),
q(0),
],
q(xku) => [
- q(7394),
+ q(7387),
q(0),
],
q(xkv) => [
- q(7395),
+ q(7388),
q(0),
],
q(xkw) => [
- q(7396),
+ q(7389),
q(0),
],
q(xkx) => [
- q(7397),
+ q(7390),
q(0),
],
q(xky) => [
- q(7398),
+ q(7391),
q(0),
],
q(xkz) => [
- q(7399),
+ q(7392),
q(0),
],
q(xla) => [
- q(7400),
+ q(7393),
q(0),
],
q(xlb) => [
- q(7401),
+ q(7394),
q(0),
],
q(xlc) => [
- q(7402),
+ q(7395),
q(0),
],
q(xld) => [
- q(7403),
+ q(7396),
q(0),
],
q(xle) => [
- q(7404),
+ q(7397),
q(0),
],
q(xlg) => [
- q(7405),
+ q(7398),
q(0),
],
q(xli) => [
- q(7406),
+ q(7399),
q(0),
],
q(xln) => [
- q(7407),
+ q(7400),
q(0),
],
q(xlo) => [
- q(7408),
+ q(7401),
q(0),
],
q(xlp) => [
- q(7409),
+ q(7402),
q(0),
],
q(xls) => [
- q(7410),
+ q(7403),
q(0),
],
q(xlu) => [
- q(7411),
+ q(7404),
q(0),
],
q(xly) => [
- q(7412),
+ q(7405),
q(0),
],
q(xma) => [
- q(7413),
+ q(7406),
q(0),
],
q(xmb) => [
- q(7414),
+ q(7407),
q(0),
],
q(xmc) => [
- q(7415),
+ q(7408),
q(0),
],
q(xmd) => [
- q(7416),
+ q(7409),
q(0),
],
q(xme) => [
- q(7417),
+ q(7410),
q(0),
],
q(xmf) => [
- q(7418),
+ q(7411),
q(0),
],
q(xmg) => [
- q(7419),
+ q(7412),
q(0),
],
q(xmh) => [
- q(7420),
+ q(7413),
q(0),
],
q(xmj) => [
- q(7421),
+ q(7414),
q(0),
],
q(xmk) => [
- q(7422),
+ q(7415),
q(0),
],
q(xml) => [
- q(7423),
+ q(7416),
q(0),
],
q(xmm) => [
- q(7424),
+ q(7417),
q(0),
],
q(xmn) => [
- q(7425),
+ q(7418),
q(0),
],
q(xmo) => [
- q(7426),
+ q(7419),
q(0),
],
q(xmp) => [
- q(7427),
+ q(7420),
q(0),
],
q(xmq) => [
- q(7428),
+ q(7421),
q(0),
],
q(xmr) => [
- q(7429),
+ q(7422),
q(0),
],
q(xms) => [
- q(7430),
+ q(7423),
q(0),
],
q(xmt) => [
- q(7431),
+ q(7424),
q(0),
],
q(xmu) => [
- q(7432),
+ q(7425),
q(0),
],
q(xmv) => [
- q(7433),
+ q(7426),
q(0),
],
q(xmw) => [
- q(7434),
+ q(7427),
q(0),
],
q(xmx) => [
- q(7435),
+ q(7428),
q(0),
],
q(xmy) => [
- q(7436),
+ q(7429),
q(0),
],
q(xmz) => [
- q(7437),
+ q(7430),
q(0),
],
q(xna) => [
- q(7438),
+ q(7431),
q(0),
],
q(xnb) => [
- q(7439),
+ q(7432),
q(0),
],
q(xnd) => [
@@ -87890,627 +87900,623 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(xng) => [
- q(7440),
+ q(7433),
q(0),
],
q(xnh) => [
- q(7441),
+ q(7434),
q(0),
],
q(xni) => [
- q(7442),
+ q(7435),
q(0),
],
q(xnk) => [
- q(7443),
+ q(7436),
q(0),
],
q(xnn) => [
- q(7444),
+ q(7437),
q(0),
],
q(xno) => [
- q(7445),
+ q(7438),
q(0),
],
q(xnr) => [
- q(7446),
+ q(7439),
q(0),
],
q(xns) => [
- q(7447),
+ q(7440),
q(0),
],
q(xnt) => [
- q(7448),
+ q(7441),
q(0),
],
q(xnu) => [
- q(7449),
+ q(7442),
q(0),
],
q(xny) => [
- q(7450),
+ q(7443),
q(0),
],
q(xnz) => [
- q(7451),
+ q(7444),
q(0),
],
q(xoc) => [
- q(7452),
+ q(7445),
q(0),
],
q(xod) => [
- q(7453),
+ q(7446),
q(0),
],
q(xog) => [
- q(7454),
+ q(7447),
q(0),
],
q(xoi) => [
- q(7455),
+ q(7448),
q(0),
],
q(xok) => [
- q(7456),
+ q(7449),
q(0),
],
q(xom) => [
- q(7457),
+ q(7450),
q(0),
],
q(xon) => [
- q(7458),
+ q(7451),
q(0),
],
q(xoo) => [
- q(7459),
+ q(7452),
q(0),
],
q(xop) => [
- q(7460),
+ q(7453),
q(0),
],
q(xor) => [
- q(7461),
+ q(7454),
q(0),
],
q(xow) => [
- q(7462),
+ q(7455),
q(0),
],
q(xpa) => [
- q(7463),
+ q(7456),
q(0),
],
q(xpc) => [
- q(7464),
+ q(7457),
q(0),
],
q(xpe) => [
- q(7465),
+ q(7458),
q(0),
],
q(xpg) => [
- q(7466),
+ q(7459),
q(0),
],
q(xpi) => [
- q(7467),
+ q(7460),
q(0),
],
q(xpj) => [
- q(7468),
+ q(7461),
q(0),
],
q(xpk) => [
- q(7469),
+ q(7462),
q(0),
],
q(xpm) => [
- q(7470),
+ q(7463),
q(0),
],
q(xpn) => [
- q(7471),
+ q(7464),
q(0),
],
q(xpo) => [
- q(7472),
+ q(7465),
q(0),
],
q(xpp) => [
- q(7473),
+ q(7466),
q(0),
],
q(xpq) => [
- q(7474),
+ q(7467),
q(0),
],
q(xpr) => [
- q(7475),
+ q(7468),
q(0),
],
q(xps) => [
- q(7476),
+ q(7469),
q(0),
],
q(xpt) => [
- q(7477),
+ q(7470),
q(0),
],
q(xpu) => [
- q(7478),
+ q(7471),
q(0),
],
q(xpy) => [
- q(7479),
+ q(7472),
q(0),
],
q(xqa) => [
- q(7480),
+ q(7473),
q(0),
],
q(xqt) => [
- q(7481),
+ q(7474),
q(0),
],
q(xra) => [
- q(7482),
+ q(7475),
q(0),
],
q(xrb) => [
- q(7483),
+ q(7476),
q(0),
],
q(xrd) => [
- q(7484),
+ q(7477),
q(0),
],
q(xre) => [
- q(7485),
+ q(7478),
q(0),
],
q(xrg) => [
- q(7486),
+ q(7479),
q(0),
],
q(xri) => [
- q(7487),
+ q(7480),
q(0),
],
q(xrm) => [
- q(7488),
+ q(7481),
q(0),
],
q(xrn) => [
- q(7489),
+ q(7482),
q(0),
],
q(xrq) => [
- q(7490),
+ q(7483),
q(0),
],
q(xrr) => [
- q(7491),
+ q(7484),
q(0),
],
q(xrt) => [
- q(7492),
+ q(7485),
q(0),
],
q(xru) => [
- q(7493),
+ q(7486),
q(0),
],
q(xrw) => [
- q(7494),
+ q(7487),
q(0),
],
q(xsa) => [
- q(7495),
+ q(7488),
q(0),
],
q(xsb) => [
- q(7496),
+ q(7489),
q(0),
],
q(xsc) => [
- q(7497),
+ q(7490),
q(0),
],
q(xsd) => [
- q(7498),
+ q(7491),
q(0),
],
q(xse) => [
- q(7499),
+ q(7492),
q(0),
],
q(xsh) => [
- q(7500),
+ q(7493),
q(0),
],
q(xsi) => [
- q(7501),
- q(0),
- ],
- q(xsj) => [
- q(7502),
+ q(7494),
q(0),
],
q(xsl) => [
- q(7503),
+ q(7495),
q(0),
],
q(xsm) => [
- q(7504),
+ q(7496),
q(0),
],
q(xsn) => [
- q(7505),
+ q(7497),
q(0),
],
q(xso) => [
- q(7506),
+ q(7498),
q(0),
],
q(xsp) => [
- q(7507),
+ q(7499),
q(0),
],
q(xsq) => [
- q(7508),
+ q(7500),
q(0),
],
q(xsr) => [
- q(7509),
+ q(7501),
q(0),
],
q(xss) => [
- q(7510),
+ q(7502),
q(0),
],
q(xsu) => [
- q(7511),
+ q(7503),
q(0),
],
q(xsv) => [
- q(7512),
+ q(7504),
q(0),
],
q(xsy) => [
- q(7513),
+ q(7505),
q(0),
],
q(xta) => [
- q(7514),
+ q(7506),
q(0),
],
q(xtb) => [
- q(7515),
+ q(7507),
q(0),
],
q(xtc) => [
- q(7516),
+ q(7508),
q(0),
],
q(xtd) => [
- q(7517),
+ q(7509),
q(0),
],
q(xte) => [
- q(7518),
+ q(7510),
q(0),
],
q(xtg) => [
- q(7519),
+ q(7511),
q(0),
],
q(xth) => [
- q(7520),
+ q(7512),
q(0),
],
q(xti) => [
- q(7521),
+ q(7513),
q(0),
],
q(xtj) => [
- q(7522),
+ q(7514),
q(0),
],
q(xtl) => [
- q(7523),
+ q(7515),
q(0),
],
q(xtm) => [
- q(7524),
+ q(7516),
q(0),
],
q(xtn) => [
- q(7525),
+ q(7517),
q(0),
],
q(xto) => [
- q(7526),
+ q(7518),
q(0),
],
q(xtp) => [
- q(7527),
+ q(7519),
q(0),
],
q(xtq) => [
- q(7528),
+ q(7520),
q(0),
],
q(xtr) => [
- q(7529),
+ q(7521),
q(0),
],
q(xts) => [
- q(7530),
+ q(7522),
q(0),
],
q(xtt) => [
- q(7531),
+ q(7523),
q(0),
],
q(xtu) => [
- q(7532),
+ q(7524),
q(0),
],
q(xtv) => [
- q(7533),
+ q(7525),
q(0),
],
q(xtw) => [
- q(7534),
+ q(7526),
q(0),
],
q(xty) => [
- q(7535),
+ q(7527),
q(0),
],
q(xtz) => [
- q(7536),
+ q(7528),
q(0),
],
q(xua) => [
- q(7537),
+ q(7529),
q(0),
],
q(xub) => [
- q(7538),
+ q(7530),
q(0),
],
q(xud) => [
- q(7539),
+ q(7531),
q(0),
],
q(xug) => [
- q(7540),
+ q(7532),
q(0),
],
q(xuj) => [
- q(7541),
+ q(7533),
q(0),
],
q(xul) => [
- q(7542),
+ q(7534),
q(0),
],
q(xum) => [
- q(7543),
+ q(7535),
q(0),
],
q(xun) => [
- q(7544),
+ q(7536),
q(0),
],
q(xuo) => [
- q(7545),
+ q(7537),
q(0),
],
q(xup) => [
- q(7546),
+ q(7538),
q(0),
],
q(xur) => [
- q(7547),
+ q(7539),
q(0),
],
q(xut) => [
- q(7548),
+ q(7540),
q(0),
],
q(xuu) => [
- q(7549),
+ q(7541),
q(0),
],
q(xve) => [
- q(7550),
+ q(7542),
q(0),
],
q(xvi) => [
- q(7551),
+ q(7543),
q(0),
],
q(xvn) => [
- q(7552),
+ q(7544),
q(0),
],
q(xvo) => [
- q(7553),
+ q(7545),
q(0),
],
q(xvs) => [
- q(7554),
+ q(7546),
q(0),
],
q(xwa) => [
- q(7555),
+ q(7547),
q(0),
],
q(xwc) => [
- q(7556),
+ q(7548),
q(0),
],
q(xwd) => [
- q(7557),
+ q(7549),
q(0),
],
q(xwe) => [
- q(7558),
+ q(7550),
q(0),
],
q(xwg) => [
- q(7559),
+ q(7551),
q(0),
],
q(xwj) => [
- q(7560),
+ q(7552),
q(0),
],
q(xwk) => [
- q(7561),
+ q(7553),
q(0),
],
q(xwl) => [
- q(7562),
+ q(7554),
q(0),
],
q(xwo) => [
- q(7563),
+ q(7555),
q(0),
],
q(xwr) => [
- q(7564),
+ q(7556),
q(0),
],
q(xwt) => [
- q(7565),
+ q(7557),
q(0),
],
q(xww) => [
- q(7566),
+ q(7558),
q(0),
],
q(xxb) => [
- q(7567),
+ q(7559),
q(0),
],
q(xxk) => [
- q(7568),
+ q(7560),
q(0),
],
q(xxm) => [
- q(7569),
+ q(7561),
q(0),
],
q(xxr) => [
- q(7570),
+ q(7562),
q(0),
],
q(xxt) => [
- q(7571),
+ q(7563),
q(0),
],
q(xya) => [
- q(7572),
+ q(7564),
q(0),
],
q(xyb) => [
- q(7573),
+ q(7565),
q(0),
],
q(xyj) => [
- q(7574),
+ q(7566),
q(0),
],
q(xyk) => [
- q(7575),
+ q(7567),
q(0),
],
q(xyl) => [
- q(7576),
+ q(7568),
q(0),
],
q(xyt) => [
- q(7577),
+ q(7569),
q(0),
],
q(xyy) => [
- q(7578),
+ q(7570),
q(0),
],
q(xzh) => [
- q(7579),
+ q(7571),
q(0),
],
q(xzm) => [
- q(7580),
+ q(7572),
q(0),
],
q(xzp) => [
- q(7581),
+ q(7573),
q(0),
],
q(yaa) => [
- q(7582),
+ q(7574),
q(0),
],
q(yab) => [
- q(7583),
+ q(7575),
q(0),
],
q(yac) => [
- q(7584),
+ q(7576),
q(0),
],
q(yad) => [
- q(7585),
+ q(7577),
q(0),
],
q(yae) => [
- q(7586),
+ q(7578),
q(0),
],
q(yaf) => [
- q(7587),
+ q(7579),
q(0),
],
q(yag) => [
- q(7588),
+ q(7580),
q(0),
],
q(yah) => [
- q(7589),
+ q(7581),
q(0),
],
q(yai) => [
- q(7590),
+ q(7582),
q(0),
],
q(yaj) => [
- q(7591),
+ q(7583),
q(0),
],
q(yak) => [
- q(7592),
+ q(7584),
q(0),
],
q(yal) => [
- q(7593),
+ q(7585),
q(0),
],
q(yam) => [
- q(7594),
+ q(7586),
q(0),
],
q(yan) => [
- q(7595),
+ q(7587),
q(0),
],
q(yao) => [
@@ -88522,231 +88528,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(yaq) => [
- q(7596),
+ q(7588),
q(0),
],
q(yar) => [
- q(7597),
+ q(7589),
q(0),
],
q(yas) => [
- q(7598),
+ q(7590),
q(0),
],
q(yat) => [
- q(7599),
+ q(7591),
q(0),
],
q(yau) => [
- q(7600),
+ q(7592),
q(0),
],
q(yav) => [
- q(7601),
+ q(7593),
q(0),
],
q(yaw) => [
- q(7602),
+ q(7594),
q(0),
],
q(yax) => [
- q(7603),
+ q(7595),
q(0),
],
q(yay) => [
- q(7604),
+ q(7596),
q(0),
],
q(yaz) => [
- q(7605),
+ q(7597),
q(0),
],
q(yba) => [
- q(7606),
+ q(7598),
q(0),
],
q(ybb) => [
- q(7607),
+ q(7599),
q(0),
],
q(ybe) => [
- q(7608),
+ q(7600),
q(0),
],
q(ybh) => [
- q(7609),
+ q(7601),
q(0),
],
q(ybi) => [
- q(7610),
+ q(7602),
q(0),
],
q(ybj) => [
- q(7611),
+ q(7603),
q(0),
],
q(ybk) => [
- q(7612),
+ q(7604),
q(0),
],
q(ybl) => [
- q(7613),
+ q(7605),
q(0),
],
q(ybm) => [
- q(7614),
+ q(7606),
q(0),
],
q(ybn) => [
- q(7615),
+ q(7607),
q(0),
],
q(ybo) => [
- q(7616),
+ q(7608),
q(0),
],
q(ybx) => [
- q(7617),
+ q(7609),
q(0),
],
q(yby) => [
- q(7618),
+ q(7610),
q(0),
],
q(ych) => [
- q(7619),
+ q(7611),
q(0),
],
q(ycl) => [
- q(7620),
+ q(7612),
q(0),
],
q(ycn) => [
- q(7621),
+ q(7613),
q(0),
],
q(ycp) => [
- q(7622),
+ q(7614),
q(0),
],
q(yda) => [
- q(7623),
+ q(7615),
q(0),
],
q(ydd) => [
- q(7624),
+ q(7616),
q(0),
],
q(yde) => [
- q(7625),
+ q(7617),
q(0),
],
q(ydg) => [
- q(7626),
+ q(7618),
q(0),
],
q(ydk) => [
- q(7627),
- q(0),
- ],
- q(yds) => [
- q(7628),
+ q(7619),
q(0),
],
q(yea) => [
- q(7629),
+ q(7620),
q(0),
],
q(yec) => [
- q(7630),
+ q(7621),
q(0),
],
q(yee) => [
- q(7631),
+ q(7622),
q(0),
],
q(yei) => [
- q(7632),
+ q(7623),
q(0),
],
q(yej) => [
- q(7633),
+ q(7624),
q(0),
],
q(yel) => [
- q(7634),
+ q(7625),
q(0),
],
q(yer) => [
- q(7635),
+ q(7626),
q(0),
],
q(yes) => [
- q(7636),
+ q(7627),
q(0),
],
q(yet) => [
- q(7637),
+ q(7628),
q(0),
],
q(yeu) => [
- q(7638),
+ q(7629),
q(0),
],
q(yev) => [
- q(7639),
+ q(7630),
q(0),
],
q(yey) => [
- q(7640),
+ q(7631),
q(0),
],
q(yga) => [
- q(7641),
+ q(7632),
q(0),
],
q(ygi) => [
- q(7642),
+ q(7633),
q(0),
],
q(ygl) => [
- q(7643),
+ q(7634),
q(0),
],
q(ygm) => [
- q(7644),
+ q(7635),
q(0),
],
q(ygp) => [
- q(7645),
+ q(7636),
q(0),
],
q(ygr) => [
- q(7646),
+ q(7637),
+ q(0),
+ ],
+ q(ygs) => [
+ q(7638),
q(0),
],
q(ygu) => [
- q(7647),
+ q(7639),
q(0),
],
q(ygw) => [
- q(7648),
+ q(7640),
q(0),
],
q(yha) => [
- q(7649),
+ q(7641),
q(0),
],
q(yhd) => [
- q(7650),
+ q(7642),
q(0),
],
q(yhl) => [
- q(7651),
+ q(7643),
q(0),
],
q(yia) => [
- q(7652),
+ q(7644),
q(0),
],
q(yid) => [
@@ -88754,323 +88760,315 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(yif) => [
- q(2660),
+ q(2657),
q(0),
],
q(yig) => [
- q(7653),
+ q(7645),
q(0),
],
q(yih) => [
- q(7654),
+ q(7646),
q(0),
],
q(yii) => [
- q(7655),
+ q(7647),
q(0),
],
q(yij) => [
- q(7656),
+ q(7648),
q(0),
],
q(yik) => [
- q(7657),
+ q(7649),
q(0),
],
q(yil) => [
- q(7658),
+ q(7650),
q(0),
],
q(yim) => [
- q(7659),
+ q(7651),
q(0),
],
q(yin) => [
- q(7660),
+ q(7652),
q(0),
],
q(yip) => [
- q(7661),
+ q(7653),
q(0),
],
q(yiq) => [
- q(7662),
+ q(7654),
q(0),
],
q(yir) => [
- q(7663),
+ q(7655),
q(0),
],
q(yis) => [
- q(7664),
+ q(7656),
q(0),
],
q(yit) => [
- q(7665),
+ q(7657),
q(0),
],
q(yiu) => [
- q(7666),
+ q(7658),
q(0),
],
q(yiv) => [
- q(7667),
+ q(7659),
q(0),
],
q(yix) => [
- q(7668),
+ q(7660),
q(0),
],
q(yiz) => [
- q(7669),
+ q(7661),
q(0),
],
q(yka) => [
- q(7670),
+ q(7662),
q(0),
],
q(ykg) => [
- q(7671),
+ q(7663),
q(0),
],
q(yki) => [
- q(7672),
+ q(7664),
q(0),
],
q(ykk) => [
- q(7673),
+ q(7665),
q(0),
],
q(ykl) => [
- q(7674),
+ q(7666),
q(0),
],
q(ykm) => [
- q(7675),
+ q(7667),
q(0),
],
q(ykn) => [
- q(7676),
+ q(7668),
q(0),
],
q(yko) => [
- q(7677),
+ q(7669),
q(0),
],
q(ykr) => [
- q(7678),
+ q(7670),
q(0),
],
q(ykt) => [
- q(7679),
+ q(7671),
q(0),
],
q(yku) => [
- q(7680),
+ q(7672),
q(0),
],
q(yky) => [
- q(7681),
+ q(7673),
q(0),
],
q(yla) => [
- q(7682),
+ q(7674),
q(0),
],
q(ylb) => [
- q(7683),
+ q(7675),
q(0),
],
q(yle) => [
- q(7684),
+ q(7676),
q(0),
],
q(ylg) => [
- q(7685),
+ q(7677),
q(0),
],
q(yli) => [
- q(7686),
+ q(7678),
q(0),
],
q(yll) => [
- q(7687),
+ q(7679),
q(0),
],
q(ylm) => [
- q(7688),
+ q(7680),
q(0),
],
q(yln) => [
- q(7689),
+ q(7681),
q(0),
],
q(ylo) => [
- q(7690),
+ q(7682),
q(0),
],
q(ylr) => [
- q(7691),
+ q(7683),
q(0),
],
q(ylu) => [
- q(7692),
+ q(7684),
q(0),
],
q(yly) => [
- q(7693),
+ q(7685),
q(0),
],
q(ymb) => [
- q(7694),
+ q(7686),
q(0),
],
q(ymc) => [
- q(7695),
+ q(7687),
q(0),
],
q(ymd) => [
- q(7696),
+ q(7688),
q(0),
],
q(yme) => [
- q(7697),
+ q(7689),
q(0),
],
q(ymg) => [
- q(7698),
+ q(7690),
q(0),
],
q(ymh) => [
- q(7699),
+ q(7691),
q(0),
],
q(ymi) => [
- q(7700),
+ q(7692),
q(0),
],
q(ymk) => [
- q(7701),
+ q(7693),
q(0),
],
q(yml) => [
- q(7702),
+ q(7694),
q(0),
],
q(ymm) => [
- q(7703),
+ q(7695),
q(0),
],
q(ymn) => [
- q(7704),
+ q(7696),
q(0),
],
q(ymo) => [
- q(7705),
+ q(7697),
q(0),
],
q(ymp) => [
- q(7706),
+ q(7698),
q(0),
],
q(ymq) => [
- q(7707),
+ q(7699),
q(0),
],
q(ymr) => [
- q(7708),
+ q(7700),
q(0),
],
q(yms) => [
- q(7709),
- q(0),
- ],
- q(ymt) => [
- q(7710),
+ q(7701),
q(0),
],
q(ymx) => [
- q(7711),
+ q(7702),
q(0),
],
q(ymz) => [
- q(7712),
+ q(7703),
q(0),
],
q(yna) => [
- q(7713),
+ q(7704),
q(0),
],
q(ynd) => [
- q(7714),
+ q(7705),
q(0),
],
q(yne) => [
- q(7715),
+ q(7706),
q(0),
],
q(yng) => [
- q(7716),
- q(0),
- ],
- q(ynh) => [
- q(7717),
+ q(7707),
q(0),
],
q(ynk) => [
- q(7718),
+ q(7708),
q(0),
],
q(ynl) => [
- q(7719),
+ q(7709),
q(0),
],
q(ynn) => [
- q(7720),
+ q(7710),
q(0),
],
q(yno) => [
- q(7721),
+ q(7711),
q(0),
],
q(ynq) => [
- q(7722),
+ q(7712),
q(0),
],
q(yns) => [
- q(7723),
+ q(7713),
q(0),
],
q(ynu) => [
- q(7724),
+ q(7714),
q(0),
],
q(yob) => [
- q(7725),
+ q(7715),
q(0),
],
q(yog) => [
- q(7726),
+ q(7716),
q(0),
],
q(yoi) => [
- q(7727),
+ q(7717),
q(0),
],
q(yok) => [
- q(7728),
+ q(7718),
q(0),
],
q(yol) => [
- q(7729),
+ q(7719),
q(0),
],
q(yom) => [
- q(7730),
+ q(7720),
q(0),
],
q(yon) => [
- q(7731),
+ q(7721),
q(0),
],
q(yor) => [
@@ -89078,31 +89076,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(yot) => [
- q(7732),
+ q(7722),
q(0),
],
q(yox) => [
- q(7733),
+ q(7723),
q(0),
],
q(yoy) => [
- q(7734),
+ q(7724),
q(0),
],
q(ypa) => [
- q(7735),
+ q(7725),
q(0),
],
q(ypb) => [
- q(7736),
+ q(7726),
q(0),
],
q(ypg) => [
- q(7737),
+ q(7727),
q(0),
],
q(yph) => [
- q(7738),
+ q(7728),
q(0),
],
q(ypk) => [
@@ -89110,359 +89108,355 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ypm) => [
- q(7739),
+ q(7729),
q(0),
],
q(ypn) => [
- q(7740),
+ q(7730),
q(0),
],
q(ypo) => [
- q(7741),
+ q(7731),
q(0),
],
q(ypp) => [
- q(7742),
+ q(7732),
q(0),
],
q(ypz) => [
- q(7743),
+ q(7733),
q(0),
],
q(yra) => [
- q(7744),
+ q(7734),
q(0),
],
q(yrb) => [
- q(7745),
+ q(7735),
q(0),
],
q(yre) => [
- q(7746),
+ q(7736),
q(0),
],
q(yri) => [
- q(7747),
+ q(7737),
q(0),
],
q(yrk) => [
- q(7748),
+ q(7738),
q(0),
],
q(yrl) => [
- q(7749),
+ q(7739),
q(0),
],
q(yrm) => [
- q(7750),
+ q(7740),
q(0),
],
q(yrn) => [
- q(7751),
+ q(7741),
q(0),
],
q(yrs) => [
- q(7752),
+ q(7742),
q(0),
],
q(yrw) => [
- q(7753),
+ q(7743),
q(0),
],
q(yry) => [
- q(7754),
+ q(7744),
q(0),
],
q(ysc) => [
- q(7755),
+ q(7745),
q(0),
],
q(ysd) => [
- q(7756),
+ q(7746),
q(0),
],
q(ysg) => [
- q(7757),
+ q(7747),
q(0),
],
q(ysl) => [
- q(7758),
+ q(7748),
q(0),
],
q(ysn) => [
- q(7759),
+ q(7749),
q(0),
],
q(yso) => [
- q(7760),
+ q(7750),
q(0),
],
q(ysp) => [
- q(7761),
+ q(7751),
q(0),
],
q(ysr) => [
- q(7762),
+ q(7752),
q(0),
],
q(yss) => [
- q(7763),
+ q(7753),
q(0),
],
q(ysy) => [
- q(7764),
+ q(7754),
q(0),
],
q(yta) => [
- q(7765),
+ q(7755),
q(0),
],
q(ytl) => [
- q(7766),
+ q(7756),
q(0),
],
q(ytp) => [
- q(7767),
+ q(7757),
q(0),
],
q(ytw) => [
- q(7768),
+ q(7758),
q(0),
],
q(yty) => [
- q(7769),
+ q(7759),
q(0),
],
q(yua) => [
- q(7770),
+ q(7760),
q(0),
],
q(yub) => [
- q(7771),
+ q(7761),
q(0),
],
q(yuc) => [
- q(7772),
+ q(7762),
q(0),
],
q(yud) => [
- q(7773),
+ q(7763),
q(0),
],
q(yue) => [
- q(7774),
+ q(7764),
q(0),
],
q(yuf) => [
- q(7775),
+ q(7765),
q(0),
],
q(yug) => [
- q(7776),
+ q(7766),
q(0),
],
q(yui) => [
- q(7777),
+ q(7767),
q(0),
],
q(yuj) => [
- q(7778),
+ q(7768),
q(0),
],
q(yuk) => [
- q(7779),
+ q(7769),
q(0),
],
q(yul) => [
- q(7780),
+ q(7770),
q(0),
],
q(yum) => [
- q(7781),
+ q(7771),
q(0),
],
q(yun) => [
- q(7782),
+ q(7772),
q(0),
],
q(yup) => [
- q(7783),
+ q(7773),
q(0),
],
q(yuq) => [
- q(7784),
+ q(7774),
q(0),
],
q(yur) => [
- q(7785),
+ q(7775),
q(0),
],
q(yut) => [
- q(7786),
- q(0),
- ],
- q(yuu) => [
- q(7787),
+ q(7776),
q(0),
],
q(yuw) => [
- q(7788),
+ q(7777),
q(0),
],
q(yux) => [
- q(7789),
+ q(7778),
q(0),
],
q(yuy) => [
- q(7790),
+ q(7779),
q(0),
],
q(yuz) => [
- q(7791),
+ q(7780),
q(0),
],
q(yva) => [
- q(7792),
+ q(7781),
q(0),
],
q(yvt) => [
- q(7793),
+ q(7782),
q(0),
],
q(ywa) => [
- q(7794),
+ q(7783),
q(0),
],
q(ywg) => [
- q(7795),
+ q(7784),
q(0),
],
q(ywl) => [
- q(7796),
+ q(7785),
q(0),
],
q(ywn) => [
- q(7797),
+ q(7786),
q(0),
],
q(ywq) => [
- q(7798),
+ q(7787),
q(0),
],
q(ywr) => [
- q(7799),
+ q(7788),
q(0),
],
q(ywt) => [
- q(7800),
+ q(7789),
q(0),
],
q(ywu) => [
- q(7801),
+ q(7790),
q(0),
],
q(yww) => [
- q(7802),
+ q(7791),
q(0),
],
q(yxa) => [
- q(7803),
+ q(7792),
q(0),
],
q(yxg) => [
- q(7804),
+ q(7793),
q(0),
],
q(yxl) => [
- q(7805),
+ q(7794),
q(0),
],
q(yxm) => [
- q(7806),
+ q(7795),
q(0),
],
q(yxu) => [
- q(7807),
+ q(7796),
q(0),
],
q(yxy) => [
- q(7808),
+ q(7797),
q(0),
],
q(yyr) => [
- q(7809),
+ q(7798),
q(0),
],
q(yyu) => [
- q(7810),
+ q(7799),
q(0),
],
q(yyz) => [
- q(7811),
+ q(7800),
q(0),
],
q(yzg) => [
- q(7812),
+ q(7801),
q(0),
],
q(yzk) => [
- q(7813),
+ q(7802),
q(0),
],
q(zaa) => [
- q(7814),
+ q(7803),
q(0),
],
q(zab) => [
- q(7815),
+ q(7804),
q(0),
],
q(zac) => [
- q(7816),
+ q(7805),
q(0),
],
q(zad) => [
- q(7817),
+ q(7806),
q(0),
],
q(zae) => [
- q(7818),
+ q(7807),
q(0),
],
q(zaf) => [
- q(7819),
+ q(7808),
q(0),
],
q(zag) => [
- q(7820),
+ q(7809),
q(0),
],
q(zah) => [
- q(7821),
+ q(7810),
q(0),
],
q(zai) => [
- q(7822),
+ q(7811),
q(0),
],
q(zaj) => [
- q(7823),
+ q(7812),
q(0),
],
q(zak) => [
- q(7824),
+ q(7813),
q(0),
],
q(zal) => [
- q(7825),
+ q(7814),
q(0),
],
q(zam) => [
- q(7826),
+ q(7815),
q(0),
],
q(zao) => [
- q(7827),
+ q(7816),
q(0),
],
q(zap) => [
@@ -89470,51 +89464,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zaq) => [
- q(7828),
+ q(7817),
q(0),
],
q(zar) => [
- q(7829),
+ q(7818),
q(0),
],
q(zas) => [
- q(7830),
+ q(7819),
q(0),
],
q(zat) => [
- q(7831),
+ q(7820),
q(0),
],
q(zau) => [
- q(7832),
+ q(7821),
q(0),
],
q(zav) => [
- q(7833),
+ q(7822),
q(0),
],
q(zaw) => [
- q(7834),
+ q(7823),
q(0),
],
q(zax) => [
- q(7835),
+ q(7824),
q(0),
],
q(zay) => [
- q(7836),
+ q(7825),
q(0),
],
q(zaz) => [
- q(7837),
+ q(7826),
q(0),
],
q(zbc) => [
- q(7838),
+ q(7827),
q(0),
],
q(zbe) => [
- q(7839),
+ q(7828),
q(0),
],
q(zbl) => [
@@ -89522,35 +89516,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zbt) => [
- q(7840),
+ q(7829),
q(0),
],
q(zbw) => [
- q(7841),
+ q(7830),
q(0),
],
q(zca) => [
- q(7842),
+ q(7831),
q(0),
],
q(zch) => [
- q(7843),
+ q(7832),
q(0),
],
q(zdj) => [
- q(7844),
+ q(7833),
q(0),
],
q(zea) => [
- q(7845),
+ q(7834),
q(0),
],
q(zeg) => [
- q(7846),
+ q(7835),
q(0),
],
q(zeh) => [
- q(7847),
+ q(7836),
q(0),
],
q(zen) => [
@@ -89558,11 +89552,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zga) => [
- q(7848),
+ q(7837),
q(0),
],
q(zgb) => [
- q(7849),
+ q(7838),
q(0),
],
q(zgh) => [
@@ -89570,15 +89564,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zgm) => [
- q(7850),
+ q(7839),
q(0),
],
q(zgn) => [
- q(7851),
+ q(7840),
q(0),
],
q(zgr) => [
- q(7852),
+ q(7841),
q(0),
],
q(zha) => [
@@ -89586,23 +89580,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zhb) => [
- q(7853),
+ q(7842),
q(0),
],
q(zhd) => [
- q(7854),
+ q(7843),
q(0),
],
q(zhi) => [
- q(7855),
+ q(7844),
q(0),
],
q(zhn) => [
- q(7856),
+ q(7845),
q(0),
],
q(zhw) => [
- q(7857),
+ q(7846),
q(0),
],
q(zhx) => [
@@ -89610,95 +89604,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zia) => [
- q(7858),
+ q(7847),
q(0),
],
q(zib) => [
- q(7859),
+ q(7848),
q(0),
],
q(zik) => [
- q(7860),
+ q(7849),
q(0),
],
q(zil) => [
- q(7861),
+ q(7850),
q(0),
],
q(zim) => [
- q(7862),
+ q(7851),
q(0),
],
q(zin) => [
- q(7863),
+ q(7852),
q(0),
],
q(zir) => [
- q(7864),
+ q(7853),
q(0),
],
q(ziw) => [
- q(7865),
+ q(7854),
q(0),
],
q(ziz) => [
- q(7866),
+ q(7855),
q(0),
],
q(zka) => [
- q(7867),
+ q(7856),
q(0),
],
q(zkb) => [
- q(7868),
+ q(7857),
q(0),
],
q(zkd) => [
- q(7869),
+ q(7858),
q(0),
],
q(zkg) => [
- q(7870),
+ q(7859),
q(0),
],
q(zkh) => [
- q(7871),
+ q(7860),
q(0),
],
q(zkk) => [
- q(7872),
+ q(7861),
q(0),
],
q(zkn) => [
- q(7873),
+ q(7862),
q(0),
],
q(zko) => [
- q(7874),
+ q(7863),
q(0),
],
q(zkp) => [
- q(7875),
+ q(7864),
q(0),
],
q(zkr) => [
- q(7876),
+ q(7865),
q(0),
],
q(zkt) => [
- q(7877),
+ q(7866),
q(0),
],
q(zku) => [
- q(7878),
+ q(7867),
q(0),
],
q(zkv) => [
- q(7879),
+ q(7868),
q(0),
],
q(zkz) => [
- q(7880),
+ q(7869),
q(0),
],
q(zle) => [
@@ -89706,19 +89700,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zlj) => [
- q(7881),
+ q(7870),
q(0),
],
q(zlm) => [
- q(7882),
+ q(7871),
q(0),
],
q(zln) => [
- q(7883),
+ q(7872),
q(0),
],
q(zlq) => [
- q(7884),
+ q(7873),
q(0),
],
q(zls) => [
@@ -89730,111 +89724,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zma) => [
- q(7885),
+ q(7874),
q(0),
],
q(zmb) => [
- q(7886),
+ q(7875),
q(0),
],
q(zmc) => [
- q(7887),
+ q(7876),
q(0),
],
q(zmd) => [
- q(7888),
+ q(7877),
q(0),
],
q(zme) => [
- q(7889),
+ q(7878),
q(0),
],
q(zmf) => [
- q(7890),
+ q(7879),
q(0),
],
q(zmg) => [
- q(7891),
+ q(7880),
q(0),
],
q(zmh) => [
- q(7892),
+ q(7881),
q(0),
],
q(zmi) => [
- q(7893),
+ q(7882),
q(0),
],
q(zmj) => [
- q(7894),
+ q(7883),
q(0),
],
q(zmk) => [
- q(7895),
+ q(7884),
q(0),
],
q(zml) => [
- q(7896),
+ q(7885),
q(0),
],
q(zmm) => [
- q(7897),
+ q(7886),
q(0),
],
q(zmn) => [
- q(7898),
+ q(7887),
q(0),
],
q(zmo) => [
- q(7899),
+ q(7888),
q(0),
],
q(zmp) => [
- q(7900),
+ q(7889),
q(0),
],
q(zmq) => [
- q(7901),
+ q(7890),
q(0),
],
q(zmr) => [
- q(7902),
+ q(7891),
q(0),
],
q(zms) => [
- q(7903),
+ q(7892),
q(0),
],
q(zmt) => [
- q(7904),
+ q(7893),
q(0),
],
q(zmu) => [
- q(7905),
+ q(7894),
q(0),
],
q(zmv) => [
- q(7906),
+ q(7895),
q(0),
],
q(zmw) => [
- q(7907),
+ q(7896),
q(0),
],
q(zmx) => [
- q(7908),
+ q(7897),
q(0),
],
q(zmy) => [
- q(7909),
+ q(7898),
q(0),
],
q(zmz) => [
- q(7910),
+ q(7899),
q(0),
],
q(zna) => [
- q(7911),
+ q(7900),
q(0),
],
q(znd) => [
@@ -89842,259 +89836,259 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zne) => [
- q(7912),
+ q(7901),
q(0),
],
q(zng) => [
- q(7913),
+ q(7902),
q(0),
],
q(znk) => [
- q(7914),
+ q(7903),
q(0),
],
q(zns) => [
- q(7915),
+ q(7904),
q(0),
],
q(zoc) => [
- q(7916),
+ q(7905),
q(0),
],
q(zoh) => [
- q(7917),
+ q(7906),
q(0),
],
q(zom) => [
- q(7918),
+ q(7907),
q(0),
],
q(zoo) => [
- q(7919),
+ q(7908),
q(0),
],
q(zoq) => [
- q(7920),
+ q(7909),
q(0),
],
q(zor) => [
- q(7921),
+ q(7910),
q(0),
],
q(zos) => [
- q(7922),
+ q(7911),
q(0),
],
q(zpa) => [
- q(7923),
+ q(7912),
q(0),
],
q(zpb) => [
- q(7924),
+ q(7913),
q(0),
],
q(zpc) => [
- q(7925),
+ q(7914),
q(0),
],
q(zpd) => [
- q(7926),
+ q(7915),
q(0),
],
q(zpe) => [
- q(7927),
+ q(7916),
q(0),
],
q(zpf) => [
- q(7928),
+ q(7917),
q(0),
],
q(zpg) => [
- q(7929),
+ q(7918),
q(0),
],
q(zph) => [
- q(7930),
+ q(7919),
q(0),
],
q(zpi) => [
- q(7931),
+ q(7920),
q(0),
],
q(zpj) => [
- q(7932),
+ q(7921),
q(0),
],
q(zpk) => [
- q(7933),
+ q(7922),
q(0),
],
q(zpl) => [
- q(7934),
+ q(7923),
q(0),
],
q(zpm) => [
- q(7935),
+ q(7924),
q(0),
],
q(zpn) => [
- q(7936),
+ q(7925),
q(0),
],
q(zpo) => [
- q(7937),
+ q(7926),
q(0),
],
q(zpp) => [
- q(7938),
+ q(7927),
q(0),
],
q(zpq) => [
- q(7939),
+ q(7928),
q(0),
],
q(zpr) => [
- q(7940),
+ q(7929),
q(0),
],
q(zps) => [
- q(7941),
+ q(7930),
q(0),
],
q(zpt) => [
- q(7942),
+ q(7931),
q(0),
],
q(zpu) => [
- q(7943),
+ q(7932),
q(0),
],
q(zpv) => [
- q(7944),
+ q(7933),
q(0),
],
q(zpw) => [
- q(7945),
+ q(7934),
q(0),
],
q(zpx) => [
- q(7946),
+ q(7935),
q(0),
],
q(zpy) => [
- q(7947),
+ q(7936),
q(0),
],
q(zpz) => [
- q(7948),
+ q(7937),
q(0),
],
q(zqe) => [
- q(7949),
+ q(7938),
q(0),
],
q(zra) => [
- q(7950),
+ q(7939),
q(0),
],
q(zrg) => [
- q(7951),
+ q(7940),
q(0),
],
q(zrn) => [
- q(7952),
+ q(7941),
q(0),
],
q(zro) => [
- q(7953),
+ q(7942),
q(0),
],
q(zrp) => [
- q(7954),
+ q(7943),
q(0),
],
q(zrs) => [
- q(7955),
+ q(7944),
q(0),
],
q(zsa) => [
- q(7956),
+ q(7945),
q(0),
],
q(zsk) => [
- q(7957),
+ q(7946),
q(0),
],
q(zsl) => [
- q(7958),
+ q(7947),
q(0),
],
q(zsm) => [
- q(7959),
+ q(7948),
q(0),
],
q(zsr) => [
- q(7960),
+ q(7949),
q(0),
],
q(zsu) => [
- q(7961),
+ q(7950),
q(0),
],
q(zte) => [
- q(7962),
+ q(7951),
q(0),
],
q(ztg) => [
- q(7963),
+ q(7952),
q(0),
],
q(ztl) => [
- q(7964),
+ q(7953),
q(0),
],
q(ztm) => [
- q(7965),
+ q(7954),
q(0),
],
q(ztn) => [
- q(7966),
+ q(7955),
q(0),
],
q(ztp) => [
- q(7967),
+ q(7956),
q(0),
],
q(ztq) => [
- q(7968),
+ q(7957),
q(0),
],
q(zts) => [
- q(7969),
+ q(7958),
q(0),
],
q(ztt) => [
- q(7970),
+ q(7959),
q(0),
],
q(ztu) => [
- q(7971),
+ q(7960),
q(0),
],
q(ztx) => [
- q(7972),
+ q(7961),
q(0),
],
q(zty) => [
- q(7973),
+ q(7962),
q(0),
],
q(zua) => [
- q(7974),
+ q(7963),
q(0),
],
q(zuh) => [
- q(7975),
+ q(7964),
q(0),
],
q(zul) => [
@@ -90102,7 +90096,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zum) => [
- q(7976),
+ q(7965),
q(0),
],
q(zun) => [
@@ -90110,11 +90104,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zuy) => [
- q(7977),
+ q(7966),
q(0),
],
q(zwa) => [
- q(7978),
+ q(7967),
q(0),
],
q(zxx) => [
@@ -90122,23 +90116,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zyb) => [
- q(7979),
+ q(7968),
q(0),
],
q(zyg) => [
- q(7980),
+ q(7969),
q(0),
],
q(zyj) => [
- q(7981),
+ q(7970),
q(0),
],
q(zyn) => [
- q(7982),
+ q(7971),
q(0),
],
q(zyp) => [
- q(7983),
+ q(7972),
q(0),
],
q(zza) => [
@@ -90146,59 +90140,1159 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zzj) => [
- q(7984),
+ q(7973),
q(0),
],
},
q(term) => {
+ q(aar) => [
+ q(0001),
+ q(0),
+ ],
+ q(abk) => [
+ q(0002),
+ q(0),
+ ],
+ q(ace) => [
+ q(0003),
+ q(0),
+ ],
+ q(ach) => [
+ q(0004),
+ q(0),
+ ],
+ q(ada) => [
+ q(0005),
+ q(0),
+ ],
+ q(ady) => [
+ q(0006),
+ q(0),
+ ],
+ q(afa) => [
+ q(0007),
+ q(0),
+ ],
+ q(afh) => [
+ q(0008),
+ q(0),
+ ],
+ q(afr) => [
+ q(0009),
+ q(0),
+ ],
+ q(ain) => [
+ q(0010),
+ q(0),
+ ],
+ q(aka) => [
+ q(0011),
+ q(0),
+ ],
+ q(akk) => [
+ q(0012),
+ q(0),
+ ],
+ q(ale) => [
+ q(0014),
+ q(0),
+ ],
+ q(alg) => [
+ q(0015),
+ q(0),
+ ],
+ q(alt) => [
+ q(0016),
+ q(0),
+ ],
+ q(amh) => [
+ q(0017),
+ q(0),
+ ],
+ q(ang) => [
+ q(0018),
+ q(0),
+ ],
+ q(anp) => [
+ q(0019),
+ q(0),
+ ],
+ q(apa) => [
+ q(0020),
+ q(0),
+ ],
+ q(ara) => [
+ q(0021),
+ q(0),
+ ],
+ q(arc) => [
+ q(0022),
+ q(0),
+ ],
+ q(arg) => [
+ q(0023),
+ q(0),
+ ],
+ q(arn) => [
+ q(0025),
+ q(0),
+ ],
+ q(arp) => [
+ q(0026),
+ q(0),
+ ],
+ q(art) => [
+ q(0027),
+ q(0),
+ ],
+ q(arw) => [
+ q(0028),
+ q(0),
+ ],
+ q(asm) => [
+ q(0029),
+ q(0),
+ ],
+ q(ast) => [
+ q(0030),
+ q(0),
+ ],
+ q(ath) => [
+ q(0031),
+ q(0),
+ ],
+ q(aus) => [
+ q(0032),
+ q(0),
+ ],
+ q(ava) => [
+ q(0033),
+ q(0),
+ ],
+ q(ave) => [
+ q(0034),
+ q(0),
+ ],
+ q(awa) => [
+ q(0035),
+ q(0),
+ ],
+ q(aym) => [
+ q(0036),
+ q(0),
+ ],
+ q(aze) => [
+ q(0037),
+ q(0),
+ ],
+ q(bad) => [
+ q(0038),
+ q(0),
+ ],
+ q(bai) => [
+ q(0039),
+ q(0),
+ ],
+ q(bak) => [
+ q(0040),
+ q(0),
+ ],
+ q(bal) => [
+ q(0041),
+ q(0),
+ ],
+ q(bam) => [
+ q(0042),
+ q(0),
+ ],
+ q(ban) => [
+ q(0043),
+ q(0),
+ ],
+ q(bas) => [
+ q(0045),
+ q(0),
+ ],
+ q(bat) => [
+ q(0046),
+ q(0),
+ ],
+ q(bej) => [
+ q(0047),
+ q(0),
+ ],
+ q(bel) => [
+ q(0048),
+ q(0),
+ ],
+ q(bem) => [
+ q(0049),
+ q(0),
+ ],
+ q(ben) => [
+ q(0050),
+ q(0),
+ ],
+ q(ber) => [
+ q(0051),
+ q(0),
+ ],
+ q(bho) => [
+ q(0052),
+ q(0),
+ ],
+ q(bih) => [
+ q(0053),
+ q(0),
+ ],
+ q(bik) => [
+ q(0054),
+ q(0),
+ ],
+ q(bin) => [
+ q(0055),
+ q(0),
+ ],
+ q(bis) => [
+ q(0056),
+ q(0),
+ ],
+ q(bla) => [
+ q(0057),
+ q(0),
+ ],
+ q(bnt) => [
+ q(0058),
+ q(0),
+ ],
q(bod) => [
q(0427),
q(0),
],
+ q(bos) => [
+ q(0059),
+ q(0),
+ ],
+ q(bra) => [
+ q(0060),
+ q(0),
+ ],
+ q(bre) => [
+ q(0061),
+ q(0),
+ ],
+ q(btk) => [
+ q(0062),
+ q(0),
+ ],
+ q(bua) => [
+ q(0063),
+ q(0),
+ ],
+ q(bug) => [
+ q(0064),
+ q(0),
+ ],
+ q(bul) => [
+ q(0065),
+ q(0),
+ ],
+ q(byn) => [
+ q(0067),
+ q(0),
+ ],
+ q(cad) => [
+ q(0068),
+ q(0),
+ ],
+ q(cai) => [
+ q(0069),
+ q(0),
+ ],
+ q(car) => [
+ q(0070),
+ q(0),
+ ],
+ q(cat) => [
+ q(0071),
+ q(0),
+ ],
+ q(cau) => [
+ q(0072),
+ q(0),
+ ],
+ q(ceb) => [
+ q(0073),
+ q(0),
+ ],
+ q(cel) => [
+ q(0074),
+ q(0),
+ ],
q(ces) => [
q(0101),
q(0),
],
+ q(cha) => [
+ q(0075),
+ q(0),
+ ],
+ q(chb) => [
+ q(0076),
+ q(0),
+ ],
+ q(che) => [
+ q(0077),
+ q(0),
+ ],
+ q(chg) => [
+ q(0078),
+ q(0),
+ ],
+ q(chk) => [
+ q(0080),
+ q(0),
+ ],
+ q(chm) => [
+ q(0081),
+ q(0),
+ ],
+ q(chn) => [
+ q(0082),
+ q(0),
+ ],
+ q(cho) => [
+ q(0083),
+ q(0),
+ ],
+ q(chp) => [
+ q(0084),
+ q(0),
+ ],
+ q(chr) => [
+ q(0085),
+ q(0),
+ ],
+ q(chu) => [
+ q(0086),
+ q(0),
+ ],
+ q(chv) => [
+ q(0087),
+ q(0),
+ ],
+ q(chy) => [
+ q(0088),
+ q(0),
+ ],
+ q(cmc) => [
+ q(0089),
+ q(0),
+ ],
+ q(cop) => [
+ q(0090),
+ q(0),
+ ],
+ q(cor) => [
+ q(0091),
+ q(0),
+ ],
+ q(cos) => [
+ q(0092),
+ q(0),
+ ],
+ q(cpe) => [
+ q(0093),
+ q(0),
+ ],
+ q(cpf) => [
+ q(0094),
+ q(0),
+ ],
+ q(cpp) => [
+ q(0095),
+ q(0),
+ ],
+ q(cre) => [
+ q(0096),
+ q(0),
+ ],
+ q(crh) => [
+ q(0097),
+ q(0),
+ ],
+ q(crp) => [
+ q(0098),
+ q(0),
+ ],
+ q(csb) => [
+ q(0099),
+ q(0),
+ ],
+ q(cus) => [
+ q(0100),
+ q(0),
+ ],
q(cym) => [
q(0466),
q(0),
],
+ q(dak) => [
+ q(0102),
+ q(0),
+ ],
+ q(dan) => [
+ q(0103),
+ q(0),
+ ],
+ q(dar) => [
+ q(0104),
+ q(0),
+ ],
+ q(day) => [
+ q(0105),
+ q(0),
+ ],
+ q(del) => [
+ q(0106),
+ q(0),
+ ],
+ q(den) => [
+ q(0107),
+ q(0),
+ ],
q(deu) => [
q(0150),
q(0),
],
+ q(dgr) => [
+ q(0108),
+ q(0),
+ ],
+ q(din) => [
+ q(0109),
+ q(0),
+ ],
+ q(div) => [
+ q(0110),
+ q(0),
+ ],
+ q(doi) => [
+ q(0111),
+ q(0),
+ ],
+ q(dra) => [
+ q(0112),
+ q(0),
+ ],
+ q(dsb) => [
+ q(0113),
+ q(0),
+ ],
+ q(dua) => [
+ q(0114),
+ q(0),
+ ],
+ q(dum) => [
+ q(0115),
+ q(0),
+ ],
+ q(dyu) => [
+ q(0117),
+ q(0),
+ ],
+ q(dzo) => [
+ q(0118),
+ q(0),
+ ],
+ q(efi) => [
+ q(0119),
+ q(0),
+ ],
+ q(egy) => [
+ q(0120),
+ q(0),
+ ],
+ q(eka) => [
+ q(0121),
+ q(0),
+ ],
q(ell) => [
q(0164),
q(0),
],
+ q(elx) => [
+ q(0122),
+ q(0),
+ ],
+ q(eng) => [
+ q(0123),
+ q(0),
+ ],
+ q(enm) => [
+ q(0124),
+ q(0),
+ ],
+ q(epo) => [
+ q(0125),
+ q(0),
+ ],
+ q(est) => [
+ q(0126),
+ q(0),
+ ],
q(eus) => [
q(0044),
q(0),
],
+ q(ewe) => [
+ q(0127),
+ q(0),
+ ],
+ q(ewo) => [
+ q(0128),
+ q(0),
+ ],
+ q(fan) => [
+ q(0129),
+ q(0),
+ ],
+ q(fao) => [
+ q(0130),
+ q(0),
+ ],
q(fas) => [
q(0342),
q(0),
],
+ q(fat) => [
+ q(0131),
+ q(0),
+ ],
+ q(fij) => [
+ q(0132),
+ q(0),
+ ],
+ q(fil) => [
+ q(0133),
+ q(0),
+ ],
+ q(fin) => [
+ q(0134),
+ q(0),
+ ],
+ q(fiu) => [
+ q(0135),
+ q(0),
+ ],
+ q(fon) => [
+ q(0136),
+ q(0),
+ ],
q(fra) => [
q(0137),
q(0),
],
+ q(frm) => [
+ q(0138),
+ q(0),
+ ],
+ q(fro) => [
+ q(0139),
+ q(0),
+ ],
+ q(frr) => [
+ q(0140),
+ q(0),
+ ],
+ q(frs) => [
+ q(0141),
+ q(0),
+ ],
+ q(fry) => [
+ q(0142),
+ q(0),
+ ],
+ q(ful) => [
+ q(0143),
+ q(0),
+ ],
+ q(fur) => [
+ q(0144),
+ q(0),
+ ],
+ q(gaa) => [
+ q(0145),
+ q(0),
+ ],
+ q(gay) => [
+ q(0146),
+ q(0),
+ ],
+ q(gba) => [
+ q(0147),
+ q(0),
+ ],
+ q(gem) => [
+ q(0148),
+ q(0),
+ ],
+ q(gez) => [
+ q(0151),
+ q(0),
+ ],
+ q(gil) => [
+ q(0152),
+ q(0),
+ ],
+ q(gla) => [
+ q(0153),
+ q(0),
+ ],
+ q(gle) => [
+ q(0154),
+ q(0),
+ ],
+ q(glg) => [
+ q(0155),
+ q(0),
+ ],
+ q(glv) => [
+ q(0156),
+ q(0),
+ ],
+ q(gmh) => [
+ q(0157),
+ q(0),
+ ],
+ q(goh) => [
+ q(0158),
+ q(0),
+ ],
+ q(gon) => [
+ q(0159),
+ q(0),
+ ],
+ q(gor) => [
+ q(0160),
+ q(0),
+ ],
+ q(got) => [
+ q(0161),
+ q(0),
+ ],
+ q(grb) => [
+ q(0162),
+ q(0),
+ ],
+ q(grc) => [
+ q(0163),
+ q(0),
+ ],
+ q(grn) => [
+ q(0165),
+ q(0),
+ ],
+ q(gsw) => [
+ q(0166),
+ q(0),
+ ],
+ q(guj) => [
+ q(0167),
+ q(0),
+ ],
+ q(gwi) => [
+ q(0168),
+ q(0),
+ ],
+ q(hai) => [
+ q(0169),
+ q(0),
+ ],
+ q(hat) => [
+ q(0170),
+ q(0),
+ ],
+ q(hau) => [
+ q(0171),
+ q(0),
+ ],
+ q(haw) => [
+ q(0172),
+ q(0),
+ ],
+ q(heb) => [
+ q(0173),
+ q(0),
+ ],
+ q(her) => [
+ q(0174),
+ q(0),
+ ],
+ q(hil) => [
+ q(0175),
+ q(0),
+ ],
+ q(him) => [
+ q(0176),
+ q(0),
+ ],
+ q(hin) => [
+ q(0177),
+ q(0),
+ ],
+ q(hit) => [
+ q(0178),
+ q(0),
+ ],
+ q(hmn) => [
+ q(0179),
+ q(0),
+ ],
+ q(hmo) => [
+ q(0180),
+ q(0),
+ ],
+ q(hrv) => [
+ q(0181),
+ q(0),
+ ],
+ q(hsb) => [
+ q(0182),
+ q(0),
+ ],
+ q(hun) => [
+ q(0183),
+ q(0),
+ ],
+ q(hup) => [
+ q(0184),
+ q(0),
+ ],
q(hye) => [
q(0024),
q(0),
],
+ q(iba) => [
+ q(0185),
+ q(0),
+ ],
+ q(ibo) => [
+ q(0186),
+ q(0),
+ ],
+ q(ido) => [
+ q(0188),
+ q(0),
+ ],
+ q(iii) => [
+ q(0189),
+ q(0),
+ ],
+ q(ijo) => [
+ q(0190),
+ q(0),
+ ],
+ q(iku) => [
+ q(0191),
+ q(0),
+ ],
+ q(ile) => [
+ q(0192),
+ q(0),
+ ],
+ q(ilo) => [
+ q(0193),
+ q(0),
+ ],
+ q(ina) => [
+ q(0194),
+ q(0),
+ ],
+ q(inc) => [
+ q(0195),
+ q(0),
+ ],
+ q(ind) => [
+ q(0196),
+ q(0),
+ ],
+ q(ine) => [
+ q(0197),
+ q(0),
+ ],
+ q(inh) => [
+ q(0198),
+ q(0),
+ ],
+ q(ipk) => [
+ q(0199),
+ q(0),
+ ],
+ q(ira) => [
+ q(0200),
+ q(0),
+ ],
+ q(iro) => [
+ q(0201),
+ q(0),
+ ],
q(isl) => [
q(0187),
q(0),
],
+ q(ita) => [
+ q(0202),
+ q(0),
+ ],
+ q(jav) => [
+ q(0203),
+ q(0),
+ ],
+ q(jbo) => [
+ q(0204),
+ q(0),
+ ],
+ q(jpn) => [
+ q(0205),
+ q(0),
+ ],
+ q(jpr) => [
+ q(0206),
+ q(0),
+ ],
+ q(jrb) => [
+ q(0207),
+ q(0),
+ ],
+ q(kaa) => [
+ q(0208),
+ q(0),
+ ],
+ q(kab) => [
+ q(0209),
+ q(0),
+ ],
+ q(kac) => [
+ q(0210),
+ q(0),
+ ],
+ q(kal) => [
+ q(0211),
+ q(0),
+ ],
+ q(kam) => [
+ q(0212),
+ q(0),
+ ],
+ q(kan) => [
+ q(0213),
+ q(0),
+ ],
+ q(kar) => [
+ q(0214),
+ q(0),
+ ],
+ q(kas) => [
+ q(0215),
+ q(0),
+ ],
q(kat) => [
q(0149),
q(0),
],
+ q(kau) => [
+ q(0216),
+ q(0),
+ ],
+ q(kaw) => [
+ q(0217),
+ q(0),
+ ],
+ q(kaz) => [
+ q(0218),
+ q(0),
+ ],
+ q(kbd) => [
+ q(0219),
+ q(0),
+ ],
+ q(kha) => [
+ q(0220),
+ q(0),
+ ],
+ q(khi) => [
+ q(0221),
+ q(0),
+ ],
+ q(khm) => [
+ q(0222),
+ q(0),
+ ],
+ q(kho) => [
+ q(0223),
+ q(0),
+ ],
+ q(kik) => [
+ q(0224),
+ q(0),
+ ],
+ q(kin) => [
+ q(0225),
+ q(0),
+ ],
+ q(kir) => [
+ q(0226),
+ q(0),
+ ],
+ q(kmb) => [
+ q(0227),
+ q(0),
+ ],
+ q(kok) => [
+ q(0228),
+ q(0),
+ ],
+ q(kom) => [
+ q(0229),
+ q(0),
+ ],
+ q(kon) => [
+ q(0230),
+ q(0),
+ ],
+ q(kor) => [
+ q(0231),
+ q(0),
+ ],
+ q(kos) => [
+ q(0232),
+ q(0),
+ ],
+ q(kpe) => [
+ q(0233),
+ q(0),
+ ],
+ q(krc) => [
+ q(0234),
+ q(0),
+ ],
+ q(krl) => [
+ q(0235),
+ q(0),
+ ],
+ q(kro) => [
+ q(0236),
+ q(0),
+ ],
+ q(kru) => [
+ q(0237),
+ q(0),
+ ],
+ q(kua) => [
+ q(0238),
+ q(0),
+ ],
+ q(kum) => [
+ q(0239),
+ q(0),
+ ],
+ q(kur) => [
+ q(0240),
+ q(0),
+ ],
+ q(kut) => [
+ q(0241),
+ q(0),
+ ],
+ q(lad) => [
+ q(0242),
+ q(0),
+ ],
+ q(lah) => [
+ q(0243),
+ q(0),
+ ],
+ q(lam) => [
+ q(0244),
+ q(0),
+ ],
+ q(lao) => [
+ q(0245),
+ q(0),
+ ],
+ q(lat) => [
+ q(0246),
+ q(0),
+ ],
+ q(lav) => [
+ q(0247),
+ q(0),
+ ],
+ q(lez) => [
+ q(0248),
+ q(0),
+ ],
+ q(lim) => [
+ q(0249),
+ q(0),
+ ],
+ q(lin) => [
+ q(0250),
+ q(0),
+ ],
+ q(lit) => [
+ q(0251),
+ q(0),
+ ],
+ q(lol) => [
+ q(0252),
+ q(0),
+ ],
+ q(loz) => [
+ q(0253),
+ q(0),
+ ],
+ q(ltz) => [
+ q(0254),
+ q(0),
+ ],
+ q(lua) => [
+ q(0255),
+ q(0),
+ ],
+ q(lub) => [
+ q(0256),
+ q(0),
+ ],
+ q(lug) => [
+ q(0257),
+ q(0),
+ ],
+ q(lui) => [
+ q(0258),
+ q(0),
+ ],
+ q(lun) => [
+ q(0259),
+ q(0),
+ ],
+ q(luo) => [
+ q(0260),
+ q(0),
+ ],
+ q(lus) => [
+ q(0261),
+ q(0),
+ ],
+ q(mad) => [
+ q(0263),
+ q(0),
+ ],
+ q(mag) => [
+ q(0264),
+ q(0),
+ ],
+ q(mah) => [
+ q(0265),
+ q(0),
+ ],
+ q(mai) => [
+ q(0266),
+ q(0),
+ ],
+ q(mak) => [
+ q(0267),
+ q(0),
+ ],
+ q(mal) => [
+ q(0268),
+ q(0),
+ ],
+ q(man) => [
+ q(0269),
+ q(0),
+ ],
+ q(map) => [
+ q(0271),
+ q(0),
+ ],
+ q(mar) => [
+ q(0272),
+ q(0),
+ ],
+ q(mas) => [
+ q(0273),
+ q(0),
+ ],
+ q(mdf) => [
+ q(0275),
+ q(0),
+ ],
+ q(mdr) => [
+ q(0276),
+ q(0),
+ ],
+ q(men) => [
+ q(0277),
+ q(0),
+ ],
+ q(mga) => [
+ q(0278),
+ q(0),
+ ],
+ q(mic) => [
+ q(0279),
+ q(0),
+ ],
+ q(min) => [
+ q(0280),
+ q(0),
+ ],
+ q(mis) => [
+ q(0281),
+ q(0),
+ ],
q(mkd) => [
q(0262),
q(0),
],
+ q(mkh) => [
+ q(0282),
+ q(0),
+ ],
+ q(mlg) => [
+ q(0283),
+ q(0),
+ ],
+ q(mlt) => [
+ q(0284),
+ q(0),
+ ],
+ q(mnc) => [
+ q(0285),
+ q(0),
+ ],
+ q(mni) => [
+ q(0286),
+ q(0),
+ ],
+ q(mno) => [
+ q(0287),
+ q(0),
+ ],
+ q(moh) => [
+ q(0288),
+ q(0),
+ ],
+ q(mon) => [
+ q(0289),
+ q(0),
+ ],
+ q(mos) => [
+ q(0290),
+ q(0),
+ ],
q(mri) => [
q(0270),
q(0),
@@ -90207,30 +91301,794 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0274),
q(0),
],
+ q(mul) => [
+ q(0291),
+ q(0),
+ ],
+ q(mun) => [
+ q(0292),
+ q(0),
+ ],
+ q(mus) => [
+ q(0293),
+ q(0),
+ ],
+ q(mwl) => [
+ q(0294),
+ q(0),
+ ],
+ q(mwr) => [
+ q(0295),
+ q(0),
+ ],
q(mya) => [
q(0066),
q(0),
],
+ q(myn) => [
+ q(0296),
+ q(0),
+ ],
+ q(myv) => [
+ q(0297),
+ q(0),
+ ],
+ q(nah) => [
+ q(0298),
+ q(0),
+ ],
+ q(nai) => [
+ q(0299),
+ q(0),
+ ],
+ q(nap) => [
+ q(0300),
+ q(0),
+ ],
+ q(nau) => [
+ q(0301),
+ q(0),
+ ],
+ q(nav) => [
+ q(0302),
+ q(0),
+ ],
+ q(nbl) => [
+ q(0303),
+ q(0),
+ ],
+ q(nde) => [
+ q(0304),
+ q(0),
+ ],
+ q(ndo) => [
+ q(0305),
+ q(0),
+ ],
+ q(nds) => [
+ q(0306),
+ q(0),
+ ],
+ q(nep) => [
+ q(0307),
+ q(0),
+ ],
+ q(new) => [
+ q(0308),
+ q(0),
+ ],
+ q(nia) => [
+ q(0309),
+ q(0),
+ ],
+ q(nic) => [
+ q(0310),
+ q(0),
+ ],
+ q(niu) => [
+ q(0311),
+ q(0),
+ ],
q(nld) => [
q(0116),
q(0),
],
+ q(nno) => [
+ q(0312),
+ q(0),
+ ],
+ q(nob) => [
+ q(0313),
+ q(0),
+ ],
+ q(nog) => [
+ q(0314),
+ q(0),
+ ],
+ q(non) => [
+ q(0315),
+ q(0),
+ ],
+ q(nor) => [
+ q(0316),
+ q(0),
+ ],
+ q(nqo) => [
+ q(0317),
+ q(0),
+ ],
+ q(nso) => [
+ q(0318),
+ q(0),
+ ],
+ q(nub) => [
+ q(0319),
+ q(0),
+ ],
+ q(nwc) => [
+ q(0320),
+ q(0),
+ ],
+ q(nya) => [
+ q(0321),
+ q(0),
+ ],
+ q(nym) => [
+ q(0322),
+ q(0),
+ ],
+ q(nyn) => [
+ q(0323),
+ q(0),
+ ],
+ q(nyo) => [
+ q(0324),
+ q(0),
+ ],
+ q(nzi) => [
+ q(0325),
+ q(0),
+ ],
+ q(oci) => [
+ q(0326),
+ q(0),
+ ],
+ q(oji) => [
+ q(0327),
+ q(0),
+ ],
+ q(ori) => [
+ q(0328),
+ q(0),
+ ],
+ q(orm) => [
+ q(0329),
+ q(0),
+ ],
+ q(osa) => [
+ q(0330),
+ q(0),
+ ],
+ q(oss) => [
+ q(0331),
+ q(0),
+ ],
+ q(ota) => [
+ q(0332),
+ q(0),
+ ],
+ q(oto) => [
+ q(0333),
+ q(0),
+ ],
+ q(paa) => [
+ q(0334),
+ q(0),
+ ],
+ q(pag) => [
+ q(0335),
+ q(0),
+ ],
+ q(pal) => [
+ q(0336),
+ q(0),
+ ],
+ q(pam) => [
+ q(0337),
+ q(0),
+ ],
+ q(pan) => [
+ q(0338),
+ q(0),
+ ],
+ q(pap) => [
+ q(0339),
+ q(0),
+ ],
+ q(pau) => [
+ q(0340),
+ q(0),
+ ],
+ q(peo) => [
+ q(0341),
+ q(0),
+ ],
+ q(phi) => [
+ q(0343),
+ q(0),
+ ],
+ q(phn) => [
+ q(0344),
+ q(0),
+ ],
+ q(pli) => [
+ q(0345),
+ q(0),
+ ],
+ q(pol) => [
+ q(0346),
+ q(0),
+ ],
+ q(pon) => [
+ q(0347),
+ q(0),
+ ],
+ q(por) => [
+ q(0348),
+ q(0),
+ ],
+ q(pra) => [
+ q(0349),
+ q(0),
+ ],
+ q(pro) => [
+ q(0350),
+ q(0),
+ ],
+ q(pus) => [
+ q(0351),
+ q(0),
+ ],
+ q(qtz) => [
+ q(0352),
+ q(0),
+ ],
+ q(que) => [
+ q(0353),
+ q(0),
+ ],
+ q(raj) => [
+ q(0354),
+ q(0),
+ ],
+ q(rap) => [
+ q(0355),
+ q(0),
+ ],
+ q(rar) => [
+ q(0356),
+ q(0),
+ ],
+ q(roa) => [
+ q(0357),
+ q(0),
+ ],
+ q(roh) => [
+ q(0358),
+ q(0),
+ ],
+ q(rom) => [
+ q(0359),
+ q(0),
+ ],
q(ron) => [
q(0360),
q(0),
],
+ q(run) => [
+ q(0361),
+ q(0),
+ ],
+ q(rup) => [
+ q(0362),
+ q(0),
+ ],
+ q(rus) => [
+ q(0363),
+ q(0),
+ ],
+ q(sad) => [
+ q(0364),
+ q(0),
+ ],
+ q(sag) => [
+ q(0365),
+ q(0),
+ ],
+ q(sah) => [
+ q(0366),
+ q(0),
+ ],
+ q(sai) => [
+ q(0367),
+ q(0),
+ ],
+ q(sal) => [
+ q(0368),
+ q(0),
+ ],
+ q(sam) => [
+ q(0369),
+ q(0),
+ ],
+ q(san) => [
+ q(0370),
+ q(0),
+ ],
+ q(sas) => [
+ q(0371),
+ q(0),
+ ],
+ q(sat) => [
+ q(0372),
+ q(0),
+ ],
+ q(scn) => [
+ q(0373),
+ q(0),
+ ],
+ q(sco) => [
+ q(0374),
+ q(0),
+ ],
+ q(sel) => [
+ q(0375),
+ q(0),
+ ],
+ q(sem) => [
+ q(0376),
+ q(0),
+ ],
+ q(sga) => [
+ q(0377),
+ q(0),
+ ],
+ q(sgn) => [
+ q(0378),
+ q(0),
+ ],
+ q(shn) => [
+ q(0379),
+ q(0),
+ ],
+ q(sid) => [
+ q(0380),
+ q(0),
+ ],
+ q(sin) => [
+ q(0381),
+ q(0),
+ ],
+ q(sio) => [
+ q(0382),
+ q(0),
+ ],
+ q(sit) => [
+ q(0383),
+ q(0),
+ ],
+ q(sla) => [
+ q(0384),
+ q(0),
+ ],
q(slk) => [
q(0385),
q(0),
],
+ q(slv) => [
+ q(0386),
+ q(0),
+ ],
+ q(sma) => [
+ q(0387),
+ q(0),
+ ],
+ q(sme) => [
+ q(0388),
+ q(0),
+ ],
+ q(smi) => [
+ q(0389),
+ q(0),
+ ],
+ q(smj) => [
+ q(0390),
+ q(0),
+ ],
+ q(smn) => [
+ q(0391),
+ q(0),
+ ],
+ q(smo) => [
+ q(0392),
+ q(0),
+ ],
+ q(sms) => [
+ q(0393),
+ q(0),
+ ],
+ q(sna) => [
+ q(0394),
+ q(0),
+ ],
+ q(snd) => [
+ q(0395),
+ q(0),
+ ],
+ q(snk) => [
+ q(0396),
+ q(0),
+ ],
+ q(sog) => [
+ q(0397),
+ q(0),
+ ],
+ q(som) => [
+ q(0398),
+ q(0),
+ ],
+ q(son) => [
+ q(0399),
+ q(0),
+ ],
+ q(sot) => [
+ q(0400),
+ q(0),
+ ],
+ q(spa) => [
+ q(0401),
+ q(0),
+ ],
q(sqi) => [
q(0013),
q(0),
],
+ q(srd) => [
+ q(0402),
+ q(0),
+ ],
+ q(srn) => [
+ q(0403),
+ q(0),
+ ],
+ q(srp) => [
+ q(0404),
+ q(0),
+ ],
+ q(srr) => [
+ q(0405),
+ q(0),
+ ],
+ q(ssa) => [
+ q(0406),
+ q(0),
+ ],
+ q(ssw) => [
+ q(0407),
+ q(0),
+ ],
+ q(suk) => [
+ q(0408),
+ q(0),
+ ],
+ q(sun) => [
+ q(0409),
+ q(0),
+ ],
+ q(sus) => [
+ q(0410),
+ q(0),
+ ],
+ q(sux) => [
+ q(0411),
+ q(0),
+ ],
+ q(swa) => [
+ q(0412),
+ q(0),
+ ],
+ q(swe) => [
+ q(0413),
+ q(0),
+ ],
+ q(syc) => [
+ q(0414),
+ q(0),
+ ],
+ q(syr) => [
+ q(0415),
+ q(0),
+ ],
+ q(tah) => [
+ q(0416),
+ q(0),
+ ],
+ q(tai) => [
+ q(0417),
+ q(0),
+ ],
+ q(tam) => [
+ q(0418),
+ q(0),
+ ],
+ q(tat) => [
+ q(0419),
+ q(0),
+ ],
+ q(tel) => [
+ q(0420),
+ q(0),
+ ],
+ q(tem) => [
+ q(0421),
+ q(0),
+ ],
+ q(ter) => [
+ q(0422),
+ q(0),
+ ],
+ q(tet) => [
+ q(0423),
+ q(0),
+ ],
+ q(tgk) => [
+ q(0424),
+ q(0),
+ ],
+ q(tgl) => [
+ q(0425),
+ q(0),
+ ],
+ q(tha) => [
+ q(0426),
+ q(0),
+ ],
+ q(tig) => [
+ q(0428),
+ q(0),
+ ],
+ q(tir) => [
+ q(0429),
+ q(0),
+ ],
+ q(tiv) => [
+ q(0430),
+ q(0),
+ ],
+ q(tkl) => [
+ q(0431),
+ q(0),
+ ],
+ q(tlh) => [
+ q(0432),
+ q(0),
+ ],
+ q(tli) => [
+ q(0433),
+ q(0),
+ ],
+ q(tmh) => [
+ q(0434),
+ q(0),
+ ],
+ q(tog) => [
+ q(0435),
+ q(0),
+ ],
+ q(ton) => [
+ q(0436),
+ q(0),
+ ],
+ q(tpi) => [
+ q(0437),
+ q(0),
+ ],
+ q(tsi) => [
+ q(0438),
+ q(0),
+ ],
+ q(tsn) => [
+ q(0439),
+ q(0),
+ ],
+ q(tso) => [
+ q(0440),
+ q(0),
+ ],
+ q(tuk) => [
+ q(0441),
+ q(0),
+ ],
+ q(tum) => [
+ q(0442),
+ q(0),
+ ],
+ q(tup) => [
+ q(0443),
+ q(0),
+ ],
+ q(tur) => [
+ q(0444),
+ q(0),
+ ],
+ q(tut) => [
+ q(0445),
+ q(0),
+ ],
+ q(tvl) => [
+ q(0446),
+ q(0),
+ ],
+ q(twi) => [
+ q(0447),
+ q(0),
+ ],
+ q(tyv) => [
+ q(0448),
+ q(0),
+ ],
+ q(udm) => [
+ q(0449),
+ q(0),
+ ],
+ q(uga) => [
+ q(0450),
+ q(0),
+ ],
+ q(uig) => [
+ q(0451),
+ q(0),
+ ],
+ q(ukr) => [
+ q(0452),
+ q(0),
+ ],
+ q(umb) => [
+ q(0453),
+ q(0),
+ ],
+ q(und) => [
+ q(0454),
+ q(0),
+ ],
+ q(urd) => [
+ q(0455),
+ q(0),
+ ],
+ q(uzb) => [
+ q(0456),
+ q(0),
+ ],
+ q(vai) => [
+ q(0457),
+ q(0),
+ ],
+ q(ven) => [
+ q(0458),
+ q(0),
+ ],
+ q(vie) => [
+ q(0459),
+ q(0),
+ ],
+ q(vol) => [
+ q(0460),
+ q(0),
+ ],
+ q(vot) => [
+ q(0461),
+ q(0),
+ ],
+ q(wak) => [
+ q(0462),
+ q(0),
+ ],
+ q(wal) => [
+ q(0463),
+ q(0),
+ ],
+ q(war) => [
+ q(0464),
+ q(0),
+ ],
+ q(was) => [
+ q(0465),
+ q(0),
+ ],
+ q(wen) => [
+ q(0467),
+ q(0),
+ ],
+ q(wln) => [
+ q(0468),
+ q(0),
+ ],
+ q(wol) => [
+ q(0469),
+ q(0),
+ ],
+ q(xal) => [
+ q(0470),
+ q(0),
+ ],
+ q(xho) => [
+ q(0471),
+ q(0),
+ ],
+ q(yao) => [
+ q(0472),
+ q(0),
+ ],
+ q(yap) => [
+ q(0473),
+ q(0),
+ ],
+ q(yid) => [
+ q(0474),
+ q(0),
+ ],
+ q(yor) => [
+ q(0475),
+ q(0),
+ ],
+ q(ypk) => [
+ q(0476),
+ q(0),
+ ],
+ q(zap) => [
+ q(0477),
+ q(0),
+ ],
+ q(zbl) => [
+ q(0478),
+ q(0),
+ ],
+ q(zen) => [
+ q(0479),
+ q(0),
+ ],
+ q(zgh) => [
+ q(0480),
+ q(0),
+ ],
+ q(zha) => [
+ q(0481),
+ q(0),
+ ],
q(zho) => [
q(0079),
q(0),
],
+ q(znd) => [
+ q(0482),
+ q(0),
+ ],
+ q(zul) => [
+ q(0483),
+ q(0),
+ ],
+ q(zun) => [
+ q(0484),
+ q(0),
+ ],
+ q(zxx) => [
+ q(0485),
+ q(0),
+ ],
+ q(zza) => [
+ q(0486),
+ q(0),
+ ],
},
};
@@ -90970,7464 +92828,7919 @@ $Locale::Codes::Data{'language'}{'id2code'} = {
q(0546) => q(aai),
q(0547) => q(aak),
q(0548) => q(aal),
- q(0549) => q(aam),
- 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(adp),
- q(0617) => q(adq),
- q(0618) => q(adr),
- q(0619) => q(ads),
- q(0620) => q(adt),
- q(0621) => q(adu),
- q(0622) => q(adw),
- q(0623) => q(adx),
- q(0624) => q(adz),
- q(0625) => q(aea),
- q(0626) => q(aeb),
- q(0627) => q(aec),
- q(0628) => q(aed),
- q(0629) => q(aee),
- q(0630) => q(aek),
- q(0631) => q(ael),
- q(0632) => q(aem),
- q(0633) => q(aen),
- q(0634) => q(aeq),
- q(0635) => q(aer),
- q(0636) => q(aes),
- q(0637) => q(aeu),
- q(0638) => q(aew),
- q(0639) => q(aey),
- q(0640) => q(aez),
- q(0641) => q(afb),
- q(0642) => q(afd),
- q(0643) => q(afe),
- q(0644) => q(afg),
- q(0645) => q(afi),
- q(0646) => q(afk),
- q(0647) => q(afn),
- q(0648) => q(afo),
- q(0649) => q(afp),
- q(0650) => q(afs),
- q(0651) => q(aft),
- q(0652) => q(afu),
- q(0653) => q(afz),
- q(0654) => q(aga),
- q(0655) => q(agb),
- q(0656) => q(agc),
- q(0657) => q(agd),
- q(0658) => q(age),
- q(0659) => q(agf),
- q(0660) => q(agg),
- q(0661) => q(agh),
- q(0662) => q(agi),
- q(0663) => q(agj),
- q(0664) => q(agk),
- q(0665) => q(agl),
- q(0666) => q(agm),
- q(0667) => q(agn),
- q(0668) => q(ago),
- q(0669) => q(agq),
- q(0670) => q(agr),
- q(0671) => q(ags),
- q(0672) => q(agt),
- q(0673) => q(agu),
- q(0674) => q(agv),
- q(0675) => q(agw),
- q(0676) => q(agx),
- q(0677) => q(agy),
- q(0678) => q(agz),
- q(0679) => q(aha),
- q(0680) => q(ahb),
- q(0681) => q(ahg),
- q(0682) => q(ahh),
- q(0683) => q(ahi),
- q(0684) => q(ahk),
- q(0685) => q(ahl),
- q(0686) => q(ahm),
- q(0687) => q(ahn),
- q(0688) => q(aho),
- q(0689) => q(ahp),
- q(0690) => q(ahr),
- q(0691) => q(ahs),
- q(0692) => q(aht),
- q(0693) => q(aia),
- q(0694) => q(aib),
- q(0695) => q(aic),
- q(0696) => q(aid),
- q(0697) => q(aie),
- q(0698) => q(aif),
- q(0699) => q(aig),
- q(0700) => q(aih),
- q(0701) => q(aii),
- q(0702) => q(aij),
- q(0703) => q(aik),
- q(0704) => q(ail),
- q(0705) => q(aim),
- q(0706) => q(aio),
- q(0707) => q(aip),
- q(0708) => q(aiq),
- q(0709) => q(air),
- q(0710) => q(ais),
- q(0711) => q(ait),
- q(0712) => q(aiw),
- q(0713) => q(aix),
- q(0714) => q(aiy),
- q(0715) => q(aja),
- q(0716) => q(ajg),
- q(0717) => q(aji),
- q(0718) => q(ajn),
- q(0719) => q(ajp),
- q(0720) => q(ajt),
- q(0721) => q(aju),
- q(0722) => q(ajw),
- q(0723) => q(ajz),
- q(0724) => q(akb),
- q(0725) => q(akc),
- q(0726) => q(akd),
- q(0727) => q(ake),
- q(0728) => q(akf),
- q(0729) => q(akg),
- q(0730) => q(akh),
- q(0731) => q(aki),
- q(0732) => q(akj),
- q(0733) => q(akl),
- q(0734) => q(akm),
- q(0735) => q(ako),
- q(0736) => q(akp),
- q(0737) => q(akq),
- q(0738) => q(akr),
- q(0739) => q(aks),
- q(0740) => q(akt),
- q(0741) => q(aku),
- q(0742) => q(akv),
- q(0743) => q(akw),
- q(0744) => q(akx),
- q(0745) => q(aky),
- q(0746) => q(akz),
- q(0747) => q(ala),
- q(0748) => q(alc),
- q(0749) => q(ald),
- q(0750) => q(alf),
- q(0751) => q(alh),
- q(0752) => q(ali),
- q(0753) => q(alj),
- q(0754) => q(alk),
- q(0755) => q(all),
- q(0756) => q(alm),
- q(0757) => q(aln),
- q(0758) => q(alo),
- q(0759) => q(alp),
- q(0760) => q(alq),
- q(0761) => q(alr),
- q(0762) => q(als),
- q(0763) => q(alu),
- q(0764) => q(alw),
- q(0765) => q(alx),
- q(0766) => q(aly),
- q(0767) => q(alz),
- q(0768) => q(ama),
- q(0769) => q(amb),
- q(0770) => q(amc),
- q(0771) => q(ame),
- q(0772) => q(amf),
- q(0773) => q(amg),
- q(0774) => q(ami),
- q(0775) => q(amj),
- q(0776) => q(amk),
- q(0777) => q(aml),
- q(0778) => q(amm),
- q(0779) => q(amn),
- q(0780) => q(amo),
- q(0781) => q(amp),
- q(0782) => q(amq),
- q(0783) => q(amr),
- q(0784) => q(ams),
- q(0785) => q(amt),
- q(0786) => q(amu),
- q(0787) => q(amv),
- q(0788) => q(amw),
- q(0789) => q(amx),
- q(0790) => q(amy),
- q(0791) => q(amz),
- q(0792) => q(ana),
- q(0793) => q(anb),
- q(0794) => q(anc),
- q(0795) => q(and),
- q(0796) => q(ane),
- q(0797) => q(anf),
- q(0798) => q(anh),
- q(0799) => q(ani),
- q(0800) => q(anj),
- q(0801) => q(ank),
- q(0802) => q(anl),
- q(0803) => q(anm),
- q(0804) => q(ann),
- q(0805) => q(ano),
- q(0806) => q(anq),
- q(0807) => q(anr),
- q(0808) => q(ans),
- q(0809) => q(ant),
- q(0810) => q(anu),
- q(0811) => q(anv),
- q(0812) => q(anw),
- q(0813) => q(anx),
- q(0814) => q(any),
- q(0815) => q(anz),
- q(0816) => q(aoa),
- q(0817) => q(aob),
- q(0818) => q(aoc),
- q(0819) => q(aod),
- q(0820) => q(aoe),
- q(0821) => q(aof),
- q(0822) => q(aog),
- q(0823) => q(aoh),
- q(0824) => q(aoi),
- q(0825) => q(aoj),
- q(0826) => q(aok),
- q(0827) => q(aol),
- q(0828) => q(aom),
- q(0829) => q(aon),
- q(0830) => q(aor),
- q(0831) => q(aos),
- q(0832) => q(aot),
- q(0833) => q(aou),
- q(0834) => q(aox),
- q(0835) => q(aoz),
- q(0836) => q(apb),
- q(0837) => q(apc),
- q(0838) => q(apd),
- q(0839) => q(ape),
- q(0840) => q(apf),
- q(0841) => q(apg),
- q(0842) => q(aph),
- q(0843) => q(api),
- q(0844) => q(apj),
- q(0845) => q(apk),
- q(0846) => q(apl),
- q(0847) => q(apm),
- q(0848) => q(apn),
- q(0849) => q(apo),
- q(0850) => q(app),
- q(0851) => q(apq),
- q(0852) => q(apr),
- q(0853) => q(aps),
- q(0854) => q(apt),
- q(0855) => q(apu),
- q(0856) => q(apv),
- q(0857) => q(apw),
- q(0858) => q(apx),
- q(0859) => q(apy),
- q(0860) => q(apz),
- q(0861) => q(aqc),
- q(0862) => q(aqd),
- q(0863) => q(aqg),
- q(0864) => q(aqm),
- q(0865) => q(aqn),
- q(0866) => q(aqp),
- q(0867) => q(aqr),
- 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(aue),
- q(0939) => q(aug),
- q(0940) => q(auh),
- q(0941) => q(aui),
- q(0942) => q(auj),
- q(0943) => q(auk),
- q(0944) => q(aul),
- q(0945) => q(aum),
- q(0946) => q(aun),
- q(0947) => q(auo),
- q(0948) => q(aup),
- q(0949) => q(auq),
- q(0950) => q(aur),
- q(0951) => q(aut),
- q(0952) => q(auu),
- q(0953) => q(auw),
- q(0954) => q(aux),
- q(0955) => q(auy),
- q(0956) => q(auz),
- q(0957) => q(avb),
- q(0958) => q(avd),
- q(0959) => q(avi),
- q(0960) => q(avk),
- q(0961) => q(avl),
- q(0962) => q(avm),
- q(0963) => q(avn),
- q(0964) => q(avo),
- q(0965) => q(avs),
- q(0966) => q(avt),
- q(0967) => q(avu),
- q(0968) => q(avv),
- q(0969) => q(awb),
- q(0970) => q(awc),
- q(0971) => q(awe),
- q(0972) => q(awg),
- q(0973) => q(awh),
- q(0974) => q(awi),
- q(0975) => q(awk),
- q(0976) => q(awm),
- q(0977) => q(awn),
- q(0978) => q(awo),
- q(0979) => q(awr),
- q(0980) => q(aws),
- q(0981) => q(awt),
- q(0982) => q(awu),
- q(0983) => q(awv),
- q(0984) => q(aww),
- q(0985) => q(awx),
- q(0986) => q(awy),
- q(0987) => q(axb),
- q(0988) => q(axe),
- q(0989) => q(axg),
- q(0990) => q(axk),
- q(0991) => q(axl),
- q(0992) => q(axm),
- q(0993) => q(axx),
- q(0994) => q(aya),
- q(0995) => q(ayb),
- q(0996) => q(ayc),
- q(0997) => q(ayd),
- q(0998) => q(aye),
- q(0999) => q(ayg),
- q(1000) => q(ayh),
- q(1001) => q(ayi),
- q(1002) => q(ayk),
- q(1003) => q(ayl),
- q(1004) => q(ayn),
- q(1005) => q(ayo),
- q(1006) => q(ayp),
- q(1007) => q(ayq),
- q(1008) => q(ayr),
- q(1009) => q(ays),
- q(1010) => q(ayt),
- q(1011) => q(ayu),
- q(1012) => q(ayy),
- q(1013) => q(ayz),
- q(1014) => q(aza),
- q(1015) => q(azb),
- q(1016) => q(azd),
- q(1017) => q(azg),
- q(1018) => q(azj),
- q(1019) => q(azm),
- q(1020) => q(azn),
- q(1021) => q(azo),
- q(1022) => q(azt),
- q(1023) => q(azz),
- q(1024) => q(baa),
- q(1025) => q(bab),
- q(1026) => q(bac),
- q(1027) => q(bae),
- q(1028) => q(baf),
- q(1029) => q(bag),
- q(1030) => q(bah),
- q(1031) => q(baj),
- q(1032) => q(bao),
- q(1033) => q(bap),
- q(1034) => q(bar),
- q(1035) => q(bau),
- q(1036) => q(bav),
- q(1037) => q(baw),
- q(1038) => q(bax),
- q(1039) => q(bay),
- q(1040) => q(bba),
- q(1041) => q(bbb),
- q(1042) => q(bbc),
- q(1043) => q(bbd),
- q(1044) => q(bbe),
- q(1045) => q(bbf),
- q(1046) => q(bbg),
- q(1047) => q(bbh),
- q(1048) => q(bbi),
- q(1049) => q(bbj),
- q(1050) => q(bbk),
- q(1051) => q(bbl),
- q(1052) => q(bbm),
- q(1053) => q(bbn),
- q(1054) => q(bbo),
- q(1055) => q(bbp),
- q(1056) => q(bbq),
- q(1057) => q(bbr),
- q(1058) => q(bbs),
- q(1059) => q(bbt),
- q(1060) => q(bbu),
- q(1061) => q(bbv),
- q(1062) => q(bbw),
- q(1063) => q(bbx),
- q(1064) => q(bby),
- q(1065) => q(bbz),
- q(1066) => q(bca),
- q(1067) => q(bcb),
- q(1068) => q(bcc),
- q(1069) => q(bcd),
- q(1070) => q(bce),
- q(1071) => q(bcf),
- q(1072) => q(bcg),
- q(1073) => q(bch),
- q(1074) => q(bci),
- q(1075) => q(bcj),
- q(1076) => q(bck),
- q(1077) => q(bcl),
- q(1078) => q(bcm),
- q(1079) => q(bcn),
- q(1080) => q(bco),
- q(1081) => q(bcp),
- q(1082) => q(bcq),
- q(1083) => q(bcr),
- q(1084) => q(bcs),
- q(1085) => q(bct),
- q(1086) => q(bcu),
- q(1087) => q(bcv),
- q(1088) => q(bcw),
- q(1089) => q(bcy),
- q(1090) => q(bcz),
- q(1091) => q(bda),
- q(1092) => q(bdb),
- q(1093) => q(bdc),
- q(1094) => q(bdd),
- q(1095) => q(bde),
- q(1096) => q(bdf),
- q(1097) => q(bdg),
- q(1098) => q(bdh),
- q(1099) => q(bdi),
- q(1100) => q(bdj),
- q(1101) => q(bdk),
- q(1102) => q(bdl),
- q(1103) => q(bdm),
- q(1104) => q(bdn),
- q(1105) => q(bdo),
- q(1106) => q(bdp),
- q(1107) => q(bdq),
- q(1108) => q(bdr),
- q(1109) => q(bds),
- q(1110) => q(bdt),
- q(1111) => q(bdu),
- q(1112) => q(bdv),
- q(1113) => q(bdw),
- q(1114) => q(bdx),
- q(1115) => q(bdy),
- q(1116) => q(bdz),
- q(1117) => q(bea),
- q(1118) => q(beb),
- q(1119) => q(bec),
- q(1120) => q(bed),
- q(1121) => q(bee),
- q(1122) => q(bef),
- q(1123) => q(beg),
- q(1124) => q(beh),
- q(1125) => q(bei),
- q(1126) => q(bek),
- q(1127) => q(beo),
- q(1128) => q(bep),
- q(1129) => q(beq),
- q(1130) => q(bes),
- q(1131) => q(bet),
- q(1132) => q(beu),
- q(1133) => q(bev),
- q(1134) => q(bew),
- q(1135) => q(bex),
- q(1136) => q(bey),
- q(1137) => q(bez),
- q(1138) => q(mot),
- q(1139) => q(bfb),
- q(1140) => q(bfc),
- q(1141) => q(bfd),
- q(1142) => q(bfe),
- q(1143) => q(bff),
- q(1144) => q(bfg),
- q(1145) => q(bfh),
- q(1146) => q(bfi),
- q(1147) => q(bfj),
- q(1148) => q(bfk),
- q(1149) => q(bfl),
- q(1150) => q(bfm),
- q(1151) => q(bfn),
- q(1152) => q(bfo),
- q(1153) => q(bfp),
- q(1154) => q(bfq),
- q(1155) => q(bfr),
- q(1156) => q(bfs),
- q(1157) => q(bft),
- q(1158) => q(bfu),
- q(1159) => q(bfw),
- q(1160) => q(bfx),
- q(1161) => q(bfy),
- q(1162) => q(bfz),
- q(1163) => q(bga),
- q(1164) => q(bgb),
- q(1165) => q(bgc),
- q(1166) => q(bgd),
- q(1167) => q(bge),
- q(1168) => q(bgf),
- q(1169) => q(bgg),
- q(1170) => q(bgi),
- q(1171) => q(bgj),
- q(1172) => q(bgk),
- q(1173) => q(bgl),
- q(1174) => q(bgm),
- q(1175) => q(bgn),
- q(1176) => q(bgo),
- q(1177) => q(bgp),
- q(1178) => q(bgq),
- q(1179) => q(bgr),
- q(1180) => q(bgs),
- q(1181) => q(bgt),
- q(1182) => q(bgu),
- q(1183) => q(bgv),
- q(1184) => q(bgw),
- q(1185) => q(bgx),
- q(1186) => q(bgy),
- q(1187) => q(bgz),
- q(1188) => q(bha),
- q(1189) => q(bhb),
- q(1190) => q(bhc),
- q(1191) => q(bhd),
- q(1192) => q(bhe),
- q(1193) => q(bhf),
- q(1194) => q(bhg),
- q(1195) => q(bhh),
- q(1196) => q(bhi),
- q(1197) => q(bhj),
- q(1198) => q(bhl),
- q(1199) => q(bhm),
- q(1200) => q(bhn),
- q(1201) => q(bhp),
- q(1202) => q(bhq),
- q(1203) => q(bhr),
- q(1204) => q(bhs),
- q(1205) => q(bht),
- q(1206) => q(bhu),
- q(1207) => q(bhv),
- q(1208) => q(bhw),
- q(1209) => q(bhx),
- q(1210) => q(bhy),
- q(1211) => q(bhz),
- q(1212) => q(bia),
- q(1213) => q(bib),
- q(1214) => q(bic),
- q(1215) => q(bid),
- q(1216) => q(bie),
- q(1217) => q(bif),
- q(1218) => q(big),
- q(1219) => q(bij),
- q(1220) => q(bil),
- q(1221) => q(bim),
- q(1222) => q(bio),
- q(1223) => q(bip),
- q(1224) => q(biq),
- q(1225) => q(bir),
- q(1226) => q(bit),
- q(1227) => q(biu),
- q(1228) => q(biv),
- q(1229) => q(biw),
- q(1230) => q(bix),
- q(1231) => q(biy),
- q(1232) => q(biz),
- q(1233) => q(bja),
- q(1234) => q(bjb),
- q(1235) => q(bjc),
- q(1236) => q(bje),
- q(1237) => q(bjf),
- q(1238) => q(bjg),
- q(1239) => q(bjh),
- q(1240) => q(bji),
- q(1241) => q(bjj),
- q(1242) => q(bjk),
- q(1243) => q(bjl),
- q(1244) => q(bjm),
- q(1245) => q(bjn),
- q(1246) => q(bjo),
- q(1247) => q(bjp),
- q(1248) => q(bjr),
- q(1249) => q(bjs),
- q(1250) => q(bjt),
- q(1251) => q(bju),
- q(1252) => q(bjv),
- q(1253) => q(bjw),
- q(1254) => q(bjx),
- q(1255) => q(bjy),
- q(1256) => q(bjz),
- q(1257) => q(bka),
- q(1258) => q(bkc),
- q(1259) => q(bkd),
- q(1260) => q(bkf),
- q(1261) => q(bkg),
- q(1262) => q(bkh),
- q(1263) => q(bki),
- q(1264) => q(bkj),
- q(1265) => q(bkk),
- q(1266) => q(bkl),
- q(1267) => q(bkm),
- q(1268) => q(bkn),
- q(1269) => q(bko),
- q(1270) => q(bkp),
- q(1271) => q(bkq),
- q(1272) => q(bkr),
- q(1273) => q(bks),
- q(1274) => q(bkt),
- q(1275) => q(bku),
- q(1276) => q(bkv),
- q(1277) => q(bkw),
- q(1278) => q(bkx),
- q(1279) => q(bky),
- q(1280) => q(bkz),
- q(1281) => q(blb),
- q(1282) => q(blc),
- q(1283) => q(bld),
- q(1284) => q(ble),
- q(1285) => q(blf),
- q(1286) => q(blg),
- q(1287) => q(blh),
- q(1288) => q(bli),
- q(1289) => q(blj),
- q(1290) => q(blk),
- q(1291) => q(bll),
- q(1292) => q(blm),
- q(1293) => q(bln),
- q(1294) => q(blo),
- q(1295) => q(blp),
- q(1296) => q(blq),
- q(1297) => q(blr),
- q(1298) => q(bls),
- q(1299) => q(blt),
- q(1300) => q(blv),
- q(1301) => q(blw),
- q(1302) => q(blx),
- q(1303) => q(bly),
- q(1304) => q(blz),
- q(1305) => q(bma),
- q(1306) => q(bmb),
- q(1307) => q(bmc),
- q(1308) => q(bmd),
- q(1309) => q(bme),
- q(1310) => q(bmf),
- q(1311) => q(bmg),
- q(1312) => q(bmh),
- q(1313) => q(bmi),
- q(1314) => q(bmj),
- q(1315) => q(bmk),
- q(1316) => q(bml),
- q(1317) => q(bmm),
- q(1318) => q(bmn),
- q(1319) => q(bmo),
- q(1320) => q(bmp),
- q(1321) => q(bmq),
- q(1322) => q(bmr),
- q(1323) => q(bms),
- q(1324) => q(bmt),
- q(1325) => q(bmu),
- q(1326) => q(bmv),
- q(1327) => q(bmw),
- q(1328) => q(bmx),
- q(1329) => q(bmy),
- q(1330) => q(bmz),
- q(1331) => q(bna),
- q(1332) => q(bnb),
- q(1333) => q(bnc),
- q(1334) => q(bnd),
- q(1335) => q(bne),
- q(1336) => q(bnf),
- q(1337) => q(bng),
- q(1338) => q(bni),
- q(1339) => q(bnj),
- q(1340) => q(bnk),
- q(1341) => q(bnl),
- q(1342) => q(bnm),
- q(1343) => q(bnn),
- q(1344) => q(bno),
- q(1345) => q(bnp),
- q(1346) => q(bnq),
- q(1347) => q(bnr),
- q(1348) => q(bns),
- q(1349) => q(bnu),
- q(1350) => q(bnv),
- q(1351) => q(bnw),
- q(1352) => q(bnx),
- q(1353) => q(bny),
- q(1354) => q(bnz),
- q(1355) => q(boa),
- q(1356) => q(bob),
- q(1357) => q(boe),
- q(1358) => q(bof),
- q(1359) => q(bog),
- q(1360) => q(boh),
- q(1361) => q(boi),
- q(1362) => q(boj),
- q(1363) => q(bok),
- q(1364) => q(bol),
- q(1365) => q(bom),
- q(1366) => q(bon),
- q(1367) => q(boo),
- q(1368) => q(bop),
- q(1369) => q(boq),
- q(1370) => q(bor),
- q(1371) => q(bot),
- q(1372) => q(bou),
- q(1373) => q(bov),
- q(1374) => q(bow),
- q(1375) => q(box),
- q(1376) => q(boy),
- q(1377) => q(boz),
- q(1378) => q(bpa),
- q(1379) => q(bpb),
- q(1380) => q(bpd),
- q(1381) => q(bpg),
- q(1382) => q(bph),
- q(1383) => q(bpi),
- q(1384) => q(bpj),
- q(1385) => q(bpk),
- q(1386) => q(bpl),
- q(1387) => q(bpm),
- q(1388) => q(bpn),
- q(1389) => q(bpo),
- q(1390) => q(bpp),
- q(1391) => q(bpq),
- q(1392) => q(bpr),
- q(1393) => q(bps),
- q(1394) => q(bpt),
- q(1395) => q(bpu),
- q(1396) => q(bpv),
- q(1397) => q(bpw),
- q(1398) => q(bpx),
- q(1399) => q(bpy),
- q(1400) => q(bpz),
- q(1401) => q(bqa),
- q(1402) => q(bqb),
- q(1403) => q(bqc),
- q(1404) => q(bqd),
- q(1405) => q(bqf),
- q(1406) => q(bqg),
- q(1407) => q(bqh),
- q(1408) => q(bqi),
- q(1409) => q(bqj),
- q(1410) => q(bqk),
- q(1411) => q(bql),
- q(1412) => q(bqm),
- q(1413) => q(bqn),
- q(1414) => q(bqo),
- q(1415) => q(bqp),
- q(1416) => q(bqq),
- q(1417) => q(bqr),
- q(1418) => q(bqs),
- q(1419) => q(bqt),
- q(1420) => q(bqu),
- q(1421) => q(bqv),
- q(1422) => q(bqw),
- q(1423) => q(bqx),
- q(1424) => q(bqy),
- q(1425) => q(bqz),
- q(1426) => q(brb),
- q(1427) => q(brc),
- q(1428) => q(brd),
- q(1429) => q(brf),
- q(1430) => q(brg),
- q(1431) => q(brh),
- q(1432) => q(bri),
- q(1433) => q(brj),
- q(1434) => q(brk),
- q(1435) => q(brl),
- q(1436) => q(brm),
- q(1437) => q(brn),
- q(1438) => q(bro),
- q(1439) => q(brp),
- q(1440) => q(brq),
- q(1441) => q(brr),
- q(1442) => q(brs),
- q(1443) => q(brt),
- q(1444) => q(bru),
- q(1445) => q(brv),
- q(1446) => q(brw),
- q(1447) => q(brx),
- q(1448) => q(bry),
- q(1449) => q(brz),
- q(1450) => q(bsa),
- q(1451) => q(bsb),
- q(1452) => q(bsc),
- q(1453) => q(bse),
- q(1454) => q(bsf),
- q(1455) => q(bsg),
- q(1456) => q(bsh),
- q(1457) => q(bsi),
- q(1458) => q(bsj),
- q(1459) => q(bsk),
- q(1460) => q(bsl),
- q(1461) => q(bsm),
- q(1462) => q(bsn),
- q(1463) => q(bso),
- q(1464) => q(bsp),
- q(1465) => q(bsq),
- q(1466) => q(bsr),
- q(1467) => q(bss),
- q(1468) => q(bst),
- q(1469) => q(bsu),
- q(1470) => q(bsv),
- q(1471) => q(bsw),
- q(1472) => q(bsx),
- q(1473) => q(bsy),
- q(1474) => q(bta),
- q(1475) => q(btc),
- q(1476) => q(btd),
- q(1477) => q(bte),
- q(1478) => q(btf),
- q(1479) => q(btg),
- q(1480) => q(bth),
- q(1481) => q(bti),
- q(1482) => q(btj),
- q(1483) => q(btl),
- q(1484) => q(btm),
- q(1485) => q(btn),
- q(1486) => q(bto),
- q(1487) => q(btp),
- q(1488) => q(btq),
- q(1489) => q(btr),
- q(1490) => q(bts),
- q(1491) => q(btt),
- q(1492) => q(btu),
- q(1493) => q(btv),
- q(1494) => q(btw),
- q(1495) => q(btx),
- q(1496) => q(bty),
- q(1497) => q(btz),
- q(1498) => q(bub),
- q(1499) => q(buc),
- q(1500) => q(bud),
- q(1501) => q(bue),
- q(1502) => q(buf),
- q(1503) => q(buh),
- q(1504) => q(bui),
- q(1505) => q(buj),
- q(1506) => q(buk),
- q(1507) => q(bum),
- q(1508) => q(bun),
- q(1509) => q(buo),
- q(1510) => q(bup),
- q(1511) => q(buq),
- q(1512) => q(bus),
- q(1513) => q(but),
- q(1514) => q(buu),
- q(1515) => q(buv),
- q(1516) => q(buw),
- q(1517) => q(bux),
- q(1518) => q(buy),
- q(1519) => q(buz),
- q(1520) => q(bva),
- q(1521) => q(bvb),
- q(1522) => q(bvc),
- q(1523) => q(bvd),
- q(1524) => q(bve),
- q(1525) => q(bvf),
- q(1526) => q(bvg),
- q(1527) => q(bvh),
- q(1528) => q(bvi),
- q(1529) => q(bvj),
- q(1530) => q(bvk),
- q(1531) => q(bvl),
- q(1532) => q(bvm),
- q(1533) => q(bvn),
- q(1534) => q(bvo),
- q(1535) => q(bvp),
- q(1536) => q(bvq),
- q(1537) => q(bvr),
- q(1538) => q(bvt),
- q(1539) => q(bvu),
- q(1540) => q(bvv),
- q(1541) => q(bvw),
- q(1542) => q(bvx),
- q(1543) => q(bvy),
- q(1544) => q(bvz),
- q(1545) => q(bwa),
- q(1546) => q(bwb),
- q(1547) => q(bwc),
- q(1548) => q(bwd),
- q(1549) => q(bwe),
- q(1550) => q(bwf),
- q(1551) => q(bwg),
- q(1552) => q(bwh),
- q(1553) => q(bwi),
- q(1554) => q(bwj),
- q(1555) => q(bwk),
- q(1556) => q(bwl),
- q(1557) => q(bwm),
- q(1558) => q(bwn),
- q(1559) => q(bwo),
- q(1560) => q(bwp),
- q(1561) => q(bwq),
- q(1562) => q(bwr),
- q(1563) => q(bws),
- q(1564) => q(bwt),
- q(1565) => q(bwu),
- q(1566) => q(bww),
- q(1567) => q(bwx),
- q(1568) => q(bwy),
- q(1569) => q(bwz),
- q(1570) => q(bxa),
- q(1571) => q(bxb),
- q(1572) => q(bxc),
- q(1573) => q(bxd),
- q(1574) => q(bxe),
- q(1575) => q(bxf),
- q(1576) => q(bxg),
- q(1577) => q(bxh),
- q(1578) => q(bxi),
- q(1579) => q(bxj),
- q(1580) => q(bxk),
- q(1581) => q(bxl),
- q(1582) => q(bxm),
- q(1583) => q(bxn),
- q(1584) => q(bxo),
- q(1585) => q(bxp),
- q(1586) => q(bxq),
- q(1587) => q(bxr),
- q(1588) => q(bxs),
- q(1589) => q(bxu),
- q(1590) => q(bxv),
- q(1591) => q(bxw),
- q(1592) => q(bxx),
- q(1593) => q(bxz),
- q(1594) => q(bya),
- q(1595) => q(byb),
- q(1596) => q(byc),
- q(1597) => q(byd),
- q(1598) => q(bye),
- q(1599) => q(byf),
- q(1600) => q(byg),
- q(1601) => q(byh),
- q(1602) => q(byi),
- q(1603) => q(byj),
- q(1604) => q(byk),
- q(1605) => q(byl),
- q(1606) => q(bym),
- q(1607) => q(byo),
- q(1608) => q(byp),
- q(1609) => q(byq),
- q(1610) => q(byr),
- q(1611) => q(bys),
- q(1612) => q(byt),
- q(1613) => q(byv),
- q(1614) => q(byw),
- q(1615) => q(byx),
- q(1616) => q(byy),
- q(1617) => q(byz),
- q(1618) => q(bza),
- q(1619) => q(bzb),
- q(1620) => q(bzc),
- q(1621) => q(bzd),
- q(1622) => q(bze),
- q(1623) => q(bzf),
- q(1624) => q(bzg),
- q(1625) => q(bzh),
- q(1626) => q(bzi),
- q(1627) => q(bzj),
- q(1628) => q(bzk),
- q(1629) => q(bzl),
- q(1630) => q(bzm),
- q(1631) => q(bzn),
- q(1632) => q(bzo),
- q(1633) => q(bzp),
- q(1634) => q(bzq),
- q(1635) => q(bzr),
- q(1636) => q(bzs),
- q(1637) => q(bzt),
- q(1638) => q(bzu),
- q(1639) => q(bzv),
- q(1640) => q(bzw),
- q(1641) => q(bzx),
- q(1642) => q(bzy),
- q(1643) => q(bzz),
- q(1644) => q(caa),
- q(1645) => q(cab),
- q(1646) => q(cac),
- q(1647) => q(cae),
- q(1648) => q(caf),
- q(1649) => q(cag),
- q(1650) => q(cah),
- q(1651) => q(caj),
- q(1652) => q(cak),
- q(1653) => q(cal),
- q(1654) => q(cam),
- q(1655) => q(can),
- q(1656) => q(cao),
- q(1657) => q(cap),
- q(1658) => q(caq),
- q(1659) => q(cas),
- q(1660) => q(cav),
- q(1661) => q(caw),
- q(1662) => q(cax),
- q(1663) => q(cay),
- q(1664) => q(caz),
- q(1665) => q(cbb),
- q(1666) => q(cbc),
- q(1667) => q(cbd),
- q(1668) => q(cbe),
- q(1669) => q(cbg),
- q(1670) => q(cbh),
- q(1671) => q(cbi),
- q(1672) => q(cbj),
- q(1673) => q(cbk),
- q(1674) => q(cbl),
- q(1675) => q(cbn),
- q(1676) => q(cbo),
- q(1677) => q(cbr),
- q(1678) => q(cbs),
- q(1679) => q(cbt),
- q(1680) => q(cbu),
- q(1681) => q(cbv),
- q(1682) => q(cbw),
- q(1683) => q(cby),
- q(1684) => q(cca),
- q(1685) => q(ccc),
- q(1686) => q(ccd),
- q(1687) => q(cce),
- q(1688) => q(ccg),
- q(1689) => q(cch),
- q(1690) => q(ccj),
- q(1691) => q(ccl),
- q(1692) => q(ccm),
- q(1693) => q(cco),
- q(1694) => q(ccp),
- q(1695) => q(ccr),
- q(1696) => q(cda),
- q(1697) => q(cde),
- q(1698) => q(cdf),
- q(1699) => q(cdg),
- q(1700) => q(cdh),
- q(1701) => q(cdi),
- q(1702) => q(cdj),
- q(1703) => q(cdm),
- q(1704) => q(cdn),
- q(1705) => q(cdo),
- q(1706) => q(cdr),
- q(1707) => q(cds),
- q(1708) => q(cdy),
- q(1709) => q(cdz),
- q(1710) => q(cea),
- q(1711) => q(ceg),
- q(1712) => q(cek),
- q(1713) => q(cen),
- q(1714) => q(cet),
- q(1715) => q(cfa),
- q(1716) => q(cfd),
- q(1717) => q(cfg),
- q(1718) => q(cfm),
- q(1719) => q(cga),
- q(1720) => q(cgc),
- q(1721) => q(cgg),
- q(1722) => q(cgk),
- q(1723) => q(chc),
- q(1724) => q(chd),
- q(1725) => q(chf),
- q(1726) => q(chh),
- q(1727) => q(chj),
- q(1728) => q(chl),
- q(1729) => q(chq),
- q(1730) => q(cht),
- q(1731) => q(chw),
- q(1732) => q(chx),
- q(1733) => q(chz),
- q(1734) => q(cia),
- q(1735) => q(cib),
- q(1736) => q(cic),
- q(1737) => q(cid),
- q(1738) => q(cie),
- q(1739) => q(cih),
- q(1740) => q(cik),
- q(1741) => q(cim),
- q(1742) => q(cin),
- q(1743) => q(cip),
- q(1744) => q(cir),
- q(1745) => q(ciw),
- q(1746) => q(ciy),
- q(1747) => q(cja),
- q(1748) => q(cje),
- q(1749) => q(cjh),
- q(1750) => q(cji),
- q(1751) => q(cjk),
- q(1752) => q(cjm),
- q(1753) => q(cjn),
- q(1754) => q(cjo),
- q(1755) => q(cjp),
- q(1756) => q(cjs),
- q(1757) => q(cjv),
- q(1758) => q(cjy),
- q(1759) => q(ckb),
- q(1760) => q(ckh),
- q(1761) => q(ckl),
- q(1762) => q(ckn),
- q(1763) => q(cko),
- q(1764) => q(ckq),
- q(1765) => q(ckr),
- q(1766) => q(cks),
- q(1767) => q(ckt),
- q(1768) => q(cku),
- q(1769) => q(ckv),
- q(1770) => q(ckx),
- q(1771) => q(cky),
- q(1772) => q(ckz),
- q(1773) => q(cla),
- q(1774) => q(clc),
- q(1775) => q(cld),
- q(1776) => q(cle),
- q(1777) => q(clh),
- q(1778) => q(cli),
- q(1779) => q(clj),
- q(1780) => q(clk),
- q(1781) => q(cll),
- q(1782) => q(clm),
- q(1783) => q(clo),
- q(1784) => q(clt),
- q(1785) => q(clu),
- q(1786) => q(clw),
- q(1787) => q(cly),
- q(1788) => q(cma),
- q(1789) => q(cme),
- q(1790) => q(cmg),
- q(1791) => q(cmi),
- q(1792) => q(cml),
- q(1793) => q(cmm),
- q(1794) => q(cmn),
- q(1795) => q(cmo),
- q(1796) => q(cmr),
- q(1797) => q(cms),
- q(1798) => q(cmt),
- q(1799) => q(cna),
- q(1800) => q(cnb),
- q(1801) => q(cnc),
- q(1802) => q(cng),
- q(1803) => q(cnh),
- q(1804) => q(cni),
- q(1805) => q(cnk),
- q(1806) => q(cnl),
- q(1807) => q(cno),
- q(1808) => q(cns),
- q(1809) => q(cnt),
- q(1810) => q(cnu),
- q(1811) => q(cnw),
- q(1812) => q(cnx),
- q(1813) => q(coa),
- q(1814) => q(cob),
- q(1815) => q(coc),
- q(1816) => q(cod),
- q(1817) => q(coe),
- q(1818) => q(cof),
- q(1819) => q(cog),
- q(1820) => q(coh),
- q(1821) => q(coj),
- q(1822) => q(cok),
- q(1823) => q(col),
- q(1824) => q(com),
- q(1825) => q(con),
- q(1826) => q(coo),
- q(1827) => q(coq),
- q(1828) => q(cot),
- q(1829) => q(cou),
- q(1830) => q(cov),
- q(1831) => q(cow),
- q(1832) => q(cox),
- q(1833) => q(coy),
- q(1834) => q(coz),
- q(1835) => q(cpa),
- q(1836) => q(cpb),
- q(1837) => q(cpc),
- q(1838) => q(cpg),
- q(1839) => q(cpi),
- q(1840) => q(cpn),
- q(1841) => q(cpo),
- q(1842) => q(cps),
- q(1843) => q(cpu),
- q(1844) => q(cpx),
- q(1845) => q(cpy),
- q(1846) => q(cqd),
- q(1847) => q(cqu),
- q(1848) => q(cra),
- q(1849) => q(crb),
- q(1850) => q(crc),
- q(1851) => q(crd),
- q(1852) => q(crf),
- q(1853) => q(crg),
- q(1854) => q(cri),
- q(1855) => q(crj),
- q(1856) => q(crk),
- q(1857) => q(crl),
- q(1858) => q(crm),
- q(1859) => q(crn),
- q(1860) => q(cro),
- q(1861) => q(crq),
- q(1862) => q(crr),
- q(1863) => q(crs),
- q(1864) => q(crt),
- q(1865) => q(crv),
- q(1866) => q(crw),
- q(1867) => q(crx),
- q(1868) => q(cry),
- q(1869) => q(crz),
- q(1870) => q(csa),
- q(1871) => q(csc),
- q(1872) => q(csd),
- q(1873) => q(cse),
- q(1874) => q(csf),
- q(1875) => q(csg),
- q(1876) => q(csh),
- q(1877) => q(csi),
- q(1878) => q(csj),
- q(1879) => q(csk),
- q(1880) => q(csl),
- q(1881) => q(csm),
- q(1882) => q(csn),
- q(1883) => q(cso),
- q(1884) => q(csq),
- q(1885) => q(csr),
- q(1886) => q(css),
- q(1887) => q(cst),
- q(1888) => q(csv),
- q(1889) => q(csw),
- q(1890) => q(csy),
- q(1891) => q(csz),
- q(1892) => q(cta),
- q(1893) => q(ctc),
- q(1894) => q(ctd),
- q(1895) => q(cte),
- q(1896) => q(ctg),
- q(1897) => q(cth),
- q(1898) => q(ctl),
- q(1899) => q(ctm),
- q(1900) => q(ctn),
- q(1901) => q(cto),
- q(1902) => q(ctp),
- q(1903) => q(cts),
- q(1904) => q(ctt),
- q(1905) => q(ctu),
- q(1906) => q(ctz),
- q(1907) => q(cua),
- q(1908) => q(cub),
- q(1909) => q(cuc),
- q(1910) => q(cug),
- q(1911) => q(cuh),
- q(1912) => q(cui),
- q(1913) => q(cuj),
- q(1914) => q(cuk),
- q(1915) => q(cul),
- q(1916) => q(cum),
- q(1917) => q(cuo),
- q(1918) => q(cup),
- q(1919) => q(cuq),
- q(1920) => q(cur),
- q(1921) => q(cut),
- q(1922) => q(cuu),
- q(1923) => q(cuv),
- q(1924) => q(cuw),
- q(1925) => q(cux),
- q(1926) => q(cvg),
- q(1927) => q(cvn),
- q(1928) => q(cwa),
- q(1929) => q(cwb),
- q(1930) => q(cwd),
- q(1931) => q(cwe),
- q(1932) => q(cwg),
- q(1933) => q(cwt),
- q(1934) => q(cya),
- q(1935) => q(cyb),
- q(1936) => q(cyo),
- q(1937) => q(czh),
- q(1938) => q(czk),
- q(1939) => q(czn),
- q(1940) => q(czo),
- q(1941) => q(czt),
- q(1942) => q(daa),
- q(1943) => q(dac),
- q(1944) => q(dad),
- q(1945) => q(dae),
- q(1946) => q(dag),
- q(1947) => q(dah),
- q(1948) => q(dai),
- q(1949) => q(daj),
- q(1950) => q(dal),
- q(1951) => q(dam),
- q(1952) => q(dao),
- q(1953) => q(daq),
- q(1954) => q(das),
- q(1955) => q(dau),
- q(1956) => q(dav),
- q(1957) => q(daw),
- q(1958) => q(dax),
- q(1959) => q(daz),
- q(1960) => q(dba),
- q(1961) => q(dbb),
- q(1962) => q(dbd),
- q(1963) => q(dbe),
- q(1964) => q(dbf),
- q(1965) => q(dbg),
- q(1966) => q(dbi),
- q(1967) => q(dbj),
- q(1968) => q(dbl),
- q(1969) => q(dbm),
- q(1970) => q(dbn),
- q(1971) => q(dbo),
- q(1972) => q(dbp),
- q(1973) => q(dbq),
- q(1974) => q(dbr),
- q(1975) => q(dbt),
- q(1976) => q(dbu),
- q(1977) => q(dbv),
- q(1978) => q(dbw),
- q(1979) => q(dby),
- q(1980) => q(dcc),
- q(1981) => q(dcr),
- q(1982) => q(dda),
- q(1983) => q(ddd),
- q(1984) => q(dde),
- q(1985) => q(ddg),
- q(1986) => q(ddi),
- q(1987) => q(ddj),
- q(1988) => q(ddn),
- q(1989) => q(ddo),
- q(1990) => q(ddr),
- q(1991) => q(dds),
- q(1992) => q(ddw),
- q(1993) => q(dec),
- q(1994) => q(ded),
- q(1995) => q(dee),
- q(1996) => q(def),
- q(1997) => q(deg),
- q(1998) => q(deh),
- q(1999) => q(dei),
- q(2000) => q(dek),
- q(2001) => q(dem),
- q(2002) => q(dep),
- q(2003) => q(deq),
- q(2004) => q(der),
- q(2005) => q(des),
- q(2006) => q(dev),
- q(2007) => q(dez),
- q(2008) => q(dga),
- q(2009) => q(dgb),
- q(2010) => q(dgc),
- q(2011) => q(dgd),
- q(2012) => q(dge),
- q(2013) => q(dgg),
- q(2014) => q(dgh),
- q(2015) => q(dgi),
- q(2016) => q(dgk),
- q(2017) => q(dgl),
- q(2018) => q(dgn),
- q(2019) => q(dgo),
- q(2020) => q(dgs),
- q(2021) => q(dgt),
- q(2022) => q(dgu),
- q(2023) => q(dgw),
- q(2024) => q(dgx),
- q(2025) => q(dgz),
- q(2026) => q(dhd),
- q(2027) => q(dhg),
- q(2028) => q(dhi),
- q(2029) => q(dhl),
- q(2030) => q(dhm),
- q(2031) => q(dhn),
- q(2032) => q(dho),
- q(2033) => q(dhr),
- q(2034) => q(dhs),
- q(2035) => q(dhu),
- q(2036) => q(dhv),
- q(2037) => q(dhw),
- q(2038) => q(dhx),
- q(2039) => q(dia),
- q(2040) => q(dib),
- q(2041) => q(dic),
- q(2042) => q(did),
- q(2043) => q(dif),
- q(2044) => q(dig),
- q(2045) => q(dih),
- q(2046) => q(dii),
- q(2047) => q(dij),
- q(2048) => q(dik),
- q(2049) => q(dil),
- q(2050) => q(dim),
- q(2051) => q(dio),
- q(2052) => q(dip),
- q(2053) => q(diq),
- q(2054) => q(dir),
- q(2055) => q(dis),
- q(2056) => q(dit),
- q(2057) => q(diu),
- q(2058) => q(diw),
- q(2059) => q(dix),
- q(2060) => q(diy),
- q(2061) => q(diz),
- q(2062) => q(dja),
- q(2063) => q(djb),
- q(2064) => q(djc),
- q(2065) => q(djd),
- q(2066) => q(dje),
- q(2067) => q(djf),
- q(2068) => q(dji),
- q(2069) => q(djj),
- q(2070) => q(djk),
- q(2071) => q(djm),
- q(2072) => q(djn),
- q(2073) => q(djo),
- q(2074) => q(djr),
- q(2075) => q(dju),
- q(2076) => q(djw),
- q(2077) => q(dka),
- q(2078) => q(dkk),
- q(2079) => q(dkr),
- q(2080) => q(dks),
- q(2081) => q(dkx),
- q(2082) => q(dlg),
- q(2083) => q(dlk),
- q(2084) => q(dlm),
- q(2085) => q(dln),
- q(2086) => q(dma),
- q(2087) => q(dmb),
- q(2088) => q(dmc),
- q(2089) => q(dmd),
- q(2090) => q(dme),
- q(2091) => q(dmg),
- q(2092) => q(dmk),
- q(2093) => q(dml),
- q(2094) => q(dmm),
- q(2095) => q(dmo),
- q(2096) => q(dmr),
- q(2097) => q(dms),
- q(2098) => q(dmu),
- q(2099) => q(dmv),
- q(2100) => q(dmw),
- q(2101) => q(dmx),
- q(2102) => q(dmy),
- q(2103) => q(dna),
- q(2104) => q(dnd),
- q(2105) => q(dne),
- q(2106) => q(dng),
- q(2107) => q(dni),
- q(2108) => q(dnj),
- q(2109) => q(dnk),
- q(2110) => q(dnn),
- q(2111) => q(dnr),
- q(2112) => q(dnt),
- q(2113) => q(dnu),
- q(2114) => q(dnv),
- q(2115) => q(dnw),
- q(2116) => q(dny),
- q(2117) => q(doa),
- q(2118) => q(dob),
- q(2119) => q(doc),
- q(2120) => q(doe),
- q(2121) => q(dof),
- q(2122) => q(doh),
- q(2123) => q(dok),
- q(2124) => q(dol),
- q(2125) => q(don),
- q(2126) => q(doo),
- q(2127) => q(dop),
- q(2128) => q(doq),
- q(2129) => q(dor),
- q(2130) => q(dos),
- q(2131) => q(dot),
- q(2132) => q(dov),
- q(2133) => q(dow),
- q(2134) => q(dox),
- q(2135) => q(doy),
- q(2136) => q(doz),
- q(2137) => q(dpp),
- q(2138) => q(drb),
- q(2139) => q(drc),
- q(2140) => q(drd),
- q(2141) => q(dre),
- q(2142) => q(drg),
- q(2143) => q(dri),
- q(2144) => q(drl),
- q(2145) => q(drn),
- q(2146) => q(dro),
- q(2147) => q(drq),
- q(2148) => q(drr),
- q(2149) => q(drs),
- q(2150) => q(drt),
- q(2151) => q(dru),
- q(2152) => q(dry),
- q(2153) => q(dse),
- q(2154) => q(dsh),
- q(2155) => q(dsi),
- q(2156) => q(dsl),
- q(2157) => q(dsn),
- q(2158) => q(dso),
- q(2159) => q(dsq),
- q(2160) => q(dta),
- q(2161) => q(dtb),
- q(2162) => q(dtd),
- q(2163) => q(dth),
- q(2164) => q(dti),
- q(2165) => q(dtk),
- q(2166) => q(dtm),
- q(2167) => q(dto),
- q(2168) => q(dtp),
- q(2169) => q(dtr),
- q(2170) => q(dts),
- q(2171) => q(dtt),
- q(2172) => q(dtu),
- q(2173) => q(dty),
- q(2174) => q(dub),
- q(2175) => q(duc),
- q(2176) => q(dud),
- q(2177) => q(due),
- q(2178) => q(duf),
- q(2179) => q(dug),
- q(2180) => q(duh),
- q(2181) => q(dui),
- q(2182) => q(duj),
- q(2183) => q(duk),
- q(2184) => q(dul),
- q(2185) => q(dun),
- q(2186) => q(duo),
- q(2187) => q(dup),
- q(2188) => q(duq),
- q(2189) => q(dur),
- q(2190) => q(dus),
- q(2191) => q(duu),
- q(2192) => q(duv),
- q(2193) => q(duw),
- q(2194) => q(dux),
- q(2195) => q(duy),
- q(2196) => q(duz),
- q(2197) => q(dva),
- q(2198) => q(dwa),
- q(2199) => q(dwr),
- q(2200) => q(dws),
- q(2201) => q(dww),
- q(2202) => q(dya),
- q(2203) => q(dyb),
- q(2204) => q(dyd),
- q(2205) => q(dyg),
- q(2206) => q(dyi),
- q(2207) => q(dym),
- q(2208) => q(dyn),
- q(2209) => q(dyo),
- q(2210) => q(dyy),
- q(2211) => q(dza),
- q(2212) => q(dzd),
- q(2213) => q(dze),
- q(2214) => q(dzg),
- q(2215) => q(dzl),
- q(2216) => q(dzn),
- q(2217) => q(eaa),
- q(2218) => q(ebg),
- q(2219) => q(ebk),
- q(2220) => q(ebo),
- q(2221) => q(ebr),
- q(2222) => q(ebu),
- q(2223) => q(ecr),
- q(2224) => q(ecs),
- q(2225) => q(ecy),
- q(2226) => q(eee),
- q(2227) => q(efa),
- q(2228) => q(efe),
- q(2229) => q(ega),
- q(2230) => q(egl),
- q(2231) => q(ego),
- q(2232) => q(ehu),
- q(2233) => q(eip),
- q(2234) => q(eit),
- q(2235) => q(eiv),
- q(2236) => q(eja),
- q(2237) => q(ekc),
- q(2238) => q(eke),
- q(2239) => q(ekg),
- q(2240) => q(eki),
- q(2241) => q(ekk),
- q(2242) => q(ekl),
- q(2243) => q(ekm),
- q(2244) => q(eko),
- q(2245) => q(ekp),
- q(2246) => q(ekr),
- q(2247) => q(eky),
- q(2248) => q(ele),
- q(2249) => q(elh),
- q(2250) => q(eli),
- q(2251) => q(elk),
- q(2252) => q(elm),
- q(2253) => q(elo),
- q(2254) => q(elu),
- q(2255) => q(ema),
- q(2256) => q(emb),
- q(2257) => q(eme),
- q(2258) => q(emg),
- q(2259) => q(emi),
- q(2260) => q(emk),
- q(2261) => q(emm),
- q(2262) => q(emn),
- q(2263) => q(emo),
- q(2264) => q(emp),
- q(2265) => q(ems),
- q(2266) => q(emu),
- q(2267) => q(emw),
- q(2268) => q(emx),
- q(2269) => q(emy),
- q(2270) => q(ena),
- q(2271) => q(enb),
- q(2272) => q(enc),
- q(2273) => q(end),
- q(2274) => q(enf),
- q(2275) => q(enh),
- q(2276) => q(enn),
- q(2277) => q(eno),
- q(2278) => q(enq),
- q(2279) => q(enr),
- q(2280) => q(enu),
- q(2281) => q(env),
- q(2282) => q(enw),
- q(2283) => q(eot),
- q(2284) => q(epi),
- q(2285) => q(era),
- q(2286) => q(erg),
- q(2287) => q(erh),
- q(2288) => q(eri),
- q(2289) => q(erk),
- q(2290) => q(ero),
- q(2291) => q(err),
- q(2292) => q(ers),
- q(2293) => q(ert),
- q(2294) => q(erw),
- q(2295) => q(ese),
- q(2296) => q(esh),
- q(2297) => q(esi),
- q(2298) => q(esk),
- q(2299) => q(esl),
- q(2300) => q(esm),
- q(2301) => q(esn),
- q(2302) => q(eso),
- q(2303) => q(esq),
- q(2304) => q(ess),
- q(2305) => q(esu),
- q(2306) => q(etb),
- q(2307) => q(etc),
- q(2308) => q(eth),
- q(2309) => q(etn),
- q(2310) => q(eto),
- q(2311) => q(etr),
- q(2312) => q(ets),
- q(2313) => q(ett),
- q(2314) => q(etu),
- q(2315) => q(etx),
- q(2316) => q(etz),
- q(2317) => q(eve),
- q(2318) => q(evh),
- q(2319) => q(evn),
- q(2320) => q(ext),
- q(2321) => q(eya),
- q(2322) => q(eyo),
- q(2323) => q(eza),
- q(2324) => q(eze),
- q(2325) => q(faa),
- q(2326) => q(fab),
- q(2327) => q(fad),
- q(2328) => q(faf),
- q(2329) => q(fag),
- q(2330) => q(fah),
- q(2331) => q(fai),
- q(2332) => q(faj),
- q(2333) => q(fak),
- q(2334) => q(fal),
- q(2335) => q(fam),
- q(2336) => q(fap),
- q(2337) => q(far),
- q(2338) => q(fau),
- q(2339) => q(fax),
- q(2340) => q(fay),
- q(2341) => q(faz),
- q(2342) => q(fbl),
- q(2343) => q(fcs),
- q(2344) => q(fer),
- q(2345) => q(ffi),
- q(2346) => q(ffm),
- q(2347) => q(fgr),
- q(2348) => q(fia),
- q(2349) => q(fie),
- q(2350) => q(fip),
- q(2351) => q(fir),
- q(2352) => q(fit),
- q(2353) => q(fiw),
- q(2354) => q(fkk),
- q(2355) => q(fkv),
- q(2356) => q(fla),
- q(2357) => q(flh),
- q(2358) => q(fli),
- q(2359) => q(fll),
- q(2360) => q(fln),
- q(2361) => q(flr),
- q(2362) => q(fly),
- q(2363) => q(fmp),
- q(2364) => q(fmu),
- q(2365) => q(fng),
- q(2366) => q(fni),
- q(2367) => q(fod),
- q(2368) => q(foi),
- q(2369) => q(fom),
- q(2370) => q(for),
- q(2371) => q(fos),
- q(2372) => q(fpe),
- q(2373) => q(fqs),
- q(2374) => q(frc),
- q(2375) => q(frd),
- q(2376) => q(frk),
- q(2377) => q(frp),
- q(2378) => q(frq),
- q(2379) => q(frt),
- q(2380) => q(fse),
- q(2381) => q(fsl),
- q(2382) => q(fss),
- q(2383) => q(fub),
- q(2384) => q(fuc),
- q(2385) => q(fud),
- q(2386) => q(fue),
- q(2387) => q(fuf),
- q(2388) => q(fuh),
- q(2389) => q(fui),
- q(2390) => q(fuj),
- q(2391) => q(fum),
- q(2392) => q(fun),
- q(2393) => q(fuq),
- q(2394) => q(fut),
- q(2395) => q(fuu),
- q(2396) => q(fuv),
- q(2397) => q(fuy),
- q(2398) => q(fvr),
- q(2399) => q(fwa),
- q(2400) => q(fwe),
- q(2401) => q(gab),
- q(2402) => q(gac),
- q(2403) => q(gad),
- q(2404) => q(gae),
- q(2405) => q(gaf),
- q(2406) => q(gag),
- q(2407) => q(gah),
- q(2408) => q(gai),
- q(2409) => q(gaj),
- q(2410) => q(gak),
- q(2411) => q(gal),
- q(2412) => q(gam),
- q(2413) => q(gan),
- q(2414) => q(gao),
- q(2415) => q(gap),
- q(2416) => q(gaq),
- q(2417) => q(gar),
- q(2418) => q(gas),
- q(2419) => q(gat),
- q(2420) => q(gau),
- q(2421) => q(gaw),
- q(2422) => q(gax),
- q(2423) => q(gaz),
- q(2424) => q(gbb),
- q(2425) => q(gbd),
- q(2426) => q(gbe),
- q(2427) => q(gbf),
- q(2428) => q(gbg),
- q(2429) => q(gbh),
- q(2430) => q(gbi),
- q(2431) => q(gbj),
- q(2432) => q(gbk),
- q(2433) => q(gbl),
- q(2434) => q(gbm),
- q(2435) => q(gbn),
- q(2436) => q(gbo),
- q(2437) => q(gbp),
- q(2438) => q(gbq),
- q(2439) => q(gbr),
- q(2440) => q(gbs),
- q(2441) => q(gbu),
- q(2442) => q(gbv),
- q(2443) => q(gbw),
- q(2444) => q(gbx),
- q(2445) => q(gby),
- q(2446) => q(gbz),
- q(2447) => q(gcc),
- q(2448) => q(gcd),
- q(2449) => q(gce),
- q(2450) => q(gcf),
- q(2451) => q(gcl),
- q(2452) => q(gcn),
- q(2453) => q(gcr),
- q(2454) => q(gct),
- q(2455) => q(gda),
- q(2456) => q(gdb),
- q(2457) => q(gdc),
- q(2458) => q(gdd),
- q(2459) => q(gde),
- q(2460) => q(gdf),
- q(2461) => q(gdg),
- q(2462) => q(gdh),
- q(2463) => q(gdi),
- q(2464) => q(gdj),
- q(2465) => q(gdk),
- q(2466) => q(gdl),
- q(2467) => q(gdm),
- q(2468) => q(gdn),
- q(2469) => q(gdo),
- q(2470) => q(gdq),
- q(2471) => q(gdr),
- q(2472) => q(gds),
- q(2473) => q(gdt),
- q(2474) => q(gdu),
- q(2475) => q(gdx),
- q(2476) => q(gea),
- q(2477) => q(geb),
- q(2478) => q(gec),
- q(2479) => q(ged),
- q(2480) => q(geg),
- q(2481) => q(geh),
- q(2482) => q(gei),
- q(2483) => q(gej),
- q(2484) => q(gek),
- q(2485) => q(gel),
- q(2486) => q(geq),
- q(2487) => q(ges),
- q(2488) => q(gew),
- q(2489) => q(gex),
- q(2490) => q(gey),
- q(2491) => q(gfk),
- q(2492) => q(gft),
- q(2493) => q(gfx),
- q(2494) => q(gga),
- q(2495) => q(ggb),
- q(2496) => q(ggd),
- q(2497) => q(gge),
- q(2498) => q(ggg),
- q(2499) => q(ggk),
- q(2500) => q(ggl),
- q(2501) => q(ggn),
- q(2502) => q(ggo),
- q(2503) => q(ggt),
- q(2504) => q(ggu),
- q(2505) => q(ggw),
- q(2506) => q(gha),
- q(2507) => q(ghc),
- q(2508) => q(ghe),
- q(2509) => q(ghh),
- q(2510) => q(ghk),
- q(2511) => q(ghl),
- q(2512) => q(ghn),
- q(2513) => q(gho),
- q(2514) => q(ghr),
- q(2515) => q(ghs),
- q(2516) => q(ght),
- q(2517) => q(gia),
- q(2518) => q(gib),
- q(2519) => q(gic),
- q(2520) => q(gid),
- q(2521) => q(gig),
- q(2522) => q(gih),
- q(2523) => q(gim),
- q(2524) => q(gin),
- q(2525) => q(gip),
- q(2526) => q(giq),
- q(2527) => q(gir),
- q(2528) => q(gis),
- q(2529) => q(git),
- q(2530) => q(giu),
- q(2531) => q(giw),
- q(2532) => q(gix),
- q(2533) => q(giy),
- q(2534) => q(giz),
- q(2535) => q(gji),
- q(2536) => q(gjk),
- q(2537) => q(gjm),
- q(2538) => q(gjn),
- q(2539) => q(gju),
- q(2540) => q(gka),
- q(2541) => q(gke),
- q(2542) => q(gkn),
- q(2543) => q(gko),
- q(2544) => q(gkp),
- q(2545) => q(glc),
- q(2546) => q(gld),
- q(2547) => q(glh),
- q(2548) => q(gli),
- q(2549) => q(glj),
- q(2550) => q(glk),
- q(2551) => q(gll),
- q(2552) => q(glo),
- q(2553) => q(glr),
- q(2554) => q(glu),
- q(2555) => q(glw),
- q(2556) => q(gly),
- q(2557) => q(gma),
- q(2558) => q(gmb),
- q(2559) => q(gmd),
- q(2560) => q(gml),
- q(2561) => q(gmm),
- q(2562) => q(gmn),
- q(2563) => q(gmu),
- q(2564) => q(gmv),
- q(2565) => q(gmx),
- q(2566) => q(gmy),
- q(2567) => q(gmz),
- q(2568) => q(gna),
- q(2569) => q(gnb),
- q(2570) => q(gnc),
- q(2571) => q(gnd),
- q(2572) => q(gne),
- q(2573) => q(gng),
- q(2574) => q(gnh),
- q(2575) => q(gni),
- q(2576) => q(gnk),
- q(2577) => q(gnl),
- q(2578) => q(gnm),
- q(2579) => q(gnn),
- q(2580) => q(gno),
- q(2581) => q(gnq),
- q(2582) => q(gnr),
- q(2583) => q(gnt),
- q(2584) => q(gnu),
- q(2585) => q(gnw),
- q(2586) => q(gnz),
- q(2587) => q(goa),
- q(2588) => q(gob),
- q(2589) => q(goc),
- q(2590) => q(god),
- q(2591) => q(goe),
- q(2592) => q(gof),
- q(2593) => q(gog),
- q(2594) => q(goi),
- q(2595) => q(goj),
- q(2596) => q(gok),
- q(2597) => q(gol),
- q(2598) => q(gom),
- q(2599) => q(goo),
- q(2600) => q(gop),
- q(2601) => q(goq),
- q(2602) => q(gos),
- q(2603) => q(gou),
- q(2604) => q(gow),
- q(2605) => q(gox),
- q(2606) => q(goy),
- q(2607) => q(goz),
- q(2608) => q(gpa),
- q(2609) => q(gpe),
- q(2610) => q(gpn),
- q(2611) => q(gqa),
- q(2612) => q(gqi),
- q(2613) => q(gqn),
- q(2614) => q(gqr),
- q(2615) => q(gqu),
- q(2616) => q(gra),
- q(2617) => q(grd),
- q(2618) => q(grg),
- q(2619) => q(grh),
- q(2620) => q(gri),
- q(2621) => q(grj),
- q(2622) => q(grm),
- q(2623) => q(gro),
- q(2624) => q(grq),
- q(2625) => q(grr),
- q(2626) => q(grs),
- q(2627) => q(grt),
- q(2628) => q(gru),
- q(2629) => q(grv),
- q(2630) => q(grw),
- q(2631) => q(grx),
- q(2632) => q(gry),
- q(2633) => q(grz),
- q(2634) => q(gse),
- q(2635) => q(gsg),
- q(2636) => q(gsl),
- q(2637) => q(gsm),
- q(2638) => q(gsn),
- q(2639) => q(gso),
- q(2640) => q(gsp),
- q(2641) => q(gss),
- q(2642) => q(gta),
- q(2643) => q(gti),
- q(2644) => q(gtu),
- q(2645) => q(gua),
- q(2646) => q(gub),
- q(2647) => q(guc),
- q(2648) => q(gud),
- q(2649) => q(gue),
- q(2650) => q(guf),
- q(2651) => q(gug),
- q(2652) => q(guh),
- q(2653) => q(gui),
- q(2654) => q(guk),
- q(2655) => q(gul),
- q(2656) => q(gum),
- q(2657) => q(gun),
- q(2658) => q(guo),
- q(2659) => q(gup),
- q(2660) => q(yif),
- q(2661) => q(gur),
- q(2662) => q(gus),
- q(2663) => q(gut),
- q(2664) => q(guu),
- q(2665) => q(guv),
- q(2666) => q(guw),
- q(2667) => q(gux),
- q(2668) => q(guz),
- q(2669) => q(gva),
- q(2670) => q(gvc),
- q(2671) => q(gve),
- q(2672) => q(gvf),
- q(2673) => q(gvj),
- q(2674) => q(gvl),
- q(2675) => q(gvm),
- q(2676) => q(gvn),
- q(2677) => q(gvo),
- q(2678) => q(gvp),
- q(2679) => q(gvr),
- q(2680) => q(gvs),
- q(2681) => q(gvy),
- q(2682) => q(gwa),
- q(2683) => q(gwb),
- q(2684) => q(gwc),
- q(2685) => q(gwd),
- q(2686) => q(gwe),
- q(2687) => q(gwf),
- q(2688) => q(gwg),
- q(2689) => q(gwj),
- q(2690) => q(gwm),
- q(2691) => q(gwn),
- q(2692) => q(gwr),
- q(2693) => q(gwt),
- q(2694) => q(gwu),
- q(2695) => q(gww),
- q(2696) => q(gwx),
- q(2697) => q(gxx),
- q(2698) => q(gya),
- q(2699) => q(gyb),
- q(2700) => q(gyd),
- q(2701) => q(gye),
- q(2702) => q(gyf),
- q(2703) => q(gyg),
- q(2704) => q(gyi),
- q(2705) => q(gyl),
- q(2706) => q(gym),
- q(2707) => q(gyn),
- q(2708) => q(gyr),
- q(2709) => q(gyy),
- q(2710) => q(gza),
- q(2711) => q(gzi),
- q(2712) => q(gzn),
- q(2713) => q(haa),
- q(2714) => q(hab),
- q(2715) => q(hac),
- q(2716) => q(had),
- q(2717) => q(hae),
- q(2718) => q(haf),
- q(2719) => q(hag),
- q(2720) => q(hah),
- q(2721) => q(haj),
- q(2722) => q(hak),
- q(2723) => q(hal),
- q(2724) => q(ham),
- q(2725) => q(han),
- q(2726) => q(hao),
- q(2727) => q(hap),
- q(2728) => q(haq),
- q(2729) => q(har),
- q(2730) => q(has),
- q(2731) => q(hav),
- q(2732) => q(hax),
- q(2733) => q(hay),
- q(2734) => q(haz),
- q(2735) => q(hba),
- q(2736) => q(hbb),
- q(2737) => q(hbn),
- q(2738) => q(hbo),
- q(2739) => q(hbu),
- q(2740) => q(hca),
- q(2741) => q(hch),
- q(2742) => q(hdn),
- q(2743) => q(hds),
- q(2744) => q(hdy),
- q(2745) => q(hea),
- q(2746) => q(hed),
- q(2747) => q(heg),
- q(2748) => q(heh),
- q(2749) => q(hei),
- q(2750) => q(hem),
- q(2751) => q(hgm),
- q(2752) => q(hgw),
- q(2753) => q(hhi),
- q(2754) => q(hhr),
- q(2755) => q(hhy),
- q(2756) => q(hia),
- q(2757) => q(hib),
- q(2758) => q(hid),
- q(2759) => q(hif),
- q(2760) => q(hig),
- q(2761) => q(hih),
- q(2762) => q(hii),
- q(2763) => q(hij),
- q(2764) => q(hik),
- q(2765) => q(hio),
- q(2766) => q(hir),
- q(2767) => q(hiw),
- q(2768) => q(hix),
- q(2769) => q(hji),
- q(2770) => q(hka),
- q(2771) => q(hke),
- q(2772) => q(hkk),
- q(2773) => q(hks),
- q(2774) => q(hla),
- q(2775) => q(hlb),
- q(2776) => q(hld),
- q(2777) => q(hle),
- q(2778) => q(hlt),
- q(2779) => q(hlu),
- q(2780) => q(hma),
- q(2781) => q(hmb),
- q(2782) => q(hmc),
- q(2783) => q(hmd),
- q(2784) => q(hme),
- q(2785) => q(hmf),
- q(2786) => q(hmg),
- q(2787) => q(hmh),
- q(2788) => q(hmi),
- q(2789) => q(hmj),
- q(2790) => q(hmk),
- q(2791) => q(hml),
- q(2792) => q(hmm),
- q(2793) => q(hmp),
- q(2794) => q(hmq),
- q(2795) => q(hmr),
- q(2796) => q(hms),
- q(2797) => q(hmt),
- q(2798) => q(hmu),
- q(2799) => q(hmv),
- q(2800) => q(hmw),
- q(2801) => q(hmy),
- q(2802) => q(hmz),
- q(2803) => q(hna),
- q(2804) => q(hnd),
- q(2805) => q(hne),
- q(2806) => q(hnh),
- q(2807) => q(hni),
- q(2808) => q(hnj),
- q(2809) => q(hnn),
- q(2810) => q(hno),
- q(2811) => q(hns),
- q(2812) => q(hnu),
- q(2813) => q(hoa),
- q(2814) => q(hob),
- q(2815) => q(hoc),
- q(2816) => q(hod),
- q(2817) => q(hoe),
- q(2818) => q(hoh),
- q(2819) => q(hoi),
- q(2820) => q(hoj),
- q(2821) => q(hol),
- q(2822) => q(hom),
- q(2823) => q(hoo),
- q(2824) => q(hop),
- q(2825) => q(hor),
- q(2826) => q(hos),
- q(2827) => q(hot),
- q(2828) => q(hov),
- q(2829) => q(how),
- q(2830) => q(hoy),
- q(2831) => q(hoz),
- q(2832) => q(hpo),
- q(2833) => q(hps),
- q(2834) => q(hra),
- q(2835) => q(hrc),
- q(2836) => q(hre),
- q(2837) => q(hrk),
- q(2838) => q(hrm),
- q(2839) => q(hro),
- q(2840) => q(hrp),
- q(2841) => q(hrt),
- q(2842) => q(hru),
- q(2843) => q(hrw),
- q(2844) => q(hrx),
- q(2845) => q(hrz),
- q(2846) => q(hsh),
- q(2847) => q(hsl),
- q(2848) => q(hsn),
- q(2849) => q(hss),
- q(2850) => q(hti),
- q(2851) => q(hto),
- q(2852) => q(hts),
- q(2853) => q(htu),
- q(2854) => q(htx),
- q(2855) => q(hub),
- q(2856) => q(huc),
- q(2857) => q(hud),
- q(2858) => q(hue),
- q(2859) => q(huf),
- q(2860) => q(hug),
- q(2861) => q(huh),
- q(2862) => q(hui),
- q(2863) => q(huj),
- q(2864) => q(huk),
- q(2865) => q(hul),
- q(2866) => q(hum),
- q(2867) => q(huo),
- q(2868) => q(huq),
- q(2869) => q(hur),
- q(2870) => q(hus),
- q(2871) => q(hut),
- q(2872) => q(huu),
- q(2873) => q(huv),
- q(2874) => q(huw),
- q(2875) => q(hux),
- q(2876) => q(huy),
- q(2877) => q(huz),
- q(2878) => q(hvc),
- q(2879) => q(hve),
- q(2880) => q(hvk),
- q(2881) => q(hvn),
- q(2882) => q(hvv),
- q(2883) => q(hwa),
- q(2884) => q(hwc),
- q(2885) => q(hwo),
- q(2886) => q(hya),
- q(2887) => q(iai),
- q(2888) => q(ian),
- q(2889) => q(iap),
- q(2890) => q(iar),
- q(2891) => q(ibb),
- q(2892) => q(ibd),
- q(2893) => q(ibe),
- q(2894) => q(ibg),
- q(2895) => q(ibl),
- q(2896) => q(ibm),
- q(2897) => q(ibn),
- q(2898) => q(ibr),
- q(2899) => q(ibu),
- q(2900) => q(iby),
- q(2901) => q(ica),
- q(2902) => q(ich),
- q(2903) => q(icl),
- q(2904) => q(icr),
- q(2905) => q(ida),
- q(2906) => q(idb),
- q(2907) => q(idc),
- q(2908) => q(idd),
- q(2909) => q(ide),
- q(2910) => q(idi),
- q(2911) => q(idr),
- q(2912) => q(ids),
- q(2913) => q(idt),
- q(2914) => q(idu),
- q(2915) => q(ifa),
- q(2916) => q(ifb),
- q(2917) => q(ife),
- q(2918) => q(iff),
- q(2919) => q(ifk),
- q(2920) => q(ifm),
- q(2921) => q(ifu),
- q(2922) => q(ify),
- q(2923) => q(igb),
- q(2924) => q(ige),
- q(2925) => q(igg),
- q(2926) => q(igl),
- q(2927) => q(igm),
- q(2928) => q(ign),
- q(2929) => q(igo),
- q(2930) => q(igs),
- q(2931) => q(igw),
- q(2932) => q(ihb),
- q(2933) => q(ihi),
- q(2934) => q(ihp),
- q(2935) => q(ihw),
- q(2936) => q(iin),
- q(2937) => q(ijc),
- q(2938) => q(ije),
- q(2939) => q(ijj),
- q(2940) => q(ijn),
- q(2941) => q(ijs),
- q(2942) => q(ike),
- q(2943) => q(iki),
- q(2944) => q(ikk),
- q(2945) => q(ikl),
- q(2946) => q(iko),
- q(2947) => q(ikp),
- q(2948) => q(ikr),
- q(2949) => q(ikt),
- q(2950) => q(ikv),
- q(2951) => q(ikw),
- q(2952) => q(ikx),
- q(2953) => q(ikz),
- q(2954) => q(ila),
- q(2955) => q(ilb),
- q(2956) => q(ilg),
- q(2957) => q(ili),
- q(2958) => q(ilk),
- q(2959) => q(ill),
- q(2960) => q(ils),
- q(2961) => q(ilu),
- q(2962) => q(ilv),
- q(2963) => q(ima),
- q(2964) => q(ime),
- q(2965) => q(imi),
- q(2966) => q(iml),
- q(2967) => q(imn),
- q(2968) => q(imo),
- q(2969) => q(imr),
- q(2970) => q(ims),
- q(2971) => q(imy),
- q(2972) => q(inb),
- q(2973) => q(ing),
- q(2974) => q(inj),
- q(2975) => q(inl),
- q(2976) => q(inm),
- q(2977) => q(inn),
- q(2978) => q(ino),
- q(2979) => q(inp),
- q(2980) => q(ins),
- q(2981) => q(int),
- q(2982) => q(inz),
- q(2983) => q(ior),
- q(2984) => q(iou),
- q(2985) => q(iow),
- q(2986) => q(ipi),
- q(2987) => q(ipo),
- q(2988) => q(iqu),
- q(2989) => q(iqw),
- q(2990) => q(ire),
- q(2991) => q(irh),
- q(2992) => q(iri),
- q(2993) => q(irk),
- q(2994) => q(irn),
- q(2995) => q(irr),
- q(2996) => q(iru),
- q(2997) => q(irx),
- q(2998) => q(iry),
- q(2999) => q(isa),
- q(3000) => q(isc),
- q(3001) => q(isd),
- q(3002) => q(ise),
- q(3003) => q(isg),
- q(3004) => q(ish),
- q(3005) => q(isi),
- q(3006) => q(isk),
- q(3007) => q(ism),
- q(3008) => q(isn),
- q(3009) => q(iso),
- q(3010) => q(isr),
- q(3011) => q(ist),
- q(3012) => q(isu),
- q(3013) => q(itb),
- q(3014) => q(ite),
- q(3015) => q(iti),
- q(3016) => q(itk),
- q(3017) => q(itl),
- q(3018) => q(itm),
- q(3019) => q(ito),
- q(3020) => q(itr),
- q(3021) => q(its),
- q(3022) => q(itt),
- q(3023) => q(itv),
- q(3024) => q(itw),
- q(3025) => q(itx),
- q(3026) => q(ity),
- q(3027) => q(itz),
- q(3028) => q(ium),
- q(3029) => q(ivb),
- q(3030) => q(ivv),
- q(3031) => q(iwk),
- q(3032) => q(iwm),
- q(3033) => q(iwo),
- q(3034) => q(iws),
- q(3035) => q(ixc),
- q(3036) => q(ixl),
- q(3037) => q(iya),
- q(3038) => q(iyo),
- q(3039) => q(iyx),
- q(3040) => q(izh),
- q(3041) => q(izr),
- q(3042) => q(izz),
- q(3043) => q(jaa),
- q(3044) => q(jab),
- q(3045) => q(jac),
- q(3046) => q(jad),
- q(3047) => q(jae),
- q(3048) => q(jaf),
- q(3049) => q(jah),
- q(3050) => q(jaj),
- q(3051) => q(jak),
- q(3052) => q(jal),
- q(3053) => q(jam),
- q(3054) => q(jan),
- q(3055) => q(jao),
- q(3056) => q(jaq),
- q(3057) => q(jas),
- q(3058) => q(jat),
- q(3059) => q(jau),
- q(3060) => q(jax),
- q(3061) => q(jay),
- q(3062) => q(jaz),
- q(3063) => q(jbe),
- q(3064) => q(jbi),
- q(3065) => q(jbj),
- q(3066) => q(jbk),
- q(3067) => q(jbn),
- q(3068) => q(jbr),
- q(3069) => q(jbt),
- q(3070) => q(jbu),
- q(3071) => q(jbw),
- q(3072) => q(jcs),
- q(3073) => q(jct),
- q(3074) => q(jda),
- q(3075) => q(jdg),
- q(3076) => q(jdt),
- q(3077) => q(jeb),
- q(3078) => q(jee),
- q(3079) => q(jeg),
- q(3080) => q(jeh),
- q(3081) => q(jei),
- q(3082) => q(jek),
- q(3083) => q(jel),
- q(3084) => q(jen),
- q(3085) => q(jer),
- q(3086) => q(jet),
- q(3087) => q(jeu),
- q(3088) => q(jgb),
- q(3089) => q(jge),
- q(3090) => q(jgk),
- q(3091) => q(jgo),
- q(3092) => q(jhi),
- q(3093) => q(jhs),
- q(3094) => q(jia),
- q(3095) => q(jib),
- q(3096) => q(jic),
- q(3097) => q(jid),
- q(3098) => q(jie),
- q(3099) => q(jig),
- q(3100) => q(jih),
- q(3101) => q(jii),
- q(3102) => q(jil),
- q(3103) => q(jim),
- q(3104) => q(jio),
- q(3105) => q(jiq),
- q(3106) => q(jit),
- q(3107) => q(jiu),
- q(3108) => q(jiv),
- q(3109) => q(jiy),
- q(3110) => q(jjr),
- q(3111) => q(jkm),
- q(3112) => q(jko),
- q(3113) => q(jkp),
- q(3114) => q(jkr),
- q(3115) => q(jku),
- q(3116) => q(jle),
- q(3117) => q(jls),
- q(3118) => q(jma),
- q(3119) => q(jmb),
- q(3120) => q(jmc),
- q(3121) => q(jmd),
- q(3122) => q(jmi),
- q(3123) => q(jml),
- q(3124) => q(jmn),
- q(3125) => q(jmr),
- q(3126) => q(jms),
- q(3127) => q(jmw),
- q(3128) => q(jmx),
- q(3129) => q(jna),
- q(3130) => q(jnd),
- q(3131) => q(jng),
- q(3132) => q(jni),
- q(3133) => q(jnj),
- q(3134) => q(jnl),
- q(3135) => q(jns),
- q(3136) => q(job),
- q(3137) => q(jod),
- q(3138) => q(jor),
- q(3139) => q(jos),
- q(3140) => q(jow),
- q(3141) => q(jpa),
- q(3142) => q(jqr),
- q(3143) => q(jra),
- q(3144) => q(jrr),
- q(3145) => q(jrt),
- q(3146) => q(jru),
- q(3147) => q(jsl),
- q(3148) => q(jua),
- q(3149) => q(jub),
- q(3150) => q(juc),
- q(3151) => q(jud),
- q(3152) => q(juh),
- q(3153) => q(jui),
- q(3154) => q(juk),
- q(3155) => q(jul),
- q(3156) => q(jum),
- q(3157) => q(jun),
- q(3158) => q(juo),
- q(3159) => q(jup),
- q(3160) => q(jur),
- q(3161) => q(jus),
- q(3162) => q(jut),
- q(3163) => q(juu),
- q(3164) => q(juw),
- q(3165) => q(juy),
- q(3166) => q(jvd),
- q(3167) => q(jvn),
- q(3168) => q(jwi),
- q(3169) => q(jya),
- q(3170) => q(jye),
- q(3171) => q(jyy),
- q(3172) => q(kad),
- q(3173) => q(kae),
- q(3174) => q(kaf),
- q(3175) => q(kag),
- q(3176) => q(kah),
- q(3177) => q(kai),
- q(3178) => q(kaj),
- q(3179) => q(kak),
- q(3180) => q(kao),
- q(3181) => q(kap),
- q(3182) => q(kaq),
- q(3183) => q(kav),
- q(3184) => q(kax),
- q(3185) => q(kay),
- q(3186) => q(kba),
- q(3187) => q(kbb),
- q(3188) => q(kbc),
- q(3189) => q(kbe),
- q(3190) => q(kbf),
- q(3191) => q(kbg),
- q(3192) => q(kbh),
- q(3193) => q(kbi),
- q(3194) => q(kbj),
- q(3195) => q(kbk),
- q(3196) => q(kbl),
- q(3197) => q(kbm),
- q(3198) => q(kbn),
- q(3199) => q(kbo),
- q(3200) => q(kbp),
- q(3201) => q(kbq),
- q(3202) => q(kbr),
- q(3203) => q(kbs),
- q(3204) => q(kbt),
- q(3205) => q(kbu),
- q(3206) => q(kbv),
- q(3207) => q(kbw),
- q(3208) => q(kbx),
- q(3209) => q(kby),
- q(3210) => q(kbz),
- q(3211) => q(kca),
- q(3212) => q(kcb),
- q(3213) => q(kcc),
- q(3214) => q(kcd),
- q(3215) => q(kce),
- q(3216) => q(kcf),
- q(3217) => q(kcg),
- q(3218) => q(kch),
- q(3219) => q(kci),
- q(3220) => q(kcj),
- q(3221) => q(kck),
- q(3222) => q(kcl),
- q(3223) => q(kcm),
- q(3224) => q(kcn),
- q(3225) => q(kco),
- q(3226) => q(kcp),
- q(3227) => q(kcq),
- q(3228) => q(kcr),
- q(3229) => q(kcs),
- q(3230) => q(kct),
- q(3231) => q(kcu),
- q(3232) => q(kcv),
- q(3233) => q(kcw),
- q(3234) => q(kcx),
- q(3235) => q(kcy),
- q(3236) => q(kcz),
- q(3237) => q(kda),
- q(3238) => q(kdc),
- q(3239) => q(kdd),
- q(3240) => q(kde),
- q(3241) => q(kdf),
- q(3242) => q(kdg),
- q(3243) => q(kdh),
- q(3244) => q(kdi),
- q(3245) => q(kdj),
- q(3246) => q(kdk),
- q(3247) => q(kdl),
- q(3248) => q(kdm),
- q(3249) => q(kdn),
- q(3250) => q(kdp),
- q(3251) => q(kdq),
- q(3252) => q(kdr),
- q(3253) => q(kdt),
- q(3254) => q(kdu),
- q(3255) => q(kdw),
- q(3256) => q(kdx),
- q(3257) => q(kdy),
- q(3258) => q(kdz),
- q(3259) => q(kea),
- q(3260) => q(keb),
- q(3261) => q(kec),
- q(3262) => q(ked),
- q(3263) => q(kee),
- q(3264) => q(kef),
- q(3265) => q(keg),
- q(3266) => q(keh),
- q(3267) => q(kei),
- q(3268) => q(kej),
- q(3269) => q(kek),
- q(3270) => q(kel),
- q(3271) => q(kem),
- q(3272) => q(ken),
- q(3273) => q(keo),
- q(3274) => q(kep),
- q(3275) => q(keq),
- q(3276) => q(ker),
- q(3277) => q(kes),
- q(3278) => q(ket),
- q(3279) => q(keu),
- q(3280) => q(kev),
- q(3281) => q(kew),
- q(3282) => q(kex),
- q(3283) => q(key),
- q(3284) => q(kez),
- q(3285) => q(kfa),
- q(3286) => q(kfb),
- q(3287) => q(kfc),
- q(3288) => q(kfd),
- q(3289) => q(kfe),
- q(3290) => q(kff),
- q(3291) => q(kfg),
- q(3292) => q(kfh),
- q(3293) => q(kfi),
- q(3294) => q(kfj),
- q(3295) => q(kfk),
- q(3296) => q(kfl),
- q(3297) => q(kfm),
- q(3298) => q(kfn),
- q(3299) => q(kfo),
- q(3300) => q(kfp),
- q(3301) => q(kfq),
- q(3302) => q(kfr),
- q(3303) => q(kfs),
- q(3304) => q(kft),
- q(3305) => q(kfu),
- q(3306) => q(kfv),
- q(3307) => q(kfw),
- q(3308) => q(kfx),
- q(3309) => q(kfy),
- q(3310) => q(kfz),
- q(3311) => q(kga),
- q(3312) => q(kgb),
- q(3313) => q(kgc),
- q(3314) => q(kgd),
- q(3315) => q(kge),
- q(3316) => q(kgf),
- q(3317) => q(kgg),
- q(3318) => q(kgi),
- q(3319) => q(kgj),
- q(3320) => q(kgk),
- q(3321) => q(kgl),
- q(3322) => q(kuq),
- q(3323) => q(kgn),
- q(3324) => q(kgo),
- q(3325) => q(kgp),
- q(3326) => q(kgq),
- q(3327) => q(kgr),
- q(3328) => q(kgs),
- q(3329) => q(kgt),
- q(3330) => q(kgu),
- q(3331) => q(kgv),
- q(3332) => q(kgw),
- q(3333) => q(kgx),
- q(3334) => q(kgy),
- q(3335) => q(khb),
- q(3336) => q(khc),
- q(3337) => q(khd),
- q(3338) => q(khe),
- q(3339) => q(khf),
- q(3340) => q(khg),
- q(3341) => q(khh),
- q(3342) => q(khj),
- q(3343) => q(khk),
- q(3344) => q(khl),
- q(3345) => q(khn),
- q(3346) => q(khp),
- q(3347) => q(khq),
- q(3348) => q(khr),
- q(3349) => q(khs),
- q(3350) => q(kht),
- q(3351) => q(khu),
- q(3352) => q(khv),
- q(3353) => q(khw),
- q(3354) => q(khx),
- q(3355) => q(khy),
- q(3356) => q(khz),
- q(3357) => q(kia),
- q(3358) => q(kib),
- q(3359) => q(kic),
- q(3360) => q(kid),
- q(3361) => q(kie),
- q(3362) => q(kif),
- q(3363) => q(kig),
- q(3364) => q(kih),
- q(3365) => q(kii),
- q(3366) => q(kij),
- q(3367) => q(kil),
- q(3368) => q(kim),
- q(3369) => q(kio),
- q(3370) => q(kip),
- q(3371) => q(kiq),
- q(3372) => q(kis),
- q(3373) => q(kit),
- q(3374) => q(kiu),
- q(3375) => q(kiv),
- q(3376) => q(kiw),
- q(3377) => q(kix),
- q(3378) => q(kiy),
- q(3379) => q(kiz),
- q(3380) => q(kja),
- q(3381) => q(kjb),
- q(3382) => q(kjc),
- q(3383) => q(kjd),
- q(3384) => q(kje),
- q(3385) => q(kjf),
- q(3386) => q(kjg),
- q(3387) => q(kjh),
- q(3388) => q(kji),
- q(3389) => q(kjj),
- q(3390) => q(kjk),
- q(3391) => q(kjl),
- q(3392) => q(kjm),
- q(3393) => q(kjn),
- q(3394) => q(kjo),
- q(3395) => q(kjp),
- q(3396) => q(kjq),
- q(3397) => q(kjr),
- q(3398) => q(kjs),
- q(3399) => q(kjt),
- q(3400) => q(kju),
- q(3401) => q(kjx),
- q(3402) => q(kjy),
- q(3403) => q(kjz),
- q(3404) => q(kka),
- q(3405) => q(kkb),
- q(3406) => q(kkc),
- q(3407) => q(kkd),
- q(3408) => q(kke),
- q(3409) => q(kkf),
- q(3410) => q(kkg),
- q(3411) => q(kkh),
- q(3412) => q(kki),
- q(3413) => q(kkj),
- q(3414) => q(kkk),
- q(3415) => q(kkl),
- q(3416) => q(kkm),
- q(3417) => q(kkn),
- q(3418) => q(kko),
- q(3419) => q(kkp),
- q(3420) => q(kkq),
- q(3421) => q(kkr),
- q(3422) => q(kks),
- q(3423) => q(kkt),
- q(3424) => q(kku),
- q(3425) => q(kkv),
- q(3426) => q(kkw),
- q(3427) => q(kkx),
- q(3428) => q(kky),
- q(3429) => q(kkz),
- q(3430) => q(kla),
- q(3431) => q(klb),
- q(3432) => q(klc),
- q(3433) => q(kld),
- q(3434) => q(kle),
- q(3435) => q(klf),
- q(3436) => q(klg),
- q(3437) => q(klh),
- q(3438) => q(kli),
- q(3439) => q(klj),
- q(3440) => q(klk),
- q(3441) => q(kll),
- q(3442) => q(klm),
- q(3443) => q(kln),
- q(3444) => q(klo),
- q(3445) => q(klp),
- q(3446) => q(klq),
- q(3447) => q(klr),
- q(3448) => q(kls),
- q(3449) => q(klt),
- q(3450) => q(klu),
- q(3451) => q(klv),
- q(3452) => q(klw),
- q(3453) => q(klx),
- q(3454) => q(kly),
- q(3455) => q(klz),
- q(3456) => q(kma),
- q(3457) => q(kmc),
- q(3458) => q(kmd),
- q(3459) => q(kme),
- q(3460) => q(kmf),
- q(3461) => q(kmg),
- q(3462) => q(kmh),
- q(3463) => q(kmi),
- q(3464) => q(kmj),
- q(3465) => q(kmk),
- q(3466) => q(kml),
- q(3467) => q(kmm),
- q(3468) => q(kmn),
- q(3469) => q(kmo),
- q(3470) => q(kmp),
- q(3471) => q(kmq),
- q(3472) => q(kmr),
- q(3473) => q(kms),
- q(3474) => q(kmt),
- q(3475) => q(kmu),
- q(3476) => q(kmv),
- q(3477) => q(kmw),
- q(3478) => q(kmx),
- q(3479) => q(kmy),
- q(3480) => q(kmz),
- q(3481) => q(kna),
- q(3482) => q(knb),
- q(3483) => q(knc),
- q(3484) => q(knd),
- q(3485) => q(kne),
- q(3486) => q(knf),
- q(3487) => q(kng),
- q(3488) => q(kni),
- q(3489) => q(knj),
- q(3490) => q(knk),
- q(3491) => q(knl),
- q(3492) => q(knm),
- q(3493) => q(knn),
- q(3494) => q(kno),
- q(3495) => q(knp),
- q(3496) => q(knq),
- q(3497) => q(knr),
- q(3498) => q(kns),
- q(3499) => q(knt),
- q(3500) => q(knu),
- q(3501) => q(knv),
- q(3502) => q(knw),
- q(3503) => q(knx),
- q(3504) => q(kny),
- q(3505) => q(knz),
- q(3506) => q(koa),
- q(3507) => q(koc),
- q(3508) => q(kod),
- q(3509) => q(koe),
- q(3510) => q(kof),
- q(3511) => q(kog),
- q(3512) => q(koh),
- q(3513) => q(koi),
- q(3514) => q(koj),
- q(3515) => q(kol),
- q(3516) => q(koo),
- q(3517) => q(kop),
- q(3518) => q(koq),
- q(3519) => q(kot),
- q(3520) => q(kou),
- q(3521) => q(kov),
- q(3522) => q(kow),
- q(3523) => q(kox),
- q(3524) => q(koy),
- q(3525) => q(koz),
- q(3526) => q(kpa),
- q(3527) => q(kpb),
- q(3528) => q(kpc),
- q(3529) => q(kpd),
- q(3530) => q(kpf),
- q(3531) => q(kpg),
- q(3532) => q(kph),
- q(3533) => q(kpi),
- q(3534) => q(kpj),
- q(3535) => q(kpk),
- q(3536) => q(kpl),
- q(3537) => q(kpm),
- q(3538) => q(kpn),
- q(3539) => q(kpo),
- q(3540) => q(kpq),
- q(3541) => q(kpr),
- q(3542) => q(kps),
- q(3543) => q(kpt),
- q(3544) => q(kpu),
- q(3545) => q(kpv),
- q(3546) => q(kpw),
- q(3547) => q(kpx),
- q(3548) => q(kpy),
- q(3549) => q(kpz),
- q(3550) => q(kqa),
- q(3551) => q(kqb),
- q(3552) => q(kqc),
- q(3553) => q(kqd),
- q(3554) => q(kqe),
- q(3555) => q(kqf),
- q(3556) => q(kqg),
- q(3557) => q(kqh),
- q(3558) => q(kqi),
- q(3559) => q(kqj),
- q(3560) => q(kqk),
- q(3561) => q(kql),
- q(3562) => q(kqm),
- q(3563) => q(kqn),
- q(3564) => q(kqo),
- q(3565) => q(kqp),
- q(3566) => q(kqq),
- q(3567) => q(kqr),
- q(3568) => q(kqs),
- q(3569) => q(kqt),
- q(3570) => q(kqu),
- q(3571) => q(kqv),
- q(3572) => q(kqw),
- q(3573) => q(kqx),
- q(3574) => q(kqy),
- q(3575) => q(kqz),
- q(3576) => q(kra),
- q(3577) => q(krb),
- q(3578) => q(krd),
- q(3579) => q(kre),
- q(3580) => q(krf),
- q(3581) => q(krh),
- q(3582) => q(kri),
- q(3583) => q(krj),
- q(3584) => q(krk),
- q(3585) => q(krm),
- q(3586) => q(krn),
- q(3587) => q(krp),
- q(3588) => q(krr),
- q(3589) => q(krs),
- q(3590) => q(krt),
- q(3591) => q(krv),
- q(3592) => q(krw),
- q(3593) => q(krx),
- q(3594) => q(kry),
- q(3595) => q(krz),
- q(3596) => q(ksa),
- q(3597) => q(ksb),
- q(3598) => q(ksc),
- q(3599) => q(ksd),
- q(3600) => q(kse),
- q(3601) => q(ksf),
- q(3602) => q(ksg),
- q(3603) => q(ksh),
- q(3604) => q(ksi),
- q(3605) => q(ksj),
- q(3606) => q(ksk),
- q(3607) => q(ksl),
- q(3608) => q(ksm),
- q(3609) => q(ksn),
- q(3610) => q(kso),
- q(3611) => q(ksp),
- q(3612) => q(ksq),
- q(3613) => q(ksr),
- q(3614) => q(kss),
- q(3615) => q(kst),
- q(3616) => q(ksu),
- q(3617) => q(ksv),
- q(3618) => q(ksw),
- q(3619) => q(ksx),
- q(3620) => q(ksy),
- q(3621) => q(ksz),
- q(3622) => q(kta),
- q(3623) => q(ktb),
- q(3624) => q(ktc),
- q(3625) => q(ktd),
- q(3626) => q(kte),
- q(3627) => q(ktf),
- q(3628) => q(ktg),
- q(3629) => q(kth),
- q(3630) => q(kti),
- q(3631) => q(ktj),
- q(3632) => q(ktk),
- q(3633) => q(ktl),
- q(3634) => q(ktm),
- q(3635) => q(ktn),
- q(3636) => q(kto),
- q(3637) => q(ktp),
- q(3638) => q(ktq),
- q(3639) => q(ktr),
- q(3640) => q(kts),
- q(3641) => q(ktt),
- q(3642) => q(ktu),
- q(3643) => q(ktv),
- q(3644) => q(ktw),
- q(3645) => q(ktx),
- q(3646) => q(kty),
- q(3647) => q(ktz),
- q(3648) => q(kub),
- q(3649) => q(kuc),
- q(3650) => q(kud),
- q(3651) => q(kue),
- q(3652) => q(kuf),
- q(3653) => q(kug),
- q(3654) => q(kuh),
- q(3655) => q(kui),
- q(3656) => q(kuj),
- q(3657) => q(kuk),
- q(3658) => q(kul),
- q(3659) => q(kun),
- q(3660) => q(kuo),
- q(3661) => q(kup),
- q(3662) => q(kus),
- q(3663) => q(kuu),
- q(3664) => q(kuv),
- q(3665) => q(kuw),
- q(3666) => q(kux),
- q(3667) => q(kuy),
- q(3668) => q(kuz),
- q(3669) => q(kva),
- q(3670) => q(kvb),
- q(3671) => q(kvc),
- q(3672) => q(kvd),
- q(3673) => q(kve),
- q(3674) => q(kvf),
- q(3675) => q(kvg),
- q(3676) => q(kvh),
- q(3677) => q(kvi),
- q(3678) => q(kvj),
- q(3679) => q(kvk),
- q(3680) => q(kvl),
- q(3681) => q(kvm),
- q(3682) => q(kvn),
- q(3683) => q(kvo),
- q(3684) => q(kvp),
- q(3685) => q(kvq),
- q(3686) => q(kvr),
- q(3687) => q(kvs),
- q(3688) => q(kvt),
- q(3689) => q(kvu),
- q(3690) => q(kvv),
- q(3691) => q(kvw),
- q(3692) => q(kvx),
- q(3693) => q(kvy),
- q(3694) => q(kvz),
- q(3695) => q(kwa),
- q(3696) => q(kwb),
- q(3697) => q(kwc),
- q(3698) => q(kwd),
- q(3699) => q(kwe),
- q(3700) => q(kwf),
- q(3701) => q(kwg),
- q(3702) => q(kwh),
- q(3703) => q(kwi),
- q(3704) => q(kwj),
- q(3705) => q(kwk),
- q(3706) => q(kwl),
- q(3707) => q(kwm),
- q(3708) => q(kwn),
- q(3709) => q(kwo),
- q(3710) => q(kwp),
- q(3711) => q(kwq),
- q(3712) => q(kwr),
- q(3713) => q(kws),
- q(3714) => q(kwt),
- q(3715) => q(kwu),
- q(3716) => q(kwv),
- q(3717) => q(kww),
- q(3718) => q(kwx),
- q(3719) => q(kwy),
- q(3720) => q(kwz),
- q(3721) => q(kxa),
- q(3722) => q(kxb),
- q(3723) => q(kxc),
- q(3724) => q(kxd),
- q(3725) => q(kxe),
- q(3726) => q(kxf),
- q(3727) => q(kxh),
- q(3728) => q(kxi),
- q(3729) => q(kxj),
- q(3730) => q(kxk),
- q(3731) => q(kxl),
- q(3732) => q(kxm),
- q(3733) => q(kxn),
- q(3734) => q(kxo),
- q(3735) => q(kxp),
- q(3736) => q(kxq),
- q(3737) => q(kxr),
- q(3738) => q(kxs),
- q(3739) => q(kxt),
- q(3740) => q(kxu),
- q(3741) => q(kxv),
- q(3742) => q(kxw),
- q(3743) => q(kxx),
- q(3744) => q(kxy),
- q(3745) => q(kxz),
- q(3746) => q(kya),
- q(3747) => q(kyb),
- q(3748) => q(kyc),
- q(3749) => q(kyd),
- q(3750) => q(kye),
- q(3751) => q(kyf),
- q(3752) => q(kyg),
- q(3753) => q(kyh),
- q(3754) => q(kyi),
- q(3755) => q(kyj),
- q(3756) => q(kyk),
- q(3757) => q(kyl),
- q(3758) => q(kym),
- q(3759) => q(kyn),
- q(3760) => q(kyo),
- q(3761) => q(kyp),
- q(3762) => q(kyq),
- q(3763) => q(kyr),
- q(3764) => q(kys),
- q(3765) => q(kyt),
- q(3766) => q(kyu),
- q(3767) => q(kyv),
- q(3768) => q(kyw),
- q(3769) => q(kyx),
- q(3770) => q(kyy),
- q(3771) => q(kyz),
- q(3772) => q(kza),
- q(3773) => q(kzb),
- q(3774) => q(kzc),
- q(3775) => q(kzd),
- q(3776) => q(kze),
- q(3777) => q(kzf),
- q(3778) => q(kzg),
- q(3779) => q(kzi),
- q(3780) => q(kzj),
- q(3781) => q(kzk),
- q(3782) => q(kzl),
- q(3783) => q(kzm),
- q(3784) => q(kzn),
- q(3785) => q(kzo),
- q(3786) => q(kzp),
- q(3787) => q(kzq),
- q(3788) => q(kzr),
- q(3789) => q(kzs),
- q(3790) => q(kzt),
- q(3791) => q(kzu),
- q(3792) => q(kzv),
- q(3793) => q(kzw),
- q(3794) => q(kzx),
- q(3795) => q(kzy),
- q(3796) => q(kzz),
- q(3797) => q(laa),
- q(3798) => q(lab),
- q(3799) => q(lac),
- q(3800) => q(lae),
- q(3801) => q(laf),
- q(3802) => q(lag),
- q(3803) => q(lai),
- q(3804) => q(laj),
- q(3805) => q(lak),
- q(3806) => q(lal),
- q(3807) => q(lan),
- q(3808) => q(lap),
- q(3809) => q(laq),
- q(3810) => q(lar),
- q(3811) => q(las),
- q(3812) => q(lau),
- q(3813) => q(law),
- q(3814) => q(lax),
- q(3815) => q(lay),
- q(3816) => q(laz),
- q(3817) => q(lba),
- q(3818) => q(lbb),
- q(3819) => q(lbc),
- q(3820) => q(lbe),
- q(3821) => q(lbf),
- q(3822) => q(lbg),
- q(3823) => q(lbi),
- q(3824) => q(lbj),
- q(3825) => q(lbk),
- q(3826) => q(lbl),
- q(3827) => q(lbm),
- q(3828) => q(lbn),
- q(3829) => q(lbo),
- q(3830) => q(lbq),
- q(3831) => q(lbr),
- q(3832) => q(lbs),
- q(3833) => q(lbt),
- q(3834) => q(lbu),
- q(3835) => q(lbv),
- q(3836) => q(lbw),
- q(3837) => q(lbx),
- q(3838) => q(lby),
- q(3839) => q(lbz),
- q(3840) => q(lcc),
- q(3841) => q(lcd),
- q(3842) => q(lce),
- q(3843) => q(lcf),
- q(3844) => q(lch),
- q(3845) => q(lcl),
- q(3846) => q(lcm),
- q(3847) => q(lcp),
- q(3848) => q(lcq),
- q(3849) => q(lcs),
- q(3850) => q(lda),
- q(3851) => q(ldb),
- q(3852) => q(ldd),
- q(3853) => q(ldg),
- q(3854) => q(ldh),
- q(3855) => q(ldi),
- q(3856) => q(ldj),
- q(3857) => q(ldk),
- q(3858) => q(ldl),
- q(3859) => q(ldm),
- q(3860) => q(ldn),
- q(3861) => q(ldo),
- q(3862) => q(ldp),
- q(3863) => q(ldq),
- q(3864) => q(lea),
- q(3865) => q(leb),
- q(3866) => q(lec),
- q(3867) => q(led),
- q(3868) => q(lee),
- q(3869) => q(lef),
- q(3870) => q(leg),
- q(3871) => q(leh),
- q(3872) => q(lei),
- q(3873) => q(lej),
- q(3874) => q(lek),
- q(3875) => q(lel),
- q(3876) => q(lem),
- q(3877) => q(len),
- q(3878) => q(leo),
- q(3879) => q(lep),
- q(3880) => q(leq),
- q(3881) => q(ler),
- q(3882) => q(les),
- q(3883) => q(let),
- q(3884) => q(leu),
- q(3885) => q(lev),
- q(3886) => q(lew),
- q(3887) => q(lex),
- q(3888) => q(ley),
- q(3889) => q(lfa),
- q(3890) => q(lfn),
- q(3891) => q(lga),
- q(3892) => q(lgb),
- q(3893) => q(lgg),
- q(3894) => q(lgh),
- q(3895) => q(lgi),
- q(3896) => q(lgk),
- q(3897) => q(lgl),
- q(3898) => q(lgm),
- q(3899) => q(lgn),
- q(3900) => q(lgq),
- q(3901) => q(lgr),
- q(3902) => q(lgt),
- q(3903) => q(lgu),
- q(3904) => q(lgz),
- q(3905) => q(lha),
- q(3906) => q(lhh),
- q(3907) => q(lhi),
- q(3908) => q(lhl),
- q(3909) => q(lhm),
- q(3910) => q(lhn),
- q(3911) => q(lhp),
- q(3912) => q(lhs),
- q(3913) => q(lht),
- q(3914) => q(lhu),
- q(3915) => q(lia),
- q(3916) => q(lib),
- q(3917) => q(lic),
- q(3918) => q(lid),
- q(3919) => q(lie),
- q(3920) => q(lif),
- q(3921) => q(lig),
- q(3922) => q(lih),
- q(3923) => q(lii),
- q(3924) => q(lij),
- q(3925) => q(lik),
- q(3926) => q(lil),
- q(3927) => q(lio),
- q(3928) => q(lip),
- q(3929) => q(liq),
- q(3930) => q(lir),
- q(3931) => q(lis),
- q(3932) => q(liu),
- q(3933) => q(liv),
- q(3934) => q(liw),
- q(3935) => q(lix),
- q(3936) => q(liy),
- q(3937) => q(liz),
- q(3938) => q(lja),
- q(3939) => q(lje),
- q(3940) => q(lji),
- q(3941) => q(ljl),
- q(3942) => q(ljp),
- q(3943) => q(ljw),
- q(3944) => q(ljx),
- q(3945) => q(lka),
- q(3946) => q(lkb),
- q(3947) => q(lkc),
- q(3948) => q(lkd),
- q(3949) => q(lke),
- q(3950) => q(lkh),
- q(3951) => q(lki),
- q(3952) => q(lkj),
- q(3953) => q(lkl),
- q(3954) => q(lkm),
- q(3955) => q(lkn),
- q(3956) => q(lko),
- q(3957) => q(lkr),
- q(3958) => q(lks),
- q(3959) => q(lkt),
- q(3960) => q(lku),
- q(3961) => q(lky),
- q(3962) => q(lla),
- q(3963) => q(llb),
- q(3964) => q(llc),
- q(3965) => q(lld),
- q(3966) => q(lle),
- q(3967) => q(llf),
- q(3968) => q(llg),
- q(3969) => q(llh),
- q(3970) => q(lli),
- q(3971) => q(llj),
- q(3972) => q(llk),
- q(3973) => q(lll),
- q(3974) => q(llm),
- q(3975) => q(lln),
- q(3976) => q(llo),
- q(3977) => q(llp),
- q(3978) => q(llq),
- q(3979) => q(lls),
- q(3980) => q(llu),
- q(3981) => q(llx),
- q(3982) => q(lma),
- q(3983) => q(lmb),
- q(3984) => q(lmc),
- q(3985) => q(lmd),
- q(3986) => q(lme),
- q(3987) => q(lmf),
- q(3988) => q(lmg),
- q(3989) => q(lmh),
- q(3990) => q(lmi),
- q(3991) => q(lmj),
- q(3992) => q(lmk),
- q(3993) => q(lml),
- q(3994) => q(lmm),
- q(3995) => q(lmn),
- q(3996) => q(lmo),
- q(3997) => q(lmp),
- q(3998) => q(lmq),
- q(3999) => q(lmr),
- q(4000) => q(lmu),
- q(4001) => q(lmv),
- q(4002) => q(lmw),
- q(4003) => q(lmx),
- q(4004) => q(lmy),
- q(4005) => q(lmz),
- q(4006) => q(lna),
- q(4007) => q(lnb),
- q(4008) => q(lnd),
- q(4009) => q(lng),
- q(4010) => q(lnh),
- q(4011) => q(lni),
- q(4012) => q(lnj),
- q(4013) => q(lnl),
- q(4014) => q(lnm),
- q(4015) => q(lnn),
- q(4016) => q(lno),
- q(4017) => q(lns),
- q(4018) => q(lnu),
- q(4019) => q(lnw),
- q(4020) => q(lnz),
- q(4021) => q(loa),
- q(4022) => q(lob),
- q(4023) => q(loc),
- q(4024) => q(loe),
- q(4025) => q(lof),
- q(4026) => q(log),
- q(4027) => q(loh),
- q(4028) => q(loi),
- q(4029) => q(loj),
- q(4030) => q(lok),
- q(4031) => q(lom),
- q(4032) => q(lon),
- q(4033) => q(loo),
- q(4034) => q(lop),
- q(4035) => q(loq),
- q(4036) => q(lor),
- q(4037) => q(los),
- q(4038) => q(lot),
- q(4039) => q(lou),
- q(4040) => q(lov),
- q(4041) => q(low),
- q(4042) => q(lox),
- q(4043) => q(loy),
- q(4044) => q(lpa),
- q(4045) => q(lpe),
- q(4046) => q(lpn),
- q(4047) => q(lpo),
- q(4048) => q(lpx),
- q(4049) => q(lra),
- q(4050) => q(lrc),
- q(4051) => q(lre),
- q(4052) => q(lrg),
- q(4053) => q(lri),
- q(4054) => q(lrk),
- q(4055) => q(lrl),
- q(4056) => q(lrm),
- q(4057) => q(lrn),
- q(4058) => q(lro),
- q(4059) => q(lrr),
- q(4060) => q(lrt),
- q(4061) => q(lrv),
- q(4062) => q(lrz),
- q(4063) => q(lsa),
- q(4064) => q(lsd),
- q(4065) => q(lse),
- q(4066) => q(lsg),
- q(4067) => q(lsh),
- q(4068) => q(lsi),
- q(4069) => q(lsl),
- q(4070) => q(lsm),
- q(4071) => q(lso),
- q(4072) => q(lsp),
- q(4073) => q(lsr),
- q(4074) => q(lss),
- q(4075) => q(lst),
- q(4076) => q(lsy),
- q(4077) => q(ltc),
- q(4078) => q(ltg),
- q(4079) => q(lti),
- q(4080) => q(ltn),
- q(4081) => q(lto),
- q(4082) => q(lts),
- q(4083) => q(ltu),
- q(4084) => q(luc),
- q(4085) => q(lud),
- q(4086) => q(lue),
- q(4087) => q(luf),
- q(4088) => q(luj),
- q(4089) => q(luk),
- q(4090) => q(lul),
- q(4091) => q(lum),
- q(4092) => q(lup),
- q(4093) => q(luq),
- q(4094) => q(lur),
- q(4095) => q(lut),
- q(4096) => q(luu),
- q(4097) => q(luv),
- q(4098) => q(luw),
- q(4099) => q(luy),
- q(4100) => q(luz),
- q(4101) => q(lva),
- q(4102) => q(lvk),
- q(4103) => q(lvs),
- q(4104) => q(lvu),
- q(4105) => q(lwa),
- q(4106) => q(lwe),
- q(4107) => q(lwg),
- q(4108) => q(lwh),
- q(4109) => q(lwl),
- q(4110) => q(lwm),
- q(4111) => q(lwo),
- q(4112) => q(lwt),
- q(4113) => q(lwu),
- q(4114) => q(lww),
- q(4115) => q(lya),
- q(4116) => q(lyg),
- q(4117) => q(lyn),
- q(4118) => q(lzh),
- q(4119) => q(lzl),
- q(4120) => q(lzn),
- q(4121) => q(lzz),
- q(4122) => q(maa),
- q(4123) => q(mab),
- q(4124) => q(mae),
- q(4125) => q(maf),
- q(4126) => q(maj),
- q(4127) => q(mam),
- q(4128) => q(maq),
- q(4129) => q(mat),
- q(4130) => q(mau),
- q(4131) => q(mav),
- q(4132) => q(maw),
- q(4133) => q(max),
- q(4134) => q(maz),
- q(4135) => q(mba),
- q(4136) => q(mbb),
- q(4137) => q(mbc),
- q(4138) => q(mbd),
- q(4139) => q(mbe),
- q(4140) => q(mbf),
- q(4141) => q(mbh),
- q(4142) => q(mbi),
- q(4143) => q(mbj),
- q(4144) => q(mbk),
- q(4145) => q(mbl),
- q(4146) => q(mbm),
- q(4147) => q(mbn),
- q(4148) => q(mbo),
- q(4149) => q(mbp),
- q(4150) => q(mbq),
- q(4151) => q(mbr),
- q(4152) => q(mbs),
- q(4153) => q(mbt),
- q(4154) => q(mbu),
- q(4155) => q(mbv),
- q(4156) => q(mbw),
- q(4157) => q(mbx),
- q(4158) => q(mby),
- q(4159) => q(mbz),
- q(4160) => q(mca),
- q(4161) => q(mcb),
- q(4162) => q(mcc),
- q(4163) => q(mcd),
- q(4164) => q(mce),
- q(4165) => q(mcf),
- q(4166) => q(mcg),
- q(4167) => q(mch),
- q(4168) => q(mci),
- q(4169) => q(mcj),
- q(4170) => q(mck),
- q(4171) => q(mcl),
- q(4172) => q(mcm),
- q(4173) => q(mcn),
- q(4174) => q(mco),
- q(4175) => q(mcp),
- q(4176) => q(mcq),
- q(4177) => q(mcr),
- q(4178) => q(mcs),
- q(4179) => q(mct),
- q(4180) => q(mcu),
- q(4181) => q(mcv),
- q(4182) => q(mcw),
- q(4183) => q(mcx),
- q(4184) => q(mcy),
- q(4185) => q(mcz),
- q(4186) => q(mda),
- q(4187) => q(mdb),
- q(4188) => q(mdc),
- q(4189) => q(mdd),
- q(4190) => q(mde),
- q(4191) => q(mdg),
- q(4192) => q(mdh),
- q(4193) => q(mdi),
- q(4194) => q(mdj),
- q(4195) => q(mdk),
- q(4196) => q(mdl),
- q(4197) => q(mdm),
- q(4198) => q(mdn),
- q(4199) => q(mdp),
- q(4200) => q(mdq),
- q(4201) => q(mds),
- q(4202) => q(mdt),
- q(4203) => q(mdu),
- q(4204) => q(mdv),
- q(4205) => q(mdw),
- q(4206) => q(mdx),
- q(4207) => q(mdy),
- q(4208) => q(mdz),
- q(4209) => q(mea),
- q(4210) => q(meb),
- q(4211) => q(mec),
- q(4212) => q(med),
- q(4213) => q(mee),
- q(4214) => q(mef),
- q(4215) => q(meh),
- q(4216) => q(mei),
- q(4217) => q(mej),
- q(4218) => q(mek),
- q(4219) => q(mel),
- q(4220) => q(mem),
- q(4221) => q(meo),
- q(4222) => q(mep),
- q(4223) => q(meq),
- q(4224) => q(mer),
- q(4225) => q(mes),
- q(4226) => q(met),
- q(4227) => q(meu),
- q(4228) => q(mev),
- q(4229) => q(mew),
- q(4230) => q(mey),
- q(4231) => q(mez),
- q(4232) => q(mfa),
- q(4233) => q(mfb),
- q(4234) => q(mfc),
- q(4235) => q(mfd),
- q(4236) => q(mfe),
- q(4237) => q(mff),
- q(4238) => q(mfg),
- q(4239) => q(mfh),
- q(4240) => q(mfi),
- q(4241) => q(mfj),
- q(4242) => q(mfk),
- q(4243) => q(mfl),
- q(4244) => q(mfm),
- q(4245) => q(mfn),
- q(4246) => q(mfo),
- q(4247) => q(mfp),
- q(4248) => q(mfq),
- q(4249) => q(mfr),
- q(4250) => q(mfs),
- q(4251) => q(mft),
- q(4252) => q(mfu),
- q(4253) => q(mfv),
- q(4254) => q(mfw),
- q(4255) => q(mfx),
- q(4256) => q(mfy),
- q(4257) => q(mfz),
- q(4258) => q(mgb),
- q(4259) => q(mgc),
- q(4260) => q(mgd),
- q(4261) => q(mge),
- q(4262) => q(mgf),
- q(4263) => q(mgg),
- q(4264) => q(mgh),
- q(4265) => q(mgi),
- q(4266) => q(mgj),
- q(4267) => q(mgk),
- q(4268) => q(mgl),
- q(4269) => q(mgm),
- q(4270) => q(mgn),
- q(4271) => q(mgo),
- q(4272) => q(mgp),
- q(4273) => q(mgq),
- q(4274) => q(mgr),
- q(4275) => q(mgs),
- q(4276) => q(mgt),
- q(4277) => q(mgu),
- q(4278) => q(mgv),
- q(4279) => q(mgw),
- q(4280) => q(mgy),
- q(4281) => q(mgz),
- q(4282) => q(mha),
- q(4283) => q(mhb),
- q(4284) => q(mhc),
- q(4285) => q(mhd),
- q(4286) => q(mhe),
- q(4287) => q(mhf),
- q(4288) => q(mhg),
- q(4289) => q(mhh),
- q(4290) => q(mhi),
- q(4291) => q(mhj),
- q(4292) => q(mhk),
- q(4293) => q(mhl),
- q(4294) => q(mhm),
- q(4295) => q(mhn),
- q(4296) => q(mho),
- q(4297) => q(mhp),
- q(4298) => q(mhq),
- q(4299) => q(mhr),
- q(4300) => q(mhs),
- q(4301) => q(mht),
- q(4302) => q(mhu),
- q(4303) => q(mhw),
- q(4304) => q(mhx),
- q(4305) => q(mhy),
- q(4306) => q(mhz),
- q(4307) => q(mia),
- q(4308) => q(mib),
- q(4309) => q(mid),
- q(4310) => q(mie),
- q(4311) => q(mif),
- q(4312) => q(mig),
- q(4313) => q(mih),
- q(4314) => q(mii),
- q(4315) => q(mij),
- q(4316) => q(mik),
- q(4317) => q(mil),
- q(4318) => q(mim),
- q(4319) => q(mio),
- q(4320) => q(mip),
- q(4321) => q(miq),
- q(4322) => q(mir),
- q(4323) => q(mit),
- q(4324) => q(miu),
- q(4325) => q(miw),
- q(4326) => q(mix),
- q(4327) => q(miy),
- q(4328) => q(miz),
- q(4329) => q(mjc),
- q(4330) => q(mjd),
- q(4331) => q(mje),
- q(4332) => q(mjg),
- q(4333) => q(mjh),
- q(4334) => q(mji),
- q(4335) => q(mjj),
- q(4336) => q(mjk),
- q(4337) => q(mjl),
- q(4338) => q(mjm),
- q(4339) => q(mjn),
- q(4340) => q(mjo),
- q(4341) => q(mjp),
- q(4342) => q(mjq),
- q(4343) => q(mjr),
- q(4344) => q(mjs),
- q(4345) => q(mjt),
- q(4346) => q(mju),
- q(4347) => q(mjv),
- q(4348) => q(mjw),
- q(4349) => q(mjx),
- q(4350) => q(mjy),
- q(4351) => q(mjz),
- q(4352) => q(mka),
- q(4353) => q(mkb),
- q(4354) => q(mkc),
- q(4355) => q(mke),
- q(4356) => q(mkf),
- q(4357) => q(mkg),
- q(4358) => q(mki),
- q(4359) => q(mkj),
- q(4360) => q(mkk),
- q(4361) => q(mkl),
- q(4362) => q(mkm),
- q(4363) => q(mkn),
- q(4364) => q(mko),
- q(4365) => q(mkp),
- q(4366) => q(mkq),
- q(4367) => q(mkr),
- q(4368) => q(mks),
- q(4369) => q(mkt),
- q(4370) => q(mku),
- q(4371) => q(mkv),
- q(4372) => q(mkw),
- q(4373) => q(mkx),
- q(4374) => q(mky),
- q(4375) => q(mkz),
- q(4376) => q(mla),
- q(4377) => q(mlb),
- q(4378) => q(mlc),
- q(4379) => q(mle),
- q(4380) => q(mlf),
- q(4381) => q(mlh),
- q(4382) => q(mli),
- q(4383) => q(mlj),
- q(4384) => q(mlk),
- q(4385) => q(mll),
- q(4386) => q(mlm),
- q(4387) => q(mln),
- q(4388) => q(mlo),
- q(4389) => q(mlp),
- q(4390) => q(mlq),
- q(4391) => q(mlr),
- q(4392) => q(mls),
- q(4393) => q(mlu),
- q(4394) => q(mlv),
- q(4395) => q(mlw),
- q(4396) => q(mlx),
- q(4397) => q(mlz),
- q(4398) => q(mma),
- q(4399) => q(mmb),
- q(4400) => q(mmc),
- q(4401) => q(mmd),
- q(4402) => q(mme),
- q(4403) => q(mmf),
- q(4404) => q(mmg),
- q(4405) => q(mmh),
- q(4406) => q(mmi),
- q(4407) => q(mmj),
- q(4408) => q(mmk),
- q(4409) => q(mml),
- q(4410) => q(mmm),
- q(4411) => q(mmn),
- q(4412) => q(mmo),
- q(4413) => q(mmp),
- q(4414) => q(mmq),
- q(4415) => q(mmr),
- q(4416) => q(mmt),
- q(4417) => q(mmu),
- q(4418) => q(mmv),
- q(4419) => q(mmw),
- q(4420) => q(mmx),
- q(4421) => q(mmy),
- q(4422) => q(mmz),
- q(4423) => q(mna),
- q(4424) => q(mnb),
- q(4425) => q(mnd),
- q(4426) => q(mne),
- q(4427) => q(mnf),
- q(4428) => q(mng),
- q(4429) => q(mnh),
- q(4430) => q(mnj),
- q(4431) => q(mnk),
- q(4432) => q(mnl),
- q(4433) => q(mnm),
- q(4434) => q(mnn),
- q(4435) => q(mnp),
- q(4436) => q(mnq),
- q(4437) => q(mnr),
- q(4438) => q(mns),
- q(4439) => q(mnu),
- q(4440) => q(mnv),
- q(4441) => q(mnw),
- q(4442) => q(mnx),
- q(4443) => q(mny),
- q(4444) => q(mnz),
- q(4445) => q(moa),
- q(4446) => q(moc),
- q(4447) => q(mod),
- q(4448) => q(moe),
- q(4449) => q(mog),
- q(4450) => q(moi),
- q(4451) => q(moj),
- q(4452) => q(mok),
- q(4453) => q(mom),
- q(4454) => q(moo),
- q(4455) => q(mop),
- q(4456) => q(moq),
- q(4457) => q(mor),
- q(4458) => q(mou),
- q(4459) => q(mov),
- q(4460) => q(mow),
- q(4461) => q(mox),
- q(4462) => q(moy),
- q(4463) => q(moz),
- q(4464) => q(mpa),
- q(4465) => q(mpb),
- q(4466) => q(mpc),
- q(4467) => q(mpd),
- q(4468) => q(mpe),
- q(4469) => q(mpg),
- q(4470) => q(mph),
- q(4471) => q(mpi),
- q(4472) => q(mpj),
- q(4473) => q(mpk),
- q(4474) => q(mpl),
- q(4475) => q(mpm),
- q(4476) => q(mpn),
- q(4477) => q(mpo),
- q(4478) => q(mpp),
- q(4479) => q(mpq),
- q(4480) => q(mpr),
- q(4481) => q(mps),
- q(4482) => q(mpt),
- q(4483) => q(mpu),
- q(4484) => q(mpv),
- q(4485) => q(mpw),
- q(4486) => q(mpx),
- q(4487) => q(mpy),
- q(4488) => q(mpz),
- q(4489) => q(mqa),
- q(4490) => q(mqb),
- q(4491) => q(mqc),
- q(4492) => q(mqe),
- q(4493) => q(mqf),
- q(4494) => q(mqg),
- q(4495) => q(mqh),
- q(4496) => q(mqi),
- q(4497) => q(mqj),
- q(4498) => q(mqk),
- q(4499) => q(mql),
- q(4500) => q(mqm),
- q(4501) => q(mqn),
- q(4502) => q(mqo),
- q(4503) => q(mqp),
- q(4504) => q(mqq),
- q(4505) => q(mqr),
- q(4506) => q(mqs),
- q(4507) => q(mqt),
- q(4508) => q(mqu),
- q(4509) => q(mqv),
- q(4510) => q(mqw),
- q(4511) => q(mqx),
- q(4512) => q(mqy),
- q(4513) => q(mqz),
- q(4514) => q(mra),
- q(4515) => q(mrb),
- q(4516) => q(mrc),
- q(4517) => q(mrd),
- q(4518) => q(mre),
- q(4519) => q(mrf),
- q(4520) => q(mrg),
- q(4521) => q(mrh),
- q(4522) => q(mrj),
- q(4523) => q(mrk),
- q(4524) => q(mrl),
- q(4525) => q(mrm),
- q(4526) => q(mrn),
- q(4527) => q(mro),
- q(4528) => q(mrp),
- q(4529) => q(mrq),
- q(4530) => q(mrr),
- q(4531) => q(mrs),
- q(4532) => q(mrt),
- q(4533) => q(mru),
- q(4534) => q(mrv),
- q(4535) => q(mrw),
- q(4536) => q(mrx),
- q(4537) => q(mry),
- q(4538) => q(mrz),
- q(4539) => q(msb),
- q(4540) => q(msc),
- q(4541) => q(msd),
- q(4542) => q(mse),
- q(4543) => q(msf),
- q(4544) => q(msg),
- q(4545) => q(msh),
- q(4546) => q(msi),
- q(4547) => q(msj),
- q(4548) => q(msk),
- q(4549) => q(msl),
- q(4550) => q(msm),
- q(4551) => q(msn),
- q(4552) => q(mso),
- q(4553) => q(msp),
- q(4554) => q(msq),
- q(4555) => q(msr),
- q(4556) => q(mss),
- q(4557) => q(msu),
- q(4558) => q(msv),
- q(4559) => q(msw),
- q(4560) => q(msx),
- q(4561) => q(msy),
- q(4562) => q(msz),
- q(4563) => q(mta),
- q(4564) => q(mtb),
- q(4565) => q(mtc),
- q(4566) => q(mtd),
- q(4567) => q(mte),
- q(4568) => q(mtf),
- q(4569) => q(mtg),
- q(4570) => q(mth),
- q(4571) => q(mti),
- q(4572) => q(mtj),
- q(4573) => q(mtk),
- q(4574) => q(mtl),
- q(4575) => q(mtm),
- q(4576) => q(mtn),
- q(4577) => q(mto),
- q(4578) => q(mtp),
- q(4579) => q(mtq),
- q(4580) => q(mtr),
- q(4581) => q(mts),
- q(4582) => q(mtt),
- q(4583) => q(mtu),
- q(4584) => q(mtv),
- q(4585) => q(mtw),
- q(4586) => q(mtx),
- q(4587) => q(mty),
- q(4588) => q(mua),
- q(4589) => q(mub),
- q(4590) => q(muc),
- q(4591) => q(mud),
- q(4592) => q(mue),
- q(4593) => q(mug),
- q(4594) => q(muh),
- q(4595) => q(mui),
- q(4596) => q(muj),
- q(4597) => q(muk),
- q(4598) => q(mum),
- q(4599) => q(muo),
- q(4600) => q(mup),
- q(4601) => q(muq),
- q(4602) => q(mur),
- q(4603) => q(mut),
- q(4604) => q(muu),
- q(4605) => q(muv),
- q(4606) => q(mux),
- q(4607) => q(muy),
- q(4608) => q(muz),
- q(4609) => q(mva),
- q(4610) => q(mvb),
- q(4611) => q(mvd),
- q(4612) => q(mve),
- q(4613) => q(mvf),
- q(4614) => q(mvg),
- q(4615) => q(mvh),
- q(4616) => q(mvi),
- q(4617) => q(mvk),
- q(4618) => q(mvl),
- q(4619) => q(mvm),
- q(4620) => q(mvn),
- q(4621) => q(mvo),
- q(4622) => q(mvp),
- q(4623) => q(mvq),
- q(4624) => q(mvr),
- q(4625) => q(mvs),
- q(4626) => q(mvt),
- q(4627) => q(mvu),
- q(4628) => q(mvv),
- q(4629) => q(mvw),
- q(4630) => q(mvx),
- q(4631) => q(mvy),
- q(4632) => q(mvz),
- q(4633) => q(mwa),
- q(4634) => q(mwb),
- q(4635) => q(mwc),
- q(4636) => q(mwe),
- q(4637) => q(mwf),
- q(4638) => q(mwg),
- q(4639) => q(mwh),
- q(4640) => q(mwi),
- q(4641) => q(mwj),
- q(4642) => q(mwk),
- q(4643) => q(mwm),
- q(4644) => q(mwn),
- q(4645) => q(mwo),
- q(4646) => q(mwp),
- q(4647) => q(mwq),
- q(4648) => q(mws),
- q(4649) => q(mwt),
- q(4650) => q(mwu),
- q(4651) => q(mwv),
- q(4652) => q(mww),
- q(4653) => q(mwx),
- q(4654) => q(mwy),
- q(4655) => q(mwz),
- q(4656) => q(mxa),
- q(4657) => q(mxb),
- q(4658) => q(mxc),
- q(4659) => q(mxd),
- q(4660) => q(mxe),
- q(4661) => q(mxf),
- q(4662) => q(mxg),
- q(4663) => q(mxh),
- q(4664) => q(mxi),
- q(4665) => q(mxj),
- q(4666) => q(mxk),
- q(4667) => q(mxl),
- q(4668) => q(mxm),
- q(4669) => q(mxn),
- q(4670) => q(mxo),
- q(4671) => q(mxp),
- q(4672) => q(mxq),
- q(4673) => q(mxr),
- q(4674) => q(mxs),
- q(4675) => q(mxt),
- q(4676) => q(mxu),
- q(4677) => q(mxv),
- q(4678) => q(mxw),
- q(4679) => q(mxx),
- q(4680) => q(mxy),
- q(4681) => q(mxz),
- q(4682) => q(myb),
- q(4683) => q(myc),
- q(4684) => q(myd),
- q(4685) => q(mye),
- q(4686) => q(myf),
- q(4687) => q(myg),
- q(4688) => q(myh),
- q(4689) => q(myi),
- q(4690) => q(myj),
- q(4691) => q(myk),
- q(4692) => q(myl),
- q(4693) => q(mym),
- q(4694) => q(myo),
- q(4695) => q(myp),
- q(4696) => q(myr),
- q(4697) => q(mys),
- q(4698) => q(myu),
- q(4699) => q(myw),
- q(4700) => q(myx),
- q(4701) => q(myy),
- q(4702) => q(myz),
- q(4703) => q(mza),
- q(4704) => q(mzb),
- q(4705) => q(mzc),
- q(4706) => q(mzd),
- q(4707) => q(mze),
- q(4708) => q(mzg),
- q(4709) => q(mzh),
- q(4710) => q(mzi),
- q(4711) => q(mzj),
- q(4712) => q(mzk),
- q(4713) => q(mzl),
- q(4714) => q(mzm),
- q(4715) => q(mzn),
- q(4716) => q(mzo),
- q(4717) => q(mzp),
- q(4718) => q(mzq),
- q(4719) => q(mzr),
- q(4720) => q(mzs),
- q(4721) => q(mzt),
- q(4722) => q(mzu),
- q(4723) => q(mzv),
- q(4724) => q(mzw),
- q(4725) => q(mzx),
- q(4726) => q(mzy),
- q(4727) => q(mzz),
- q(4728) => q(naa),
- q(4729) => q(nab),
- q(4730) => q(nac),
- q(4731) => q(nad),
- q(4732) => q(nae),
- q(4733) => q(naf),
- q(4734) => q(nag),
- q(4735) => q(naj),
- q(4736) => q(nak),
- q(4737) => q(nal),
- q(4738) => q(nam),
- q(4739) => q(nan),
- q(4740) => q(nao),
- q(4741) => q(naq),
- q(4742) => q(nar),
- q(4743) => q(nas),
- q(4744) => q(nat),
- q(4745) => q(naw),
- q(4746) => q(nax),
- q(4747) => q(nay),
- q(4748) => q(naz),
- q(4749) => q(nba),
- q(4750) => q(nbb),
- q(4751) => q(nbc),
- q(4752) => q(nbd),
- q(4753) => q(nbe),
- q(4754) => q(nbg),
- q(4755) => q(nbh),
- q(4756) => q(nbi),
- q(4757) => q(nbj),
- q(4758) => q(nbk),
- q(4759) => q(nbm),
- q(4760) => q(nbn),
- q(4761) => q(nbo),
- q(4762) => q(nbp),
- q(4763) => q(nbq),
- q(4764) => q(nbr),
- q(4765) => q(nbs),
- q(4766) => q(nbt),
- q(4767) => q(nbu),
- q(4768) => q(nbv),
- q(4769) => q(nbw),
- q(4770) => q(nby),
- q(4771) => q(nca),
- q(4772) => q(ncb),
- q(4773) => q(ncc),
- q(4774) => q(ncd),
- q(4775) => q(nce),
- q(4776) => q(ncf),
- q(4777) => q(ncg),
- q(4778) => q(nch),
- q(4779) => q(nci),
- q(4780) => q(ncj),
- q(4781) => q(nck),
- q(4782) => q(ncl),
- q(4783) => q(ncm),
- q(4784) => q(ncn),
- q(4785) => q(nco),
- q(4786) => q(ncp),
- q(4787) => q(ncr),
- q(4788) => q(ncs),
- q(4789) => q(nct),
- q(4790) => q(ncu),
- q(4791) => q(ncx),
- q(4792) => q(ncz),
- q(4793) => q(nda),
- q(4794) => q(ndb),
- q(4795) => q(ndc),
- q(4796) => q(ndd),
- q(4797) => q(ndf),
- q(4798) => q(ndg),
- q(4799) => q(ndh),
- q(4800) => q(ndi),
- q(4801) => q(ndj),
- q(4802) => q(ndk),
- q(4803) => q(ndl),
- q(4804) => q(ndm),
- q(4805) => q(ndn),
- q(4806) => q(ndp),
- q(4807) => q(ndq),
- q(4808) => q(ndr),
- q(4809) => q(ndt),
- q(4810) => q(ndu),
- q(4811) => q(ndv),
- q(4812) => q(ndw),
- q(4813) => q(ndx),
- q(4814) => q(ndy),
- q(4815) => q(ndz),
- q(4816) => q(nea),
- q(4817) => q(neb),
- q(4818) => q(nec),
- q(4819) => q(ned),
- q(4820) => q(nee),
- q(4821) => q(nef),
- q(4822) => q(neg),
- q(4823) => q(neh),
- q(4824) => q(nei),
- q(4825) => q(nej),
- q(4826) => q(nek),
- q(4827) => q(nem),
- q(4828) => q(nen),
- q(4829) => q(neo),
- q(4830) => q(neq),
- q(4831) => q(ner),
- q(4832) => q(nes),
- q(4833) => q(net),
- q(4834) => q(neu),
- q(4835) => q(nev),
- q(4836) => q(nex),
- q(4837) => q(ney),
- q(4838) => q(nez),
- q(4839) => q(nfa),
- q(4840) => q(nfd),
- q(4841) => q(nfl),
- q(4842) => q(nfr),
- q(4843) => q(nfu),
- q(4844) => q(nga),
- q(4845) => q(ngb),
- q(4846) => q(ngc),
- q(4847) => q(ngd),
- q(4848) => q(nge),
- q(4849) => q(ngg),
- q(4850) => q(ngh),
- q(4851) => q(ngi),
- q(4852) => q(ngj),
- q(4853) => q(ngk),
- q(4854) => q(ngl),
- q(4855) => q(ngm),
- q(4856) => q(ngn),
- q(4857) => q(ngo),
- q(4858) => q(ngp),
- q(4859) => q(ngq),
- q(4860) => q(ngr),
- q(4861) => q(ngs),
- q(4862) => q(ngt),
- q(4863) => q(ngu),
- q(4864) => q(ngv),
- q(4865) => q(ngw),
- q(4866) => q(ngx),
- q(4867) => q(ngy),
- q(4868) => q(ngz),
- q(4869) => q(nha),
- q(4870) => q(nhb),
- q(4871) => q(nhc),
- q(4872) => q(nhd),
- q(4873) => q(nhe),
- q(4874) => q(nhf),
- q(4875) => q(nhg),
- q(4876) => q(nhh),
- q(4877) => q(nhi),
- q(4878) => q(nhk),
- q(4879) => q(nhm),
- q(4880) => q(nhn),
- q(4881) => q(nho),
- q(4882) => q(nhp),
- q(4883) => q(nhq),
- q(4884) => q(nhr),
- q(4885) => q(nht),
- q(4886) => q(nhu),
- q(4887) => q(nhv),
- q(4888) => q(nhw),
- q(4889) => q(nhx),
- q(4890) => q(nhy),
- q(4891) => q(nhz),
- q(4892) => q(nib),
- q(4893) => q(nid),
- q(4894) => q(nie),
- q(4895) => q(nif),
- q(4896) => q(nig),
- q(4897) => q(nih),
- q(4898) => q(nii),
- q(4899) => q(nij),
- q(4900) => q(nik),
- q(4901) => q(nil),
- q(4902) => q(nim),
- q(4903) => q(nin),
- q(4904) => q(nio),
- q(4905) => q(niq),
- q(4906) => q(nir),
- q(4907) => q(nis),
- q(4908) => q(nit),
- q(4909) => q(niv),
- q(4910) => q(niw),
- q(4911) => q(nix),
- q(4912) => q(niy),
- q(4913) => q(niz),
- q(4914) => q(nja),
- q(4915) => q(njb),
- q(4916) => q(njd),
- q(4917) => q(njh),
- q(4918) => q(nji),
- q(4919) => q(njj),
- q(4920) => q(njl),
- q(4921) => q(njm),
- q(4922) => q(njn),
- q(4923) => q(njo),
- q(4924) => q(njr),
- q(4925) => q(njs),
- q(4926) => q(njt),
- q(4927) => q(nju),
- q(4928) => q(njx),
- q(4929) => q(njy),
- q(4930) => q(njz),
- q(4931) => q(nka),
- q(4932) => q(nkb),
- q(4933) => q(nkc),
- q(4934) => q(nkd),
- q(4935) => q(nke),
- q(4936) => q(nkf),
- q(4937) => q(nkg),
- q(4938) => q(nkh),
- q(4939) => q(nki),
- q(4940) => q(nkj),
- q(4941) => q(nkk),
- q(4942) => q(nkm),
- q(4943) => q(nkn),
- q(4944) => q(nko),
- q(4945) => q(nkp),
- q(4946) => q(nkq),
- q(4947) => q(nkr),
- q(4948) => q(nks),
- q(4949) => q(nkt),
- q(4950) => q(nku),
- q(4951) => q(nkv),
- q(4952) => q(nkw),
- q(4953) => q(nkx),
- q(4954) => q(nkz),
- q(4955) => q(nla),
- q(4956) => q(nlc),
- q(4957) => q(nle),
- q(4958) => q(nlg),
- q(4959) => q(nli),
- q(4960) => q(nlj),
- q(4961) => q(nlk),
- q(4962) => q(nll),
- q(4963) => q(nlo),
- q(4964) => q(nlq),
- q(4965) => q(nlu),
- q(4966) => q(nlv),
- q(4967) => q(nlw),
- q(4968) => q(nlx),
- q(4969) => q(nly),
- q(4970) => q(nlz),
- q(4971) => q(nma),
- q(4972) => q(nmb),
- q(4973) => q(nmc),
- q(4974) => q(nmd),
- q(4975) => q(nme),
- q(4976) => q(nmf),
- q(4977) => q(nmg),
- q(4978) => q(nmh),
- q(4979) => q(nmi),
- q(4980) => q(nmj),
- q(4981) => q(nmk),
- q(4982) => q(nml),
- q(4983) => q(nmm),
- q(4984) => q(nmn),
- q(4985) => q(nmo),
- q(4986) => q(nmp),
- q(4987) => q(nmq),
- q(4988) => q(nmr),
- q(4989) => q(nms),
- q(4990) => q(nmt),
- q(4991) => q(nmu),
- q(4992) => q(nmv),
- q(4993) => q(nmw),
- q(4994) => q(nmx),
- q(4995) => q(nmy),
- q(4996) => q(nmz),
- q(4997) => q(nna),
- q(4998) => q(nnb),
- q(4999) => q(nnc),
- q(5000) => q(nnd),
- q(5001) => q(nne),
- q(5002) => q(nnf),
- q(5003) => q(nng),
- q(5004) => q(nnh),
- q(5005) => q(nni),
- q(5006) => q(nnj),
- q(5007) => q(nnk),
- q(5008) => q(nnl),
- q(5009) => q(nnm),
- q(5010) => q(nnn),
- q(5011) => q(nnp),
- q(5012) => q(nnq),
- q(5013) => q(nnr),
- q(5014) => q(nns),
- q(5015) => q(nnt),
- q(5016) => q(nnu),
- q(5017) => q(nnv),
- q(5018) => q(nnw),
- q(5019) => q(nnx),
- q(5020) => q(nny),
- q(5021) => q(nnz),
- q(5022) => q(noa),
- q(5023) => q(noc),
- q(5024) => q(nod),
- q(5025) => q(noe),
- q(5026) => q(nof),
- q(5027) => q(noh),
- q(5028) => q(noi),
- q(5029) => q(noj),
- q(5030) => q(nok),
- q(5031) => q(nol),
- q(5032) => q(nom),
- q(5033) => q(nop),
- q(5034) => q(noq),
- q(5035) => q(nos),
- q(5036) => q(not),
- q(5037) => q(nou),
- q(5038) => q(nov),
- q(5039) => q(now),
- q(5040) => q(noy),
- q(5041) => q(noz),
- q(5042) => q(npa),
- q(5043) => q(npb),
- q(5044) => q(npg),
- q(5045) => q(nph),
- q(5046) => q(npi),
- q(5047) => q(npl),
- q(5048) => q(npn),
- q(5049) => q(npo),
- q(5050) => q(nps),
- q(5051) => q(npu),
- q(5052) => q(npy),
- q(5053) => q(nqg),
- q(5054) => q(nqk),
- q(5055) => q(nqm),
- q(5056) => q(nqn),
- q(5057) => q(nqq),
- q(5058) => q(nqy),
- q(5059) => q(nra),
- q(5060) => q(nrb),
- q(5061) => q(nrc),
- q(5062) => q(nre),
- q(5063) => q(nrg),
- q(5064) => q(nri),
- q(5065) => q(nrk),
- q(5066) => q(nrl),
- q(5067) => q(nrm),
- q(5068) => q(nrn),
- q(5069) => q(nrp),
- q(5070) => q(nrr),
- q(5071) => q(nrt),
- q(5072) => q(nru),
- q(5073) => q(nrx),
- q(5074) => q(nrz),
- q(5075) => q(nsa),
- q(5076) => q(nsc),
- q(5077) => q(nsd),
- q(5078) => q(nse),
- q(5079) => q(nsf),
- q(5080) => q(nsg),
- q(5081) => q(nsh),
- q(5082) => q(nsi),
- q(5083) => q(nsk),
- q(5084) => q(nsl),
- q(5085) => q(nsm),
- q(5086) => q(nsn),
- q(5087) => q(nsp),
- q(5088) => q(nsq),
- q(5089) => q(nsr),
- q(5090) => q(nss),
- q(5091) => q(nst),
- q(5092) => q(nsu),
- q(5093) => q(nsv),
- q(5094) => q(nsw),
- q(5095) => q(nsx),
- q(5096) => q(nsy),
- q(5097) => q(nsz),
- q(5098) => q(nte),
- q(5099) => q(ntg),
- q(5100) => q(nti),
- q(5101) => q(ntj),
- q(5102) => q(ntk),
- q(5103) => q(ntm),
- q(5104) => q(nto),
- q(5105) => q(ntp),
- q(5106) => q(ntr),
- q(5107) => q(nts),
- q(5108) => q(ntu),
- q(5109) => q(ntw),
- q(5110) => q(ntx),
- q(5111) => q(nty),
- q(5112) => q(ntz),
- q(5113) => q(nua),
- q(5114) => q(nuc),
- q(5115) => q(nud),
- q(5116) => q(nue),
- q(5117) => q(nuf),
- q(5118) => q(nug),
- q(5119) => q(nuh),
- q(5120) => q(nui),
- q(5121) => q(nuj),
- q(5122) => q(nuk),
- q(5123) => q(nul),
- q(5124) => q(num),
- q(5125) => q(nun),
- q(5126) => q(nuo),
- q(5127) => q(nup),
- q(5128) => q(nuq),
- q(5129) => q(nur),
- q(5130) => q(nus),
- q(5131) => q(nut),
- q(5132) => q(nuu),
- q(5133) => q(nuv),
- q(5134) => q(nuw),
- q(5135) => q(nux),
- q(5136) => q(nuy),
- q(5137) => q(nuz),
- q(5138) => q(nvh),
- q(5139) => q(nvm),
- q(5140) => q(nvo),
- q(5141) => q(nwa),
- q(5142) => q(nwb),
- q(5143) => q(nwe),
- q(5144) => q(nwg),
- q(5145) => q(nwi),
- q(5146) => q(nwm),
- q(5147) => q(nwo),
- q(5148) => q(nwr),
- q(5149) => q(nwx),
- q(5150) => q(nwy),
- q(5151) => q(nxa),
- q(5152) => q(nxd),
- q(5153) => q(nxe),
- q(5154) => q(nxg),
- q(5155) => q(nxi),
- q(5156) => q(nxk),
- q(5157) => q(nxl),
- q(5158) => q(nxm),
- q(5159) => q(nxn),
- q(5160) => q(nxq),
- q(5161) => q(nxr),
- q(5162) => q(nxu),
- q(5163) => q(nxx),
- q(5164) => q(nyb),
- q(5165) => q(nyc),
- q(5166) => q(nyd),
- q(5167) => q(nye),
- q(5168) => q(nyf),
- q(5169) => q(nyg),
- q(5170) => q(nyh),
- q(5171) => q(nyi),
- q(5172) => q(nyj),
- q(5173) => q(nyk),
- q(5174) => q(nyl),
- q(5175) => q(nyp),
- q(5176) => q(nyq),
- q(5177) => q(nyr),
- q(5178) => q(nys),
- q(5179) => q(nyt),
- q(5180) => q(nyu),
- q(5181) => q(nyv),
- q(5182) => q(nyw),
- q(5183) => q(nyx),
- q(5184) => q(nyy),
- q(5185) => q(nza),
- q(5186) => q(nzb),
- q(5187) => q(nzk),
- q(5188) => q(nzm),
- q(5189) => q(nzs),
- q(5190) => q(nzu),
- q(5191) => q(nzy),
- q(5192) => q(nzz),
- q(5193) => q(oaa),
- q(5194) => q(oac),
- q(5195) => q(oar),
- q(5196) => q(oav),
- q(5197) => q(obi),
- q(5198) => q(obk),
- q(5199) => q(obl),
- q(5200) => q(obm),
- q(5201) => q(obo),
- q(5202) => q(obr),
- q(5203) => q(obt),
- q(5204) => q(obu),
- q(5205) => q(oca),
- q(5206) => q(och),
- q(5207) => q(oco),
- q(5208) => q(ocu),
- q(5209) => q(oda),
- q(5210) => q(odk),
- q(5211) => q(odt),
- q(5212) => q(odu),
- q(5213) => q(ofo),
- q(5214) => q(ofs),
- q(5215) => q(ofu),
- q(5216) => q(ogb),
- q(5217) => q(ogc),
- q(5218) => q(oge),
- q(5219) => q(ogg),
- q(5220) => q(ogo),
- q(5221) => q(ogu),
- q(5222) => q(oht),
- q(5223) => q(ohu),
- q(5224) => q(oia),
- q(5225) => q(oin),
- q(5226) => q(ojb),
- q(5227) => q(ojc),
- q(5228) => q(ojg),
- q(5229) => q(ojp),
- q(5230) => q(ojs),
- q(5231) => q(ojv),
- q(5232) => q(ojw),
- q(5233) => q(oka),
- q(5234) => q(okb),
- q(5235) => q(okd),
- q(5236) => q(oke),
- q(5237) => q(okg),
- q(5238) => q(okh),
- q(5239) => q(oki),
- q(5240) => q(okj),
- q(5241) => q(okk),
- q(5242) => q(okl),
- q(5243) => q(okm),
- q(5244) => q(okn),
- q(5245) => q(oko),
- q(5246) => q(okr),
- q(5247) => q(oks),
- q(5248) => q(oku),
- q(5249) => q(okv),
- q(5250) => q(okx),
- q(5251) => q(ola),
- q(5252) => q(old),
- q(5253) => q(ole),
- q(5254) => q(olk),
- q(5255) => q(olm),
- q(5256) => q(olo),
- q(5257) => q(olr),
- q(5258) => q(oma),
- q(5259) => q(omb),
- q(5260) => q(omc),
- q(5261) => q(ome),
- q(5262) => q(omg),
- q(5263) => q(omi),
- q(5264) => q(omk),
- q(5265) => q(oml),
- q(5266) => q(omn),
- q(5267) => q(omo),
- q(5268) => q(omp),
- q(5269) => q(omr),
- q(5270) => q(omt),
- q(5271) => q(omu),
- q(5272) => q(omw),
- q(5273) => q(omx),
- q(5274) => q(ona),
- q(5275) => q(onb),
- q(5276) => q(one),
- q(5277) => q(ong),
- q(5278) => q(oni),
- q(5279) => q(onj),
- q(5280) => q(onk),
- q(5281) => q(onn),
- q(5282) => q(ono),
- q(5283) => q(onp),
- q(5284) => q(onr),
- q(5285) => q(ons),
- q(5286) => q(ont),
- q(5287) => q(onu),
- q(5288) => q(onw),
- q(5289) => q(onx),
- q(5290) => q(ood),
- q(5291) => q(oog),
- q(5292) => q(oon),
- q(5293) => q(oor),
- q(5294) => q(oos),
- q(5295) => q(opa),
- q(5296) => q(opk),
- q(5297) => q(opm),
- q(5298) => q(opo),
- q(5299) => q(opt),
- q(5300) => q(opy),
- q(5301) => q(ora),
- q(5302) => q(orc),
- q(5303) => q(ore),
- q(5304) => q(org),
- q(5305) => q(orh),
- q(5306) => q(orn),
- q(5307) => q(oro),
- q(5308) => q(orr),
- q(5309) => q(ors),
- q(5310) => q(ort),
- q(5311) => q(oru),
- q(5312) => q(orv),
- q(5313) => q(orw),
- q(5314) => q(orx),
- q(5315) => q(ory),
- q(5316) => q(orz),
- q(5317) => q(osc),
- q(5318) => q(osi),
- q(5319) => q(oso),
- q(5320) => q(osp),
- q(5321) => q(ost),
- q(5322) => q(osu),
- q(5323) => q(osx),
- q(5324) => q(otb),
- q(5325) => q(otd),
- q(5326) => q(ote),
- q(5327) => q(oti),
- q(5328) => q(otk),
- q(5329) => q(otl),
- q(5330) => q(otm),
- q(5331) => q(otn),
- q(5332) => q(otq),
- q(5333) => q(otr),
- q(5334) => q(ots),
- q(5335) => q(ott),
- q(5336) => q(otu),
- q(5337) => q(otw),
- q(5338) => q(otx),
- q(5339) => q(oty),
- q(5340) => q(otz),
- q(5341) => q(oua),
- q(5342) => q(oub),
- q(5343) => q(oue),
- q(5344) => q(oui),
- q(5345) => q(oum),
- q(5346) => q(oun),
- q(5347) => q(owi),
- q(5348) => q(owl),
- q(5349) => q(oyb),
- q(5350) => q(oyd),
- q(5351) => q(oym),
- q(5352) => q(oyy),
- q(5353) => q(ozm),
- q(5354) => q(pab),
- q(5355) => q(pac),
- q(5356) => q(pad),
- q(5357) => q(pae),
- q(5358) => q(paf),
- q(5359) => q(pah),
- q(5360) => q(pai),
- q(5361) => q(pak),
- q(5362) => q(pao),
- q(5363) => q(paq),
- q(5364) => q(par),
- q(5365) => q(pas),
- q(5366) => q(pat),
- q(5367) => q(pav),
- q(5368) => q(paw),
- q(5369) => q(pax),
- q(5370) => q(pay),
- q(5371) => q(paz),
- q(5372) => q(pbb),
- q(5373) => q(pbc),
- q(5374) => q(pbe),
- q(5375) => q(pbf),
- q(5376) => q(pbg),
- q(5377) => q(pbh),
- q(5378) => q(pbi),
- q(5379) => q(pbl),
- q(5380) => q(pbn),
- q(5381) => q(pbo),
- q(5382) => q(pbp),
- q(5383) => q(pbr),
- q(5384) => q(pbs),
- q(5385) => q(pbt),
- q(5386) => q(pbu),
- q(5387) => q(pbv),
- q(5388) => q(pby),
- q(5389) => q(pca),
- q(5390) => q(pcb),
- q(5391) => q(pcc),
- q(5392) => q(pcd),
- q(5393) => q(pce),
- q(5394) => q(pcf),
- q(5395) => q(pcg),
- q(5396) => q(pch),
- q(5397) => q(pci),
- q(5398) => q(pcj),
- q(5399) => q(pck),
- q(5400) => q(pcl),
- q(5401) => q(pcm),
- q(5402) => q(pcn),
- q(5403) => q(pcp),
- q(5404) => q(pcw),
- q(5405) => q(pda),
- q(5406) => q(pdc),
- q(5407) => q(pdi),
- q(5408) => q(pdn),
- q(5409) => q(pdo),
- q(5410) => q(pdt),
- q(5411) => q(pdu),
- q(5412) => q(pea),
- q(5413) => q(peb),
- q(5414) => q(ped),
- q(5415) => q(pee),
- q(5416) => q(pef),
- q(5417) => q(peg),
- q(5418) => q(peh),
- q(5419) => q(pei),
- q(5420) => q(pej),
- q(5421) => q(pek),
- q(5422) => q(pel),
- q(5423) => q(pem),
- q(5424) => q(pep),
- q(5425) => q(peq),
- q(5426) => q(pes),
- q(5427) => q(pev),
- q(5428) => q(pex),
- q(5429) => q(pey),
- q(5430) => q(pez),
- q(5431) => q(pfa),
- q(5432) => q(pfe),
- q(5433) => q(pfl),
- q(5434) => q(pga),
- q(5435) => q(pgg),
- q(5436) => q(pgi),
- q(5437) => q(pgk),
- q(5438) => q(pgl),
- q(5439) => q(pgn),
- q(5440) => q(pgs),
- q(5441) => q(pgu),
- q(5442) => q(pha),
- q(5443) => q(phd),
- q(5444) => q(phg),
- q(5445) => q(phh),
- q(5446) => q(phk),
- q(5447) => q(phl),
- q(5448) => q(phm),
- q(5449) => q(pho),
- q(5450) => q(phq),
- q(5451) => q(phr),
- q(5452) => q(pht),
- q(5453) => q(phu),
- q(5454) => q(phv),
- q(5455) => q(phw),
- q(5456) => q(pia),
- q(5457) => q(pib),
- q(5458) => q(pic),
- q(5459) => q(pid),
- q(5460) => q(pie),
- q(5461) => q(pif),
- q(5462) => q(pig),
- q(5463) => q(pih),
- q(5464) => q(pii),
- q(5465) => q(pij),
- q(5466) => q(pil),
- q(5467) => q(pim),
- q(5468) => q(pin),
- q(5469) => q(pio),
- q(5470) => q(pip),
- q(5471) => q(pir),
- q(5472) => q(pis),
- q(5473) => q(pit),
- q(5474) => q(piu),
- q(5475) => q(piv),
- q(5476) => q(piw),
- q(5477) => q(pix),
- q(5478) => q(piy),
- q(5479) => q(piz),
- q(5480) => q(pjt),
- q(5481) => q(pka),
- q(5482) => q(pkb),
- q(5483) => q(pkc),
- q(5484) => q(pkg),
- q(5485) => q(pkh),
- q(5486) => q(pkn),
- q(5487) => q(pko),
- q(5488) => q(pkp),
- q(5489) => q(pkr),
- q(5490) => q(pks),
- q(5491) => q(pkt),
- q(5492) => q(pku),
- q(5493) => q(pla),
- q(5494) => q(plb),
- q(5495) => q(plc),
- q(5496) => q(pld),
- q(5497) => q(ple),
- q(5498) => q(plg),
- q(5499) => q(plh),
- q(5500) => q(plj),
- q(5501) => q(plk),
- q(5502) => q(pll),
- q(5503) => q(pln),
- q(5504) => q(plo),
- q(5505) => q(plp),
- q(5506) => q(plq),
- q(5507) => q(plr),
- q(5508) => q(pls),
- q(5509) => q(plt),
- q(5510) => q(plu),
- q(5511) => q(plv),
- q(5512) => q(plw),
- q(5513) => q(ply),
- q(5514) => q(plz),
- q(5515) => q(pma),
- q(5516) => q(pmb),
- q(5517) => q(pmc),
- q(5518) => q(pmd),
- q(5519) => q(pme),
- q(5520) => q(pmf),
- q(5521) => q(pmh),
- q(5522) => q(pmi),
- q(5523) => q(pmj),
- q(5524) => q(pmk),
- q(5525) => q(pml),
- q(5526) => q(pmm),
- q(5527) => q(pmn),
- q(5528) => q(pmo),
- q(5529) => q(pmq),
- q(5530) => q(pmr),
- q(5531) => q(pms),
- q(5532) => q(pmt),
- q(5533) => q(pmu),
- q(5534) => q(pmw),
- q(5535) => q(pmx),
- q(5536) => q(pmy),
- q(5537) => q(pmz),
- q(5538) => q(pna),
- q(5539) => q(pnb),
- q(5540) => q(pnc),
- q(5541) => q(pne),
- q(5542) => q(png),
- q(5543) => q(pnh),
- q(5544) => q(pni),
- q(5545) => q(pnj),
- q(5546) => q(pnk),
- q(5547) => q(pnl),
- q(5548) => q(pnm),
- q(5549) => q(pnn),
- q(5550) => q(pno),
- q(5551) => q(pnp),
- q(5552) => q(pnq),
- q(5553) => q(pnr),
- q(5554) => q(pns),
- q(5555) => q(pnt),
- q(5556) => q(pnu),
- q(5557) => q(pnv),
- q(5558) => q(pnw),
- q(5559) => q(pnx),
- q(5560) => q(pny),
- q(5561) => q(pnz),
- q(5562) => q(poc),
- q(5563) => q(pod),
- q(5564) => q(poe),
- q(5565) => q(pof),
- q(5566) => q(pog),
- q(5567) => q(poh),
- q(5568) => q(poi),
- q(5569) => q(pok),
- q(5570) => q(pom),
- q(5571) => q(poo),
- q(5572) => q(pop),
- q(5573) => q(poq),
- q(5574) => q(pos),
- q(5575) => q(pot),
- q(5576) => q(pov),
- q(5577) => q(pow),
- q(5578) => q(pox),
- q(5579) => q(poy),
- q(5580) => q(ppa),
- q(5581) => q(ppe),
- q(5582) => q(ppi),
- q(5583) => q(ppk),
- q(5584) => q(ppl),
- q(5585) => q(ppm),
- q(5586) => q(ppn),
- q(5587) => q(ppo),
- q(5588) => q(ppp),
- q(5589) => q(ppq),
- q(5590) => q(pps),
- q(5591) => q(ppt),
- q(5592) => q(ppu),
- q(5593) => q(pqa),
- q(5594) => q(pqm),
- q(5595) => q(prb),
- q(5596) => q(prc),
- q(5597) => q(prd),
- q(5598) => q(pre),
- q(5599) => q(prf),
- q(5600) => q(prg),
- q(5601) => q(prh),
- q(5602) => q(pri),
- q(5603) => q(prk),
- q(5604) => q(prl),
- q(5605) => q(prm),
- q(5606) => q(prn),
- q(5607) => q(prp),
- q(5608) => q(prq),
- q(5609) => q(prr),
- q(5610) => q(prs),
- q(5611) => q(prt),
- q(5612) => q(pru),
- q(5613) => q(prw),
- q(5614) => q(prx),
- q(5615) => q(pry),
- q(5616) => q(prz),
- q(5617) => q(psa),
- q(5618) => q(psc),
- q(5619) => q(psd),
- q(5620) => q(pse),
- q(5621) => q(psg),
- q(5622) => q(psh),
- q(5623) => q(psi),
- q(5624) => q(psl),
- q(5625) => q(psm),
- q(5626) => q(psn),
- q(5627) => q(pso),
- q(5628) => q(psp),
- q(5629) => q(psq),
- q(5630) => q(psr),
- q(5631) => q(pss),
- q(5632) => q(pst),
- q(5633) => q(psu),
- q(5634) => q(psw),
- q(5635) => q(psy),
- q(5636) => q(pta),
- q(5637) => q(pth),
- q(5638) => q(pti),
- q(5639) => q(ptn),
- q(5640) => q(pto),
- q(5641) => q(ptp),
- q(5642) => q(ptr),
- q(5643) => q(ptt),
- q(5644) => q(ptu),
- q(5645) => q(ptv),
- q(5646) => q(ptw),
- q(5647) => q(pty),
- q(5648) => q(pua),
- q(5649) => q(pub),
- q(5650) => q(puc),
- q(5651) => q(pud),
- q(5652) => q(pue),
- q(5653) => q(puf),
- q(5654) => q(pug),
- q(5655) => q(pui),
- q(5656) => q(puj),
- q(5657) => q(puk),
- q(5658) => q(pum),
- q(5659) => q(puo),
- q(5660) => q(pup),
- q(5661) => q(puq),
- q(5662) => q(pur),
- q(5663) => q(put),
- q(5664) => q(puu),
- q(5665) => q(puw),
- q(5666) => q(pux),
- q(5667) => q(puy),
- q(5668) => q(puz),
- q(5669) => q(pwa),
- q(5670) => q(pwb),
- q(5671) => q(pwg),
- q(5672) => q(pwi),
- q(5673) => q(pwm),
- q(5674) => q(pwn),
- q(5675) => q(pwo),
- q(5676) => q(pwr),
- q(5677) => q(pww),
- q(5678) => q(pxm),
- q(5679) => q(pye),
- q(5680) => q(pym),
- q(5681) => q(pyn),
- q(5682) => q(pys),
- q(5683) => q(pyu),
- q(5684) => q(pyx),
- q(5685) => q(pyy),
- q(5686) => q(pzn),
- q(5687) => q(qua),
- q(5688) => q(qub),
- q(5689) => q(quc),
- q(5690) => q(qud),
- q(5691) => q(quf),
- q(5692) => q(qug),
- q(5693) => q(quh),
- q(5694) => q(qui),
- q(5695) => q(quk),
- q(5696) => q(qul),
- q(5697) => q(qum),
- q(5698) => q(qun),
- q(5699) => q(qup),
- q(5700) => q(quq),
- q(5701) => q(qur),
- q(5702) => q(qus),
- q(5703) => q(quv),
- q(5704) => q(quw),
- q(5705) => q(qux),
- q(5706) => q(quy),
- q(5707) => q(quz),
- q(5708) => q(qva),
- q(5709) => q(qvc),
- q(5710) => q(qve),
- q(5711) => q(qvh),
- q(5712) => q(qvi),
- q(5713) => q(qvj),
- q(5714) => q(qvl),
- q(5715) => q(qvm),
- q(5716) => q(qvn),
- q(5717) => q(qvo),
- q(5718) => q(qvp),
- q(5719) => q(qvs),
- q(5720) => q(qvw),
- q(5721) => q(qvy),
- q(5722) => q(qvz),
- q(5723) => q(qwa),
- q(5724) => q(qwc),
- q(5725) => q(qwh),
- q(5726) => q(qwm),
- q(5727) => q(qws),
- q(5728) => q(qwt),
- q(5729) => q(qxa),
- q(5730) => q(qxc),
- q(5731) => q(qxh),
- q(5732) => q(qxl),
- q(5733) => q(qxn),
- q(5734) => q(qxo),
- q(5735) => q(qxp),
- q(5736) => q(qxq),
- q(5737) => q(qxr),
- q(5738) => q(qxs),
- q(5739) => q(qxt),
- q(5740) => q(qxu),
- q(5741) => q(qxw),
- q(5742) => q(qya),
- q(5743) => q(qyp),
- q(5744) => q(raa),
- q(5745) => q(rab),
- q(5746) => q(rac),
- q(5747) => q(rad),
- q(5748) => q(raf),
- q(5749) => q(rag),
- q(5750) => q(rah),
- q(5751) => q(rai),
- q(5752) => q(rak),
- q(5753) => q(ral),
- q(5754) => q(ram),
- q(5755) => q(ran),
- q(5756) => q(rao),
- q(5757) => q(raq),
- q(5758) => q(ras),
- q(5759) => q(rat),
- q(5760) => q(rau),
- q(5761) => q(rav),
- q(5762) => q(raw),
- q(5763) => q(rax),
- q(5764) => q(ray),
- q(5765) => q(raz),
- q(5766) => q(rbb),
- q(5767) => q(rbk),
- q(5768) => q(rbl),
- q(5769) => q(rbp),
- q(5770) => q(rcf),
- q(5771) => q(rdb),
- q(5772) => q(rea),
- q(5773) => q(reb),
- q(5774) => q(ree),
- q(5775) => q(reg),
- q(5776) => q(rei),
- q(5777) => q(rej),
- q(5778) => q(rel),
- q(5779) => q(rem),
- q(5780) => q(ren),
- q(5781) => q(rer),
- q(5782) => q(res),
- q(5783) => q(ret),
- q(5784) => q(rey),
- q(5785) => q(rga),
- q(5786) => q(rge),
- q(5787) => q(rgk),
- q(5788) => q(rgn),
- q(5789) => q(rgr),
- q(5790) => q(rgs),
- q(5791) => q(rgu),
- q(5792) => q(rhg),
- q(5793) => q(rhp),
- q(5794) => q(ria),
- q(5795) => q(rie),
- q(5796) => q(rif),
- q(5797) => q(ril),
- q(5798) => q(rim),
- q(5799) => q(rin),
- q(5800) => q(rir),
- q(5801) => q(rit),
- q(5802) => q(riu),
- q(5803) => q(rjg),
- q(5804) => q(rji),
- q(5805) => q(rjs),
- q(5806) => q(rka),
- q(5807) => q(rkb),
- q(5808) => q(rkh),
- q(5809) => q(rki),
- q(5810) => q(rkm),
- q(5811) => q(rkt),
- q(5812) => q(rkw),
- q(5813) => q(rma),
- q(5814) => q(rmb),
- q(5815) => q(rmc),
- q(5816) => q(rmd),
- q(5817) => q(rme),
- q(5818) => q(rmf),
- q(5819) => q(rmg),
- q(5820) => q(rmh),
- q(5821) => q(rmi),
- q(5822) => q(rmk),
- q(5823) => q(rml),
- q(5824) => q(rmm),
- q(5825) => q(rmn),
- q(5826) => q(rmo),
- q(5827) => q(rmp),
- q(5828) => q(rmq),
- q(5829) => q(rms),
- q(5830) => q(rmt),
- q(5831) => q(rmu),
- q(5832) => q(rmv),
- q(5833) => q(rmw),
- q(5834) => q(rmx),
- q(5835) => q(rmy),
- q(5836) => q(rmz),
- q(5837) => q(rna),
- q(5838) => q(rnd),
- q(5839) => q(rng),
- q(5840) => q(rnl),
- q(5841) => q(rnn),
- q(5842) => q(rnp),
- q(5843) => q(rnr),
- q(5844) => q(rnw),
- q(5845) => q(rob),
- q(5846) => q(roc),
- q(5847) => q(rod),
- q(5848) => q(roe),
- q(5849) => q(rof),
- q(5850) => q(rog),
- q(5851) => q(rol),
- q(5852) => q(roo),
- q(5853) => q(rop),
- q(5854) => q(ror),
- q(5855) => q(rou),
- q(5856) => q(row),
- q(5857) => q(rpn),
- q(5858) => q(rpt),
- q(5859) => q(rri),
- q(5860) => q(rro),
- q(5861) => q(rrt),
- q(5862) => q(rsb),
- q(5863) => q(rsi),
- q(5864) => q(rsl),
- q(5865) => q(rtc),
- q(5866) => q(rth),
- q(5867) => q(rtm),
- q(5868) => q(rtw),
- q(5869) => q(rub),
- q(5870) => q(ruc),
- q(5871) => q(rue),
- q(5872) => q(ruf),
- q(5873) => q(rug),
- q(5874) => q(ruh),
- q(5875) => q(rui),
- q(5876) => q(ruk),
- q(5877) => q(ruo),
- q(5878) => q(ruq),
- q(5879) => q(rut),
- q(5880) => q(ruu),
- q(5881) => q(ruy),
- q(5882) => q(ruz),
- q(5883) => q(rwa),
- q(5884) => q(rwk),
- q(5885) => q(rwm),
- q(5886) => q(rwo),
- q(5887) => q(rwr),
- q(5888) => q(rxd),
- q(5889) => q(rxw),
- q(5890) => q(ryn),
- q(5891) => q(rys),
- q(5892) => q(ryu),
- q(5893) => q(saa),
- q(5894) => q(sab),
- q(5895) => q(sac),
- q(5896) => q(sae),
- q(5897) => q(saf),
- q(5898) => q(saj),
- q(5899) => q(sak),
- q(5900) => q(sao),
- q(5901) => q(sap),
- q(5902) => q(saq),
- q(5903) => q(sar),
- q(5904) => q(sau),
- q(5905) => q(sav),
- q(5906) => q(saw),
- q(5907) => q(sax),
- q(5908) => q(say),
- q(5909) => q(saz),
- q(5910) => q(sba),
- q(5911) => q(sbb),
- q(5912) => q(sbc),
- q(5913) => q(sbd),
- q(5914) => q(slc),
- q(5915) => q(sbf),
- q(5916) => q(sbg),
- q(5917) => q(sbh),
- q(5918) => q(sbi),
- q(5919) => q(sbj),
- q(5920) => q(sbk),
- q(5921) => q(sbl),
- q(5922) => q(sbm),
- q(5923) => q(sbn),
- q(5924) => q(sbo),
- q(5925) => q(sbp),
- q(5926) => q(sbq),
- q(5927) => q(sbr),
- q(5928) => q(sbs),
- q(5929) => q(sbt),
- q(5930) => q(sbu),
- q(5931) => q(sbv),
- q(5932) => q(sbw),
- q(5933) => q(sbx),
- q(5934) => q(sby),
- q(5935) => q(sbz),
- q(5936) => q(scb),
- q(5937) => q(sce),
- q(5938) => q(scf),
- q(5939) => q(scg),
- q(5940) => q(sch),
- q(5941) => q(sci),
- q(5942) => q(sck),
- q(5943) => q(scl),
- q(5944) => q(scp),
- q(5945) => q(scq),
- q(5946) => q(scs),
- q(5947) => q(scu),
- q(5948) => q(scv),
- q(5949) => q(scw),
- q(5950) => q(scx),
- q(5951) => q(sda),
- q(5952) => q(sdb),
- q(5953) => q(sdc),
- q(5954) => q(sde),
- q(5955) => q(sdf),
- q(5956) => q(sdg),
- q(5957) => q(sdh),
- q(5958) => q(sdj),
- q(5959) => q(sdk),
- q(5960) => q(sdl),
- q(5961) => q(sdm),
- q(5962) => q(sdn),
- q(5963) => q(sdo),
- q(5964) => q(sdp),
- q(5965) => q(sdr),
- q(5966) => q(sds),
- q(5967) => q(sdt),
- q(5968) => q(sdu),
- q(5969) => q(sdx),
- q(5970) => q(sdz),
- q(5971) => q(sea),
- q(5972) => q(seb),
- q(5973) => q(sec),
- q(5974) => q(sed),
- q(5975) => q(see),
- q(5976) => q(sef),
- q(5977) => q(seg),
- q(5978) => q(seh),
- q(5979) => q(sei),
- q(5980) => q(sej),
- q(5981) => q(sek),
- q(5982) => q(sen),
- q(5983) => q(seo),
- q(5984) => q(sep),
- q(5985) => q(seq),
- q(5986) => q(ser),
- q(5987) => q(ses),
- q(5988) => q(set),
- q(5989) => q(seu),
- q(5990) => q(sev),
- q(5991) => q(sew),
- q(5992) => q(sey),
- q(5993) => q(sez),
- q(5994) => q(sfb),
- q(5995) => q(sfe),
- q(5996) => q(sfm),
- q(5997) => q(sfs),
- q(5998) => q(sfw),
- q(5999) => q(sgb),
- q(6000) => q(sgc),
- q(6001) => q(sgd),
- q(6002) => q(sge),
- q(6003) => q(sgg),
- q(6004) => q(sgh),
- q(6005) => q(sgi),
- q(6006) => q(sgj),
- q(6007) => q(sgk),
- q(6008) => q(sgm),
- q(6009) => q(sgo),
- q(6010) => q(sgp),
- q(6011) => q(sgr),
- q(6012) => q(sgs),
- q(6013) => q(sgt),
- q(6014) => q(sgu),
- q(6015) => q(sgw),
- q(6016) => q(sgx),
- q(6017) => q(sgy),
- q(6018) => q(sgz),
- q(6019) => q(sha),
- q(6020) => q(shb),
- q(6021) => q(shc),
- q(6022) => q(shd),
- q(6023) => q(she),
- q(6024) => q(shg),
- q(6025) => q(shh),
- q(6026) => q(shi),
- q(6027) => q(shj),
- q(6028) => q(shk),
- q(6029) => q(shl),
- q(6030) => q(shm),
- q(6031) => q(sho),
- q(6032) => q(shp),
- q(6033) => q(shq),
- q(6034) => q(shr),
- q(6035) => q(shs),
- q(6036) => q(sht),
- q(6037) => q(shu),
- q(6038) => q(shv),
- q(6039) => q(shw),
- q(6040) => q(shx),
- q(6041) => q(shy),
- q(6042) => q(shz),
- q(6043) => q(sia),
- q(6044) => q(sib),
- q(6045) => q(sie),
- q(6046) => q(sif),
- q(6047) => q(sig),
- q(6048) => q(sih),
- q(6049) => q(sii),
- q(6050) => q(sij),
- q(6051) => q(sik),
- q(6052) => q(sil),
- q(6053) => q(sim),
- q(6054) => q(sip),
- q(6055) => q(siq),
- q(6056) => q(sir),
- q(6057) => q(sis),
- q(6058) => q(siu),
- q(6059) => q(siv),
- q(6060) => q(siw),
- q(6061) => q(six),
- q(6062) => q(siy),
- q(6063) => q(siz),
- q(6064) => q(sja),
- q(6065) => q(sjb),
- q(6066) => q(sjd),
- q(6067) => q(sje),
- q(6068) => q(sjg),
- q(6069) => q(sjk),
- q(6070) => q(sjl),
- q(6071) => q(sjm),
- q(6072) => q(sjn),
- q(6073) => q(sjo),
- q(6074) => q(sjp),
- q(6075) => q(sjr),
- q(6076) => q(sjs),
- q(6077) => q(sjt),
- q(6078) => q(sju),
- q(6079) => q(sjw),
- q(6080) => q(ska),
- q(6081) => q(skb),
- q(6082) => q(skc),
- q(6083) => q(skd),
- q(6084) => q(ske),
- q(6085) => q(skf),
- q(6086) => q(skg),
- q(6087) => q(skh),
- q(6088) => q(ski),
- q(6089) => q(skj),
- q(6090) => q(skk),
- q(6091) => q(skm),
- q(6092) => q(skn),
- q(6093) => q(sko),
- q(6094) => q(skp),
- q(6095) => q(skq),
- q(6096) => q(skr),
- q(6097) => q(sks),
- q(6098) => q(skt),
- q(6099) => q(sku),
- q(6100) => q(skv),
- q(6101) => q(skw),
- q(6102) => q(skx),
- q(6103) => q(sky),
- q(6104) => q(skz),
- q(6105) => q(sld),
- q(6106) => q(sle),
- q(6107) => q(slf),
- q(6108) => q(slg),
- q(6109) => q(slh),
- q(6110) => q(sli),
- q(6111) => q(slj),
- q(6112) => q(sll),
- q(6113) => q(slm),
- q(6114) => q(sln),
- q(6115) => q(slp),
- q(6116) => q(slq),
- q(6117) => q(slr),
- q(6118) => q(sls),
- q(6119) => q(slt),
- q(6120) => q(slu),
- q(6121) => q(slw),
- q(6122) => q(slx),
- q(6123) => q(sly),
- q(6124) => q(slz),
- q(6125) => q(smb),
- q(6126) => q(smc),
- q(6127) => q(smd),
- q(6128) => q(smf),
- q(6129) => q(smg),
- q(6130) => q(smh),
- q(6131) => q(smk),
- q(6132) => q(sml),
- q(6133) => q(smm),
- q(6134) => q(smp),
- q(6135) => q(smq),
- q(6136) => q(smr),
- q(6137) => q(smt),
- q(6138) => q(smu),
- q(6139) => q(smv),
- q(6140) => q(smw),
- q(6141) => q(smx),
- q(6142) => q(smy),
- q(6143) => q(smz),
- q(6144) => q(snb),
- q(6145) => q(snc),
- q(6146) => q(sne),
- q(6147) => q(snf),
- q(6148) => q(sng),
- q(6149) => q(snh),
- q(6150) => q(sni),
- q(6151) => q(snj),
- q(6152) => q(snl),
- q(6153) => q(snm),
- q(6154) => q(snn),
- q(6155) => q(sno),
- q(6156) => q(snp),
- q(6157) => q(snq),
- q(6158) => q(snr),
- q(6159) => q(sns),
- q(6160) => q(snu),
- q(6161) => q(snv),
- q(6162) => q(snw),
- q(6163) => q(snx),
- q(6164) => q(sny),
- q(6165) => q(snz),
- q(6166) => q(soa),
- q(6167) => q(sob),
- q(6168) => q(soc),
- q(6169) => q(sod),
- q(6170) => q(soe),
- q(6171) => q(soh),
- q(6172) => q(soi),
- q(6173) => q(soj),
- q(6174) => q(sok),
- q(6175) => q(sol),
- q(6176) => q(soo),
- q(6177) => q(sop),
- q(6178) => q(soq),
- q(6179) => q(sor),
- q(6180) => q(sos),
- q(6181) => q(sou),
- q(6182) => q(sov),
- q(6183) => q(sow),
- q(6184) => q(sox),
- q(6185) => q(soy),
- q(6186) => q(soz),
- q(6187) => q(spb),
- q(6188) => q(spc),
- q(6189) => q(spd),
- q(6190) => q(spe),
- q(6191) => q(spg),
- q(6192) => q(spi),
- q(6193) => q(spk),
- q(6194) => q(spl),
- q(6195) => q(spm),
- q(6196) => q(spo),
- q(6197) => q(spp),
- q(6198) => q(spq),
- q(6199) => q(spr),
- q(6200) => q(sps),
- q(6201) => q(spt),
- q(6202) => q(spu),
- q(6203) => q(spv),
- q(6204) => q(spx),
- q(6205) => q(spy),
- q(6206) => q(sqa),
- q(6207) => q(sqh),
- q(6208) => q(sqk),
- q(6209) => q(sqm),
- q(6210) => q(sqn),
- q(6211) => q(sqo),
- q(6212) => q(sqq),
- q(6213) => q(sqr),
- q(6214) => q(sqs),
- q(6215) => q(sqt),
- q(6216) => q(squ),
- q(6217) => q(sra),
- q(6218) => q(srb),
- q(6219) => q(src),
- q(6220) => q(sre),
- q(6221) => q(srf),
- q(6222) => q(srg),
- q(6223) => q(srh),
- q(6224) => q(sri),
- q(6225) => q(srk),
- q(6226) => q(srl),
- q(6227) => q(srm),
- q(6228) => q(sro),
- q(6229) => q(srq),
- q(6230) => q(srs),
- q(6231) => q(srt),
- q(6232) => q(sru),
- q(6233) => q(srv),
- q(6234) => q(srw),
- q(6235) => q(srx),
- q(6236) => q(sry),
- q(6237) => q(srz),
- q(6238) => q(ssb),
- q(6239) => q(ssc),
- q(6240) => q(ssd),
- q(6241) => q(sse),
- q(6242) => q(ssf),
- q(6243) => q(ssg),
- q(6244) => q(ssh),
- q(6245) => q(ssi),
- q(6246) => q(ssj),
- q(6247) => q(ssk),
- q(6248) => q(ssl),
- q(6249) => q(ssm),
- q(6250) => q(ssn),
- q(6251) => q(sso),
- q(6252) => q(ssp),
- q(6253) => q(ssq),
- q(6254) => q(ssr),
- q(6255) => q(sss),
- q(6256) => q(sst),
- q(6257) => q(ssu),
- q(6258) => q(ssv),
- q(6259) => q(ssx),
- q(6260) => q(ssy),
- q(6261) => q(ssz),
- q(6262) => q(sta),
- q(6263) => q(stb),
- q(6264) => q(std),
- q(6265) => q(ste),
- q(6266) => q(stf),
- q(6267) => q(stg),
- q(6268) => q(sth),
- q(6269) => q(sti),
- q(6270) => q(stj),
- q(6271) => q(stk),
- q(6272) => q(stl),
- q(6273) => q(stm),
- q(6274) => q(stn),
- q(6275) => q(sto),
- q(6276) => q(stp),
- q(6277) => q(stq),
- q(6278) => q(str),
- q(6279) => q(sts),
- q(6280) => q(stt),
- q(6281) => q(stu),
- q(6282) => q(stv),
- q(6283) => q(stw),
- q(6284) => q(sty),
- q(6285) => q(sua),
- q(6286) => q(sub),
- q(6287) => q(suc),
- q(6288) => q(sue),
- q(6289) => q(sug),
- q(6290) => q(sui),
- q(6291) => q(suj),
- q(6292) => q(suq),
- q(6293) => q(sur),
- q(6294) => q(sut),
- q(6295) => q(suv),
- q(6296) => q(suw),
- q(6297) => q(suy),
- q(6298) => q(suz),
- q(6299) => q(sva),
- q(6300) => q(svb),
- q(6301) => q(svc),
- q(6302) => q(sve),
- q(6303) => q(svk),
- q(6304) => q(svm),
- q(6305) => q(svr),
- q(6306) => q(svs),
- q(6307) => q(svx),
- q(6308) => q(swb),
- q(6309) => q(swc),
- q(6310) => q(swf),
- q(6311) => q(swg),
- q(6312) => q(swh),
- q(6313) => q(swi),
- q(6314) => q(swj),
- q(6315) => q(swk),
- q(6316) => q(swl),
- q(6317) => q(swm),
- q(6318) => q(swn),
- q(6319) => q(swo),
- q(6320) => q(swp),
- q(6321) => q(swq),
- q(6322) => q(swr),
- q(6323) => q(sws),
- q(6324) => q(swt),
- q(6325) => q(swu),
- q(6326) => q(swv),
- q(6327) => q(sww),
- q(6328) => q(swx),
- q(6329) => q(swy),
- q(6330) => q(sxb),
- q(6331) => q(sxc),
- q(6332) => q(sxe),
- q(6333) => q(sxg),
- q(6334) => q(sxk),
- q(6335) => q(sxl),
- q(6336) => q(sxm),
- q(6337) => q(sxn),
- q(6338) => q(sxo),
- q(6339) => q(sxr),
- q(6340) => q(sxs),
- q(6341) => q(sxu),
- q(6342) => q(sxw),
- q(6343) => q(sya),
- q(6344) => q(syb),
- q(6345) => q(syi),
- q(6346) => q(syk),
- q(6347) => q(syl),
- q(6348) => q(sym),
- q(6349) => q(syn),
- q(6350) => q(syo),
- q(6351) => q(sys),
- q(6352) => q(syw),
- q(6353) => q(syy),
- q(6354) => q(sza),
- q(6355) => q(szb),
- q(6356) => q(szc),
- q(6357) => q(szd),
- q(6358) => q(sze),
- q(6359) => q(szg),
- q(6360) => q(szl),
- q(6361) => q(szn),
- q(6362) => q(szp),
- q(6363) => q(szv),
- q(6364) => q(szw),
- q(6365) => q(taa),
- q(6366) => q(tab),
- q(6367) => q(tac),
- q(6368) => q(tad),
- q(6369) => q(tae),
- q(6370) => q(taf),
- q(6371) => q(tag),
- q(6372) => q(taj),
- q(6373) => q(tak),
- q(6374) => q(tal),
- q(6375) => q(tan),
- q(6376) => q(tao),
- q(6377) => q(tap),
- q(6378) => q(taq),
- q(6379) => q(tar),
- q(6380) => q(tas),
- q(6381) => q(tau),
- q(6382) => q(tav),
- q(6383) => q(taw),
- q(6384) => q(tax),
- q(6385) => q(tay),
- q(6386) => q(taz),
- q(6387) => q(tba),
- q(6388) => q(tbb),
- q(6389) => q(tbc),
- q(6390) => q(tbd),
- q(6391) => q(tbe),
- q(6392) => q(tbf),
- q(6393) => q(tbg),
- q(6394) => q(tbh),
- q(6395) => q(tbi),
- q(6396) => q(tbj),
- q(6397) => q(tbk),
- q(6398) => q(tbl),
- q(6399) => q(tbm),
- q(6400) => q(tbn),
- q(6401) => q(tbo),
- q(6402) => q(tbp),
- q(6403) => q(tbr),
- q(6404) => q(tbs),
- q(6405) => q(tbt),
- q(6406) => q(tbu),
- q(6407) => q(tbv),
- q(6408) => q(tbw),
- q(6409) => q(tbx),
- q(6410) => q(tby),
- q(6411) => q(tbz),
- q(6412) => q(tca),
- q(6413) => q(tcb),
- q(6414) => q(tcc),
- q(6415) => q(tcd),
- q(6416) => q(tce),
- q(6417) => q(tcf),
- q(6418) => q(tcg),
- q(6419) => q(tch),
- q(6420) => q(wbf),
- q(6421) => q(tck),
- q(6422) => q(tcl),
- q(6423) => q(tcm),
- q(6424) => q(tcn),
- q(6425) => q(tco),
- q(6426) => q(tcp),
- q(6427) => q(tcq),
- q(6428) => q(tcs),
- q(6429) => q(tct),
- q(6430) => q(tcu),
- q(6431) => q(tcw),
- q(6432) => q(tcx),
- q(6433) => q(tcy),
- q(6434) => q(tcz),
- q(6435) => q(tda),
- q(6436) => q(tdb),
- q(6437) => q(tdc),
- q(6438) => q(tdd),
- q(6439) => q(tde),
- q(6440) => q(tdf),
- q(6441) => q(tdg),
- q(6442) => q(tdh),
- q(6443) => q(tdi),
- q(6444) => q(tdj),
- q(6445) => q(tdk),
- q(6446) => q(tdl),
- q(6447) => q(tdn),
- q(6448) => q(tdo),
- q(6449) => q(tdq),
- q(6450) => q(tdr),
- q(6451) => q(tds),
- q(6452) => q(tdt),
- q(6453) => q(tdu),
- q(6454) => q(tdv),
- q(6455) => q(tdx),
- q(6456) => q(tdy),
- q(6457) => q(tea),
- q(6458) => q(teb),
- q(6459) => q(tec),
- q(6460) => q(ted),
- q(6461) => q(tee),
- q(6462) => q(tef),
- q(6463) => q(teg),
- q(6464) => q(teh),
- q(6465) => q(tei),
- q(6466) => q(tek),
- q(6467) => q(ten),
- q(6468) => q(teo),
- q(6469) => q(tep),
- q(6470) => q(teq),
- q(6471) => q(tes),
- q(6472) => q(teu),
- q(6473) => q(tev),
- q(6474) => q(tew),
- q(6475) => q(tex),
- q(6476) => q(tey),
- q(6477) => q(tfi),
- q(6478) => q(tfn),
- q(6479) => q(tfo),
- q(6480) => q(tfr),
- q(6481) => q(tft),
- q(6482) => q(tga),
- q(6483) => q(tgb),
- q(6484) => q(tgc),
- q(6485) => q(tgd),
- q(6486) => q(tge),
- q(6487) => q(tgf),
- q(6488) => q(tgh),
- q(6489) => q(tgi),
- q(6490) => q(tgj),
- q(6491) => q(tgn),
- q(6492) => q(tgo),
- q(6493) => q(tgp),
- q(6494) => q(tgq),
- q(6495) => q(tgr),
- q(6496) => q(tgs),
- q(6497) => q(tgt),
- q(6498) => q(tgu),
- q(6499) => q(tgv),
- q(6500) => q(tgw),
- q(6501) => q(tgx),
- q(6502) => q(tgy),
- q(6503) => q(tgz),
- q(6504) => q(thc),
- q(6505) => q(thd),
- q(6506) => q(the),
- q(6507) => q(thf),
- q(6508) => q(thh),
- q(6509) => q(thi),
- q(6510) => q(thk),
- q(6511) => q(thl),
- q(6512) => q(thm),
- q(6513) => q(thn),
- q(6514) => q(thp),
- q(6515) => q(thq),
- q(6516) => q(thr),
- q(6517) => q(ths),
- q(6518) => q(tht),
- q(6519) => q(thu),
- q(6520) => q(thv),
- q(6521) => q(thw),
- q(6522) => q(thx),
- q(6523) => q(thy),
- q(6524) => q(thz),
- q(6525) => q(tia),
- q(6526) => q(tic),
- q(6527) => q(tid),
- q(6528) => q(tif),
- q(6529) => q(tih),
- q(6530) => q(tii),
- q(6531) => q(tij),
- q(6532) => q(tik),
- q(6533) => q(til),
- q(6534) => q(tim),
- q(6535) => q(tin),
- q(6536) => q(tio),
- q(6537) => q(tip),
- q(6538) => q(tiq),
- q(6539) => q(tis),
- q(6540) => q(tit),
- q(6541) => q(tiu),
- q(6542) => q(tiw),
- q(6543) => q(tix),
- q(6544) => q(tiy),
- q(6545) => q(tiz),
- q(6546) => q(tja),
- q(6547) => q(tjg),
- q(6548) => q(tji),
- q(6549) => q(tjl),
- q(6550) => q(tjm),
- q(6551) => q(tjn),
- q(6552) => q(tjo),
- q(6553) => q(tjs),
- q(6554) => q(tju),
- q(6555) => q(tjw),
- q(6556) => q(tka),
- q(6557) => q(tkb),
- q(6558) => q(tkd),
- q(6559) => q(tke),
- q(6560) => q(tkf),
- q(6561) => q(tkg),
- q(6562) => q(tkm),
- q(6563) => q(tkn),
- q(6564) => q(tkp),
- q(6565) => q(tkq),
- q(6566) => q(tkr),
- q(6567) => q(tks),
- q(6568) => q(tkt),
- q(6569) => q(tku),
- q(6570) => q(tkw),
- q(6571) => q(tkx),
- q(6572) => q(tkz),
- q(6573) => q(tla),
- q(6574) => q(tlb),
- q(6575) => q(tlc),
- q(6576) => q(tld),
- q(6577) => q(tlf),
- q(6578) => q(tlg),
- q(6579) => q(tlj),
- q(6580) => q(tlk),
- q(6581) => q(tll),
- q(6582) => q(tlm),
- q(6583) => q(tln),
- q(6584) => q(tlo),
- q(6585) => q(tlp),
- q(6586) => q(tlq),
- q(6587) => q(tlr),
- q(6588) => q(tls),
- q(6589) => q(tlt),
- q(6590) => q(tlu),
- q(6591) => q(tlv),
- q(6592) => q(tlx),
- q(6593) => q(tly),
- q(6594) => q(tma),
- q(6595) => q(tmb),
- q(6596) => q(tmc),
- q(6597) => q(tmd),
- q(6598) => q(tme),
- q(6599) => q(tmf),
- q(6600) => q(tmg),
- q(6601) => q(tmi),
- q(6602) => q(tmj),
- q(6603) => q(tmk),
- q(6604) => q(tml),
- q(6605) => q(tmm),
- q(6606) => q(tmn),
- q(6607) => q(tmo),
- q(6608) => q(tmp),
- q(6609) => q(tmq),
- q(6610) => q(tmr),
- q(6611) => q(tms),
- q(6612) => q(tmt),
- q(6613) => q(tmu),
- q(6614) => q(tmv),
- q(6615) => q(tmw),
- q(6616) => q(tmy),
- q(6617) => q(tmz),
- q(6618) => q(tna),
- q(6619) => q(tnb),
- q(6620) => q(tnc),
- q(6621) => q(tnd),
- q(6622) => q(tne),
- q(6623) => q(tng),
- q(6624) => q(tnh),
- q(6625) => q(tni),
- q(6626) => q(tnk),
- q(6627) => q(tnl),
- q(6628) => q(tnm),
- q(6629) => q(tnn),
- q(6630) => q(tno),
- q(6631) => q(tnp),
- q(6632) => q(tnq),
- q(6633) => q(tnr),
- q(6634) => q(tns),
- q(6635) => q(tnt),
- q(6636) => q(tnu),
- q(6637) => q(tnv),
- q(6638) => q(tnw),
- q(6639) => q(tnx),
- q(6640) => q(tny),
- q(6641) => q(tnz),
- q(6642) => q(tob),
- q(6643) => q(toc),
- q(6644) => q(tod),
- q(6645) => q(toe),
- q(6646) => q(tof),
- q(6647) => q(toh),
- q(6648) => q(toi),
- q(6649) => q(toj),
- q(6650) => q(tol),
- q(6651) => q(tom),
- q(6652) => q(too),
- q(6653) => q(top),
- q(6654) => q(toq),
- q(6655) => q(tor),
- q(6656) => q(tos),
- q(6657) => q(tou),
- q(6658) => q(tov),
- q(6659) => q(tow),
- q(6660) => q(tox),
- q(6661) => q(toy),
- q(6662) => q(toz),
- q(6663) => q(tpa),
- q(6664) => q(tpc),
- q(6665) => q(tpe),
- q(6666) => q(tpf),
- q(6667) => q(tpg),
- q(6668) => q(tpj),
- q(6669) => q(tpk),
- q(6670) => q(tpl),
- q(6671) => q(tpm),
- q(6672) => q(tpn),
- q(6673) => q(tpo),
- q(6674) => q(tpp),
- q(6675) => q(tpq),
- q(6676) => q(tpr),
- q(6677) => q(tpt),
- q(6678) => q(tpu),
- q(6679) => q(tpv),
- q(6680) => q(tpw),
- q(6681) => q(tpx),
- q(6682) => q(tpy),
- q(6683) => q(tpz),
- q(6684) => q(tqb),
- q(6685) => q(tql),
- q(6686) => q(tqm),
- q(6687) => q(tqn),
- q(6688) => q(tqo),
- q(6689) => q(tqp),
- q(6690) => q(tqq),
- q(6691) => q(tqr),
- q(6692) => q(tqt),
- q(6693) => q(tqu),
- q(6694) => q(tqw),
- q(6695) => q(tra),
- q(6696) => q(trb),
- q(6697) => q(trc),
- q(6698) => q(trd),
- q(6699) => q(tre),
- q(6700) => q(trf),
- q(6701) => q(trg),
- q(6702) => q(trh),
- q(6703) => q(tri),
- q(6704) => q(trj),
- q(6705) => q(trl),
- q(6706) => q(trm),
- q(6707) => q(trn),
- q(6708) => q(tro),
- q(6709) => q(trp),
- q(6710) => q(trq),
- q(6711) => q(trr),
- q(6712) => q(trs),
- q(6713) => q(trt),
- q(6714) => q(tru),
- q(6715) => q(trv),
- q(6716) => q(trw),
- q(6717) => q(trx),
- q(6718) => q(try),
- q(6719) => q(trz),
- q(6720) => q(tsa),
- q(6721) => q(tsb),
- q(6722) => q(tsc),
- q(6723) => q(tsd),
- q(6724) => q(tse),
- q(6725) => q(tsf),
- q(6726) => q(tsg),
- q(6727) => q(tsh),
- q(6728) => q(tsj),
- q(6729) => q(tsk),
- q(6730) => q(tsl),
- q(6731) => q(tsm),
- q(6732) => q(tsp),
- q(6733) => q(tsq),
- q(6734) => q(tsr),
- q(6735) => q(tss),
- q(6736) => q(tst),
- q(6737) => q(tsu),
- q(6738) => q(tsv),
- q(6739) => q(tsw),
- q(6740) => q(tsx),
- q(6741) => q(tsy),
- q(6742) => q(tsz),
- q(6743) => q(tta),
- q(6744) => q(ttb),
- q(6745) => q(ttc),
- q(6746) => q(ttd),
- q(6747) => q(tte),
- q(6748) => q(ttf),
- q(6749) => q(ttg),
- q(6750) => q(tth),
- q(6751) => q(tti),
- q(6752) => q(ttj),
- q(6753) => q(ttk),
- q(6754) => q(ttl),
- q(6755) => q(ttm),
- q(6756) => q(ttn),
- q(6757) => q(tto),
- q(6758) => q(ttp),
- q(6759) => q(ttq),
- q(6760) => q(ttr),
- q(6761) => q(tts),
- q(6762) => q(ttt),
- q(6763) => q(ttu),
- q(6764) => q(ttv),
- q(6765) => q(ttw),
- q(6766) => q(tty),
- q(6767) => q(ttz),
- q(6768) => q(tua),
- q(6769) => q(tub),
- q(6770) => q(tuc),
- q(6771) => q(tud),
- q(6772) => q(tue),
- q(6773) => q(tuf),
- q(6774) => q(tug),
- q(6775) => q(tuh),
- q(6776) => q(tui),
- q(6777) => q(tuj),
- q(6778) => q(tul),
- q(6779) => q(tun),
- q(6780) => q(tuo),
- q(6781) => q(tuq),
- q(6782) => q(tus),
- q(6783) => q(tuu),
- q(6784) => q(tuv),
- q(6785) => q(tux),
- q(6786) => q(tuy),
- q(6787) => q(tuz),
- q(6788) => q(tva),
- q(6789) => q(tvd),
- q(6790) => q(tve),
- q(6791) => q(tvk),
- q(6792) => q(tvm),
- q(6793) => q(tvn),
- q(6794) => q(tvo),
- q(6795) => q(tvs),
- q(6796) => q(tvt),
- q(6797) => q(tvu),
- q(6798) => q(tvw),
- q(6799) => q(tvy),
- q(6800) => q(twa),
- q(6801) => q(twb),
- q(6802) => q(twc),
- q(6803) => q(twd),
- q(6804) => q(twe),
- q(6805) => q(twf),
- q(6806) => q(twg),
- q(6807) => q(twh),
- q(6808) => q(twl),
- q(6809) => q(twm),
- q(6810) => q(twn),
- q(6811) => q(two),
- q(6812) => q(twp),
- q(6813) => q(twq),
- q(6814) => q(twr),
- q(6815) => q(twt),
- q(6816) => q(twu),
- q(6817) => q(tww),
- q(6818) => q(twx),
- q(6819) => q(twy),
- q(6820) => q(txa),
- q(6821) => q(txb),
- q(6822) => q(txc),
- q(6823) => q(txe),
- q(6824) => q(txg),
- q(6825) => q(txh),
- q(6826) => q(txi),
- q(6827) => q(txm),
- q(6828) => q(txn),
- q(6829) => q(txo),
- q(6830) => q(txq),
- q(6831) => q(txr),
- q(6832) => q(txs),
- q(6833) => q(txt),
- q(6834) => q(txu),
- q(6835) => q(txx),
- q(6836) => q(txy),
- q(6837) => q(tya),
- q(6838) => q(tye),
- q(6839) => q(tyh),
- q(6840) => q(tyi),
- q(6841) => q(tyj),
- q(6842) => q(tyl),
- q(6843) => q(tyn),
- q(6844) => q(typ),
- q(6845) => q(tyr),
- q(6846) => q(tys),
- q(6847) => q(tyt),
- q(6848) => q(tyu),
- q(6849) => q(tyx),
- q(6850) => q(tyz),
- q(6851) => q(tza),
- q(6852) => q(tzh),
- q(6853) => q(tzj),
- q(6854) => q(tzl),
- q(6855) => q(tzm),
- q(6856) => q(tzn),
- q(6857) => q(tzo),
- q(6858) => q(tzx),
- q(6859) => q(uam),
- q(6860) => q(uan),
- q(6861) => q(uar),
- q(6862) => q(uba),
- q(6863) => q(ubi),
- q(6864) => q(ubl),
- q(6865) => q(ubr),
- q(6866) => q(ubu),
- q(6867) => q(uby),
- q(6868) => q(uda),
- q(6869) => q(ude),
- q(6870) => q(udg),
- q(6871) => q(udi),
- q(6872) => q(udj),
- q(6873) => q(udl),
- q(6874) => q(udu),
- q(6875) => q(ues),
- q(6876) => q(ufi),
- q(6877) => q(ugb),
- q(6878) => q(uge),
- q(6879) => q(ugn),
- q(6880) => q(ugo),
- q(6881) => q(ugy),
- q(6882) => q(uha),
- q(6883) => q(uhn),
- q(6884) => q(uis),
- q(6885) => q(uiv),
- q(6886) => q(uji),
- q(6887) => q(uka),
- q(6888) => q(ukg),
- q(6889) => q(ukh),
- q(6890) => q(ukl),
- q(6891) => q(ukp),
- q(6892) => q(ukq),
- q(6893) => q(uks),
- q(6894) => q(uku),
- q(6895) => q(ukw),
- q(6896) => q(uky),
- q(6897) => q(ula),
- q(6898) => q(ulb),
- q(6899) => q(ulc),
- q(6900) => q(ule),
- q(6901) => q(ulf),
- q(6902) => q(uli),
- q(6903) => q(ulk),
- q(6904) => q(ull),
- q(6905) => q(ulm),
- q(6906) => q(uln),
- q(6907) => q(ulu),
- q(6908) => q(ulw),
- q(6909) => q(uma),
- q(6910) => q(umc),
- q(6911) => q(umd),
- q(6912) => q(umg),
- q(6913) => q(umi),
- q(6914) => q(umm),
- q(6915) => q(umn),
- q(6916) => q(umo),
- q(6917) => q(ump),
- q(6918) => q(umr),
- q(6919) => q(ums),
- q(6920) => q(umu),
- q(6921) => q(una),
- q(6922) => q(une),
- q(6923) => q(ung),
- q(6924) => q(unk),
- q(6925) => q(unm),
- q(6926) => q(unn),
- q(6927) => q(unr),
- q(6928) => q(unu),
- q(6929) => q(unx),
- q(6930) => q(unz),
- q(6931) => q(uok),
- q(6932) => q(upi),
- q(6933) => q(upv),
- q(6934) => q(ura),
- q(6935) => q(urb),
- q(6936) => q(urc),
- q(6937) => q(ure),
- q(6938) => q(urf),
- q(6939) => q(urg),
- q(6940) => q(urh),
- q(6941) => q(uri),
- q(6942) => q(urk),
- q(6943) => q(url),
- q(6944) => q(urm),
- q(6945) => q(urn),
- q(6946) => q(uro),
- q(6947) => q(urp),
- q(6948) => q(urr),
- q(6949) => q(urt),
- q(6950) => q(uru),
- q(6951) => q(urv),
- q(6952) => q(urw),
- q(6953) => q(urx),
- q(6954) => q(ury),
- q(6955) => q(urz),
- q(6956) => q(usa),
- q(6957) => q(ush),
- q(6958) => q(usi),
- q(6959) => q(usk),
- q(6960) => q(usp),
- q(6961) => q(usu),
- q(6962) => q(uta),
- q(6963) => q(ute),
- q(6964) => q(utp),
- q(6965) => q(utr),
- q(6966) => q(utu),
- q(6967) => q(uum),
- q(6968) => q(uun),
- q(6969) => q(uur),
- q(6970) => q(uuu),
- q(6971) => q(uve),
- q(6972) => q(uvh),
- q(6973) => q(uvl),
- q(6974) => q(uwa),
- q(6975) => q(uya),
- q(6976) => q(uzn),
- q(6977) => q(uzs),
- q(6978) => q(vaa),
- q(6979) => q(vae),
- q(6980) => q(vaf),
- q(6981) => q(vag),
- q(6982) => q(vah),
- q(6983) => q(vaj),
- q(6984) => q(val),
- q(6985) => q(vam),
- q(6986) => q(van),
- q(6987) => q(vao),
- q(6988) => q(vap),
- q(6989) => q(var),
- q(6990) => q(vas),
- q(6991) => q(vau),
- q(6992) => q(vav),
- q(6993) => q(vay),
- q(6994) => q(vbb),
- q(6995) => q(vbk),
- q(6996) => q(vec),
- q(6997) => q(ved),
- q(6998) => q(vel),
- q(6999) => q(vem),
- q(7000) => q(veo),
- q(7001) => q(vep),
- q(7002) => q(ver),
- q(7003) => q(vgr),
- q(7004) => q(vgt),
- q(7005) => q(vic),
- q(7006) => q(vid),
- q(7007) => q(vif),
- q(7008) => q(vig),
- q(7009) => q(vil),
- q(7010) => q(vin),
- q(7011) => q(vis),
- q(7012) => q(vit),
- q(7013) => q(viv),
- q(7014) => q(vka),
- q(7015) => q(vki),
- q(7016) => q(vkj),
- q(7017) => q(vkk),
- q(7018) => q(vkl),
- q(7019) => q(vkm),
- q(7020) => q(vko),
- q(7021) => q(vkp),
- q(7022) => q(vkt),
- q(7023) => q(vku),
- q(7024) => q(vlp),
- q(7025) => q(vls),
- q(7026) => q(vma),
- q(7027) => q(vmb),
- q(7028) => q(vmc),
- q(7029) => q(vmd),
- q(7030) => q(vme),
- q(7031) => q(vmf),
- q(7032) => q(vmg),
- q(7033) => q(vmh),
- q(7034) => q(vmi),
- q(7035) => q(vmj),
- q(7036) => q(vmk),
- q(7037) => q(vml),
- q(7038) => q(vmm),
- q(7039) => q(vmp),
- q(7040) => q(vmq),
- q(7041) => q(vmr),
- q(7042) => q(vms),
- q(7043) => q(vmu),
- q(7044) => q(vmv),
- q(7045) => q(vmw),
- q(7046) => q(vmx),
- q(7047) => q(vmy),
- q(7048) => q(vmz),
- q(7049) => q(vnk),
- q(7050) => q(vnm),
- q(7051) => q(vnp),
- q(7052) => q(vro),
- q(7053) => q(vra),
- q(7054) => q(vrs),
- q(7055) => q(vrt),
- q(7056) => q(vsi),
- q(7057) => q(vsl),
- q(7058) => q(vsv),
- q(7059) => q(vto),
- q(7060) => q(vum),
- q(7061) => q(vun),
- q(7062) => q(vut),
- q(7063) => q(vwa),
- q(7064) => q(waa),
- q(7065) => q(wab),
- q(7066) => q(wac),
- q(7067) => q(wad),
- q(7068) => q(wae),
- q(7069) => q(waf),
- q(7070) => q(wag),
- q(7071) => q(wah),
- q(7072) => q(wai),
- q(7073) => q(waj),
- q(7074) => q(wam),
- q(7075) => q(wan),
- q(7076) => q(wao),
- q(7077) => q(wap),
- q(7078) => q(waq),
- q(7079) => q(wat),
- q(7080) => q(wau),
- q(7081) => q(wav),
- q(7082) => q(waw),
- q(7083) => q(wax),
- q(7084) => q(way),
- q(7085) => q(waz),
- q(7086) => q(wba),
- q(7087) => q(wbb),
- q(7088) => q(wbe),
- q(7089) => q(wbh),
- q(7090) => q(wbi),
- q(7091) => q(wbj),
- q(7092) => q(wbk),
- q(7093) => q(wbl),
- q(7094) => q(wbm),
- q(7095) => q(wbp),
- q(7096) => q(wbq),
- q(7097) => q(wbr),
- q(7098) => q(wbt),
- q(7099) => q(wbv),
- q(7100) => q(wbw),
- q(7101) => q(wca),
- q(7102) => q(wci),
- q(7103) => q(wdd),
- q(7104) => q(wdg),
- q(7105) => q(wdj),
- q(7106) => q(wdk),
- q(7107) => q(wdu),
- q(7108) => q(wdy),
- q(7109) => q(wea),
- q(7110) => q(wec),
- q(7111) => q(wed),
- q(7112) => q(weg),
- q(7113) => q(weh),
- q(7114) => q(wei),
- q(7115) => q(wem),
- q(7116) => q(weo),
- q(7117) => q(wep),
- q(7118) => q(wer),
- q(7119) => q(wes),
- q(7120) => q(wet),
- q(7121) => q(weu),
- q(7122) => q(wew),
- q(7123) => q(wfg),
- q(7124) => q(wga),
- q(7125) => q(wgb),
- q(7126) => q(wgg),
- q(7127) => q(wgi),
- q(7128) => q(wgo),
- q(7129) => q(wgu),
- q(7130) => q(wgy),
- q(7131) => q(wha),
- q(7132) => q(whg),
- q(7133) => q(whk),
- q(7134) => q(whu),
- q(7135) => q(wib),
- q(7136) => q(wic),
- q(7137) => q(wie),
- q(7138) => q(wif),
- q(7139) => q(wig),
- q(7140) => q(wih),
- q(7141) => q(wii),
- q(7142) => q(wij),
- q(7143) => q(wik),
- q(7144) => q(wil),
- q(7145) => q(wim),
- q(7146) => q(win),
- q(7147) => q(wir),
- q(7148) => q(wiu),
- q(7149) => q(wiv),
- q(7150) => q(wiy),
- q(7151) => q(wja),
- q(7152) => q(wji),
- q(7153) => q(wka),
- q(7154) => q(wkb),
- q(7155) => q(wkd),
- q(7156) => q(wkl),
- q(7157) => q(wku),
- q(7158) => q(wkw),
- q(7159) => q(wky),
- q(7160) => q(wla),
- q(7161) => q(wlc),
- q(7162) => q(wle),
- q(7163) => q(wlg),
- q(7164) => q(wli),
- q(7165) => q(wlk),
- q(7166) => q(wll),
- q(7167) => q(wlm),
- q(7168) => q(wlo),
- q(7169) => q(wlr),
- q(7170) => q(wls),
- q(7171) => q(wlu),
- q(7172) => q(wlv),
- q(7173) => q(wlw),
- q(7174) => q(wlx),
- q(7175) => q(wly),
- q(7176) => q(wma),
- q(7177) => q(wmb),
- q(7178) => q(wmc),
- q(7179) => q(wmd),
- q(7180) => q(wme),
- q(7181) => q(wmh),
- q(7182) => q(wmi),
- q(7183) => q(wmm),
- q(7184) => q(wmn),
- q(7185) => q(wmo),
- q(7186) => q(wms),
- q(7187) => q(wmt),
- q(7188) => q(wmw),
- q(7189) => q(wmx),
- q(7190) => q(wnb),
- q(7191) => q(wnc),
- q(7192) => q(wnd),
- q(7193) => q(wne),
- q(7194) => q(wng),
- q(7195) => q(wni),
- q(7196) => q(wnk),
- q(7197) => q(wnm),
- q(7198) => q(wnn),
- q(7199) => q(wno),
- q(7200) => q(wnp),
- q(7201) => q(wnu),
- q(7202) => q(wnw),
- q(7203) => q(wny),
- q(7204) => q(woa),
- q(7205) => q(wob),
- q(7206) => q(woc),
- q(7207) => q(wod),
- q(7208) => q(woe),
- q(7209) => q(wof),
- q(7210) => q(wog),
- q(7211) => q(woi),
- q(7212) => q(wok),
- q(7213) => q(wom),
- q(7214) => q(won),
- q(7215) => q(woo),
- q(7216) => q(wor),
- q(7217) => q(wos),
- q(7218) => q(wow),
- q(7219) => q(woy),
- q(7220) => q(wpc),
- q(7221) => q(wra),
- q(7222) => q(wrb),
- q(7223) => q(wrd),
- q(7224) => q(wrg),
- q(7225) => q(wrh),
- q(7226) => q(wri),
- q(7227) => q(wrk),
- q(7228) => q(wrl),
- q(7229) => q(wrm),
- q(7230) => q(wrn),
- q(7231) => q(wro),
- q(7232) => q(wrp),
- q(7233) => q(wrr),
- q(7234) => q(wrs),
- q(7235) => q(wru),
- q(7236) => q(wrv),
- q(7237) => q(wrw),
- q(7238) => q(wrx),
- q(7239) => q(wry),
- q(7240) => q(wrz),
- q(7241) => q(wsa),
- q(7242) => q(wsi),
- q(7243) => q(wsk),
- q(7244) => q(wsr),
- q(7245) => q(wss),
- q(7246) => q(wsu),
- q(7247) => q(wsv),
- q(7248) => q(wtf),
- q(7249) => q(wth),
- q(7250) => q(wti),
- q(7251) => q(wtk),
- q(7252) => q(wtm),
- q(7253) => q(wtw),
- q(7254) => q(wua),
- q(7255) => q(wub),
- q(7256) => q(wud),
- q(7257) => q(wuh),
- q(7258) => q(wul),
- q(7259) => q(wum),
- q(7260) => q(wun),
- q(7261) => q(wur),
- q(7262) => q(wut),
- q(7263) => q(wuu),
- q(7264) => q(wuv),
- q(7265) => q(wux),
- q(7266) => q(wuy),
- q(7267) => q(wwa),
- q(7268) => q(wwb),
- q(7269) => q(wwo),
- q(7270) => q(wwr),
- q(7271) => q(www),
- q(7272) => q(wxa),
- q(7273) => q(wxw),
- q(7274) => q(wya),
- q(7275) => q(wyb),
- q(7276) => q(wyi),
- q(7277) => q(wym),
- q(7278) => q(wyr),
- q(7279) => q(wyy),
- q(7280) => q(xaa),
- q(7281) => q(xab),
- q(7282) => q(xac),
- q(7283) => q(xad),
- q(7284) => q(xae),
- q(7285) => q(xag),
- q(7286) => q(xai),
- q(7287) => q(xam),
- q(7288) => q(xan),
- q(7289) => q(xao),
- q(7290) => q(xap),
- q(7291) => q(xaq),
- q(7292) => q(xar),
- q(7293) => q(xas),
- q(7294) => q(xat),
- q(7295) => q(xau),
- q(7296) => q(xav),
- q(7297) => q(xaw),
- q(7298) => q(xay),
- q(7299) => q(xba),
- q(7300) => q(xbb),
- q(7301) => q(xbc),
- q(7302) => q(xbd),
- q(7303) => q(xbe),
- q(7304) => q(xbg),
- q(7305) => q(xbi),
- q(7306) => q(xbj),
- q(7307) => q(xbm),
- q(7308) => q(xbn),
- q(7309) => q(xbo),
- q(7310) => q(xbp),
- q(7311) => q(xbr),
- q(7312) => q(xbw),
- q(7313) => q(xbx),
- q(7314) => q(xby),
- q(7315) => q(xcb),
- q(7316) => q(xcc),
- q(7317) => q(xce),
- q(7318) => q(xcg),
- q(7319) => q(xch),
- q(7320) => q(xcl),
- q(7321) => q(xcm),
- q(7322) => q(xcn),
- q(7323) => q(xco),
- q(7324) => q(xcr),
- q(7325) => q(xct),
- q(7326) => q(xcu),
- q(7327) => q(xcv),
- q(7328) => q(xcw),
- q(7329) => q(xcy),
- q(7330) => q(xda),
- q(7331) => q(xdc),
- q(7332) => q(xdk),
- q(7333) => q(xdm),
- q(7334) => q(xdy),
- q(7335) => q(xeb),
- q(7336) => q(xed),
- q(7337) => q(xeg),
- q(7338) => q(xel),
- q(7339) => q(xem),
- q(7340) => q(xep),
- q(7341) => q(xer),
- q(7342) => q(xes),
- q(7343) => q(xet),
- q(7344) => q(xeu),
- q(7345) => q(xfa),
- q(7346) => q(xga),
- q(7347) => q(xgb),
- q(7348) => q(xgd),
- q(7349) => q(xgf),
- q(7350) => q(xgg),
- q(7351) => q(xgi),
- q(7352) => q(xgl),
- q(7353) => q(xgm),
- q(7354) => q(xgr),
- q(7355) => q(xgu),
- q(7356) => q(xgw),
- q(7357) => q(xha),
- q(7358) => q(xhc),
- q(7359) => q(xhd),
- q(7360) => q(xhe),
- q(7361) => q(xhr),
- q(7362) => q(xht),
- q(7363) => q(xhu),
- q(7364) => q(xhv),
- q(7365) => q(xib),
- q(7366) => q(xii),
- q(7367) => q(xil),
- q(7368) => q(xin),
- q(7369) => q(xip),
- q(7370) => q(xir),
- q(7371) => q(xiv),
- q(7372) => q(xiy),
- q(7373) => q(xjb),
- q(7374) => q(xjt),
- q(7375) => q(xka),
- q(7376) => q(xkb),
- q(7377) => q(xkc),
- q(7378) => q(xkd),
- q(7379) => q(xke),
- q(7380) => q(xkf),
- q(7381) => q(xkg),
- q(7382) => q(xkh),
- q(7383) => q(xki),
- q(7384) => q(xkj),
- q(7385) => q(xkk),
- q(7386) => q(xkl),
- q(7387) => q(xkn),
- q(7388) => q(xko),
- q(7389) => q(xkp),
- q(7390) => q(xkq),
- q(7391) => q(xkr),
- q(7392) => q(xks),
- q(7393) => q(xkt),
- q(7394) => q(xku),
- q(7395) => q(xkv),
- q(7396) => q(xkw),
- q(7397) => q(xkx),
- q(7398) => q(xky),
- q(7399) => q(xkz),
- q(7400) => q(xla),
- q(7401) => q(xlb),
- q(7402) => q(xlc),
- q(7403) => q(xld),
- q(7404) => q(xle),
- q(7405) => q(xlg),
- q(7406) => q(xli),
- q(7407) => q(xln),
- q(7408) => q(xlo),
- q(7409) => q(xlp),
- q(7410) => q(xls),
- q(7411) => q(xlu),
- q(7412) => q(xly),
- q(7413) => q(xma),
- q(7414) => q(xmb),
- q(7415) => q(xmc),
- q(7416) => q(xmd),
- q(7417) => q(xme),
- q(7418) => q(xmf),
- q(7419) => q(xmg),
- q(7420) => q(xmh),
- q(7421) => q(xmj),
- q(7422) => q(xmk),
- q(7423) => q(xml),
- q(7424) => q(xmm),
- q(7425) => q(xmn),
- q(7426) => q(xmo),
- q(7427) => q(xmp),
- q(7428) => q(xmq),
- q(7429) => q(xmr),
- q(7430) => q(xms),
- q(7431) => q(xmt),
- q(7432) => q(xmu),
- q(7433) => q(xmv),
- q(7434) => q(xmw),
- q(7435) => q(xmx),
- q(7436) => q(xmy),
- q(7437) => q(xmz),
- q(7438) => q(xna),
- q(7439) => q(xnb),
- q(7440) => q(xng),
- q(7441) => q(xnh),
- q(7442) => q(xni),
- q(7443) => q(xnk),
- q(7444) => q(xnn),
- q(7445) => q(xno),
- q(7446) => q(xnr),
- q(7447) => q(xns),
- q(7448) => q(xnt),
- q(7449) => q(xnu),
- q(7450) => q(xny),
- q(7451) => q(xnz),
- q(7452) => q(xoc),
- q(7453) => q(xod),
- q(7454) => q(xog),
- q(7455) => q(xoi),
- q(7456) => q(xok),
- q(7457) => q(xom),
- q(7458) => q(xon),
- q(7459) => q(xoo),
- q(7460) => q(xop),
- q(7461) => q(xor),
- q(7462) => q(xow),
- q(7463) => q(xpa),
- q(7464) => q(xpc),
- q(7465) => q(xpe),
- q(7466) => q(xpg),
- q(7467) => q(xpi),
- q(7468) => q(xpj),
- q(7469) => q(xpk),
- q(7470) => q(xpm),
- q(7471) => q(xpn),
- q(7472) => q(xpo),
- q(7473) => q(xpp),
- q(7474) => q(xpq),
- q(7475) => q(xpr),
- q(7476) => q(xps),
- q(7477) => q(xpt),
- q(7478) => q(xpu),
- q(7479) => q(xpy),
- q(7480) => q(xqa),
- q(7481) => q(xqt),
- q(7482) => q(xra),
- q(7483) => q(xrb),
- q(7484) => q(xrd),
- q(7485) => q(xre),
- q(7486) => q(xrg),
- q(7487) => q(xri),
- q(7488) => q(xrm),
- q(7489) => q(xrn),
- q(7490) => q(xrq),
- q(7491) => q(xrr),
- q(7492) => q(xrt),
- q(7493) => q(xru),
- q(7494) => q(xrw),
- q(7495) => q(xsa),
- q(7496) => q(xsb),
- q(7497) => q(xsc),
- q(7498) => q(xsd),
- q(7499) => q(xse),
- q(7500) => q(xsh),
- q(7501) => q(xsi),
- q(7502) => q(xsj),
- q(7503) => q(xsl),
- q(7504) => q(xsm),
- q(7505) => q(xsn),
- q(7506) => q(xso),
- q(7507) => q(xsp),
- q(7508) => q(xsq),
- q(7509) => q(xsr),
- q(7510) => q(xss),
- q(7511) => q(xsu),
- q(7512) => q(xsv),
- q(7513) => q(xsy),
- q(7514) => q(xta),
- q(7515) => q(xtb),
- q(7516) => q(xtc),
- q(7517) => q(xtd),
- q(7518) => q(xte),
- q(7519) => q(xtg),
- q(7520) => q(xth),
- q(7521) => q(xti),
- q(7522) => q(xtj),
- q(7523) => q(xtl),
- q(7524) => q(xtm),
- q(7525) => q(xtn),
- q(7526) => q(xto),
- q(7527) => q(xtp),
- q(7528) => q(xtq),
- q(7529) => q(xtr),
- q(7530) => q(xts),
- q(7531) => q(xtt),
- q(7532) => q(xtu),
- q(7533) => q(xtv),
- q(7534) => q(xtw),
- q(7535) => q(xty),
- q(7536) => q(xtz),
- q(7537) => q(xua),
- q(7538) => q(xub),
- q(7539) => q(xud),
- q(7540) => q(xug),
- q(7541) => q(xuj),
- q(7542) => q(xul),
- q(7543) => q(xum),
- q(7544) => q(xun),
- q(7545) => q(xuo),
- q(7546) => q(xup),
- q(7547) => q(xur),
- q(7548) => q(xut),
- q(7549) => q(xuu),
- q(7550) => q(xve),
- q(7551) => q(xvi),
- q(7552) => q(xvn),
- q(7553) => q(xvo),
- q(7554) => q(xvs),
- q(7555) => q(xwa),
- q(7556) => q(xwc),
- q(7557) => q(xwd),
- q(7558) => q(xwe),
- q(7559) => q(xwg),
- q(7560) => q(xwj),
- q(7561) => q(xwk),
- q(7562) => q(xwl),
- q(7563) => q(xwo),
- q(7564) => q(xwr),
- q(7565) => q(xwt),
- q(7566) => q(xww),
- q(7567) => q(xxb),
- q(7568) => q(xxk),
- q(7569) => q(xxm),
- q(7570) => q(xxr),
- q(7571) => q(xxt),
- q(7572) => q(xya),
- q(7573) => q(xyb),
- q(7574) => q(xyj),
- q(7575) => q(xyk),
- q(7576) => q(xyl),
- q(7577) => q(xyt),
- q(7578) => q(xyy),
- q(7579) => q(xzh),
- q(7580) => q(xzm),
- q(7581) => q(xzp),
- q(7582) => q(yaa),
- q(7583) => q(yab),
- q(7584) => q(yac),
- q(7585) => q(yad),
- q(7586) => q(yae),
- q(7587) => q(yaf),
- q(7588) => q(yag),
- q(7589) => q(yah),
- q(7590) => q(yai),
- q(7591) => q(yaj),
- q(7592) => q(yak),
- q(7593) => q(yal),
- q(7594) => q(yam),
- q(7595) => q(yan),
- q(7596) => q(yaq),
- q(7597) => q(yar),
- q(7598) => q(yas),
- q(7599) => q(yat),
- q(7600) => q(yau),
- q(7601) => q(yav),
- q(7602) => q(yaw),
- q(7603) => q(yax),
- q(7604) => q(yay),
- q(7605) => q(yaz),
- q(7606) => q(yba),
- q(7607) => q(ybb),
- q(7608) => q(ybe),
- q(7609) => q(ybh),
- q(7610) => q(ybi),
- q(7611) => q(ybj),
- q(7612) => q(ybk),
- q(7613) => q(ybl),
- q(7614) => q(ybm),
- q(7615) => q(ybn),
- q(7616) => q(ybo),
- q(7617) => q(ybx),
- q(7618) => q(yby),
- q(7619) => q(ych),
- q(7620) => q(ycl),
- q(7621) => q(ycn),
- q(7622) => q(ycp),
- q(7623) => q(yda),
- q(7624) => q(ydd),
- q(7625) => q(yde),
- q(7626) => q(ydg),
- q(7627) => q(ydk),
- q(7628) => q(yds),
- q(7629) => q(yea),
- q(7630) => q(yec),
- q(7631) => q(yee),
- q(7632) => q(yei),
- q(7633) => q(yej),
- q(7634) => q(yel),
- q(7635) => q(yer),
- q(7636) => q(yes),
- q(7637) => q(yet),
- q(7638) => q(yeu),
- q(7639) => q(yev),
- q(7640) => q(yey),
- q(7641) => q(yga),
- q(7642) => q(ygi),
- q(7643) => q(ygl),
- q(7644) => q(ygm),
- q(7645) => q(ygp),
- q(7646) => q(ygr),
- q(7647) => q(ygu),
- q(7648) => q(ygw),
- q(7649) => q(yha),
- q(7650) => q(yhd),
- q(7651) => q(yhl),
- q(7652) => q(yia),
- q(7653) => q(yig),
- q(7654) => q(yih),
- q(7655) => q(yii),
- q(7656) => q(yij),
- q(7657) => q(yik),
- q(7658) => q(yil),
- q(7659) => q(yim),
- q(7660) => q(yin),
- q(7661) => q(yip),
- q(7662) => q(yiq),
- q(7663) => q(yir),
- q(7664) => q(yis),
- q(7665) => q(yit),
- q(7666) => q(yiu),
- q(7667) => q(yiv),
- q(7668) => q(yix),
- q(7669) => q(yiz),
- q(7670) => q(yka),
- q(7671) => q(ykg),
- q(7672) => q(yki),
- q(7673) => q(ykk),
- q(7674) => q(ykl),
- q(7675) => q(ykm),
- q(7676) => q(ykn),
- q(7677) => q(yko),
- q(7678) => q(ykr),
- q(7679) => q(ykt),
- q(7680) => q(yku),
- q(7681) => q(yky),
- q(7682) => q(yla),
- q(7683) => q(ylb),
- q(7684) => q(yle),
- q(7685) => q(ylg),
- q(7686) => q(yli),
- q(7687) => q(yll),
- q(7688) => q(ylm),
- q(7689) => q(yln),
- q(7690) => q(ylo),
- q(7691) => q(ylr),
- q(7692) => q(ylu),
- q(7693) => q(yly),
- q(7694) => q(ymb),
- q(7695) => q(ymc),
- q(7696) => q(ymd),
- q(7697) => q(yme),
- q(7698) => q(ymg),
- q(7699) => q(ymh),
- q(7700) => q(ymi),
- q(7701) => q(ymk),
- q(7702) => q(yml),
- q(7703) => q(ymm),
- q(7704) => q(ymn),
- q(7705) => q(ymo),
- q(7706) => q(ymp),
- q(7707) => q(ymq),
- q(7708) => q(ymr),
- q(7709) => q(yms),
- q(7710) => q(ymt),
- q(7711) => q(ymx),
- q(7712) => q(ymz),
- q(7713) => q(yna),
- q(7714) => q(ynd),
- q(7715) => q(yne),
- q(7716) => q(yng),
- q(7717) => q(ynh),
- q(7718) => q(ynk),
- q(7719) => q(ynl),
- q(7720) => q(ynn),
- q(7721) => q(yno),
- q(7722) => q(ynq),
- q(7723) => q(yns),
- q(7724) => q(ynu),
- q(7725) => q(yob),
- q(7726) => q(yog),
- q(7727) => q(yoi),
- q(7728) => q(yok),
- q(7729) => q(yol),
- q(7730) => q(yom),
- q(7731) => q(yon),
- q(7732) => q(yot),
- q(7733) => q(yox),
- q(7734) => q(yoy),
- q(7735) => q(ypa),
- q(7736) => q(ypb),
- q(7737) => q(ypg),
- q(7738) => q(yph),
- q(7739) => q(ypm),
- q(7740) => q(ypn),
- q(7741) => q(ypo),
- q(7742) => q(ypp),
- q(7743) => q(ypz),
- q(7744) => q(yra),
- q(7745) => q(yrb),
- q(7746) => q(yre),
- q(7747) => q(yri),
- q(7748) => q(yrk),
- q(7749) => q(yrl),
- q(7750) => q(yrm),
- q(7751) => q(yrn),
- q(7752) => q(yrs),
- q(7753) => q(yrw),
- q(7754) => q(yry),
- q(7755) => q(ysc),
- q(7756) => q(ysd),
- q(7757) => q(ysg),
- q(7758) => q(ysl),
- q(7759) => q(ysn),
- q(7760) => q(yso),
- q(7761) => q(ysp),
- q(7762) => q(ysr),
- q(7763) => q(yss),
- q(7764) => q(ysy),
- q(7765) => q(yta),
- q(7766) => q(ytl),
- q(7767) => q(ytp),
- q(7768) => q(ytw),
- q(7769) => q(yty),
- q(7770) => q(yua),
- q(7771) => q(yub),
- q(7772) => q(yuc),
- q(7773) => q(yud),
- q(7774) => q(yue),
- q(7775) => q(yuf),
- q(7776) => q(yug),
- q(7777) => q(yui),
- q(7778) => q(yuj),
- q(7779) => q(yuk),
- q(7780) => q(yul),
- q(7781) => q(yum),
- q(7782) => q(yun),
- q(7783) => q(yup),
- q(7784) => q(yuq),
- q(7785) => q(yur),
- q(7786) => q(yut),
- q(7787) => q(yuu),
- q(7788) => q(yuw),
- q(7789) => q(yux),
- q(7790) => q(yuy),
- q(7791) => q(yuz),
- q(7792) => q(yva),
- q(7793) => q(yvt),
- q(7794) => q(ywa),
- q(7795) => q(ywg),
- q(7796) => q(ywl),
- q(7797) => q(ywn),
- q(7798) => q(ywq),
- q(7799) => q(ywr),
- q(7800) => q(ywt),
- q(7801) => q(ywu),
- q(7802) => q(yww),
- q(7803) => q(yxa),
- q(7804) => q(yxg),
- q(7805) => q(yxl),
- q(7806) => q(yxm),
- q(7807) => q(yxu),
- q(7808) => q(yxy),
- q(7809) => q(yyr),
- q(7810) => q(yyu),
- q(7811) => q(yyz),
- q(7812) => q(yzg),
- q(7813) => q(yzk),
- q(7814) => q(zaa),
- q(7815) => q(zab),
- q(7816) => q(zac),
- q(7817) => q(zad),
- q(7818) => q(zae),
- q(7819) => q(zaf),
- q(7820) => q(zag),
- q(7821) => q(zah),
- q(7822) => q(zai),
- q(7823) => q(zaj),
- q(7824) => q(zak),
- q(7825) => q(zal),
- q(7826) => q(zam),
- q(7827) => q(zao),
- q(7828) => q(zaq),
- q(7829) => q(zar),
- q(7830) => q(zas),
- q(7831) => q(zat),
- q(7832) => q(zau),
- q(7833) => q(zav),
- q(7834) => q(zaw),
- q(7835) => q(zax),
- q(7836) => q(zay),
- q(7837) => q(zaz),
- q(7838) => q(zbc),
- q(7839) => q(zbe),
- q(7840) => q(zbt),
- q(7841) => q(zbw),
- q(7842) => q(zca),
- q(7843) => q(zch),
- q(7844) => q(zdj),
- q(7845) => q(zea),
- q(7846) => q(zeg),
- q(7847) => q(zeh),
- q(7848) => q(zga),
- q(7849) => q(zgb),
- q(7850) => q(zgm),
- q(7851) => q(zgn),
- q(7852) => q(zgr),
- q(7853) => q(zhb),
- q(7854) => q(zhd),
- q(7855) => q(zhi),
- q(7856) => q(zhn),
- q(7857) => q(zhw),
- q(7858) => q(zia),
- q(7859) => q(zib),
- q(7860) => q(zik),
- q(7861) => q(zil),
- q(7862) => q(zim),
- q(7863) => q(zin),
- q(7864) => q(zir),
- q(7865) => q(ziw),
- q(7866) => q(ziz),
- q(7867) => q(zka),
- q(7868) => q(zkb),
- q(7869) => q(zkd),
- q(7870) => q(zkg),
- q(7871) => q(zkh),
- q(7872) => q(zkk),
- q(7873) => q(zkn),
- q(7874) => q(zko),
- q(7875) => q(zkp),
- q(7876) => q(zkr),
- q(7877) => q(zkt),
- q(7878) => q(zku),
- q(7879) => q(zkv),
- q(7880) => q(zkz),
- q(7881) => q(zlj),
- q(7882) => q(zlm),
- q(7883) => q(zln),
- q(7884) => q(zlq),
- q(7885) => q(zma),
- q(7886) => q(zmb),
- q(7887) => q(zmc),
- q(7888) => q(zmd),
- q(7889) => q(zme),
- q(7890) => q(zmf),
- q(7891) => q(zmg),
- q(7892) => q(zmh),
- q(7893) => q(zmi),
- q(7894) => q(zmj),
- q(7895) => q(zmk),
- q(7896) => q(zml),
- q(7897) => q(zmm),
- q(7898) => q(zmn),
- q(7899) => q(zmo),
- q(7900) => q(zmp),
- q(7901) => q(zmq),
- q(7902) => q(zmr),
- q(7903) => q(zms),
- q(7904) => q(zmt),
- q(7905) => q(zmu),
- q(7906) => q(zmv),
- q(7907) => q(zmw),
- q(7908) => q(zmx),
- q(7909) => q(zmy),
- q(7910) => q(zmz),
- q(7911) => q(zna),
- q(7912) => q(zne),
- q(7913) => q(zng),
- q(7914) => q(znk),
- q(7915) => q(zns),
- q(7916) => q(zoc),
- q(7917) => q(zoh),
- q(7918) => q(zom),
- q(7919) => q(zoo),
- q(7920) => q(zoq),
- q(7921) => q(zor),
- q(7922) => q(zos),
- q(7923) => q(zpa),
- q(7924) => q(zpb),
- q(7925) => q(zpc),
- q(7926) => q(zpd),
- q(7927) => q(zpe),
- q(7928) => q(zpf),
- q(7929) => q(zpg),
- q(7930) => q(zph),
- q(7931) => q(zpi),
- q(7932) => q(zpj),
- q(7933) => q(zpk),
- q(7934) => q(zpl),
- q(7935) => q(zpm),
- q(7936) => q(zpn),
- q(7937) => q(zpo),
- q(7938) => q(zpp),
- q(7939) => q(zpq),
- q(7940) => q(zpr),
- q(7941) => q(zps),
- q(7942) => q(zpt),
- q(7943) => q(zpu),
- q(7944) => q(zpv),
- q(7945) => q(zpw),
- q(7946) => q(zpx),
- q(7947) => q(zpy),
- q(7948) => q(zpz),
- q(7949) => q(zqe),
- q(7950) => q(zra),
- q(7951) => q(zrg),
- q(7952) => q(zrn),
- q(7953) => q(zro),
- q(7954) => q(zrp),
- q(7955) => q(zrs),
- q(7956) => q(zsa),
- q(7957) => q(zsk),
- q(7958) => q(zsl),
- q(7959) => q(zsm),
- q(7960) => q(zsr),
- q(7961) => q(zsu),
- q(7962) => q(zte),
- q(7963) => q(ztg),
- q(7964) => q(ztl),
- q(7965) => q(ztm),
- q(7966) => q(ztn),
- q(7967) => q(ztp),
- q(7968) => q(ztq),
- q(7969) => q(zts),
- q(7970) => q(ztt),
- q(7971) => q(ztu),
- q(7972) => q(ztx),
- q(7973) => q(zty),
- q(7974) => q(zua),
- q(7975) => q(zuh),
- q(7976) => q(zum),
- q(7977) => q(zuy),
- q(7978) => q(zwa),
- q(7979) => q(zyb),
- q(7980) => q(zyg),
- q(7981) => q(zyj),
- q(7982) => q(zyn),
- q(7983) => q(zyp),
- q(7984) => q(zzj),
+ 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(ato),
+ 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(atp),
+ q(0922) => q(atq),
+ q(0923) => q(atr),
+ q(0924) => q(ats),
+ q(0925) => q(att),
+ q(0926) => q(atu),
+ q(0927) => q(atv),
+ q(0928) => q(atw),
+ q(0929) => q(atx),
+ q(0930) => q(aty),
+ q(0931) => q(atz),
+ q(0932) => q(aua),
+ q(0933) => q(aub),
+ q(0934) => q(auc),
+ q(0935) => q(aud),
+ q(0936) => q(aug),
+ q(0937) => q(auh),
+ q(0938) => q(aui),
+ q(0939) => q(auj),
+ q(0940) => q(auk),
+ q(0941) => q(aul),
+ q(0942) => q(aum),
+ q(0943) => q(aun),
+ q(0944) => q(auo),
+ q(0945) => q(aup),
+ q(0946) => q(auq),
+ q(0947) => q(aur),
+ q(0948) => q(aut),
+ q(0949) => q(auu),
+ q(0950) => q(auw),
+ q(0951) => q(aux),
+ q(0952) => q(auy),
+ q(0953) => q(auz),
+ q(0954) => q(avb),
+ q(0955) => q(avd),
+ q(0956) => q(avi),
+ q(0957) => q(avk),
+ q(0958) => q(avl),
+ q(0959) => q(avm),
+ q(0960) => q(avn),
+ q(0961) => q(avo),
+ q(0962) => q(avs),
+ q(0963) => q(avt),
+ q(0964) => q(avu),
+ q(0965) => q(avv),
+ q(0966) => q(awb),
+ q(0967) => q(awc),
+ q(0968) => q(awe),
+ q(0969) => q(awg),
+ q(0970) => q(awh),
+ q(0971) => q(awi),
+ q(0972) => q(awk),
+ q(0973) => q(awm),
+ q(0974) => q(awn),
+ q(0975) => q(awo),
+ q(0976) => q(awr),
+ q(0977) => q(aws),
+ q(0978) => q(awt),
+ q(0979) => q(awu),
+ q(0980) => q(awv),
+ q(0981) => q(aww),
+ q(0982) => q(awx),
+ q(0983) => q(awy),
+ q(0984) => q(axb),
+ q(0985) => q(axe),
+ q(0986) => q(axg),
+ q(0987) => q(axk),
+ q(0988) => q(axl),
+ q(0989) => q(axm),
+ q(0990) => q(axx),
+ q(0991) => q(aya),
+ q(0992) => q(ayb),
+ q(0993) => q(ayc),
+ q(0994) => q(ayd),
+ q(0995) => q(aye),
+ q(0996) => q(ayg),
+ q(0997) => q(ayh),
+ q(0998) => q(ayi),
+ q(0999) => q(ayk),
+ q(1000) => q(ayl),
+ q(1001) => q(ayn),
+ q(1002) => q(ayo),
+ q(1003) => q(ayp),
+ q(1004) => q(ayq),
+ q(1005) => q(ayr),
+ q(1006) => q(ays),
+ q(1007) => q(ayt),
+ q(1008) => q(ayu),
+ q(1009) => q(ayy),
+ q(1010) => q(ayz),
+ q(1011) => q(aza),
+ q(1012) => q(azb),
+ q(1013) => q(azd),
+ q(1014) => q(azg),
+ q(1015) => q(azj),
+ q(1016) => q(azm),
+ q(1017) => q(azn),
+ q(1018) => q(azo),
+ q(1019) => q(azt),
+ q(1020) => q(azz),
+ q(1021) => q(baa),
+ q(1022) => q(bab),
+ q(1023) => q(bac),
+ q(1024) => q(bae),
+ q(1025) => q(baf),
+ q(1026) => q(bag),
+ q(1027) => q(bah),
+ q(1028) => q(baj),
+ q(1029) => q(bao),
+ q(1030) => q(bap),
+ q(1031) => q(bar),
+ q(1032) => q(bau),
+ q(1033) => q(bav),
+ q(1034) => q(baw),
+ q(1035) => q(bax),
+ q(1036) => q(bay),
+ q(1037) => q(bba),
+ q(1038) => q(bbb),
+ q(1039) => q(bbc),
+ q(1040) => q(bbd),
+ q(1041) => q(bbe),
+ q(1042) => q(bbf),
+ q(1043) => q(bbg),
+ q(1044) => q(bbh),
+ q(1045) => q(bbi),
+ q(1046) => q(bbj),
+ q(1047) => q(bbk),
+ q(1048) => q(bbl),
+ q(1049) => q(bbm),
+ q(1050) => q(bbn),
+ q(1051) => q(bbo),
+ q(1052) => q(bbp),
+ q(1053) => q(bbq),
+ q(1054) => q(bbr),
+ q(1055) => q(bbs),
+ q(1056) => q(bbt),
+ q(1057) => q(bbu),
+ q(1058) => q(bbv),
+ q(1059) => q(bbw),
+ q(1060) => q(bbx),
+ q(1061) => q(bby),
+ q(1062) => q(bbz),
+ q(1063) => q(bca),
+ q(1064) => q(bcb),
+ q(1065) => q(bcc),
+ q(1066) => q(bcd),
+ q(1067) => q(bce),
+ q(1068) => q(bcf),
+ q(1069) => q(bcg),
+ q(1070) => q(bch),
+ q(1071) => q(bci),
+ q(1072) => q(bcj),
+ q(1073) => q(bck),
+ q(1074) => q(bcl),
+ q(1075) => q(bcm),
+ q(1076) => q(bcn),
+ q(1077) => q(bco),
+ q(1078) => q(bcp),
+ q(1079) => q(bcq),
+ q(1080) => q(bcr),
+ q(1081) => q(bcs),
+ q(1082) => q(bct),
+ q(1083) => q(bcu),
+ q(1084) => q(bcv),
+ q(1085) => q(bcw),
+ q(1086) => q(bcy),
+ q(1087) => q(bcz),
+ q(1088) => q(bda),
+ q(1089) => q(bdb),
+ q(1090) => q(bdc),
+ q(1091) => q(bdd),
+ q(1092) => q(bde),
+ q(1093) => q(bdf),
+ q(1094) => q(bdg),
+ q(1095) => q(bdh),
+ q(1096) => q(bdi),
+ q(1097) => q(bdj),
+ q(1098) => q(bdk),
+ q(1099) => q(bdl),
+ q(1100) => q(bdm),
+ q(1101) => q(bdn),
+ q(1102) => q(bdo),
+ q(1103) => q(bdp),
+ q(1104) => q(bdq),
+ q(1105) => q(bdr),
+ q(1106) => q(bds),
+ q(1107) => q(bdt),
+ q(1108) => q(bdu),
+ q(1109) => q(bdv),
+ q(1110) => q(bdw),
+ q(1111) => q(bdx),
+ q(1112) => q(bdy),
+ q(1113) => q(bdz),
+ q(1114) => q(bea),
+ q(1115) => q(beb),
+ q(1116) => q(bec),
+ q(1117) => q(bed),
+ q(1118) => q(bee),
+ q(1119) => q(bef),
+ q(1120) => q(beg),
+ q(1121) => q(beh),
+ q(1122) => q(bei),
+ q(1123) => q(bek),
+ q(1124) => q(beo),
+ q(1125) => q(bep),
+ q(1126) => q(beq),
+ q(1127) => q(bes),
+ q(1128) => q(bet),
+ q(1129) => q(beu),
+ q(1130) => q(bev),
+ q(1131) => q(bew),
+ q(1132) => q(bex),
+ q(1133) => q(bey),
+ q(1134) => q(bez),
+ q(1135) => q(mot),
+ q(1136) => q(bfb),
+ q(1137) => q(bfc),
+ q(1138) => q(bfd),
+ q(1139) => q(bfe),
+ q(1140) => q(bff),
+ q(1141) => q(bfg),
+ q(1142) => q(bfh),
+ q(1143) => q(bfi),
+ q(1144) => q(bfj),
+ q(1145) => q(bfk),
+ q(1146) => q(bfl),
+ q(1147) => q(bfm),
+ q(1148) => q(bfn),
+ q(1149) => q(bfo),
+ q(1150) => q(bfp),
+ q(1151) => q(bfq),
+ q(1152) => q(bfr),
+ q(1153) => q(bfs),
+ q(1154) => q(bft),
+ q(1155) => q(bfu),
+ q(1156) => q(bfw),
+ q(1157) => q(bfx),
+ q(1158) => q(bfy),
+ q(1159) => q(bfz),
+ q(1160) => q(bga),
+ q(1161) => q(bgb),
+ q(1162) => q(bgc),
+ q(1163) => q(bgd),
+ q(1164) => q(bge),
+ q(1165) => q(bgf),
+ q(1166) => q(bgg),
+ q(1167) => q(bgi),
+ q(1168) => q(bgj),
+ q(1169) => q(bgk),
+ q(1170) => q(bgl),
+ q(1171) => q(bgm),
+ q(1172) => q(bgn),
+ q(1173) => q(bgo),
+ q(1174) => q(bgp),
+ q(1175) => q(bgq),
+ q(1176) => q(bgr),
+ q(1177) => q(bgs),
+ q(1178) => q(bgt),
+ q(1179) => q(bgu),
+ q(1180) => q(bgv),
+ q(1181) => q(bgw),
+ q(1182) => q(bgx),
+ q(1183) => q(bgy),
+ q(1184) => q(bgz),
+ q(1185) => q(bha),
+ q(1186) => q(bhb),
+ q(1187) => q(bhc),
+ q(1188) => q(bhd),
+ q(1189) => q(bhe),
+ q(1190) => q(bhf),
+ q(1191) => q(bhg),
+ q(1192) => q(bhh),
+ q(1193) => q(bhi),
+ q(1194) => q(bhj),
+ q(1195) => q(bhl),
+ q(1196) => q(bhm),
+ q(1197) => q(bhn),
+ q(1198) => q(bhp),
+ q(1199) => q(bhq),
+ q(1200) => q(bhr),
+ q(1201) => q(bhs),
+ q(1202) => q(bht),
+ q(1203) => q(bhu),
+ q(1204) => q(bhv),
+ q(1205) => q(bhw),
+ q(1206) => q(bhx),
+ q(1207) => q(bhy),
+ q(1208) => q(bhz),
+ q(1209) => q(bia),
+ q(1210) => q(bib),
+ q(1211) => q(bic),
+ q(1212) => q(bid),
+ q(1213) => q(bie),
+ q(1214) => q(bif),
+ q(1215) => q(big),
+ q(1216) => q(bij),
+ q(1217) => q(bil),
+ q(1218) => q(bim),
+ q(1219) => q(bio),
+ q(1220) => q(bip),
+ q(1221) => q(biq),
+ q(1222) => q(bir),
+ q(1223) => q(bit),
+ q(1224) => q(biu),
+ q(1225) => q(biv),
+ q(1226) => q(biw),
+ q(1227) => q(bix),
+ q(1228) => q(biy),
+ q(1229) => q(biz),
+ q(1230) => q(bja),
+ q(1231) => q(bjb),
+ q(1232) => q(bjc),
+ q(1233) => q(bje),
+ q(1234) => q(bjf),
+ q(1235) => q(bjg),
+ q(1236) => q(bjh),
+ q(1237) => q(bji),
+ q(1238) => q(bjj),
+ q(1239) => q(bjk),
+ q(1240) => q(bjl),
+ q(1241) => q(bjm),
+ q(1242) => q(bjn),
+ q(1243) => q(bjo),
+ q(1244) => q(bjp),
+ q(1245) => q(bjr),
+ q(1246) => q(bjs),
+ q(1247) => q(bjt),
+ q(1248) => q(bju),
+ q(1249) => q(bjv),
+ q(1250) => q(bjw),
+ q(1251) => q(bjx),
+ q(1252) => q(bjy),
+ q(1253) => q(bjz),
+ q(1254) => q(bka),
+ q(1255) => q(bkc),
+ q(1256) => q(bkd),
+ q(1257) => q(bkf),
+ q(1258) => q(bkg),
+ q(1259) => q(bkh),
+ q(1260) => q(bki),
+ q(1261) => q(bkj),
+ q(1262) => q(bkk),
+ q(1263) => q(bkl),
+ q(1264) => q(bkm),
+ q(1265) => q(bkn),
+ q(1266) => q(bko),
+ q(1267) => q(bkp),
+ q(1268) => q(bkq),
+ q(1269) => q(bkr),
+ q(1270) => q(bks),
+ q(1271) => q(bkt),
+ q(1272) => q(bku),
+ q(1273) => q(bkv),
+ q(1274) => q(bkw),
+ q(1275) => q(bkx),
+ q(1276) => q(bky),
+ q(1277) => q(bkz),
+ q(1278) => q(blb),
+ q(1279) => q(blc),
+ q(1280) => q(bld),
+ q(1281) => q(ble),
+ q(1282) => q(blf),
+ q(1283) => q(blg),
+ q(1284) => q(blh),
+ q(1285) => q(bli),
+ q(1286) => q(blj),
+ q(1287) => q(blk),
+ q(1288) => q(bll),
+ q(1289) => q(blm),
+ q(1290) => q(bln),
+ q(1291) => q(blo),
+ q(1292) => q(blp),
+ q(1293) => q(blq),
+ q(1294) => q(blr),
+ q(1295) => q(bls),
+ q(1296) => q(blt),
+ q(1297) => q(blv),
+ q(1298) => q(blw),
+ q(1299) => q(blx),
+ q(1300) => q(bly),
+ q(1301) => q(blz),
+ q(1302) => q(bma),
+ q(1303) => q(bmb),
+ q(1304) => q(bmc),
+ q(1305) => q(bmd),
+ q(1306) => q(bme),
+ q(1307) => q(bmf),
+ q(1308) => q(bmg),
+ q(1309) => q(bmh),
+ q(1310) => q(bmi),
+ q(1311) => q(bmj),
+ q(1312) => q(bmk),
+ q(1313) => q(bml),
+ q(1314) => q(bmm),
+ q(1315) => q(bmn),
+ q(1316) => q(bmo),
+ q(1317) => q(bmp),
+ q(1318) => q(bmq),
+ q(1319) => q(bmr),
+ q(1320) => q(bms),
+ q(1321) => q(bmt),
+ q(1322) => q(bmu),
+ q(1323) => q(bmv),
+ q(1324) => q(bmw),
+ q(1325) => q(bmx),
+ q(1326) => q(bmz),
+ q(1327) => q(bna),
+ q(1328) => q(bnb),
+ q(1329) => q(bnc),
+ q(1330) => q(bnd),
+ q(1331) => q(bne),
+ q(1332) => q(bnf),
+ q(1333) => q(bng),
+ q(1334) => q(bni),
+ q(1335) => q(bnj),
+ q(1336) => q(bnk),
+ q(1337) => q(bnl),
+ q(1338) => q(bnm),
+ q(1339) => q(bnn),
+ q(1340) => q(bno),
+ q(1341) => q(bnp),
+ q(1342) => q(bnq),
+ q(1343) => q(bnr),
+ q(1344) => q(bns),
+ q(1345) => q(bnu),
+ q(1346) => q(bnv),
+ q(1347) => q(bnw),
+ q(1348) => q(bnx),
+ q(1349) => q(bny),
+ q(1350) => q(bnz),
+ q(1351) => q(boa),
+ q(1352) => q(bob),
+ q(1353) => q(boe),
+ q(1354) => q(bof),
+ q(1355) => q(bog),
+ q(1356) => q(boh),
+ q(1357) => q(boi),
+ q(1358) => q(boj),
+ q(1359) => q(bok),
+ q(1360) => q(bol),
+ q(1361) => q(bom),
+ q(1362) => q(bon),
+ q(1363) => q(boo),
+ q(1364) => q(bop),
+ q(1365) => q(boq),
+ q(1366) => q(bor),
+ q(1367) => q(bot),
+ q(1368) => q(bou),
+ q(1369) => q(bov),
+ q(1370) => q(bow),
+ q(1371) => q(box),
+ q(1372) => q(boy),
+ q(1373) => q(boz),
+ q(1374) => q(bpa),
+ q(1375) => q(bpb),
+ q(1376) => q(bpd),
+ q(1377) => q(bpg),
+ q(1378) => q(bph),
+ q(1379) => q(bpi),
+ q(1380) => q(bpj),
+ q(1381) => q(bpk),
+ q(1382) => q(bpl),
+ q(1383) => q(bpm),
+ q(1384) => q(bpn),
+ q(1385) => q(bpo),
+ q(1386) => q(bpp),
+ q(1387) => q(bpq),
+ q(1388) => q(bpr),
+ q(1389) => q(bps),
+ q(1390) => q(bpt),
+ q(1391) => q(bpu),
+ q(1392) => q(bpv),
+ q(1393) => q(bpw),
+ q(1394) => q(bpx),
+ q(1395) => q(bpy),
+ q(1396) => q(bpz),
+ q(1397) => q(bqa),
+ q(1398) => q(bqb),
+ q(1399) => q(bqc),
+ q(1400) => q(bqd),
+ q(1401) => q(bqf),
+ q(1402) => q(bqg),
+ q(1403) => q(bqh),
+ q(1404) => q(bqi),
+ q(1405) => q(bqj),
+ q(1406) => q(bqk),
+ q(1407) => q(bql),
+ q(1408) => q(bqm),
+ q(1409) => q(bqn),
+ q(1410) => q(bqo),
+ q(1411) => q(bqp),
+ q(1412) => q(bqq),
+ q(1413) => q(bqr),
+ q(1414) => q(bqs),
+ q(1415) => q(bqt),
+ q(1416) => q(bqu),
+ q(1417) => q(bqv),
+ q(1418) => q(bqw),
+ q(1419) => q(bqx),
+ q(1420) => q(bqy),
+ q(1421) => q(bqz),
+ q(1422) => q(brb),
+ q(1423) => q(brc),
+ q(1424) => q(brd),
+ q(1425) => q(brf),
+ q(1426) => q(brg),
+ q(1427) => q(brh),
+ q(1428) => q(bri),
+ q(1429) => q(brj),
+ q(1430) => q(brk),
+ q(1431) => q(brl),
+ q(1432) => q(brm),
+ q(1433) => q(brn),
+ q(1434) => q(bro),
+ q(1435) => q(brp),
+ q(1436) => q(brq),
+ q(1437) => q(brr),
+ q(1438) => q(brs),
+ q(1439) => q(brt),
+ q(1440) => q(bru),
+ q(1441) => q(brv),
+ q(1442) => q(brw),
+ q(1443) => q(brx),
+ q(1444) => q(bry),
+ q(1445) => q(brz),
+ q(1446) => q(bsa),
+ q(1447) => q(bsb),
+ q(1448) => q(bsc),
+ q(1449) => q(bse),
+ q(1450) => q(bsf),
+ q(1451) => q(bsg),
+ q(1452) => q(bsh),
+ q(1453) => q(bsi),
+ q(1454) => q(bsj),
+ q(1455) => q(bsk),
+ q(1456) => q(bsl),
+ q(1457) => q(bsm),
+ q(1458) => q(bsn),
+ q(1459) => q(bso),
+ q(1460) => q(bsp),
+ q(1461) => q(bsq),
+ q(1462) => q(bsr),
+ q(1463) => q(bss),
+ q(1464) => q(bst),
+ q(1465) => q(bsu),
+ q(1466) => q(bsv),
+ q(1467) => q(bsw),
+ q(1468) => q(bsx),
+ q(1469) => q(bsy),
+ q(1470) => q(bta),
+ q(1471) => q(btc),
+ q(1472) => q(btd),
+ q(1473) => q(bte),
+ q(1474) => q(btf),
+ q(1475) => q(btg),
+ q(1476) => q(bth),
+ q(1477) => q(bti),
+ q(1478) => q(btj),
+ q(1479) => q(btl),
+ 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(cbe),
+ q(1663) => q(cbg),
+ q(1664) => q(cbh),
+ q(1665) => q(cbi),
+ q(1666) => q(cbj),
+ q(1667) => q(cbk),
+ q(1668) => q(cbl),
+ q(1669) => q(cbn),
+ q(1670) => q(cbo),
+ q(1671) => q(cbq),
+ q(1672) => q(cbr),
+ q(1673) => q(cbs),
+ q(1674) => q(cbt),
+ q(1675) => q(cbu),
+ q(1676) => q(cbv),
+ q(1677) => q(cbw),
+ q(1678) => q(cby),
+ q(1679) => q(cca),
+ q(1680) => q(ccc),
+ q(1681) => q(ccd),
+ q(1682) => q(cce),
+ q(1683) => q(ccg),
+ q(1684) => q(cch),
+ q(1685) => q(ccj),
+ q(1686) => q(ccl),
+ q(1687) => q(ccm),
+ q(1688) => q(cco),
+ q(1689) => q(ccp),
+ q(1690) => q(ccr),
+ q(1691) => q(cda),
+ q(1692) => q(cde),
+ q(1693) => q(cdf),
+ q(1694) => q(cdg),
+ q(1695) => q(cdh),
+ q(1696) => q(cdi),
+ q(1697) => q(cdj),
+ q(1698) => q(cdm),
+ q(1699) => q(cdn),
+ q(1700) => q(cdo),
+ q(1701) => q(cdr),
+ q(1702) => q(cds),
+ q(1703) => q(cdy),
+ q(1704) => q(cdz),
+ q(1705) => q(cea),
+ q(1706) => q(ceg),
+ q(1707) => q(cek),
+ q(1708) => q(cen),
+ q(1709) => q(cet),
+ q(1710) => q(cfa),
+ q(1711) => q(cfd),
+ q(1712) => q(cfg),
+ q(1713) => q(cfm),
+ q(1714) => q(cga),
+ q(1715) => q(cgc),
+ q(1716) => q(cgg),
+ q(1717) => q(cgk),
+ q(1718) => q(chc),
+ q(1719) => q(chd),
+ q(1720) => q(chf),
+ q(1721) => q(chh),
+ q(1722) => q(chj),
+ q(1723) => q(chl),
+ q(1724) => q(chq),
+ q(1725) => q(cht),
+ q(1726) => q(chw),
+ q(1727) => q(chx),
+ q(1728) => q(chz),
+ q(1729) => q(cia),
+ q(1730) => q(cib),
+ q(1731) => q(cic),
+ q(1732) => q(cid),
+ q(1733) => q(cie),
+ q(1734) => q(cih),
+ q(1735) => q(cik),
+ q(1736) => q(cim),
+ q(1737) => q(cin),
+ q(1738) => q(cip),
+ q(1739) => q(cir),
+ q(1740) => q(ciw),
+ q(1741) => q(ciy),
+ q(1742) => q(cja),
+ q(1743) => q(cje),
+ q(1744) => q(cjh),
+ q(1745) => q(cji),
+ q(1746) => q(cjk),
+ q(1747) => q(cjm),
+ q(1748) => q(cjn),
+ q(1749) => q(cjo),
+ q(1750) => q(cjp),
+ q(1751) => q(cjs),
+ q(1752) => q(cjv),
+ q(1753) => q(cjy),
+ q(1754) => q(ckb),
+ q(1755) => q(ckh),
+ q(1756) => q(ckl),
+ q(1757) => q(ckn),
+ q(1758) => q(cko),
+ q(1759) => q(ckq),
+ q(1760) => q(ckr),
+ q(1761) => q(cks),
+ q(1762) => q(ckt),
+ q(1763) => q(cku),
+ q(1764) => q(ckv),
+ q(1765) => q(ckx),
+ q(1766) => q(cky),
+ q(1767) => q(ckz),
+ q(1768) => q(cla),
+ q(1769) => q(clc),
+ q(1770) => q(cld),
+ q(1771) => q(cle),
+ q(1772) => q(clh),
+ q(1773) => q(cli),
+ q(1774) => q(clj),
+ q(1775) => q(clk),
+ q(1776) => q(cll),
+ q(1777) => q(clm),
+ q(1778) => q(clo),
+ q(1779) => q(clt),
+ q(1780) => q(clu),
+ q(1781) => q(clw),
+ q(1782) => q(cly),
+ q(1783) => q(cma),
+ q(1784) => q(cme),
+ q(1785) => q(cmg),
+ q(1786) => q(cmi),
+ q(1787) => q(cml),
+ q(1788) => q(cmm),
+ q(1789) => q(cmn),
+ q(1790) => q(cmo),
+ q(1791) => q(cmr),
+ q(1792) => q(cms),
+ q(1793) => q(cmt),
+ q(1794) => q(cna),
+ q(1795) => q(cnb),
+ q(1796) => q(cnc),
+ q(1797) => q(cng),
+ q(1798) => q(cnh),
+ q(1799) => q(cni),
+ q(1800) => q(cnk),
+ q(1801) => q(cnl),
+ q(1802) => q(cno),
+ q(1803) => q(cns),
+ q(1804) => q(cnt),
+ q(1805) => q(cnu),
+ q(1806) => q(cnw),
+ q(1807) => q(cnx),
+ q(1808) => q(coa),
+ q(1809) => q(cob),
+ q(1810) => q(coc),
+ q(1811) => q(cod),
+ q(1812) => q(coe),
+ q(1813) => q(cof),
+ q(1814) => q(cog),
+ q(1815) => q(coh),
+ q(1816) => q(coj),
+ q(1817) => q(cok),
+ q(1818) => q(col),
+ q(1819) => q(com),
+ q(1820) => q(con),
+ q(1821) => q(coo),
+ q(1822) => q(coq),
+ q(1823) => q(cot),
+ q(1824) => q(cou),
+ q(1825) => q(cov),
+ q(1826) => q(cow),
+ q(1827) => q(cox),
+ q(1828) => q(coy),
+ q(1829) => q(coz),
+ q(1830) => q(cpa),
+ q(1831) => q(cpb),
+ q(1832) => q(cpc),
+ q(1833) => q(cpg),
+ q(1834) => q(cpi),
+ q(1835) => q(cpn),
+ q(1836) => q(cpo),
+ q(1837) => q(cps),
+ q(1838) => q(cpu),
+ q(1839) => q(cpx),
+ q(1840) => q(cpy),
+ q(1841) => q(cqd),
+ q(1842) => q(cqu),
+ q(1843) => q(cra),
+ q(1844) => q(crb),
+ q(1845) => q(crc),
+ q(1846) => q(crd),
+ q(1847) => q(crf),
+ q(1848) => q(crg),
+ q(1849) => q(cri),
+ q(1850) => q(crj),
+ q(1851) => q(crk),
+ q(1852) => q(crl),
+ q(1853) => q(crm),
+ q(1854) => q(crn),
+ q(1855) => q(cro),
+ q(1856) => q(crq),
+ q(1857) => q(crr),
+ q(1858) => q(crs),
+ q(1859) => q(crt),
+ q(1860) => q(crv),
+ q(1861) => q(crw),
+ q(1862) => q(crx),
+ q(1863) => q(cry),
+ q(1864) => q(crz),
+ q(1865) => q(csa),
+ q(1866) => q(csc),
+ q(1867) => q(csd),
+ q(1868) => q(cse),
+ q(1869) => q(csf),
+ q(1870) => q(csg),
+ q(1871) => q(csh),
+ q(1872) => q(csi),
+ q(1873) => q(csj),
+ q(1874) => q(csk),
+ q(1875) => q(csl),
+ q(1876) => q(csm),
+ q(1877) => q(csn),
+ q(1878) => q(cso),
+ q(1879) => q(csq),
+ q(1880) => q(csr),
+ q(1881) => q(css),
+ q(1882) => q(cst),
+ q(1883) => q(csv),
+ q(1884) => q(csw),
+ q(1885) => q(csy),
+ q(1886) => q(csz),
+ q(1887) => q(cta),
+ q(1888) => q(ctc),
+ q(1889) => q(ctd),
+ q(1890) => q(cte),
+ q(1891) => q(ctg),
+ q(1892) => q(cth),
+ q(1893) => q(ctl),
+ q(1894) => q(ctm),
+ q(1895) => q(ctn),
+ q(1896) => q(cto),
+ q(1897) => q(ctp),
+ q(1898) => q(cts),
+ q(1899) => q(ctt),
+ q(1900) => q(ctu),
+ q(1901) => q(ctz),
+ q(1902) => q(cua),
+ q(1903) => q(cub),
+ q(1904) => q(cuc),
+ q(1905) => q(cug),
+ q(1906) => q(cuh),
+ q(1907) => q(cui),
+ q(1908) => q(cuj),
+ q(1909) => q(cuk),
+ q(1910) => q(cul),
+ q(1911) => q(cum),
+ q(1912) => q(cuo),
+ q(1913) => q(cup),
+ q(1914) => q(cuq),
+ q(1915) => q(cur),
+ q(1916) => q(cut),
+ q(1917) => q(cuu),
+ q(1918) => q(cuv),
+ q(1919) => q(cuw),
+ q(1920) => q(cux),
+ q(1921) => q(cvg),
+ q(1922) => q(cvn),
+ q(1923) => q(cwa),
+ q(1924) => q(cwb),
+ q(1925) => q(cwd),
+ q(1926) => q(cwe),
+ q(1927) => q(cwg),
+ q(1928) => q(cwt),
+ q(1929) => q(cya),
+ q(1930) => q(cyb),
+ q(1931) => q(cyo),
+ q(1932) => q(czh),
+ q(1933) => q(czk),
+ q(1934) => q(czn),
+ q(1935) => q(czo),
+ q(1936) => q(czt),
+ q(1937) => q(daa),
+ q(1938) => q(dac),
+ q(1939) => q(dad),
+ q(1940) => q(dae),
+ q(1941) => q(dag),
+ q(1942) => q(dah),
+ q(1943) => q(dai),
+ q(1944) => q(daj),
+ q(1945) => q(dal),
+ q(1946) => q(dam),
+ q(1947) => q(dao),
+ q(1948) => q(daq),
+ q(1949) => q(das),
+ q(1950) => q(dau),
+ q(1951) => q(dav),
+ q(1952) => q(daw),
+ q(1953) => q(dax),
+ q(1954) => q(daz),
+ q(1955) => q(dba),
+ q(1956) => q(dbb),
+ q(1957) => q(dbd),
+ q(1958) => q(dbe),
+ q(1959) => q(dbf),
+ q(1960) => q(dbg),
+ q(1961) => q(dbi),
+ q(1962) => q(dbj),
+ q(1963) => q(dbl),
+ q(1964) => q(dbm),
+ q(1965) => q(dbn),
+ q(1966) => q(dbo),
+ q(1967) => q(dbp),
+ q(1968) => q(dbq),
+ q(1969) => q(dbr),
+ q(1970) => q(dbt),
+ q(1971) => q(dbu),
+ q(1972) => q(dbv),
+ q(1973) => q(dbw),
+ q(1974) => q(dby),
+ q(1975) => q(dcc),
+ q(1976) => q(dcr),
+ q(1977) => q(dda),
+ q(1978) => q(ddd),
+ q(1979) => q(dde),
+ q(1980) => q(ddg),
+ q(1981) => q(ddi),
+ q(1982) => q(ddj),
+ q(1983) => q(ddn),
+ q(1984) => q(ddo),
+ q(1985) => q(ddr),
+ q(1986) => q(dds),
+ q(1987) => q(ddw),
+ q(1988) => q(dec),
+ q(1989) => q(ded),
+ q(1990) => q(dee),
+ q(1991) => q(def),
+ q(1992) => q(deg),
+ q(1993) => q(deh),
+ q(1994) => q(dei),
+ q(1995) => q(dek),
+ q(1996) => q(dem),
+ q(1997) => q(dep),
+ q(1998) => q(deq),
+ q(1999) => q(der),
+ q(2000) => q(des),
+ q(2001) => q(dev),
+ q(2002) => q(dez),
+ q(2003) => q(dga),
+ q(2004) => q(dgb),
+ q(2005) => q(dgc),
+ q(2006) => q(dgd),
+ q(2007) => q(dge),
+ q(2008) => q(dgg),
+ q(2009) => q(dgh),
+ q(2010) => q(dgi),
+ q(2011) => q(dgk),
+ q(2012) => q(dgl),
+ q(2013) => q(dgn),
+ q(2014) => q(dgo),
+ q(2015) => q(dgs),
+ q(2016) => q(dgt),
+ q(2017) => q(dgu),
+ q(2018) => q(dgw),
+ q(2019) => q(dgx),
+ q(2020) => q(dgz),
+ q(2021) => q(dhd),
+ q(2022) => q(dhg),
+ q(2023) => q(dhi),
+ q(2024) => q(dhl),
+ q(2025) => q(dhm),
+ q(2026) => q(dhn),
+ q(2027) => q(dho),
+ q(2028) => q(dhr),
+ q(2029) => q(dhs),
+ q(2030) => q(dhu),
+ q(2031) => q(dhv),
+ q(2032) => q(dhw),
+ q(2033) => q(dhx),
+ q(2034) => q(dia),
+ q(2035) => q(dib),
+ q(2036) => q(dic),
+ q(2037) => q(did),
+ q(2038) => q(dif),
+ q(2039) => q(dig),
+ q(2040) => q(dih),
+ q(2041) => q(dii),
+ q(2042) => q(dij),
+ q(2043) => q(dik),
+ q(2044) => q(dil),
+ q(2045) => q(dim),
+ q(2046) => q(dio),
+ q(2047) => q(dip),
+ q(2048) => q(diq),
+ q(2049) => q(dir),
+ q(2050) => q(dis),
+ q(2051) => q(dit),
+ q(2052) => q(diu),
+ q(2053) => q(diw),
+ q(2054) => q(dix),
+ q(2055) => q(diy),
+ q(2056) => q(diz),
+ q(2057) => q(dja),
+ q(2058) => q(djb),
+ q(2059) => q(djc),
+ q(2060) => q(djd),
+ q(2061) => q(dje),
+ q(2062) => q(djf),
+ q(2063) => q(dji),
+ q(2064) => q(djj),
+ q(2065) => q(djk),
+ q(2066) => q(djm),
+ q(2067) => q(djn),
+ q(2068) => q(djo),
+ q(2069) => q(djr),
+ q(2070) => q(dju),
+ q(2071) => q(djw),
+ q(2072) => q(dka),
+ q(2073) => q(dkk),
+ q(2074) => q(dkr),
+ q(2075) => q(dks),
+ q(2076) => q(dkx),
+ q(2077) => q(dlg),
+ q(2078) => q(dlk),
+ q(2079) => q(dlm),
+ q(2080) => q(dln),
+ q(2081) => q(dma),
+ q(2082) => q(dmb),
+ q(2083) => q(dmc),
+ q(2084) => q(dmd),
+ q(2085) => q(dme),
+ q(2086) => q(dmg),
+ q(2087) => q(dmk),
+ q(2088) => q(dml),
+ q(2089) => q(dmm),
+ q(2090) => q(dmo),
+ q(2091) => q(dmr),
+ q(2092) => q(dms),
+ q(2093) => q(dmu),
+ q(2094) => q(dmv),
+ q(2095) => q(dmw),
+ q(2096) => q(dmx),
+ q(2097) => q(dmy),
+ q(2098) => q(dna),
+ q(2099) => q(dnd),
+ q(2100) => q(dne),
+ q(2101) => q(dng),
+ q(2102) => q(dni),
+ q(2103) => q(dnj),
+ q(2104) => q(dnk),
+ q(2105) => q(dnn),
+ q(2106) => q(dnr),
+ q(2107) => q(dnt),
+ q(2108) => q(dnu),
+ q(2109) => q(dnv),
+ q(2110) => q(dnw),
+ q(2111) => q(dny),
+ q(2112) => q(doa),
+ q(2113) => q(dob),
+ q(2114) => q(doc),
+ q(2115) => q(doe),
+ q(2116) => q(dof),
+ q(2117) => q(doh),
+ q(2118) => q(dok),
+ q(2119) => q(dol),
+ q(2120) => q(don),
+ q(2121) => q(doo),
+ q(2122) => q(dop),
+ q(2123) => q(doq),
+ q(2124) => q(dor),
+ q(2125) => q(dos),
+ q(2126) => q(dot),
+ q(2127) => q(dov),
+ q(2128) => q(dow),
+ q(2129) => q(dox),
+ q(2130) => q(doy),
+ q(2131) => q(doz),
+ q(2132) => q(dpp),
+ q(2133) => q(drb),
+ q(2134) => q(drc),
+ q(2135) => q(drd),
+ q(2136) => q(dre),
+ q(2137) => q(drg),
+ q(2138) => q(dri),
+ q(2139) => q(drl),
+ q(2140) => q(drn),
+ q(2141) => q(dro),
+ q(2142) => q(drq),
+ q(2143) => q(drr),
+ q(2144) => q(drs),
+ q(2145) => q(drt),
+ q(2146) => q(dru),
+ q(2147) => q(dry),
+ q(2148) => q(dse),
+ q(2149) => q(dsh),
+ q(2150) => q(dsi),
+ q(2151) => q(dsl),
+ q(2152) => q(dsn),
+ q(2153) => q(dso),
+ q(2154) => q(dsq),
+ q(2155) => q(dta),
+ q(2156) => q(dtb),
+ q(2157) => q(dtd),
+ q(2158) => q(dth),
+ q(2159) => q(dti),
+ q(2160) => q(dtk),
+ q(2161) => q(dtm),
+ q(2162) => q(dto),
+ q(2163) => q(dtp),
+ q(2164) => q(dtr),
+ q(2165) => q(dts),
+ q(2166) => q(dtt),
+ q(2167) => q(dtu),
+ q(2168) => q(dty),
+ q(2169) => q(dub),
+ q(2170) => q(duc),
+ q(2171) => q(dud),
+ q(2172) => q(due),
+ q(2173) => q(duf),
+ q(2174) => q(dug),
+ q(2175) => q(duh),
+ q(2176) => q(dui),
+ q(2177) => q(duj),
+ q(2178) => q(duk),
+ q(2179) => q(dul),
+ q(2180) => q(dun),
+ q(2181) => q(duo),
+ q(2182) => q(dup),
+ q(2183) => q(duq),
+ q(2184) => q(dur),
+ q(2185) => q(dus),
+ q(2186) => q(duu),
+ q(2187) => q(duv),
+ q(2188) => q(duw),
+ q(2189) => q(dux),
+ q(2190) => q(duy),
+ q(2191) => q(duz),
+ q(2192) => q(dva),
+ q(2193) => q(dwa),
+ q(2194) => q(dwr),
+ q(2195) => q(dws),
+ q(2196) => q(dww),
+ q(2197) => q(dya),
+ q(2198) => q(dyb),
+ q(2199) => q(dyd),
+ q(2200) => q(dyg),
+ q(2201) => q(dyi),
+ q(2202) => q(dym),
+ q(2203) => q(dyn),
+ q(2204) => q(dyo),
+ q(2205) => q(dyy),
+ q(2206) => q(dza),
+ q(2207) => q(dze),
+ q(2208) => q(dzg),
+ q(2209) => q(dzl),
+ q(2210) => q(dzn),
+ q(2211) => q(eaa),
+ q(2212) => q(ebg),
+ q(2213) => q(ebk),
+ q(2214) => q(ebo),
+ q(2215) => q(ebr),
+ q(2216) => q(ebu),
+ q(2217) => q(ecr),
+ q(2218) => q(ecs),
+ q(2219) => q(ecy),
+ q(2220) => q(eee),
+ q(2221) => q(efa),
+ q(2222) => q(efe),
+ q(2223) => q(ega),
+ q(2224) => q(egl),
+ q(2225) => q(ego),
+ q(2226) => q(ehu),
+ q(2227) => q(eip),
+ q(2228) => q(eit),
+ q(2229) => q(eiv),
+ q(2230) => q(eja),
+ q(2231) => q(ekc),
+ q(2232) => q(eke),
+ q(2233) => q(ekg),
+ q(2234) => q(eki),
+ q(2235) => q(ekk),
+ q(2236) => q(ekl),
+ q(2237) => q(ekm),
+ q(2238) => q(eko),
+ q(2239) => q(ekp),
+ q(2240) => q(ekr),
+ q(2241) => q(eky),
+ q(2242) => q(ele),
+ q(2243) => q(elh),
+ q(2244) => q(eli),
+ q(2245) => q(elk),
+ q(2246) => q(elm),
+ q(2247) => q(elo),
+ q(2248) => q(elu),
+ q(2249) => q(ema),
+ q(2250) => q(emb),
+ q(2251) => q(eme),
+ q(2252) => q(emg),
+ q(2253) => q(emi),
+ q(2254) => q(emk),
+ q(2255) => q(emm),
+ q(2256) => q(emn),
+ q(2257) => q(emp),
+ q(2258) => q(ems),
+ q(2259) => q(emu),
+ q(2260) => q(emw),
+ q(2261) => q(emx),
+ q(2262) => q(emy),
+ q(2263) => q(ena),
+ q(2264) => q(enb),
+ q(2265) => q(enc),
+ q(2266) => q(end),
+ q(2267) => q(enf),
+ q(2268) => q(enh),
+ q(2269) => q(enl),
+ q(2270) => q(enn),
+ q(2271) => q(eno),
+ q(2272) => q(enq),
+ q(2273) => q(enr),
+ q(2274) => q(enu),
+ q(2275) => q(env),
+ q(2276) => q(enw),
+ q(2277) => q(enx),
+ q(2278) => q(eot),
+ q(2279) => q(epi),
+ q(2280) => q(era),
+ q(2281) => q(erg),
+ q(2282) => q(erh),
+ q(2283) => q(eri),
+ q(2284) => q(erk),
+ q(2285) => q(ero),
+ q(2286) => q(err),
+ q(2287) => q(ers),
+ q(2288) => q(ert),
+ q(2289) => q(erw),
+ q(2290) => q(ese),
+ q(2291) => q(esh),
+ q(2292) => q(esi),
+ q(2293) => q(esk),
+ q(2294) => q(esl),
+ q(2295) => q(esm),
+ q(2296) => q(esn),
+ q(2297) => q(eso),
+ q(2298) => q(esq),
+ q(2299) => q(ess),
+ q(2300) => q(esu),
+ q(2301) => q(esy),
+ q(2302) => q(etb),
+ q(2303) => q(etc),
+ q(2304) => q(eth),
+ q(2305) => q(etn),
+ q(2306) => q(eto),
+ q(2307) => q(etr),
+ q(2308) => q(ets),
+ q(2309) => q(ett),
+ q(2310) => q(etu),
+ q(2311) => q(etx),
+ q(2312) => q(etz),
+ q(2313) => q(eve),
+ q(2314) => q(evh),
+ q(2315) => q(evn),
+ q(2316) => q(ext),
+ q(2317) => q(eya),
+ q(2318) => q(eyo),
+ q(2319) => q(eza),
+ q(2320) => q(eze),
+ q(2321) => q(faa),
+ q(2322) => q(fab),
+ q(2323) => q(fad),
+ q(2324) => q(faf),
+ q(2325) => q(fag),
+ q(2326) => q(fah),
+ q(2327) => q(fai),
+ q(2328) => q(faj),
+ q(2329) => q(fak),
+ q(2330) => q(fal),
+ q(2331) => q(fam),
+ q(2332) => q(fap),
+ q(2333) => q(far),
+ q(2334) => q(fau),
+ q(2335) => q(fax),
+ q(2336) => q(fay),
+ q(2337) => q(faz),
+ q(2338) => q(fbl),
+ q(2339) => q(fcs),
+ q(2340) => q(fer),
+ q(2341) => q(ffi),
+ q(2342) => q(ffm),
+ q(2343) => q(fgr),
+ q(2344) => q(fia),
+ q(2345) => q(fie),
+ q(2346) => q(fip),
+ q(2347) => q(fir),
+ q(2348) => q(fit),
+ q(2349) => q(fiw),
+ q(2350) => q(fkk),
+ q(2351) => q(fkv),
+ q(2352) => q(fla),
+ q(2353) => q(flh),
+ q(2354) => q(fli),
+ q(2355) => q(fll),
+ q(2356) => q(fln),
+ q(2357) => q(flr),
+ q(2358) => q(fly),
+ q(2359) => q(fmp),
+ q(2360) => q(fmu),
+ q(2361) => q(fng),
+ q(2362) => q(fni),
+ q(2363) => q(fod),
+ q(2364) => q(foi),
+ q(2365) => q(fom),
+ q(2366) => q(for),
+ q(2367) => q(fos),
+ q(2368) => q(fpe),
+ q(2369) => q(fqs),
+ q(2370) => q(frc),
+ q(2371) => q(frd),
+ q(2372) => q(frk),
+ q(2373) => q(frp),
+ q(2374) => q(frq),
+ q(2375) => q(frt),
+ q(2376) => q(fse),
+ q(2377) => q(fsl),
+ q(2378) => q(fss),
+ q(2379) => q(fub),
+ q(2380) => q(fuc),
+ q(2381) => q(fud),
+ q(2382) => q(fue),
+ q(2383) => q(fuf),
+ q(2384) => q(fuh),
+ q(2385) => q(fui),
+ q(2386) => q(fuj),
+ q(2387) => q(fum),
+ q(2388) => q(fun),
+ q(2389) => q(fuq),
+ q(2390) => q(fut),
+ q(2391) => q(fuu),
+ q(2392) => q(fuv),
+ q(2393) => q(fuy),
+ q(2394) => q(fvr),
+ q(2395) => q(fwa),
+ q(2396) => q(fwe),
+ q(2397) => q(gab),
+ q(2398) => q(gac),
+ q(2399) => q(gad),
+ q(2400) => q(gae),
+ q(2401) => q(gaf),
+ q(2402) => q(gag),
+ q(2403) => q(gah),
+ q(2404) => q(gai),
+ q(2405) => q(gaj),
+ q(2406) => q(gak),
+ q(2407) => q(gal),
+ q(2408) => q(gam),
+ q(2409) => q(gan),
+ q(2410) => q(gao),
+ q(2411) => q(gap),
+ q(2412) => q(gaq),
+ q(2413) => q(gar),
+ q(2414) => q(gas),
+ q(2415) => q(gat),
+ q(2416) => q(gau),
+ q(2417) => q(gaw),
+ q(2418) => q(gax),
+ q(2419) => q(gaz),
+ q(2420) => q(gbb),
+ q(2421) => q(gbd),
+ q(2422) => q(gbe),
+ q(2423) => q(gbf),
+ q(2424) => q(gbg),
+ q(2425) => q(gbh),
+ q(2426) => q(gbi),
+ q(2427) => q(gbj),
+ q(2428) => q(gbk),
+ q(2429) => q(gbl),
+ q(2430) => q(gbm),
+ q(2431) => q(gbn),
+ q(2432) => q(gbo),
+ q(2433) => q(gbp),
+ q(2434) => q(gbq),
+ q(2435) => q(gbr),
+ q(2436) => q(gbs),
+ q(2437) => q(gbu),
+ q(2438) => q(gbv),
+ q(2439) => q(gbw),
+ q(2440) => q(gbx),
+ q(2441) => q(gby),
+ q(2442) => q(gbz),
+ q(2443) => q(gcc),
+ q(2444) => q(gcd),
+ q(2445) => q(gce),
+ q(2446) => q(gcf),
+ q(2447) => q(gcl),
+ q(2448) => q(gcn),
+ q(2449) => q(gcr),
+ q(2450) => q(gct),
+ q(2451) => q(gda),
+ q(2452) => q(gdb),
+ q(2453) => q(gdc),
+ q(2454) => q(gdd),
+ q(2455) => q(gde),
+ q(2456) => q(gdf),
+ q(2457) => q(gdg),
+ q(2458) => q(gdh),
+ q(2459) => q(gdi),
+ q(2460) => q(gdj),
+ q(2461) => q(gdk),
+ q(2462) => q(gdl),
+ q(2463) => q(gdm),
+ q(2464) => q(gdn),
+ q(2465) => q(gdo),
+ q(2466) => q(gdq),
+ q(2467) => q(gdr),
+ q(2468) => q(gds),
+ q(2469) => q(gdt),
+ q(2470) => q(gdu),
+ q(2471) => q(gdx),
+ q(2472) => q(gea),
+ q(2473) => q(geb),
+ q(2474) => q(gec),
+ q(2475) => q(ged),
+ q(2476) => q(geg),
+ q(2477) => q(geh),
+ q(2478) => q(gei),
+ q(2479) => q(gej),
+ q(2480) => q(gek),
+ q(2481) => q(gel),
+ q(2482) => q(geq),
+ q(2483) => q(ges),
+ q(2484) => q(gev),
+ q(2485) => q(gew),
+ q(2486) => q(gex),
+ q(2487) => q(gey),
+ q(2488) => q(gfk),
+ q(2489) => q(gft),
+ q(2490) => q(gga),
+ q(2491) => q(ggb),
+ q(2492) => q(ggd),
+ q(2493) => q(gge),
+ q(2494) => q(ggg),
+ q(2495) => q(ggk),
+ q(2496) => q(ggl),
+ q(2497) => q(ggn),
+ q(2498) => q(ggo),
+ q(2499) => q(ggt),
+ q(2500) => q(ggu),
+ q(2501) => q(ggw),
+ q(2502) => q(gha),
+ q(2503) => q(ghc),
+ q(2504) => q(ghe),
+ q(2505) => q(ghh),
+ q(2506) => q(ghk),
+ q(2507) => q(ghl),
+ q(2508) => q(ghn),
+ q(2509) => q(gho),
+ q(2510) => q(ghr),
+ q(2511) => q(ghs),
+ q(2512) => q(ght),
+ q(2513) => q(gia),
+ q(2514) => q(gib),
+ q(2515) => q(gic),
+ q(2516) => q(gid),
+ q(2517) => q(gig),
+ q(2518) => q(gih),
+ q(2519) => q(gim),
+ q(2520) => q(gin),
+ q(2521) => q(gip),
+ q(2522) => q(giq),
+ q(2523) => q(gir),
+ q(2524) => q(gis),
+ q(2525) => q(git),
+ q(2526) => q(giu),
+ q(2527) => q(giw),
+ q(2528) => q(gix),
+ q(2529) => q(giy),
+ q(2530) => q(giz),
+ q(2531) => q(gji),
+ q(2532) => q(gjk),
+ q(2533) => q(gjm),
+ q(2534) => q(gjn),
+ q(2535) => q(gju),
+ q(2536) => q(gka),
+ q(2537) => q(gke),
+ q(2538) => q(gkn),
+ q(2539) => q(gko),
+ q(2540) => q(gkp),
+ q(2541) => q(gku),
+ q(2542) => q(glc),
+ q(2543) => q(gld),
+ q(2544) => q(glh),
+ q(2545) => q(gli),
+ q(2546) => q(glj),
+ q(2547) => q(glk),
+ q(2548) => q(gll),
+ q(2549) => q(glo),
+ q(2550) => q(glr),
+ q(2551) => q(glu),
+ q(2552) => q(glw),
+ q(2553) => q(gly),
+ q(2554) => q(gma),
+ q(2555) => q(gmb),
+ q(2556) => q(gmd),
+ q(2557) => q(gmg),
+ q(2558) => q(gml),
+ q(2559) => q(gmm),
+ q(2560) => q(gmn),
+ q(2561) => q(gmu),
+ q(2562) => q(gmv),
+ q(2563) => q(gmx),
+ q(2564) => q(gmy),
+ q(2565) => q(gmz),
+ q(2566) => q(gna),
+ q(2567) => q(gnb),
+ q(2568) => q(gnc),
+ q(2569) => q(gnd),
+ q(2570) => q(gne),
+ q(2571) => q(gng),
+ q(2572) => q(gnh),
+ q(2573) => q(gni),
+ q(2574) => q(gnk),
+ q(2575) => q(gnl),
+ q(2576) => q(gnm),
+ q(2577) => q(gnn),
+ q(2578) => q(gno),
+ q(2579) => q(gnq),
+ 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(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(kgc),
+ q(3311) => q(kgd),
+ q(3312) => q(kge),
+ q(3313) => q(kgf),
+ q(3314) => q(kgg),
+ q(3315) => q(kgi),
+ q(3316) => q(kgj),
+ q(3317) => q(kgk),
+ q(3318) => q(kgl),
+ q(3319) => q(kuq),
+ q(3320) => q(kgn),
+ q(3321) => q(kgo),
+ q(3322) => q(kgp),
+ q(3323) => q(kgq),
+ q(3324) => q(kgr),
+ q(3325) => q(kgs),
+ q(3326) => q(kgt),
+ q(3327) => q(kgu),
+ q(3328) => q(kgv),
+ q(3329) => q(kgw),
+ q(3330) => q(kgx),
+ q(3331) => q(kgy),
+ q(3332) => q(khb),
+ q(3333) => q(khc),
+ q(3334) => q(khd),
+ q(3335) => q(khe),
+ q(3336) => q(khf),
+ q(3337) => q(khg),
+ q(3338) => q(khh),
+ q(3339) => q(khj),
+ q(3340) => q(khk),
+ q(3341) => q(khl),
+ q(3342) => q(khn),
+ q(3343) => q(khp),
+ q(3344) => q(khq),
+ q(3345) => q(khr),
+ q(3346) => q(khs),
+ q(3347) => q(kht),
+ q(3348) => q(khu),
+ q(3349) => q(khv),
+ q(3350) => q(khw),
+ q(3351) => q(khx),
+ q(3352) => q(khy),
+ q(3353) => q(khz),
+ q(3354) => q(kia),
+ q(3355) => q(kib),
+ q(3356) => q(kic),
+ q(3357) => q(kid),
+ q(3358) => q(kie),
+ q(3359) => q(kif),
+ q(3360) => q(kig),
+ q(3361) => q(kih),
+ q(3362) => q(kii),
+ q(3363) => q(kij),
+ q(3364) => q(kil),
+ q(3365) => q(kim),
+ q(3366) => q(kio),
+ q(3367) => q(kip),
+ q(3368) => q(kiq),
+ q(3369) => q(kis),
+ q(3370) => q(kit),
+ q(3371) => q(kiu),
+ q(3372) => q(kiv),
+ q(3373) => q(kiw),
+ q(3374) => q(kix),
+ q(3375) => q(kiy),
+ q(3376) => q(kiz),
+ q(3377) => q(kja),
+ q(3378) => q(kjb),
+ q(3379) => q(kjc),
+ q(3380) => q(kjd),
+ q(3381) => q(kje),
+ q(3382) => q(kjf),
+ q(3383) => q(kjg),
+ q(3384) => q(kjh),
+ q(3385) => q(kji),
+ q(3386) => q(kjj),
+ q(3387) => q(kjk),
+ q(3388) => q(kjl),
+ q(3389) => q(kjm),
+ q(3390) => q(kjn),
+ q(3391) => q(kjo),
+ q(3392) => q(kjp),
+ q(3393) => q(kjq),
+ q(3394) => q(kjr),
+ q(3395) => q(kjs),
+ q(3396) => q(kjt),
+ q(3397) => q(kju),
+ q(3398) => q(kjv),
+ q(3399) => q(kjx),
+ q(3400) => q(kjy),
+ q(3401) => q(kjz),
+ q(3402) => q(kka),
+ q(3403) => q(kkb),
+ q(3404) => q(kkc),
+ q(3405) => q(kkd),
+ q(3406) => q(kke),
+ q(3407) => q(kkf),
+ q(3408) => q(kkg),
+ q(3409) => q(kkh),
+ q(3410) => q(kki),
+ q(3411) => q(kkj),
+ q(3412) => q(kkk),
+ q(3413) => q(kkl),
+ q(3414) => q(kkm),
+ q(3415) => q(kkn),
+ q(3416) => q(kko),
+ q(3417) => q(kkp),
+ q(3418) => q(kkq),
+ q(3419) => q(kkr),
+ q(3420) => q(kks),
+ q(3421) => q(kkt),
+ q(3422) => q(kku),
+ q(3423) => q(kkv),
+ q(3424) => q(kkw),
+ q(3425) => q(kkx),
+ q(3426) => q(kky),
+ q(3427) => q(kkz),
+ q(3428) => q(kla),
+ q(3429) => q(klb),
+ q(3430) => q(klc),
+ q(3431) => q(kld),
+ q(3432) => q(kle),
+ q(3433) => q(klf),
+ q(3434) => q(klg),
+ q(3435) => q(klh),
+ q(3436) => q(kli),
+ q(3437) => q(klj),
+ q(3438) => q(klk),
+ q(3439) => q(kll),
+ q(3440) => q(klm),
+ q(3441) => q(kln),
+ q(3442) => q(klo),
+ q(3443) => q(klp),
+ q(3444) => q(klq),
+ q(3445) => q(klr),
+ q(3446) => q(kls),
+ q(3447) => q(klt),
+ q(3448) => q(klu),
+ q(3449) => q(klv),
+ q(3450) => q(klw),
+ q(3451) => q(klx),
+ q(3452) => q(kly),
+ q(3453) => q(klz),
+ q(3454) => q(kma),
+ q(3455) => q(kmc),
+ q(3456) => q(kmd),
+ q(3457) => q(kme),
+ q(3458) => q(kmf),
+ q(3459) => q(kmg),
+ q(3460) => q(kmh),
+ q(3461) => q(kmi),
+ q(3462) => q(kmj),
+ q(3463) => q(kmk),
+ q(3464) => q(kml),
+ q(3465) => q(kmm),
+ q(3466) => q(kmn),
+ q(3467) => q(kmo),
+ q(3468) => q(kmp),
+ q(3469) => q(kmq),
+ q(3470) => q(kmr),
+ q(3471) => q(kms),
+ q(3472) => q(kmt),
+ q(3473) => q(kmu),
+ q(3474) => q(kmv),
+ q(3475) => q(kmw),
+ q(3476) => q(kmx),
+ q(3477) => q(kmy),
+ q(3478) => q(kmz),
+ q(3479) => q(kna),
+ q(3480) => q(knb),
+ q(3481) => q(knc),
+ q(3482) => q(knd),
+ q(3483) => q(kne),
+ q(3484) => q(knf),
+ q(3485) => q(kng),
+ q(3486) => q(kni),
+ q(3487) => q(knj),
+ q(3488) => q(knk),
+ q(3489) => q(knl),
+ q(3490) => q(knm),
+ q(3491) => q(knn),
+ q(3492) => q(kno),
+ q(3493) => q(knp),
+ q(3494) => q(knq),
+ q(3495) => q(knr),
+ q(3496) => q(kns),
+ q(3497) => q(knt),
+ q(3498) => q(knu),
+ q(3499) => q(knv),
+ q(3500) => q(knw),
+ q(3501) => q(knx),
+ q(3502) => q(kny),
+ q(3503) => q(knz),
+ q(3504) => q(koa),
+ q(3505) => q(koc),
+ q(3506) => q(kod),
+ q(3507) => q(koe),
+ q(3508) => q(kof),
+ q(3509) => q(kog),
+ q(3510) => q(koh),
+ q(3511) => q(koi),
+ q(3512) => q(kol),
+ q(3513) => q(koo),
+ q(3514) => q(kop),
+ q(3515) => q(koq),
+ q(3516) => q(kot),
+ q(3517) => q(kou),
+ q(3518) => q(kov),
+ q(3519) => q(kow),
+ q(3520) => q(kox),
+ q(3521) => q(koy),
+ q(3522) => q(koz),
+ q(3523) => q(kpa),
+ q(3524) => q(kpb),
+ q(3525) => q(kpc),
+ q(3526) => q(kpd),
+ q(3527) => q(kpf),
+ q(3528) => q(kpg),
+ q(3529) => q(kph),
+ q(3530) => q(kpi),
+ q(3531) => q(kpj),
+ q(3532) => q(kpk),
+ q(3533) => q(kpl),
+ q(3534) => q(kpm),
+ q(3535) => q(kpn),
+ q(3536) => q(kpo),
+ q(3537) => q(kpq),
+ q(3538) => q(kpr),
+ q(3539) => q(kps),
+ q(3540) => q(kpt),
+ q(3541) => q(kpu),
+ q(3542) => q(kpv),
+ q(3543) => q(kpw),
+ q(3544) => q(kpx),
+ q(3545) => q(kpy),
+ q(3546) => q(kpz),
+ q(3547) => q(kqa),
+ q(3548) => q(kqb),
+ q(3549) => q(kqc),
+ q(3550) => q(kqd),
+ q(3551) => q(kqe),
+ q(3552) => q(kqf),
+ q(3553) => q(kqg),
+ q(3554) => q(kqh),
+ q(3555) => q(kqi),
+ q(3556) => q(kqj),
+ q(3557) => q(kqk),
+ q(3558) => q(kql),
+ q(3559) => q(kqm),
+ q(3560) => q(kqn),
+ q(3561) => q(kqo),
+ q(3562) => q(kqp),
+ q(3563) => q(kqq),
+ q(3564) => q(kqr),
+ q(3565) => q(kqs),
+ q(3566) => q(kqt),
+ q(3567) => q(kqu),
+ q(3568) => q(kqv),
+ q(3569) => q(kqw),
+ q(3570) => q(kqx),
+ q(3571) => q(kqy),
+ q(3572) => q(kqz),
+ q(3573) => q(kra),
+ q(3574) => q(krb),
+ q(3575) => q(krd),
+ q(3576) => q(kre),
+ q(3577) => q(krf),
+ q(3578) => q(krh),
+ q(3579) => q(kri),
+ q(3580) => q(krj),
+ q(3581) => q(krk),
+ q(3582) => q(krm),
+ q(3583) => q(krn),
+ q(3584) => q(krp),
+ q(3585) => q(krr),
+ q(3586) => q(krs),
+ q(3587) => q(krt),
+ q(3588) => q(krv),
+ q(3589) => q(krw),
+ q(3590) => q(krx),
+ q(3591) => q(kry),
+ q(3592) => q(krz),
+ q(3593) => q(ksa),
+ q(3594) => q(ksb),
+ q(3595) => q(ksc),
+ q(3596) => q(ksd),
+ q(3597) => q(kse),
+ q(3598) => q(ksf),
+ q(3599) => q(ksg),
+ q(3600) => q(ksh),
+ q(3601) => q(ksi),
+ q(3602) => q(ksj),
+ q(3603) => q(ksk),
+ q(3604) => q(ksl),
+ q(3605) => q(ksm),
+ q(3606) => q(ksn),
+ q(3607) => q(kso),
+ q(3608) => q(ksp),
+ q(3609) => q(ksq),
+ q(3610) => q(ksr),
+ q(3611) => q(kss),
+ q(3612) => q(kst),
+ q(3613) => q(ksu),
+ q(3614) => q(ksv),
+ q(3615) => q(ksw),
+ q(3616) => q(ksx),
+ q(3617) => q(ksy),
+ q(3618) => q(ksz),
+ q(3619) => q(kta),
+ q(3620) => q(ktb),
+ q(3621) => q(ktc),
+ q(3622) => q(ktd),
+ q(3623) => q(kte),
+ q(3624) => q(ktf),
+ q(3625) => q(ktg),
+ q(3626) => q(kth),
+ q(3627) => q(kti),
+ q(3628) => q(ktj),
+ q(3629) => q(ktk),
+ q(3630) => q(ktl),
+ q(3631) => q(ktm),
+ q(3632) => q(ktn),
+ q(3633) => q(kto),
+ q(3634) => q(ktp),
+ q(3635) => q(ktq),
+ q(3636) => q(ktr),
+ q(3637) => q(kts),
+ q(3638) => q(ktt),
+ q(3639) => q(ktu),
+ q(3640) => q(ktv),
+ q(3641) => q(ktw),
+ q(3642) => q(ktx),
+ q(3643) => q(kty),
+ q(3644) => q(ktz),
+ q(3645) => q(kub),
+ q(3646) => q(kuc),
+ q(3647) => q(kud),
+ q(3648) => q(kue),
+ q(3649) => q(kuf),
+ q(3650) => q(kug),
+ q(3651) => q(kuh),
+ q(3652) => q(kui),
+ q(3653) => q(kuj),
+ q(3654) => q(kuk),
+ q(3655) => q(kul),
+ q(3656) => q(kun),
+ q(3657) => q(kuo),
+ q(3658) => q(kup),
+ q(3659) => q(kus),
+ q(3660) => q(kuu),
+ q(3661) => q(kuv),
+ q(3662) => q(kuw),
+ q(3663) => q(kux),
+ q(3664) => q(kuy),
+ q(3665) => q(kuz),
+ q(3666) => q(kva),
+ q(3667) => q(kvb),
+ q(3668) => q(kvc),
+ q(3669) => q(kvd),
+ q(3670) => q(kve),
+ q(3671) => q(kvf),
+ q(3672) => q(kvg),
+ q(3673) => q(kvh),
+ q(3674) => q(kvi),
+ q(3675) => q(kvj),
+ q(3676) => q(kvk),
+ q(3677) => q(kvl),
+ q(3678) => q(kvm),
+ q(3679) => q(kvn),
+ q(3680) => q(kvo),
+ q(3681) => q(kvp),
+ q(3682) => q(kvq),
+ q(3683) => q(kvr),
+ q(3684) => q(kvs),
+ q(3685) => q(kvt),
+ q(3686) => q(kvu),
+ q(3687) => q(kvv),
+ q(3688) => q(kvw),
+ q(3689) => q(kvx),
+ q(3690) => q(kvy),
+ q(3691) => q(kvz),
+ q(3692) => q(kwa),
+ q(3693) => q(kwb),
+ q(3694) => q(kwc),
+ q(3695) => q(kwd),
+ q(3696) => q(kwe),
+ q(3697) => q(kwf),
+ q(3698) => q(kwg),
+ q(3699) => q(kwh),
+ q(3700) => q(kwi),
+ q(3701) => q(kwj),
+ q(3702) => q(kwk),
+ q(3703) => q(kwl),
+ q(3704) => q(kwm),
+ q(3705) => q(kwn),
+ q(3706) => q(kwo),
+ q(3707) => q(kwp),
+ q(3708) => q(kwr),
+ q(3709) => q(kws),
+ q(3710) => q(kwt),
+ q(3711) => q(kwu),
+ q(3712) => q(kwv),
+ q(3713) => q(kww),
+ q(3714) => q(kwx),
+ q(3715) => q(kwy),
+ q(3716) => q(kwz),
+ q(3717) => q(kxa),
+ q(3718) => q(kxb),
+ q(3719) => q(kxc),
+ q(3720) => q(kxd),
+ q(3721) => q(kxf),
+ q(3722) => q(kxh),
+ q(3723) => q(kxi),
+ q(3724) => q(kxj),
+ q(3725) => q(kxk),
+ q(3726) => q(kxl),
+ q(3727) => q(kxm),
+ q(3728) => q(kxn),
+ q(3729) => q(kxo),
+ q(3730) => q(kxp),
+ q(3731) => q(kxq),
+ q(3732) => q(kxr),
+ q(3733) => q(kxs),
+ q(3734) => q(kxt),
+ q(3735) => q(kxu),
+ q(3736) => q(kxv),
+ q(3737) => q(kxw),
+ q(3738) => q(kxx),
+ q(3739) => q(kxy),
+ q(3740) => q(kxz),
+ q(3741) => q(kya),
+ q(3742) => q(kyb),
+ q(3743) => q(kyc),
+ q(3744) => q(kyd),
+ q(3745) => q(kye),
+ q(3746) => q(kyf),
+ q(3747) => q(kyg),
+ q(3748) => q(kyh),
+ q(3749) => q(kyi),
+ q(3750) => q(kyj),
+ q(3751) => q(kyk),
+ q(3752) => q(kyl),
+ q(3753) => q(kym),
+ q(3754) => q(kyn),
+ q(3755) => q(kyo),
+ q(3756) => q(kyp),
+ q(3757) => q(kyq),
+ q(3758) => q(kyr),
+ q(3759) => q(kys),
+ q(3760) => q(kyt),
+ q(3761) => q(kyu),
+ q(3762) => q(kyv),
+ q(3763) => q(kyw),
+ q(3764) => q(kyx),
+ q(3765) => q(kyy),
+ q(3766) => q(kyz),
+ q(3767) => q(kza),
+ q(3768) => q(kzb),
+ q(3769) => q(kzc),
+ q(3770) => q(kzd),
+ q(3771) => q(kze),
+ q(3772) => q(kzf),
+ q(3773) => q(kzg),
+ q(3774) => q(kzi),
+ q(3775) => q(kzj),
+ q(3776) => q(kzk),
+ q(3777) => q(kzl),
+ q(3778) => q(kzm),
+ q(3779) => q(kzn),
+ q(3780) => q(kzo),
+ q(3781) => q(kzp),
+ q(3782) => q(kzq),
+ q(3783) => q(kzr),
+ q(3784) => q(kzs),
+ q(3785) => q(kzt),
+ q(3786) => q(kzu),
+ q(3787) => q(kzv),
+ q(3788) => q(kzw),
+ q(3789) => q(kzx),
+ q(3790) => q(kzy),
+ q(3791) => q(kzz),
+ q(3792) => q(laa),
+ q(3793) => q(lab),
+ q(3794) => q(lac),
+ q(3795) => q(lae),
+ q(3796) => q(laf),
+ q(3797) => q(lag),
+ q(3798) => q(lai),
+ q(3799) => q(laj),
+ q(3800) => q(lak),
+ q(3801) => q(lal),
+ q(3802) => q(lan),
+ q(3803) => q(lap),
+ q(3804) => q(laq),
+ q(3805) => q(lar),
+ q(3806) => q(las),
+ q(3807) => q(lau),
+ q(3808) => q(law),
+ q(3809) => q(lax),
+ q(3810) => q(lay),
+ q(3811) => q(laz),
+ q(3812) => q(lba),
+ q(3813) => q(lbb),
+ q(3814) => q(lbc),
+ q(3815) => q(lbe),
+ q(3816) => q(lbf),
+ q(3817) => q(lbg),
+ q(3818) => q(lbi),
+ q(3819) => q(lbj),
+ q(3820) => q(lbk),
+ q(3821) => q(lbl),
+ q(3822) => q(lbm),
+ q(3823) => q(lbn),
+ q(3824) => q(lbo),
+ q(3825) => q(lbq),
+ q(3826) => q(lbr),
+ q(3827) => q(lbs),
+ q(3828) => q(lbt),
+ q(3829) => q(lbu),
+ q(3830) => q(lbv),
+ q(3831) => q(lbw),
+ q(3832) => q(lbx),
+ q(3833) => q(lby),
+ q(3834) => q(lbz),
+ q(3835) => q(lcc),
+ q(3836) => q(lcd),
+ q(3837) => q(lce),
+ q(3838) => q(lcf),
+ q(3839) => q(lch),
+ q(3840) => q(lcl),
+ q(3841) => q(lcm),
+ q(3842) => q(lcp),
+ q(3843) => q(lcq),
+ q(3844) => q(lcs),
+ q(3845) => q(lda),
+ q(3846) => q(ldb),
+ q(3847) => q(ldd),
+ q(3848) => q(ldg),
+ q(3849) => q(ldh),
+ q(3850) => q(ldi),
+ q(3851) => q(ldj),
+ q(3852) => q(ldk),
+ q(3853) => q(ldl),
+ q(3854) => q(ldm),
+ q(3855) => q(ldn),
+ q(3856) => q(ldo),
+ q(3857) => q(ldp),
+ q(3858) => q(ldq),
+ q(3859) => q(lea),
+ q(3860) => q(leb),
+ q(3861) => q(lec),
+ q(3862) => q(led),
+ q(3863) => q(lee),
+ q(3864) => q(lef),
+ q(3865) => q(leh),
+ q(3866) => q(lei),
+ q(3867) => q(lej),
+ q(3868) => q(lek),
+ q(3869) => q(lel),
+ q(3870) => q(lem),
+ q(3871) => q(len),
+ q(3872) => q(leo),
+ q(3873) => q(lep),
+ q(3874) => q(leq),
+ q(3875) => q(ler),
+ q(3876) => q(les),
+ q(3877) => q(let),
+ q(3878) => q(leu),
+ q(3879) => q(lev),
+ q(3880) => q(lew),
+ q(3881) => q(lex),
+ q(3882) => q(ley),
+ q(3883) => q(lfa),
+ q(3884) => q(lfn),
+ q(3885) => q(lga),
+ q(3886) => q(lgb),
+ q(3887) => q(lgg),
+ q(3888) => q(lgh),
+ q(3889) => q(lgi),
+ q(3890) => q(lgk),
+ q(3891) => q(lgl),
+ q(3892) => q(lgm),
+ q(3893) => q(lgn),
+ q(3894) => q(lgq),
+ q(3895) => q(lgr),
+ q(3896) => q(lgt),
+ q(3897) => q(lgu),
+ q(3898) => q(lgz),
+ q(3899) => q(lha),
+ q(3900) => q(lhh),
+ q(3901) => q(lhi),
+ q(3902) => q(lhl),
+ q(3903) => q(lhm),
+ q(3904) => q(lhn),
+ q(3905) => q(lhp),
+ q(3906) => q(lhs),
+ q(3907) => q(lht),
+ q(3908) => q(lhu),
+ q(3909) => q(lia),
+ q(3910) => q(lib),
+ q(3911) => q(lic),
+ q(3912) => q(lid),
+ q(3913) => q(lie),
+ q(3914) => q(lif),
+ q(3915) => q(lig),
+ q(3916) => q(lih),
+ q(3917) => q(lij),
+ q(3918) => q(lik),
+ q(3919) => q(lil),
+ q(3920) => q(lio),
+ q(3921) => q(lip),
+ q(3922) => q(liq),
+ q(3923) => q(lir),
+ q(3924) => q(lis),
+ q(3925) => q(liu),
+ q(3926) => q(liv),
+ q(3927) => q(liw),
+ q(3928) => q(lix),
+ q(3929) => q(liy),
+ q(3930) => q(liz),
+ q(3931) => q(lja),
+ q(3932) => q(lje),
+ q(3933) => q(lji),
+ q(3934) => q(ljl),
+ q(3935) => q(ljp),
+ q(3936) => q(ljw),
+ q(3937) => q(ljx),
+ q(3938) => q(lka),
+ q(3939) => q(lkb),
+ q(3940) => q(lkc),
+ q(3941) => q(lkd),
+ q(3942) => q(lke),
+ q(3943) => q(lkh),
+ q(3944) => q(lki),
+ q(3945) => q(lkj),
+ q(3946) => q(lkl),
+ q(3947) => q(lkm),
+ q(3948) => q(lkn),
+ q(3949) => q(lko),
+ q(3950) => q(lkr),
+ q(3951) => q(lks),
+ q(3952) => q(lkt),
+ q(3953) => q(lku),
+ q(3954) => q(lky),
+ q(3955) => q(lla),
+ q(3956) => q(llb),
+ q(3957) => q(llc),
+ q(3958) => q(lld),
+ q(3959) => q(lle),
+ q(3960) => q(llf),
+ q(3961) => q(llg),
+ q(3962) => q(llh),
+ q(3963) => q(lli),
+ q(3964) => q(llj),
+ q(3965) => q(llk),
+ q(3966) => q(lll),
+ q(3967) => q(llm),
+ q(3968) => q(lln),
+ q(3969) => q(llo),
+ q(3970) => q(llp),
+ q(3971) => q(llq),
+ q(3972) => q(lls),
+ q(3973) => q(llu),
+ q(3974) => q(llx),
+ q(3975) => q(lma),
+ q(3976) => q(lmb),
+ q(3977) => q(lmc),
+ q(3978) => q(lmd),
+ q(3979) => q(lme),
+ q(3980) => q(lmf),
+ q(3981) => q(lmg),
+ q(3982) => q(lmh),
+ q(3983) => q(lmi),
+ q(3984) => q(lmj),
+ q(3985) => q(lmk),
+ q(3986) => q(lml),
+ q(3987) => q(lmn),
+ q(3988) => q(lmo),
+ q(3989) => q(lmp),
+ q(3990) => q(lmq),
+ q(3991) => q(lmr),
+ q(3992) => q(lmu),
+ q(3993) => q(lmv),
+ q(3994) => q(lmw),
+ q(3995) => q(lmx),
+ q(3996) => q(lmy),
+ q(3997) => q(lmz),
+ q(3998) => q(lna),
+ q(3999) => q(lnb),
+ q(4000) => q(lnd),
+ q(4001) => q(lng),
+ q(4002) => q(lnh),
+ q(4003) => q(lni),
+ q(4004) => q(lnj),
+ q(4005) => q(lnl),
+ q(4006) => q(lnm),
+ q(4007) => q(lnn),
+ q(4008) => q(lno),
+ q(4009) => q(lns),
+ q(4010) => q(lnu),
+ q(4011) => q(lnw),
+ q(4012) => q(lnz),
+ q(4013) => q(loa),
+ q(4014) => q(lob),
+ q(4015) => q(loc),
+ q(4016) => q(loe),
+ q(4017) => q(lof),
+ q(4018) => q(log),
+ q(4019) => q(loh),
+ q(4020) => q(loi),
+ q(4021) => q(loj),
+ q(4022) => q(lok),
+ q(4023) => q(lom),
+ q(4024) => q(lon),
+ q(4025) => q(loo),
+ q(4026) => q(lop),
+ q(4027) => q(loq),
+ q(4028) => q(lor),
+ q(4029) => q(los),
+ q(4030) => q(lot),
+ q(4031) => q(lou),
+ q(4032) => q(lov),
+ q(4033) => q(low),
+ q(4034) => q(lox),
+ q(4035) => q(loy),
+ q(4036) => q(lpa),
+ q(4037) => q(lpe),
+ q(4038) => q(lpn),
+ q(4039) => q(lpo),
+ q(4040) => q(lpx),
+ q(4041) => q(lra),
+ q(4042) => q(lrc),
+ q(4043) => q(lre),
+ q(4044) => q(lrg),
+ q(4045) => q(lri),
+ q(4046) => q(lrk),
+ q(4047) => q(lrl),
+ q(4048) => q(lrm),
+ q(4049) => q(lrn),
+ q(4050) => q(lro),
+ q(4051) => q(lrr),
+ q(4052) => q(lrt),
+ q(4053) => q(lrv),
+ q(4054) => q(lrz),
+ q(4055) => q(lsa),
+ q(4056) => q(lsd),
+ q(4057) => q(lse),
+ q(4058) => q(lsg),
+ q(4059) => q(lsh),
+ q(4060) => q(lsi),
+ q(4061) => q(lsl),
+ q(4062) => q(lsm),
+ q(4063) => q(lso),
+ q(4064) => q(lsp),
+ q(4065) => q(lsr),
+ q(4066) => q(lss),
+ q(4067) => q(lst),
+ q(4068) => q(lsy),
+ q(4069) => q(ltc),
+ q(4070) => q(ltg),
+ q(4071) => q(lti),
+ q(4072) => q(ltn),
+ q(4073) => q(lto),
+ q(4074) => q(lts),
+ q(4075) => q(ltu),
+ q(4076) => q(luc),
+ q(4077) => q(lud),
+ q(4078) => q(lue),
+ q(4079) => q(luf),
+ q(4080) => q(luj),
+ q(4081) => q(luk),
+ q(4082) => q(lul),
+ q(4083) => q(lum),
+ q(4084) => q(lup),
+ q(4085) => q(luq),
+ q(4086) => q(lur),
+ q(4087) => q(lut),
+ q(4088) => q(luu),
+ q(4089) => q(luv),
+ q(4090) => q(luw),
+ q(4091) => q(luy),
+ q(4092) => q(luz),
+ q(4093) => q(lva),
+ q(4094) => q(lvk),
+ q(4095) => q(lvs),
+ q(4096) => q(lvu),
+ q(4097) => q(lwa),
+ q(4098) => q(lwe),
+ q(4099) => q(lwg),
+ q(4100) => q(lwh),
+ q(4101) => q(lwl),
+ q(4102) => q(lwm),
+ q(4103) => q(lwo),
+ q(4104) => q(lwt),
+ q(4105) => q(lwu),
+ q(4106) => q(lww),
+ q(4107) => q(lya),
+ q(4108) => q(lyg),
+ q(4109) => q(lyn),
+ q(4110) => q(lzh),
+ q(4111) => q(lzl),
+ q(4112) => q(lzn),
+ q(4113) => q(lzz),
+ q(4114) => q(maa),
+ q(4115) => q(mab),
+ q(4116) => q(mae),
+ q(4117) => q(maf),
+ q(4118) => q(maj),
+ q(4119) => q(mam),
+ q(4120) => q(maq),
+ q(4121) => q(mat),
+ q(4122) => q(mau),
+ q(4123) => q(mav),
+ q(4124) => q(maw),
+ q(4125) => q(max),
+ q(4126) => q(maz),
+ q(4127) => q(mba),
+ q(4128) => q(mbb),
+ q(4129) => q(mbc),
+ q(4130) => q(mbd),
+ q(4131) => q(mbe),
+ q(4132) => q(mbf),
+ q(4133) => q(mbh),
+ q(4134) => q(mbi),
+ q(4135) => q(mbj),
+ q(4136) => q(mbk),
+ q(4137) => q(mbl),
+ q(4138) => q(mbm),
+ q(4139) => q(mbn),
+ q(4140) => q(mbo),
+ q(4141) => q(mbp),
+ q(4142) => q(mbq),
+ q(4143) => q(mbr),
+ q(4144) => q(mbs),
+ q(4145) => q(mbt),
+ q(4146) => q(mbu),
+ q(4147) => q(mbv),
+ q(4148) => q(mbw),
+ q(4149) => q(mbx),
+ q(4150) => q(mby),
+ q(4151) => q(mbz),
+ q(4152) => q(mca),
+ q(4153) => q(mcb),
+ q(4154) => q(mcc),
+ q(4155) => q(mcd),
+ q(4156) => q(mce),
+ q(4157) => q(mcf),
+ q(4158) => q(mcg),
+ q(4159) => q(mch),
+ q(4160) => q(mci),
+ q(4161) => q(mcj),
+ q(4162) => q(mck),
+ q(4163) => q(mcl),
+ q(4164) => q(mcm),
+ q(4165) => q(mcn),
+ q(4166) => q(mco),
+ q(4167) => q(mcp),
+ q(4168) => q(mcq),
+ q(4169) => q(mcr),
+ q(4170) => q(mcs),
+ q(4171) => q(mct),
+ q(4172) => q(mcu),
+ q(4173) => q(mcv),
+ q(4174) => q(mcw),
+ q(4175) => q(mcx),
+ q(4176) => q(mcy),
+ q(4177) => q(mcz),
+ q(4178) => q(mda),
+ q(4179) => q(mdb),
+ q(4180) => q(mdc),
+ q(4181) => q(mdd),
+ q(4182) => q(mde),
+ q(4183) => q(mdg),
+ q(4184) => q(mdh),
+ q(4185) => q(mdi),
+ q(4186) => q(mdj),
+ q(4187) => q(mdk),
+ q(4188) => q(mdl),
+ q(4189) => q(mdm),
+ q(4190) => q(mdn),
+ q(4191) => q(mdp),
+ q(4192) => q(mdq),
+ q(4193) => q(mds),
+ q(4194) => q(mdt),
+ q(4195) => q(mdu),
+ q(4196) => q(mdv),
+ q(4197) => q(mdw),
+ q(4198) => q(mdx),
+ q(4199) => q(mdy),
+ q(4200) => q(mdz),
+ q(4201) => q(mea),
+ q(4202) => q(meb),
+ q(4203) => q(mec),
+ q(4204) => q(med),
+ q(4205) => q(mee),
+ q(4206) => q(mef),
+ q(4207) => q(meh),
+ q(4208) => q(mei),
+ q(4209) => q(mej),
+ q(4210) => q(mek),
+ q(4211) => q(mel),
+ q(4212) => q(mem),
+ q(4213) => q(meo),
+ q(4214) => q(mep),
+ q(4215) => q(meq),
+ q(4216) => q(mer),
+ q(4217) => q(mes),
+ q(4218) => q(met),
+ q(4219) => q(meu),
+ q(4220) => q(mev),
+ q(4221) => q(mew),
+ q(4222) => q(mey),
+ q(4223) => q(mez),
+ q(4224) => q(mfa),
+ q(4225) => q(mfb),
+ q(4226) => q(mfc),
+ q(4227) => q(mfd),
+ q(4228) => q(mfe),
+ q(4229) => q(mff),
+ q(4230) => q(mfg),
+ q(4231) => q(mfh),
+ q(4232) => q(mfi),
+ q(4233) => q(mfj),
+ q(4234) => q(mfk),
+ q(4235) => q(mfl),
+ q(4236) => q(mfm),
+ q(4237) => q(mfn),
+ q(4238) => q(mfo),
+ q(4239) => q(mfp),
+ q(4240) => q(mfq),
+ q(4241) => q(mfr),
+ q(4242) => q(mfs),
+ q(4243) => q(mft),
+ q(4244) => q(mfu),
+ q(4245) => q(mfv),
+ q(4246) => q(mfw),
+ q(4247) => q(mfx),
+ q(4248) => q(mfy),
+ q(4249) => q(mfz),
+ q(4250) => q(mgb),
+ q(4251) => q(mgc),
+ q(4252) => q(mgd),
+ q(4253) => q(mge),
+ q(4254) => q(mgf),
+ q(4255) => q(mgg),
+ q(4256) => q(mgh),
+ q(4257) => q(mgi),
+ q(4258) => q(mgj),
+ q(4259) => q(mgk),
+ q(4260) => q(mgl),
+ q(4261) => q(mgm),
+ q(4262) => q(mgn),
+ q(4263) => q(mgo),
+ q(4264) => q(mgp),
+ q(4265) => q(mgq),
+ q(4266) => q(mgr),
+ q(4267) => q(mgs),
+ q(4268) => q(mgt),
+ q(4269) => q(mgu),
+ q(4270) => q(mgv),
+ q(4271) => q(mgw),
+ q(4272) => q(mgy),
+ q(4273) => q(mgz),
+ q(4274) => q(mha),
+ q(4275) => q(mhb),
+ q(4276) => q(mhc),
+ q(4277) => q(mhd),
+ q(4278) => q(mhe),
+ q(4279) => q(mhf),
+ q(4280) => q(mhg),
+ q(4281) => q(mhi),
+ q(4282) => q(mhj),
+ q(4283) => q(mhk),
+ q(4284) => q(mhl),
+ q(4285) => q(mhm),
+ q(4286) => q(mhn),
+ q(4287) => q(mho),
+ q(4288) => q(mhp),
+ q(4289) => q(mhq),
+ q(4290) => q(mhr),
+ q(4291) => q(mhs),
+ q(4292) => q(mht),
+ q(4293) => q(mhu),
+ q(4294) => q(mhw),
+ q(4295) => q(mhx),
+ q(4296) => q(mhy),
+ q(4297) => q(mhz),
+ q(4298) => q(mia),
+ q(4299) => q(mib),
+ q(4300) => q(mid),
+ q(4301) => q(mie),
+ q(4302) => q(mif),
+ q(4303) => q(mig),
+ q(4304) => q(mih),
+ q(4305) => q(mii),
+ q(4306) => q(mij),
+ q(4307) => q(mik),
+ q(4308) => q(mil),
+ q(4309) => q(mim),
+ q(4310) => q(mio),
+ q(4311) => q(mip),
+ q(4312) => q(miq),
+ q(4313) => q(mir),
+ q(4314) => q(mit),
+ q(4315) => q(miu),
+ q(4316) => q(miw),
+ q(4317) => q(mix),
+ q(4318) => q(miy),
+ q(4319) => q(miz),
+ q(4320) => q(mjc),
+ q(4321) => q(mjd),
+ q(4322) => q(mje),
+ q(4323) => q(mjg),
+ q(4324) => q(mjh),
+ q(4325) => q(mji),
+ q(4326) => q(mjj),
+ q(4327) => q(mjk),
+ q(4328) => q(mjl),
+ q(4329) => q(mjm),
+ q(4330) => q(mjn),
+ q(4331) => q(mjo),
+ q(4332) => q(mjp),
+ q(4333) => q(mjq),
+ q(4334) => q(mjr),
+ q(4335) => q(mjs),
+ q(4336) => q(mjt),
+ q(4337) => q(mju),
+ q(4338) => q(mjv),
+ q(4339) => q(mjw),
+ q(4340) => q(mjx),
+ q(4341) => q(mjy),
+ q(4342) => q(mjz),
+ q(4343) => q(mka),
+ q(4344) => q(mkb),
+ q(4345) => q(mkc),
+ q(4346) => q(mke),
+ q(4347) => q(mkf),
+ q(4348) => q(mkg),
+ q(4349) => q(mki),
+ q(4350) => q(mkj),
+ q(4351) => q(mkk),
+ q(4352) => q(mkl),
+ q(4353) => q(mkm),
+ q(4354) => q(mkn),
+ q(4355) => q(mko),
+ q(4356) => q(mkp),
+ q(4357) => q(mkq),
+ q(4358) => q(mkr),
+ q(4359) => q(mks),
+ q(4360) => q(mkt),
+ q(4361) => q(mku),
+ q(4362) => q(mkv),
+ q(4363) => q(mkw),
+ q(4364) => q(mkx),
+ q(4365) => q(mky),
+ q(4366) => q(mkz),
+ q(4367) => q(mla),
+ q(4368) => q(mlb),
+ q(4369) => q(mlc),
+ q(4370) => q(mle),
+ q(4371) => q(mlf),
+ q(4372) => q(mlh),
+ q(4373) => q(mli),
+ q(4374) => q(mlj),
+ q(4375) => q(mlk),
+ q(4376) => q(mll),
+ q(4377) => q(mlm),
+ q(4378) => q(mln),
+ q(4379) => q(mlo),
+ q(4380) => q(mlp),
+ q(4381) => q(mlq),
+ q(4382) => q(mlr),
+ q(4383) => q(mls),
+ q(4384) => q(mlu),
+ q(4385) => q(mlv),
+ q(4386) => q(mlw),
+ q(4387) => q(mlx),
+ q(4388) => q(mlz),
+ q(4389) => q(mma),
+ q(4390) => q(mmb),
+ q(4391) => q(mmc),
+ q(4392) => q(mmd),
+ q(4393) => q(mme),
+ q(4394) => q(mmf),
+ q(4395) => q(mmg),
+ q(4396) => q(mmh),
+ q(4397) => q(mmi),
+ q(4398) => q(mmj),
+ q(4399) => q(mmk),
+ q(4400) => q(mml),
+ q(4401) => q(mmm),
+ q(4402) => q(mmn),
+ q(4403) => q(mmo),
+ q(4404) => q(mmp),
+ q(4405) => q(mmq),
+ q(4406) => q(mmr),
+ q(4407) => q(mmt),
+ q(4408) => q(mmu),
+ q(4409) => q(mmv),
+ q(4410) => q(mmw),
+ q(4411) => q(mmx),
+ q(4412) => q(mmy),
+ q(4413) => q(mmz),
+ q(4414) => q(mna),
+ q(4415) => q(mnb),
+ q(4416) => q(mnd),
+ q(4417) => q(mne),
+ q(4418) => q(mnf),
+ q(4419) => q(mng),
+ q(4420) => q(mnh),
+ q(4421) => q(mnj),
+ q(4422) => q(mnk),
+ q(4423) => q(mnl),
+ q(4424) => q(mnm),
+ q(4425) => q(mnn),
+ q(4426) => q(mnp),
+ q(4427) => q(mnq),
+ q(4428) => q(mnr),
+ q(4429) => q(mns),
+ q(4430) => q(mnu),
+ q(4431) => q(mnv),
+ q(4432) => q(mnw),
+ q(4433) => q(mnx),
+ q(4434) => q(mny),
+ q(4435) => q(mnz),
+ q(4436) => q(moa),
+ q(4437) => q(moc),
+ q(4438) => q(mod),
+ q(4439) => q(moe),
+ q(4440) => q(mog),
+ q(4441) => q(moi),
+ q(4442) => q(moj),
+ q(4443) => q(mok),
+ q(4444) => q(mom),
+ q(4445) => q(moo),
+ q(4446) => q(mop),
+ q(4447) => q(moq),
+ q(4448) => q(mor),
+ q(4449) => q(mou),
+ q(4450) => q(mov),
+ q(4451) => q(mow),
+ q(4452) => q(mox),
+ q(4453) => q(moy),
+ q(4454) => q(moz),
+ q(4455) => q(mpa),
+ q(4456) => q(mpb),
+ q(4457) => q(mpc),
+ q(4458) => q(mpd),
+ q(4459) => q(mpe),
+ q(4460) => q(mpg),
+ q(4461) => q(mph),
+ q(4462) => q(mpi),
+ q(4463) => q(mpj),
+ q(4464) => q(mpk),
+ q(4465) => q(mpl),
+ q(4466) => q(mpm),
+ q(4467) => q(mpn),
+ q(4468) => q(mpo),
+ q(4469) => q(mpp),
+ q(4470) => q(mpq),
+ q(4471) => q(mpr),
+ q(4472) => q(mps),
+ q(4473) => q(mpt),
+ q(4474) => q(mpu),
+ q(4475) => q(mpv),
+ q(4476) => q(mpw),
+ q(4477) => q(mpx),
+ q(4478) => q(mpy),
+ q(4479) => q(mpz),
+ q(4480) => q(mqa),
+ q(4481) => q(mqb),
+ q(4482) => q(mqc),
+ q(4483) => q(mqe),
+ q(4484) => q(mqf),
+ q(4485) => q(mqg),
+ q(4486) => q(mqh),
+ q(4487) => q(mqi),
+ q(4488) => q(mqj),
+ q(4489) => q(mqk),
+ q(4490) => q(mql),
+ q(4491) => q(mqm),
+ q(4492) => q(mqn),
+ q(4493) => q(mqo),
+ q(4494) => q(mqp),
+ q(4495) => q(mqq),
+ q(4496) => q(mqr),
+ q(4497) => q(mqs),
+ q(4498) => q(mqt),
+ q(4499) => q(mqu),
+ q(4500) => q(mqv),
+ q(4501) => q(mqw),
+ q(4502) => q(mqx),
+ q(4503) => q(mqy),
+ q(4504) => q(mqz),
+ q(4505) => q(mra),
+ q(4506) => q(mrb),
+ q(4507) => q(mrc),
+ q(4508) => q(mrd),
+ q(4509) => q(mre),
+ q(4510) => q(mrf),
+ q(4511) => q(mrg),
+ q(4512) => q(mrh),
+ q(4513) => q(mrj),
+ q(4514) => q(mrk),
+ q(4515) => q(mrl),
+ q(4516) => q(mrm),
+ q(4517) => q(mrn),
+ q(4518) => q(mro),
+ q(4519) => q(mrp),
+ q(4520) => q(mrq),
+ q(4521) => q(mrr),
+ q(4522) => q(mrs),
+ q(4523) => q(mrt),
+ q(4524) => q(mru),
+ q(4525) => q(mrv),
+ q(4526) => q(mrw),
+ q(4527) => q(mrx),
+ q(4528) => q(mry),
+ q(4529) => q(mrz),
+ q(4530) => q(msb),
+ q(4531) => q(msc),
+ q(4532) => q(msd),
+ q(4533) => q(mse),
+ q(4534) => q(msf),
+ q(4535) => q(msg),
+ q(4536) => q(msh),
+ q(4537) => q(msi),
+ q(4538) => q(msj),
+ q(4539) => q(msk),
+ q(4540) => q(msl),
+ q(4541) => q(msm),
+ q(4542) => q(msn),
+ q(4543) => q(mso),
+ q(4544) => q(msp),
+ q(4545) => q(msq),
+ q(4546) => q(msr),
+ q(4547) => q(mss),
+ q(4548) => q(msu),
+ q(4549) => q(msv),
+ q(4550) => q(msw),
+ q(4551) => q(msx),
+ q(4552) => q(msy),
+ q(4553) => q(msz),
+ q(4554) => q(mta),
+ q(4555) => q(mtb),
+ q(4556) => q(mtc),
+ q(4557) => q(mtd),
+ q(4558) => q(mte),
+ q(4559) => q(mtf),
+ q(4560) => q(mtg),
+ q(4561) => q(mth),
+ q(4562) => q(mti),
+ q(4563) => q(mtj),
+ q(4564) => q(mtk),
+ q(4565) => q(mtl),
+ q(4566) => q(mtm),
+ q(4567) => q(mtn),
+ q(4568) => q(mto),
+ q(4569) => q(mtp),
+ q(4570) => q(mtq),
+ q(4571) => q(mtr),
+ q(4572) => q(mts),
+ q(4573) => q(mtt),
+ q(4574) => q(mtu),
+ q(4575) => q(mtv),
+ q(4576) => q(mtw),
+ q(4577) => q(mtx),
+ q(4578) => q(mty),
+ q(4579) => q(mua),
+ q(4580) => q(mub),
+ q(4581) => q(muc),
+ q(4582) => q(mud),
+ q(4583) => q(mue),
+ q(4584) => q(mug),
+ q(4585) => q(muh),
+ q(4586) => q(mui),
+ q(4587) => q(muj),
+ q(4588) => q(muk),
+ q(4589) => q(mum),
+ q(4590) => q(muo),
+ q(4591) => q(mup),
+ q(4592) => q(muq),
+ q(4593) => q(mur),
+ q(4594) => q(mut),
+ q(4595) => q(muu),
+ q(4596) => q(muv),
+ q(4597) => q(mux),
+ q(4598) => q(muy),
+ q(4599) => q(muz),
+ q(4600) => q(mva),
+ q(4601) => q(mvb),
+ q(4602) => q(mvd),
+ q(4603) => q(mve),
+ q(4604) => q(mvf),
+ q(4605) => q(mvg),
+ q(4606) => q(mvh),
+ q(4607) => q(mvi),
+ q(4608) => q(mvk),
+ q(4609) => q(mvl),
+ q(4610) => q(mvm),
+ q(4611) => q(mvn),
+ q(4612) => q(mvo),
+ q(4613) => q(mvp),
+ q(4614) => q(mvq),
+ q(4615) => q(mvr),
+ q(4616) => q(mvs),
+ q(4617) => q(mvt),
+ q(4618) => q(mvu),
+ q(4619) => q(mvv),
+ q(4620) => q(mvw),
+ q(4621) => q(mvx),
+ q(4622) => q(mvy),
+ q(4623) => q(mvz),
+ q(4624) => q(mwa),
+ q(4625) => q(mwb),
+ q(4626) => q(mwc),
+ q(4627) => q(mwe),
+ q(4628) => q(mwf),
+ q(4629) => q(mwg),
+ q(4630) => q(mwh),
+ q(4631) => q(mwi),
+ q(4632) => q(mwk),
+ q(4633) => q(mwm),
+ q(4634) => q(mwn),
+ q(4635) => q(mwo),
+ q(4636) => q(mwp),
+ q(4637) => q(mwq),
+ q(4638) => q(mws),
+ q(4639) => q(mwt),
+ q(4640) => q(mwu),
+ q(4641) => q(mwv),
+ q(4642) => q(mww),
+ q(4643) => q(mwx),
+ q(4644) => q(mwy),
+ q(4645) => q(mwz),
+ q(4646) => q(mxa),
+ q(4647) => q(mxb),
+ q(4648) => q(mxc),
+ q(4649) => q(mxd),
+ q(4650) => q(mxe),
+ q(4651) => q(mxf),
+ q(4652) => q(mxg),
+ q(4653) => q(mxh),
+ q(4654) => q(mxi),
+ q(4655) => q(mxj),
+ q(4656) => q(mxk),
+ q(4657) => q(mxl),
+ q(4658) => q(mxm),
+ q(4659) => q(mxn),
+ q(4660) => q(mxo),
+ q(4661) => q(mxp),
+ q(4662) => q(mxq),
+ q(4663) => q(mxr),
+ q(4664) => q(mxs),
+ q(4665) => q(mxt),
+ q(4666) => q(mxu),
+ q(4667) => q(mxv),
+ q(4668) => q(mxw),
+ q(4669) => q(mxx),
+ q(4670) => q(mxy),
+ q(4671) => q(mxz),
+ q(4672) => q(myb),
+ q(4673) => q(myc),
+ q(4674) => q(myd),
+ q(4675) => q(mye),
+ q(4676) => q(myf),
+ q(4677) => q(myg),
+ q(4678) => q(myh),
+ q(4679) => q(myi),
+ q(4680) => q(myj),
+ q(4681) => q(myk),
+ q(4682) => q(myl),
+ q(4683) => q(mym),
+ q(4684) => q(myo),
+ q(4685) => q(myp),
+ q(4686) => q(myr),
+ q(4687) => q(mys),
+ q(4688) => q(myu),
+ q(4689) => q(myw),
+ q(4690) => q(myx),
+ q(4691) => q(myy),
+ q(4692) => q(myz),
+ q(4693) => q(mza),
+ q(4694) => q(mzb),
+ q(4695) => q(mzc),
+ q(4696) => q(mzd),
+ q(4697) => q(mze),
+ q(4698) => q(mzg),
+ q(4699) => q(mzh),
+ q(4700) => q(mzi),
+ q(4701) => q(mzj),
+ q(4702) => q(mzk),
+ q(4703) => q(mzl),
+ q(4704) => q(mzm),
+ q(4705) => q(mzn),
+ q(4706) => q(mzo),
+ q(4707) => q(mzp),
+ q(4708) => q(mzq),
+ q(4709) => q(mzr),
+ q(4710) => q(mzs),
+ q(4711) => q(mzt),
+ q(4712) => q(mzu),
+ q(4713) => q(mzv),
+ q(4714) => q(mzw),
+ q(4715) => q(mzx),
+ q(4716) => q(mzy),
+ q(4717) => q(mzz),
+ q(4718) => q(naa),
+ q(4719) => q(nab),
+ q(4720) => q(nac),
+ q(4721) => q(nad),
+ q(4722) => q(nae),
+ q(4723) => q(naf),
+ q(4724) => q(nag),
+ q(4725) => q(naj),
+ q(4726) => q(nak),
+ q(4727) => q(nal),
+ q(4728) => q(nam),
+ q(4729) => q(nan),
+ q(4730) => q(nao),
+ q(4731) => q(naq),
+ q(4732) => q(nar),
+ q(4733) => q(nas),
+ q(4734) => q(nat),
+ q(4735) => q(naw),
+ q(4736) => q(nax),
+ q(4737) => q(nay),
+ q(4738) => q(naz),
+ q(4739) => q(nba),
+ q(4740) => q(nbb),
+ q(4741) => q(nbc),
+ q(4742) => q(nbd),
+ q(4743) => q(nbe),
+ q(4744) => q(nbg),
+ q(4745) => q(nbh),
+ q(4746) => q(nbi),
+ q(4747) => q(nbj),
+ q(4748) => q(nbk),
+ q(4749) => q(nbm),
+ q(4750) => q(nbn),
+ q(4751) => q(nbo),
+ q(4752) => q(nbp),
+ q(4753) => q(nbq),
+ q(4754) => q(nbr),
+ q(4755) => q(nbs),
+ q(4756) => q(nbt),
+ q(4757) => q(nbu),
+ q(4758) => q(nbv),
+ q(4759) => q(nbw),
+ q(4760) => q(nby),
+ q(4761) => q(nca),
+ q(4762) => q(ncb),
+ q(4763) => q(ncc),
+ q(4764) => q(ncd),
+ q(4765) => q(nce),
+ q(4766) => q(ncf),
+ q(4767) => q(ncg),
+ q(4768) => q(nch),
+ q(4769) => q(nci),
+ q(4770) => q(ncj),
+ q(4771) => q(nck),
+ q(4772) => q(ncl),
+ q(4773) => q(ncm),
+ q(4774) => q(ncn),
+ q(4775) => q(nco),
+ q(4776) => q(ncp),
+ q(4777) => q(ncr),
+ q(4778) => q(ncs),
+ q(4779) => q(nct),
+ q(4780) => q(ncu),
+ q(4781) => q(ncx),
+ q(4782) => q(ncz),
+ q(4783) => q(nda),
+ q(4784) => q(ndb),
+ q(4785) => q(ndc),
+ q(4786) => q(ndd),
+ q(4787) => q(ndf),
+ q(4788) => q(ndg),
+ q(4789) => q(ndh),
+ q(4790) => q(ndi),
+ q(4791) => q(ndj),
+ q(4792) => q(ndk),
+ q(4793) => q(ndl),
+ q(4794) => q(ndm),
+ q(4795) => q(ndn),
+ q(4796) => q(ndp),
+ q(4797) => q(ndq),
+ q(4798) => q(ndr),
+ q(4799) => q(ndt),
+ q(4800) => q(ndu),
+ q(4801) => q(ndv),
+ q(4802) => q(ndw),
+ q(4803) => q(ndx),
+ q(4804) => q(ndy),
+ q(4805) => q(ndz),
+ q(4806) => q(nea),
+ q(4807) => q(neb),
+ q(4808) => q(nec),
+ q(4809) => q(ned),
+ q(4810) => q(nee),
+ q(4811) => q(nef),
+ q(4812) => q(neg),
+ q(4813) => q(neh),
+ q(4814) => q(nei),
+ q(4815) => q(nej),
+ q(4816) => q(nek),
+ q(4817) => q(nem),
+ q(4818) => q(nen),
+ q(4819) => q(neo),
+ q(4820) => q(neq),
+ q(4821) => q(ner),
+ q(4822) => q(nes),
+ q(4823) => q(net),
+ q(4824) => q(neu),
+ q(4825) => q(nev),
+ q(4826) => q(nex),
+ q(4827) => q(ney),
+ q(4828) => q(nez),
+ q(4829) => q(nfa),
+ q(4830) => q(nfd),
+ q(4831) => q(nfl),
+ q(4832) => q(nfr),
+ q(4833) => q(nfu),
+ q(4834) => q(nga),
+ q(4835) => q(ngb),
+ q(4836) => q(ngc),
+ q(4837) => q(ngd),
+ q(4838) => q(nge),
+ q(4839) => q(ngg),
+ q(4840) => q(ngh),
+ q(4841) => q(ngi),
+ q(4842) => q(ngj),
+ q(4843) => q(ngk),
+ q(4844) => q(ngl),
+ q(4845) => q(ngm),
+ q(4846) => q(ngn),
+ q(4847) => q(ngo),
+ q(4848) => q(ngp),
+ q(4849) => q(ngq),
+ q(4850) => q(ngr),
+ q(4851) => q(ngs),
+ q(4852) => q(ngt),
+ q(4853) => q(ngu),
+ q(4854) => q(ngv),
+ q(4855) => q(ngw),
+ q(4856) => q(ngx),
+ q(4857) => q(ngy),
+ q(4858) => q(ngz),
+ q(4859) => q(nha),
+ q(4860) => q(nhb),
+ q(4861) => q(nhc),
+ q(4862) => q(nhd),
+ q(4863) => q(nhe),
+ q(4864) => q(nhf),
+ q(4865) => q(nhg),
+ q(4866) => q(nhh),
+ q(4867) => q(nhi),
+ q(4868) => q(nhk),
+ q(4869) => q(nhm),
+ q(4870) => q(nhn),
+ q(4871) => q(nho),
+ q(4872) => q(nhp),
+ q(4873) => q(nhq),
+ q(4874) => q(nhr),
+ q(4875) => q(nht),
+ q(4876) => q(nhu),
+ q(4877) => q(nhv),
+ q(4878) => q(nhw),
+ q(4879) => q(nhx),
+ q(4880) => q(nhy),
+ q(4881) => q(nhz),
+ q(4882) => q(nib),
+ q(4883) => q(nid),
+ q(4884) => q(nie),
+ q(4885) => q(nif),
+ q(4886) => q(nig),
+ q(4887) => q(nih),
+ q(4888) => q(nii),
+ q(4889) => q(nij),
+ q(4890) => q(nik),
+ q(4891) => q(nil),
+ q(4892) => q(nim),
+ q(4893) => q(nin),
+ q(4894) => q(nio),
+ q(4895) => q(niq),
+ q(4896) => q(nir),
+ q(4897) => q(nis),
+ q(4898) => q(nit),
+ q(4899) => q(niv),
+ q(4900) => q(niw),
+ q(4901) => q(nix),
+ q(4902) => q(niy),
+ q(4903) => q(niz),
+ q(4904) => q(nja),
+ q(4905) => q(njb),
+ q(4906) => q(njd),
+ q(4907) => q(njh),
+ q(4908) => q(nji),
+ q(4909) => q(njj),
+ q(4910) => q(njl),
+ q(4911) => q(njm),
+ q(4912) => q(njn),
+ q(4913) => q(njo),
+ q(4914) => q(njr),
+ q(4915) => q(njs),
+ q(4916) => q(njt),
+ q(4917) => q(nju),
+ q(4918) => q(njx),
+ q(4919) => q(njy),
+ q(4920) => q(njz),
+ q(4921) => q(nka),
+ q(4922) => q(nkb),
+ q(4923) => q(nkc),
+ q(4924) => q(nkd),
+ q(4925) => q(nke),
+ q(4926) => q(nkf),
+ q(4927) => q(nkg),
+ q(4928) => q(nkh),
+ q(4929) => q(nki),
+ q(4930) => q(nkj),
+ q(4931) => q(nkk),
+ q(4932) => q(nkm),
+ q(4933) => q(nkn),
+ q(4934) => q(nko),
+ q(4935) => q(nkp),
+ q(4936) => q(nkq),
+ q(4937) => q(nkr),
+ q(4938) => q(nks),
+ q(4939) => q(nkt),
+ q(4940) => q(nku),
+ q(4941) => q(nkv),
+ q(4942) => q(nkw),
+ q(4943) => q(nkx),
+ q(4944) => q(nkz),
+ q(4945) => q(nla),
+ q(4946) => q(nlc),
+ q(4947) => q(nle),
+ q(4948) => q(nlg),
+ q(4949) => q(nli),
+ q(4950) => q(nlj),
+ q(4951) => q(nlk),
+ q(4952) => q(nll),
+ q(4953) => q(nlo),
+ q(4954) => q(nlq),
+ q(4955) => q(nlu),
+ q(4956) => q(nlv),
+ q(4957) => q(nlw),
+ q(4958) => q(nlx),
+ q(4959) => q(nly),
+ q(4960) => q(nlz),
+ q(4961) => q(nma),
+ q(4962) => q(nmb),
+ q(4963) => q(nmc),
+ q(4964) => q(nmd),
+ q(4965) => q(nme),
+ q(4966) => q(nmf),
+ q(4967) => q(nmg),
+ q(4968) => q(nmh),
+ q(4969) => q(nmi),
+ q(4970) => q(nmj),
+ q(4971) => q(nmk),
+ q(4972) => q(nml),
+ q(4973) => q(nmm),
+ q(4974) => q(nmn),
+ q(4975) => q(nmo),
+ q(4976) => q(nmp),
+ q(4977) => q(nmq),
+ q(4978) => q(nmr),
+ q(4979) => q(nms),
+ q(4980) => q(nmt),
+ q(4981) => q(nmu),
+ q(4982) => q(nmv),
+ q(4983) => q(nmw),
+ q(4984) => q(nmx),
+ q(4985) => q(nmy),
+ q(4986) => q(nmz),
+ q(4987) => q(nna),
+ q(4988) => q(nnb),
+ q(4989) => q(nnc),
+ q(4990) => q(nnd),
+ q(4991) => q(nne),
+ q(4992) => q(nnf),
+ q(4993) => q(nng),
+ q(4994) => q(nnh),
+ q(4995) => q(nni),
+ q(4996) => q(nnj),
+ q(4997) => q(nnk),
+ q(4998) => q(nnl),
+ q(4999) => q(nnm),
+ q(5000) => q(nnn),
+ q(5001) => q(nnp),
+ q(5002) => q(nnq),
+ q(5003) => q(nnr),
+ q(5004) => q(nns),
+ q(5005) => q(nnt),
+ q(5006) => q(nnu),
+ q(5007) => q(nnv),
+ q(5008) => q(nnw),
+ q(5009) => q(nny),
+ q(5010) => q(nnz),
+ q(5011) => q(noa),
+ q(5012) => q(noc),
+ q(5013) => q(nod),
+ q(5014) => q(noe),
+ q(5015) => q(nof),
+ q(5016) => q(noh),
+ q(5017) => q(noi),
+ q(5018) => q(noj),
+ q(5019) => q(nok),
+ q(5020) => q(nol),
+ q(5021) => q(nom),
+ q(5022) => q(nop),
+ q(5023) => q(noq),
+ q(5024) => q(nos),
+ q(5025) => q(not),
+ q(5026) => q(nou),
+ q(5027) => q(nov),
+ q(5028) => q(now),
+ q(5029) => q(noy),
+ q(5030) => q(noz),
+ q(5031) => q(npa),
+ q(5032) => q(npb),
+ q(5033) => q(npg),
+ q(5034) => q(nph),
+ q(5035) => q(npi),
+ q(5036) => q(npl),
+ q(5037) => q(npn),
+ q(5038) => q(npo),
+ q(5039) => q(nps),
+ q(5040) => q(npu),
+ q(5041) => q(npy),
+ q(5042) => q(nqg),
+ q(5043) => q(nqk),
+ q(5044) => q(nqm),
+ q(5045) => q(nqn),
+ q(5046) => q(nqq),
+ q(5047) => q(nqy),
+ q(5048) => q(nra),
+ q(5049) => q(nrb),
+ q(5050) => q(nrc),
+ q(5051) => q(nre),
+ q(5052) => q(nrf),
+ q(5053) => q(nrg),
+ q(5054) => q(nri),
+ q(5055) => q(nrk),
+ q(5056) => q(nrl),
+ q(5057) => q(nrm),
+ q(5058) => q(nrn),
+ q(5059) => q(nrp),
+ q(5060) => q(nrr),
+ q(5061) => q(nrt),
+ q(5062) => q(nru),
+ q(5063) => q(nrx),
+ q(5064) => q(nrz),
+ q(5065) => q(nsa),
+ q(5066) => q(nsc),
+ q(5067) => q(nsd),
+ q(5068) => q(nse),
+ q(5069) => q(nsf),
+ q(5070) => q(nsg),
+ q(5071) => q(nsh),
+ q(5072) => q(nsi),
+ q(5073) => q(nsk),
+ q(5074) => q(nsl),
+ q(5075) => q(nsm),
+ q(5076) => q(nsn),
+ q(5077) => q(nsp),
+ q(5078) => q(nsq),
+ q(5079) => q(nsr),
+ q(5080) => q(nss),
+ q(5081) => q(nst),
+ q(5082) => q(nsu),
+ q(5083) => q(nsv),
+ q(5084) => q(nsw),
+ q(5085) => q(nsx),
+ q(5086) => q(nsy),
+ q(5087) => q(nsz),
+ q(5088) => q(nte),
+ q(5089) => q(ntg),
+ q(5090) => q(nti),
+ q(5091) => q(ntj),
+ q(5092) => q(ntk),
+ q(5093) => q(ntm),
+ q(5094) => q(nto),
+ q(5095) => q(ntp),
+ q(5096) => q(ntr),
+ q(5097) => q(nts),
+ q(5098) => q(ntu),
+ q(5099) => q(ntw),
+ q(5100) => q(ntx),
+ q(5101) => q(nty),
+ q(5102) => q(ntz),
+ q(5103) => q(nua),
+ q(5104) => q(nuc),
+ q(5105) => q(nud),
+ q(5106) => q(nue),
+ q(5107) => q(nuf),
+ q(5108) => q(nug),
+ q(5109) => q(nuh),
+ q(5110) => q(nui),
+ q(5111) => q(nuj),
+ q(5112) => q(nuk),
+ q(5113) => q(nul),
+ q(5114) => q(num),
+ q(5115) => q(nun),
+ q(5116) => q(nuo),
+ q(5117) => q(nup),
+ q(5118) => q(nuq),
+ q(5119) => q(nur),
+ q(5120) => q(nus),
+ q(5121) => q(nut),
+ q(5122) => q(nuu),
+ q(5123) => q(nuv),
+ q(5124) => q(nuw),
+ q(5125) => q(nux),
+ q(5126) => q(nuy),
+ q(5127) => q(nuz),
+ q(5128) => q(nvh),
+ q(5129) => q(nvm),
+ q(5130) => q(nvo),
+ q(5131) => q(nwa),
+ q(5132) => q(nwb),
+ q(5133) => q(nwe),
+ q(5134) => q(nwg),
+ q(5135) => q(nwi),
+ q(5136) => q(nwm),
+ q(5137) => q(nwo),
+ q(5138) => q(nwr),
+ q(5139) => q(nwx),
+ q(5140) => q(nwy),
+ q(5141) => q(nxa),
+ q(5142) => q(nxd),
+ q(5143) => q(nxe),
+ q(5144) => q(nxg),
+ q(5145) => q(nxi),
+ q(5146) => q(nxk),
+ q(5147) => q(nxl),
+ q(5148) => q(nxm),
+ q(5149) => q(nxn),
+ q(5150) => q(nxo),
+ q(5151) => q(nxq),
+ q(5152) => q(nxr),
+ q(5153) => q(nxu),
+ q(5154) => q(nxx),
+ q(5155) => q(nyb),
+ q(5156) => q(nyc),
+ q(5157) => q(nyd),
+ q(5158) => q(nye),
+ q(5159) => q(nyf),
+ q(5160) => q(nyg),
+ q(5161) => q(nyh),
+ q(5162) => q(nyi),
+ q(5163) => q(nyj),
+ q(5164) => q(nyk),
+ q(5165) => q(nyl),
+ q(5166) => q(nyp),
+ q(5167) => q(nyq),
+ q(5168) => q(nyr),
+ q(5169) => q(nys),
+ q(5170) => q(nyt),
+ q(5171) => q(nyu),
+ q(5172) => q(nyv),
+ q(5173) => q(nyw),
+ q(5174) => q(nyx),
+ q(5175) => q(nyy),
+ q(5176) => q(nza),
+ q(5177) => q(nzb),
+ q(5178) => q(nzk),
+ q(5179) => q(nzm),
+ q(5180) => q(nzs),
+ q(5181) => q(nzu),
+ q(5182) => q(nzy),
+ q(5183) => q(nzz),
+ q(5184) => q(oaa),
+ q(5185) => q(oac),
+ q(5186) => q(oar),
+ q(5187) => q(oav),
+ q(5188) => q(obi),
+ q(5189) => q(obk),
+ q(5190) => q(obl),
+ q(5191) => q(obm),
+ q(5192) => q(obo),
+ q(5193) => q(obr),
+ q(5194) => q(obt),
+ q(5195) => q(obu),
+ q(5196) => q(oca),
+ q(5197) => q(och),
+ q(5198) => q(oco),
+ q(5199) => q(ocu),
+ q(5200) => q(oda),
+ q(5201) => q(odk),
+ q(5202) => q(odt),
+ q(5203) => q(odu),
+ q(5204) => q(ofo),
+ q(5205) => q(ofs),
+ q(5206) => q(ofu),
+ q(5207) => q(ogb),
+ q(5208) => q(ogc),
+ q(5209) => q(oge),
+ q(5210) => q(ogg),
+ q(5211) => q(ogo),
+ q(5212) => q(ogu),
+ q(5213) => q(oht),
+ q(5214) => q(ohu),
+ q(5215) => q(oia),
+ q(5216) => q(oin),
+ q(5217) => q(ojb),
+ q(5218) => q(ojc),
+ q(5219) => q(ojg),
+ q(5220) => q(ojp),
+ q(5221) => q(ojs),
+ q(5222) => q(ojv),
+ q(5223) => q(ojw),
+ q(5224) => q(oka),
+ q(5225) => q(okb),
+ q(5226) => q(okd),
+ q(5227) => q(oke),
+ q(5228) => q(okg),
+ q(5229) => q(okh),
+ q(5230) => q(oki),
+ q(5231) => q(okj),
+ q(5232) => q(okk),
+ q(5233) => q(okl),
+ q(5234) => q(okm),
+ q(5235) => q(okn),
+ q(5236) => q(oko),
+ q(5237) => q(okr),
+ q(5238) => q(oks),
+ q(5239) => q(oku),
+ q(5240) => q(okv),
+ q(5241) => q(okx),
+ q(5242) => q(ola),
+ q(5243) => q(old),
+ q(5244) => q(ole),
+ q(5245) => q(olk),
+ q(5246) => q(olm),
+ q(5247) => q(olo),
+ q(5248) => q(olr),
+ q(5249) => q(olt),
+ q(5250) => q(oma),
+ q(5251) => q(omb),
+ q(5252) => q(omc),
+ q(5253) => q(ome),
+ q(5254) => q(omg),
+ q(5255) => q(omi),
+ q(5256) => q(omk),
+ q(5257) => q(oml),
+ q(5258) => q(omn),
+ q(5259) => q(omo),
+ q(5260) => q(omp),
+ q(5261) => q(omr),
+ q(5262) => q(omt),
+ q(5263) => q(omu),
+ q(5264) => q(omw),
+ q(5265) => q(omx),
+ q(5266) => q(ona),
+ q(5267) => q(onb),
+ q(5268) => q(one),
+ q(5269) => q(ong),
+ q(5270) => q(oni),
+ q(5271) => q(onj),
+ q(5272) => q(onk),
+ q(5273) => q(onn),
+ q(5274) => q(ono),
+ q(5275) => q(onp),
+ q(5276) => q(onr),
+ q(5277) => q(ons),
+ q(5278) => q(ont),
+ q(5279) => q(onu),
+ q(5280) => q(onw),
+ q(5281) => q(onx),
+ q(5282) => q(ood),
+ q(5283) => q(oog),
+ q(5284) => q(oon),
+ q(5285) => q(oor),
+ q(5286) => q(oos),
+ q(5287) => q(opa),
+ q(5288) => q(opk),
+ q(5289) => q(opm),
+ q(5290) => q(opo),
+ q(5291) => q(opt),
+ q(5292) => q(opy),
+ q(5293) => q(ora),
+ q(5294) => q(orc),
+ q(5295) => q(ore),
+ q(5296) => q(org),
+ q(5297) => q(orh),
+ q(5298) => q(orn),
+ q(5299) => q(oro),
+ q(5300) => q(orr),
+ q(5301) => q(ors),
+ q(5302) => q(ort),
+ q(5303) => q(oru),
+ q(5304) => q(orv),
+ q(5305) => q(orw),
+ q(5306) => q(orx),
+ q(5307) => q(ory),
+ q(5308) => q(orz),
+ q(5309) => q(osc),
+ q(5310) => q(osi),
+ q(5311) => q(oso),
+ q(5312) => q(osp),
+ q(5313) => q(ost),
+ q(5314) => q(osu),
+ q(5315) => q(osx),
+ q(5316) => q(otb),
+ q(5317) => q(otd),
+ q(5318) => q(ote),
+ q(5319) => q(oti),
+ q(5320) => q(otk),
+ q(5321) => q(otl),
+ q(5322) => q(otm),
+ q(5323) => q(otn),
+ q(5324) => q(otq),
+ q(5325) => q(otr),
+ q(5326) => q(ots),
+ q(5327) => q(ott),
+ q(5328) => q(otu),
+ q(5329) => q(otw),
+ q(5330) => q(otx),
+ q(5331) => q(oty),
+ q(5332) => q(otz),
+ q(5333) => q(oua),
+ q(5334) => q(oub),
+ q(5335) => q(oue),
+ q(5336) => q(oui),
+ q(5337) => q(oum),
+ q(5338) => q(owi),
+ q(5339) => q(owl),
+ q(5340) => q(oyb),
+ q(5341) => q(oyd),
+ q(5342) => q(oym),
+ q(5343) => q(oyy),
+ q(5344) => q(ozm),
+ q(5345) => q(pab),
+ q(5346) => q(pac),
+ q(5347) => q(pad),
+ q(5348) => q(pae),
+ q(5349) => q(paf),
+ q(5350) => q(pah),
+ q(5351) => q(pai),
+ q(5352) => q(pak),
+ q(5353) => q(pao),
+ q(5354) => q(paq),
+ q(5355) => q(par),
+ q(5356) => q(pas),
+ q(5357) => q(pat),
+ q(5358) => q(pav),
+ q(5359) => q(paw),
+ q(5360) => q(pax),
+ q(5361) => q(pay),
+ q(5362) => q(paz),
+ q(5363) => q(pbb),
+ q(5364) => q(pbc),
+ q(5365) => q(pbe),
+ q(5366) => q(pbf),
+ q(5367) => q(pbg),
+ q(5368) => q(pbh),
+ q(5369) => q(pbi),
+ q(5370) => q(pbl),
+ q(5371) => q(pbn),
+ q(5372) => q(pbo),
+ q(5373) => q(pbp),
+ q(5374) => q(pbr),
+ q(5375) => q(pbs),
+ q(5376) => q(pbt),
+ q(5377) => q(pbu),
+ q(5378) => q(pbv),
+ q(5379) => q(pby),
+ q(5380) => q(pca),
+ q(5381) => q(pcb),
+ q(5382) => q(pcc),
+ q(5383) => q(pcd),
+ q(5384) => q(pce),
+ q(5385) => q(pcf),
+ q(5386) => q(pcg),
+ q(5387) => q(pch),
+ q(5388) => q(pci),
+ q(5389) => q(pcj),
+ q(5390) => q(pck),
+ q(5391) => q(pcl),
+ q(5392) => q(pcm),
+ q(5393) => q(pcn),
+ q(5394) => q(pcp),
+ q(5395) => q(pcw),
+ q(5396) => q(pda),
+ q(5397) => q(pdc),
+ q(5398) => q(pdi),
+ q(5399) => q(pdn),
+ q(5400) => q(pdo),
+ q(5401) => q(pdt),
+ q(5402) => q(pdu),
+ q(5403) => q(pea),
+ q(5404) => q(peb),
+ q(5405) => q(ped),
+ q(5406) => q(pee),
+ q(5407) => q(pef),
+ q(5408) => q(peg),
+ q(5409) => q(peh),
+ q(5410) => q(pei),
+ q(5411) => q(pej),
+ q(5412) => q(pek),
+ q(5413) => q(pel),
+ q(5414) => q(pem),
+ q(5415) => q(pep),
+ q(5416) => q(peq),
+ q(5417) => q(pes),
+ q(5418) => q(pev),
+ q(5419) => q(pex),
+ q(5420) => q(pey),
+ q(5421) => q(pez),
+ q(5422) => q(pfa),
+ q(5423) => q(pfe),
+ q(5424) => q(pfl),
+ q(5425) => q(pga),
+ q(5426) => q(pgd),
+ q(5427) => q(pgg),
+ q(5428) => q(pgi),
+ q(5429) => q(pgk),
+ q(5430) => q(pgl),
+ q(5431) => q(pgn),
+ q(5432) => q(pgs),
+ q(5433) => q(pgu),
+ q(5434) => q(pha),
+ q(5435) => q(phd),
+ q(5436) => q(phg),
+ q(5437) => q(phh),
+ q(5438) => q(phk),
+ q(5439) => q(phl),
+ q(5440) => q(phm),
+ q(5441) => q(pho),
+ q(5442) => q(phq),
+ q(5443) => q(phr),
+ q(5444) => q(pht),
+ q(5445) => q(phu),
+ q(5446) => q(phv),
+ q(5447) => q(phw),
+ q(5448) => q(pia),
+ q(5449) => q(pib),
+ q(5450) => q(pic),
+ q(5451) => q(pid),
+ q(5452) => q(pie),
+ q(5453) => q(pif),
+ q(5454) => q(pig),
+ q(5455) => q(pih),
+ q(5456) => q(pii),
+ q(5457) => q(pij),
+ q(5458) => q(pil),
+ q(5459) => q(pim),
+ q(5460) => q(pin),
+ q(5461) => q(pio),
+ q(5462) => q(pip),
+ q(5463) => q(pir),
+ q(5464) => q(pis),
+ q(5465) => q(pit),
+ q(5466) => q(piu),
+ q(5467) => q(piv),
+ q(5468) => q(piw),
+ q(5469) => q(pix),
+ q(5470) => q(piy),
+ q(5471) => q(piz),
+ q(5472) => q(pjt),
+ q(5473) => q(pka),
+ q(5474) => q(pkb),
+ q(5475) => q(pkc),
+ q(5476) => q(pkg),
+ q(5477) => q(pkh),
+ q(5478) => q(pkn),
+ q(5479) => q(pko),
+ q(5480) => q(pkp),
+ q(5481) => q(pkr),
+ q(5482) => q(pks),
+ q(5483) => q(pkt),
+ q(5484) => q(pku),
+ q(5485) => q(pla),
+ q(5486) => q(plb),
+ q(5487) => q(plc),
+ q(5488) => q(pld),
+ q(5489) => q(ple),
+ q(5490) => q(plg),
+ q(5491) => q(plh),
+ q(5492) => q(plj),
+ q(5493) => q(plk),
+ q(5494) => q(pll),
+ q(5495) => q(pln),
+ q(5496) => q(plo),
+ q(5497) => q(plp),
+ q(5498) => q(plq),
+ q(5499) => q(plr),
+ q(5500) => q(pls),
+ q(5501) => q(plt),
+ q(5502) => q(plu),
+ q(5503) => q(plv),
+ q(5504) => q(plw),
+ q(5505) => q(ply),
+ q(5506) => q(plz),
+ q(5507) => q(pma),
+ q(5508) => q(pmb),
+ q(5509) => q(pmc),
+ q(5510) => q(pmd),
+ q(5511) => q(pme),
+ q(5512) => q(pmf),
+ q(5513) => q(pmh),
+ q(5514) => q(pmi),
+ q(5515) => q(pmj),
+ q(5516) => q(pmk),
+ q(5517) => q(pml),
+ q(5518) => q(pmm),
+ q(5519) => q(pmn),
+ q(5520) => q(pmo),
+ q(5521) => q(pmq),
+ q(5522) => q(pmr),
+ q(5523) => q(pms),
+ q(5524) => q(pmt),
+ q(5525) => q(pmw),
+ q(5526) => q(pmx),
+ q(5527) => q(pmy),
+ q(5528) => q(pmz),
+ q(5529) => q(pna),
+ q(5530) => q(pnb),
+ q(5531) => q(pnc),
+ q(5532) => q(pne),
+ q(5533) => q(png),
+ q(5534) => q(pnh),
+ q(5535) => q(pni),
+ q(5536) => q(pnj),
+ q(5537) => q(pnk),
+ q(5538) => q(pnl),
+ q(5539) => q(pnm),
+ q(5540) => q(pnn),
+ q(5541) => q(pno),
+ q(5542) => q(pnp),
+ q(5543) => q(pnq),
+ q(5544) => q(pnr),
+ q(5545) => q(pns),
+ q(5546) => q(pnt),
+ q(5547) => q(pnu),
+ q(5548) => q(pnv),
+ q(5549) => q(pnw),
+ q(5550) => q(pnx),
+ q(5551) => q(pny),
+ q(5552) => q(pnz),
+ q(5553) => q(poc),
+ q(5554) => q(pod),
+ q(5555) => q(poe),
+ q(5556) => q(pof),
+ q(5557) => q(pog),
+ q(5558) => q(poh),
+ q(5559) => q(poi),
+ q(5560) => q(pok),
+ q(5561) => q(pom),
+ q(5562) => q(poo),
+ q(5563) => q(pop),
+ q(5564) => q(poq),
+ q(5565) => q(pos),
+ q(5566) => q(pot),
+ q(5567) => q(pov),
+ q(5568) => q(pow),
+ q(5569) => q(pox),
+ q(5570) => q(poy),
+ q(5571) => q(ppa),
+ q(5572) => q(ppe),
+ q(5573) => q(ppi),
+ q(5574) => q(ppk),
+ q(5575) => q(ppl),
+ q(5576) => q(ppm),
+ q(5577) => q(ppn),
+ q(5578) => q(ppo),
+ q(5579) => q(ppp),
+ q(5580) => q(ppq),
+ q(5581) => q(pps),
+ q(5582) => q(ppt),
+ q(5583) => q(ppu),
+ q(5584) => q(pqa),
+ q(5585) => q(pqm),
+ q(5586) => q(prb),
+ q(5587) => q(prc),
+ q(5588) => q(prd),
+ q(5589) => q(pre),
+ q(5590) => q(prf),
+ q(5591) => q(prg),
+ q(5592) => q(prh),
+ q(5593) => q(pri),
+ q(5594) => q(prk),
+ q(5595) => q(prl),
+ q(5596) => q(prm),
+ q(5597) => q(prn),
+ q(5598) => q(prp),
+ q(5599) => q(prq),
+ q(5600) => q(prr),
+ q(5601) => q(prs),
+ q(5602) => q(prt),
+ q(5603) => q(pru),
+ q(5604) => q(prw),
+ q(5605) => q(prx),
+ q(5606) => q(pry),
+ q(5607) => q(prz),
+ q(5608) => q(psa),
+ q(5609) => q(psc),
+ q(5610) => q(psd),
+ q(5611) => q(pse),
+ q(5612) => q(psg),
+ q(5613) => q(psh),
+ q(5614) => q(psi),
+ q(5615) => q(psl),
+ q(5616) => q(psm),
+ q(5617) => q(psn),
+ q(5618) => q(pso),
+ q(5619) => q(psp),
+ q(5620) => q(psq),
+ q(5621) => q(psr),
+ q(5622) => q(pss),
+ q(5623) => q(pst),
+ q(5624) => q(psu),
+ q(5625) => q(psw),
+ q(5626) => q(psy),
+ q(5627) => q(pta),
+ q(5628) => q(pth),
+ q(5629) => q(pti),
+ q(5630) => q(ptn),
+ q(5631) => q(pto),
+ q(5632) => q(ptp),
+ q(5633) => q(ptq),
+ q(5634) => q(ptr),
+ q(5635) => q(ptt),
+ q(5636) => q(ptu),
+ q(5637) => q(ptv),
+ q(5638) => q(ptw),
+ q(5639) => q(pty),
+ q(5640) => q(pua),
+ q(5641) => q(pub),
+ q(5642) => q(puc),
+ q(5643) => q(pud),
+ q(5644) => q(pue),
+ q(5645) => q(puf),
+ q(5646) => q(pug),
+ q(5647) => q(pui),
+ q(5648) => q(puj),
+ q(5649) => q(puk),
+ q(5650) => q(pum),
+ q(5651) => q(puo),
+ q(5652) => q(pup),
+ q(5653) => q(puq),
+ q(5654) => q(pur),
+ q(5655) => q(put),
+ q(5656) => q(puu),
+ q(5657) => q(puw),
+ q(5658) => q(pux),
+ q(5659) => q(puy),
+ q(5660) => q(pwa),
+ q(5661) => q(pwb),
+ q(5662) => q(pwg),
+ q(5663) => q(pwi),
+ q(5664) => q(pwm),
+ q(5665) => q(pwn),
+ q(5666) => q(pwo),
+ q(5667) => q(pwr),
+ q(5668) => q(pww),
+ q(5669) => q(pxm),
+ q(5670) => q(pye),
+ q(5671) => q(pym),
+ q(5672) => q(pyn),
+ q(5673) => q(pys),
+ q(5674) => q(pyu),
+ q(5675) => q(pyx),
+ q(5676) => q(pyy),
+ q(5677) => q(pzn),
+ q(5678) => q(qua),
+ q(5679) => q(qub),
+ q(5680) => q(quc),
+ q(5681) => q(qud),
+ q(5682) => q(quf),
+ q(5683) => q(qug),
+ q(5684) => q(quh),
+ q(5685) => q(qui),
+ q(5686) => q(quk),
+ q(5687) => q(qul),
+ q(5688) => q(qum),
+ q(5689) => q(qun),
+ q(5690) => q(qup),
+ q(5691) => q(quq),
+ q(5692) => q(qur),
+ q(5693) => q(qus),
+ q(5694) => q(quv),
+ q(5695) => q(quw),
+ q(5696) => q(qux),
+ q(5697) => q(quy),
+ q(5698) => q(quz),
+ q(5699) => q(qva),
+ q(5700) => q(qvc),
+ q(5701) => q(qve),
+ q(5702) => q(qvh),
+ q(5703) => q(qvi),
+ q(5704) => q(qvj),
+ q(5705) => q(qvl),
+ q(5706) => q(qvm),
+ q(5707) => q(qvn),
+ q(5708) => q(qvo),
+ q(5709) => q(qvp),
+ q(5710) => q(qvs),
+ q(5711) => q(qvw),
+ q(5712) => q(qvy),
+ q(5713) => q(qvz),
+ q(5714) => q(qwa),
+ q(5715) => q(qwc),
+ q(5716) => q(qwh),
+ q(5717) => q(qwm),
+ q(5718) => q(qws),
+ q(5719) => q(qwt),
+ q(5720) => q(qxa),
+ q(5721) => q(qxc),
+ q(5722) => q(qxh),
+ q(5723) => q(qxl),
+ q(5724) => q(qxn),
+ q(5725) => q(qxo),
+ q(5726) => q(qxp),
+ q(5727) => q(qxq),
+ q(5728) => q(qxr),
+ q(5729) => q(qxs),
+ q(5730) => q(qxt),
+ q(5731) => q(qxu),
+ q(5732) => q(qxw),
+ q(5733) => q(qya),
+ q(5734) => q(qyp),
+ q(5735) => q(raa),
+ q(5736) => q(rab),
+ q(5737) => q(rac),
+ q(5738) => q(rad),
+ q(5739) => q(raf),
+ q(5740) => q(rag),
+ q(5741) => q(rah),
+ q(5742) => q(rai),
+ q(5743) => q(rak),
+ q(5744) => q(ral),
+ q(5745) => q(ram),
+ q(5746) => q(ran),
+ q(5747) => q(rao),
+ q(5748) => q(raq),
+ q(5749) => q(ras),
+ q(5750) => q(rat),
+ q(5751) => q(rau),
+ q(5752) => q(rav),
+ q(5753) => q(raw),
+ q(5754) => q(rax),
+ q(5755) => q(ray),
+ q(5756) => q(raz),
+ q(5757) => q(rbb),
+ q(5758) => q(rbk),
+ q(5759) => q(rbl),
+ q(5760) => q(rbp),
+ q(5761) => q(rcf),
+ q(5762) => q(rdb),
+ q(5763) => q(rea),
+ q(5764) => q(reb),
+ q(5765) => q(ree),
+ q(5766) => q(reg),
+ q(5767) => q(rei),
+ q(5768) => q(rej),
+ q(5769) => q(rel),
+ q(5770) => q(rem),
+ q(5771) => q(ren),
+ q(5772) => q(rer),
+ q(5773) => q(res),
+ q(5774) => q(ret),
+ q(5775) => q(rey),
+ q(5776) => q(rga),
+ q(5777) => q(rge),
+ q(5778) => q(rgk),
+ q(5779) => q(rgn),
+ q(5780) => q(rgr),
+ q(5781) => q(rgs),
+ q(5782) => q(rgu),
+ q(5783) => q(rhg),
+ q(5784) => q(rhp),
+ q(5785) => q(ria),
+ q(5786) => q(rie),
+ q(5787) => q(rif),
+ q(5788) => q(ril),
+ q(5789) => q(rim),
+ q(5790) => q(rin),
+ q(5791) => q(rir),
+ q(5792) => q(rit),
+ q(5793) => q(riu),
+ q(5794) => q(rjg),
+ q(5795) => q(rji),
+ q(5796) => q(rjs),
+ q(5797) => q(rka),
+ q(5798) => q(rkb),
+ q(5799) => q(rkh),
+ q(5800) => q(rki),
+ q(5801) => q(rkm),
+ q(5802) => q(rkt),
+ q(5803) => q(rkw),
+ q(5804) => q(rma),
+ q(5805) => q(rmb),
+ q(5806) => q(rmc),
+ q(5807) => q(rmd),
+ q(5808) => q(rme),
+ q(5809) => q(rmf),
+ q(5810) => q(rmg),
+ q(5811) => q(rmh),
+ q(5812) => q(rmi),
+ q(5813) => q(rmk),
+ q(5814) => q(rml),
+ q(5815) => q(rmm),
+ q(5816) => q(rmn),
+ q(5817) => q(rmo),
+ q(5818) => q(rmp),
+ q(5819) => q(rmq),
+ q(5820) => q(rms),
+ q(5821) => q(rmt),
+ q(5822) => q(rmu),
+ q(5823) => q(rmv),
+ q(5824) => q(rmw),
+ q(5825) => q(rmx),
+ q(5826) => q(rmy),
+ q(5827) => q(rmz),
+ q(5828) => q(rna),
+ q(5829) => q(rnd),
+ q(5830) => q(rng),
+ q(5831) => q(rnl),
+ q(5832) => q(rnn),
+ q(5833) => q(rnp),
+ q(5834) => q(rnr),
+ q(5835) => q(rnw),
+ q(5836) => q(rob),
+ q(5837) => q(roc),
+ q(5838) => q(rod),
+ q(5839) => q(roe),
+ q(5840) => q(rof),
+ q(5841) => q(rog),
+ q(5842) => q(rol),
+ q(5843) => q(roo),
+ q(5844) => q(rop),
+ q(5845) => q(ror),
+ q(5846) => q(rou),
+ q(5847) => q(row),
+ q(5848) => q(rpn),
+ q(5849) => q(rpt),
+ q(5850) => q(rri),
+ q(5851) => q(rro),
+ q(5852) => q(rrt),
+ q(5853) => q(rsb),
+ q(5854) => q(rsi),
+ q(5855) => q(rsl),
+ q(5856) => q(rtc),
+ q(5857) => q(rth),
+ q(5858) => q(rtm),
+ q(5859) => q(rts),
+ q(5860) => q(rtw),
+ q(5861) => q(rub),
+ q(5862) => q(ruc),
+ q(5863) => q(rue),
+ q(5864) => q(ruf),
+ q(5865) => q(rug),
+ q(5866) => q(ruh),
+ q(5867) => q(rui),
+ q(5868) => q(ruk),
+ q(5869) => q(ruo),
+ q(5870) => q(ruq),
+ q(5871) => q(rut),
+ q(5872) => q(ruu),
+ q(5873) => q(ruy),
+ q(5874) => q(ruz),
+ q(5875) => q(rwa),
+ q(5876) => q(rwk),
+ q(5877) => q(rwm),
+ q(5878) => q(rwo),
+ q(5879) => q(rwr),
+ q(5880) => q(rxd),
+ q(5881) => q(rxw),
+ q(5882) => q(ryn),
+ q(5883) => q(rys),
+ q(5884) => q(ryu),
+ q(5885) => q(saa),
+ q(5886) => q(sab),
+ q(5887) => q(sac),
+ q(5888) => q(sae),
+ q(5889) => q(saf),
+ q(5890) => q(saj),
+ q(5891) => q(sak),
+ q(5892) => q(sao),
+ q(5893) => q(saq),
+ q(5894) => q(sar),
+ q(5895) => q(sau),
+ q(5896) => q(sav),
+ q(5897) => q(saw),
+ q(5898) => q(sax),
+ q(5899) => q(say),
+ q(5900) => q(saz),
+ q(5901) => q(sba),
+ q(5902) => q(sbb),
+ q(5903) => q(sbc),
+ q(5904) => q(sbd),
+ q(5905) => q(slc),
+ q(5906) => q(sbf),
+ q(5907) => q(sbg),
+ q(5908) => q(sbh),
+ q(5909) => q(sbi),
+ q(5910) => q(sbj),
+ q(5911) => q(sbk),
+ q(5912) => q(sbl),
+ q(5913) => q(sbm),
+ q(5914) => q(sbn),
+ q(5915) => q(sbo),
+ q(5916) => q(sbp),
+ q(5917) => q(sbq),
+ q(5918) => q(sbr),
+ q(5919) => q(sbs),
+ q(5920) => q(sbt),
+ q(5921) => q(sbu),
+ q(5922) => q(sbv),
+ q(5923) => q(sbw),
+ q(5924) => q(sbx),
+ q(5925) => q(sby),
+ q(5926) => q(sbz),
+ q(5927) => q(scb),
+ q(5928) => q(sce),
+ q(5929) => q(scf),
+ q(5930) => q(scg),
+ q(5931) => q(sch),
+ q(5932) => q(sci),
+ q(5933) => q(sck),
+ q(5934) => q(scl),
+ q(5935) => q(scp),
+ q(5936) => q(scq),
+ q(5937) => q(scs),
+ q(5938) => q(scu),
+ q(5939) => q(scv),
+ q(5940) => q(scw),
+ q(5941) => q(scx),
+ q(5942) => q(sda),
+ q(5943) => q(sdb),
+ q(5944) => q(sdc),
+ q(5945) => q(sde),
+ q(5946) => q(sdf),
+ q(5947) => q(sdg),
+ q(5948) => q(sdh),
+ q(5949) => q(sdj),
+ q(5950) => q(sdk),
+ q(5951) => q(sdl),
+ q(5952) => q(sdm),
+ q(5953) => q(sdn),
+ q(5954) => q(sdo),
+ q(5955) => q(sdp),
+ q(5956) => q(sdr),
+ q(5957) => q(sds),
+ q(5958) => q(sdt),
+ q(5959) => q(sdu),
+ q(5960) => q(sdx),
+ q(5961) => q(sdz),
+ q(5962) => q(sea),
+ q(5963) => q(seb),
+ q(5964) => q(sec),
+ q(5965) => q(sed),
+ q(5966) => q(see),
+ q(5967) => q(sef),
+ q(5968) => q(seg),
+ q(5969) => q(seh),
+ q(5970) => q(sei),
+ q(5971) => q(sej),
+ q(5972) => q(sek),
+ q(5973) => q(sen),
+ q(5974) => q(seo),
+ q(5975) => q(sep),
+ q(5976) => q(seq),
+ q(5977) => q(ser),
+ q(5978) => q(ses),
+ q(5979) => q(set),
+ q(5980) => q(seu),
+ q(5981) => q(sev),
+ q(5982) => q(sew),
+ q(5983) => q(sey),
+ q(5984) => q(sez),
+ q(5985) => q(sfb),
+ q(5986) => q(sfe),
+ q(5987) => q(sfm),
+ q(5988) => q(sfs),
+ q(5989) => q(sfw),
+ q(5990) => q(sgb),
+ q(5991) => q(sgc),
+ q(5992) => q(sgd),
+ q(5993) => q(sge),
+ q(5994) => q(sgg),
+ q(5995) => q(sgh),
+ q(5996) => q(sgi),
+ q(5997) => q(sgj),
+ q(5998) => q(sgk),
+ q(5999) => q(sgm),
+ q(6000) => q(sgp),
+ q(6001) => q(sgr),
+ q(6002) => q(sgs),
+ q(6003) => q(sgt),
+ q(6004) => q(sgu),
+ q(6005) => q(sgw),
+ q(6006) => q(sgx),
+ q(6007) => q(sgy),
+ q(6008) => q(sgz),
+ q(6009) => q(sha),
+ q(6010) => q(shb),
+ q(6011) => q(shc),
+ q(6012) => q(shd),
+ q(6013) => q(she),
+ q(6014) => q(shg),
+ q(6015) => q(shh),
+ q(6016) => q(shi),
+ q(6017) => q(shj),
+ q(6018) => q(shk),
+ q(6019) => q(shl),
+ q(6020) => q(shm),
+ q(6021) => q(sho),
+ q(6022) => q(shp),
+ q(6023) => q(shq),
+ q(6024) => q(shr),
+ q(6025) => q(shs),
+ q(6026) => q(sht),
+ q(6027) => q(shu),
+ q(6028) => q(shv),
+ q(6029) => q(shw),
+ q(6030) => q(shx),
+ q(6031) => q(shy),
+ q(6032) => q(shz),
+ q(6033) => q(sia),
+ q(6034) => q(sib),
+ q(6035) => q(sie),
+ q(6036) => q(sif),
+ q(6037) => q(sig),
+ q(6038) => q(sih),
+ q(6039) => q(sii),
+ q(6040) => q(sij),
+ q(6041) => q(sik),
+ q(6042) => q(sil),
+ q(6043) => q(sim),
+ q(6044) => q(sip),
+ q(6045) => q(siq),
+ q(6046) => q(sir),
+ q(6047) => q(sis),
+ q(6048) => q(siu),
+ q(6049) => q(siv),
+ q(6050) => q(siw),
+ q(6051) => q(six),
+ q(6052) => q(siy),
+ q(6053) => q(siz),
+ q(6054) => q(sja),
+ q(6055) => q(sjb),
+ q(6056) => q(sjd),
+ q(6057) => q(sje),
+ q(6058) => q(sjg),
+ q(6059) => q(sjk),
+ q(6060) => q(sjl),
+ q(6061) => q(sjm),
+ q(6062) => q(sjn),
+ q(6063) => q(sjo),
+ q(6064) => q(sjp),
+ q(6065) => q(sjr),
+ q(6066) => q(sjs),
+ q(6067) => q(sjt),
+ q(6068) => q(sju),
+ q(6069) => q(sjw),
+ q(6070) => q(ska),
+ q(6071) => q(skb),
+ q(6072) => q(skc),
+ q(6073) => q(skd),
+ q(6074) => q(ske),
+ q(6075) => q(skf),
+ q(6076) => q(skg),
+ q(6077) => q(skh),
+ q(6078) => q(ski),
+ q(6079) => q(skj),
+ q(6080) => q(skk),
+ q(6081) => q(skm),
+ q(6082) => q(skn),
+ q(6083) => q(sko),
+ q(6084) => q(skp),
+ q(6085) => q(skq),
+ q(6086) => q(skr),
+ q(6087) => q(sks),
+ q(6088) => q(skt),
+ q(6089) => q(sku),
+ q(6090) => q(skv),
+ q(6091) => q(skw),
+ q(6092) => q(skx),
+ q(6093) => q(sky),
+ q(6094) => q(skz),
+ q(6095) => q(sld),
+ q(6096) => q(sle),
+ q(6097) => q(slf),
+ q(6098) => q(slg),
+ q(6099) => q(slh),
+ q(6100) => q(sli),
+ q(6101) => q(slj),
+ q(6102) => q(sll),
+ q(6103) => q(slm),
+ q(6104) => q(sln),
+ q(6105) => q(slp),
+ q(6106) => q(slq),
+ q(6107) => q(slr),
+ q(6108) => q(sls),
+ q(6109) => q(slt),
+ q(6110) => q(slu),
+ q(6111) => q(slw),
+ q(6112) => q(slx),
+ q(6113) => q(sly),
+ q(6114) => q(slz),
+ q(6115) => q(smb),
+ q(6116) => q(smc),
+ q(6117) => q(smd),
+ q(6118) => q(smf),
+ q(6119) => q(smg),
+ q(6120) => q(smh),
+ q(6121) => q(smk),
+ q(6122) => q(sml),
+ q(6123) => q(smm),
+ q(6124) => q(smp),
+ q(6125) => q(smq),
+ q(6126) => q(smr),
+ q(6127) => q(smt),
+ q(6128) => q(smu),
+ q(6129) => q(smv),
+ q(6130) => q(smw),
+ q(6131) => q(smx),
+ q(6132) => q(smy),
+ q(6133) => q(smz),
+ q(6134) => q(snb),
+ q(6135) => q(snc),
+ q(6136) => q(sne),
+ q(6137) => q(snf),
+ q(6138) => q(sng),
+ q(6139) => q(snh),
+ q(6140) => q(sni),
+ q(6141) => q(snj),
+ q(6142) => q(snl),
+ q(6143) => q(snm),
+ q(6144) => q(snn),
+ q(6145) => q(sno),
+ q(6146) => q(snp),
+ q(6147) => q(snq),
+ q(6148) => q(snr),
+ q(6149) => q(sns),
+ q(6150) => q(snu),
+ q(6151) => q(snv),
+ q(6152) => q(snw),
+ q(6153) => q(snx),
+ q(6154) => q(sny),
+ q(6155) => q(snz),
+ q(6156) => q(soa),
+ q(6157) => q(sob),
+ q(6158) => q(soc),
+ q(6159) => q(sod),
+ q(6160) => q(soe),
+ q(6161) => q(soh),
+ q(6162) => q(soi),
+ q(6163) => q(soj),
+ q(6164) => q(sok),
+ q(6165) => q(sol),
+ q(6166) => q(soo),
+ q(6167) => q(sop),
+ q(6168) => q(soq),
+ q(6169) => q(sor),
+ q(6170) => q(sos),
+ q(6171) => q(sou),
+ q(6172) => q(sov),
+ q(6173) => q(sow),
+ q(6174) => q(sox),
+ q(6175) => q(soy),
+ q(6176) => q(soz),
+ q(6177) => q(spb),
+ q(6178) => q(spc),
+ q(6179) => q(spd),
+ q(6180) => q(spe),
+ q(6181) => q(spg),
+ q(6182) => q(spi),
+ q(6183) => q(spk),
+ q(6184) => q(spl),
+ q(6185) => q(spm),
+ q(6186) => q(spn),
+ q(6187) => q(spo),
+ q(6188) => q(spp),
+ q(6189) => q(spq),
+ q(6190) => q(spr),
+ q(6191) => q(sps),
+ q(6192) => q(spt),
+ q(6193) => q(spu),
+ q(6194) => q(spv),
+ q(6195) => q(spx),
+ q(6196) => q(spy),
+ q(6197) => q(sqa),
+ q(6198) => q(sqh),
+ q(6199) => q(sqk),
+ q(6200) => q(sqm),
+ q(6201) => q(sqn),
+ q(6202) => q(sqo),
+ q(6203) => q(sqq),
+ q(6204) => q(sqr),
+ q(6205) => q(sqs),
+ q(6206) => q(sqt),
+ q(6207) => q(squ),
+ q(6208) => q(sra),
+ q(6209) => q(srb),
+ q(6210) => q(src),
+ q(6211) => q(sre),
+ q(6212) => q(srf),
+ q(6213) => q(srg),
+ q(6214) => q(srh),
+ q(6215) => q(sri),
+ q(6216) => q(srk),
+ q(6217) => q(srl),
+ q(6218) => q(srm),
+ q(6219) => q(sro),
+ q(6220) => q(srq),
+ q(6221) => q(srs),
+ q(6222) => q(srt),
+ q(6223) => q(sru),
+ q(6224) => q(srv),
+ q(6225) => q(srw),
+ q(6226) => q(srx),
+ q(6227) => q(sry),
+ q(6228) => q(srz),
+ q(6229) => q(ssb),
+ q(6230) => q(ssc),
+ q(6231) => q(ssd),
+ q(6232) => q(sse),
+ q(6233) => q(ssf),
+ q(6234) => q(ssg),
+ q(6235) => q(ssh),
+ q(6236) => q(ssi),
+ q(6237) => q(ssj),
+ q(6238) => q(ssk),
+ q(6239) => q(ssl),
+ q(6240) => q(ssm),
+ q(6241) => q(ssn),
+ q(6242) => q(sso),
+ q(6243) => q(ssp),
+ q(6244) => q(ssq),
+ q(6245) => q(ssr),
+ q(6246) => q(sss),
+ q(6247) => q(sst),
+ q(6248) => q(ssu),
+ q(6249) => q(ssv),
+ q(6250) => q(ssx),
+ q(6251) => q(ssy),
+ q(6252) => q(ssz),
+ q(6253) => q(sta),
+ q(6254) => q(stb),
+ q(6255) => q(std),
+ q(6256) => q(ste),
+ q(6257) => q(stf),
+ q(6258) => q(stg),
+ q(6259) => q(sth),
+ q(6260) => q(sti),
+ q(6261) => q(stj),
+ q(6262) => q(stk),
+ q(6263) => q(stl),
+ q(6264) => q(stm),
+ q(6265) => q(stn),
+ q(6266) => q(sto),
+ q(6267) => q(stp),
+ q(6268) => q(stq),
+ q(6269) => q(str),
+ q(6270) => q(sts),
+ q(6271) => q(stt),
+ q(6272) => q(stu),
+ q(6273) => q(stv),
+ q(6274) => q(stw),
+ q(6275) => q(sty),
+ q(6276) => q(sua),
+ q(6277) => q(sub),
+ q(6278) => q(suc),
+ q(6279) => q(sue),
+ q(6280) => q(sug),
+ q(6281) => q(sui),
+ q(6282) => q(suj),
+ q(6283) => q(suq),
+ q(6284) => q(sur),
+ q(6285) => q(sut),
+ q(6286) => q(suv),
+ q(6287) => q(suw),
+ q(6288) => q(suy),
+ q(6289) => q(suz),
+ q(6290) => q(sva),
+ q(6291) => q(svb),
+ q(6292) => q(svc),
+ q(6293) => q(sve),
+ q(6294) => q(svk),
+ q(6295) => q(svm),
+ q(6296) => q(svr),
+ q(6297) => q(svs),
+ q(6298) => q(svx),
+ q(6299) => q(swb),
+ q(6300) => q(swc),
+ q(6301) => q(swf),
+ q(6302) => q(swg),
+ q(6303) => q(swh),
+ q(6304) => q(swi),
+ q(6305) => q(swj),
+ q(6306) => q(swk),
+ q(6307) => q(swl),
+ q(6308) => q(swm),
+ q(6309) => q(swn),
+ q(6310) => q(swo),
+ q(6311) => q(swp),
+ q(6312) => q(swq),
+ q(6313) => q(swr),
+ q(6314) => q(sws),
+ q(6315) => q(swt),
+ q(6316) => q(swu),
+ q(6317) => q(swv),
+ q(6318) => q(sww),
+ q(6319) => q(swx),
+ q(6320) => q(swy),
+ q(6321) => q(sxb),
+ q(6322) => q(sxc),
+ q(6323) => q(sxe),
+ q(6324) => q(sxg),
+ q(6325) => q(sxk),
+ q(6326) => q(sxl),
+ q(6327) => q(sxm),
+ q(6328) => q(sxn),
+ q(6329) => q(sxo),
+ q(6330) => q(sxr),
+ q(6331) => q(sxs),
+ q(6332) => q(sxu),
+ q(6333) => q(sxw),
+ q(6334) => q(sya),
+ q(6335) => q(syb),
+ q(6336) => q(syi),
+ q(6337) => q(syk),
+ q(6338) => q(syl),
+ q(6339) => q(sym),
+ q(6340) => q(syn),
+ q(6341) => q(syo),
+ q(6342) => q(sys),
+ q(6343) => q(syw),
+ q(6344) => q(syx),
+ q(6345) => q(syy),
+ q(6346) => q(sza),
+ q(6347) => q(szb),
+ q(6348) => q(szc),
+ q(6349) => q(szd),
+ q(6350) => q(sze),
+ q(6351) => q(szg),
+ q(6352) => q(szl),
+ q(6353) => q(szn),
+ q(6354) => q(szp),
+ q(6355) => q(szv),
+ q(6356) => q(szw),
+ q(6357) => q(taa),
+ q(6358) => q(tab),
+ q(6359) => q(tac),
+ q(6360) => q(tad),
+ q(6361) => q(tae),
+ q(6362) => q(taf),
+ q(6363) => q(tag),
+ q(6364) => q(taj),
+ q(6365) => q(tak),
+ q(6366) => q(tal),
+ q(6367) => q(tan),
+ q(6368) => q(tao),
+ q(6369) => q(tap),
+ q(6370) => q(taq),
+ q(6371) => q(tar),
+ q(6372) => q(tas),
+ q(6373) => q(tau),
+ q(6374) => q(tav),
+ q(6375) => q(taw),
+ q(6376) => q(tax),
+ q(6377) => q(tay),
+ q(6378) => q(taz),
+ q(6379) => q(tba),
+ q(6380) => q(tbb),
+ q(6381) => q(tbc),
+ q(6382) => q(tbd),
+ q(6383) => q(tbe),
+ q(6384) => q(tbf),
+ q(6385) => q(tbg),
+ q(6386) => q(tbh),
+ q(6387) => q(tbi),
+ q(6388) => q(tbj),
+ q(6389) => q(tbk),
+ q(6390) => q(tbl),
+ q(6391) => q(tbm),
+ q(6392) => q(tbn),
+ q(6393) => q(tbo),
+ q(6394) => q(tbp),
+ q(6395) => q(tbr),
+ q(6396) => q(tbs),
+ q(6397) => q(tbt),
+ q(6398) => q(tbu),
+ q(6399) => q(tbv),
+ q(6400) => q(tbw),
+ q(6401) => q(tbx),
+ q(6402) => q(tby),
+ q(6403) => q(tbz),
+ q(6404) => q(tca),
+ q(6405) => q(tcb),
+ q(6406) => q(tcc),
+ q(6407) => q(tcd),
+ q(6408) => q(tce),
+ q(6409) => q(tcf),
+ q(6410) => q(tcg),
+ q(6411) => q(tch),
+ q(6412) => q(wbf),
+ q(6413) => q(tck),
+ q(6414) => q(tcl),
+ q(6415) => q(tcm),
+ q(6416) => q(tcn),
+ q(6417) => q(tco),
+ q(6418) => q(tcp),
+ q(6419) => q(tcq),
+ q(6420) => q(tcs),
+ q(6421) => q(tct),
+ q(6422) => q(tcu),
+ q(6423) => q(tcw),
+ q(6424) => q(tcx),
+ q(6425) => q(tcy),
+ q(6426) => q(tcz),
+ q(6427) => q(tda),
+ q(6428) => q(tdb),
+ q(6429) => q(tdc),
+ q(6430) => q(tdd),
+ q(6431) => q(tde),
+ q(6432) => q(tdf),
+ q(6433) => q(tdg),
+ q(6434) => q(tdh),
+ q(6435) => q(tdi),
+ q(6436) => q(tdj),
+ q(6437) => q(tdk),
+ q(6438) => q(tdl),
+ q(6439) => q(tdn),
+ q(6440) => q(tdo),
+ q(6441) => q(tdq),
+ q(6442) => q(tdr),
+ q(6443) => q(tds),
+ q(6444) => q(tdt),
+ q(6445) => q(tdu),
+ q(6446) => q(tdv),
+ q(6447) => q(tdx),
+ q(6448) => q(tdy),
+ q(6449) => q(tea),
+ q(6450) => q(teb),
+ q(6451) => q(tec),
+ q(6452) => q(ted),
+ q(6453) => q(tee),
+ q(6454) => q(tef),
+ q(6455) => q(teg),
+ q(6456) => q(teh),
+ q(6457) => q(tei),
+ q(6458) => q(tek),
+ q(6459) => q(ten),
+ q(6460) => q(teo),
+ q(6461) => q(tep),
+ q(6462) => q(teq),
+ q(6463) => q(tes),
+ q(6464) => q(teu),
+ q(6465) => q(tev),
+ q(6466) => q(tew),
+ q(6467) => q(tex),
+ q(6468) => q(tey),
+ q(6469) => q(tfi),
+ q(6470) => q(tfn),
+ q(6471) => q(tfo),
+ q(6472) => q(tfr),
+ q(6473) => q(tft),
+ q(6474) => q(tga),
+ q(6475) => q(tgb),
+ q(6476) => q(tgc),
+ q(6477) => q(tgd),
+ q(6478) => q(tge),
+ q(6479) => q(tgf),
+ q(6480) => q(tgh),
+ q(6481) => q(tgi),
+ q(6482) => q(tgj),
+ q(6483) => q(tgn),
+ q(6484) => q(tgo),
+ q(6485) => q(tgp),
+ q(6486) => q(tgq),
+ q(6487) => q(tgr),
+ q(6488) => q(tgs),
+ q(6489) => q(tgt),
+ q(6490) => q(tgu),
+ q(6491) => q(tgv),
+ q(6492) => q(tgw),
+ q(6493) => q(tgx),
+ q(6494) => q(tgy),
+ q(6495) => q(tgz),
+ q(6496) => q(thc),
+ q(6497) => q(thd),
+ q(6498) => q(the),
+ q(6499) => q(thf),
+ q(6500) => q(thh),
+ q(6501) => q(thi),
+ q(6502) => q(thk),
+ q(6503) => q(thl),
+ q(6504) => q(thm),
+ q(6505) => q(thn),
+ q(6506) => q(thp),
+ q(6507) => q(thq),
+ q(6508) => q(thr),
+ q(6509) => q(ths),
+ q(6510) => q(tht),
+ q(6511) => q(thu),
+ q(6512) => q(thv),
+ q(6513) => q(thw),
+ q(6514) => q(thy),
+ q(6515) => q(thz),
+ q(6516) => q(tia),
+ q(6517) => q(tic),
+ q(6518) => q(tid),
+ q(6519) => q(tif),
+ q(6520) => q(tih),
+ q(6521) => q(tii),
+ q(6522) => q(tij),
+ q(6523) => q(tik),
+ q(6524) => q(til),
+ q(6525) => q(tim),
+ q(6526) => q(tin),
+ q(6527) => q(tio),
+ q(6528) => q(tip),
+ q(6529) => q(tiq),
+ q(6530) => q(tis),
+ q(6531) => q(tit),
+ q(6532) => q(tiu),
+ q(6533) => q(tiw),
+ q(6534) => q(tix),
+ q(6535) => q(tiy),
+ q(6536) => q(tiz),
+ q(6537) => q(tja),
+ q(6538) => q(tjg),
+ q(6539) => q(tji),
+ q(6540) => q(tjl),
+ q(6541) => q(tjm),
+ q(6542) => q(tjn),
+ q(6543) => q(tjo),
+ q(6544) => q(tjs),
+ q(6545) => q(tju),
+ q(6546) => q(tjw),
+ q(6547) => q(tka),
+ q(6548) => q(tkb),
+ q(6549) => q(tkd),
+ q(6550) => q(tke),
+ q(6551) => q(tkf),
+ q(6552) => q(tkg),
+ q(6553) => q(tkm),
+ q(6554) => q(tkn),
+ q(6555) => q(tkp),
+ q(6556) => q(tkq),
+ q(6557) => q(tkr),
+ q(6558) => q(tks),
+ q(6559) => q(tkt),
+ q(6560) => q(tku),
+ q(6561) => q(tkv),
+ q(6562) => q(tkw),
+ q(6563) => q(tkx),
+ q(6564) => q(tkz),
+ q(6565) => q(tla),
+ q(6566) => q(tlb),
+ q(6567) => q(tlc),
+ q(6568) => q(tld),
+ q(6569) => q(tlf),
+ q(6570) => q(tlg),
+ q(6571) => q(tlj),
+ q(6572) => q(tlk),
+ q(6573) => q(tll),
+ q(6574) => q(tlm),
+ q(6575) => q(tln),
+ q(6576) => q(tlo),
+ q(6577) => q(tlp),
+ q(6578) => q(tlq),
+ q(6579) => q(tlr),
+ q(6580) => q(tls),
+ q(6581) => q(tlt),
+ q(6582) => q(tlu),
+ q(6583) => q(tlv),
+ q(6584) => q(tlx),
+ q(6585) => q(tly),
+ q(6586) => q(tma),
+ q(6587) => q(tmb),
+ q(6588) => q(tmc),
+ q(6589) => q(tmd),
+ q(6590) => q(tme),
+ q(6591) => q(tmf),
+ q(6592) => q(tmg),
+ q(6593) => q(tmi),
+ q(6594) => q(tmj),
+ q(6595) => q(tmk),
+ q(6596) => q(tml),
+ q(6597) => q(tmm),
+ q(6598) => q(tmn),
+ q(6599) => q(tmo),
+ q(6600) => q(tmp),
+ q(6601) => q(tmq),
+ q(6602) => q(tmr),
+ q(6603) => q(tms),
+ q(6604) => q(tmt),
+ q(6605) => q(tmu),
+ q(6606) => q(tmv),
+ q(6607) => q(tmw),
+ q(6608) => q(tmy),
+ q(6609) => q(tmz),
+ q(6610) => q(tna),
+ q(6611) => q(tnb),
+ q(6612) => q(tnc),
+ q(6613) => q(tnd),
+ q(6614) => q(tne),
+ q(6615) => q(tng),
+ q(6616) => q(tnh),
+ q(6617) => q(tni),
+ q(6618) => q(tnk),
+ q(6619) => q(tnl),
+ q(6620) => q(tnm),
+ q(6621) => q(tnn),
+ q(6622) => q(tno),
+ q(6623) => q(tnp),
+ q(6624) => q(tnq),
+ q(6625) => q(tnr),
+ q(6626) => q(tns),
+ q(6627) => q(tnt),
+ q(6628) => q(tnu),
+ q(6629) => q(tnv),
+ q(6630) => q(tnw),
+ q(6631) => q(tnx),
+ q(6632) => q(tny),
+ q(6633) => q(tnz),
+ q(6634) => q(tob),
+ q(6635) => q(toc),
+ q(6636) => q(tod),
+ q(6637) => q(toe),
+ q(6638) => q(tof),
+ q(6639) => q(toh),
+ q(6640) => q(toi),
+ q(6641) => q(toj),
+ q(6642) => q(tol),
+ q(6643) => q(tom),
+ q(6644) => q(too),
+ q(6645) => q(top),
+ q(6646) => q(toq),
+ q(6647) => q(tor),
+ q(6648) => q(tos),
+ q(6649) => q(tou),
+ q(6650) => q(tov),
+ q(6651) => q(tow),
+ q(6652) => q(tox),
+ q(6653) => q(toy),
+ q(6654) => q(toz),
+ q(6655) => q(tpa),
+ q(6656) => q(tpc),
+ q(6657) => q(tpe),
+ q(6658) => q(tpf),
+ q(6659) => q(tpg),
+ q(6660) => q(tpj),
+ q(6661) => q(tpk),
+ q(6662) => q(tpl),
+ q(6663) => q(tpm),
+ q(6664) => q(tpn),
+ q(6665) => q(tpo),
+ q(6666) => q(tpp),
+ q(6667) => q(tpq),
+ q(6668) => q(tpr),
+ q(6669) => q(tpt),
+ q(6670) => q(tpu),
+ q(6671) => q(tpv),
+ q(6672) => q(tpw),
+ q(6673) => q(tpx),
+ q(6674) => q(tpy),
+ q(6675) => q(tpz),
+ q(6676) => q(tqb),
+ q(6677) => q(tql),
+ q(6678) => q(tqm),
+ q(6679) => q(tqn),
+ q(6680) => q(tqo),
+ q(6681) => q(tqp),
+ q(6682) => q(tqq),
+ q(6683) => q(tqr),
+ q(6684) => q(tqt),
+ q(6685) => q(tqu),
+ q(6686) => q(tqw),
+ q(6687) => q(tra),
+ q(6688) => q(trb),
+ q(6689) => q(trc),
+ q(6690) => q(trd),
+ q(6691) => q(tre),
+ q(6692) => q(trf),
+ q(6693) => q(trg),
+ q(6694) => q(trh),
+ q(6695) => q(tri),
+ q(6696) => q(trj),
+ q(6697) => q(trl),
+ q(6698) => q(trm),
+ q(6699) => q(trn),
+ q(6700) => q(tro),
+ q(6701) => q(trp),
+ q(6702) => q(trq),
+ q(6703) => q(trr),
+ q(6704) => q(trs),
+ q(6705) => q(trt),
+ q(6706) => q(tru),
+ q(6707) => q(trv),
+ q(6708) => q(trw),
+ q(6709) => q(trx),
+ q(6710) => q(try),
+ q(6711) => q(trz),
+ q(6712) => q(tsa),
+ q(6713) => q(tsb),
+ q(6714) => q(tsc),
+ q(6715) => q(tsd),
+ q(6716) => q(tse),
+ q(6717) => q(tsg),
+ q(6718) => q(tsh),
+ q(6719) => q(tsj),
+ q(6720) => q(tsk),
+ q(6721) => q(tsl),
+ q(6722) => q(tsm),
+ q(6723) => q(tsp),
+ q(6724) => q(tsq),
+ q(6725) => q(tsr),
+ q(6726) => q(tss),
+ q(6727) => q(tst),
+ q(6728) => q(tsu),
+ q(6729) => q(tsv),
+ q(6730) => q(tsw),
+ q(6731) => q(tsx),
+ q(6732) => q(tsy),
+ q(6733) => q(tsz),
+ q(6734) => q(tta),
+ q(6735) => q(ttb),
+ q(6736) => q(ttc),
+ q(6737) => q(ttd),
+ q(6738) => q(tte),
+ q(6739) => q(ttf),
+ q(6740) => q(ttg),
+ q(6741) => q(tth),
+ q(6742) => q(tti),
+ q(6743) => q(ttj),
+ q(6744) => q(ttk),
+ q(6745) => q(ttl),
+ q(6746) => q(ttm),
+ q(6747) => q(ttn),
+ q(6748) => q(tto),
+ q(6749) => q(ttp),
+ q(6750) => q(ttq),
+ q(6751) => q(ttr),
+ q(6752) => q(tts),
+ q(6753) => q(ttt),
+ q(6754) => q(ttu),
+ q(6755) => q(ttv),
+ q(6756) => q(ttw),
+ q(6757) => q(tty),
+ q(6758) => q(ttz),
+ q(6759) => q(tua),
+ q(6760) => q(tub),
+ q(6761) => q(tuc),
+ q(6762) => q(tud),
+ q(6763) => q(tue),
+ q(6764) => q(tuf),
+ q(6765) => q(tug),
+ q(6766) => q(tuh),
+ q(6767) => q(tui),
+ q(6768) => q(tuj),
+ q(6769) => q(tul),
+ q(6770) => q(tun),
+ q(6771) => q(tuo),
+ q(6772) => q(tuq),
+ q(6773) => q(tus),
+ q(6774) => q(tuu),
+ q(6775) => q(tuv),
+ q(6776) => q(tux),
+ q(6777) => q(tuy),
+ q(6778) => q(tuz),
+ q(6779) => q(tva),
+ q(6780) => q(tvd),
+ q(6781) => q(tve),
+ q(6782) => q(tvk),
+ q(6783) => q(tvm),
+ q(6784) => q(tvn),
+ q(6785) => q(tvo),
+ q(6786) => q(tvs),
+ q(6787) => q(tvt),
+ q(6788) => q(tvu),
+ q(6789) => q(tvw),
+ q(6790) => q(tvy),
+ q(6791) => q(twa),
+ q(6792) => q(twb),
+ q(6793) => q(twc),
+ q(6794) => q(twd),
+ q(6795) => q(twe),
+ q(6796) => q(twf),
+ q(6797) => q(twg),
+ q(6798) => q(twh),
+ q(6799) => q(twl),
+ q(6800) => q(twm),
+ q(6801) => q(twn),
+ q(6802) => q(two),
+ q(6803) => q(twp),
+ q(6804) => q(twq),
+ q(6805) => q(twr),
+ q(6806) => q(twt),
+ q(6807) => q(twu),
+ q(6808) => q(tww),
+ q(6809) => q(twx),
+ q(6810) => q(twy),
+ q(6811) => q(txa),
+ q(6812) => q(txb),
+ q(6813) => q(txc),
+ q(6814) => q(txe),
+ q(6815) => q(txg),
+ q(6816) => q(txh),
+ q(6817) => q(txi),
+ q(6818) => q(txj),
+ q(6819) => q(txm),
+ q(6820) => q(txn),
+ q(6821) => q(txo),
+ q(6822) => q(txq),
+ q(6823) => q(txr),
+ q(6824) => q(txs),
+ q(6825) => q(txt),
+ q(6826) => q(txu),
+ q(6827) => q(txx),
+ q(6828) => q(txy),
+ q(6829) => q(tya),
+ q(6830) => q(tye),
+ q(6831) => q(tyh),
+ q(6832) => q(tyi),
+ q(6833) => q(tyj),
+ q(6834) => q(tyl),
+ q(6835) => q(tyn),
+ q(6836) => q(typ),
+ q(6837) => q(tyr),
+ q(6838) => q(tys),
+ q(6839) => q(tyt),
+ q(6840) => q(tyu),
+ q(6841) => q(tyx),
+ q(6842) => q(tyz),
+ q(6843) => q(tza),
+ q(6844) => q(tzh),
+ q(6845) => q(tzj),
+ q(6846) => q(tzl),
+ q(6847) => q(tzm),
+ q(6848) => q(tzn),
+ q(6849) => q(tzo),
+ q(6850) => q(tzx),
+ q(6851) => q(uam),
+ q(6852) => q(uan),
+ q(6853) => q(uar),
+ q(6854) => q(uba),
+ q(6855) => q(ubi),
+ q(6856) => q(ubl),
+ q(6857) => q(ubr),
+ q(6858) => q(ubu),
+ q(6859) => q(uby),
+ q(6860) => q(uda),
+ q(6861) => q(ude),
+ q(6862) => q(udg),
+ q(6863) => q(udi),
+ q(6864) => q(udj),
+ q(6865) => q(udl),
+ q(6866) => q(udu),
+ q(6867) => q(ues),
+ q(6868) => q(ufi),
+ q(6869) => q(ugb),
+ q(6870) => q(uge),
+ q(6871) => q(ugn),
+ q(6872) => q(ugo),
+ q(6873) => q(ugy),
+ q(6874) => q(uha),
+ q(6875) => q(uhn),
+ q(6876) => q(uis),
+ q(6877) => q(uiv),
+ q(6878) => q(uji),
+ q(6879) => q(uka),
+ q(6880) => q(ukg),
+ q(6881) => q(ukh),
+ q(6882) => q(ukl),
+ q(6883) => q(ukp),
+ q(6884) => q(ukq),
+ q(6885) => q(uks),
+ q(6886) => q(uku),
+ q(6887) => q(ukw),
+ q(6888) => q(uky),
+ q(6889) => q(ula),
+ q(6890) => q(ulb),
+ q(6891) => q(ulc),
+ q(6892) => q(ule),
+ q(6893) => q(ulf),
+ q(6894) => q(uli),
+ q(6895) => q(ulk),
+ q(6896) => q(ull),
+ q(6897) => q(ulm),
+ q(6898) => q(uln),
+ q(6899) => q(ulu),
+ q(6900) => q(ulw),
+ q(6901) => q(uma),
+ q(6902) => q(umc),
+ q(6903) => q(umd),
+ q(6904) => q(umg),
+ q(6905) => q(umi),
+ q(6906) => q(umm),
+ q(6907) => q(umn),
+ q(6908) => q(umo),
+ q(6909) => q(ump),
+ q(6910) => q(umr),
+ q(6911) => q(ums),
+ q(6912) => q(umu),
+ q(6913) => q(una),
+ q(6914) => q(une),
+ q(6915) => q(ung),
+ q(6916) => q(unk),
+ q(6917) => q(unm),
+ q(6918) => q(unn),
+ q(6919) => q(unr),
+ q(6920) => q(unu),
+ q(6921) => q(unx),
+ q(6922) => q(unz),
+ q(6923) => q(upi),
+ q(6924) => q(upv),
+ q(6925) => q(ura),
+ q(6926) => q(urb),
+ q(6927) => q(urc),
+ q(6928) => q(ure),
+ q(6929) => q(urf),
+ q(6930) => q(urg),
+ q(6931) => q(urh),
+ q(6932) => q(uri),
+ q(6933) => q(urk),
+ q(6934) => q(url),
+ q(6935) => q(urm),
+ q(6936) => q(urn),
+ q(6937) => q(uro),
+ q(6938) => q(urp),
+ q(6939) => q(urr),
+ q(6940) => q(urt),
+ q(6941) => q(uru),
+ q(6942) => q(urv),
+ q(6943) => q(urw),
+ q(6944) => q(urx),
+ q(6945) => q(ury),
+ q(6946) => q(urz),
+ q(6947) => q(usa),
+ q(6948) => q(ush),
+ q(6949) => q(usi),
+ q(6950) => q(usk),
+ q(6951) => q(usp),
+ q(6952) => q(usu),
+ q(6953) => q(uta),
+ q(6954) => q(ute),
+ q(6955) => q(utp),
+ q(6956) => q(utr),
+ q(6957) => q(utu),
+ q(6958) => q(uum),
+ q(6959) => q(uun),
+ q(6960) => q(uur),
+ q(6961) => q(uuu),
+ q(6962) => q(uve),
+ q(6963) => q(uvh),
+ q(6964) => q(uvl),
+ q(6965) => q(uwa),
+ q(6966) => q(uya),
+ q(6967) => q(uzn),
+ q(6968) => q(uzs),
+ q(6969) => q(vaa),
+ q(6970) => q(vae),
+ q(6971) => q(vaf),
+ q(6972) => q(vag),
+ q(6973) => q(vah),
+ q(6974) => q(vaj),
+ q(6975) => q(val),
+ q(6976) => q(vam),
+ q(6977) => q(van),
+ q(6978) => q(vao),
+ q(6979) => q(vap),
+ q(6980) => q(var),
+ q(6981) => q(vas),
+ q(6982) => q(vau),
+ q(6983) => q(vav),
+ q(6984) => q(vay),
+ q(6985) => q(vbb),
+ q(6986) => q(vbk),
+ q(6987) => q(vec),
+ q(6988) => q(ved),
+ q(6989) => q(vel),
+ q(6990) => q(vem),
+ q(6991) => q(veo),
+ q(6992) => q(vep),
+ q(6993) => q(ver),
+ q(6994) => q(vgr),
+ q(6995) => q(vgt),
+ q(6996) => q(vic),
+ q(6997) => q(vid),
+ q(6998) => q(vif),
+ q(6999) => q(vig),
+ q(7000) => q(vil),
+ q(7001) => q(vin),
+ q(7002) => q(vis),
+ q(7003) => q(vit),
+ q(7004) => q(viv),
+ q(7005) => q(vka),
+ q(7006) => q(vki),
+ q(7007) => q(vkj),
+ q(7008) => q(vkk),
+ q(7009) => q(vkl),
+ q(7010) => q(vkm),
+ q(7011) => q(vko),
+ q(7012) => q(vkp),
+ q(7013) => q(vkt),
+ q(7014) => q(vku),
+ q(7015) => q(vlp),
+ q(7016) => q(vls),
+ q(7017) => q(vma),
+ q(7018) => q(vmb),
+ q(7019) => q(vmc),
+ q(7020) => q(vmd),
+ q(7021) => q(vme),
+ q(7022) => q(vmf),
+ q(7023) => q(vmg),
+ q(7024) => q(vmh),
+ q(7025) => q(vmi),
+ q(7026) => q(vmj),
+ q(7027) => q(vmk),
+ q(7028) => q(vml),
+ q(7029) => q(vmm),
+ q(7030) => q(vmp),
+ q(7031) => q(vmq),
+ q(7032) => q(vmr),
+ q(7033) => q(vms),
+ q(7034) => q(vmu),
+ q(7035) => q(vmv),
+ q(7036) => q(vmw),
+ q(7037) => q(vmx),
+ q(7038) => q(vmy),
+ q(7039) => q(vmz),
+ q(7040) => q(vnk),
+ q(7041) => q(vnm),
+ q(7042) => q(vnp),
+ q(7043) => q(vro),
+ q(7044) => q(vra),
+ q(7045) => q(vrs),
+ q(7046) => q(vrt),
+ q(7047) => q(vsi),
+ q(7048) => q(vsl),
+ q(7049) => q(vsv),
+ q(7050) => q(vto),
+ q(7051) => q(vum),
+ q(7052) => q(vun),
+ q(7053) => q(vut),
+ q(7054) => q(vwa),
+ q(7055) => q(waa),
+ q(7056) => q(wab),
+ q(7057) => q(wac),
+ q(7058) => q(wad),
+ q(7059) => q(wae),
+ q(7060) => q(waf),
+ q(7061) => q(wag),
+ q(7062) => q(wah),
+ q(7063) => q(wai),
+ q(7064) => q(waj),
+ q(7065) => q(wam),
+ q(7066) => q(wan),
+ q(7067) => q(wao),
+ q(7068) => q(wap),
+ q(7069) => q(waq),
+ q(7070) => q(wat),
+ q(7071) => q(wau),
+ q(7072) => q(wav),
+ q(7073) => q(waw),
+ q(7074) => q(wax),
+ q(7075) => q(way),
+ q(7076) => q(waz),
+ q(7077) => q(wba),
+ q(7078) => q(wbb),
+ q(7079) => q(wbe),
+ q(7080) => q(wbh),
+ q(7081) => q(wbi),
+ q(7082) => q(wbj),
+ q(7083) => q(wbk),
+ q(7084) => q(wbl),
+ q(7085) => q(wbm),
+ q(7086) => q(wbp),
+ q(7087) => q(wbq),
+ q(7088) => q(wbr),
+ q(7089) => q(wbt),
+ q(7090) => q(wbv),
+ q(7091) => q(wbw),
+ q(7092) => q(wca),
+ q(7093) => q(wci),
+ q(7094) => q(wdd),
+ q(7095) => q(wdg),
+ q(7096) => q(wdj),
+ q(7097) => q(wdk),
+ q(7098) => q(wdu),
+ q(7099) => q(wdy),
+ q(7100) => q(wea),
+ q(7101) => q(wec),
+ q(7102) => q(wed),
+ q(7103) => q(weg),
+ q(7104) => q(weh),
+ q(7105) => q(wei),
+ q(7106) => q(wem),
+ q(7107) => q(weo),
+ q(7108) => q(wep),
+ q(7109) => q(wer),
+ q(7110) => q(wes),
+ q(7111) => q(wet),
+ q(7112) => q(weu),
+ q(7113) => q(wew),
+ q(7114) => q(wfg),
+ q(7115) => q(wga),
+ q(7116) => q(wgb),
+ q(7117) => q(wgg),
+ q(7118) => q(wgi),
+ q(7119) => q(wgo),
+ q(7120) => q(wgu),
+ q(7121) => q(wgy),
+ q(7122) => q(wha),
+ q(7123) => q(whg),
+ q(7124) => q(whk),
+ q(7125) => q(whu),
+ q(7126) => q(wib),
+ q(7127) => q(wic),
+ q(7128) => q(wie),
+ q(7129) => q(wif),
+ q(7130) => q(wig),
+ q(7131) => q(wih),
+ q(7132) => q(wii),
+ q(7133) => q(wij),
+ q(7134) => q(wik),
+ q(7135) => q(wil),
+ q(7136) => q(wim),
+ q(7137) => q(win),
+ q(7138) => q(wir),
+ q(7139) => q(wiu),
+ q(7140) => q(wiv),
+ q(7141) => q(wiy),
+ q(7142) => q(wja),
+ q(7143) => q(wji),
+ q(7144) => q(wka),
+ q(7145) => q(wkb),
+ q(7146) => q(wkd),
+ q(7147) => q(wkl),
+ q(7148) => q(wku),
+ q(7149) => q(wkw),
+ q(7150) => q(wky),
+ q(7151) => q(wla),
+ q(7152) => q(wlc),
+ q(7153) => q(wle),
+ q(7154) => q(wlg),
+ q(7155) => q(wli),
+ q(7156) => q(wlk),
+ q(7157) => q(wll),
+ q(7158) => q(wlm),
+ q(7159) => q(wlo),
+ q(7160) => q(wlr),
+ q(7161) => q(wls),
+ q(7162) => q(wlu),
+ q(7163) => q(wlv),
+ q(7164) => q(wlw),
+ q(7165) => q(wlx),
+ q(7166) => q(wly),
+ q(7167) => q(wma),
+ q(7168) => q(wmb),
+ q(7169) => q(wmc),
+ q(7170) => q(wmd),
+ q(7171) => q(wme),
+ q(7172) => q(wmh),
+ q(7173) => q(wmi),
+ q(7174) => q(wmm),
+ q(7175) => q(wmn),
+ q(7176) => q(wmo),
+ q(7177) => q(wms),
+ q(7178) => q(wmt),
+ q(7179) => q(wmw),
+ q(7180) => q(wmx),
+ q(7181) => q(wnb),
+ q(7182) => q(wnc),
+ q(7183) => q(wnd),
+ q(7184) => q(wne),
+ q(7185) => q(wng),
+ q(7186) => q(wni),
+ q(7187) => q(wnk),
+ q(7188) => q(wnm),
+ q(7189) => q(wnn),
+ q(7190) => q(wno),
+ q(7191) => q(wnp),
+ q(7192) => q(wnu),
+ q(7193) => q(wnw),
+ q(7194) => q(wny),
+ q(7195) => q(woa),
+ q(7196) => q(wob),
+ q(7197) => q(woc),
+ q(7198) => q(wod),
+ q(7199) => q(woe),
+ q(7200) => q(wof),
+ q(7201) => q(wog),
+ q(7202) => q(woi),
+ q(7203) => q(wok),
+ q(7204) => q(wom),
+ q(7205) => q(won),
+ q(7206) => q(woo),
+ q(7207) => q(wor),
+ q(7208) => q(wos),
+ q(7209) => q(wow),
+ q(7210) => q(woy),
+ q(7211) => q(wpc),
+ q(7212) => q(wra),
+ q(7213) => q(wrb),
+ q(7214) => q(wrd),
+ q(7215) => q(wrg),
+ q(7216) => q(wrh),
+ q(7217) => q(wri),
+ q(7218) => q(wrk),
+ q(7219) => q(wrl),
+ q(7220) => q(wrm),
+ q(7221) => q(wrn),
+ q(7222) => q(wro),
+ q(7223) => q(wrp),
+ q(7224) => q(wrr),
+ q(7225) => q(wrs),
+ q(7226) => q(wru),
+ q(7227) => q(wrv),
+ q(7228) => q(wrw),
+ q(7229) => q(wrx),
+ q(7230) => q(wry),
+ q(7231) => q(wrz),
+ q(7232) => q(wsa),
+ q(7233) => q(wsi),
+ q(7234) => q(wsk),
+ q(7235) => q(wsr),
+ q(7236) => q(wss),
+ q(7237) => q(wsu),
+ q(7238) => q(wsv),
+ q(7239) => q(wtf),
+ q(7240) => q(wth),
+ q(7241) => q(wti),
+ q(7242) => q(wtk),
+ q(7243) => q(wtm),
+ q(7244) => q(wtw),
+ q(7245) => q(wua),
+ q(7246) => q(wub),
+ q(7247) => q(wud),
+ q(7248) => q(wuh),
+ q(7249) => q(wul),
+ q(7250) => q(wum),
+ q(7251) => q(wun),
+ q(7252) => q(wur),
+ q(7253) => q(wut),
+ q(7254) => q(wuu),
+ q(7255) => q(wuv),
+ q(7256) => q(wux),
+ q(7257) => q(wuy),
+ q(7258) => q(wwa),
+ q(7259) => q(wwb),
+ q(7260) => q(wwo),
+ q(7261) => q(wwr),
+ q(7262) => q(www),
+ q(7263) => q(wxa),
+ q(7264) => q(wxw),
+ q(7265) => q(wya),
+ q(7266) => q(wyb),
+ q(7267) => q(wyi),
+ q(7268) => q(wym),
+ q(7269) => q(wyr),
+ q(7270) => q(wyy),
+ q(7271) => q(xaa),
+ q(7272) => q(xab),
+ q(7273) => q(xac),
+ q(7274) => q(xad),
+ q(7275) => q(xae),
+ q(7276) => q(xag),
+ q(7277) => q(xai),
+ q(7278) => q(xaj),
+ q(7279) => q(xam),
+ q(7280) => q(xan),
+ q(7281) => q(xao),
+ q(7282) => q(xap),
+ q(7283) => q(xaq),
+ q(7284) => q(xar),
+ q(7285) => q(xas),
+ q(7286) => q(xat),
+ q(7287) => q(xau),
+ q(7288) => q(xav),
+ q(7289) => q(xaw),
+ q(7290) => q(xay),
+ q(7291) => q(xba),
+ q(7292) => q(xbb),
+ q(7293) => q(xbc),
+ q(7294) => q(xbd),
+ q(7295) => q(xbe),
+ q(7296) => q(xbg),
+ q(7297) => q(xbi),
+ q(7298) => q(xbj),
+ q(7299) => q(xbm),
+ q(7300) => q(xbn),
+ q(7301) => q(xbo),
+ q(7302) => q(xbp),
+ q(7303) => q(xbr),
+ q(7304) => q(xbw),
+ q(7305) => q(xbx),
+ q(7306) => q(xby),
+ q(7307) => q(xcb),
+ q(7308) => q(xcc),
+ q(7309) => q(xce),
+ q(7310) => q(xcg),
+ q(7311) => q(xch),
+ q(7312) => q(xcl),
+ q(7313) => q(xcm),
+ q(7314) => q(xcn),
+ q(7315) => q(xco),
+ q(7316) => q(xcr),
+ q(7317) => q(xct),
+ q(7318) => q(xcu),
+ q(7319) => q(xcv),
+ q(7320) => q(xcw),
+ q(7321) => q(xcy),
+ q(7322) => q(xda),
+ q(7323) => q(xdc),
+ q(7324) => q(xdk),
+ q(7325) => q(xdm),
+ q(7326) => q(xdy),
+ q(7327) => q(xeb),
+ q(7328) => q(xed),
+ q(7329) => q(xeg),
+ q(7330) => q(xel),
+ q(7331) => q(xem),
+ q(7332) => q(xep),
+ q(7333) => q(xer),
+ q(7334) => q(xes),
+ q(7335) => q(xet),
+ q(7336) => q(xeu),
+ q(7337) => q(xfa),
+ q(7338) => q(xga),
+ q(7339) => q(xgb),
+ q(7340) => q(xgd),
+ q(7341) => q(xgf),
+ q(7342) => q(xgg),
+ q(7343) => q(xgi),
+ q(7344) => q(xgl),
+ q(7345) => q(xgm),
+ q(7346) => q(xgr),
+ q(7347) => q(xgu),
+ q(7348) => q(xgw),
+ q(7349) => q(xha),
+ q(7350) => q(xhc),
+ q(7351) => q(xhd),
+ q(7352) => q(xhe),
+ q(7353) => q(xhr),
+ q(7354) => q(xht),
+ q(7355) => q(xhu),
+ q(7356) => q(xhv),
+ q(7357) => q(xib),
+ q(7358) => q(xii),
+ q(7359) => q(xil),
+ q(7360) => q(xin),
+ q(7361) => q(xip),
+ q(7362) => q(xir),
+ q(7363) => q(xis),
+ q(7364) => q(xiv),
+ q(7365) => q(xiy),
+ q(7366) => q(xjb),
+ q(7367) => q(xjt),
+ q(7368) => q(xka),
+ q(7369) => q(xkb),
+ q(7370) => q(xkc),
+ q(7371) => q(xkd),
+ q(7372) => q(xke),
+ q(7373) => q(xkf),
+ q(7374) => q(xkg),
+ q(7375) => q(xkh),
+ q(7376) => q(xki),
+ q(7377) => q(xkj),
+ q(7378) => q(xkk),
+ q(7379) => q(xkl),
+ q(7380) => q(xkn),
+ q(7381) => q(xko),
+ q(7382) => q(xkp),
+ q(7383) => q(xkq),
+ q(7384) => q(xkr),
+ q(7385) => q(xks),
+ q(7386) => q(xkt),
+ q(7387) => q(xku),
+ q(7388) => q(xkv),
+ q(7389) => q(xkw),
+ q(7390) => q(xkx),
+ q(7391) => q(xky),
+ q(7392) => q(xkz),
+ q(7393) => q(xla),
+ q(7394) => q(xlb),
+ q(7395) => q(xlc),
+ q(7396) => q(xld),
+ q(7397) => q(xle),
+ q(7398) => q(xlg),
+ q(7399) => q(xli),
+ q(7400) => q(xln),
+ q(7401) => q(xlo),
+ q(7402) => q(xlp),
+ q(7403) => q(xls),
+ q(7404) => q(xlu),
+ q(7405) => q(xly),
+ q(7406) => q(xma),
+ q(7407) => q(xmb),
+ q(7408) => q(xmc),
+ q(7409) => q(xmd),
+ q(7410) => q(xme),
+ q(7411) => q(xmf),
+ q(7412) => q(xmg),
+ q(7413) => q(xmh),
+ q(7414) => q(xmj),
+ q(7415) => q(xmk),
+ q(7416) => q(xml),
+ q(7417) => q(xmm),
+ q(7418) => q(xmn),
+ q(7419) => q(xmo),
+ q(7420) => q(xmp),
+ q(7421) => q(xmq),
+ q(7422) => q(xmr),
+ q(7423) => q(xms),
+ q(7424) => q(xmt),
+ q(7425) => q(xmu),
+ q(7426) => q(xmv),
+ q(7427) => q(xmw),
+ q(7428) => q(xmx),
+ q(7429) => q(xmy),
+ q(7430) => q(xmz),
+ q(7431) => q(xna),
+ q(7432) => q(xnb),
+ q(7433) => q(xng),
+ q(7434) => q(xnh),
+ q(7435) => q(xni),
+ q(7436) => q(xnk),
+ q(7437) => q(xnn),
+ q(7438) => q(xno),
+ q(7439) => q(xnr),
+ q(7440) => q(xns),
+ q(7441) => q(xnt),
+ q(7442) => q(xnu),
+ q(7443) => q(xny),
+ q(7444) => q(xnz),
+ q(7445) => q(xoc),
+ q(7446) => q(xod),
+ q(7447) => q(xog),
+ q(7448) => q(xoi),
+ q(7449) => q(xok),
+ q(7450) => q(xom),
+ q(7451) => q(xon),
+ q(7452) => q(xoo),
+ q(7453) => q(xop),
+ q(7454) => q(xor),
+ q(7455) => q(xow),
+ q(7456) => q(xpa),
+ q(7457) => q(xpc),
+ q(7458) => q(xpe),
+ q(7459) => q(xpg),
+ q(7460) => q(xpi),
+ q(7461) => q(xpj),
+ q(7462) => q(xpk),
+ q(7463) => q(xpm),
+ q(7464) => q(xpn),
+ q(7465) => q(xpo),
+ q(7466) => q(xpp),
+ q(7467) => q(xpq),
+ q(7468) => q(xpr),
+ q(7469) => q(xps),
+ q(7470) => q(xpt),
+ q(7471) => q(xpu),
+ q(7472) => q(xpy),
+ q(7473) => q(xqa),
+ q(7474) => q(xqt),
+ q(7475) => q(xra),
+ q(7476) => q(xrb),
+ q(7477) => q(xrd),
+ q(7478) => q(xre),
+ q(7479) => q(xrg),
+ q(7480) => q(xri),
+ q(7481) => q(xrm),
+ q(7482) => q(xrn),
+ q(7483) => q(xrq),
+ q(7484) => q(xrr),
+ q(7485) => q(xrt),
+ q(7486) => q(xru),
+ q(7487) => q(xrw),
+ q(7488) => q(xsa),
+ q(7489) => q(xsb),
+ q(7490) => q(xsc),
+ q(7491) => q(xsd),
+ q(7492) => q(xse),
+ q(7493) => q(xsh),
+ q(7494) => q(xsi),
+ q(7495) => q(xsl),
+ q(7496) => q(xsm),
+ q(7497) => q(xsn),
+ q(7498) => q(xso),
+ q(7499) => q(xsp),
+ q(7500) => q(xsq),
+ q(7501) => q(xsr),
+ q(7502) => q(xss),
+ q(7503) => q(xsu),
+ q(7504) => q(xsv),
+ q(7505) => q(xsy),
+ q(7506) => q(xta),
+ q(7507) => q(xtb),
+ q(7508) => q(xtc),
+ q(7509) => q(xtd),
+ q(7510) => q(xte),
+ q(7511) => q(xtg),
+ q(7512) => q(xth),
+ q(7513) => q(xti),
+ q(7514) => q(xtj),
+ q(7515) => q(xtl),
+ q(7516) => q(xtm),
+ q(7517) => q(xtn),
+ q(7518) => q(xto),
+ q(7519) => q(xtp),
+ q(7520) => q(xtq),
+ q(7521) => q(xtr),
+ q(7522) => q(xts),
+ q(7523) => q(xtt),
+ q(7524) => q(xtu),
+ q(7525) => q(xtv),
+ q(7526) => q(xtw),
+ q(7527) => q(xty),
+ q(7528) => q(xtz),
+ q(7529) => q(xua),
+ q(7530) => q(xub),
+ q(7531) => q(xud),
+ q(7532) => q(xug),
+ q(7533) => q(xuj),
+ q(7534) => q(xul),
+ q(7535) => q(xum),
+ q(7536) => q(xun),
+ q(7537) => q(xuo),
+ q(7538) => q(xup),
+ q(7539) => q(xur),
+ q(7540) => q(xut),
+ q(7541) => q(xuu),
+ q(7542) => q(xve),
+ q(7543) => q(xvi),
+ q(7544) => q(xvn),
+ q(7545) => q(xvo),
+ q(7546) => q(xvs),
+ q(7547) => q(xwa),
+ q(7548) => q(xwc),
+ q(7549) => q(xwd),
+ q(7550) => q(xwe),
+ q(7551) => q(xwg),
+ q(7552) => q(xwj),
+ q(7553) => q(xwk),
+ q(7554) => q(xwl),
+ q(7555) => q(xwo),
+ q(7556) => q(xwr),
+ q(7557) => q(xwt),
+ q(7558) => q(xww),
+ q(7559) => q(xxb),
+ q(7560) => q(xxk),
+ q(7561) => q(xxm),
+ q(7562) => q(xxr),
+ q(7563) => q(xxt),
+ q(7564) => q(xya),
+ q(7565) => q(xyb),
+ q(7566) => q(xyj),
+ q(7567) => q(xyk),
+ q(7568) => q(xyl),
+ q(7569) => q(xyt),
+ q(7570) => q(xyy),
+ q(7571) => q(xzh),
+ q(7572) => q(xzm),
+ q(7573) => q(xzp),
+ q(7574) => q(yaa),
+ q(7575) => q(yab),
+ q(7576) => q(yac),
+ q(7577) => q(yad),
+ q(7578) => q(yae),
+ q(7579) => q(yaf),
+ q(7580) => q(yag),
+ q(7581) => q(yah),
+ q(7582) => q(yai),
+ q(7583) => q(yaj),
+ q(7584) => q(yak),
+ q(7585) => q(yal),
+ q(7586) => q(yam),
+ q(7587) => q(yan),
+ q(7588) => q(yaq),
+ q(7589) => q(yar),
+ q(7590) => q(yas),
+ q(7591) => q(yat),
+ q(7592) => q(yau),
+ q(7593) => q(yav),
+ q(7594) => q(yaw),
+ q(7595) => q(yax),
+ q(7596) => q(yay),
+ q(7597) => q(yaz),
+ q(7598) => q(yba),
+ q(7599) => q(ybb),
+ q(7600) => q(ybe),
+ q(7601) => q(ybh),
+ q(7602) => q(ybi),
+ q(7603) => q(ybj),
+ q(7604) => q(ybk),
+ q(7605) => q(ybl),
+ q(7606) => q(ybm),
+ q(7607) => q(ybn),
+ q(7608) => q(ybo),
+ q(7609) => q(ybx),
+ q(7610) => q(yby),
+ q(7611) => q(ych),
+ q(7612) => q(ycl),
+ q(7613) => q(ycn),
+ q(7614) => q(ycp),
+ q(7615) => q(yda),
+ q(7616) => q(ydd),
+ q(7617) => q(yde),
+ q(7618) => q(ydg),
+ q(7619) => q(ydk),
+ q(7620) => q(yea),
+ q(7621) => q(yec),
+ q(7622) => q(yee),
+ q(7623) => q(yei),
+ q(7624) => q(yej),
+ q(7625) => q(yel),
+ q(7626) => q(yer),
+ q(7627) => q(yes),
+ q(7628) => q(yet),
+ q(7629) => q(yeu),
+ q(7630) => q(yev),
+ q(7631) => q(yey),
+ q(7632) => q(yga),
+ q(7633) => q(ygi),
+ q(7634) => q(ygl),
+ q(7635) => q(ygm),
+ q(7636) => q(ygp),
+ q(7637) => q(ygr),
+ q(7638) => q(ygs),
+ q(7639) => q(ygu),
+ q(7640) => q(ygw),
+ q(7641) => q(yha),
+ q(7642) => q(yhd),
+ q(7643) => q(yhl),
+ q(7644) => q(yia),
+ q(7645) => q(yig),
+ q(7646) => q(yih),
+ q(7647) => q(yii),
+ q(7648) => q(yij),
+ q(7649) => q(yik),
+ q(7650) => q(yil),
+ q(7651) => q(yim),
+ q(7652) => q(yin),
+ q(7653) => q(yip),
+ q(7654) => q(yiq),
+ q(7655) => q(yir),
+ q(7656) => q(yis),
+ q(7657) => q(yit),
+ q(7658) => q(yiu),
+ q(7659) => q(yiv),
+ q(7660) => q(yix),
+ q(7661) => q(yiz),
+ q(7662) => q(yka),
+ q(7663) => q(ykg),
+ q(7664) => q(yki),
+ q(7665) => q(ykk),
+ q(7666) => q(ykl),
+ q(7667) => q(ykm),
+ q(7668) => q(ykn),
+ q(7669) => q(yko),
+ q(7670) => q(ykr),
+ q(7671) => q(ykt),
+ q(7672) => q(yku),
+ q(7673) => q(yky),
+ q(7674) => q(yla),
+ q(7675) => q(ylb),
+ q(7676) => q(yle),
+ q(7677) => q(ylg),
+ q(7678) => q(yli),
+ q(7679) => q(yll),
+ q(7680) => q(ylm),
+ q(7681) => q(yln),
+ q(7682) => q(ylo),
+ q(7683) => q(ylr),
+ q(7684) => q(ylu),
+ q(7685) => q(yly),
+ q(7686) => q(ymb),
+ q(7687) => q(ymc),
+ q(7688) => q(ymd),
+ q(7689) => q(yme),
+ q(7690) => q(ymg),
+ q(7691) => q(ymh),
+ q(7692) => q(ymi),
+ q(7693) => q(ymk),
+ q(7694) => q(yml),
+ q(7695) => q(ymm),
+ q(7696) => q(ymn),
+ q(7697) => q(ymo),
+ q(7698) => q(ymp),
+ q(7699) => q(ymq),
+ q(7700) => q(ymr),
+ q(7701) => q(yms),
+ q(7702) => q(ymx),
+ q(7703) => q(ymz),
+ q(7704) => q(yna),
+ q(7705) => q(ynd),
+ q(7706) => q(yne),
+ q(7707) => q(yng),
+ q(7708) => q(ynk),
+ q(7709) => q(ynl),
+ q(7710) => q(ynn),
+ q(7711) => q(yno),
+ q(7712) => q(ynq),
+ q(7713) => q(yns),
+ q(7714) => q(ynu),
+ q(7715) => q(yob),
+ q(7716) => q(yog),
+ q(7717) => q(yoi),
+ q(7718) => q(yok),
+ q(7719) => q(yol),
+ q(7720) => q(yom),
+ q(7721) => q(yon),
+ q(7722) => q(yot),
+ q(7723) => q(yox),
+ q(7724) => q(yoy),
+ q(7725) => q(ypa),
+ q(7726) => q(ypb),
+ q(7727) => q(ypg),
+ q(7728) => q(yph),
+ q(7729) => q(ypm),
+ q(7730) => q(ypn),
+ q(7731) => q(ypo),
+ q(7732) => q(ypp),
+ q(7733) => q(ypz),
+ q(7734) => q(yra),
+ q(7735) => q(yrb),
+ q(7736) => q(yre),
+ q(7737) => q(yri),
+ q(7738) => q(yrk),
+ q(7739) => q(yrl),
+ q(7740) => q(yrm),
+ q(7741) => q(yrn),
+ q(7742) => q(yrs),
+ q(7743) => q(yrw),
+ q(7744) => q(yry),
+ q(7745) => q(ysc),
+ q(7746) => q(ysd),
+ q(7747) => q(ysg),
+ q(7748) => q(ysl),
+ q(7749) => q(ysn),
+ q(7750) => q(yso),
+ q(7751) => q(ysp),
+ q(7752) => q(ysr),
+ q(7753) => q(yss),
+ q(7754) => q(ysy),
+ q(7755) => q(yta),
+ q(7756) => q(ytl),
+ q(7757) => q(ytp),
+ q(7758) => q(ytw),
+ q(7759) => q(yty),
+ q(7760) => q(yua),
+ q(7761) => q(yub),
+ q(7762) => q(yuc),
+ q(7763) => q(yud),
+ q(7764) => q(yue),
+ q(7765) => q(yuf),
+ q(7766) => q(yug),
+ q(7767) => q(yui),
+ q(7768) => q(yuj),
+ q(7769) => q(yuk),
+ q(7770) => q(yul),
+ q(7771) => q(yum),
+ q(7772) => q(yun),
+ q(7773) => q(yup),
+ q(7774) => q(yuq),
+ q(7775) => q(yur),
+ q(7776) => q(yut),
+ q(7777) => q(yuw),
+ q(7778) => q(yux),
+ q(7779) => q(yuy),
+ q(7780) => q(yuz),
+ q(7781) => q(yva),
+ q(7782) => q(yvt),
+ q(7783) => q(ywa),
+ q(7784) => q(ywg),
+ q(7785) => q(ywl),
+ q(7786) => q(ywn),
+ q(7787) => q(ywq),
+ q(7788) => q(ywr),
+ q(7789) => q(ywt),
+ q(7790) => q(ywu),
+ q(7791) => q(yww),
+ q(7792) => q(yxa),
+ q(7793) => q(yxg),
+ q(7794) => q(yxl),
+ q(7795) => q(yxm),
+ q(7796) => q(yxu),
+ q(7797) => q(yxy),
+ q(7798) => q(yyr),
+ q(7799) => q(yyu),
+ q(7800) => q(yyz),
+ q(7801) => q(yzg),
+ q(7802) => q(yzk),
+ q(7803) => q(zaa),
+ q(7804) => q(zab),
+ q(7805) => q(zac),
+ q(7806) => q(zad),
+ q(7807) => q(zae),
+ q(7808) => q(zaf),
+ q(7809) => q(zag),
+ q(7810) => q(zah),
+ q(7811) => q(zai),
+ q(7812) => q(zaj),
+ q(7813) => q(zak),
+ q(7814) => q(zal),
+ q(7815) => q(zam),
+ q(7816) => q(zao),
+ q(7817) => q(zaq),
+ q(7818) => q(zar),
+ q(7819) => q(zas),
+ q(7820) => q(zat),
+ q(7821) => q(zau),
+ q(7822) => q(zav),
+ q(7823) => q(zaw),
+ q(7824) => q(zax),
+ q(7825) => q(zay),
+ q(7826) => q(zaz),
+ q(7827) => q(zbc),
+ q(7828) => q(zbe),
+ q(7829) => q(zbt),
+ q(7830) => q(zbw),
+ q(7831) => q(zca),
+ q(7832) => q(zch),
+ q(7833) => q(zdj),
+ q(7834) => q(zea),
+ q(7835) => q(zeg),
+ q(7836) => q(zeh),
+ q(7837) => q(zga),
+ q(7838) => q(zgb),
+ q(7839) => q(zgm),
+ q(7840) => q(zgn),
+ q(7841) => q(zgr),
+ q(7842) => q(zhb),
+ q(7843) => q(zhd),
+ q(7844) => q(zhi),
+ q(7845) => q(zhn),
+ q(7846) => q(zhw),
+ q(7847) => q(zia),
+ q(7848) => q(zib),
+ q(7849) => q(zik),
+ q(7850) => q(zil),
+ q(7851) => q(zim),
+ q(7852) => q(zin),
+ q(7853) => q(zir),
+ q(7854) => q(ziw),
+ q(7855) => q(ziz),
+ q(7856) => q(zka),
+ q(7857) => q(zkb),
+ q(7858) => q(zkd),
+ q(7859) => q(zkg),
+ q(7860) => q(zkh),
+ q(7861) => q(zkk),
+ q(7862) => q(zkn),
+ q(7863) => q(zko),
+ q(7864) => q(zkp),
+ q(7865) => q(zkr),
+ q(7866) => q(zkt),
+ q(7867) => q(zku),
+ q(7868) => q(zkv),
+ q(7869) => q(zkz),
+ q(7870) => q(zlj),
+ q(7871) => q(zlm),
+ q(7872) => q(zln),
+ q(7873) => q(zlq),
+ q(7874) => q(zma),
+ q(7875) => q(zmb),
+ q(7876) => q(zmc),
+ q(7877) => q(zmd),
+ q(7878) => q(zme),
+ q(7879) => q(zmf),
+ q(7880) => q(zmg),
+ q(7881) => q(zmh),
+ q(7882) => q(zmi),
+ q(7883) => q(zmj),
+ q(7884) => q(zmk),
+ q(7885) => q(zml),
+ q(7886) => q(zmm),
+ q(7887) => q(zmn),
+ q(7888) => q(zmo),
+ q(7889) => q(zmp),
+ q(7890) => q(zmq),
+ q(7891) => q(zmr),
+ q(7892) => q(zms),
+ q(7893) => q(zmt),
+ q(7894) => q(zmu),
+ q(7895) => q(zmv),
+ q(7896) => q(zmw),
+ q(7897) => q(zmx),
+ q(7898) => q(zmy),
+ q(7899) => q(zmz),
+ q(7900) => q(zna),
+ q(7901) => q(zne),
+ q(7902) => q(zng),
+ q(7903) => q(znk),
+ q(7904) => q(zns),
+ q(7905) => q(zoc),
+ q(7906) => q(zoh),
+ q(7907) => q(zom),
+ q(7908) => q(zoo),
+ q(7909) => q(zoq),
+ q(7910) => q(zor),
+ q(7911) => q(zos),
+ q(7912) => q(zpa),
+ q(7913) => q(zpb),
+ q(7914) => q(zpc),
+ q(7915) => q(zpd),
+ q(7916) => q(zpe),
+ q(7917) => q(zpf),
+ q(7918) => q(zpg),
+ q(7919) => q(zph),
+ q(7920) => q(zpi),
+ q(7921) => q(zpj),
+ q(7922) => q(zpk),
+ q(7923) => q(zpl),
+ q(7924) => q(zpm),
+ q(7925) => q(zpn),
+ q(7926) => q(zpo),
+ q(7927) => q(zpp),
+ q(7928) => q(zpq),
+ q(7929) => q(zpr),
+ q(7930) => q(zps),
+ q(7931) => q(zpt),
+ q(7932) => q(zpu),
+ q(7933) => q(zpv),
+ q(7934) => q(zpw),
+ q(7935) => q(zpx),
+ q(7936) => q(zpy),
+ q(7937) => q(zpz),
+ q(7938) => q(zqe),
+ q(7939) => q(zra),
+ q(7940) => q(zrg),
+ q(7941) => q(zrn),
+ q(7942) => q(zro),
+ q(7943) => q(zrp),
+ q(7944) => q(zrs),
+ q(7945) => q(zsa),
+ q(7946) => q(zsk),
+ q(7947) => q(zsl),
+ q(7948) => q(zsm),
+ q(7949) => q(zsr),
+ q(7950) => q(zsu),
+ q(7951) => q(zte),
+ q(7952) => q(ztg),
+ q(7953) => q(ztl),
+ q(7954) => q(ztm),
+ q(7955) => q(ztn),
+ q(7956) => q(ztp),
+ q(7957) => q(ztq),
+ q(7958) => q(zts),
+ q(7959) => q(ztt),
+ q(7960) => q(ztu),
+ q(7961) => q(ztx),
+ q(7962) => q(zty),
+ q(7963) => q(zua),
+ q(7964) => q(zuh),
+ q(7965) => q(zum),
+ q(7966) => q(zuy),
+ q(7967) => q(zwa),
+ q(7968) => q(zyb),
+ q(7969) => q(zyg),
+ q(7970) => q(zyj),
+ q(7971) => q(zyn),
+ q(7972) => q(zyp),
+ q(7973) => q(zzj),
},
q(term) => {
+ q(0001) => q(aar),
+ q(0002) => q(abk),
+ q(0003) => q(ace),
+ q(0004) => q(ach),
+ q(0005) => q(ada),
+ q(0006) => q(ady),
+ q(0007) => q(afa),
+ q(0008) => q(afh),
+ q(0009) => q(afr),
+ q(0010) => q(ain),
+ q(0011) => q(aka),
+ q(0012) => q(akk),
q(0013) => q(sqi),
+ q(0014) => q(ale),
+ q(0015) => q(alg),
+ q(0016) => q(alt),
+ q(0017) => q(amh),
+ q(0018) => q(ang),
+ q(0019) => q(anp),
+ q(0020) => q(apa),
+ q(0021) => q(ara),
+ q(0022) => q(arc),
+ q(0023) => q(arg),
q(0024) => q(hye),
+ q(0025) => q(arn),
+ q(0026) => q(arp),
+ q(0027) => q(art),
+ q(0028) => q(arw),
+ q(0029) => q(asm),
+ q(0030) => q(ast),
+ q(0031) => q(ath),
+ q(0032) => q(aus),
+ q(0033) => q(ava),
+ q(0034) => q(ave),
+ q(0035) => q(awa),
+ q(0036) => q(aym),
+ q(0037) => q(aze),
+ q(0038) => q(bad),
+ q(0039) => q(bai),
+ q(0040) => q(bak),
+ q(0041) => q(bal),
+ q(0042) => q(bam),
+ q(0043) => q(ban),
q(0044) => q(eus),
+ q(0045) => q(bas),
+ q(0046) => q(bat),
+ q(0047) => q(bej),
+ q(0048) => q(bel),
+ q(0049) => q(bem),
+ q(0050) => q(ben),
+ q(0051) => q(ber),
+ q(0052) => q(bho),
+ q(0053) => q(bih),
+ q(0054) => q(bik),
+ q(0055) => q(bin),
+ q(0056) => q(bis),
+ q(0057) => q(bla),
+ q(0058) => q(bnt),
+ q(0059) => q(bos),
+ q(0060) => q(bra),
+ q(0061) => q(bre),
+ q(0062) => q(btk),
+ q(0063) => q(bua),
+ q(0064) => q(bug),
+ q(0065) => q(bul),
q(0066) => q(mya),
+ q(0067) => q(byn),
+ q(0068) => q(cad),
+ q(0069) => q(cai),
+ q(0070) => q(car),
+ q(0071) => q(cat),
+ q(0072) => q(cau),
+ q(0073) => q(ceb),
+ q(0074) => q(cel),
+ q(0075) => q(cha),
+ q(0076) => q(chb),
+ q(0077) => q(che),
+ q(0078) => q(chg),
q(0079) => q(zho),
+ q(0080) => q(chk),
+ q(0081) => q(chm),
+ q(0082) => q(chn),
+ q(0083) => q(cho),
+ q(0084) => q(chp),
+ q(0085) => q(chr),
+ q(0086) => q(chu),
+ 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),
},
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Retired.pm
index d677a8bfb27..3bf73c5636a 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Retired.pm
+++ b/Master/tlpkg/tlperl/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 Mar 4 13:19:40 EST 2014
+# Generated on: Fri Feb 20 15:27:22 GMT 2015
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
$Locale::Codes::Retired{'language'}{'alpha-2'}{'code'} = {
q(in) => q(Indonesian),
@@ -22,10 +22,16 @@ $Locale::Codes::Retired{'language'}{'alpha-2'}{'code'} = {
};
$Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
+ q(aam) => q(Aramanik),
+ q(adp) => q(Adap),
+ q(aue) => q(=/Kx'au//'ein),
q(ayx) => q(Ayi (China)),
q(baz) => q(Tunen),
q(bjd) => q(Bandjigali),
q(bjq) => q(Southern Betsimisaraka Malagasy),
+ q(bmy) => q(Bemba (Democratic Republic of Congo)),
+ q(bxx) => q(Borna (Democratic Republic of Congo)),
+ q(byy) => q(Buya),
q(ccq) => q(Chaungtha),
q(cka) => q(Khumi Awa Chin),
q(daf) => q(Dan),
@@ -34,50 +40,78 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
q(djl) => q(Djiwarli),
q(dkl) => q(Kolum So Dogon),
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(ggr) => q(Aghu Tharnggalu),
q(gio) => q(Gelao),
+ q(gti) => q(Gbati-ri),
q(hrr) => q(Horuru),
q(ibi) => q(Ibilo),
q(ilw) => q(Talur),
+ q(ime) => q(Imeraguen),
q(izi) => q(Izi-Ezaa-Ikwo-Mgbo),
q(jar) => q(Jarawa (Nigeria)),
+ q(kbf) => q(Kakauhua),
q(kdv) => q(Kado),
q(kgh) => q(Upper Tanudan Kalinga),
+ q(koj) => q(Sara Dunjo),
q(kpp) => q(Paku Karen),
+ q(kwq) => q(Kwak),
+ q(kxe) => q(Kakihum),
q(kzh) => q(Kenuzi-Dongola),
q(lcq) => q(Luhu),
+ q(leg) => q(Lengua),
+ q(lii) => q(Lingkhim),
+ q(lmm) => q(Lamam),
q(meg) => q(Mea),
q(mgx) => q(Omati),
+ q(mhh) => q(Maskoy Pidgin),
q(mja) => q(Mahei),
q(mld) => q(Malakhel),
q(mnt) => q(Maykulan),
q(mwd) => q(Mudbura),
+ q(mwj) => q(Maligo),
q(myq) => q(Forest Maninka),
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(oun) => q(!O!ung),
q(pbz) => q(Palu),
q(pcr) => q(Panang),
q(pgy) => q(Pongyong),
+ q(pmu) => q(Mirpur Panjabi),
q(ppr) => q(Piru),
+ q(puz) => q(Purum Naga),
+ q(sap) => q(Sanapana),
q(sca) => q(Sansu),
+ q(sgo) => q(Songa),
q(tgg) => q(Tangga),
+ q(thx) => q(The),
q(tie) => q(Tingal),
q(tkk) => q(Takpa),
q(tlw) => q(South Wemale),
+ q(tsf) => q(Southwestern Tamang),
q(unp) => q(Worora),
+ q(uok) => q(Uokha),
q(wit) => q(Wintu),
q(wiw) => q(Wirangu),
q(xia) => q(Xiandao),
+ q(xsj) => q(Subi),
q(ybd) => q(Yangbye),
+ q(yds) => q(Yiddish Sign Language),
q(yen) => q(Yendang),
q(yiy) => q(Yir Yoront),
q(yma) => q(Yamphe),
+ q(ymt) => q(Mator-Taygi-Karagas),
+ q(ynh) => q(Yangho),
q(yos) => q(Yos),
+ q(yuu) => q(Yugh),
};
$Locale::Codes::Retired{'language'}{'term'}{'code'} = {
@@ -140,11 +174,16 @@ $Locale::Codes::Retired{'language'}{'alpha-2'}{'name'} = {
};
$Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
+ q(!o!ung) => [ q(oun), q(!O!ung) ],
+ q(=/kx'au//'ein) => [ q(aue), q(=/Kx'au//'ein) ],
+ q(a'tong) => [ q(aot), q(A'tong) ],
+ q(adap) => [ q(adp), q(Adap) ],
q(aghu tharnggalu) => [ q(ggr), q(Aghu Tharnggalu) ],
q(ainu) => [ q(ain), q(Ainu) ],
q(amarag) => [ q(amg), q(Amarag) ],
q(anu) => [ q(anl), q(Anu) ],
q(apalik) => [ q(apo), q(Apalik) ],
+ q(aramanik) => [ q(aam), q(Aramanik) ],
q(aromanian) => [ q(rup), q(Aromanian) ],
q(ayi (china)) => [ q(ayx), q(Ayi (China)) ],
q(bandjigali) => [ q(bjd), q(Bandjigali) ],
@@ -157,9 +196,12 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(begbere-ejar) => [ q(bqv), q(Begbere-Ejar) ],
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(blin) => [ q(byn), q(Blin) ],
+ 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(central bicolano) => [ q(bcl), q(Central Bicolano) ],
q(chaungtha) => [ q(ccq), q(Chaungtha) ],
q(creoles and pidgins ) => [ q(crp), q(Creoles and pidgins ) ],
@@ -168,15 +210,18 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(creoles and pidgins, portuguese-based ) => [ q(cpp), q(Creoles and pidgins, Portuguese-based ) ],
q(dakaka) => [ q(bpa), q(Dakaka) ],
q(darling) => [ q(drl), q(Darling) ],
+ q(daza) => [ q(dzd), q(Daza) ],
q(dhangu) => [ q(dhg), q(Dhangu) ],
q(dhanwar (india)) => [ q(dha), q(Dhanwar (India)) ],
q(dimir) => [ q(dmc), q(Dimir) ],
+ q(djangu) => [ q(dhg), q(Djangu) ],
q(dogri) => [ q(doi), q(Dogri) ],
q(duduela) => [ q(duk), q(Duduela) ],
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(elpaputih) => [ q(elp), q(Elpaputih) ],
+ q(emok) => [ q(emo), q(Emok) ],
q(english, middle (1100-1500)) => [ q(enm), q(English, Middle (1100-1500)) ],
q(english, old (ca.450-1100)) => [ q(ang), q(English, Old (ca.450-1100)) ],
q(fang) => [ q(fan), q(Fang) ],
@@ -185,16 +230,21 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(french, old (842-ca.1400)) => [ q(fro), q(French, Old (842-ca.1400)) ],
q(galoli) => [ q(gal), q(Galoli) ],
q(garawa) => [ q(gbc), q(Garawa) ],
+ q(gbati-ri) => [ q(gti), q(Gbati-ri) ],
q(gbaya) => [ q(gba), q(Gbaya) ],
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(greek, ancient (to 1453)) => [ q(grc), q(Greek, Ancient (to 1453)) ],
+ q(guwinmal) => [ q(xgm), q(Guwinmal) ],
q(hainyaxo bozo) => [ q(bzx), q(Hainyaxo Bozo) ],
+ 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(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(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) ],
@@ -202,6 +252,8 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
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(kemezung) => [ q(dmo), q(Kemezung) ],
q(kenuzi-dongola) => [ q(kzh), q(Kenuzi-Dongola) ],
@@ -210,17 +262,27 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(kolum so dogon) => [ q(dkl), q(Kolum So Dogon) ],
q(konkani) => [ q(kok), q(Konkani) ],
q(kumak) => [ q(nee), q(Kumak) ],
+ q(kuman) => [ q(kue), q(Kuman) ],
q(kutang ghale) => [ q(ght), q(Kutang Ghale) ],
+ q(kwak) => [ q(kwq), q(Kwak) ],
q(kwato) => [ q(kop), q(Kwato) ],
q(kyenga) => [ q(tye), q(Kyenga) ],
+ q(lama (myanmar)) => [ q(lay), q(Lama (Myanmar)) ],
+ q(lamam) => [ q(lmm), q(Lamam) ],
+ q(lengua) => [ q(leg), q(Lengua) ],
+ q(lingkhim) => [ q(lii), q(Lingkhim) ],
q(lowa) => [ q(loy), q(Lowa) ],
q(lower tanudan kalinga) => [ q(kml), q(Lower Tanudan Kalinga) ],
q(luhu) => [ q(lcq), q(Luhu) ],
q(mahei) => [ q(mja), q(Mahei) ],
q(malakhel) => [ q(mld), q(Malakhel) ],
q(malasanga) => [ q(mqz), q(Malasanga) ],
+ q(maligo) => [ q(mwj), q(Maligo) ],
+ q(mangetti dune !xung) => [ q(gfx), q(Mangetti Dune !Xung) ],
q(mann) => [ q(mev), q(Mann) ],
q(mari) => [ q(chm), q(Mari) ],
+ q(maskoy pidgin) => [ q(mhh), q(Maskoy Pidgin) ],
+ q(mator-taygi-karagas) => [ q(ymt), q(Mator-Taygi-Karagas) ],
q(maykulan) => [ q(mnt), q(Maykulan) ],
q(mbabaram) => [ q(vmb), q(Mbabaram) ],
q(mbedam) => [ q(xmd), q(Mbedam) ],
@@ -230,6 +292,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(minigir) => [ q(vmg), q(Minigir) ],
q(mire) => [ q(mvh), q(Mire) ],
q(miri) => [ q(mrg), q(Miri) ],
+ q(mirpur panjabi) => [ q(pmu), q(Mirpur Panjabi) ],
q(misima-paneati) => [ q(mpx), q(Misima-Paneati) ],
q(mixifore) => [ q(mfg), q(Mixifore) ],
q(mpongmpong) => [ q(mgg), q(Mpongmpong) ],
@@ -237,19 +300,24 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(mudbura) => [ q(mwd), q(Mudbura) ],
q(muduapa) => [ q(wiv), q(Muduapa) ],
q(nakama) => [ q(nib), q(Nakama) ],
+ q(nama (namibia)) => [ q(naq), q(Nama (Namibia)) ],
q(nanggu) => [ q(ngr), q(Nanggu) ],
q(nangikurrunggurr) => [ q(nam), q(Nangikurrunggurr) ],
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(ngong) => [ q(nnx), q(Ngong) ],
q(ngura) => [ q(nbx), q(Ngura) ],
q(nisi (india)) => [ q(dap), q(Nisi (India)) ],
q(nootka) => [ q(noo), q(Nootka) ],
q(norse, old) => [ q(non), q(Norse, Old) ],
q(north wemale) => [ q(weo), q(North Wemale) ],
+ q(northeast pashayi) => [ q(aee), q(Northeast Pashayi) ],
+ q(northern bai) => [ q(bfc), q(Northern Bai) ],
q(northern catanduanes bicolano) => [ q(cts), q(Northern Catanduanes Bicolano) ],
q(northern lorung) => [ q(lbr), q(Northern Lorung) ],
+ q(northwest pashayi) => [ q(glh), q(Northwest Pashayi) ],
q(nsari) => [ q(asj), q(Nsari) ],
q(nung (myanmar)) => [ q(nun), q(Nung (Myanmar)) ],
q(omati) => [ q(mgx), q(Omati) ],
@@ -260,26 +328,41 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(piru) => [ q(ppr), q(Piru) ],
q(pongyong) => [ q(pgy), q(Pongyong) ],
q(provencal, old (to 1500)) => [ q(pro), q(Provencal, Old (to 1500)) ],
+ q(purum naga) => [ q(puz), q(Purum Naga) ],
+ q(pyu) => [ q(pby), q(Pyu) ],
q(sakam) => [ q(skm), q(Sakam) ],
+ 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(sepen) => [ q(spm), q(Sepen) ],
+ q(seraiki) => [ q(skr), q(Seraiki) ],
+ q(shabo) => [ q(sbf), q(Shabo) ],
q(shangzhai) => [ q(jih), q(Shangzhai) ],
q(so (cameroon)) => [ q(sox), q(So (Cameroon)) ],
+ 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 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(takpa) => [ q(tkk), q(Takpa) ],
q(talur) => [ q(ilw), q(Talur) ],
q(tangga) => [ q(tgg), q(Tangga) ],
q(tangkhul naga) => [ q(nmf), q(Tangkhul Naga) ],
+ q(the) => [ q(thx), q(The) ],
q(tina sambal) => [ q(xsb), q(Tina Sambal) ],
q(tingal) => [ q(tie), q(Tingal) ],
+ q(tsotsitaal) => [ q(fly), q(Tsotsitaal) ],
q(turkish, ottoman (1500-1928)) => [ q(ota), q(Turkish, Ottoman (1500-1928)) ],
q(unggarranggu) => [ q(xun), q(Unggarranggu) ],
+ q(uokha) => [ q(uok), q(Uokha) ],
q(upper tanudan kalinga) => [ q(kgh), q(Upper Tanudan Kalinga) ],
+ q(vasekela bushman) => [ q(vaj), q(Vasekela Bushman) ],
q(walamo) => [ q(wal), q(Walamo) ],
q(walo kumbe dogon) => [ q(dwl), q(Walo Kumbe Dogon) ],
q(waray) => [ q(war), q(Waray) ],
@@ -290,10 +373,13 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(xiandao) => [ q(xia), q(Xiandao) ],
q(yamphe) => [ q(yma), q(Yamphe) ],
q(yangbye) => [ q(ybd), q(Yangbye) ],
+ q(yangho) => [ q(ynh), q(Yangho) ],
q(yeskwa) => [ q(yes), q(Yeskwa) ],
+ q(yiddish sign language) => [ q(yds), q(Yiddish Sign Language) ],
q(yonggom) => [ q(yon), q(Yonggom) ],
q(yos) => [ q(yos), q(Yos) ],
q(yuaga) => [ q(nua), q(Yuaga) ],
+ q(yugh) => [ q(yuu), q(Yugh) ],
q(zyphe) => [ q(zyp), q(Zyphe) ],
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pm
index 5095e2060c9..94130a93988 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pm
@@ -1,7 +1,7 @@
package Locale::Codes::Script;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -22,7 +22,7 @@ use Locale::Codes::Script_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.30';
+$VERSION='3.34';
@ISA = qw(Exporter);
@EXPORT = qw(code2script
script2code
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pod
index 771b46e8412..b62d148e9f4 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pod
@@ -61,15 +61,15 @@ for Phoenician.
=over 4
-=item B<code2script ( CODE [,CODESET] )>
+=item B<code2script ( CODE [,CODESET] [,'retired'])>
-=item B<script2code ( NAME [,CODESET] )>
+=item B<script2code ( NAME [,CODESET] [,'retired'])>
=item B<script_code2code ( CODE ,CODESET ,CODESET2 )>
-=item B<all_script_codes ( [CODESET] )>
+=item B<all_script_codes ( [CODESET] [,'retired'])>
-=item B<all_script_names ( [CODESET] )>
+=item B<all_script_names ( [CODESET] [,'retired'])>
=item B<Locale::Codes::Script::rename_script ( CODE ,NEW_NAME [,CODESET] )>
@@ -123,7 +123,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2014 Sullivan Beck
+ 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.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Codes.pm
index 7f5383cd5bb..1e8f0de691b 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Codes.pm
+++ b/Master/tlpkg/tlperl/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: Thu Feb 27 15:45:43 EST 2014
+# Generated on: Thu Feb 19 20:50:29 GMT 2015
use strict;
require 5.006;
@@ -11,2897 +11,2988 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
-$Locale::Codes::Data{'script'}{'id'} = '0166';
+$Locale::Codes::Data{'script'}{'id'} = '0173';
$Locale::Codes::Data{'script'}{'id2names'} = {
q(0001) => [
- q(Afaka),
+ q(Adlam),
],
q(0002) => [
- q(Caucasian Albanian),
+ q(Afaka),
],
q(0003) => [
+ q(Caucasian Albanian),
+ ],
+ q(0004) => [
q(Ahom, Tai Ahom),
q(Ahom),
q(Tai Ahom),
],
- q(0004) => [
+ q(0005) => [
q(Arabic),
],
- q(0005) => [
+ q(0006) => [
+ q(Arabic (Nastaliq variant)),
+ ],
+ q(0007) => [
q(Imperial Aramaic),
],
- q(0006) => [
+ q(0008) => [
q(Armenian),
],
- q(0007) => [
+ q(0009) => [
q(Avestan),
],
- q(0008) => [
+ q(0010) => [
q(Balinese),
],
- q(0009) => [
+ q(0011) => [
q(Bamum),
],
- q(0010) => [
+ q(0012) => [
q(Bassa Vah),
],
- q(0011) => [
+ q(0013) => [
q(Batak),
],
- q(0012) => [
+ q(0014) => [
q(Bengali),
],
- q(0013) => [
+ q(0015) => [
q(Blissymbols),
],
- q(0014) => [
+ q(0016) => [
q(Bopomofo),
],
- q(0015) => [
+ q(0017) => [
q(Brahmi),
],
- q(0016) => [
+ q(0018) => [
q(Braille),
],
- q(0017) => [
+ q(0019) => [
q(Buginese),
],
- q(0018) => [
+ q(0020) => [
q(Buhid),
],
- q(0019) => [
+ q(0021) => [
q(Chakma),
],
- q(0020) => [
+ q(0022) => [
q(Unified Canadian Aboriginal Syllabics),
],
- q(0021) => [
+ q(0023) => [
q(Carian),
],
- q(0022) => [
+ q(0024) => [
q(Cham),
],
- q(0023) => [
+ q(0025) => [
q(Cherokee),
],
- q(0024) => [
+ q(0026) => [
q(Cirth),
],
- q(0025) => [
+ q(0027) => [
q(Coptic),
],
- q(0026) => [
+ q(0028) => [
q(Cypriot),
],
- q(0027) => [
+ q(0029) => [
q(Cyrillic),
],
- q(0028) => [
+ q(0030) => [
q(Cyrillic (Old Church Slavonic variant)),
],
- q(0029) => [
+ q(0031) => [
q(Devanagari (Nagari)),
q(Devanagari),
q(Nagari),
],
- q(0030) => [
+ q(0032) => [
q(Deseret (Mormon)),
q(Deseret),
q(Mormon),
],
- q(0031) => [
+ q(0033) => [
q(Duployan shorthand, Duployan stenography),
q(Duployan shorthand),
q(Duployan stenography),
],
- q(0032) => [
+ q(0034) => [
q(Egyptian demotic),
],
- q(0033) => [
+ q(0035) => [
q(Egyptian hieratic),
],
- q(0034) => [
+ q(0036) => [
q(Egyptian hieroglyphs),
],
- q(0035) => [
+ q(0037) => [
q(Elbasan),
],
- q(0036) => [
+ q(0038) => [
q(Ethiopic (Geez)),
q(Ethiopic),
q(Ge'ez),
],
- q(0037) => [
- q(Georgian (Mkhedruli)),
- ],
- q(0038) => [
+ q(0039) => [
q(Khutsuri (Asomtavruli and Nuskhuri)),
],
- q(0039) => [
+ q(0040) => [
+ q(Georgian (Mkhedruli)),
+ ],
+ q(0041) => [
q(Glagolitic),
],
- q(0040) => [
+ q(0042) => [
q(Gothic),
],
- q(0041) => [
+ q(0043) => [
q(Grantha),
],
- q(0042) => [
+ q(0044) => [
q(Greek),
],
- q(0043) => [
+ q(0045) => [
q(Gujarati),
],
- q(0044) => [
+ q(0046) => [
q(Gurmukhi),
],
- q(0045) => [
+ q(0047) => [
q(Hangul (Hangul, Hangeul)),
q(Hangul),
q(Hangeul),
],
- q(0046) => [
+ q(0048) => [
q(Han (Hanzi, Kanji, Hanja)),
q(Han),
q(Hanzi),
q(Kanji),
q(Hanja),
],
- q(0047) => [
+ q(0049) => [
q(Hanunoo (Hanunoo)),
q(Hanunoo),
],
- q(0048) => [
+ q(0050) => [
q(Han (Simplified variant)),
],
- q(0049) => [
+ q(0051) => [
q(Han (Traditional variant)),
],
- q(0050) => [
+ q(0052) => [
q(Hatran),
],
- q(0051) => [
+ q(0053) => [
q(Hebrew),
],
- q(0052) => [
+ q(0054) => [
q(Hiragana),
],
- q(0053) => [
+ q(0055) => [
q(Anatolian Hieroglyphs (Luwian Hieroglyphs, Hittite Hieroglyphs)),
q(Anatolian Hieroglyphs),
q(Luwian Hieroglyphs),
q(Hittite Hieroglyphs),
],
- q(0054) => [
+ q(0056) => [
q(Pahawh Hmong),
],
- q(0055) => [
+ q(0057) => [
q(Japanese syllabaries (alias for Hiragana + Katakana)),
],
- q(0056) => [
+ q(0058) => [
q(Old Hungarian (Hungarian Runic)),
q(Old Hungarian),
q(Hungarian Runic),
],
- q(0057) => [
+ q(0059) => [
q(Indus (Harappan)),
q(Indus),
q(Harappan),
],
- q(0058) => [
+ q(0060) => [
q(Old Italic (Etruscan, Oscan, etc.)),
],
- q(0059) => [
+ q(0061) => [
q(Javanese),
],
- q(0060) => [
+ q(0062) => [
q(Japanese (alias for Han + Hiragana + Katakana)),
],
- q(0061) => [
+ q(0063) => [
q(Jurchen),
],
- q(0062) => [
+ q(0064) => [
q(Kayah Li),
],
- q(0063) => [
+ q(0065) => [
q(Katakana),
],
- q(0064) => [
+ q(0066) => [
q(Kharoshthi),
],
- q(0065) => [
+ q(0067) => [
q(Khmer),
],
- q(0066) => [
+ q(0068) => [
q(Khojki),
],
- q(0067) => [
+ q(0069) => [
+ q(Khitan large script),
+ ],
+ q(0070) => [
+ q(Khitan small script),
+ ],
+ q(0071) => [
q(Kannada),
],
- q(0068) => [
+ q(0072) => [
q(Korean (alias for Hangul + Han)),
],
- q(0069) => [
+ q(0073) => [
q(Kpelle),
],
- q(0070) => [
+ q(0074) => [
q(Kaithi),
],
- q(0071) => [
+ q(0075) => [
q(Tai Tham (Lanna)),
q(Tai Tham),
q(Lanna),
],
- q(0072) => [
+ q(0076) => [
q(Lao),
],
- q(0073) => [
+ q(0077) => [
q(Latin (Fraktur variant)),
],
- q(0074) => [
+ q(0078) => [
q(Latin (Gaelic variant)),
],
- q(0075) => [
+ q(0079) => [
q(Latin),
],
- q(0076) => [
+ q(0080) => [
q(Lepcha (Rong)),
q(Lepcha),
q(Rong),
],
- q(0077) => [
+ q(0081) => [
q(Limbu),
],
- q(0078) => [
+ q(0082) => [
q(Linear A),
],
- q(0079) => [
+ q(0083) => [
q(Linear B),
],
- q(0080) => [
+ q(0084) => [
q(Lisu (Fraser)),
q(Lisu),
q(Fraser),
],
- q(0081) => [
+ q(0085) => [
q(Loma),
],
- q(0082) => [
+ q(0086) => [
q(Lycian),
],
- q(0083) => [
+ q(0087) => [
q(Lydian),
],
- q(0084) => [
+ q(0088) => [
q(Mahajani),
],
- q(0085) => [
+ q(0089) => [
q(Mandaic, Mandaean),
q(Mandaic),
q(Mandaean),
],
- q(0086) => [
+ q(0090) => [
q(Manichaean),
],
- q(0087) => [
+ q(0091) => [
+ q(Marchen),
+ ],
+ q(0092) => [
q(Mayan hieroglyphs),
],
- q(0088) => [
+ q(0093) => [
q(Mende Kikakui),
],
- q(0089) => [
+ q(0094) => [
q(Meroitic Cursive),
],
- q(0090) => [
+ q(0095) => [
q(Meroitic Hieroglyphs),
],
- q(0091) => [
+ q(0096) => [
q(Malayalam),
],
- q(0092) => [
+ q(0097) => [
q(Modi, Modi),
- q( Multani),
q(Modi),
- q(Multani),
],
- q(0093) => [
+ q(0098) => [
+ q(Mongolian),
+ ],
+ q(0099) => [
q(Moon (Moon code, Moon script, Moon type)),
q(Moon),
q(Moon code),
q(Moon script),
q(Moon type),
],
- q(0094) => [
- q(Mongolian),
- ],
- q(0095) => [
+ q(0100) => [
q(Mro, Mru),
q(Mro),
q(Mru),
],
- q(0096) => [
+ q(0101) => [
q(Meitei Mayek (Meithei, Meetei)),
q(Meitei Mayek),
q(Meithei),
q(Meetei),
],
- q(0097) => [
+ q(0102) => [
+ q(Multani),
+ ],
+ q(0103) => [
q(Myanmar (Burmese)),
q(Myanmar),
q(Burmese),
],
- q(0098) => [
+ q(0104) => [
q(Old North Arabian (Ancient North Arabian)),
q(Old North Arabian),
q(Ancient North Arabian),
],
- q(0099) => [
+ q(0105) => [
q(Nabataean),
],
- q(0100) => [
+ q(0106) => [
q(Nakhi Geba ('Na-'Khi Ggo-baw, Naxi Geba)),
q(Nakhi Geba),
q('Na-'Khi Ggo-baw),
q(Naxi Geba),
],
- q(0101) => [
+ q(0107) => [
q(N'Ko),
],
- q(0102) => [
+ q(0108) => [
q(Nushu),
],
- q(0103) => [
+ q(0109) => [
q(Ogham),
],
- q(0104) => [
+ q(0110) => [
q(Ol Chiki (Ol Cemet, Ol, Santali)),
q(Ol Chiki),
q(Ol Cemet'),
q(Ol),
q(Santali),
],
- q(0105) => [
+ q(0111) => [
q(Old Turkic, Orkhon Runic),
q(Old Turkic),
q(Orkhon Runic),
],
- q(0106) => [
+ q(0112) => [
q(Oriya),
],
- q(0107) => [
+ q(0113) => [
+ q(Osage),
+ ],
+ q(0114) => [
q(Osmanya),
],
- q(0108) => [
+ q(0115) => [
q(Palmyrene),
],
- q(0109) => [
+ q(0116) => [
q(Pau Cin Hau),
],
- q(0110) => [
+ q(0117) => [
q(Old Permic),
],
- q(0111) => [
+ q(0118) => [
q(Phags-pa),
],
- q(0112) => [
+ q(0119) => [
q(Inscriptional Pahlavi),
],
- q(0113) => [
+ q(0120) => [
q(Psalter Pahlavi),
],
- q(0114) => [
+ q(0121) => [
q(Book Pahlavi),
],
- q(0115) => [
+ q(0122) => [
q(Phoenician),
],
- q(0116) => [
+ q(0123) => [
q(Miao (Pollard)),
q(Miao),
q(Pollard),
],
- q(0117) => [
+ q(0124) => [
q(Inscriptional Parthian),
],
- q(0118) => [
+ q(0125) => [
q(Reserved for private use (start)),
],
- q(0119) => [
+ q(0126) => [
q(Reserved for private use (end)),
],
- q(0120) => [
+ q(0127) => [
q(Rejang (Redjang, Kaganga)),
q(Rejang),
q(Redjang),
q(Kaganga),
],
- q(0121) => [
+ q(0128) => [
q(Rongorongo),
],
- q(0122) => [
+ q(0129) => [
q(Runic),
],
- q(0123) => [
+ q(0130) => [
q(Samaritan),
],
- q(0124) => [
+ q(0131) => [
q(Sarati),
],
- q(0125) => [
+ q(0132) => [
q(Old South Arabian),
],
- q(0126) => [
+ q(0133) => [
q(Saurashtra),
],
- q(0127) => [
+ q(0134) => [
q(SignWriting),
],
- q(0128) => [
+ q(0135) => [
q(Shavian (Shaw)),
q(Shavian),
q(Shaw),
],
- q(0129) => [
+ q(0136) => [
q(Sharada, Sarada),
q(Sharada),
q(Sarada),
],
- q(0130) => [
+ q(0137) => [
q(Siddham, Siddham, Siddhamatrka),
q(Siddham),
q(Siddhamatrka),
],
- q(0131) => [
+ q(0138) => [
q(Khudawadi, Sindhi),
q(Khudawadi),
q(Sindhi),
],
- q(0132) => [
+ q(0139) => [
q(Sinhala),
],
- q(0133) => [
+ q(0140) => [
q(Sora Sompeng),
],
- q(0134) => [
+ q(0141) => [
q(Sundanese),
],
- q(0135) => [
+ q(0142) => [
q(Syloti Nagri),
],
- q(0136) => [
+ q(0143) => [
q(Syriac),
],
- q(0137) => [
+ q(0144) => [
q(Syriac (Estrangelo variant)),
],
- q(0138) => [
+ q(0145) => [
q(Syriac (Western variant)),
],
- q(0139) => [
+ q(0146) => [
q(Syriac (Eastern variant)),
],
- q(0140) => [
+ q(0147) => [
q(Tagbanwa),
],
- q(0141) => [
+ q(0148) => [
q(Takri, Takri, Tankri),
q(Takri),
q(Tankri),
],
- q(0142) => [
+ q(0149) => [
q(Tai Le),
],
- q(0143) => [
+ q(0150) => [
q(New Tai Lue),
],
- q(0144) => [
+ q(0151) => [
q(Tamil),
],
- q(0145) => [
+ q(0152) => [
q(Tangut),
],
- q(0146) => [
+ q(0153) => [
q(Tai Viet),
],
- q(0147) => [
+ q(0154) => [
q(Telugu),
],
- q(0148) => [
+ q(0155) => [
q(Tengwar),
],
- q(0149) => [
+ q(0156) => [
q(Tifinagh (Berber)),
q(Tifinagh),
q(Berber),
],
- q(0150) => [
+ q(0157) => [
q(Tagalog (Baybayin, Alibata)),
q(Tagalog),
q(Baybayin),
q(Alibata),
],
- q(0151) => [
+ q(0158) => [
q(Thaana),
],
- q(0152) => [
+ q(0159) => [
q(Thai),
],
- q(0153) => [
+ q(0160) => [
q(Tibetan),
],
- q(0154) => [
+ q(0161) => [
q(Tirhuta),
],
- q(0155) => [
+ q(0162) => [
q(Ugaritic),
],
- q(0156) => [
+ q(0163) => [
q(Vai),
],
- q(0157) => [
+ q(0164) => [
q(Visible Speech),
],
- q(0158) => [
+ q(0165) => [
q(Warang Citi (Varang Kshiti)),
q(Warang Citi),
q(Varang Kshiti),
],
- q(0159) => [
+ q(0166) => [
q(Woleai),
],
- q(0160) => [
+ q(0167) => [
q(Old Persian),
],
- q(0161) => [
+ q(0168) => [
q(Cuneiform, Sumero-Akkadian),
q(Sumero-Akkadian cuneiform),
],
- q(0162) => [
+ q(0169) => [
q(Yi),
],
- q(0163) => [
+ q(0170) => [
q(Code for inherited script),
],
- q(0164) => [
+ q(0171) => [
q(Mathematical notation),
],
- q(0165) => [
+ q(0172) => [
q(Symbols),
],
};
$Locale::Codes::Data{'script'}{'alias2id'} = {
- q( multani) => [
- q(0092),
- q(1),
- ],
q('na-'khi ggo-baw) => [
- q(0100),
+ q(0106),
q(2),
],
- q(afaka) => [
+ q(adlam) => [
q(0001),
q(0),
],
+ q(afaka) => [
+ q(0002),
+ q(0),
+ ],
q(ahom) => [
- q(0003),
+ q(0004),
q(1),
],
q(ahom, tai ahom) => [
- q(0003),
+ q(0004),
q(0),
],
q(alibata) => [
- q(0150),
+ q(0157),
q(3),
],
q(anatolian hieroglyphs) => [
- q(0053),
+ q(0055),
q(1),
],
q(anatolian hieroglyphs (luwian hieroglyphs, hittite hieroglyphs)) => [
- q(0053),
+ q(0055),
q(0),
],
q(ancient north arabian) => [
- q(0098),
+ q(0104),
q(2),
],
q(arabic) => [
- q(0004),
+ q(0005),
q(0),
],
- q(armenian) => [
+ q(arabic (nastaliq variant)) => [
q(0006),
q(0),
],
+ q(armenian) => [
+ q(0008),
+ q(0),
+ ],
q(avestan) => [
- q(0007),
+ q(0009),
q(0),
],
q(balinese) => [
- q(0008),
+ q(0010),
q(0),
],
q(bamum) => [
- q(0009),
+ q(0011),
q(0),
],
q(bassa vah) => [
- q(0010),
+ q(0012),
q(0),
],
q(batak) => [
- q(0011),
+ q(0013),
q(0),
],
q(baybayin) => [
- q(0150),
+ q(0157),
q(2),
],
q(bengali) => [
- q(0012),
+ q(0014),
q(0),
],
q(berber) => [
- q(0149),
+ q(0156),
q(2),
],
q(blissymbols) => [
- q(0013),
+ q(0015),
q(0),
],
q(book pahlavi) => [
- q(0114),
+ q(0121),
q(0),
],
q(bopomofo) => [
- q(0014),
+ q(0016),
q(0),
],
q(brahmi) => [
- q(0015),
+ q(0017),
q(0),
],
q(braille) => [
- q(0016),
+ q(0018),
q(0),
],
q(buginese) => [
- q(0017),
+ q(0019),
q(0),
],
q(buhid) => [
- q(0018),
+ q(0020),
q(0),
],
q(burmese) => [
- q(0097),
+ q(0103),
q(2),
],
q(carian) => [
- q(0021),
+ q(0023),
q(0),
],
q(caucasian albanian) => [
- q(0002),
+ q(0003),
q(0),
],
q(chakma) => [
- q(0019),
+ q(0021),
q(0),
],
q(cham) => [
- q(0022),
+ q(0024),
q(0),
],
q(cherokee) => [
- q(0023),
+ q(0025),
q(0),
],
q(cirth) => [
- q(0024),
+ q(0026),
q(0),
],
q(code for inherited script) => [
- q(0163),
+ q(0170),
q(0),
],
q(coptic) => [
- q(0025),
+ q(0027),
q(0),
],
q(cuneiform, sumero-akkadian) => [
- q(0161),
+ q(0168),
q(0),
],
q(cypriot) => [
- q(0026),
+ q(0028),
q(0),
],
q(cyrillic) => [
- q(0027),
+ q(0029),
q(0),
],
q(cyrillic (old church slavonic variant)) => [
- q(0028),
+ q(0030),
q(0),
],
q(deseret) => [
- q(0030),
+ q(0032),
q(1),
],
q(deseret (mormon)) => [
- q(0030),
+ q(0032),
q(0),
],
q(devanagari) => [
- q(0029),
+ q(0031),
q(1),
],
q(devanagari (nagari)) => [
- q(0029),
+ q(0031),
q(0),
],
q(duployan shorthand) => [
- q(0031),
+ q(0033),
q(1),
],
q(duployan shorthand, duployan stenography) => [
- q(0031),
+ q(0033),
q(0),
],
q(duployan stenography) => [
- q(0031),
+ q(0033),
q(2),
],
q(egyptian demotic) => [
- q(0032),
+ q(0034),
q(0),
],
q(egyptian hieratic) => [
- q(0033),
+ q(0035),
q(0),
],
q(egyptian hieroglyphs) => [
- q(0034),
+ q(0036),
q(0),
],
q(elbasan) => [
- q(0035),
+ q(0037),
q(0),
],
q(ethiopic) => [
- q(0036),
+ q(0038),
q(1),
],
q(ethiopic (geez)) => [
- q(0036),
+ q(0038),
q(0),
],
q(fraser) => [
- q(0080),
+ q(0084),
q(2),
],
q(ge'ez) => [
- q(0036),
+ q(0038),
q(2),
],
q(georgian (mkhedruli)) => [
- q(0037),
+ q(0040),
q(0),
],
q(glagolitic) => [
- q(0039),
+ q(0041),
q(0),
],
q(gothic) => [
- q(0040),
+ q(0042),
q(0),
],
q(grantha) => [
- q(0041),
+ q(0043),
q(0),
],
q(greek) => [
- q(0042),
+ q(0044),
q(0),
],
q(gujarati) => [
- q(0043),
+ q(0045),
q(0),
],
q(gurmukhi) => [
- q(0044),
+ q(0046),
q(0),
],
q(han) => [
- q(0046),
+ q(0048),
q(1),
],
q(han (hanzi, kanji, hanja)) => [
- q(0046),
+ q(0048),
q(0),
],
q(han (simplified variant)) => [
- q(0048),
+ q(0050),
q(0),
],
q(han (traditional variant)) => [
- q(0049),
+ q(0051),
q(0),
],
q(hangeul) => [
- q(0045),
+ q(0047),
q(2),
],
q(hangul) => [
- q(0045),
+ q(0047),
q(1),
],
q(hangul (hangul, hangeul)) => [
- q(0045),
+ q(0047),
q(0),
],
q(hanja) => [
- q(0046),
+ q(0048),
q(4),
],
q(hanunoo) => [
- q(0047),
+ q(0049),
q(1),
],
q(hanunoo (hanunoo)) => [
- q(0047),
+ q(0049),
q(0),
],
q(hanzi) => [
- q(0046),
+ q(0048),
q(2),
],
q(harappan) => [
- q(0057),
+ q(0059),
q(2),
],
q(hatran) => [
- q(0050),
+ q(0052),
q(0),
],
q(hebrew) => [
- q(0051),
+ q(0053),
q(0),
],
q(hiragana) => [
- q(0052),
+ q(0054),
q(0),
],
q(hittite hieroglyphs) => [
- q(0053),
+ q(0055),
q(3),
],
q(hungarian runic) => [
- q(0056),
+ q(0058),
q(2),
],
q(imperial aramaic) => [
- q(0005),
+ q(0007),
q(0),
],
q(indus) => [
- q(0057),
+ q(0059),
q(1),
],
q(indus (harappan)) => [
- q(0057),
+ q(0059),
q(0),
],
q(inscriptional pahlavi) => [
- q(0112),
+ q(0119),
q(0),
],
q(inscriptional parthian) => [
- q(0117),
+ q(0124),
q(0),
],
q(japanese (alias for han + hiragana + katakana)) => [
- q(0060),
+ q(0062),
q(0),
],
q(japanese syllabaries (alias for hiragana + katakana)) => [
- q(0055),
+ q(0057),
q(0),
],
q(javanese) => [
- q(0059),
+ q(0061),
q(0),
],
q(jurchen) => [
- q(0061),
+ q(0063),
q(0),
],
q(kaganga) => [
- q(0120),
+ q(0127),
q(3),
],
q(kaithi) => [
- q(0070),
+ q(0074),
q(0),
],
q(kanji) => [
- q(0046),
+ q(0048),
q(3),
],
q(kannada) => [
- q(0067),
+ q(0071),
q(0),
],
q(katakana) => [
- q(0063),
+ q(0065),
q(0),
],
q(kayah li) => [
- q(0062),
+ q(0064),
q(0),
],
q(kharoshthi) => [
- q(0064),
+ q(0066),
+ q(0),
+ ],
+ q(khitan large script) => [
+ q(0069),
+ q(0),
+ ],
+ q(khitan small script) => [
+ q(0070),
q(0),
],
q(khmer) => [
- q(0065),
+ q(0067),
q(0),
],
q(khojki) => [
- q(0066),
+ q(0068),
q(0),
],
q(khudawadi) => [
- q(0131),
+ q(0138),
q(1),
],
q(khudawadi, sindhi) => [
- q(0131),
+ q(0138),
q(0),
],
q(khutsuri (asomtavruli and nuskhuri)) => [
- q(0038),
+ q(0039),
q(0),
],
q(korean (alias for hangul + han)) => [
- q(0068),
+ q(0072),
q(0),
],
q(kpelle) => [
- q(0069),
+ q(0073),
q(0),
],
q(lanna) => [
- q(0071),
+ q(0075),
q(2),
],
q(lao) => [
- q(0072),
+ q(0076),
q(0),
],
q(latin) => [
- q(0075),
+ q(0079),
q(0),
],
q(latin (fraktur variant)) => [
- q(0073),
+ q(0077),
q(0),
],
q(latin (gaelic variant)) => [
- q(0074),
+ q(0078),
q(0),
],
q(lepcha) => [
- q(0076),
+ q(0080),
q(1),
],
q(lepcha (rong)) => [
- q(0076),
+ q(0080),
q(0),
],
q(limbu) => [
- q(0077),
+ q(0081),
q(0),
],
q(linear a) => [
- q(0078),
+ q(0082),
q(0),
],
q(linear b) => [
- q(0079),
+ q(0083),
q(0),
],
q(lisu) => [
- q(0080),
+ q(0084),
q(1),
],
q(lisu (fraser)) => [
- q(0080),
+ q(0084),
q(0),
],
q(loma) => [
- q(0081),
+ q(0085),
q(0),
],
q(luwian hieroglyphs) => [
- q(0053),
+ q(0055),
q(2),
],
q(lycian) => [
- q(0082),
+ q(0086),
q(0),
],
q(lydian) => [
- q(0083),
+ q(0087),
q(0),
],
q(mahajani) => [
- q(0084),
+ q(0088),
q(0),
],
q(malayalam) => [
- q(0091),
+ q(0096),
q(0),
],
q(mandaean) => [
- q(0085),
+ q(0089),
q(2),
],
q(mandaic) => [
- q(0085),
+ q(0089),
q(1),
],
q(mandaic, mandaean) => [
- q(0085),
+ q(0089),
q(0),
],
q(manichaean) => [
- q(0086),
+ q(0090),
+ q(0),
+ ],
+ q(marchen) => [
+ q(0091),
q(0),
],
q(mathematical notation) => [
- q(0164),
+ q(0171),
q(0),
],
q(mayan hieroglyphs) => [
- q(0087),
+ q(0092),
q(0),
],
q(meetei) => [
- q(0096),
+ q(0101),
q(3),
],
q(meitei mayek) => [
- q(0096),
+ q(0101),
q(1),
],
q(meitei mayek (meithei, meetei)) => [
- q(0096),
+ q(0101),
q(0),
],
q(meithei) => [
- q(0096),
+ q(0101),
q(2),
],
q(mende kikakui) => [
- q(0088),
+ q(0093),
q(0),
],
q(meroitic cursive) => [
- q(0089),
+ q(0094),
q(0),
],
q(meroitic hieroglyphs) => [
- q(0090),
+ q(0095),
q(0),
],
q(miao) => [
- q(0116),
+ q(0123),
q(1),
],
q(miao (pollard)) => [
- q(0116),
+ q(0123),
q(0),
],
q(modi) => [
- q(0092),
- q(2),
+ q(0097),
+ q(1),
],
q(modi, modi) => [
- q(0092),
+ q(0097),
q(0),
],
q(mongolian) => [
- q(0094),
+ q(0098),
q(0),
],
q(moon) => [
- q(0093),
+ q(0099),
q(1),
],
q(moon (moon code, moon script, moon type)) => [
- q(0093),
+ q(0099),
q(0),
],
q(moon code) => [
- q(0093),
+ q(0099),
q(2),
],
q(moon script) => [
- q(0093),
+ q(0099),
q(3),
],
q(moon type) => [
- q(0093),
+ q(0099),
q(4),
],
q(mormon) => [
- q(0030),
+ q(0032),
q(2),
],
q(mro) => [
- q(0095),
+ q(0100),
q(1),
],
q(mro, mru) => [
- q(0095),
+ q(0100),
q(0),
],
q(mru) => [
- q(0095),
+ q(0100),
q(2),
],
q(multani) => [
- q(0092),
- q(3),
+ q(0102),
+ q(0),
],
q(myanmar) => [
- q(0097),
+ q(0103),
q(1),
],
q(myanmar (burmese)) => [
- q(0097),
+ q(0103),
q(0),
],
q(n'ko) => [
- q(0101),
+ q(0107),
q(0),
],
q(nabataean) => [
- q(0099),
+ q(0105),
q(0),
],
q(nagari) => [
- q(0029),
+ q(0031),
q(2),
],
q(nakhi geba) => [
- q(0100),
+ q(0106),
q(1),
],
q(nakhi geba ('na-'khi ggo-baw, naxi geba)) => [
- q(0100),
+ q(0106),
q(0),
],
q(naxi geba) => [
- q(0100),
+ q(0106),
q(3),
],
q(new tai lue) => [
- q(0143),
+ q(0150),
q(0),
],
q(nushu) => [
- q(0102),
+ q(0108),
q(0),
],
q(ogham) => [
- q(0103),
+ q(0109),
q(0),
],
q(ol) => [
- q(0104),
+ q(0110),
q(3),
],
q(ol cemet') => [
- q(0104),
+ q(0110),
q(2),
],
q(ol chiki) => [
- q(0104),
+ q(0110),
q(1),
],
q(ol chiki (ol cemet, ol, santali)) => [
- q(0104),
+ q(0110),
q(0),
],
q(old hungarian) => [
- q(0056),
+ q(0058),
q(1),
],
q(old hungarian (hungarian runic)) => [
- q(0056),
+ q(0058),
q(0),
],
q(old italic (etruscan, oscan, etc.)) => [
- q(0058),
+ q(0060),
q(0),
],
q(old north arabian) => [
- q(0098),
+ q(0104),
q(1),
],
q(old north arabian (ancient north arabian)) => [
- q(0098),
+ q(0104),
q(0),
],
q(old permic) => [
- q(0110),
+ q(0117),
q(0),
],
q(old persian) => [
- q(0160),
+ q(0167),
q(0),
],
q(old south arabian) => [
- q(0125),
+ q(0132),
q(0),
],
q(old turkic) => [
- q(0105),
+ q(0111),
q(1),
],
q(old turkic, orkhon runic) => [
- q(0105),
+ q(0111),
q(0),
],
q(oriya) => [
- q(0106),
+ q(0112),
q(0),
],
q(orkhon runic) => [
- q(0105),
+ q(0111),
q(2),
],
+ q(osage) => [
+ q(0113),
+ q(0),
+ ],
q(osmanya) => [
- q(0107),
+ q(0114),
q(0),
],
q(pahawh hmong) => [
- q(0054),
+ q(0056),
q(0),
],
q(palmyrene) => [
- q(0108),
+ q(0115),
q(0),
],
q(pau cin hau) => [
- q(0109),
+ q(0116),
q(0),
],
q(phags-pa) => [
- q(0111),
+ q(0118),
q(0),
],
q(phoenician) => [
- q(0115),
+ q(0122),
q(0),
],
q(pollard) => [
- q(0116),
+ q(0123),
q(2),
],
q(psalter pahlavi) => [
- q(0113),
+ q(0120),
q(0),
],
q(redjang) => [
- q(0120),
+ q(0127),
q(2),
],
q(rejang) => [
- q(0120),
+ q(0127),
q(1),
],
q(rejang (redjang, kaganga)) => [
- q(0120),
+ q(0127),
q(0),
],
q(reserved for private use (end)) => [
- q(0119),
+ q(0126),
q(0),
],
q(reserved for private use (start)) => [
- q(0118),
+ q(0125),
q(0),
],
q(rong) => [
- q(0076),
+ q(0080),
q(2),
],
q(rongorongo) => [
- q(0121),
+ q(0128),
q(0),
],
q(runic) => [
- q(0122),
+ q(0129),
q(0),
],
q(samaritan) => [
- q(0123),
+ q(0130),
q(0),
],
q(santali) => [
- q(0104),
+ q(0110),
q(4),
],
q(sarada) => [
- q(0129),
+ q(0136),
q(2),
],
q(sarati) => [
- q(0124),
+ q(0131),
q(0),
],
q(saurashtra) => [
- q(0126),
+ q(0133),
q(0),
],
q(sharada) => [
- q(0129),
+ q(0136),
q(1),
],
q(sharada, sarada) => [
- q(0129),
+ q(0136),
q(0),
],
q(shavian) => [
- q(0128),
+ q(0135),
q(1),
],
q(shavian (shaw)) => [
- q(0128),
+ q(0135),
q(0),
],
q(shaw) => [
- q(0128),
+ q(0135),
q(2),
],
q(siddham) => [
- q(0130),
+ q(0137),
q(1),
],
q(siddham, siddham, siddhamatrka) => [
- q(0130),
+ q(0137),
q(0),
],
q(siddhamatrka) => [
- q(0130),
+ q(0137),
q(2),
],
q(signwriting) => [
- q(0127),
+ q(0134),
q(0),
],
q(sindhi) => [
- q(0131),
+ q(0138),
q(2),
],
q(sinhala) => [
- q(0132),
+ q(0139),
q(0),
],
q(sora sompeng) => [
- q(0133),
+ q(0140),
q(0),
],
q(sumero-akkadian cuneiform) => [
- q(0161),
+ q(0168),
q(1),
],
q(sundanese) => [
- q(0134),
+ q(0141),
q(0),
],
q(syloti nagri) => [
- q(0135),
+ q(0142),
q(0),
],
q(symbols) => [
- q(0165),
+ q(0172),
q(0),
],
q(syriac) => [
- q(0136),
+ q(0143),
q(0),
],
q(syriac (eastern variant)) => [
- q(0139),
+ q(0146),
q(0),
],
q(syriac (estrangelo variant)) => [
- q(0137),
+ q(0144),
q(0),
],
q(syriac (western variant)) => [
- q(0138),
+ q(0145),
q(0),
],
q(tagalog) => [
- q(0150),
+ q(0157),
q(1),
],
q(tagalog (baybayin, alibata)) => [
- q(0150),
+ q(0157),
q(0),
],
q(tagbanwa) => [
- q(0140),
+ q(0147),
q(0),
],
q(tai ahom) => [
- q(0003),
+ q(0004),
q(2),
],
q(tai le) => [
- q(0142),
+ q(0149),
q(0),
],
q(tai tham) => [
- q(0071),
+ q(0075),
q(1),
],
q(tai tham (lanna)) => [
- q(0071),
+ q(0075),
q(0),
],
q(tai viet) => [
- q(0146),
+ q(0153),
q(0),
],
q(takri) => [
- q(0141),
+ q(0148),
q(1),
],
q(takri, takri, tankri) => [
- q(0141),
+ q(0148),
q(0),
],
q(tamil) => [
- q(0144),
+ q(0151),
q(0),
],
q(tangut) => [
- q(0145),
+ q(0152),
q(0),
],
q(tankri) => [
- q(0141),
+ q(0148),
q(2),
],
q(telugu) => [
- q(0147),
+ q(0154),
q(0),
],
q(tengwar) => [
- q(0148),
+ q(0155),
q(0),
],
q(thaana) => [
- q(0151),
+ q(0158),
q(0),
],
q(thai) => [
- q(0152),
+ q(0159),
q(0),
],
q(tibetan) => [
- q(0153),
+ q(0160),
q(0),
],
q(tifinagh) => [
- q(0149),
+ q(0156),
q(1),
],
q(tifinagh (berber)) => [
- q(0149),
+ q(0156),
q(0),
],
q(tirhuta) => [
- q(0154),
+ q(0161),
q(0),
],
q(ugaritic) => [
- q(0155),
+ q(0162),
q(0),
],
q(unified canadian aboriginal syllabics) => [
- q(0020),
+ q(0022),
q(0),
],
q(vai) => [
- q(0156),
+ q(0163),
q(0),
],
q(varang kshiti) => [
- q(0158),
+ q(0165),
q(2),
],
q(visible speech) => [
- q(0157),
+ q(0164),
q(0),
],
q(warang citi) => [
- q(0158),
+ q(0165),
q(1),
],
q(warang citi (varang kshiti)) => [
- q(0158),
+ q(0165),
q(0),
],
q(woleai) => [
- q(0159),
+ q(0166),
q(0),
],
q(yi) => [
- q(0162),
+ q(0169),
q(0),
],
};
$Locale::Codes::Data{'script'}{'code2id'} = {
q(alpha) => {
- q(Afak) => [
+ q(Adlm) => [
q(0001),
q(0),
],
- q(Aghb) => [
+ q(Afak) => [
q(0002),
q(0),
],
- q(Ahom) => [
+ q(Aghb) => [
q(0003),
+ q(0),
+ ],
+ q(Ahom) => [
+ q(0004),
q(1),
],
q(Arab) => [
- q(0004),
+ q(0005),
+ q(0),
+ ],
+ q(Aran) => [
+ q(0006),
q(0),
],
q(Armi) => [
- q(0005),
+ q(0007),
q(0),
],
q(Armn) => [
- q(0006),
+ q(0008),
q(0),
],
q(Avst) => [
- q(0007),
+ q(0009),
q(0),
],
q(Bali) => [
- q(0008),
+ q(0010),
q(0),
],
q(Bamu) => [
- q(0009),
+ q(0011),
q(0),
],
q(Bass) => [
- q(0010),
+ q(0012),
q(0),
],
q(Batk) => [
- q(0011),
+ q(0013),
q(0),
],
q(Beng) => [
- q(0012),
+ q(0014),
q(0),
],
q(Blis) => [
- q(0013),
+ q(0015),
q(0),
],
q(Bopo) => [
- q(0014),
+ q(0016),
q(0),
],
q(Brah) => [
- q(0015),
+ q(0017),
q(0),
],
q(Brai) => [
- q(0016),
+ q(0018),
q(0),
],
q(Bugi) => [
- q(0017),
+ q(0019),
q(0),
],
q(Buhd) => [
- q(0018),
+ q(0020),
q(0),
],
q(Cakm) => [
- q(0019),
+ q(0021),
q(0),
],
q(Cans) => [
- q(0020),
+ q(0022),
q(0),
],
q(Cari) => [
- q(0021),
+ q(0023),
q(0),
],
q(Cham) => [
- q(0022),
+ q(0024),
q(0),
],
q(Cher) => [
- q(0023),
+ q(0025),
q(0),
],
q(Cirt) => [
- q(0024),
+ q(0026),
q(0),
],
q(Copt) => [
- q(0025),
+ q(0027),
q(0),
],
q(Cprt) => [
- q(0026),
+ q(0028),
q(0),
],
q(Cyrl) => [
- q(0027),
+ q(0029),
q(0),
],
q(Cyrs) => [
- q(0028),
+ q(0030),
q(0),
],
q(Deva) => [
- q(0029),
+ q(0031),
q(1),
],
q(Dsrt) => [
- q(0030),
+ q(0032),
q(1),
],
q(Dupl) => [
- q(0031),
+ q(0033),
q(1),
],
q(Egyd) => [
- q(0032),
+ q(0034),
q(0),
],
q(Egyh) => [
- q(0033),
+ q(0035),
q(0),
],
q(Egyp) => [
- q(0034),
+ q(0036),
q(0),
],
q(Elba) => [
- q(0035),
+ q(0037),
q(0),
],
q(Ethi) => [
- q(0036),
+ q(0038),
q(1),
],
q(Geok) => [
- q(0038),
+ q(0039),
q(0),
],
q(Geor) => [
- q(0037),
+ q(0040),
q(0),
],
q(Glag) => [
- q(0039),
+ q(0041),
q(0),
],
q(Goth) => [
- q(0040),
+ q(0042),
q(0),
],
q(Gran) => [
- q(0041),
+ q(0043),
q(0),
],
q(Grek) => [
- q(0042),
+ q(0044),
q(0),
],
q(Gujr) => [
- q(0043),
+ q(0045),
q(0),
],
q(Guru) => [
- q(0044),
+ q(0046),
q(0),
],
q(Hang) => [
- q(0045),
+ q(0047),
q(1),
],
q(Hani) => [
- q(0046),
+ q(0048),
q(1),
],
q(Hano) => [
- q(0047),
+ q(0049),
q(1),
],
q(Hans) => [
- q(0048),
+ q(0050),
q(0),
],
q(Hant) => [
- q(0049),
+ q(0051),
q(0),
],
q(Hatr) => [
- q(0050),
+ q(0052),
q(0),
],
q(Hebr) => [
- q(0051),
+ q(0053),
q(0),
],
q(Hira) => [
- q(0052),
+ q(0054),
q(0),
],
q(Hluw) => [
- q(0053),
+ q(0055),
q(1),
],
q(Hmng) => [
- q(0054),
+ q(0056),
q(0),
],
q(Hrkt) => [
- q(0055),
+ q(0057),
q(0),
],
q(Hung) => [
- q(0056),
+ q(0058),
q(1),
],
q(Inds) => [
- q(0057),
+ q(0059),
q(1),
],
q(Ital) => [
- q(0058),
+ q(0060),
q(0),
],
q(Java) => [
- q(0059),
+ q(0061),
q(0),
],
q(Jpan) => [
- q(0060),
+ q(0062),
q(0),
],
q(Jurc) => [
- q(0061),
+ q(0063),
q(0),
],
q(Kali) => [
- q(0062),
+ q(0064),
q(0),
],
q(Kana) => [
- q(0063),
+ q(0065),
q(0),
],
q(Khar) => [
- q(0064),
+ q(0066),
q(0),
],
q(Khmr) => [
- q(0065),
+ q(0067),
q(0),
],
q(Khoj) => [
- q(0066),
+ q(0068),
+ q(0),
+ ],
+ q(Kitl) => [
+ q(0069),
+ q(0),
+ ],
+ q(Kits) => [
+ q(0070),
q(0),
],
q(Knda) => [
- q(0067),
+ q(0071),
q(0),
],
q(Kore) => [
- q(0068),
+ q(0072),
q(0),
],
q(Kpel) => [
- q(0069),
+ q(0073),
q(0),
],
q(Kthi) => [
- q(0070),
+ q(0074),
q(0),
],
q(Lana) => [
- q(0071),
+ q(0075),
q(1),
],
q(Laoo) => [
- q(0072),
+ q(0076),
q(0),
],
q(Latf) => [
- q(0073),
+ q(0077),
q(0),
],
q(Latg) => [
- q(0074),
+ q(0078),
q(0),
],
q(Latn) => [
- q(0075),
+ q(0079),
q(0),
],
q(Lepc) => [
- q(0076),
+ q(0080),
q(1),
],
q(Limb) => [
- q(0077),
+ q(0081),
q(0),
],
q(Lina) => [
- q(0078),
+ q(0082),
q(0),
],
q(Linb) => [
- q(0079),
+ q(0083),
q(0),
],
q(Lisu) => [
- q(0080),
+ q(0084),
q(1),
],
q(Loma) => [
- q(0081),
+ q(0085),
q(0),
],
q(Lyci) => [
- q(0082),
+ q(0086),
q(0),
],
q(Lydi) => [
- q(0083),
+ q(0087),
q(0),
],
q(Mahj) => [
- q(0084),
+ q(0088),
q(0),
],
q(Mand) => [
- q(0085),
+ q(0089),
q(1),
],
q(Mani) => [
- q(0086),
+ q(0090),
+ q(0),
+ ],
+ q(Marc) => [
+ q(0091),
q(0),
],
q(Maya) => [
- q(0087),
+ q(0092),
q(0),
],
q(Mend) => [
- q(0088),
+ q(0093),
q(0),
],
q(Merc) => [
- q(0089),
+ q(0094),
q(0),
],
q(Mero) => [
- q(0090),
+ q(0095),
q(0),
],
q(Mlym) => [
- q(0091),
+ q(0096),
q(0),
],
q(Modi) => [
- q(0092),
- q(2),
+ q(0097),
+ q(1),
],
q(Mong) => [
- q(0094),
+ q(0098),
q(0),
],
q(Moon) => [
- q(0093),
+ q(0099),
q(1),
],
q(Mroo) => [
- q(0095),
+ q(0100),
q(1),
],
q(Mtei) => [
- q(0096),
+ q(0101),
q(1),
],
q(Mult) => [
- q(0092),
- q(3),
+ q(0102),
+ q(0),
],
q(Mymr) => [
- q(0097),
+ q(0103),
q(1),
],
q(Narb) => [
- q(0098),
+ q(0104),
q(1),
],
q(Nbat) => [
- q(0099),
+ q(0105),
q(0),
],
q(Nkgb) => [
- q(0100),
+ q(0106),
q(1),
],
q(Nkoo) => [
- q(0101),
+ q(0107),
q(0),
],
q(Nshu) => [
- q(0102),
+ q(0108),
q(0),
],
q(Ogam) => [
- q(0103),
+ q(0109),
q(0),
],
q(Olck) => [
- q(0104),
+ q(0110),
q(1),
],
q(Orkh) => [
- q(0105),
+ q(0111),
q(1),
],
q(Orya) => [
- q(0106),
+ q(0112),
+ q(0),
+ ],
+ q(Osge) => [
+ q(0113),
q(0),
],
q(Osma) => [
- q(0107),
+ q(0114),
q(0),
],
q(Palm) => [
- q(0108),
+ q(0115),
q(0),
],
q(Pauc) => [
- q(0109),
+ q(0116),
q(0),
],
q(Perm) => [
- q(0110),
+ q(0117),
q(0),
],
q(Phag) => [
- q(0111),
+ q(0118),
q(0),
],
q(Phli) => [
- q(0112),
+ q(0119),
q(0),
],
q(Phlp) => [
- q(0113),
+ q(0120),
q(0),
],
q(Phlv) => [
- q(0114),
+ q(0121),
q(0),
],
q(Phnx) => [
- q(0115),
+ q(0122),
q(0),
],
q(Plrd) => [
- q(0116),
+ q(0123),
q(1),
],
q(Prti) => [
- q(0117),
+ q(0124),
q(0),
],
q(Qaaa) => [
- q(0118),
+ q(0125),
q(0),
],
q(Qabx) => [
- q(0119),
+ q(0126),
q(0),
],
q(Rjng) => [
- q(0120),
+ q(0127),
q(1),
],
q(Roro) => [
- q(0121),
+ q(0128),
q(0),
],
q(Runr) => [
- q(0122),
+ q(0129),
q(0),
],
q(Samr) => [
- q(0123),
+ q(0130),
q(0),
],
q(Sara) => [
- q(0124),
+ q(0131),
q(0),
],
q(Sarb) => [
- q(0125),
+ q(0132),
q(0),
],
q(Saur) => [
- q(0126),
+ q(0133),
q(0),
],
q(Sgnw) => [
- q(0127),
+ q(0134),
q(0),
],
q(Shaw) => [
- q(0128),
+ q(0135),
q(1),
],
q(Shrd) => [
- q(0129),
+ q(0136),
q(1),
],
q(Sidd) => [
- q(0130),
+ q(0137),
q(1),
],
q(Sind) => [
- q(0131),
+ q(0138),
q(1),
],
q(Sinh) => [
- q(0132),
+ q(0139),
q(0),
],
q(Sora) => [
- q(0133),
+ q(0140),
q(0),
],
q(Sund) => [
- q(0134),
+ q(0141),
q(0),
],
q(Sylo) => [
- q(0135),
+ q(0142),
q(0),
],
q(Syrc) => [
- q(0136),
+ q(0143),
q(0),
],
q(Syre) => [
- q(0137),
+ q(0144),
q(0),
],
q(Syrj) => [
- q(0138),
+ q(0145),
q(0),
],
q(Syrn) => [
- q(0139),
+ q(0146),
q(0),
],
q(Tagb) => [
- q(0140),
+ q(0147),
q(0),
],
q(Takr) => [
- q(0141),
+ q(0148),
q(1),
],
q(Tale) => [
- q(0142),
+ q(0149),
q(0),
],
q(Talu) => [
- q(0143),
+ q(0150),
q(0),
],
q(Taml) => [
- q(0144),
+ q(0151),
q(0),
],
q(Tang) => [
- q(0145),
+ q(0152),
q(0),
],
q(Tavt) => [
- q(0146),
+ q(0153),
q(0),
],
q(Telu) => [
- q(0147),
+ q(0154),
q(0),
],
q(Teng) => [
- q(0148),
+ q(0155),
q(0),
],
q(Tfng) => [
- q(0149),
+ q(0156),
q(1),
],
q(Tglg) => [
- q(0150),
+ q(0157),
q(1),
],
q(Thaa) => [
- q(0151),
+ q(0158),
q(0),
],
q(Thai) => [
- q(0152),
+ q(0159),
q(0),
],
q(Tibt) => [
- q(0153),
+ q(0160),
q(0),
],
q(Tirh) => [
- q(0154),
+ q(0161),
q(0),
],
q(Ugar) => [
- q(0155),
+ q(0162),
q(0),
],
q(Vaii) => [
- q(0156),
+ q(0163),
q(0),
],
q(Visp) => [
- q(0157),
+ q(0164),
q(0),
],
q(Wara) => [
- q(0158),
+ q(0165),
q(1),
],
q(Wole) => [
- q(0159),
+ q(0166),
q(0),
],
q(Xpeo) => [
- q(0160),
+ q(0167),
q(0),
],
q(Xsux) => [
- q(0161),
+ q(0168),
q(1),
],
q(Yiii) => [
- q(0162),
+ q(0169),
q(0),
],
q(Zinh) => [
- q(0163),
+ q(0170),
q(0),
],
q(Zmth) => [
- q(0164),
+ q(0171),
q(0),
],
q(Zsym) => [
- q(0165),
+ q(0172),
q(0),
],
},
q(num) => {
q(020) => [
- q(0161),
+ q(0168),
q(0),
],
q(030) => [
- q(0160),
+ q(0167),
q(0),
],
q(040) => [
- q(0155),
+ q(0162),
q(0),
],
q(050) => [
- q(0034),
+ q(0036),
q(0),
],
q(060) => [
- q(0033),
+ q(0035),
q(0),
],
q(070) => [
- q(0032),
+ q(0034),
q(0),
],
q(080) => [
- q(0053),
+ q(0055),
q(0),
],
q(090) => [
- q(0087),
+ q(0092),
q(0),
],
q(095) => [
- q(0127),
+ q(0134),
q(0),
],
q(100) => [
- q(0090),
+ q(0095),
q(0),
],
q(101) => [
- q(0089),
+ q(0094),
q(0),
],
q(105) => [
- q(0125),
+ q(0132),
q(0),
],
q(106) => [
- q(0098),
+ q(0104),
q(0),
],
q(115) => [
- q(0115),
+ q(0122),
q(0),
],
q(116) => [
- q(0083),
+ q(0087),
q(0),
],
q(120) => [
- q(0149),
+ q(0156),
q(0),
],
q(123) => [
- q(0123),
+ q(0130),
q(0),
],
q(124) => [
- q(0005),
+ q(0007),
q(0),
],
q(125) => [
- q(0051),
+ q(0053),
q(0),
],
q(126) => [
- q(0108),
+ q(0115),
q(0),
],
q(127) => [
- q(0050),
+ q(0052),
q(0),
],
q(130) => [
- q(0117),
+ q(0124),
q(0),
],
q(131) => [
- q(0112),
+ q(0119),
q(0),
],
q(132) => [
- q(0113),
+ q(0120),
q(0),
],
q(133) => [
- q(0114),
+ q(0121),
q(0),
],
q(134) => [
- q(0007),
+ q(0009),
q(0),
],
q(135) => [
- q(0136),
+ q(0143),
q(0),
],
q(136) => [
- q(0139),
+ q(0146),
q(0),
],
q(137) => [
- q(0138),
+ q(0145),
q(0),
],
q(138) => [
- q(0137),
+ q(0144),
q(0),
],
q(139) => [
- q(0086),
+ q(0090),
q(0),
],
q(140) => [
- q(0085),
+ q(0089),
q(0),
],
q(145) => [
- q(0094),
+ q(0098),
q(0),
],
q(159) => [
- q(0099),
+ q(0105),
q(0),
],
q(160) => [
- q(0004),
+ q(0005),
+ q(0),
+ ],
+ q(161) => [
+ q(0006),
q(0),
],
q(165) => [
- q(0101),
+ q(0107),
+ q(0),
+ ],
+ q(166) => [
+ q(0001),
q(0),
],
q(170) => [
- q(0151),
+ q(0158),
q(0),
],
q(175) => [
- q(0105),
+ q(0111),
q(0),
],
q(176) => [
- q(0056),
+ q(0058),
q(0),
],
q(199) => [
- q(0095),
+ q(0100),
q(0),
],
q(200) => [
- q(0042),
+ q(0044),
q(0),
],
q(201) => [
- q(0021),
+ q(0023),
q(0),
],
q(202) => [
- q(0082),
+ q(0086),
q(0),
],
q(204) => [
- q(0025),
+ q(0027),
q(0),
],
q(206) => [
- q(0040),
+ q(0042),
q(0),
],
q(210) => [
- q(0058),
+ q(0060),
q(0),
],
q(211) => [
- q(0122),
+ q(0129),
q(0),
],
q(212) => [
- q(0103),
+ q(0109),
q(0),
],
q(215) => [
- q(0075),
+ q(0079),
q(0),
],
q(216) => [
- q(0074),
+ q(0078),
q(0),
],
q(217) => [
- q(0073),
+ q(0077),
q(0),
],
q(218) => [
- q(0093),
+ q(0099),
+ q(0),
+ ],
+ q(219) => [
+ q(0113),
q(0),
],
q(220) => [
- q(0027),
+ q(0029),
q(0),
],
q(221) => [
- q(0028),
+ q(0030),
q(0),
],
q(225) => [
- q(0039),
+ q(0041),
q(0),
],
q(226) => [
- q(0035),
+ q(0037),
q(0),
],
q(227) => [
- q(0110),
+ q(0117),
q(0),
],
q(230) => [
- q(0006),
+ q(0008),
q(0),
],
q(239) => [
- q(0002),
+ q(0003),
q(0),
],
q(240) => [
- q(0037),
+ q(0040),
q(0),
],
q(241) => [
- q(0038),
+ q(0039),
q(0),
],
q(250) => [
- q(0030),
+ q(0032),
q(0),
],
q(259) => [
- q(0010),
+ q(0012),
q(0),
],
q(260) => [
- q(0107),
+ q(0114),
q(0),
],
q(261) => [
- q(0104),
+ q(0110),
q(0),
],
q(262) => [
- q(0158),
+ q(0165),
q(0),
],
q(263) => [
- q(0109),
+ q(0116),
q(0),
],
q(280) => [
- q(0157),
+ q(0164),
q(0),
],
q(281) => [
- q(0128),
+ q(0135),
q(0),
],
q(282) => [
- q(0116),
+ q(0123),
q(0),
],
q(285) => [
- q(0014),
+ q(0016),
q(0),
],
q(286) => [
- q(0045),
+ q(0047),
q(0),
],
q(287) => [
- q(0068),
+ q(0072),
+ q(0),
+ ],
+ q(288) => [
+ q(0070),
q(0),
],
q(290) => [
- q(0148),
+ q(0155),
q(0),
],
q(291) => [
- q(0024),
+ q(0026),
q(0),
],
q(292) => [
- q(0124),
+ q(0131),
q(0),
],
q(300) => [
- q(0015),
+ q(0017),
q(0),
],
q(302) => [
- q(0130),
+ q(0137),
q(0),
],
q(305) => [
- q(0064),
+ q(0066),
q(0),
],
q(310) => [
- q(0044),
+ q(0046),
q(0),
],
q(314) => [
- q(0084),
+ q(0088),
q(0),
],
q(315) => [
- q(0029),
+ q(0031),
q(0),
],
q(316) => [
- q(0135),
+ q(0142),
q(0),
],
q(317) => [
- q(0070),
+ q(0074),
q(0),
],
q(318) => [
- q(0131),
+ q(0138),
q(0),
],
q(319) => [
- q(0129),
+ q(0136),
q(0),
],
q(320) => [
- q(0043),
+ q(0045),
q(0),
],
q(321) => [
- q(0141),
+ q(0148),
q(0),
],
q(322) => [
- q(0066),
+ q(0068),
q(0),
],
q(323) => [
- q(0092),
- q(1),
+ q(0102),
+ q(0),
+ ],
+ q(324) => [
+ q(0097),
+ q(0),
],
q(325) => [
- q(0012),
+ q(0014),
q(0),
],
q(326) => [
- q(0154),
+ q(0161),
q(0),
],
q(327) => [
- q(0106),
+ q(0112),
q(0),
],
q(330) => [
- q(0153),
+ q(0160),
q(0),
],
q(331) => [
- q(0111),
+ q(0118),
+ q(0),
+ ],
+ q(332) => [
+ q(0091),
q(0),
],
q(335) => [
- q(0076),
+ q(0080),
q(0),
],
q(336) => [
- q(0077),
+ q(0081),
q(0),
],
q(337) => [
- q(0096),
+ q(0101),
q(0),
],
q(338) => [
- q(0003),
+ q(0004),
q(0),
],
q(340) => [
- q(0147),
+ q(0154),
q(0),
],
q(343) => [
- q(0041),
+ q(0043),
q(0),
],
q(344) => [
- q(0126),
+ q(0133),
q(0),
],
q(345) => [
- q(0067),
+ q(0071),
q(0),
],
q(346) => [
- q(0144),
+ q(0151),
q(0),
],
q(347) => [
- q(0091),
+ q(0096),
q(0),
],
q(348) => [
- q(0132),
+ q(0139),
q(0),
],
q(349) => [
- q(0019),
+ q(0021),
q(0),
],
q(350) => [
- q(0097),
+ q(0103),
q(0),
],
q(351) => [
- q(0071),
+ q(0075),
q(0),
],
q(352) => [
- q(0152),
+ q(0159),
q(0),
],
q(353) => [
- q(0142),
+ q(0149),
q(0),
],
q(354) => [
- q(0143),
+ q(0150),
q(0),
],
q(355) => [
- q(0065),
+ q(0067),
q(0),
],
q(356) => [
- q(0072),
+ q(0076),
q(0),
],
q(357) => [
- q(0062),
+ q(0064),
q(0),
],
q(358) => [
- q(0022),
+ q(0024),
q(0),
],
q(359) => [
- q(0146),
+ q(0153),
q(0),
],
q(360) => [
- q(0008),
+ q(0010),
q(0),
],
q(361) => [
- q(0059),
+ q(0061),
q(0),
],
q(362) => [
- q(0134),
+ q(0141),
q(0),
],
q(363) => [
- q(0120),
+ q(0127),
q(0),
],
q(365) => [
- q(0011),
+ q(0013),
q(0),
],
q(367) => [
- q(0017),
+ q(0019),
q(0),
],
q(370) => [
- q(0150),
+ q(0157),
q(0),
],
q(371) => [
- q(0047),
+ q(0049),
q(0),
],
q(372) => [
- q(0018),
+ q(0020),
q(0),
],
q(373) => [
- q(0140),
+ q(0147),
q(0),
],
q(398) => [
- q(0133),
+ q(0140),
q(0),
],
q(399) => [
- q(0080),
+ q(0084),
q(0),
],
q(400) => [
- q(0078),
+ q(0082),
q(0),
],
q(401) => [
- q(0079),
+ q(0083),
q(0),
],
q(403) => [
- q(0026),
+ q(0028),
q(0),
],
q(410) => [
- q(0052),
+ q(0054),
q(0),
],
q(411) => [
- q(0063),
+ q(0065),
q(0),
],
q(412) => [
- q(0055),
+ q(0057),
q(0),
],
q(413) => [
- q(0060),
+ q(0062),
q(0),
],
q(420) => [
- q(0100),
+ q(0106),
q(0),
],
q(430) => [
- q(0036),
+ q(0038),
q(0),
],
q(435) => [
- q(0009),
+ q(0011),
q(0),
],
q(436) => [
- q(0069),
+ q(0073),
q(0),
],
q(437) => [
- q(0081),
+ q(0085),
q(0),
],
q(438) => [
- q(0088),
+ q(0093),
q(0),
],
q(439) => [
- q(0001),
+ q(0002),
q(0),
],
q(440) => [
- q(0020),
+ q(0022),
q(0),
],
q(445) => [
- q(0023),
+ q(0025),
q(0),
],
q(450) => [
- q(0054),
+ q(0056),
q(0),
],
q(460) => [
- q(0162),
+ q(0169),
q(0),
],
q(470) => [
- q(0156),
+ q(0163),
q(0),
],
q(480) => [
- q(0159),
+ q(0166),
q(0),
],
q(499) => [
- q(0102),
+ q(0108),
q(0),
],
q(500) => [
- q(0046),
+ q(0048),
q(0),
],
q(501) => [
- q(0048),
+ q(0050),
q(0),
],
q(502) => [
- q(0049),
+ q(0051),
+ q(0),
+ ],
+ q(505) => [
+ q(0069),
q(0),
],
q(510) => [
- q(0061),
+ q(0063),
q(0),
],
q(520) => [
- q(0145),
+ q(0152),
q(0),
],
q(550) => [
- q(0013),
+ q(0015),
q(0),
],
q(570) => [
- q(0016),
+ q(0018),
q(0),
],
q(610) => [
- q(0057),
+ q(0059),
q(0),
],
q(620) => [
- q(0121),
+ q(0128),
q(0),
],
q(755) => [
- q(0031),
+ q(0033),
q(0),
],
q(900) => [
- q(0118),
+ q(0125),
q(0),
],
q(949) => [
- q(0119),
+ q(0126),
q(0),
],
q(994) => [
- q(0163),
+ q(0170),
q(0),
],
q(995) => [
- q(0164),
+ q(0171),
q(0),
],
q(996) => [
- q(0165),
+ q(0172),
q(0),
],
},
@@ -2909,338 +3000,352 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
$Locale::Codes::Data{'script'}{'id2code'} = {
q(alpha) => {
- q(0001) => q(Afak),
- q(0002) => q(Aghb),
- q(0003) => q(Ahom),
- q(0004) => q(Arab),
- q(0005) => q(Armi),
- q(0006) => q(Armn),
- q(0007) => q(Avst),
- q(0008) => q(Bali),
- q(0009) => q(Bamu),
- q(0010) => q(Bass),
- q(0011) => q(Batk),
- q(0012) => q(Beng),
- q(0013) => q(Blis),
- q(0014) => q(Bopo),
- q(0015) => q(Brah),
- q(0016) => q(Brai),
- q(0017) => q(Bugi),
- q(0018) => q(Buhd),
- q(0019) => q(Cakm),
- q(0020) => q(Cans),
- q(0021) => q(Cari),
- q(0022) => q(Cham),
- q(0023) => q(Cher),
- q(0024) => q(Cirt),
- q(0025) => q(Copt),
- q(0026) => q(Cprt),
- q(0027) => q(Cyrl),
- q(0028) => q(Cyrs),
- q(0029) => q(Deva),
- q(0030) => q(Dsrt),
- q(0031) => q(Dupl),
- q(0032) => q(Egyd),
- q(0033) => q(Egyh),
- q(0034) => q(Egyp),
- q(0035) => q(Elba),
- q(0036) => q(Ethi),
- q(0037) => q(Geor),
- q(0038) => q(Geok),
- q(0039) => q(Glag),
- q(0040) => q(Goth),
- q(0041) => q(Gran),
- q(0042) => q(Grek),
- q(0043) => q(Gujr),
- q(0044) => q(Guru),
- q(0045) => q(Hang),
- q(0046) => q(Hani),
- q(0047) => q(Hano),
- q(0048) => q(Hans),
- q(0049) => q(Hant),
- q(0050) => q(Hatr),
- q(0051) => q(Hebr),
- q(0052) => q(Hira),
- q(0053) => q(Hluw),
- q(0054) => q(Hmng),
- q(0055) => q(Hrkt),
- q(0056) => q(Hung),
- q(0057) => q(Inds),
- q(0058) => q(Ital),
- q(0059) => q(Java),
- q(0060) => q(Jpan),
- q(0061) => q(Jurc),
- q(0062) => q(Kali),
- q(0063) => q(Kana),
- q(0064) => q(Khar),
- q(0065) => q(Khmr),
- q(0066) => q(Khoj),
- q(0067) => q(Knda),
- q(0068) => q(Kore),
- q(0069) => q(Kpel),
- q(0070) => q(Kthi),
- q(0071) => q(Lana),
- q(0072) => q(Laoo),
- q(0073) => q(Latf),
- q(0074) => q(Latg),
- q(0075) => q(Latn),
- q(0076) => q(Lepc),
- q(0077) => q(Limb),
- q(0078) => q(Lina),
- q(0079) => q(Linb),
- q(0080) => q(Lisu),
- q(0081) => q(Loma),
- q(0082) => q(Lyci),
- q(0083) => q(Lydi),
- q(0084) => q(Mahj),
- q(0085) => q(Mand),
- q(0086) => q(Mani),
- q(0087) => q(Maya),
- q(0088) => q(Mend),
- q(0089) => q(Merc),
- q(0090) => q(Mero),
- q(0091) => q(Mlym),
- q(0092) => q(Mult),
- q(0093) => q(Moon),
- q(0094) => q(Mong),
- q(0095) => q(Mroo),
- q(0096) => q(Mtei),
- q(0097) => q(Mymr),
- q(0098) => q(Narb),
- q(0099) => q(Nbat),
- q(0100) => q(Nkgb),
- q(0101) => q(Nkoo),
- q(0102) => q(Nshu),
- q(0103) => q(Ogam),
- q(0104) => q(Olck),
- q(0105) => q(Orkh),
- q(0106) => q(Orya),
- q(0107) => q(Osma),
- q(0108) => q(Palm),
- q(0109) => q(Pauc),
- q(0110) => q(Perm),
- q(0111) => q(Phag),
- q(0112) => q(Phli),
- q(0113) => q(Phlp),
- q(0114) => q(Phlv),
- q(0115) => q(Phnx),
- q(0116) => q(Plrd),
- q(0117) => q(Prti),
- q(0118) => q(Qaaa),
- q(0119) => q(Qabx),
- q(0120) => q(Rjng),
- q(0121) => q(Roro),
- q(0122) => q(Runr),
- q(0123) => q(Samr),
- q(0124) => q(Sara),
- q(0125) => q(Sarb),
- q(0126) => q(Saur),
- q(0127) => q(Sgnw),
- q(0128) => q(Shaw),
- q(0129) => q(Shrd),
- q(0130) => q(Sidd),
- q(0131) => q(Sind),
- q(0132) => q(Sinh),
- q(0133) => q(Sora),
- q(0134) => q(Sund),
- q(0135) => q(Sylo),
- q(0136) => q(Syrc),
- q(0137) => q(Syre),
- q(0138) => q(Syrj),
- q(0139) => q(Syrn),
- q(0140) => q(Tagb),
- q(0141) => q(Takr),
- q(0142) => q(Tale),
- q(0143) => q(Talu),
- q(0144) => q(Taml),
- q(0145) => q(Tang),
- q(0146) => q(Tavt),
- q(0147) => q(Telu),
- q(0148) => q(Teng),
- q(0149) => q(Tfng),
- q(0150) => q(Tglg),
- q(0151) => q(Thaa),
- q(0152) => q(Thai),
- q(0153) => q(Tibt),
- q(0154) => q(Tirh),
- q(0155) => q(Ugar),
- q(0156) => q(Vaii),
- q(0157) => q(Visp),
- q(0158) => q(Wara),
- q(0159) => q(Wole),
- q(0160) => q(Xpeo),
- q(0161) => q(Xsux),
- q(0162) => q(Yiii),
- q(0163) => q(Zinh),
- q(0164) => q(Zmth),
- q(0165) => q(Zsym),
+ q(0001) => q(Adlm),
+ q(0002) => q(Afak),
+ q(0003) => q(Aghb),
+ q(0004) => q(Ahom),
+ q(0005) => q(Arab),
+ q(0006) => q(Aran),
+ q(0007) => q(Armi),
+ q(0008) => q(Armn),
+ q(0009) => q(Avst),
+ q(0010) => q(Bali),
+ q(0011) => q(Bamu),
+ q(0012) => q(Bass),
+ q(0013) => q(Batk),
+ q(0014) => q(Beng),
+ q(0015) => q(Blis),
+ q(0016) => q(Bopo),
+ q(0017) => q(Brah),
+ q(0018) => q(Brai),
+ q(0019) => q(Bugi),
+ q(0020) => q(Buhd),
+ q(0021) => q(Cakm),
+ q(0022) => q(Cans),
+ q(0023) => q(Cari),
+ q(0024) => q(Cham),
+ q(0025) => q(Cher),
+ q(0026) => q(Cirt),
+ q(0027) => q(Copt),
+ q(0028) => q(Cprt),
+ q(0029) => q(Cyrl),
+ q(0030) => q(Cyrs),
+ q(0031) => q(Deva),
+ q(0032) => q(Dsrt),
+ q(0033) => q(Dupl),
+ q(0034) => q(Egyd),
+ q(0035) => q(Egyh),
+ q(0036) => q(Egyp),
+ q(0037) => q(Elba),
+ q(0038) => q(Ethi),
+ q(0039) => q(Geok),
+ q(0040) => q(Geor),
+ q(0041) => q(Glag),
+ q(0042) => q(Goth),
+ q(0043) => q(Gran),
+ q(0044) => q(Grek),
+ q(0045) => q(Gujr),
+ q(0046) => q(Guru),
+ q(0047) => q(Hang),
+ q(0048) => q(Hani),
+ q(0049) => q(Hano),
+ q(0050) => q(Hans),
+ q(0051) => q(Hant),
+ q(0052) => q(Hatr),
+ q(0053) => q(Hebr),
+ q(0054) => q(Hira),
+ q(0055) => q(Hluw),
+ q(0056) => q(Hmng),
+ q(0057) => q(Hrkt),
+ q(0058) => q(Hung),
+ q(0059) => q(Inds),
+ q(0060) => q(Ital),
+ q(0061) => q(Java),
+ q(0062) => q(Jpan),
+ q(0063) => q(Jurc),
+ q(0064) => q(Kali),
+ q(0065) => q(Kana),
+ q(0066) => q(Khar),
+ q(0067) => q(Khmr),
+ q(0068) => q(Khoj),
+ q(0069) => q(Kitl),
+ q(0070) => q(Kits),
+ q(0071) => q(Knda),
+ q(0072) => q(Kore),
+ q(0073) => q(Kpel),
+ q(0074) => q(Kthi),
+ q(0075) => q(Lana),
+ q(0076) => q(Laoo),
+ q(0077) => q(Latf),
+ q(0078) => q(Latg),
+ q(0079) => q(Latn),
+ q(0080) => q(Lepc),
+ q(0081) => q(Limb),
+ q(0082) => q(Lina),
+ q(0083) => q(Linb),
+ q(0084) => q(Lisu),
+ q(0085) => q(Loma),
+ q(0086) => q(Lyci),
+ q(0087) => q(Lydi),
+ q(0088) => q(Mahj),
+ q(0089) => q(Mand),
+ q(0090) => q(Mani),
+ q(0091) => q(Marc),
+ q(0092) => q(Maya),
+ q(0093) => q(Mend),
+ q(0094) => q(Merc),
+ q(0095) => q(Mero),
+ q(0096) => q(Mlym),
+ q(0097) => q(Modi),
+ q(0098) => q(Mong),
+ q(0099) => q(Moon),
+ q(0100) => q(Mroo),
+ q(0101) => q(Mtei),
+ q(0102) => q(Mult),
+ q(0103) => q(Mymr),
+ q(0104) => q(Narb),
+ q(0105) => q(Nbat),
+ q(0106) => q(Nkgb),
+ q(0107) => q(Nkoo),
+ q(0108) => q(Nshu),
+ q(0109) => q(Ogam),
+ q(0110) => q(Olck),
+ q(0111) => q(Orkh),
+ q(0112) => q(Orya),
+ q(0113) => q(Osge),
+ q(0114) => q(Osma),
+ q(0115) => q(Palm),
+ q(0116) => q(Pauc),
+ q(0117) => q(Perm),
+ q(0118) => q(Phag),
+ q(0119) => q(Phli),
+ q(0120) => q(Phlp),
+ q(0121) => q(Phlv),
+ q(0122) => q(Phnx),
+ q(0123) => q(Plrd),
+ q(0124) => q(Prti),
+ q(0125) => q(Qaaa),
+ q(0126) => q(Qabx),
+ q(0127) => q(Rjng),
+ q(0128) => q(Roro),
+ q(0129) => q(Runr),
+ q(0130) => q(Samr),
+ q(0131) => q(Sara),
+ q(0132) => q(Sarb),
+ q(0133) => q(Saur),
+ q(0134) => q(Sgnw),
+ q(0135) => q(Shaw),
+ q(0136) => q(Shrd),
+ q(0137) => q(Sidd),
+ q(0138) => q(Sind),
+ q(0139) => q(Sinh),
+ q(0140) => q(Sora),
+ q(0141) => q(Sund),
+ q(0142) => q(Sylo),
+ q(0143) => q(Syrc),
+ q(0144) => q(Syre),
+ q(0145) => q(Syrj),
+ q(0146) => q(Syrn),
+ q(0147) => q(Tagb),
+ q(0148) => q(Takr),
+ q(0149) => q(Tale),
+ q(0150) => q(Talu),
+ q(0151) => q(Taml),
+ q(0152) => q(Tang),
+ q(0153) => q(Tavt),
+ q(0154) => q(Telu),
+ q(0155) => q(Teng),
+ q(0156) => q(Tfng),
+ q(0157) => q(Tglg),
+ q(0158) => q(Thaa),
+ q(0159) => q(Thai),
+ q(0160) => q(Tibt),
+ q(0161) => q(Tirh),
+ q(0162) => q(Ugar),
+ q(0163) => q(Vaii),
+ q(0164) => q(Visp),
+ q(0165) => q(Wara),
+ q(0166) => q(Wole),
+ q(0167) => q(Xpeo),
+ q(0168) => q(Xsux),
+ q(0169) => q(Yiii),
+ q(0170) => q(Zinh),
+ q(0171) => q(Zmth),
+ q(0172) => q(Zsym),
},
q(num) => {
- q(0001) => q(439),
- q(0002) => q(239),
- q(0003) => q(338),
- q(0004) => q(160),
- q(0005) => q(124),
- q(0006) => q(230),
- q(0007) => q(134),
- q(0008) => q(360),
- q(0009) => q(435),
- q(0010) => q(259),
- q(0011) => q(365),
- q(0012) => q(325),
- q(0013) => q(550),
- q(0014) => q(285),
- q(0015) => q(300),
- q(0016) => q(570),
- q(0017) => q(367),
- q(0018) => q(372),
- q(0019) => q(349),
- q(0020) => q(440),
- q(0021) => q(201),
- q(0022) => q(358),
- q(0023) => q(445),
- q(0024) => q(291),
- q(0025) => q(204),
- q(0026) => q(403),
- q(0027) => q(220),
- q(0028) => q(221),
- q(0029) => q(315),
- q(0030) => q(250),
- q(0031) => q(755),
- q(0032) => q(070),
- q(0033) => q(060),
- q(0034) => q(050),
- q(0035) => q(226),
- q(0036) => q(430),
- q(0037) => q(240),
- q(0038) => q(241),
- q(0039) => q(225),
- q(0040) => q(206),
- q(0041) => q(343),
- q(0042) => q(200),
- q(0043) => q(320),
- q(0044) => q(310),
- q(0045) => q(286),
- q(0046) => q(500),
- q(0047) => q(371),
- q(0048) => q(501),
- q(0049) => q(502),
- q(0050) => q(127),
- q(0051) => q(125),
- q(0052) => q(410),
- q(0053) => q(080),
- q(0054) => q(450),
- q(0055) => q(412),
- q(0056) => q(176),
- q(0057) => q(610),
- q(0058) => q(210),
- q(0059) => q(361),
- q(0060) => q(413),
- q(0061) => q(510),
- q(0062) => q(357),
- q(0063) => q(411),
- q(0064) => q(305),
- q(0065) => q(355),
- q(0066) => q(322),
- q(0067) => q(345),
- q(0068) => q(287),
- q(0069) => q(436),
- q(0070) => q(317),
- q(0071) => q(351),
- q(0072) => q(356),
- q(0073) => q(217),
- q(0074) => q(216),
- q(0075) => q(215),
- q(0076) => q(335),
- q(0077) => q(336),
- q(0078) => q(400),
- q(0079) => q(401),
- q(0080) => q(399),
- q(0081) => q(437),
- q(0082) => q(202),
- q(0083) => q(116),
- q(0084) => q(314),
- q(0085) => q(140),
- q(0086) => q(139),
- q(0087) => q(090),
- q(0088) => q(438),
- q(0089) => q(101),
- q(0090) => q(100),
- q(0091) => q(347),
- q(0092) => q(323),
- q(0093) => q(218),
- q(0094) => q(145),
- q(0095) => q(199),
- q(0096) => q(337),
- q(0097) => q(350),
- q(0098) => q(106),
- q(0099) => q(159),
- q(0100) => q(420),
- q(0101) => q(165),
- q(0102) => q(499),
- q(0103) => q(212),
- q(0104) => q(261),
- q(0105) => q(175),
- q(0106) => q(327),
- q(0107) => q(260),
- q(0108) => q(126),
- q(0109) => q(263),
- q(0110) => q(227),
- q(0111) => q(331),
- q(0112) => q(131),
- q(0113) => q(132),
- q(0114) => q(133),
- q(0115) => q(115),
- q(0116) => q(282),
- q(0117) => q(130),
- q(0118) => q(900),
- q(0119) => q(949),
- q(0120) => q(363),
- q(0121) => q(620),
- q(0122) => q(211),
- q(0123) => q(123),
- q(0124) => q(292),
- q(0125) => q(105),
- q(0126) => q(344),
- q(0127) => q(095),
- q(0128) => q(281),
- q(0129) => q(319),
- q(0130) => q(302),
- q(0131) => q(318),
- q(0132) => q(348),
- q(0133) => q(398),
- q(0134) => q(362),
- q(0135) => q(316),
- q(0136) => q(135),
- q(0137) => q(138),
- q(0138) => q(137),
- q(0139) => q(136),
- q(0140) => q(373),
- q(0141) => q(321),
- q(0142) => q(353),
- q(0143) => q(354),
- q(0144) => q(346),
- q(0145) => q(520),
- q(0146) => q(359),
- q(0147) => q(340),
- q(0148) => q(290),
- q(0149) => q(120),
- q(0150) => q(370),
- q(0151) => q(170),
- q(0152) => q(352),
- q(0153) => q(330),
- q(0154) => q(326),
- q(0155) => q(040),
- q(0156) => q(470),
- q(0157) => q(280),
- q(0158) => q(262),
- q(0159) => q(480),
- q(0160) => q(030),
- q(0161) => q(020),
- q(0162) => q(460),
- q(0163) => q(994),
- q(0164) => q(995),
- q(0165) => q(996),
+ q(0001) => q(166),
+ q(0002) => q(439),
+ q(0003) => q(239),
+ q(0004) => q(338),
+ q(0005) => q(160),
+ q(0006) => q(161),
+ q(0007) => q(124),
+ q(0008) => q(230),
+ q(0009) => q(134),
+ q(0010) => q(360),
+ q(0011) => q(435),
+ q(0012) => q(259),
+ q(0013) => q(365),
+ q(0014) => q(325),
+ q(0015) => q(550),
+ q(0016) => q(285),
+ q(0017) => q(300),
+ q(0018) => q(570),
+ q(0019) => q(367),
+ q(0020) => q(372),
+ q(0021) => q(349),
+ q(0022) => q(440),
+ q(0023) => q(201),
+ q(0024) => q(358),
+ q(0025) => q(445),
+ q(0026) => q(291),
+ q(0027) => q(204),
+ q(0028) => q(403),
+ q(0029) => q(220),
+ q(0030) => q(221),
+ q(0031) => q(315),
+ q(0032) => q(250),
+ q(0033) => q(755),
+ q(0034) => q(070),
+ q(0035) => q(060),
+ q(0036) => q(050),
+ q(0037) => q(226),
+ q(0038) => q(430),
+ q(0039) => q(241),
+ q(0040) => q(240),
+ q(0041) => q(225),
+ q(0042) => q(206),
+ q(0043) => q(343),
+ q(0044) => q(200),
+ q(0045) => q(320),
+ q(0046) => q(310),
+ q(0047) => q(286),
+ q(0048) => q(500),
+ q(0049) => q(371),
+ q(0050) => q(501),
+ q(0051) => q(502),
+ q(0052) => q(127),
+ q(0053) => q(125),
+ q(0054) => q(410),
+ q(0055) => q(080),
+ q(0056) => q(450),
+ q(0057) => q(412),
+ q(0058) => q(176),
+ q(0059) => q(610),
+ q(0060) => q(210),
+ q(0061) => q(361),
+ q(0062) => q(413),
+ q(0063) => q(510),
+ q(0064) => q(357),
+ q(0065) => q(411),
+ q(0066) => q(305),
+ q(0067) => q(355),
+ q(0068) => q(322),
+ q(0069) => q(505),
+ q(0070) => q(288),
+ q(0071) => q(345),
+ q(0072) => q(287),
+ q(0073) => q(436),
+ q(0074) => q(317),
+ q(0075) => q(351),
+ q(0076) => q(356),
+ q(0077) => q(217),
+ q(0078) => q(216),
+ q(0079) => q(215),
+ q(0080) => q(335),
+ q(0081) => q(336),
+ q(0082) => q(400),
+ q(0083) => q(401),
+ q(0084) => q(399),
+ q(0085) => q(437),
+ q(0086) => q(202),
+ q(0087) => q(116),
+ q(0088) => q(314),
+ q(0089) => q(140),
+ q(0090) => q(139),
+ q(0091) => q(332),
+ q(0092) => q(090),
+ q(0093) => q(438),
+ q(0094) => q(101),
+ q(0095) => q(100),
+ q(0096) => q(347),
+ q(0097) => q(324),
+ q(0098) => q(145),
+ q(0099) => q(218),
+ q(0100) => q(199),
+ q(0101) => q(337),
+ q(0102) => q(323),
+ q(0103) => q(350),
+ q(0104) => q(106),
+ q(0105) => q(159),
+ q(0106) => q(420),
+ q(0107) => q(165),
+ q(0108) => q(499),
+ q(0109) => q(212),
+ q(0110) => q(261),
+ q(0111) => q(175),
+ q(0112) => q(327),
+ q(0113) => q(219),
+ q(0114) => q(260),
+ q(0115) => q(126),
+ q(0116) => q(263),
+ q(0117) => q(227),
+ q(0118) => q(331),
+ q(0119) => q(131),
+ q(0120) => q(132),
+ q(0121) => q(133),
+ q(0122) => q(115),
+ q(0123) => q(282),
+ q(0124) => q(130),
+ q(0125) => q(900),
+ q(0126) => q(949),
+ q(0127) => q(363),
+ q(0128) => q(620),
+ q(0129) => q(211),
+ q(0130) => q(123),
+ q(0131) => q(292),
+ q(0132) => q(105),
+ q(0133) => q(344),
+ q(0134) => q(095),
+ q(0135) => q(281),
+ q(0136) => q(319),
+ q(0137) => q(302),
+ q(0138) => q(318),
+ q(0139) => q(348),
+ q(0140) => q(398),
+ q(0141) => q(362),
+ q(0142) => q(316),
+ q(0143) => q(135),
+ q(0144) => q(138),
+ q(0145) => q(137),
+ q(0146) => q(136),
+ q(0147) => q(373),
+ q(0148) => q(321),
+ q(0149) => q(353),
+ q(0150) => q(354),
+ q(0151) => q(346),
+ q(0152) => q(520),
+ q(0153) => q(359),
+ q(0154) => q(340),
+ q(0155) => q(290),
+ q(0156) => q(120),
+ q(0157) => q(370),
+ q(0158) => q(170),
+ q(0159) => q(352),
+ q(0160) => q(330),
+ q(0161) => q(326),
+ q(0162) => q(040),
+ q(0163) => q(470),
+ q(0164) => q(280),
+ q(0165) => q(262),
+ q(0166) => q(480),
+ q(0167) => q(030),
+ q(0168) => q(020),
+ q(0169) => q(460),
+ q(0170) => q(994),
+ q(0171) => q(995),
+ q(0172) => q(996),
},
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Retired.pm
index f9cb4ad44ad..eb4d17c4c17 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Retired.pm
+++ b/Master/tlpkg/tlperl/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 Mar 4 13:19:40 EST 2014
+# Generated on: Fri Feb 20 15:27:22 GMT 2015
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.30';
+$VERSION='3.34';
$Locale::Codes::Retired{'script'}{'alpha'}{'code'} = {
};
@@ -61,6 +61,7 @@ $Locale::Codes::Retired{'script'}{'alpha'}{'name'} = {
};
$Locale::Codes::Retired{'script'}{'num'}{'name'} = {
+ q( multani) => [ q(323), q( Multani) ],
q(mende) => [ q(438), q(Mende) ],
q(old hungarian) => [ q(176), q(Old Hungarian) ],
q(tiruta) => [ q(326), q(Tiruta) ],
diff --git a/Master/tlpkg/tlperl/lib/Locale/Country.pm b/Master/tlpkg/tlperl/lib/Locale/Country.pm
index 4de16842bc8..9dd896cca25 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Country.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Country.pm
@@ -1,7 +1,7 @@
package Locale::Country;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -10,7 +10,7 @@ use warnings;
use Exporter;
our $VERSION;
-$VERSION='3.30';
+$VERSION='3.34';
our (@ISA,@EXPORT);
diff --git a/Master/tlpkg/tlperl/lib/Locale/Country.pod b/Master/tlpkg/tlperl/lib/Locale/Country.pod
index 7639f7a0f68..133a9d69972 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Country.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Country.pod
@@ -80,15 +80,15 @@ Locale::Codes::Changes document for details.
=over 4
-=item B<code2country ( CODE [,CODESET] )>
+=item B<code2country ( CODE [,CODESET] [,'retired'])>
-=item B<country2code ( NAME [,CODESET] )>
+=item B<country2code ( NAME [,CODESET] [,'retired'])>
=item B<country_code2code ( CODE ,CODESET ,CODESET2 )>
-=item B<all_country_codes ( [CODESET] )>
+=item B<all_country_codes ( [CODESET] [,'retired'])>
-=item B<all_country_names ( [CODESET] )>
+=item B<all_country_names ( [CODESET] [,'retired'])>
=item B<Locale::Country::rename_country ( CODE ,NEW_NAME [,CODESET] )>
@@ -198,7 +198,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2014 Sullivan Beck
+ 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.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Currency.pm b/Master/tlpkg/tlperl/lib/Locale/Currency.pm
index 0d7814c13ac..26535d199cb 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Currency.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Currency.pm
@@ -1,7 +1,7 @@
package Locale::Currency;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -10,7 +10,7 @@ use warnings;
use Exporter;
our $VERSION;
-$VERSION='3.30';
+$VERSION='3.34';
our (@ISA,@EXPORT);
diff --git a/Master/tlpkg/tlperl/lib/Locale/Currency.pod b/Master/tlpkg/tlperl/lib/Locale/Currency.pod
index 16383904fa7..6b52d7fa535 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Currency.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Currency.pod
@@ -60,15 +60,15 @@ This is the set of three-digit numeric codes from ISO 4217.
=over 4
-=item B<code2currency ( CODE [,CODESET] )>
+=item B<code2currency ( CODE [,CODESET] [,'retired'])>
-=item B<currency2code ( NAME [,CODESET] )>
+=item B<currency2code ( NAME [,CODESET] [,'retired'])>
=item B<currency_code2code ( CODE ,CODESET ,CODESET2 )>
-=item B<all_currency_codes ( [CODESET] )>
+=item B<all_currency_codes ( [CODESET] [,'retired'])>
-=item B<all_currency_names ( [CODESET] )>
+=item B<all_currency_names ( [CODESET] [,'retired'])>
=item B<Locale::Currency::rename_currency ( CODE ,NEW_NAME [,CODESET] )>
@@ -119,7 +119,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001 Michael Hennecke
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2014 Sullivan Beck
+ 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.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Language.pm b/Master/tlpkg/tlperl/lib/Locale/Language.pm
index ef0fe92978f..bf3afa489f0 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Language.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Language.pm
@@ -1,7 +1,7 @@
package Locale::Language;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -10,7 +10,7 @@ use warnings;
use Exporter;
our $VERSION;
-$VERSION='3.30';
+$VERSION='3.34';
our (@ISA,@EXPORT);
diff --git a/Master/tlpkg/tlperl/lib/Locale/Language.pod b/Master/tlpkg/tlperl/lib/Locale/Language.pod
index 9504853b0b0..771aa8a8d91 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Language.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Language.pod
@@ -63,15 +63,15 @@ ISO 639.
=over 4
-=item B<code2language ( CODE [,CODESET] )>
+=item B<code2language ( CODE [,CODESET] [,'retired'])>
-=item B<language2code ( NAME [,CODESET] )>
+=item B<language2code ( NAME [,CODESET] [,'retired'])>
=item B<language_code2code ( CODE ,CODESET ,CODESET2 )>
-=item B<all_language_codes ( [CODESET] )>
+=item B<all_language_codes ( [CODESET] [,'retired'])>
-=item B<all_language_names ( [CODESET] )>
+=item B<all_language_names ( [CODESET] [,'retired'])>
=item B<Locale::Language::rename_language ( CODE ,NEW_NAME [,CODESET] )>
@@ -129,7 +129,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2014 Sullivan Beck
+ 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.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Maketext.pm b/Master/tlpkg/tlperl/lib/Locale/Maketext.pm
index c2bd723e91b..24c31ea9d6f 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Maketext.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Maketext.pm
@@ -27,7 +27,7 @@ BEGIN {
}
-$VERSION = '1.25';
+$VERSION = '1.26';
@ISA = ();
$MATCH_SUPERS = 1;
diff --git a/Master/tlpkg/tlperl/lib/Locale/Script.pm b/Master/tlpkg/tlperl/lib/Locale/Script.pm
index 99b35c9dbe6..185935d0e8c 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Script.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Script.pm
@@ -1,7 +1,7 @@
package Locale::Script;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -10,7 +10,7 @@ use warnings;
use Exporter;
our $VERSION;
-$VERSION='3.30';
+$VERSION='3.34';
our (@ISA,@EXPORT);
diff --git a/Master/tlpkg/tlperl/lib/Locale/Script.pod b/Master/tlpkg/tlperl/lib/Locale/Script.pod
index f466c30bd5a..a1c2c81d49f 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Script.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Script.pod
@@ -61,15 +61,15 @@ for Phoenician.
=over 4
-=item B<code2script ( CODE [,CODESET] )>
+=item B<code2script ( CODE [,CODESET] [,'retired'])>
-=item B<script2code ( NAME [,CODESET] )>
+=item B<script2code ( NAME [,CODESET] [,'retired'])>
=item B<script_code2code ( CODE ,CODESET ,CODESET2 )>
-=item B<all_script_codes ( [CODESET] )>
+=item B<all_script_codes ( [CODESET] [,'retired'])>
-=item B<all_script_names ( [CODESET] )>
+=item B<all_script_names ( [CODESET] [,'retired'])>
=item B<Locale::Script::rename_script ( CODE ,NEW_NAME [,CODESET] )>
@@ -123,7 +123,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2014 Sullivan Beck
+ 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.
diff --git a/Master/tlpkg/tlperl/lib/MIME/Base64.pm b/Master/tlpkg/tlperl/lib/MIME/Base64.pm
index 4e59b6290d7..120cd728016 100644
--- a/Master/tlpkg/tlperl/lib/MIME/Base64.pm
+++ b/Master/tlpkg/tlperl/lib/MIME/Base64.pm
@@ -8,7 +8,7 @@ require Exporter;
@EXPORT = qw(encode_base64 decode_base64);
@EXPORT_OK = qw(encode_base64url decode_base64url encoded_base64_length decoded_base64_length);
-$VERSION = '3.14';
+$VERSION = '3.15';
require XSLoader;
XSLoader::load('MIME::Base64', $VERSION);
diff --git a/Master/tlpkg/tlperl/lib/Math/BigFloat.pm b/Master/tlpkg/tlperl/lib/Math/BigFloat.pm
index fb1d20690bc..1c31496a764 100644
--- a/Master/tlpkg/tlperl/lib/Math/BigFloat.pm
+++ b/Master/tlpkg/tlperl/lib/Math/BigFloat.pm
@@ -12,7 +12,7 @@ package Math::BigFloat;
# _a : accuracy
# _p : precision
-$VERSION = '1.9991';
+$VERSION = '1.9997';
require 5.006002;
require Exporter;
@@ -1498,6 +1498,10 @@ sub _log_10
}
$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)
@@ -1895,6 +1899,7 @@ sub bdiv
{
if ($y_not_one)
{
+ $x -> bint();
$rem->bmod($y,@params); # copy already done
}
if ($fallback)
@@ -3829,6 +3834,8 @@ sub length
__END__
+=pod
+
=head1 NAME
Math::BigFloat - Arbitrary size floating point math package
@@ -4368,10 +4375,6 @@ C<Math::BigFloat> exports nothing by default, but can export the C<bpi()> method
print bpi(10), "\n";
-=head1 BUGS
-
-Please see the file BUGS in the CPAN distribution Math::BigInt for known bugs.
-
=head1 CAVEATS
Do not try to be clever to insert some operations in between switching
@@ -4496,23 +4499,78 @@ influence any further operation.
=back
-=head1 SEE ALSO
+=head1 BUGS
-L<Math::BigInt>, L<Math::BigRat> and L<Math::Big> as well as
-L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
+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.
-The pragmas L<bignum>, L<bigint> and L<bigrat> might also be of interest
-because they solve the autoupgrading/downgrading issue, at least partly.
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc Math::BigFloat
+
+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=Math-BigInt>
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/Math-BigInt>
+
+=item * CPAN Ratings
+
+L<http://cpanratings.perl.org/dist/Math-BigInt>
-The package at L<http://search.cpan.org/~tels/Math-BigInt> contains
-more documentation including a full version history, testcases, empty
-subclass files and benchmarks.
+=item * Search CPAN
+
+L<http://search.cpan.org/dist/Math-BigInt/>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=Math-BigInt>
+
+=item * The Bignum mailing list
+
+=over 4
+
+=item * Post to mailing list
+
+C<bignum at lists.scsys.co.uk>
+
+=item * View mailing list
+
+L<http://lists.scsys.co.uk/pipermail/bignum/>
+
+=item * Subscribe/Unsubscribe
+
+L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
+
+=back
+
+=back
=head1 LICENSE
This program is free software; you may redistribute it and/or modify it under
the same terms as Perl itself.
+=head1 SEE ALSO
+
+L<Math::BigFloat> and L<Math::BigInt> as well as the backends
+L<Math::BigInt::FastCalc>, L<Math::BigInt::GMP>, and L<Math::BigInt::Pari>.
+
+The pragmas L<bignum>, L<bigint> and L<bigrat> also might be of interest
+because they solve the autoupgrading/downgrading issue, at least partly.
+
=head1 AUTHORS
Mark Biggar, overloaded interface by Ilya Zakharevich.
diff --git a/Master/tlpkg/tlperl/lib/Math/BigInt.pm b/Master/tlpkg/tlperl/lib/Math/BigInt.pm
index eff27b95a97..62f1be9cb06 100644
--- a/Master/tlpkg/tlperl/lib/Math/BigInt.pm
+++ b/Master/tlpkg/tlperl/lib/Math/BigInt.pm
@@ -18,7 +18,7 @@ package Math::BigInt;
my $class = "Math::BigInt";
use 5.006002;
-$VERSION = '1.9993';
+$VERSION = '1.9997';
@ISA = qw(Exporter);
@EXPORT_OK = qw(objectify bgcd blcm);
@@ -455,7 +455,8 @@ sub _scale_a
if (defined $scale)
{
- $scale = $scale->can('numify') ? $scale->numify() : "$scale" if ref($scale);
+ $scale = $scale->can('numify') ? $scale->numify()
+ : "$scale" if ref($scale);
$scale = int($scale);
}
@@ -467,7 +468,7 @@ 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) = @_;
-
+
$scale = $x->{_p} unless defined $scale;
no strict 'refs';
@@ -478,7 +479,8 @@ sub _scale_p
if (defined $scale)
{
- $scale = $scale->can('numify') ? $scale->numify() : "$scale" if ref($scale);
+ $scale = $scale->can('numify') ? $scale->numify()
+ : "$scale" if ref($scale);
$scale = int($scale);
}
@@ -523,14 +525,14 @@ sub new
# ref() and defined.
my ($class,$wanted,$a,$p,$r) = @_;
-
+
# avoid numify-calls by not using || on $wanted!
return $class->bzero($a,$p) if !defined $wanted; # default to 0
return $class->copy($wanted,$a,$p,$r)
if ref($wanted) && $wanted->isa($class); # MBI or subclass
$class->import() if $IMPORT == 0; # make require work
-
+
my $self = bless {}, $class;
# shortcut for "normal" numbers
@@ -719,14 +721,14 @@ sub bzero
# create a bigint '+0', if given a BigInt, set it to 0
my $self = shift;
$self = __PACKAGE__ 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('bzero');
-
+
if ($self->can('_bzero'))
{
# use subclass to initialize
@@ -854,7 +856,7 @@ sub sign
{
# return the sign of the number: +/-/-inf/+inf/NaN
my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
+
$x->{sign};
}
@@ -868,10 +870,10 @@ sub _find_round_parameters
# 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 fdiv().
-
+
# returns ($self) or ($self,$a,$p,$r) - sets $self to NaN of both A and P
# were requested/defined (locally or globally or both)
-
+
my ($self,$a,$p,$r,@args) = @_;
# $a accuracy, if given by caller
# $p precision, if given by caller
@@ -910,7 +912,7 @@ sub _find_round_parameters
# A == 0 is useless, so undef it to signal no rounding
$a = undef if defined $a && $a == 0;
-
+
# no rounding today?
return ($self) unless defined $a || defined $p; # early out
@@ -967,10 +969,10 @@ sub round
# if still none defined, use globals (#2)
$a = ${"$c\::accuracy"} unless defined $a;
$p = ${"$c\::precision"} unless defined $p;
-
+
# A == 0 is useless, so undef it to signal no rounding
$a = undef if defined $a && $a == 0;
-
+
# no rounding today?
return $self unless defined $a || defined $p; # early out
@@ -1033,7 +1035,7 @@ 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'
@@ -1045,7 +1047,7 @@ 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
-
+
# set up parameters
my ($self,$x,$y) = (ref($_[0]),@_);
@@ -1072,8 +1074,9 @@ sub bcmp
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)
+ # 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 '+')
@@ -1091,7 +1094,7 @@ sub bacmp
# Compares 2 values, ignoring their signs.
# Returns one of undef, <0, =0, >0. (suitable for sort)
# (BINT, BINT) return cond_code
-
+
# set up parameters
my ($self,$x,$y) = (ref($_[0]),@_);
# objectify is costly, so avoid it
@@ -1149,7 +1152,7 @@ sub badd
$x->{sign} = $y->{sign}, return $x if $y->{sign} =~ /^[+-]inf$/;
return $x;
}
-
+
my ($sx, $sy) = ( $x->{sign}, $y->{sign} ); # get signs
if ($sx eq $sy)
@@ -1182,7 +1185,7 @@ 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]),@_);
@@ -1241,7 +1244,7 @@ sub bdec
# decrement arg by one
my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
return $x if $x->modify('bdec');
-
+
if ($x->{sign} eq '-')
{
# x already < 0
@@ -1249,7 +1252,8 @@ sub bdec
}
else
{
- return $x->badd($self->bone('-'),@r) unless $x->{sign} eq '+'; # inf or NaN
+ return $x->badd($self->bone('-'),@r)
+ unless $x->{sign} eq '+'; # inf or NaN
# >= 0
if ($CALC->_is_zero($x->{value}))
{
@@ -1300,7 +1304,7 @@ sub blog
$x->{sign} = $u->{sign};
return $x;
}
-
+
my ($rc,$exact) = $CALC->_log_int($x->{value},$base->{value});
return $x->bnan() unless defined $rc; # not possible to take log?
$x->{value} = $rc;
@@ -1441,7 +1445,7 @@ sub bnot
# 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,@_);
-
+
return $x if $x->modify('bnot');
$x->binc()->bneg(); # binc already does round
}
@@ -1454,7 +1458,7 @@ 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 0 if $x->{sign} !~ /^\+$/; # -, NaN & +-inf aren't
$CALC->_is_zero($x->{value});
}
@@ -1485,9 +1489,9 @@ 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,@_);
-
+
$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});
}
@@ -1525,7 +1529,7 @@ sub is_negative
{
# return true when arg (BINT or num_str) is negative (< 0)
my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
+
$x->{sign} =~ /^-/ ? 1 : 0; # -inf is negative, but NaN is not
}
@@ -1534,7 +1538,7 @@ 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,@_);
-
+
$x->{sign} =~ /^[+-]$/ ? 1 : 0; # inf/-inf/NaN aren't
}
@@ -1571,7 +1575,7 @@ sub bmul
return $upgrade->bmul($x,$upgrade->new($y),@r)
if defined $upgrade && !$y->isa($self);
-
+
$r[3] = $y; # no push here
$x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
@@ -1616,7 +1620,7 @@ sub bmuladd
return $upgrade->bmuladd($x,$upgrade->new($y),$upgrade->new($z),@r)
if defined $upgrade && (!$y->isa($self) || !$z->isa($self) || !$x->isa($self));
-
+
# TODO: what if $y and $z have A or P set?
$r[3] = $z; # no push here
@@ -1662,7 +1666,7 @@ sub _div_inf
return wantarray ? ($x->bnan(),$self->bnan()) : $x->bnan()
if (($x->is_nan() || $y->is_nan()) ||
($x->is_zero() && $y->is_zero()));
-
+
# +-inf / +-inf == NaN, remainder also NaN
if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/))
{
@@ -1674,7 +1678,7 @@ sub _div_inf
my $t = $x->copy(); # bzero clobbers up $x
return wantarray ? ($x->bzero(),$t) : $x->bzero()
}
-
+
# 5 / 0 => +inf, -6 / 0 => -inf
# +inf / 0 = inf, inf, and -inf / 0 => -inf, -inf
# exception: -8 / 0 has remainder -8, not 8
@@ -1690,7 +1694,7 @@ sub _div_inf
($x->binf($x->{sign}),$t) : $x->binf($x->{sign})
}
}
-
+
# last case: +-inf / ordinary number
my $sign = '+inf';
$sign = '-inf' if substr($x->{sign},0,1) ne $y->{sign};
@@ -1702,7 +1706,7 @@ sub bdiv
{
# (dividend: BINT or num_str, divisor: BINT or num_str) return
# (BINT,BINT) (quo,rem) or BINT (only rem)
-
+
# set up parameters
my ($self,$x,$y,@r) = (ref($_[0]),@_);
# objectify is costly, so avoid it
@@ -1718,7 +1722,7 @@ sub bdiv
return $upgrade->bdiv($upgrade->new($x),$upgrade->new($y),@r)
if defined $upgrade;
-
+
$r[3] = $y; # no push!
# calc new sign and in case $y == +/- 1, return $x
@@ -1759,7 +1763,7 @@ sub bmod
{
# modulus (or remainder)
# (BINT or num_str, BINT or num_str) return BINT
-
+
# set up parameters
my ($self,$x,$y,@r) = (ref($_[0]),@_);
# objectify is costly, so avoid it
@@ -1975,7 +1979,7 @@ sub bfac
$x->{value} = $CALC->_fac($x->{value});
$x->round(@r);
}
-
+
sub bpow
{
# (BINT or num_str, BINT or num_str) return BINT
@@ -2021,7 +2025,7 @@ sub bpow
# 1 ** +inf => 1
return $x if $x->is_one();
-
+
# 0 ** inf => 0
return $x if $x->is_zero() && $y->{sign} =~ /^[+]/;
@@ -2070,7 +2074,7 @@ 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
@@ -2093,7 +2097,7 @@ sub brsft
{
# (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
@@ -2154,7 +2158,7 @@ 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
@@ -2162,7 +2166,7 @@ sub band
{
($self,$x,$y,@r) = objectify(2,@_);
}
-
+
return $x if $x->modify('band');
$r[3] = $y; # no push!
@@ -2171,19 +2175,19 @@ sub band
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);
}
-
+
if ($CAN{signed_and})
{
$x->{value} = $CALC->_signed_and($x->{value},$y->{value},$sx,$sy);
return $x->round(@r);
}
-
+
require $EMU_LIB;
__emu_band($self,$x,$y,$sx,$sy,@r);
}
@@ -2192,7 +2196,7 @@ sub bior
{
#(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
@@ -2210,7 +2214,7 @@ sub bior
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)
{
@@ -2233,7 +2237,7 @@ sub bxor
{
#(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
@@ -2246,7 +2250,7 @@ sub 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;
@@ -2256,7 +2260,7 @@ sub bxor
$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})
{
@@ -2315,7 +2319,7 @@ sub bsqrt
sub broot
{
# calculate $y'th root of $x
-
+
# set up parameters
my ($self,$x,$y,@r) = (ref($_[0]),@_);
@@ -2346,7 +2350,7 @@ 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,@_);
-
+
if ($x->{sign} !~ /^[+-]$/)
{
my $s = $x->{sign}; $s =~ s/^[+-]//; # NaN, -inf,+inf => NaN or inf
@@ -2383,7 +2387,7 @@ sub parts
($x->mantissa(),$x->exponent());
}
-
+
##############################################################################
# rounding functions
@@ -2409,7 +2413,7 @@ 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;
@@ -2437,7 +2441,7 @@ sub bround
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
@@ -2458,7 +2462,7 @@ sub bround
$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;
@@ -2671,28 +2675,22 @@ sub objectify {
for my $i (1 .. $count) {
my $ref = ref $a[$i];
- # If it is an object of the right class, all is fine.
-
- if ($ref eq $a[0]) {
- next;
- }
-
- # Don't do anything with undefs.
+ # Perl scalars are fed to the appropriate constructor.
- unless (defined($a[$i])) {
+ unless ($ref) {
+ $a[$i] = $a[0] -> new($a[$i]);
next;
}
- # Perl scalars are fed to the appropriate constructor.
+ # If it is an object of the right class, all is fine.
- unless ($ref) {
- $a[$i] = $a[0] -> new($a[$i]);
+ if ($ref -> isa($a[0])) {
next;
}
# Upgrading is OK, so skip further tests if the argument is upgraded.
- if (defined $up && $ref eq $up) {
+ if (defined $up && $ref -> isa($up)) {
next;
}
@@ -2783,7 +2781,7 @@ sub import
if (@a > 0)
{
require Exporter;
-
+
$self->SUPER::import(@a); # need it for subclasses
$self->export_to_level(1,$self,@a); # need it for MBF
}
@@ -2857,7 +2855,8 @@ sub import
if ($warn_or_die > 0 && ref($l))
{
require Carp;
- my $msg = "Math::BigInt: couldn't load specified math lib(s), fallback to $lib";
+ 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;
}
@@ -2880,11 +2879,13 @@ sub import
require Carp;
if ($warn_or_die == 2)
{
- Carp::croak ("Couldn't load specified math lib(s) and fallback disallowed");
+ 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");
+ Carp::croak(
+ "Couldn't load any math lib(s), not even fallback to Calc.pm");
}
}
@@ -3049,7 +3050,8 @@ sub from_bin {
sub _split
{
# input: num_str; output: undef for invalid or
- # (\$mantissa_sign,\$mantissa_value,\$mantissa_fraction,\$exp_sign,\$exp_value)
+ # (\$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.
@@ -3119,7 +3121,7 @@ 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';
@@ -3193,7 +3195,7 @@ sub bsin
sub batan2
{
# calculate arcus tangens of ($y/$x)
-
+
# set up parameters
my ($self,$y,$x,@r) = (ref($_[0]),@_);
# objectify is costly, so avoid it
@@ -3251,7 +3253,9 @@ sub batan2
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();
+ my $r = Math::BigFloat->new($y)
+ ->batan2(Math::BigFloat->new($x),@r)
+ ->as_int();
$x->{value} = $r->{value};
$x->{sign} = $r->{sign};
@@ -4789,13 +4793,13 @@ change.
Examples for rounding:
use Math::BigFloat;
- use Test;
+ use Test::More;
$x = Math::BigFloat->new(123.4567);
$y = Math::BigFloat->new(123.456789);
Math::BigFloat->accuracy(4); # no more A than 4
- ok ($x->copy()->fround(),123.4); # even rounding
+ is ($x->copy()->fround(),123.4); # even rounding
print $x->copy()->fround(),"\n"; # 123.4
Math::BigFloat->round_mode('odd'); # round to odd
print $x->copy()->fround(),"\n"; # 123.5
@@ -5026,8 +5030,8 @@ known to be troublesome:
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>,
-because its C<ok()> uses 'eq' internally.
+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:
@@ -5039,14 +5043,13 @@ C<cmp> work:
So, the following examples will now work all as expected:
- use Test;
- BEGIN { plan tests => 1 }
+ use Test::More tests => 1;
use Math::BigInt;
my $x = new Math::BigInt 3*3;
my $y = new Math::BigInt 3*3;
- ok ($x,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;
@@ -5063,15 +5066,14 @@ 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:
- use Test;
- BEGIN { plan tests => 3 }
+ use Test::More tests => 3;
use Math::BigInt;
$x = Math::BigInt->new('1e56'); $y = 1e56;
- ok ($x,$y); # will fail
- ok ($x->bsstr(),$y); # okay
+ is ($x,$y); # will fail
+ is ($x->bsstr(),$y); # okay
$y = Math::BigInt->new($y);
- ok ($x,$y); # okay
+ 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
@@ -5344,6 +5346,65 @@ 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).
+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 Math::BigInt
+
+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=Math-BigInt>
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/Math-BigInt>
+
+=item * CPAN Ratings
+
+L<http://cpanratings.perl.org/dist/Math-BigInt>
+
+=item * Search CPAN
+
+L<http://search.cpan.org/dist/Math-BigInt/>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=Math-BigInt>
+
+=item * The Bignum mailing list
+
+=over 4
+
+=item * Post to mailing list
+
+C<bignum at lists.scsys.co.uk>
+
+=item * View mailing list
+
+L<http://lists.scsys.co.uk/pipermail/bignum/>
+
+=item * Subscribe/Unsubscribe
+
+L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
+
+=back
+
+=back
+
=head1 LICENSE
This program is free software; you may redistribute it and/or modify it under
@@ -5351,17 +5412,12 @@ the same terms as Perl itself.
=head1 SEE ALSO
-L<Math::BigFloat>, L<Math::BigRat> and L<Math::Big> as well as
-L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
+L<Math::BigFloat> and L<Math::BigRat> as well as the backends
+L<Math::BigInt::FastCalc>, L<Math::BigInt::GMP>, and L<Math::BigInt::Pari>.
The pragmas L<bignum>, L<bigint> and L<bigrat> also might be of interest
because they solve the autoupgrading/downgrading issue, at least partly.
-The package at
-L<http://search.cpan.org/search?mode=module&query=Math%3A%3ABigInt> contains
-more documentation including a full version history, testcases, empty
-subclass files and benchmarks.
-
=head1 AUTHORS
Original code by Mark Biggar, overloaded interface by Ilya Zakharevich.
diff --git a/Master/tlpkg/tlperl/lib/Math/BigInt/Calc.pm b/Master/tlpkg/tlperl/lib/Math/BigInt/Calc.pm
index 3d886910005..d511bab3310 100644
--- a/Master/tlpkg/tlperl/lib/Math/BigInt/Calc.pm
+++ b/Master/tlpkg/tlperl/lib/Math/BigInt/Calc.pm
@@ -4,7 +4,7 @@ use 5.006002;
use strict;
# use warnings; # do not use warnings for older Perls
-our $VERSION = '1.998';
+our $VERSION = '1.9997';
# Package to store unsigned big integers in decimal and do math with them
@@ -2933,6 +2933,65 @@ by this:
This way you ensure that your library really works 100% within Math::BigInt.
+=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).
+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 Math::BigInt::Calc
+
+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=Math-BigInt>
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/Math-BigInt>
+
+=item * CPAN Ratings
+
+L<http://cpanratings.perl.org/dist/Math-BigInt>
+
+=item * Search CPAN
+
+L<http://search.cpan.org/dist/Math-BigInt/>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=Math-BigInt>
+
+=item * The Bignum mailing list
+
+=over 4
+
+=item * Post to mailing list
+
+C<bignum at lists.scsys.co.uk>
+
+=item * View mailing list
+
+L<http://lists.scsys.co.uk/pipermail/bignum/>
+
+=item * Subscribe/Unsubscribe
+
+L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
+
+=back
+
+=back
+
=head1 LICENSE
This program is free software; you may redistribute it and/or modify it under
diff --git a/Master/tlpkg/tlperl/lib/Math/BigInt/CalcEmu.pm b/Master/tlpkg/tlperl/lib/Math/BigInt/CalcEmu.pm
index bcf74a8ab8f..9bf3e07f8a5 100644
--- a/Master/tlpkg/tlperl/lib/Math/BigInt/CalcEmu.pm
+++ b/Master/tlpkg/tlperl/lib/Math/BigInt/CalcEmu.pm
@@ -5,7 +5,7 @@ use strict;
# use warnings; # do not use warnings for older Perls
use vars qw/$VERSION/;
-$VERSION = '1.9991';
+$VERSION = '1.9997';
package Math::BigInt;
@@ -282,8 +282,11 @@ sub __emu_bxor
##############################################################################
1;
+
__END__
+=pod
+
=head1 NAME
Math::BigInt::CalcEmu - Emulate low-level math with BigInt code
@@ -315,6 +318,65 @@ using a call to the native lib.
=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).
+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 Math::BigInt::CalcEmu
+
+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=Math-BigInt>
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/Math-BigInt>
+
+=item * CPAN Ratings
+
+L<http://cpanratings.perl.org/dist/Math-BigInt>
+
+=item * Search CPAN
+
+L<http://search.cpan.org/dist/Math-BigInt/>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=Math-BigInt>
+
+=item * The Bignum mailing list
+
+=over 4
+
+=item * Post to mailing list
+
+C<bignum at lists.scsys.co.uk>
+
+=item * View mailing list
+
+L<http://lists.scsys.co.uk/pipermail/bignum/>
+
+=item * Subscribe/Unsubscribe
+
+L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
+
+=back
+
+=back
+
=head1 LICENSE
This program is free software; you may redistribute it and/or modify it under
diff --git a/Master/tlpkg/tlperl/lib/Math/BigRat.pm b/Master/tlpkg/tlperl/lib/Math/BigRat.pm
index 15b2ed08fe8..7f5b8677b3e 100644
--- a/Master/tlpkg/tlperl/lib/Math/BigRat.pm
+++ b/Master/tlpkg/tlperl/lib/Math/BigRat.pm
@@ -24,7 +24,7 @@ use vars qw($VERSION @ISA $upgrade $downgrade
@ISA = qw(Math::BigFloat);
-$VERSION = '0.2606';
+$VERSION = '0.2608';
$VERSION = eval $VERSION;
# inherit overload from Math::BigFloat, but disable the bitwise ops that don't
@@ -403,11 +403,13 @@ sub bnorm
# Both parts must be objects of whatever we are using today.
if ( my $c = $MBI->_check($x->{_n}) )
{
- require Carp; Carp::croak ("n did not pass the self-check ($c) in bnorm()");
+ require Carp; Carp::croak(
+ "n did not pass the self-check ($c) in bnorm()");
}
if ( my $c = $MBI->_check($x->{_d}) )
{
- require Carp; Carp::croak ("d did not pass the self-check ($c) in bnorm()");
+ require Carp; Carp::croak(
+ "d did not pass the self-check ($c) in bnorm()");
}
# no normalize for NaN, inf etc.
@@ -447,7 +449,8 @@ sub 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->{sign} =~ tr/+-/-+/
+ unless ($x->{sign} eq '+' && $MBI->_is_zero($x->{_n}));
$x;
}
@@ -1079,8 +1082,10 @@ sub bexp
if ($scale <= 75)
{
# set $x directly from a cached string form
- $x->{_n} = $MBI->_new("90933395208605785401971970164779391644753259799242");
- $x->{_d} = $MBI->_new("33452526613163807108170062053440751665152000000000");
+ $x->{_n} =
+ $MBI->_new("90933395208605785401971970164779391644753259799242");
+ $x->{_d} =
+ $MBI->_new("33452526613163807108170062053440751665152000000000");
$x->{sign} = '+';
}
else
@@ -1592,6 +1597,8 @@ sub import
__END__
+=pod
+
=head1 NAME
Math::BigRat - Arbitrary big rational numbers
@@ -1989,19 +1996,60 @@ This is an internal routine that turns scalars into objects.
=head1 BUGS
-Some things are not yet implemented, or only implemented half-way:
+Please report any bugs or feature requests to
+C<bug-math-bigrat at rt.cpan.org>, or through the web interface at
+L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigRat>
+(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 Math::BigRat
+
+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=Math-BigRat>
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/Math-BigRat>
+
+=item * CPAN Ratings
-=over 2
+L<http://cpanratings.perl.org/dist/Math-BigRat>
-=item inf handling (partial)
+=item * Search CPAN
-=item NaN handling (partial)
+L<http://search.cpan.org/dist/Math-BigRat/>
-=item rounding (not implemented except for bceil/bfloor)
+=item * CPAN Testers Matrix
-=item $x ** $y where $y is not an integer
+L<http://matrix.cpantesters.org/?dist=Math-BigRat>
-=item bmod(), blog(), bmodinv() and bmodpow() (partial)
+=item * The Bignum mailing list
+
+=over 4
+
+=item * Post to mailing list
+
+C<bignum at lists.scsys.co.uk>
+
+=item * View mailing list
+
+L<http://lists.scsys.co.uk/pipermail/bignum/>
+
+=item * Subscribe/Unsubscribe
+
+L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
+
+=back
=back
@@ -2012,14 +2060,8 @@ the same terms as Perl itself.
=head1 SEE ALSO
-L<Math::BigFloat> and L<Math::Big> as well as
-L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
-
-See L<http://search.cpan.org/search?dist=bignum> for a way to use
-Math::BigRat.
-
-The package at L<http://search.cpan.org/search?dist=Math%3A%3ABigRat>
-may contain more documentation and examples as well as testcases.
+L<bigrat>, L<Math::BigFloat> and L<Math::BigInt> as well as the backends
+L<Math::BigInt::FastCalc>, L<Math::BigInt::GMP>, and L<Math::BigInt::Pari>.
=head1 AUTHORS
diff --git a/Master/tlpkg/tlperl/lib/Math/Int64.pm b/Master/tlpkg/tlperl/lib/Math/Int64.pm
deleted file mode 100755
index 0dad403e899..00000000000
--- a/Master/tlpkg/tlperl/lib/Math/Int64.pm
+++ /dev/null
@@ -1,578 +0,0 @@
-package Math::Int64;
-
-use strict;
-use warnings;
-
-BEGIN {
-our $VERSION = '0.52';
-require XSLoader;
-XSLoader::load('Math::Int64', $VERSION);
-}
-
-use constant MAX_INT64 => string_to_int64 ( '0x7fff_ffff_ffff_ffff');
-use constant MIN_INT64 => string_to_int64 ('-0x8000_0000_0000_0000');
-use constant MAX_UINT64 => string_to_uint64( '0xffff_ffff_ffff_ffff');
-
-require Exporter;
-our @ISA = qw(Exporter);
-our @EXPORT_OK = qw(int64
- int64_to_number
- net_to_int64 int64_to_net
- native_to_int64 int64_to_native
- string_to_int64 hex_to_int64
- BER_to_int64 int64_to_BER
- int64_to_string int64_to_hex
- int64_rand
- int64_srand
- uint64
- uint64_to_number
- net_to_uint64 uint64_to_net
- native_to_uint64 uint64_to_native
- string_to_uint64 hex_to_uint64
- BER_to_uint64 uint64_to_BER
- uint64_to_string uint64_to_hex
- uint64_rand
- BER_length
- MAX_INT64 MIN_INT64 MAX_UINT64
- );
-
-my %available_pragmas = map { $_ => 1 } qw(native_if_available
- die_on_overflow);
-
-sub import {
- my $pkg = shift;
- my (%pragmas, @subs, %native);
- for (@_) {
- if ($_ =~ /^:(.*)/ and $available_pragmas{$1}) {
- $pragmas{$1} = 1
- }
- else {
- push @subs, $_;
- }
- }
-
- if ($pragmas{die_on_overflow}) {
- require Math::Int64::die_on_overflow;
- Math::Int64::die_on_overflow->import;
- }
-
- if ($pragmas{native_if_available}) {
- require Math::Int64::native_if_available;
- Math::Int64::native_if_available->import;
- }
-
- Math::Int64->export_to_level(1, $pkg, @subs);
-}
-
-use overload ( '+' => \&_add,
- '+=' => \&_add,
- '-' => \&_sub,
- '-=' => \&_sub,
- '*' => \&_mul,
- '*=' => \&_mul,
- '**' => \&_pow,
- '**=' => \&_pow,
- '/' => \&_div,
- '/=' => \&_div,
- '%' => \&_rest,
- '%=' => \&_rest,
- 'neg' => \&_neg,
- '++' => \&_inc,
- '--' => \&_dec,
- '!' => \&_not,
- '~' => \&_bnot,
- '&' => \&_and,
- '|' => \&_or,
- '^' => \&_xor,
- '<<' => \&_left,
- '>>' => \&_right,
- '<=>' => \&_spaceship,
- '>' => \&_gtn,
- '<' => \&_ltn,
- '>=' => \&_gen,
- '<=' => \&_len,
- '==' => \&_eqn,
- '!=' => \&_nen,
- 'bool' => \&_bool,
- '0+' => \&_number,
- '""' => \&_string,
- '=' => \&_clone,
- fallback => 1 );
-
-package # hide from PAUSE since it also has its own .pm file
- Math::UInt64;
-use overload ( '+' => \&_add,
- '+=' => \&_add,
- '-' => \&_sub,
- '-=' => \&_sub,
- '*' => \&_mul,
- '*=' => \&_mul,
- '**' => \&_pow,
- '**=' => \&_pow,
- '/' => \&_div,
- '/=' => \&_div,
- '%' => \&_rest,
- '%=' => \&_rest,
- 'neg' => \&_neg,
- '++' => \&_inc,
- '--' => \&_dec,
- '!' => \&_not,
- '~' => \&_bnot,
- '&' => \&_and,
- '|' => \&_or,
- '^' => \&_xor,
- '<<' => \&_left,
- '>>' => \&_right,
- '<=>' => \&_spaceship,
- '>' => \&_gtn,
- '<' => \&_ltn,
- '>=' => \&_gen,
- '<=' => \&_len,
- '==' => \&_eqn,
- '!=' => \&_nen,
- 'bool' => \&_bool,
- '0+' => \&_number,
- '""' => \&_string,
- '=' => \&_clone,
- fallback => 1 );
-
-1;
-
-# ABSTRACT: Manipulate 64 bits integers in Perl
-
-__END__
-
-=encoding UTF-8
-
-=head1 NAME
-
-Math::Int64 - Manipulate 64 bits integers in Perl
-
-=head1 SYNOPSIS
-
- use Math::Int64 qw(int64 uint64);
-
- my $i = int64(1);
- my $j = $i << 40;
- print($i + $j * 1000000);
-
- my $k = uint64("12345678901234567890");
-
-=head1 DESCRIPTION
-
-This module adds support for 64 bit integers, signed and unsigned, to
-Perl.
-
-=head2 Exportable functions
-
-=over 4
-
-=item int64()
-
-=item int64($value)
-
-Creates a new int64 value and initializes it to C<$value>, where
-$value can be a Perl number or a string containing a number.
-
-For instance:
-
- $i = int64(34);
- $j = int64("-123454321234543212345");
-
- $k = int64(1234567698478483938988988); # wrong!!!
- # the unquoted number would
- # be converted first to a
- # real number causing it to
- # loose some precision.
-
-Once the int64 number is created it can be manipulated as any other
-Perl value supporting all the standard operations (addition, negation,
-multiplication, postincrement, etc.).
-
-
-=item net_to_int64($str)
-
-Converts an 8 bytes string containing an int64 in network order to the
-internal representation used by this module.
-
-=item int64_to_net($int64)
-
-Returns an 8 bytes string with the representation of the int64 value
-in network order.
-
-=item native_to_int64($str)
-
-=item int64_to_native($int64)
-
-similar to net_to_int64 and int64_to_net, but using the native CPU
-order.
-
-=item int64_to_number($int64)
-
-returns the optimum representation of the int64 value using Perl
-internal types (IV, UV or NV). Precision may be lost.
-
-For instance:
-
- for my $l (10, 20, 30, 40, 50, 60) {
- my $i = int64(1) << $l;
- my $n = int64_to_number($i);
- print "int64:$i => perl:$n\n";
- }
-
-=item string_to_int64($str, $base)
-
-Converts the string to a int64 value. The conversion is done according
-to the given base, which must be a number between 2 and 36 inclusive
-or the special value 0. C<$base> defaults to 0.
-
-The string may begin with an arbitrary amount of white space followed
-by a single optional C<+> or C<-> sign. If base is zero or 16, the
-string may then include a "0x" prefix, and the number will be read in
-base 16; otherwise, a zero base is taken as 10 (decimal) unless the
-next character is '0', in which case it is taken as 8 (octal).
-
-Underscore characters (C<_>) between the digits are ignored.
-
-No overflow checks are performed by this function unless the
-C<die_on_overflow> pragma is used (see L</Die on overflow> below).
-
-See also L<strtoll(3)>.
-
-=item hex_to_int64($i64)
-
-Shortcut for string_to_int64($str, 16)
-
-=item int64_to_string($i64, $base)
-
-Converts the int64 value to its string representation in the given
-base (defaults to 10).
-
-=item int64_to_hex($i64)
-
-Shortcut for C<int64_to_string($i64, 16)>.
-
-=item int64_to_BER($i64)
-
-Converts the int64 value to its BER representation (see
-L<perlfunc/pack> for a description of the BER format).
-
-In the case of signed numbers, they are transformed into unsigned
-numbers before encoding them in the BER format with the following
-rule:
-
- $neg = ($i64 < 0 ? 1 : 0);
- $u64 = (($neg ? ~$i64 : $i64) << 1) | $neg;
-
-That way, positive and negative integers are interleaved as 0, -1, 1,
-2, -2, .... The format is similar to that used by Google protocol
-buffers to encode signed variants but with the most significant groups
-first (protocol buffers uses the least significant groups first
-variant).
-
-If you don't want that preprocessing for signed numbers, just use the
-C<uint64_to_BER> function instead.
-
-=item BER_to_int64($str)
-
-Decodes the int64 number in BER format from the given string.
-
-There must not be any extra bytes on the string after the encoded number.
-
-=item BER_length($str)
-
-Given a string with a BER encoded number at the beginning, this
-function returns the number of bytes it uses.
-
-The right way to shift a BER encoded number from the beginning of some
-string is as follows:
-
- $i64 = BER_to_int64(substr($str, 0, BER_length($str), ''));
-
-=item int64_rand
-
-Generates a 64 bit random number using ISAAC-64 algorithm.
-
-=item int64_srand($seed)
-
-=item int64_srand()
-
-Sets the seed for the random number generator.
-
-C<$seed>, if given, should be a 2KB long string.
-
-=item uint64
-
-=item uint64_to_number
-
-=item net_to_uint64
-
-=item uint64_to_net
-
-=item native_to_uint64
-
-=item uint64_to_native
-
-=item string_to_uint64
-
-=item hex_to_uint64
-
-=item uint64_to_string
-
-=item uint64_to_hex
-
-These functions are similar to their int64 counterparts, but
-manipulate 64 bit unsigned integers.
-
-=item uint64_to_BER($u64)
-
-Encodes the given unsigned integer in BER format (see L<perlfunc/pack>).
-
-=item BER_to_uint64($str)
-
-Decodes from the given string an unsigned number in BER format.
-
-=item uint64_rand
-
-Generates a 64 bit random unsigned number using ISAAC-64 algorithm.
-
-=back
-
-=head2 Die on overflow
-
-The lexical pragma C<Math::Int64::die_on_overflow> configures the
-module to throw an error when some operation results in integer
-overflow.
-
-For instance:
-
- use Math::Int64 qw(uint64);
- use Math::Int64::die_on_overflow;
-
- my $zero = uint64(0);
- say ($zero - 1); # dies as -1 falls outside
- # the uint64_t range
-
- no Math::Int64::die_on_overflow; # deactivates lexical pragma
- say ($zero - 1); # no error is detected here!
-
-The pragma can also be activated as follows:
-
- use Math::Int64 ':die_on_overflow';
-
-Once this pragma is used, several Math::Int64 operations may become
-slower. Deactivating the pragma will not make them fast again.
-
-On Perl 5.8.x, as lexical pragmas support is not available, the pragma
-C<die_on_overflow> pragma is global and can not be deactivated.
-
-=head2 Fallback to native 64bit support if available
-
-If the lexical pragma C<Math::Int64::native_if_available> is used in
-your program and the version of perl in use has native support for
-64bit integers, the functions imported from the module that create
-64bit integers (i.e. C<uint64>, C<int64>, C<string_to_int64>,
-C<native_to_int64>, etc.) will return regular perl scalars.
-
-For instance:
-
- use Math::Int64 qw(int64);
-
- $a = int64(34); # always returns an object of the class Math::Int64
-
- use Math::Int64::native_if_available;
- $a = int64(34); # returns a regular scalar on perls compiled with
- # 64bit support
-
-This feature is not enabled by default because the semantics for perl
-scalars and for 64 bit integers as implemented in this module are not
-identical.
-
-Perl is prone to coerce integers into floats while this module keeps
-then always as 64bit integers. Specifically, the division operation
-and overflows are the most problematic cases. Also, when using native
-integers, the signed/unsigned division blurs.
-
-Besides that, in most situations it is safe to use the native fallback.
-
-As happens with the C<die_on_overflow> pragma, on Perl 5.8.x it is
-global.
-
-The pragma can also be activated as follows:
-
- use Math::Int64 ':native_if_available';
-
-=head2 Transparent conversion of objects to int64/uint64
-
-When in some operation involving int64/uint64 numbers, a blessed
-object is passed as an operand, the module would try to coerce the
-object into an int64/uint64 number calling the methods
-C<as_int64>/C<as_uint64> respectively.
-
-If the corresponding method is not implemented, the object will be
-stringified and then parsed as a base 10 number.
-
-=head2 Storable integration
-
-Objects of classes Math::Int64 and Math::UInt64 implement the
-STORABLE_freeze and STORABLE_thaw methods for a transparent
-integration with L<Storable>.
-
-=head2 C API
-
-This module provides a native C API that can be used to create and
-read Math::Int64 int64 and uint64 SVs from your own XS modules.
-
-In order to use it you need to follow these steps:
-
-=over 4
-
-=item *
-
-Import the files C<perl_math_int64.c>, C<perl_math_int64.h> and
-optionally C<typemaps> from Math::Int64 C<c_api_client> directory into
-your project directory.
-
-=item *
-
-Include the file C<perl_math_int64.h> in the C or XS source files
-where you want to convert 64bit integers to/from Perl SVs.
-
-Note that this header file requires the types int64_t and uint64_t to
-be defined beforehand.
-
-=item *
-
-Add the file C<perl_math_int64.c> to your compilation targets (see the
-sample Makefile.PL below).
-
-=item *
-
-Add a call to the macro C<PERL_MATH_INT64_LOAD_OR_CROAK> into the
-C<BOOT> section of your XS file.
-
-=back
-
-For instance:
-
- --- Foo64.xs ---------
-
- #include "EXTERN.h"
- #include "perl.h"
- #include "XSUB.h"
- #include "ppport.h"
-
- /* #define MATH_INT64_NATIVE_IF_AVAILABLE */
- #include "math_int64.h"
-
- MODULE = Foo64 PACKAGE = Foo64
- BOOT:
- PERL_MATH_INT64_LOAD_OR_CROAK;
-
- int64_t
- some_int64()
- CODE:
- RETVAL = -42;
- OUTPUT:
- RETVAL
-
-
- --- Makefile.PL -----
-
- use ExtUtils::MakeMaker;
- WriteMakefile( NAME => 'Foo64',
- VERSION_FROM => 'lib/Foo64.pm',
- OBJECT => '$(O_FILES)' );
-
-
-If the macro C<MATH_INT64_NATIVE_IF_AVAILABLE> is defined before
-including C<perl_math_int64.h> and the perl interpreter is compiled
-with native 64bit integer support, IVs will be used to represent 64bit
-integers instead of the object representation provided by Math::Int64.
-
-These are the C macros available from Math::Int64 C API:
-
-=over 4
-
-=item SV *newSVi64(int64_t i64)
-
-Returns an SV representing the given int64_t value.
-
-=item SV *newSVu64(uint64_t 64)
-
-Returns an SV representing the given uint64_t value.
-
-=item int64_t SvI64(SV *sv)
-
-Extracts the int64_t value from the given SV.
-
-=item uint64_t SvU64(SV *sv)
-
-Extracts the uint64_t value from the given SV.
-
-=item int SvI64OK(SV *sv)
-
-Returns true is the given SV contains a valid int64_t value.
-
-=item int SvU64OK(SV *sv)
-
-Returns true is the given SV contains a valid uint64_t value.
-
-=item uint64_t randU64(void)
-
-Returns a random 64 bits unsigned integer.
-
-=item SV sv_seti64(SV *sv, uint64_t i64)
-
-Sets the value of the perl scalar to the given int64_t value.
-
-=item SV sv_setu64(SV *sv, uint64_t i64)
-
-Sets the value of the perl scalar to the given uint64_t value.
-
-=back
-
-If you require any other function available through the C API don't
-hesitate to ask for it!
-
-=head1 BUGS AND SUPPORT
-
-The Storable integration feature is experimental.
-
-The C API feature is experimental.
-
-This module requires int64 support from the C compiler.
-
-In order to report bugs you can send me and email to the address that
-appears below or use the CPAN RT bug tracking system available at
-L<http://rt.cpan.org>.
-
-The source for the development version of the module is hosted at
-GitHub: L<https://github.com/salva/p5-Math-Int64>.
-
-=head2 My wishlist
-
-If you like this module and you're feeling generous, take a look at my
-Amazon Wish List: L<http://amzn.com/w/1WU1P6IR5QZ42>
-
-=head1 SEE ALSO
-
-The C API usage sample module L<Math::Int64::C_API::Sample>.
-
-Other modules providing support for larger integers or numbers are
-L<Math::BigInt>, L<Math::BigRat> and L<Math::Big>,
-L<Math::BigInt::BitVect>, L<Math::BigInt::Pari> and
-L<Math::BigInt::GMP>.
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright E<copy> 2007, 2009, 2011-2015 by Salvador Fandiño
-(sfandino@yahoo.com)
-
-Copyright E<copy> 2014-2015 by Dave Rolsky (autarch@urth.org)
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself, either Perl version 5.8.8 or,
-at your option, any later version of Perl 5 you may have available.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Math/Int64/die_on_overflow.pm b/Master/tlpkg/tlperl/lib/Math/Int64/die_on_overflow.pm
deleted file mode 100755
index ce2c8f732c9..00000000000
--- a/Master/tlpkg/tlperl/lib/Math/Int64/die_on_overflow.pm
+++ /dev/null
@@ -1,42 +0,0 @@
-package Math::Int64::die_on_overflow;
-
-use strict;
-use warnings;
-
-sub import {
- require Math::Int64;
- Math::Int64::_set_may_die_on_overflow(1);
- $^H{'Math::Int64::die_on_overflow'} = 1
-}
-
-
-sub unimport {
- undef $^H{'Math::Int64::die_on_overflow'}
-}
-
-1;
-
-# ABSTRACT: catch overflows when using Math::Int64
-
-__END__
-
-=encoding UTF-8
-
-=head1 NAME
-
-Math::Int64::die_on_overflow - catch overflows when using Math::Int64
-
-=head1 SYNOPSIS
-
- use Math::Int64 qw(uint64);
- use Math::Int64::die_on_overflow;
-
- my $number = uint64(2**32);
- say($number * $number); # overflow error!
-
-
-=head1 SEE ALSO
-
-L<Math::Int64>.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Math/Int64/native_if_available.pm b/Master/tlpkg/tlperl/lib/Math/Int64/native_if_available.pm
deleted file mode 100755
index b52466005d7..00000000000
--- a/Master/tlpkg/tlperl/lib/Math/Int64/native_if_available.pm
+++ /dev/null
@@ -1,40 +0,0 @@
-package Math::Int64::native_if_available;
-
-use strict;
-use warnings;
-
-sub import {
- if (Math::Int64::_backend() eq 'IV' and $] >= 5.008) {
- Math::Int64::_set_may_use_native(1);
- $^H{'Math::Int64::native_if_available'} = 1;
- }
-}
-
-sub unimport {
- undef $^H{'Math::Int64::native_if_available'};
-}
-
-1;
-
-# ABSTRACT: Use the native Perl 64-bit integer implementation when available
-
-__END__
-
-=encoding UTF-8
-
-=head1 NAME
-
-Math::Int64::native_if_available - Use the native Perl 64-bit integer implementation when available
-
-=head1 SYNOPSIS
-
- use Math::Int64 qw(uint64);
- use Math::Int64::native_if_available;
-
-=head1 SEE ALSO
-
-L<Math::Int64>.
-
-=cut
-
-
diff --git a/Master/tlpkg/tlperl/lib/Math/UInt64.pm b/Master/tlpkg/tlperl/lib/Math/UInt64.pm
deleted file mode 100755
index 6fc6d03ef25..00000000000
--- a/Master/tlpkg/tlperl/lib/Math/UInt64.pm
+++ /dev/null
@@ -1,32 +0,0 @@
-package Math::UInt64;
-
-use strict;
-use warnings;
-
-use Math::Int64;
-
-sub import { goto &Math::Int64::import }
-
-1;
-
-# ABSTRACT: Manipulate 64 bit unsigned integers from Perl
-
-__END__
-
-=encoding UTF-8
-
-=head1 NAME
-
-Math::UInt64 - Manipulate 64 bit unsigned integers from Perl
-
-=head1 DESCRIPTION
-
-Math::UInt64 is just an alias for Math::Int64, the only reason it
-exists as an independent package is to allow L<Storable> to load it on
-demand.
-
-=head1 SEE ALSO
-
-L<Math::Int64>.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build.pm b/Master/tlpkg/tlperl/lib/Module/Build.pm
deleted file mode 100644
index aee7b44c1f5..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build.pm
+++ /dev/null
@@ -1,1117 +0,0 @@
-package Module::Build;
-
-use if $] >= 5.019, 'deprecate';
-
-# This module doesn't do much of anything itself, it inherits from the
-# modules that do the real work. The only real thing it has to do is
-# figure out which OS-specific module to pull in. Many of the
-# OS-specific modules don't do anything either - most of the work is
-# done in Module::Build::Base.
-
-use strict;
-use File::Spec ();
-use File::Path ();
-use File::Basename ();
-use Perl::OSType ();
-
-use Module::Build::Base;
-
-use vars qw($VERSION @ISA);
-@ISA = qw(Module::Build::Base);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-
-# Inserts the given module into the @ISA hierarchy between
-# Module::Build and its immediate parent
-sub _interpose_module {
- my ($self, $mod) = @_;
- eval "use $mod";
- die $@ if $@;
-
- no strict 'refs';
- my $top_class = $mod;
- while (@{"${top_class}::ISA"}) {
- last if ${"${top_class}::ISA"}[0] eq $ISA[0];
- $top_class = ${"${top_class}::ISA"}[0];
- }
-
- @{"${top_class}::ISA"} = @ISA;
- @ISA = ($mod);
-}
-
-if (grep {-e File::Spec->catfile($_, qw(Module Build Platform), $^O) . '.pm'} @INC) {
- __PACKAGE__->_interpose_module("Module::Build::Platform::$^O");
-
-} elsif ( my $ostype = os_type() ) {
- __PACKAGE__->_interpose_module("Module::Build::Platform::$ostype");
-
-} else {
- warn "Unknown OS type '$^O' - using default settings\n";
-}
-
-sub os_type { return Perl::OSType::os_type() }
-
-sub is_vmsish { return Perl::OSType::is_os_type('VMS') }
-sub is_windowsish { return Perl::OSType::is_os_type('Windows') }
-sub is_unixish { return Perl::OSType::is_os_type('Unix') }
-
-1;
-
-__END__
-
-=for :stopwords
-bindoc binhtml destdir distcheck distclean distdir distmeta distsign disttest
-fakeinstall html installdirs installsitebin installsitescript installvendorbin
-installvendorscript libdoc libhtml pardist ppd ppmdist realclean skipcheck
-testall testcover testdb testpod testpodcoverage versioninstall
-
-=head1 NAME
-
-Module::Build - Build and install Perl modules
-
-=head1 SYNOPSIS
-
-Standard process for building & installing modules:
-
- perl Build.PL
- ./Build
- ./Build test
- ./Build install
-
-Or, if you're on a platform (like DOS or Windows) that doesn't require
-the "./" notation, you can do this:
-
- perl Build.PL
- Build
- Build test
- Build install
-
-
-=head1 DESCRIPTION
-
-C<Module::Build> is a system for building, testing, and installing
-Perl modules. It is meant to be an alternative to
-C<ExtUtils::MakeMaker>. Developers may alter the behavior of the
-module through subclassing in a much more straightforward way than
-with C<MakeMaker>. It also does not require a C<make> on your system
-- most of the C<Module::Build> code is pure-perl and written in a very
-cross-platform way.
-
-See L<"MOTIVATIONS"> for more comparisons between C<ExtUtils::MakeMaker>
-and C<Module::Build>.
-
-To install C<Module::Build>, and any other module that uses
-C<Module::Build> for its installation process, do the following:
-
- perl Build.PL # 'Build.PL' script creates the 'Build' script
- ./Build # Need ./ to ensure we're using this "Build" script
- ./Build test # and not another one that happens to be in the PATH
- ./Build install
-
-This illustrates initial configuration and the running of three
-'actions'. In this case the actions run are 'build' (the default
-action), 'test', and 'install'. Other actions defined so far include:
-
- build manifest
- clean manifest_skip
- code manpages
- config_data pardist
- diff ppd
- dist ppmdist
- distcheck prereq_data
- distclean prereq_report
- distdir pure_install
- distinstall realclean
- distmeta retest
- distsign skipcheck
- disttest test
- docs testall
- fakeinstall testcover
- help testdb
- html testpod
- install testpodcoverage
- installdeps versioninstall
-
-You can run the 'help' action for a complete list of actions.
-
-
-=head1 GUIDE TO DOCUMENTATION
-
-The documentation for C<Module::Build> is broken up into sections:
-
-=over
-
-=item General Usage (L<Module::Build>)
-
-This is the document you are currently reading. It describes basic
-usage and background information. Its main purpose is to assist the
-user who wants to learn how to invoke and control C<Module::Build>
-scripts at the command line.
-
-=item Authoring Reference (L<Module::Build::Authoring>)
-
-This document describes the structure and organization of
-C<Module::Build>, and the relevant concepts needed by authors who are
-writing F<Build.PL> scripts for a distribution or controlling
-C<Module::Build> processes programmatically.
-
-=item API Reference (L<Module::Build::API>)
-
-This is a reference to the C<Module::Build> API.
-
-=item Cookbook (L<Module::Build::Cookbook>)
-
-This document demonstrates how to accomplish many common tasks. It
-covers general command line usage and authoring of F<Build.PL>
-scripts. Includes working examples.
-
-=back
-
-
-=head1 ACTIONS
-
-There are some general principles at work here. First, each task when
-building a module is called an "action". These actions are listed
-above; they correspond to the building, testing, installing,
-packaging, etc., tasks.
-
-Second, arguments are processed in a very systematic way. Arguments
-are always key=value pairs. They may be specified at C<perl Build.PL>
-time (i.e. C<perl Build.PL destdir=/my/secret/place>), in which case
-their values last for the lifetime of the C<Build> script. They may
-also be specified when executing a particular action (i.e.
-C<Build test verbose=1>), in which case their values last only for the
-lifetime of that command. Per-action command line parameters take
-precedence over parameters specified at C<perl Build.PL> time.
-
-The build process also relies heavily on the C<Config.pm> module.
-If the user wishes to override any of the
-values in C<Config.pm>, she may specify them like so:
-
- perl Build.PL --config cc=gcc --config ld=gcc
-
-The following build actions are provided by default.
-
-=over 4
-
-=item build
-
-[version 0.01]
-
-If you run the C<Build> script without any arguments, it runs the
-C<build> action, which in turn runs the C<code> and C<docs> actions.
-
-This is analogous to the C<MakeMaker> I<make all> target.
-
-=item clean
-
-[version 0.01]
-
-This action will clean up any files that the build process may have
-created, including the C<blib/> directory (but not including the
-C<_build/> directory and the C<Build> script itself).
-
-=item code
-
-[version 0.20]
-
-This action builds your code base.
-
-By default it just creates a C<blib/> directory and copies any C<.pm>
-and C<.pod> files from your C<lib/> directory into the C<blib/>
-directory. It also compiles any C<.xs> files from C<lib/> and places
-them in C<blib/>. Of course, you need a working C compiler (probably
-the same one that built perl itself) for the compilation to work
-properly.
-
-The C<code> action also runs any C<.PL> files in your F<lib/>
-directory. Typically these create other files, named the same but
-without the C<.PL> ending. For example, a file F<lib/Foo/Bar.pm.PL>
-could create the file F<lib/Foo/Bar.pm>. The C<.PL> files are
-processed first, so any C<.pm> files (or other kinds that we deal
-with) will get copied correctly.
-
-=item config_data
-
-[version 0.26]
-
-...
-
-=item diff
-
-[version 0.14]
-
-This action will compare the files about to be installed with their
-installed counterparts. For .pm and .pod files, a diff will be shown
-(this currently requires a 'diff' program to be in your PATH). For
-other files like compiled binary files, we simply report whether they
-differ.
-
-A C<flags> parameter may be passed to the action, which will be passed
-to the 'diff' program. Consult your 'diff' documentation for the
-parameters it will accept - a good one is C<-u>:
-
- ./Build diff flags=-u
-
-=item dist
-
-[version 0.02]
-
-This action is helpful for module authors who want to package up their
-module for source distribution through a medium like CPAN. It will create a
-tarball of the files listed in F<MANIFEST> and compress the tarball using
-GZIP compression.
-
-By default, this action will use the C<Archive::Tar> module. However, you can
-force it to use binary "tar" and "gzip" executables by supplying an explicit
-C<tar> (and optional C<gzip>) parameter:
-
- ./Build dist --tar C:\path\to\tar.exe --gzip C:\path\to\zip.exe
-
-=item distcheck
-
-[version 0.05]
-
-Reports which files are in the build directory but not in the
-F<MANIFEST> file, and vice versa. (See L<manifest> for details.)
-
-=item distclean
-
-[version 0.05]
-
-Performs the 'realclean' action and then the 'distcheck' action.
-
-=item distdir
-
-[version 0.05]
-
-Creates a "distribution directory" named C<$dist_name-$dist_version>
-(if that directory already exists, it will be removed first), then
-copies all the files listed in the F<MANIFEST> file to that directory.
-This directory is what the distribution tarball is created from.
-
-=item distinstall
-
-[version 0.37]
-
-Performs the 'distdir' action, then switches into that directory and runs a
-C<perl Build.PL>, followed by the 'build' and 'install' actions in that
-directory. Use PERL_MB_OPT or F<.modulebuildrc> to set options that should be
-applied during subprocesses
-
-=item distmeta
-
-[version 0.21]
-
-Creates the F<META.yml> file that describes the distribution.
-
-F<META.yml> is a file containing various bits of I<metadata> about the
-distribution. The metadata includes the distribution name, version,
-abstract, prerequisites, license, and various other data about the
-distribution. This file is created as F<META.yml> in a simplified YAML format.
-
-F<META.yml> file must also be listed in F<MANIFEST> - if it's not, a
-warning will be issued.
-
-The current version of the F<META.yml> specification can be found
-on CPAN as L<CPAN::Meta::Spec>.
-
-=item distsign
-
-[version 0.16]
-
-Uses C<Module::Signature> to create a SIGNATURE file for your
-distribution, and adds the SIGNATURE file to the distribution's
-MANIFEST.
-
-=item disttest
-
-[version 0.05]
-
-Performs the 'distdir' action, then switches into that directory and runs a
-C<perl Build.PL>, followed by the 'build' and 'test' actions in that directory.
-Use PERL_MB_OPT or F<.modulebuildrc> to set options that should be applied
-during subprocesses
-
-
-=item docs
-
-[version 0.20]
-
-This will generate documentation (e.g. Unix man pages and HTML
-documents) for any installable items under B<blib/> that
-contain POD. If there are no C<bindoc> or C<libdoc> installation
-targets defined (as will be the case on systems that don't support
-Unix manpages) no action is taken for manpages. If there are no
-C<binhtml> or C<libhtml> installation targets defined no action is
-taken for HTML documents.
-
-=item fakeinstall
-
-[version 0.02]
-
-This is just like the C<install> action, but it won't actually do
-anything, it will just report what it I<would> have done if you had
-actually run the C<install> action.
-
-=item help
-
-[version 0.03]
-
-This action will simply print out a message that is meant to help you
-use the build process. It will show you a list of available build
-actions too.
-
-With an optional argument specifying an action name (e.g. C<Build help
-test>), the 'help' action will show you any POD documentation it can
-find for that action.
-
-=item html
-
-[version 0.26]
-
-This will generate HTML documentation for any binary or library files
-under B<blib/> that contain POD. The HTML documentation will only be
-installed if the install paths can be determined from values in
-C<Config.pm>. You can also supply or override install paths on the
-command line by specifying C<install_path> values for the C<binhtml>
-and/or C<libhtml> installation targets.
-
-With an optional C<html_links> argument set to a false value, you can
-skip the search for other documentation to link to, because that can
-waste a lot of time if there aren't any links to generate anyway:
-
- ./Build html --html_links 0
-
-=item install
-
-[version 0.01]
-
-This action will use C<ExtUtils::Install> to install the files from
-C<blib/> into the system. See L<"INSTALL PATHS">
-for details about how Module::Build determines where to install
-things, and how to influence this process.
-
-If you want the installation process to look around in C<@INC> for
-other versions of the stuff you're installing and try to delete it,
-you can use the C<uninst> parameter, which tells C<ExtUtils::Install> to
-do so:
-
- ./Build install uninst=1
-
-This can be a good idea, as it helps prevent multiple versions of a
-module from being present on your system, which can be a confusing
-situation indeed.
-
-=item installdeps
-
-[version 0.36]
-
-This action will use the C<cpan_client> parameter as a command to install
-missing prerequisites. You will be prompted whether to install
-optional dependencies.
-
-The C<cpan_client> option defaults to 'cpan' but can be set as an option or in
-F<.modulebuildrc>. It must be a shell command that takes a list of modules to
-install as arguments (e.g. 'cpanp -i' for CPANPLUS). If the program part is a
-relative path (e.g. 'cpan' or 'cpanp'), it will be located relative to the perl
-program that executed Build.PL.
-
- /opt/perl/5.8.9/bin/perl Build.PL
- ./Build installdeps --cpan_client 'cpanp -i'
- # installs to 5.8.9
-
-=item manifest
-
-[version 0.05]
-
-This is an action intended for use by module authors, not people
-installing modules. It will bring the F<MANIFEST> up to date with the
-files currently present in the distribution. You may use a
-F<MANIFEST.SKIP> file to exclude certain files or directories from
-inclusion in the F<MANIFEST>. F<MANIFEST.SKIP> should contain a bunch
-of regular expressions, one per line. If a file in the distribution
-directory matches any of the regular expressions, it won't be included
-in the F<MANIFEST>.
-
-The following is a reasonable F<MANIFEST.SKIP> starting point, you can
-add your own stuff to it:
-
- ^_build
- ^Build$
- ^blib
- ~$
- \.bak$
- ^MANIFEST\.SKIP$
- CVS
-
-See the L<distcheck> and L<skipcheck> actions if you want to find out
-what the C<manifest> action would do, without actually doing anything.
-
-=item manifest_skip
-
-[version 0.3608]
-
-This is an action intended for use by module authors, not people
-installing modules. It will generate a boilerplate MANIFEST.SKIP file
-if one does not already exist.
-
-=item manpages
-
-[version 0.28]
-
-This will generate man pages for any binary or library files under
-B<blib/> that contain POD. The man pages will only be installed if the
-install paths can be determined from values in C<Config.pm>. You can
-also supply or override install paths by specifying there values on
-the command line with the C<bindoc> and C<libdoc> installation
-targets.
-
-=item pardist
-
-[version 0.2806]
-
-Generates a PAR binary distribution for use with L<PAR> or L<PAR::Dist>.
-
-It requires that the PAR::Dist module (version 0.17 and up) is
-installed on your system.
-
-=item ppd
-
-[version 0.20]
-
-Build a PPD file for your distribution.
-
-This action takes an optional argument C<codebase> which is used in
-the generated PPD file to specify the (usually relative) URL of the
-distribution. By default, this value is the distribution name without
-any path information.
-
-Example:
-
- ./Build ppd --codebase "MSWin32-x86-multi-thread/Module-Build-0.21.tar.gz"
-
-=item ppmdist
-
-[version 0.23]
-
-Generates a PPM binary distribution and a PPD description file. This
-action also invokes the C<ppd> action, so it can accept the same
-C<codebase> argument described under that action.
-
-This uses the same mechanism as the C<dist> action to tar & zip its
-output, so you can supply C<tar> and/or C<gzip> parameters to affect
-the result.
-
-=item prereq_data
-
-[version 0.32]
-
-This action prints out a Perl data structure of all prerequisites and the versions
-required. The output can be loaded again using C<eval()>. This can be useful for
-external tools that wish to query a Build script for prerequisites.
-
-=item prereq_report
-
-[version 0.28]
-
-This action prints out a list of all prerequisites, the versions required, and
-the versions actually installed. This can be useful for reviewing the
-configuration of your system prior to a build, or when compiling data to send
-for a bug report.
-
-=item pure_install
-
-[version 0.28]
-
-This action is identical to the C<install> action. In the future,
-though, when C<install> starts writing to the file
-F<$(INSTALLARCHLIB)/perllocal.pod>, C<pure_install> won't, and that
-will be the only difference between them.
-
-=item realclean
-
-[version 0.01]
-
-This action is just like the C<clean> action, but also removes the
-C<_build> directory and the C<Build> script. If you run the
-C<realclean> action, you are essentially starting over, so you will
-have to re-create the C<Build> script again.
-
-=item retest
-
-[version 0.2806]
-
-This is just like the C<test> action, but doesn't actually build the
-distribution first, and doesn't add F<blib/> to the load path, and
-therefore will test against a I<previously> installed version of the
-distribution. This can be used to verify that a certain installed
-distribution still works, or to see whether newer versions of a
-distribution still pass the old regression tests, and so on.
-
-=item skipcheck
-
-[version 0.05]
-
-Reports which files are skipped due to the entries in the
-F<MANIFEST.SKIP> file (See L<manifest> for details)
-
-=item test
-
-[version 0.01]
-
-This will use C<Test::Harness> or C<TAP::Harness> to run any regression
-tests and report their results. Tests can be defined in the standard
-places: a file called C<test.pl> in the top-level directory, or several
-files ending with C<.t> in a C<t/> directory.
-
-If you want tests to be 'verbose', i.e. show details of test execution
-rather than just summary information, pass the argument C<verbose=1>.
-
-If you want to run tests under the perl debugger, pass the argument
-C<debugger=1>.
-
-If you want to have Module::Build find test files with different file
-name extensions, pass the C<test_file_exts> argument with an array
-of extensions, such as C<[qw( .t .s .z )]>.
-
-If you want test to be run by C<TAP::Harness>, rather than C<Test::Harness>,
-pass the argument C<tap_harness_args> as an array reference of arguments to
-pass to the TAP::Harness constructor.
-
-In addition, if a file called C<visual.pl> exists in the top-level
-directory, this file will be executed as a Perl script and its output
-will be shown to the user. This is a good place to put speed tests or
-other tests that don't use the C<Test::Harness> format for output.
-
-To override the choice of tests to run, you may pass a C<test_files>
-argument whose value is a whitespace-separated list of test scripts to
-run. This is especially useful in development, when you only want to
-run a single test to see whether you've squashed a certain bug yet:
-
- ./Build test --test_files t/something_failing.t
-
-You may also pass several C<test_files> arguments separately:
-
- ./Build test --test_files t/one.t --test_files t/two.t
-
-or use a C<glob()>-style pattern:
-
- ./Build test --test_files 't/01-*.t'
-
-=item testall
-
-[version 0.2807]
-
-[Note: the 'testall' action and the code snippets below are currently
-in alpha stage, see
-L<"http://www.nntp.perl.org/group/perl.module.build/2007/03/msg584.html"> ]
-
-Runs the C<test> action plus each of the C<test$type> actions defined by
-the keys of the C<test_types> parameter.
-
-Currently, you need to define the ACTION_test$type method yourself and
-enumerate them in the test_types parameter.
-
- my $mb = Module::Build->subclass(
- code => q(
- sub ACTION_testspecial { shift->generic_test(type => 'special'); }
- sub ACTION_testauthor { shift->generic_test(type => 'author'); }
- )
- )->new(
- ...
- test_types => {
- special => '.st',
- author => ['.at', '.pt' ],
- },
- ...
-
-=item testcover
-
-[version 0.26]
-
-Runs the C<test> action using C<Devel::Cover>, generating a
-code-coverage report showing which parts of the code were actually
-exercised during the tests.
-
-To pass options to C<Devel::Cover>, set the C<$DEVEL_COVER_OPTIONS>
-environment variable:
-
- DEVEL_COVER_OPTIONS=-ignore,Build ./Build testcover
-
-=item testdb
-
-[version 0.05]
-
-This is a synonym for the 'test' action with the C<debugger=1>
-argument.
-
-=item testpod
-
-[version 0.25]
-
-This checks all the files described in the C<docs> action and
-produces C<Test::Harness>-style output. If you are a module author,
-this is useful to run before creating a new release.
-
-=item testpodcoverage
-
-[version 0.28]
-
-This checks the pod coverage of the distribution and
-produces C<Test::Harness>-style output. If you are a module author,
-this is useful to run before creating a new release.
-
-=item versioninstall
-
-[version 0.16]
-
-** Note: since C<only.pm> is so new, and since we just recently added
-support for it here too, this feature is to be considered
-experimental. **
-
-If you have the C<only.pm> module installed on your system, you can
-use this action to install a module into the version-specific library
-trees. This means that you can have several versions of the same
-module installed and C<use> a specific one like this:
-
- use only MyModule => 0.55;
-
-To override the default installation libraries in C<only::config>,
-specify the C<versionlib> parameter when you run the C<Build.PL> script:
-
- perl Build.PL --versionlib /my/version/place/
-
-To override which version the module is installed as, specify the
-C<version> parameter when you run the C<Build.PL> script:
-
- perl Build.PL --version 0.50
-
-See the C<only.pm> documentation for more information on
-version-specific installs.
-
-=back
-
-
-=head1 OPTIONS
-
-=head2 Command Line Options
-
-The following options can be used during any invocation of C<Build.PL>
-or the Build script, during any action. For information on other
-options specific to an action, see the documentation for the
-respective action.
-
-NOTE: There is some preliminary support for options to use the more
-familiar long option style. Most options can be preceded with the
-C<--> long option prefix, and the underscores changed to dashes
-(e.g. C<--use-rcfile>). Additionally, the argument to boolean options is
-optional, and boolean options can be negated by prefixing them with
-C<no> or C<no-> (e.g. C<--noverbose> or C<--no-verbose>).
-
-=over 4
-
-=item quiet
-
-Suppress informative messages on output.
-
-=item verbose
-
-Display extra information about the Build on output. C<verbose> will
-turn off C<quiet>
-
-=item cpan_client
-
-Sets the C<cpan_client> command for use with the C<installdeps> action.
-See C<installdeps> for more details.
-
-=item use_rcfile
-
-Load the F<~/.modulebuildrc> option file. This option can be set to
-false to prevent the custom resource file from being loaded.
-
-=item allow_mb_mismatch
-
-Suppresses the check upon startup that the version of Module::Build
-we're now running under is the same version that was initially invoked
-when building the distribution (i.e. when the C<Build.PL> script was
-first run). As of 0.3601, a mismatch results in a warning instead of
-a fatal error, so this option effectively just suppresses the warning.
-
-=item debug
-
-Prints Module::Build debugging information to STDOUT, such as a trace of
-executed build actions.
-
-=back
-
-=head2 Default Options File (F<.modulebuildrc>)
-
-[version 0.28]
-
-When Module::Build starts up, it will look first for a file,
-F<$ENV{HOME}/.modulebuildrc>. If it's not found there, it will look
-in the F<.modulebuildrc> file in the directories referred to by
-the environment variables C<HOMEDRIVE> + C<HOMEDIR>, C<USERPROFILE>,
-C<APPDATA>, C<WINDIR>, C<SYS$LOGIN>. If the file exists, the options
-specified there will be used as defaults, as if they were typed on the
-command line. The defaults can be overridden by specifying new values
-on the command line.
-
-The action name must come at the beginning of the line, followed by any
-amount of whitespace and then the options. Options are given the same
-as they would be on the command line. They can be separated by any
-amount of whitespace, including newlines, as long there is whitespace at
-the beginning of each continued line. Anything following a hash mark (C<#>)
-is considered a comment, and is stripped before parsing. If more than
-one line begins with the same action name, those lines are merged into
-one set of options.
-
-Besides the regular actions, there are two special pseudo-actions: the
-key C<*> (asterisk) denotes any global options that should be applied
-to all actions, and the key 'Build_PL' specifies options to be applied
-when you invoke C<perl Build.PL>.
-
- * verbose=1 # global options
- diff flags=-u
- install --install_base /home/ken
- --install_path html=/home/ken/docs/html
- installdeps --cpan_client 'cpanp -i'
-
-If you wish to locate your resource file in a different location, you
-can set the environment variable C<MODULEBUILDRC> to the complete
-absolute path of the file containing your options.
-
-=head2 Environment variables
-
-=over
-
-=item MODULEBUILDRC
-
-[version 0.28]
-
-Specifies an alternate location for a default options file as described above.
-
-=item PERL_MB_OPT
-
-[version 0.36]
-
-Command line options that are applied to Build.PL or any Build action. The
-string is split as the shell would (e.g. whitespace) and the result is
-prepended to any actual command-line arguments.
-
-=back
-
-=head1 INSTALL PATHS
-
-[version 0.19]
-
-When you invoke Module::Build's C<build> action, it needs to figure
-out where to install things. The nutshell version of how this works
-is that default installation locations are determined from
-F<Config.pm>, and they may be overridden by using the C<install_path>
-parameter. An C<install_base> parameter lets you specify an
-alternative installation root like F</home/foo>, and a C<destdir> lets
-you specify a temporary installation directory like F</tmp/install> in
-case you want to create bundled-up installable packages.
-
-Natively, Module::Build provides default installation locations for
-the following types of installable items:
-
-=over 4
-
-=item lib
-
-Usually pure-Perl module files ending in F<.pm>.
-
-=item arch
-
-"Architecture-dependent" module files, usually produced by compiling
-XS, L<Inline>, or similar code.
-
-=item script
-
-Programs written in pure Perl. In order to improve reuse, try to make
-these as small as possible - put the code into modules whenever
-possible.
-
-=item bin
-
-"Architecture-dependent" executable programs, i.e. compiled C code or
-something. Pretty rare to see this in a perl distribution, but it
-happens.
-
-=item bindoc
-
-Documentation for the stuff in C<script> and C<bin>. Usually
-generated from the POD in those files. Under Unix, these are manual
-pages belonging to the 'man1' category.
-
-=item libdoc
-
-Documentation for the stuff in C<lib> and C<arch>. This is usually
-generated from the POD in F<.pm> files. Under Unix, these are manual
-pages belonging to the 'man3' category.
-
-=item binhtml
-
-This is the same as C<bindoc> above, but applies to HTML documents.
-
-=item libhtml
-
-This is the same as C<libdoc> above, but applies to HTML documents.
-
-=back
-
-Four other parameters let you control various aspects of how
-installation paths are determined:
-
-=over 4
-
-=item installdirs
-
-The default destinations for these installable things come from
-entries in your system's C<Config.pm>. You can select from three
-different sets of default locations by setting the C<installdirs>
-parameter as follows:
-
- 'installdirs' set to:
- core site vendor
-
- uses the following defaults from Config.pm:
-
- lib => installprivlib installsitelib installvendorlib
- arch => installarchlib installsitearch installvendorarch
- script => installscript installsitescript installvendorscript
- bin => installbin installsitebin installvendorbin
- bindoc => installman1dir installsiteman1dir installvendorman1dir
- libdoc => installman3dir installsiteman3dir installvendorman3dir
- binhtml => installhtml1dir installsitehtml1dir installvendorhtml1dir [*]
- libhtml => installhtml3dir installsitehtml3dir installvendorhtml3dir [*]
-
- * Under some OS (eg. MSWin32) the destination for HTML documents is
- determined by the C<Config.pm> entry C<installhtmldir>.
-
-The default value of C<installdirs> is "site". If you're creating
-vendor distributions of module packages, you may want to do something
-like this:
-
- perl Build.PL --installdirs vendor
-
-or
-
- ./Build install --installdirs vendor
-
-If you're installing an updated version of a module that was included
-with perl itself (i.e. a "core module"), then you may set
-C<installdirs> to "core" to overwrite the module in its present
-location.
-
-(Note that the 'script' line is different from C<MakeMaker> -
-unfortunately there's no such thing as "installsitescript" or
-"installvendorscript" entry in C<Config.pm>, so we use the
-"installsitebin" and "installvendorbin" entries to at least get the
-general location right. In the future, if C<Config.pm> adds some more
-appropriate entries, we'll start using those.)
-
-=item install_path
-
-Once the defaults have been set, you can override them.
-
-On the command line, that would look like this:
-
- perl Build.PL --install_path lib=/foo/lib --install_path arch=/foo/lib/arch
-
-or this:
-
- ./Build install --install_path lib=/foo/lib --install_path arch=/foo/lib/arch
-
-=item install_base
-
-You can also set the whole bunch of installation paths by supplying the
-C<install_base> parameter to point to a directory on your system. For
-instance, if you set C<install_base> to "/home/ken" on a Linux
-system, you'll install as follows:
-
- lib => /home/ken/lib/perl5
- arch => /home/ken/lib/perl5/i386-linux
- script => /home/ken/bin
- bin => /home/ken/bin
- bindoc => /home/ken/man/man1
- libdoc => /home/ken/man/man3
- binhtml => /home/ken/html
- libhtml => /home/ken/html
-
-Note that this is I<different> from how C<MakeMaker>'s C<PREFIX>
-parameter works. C<install_base> just gives you a default layout under the
-directory you specify, which may have little to do with the
-C<installdirs=site> layout.
-
-The exact layout under the directory you specify may vary by system -
-we try to do the "sensible" thing on each platform.
-
-=item destdir
-
-If you want to install everything into a temporary directory first
-(for instance, if you want to create a directory tree that a package
-manager like C<rpm> or C<dpkg> could create a package from), you can
-use the C<destdir> parameter:
-
- perl Build.PL --destdir /tmp/foo
-
-or
-
- ./Build install --destdir /tmp/foo
-
-This will effectively install to "/tmp/foo/$sitelib",
-"/tmp/foo/$sitearch", and the like, except that it will use
-C<File::Spec> to make the pathnames work correctly on whatever
-platform you're installing on.
-
-=item prefix
-
-Provided for compatibility with C<ExtUtils::MakeMaker>'s PREFIX argument.
-C<prefix> should be used when you want Module::Build to install your
-modules, documentation, and scripts in the same place as
-C<ExtUtils::MakeMaker>'s PREFIX mechanism.
-
-The following are equivalent.
-
- perl Build.PL --prefix /tmp/foo
- perl Makefile.PL PREFIX=/tmp/foo
-
-Because of the complex nature of the prefixification logic, the
-behavior of PREFIX in C<MakeMaker> has changed subtly over time.
-Module::Build's --prefix logic is equivalent to the PREFIX logic found
-in C<ExtUtils::MakeMaker> 6.30.
-
-The maintainers of C<MakeMaker> do understand the troubles with the
-PREFIX mechanism, and added INSTALL_BASE support in version 6.31 of
-C<MakeMaker>, which was released in 2006.
-
-If you don't need to retain compatibility with old versions (pre-6.31) of C<ExtUtils::MakeMaker> or
-are starting a fresh Perl installation we recommend you use
-C<install_base> instead (and C<INSTALL_BASE> in C<ExtUtils::MakeMaker>).
-See L<Module::Build::Cookbook/Installing in the same location as
-ExtUtils::MakeMaker> for further information.
-
-
-=back
-
-
-=head1 MOTIVATIONS
-
-There are several reasons I wanted to start over, and not just fix
-what I didn't like about C<MakeMaker>:
-
-=over 4
-
-=item *
-
-I don't like the core idea of C<MakeMaker>, namely that C<make> should be
-involved in the build process. Here are my reasons:
-
-=over 4
-
-=item +
-
-When a person is installing a Perl module, what can you assume about
-their environment? Can you assume they have C<make>? No, but you can
-assume they have some version of Perl.
-
-=item +
-
-When a person is writing a Perl module for intended distribution, can
-you assume that they know how to build a Makefile, so they can
-customize their build process? No, but you can assume they know Perl,
-and could customize that way.
-
-=back
-
-For years, these things have been a barrier to people getting the
-build/install process to do what they want.
-
-=item *
-
-There are several architectural decisions in C<MakeMaker> that make it
-very difficult to customize its behavior. For instance, when using
-C<MakeMaker> you do C<use ExtUtils::MakeMaker>, but the object created in
-C<WriteMakefile()> is actually blessed into a package name that's
-created on the fly, so you can't simply subclass
-C<ExtUtils::MakeMaker>. There is a workaround C<MY> package that lets
-you override certain C<MakeMaker> methods, but only certain explicitly
-preselected (by C<MakeMaker>) methods can be overridden. Also, the method
-of customization is very crude: you have to modify a string containing
-the Makefile text for the particular target. Since these strings
-aren't documented, and I<can't> be documented (they take on different
-values depending on the platform, version of perl, version of
-C<MakeMaker>, etc.), you have no guarantee that your modifications will
-work on someone else's machine or after an upgrade of C<MakeMaker> or
-perl.
-
-=item *
-
-It is risky to make major changes to C<MakeMaker>, since it does so many
-things, is so important, and generally works. C<Module::Build> is an
-entirely separate package so that I can work on it all I want, without
-worrying about backward compatibility with C<MakeMaker>.
-
-=item *
-
-Finally, Perl is said to be a language for system administration.
-Could it really be the case that Perl isn't up to the task of building
-and installing software? Even if that software is a bunch of
-C<.pm> files that just need to be copied from one place to
-another? My sense was that we could design a system to accomplish
-this in a flexible, extensible, and friendly manner. Or die trying.
-
-=back
-
-
-=head1 TO DO
-
-The current method of relying on time stamps to determine whether a
-derived file is out of date isn't likely to scale well, since it
-requires tracing all dependencies backward, it runs into problems on
-NFS, and it's just generally flimsy. It would be better to use an MD5
-signature or the like, if available. See C<cons> for an example.
-
- - append to perllocal.pod
- - add a 'plugin' functionality
-
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>
-
-Development questions, bug reports, and patches should be sent to the
-Module-Build mailing list at <module-build@perl.org>.
-
-Bug reports are also welcome at
-<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Build>.
-
-The latest development version is available from the Git
-repository at <https://github.com/Perl-Toolchain-Gang/Module-Build>
-
-
-=head1 COPYRIGHT
-
-Copyright (c) 2001-2006 Ken Williams. All rights reserved.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-
-=head1 SEE ALSO
-
-perl(1), L<Module::Build::Cookbook>, L<Module::Build::Authoring>,
-L<Module::Build::API>, L<ExtUtils::MakeMaker>
-
-F<META.yml> Specification:
-L<CPAN::Meta::Spec>
-
-L<http://www.dsmit.com/cons/>
-
-L<http://search.cpan.org/dist/PerlBuildSystem/>
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/API.pod b/Master/tlpkg/tlperl/lib/Module/Build/API.pod
deleted file mode 100644
index af859e7fe40..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/API.pod
+++ /dev/null
@@ -1,2124 +0,0 @@
-=head1 NAME
-
-Module::Build::API - API Reference for Module Authors
-
-=for :stopwords apache bsd distdir distsign gpl installdirs lgpl mit mozilla packlists
-
-=head1 DESCRIPTION
-
-I list here some of the most important methods in C<Module::Build>.
-Normally you won't need to deal with these methods unless you want to
-subclass C<Module::Build>. But since one of the reasons I created
-this module in the first place was so that subclassing is possible
-(and easy), I will certainly write more docs as the interface
-stabilizes.
-
-
-=head2 CONSTRUCTORS
-
-=over 4
-
-=item current()
-
-[version 0.20]
-
-This method returns a reasonable facsimile of the currently-executing
-C<Module::Build> object representing the current build. You can use
-this object to query its L</notes()> method, inquire about installed
-modules, and so on. This is a great way to share information between
-different parts of your build process. For instance, you can ask
-the user a question during C<perl Build.PL>, then use their answer
-during a regression test:
-
- # In Build.PL:
- my $color = $build->prompt("What is your favorite color?");
- $build->notes(color => $color);
-
- # In t/colortest.t:
- use Module::Build;
- my $build = Module::Build->current;
- my $color = $build->notes('color');
- ...
-
-The way the C<current()> method is currently implemented, there may be
-slight differences between the C<$build> object in Build.PL and the
-one in C<t/colortest.t>. It is our goal to minimize these differences
-in future releases of Module::Build, so please report any anomalies
-you find.
-
-One important caveat: in its current implementation, C<current()> will
-B<NOT> work correctly if you have changed out of the directory that
-C<Module::Build> was invoked from.
-
-=item new()
-
-[version 0.03]
-
-Creates a new Module::Build object. Arguments to the new() method are
-listed below. Most arguments are optional, but you must provide
-either the L</module_name> argument, or L</dist_name> and one of
-L</dist_version> or L</dist_version_from>. In other words, you must
-provide enough information to determine both a distribution name and
-version.
-
-
-=over 4
-
-=item add_to_cleanup
-
-[version 0.19]
-
-An array reference of files to be cleaned up when the C<clean> action
-is performed. See also the L<add_to_cleanup()|/"add_to_cleanup(@files)">
-method.
-
-=item allow_pureperl
-
-[version 0.4005]
-
-A bool indicating the module is still functional without its xs parts.
-When an XS module is build with --pureperl_only, it will otherwise fail.
-
-=item auto_configure_requires
-
-[version 0.34]
-
-This parameter determines whether Module::Build will add itself
-automatically to configure_requires (and build_requires) if Module::Build
-is not already there. The required version will be the last 'major' release,
-as defined by the decimal version truncated to two decimal places (e.g. 0.34,
-instead of 0.3402). The default value is true.
-
-=item auto_features
-
-[version 0.26]
-
-This parameter supports the setting of features (see
-L</feature($name)>) automatically based on a set of prerequisites. For
-instance, for a module that could optionally use either MySQL or
-PostgreSQL databases, you might use C<auto_features> like this:
-
- my $build = Module::Build->new
- (
- ...other stuff here...
- auto_features => {
- pg_support => {
- description => "Interface with Postgres databases",
- requires => { 'DBD::Pg' => 23.3,
- 'DateTime::Format::Pg' => 0 },
- },
- mysql_support => {
- description => "Interface with MySQL databases",
- requires => { 'DBD::mysql' => 17.9,
- 'DateTime::Format::MySQL' => 0 },
- },
- }
- );
-
-For each feature named, the required prerequisites will be checked, and
-if there are no failures, the feature will be enabled (set to C<1>).
-Otherwise the failures will be displayed to the user and the feature
-will be disabled (set to C<0>).
-
-See the documentation for L</requires> for the details of how
-requirements can be specified.
-
-=item autosplit
-
-[version 0.04]
-
-An optional C<autosplit> argument specifies a file which should be run
-through the L<AutoSplit::autosplit()|AutoSplit/autosplit> function.
-If multiple files should be split, the argument may be given as an
-array of the files to split.
-
-In general I don't consider autosplitting a great idea, because it's
-not always clear that autosplitting achieves its intended performance
-benefits. It may even harm performance in environments like mod_perl,
-where as much as possible of a module's code should be loaded during
-startup.
-
-=item build_class
-
-[version 0.28]
-
-The Module::Build class or subclass to use in the build script.
-Defaults to "Module::Build" or the class name passed to or created by
-a call to L</subclass()>. This property is useful if you're
-writing a custom Module::Build subclass and have a bootstrapping
-problem--that is, your subclass requires modules that may not be
-installed when C<perl Build.PL> is executed, but you've listed in
-L</build_requires> so that they should be available when C<./Build> is
-executed.
-
-=item build_requires
-
-[version 0.07]
-
-Modules listed in this section are necessary to build and install the
-given module, but are not necessary for regular usage of it. This is
-actually an important distinction - it allows for tighter control over
-the body of installed modules, and facilitates correct dependency
-checking on binary/packaged distributions of the module.
-
-See the documentation for L<Module::Build::Authoring/"PREREQUISITES">
-for the details of how requirements can be specified.
-
-=item configure_requires
-
-[version 0.30]
-
-Modules listed in this section must be installed I<before> configuring
-this distribution (i.e. before running the F<Build.PL> script).
-This might be a specific minimum version of C<Module::Build> or any
-other module the F<Build.PL> needs in order to do its stuff. Clients
-like C<CPAN.pm> or C<CPANPLUS> will be expected to pick
-C<configure_requires> out of the F<META.yml> file and install these
-items before running the C<Build.PL>.
-
-Module::Build may automatically add itself to configure_requires.
-See L</auto_configure_requires> for details.
-
-See the documentation for L<Module::Build::Authoring/"PREREQUISITES">
-for the details of how requirements can be specified.
-
-=item test_requires
-
-[version 0.4004]
-
-Modules listed in this section must be installed before testing the distribution.
-
-See the documentation for L<Module::Build::Authoring/"PREREQUISITES">
-for the details of how requirements can be specified.
-
-=item create_packlist
-
-[version 0.28]
-
-If true, this parameter tells Module::Build to create a F<.packlist>
-file during the C<install> action, just like C<ExtUtils::MakeMaker> does.
-The file is created in a subdirectory of the C<arch> installation
-location. It is used by some other tools (CPAN, CPANPLUS, etc.) for
-determining what files are part of an install.
-
-The default value is true. This parameter was introduced in
-Module::Build version 0.2609; previously no packlists were ever
-created by Module::Build.
-
-=item c_source
-
-[version 0.04]
-
-An optional C<c_source> argument specifies a directory which contains
-C source files that the rest of the build may depend on. Any C<.c>
-files in the directory will be compiled to object files. The
-directory will be added to the search path during the compilation and
-linking phases of any C or XS files.
-
-[version 0.3604]
-
-A list of directories can be supplied using an anonymous array
-reference of strings.
-
-=item conflicts
-
-[version 0.07]
-
-Modules listed in this section conflict in some serious way with the
-given module. C<Module::Build> (or some higher-level tool) will
-refuse to install the given module if the given module/version is also
-installed.
-
-See the documentation for L<Module::Build::Authoring/"PREREQUISITES">
-for the details of how requirements can be specified.
-
-=item create_license
-
-[version 0.31]
-
-This parameter tells Module::Build to automatically create a
-F<LICENSE> file at the top level of your distribution, containing the
-full text of the author's chosen license. This requires
-C<Software::License> on the author's machine, and further requires
-that the C<license> parameter specifies a license that it knows about.
-
-=item create_makefile_pl
-
-[version 0.19]
-
-This parameter lets you use C<Module::Build::Compat> during the
-C<distdir> (or C<dist>) action to automatically create a Makefile.PL
-for compatibility with C<ExtUtils::MakeMaker>. The parameter's value
-should be one of the styles named in the L<Module::Build::Compat>
-documentation.
-
-=item create_readme
-
-[version 0.22]
-
-This parameter tells Module::Build to automatically create a F<README>
-file at the top level of your distribution. Currently it will simply
-use C<Pod::Text> (or C<Pod::Readme> if it's installed) on the file
-indicated by C<dist_version_from> and put the result in the F<README>
-file. This is by no means the only recommended style for writing a
-F<README>, but it seems to be one common one used on the CPAN.
-
-If you generate a F<README> in this way, it's probably a good idea to
-create a separate F<INSTALL> file if that information isn't in the
-generated F<README>.
-
-=item dist_abstract
-
-[version 0.20]
-
-This should be a short description of the distribution. This is used when
-generating metadata for F<META.yml> and PPD files. If it is not given
-then C<Module::Build> looks in the POD of the module from which it gets
-the distribution's version. If it finds a POD section marked "=head1
-NAME", then it looks for the first line matching C<\s+-\s+(.+)>,
-and uses the captured text as the abstract.
-
-=item dist_author
-
-[version 0.20]
-
-This should be something like "John Doe <jdoe@example.com>", or if
-there are multiple authors, an anonymous array of strings may be
-specified. This is used when generating metadata for F<META.yml> and
-PPD files. If this is not specified, then C<Module::Build> looks at
-the module from which it gets the distribution's version. If it finds
-a POD section marked "=head1 AUTHOR", then it uses the contents of
-this section.
-
-=item dist_name
-
-[version 0.11]
-
-Specifies the name for this distribution. Most authors won't need to
-set this directly, they can use C<module_name> to set C<dist_name> to
-a reasonable default. However, some agglomerative distributions like
-C<libwww-perl> or C<bioperl> have names that don't correspond directly
-to a module name, so C<dist_name> can be set independently.
-
-=item dist_suffix
-
-[version 0.37]
-
-Specifies an optional suffix to include after the version number
-in the distribution directory (and tarball) name. The only suffix
-currently recognized by PAUSE is 'TRIAL', which indicates that the
-distribution should not be indexed. For example:
-
- Foo-Bar-1.23-TRIAL.tar.gz
-
-This will automatically do the "right thing" depending on C<dist_version> and
-C<release_status>. When C<dist_version> does not have an underscore and
-C<release_status> is not 'stable', then C<dist_suffix> will default to 'TRIAL'.
-Otherwise it will default to the empty string, disabling the suffix.
-
-In general, authors should only set this if they B<must> override the default
-behavior for some particular purpose.
-
-=item dist_version
-
-[version 0.11]
-
-Specifies a version number for the distribution. See L</module_name>
-or L</dist_version_from> for ways to have this set automatically from a
-C<$VERSION> variable in a module. One way or another, a version
-number needs to be set.
-
-=item dist_version_from
-
-[version 0.11]
-
-Specifies a file to look for the distribution version in. Most
-authors won't need to set this directly, they can use L</module_name>
-to set it to a reasonable default.
-
-The version is extracted from the specified file according to the same
-rules as L<ExtUtils::MakeMaker> and C<CPAN.pm>. It involves finding
-the first line that matches the regular expression
-
- /([\$*])(([\w\:\']*)\bVERSION)\b.*\=/
-
-eval()-ing that line, then checking the value of the C<$VERSION>
-variable. Quite ugly, really, but all the modules on CPAN depend on
-this process, so there's no real opportunity to change to something
-better.
-
-If the target file of L</dist_version_from> contains more than one package
-declaration, the version returned will be the one matching the configured
-L</module_name>.
-
-=item dynamic_config
-
-[version 0.07]
-
-A boolean flag indicating whether the F<Build.PL> file must be
-executed, or whether this module can be built, tested and installed
-solely from consulting its metadata file. The main reason to set this
-to a true value is that your module performs some dynamic
-configuration as part of its build/install process. If the flag is
-omitted, the F<META.yml> spec says that installation tools should
-treat it as 1 (true), because this is a safer way to behave.
-
-Currently C<Module::Build> doesn't actually do anything with this flag
-- it's up to higher-level tools like C<CPAN.pm> to do something useful
-with it. It can potentially bring lots of security, packaging, and
-convenience improvements.
-
-=item extra_compiler_flags
-
-=item extra_linker_flags
-
-[version 0.19]
-
-These parameters can contain array references (or strings, in which
-case they will be split into arrays) to pass through to the compiler
-and linker phases when compiling/linking C code. For example, to tell
-the compiler that your code is C++, you might do:
-
- my $build = Module::Build->new
- (
- module_name => 'Foo::Bar',
- extra_compiler_flags => ['-x', 'c++'],
- );
-
-To link your XS code against glib you might write something like:
-
- my $build = Module::Build->new
- (
- module_name => 'Foo::Bar',
- dynamic_config => 1,
- extra_compiler_flags => scalar `glib-config --cflags`,
- extra_linker_flags => scalar `glib-config --libs`,
- );
-
-=item extra_manify_args
-
-[version 0.4006]
-
-Any extra arguments to pass to C<< Pod::Man->new() >> when building
-man pages. One common choice might be C<< utf8 => 1 >> to get Unicode
-support.
-
-=item get_options
-
-[version 0.26]
-
-You can pass arbitrary command line options to F<Build.PL> or
-F<Build>, and they will be stored in the Module::Build object and can
-be accessed via the L</args()> method. However, sometimes you want
-more flexibility out of your argument processing than this allows. In
-such cases, use the C<get_options> parameter to pass in a hash
-reference of argument specifications, and the list of arguments to
-F<Build.PL> or F<Build> will be processed according to those
-specifications before they're passed on to C<Module::Build>'s own
-argument processing.
-
-The supported option specification hash keys are:
-
-
-=over 4
-
-=item type
-
-The type of option. The types are those supported by Getopt::Long; consult
-its documentation for a complete list. Typical types are C<=s> for strings,
-C<+> for additive options, and C<!> for negatable options. If the
-type is not specified, it will be considered a boolean, i.e. no
-argument is taken and a value of 1 will be assigned when the option is
-encountered.
-
-=item store
-
-A reference to a scalar in which to store the value passed to the option.
-If not specified, the value will be stored under the option name in the
-hash returned by the C<args()> method.
-
-=item default
-
-A default value for the option. If no default value is specified and no option
-is passed, then the option key will not exist in the hash returned by
-C<args()>.
-
-=back
-
-
-You can combine references to your own variables or subroutines with
-unreferenced specifications, for which the result will also be stored in the
-hash returned by C<args()>. For example:
-
- my $loud = 0;
- my $build = Module::Build->new
- (
- module_name => 'Foo::Bar',
- get_options => {
- Loud => { store => \$loud },
- Dbd => { type => '=s' },
- Quantity => { type => '+' },
- }
- );
-
- print STDERR "HEY, ARE YOU LISTENING??\n" if $loud;
- print "We'll use the ", $build->args('Dbd'), " DBI driver\n";
- print "Are you sure you want that many?\n"
- if $build->args('Quantity') > 2;
-
-The arguments for such a specification can be called like so:
-
- perl Build.PL --Loud --Dbd=DBD::pg --Quantity --Quantity --Quantity
-
-B<WARNING:> Any option specifications that conflict with Module::Build's own
-options (defined by its properties) will throw an exception. Use capitalized
-option names to avoid unintended conflicts with future Module::Build options.
-
-Consult the Getopt::Long documentation for details on its usage.
-
-=item include_dirs
-
-[version 0.24]
-
-Specifies any additional directories in which to search for C header
-files. May be given as a string indicating a single directory, or as
-a list reference indicating multiple directories.
-
-=item install_path
-
-[version 0.19]
-
-You can set paths for individual installable elements by using the
-C<install_path> parameter:
-
- my $build = Module::Build->new
- (
- ...other stuff here...
- install_path => {
- lib => '/foo/lib',
- arch => '/foo/lib/arch',
- }
- );
-
-=item installdirs
-
-[version 0.19]
-
-Determines where files are installed within the normal perl hierarchy
-as determined by F<Config.pm>. Valid values are: C<core>, C<site>,
-C<vendor>. The default is C<site>. See
-L<Module::Build/"INSTALL PATHS">
-
-=item license
-
-[version 0.07]
-
-Specifies the licensing terms of your distribution.
-
-As of Module::Build version 0.36_14, you may use a L<Software::License>
-subclass name (e.g. 'Apache_2_0') instead of one of the keys below.
-
-The legacy list of valid license values include:
-
-=over 4
-
-=item apache
-
-The distribution is licensed under the Apache License, Version 2.0
-(L<http://apache.org/licenses/LICENSE-2.0>).
-
-=item apache_1_1
-
-The distribution is licensed under the Apache Software License, Version 1.1
-(L<http://apache.org/licenses/LICENSE-1.1>).
-
-=item artistic
-
-The distribution is licensed under the Artistic License, as specified
-by the F<Artistic> file in the standard Perl distribution.
-
-=item artistic_2
-
-The distribution is licensed under the Artistic 2.0 License
-(L<http://opensource.org/licenses/artistic-license-2.0.php>.)
-
-=item bsd
-
-The distribution is licensed under the BSD License
-(L<http://www.opensource.org/licenses/bsd-license.php>).
-
-=item gpl
-
-The distribution is licensed under the terms of the GNU General
-Public License (L<http://www.opensource.org/licenses/gpl-license.php>).
-
-=item lgpl
-
-The distribution is licensed under the terms of the GNU Lesser
-General Public License
-(L<http://www.opensource.org/licenses/lgpl-license.php>).
-
-=item mit
-
-The distribution is licensed under the MIT License
-(L<http://opensource.org/licenses/mit-license.php>).
-
-=item mozilla
-
-The distribution is licensed under the Mozilla Public
-License. (L<http://opensource.org/licenses/mozilla1.0.php> or
-L<http://opensource.org/licenses/mozilla1.1.php>)
-
-=item open_source
-
-The distribution is licensed under some other Open Source
-Initiative-approved license listed at
-L<http://www.opensource.org/licenses/>.
-
-=item perl
-
-The distribution may be copied and redistributed under the same terms
-as Perl itself (this is by far the most common licensing option for
-modules on CPAN). This is a dual license, in which the user may
-choose between either the GPL or the Artistic license.
-
-=item restrictive
-
-The distribution may not be redistributed without special permission
-from the author and/or copyright holder.
-
-=item unrestricted
-
-The distribution is licensed under a license that is B<not> approved
-by www.opensource.org but that allows distribution without
-restrictions.
-
-=back
-
-Note that you must still include the terms of your license in your
-code and documentation - this field only sets the information that is included
-in distribution metadata to let automated tools figure out your
-licensing restrictions. Humans still need something to read. If you
-choose to provide this field, you should make sure that you keep it in
-sync with your written documentation if you ever change your licensing
-terms.
-
-You may also use a license type of C<unknown> if you don't wish to
-specify your terms in the metadata.
-
-Also see the C<create_license> parameter.
-
-=item meta_add
-
-[version 0.28]
-
-A hash of key/value pairs that should be added to the F<META.yml> file
-during the C<distmeta> action. Any existing entries with the same
-names will be overridden.
-
-See the L</"MODULE METADATA"> section for details.
-
-=item meta_merge
-
-[version 0.28]
-
-A hash of key/value pairs that should be merged into the F<META.yml>
-file during the C<distmeta> action. Any existing entries with the
-same names will be overridden.
-
-The only difference between C<meta_add> and C<meta_merge> is their
-behavior on hash-valued and array-valued entries: C<meta_add> will
-completely blow away the existing hash or array value, but
-C<meta_merge> will merge the supplied data into the existing hash or
-array value.
-
-See the L</"MODULE METADATA"> section for details.
-
-=item module_name
-
-[version 0.03]
-
-The C<module_name> is a shortcut for setting default values of
-C<dist_name> and C<dist_version_from>, reflecting the fact that the
-majority of CPAN distributions are centered around one "main" module.
-For instance, if you set C<module_name> to C<Foo::Bar>, then
-C<dist_name> will default to C<Foo-Bar> and C<dist_version_from> will
-default to C<lib/Foo/Bar.pm>. C<dist_version_from> will in turn be
-used to set C<dist_version>.
-
-Setting C<module_name> won't override a C<dist_*> parameter you
-specify explicitly.
-
-=item needs_compiler
-
-[version 0.36]
-
-The C<needs_compiler> parameter indicates whether a compiler is required to
-build the distribution. The default is false, unless XS files are found or
-the C<c_source> parameter is set, in which case it is true. If true,
-L<ExtUtils::CBuilder> is automatically added to C<build_requires> if needed.
-
-For a distribution where a compiler is I<optional>, e.g. a dual XS/pure-Perl
-distribution, C<needs_compiler> should explicitly be set to a false value.
-
-=item PL_files
-
-[version 0.06]
-
-An optional parameter specifying a set of C<.PL> files in your
-distribution. These will be run as Perl scripts prior to processing
-the rest of the files in your distribution with the name of the file
-they're generating as an argument. They are usually used as templates
-for creating other files dynamically, so that a file like
-C<lib/Foo/Bar.pm.PL> might create the file C<lib/Foo/Bar.pm>.
-
-The files are specified with the C<.PL> files as hash keys, and the
-file(s) they generate as hash values, like so:
-
- my $build = Module::Build->new
- (
- module_name => 'Foo::Bar',
- ...
- PL_files => { 'lib/Foo/Bar.pm.PL' => 'lib/Foo/Bar.pm' },
- );
-
-Note that the path specifications are I<always> given in Unix-like
-format, not in the style of the local system.
-
-If your C<.PL> scripts don't create any files, or if they create files
-with unexpected names, or even if they create multiple files, you can
-indicate that so that Module::Build can properly handle these created
-files:
-
- PL_files => {
- 'lib/Foo/Bar.pm.PL' => 'lib/Foo/Bar.pm',
- 'lib/something.PL' => ['/lib/something', '/lib/else'],
- 'lib/funny.PL' => [],
- }
-
-Here's an example of a simple PL file.
-
- my $output_file = shift;
- open my $fh, ">", $output_file or die "Can't open $output_file: $!";
-
- print $fh <<'END';
- #!/usr/bin/perl
-
- print "Hello, world!\n";
- END
-
-PL files are not installed by default, so its safe to put them in
-F<lib/> and F<bin/>.
-
-
-=item pm_files
-
-[version 0.19]
-
-An optional parameter specifying the set of C<.pm> files in this
-distribution, specified as a hash reference whose keys are the files'
-locations in the distributions, and whose values are their logical
-locations based on their package name, i.e. where they would be found
-in a "normal" Module::Build-style distribution. This parameter is
-mainly intended to support alternative layouts of files.
-
-For instance, if you have an old-style C<MakeMaker> distribution for a
-module called C<Foo::Bar> and a F<Bar.pm> file at the top level of the
-distribution, you could specify your layout in your C<Build.PL> like
-this:
-
- my $build = Module::Build->new
- (
- module_name => 'Foo::Bar',
- ...
- pm_files => { 'Bar.pm' => 'lib/Foo/Bar.pm' },
- );
-
-Note that the values should include C<lib/>, because this is where
-they would be found in a "normal" Module::Build-style distribution.
-
-Note also that the path specifications are I<always> given in
-Unix-like format, not in the style of the local system.
-
-=item pod_files
-
-[version 0.19]
-
-Just like C<pm_files>, but used for specifying the set of C<.pod>
-files in your distribution.
-
-=item recommends
-
-[version 0.08]
-
-This is just like the L</requires> argument, except that modules listed
-in this section aren't essential, just a good idea. We'll just print
-a friendly warning if one of these modules aren't found, but we'll
-continue running.
-
-If a module is recommended but not required, all tests should still
-pass if the module isn't installed. This may mean that some tests
-may be skipped if recommended dependencies aren't present.
-
-Automated tools like CPAN.pm should inform the user when recommended
-modules aren't installed, and it should offer to install them if it
-wants to be helpful.
-
-See the documentation for L<Module::Build::Authoring/"PREREQUISITES">
-for the details of how requirements can be specified.
-
-=item recursive_test_files
-
-[version 0.28]
-
-Normally, C<Module::Build> does not search subdirectories when looking
-for tests to run. When this options is set it will search recursively
-in all subdirectories of the standard 't' test directory.
-
-=item release_status
-
-[version 0.37]
-
-The CPAN Meta Spec version 2 adds C<release_status> to allow authors
-to specify how a distribution should be indexed. Consistent with the
-spec, this parameter can only have one three values: 'stable',
-'testing' or 'unstable'.
-
-Unless explicitly set by the author, C<release_status> will default
-to 'stable' unless C<dist_version> contains an underscore, in which
-case it will default to 'testing'.
-
-It is an error to specify a C<release_status> of 'stable' when
-C<dist_version> contains an underscore character.
-
-=item requires
-
-[version 0.07]
-
-An optional C<requires> argument specifies any module prerequisites
-that the current module depends on.
-
-One note: currently C<Module::Build> doesn't actually I<require> the
-user to have dependencies installed, it just strongly urges. In the
-future we may require it. There's also a L</recommends> section for
-things that aren't absolutely required.
-
-Automated tools like CPAN.pm should refuse to install a module if one
-of its dependencies isn't satisfied, unless a "force" command is given
-by the user. If the tools are helpful, they should also offer to
-install the dependencies.
-
-A synonym for C<requires> is C<prereq>, to help succour people
-transitioning from C<ExtUtils::MakeMaker>. The C<requires> term is
-preferred, but the C<prereq> term will remain valid in future
-distributions.
-
-See the documentation for L<Module::Build::Authoring/"PREREQUISITES">
-for the details of how requirements can be specified.
-
-=item script_files
-
-[version 0.18]
-
-An optional parameter specifying a set of files that should be
-installed as executable Perl scripts when the module is installed.
-May be given as an array reference of the files, as a hash reference
-whose keys are the files (and whose values will currently be ignored),
-as a string giving the name of a directory in which to find scripts,
-or as a string giving the name of a single script file.
-
-The default is to install any scripts found in a F<bin> directory at
-the top level of the distribution, minus any keys of L<PL_files>.
-
-For backward compatibility, you may use the parameter C<scripts>
-instead of C<script_files>. Please consider this usage deprecated,
-though it will continue to exist for several version releases.
-
-=item share_dir
-
-[version 0.36]
-
-An optional parameter specifying directories of static data files to
-be installed as read-only files for use with L<File::ShareDir>. The
-C<share_dir> property supports both distribution-level and
-module-level share files.
-
-The simplest use of C<share_dir> is to set it to a directory name or an
-arrayref of directory names containing files to be installed in the
-distribution-level share directory.
-
- share_dir => 'share'
-
-Alternatively, if C<share_dir> is a hashref, it may have C<dist> or
-C<module> keys providing full flexibility in defining how share
-directories should be installed.
-
- share_dir => {
- dist => [ 'examples', 'more_examples' ],
- module => {
- Foo::Templates => ['share/html', 'share/text'],
- Foo::Config => 'share/config',
- }
- }
-
-If C<share_dir> is set, then File::ShareDir will automatically be added
-to the C<requires> hash.
-
-=item sign
-
-[version 0.16]
-
-If a true value is specified for this parameter, L<Module::Signature>
-will be used (via the 'distsign' action) to create a SIGNATURE file
-for your distribution during the 'distdir' action, and to add the
-SIGNATURE file to the MANIFEST (therefore, don't add it yourself).
-
-The default value is false. In the future, the default may change to
-true if you have C<Module::Signature> installed on your system.
-
-=item tap_harness_args
-
-[version 0.2808_03]
-
-An optional parameter specifying parameters to be passed to TAP::Harness when
-running tests. Must be given as a hash reference of parameters; see the
-L<TAP::Harness|TAP::Harness> documentation for details. Note that specifying
-this parameter will implicitly set C<use_tap_harness> to a true value. You
-must therefore be sure to add TAP::Harness as a requirement for your module in
-L</build_requires>.
-
-=item test_files
-
-[version 0.23]
-
-An optional parameter specifying a set of files that should be used as
-C<Test::Harness>-style regression tests to be run during the C<test>
-action. May be given as an array reference of the files, or as a hash
-reference whose keys are the files (and whose values will currently be
-ignored). If the argument is given as a single string (not in an
-array reference), that string will be treated as a C<glob()> pattern
-specifying the files to use.
-
-The default is to look for a F<test.pl> script in the top-level
-directory of the distribution, and any files matching the glob pattern
-C<*.t> in the F<t/> subdirectory. If the C<recursive_test_files>
-property is true, then the C<t/> directory will be scanned recursively
-for C<*.t> files.
-
-=item use_tap_harness
-
-[version 0.2808_03]
-
-An optional parameter indicating whether or not to use TAP::Harness for
-testing rather than Test::Harness. Defaults to false. If set to true, you must
-therefore be sure to add TAP::Harness as a requirement for your module in
-L</build_requires>. Implicitly set to a true value if C<tap_harness_args> is
-specified.
-
-=item xs_files
-
-[version 0.19]
-
-Just like C<pm_files>, but used for specifying the set of C<.xs>
-files in your distribution.
-
-=back
-
-
-=item new_from_context(%args)
-
-[version 0.28]
-
-When called from a directory containing a F<Build.PL> script (in other words,
-the base directory of a distribution), this method will run the F<Build.PL> and
-call C<resume()> to return the resulting C<Module::Build> object to the caller.
-Any key-value arguments given to C<new_from_context()> are essentially like
-command line arguments given to the F<Build.PL> script, so for example you
-could pass C<< verbose => 1 >> to this method to turn on verbosity.
-
-=item resume()
-
-[version 0.03]
-
-You'll probably never call this method directly, it's only called from the
-auto-generated C<Build> script (and the C<new_from_context> method). The
-C<new()> method is only called once, when the user runs C<perl Build.PL>.
-Thereafter, when the user runs C<Build test> or another action, the
-C<Module::Build> object is created using the C<resume()> method to
-re-instantiate with the settings given earlier to C<new()>.
-
-=item subclass()
-
-[version 0.06]
-
-This creates a new C<Module::Build> subclass on the fly, as described
-in the L<Module::Build::Authoring/"SUBCLASSING"> section. The caller
-must provide either a C<class> or C<code> parameter, or both. The
-C<class> parameter indicates the name to use for the new subclass, and
-defaults to C<MyModuleBuilder>. The C<code> parameter specifies Perl
-code to use as the body of the subclass.
-
-=item add_property
-
-[version 0.31]
-
- package 'My::Build';
- use base 'Module::Build';
- __PACKAGE__->add_property( 'pedantic' );
- __PACKAGE__->add_property( answer => 42 );
- __PACKAGE__->add_property(
- 'epoch',
- default => sub { time },
- check => sub {
- return 1 if /^\d+$/;
- shift->property_error( "'$_' is not an epoch time" );
- return 0;
- },
- );
-
-Adds a property to a Module::Build class. Properties are those attributes of a
-Module::Build object which can be passed to the constructor and which have
-accessors to get and set them. All of the core properties, such as
-C<module_name> and C<license>, are defined using this class method.
-
-The first argument to C<add_property()> is always the name of the property.
-The second argument can be either a default value for the property, or a list
-of key/value pairs. The supported keys are:
-
-=over
-
-=item C<default>
-
-The default value. May optionally be specified as a code reference, in which
-case the return value from the execution of the code reference will be used.
-If you need the default to be a code reference, just use a code reference to
-return it, e.g.:
-
- default => sub { sub { ... } },
-
-=item C<check>
-
-A code reference that checks that a value specified for the property is valid.
-During the execution of the code reference, the new value will be included in
-the C<$_> variable. If the value is correct, the C<check> code reference
-should return true. If the value is not correct, it sends an error message to
-C<property_error()> and returns false.
-
-=back
-
-When this method is called, a new property will be installed in the
-Module::Build class, and an accessor will be built to allow the property to be
-get or set on the build object.
-
- print $build->pedantic, $/;
- $build->pedantic(0);
-
-If the default value is a hash reference, this generates a special-case
-accessor method, wherein individual key/value pairs may be set or fetched:
-
- print "stuff{foo} is: ", $build->stuff( 'foo' ), $/;
- $build->stuff( foo => 'bar' );
- print $build->stuff( 'foo' ), $/; # Outputs "bar"
-
-Of course, you can still set the entire hash reference at once, as well:
-
- $build->stuff( { foo => 'bar', baz => 'yo' } );
-
-In either case, if a C<check> has been specified for the property, it will be
-applied to the entire hash. So the check code reference should look something
-like:
-
- check => sub {
- return 1 if defined $_ && exists $_->{foo};
- shift->property_error(qq{Property "stuff" needs "foo"});
- return 0;
- },
-
-=item property_error
-
-[version 0.31]
-
-=back
-
-
-=head2 METHODS
-
-=over 4
-
-=item add_build_element($type)
-
-[version 0.26]
-
-Adds a new type of entry to the build process. Accepts a single
-string specifying its type-name. There must also be a method defined
-to process things of that type, e.g. if you add a build element called
-C<'foo'>, then you must also define a method called
-C<process_foo_files()>.
-
-See also
-L<Module::Build::Cookbook/"Adding new file types to the build process">.
-
-=item add_to_cleanup(@files)
-
-[version 0.03]
-
-You may call C<< $self->add_to_cleanup(@patterns) >> to tell
-C<Module::Build> that certain files should be removed when the user
-performs the C<Build clean> action. The arguments to the method are
-patterns suitable for passing to Perl's C<glob()> function, specified
-in either Unix format or the current machine's native format. It's
-usually convenient to use Unix format when you hard-code the filenames
-(e.g. in F<Build.PL>) and the native format when the names are
-programmatically generated (e.g. in a testing script).
-
-I decided to provide a dynamic method of the C<$build> object, rather
-than just use a static list of files named in the F<Build.PL>, because
-these static lists can get difficult to manage. I usually prefer to
-keep the responsibility for registering temporary files close to the
-code that creates them.
-
-=item args()
-
-[version 0.26]
-
- my $args_href = $build->args;
- my %args = $build->args;
- my $arg_value = $build->args($key);
- $build->args($key, $value);
-
-This method is the preferred interface for retrieving the arguments passed via
-command line options to F<Build.PL> or F<Build>, minus the Module-Build
-specific options.
-
-When called in a scalar context with no arguments, this method returns a
-reference to the hash storing all of the arguments; in an array context, it
-returns the hash itself. When passed a single argument, it returns the value
-stored in the args hash for that option key. When called with two arguments,
-the second argument is assigned to the args hash under the key passed as the
-first argument.
-
-=item autosplit_file($from, $to)
-
-[version 0.28]
-
-Invokes the L<AutoSplit> module on the C<$from> file, sending the
-output to the C<lib/auto> directory inside C<$to>. C<$to> is
-typically the C<blib/> directory.
-
-=item base_dir()
-
-[version 0.14]
-
-Returns a string containing the root-level directory of this build,
-i.e. where the C<Build.PL> script and the C<lib> directory can be
-found. This is usually the same as the current working directory,
-because the C<Build> script will C<chdir()> into this directory as
-soon as it begins execution.
-
-=item build_requires()
-
-[version 0.21]
-
-Returns a hash reference indicating the C<build_requires>
-prerequisites that were passed to the C<new()> method.
-
-=item can_action( $action )
-
-Returns a reference to the method that defines C<$action>, or false
-otherwise. This is handy for actions defined (or maybe not!) in subclasses.
-
-[version 0.32_xx]
-
-=item cbuilder()
-
-[version 0.2809]
-
-Returns the internal ExtUtils::CBuilder object that can be used for
-compiling & linking C code. If no such object is available (e.g. if
-the system has no compiler installed) an exception will be thrown.
-
-=item check_installed_status($module, $version)
-
-[version 0.11]
-
-This method returns a hash reference indicating whether a version
-dependency on a certain module is satisfied. The C<$module> argument
-is given as a string like C<"Data::Dumper"> or C<"perl">, and the
-C<$version> argument can take any of the forms described in L</requires>
-above. This allows very fine-grained version checking.
-
-The returned hash reference has the following structure:
-
- {
- ok => $whether_the_dependency_is_satisfied,
- have => $version_already_installed,
- need => $version_requested, # Same as incoming $version argument
- message => $informative_error_message,
- }
-
-If no version of C<$module> is currently installed, the C<have> value
-will be the string C<< "<none>" >>. Otherwise the C<have> value will
-simply be the version of the installed module. Note that this means
-that if C<$module> is installed but doesn't define a version number,
-the C<have> value will be C<undef> - this is why we don't use C<undef>
-for the case when C<$module> isn't installed at all.
-
-This method may be called either as an object method
-(C<< $build->check_installed_status($module, $version) >>)
-or as a class method
-(C<< Module::Build->check_installed_status($module, $version) >>).
-
-=item check_installed_version($module, $version)
-
-[version 0.05]
-
-Like L<check_installed_status()|/"check_installed_status($module, $version)">,
-but simply returns true or false depending on whether module
-C<$module> satisfies the dependency C<$version>.
-
-If the check succeeds, the return value is the actual version of
-C<$module> installed on the system. This allows you to do the
-following:
-
- my $installed = $build->check_installed_version('DBI', '1.15');
- if ($installed) {
- print "Congratulations, version $installed of DBI is installed.\n";
- } else {
- die "Sorry, you must install DBI.\n";
- }
-
-If the check fails, we return false and set C<$@> to an informative
-error message.
-
-If C<$version> is any non-true value (notably zero) and any version of
-C<$module> is installed, we return true. In this case, if C<$module>
-doesn't define a version, or if its version is zero, we return the
-special value "0 but true", which is numerically zero, but logically
-true.
-
-In general you might prefer to use C<check_installed_status> if you
-need detailed information, or this method if you just need a yes/no
-answer.
-
-=item compare_versions($v1, $op, $v2)
-
-[version 0.28]
-
-Compares two module versions C<$v1> and C<$v2> using the operator
-C<$op>, which should be one of Perl's numeric operators like C<!=> or
-C<< >= >> or the like. We do at least a halfway-decent job of
-handling versions that aren't strictly numeric, like C<0.27_02>, but
-exotic stuff will likely cause problems.
-
-In the future, the guts of this method might be replaced with a call
-out to C<version.pm>.
-
-=item config($key)
-
-=item config($key, $value)
-
-=item config() [deprecated]
-
-[version 0.22]
-
-With a single argument C<$key>, returns the value associated with that
-key in the C<Config.pm> hash, including any changes the author or user
-has specified.
-
-With C<$key> and C<$value> arguments, sets the value for future
-callers of C<config($key)>.
-
-With no arguments, returns a hash reference containing all such
-key-value pairs. This usage is deprecated, though, because it's a
-resource hog and violates encapsulation.
-
-=item config_data($name)
-
-=item config_data($name => $value)
-
-[version 0.26]
-
-With a single argument, returns the value of the configuration
-variable C<$name>. With two arguments, sets the given configuration
-variable to the given value. The value may be any Perl scalar that's
-serializable with C<Data::Dumper>. For instance, if you write a
-module that can use a MySQL or PostgreSQL back-end, you might create
-configuration variables called C<mysql_connect> and
-C<postgres_connect>, and set each to an array of connection parameters
-for C<< DBI->connect() >>.
-
-Configuration values set in this way using the Module::Build object
-will be available for querying during the build/test process and after
-installation via the generated C<...::ConfigData> module, as
-C<< ...::ConfigData->config($name) >>.
-
-The L<feature()|/"feature($name)"> and C<config_data()> methods represent
-Module::Build's main support for configuration of installed modules.
-See also L<Module::Build::Authoring/"SAVING CONFIGURATION INFORMATION">.
-
-=item conflicts()
-
-[version 0.21]
-
-Returns a hash reference indicating the C<conflicts> prerequisites
-that were passed to the C<new()> method.
-
-=item contains_pod($file) [deprecated]
-
-[version 0.20]
-
-[Deprecated] Please see L<Module::Build::ModuleInfo> instead.
-
-Returns true if the given file appears to contain POD documentation.
-Currently this checks whether the file has a line beginning with
-'=pod', '=head', or '=item', but the exact semantics may change in the
-future.
-
-=item copy_if_modified(%parameters)
-
-[version 0.19]
-
-Takes the file in the C<from> parameter and copies it to the file in
-the C<to> parameter, or the directory in the C<to_dir> parameter, if
-the file has changed since it was last copied (or if it doesn't exist
-in the new location). By default the entire directory structure of
-C<from> will be copied into C<to_dir>; an optional C<flatten>
-parameter will copy into C<to_dir> without doing so.
-
-Returns the path to the destination file, or C<undef> if nothing
-needed to be copied.
-
-Any directories that need to be created in order to perform the
-copying will be automatically created.
-
-The destination file is set to read-only. If the source file has the
-executable bit set, then the destination file will be made executable.
-
-=item create_build_script()
-
-[version 0.05]
-
-Creates an executable script called C<Build> in the current directory
-that will be used to execute further user actions. This script is
-roughly analogous (in function, not in form) to the Makefile created
-by C<ExtUtils::MakeMaker>. This method also creates some temporary
-data in a directory called C<_build/>. Both of these will be removed
-when the C<realclean> action is performed.
-
-Among the files created in C<_build/> is a F<_build/prereqs> file
-containing the set of prerequisites for this distribution, as a hash
-of hashes. This file may be C<eval()>-ed to obtain the authoritative
-set of prerequisites, which might be different from the contents of
-F<META.yml> (because F<Build.PL> might have set them dynamically).
-But fancy developers take heed: do not put any fancy custom runtime
-code in the F<_build/prereqs> file, leave it as a static declaration
-containing only strings and numbers. Similarly, do not alter the
-structure of the internal C<< $self->{properties}{requires} >> (etc.)
-data members, because that's where this data comes from.
-
-=item current_action()
-
-[version 0.28]
-
-Returns the name of the currently-running action, such as "build" or
-"test". This action is not necessarily the action that was originally
-invoked by the user. For example, if the user invoked the "test"
-action, current_action() would initially return "test". However,
-action "test" depends on action "code", so current_action() will
-return "code" while that dependency is being executed. Once that
-action has completed, current_action() will again return "test".
-
-If you need to know the name of the original action invoked by the
-user, see L</invoked_action()> below.
-
-=item depends_on(@actions)
-
-[version 0.28]
-
-Invokes the named action or list of actions in sequence. Using this
-method is preferred to calling the action explicitly because it
-performs some internal record-keeping, and it ensures that the same
-action is not invoked multiple times (note: in future versions of
-Module::Build it's conceivable that this run-only-once mechanism will
-be changed to something more intelligent).
-
-Note that the name of this method is something of a misnomer; it
-should really be called something like
-C<invoke_actions_unless_already_invoked()> or something, but for
-better or worse (perhaps better!) we were still thinking in
-C<make>-like dependency terms when we created this method.
-
-See also L<dispatch()|/"dispatch($action, %args)">. The main
-distinction between the two is that C<depends_on()> is meant to call
-an action from inside another action, whereas C<dispatch()> is meant
-to set the very top action in motion.
-
-=item dir_contains($first_dir, $second_dir)
-
-[version 0.28]
-
-Returns true if the first directory logically contains the second
-directory. This is just a convenience function because C<File::Spec>
-doesn't really provide an easy way to figure this out (but
-C<Path::Class> does...).
-
-=item dispatch($action, %args)
-
-[version 0.03]
-
-Invokes the build action C<$action>. Optionally, a list of options
-and their values can be passed in. This is equivalent to invoking an
-action at the command line, passing in a list of options.
-
-Custom options that have not been registered must be passed in as a
-hash reference in a key named "args":
-
- $build->dispatch('foo', verbose => 1, args => { my_option => 'value' });
-
-This method is intended to be used to programmatically invoke build
-actions, e.g. by applications controlling Module::Build-based builds
-rather than by subclasses.
-
-See also L<depends_on()|/"depends_on(@actions)">. The main
-distinction between the two is that C<depends_on()> is meant to call
-an action from inside another action, whereas C<dispatch()> is meant
-to set the very top action in motion.
-
-=item dist_dir()
-
-[version 0.28]
-
-Returns the name of the directory that will be created during the
-C<dist> action. The name is derived from the C<dist_name> and
-C<dist_version> properties.
-
-=item dist_name()
-
-[version 0.21]
-
-Returns the name of the current distribution, as passed to the
-C<new()> method in a C<dist_name> or modified C<module_name>
-parameter.
-
-=item dist_version()
-
-[version 0.21]
-
-Returns the version of the current distribution, as determined by the
-C<new()> method from a C<dist_version>, C<dist_version_from>, or
-C<module_name> parameter.
-
-=item do_system($cmd, @args)
-
-[version 0.21]
-
-This is a fairly simple wrapper around Perl's C<system()> built-in
-command. Given a command and an array of optional arguments, this
-method will print the command to C<STDOUT>, and then execute it using
-Perl's C<system()>. It returns true or false to indicate success or
-failure (the opposite of how C<system()> works, but more intuitive).
-
-Note that if you supply a single argument to C<do_system()>, it
-will/may be processed by the system's shell, and any special
-characters will do their special things. If you supply multiple
-arguments, no shell will get involved and the command will be executed
-directly.
-
-=item extra_compiler_flags()
-
-=item extra_compiler_flags(@flags)
-
-[version 0.25]
-
-Set or retrieve the extra compiler flags. Returns an arrayref of flags.
-
-=item extra_linker_flags()
-
-=item extra_linker_flags(@flags)
-
-[version 0.25]
-
-Set or retrieve the extra linker flags. Returns an arrayref of flags.
-
-=item feature($name)
-
-=item feature($name => $value)
-
-[version 0.26]
-
-With a single argument, returns true if the given feature is set.
-With two arguments, sets the given feature to the given boolean value.
-In this context, a "feature" is any optional functionality of an
-installed module. For instance, if you write a module that could
-optionally support a MySQL or PostgreSQL backend, you might create
-features called C<mysql_support> and C<postgres_support>, and set them
-to true/false depending on whether the user has the proper databases
-installed and configured.
-
-Features set in this way using the Module::Build object will be
-available for querying during the build/test process and after
-installation via the generated C<...::ConfigData> module, as
-C<< ...::ConfigData->feature($name) >>.
-
-The C<feature()> and C<config_data()> methods represent
-Module::Build's main support for configuration of installed modules.
-See also L<Module::Build::Authoring/"SAVING CONFIGURATION INFORMATION">.
-
-=item fix_shebang_line(@files)
-
-[version 0.??]
-
-Modify any "shebang" line in the specified files to use the path to the
-perl executable being used for the current build. Files are modified
-in-place. The existing shebang line must have a command that contains
-"C<perl>"; arguments to the command do not count. In particular, this
-means that the use of C<#!/usr/bin/env perl> will not be changed.
-
-For an explanation of shebang lines, see
-L<http://en.wikipedia.org/wiki/Shebang_%28Unix%29>.
-
-=item have_c_compiler()
-
-[version 0.21]
-
-Returns true if the current system seems to have a working C compiler.
-We currently determine this by attempting to compile a simple C source
-file and reporting whether the attempt was successful.
-
-=item install_base_relpaths()
-
-=item install_base_relpaths($type)
-
-=item install_base_relpaths($type => $path)
-
-[version 0.28]
-
-Set or retrieve the relative paths that are appended to
-C<install_base> for any installable element. This is useful if you
-want to set the relative install path for custom build elements.
-
-With no argument, it returns a reference to a hash containing all
-elements and their respective values. This hash should not be modified
-directly; use the multiple argument below form to change values.
-
-The single argument form returns the value associated with the
-element C<$type>.
-
-The multiple argument form allows you to set the paths for element types.
-C<$value> must be a relative path using Unix-like paths. (A series of
-directories separated by slashes, e.g. C<foo/bar>.) The return value is a
-localized path based on C<$value>.
-
-Assigning the value C<undef> to an element causes it to be removed.
-
-=item install_destination($type)
-
-[version 0.28]
-
-Returns the directory in which items of type C<$type> (e.g. C<lib>,
-C<arch>, C<bin>, or anything else returned by the L</install_types()>
-method) will be installed during the C<install> action. Any settings
-for C<install_path>, C<install_base>, and C<prefix> are taken into
-account when determining the return value.
-
-=item install_path()
-
-=item install_path($type)
-
-=item install_path($type => $path)
-
-[version 0.28]
-
-Set or retrieve paths for specific installable elements. This is
-useful when you want to examine any explicit install paths specified
-by the user on the command line, or if you want to set the install
-path for a specific installable element based on another attribute
-like C<install_base()>.
-
-With no argument, it returns a reference to a hash containing all
-elements and their respective values. This hash should not be modified
-directly; use the multiple argument below form to change values.
-
-The single argument form returns the value associated with the
-element C<$type>.
-
-The multiple argument form allows you to set the paths for element types.
-The supplied C<$path> should be an absolute path to install elements
-of C<$type>. The return value is C<$path>.
-
-Assigning the value C<undef> to an element causes it to be removed.
-
-=item install_types()
-
-[version 0.28]
-
-Returns a list of installable types that this build knows about.
-These types each correspond to the name of a directory in F<blib/>,
-and the list usually includes items such as C<lib>, C<arch>, C<bin>,
-C<script>, C<libdoc>, C<bindoc>, and if HTML documentation is to be
-built, C<libhtml> and C<binhtml>. Other user-defined types may also
-exist.
-
-=item invoked_action()
-
-[version 0.28]
-
-This is the name of the original action invoked by the user. This
-value is set when the user invokes F<Build.PL>, the F<Build> script,
-or programmatically through the L<dispatch()|/"dispatch($action, %args)">
-method. It does not change as sub-actions are executed as
-dependencies are evaluated.
-
-To get the name of the currently executing dependency, see
-L</current_action()> above.
-
-=item notes()
-
-=item notes($key)
-
-=item notes($key => $value)
-
-[version 0.20]
-
-The C<notes()> value allows you to store your own persistent
-information about the build, and to share that information among
-different entities involved in the build. See the example in the
-C<current()> method.
-
-The C<notes()> method is essentially a glorified hash access. With no
-arguments, C<notes()> returns the entire hash of notes. With one argument,
-C<notes($key)> returns the value associated with the given key. With two
-arguments, C<notes($key, $value)> sets the value associated with the given key
-to C<$value> and returns the new value.
-
-The lifetime of the C<notes> data is for "a build" - that is, the
-C<notes> hash is created when C<perl Build.PL> is run (or when the
-C<new()> method is run, if the Module::Build Perl API is being used
-instead of called from a shell), and lasts until C<perl Build.PL> is
-run again or the C<clean> action is run.
-
-=item orig_dir()
-
-[version 0.28]
-
-Returns a string containing the working directory that was in effect
-before the F<Build> script chdir()-ed into the C<base_dir>. This
-might be useful for writing wrapper tools that might need to chdir()
-back out.
-
-=item os_type()
-
-[version 0.04]
-
-If you're subclassing Module::Build and some code needs to alter its
-behavior based on the current platform, you may only need to know
-whether you're running on Windows, Unix, MacOS, VMS, etc., and not the
-fine-grained value of Perl's C<$^O> variable. The C<os_type()> method
-will return a string like C<Windows>, C<Unix>, C<MacOS>, C<VMS>, or
-whatever is appropriate. If you're running on an unknown platform, it
-will return C<undef> - there shouldn't be many unknown platforms
-though.
-
-=item is_vmsish()
-
-=item is_windowsish()
-
-=item is_unixish()
-
-Convenience functions that return a boolean value indicating whether
-this platform behaves respectively like VMS, Windows, or Unix. For
-arbitrary reasons other platforms don't get their own such functions,
-at least not yet.
-
-
-=item prefix_relpaths()
-
-=item prefix_relpaths($installdirs)
-
-=item prefix_relpaths($installdirs, $type)
-
-=item prefix_relpaths($installdirs, $type => $path)
-
-[version 0.28]
-
-Set or retrieve the relative paths that are appended to C<prefix> for
-any installable element. This is useful if you want to set the
-relative install path for custom build elements.
-
-With no argument, it returns a reference to a hash containing all
-elements and their respective values as defined by the current
-C<installdirs> setting.
-
-With a single argument, it returns a reference to a hash containing
-all elements and their respective values as defined by
-C<$installdirs>.
-
-The hash returned by the above calls should not be modified directly;
-use the three-argument below form to change values.
-
-The two argument form returns the value associated with the
-element C<$type>.
-
-The multiple argument form allows you to set the paths for element types.
-C<$value> must be a relative path using Unix-like paths. (A series of
-directories separated by slashes, e.g. C<foo/bar>.) The return value is a
-localized path based on C<$value>.
-
-Assigning the value C<undef> to an element causes it to be removed.
-
-=item get_metadata()
-
-[version 0.36]
-
-This method returns a hash reference of metadata that can be used to create a
-YAML datastream. It is provided for authors to override or customize the fields
-of F<META.yml>. E.g.
-
- package My::Builder;
- use base 'Module::Build';
-
- sub get_metadata {
- my $self, @args = @_;
- my $data = $self->SUPER::get_metadata(@args);
- $data->{custom_field} = 'foo';
- return $data;
- }
-
-Valid arguments include:
-
-=over
-
-=item *
-
-C<fatal> -- indicates whether missing required
-metadata fields should be a fatal error or not. For META creation, it
-generally should, but for MYMETA creation for end-users, it should not be
-fatal.
-
-=item *
-
-C<auto> -- indicates whether any necessary configure_requires should be
-automatically added. This is used in META creation.
-
-=back
-
-This method is a wrapper around the old prepare_metadata API now that we
-no longer use YAML::Node to hold metadata.
-
-=item prepare_metadata() [deprecated]
-
-[version 0.36]
-
-[Deprecated] As of 0.36, authors should use C<get_metadata> instead. This
-method is preserved for backwards compatibility only.
-
-It takes three positional arguments: a hashref (to which metadata will be
-added), an optional arrayref (to which metadata keys will be added in order if
-the arrayref exists), and a hashref of arguments (as provided to get_metadata).
-The latter argument is new as of 0.36. Earlier versions are always fatal on
-errors.
-
-Prior to version 0.36, this method took a YAML::Node as an argument to hold
-assembled metadata.
-
-=item prereq_failures()
-
-[version 0.11]
-
-Returns a data structure containing information about any failed
-prerequisites (of any of the types described above), or C<undef> if
-all prerequisites are met.
-
-The data structure returned is a hash reference. The top level keys
-are the type of prerequisite failed, one of "requires",
-"build_requires", "conflicts", or "recommends". The associated values
-are hash references whose keys are the names of required (or
-conflicting) modules. The associated values of those are hash
-references indicating some information about the failure. For example:
-
- {
- have => '0.42',
- need => '0.59',
- message => 'Version 0.42 is installed, but we need version 0.59',
- }
-
-or
-
- {
- have => '<none>',
- need => '0.59',
- message => 'Prerequisite Foo isn't installed',
- }
-
-This hash has the same structure as the hash returned by the
-C<check_installed_status()> method, except that in the case of
-"conflicts" dependencies we change the "need" key to "conflicts" and
-construct a proper message.
-
-Examples:
-
- # Check a required dependency on Foo::Bar
- if ( $build->prereq_failures->{requires}{Foo::Bar} ) { ...
-
- # Check whether there were any failures
- if ( $build->prereq_failures ) { ...
-
- # Show messages for all failures
- my $failures = $build->prereq_failures;
- while (my ($type, $list) = each %$failures) {
- while (my ($name, $hash) = each %$list) {
- print "Failure for $name: $hash->{message}\n";
- }
- }
-
-=item prereq_data()
-
-[version 0.32]
-
-Returns a reference to a hash describing all prerequisites. The keys of the
-hash will be the various prerequisite types ('requires', 'build_requires',
-'test_requires', 'configure_requires', 'recommends', or 'conflicts') and the values will be
-references to hashes of module names and version numbers. Only prerequisites
-types that are defined will be included. The C<prereq_data> action is just a
-thin wrapper around the C<prereq_data()> method and dumps the hash as a string
-that can be loaded using C<eval()>.
-
-=item prereq_report()
-
-[version 0.28]
-
-Returns a human-readable (table-form) string showing all
-prerequisites, the versions required, and the versions actually
-installed. This can be useful for reviewing the configuration of your
-system prior to a build, or when compiling data to send for a bug
-report. The C<prereq_report> action is just a thin wrapper around the
-C<prereq_report()> method.
-
-=item prompt($message, $default)
-
-[version 0.12]
-
-Asks the user a question and returns their response as a string. The
-first argument specifies the message to display to the user (for
-example, C<"Where do you keep your money?">). The second argument,
-which is optional, specifies a default answer (for example,
-C<"wallet">). The user will be asked the question once.
-
-If C<prompt()> detects that it is not running interactively and there
-is nothing on STDIN or if the PERL_MM_USE_DEFAULT environment variable
-is set to true, the $default will be used without prompting.
-
-To prevent automated processes from blocking, the user must either set
-PERL_MM_USE_DEFAULT or attach something to STDIN (this can be a
-pipe/file containing a scripted set of answers or /dev/null.)
-
-If no $default is provided an empty string will be used instead. In
-non-interactive mode, the absence of $default is an error (though
-explicitly passing C<undef()> as the default is valid as of 0.27.)
-
-This method may be called as a class or object method.
-
-=item recommends()
-
-[version 0.21]
-
-Returns a hash reference indicating the C<recommends> prerequisites
-that were passed to the C<new()> method.
-
-=item requires()
-
-[version 0.21]
-
-Returns a hash reference indicating the C<requires> prerequisites that
-were passed to the C<new()> method.
-
-=item rscan_dir($dir, $pattern)
-
-[version 0.28]
-
-Uses C<File::Find> to traverse the directory C<$dir>, returning a
-reference to an array of entries matching C<$pattern>. C<$pattern>
-may either be a regular expression (using C<qr//> or just a plain
-string), or a reference to a subroutine that will return true for
-wanted entries. If C<$pattern> is not given, all entries will be
-returned.
-
-Examples:
-
- # All the *.pm files in lib/
- $m->rscan_dir('lib', qr/\.pm$/)
-
- # All the files in blib/ that aren't *.html files
- $m->rscan_dir('blib', sub {-f $_ and not /\.html$/});
-
- # All the files in t/
- $m->rscan_dir('t');
-
-=item runtime_params()
-
-=item runtime_params($key)
-
-[version 0.28]
-
-The C<runtime_params()> method stores the values passed on the command line
-for valid properties (that is, any command line options for which
-C<valid_property()> returns a true value). The value on the command line may
-override the default value for a property, as well as any value specified in a
-call to C<new()>. This allows you to programmatically tell if C<perl Build.PL>
-or any execution of C<./Build> had command line options specified that
-override valid properties.
-
-The C<runtime_params()> method is essentially a glorified read-only hash. With
-no arguments, C<runtime_params()> returns the entire hash of properties
-specified on the command line. With one argument, C<runtime_params($key)>
-returns the value associated with the given key.
-
-The lifetime of the C<runtime_params> data is for "a build" - that is, the
-C<runtime_params> hash is created when C<perl Build.PL> is run (or when the
-C<new()> method is called, if the Module::Build Perl API is being used instead
-of called from a shell), and lasts until C<perl Build.PL> is run again or the
-C<clean> action is run.
-
-=item script_files()
-
-[version 0.18]
-
-Returns a hash reference whose keys are the perl script files to be
-installed, if any. This corresponds to the C<script_files> parameter to the
-C<new()> method. With an optional argument, this parameter may be set
-dynamically.
-
-For backward compatibility, the C<scripts()> method does exactly the
-same thing as C<script_files()>. C<scripts()> is deprecated, but it
-will stay around for several versions to give people time to
-transition.
-
-=item up_to_date($source_file, $derived_file)
-
-=item up_to_date(\@source_files, \@derived_files)
-
-[version 0.20]
-
-This method can be used to compare a set of source files to a set of
-derived files. If any of the source files are newer than any of the
-derived files, it returns false. Additionally, if any of the derived
-files do not exist, it returns false. Otherwise it returns true.
-
-The arguments may be either a scalar or an array reference of file
-names.
-
-=item y_n($message, $default)
-
-[version 0.12]
-
-Asks the user a yes/no question using C<prompt()> and returns true or
-false accordingly. The user will be asked the question repeatedly
-until they give an answer that looks like "yes" or "no".
-
-The first argument specifies the message to display to the user (for
-example, C<"Shall I invest your money for you?">), and the second
-argument specifies the default answer (for example, C<"y">).
-
-Note that the default is specified as a string like C<"y"> or C<"n">,
-and the return value is a Perl boolean value like 1 or 0. I thought
-about this for a while and this seemed like the most useful way to do
-it.
-
-This method may be called as a class or object method.
-
-=back
-
-
-=head2 Autogenerated Accessors
-
-In addition to the aforementioned methods, there are also some get/set
-accessor methods for the following properties:
-
-=over 4
-
-=item PL_files()
-
-=item allow_mb_mismatch()
-
-=item allow_pureperl()
-
-=item auto_configure_requires()
-
-=item autosplit()
-
-=item base_dir()
-
-=item bindoc_dirs()
-
-=item blib()
-
-=item build_bat()
-
-=item build_class()
-
-=item build_elements()
-
-=item build_requires()
-
-=item build_script()
-
-=item bundle_inc()
-
-=item bundle_inc_preload()
-
-=item c_source()
-
-=item config_dir()
-
-=item configure_requires()
-
-=item conflicts()
-
-=item cpan_client()
-
-=item create_license()
-
-=item create_makefile_pl()
-
-=item create_packlist()
-
-=item create_readme()
-
-=item debug()
-
-=item debugger()
-
-=item destdir()
-
-=item dynamic_config()
-
-=item extra_manify_args()
-
-=item get_options()
-
-=item html_css()
-
-=item include_dirs()
-
-=item install_base()
-
-=item installdirs()
-
-=item libdoc_dirs()
-
-=item license()
-
-=item magic_number()
-
-=item mb_version()
-
-=item meta_add()
-
-=item meta_merge()
-
-=item metafile()
-
-=item metafile2()
-
-=item module_name()
-
-=item mymetafile()
-
-=item mymetafile2()
-
-=item needs_compiler()
-
-=item orig_dir()
-
-=item perl()
-
-=item pm_files()
-
-=item pod_files()
-
-=item pollute()
-
-=item prefix()
-
-=item prereq_action_types()
-
-=item program_name()
-
-=item pureperl_only()
-
-=item quiet()
-
-=item recommends()
-
-=item recurse_into()
-
-=item recursive_test_files()
-
-=item requires()
-
-=item scripts()
-
-=item sign()
-
-=item tap_harness_args()
-
-=item test_file_exts()
-
-=item test_requires()
-
-=item use_rcfile()
-
-=item use_tap_harness()
-
-=item verbose()
-
-=item xs_files()
-
-=back
-
-=head1 MODULE METADATA
-
-If you would like to add other useful metadata, C<Module::Build>
-supports this with the C<meta_add> and C<meta_merge> arguments to
-L</new()>. The authoritative list of supported metadata can be found at
-L<CPAN::Meta::Spec> but for convenience - here are a few of the more useful ones:
-
-=over 4
-
-=item keywords
-
-For describing the distribution using keyword (or "tags") in order to
-make CPAN.org indexing and search more efficient and useful.
-
-=item resources
-
-A list of additional resources available for users of the
-distribution. This can include links to a homepage on the web, a
-bug tracker, the repository location, and even a subscription page for the
-distribution mailing list.
-
-=back
-
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>
-
-
-=head1 COPYRIGHT
-
-Copyright (c) 2001-2006 Ken Williams. All rights reserved.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-
-=head1 SEE ALSO
-
-perl(1), L<Module::Build>(3), L<Module::Build::Authoring>(3),
-L<Module::Build::Cookbook>(3), L<ExtUtils::MakeMaker>(3)
-
-F<META.yml> Specification:
-L<CPAN::Meta::Spec>
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Authoring.pod b/Master/tlpkg/tlperl/lib/Module/Build/Authoring.pod
deleted file mode 100644
index a32b31e2e1e..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Authoring.pod
+++ /dev/null
@@ -1,326 +0,0 @@
-=head1 NAME
-
-Module::Build::Authoring - Authoring Module::Build modules
-
-=head1 DESCRIPTION
-
-When creating a C<Build.PL> script for a module, something like the
-following code will typically be used:
-
- use Module::Build;
- my $build = Module::Build->new
- (
- module_name => 'Foo::Bar',
- license => 'perl',
- requires => {
- 'perl' => '5.6.1',
- 'Some::Module' => '1.23',
- 'Other::Module' => '>= 1.2, != 1.5, < 2.0',
- },
- );
- $build->create_build_script;
-
-A simple module could get away with something as short as this for its
-C<Build.PL> script:
-
- use Module::Build;
- Module::Build->new(
- module_name => 'Foo::Bar',
- license => 'perl',
- )->create_build_script;
-
-The model used by C<Module::Build> is a lot like the C<MakeMaker>
-metaphor, with the following correspondences:
-
- In Module::Build In ExtUtils::MakeMaker
- --------------------------- ------------------------
- Build.PL (initial script) Makefile.PL (initial script)
- Build (a short perl script) Makefile (a long Makefile)
- _build/ (saved state info) various config text in the Makefile
-
-Any customization can be done simply by subclassing C<Module::Build>
-and adding a method called (for example) C<ACTION_test>, overriding
-the default 'test' action. You could also add a method called
-C<ACTION_whatever>, and then you could perform the action C<Build
-whatever>.
-
-For information on providing compatibility with
-C<ExtUtils::MakeMaker>, see L<Module::Build::Compat> and
-L<http://www.makemaker.org/wiki/index.cgi?ModuleBuildConversionGuide>.
-
-
-=head1 STRUCTURE
-
-Module::Build creates a class hierarchy conducive to customization.
-Here is the parent-child class hierarchy in classy ASCII art:
-
- /--------------------\
- | Your::Parent | (If you subclass Module::Build)
- \--------------------/
- |
- |
- /--------------------\ (Doesn't define any functionality
- | Module::Build | of its own - just figures out what
- \--------------------/ other modules to load.)
- |
- |
- /-----------------------------------\ (Some values of $^O may
- | Module::Build::Platform::$^O | define specialized functionality.
- \-----------------------------------/ Otherwise it's ...::Default, a
- | pass-through class.)
- |
- /--------------------------\
- | Module::Build::Base | (Most of the functionality of
- \--------------------------/ Module::Build is defined here.)
-
-
-=head1 SUBCLASSING
-
-Right now, there are two ways to subclass Module::Build. The first
-way is to create a regular module (in a C<.pm> file) that inherits
-from Module::Build, and use that module's class instead of using
-Module::Build directly:
-
- ------ in Build.PL: ----------
- #!/usr/bin/perl
-
- use lib q(/nonstandard/library/path);
- use My::Builder; # Or whatever you want to call it
-
- my $build = My::Builder->new
- (
- module_name => 'Foo::Bar', # All the regular args...
- license => 'perl',
- dist_author => 'A N Other <me@here.net.au>',
- requires => { Carp => 0 }
- );
- $build->create_build_script;
-
-This is relatively straightforward, and is the best way to do things
-if your My::Builder class contains lots of code. The
-C<create_build_script()> method will ensure that the current value of
-C<@INC> (including the C</nonstandard/library/path>) is propagated to
-the Build script, so that My::Builder can be found when running build
-actions. If you find that you need to C<chdir> into a different directories
-in your subclass methods or actions, be sure to always return to the original
-directory (available via the C<base_dir()> method) before returning control
-to the parent class. This is important to avoid data serialization problems.
-
-For very small additions, Module::Build provides a C<subclass()>
-method that lets you subclass Module::Build more conveniently, without
-creating a separate file for your module:
-
- ------ in Build.PL: ----------
- #!/usr/bin/perl
-
- use Module::Build;
- my $class = Module::Build->subclass
- (
- class => 'My::Builder',
- code => q{
- sub ACTION_foo {
- print "I'm fooing to death!\n";
- }
- },
- );
-
- my $build = $class->new
- (
- module_name => 'Foo::Bar', # All the regular args...
- license => 'perl',
- dist_author => 'A N Other <me@here.net.au>',
- requires => { Carp => 0 }
- );
- $build->create_build_script;
-
-Behind the scenes, this actually does create a C<.pm> file, since the
-code you provide must persist after Build.PL is run if it is to be
-very useful.
-
-See also the documentation for the L<Module::Build::API/"subclass()">
-method.
-
-
-=head1 PREREQUISITES
-
-=head2 Types of prerequisites
-
-To specify what versions of other modules are used by this
-distribution, several types of prerequisites can be defined with the
-following parameters:
-
-=over 3
-
-=item configure_requires
-
-Items that must be installed I<before> configuring this distribution
-(i.e. before running the F<Build.PL> script). This might be a
-specific minimum version of C<Module::Build> or any other module the
-F<Build.PL> needs in order to do its stuff. Clients like C<CPAN.pm>
-or C<CPANPLUS> will be expected to pick C<configure_requires> out of the
-F<META.yml> file and install these items before running the
-C<Build.PL>.
-
-If no configure_requires is specified, the current version of Module::Build
-is automatically added to configure_requires.
-
-=item build_requires
-
-Items that are necessary for building and testing this distribution,
-but aren't necessary after installation. This can help users who only
-want to install these items temporarily. It also helps reduce the
-size of the CPAN dependency graph if everything isn't smooshed into
-C<requires>.
-
-=item requires
-
-Items that are necessary for basic functioning.
-
-=item recommends
-
-Items that are recommended for enhanced functionality, but there are
-ways to use this distribution without having them installed. You
-might also think of this as "can use" or "is aware of" or "changes
-behavior in the presence of".
-
-=item test_requires
-
-Items that are necessary for testing.
-
-=item conflicts
-
-Items that can cause problems with this distribution when installed.
-This is pretty rare.
-
-=back
-
-=head2 Format of prerequisites
-
-The prerequisites are given in a hash reference, where the keys are
-the module names and the values are version specifiers:
-
- requires => {
- Foo::Module => '2.4',
- Bar::Module => 0,
- Ken::Module => '>= 1.2, != 1.5, < 2.0',
- perl => '5.6.0'
- },
-
-The above four version specifiers have different effects. The value
-C<'2.4'> means that B<at least> version 2.4 of C<Foo::Module> must be
-installed. The value C<0> means that B<any> version of C<Bar::Module>
-is acceptable, even if C<Bar::Module> doesn't define a version. The
-more verbose value C<'E<gt>= 1.2, != 1.5, E<lt> 2.0'> means that
-C<Ken::Module>'s version must be B<at least> 1.2, B<less than> 2.0,
-and B<not equal to> 1.5. The list of criteria is separated by commas,
-and all criteria must be satisfied.
-
-A special C<perl> entry lets you specify the versions of the Perl
-interpreter that are supported by your module. The same version
-dependency-checking semantics are available, except that we also
-understand perl's new double-dotted version numbers.
-
-=head2 XS Extensions
-
-Modules which need to compile XS code should list C<ExtUtils::CBuilder>
-as a C<build_requires> element.
-
-
-=head1 SAVING CONFIGURATION INFORMATION
-
-Module::Build provides a very convenient way to save configuration
-information that your installed modules (or your regression tests) can
-access. If your Build process calls the C<feature()> or
-C<config_data()> methods, then a C<Foo::Bar::ConfigData> module will
-automatically be created for you, where C<Foo::Bar> is the
-C<module_name> parameter as passed to C<new()>. This module provides
-access to the data saved by these methods, and a way to update the
-values. There is also a utility script called C<config_data>
-distributed with Module::Build that provides a command line interface
-to this same functionality. See also the generated
-C<Foo::Bar::ConfigData> documentation, and the C<config_data>
-script's documentation, for more information.
-
-
-=head1 STARTING MODULE DEVELOPMENT
-
-When starting development on a new module, it's rarely worth your time
-to create a tree of all the files by hand. Some automatic
-module-creators are available: the oldest is C<h2xs>, which has
-shipped with perl itself for a long time. Its name reflects the fact
-that modules were originally conceived of as a way to wrap up a C
-library (thus the C<h> part) into perl extensions (thus the C<xs>
-part).
-
-These days, C<h2xs> has largely been superseded by modules like
-C<ExtUtils::ModuleMaker>, and C<Module::Starter>. They have varying
-degrees of support for C<Module::Build>.
-
-
-=head1 AUTOMATION
-
-One advantage of Module::Build is that since it's implemented as Perl
-methods, you can invoke these methods directly if you want to install
-a module non-interactively. For instance, the following Perl script
-will invoke the entire build/install procedure:
-
- my $build = Module::Build->new(module_name => 'MyModule');
- $build->dispatch('build');
- $build->dispatch('test');
- $build->dispatch('install');
-
-If any of these steps encounters an error, it will throw a fatal
-exception.
-
-You can also pass arguments as part of the build process:
-
- my $build = Module::Build->new(module_name => 'MyModule');
- $build->dispatch('build');
- $build->dispatch('test', verbose => 1);
- $build->dispatch('install', sitelib => '/my/secret/place/');
-
-Building and installing modules in this way skips creating the
-C<Build> script.
-
-
-=head1 MIGRATION
-
-Note that if you want to provide both a F<Makefile.PL> and a
-F<Build.PL> for your distribution, you probably want to add the
-following to C<WriteMakefile> in your F<Makefile.PL> so that C<MakeMaker>
-doesn't try to run your F<Build.PL> as a normal F<.PL> file:
-
- PL_FILES => {},
-
-You may also be interested in looking at the C<Module::Build::Compat>
-module, which can automatically create various kinds of F<Makefile.PL>
-compatibility layers.
-
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>
-
-Development questions, bug reports, and patches should be sent to the
-Module-Build mailing list at <module-build@perl.org>.
-
-Bug reports are also welcome at
-<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Build>.
-
-The latest development version is available from the Git
-repository at <https://github.com/Perl-Toolchain-Gang/Module-Build>
-
-
-=head1 SEE ALSO
-
-perl(1), L<Module::Build>(3), L<Module::Build::API>(3),
-L<Module::Build::Cookbook>(3), L<ExtUtils::MakeMaker>(3), L<YAML>(3)
-
-F<META.yml> Specification:
-L<CPAN::Meta::Spec>
-
-L<http://www.dsmit.com/cons/>
-
-L<http://search.cpan.org/dist/PerlBuildSystem/>
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Base.pm b/Master/tlpkg/tlperl/lib/Module/Build/Base.pm
deleted file mode 100644
index 84e137fb4f2..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Base.pm
+++ /dev/null
@@ -1,5737 +0,0 @@
-# -*- mode: cperl; tab-width: 8; indent-tabs-mode: nil; basic-offset: 2 -*-
-# vim:ts=8:sw=2:et:sta:sts=2
-package Module::Build::Base;
-
-use strict;
-use vars qw($VERSION);
-use warnings;
-
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-BEGIN { require 5.006001 }
-
-use Carp;
-use Cwd ();
-use File::Copy ();
-use File::Find ();
-use File::Path ();
-use File::Basename ();
-use File::Spec 0.82 ();
-use File::Compare ();
-use Module::Build::Dumper ();
-use Text::ParseWords ();
-
-use Module::Build::ModuleInfo;
-use Module::Build::Notes;
-use Module::Build::Config;
-use Module::Build::Version;
-
-
-#################### Constructors ###########################
-sub new {
- my $self = shift()->_construct(@_);
-
- $self->{invoked_action} = $self->{action} ||= 'Build_PL';
- $self->cull_args(@ARGV);
-
- die "Too early to specify a build action '$self->{action}'. Do 'Build $self->{action}' instead.\n"
- if $self->{action} && $self->{action} ne 'Build_PL';
-
- $self->check_manifest;
- $self->auto_require;
-
- # All checks must run regardless if one fails, so no short circuiting!
- if( grep { !$_ } $self->check_prereq, $self->check_autofeatures ) {
- $self->log_warn(<<EOF);
-
-ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the versions
-of the modules indicated above before proceeding with this installation
-
-EOF
- unless (
- $self->dist_name eq 'Module-Build' ||
- $ENV{PERL5_CPANPLUS_IS_RUNNING} || $ENV{PERL5_CPAN_IS_RUNNING}
- ) {
- $self->log_warn(
- "Run 'Build installdeps' to install missing prerequisites.\n\n"
- );
- }
- }
-
- # record for later use in resume;
- $self->{properties}{_added_to_INC} = [ $self->_added_to_INC ];
-
- $self->set_bundle_inc;
-
- $self->dist_name;
- $self->dist_version;
- $self->release_status;
- $self->_guess_module_name unless $self->module_name;
-
- $self->_find_nested_builds;
-
- return $self;
-}
-
-sub resume {
- my $package = shift;
- my $self = $package->_construct(@_);
- $self->read_config;
-
- my @added_earlier = @{ $self->{properties}{_added_to_INC} || [] };
-
- @INC = ($self->_added_to_INC, @added_earlier, $self->_default_INC);
-
- # If someone called Module::Build->current() or
- # Module::Build->new_from_context() and the correct class to use is
- # actually a *subclass* of Module::Build, we may need to load that
- # subclass here and re-delegate the resume() method to it.
- unless ( UNIVERSAL::isa($package, $self->build_class) ) {
- my $build_class = $self->build_class;
- my $config_dir = $self->config_dir || '_build';
- my $build_lib = File::Spec->catdir( $config_dir, 'lib' );
- unshift( @INC, $build_lib );
- unless ( $build_class->can('new') ) {
- eval "require $build_class; 1" or die "Failed to re-load '$build_class': $@";
- }
- return $build_class->resume(@_);
- }
-
- unless ($self->_perl_is_same($self->{properties}{perl})) {
- my $perl = $self->find_perl_interpreter;
- die(<<"DIEFATAL");
-* FATAL ERROR: Perl interpreter mismatch. Configuration was initially
- created with '$self->{properties}{perl}'
- but we are now using '$perl'. You must
- run 'Build realclean' or 'make realclean' and re-configure.
-DIEFATAL
- }
-
- $self->cull_args(@ARGV);
-
- unless ($self->allow_mb_mismatch) {
- my $mb_version = $Module::Build::VERSION;
- if ( $mb_version ne $self->{properties}{mb_version} ) {
- $self->log_warn(<<"MISMATCH");
-* WARNING: Configuration was initially created with Module::Build
- version '$self->{properties}{mb_version}' but we are now using version '$mb_version'.
- If errors occur, you must re-run the Build.PL or Makefile.PL script.
-MISMATCH
- }
- }
-
- $self->{invoked_action} = $self->{action} ||= 'build';
-
- return $self;
-}
-
-sub new_from_context {
- my ($package, %args) = @_;
-
- $package->run_perl_script('Build.PL',[],[$package->unparse_args(\%args)]);
- return $package->resume;
-}
-
-sub current {
- # hmm, wonder what the right thing to do here is
- local @ARGV;
- return shift()->resume;
-}
-
-sub _construct {
- my ($package, %input) = @_;
-
- my $args = delete $input{args} || {};
- my $config = delete $input{config} || {};
-
- my $self = bless {
- args => {%$args},
- config => Module::Build::Config->new(values => $config),
- properties => {
- base_dir => $package->cwd,
- mb_version => $Module::Build::VERSION,
- %input,
- },
- phash => {},
- stash => {}, # temporary caching, not stored in _build
- }, $package;
-
- $self->_set_defaults;
- my ($p, $ph) = ($self->{properties}, $self->{phash});
-
- foreach (qw(notes config_data features runtime_params cleanup auto_features)) {
- my $file = File::Spec->catfile($self->config_dir, $_);
- $ph->{$_} = Module::Build::Notes->new(file => $file);
- $ph->{$_}->restore if -e $file;
- if (exists $p->{$_}) {
- my $vals = delete $p->{$_};
- while (my ($k, $v) = each %$vals) {
- $self->$_($k, $v);
- }
- }
- }
-
- # The following warning could be unnecessary if the user is running
- # an embedded perl, but there aren't too many of those around, and
- # embedded perls aren't usually used to install modules, and the
- # installation process sometimes needs to run external scripts
- # (e.g. to run tests).
- $p->{perl} = $self->find_perl_interpreter
- or $self->log_warn("Warning: Can't locate your perl binary");
-
- my $blibdir = sub { File::Spec->catdir($p->{blib}, @_) };
- $p->{bindoc_dirs} ||= [ $blibdir->("script") ];
- $p->{libdoc_dirs} ||= [ $blibdir->("lib"), $blibdir->("arch") ];
-
- $p->{dist_author} = [ $p->{dist_author} ] if defined $p->{dist_author} and not ref $p->{dist_author};
-
- # Synonyms
- $p->{requires} = delete $p->{prereq} if defined $p->{prereq};
- $p->{script_files} = delete $p->{scripts} if defined $p->{scripts};
-
- # Convert to from shell strings to arrays
- for ('extra_compiler_flags', 'extra_linker_flags') {
- $p->{$_} = [ $self->split_like_shell($p->{$_}) ] if exists $p->{$_};
- }
-
- # Convert to arrays
- for ('include_dirs') {
- $p->{$_} = [ $p->{$_} ] if exists $p->{$_} && !ref $p->{$_}
- }
-
- $self->add_to_cleanup( @{delete $p->{add_to_cleanup}} )
- if $p->{add_to_cleanup};
-
- return $self;
-}
-
-################## End constructors #########################
-
-sub log_info {
- my $self = shift;
- print @_ if ref($self) && ( $self->verbose || ! $self->quiet );
-}
-sub log_verbose {
- my $self = shift;
- print @_ if ref($self) && $self->verbose;
-}
-sub log_debug {
- my $self = shift;
- print @_ if ref($self) && $self->debug;
-}
-
-sub log_warn {
- # Try to make our call stack invisible
- shift;
- if (@_ and $_[-1] !~ /\n$/) {
- my (undef, $file, $line) = caller();
- warn @_, " at $file line $line.\n";
- } else {
- warn @_;
- }
-}
-
-
-# install paths must be generated when requested to be sure all changes
-# to config (from various sources) are included
-sub _default_install_paths {
- my $self = shift;
- my $c = $self->{config};
- my $p = {};
-
- my @libstyle = $c->get('installstyle') ?
- File::Spec->splitdir($c->get('installstyle')) : qw(lib perl5);
- my $arch = $c->get('archname');
- my $version = $c->get('version');
-
- my $bindoc = $c->get('installman1dir') || undef;
- my $libdoc = $c->get('installman3dir') || undef;
-
- my $binhtml = $c->get('installhtml1dir') || $c->get('installhtmldir') || undef;
- my $libhtml = $c->get('installhtml3dir') || $c->get('installhtmldir') || undef;
-
- $p->{install_sets} =
- {
- core => {
- lib => $c->get('installprivlib'),
- arch => $c->get('installarchlib'),
- bin => $c->get('installbin'),
- script => $c->get('installscript'),
- bindoc => $bindoc,
- libdoc => $libdoc,
- binhtml => $binhtml,
- libhtml => $libhtml,
- },
- site => {
- lib => $c->get('installsitelib'),
- arch => $c->get('installsitearch'),
- bin => $c->get('installsitebin') || $c->get('installbin'),
- script => $c->get('installsitescript') ||
- $c->get('installsitebin') || $c->get('installscript'),
- bindoc => $c->get('installsiteman1dir') || $bindoc,
- libdoc => $c->get('installsiteman3dir') || $libdoc,
- binhtml => $c->get('installsitehtml1dir') || $binhtml,
- libhtml => $c->get('installsitehtml3dir') || $libhtml,
- },
- vendor => {
- lib => $c->get('installvendorlib'),
- arch => $c->get('installvendorarch'),
- bin => $c->get('installvendorbin') || $c->get('installbin'),
- script => $c->get('installvendorscript') ||
- $c->get('installvendorbin') || $c->get('installscript'),
- bindoc => $c->get('installvendorman1dir') || $bindoc,
- libdoc => $c->get('installvendorman3dir') || $libdoc,
- binhtml => $c->get('installvendorhtml1dir') || $binhtml,
- libhtml => $c->get('installvendorhtml3dir') || $libhtml,
- },
- };
-
- $p->{original_prefix} =
- {
- core => $c->get('installprefixexp') || $c->get('installprefix') ||
- $c->get('prefixexp') || $c->get('prefix') || '',
- site => $c->get('siteprefixexp'),
- vendor => $c->get('usevendorprefix') ? $c->get('vendorprefixexp') : '',
- };
- $p->{original_prefix}{site} ||= $p->{original_prefix}{core};
-
- # Note: you might be tempted to use $Config{installstyle} here
- # instead of hard-coding lib/perl5, but that's been considered and
- # (at least for now) rejected. `perldoc Config` has some wisdom
- # about it.
- $p->{install_base_relpaths} =
- {
- lib => ['lib', 'perl5'],
- arch => ['lib', 'perl5', $arch],
- bin => ['bin'],
- script => ['bin'],
- bindoc => ['man', 'man1'],
- libdoc => ['man', 'man3'],
- binhtml => ['html'],
- libhtml => ['html'],
- };
-
- $p->{prefix_relpaths} =
- {
- core => {
- lib => [@libstyle],
- arch => [@libstyle, $version, $arch],
- bin => ['bin'],
- script => ['bin'],
- bindoc => ['man', 'man1'],
- libdoc => ['man', 'man3'],
- binhtml => ['html'],
- libhtml => ['html'],
- },
- vendor => {
- lib => [@libstyle],
- arch => [@libstyle, $version, $arch],
- bin => ['bin'],
- script => ['bin'],
- bindoc => ['man', 'man1'],
- libdoc => ['man', 'man3'],
- binhtml => ['html'],
- libhtml => ['html'],
- },
- site => {
- lib => [@libstyle, 'site_perl'],
- arch => [@libstyle, 'site_perl', $version, $arch],
- bin => ['bin'],
- script => ['bin'],
- bindoc => ['man', 'man1'],
- libdoc => ['man', 'man3'],
- binhtml => ['html'],
- libhtml => ['html'],
- },
- };
- return $p
-}
-
-sub _find_nested_builds {
- my $self = shift;
- my $r = $self->recurse_into or return;
-
- my ($file, @r);
- if (!ref($r) && $r eq 'auto') {
- local *DH;
- opendir DH, $self->base_dir
- or die "Can't scan directory " . $self->base_dir . " for nested builds: $!";
- while (defined($file = readdir DH)) {
- my $subdir = File::Spec->catdir( $self->base_dir, $file );
- next unless -d $subdir;
- push @r, $subdir if -e File::Spec->catfile( $subdir, 'Build.PL' );
- }
- }
-
- $self->recurse_into(\@r);
-}
-
-sub cwd {
- return Cwd::cwd();
-}
-
-sub _quote_args {
- # Returns a string that can become [part of] a command line with
- # proper quoting so that the subprocess sees this same list of args.
- my ($self, @args) = @_;
-
- my @quoted;
-
- for (@args) {
- if ( /^[^\s*?!\$<>;\\|'"\[\]\{\}]+$/ ) {
- # Looks pretty safe
- push @quoted, $_;
- } else {
- # XXX this will obviously have to improve - is there already a
- # core module lying around that does proper quoting?
- s/('+)/'"$1"'/g;
- push @quoted, qq('$_');
- }
- }
-
- return join " ", @quoted;
-}
-
-sub _backticks {
- my ($self, @cmd) = @_;
- if ($self->have_forkpipe) {
- local *FH;
- my $pid = open *FH, "-|";
- if ($pid) {
- return wantarray ? <FH> : join '', <FH>;
- } else {
- die "Can't execute @cmd: $!\n" unless defined $pid;
- exec { $cmd[0] } @cmd;
- }
- } else {
- my $cmd = $self->_quote_args(@cmd);
- return `$cmd`;
- }
-}
-
-# Tells us whether the construct open($fh, '-|', @command) is
-# supported. It would probably be better to dynamically sense this.
-sub have_forkpipe { 1 }
-
-# Determine whether a given binary is the same as the perl
-# (configuration) that started this process.
-sub _perl_is_same {
- my ($self, $perl) = @_;
-
- my @cmd = ($perl);
-
- # When run from the perl core, @INC will include the directories
- # where perl is yet to be installed. We need to reference the
- # absolute path within the source distribution where it can find
- # it's Config.pm This also prevents us from picking up a Config.pm
- # from a different configuration that happens to be already
- # installed in @INC.
- if ($ENV{PERL_CORE}) {
- push @cmd, '-I' . File::Spec->catdir(File::Basename::dirname($perl), 'lib');
- }
-
- push @cmd, qw(-MConfig=myconfig -e print -e myconfig);
- return $self->_backticks(@cmd) eq Config->myconfig;
-}
-
-# cache _discover_perl_interpreter() results
-{
- my $known_perl;
- sub find_perl_interpreter {
- my $self = shift;
-
- return $known_perl if defined($known_perl);
- return $known_perl = $self->_discover_perl_interpreter;
- }
-}
-
-# Returns the absolute path of the perl interpreter used to invoke
-# this process. The path is derived from $^X or $Config{perlpath}. On
-# some platforms $^X contains the complete absolute path of the
-# interpreter, on other it may contain a relative path, or simply
-# 'perl'. This can also vary depending on whether a path was supplied
-# when perl was invoked. Additionally, the value in $^X may omit the
-# executable extension on platforms that use one. It's a fatal error
-# if the interpreter can't be found because it can result in undefined
-# behavior by routines that depend on it (generating errors or
-# invoking the wrong perl.)
-sub _discover_perl_interpreter {
- my $proto = shift;
- my $c = ref($proto) ? $proto->{config} : 'Module::Build::Config';
-
- my $perl = $^X;
- my $perl_basename = File::Basename::basename($perl);
-
- my @potential_perls;
-
- # Try 1, Check $^X for absolute path
- push( @potential_perls, $perl )
- if File::Spec->file_name_is_absolute($perl);
-
- # Try 2, Check $^X for a valid relative path
- my $abs_perl = File::Spec->rel2abs($perl);
- push( @potential_perls, $abs_perl );
-
- # Try 3, Last ditch effort: These two option use hackery to try to locate
- # a suitable perl. The hack varies depending on whether we are running
- # from an installed perl or an uninstalled perl in the perl source dist.
- if ($ENV{PERL_CORE}) {
-
- # Try 3.A, If we are in a perl source tree, running an uninstalled
- # perl, we can keep moving up the directory tree until we find our
- # binary. We wouldn't do this under any other circumstances.
-
- # CBuilder is also in the core, so it should be available here
- require ExtUtils::CBuilder;
- my $perl_src = Cwd::realpath( ExtUtils::CBuilder->perl_src );
- if ( defined($perl_src) && length($perl_src) ) {
- my $uninstperl =
- File::Spec->rel2abs(File::Spec->catfile( $perl_src, $perl_basename ));
- push( @potential_perls, $uninstperl );
- }
-
- } else {
-
- # Try 3.B, First look in $Config{perlpath}, then search the user's
- # PATH. We do not want to do either if we are running from an
- # uninstalled perl in a perl source tree.
-
- push( @potential_perls, $c->get('perlpath') );
-
- push( @potential_perls,
- map File::Spec->catfile($_, $perl_basename), File::Spec->path() );
- }
-
- # Now that we've enumerated the potential perls, it's time to test
- # them to see if any of them match our configuration, returning the
- # absolute path of the first successful match.
- my $exe = $c->get('exe_ext');
- foreach my $thisperl ( @potential_perls ) {
-
- if (defined $exe) {
- $thisperl .= $exe unless $thisperl =~ m/$exe$/i;
- }
-
- if ( -f $thisperl && $proto->_perl_is_same($thisperl) ) {
- return $thisperl;
- }
- }
-
- # We've tried all alternatives, and didn't find a perl that matches
- # our configuration. Throw an exception, and list alternatives we tried.
- my @paths = map File::Basename::dirname($_), @potential_perls;
- die "Can't locate the perl binary used to run this script " .
- "in (@paths)\n";
-}
-
-# Adapted from IPC::Cmd::can_run()
-sub find_command {
- my ($self, $command) = @_;
-
- if( File::Spec->file_name_is_absolute($command) ) {
- return $self->_maybe_command($command);
-
- } else {
- for my $dir ( File::Spec->path ) {
- my $abs = File::Spec->catfile($dir, $command);
- return $abs if $abs = $self->_maybe_command($abs);
- }
- }
-}
-
-# Copied from ExtUtils::MM_Unix::maybe_command
-sub _maybe_command {
- my($self,$file) = @_;
- return $file if -x $file && ! -d $file;
- return;
-}
-
-sub _is_interactive {
- return -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT)) ; # Pipe?
-}
-
-# NOTE this is a blocking operation if(-t STDIN)
-sub _is_unattended {
- my $self = shift;
- return $ENV{PERL_MM_USE_DEFAULT} ||
- ( !$self->_is_interactive && eof STDIN );
-}
-
-sub _readline {
- my $self = shift;
- return undef if $self->_is_unattended;
-
- my $answer = <STDIN>;
- chomp $answer if defined $answer;
- return $answer;
-}
-
-sub prompt {
- my $self = shift;
- my $mess = shift
- or die "prompt() called without a prompt message";
-
- # use a list to distinguish a default of undef() from no default
- my @def;
- @def = (shift) if @_;
- # use dispdef for output
- my @dispdef = scalar(@def) ?
- ('[', (defined($def[0]) ? $def[0] . ' ' : ''), ']') :
- (' ', '');
-
- local $|=1;
- print "$mess ", @dispdef;
-
- if ( $self->_is_unattended && !@def ) {
- die <<EOF;
-ERROR: This build seems to be unattended, but there is no default value
-for this question. Aborting.
-EOF
- }
-
- my $ans = $self->_readline();
-
- if ( !defined($ans) # Ctrl-D or unattended
- or !length($ans) ) { # User hit return
- print "$dispdef[1]\n";
- $ans = scalar(@def) ? $def[0] : '';
- }
-
- return $ans;
-}
-
-sub y_n {
- my $self = shift;
- my ($mess, $def) = @_;
-
- die "y_n() called without a prompt message" unless $mess;
- die "Invalid default value: y_n() default must be 'y' or 'n'"
- if $def && $def !~ /^[yn]/i;
-
- my $answer;
- while (1) { # XXX Infinite or a large number followed by an exception ?
- $answer = $self->prompt(@_);
- return 1 if $answer =~ /^y/i;
- return 0 if $answer =~ /^n/i;
- local $|=1;
- print "Please answer 'y' or 'n'.\n";
- }
-}
-
-sub current_action { shift->{action} }
-sub invoked_action { shift->{invoked_action} }
-
-sub notes { shift()->{phash}{notes}->access(@_) }
-sub config_data { shift()->{phash}{config_data}->access(@_) }
-sub runtime_params { shift->{phash}{runtime_params}->read( @_ ? shift : () ) } # Read-only
-sub auto_features { shift()->{phash}{auto_features}->access(@_) }
-
-sub features {
- my $self = shift;
- my $ph = $self->{phash};
-
- if (@_) {
- my $key = shift;
- if ($ph->{features}->exists($key)) {
- return $ph->{features}->access($key, @_);
- }
-
- if (my $info = $ph->{auto_features}->access($key)) {
- my $disabled;
- for my $type ( @{$self->prereq_action_types} ) {
- next if $type eq 'description' || $type eq 'recommends' || ! exists $info->{$type};
- my $prereqs = $info->{$type};
- for my $modname ( sort keys %$prereqs ) {
- my $spec = $prereqs->{$modname};
- my $status = $self->check_installed_status($modname, $spec);
- if ((!$status->{ok}) xor ($type =~ /conflicts$/)) { return 0; }
- if ( ! eval "require $modname; 1" ) { return 0; }
- }
- }
- return 1;
- }
-
- return $ph->{features}->access($key, @_);
- }
-
- # No args - get the auto_features & overlay the regular features
- my %features;
- my %auto_features = $ph->{auto_features}->access();
- while (my ($name, $info) = each %auto_features) {
- my $failures = $self->prereq_failures($info);
- my $disabled = grep( /^(?:\w+_)?(?:requires|conflicts)$/,
- keys %$failures ) ? 1 : 0;
- $features{$name} = $disabled ? 0 : 1;
- }
- %features = (%features, $ph->{features}->access());
-
- return wantarray ? %features : \%features;
-}
-BEGIN { *feature = \&features } # Alias
-
-sub _mb_feature {
- my $self = shift;
-
- if (($self->module_name || '') eq 'Module::Build') {
- # We're building Module::Build itself, so ...::ConfigData isn't
- # valid, but $self->features() should be.
- return $self->feature(@_);
- } else {
- require Module::Build::ConfigData;
- return Module::Build::ConfigData->feature(@_);
- }
-}
-
-sub _warn_mb_feature_deps {
- my $self = shift;
- my $name = shift;
- $self->log_warn(
- "The '$name' feature is not available. Please install missing\n" .
- "feature dependencies and try again.\n".
- $self->_feature_deps_msg($name) . "\n"
- );
-}
-
-sub add_build_element {
- my ($self, $elem) = @_;
- my $elems = $self->build_elements;
- push @$elems, $elem unless grep { $_ eq $elem } @$elems;
-}
-
-sub ACTION_config_data {
- my $self = shift;
- return unless $self->has_config_data;
-
- my $module_name = $self->module_name
- or die "The config_data feature requires that 'module_name' be set";
- my $notes_name = $module_name . '::ConfigData'; # TODO: Customize name ???
- my $notes_pm = File::Spec->catfile($self->blib, 'lib', split /::/, "$notes_name.pm");
-
- return if $self->up_to_date(['Build.PL',
- $self->config_file('config_data'),
- $self->config_file('features')
- ], $notes_pm);
-
- $self->log_verbose("Writing config notes to $notes_pm\n");
- File::Path::mkpath(File::Basename::dirname($notes_pm));
-
- Module::Build::Notes->write_config_data
- (
- file => $notes_pm,
- module => $module_name,
- config_module => $notes_name,
- config_data => scalar $self->config_data,
- feature => scalar $self->{phash}{features}->access(),
- auto_features => scalar $self->auto_features,
- );
-}
-
-########################################################################
-{ # enclosing these lexicals -- TODO
- my %valid_properties = ( __PACKAGE__, {} );
- my %additive_properties;
-
- sub _mb_classes {
- my $class = ref($_[0]) || $_[0];
- return ($class, $class->mb_parents);
- }
-
- sub valid_property {
- my ($class, $prop) = @_;
- return grep exists( $valid_properties{$_}{$prop} ), $class->_mb_classes;
- }
-
- sub valid_properties {
- return keys %{ shift->valid_properties_defaults() };
- }
-
- sub valid_properties_defaults {
- my %out;
- for my $class (reverse shift->_mb_classes) {
- @out{ keys %{ $valid_properties{$class} } } = map {
- $_->()
- } values %{ $valid_properties{$class} };
- }
- return \%out;
- }
-
- sub array_properties {
- map { exists $additive_properties{$_}->{ARRAY} ? @{$additive_properties{$_}->{ARRAY}} : () } shift->_mb_classes;
- }
-
- sub hash_properties {
- map { exists $additive_properties{$_}->{HASH} ? @{$additive_properties{$_}->{HASH}} : () } shift->_mb_classes;
- }
-
- sub add_property {
- my ($class, $property) = (shift, shift);
- die "Property '$property' already exists"
- if $class->valid_property($property);
- my %p = @_ == 1 ? ( default => shift ) : @_;
-
- my $type = ref $p{default};
- $valid_properties{$class}{$property} =
- $type eq 'CODE' ? $p{default} :
- $type eq 'HASH' ? sub { return { %{ $p{default} } } } :
- $type eq 'ARRAY'? sub { return [ @{ $p{default} } ] } :
- sub { return $p{default} } ;
-
- push @{$additive_properties{$class}->{$type}}, $property
- if $type;
-
- unless ($class->can($property)) {
- # TODO probably should put these in a util package
- my $sub = $type eq 'HASH'
- ? _make_hash_accessor($property, \%p)
- : _make_accessor($property, \%p);
- no strict 'refs';
- *{"$class\::$property"} = $sub;
- }
-
- return $class;
- }
-
- sub property_error {
- my $self = shift;
- die 'ERROR: ', @_;
- }
-
- sub _set_defaults {
- my $self = shift;
-
- # Set the build class.
- $self->{properties}{build_class} ||= ref $self;
-
- # If there was no orig_dir, set to the same as base_dir
- $self->{properties}{orig_dir} ||= $self->{properties}{base_dir};
-
- my $defaults = $self->valid_properties_defaults;
-
- foreach my $prop (keys %$defaults) {
- $self->{properties}{$prop} = $defaults->{$prop}
- unless exists $self->{properties}{$prop};
- }
-
- # Copy defaults for arrays any arrays.
- for my $prop ($self->array_properties) {
- $self->{properties}{$prop} = [@{$defaults->{$prop}}]
- unless exists $self->{properties}{$prop};
- }
- # Copy defaults for arrays any hashes.
- for my $prop ($self->hash_properties) {
- $self->{properties}{$prop} = {%{$defaults->{$prop}}}
- unless exists $self->{properties}{$prop};
- }
- }
-
-} # end enclosure
-########################################################################
-sub _make_hash_accessor {
- my ($property, $p) = @_;
- my $check = $p->{check} || sub { 1 };
-
- return sub {
- my $self = shift;
-
- # This is only here to deprecate the historic accident of calling
- # properties as class methods - I suspect it only happens in our
- # test suite.
- unless(ref($self)) {
- carp("\n$property not a class method (@_)");
- return;
- }
-
- my $x = $self->{properties};
- return $x->{$property} unless @_;
-
- my $prop = $x->{$property};
- if ( defined $_[0] && !ref $_[0] ) {
- if ( @_ == 1 ) {
- return exists $prop->{$_[0]} ? $prop->{$_[0]} : undef;
- } elsif ( @_ % 2 == 0 ) {
- my %new = (%{ $prop }, @_);
- local $_ = \%new;
- $x->{$property} = \%new if $check->($self);
- return $x->{$property};
- } else {
- die "Unexpected arguments for property '$property'\n";
- }
- } else {
- die "Unexpected arguments for property '$property'\n"
- if defined $_[0] && ref $_[0] ne 'HASH';
- local $_ = $_[0];
- $x->{$property} = shift if $check->($self);
- }
- };
-}
-########################################################################
-sub _make_accessor {
- my ($property, $p) = @_;
- my $check = $p->{check} || sub { 1 };
-
- return sub {
- my $self = shift;
-
- # This is only here to deprecate the historic accident of calling
- # properties as class methods - I suspect it only happens in our
- # test suite.
- unless(ref($self)) {
- carp("\n$property not a class method (@_)");
- return;
- }
-
- my $x = $self->{properties};
- return $x->{$property} unless @_;
- local $_ = $_[0];
- $x->{$property} = shift if $check->($self);
- return $x->{$property};
- };
-}
-########################################################################
-
-# Add the default properties.
-__PACKAGE__->add_property(auto_configure_requires => 1);
-__PACKAGE__->add_property(blib => 'blib');
-__PACKAGE__->add_property(build_class => 'Module::Build');
-__PACKAGE__->add_property(build_elements => [qw(PL support pm xs share_dir pod script)]);
-__PACKAGE__->add_property(build_script => 'Build');
-__PACKAGE__->add_property(build_bat => 0);
-__PACKAGE__->add_property(bundle_inc => []);
-__PACKAGE__->add_property(bundle_inc_preload => []);
-__PACKAGE__->add_property(config_dir => '_build');
-__PACKAGE__->add_property(dynamic_config => 1);
-__PACKAGE__->add_property(include_dirs => []);
-__PACKAGE__->add_property(license => 'unknown');
-__PACKAGE__->add_property(metafile => 'META.yml');
-__PACKAGE__->add_property(mymetafile => 'MYMETA.yml');
-__PACKAGE__->add_property(metafile2 => 'META.json');
-__PACKAGE__->add_property(mymetafile2 => 'MYMETA.json');
-__PACKAGE__->add_property(recurse_into => []);
-__PACKAGE__->add_property(use_rcfile => 1);
-__PACKAGE__->add_property(create_packlist => 1);
-__PACKAGE__->add_property(allow_mb_mismatch => 0);
-__PACKAGE__->add_property(config => undef);
-__PACKAGE__->add_property(test_file_exts => ['.t']);
-__PACKAGE__->add_property(use_tap_harness => 0);
-__PACKAGE__->add_property(cpan_client => 'cpan');
-__PACKAGE__->add_property(tap_harness_args => {});
-__PACKAGE__->add_property(pureperl_only => 0);
-__PACKAGE__->add_property(allow_pureperl => 0);
-__PACKAGE__->add_property(
- 'installdirs',
- default => 'site',
- check => sub {
- return 1 if /^(core|site|vendor)$/;
- return shift->property_error(
- $_ eq 'perl'
- ? 'Perhaps you meant installdirs to be "core" rather than "perl"?'
- : 'installdirs must be one of "core", "site", or "vendor"'
- );
- return shift->property_error("Perhaps you meant 'core'?") if $_ eq 'perl';
- return 0;
- },
-);
-
-{
- __PACKAGE__->add_property(html_css => '');
-}
-
-{
- my @prereq_action_types = qw(requires build_requires test_requires conflicts recommends);
- foreach my $type (@prereq_action_types) {
- __PACKAGE__->add_property($type => {});
- }
- __PACKAGE__->add_property(prereq_action_types => \@prereq_action_types);
-}
-
-__PACKAGE__->add_property($_ => {}) for qw(
- get_options
- install_base_relpaths
- install_path
- install_sets
- meta_add
- meta_merge
- original_prefix
- prefix_relpaths
- configure_requires
-);
-
-__PACKAGE__->add_property($_) for qw(
- PL_files
- autosplit
- base_dir
- bindoc_dirs
- c_source
- create_license
- create_makefile_pl
- create_readme
- debugger
- destdir
- dist_abstract
- dist_author
- dist_name
- dist_suffix
- dist_version
- dist_version_from
- extra_compiler_flags
- extra_linker_flags
- has_config_data
- install_base
- libdoc_dirs
- magic_number
- mb_version
- module_name
- needs_compiler
- orig_dir
- perl
- pm_files
- pod_files
- pollute
- prefix
- program_name
- quiet
- recursive_test_files
- release_status
- script_files
- scripts
- share_dir
- sign
- test_files
- verbose
- debug
- xs_files
- extra_manify_args
-);
-
-sub config {
- my $self = shift;
- my $c = ref($self) ? $self->{config} : 'Module::Build::Config';
- return $c->all_config unless @_;
-
- my $key = shift;
- return $c->get($key) unless @_;
-
- my $val = shift;
- return $c->set($key => $val);
-}
-
-sub mb_parents {
- # Code borrowed from Class::ISA.
- my @in_stack = (shift);
- my %seen = ($in_stack[0] => 1);
-
- my ($current, @out);
- while (@in_stack) {
- next unless defined($current = shift @in_stack)
- && $current->isa('Module::Build::Base');
- push @out, $current;
- next if $current eq 'Module::Build::Base';
- no strict 'refs';
- unshift @in_stack,
- map {
- my $c = $_; # copy, to avoid being destructive
- substr($c,0,2) = "main::" if substr($c,0,2) eq '::';
- # Canonize the :: -> main::, ::foo -> main::foo thing.
- # Should I ever canonize the Foo'Bar = Foo::Bar thing?
- $seen{$c}++ ? () : $c;
- } @{"$current\::ISA"};
-
- # I.e., if this class has any parents (at least, ones I've never seen
- # before), push them, in order, onto the stack of classes I need to
- # explore.
- }
- shift @out;
- return @out;
-}
-
-sub extra_linker_flags { shift->_list_accessor('extra_linker_flags', @_) }
-sub extra_compiler_flags { shift->_list_accessor('extra_compiler_flags', @_) }
-
-sub _list_accessor {
- (my $self, local $_) = (shift, shift);
- my $p = $self->{properties};
- $p->{$_} = [@_] if @_;
- $p->{$_} = [] unless exists $p->{$_};
- return ref($p->{$_}) ? $p->{$_} : [$p->{$_}];
-}
-
-# XXX Problem - if Module::Build is loaded from a different directory,
-# it'll look for (and perhaps destroy/create) a _build directory.
-sub subclass {
- my ($pack, %opts) = @_;
-
- my $build_dir = '_build'; # XXX The _build directory is ostensibly settable by the user. Shouldn't hard-code here.
- $pack->delete_filetree($build_dir) if -e $build_dir;
-
- die "Must provide 'code' or 'class' option to subclass()\n"
- unless $opts{code} or $opts{class};
-
- $opts{code} ||= '';
- $opts{class} ||= 'MyModuleBuilder';
-
- my $filename = File::Spec->catfile($build_dir, 'lib', split '::', $opts{class}) . '.pm';
- my $filedir = File::Basename::dirname($filename);
- $pack->log_verbose("Creating custom builder $filename in $filedir\n");
-
- File::Path::mkpath($filedir);
- die "Can't create directory $filedir: $!" unless -d $filedir;
-
- open(my $fh, '>', $filename) or die "Can't create $filename: $!";
- print $fh <<EOF;
-package $opts{class};
-use $pack;
-\@ISA = qw($pack);
-$opts{code}
-1;
-EOF
- close $fh;
-
- unshift @INC, File::Spec->catdir(File::Spec->rel2abs($build_dir), 'lib');
- eval "use $opts{class}";
- die $@ if $@;
-
- return $opts{class};
-}
-
-sub _guess_module_name {
- my $self = shift;
- my $p = $self->{properties};
- return if $p->{module_name};
- if ( $p->{dist_version_from} && -e $p->{dist_version_from} ) {
- my $mi = Module::Build::ModuleInfo->new_from_file($self->dist_version_from);
- $p->{module_name} = $mi->name;
- }
- else {
- my $mod_path = my $mod_name = $p->{dist_name};
- $mod_name =~ s{-}{::}g;
- $mod_path =~ s{-}{/}g;
- $mod_path .= ".pm";
- if ( -e $mod_path || -e "lib/$mod_path" ) {
- $p->{module_name} = $mod_name;
- }
- else {
- $self->log_warn( << 'END_WARN' );
-No 'module_name' was provided and it could not be inferred
-from other properties. This will prevent a packlist from
-being written for this file. Please set either 'module_name'
-or 'dist_version_from' in Build.PL.
-END_WARN
- }
- }
-}
-
-sub dist_name {
- my $self = shift;
- my $p = $self->{properties};
- my $me = 'dist_name';
- return $p->{$me} if defined $p->{$me};
-
- die "Can't determine distribution name, must supply either 'dist_name' or 'module_name' parameter"
- unless $self->module_name;
-
- ($p->{$me} = $self->module_name) =~ s/::/-/g;
-
- return $p->{$me};
-}
-
-sub release_status {
- my ($self) = @_;
- my $me = 'release_status';
- my $p = $self->{properties};
-
- if ( ! defined $p->{$me} ) {
- $p->{$me} = $self->_is_dev_version ? 'testing' : 'stable';
- }
-
- unless ( $p->{$me} =~ qr/\A(?:stable|testing|unstable)\z/ ) {
- die "Illegal value '$p->{$me}' for $me\n";
- }
-
- if ( $p->{$me} eq 'stable' && $self->_is_dev_version ) {
- my $version = $self->dist_version;
- die "Illegal value '$p->{$me}' with version '$version'\n";
- }
- return $p->{$me};
-}
-
-sub dist_suffix {
- my ($self) = @_;
- my $p = $self->{properties};
- my $me = 'dist_suffix';
-
- return $p->{$me} if defined $p->{$me};
-
- if ( $self->release_status eq 'stable' ) {
- $p->{$me} = "";
- }
- else {
- # non-stable release but non-dev version number needs '-TRIAL' appended
- $p->{$me} = $self->_is_dev_version ? "" : "TRIAL" ;
- }
-
- return $p->{$me};
-}
-
-sub dist_version_from {
- my ($self) = @_;
- my $p = $self->{properties};
- my $me = 'dist_version_from';
-
- if ($self->module_name) {
- $p->{$me} ||=
- join( '/', 'lib', split(/::/, $self->module_name) ) . '.pm';
- }
- return $p->{$me} || undef;
-}
-
-sub dist_version {
- my ($self) = @_;
- my $p = $self->{properties};
- my $me = 'dist_version';
-
- return $p->{$me} if defined $p->{$me};
-
- if ( my $dist_version_from = $self->dist_version_from ) {
- my $version_from = File::Spec->catfile( split( qr{/}, $dist_version_from ) );
- my $pm_info = Module::Build::ModuleInfo->new_from_file( $version_from )
- or die "Can't find file $version_from to determine version";
- #$p->{$me} is undef here
- $p->{$me} = $self->normalize_version( $pm_info->version() );
- unless (defined $p->{$me}) {
- die "Can't determine distribution version from $version_from";
- }
- }
-
- die ("Can't determine distribution version, must supply either 'dist_version',\n".
- "'dist_version_from', or 'module_name' parameter")
- unless defined $p->{$me};
-
- return $p->{$me};
-}
-
-sub _is_dev_version {
- my ($self) = @_;
- my $dist_version = $self->dist_version;
- my $version_obj = eval { Module::Build::Version->new( $dist_version ) };
- # assume it's normal if the version string is fatal -- in this case
- # the author might be doing something weird so should play along and
- # assume they'll specify all necessary behavior
- return $@ ? 0 : $version_obj->is_alpha;
-}
-
-sub dist_author { shift->_pod_parse('author') }
-sub dist_abstract { shift->_pod_parse('abstract') }
-
-sub _pod_parse {
- my ($self, $part) = @_;
- my $p = $self->{properties};
- my $member = "dist_$part";
- return $p->{$member} if defined $p->{$member};
-
- my $docfile = $self->_main_docfile
- or return;
- open(my $fh, '<', $docfile)
- or return;
-
- require Module::Build::PodParser;
- my $parser = Module::Build::PodParser->new(fh => $fh);
- my $method = "get_$part";
- return $p->{$member} = $parser->$method();
-}
-
-sub version_from_file { # Method provided for backwards compatibility
- return Module::Build::ModuleInfo->new_from_file($_[1])->version();
-}
-
-sub find_module_by_name { # Method provided for backwards compatibility
- return Module::Build::ModuleInfo->find_module_by_name(@_[1,2]);
-}
-
-{
- # $unlink_list_for_pid{$$} = [ ... ]
- my %unlink_list_for_pid;
-
- sub _unlink_on_exit {
- my $self = shift;
- for my $f ( @_ ) {
- push @{$unlink_list_for_pid{$$}}, $f if -f $f;
- }
- return 1;
- }
-
- END {
- for my $f ( map glob($_), @{ $unlink_list_for_pid{$$} || [] } ) {
- next unless -e $f;
- File::Path::rmtree($f, 0, 0);
- }
- }
-}
-
-sub add_to_cleanup {
- my $self = shift;
- my %files = map {$self->localize_file_path($_), 1} @_;
- $self->{phash}{cleanup}->write(\%files);
-}
-
-sub cleanup {
- my $self = shift;
- my $all = $self->{phash}{cleanup}->read;
- return keys %$all;
-}
-
-sub config_file {
- my $self = shift;
- return unless -d $self->config_dir;
- return File::Spec->catfile($self->config_dir, @_);
-}
-
-sub read_config {
- my ($self) = @_;
-
- my $file = $self->config_file('build_params')
- or die "Can't find 'build_params' in " . $self->config_dir;
- open(my $fh, '<', $file) or die "Can't read '$file': $!";
- my $ref = eval do {local $/; <$fh>};
- die if $@;
- close $fh;
- my $c;
- ($self->{args}, $c, $self->{properties}) = @$ref;
- $self->{config} = Module::Build::Config->new(values => $c);
-}
-
-sub has_config_data {
- my $self = shift;
- return scalar grep $self->{phash}{$_}->has_data(), qw(config_data features auto_features);
-}
-
-sub _write_data {
- my ($self, $filename, $data) = @_;
-
- my $file = $self->config_file($filename);
- open(my $fh, '>', $file) or die "Can't create '$file': $!";
- unless (ref($data)) { # e.g. magicnum
- print $fh $data;
- return;
- }
-
- print {$fh} Module::Build::Dumper->_data_dump($data);
- close $fh;
-}
-
-sub write_config {
- my ($self) = @_;
-
- File::Path::mkpath($self->{properties}{config_dir});
- -d $self->{properties}{config_dir} or die "Can't mkdir $self->{properties}{config_dir}: $!";
-
- my @items = @{ $self->prereq_action_types };
- $self->_write_data('prereqs', { map { $_, $self->$_() } @items });
- $self->_write_data('build_params', [$self->{args}, $self->{config}->values_set, $self->{properties}]);
-
- # Set a new magic number and write it to a file
- $self->_write_data('magicnum', $self->magic_number(int rand 1_000_000));
-
- $self->{phash}{$_}->write() foreach qw(notes cleanup features auto_features config_data runtime_params);
-}
-
-{
- # packfile map -- keys are guts of regular expressions; If they match,
- # values are module names corresponding to the packlist
- my %packlist_map = (
- '^File::Spec' => 'Cwd',
- '^Devel::AssertOS' => 'Devel::CheckOS',
- );
-
- sub _find_packlist {
- my ($self, $inst, $mod) = @_;
- my $lookup = $mod;
- my $packlist = eval { $inst->packlist($lookup) };
- if ( ! $packlist ) {
- # try from packlist_map
- while ( my ($re, $new_mod) = each %packlist_map ) {
- if ( $mod =~ qr/$re/ ) {
- $lookup = $new_mod;
- $packlist = eval { $inst->packlist($lookup) };
- last;
- }
- }
- }
- return $packlist ? $lookup : undef;
- }
-
- sub set_bundle_inc {
- my $self = shift;
-
- my $bundle_inc = $self->{properties}{bundle_inc};
- my $bundle_inc_preload = $self->{properties}{bundle_inc_preload};
- # We're in author mode if inc::latest is loaded, but not from cwd
- return unless inc::latest->can('loaded_modules');
- require ExtUtils::Installed;
- # ExtUtils::Installed is buggy about finding additions to default @INC
- my $inst = eval { ExtUtils::Installed->new(extra_libs => [@INC]) };
- if ($@) {
- $self->log_warn( << "EUI_ERROR" );
-Bundling in inc/ is disabled because ExtUtils::Installed could not
-create a list of your installed modules. Here is the error:
-$@
-EUI_ERROR
- return;
- }
- my @bundle_list = map { [ $_, 0 ] } inc::latest->loaded_modules;
-
- # XXX TODO: Need to get ordering of prerequisites correct so they are
- # are loaded in the right order. Use an actual tree?!
-
- while( @bundle_list ) {
- my ($mod, $prereq) = @{ shift @bundle_list };
-
- # XXX TODO: Append prereqs to list
- # skip if core or already in bundle or preload lists
- # push @bundle_list, [$_, 1] for prereqs()
-
- # Locate packlist for bundling
- my $lookup = $self->_find_packlist($inst,$mod);
- if ( ! $lookup ) {
- # XXX Really needs a more helpful error message here
- die << "NO_PACKLIST";
-Could not find a packlist for '$mod'. If it's a core module, try
-force installing it from CPAN.
-NO_PACKLIST
- }
- else {
- push @{ $prereq ? $bundle_inc_preload : $bundle_inc }, $lookup;
- }
- }
- } # sub check_bundling
-}
-
-sub check_autofeatures {
- my ($self) = @_;
- my $features = $self->auto_features;
-
- return 1 unless %$features;
-
- # TODO refactor into ::Util
- my $longest = sub {
- my @str = @_ or croak("no strings given");
-
- my @len = map({length($_)} @str);
- my $max = 0;
- my $longest;
- for my $i (0..$#len) {
- ($max, $longest) = ($len[$i], $str[$i]) if($len[$i] > $max);
- }
- return($longest);
- };
- my $max_name_len = length($longest->(keys %$features));
-
- my ($num_disabled, $log_text) = (0, "\nChecking optional features...\n");
- for my $name ( sort keys %$features ) {
- $log_text .= $self->_feature_deps_msg($name, $max_name_len);
- }
-
- $num_disabled = () = $log_text =~ /disabled/g;
-
- # warn user if features disabled
- if ( $num_disabled ) {
- $self->log_warn( $log_text );
- return 0;
- }
- else {
- $self->log_verbose( $log_text );
- return 1;
- }
-}
-
-sub _feature_deps_msg {
- my ($self, $name, $max_name_len) = @_;
- $max_name_len ||= length $name;
- my $features = $self->auto_features;
- my $info = $features->{$name};
- my $feature_text = "$name" . '.' x ($max_name_len - length($name) + 4);
-
- my ($log_text, $disabled) = ('','');
- if ( my $failures = $self->prereq_failures($info) ) {
- $disabled = grep( /^(?:\w+_)?(?:requires|conflicts)$/,
- keys %$failures ) ? 1 : 0;
- $feature_text .= $disabled ? "disabled\n" : "enabled\n";
-
- for my $type ( @{ $self->prereq_action_types } ) {
- next unless exists $failures->{$type};
- $feature_text .= " $type:\n";
- my $prereqs = $failures->{$type};
- for my $module ( sort keys %$prereqs ) {
- my $status = $prereqs->{$module};
- my $required =
- ($type =~ /^(?:\w+_)?(?:requires|conflicts)$/) ? 1 : 0;
- my $prefix = ($required) ? '!' : '*';
- $feature_text .= " $prefix $status->{message}\n";
- }
- }
- } else {
- $feature_text .= "enabled\n";
- }
- $log_text .= $feature_text if $disabled || $self->verbose;
- return $log_text;
-}
-
-# Automatically detect configure_requires prereqs
-sub auto_config_requires {
- my ($self) = @_;
- my $p = $self->{properties};
-
- # add current Module::Build to configure_requires if there
- # isn't one already specified (but not ourself, so we're not circular)
- if ( $self->dist_name ne 'Module-Build'
- && $self->auto_configure_requires
- && ! exists $p->{configure_requires}{'Module::Build'}
- ) {
- (my $ver = $VERSION) =~ s/^(\d+\.\d\d).*$/$1/; # last major release only
- $self->log_warn(<<EOM);
-Module::Build was not found in configure_requires! Adding it now
-automatically as: configure_requires => { 'Module::Build' => $ver }
-EOM
- $self->_add_prereq('configure_requires', 'Module::Build', $ver);
- }
-
- # if we're in author mode, add inc::latest modules to
- # configure_requires if not already set. If we're not in author mode
- # then configure_requires will have been satisfied, or we'll just
- # live with what we've bundled
- if ( inc::latest->can('loaded_module') ) {
- for my $mod ( inc::latest->loaded_modules ) {
- next if exists $p->{configure_requires}{$mod};
- $self->_add_prereq('configure_requires', $mod, $mod->VERSION);
- }
- }
-
- return;
-}
-
-# Automatically detect and add prerequisites based on configuration
-sub auto_require {
- my ($self) = @_;
- my $p = $self->{properties};
-
- # If needs_compiler is not explicitly set, automatically set it
- # If set, we need ExtUtils::CBuilder (and a compiler)
- my $xs_files = $self->find_xs_files;
- if ( ! defined $p->{needs_compiler} ) {
- $self->needs_compiler( keys %$xs_files || defined $self->c_source );
- }
- if ($self->needs_compiler) {
- $self->_add_prereq('build_requires', 'ExtUtils::CBuilder', 0);
- if ( ! $self->have_c_compiler ) {
- $self->log_warn(<<'EOM');
-Warning: ExtUtils::CBuilder not installed or no compiler detected
-Proceeding with configuration, but compilation may fail during Build
-
-EOM
- }
- }
-
- # If using share_dir, require File::ShareDir
- if ( $self->share_dir ) {
- $self->_add_prereq( 'requires', 'File::ShareDir', '1.00' );
- }
-
- return;
-}
-
-sub _add_prereq {
- my ($self, $type, $module, $version) = @_;
- my $p = $self->{properties};
- $version = 0 unless defined $version;
- if ( exists $p->{$type}{$module} ) {
- return if $self->compare_versions( $version, '<=', $p->{$type}{$module} );
- }
- $self->log_verbose("Adding to $type\: $module => $version\n");
- $p->{$type}{$module} = $version;
- return 1;
-}
-
-sub prereq_failures {
- my ($self, $info) = @_;
-
- my @types = @{ $self->prereq_action_types };
- $info ||= {map {$_, $self->$_()} @types};
-
- my $out;
-
- foreach my $type (@types) {
- my $prereqs = $info->{$type};
- for my $modname ( keys %$prereqs ) {
- my $spec = $prereqs->{$modname};
- my $status = $self->check_installed_status($modname, $spec);
-
- if ($type =~ /^(?:\w+_)?conflicts$/) {
- next if !$status->{ok};
- $status->{conflicts} = delete $status->{need};
- $status->{message} = "$modname ($status->{have}) conflicts with this distribution";
-
- } elsif ($type =~ /^(?:\w+_)?recommends$/) {
- next if $status->{ok};
- $status->{message} = (!ref($status->{have}) && $status->{have} eq '<none>'
- ? "$modname is not installed"
- : "$modname ($status->{have}) is installed, but we prefer to have $spec");
- } else {
- next if $status->{ok};
- }
-
- $out->{$type}{$modname} = $status;
- }
- }
-
- return $out;
-}
-
-# returns a hash of defined prerequisites; i.e. only prereq types with values
-sub _enum_prereqs {
- my $self = shift;
- my %prereqs;
- foreach my $type ( @{ $self->prereq_action_types } ) {
- if ( $self->can( $type ) ) {
- my $prereq = $self->$type() || {};
- $prereqs{$type} = $prereq if %$prereq;
- }
- }
- return \%prereqs;
-}
-
-sub check_prereq {
- my $self = shift;
-
- # Check to see if there are any prereqs to check
- my $info = $self->_enum_prereqs;
- return 1 unless $info;
-
- my $log_text = "Checking prerequisites...\n";
-
- my $failures = $self->prereq_failures($info);
-
- if ( $failures ) {
- $self->log_warn($log_text);
- for my $type ( @{ $self->prereq_action_types } ) {
- my $prereqs = $failures->{$type};
- $self->log_warn(" ${type}:\n") if keys %$prereqs;
- for my $module ( sort keys %$prereqs ) {
- my $status = $prereqs->{$module};
- my $prefix = ($type =~ /^(?:\w+_)?recommends$/) ? "* " : "! ";
- $self->log_warn(" $prefix $status->{message}\n");
- }
- }
- return 0;
- } else {
- $self->log_verbose($log_text . "Looks good\n\n");
- return 1;
- }
-}
-
-sub perl_version {
- my ($self) = @_;
- # Check the current perl interpreter
- # It's much more convenient to use $] here than $^V, but 'man
- # perlvar' says I'm not supposed to. Bloody tyrant.
- return $^V ? $self->perl_version_to_float(sprintf "%vd", $^V) : $];
-}
-
-sub perl_version_to_float {
- my ($self, $version) = @_;
- return $version if grep( /\./, $version ) < 2;
- $version =~ s/\./../;
- $version =~ s/\.(\d+)/sprintf '%03d', $1/eg;
- return $version;
-}
-
-sub _parse_conditions {
- my ($self, $spec) = @_;
-
- return ">= 0" if not defined $spec;
- if ($spec =~ /^\s*([\w.]+)\s*$/) { # A plain number, maybe with dots, letters, and underscores
- return (">= $spec");
- } else {
- return split /\s*,\s*/, $spec;
- }
-}
-
-sub try_require {
- my ($self, $modname, $spec) = @_;
- my $status = $self->check_installed_status($modname, defined($spec) ? $spec : 0);
- return unless $status->{ok};
- my $path = $modname;
- $path =~ s{::}{/}g;
- $path .= ".pm";
- if ( defined $INC{$path} ) {
- return 1;
- }
- elsif ( exists $INC{$path} ) { # failed before, don't try again
- return;
- }
- else {
- return eval "require $modname";
- }
-}
-
-sub check_installed_status {
- my ($self, $modname, $spec) = @_;
- my %status = (need => $spec);
-
- if ($modname eq 'perl') {
- $status{have} = $self->perl_version;
-
- } elsif (eval { no strict; $status{have} = ${"${modname}::VERSION"} }) {
- # Don't try to load if it's already loaded
-
- } else {
- my $pm_info = Module::Build::ModuleInfo->new_from_module( $modname );
- unless (defined( $pm_info )) {
- @status{ qw(have message) } = ('<none>', "$modname is not installed");
- return \%status;
- }
-
- $status{have} = eval { $pm_info->version() };
- if ($spec and !defined($status{have})) {
- @status{ qw(have message) } = (undef, "Couldn't find a \$VERSION in prerequisite $modname");
- return \%status;
- }
- }
-
- my @conditions = $self->_parse_conditions($spec);
-
- foreach (@conditions) {
- my ($op, $version) = /^\s* (<=?|>=?|==|!=) \s* ([\w.]+) \s*$/x
- or die "Invalid prerequisite condition '$_' for $modname";
-
- $version = $self->perl_version_to_float($version)
- if $modname eq 'perl';
-
- next if $op eq '>=' and !$version; # Module doesn't have to actually define a $VERSION
-
- unless ($self->compare_versions( $status{have}, $op, $version )) {
- $status{message} = "$modname ($status{have}) is installed, but we need version $op $version";
- return \%status;
- }
- }
-
- $status{ok} = 1;
- return \%status;
-}
-
-sub compare_versions {
- my $self = shift;
- my ($v1, $op, $v2) = @_;
- $v1 = Module::Build::Version->new($v1)
- unless UNIVERSAL::isa($v1,'Module::Build::Version');
-
- my $eval_str = "\$v1 $op \$v2";
- my $result = eval $eval_str;
- $self->log_warn("error comparing versions: '$eval_str' $@") if $@;
-
- return $result;
-}
-
-# I wish I could set $! to a string, but I can't, so I use $@
-sub check_installed_version {
- my ($self, $modname, $spec) = @_;
-
- my $status = $self->check_installed_status($modname, $spec);
-
- if ($status->{ok}) {
- return $status->{have} if $status->{have} and "$status->{have}" ne '<none>';
- return '0 but true';
- }
-
- $@ = $status->{message};
- return 0;
-}
-
-sub make_executable {
- # Perl's chmod() is mapped to useful things on various non-Unix
- # platforms, so we use it in the base class even though it looks
- # Unixish.
-
- my $self = shift;
- foreach (@_) {
- my $current_mode = (stat $_)[2];
- chmod $current_mode | oct(111), $_;
- }
-}
-
-sub is_executable {
- # We assume this does the right thing on generic platforms, though
- # we do some other more specific stuff on Unixish platforms.
- my ($self, $file) = @_;
- return -x $file;
-}
-
-sub _startperl { shift()->config('startperl') }
-
-# Return any directories in @INC which are not in the default @INC for
-# this perl. For example, stuff passed in with -I or loaded with "use lib".
-sub _added_to_INC {
- my $self = shift;
-
- my %seen;
- $seen{$_}++ foreach $self->_default_INC;
- return grep !$seen{$_}++, @INC;
-}
-
-# Determine the default @INC for this Perl
-{
- my @default_inc; # Memoize
- sub _default_INC {
- my $self = shift;
- return @default_inc if @default_inc;
-
- local $ENV{PERL5LIB}; # this is not considered part of the default.
-
- my $perl = ref($self) ? $self->perl : $self->find_perl_interpreter;
-
- my @inc = $self->_backticks($perl, '-le', 'print for @INC');
- chomp @inc;
-
- return @default_inc = @inc;
- }
-}
-
-sub print_build_script {
- my ($self, $fh) = @_;
-
- my $build_package = $self->build_class;
-
- my $closedata="";
-
- my $config_requires;
- if ( -f $self->metafile ) {
- my $meta = eval { $self->read_metafile( $self->metafile ) };
- $config_requires = $meta && $meta->{configure_requires}{'Module::Build'};
- }
- $config_requires ||= 0;
-
- my %q = map {$_, $self->$_()} qw(config_dir base_dir);
-
- $q{base_dir} = Win32::GetShortPathName($q{base_dir}) if $self->is_windowsish;
-
- $q{magic_numfile} = $self->config_file('magicnum');
-
- my @myINC = $self->_added_to_INC;
- for (@myINC, values %q) {
- $_ = File::Spec->canonpath( $_ ) unless $self->is_vmsish;
- s/([\\\'])/\\$1/g;
- }
-
- my $quoted_INC = join ",\n", map " '$_'", @myINC;
- my $shebang = $self->_startperl;
- my $magic_number = $self->magic_number;
-
- print $fh <<EOF;
-$shebang
-
-use strict;
-use Cwd;
-use File::Basename;
-use File::Spec;
-
-sub magic_number_matches {
- return 0 unless -e '$q{magic_numfile}';
- my \$FH;
- open \$FH, '<','$q{magic_numfile}' or return 0;
- my \$filenum = <\$FH>;
- close \$FH;
- return \$filenum == $magic_number;
-}
-
-my \$progname;
-my \$orig_dir;
-BEGIN {
- \$^W = 1; # Use warnings
- \$progname = basename(\$0);
- \$orig_dir = Cwd::cwd();
- my \$base_dir = '$q{base_dir}';
- if (!magic_number_matches()) {
- unless (chdir(\$base_dir)) {
- die ("Couldn't chdir(\$base_dir), aborting\\n");
- }
- unless (magic_number_matches()) {
- die ("Configuration seems to be out of date, please re-run 'perl Build.PL' again.\\n");
- }
- }
- unshift \@INC,
- (
-$quoted_INC
- );
-}
-
-close(*DATA) unless eof(*DATA); # ensure no open handles to this script
-
-use $build_package;
-Module::Build->VERSION(q{$config_requires});
-
-# Some platforms have problems setting \$^X in shebang contexts, fix it up here
-\$^X = Module::Build->find_perl_interpreter;
-
-if (-e 'Build.PL' and not $build_package->up_to_date('Build.PL', \$progname)) {
- warn "Warning: Build.PL has been altered. You may need to run 'perl Build.PL' again.\\n";
-}
-
-# This should have just enough arguments to be able to bootstrap the rest.
-my \$build = $build_package->resume (
- properties => {
- config_dir => '$q{config_dir}',
- orig_dir => \$orig_dir,
- },
-);
-
-\$build->dispatch;
-EOF
-}
-
-sub create_mymeta {
- my ($self) = @_;
-
- my ($meta_obj, $mymeta);
- my @metafiles = ( $self->metafile2, $self->metafile, );
- my @mymetafiles = ( $self->mymetafile2, $self->mymetafile, );
-
- # cleanup old MYMETA
- for my $f ( @mymetafiles ) {
- if ( $self->delete_filetree($f) ) {
- $self->log_verbose("Removed previous '$f'\n");
- }
- }
-
- # Try loading META.json or META.yml
- if ( $self->try_require("CPAN::Meta", "2.110420") ) {
- for my $file ( @metafiles ) {
- next unless -f $file;
- $meta_obj = eval { CPAN::Meta->load_file($file, { lazy_validation => 0 }) };
- last if $meta_obj;
- }
- }
-
- # maybe get a copy in spec v2 format (regardless of original source)
-
- my $mymeta_obj;
- if ($meta_obj) {
- # if we have metadata, just update it
- my %updated = (
- %{ $meta_obj->as_struct({ version => 2.0 }) },
- prereqs => $self->_normalize_prereqs,
- dynamic_config => 0,
- generated_by => "Module::Build version $Module::Build::VERSION",
- );
- $mymeta_obj = CPAN::Meta->new( \%updated, { lazy_validation => 0 } );
- }
- else {
- $mymeta_obj = $self->_get_meta_object(quiet => 0, dynamic => 0, fatal => 1, auto => 0);
- }
-
- my @created = $self->_write_meta_files( $mymeta_obj, 'MYMETA' );
-
- $self->log_warn("Could not create MYMETA files\n")
- unless @created;
-
- return 1;
-}
-
-sub create_build_script {
- my ($self) = @_;
-
- $self->write_config;
- $self->create_mymeta;
-
- # Create Build
- my ($build_script, $dist_name, $dist_version)
- = map $self->$_(), qw(build_script dist_name dist_version);
-
- if ( $self->delete_filetree($build_script) ) {
- $self->log_verbose("Removed previous script '$build_script'\n");
- }
-
- $self->log_info("Creating new '$build_script' script for ",
- "'$dist_name' version '$dist_version'\n");
- open(my $fh, '>', $build_script) or die "Can't create '$build_script': $!";
- $self->print_build_script($fh);
- close $fh;
-
- $self->make_executable($build_script);
-
- return 1;
-}
-
-sub check_manifest {
- my $self = shift;
- return unless -e 'MANIFEST';
-
- # Stolen nearly verbatim from MakeMaker. But ExtUtils::Manifest
- # could easily be re-written into a modern Perl dialect.
-
- require ExtUtils::Manifest; # ExtUtils::Manifest is not warnings clean.
- local ($^W, $ExtUtils::Manifest::Quiet) = (0,1);
-
- $self->log_verbose("Checking whether your kit is complete...\n");
- if (my @missed = ExtUtils::Manifest::manicheck()) {
- $self->log_warn("WARNING: the following files are missing in your kit:\n",
- "\t", join("\n\t", @missed), "\n",
- "Please inform the author.\n\n");
- } else {
- $self->log_verbose("Looks good\n\n");
- }
-}
-
-sub dispatch {
- my $self = shift;
- local $self->{_completed_actions} = {};
-
- if (@_) {
- my ($action, %p) = @_;
- my $args = $p{args} ? delete($p{args}) : {};
-
- local $self->{invoked_action} = $action;
- local $self->{args} = {%{$self->{args}}, %$args};
- local $self->{properties} = {%{$self->{properties}}, %p};
- return $self->_call_action($action);
- }
-
- die "No build action specified" unless $self->{action};
- local $self->{invoked_action} = $self->{action};
- $self->_call_action($self->{action});
-}
-
-sub _call_action {
- my ($self, $action) = @_;
-
- return if $self->{_completed_actions}{$action}++;
-
- local $self->{action} = $action;
- my $method = $self->can_action( $action );
- die "No action '$action' defined, try running the 'help' action.\n" unless $method;
- $self->log_debug("Starting ACTION_$action\n");
- my $rc = $self->$method();
- $self->log_debug("Finished ACTION_$action\n");
- return $rc;
-}
-
-sub can_action {
- my ($self, $action) = @_;
- return $self->can( "ACTION_$action" );
-}
-
-# cuts the user-specified options out of the command-line args
-sub cull_options {
- my $self = shift;
- my (@argv) = @_;
-
- # XXX is it even valid to call this as a class method?
- return({}, @argv) unless(ref($self)); # no object
-
- my $specs = $self->get_options;
- return({}, @argv) unless($specs and %$specs); # no user options
-
- require Getopt::Long;
- # XXX Should we let Getopt::Long handle M::B's options? That would
- # be easy-ish to add to @specs right here, but wouldn't handle options
- # passed without "--" as M::B currently allows. We might be able to
- # get around this by setting the "prefix_pattern" Configure option.
- my @specs;
- my $args = {};
- # Construct the specifications for GetOptions.
- while (my ($k, $v) = each %$specs) {
- # Throw an error if specs conflict with our own.
- die "Option specification '$k' conflicts with a " . ref $self
- . " option of the same name"
- if $self->valid_property($k);
- push @specs, $k . (defined $v->{type} ? $v->{type} : '');
- push @specs, $v->{store} if exists $v->{store};
- $args->{$k} = $v->{default} if exists $v->{default};
- }
-
- local @ARGV = @argv; # No other way to dupe Getopt::Long
-
- # Get the options values and return them.
- # XXX Add option to allow users to set options?
- if ( @specs ) {
- Getopt::Long::Configure('pass_through');
- Getopt::Long::GetOptions($args, @specs);
- }
-
- return $args, @ARGV;
-}
-
-sub unparse_args {
- my ($self, $args) = @_;
- my @out;
- while (my ($k, $v) = each %$args) {
- push @out, (UNIVERSAL::isa($v, 'HASH') ? map {+"--$k", "$_=$v->{$_}"} keys %$v :
- UNIVERSAL::isa($v, 'ARRAY') ? map {+"--$k", $_} @$v :
- ("--$k", $v));
- }
- return @out;
-}
-
-sub args {
- my $self = shift;
- return wantarray ? %{ $self->{args} } : $self->{args} unless @_;
- my $key = shift;
- $self->{args}{$key} = shift if @_;
- return $self->{args}{$key};
-}
-
-# allows select parameters (with underscores) to be spoken with dashes
-# when used as command-line options
-sub _translate_option {
- my $self = shift;
- my $opt = shift;
-
- (my $tr_opt = $opt) =~ tr/-/_/;
-
- return $tr_opt if grep $tr_opt =~ /^(?:no_?)?$_$/, qw(
- create_license
- create_makefile_pl
- create_readme
- extra_compiler_flags
- extra_linker_flags
- install_base
- install_path
- meta_add
- meta_merge
- test_files
- use_rcfile
- use_tap_harness
- tap_harness_args
- cpan_client
- pureperl_only
- allow_pureperl
- ); # normalize only selected option names
-
- return $opt;
-}
-
-my %singular_argument = map { ($_ => 1) } qw/install_base prefix destdir installdir verbose quiet uninst debug sign/;
-
-sub _read_arg {
- my ($self, $args, $key, $val) = @_;
-
- $key = $self->_translate_option($key);
-
- if ( exists $args->{$key} and not $singular_argument{$key} ) {
- $args->{$key} = [ $args->{$key} ] unless ref $args->{$key};
- push @{$args->{$key}}, $val;
- } else {
- $args->{$key} = $val;
- }
-}
-
-# decide whether or not an option requires/has an operand
-sub _optional_arg {
- my $self = shift;
- my $opt = shift;
- my $argv = shift;
-
- $opt = $self->_translate_option($opt);
-
- my @bool_opts = qw(
- build_bat
- create_license
- create_readme
- pollute
- quiet
- uninst
- use_rcfile
- verbose
- debug
- sign
- use_tap_harness
- pureperl_only
- allow_pureperl
- );
-
- # inverted boolean options; eg --noverbose or --no-verbose
- # converted to proper name & returned with false value (verbose, 0)
- if ( grep $opt =~ /^no[-_]?$_$/, @bool_opts ) {
- $opt =~ s/^no-?//;
- return ($opt, 0);
- }
-
- # non-boolean option; return option unchanged along with its argument
- return ($opt, shift(@$argv)) unless grep $_ eq $opt, @bool_opts;
-
- # we're punting a bit here, if an option appears followed by a digit
- # we take the digit as the argument for the option. If there is
- # nothing that looks like a digit, we pretend the option is a flag
- # that is being set and has no argument.
- my $arg = 1;
- $arg = shift(@$argv) if @$argv && $argv->[0] =~ /^\d+$/;
-
- return ($opt, $arg);
-}
-
-sub read_args {
- my $self = shift;
-
- (my $args, @_) = $self->cull_options(@_);
- my %args = %$args;
-
- my $opt_re = qr/[\w\-]+/;
-
- my ($action, @argv);
- while (@_) {
- local $_ = shift;
- if ( /^(?:--)?($opt_re)=(.*)$/ ) {
- $self->_read_arg(\%args, $1, $2);
- } elsif ( /^--($opt_re)$/ ) {
- my($opt, $arg) = $self->_optional_arg($1, \@_);
- $self->_read_arg(\%args, $opt, $arg);
- } elsif ( /^($opt_re)$/ and !defined($action)) {
- $action = $1;
- } else {
- push @argv, $_;
- }
- }
- $args{ARGV} = \@argv;
-
- for ('extra_compiler_flags', 'extra_linker_flags') {
- $args{$_} = [ $self->split_like_shell($args{$_}) ] if exists $args{$_};
- }
-
- # Convert to arrays
- for ('include_dirs') {
- $args{$_} = [ $args{$_} ] if exists $args{$_} && !ref $args{$_}
- }
-
- # Hashify these parameters
- for ($self->hash_properties, 'config') {
- next unless exists $args{$_};
- my %hash;
- $args{$_} ||= [];
- $args{$_} = [ $args{$_} ] unless ref $args{$_};
- foreach my $arg ( @{$args{$_}} ) {
- $arg =~ /($opt_re)=(.*)/
- or die "Malformed '$_' argument: '$arg' should be something like 'foo=bar'";
- $hash{$1} = $2;
- }
- $args{$_} = \%hash;
- }
-
- # De-tilde-ify any path parameters
- for my $key (qw(prefix install_base destdir)) {
- next if !defined $args{$key};
- $args{$key} = $self->_detildefy($args{$key});
- }
-
- for my $key (qw(install_path)) {
- next if !defined $args{$key};
-
- for my $subkey (keys %{$args{$key}}) {
- next if !defined $args{$key}{$subkey};
- my $subkey_ext = $self->_detildefy($args{$key}{$subkey});
- if ( $subkey eq 'html' ) { # translate for compatibility
- $args{$key}{binhtml} = $subkey_ext;
- $args{$key}{libhtml} = $subkey_ext;
- } else {
- $args{$key}{$subkey} = $subkey_ext;
- }
- }
- }
-
- if ($args{makefile_env_macros}) {
- require Module::Build::Compat;
- %args = (%args, Module::Build::Compat->makefile_to_build_macros);
- }
-
- return \%args, $action;
-}
-
-# Default: do nothing. Overridden for Unix & Windows.
-sub _detildefy {}
-
-
-# merge Module::Build argument lists that have already been parsed
-# by read_args(). Takes two references to option hashes and merges
-# the contents, giving priority to the first.
-sub _merge_arglist {
- my( $self, $opts1, $opts2 ) = @_;
-
- $opts1 ||= {};
- $opts2 ||= {};
- my %new_opts = %$opts1;
- while (my ($key, $val) = each %$opts2) {
- if ( exists( $opts1->{$key} ) ) {
- if ( ref( $val ) eq 'HASH' ) {
- while (my ($k, $v) = each %$val) {
- $new_opts{$key}{$k} = $v unless exists( $opts1->{$key}{$k} );
- }
- }
- } else {
- $new_opts{$key} = $val
- }
- }
-
- return %new_opts;
-}
-
-# Look for a home directory on various systems.
-sub _home_dir {
- my @home_dirs;
- push( @home_dirs, $ENV{HOME} ) if $ENV{HOME};
-
- push( @home_dirs, File::Spec->catpath($ENV{HOMEDRIVE}, $ENV{HOMEPATH}, '') )
- if $ENV{HOMEDRIVE} && $ENV{HOMEPATH};
-
- my @other_home_envs = qw( USERPROFILE APPDATA WINDIR SYS$LOGIN );
- push( @home_dirs, map $ENV{$_}, grep $ENV{$_}, @other_home_envs );
-
- my @real_home_dirs = grep -d, @home_dirs;
-
- return wantarray ? @real_home_dirs : shift( @real_home_dirs );
-}
-
-sub _find_user_config {
- my $self = shift;
- my $file = shift;
- foreach my $dir ( $self->_home_dir ) {
- my $path = File::Spec->catfile( $dir, $file );
- return $path if -e $path;
- }
- return undef;
-}
-
-# read ~/.modulebuildrc returning global options '*' and
-# options specific to the currently executing $action.
-sub read_modulebuildrc {
- my( $self, $action ) = @_;
-
- return () unless $self->use_rcfile;
-
- my $modulebuildrc;
- if ( exists($ENV{MODULEBUILDRC}) && $ENV{MODULEBUILDRC} eq 'NONE' ) {
- return ();
- } elsif ( exists($ENV{MODULEBUILDRC}) && -e $ENV{MODULEBUILDRC} ) {
- $modulebuildrc = $ENV{MODULEBUILDRC};
- } elsif ( exists($ENV{MODULEBUILDRC}) ) {
- $self->log_warn("WARNING: Can't find resource file " .
- "'$ENV{MODULEBUILDRC}' defined in environment.\n" .
- "No options loaded\n");
- return ();
- } else {
- $modulebuildrc = $self->_find_user_config( '.modulebuildrc' );
- return () unless $modulebuildrc;
- }
-
- open(my $fh, '<', $modulebuildrc )
- or die "Can't open $modulebuildrc: $!";
-
- my %options; my $buffer = '';
- while (defined( my $line = <$fh> )) {
- chomp( $line );
- $line =~ s/#.*$//;
- next unless length( $line );
-
- if ( $line =~ /^\S/ ) {
- if ( $buffer ) {
- my( $action, $options ) = split( /\s+/, $buffer, 2 );
- $options{$action} .= $options . ' ';
- $buffer = '';
- }
- $buffer = $line;
- } else {
- $buffer .= $line;
- }
- }
-
- if ( $buffer ) { # anything left in $buffer ?
- my( $action, $options ) = split( /\s+/, $buffer, 2 );
- $options{$action} .= $options . ' '; # merge if more than one line
- }
-
- my ($global_opts) =
- $self->read_args( $self->split_like_shell( $options{'*'} || '' ) );
-
- # let fakeinstall act like install if not provided
- if ( $action eq 'fakeinstall' && ! exists $options{fakeinstall} ) {
- $action = 'install';
- }
- my ($action_opts) =
- $self->read_args( $self->split_like_shell( $options{$action} || '' ) );
-
- # specific $action options take priority over global options '*'
- return $self->_merge_arglist( $action_opts, $global_opts );
-}
-
-# merge the relevant options in ~/.modulebuildrc into Module::Build's
-# option list where they do not conflict with commandline options.
-sub merge_modulebuildrc {
- my( $self, $action, %cmdline_opts ) = @_;
- my %rc_opts = $self->read_modulebuildrc( $action || $self->{action} || 'build' );
- my %new_opts = $self->_merge_arglist( \%cmdline_opts, \%rc_opts );
- $self->merge_args( $action, %new_opts );
-}
-
-sub merge_args {
- my ($self, $action, %args) = @_;
- $self->{action} = $action if defined $action;
-
- my %additive = map { $_ => 1 } $self->hash_properties;
-
- # Extract our 'properties' from $cmd_args, the rest are put in 'args'.
- while (my ($key, $val) = each %args) {
- $self->{phash}{runtime_params}->access( $key => $val )
- if $self->valid_property($key);
-
- if ($key eq 'config') {
- $self->config($_ => $val->{$_}) foreach keys %$val;
- } else {
- my $add_to = $additive{$key} ? $self->{properties}{$key} :
- $self->valid_property($key) ? $self->{properties} :
- $self->{args} ;
-
- if ($additive{$key}) {
- $add_to->{$_} = $val->{$_} foreach keys %$val;
- } else {
- $add_to->{$key} = $val;
- }
- }
- }
-}
-
-sub cull_args {
- my $self = shift;
- my @arg_list = @_;
- unshift @arg_list, $self->split_like_shell($ENV{PERL_MB_OPT})
- if $ENV{PERL_MB_OPT};
- my ($args, $action) = $self->read_args(@arg_list);
- $self->merge_args($action, %$args);
- $self->merge_modulebuildrc( $action, %$args );
-}
-
-sub super_classes {
- my ($self, $class, $seen) = @_;
- $class ||= ref($self) || $self;
- $seen ||= {};
-
- no strict 'refs';
- my @super = grep {not $seen->{$_}++} $class, @{ $class . '::ISA' };
- return @super, map {$self->super_classes($_,$seen)} @super;
-}
-
-sub known_actions {
- my ($self) = @_;
-
- my %actions;
- no strict 'refs';
-
- foreach my $class ($self->super_classes) {
- foreach ( keys %{ $class . '::' } ) {
- $actions{$1}++ if /^ACTION_(\w+)/;
- }
- }
-
- return wantarray ? sort keys %actions : \%actions;
-}
-
-sub get_action_docs {
- my ($self, $action) = @_;
- my $actions = $self->known_actions;
- die "No known action '$action'" unless $actions->{$action};
-
- my ($files_found, @docs) = (0);
- foreach my $class ($self->super_classes) {
- (my $file = $class) =~ s{::}{/}g;
- # NOTE: silently skipping relative paths if any chdir() happened
- $file = $INC{$file . '.pm'} or next;
- open(my $fh, '<', $file) or next;
- $files_found++;
-
- # Code below modified from /usr/bin/perldoc
-
- # Skip to ACTIONS section
- local $_;
- while (<$fh>) {
- last if /^=head1 ACTIONS\s/;
- }
-
- # Look for our action and determine the style
- my $style;
- while (<$fh>) {
- last if /^=head1 /;
-
- # only item and head2 are allowed (3&4 are not in 5.005)
- if(/^=(item|head2)\s+\Q$action\E\b/) {
- $style = $1;
- push @docs, $_;
- last;
- }
- }
- $style or next; # not here
-
- # and the content
- if($style eq 'item') {
- my ($found, $inlist) = (0, 0);
- while (<$fh>) {
- if (/^=(item|back)/) {
- last unless $inlist;
- }
- push @docs, $_;
- ++$inlist if /^=over/;
- --$inlist if /^=back/;
- }
- }
- else { # head2 style
- # stop at anything equal or greater than the found level
- while (<$fh>) {
- last if(/^=(?:head[12]|cut)/);
- push @docs, $_;
- }
- }
- # TODO maybe disallow overriding just pod for an action
- # TODO and possibly: @docs and last;
- }
-
- unless ($files_found) {
- $@ = "Couldn't find any documentation to search";
- return;
- }
- unless (@docs) {
- $@ = "Couldn't find any docs for action '$action'";
- return;
- }
-
- return join '', @docs;
-}
-
-sub ACTION_prereq_report {
- my $self = shift;
- $self->log_info( $self->prereq_report );
-}
-
-sub ACTION_prereq_data {
- my $self = shift;
- $self->log_info( Module::Build::Dumper->_data_dump( $self->prereq_data ) );
-}
-
-sub prereq_data {
- my $self = shift;
- my @types = ('configure_requires', @{ $self->prereq_action_types } );
- my $info = { map { $_ => $self->$_() } grep { %{$self->$_()} } @types };
- return $info;
-}
-
-sub prereq_report {
- my $self = shift;
- my $info = $self->prereq_data;
-
- my $output = '';
- foreach my $type (keys %$info) {
- my $prereqs = $info->{$type};
- $output .= "\n$type:\n";
- my $mod_len = 2;
- my $ver_len = 4;
- my %mods;
- while ( my ($modname, $spec) = each %$prereqs ) {
- my $len = length $modname;
- $mod_len = $len if $len > $mod_len;
- $spec ||= '0';
- $len = length $spec;
- $ver_len = $len if $len > $ver_len;
-
- my $mod = $self->check_installed_status($modname, $spec);
- $mod->{name} = $modname;
- $mod->{ok} ||= 0;
- $mod->{ok} = ! $mod->{ok} if $type =~ /^(\w+_)?conflicts$/;
-
- $mods{lc $modname} = $mod;
- }
-
- my $space = q{ } x ($mod_len - 3);
- my $vspace = q{ } x ($ver_len - 3);
- my $sline = q{-} x ($mod_len - 3);
- my $vline = q{-} x ($ver_len - 3);
- my $disposition = ($type =~ /^(\w+_)?conflicts$/) ?
- 'Clash' : 'Need';
- $output .=
- " Module $space $disposition $vspace Have\n".
- " ------$sline+------$vline-+----------\n";
-
-
- for my $k (sort keys %mods) {
- my $mod = $mods{$k};
- my $space = q{ } x ($mod_len - length $k);
- my $vspace = q{ } x ($ver_len - length $mod->{need});
- my $f = $mod->{ok} ? ' ' : '!';
- $output .=
- " $f $mod->{name} $space $mod->{need} $vspace ".
- (defined($mod->{have}) ? $mod->{have} : "")."\n";
- }
- }
- return $output;
-}
-
-sub ACTION_help {
- my ($self) = @_;
- my $actions = $self->known_actions;
-
- if (@{$self->{args}{ARGV}}) {
- my $msg = eval {$self->get_action_docs($self->{args}{ARGV}[0], $actions)};
- print $@ ? "$@\n" : $msg;
- return;
- }
-
- print <<EOF;
-
- Usage: $0 <action> --arg1=value --arg2=value ...
- Example: $0 test --verbose=1
-
- Actions defined:
-EOF
-
- print $self->_action_listing($actions);
-
- print "\nRun `Build help <action>` for details on an individual action.\n";
- print "See `perldoc Module::Build` for complete documentation.\n";
-}
-
-sub _action_listing {
- my ($self, $actions) = @_;
-
- # Flow down columns, not across rows
- my @actions = sort keys %$actions;
- @actions = map $actions[($_ + ($_ % 2) * @actions) / 2], 0..$#actions;
-
- my $out = '';
- while (my ($one, $two) = splice @actions, 0, 2) {
- $out .= sprintf(" %-12s %-12s\n", $one, $two||'');
- }
- $out =~ s{\s*$}{}mg; # remove trailing spaces
- return $out;
-}
-
-sub ACTION_retest {
- my ($self) = @_;
-
- # Protect others against our @INC changes
- local @INC = @INC;
-
- # Filter out nonsensical @INC entries - some versions of
- # Test::Harness will really explode the number of entries here
- @INC = grep {ref() || -d} @INC if @INC > 100;
-
- $self->do_tests;
-}
-
-sub ACTION_testall {
- my ($self) = @_;
-
- my @types;
- for my $action (grep { $_ ne 'all' } $self->get_test_types) {
- # XXX We can't just dispatch because we get multiple summaries but
- # we'll need to dispatch to support custom setup/teardown in the
- # action. To support that, we'll need to call something besides
- # Harness::runtests() because we'll need to collect the results in
- # parts, then run the summary.
- push(@types, $action);
- #$self->_call_action( "test$action" );
- }
- $self->generic_test(types => ['default', @types]);
-}
-
-sub get_test_types {
- my ($self) = @_;
-
- my $t = $self->{properties}->{test_types};
- return ( defined $t ? ( keys %$t ) : () );
-}
-
-
-sub ACTION_test {
- my ($self) = @_;
- $self->generic_test(type => 'default');
-}
-
-sub generic_test {
- my $self = shift;
- (@_ % 2) and croak('Odd number of elements in argument hash');
- my %args = @_;
-
- my $p = $self->{properties};
-
- my @types = (
- (exists($args{type}) ? $args{type} : ()),
- (exists($args{types}) ? @{$args{types}} : ()),
- );
- @types or croak "need some types of tests to check";
-
- my %test_types = (
- default => $p->{test_file_exts},
- (defined($p->{test_types}) ? %{$p->{test_types}} : ()),
- );
-
- for my $type (@types) {
- croak "$type not defined in test_types!"
- unless defined $test_types{ $type };
- }
-
- # we use local here because it ends up two method calls deep
- local $p->{test_file_exts} = [ map { ref $_ ? @$_ : $_ } @test_types{@types} ];
- $self->depends_on('code');
-
- # Protect others against our @INC changes
- local @INC = @INC;
-
- # Make sure we test the module in blib/
- unshift @INC, (File::Spec->catdir($p->{base_dir}, $self->blib, 'lib'),
- File::Spec->catdir($p->{base_dir}, $self->blib, 'arch'));
-
- # Filter out nonsensical @INC entries - some versions of
- # Test::Harness will really explode the number of entries here
- @INC = grep {ref() || -d} @INC if @INC > 100;
-
- $self->do_tests;
-}
-
-# Test::Harness dies on failure but TAP::Harness does not, so we must
-# die if running under TAP::Harness
-sub do_tests {
- my $self = shift;
-
- my $tests = $self->find_test_files;
-
- local $ENV{PERL_DL_NONLAZY} = 1;
-
- if(@$tests) {
- my $args = $self->tap_harness_args;
- if($self->use_tap_harness or ($args and %$args)) {
- my $aggregate = $self->run_tap_harness($tests);
- if ( $aggregate->has_errors ) {
- die "Errors in testing. Cannot continue.\n";
- }
- }
- else {
- $self->run_test_harness($tests);
- }
- }
- else {
- $self->log_info("No tests defined.\n");
- }
-
- $self->run_visual_script;
-}
-
-sub run_tap_harness {
- my ($self, $tests) = @_;
-
- require TAP::Harness;
-
- # TODO allow the test @INC to be set via our API?
-
- my $aggregate = TAP::Harness->new({
- lib => [@INC],
- verbosity => $self->{properties}{verbose},
- switches => [ $self->harness_switches ],
- %{ $self->tap_harness_args },
- })->runtests(@$tests);
-
- return $aggregate;
-}
-
-sub run_test_harness {
- my ($self, $tests) = @_;
- require Test::Harness;
-
- local $Test::Harness::verbose = $self->verbose || 0;
- local $Test::Harness::switches = join ' ', $self->harness_switches;
-
- Test::Harness::runtests(@$tests);
-}
-
-sub run_visual_script {
- my $self = shift;
- # This will get run and the user will see the output. It doesn't
- # emit Test::Harness-style output.
- $self->run_perl_script('visual.pl', '-Mblib='.$self->blib)
- if -e 'visual.pl';
-}
-
-sub harness_switches {
- shift->{properties}{debugger} ? qw(-w -d) : ();
-}
-
-sub test_files {
- my $self = shift;
- my $p = $self->{properties};
- if (@_) {
- return $p->{test_files} = (@_ == 1 ? shift : [@_]);
- }
- return $self->find_test_files;
-}
-
-sub expand_test_dir {
- my ($self, $dir) = @_;
- my $exts = $self->{properties}{test_file_exts};
-
- return sort map { @{$self->rscan_dir($dir, qr{^[^.].*\Q$_\E$})} } @$exts
- if $self->recursive_test_files;
-
- return sort map { glob File::Spec->catfile($dir, "*$_") } @$exts;
-}
-
-sub ACTION_testdb {
- my ($self) = @_;
- local $self->{properties}{debugger} = 1;
- $self->depends_on('test');
-}
-
-sub ACTION_testcover {
- my ($self) = @_;
-
- unless (Module::Build::ModuleInfo->find_module_by_name('Devel::Cover')) {
- warn("Cannot run testcover action unless Devel::Cover is installed.\n");
- return;
- }
-
- $self->add_to_cleanup('coverage', 'cover_db');
- $self->depends_on('code');
-
- # See whether any of the *.pm files have changed since last time
- # testcover was run. If so, start over.
- if (-e 'cover_db') {
- my $pm_files = $self->rscan_dir
- (File::Spec->catdir($self->blib, 'lib'), $self->file_qr('\.pm$') );
- my $cover_files = $self->rscan_dir('cover_db', sub {-f $_ and not /\.html$/});
-
- $self->do_system(qw(cover -delete))
- unless $self->up_to_date($pm_files, $cover_files)
- && $self->up_to_date($self->test_files, $cover_files);
- }
-
- local $Test::Harness::switches =
- local $Test::Harness::Switches =
- local $ENV{HARNESS_PERL_SWITCHES} = "-MDevel::Cover";
-
- $self->depends_on('test');
- $self->do_system('cover');
-}
-
-sub ACTION_code {
- my ($self) = @_;
-
- # All installable stuff gets created in blib/ .
- # Create blib/arch to keep blib.pm happy
- my $blib = $self->blib;
- $self->add_to_cleanup($blib);
- File::Path::mkpath( File::Spec->catdir($blib, 'arch') );
-
- if (my $split = $self->autosplit) {
- $self->autosplit_file($_, $blib) for ref($split) ? @$split : ($split);
- }
-
- foreach my $element (@{$self->build_elements}) {
- my $method = "process_${element}_files";
- $method = "process_files_by_extension" unless $self->can($method);
- $self->$method($element);
- }
-
- $self->depends_on('config_data');
-}
-
-sub ACTION_build {
- my $self = shift;
- $self->log_info("Building " . $self->dist_name . "\n");
- $self->depends_on('code');
- $self->depends_on('docs');
-}
-
-sub process_files_by_extension {
- my ($self, $ext) = @_;
-
- my $method = "find_${ext}_files";
- my $files = $self->can($method) ? $self->$method() : $self->_find_file_by_type($ext, 'lib');
-
- while (my ($file, $dest) = each %$files) {
- $self->copy_if_modified(from => $file, to => File::Spec->catfile($self->blib, $dest) );
- }
-}
-
-sub process_support_files {
- my $self = shift;
- my $p = $self->{properties};
- return unless $p->{c_source};
-
- my $files;
- if (ref($p->{c_source}) eq "ARRAY") {
- push @{$p->{include_dirs}}, @{$p->{c_source}};
- for my $path (@{$p->{c_source}}) {
- push @$files, @{ $self->rscan_dir($path, $self->file_qr('\.c(c|p|pp|xx|\+\+)?$')) };
- }
- } else {
- push @{$p->{include_dirs}}, $p->{c_source};
- $files = $self->rscan_dir($p->{c_source}, $self->file_qr('\.c(c|p|pp|xx|\+\+)?$'));
- }
-
- foreach my $file (@$files) {
- push @{$p->{objects}}, $self->compile_c($file);
- }
-}
-
-sub process_share_dir_files {
- my $self = shift;
- my $files = $self->_find_share_dir_files;
- return unless $files;
-
- # root for all File::ShareDir paths
- my $share_prefix = File::Spec->catdir($self->blib, qw/lib auto share/);
-
- # copy all share files to blib
- while (my ($file, $dest) = each %$files) {
- $self->copy_if_modified(
- from => $file, to => File::Spec->catfile( $share_prefix, $dest )
- );
- }
-}
-
-sub _find_share_dir_files {
- my $self = shift;
- my $share_dir = $self->share_dir;
- return unless $share_dir;
-
- my @file_map;
- if ( $share_dir->{dist} ) {
- my $prefix = "dist/".$self->dist_name;
- push @file_map, $self->_share_dir_map( $prefix, $share_dir->{dist} );
- }
-
- if ( $share_dir->{module} ) {
- for my $mod ( keys %{ $share_dir->{module} } ) {
- (my $altmod = $mod) =~ s{::}{-}g;
- my $prefix = "module/$altmod";
- push @file_map, $self->_share_dir_map($prefix, $share_dir->{module}{$mod});
- }
- }
-
- return { @file_map };
-}
-
-sub _share_dir_map {
- my ($self, $prefix, $list) = @_;
- my %files;
- for my $dir ( @$list ) {
- for my $f ( @{ $self->rscan_dir( $dir, sub {-f} )} ) {
- $f =~ s{\A.*?\Q$dir\E/}{};
- $files{"$dir/$f"} = "$prefix/$f";
- }
- }
- return %files;
-}
-
-sub process_PL_files {
- my ($self) = @_;
- my $files = $self->find_PL_files;
-
- while (my ($file, $to) = each %$files) {
- unless ($self->up_to_date( $file, $to )) {
- $self->run_perl_script($file, [], [@$to]) or die "$file failed";
- $self->add_to_cleanup(@$to);
- }
- }
-}
-
-sub process_xs_files {
- my $self = shift;
- return if $self->pureperl_only && $self->allow_pureperl;
- my $files = $self->find_xs_files;
- croak 'Can\'t build xs files under --pureperl-only' if %$files && $self->pureperl_only;
- while (my ($from, $to) = each %$files) {
- unless ($from eq $to) {
- $self->add_to_cleanup($to);
- $self->copy_if_modified( from => $from, to => $to );
- }
- $self->process_xs($to);
- }
-}
-
-sub process_pod_files { shift()->process_files_by_extension(shift()) }
-sub process_pm_files { shift()->process_files_by_extension(shift()) }
-
-sub process_script_files {
- my $self = shift;
- my $files = $self->find_script_files;
- return unless keys %$files;
-
- my $script_dir = File::Spec->catdir($self->blib, 'script');
- File::Path::mkpath( $script_dir );
-
- foreach my $file (keys %$files) {
- my $result = $self->copy_if_modified($file, $script_dir, 'flatten') or next;
- $self->fix_shebang_line($result) unless $self->is_vmsish;
- $self->make_executable($result);
- }
-}
-
-sub find_PL_files {
- my $self = shift;
- if (my $files = $self->{properties}{PL_files}) {
- # 'PL_files' is given as a Unix file spec, so we localize_file_path().
-
- if (UNIVERSAL::isa($files, 'ARRAY')) {
- return { map {$_, [/^(.*)\.PL$/]}
- map $self->localize_file_path($_),
- @$files };
-
- } elsif (UNIVERSAL::isa($files, 'HASH')) {
- my %out;
- while (my ($file, $to) = each %$files) {
- $out{ $self->localize_file_path($file) } = [ map $self->localize_file_path($_),
- ref $to ? @$to : ($to) ];
- }
- return \%out;
-
- } else {
- die "'PL_files' must be a hash reference or array reference";
- }
- }
-
- return unless -d 'lib';
- return {
- map {$_, [/^(.*)\.PL$/i ]}
- @{ $self->rscan_dir('lib', $self->file_qr('\.PL$')) }
- };
-}
-
-sub find_pm_files { shift->_find_file_by_type('pm', 'lib') }
-sub find_pod_files { shift->_find_file_by_type('pod', 'lib') }
-sub find_xs_files { shift->_find_file_by_type('xs', 'lib') }
-
-sub find_script_files {
- my $self = shift;
- if (my $files = $self->script_files) {
- # Always given as a Unix file spec. Values in the hash are
- # meaningless, but we preserve if present.
- return { map {$self->localize_file_path($_), $files->{$_}} keys %$files };
- }
-
- # No default location for script files
- return {};
-}
-
-sub find_test_files {
- my $self = shift;
- my $p = $self->{properties};
-
- if (my $files = $p->{test_files}) {
- $files = [keys %$files] if UNIVERSAL::isa($files, 'HASH');
- $files = [map { -d $_ ? $self->expand_test_dir($_) : $_ }
- map glob,
- $self->split_like_shell($files)];
-
- # Always given as a Unix file spec.
- return [ map $self->localize_file_path($_), @$files ];
-
- } else {
- # Find all possible tests in t/ or test.pl
- my @tests;
- push @tests, 'test.pl' if -e 'test.pl';
- push @tests, $self->expand_test_dir('t') if -e 't' and -d _;
- return \@tests;
- }
-}
-
-sub _find_file_by_type {
- my ($self, $type, $dir) = @_;
-
- if (my $files = $self->{properties}{"${type}_files"}) {
- # Always given as a Unix file spec
- return { map $self->localize_file_path($_), %$files };
- }
-
- return {} unless -d $dir;
- return { map {$_, $_}
- map $self->localize_file_path($_),
- grep !/\.\#/,
- @{ $self->rscan_dir($dir, $self->file_qr("\\.$type\$")) } };
-}
-
-sub localize_file_path {
- my ($self, $path) = @_;
- return File::Spec->catfile( split m{/}, $path );
-}
-
-sub localize_dir_path {
- my ($self, $path) = @_;
- return File::Spec->catdir( split m{/}, $path );
-}
-
-sub fix_shebang_line { # Adapted from fixin() in ExtUtils::MM_Unix 1.35
- my ($self, @files) = @_;
- my $c = ref($self) ? $self->{config} : 'Module::Build::Config';
-
- my ($does_shbang) = $c->get('sharpbang') =~ /^\s*\#\!/;
- for my $file (@files) {
- open(my $FIXIN, '<', $file) or die "Can't process '$file': $!";
- local $/ = "\n";
- chomp(my $line = <$FIXIN>);
- next unless $line =~ s/^\s*\#!\s*//; # Not a shebang file.
-
- my ($cmd, $arg) = (split(' ', $line, 2), '');
- next unless $cmd =~ /perl/i;
- my $interpreter = $self->{properties}{perl};
-
- $self->log_verbose("Changing sharpbang in $file to $interpreter\n");
- my $shb = '';
- $shb .= $c->get('sharpbang')."$interpreter $arg\n" if $does_shbang;
-
- # I'm not smart enough to know the ramifications of changing the
- # embedded newlines here to \n, so I leave 'em in.
- $shb .= qq{
-eval 'exec $interpreter $arg -S \$0 \${1+"\$\@"}'
- if 0; # not running under some shell
-} unless $self->is_windowsish; # this won't work on win32, so don't
-
- open(my $FIXOUT, '>', "$file.new")
- or die "Can't create new $file: $!\n";
-
- # Print out the new #! line (or equivalent).
- local $\;
- undef $/; # Was localized above
- print $FIXOUT $shb, <$FIXIN>;
- close $FIXIN;
- close $FIXOUT;
-
- rename($file, "$file.bak")
- or die "Can't rename $file to $file.bak: $!";
-
- rename("$file.new", $file)
- or die "Can't rename $file.new to $file: $!";
-
- $self->delete_filetree("$file.bak")
- or $self->log_warn("Couldn't clean up $file.bak, leaving it there");
-
- $self->do_system($c->get('eunicefix'), $file) if $c->get('eunicefix') ne ':';
- }
-}
-
-
-sub ACTION_testpod {
- my $self = shift;
- $self->depends_on('docs');
-
- eval q{use Test::Pod 0.95; 1}
- or die "The 'testpod' action requires Test::Pod version 0.95";
-
- my @files = sort keys %{$self->_find_pods($self->libdoc_dirs)},
- keys %{$self->_find_pods
- ($self->bindoc_dirs,
- exclude => [ $self->file_qr('\.bat$') ])}
- or die "Couldn't find any POD files to test\n";
-
- { package # hide from PAUSE
- Module::Build::PodTester; # Don't want to pollute the main namespace
- Test::Pod->import( tests => scalar @files );
- pod_file_ok($_) foreach @files;
- }
-}
-
-sub ACTION_testpodcoverage {
- my $self = shift;
-
- $self->depends_on('docs');
-
- eval q{use Test::Pod::Coverage 1.00; 1}
- or die "The 'testpodcoverage' action requires ",
- "Test::Pod::Coverage version 1.00";
-
- # TODO this needs test coverage!
-
- # XXX work-around a bug in Test::Pod::Coverage previous to v1.09
- # Make sure we test the module in blib/
- local @INC = @INC;
- my $p = $self->{properties};
- unshift(@INC,
- # XXX any reason to include arch?
- File::Spec->catdir($p->{base_dir}, $self->blib, 'lib'),
- #File::Spec->catdir($p->{base_dir}, $self->blib, 'arch')
- );
-
- all_pod_coverage_ok();
-}
-
-sub ACTION_docs {
- my $self = shift;
-
- $self->depends_on('code');
- $self->depends_on('manpages', 'html');
-}
-
-# Given a file type, will return true if the file type would normally
-# be installed when neither install-base nor prefix has been set.
-# I.e. it will be true only if the path is set from Config.pm or
-# set explicitly by the user via install-path.
-sub _is_default_installable {
- my $self = shift;
- my $type = shift;
- return ( $self->install_destination($type) &&
- ( $self->install_path($type) ||
- $self->install_sets($self->installdirs)->{$type} )
- ) ? 1 : 0;
-}
-
-sub _is_ActivePerl {
-# return 0;
- my $self = shift;
- unless (exists($self->{_is_ActivePerl})) {
- $self->{_is_ActivePerl} = (eval { require ActivePerl::DocTools; } || 0);
- }
- return $self->{_is_ActivePerl};
-}
-
-sub _is_ActivePPM {
-# return 0;
- my $self = shift;
- unless (exists($self->{_is_ActivePPM})) {
- $self->{_is_ActivePPM} = (eval { require ActivePerl::PPM; } || 0);
- }
- return $self->{_is_ActivePPM};
-}
-
-sub ACTION_manpages {
- my $self = shift;
-
- return unless $self->_mb_feature('manpage_support');
-
- $self->depends_on('code');
-
- my %extra_manify_args = $self->{properties}{'extra_manify_args'} ? %{ $self->{properties}{'extra_manify_args'} } : ();
-
- foreach my $type ( qw(bin lib) ) {
- next unless ( $self->invoked_action eq 'manpages' || $self->_is_default_installable("${type}doc"));
- my $files = $self->_find_pods( $self->{properties}{"${type}doc_dirs"},
- exclude => [ $self->file_qr('\.bat$') ] );
- next unless %$files;
-
- my $sub = $self->can("manify_${type}_pods");
- $self->$sub( %extra_manify_args ) if defined( $sub );
- }
-}
-
-sub manify_bin_pods {
- my $self = shift;
- my %podman_args = (section => 1, @_); # binaries go in section 1
-
- my $files = $self->_find_pods( $self->{properties}{bindoc_dirs},
- exclude => [ $self->file_qr('\.bat$') ] );
- return unless keys %$files;
-
- my $mandir = File::Spec->catdir( $self->blib, 'bindoc' );
- File::Path::mkpath( $mandir, 0, oct(777) );
-
- require Pod::Man;
- foreach my $file (keys %$files) {
- # Pod::Simple based parsers only support one document per instance.
- # This is expected to change in a future version (Pod::Simple > 3.03).
- my $parser = Pod::Man->new( %podman_args );
- my $manpage = $self->man1page_name( $file ) . '.' .
- $self->config( 'man1ext' );
- my $outfile = File::Spec->catfile($mandir, $manpage);
- next if $self->up_to_date( $file, $outfile );
- $self->log_verbose("Manifying $file -> $outfile\n");
- eval { $parser->parse_from_file( $file, $outfile ); 1 }
- or $self->log_warn("Error creating '$outfile': $@\n");
- $files->{$file} = $outfile;
- }
-}
-
-sub manify_lib_pods {
- my $self = shift;
- my %podman_args = (section => 3, @_); # libraries go in section 3
-
- my $files = $self->_find_pods($self->{properties}{libdoc_dirs});
- return unless keys %$files;
-
- my $mandir = File::Spec->catdir( $self->blib, 'libdoc' );
- File::Path::mkpath( $mandir, 0, oct(777) );
-
- require Pod::Man;
- while (my ($file, $relfile) = each %$files) {
- # Pod::Simple based parsers only support one document per instance.
- # This is expected to change in a future version (Pod::Simple > 3.03).
- my $parser = Pod::Man->new( %podman_args );
- my $manpage = $self->man3page_name( $relfile ) . '.' .
- $self->config( 'man3ext' );
- my $outfile = File::Spec->catfile( $mandir, $manpage);
- next if $self->up_to_date( $file, $outfile );
- $self->log_verbose("Manifying $file -> $outfile\n");
- eval { $parser->parse_from_file( $file, $outfile ); 1 }
- or $self->log_warn("Error creating '$outfile': $@\n");
- $files->{$file} = $outfile;
- }
-}
-
-sub _find_pods {
- my ($self, $dirs, %args) = @_;
- my %files;
- foreach my $spec (@$dirs) {
- my $dir = $self->localize_dir_path($spec);
- next unless -e $dir;
-
- FILE: foreach my $file ( @{ $self->rscan_dir( $dir ) } ) {
- foreach my $regexp ( @{ $args{exclude} } ) {
- next FILE if $file =~ $regexp;
- }
- $file = $self->localize_file_path($file);
- $files{$file} = File::Spec->abs2rel($file, $dir) if $self->contains_pod( $file )
- }
- }
- return \%files;
-}
-
-sub contains_pod {
- my ($self, $file) = @_;
- return '' unless -T $file; # Only look at text files
-
- open(my $fh, '<', $file ) or die "Can't open $file: $!";
- while (my $line = <$fh>) {
- return 1 if $line =~ /^\=(?:head|pod|item)/;
- }
-
- return '';
-}
-
-sub ACTION_html {
- my $self = shift;
-
- return unless $self->_mb_feature('HTML_support');
-
- $self->depends_on('code');
-
- foreach my $type ( qw(bin lib) ) {
- next unless ( $self->invoked_action eq 'html' || $self->_is_default_installable("${type}html"));
- $self->htmlify_pods( $type );
- }
-}
-
-# 1) If it's an ActiveState perl install, we need to run
-# ActivePerl::DocTools->UpdateTOC;
-# 2) Links to other modules are not being generated
-sub htmlify_pods {
- my $self = shift;
- my $type = shift;
- my $htmldir = shift || File::Spec->catdir($self->blib, "${type}html");
-
- $self->add_to_cleanup('pod2htm*');
-
- my $pods = $self->_find_pods( $self->{properties}{"${type}doc_dirs"},
- exclude => [ $self->file_qr('\.(?:bat|com|html)$') ] );
- return unless %$pods; # nothing to do
-
- unless ( -d $htmldir ) {
- File::Path::mkpath($htmldir, 0, oct(755))
- or die "Couldn't mkdir $htmldir: $!";
- }
-
- my @rootdirs = ($type eq 'bin') ? qw(bin) :
- $self->installdirs eq 'core' ? qw(lib) : qw(site lib);
- my $podroot = $ENV{PERL_CORE}
- ? File::Basename::dirname($ENV{PERL_CORE})
- : $self->original_prefix('core');
-
- my $htmlroot = $self->install_sets('core')->{libhtml};
- my $podpath;
- unless (defined $self->args('html_links') and !$self->args('html_links')) {
- my @podpath = ( (map { File::Spec->abs2rel($_ ,$podroot) } grep { -d }
- ( $self->install_sets('core', 'lib'), # lib
- $self->install_sets('core', 'bin'), # bin
- $self->install_sets('site', 'lib'), # site/lib
- ) ), File::Spec->rel2abs($self->blib) );
-
- $podpath = $ENV{PERL_CORE}
- ? File::Spec->catdir($podroot, 'lib')
- : join(":", map { tr,:\\,|/,; $_ } @podpath);
- }
-
- my $blibdir = join('/', File::Spec->splitdir(
- (File::Spec->splitpath(File::Spec->rel2abs($htmldir),1))[1]),''
- );
-
- my ($with_ActiveState, $htmltool);
-
- if ( $with_ActiveState = $self->_is_ActivePerl
- && eval { require ActivePerl::DocTools::Pod; 1 }
- ) {
- my $tool_v = ActiveState::DocTools::Pod->VERSION;
- $htmltool = "ActiveState::DocTools::Pod";
- $htmltool .= " $tool_v" if $tool_v && length $tool_v;
- }
- else {
- require Module::Build::PodParser;
- require Pod::Html;
- $htmltool = "Pod::Html " . Pod::Html->VERSION;
- }
- $self->log_verbose("Converting Pod to HTML with $htmltool\n");
-
- my $errors = 0;
-
- POD:
- foreach my $pod ( keys %$pods ) {
-
- my ($name, $path) = File::Basename::fileparse($pods->{$pod},
- $self->file_qr('\.(?:pm|plx?|pod)$')
- );
- my @dirs = File::Spec->splitdir( File::Spec->canonpath( $path ) );
- pop( @dirs ) if scalar(@dirs) && $dirs[-1] eq File::Spec->curdir;
-
- my $fulldir = File::Spec->catdir($htmldir, @rootdirs, @dirs);
- my $tmpfile = File::Spec->catfile($fulldir, "${name}.tmp");
- my $outfile = File::Spec->catfile($fulldir, "${name}.html");
- my $infile = File::Spec->abs2rel($pod);
-
- next if $self->up_to_date($infile, $outfile);
-
- unless ( -d $fulldir ){
- File::Path::mkpath($fulldir, 0, oct(755))
- or die "Couldn't mkdir $fulldir: $!";
- }
-
- $self->log_verbose("HTMLifying $infile -> $outfile\n");
- if ( $with_ActiveState ) {
- my $depth = @rootdirs + @dirs;
- my %opts = ( infile => $infile,
- outfile => $tmpfile,
- ( defined($podpath) ? (podpath => $podpath) : ()),
- podroot => $podroot,
- index => 1,
- depth => $depth,
- );
- eval {
- ActivePerl::DocTools::Pod::pod2html(%opts);
- 1;
- } or $self->log_warn("[$htmltool] pod2html (" .
- join(", ", map { "q{$_} => q{$opts{$_}}" } (keys %opts)) . ") failed: $@");
- } else {
- my $path2root = File::Spec->catdir((File::Spec->updir) x @dirs);
- open(my $fh, '<', $infile) or die "Can't read $infile: $!";
- my $abstract = Module::Build::PodParser->new(fh => $fh)->get_abstract();
-
- my $title = join( '::', (@dirs, $name) );
- $title .= " - $abstract" if $abstract;
-
- my @opts = (
- "--title=$title",
- ( defined($podpath) ? "--podpath=$podpath" : ()),
- "--infile=$infile",
- "--outfile=$tmpfile",
- "--podroot=$podroot",
- ($path2root ? "--htmlroot=$path2root" : ()),
- );
-
- unless ( eval{Pod::Html->VERSION(1.12)} ) {
- push( @opts, ('--flush') ); # caching removed in 1.12
- }
-
- if ( eval{Pod::Html->VERSION(1.12)} ) {
- push( @opts, ('--header', '--backlink') );
- } elsif ( eval{Pod::Html->VERSION(1.03)} ) {
- push( @opts, ('--header', '--backlink=Back to Top') );
- }
-
- $self->log_verbose("P::H::pod2html @opts\n");
- {
- my $orig = Cwd::getcwd();
- eval { Pod::Html::pod2html(@opts); 1 }
- or $self->log_warn("[$htmltool] pod2html( " .
- join(", ", map { "q{$_}" } @opts) . ") failed: $@");
- chdir($orig);
- }
- }
- # We now have to cleanup the resulting html file
- if ( ! -r $tmpfile ) {
- $errors++;
- next POD;
- }
- open(my $fh, '<', $tmpfile) or die "Can't read $tmpfile: $!";
- my $html = join('',<$fh>);
- close $fh;
- if (!$self->_is_ActivePerl) {
- # These fixups are already done by AP::DT:P:pod2html
- # The output from pod2html is NOT XHTML!
- # IE6+ will display content that is not valid for DOCTYPE
- $html =~ s#^<!DOCTYPE .*?>#<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">#im;
- $html =~ s#<html xmlns="http://www.w3.org/1999/xhtml">#<html>#i;
-
- # IE6+ will not display local HTML files with strict
- # security without this comment
- $html =~ s#<head>#<head>\n<!-- saved from url=(0017)http://localhost/ -->#i;
- }
- # Fixup links that point to our temp blib
- $html =~ s/\Q$blibdir\E//g;
-
- open($fh, '>', $outfile) or die "Can't write $outfile: $!";
- print $fh $html;
- close $fh;
- unlink($tmpfile);
- }
-
- return ! $errors;
-
-}
-
-# Adapted from ExtUtils::MM_Unix
-sub man1page_name {
- my $self = shift;
- return File::Basename::basename( shift );
-}
-
-# Adapted from ExtUtils::MM_Unix and Pod::Man
-# Depending on M::B's dependency policy, it might make more sense to refactor
-# Pod::Man::begin_pod() to extract a name() methods, and use them...
-# -spurkis
-sub man3page_name {
- my $self = shift;
- my ($vol, $dirs, $file) = File::Spec->splitpath( shift );
- my @dirs = File::Spec->splitdir( File::Spec->canonpath($dirs) );
-
- # Remove known exts from the base name
- $file =~ s/\.p(?:od|m|l)\z//i;
-
- return join( $self->manpage_separator, @dirs, $file );
-}
-
-sub manpage_separator {
- return '::';
-}
-
-# For systems that don't have 'diff' executable, should use Algorithm::Diff
-sub ACTION_diff {
- my $self = shift;
- $self->depends_on('build');
- my $local_lib = File::Spec->rel2abs('lib');
- my @myINC = grep {$_ ne $local_lib} @INC;
-
- # The actual install destination might not be in @INC, so check there too.
- push @myINC, map $self->install_destination($_), qw(lib arch);
-
- my @flags = @{$self->{args}{ARGV}};
- @flags = $self->split_like_shell($self->{args}{flags} || '') unless @flags;
-
- my $installmap = $self->install_map;
- delete $installmap->{read};
- delete $installmap->{write};
-
- my $text_suffix = $self->file_qr('\.(pm|pod)$');
-
- while (my $localdir = each %$installmap) {
- my @localparts = File::Spec->splitdir($localdir);
- my $files = $self->rscan_dir($localdir, sub {-f});
-
- foreach my $file (@$files) {
- my @parts = File::Spec->splitdir($file);
- @parts = @parts[@localparts .. $#parts]; # Get rid of blib/lib or similar
-
- my $installed = Module::Build::ModuleInfo->find_module_by_name(
- join('::', @parts), \@myINC );
- if (not $installed) {
- print "Only in lib: $file\n";
- next;
- }
-
- my $status = File::Compare::compare($installed, $file);
- next if $status == 0; # Files are the same
- die "Can't compare $installed and $file: $!" if $status == -1;
-
- if ($file =~ $text_suffix) {
- $self->do_system('diff', @flags, $installed, $file);
- } else {
- print "Binary files $file and $installed differ\n";
- }
- }
- }
-}
-
-sub ACTION_pure_install {
- shift()->depends_on('install');
-}
-
-sub ACTION_install {
- my ($self) = @_;
- require ExtUtils::Install;
- $self->depends_on('build');
- # RT#63003 suggest that odd circumstances that we might wind up
- # in a different directory than we started, so wrap with _do_in_dir to
- # ensure we get back to where we started; hope this fixes it!
- $self->_do_in_dir( ".", sub {
- ExtUtils::Install::install(
- $self->install_map, $self->verbose, 0, $self->{args}{uninst}||0
- );
- });
- if ($self->_is_ActivePerl && $self->{_completed_actions}{html}) {
- $self->log_info("Building ActivePerl Table of Contents\n");
- eval { ActivePerl::DocTools::WriteTOC(verbose => $self->verbose ? 1 : 0); 1; }
- or $self->log_warn("AP::DT:: WriteTOC() failed: $@");
- }
- if ($self->_is_ActivePPM) {
- # We touch 'lib/perllocal.pod'. There is an existing logic in subroutine _init_db()
- # of 'ActivePerl/PPM/InstallArea.pm' that says that if 'lib/perllocal.pod' has a 'date-last-touched'
- # greater than that of the PPM SQLite databases ('etc/ppm-perl-area.db' and/or
- # 'site/etc/ppm-site-area.db') then the PPM SQLite databases are rebuilt from scratch.
-
- # in the following line, 'perllocal.pod' this is *always* 'lib/perllocal.pod', never 'site/lib/perllocal.pod'
- my $F_perllocal = File::Spec->catfile($self->install_sets('core', 'lib'), 'perllocal.pod');
- my $dt_stamp = time;
-
- $self->log_info("For ActivePerl's PPM: touch '$F_perllocal'\n");
-
- open my $perllocal, ">>", $F_perllocal;
- close $perllocal;
- utime($dt_stamp, $dt_stamp, $F_perllocal);
- }
-}
-
-sub ACTION_fakeinstall {
- my ($self) = @_;
- require ExtUtils::Install;
- my $eui_version = ExtUtils::Install->VERSION;
- if ( $eui_version < 1.32 ) {
- $self->log_warn(
- "The 'fakeinstall' action requires Extutils::Install 1.32 or later.\n"
- . "(You only have version $eui_version)."
- );
- return;
- }
- $self->depends_on('build');
- ExtUtils::Install::install($self->install_map, !$self->quiet, 1, $self->{args}{uninst}||0);
-}
-
-sub ACTION_versioninstall {
- my ($self) = @_;
-
- die "You must have only.pm 0.25 or greater installed for this operation: $@\n"
- unless eval { require only; 'only'->VERSION(0.25); 1 };
-
- $self->depends_on('build');
-
- my %onlyargs = map {exists($self->{args}{$_}) ? ($_ => $self->{args}{$_}) : ()}
- qw(version versionlib);
- only::install::install(%onlyargs);
-}
-
-sub ACTION_installdeps {
- my ($self) = @_;
-
- # XXX include feature prerequisites as optional prereqs?
-
- my $info = $self->_enum_prereqs;
- if (! $info ) {
- $self->log_info( "No prerequisites detected\n" );
- return;
- }
-
- my $failures = $self->prereq_failures($info);
- if ( ! $failures ) {
- $self->log_info( "All prerequisites satisfied\n" );
- return;
- }
-
- my @install;
- while (my ($type, $prereqs) = each %$failures) {
- if($type =~ m/^(?:\w+_)?requires$/) {
- push(@install, keys %$prereqs);
- next;
- }
- $self->log_info("Checking optional dependencies:\n");
- while (my ($module, $status) = each %$prereqs) {
- push(@install, $module) if($self->y_n("Install $module?", 'y'));
- }
- }
-
- return unless @install;
-
- my ($command, @opts) = $self->split_like_shell($self->cpan_client);
-
- # relative command should be relative to our active Perl
- # so we need to locate that command
- if ( ! File::Spec->file_name_is_absolute( $command ) ) {
- # prefer site to vendor to core
- my @loc = ( 'site', 'vendor', '' );
- my @bindirs = File::Basename::dirname($self->perl);
- push @bindirs,
- map {
- ($self->config->{"install${_}bin"}, $self->config->{"install${_}script"})
- } @loc;
- for my $d ( @bindirs ) {
- my $abs_cmd = $self->find_command(File::Spec->catfile( $d, $command ));
- if ( defined $abs_cmd ) {
- $command = $abs_cmd;
- last;
- }
- }
- }
-
- $self->do_system($command, @opts, @install);
-}
-
-sub ACTION_clean {
- my ($self) = @_;
- $self->log_info("Cleaning up build files\n");
- foreach my $item (map glob($_), $self->cleanup) {
- $self->delete_filetree($item);
- }
-}
-
-sub ACTION_realclean {
- my ($self) = @_;
- $self->depends_on('clean');
- $self->log_info("Cleaning up configuration files\n");
- $self->delete_filetree(
- $self->config_dir, $self->mymetafile, $self->mymetafile2, $self->build_script
- );
-}
-
-sub ACTION_ppd {
- my ($self) = @_;
-
- require Module::Build::PPMMaker;
- my $ppd = Module::Build::PPMMaker->new();
- my $file = $ppd->make_ppd(%{$self->{args}}, build => $self);
- $self->add_to_cleanup($file);
-}
-
-sub ACTION_ppmdist {
- my ($self) = @_;
-
- $self->depends_on( 'build' );
-
- my $ppm = $self->ppm_name;
- $self->delete_filetree( $ppm );
- $self->log_info( "Creating $ppm\n" );
- $self->add_to_cleanup( $ppm, "$ppm.tar.gz" );
-
- my %types = ( # translate types/dirs to those expected by ppm
- lib => 'lib',
- arch => 'arch',
- bin => 'bin',
- script => 'script',
- bindoc => 'man1',
- libdoc => 'man3',
- binhtml => undef,
- libhtml => undef,
- );
-
- foreach my $type ($self->install_types) {
- next if exists( $types{$type} ) && !defined( $types{$type} );
-
- my $dir = File::Spec->catdir( $self->blib, $type );
- next unless -e $dir;
-
- my $files = $self->rscan_dir( $dir );
- foreach my $file ( @$files ) {
- next unless -f $file;
- my $rel_file =
- File::Spec->abs2rel( File::Spec->rel2abs( $file ),
- File::Spec->rel2abs( $dir ) );
- my $to_file =
- File::Spec->catfile( $ppm, 'blib',
- exists( $types{$type} ) ? $types{$type} : $type,
- $rel_file );
- $self->copy_if_modified( from => $file, to => $to_file );
- }
- }
-
- foreach my $type ( qw(bin lib) ) {
- $self->htmlify_pods( $type, File::Spec->catdir($ppm, 'blib', 'html') );
- }
-
- # create a tarball;
- # the directory tar'ed must be blib so we need to do a chdir first
- my $target = File::Spec->catfile( File::Spec->updir, $ppm );
- $self->_do_in_dir( $ppm, sub { $self->make_tarball( 'blib', $target ) } );
-
- $self->depends_on( 'ppd' );
-
- $self->delete_filetree( $ppm );
-}
-
-sub ACTION_pardist {
- my ($self) = @_;
-
- # Need PAR::Dist
- if ( not eval { require PAR::Dist; PAR::Dist->VERSION(0.17) } ) {
- $self->log_warn(
- "In order to create .par distributions, you need to\n"
- . "install PAR::Dist first."
- );
- return();
- }
-
- $self->depends_on( 'build' );
-
- return PAR::Dist::blib_to_par(
- name => $self->dist_name,
- version => $self->dist_version,
- );
-}
-
-sub ACTION_dist {
- my ($self) = @_;
-
- # MUST dispatch() and not depends_ok() so we generate a clean distdir
- $self->dispatch('distdir');
-
- my $dist_dir = $self->dist_dir;
-
- $self->make_tarball($dist_dir);
- $self->delete_filetree($dist_dir);
-}
-
-sub ACTION_distcheck {
- my ($self) = @_;
-
- $self->_check_manifest_skip unless $self->invoked_action eq 'distclean';
-
- require ExtUtils::Manifest;
- local $^W; # ExtUtils::Manifest is not warnings clean.
- my ($missing, $extra) = ExtUtils::Manifest::fullcheck();
-
- return unless @$missing || @$extra;
-
- my $msg = "MANIFEST appears to be out of sync with the distribution\n";
- if ( $self->invoked_action eq 'distcheck' ) {
- die $msg;
- } else {
- warn $msg;
- }
-}
-
-sub _check_mymeta_skip {
- my $self = shift;
- my $maniskip = shift || 'MANIFEST.SKIP';
-
- require ExtUtils::Manifest;
- local $^W; # ExtUtils::Manifest is not warnings clean.
-
- # older ExtUtils::Manifest had a private _maniskip
- my $skip_factory = ExtUtils::Manifest->can('maniskip')
- || ExtUtils::Manifest->can('_maniskip');
-
- my $mymetafile = $self->mymetafile;
- # we can't check it, just add it anyway to be safe
- for my $file ( $self->mymetafile, $self->mymetafile2 ) {
- unless ( $skip_factory && $skip_factory->($maniskip)->($file) ) {
- $self->log_warn("File '$maniskip' does not include '$file'. Adding it now.\n");
- my $safe = quotemeta($file);
- $self->_append_maniskip("^$safe\$", $maniskip);
- }
- }
-}
-
-sub _add_to_manifest {
- my ($self, $manifest, $lines) = @_;
- $lines = [$lines] unless ref $lines;
-
- my $existing_files = $self->_read_manifest($manifest);
- return unless defined( $existing_files );
-
- @$lines = grep {!exists $existing_files->{$_}} @$lines
- or return;
-
- my $mode = (stat $manifest)[2];
- chmod($mode | oct(222), $manifest) or die "Can't make $manifest writable: $!";
-
- open(my $fh, '<', $manifest) or die "Can't read $manifest: $!";
- my $last_line = (<$fh>)[-1] || "\n";
- my $has_newline = $last_line =~ /\n$/;
- close $fh;
-
- open($fh, '>>', $manifest) or die "Can't write to $manifest: $!";
- print $fh "\n" unless $has_newline;
- print $fh map "$_\n", @$lines;
- close $fh;
- chmod($mode, $manifest);
-
- $self->log_verbose(map "Added to $manifest: $_\n", @$lines);
-}
-
-sub _sign_dir {
- my ($self, $dir) = @_;
-
- unless (eval { require Module::Signature; 1 }) {
- $self->log_warn("Couldn't load Module::Signature for 'distsign' action:\n $@\n");
- return;
- }
-
- # Add SIGNATURE to the MANIFEST
- {
- my $manifest = File::Spec->catfile($dir, 'MANIFEST');
- die "Signing a distribution requires a MANIFEST file" unless -e $manifest;
- $self->_add_to_manifest($manifest, "SIGNATURE Added here by Module::Build");
- }
-
- # Would be nice if Module::Signature took a directory argument.
-
- $self->_do_in_dir($dir, sub {local $Module::Signature::Quiet = 1; Module::Signature::sign()});
-}
-
-sub _do_in_dir {
- my ($self, $dir, $do) = @_;
-
- my $start_dir = File::Spec->rel2abs($self->cwd);
- chdir $dir or die "Can't chdir() to $dir: $!";
- eval {$do->()};
- my @err = $@ ? ($@) : ();
- chdir $start_dir or push @err, "Can't chdir() back to $start_dir: $!";
- die join "\n", @err if @err;
-}
-
-sub ACTION_distsign {
- my ($self) = @_;
- {
- local $self->{properties}{sign} = 0; # We'll sign it ourselves
- $self->depends_on('distdir') unless -d $self->dist_dir;
- }
- $self->_sign_dir($self->dist_dir);
-}
-
-sub ACTION_skipcheck {
- my ($self) = @_;
-
- require ExtUtils::Manifest;
- local $^W; # ExtUtils::Manifest is not warnings clean.
- ExtUtils::Manifest::skipcheck();
-}
-
-sub ACTION_distclean {
- my ($self) = @_;
-
- $self->depends_on('realclean');
- $self->depends_on('distcheck');
-}
-
-sub do_create_makefile_pl {
- my $self = shift;
- require Module::Build::Compat;
- $self->log_info("Creating Makefile.PL\n");
- eval { Module::Build::Compat->create_makefile_pl($self->create_makefile_pl, $self, @_) };
- if ( $@ ) {
- 1 while unlink 'Makefile.PL';
- die "$@\n";
- }
- $self->_add_to_manifest('MANIFEST', 'Makefile.PL');
-}
-
-sub do_create_license {
- my $self = shift;
- $self->log_info("Creating LICENSE file\n");
-
- if ( ! $self->_mb_feature('license_creation') ) {
- $self->_warn_mb_feature_deps('license_creation');
- die "Aborting.\n";
- }
-
- my $l = $self->license
- or die "Can't create LICENSE file: No license specified\n";
-
- my $license = $self->_software_license_object
- or die << "HERE";
-Can't create LICENSE file: '$l' is not a valid license key
-or Software::License subclass;
-HERE
-
- $self->delete_filetree('LICENSE');
-
- open(my $fh, '>', 'LICENSE')
- or die "Can't write LICENSE file: $!";
- print $fh $license->fulltext;
- close $fh;
-
- $self->_add_to_manifest('MANIFEST', 'LICENSE');
-}
-
-sub do_create_readme {
- my $self = shift;
- $self->delete_filetree('README');
-
- my $docfile = $self->_main_docfile;
- unless ( $docfile ) {
- $self->log_warn(<<EOF);
-Cannot create README: can't determine which file contains documentation;
-Must supply either 'dist_version_from', or 'module_name' parameter.
-EOF
- return;
- }
-
- # work around some odd Pod::Readme->new() failures in test reports by
- # confirming that new() is available
- if ( eval {require Pod::Readme; Pod::Readme->can('new') } ) {
- $self->log_info("Creating README using Pod::Readme\n");
-
- my $parser = Pod::Readme->new;
- $parser->parse_from_file($docfile, 'README', @_);
-
- } elsif ( eval {require Pod::Text; 1} ) {
- $self->log_info("Creating README using Pod::Text\n");
-
- if ( open(my $fh, '>', 'README') ) {
- local $^W = 0;
- no strict "refs";
-
- # work around bug in Pod::Text 3.01, which expects
- # Pod::Simple::parse_file to take input and output filehandles
- # when it actually only takes an input filehandle
-
- my $old_parse_file;
- $old_parse_file = \&{"Pod::Simple::parse_file"}
- and
- local *{"Pod::Simple::parse_file"} = sub {
- my $self = shift;
- $self->output_fh($_[1]) if $_[1];
- $self->$old_parse_file($_[0]);
- }
- if $Pod::Text::VERSION
- == 3.01; # Split line to avoid evil version-finder
-
- Pod::Text::pod2text( $docfile, $fh );
-
- close $fh;
- } else {
- $self->log_warn(
- "Cannot create 'README' file: Can't open file for writing\n" );
- return;
- }
-
- } else {
- $self->log_warn("Can't load Pod::Readme or Pod::Text to create README\n");
- return;
- }
-
- $self->_add_to_manifest('MANIFEST', 'README');
-}
-
-sub _main_docfile {
- my $self = shift;
- if ( my $pm_file = $self->dist_version_from ) {
- (my $pod_file = $pm_file) =~ s/.pm$/.pod/;
- return (-e $pod_file ? $pod_file : $pm_file);
- } else {
- return undef;
- }
-}
-
-sub do_create_bundle_inc {
- my $self = shift;
- my $dist_inc = File::Spec->catdir( $self->dist_dir, 'inc' );
- require inc::latest;
- inc::latest->write($dist_inc, @{$self->bundle_inc_preload});
- inc::latest->bundle_module($_, $dist_inc) for @{$self->bundle_inc};
- return 1;
-}
-
-sub ACTION_distdir {
- my ($self) = @_;
-
- if ( @{$self->bundle_inc} && ! $self->_mb_feature('inc_bundling_support') ) {
- $self->_warn_mb_feature_deps('inc_bundling_support');
- die "Aborting.\n";
- }
-
- $self->depends_on('distmeta');
-
- my $dist_files = $self->_read_manifest('MANIFEST')
- or die "Can't create distdir without a MANIFEST file - run 'manifest' action first.\n";
- delete $dist_files->{SIGNATURE}; # Don't copy, create a fresh one
- die "No files found in MANIFEST - try running 'manifest' action?\n"
- unless ($dist_files and keys %$dist_files);
- my $metafile = $self->metafile;
- $self->log_warn("*** Did you forget to add $metafile to the MANIFEST?\n")
- unless exists $dist_files->{$metafile};
-
- my $dist_dir = $self->dist_dir;
- $self->delete_filetree($dist_dir);
- $self->log_info("Creating $dist_dir\n");
- $self->add_to_cleanup($dist_dir);
-
- foreach my $file (keys %$dist_files) {
- next if $file =~ m{^MYMETA\.}; # Double check that we skip MYMETA.*
- my $new = $self->copy_if_modified(from => $file, to_dir => $dist_dir, verbose => 0);
- }
-
- $self->do_create_bundle_inc if @{$self->bundle_inc};
-
- $self->_sign_dir($dist_dir) if $self->{properties}{sign};
-}
-
-sub ACTION_disttest {
- my ($self) = @_;
-
- $self->depends_on('distdir');
-
- $self->_do_in_dir
- ( $self->dist_dir,
- sub {
- # XXX could be different names for scripts
-
- $self->run_perl_script('Build.PL') # XXX Should this be run w/ --nouse-rcfile
- or die "Error executing 'Build.PL' in dist directory: $!";
- $self->run_perl_script($self->build_script)
- or die "Error executing $self->build_script in dist directory: $!";
- $self->run_perl_script($self->build_script, [], ['test'])
- or die "Error executing 'Build test' in dist directory";
- });
-}
-
-sub ACTION_distinstall {
- my ($self, @args) = @_;
-
- $self->depends_on('distdir');
-
- $self->_do_in_dir ( $self->dist_dir,
- sub {
- $self->run_perl_script('Build.PL')
- or die "Error executing 'Build.PL' in dist directory: $!";
- $self->run_perl_script($self->build_script)
- or die "Error executing $self->build_script in dist directory: $!";
- $self->run_perl_script($self->build_script, [], ['install'])
- or die "Error executing 'Build install' in dist directory";
- }
- );
-}
-
-=begin private
-
- my $has_include = $build->_eumanifest_has_include;
-
-Returns true if the installed version of ExtUtils::Manifest supports
-#include and #include_default directives. False otherwise.
-
-=end private
-
-=cut
-
-# #!include and #!include_default were added in 1.50
-sub _eumanifest_has_include {
- my $self = shift;
-
- require ExtUtils::Manifest;
- return eval { ExtUtils::Manifest->VERSION(1.50); 1 };
-}
-
-
-=begin private
-
- my $maniskip_file = $build->_default_maniskip;
-
-Returns the location of the installed MANIFEST.SKIP file used by
-default.
-
-=end private
-
-=cut
-
-sub _default_maniskip {
- my $self = shift;
-
- my $default_maniskip;
- for my $dir (@INC) {
- $default_maniskip = File::Spec->catfile($dir, "ExtUtils", "MANIFEST.SKIP");
- last if -r $default_maniskip;
- }
-
- return $default_maniskip;
-}
-
-
-=begin private
-
- my $content = $build->_slurp($file);
-
-Reads $file and returns the $content.
-
-=end private
-
-=cut
-
-sub _slurp {
- my $self = shift;
- my $file = shift;
- my $mode = shift || "";
- open my $fh, "<$mode", $file or croak "Can't open $file for reading: $!";
- local $/;
- return <$fh>;
-}
-
-sub _spew {
- my $self = shift;
- my $file = shift;
- my $content = shift || "";
- my $mode = shift || "";
- open my $fh, ">$mode", $file or croak "Can't open $file for writing: $!";
- print {$fh} $content;
- close $fh;
-}
-
-sub _case_tolerant {
- my $self = shift;
- if ( ref $self ) {
- $self->{_case_tolerant} = File::Spec->case_tolerant
- unless defined($self->{_case_tolerant});
- return $self->{_case_tolerant};
- }
- else {
- return File::Spec->case_tolerant;
- }
-}
-
-sub _append_maniskip {
- my $self = shift;
- my $skip = shift;
- my $file = shift || 'MANIFEST.SKIP';
- return unless defined $skip && length $skip;
- open(my $fh, '>>', $file)
- or die "Can't open $file: $!";
-
- print $fh "$skip\n";
- close $fh;
-}
-
-sub _write_default_maniskip {
- my $self = shift;
- my $file = shift || 'MANIFEST.SKIP';
- open(my $fh, '>', $file)
- or die "Can't open $file: $!";
-
- my $content = $self->_eumanifest_has_include ? "#!include_default\n"
- : $self->_slurp( $self->_default_maniskip );
-
- $content .= <<'EOF';
-# Avoid configuration metadata file
-^MYMETA\.
-
-# Avoid Module::Build generated and utility files.
-\bBuild$
-\bBuild.bat$
-\b_build
-\bBuild.COM$
-\bBUILD.COM$
-\bbuild.com$
-^MANIFEST\.SKIP
-
-# Avoid archives of this distribution
-EOF
-
- # Skip, for example, 'Module-Build-0.27.tar.gz'
- $content .= '\b'.$self->dist_name.'-[\d\.\_]+'."\n";
-
- print $fh $content;
-
- close $fh;
-
- return;
-}
-
-sub _check_manifest_skip {
- my ($self) = @_;
-
- my $maniskip = 'MANIFEST.SKIP';
-
- if ( ! -e $maniskip ) {
- $self->log_warn("File '$maniskip' does not exist: Creating a temporary '$maniskip'\n");
- $self->_write_default_maniskip($maniskip);
- $self->_unlink_on_exit($maniskip);
- }
- else {
- # MYMETA must not be added to MANIFEST, so always confirm the skip
- $self->_check_mymeta_skip( $maniskip );
- }
-
- return;
-}
-
-sub ACTION_manifest {
- my ($self) = @_;
-
- $self->_check_manifest_skip;
-
- require ExtUtils::Manifest; # ExtUtils::Manifest is not warnings clean.
- local ($^W, $ExtUtils::Manifest::Quiet) = (0,1);
- ExtUtils::Manifest::mkmanifest();
-}
-
-sub ACTION_manifest_skip {
- my ($self) = @_;
-
- if ( -e 'MANIFEST.SKIP' ) {
- $self->log_warn("MANIFEST.SKIP already exists.\n");
- return 0;
- }
- $self->log_info("Creating a new MANIFEST.SKIP file\n");
- return $self->_write_default_maniskip;
- return -e 'MANIFEST.SKIP'
-}
-
-# Case insensitive regex for files
-sub file_qr {
- return shift->{_case_tolerant} ? qr($_[0])i : qr($_[0]);
-}
-
-sub dist_dir {
- my ($self) = @_;
- my $dir = join "-", $self->dist_name, $self->dist_version;
- $dir .= "-" . $self->dist_suffix if $self->dist_suffix;
- return $dir;
-}
-
-sub ppm_name {
- my $self = shift;
- return 'PPM-' . $self->dist_dir;
-}
-
-sub _files_in {
- my ($self, $dir) = @_;
- return unless -d $dir;
-
- local *DH;
- opendir DH, $dir or die "Can't read directory $dir: $!";
-
- my @files;
- while (defined (my $file = readdir DH)) {
- my $full_path = File::Spec->catfile($dir, $file);
- next if -d $full_path;
- push @files, $full_path;
- }
- return @files;
-}
-
-sub share_dir {
- my $self = shift;
- my $p = $self->{properties};
-
- $p->{share_dir} = shift if @_;
-
- # Always coerce to proper hash form
- if ( ! defined $p->{share_dir} ) {
- return;
- }
- elsif ( ! ref $p->{share_dir} ) {
- # scalar -- treat as a single 'dist' directory
- $p->{share_dir} = { dist => [ $p->{share_dir} ] };
- }
- elsif ( ref $p->{share_dir} eq 'ARRAY' ) {
- # array -- treat as a list of 'dist' directories
- $p->{share_dir} = { dist => $p->{share_dir} };
- }
- elsif ( ref $p->{share_dir} eq 'HASH' ) {
- # hash -- check structure
- my $share_dir = $p->{share_dir};
- # check dist key
- if ( defined $share_dir->{dist} ) {
- if ( ! ref $share_dir->{dist} ) {
- # scalar, so upgrade to arrayref
- $share_dir->{dist} = [ $share_dir->{dist} ];
- }
- elsif ( ref $share_dir->{dist} ne 'ARRAY' ) {
- die "'dist' key in 'share_dir' must be scalar or arrayref";
- }
- }
- # check module key
- if ( defined $share_dir->{module} ) {
- my $mod_hash = $share_dir->{module};
- if ( ref $mod_hash eq 'HASH' ) {
- for my $k ( keys %$mod_hash ) {
- if ( ! ref $mod_hash->{$k} ) {
- $mod_hash->{$k} = [ $mod_hash->{$k} ];
- }
- elsif( ref $mod_hash->{$k} ne 'ARRAY' ) {
- die "modules in 'module' key of 'share_dir' must be scalar or arrayref";
- }
- }
- }
- else {
- die "'module' key in 'share_dir' must be hashref";
- }
- }
- }
- else {
- die "'share_dir' must be hashref, arrayref or string";
- }
-
- return $p->{share_dir};
-}
-
-sub script_files {
- my $self = shift;
-
- for ($self->{properties}{script_files}) {
- $_ = shift if @_;
- next unless $_;
-
- # Always coerce into a hash
- return $_ if UNIVERSAL::isa($_, 'HASH');
- return $_ = { map {$_,1} @$_ } if UNIVERSAL::isa($_, 'ARRAY');
-
- die "'script_files' must be a hashref, arrayref, or string" if ref();
-
- return $_ = { map {$_,1} $self->_files_in( $_ ) } if -d $_;
- return $_ = {$_ => 1};
- }
-
- my %pl_files = map {
- File::Spec->canonpath( $_ ) => 1
- } keys %{ $self->PL_files || {} };
-
- my @bin_files = $self->_files_in('bin');
-
- my %bin_map = map {
- $_ => File::Spec->canonpath( $_ )
- } @bin_files;
-
- return $_ = { map {$_ => 1} grep !$pl_files{$bin_map{$_}}, @bin_files };
-}
-BEGIN { *scripts = \&script_files; }
-
-{
- my %licenses = (
- perl => 'Perl_5',
- apache => 'Apache_2_0',
- apache_1_1 => 'Apache_1_1',
- artistic => 'Artistic_1',
- artistic_2 => 'Artistic_2',
- lgpl => 'LGPL_2_1',
- lgpl2 => 'LGPL_2_1',
- lgpl3 => 'LGPL_3_0',
- bsd => 'BSD',
- gpl => 'GPL_1',
- gpl2 => 'GPL_2',
- gpl3 => 'GPL_3',
- mit => 'MIT',
- mozilla => 'Mozilla_1_1',
- restrictive => 'Restricted',
- open_source => undef,
- unrestricted => undef,
- unknown => undef,
- );
-
- # TODO - would be nice to not have these here, since they're more
- # properly stored only in Software::License
- my %license_urls = (
- perl => 'http://dev.perl.org/licenses/',
- apache => 'http://apache.org/licenses/LICENSE-2.0',
- apache_1_1 => 'http://apache.org/licenses/LICENSE-1.1',
- artistic => 'http://opensource.org/licenses/artistic-license.php',
- artistic_2 => 'http://opensource.org/licenses/artistic-license-2.0.php',
- lgpl => 'http://opensource.org/licenses/lgpl-license.php',
- lgpl2 => 'http://opensource.org/licenses/lgpl-2.1.php',
- lgpl3 => 'http://opensource.org/licenses/lgpl-3.0.html',
- bsd => 'http://opensource.org/licenses/bsd-license.php',
- gpl => 'http://opensource.org/licenses/gpl-license.php',
- gpl2 => 'http://opensource.org/licenses/gpl-2.0.php',
- gpl3 => 'http://opensource.org/licenses/gpl-3.0.html',
- mit => 'http://opensource.org/licenses/mit-license.php',
- mozilla => 'http://opensource.org/licenses/mozilla1.1.php',
- restrictive => undef,
- open_source => undef,
- unrestricted => undef,
- unknown => undef,
- );
- sub valid_licenses {
- return \%licenses;
- }
- sub _license_url {
- return $license_urls{$_[1]};
- }
-}
-
-sub _software_license_class {
- my ($self, $license) = @_;
- if ($self->valid_licenses->{$license} && eval { require Software::LicenseUtils; Software::LicenseUtils->VERSION(0.103009) }) {
- my ($class) = Software::LicenseUtils->guess_license_from_meta_key($license, 1);
- eval "require $class";
- #die $class;
- return $class;
- }
- LICENSE: for my $l ( $self->valid_licenses->{ $license }, $license ) {
- next unless defined $l;
- my $trial = "Software::License::" . $l;
- if ( eval "require Software::License; Software::License->VERSION(0.014); require $trial; 1" ) {
- return $trial;
- }
- }
- return;
-}
-
-# use mapping or license name directly
-sub _software_license_object {
- my ($self) = @_;
- return unless defined( my $license = $self->license );
-
- my $class = $self->_software_license_class($license) or return;
-
- # Software::License requires a 'holder' argument
- my $author = join( " & ", @{ $self->dist_author }) || 'unknown';
- my $sl = eval { $class->new({holder=>$author}) };
- if ( $@ ) {
- $self->log_warn( "Error getting '$class' object: $@" );
- }
-
- return $sl;
-}
-
-sub _hash_merge {
- my ($self, $h, $k, $v) = @_;
- if (ref $h->{$k} eq 'ARRAY') {
- push @{$h->{$k}}, ref $v ? @$v : $v;
- } elsif (ref $h->{$k} eq 'HASH') {
- $h->{$k}{$_} = $v->{$_} foreach keys %$v;
- } else {
- $h->{$k} = $v;
- }
-}
-
-sub ACTION_distmeta {
- my ($self) = @_;
- $self->do_create_makefile_pl if $self->create_makefile_pl;
- $self->do_create_readme if $self->create_readme;
- $self->do_create_license if $self->create_license;
- $self->do_create_metafile;
-}
-
-sub do_create_metafile {
- my $self = shift;
- return if $self->{wrote_metadata};
-
- my $p = $self->{properties};
-
- unless ($p->{license}) {
- $self->log_warn("No license specified, setting license = 'unknown'\n");
- $p->{license} = 'unknown';
- }
-
- my @metafiles = ( $self->metafile, $self->metafile2 );
- # If we're in the distdir, the metafile may exist and be non-writable.
- $self->delete_filetree($_) for @metafiles;
-
- # Since we're building ourself, we have to do some special stuff
- # here: the ConfigData module is found in blib/lib.
- local @INC = @INC;
- if (($self->module_name || '') eq 'Module::Build') {
- $self->depends_on('config_data');
- push @INC, File::Spec->catdir($self->blib, 'lib');
- }
-
- my $meta_obj = $self->_get_meta_object(
- quiet => 1, fatal => 1, auto => 1
- );
- my @created = $self->_write_meta_files( $meta_obj, 'META' );
- if ( @created ) {
- $self->{wrote_metadata} = 1;
- $self->_add_to_manifest('MANIFEST', $_) for @created;
- }
- return 1;
-}
-
-sub _write_meta_files {
- my $self = shift;
- my ($meta, $file) = @_;
- $file =~ s{\.(?:yml|json)$}{};
-
- my @created;
- push @created, "$file\.yml"
- if $meta && $meta->save( "$file\.yml", {version => "1.4"} );
- push @created, "$file\.json"
- if $meta && $meta->save( "$file\.json" );
-
- if ( @created ) {
- $self->log_info("Created " . join(" and ", @created) . "\n");
- }
- return @created;
-}
-
-sub _get_meta_object {
- my $self = shift;
- my %args = @_;
- return unless $self->try_require("CPAN::Meta", "2.110420");
-
- my $meta;
- eval {
- my $data = $self->get_metadata(
- fatal => $args{fatal},
- auto => $args{auto},
- );
- $data->{dynamic_config} = $args{dynamic} if defined $args{dynamic};
- $meta = CPAN::Meta->create($data);
- };
- if ($@ && ! $args{quiet}) {
- $self->log_warn(
- "Could not get valid metadata. Error is: $@\n"
- );
- }
-
- return $meta;
-}
-
-# We return a version 1.4 structure for backwards compatibility
-sub read_metafile {
- my $self = shift;
- my ($metafile) = @_;
-
- return unless $self->try_require("CPAN::Meta", "2.110420");
- my $meta = CPAN::Meta->load_file($metafile);
- return $meta->as_struct( {version => "1.4"} );
-}
-
-# For legacy compatibility, we upconvert a 1.4 data structure, ensuring
-# validity, and then downconvert it back to save it.
-#
-# generally, this code should no longer be used
-sub write_metafile {
- my $self = shift;
- my ($metafile, $struct) = @_;
-
- return unless $self->try_require("CPAN::Meta", "2.110420");
-
- my $meta = CPAN::Meta->new( $struct );
- return $meta->save( $metafile, { version => "1.4" } );
-}
-
-sub normalize_version {
- my ($self, $version) = @_;
- $version = 0 unless defined $version and length $version;
-
- if ( $version =~ /[=<>!,]/ ) { # logic, not just version
- # take as is without modification
- }
- elsif ( ref $version eq 'version' ||
- ref $version eq 'Module::Build::Version' ) { # version objects
- $version = $version->is_qv ? $version->normal : $version->stringify;
- }
- elsif ( $version =~ /^[^v][^.]*\.[^.]+\./ ) { # no leading v, multiple dots
- # normalize string tuples without "v": "1.2.3" -> "v1.2.3"
- $version = "v$version";
- }
- else {
- # leave alone
- }
- return $version;
-}
-
-my %prereq_map = (
- requires => [ qw/runtime requires/],
- configure_requires => [qw/configure requires/],
- build_requires => [ qw/build requires/ ],
- test_requires => [ qw/test requires/ ],
- test_recommends => [ qw/test recommends/ ],
- recommends => [ qw/runtime recommends/ ],
- conflicts => [ qw/runtime conflicts/ ],
-);
-
-sub _normalize_prereqs {
- my ($self) = @_;
- my $p = $self->{properties};
-
- # copy prereq data structures so we can modify them before writing to META
- my %prereq_types;
- for my $type ( 'configure_requires', @{$self->prereq_action_types} ) {
- if (exists $p->{$type} and keys %{ $p->{$type} }) {
- my ($phase, $relation) = @{ $prereq_map{$type} };
- for my $mod ( keys %{ $p->{$type} } ) {
- $prereq_types{$phase}{$relation}{$mod} = $self->normalize_version($p->{$type}{$mod});
- }
- }
- }
- return \%prereq_types;
-}
-
-sub _get_license {
- my $self = shift;
-
- my $license = $self->license;
- my ($meta_license, $meta_license_url);
-
- my $valid_licenses = $self->valid_licenses();
- if ( my $sl = $self->_software_license_object ) {
- $meta_license = $sl->meta2_name;
- $meta_license_url = $sl->url;
- }
- elsif ( exists $valid_licenses->{$license} ) {
- $meta_license = $valid_licenses->{$license} ? lc $valid_licenses->{$license} : $license;
- $meta_license_url = $self->_license_url( $license );
- }
- else {
- $self->log_warn( "Can not determine license type for '" . $self->license
- . "'\nSetting META license field to 'unknown'.\n");
- $meta_license = 'unknown';
- }
- return ($meta_license, $meta_license_url);
-}
-
-my %keep = map { $_ => 1 } qw/keywords dynamic_config provides no_index name version abstract/;
-my %ignore = map { $_ => 1 } qw/distribution_type/;
-my %reject = map { $_ => 1 } qw/private author license requires recommends build_requires configure_requires conflicts/;
-
-sub _upconvert_resources {
- my ($input) = @_;
- my %output;
- for my $key (keys %{$input}) {
- my $out_key = $key =~ /^\p{Lu}/ ? "x_\l$key" : $key;
- if ($key eq 'repository') {
- my $name = $input->{$key} =~ m{ \A http s? :// .* (<! \.git ) \z }xms ? 'web' : 'url';
- $output{$out_key} = { $name => $input->{$key} };
- }
- elsif ($key eq 'bugtracker') {
- $output{$out_key} = { web => $input->{$key} }
- }
- else {
- $output{$out_key} = $input->{$key};
- }
- }
- return \%output
-}
-my %custom = (
- resources => \&_upconvert_resources,
-);
-
-sub _upconvert_metapiece {
- my ($input, $type) = @_;
- return $input if exists $input->{'meta-spec'} && $input->{'meta-spec'}{version} == 2;
-
- my %ret;
- for my $key (keys %{$input}) {
- if ($keep{$key}) {
- $ret{$key} = $input->{$key};
- }
- elsif ($ignore{$key}) {
- next;
- }
- elsif ($reject{$key}) {
- croak "Can't $type $key, please use another mechanism";
- }
- elsif (my $converter = $custom{$key}) {
- $ret{$key} = $converter->($input->{$key});
- }
- else {
- my $out_key = $key =~ / \A x_ /xi ? $key : "x_$key";
- $ret{$out_key} = $input->{$key};
- }
- }
- return \%ret;
-}
-
-sub get_metadata {
- my ($self, %args) = @_;
-
- my $fatal = $args{fatal} || 0;
- my $p = $self->{properties};
-
- $self->auto_config_requires if $args{auto};
-
- # validate required fields
- foreach my $f (qw(dist_name dist_version dist_author dist_abstract license)) {
- my $field = $self->$f();
- unless ( defined $field and length $field ) {
- my $err = "ERROR: Missing required field '$f' for metafile\n";
- if ( $fatal ) {
- die $err;
- }
- else {
- $self->log_warn($err);
- }
- }
- }
-
- my %metadata = (
- name => $self->dist_name,
- version => $self->normalize_version($self->dist_version),
- author => $self->dist_author,
- abstract => $self->dist_abstract,
- generated_by => "Module::Build version $Module::Build::VERSION",
- 'meta-spec' => {
- version => '2',
- url => 'http://search.cpan.org/perldoc?CPAN::Meta::Spec',
- },
- dynamic_config => exists $p->{dynamic_config} ? $p->{dynamic_config} : 1,
- release_status => $self->release_status,
- );
-
- my ($meta_license, $meta_license_url) = $self->_get_license;
- $metadata{license} = [ $meta_license ];
- $metadata{resources}{license} = [ $meta_license_url ] if defined $meta_license_url;
-
- $metadata{prereqs} = $self->_normalize_prereqs;
-
- if (exists $p->{no_index}) {
- $metadata{no_index} = $p->{no_index};
- } elsif (my $pkgs = eval { $self->find_dist_packages }) {
- $metadata{provides} = $pkgs if %$pkgs;
- } else {
- $self->log_warn("$@\nWARNING: Possible missing or corrupt 'MANIFEST' file.\n" .
- "Nothing to enter for 'provides' field in metafile.\n");
- }
-
- my $meta_add = _upconvert_metapiece($self->meta_add, 'add');
- while (my($k, $v) = each %{$meta_add} ) {
- $metadata{$k} = $v;
- }
-
- my $meta_merge = _upconvert_metapiece($self->meta_merge, 'merge');
- while (my($k, $v) = each %{$meta_merge} ) {
- $self->_hash_merge(\%metadata, $k, $v);
- }
-
- return \%metadata;
-}
-
-# To preserve compatibility with old API, $node *must* be a hashref
-# passed in to prepare_metadata. $keys is an arrayref holding a
-# list of keys -- it's use is optional and generally no longer needed
-# but kept for back compatibility. $args is an optional parameter to
-# support the new 'fatal' toggle
-
-sub prepare_metadata {
- my ($self, $node, $keys, $args) = @_;
- unless ( ref $node eq 'HASH' ) {
- croak "prepare_metadata() requires a hashref argument to hold output\n";
- }
- croak 'Keys argument to prepare_metadata is no longer supported' if $keys;
- %{$node} = %{ $self->get_meta(%{$args}) };
- return $node;
-}
-
-sub _read_manifest {
- my ($self, $file) = @_;
- return undef unless -e $file;
-
- require ExtUtils::Manifest; # ExtUtils::Manifest is not warnings clean.
- local ($^W, $ExtUtils::Manifest::Quiet) = (0,1);
- return scalar ExtUtils::Manifest::maniread($file);
-}
-
-sub find_dist_packages {
- my $self = shift;
-
- # Only packages in .pm files are candidates for inclusion here.
- # Only include things in the MANIFEST, not things in developer's
- # private stock.
-
- my $manifest = $self->_read_manifest('MANIFEST')
- or die "Can't find dist packages without a MANIFEST file\nRun 'Build manifest' to generate one\n";
-
- # Localize
- my %dist_files = map { $self->localize_file_path($_) => $_ }
- keys %$manifest;
-
- my @pm_files = grep { $_ !~ m{^t} } # skip things in t/
- grep {exists $dist_files{$_}}
- keys %{ $self->find_pm_files };
-
- return $self->find_packages_in_files(\@pm_files, \%dist_files);
-}
-
-# XXX Do not document this function; mst wrote it and now says the API is
-# stupid and needs to be fixed and it shouldn't become a public API until then
-sub find_packages_in_files {
- my ($self, $file_list, $filename_map) = @_;
-
- # First, we enumerate all packages & versions,
- # separating into primary & alternative candidates
- my( %prime, %alt );
- foreach my $file (@{$file_list}) {
- my $mapped_filename = $filename_map->{$file};
- my @path = split( /\//, $mapped_filename );
- (my $prime_package = join( '::', @path[1..$#path] )) =~ s/\.pm$//;
-
- my $pm_info = Module::Build::ModuleInfo->new_from_file( $file );
-
- foreach my $package ( $pm_info->packages_inside ) {
- next if $package eq 'main'; # main can appear numerous times, ignore
- next if $package eq 'DB'; # special debugging package, ignore
- next if grep /^_/, split( /::/, $package ); # private package, ignore
-
- my $version = $pm_info->version( $package );
-
- if ( $package eq $prime_package ) {
- if ( exists( $prime{$package} ) ) {
- # M::B::ModuleInfo will handle this conflict
- die "Unexpected conflict in '$package'; multiple versions found.\n";
- } else {
- $prime{$package}{file} = $mapped_filename;
- $prime{$package}{version} = $version if defined( $version );
- }
- } else {
- push( @{$alt{$package}}, {
- file => $mapped_filename,
- version => $version,
- } );
- }
- }
- }
-
- # Then we iterate over all the packages found above, identifying conflicts
- # and selecting the "best" candidate for recording the file & version
- # for each package.
- foreach my $package ( keys( %alt ) ) {
- my $result = $self->_resolve_module_versions( $alt{$package} );
-
- if ( exists( $prime{$package} ) ) { # primary package selected
-
- if ( $result->{err} ) {
- # Use the selected primary package, but there are conflicting
- # errors among multiple alternative packages that need to be
- # reported
- $self->log_warn(
- "Found conflicting versions for package '$package'\n" .
- " $prime{$package}{file} ($prime{$package}{version})\n" .
- $result->{err}
- );
-
- } elsif ( defined( $result->{version} ) ) {
- # There is a primary package selected, and exactly one
- # alternative package
-
- if ( exists( $prime{$package}{version} ) &&
- defined( $prime{$package}{version} ) ) {
- # Unless the version of the primary package agrees with the
- # version of the alternative package, report a conflict
- if ( $self->compare_versions( $prime{$package}{version}, '!=',
- $result->{version} ) ) {
- $self->log_warn(
- "Found conflicting versions for package '$package'\n" .
- " $prime{$package}{file} ($prime{$package}{version})\n" .
- " $result->{file} ($result->{version})\n"
- );
- }
-
- } else {
- # The prime package selected has no version so, we choose to
- # use any alternative package that does have a version
- $prime{$package}{file} = $result->{file};
- $prime{$package}{version} = $result->{version};
- }
-
- } else {
- # no alt package found with a version, but we have a prime
- # package so we use it whether it has a version or not
- }
-
- } else { # No primary package was selected, use the best alternative
-
- if ( $result->{err} ) {
- $self->log_warn(
- "Found conflicting versions for package '$package'\n" .
- $result->{err}
- );
- }
-
- # Despite possible conflicting versions, we choose to record
- # something rather than nothing
- $prime{$package}{file} = $result->{file};
- $prime{$package}{version} = $result->{version}
- if defined( $result->{version} );
- }
- }
-
- # Normalize versions or delete them if undef/0
- for my $provides ( values %prime ) {
- if ( $provides->{version} ) {
- $provides->{version} = $self->normalize_version( $provides->{version} )
- }
- else {
- delete $provides->{version};
- }
- }
-
- return \%prime;
-}
-
-# separate out some of the conflict resolution logic from
-# $self->find_dist_packages(), above, into a helper function.
-#
-sub _resolve_module_versions {
- my $self = shift;
-
- my $packages = shift;
-
- my( $file, $version );
- my $err = '';
- foreach my $p ( @$packages ) {
- if ( defined( $p->{version} ) ) {
- if ( defined( $version ) ) {
- if ( $self->compare_versions( $version, '!=', $p->{version} ) ) {
- $err .= " $p->{file} ($p->{version})\n";
- } else {
- # same version declared multiple times, ignore
- }
- } else {
- $file = $p->{file};
- $version = $p->{version};
- }
- }
- $file ||= $p->{file} if defined( $p->{file} );
- }
-
- if ( $err ) {
- $err = " $file ($version)\n" . $err;
- }
-
- my %result = (
- file => $file,
- version => $version,
- err => $err
- );
-
- return \%result;
-}
-
-sub make_tarball {
- my ($self, $dir, $file) = @_;
- $file ||= $dir;
-
- $self->log_info("Creating $file.tar.gz\n");
-
- if ($self->{args}{tar}) {
- my $tar_flags = $self->verbose ? 'cvf' : 'cf';
- $self->do_system($self->split_like_shell($self->{args}{tar}), $tar_flags, "$file.tar", $dir);
- $self->do_system($self->split_like_shell($self->{args}{gzip}), "$file.tar") if $self->{args}{gzip};
- } else {
- eval { require Archive::Tar && Archive::Tar->VERSION(1.09); 1 }
- or die "You must install Archive::Tar 1.09+ to make a distribution tarball\n".
- "or specify a binary tar program with the '--tar' option.\n".
- "See the documentation for the 'dist' action.\n";
-
- my $files = $self->rscan_dir($dir);
-
- # Archive::Tar versions >= 1.09 use the following to enable a compatibility
- # hack so that the resulting archive is compatible with older clients.
- # If no file path is 100 chars or longer, we disable the prefix field
- # for maximum compatibility. If there are any long file paths then we
- # need the prefix field after all.
- $Archive::Tar::DO_NOT_USE_PREFIX =
- (grep { length($_) >= 100 } @$files) ? 0 : 1;
-
- my $tar = Archive::Tar->new;
- $tar->add_files(@$files);
- for my $f ($tar->get_files) {
- $f->mode($f->mode & ~022); # chmod go-w
- }
- $tar->write("$file.tar.gz", 1);
- }
-}
-
-sub install_path {
- my $self = shift;
- my( $type, $value ) = ( @_, '<empty>' );
-
- Carp::croak( 'Type argument missing' )
- unless defined( $type );
-
- my $map = $self->{properties}{install_path};
- return $map unless @_;
-
- # delete existing value if $value is literal undef()
- unless ( defined( $value ) ) {
- delete( $map->{$type} );
- return undef;
- }
-
- # return existing value if no new $value is given
- if ( $value eq '<empty>' ) {
- return undef unless exists $map->{$type};
- return $map->{$type};
- }
-
- # set value if $value is a valid relative path
- return $map->{$type} = $value;
-}
-
-sub install_sets {
- # Usage: install_sets('site'), install_sets('site', 'lib'),
- # or install_sets('site', 'lib' => $value);
- my ($self, $dirs, $key, $value) = @_;
- $dirs = $self->installdirs unless defined $dirs;
- # update property before merging with defaults
- if ( @_ == 4 && defined $dirs && defined $key) {
- # $value can be undef; will mask default
- $self->{properties}{install_sets}{$dirs}{$key} = $value;
- }
- my $map = { $self->_merge_arglist(
- $self->{properties}{install_sets},
- $self->_default_install_paths->{install_sets}
- )};
- if ( defined $dirs && defined $key ) {
- return $map->{$dirs}{$key};
- }
- elsif ( defined $dirs ) {
- return $map->{$dirs};
- }
- else {
- croak "Can't determine installdirs for install_sets()";
- }
-}
-
-sub original_prefix {
- # Usage: original_prefix(), original_prefix('lib'),
- # or original_prefix('lib' => $value);
- my ($self, $key, $value) = @_;
- # update property before merging with defaults
- if ( @_ == 3 && defined $key) {
- # $value can be undef; will mask default
- $self->{properties}{original_prefix}{$key} = $value;
- }
- my $map = { $self->_merge_arglist(
- $self->{properties}{original_prefix},
- $self->_default_install_paths->{original_prefix}
- )};
- return $map unless defined $key;
- return $map->{$key}
-}
-
-sub install_base_relpaths {
- # Usage: install_base_relpaths(), install_base_relpaths('lib'),
- # or install_base_relpaths('lib' => $value);
- my $self = shift;
- if ( @_ > 1 ) { # change values before merge
- $self->_set_relpaths($self->{properties}{install_base_relpaths}, @_);
- }
- my $map = { $self->_merge_arglist(
- $self->{properties}{install_base_relpaths},
- $self->_default_install_paths->{install_base_relpaths}
- )};
- return $map unless @_;
- my $relpath = $map->{$_[0]};
- return defined $relpath ? File::Spec->catdir( @$relpath ) : undef;
-}
-
-# Defaults to use in case the config install paths cannot be prefixified.
-sub prefix_relpaths {
- # Usage: prefix_relpaths('site'), prefix_relpaths('site', 'lib'),
- # or prefix_relpaths('site', 'lib' => $value);
- my $self = shift;
- my $installdirs = shift || $self->installdirs
- or croak "Can't determine installdirs for prefix_relpaths()";
- if ( @_ > 1 ) { # change values before merge
- $self->{properties}{prefix_relpaths}{$installdirs} ||= {};
- $self->_set_relpaths($self->{properties}{prefix_relpaths}{$installdirs}, @_);
- }
- my $map = {$self->_merge_arglist(
- $self->{properties}{prefix_relpaths}{$installdirs},
- $self->_default_install_paths->{prefix_relpaths}{$installdirs}
- )};
- return $map unless @_;
- my $relpath = $map->{$_[0]};
- return defined $relpath ? File::Spec->catdir( @$relpath ) : undef;
-}
-
-sub _set_relpaths {
- my $self = shift;
- my( $map, $type, $value ) = @_;
-
- Carp::croak( 'Type argument missing' )
- unless defined( $type );
-
- # set undef if $value is literal undef()
- if ( ! defined( $value ) ) {
- $map->{$type} = undef;
- return;
- }
- # set value if $value is a valid relative path
- else {
- Carp::croak( "Value must be a relative path" )
- if File::Spec::Unix->file_name_is_absolute($value);
-
- my @value = split( /\//, $value );
- $map->{$type} = \@value;
- }
-}
-
-# Translated from ExtUtils::MM_Any::init_INSTALL_from_PREFIX
-sub prefix_relative {
- my ($self, $type) = @_;
- my $installdirs = $self->installdirs;
-
- my $relpath = $self->install_sets($installdirs)->{$type};
-
- return $self->_prefixify($relpath,
- $self->original_prefix($installdirs),
- $type,
- );
-}
-
-# Translated from ExtUtils::MM_Unix::prefixify()
-sub _prefixify {
- my($self, $path, $sprefix, $type) = @_;
-
- my $rprefix = $self->prefix;
- $rprefix .= '/' if $sprefix =~ m|/$|;
-
- $self->log_verbose(" prefixify $path from $sprefix to $rprefix\n")
- if defined( $path ) && length( $path );
-
- if( !defined( $path ) || ( length( $path ) == 0 ) ) {
- $self->log_verbose(" no path to prefixify, falling back to default.\n");
- return $self->_prefixify_default( $type, $rprefix );
- } elsif( !File::Spec->file_name_is_absolute($path) ) {
- $self->log_verbose(" path is relative, not prefixifying.\n");
- } elsif( $path !~ s{^\Q$sprefix\E\b}{}s ) {
- $self->log_verbose(" cannot prefixify, falling back to default.\n");
- return $self->_prefixify_default( $type, $rprefix );
- }
-
- $self->log_verbose(" now $path in $rprefix\n");
-
- return $path;
-}
-
-sub _prefixify_default {
- my $self = shift;
- my $type = shift;
- my $rprefix = shift;
-
- my $default = $self->prefix_relpaths($self->installdirs, $type);
- if( !$default ) {
- $self->log_verbose(" no default install location for type '$type', using prefix '$rprefix'.\n");
- return $rprefix;
- } else {
- return $default;
- }
-}
-
-sub install_destination {
- my ($self, $type) = @_;
-
- return $self->install_path($type) if $self->install_path($type);
-
- if ( $self->install_base ) {
- my $relpath = $self->install_base_relpaths($type);
- return $relpath ? File::Spec->catdir($self->install_base, $relpath) : undef;
- }
-
- if ( $self->prefix ) {
- my $relpath = $self->prefix_relative($type);
- return $relpath ? File::Spec->catdir($self->prefix, $relpath) : undef;
- }
-
- return $self->install_sets($self->installdirs)->{$type};
-}
-
-sub install_types {
- my $self = shift;
-
- my %types;
- if ( $self->install_base ) {
- %types = %{$self->install_base_relpaths};
- } elsif ( $self->prefix ) {
- %types = %{$self->prefix_relpaths};
- } else {
- %types = %{$self->install_sets($self->installdirs)};
- }
-
- %types = (%types, %{$self->install_path});
-
- return sort keys %types;
-}
-
-sub install_map {
- my ($self, $blib) = @_;
- $blib ||= $self->blib;
-
- my( %map, @skipping );
- foreach my $type ($self->install_types) {
- my $localdir = File::Spec->catdir( $blib, $type );
- next unless -e $localdir;
-
- # the line "...next if (($type eq 'bindoc'..." was one of many changes introduced for
- # improving HTML generation on ActivePerl, see https://rt.cpan.org/Public/Bug/Display.html?id=53478
- # Most changes were ok, but this particular line caused test failures in t/manifypods.t on windows,
- # therefore it is commented out.
-
- # ********* next if (($type eq 'bindoc' || $type eq 'libdoc') && not $self->is_unixish);
-
- if (my $dest = $self->install_destination($type)) {
- $map{$localdir} = $dest;
- } else {
- push( @skipping, $type );
- }
- }
-
- $self->log_warn(
- "WARNING: Can't figure out install path for types: @skipping\n" .
- "Files will not be installed.\n"
- ) if @skipping;
-
- # Write the packlist into the same place as ExtUtils::MakeMaker.
- if ($self->create_packlist and my $module_name = $self->module_name) {
- my $archdir = $self->install_destination('arch');
- my @ext = split /::/, $module_name;
- $map{write} = File::Spec->catfile($archdir, 'auto', @ext, '.packlist');
- }
-
- # Handle destdir
- if (length(my $destdir = $self->destdir || '')) {
- foreach (keys %map) {
- # Need to remove volume from $map{$_} using splitpath, or else
- # we'll create something crazy like C:\Foo\Bar\E:\Baz\Quux
- # VMS will always have the file separate than the path.
- my ($volume, $path, $file) = File::Spec->splitpath( $map{$_}, 0 );
-
- # catdir needs a list of directories, or it will create something
- # crazy like volume:[Foo.Bar.volume.Baz.Quux]
- my @dirs = File::Spec->splitdir($path);
-
- # First merge the directories
- $path = File::Spec->catdir($destdir, @dirs);
-
- # Then put the file back on if there is one.
- if ($file ne '') {
- $map{$_} = File::Spec->catfile($path, $file)
- } else {
- $map{$_} = $path;
- }
- }
- }
-
- $map{read} = ''; # To keep ExtUtils::Install quiet
-
- return \%map;
-}
-
-sub depends_on {
- my $self = shift;
- foreach my $action (@_) {
- $self->_call_action($action);
- }
-}
-
-sub rscan_dir {
- my ($self, $dir, $pattern) = @_;
- my @result;
- local $_; # find() can overwrite $_, so protect ourselves
- my $subr = !$pattern ? sub {push @result, $File::Find::name} :
- !ref($pattern) || (ref $pattern eq 'Regexp') ? sub {push @result, $File::Find::name if /$pattern/} :
- ref($pattern) eq 'CODE' ? sub {push @result, $File::Find::name if $pattern->()} :
- die "Unknown pattern type";
-
- File::Find::find({wanted => $subr, no_chdir => 1}, $dir);
- return \@result;
-}
-
-sub delete_filetree {
- my $self = shift;
- my $deleted = 0;
- foreach (@_) {
- next unless -e $_;
- $self->log_verbose("Deleting $_\n");
- File::Path::rmtree($_, 0, 0);
- die "Couldn't remove '$_': $!\n" if -e $_;
- $deleted++;
- }
- return $deleted;
-}
-
-sub autosplit_file {
- my ($self, $file, $to) = @_;
- require AutoSplit;
- my $dir = File::Spec->catdir($to, 'lib', 'auto');
- AutoSplit::autosplit($file, $dir);
-}
-
-sub cbuilder {
- # Returns a CBuilder object
-
- my $self = shift;
- my $s = $self->{stash};
- return $s->{_cbuilder} if $s->{_cbuilder};
-
- require ExtUtils::CBuilder;
- return $s->{_cbuilder} = ExtUtils::CBuilder->new(
- config => $self->config,
- ($self->quiet ? (quiet => 1 ) : ()),
- );
-}
-
-sub have_c_compiler {
- my ($self) = @_;
-
- my $p = $self->{properties};
- return $p->{_have_c_compiler} if defined $p->{_have_c_compiler};
-
- $self->log_verbose("Checking if compiler tools configured... ");
- my $b = $self->cbuilder;
- my $have = $b && eval { $b->have_compiler };
- $self->log_verbose($have ? "ok.\n" : "failed.\n");
- return $p->{_have_c_compiler} = $have;
-}
-
-sub compile_c {
- my ($self, $file, %args) = @_;
-
- if ( ! $self->have_c_compiler ) {
- die "Error: no compiler detected to compile '$file'. Aborting\n";
- }
-
- my $b = $self->cbuilder;
- my $obj_file = $b->object_file($file);
- $self->add_to_cleanup($obj_file);
- return $obj_file if $self->up_to_date($file, $obj_file);
-
- $b->compile(source => $file,
- defines => $args{defines},
- object_file => $obj_file,
- include_dirs => $self->include_dirs,
- extra_compiler_flags => $self->extra_compiler_flags,
- );
-
- return $obj_file;
-}
-
-sub link_c {
- my ($self, $spec) = @_;
- my $p = $self->{properties}; # For convenience
-
- $self->add_to_cleanup($spec->{lib_file});
-
- my $objects = $p->{objects} || [];
-
- return $spec->{lib_file}
- if $self->up_to_date([$spec->{obj_file}, @$objects],
- $spec->{lib_file});
-
- my $module_name = $spec->{module_name} || $self->module_name;
-
- $self->cbuilder->link(
- module_name => $module_name,
- objects => [$spec->{obj_file}, @$objects],
- lib_file => $spec->{lib_file},
- extra_linker_flags => $p->{extra_linker_flags} );
-
- return $spec->{lib_file};
-}
-
-sub compile_xs {
- my ($self, $file, %args) = @_;
-
- $self->log_verbose("$file -> $args{outfile}\n");
-
- if (eval {require ExtUtils::ParseXS; 1}) {
-
- ExtUtils::ParseXS::process_file(
- filename => $file,
- prototypes => 0,
- output => $args{outfile},
- );
- } else {
- # Ok, I give up. Just use backticks.
-
- my $xsubpp = Module::Build::ModuleInfo->find_module_by_name('ExtUtils::xsubpp')
- or die "Can't find ExtUtils::xsubpp in INC (@INC)";
-
- my @typemaps;
- push @typemaps, Module::Build::ModuleInfo->find_module_by_name(
- 'ExtUtils::typemap', \@INC
- );
- my $lib_typemap = Module::Build::ModuleInfo->find_module_by_name(
- 'typemap', [File::Basename::dirname($file), File::Spec->rel2abs('.')]
- );
- push @typemaps, $lib_typemap if $lib_typemap;
- @typemaps = map {+'-typemap', $_} @typemaps;
-
- my $cf = $self->{config};
- my $perl = $self->{properties}{perl};
-
- my @command = ($perl, "-I".$cf->get('installarchlib'), "-I".$cf->get('installprivlib'), $xsubpp, '-noprototypes',
- @typemaps, $file);
-
- $self->log_info("@command\n");
- open(my $fh, '>', $args{outfile}) or die "Couldn't write $args{outfile}: $!";
- print {$fh} $self->_backticks(@command);
- close $fh;
- }
-}
-
-sub split_like_shell {
- my ($self, $string) = @_;
-
- return () unless defined($string);
- return @$string if UNIVERSAL::isa($string, 'ARRAY');
- $string =~ s/^\s+|\s+$//g;
- return () unless length($string);
-
- return Text::ParseWords::shellwords($string);
-}
-
-sub oneliner {
- # Returns a string that the shell can evaluate as a perl command.
- # This should be avoided whenever possible, since "the shell" really
- # means zillions of shells on zillions of platforms and it's really
- # hard to get it right all the time.
-
- # Some of this code is stolen with permission from ExtUtils::MakeMaker.
-
- my($self, $cmd, $switches, $args) = @_;
- $switches = [] unless defined $switches;
- $args = [] unless defined $args;
-
- # Strip leading and trailing newlines
- $cmd =~ s{^\n+}{};
- $cmd =~ s{\n+$}{};
-
- my $perl = ref($self) ? $self->perl : $self->find_perl_interpreter;
- return $self->_quote_args($perl, @$switches, '-e', $cmd, @$args);
-}
-
-sub run_perl_script {
- my ($self, $script, $preargs, $postargs) = @_;
- foreach ($preargs, $postargs) {
- $_ = [ $self->split_like_shell($_) ] unless ref();
- }
- return $self->run_perl_command([@$preargs, $script, @$postargs]);
-}
-
-sub run_perl_command {
- # XXX Maybe we should accept @args instead of $args? Must resolve
- # this before documenting.
- my ($self, $args) = @_;
- $args = [ $self->split_like_shell($args) ] unless ref($args);
- my $perl = ref($self) ? $self->perl : $self->find_perl_interpreter;
-
- # Make sure our local additions to @INC are propagated to the subprocess
- local $ENV{PERL5LIB} = join $self->config('path_sep'), $self->_added_to_INC;
-
- return $self->do_system($perl, @$args);
-}
-
-# Infer various data from the path of the input filename
-# that is needed to create output files.
-# The input filename is expected to be of the form:
-# lib/Module/Name.ext or Module/Name.ext
-sub _infer_xs_spec {
- my $self = shift;
- my $file = shift;
-
- my $cf = $self->{config};
-
- my %spec;
-
- my( $v, $d, $f ) = File::Spec->splitpath( $file );
- my @d = File::Spec->splitdir( $d );
- (my $file_base = $f) =~ s/\.[^.]+$//i;
-
- $spec{base_name} = $file_base;
-
- $spec{src_dir} = File::Spec->catpath( $v, $d, '' );
-
- # the module name
- shift( @d ) while @d && ($d[0] eq 'lib' || $d[0] eq '');
- pop( @d ) while @d && $d[-1] eq '';
- $spec{module_name} = join( '::', (@d, $file_base) );
-
- $spec{archdir} = File::Spec->catdir($self->blib, 'arch', 'auto',
- @d, $file_base);
-
- $spec{c_file} = File::Spec->catfile( $spec{src_dir},
- "${file_base}.c" );
-
- $spec{obj_file} = File::Spec->catfile( $spec{src_dir},
- "${file_base}".$cf->get('obj_ext') );
-
- require DynaLoader;
- my $modfname = defined &DynaLoader::mod2fname ? DynaLoader::mod2fname([@d, $file_base]) : $file_base;
-
- $spec{bs_file} = File::Spec->catfile($spec{archdir}, "$modfname.bs");
-
- $spec{lib_file} = File::Spec->catfile($spec{archdir}, "$modfname.".$cf->get('dlext'));
-
- return \%spec;
-}
-
-sub process_xs {
- my ($self, $file) = @_;
-
- my $spec = $self->_infer_xs_spec($file);
-
- # File name, minus the suffix
- (my $file_base = $file) =~ s/\.[^.]+$//;
-
- # .xs -> .c
- $self->add_to_cleanup($spec->{c_file});
-
- unless ($self->up_to_date($file, $spec->{c_file})) {
- $self->compile_xs($file, outfile => $spec->{c_file});
- }
-
- # .c -> .o
- my $v = $self->dist_version;
- $self->compile_c($spec->{c_file},
- defines => {VERSION => qq{"$v"}, XS_VERSION => qq{"$v"}});
-
- # archdir
- File::Path::mkpath($spec->{archdir}, 0, oct(777)) unless -d $spec->{archdir};
-
- # .xs -> .bs
- $self->add_to_cleanup($spec->{bs_file});
- unless ($self->up_to_date($file, $spec->{bs_file})) {
- require ExtUtils::Mkbootstrap;
- $self->log_info("ExtUtils::Mkbootstrap::Mkbootstrap('$spec->{bs_file}')\n");
- ExtUtils::Mkbootstrap::Mkbootstrap($spec->{bs_file}); # Original had $BSLOADLIBS - what's that?
- open(my $fh, '>>', $spec->{bs_file}); # create
- utime((time)x2, $spec->{bs_file}); # touch
- }
-
- # .o -> .(a|bundle)
- $self->link_c($spec);
-}
-
-sub do_system {
- my ($self, @cmd) = @_;
- $self->log_verbose("@cmd\n");
-
- # Some systems proliferate huge PERL5LIBs, try to ameliorate:
- my %seen;
- my $sep = $self->config('path_sep');
- local $ENV{PERL5LIB} =
- ( !exists($ENV{PERL5LIB}) ? '' :
- length($ENV{PERL5LIB}) < 500
- ? $ENV{PERL5LIB}
- : join $sep, grep { ! $seen{$_}++ and -d $_ } split($sep, $ENV{PERL5LIB})
- );
-
- my $status = system(@cmd);
- if ($status and $! =~ /Argument list too long/i) {
- my $env_entries = '';
- foreach (sort keys %ENV) { $env_entries .= "$_=>".length($ENV{$_})."; " }
- warn "'Argument list' was 'too long', env lengths are $env_entries";
- }
- return !$status;
-}
-
-sub copy_if_modified {
- my $self = shift;
- my %args = (@_ > 3
- ? ( @_ )
- : ( from => shift, to_dir => shift, flatten => shift )
- );
- $args{verbose} = !$self->quiet
- unless exists $args{verbose};
-
- my $file = $args{from};
- unless (defined $file and length $file) {
- die "No 'from' parameter given to copy_if_modified";
- }
-
- # makes no sense to replicate an absolute path, so assume flatten
- $args{flatten} = 1 if File::Spec->file_name_is_absolute( $file );
-
- my $to_path;
- if (defined $args{to} and length $args{to}) {
- $to_path = $args{to};
- } elsif (defined $args{to_dir} and length $args{to_dir}) {
- $to_path = File::Spec->catfile( $args{to_dir}, $args{flatten}
- ? File::Basename::basename($file)
- : $file );
- } else {
- die "No 'to' or 'to_dir' parameter given to copy_if_modified";
- }
-
- return if $self->up_to_date($file, $to_path); # Already fresh
-
- {
- local $self->{properties}{quiet} = 1;
- $self->delete_filetree($to_path); # delete destination if exists
- }
-
- # Create parent directories
- File::Path::mkpath(File::Basename::dirname($to_path), 0, oct(777));
-
- $self->log_verbose("Copying $file -> $to_path\n");
-
- if ($^O eq 'os2') {# copy will not overwrite; 0x1 = overwrite
- chmod 0666, $to_path;
- File::Copy::syscopy($file, $to_path, 0x1) or die "Can't copy('$file', '$to_path'): $!";
- } else {
- File::Copy::copy($file, $to_path) or die "Can't copy('$file', '$to_path'): $!";
- }
-
- # mode is read-only + (executable if source is executable)
- my $mode = oct(444) | ( $self->is_executable($file) ? oct(111) : 0 );
- chmod( $mode, $to_path );
-
- return $to_path;
-}
-
-sub up_to_date {
- my ($self, $source, $derived) = @_;
- $source = [$source] unless ref $source;
- $derived = [$derived] unless ref $derived;
-
- # empty $derived means $source should always run
- return 0 if @$source && !@$derived || grep {not -e} @$derived;
-
- my $most_recent_source = time / (24*60*60);
- foreach my $file (@$source) {
- unless (-e $file) {
- $self->log_warn("Can't find source file $file for up-to-date check");
- next;
- }
- $most_recent_source = -M _ if -M _ < $most_recent_source;
- }
-
- foreach my $derived (@$derived) {
- return 0 if -M $derived > $most_recent_source;
- }
- return 1;
-}
-
-sub dir_contains {
- my ($self, $first, $second) = @_;
- # File::Spec doesn't have an easy way to check whether one directory
- # is inside another, unfortunately.
-
- ($first, $second) = map File::Spec->canonpath($_), ($first, $second);
- my @first_dirs = File::Spec->splitdir($first);
- my @second_dirs = File::Spec->splitdir($second);
-
- return 0 if @second_dirs < @first_dirs;
-
- my $is_same = ( $self->_case_tolerant
- ? sub {lc(shift()) eq lc(shift())}
- : sub {shift() eq shift()} );
-
- while (@first_dirs) {
- return 0 unless $is_same->(shift @first_dirs, shift @second_dirs);
- }
-
- return 1;
-}
-
-1;
-__END__
-
-
-=head1 NAME
-
-Module::Build::Base - Default methods for Module::Build
-
-=head1 SYNOPSIS
-
- Please see the Module::Build documentation.
-
-=head1 DESCRIPTION
-
-The C<Module::Build::Base> module defines the core functionality of
-C<Module::Build>. Its methods may be overridden by any of the
-platform-dependent modules in the C<Module::Build::Platform::>
-namespace, but the intention here is to make this base module as
-platform-neutral as possible. Nicely enough, Perl has several core
-tools available in the C<File::> namespace for doing this, so the task
-isn't very difficult.
-
-Please see the C<Module::Build> documentation for more details.
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>
-
-=head1 COPYRIGHT
-
-Copyright (c) 2001-2006 Ken Williams. All rights reserved.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-perl(1), Module::Build(3)
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Bundling.pod b/Master/tlpkg/tlperl/lib/Module/Build/Bundling.pod
deleted file mode 100644
index 5e7b9f98075..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Bundling.pod
+++ /dev/null
@@ -1,147 +0,0 @@
-=head1 NAME
-
-Module::Build::Bundling - How to bundle Module::Build with a distribution
-
-=head1 SYNOPSIS
-
- # Build.PL
- use inc::latest 'Module::Build';
-
- Module::Build->new(
- module_name => 'Foo::Bar',
- license => 'perl',
- )->create_build_script;
-
-=head1 DESCRIPTION
-
-B<WARNING -- THIS IS AN EXPERIMENTAL FEATURE>
-
-In order to install a distribution using Module::Build, users must
-have Module::Build available on their systems. There are two ways
-to do this. The first way is to include Module::Build in the
-C<configure_requires> metadata field. This field is supported by
-recent versions L<CPAN> and L<CPANPLUS> and is a standard feature
-in the Perl core as of Perl 5.10.1. Module::Build now adds itself
-to C<configure_requires> by default.
-
-The second way supports older Perls that have not upgraded CPAN or
-CPANPLUS and involves bundling an entire copy of Module::Build
-into the distribution's C<inc/> directory. This is the same approach
-used by L<Module::Install>, a modern wrapper around ExtUtils::MakeMaker
-for Makefile.PL based distributions.
-
-The "trick" to making this work for Module::Build is making sure the
-highest version Module::Build is used, whether this is in C<inc/> or
-already installed on the user's system. This ensures that all necessary
-features are available as well as any new bug fixes. This is done using
-the new L<inc::latest> module.
-
-A "normal" Build.PL looks like this (with only the minimum required
-fields):
-
- use Module::Build;
-
- Module::Build->new(
- module_name => 'Foo::Bar',
- license => 'perl',
- )->create_build_script;
-
-A "bundling" Build.PL replaces the initial "use" line with a nearly
-transparent replacement:
-
- use inc::latest 'Module::Build';
-
- Module::Build->new(
- module_name => 'Foo::Bar',
- license => 'perl',
- )->create_build_script;
-
-For I<authors>, when "Build dist" is run, Module::Build will be
-automatically bundled into C<inc> according to the rules for
-L<inc::latest>.
-
-For I<users>, inc::latest will load the latest Module::Build, whether
-installed or bundled in C<inc/>.
-
-=head1 BUNDLING OTHER CONFIGURATION DEPENDENCIES
-
-The same approach works for other configuration dependencies -- modules
-that I<must> be available for Build.PL to run. All other dependencies can
-be specified as usual in the Build.PL and CPAN or CPANPLUS will install
-them after Build.PL finishes.
-
-For example, to bundle the L<Devel::AssertOS::Unix> module (which ensures a
-"Unix-like" operating system), one could do this:
-
- use inc::latest 'Devel::AssertOS::Unix';
- use inc::latest 'Module::Build';
-
- Module::Build->new(
- module_name => 'Foo::Bar',
- license => 'perl',
- )->create_build_script;
-
-The C<inc::latest> module creates bundled directories based on the packlist
-file of an installed distribution. Even though C<inc::latest> takes module
-name arguments, it is better to think of it as bundling and making
-available entire I<distributions>. When a module is loaded through
-C<inc::latest>, it looks in all bundled distributions in C<inc/> for a
-newer module than can be found in the existing C<@INC> array.
-
-Thus, the module-name provided should usually be the "top-level" module
-name of a distribution, though this is not strictly required. For example,
-L<Module::Build> has a number of heuristics to map module names to
-packlists, allowing users to do things like this:
-
- use inc::latest 'Devel::AssertOS::Unix';
-
-even though Devel::AssertOS::Unix is contained within the Devel-CheckOS
-distribution.
-
-At the current time, packlists are required. Thus, bundling dual-core
-modules, I<including Module::Build>, may require a 'forced install' over
-versions in the latest version of perl in order to create the necessary
-packlist for bundling. This limitation will hopefully be addressed in a
-future version of Module::Build.
-
-=head2 WARNING -- How to Manage Dependency Chains
-
-Before bundling a distribution you must ensure that all prerequisites are
-also bundled and load in the correct order. For Module::Build itself, this
-should not be necessary, but it is necessary for any other distribution.
-(A future release of Module::Build will hopefully address this deficiency.)
-
-For example, if you need C<Wibble>, but C<Wibble> depends on C<Wobble>,
-your Build.PL might look like this:
-
- use inc::latest 'Wobble';
- use inc::latest 'Wibble';
- use inc::latest 'Module::Build';
-
- Module::Build->new(
- module_name => 'Foo::Bar',
- license => 'perl',
- )->create_build_script;
-
-Authors are strongly suggested to limit the bundling of additional
-dependencies if at all possible and to carefully test their distribution
-tarballs on older versions of Perl before uploading to CPAN.
-
-=head1 AUTHOR
-
-David Golden <dagolden@cpan.org>
-
-Development questions, bug reports, and patches should be sent to the
-Module-Build mailing list at <module-build@perl.org>.
-
-Bug reports are also welcome at
-<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Build>.
-
-=head1 SEE ALSO
-
-perl(1), L<inc::latest>, L<Module::Build>(3), L<Module::Build::API>(3),
-L<Module::Build::Cookbook>(3),
-
-=cut
-
-# vim: tw=75
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Compat.pm b/Master/tlpkg/tlperl/lib/Module/Build/Compat.pm
deleted file mode 100644
index 11bbf11b4a9..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Compat.pm
+++ /dev/null
@@ -1,632 +0,0 @@
-package Module::Build::Compat;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-
-use File::Basename ();
-use File::Spec;
-use Config;
-use Module::Build;
-use Module::Build::ModuleInfo;
-use Module::Build::Version;
-use Data::Dumper;
-
-my %convert_installdirs = (
- PERL => 'core',
- SITE => 'site',
- VENDOR => 'vendor',
-);
-
-my %makefile_to_build =
- (
- TEST_VERBOSE => 'verbose',
- VERBINST => 'verbose',
- INC => sub { map {(extra_compiler_flags => $_)} Module::Build->split_like_shell(shift) },
- POLLUTE => sub { (extra_compiler_flags => '-DPERL_POLLUTE') },
- INSTALLDIRS => sub { (installdirs => $convert_installdirs{uc shift()}) },
- LIB => sub {
- my $lib = shift;
- my %config = (
- installprivlib => $lib,
- installsitelib => $lib,
- installarchlib => "$lib/$Config{archname}",
- installsitearch => "$lib/$Config{archname}"
- );
- return map { (config => "$_=$config{$_}") } keys %config;
- },
-
- # Convert INSTALLVENDORLIB and friends.
- (
- map {
- my $name = $_;
- $name => sub {
- my @ret = (config => lc($name) . "=" . shift );
- print STDERR "# Converted to @ret\n";
-
- return @ret;
- }
- } qw(
- INSTALLARCHLIB INSTALLSITEARCH INSTALLVENDORARCH
- INSTALLPRIVLIB INSTALLSITELIB INSTALLVENDORLIB
- INSTALLBIN INSTALLSITEBIN INSTALLVENDORBIN
- INSTALLSCRIPT INSTALLSITESCRIPT INSTALLVENDORSCRIPT
- INSTALLMAN1DIR INSTALLSITEMAN1DIR INSTALLVENDORMAN1DIR
- INSTALLMAN3DIR INSTALLSITEMAN3DIR INSTALLVENDORMAN3DIR
- )
- ),
-
- # Some names they have in common
- map {$_, lc($_)} qw(DESTDIR PREFIX INSTALL_BASE UNINST),
- );
-
-my %macro_to_build = %makefile_to_build;
-# "LIB=foo make" is not the same as "perl Makefile.PL LIB=foo"
-delete $macro_to_build{LIB};
-
-sub _merge_prereq {
- my ($req, $breq) = @_;
- $req ||= {};
- $breq ||= {};
-
- # validate formats
- for my $p ( $req, $breq ) {
- for my $k (keys %$p) {
- next if $k eq 'perl';
-
- my $v_obj = eval { Module::Build::Version->new($p->{$k}) };
- if ( ! defined $v_obj ) {
- die "A prereq of the form '$p->{$k}' for '$k' is not supported by Module::Build::Compat ( use a simpler version like '0.05' or 'v1.4.25' )\n";
- }
-
- # It seems like a lot of people trip over "0.1.2" stuff, so we help them here...
- if ( $v_obj->is_qv ) {
- my $proper_ver = $v_obj->numify;
- warn "Dotted-decimal prereq '$p->{$k}' for '$k' is not portable - converting it to '$proper_ver'\n";
- $p->{$k} = $proper_ver;
- }
- }
- }
- # merge
- my $merge = { %$req };
- for my $k ( keys %$breq ) {
- my $v1 = $merge->{$k} || 0;
- my $v2 = $breq->{$k};
- $merge->{$k} = $v1 > $v2 ? $v1 : $v2;
- }
- return %$merge;
-}
-
-
-sub create_makefile_pl {
- my ($package, $type, $build, %args) = @_;
-
- die "Don't know how to build Makefile.PL of type '$type'"
- unless $type =~ /^(small|passthrough|traditional)$/;
-
- if ($type eq 'passthrough') {
- $build->log_warn(<<"HERE");
-
-IMPORTANT NOTE: The '$type' style of Makefile.PL is deprecated and
-may be removed in a future version of Module::Build in favor of the
-'configure_requires' property. See Module::Build::Compat
-documentation for details.
-
-HERE
- }
-
- my $fh;
- if ($args{fh}) {
- $fh = $args{fh};
- } else {
- $args{file} ||= 'Makefile.PL';
- local $build->{properties}{quiet} = 1;
- $build->delete_filetree($args{file});
- open($fh, '>', "$args{file}") or die "Can't write $args{file}: $!";
- }
-
- print {$fh} "# Note: this file was auto-generated by ", __PACKAGE__, " version $VERSION\n";
-
- # Minimum perl version should be specified as "require 5.XXXXXX" in
- # Makefile.PL
- my $requires = $build->requires;
- if ( my $minimum_perl = $requires->{perl} ) {
- my $min_ver = Module::Build::Version->new($minimum_perl)->numify;
- print {$fh} "require $min_ver;\n";
- }
-
- # If a *bundled* custom subclass is being used, make sure we add its
- # directory to @INC. Also, lib.pm always needs paths in Unix format.
- my $subclass_load = '';
- if (ref($build) ne "Module::Build") {
- my $subclass_dir = $package->subclass_dir($build);
-
- if (File::Spec->file_name_is_absolute($subclass_dir)) {
- my $base_dir = $build->base_dir;
-
- if ($build->dir_contains($base_dir, $subclass_dir)) {
- $subclass_dir = File::Spec->abs2rel($subclass_dir, $base_dir);
- $subclass_dir = $package->unixify_dir($subclass_dir);
- $subclass_load = "use lib '$subclass_dir';";
- }
- # Otherwise, leave it the empty string
-
- } else {
- $subclass_dir = $package->unixify_dir($subclass_dir);
- $subclass_load = "use lib '$subclass_dir';";
- }
- }
-
- if ($type eq 'small') {
- printf {$fh} <<'EOF', $subclass_load, ref($build), ref($build);
- use Module::Build::Compat 0.02;
- %s
- Module::Build::Compat->run_build_pl(args => \@ARGV);
- require %s;
- Module::Build::Compat->write_makefile(build_class => '%s');
-EOF
-
- } elsif ($type eq 'passthrough') {
- printf {$fh} <<'EOF', $subclass_load, ref($build), ref($build);
-
- unless (eval "use Module::Build::Compat 0.02; 1" ) {
- print "This module requires Module::Build to install itself.\n";
-
- require ExtUtils::MakeMaker;
- my $yn = ExtUtils::MakeMaker::prompt
- (' Install Module::Build now from CPAN?', 'y');
-
- unless ($yn =~ /^y/i) {
- die " *** Cannot install without Module::Build. Exiting ...\n";
- }
-
- require Cwd;
- require File::Spec;
- require CPAN;
-
- # Save this 'cause CPAN will chdir all over the place.
- my $cwd = Cwd::cwd();
-
- CPAN::Shell->install('Module::Build::Compat');
- CPAN::Shell->expand("Module", "Module::Build::Compat")->uptodate
- or die "Couldn't install Module::Build, giving up.\n";
-
- chdir $cwd or die "Cannot chdir() back to $cwd: $!";
- }
- eval "use Module::Build::Compat 0.02; 1" or die $@;
- %s
- Module::Build::Compat->run_build_pl(args => \@ARGV);
- my $build_script = 'Build';
- $build_script .= '.com' if $^O eq 'VMS';
- exit(0) unless(-e $build_script); # cpantesters convention
- require %s;
- Module::Build::Compat->write_makefile(build_class => '%s');
-EOF
-
- } elsif ($type eq 'traditional') {
-
- my (%MM_Args, %prereq);
- if (eval "use Tie::IxHash 1.2; 1") {
- tie %MM_Args, 'Tie::IxHash'; # Don't care if it fails here
- tie %prereq, 'Tie::IxHash'; # Don't care if it fails here
- }
-
- my %name = ($build->module_name
- ? (NAME => $build->module_name)
- : (DISTNAME => $build->dist_name));
-
- my %version = ($build->dist_version_from
- ? (VERSION_FROM => $build->dist_version_from)
- : (VERSION => $build->dist_version)
- );
- %MM_Args = (%name, %version);
-
- %prereq = _merge_prereq( $build->requires, $build->build_requires );
- %prereq = map {$_, $prereq{$_}} sort keys %prereq;
-
- delete $prereq{perl};
- $MM_Args{PREREQ_PM} = \%prereq;
-
- $MM_Args{INSTALLDIRS} = $build->installdirs eq 'core' ? 'perl' : $build->installdirs;
-
- $MM_Args{EXE_FILES} = [ sort keys %{$build->script_files} ] if $build->script_files;
-
- $MM_Args{PL_FILES} = $build->PL_files || {};
-
- if ($build->recursive_test_files) {
- $MM_Args{test} = { TESTS => join q{ }, $package->_test_globs($build) };
- }
-
- local $Data::Dumper::Terse = 1;
- my $args = Data::Dumper::Dumper(\%MM_Args);
- $args =~ s/\{(.*)\}/($1)/s;
-
- print $fh <<"EOF";
-use ExtUtils::MakeMaker;
-WriteMakefile
-$args;
-EOF
- }
-}
-
-sub _test_globs {
- my ($self, $build) = @_;
-
- return map { File::Spec->catfile($_, '*.t') }
- @{$build->rscan_dir('t', sub { -d $File::Find::name })};
-}
-
-sub subclass_dir {
- my ($self, $build) = @_;
-
- return (Module::Build::ModuleInfo->find_module_dir_by_name(ref $build)
- || File::Spec->catdir($build->config_dir, 'lib'));
-}
-
-sub unixify_dir {
- my ($self, $path) = @_;
- return join '/', File::Spec->splitdir($path);
-}
-
-sub makefile_to_build_args {
- my $class = shift;
- my @out;
- foreach my $arg (@_) {
- next if $arg eq '';
-
- my ($key, $val) = ($arg =~ /^(\w+)=(.+)/ ? ($1, $2) :
- die "Malformed argument '$arg'");
-
- # Do tilde-expansion if it looks like a tilde prefixed path
- ( $val ) = Module::Build->_detildefy( $val ) if $val =~ /^~/;
-
- if (exists $makefile_to_build{$key}) {
- my $trans = $makefile_to_build{$key};
- push @out, $class->_argvify( ref($trans) ? $trans->($val) : ($trans => $val) );
- } elsif (exists $Config{lc($key)}) {
- push @out, $class->_argvify( config => lc($key) . "=$val" );
- } else {
- # Assume M::B can handle it in lowercase form
- push @out, $class->_argvify("\L$key" => $val);
- }
- }
- return @out;
-}
-
-sub _argvify {
- my ($self, @pairs) = @_;
- my @out;
- while (@pairs) {
- my ($k, $v) = splice @pairs, 0, 2;
- push @out, ("--$k", $v);
- }
- return @out;
-}
-
-sub makefile_to_build_macros {
- my @out;
- my %config; # must accumulate and return as a hashref
- while (my ($macro, $trans) = each %macro_to_build) {
- # On some platforms (e.g. Cygwin with 'make'), the mere presence
- # of "EXPORT: FOO" in the Makefile will make $ENV{FOO} defined.
- # Therefore we check length() too.
- next unless exists $ENV{$macro} && length $ENV{$macro};
- my $val = $ENV{$macro};
- my @args = ref($trans) ? $trans->($val) : ($trans => $val);
- while (@args) {
- my ($k, $v) = splice(@args, 0, 2);
- if ( $k eq 'config' ) {
- if ( $v =~ /^([^=]+)=(.*)$/ ) {
- $config{$1} = $2;
- }
- else {
- warn "Couldn't parse config '$v'\n";
- }
- }
- else {
- push @out, ($k => $v);
- }
- }
- }
- push @out, (config => \%config) if %config;
- return @out;
-}
-
-sub run_build_pl {
- my ($pack, %in) = @_;
- $in{script} ||= 'Build.PL';
- my @args = $in{args} ? $pack->makefile_to_build_args(@{$in{args}}) : ();
- print "# running $in{script} @args\n";
- Module::Build->run_perl_script($in{script}, [], \@args) or die "Couldn't run $in{script}: $!";
-}
-
-sub fake_makefile {
- my ($self, %args) = @_;
- unless (exists $args{build_class}) {
- warn "Unknown 'build_class', defaulting to 'Module::Build'\n";
- $args{build_class} = 'Module::Build';
- }
- my $class = $args{build_class};
-
- my $perl = $class->find_perl_interpreter;
-
- # VMS MMS/MMK need to use MCR to run the Perl image.
- $perl = 'MCR ' . $perl if $self->_is_vms_mms;
-
- my $noop = ($class->is_windowsish ? 'rem>nul' :
- $self->_is_vms_mms ? 'Continue' :
- 'true');
-
- my $filetype = $class->is_vmsish ? '.COM' : '';
-
- my $Build = 'Build' . $filetype . ' --makefile_env_macros 1';
- my $unlink = $class->oneliner('1 while unlink $ARGV[0]', [], [$args{makefile}]);
- $unlink =~ s/\$/\$\$/g unless $class->is_vmsish;
-
- my $maketext = ($^O eq 'os2' ? "SHELL = sh\n\n" : '');
-
- $maketext .= <<"EOF";
-all : force_do_it
- $perl $Build
-realclean : force_do_it
- $perl $Build realclean
- $unlink
-distclean : force_do_it
- $perl $Build distclean
- $unlink
-
-
-force_do_it :
- @ $noop
-EOF
-
- foreach my $action ($class->known_actions) {
- next if $action =~ /^(all|distclean|realclean|force_do_it)$/; # Don't double-define
- $maketext .= <<"EOF";
-$action : force_do_it
- $perl $Build $action
-EOF
- }
-
- if ($self->_is_vms_mms) {
- # Roll our own .EXPORT as MMS/MMK don't honor that directive.
- $maketext .= "\n.FIRST\n\t\@ $noop\n";
- for my $macro (keys %macro_to_build) {
- $maketext .= ".IFDEF $macro\n\tDEFINE $macro \"\$($macro)\"\n.ENDIF\n";
- }
- $maketext .= "\n";
- }
- else {
- $maketext .= "\n.EXPORT : " . join(' ', keys %macro_to_build) . "\n\n";
- }
-
- return $maketext;
-}
-
-sub fake_prereqs {
- my $file = File::Spec->catfile('_build', 'prereqs');
- open(my $fh, '<', "$file") or die "Can't read $file: $!";
- my $prereqs = eval do {local $/; <$fh>};
- close $fh;
-
- my %merged = _merge_prereq( $prereqs->{requires}, $prereqs->{build_requires} );
- my @prereq;
- foreach (sort keys %merged) {
- next if $_ eq 'perl';
- push @prereq, "$_=>q[$merged{$_}]";
- }
- return unless @prereq;
- return "# PREREQ_PM => { " . join(", ", @prereq) . " }\n\n";
-}
-
-
-sub write_makefile {
- my ($pack, %in) = @_;
-
- unless (exists $in{build_class}) {
- warn "Unknown 'build_class', defaulting to 'Module::Build'\n";
- $in{build_class} = 'Module::Build';
- }
- my $class = $in{build_class};
- $in{makefile} ||= $pack->_is_vms_mms ? 'Descrip.MMS' : 'Makefile';
-
- open MAKE, "> $in{makefile}" or die "Cannot write $in{makefile}: $!";
- print MAKE $pack->fake_prereqs;
- print MAKE $pack->fake_makefile(%in);
- close MAKE;
-}
-
-sub _is_vms_mms {
- return Module::Build->is_vmsish && ($Config{make} =~ m/MM[SK]/i);
-}
-
-1;
-__END__
-
-=for :stopwords passthrough
-
-=head1 NAME
-
-Module::Build::Compat - Compatibility with ExtUtils::MakeMaker
-
-=head1 SYNOPSIS
-
- # In a Build.PL :
- use Module::Build;
- my $build = Module::Build->new
- ( module_name => 'Foo::Bar',
- license => 'perl',
- create_makefile_pl => 'traditional' );
- ...
-
-
-=head1 DESCRIPTION
-
-Because C<ExtUtils::MakeMaker> has been the standard way to distribute
-modules for a long time, many tools (CPAN.pm, or your system
-administrator) may expect to find a working F<Makefile.PL> in every
-distribution they download from CPAN. If you want to throw them a
-bone, you can use C<Module::Build::Compat> to automatically generate a
-F<Makefile.PL> for you, in one of several different styles.
-
-C<Module::Build::Compat> also provides some code that helps out the
-F<Makefile.PL> at runtime.
-
-
-=head1 METHODS
-
-=over 4
-
-=item create_makefile_pl($style, $build)
-
-Creates a F<Makefile.PL> in the current directory in one of several
-styles, based on the supplied C<Module::Build> object C<$build>. This is
-typically controlled by passing the desired style as the
-C<create_makefile_pl> parameter to C<Module::Build>'s C<new()> method;
-the F<Makefile.PL> will then be automatically created during the
-C<distdir> action.
-
-The currently supported styles are:
-
-=over 4
-
-=item traditional
-
-A F<Makefile.PL> will be created in the "traditional" style, i.e. it will
-use C<ExtUtils::MakeMaker> and won't rely on C<Module::Build> at all.
-In order to create the F<Makefile.PL>, we'll include the C<requires> and
-C<build_requires> dependencies as the C<PREREQ_PM> parameter.
-
-You don't want to use this style if during the C<perl Build.PL> stage
-you ask the user questions, or do some auto-sensing about the user's
-environment, or if you subclass C<Module::Build> to do some
-customization, because the vanilla F<Makefile.PL> won't do any of that.
-
-=item small
-
-A small F<Makefile.PL> will be created that passes all functionality
-through to the F<Build.PL> script in the same directory. The user must
-already have C<Module::Build> installed in order to use this, or else
-they'll get a module-not-found error.
-
-=item passthrough (DEPRECATED)
-
-This is just like the C<small> option above, but if C<Module::Build> is
-not already installed on the user's system, the script will offer to
-use C<CPAN.pm> to download it and install it before continuing with
-the build.
-
-This option has been deprecated and may be removed in a future version
-of Module::Build. Modern CPAN.pm and CPANPLUS will recognize the
-C<configure_requires> metadata property and install Module::Build before
-running Build.PL if Module::Build is listed and Module::Build now
-adds itself to configure_requires by default.
-
-Perl 5.10.1 includes C<configure_requires> support. In the future, when
-C<configure_requires> support is deemed sufficiently widespread, the
-C<passthrough> style will be removed.
-
-=back
-
-=item run_build_pl(args => \@ARGV)
-
-This method runs the F<Build.PL> script, passing it any arguments the
-user may have supplied to the C<perl Makefile.PL> command. Because
-C<ExtUtils::MakeMaker> and C<Module::Build> accept different arguments, this
-method also performs some translation between the two.
-
-C<run_build_pl()> accepts the following named parameters:
-
-=over 4
-
-=item args
-
-The C<args> parameter specifies the parameters that would usually
-appear on the command line of the C<perl Makefile.PL> command -
-typically you'll just pass a reference to C<@ARGV>.
-
-=item script
-
-This is the filename of the script to run - it defaults to C<Build.PL>.
-
-=back
-
-=item write_makefile()
-
-This method writes a 'dummy' F<Makefile> that will pass all commands
-through to the corresponding C<Module::Build> actions.
-
-C<write_makefile()> accepts the following named parameters:
-
-=over 4
-
-=item makefile
-
-The name of the file to write - defaults to the string C<Makefile>.
-
-=back
-
-=back
-
-
-=head1 SCENARIOS
-
-So, some common scenarios are:
-
-=over 4
-
-=item 1.
-
-Just include a F<Build.PL> script (without a F<Makefile.PL>
-script), and give installation directions in a F<README> or F<INSTALL>
-document explaining how to install the module. In particular, explain
-that the user must install C<Module::Build> before installing your
-module.
-
-Note that if you do this, you may make things easier for yourself, but
-harder for people with older versions of CPAN or CPANPLUS on their
-system, because those tools generally only understand the
-F<Makefile.PL>/C<ExtUtils::MakeMaker> way of doing things.
-
-=item 2.
-
-Include a F<Build.PL> script and a "traditional" F<Makefile.PL>,
-created either manually or with C<create_makefile_pl()>. Users won't
-ever have to install C<Module::Build> if they use the F<Makefile.PL>, but
-they won't get to take advantage of C<Module::Build>'s extra features
-either.
-
-For good measure, of course, test both the F<Makefile.PL> and the
-F<Build.PL> before shipping.
-
-=item 3.
-
-Include a F<Build.PL> script and a "pass-through" F<Makefile.PL>
-built using C<Module::Build::Compat>. This will mean that people can
-continue to use the "old" installation commands, and they may never
-notice that it's actually doing something else behind the scenes. It
-will also mean that your installation process is compatible with older
-versions of tools like CPAN and CPANPLUS.
-
-=back
-
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>
-
-
-=head1 COPYRIGHT
-
-Copyright (c) 2001-2006 Ken Williams. All rights reserved.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-
-=head1 SEE ALSO
-
-L<Module::Build>(3), L<ExtUtils::MakeMaker>(3)
-
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Config.pm b/Master/tlpkg/tlperl/lib/Module/Build/Config.pm
deleted file mode 100644
index 69bec80543a..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Config.pm
+++ /dev/null
@@ -1,59 +0,0 @@
-package Module::Build::Config;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-use Config;
-
-sub new {
- my ($pack, %args) = @_;
- return bless {
- stack => {},
- values => $args{values} || {},
- }, $pack;
-}
-
-sub get {
- my ($self, $key) = @_;
- return $self->{values}{$key} if ref($self) && exists $self->{values}{$key};
- return $Config{$key};
-}
-
-sub set {
- my ($self, $key, $val) = @_;
- $self->{values}{$key} = $val;
-}
-
-sub push {
- my ($self, $key, $val) = @_;
- push @{$self->{stack}{$key}}, $self->{values}{$key}
- if exists $self->{values}{$key};
- $self->{values}{$key} = $val;
-}
-
-sub pop {
- my ($self, $key) = @_;
-
- my $val = delete $self->{values}{$key};
- if ( exists $self->{stack}{$key} ) {
- $self->{values}{$key} = pop @{$self->{stack}{$key}};
- delete $self->{stack}{$key} unless @{$self->{stack}{$key}};
- }
-
- return $val;
-}
-
-sub values_set {
- my $self = shift;
- return undef unless ref($self);
- return $self->{values};
-}
-
-sub all_config {
- my $self = shift;
- my $v = ref($self) ? $self->{values} : {};
- return {%Config, %$v};
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/ConfigData.pm b/Master/tlpkg/tlperl/lib/Module/Build/ConfigData.pm
deleted file mode 100644
index ec72359cd08..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/ConfigData.pm
+++ /dev/null
@@ -1,210 +0,0 @@
-package Module::Build::ConfigData;
-use strict;
-my $arrayref = eval do {local $/; <DATA>}
- or die "Couldn't load ConfigData data: $@";
-close DATA;
-my ($config, $features, $auto_features) = @$arrayref;
-
-sub config { $config->{$_[1]} }
-
-sub set_config { $config->{$_[1]} = $_[2] }
-sub set_feature { $features->{$_[1]} = 0+!!$_[2] } # Constrain to 1 or 0
-
-sub auto_feature_names { grep !exists $features->{$_}, keys %$auto_features }
-
-sub feature_names {
- my @features = (keys %$features, auto_feature_names());
- @features;
-}
-
-sub config_names { keys %$config }
-
-sub write {
- my $me = __FILE__;
-
- # Can't use Module::Build::Dumper here because M::B is only a
- # build-time prereq of this module
- require Data::Dumper;
-
- my $mode_orig = (stat $me)[2] & 07777;
- chmod($mode_orig | 0222, $me); # Make it writeable
- open(my $fh, '+<', $me) or die "Can't rewrite $me: $!";
- seek($fh, 0, 0);
- while (<$fh>) {
- last if /^__DATA__$/;
- }
- die "Couldn't find __DATA__ token in $me" if eof($fh);
-
- seek($fh, tell($fh), 0);
- my $data = [$config, $features, $auto_features];
- print($fh 'do{ my '
- . Data::Dumper->new([$data],['x'])->Purity(1)->Dump()
- . '$x; }' );
- truncate($fh, tell($fh));
- close $fh;
-
- chmod($mode_orig, $me)
- or warn "Couldn't restore permissions on $me: $!";
-}
-
-sub feature {
- my ($package, $key) = @_;
- return $features->{$key} if exists $features->{$key};
-
- my $info = $auto_features->{$key} or return 0;
-
- # Under perl 5.005, each(%$foo) isn't working correctly when $foo
- # was reanimated with Data::Dumper and eval(). Not sure why, but
- # copying to a new hash seems to solve it.
- my %info = %$info;
-
- require Module::Build; # XXX should get rid of this
- while (my ($type, $prereqs) = each %info) {
- next if $type eq 'description' || $type eq 'recommends';
-
- my %p = %$prereqs; # Ditto here.
- while (my ($modname, $spec) = each %p) {
- my $status = Module::Build->check_installed_status($modname, $spec);
- if ((!$status->{ok}) xor ($type =~ /conflicts$/)) { return 0; }
- if ( ! eval "require $modname; 1" ) { return 0; }
- }
- }
- return 1;
-}
-
-
-=head1 NAME
-
-Module::Build::ConfigData - Configuration for Module::Build
-
-=head1 SYNOPSIS
-
- use Module::Build::ConfigData;
- $value = Module::Build::ConfigData->config('foo');
- $value = Module::Build::ConfigData->feature('bar');
-
- @names = Module::Build::ConfigData->config_names;
- @names = Module::Build::ConfigData->feature_names;
-
- Module::Build::ConfigData->set_config(foo => $new_value);
- Module::Build::ConfigData->set_feature(bar => $new_value);
- Module::Build::ConfigData->write; # Save changes
-
-
-=head1 DESCRIPTION
-
-This module holds the configuration data for the C<Module::Build>
-module. It also provides a programmatic interface for getting or
-setting that configuration data. Note that in order to actually make
-changes, you'll have to have write access to the C<Module::Build::ConfigData>
-module, and you should attempt to understand the repercussions of your
-actions.
-
-
-=head1 METHODS
-
-=over 4
-
-=item config($name)
-
-Given a string argument, returns the value of the configuration item
-by that name, or C<undef> if no such item exists.
-
-=item feature($name)
-
-Given a string argument, returns the value of the feature by that
-name, or C<undef> if no such feature exists.
-
-=item set_config($name, $value)
-
-Sets the configuration item with the given name to the given value.
-The value may be any Perl scalar that will serialize correctly using
-C<Data::Dumper>. This includes references, objects (usually), and
-complex data structures. It probably does not include transient
-things like filehandles or sockets.
-
-=item set_feature($name, $value)
-
-Sets the feature with the given name to the given boolean value. The
-value will be converted to 0 or 1 automatically.
-
-=item config_names()
-
-Returns a list of all the names of config items currently defined in
-C<Module::Build::ConfigData>, or in scalar context the number of items.
-
-=item feature_names()
-
-Returns a list of all the names of features currently defined in
-C<Module::Build::ConfigData>, or in scalar context the number of features.
-
-=item auto_feature_names()
-
-Returns a list of all the names of features whose availability is
-dynamically determined, or in scalar context the number of such
-features. Does not include such features that have later been set to
-a fixed value.
-
-=item write()
-
-Commits any changes from C<set_config()> and C<set_feature()> to disk.
-Requires write access to the C<Module::Build::ConfigData> module.
-
-=back
-
-
-=head1 AUTHOR
-
-C<Module::Build::ConfigData> was automatically created using C<Module::Build>.
-C<Module::Build> was written by Ken Williams, but he holds no
-authorship claim or copyright claim to the contents of C<Module::Build::ConfigData>.
-
-=cut
-
-
-__DATA__
-do{ my $x = [
- {},
- {},
- {
- 'dist_authoring' => {
- 'requires' => {
- 'Archive::Tar' => '1.09'
- },
- 'description' => 'Create new distributions',
- 'recommends' => {
- 'Pod::Readme' => '0.04',
- 'Module::Signature' => '0.21'
- }
- },
- 'HTML_support' => {
- 'requires' => {
- 'Pod::Html' => 0
- },
- 'description' => 'Create HTML documentation'
- },
- 'manpage_support' => {
- 'requires' => {
- 'Pod::Man' => 0
- },
- 'description' => 'Create Unix man pages'
- },
- 'license_creation' => {
- 'requires' => {
- 'Software::License' => '0.103009'
- },
- 'description' => 'Create licenses automatically in distributions'
- },
- 'PPM_support' => {
- 'description' => 'Generate PPM files for distributions'
- },
- 'inc_bundling_support' => {
- 'requires' => {
- 'ExtUtils::Installed' => '1.999',
- 'ExtUtils::Install' => '1.54'
- },
- 'description' => 'Bundle Module::Build in inc/'
- }
- }
- ];
-$x; } \ No newline at end of file
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Cookbook.pm b/Master/tlpkg/tlperl/lib/Module/Build/Cookbook.pm
deleted file mode 100644
index 08d10b3ceb2..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Cookbook.pm
+++ /dev/null
@@ -1,529 +0,0 @@
-package Module::Build::Cookbook;
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-
-
-=head1 NAME
-
-Module::Build::Cookbook - Examples of Module::Build Usage
-
-=head1 DESCRIPTION
-
-C<Module::Build> isn't conceptually very complicated, but examples are
-always helpful. The following recipes should help developers and/or
-installers put together the pieces from the other parts of the
-documentation.
-
-
-=head1 BASIC RECIPES
-
-
-=head2 Installing modules that use Module::Build
-
-In most cases, you can just issue the following commands:
-
- perl Build.PL
- ./Build
- ./Build test
- ./Build install
-
-There's nothing complicated here - first you're running a script
-called F<Build.PL>, then you're running a (newly-generated) script
-called F<Build> and passing it various arguments.
-
-The exact commands may vary a bit depending on how you invoke perl
-scripts on your system. For instance, if you have multiple versions
-of perl installed, you can install to one particular perl's library
-directories like so:
-
- /usr/bin/perl5.8.1 Build.PL
- ./Build
- ./Build test
- ./Build install
-
-If you're on Windows where the current directory is always searched
-first for scripts, you'll probably do something like this:
-
- perl Build.PL
- Build
- Build test
- Build install
-
-On the old Mac OS (version 9 or lower) using MacPerl, you can
-double-click on the F<Build.PL> script to create the F<Build> script,
-then double-click on the F<Build> script to run its C<build>, C<test>,
-and C<install> actions.
-
-The F<Build> script knows what perl was used to run F<Build.PL>, so
-you don't need to re-invoke the F<Build> script with the complete perl
-path each time. If you invoke it with the I<wrong> perl path, you'll
-get a warning or a fatal error.
-
-=head2 Modifying Config.pm values
-
-C<Module::Build> relies heavily on various values from perl's
-C<Config.pm> to do its work. For example, default installation paths
-are given by C<installsitelib> and C<installvendorman3dir> and
-friends, C linker & compiler settings are given by C<ld>,
-C<lddlflags>, C<cc>, C<ccflags>, and so on. I<If you're pretty sure
-you know what you're doing>, you can tell C<Module::Build> to pretend
-there are different values in F<Config.pm> than what's really there,
-by passing arguments for the C<--config> parameter on the command
-line:
-
- perl Build.PL --config cc=gcc --config ld=gcc
-
-Inside the C<Build.PL> script the same thing can be accomplished by
-passing values for the C<config> parameter to C<new()>:
-
- my $build = Module::Build->new
- (
- ...
- config => { cc => 'gcc', ld => 'gcc' },
- ...
- );
-
-In custom build code, the same thing can be accomplished by calling
-the L<Module::Build/config> method:
-
- $build->config( cc => 'gcc' ); # Set
- $build->config( ld => 'gcc' ); # Set
- ...
- my $linker = $build->config('ld'); # Get
-
-
-=head2 Installing modules using the programmatic interface
-
-If you need to build, test, and/or install modules from within some
-other perl code (as opposed to having the user type installation
-commands at the shell), you can use the programmatic interface.
-Create a Module::Build object (or an object of a custom Module::Build
-subclass) and then invoke its C<dispatch()> method to run various
-actions.
-
- my $build = Module::Build->new
- (
- module_name => 'Foo::Bar',
- license => 'perl',
- requires => { 'Some::Module' => '1.23' },
- );
- $build->dispatch('build');
- $build->dispatch('test', verbose => 1);
- $build->dispatch('install');
-
-The first argument to C<dispatch()> is the name of the action, and any
-following arguments are named parameters.
-
-This is the interface we use to test Module::Build itself in the
-regression tests.
-
-
-=head2 Installing to a temporary directory
-
-To create packages for package managers like RedHat's C<rpm> or
-Debian's C<deb>, you may need to install to a temporary directory
-first and then create the package from that temporary installation.
-To do this, specify the C<destdir> parameter to the C<install> action:
-
- ./Build install --destdir /tmp/my-package-1.003
-
-This essentially just prepends all the installation paths with the
-F</tmp/my-package-1.003> directory.
-
-
-=head2 Installing to a non-standard directory
-
-To install to a non-standard directory (for example, if you don't have
-permission to install in the system-wide directories), you can use the
-C<install_base> or C<prefix> parameters:
-
- ./Build install --install_base /foo/bar
-
-See L<Module::Build/"INSTALL PATHS"> for a much more complete
-discussion of how installation paths are determined.
-
-
-=head2 Installing in the same location as ExtUtils::MakeMaker
-
-With the introduction of C<--prefix> in Module::Build 0.28 and
-C<INSTALL_BASE> in C<ExtUtils::MakeMaker> 6.31 its easy to get them both
-to install to the same locations.
-
-First, ensure you have at least version 0.28 of Module::Build
-installed and 6.31 of C<ExtUtils::MakeMaker>. Prior versions have
-differing (and in some cases quite strange) installation behaviors.
-
-The following installation flags are equivalent between
-C<ExtUtils::MakeMaker> and C<Module::Build>.
-
- MakeMaker Module::Build
- PREFIX=... --prefix ...
- INSTALL_BASE=... --install_base ...
- DESTDIR=... --destdir ...
- LIB=... --install_path lib=...
- INSTALLDIRS=... --installdirs ...
- INSTALLDIRS=perl --installdirs core
- UNINST=... --uninst ...
- INC=... --extra_compiler_flags ...
- POLLUTE=1 --extra_compiler_flags -DPERL_POLLUTE
-
-For example, if you are currently installing C<MakeMaker> modules with
-this command:
-
- perl Makefile.PL PREFIX=~
- make test
- make install UNINST=1
-
-You can install into the same location with Module::Build using this:
-
- perl Build.PL --prefix ~
- ./Build test
- ./Build install --uninst 1
-
-=head3 C<prefix> vs C<install_base>
-
-The behavior of C<prefix> is complicated and depends 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, it's difficult to document
-where C<prefix> will place your modules.
-
-In contrast, C<install_base> has predictable, easy to explain
-installation locations. Now that C<Module::Build> and C<MakeMaker> both
-have C<install_base> there is little reason to use C<prefix> other
-than to preserve your existing installation locations. If you are
-starting a fresh Perl installation we encourage you to use
-C<install_base>. If you have an existing installation installed via
-C<prefix>, consider moving it to an installation structure matching
-C<install_base> and using that instead.
-
-
-=head2 Running a single test file
-
-C<Module::Build> supports running a single test, which enables you to
-track down errors more quickly. Use the following format:
-
- ./Build test --test_files t/mytest.t
-
-In addition, you may want to run the test in verbose mode to get more
-informative output:
-
- ./Build test --test_files t/mytest.t --verbose 1
-
-I run this so frequently that I define the following shell alias:
-
- alias t './Build test --verbose 1 --test_files'
-
-So then I can just execute C<t t/mytest.t> to run a single test.
-
-
-=head1 ADVANCED RECIPES
-
-
-=head2 Making a CPAN.pm-compatible distribution
-
-New versions of CPAN.pm understand how to use a F<Build.PL> script,
-but old versions don't. If authors want to help users who have old
-versions, some form of F<Makefile.PL> should be supplied. The easiest
-way to accomplish this is to use the C<create_makefile_pl> parameter to
-C<< Module::Build->new() >> in the C<Build.PL> script, which can
-create various flavors of F<Makefile.PL> during the C<dist> action.
-
-As a best practice, we recommend using the "traditional" style of
-F<Makefile.PL> unless your distribution has needs that can't be
-accomplished that way.
-
-The C<Module::Build::Compat> module, which is part of
-C<Module::Build>'s distribution, is responsible for creating these
-F<Makefile.PL>s. Please see L<Module::Build::Compat> for the details.
-
-
-=head2 Changing the order of the build process
-
-The C<build_elements> property specifies the steps C<Module::Build>
-will take when building a distribution. To change the build order,
-change the order of the entries in that property:
-
- # Process pod files first
- my @e = @{$build->build_elements};
- my ($i) = grep {$e[$_] eq 'pod'} 0..$#e;
- unshift @e, splice @e, $i, 1;
-
-Currently, C<build_elements> has the following default value:
-
- [qw( PL support pm xs pod script )]
-
-Do take care when altering this property, since there may be
-non-obvious (and non-documented!) ordering dependencies in the
-C<Module::Build> code.
-
-
-=head2 Adding new file types to the build process
-
-Sometimes you might have extra types of files that you want to install
-alongside the standard types like F<.pm> and F<.pod> files. For
-instance, you might have a F<Bar.dat> file containing some data
-related to the C<Foo::Bar> module and you'd like for it to end up as
-F<Foo/Bar.dat> somewhere in perl's C<@INC> path so C<Foo::Bar> can
-access it easily at runtime. The following code from a sample
-C<Build.PL> file demonstrates how to accomplish this:
-
- use Module::Build;
- my $build = Module::Build->new
- (
- module_name => 'Foo::Bar',
- ...other stuff here...
- );
- $build->add_build_element('dat');
- $build->create_build_script;
-
-This will find all F<.dat> files in the F<lib/> directory, copy them
-to the F<blib/lib/> directory during the C<build> action, and install
-them during the C<install> action.
-
-If your extra files aren't located in the C<lib/> directory in your
-distribution, you can explicitly say where they are, just as you'd do
-with F<.pm> or F<.pod> files:
-
- use Module::Build;
- my $build = new Module::Build
- (
- module_name => 'Foo::Bar',
- dat_files => {'some/dir/Bar.dat' => 'lib/Foo/Bar.dat'},
- ...other stuff here...
- );
- $build->add_build_element('dat');
- $build->create_build_script;
-
-If your extra files actually need to be created on the user's machine,
-or if they need some other kind of special processing, you'll probably
-want to subclass C<Module::Build> and create a special method to
-process them, named C<process_${kind}_files()>:
-
- use Module::Build;
- my $class = Module::Build->subclass(code => <<'EOF');
- sub process_dat_files {
- my $self = shift;
- ... locate and process *.dat files,
- ... and create something in blib/lib/
- }
- EOF
- my $build = $class->new
- (
- module_name => 'Foo::Bar',
- ...other stuff here...
- );
- $build->add_build_element('dat');
- $build->create_build_script;
-
-If your extra files don't go in F<lib/> but in some other place, see
-L<"Adding new elements to the install process"> for how to actually
-get them installed.
-
-Please note that these examples use some capabilities of Module::Build
-that first appeared in version 0.26. Before that it could
-still be done, but the simple cases took a bit more work.
-
-
-=head2 Adding new elements to the install process
-
-By default, Module::Build creates seven subdirectories of the F<blib>
-directory during the build process: F<lib>, F<arch>, F<bin>,
-F<script>, F<bindoc>, F<libdoc>, and F<html> (some of these may be
-missing or empty if there's nothing to go in them). Anything copied
-to these directories during the build will eventually be installed
-during the C<install> action (see L<Module::Build/"INSTALL PATHS">.
-
-If you need to create a new custom type of installable element, e.g. C<conf>,
-then you need to tell Module::Build where things in F<blib/conf/>
-should be installed. To do this, use the C<install_path> parameter to
-the C<new()> method:
-
- my $build = Module::Build->new
- (
- ...other stuff here...
- install_path => { conf => $installation_path }
- );
-
-Or you can call the C<install_path()> method later:
-
- $build->install_path(conf => $installation_path);
-
-The user may also specify the path on the command line:
-
- perl Build.PL --install_path conf=/foo/path/etc
-
-The important part, though, is that I<somehow> the install path needs
-to be set, or else nothing in the F<blib/conf/> directory will get
-installed, and a runtime error during the C<install> action will
-result.
-
-See also L<"Adding new file types to the build process"> for how to
-create the stuff in F<blib/conf/> in the first place.
-
-
-=head1 EXAMPLES ON CPAN
-
-Several distributions on CPAN are making good use of various features
-of Module::Build. They can serve as real-world examples for others.
-
-
-=head2 SVN-Notify-Mirror
-
-L<http://search.cpan.org/~jpeacock/SVN-Notify-Mirror/>
-
-John Peacock, author of the C<SVN-Notify-Mirror> distribution, says:
-
-=over 4
-
-=item 1. Using C<auto_features>, I check to see whether two optional
-modules are available - SVN::Notify::Config and Net::SSH;
-
-=item 2. If the S::N::Config module is loaded, I automatically
-generate test files for it during Build (using the C<PL_files>
-property).
-
-=item 3. If the C<ssh_feature> is available, I ask if the user wishes
-to perform the ssh tests (since it requires a little preliminary
-setup);
-
-=item 4. Only if the user has C<ssh_feature> and answers yes to the
-testing, do I generate a test file.
-
-I'm sure I could not have handled this complexity with EU::MM, but it
-was very easy to do with M::B.
-
-=back
-
-
-=head2 Modifying an action
-
-Sometimes you might need an to have an action, say C<./Build install>,
-do something unusual. For instance, you might need to change the
-ownership of a file or do something else peculiar to your application.
-
-You can subclass C<Module::Build> on the fly using the C<subclass()>
-method and override the methods that perform the actions. You may
-need to read through C<Module::Build::Authoring> and
-C<Module::Build::API> to find the methods you want to override. All
-"action" methods are implemented by a method called "ACTION_" followed
-by the action's name, so here's an example of how it would work for
-the C<install> action:
-
- # Build.PL
- use Module::Build;
- my $class = Module::Build->subclass(
- class => "Module::Build::Custom",
- code => <<'SUBCLASS' );
-
- sub ACTION_install {
- my $self = shift;
- # YOUR CODE HERE
- $self->SUPER::ACTION_install;
- }
- SUBCLASS
-
- $class->new(
- module_name => 'Your::Module',
- # rest of the usual Module::Build parameters
- )->create_build_script;
-
-
-=head2 Adding an action
-
-You can add a new C<./Build> action simply by writing the method for
-it in your subclass. Use C<depends_on> to declare that another action
-must have been run before your action.
-
-For example, let's say you wanted to be able to write C<./Build
-commit> to test your code and commit it to Subversion.
-
- # Build.PL
- use Module::Build;
- my $class = Module::Build->subclass(
- class => "Module::Build::Custom",
- code => <<'SUBCLASS' );
-
- sub ACTION_commit {
- my $self = shift;
-
- $self->depends_on("test");
- $self->do_system(qw(svn commit));
- }
- SUBCLASS
-
-
-=head2 Bundling Module::Build
-
-Note: This section probably needs an update as the technology improves
-(see contrib/bundle.pl in the distribution).
-
-Suppose you want to use some new-ish features of Module::Build,
-e.g. newer than the version of Module::Build your users are likely to
-already have installed on their systems. The first thing you should
-do is set C<configure_requires> to your minimum version of
-Module::Build. See L<Module::Build::Authoring>.
-
-But not every build system honors C<configure_requires> yet. Here's
-how you can ship a copy of Module::Build, but still use a newer
-installed version to take advantage of any bug fixes and upgrades.
-
-First, install Module::Build into F<Your-Project/inc/Module-Build>.
-CPAN will not index anything in the F<inc> directory so this copy will
-not show up in CPAN searches.
-
- cd Module-Build
- perl Build.PL --install_base /path/to/Your-Project/inc/Module-Build
- ./Build test
- ./Build install
-
-You should now have all the Module::Build .pm files in
-F<Your-Project/inc/Module-Build/lib/perl5>.
-
-Next, add this to the top of your F<Build.PL>.
-
- my $Bundled_MB = 0.30; # or whatever version it was.
-
- # Find out what version of Module::Build is installed or fail quietly.
- # This should be cross-platform.
- my $Installed_MB =
- `$^X -e "eval q{require Module::Build; print Module::Build->VERSION} or exit 1";
-
- # some operating systems put a newline at the end of every print.
- chomp $Installed_MB;
-
- $Installed_MB = 0 if $?;
-
- # Use our bundled copy of Module::Build if it's newer than the installed.
- unshift @INC, "inc/Module-Build/lib/perl5" if $Bundled_MB > $Installed_MB;
-
- require Module::Build;
-
-And write the rest of your F<Build.PL> normally. Module::Build will
-remember your change to C<@INC> and use it when you run F<./Build>.
-
-In the future, we hope to provide a more automated solution for this
-scenario; see C<inc/latest.pm> in the Module::Build distribution for
-one indication of the direction we're moving.
-
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>
-
-
-=head1 COPYRIGHT
-
-Copyright (c) 2001-2008 Ken Williams. All rights reserved.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-
-=head1 SEE ALSO
-
-perl(1), L<Module::Build>(3), L<Module::Build::Authoring>(3),
-L<Module::Build::API>(3)
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Dumper.pm b/Master/tlpkg/tlperl/lib/Module/Build/Dumper.pm
deleted file mode 100644
index d70a38e5ae5..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Dumper.pm
+++ /dev/null
@@ -1,19 +0,0 @@
-package Module::Build::Dumper;
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-
-# This is just a split-out of a wrapper function to do Data::Dumper
-# stuff "the right way". See:
-# http://groups.google.com/group/perl.module.build/browse_thread/thread/c8065052b2e0d741
-
-use Data::Dumper;
-
-sub _data_dump {
- my ($self, $data) = @_;
- return ("do{ my "
- . Data::Dumper->new([$data],['x'])->Purity(1)->Terse(0)->Dump()
- . '$x; }')
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/ModuleInfo.pm b/Master/tlpkg/tlperl/lib/Module/Build/ModuleInfo.pm
deleted file mode 100644
index 2e1483154dc..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/ModuleInfo.pm
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- mode: cperl; tab-width: 8; indent-tabs-mode: nil; basic-offset: 2 -*-
-# vim:ts=8:sw=2:et:sta:sts=2
-package Module::Build::ModuleInfo;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-
-require Module::Metadata;
-our @ISA = qw/Module::Metadata/;
-
-1;
-
-__END__
-
-=for :stopwords ModuleInfo
-
-=head1 NAME
-
-Module::Build::ModuleInfo - DEPRECATED
-
-=head1 DESCRIPTION
-
-This module has been extracted into a separate distribution and renamed
-L<Module::Metadata>. This module is kept as a subclass wrapper for
-compatibility.
-
-=head1 SEE ALSO
-
-perl(1), L<Module::Build>, L<Module::Metadata>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Notes.pm b/Master/tlpkg/tlperl/lib/Module/Build/Notes.pm
deleted file mode 100644
index bd4a2491b2a..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Notes.pm
+++ /dev/null
@@ -1,332 +0,0 @@
-package Module::Build::Notes;
-
-# A class for persistent hashes
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-use Data::Dumper;
-use Module::Build::Dumper;
-
-sub new {
- my ($class, %args) = @_;
- my $file = delete $args{file} or die "Missing required parameter 'file' to new()";
- my $self = bless {
- disk => {},
- new => {},
- file => $file,
- %args,
- }, $class;
-}
-
-sub restore {
- my $self = shift;
-
- open(my $fh, '<', $self->{file}) or die "Can't read $self->{file}: $!";
- $self->{disk} = eval do {local $/; <$fh>};
- die $@ if $@;
- close $fh;
- $self->{new} = {};
-}
-
-sub access {
- my $self = shift;
- return $self->read() unless @_;
-
- my $key = shift;
- return $self->read($key) unless @_;
-
- my $value = shift;
- $self->write({ $key => $value });
- return $self->read($key);
-}
-
-sub has_data {
- my $self = shift;
- return keys %{$self->read()} > 0;
-}
-
-sub exists {
- my ($self, $key) = @_;
- return exists($self->{new}{$key}) || exists($self->{disk}{$key});
-}
-
-sub read {
- my $self = shift;
-
- if (@_) {
- # Return 1 key as a scalar
- my $key = shift;
- return $self->{new}{$key} if exists $self->{new}{$key};
- return $self->{disk}{$key};
- }
-
- # Return all data
- my $out = (keys %{$self->{new}}
- ? {%{$self->{disk}}, %{$self->{new}}}
- : $self->{disk});
- return wantarray ? %$out : $out;
-}
-
-sub _same {
- my ($self, $x, $y) = @_;
- return 1 if !defined($x) and !defined($y);
- return 0 if !defined($x) or !defined($y);
- return $x eq $y;
-}
-
-sub write {
- my ($self, $href) = @_;
- $href ||= {};
-
- @{$self->{new}}{ keys %$href } = values %$href; # Merge
-
- # Do some optimization to avoid unnecessary writes
- foreach my $key (keys %{ $self->{new} }) {
- next if ref $self->{new}{$key};
- next if ref $self->{disk}{$key} or !exists $self->{disk}{$key};
- delete $self->{new}{$key} if $self->_same($self->{new}{$key}, $self->{disk}{$key});
- }
-
- if (my $file = $self->{file}) {
- my ($vol, $dir, $base) = File::Spec->splitpath($file);
- $dir = File::Spec->catpath($vol, $dir, '');
- return unless -e $dir && -d $dir; # The user needs to arrange for this
-
- return if -e $file and !keys %{ $self->{new} }; # Nothing to do
-
- @{$self->{disk}}{ keys %{$self->{new}} } = values %{$self->{new}}; # Merge
- $self->_dump($file, $self->{disk});
-
- $self->{new} = {};
- }
- return $self->read;
-}
-
-sub _dump {
- my ($self, $file, $data) = @_;
-
- open(my $fh, '>', $file) or die "Can't create '$file': $!";
- print {$fh} Module::Build::Dumper->_data_dump($data);
- close $fh;
-}
-
-my $orig_template = do { local $/; <DATA> };
-close DATA;
-
-sub write_config_data {
- my ($self, %args) = @_;
-
- my $template = $orig_template;
- $template =~ s/NOTES_NAME/$args{config_module}/g;
- $template =~ s/MODULE_NAME/$args{module}/g;
- $template =~ s/=begin private\n//;
- $template =~ s/=end private/=cut/;
-
- # strip out private POD markers we use to keep pod from being
- # recognized for *this* source file
- $template =~ s{$_\n}{} for '=begin private', '=end private';
-
- open(my $fh, '>', $args{file}) or die "Can't create '$args{file}': $!";
- print {$fh} $template;
- print {$fh} "\n__DATA__\n";
- print {$fh} Module::Build::Dumper->_data_dump([$args{config_data}, $args{feature}, $args{auto_features}]);
- close $fh;
-}
-
-1;
-
-
-=head1 NAME
-
-Module::Build::Notes - Create persistent distribution configuration modules
-
-=head1 DESCRIPTION
-
-This module is used internally by Module::Build to create persistent
-configuration files that can be installed with a distribution. See
-L<Module::Build::ConfigData> for an example.
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>
-
-=head1 COPYRIGHT
-
-Copyright (c) 2001-2006 Ken Williams. All rights reserved.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-perl(1), L<Module::Build>(3)
-
-=cut
-
-__DATA__
-package NOTES_NAME;
-use strict;
-my $arrayref = eval do {local $/; <DATA>}
- or die "Couldn't load ConfigData data: $@";
-close DATA;
-my ($config, $features, $auto_features) = @$arrayref;
-
-sub config { $config->{$_[1]} }
-
-sub set_config { $config->{$_[1]} = $_[2] }
-sub set_feature { $features->{$_[1]} = 0+!!$_[2] } # Constrain to 1 or 0
-
-sub auto_feature_names { grep !exists $features->{$_}, keys %$auto_features }
-
-sub feature_names {
- my @features = (keys %$features, auto_feature_names());
- @features;
-}
-
-sub config_names { keys %$config }
-
-sub write {
- my $me = __FILE__;
-
- # Can't use Module::Build::Dumper here because M::B is only a
- # build-time prereq of this module
- require Data::Dumper;
-
- my $mode_orig = (stat $me)[2] & 07777;
- chmod($mode_orig | 0222, $me); # Make it writeable
- open(my $fh, '+<', $me) or die "Can't rewrite $me: $!";
- seek($fh, 0, 0);
- while (<$fh>) {
- last if /^__DATA__$/;
- }
- die "Couldn't find __DATA__ token in $me" if eof($fh);
-
- seek($fh, tell($fh), 0);
- my $data = [$config, $features, $auto_features];
- print($fh 'do{ my '
- . Data::Dumper->new([$data],['x'])->Purity(1)->Dump()
- . '$x; }' );
- truncate($fh, tell($fh));
- close $fh;
-
- chmod($mode_orig, $me)
- or warn "Couldn't restore permissions on $me: $!";
-}
-
-sub feature {
- my ($package, $key) = @_;
- return $features->{$key} if exists $features->{$key};
-
- my $info = $auto_features->{$key} or return 0;
-
- # Under perl 5.005, each(%$foo) isn't working correctly when $foo
- # was reanimated with Data::Dumper and eval(). Not sure why, but
- # copying to a new hash seems to solve it.
- my %info = %$info;
-
- require Module::Build; # XXX should get rid of this
- while (my ($type, $prereqs) = each %info) {
- next if $type eq 'description' || $type eq 'recommends';
-
- my %p = %$prereqs; # Ditto here.
- while (my ($modname, $spec) = each %p) {
- my $status = Module::Build->check_installed_status($modname, $spec);
- if ((!$status->{ok}) xor ($type =~ /conflicts$/)) { return 0; }
- if ( ! eval "require $modname; 1" ) { return 0; }
- }
- }
- return 1;
-}
-
-=begin private
-
-=head1 NAME
-
-NOTES_NAME - Configuration for MODULE_NAME
-
-=head1 SYNOPSIS
-
- use NOTES_NAME;
- $value = NOTES_NAME->config('foo');
- $value = NOTES_NAME->feature('bar');
-
- @names = NOTES_NAME->config_names;
- @names = NOTES_NAME->feature_names;
-
- NOTES_NAME->set_config(foo => $new_value);
- NOTES_NAME->set_feature(bar => $new_value);
- NOTES_NAME->write; # Save changes
-
-
-=head1 DESCRIPTION
-
-This module holds the configuration data for the C<MODULE_NAME>
-module. It also provides a programmatic interface for getting or
-setting that configuration data. Note that in order to actually make
-changes, you'll have to have write access to the C<NOTES_NAME>
-module, and you should attempt to understand the repercussions of your
-actions.
-
-
-=head1 METHODS
-
-=over 4
-
-=item config($name)
-
-Given a string argument, returns the value of the configuration item
-by that name, or C<undef> if no such item exists.
-
-=item feature($name)
-
-Given a string argument, returns the value of the feature by that
-name, or C<undef> if no such feature exists.
-
-=item set_config($name, $value)
-
-Sets the configuration item with the given name to the given value.
-The value may be any Perl scalar that will serialize correctly using
-C<Data::Dumper>. This includes references, objects (usually), and
-complex data structures. It probably does not include transient
-things like filehandles or sockets.
-
-=item set_feature($name, $value)
-
-Sets the feature with the given name to the given boolean value. The
-value will be converted to 0 or 1 automatically.
-
-=item config_names()
-
-Returns a list of all the names of config items currently defined in
-C<NOTES_NAME>, or in scalar context the number of items.
-
-=item feature_names()
-
-Returns a list of all the names of features currently defined in
-C<NOTES_NAME>, or in scalar context the number of features.
-
-=item auto_feature_names()
-
-Returns a list of all the names of features whose availability is
-dynamically determined, or in scalar context the number of such
-features. Does not include such features that have later been set to
-a fixed value.
-
-=item write()
-
-Commits any changes from C<set_config()> and C<set_feature()> to disk.
-Requires write access to the C<NOTES_NAME> module.
-
-=back
-
-
-=head1 AUTHOR
-
-C<NOTES_NAME> was automatically created using C<Module::Build>.
-C<Module::Build> was written by Ken Williams, but he holds no
-authorship claim or copyright claim to the contents of C<NOTES_NAME>.
-
-=end private
-
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/PPMMaker.pm b/Master/tlpkg/tlperl/lib/Module/Build/PPMMaker.pm
deleted file mode 100644
index 3ffa32ef329..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/PPMMaker.pm
+++ /dev/null
@@ -1,186 +0,0 @@
-package Module::Build::PPMMaker;
-
-use strict;
-use Config;
-use vars qw($VERSION);
-
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-
-# This code is mostly borrowed from ExtUtils::MM_Unix 6.10_03, with a
-# few tweaks based on the PPD spec at
-# http://www.xav.com/perl/site/lib/XML/PPD.html
-
-# The PPD spec is based on <http://www.w3.org/TR/NOTE-OSD>
-
-sub new {
- my $package = shift;
- return bless {@_}, $package;
-}
-
-sub make_ppd {
- my ($self, %args) = @_;
- my $build = delete $args{build};
-
- my @codebase;
- if (exists $args{codebase}) {
- @codebase = ref $args{codebase} ? @{$args{codebase}} : ($args{codebase});
- } else {
- my $distfile = $build->ppm_name . '.tar.gz';
- print "Using default codebase '$distfile'\n";
- @codebase = ($distfile);
- }
-
- my %dist;
- foreach my $info (qw(name author abstract version)) {
- my $method = "dist_$info";
- $dist{$info} = $build->$method() or die "Can't determine distribution's $info\n";
- }
-
- $self->_simple_xml_escape($_) foreach $dist{abstract}, @{$dist{author}};
-
- # TODO: could add <LICENSE HREF=...> tag if we knew what the URLs were for
- # various licenses
- my $ppd = <<"PPD";
-<SOFTPKG NAME=\"$dist{name}\" VERSION=\"$dist{version}\">
- <ABSTRACT>$dist{abstract}</ABSTRACT>
-@{[ join "\n", map " <AUTHOR>$_</AUTHOR>", @{$dist{author}} ]}
- <IMPLEMENTATION>
-PPD
-
- # We don't include recommended dependencies because PPD has no way
- # to distinguish them from normal dependencies. We don't include
- # build_requires dependencies because the PPM installer doesn't
- # build or test before installing. And obviously we don't include
- # conflicts either.
-
- foreach my $type (qw(requires)) {
- my $prereq = $build->$type();
- while (my ($modname, $spec) = each %$prereq) {
- next if $modname eq 'perl';
-
- my $min_version = '0.0';
- foreach my $c ($build->_parse_conditions($spec)) {
- my ($op, $version) = $c =~ /^\s* (<=?|>=?|==|!=) \s* ([\w.]+) \s*$/x;
-
- # This is a nasty hack because it fails if there is no >= op
- if ($op eq '>=') {
- $min_version = $version;
- last;
- }
- }
-
- # PPM4 spec requires a '::' for top level modules
- $modname .= '::' unless $modname =~ /::/;
-
- $ppd .= qq! <REQUIRE NAME="$modname" VERSION="$min_version" />\n!;
- }
- }
-
- # We only include these tags if this module involves XS, on the
- # assumption that pure Perl modules will work on any OS.
- if (keys %{$build->find_xs_files}) {
- my $perl_version = $self->_ppd_version($build->perl_version);
- $ppd .= sprintf(<<'EOF', $self->_varchname($build->config) );
- <ARCHITECTURE NAME="%s" />
-EOF
- }
-
- foreach my $codebase (@codebase) {
- $self->_simple_xml_escape($codebase);
- $ppd .= sprintf(<<'EOF', $codebase);
- <CODEBASE HREF="%s" />
-EOF
- }
-
- $ppd .= <<'EOF';
- </IMPLEMENTATION>
-</SOFTPKG>
-EOF
-
- my $ppd_file = "$dist{name}.ppd";
- open(my $fh, '>', $ppd_file)
- or die "Cannot write to $ppd_file: $!";
-
- binmode($fh, ":utf8")
- if $] >= 5.008 && $Config{useperlio};
- print $fh $ppd;
- close $fh;
-
- return $ppd_file;
-}
-
-sub _ppd_version {
- my ($self, $version) = @_;
-
- # generates something like "0,18,0,0"
- return join ',', (split(/\./, $version), (0)x4)[0..3];
-}
-
-sub _varchname { # Copied from PPM.pm
- my ($self, $config) = @_;
- my $varchname = $config->{archname};
- # Append "-5.8" to architecture name for Perl 5.8 and later
- if ($] >= 5.008) {
- my $vstring = sprintf "%vd", $^V;
- $vstring =~ s/\.\d+$//;
- $varchname .= "-$vstring";
- }
- return $varchname;
-}
-
-{
- my %escapes = (
- "\n" => "\\n",
- '"' => '&quot;',
- '&' => '&amp;',
- '>' => '&gt;',
- '<' => '&lt;',
- );
- my $rx = join '|', keys %escapes;
-
- sub _simple_xml_escape {
- $_[1] =~ s/($rx)/$escapes{$1}/go;
- }
-}
-
-1;
-__END__
-
-
-=head1 NAME
-
-Module::Build::PPMMaker - Perl Package Manager file creation
-
-=head1 SYNOPSIS
-
- On the command line, builds a .ppd file:
- ./Build ppd
-
-
-=head1 DESCRIPTION
-
-This package contains the code that builds F<.ppd> "Perl Package
-Description" files, in support of ActiveState's "Perl Package
-Manager". Details are here:
-L<http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/>
-
-
-=head1 AUTHOR
-
-Dave Rolsky <autarch@urth.org>, Ken Williams <kwilliams@cpan.org>
-
-
-=head1 COPYRIGHT
-
-Copyright (c) 2001-2006 Ken Williams. All rights reserved.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-
-=head1 SEE ALSO
-
-perl(1), Module::Build(3)
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Platform/Default.pm b/Master/tlpkg/tlperl/lib/Module/Build/Platform/Default.pm
deleted file mode 100644
index 8a9cf8b0a75..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Platform/Default.pm
+++ /dev/null
@@ -1,33 +0,0 @@
-package Module::Build::Platform::Default;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-use Module::Build::Base;
-
-use vars qw(@ISA);
-@ISA = qw(Module::Build::Base);
-
-1;
-__END__
-
-
-=head1 NAME
-
-Module::Build::Platform::Default - Stub class for unknown platforms
-
-=head1 DESCRIPTION
-
-The sole purpose of this module is to inherit from
-C<Module::Build::Base>. Please see the L<Module::Build> for the docs.
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>
-
-=head1 SEE ALSO
-
-perl(1), Module::Build(3), ExtUtils::MakeMaker(3)
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Platform/MacOS.pm b/Master/tlpkg/tlperl/lib/Module/Build/Platform/MacOS.pm
deleted file mode 100644
index 7e12ca12fa2..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Platform/MacOS.pm
+++ /dev/null
@@ -1,152 +0,0 @@
-package Module::Build::Platform::MacOS;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-use Module::Build::Base;
-use vars qw(@ISA);
-@ISA = qw(Module::Build::Base);
-
-use ExtUtils::Install;
-
-sub have_forkpipe { 0 }
-
-sub new {
- my $class = shift;
- my $self = $class->SUPER::new(@_);
-
- # $Config{sitelib} and $Config{sitearch} are, unfortunately, missing.
- foreach ('sitelib', 'sitearch') {
- $self->config($_ => $self->config("install$_"))
- unless $self->config($_);
- }
-
- # For some reason $Config{startperl} is filled with a bunch of crap.
- (my $sp = $self->config('startperl')) =~ s/.*Exit \{Status\}\s//;
- $self->config(startperl => $sp);
-
- return $self;
-}
-
-sub make_executable {
- my $self = shift;
- require MacPerl;
- foreach (@_) {
- MacPerl::SetFileInfo('McPL', 'TEXT', $_);
- }
-}
-
-sub dispatch {
- my $self = shift;
-
- if( !@_ and !@ARGV ) {
- require MacPerl;
-
- # What comes first in the action list.
- my @action_list = qw(build test install);
- my %actions = map {+($_, 1)} $self->known_actions;
- delete @actions{@action_list};
- push @action_list, sort { $a cmp $b } keys %actions;
-
- my %toolserver = map {+$_ => 1} qw(test disttest diff testdb);
- foreach (@action_list) {
- $_ .= ' *' if $toolserver{$_};
- }
-
- my $cmd = MacPerl::Pick("What build command? ('*' requires ToolServer)", @action_list);
- return unless defined $cmd;
- $cmd =~ s/ \*$//;
- $ARGV[0] = ($cmd);
-
- my $args = MacPerl::Ask('Any extra arguments? (ie. verbose=1)', '');
- return unless defined $args;
- push @ARGV, $self->split_like_shell($args);
- }
-
- $self->SUPER::dispatch(@_);
-}
-
-sub ACTION_realclean {
- my $self = shift;
- chmod 0666, $self->{properties}{build_script};
- $self->SUPER::ACTION_realclean;
-}
-
-# ExtUtils::Install has a hard-coded '.' directory in versions less
-# than 1.30. We use a sneaky trick to turn that into ':'.
-#
-# Note that we do it here in a cross-platform way, so this code could
-# actually go in Module::Build::Base. But we put it here to be less
-# intrusive for other platforms.
-
-sub ACTION_install {
- my $self = shift;
-
- return $self->SUPER::ACTION_install(@_)
- if eval {ExtUtils::Install->VERSION('1.30'); 1};
-
- local $^W = 0; # Avoid a 'redefine' warning
- local *ExtUtils::Install::find = sub {
- my ($code, @dirs) = @_;
-
- @dirs = map { $_ eq '.' ? File::Spec->curdir : $_ } @dirs;
-
- return File::Find::find($code, @dirs);
- };
-
- return $self->SUPER::ACTION_install(@_);
-}
-
-1;
-__END__
-
-=head1 NAME
-
-Module::Build::Platform::MacOS - Builder class for MacOS platforms
-
-=head1 DESCRIPTION
-
-The sole purpose of this module is to inherit from
-C<Module::Build::Base> and override a few methods. Please see
-L<Module::Build> for the docs.
-
-=head2 Overridden Methods
-
-=over 4
-
-=item new()
-
-MacPerl doesn't define $Config{sitelib} or $Config{sitearch} for some
-reason, but $Config{installsitelib} and $Config{installsitearch} are
-there. So we copy the install variables to the other location
-
-=item make_executable()
-
-On MacOS we set the file type and creator to MacPerl so it will run
-with a double-click.
-
-=item dispatch()
-
-Because there's no easy way to say "./Build test" on MacOS, if
-dispatch is called with no arguments and no @ARGV a dialog box will
-pop up asking what action to take and any extra arguments.
-
-Default action is "test".
-
-=item ACTION_realclean()
-
-Need to unlock the Build program before deleting.
-
-=back
-
-=head1 AUTHOR
-
-Michael G Schwern <schwern@pobox.com>
-
-
-=head1 SEE ALSO
-
-perl(1), Module::Build(3), ExtUtils::MakeMaker(3)
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Platform/Unix.pm b/Master/tlpkg/tlperl/lib/Module/Build/Platform/Unix.pm
deleted file mode 100644
index ec13ebea9be..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Platform/Unix.pm
+++ /dev/null
@@ -1,73 +0,0 @@
-package Module::Build::Platform::Unix;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-use Module::Build::Base;
-
-use vars qw(@ISA);
-@ISA = qw(Module::Build::Base);
-
-sub is_executable {
- # We consider the owner bit to be authoritative on a file, because
- # -x will always return true if the user is root and *any*
- # executable bit is set. The -x test seems to try to answer the
- # question "can I execute this file", but I think we want "is this
- # file executable".
-
- my ($self, $file) = @_;
- return +(stat $file)[2] & 0100;
-}
-
-sub _startperl { "#! " . shift()->perl }
-
-sub _construct {
- my $self = shift()->SUPER::_construct(@_);
-
- # perl 5.8.1-RC[1-3] had some broken %Config entries, and
- # unfortunately Red Hat 9 shipped it like that. Fix 'em up here.
- my $c = $self->{config};
- for (qw(siteman1 siteman3 vendorman1 vendorman3)) {
- $c->{"install${_}dir"} ||= $c->{"install${_}"};
- }
-
- return $self;
-}
-
-# Open group says username should be portable filename characters,
-# but some Unix OS working with ActiveDirectory wind up with user-names
-# with back-slashes in the name. The new code below is very liberal
-# in what it accepts.
-sub _detildefy {
- my ($self, $value) = @_;
- $value =~ s[^~([^/]+)?(?=/|$)] # tilde with optional username
- [$1 ?
- (eval{(getpwnam $1)[7]} || "~$1") :
- ($ENV{HOME} || eval{(getpwuid $>)[7]} || glob("~"))
- ]ex;
- return $value;
-}
-
-1;
-__END__
-
-
-=head1 NAME
-
-Module::Build::Platform::Unix - Builder class for Unix platforms
-
-=head1 DESCRIPTION
-
-The sole purpose of this module is to inherit from
-C<Module::Build::Base>. Please see the L<Module::Build> for the docs.
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>
-
-=head1 SEE ALSO
-
-perl(1), Module::Build(3), ExtUtils::MakeMaker(3)
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Platform/VMS.pm b/Master/tlpkg/tlperl/lib/Module/Build/Platform/VMS.pm
deleted file mode 100644
index 5b06baa5f87..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Platform/VMS.pm
+++ /dev/null
@@ -1,523 +0,0 @@
-package Module::Build::Platform::VMS;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-use Module::Build::Base;
-use Config;
-
-use vars qw(@ISA);
-@ISA = qw(Module::Build::Base);
-
-
-
-=head1 NAME
-
-Module::Build::Platform::VMS - Builder class for VMS platforms
-
-=head1 DESCRIPTION
-
-This module inherits from C<Module::Build::Base> and alters a few
-minor details of its functionality. Please see L<Module::Build> for
-the general docs.
-
-=head2 Overridden Methods
-
-=over 4
-
-=item _set_defaults
-
-Change $self->{build_script} to 'Build.com' so @Build works.
-
-=cut
-
-sub _set_defaults {
- my $self = shift;
- $self->SUPER::_set_defaults(@_);
-
- $self->{properties}{build_script} = 'Build.com';
-}
-
-
-=item cull_args
-
-'@Build foo' on VMS will not preserve the case of 'foo'. Rather than forcing
-people to write '@Build "foo"' we'll dispatch case-insensitively.
-
-=cut
-
-sub cull_args {
- my $self = shift;
- my($action, $args) = $self->SUPER::cull_args(@_);
- my @possible_actions = grep { lc $_ eq lc $action } $self->known_actions;
-
- die "Ambiguous action '$action'. Could be one of @possible_actions"
- if @possible_actions > 1;
-
- return ($possible_actions[0], $args);
-}
-
-
-=item manpage_separator
-
-Use '__' instead of '::'.
-
-=cut
-
-sub manpage_separator {
- return '__';
-}
-
-
-=item prefixify
-
-Prefixify taking into account VMS' filepath syntax.
-
-=cut
-
-# Translated from ExtUtils::MM_VMS::prefixify()
-
-sub _catprefix {
- my($self, $rprefix, $default) = @_;
-
- my($rvol, $rdirs) = File::Spec->splitpath($rprefix);
- if( $rvol ) {
- return File::Spec->catpath($rvol,
- File::Spec->catdir($rdirs, $default),
- ''
- )
- }
- else {
- return File::Spec->catdir($rdirs, $default);
- }
-}
-
-
-sub _prefixify {
- my($self, $path, $sprefix, $type) = @_;
- my $rprefix = $self->prefix;
-
- return '' unless defined $path;
-
- $self->log_verbose(" prefixify $path from $sprefix to $rprefix\n");
-
- # Translate $(PERLPREFIX) to a real path.
- $rprefix = VMS::Filespec::vmspath($rprefix) if $rprefix;
- $sprefix = VMS::Filespec::vmspath($sprefix) if $sprefix;
-
- $self->log_verbose(" rprefix translated to $rprefix\n".
- " sprefix translated to $sprefix\n");
-
- if( length($path) == 0 ) {
- $self->log_verbose(" no path to prefixify.\n")
- }
- elsif( !File::Spec->file_name_is_absolute($path) ) {
- $self->log_verbose(" path is relative, not prefixifying.\n");
- }
- elsif( $sprefix eq $rprefix ) {
- $self->log_verbose(" no new prefix.\n");
- }
- else {
- my($path_vol, $path_dirs) = File::Spec->splitpath( $path );
- my $vms_prefix = $self->config('vms_prefix');
- if( $path_vol eq $vms_prefix.':' ) {
- $self->log_verbose(" $vms_prefix: seen\n");
-
- $path_dirs =~ s{^\[}{\[.} unless $path_dirs =~ m{^\[\.};
- $path = $self->_catprefix($rprefix, $path_dirs);
- }
- else {
- $self->log_verbose(" cannot prefixify.\n");
- return $self->prefix_relpaths($self->installdirs, $type);
- }
- }
-
- $self->log_verbose(" now $path\n");
-
- return $path;
-}
-
-=item _quote_args
-
-Command-line arguments (but not the command itself) must be quoted
-to ensure case preservation.
-
-=cut
-
-sub _quote_args {
- # Returns a string that can become [part of] a command line with
- # proper quoting so that the subprocess sees this same list of args,
- # or if we get a single arg that is an array reference, quote the
- # elements of it and return the reference.
- my ($self, @args) = @_;
- my $got_arrayref = (scalar(@args) == 1
- && UNIVERSAL::isa($args[0], 'ARRAY'))
- ? 1
- : 0;
-
- # Do not quote qualifiers that begin with '/'.
- map { if (!/^\//) {
- $_ =~ s/\"/""/g; # escape C<"> by doubling
- $_ = q(").$_.q(");
- }
- }
- ($got_arrayref ? @{$args[0]}
- : @args
- );
-
- return $got_arrayref ? $args[0]
- : join(' ', @args);
-}
-
-=item have_forkpipe
-
-There is no native fork(), so some constructs depending on it are not
-available.
-
-=cut
-
-sub have_forkpipe { 0 }
-
-=item _backticks
-
-Override to ensure that we quote the arguments but not the command.
-
-=cut
-
-sub _backticks {
- # The command must not be quoted but the arguments to it must be.
- my ($self, @cmd) = @_;
- my $cmd = shift @cmd;
- my $args = $self->_quote_args(@cmd);
- return `$cmd $args`;
-}
-
-=item find_command
-
-Local an executable program
-
-=cut
-
-sub find_command {
- my ($self, $command) = @_;
-
- # a lot of VMS executables have a symbol defined
- # check those first
- if ( $^O eq 'VMS' ) {
- require VMS::DCLsym;
- my $syms = VMS::DCLsym->new;
- return $command if scalar $syms->getsym( uc $command );
- }
-
- $self->SUPER::find_command($command);
-}
-
-# _maybe_command copied from ExtUtils::MM_VMS::maybe_command
-
-=item _maybe_command (override)
-
-Follows VMS naming conventions for executable files.
-If the name passed in doesn't exactly match an executable file,
-appends F<.Exe> (or equivalent) to check for executable image, and F<.Com>
-to check for DCL procedure. If this fails, checks directories in DCL$PATH
-and finally F<Sys$System:> for an executable file having the name specified,
-with or without the F<.Exe>-equivalent suffix.
-
-=cut
-
-sub _maybe_command {
- my($self,$file) = @_;
- return $file if -x $file && ! -d _;
- my(@dirs) = ('');
- my(@exts) = ('',$Config{'exe_ext'},'.exe','.com');
-
- if ($file !~ m![/:>\]]!) {
- for (my $i = 0; defined $ENV{"DCL\$PATH;$i"}; $i++) {
- my $dir = $ENV{"DCL\$PATH;$i"};
- $dir .= ':' unless $dir =~ m%[\]:]$%;
- push(@dirs,$dir);
- }
- push(@dirs,'Sys$System:');
- foreach my $dir (@dirs) {
- my $sysfile = "$dir$file";
- foreach my $ext (@exts) {
- return $file if -x "$sysfile$ext" && ! -d _;
- }
- }
- }
- return;
-}
-
-=item do_system
-
-Override to ensure that we quote the arguments but not the command.
-
-=cut
-
-sub do_system {
- # The command must not be quoted but the arguments to it must be.
- my ($self, @cmd) = @_;
- $self->log_verbose("@cmd\n");
- my $cmd = shift @cmd;
- my $args = $self->_quote_args(@cmd);
- return !system("$cmd $args");
-}
-
-=item oneliner
-
-Override to ensure that we do not quote the command.
-
-=cut
-
-sub oneliner {
- my $self = shift;
- my $oneliner = $self->SUPER::oneliner(@_);
-
- $oneliner =~ s/^\"\S+\"//;
-
- return "MCR $^X $oneliner";
-}
-
-=item rscan_dir
-
-Inherit the standard version but remove dots at end of name.
-If the extended character set is in effect, do not remove dots from filenames
-with Unix path delimiters.
-
-=cut
-
-sub rscan_dir {
- my ($self, $dir, $pattern) = @_;
-
- my $result = $self->SUPER::rscan_dir( $dir, $pattern );
-
- for my $file (@$result) {
- if (!_efs() && ($file =~ m#/#)) {
- $file =~ s/\.$//;
- }
- }
- return $result;
-}
-
-=item dist_dir
-
-Inherit the standard version but replace embedded dots with underscores because
-a dot is the directory delimiter on VMS.
-
-=cut
-
-sub dist_dir {
- my $self = shift;
-
- my $dist_dir = $self->SUPER::dist_dir;
- $dist_dir =~ s/\./_/g unless _efs();
- return $dist_dir;
-}
-
-=item man3page_name
-
-Inherit the standard version but chop the extra manpage delimiter off the front if
-there is one. The VMS version of splitdir('[.foo]') returns '', 'foo'.
-
-=cut
-
-sub man3page_name {
- my $self = shift;
-
- my $mpname = $self->SUPER::man3page_name( shift );
- my $sep = $self->manpage_separator;
- $mpname =~ s/^$sep//;
- return $mpname;
-}
-
-=item expand_test_dir
-
-Inherit the standard version but relativize the paths as the native glob() doesn't
-do that for us.
-
-=cut
-
-sub expand_test_dir {
- my ($self, $dir) = @_;
-
- my @reldirs = $self->SUPER::expand_test_dir( $dir );
-
- for my $eachdir (@reldirs) {
- my ($v,$d,$f) = File::Spec->splitpath( $eachdir );
- my $reldir = File::Spec->abs2rel( File::Spec->catpath( $v, $d, '' ) );
- $eachdir = File::Spec->catfile( $reldir, $f );
- }
- return @reldirs;
-}
-
-=item _detildefy
-
-The home-grown glob() does not currently handle tildes, so provide limited support
-here. Expect only UNIX format file specifications for now.
-
-=cut
-
-sub _detildefy {
- my ($self, $arg) = @_;
-
- # Apparently double ~ are not translated.
- return $arg if ($arg =~ /^~~/);
-
- # Apparently ~ followed by whitespace are not translated.
- return $arg if ($arg =~ /^~ /);
-
- if ($arg =~ /^~/) {
- my $spec = $arg;
-
- # Remove the tilde
- $spec =~ s/^~//;
-
- # Remove any slash following the tilde if present.
- $spec =~ s#^/##;
-
- # break up the paths for the merge
- my $home = VMS::Filespec::unixify($ENV{HOME});
-
- # In the default VMS mode, the trailing slash is present.
- # In Unix report mode it is not. The parsing logic assumes that
- # it is present.
- $home .= '/' unless $home =~ m#/$#;
-
- # Trivial case of just ~ by it self
- if ($spec eq '') {
- $home =~ s#/$##;
- return $home;
- }
-
- my ($hvol, $hdir, $hfile) = File::Spec::Unix->splitpath($home);
- if ($hdir eq '') {
- # Someone has tampered with $ENV{HOME}
- # So hfile is probably the directory since this should be
- # a path.
- $hdir = $hfile;
- }
-
- my ($vol, $dir, $file) = File::Spec::Unix->splitpath($spec);
-
- my @hdirs = File::Spec::Unix->splitdir($hdir);
- my @dirs = File::Spec::Unix->splitdir($dir);
-
- unless ($arg =~ m#^~/#) {
- # There is a home directory after the tilde, but it will already
- # be present in in @hdirs so we need to remove it by from @dirs.
-
- shift @dirs;
- }
- my $newdirs = File::Spec::Unix->catdir(@hdirs, @dirs);
-
- $arg = File::Spec::Unix->catpath($hvol, $newdirs, $file);
- }
- return $arg;
-
-}
-
-=item find_perl_interpreter
-
-On VMS, $^X returns the fully qualified absolute path including version
-number. It's logically impossible to improve on it for getting the perl
-we're currently running, and attempting to manipulate it is usually
-lossy.
-
-=cut
-
-sub find_perl_interpreter {
- return VMS::Filespec::vmsify($^X);
-}
-
-=item localize_file_path
-
-Convert the file path to the local syntax
-
-=cut
-
-sub localize_file_path {
- my ($self, $path) = @_;
- $path = VMS::Filespec::vmsify($path);
- $path =~ s/\.\z//;
- return $path;
-}
-
-=item localize_dir_path
-
-Convert the directory path to the local syntax
-
-=cut
-
-sub localize_dir_path {
- my ($self, $path) = @_;
- return VMS::Filespec::vmspath($path);
-}
-
-=item ACTION_clean
-
-The home-grown glob() expands a bit too aggressively when given a bare name,
-so default in a zero-length extension.
-
-=cut
-
-sub ACTION_clean {
- my ($self) = @_;
- foreach my $item (map glob(VMS::Filespec::rmsexpand($_, '.;0')), $self->cleanup) {
- $self->delete_filetree($item);
- }
-}
-
-
-# Need to look up the feature settings. The preferred way is to use the
-# VMS::Feature module, but that may not be available to dual life modules.
-
-my $use_feature;
-BEGIN {
- if (eval { local $SIG{__DIE__}; require VMS::Feature; }) {
- $use_feature = 1;
- }
-}
-
-# Need to look up the UNIX report mode. This may become a dynamic mode
-# in the future.
-sub _unix_rpt {
- my $unix_rpt;
- if ($use_feature) {
- $unix_rpt = VMS::Feature::current("filename_unix_report");
- } else {
- my $env_unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || '';
- $unix_rpt = $env_unix_rpt =~ /^[ET1]/i;
- }
- return $unix_rpt;
-}
-
-# Need to look up the EFS character set mode. This may become a dynamic
-# mode in the future.
-sub _efs {
- my $efs;
- if ($use_feature) {
- $efs = VMS::Feature::current("efs_charset");
- } else {
- my $env_efs = $ENV{'DECC$EFS_CHARSET'} || '';
- $efs = $env_efs =~ /^[ET1]/i;
- }
- return $efs;
-}
-
-=back
-
-=head1 AUTHOR
-
-Michael G Schwern <schwern@pobox.com>
-Ken Williams <kwilliams@cpan.org>
-Craig A. Berry <craigberry@mac.com>
-
-=head1 SEE ALSO
-
-perl(1), Module::Build(3), ExtUtils::MakeMaker(3)
-
-=cut
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Platform/VOS.pm b/Master/tlpkg/tlperl/lib/Module/Build/Platform/VOS.pm
deleted file mode 100644
index 19dfceeaf0e..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Platform/VOS.pm
+++ /dev/null
@@ -1,34 +0,0 @@
-package Module::Build::Platform::VOS;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-use Module::Build::Base;
-
-use vars qw(@ISA);
-@ISA = qw(Module::Build::Base);
-
-
-1;
-__END__
-
-
-=head1 NAME
-
-Module::Build::Platform::VOS - Builder class for VOS platforms
-
-=head1 DESCRIPTION
-
-The sole purpose of this module is to inherit from
-C<Module::Build::Base>. Please see the L<Module::Build> for the docs.
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>
-
-=head1 SEE ALSO
-
-perl(1), Module::Build(3), ExtUtils::MakeMaker(3)
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Platform/Windows.pm b/Master/tlpkg/tlperl/lib/Module/Build/Platform/Windows.pm
deleted file mode 100644
index 77441774507..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Platform/Windows.pm
+++ /dev/null
@@ -1,319 +0,0 @@
-package Module::Build::Platform::Windows;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-
-use Config;
-use File::Basename;
-use File::Spec;
-
-use Module::Build::Base;
-
-use vars qw(@ISA);
-@ISA = qw(Module::Build::Base);
-
-
-sub manpage_separator {
- return '.';
-}
-
-sub have_forkpipe { 0 }
-
-sub _detildefy {
- my ($self, $value) = @_;
- $value =~ s,^~(?= [/\\] | $ ),$ENV{HOME},x
- if $ENV{HOME};
- return $value;
-}
-
-sub ACTION_realclean {
- my ($self) = @_;
-
- $self->SUPER::ACTION_realclean();
-
- my $basename = basename($0);
- $basename =~ s/(?:\.bat)?$//i;
-
- if ( lc $basename eq lc $self->build_script ) {
- if ( $self->build_bat ) {
- $self->log_verbose("Deleting $basename.bat\n");
- my $full_progname = $0;
- $full_progname =~ s/(?:\.bat)?$/.bat/i;
-
- # Voodoo required to have a batch file delete itself without error;
- # Syntax differs between 9x & NT: the later requires a null arg (???)
- require Win32;
- my $null_arg = (Win32::IsWinNT()) ? '""' : '';
- my $cmd = qq(start $null_arg /min "\%comspec\%" /c del "$full_progname");
-
- open(my $fh, '>>', "$basename.bat")
- or die "Can't create $basename.bat: $!";
- print $fh $cmd;
- close $fh ;
- } else {
- $self->delete_filetree($self->build_script . '.bat');
- }
- }
-}
-
-sub make_executable {
- my $self = shift;
-
- $self->SUPER::make_executable(@_);
-
- foreach my $script (@_) {
-
- # Native batch script
- if ( $script =~ /\.(bat|cmd)$/ ) {
- $self->SUPER::make_executable($script);
- next;
-
- # Perl script that needs to be wrapped in a batch script
- } else {
- my %opts = ();
- if ( $script eq $self->build_script ) {
- $opts{ntargs} = q(-x -S %0 --build_bat %*);
- $opts{otherargs} = q(-x -S "%0" --build_bat %1 %2 %3 %4 %5 %6 %7 %8 %9);
- }
-
- my $out = eval {$self->pl2bat(in => $script, update => 1, %opts)};
- if ( $@ ) {
- $self->log_warn("WARNING: Unable to convert file '$script' to an executable script:\n$@");
- } else {
- $self->SUPER::make_executable($out);
- }
- }
- }
-}
-
-# This routine was copied almost verbatim from the 'pl2bat' utility
-# distributed with perl. It requires too much voodoo with shell quoting
-# differences and shortcomings between the various flavors of Windows
-# to reliably shell out
-sub pl2bat {
- my $self = shift;
- my %opts = @_;
-
- # NOTE: %0 is already enclosed in doublequotes by cmd.exe, as appropriate
- $opts{ntargs} = '-x -S %0 %*' unless exists $opts{ntargs};
- $opts{otherargs} = '-x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9' unless exists $opts{otherargs};
-
- $opts{stripsuffix} = '/\\.plx?/' unless exists $opts{stripsuffix};
- $opts{stripsuffix} = ($opts{stripsuffix} =~ m{^/([^/]*[^/\$]|)\$?/?$} ? $1 : "\Q$opts{stripsuffix}\E");
-
- unless (exists $opts{out}) {
- $opts{out} = $opts{in};
- $opts{out} =~ s/$opts{stripsuffix}$//oi;
- $opts{out} .= '.bat' unless $opts{in} =~ /\.bat$/i or $opts{in} =~ /^-$/;
- }
-
- my $head = <<EOT;
- \@rem = '--*-Perl-*--
- \@echo off
- if "%OS%" == "Windows_NT" goto WinNT
- perl $opts{otherargs}
- goto endofperl
- :WinNT
- perl $opts{ntargs}
- if NOT "%COMSPEC%" == "%SystemRoot%\\system32\\cmd.exe" goto endofperl
- if %errorlevel% == 9009 echo You do not have Perl in your PATH.
- if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
- goto endofperl
- \@rem ';
-EOT
-
- $head =~ s/^\s+//gm;
- my $headlines = 2 + ($head =~ tr/\n/\n/);
- my $tail = "\n__END__\n:endofperl\n";
-
- my $linedone = 0;
- my $taildone = 0;
- my $linenum = 0;
- my $skiplines = 0;
-
- my $start = $Config{startperl};
- $start = "#!perl" unless $start =~ /^#!.*perl/;
-
- open(my $in, '<', "$opts{in}") or die "Can't open $opts{in}: $!";
- my @file = <$in>;
- close($in);
-
- foreach my $line ( @file ) {
- $linenum++;
- if ( $line =~ /^:endofperl\b/ ) {
- if (!exists $opts{update}) {
- warn "$opts{in} has already been converted to a batch file!\n";
- return;
- }
- $taildone++;
- }
- if ( not $linedone and $line =~ /^#!.*perl/ ) {
- if (exists $opts{update}) {
- $skiplines = $linenum - 1;
- $line .= "#line ".(1+$headlines)."\n";
- } else {
- $line .= "#line ".($linenum+$headlines)."\n";
- }
- $linedone++;
- }
- if ( $line =~ /^#\s*line\b/ and $linenum == 2 + $skiplines ) {
- $line = "";
- }
- }
-
- open(my $out, '>', "$opts{out}") or die "Can't open $opts{out}: $!";
- print $out $head;
- print $out $start, ( $opts{usewarnings} ? " -w" : "" ),
- "\n#line ", ($headlines+1), "\n" unless $linedone;
- print $out @file[$skiplines..$#file];
- print $out $tail unless $taildone;
- close($out);
-
- return $opts{out};
-}
-
-
-sub _quote_args {
- # Returns a string that can become [part of] a command line with
- # proper quoting so that the subprocess sees this same list of args.
- my ($self, @args) = @_;
-
- my @quoted;
-
- for (@args) {
- if ( /^[^\s*?!\$<>;|'"\[\]\{\}]+$/ ) {
- # Looks pretty safe
- push @quoted, $_;
- } else {
- # XXX this will obviously have to improve - is there already a
- # core module lying around that does proper quoting?
- s/"/\\"/g;
- push @quoted, qq("$_");
- }
- }
-
- return join " ", @quoted;
-}
-
-
-sub split_like_shell {
- # As it turns out, Windows command-parsing is very different from
- # Unix command-parsing. Double-quotes mean different things,
- # backslashes don't necessarily mean escapes, and so on. So we
- # can't use Text::ParseWords::shellwords() to break a command string
- # into words. The algorithm below was bashed out by Randy and Ken
- # (mostly Randy), and there are a lot of regression tests, so we
- # should feel free to adjust if desired.
-
- (my $self, local $_) = @_;
-
- return @$_ if defined() && UNIVERSAL::isa($_, 'ARRAY');
-
- my @argv;
- return @argv unless defined() && length();
-
- my $arg = '';
- my( $i, $quote_mode ) = ( 0, 0 );
-
- while ( $i < length() ) {
-
- my $ch = substr( $_, $i , 1 );
- my $next_ch = substr( $_, $i+1, 1 );
-
- if ( $ch eq '\\' && $next_ch eq '"' ) {
- $arg .= '"';
- $i++;
- } elsif ( $ch eq '\\' && $next_ch eq '\\' ) {
- $arg .= '\\';
- $i++;
- } elsif ( $ch eq '"' && $next_ch eq '"' && $quote_mode ) {
- $quote_mode = !$quote_mode;
- $arg .= '"';
- $i++;
- } elsif ( $ch eq '"' && $next_ch eq '"' && !$quote_mode &&
- ( $i + 2 == length() ||
- substr( $_, $i + 2, 1 ) eq ' ' )
- ) { # for cases like: a"" => [ 'a' ]
- push( @argv, $arg );
- $arg = '';
- $i += 2;
- } elsif ( $ch eq '"' ) {
- $quote_mode = !$quote_mode;
- } elsif ( $ch eq ' ' && !$quote_mode ) {
- push( @argv, $arg ) if $arg;
- $arg = '';
- ++$i while substr( $_, $i + 1, 1 ) eq ' ';
- } else {
- $arg .= $ch;
- }
-
- $i++;
- }
-
- push( @argv, $arg ) if defined( $arg ) && length( $arg );
- return @argv;
-}
-
-
-# system(@cmd) does not like having double-quotes in it on Windows.
-# So we quote them and run it as a single command.
-sub do_system {
- my ($self, @cmd) = @_;
-
- my $cmd = $self->_quote_args(@cmd);
- my $status = system($cmd);
- if ($status and $! =~ /Argument list too long/i) {
- my $env_entries = '';
- foreach (sort keys %ENV) { $env_entries .= "$_=>".length($ENV{$_})."; " }
- warn "'Argument list' was 'too long', env lengths are $env_entries";
- }
- return !$status;
-}
-
-# Copied from ExtUtils::MM_Win32
-sub _maybe_command {
- my($self,$file) = @_;
- my @e = exists($ENV{'PATHEXT'})
- ? split(/;/, $ENV{PATHEXT})
- : qw(.com .exe .bat .cmd);
- my $e = '';
- for (@e) { $e .= "\Q$_\E|" }
- chop $e;
- # see if file ends in one of the known extensions
- if ($file =~ /($e)$/i) {
- return $file if -e $file;
- }
- else {
- for (@e) {
- return "$file$_" if -e "$file$_";
- }
- }
- return;
-}
-
-
-1;
-
-__END__
-
-=head1 NAME
-
-Module::Build::Platform::Windows - Builder class for Windows platforms
-
-=head1 DESCRIPTION
-
-The sole purpose of this module is to inherit from
-C<Module::Build::Base> and override a few methods. Please see
-L<Module::Build> for the docs.
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>, Randy W. Sims <RandyS@ThePierianSpring.org>
-
-=head1 SEE ALSO
-
-perl(1), Module::Build(3)
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Platform/aix.pm b/Master/tlpkg/tlperl/lib/Module/Build/Platform/aix.pm
deleted file mode 100644
index c51e1002e6b..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Platform/aix.pm
+++ /dev/null
@@ -1,40 +0,0 @@
-package Module::Build::Platform::aix;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-use Module::Build::Platform::Unix;
-
-use vars qw(@ISA);
-@ISA = qw(Module::Build::Platform::Unix);
-
-# This class isn't necessary anymore, but we can't delete it, because
-# some people might still have the old copy in their @INC, containing
-# code we don't want to execute, so we have to make sure an upgrade
-# will replace it with this empty subclass.
-
-1;
-__END__
-
-
-=head1 NAME
-
-Module::Build::Platform::aix - Builder class for AIX platform
-
-=head1 DESCRIPTION
-
-This module provides some routines very specific to the AIX
-platform.
-
-Please see the L<Module::Build> for the general docs.
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>
-
-=head1 SEE ALSO
-
-perl(1), Module::Build(3), ExtUtils::MakeMaker(3)
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Platform/cygwin.pm b/Master/tlpkg/tlperl/lib/Module/Build/Platform/cygwin.pm
deleted file mode 100644
index 19bd50db8bf..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Platform/cygwin.pm
+++ /dev/null
@@ -1,55 +0,0 @@
-package Module::Build::Platform::cygwin;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-use Module::Build::Platform::Unix;
-
-use vars qw(@ISA);
-@ISA = qw(Module::Build::Platform::Unix);
-
-sub manpage_separator {
- '.'
-}
-
-# Copied from ExtUtils::MM_Cygwin::maybe_command()
-# If our path begins with F</cygdrive/> then we use the Windows version
-# to determine if it may be a command. Otherwise we use the tests
-# from C<ExtUtils::MM_Unix>.
-
-sub _maybe_command {
- my ($self, $file) = @_;
-
- if ($file =~ m{^/cygdrive/}i) {
- require Module::Build::Platform::Windows;
- return Module::Build::Platform::Windows->_maybe_command($file);
- }
-
- return $self->SUPER::_maybe_command($file);
-}
-
-1;
-__END__
-
-
-=head1 NAME
-
-Module::Build::Platform::cygwin - Builder class for Cygwin platform
-
-=head1 DESCRIPTION
-
-This module provides some routines very specific to the cygwin
-platform.
-
-Please see the L<Module::Build> for the general docs.
-
-=head1 AUTHOR
-
-Initial stub by Yitzchak Scott-Thoennes <sthoenna@efn.org>
-
-=head1 SEE ALSO
-
-perl(1), Module::Build(3), ExtUtils::MakeMaker(3)
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Platform/darwin.pm b/Master/tlpkg/tlperl/lib/Module/Build/Platform/darwin.pm
deleted file mode 100644
index c7e690241c2..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Platform/darwin.pm
+++ /dev/null
@@ -1,40 +0,0 @@
-package Module::Build::Platform::darwin;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-use Module::Build::Platform::Unix;
-
-use vars qw(@ISA);
-@ISA = qw(Module::Build::Platform::Unix);
-
-# This class isn't necessary anymore, but we can't delete it, because
-# some people might still have the old copy in their @INC, containing
-# code we don't want to execute, so we have to make sure an upgrade
-# will replace it with this empty subclass.
-
-1;
-__END__
-
-
-=head1 NAME
-
-Module::Build::Platform::darwin - Builder class for Mac OS X platform
-
-=head1 DESCRIPTION
-
-This module provides some routines very specific to the Mac OS X
-platform.
-
-Please see the L<Module::Build> for the general docs.
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>
-
-=head1 SEE ALSO
-
-perl(1), Module::Build(3), ExtUtils::MakeMaker(3)
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Platform/os2.pm b/Master/tlpkg/tlperl/lib/Module/Build/Platform/os2.pm
deleted file mode 100644
index 5f9ad187db8..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Platform/os2.pm
+++ /dev/null
@@ -1,49 +0,0 @@
-package Module::Build::Platform::os2;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-use Module::Build::Platform::Unix;
-
-use vars qw(@ISA);
-@ISA = qw(Module::Build::Platform::Unix);
-
-sub manpage_separator { '.' }
-
-sub have_forkpipe { 0 }
-
-# Copied from ExtUtils::MM_OS2::maybe_command
-sub _maybe_command {
- my($self,$file) = @_;
- $file =~ s,[/\\]+,/,g;
- return $file if -x $file && ! -d _;
- return "$file.exe" if -x "$file.exe" && ! -d _;
- return "$file.cmd" if -x "$file.cmd" && ! -d _;
- return;
-}
-
-1;
-__END__
-
-
-=head1 NAME
-
-Module::Build::Platform::os2 - Builder class for OS/2 platform
-
-=head1 DESCRIPTION
-
-This module provides some routines very specific to the OS/2
-platform.
-
-Please see the L<Module::Build> for the general docs.
-
-=head1 AUTHOR
-
-Ken Williams <kwilliams@cpan.org>
-
-=head1 SEE ALSO
-
-perl(1), Module::Build(3), ExtUtils::MakeMaker(3)
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/PodParser.pm b/Master/tlpkg/tlperl/lib/Module/Build/PodParser.pm
deleted file mode 100644
index c7e83a837d3..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/PodParser.pm
+++ /dev/null
@@ -1,65 +0,0 @@
-package Module::Build::PodParser;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-use vars qw(@ISA);
-
-sub new {
- # Perl is so fun.
- my $package = shift;
-
- my $self;
- @ISA = ();
- $self = bless {have_pod_parser => 0, @_}, $package;
-
- unless ($self->{fh}) {
- die "No 'file' or 'fh' parameter given" unless $self->{file};
- open($self->{fh}, '<', $self->{file}) or die "Couldn't open $self->{file}: $!";
- }
-
- return $self;
-}
-
-sub parse_from_filehandle {
- my ($self, $fh) = @_;
-
- local $_;
- while (<$fh>) {
- next unless /^=(?!cut)/ .. /^=cut/; # in POD
- # Accept Name - abstract or C<Name> - abstract
- last if ($self->{abstract}) = /^ (?: [a-z_0-9:]+ | [BCIF] < [a-z_0-9:]+ > ) \s+ - \s+ (.*\S) /ix;
- }
-
- my @author;
- while (<$fh>) {
- next unless /^=head1\s+AUTHORS?/i ... /^=/;
- next if /^=/;
- push @author, $_ if /\@/;
- }
- return unless @author;
- s/^\s+|\s+$//g foreach @author;
-
- $self->{author} = \@author;
-
- return;
-}
-
-sub get_abstract {
- my $self = shift;
- return $self->{abstract} if defined $self->{abstract};
-
- $self->parse_from_filehandle($self->{fh});
-
- return $self->{abstract};
-}
-
-sub get_author {
- my $self = shift;
- return $self->{author} if defined $self->{author};
-
- $self->parse_from_filehandle($self->{fh});
-
- return $self->{author} || [];
-}
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/Version.pm b/Master/tlpkg/tlperl/lib/Module/Build/Version.pm
deleted file mode 100644
index e659712ddb1..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/Version.pm
+++ /dev/null
@@ -1,21 +0,0 @@
-package Module::Build::Version;
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.87'; ### XXX sync with version of version.pm below
-
-use version 0.87;
-our @ISA = qw(version);
-
-1;
-
-=head1 NAME
-
-Module::Build::Version - DEPRECATED
-
-=head1 DESCRIPTION
-
-Module::Build now lists L<version> as a C<configure_requires> dependency
-and no longer installs a copy.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Module/Build/YAML.pm b/Master/tlpkg/tlperl/lib/Module/Build/YAML.pm
deleted file mode 100644
index 133dee54274..00000000000
--- a/Master/tlpkg/tlperl/lib/Module/Build/YAML.pm
+++ /dev/null
@@ -1,19 +0,0 @@
-package Module::Build::YAML;
-use strict;
-use CPAN::Meta::YAML 0.002 ();
-our @ISA = qw(CPAN::Meta::YAML);
-our $VERSION = '1.41';
-1;
-
-=head1 NAME
-
-Module::Build::YAML - DEPRECATED
-
-=head1 DESCRIPTION
-
-This module was originally an inline copy of L<YAML::Tiny>. It has been
-deprecated in favor of using L<CPAN::Meta::YAML> directly. This module is kept
-as a subclass wrapper for compatibility.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Module/CoreList.pm b/Master/tlpkg/tlperl/lib/Module/CoreList.pm
index 54725c87fc4..17655b2f06c 100644
--- a/Master/tlpkg/tlperl/lib/Module/CoreList.pm
+++ b/Master/tlpkg/tlperl/lib/Module/CoreList.pm
@@ -4,7 +4,17 @@ use vars qw/$VERSION %released %version %families %upstream
%bug_tracker %deprecated %delta/;
use Module::CoreList::TieHashDelta;
use version;
-$VERSION = '5.20150214';
+$VERSION = '5.20151213';
+
+sub _released_order { # Sort helper, to make '?' sort after everything else
+ (substr($released{$a}, 0, 1) eq "?")
+ ? ((substr($released{$b}, 0, 1) eq "?")
+ ? 0
+ : 1)
+ : ((substr($released{$b}, 0, 1) eq "?")
+ ? -1
+ : $released{$a} cmp $released{$b} )
+}
my $dumpinc = 0;
sub import {
@@ -38,7 +48,7 @@ sub first_release_raw {
sub first_release_by_date {
my @perls = &first_release_raw;
return unless @perls;
- return (sort { $released{$a} cmp $released{$b} } @perls)[0];
+ return (sort _released_order @perls)[0];
}
sub first_release {
@@ -64,9 +74,12 @@ sub find_modules {
sub find_version {
my $v = shift;
- $v = shift if eval { $v->isa(__PACKAGE__) };
+ if ($v->isa(__PACKAGE__)) {
+ $v = shift;
+ return if not defined $v;
+ }
return $version{$v} if defined $version{$v};
- return undef;
+ return;
}
sub is_deprecated {
@@ -96,7 +109,7 @@ sub removed_from {
}
sub removed_from_by_date {
- my @perls = sort { $released{$a} cmp $released{$b} } &removed_raw;
+ my @perls = sort _released_order &removed_raw;
return shift @perls;
}
@@ -262,6 +275,18 @@ sub changes_between {
5.021007 => '2014-12-20',
5.021008 => '2015-01-20',
5.020002 => '2015-02-14',
+ 5.021009 => '2015-02-21',
+ 5.021010 => '2015-03-20',
+ 5.021011 => '2015-04-20',
+ 5.022000 => '2015-06-01',
+ 5.023000 => '2015-06-20',
+ 5.023001 => '2015-07-20',
+ 5.023002 => '2015-08-20',
+ 5.020003 => '2015-09-12',
+ 5.023003 => '2015-09-20',
+ 5.023004 => '2015-10-20',
+ 5.023005 => '2015-11-20',
+ 5.022001 => '2015-12-13',
);
for my $version ( sort { $a <=> $b } keys %released ) {
@@ -393,14 +418,14 @@ for my $version ( sort { $a <=> $b } keys %released ) {
'Config' => undef,
'DB_File' => '1.03',
'ExtUtils::Embed' => '1.18',
- 'ExtUtils::Install' => '1.15 ',
- 'ExtUtils::Liblist' => '1.20 ',
- 'ExtUtils::MM_Unix' => '1.107 ',
+ 'ExtUtils::Install' => '1.15',
+ 'ExtUtils::Liblist' => '1.20',
+ 'ExtUtils::MM_Unix' => '1.107',
'ExtUtils::MakeMaker' => '5.38',
'ExtUtils::Manifest' => '1.27',
- 'ExtUtils::Mkbootstrap' => '1.13 ',
- 'ExtUtils::Mksymlists' => '1.12 ',
- 'ExtUtils::testlib' => '1.11 ',
+ 'ExtUtils::Mkbootstrap' => '1.13',
+ 'ExtUtils::Mksymlists' => '1.12',
+ 'ExtUtils::testlib' => '1.11',
'Fatal' => undef,
'File::Basename' => '2.4',
'FindBin' => '1.04',
@@ -442,7 +467,7 @@ for my $version ( sort { $a <=> $b } keys %released ) {
'CGI::Push' => '1.00',
'CGI::Switch' => '0.05',
'CPAN' => '1.2401',
- 'CPAN::FirstTime' => '1.18 ',
+ 'CPAN::FirstTime' => '1.18',
'CPAN::Nox' => undef,
'Class::Struct' => undef,
'Cwd' => '2.00',
@@ -450,13 +475,13 @@ for my $version ( sort { $a <=> $b } keys %released ) {
'DynaLoader' => '1.02',
'ExtUtils::Command' => '1.00',
'ExtUtils::Embed' => '1.2501',
- 'ExtUtils::Install' => '1.16 ',
- 'ExtUtils::Liblist' => '1.2201 ',
- 'ExtUtils::MM_Unix' => '1.114 ',
+ 'ExtUtils::Install' => '1.16',
+ 'ExtUtils::Liblist' => '1.2201',
+ 'ExtUtils::MM_Unix' => '1.114',
'ExtUtils::MM_Win32' => undef,
'ExtUtils::MakeMaker' => '5.4002',
- 'ExtUtils::Manifest' => '1.33 ',
- 'ExtUtils::Mksymlists' => '1.13 ',
+ 'ExtUtils::Manifest' => '1.33',
+ 'ExtUtils::Mksymlists' => '1.13',
'ExtUtils::XSSymSet' => '1.0',
'Fcntl' => '1.03',
'File::Basename' => '2.5',
@@ -523,18 +548,18 @@ for my $version ( sort { $a <=> $b } keys %released ) {
'CGI::Push' => '1.01',
'CGI::Switch' => '0.06',
'CPAN' => '1.40',
- 'CPAN::FirstTime' => '1.30 ',
+ 'CPAN::FirstTime' => '1.30',
'Cwd' => '2.01',
'DB_File' => '1.15',
'DynaLoader' => '1.03',
'ExtUtils::Command' => '1.01',
'ExtUtils::Embed' => '1.2505',
- 'ExtUtils::Install' => '1.28 ',
- 'ExtUtils::Liblist' => '1.25 ',
- 'ExtUtils::MM_Unix' => '1.118 ',
+ 'ExtUtils::Install' => '1.28',
+ 'ExtUtils::Liblist' => '1.25',
+ 'ExtUtils::MM_Unix' => '1.118',
'ExtUtils::MakeMaker' => '5.42',
- 'ExtUtils::Mkbootstrap' => '1.14 ',
- 'ExtUtils::Mksymlists' => '1.16 ',
+ 'ExtUtils::Mkbootstrap' => '1.14',
+ 'ExtUtils::Mksymlists' => '1.16',
'File::Basename' => '2.6',
'File::DosGlob' => undef,
'File::Path' => '1.0402',
@@ -591,15 +616,15 @@ for my $version ( sort { $a <=> $b } keys %released ) {
'B::Xref' => undef,
'CGI::Carp' => '1.101',
'CPAN' => '1.3901',
- 'CPAN::FirstTime' => '1.29 ',
+ 'CPAN::FirstTime' => '1.29',
'DB_File' => '1.60',
'Data::Dumper' => '2.09',
'Errno' => '1.09',
'ExtUtils::Installed' => '0.02',
- 'ExtUtils::MM_Unix' => '1.12601 ',
+ 'ExtUtils::MM_Unix' => '1.12601',
'ExtUtils::MakeMaker' => '5.4301',
- 'ExtUtils::Mkbootstrap' => '1.13 ',
- 'ExtUtils::Mksymlists' => '1.17 ',
+ 'ExtUtils::Mkbootstrap' => '1.13',
+ 'ExtUtils::Mksymlists' => '1.17',
'ExtUtils::Packlist' => '0.03',
'Fatal' => '1.02',
'File::Path' => '1.0401',
@@ -667,16 +692,16 @@ for my $version ( sort { $a <=> $b } keys %released ) {
5.00504 => {
delta_from => 5.00503,
changed => {
- 'CPAN::FirstTime' => '1.36 ',
+ 'CPAN::FirstTime' => '1.36',
'DB_File' => '1.807',
- 'ExtUtils::Install' => '1.28 ',
- 'ExtUtils::Liblist' => '1.25 ',
- 'ExtUtils::MM_Unix' => '1.12602 ',
- 'ExtUtils::Manifest' => '1.33 ',
+ 'ExtUtils::Install' => '1.28',
+ 'ExtUtils::Liblist' => '1.25',
+ 'ExtUtils::MM_Unix' => '1.12602',
+ 'ExtUtils::Manifest' => '1.33',
'ExtUtils::Miniperl' => undef,
- 'ExtUtils::Mkbootstrap' => '1.14 ',
- 'ExtUtils::Mksymlists' => '1.17 ',
- 'ExtUtils::testlib' => '1.11 ',
+ 'ExtUtils::Mkbootstrap' => '1.14',
+ 'ExtUtils::Mksymlists' => '1.17',
+ 'ExtUtils::testlib' => '1.11',
'File::Compare' => '1.1002',
'File::Spec' => '0.8',
'File::Spec::Functions' => undef,
@@ -704,7 +729,7 @@ for my $version ( sort { $a <=> $b } keys %released ) {
'CGI::Pretty' => '1.03',
'CGI::Switch' => undef,
'CPAN' => '1.52',
- 'CPAN::FirstTime' => '1.38 ',
+ 'CPAN::FirstTime' => '1.38',
'Carp::Heavy' => undef,
'Class::Struct' => '0.58',
'Cwd' => '2.02',
@@ -716,7 +741,7 @@ for my $version ( sort { $a <=> $b } keys %released ) {
'Exporter' => '5.562',
'Exporter::Heavy' => undef,
'ExtUtils::MM_Cygwin' => undef,
- 'ExtUtils::MM_Unix' => '1.12603 ',
+ 'ExtUtils::MM_Unix' => '1.12603',
'ExtUtils::MakeMaker' => '5.45',
'File::Copy' => '2.03',
'File::Glob' => '0.991',
@@ -865,7 +890,7 @@ for my $version ( sort { $a <=> $b } keys %released ) {
5.006002 => {
delta_from => 5.006001,
changed => {
- 'CPAN::FirstTime' => '1.53 ',
+ 'CPAN::FirstTime' => '1.53',
'DB_File' => '1.806',
'Data::Dumper' => '2.121',
'ExtUtils::Command' => '1.05',
@@ -956,7 +981,7 @@ for my $version ( sort { $a <=> $b } keys %released ) {
'CGI::Switch' => '1.00',
'CGI::Util' => '1.3',
'CPAN' => '1.59_56',
- 'CPAN::FirstTime' => '1.54 ',
+ 'CPAN::FirstTime' => '1.54',
'CPAN::Nox' => '1.00_01',
'Carp' => '1.01',
'Carp::Heavy' => '1.01',
@@ -1226,7 +1251,7 @@ for my $version ( sort { $a <=> $b } keys %released ) {
'CGI' => '2.81',
'CGI::Carp' => '1.23',
'CPAN' => '1.61',
- 'CPAN::FirstTime' => '1.56 ',
+ 'CPAN::FirstTime' => '1.56',
'CPAN::Nox' => '1.02',
'Digest::MD5' => '2.20',
'Dumpvalue' => '1.11',
@@ -1377,7 +1402,7 @@ for my $version ( sort { $a <=> $b } keys %released ) {
'CGI::Pretty' => '1.07_00',
'CGI::Util' => '1.31',
'CPAN' => '1.76_01',
- 'CPAN::FirstTime' => '1.60 ',
+ 'CPAN::FirstTime' => '1.60',
'CPAN::Nox' => '1.03',
'Class::Struct' => '0.63',
'Cwd' => '2.08',
@@ -11089,6 +11114,912 @@ for my $version ( sort { $a <=> $b } keys %released ) {
removed => {
}
},
+ 5.021009 => {
+ delta_from => 5.021008,
+ changed => {
+ 'B' => '1.56',
+ 'B::Debug' => '1.23',
+ 'B::Deparse' => '1.33',
+ 'B::Op_private' => '5.021009',
+ 'Benchmark' => '1.20',
+ 'CPAN::Author' => '5.5002',
+ 'CPAN::CacheMgr' => '5.5002',
+ 'CPAN::FTP' => '5.5006',
+ 'CPAN::HTTP::Client' => '1.9601',
+ 'CPAN::HandleConfig' => '5.5005',
+ 'CPAN::Index' => '1.9601',
+ 'CPAN::LWP::UserAgent' => '1.9601',
+ 'CPAN::Meta::Requirements'=> '2.132',
+ 'CPAN::Mirrors' => '1.9601',
+ 'Carp' => '1.35',
+ 'Carp::Heavy' => '1.35',
+ 'Config' => '5.021009',
+ 'Config::Perl::V' => '0.23',
+ 'Data::Dumper' => '2.157',
+ 'Devel::Peek' => '1.22',
+ 'DynaLoader' => '1.31',
+ 'Encode' => '2.70',
+ 'Encode::MIME::Header' => '2.16',
+ 'Errno' => '1.23',
+ 'ExtUtils::Miniperl' => '1.04',
+ 'HTTP::Tiny' => '0.054',
+ 'Module::CoreList' => '5.20150220',
+ 'Module::CoreList::TieHashDelta'=> '5.20150220',
+ 'Module::CoreList::Utils'=> '5.20150220',
+ 'Opcode' => '1.32',
+ 'POSIX' => '1.51',
+ 'Perl::OSType' => '1.008',
+ 'PerlIO::scalar' => '0.22',
+ 'Pod::Find' => '1.63',
+ 'Pod::InputObjects' => '1.63',
+ 'Pod::ParseUtils' => '1.63',
+ 'Pod::Parser' => '1.63',
+ 'Pod::Perldoc' => '3.25',
+ 'Pod::Perldoc::BaseTo' => '3.25',
+ 'Pod::Perldoc::GetOptsOO'=> '3.25',
+ 'Pod::Perldoc::ToANSI' => '3.25',
+ 'Pod::Perldoc::ToChecker'=> '3.25',
+ 'Pod::Perldoc::ToMan' => '3.25',
+ 'Pod::Perldoc::ToNroff' => '3.25',
+ 'Pod::Perldoc::ToPod' => '3.25',
+ 'Pod::Perldoc::ToRtf' => '3.25',
+ 'Pod::Perldoc::ToTerm' => '3.25',
+ 'Pod::Perldoc::ToText' => '3.25',
+ 'Pod::Perldoc::ToTk' => '3.25',
+ 'Pod::Perldoc::ToXml' => '3.25',
+ 'Pod::PlainText' => '2.07',
+ 'Pod::Select' => '1.63',
+ 'Socket' => '2.018',
+ 'Storable' => '2.53',
+ 'Test::Builder' => '1.301001_098',
+ 'Test::Builder::Module' => '1.301001_098',
+ 'Test::Builder::Tester' => '1.301001_098',
+ 'Test::Builder::Tester::Color'=> '1.301001_098',
+ 'Test::More' => '1.301001_098',
+ 'Test::Simple' => '1.301001_098',
+ 'Test::Stream' => '1.301001_098',
+ 'Test::Tester' => '1.301001_098',
+ 'Test::use::ok' => '1.301001_098',
+ 'Unicode::Collate' => '1.11',
+ 'Unicode::Collate::CJK::Big5'=> '1.11',
+ 'Unicode::Collate::CJK::GB2312'=> '1.11',
+ 'Unicode::Collate::CJK::JISX0208'=> '1.11',
+ 'Unicode::Collate::CJK::Korean'=> '1.11',
+ 'Unicode::Collate::CJK::Pinyin'=> '1.11',
+ 'Unicode::Collate::CJK::Stroke'=> '1.11',
+ 'Unicode::Collate::CJK::Zhuyin'=> '1.11',
+ 'Unicode::Collate::Locale'=> '1.11',
+ 'Unicode::UCD' => '0.61',
+ 'VMS::Stdio' => '2.41',
+ 'Win32' => '0.51',
+ 'Win32API::File' => '0.1202',
+ 'attributes' => '0.26',
+ 'bigint' => '0.39',
+ 'bignum' => '0.39',
+ 'bigrat' => '0.39',
+ 'constant' => '1.33',
+ 'encoding' => '2.13',
+ 'feature' => '1.40',
+ 'ok' => '1.301001_098',
+ 'overload' => '1.25',
+ 'perlfaq' => '5.021009',
+ 're' => '0.31',
+ 'threads::shared' => '1.48',
+ 'warnings' => '1.31',
+ },
+ removed => {
+ }
+ },
+ 5.021010 => {
+ delta_from => 5.021009,
+ changed => {
+ 'App::Cpan' => '1.63',
+ 'B' => '1.57',
+ 'B::Deparse' => '1.34',
+ 'B::Op_private' => '5.021010',
+ 'Benchmark' => '1.2',
+ 'CPAN' => '2.10',
+ 'CPAN::Distribution' => '2.04',
+ 'CPAN::FirstTime' => '5.5307',
+ 'CPAN::HTTP::Credentials'=> '1.9601',
+ 'CPAN::HandleConfig' => '5.5006',
+ 'CPAN::Meta' => '2.150001',
+ 'CPAN::Meta::Converter' => '2.150001',
+ 'CPAN::Meta::Feature' => '2.150001',
+ 'CPAN::Meta::History' => '2.150001',
+ 'CPAN::Meta::Merge' => '2.150001',
+ 'CPAN::Meta::Prereqs' => '2.150001',
+ 'CPAN::Meta::Spec' => '2.150001',
+ 'CPAN::Meta::Validator' => '2.150001',
+ 'CPAN::Module' => '5.5002',
+ 'CPAN::Plugin' => '0.95',
+ 'CPAN::Plugin::Specfile'=> '0.01',
+ 'CPAN::Shell' => '5.5005',
+ 'Carp' => '1.36',
+ 'Carp::Heavy' => '1.36',
+ 'Config' => '5.02101',
+ 'Cwd' => '3.55',
+ 'DB' => '1.08',
+ 'Data::Dumper' => '2.158',
+ 'Devel::PPPort' => '3.31',
+ 'DynaLoader' => '1.32',
+ 'Encode' => '2.72',
+ 'Encode::Alias' => '2.19',
+ 'File::Spec' => '3.55',
+ 'File::Spec::Cygwin' => '3.55',
+ 'File::Spec::Epoc' => '3.55',
+ 'File::Spec::Functions' => '3.55',
+ 'File::Spec::Mac' => '3.55',
+ 'File::Spec::OS2' => '3.55',
+ 'File::Spec::Unix' => '3.55',
+ 'File::Spec::VMS' => '3.55',
+ 'File::Spec::Win32' => '3.55',
+ 'Getopt::Long' => '2.45',
+ 'Locale::Codes' => '3.34',
+ 'Locale::Codes::Constants'=> '3.34',
+ 'Locale::Codes::Country'=> '3.34',
+ 'Locale::Codes::Country_Codes'=> '3.34',
+ 'Locale::Codes::Country_Retired'=> '3.34',
+ 'Locale::Codes::Currency'=> '3.34',
+ 'Locale::Codes::Currency_Codes'=> '3.34',
+ 'Locale::Codes::Currency_Retired'=> '3.34',
+ 'Locale::Codes::LangExt'=> '3.34',
+ 'Locale::Codes::LangExt_Codes'=> '3.34',
+ 'Locale::Codes::LangExt_Retired'=> '3.34',
+ 'Locale::Codes::LangFam'=> '3.34',
+ 'Locale::Codes::LangFam_Codes'=> '3.34',
+ 'Locale::Codes::LangFam_Retired'=> '3.34',
+ 'Locale::Codes::LangVar'=> '3.34',
+ 'Locale::Codes::LangVar_Codes'=> '3.34',
+ 'Locale::Codes::LangVar_Retired'=> '3.34',
+ 'Locale::Codes::Language'=> '3.34',
+ 'Locale::Codes::Language_Codes'=> '3.34',
+ 'Locale::Codes::Language_Retired'=> '3.34',
+ 'Locale::Codes::Script' => '3.34',
+ 'Locale::Codes::Script_Codes'=> '3.34',
+ 'Locale::Codes::Script_Retired'=> '3.34',
+ 'Locale::Country' => '3.34',
+ 'Locale::Currency' => '3.34',
+ 'Locale::Language' => '3.34',
+ 'Locale::Script' => '3.34',
+ 'Module::CoreList' => '5.20150320',
+ 'Module::CoreList::TieHashDelta'=> '5.20150320',
+ 'Module::CoreList::Utils'=> '5.20150320',
+ 'POSIX' => '1.52',
+ 'Pod::Functions' => '1.09',
+ 'Pod::Functions::Functions'=> '1.09',
+ 'Term::Complete' => '1.403',
+ 'Test::Builder' => '1.001014',
+ 'Test::Builder::IO::Scalar'=> '2.113',
+ 'Test::Builder::Module' => '1.001014',
+ 'Test::Builder::Tester' => '1.28',
+ 'Test::Builder::Tester::Color'=> '1.290001',
+ 'Test::More' => '1.001014',
+ 'Test::Simple' => '1.001014',
+ 'Test::Tester' => '0.114',
+ 'Test::use::ok' => '0.16',
+ 'Text::Balanced' => '2.03',
+ 'Text::ParseWords' => '3.30',
+ 'Unicode::Collate' => '1.12',
+ 'Unicode::Collate::CJK::Big5'=> '1.12',
+ 'Unicode::Collate::CJK::GB2312'=> '1.12',
+ 'Unicode::Collate::CJK::JISX0208'=> '1.12',
+ 'Unicode::Collate::CJK::Korean'=> '1.12',
+ 'Unicode::Collate::CJK::Pinyin'=> '1.12',
+ 'Unicode::Collate::CJK::Stroke'=> '1.12',
+ 'Unicode::Collate::CJK::Zhuyin'=> '1.12',
+ 'Unicode::Collate::Locale'=> '1.12',
+ 'XS::APItest' => '0.71',
+ 'encoding' => '2.14',
+ 'locale' => '1.06',
+ 'meta_notation' => undef,
+ 'ok' => '0.16',
+ 'parent' => '0.232',
+ 're' => '0.32',
+ 'sigtrap' => '1.08',
+ 'threads' => '2.01',
+ 'utf8' => '1.15',
+ },
+ removed => {
+ 'Test::CanFork' => 1,
+ 'Test::CanThread' => 1,
+ 'Test::More::DeepCheck' => 1,
+ 'Test::More::DeepCheck::Strict'=> 1,
+ 'Test::More::DeepCheck::Tolerant'=> 1,
+ 'Test::More::Tools' => 1,
+ 'Test::MostlyLike' => 1,
+ 'Test::Stream' => 1,
+ 'Test::Stream::API' => 1,
+ 'Test::Stream::ArrayBase'=> 1,
+ 'Test::Stream::ArrayBase::Meta'=> 1,
+ 'Test::Stream::Block' => 1,
+ 'Test::Stream::Carp' => 1,
+ 'Test::Stream::Context' => 1,
+ 'Test::Stream::Event' => 1,
+ 'Test::Stream::Event::Bail'=> 1,
+ 'Test::Stream::Event::Child'=> 1,
+ 'Test::Stream::Event::Diag'=> 1,
+ 'Test::Stream::Event::Finish'=> 1,
+ 'Test::Stream::Event::Note'=> 1,
+ 'Test::Stream::Event::Ok'=> 1,
+ 'Test::Stream::Event::Plan'=> 1,
+ 'Test::Stream::Event::Subtest'=> 1,
+ 'Test::Stream::ExitMagic'=> 1,
+ 'Test::Stream::ExitMagic::Context'=> 1,
+ 'Test::Stream::Exporter'=> 1,
+ 'Test::Stream::Exporter::Meta'=> 1,
+ 'Test::Stream::ForceExit'=> 1,
+ 'Test::Stream::IOSets' => 1,
+ 'Test::Stream::Meta' => 1,
+ 'Test::Stream::PackageUtil'=> 1,
+ 'Test::Stream::Subtest' => 1,
+ 'Test::Stream::Tester' => 1,
+ 'Test::Stream::Tester::Checks'=> 1,
+ 'Test::Stream::Tester::Checks::Event'=> 1,
+ 'Test::Stream::Tester::Events'=> 1,
+ 'Test::Stream::Tester::Events::Event'=> 1,
+ 'Test::Stream::Tester::Grab'=> 1,
+ 'Test::Stream::Threads' => 1,
+ 'Test::Stream::Toolset' => 1,
+ 'Test::Stream::Util' => 1,
+ }
+ },
+ 5.021011 => {
+ delta_from => 5.021010,
+ changed => {
+ 'B' => '1.58',
+ 'B::Deparse' => '1.35',
+ 'B::Op_private' => '5.021011',
+ 'CPAN' => '2.11',
+ 'Config' => '5.021011',
+ 'Config::Perl::V' => '0.24',
+ 'Cwd' => '3.56',
+ 'ExtUtils::Miniperl' => '1.05',
+ 'ExtUtils::ParseXS' => '3.28',
+ 'ExtUtils::ParseXS::Constants'=> '3.28',
+ 'ExtUtils::ParseXS::CountLines'=> '3.28',
+ 'ExtUtils::ParseXS::Eval'=> '3.28',
+ 'ExtUtils::ParseXS::Utilities'=> '3.28',
+ 'ExtUtils::Typemaps' => '3.28',
+ 'ExtUtils::Typemaps::Cmd'=> '3.28',
+ 'ExtUtils::Typemaps::InputMap'=> '3.28',
+ 'ExtUtils::Typemaps::OutputMap'=> '3.28',
+ 'ExtUtils::Typemaps::Type'=> '3.28',
+ 'File::Spec' => '3.56',
+ 'File::Spec::Cygwin' => '3.56',
+ 'File::Spec::Epoc' => '3.56',
+ 'File::Spec::Functions' => '3.56',
+ 'File::Spec::Mac' => '3.56',
+ 'File::Spec::OS2' => '3.56',
+ 'File::Spec::Unix' => '3.56',
+ 'File::Spec::VMS' => '3.56',
+ 'File::Spec::Win32' => '3.56',
+ 'IO::Socket::IP' => '0.37',
+ 'Module::CoreList' => '5.20150420',
+ 'Module::CoreList::TieHashDelta'=> '5.20150420',
+ 'Module::CoreList::Utils'=> '5.20150420',
+ 'PerlIO::mmap' => '0.014',
+ 'XS::APItest' => '0.72',
+ 'attributes' => '0.27',
+ 'if' => '0.0604',
+ 'utf8' => '1.16',
+ 'warnings' => '1.32',
+ },
+ removed => {
+ }
+ },
+ 5.022000 => {
+ delta_from => 5.021011,
+ changed => {
+ 'B::Op_private' => '5.022000',
+ 'Config' => '5.022',
+ 'ExtUtils::Command::MM' => '7.04_01',
+ 'ExtUtils::Liblist' => '7.04_01',
+ 'ExtUtils::Liblist::Kid'=> '7.04_01',
+ 'ExtUtils::MM' => '7.04_01',
+ 'ExtUtils::MM_AIX' => '7.04_01',
+ 'ExtUtils::MM_Any' => '7.04_01',
+ 'ExtUtils::MM_BeOS' => '7.04_01',
+ 'ExtUtils::MM_Cygwin' => '7.04_01',
+ 'ExtUtils::MM_DOS' => '7.04_01',
+ 'ExtUtils::MM_Darwin' => '7.04_01',
+ 'ExtUtils::MM_MacOS' => '7.04_01',
+ 'ExtUtils::MM_NW5' => '7.04_01',
+ 'ExtUtils::MM_OS2' => '7.04_01',
+ 'ExtUtils::MM_QNX' => '7.04_01',
+ 'ExtUtils::MM_UWIN' => '7.04_01',
+ 'ExtUtils::MM_Unix' => '7.04_01',
+ 'ExtUtils::MM_VMS' => '7.04_01',
+ 'ExtUtils::MM_VOS' => '7.04_01',
+ 'ExtUtils::MM_Win32' => '7.04_01',
+ 'ExtUtils::MM_Win95' => '7.04_01',
+ 'ExtUtils::MY' => '7.04_01',
+ 'ExtUtils::MakeMaker' => '7.04_01',
+ 'ExtUtils::MakeMaker::Config'=> '7.04_01',
+ 'ExtUtils::MakeMaker::Locale'=> '7.04_01',
+ 'ExtUtils::MakeMaker::version'=> '7.04_01',
+ 'ExtUtils::MakeMaker::version::regex'=> '7.04_01',
+ 'ExtUtils::MakeMaker::version::vpp'=> '7.04_01',
+ 'ExtUtils::Mkbootstrap' => '7.04_01',
+ 'ExtUtils::Mksymlists' => '7.04_01',
+ 'ExtUtils::testlib' => '7.04_01',
+ 'Module::CoreList' => '5.20150520',
+ 'Module::CoreList::TieHashDelta'=> '5.20150520',
+ 'Module::CoreList::Utils'=> '5.20150520',
+ 'POSIX' => '1.53',
+ 'PerlIO::via::QuotedPrint'=> '0.08',
+ 'overload' => '1.26',
+ 'utf8' => '1.17',
+ },
+ removed => {
+ }
+ },
+ 5.023000 => {
+ delta_from => 5.022000,
+ changed => {
+ 'B::Op_private' => '5.023000',
+ 'CPAN::Meta' => '2.150005',
+ 'CPAN::Meta::Converter' => '2.150005',
+ 'CPAN::Meta::Feature' => '2.150005',
+ 'CPAN::Meta::History' => '2.150005',
+ 'CPAN::Meta::Merge' => '2.150005',
+ 'CPAN::Meta::Prereqs' => '2.150005',
+ 'CPAN::Meta::Requirements'=> '2.133',
+ 'CPAN::Meta::Spec' => '2.150005',
+ 'CPAN::Meta::Validator' => '2.150005',
+ 'CPAN::Meta::YAML' => '0.016',
+ 'Config' => '5.023',
+ 'Encode' => '2.73',
+ 'ExtUtils::CBuilder' => '0.280223',
+ 'ExtUtils::CBuilder::Base'=> '0.280223',
+ 'ExtUtils::CBuilder::Platform::Unix'=> '0.280223',
+ 'ExtUtils::CBuilder::Platform::VMS'=> '0.280223',
+ 'ExtUtils::CBuilder::Platform::Windows'=> '0.280223',
+ 'ExtUtils::CBuilder::Platform::Windows::BCC'=> '0.280223',
+ 'ExtUtils::CBuilder::Platform::Windows::GCC'=> '0.280223',
+ 'ExtUtils::CBuilder::Platform::Windows::MSVC'=> '0.280223',
+ 'ExtUtils::CBuilder::Platform::aix'=> '0.280223',
+ 'ExtUtils::CBuilder::Platform::android'=> '0.280223',
+ 'ExtUtils::CBuilder::Platform::cygwin'=> '0.280223',
+ 'ExtUtils::CBuilder::Platform::darwin'=> '0.280223',
+ 'ExtUtils::CBuilder::Platform::dec_osf'=> '0.280223',
+ 'ExtUtils::CBuilder::Platform::os2'=> '0.280223',
+ 'Fatal' => '2.27',
+ 'Getopt::Long' => '2.46',
+ 'HTTP::Tiny' => '0.056',
+ 'List::Util' => '1.42_01',
+ 'List::Util::XS' => '1.42_01',
+ 'Locale::Codes' => '3.35',
+ 'Locale::Codes::Constants'=> '3.35',
+ 'Locale::Codes::Country'=> '3.35',
+ 'Locale::Codes::Country_Codes'=> '3.35',
+ 'Locale::Codes::Country_Retired'=> '3.35',
+ 'Locale::Codes::Currency'=> '3.35',
+ 'Locale::Codes::Currency_Codes'=> '3.35',
+ 'Locale::Codes::Currency_Retired'=> '3.35',
+ 'Locale::Codes::LangExt'=> '3.35',
+ 'Locale::Codes::LangExt_Codes'=> '3.35',
+ 'Locale::Codes::LangExt_Retired'=> '3.35',
+ 'Locale::Codes::LangFam'=> '3.35',
+ 'Locale::Codes::LangFam_Codes'=> '3.35',
+ 'Locale::Codes::LangFam_Retired'=> '3.35',
+ 'Locale::Codes::LangVar'=> '3.35',
+ 'Locale::Codes::LangVar_Codes'=> '3.35',
+ 'Locale::Codes::LangVar_Retired'=> '3.35',
+ 'Locale::Codes::Language'=> '3.35',
+ 'Locale::Codes::Language_Codes'=> '3.35',
+ 'Locale::Codes::Language_Retired'=> '3.35',
+ 'Locale::Codes::Script' => '3.35',
+ 'Locale::Codes::Script_Codes'=> '3.35',
+ 'Locale::Codes::Script_Retired'=> '3.35',
+ 'Locale::Country' => '3.35',
+ 'Locale::Currency' => '3.35',
+ 'Locale::Language' => '3.35',
+ 'Locale::Script' => '3.35',
+ 'Math::BigFloat' => '1.999701',
+ 'Math::BigInt' => '1.999701',
+ 'Math::BigInt::Calc' => '1.999701',
+ 'Math::BigInt::CalcEmu' => '1.999701',
+ 'Math::BigRat' => '0.260801',
+ 'Module::CoreList' => '5.20150620',
+ 'Module::CoreList::TieHashDelta'=> '5.20150620',
+ 'Module::CoreList::Utils'=> '5.20150620',
+ 'Module::Metadata' => '1.000027',
+ 'Net::Cmd' => '3.06',
+ 'Net::Config' => '3.06',
+ 'Net::Domain' => '3.06',
+ 'Net::FTP' => '3.06',
+ 'Net::FTP::A' => '3.06',
+ 'Net::FTP::E' => '3.06',
+ 'Net::FTP::I' => '3.06',
+ 'Net::FTP::L' => '3.06',
+ 'Net::FTP::dataconn' => '3.06',
+ 'Net::NNTP' => '3.06',
+ 'Net::Netrc' => '3.06',
+ 'Net::POP3' => '3.06',
+ 'Net::SMTP' => '3.06',
+ 'Net::Time' => '3.06',
+ 'POSIX' => '1.54',
+ 'Parse::CPAN::Meta' => '1.4417',
+ 'Pod::Simple' => '3.30',
+ 'Pod::Simple::BlackBox' => '3.30',
+ 'Pod::Simple::Checker' => '3.30',
+ 'Pod::Simple::Debug' => '3.30',
+ 'Pod::Simple::DumpAsText'=> '3.30',
+ 'Pod::Simple::DumpAsXML'=> '3.30',
+ 'Pod::Simple::HTML' => '3.30',
+ 'Pod::Simple::HTMLBatch'=> '3.30',
+ 'Pod::Simple::LinkSection'=> '3.30',
+ 'Pod::Simple::Methody' => '3.30',
+ 'Pod::Simple::Progress' => '3.30',
+ 'Pod::Simple::PullParser'=> '3.30',
+ 'Pod::Simple::PullParserEndToken'=> '3.30',
+ 'Pod::Simple::PullParserStartToken'=> '3.30',
+ 'Pod::Simple::PullParserTextToken'=> '3.30',
+ 'Pod::Simple::PullParserToken'=> '3.30',
+ 'Pod::Simple::RTF' => '3.30',
+ 'Pod::Simple::Search' => '3.30',
+ 'Pod::Simple::SimpleTree'=> '3.30',
+ 'Pod::Simple::Text' => '3.30',
+ 'Pod::Simple::TextContent'=> '3.30',
+ 'Pod::Simple::TiedOutFH'=> '3.30',
+ 'Pod::Simple::Transcode'=> '3.30',
+ 'Pod::Simple::TranscodeDumb'=> '3.30',
+ 'Pod::Simple::TranscodeSmart'=> '3.30',
+ 'Pod::Simple::XHTML' => '3.30',
+ 'Pod::Simple::XMLOutStream'=> '3.30',
+ 'Pod::Usage' => '1.67',
+ 'Scalar::Util' => '1.42_01',
+ 'Socket' => '2.019',
+ 'Sub::Util' => '1.42_01',
+ 'Time::Piece' => '1.30',
+ 'Time::Seconds' => '1.30',
+ 'UNIVERSAL' => '1.13',
+ 'Unicode' => '8.0.0',
+ 'XS::APItest' => '0.73',
+ 'autodie' => '2.27',
+ 'autodie::Scope::Guard' => '2.27',
+ 'autodie::Scope::GuardStack'=> '2.27',
+ 'autodie::Util' => '2.27',
+ 'autodie::exception' => '2.27',
+ 'autodie::exception::system'=> '2.27',
+ 'autodie::hints' => '2.27',
+ 'autodie::skip' => '2.27',
+ 'encoding' => '2.15',
+ 'feature' => '1.41',
+ 'parent' => '0.234',
+ 'threads' => '2.02',
+ },
+ removed => {
+ }
+ },
+ 5.023001 => {
+ delta_from => 5.023000,
+ changed => {
+ 'B::Op_private' => '5.023001',
+ 'Config' => '5.023001',
+ 'DynaLoader' => '1.33',
+ 'Encode' => '2.75',
+ 'Encode::MIME::Header' => '2.17',
+ 'Encode::Unicode' => '2.13',
+ 'Fatal' => '2.29',
+ 'File::Path' => '2.11',
+ 'Getopt::Long' => '2.47',
+ 'I18N::Langinfo' => '0.13',
+ 'IPC::Open3' => '1.19',
+ 'Module::CoreList' => '5.20150720',
+ 'Module::CoreList::TieHashDelta'=> '5.20150720',
+ 'Module::CoreList::Utils'=> '5.20150720',
+ 'Net::Cmd' => '3.07',
+ 'Net::Config' => '3.07',
+ 'Net::Domain' => '3.07',
+ 'Net::FTP' => '3.07',
+ 'Net::FTP::A' => '3.07',
+ 'Net::FTP::E' => '3.07',
+ 'Net::FTP::I' => '3.07',
+ 'Net::FTP::L' => '3.07',
+ 'Net::FTP::dataconn' => '3.07',
+ 'Net::NNTP' => '3.07',
+ 'Net::Netrc' => '3.07',
+ 'Net::POP3' => '3.07',
+ 'Net::SMTP' => '3.07',
+ 'Net::Time' => '3.07',
+ 'Opcode' => '1.33',
+ 'POSIX' => '1.55',
+ 'PerlIO::scalar' => '0.23',
+ 'Socket' => '2.020',
+ 'Storable' => '2.54',
+ 'Unicode::Collate' => '1.14',
+ 'Unicode::Collate::CJK::Big5'=> '1.14',
+ 'Unicode::Collate::CJK::GB2312'=> '1.14',
+ 'Unicode::Collate::CJK::JISX0208'=> '1.14',
+ 'Unicode::Collate::CJK::Korean'=> '1.14',
+ 'Unicode::Collate::CJK::Pinyin'=> '1.14',
+ 'Unicode::Collate::CJK::Stroke'=> '1.14',
+ 'Unicode::Collate::CJK::Zhuyin'=> '1.14',
+ 'Unicode::Collate::Locale'=> '1.14',
+ 'Unicode::Normalize' => '1.19',
+ 'XS::APItest' => '0.74',
+ 'XS::Typemap' => '0.14',
+ 'autodie' => '2.29',
+ 'autodie::Scope::Guard' => '2.29',
+ 'autodie::Scope::GuardStack'=> '2.29',
+ 'autodie::Util' => '2.29',
+ 'autodie::exception' => '2.29',
+ 'autodie::exception::system'=> '2.29',
+ 'autodie::hints' => '2.29',
+ 'autodie::skip' => '2.29',
+ 'encoding' => '2.16',
+ 'feature' => '1.42',
+ 'warnings' => '1.33',
+ },
+ removed => {
+ 'autodie::ScopeUtil' => 1,
+ }
+ },
+ 5.023002 => {
+ delta_from => 5.023001,
+ changed => {
+ 'Attribute::Handlers' => '0.99',
+ 'B::Op_private' => '5.023002',
+ 'CPAN::Meta::YAML' => '0.017',
+ 'Config' => '5.023002',
+ 'Cwd' => '3.57',
+ 'Encode' => '2.76',
+ 'ExtUtils::ParseXS' => '3.29',
+ 'ExtUtils::ParseXS::Constants'=> '3.29',
+ 'ExtUtils::ParseXS::CountLines'=> '3.29',
+ 'ExtUtils::ParseXS::Eval'=> '3.29',
+ 'ExtUtils::ParseXS::Utilities'=> '3.29',
+ 'ExtUtils::Typemaps' => '3.29',
+ 'File::Find' => '1.30',
+ 'File::Spec' => '3.57',
+ 'File::Spec::Cygwin' => '3.57',
+ 'File::Spec::Epoc' => '3.57',
+ 'File::Spec::Functions' => '3.57',
+ 'File::Spec::Mac' => '3.57',
+ 'File::Spec::OS2' => '3.57',
+ 'File::Spec::Unix' => '3.57',
+ 'File::Spec::VMS' => '3.57',
+ 'File::Spec::Win32' => '3.57',
+ 'Filter::Util::Call' => '1.55',
+ 'Hash::Util' => '0.19',
+ 'Module::CoreList' => '5.20150820',
+ 'Module::CoreList::TieHashDelta'=> '5.20150820',
+ 'Module::CoreList::Utils'=> '5.20150820',
+ 'POSIX' => '1.56',
+ 'Term::Cap' => '1.17',
+ 'Unicode::UCD' => '0.62',
+ 'perlfaq' => '5.021010',
+ },
+ removed => {
+ }
+ },
+ 5.020003 => {
+ delta_from => 5.020002,
+ changed => {
+ 'Config' => '5.020003',
+ 'Errno' => '1.20_06',
+ 'Module::CoreList' => '5.20150912',
+ 'Module::CoreList::TieHashDelta'=> '5.20150912',
+ 'Module::CoreList::Utils'=> '5.20150912',
+ },
+ removed => {
+ }
+ },
+ 5.023003 => {
+ delta_from => 5.023002,
+ changed => {
+ 'Amiga::ARexx' => '0.02',
+ 'Amiga::Exec' => '0.01',
+ 'B' => '1.59',
+ 'B::Op_private' => '5.023003',
+ 'Carp' => '1.37',
+ 'Carp::Heavy' => '1.37',
+ 'Compress::Raw::Zlib' => '2.068_01',
+ 'Config' => '5.023003',
+ 'Cwd' => '3.58',
+ 'DynaLoader' => '1.34',
+ 'Encode' => '2.77',
+ 'Encode::Unicode' => '2.14',
+ 'English' => '1.10',
+ 'Errno' => '1.24',
+ 'ExtUtils::Command' => '7.10',
+ 'ExtUtils::Command::MM' => '7.10',
+ 'ExtUtils::Liblist' => '7.10',
+ 'ExtUtils::Liblist::Kid'=> '7.10',
+ 'ExtUtils::MM' => '7.10',
+ 'ExtUtils::MM_AIX' => '7.10',
+ 'ExtUtils::MM_Any' => '7.10',
+ 'ExtUtils::MM_BeOS' => '7.10',
+ 'ExtUtils::MM_Cygwin' => '7.10',
+ 'ExtUtils::MM_DOS' => '7.10',
+ 'ExtUtils::MM_Darwin' => '7.10',
+ 'ExtUtils::MM_MacOS' => '7.10',
+ 'ExtUtils::MM_NW5' => '7.10',
+ 'ExtUtils::MM_OS2' => '7.10',
+ 'ExtUtils::MM_QNX' => '7.10',
+ 'ExtUtils::MM_UWIN' => '7.10',
+ 'ExtUtils::MM_Unix' => '7.10',
+ 'ExtUtils::MM_VMS' => '7.10',
+ 'ExtUtils::MM_VOS' => '7.10',
+ 'ExtUtils::MM_Win32' => '7.10',
+ 'ExtUtils::MM_Win95' => '7.10',
+ 'ExtUtils::MY' => '7.10',
+ 'ExtUtils::MakeMaker' => '7.10',
+ 'ExtUtils::MakeMaker::Config'=> '7.10',
+ 'ExtUtils::MakeMaker::Locale'=> '7.10',
+ 'ExtUtils::MakeMaker::version'=> '7.10',
+ 'ExtUtils::MakeMaker::version::regex'=> '7.10',
+ 'ExtUtils::MakeMaker::version::vpp'=> '7.10',
+ 'ExtUtils::Mkbootstrap' => '7.10',
+ 'ExtUtils::Mksymlists' => '7.10',
+ 'ExtUtils::ParseXS' => '3.30',
+ 'ExtUtils::ParseXS::Constants'=> '3.30',
+ 'ExtUtils::ParseXS::CountLines'=> '3.30',
+ 'ExtUtils::ParseXS::Eval'=> '3.30',
+ 'ExtUtils::ParseXS::Utilities'=> '3.30',
+ 'ExtUtils::Typemaps' => '3.30',
+ 'ExtUtils::Typemaps::Cmd'=> '3.30',
+ 'ExtUtils::Typemaps::InputMap'=> '3.30',
+ 'ExtUtils::Typemaps::OutputMap'=> '3.30',
+ 'ExtUtils::Typemaps::Type'=> '3.30',
+ 'ExtUtils::testlib' => '7.10',
+ 'File::Find' => '1.31',
+ 'File::Glob' => '1.25',
+ 'File::Spec' => '3.58',
+ 'File::Spec::AmigaOS' => '3.58',
+ 'File::Spec::Cygwin' => '3.58',
+ 'File::Spec::Epoc' => '3.58',
+ 'File::Spec::Functions' => '3.58',
+ 'File::Spec::Mac' => '3.58',
+ 'File::Spec::OS2' => '3.58',
+ 'File::Spec::Unix' => '3.58',
+ 'File::Spec::VMS' => '3.58',
+ 'File::Spec::Win32' => '3.58',
+ 'Hash::Util::FieldHash' => '1.17',
+ 'Locale::Codes' => '3.36',
+ 'Locale::Codes::Constants'=> '3.36',
+ 'Locale::Codes::Country'=> '3.36',
+ 'Locale::Codes::Country_Codes'=> '3.36',
+ 'Locale::Codes::Country_Retired'=> '3.36',
+ 'Locale::Codes::Currency'=> '3.36',
+ 'Locale::Codes::Currency_Codes'=> '3.36',
+ 'Locale::Codes::Currency_Retired'=> '3.36',
+ 'Locale::Codes::LangExt'=> '3.36',
+ 'Locale::Codes::LangExt_Codes'=> '3.36',
+ 'Locale::Codes::LangExt_Retired'=> '3.36',
+ 'Locale::Codes::LangFam'=> '3.36',
+ 'Locale::Codes::LangFam_Codes'=> '3.36',
+ 'Locale::Codes::LangFam_Retired'=> '3.36',
+ 'Locale::Codes::LangVar'=> '3.36',
+ 'Locale::Codes::LangVar_Codes'=> '3.36',
+ 'Locale::Codes::LangVar_Retired'=> '3.36',
+ 'Locale::Codes::Language'=> '3.36',
+ 'Locale::Codes::Language_Codes'=> '3.36',
+ 'Locale::Codes::Language_Retired'=> '3.36',
+ 'Locale::Codes::Script' => '3.36',
+ 'Locale::Codes::Script_Codes'=> '3.36',
+ 'Locale::Codes::Script_Retired'=> '3.36',
+ 'Locale::Country' => '3.36',
+ 'Locale::Currency' => '3.36',
+ 'Locale::Language' => '3.36',
+ 'Locale::Script' => '3.36',
+ 'Math::BigFloat::Trace' => '0.40',
+ 'Math::BigInt::Trace' => '0.40',
+ 'Module::CoreList' => '5.20150920',
+ 'Module::CoreList::TieHashDelta'=> '5.20150920',
+ 'Module::CoreList::Utils'=> '5.20150920',
+ 'OS2::DLL' => '1.06',
+ 'OS2::ExtAttr' => '0.04',
+ 'OS2::Process' => '1.11',
+ 'OS2::REXX' => '1.05',
+ 'POSIX' => '1.57',
+ 'Pod::Perldoc' => '3.25_01',
+ 'Socket' => '2.020_01',
+ 'Test' => '1.27',
+ 'Thread::Queue' => '3.06',
+ 'Time::HiRes' => '1.9727_02',
+ 'Unicode::UCD' => '0.63',
+ 'Win32' => '0.52',
+ 'XS::APItest' => '0.75',
+ 'bigint' => '0.40',
+ 'bignum' => '0.40',
+ 'bigrat' => '0.40',
+ 'encoding' => '2.17',
+ 'experimental' => '0.014',
+ 'if' => '0.0605',
+ 'locale' => '1.07',
+ 'mro' => '1.18',
+ 'threads' => '2.03',
+ },
+ removed => {
+ }
+ },
+ 5.023004 => {
+ delta_from => 5.023003,
+ changed => {
+ 'B' => '1.60',
+ 'B::Op_private' => '5.023004',
+ 'Compress::Raw::Bzip2' => '2.069',
+ 'Compress::Raw::Zlib' => '2.069',
+ 'Compress::Zlib' => '2.069',
+ 'Config' => '5.023004',
+ 'Devel::PPPort' => '3.32',
+ 'DynaLoader' => '1.35',
+ 'Encode' => '2.78',
+ 'ExtUtils::CBuilder' => '0.280224',
+ 'ExtUtils::CBuilder::Base'=> '0.280224',
+ 'ExtUtils::CBuilder::Platform::Unix'=> '0.280224',
+ 'ExtUtils::CBuilder::Platform::VMS'=> '0.280224',
+ 'ExtUtils::CBuilder::Platform::Windows'=> '0.280224',
+ 'ExtUtils::CBuilder::Platform::Windows::BCC'=> '0.280224',
+ 'ExtUtils::CBuilder::Platform::Windows::GCC'=> '0.280224',
+ 'ExtUtils::CBuilder::Platform::Windows::MSVC'=> '0.280224',
+ 'ExtUtils::CBuilder::Platform::aix'=> '0.280224',
+ 'ExtUtils::CBuilder::Platform::android'=> '0.280224',
+ 'ExtUtils::CBuilder::Platform::cygwin'=> '0.280224',
+ 'ExtUtils::CBuilder::Platform::darwin'=> '0.280224',
+ 'ExtUtils::CBuilder::Platform::dec_osf'=> '0.280224',
+ 'ExtUtils::CBuilder::Platform::os2'=> '0.280224',
+ 'File::Path' => '2.12',
+ 'IO' => '1.36',
+ 'IO::Compress::Adapter::Bzip2'=> '2.069',
+ 'IO::Compress::Adapter::Deflate'=> '2.069',
+ 'IO::Compress::Adapter::Identity'=> '2.069',
+ 'IO::Compress::Base' => '2.069',
+ 'IO::Compress::Base::Common'=> '2.069',
+ 'IO::Compress::Bzip2' => '2.069',
+ 'IO::Compress::Deflate' => '2.069',
+ 'IO::Compress::Gzip' => '2.069',
+ 'IO::Compress::Gzip::Constants'=> '2.069',
+ 'IO::Compress::RawDeflate'=> '2.069',
+ 'IO::Compress::Zip' => '2.069',
+ 'IO::Compress::Zip::Constants'=> '2.069',
+ 'IO::Compress::Zlib::Constants'=> '2.069',
+ 'IO::Compress::Zlib::Extra'=> '2.069',
+ 'IO::Poll' => '0.10',
+ 'IO::Uncompress::Adapter::Bunzip2'=> '2.069',
+ 'IO::Uncompress::Adapter::Identity'=> '2.069',
+ 'IO::Uncompress::Adapter::Inflate'=> '2.069',
+ 'IO::Uncompress::AnyInflate'=> '2.069',
+ 'IO::Uncompress::AnyUncompress'=> '2.069',
+ 'IO::Uncompress::Base' => '2.069',
+ 'IO::Uncompress::Bunzip2'=> '2.069',
+ 'IO::Uncompress::Gunzip'=> '2.069',
+ 'IO::Uncompress::Inflate'=> '2.069',
+ 'IO::Uncompress::RawInflate'=> '2.069',
+ 'IO::Uncompress::Unzip' => '2.069',
+ 'Math::BigFloat' => '1.999704',
+ 'Math::BigFloat::Trace' => '0.41',
+ 'Math::BigInt' => '1.999704',
+ 'Math::BigInt::Calc' => '1.999704',
+ 'Math::BigInt::CalcEmu' => '1.999704',
+ 'Math::BigInt::FastCalc'=> '0.34',
+ 'Math::BigInt::Trace' => '0.41',
+ 'Module::CoreList' => '5.20151020',
+ 'Module::CoreList::TieHashDelta'=> '5.20151020',
+ 'Module::CoreList::Utils'=> '5.20151020',
+ 'Module::Metadata' => '1.000029',
+ 'POSIX' => '1.58',
+ 'Perl::OSType' => '1.009',
+ 'PerlIO::encoding' => '0.22',
+ 'Socket' => '2.020_02',
+ 'Unicode::Normalize' => '1.21',
+ 'XS::APItest' => '0.76',
+ 'bigint' => '0.41',
+ 'bignum' => '0.41',
+ 'bigrat' => '0.41',
+ 'experimental' => '0.016',
+ 'if' => '0.0606',
+ 'warnings' => '1.35',
+ },
+ removed => {
+ }
+ },
+ 5.023005 => {
+ delta_from => 5.023004,
+ changed => {
+ 'B' => '1.61',
+ 'B::Op_private' => '5.023005',
+ 'Carp' => '1.38',
+ 'Carp::Heavy' => '1.38',
+ 'Config' => '5.023005',
+ 'Config::Perl::V' => '0.25',
+ 'Cwd' => '3.59',
+ 'Devel::Peek' => '1.23',
+ 'Dumpvalue' => '1.18',
+ 'DynaLoader' => '1.36',
+ 'File::Find' => '1.32',
+ 'File::Spec' => '3.59',
+ 'File::Spec::AmigaOS' => '3.59',
+ 'File::Spec::Cygwin' => '3.59',
+ 'File::Spec::Epoc' => '3.59',
+ 'File::Spec::Functions' => '3.59',
+ 'File::Spec::Mac' => '3.59',
+ 'File::Spec::OS2' => '3.59',
+ 'File::Spec::Unix' => '3.59',
+ 'File::Spec::VMS' => '3.59',
+ 'File::Spec::Win32' => '3.59',
+ 'Getopt::Long' => '2.48',
+ 'Hash::Util::FieldHash' => '1.18',
+ 'IPC::Open3' => '1.20',
+ 'Math::BigFloat' => '1.999710',
+ 'Math::BigInt' => '1.999710',
+ 'Math::BigInt::Calc' => '1.999710',
+ 'Math::BigInt::CalcEmu' => '1.999710',
+ 'Math::BigInt::FastCalc'=> '0.37',
+ 'Module::CoreList' => '5.20151120',
+ 'Module::CoreList::TieHashDelta'=> '5.20151120',
+ 'Module::CoreList::Utils'=> '5.20151120',
+ 'Module::Metadata' => '1.000030',
+ 'POSIX' => '1.59',
+ 'PerlIO::encoding' => '0.23',
+ 'PerlIO::mmap' => '0.015',
+ 'PerlIO::scalar' => '0.24',
+ 'PerlIO::via' => '0.16',
+ 'Pod::Simple' => '3.32',
+ 'Pod::Simple::BlackBox' => '3.32',
+ 'Pod::Simple::Checker' => '3.32',
+ 'Pod::Simple::Debug' => '3.32',
+ 'Pod::Simple::DumpAsText'=> '3.32',
+ 'Pod::Simple::DumpAsXML'=> '3.32',
+ 'Pod::Simple::HTML' => '3.32',
+ 'Pod::Simple::HTMLBatch'=> '3.32',
+ 'Pod::Simple::LinkSection'=> '3.32',
+ 'Pod::Simple::Methody' => '3.32',
+ 'Pod::Simple::Progress' => '3.32',
+ 'Pod::Simple::PullParser'=> '3.32',
+ 'Pod::Simple::PullParserEndToken'=> '3.32',
+ 'Pod::Simple::PullParserStartToken'=> '3.32',
+ 'Pod::Simple::PullParserTextToken'=> '3.32',
+ 'Pod::Simple::PullParserToken'=> '3.32',
+ 'Pod::Simple::RTF' => '3.32',
+ 'Pod::Simple::Search' => '3.32',
+ 'Pod::Simple::SimpleTree'=> '3.32',
+ 'Pod::Simple::Text' => '3.32',
+ 'Pod::Simple::TextContent'=> '3.32',
+ 'Pod::Simple::TiedOutFH'=> '3.32',
+ 'Pod::Simple::Transcode'=> '3.32',
+ 'Pod::Simple::TranscodeDumb'=> '3.32',
+ 'Pod::Simple::TranscodeSmart'=> '3.32',
+ 'Pod::Simple::XHTML' => '3.32',
+ 'Pod::Simple::XMLOutStream'=> '3.32',
+ 'Thread::Queue' => '3.07',
+ 'Tie::Scalar' => '1.04',
+ 'Time::HiRes' => '1.9728',
+ 'Time::Piece' => '1.31',
+ 'Time::Seconds' => '1.31',
+ 'Unicode::Normalize' => '1.23',
+ 'XSLoader' => '0.21',
+ 'arybase' => '0.11',
+ 'base' => '2.22_01',
+ 'fields' => '2.22_01',
+ 'threads' => '2.04',
+ 'threads::shared' => '1.49',
+ },
+ removed => {
+ 'ExtUtils::MakeMaker::version::vpp'=> 1,
+ 'version::vpp' => 1,
+ }
+ },
+ 5.022001 => {
+ delta_from => 5.022,
+ changed => {
+ 'B::Op_private' => '5.022001',
+ 'Config' => '5.022001',
+ 'Module::CoreList' => '5.20151213',
+ 'Module::CoreList::TieHashDelta'=> '5.20151213',
+ 'Module::CoreList::Utils'=> '5.20151213',
+ 'POSIX' => '1.53_01',
+ 'PerlIO::scalar' => '0.23',
+ 'Storable' => '2.53_01',
+ 'Win32' => '0.52',
+ 'warnings' => '1.34',
+ },
+ removed => {
+ }
+ },
);
sub is_core
@@ -11106,7 +12037,7 @@ sub is_core
my $final_release = removed_from($module);
- return 0 if defined($final_release) && $perl_version > $final_release;
+ return 0 if defined($final_release) && $perl_version >= $final_release;
# If a minimum version of the module was specified:
# Step through all perl releases ($prn)
@@ -11121,7 +12052,9 @@ sub is_core
my @releases = ($perl_version);
my $rel = $perl_version;
while (defined($rel)) {
- $rel = $delta{$rel}->{delta_from};
+ # XXX: This line is a sign of failure. -- rjbs, 2015-04-15
+ my $this_delta = $delta{$rel} || $delta{ sprintf '%0.6f', $rel };
+ $rel = $this_delta->{delta_from};
unshift(@releases, $rel) if defined($rel);
}
RELEASE:
@@ -11291,9 +12224,8 @@ for my $version (sort { $a <=> $b } keys %delta) {
},
5.01701 => { delta_from => 5.017009 },
5.017011 => { delta_from => 5.01701 },
- 5.017012 => { delta_from => 5.017011 },
- 5.018 => { delta_from => 5.017012 },
+ 5.018 => { delta_from => 5.017011 },
5.018001 => {
delta_from => 5.018,
changed => {
@@ -11509,10 +12441,45 @@ for my $version (sort { $a <=> $b } keys %delta) {
changed => {
},
removed => {
+ 'CGI' => 1,
+ 'CGI::Apache' => 1,
+ 'CGI::Carp' => 1,
+ 'CGI::Cookie' => 1,
+ 'CGI::Fast' => 1,
+ 'CGI::Pretty' => 1,
+ 'CGI::Push' => 1,
+ 'CGI::Switch' => 1,
+ 'CGI::Util' => 1,
+ 'Module::Build' => 1,
+ 'Module::Build::Base' => 1,
+ 'Module::Build::Compat' => 1,
+ 'Module::Build::Config' => 1,
+ 'Module::Build::ConfigData'=> 1,
+ 'Module::Build::Cookbook'=> 1,
+ 'Module::Build::Dumper' => 1,
+ 'Module::Build::ModuleInfo'=> 1,
+ 'Module::Build::Notes' => 1,
+ 'Module::Build::PPMMaker'=> 1,
+ 'Module::Build::Platform::Default'=> 1,
+ 'Module::Build::Platform::MacOS'=> 1,
+ 'Module::Build::Platform::Unix'=> 1,
+ 'Module::Build::Platform::VMS'=> 1,
+ 'Module::Build::Platform::VOS'=> 1,
+ 'Module::Build::Platform::Windows'=> 1,
+ 'Module::Build::Platform::aix'=> 1,
+ 'Module::Build::Platform::cygwin'=> 1,
+ 'Module::Build::Platform::darwin'=> 1,
+ 'Module::Build::Platform::os2'=> 1,
+ 'Module::Build::PodParser'=> 1,
+ 'Module::Build::Version'=> 1,
+ 'Module::Build::YAML' => 1,
+ 'Package::Constants' => 1,
+ 'Simple' => 1,
+ 'inc::latest' => 1,
}
},
5.021001 => {
- delta_from => 5.017007,
+ delta_from => 5.021000,
changed => {
},
removed => {
@@ -11581,6 +12548,90 @@ for my $version (sort { $a <=> $b } keys %delta) {
removed => {
}
},
+ 5.021009 => {
+ delta_from => 5.021008,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.021010 => {
+ delta_from => 5.021009,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.021011 => {
+ delta_from => 5.02101,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.022000 => {
+ delta_from => 5.021011,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.023000 => {
+ delta_from => 5.022000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.023001 => {
+ delta_from => 5.023000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.023002 => {
+ delta_from => 5.023001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.020003 => {
+ delta_from => 5.020002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.023003 => {
+ delta_from => 5.023002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.023004 => {
+ delta_from => 5.023003,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.023005 => {
+ delta_from => 5.023004,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.022001 => {
+ delta_from => 5.022,
+ changed => {
+ },
+ removed => {
+ }
+ },
);
for my $version (sort { $a <=> $b } keys %deprecated) {
@@ -11603,15 +12654,6 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'AutoLoader' => 'cpan',
'AutoSplit' => 'cpan',
'B::Debug' => 'cpan',
- 'CGI' => 'cpan',
- 'CGI::Apache' => 'cpan',
- 'CGI::Carp' => 'cpan',
- 'CGI::Cookie' => 'cpan',
- 'CGI::Fast' => 'cpan',
- 'CGI::Pretty' => 'cpan',
- 'CGI::Push' => 'cpan',
- 'CGI::Switch' => 'cpan',
- 'CGI::Util' => 'cpan',
'CPAN' => 'cpan',
'CPAN::Author' => 'cpan',
'CPAN::Bundle' => 'cpan',
@@ -11640,6 +12682,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'CPAN::Meta::Converter' => 'cpan',
'CPAN::Meta::Feature' => 'cpan',
'CPAN::Meta::History' => 'cpan',
+ 'CPAN::Meta::Merge' => 'cpan',
'CPAN::Meta::Prereqs' => 'cpan',
'CPAN::Meta::Requirements'=> 'cpan',
'CPAN::Meta::Spec' => 'cpan',
@@ -11648,6 +12691,8 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'CPAN::Mirrors' => 'cpan',
'CPAN::Module' => 'cpan',
'CPAN::Nox' => 'cpan',
+ 'CPAN::Plugin' => 'cpan',
+ 'CPAN::Plugin::Specfile'=> 'cpan',
'CPAN::Prompt' => 'cpan',
'CPAN::Queue' => 'cpan',
'CPAN::Shell' => 'cpan',
@@ -11689,12 +12734,15 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Encode::TW' => 'cpan',
'Encode::Unicode' => 'cpan',
'Encode::Unicode::UTF7' => 'cpan',
+ 'ExtUtils::Command' => 'cpan',
'ExtUtils::Command::MM' => 'cpan',
'ExtUtils::Constant' => 'cpan',
'ExtUtils::Constant::Base'=> 'cpan',
'ExtUtils::Constant::ProxySubs'=> 'cpan',
'ExtUtils::Constant::Utils'=> 'cpan',
'ExtUtils::Constant::XS'=> 'cpan',
+ 'ExtUtils::Install' => 'cpan',
+ 'ExtUtils::Installed' => 'cpan',
'ExtUtils::Liblist' => 'cpan',
'ExtUtils::Liblist::Kid'=> 'cpan',
'ExtUtils::MM' => 'cpan',
@@ -11717,8 +12765,14 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'ExtUtils::MY' => 'cpan',
'ExtUtils::MakeMaker' => 'cpan',
'ExtUtils::MakeMaker::Config'=> 'cpan',
+ 'ExtUtils::MakeMaker::Locale'=> 'cpan',
+ 'ExtUtils::MakeMaker::version'=> 'cpan',
+ 'ExtUtils::MakeMaker::version::regex'=> 'cpan',
+ 'ExtUtils::MakeMaker::version::vpp'=> 'cpan',
+ 'ExtUtils::Manifest' => 'cpan',
'ExtUtils::Mkbootstrap' => 'cpan',
'ExtUtils::Mksymlists' => 'cpan',
+ 'ExtUtils::Packlist' => 'cpan',
'ExtUtils::testlib' => 'cpan',
'Fatal' => 'cpan',
'File::Fetch' => 'cpan',
@@ -11804,33 +12858,13 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Memoize::NDBM_File' => 'cpan',
'Memoize::SDBM_File' => 'cpan',
'Memoize::Storable' => 'cpan',
- 'Module::Build' => 'cpan',
- 'Module::Build::Base' => 'cpan',
- 'Module::Build::Compat' => 'cpan',
- 'Module::Build::Config' => 'cpan',
- 'Module::Build::ConfigData'=> 'cpan',
- 'Module::Build::Cookbook'=> 'cpan',
- 'Module::Build::Dumper' => 'cpan',
- 'Module::Build::ModuleInfo'=> 'cpan',
- 'Module::Build::Notes' => 'cpan',
- 'Module::Build::PPMMaker'=> 'cpan',
- 'Module::Build::Platform::Default'=> 'cpan',
- 'Module::Build::Platform::MacOS'=> 'cpan',
- 'Module::Build::Platform::Unix'=> 'cpan',
- 'Module::Build::Platform::VMS'=> 'cpan',
- 'Module::Build::Platform::VOS'=> 'cpan',
- 'Module::Build::Platform::Windows'=> 'cpan',
- 'Module::Build::Platform::aix'=> 'cpan',
- 'Module::Build::Platform::cygwin'=> 'cpan',
- 'Module::Build::Platform::darwin'=> 'cpan',
- 'Module::Build::Platform::os2'=> 'cpan',
- 'Module::Build::PodParser'=> 'cpan',
- 'Module::Build::Version'=> 'cpan',
- 'Module::Build::YAML' => 'cpan',
'Module::Load' => 'cpan',
'Module::Load::Conditional'=> 'cpan',
'Module::Loaded' => 'cpan',
'Module::Metadata' => 'cpan',
+ 'Module::Metadata::corpus::BOMTest::UTF16BE'=> 'cpan',
+ 'Module::Metadata::corpus::BOMTest::UTF16LE'=> 'cpan',
+ 'Module::Metadata::corpus::BOMTest::UTF8'=> 'cpan',
'NEXT' => 'cpan',
'Net::Cmd' => 'cpan',
'Net::Config' => 'cpan',
@@ -11846,7 +12880,6 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Net::POP3' => 'cpan',
'Net::SMTP' => 'cpan',
'Net::Time' => 'cpan',
- 'Package::Constants' => 'cpan',
'Params::Check' => 'cpan',
'Parse::CPAN::Meta' => 'cpan',
'Perl::OSType' => 'cpan',
@@ -11909,6 +12942,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Pod::Usage' => 'cpan',
'Scalar::Util' => 'cpan',
'Socket' => 'cpan',
+ 'Sub::Util' => 'cpan',
'Sys::Syslog' => 'cpan',
'Sys::Syslog::Win32' => 'cpan',
'TAP::Base' => 'cpan',
@@ -11958,12 +12992,18 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Term::Cap' => 'cpan',
'Test' => 'cpan',
'Test::Builder' => 'cpan',
+ 'Test::Builder::IO::Scalar'=> 'cpan',
'Test::Builder::Module' => 'cpan',
'Test::Builder::Tester' => 'cpan',
'Test::Builder::Tester::Color'=> 'cpan',
'Test::Harness' => 'cpan',
'Test::More' => 'cpan',
'Test::Simple' => 'cpan',
+ 'Test::Tester' => 'cpan',
+ 'Test::Tester::Capture' => 'cpan',
+ 'Test::Tester::CaptureRunner'=> 'cpan',
+ 'Test::Tester::Delegate'=> 'cpan',
+ 'Test::use::ok' => 'cpan',
'Text::Balanced' => 'cpan',
'Text::ParseWords' => 'cpan',
'Text::Tabs' => 'cpan',
@@ -11987,6 +13027,9 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Win32API::File' => 'cpan',
'Win32API::File::ExtUtils::Myconst2perl'=> 'cpan',
'autodie' => 'cpan',
+ 'autodie::Scope::Guard' => 'cpan',
+ 'autodie::Scope::GuardStack'=> 'cpan',
+ 'autodie::ScopeUtil' => 'cpan',
'autodie::exception' => 'cpan',
'autodie::exception::system'=> 'cpan',
'autodie::hints' => 'cpan',
@@ -11994,7 +13037,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'encoding' => 'cpan',
'encoding::warnings' => 'cpan',
'experimental' => 'cpan',
- 'inc::latest' => 'cpan',
+ 'ok' => 'cpan',
'parent' => 'cpan',
'perlfaq' => 'cpan',
'version' => 'cpan',
@@ -12012,15 +13055,6 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Archive::Tar::Constant'=> undef,
'Archive::Tar::File' => undef,
'B::Debug' => undef,
- 'CGI' => 'https://github.com/leejo/CGI.pm/issues',
- 'CGI::Apache' => 'https://github.com/leejo/CGI.pm/issues',
- 'CGI::Carp' => 'https://github.com/leejo/CGI.pm/issues',
- 'CGI::Cookie' => 'https://github.com/leejo/CGI.pm/issues',
- 'CGI::Fast' => 'https://github.com/leejo/cgi-fast/issues',
- 'CGI::Pretty' => 'https://github.com/leejo/CGI.pm/issues',
- 'CGI::Push' => 'https://github.com/leejo/CGI.pm/issues',
- 'CGI::Switch' => 'https://github.com/leejo/CGI.pm/issues',
- 'CGI::Util' => 'https://github.com/leejo/CGI.pm/issues',
'CPAN' => undef,
'CPAN::Author' => undef,
'CPAN::Bundle' => undef,
@@ -12049,14 +13083,17 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'CPAN::Meta::Converter' => 'https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues',
'CPAN::Meta::Feature' => 'https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues',
'CPAN::Meta::History' => 'https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues',
+ 'CPAN::Meta::Merge' => 'https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues',
'CPAN::Meta::Prereqs' => 'https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues',
'CPAN::Meta::Requirements'=> 'https://github.com/dagolden/CPAN-Meta-Requirements/issues',
'CPAN::Meta::Spec' => 'https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues',
'CPAN::Meta::Validator' => 'https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues',
- 'CPAN::Meta::YAML' => 'https://github.com/dagolden/CPAN-Meta-YAML/issues',
+ 'CPAN::Meta::YAML' => 'https://github.com/Perl-Toolchain-Gang/YAML-Tiny/issues',
'CPAN::Mirrors' => undef,
'CPAN::Module' => undef,
'CPAN::Nox' => undef,
+ 'CPAN::Plugin' => undef,
+ 'CPAN::Plugin::Specfile'=> undef,
'CPAN::Prompt' => undef,
'CPAN::Queue' => undef,
'CPAN::Shell' => undef,
@@ -12098,12 +13135,15 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Encode::TW' => undef,
'Encode::Unicode' => undef,
'Encode::Unicode::UTF7' => undef,
+ 'ExtUtils::Command' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
'ExtUtils::Command::MM' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
'ExtUtils::Constant' => undef,
'ExtUtils::Constant::Base'=> undef,
'ExtUtils::Constant::ProxySubs'=> undef,
'ExtUtils::Constant::Utils'=> undef,
'ExtUtils::Constant::XS'=> undef,
+ 'ExtUtils::Install' => 'https://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-Install',
+ 'ExtUtils::Installed' => 'https://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-Install',
'ExtUtils::Liblist' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
'ExtUtils::Liblist::Kid'=> 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
'ExtUtils::MM' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
@@ -12126,8 +13166,14 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'ExtUtils::MY' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
'ExtUtils::MakeMaker' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
'ExtUtils::MakeMaker::Config'=> 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
+ 'ExtUtils::MakeMaker::Locale'=> 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
+ 'ExtUtils::MakeMaker::version'=> 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
+ 'ExtUtils::MakeMaker::version::regex'=> 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
+ 'ExtUtils::MakeMaker::version::vpp'=> 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
+ 'ExtUtils::Manifest' => 'http://github.com/Perl-Toolchain-Gang/ExtUtils-Manifest/issues',
'ExtUtils::Mkbootstrap' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
'ExtUtils::Mksymlists' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
+ 'ExtUtils::Packlist' => 'https://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-Install',
'ExtUtils::testlib' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
'Fatal' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
'File::Fetch' => undef,
@@ -12213,33 +13259,13 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Memoize::NDBM_File' => undef,
'Memoize::SDBM_File' => undef,
'Memoize::Storable' => undef,
- 'Module::Build' => undef,
- 'Module::Build::Base' => undef,
- 'Module::Build::Compat' => undef,
- 'Module::Build::Config' => undef,
- 'Module::Build::ConfigData'=> undef,
- 'Module::Build::Cookbook'=> undef,
- 'Module::Build::Dumper' => undef,
- 'Module::Build::ModuleInfo'=> 'http://rt.cpan.org/Public/Dist/Display.html?Name=Module-Build-Deprecated',
- 'Module::Build::Notes' => undef,
- 'Module::Build::PPMMaker'=> undef,
- 'Module::Build::Platform::Default'=> undef,
- 'Module::Build::Platform::MacOS'=> undef,
- 'Module::Build::Platform::Unix'=> undef,
- 'Module::Build::Platform::VMS'=> undef,
- 'Module::Build::Platform::VOS'=> undef,
- 'Module::Build::Platform::Windows'=> undef,
- 'Module::Build::Platform::aix'=> undef,
- 'Module::Build::Platform::cygwin'=> undef,
- 'Module::Build::Platform::darwin'=> undef,
- 'Module::Build::Platform::os2'=> undef,
- 'Module::Build::PodParser'=> undef,
- 'Module::Build::Version'=> 'http://rt.cpan.org/Public/Dist/Display.html?Name=Module-Build-Deprecated',
- 'Module::Build::YAML' => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Module-Build-Deprecated',
'Module::Load' => undef,
'Module::Load::Conditional'=> undef,
'Module::Loaded' => undef,
'Module::Metadata' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Module-Metadata',
+ 'Module::Metadata::corpus::BOMTest::UTF16BE'=> undef,
+ 'Module::Metadata::corpus::BOMTest::UTF16LE'=> undef,
+ 'Module::Metadata::corpus::BOMTest::UTF8'=> undef,
'NEXT' => undef,
'Net::Cmd' => undef,
'Net::Config' => undef,
@@ -12255,10 +13281,9 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Net::POP3' => undef,
'Net::SMTP' => undef,
'Net::Time' => undef,
- 'Package::Constants' => undef,
'Params::Check' => undef,
- 'Parse::CPAN::Meta' => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Parse-CPAN-Meta',
- 'Perl::OSType' => 'https://github.com/dagolden/Perl-OSType/issues',
+ 'Parse::CPAN::Meta' => 'https://github.com/Perl-Toolchain-Gang/Parse-CPAN-Meta/issues',
+ 'Perl::OSType' => 'https://github.com/Perl-Toolchain-Gang/Perl-OSType/issues',
'PerlIO::via::QuotedPrint'=> undef,
'Pod::Checker' => undef,
'Pod::Escapes' => undef,
@@ -12283,34 +13308,34 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Pod::Perldoc::ToXml' => undef,
'Pod::PlainText' => undef,
'Pod::Select' => undef,
- 'Pod::Simple' => undef,
- 'Pod::Simple::BlackBox' => undef,
- 'Pod::Simple::Checker' => undef,
- 'Pod::Simple::Debug' => undef,
- 'Pod::Simple::DumpAsText'=> undef,
- 'Pod::Simple::DumpAsXML'=> undef,
- 'Pod::Simple::HTML' => undef,
- 'Pod::Simple::HTMLBatch'=> undef,
- 'Pod::Simple::HTMLLegacy'=> undef,
- 'Pod::Simple::LinkSection'=> undef,
- 'Pod::Simple::Methody' => undef,
- 'Pod::Simple::Progress' => undef,
- 'Pod::Simple::PullParser'=> undef,
- 'Pod::Simple::PullParserEndToken'=> undef,
- 'Pod::Simple::PullParserStartToken'=> undef,
- 'Pod::Simple::PullParserTextToken'=> undef,
- 'Pod::Simple::PullParserToken'=> undef,
- 'Pod::Simple::RTF' => undef,
- 'Pod::Simple::Search' => undef,
- 'Pod::Simple::SimpleTree'=> undef,
- 'Pod::Simple::Text' => undef,
- 'Pod::Simple::TextContent'=> undef,
- 'Pod::Simple::TiedOutFH'=> undef,
- 'Pod::Simple::Transcode'=> undef,
- 'Pod::Simple::TranscodeDumb'=> undef,
- 'Pod::Simple::TranscodeSmart'=> undef,
- 'Pod::Simple::XHTML' => undef,
- 'Pod::Simple::XMLOutStream'=> undef,
+ 'Pod::Simple' => 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::BlackBox' => 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::Checker' => 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::Debug' => 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::DumpAsText'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::DumpAsXML'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::HTML' => 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::HTMLBatch'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::HTMLLegacy'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::LinkSection'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::Methody' => 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::Progress' => 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::PullParser'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::PullParserEndToken'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::PullParserStartToken'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::PullParserTextToken'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::PullParserToken'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::RTF' => 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::Search' => 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::SimpleTree'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::Text' => 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::TextContent'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::TiedOutFH'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::Transcode'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::TranscodeDumb'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::TranscodeSmart'=> 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::XHTML' => 'https://github.com/perl-pod/pod-simple/issues',
+ 'Pod::Simple::XMLOutStream'=> 'https://github.com/perl-pod/pod-simple/issues',
'Pod::Text' => undef,
'Pod::Text::Color' => undef,
'Pod::Text::Overstrike' => undef,
@@ -12318,6 +13343,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Pod::Usage' => undef,
'Scalar::Util' => undef,
'Socket' => undef,
+ 'Sub::Util' => undef,
'Sys::Syslog' => undef,
'Sys::Syslog::Win32' => undef,
'TAP::Base' => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness',
@@ -12367,12 +13393,18 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Term::Cap' => undef,
'Test' => undef,
'Test::Builder' => 'http://github.com/Test-More/test-more/issues/',
+ 'Test::Builder::IO::Scalar'=> 'http://github.com/Test-More/test-more/issues/',
'Test::Builder::Module' => 'http://github.com/Test-More/test-more/issues/',
'Test::Builder::Tester' => 'http://github.com/Test-More/test-more/issues/',
'Test::Builder::Tester::Color'=> 'http://github.com/Test-More/test-more/issues/',
'Test::Harness' => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness',
'Test::More' => 'http://github.com/Test-More/test-more/issues/',
'Test::Simple' => 'http://github.com/Test-More/test-more/issues/',
+ 'Test::Tester' => 'http://github.com/Test-More/test-more/issues/',
+ 'Test::Tester::Capture' => 'http://github.com/Test-More/test-more/issues/',
+ 'Test::Tester::CaptureRunner'=> 'http://github.com/Test-More/test-more/issues/',
+ 'Test::Tester::Delegate'=> 'http://github.com/Test-More/test-more/issues/',
+ 'Test::use::ok' => 'http://github.com/Test-More/test-more/issues/',
'Text::Balanced' => undef,
'Text::ParseWords' => undef,
'Text::Tabs' => undef,
@@ -12391,11 +13423,14 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Unicode::Collate::CJK::Stroke'=> undef,
'Unicode::Collate::CJK::Zhuyin'=> undef,
'Unicode::Collate::Locale'=> undef,
- 'Unicode::Normalize' => undef,
+ 'Unicode::Normalize' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Unicode-Normalize',
'Win32' => undef,
'Win32API::File' => undef,
'Win32API::File::ExtUtils::Myconst2perl'=> undef,
'autodie' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
+ 'autodie::Scope::Guard' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
+ 'autodie::Scope::GuardStack'=> 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
+ 'autodie::ScopeUtil' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
'autodie::exception' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
'autodie::exception::system'=> 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
'autodie::hints' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
@@ -12403,7 +13438,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'encoding' => undef,
'encoding::warnings' => undef,
'experimental' => 'http://rt.cpan.org/Public/Dist/Display.html?Name=experimental',
- 'inc::latest' => 'https://github.com/dagolden/inc-latest/issues',
+ 'ok' => 'http://github.com/Test-More/test-more/issues/',
'parent' => undef,
'perlfaq' => 'https://github.com/perl-doc-cats/perlfaq/issues',
'version' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=version',
diff --git a/Master/tlpkg/tlperl/lib/Module/CoreList.pod b/Master/tlpkg/tlperl/lib/Module/CoreList.pod
index edc00ec9feb..d8807bf8b44 100644
--- a/Master/tlpkg/tlperl/lib/Module/CoreList.pod
+++ b/Master/tlpkg/tlperl/lib/Module/CoreList.pod
@@ -73,8 +73,11 @@ you may provide a list of perl versions to limit the regex search.
=item C<find_version( PERL_VERSION )>
-Takes a perl version as an argument. Returns that perl version if it exists or C<undef>
-otherwise.
+Takes a perl version as an argument. Upon successful completion, returns a
+reference to a hash. Each element of that hash has a key which is the name of
+a module (I<e.g.,> 'File::Path') shipped with that version of perl and a value
+which is the version number (I<e.g.,> '2.09') of that module which shipped
+with that version of perl . Returns C<undef> otherwise.
=item C<is_core( MODULE, [ MODULE_VERSION, [ PERL_VERSION ] ] )>
@@ -100,7 +103,7 @@ omitted, it defaults to the current version of Perl.
Available in version 2.77 and above.
-Returns the first PERL_VERSION where the MODULE was marked as deprecated. Returns C<undef>
+Returns the first perl version where the MODULE was marked as deprecated. Returns C<undef>
if the MODULE has not been marked as deprecated.
=item C<removed_from( MODULE )>
diff --git a/Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm b/Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm
index eb769f3070a..bbe1066ca5f 100644
--- a/Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm
+++ b/Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm
@@ -3,7 +3,7 @@ package Module::CoreList::TieHashDelta;
use strict;
use vars qw($VERSION);
-$VERSION = '5.20150214';
+$VERSION = '5.20151213';
sub TIEHASH {
my ($class, $changed, $removed, $parent) = @_;
diff --git a/Master/tlpkg/tlperl/lib/Module/CoreList/Utils.pm b/Master/tlpkg/tlperl/lib/Module/CoreList/Utils.pm
index b9fde3e27a2..ef82479ca6e 100755
--- a/Master/tlpkg/tlperl/lib/Module/CoreList/Utils.pm
+++ b/Master/tlpkg/tlperl/lib/Module/CoreList/Utils.pm
@@ -6,7 +6,7 @@ use vars qw[$VERSION %utilities];
use Module::CoreList;
use Module::CoreList::TieHashDelta;
-$VERSION = '5.20150214';
+$VERSION = '5.20151213';
sub utilities {
my $perl = shift;
@@ -15,6 +15,16 @@ sub utilities {
return sort keys %{ $utilities{$perl} };
}
+sub _released_order { # Sort helper, to make '?' sort after everything else
+ (substr($Module::CoreList::released{$a}, 0, 1) eq "?")
+ ? ((substr($Module::CoreList::released{$b}, 0, 1) eq "?")
+ ? 0
+ : 1)
+ : ((substr($Module::CoreList::released{$b}, 0, 1) eq "?")
+ ? -1
+ : $Module::CoreList::released{$a} cmp $Module::CoreList::released{$b} )
+}
+
sub first_release_raw {
my $util = shift;
$util = shift if eval { $util->isa(__PACKAGE__) };
@@ -32,7 +42,7 @@ sub first_release_raw {
sub first_release_by_date {
my @perls = &first_release_raw;
return unless @perls;
- return (sort { $Module::CoreList::released{$a} cmp $Module::CoreList::released{$b} } @perls)[0];
+ return (sort _released_order @perls)[0];
}
sub first_release {
@@ -47,7 +57,7 @@ sub removed_from {
}
sub removed_from_by_date {
- my @perls = sort { $Module::CoreList::released{$a} cmp $Module::CoreList::released{$b} } &removed_raw;
+ my @perls = sort _released_order &removed_raw;
return shift @perls;
}
@@ -1013,6 +1023,91 @@ my %delta = (
removed => {
}
},
+ 5.021009 => {
+ delta_from => 5.021008,
+ changed => {
+ 'encguess' => '1',
+ },
+ removed => {
+ }
+ },
+ 5.021010 => {
+ delta_from => 5.021009,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.021011 => {
+ delta_from => 5.02101,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.022000 => {
+ delta_from => 5.021011,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.023000 => {
+ delta_from => 5.022000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.023001 => {
+ delta_from => 5.023,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.023002 => {
+ delta_from => 5.023001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.020003 => {
+ delta_from => 5.020002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.023003 => {
+ delta_from => 5.023002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.023004 => {
+ delta_from => 5.023003,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.023005 => {
+ delta_from => 5.023004,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.022001 => {
+ delta_from => 5.022,
+ changed => {
+ },
+ removed => {
+ }
+ },
);
for my $version (sort { $a <=> $b } keys %delta) {
diff --git a/Master/tlpkg/tlperl/lib/Module/Load/Conditional.pm b/Master/tlpkg/tlperl/lib/Module/Load/Conditional.pm
index 422f56b4d5c..ace55ad845d 100644
--- a/Master/tlpkg/tlperl/lib/Module/Load/Conditional.pm
+++ b/Master/tlpkg/tlperl/lib/Module/Load/Conditional.pm
@@ -22,7 +22,7 @@ BEGIN {
$FIND_VERSION $ERROR $CHECK_INC_HASH];
use Exporter;
@ISA = qw[Exporter];
- $VERSION = '0.62';
+ $VERSION = '0.64';
$VERBOSE = 0;
$DEPRECATED = 0;
$FIND_VERSION = 1;
@@ -313,7 +313,8 @@ sub check_install {
$href->{uptodate} = 0 if
exists $Module::CoreList::version{ 0+$] }{ $args->{module} } and
Module::CoreList::is_deprecated( $args->{module} ) and
- $Config::Config{privlibexp} eq $href->{dir};
+ $Config::Config{privlibexp} eq $href->{dir}
+ and $Config::Config{privlibexp} ne $Config::Config{sitelibexp};
}
return $href;
diff --git a/Master/tlpkg/tlperl/lib/Module/Metadata.pm b/Master/tlpkg/tlperl/lib/Module/Metadata.pm
index e352d316208..7ea1210a241 100644
--- a/Master/tlpkg/tlperl/lib/Module/Metadata.pm
+++ b/Master/tlpkg/tlperl/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;
+package Module::Metadata; # git description: v1.000025-7-g47ca1b2
# Adapted from Perl-licensed code originally distributed with
# Module-Build by Ken Williams
@@ -9,15 +9,20 @@ package Module::Metadata;
# perl modules (assuming this may be expanded in the distant
# parrot future to look at other types of modules).
+sub __clean_eval { eval $_[0] }
use strict;
use warnings;
-our $VERSION = '1.000019';
-$VERSION = eval $VERSION;
+our $VERSION = '1.000026';
use Carp qw/croak/;
use File::Spec;
-use IO::File;
+BEGIN {
+ # Try really hard to not depend ony any DynaLoaded module, such as IO::File or Fcntl
+ eval {
+ require Fcntl; Fcntl->import('SEEK_SET'); 1;
+ } or *SEEK_SET = sub { 0 }
+}
use version 0.87;
BEGIN {
if ($INC{'Log/Contextual.pm'}) {
@@ -47,14 +52,14 @@ my $PKG_ADDL_WORD_REGEXP = qr{ # the 2nd+ word in a package name
}x;
my $PKG_NAME_REGEXP = qr{ # match a package name
- (?: :: )? # a pkg name can start with aristotle
+ (?: :: )? # a pkg name can start with arisdottle
$PKG_FIRST_WORD_REGEXP # a package word
(?:
- (?: :: )+ ### aristotle (allow one or many times)
+ (?: :: )+ ### arisdottle (allow one or many times)
$PKG_ADDL_WORD_REGEXP ### a package word
)* # ^ zero, one or many times
(?:
- :: # allow trailing aristotle
+ :: # allow trailing arisdottle
)?
}x;
@@ -73,7 +78,7 @@ my $VARNAME_REGEXP = qr{ # match fully-qualified VERSION name
([\$*]) # sigil - $ or *
(
( # optional leading package name
- (?:::|\')? # possibly starting like just :: (Ì la $::VERSION)
+ (?:::|\')? # possibly starting like just :: (a la $::VERSION)
(?:\w+(?:::|\'))* # Foo::Bar:: ...
)?
VERSION
@@ -87,7 +92,7 @@ my $VERS_REGEXP = qr{ # match a VERSION definition
$VARNAME_REGEXP # without parens
)
\s*
- =[^=~] # = but not ==, nor =~
+ =[^=~>] # = but not ==, nor =~, nor =>
}x;
sub new_from_file {
@@ -162,19 +167,19 @@ sub new_from_module {
my $err = '';
foreach my $p ( @$packages ) {
if ( defined( $p->{version} ) ) {
- if ( defined( $version ) ) {
- if ( $compare_versions->( $version, '!=', $p->{version} ) ) {
- $err .= " $p->{file} ($p->{version})\n";
- } else {
- # same version declared multiple times, ignore
- }
- } else {
- $file = $p->{file};
- $version = $p->{version};
- }
+ if ( defined( $version ) ) {
+ if ( $compare_versions->( $version, '!=', $p->{version} ) ) {
+ $err .= " $p->{file} ($p->{version})\n";
+ } else {
+ # same version declared multiple times, ignore
+ }
+ } else {
+ $file = $p->{file};
+ $version = $p->{version};
+ }
}
- $file ||= $p->{file} if defined( $p->{file} );
- }
+ $file ||= $p->{file} if defined( $p->{file} );
+ }
if ( $err ) {
$err = " $file ($version)\n" . $err;
@@ -287,45 +292,45 @@ sub new_from_module {
if ( exists( $prime{$package} ) ) { # primary package selected
if ( $result->{err} ) {
- # Use the selected primary package, but there are conflicting
- # errors among multiple alternative packages that need to be
- # reported
+ # Use the selected primary package, but there are conflicting
+ # errors among multiple alternative packages that need to be
+ # reported
log_info {
- "Found conflicting versions for package '$package'\n" .
- " $prime{$package}{file} ($prime{$package}{version})\n" .
- $result->{err}
+ "Found conflicting versions for package '$package'\n" .
+ " $prime{$package}{file} ($prime{$package}{version})\n" .
+ $result->{err}
};
} elsif ( defined( $result->{version} ) ) {
- # There is a primary package selected, and exactly one
- # alternative package
-
- if ( exists( $prime{$package}{version} ) &&
- defined( $prime{$package}{version} ) ) {
- # Unless the version of the primary package agrees with the
- # version of the alternative package, report a conflict
- if ( $compare_versions->(
+ # There is a primary package selected, and exactly one
+ # alternative package
+
+ if ( exists( $prime{$package}{version} ) &&
+ defined( $prime{$package}{version} ) ) {
+ # Unless the version of the primary package agrees with the
+ # version of the alternative package, report a conflict
+ if ( $compare_versions->(
$prime{$package}{version}, '!=', $result->{version}
)
) {
log_info {
"Found conflicting versions for package '$package'\n" .
- " $prime{$package}{file} ($prime{$package}{version})\n" .
- " $result->{file} ($result->{version})\n"
+ " $prime{$package}{file} ($prime{$package}{version})\n" .
+ " $result->{file} ($result->{version})\n"
};
- }
+ }
- } else {
- # The prime package selected has no version so, we choose to
- # use any alternative package that does have a version
- $prime{$package}{file} = $result->{file};
- $prime{$package}{version} = $result->{version};
- }
+ } else {
+ # The prime package selected has no version so, we choose to
+ # use any alternative package that does have a version
+ $prime{$package}{file} = $result->{file};
+ $prime{$package}{version} = $result->{version};
+ }
} else {
- # no alt package found with a version, but we have a prime
- # package so we use it whether it has a version or not
+ # no alt package found with a version, but we have a prime
+ # package so we use it whether it has a version or not
}
} else { # No primary package was selected, use the best alternative
@@ -333,7 +338,7 @@ sub new_from_module {
if ( $result->{err} ) {
log_info {
"Found conflicting versions for package '$package'\n" .
- $result->{err}
+ $result->{err}
};
}
@@ -341,7 +346,7 @@ sub new_from_module {
# something rather than nothing
$prime{$package}{file} = $result->{file};
$prime{$package}{version} = $result->{version}
- if defined( $result->{version} );
+ if defined( $result->{version} );
}
}
@@ -383,12 +388,14 @@ sub _init {
my $self = bless(\%data, $class);
- if ( $handle ) {
- $self->_parse_fh($handle);
- }
- else {
- $self->_parse_file();
+ if ( not $handle ) {
+ my $filename = $self->{filename};
+ open $handle, '<', $filename
+ or croak( "Can't open '$filename': $!" );
+
+ $self->_handle_bom($handle, $filename);
}
+ $self->_parse_fh($handle);
unless($self->{module} and length($self->{module})) {
my ($v, $d, $f) = File::Spec->splitpath($self->{filename});
@@ -423,9 +430,10 @@ sub _do_find_module {
foreach my $dir ( @$dirs ) {
my $testfile = File::Spec->catfile($dir, $file);
return [ File::Spec->rel2abs( $testfile ), $dir ]
- if -e $testfile and !-d _; # For stuff like ExtUtils::xsubpp
- return [ File::Spec->rel2abs( "$testfile.pm" ), $dir ]
- if -e "$testfile.pm";
+ if -e $testfile and !-d _; # For stuff like ExtUtils::xsubpp
+ $testfile .= '.pm';
+ return [ File::Spec->rel2abs( $testfile ), $dir ]
+ if -e $testfile;
}
return;
}
@@ -449,28 +457,16 @@ sub _parse_version_expression {
my $self = shift;
my $line = shift;
- my( $sig, $var, $pkg );
+ my( $sigil, $variable_name, $package);
if ( $line =~ /$VERS_REGEXP/o ) {
- ( $sig, $var, $pkg ) = $2 ? ( $1, $2, $3 ) : ( $4, $5, $6 );
- if ( $pkg ) {
- $pkg = ($pkg eq '::') ? 'main' : $pkg;
- $pkg =~ s/::$//;
+ ( $sigil, $variable_name, $package) = $2 ? ( $1, $2, $3 ) : ( $4, $5, $6 );
+ if ( $package ) {
+ $package = ($package eq '::') ? 'main' : $package;
+ $package =~ s/::$//;
}
}
- return ( $sig, $var, $pkg );
-}
-
-sub _parse_file {
- my $self = shift;
-
- my $filename = $self->{filename};
- my $fh = IO::File->new( $filename )
- or croak( "Can't open '$filename': $!" );
-
- $self->_handle_bom($fh, $filename);
-
- $self->_parse_fh($fh);
+ return ( $sigil, $variable_name, $package );
}
# Look for a UTF-8/UTF-16BE/UTF-16LE BOM at the beginning of the stream.
@@ -478,11 +474,11 @@ sub _parse_file {
sub _handle_bom {
my ($self, $fh, $filename) = @_;
- my $pos = $fh->getpos;
+ my $pos = tell $fh;
return unless defined $pos;
my $buf = ' ' x 2;
- my $count = $fh->read( $buf, length $buf );
+ my $count = read $fh, $buf, length $buf;
return unless defined $count and $count >= 2;
my $encoding;
@@ -492,7 +488,7 @@ sub _handle_bom {
$encoding = 'UTF-16LE';
} elsif ( $buf eq "\x{EF}\x{BB}" ) {
$buf = ' ';
- $count = $fh->read( $buf, length $buf );
+ $count = read $fh, $buf, length $buf;
if ( defined $count and $count >= 1 and $buf eq "\x{BF}" ) {
$encoding = 'UTF-8';
}
@@ -500,11 +496,10 @@ sub _handle_bom {
if ( defined $encoding ) {
if ( "$]" >= 5.008 ) {
- # $fh->binmode requires perl 5.10
binmode( $fh, ":encoding($encoding)" );
}
} else {
- $fh->setpos($pos)
+ seek $fh, $pos, SEEK_SET
or croak( sprintf "Can't reset position to the top of '$filename'" );
}
@@ -515,8 +510,8 @@ sub _parse_fh {
my ($self, $fh) = @_;
my( $in_pod, $seen_end, $need_vers ) = ( 0, 0, 0 );
- my( @pkgs, %vers, %pod, @pod );
- my $pkg = 'main';
+ my( @packages, %vers, %pod, @pod );
+ my $package = 'main';
my $pod_sect = '';
my $pod_data = '';
my $in_end = 0;
@@ -540,15 +535,15 @@ sub _parse_fh {
if ( $in_pod ) {
if ( $line =~ /^=head[1-4]\s+(.+)\s*$/ ) {
- push( @pod, $1 );
- if ( $self->{collect_pod} && length( $pod_data ) ) {
+ push( @pod, $1 );
+ if ( $self->{collect_pod} && length( $pod_data ) ) {
$pod{$pod_sect} = $pod_data;
$pod_data = '';
}
- $pod_sect = $1;
+ $pod_sect = $1;
} elsif ( $self->{collect_pod} ) {
- $pod_data .= "$line\n";
+ $pod_data .= "$line\n";
}
@@ -576,56 +571,57 @@ sub _parse_fh {
last if $line eq '__DATA__';
# parse $line to see if it's a $VERSION declaration
- my( $vers_sig, $vers_fullname, $vers_pkg ) =
- ($line =~ /VERSION/)
+ my( $version_sigil, $version_fullname, $version_package ) =
+ index($line, 'VERSION') >= 1
? $self->_parse_version_expression( $line )
: ();
if ( $line =~ /$PKG_REGEXP/o ) {
- $pkg = $1;
- push( @pkgs, $pkg ) unless grep( $pkg eq $_, @pkgs );
- $vers{$pkg} = $2 unless exists( $vers{$pkg} );
- $need_vers = defined $2 ? 0 : 1;
+ $package = $1;
+ my $version = $2;
+ push( @packages, $package ) unless grep( $package eq $_, @packages );
+ $need_vers = defined $version ? 0 : 1;
+
+ if ( not exists $vers{$package} and defined $version ){
+ # Upgrade to a version object.
+ my $dwim_version = eval { _dwim_version($version) };
+ croak "Version '$version' from $self->{filename} does not appear to be valid:\n$line\n\nThe fatal error was: $@\n"
+ unless defined $dwim_version; # "0" is OK!
+ $vers{$package} = $dwim_version;
+ }
# VERSION defined with full package spec, i.e. $Module::VERSION
- } elsif ( $vers_fullname && $vers_pkg ) {
- push( @pkgs, $vers_pkg ) unless grep( $vers_pkg eq $_, @pkgs );
- $need_vers = 0 if $vers_pkg eq $pkg;
+ } elsif ( $version_fullname && $version_package ) {
+ push( @packages, $version_package ) unless grep( $version_package eq $_, @packages );
+ $need_vers = 0 if $version_package eq $package;
- unless ( defined $vers{$vers_pkg} && length $vers{$vers_pkg} ) {
- $vers{$vers_pkg} =
- $self->_evaluate_version_line( $vers_sig, $vers_fullname, $line );
- }
+ unless ( defined $vers{$version_package} && length $vers{$version_package} ) {
+ $vers{$version_package} = $self->_evaluate_version_line( $version_sigil, $version_fullname, $line );
+ }
# first non-comment line in undeclared package main is VERSION
- } elsif ( !exists($vers{main}) && $pkg eq 'main' && $vers_fullname ) {
- $need_vers = 0;
- my $v =
- $self->_evaluate_version_line( $vers_sig, $vers_fullname, $line );
- $vers{$pkg} = $v;
- push( @pkgs, 'main' );
+ } elsif ( $package eq 'main' && $version_fullname && !exists($vers{main}) ) {
+ $need_vers = 0;
+ my $v = $self->_evaluate_version_line( $version_sigil, $version_fullname, $line );
+ $vers{$package} = $v;
+ push( @packages, 'main' );
# first non-comment line in undeclared package defines package main
- } elsif ( !exists($vers{main}) && $pkg eq 'main' && $line =~ /\w+/ ) {
- $need_vers = 1;
- $vers{main} = '';
- push( @pkgs, 'main' );
+ } elsif ( $package eq 'main' && !exists($vers{main}) && $line =~ /\w/ ) {
+ $need_vers = 1;
+ $vers{main} = '';
+ push( @packages, 'main' );
# only keep if this is the first $VERSION seen
- } elsif ( $vers_fullname && $need_vers ) {
- $need_vers = 0;
- my $v =
- $self->_evaluate_version_line( $vers_sig, $vers_fullname, $line );
-
-
- unless ( defined $vers{$pkg} && length $vers{$pkg} ) {
- $vers{$pkg} = $v;
- }
+ } elsif ( $version_fullname && $need_vers ) {
+ $need_vers = 0;
+ my $v = $self->_evaluate_version_line( $version_sigil, $version_fullname, $line );
+ unless ( defined $vers{$package} && length $vers{$package} ) {
+ $vers{$package} = $v;
+ }
}
-
}
-
}
if ( $self->{collect_pod} && length($pod_data) ) {
@@ -633,7 +629,7 @@ sub _parse_fh {
}
$self->{versions} = \%vers;
- $self->{packages} = \@pkgs;
+ $self->{packages} = \@packages;
$self->{pod} = \%pod;
$self->{pod_headings} = \@pod;
}
@@ -642,50 +638,47 @@ sub _parse_fh {
my $pn = 0;
sub _evaluate_version_line {
my $self = shift;
- my( $sigil, $var, $line ) = @_;
-
- # Some of this code came from the ExtUtils:: hierarchy.
+ my( $sigil, $variable_name, $line ) = @_;
- # We compile into $vsub because 'use version' would cause
+ # We compile into a local sub because 'use version' would cause
# compiletime/runtime issues with local()
- my $vsub;
$pn++; # everybody gets their own package
- my $eval = qq{BEGIN { my \$dummy = q# Hide from _packages_inside()
- #; package Module::Metadata::_version::p$pn;
+ my $eval = qq{ my \$dummy = q# Hide from _packages_inside()
+ #; package Module::Metadata::_version::p${pn};
use version;
- no strict;
- no warnings;
-
- \$vsub = sub {
- local $sigil$var;
- \$$var=undef;
- $line;
- \$$var
- };
- }};
+ sub {
+ local $sigil$variable_name;
+ $line;
+ \$$variable_name
+ };
+ };
$eval = $1 if $eval =~ m{^(.+)}s;
local $^W;
# Try to get the $VERSION
- eval $eval;
- # some modules say $VERSION = $Foo::Bar::VERSION, but Foo::Bar isn't
+ my $vsub = __clean_eval($eval);
+ # some modules say $VERSION <equal sign> $Foo::Bar::VERSION, but Foo::Bar isn't
# installed, so we need to hunt in ./lib for it
if ( $@ =~ /Can't locate/ && -d 'lib' ) {
local @INC = ('lib',@INC);
- eval $eval;
+ $vsub = __clean_eval($eval);
}
warn "Error evaling version line '$eval' in $self->{filename}: $@\n"
if $@;
+
(ref($vsub) eq 'CODE') or
croak "failed to build version sub for $self->{filename}";
+
my $result = eval { $vsub->() };
+ # FIXME: $eval is not the right thing to print here
croak "Could not get version from $self->{filename} by executing:\n$eval\n\nThe fatal error was: $@\n"
if $@;
# Upgrade it into a version object
my $version = eval { _dwim_version($result) };
+ # FIXME: $eval is not the right thing to print here
croak "Version '$result' from $self->{filename} does not appear to be valid:\n$eval\n\nThe fatal error was: $@\n"
unless defined $version; # "0" is OK!
@@ -765,10 +758,10 @@ sub version {
my $mod = shift || $self->{module};
my $vers;
if ( defined( $mod ) && length( $mod ) &&
- exists( $self->{versions}{$mod} ) ) {
- return $self->{versions}{$mod};
+ exists( $self->{versions}{$mod} ) ) {
+ return $self->{versions}{$mod};
} else {
- return undef;
+ return undef;
}
}
@@ -776,13 +769,25 @@ sub pod {
my $self = shift;
my $sect = shift;
if ( defined( $sect ) && length( $sect ) &&
- exists( $self->{pod}{$sect} ) ) {
- return $self->{pod}{$sect};
+ exists( $self->{pod}{$sect} ) ) {
+ return $self->{pod}{$sect};
} else {
- return undef;
+ return undef;
}
}
+sub is_indexable {
+ my ($self, $package) = @_;
+
+ my @indexable_packages = grep { $_ ne 'main' } $self->packages_inside;
+
+ # check for specific package, if provided
+ return !! grep { $_ eq $package } @indexable_packages if $package;
+
+ # otherwise, check for any indexable packages at all
+ return !! @indexable_packages;
+}
+
1;
=head1 NAME
@@ -956,7 +961,7 @@ Log::Contextual has already been loaded, otherwise simply calls warn.
=item C<< name() >>
Returns the name of the package represented by this module. If there
-are more than one packages, it makes a best guess based on the
+is more than one package, it makes a best guess based on the
filename. If it's a script (i.e. not a *.pm) the package name is
'main'.
@@ -993,6 +998,13 @@ Returns true if there is any POD in the file.
Returns the POD data in the given section.
+=item C<< is_indexable($package) >> or C<< is_indexable() >>
+
+Returns a boolean indicating whether the package (if provided) or any package
+(otherwise) is eligible for indexing by PAUSE, the Perl Authors Upload Server.
+Note This only checks for valid C<package> declarations, and does not take any
+ownership information into account.
+
=back
=head1 AUTHOR
diff --git a/Master/tlpkg/tlperl/lib/Mozilla/CA.pm b/Master/tlpkg/tlperl/lib/Mozilla/CA.pm
deleted file mode 100644
index 050a494718b..00000000000
--- a/Master/tlpkg/tlperl/lib/Mozilla/CA.pm
+++ /dev/null
@@ -1,99 +0,0 @@
-package Mozilla::CA;
-
-use strict;
-our $VERSION = '20141217';
-
-use Cwd ();
-use File::Spec ();
-use File::Basename qw(dirname);
-
-sub SSL_ca_file {
- my $file = File::Spec->catfile(dirname(__FILE__), "CA", "cacert.pem");
- if (!File::Spec->file_name_is_absolute($file)) {
- $file = File::Spec->catfile(Cwd::cwd(), $file);
- }
- return $file;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Mozilla::CA - Mozilla's CA cert bundle in PEM format
-
-=head1 SYNOPSIS
-
- use IO::Socket::SSL;
- use Mozilla::CA;
-
- my $host = "www.paypal.com";
- my $client = IO::Socket::SSL->new(
- PeerHost => "$host:443",
- SSL_verify_mode => 0x02,
- SSL_ca_file => Mozilla::CA::SSL_ca_file(),
- )
- || die "Can't connect: $@";
-
- $client->verify_hostname($host, "http")
- || die "hostname verification failure";
-
-=head1 DESCRIPTION
-
-Mozilla::CA provides a copy of Mozilla's bundle of Certificate Authority
-certificates in a form that can be consumed by modules and libraries
-based on OpenSSL.
-
-The module provide a single function:
-
-=over
-
-=item SSL_ca_file()
-
-Returns the absolute path to the Mozilla's CA cert bundle PEM file.
-
-=back
-
-=head1 SEE ALSO
-
-L<http://curl.haxx.se/docs/caextract.html>
-
-=head1 LICENSE
-
-For the bundled Mozilla CA PEM file the following applies:
-
-=over
-
-The contents of this file are subject to the Mozilla Public License Version
-1.1 (the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-http://www.mozilla.org/MPL/
-
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is the Netscape security libraries.
-
-The Initial Developer of the Original Code is
-Netscape Communications Corporation.
-Portions created by the Initial Developer are Copyright (C) 1994-2000
-the Initial Developer. All Rights Reserved.
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
-
-=back
-
-The Mozilla::CA distribution itself is available under the same license.
diff --git a/Master/tlpkg/tlperl/lib/Mozilla/CA/cacert.pem b/Master/tlpkg/tlperl/lib/Mozilla/CA/cacert.pem
deleted file mode 100644
index f860725b510..00000000000
--- a/Master/tlpkg/tlperl/lib/Mozilla/CA/cacert.pem
+++ /dev/null
@@ -1,3894 +0,0 @@
-##
-## Bundle of CA Root Certificates
-##
-## Certificate data from Mozilla as of: Wed Dec 17 18:41:45 2014
-##
-## This is a bundle of X.509 certificates of public Certificate Authorities
-## (CA). These were automatically extracted from Mozilla's root certificates
-## file (certdata.txt). This file can be found in the mozilla source tree:
-## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
-##
-## It contains the certificates in PEM format and therefore
-## can be directly used with curl / libcurl / php_curl, or with
-## an Apache+mod_ssl webserver for SSL client authentication.
-## Just configure this file as the SSLCACertificateFile.
-##
-## Conversion done with mk-ca-bundle.pl version 1.25.
-## SHA1: c4540021427a6fa29e5f50db9f12d48c97d33889
-##
-
-
-GTE CyberTrust Global Root
-==========================
------BEGIN CERTIFICATE-----
-MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg
-Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG
-A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz
-MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL
-Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0
-IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u
-sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql
-HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID
-AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW
-M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF
-NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
------END CERTIFICATE-----
-
-Thawte Server CA
-================
------BEGIN CERTIFICATE-----
-MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
-dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE
-AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j
-b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV
-BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u
-c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG
-A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0
-ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl
-/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7
-1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR
-MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J
-GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ
-GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc=
------END CERTIFICATE-----
-
-Thawte Premium Server CA
-========================
------BEGIN CERTIFICATE-----
-MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
-dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE
-AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl
-ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT
-AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
-VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
-aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ
-cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
-aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh
-Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/
-qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm
-SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf
-8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t
-UCemDaYj+bvLpgcUQg==
------END CERTIFICATE-----
-
-Equifax Secure CA
-=================
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
-ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
-MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
-B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
-nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
-fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
-8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
-A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
-CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
-A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
-spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
-Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
-zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
-BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
-70+sB3c4
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO
-FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71
-lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB
-MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT
-1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD
-Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9
------END CERTIFICATE-----
-
-GlobalSign Root CA
-==================
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
-GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
-b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
-BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
-VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
-DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
-THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
-Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
-c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
-gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
-AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
-Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
-j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
-hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
-X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
-
-GlobalSign Root CA - R2
-=======================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
-ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
-s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
-S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
-TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
-ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
-FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
-YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
-BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
-9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
-01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
-9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
-EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
-cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
-EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
-055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
-j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
-xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
-t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
-
-Verisign Class 4 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
-tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
-8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
-Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
-Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
-mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
-RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
-UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-
-Entrust.net Premium 2048 Secure Server CA
-=========================================
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
-ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
-bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
-BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
-NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
-d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
-MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
-ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
-Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
-hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
-nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
-VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
-KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
-T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
-zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
-J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
-nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
------END CERTIFICATE-----
-
-Baltimore CyberTrust Root
-=========================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
-ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
-ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
-SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
-dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
-uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
-UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
-G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
-XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
-l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
-VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
-BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
-cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
-hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
-Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
-RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
-
-Equifax Secure Global eBusiness CA
-==================================
------BEGIN CERTIFICATE-----
-MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp
-bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx
-HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds
-b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV
-PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN
-qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn
-hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
-BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs
-MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN
-I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY
-NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
------END CERTIFICATE-----
-
-Equifax Secure eBusiness CA 1
-=============================
------BEGIN CERTIFICATE-----
-MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB
-LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE
-ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz
-IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ
-1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a
-IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk
-MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW
-Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF
-AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5
-lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+
-KpYrtWKmpj29f5JZzVoqgrI3eQ==
------END CERTIFICATE-----
-
-AddTrust Low-Value Services Root
-================================
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
-cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
-CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
-ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
-54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
-oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
-Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
-GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
-HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
-AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
-RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
-HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
-ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
-iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
-eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
-mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
-ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
-
-AddTrust External Root
-======================
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
-VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
-NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
-cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
-Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
-+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
-Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
-aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
-2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
-7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
-VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
-VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
-j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
-e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
-G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
-
-AddTrust Public Services Root
-=============================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
-cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
-BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
-dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
-nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
-d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
-Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
-HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
-A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
-A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
-JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
-+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
-GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
-Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
-EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
-
-AddTrust Qualified Certificates Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
-cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
-CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
-IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
-64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
-KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
-L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
-wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
-MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
-BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
-azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
-ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
-GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
-dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
-RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
-iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
------END CERTIFICATE-----
-
-Entrust Root Certification Authority
-====================================
------BEGIN CERTIFICATE-----
-MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
-BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
-b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
-A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
-MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
-MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
-Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
-dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
-A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
-Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
-j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
-rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
-MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
-hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
-A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
-Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
-v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
-W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
-tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
------END CERTIFICATE-----
-
-RSA Security 2048 v3
-====================
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
-ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
-MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
-BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
-Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
-WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
-KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
-+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
-MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
-FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
-v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
-0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
-VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
-nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
-pKnXwiJPZ9d37CAFYd4=
------END CERTIFICATE-----
-
-GeoTrust Global CA
-==================
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
-Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
-MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
-BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
-8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
-T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
-vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
-AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
-DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
-zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
-d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
-mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
-XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
-Mw==
------END CERTIFICATE-----
-
-GeoTrust Global CA 2
-====================
------BEGIN CERTIFICATE-----
-MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
-MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
-NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
-LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
-Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
-HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
-K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
-srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
-ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
-OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
-x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
-H4z1Ir+rzoPz4iIprn2DQKi6bA==
------END CERTIFICATE-----
-
-GeoTrust Universal CA
-=====================
------BEGIN CERTIFICATE-----
-MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
-MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
-Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
-JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
-RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
-7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
-8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
-qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
-Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
-Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
-KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
-ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
-XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
-hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
-aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
-qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
-oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
-xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
-KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
-DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
-xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
-p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
-P/rmMuGNG2+k5o7Y+SlIis5z/iw=
------END CERTIFICATE-----
-
-GeoTrust Universal CA 2
-=======================
------BEGIN CERTIFICATE-----
-MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
-MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
-SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
-DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
-j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
-JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
-QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
-WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
-20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
-ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
-SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
-8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
-+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
-BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
-dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
-4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
-mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
-A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
-Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
-pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
-FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
-gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
-X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
------END CERTIFICATE-----
-
-America Online Root Certification Authority 1
-=============================================
------BEGIN CERTIFICATE-----
-MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG
-A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
-T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG
-v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z
-DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh
-sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP
-8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T
-AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z
-o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf
-GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF
-VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft
-3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g
-Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
-sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
------END CERTIFICATE-----
-
-America Online Root Certification Authority 2
-=============================================
------BEGIN CERTIFICATE-----
-MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG
-A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
-T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en
-fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8
-f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO
-qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN
-RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0
-gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn
-6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid
-FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6
-Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj
-B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op
-aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE
-AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY
-T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p
-+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg
-JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy
-zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO
-ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh
-1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf
-GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff
-Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP
-cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk=
------END CERTIFICATE-----
-
-Visa eCommerce Root
-===================
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
-EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
-QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
-WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
-VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
-bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
-F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
-RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
-TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
-/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
-GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
-MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
-CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
-YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
-zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
-YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
-398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
-
-Certum Root CA
-==============
------BEGIN CERTIFICATE-----
-MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
-ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
-Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
-by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
-wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
-kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
-89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
-Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
-NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
-hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
-GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
-GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
-0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
-qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
------END CERTIFICATE-----
-
-Comodo AAA Services root
-========================
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
-MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
-c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
-BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
-C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
-i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
-Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
-Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
-Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
-BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
-cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
-LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
-7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
-8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
-12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
-
-Comodo Secure Services root
-===========================
------BEGIN CERTIFICATE-----
-MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
-MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
-Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
-BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
-9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
-rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
-oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
-p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
-FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
-gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
-YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
-aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
-4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
-Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
-DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
-pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
-RR3B7Hzs/Sk=
------END CERTIFICATE-----
-
-Comodo Trusted Services root
-============================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
-MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
-bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
-IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
-3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
-/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
-juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
-ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
-DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
-ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
-cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
-uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
-pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
-BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
-R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
-9y5Xt5hwXsjEeLBi
------END CERTIFICATE-----
-
-QuoVadis Root CA
-================
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
-ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
-MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
-cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
-EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
-J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
-F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
-YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
-AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
-PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
-ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
-MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
-YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
-ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
-Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
-BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
-FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
-tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
-fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
-LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
-gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
-5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
-5nrQNiOKSnQ2+Q==
------END CERTIFICATE-----
-
-QuoVadis Root CA 2
-==================
------BEGIN CERTIFICATE-----
-MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx
-ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6
-XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk
-lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB
-lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy
-lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt
-66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn
-wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh
-D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy
-BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie
-J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud
-DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU
-a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
-ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv
-Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3
-UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm
-VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK
-+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW
-IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1
-WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X
-f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II
-4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8
-VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
------END CERTIFICATE-----
-
-QuoVadis Root CA 3
-==================
------BEGIN CERTIFICATE-----
-MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
-OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
-DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
-KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
-DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
-BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
-p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
-nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
-MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
-Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
-uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
-BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
-YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
-aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
-BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
-VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
-ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
-AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
-qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
-hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
-POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
-Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
-8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
-bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
-g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
-vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
-qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
------END CERTIFICATE-----
-
-Security Communication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
-8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
-DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
-5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
-DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
-JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
-0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
-mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
-s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
-6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
-FL39vmwLAw==
------END CERTIFICATE-----
-
-Sonera Class 2 Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
-U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
-NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
-IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
-/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
-dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
-f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
-tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
-nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
-XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
-0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
-cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
-Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
-EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
-llpwrN9M
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA
-=============================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
-ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
-HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
-bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
-vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
-jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
-C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
-vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
-22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
-HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
-dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
-BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
-EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
-MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
-nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
-iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
-
-UTN DATACorp SGC Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
-BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
-MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
-HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
-dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
-raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
-wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
-9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
-33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
-DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
-BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
-LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
-DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
-Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
-I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
-EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
-DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
-
-UTN USERFirst Hardware Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
-BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
-OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
-eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
-ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
-wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
-tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
-i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
-Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
-gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
-lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
-UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
-BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
-//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
-XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
-lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
-iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
-nfhmqA==
------END CERTIFICATE-----
-
-Camerfirma Chambers of Commerce Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
-NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
-cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
-MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
-AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
-xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
-NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
-DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
-d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
-EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
-cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
-AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
-bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
-VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
-aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
-fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
-L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
-UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
-ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
-erfutGWaIZDgqtCYvDi1czyL+Nw=
------END CERTIFICATE-----
-
-Camerfirma Global Chambersign Root
-==================================
------BEGIN CERTIFICATE-----
-MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
-NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
-YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
-MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
-ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
-1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
-by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
-6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
-8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
-BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
-aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
-Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
-aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
-ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
-bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
-PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
-gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
-PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
-IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
-t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
------END CERTIFICATE-----
-
-NetLock Notary (Class A) Root
-=============================
------BEGIN CERTIFICATE-----
-MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
-EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
-dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
-ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
-DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
-EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
-VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
-cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
-D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
-z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
-/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
-tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
-4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
-A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
-Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
-bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
-IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
-LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
-ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
-IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
-IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
-b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
-bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
-Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
-bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
-ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
-ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
-CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
-KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
-8CgHrTwXZoi1/baI
------END CERTIFICATE-----
-
-XRamp Global CA Root
-====================
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
-BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
-dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
-HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
-U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
-IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
-foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
-zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
-AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
-xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
-oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
-AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
-/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
-qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
-nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
-8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
------END CERTIFICATE-----
-
-Go Daddy Class 2 CA
-===================
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
-VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
-A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
-RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
-ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
-2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
-qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
-YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
-vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
-BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
-atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
-MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
-A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
-PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
-I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
-Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
-vZ8=
------END CERTIFICATE-----
-
-Starfield Class 2 CA
-====================
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
-U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
-MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
-A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
-SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
-bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
-JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
-epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
-F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
-MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
-hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
-bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
-afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
-PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
-xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
-KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
-QBFGmh95DmK/D5fs4C8fF5Q=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
-FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
-Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
-YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
-AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
-Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
-U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
-LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
-cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
-dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
-AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
-3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
-vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
-fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
-fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
-EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
-yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
-1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
-lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
-g14=
------END CERTIFICATE-----
-
-Taiwan GRCA
-===========
------BEGIN CERTIFICATE-----
-MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG
-EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
-DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv
-dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN
-w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5
-BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O
-1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
-htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov
-J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7
-Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t
-B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB
-O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8
-lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV
-HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
-09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
-TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj
-Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2
-Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU
-D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz
-DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk
-Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk
-7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ
-CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
-+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
------END CERTIFICATE-----
-
-Swisscom Root CA 1
-==================
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG
-EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
-dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4
-MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
-aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM
-MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF
-NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe
-AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC
-b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn
-7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN
-cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp
-WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5
-haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
-MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
-HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
-BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9
-MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn
-jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ
-MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H
-VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl
-vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl
-OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3
-1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq
-nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy
-x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW
-NY6E0F/6MBr1mmz0DlP5OlvRHA==
------END CERTIFICATE-----
-
-DigiCert Assured ID Root CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
-IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
-MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
-ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
-9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
-UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
-/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
-oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
-GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
-66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
-hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
-EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
-SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
-8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
-+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
------END CERTIFICATE-----
-
-DigiCert Global Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
-HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
-MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
-dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
-TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
-BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
-4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
-7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
-o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
-8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
-BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
-EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
-tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
-UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
-CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
------END CERTIFICATE-----
-
-DigiCert High Assurance EV Root CA
-==================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
-KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
-MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
-MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
-Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
-Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
-OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
-MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
-NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
-h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
-Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
-JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
-V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
-myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
-mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
------END CERTIFICATE-----
-
-Certplus Class 2 Primary CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
-BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
-OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
-dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
-5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
-Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
-YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
-e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
-CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
-YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
-L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
-P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
-TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
-7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
-//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
-l7+ijrRU
------END CERTIFICATE-----
-
-DST Root CA X3
-==============
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
-ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
-DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
-cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
-rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
-UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
-xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
-utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
-MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
-dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
-GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
-RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
-fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
-
-DST ACES CA X6
-==============
------BEGIN CERTIFICATE-----
-MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
-MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
-MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
-CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
-DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
-pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
-GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
-MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
-Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
-dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
-CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
-5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
-Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
-nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
-vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
-oKfN5XozNmr6mis=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 1
-==============================================
------BEGIN CERTIFICATE-----
-MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
-MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
-acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
-MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
-U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
-TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
-aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
-yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
-Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
-8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
-W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
-BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
-sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
-q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
-B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
-nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2
-==============================================
------BEGIN CERTIFICATE-----
-MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
-MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
-dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
-A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
-acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
-LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
-x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
-QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
-5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
-AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
-Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
-Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
-hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
-9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
-UrbnBEI=
------END CERTIFICATE-----
-
-SwissSign Gold CA - G2
-======================
------BEGIN CERTIFICATE-----
-MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw
-EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN
-MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
-c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
-t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C
-jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg
-vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF
-ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR
-AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend
-jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
-peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR
-7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi
-GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
-OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
-L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm
-5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr
-44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf
-Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m
-Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp
-mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk
-vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf
-KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br
-NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj
-viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
------END CERTIFICATE-----
-
-SwissSign Silver CA - G2
-========================
------BEGIN CERTIFICATE-----
-MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
-BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
-DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
-aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
-9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
-N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
-+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
-6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
-MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
-qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
-FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
-ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
-celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
-CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
-tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
-cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
-4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
-kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
-3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
-/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
-DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
-e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
-WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
-DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
-DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority
-========================================
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
-CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
-cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
-b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
-nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
-RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
-tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
-hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
-Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
-NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
-Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
-1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
------END CERTIFICATE-----
-
-thawte Primary Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
-MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
-SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
-KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
-FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
-oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
-1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
-q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
-aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
-afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
-VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
-AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
-uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
-xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
-jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
-z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G5
-============================================================
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
-yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
-biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
-dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
-j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
-Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
-Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
-fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
-BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
-Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
-aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
-SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
-X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
-KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
-Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
-ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
------END CERTIFICATE-----
-
-SecureTrust CA
-==============
------BEGIN CERTIFICATE-----
-MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
-dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
-BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
-OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
-DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
-GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
-01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
-ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
-aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
-SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
-mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
-nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
-3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
------END CERTIFICATE-----
-
-Secure Global CA
-================
------BEGIN CERTIFICATE-----
-MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
-bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
-MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
-Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
-YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
-bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
-8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
-HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
-0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
-oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
-MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
-OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
-CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
-3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
-f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
------END CERTIFICATE-----
-
-COMODO Certification Authority
-==============================
------BEGIN CERTIFICATE-----
-MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
-BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
-A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
-MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
-T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
-+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
-xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
-4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
-1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
-rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
-b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
-AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
-OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
-RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
-IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
-+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
------END CERTIFICATE-----
-
-Network Solutions Certificate Authority
-=======================================
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
-EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
-IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
-MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
-MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
-jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
-aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
-crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
-/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
-AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
-bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
-A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
-4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
-GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
-wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
-ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
------END CERTIFICATE-----
-
-WellsSecure Public Root Certificate Authority
-=============================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
-F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
-NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
-MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
-bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
-VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
-iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
-i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
-bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
-K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
-AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
-cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
-lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
-i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
-GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
-K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
-bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
-qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
-E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
-tylv2G0xffX8oRAHh84vWdw+WNs=
------END CERTIFICATE-----
-
-COMODO ECC Certification Authority
-==================================
------BEGIN CERTIFICATE-----
-MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
-R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
-ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
-GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
-Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
-b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
-4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
-wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
-FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
-U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
------END CERTIFICATE-----
-
-IGC/A
-=====
------BEGIN CERTIFICATE-----
-MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
-VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
-Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
-MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
-EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
-STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
-TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
-So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
-HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
-frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
-tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
-egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
-iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
-q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
-MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
-Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
-lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
-0mBWWg==
------END CERTIFICATE-----
-
-Security Communication EV RootCA1
-=================================
------BEGIN CERTIFICATE-----
-MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
-U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
-dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
-BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
-Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
-/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
-WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
-ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
-bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
-9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
-SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
-iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
-Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
-mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
-T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
------END CERTIFICATE-----
-
-OISTE WISeKey Global Root GA CA
-===============================
------BEGIN CERTIFICATE-----
-MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
-BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
-A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
-bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
-VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
-IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
-IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
-Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
-Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
-d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
-/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
-LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
-MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
-+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
-hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
-okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA
-=========================
------BEGIN CERTIFICATE-----
-MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
-BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
-EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
-MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
-dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
-GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
-d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
-oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
-QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
-PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
-MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
-IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
-VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
-LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
-dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
-AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
-4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
-AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
-egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
-Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
-PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
-c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
-cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
-IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
-WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
-MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
-MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
-Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
-HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
-nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
-aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
-86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
-yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
-S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
------END CERTIFICATE-----
-
-Certigna
-========
------BEGIN CERTIFICATE-----
-MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
-EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
-MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
-Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
-XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
-GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
-ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
-DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
-Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
-tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
-BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
-SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
-hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
-ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
-PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
-1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
-WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
------END CERTIFICATE-----
-
-TC TrustCenter Class 2 CA II
-============================
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
-IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw
-MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
-c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE
-AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw
-IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2
-xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ
-Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u
-SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB
-7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
-Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
-cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
-SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
-TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G
-dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ
-KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj
-TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP
-JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk
-vQ==
------END CERTIFICATE-----
-
-TC TrustCenter Class 3 CA II
-============================
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
-IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw
-MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
-c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE
-AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W
-yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo
-6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ
-uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk
-2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB
-7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
-Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
-cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
-SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
-TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE
-O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8
-yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9
-IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal
-092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc
-5A==
------END CERTIFICATE-----
-
-TC TrustCenter Universal CA I
-=============================
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
-IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN
-MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg
-VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw
-JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC
-qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv
-xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw
-ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O
-gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j
-BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG
-1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy
-vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3
-ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
-ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a
-7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
------END CERTIFICATE-----
-
-Deutsche Telekom Root CA 2
-==========================
------BEGIN CERTIFICATE-----
-MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
-RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
-A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
-MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
-A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
-b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
-bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
-KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
-AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
-Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
-jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
-HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
-E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
-zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
-rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
-dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
-Cm26OWMohpLzGITY+9HPBVZkVw==
------END CERTIFICATE-----
-
-ComSign Secured CA
-==================
------BEGIN CERTIFICATE-----
-MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE
-AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w
-NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD
-QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs
-49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH
-7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB
-kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1
-9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw
-AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t
-U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA
-j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC
-AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a
-BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp
-FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP
-51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
-OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
------END CERTIFICATE-----
-
-Cybertrust Global Root
-======================
------BEGIN CERTIFICATE-----
-MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
-ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
-MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
-ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
-+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
-0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
-AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
-89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
-8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
-MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
-A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
-lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
-5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
-hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
-X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
-WL1WMRJOEcgh4LMRkWXbtKaIOM5V
------END CERTIFICATE-----
-
-ePKI Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG
-EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg
-Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx
-MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq
-MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs
-IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi
-lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv
-qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX
-12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O
-WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+
-ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao
-lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/
-vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi
-Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi
-MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
-ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0
-1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq
-KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV
-xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP
-NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r
-GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE
-xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx
-gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy
-sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD
-BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
------END CERTIFICATE-----
-
-T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
-=============================================================================================================================
------BEGIN CERTIFICATE-----
-MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
-DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
-aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
-b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
-BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
-S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
-MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
-IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
-n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
-IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
-dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
-cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
-Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
-xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
-6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
-hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
-BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
-N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
-y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
-LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
-dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
------END CERTIFICATE-----
-
-Buypass Class 2 CA 1
-====================
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
-MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
-c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
-cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
-0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
-0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
-uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
-AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
-1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
-7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
-fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
-wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
------END CERTIFICATE-----
-
-Buypass Class 3 CA 1
-====================
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1
-MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
-c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx
-ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0
-n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia
-AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c
-1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P
-AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7
-pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA
-EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5
-htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj
-el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915
------END CERTIFICATE-----
-
-EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
-==========================================================================
------BEGIN CERTIFICATE-----
-MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg
-QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe
-Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p
-ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt
-IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by
-X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b
-gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr
-eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ
-TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy
-Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn
-uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI
-qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm
-ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0
-Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW
-Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t
-FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm
-zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k
-XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT
-bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU
-RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK
-1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt
-2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ
-Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9
-AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
------END CERTIFICATE-----
-
-certSIGN ROOT CA
-================
------BEGIN CERTIFICATE-----
-MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
-VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
-Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
-CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
-JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
-rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
-ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
-0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
-AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
-Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
-AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
-SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
-x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
-vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
-TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
------END CERTIFICATE-----
-
-CNNIC ROOT
-==========
------BEGIN CERTIFICATE-----
-MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
-ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
-OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
-o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
-VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
-VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
-czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
-y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
-wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
-lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
-Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
-O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
-BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
-G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
-mxE=
------END CERTIFICATE-----
-
-ApplicationCA - Japanese Government
-===================================
------BEGIN CERTIFICATE-----
-MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
-SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
-MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
-cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
-fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
-wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
-jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
-nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
-WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
-BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
-vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
-o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
-/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
-io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
-dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
-rosot4LKGAfmt1t06SAZf7IbiVQ=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G3
-=============================================
------BEGIN CERTIFICATE-----
-MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
-BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
-IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
-NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
-YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
-LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
-K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
-c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
-IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
-dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
-2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
-cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
-Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
-AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
-t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
------END CERTIFICATE-----
-
-thawte Primary Root CA - G2
-===========================
------BEGIN CERTIFICATE-----
-MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
-VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
-IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
-Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
-MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
-b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
-IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
-LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
-8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
-mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
-G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
-rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
------END CERTIFICATE-----
-
-thawte Primary Root CA - G3
-===========================
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
-ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
-d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
-VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
-A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
-P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
-+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
-7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
-vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
-KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
-A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
-t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
-8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
-er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G2
-=============================================
------BEGIN CERTIFICATE-----
-MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
-VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
-Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
-OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
-MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
-b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
-BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
-KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
-VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
-EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
-ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
-npaqBA+K
------END CERTIFICATE-----
-
-VeriSign Universal Root Certification Authority
-===============================================
------BEGIN CERTIFICATE-----
-MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
-IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
-1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
-MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
-9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
-AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
-tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
-CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
-a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
-DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
-Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
-Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
-P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
-wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
-mJO37M2CYfE45k+XmCpajQ==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G4
-============================================================
------BEGIN CERTIFICATE-----
-MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
-VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
-b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
-ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
-cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
-b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
-Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
-rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
-/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
-HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
-Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
-A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
-AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
------END CERTIFICATE-----
-
-NetLock Arany (Class Gold) Főtanúsítvány
-============================================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
-A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
-dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
-cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
-MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
-ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
-biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
-c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
-0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
-/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
-H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
-fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
-neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
-qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
-YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
-bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
-NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
-dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA - G2
-==================================
------BEGIN CERTIFICATE-----
-MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
-TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
-ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ
-5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn
-vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj
-CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil
-e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR
-OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI
-CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65
-48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi
-trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737
-qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB
-AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC
-ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA
-A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz
-+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj
-f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN
-kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk
-CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF
-URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
-CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h
-oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV
-IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
-66+KAQ==
------END CERTIFICATE-----
-
-CA Disig
-========
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
-QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
-MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
-bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
-GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
-Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
-hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
-ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
-gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
-AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
-aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
-ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
-BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
-WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
-mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
-CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
-ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
-4Z7CRneC9VkGjCFMhwnN5ag=
------END CERTIFICATE-----
-
-Juur-SK
-=======
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
-c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
-DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
-SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
-aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
-TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
-+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
-UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
-Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
-MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
-HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
-AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
-cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
-AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
-cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
-FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
-A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
-ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
-abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
-IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
-Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
-yyqcjg==
------END CERTIFICATE-----
-
-Hongkong Post Root CA 1
-=======================
------BEGIN CERTIFICATE-----
-MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
-DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
-NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
-IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
-ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
-auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
-qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
-V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
-HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
-h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
-l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
-IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
-T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
-c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
------END CERTIFICATE-----
-
-SecureSign RootCA11
-===================
------BEGIN CERTIFICATE-----
-MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
-SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
-b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
-KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
-cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
-TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
-wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
-g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
-O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
-bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
-t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
-OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
-bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
-Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
-y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
-lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
------END CERTIFICATE-----
-
-ACEDICOM Root
-=============
------BEGIN CERTIFICATE-----
-MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD
-T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4
-MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG
-A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk
-WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD
-YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew
-MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb
-m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk
-HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT
-xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2
-3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9
-2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq
-TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz
-4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU
-9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
-bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg
-aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP
-eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk
-zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1
-ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI
-KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq
-nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE
-I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp
-MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o
-tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA 2009
-==============================
------BEGIN CERTIFICATE-----
-MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
-MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
-c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
-dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
-BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
-U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
-fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
-0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
-pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
-1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
-AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
-QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
-FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
-lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
-I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
-tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
-yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
-LXpUq3DDfSJlgnCW
------END CERTIFICATE-----
-
-E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi
-===================================================
------BEGIN CERTIFICATE-----
-MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
-EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz
-ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3
-MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0
-cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u
-aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY
-8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y
-jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI
-JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk
-9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD
-AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG
-SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d
-F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq
-D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4
-Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
-fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
------END CERTIFICATE-----
-
-GlobalSign Root CA - R3
-=======================
------BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
-iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
-0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
-rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
-OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
-xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
-lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
-EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
-bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
-YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
-kpeDMdmztcpHWD9f
------END CERTIFICATE-----
-
-Autoridad de Certificacion Firmaprofesional CIF A62634068
-=========================================================
------BEGIN CERTIFICATE-----
-MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
-BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
-MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
-QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
-NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
-Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
-B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
-7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
-ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
-plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
-MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
-LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
-bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
-vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
-EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
-DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
-cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
-bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
-ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
-51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
-R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
-T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
-Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
-osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
-crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
-saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
-KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
-6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
------END CERTIFICATE-----
-
-Izenpe.com
-==========
------BEGIN CERTIFICATE-----
-MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
-EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
-MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
-QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
-03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
-ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
-+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
-PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
-OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
-F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
-0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
-0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
-leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
-AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
-SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
-NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
-MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
-BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
-Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
-kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
-hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
-g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
-aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
-nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
-ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
-Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
-WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
------END CERTIFICATE-----
-
-Chambers of Commerce Root - 2008
-================================
------BEGIN CERTIFICATE-----
-MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
-MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
-bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
-QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
-Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
-ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
-EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
-cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
-AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
-XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
-h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
-ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
-NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
-D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
-lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
-0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
-ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
-EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
-G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
-BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
-bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
-bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
-CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
-AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
-wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
-3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
-RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
-M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
-YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
-9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
-zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
-nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
-OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
------END CERTIFICATE-----
-
-Global Chambersign Root - 2008
-==============================
------BEGIN CERTIFICATE-----
-MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
-MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
-bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
-QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
-NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
-Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
-QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
-aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
-VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
-XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
-ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
-/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
-TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
-H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
-Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
-HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
-wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
-AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
-BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
-BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
-aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
-aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
-1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
-dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
-/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
-ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
-dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
-9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
-foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
-qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
-P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
-c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
-09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
------END CERTIFICATE-----
-
-Go Daddy Root Certificate Authority - G2
-========================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
-MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
-MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
-b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
-A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
-9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
-+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
-fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
-NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
-BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
-vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
-5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
-N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
-LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
------END CERTIFICATE-----
-
-Starfield Root Certificate Authority - G2
-=========================================
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
-b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
-eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
-DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
-VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
-dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
-W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
-bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
-N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
-ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
-JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
-TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
-4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
-F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
-pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
-c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
------END CERTIFICATE-----
-
-Starfield Services Root Certificate Authority - G2
-==================================================
------BEGIN CERTIFICATE-----
-MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
-b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
-IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
-dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
-h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
-hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
-LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
-rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
-AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
-SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
-E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
-xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
-iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
-YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
------END CERTIFICATE-----
-
-AffirmTrust Commercial
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
-MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
-bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
-DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
-C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
-BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
-MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
-HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
-hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
-qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
-0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
-sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
------END CERTIFICATE-----
-
-AffirmTrust Networking
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
-MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
-bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
-Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
-dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
-/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
-h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
-HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
-UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
-12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
-WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
-/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
------END CERTIFICATE-----
-
-AffirmTrust Premium
-===================
------BEGIN CERTIFICATE-----
-MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy
-OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy
-dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn
-BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV
-5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs
-+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd
-GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
-p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI
-S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04
-6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5
-/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo
-+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv
-MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
-Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC
-6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S
-L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK
-+4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV
-BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg
-IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60
-g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb
-zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw==
------END CERTIFICATE-----
-
-AffirmTrust Premium ECC
-=======================
------BEGIN CERTIFICATE-----
-MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
-BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
-MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
-cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
-IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
-N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
-BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
-BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
-57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
-eQ==
------END CERTIFICATE-----
-
-Certum Trusted Network CA
-=========================
------BEGIN CERTIFICATE-----
-MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
-ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
-MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
-ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
-l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
-J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
-fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
-cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
-Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
-DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
-jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
-mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
-Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
-03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
------END CERTIFICATE-----
-
-Certinomis - Autorité Racine
-=============================
------BEGIN CERTIFICATE-----
-MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
-Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
-LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG
-A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw
-JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa
-wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly
-Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw
-2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N
-jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q
-c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC
-lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb
-xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g
-530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna
-4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
-A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
-KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x
-WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva
-R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40
-nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B
-CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv
-JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE
-qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b
-WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE
-wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
-vgt2Fl43N+bYdJeimUV5
------END CERTIFICATE-----
-
-Root CA Generalitat Valenciana
-==============================
------BEGIN CERTIFICATE-----
-MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
-ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
-IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
-WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
-CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
-F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
-ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
-D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
-JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
-AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
-dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
-ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
-AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
-YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
-AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
-aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
-AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
-YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
-AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
-OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
-dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
-BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
-A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
-b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
-TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
-Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
-NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
-iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
-+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
------END CERTIFICATE-----
-
-A-Trust-nQual-03
-================
------BEGIN CERTIFICATE-----
-MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE
-Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
-a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R
-dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw
-RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0
-ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1
-c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA
-zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n
-yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE
-SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4
-iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V
-cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV
-eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40
-ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr
-sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd
-JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
-mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6
-ahq97BvIxYSazQ==
------END CERTIFICATE-----
-
-TWCA Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
-VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
-EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
-IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
-QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
-oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
-4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
-y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
-BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
-9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
-mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
-QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
-T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
-Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
------END CERTIFICATE-----
-
-Security Communication RootCA2
-==============================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
-U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
-dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
-SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
-aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
-+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
-3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
-spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
-EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
-QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
-CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
-u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
-3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
-tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
-mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
------END CERTIFICATE-----
-
-EC-ACC
-======
------BEGIN CERTIFICATE-----
-MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
-BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
-ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
-VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
-CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
-BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
-MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
-SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
-Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
-cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
-w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
-ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
-HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
-E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
-0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
-VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
-Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
-dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
-lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
-Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
-l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
-E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
-5EI=
------END CERTIFICATE-----
-
-Hellenic Academic and Research Institutions RootCA 2011
-=======================================================
------BEGIN CERTIFICATE-----
-MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
-O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
-aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
-IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
-AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
-IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
-IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
-1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
-71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
-8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
-3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
-MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
-MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
-b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
-XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
-TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
-/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
-7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
------END CERTIFICATE-----
-
-Actalis Authentication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
-BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
-AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
-MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
-IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
-IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
-wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
-by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
-zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
-YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
-oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
-EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
-hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
-EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
-jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
-iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
-ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
-WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
-JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
-K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
-Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
-4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
-2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
-lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
-OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
-vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
------END CERTIFICATE-----
-
-Trustis FPS Root CA
-===================
------BEGIN CERTIFICATE-----
-MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
-EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
-IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
-BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
-RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
-H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
-cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
-o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
-AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
-BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
-GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
-yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
-8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
-l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
-iB6XzCGcKQENZetX2fNXlrtIzYE=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
-VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
-Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
-dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
-c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
-bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
-aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
-aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
-L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
-cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
-fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
-N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
-Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
-tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
-e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
-2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
-HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
-JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
-D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
------END CERTIFICATE-----
-
-StartCom Certification Authority G2
-===================================
------BEGIN CERTIFICATE-----
-MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE
-ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O
-o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG
-4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi
-Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul
-Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs
-O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H
-vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L
-nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS
-FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa
-z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ
-KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
-2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk
-J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+
-JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG
-/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc
-nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld
-blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc
-l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm
-7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm
-obp573PYtlNXLfbQ4ddI
------END CERTIFICATE-----
-
-Buypass Class 2 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X
-DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
-eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1
-g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn
-9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b
-/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU
-CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff
-awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI
-zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn
-Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX
-Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs
-M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
-AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
-A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI
-osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S
-aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd
-DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD
-LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0
-oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC
-wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS
-CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN
-rJgWVqA=
------END CERTIFICATE-----
-
-Buypass Class 3 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X
-DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
-eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH
-sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR
-5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh
-7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ
-ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH
-2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV
-/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ
-RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA
-Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq
-j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
-AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
-cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G
-uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG
-Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8
-ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2
-KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz
-6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug
-UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe
-eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi
-Cp/HuZc=
------END CERTIFICATE-----
-
-T-TeleSec GlobalRoot Class 3
-============================
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
-IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
-cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
-MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
-dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
-ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
-9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
-NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
-iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
-0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
-AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
-fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
-ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
-P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
-e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
------END CERTIFICATE-----
-
-EE Certification Centre Root CA
-===============================
------BEGIN CERTIFICATE-----
-MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
-EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
-dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
-MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
-UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
-ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
-DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
-TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
-rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
-93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
-P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
-MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
-BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
-xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
-lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
-uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
-3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
-dcGWxZ0=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2007
-=================================================
------BEGIN CERTIFICATE-----
-MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
-DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
-a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
-BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
-bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
-YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
-KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
-KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
-rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
-AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
-Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
-aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
-Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
-BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
-poRq0Tl9
------END CERTIFICATE-----
-
-D-TRUST Root Class 3 CA 2 2009
-==============================
------BEGIN CERTIFICATE-----
-MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
-Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
-LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
-ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
-BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
-KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
-p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
-AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
-4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
-eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
-MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
-PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
-OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
-2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
-o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
-dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
-X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
------END CERTIFICATE-----
-
-D-TRUST Root Class 3 CA 2 EV 2009
-=================================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
-OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
-OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
-egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
-zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
-7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
-sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
-11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
-cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
-ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
-MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
-b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
-c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
-PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
-nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
-ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
-NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
-w9y4AyHqnxbxLFS1
------END CERTIFICATE-----
-
-PSCProcert
-==========
------BEGIN CERTIFICATE-----
-MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk
-ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ
-MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz
-dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl
-cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw
-IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw
-MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w
-DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD
-ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp
-Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC
-wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA
-3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh
-RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO
-EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2
-0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
-0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU
-td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw
-Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp
-r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/
-AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz
-Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId
-xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp
-ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH
-EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h
-Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k
-ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG
-9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG
-MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG
-LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52
-ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy
-YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
-Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o
-dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq
-T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN
-g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q
-uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1
-n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn
-FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo
-5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq
-3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5
-poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
-eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
------END CERTIFICATE-----
-
-China Internet Network Information Center EV Certificates Root
-==============================================================
------BEGIN CERTIFICATE-----
-MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV
-BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D
-aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg
-Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG
-A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM
-PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl
-cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y
-jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV
-98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H
-klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23
-KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC
-7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD
-glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5
-0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM
-7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
-ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0
-5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8=
------END CERTIFICATE-----
-
-Swisscom Root CA 2
-==================
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQG
-EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
-dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2
-MjUwNzM4MTRaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
-aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvErjw0DzpPM
-LgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r0rk0X2s682Q2zsKwzxNo
-ysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJ
-wDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVPACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpH
-Wrumnf2U5NGKpV+GY3aFy6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1a
-SgJA/MTAtukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL6yxS
-NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab
-mbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrALacywlKinh/LTSlDcX3KwFnUey7QY
-Ypqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velhk6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3
-qPyZ7iVNTA6z00yPhOgpD/0QVAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
-HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
-BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqhb97iEoHF8Twu
-MA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4RfbgZPnm3qKhyN2abGu2sEzsO
-v2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ
-82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz
-o9v/tdhZsnPdTSpxsrpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcs
-a0vvaGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciATwoCqISxx
-OQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99nBjx8Oto0QuFmtEYE3saW
-mA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5Wt6NlUe07qxS/TFED6F+KBZvuim6c779o
-+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TC
-rvJcwhbtkj6EPnNgiLx29CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX
-5OfNeOI5wSsSnqaeG8XmDtkx2Q==
------END CERTIFICATE-----
-
-Swisscom Root EV CA 2
-=====================
------BEGIN CERTIFICATE-----
-MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE
-BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl
-cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN
-MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT
-HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg
-Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz
-o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy
-Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti
-GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li
-qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH
-Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG
-alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa
-m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox
-bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi
-xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/
-BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
-MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB
-bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL
-j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU
-wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7
-XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH
-59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/
-23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq
-J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA
-HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi
-uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW
-l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc=
------END CERTIFICATE-----
-
-CA Disig Root R1
-================
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw
-EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
-ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx
-EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
-c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy
-3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8
-u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2
-m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk
-CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa
-YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6
-vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL
-LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX
-ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is
-XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ
-04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
-xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B
-LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM
-CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb
-VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85
-YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS
-ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix
-lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N
-UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ
-a7+h89n07eLw4+1knj0vllJPgFOL
------END CERTIFICATE-----
-
-CA Disig Root R2
-================
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw
-EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
-ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx
-EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
-c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC
-w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia
-xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7
-A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S
-GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV
-g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa
-5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE
-koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A
-Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i
-Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u
-Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
-tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV
-sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je
-dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8
-1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx
-mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01
-utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0
-sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg
-UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV
-7+ZtsH8tZ/3zbBt1RqPlShfppNcL
------END CERTIFICATE-----
-
-ACCVRAIZ1
-=========
------BEGIN CERTIFICATE-----
-MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
-SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
-MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
-UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
-jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
-RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
-aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
-0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
-WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
-8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
-5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
-9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
-Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
-Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
-Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
-VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
-Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
-QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
-AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
-YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
-AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
-IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
-aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
-dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
-MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
-hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
-R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
-YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
-nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
-TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
-sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
-I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
-Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
-3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
-EfbRD0tVNEYqi4Y7
------END CERTIFICATE-----
-
-TWCA Global Root CA
-===================
------BEGIN CERTIFICATE-----
-MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT
-CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD
-QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK
-EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg
-Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C
-nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV
-r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR
-Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV
-tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W
-KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99
-sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p
-yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn
-kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI
-zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC
-AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g
-cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
-LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M
-8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg
-/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg
-lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP
-A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m
-i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8
-EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3
-zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0=
------END CERTIFICATE-----
-
-TeliaSonera Root CA v1
-======================
------BEGIN CERTIFICATE-----
-MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE
-CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4
-MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW
-VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+
-6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA
-3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k
-B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn
-Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH
-oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3
-F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ
-oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7
-gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc
-TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB
-AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW
-DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm
-zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
-0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW
-pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV
-G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc
-c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT
-JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2
-qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6
-Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
-WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
------END CERTIFICATE-----
-
-E-Tugra Certification Authority
-===============================
------BEGIN CERTIFICATE-----
-MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
-DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
-ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
-ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
-NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
-QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
-cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
-DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
-hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
-CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
-ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
-BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
-E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
-rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
-jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
-rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
-dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
-/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
-MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
-kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
-XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
-VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
-a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
-dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
-KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
-Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
-8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
-C7TbO6Orb1wdtn7os4I07QZcJA==
------END CERTIFICATE-----
-
-T-TeleSec GlobalRoot Class 2
-============================
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
-IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
-cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
-MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
-dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
-ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
-SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
-vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
-2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
-WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
-YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
-r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
-vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
-3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
-9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
------END CERTIFICATE-----
-
-Atos TrustedRoot 2011
-=====================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
-cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
-MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
-A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
-hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
-54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
-DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
-HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
-z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
-l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
-bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
-CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
-k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
-TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
-61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
-3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
------END CERTIFICATE-----
-
-QuoVadis Root CA 1 G3
-=====================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG
-A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
-b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN
-MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg
-RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE
-PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm
-PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6
-Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN
-ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l
-g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV
-7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX
-9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f
-iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg
-t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI
-hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
-MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3
-GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct
-Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP
-+V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh
-3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa
-wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6
-O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0
-FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV
-hMJKzRwuJIczYOXD
------END CERTIFICATE-----
-
-QuoVadis Root CA 2 G3
-=====================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG
-A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
-b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN
-MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg
-RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh
-ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY
-NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t
-oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o
-MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l
-V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo
-L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ
-sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD
-6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh
-lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI
-hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
-AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K
-pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9
-x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz
-dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X
-U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw
-mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD
-zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN
-JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr
-O3jtZsSOeWmD3n+M
------END CERTIFICATE-----
-
-QuoVadis Root CA 3 G3
-=====================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG
-A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
-b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN
-MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg
-RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286
-IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL
-Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe
-6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3
-I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U
-VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7
-5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi
-Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM
-dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt
-rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI
-hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
-KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS
-t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ
-TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du
-DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib
-Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD
-hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX
-0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW
-dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2
-PpxxVJkES/1Y+Zj0
------END CERTIFICATE-----
-
-DigiCert Assured ID Root G2
-===========================
------BEGIN CERTIFICATE-----
-MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
-IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw
-MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
-ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH
-35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq
-bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw
-VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP
-YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn
-lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO
-w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv
-0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz
-d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW
-hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M
-jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
-IhNzbM8m9Yop5w==
------END CERTIFICATE-----
-
-DigiCert Assured ID Root G3
-===========================
------BEGIN CERTIFICATE-----
-MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD
-VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
-MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ
-BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb
-RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs
-KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF
-UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy
-YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy
-1vUhZscv6pZjamVFkpUBtA==
------END CERTIFICATE-----
-
-DigiCert Global Root G2
-=======================
------BEGIN CERTIFICATE-----
-MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
-HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx
-MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
-dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ
-kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO
-3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV
-BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM
-UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB
-o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu
-5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr
-F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U
-WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH
-QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/
-iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
-MrY=
------END CERTIFICATE-----
-
-DigiCert Global Root G3
-=======================
------BEGIN CERTIFICATE-----
-MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD
-VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw
-MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
-aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C
-AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O
-YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP
-BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp
-Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y
-3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34
-VOKa5Vt8sycX
------END CERTIFICATE-----
-
-DigiCert Trusted Root G4
-========================
------BEGIN CERTIFICATE-----
-MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw
-HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
-MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp
-pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o
-k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa
-vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY
-QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6
-MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm
-mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7
-f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH
-dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8
-oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
-DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
-ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY
-ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr
-yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy
-7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah
-ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN
-5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb
-/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa
-5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK
-G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP
-82Z+
------END CERTIFICATE-----
-
-WoSign
-======
------BEGIN CERTIFICATE-----
-MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG
-EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g
-QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ
-BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
-vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO
-CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX
-2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5
-KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR
-+ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez
-EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk
-lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2
-8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY
-yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C
-AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R
-8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
-LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq
-T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj
-y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC
-2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes
-5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/
-EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh
-mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx
-kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi
-kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w==
------END CERTIFICATE-----
-
-WoSign China
-============
------BEGIN CERTIFICATE-----
-MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQG
-EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMMEkNBIOayg+mAmuagueiv
-geS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYD
-VQQKExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjAN
-BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k
-8H/rD195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld19AXbbQs5
-uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExfv5RxadmWPgxDT74wwJ85
-dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnkUkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5
-Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+LNVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFy
-b7Ao65vh4YOhn0pdr8yb+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc
-76DbT52VqyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6KyX2m
-+Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0GAbQOXDBGVWCvOGU6
-yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaKJ/kR8slC/k7e3x9cxKSGhxYzoacX
-GKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUA
-A4ICAQBqinA4WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
-yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj/feTZU7n85iY
-r83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6jBAyvd0zaziGfjk9DgNyp115
-j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0A
-kLppRQjbbpCBhqcqBT/mhDn4t/lXX0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97
-qA4bLJyuQHCH2u2nFoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Y
-jj4Du9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10lO1Hm13ZB
-ONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Leie2uPAmvylezkolwQOQv
-T8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR12KvxAmLBsX5VYc8T1yaw15zLKYs4SgsO
-kI26oQ==
------END CERTIFICATE-----
diff --git a/Master/tlpkg/tlperl/lib/Mozilla/mk-ca-bundle.pl b/Master/tlpkg/tlperl/lib/Mozilla/mk-ca-bundle.pl
deleted file mode 100644
index c584ed3675d..00000000000
--- a/Master/tlpkg/tlperl/lib/Mozilla/mk-ca-bundle.pl
+++ /dev/null
@@ -1,495 +0,0 @@
-#!/usr/bin/env perl
-# ***************************************************************************
-# * _ _ ____ _
-# * Project ___| | | | _ \| |
-# * / __| | | | |_) | |
-# * | (__| |_| | _ <| |___
-# * \___|\___/|_| \_\_____|
-# *
-# * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
-# *
-# * This software is licensed as described in the file COPYING, which
-# * you should have received as part of this distribution. The terms
-# * are also available at http://curl.haxx.se/docs/copyright.html.
-# *
-# * You may opt to use, copy, modify, merge, publish, distribute and/or sell
-# * copies of the Software, and permit persons to whom the Software is
-# * furnished to do so, under the terms of the COPYING file.
-# *
-# * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-# * KIND, either express or implied.
-# *
-# ***************************************************************************
-# This Perl script creates a fresh ca-bundle.crt file for use with libcurl.
-# It downloads certdata.txt from Mozilla's source tree (see URL below),
-# then parses certdata.txt and extracts CA Root Certificates into PEM format.
-# These are then processed with the OpenSSL commandline tool to produce the
-# final ca-bundle.crt file.
-# The script is based on the parse-certs script written by Roland Krikava.
-# This Perl script works on almost any platform since its only external
-# dependency is the OpenSSL commandline tool for optional text listing.
-# Hacked by Guenter Knauf.
-#
-use warnings;
-use Getopt::Std;
-use MIME::Base64;
-use LWP::UserAgent;
-use strict;
-use vars qw($opt_b $opt_d $opt_f $opt_h $opt_i $opt_l $opt_n $opt_p $opt_q $opt_s $opt_t $opt_u $opt_v $opt_w);
-use List::Util;
-use Text::Wrap;
-my $MOD_SHA = "Digest::SHA";
-eval "require $MOD_SHA";
-if ($@) {
- $MOD_SHA = "Digest::SHA::PurePerl";
- eval "require $MOD_SHA";
-}
-
-my %urls = (
- 'nss' =>
- 'http://hg.mozilla.org/projects/nss/raw-file/tip/lib/ckfw/builtins/certdata.txt',
- 'central' =>
- 'http://hg.mozilla.org/mozilla-central/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt',
- 'aurora' =>
- 'http://hg.mozilla.org/releases/mozilla-aurora/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt',
- 'beta' =>
- 'http://hg.mozilla.org/releases/mozilla-beta/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt',
- 'release' =>
- 'http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt',
-);
-
-$opt_d = 'release';
-
-# If the OpenSSL commandline is not in search path you can configure it here!
-my $openssl = 'openssl';
-
-my $version = '1.25';
-
-$opt_w = 76; # default base64 encoded lines length
-
-# default cert types to include in the output (default is to include CAs which may issue SSL server certs)
-my $default_mozilla_trust_purposes = "SERVER_AUTH";
-my $default_mozilla_trust_levels = "TRUSTED_DELEGATOR";
-$opt_p = $default_mozilla_trust_purposes . ":" . $default_mozilla_trust_levels;
-
-my @valid_mozilla_trust_purposes = (
- "DIGITAL_SIGNATURE",
- "NON_REPUDIATION",
- "KEY_ENCIPHERMENT",
- "DATA_ENCIPHERMENT",
- "KEY_AGREEMENT",
- "KEY_CERT_SIGN",
- "CRL_SIGN",
- "SERVER_AUTH",
- "CLIENT_AUTH",
- "CODE_SIGNING",
- "EMAIL_PROTECTION",
- "IPSEC_END_SYSTEM",
- "IPSEC_TUNNEL",
- "IPSEC_USER",
- "TIME_STAMPING",
- "STEP_UP_APPROVED"
-);
-
-my @valid_mozilla_trust_levels = (
- "TRUSTED_DELEGATOR", # CAs
- "NOT_TRUSTED", # Don't trust these certs.
- "MUST_VERIFY_TRUST", # This explicitly tells us that it ISN'T a CA but is otherwise ok. In other words, this should tell the app to ignore any other sources that claim this is a CA.
- "TRUSTED" # This cert is trusted, but only for itself and not for delegates (i.e. it is not a CA).
-);
-
-my $default_signature_algorithms = $opt_s = "MD5";
-
-my @valid_signature_algorithms = (
- "MD5",
- "SHA1",
- "SHA256",
- "SHA384",
- "SHA512"
-);
-
-$0 =~ s@.*(/|\\)@@;
-$Getopt::Std::STANDARD_HELP_VERSION = 1;
-getopts('bd:fhilnp:qs:tuvw:');
-
-if(!defined($opt_d)) {
- # to make plain "-d" use not cause warnings, and actually still work
- $opt_d = 'release';
-}
-
-# Use predefined URL or else custom URL specified on command line.
-my $url = ( defined( $urls{$opt_d} ) ) ? $urls{$opt_d} : $opt_d;
-
-my $curl = `curl -V`;
-
-if ($opt_i) {
- print ("=" x 78 . "\n");
- print "Script Version : $version\n";
- print "Perl Version : $]\n";
- print "Operating System Name : $^O\n";
- print "Getopt::Std.pm Version : ${Getopt::Std::VERSION}\n";
- print "MIME::Base64.pm Version : ${MIME::Base64::VERSION}\n";
- print "LWP::UserAgent.pm Version : ${LWP::UserAgent::VERSION}\n";
- print "LWP.pm Version : ${LWP::VERSION}\n";
- print "Digest::SHA.pm Version : ${Digest::SHA::VERSION}\n" if ($Digest::SHA::VERSION);
- print "Digest::SHA::PurePerl.pm Version : ${Digest::SHA::PurePerl::VERSION}\n" if ($Digest::SHA::PurePerl::VERSION);
- print ("=" x 78 . "\n");
-}
-
-sub warning_message() {
- if ( $opt_d =~ m/^risk$/i ) { # Long Form Warning and Exit
- print "Warning: Use of this script may pose some risk:\n";
- print "\n";
- print " 1) Using http is subject to man in the middle attack of certdata content\n";
- print " 2) Default to 'release', but more recent updates may be found in other trees\n";
- print " 3) certdata.txt file format may change, lag time to update this script\n";
- print " 4) Generally unwise to blindly trust CAs without manual review & verification\n";
- print " 5) Mozilla apps use additional security checks aren't represented in certdata\n";
- print " 6) Use of this script will make a security engineer grind his teeth and\n";
- print " swear at you. ;)\n";
- exit;
- } else { # Short Form Warning
- print "Warning: Use of this script may pose some risk, -d risk for more details.\n";
- }
-}
-
-sub HELP_MESSAGE() {
- print "Usage:\t${0} [-b] [-d<certdata>] [-f] [-i] [-l] [-n] [-p<purposes:levels>] [-q] [-s<algorithms>] [-t] [-u] [-v] [-w<l>] [<outputfile>]\n";
- print "\t-b\tbackup an existing version of ca-bundle.crt\n";
- print "\t-d\tspecify Mozilla tree to pull certdata.txt or custom URL\n";
- print "\t\t Valid names are:\n";
- print "\t\t ", join( ", ", map { ( $_ =~ m/$opt_d/ ) ? "$_ (default)" : "$_" } sort keys %urls ), "\n";
- print "\t-f\tforce rebuild even if certdata.txt is current\n";
- print "\t-i\tprint version info about used modules\n";
- print "\t-l\tprint license info about certdata.txt\n";
- print "\t-n\tno download of certdata.txt (to use existing)\n";
- print wrap("\t","\t\t", "-p\tlist of Mozilla trust purposes and levels for certificates to include in output. Takes the form of a comma separated list of purposes, a colon, and a comma separated list of levels. (default: $default_mozilla_trust_purposes:$default_mozilla_trust_levels)"), "\n";
- print "\t\t Valid purposes are:\n";
- print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_mozilla_trust_purposes ) ), "\n";
- print "\t\t Valid levels are:\n";
- print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_mozilla_trust_levels ) ), "\n";
- print "\t-q\tbe really quiet (no progress output at all)\n";
- print wrap("\t","\t\t", "-s\tcomma separated list of certificate signatures/hashes to output in plain text mode. (default: $default_signature_algorithms)\n");
- print "\t\t Valid signature algorithms are:\n";
- print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_signature_algorithms ) ), "\n";
- print "\t-t\tinclude plain text listing of certificates\n";
- print "\t-u\tunlink (remove) certdata.txt after processing\n";
- print "\t-v\tbe verbose and print out processed CAs\n";
- print "\t-w <l>\twrap base64 output lines after <l> chars (default: ${opt_w})\n";
- exit;
-}
-
-sub VERSION_MESSAGE() {
- print "${0} version ${version} running Perl ${]} on ${^O}\n";
-}
-
-warning_message() unless ($opt_q || $url =~ m/^(ht|f)tps:/i );
-HELP_MESSAGE() if ($opt_h);
-
-sub is_in_list($@) {
- my $target = shift;
-
- return defined(List::Util::first { $target eq $_ } @_);
-}
-
-# Parses $param_string as a case insensitive comma separated list with optional whitespace
-# validates that only allowed parameters are supplied
-sub parse_csv_param($$@) {
- my $description = shift;
- my $param_string = shift;
- my @valid_values = @_;
-
- my @values = map {
- s/^\s+//; # strip leading spaces
- s/\s+$//; # strip trailing spaces
- uc $_ # return the modified string as upper case
- } split( ',', $param_string );
-
- # Find all values which are not in the list of valid values or "ALL"
- my @invalid = grep { !is_in_list($_,"ALL",@valid_values) } @values;
-
- if ( scalar(@invalid) > 0 ) {
- # Tell the user which parameters were invalid and print the standard help message which will exit
- print "Error: Invalid ", $description, scalar(@invalid) == 1 ? ": " : "s: ", join( ", ", map { "\"$_\"" } @invalid ), "\n";
- HELP_MESSAGE();
- }
-
- @values = @valid_values if ( is_in_list("ALL",@values) );
-
- return @values;
-}
-
-sub sha1 {
- my $result;
- if ($Digest::SHA::VERSION || $Digest::SHA::PurePerl::VERSION) {
- open(FILE, $_[0]) or die "Can't open '$_[0]': $!";
- binmode(FILE);
- $result = $MOD_SHA->new(1)->addfile(*FILE)->hexdigest;
- close(FILE);
- } else {
- # Use OpenSSL command if Perl Digest::SHA modules not available
- $result = (split(/ |\r|\n/,`$openssl dgst -sha1 $_[0]`))[1];
- }
- return $result;
-}
-
-
-sub oldsha1 {
- my $sha1 = "";
- open(C, "<$_[0]") || return 0;
- while(<C>) {
- chomp;
- if($_ =~ /^\#\# SHA1: (.*)/) {
- $sha1 = $1;
- last;
- }
- }
- close(C);
- return $sha1;
-}
-
-if ( $opt_p !~ m/:/ ) {
- print "Error: Mozilla trust identifier list must include both purposes and levels\n";
- HELP_MESSAGE();
-}
-
-(my $included_mozilla_trust_purposes_string, my $included_mozilla_trust_levels_string) = split( ':', $opt_p );
-my @included_mozilla_trust_purposes = parse_csv_param( "trust purpose", $included_mozilla_trust_purposes_string, @valid_mozilla_trust_purposes );
-my @included_mozilla_trust_levels = parse_csv_param( "trust level", $included_mozilla_trust_levels_string, @valid_mozilla_trust_levels );
-
-my @included_signature_algorithms = parse_csv_param( "signature algorithm", $opt_s, @valid_signature_algorithms );
-
-sub should_output_cert(%) {
- my %trust_purposes_by_level = @_;
-
- foreach my $level (@included_mozilla_trust_levels) {
- # for each level we want to output, see if any of our desired purposes are included
- return 1 if ( defined( List::Util::first { is_in_list( $_, @included_mozilla_trust_purposes ) } @{$trust_purposes_by_level{$level}} ) );
- }
-
- return 0;
-}
-
-my $crt = $ARGV[0] || 'ca-bundle.crt';
-(my $txt = $url) =~ s@(.*/|\?.*)@@g;
-
-my $stdout = $crt eq '-';
-my $resp;
-my $fetched;
-
-my $oldsha1 = oldsha1($crt);
-
-print STDERR "SHA1 of old file: $oldsha1\n" if (!$opt_q);
-
-print STDERR "Downloading '$txt' ...\n" if (!$opt_q);
-
-if($curl && !$opt_n) {
- my $https = $url;
- $https =~ s/^http:/https:/;
- print STDERR "Get certdata over HTTPS with curl!\n" if (!$opt_q);
- my $quiet = $opt_q ? "-s" : "";
- my @out = `curl -w %{response_code} $quiet -O $https`;
- if(@out && $out[0] == 200) {
- $fetched = 1;
- } else {
- print STDERR "Failed downloading HTTPS with curl, trying HTTP with LWP\n" if (!$opt_q);
- }
-}
-
-unless ($fetched || ($opt_n and -e $txt)) {
- my $ua = new LWP::UserAgent(agent => "$0/$version");
- $ua->env_proxy();
- $resp = $ua->mirror($url, $txt);
- if ($resp && $resp->code eq '304') {
- print STDERR "Not modified\n" unless $opt_q;
- exit 0 if -e $crt && !$opt_f;
- } else {
- $fetched = 1;
- }
- if( !$resp || $resp->code !~ /^(?:200|304)$/ ) {
- print STDERR "Unable to download latest data: "
- . ($resp? $resp->code . ' - ' . $resp->message : "LWP failed") . "\n"
- unless $opt_q;
- exit 1 if -e $crt || ! -r $txt;
- }
-}
-
-my $filedate = $resp ? $resp->last_modified : (stat($txt))[9];
-my $datesrc = "as of";
-if(!$filedate) {
- # mxr.mozilla.org gave us a time, hg.mozilla.org does not!
- $filedate = time();
- $datesrc="downloaded on";
-}
-
-# get the hash from the download file
-my $newsha1= sha1($txt);
-
-if(!$opt_f && $oldsha1 eq $newsha1) {
- print STDERR "Downloaded file identical to previous run\'s source file. Exiting\n";
- exit;
-}
-
-print STDERR "SHA1 of new file: $newsha1\n";
-
-my $currentdate = scalar gmtime($filedate);
-
-my $format = $opt_t ? "plain text and " : "";
-if( $stdout ) {
- open(CRT, '> -') or die "Couldn't open STDOUT: $!\n";
-} else {
- open(CRT,">$crt.~") or die "Couldn't open $crt.~: $!\n";
-}
-print CRT <<EOT;
-##
-## Bundle of CA Root Certificates
-##
-## Certificate data from Mozilla ${datesrc}: ${currentdate}
-##
-## This is a bundle of X.509 certificates of public Certificate Authorities
-## (CA). These were automatically extracted from Mozilla's root certificates
-## file (certdata.txt). This file can be found in the mozilla source tree:
-## ${url}
-##
-## It contains the certificates in ${format}PEM format and therefore
-## can be directly used with curl / libcurl / php_curl, or with
-## an Apache+mod_ssl webserver for SSL client authentication.
-## Just configure this file as the SSLCACertificateFile.
-##
-## Conversion done with mk-ca-bundle.pl version $version.
-## SHA1: $newsha1
-##
-
-EOT
-
-print STDERR "Processing '$txt' ...\n" if (!$opt_q);
-my $caname;
-my $certnum = 0;
-my $skipnum = 0;
-my $start_of_cert = 0;
-
-open(TXT,"$txt") or die "Couldn't open $txt: $!\n";
-while (<TXT>) {
- if (/\*\*\*\*\* BEGIN LICENSE BLOCK \*\*\*\*\*/) {
- print CRT;
- print if ($opt_l);
- while (<TXT>) {
- print CRT;
- print if ($opt_l);
- last if (/\*\*\*\*\* END LICENSE BLOCK \*\*\*\*\*/);
- }
- }
- next if /^#|^\s*$/;
- chomp;
- if (/^CVS_ID\s+\"(.*)\"/) {
- print CRT "# $1\n";
- }
-
- # this is a match for the start of a certificate
- if (/^CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE/) {
- $start_of_cert = 1
- }
- if ($start_of_cert && /^CKA_LABEL UTF8 \"(.*)\"/) {
- $caname = $1;
- }
- my %trust_purposes_by_level;
- if ($start_of_cert && /^CKA_VALUE MULTILINE_OCTAL/) {
- my $data;
- while (<TXT>) {
- last if (/^END/);
- chomp;
- my @octets = split(/\\/);
- shift @octets;
- for (@octets) {
- $data .= chr(oct);
- }
- }
- # scan forwards until the trust part
- while (<TXT>) {
- last if (/^CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST/);
- chomp;
- }
- # now scan the trust part to determine how we should trust this cert
- while (<TXT>) {
- last if (/^#/);
- if (/^CKA_TRUST_([A-Z_]+)\s+CK_TRUST\s+CKT_NSS_([A-Z_]+)\s*$/) {
- if ( !is_in_list($1,@valid_mozilla_trust_purposes) ) {
- print STDERR "Warning: Unrecognized trust purpose for cert: $caname. Trust purpose: $1. Trust Level: $2\n" if (!$opt_q);
- } elsif ( !is_in_list($2,@valid_mozilla_trust_levels) ) {
- print STDERR "Warning: Unrecognized trust level for cert: $caname. Trust purpose: $1. Trust Level: $2\n" if (!$opt_q);
- } else {
- push @{$trust_purposes_by_level{$2}}, $1;
- }
- }
- }
-
- if ( !should_output_cert(%trust_purposes_by_level) ) {
- $skipnum ++;
- } else {
- my $encoded = MIME::Base64::encode_base64($data, '');
- $encoded =~ s/(.{1,${opt_w}})/$1\n/g;
- my $pem = "-----BEGIN CERTIFICATE-----\n"
- . $encoded
- . "-----END CERTIFICATE-----\n";
- print CRT "\n$caname\n";
-
- my $maxStringLength = length($caname);
- if ($opt_t) {
- foreach my $key (keys %trust_purposes_by_level) {
- my $string = $key . ": " . join(", ", @{$trust_purposes_by_level{$key}});
- $maxStringLength = List::Util::max( length($string), $maxStringLength );
- print CRT $string . "\n";
- }
- }
- print CRT ("=" x $maxStringLength . "\n");
- if (!$opt_t) {
- print CRT $pem;
- } else {
- my $pipe = "";
- foreach my $hash (@included_signature_algorithms) {
- $pipe = "|$openssl x509 -" . $hash . " -fingerprint -noout -inform PEM";
- if (!$stdout) {
- $pipe .= " >> $crt.~";
- close(CRT) or die "Couldn't close $crt.~: $!";
- }
- open(TMP, $pipe) or die "Couldn't open openssl pipe: $!";
- print TMP $pem;
- close(TMP) or die "Couldn't close openssl pipe: $!";
- if (!$stdout) {
- open(CRT, ">>$crt.~") or die "Couldn't open $crt.~: $!";
- }
- }
- $pipe = "|$openssl x509 -text -inform PEM";
- if (!$stdout) {
- $pipe .= " >> $crt.~";
- close(CRT) or die "Couldn't close $crt.~: $!";
- }
- open(TMP, $pipe) or die "Couldn't open openssl pipe: $!";
- print TMP $pem;
- close(TMP) or die "Couldn't close openssl pipe: $!";
- if (!$stdout) {
- open(CRT, ">>$crt.~") or die "Couldn't open $crt.~: $!";
- }
- }
- print STDERR "Parsing: $caname\n" if ($opt_v);
- $certnum ++;
- $start_of_cert = 0;
- }
- }
-}
-close(TXT) or die "Couldn't close $txt: $!\n";
-close(CRT) or die "Couldn't close $crt.~: $!\n";
-unless( $stdout ) {
- if ($opt_b && -e $crt) {
- my $bk = 1;
- while (-e "$crt.~${bk}~") {
- $bk++;
- }
- rename $crt, "$crt.~${bk}~" or die "Failed to create backup $crt.~$bk}~: $!\n";
- } elsif( -e $crt ) {
- unlink( $crt ) or die "Failed to remove $crt: $!\n";
- }
- rename "$crt.~", $crt or die "Failed to rename $crt.~ to $crt: $!\n";
-}
-unlink $txt if ($opt_u);
-print STDERR "Done ($certnum CA certs processed, $skipnum skipped).\n" if (!$opt_q);
diff --git a/Master/tlpkg/tlperl/lib/Net/Cmd.pm b/Master/tlpkg/tlperl/lib/Net/Cmd.pm
index d1a1fed8af2..2614e695391 100644
--- a/Master/tlpkg/tlperl/lib/Net/Cmd.pm
+++ b/Master/tlpkg/tlperl/lib/Net/Cmd.pm
@@ -1,17 +1,21 @@
# Net::Cmd.pm
#
-# Copyright (c) 1995-2006 Graham Barr <gbarr@pobox.com>. All rights reserved.
+# Versions up to 2.29_1 Copyright (c) 1995-2006 Graham Barr <gbarr@pobox.com>.
+# All rights reserved.
+# Changes in Version 2.29_2 onwards Copyright (C) 2013-2014 Steve Hay. All
+# rights reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
package Net::Cmd;
-require 5.001;
-require Exporter;
+use 5.008001;
use strict;
-use vars qw(@ISA @EXPORT $VERSION);
+use warnings;
+
use Carp;
+use Exporter;
use Symbol 'gensym';
BEGIN {
@@ -37,23 +41,23 @@ BEGIN {
}
}
-$VERSION = "2.30";
-@ISA = qw(Exporter);
-@EXPORT = qw(CMD_INFO CMD_OK CMD_MORE CMD_REJECT CMD_ERROR CMD_PENDING);
+our $VERSION = "3.05";
+our @ISA = qw(Exporter);
+our @EXPORT = qw(CMD_INFO CMD_OK CMD_MORE CMD_REJECT CMD_ERROR CMD_PENDING);
+use constant CMD_INFO => 1;
+use constant CMD_OK => 2;
+use constant CMD_MORE => 3;
+use constant CMD_REJECT => 4;
+use constant CMD_ERROR => 5;
+use constant CMD_PENDING => 0;
-sub CMD_INFO {1}
-sub CMD_OK {2}
-sub CMD_MORE {3}
-sub CMD_REJECT {4}
-sub CMD_ERROR {5}
-sub CMD_PENDING {0}
+use constant DEF_REPLY_CODE => 421;
my %debug = ();
my $tr = $^O eq 'os390' ? Convert::EBCDIC->new() : undef;
-
sub toebcdic {
my $cmd = shift;
@@ -78,7 +82,7 @@ sub toascii {
sub _print_isa {
- no strict qw(refs);
+ no strict 'refs'; ## no critic (TestingAndDebugging::ProhibitNoStrict)
my $pkg = shift;
my $cmd = $pkg;
@@ -169,7 +173,7 @@ sub code {
my $cmd = shift;
- ${*$cmd}{'net_cmd_code'} = "000"
+ ${*$cmd}{'net_cmd_code'} = $cmd->DEF_REPLY_CODE
unless exists ${*$cmd}{'net_cmd_code'};
${*$cmd}{'net_cmd_code'};
@@ -191,7 +195,7 @@ sub set_status {
my $cmd = shift;
my ($code, $resp) = @_;
- $resp = [$resp]
+ $resp = defined $resp ? [$resp] : []
unless ref($resp);
(${*$cmd}{'net_cmd_code'}, ${*$cmd}{'net_cmd_resp'}) = ($code, $resp);
@@ -200,14 +204,38 @@ sub set_status {
}
-sub command {
+
+sub _set_status_timeout {
my $cmd = shift;
+ my $pkg = ref($cmd) || $cmd;
+
+ $cmd->set_status($cmd->DEF_REPLY_CODE, "[$pkg] Timeout");
+ carp(ref($cmd) . ": " . (caller(1))[3] . "(): timeout") if $cmd->debug;
+}
+
+sub _set_status_closed {
+ my $cmd = shift;
+ my $pkg = ref($cmd) || $cmd;
+
+ $cmd->set_status($cmd->DEF_REPLY_CODE, "[$pkg] Connection closed");
+ carp(ref($cmd) . ": " . (caller(1))[3]
+ . "(): unexpected EOF on command channel: $!") if $cmd->debug;
+}
- unless (defined fileno($cmd)) {
- $cmd->set_status("599", "Connection closed");
- return $cmd;
+sub _is_closed {
+ my $cmd = shift;
+ if (!defined fileno($cmd)) {
+ $cmd->_set_status_closed;
+ return 1;
}
+ return 0;
+}
+sub command {
+ my $cmd = shift;
+
+ return $cmd
+ if $cmd->_is_closed;
$cmd->dataend()
if (exists ${*$cmd}{'net_cmd_last_ch'});
@@ -229,14 +257,14 @@ sub command {
my $len = length $str;
my $swlen;
- $cmd->close
- unless (defined($swlen = syswrite($cmd, $str, $len)) && $swlen == $len);
-
$cmd->debug_print(1, $str)
if ($cmd->debug);
- ${*$cmd}{'net_cmd_resp'} = []; # the response
- ${*$cmd}{'net_cmd_code'} = "000"; # Made this one up :-)
+ unless (defined($swlen = syswrite($cmd,$str,$len)) && $swlen == $len) {
+ $cmd->close;
+ $cmd->_set_status_closed;
+ return $cmd;
+ }
}
$cmd;
@@ -254,8 +282,8 @@ sub ok {
sub unsupported {
my $cmd = shift;
- ${*$cmd}{'net_cmd_resp'} = ['Unsupported command'];
- ${*$cmd}{'net_cmd_code'} = 580;
+ $cmd->set_status(580, 'Unsupported command');
+
0;
}
@@ -269,11 +297,11 @@ sub getline {
if scalar(@{${*$cmd}{'net_cmd_lines'}});
my $partial = defined(${*$cmd}{'net_cmd_partial'}) ? ${*$cmd}{'net_cmd_partial'} : "";
- my $fd = fileno($cmd);
- return undef
- unless defined $fd;
+ return
+ if $cmd->_is_closed;
+ my $fd = fileno($cmd);
my $rin = "";
vec($rin, $fd, 1) = 1;
@@ -286,10 +314,9 @@ sub getline {
my $select_ret = select($rout = $rin, undef, undef, $timeout);
if ($select_ret > 0) {
unless (sysread($cmd, $buf = "", 1024)) {
- carp(ref($cmd) . ": Unexpected EOF on command channel")
- if $cmd->debug;
$cmd->close;
- return undef;
+ $cmd->_set_status_closed;
+ return;
}
substr($buf, 0, 0) = $partial; ## prepend from last sysread
@@ -302,9 +329,8 @@ sub getline {
}
else {
- my $msg = $select_ret ? "Error or Interrupted: $!" : "Timeout";
- carp("$cmd: $msg") if ($cmd->debug);
- return undef;
+ $cmd->_set_status_timeout;
+ return;
}
}
@@ -339,7 +365,7 @@ sub response {
my $cmd = shift;
my ($code, $more) = (undef) x 2;
- ${*$cmd}{'net_cmd_resp'} ||= [];
+ $cmd->set_status($cmd->DEF_REPLY_CODE, undef); # initialize the response
while (1) {
my $str = $cmd->getline();
@@ -352,9 +378,10 @@ sub response {
($code, $more) = $cmd->parse_response($str);
unless (defined $code) {
+ carp("$cmd: response(): parse error in '$str'") if ($cmd->debug);
$cmd->ungetline($str);
$@ = $str; # $@ used as tunneling hack
- last;
+ return CMD_ERROR;
}
${*$cmd}{'net_cmd_code'} = $code;
@@ -364,7 +391,7 @@ sub response {
last unless ($more);
}
- return undef unless defined $code;
+ return unless defined $code;
substr($code, 0, 1);
}
@@ -375,7 +402,7 @@ sub read_until_dot {
my $arr = [];
while (1) {
- my $str = $cmd->getline() or return undef;
+ my $str = $cmd->getline() or return;
$cmd->debug_print(0, $str)
if ($cmd->debug & 4);
@@ -405,7 +432,8 @@ sub datasend {
# $line is a string (in internal UTF-8)
utf8::encode($line) if is_utf8($line);
- return 0 unless defined(fileno($cmd));
+ return 0
+ if $cmd->_is_closed;
my $last_ch = ${*$cmd}{'net_cmd_last_ch'};
@@ -455,16 +483,17 @@ sub datasend {
if ((defined $s and $s > 0) or -f $cmd) # -f for testing on win32
{
my $w = syswrite($cmd, $line, $len, $offset);
- unless (defined($w)) {
- carp("$cmd: $!") if $cmd->debug;
- return undef;
+ unless (defined($w) && $w == $len) {
+ $cmd->close;
+ $cmd->_set_status_closed;
+ return;
}
$len -= $w;
$offset += $w;
}
else {
- carp("$cmd: Timeout") if ($cmd->debug);
- return undef;
+ $cmd->_set_status_timeout;
+ return;
}
}
@@ -477,7 +506,8 @@ sub rawdatasend {
my $arr = @_ == 1 && ref($_[0]) ? $_[0] : \@_;
my $line = join("", @$arr);
- return 0 unless defined(fileno($cmd));
+ return 0
+ if $cmd->_is_closed;
return 1
unless length($line);
@@ -498,16 +528,17 @@ sub rawdatasend {
my $wout;
if (select(undef, $wout = $win, undef, $timeout) > 0) {
my $w = syswrite($cmd, $line, $len, $offset);
- unless (defined($w)) {
- carp("$cmd: $!") if $cmd->debug;
- return undef;
+ unless (defined($w) && $w == $len) {
+ $cmd->close;
+ $cmd->_set_status_closed;
+ return;
}
$len -= $w;
$offset += $w;
}
else {
- carp("$cmd: Timeout") if ($cmd->debug);
- return undef;
+ $cmd->_set_status_timeout;
+ return;
}
}
@@ -518,7 +549,8 @@ sub rawdatasend {
sub dataend {
my $cmd = shift;
- return 0 unless defined(fileno($cmd));
+ return 0
+ if $cmd->_is_closed;
my $ch = ${*$cmd}{'net_cmd_last_ch'};
my $tosend;
@@ -537,7 +569,14 @@ sub dataend {
$cmd->debug_print(1, ".\n")
if ($cmd->debug);
- syswrite($cmd, $tosend, length $tosend);
+ my $len = length $tosend;
+ my $w = syswrite($cmd, $tosend, $len);
+ unless (defined($w) && $w == $len)
+ {
+ $cmd->close;
+ $cmd->_set_status_closed;
+ return 0;
+ }
delete ${*$cmd}{'net_cmd_last_ch'};
@@ -659,12 +698,12 @@ debug level for a given class.
Returns the text message returned from the last command. In a scalar
context it returns a single string, in a list context it will return
-each line as a separate element
+each line as a separate element. (See L<PSEUDO RESPONSES> below.)
=item code ()
Returns the 3-digit code from the last command. If a command is pending
-then the value 0 is returned
+then the value 0 is returned. (See L<PSEUDO RESPONSES> below.)
=item ok ()
@@ -705,21 +744,21 @@ Print debugging information. C<DIR> denotes the direction I<true> being
data being sent to the server. Calls C<debug_text> before printing to
STDERR.
-=item debug_text ( TEXT )
+=item debug_text ( DIR, TEXT )
This method is called to print debugging information. TEXT is
-the text being sent. The method should return the text to be printed
+the text being sent. The method should return the text to be printed.
This is primarily meant for the use of modules such as FTP where passwords
are sent, but we do not want to display them in the debugging information.
=item command ( CMD [, ARGS, ... ])
-Send a command to the command server. All arguments a first joined with
+Send a command to the command server. All arguments are first joined with
a space character and CRLF is appended, this string is then sent to the
command server.
-Returns undef upon failure
+Returns undef upon failure.
=item unsupported ()
@@ -729,14 +768,14 @@ Returns zero.
=item response ()
Obtain a response from the server. Upon success the most significant digit
-of the status code is returned. Upon failure, timeout etc., I<undef> is
+of the status code is returned. Upon failure, timeout etc., I<CMD_ERROR> is
returned.
=item parse_response ( TEXT )
This method is called by C<response> as a method with one argument. It should
return an array of 2 values, the 3-digit status code and a flag which is true
-when this is part of a multi-line response and this line is not the list.
+when this is part of a multi-line response and this line is not the last.
=item getline ()
@@ -774,6 +813,44 @@ See the Net::POP3 and Net::SMTP modules for examples of this.
=back
+=head1 PSEUDO RESPONSES
+
+Normally the values returned by C<message()> and C<code()> are
+obtained from the remote server, but in a few circumstances, as
+detailed below, C<Net::Cmd> will return values that it sets. You
+can alter this behavior by overriding DEF_REPLY_CODE() to specify
+a different default reply code, or overriding one of the specific
+error handling methods below.
+
+=over 4
+
+=item Initial value
+
+Before any command has executed or if an unexpected error occurs
+C<code()> will return "421" (temporary connection failure) and
+C<message()> will return undef.
+
+=item Connection closed
+
+If the underlying C<IO::Handle> is closed, or if there are
+any read or write failures, the file handle will be forced closed,
+and C<code()> will return "421" (temporary connection failure)
+and C<message()> will return "[$pkg] Connection closed"
+(where $pkg is the name of the class that subclassed C<Net::Cmd>).
+The _set_status_closed() method can be overridden to set a different
+message (by calling set_status()) or otherwise trap this error.
+
+=item Timeout
+
+If there is a read or write timeout C<code()> will return "421"
+(temporary connection failure) and C<message()> will return
+"[$pkg] Timeout" (where $pkg is the name of the class
+that subclassed C<Net::Cmd>). The _set_status_timeout() method
+can be overridden to set a different message (by calling set_status())
+or otherwise trap this error.
+
+=back
+
=head1 EXPORTS
C<Net::Cmd> exports six subroutines, five of these, C<CMD_INFO>, C<CMD_OK>,
@@ -782,11 +859,17 @@ of C<response> and C<status>. The sixth is C<CMD_PENDING>.
=head1 AUTHOR
-Graham Barr <gbarr@pobox.com>
+Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
+
+Steve Hay E<lt>F<shay@cpan.org>E<gt> is now maintaining libnet as of version
+1.22_02
=head1 COPYRIGHT
-Copyright (c) 1995-2006 Graham Barr. All rights reserved.
+Versions up to 2.29_1 Copyright (c) 1995-2006 Graham Barr. All rights reserved.
+Changes in Version 2.29_2 onwards Copyright (C) 2013-2014 Steve Hay. 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/Master/tlpkg/tlperl/lib/Net/Config.pm b/Master/tlpkg/tlperl/lib/Net/Config.pm
index ba163321805..953a826a68e 100644
--- a/Master/tlpkg/tlperl/lib/Net/Config.pm
+++ b/Master/tlpkg/tlperl/lib/Net/Config.pm
@@ -1,23 +1,31 @@
# Net::Config.pm
#
-# Copyright (c) 2000 Graham Barr <gbarr@pobox.com>. All rights reserved.
+# Versions up to 1.11 Copyright (c) 2000 Graham Barr <gbarr@pobox.com>.
+# All rights reserved.
+# Changes in Version 1.11_01 onwards Copyright (C) 2013-2014 Steve Hay. All
+# rights reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
package Net::Config;
-require Exporter;
-use vars qw(@ISA @EXPORT %NetConfig $VERSION $CONFIGURE $LIBNET_CFG);
-use Socket qw(inet_aton inet_ntoa);
+use 5.008001;
+
use strict;
+use warnings;
+
+use Exporter;
+use Socket qw(inet_aton inet_ntoa);
-@EXPORT = qw(%NetConfig);
-@ISA = qw(Net::LocalCfg Exporter);
-$VERSION = "1.13";
+our @EXPORT = qw(%NetConfig);
+our @ISA = qw(Net::LocalCfg Exporter);
+our $VERSION = "3.05";
+
+our($CONFIGURE, $LIBNET_CFG);
eval { local $SIG{__DIE__}; require Net::LocalCfg };
-%NetConfig = (
+our %NetConfig = (
nntp_hosts => [],
snpp_hosts => [],
pop3_hosts => [],
@@ -36,6 +44,8 @@ eval { local $SIG{__DIE__}; require Net::LocalCfg };
#
# Try to get as much configuration info as possible from InternetConfig
#
+{
+## no critic (BuiltinFunctions::ProhibitStringyEval)
$^O eq 'MacOS' and eval <<TRY_INTERNET_CONFIG;
use Mac::InternetConfig;
@@ -49,13 +59,14 @@ my %nc = (
ftp_ext_passive => \$InternetConfig{"646F676F\xA5UsePassiveMode"} || 0,
ftp_int_passive => \$InternetConfig{"646F676F\xA5UsePassiveMode"} || 0,
socks_hosts =>
- \$InternetConfig{ kICUseSocks() } ? [ \$InternetConfig{ kICSocksHost() } ] : [],
+ \$InternetConfig{ kICUseSocks() } ? [ \$InternetConfig{ kICSocksHost() } ] : [],
ftp_firewall =>
- \$InternetConfig{ kICUseFTPProxy() } ? [ \$InternetConfig{ kICFTPProxyHost() } ] : [],
+ \$InternetConfig{ kICUseFTPProxy() } ? [ \$InternetConfig{ kICFTPProxyHost() } ] : [],
);
\@NetConfig{keys %nc} = values %nc;
}
TRY_INTERNET_CONFIG
+}
my $file = __FILE__;
my $ref;
@@ -112,7 +123,6 @@ sub requires_firewall {
return 0;
}
-use vars qw(*is_external);
*is_external = \&requires_firewall;
1;
@@ -141,7 +151,7 @@ For example
# .libnetrc
{
nntp_hosts => [ "my_preferred_host" ],
- ph_hosts => [ "my_ph_server" ],
+ ph_hosts => [ "my_ph_server" ],
}
__END__
@@ -153,7 +163,7 @@ C<Net::LocalCfg> so you can override these methods if you want.
=over 4
-=item requires_firewall HOST
+=item requires_firewall ( HOST )
Attempts to determine if a given host is outside your firewall. Possible
return values are.
diff --git a/Master/tlpkg/tlperl/lib/Net/Domain.pm b/Master/tlpkg/tlperl/lib/Net/Domain.pm
index 5b964c3d5fa..3b274a66cff 100644
--- a/Master/tlpkg/tlperl/lib/Net/Domain.pm
+++ b/Master/tlpkg/tlperl/lib/Net/Domain.pm
@@ -1,22 +1,26 @@
# Net::Domain.pm
#
-# Copyright (c) 1995-1998 Graham Barr <gbarr@pobox.com>. All rights reserved.
+# Versions up to 2.21 Copyright (c) 1995-1998 Graham Barr <gbarr@pobox.com>.
+# All rights reserved.
+# Changes in Version 2.22 onwards Copyright (C) 2013-2014 Steve Hay. All rights
+# reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
package Net::Domain;
-require Exporter;
+use 5.008001;
-use Carp;
use strict;
-use vars qw($VERSION @ISA @EXPORT_OK);
-use Net::Config;
+use warnings;
-@ISA = qw(Exporter);
-@EXPORT_OK = qw(hostname hostdomain hostfqdn domainname);
+use Carp;
+use Exporter;
+use Net::Config;
-$VERSION = "2.23";
+our @ISA = qw(Exporter);
+our @EXPORT_OK = qw(hostname hostdomain hostfqdn domainname);
+our $VERSION = "3.05";
my ($host, $domain, $fqdn) = (undef, undef, undef);
@@ -39,7 +43,7 @@ sub _hostname {
}
if (defined($host) && index($host, '.') > 0) {
$fqdn = $host;
- ($host, $domain) = $fqdn =~ /^([^\.]+)\.(.*)$/;
+ ($host, $domain) = $fqdn =~ /^([^.]+)\.(.*)$/;
}
return $host;
}
@@ -51,7 +55,7 @@ sub _hostname {
$host = $ENV{'MULTINET_HOST_NAME'} if defined($ENV{'MULTINET_HOST_NAME'});
if (index($host, '.') > 0) {
$fqdn = $host;
- ($host, $domain) = $fqdn =~ /^([^\.]+)\.(.*)$/;
+ ($host, $domain) = $fqdn =~ /^([^.]+)\.(.*)$/;
}
return $host;
}
@@ -63,12 +67,12 @@ sub _hostname {
my $tmp = "\0" x 256; ## preload scalar
eval {
package main;
- require "syscall.ph";
+ require "syscall.ph"; ## no critic (Modules::RequireBarewordIncludes)
defined(&main::SYS_gethostname);
}
|| eval {
package main;
- require "sys/syscall.ph";
+ require "sys/syscall.ph"; ## no critic (Modules::RequireBarewordIncludes)
defined(&main::SYS_gethostname);
}
and $host =
@@ -94,7 +98,7 @@ sub _hostname {
}
# Apollo pre-SR10
- || eval { $host = (split(/[:\. ]/, `/com/host`, 6))[0]; }
+ || eval { $host = (split(/[:. ]/, `/com/host`, 6))[0]; }
|| eval { $host = ""; };
}
@@ -124,15 +128,14 @@ sub _hostdomain {
# calls to gethostbyname, and therefore DNS lookups. This helps
# those on dialup systems.
- local *RES;
local ($_);
- if (open(RES, "/etc/resolv.conf")) {
- while (<RES>) {
+ if (open(my $res, '<', "/etc/resolv.conf")) {
+ while (<$res>) {
$domain = $1
if (/\A\s*(?:domain|search)\s+(\S+)/);
}
- close(RES);
+ close($res);
return $domain
if (defined $domain);
@@ -151,11 +154,11 @@ sub _hostdomain {
my $tmp = "\0" x 256; ## preload scalar
eval {
package main;
- require "syscall.ph";
+ require "syscall.ph"; ## no critic (Modules::RequireBarewordIncludes)
}
|| eval {
package main;
- require "sys/syscall.ph";
+ require "sys/syscall.ph"; ## no critic (Modules::RequireBarewordIncludes)
}
and $dom =
(syscall(&main::SYS_getdomainname, $tmp, 256) == 0)
@@ -190,13 +193,12 @@ sub _hostdomain {
next unless @info;
# look at real name & aliases
- my $site;
- foreach $site ($info[0], split(/ /, $info[1])) {
+ foreach my $site ($info[0], split(/ /, $info[1])) {
if (rindex($site, ".") > 0) {
# Extract domain from FQDN
- ($domain = $site) =~ s/\A[^\.]+\.//;
+ ($domain = $site) =~ s/\A[^.]+\.//;
return $domain;
}
}
@@ -342,12 +344,18 @@ Returns the remainder of the FQDN after the I<hostname> has been removed.
=head1 AUTHOR
-Graham Barr <gbarr@pobox.com>.
-Adapted from Sys::Hostname by David Sundstrom <sunds@asictest.sc.ti.com>
+Graham Barr E<lt>F<gbarr@pobox.com>E<gt>.
+Adapted from Sys::Hostname by David Sundstrom E<lt>F<sunds@asictest.sc.ti.com>E<gt>
+
+Steve Hay E<lt>F<shay@cpan.org>E<gt> is now maintaining libnet as of version
+1.22_02
=head1 COPYRIGHT
-Copyright (c) 1995-1998 Graham Barr. All rights reserved.
+Versions up to 2.21 Copyright (c) 1995-1998 Graham Barr. All rights reserved.
+Changes in Version 2.22 onwards Copyright (C) 2013-2014 Steve Hay. 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/Master/tlpkg/tlperl/lib/Net/FTP.pm b/Master/tlpkg/tlperl/lib/Net/FTP.pm
index 8107ef77e65..c791fac502f 100644
--- a/Master/tlpkg/tlperl/lib/Net/FTP.pm
+++ b/Master/tlpkg/tlperl/lib/Net/FTP.pm
@@ -1,6 +1,9 @@
# Net::FTP.pm
#
-# Copyright (c) 1995-2004 Graham Barr <gbarr@pobox.com>. All rights reserved.
+# Versions up to 2.77_2 Copyright (c) 1995-2004 Graham Barr <gbarr@pobox.com>.
+# All rights reserved.
+# Changes in Version 2.77_3 onwards Copyright (C) 2013-2014 Steve Hay. All
+# rights reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
#
@@ -8,36 +11,58 @@
package Net::FTP;
-require 5.001;
+use 5.008001;
use strict;
-use vars qw(@ISA $VERSION);
-use Carp;
+use warnings;
-use Socket 1.3;
+use Carp;
+use Fcntl qw(O_WRONLY O_RDONLY O_APPEND O_CREAT O_TRUNC);
use IO::Socket;
-use Time::Local;
use Net::Cmd;
use Net::Config;
-use Fcntl qw(O_WRONLY O_RDONLY O_APPEND O_CREAT O_TRUNC);
-
-$VERSION = '2.79';
-@ISA = qw(Exporter Net::Cmd IO::Socket::INET);
-
-# Someday I will "use constant", when I am not bothered to much about
-# compatibility with older releases of perl
-
-use vars qw($TELNET_IAC $TELNET_IP $TELNET_DM);
-($TELNET_IAC, $TELNET_IP, $TELNET_DM) = (255, 244, 242);
+use Socket;
+use Time::Local;
+our $VERSION = '3.05';
+our $IOCLASS;
BEGIN {
-
- # make a constant so code is fast'ish
- my $is_os390 = $^O eq 'os390';
- *trEBCDIC = sub () {$is_os390}
+ # Code for detecting if we can use SSL
+ my $ssl_class = eval {
+ require IO::Socket::SSL;
+ # first version with default CA on most platforms
+ no warnings 'numeric';
+ IO::Socket::SSL->VERSION(2.007);
+ } && 'IO::Socket::SSL';
+
+ my $nossl_warn = !$ssl_class &&
+ 'To use SSL please install IO::Socket::SSL with version>=2.007';
+
+ # Code for detecting if we can use IPv6
+ my $inet6_class = eval {
+ require IO::Socket::IP;
+ no warnings 'numeric';
+ IO::Socket::IP->VERSION(0.20);
+ } && 'IO::Socket::IP' || eval {
+ require IO::Socket::INET6;
+ no warnings 'numeric';
+ IO::Socket::INET6->VERSION(2.62);
+ } && 'IO::Socket::INET6';
+
+ sub can_ssl { $ssl_class };
+ sub can_inet6 { $inet6_class };
+
+ $IOCLASS = $ssl_class || $inet6_class || 'IO::Socket::INET';
}
+our @ISA = ('Exporter','Net::Cmd',$IOCLASS);
+
+use constant TELNET_IAC => 255;
+use constant TELNET_IP => 244;
+use constant TELNET_DM => 242;
+
+use constant EBCDIC => $^O eq 'os390';
sub new {
my $pkg = shift;
@@ -71,16 +96,34 @@ sub new {
}
}
+ my %tlsargs;
+ if (can_ssl()) {
+ # for name verification strip port from domain:port, ipv4:port, [ipv6]:port
+ (my $hostname = $host) =~s{(?<!:):\d+$}{};
+ %tlsargs = (
+ SSL_verifycn_scheme => 'ftp',
+ SSL_verifycn_name => $hostname,
+ # use SNI if supported by IO::Socket::SSL
+ $pkg->can_client_sni ? (SSL_hostname => $hostname):(),
+ # reuse SSL session of control connection in data connections
+ SSL_session_cache => Net::FTP::_SSL_SingleSessionCache->new,
+ );
+ # user defined SSL arg
+ $tlsargs{$_} = $arg{$_} for(grep { m{^SSL_} } keys %arg);
+
+ } elsif ($arg{SSL}) {
+ croak("IO::Socket::SSL >= 2.007 needed for SSL support");
+ }
+
my $ftp = $pkg->SUPER::new(
PeerAddr => $peer,
- PeerPort => $arg{Port} || 'ftp(21)',
+ PeerPort => $arg{Port} || ($arg{SSL} ? 'ftps(990)' : 'ftp(21)'),
LocalAddr => $arg{'LocalAddr'},
Proto => 'tcp',
- Timeout => defined $arg{Timeout}
- ? $arg{Timeout}
- : 120
- )
- or return undef;
+ Timeout => defined $arg{Timeout} ? $arg{Timeout} : 120,
+ %tlsargs,
+ $arg{SSL} ? ():( SSL_startHandshake => 0 ),
+ ) or return;
${*$ftp}{'net_ftp_host'} = $host; # Remote hostname
${*$ftp}{'net_ftp_type'} = 'A'; # ASCII/binary/etc mode
@@ -99,6 +142,12 @@ sub new {
: defined $fire ? $NetConfig{ftp_ext_passive}
: $NetConfig{ftp_int_passive}; # Whew! :-)
+ ${*$ftp}{net_ftp_tlsargs} = \%tlsargs if %tlsargs;
+ if ($arg{SSL}) {
+ ${*$ftp}{net_ftp_tlsprot} = 'P';
+ ${*$ftp}{net_ftp_tlsdirect} = 1;
+ }
+
$ftp->hash(exists $arg{Hash} ? $arg{Hash} : 0, 1024);
$ftp->autoflush(1);
@@ -223,10 +272,9 @@ sub size {
}
elsif ($ftp->supported("STAT")) {
my @msg;
- return undef
+ return
unless $ftp->_STAT($file) && (@msg = $ftp->message) == 3;
- my $line;
- foreach $line (@msg) {
+ foreach my $line (@msg) {
return (split(/\s+/, $line))[4]
if $line =~ /^[-rwxSsTt]{10}/;
}
@@ -242,6 +290,35 @@ sub size {
}
+sub starttls {
+ my $ftp = shift;
+ can_ssl() or croak("IO::Socket::SSL >= 2.007 needed for SSL support");
+ $ftp->is_SSL and croak("called starttls within SSL session");
+ $ftp->_AUTH('TLS') == CMD_OK or return;
+
+ $ftp->connect_SSL or return;
+ $ftp->prot('P');
+ return 1;
+}
+
+sub prot {
+ my ($ftp,$prot) = @_;
+ $prot eq 'C' or $prot eq 'P' or croak("prot must by C or P");
+ $ftp->_PBSZ(0) or return;
+ $ftp->_PROT($prot) or return;
+ ${*$ftp}{net_ftp_tlsprot} = $prot;
+ return 1;
+}
+
+sub stoptls {
+ my $ftp = shift;
+ $ftp->is_SSL or croak("called stoptls outside SSL session");
+ ${*$ftp}{net_ftp_tlsdirect} and croak("cannot stoptls direct SSL session");
+ $ftp->_CCC() or return;
+ $ftp->stop_SSL();
+ return 1;
+}
+
sub login {
my ($ftp, $user, $pass, $acct) = @_;
my ($ok, $ruser, $fwtype);
@@ -400,7 +477,7 @@ sub type {
return $oldval
unless (defined $type);
- return undef
+ return
unless ($ftp->_TYPE($type, @_));
${*$ftp}{'net_ftp_type'} = join(" ", $type, @_);
@@ -417,8 +494,8 @@ sub alloc {
return $oldval
unless (defined $size);
- return undef
- unless ($ftp->_ALLO($size, @_));
+ return
+ unless ($ftp->supported("ALLO") and $ftp->_ALLO($size, @_));
${*$ftp}{'net_ftp_allo'} = join(" ", $size, @_);
@@ -429,9 +506,9 @@ sub alloc {
sub abort {
my $ftp = shift;
- send($ftp, pack("CCC", $TELNET_IAC, $TELNET_IP, $TELNET_IAC), MSG_OOB);
+ send($ftp, pack("CCC", TELNET_IAC, TELNET_IP, TELNET_IAC), MSG_OOB);
- $ftp->command(pack("C", $TELNET_DM) . "ABOR");
+ $ftp->command(pack("C", TELNET_DM) . "ABOR");
${*$ftp}{'net_ftp_dataconn'}->close()
if defined ${*$ftp}{'net_ftp_dataconn'};
@@ -463,7 +540,7 @@ sub get {
delete ${*$ftp}{'net_ftp_pasv'};
$data = $ftp->retr($remote)
- or return undef;
+ or return;
if ($localfd) {
$loc = $local;
@@ -474,7 +551,7 @@ sub get {
unless (sysopen($loc, $local, O_CREAT | O_WRONLY | ($rest ? O_APPEND: O_TRUNC))) {
carp "Cannot open Local file $local: $!\n";
$data->abort;
- return undef;
+ return;
}
}
@@ -482,7 +559,7 @@ sub get {
carp "Cannot binmode Local file $local: $!\n";
$data->abort;
close($loc) unless $localfd;
- return undef;
+ return;
}
$buf = '';
@@ -497,7 +574,7 @@ sub get {
while (1) {
last unless $len = $data->read($buf, $blksize);
- if (trEBCDIC && $ftp->type ne 'I') {
+ if (EBCDIC && $ftp->type ne 'I') {
$buf = $ftp->toebcdic($buf);
$len = length($buf);
}
@@ -512,7 +589,7 @@ sub get {
$data->abort;
close($loc)
unless $localfd;
- return undef;
+ return;
}
}
@@ -521,14 +598,14 @@ sub get {
unless ($localfd) {
unless (close($loc)) {
carp "Cannot close file $local (perhaps disk space) $!\n";
- return undef;
+ return;
}
}
unless ($data->close()) # implied $ftp->response
{
carp "Unable to close datastream";
- return undef;
+ return;
}
return $local;
@@ -587,15 +664,14 @@ sub rmdir {
# Get a list of all the files in the directory
my @filelist = grep { !/^\.{1,2}$/ } $ftp->ls($dir);
- return undef
+ return
unless @filelist; # failed, it is probably not a directory
return $ftp->delete($dir)
if @filelist == 1 and $dir eq $filelist[0];
# Go thru and delete each file or the directory
- my $file;
- foreach $file (map { m,/, ? $_ : "$dir/$_" } @filelist) {
+ foreach my $file (map { m,/, ? $_ : "$dir/$_" } @filelist) {
next # successfully deleted the file
if $ftp->delete($file);
@@ -622,7 +698,7 @@ sub restart {
${*$ftp}{'net_ftp_rest'} = $where;
- return undef;
+ return;
}
@@ -632,7 +708,7 @@ sub mkdir {
my ($ftp, $dir, $recurse) = @_;
$ftp->_MKD($dir) || $recurse
- or return undef;
+ or return;
my $path = $dir;
@@ -728,20 +804,20 @@ sub _store_cmd {
unless (sysopen($loc, $local, O_RDONLY)) {
carp "Cannot open Local file $local: $!\n";
- return undef;
+ return;
}
}
if ($ftp->type eq 'I' && !binmode($loc)) {
carp "Cannot binmode Local file $local: $!\n";
- return undef;
+ return;
}
delete ${*$ftp}{'net_ftp_port'};
delete ${*$ftp}{'net_ftp_pasv'};
$sock = $ftp->_data_cmd($cmd, grep { defined } $remote)
- or return undef;
+ or return;
$remote = ($ftp->message =~ /\w+\s*:\s*(.*)/)[0]
if 'STOU' eq uc $cmd;
@@ -756,7 +832,7 @@ sub _store_cmd {
while (1) {
last unless $len = read($loc, $buf = "", $blksize);
- if (trEBCDIC && $ftp->type ne 'I') {
+ if (EBCDIC && $ftp->type ne 'I') {
$buf = $ftp->toascii($buf);
$len = length($buf);
}
@@ -773,7 +849,7 @@ sub _store_cmd {
close($loc)
unless $localfd;
print $hashh "\n" if $hashh;
- return undef;
+ return;
}
}
@@ -783,7 +859,7 @@ sub _store_cmd {
unless $localfd;
$sock->close()
- or return undef;
+ or return;
if ('STOU' eq uc $cmd and $ftp->message =~ m/unique\s+file\s*name\s*:\s*(.*)\)|"(.*)"/) {
require File::Basename;
@@ -795,38 +871,43 @@ sub _store_cmd {
sub port {
- @_ == 1 || @_ == 2 or croak 'usage: $ftp->port([PORT])';
-
- my ($ftp, $port) = @_;
- my $ok;
-
- delete ${*$ftp}{'net_ftp_intern_port'};
-
- unless (defined $port) {
+ @_ == 1 || @_ == 2 or croak 'usage: $self->port([PORT])';
+ return _eprt('PORT',@_);
+}
- # create a Listen socket at same address as the command socket
+sub eprt {
+ @_ == 1 || @_ == 2 or croak 'usage: $self->eprt([PORT])';
+ return _eprt('EPRT',@_);
+}
- ${*$ftp}{'net_ftp_listen'} ||= IO::Socket::INET->new(
- Listen => 5,
- Proto => 'tcp',
+sub _eprt {
+ my ($cmd,$ftp,$port) = @_;
+ delete ${*$ftp}{net_ftp_intern_port};
+ unless ($port) {
+ my $listen = ${*$ftp}{net_ftp_listen} ||= $IOCLASS->new(
+ Listen => 1,
Timeout => $ftp->timeout,
LocalAddr => $ftp->sockhost,
+ can_ssl() ? (
+ %{ ${*$ftp}{net_ftp_tlsargs} },
+ SSL_startHandshake => 0,
+ ):(),
);
-
- my $listen = ${*$ftp}{'net_ftp_listen'};
-
- my ($myport, @myaddr) = ($listen->sockport, split(/\./, $listen->sockhost));
-
- $port = join(',', @myaddr, $myport >> 8, $myport & 0xff);
-
- ${*$ftp}{'net_ftp_intern_port'} = 1;
+ ${*$ftp}{net_ftp_intern_port} = 1;
+ my $fam = ($listen->sockdomain == AF_INET) ? 1:2;
+ if ( $cmd eq 'EPRT' || $fam == 2 ) {
+ $port = "|$fam|".$listen->sockhost."|".$listen->sockport."|";
+ $cmd = 'EPRT';
+ } else {
+ my $p = $listen->sockport;
+ $port = join(',',split(m{\.},$listen->sockhost),$p >> 8,$p & 0xff);
+ }
+ } elsif (ref($port) eq 'ARRAY') {
+ $port = join(',',split(m{\.},@$port[0]),@$port[1] >> 8,@$port[1] & 0xff);
}
-
- $ok = $ftp->_PORT($port);
-
- ${*$ftp}{'net_ftp_port'} = $port;
-
- $ok;
+ my $ok = $cmd eq 'EPRT' ? $ftp->_EPRT($port) : $ftp->_PORT($port);
+ ${*$ftp}{net_ftp_port} = $port if $ok;
+ return $ok;
}
@@ -835,14 +916,27 @@ sub dir { shift->_list_cmd("LIST", @_); }
sub pasv {
- @_ == 1 or croak 'usage: $ftp->pasv()';
-
my $ftp = shift;
+ @_ and croak 'usage: $ftp->port()';
+ return $ftp->epsv if $ftp->sockdomain != AF_INET;
+ delete ${*$ftp}{net_ftp_intern_port};
+
+ if ( $ftp->_PASV &&
+ $ftp->message =~ m{(\d+,\d+,\d+,\d+),(\d+),(\d+)} ) {
+ my $port = 256 * $2 + $3;
+ ( my $ip = $1 ) =~s{,}{.}g;
+ return ${*$ftp}{net_ftp_pasv} = [ $ip,$port ];
+ }
+ return;
+}
- delete ${*$ftp}{'net_ftp_intern_port'};
+sub epsv {
+ my $ftp = shift;
+ @_ and croak 'usage: $ftp->epsv()';
+ delete ${*$ftp}{net_ftp_intern_port};
- $ftp->_PASV && $ftp->message =~ /(\d+(,\d+)+)/
- ? ${*$ftp}{'net_ftp_pasv'} = $1
+ $ftp->_EPSV && $ftp->message =~ m{\(([\x33-\x7e])\1\1(\d+)\1\)}
+ ? ${*$ftp}{net_ftp_pasv} = [ $ftp->peerhost, $2 ]
: undef;
}
@@ -869,7 +963,7 @@ sub supported {
unless $ftp->_HELP($cmd);
my $text = $ftp->message;
- if ($text =~ /following\s+commands/i) {
+ if ($text =~ /following.+commands/i) {
$text =~ s/^.*\n//;
while ($text =~ /(\*?)(\w+)(\*?)/sg) {
$hash->{"\U$2"} = !length("$1$3");
@@ -926,41 +1020,55 @@ sub _extract_path {
sub _dataconn {
- my $ftp = shift;
- my $data = undef;
- my $pkg = "Net::FTP::" . $ftp->type;
-
- eval "require " . $pkg;
-
+ my $ftp = shift;
+ my $pkg = "Net::FTP::" . $ftp->type;
+ eval "require " . $pkg ## no critic (BuiltinFunctions::ProhibitStringyEval)
+ or croak("cannot load $pkg required for type ".$ftp->type);
$pkg =~ s/ /_/g;
-
- delete ${*$ftp}{'net_ftp_dataconn'};
-
- if (defined ${*$ftp}{'net_ftp_pasv'}) {
- my @port = map { 0 + $_ } split(/,/, ${*$ftp}{'net_ftp_pasv'});
-
- $data = $pkg->new(
- PeerAddr => join(".", @port[0 .. 3]),
- PeerPort => $port[4] * 256 + $port[5],
- LocalAddr => ${*$ftp}{'net_ftp_localaddr'},
- Proto => 'tcp',
- Timeout => $ftp->timeout
- );
- }
- elsif (defined ${*$ftp}{'net_ftp_listen'}) {
- $data = ${*$ftp}{'net_ftp_listen'}->accept($pkg);
- close(delete ${*$ftp}{'net_ftp_listen'});
+ delete ${*$ftp}{net_ftp_dataconn};
+
+ my $conn;
+ my $pasv = ${*$ftp}{net_ftp_pasv};
+ if ($pasv) {
+ $conn = $pkg->new(
+ PeerAddr => $pasv->[0],
+ PeerPort => $pasv->[1],
+ LocalAddr => ${*$ftp}{net_ftp_localaddr},
+ Timeout => $ftp->timeout,
+ can_ssl() ? (
+ SSL_startHandshake => 0,
+ $ftp->is_SSL ? (
+ SSL_reuse_ctx => $ftp,
+ SSL_verifycn_name => ${*$ftp}{net_ftp_tlsargs}{SSL_verifycn_name},
+ # This will cause the use of SNI if supported by IO::Socket::SSL.
+ $ftp->can_client_sni ? (
+ SSL_hostname => ${*$ftp}{net_ftp_tlsargs}{SSL_hostname}
+ ):(),
+ ) :( %{${*$ftp}{net_ftp_tlsargs}} ),
+ ):(),
+ ) or return;
+ } elsif (my $listen = delete ${*$ftp}{net_ftp_listen}) {
+ $conn = $listen->accept($pkg) or return;
+ $conn->timeout($ftp->timeout);
+ close($listen);
+ } else {
+ croak("no listener in active mode");
}
- if ($data) {
- ${*$data} = "";
- $data->timeout($ftp->timeout);
- ${*$ftp}{'net_ftp_dataconn'} = $data;
- ${*$data}{'net_ftp_cmd'} = $ftp;
- ${*$data}{'net_ftp_blksize'} = ${*$ftp}{'net_ftp_blksize'};
+ if (( ${*$ftp}{net_ftp_tlsprot} || '') eq 'P') {
+ if ($conn->connect_SSL) {
+ # SSL handshake ok
+ } else {
+ carp("failed to ssl upgrade dataconn: $IO::Socket::SSL::SSL_ERROR");
+ return;
+ }
}
- $data;
+ ${*$ftp}{net_ftp_dataconn} = $conn;
+ ${*$conn} = "";
+ ${*$conn}{net_ftp_cmd} = $ftp;
+ ${*$conn}{net_ftp_blksize} = ${*$ftp}{net_ftp_blksize};
+ return $conn;
}
@@ -991,7 +1099,7 @@ sub _list_cmd {
$data->close();
- if (trEBCDIC) {
+ if (EBCDIC) {
for (@$list) { $_ = $ftp->toebcdic($_) }
}
@@ -1008,7 +1116,7 @@ sub _data_cmd {
my $where = delete ${*$ftp}{'net_ftp_rest'} || 0;
my $arg;
- for $arg (@_) {
+ for my $arg (@_) {
croak("Bad argument '$arg'\n")
if $arg =~ /[\r\n]/s;
}
@@ -1017,27 +1125,28 @@ sub _data_cmd {
&& !defined ${*$ftp}{'net_ftp_pasv'}
&& !defined ${*$ftp}{'net_ftp_port'})
{
- my $data = undef;
-
- return undef unless defined $ftp->pasv;
- $data = $ftp->_dataconn() or return undef;
+ return unless defined $ftp->pasv;
if ($where and !$ftp->_REST($where)) {
my ($status, $message) = ($ftp->status, $ftp->message);
$ftp->abort;
$ftp->set_status($status, $message);
- return undef;
+ return;
}
+ # first send command, then open data connection
+ # otherwise the peer might not do a full accept (with SSL
+ # handshake if PROT P)
$ftp->command($cmd, @_);
+ my $data = $ftp->_dataconn();
if (CMD_INFO == $ftp->response()) {
$data->reading
- if $cmd =~ /RETR|LIST|NLST/;
+ if $data && $cmd =~ /RETR|LIST|NLST/;
return $data;
}
- $data->_close;
+ $data->_close if $data;
- return undef;
+ return;
}
$ok = $ftp->port
@@ -1047,12 +1156,14 @@ sub _data_cmd {
$ok = $ftp->_REST($where)
if $ok && $where;
- return undef
+ return
unless $ok;
- if ($cmd =~ /(STOR|APPE|STOU)/ and exists ${*$ftp}{net_ftp_allo}) {
+ if ($cmd =~ /(STOR|APPE|STOU)/ and exists ${*$ftp}{net_ftp_allo} and
+ $ftp->supported("ALLO"))
+ {
$ftp->_ALLO(delete ${*$ftp}{net_ftp_allo})
- or return undef;
+ or return;
}
$ftp->command($cmd, @_);
@@ -1077,7 +1188,7 @@ sub _data_cmd {
close(delete ${*$ftp}{'net_ftp_listen'});
- return undef;
+ return;
}
##
@@ -1139,19 +1250,19 @@ sub pasv_xfer {
unless (defined $dfile);
my $port = $sftp->pasv
- or return undef;
+ or return;
$dftp->port($port)
- or return undef;
+ or return;
- return undef
+ return
unless ($unique ? $dftp->stou($dfile) : $dftp->stor($dfile));
unless ($sftp->retr($sfile) && $sftp->response == CMD_INFO) {
$sftp->retr($sfile);
$dftp->abort;
$dftp->response();
- return undef;
+ return;
}
$dftp->pasv_wait($sftp);
@@ -1170,10 +1281,10 @@ sub pasv_wait {
my $dres = $ftp->response();
my $sres = $non_pasv->response();
- return undef
+ return
unless $dres == CMD_OK && $sres == CMD_OK;
- return undef
+ return
unless $ftp->ok() && $non_pasv->ok();
return $1
@@ -1214,7 +1325,7 @@ sub cmd { shift->command(@_)->response() }
########################################
#
-# RFC959 commands
+# RFC959 + RFC2428 + RFC4217 commands
#
@@ -1238,6 +1349,11 @@ sub _SIZE { shift->command("SIZE", @_)->response() == CMD_OK }
sub _HELP { shift->command("HELP", @_)->response() == CMD_OK }
sub _STAT { shift->command("STAT", @_)->response() == CMD_OK }
sub _FEAT { shift->command("FEAT", @_)->response() == CMD_OK }
+sub _PBSZ { shift->command("PBSZ", @_)->response() == CMD_OK }
+sub _PROT { shift->command("PROT", @_)->response() == CMD_OK }
+sub _CCC { shift->command("CCC", @_)->response() == CMD_OK }
+sub _EPRT { shift->command("EPRT", @_)->response() == CMD_OK }
+sub _EPSV { shift->command("EPSV", @_)->response() == CMD_OK }
sub _APPE { shift->command("APPE", @_)->response() == CMD_INFO }
sub _LIST { shift->command("LIST", @_)->response() == CMD_INFO }
sub _NLST { shift->command("NLST", @_)->response() == CMD_INFO }
@@ -1269,6 +1385,26 @@ sub _SYST { shift->unsupported(@_) }
sub _STRU { shift->unsupported(@_) }
sub _REIN { shift->unsupported(@_) }
+{
+ # Session Cache with single entry
+ # used to make sure that we reuse same session for control and data channels
+ package Net::FTP::_SSL_SingleSessionCache;
+ sub new { my $x; return bless \$x,shift }
+ sub add_session {
+ my ($cache,$key,$session) = @_;
+ Net::SSLeay::SESSION_free($$cache) if $$cache;
+ $$cache = $session;
+ }
+ sub get_session {
+ my $cache = shift;
+ return $$cache
+ }
+ sub DESTROY {
+ my $cache = shift;
+ Net::SSLeay::SESSION_free($$cache) if $$cache;
+ }
+}
+
1;
__END__
@@ -1330,7 +1466,9 @@ EBCDIC format. Binary (also known as image) format sends the data as
a contiguous bit stream. Byte format transfers the data as bytes, the
values of which remain the same regardless of differences in byte size
between the two machines (in theory - in practice you should only use
-this if you really know what you're doing).
+this if you really know what you're doing). This class does not support
+the EBCDIC or byte formats, and will default to binary instead if they
+are attempted.
=head1 CONSTRUCTOR
@@ -1352,7 +1490,6 @@ the C<PeerAddr> option in L<IO::Socket::INET>, or a reference to
an array with hosts to try in turn. The L</host> method will return the value
which was used to connect to the host.
-
B<Firewall> - The name of a machine which acts as an FTP firewall. This can be
overridden by an environment variable C<FTP_FIREWALL>. If specified, and the
given host cannot be directly connected to, then the
@@ -1371,6 +1508,13 @@ transfers. (defaults to 10240)
B<Port> - The port number to connect to on the remote machine for the
FTP connection
+B<SSL> - If the connection should be done from start with SSL, contrary to later
+upgrade with C<starttls>.
+
+B<SSL_*> - SSL arguments which will be applied when upgrading the control or
+data connection to SSL. You can use SSL arguments as documented in
+L<IO::Socket::SSL>, but it will usually use the right arguments already.
+
B<Timeout> - Set a timeout value in seconds (defaults to 120)
B<Debug> - debug level (see the debug method in L<Net::Cmd>)
@@ -1427,6 +1571,33 @@ will be used for password.
If the connection is via a firewall then the C<authorize> method will
be called with no arguments.
+=item starttls ()
+
+Upgrade existing plain connection to SSL.
+The SSL arguments have to be given in C<new> already because they are needed for
+data connections too.
+
+=item stoptls ()
+
+Downgrade existing SSL connection back to plain.
+This is needed to work with some FTP helpers at firewalls, which need to see the
+PORT and PASV commands and responses to dynamically open the necessary ports.
+In this case C<starttls> is usually only done to protect the authorization.
+
+=item prot ( LEVEL )
+
+Set what type of data channel protection the client and server will be using.
+Only C<LEVEL>s "C" (clear) and "P" (private) are supported.
+
+=item host ()
+
+Returns the value used by the constructor, and passed to IO::Socket::INET,
+to connect to the host.
+
+=item account( ACCT )
+
+Set a string identifying the user's account.
+
=item authorize ( [AUTH [, RESP]])
This is a protocol used by some firewall ftp proxies. It is used
@@ -1439,17 +1610,21 @@ Send a SITE command to the remote server and wait for a response.
Returns most significant digit of the response code.
-=item ascii
+=item ascii ()
Transfer file in ASCII. CRLF translation will be done if required
-=item binary
+=item binary ()
Transfer file in binary mode. No transformation will be done.
B<Hint>: If both server and client machines use the same line ending for
text files, then it will be faster to transfer all files in binary mode.
+=item type ( [ TYPE ] )
+
+Set or get if files will be transferred in ASCII or binary mode.
+
=item rename ( OLDNAME, NEWNAME )
Rename a file on the remote FTP server from C<OLDNAME> to C<NEWNAME>. This
@@ -1664,16 +1839,19 @@ C<put_unique> and those that do not require data connections.
=over 4
=item port ( [ PORT ] )
+=item eprt ( [ PORT ] )
-Send a C<PORT> command to the server. If C<PORT> is specified then it is sent
-to the server. If not, then a listen socket is created and the correct information
-sent to the server.
+Send a C<PORT> (IPv4) or C<EPRT> (IPv6) command to the server. If C<PORT> is
+specified then it is sent to the server. If not, then a listen socket is created
+and the correct information sent to the server.
=item pasv ()
+=item epsv ()
-Tell the server to go into passive mode. Returns the text that represents the
-port on which the server is listening, this text is in a suitable form to
-sent to another ftp server using the C<port> method.
+Tell the server to go into passive mode (C<pasv> for IPv4, C<epsv> for IPv6).
+Returns the text that represents the port on which the server is listening, this
+text is in a suitable form to send to another ftp server using the C<port> or
+C<eprt> method.
=back
@@ -1723,49 +1901,21 @@ Returns most significant digit of the response code.
B<WARNING> This call should only be used on commands that do not require
data connections. Misuse of this method can hang the connection.
-=back
-
-=head1 THE dataconn CLASS
-
-Some of the methods defined in C<Net::FTP> return an object which will
-be derived from this class.The dataconn class itself is derived from
-the C<IO::Socket::INET> class, so any normal IO operations can be performed.
-However the following methods are defined in the dataconn class and IO should
-be performed using these.
-
-=over 4
-
-=item read ( BUFFER, SIZE [, TIMEOUT ] )
+=item can_inet6 ()
-Read C<SIZE> bytes of data from the server and place it into C<BUFFER>, also
-performing any <CRLF> translation necessary. C<TIMEOUT> is optional, if not
-given, the timeout value from the command connection will be used.
+Returns whether we can use IPv6.
-Returns the number of bytes read before any <CRLF> translation.
+=item can_ssl ()
-=item write ( BUFFER, SIZE [, TIMEOUT ] )
+Returns whether we can use SSL.
-Write C<SIZE> bytes of data from C<BUFFER> to the server, also
-performing any <CRLF> translation necessary. C<TIMEOUT> is optional, if not
-given, the timeout value from the command connection will be used.
-
-Returns the number of bytes written before any <CRLF> translation.
-
-=item bytes_read ()
-
-Returns the number of bytes read so far.
-
-=item abort ()
-
-Abort the current data transfer.
-
-=item close ()
+=back
-Close the data connection and get a response from the FTP server. Returns
-I<true> if the connection was closed successfully and the first digit of
-the response from the server was a '2'.
+=head1 THE dataconn CLASS
-=back
+Some of the methods defined in C<Net::FTP> return an object which will
+be derived from the C<Net::FTP::dataconn> class. See L<Net::FTP::dataconn> for
+more details.
=head1 UNIMPLEMENTED
@@ -1820,15 +1970,21 @@ run of your program which does yield the problem.
=head1 AUTHOR
-Graham Barr <gbarr@pobox.com>
+Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
+
+Steve Hay E<lt>F<shay@cpan.org>E<gt> is now maintaining libnet as of version
+1.22_02
=head1 SEE ALSO
-L<Net::Netrc>
-L<Net::Cmd>
+L<Net::Netrc>,
+L<Net::Cmd>,
+L<IO::Socket::SSL>
-ftp(1), ftpd(8), RFC 959
+ftp(1), ftpd(8), RFC 959, RFC 2428, RFC 4217
http://www.ietf.org/rfc/rfc959.txt
+http://www.ietf.org/rfc/rfc2428.txt
+http://www.ietf.org/rfc/rfc4217.txt
=head1 USE EXAMPLES
@@ -1854,7 +2010,10 @@ Roderick Schertler <roderick@gate.net> - for various inputs
=head1 COPYRIGHT
-Copyright (c) 1995-2004 Graham Barr. All rights reserved.
+Versions up to 2.77_2 Copyright (c) 1995-2004 Graham Barr. All rights reserved.
+Changes in Version 2.77_3 onwards Copyright (C) 2013-2014 Steve Hay. 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/Master/tlpkg/tlperl/lib/Net/FTP/A.pm b/Master/tlpkg/tlperl/lib/Net/FTP/A.pm
index c117d6937d4..9f83e6c7909 100644
--- a/Master/tlpkg/tlperl/lib/Net/FTP/A.pm
+++ b/Master/tlpkg/tlperl/lib/Net/FTP/A.pm
@@ -3,15 +3,19 @@
##
package Net::FTP::A;
+
+use 5.008001;
+
use strict;
-use vars qw(@ISA $buf $VERSION);
-use Carp;
+use warnings;
-require Net::FTP::dataconn;
+use Carp;
+use Net::FTP::dataconn;
-@ISA = qw(Net::FTP::dataconn);
-$VERSION = "1.19";
+our @ISA = qw(Net::FTP::dataconn);
+our $VERSION = "3.05";
+our $buf;
sub read {
my $data = shift;
@@ -42,7 +46,7 @@ sub read {
: undef;
}
else {
- return undef
+ return
unless defined $n;
${*$data}{'net_ftp_eof'} = 1;
@@ -100,7 +104,7 @@ sub write {
$off += $wrote;
$wrote = syswrite($data, substr($tmp, $off), $len > $blksize ? $blksize : $len);
- return undef
+ return
unless defined($wrote);
$len -= $wrote;
}
diff --git a/Master/tlpkg/tlperl/lib/Net/FTP/E.pm b/Master/tlpkg/tlperl/lib/Net/FTP/E.pm
index d480cd72955..1984a0e30bd 100644
--- a/Master/tlpkg/tlperl/lib/Net/FTP/E.pm
+++ b/Master/tlpkg/tlperl/lib/Net/FTP/E.pm
@@ -1,8 +1,13 @@
package Net::FTP::E;
-require Net::FTP::I;
+use 5.008001;
-@ISA = qw(Net::FTP::I);
-$VERSION = "0.01";
+use strict;
+use warnings;
+
+use Net::FTP::I;
+
+our @ISA = qw(Net::FTP::I);
+our $VERSION = "3.05";
1;
diff --git a/Master/tlpkg/tlperl/lib/Net/FTP/I.pm b/Master/tlpkg/tlperl/lib/Net/FTP/I.pm
index 449bb99eab6..c388d8fe8ac 100644
--- a/Master/tlpkg/tlperl/lib/Net/FTP/I.pm
+++ b/Master/tlpkg/tlperl/lib/Net/FTP/I.pm
@@ -4,14 +4,18 @@
package Net::FTP::I;
-use vars qw(@ISA $buf $VERSION);
-use Carp;
+use 5.008001;
+
+use strict;
+use warnings;
-require Net::FTP::dataconn;
+use Carp;
+use Net::FTP::dataconn;
-@ISA = qw(Net::FTP::dataconn);
-$VERSION = "1.12";
+our @ISA = qw(Net::FTP::dataconn);
+our $VERSION = "3.05";
+our $buf;
sub read {
my $data = shift;
@@ -30,7 +34,7 @@ sub read {
$blksize = $size if $size > $blksize;
unless ($n = sysread($data, ${*$data}, $blksize, length ${*$data})) {
- return undef unless defined $n;
+ return unless defined $n;
${*$data}{'net_ftp_eof'} = 1;
}
}
@@ -69,7 +73,7 @@ sub write {
or croak "Timeout";
my $n = syswrite($data, $buf, $sent > $blksize ? $blksize : $sent, $off);
- return undef unless defined($n);
+ return unless defined($n);
$sent -= $n;
$off += $n;
}
diff --git a/Master/tlpkg/tlperl/lib/Net/FTP/L.pm b/Master/tlpkg/tlperl/lib/Net/FTP/L.pm
index f7423cb9f95..dda51c45fd0 100644
--- a/Master/tlpkg/tlperl/lib/Net/FTP/L.pm
+++ b/Master/tlpkg/tlperl/lib/Net/FTP/L.pm
@@ -1,8 +1,13 @@
package Net::FTP::L;
-require Net::FTP::I;
+use 5.008001;
-@ISA = qw(Net::FTP::I);
-$VERSION = "0.01";
+use strict;
+use warnings;
+
+use Net::FTP::I;
+
+our @ISA = qw(Net::FTP::I);
+our $VERSION = "3.05";
1;
diff --git a/Master/tlpkg/tlperl/lib/Net/FTP/dataconn.pm b/Master/tlpkg/tlperl/lib/Net/FTP/dataconn.pm
index 3f9366894d1..eaa769d5d71 100644
--- a/Master/tlpkg/tlperl/lib/Net/FTP/dataconn.pm
+++ b/Master/tlpkg/tlperl/lib/Net/FTP/dataconn.pm
@@ -4,14 +4,19 @@
package Net::FTP::dataconn;
+use 5.008001;
+
+use strict;
+use warnings;
+
use Carp;
-use vars qw(@ISA $timeout $VERSION);
-use Net::Cmd;
use Errno;
+use Net::Cmd;
-$VERSION = '0.12';
-@ISA = qw(IO::Socket::INET);
+our $VERSION = '3.05';
+$Net::FTP::IOCLASS or die "please load Net::FTP before Net::FTP::dataconn";
+our @ISA = $Net::FTP::IOCLASS;
sub reading {
my $data = shift;
@@ -125,3 +130,53 @@ sub bytes_read {
}
1;
+
+__END__
+
+=head1 NAME
+
+Net::FTP::dataconn - FTP Client data connection class
+
+=head1 DESCRIPTION
+
+Some of the methods defined in C<Net::FTP> return an object which will
+be derived from this class. The dataconn class itself is derived from
+the C<IO::Socket::INET> class, so any normal IO operations can be performed.
+However the following methods are defined in the dataconn class and IO should
+be performed using these.
+
+=over 4
+
+=item read ( BUFFER, SIZE [, TIMEOUT ] )
+
+Read C<SIZE> bytes of data from the server and place it into C<BUFFER>, also
+performing any <CRLF> translation necessary. C<TIMEOUT> is optional, if not
+given, the timeout value from the command connection will be used.
+
+Returns the number of bytes read before any <CRLF> translation.
+
+=item write ( BUFFER, SIZE [, TIMEOUT ] )
+
+Write C<SIZE> bytes of data from C<BUFFER> to the server, also
+performing any <CRLF> translation necessary. C<TIMEOUT> is optional, if not
+given, the timeout value from the command connection will be used.
+
+Returns the number of bytes written before any <CRLF> translation.
+
+=item bytes_read ()
+
+Returns the number of bytes read so far.
+
+=item abort ()
+
+Abort the current data transfer.
+
+=item close ()
+
+Close the data connection and get a response from the FTP server. Returns
+I<true> if the connection was closed successfully and the first digit of
+the response from the server was a '2'.
+
+=back
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Net/HTTP.pm b/Master/tlpkg/tlperl/lib/Net/HTTP.pm
deleted file mode 100644
index 613bc9599e3..00000000000
--- a/Master/tlpkg/tlperl/lib/Net/HTTP.pm
+++ /dev/null
@@ -1,292 +0,0 @@
-package Net::HTTP;
-
-use strict;
-use vars qw($VERSION @ISA $SOCKET_CLASS);
-
-$VERSION = "6.07";
-unless ($SOCKET_CLASS) {
- # Try several, in order of capability and preference
- if (eval { require IO::Socket::IP }) {
- $SOCKET_CLASS = "IO::Socket::IP"; # IPv4+IPv6
- } elsif (eval { require IO::Socket::INET6 }) {
- $SOCKET_CLASS = "IO::Socket::INET6"; # IPv4+IPv6
- } elsif (eval { require IO::Socket::INET }) {
- $SOCKET_CLASS = "IO::Socket::INET"; # IPv4 only
- } else {
- require IO::Socket;
- $SOCKET_CLASS = "IO::Socket::INET";
- }
-}
-require Net::HTTP::Methods;
-require Carp;
-
-@ISA = ($SOCKET_CLASS, 'Net::HTTP::Methods');
-
-sub new {
- my $class = shift;
- Carp::croak("No Host option provided") unless @_;
- $class->SUPER::new(@_);
-}
-
-sub configure {
- my($self, $cnf) = @_;
- $self->http_configure($cnf);
-}
-
-sub http_connect {
- my($self, $cnf) = @_;
- $self->SUPER::configure($cnf);
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Net::HTTP - Low-level HTTP connection (client)
-
-=head1 SYNOPSIS
-
- use Net::HTTP;
- my $s = Net::HTTP->new(Host => "www.perl.com") || die $@;
- $s->write_request(GET => "/", 'User-Agent' => "Mozilla/5.0");
- my($code, $mess, %h) = $s->read_response_headers;
-
- while (1) {
- my $buf;
- my $n = $s->read_entity_body($buf, 1024);
- die "read failed: $!" unless defined $n;
- last unless $n;
- print $buf;
- }
-
-=head1 DESCRIPTION
-
-The C<Net::HTTP> class is a low-level HTTP client. An instance of the
-C<Net::HTTP> class represents a connection to an HTTP server. The
-HTTP protocol is described in RFC 2616. The C<Net::HTTP> class
-supports C<HTTP/1.0> and C<HTTP/1.1>.
-
-C<Net::HTTP> is a sub-class of one of C<IO::Socket::IP> (IPv6+IPv4),
-C<IO::Socket::INET6> (IPv6+IPv4), or C<IO::Socket::INET> (IPv4 only).
-You can mix the methods described below with reading and writing from the
-socket directly. This is not necessary a good idea, unless you know what
-you are doing.
-
-The following methods are provided (in addition to those of
-C<IO::Socket::INET>):
-
-=over
-
-=item $s = Net::HTTP->new( %options )
-
-The C<Net::HTTP> constructor method takes the same options as
-C<IO::Socket::INET>'s as well as these:
-
- Host: Initial host attribute value
- KeepAlive: Initial keep_alive attribute value
- SendTE: Initial send_te attribute_value
- HTTPVersion: Initial http_version attribute value
- PeerHTTPVersion: Initial peer_http_version attribute value
- MaxLineLength: Initial max_line_length attribute value
- MaxHeaderLines: Initial max_header_lines attribute value
-
-The C<Host> option is also the default for C<IO::Socket::INET>'s
-C<PeerAddr>. The C<PeerPort> defaults to 80 if not provided.
-The C<PeerPort> specification can also be embedded in the C<PeerAddr>
-by preceding it with a ":", and closing the IPv6 address on bracktes "[]" if
-necessary: "192.0.2.1:80","[2001:db8::1]:80","any.example.com:80".
-
-The C<Listen> option provided by C<IO::Socket::INET>'s constructor
-method is not allowed.
-
-If unable to connect to the given HTTP server then the constructor
-returns C<undef> and $@ contains the reason. After a successful
-connect, a C<Net:HTTP> object is returned.
-
-=item $s->host
-
-Get/set the default value of the C<Host> header to send. The $host
-must not be set to an empty string (or C<undef>) for HTTP/1.1.
-
-=item $s->keep_alive
-
-Get/set the I<keep-alive> value. If this value is TRUE then the
-request will be sent with headers indicating that the server should try
-to keep the connection open so that multiple requests can be sent.
-
-The actual headers set will depend on the value of the C<http_version>
-and C<peer_http_version> attributes.
-
-=item $s->send_te
-
-Get/set the a value indicating if the request will be sent with a "TE"
-header to indicate the transfer encodings that the server can choose to
-use. The list of encodings announced as accepted by this client depends
-on availability of the following modules: C<Compress::Raw::Zlib> for
-I<deflate>, and C<IO::Compress::Gunzip> for I<gzip>.
-
-=item $s->http_version
-
-Get/set the HTTP version number that this client should announce.
-This value can only be set to "1.0" or "1.1". The default is "1.1".
-
-=item $s->peer_http_version
-
-Get/set the protocol version number of our peer. This value will
-initially be "1.0", but will be updated by a successful
-read_response_headers() method call.
-
-=item $s->max_line_length
-
-Get/set a limit on the length of response line and response header
-lines. The default is 8192. A value of 0 means no limit.
-
-=item $s->max_header_length
-
-Get/set a limit on the number of header lines that a response can
-have. The default is 128. A value of 0 means no limit.
-
-=item $s->format_request($method, $uri, %headers, [$content])
-
-Format a request message and return it as a string. If the headers do
-not include a C<Host> header, then a header is inserted with the value
-of the C<host> attribute. Headers like C<Connection> and
-C<Keep-Alive> might also be added depending on the status of the
-C<keep_alive> attribute.
-
-If $content is given (and it is non-empty), then a C<Content-Length>
-header is automatically added unless it was already present.
-
-=item $s->write_request($method, $uri, %headers, [$content])
-
-Format and send a request message. Arguments are the same as for
-format_request(). Returns true if successful.
-
-=item $s->format_chunk( $data )
-
-Returns the string to be written for the given chunk of data.
-
-=item $s->write_chunk($data)
-
-Will write a new chunk of request entity body data. This method
-should only be used if the C<Transfer-Encoding> header with a value of
-C<chunked> was sent in the request. Note, writing zero-length data is
-a no-op. Use the write_chunk_eof() method to signal end of entity
-body data.
-
-Returns true if successful.
-
-=item $s->format_chunk_eof( %trailers )
-
-Returns the string to be written for signaling EOF when a
-C<Transfer-Encoding> of C<chunked> is used.
-
-=item $s->write_chunk_eof( %trailers )
-
-Will write eof marker for chunked data and optional trailers. Note
-that trailers should not really be used unless is was signaled
-with a C<Trailer> header.
-
-Returns true if successful.
-
-=item ($code, $mess, %headers) = $s->read_response_headers( %opts )
-
-Read response headers from server and return it. The $code is the 3
-digit HTTP status code (see L<HTTP::Status>) and $mess is the textual
-message that came with it. Headers are then returned as key/value
-pairs. Since key letter casing is not normalized and the same key can
-even occur multiple times, assigning these values directly to a hash
-is not wise. Only the $code is returned if this method is called in
-scalar context.
-
-As a side effect this method updates the 'peer_http_version'
-attribute.
-
-Options might be passed in as key/value pairs. There are currently
-only two options supported; C<laxed> and C<junk_out>.
-
-The C<laxed> option will make read_response_headers() more forgiving
-towards servers that have not learned how to speak HTTP properly. The
-C<laxed> option is a boolean flag, and is enabled by passing in a TRUE
-value. The C<junk_out> option can be used to capture bad header lines
-when C<laxed> is enabled. The value should be an array reference.
-Bad header lines will be pushed onto the array.
-
-The C<laxed> option must be specified in order to communicate with
-pre-HTTP/1.0 servers that don't describe the response outcome or the
-data they send back with a header block. For these servers
-peer_http_version is set to "0.9" and this method returns (200,
-"Assumed OK").
-
-The method will raise an exception (die) if the server does not speak
-proper HTTP or if the C<max_line_length> or C<max_header_length>
-limits are reached. If the C<laxed> option is turned on and
-C<max_line_length> and C<max_header_length> checks are turned off,
-then no exception will be raised and this method will always
-return a response code.
-
-=item $n = $s->read_entity_body($buf, $size);
-
-Reads chunks of the entity body content. Basically the same interface
-as for read() and sysread(), but the buffer offset argument is not
-supported yet. This method should only be called after a successful
-read_response_headers() call.
-
-The return value will be C<undef> on read errors, 0 on EOF, -1 if no data
-could be returned this time, otherwise the number of bytes assigned
-to $buf. The $buf is set to "" when the return value is -1.
-
-You normally want to retry this call if this function returns either
--1 or C<undef> with C<$!> as EINTR or EAGAIN (see L<Errno>). EINTR
-can happen if the application catches signals and EAGAIN can happen if
-you made the socket non-blocking.
-
-This method will raise exceptions (die) if the server does not speak
-proper HTTP. This can only happen when reading chunked data.
-
-=item %headers = $s->get_trailers
-
-After read_entity_body() has returned 0 to indicate end of the entity
-body, you might call this method to pick up any trailers.
-
-=item $s->_rbuf
-
-Get/set the read buffer content. The read_response_headers() and
-read_entity_body() methods use an internal buffer which they will look
-for data before they actually sysread more from the socket itself. If
-they read too much, the remaining data will be left in this buffer.
-
-=item $s->_rbuf_length
-
-Returns the number of bytes in the read buffer. This should always be
-the same as:
-
- length($s->_rbuf)
-
-but might be more efficient.
-
-=back
-
-=head1 SUBCLASSING
-
-The read_response_headers() and read_entity_body() will invoke the
-sysread() method when they need more data. Subclasses might want to
-override this method to control how reading takes place.
-
-The object itself is a glob. Subclasses should avoid using hash key
-names prefixed with C<http_> and C<io_>.
-
-=head1 SEE ALSO
-
-L<LWP>, L<IO::Socket::INET>, L<Net::HTTP::NB>
-
-=head1 COPYRIGHT
-
-Copyright 2001-2003 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Net/HTTP/Methods.pm b/Master/tlpkg/tlperl/lib/Net/HTTP/Methods.pm
deleted file mode 100644
index e92d9de7ae5..00000000000
--- a/Master/tlpkg/tlperl/lib/Net/HTTP/Methods.pm
+++ /dev/null
@@ -1,633 +0,0 @@
-package Net::HTTP::Methods;
-
-require 5.005; # 4-arg substr
-
-use strict;
-use vars qw($VERSION);
-use URI;
-
-$VERSION = "6.07";
-
-my $CRLF = "\015\012"; # "\r\n" is not portable
-
-*_bytes = defined(&utf8::downgrade) ?
- sub {
- unless (utf8::downgrade($_[0], 1)) {
- require Carp;
- Carp::croak("Wide character in HTTP request (bytes required)");
- }
- return $_[0];
- }
- :
- sub {
- return $_[0];
- };
-
-
-sub new {
- my $class = shift;
- unshift(@_, "Host") if @_ == 1;
- my %cnf = @_;
- require Symbol;
- my $self = bless Symbol::gensym(), $class;
- return $self->http_configure(\%cnf);
-}
-
-sub http_configure {
- my($self, $cnf) = @_;
-
- die "Listen option not allowed" if $cnf->{Listen};
- my $explict_host = (exists $cnf->{Host});
- my $host = delete $cnf->{Host};
- my $peer = $cnf->{PeerAddr} || $cnf->{PeerHost};
- if (!$peer) {
- die "No Host option provided" unless $host;
- $cnf->{PeerAddr} = $peer = $host;
- }
-
- # CONNECTIONS
- # PREFER: port number from PeerAddr, then PeerPort, then http_default_port
- my $peer_uri = URI->new("http://$peer");
- $cnf->{"PeerPort"} = $peer_uri->_port || $cnf->{PeerPort} || $self->http_default_port;
- $cnf->{"PeerAddr"} = $peer_uri->host;
-
- # HOST header:
- # If specified but blank, ignore.
- # If specified with a value, add the port number
- # If not specified, set to PeerAddr and port number
- # ALWAYS: If IPv6 address, use [brackets] (thanks to the URI package)
- # ALWAYS: omit port number if http_default_port
- if (($host) || (! $explict_host)) {
- my $uri = ($explict_host) ? URI->new("http://$host") : $peer_uri->clone;
- if (!$uri->_port) {
- # Always use *our* $self->http_default_port instead of URI's (Covers HTTP, HTTPS)
- $uri->port( $cnf->{PeerPort} || $self->http_default_port);
- }
- my $host_port = $uri->host_port; # Returns host:port or [ipv6]:port
- my $remove = ":" . $self->http_default_port; # we want to remove the default port number
- if (substr($host_port,0-length($remove)) eq $remove) {
- substr($host_port,0-length($remove)) = "";
- }
- $host = $host_port;
- }
-
- $cnf->{Proto} = 'tcp';
-
- my $keep_alive = delete $cnf->{KeepAlive};
- my $http_version = delete $cnf->{HTTPVersion};
- $http_version = "1.1" unless defined $http_version;
- my $peer_http_version = delete $cnf->{PeerHTTPVersion};
- $peer_http_version = "1.0" unless defined $peer_http_version;
- my $send_te = delete $cnf->{SendTE};
- my $max_line_length = delete $cnf->{MaxLineLength};
- $max_line_length = 8*1024 unless defined $max_line_length;
- my $max_header_lines = delete $cnf->{MaxHeaderLines};
- $max_header_lines = 128 unless defined $max_header_lines;
-
- return undef unless $self->http_connect($cnf);
-
- $self->host($host);
- $self->keep_alive($keep_alive);
- $self->send_te($send_te);
- $self->http_version($http_version);
- $self->peer_http_version($peer_http_version);
- $self->max_line_length($max_line_length);
- $self->max_header_lines($max_header_lines);
-
- ${*$self}{'http_buf'} = "";
-
- return $self;
-}
-
-sub http_default_port {
- 80;
-}
-
-# set up property accessors
-for my $method (qw(host keep_alive send_te max_line_length max_header_lines peer_http_version)) {
- my $prop_name = "http_" . $method;
- no strict 'refs';
- *$method = sub {
- my $self = shift;
- my $old = ${*$self}{$prop_name};
- ${*$self}{$prop_name} = shift if @_;
- return $old;
- };
-}
-
-# we want this one to be a bit smarter
-sub http_version {
- my $self = shift;
- my $old = ${*$self}{'http_version'};
- if (@_) {
- my $v = shift;
- $v = "1.0" if $v eq "1"; # float
- unless ($v eq "1.0" or $v eq "1.1") {
- require Carp;
- Carp::croak("Unsupported HTTP version '$v'");
- }
- ${*$self}{'http_version'} = $v;
- }
- $old;
-}
-
-sub format_request {
- my $self = shift;
- my $method = shift;
- my $uri = shift;
-
- my $content = (@_ % 2) ? pop : "";
-
- for ($method, $uri) {
- require Carp;
- Carp::croak("Bad method or uri") if /\s/ || !length;
- }
-
- push(@{${*$self}{'http_request_method'}}, $method);
- my $ver = ${*$self}{'http_version'};
- my $peer_ver = ${*$self}{'http_peer_http_version'} || "1.0";
-
- my @h;
- my @connection;
- my %given = (host => 0, "content-length" => 0, "te" => 0);
- while (@_) {
- my($k, $v) = splice(@_, 0, 2);
- my $lc_k = lc($k);
- if ($lc_k eq "connection") {
- $v =~ s/^\s+//;
- $v =~ s/\s+$//;
- push(@connection, split(/\s*,\s*/, $v));
- next;
- }
- if (exists $given{$lc_k}) {
- $given{$lc_k}++;
- }
- push(@h, "$k: $v");
- }
-
- if (length($content) && !$given{'content-length'}) {
- push(@h, "Content-Length: " . length($content));
- }
-
- my @h2;
- if ($given{te}) {
- push(@connection, "TE") unless grep lc($_) eq "te", @connection;
- }
- elsif ($self->send_te && gunzip_ok()) {
- # gzip is less wanted since the IO::Uncompress::Gunzip interface for
- # it does not really allow chunked decoding to take place easily.
- push(@h2, "TE: deflate,gzip;q=0.3");
- push(@connection, "TE");
- }
-
- unless (grep lc($_) eq "close", @connection) {
- if ($self->keep_alive) {
- if ($peer_ver eq "1.0") {
- # from looking at Netscape's headers
- push(@h2, "Keep-Alive: 300");
- unshift(@connection, "Keep-Alive");
- }
- }
- else {
- push(@connection, "close") if $ver ge "1.1";
- }
- }
- push(@h2, "Connection: " . join(", ", @connection)) if @connection;
- unless ($given{host}) {
- my $h = ${*$self}{'http_host'};
- push(@h2, "Host: $h") if $h;
- }
-
- return _bytes(join($CRLF, "$method $uri HTTP/$ver", @h2, @h, "", $content));
-}
-
-
-sub write_request {
- my $self = shift;
- $self->print($self->format_request(@_));
-}
-
-sub format_chunk {
- my $self = shift;
- return $_[0] unless defined($_[0]) && length($_[0]);
- return _bytes(sprintf("%x", length($_[0])) . $CRLF . $_[0] . $CRLF);
-}
-
-sub write_chunk {
- my $self = shift;
- return 1 unless defined($_[0]) && length($_[0]);
- $self->print(_bytes(sprintf("%x", length($_[0])) . $CRLF . $_[0] . $CRLF));
-}
-
-sub format_chunk_eof {
- my $self = shift;
- my @h;
- while (@_) {
- push(@h, sprintf "%s: %s$CRLF", splice(@_, 0, 2));
- }
- return _bytes(join("", "0$CRLF", @h, $CRLF));
-}
-
-sub write_chunk_eof {
- my $self = shift;
- $self->print($self->format_chunk_eof(@_));
-}
-
-
-sub my_read {
- die if @_ > 3;
- my $self = shift;
- my $len = $_[1];
- for (${*$self}{'http_buf'}) {
- if (length) {
- $_[0] = substr($_, 0, $len, "");
- return length($_[0]);
- }
- else {
- die "read timeout" unless $self->can_read;
- return $self->sysread($_[0], $len);
- }
- }
-}
-
-
-sub my_readline {
- my $self = shift;
- my $what = shift;
- for (${*$self}{'http_buf'}) {
- my $max_line_length = ${*$self}{'http_max_line_length'};
- my $pos;
- while (1) {
- # find line ending
- $pos = index($_, "\012");
- last if $pos >= 0;
- die "$what line too long (limit is $max_line_length)"
- if $max_line_length && length($_) > $max_line_length;
-
- # need to read more data to find a line ending
- READ:
- {
- die "read timeout" unless $self->can_read;
- my $n = $self->sysread($_, 1024, length);
- unless (defined $n) {
- redo READ if $!{EINTR} || $!{EAGAIN};
- # if we have already accumulated some data let's at least
- # return that as a line
- die "$what read failed: $!" unless length;
- }
- unless ($n) {
- return undef unless length;
- return substr($_, 0, length, "");
- }
- }
- }
- die "$what line too long ($pos; limit is $max_line_length)"
- if $max_line_length && $pos > $max_line_length;
-
- my $line = substr($_, 0, $pos+1, "");
- $line =~ s/(\015?\012)\z// || die "Assert";
- return wantarray ? ($line, $1) : $line;
- }
-}
-
-
-sub can_read {
- my $self = shift;
- return 1 unless defined(fileno($self));
- return 1 if $self->isa('IO::Socket::SSL') && $self->pending;
-
- # With no timeout, wait forever. An explict timeout of 0 can be
- # used to just check if the socket is readable without waiting.
- my $timeout = @_ ? shift : (${*$self}{io_socket_timeout} || undef);
-
- my $fbits = '';
- vec($fbits, fileno($self), 1) = 1;
- SELECT:
- {
- my $before;
- $before = time if $timeout;
- my $nfound = select($fbits, undef, undef, $timeout);
- if ($nfound < 0) {
- if ($!{EINTR} || $!{EAGAIN}) {
- # don't really think EAGAIN can happen here
- if ($timeout) {
- $timeout -= time - $before;
- $timeout = 0 if $timeout < 0;
- }
- redo SELECT;
- }
- die "select failed: $!";
- }
- return $nfound > 0;
- }
-}
-
-
-sub _rbuf {
- my $self = shift;
- if (@_) {
- for (${*$self}{'http_buf'}) {
- my $old;
- $old = $_ if defined wantarray;
- $_ = shift;
- return $old;
- }
- }
- else {
- return ${*$self}{'http_buf'};
- }
-}
-
-sub _rbuf_length {
- my $self = shift;
- return length ${*$self}{'http_buf'};
-}
-
-
-sub _read_header_lines {
- my $self = shift;
- my $junk_out = shift;
-
- my @headers;
- my $line_count = 0;
- my $max_header_lines = ${*$self}{'http_max_header_lines'};
- while (my $line = my_readline($self, 'Header')) {
- if ($line =~ /^(\S+?)\s*:\s*(.*)/s) {
- push(@headers, $1, $2);
- }
- elsif (@headers && $line =~ s/^\s+//) {
- $headers[-1] .= " " . $line;
- }
- elsif ($junk_out) {
- push(@$junk_out, $line);
- }
- else {
- die "Bad header: '$line'\n";
- }
- if ($max_header_lines) {
- $line_count++;
- if ($line_count >= $max_header_lines) {
- die "Too many header lines (limit is $max_header_lines)";
- }
- }
- }
- return @headers;
-}
-
-
-sub read_response_headers {
- my($self, %opt) = @_;
- my $laxed = $opt{laxed};
-
- my($status, $eol) = my_readline($self, 'Status');
- unless (defined $status) {
- die "Server closed connection without sending any data back";
- }
-
- my($peer_ver, $code, $message) = split(/\s+/, $status, 3);
- if (!$peer_ver || $peer_ver !~ s,^HTTP/,, || $code !~ /^[1-5]\d\d$/) {
- die "Bad response status line: '$status'" unless $laxed;
- # assume HTTP/0.9
- ${*$self}{'http_peer_http_version'} = "0.9";
- ${*$self}{'http_status'} = "200";
- substr(${*$self}{'http_buf'}, 0, 0) = $status . ($eol || "");
- return 200 unless wantarray;
- return (200, "Assumed OK");
- };
-
- ${*$self}{'http_peer_http_version'} = $peer_ver;
- ${*$self}{'http_status'} = $code;
-
- my $junk_out;
- if ($laxed) {
- $junk_out = $opt{junk_out} || [];
- }
- my @headers = $self->_read_header_lines($junk_out);
-
- # pick out headers that read_entity_body might need
- my @te;
- my $content_length;
- for (my $i = 0; $i < @headers; $i += 2) {
- my $h = lc($headers[$i]);
- if ($h eq 'transfer-encoding') {
- my $te = $headers[$i+1];
- $te =~ s/^\s+//;
- $te =~ s/\s+$//;
- push(@te, $te) if length($te);
- }
- elsif ($h eq 'content-length') {
- # ignore bogus and overflow values
- if ($headers[$i+1] =~ /^\s*(\d{1,15})(?:\s|$)/) {
- $content_length = $1;
- }
- }
- }
- ${*$self}{'http_te'} = join(",", @te);
- ${*$self}{'http_content_length'} = $content_length;
- ${*$self}{'http_first_body'}++;
- delete ${*$self}{'http_trailers'};
- return $code unless wantarray;
- return ($code, $message, @headers);
-}
-
-
-sub read_entity_body {
- my $self = shift;
- my $buf_ref = \$_[0];
- my $size = $_[1];
- die "Offset not supported yet" if $_[2];
-
- my $chunked;
- my $bytes;
-
- if (${*$self}{'http_first_body'}) {
- ${*$self}{'http_first_body'} = 0;
- delete ${*$self}{'http_chunked'};
- delete ${*$self}{'http_bytes'};
- my $method = shift(@{${*$self}{'http_request_method'}});
- my $status = ${*$self}{'http_status'};
- if ($method eq "HEAD") {
- # this response is always empty regardless of other headers
- $bytes = 0;
- }
- elsif (my $te = ${*$self}{'http_te'}) {
- my @te = split(/\s*,\s*/, lc($te));
- die "Chunked must be last Transfer-Encoding '$te'"
- unless pop(@te) eq "chunked";
- pop(@te) while @te && $te[-1] eq "chunked"; # ignore repeated chunked spec
-
- for (@te) {
- if ($_ eq "deflate" && inflate_ok()) {
- #require Compress::Raw::Zlib;
- my ($i, $status) = Compress::Raw::Zlib::Inflate->new();
- die "Can't make inflator: $status" unless $i;
- $_ = sub { my $out; $i->inflate($_[0], \$out); $out }
- }
- elsif ($_ eq "gzip" && gunzip_ok()) {
- #require IO::Uncompress::Gunzip;
- my @buf;
- $_ = sub {
- push(@buf, $_[0]);
- return "" unless $_[1];
- my $input = join("", @buf);
- my $output;
- IO::Uncompress::Gunzip::gunzip(\$input, \$output, Transparent => 0)
- or die "Can't gunzip content: $IO::Uncompress::Gunzip::GunzipError";
- return \$output;
- };
- }
- elsif ($_ eq "identity") {
- $_ = sub { $_[0] };
- }
- else {
- die "Can't handle transfer encoding '$te'";
- }
- }
-
- @te = reverse(@te);
-
- ${*$self}{'http_te2'} = @te ? \@te : "";
- $chunked = -1;
- }
- elsif (defined(my $content_length = ${*$self}{'http_content_length'})) {
- $bytes = $content_length;
- }
- elsif ($status =~ /^(?:1|[23]04)/) {
- # RFC 2616 says that these responses should always be empty
- # but that does not appear to be true in practice [RT#17907]
- $bytes = 0;
- }
- else {
- # XXX Multi-Part types are self delimiting, but RFC 2616 says we
- # only has to deal with 'multipart/byteranges'
-
- # Read until EOF
- }
- }
- else {
- $chunked = ${*$self}{'http_chunked'};
- $bytes = ${*$self}{'http_bytes'};
- }
-
- if (defined $chunked) {
- # The state encoded in $chunked is:
- # $chunked == 0: read CRLF after chunk, then chunk header
- # $chunked == -1: read chunk header
- # $chunked > 0: bytes left in current chunk to read
-
- if ($chunked <= 0) {
- my $line = my_readline($self, 'Entity body');
- if ($chunked == 0) {
- die "Missing newline after chunk data: '$line'"
- if !defined($line) || $line ne "";
- $line = my_readline($self, 'Entity body');
- }
- die "EOF when chunk header expected" unless defined($line);
- my $chunk_len = $line;
- $chunk_len =~ s/;.*//; # ignore potential chunk parameters
- unless ($chunk_len =~ /^([\da-fA-F]+)\s*$/) {
- die "Bad chunk-size in HTTP response: $line";
- }
- $chunked = hex($1);
- ${*$self}{'http_chunked'} = $chunked;
- if ($chunked == 0) {
- ${*$self}{'http_trailers'} = [$self->_read_header_lines];
- $$buf_ref = "";
-
- my $n = 0;
- if (my $transforms = delete ${*$self}{'http_te2'}) {
- for (@$transforms) {
- $$buf_ref = &$_($$buf_ref, 1);
- }
- $n = length($$buf_ref);
- }
-
- # in case somebody tries to read more, make sure we continue
- # to return EOF
- delete ${*$self}{'http_chunked'};
- ${*$self}{'http_bytes'} = 0;
-
- return $n;
- }
- }
-
- my $n = $chunked;
- $n = $size if $size && $size < $n;
- $n = my_read($self, $$buf_ref, $n);
- return undef unless defined $n;
-
- ${*$self}{'http_chunked'} = $chunked - $n;
-
- if ($n > 0) {
- if (my $transforms = ${*$self}{'http_te2'}) {
- for (@$transforms) {
- $$buf_ref = &$_($$buf_ref, 0);
- }
- $n = length($$buf_ref);
- $n = -1 if $n == 0;
- }
- }
- return $n;
- }
- elsif (defined $bytes) {
- unless ($bytes) {
- $$buf_ref = "";
- return 0;
- }
- my $n = $bytes;
- $n = $size if $size && $size < $n;
- $n = my_read($self, $$buf_ref, $n);
- ${*$self}{'http_bytes'} = defined $n ? $bytes - $n : $bytes;
- return $n;
- }
- else {
- # read until eof
- $size ||= 8*1024;
- return my_read($self, $$buf_ref, $size);
- }
-}
-
-sub get_trailers {
- my $self = shift;
- @{${*$self}{'http_trailers'} || []};
-}
-
-BEGIN {
-my $gunzip_ok;
-my $inflate_ok;
-
-sub gunzip_ok {
- return $gunzip_ok if defined $gunzip_ok;
-
- # Try to load IO::Uncompress::Gunzip.
- local $@;
- local $SIG{__DIE__};
- $gunzip_ok = 0;
-
- eval {
- require IO::Uncompress::Gunzip;
- $gunzip_ok++;
- };
-
- return $gunzip_ok;
-}
-
-sub inflate_ok {
- return $inflate_ok if defined $inflate_ok;
-
- # Try to load Compress::Raw::Zlib.
- local $@;
- local $SIG{__DIE__};
- $inflate_ok = 0;
-
- eval {
- require Compress::Raw::Zlib;
- $inflate_ok++;
- };
-
- return $inflate_ok;
-}
-
-} # BEGIN
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Net/HTTP/NB.pm b/Master/tlpkg/tlperl/lib/Net/HTTP/NB.pm
deleted file mode 100644
index 6049e054914..00000000000
--- a/Master/tlpkg/tlperl/lib/Net/HTTP/NB.pm
+++ /dev/null
@@ -1,109 +0,0 @@
-package Net::HTTP::NB;
-
-use strict;
-use vars qw($VERSION @ISA);
-
-$VERSION = "6.04";
-
-require Net::HTTP;
-@ISA=qw(Net::HTTP);
-
-sub can_read {
- return 1;
-}
-
-sub sysread {
- my $self = $_[0];
- if (${*$self}{'httpnb_read_count'}++) {
- ${*$self}{'http_buf'} = ${*$self}{'httpnb_save'};
- die "Multi-read\n";
- }
- my $buf;
- my $offset = $_[3] || 0;
- my $n = sysread($self, $_[1], $_[2], $offset);
- ${*$self}{'httpnb_save'} .= substr($_[1], $offset);
- return $n;
-}
-
-sub read_response_headers {
- my $self = shift;
- ${*$self}{'httpnb_read_count'} = 0;
- ${*$self}{'httpnb_save'} = ${*$self}{'http_buf'};
- my @h = eval { $self->SUPER::read_response_headers(@_) };
- if ($@) {
- return if $@ eq "Multi-read\n";
- die;
- }
- return @h;
-}
-
-sub read_entity_body {
- my $self = shift;
- ${*$self}{'httpnb_read_count'} = 0;
- ${*$self}{'httpnb_save'} = ${*$self}{'http_buf'};
- # XXX I'm not so sure this does the correct thing in case of
- # transfer-encoding tranforms
- my $n = eval { $self->SUPER::read_entity_body(@_); };
- if ($@) {
- $_[0] = "";
- return -1;
- }
- return $n;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Net::HTTP::NB - Non-blocking HTTP client
-
-=head1 SYNOPSIS
-
- use Net::HTTP::NB;
- my $s = Net::HTTP::NB->new(Host => "www.perl.com") || die $@;
- $s->write_request(GET => "/");
-
- use IO::Select;
- my $sel = IO::Select->new($s);
-
- READ_HEADER: {
- die "Header timeout" unless $sel->can_read(10);
- my($code, $mess, %h) = $s->read_response_headers;
- redo READ_HEADER unless $code;
- }
-
- while (1) {
- die "Body timeout" unless $sel->can_read(10);
- my $buf;
- my $n = $s->read_entity_body($buf, 1024);
- last unless $n;
- print $buf;
- }
-
-=head1 DESCRIPTION
-
-Same interface as C<Net::HTTP> but it will never try multiple reads
-when the read_response_headers() or read_entity_body() methods are
-invoked. This make it possible to multiplex multiple Net::HTTP::NB
-using select without risk blocking.
-
-If read_response_headers() did not see enough data to complete the
-headers an empty list is returned.
-
-If read_entity_body() did not see new entity data in its read
-the value -1 is returned.
-
-=head1 SEE ALSO
-
-L<Net::HTTP>
-
-=head1 COPYRIGHT
-
-Copyright 2001 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Net/HTTPS.pm b/Master/tlpkg/tlperl/lib/Net/HTTPS.pm
deleted file mode 100644
index 87ecf485f63..00000000000
--- a/Master/tlpkg/tlperl/lib/Net/HTTPS.pm
+++ /dev/null
@@ -1,110 +0,0 @@
-package Net::HTTPS;
-
-use strict;
-use vars qw($VERSION $SSL_SOCKET_CLASS @ISA);
-
-$VERSION = "6.04";
-
-# Figure out which SSL implementation to use
-if ($SSL_SOCKET_CLASS) {
- # somebody already set it
-}
-elsif ($SSL_SOCKET_CLASS = $ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS}) {
- unless ($SSL_SOCKET_CLASS =~ /^(IO::Socket::SSL|Net::SSL)\z/) {
- die "Bad socket class [$SSL_SOCKET_CLASS]";
- }
- eval "require $SSL_SOCKET_CLASS";
- die $@ if $@;
-}
-elsif ($IO::Socket::SSL::VERSION) {
- $SSL_SOCKET_CLASS = "IO::Socket::SSL"; # it was already loaded
-}
-elsif ($Net::SSL::VERSION) {
- $SSL_SOCKET_CLASS = "Net::SSL";
-}
-else {
- eval { require IO::Socket::SSL; };
- if ($@) {
- my $old_errsv = $@;
- eval {
- require Net::SSL; # from Crypt-SSLeay
- };
- if ($@) {
- $old_errsv =~ s/\s\(\@INC contains:.*\)/)/g;
- die $old_errsv . $@;
- }
- $SSL_SOCKET_CLASS = "Net::SSL";
- }
- else {
- $SSL_SOCKET_CLASS = "IO::Socket::SSL";
- }
-}
-
-require Net::HTTP::Methods;
-
-@ISA=($SSL_SOCKET_CLASS, 'Net::HTTP::Methods');
-
-sub configure {
- my($self, $cnf) = @_;
- $self->http_configure($cnf);
-}
-
-sub http_connect {
- my($self, $cnf) = @_;
- if ($self->isa("Net::SSL")) {
- if ($cnf->{SSL_verify_mode}) {
- if (my $f = $cnf->{SSL_ca_file}) {
- $ENV{HTTPS_CA_FILE} = $f;
- }
- if (my $f = $cnf->{SSL_ca_path}) {
- $ENV{HTTPS_CA_DIR} = $f;
- }
- }
- if ($cnf->{SSL_verifycn_scheme}) {
- $@ = "Net::SSL from Crypt-SSLeay can't verify hostnames; either install IO::Socket::SSL or turn off verification by setting the PERL_LWP_SSL_VERIFY_HOSTNAME environment variable to 0";
- return undef;
- }
- }
- $self->SUPER::configure($cnf);
-}
-
-sub http_default_port {
- 443;
-}
-
-if ($SSL_SOCKET_CLASS eq "Net::SSL") {
- # The underlying SSLeay classes fails to work if the socket is
- # placed in non-blocking mode. This override of the blocking
- # method makes sure it stays the way it was created.
- *blocking = sub { };
-}
-
-1;
-
-=head1 NAME
-
-Net::HTTPS - Low-level HTTP over SSL/TLS connection (client)
-
-=head1 DESCRIPTION
-
-The C<Net::HTTPS> is a low-level HTTP over SSL/TLS client. The interface is the same
-as the interface for C<Net::HTTP>, but the constructor method take additional parameters
-as accepted by L<IO::Socket::SSL>. The C<Net::HTTPS> object isa C<IO::Socket::SSL>
-too, which make it inherit additional methods from that base class.
-
-For historical reasons this module also supports using C<Net::SSL> (from the
-Crypt-SSLeay distribution) as its SSL driver and base class. This base is
-automatically selected if available and C<IO::Socket::SSL> isn't. You might
-also force which implementation to use by setting $Net::HTTPS::SSL_SOCKET_CLASS
-before loading this module. If not set this variable is initialized from the
-C<PERL_NET_HTTPS_SSL_SOCKET_CLASS> environment variable.
-
-=head1 ENVIRONMENT
-
-You might set the C<PERL_NET_HTTPS_SSL_SOCKET_CLASS> environment variable to the name
-of the base SSL implementation (and Net::HTTPS base class) to use. The default
-is C<IO::Socket::SSL>. Currently the only other supported value is C<Net::SSL>.
-
-=head1 SEE ALSO
-
-L<Net::HTTP>, L<IO::Socket::SSL>
diff --git a/Master/tlpkg/tlperl/lib/Net/NNTP.pm b/Master/tlpkg/tlperl/lib/Net/NNTP.pm
index 07c373776e9..3796798cdd5 100644
--- a/Master/tlpkg/tlperl/lib/Net/NNTP.pm
+++ b/Master/tlpkg/tlperl/lib/Net/NNTP.pm
@@ -1,21 +1,53 @@
# Net::NNTP.pm
#
-# Copyright (c) 1995-1997 Graham Barr <gbarr@pobox.com>. All rights reserved.
+# Versions up to 2.24_1 Copyright (c) 1995-1997 Graham Barr <gbarr@pobox.com>.
+# All rights reserved.
+# Changes in Version 2.25 onwards Copyright (C) 2013-2014 Steve Hay. All rights
+# reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
package Net::NNTP;
+use 5.008001;
+
use strict;
-use vars qw(@ISA $VERSION $debug);
+use warnings;
+
+use Carp;
use IO::Socket;
use Net::Cmd;
-use Carp;
-use Time::Local;
use Net::Config;
+use Time::Local;
-$VERSION = "2.26";
-@ISA = qw(Net::Cmd IO::Socket::INET);
+our $VERSION = "3.05";
+
+# Code for detecting if we can use SSL
+my $ssl_class = eval {
+ require IO::Socket::SSL;
+ # first version with default CA on most platforms
+ no warnings 'numeric';
+ IO::Socket::SSL->VERSION(2.007);
+} && 'IO::Socket::SSL';
+
+my $nossl_warn = !$ssl_class &&
+ 'To use SSL please install IO::Socket::SSL with version>=2.007';
+
+# Code for detecting if we can use IPv6
+my $inet6_class = eval {
+ require IO::Socket::IP;
+ no warnings 'numeric';
+ IO::Socket::IP->VERSION(0.20);
+} && 'IO::Socket::IP' || eval {
+ require IO::Socket::INET6;
+ no warnings 'numeric';
+ IO::Socket::INET6->VERSION(2.62);
+} && 'IO::Socket::INET6';
+
+sub can_ssl { $ssl_class };
+sub can_inet6 { $inet6_class };
+
+our @ISA = ('Net::Cmd', $inet6_class || 'IO::Socket::INET');
sub new {
@@ -40,30 +72,39 @@ sub new {
unless @{$hosts};
my %connect = ( Proto => 'tcp');
- my $o;
- foreach $o (qw(LocalAddr Timeout)) {
+
+ if ($arg{SSL}) {
+ # SSL from start
+ die $nossl_warn if ! $ssl_class;
+ $arg{Port} ||= 563;
+ $connect{$_} = $arg{$_} for(grep { m{^SSL_} } keys %arg);
+ }
+
+ foreach my $o (qw(LocalAddr Timeout)) {
$connect{$o} = $arg{$o} if exists $arg{$o};
}
$connect{Timeout} = 120 unless defined $connect{Timeout};
$connect{PeerPort} = $arg{Port} || 'nntp(119)';
- my $h;
- foreach $h (@{$hosts}) {
+ foreach my $h (@{$hosts}) {
$connect{PeerAddr} = $h;
- $obj = $type->SUPER::new(%connect)
- and last;
+ $obj = $type->SUPER::new(%connect) or next;
+ ${*$obj}{'net_nntp_host'} = $h;
+ ${*$obj}{'net_nntp_arg'} = \%arg;
+ if ($arg{SSL}) {
+ Net::NNTP::_SSL->start_SSL($obj,%arg) or next;
+ }
+ last:
}
- return undef
+ return
unless defined $obj;
- ${*$obj}{'net_nntp_host'} = $connect{PeerAddr};
-
$obj->autoflush(1);
$obj->debug(exists $arg{Debug} ? $arg{Debug} : undef);
unless ($obj->response() == CMD_OK) {
$obj->close;
- return undef;
+ return;
}
my $c = $obj->code;
@@ -119,6 +160,18 @@ sub postok {
}
+sub starttls {
+ my $self = shift;
+ $ssl_class or die $nossl_warn;
+ $self->_STARTTLS or return;
+ Net::NNTP::_SSL->start_SSL($self,
+ %{ ${*$self}{'net_nntp_arg'} }, # (ssl) args given in new
+ @_ # more (ssl) args
+ ) or return;
+ return 1;
+}
+
+
sub article {
@_ >= 1 && @_ <= 3 or croak 'usage: $nntp->article( [ MSGID ], [ FH ] )';
my $nntp = shift;
@@ -403,6 +456,7 @@ sub distribution_patterns {
my $arr;
local $_;
+ ## no critic (ControlStructures::ProhibitMutatingListFunctions)
$nntp->_LIST('DISTRIB.PATS')
&& ($arr = $nntp->read_until_dot)
? [grep { /^\d/ && (chomp, $_ = [split /:/]) } @$arr]
@@ -511,7 +565,7 @@ sub xpath {
@_ == 2 or croak 'usage: $nntp->xpath( MESSAGE-ID )';
my ($nntp, $mid) = @_;
- return undef
+ return
unless $nntp->_XPATH($mid);
my $m;
@@ -590,12 +644,11 @@ sub _timestr {
sub _grouplist {
my $nntp = shift;
my $arr = $nntp->read_until_dot
- or return undef;
+ or return;
my $hash = {};
- my $ln;
- foreach $ln (@$arr) {
+ foreach my $ln (@$arr) {
my @a = split(/[\s\n]+/, $ln);
$hash->{$a[0]} = [@a[1, 2, 3]];
}
@@ -607,12 +660,11 @@ sub _grouplist {
sub _fieldlist {
my $nntp = shift;
my $arr = $nntp->read_until_dot
- or return undef;
+ or return;
my $hash = {};
- my $ln;
- foreach $ln (@$arr) {
+ foreach my $ln (@$arr) {
my @a = split(/[\t\n]/, $ln);
my $m = shift @a;
$hash->{$m} = [@a];
@@ -636,12 +688,11 @@ sub _articlelist {
sub _description {
my $nntp = shift;
my $arr = $nntp->read_until_dot
- or return undef;
+ or return;
my $hash = {};
- my $ln;
- foreach $ln (@$arr) {
+ foreach my $ln (@$arr) {
chomp($ln);
$hash->{$1} = $ln
@@ -674,6 +725,7 @@ sub _NEXT { shift->command('NEXT')->response == CMD_OK }
sub _POST { shift->command('POST', @_)->response == CMD_MORE }
sub _QUIT { shift->command('QUIT', @_)->response == CMD_OK }
sub _SLAVE { shift->command('SLAVE', @_)->response == CMD_OK }
+sub _STARTTLS { shift->command("STARTTLS")->response() == CMD_MORE }
sub _STAT { shift->command('STAT', @_)->response == CMD_OK }
sub _MODE { shift->command('MODE', @_)->response == CMD_OK }
sub _XGTITLE { shift->command('XGTITLE', @_)->response == CMD_OK }
@@ -696,6 +748,28 @@ sub DESTROY {
defined(fileno($nntp)) && $nntp->quit;
}
+{
+ package Net::NNTP::_SSL;
+ our @ISA = ( $ssl_class ? ($ssl_class):(), 'Net::NNTP' );
+ sub starttls { die "NNTP connection is already in SSL mode" }
+ sub start_SSL {
+ my ($class,$nntp,%arg) = @_;
+ delete @arg{ grep { !m{^SSL_} } keys %arg };
+ ( $arg{SSL_verifycn_name} ||= $nntp->host )
+ =~s{(?<!:):[\w()]+$}{}; # strip port
+ $arg{SSL_hostname} = $arg{SSL_verifycn_name}
+ if ! defined $arg{SSL_hostname} && $class->can_client_sni;
+ my $ok = $class->SUPER::start_SSL($nntp,
+ SSL_verifycn_scheme => 'nntp',
+ %arg
+ );
+ $@ = $ssl_class->errstr if !$ok;
+ return $ok;
+ }
+}
+
+
+
1;
@@ -712,10 +786,18 @@ Net::NNTP - NNTP Client class
$nntp = Net::NNTP->new("some.host.name");
$nntp->quit;
+ # start with SSL, e.g. nntps
+ $nntp = Net::NNTP->new("some.host.name", SSL => 1);
+
+ # start with plain and upgrade to SSL
+ $nntp = Net::NNTP->new("some.host.name");
+ $nntp->starttls;
+
+
=head1 DESCRIPTION
C<Net::NNTP> is a class implementing a simple NNTP client in Perl as described
-in RFC977.
+in RFC977 and RFC4642.
The Net::NNTP class is a subclass of Net::Cmd and IO::Socket::INET.
@@ -740,6 +822,14 @@ the C<PeerAddr> option in L<IO::Socket::INET>, or a reference to
an array with hosts to try in turn. The L</host> method will return the value
which was used to connect to the host.
+B<Port> - port to connect to.
+Default - 119 for plain NNTP and 563 for immediate SSL (nntps).
+
+B<SSL> - If the connection should be done from start with SSL, contrary to later
+upgrade with C<starttls>.
+You can use SSL arguments as documented in L<IO::Socket::SSL>, but it will
+usually use the right arguments already.
+
B<Timeout> - Maximum time, in seconds, to wait for a response from the
NNTP server, a value of zero will cause all IO operations to block.
(default: 120)
@@ -772,6 +862,16 @@ documented here.
=over 4
+=item host ()
+
+Returns the value used by the constructor, and passed to IO::Socket::INET,
+to connect to the host.
+
+=item starttls ()
+
+Upgrade existing plain connection to SSL.
+Any arguments necessary for SSL must be given in C<new> already.
+
=item article ( [ MSGID|MSGNUM ], [FH] )
Retrieve the header, a blank line, then the body (text) of the
@@ -837,6 +937,11 @@ In an array context the return value is a list containing, the number
of articles in the group, the number of the first article, the number
of the last article and the group name.
+=item help ( )
+
+Request help text (a short summary of commands that are understood by this
+implementation) from the server. Returns the text or undef upon failure.
+
=item ihave ( MSGID [, MESSAGE ])
The C<ihave> command informs the server that the client has an article
@@ -870,11 +975,17 @@ that it will allow posting.
=item authinfo ( USER, PASS )
-Authenticates to the server (using AUTHINFO USER / AUTHINFO PASS)
-using the supplied username and password. Please note that the
-password is sent in clear text to the server. This command should not
-be used with valuable passwords unless the connection to the server is
-somehow protected.
+Authenticates to the server (using the original AUTHINFO USER / AUTHINFO PASS
+form, defined in RFC2980) using the supplied username and password. Please
+note that the password is sent in clear text to the server. This command
+should not be used with valuable passwords unless the connection to the server
+is somehow protected.
+
+=item authinfo_simple ( USER, PASS )
+
+Authenticates to the server (using the proposed NNTP V2 AUTHINFO SIMPLE form,
+defined and deprecated in RFC2980) using the supplied username and password.
+As with L</authinfo> the password is sent in clear text.
=item list ()
@@ -940,6 +1051,14 @@ news server.
Quit the remote server and close the socket connection.
+=item can_inet6 ()
+
+Returns whether we can use IPv6.
+
+=item can_ssl ()
+
+Returns whether we can use SSL.
+
=back
=head2 Extension methods
@@ -960,6 +1079,13 @@ each value contains the description text for the group.
Returns a reference to a hash where the keys are all the possible
distribution names and the values are the distribution descriptions.
+=item distribution_patterns ()
+
+Returns a reference to an array where each element, itself an array
+reference, consists of the three fields of a line of the distrib.pats list
+maintained by some NNTP servers, namely: a weight, a wildmat and a value
+which the client may use to construct a Distribution header.
+
=item subscriptions ()
Returns a reference to a list which contains a list of groups which
@@ -1013,7 +1139,7 @@ message.
The result is the same as C<xhdr> except the is will be restricted to
headers where the text of the header matches C<PATTERN>
-=item xrover
+=item xrover ()
The XROVER command returns reference information for the article(s)
specified.
@@ -1026,7 +1152,7 @@ values are the References: lines from the articles
Returns a reference to a list of all the active messages in C<GROUP>, or
the current group if C<GROUP> is not specified.
-=item reader
+=item reader ()
Tell the server that you are a reader and not another server.
@@ -1139,15 +1265,22 @@ with a and ends with d.
=head1 SEE ALSO
-L<Net::Cmd>
+L<Net::Cmd>,
+L<IO::Socket::SSL>
=head1 AUTHOR
-Graham Barr <gbarr@pobox.com>
+Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
+
+Steve Hay E<lt>F<shay@cpan.org>E<gt> is now maintaining libnet as of version
+1.22_02
=head1 COPYRIGHT
-Copyright (c) 1995-1997 Graham Barr. All rights reserved.
+Versions up to 2.24_1 Copyright (c) 1995-1997 Graham Barr. All rights reserved.
+Changes in Version 2.25 onwards Copyright (C) 2013-2014 Steve Hay. 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/Master/tlpkg/tlperl/lib/Net/Netrc.pm b/Master/tlpkg/tlperl/lib/Net/Netrc.pm
index fbe8d6d5be4..9cf06b12bae 100644
--- a/Master/tlpkg/tlperl/lib/Net/Netrc.pm
+++ b/Master/tlpkg/tlperl/lib/Net/Netrc.pm
@@ -1,23 +1,30 @@
# Net::Netrc.pm
#
-# Copyright (c) 1995-1998 Graham Barr <gbarr@pobox.com>. All rights reserved.
+# Versions up to 2.13 Copyright (c) 1995-1998 Graham Barr <gbarr@pobox.com>.
+# All rights reserved.
+# Changes in Version 2.13_01 onwards Copyright (C) 2013-2014 Steve Hay. All
+# rights reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
package Net::Netrc;
-use Carp;
+use 5.008001;
+
use strict;
+use warnings;
+
+use Carp;
use FileHandle;
-use vars qw($VERSION $TESTING);
-$VERSION = "2.14";
+our $VERSION = "3.05";
-my %netrc = ();
+our $TESTING;
+my %netrc = ();
sub _readrc {
- my $host = shift;
+ my($class, $host) = @_;
my ($home, $file);
if ($^O eq "MacOS") {
@@ -56,7 +63,7 @@ sub _readrc {
my @stat = stat($file);
if (@stat) {
- if ($stat[2] & 077) {
+ if ($stat[2] & 077) { ## no critic (ValuesAndExpressions::ProhibitLeadingZeros)
carp "Bad permissions: $file";
return;
}
@@ -90,7 +97,7 @@ sub _readrc {
while (@tok) {
if ($tok[0] eq "default") {
shift(@tok);
- $mach = bless {};
+ $mach = bless {}, $class;
$netrc{default} = [$mach];
next TOKEN;
@@ -103,7 +110,7 @@ sub _readrc {
if ($tok eq "machine") {
my $host = shift @tok;
- $mach = bless {machine => $host};
+ $mach = bless {machine => $host}, $class;
$netrc{$host} = []
unless exists($netrc{$host});
@@ -132,9 +139,9 @@ sub _readrc {
sub lookup {
- my ($pkg, $mach, $login) = @_;
+ my ($class, $mach, $login) = @_;
- _readrc()
+ $class->_readrc()
unless exists $netrc{default};
$mach ||= 'default';
@@ -143,12 +150,11 @@ sub lookup {
if (exists $netrc{$mach}) {
if (defined $login) {
- my $m;
- foreach $m (@{$netrc{$mach}}) {
+ foreach my $m (@{$netrc{$mach}}) {
return $m
if (exists $m->{login} && $m->{login} eq $login);
}
- return undef;
+ return;
}
return $netrc{$mach}->[0];
}
@@ -156,7 +162,7 @@ sub lookup {
return $netrc{default}->[0]
if defined $netrc{default};
- return undef;
+ return;
}
@@ -317,16 +323,22 @@ Return a list of login, password and account information for the netrc entry
=head1 AUTHOR
-Graham Barr <gbarr@pobox.com>
+Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
+
+Steve Hay E<lt>F<shay@cpan.org>E<gt> is now maintaining libnet as of version
+1.22_02
=head1 SEE ALSO
-L<Net::Netrc>
+L<Net::Netrc>,
L<Net::Cmd>
=head1 COPYRIGHT
-Copyright (c) 1995-1998 Graham Barr. All rights reserved.
+Versions up to 2.13 Copyright (c) 1995-1998 Graham Barr. All rights reserved.
+Changes in Version 2.13_01 onwards Copyright (C) 2013-2014 Steve Hay. 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/Master/tlpkg/tlperl/lib/Net/POP3.pm b/Master/tlpkg/tlperl/lib/Net/POP3.pm
index 4b94a11a87e..0c6c4b1dc92 100644
--- a/Master/tlpkg/tlperl/lib/Net/POP3.pm
+++ b/Master/tlpkg/tlperl/lib/Net/POP3.pm
@@ -1,22 +1,52 @@
# Net::POP3.pm
#
-# Copyright (c) 1995-2004 Graham Barr <gbarr@pobox.com>. All rights reserved.
+# Versions up to 2.29 Copyright (c) 1995-2004 Graham Barr <gbarr@pobox.com>.
+# All rights reserved.
+# Changes in Version 2.29_01 onwards Copyright (C) 2013-2014 Steve Hay. All
+# rights reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
package Net::POP3;
+use 5.008001;
+
use strict;
+use warnings;
+
+use Carp;
use IO::Socket;
-use vars qw(@ISA $VERSION $debug);
use Net::Cmd;
-use Carp;
use Net::Config;
-$VERSION = "2.31";
+our $VERSION = "3.05";
-@ISA = qw(Net::Cmd IO::Socket::INET);
+# Code for detecting if we can use SSL
+my $ssl_class = eval {
+ require IO::Socket::SSL;
+ # first version with default CA on most platforms
+ no warnings 'numeric';
+ IO::Socket::SSL->VERSION(2.007);
+} && 'IO::Socket::SSL';
+my $nossl_warn = !$ssl_class &&
+ 'To use SSL please install IO::Socket::SSL with version>=2.007';
+
+# Code for detecting if we can use IPv6
+my $inet6_class = eval {
+ require IO::Socket::IP;
+ no warnings 'numeric';
+ IO::Socket::IP->VERSION(0.20);
+} && 'IO::Socket::IP' || eval {
+ require IO::Socket::INET6;
+ no warnings 'numeric';
+ IO::Socket::INET6->VERSION(2.62);
+} && 'IO::Socket::INET6';
+
+sub can_ssl { $ssl_class };
+sub can_inet6 { $inet6_class };
+
+our @ISA = ('Net::Cmd', $inet6_class || 'IO::Socket::INET');
sub new {
my $self = shift;
@@ -34,31 +64,40 @@ sub new {
my $obj;
my @localport = exists $arg{ResvPort} ? (LocalPort => $arg{ResvPort}) : ();
- my $h;
- foreach $h (@{$hosts}) {
+ if ($arg{SSL}) {
+ # SSL from start
+ die $nossl_warn if !$ssl_class;
+ $arg{Port} ||= 995;
+ }
+
+ $arg{Timeout} = 120 if ! defined $arg{Timeout};
+
+ foreach my $h (@{$hosts}) {
$obj = $type->SUPER::new(
PeerAddr => ($host = $h),
PeerPort => $arg{Port} || 'pop3(110)',
Proto => 'tcp',
@localport,
- Timeout => defined $arg{Timeout}
- ? $arg{Timeout}
- : 120
+ Timeout => $arg{Timeout},
)
and last;
}
- return undef
+ return
unless defined $obj;
+ ${*$obj}{'net_pop3_arg'} = \%arg;
${*$obj}{'net_pop3_host'} = $host;
+ if ($arg{SSL}) {
+ Net::POP3::_SSL->start_SSL($obj,%arg) or return;
+ }
$obj->autoflush(1);
$obj->debug(exists $arg{Debug} ? $arg{Debug} : undef);
unless ($obj->response() == CMD_OK) {
$obj->close();
- return undef;
+ return;
}
${*$obj}{'net_pop3_banner'} = $obj->message;
@@ -93,6 +132,16 @@ sub login {
and $me->pass($pass);
}
+sub starttls {
+ my $self = shift;
+ $ssl_class or die $nossl_warn;
+ $self->_STLS or return;
+ Net::POP3::_SSL->start_SSL($self,
+ %{ ${*$self}{'net_pop3_arg'} }, # (ssl) args given in new
+ @_ # more (ssl) args
+ ) or return;
+ return 1;
+}
sub apop {
@_ >= 1 && @_ <= 3 or croak 'usage: $pop3->apop( USER, PASS )';
@@ -108,10 +157,10 @@ sub apop {
}
else {
carp "You need to install Digest::MD5 or MD5 to use the APOP command";
- return undef;
+ return;
}
- return undef
+ return
unless ($banner = (${*$me}{'net_pop3_banner'} =~ /(<.*>)/)[0]);
if (@_ <= 2) {
@@ -120,7 +169,7 @@ sub apop {
$md->add($banner, $pass);
- return undef
+ return
unless ($me->_APOP($user, $md->hexdigest));
$me->_get_mailbox_count();
@@ -138,7 +187,7 @@ sub pass {
my ($me, $pass) = @_;
- return undef
+ return
unless ($me->_PASS($pass));
$me->_get_mailbox_count();
@@ -165,7 +214,7 @@ sub reset {
sub last {
@_ == 1 or croak 'usage: $obj->last()';
- return undef
+ return
unless $_[0]->_LAST && $_[0]->message =~ /(\d+)/;
return $1;
@@ -176,7 +225,7 @@ sub top {
@_ == 2 || @_ == 3 or croak 'usage: $pop3->top( MSGNUM [, NUMLINES ])';
my $me = shift;
- return undef
+ return
unless $me->_TOP($_[0], $_[1] || 0);
$me->read_until_dot;
@@ -198,7 +247,7 @@ sub list {
@_ == 1 || @_ == 2 or croak 'usage: $pop3->list( [ MSGNUM ] )';
my $me = shift;
- return undef
+ return
unless $me->_LIST(@_);
if (@_) {
@@ -207,7 +256,7 @@ sub list {
}
my $info = $me->read_until_dot
- or return undef;
+ or return;
my %hash = map { (/(\d+)\D+(\d+)/) } @$info;
@@ -219,7 +268,7 @@ sub get {
@_ == 2 or @_ == 3 or croak 'usage: $pop3->get( MSGNUM [, FH ])';
my $me = shift;
- return undef
+ return
unless $me->_RETR(shift);
$me->read_until_dot(@_);
@@ -249,16 +298,15 @@ sub uidl {
my $uidl;
$me->_UIDL(@_)
- or return undef;
+ or return;
if (@_) {
$uidl = ($me->message =~ /\d+\s+([\041-\176]+)/)[0];
}
else {
my $ref = $me->read_until_dot
- or return undef;
- my $ln;
+ or return;
$uidl = {};
- foreach $ln (@$ref) {
+ foreach my $ln (@$ref) {
my ($msg, $uid) = $ln =~ /^\s*(\d+)\s+([\041-\176]+)/;
$uidl->{$msg} = $uid;
}
@@ -323,6 +371,7 @@ sub _PING { shift->command('PING', $_[0])->response() == CMD_OK }
sub _RPOP { shift->command('RPOP', $_[0])->response() == CMD_OK }
sub _LAST { shift->command('LAST' )->response() == CMD_OK }
sub _CAPA { shift->command('CAPA' )->response() == CMD_OK }
+sub _STLS { shift->command("STLS", )->response() == CMD_OK }
sub quit {
@@ -349,7 +398,7 @@ sub DESTROY {
sub response {
my $cmd = shift;
- my $str = $cmd->getline() or return undef;
+ my $str = $cmd->getline() or return;
my $code = "500";
$cmd->debug_print(0, $str)
@@ -520,6 +569,26 @@ sub banner {
return ${*$this}{'net_pop3_banner'};
}
+{
+ package Net::POP3::_SSL;
+ our @ISA = ( $ssl_class ? ($ssl_class):(), 'Net::POP3' );
+ sub starttls { die "POP3 connection is already in SSL mode" }
+ sub start_SSL {
+ my ($class,$pop3,%arg) = @_;
+ delete @arg{ grep { !m{^SSL_} } keys %arg };
+ ( $arg{SSL_verifycn_name} ||= $pop3->host )
+ =~s{(?<!:):[\w()]+$}{}; # strip port
+ $arg{SSL_hostname} = $arg{SSL_verifycn_name}
+ if ! defined $arg{SSL_hostname} && $class->can_client_sni;
+ $arg{SSL_verifycn_scheme} ||= 'pop3';
+ my $ok = $class->SUPER::start_SSL($pop3,%arg);
+ $@ = $ssl_class->errstr if !$ok;
+ return $ok;
+ }
+}
+
+
+
1;
__END__
@@ -535,6 +604,7 @@ Net::POP3 - Post Office Protocol 3 Client class (RFC1939)
# Constructors
$pop = Net::POP3->new('pop3host');
$pop = Net::POP3->new('pop3host', Timeout => 60);
+ $pop = Net::POP3->new('pop3host', SSL => 1, Timeout => 60);
if ($pop->login($username, $password) > 0) {
my $msgnums = $pop->list; # hashref of msgnum => size
@@ -580,6 +650,14 @@ the C<PeerAddr> option in L<IO::Socket::INET>, or a reference to
an array with hosts to try in turn. The L</host> method will return the value
which was used to connect to the host.
+B<Port> - port to connect to.
+Default - 110 for plain POP3 and 995 for POP3s (direct SSL).
+
+B<SSL> - If the connection should be done from start with SSL, contrary to later
+upgrade with C<starttls>.
+You can use SSL arguments as documented in L<IO::Socket::SSL>, but it will
+usually use the right arguments already.
+
B<ResvPort> - If given then the socket for the C<Net::POP3> object
will be bound to the local port given using C<bind> when the socket is
created.
@@ -604,6 +682,11 @@ documented here.
=over 4
+=item host ()
+
+Returns the value used by the constructor, and passed to IO::Socket::INET,
+to connect to the host.
+
=item auth ( USERNAME, PASSWORD )
Attempt SASL authentication.
@@ -629,6 +712,12 @@ will give a true value in a boolean context, but zero in a numeric context.
If there was an error authenticating the user then I<undef> will be returned.
+=item starttls ( SSLARGS )
+
+Upgrade existing plain connection to SSL.
+You can use SSL arguments as documented in L<IO::Socket::SSL>, but it will
+usually use the right arguments already.
+
=item apop ( [ USER [, PASS ]] )
Authenticate with the server identifying as C<USER> with password C<PASS>.
@@ -718,6 +807,14 @@ status of all messages to not be deleted.
Quit and close the connection to the remote POP3 server. Any messages marked
as deleted will be deleted from the remote mailbox.
+=item can_inet6 ()
+
+Returns whether we can use IPv6.
+
+=item can_ssl ()
+
+Returns whether we can use SSL.
+
=back
=head1 NOTES
@@ -729,15 +826,22 @@ means that any messages marked to be deleted will not be.
=head1 SEE ALSO
L<Net::Netrc>,
-L<Net::Cmd>
+L<Net::Cmd>,
+L<IO::Socket::SSL>
=head1 AUTHOR
-Graham Barr <gbarr@pobox.com>
+Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
+
+Steve Hay E<lt>F<shay@cpan.org>E<gt> is now maintaining libnet as of version
+1.22_02
=head1 COPYRIGHT
-Copyright (c) 1995-2003 Graham Barr. All rights reserved.
+Versions up to 2.29 Copyright (c) 1995-2004 Graham Barr. All rights reserved.
+Changes in Version 2.29_01 onwards Copyright (C) 2013-2014 Steve Hay. 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/Master/tlpkg/tlperl/lib/Net/SMTP.pm b/Master/tlpkg/tlperl/lib/Net/SMTP.pm
index 705b5c5ab51..afd017aa0ef 100644
--- a/Master/tlpkg/tlperl/lib/Net/SMTP.pm
+++ b/Master/tlpkg/tlperl/lib/Net/SMTP.pm
@@ -1,25 +1,53 @@
# Net::SMTP.pm
#
-# Copyright (c) 1995-2004 Graham Barr <gbarr@pobox.com>. All rights reserved.
+# Versions up to 2.31_1 Copyright (c) 1995-2004 Graham Barr <gbarr@pobox.com>.
+# All rights reserved.
+# Changes in Version 2.31_2 onwards Copyright (C) 2013-2014 Steve Hay. All
+# rights reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
package Net::SMTP;
-require 5.001;
+use 5.008001;
use strict;
-use vars qw($VERSION @ISA);
-use Socket 1.3;
+use warnings;
+
use Carp;
use IO::Socket;
use Net::Cmd;
use Net::Config;
+use Socket;
+
+our $VERSION = "3.05";
+
+# Code for detecting if we can use SSL
+my $ssl_class = eval {
+ require IO::Socket::SSL;
+ # first version with default CA on most platforms
+ no warnings 'numeric';
+ IO::Socket::SSL->VERSION(2.007);
+} && 'IO::Socket::SSL';
-$VERSION = "2.33";
+my $nossl_warn = !$ssl_class &&
+ 'To use SSL please install IO::Socket::SSL with version>=2.007';
-@ISA = qw(Net::Cmd IO::Socket::INET);
+# Code for detecting if we can use IPv6
+my $inet6_class = eval {
+ require IO::Socket::IP;
+ no warnings 'numeric';
+ IO::Socket::IP->VERSION(0.20);
+} && 'IO::Socket::IP' || eval {
+ require IO::Socket::INET6;
+ no warnings 'numeric';
+ IO::Socket::INET6->VERSION(2.62);
+} && 'IO::Socket::INET6';
+sub can_ssl { $ssl_class };
+sub can_inet6 { $inet6_class };
+
+our @ISA = ('Net::Cmd', $inet6_class || 'IO::Socket::INET');
sub new {
my $self = shift;
@@ -33,27 +61,41 @@ sub new {
%arg = @_;
$host = delete $arg{Host};
}
+
+ if ($arg{SSL}) {
+ # SSL from start
+ die $nossl_warn if !$ssl_class;
+ $arg{Port} ||= 465;
+ }
+
my $hosts = defined $host ? $host : $NetConfig{smtp_hosts};
my $obj;
- my $h;
- foreach $h (@{ref($hosts) ? $hosts : [$hosts]}) {
+ $arg{Timeout} = 120 if ! defined $arg{Timeout};
+
+ foreach my $h (@{ref($hosts) ? $hosts : [$hosts]}) {
$obj = $type->SUPER::new(
PeerAddr => ($host = $h),
PeerPort => $arg{Port} || 'smtp(25)',
LocalAddr => $arg{LocalAddr},
LocalPort => $arg{LocalPort},
Proto => 'tcp',
- Timeout => defined $arg{Timeout}
- ? $arg{Timeout}
- : 120
+ Timeout => $arg{Timeout}
)
and last;
}
- return undef
+ return
unless defined $obj;
+ ${*$obj}{'net_smtp_arg'} = \%arg;
+ ${*$obj}{'net_smtp_host'} = $host;
+
+ if ($arg{SSL}) {
+ Net::SMTP::_SSL->start_SSL($obj,%arg)
+ or return;
+ }
+
$obj->autoflush(1);
$obj->debug(exists $arg{Debug} ? $arg{Debug} : undef);
@@ -62,11 +104,10 @@ sub new {
my $err = ref($obj) . ": " . $obj->code . " " . $obj->message;
$obj->close();
$@ = $err;
- return undef;
+ return;
}
${*$obj}{'net_smtp_exact_addr'} = $arg{ExactAddresses};
- ${*$obj}{'net_smtp_host'} = $host;
(${*$obj}{'net_smtp_banner'}) = $obj->message;
(${*$obj}{'net_smtp_domain'}) = $obj->message =~ /\A\s*(\S+)/;
@@ -75,7 +116,7 @@ sub new {
my $err = ref($obj) . ": " . $obj->code . " " . $obj->message;
$obj->close();
$@ = $err;
- return undef;
+ return;
}
$obj;
@@ -128,7 +169,10 @@ sub auth {
if (ref($username) and UNIVERSAL::isa($username, 'Authen::SASL')) {
$sasl = $username;
- $sasl->mechanism($mechanisms);
+ my $requested_mechanisms = $sasl->mechanism();
+ if (! defined($requested_mechanisms) || $requested_mechanisms eq '') {
+ $sasl->mechanism($mechanisms);
+ }
}
else {
die "auth(username, password)" if not length $username;
@@ -138,14 +182,31 @@ sub auth {
user => $username,
pass => $password,
authname => $username,
- }
+ },
+ debug => $self->debug
);
}
- # We should probably allow the user to pass the host, but I don't
- # currently know and SASL mechanisms that are used by smtp that need it
- my $client = $sasl->client_new('smtp', ${*$self}{'net_smtp_host'}, 0);
- my $str = $client->client_start;
+ my $client;
+ my $str;
+ do {
+ if ($client) {
+ # $client mechanism failed, so we need to exclude this mechanism from list
+ my $failed_mechanism = $client->mechanism;
+ return unless defined $failed_mechanism;
+ $self->debug_text("Auth mechanism failed: $failed_mechanism")
+ if $self->debug;
+ $mechanisms =~ s/\b\Q$failed_mechanism\E\b//;
+ return unless $mechanisms =~ /\S/;
+ $sasl->mechanism($mechanisms);
+ }
+
+ # We should probably allow the user to pass the host, but I don't
+ # currently know and SASL mechanisms that are used by smtp that need it
+
+ $client = $sasl->client_new('smtp', ${*$self}{'net_smtp_host'}, 0);
+ $str = $client->client_start;
+ } while (!defined $str);
# We don't support sasl mechanisms that encrypt the socket traffic.
# todo that we would really need to change the ISA hierarchy
@@ -177,8 +238,7 @@ sub hello {
if ($ok) {
my $h = ${*$me}{'net_smtp_esmtp'} = {};
- my $ln;
- foreach $ln (@msg) {
+ foreach my $ln (@msg) {
$h->{uc $1} = $2
if $ln =~ /([-\w]+)\b[= \t]*([^\n]*)/;
}
@@ -188,12 +248,26 @@ sub hello {
if $ok = $me->_HELO($domain);
}
- return undef unless $ok;
+ return unless $ok;
+ ${*$me}{net_smtp_hello_domain} = $domain;
$msg[0] =~ /\A\s*(\S+)/;
return ($1 || " ");
}
+sub starttls {
+ my $self = shift;
+ $ssl_class or die $nossl_warn;
+ $self->_STARTTLS or return;
+ Net::SMTP::_SSL->start_SSL($self,
+ %{ ${*$self}{'net_smtp_arg'} }, # (ssl) args given in new
+ @_ # more (ssl) args
+ ) or return;
+
+ # another hello after starttls to read new ESMTP capabilities
+ return $self->hello(${*$self}{net_smtp_hello_domain});
+}
+
sub supports {
my $self = shift;
@@ -399,8 +473,7 @@ sub recipient {
}
my @ok;
- my $addr;
- foreach $addr (@_) {
+ foreach my $addr (@_) {
if ($smtp->_RCPT("TO:" . _addr($smtp, $addr) . $opts)) {
push(@ok, $addr) if $skip_bad;
}
@@ -531,6 +604,28 @@ sub _BDAT { shift->command("BDAT", @_) }
sub _TURN { shift->unsupported(@_); }
sub _ETRN { shift->command("ETRN", @_)->response() == CMD_OK }
sub _AUTH { shift->command("AUTH", @_)->response() == CMD_OK }
+sub _STARTTLS { shift->command("STARTTLS")->response() == CMD_OK }
+
+
+{
+ package Net::SMTP::_SSL;
+ our @ISA = ( $ssl_class ? ($ssl_class):(), 'Net::SMTP' );
+ sub starttls { die "SMTP connection is already in SSL mode" }
+ sub start_SSL {
+ my ($class,$smtp,%arg) = @_;
+ delete @arg{ grep { !m{^SSL_} } keys %arg };
+ ( $arg{SSL_verifycn_name} ||= $smtp->host )
+ =~s{(?<!:):[\w()]+$}{}; # strip port
+ $arg{SSL_hostname} = $arg{SSL_verifycn_name}
+ if ! defined $arg{SSL_hostname} && $class->can_client_sni;
+ $arg{SSL_verifycn_scheme} ||= 'smtp';
+ my $ok = $class->SUPER::start_SSL($smtp,%arg);
+ $@ = $ssl_class->errstr if !$ok;
+ return $ok;
+ }
+}
+
+
1;
@@ -621,9 +716,15 @@ B<Host> - SMTP host to connect to. It may be a single scalar (hostname[:port]),
as defined for the C<PeerAddr> option in L<IO::Socket::INET>, or a reference to
an array with hosts to try in turn. The L</host> method will return the value
which was used to connect to the host.
+Format - C<PeerHost> from L<IO::Socket::INET> new method.
-B<Port> - port to connect to. Format - C<PeerHost> from L<IO::Socket::INET> new method.
-Default - 25.
+B<Port> - port to connect to.
+Default - 25 for plain SMTP and 465 for immediate SSL.
+
+B<SSL> - If the connection should be done from start with SSL, contrary to later
+upgrade with C<starttls>.
+You can use SSL arguments as documented in L<IO::Socket::SSL>, but it will
+usually use the right arguments already.
B<LocalAddr> and B<LocalPort> - These parameters are passed directly
to IO::Socket to allow binding the socket to a local port.
@@ -642,24 +743,32 @@ Example:
$smtp = Net::SMTP->new('mailhost',
- Hello => 'my.mail.domain',
- Timeout => 30,
+ Hello => 'my.mail.domain',
+ Timeout => 30,
Debug => 1,
- );
+ );
# the same
$smtp = Net::SMTP->new(
- Host => 'mailhost',
+ Host => 'mailhost',
+ Hello => 'my.mail.domain',
+ Timeout => 30,
+ Debug => 1,
+ );
+
+ # the same with direct SSL
+ $smtp = Net::SMTP->new('mailhost',
Hello => 'my.mail.domain',
Timeout => 30,
- Debug => 1,
+ Debug => 1,
+ SSL => 1,
);
# Connect to the default server from Net::config
$smtp = Net::SMTP->new(
- Hello => 'my.mail.domain',
- Timeout => 30,
- );
+ Hello => 'my.mail.domain',
+ Timeout => 30,
+ );
=back
@@ -702,6 +811,12 @@ to connect to the host.
Request a queue run for the DOMAIN given.
+=item starttls ( SSLARGS )
+
+Upgrade existing plain connection to SSL.
+You can use SSL arguments as documented in L<IO::Socket::SSL>, but it will
+usually use the right arguments already.
+
=item auth ( USERNAME, PASSWORD )
Attempt SASL authentication. Requires Authen::SASL module.
@@ -828,6 +943,13 @@ If C<DATA> is not specified then the result will indicate that the server
wishes the data to be sent. The data must then be sent using the C<datasend>
and C<dataend> methods described in L<Net::Cmd>.
+=item bdat ( DATA )
+
+=item bdatlast ( DATA )
+
+Use the alternate DATA command "BDAT" of the data chunking service extension
+defined in RFC1830 for efficiently sending large MIME messages.
+
=item expand ( ADDRESS )
Request the server to expand the given address Returns an array
@@ -848,6 +970,14 @@ Request help text from the server. Returns the text or undef upon failure
Send the QUIT command to the remote SMTP server and close the socket connection.
+=item can_inet6 ()
+
+Returns whether we can use IPv6.
+
+=item can_ssl ()
+
+Returns whether we can use SSL.
+
=back
=head1 ADDRESSES
@@ -868,15 +998,22 @@ accept the address surrounded by angle brackets.
=head1 SEE ALSO
-L<Net::Cmd>
+L<Net::Cmd>,
+L<IO::Socket::SSL>
=head1 AUTHOR
-Graham Barr <gbarr@pobox.com>
+Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
+
+Steve Hay E<lt>F<shay@cpan.org>E<gt> is now maintaining libnet as of version
+1.22_02
=head1 COPYRIGHT
-Copyright (c) 1995-2004 Graham Barr. All rights reserved.
+Versions up to 2.31_1 Copyright (c) 1995-2004 Graham Barr. All rights reserved.
+Changes in Version 2.31_2 onwards Copyright (C) 2013-2014 Steve Hay. 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/Master/tlpkg/tlperl/lib/Net/Time.pm b/Master/tlpkg/tlperl/lib/Net/Time.pm
index 6f1dd04586e..da259422cf8 100644
--- a/Master/tlpkg/tlperl/lib/Net/Time.pm
+++ b/Master/tlpkg/tlperl/lib/Net/Time.pm
@@ -1,26 +1,31 @@
# Net::Time.pm
#
-# Copyright (c) 1995-2004 Graham Barr <gbarr@pobox.com>. All rights reserved.
+# Versions up to 2.10 Copyright (c) 1995-2004 Graham Barr <gbarr@pobox.com>.
+# All rights reserved.
+# Changes in Version 2.11 onwards Copyright (C) 2014 Steve Hay. All rights
+# reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
package Net::Time;
+use 5.008001;
+
use strict;
-use vars qw($VERSION @ISA @EXPORT_OK $TIMEOUT);
+use warnings;
+
use Carp;
+use Exporter;
+use IO::Select;
use IO::Socket;
-require Exporter;
use Net::Config;
-use IO::Select;
-@ISA = qw(Exporter);
-@EXPORT_OK = qw(inet_time inet_daytime);
+our @ISA = qw(Exporter);
+our @EXPORT_OK = qw(inet_time inet_daytime);
-$VERSION = "2.10";
-
-$TIMEOUT = 120;
+our $VERSION = "3.05";
+our $TIMEOUT = 120;
sub _socket {
my ($pname, $pnum, $host, $proto, $timeout) = @_;
@@ -33,9 +38,9 @@ sub _socket {
my $me;
- foreach $host (@$hosts) {
+ foreach my $addr (@$hosts) {
$me = IO::Socket::INET->new(
- PeerAddr => $host,
+ PeerAddr => $addr,
PeerPort => $port,
Proto => $proto
)
@@ -57,11 +62,11 @@ sub _socket {
sub inet_time {
- my $s = _socket('time', 37, @_) || return undef;
+ my $s = _socket('time', 37, @_) || return;
my $buf = '';
my $offset = 0 | 0;
- return undef
+ return
unless defined $s->recv($buf, length(pack("N", 0)));
# unpack, we | 0 to ensure we have an unsigned
@@ -87,7 +92,7 @@ sub inet_time {
sub inet_daytime {
- my $s = _socket('daytime', 13, @_) || return undef;
+ my $s = _socket('daytime', 13, @_) || return;
my $buf = '';
defined($s->recv($buf, 1024))
@@ -107,11 +112,11 @@ Net::Time - time and daytime network client interface
use Net::Time qw(inet_time inet_daytime);
- print inet_time(); # use default host from Net::Config
+ print inet_time(); # use default host from Net::Config
print inet_time('localhost');
print inet_time('localhost', 'tcp');
- print inet_daytime(); # use default host from Net::Config
+ print inet_daytime(); # use default host from Net::Config
print inet_daytime('localhost');
print inet_daytime('localhost', 'tcp');
@@ -140,11 +145,17 @@ C<udp>. The result will be an ASCII string or I<undef> upon failure.
=head1 AUTHOR
-Graham Barr <gbarr@pobox.com>
+Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
+
+Steve Hay E<lt>F<shay@cpan.org>E<gt> is now maintaining libnet as of version
+1.22_02
=head1 COPYRIGHT
-Copyright (c) 1995-2004 Graham Barr. All rights reserved.
+Versions up to 2.11 Copyright (c) 1995-2004 Graham Barr. All rights reserved.
+Changes in Version 2.11 onwards Copyright (C) 2014 Steve Hay. 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/Master/tlpkg/tlperl/lib/Net/libnetFAQ.pod b/Master/tlpkg/tlperl/lib/Net/libnetFAQ.pod
index 78efe8c44bb..f8ad797f9e8 100644
--- a/Master/tlpkg/tlperl/lib/Net/libnetFAQ.pod
+++ b/Master/tlpkg/tlperl/lib/Net/libnetFAQ.pod
@@ -14,9 +14,9 @@ available on the libnet web page at
=head2 How to contribute to this document
You may report corrections, additions, and suggestions on the
-CPAN request tracker at
+CPAN Request Tracker at
- http://rt.cpan.org/Dist/Display.html?Name=libnet
+ http://rt.cpan.org/Public/Bug/Report.html?Queue=libnet
=head1 Author and Copyright Information
@@ -45,24 +45,24 @@ the internet community.
=head2 Which version of perl do I need ?
-libnet has been know to work with versions of perl from 5.002 onwards. However
-if your release of perl is prior to perl5.004 then you will need to
-obtain and install the IO distribution from CPAN. If you have perl5.004
-or later then you will have the IO modules in your installation already,
-but CPAN may contain updates.
+This version of libnet requires Perl 5.8.1 or higher.
=head2 What other modules do I need ?
-The only modules you will need installed are the modules from the IO
-distribution. If you have perl5.004 or later you will already have
-these modules.
+No non-core modules are required for normal use, except on os390,
+which requires Convert::EBCDIC.
+
+Authen::SASL is required for AUTH support.
+
+IO::Socket::SSL version 2.007 or higher is required for SSL support.
+
+IO::Socket::IP version 0.20 or IO::Socket::INET6 version 2.62 is
+required for IPv6 support.
=head2 What machines support libnet ?
libnet itself is an entirely perl-code distribution so it should work
-on any machine that perl runs on. However IO may not work
-with some machines and earlier releases of perl. But this
-should not be the case with perl version 5.004 or later.
+on any machine that perl runs on.
=head2 Where can I get the latest libnet release
diff --git a/Master/tlpkg/tlperl/lib/OLE.pm b/Master/tlpkg/tlperl/lib/OLE.pm
deleted file mode 100755
index 234f6986ab3..00000000000
--- a/Master/tlpkg/tlperl/lib/OLE.pm
+++ /dev/null
@@ -1,177 +0,0 @@
-# Compatibility layer for applications using the old toplevel OLE.pm.
-# New code should use Win32::OLE
-
-# This file is based on ../lib/OLE.pm from ActiveState build 315.
-
-# Compatibility notes:
-# - "GetObject" -> "GetActiveObject"
-# - "keys %$collection" -> "Win32::OLE::Enum->All($collection)"
-# or "in $Collection"
-# - "unnamed" default method retries
-
-########################################################################
-# package Win32;
-########################################################################
-
-*Win32::OLELastError = sub { return OLE->LastError() };
-
-
-########################################################################
-package OLE::Variant;
-########################################################################
-
-use Win32::OLE qw(CP_ACP);
-use Win32::OLE::Variant;
-
-use strict;
-use vars qw($AUTOLOAD @ISA $LCID $CP $Warn $LastError $_NewEnum $_Unique);
-@ISA = qw(Win32::OLE::Variant);
-
-$Warn = 0;
-$LCID = 2 << 10; # LOCALE_SYSTEM_DEFAULT
-$CP = CP_ACP;
-$_NewEnum = 0;
-$_Unique = 0;
-
-sub new {
- my $self = shift;
- my $variant = $self->SUPER::new(@_);
- $OLE::LastError = $Win32::OLE->LastError unless defined $variant;
- return $variant;
-}
-
-
-########################################################################
-package OLE::Tie;
-########################################################################
-use strict;
-use vars qw(@ISA);
-@ISA = qw(Win32::OLE::Tie);
-
-# !!! It is VERY important that Win32::OLE::Tie::DESTROY gets called. !!!
-# If you subclass DESTROY, don't forget to call $self->SUPER::DESTROY.
-# Otherwise the OLE interfaces will not be released until process termination!
-
-# Retry default method if property doesn't exist
-sub FETCH {
- my ($self,$key) = @_;
- return $self->SUPER::Fetch($key, 1);
-}
-
-sub STORE {
- my ($self,$key,$value) = @_;
- $self->SUPER::Store($key, $value, 1);
-}
-
-# Enumerate collection members, not object properties
-*FIRSTKEY = *Win32::OLE::Tie::FIRSTENUM;
-*NEXTKEY = *Win32::OLE::Tie::NEXTENUM;
-
-
-########################################################################
-package OLE;
-########################################################################
-use Win32::OLE qw(CP_ACP);
-
-# Use OleInitialize() instead of CoInitializeEx:
-Win32::OLE->Initialize(Win32::OLE::COINIT_OLEINITIALIZE);
-
-use strict;
-
-# Disable overload; unfortunately "no overload" doesn't do it :-(
-# Overloading is no longer enabled by default in Win32::OLE
-#use overload '""' => sub {overload::StrVal($_[0])},
-# '0+' => sub {overload::StrVal($_[0])};
-
-use vars qw($AUTOLOAD @ISA $LCID $CP $Warn $LastError $Tie);
-@ISA = qw(Win32::OLE);
-
-$Warn = 0;
-$LCID = 2 << 10; # LOCALE_SYSTEM_DEFAULT
-$CP = CP_ACP;
-$Tie = 'OLE::Tie';
-
-sub new {
- my $class = shift;
- $class = shift if $class eq 'OLE';
- return OLE->SUPER::new($class);
-}
-
-sub copy {
- my $class = shift;
- $class = shift if $class eq 'OLE';
- return OLE->SUPER::GetActiveObject($class);
-}
-
-sub AUTOLOAD {
- my $self = shift;
- my $retval;
- $AUTOLOAD =~ s/.*:://o;
-
- Carp::croak("Cannot autoload class method \"$AUTOLOAD\"")
- unless ref($self) && UNIVERSAL::isa($self,'OLE');
-
- local $^H = 0; # !hack alert!
- unless (defined $self->Dispatch($AUTOLOAD, $retval, @_)) {
- # Retry default method
- $self->Dispatch(undef, $retval, $AUTOLOAD, @_);
- }
- return $retval;
-}
-
-*CreateObject = \&new;
-*GetObject = \&copy;
-
-# Automation data types.
-
-sub VT_EMPTY {0;}
-sub VT_NULL {1;}
-sub VT_I2 {2;}
-sub VT_I4 {3;}
-sub VT_R4 {4;}
-sub VT_R8 {5;}
-sub VT_CY {6;}
-sub VT_DATE {7;}
-sub VT_BSTR {8;}
-sub VT_DISPATCH {9;}
-sub VT_ERROR {10;}
-sub VT_BOOL {11;}
-sub VT_VARIANT {12;}
-sub VT_UNKNOWN {13;}
-sub VT_I1 {16;}
-sub VT_UI1 {17;}
-sub VT_UI2 {18;}
-sub VT_UI4 {19;}
-sub VT_I8 {20;}
-sub VT_UI8 {21;}
-sub VT_INT {22;}
-sub VT_UINT {23;}
-sub VT_VOID {24;}
-sub VT_HRESULT {25;}
-sub VT_PTR {26;}
-sub VT_SAFEARRAY {27;}
-sub VT_CARRAY {28;}
-sub VT_USERDEFINED {29;}
-sub VT_LPSTR {30;}
-sub VT_LPWSTR {31;}
-sub VT_FILETIME {64;}
-sub VT_BLOB {65;}
-sub VT_STREAM {66;}
-sub VT_STORAGE {67;}
-sub VT_STREAMED_OBJECT {68;}
-sub VT_STORED_OBJECT {69;}
-sub VT_BLOB_OBJECT {70;}
-sub VT_CF {71;}
-sub VT_CLSID {72;}
-
-sub TKIND_ENUM {0;}
-sub TKIND_RECORD {1;}
-sub TKIND_MODULE {2;}
-sub TKIND_INTERFACE {3;}
-sub TKIND_DISPATCH {4;}
-sub TKIND_COCLASS {5;}
-sub TKIND_ALIAS {6;}
-sub TKIND_UNION {7;}
-sub TKIND_MAX {8;}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Opcode.pm b/Master/tlpkg/tlperl/lib/Opcode.pm
index a48b01d3069..c9a3f15f478 100644
--- a/Master/tlpkg/tlperl/lib/Opcode.pm
+++ b/Master/tlpkg/tlperl/lib/Opcode.pm
@@ -6,7 +6,7 @@ use strict;
our($VERSION, @ISA, @EXPORT_OK);
-$VERSION = "1.27";
+$VERSION = "1.32";
use Carp;
use Exporter ();
@@ -312,14 +312,15 @@ invert_opset function.
av2arylen
rv2hv helem hslice kvhslice each values keys exists delete
- aeach akeys avalues reach rvalues rkeys
+ aeach akeys avalues reach rvalues rkeys multideref
preinc i_preinc predec i_predec postinc i_postinc
postdec i_postdec int hex oct abs pow multiply i_multiply
divide i_divide modulo i_modulo add i_add subtract i_subtract
- left_shift right_shift bit_and bit_xor bit_or negate i_negate
- not complement
+ left_shift right_shift bit_and bit_xor bit_or nbit_and
+ nbit_xor nbit_or sbit_and sbit_xor sbit_or negate i_negate not
+ complement ncomplement scomplement
lt i_lt gt i_gt le i_le ge i_ge eq i_eq ne i_ne ncmp i_ncmp
slt sgt sle sge seq sne scmp
@@ -337,9 +338,10 @@ invert_opset function.
warn die lineseq nextstate scope enter leave
- rv2cv anoncode prototype coreargs
+ rv2cv anoncode prototype coreargs anonconst
entersub leavesub leavesublv return method method_named
+ method_super method_redir method_redir_super
-- XXX loops via recursion?
leaveeval -- needed for Safe to operate, is safe
@@ -402,7 +404,7 @@ These are a hotchpotch of opcodes still waiting to be considered
once
- rv2gv refgen srefgen ref
+ rv2gv refgen srefgen ref refassign lvref lvrefslice lvavref
bless -- could be used to change ownership of objects
(reblessing)
diff --git a/Master/tlpkg/tlperl/lib/POSIX.pm b/Master/tlpkg/tlperl/lib/POSIX.pm
index 78ffe2f3183..6fc0e7518e0 100644
--- a/Master/tlpkg/tlperl/lib/POSIX.pm
+++ b/Master/tlpkg/tlperl/lib/POSIX.pm
@@ -4,7 +4,7 @@ use warnings;
our ($AUTOLOAD, %SIGRT);
-our $VERSION = '1.38_03';
+our $VERSION = '1.53_01';
require XSLoader;
@@ -151,7 +151,7 @@ my %reimpl = (
exit => 'status => CORE::exit($_[0])',
getenv => 'name => $ENV{$_[0]}',
system => 'command => CORE::system($_[0])',
- strerror => 'errno => local $! = $_[0]; "$!"',
+ strerror => 'errno => BEGIN { local $!; require locale; locale->import} my $e = $_[0] + 0; local $!; $! = $e; "$!"',
strstr => 'big, little => CORE::index($_[0], $_[1])',
chmod => 'mode, filename => CORE::chmod($_[0], $_[1])',
fstat => 'fd => CORE::open my $dup, "<&", $_[0]; CORE::stat($dup)', # Gross.
@@ -234,7 +234,7 @@ sub sprintf {
}
sub load_imports {
-our %EXPORT_TAGS = (
+my %default_export_tags = (
assert_h => [qw(assert NDEBUG)],
@@ -296,8 +296,13 @@ our %EXPORT_TAGS = (
LC_MONETARY LC_NUMERIC LC_TIME NULL
localeconv setlocale)],
- math_h => [qw(HUGE_VAL acos asin atan ceil cosh fabs floor fmod
- frexp ldexp log10 modf pow sinh tan tanh)],
+ math_h => [qw(FP_ILOGB0 FP_ILOGBNAN FP_INFINITE FP_NAN FP_NORMAL
+ FP_SUBNORMAL FP_ZERO
+ M_1_PI M_2_PI M_2_SQRTPI M_E M_LN10 M_LN2 M_LOG10E M_LOG2E
+ M_PI M_PI_2 M_PI_4 M_SQRT1_2 M_SQRT2
+ HUGE_VAL INFINITY NAN
+ acos asin atan ceil cosh fabs floor fmod
+ frexp ldexp log10 modf pow sinh tan tanh)],
pwd_h => [],
@@ -384,18 +389,36 @@ our %EXPORT_TAGS = (
utime_h => [],
);
-# Exporter::export_tags();
+my %other_export_tags = (
+ fenv_h => [qw(
+ FE_DOWNWARD FE_TONEAREST FE_TOWARDZERO FE_UPWARD fegetround fesetround
+ )],
+
+ math_h_c99 => [ @{$default_export_tags{math_h}}, qw(
+ Inf NaN acosh asinh atanh cbrt copysign erf erfc exp2 expm1 fdim fma
+ fmax fmin fpclassify hypot ilogb isfinite isgreater isgreaterequal
+ isinf isless islessequal islessgreater isnan isnormal isunordered j0 j1
+ jn lgamma log1p log2 logb lrint nan nearbyint nextafter nexttoward
+ remainder remquo rint round scalbn signbit tgamma trunc y0 y1 yn
+ )],
+
+ stdlib_h_c99 => [ @{$default_export_tags{stdlib_h}}, 'strtold' ],
+);
+
{
# De-duplicate the export list:
- my %export;
- @export{map {@$_} values %EXPORT_TAGS} = ();
+ my ( %export, %export_ok );
+ @export {map {@$_} values %default_export_tags} = ();
+ @export_ok{map {@$_} values %other_export_tags} = ();
# Doing the de-dup with a temporary hash has the advantage that the SVs in
# @EXPORT are actually shared hash key scalars, which will save some memory.
our @EXPORT = keys %export;
our @EXPORT_OK = (qw(close lchown nice open pipe read sleep times write
printf sprintf),
- grep {!exists $export{$_}} keys %reimpl, keys %replacement);
+ grep {!exists $export{$_}} keys %reimpl, keys %replacement, keys %export_ok);
+
+ our %EXPORT_TAGS = ( %default_export_tags, %other_export_tags );
}
require Exporter;
diff --git a/Master/tlpkg/tlperl/lib/POSIX.pod b/Master/tlpkg/tlperl/lib/POSIX.pod
index 94a5f9dcd97..0ca7bb77bb2 100644
--- a/Master/tlpkg/tlperl/lib/POSIX.pod
+++ b/Master/tlpkg/tlperl/lib/POSIX.pod
@@ -21,15 +21,6 @@ The POSIX module permits you to access all (or nearly all) the standard
POSIX 1003.1 identifiers. Many of these identifiers have been given Perl-ish
interfaces.
-I<Everything is exported by default> with the exception of any POSIX
-functions with the same name as a built-in Perl function, such as
-C<abs>, C<alarm>, C<rmdir>, C<write>, etc.., which will be exported
-only if you ask for them explicitly. This is an unfortunate backwards
-compatibility feature. You can stop the exporting by saying S<C<use
-POSIX ()>> and then use the fully qualified names (I<e.g.>, C<POSIX::SEEK_END>),
-or by giving an explicit import list. If you do neither, and opt for the
-default, S<C<use POSIX;>> has to import I<553 symbols>.
-
This document gives a condensed list of the features available in the POSIX
module. Consult your operating system's manpages for general information on
most features. Consult L<perlfunc> for functions which are noted as being
@@ -43,6 +34,15 @@ constants and macros in an organization which roughly follows IEEE Std
=head1 CAVEATS
+I<Everything is exported by default> (with a handful of exceptions).
+This is an unfortunate backwards compatibility feature and its use is
+B<strongly L<discouraged|perlpolicy/discouraged>>.
+You should either prevent the exporting (by saying S<C<use POSIX ();>>,
+as usual) and then use fully qualified names (e.g. C<POSIX::SEEK_END>),
+or give an explicit import list.
+If you do neither and opt for the default (as in S<C<use POSIX;>>), you
+will import I<hundreds and hundreds> of symbols into your namespace.
+
A few functions are not implemented because they are C specific. If you
attempt to call these, they will print a message telling you that they
aren't implemented, and suggest using the Perl equivalent, should one
@@ -102,6 +102,12 @@ I<race condition>.
This is identical to the C function C<acos()>, returning
the arcus cosine of its numerical argument. See also L<Math::Trig>.
+=item C<acosh>
+
+This is identical to the C function C<acosh()>, returning the
+hyperbolic arcus cosine of its numerical argument [C99]. See also
+L<Math::Trig>.
+
=item C<alarm>
This is identical to Perl's builtin C<alarm()> function,
@@ -128,6 +134,12 @@ The C<$mon> is zero-based: January equals C<0>. The C<$year> is
This is identical to the C function C<asin()>, returning
the arcus sine of its numerical argument. See also L<Math::Trig>.
+=item C<asinh>
+
+This is identical to the C function C<asinh()>, returning the
+hyperbolic arcus sine of its numerical argument [C99]. See also
+L<Math::Trig>.
+
=item C<assert>
Unimplemented, but you can use L<perlfunc/die> and the L<Carp> module
@@ -138,6 +150,12 @@ to achieve similar things.
This is identical to the C function C<atan()>, returning the
arcus tangent of its numerical argument. See also L<Math::Trig>.
+=item C<atanh>
+
+This is identical to the C function C<atanh()>, returning the
+hyperbolic arcus tangent of its numerical argument [C99]. See also
+L<Math::Trig>.
+
=item C<atan2>
This is identical to Perl's builtin C<atan2()> function, returning
@@ -146,22 +164,22 @@ coordinate and the I<x> coordinate. See also L<Math::Trig>.
=item C<atexit>
-C<atexit()> is C-specific: use C<END {}> instead, see L<perlmod>.
+Not implemented. C<atexit()> is C-specific: use C<END {}> instead, see L<perlmod>.
=item C<atof>
-C<atof()> is C-specific. Perl converts strings to numbers transparently.
+Not implemented. C<atof()> is C-specific. Perl converts strings to numbers transparently.
If you need to force a scalar to a number, add a zero to it.
=item C<atoi>
-C<atoi()> is C-specific. Perl converts strings to numbers transparently.
+Not implemented. C<atoi()> is C-specific. Perl converts strings to numbers transparently.
If you need to force a scalar to a number, add a zero to it.
If you need to have just the integer part, see L<perlfunc/int>.
=item C<atol>
-C<atol()> is C-specific. Perl converts strings to numbers transparently.
+Not implemented. C<atol()> is C-specific. Perl converts strings to numbers transparently.
If you need to force a scalar to a number, add a zero to it.
If you need to have just the integer part, see L<perlfunc/int>.
@@ -172,7 +190,11 @@ see L<Search::Dict>.
=item C<calloc>
-C<calloc()> is C-specific. Perl does memory management transparently.
+Not implemented. C<calloc()> is C-specific. Perl does memory management transparently.
+
+=item C<cbrt>
+
+The cube root [C99].
=item C<ceil>
@@ -196,7 +218,7 @@ to change file and directory owners and groups, see L<perlfunc/chown>.
=item C<clearerr>
-Use the method C<IO::Handle::clearerr()> instead, to reset the error
+Not implemented. Use the method C<IO::Handle::clearerr()> instead, to reset the error
state (if any) and EOF state (if any) of the given stream.
=item C<clock>
@@ -232,6 +254,14 @@ See also L<Math::Trig>.
This is identical to the C function C<cosh()>, for returning
the hyperbolic cosine of its numeric argument. See also L<Math::Trig>.
+=item C<copysign>
+
+Returns C<x> but with the sign of C<y> [C99].
+
+ $x_with_sign_of_y = POSIX::copysign($x, $y);
+
+See also L</signbit>.
+
=item C<creat>
Create a new file. This returns a file descriptor like the ones returned by
@@ -267,7 +297,7 @@ by C<time()>), see L</time>.
=item C<div>
-C<div()> is C-specific, use L<perlfunc/int> on the usual C</> division and
+Not implemented. C<div()> is C-specific, use L<perlfunc/int> on the usual C</> division and
the modulus C<%>.
=item C<dup>
@@ -290,6 +320,14 @@ C<POSIX::open>.
Returns C<undef> on failure.
+=item C<erf>
+
+The error function [C99].
+
+=item C<erfc>
+
+The complementary error function [C99].
+
=item C<errno>
Returns the value of errno.
@@ -300,27 +338,27 @@ This identical to the numerical values of the C<$!>, see L<perlvar/$ERRNO>.
=item C<execl>
-C<execl()> is C-specific, see L<perlfunc/exec>.
+Not implemented. C<execl()> is C-specific, see L<perlfunc/exec>.
=item C<execle>
-C<execle()> is C-specific, see L<perlfunc/exec>.
+Not implemented. C<execle()> is C-specific, see L<perlfunc/exec>.
=item C<execlp>
-C<execlp()> is C-specific, see L<perlfunc/exec>.
+Not implemented. C<execlp()> is C-specific, see L<perlfunc/exec>.
=item C<execv>
-C<execv()> is C-specific, see L<perlfunc/exec>.
+Not implemented. C<execv()> is C-specific, see L<perlfunc/exec>.
=item C<execve>
-C<execve()> is C-specific, see L<perlfunc/exec>.
+Not implemented. C<execve()> is C-specific, see L<perlfunc/exec>.
=item C<execvp>
-C<execvp()> is C-specific, see L<perlfunc/exec>.
+Not implemented. C<execvp()> is C-specific, see L<perlfunc/exec>.
=item C<exit>
@@ -333,6 +371,12 @@ This is identical to Perl's builtin C<exp()> function for
returning the exponent (I<e>-based) of the numerical argument,
see L<perlfunc/exp>.
+=item C<expm1>
+
+Equivalent to C<exp(x) - 1>, but more precise for small argument values [C99].
+
+See also L</log1p>.
+
=item C<fabs>
This is identical to Perl's builtin C<abs()> function for returning
@@ -340,7 +384,7 @@ the absolute value of the numerical argument, see L<perlfunc/abs>.
=item C<fclose>
-Use method C<IO::Handle::close()> instead, or see L<perlfunc/close>.
+Not implemented. Use method C<IO::Handle::close()> instead, or see L<perlfunc/close>.
=item C<fcntl>
@@ -349,56 +393,91 @@ see L<perlfunc/fcntl>.
=item C<fdopen>
-Use method C<IO::Handle::new_from_fd()> instead, or see L<perlfunc/open>.
+Not implemented. Use method C<IO::Handle::new_from_fd()> instead, or see L<perlfunc/open>.
=item C<feof>
-Use method C<IO::Handle::eof()> instead, or see L<perlfunc/eof>.
+Not implemented. Use method C<IO::Handle::eof()> instead, or see L<perlfunc/eof>.
=item C<ferror>
-Use method C<IO::Handle::error()> instead.
+Not implemented. Use method C<IO::Handle::error()> instead.
=item C<fflush>
-Use method C<IO::Handle::flush()> instead.
+Not implemented. Use method C<IO::Handle::flush()> instead.
See also C<L<perlvar/$OUTPUT_AUTOFLUSH>>.
=item C<fgetc>
-Use method C<IO::Handle::getc()> instead, or see L<perlfunc/read>.
+Not implemented. Use method C<IO::Handle::getc()> instead, or see L<perlfunc/read>.
=item C<fgetpos>
-Use method C<IO::Seekable::getpos()> instead, or see L<perlfunc/seek>.
+Not implemented. Use method C<IO::Seekable::getpos()> instead, or see L<perlfunc/seek>.
=item C<fgets>
-Use method C<IO::Handle::gets()> instead. Similar to E<lt>E<gt>, also known
+Not implemented. Use method C<IO::Handle::gets()> instead. Similar to E<lt>E<gt>, also known
as L<perlfunc/readline>.
=item C<fileno>
-Use method C<IO::Handle::fileno()> instead, or see L<perlfunc/fileno>.
+Not implemented. Use method C<IO::Handle::fileno()> instead, or see L<perlfunc/fileno>.
=item C<floor>
This is identical to the C function C<floor()>, returning the largest
integer value less than or equal to the numerical argument.
+=item C<fdim>
+
+"Positive difference", S<C<x - y>> if S<C<x E<gt> y>>, zero otherwise [C99].
+
+=item C<fegetround>
+
+Returns the current floating point rounding mode, one of
+
+ FE_TONEAREST FE_TOWARDZERO FE_UPWARD FE_UPWARD
+
+C<FE_TONEAREST> is like L</round>, C<FE_TOWARDZERO> is like L</trunc> [C99].
+
+=item C<fesetround>
+
+Sets the floating point rounding mode, see L</fegetround> [C99].
+
+=item C<fma>
+
+"Fused multiply-add", S<C<x * y + z>>, possibly faster (and less lossy)
+than the explicit two operations [C99].
+
+ my $fused = POSIX::fma($x, $y, $z);
+
+=item C<fmax>
+
+Maximum of C<x> and C<y>, except when either is C<NaN>, returns the other [C99].
+
+ my $min = POSIX::fmax($x, $y);
+
+=item C<fmin>
+
+Minimum of C<x> and C<y>, except when either is C<NaN>, returns the other [C99].
+
+ my $min = POSIX::fmin($x, $y);
+
=item C<fmod>
This is identical to the C function C<fmod()>.
$r = fmod($x, $y);
-It returns the remainder C<$r = $x - $n*$y>, where C<$n = trunc($x/$y)>.
+It returns the remainder S<C<$r = $x - $n*$y>>, where S<C<$n = trunc($x/$y)>>.
The C<$r> has the same sign as C<$x> and magnitude (absolute value)
less than the magnitude of C<$y>.
=item C<fopen>
-Use method C<IO::File::open()> instead, or see L<perlfunc/open>.
+Not implemented. Use method C<IO::File::open()> instead, or see L<perlfunc/open>.
=item C<fork>
@@ -419,29 +498,40 @@ pathname on the filesystem which holds F</var/foo>.
Returns C<undef> on failure.
+=item C<fpclassify>
+
+Returns one of
+
+ FP_NORMAL FP_ZERO FP_SUBNORMAL FP_INFINITE FP_NAN
+
+telling the class of the argument [C99]. C<FP_INFINITE> is positive
+or negative infinity, C<FP_NAN> is not-a-number. C<FP_SUBNORMAL>
+means subnormal numbers (also known as denormals), very small numbers
+with low precision. C<FP_ZERO> is zero. C<FP_NORMAL> is all the rest.
+
=item C<fprintf>
-C<fprintf()> is C-specific, see L<perlfunc/printf> instead.
+Not implemented. C<fprintf()> is C-specific, see L<perlfunc/printf> instead.
=item C<fputc>
-C<fputc()> is C-specific, see L<perlfunc/print> instead.
+Not implemented. C<fputc()> is C-specific, see L<perlfunc/print> instead.
=item C<fputs>
-C<fputs()> is C-specific, see L<perlfunc/print> instead.
+Not implemented. C<fputs()> is C-specific, see L<perlfunc/print> instead.
=item C<fread>
-C<fread()> is C-specific, see L<perlfunc/read> instead.
+Not implemented. C<fread()> is C-specific, see L<perlfunc/read> instead.
=item C<free>
-C<free()> is C-specific. Perl does memory management transparently.
+Not implemented. C<free()> is C-specific. Perl does memory management transparently.
=item C<freopen>
-C<freopen()> is C-specific, see L<perlfunc/open> instead.
+Not implemented. C<freopen()> is C-specific, see L<perlfunc/open> instead.
=item C<frexp>
@@ -451,15 +541,15 @@ Return the mantissa and exponent of a floating-point number.
=item C<fscanf>
-C<fscanf()> is C-specific, use E<lt>E<gt> and regular expressions instead.
+Not implemented. C<fscanf()> is C-specific, use E<lt>E<gt> and regular expressions instead.
=item C<fseek>
-Use method C<IO::Seekable::seek()> instead, or see L<perlfunc/seek>.
+Not implemented. Use method C<IO::Seekable::seek()> instead, or see L<perlfunc/seek>.
=item C<fsetpos>
-Use method C<IO::Seekable::setpos()> instead, or seek L<perlfunc/seek>.
+Not implemented. Use method C<IO::Seekable::setpos()> instead, or seek L<perlfunc/seek>.
=item C<fstat>
@@ -472,15 +562,15 @@ Perl's builtin C<stat> function.
=item C<fsync>
-Use method C<IO::Handle::sync()> instead.
+Not implemented. Use method C<IO::Handle::sync()> instead.
=item C<ftell>
-Use method C<IO::Seekable::tell()> instead, or see L<perlfunc/tell>.
+Not implemented. Use method C<IO::Seekable::tell()> instead, or see L<perlfunc/tell>.
=item C<fwrite>
-C<fwrite()> is C-specific, see L<perlfunc/print> instead.
+Not implemented. C<fwrite()> is C-specific, see L<perlfunc/print> instead.
=item C<getc>
@@ -587,6 +677,29 @@ This is identical to Perl's builtin C<gmtime()> function for
converting seconds since the epoch to a date in Greenwich Mean Time,
see L<perlfunc/gmtime>.
+=item C<hypot>
+
+Equivalent to C<S<sqrt(x * x + y * y)>> except more stable on very large
+or very small arguments [C99].
+
+=item C<ilogb>
+
+Integer binary logarithm [C99]
+
+For example C<ilogb(20)> is 4, as an integer.
+
+See also L</logb>.
+
+=item C<Inf>
+
+The infinity as a constant:
+
+ use POSIX qw(Inf);
+ my $pos_inf = +Inf; # Or just Inf.
+ my $neg_inf = -Inf;
+
+See also L</isinf>, and L</fpclassify>.
+
=item C<isalnum>
Deprecated function whose use raises a warning, and which is slated to
@@ -662,6 +775,13 @@ corresponding C function returns C<TRUE> for every byte in the string.
You may want to use the C<L<E<sol>\dE<sol>|perlrecharclass/Digits>>
construct instead.
+=item C<isfinite>
+
+Returns true if the argument is a finite number (that is, not an
+infinity, or the not-a-number) [C99].
+
+See also L</isinf>, L</isnan>, and L</fpclassify>.
+
=item C<isgraph>
Deprecated function whose use raises a warning, and which is slated to
@@ -678,6 +798,19 @@ modifier is in effect?>).
The function returns C<TRUE> if the input string is empty, or if the
corresponding C function returns C<TRUE> for every byte in the string.
+=item C<isgreater>
+
+(Also C<isgreaterequal>, C<isless>, C<islessequal>, C<islessgreater>,
+C<isunordered>)
+
+Floating point comparisons which handle the C<NaN> [C99].
+
+=item C<isinf>
+
+Returns true if the argument is an infinity (positive or negative) [C99].
+
+See also L</Inf>, L</isnan>, L</isfinite>, and L</fpclassify>.
+
=item C<islower>
Deprecated function whose use raises a warning, and which is slated to
@@ -696,6 +829,25 @@ corresponding C function returns C<TRUE> for every byte in the string.
Do B<not> use C</[a-z]/> unless you don't care about the current locale.
+=item C<isnan>
+
+Returns true if the argument is C<NaN> (not-a-number) [C99].
+
+Note that you cannot test for "C<NaN>-ness" with
+
+ $x == $x
+
+since the C<NaN> is not equivalent to anything, B<including itself>.
+
+See also L</nan>, L</NaN>, L</isinf>, and L</fpclassify>.
+
+=item C<isnormal>
+
+Returns true if the argument is normal (that is, not a subnormal/denormal,
+and not an infinity, or a not-a-number) [C99].
+
+See also L</isfinite>, and L</fpclassify>.
+
=item C<isprint>
Deprecated function whose use raises a warning, and which is slated to
@@ -781,6 +933,20 @@ modifier is in effect?>).
The function returns C<TRUE> if the input string is empty, or if the
corresponding C function returns C<TRUE> for every byte in the string.
+=item C<j0>
+
+=item C<j1>
+
+=item C<jn>
+
+=item C<y0>
+
+=item C<y1>
+
+=item C<yn>
+
+The Bessel function of the first kind of the order zero.
+
=item C<kill>
This is identical to Perl's builtin C<kill()> function for sending
@@ -788,17 +954,19 @@ signals to processes (often to terminate them), see L<perlfunc/kill>.
=item C<labs>
-(For returning absolute values of long integers.)
+Not implemented. (For returning absolute values of long integers.)
C<labs()> is C-specific, see L<perlfunc/abs> instead.
=item C<lchown>
This is identical to the C function, except the order of arguments is
consistent with Perl's builtin C<chown()> with the added restriction
-of only one path, not an list of paths. Does the same thing as the
-C<chown()> function but changes the owner of a symbolic link instead
+of only one path, not a list of paths. Does the same thing as the
+C<chown()> function but changes the owner of a symbolic link instead
of the file the symbolic link points to.
+ POSIX::lchown($uid, $gid, $file_path);
+
=item C<ldexp>
This is identical to the C function C<ldexp()>
@@ -808,9 +976,34 @@ for multiplying floating point numbers with powers of two.
=item C<ldiv>
-(For computing dividends of long integers.)
+Not implemented. (For computing dividends of long integers.)
C<ldiv()> is C-specific, use C</> and C<int()> instead.
+=item C<lgamma>
+
+The logarithm of the Gamma function [C99].
+
+See also L</tgamma>.
+
+=item C<log1p>
+
+Equivalent to S<C<log(1 + x)>>, but more stable results for small argument
+values [C99].
+
+=item C<log2>
+
+Logarithm base two [C99].
+
+See also L</expm1>.
+
+=item C<logb>
+
+Integer binary logarithm [C99].
+
+For example C<logb(20)> is 4, as a floating point number.
+
+See also L</ilogb>.
+
=item C<link>
This is identical to Perl's builtin C<link()> function
@@ -819,7 +1012,7 @@ for creating hard links into files, see L<perlfunc/link>.
=item C<localeconv>
Get numeric formatting information. Returns a reference to a hash
-containing the current locale formatting values. Users of this function
+containing the current underlying locale's formatting values. Users of this function
should also read L<perllocale>, which provides a comprehensive
discussion of Perl locale handling, including
L<a section devoted to this function|perllocale/The localeconv function>.
@@ -848,12 +1041,21 @@ Here is how to query the database for the B<de> (Deutsch or German) locale.
n_sep_by_space
p_sign_posn
n_sign_posn
+ int_p_cs_precedes
+ int_p_sep_by_space
+ int_n_cs_precedes
+ int_n_sep_by_space
+ int_p_sign_posn
+ int_n_sign_posn
))
{
printf qq(%s: "%s",\n),
$property, $lconv->{$property};
}
+The members whose names begin with C<int_p_> and C<int_n_> were added by
+POSIX.1-2008 and are only available on systems that support them.
+
=item C<localtime>
This is identical to Perl's builtin C<localtime()> function for
@@ -883,7 +1085,7 @@ or
=item C<longjmp>
-C<longjmp()> is C-specific: use L<perlfunc/die> instead.
+Not implemented. C<longjmp()> is C-specific: use L<perlfunc/die> instead.
=item C<lseek>
@@ -895,50 +1097,66 @@ those obtained by calling C<POSIX::open>.
Returns C<undef> on failure.
+=item C<lrint>
+
+Depending on the current floating point rounding mode, rounds the
+argument either toward nearest (like L</round>), toward zero (like
+L</trunc>), downward (toward negative infinity), or upward (toward
+positive infinity) [C99].
+
+For the rounding mode, see L</fegetround>.
+
+=item C<lround>
+
+Like L</round>, but as integer, as opposed to floating point [C99].
+
+See also L</ceil>, L</floor>, L</trunc>.
+
=item C<malloc>
-C<malloc()> is C-specific. Perl does memory management transparently.
+Not implemented. C<malloc()> is C-specific. Perl does memory management transparently.
=item C<mblen>
This is identical to the C function C<mblen()>.
-Perl does not have any support for the wide and multibyte
-characters of the C standards, so this might be a rather
-useless function.
+
+Core Perl does not have any support for the wide and multibyte
+characters of the C standards, except under UTF-8 locales, so this might
+be a rather useless function.
+
+However, Perl supports Unicode, see L<perluniintro>.
=item C<mbstowcs>
This is identical to the C function C<mbstowcs()>.
-Perl does not have any support for the wide and multibyte
-characters of the C standards, so this might be a rather
-useless function.
+
+See L</mblen>.
=item C<mbtowc>
This is identical to the C function C<mbtowc()>.
-Perl does not have any support for the wide and multibyte
-characters of the C standards, so this might be a rather
-useless function.
+
+See L</mblen>.
=item C<memchr>
-C<memchr()> is C-specific, see L<perlfunc/index> instead.
+Not implemented. C<memchr()> is C-specific, see L<perlfunc/index> instead.
=item C<memcmp>
-C<memcmp()> is C-specific, use C<eq> instead, see L<perlop>.
+Not implemented. C<memcmp()> is C-specific, use C<eq> instead, see L<perlop>.
=item C<memcpy>
-C<memcpy()> is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
+Not implemented. C<memcpy()> is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
=item C<memmove>
-C<memmove()> is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
+Not implemented. C<memmove()> is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
=item C<memset>
-C<memset()> is C-specific, use C<x> instead, see L<perlop>.
+Not implemented. C<memset()> is C-specific, use C<x> instead, see L<perlop>.
=item C<mkdir>
@@ -965,9 +1183,9 @@ Synopsis:
mktime(sec, min, hour, mday, mon, year, wday = 0,
yday = 0, isdst = -1)
-The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
-I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
-year (C<year>) is given in years since 1900. I.e. The year 1995 is 95; the
+The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero,
+I<i.e.>, January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
+year (C<year>) is given in years since 1900; I<i.e.>, the year 1995 is 95; the
year 2001 is 101. Consult your system's C<mktime()> manpage for details
about these and the other arguments.
@@ -984,18 +1202,59 @@ Return the integral and fractional parts of a floating-point number.
($fractional, $integral) = POSIX::modf( 3.14 );
+See also L</round>.
+
+=item C<NaN>
+
+The not-a-number as a constant:
+
+ use POSIX qw(NaN);
+ my $nan = NaN;
+
+See also L</nan>, C</isnan>, and L</fpclassify>.
+
+=item C<nan>
+
+Returns not-a-number [C99].
+
+See also L</isnan> and L</NaN>.
+
+=item C<nearbyint>
+
+Returns the nearest integer to the argument, according to the current
+rounding mode (see L</fegetround>) [C99].
+
+=item C<nextafter>
+
+Returns the next representable floating point number after C<x> in the
+direction of C<y> [C99].
+
+ my $nextafter = POSIX::nextafter($x, $y);
+
+Like L</nexttoward>, but potentially less accurate.
+
+=item C<nexttoward>
+
+Returns the next representable floating point number after C<x> in the
+direction of C<y> [C99].
+
+ my $nexttoward = POSIX::nexttoward($x, $y);
+
+Like L</nextafter>, but potentially more accurate.
+
=item C<nice>
This is similar to the C function C<nice()>, for changing
the scheduling preference of the current process. Positive
-arguments mean more polite process, negative values more
-needy process. Normal user processes can only be more polite.
+arguments mean a more polite process, negative values a more
+needy process. Normal (non-root) user processes can only change towards
+being more polite.
Returns C<undef> on failure.
=item C<offsetof>
-C<offsetof()> is C-specific, you probably want to see L<perlfunc/pack> instead.
+Not implemented. C<offsetof()> is C-specific, you probably want to see L<perlfunc/pack> instead.
=item C<open>
@@ -1083,24 +1342,24 @@ You can also use the C<**> operator, see L<perlop>.
=item C<printf>
-Formats and prints the specified arguments to STDOUT.
+Formats and prints the specified arguments to C<STDOUT>.
See also L<perlfunc/printf>.
=item C<putc>
-C<putc()> is C-specific, see L<perlfunc/print> instead.
+Not implemented. C<putc()> is C-specific, see L<perlfunc/print> instead.
=item C<putchar>
-C<putchar()> is C-specific, see L<perlfunc/print> instead.
+Not implemented. C<putchar()> is C-specific, see L<perlfunc/print> instead.
=item C<puts>
-C<puts()> is C-specific, see L<perlfunc/print> instead.
+Not implemented. C<puts()> is C-specific, see L<perlfunc/print> instead.
=item C<qsort>
-C<qsort()> is C-specific, see L<perlfunc/sort> instead.
+Not implemented. C<qsort()> is C-specific, see L<perlfunc/sort> instead.
=item C<raise>
@@ -1109,7 +1368,7 @@ See also L<perlfunc/kill> and the C<$$> in L<perlvar/$PID>.
=item C<rand>
-C<rand()> is non-portable, see L<perlfunc/rand> instead.
+Not implemented. C<rand()> is non-portable, see L<perlfunc/rand> instead.
=item C<read>
@@ -1131,13 +1390,30 @@ for reading directory entries, see L<perlfunc/readdir>.
=item C<realloc>
-C<realloc()> is C-specific. Perl does memory management transparently.
+Not implemented. C<realloc()> is C-specific. Perl does memory management transparently.
+
+=item C<remainder>
+
+Given C<x> and C<y>, returns the value S<C<x - n*y>>, where C<n> is the integer
+closest to C<x/y>. [C99]
+
+ my $remainder = POSIX::remainder($x, $y)
+
+See also L</remquo>.
=item C<remove>
This is identical to Perl's builtin C<unlink()> function
for removing files, see L<perlfunc/unlink>.
+=item C<remquo>
+
+Like L</remainder> but also returns the low-order bits of the quotient (n)
+[C99]
+
+(This is quite esoteric interface, mainly used to implement numerical
+algorithms.)
+
=item C<rename>
This is identical to Perl's builtin C<rename()> function
@@ -1152,14 +1428,31 @@ Seeks to the beginning of the file.
This is identical to Perl's builtin C<rewinddir()> function for
rewinding directory entry streams, see L<perlfunc/rewinddir>.
+=item C<rint>
+
+Identical to L</lrint>.
+
=item C<rmdir>
This is identical to Perl's builtin C<rmdir()> function
for removing (empty) directories, see L<perlfunc/rmdir>.
+=item C<round>
+
+Returns the integer (but still as floating point) nearest to the
+argument [C99].
+
+See also L</ceil>, L</floor>, L</lround>, L</modf>, and L</trunc>.
+
+=item C<scalbn>
+
+Returns S<C<x * 2**y>> [C99].
+
+See also L</frexp> and L</ldexp>.
+
=item C<scanf>
-C<scanf()> is C-specific, use E<lt>E<gt> and regular expressions instead,
+Not implemented. C<scanf()> is C-specific, use E<lt>E<gt> and regular expressions instead,
see L<perlre>.
=item C<setgid>
@@ -1173,7 +1466,7 @@ list of numbers.
=item C<setjmp>
-C<setjmp()> is C-specific: use C<eval {}> instead,
+Not implemented. C<setjmp()> is C-specific: use C<eval {}> instead,
see L<perlfunc/eval>.
=item C<setlocale>
@@ -1186,7 +1479,7 @@ L<a section devoted to this function|perllocale/The setlocale function>.
The discussion here is merely a summary reference for C<setlocale()>.
Note that Perl itself is almost entirely unaffected by the locale
except within the scope of S<C<"use locale">>. (Exceptions are listed
-in L<perllocale/Not within the scope of any "use locale" variant>.)
+in L<perllocale/Not within the scope of "use locale">.)
The following examples assume
@@ -1283,7 +1576,11 @@ C<sigaction> and possibly also C<siginfo> documentation.
=item C<siglongjmp>
-C<siglongjmp()> is C-specific: use L<perlfunc/die> instead.
+Not implemented. C<siglongjmp()> is C-specific: use L<perlfunc/die> instead.
+
+=item C<signbit>
+
+Returns zero for positive arguments, non-zero for negative arguments [C99].
=item C<sigpending>
@@ -1315,7 +1612,7 @@ reliably.
=item C<sigsetjmp>
-C<sigsetjmp()> is C-specific: use C<eval {}> instead,
+Not implemented. C<sigsetjmp()> is C-specific: use C<eval {}> instead,
see L<perlfunc/eval>.
=item C<sigsuspend>
@@ -1369,7 +1666,7 @@ Give a seed the pseudorandom number generator, see L<perlfunc/srand>.
=item C<sscanf>
-C<sscanf()> is C-specific, use regular expressions instead,
+Not implemented. C<sscanf()> is C-specific, use regular expressions instead,
see L<perlre>.
=item C<stat>
@@ -1379,15 +1676,15 @@ for returning information about files and directories.
=item C<strcat>
-C<strcat()> is C-specific, use C<.=> instead, see L<perlop>.
+Not implemented. C<strcat()> is C-specific, use C<.=> instead, see L<perlop>.
=item C<strchr>
-C<strchr()> is C-specific, see L<perlfunc/index> instead.
+Not implemented. C<strchr()> is C-specific, see L<perlfunc/index> instead.
=item C<strcmp>
-C<strcmp()> is C-specific, use C<eq> or C<cmp> instead, see L<perlop>.
+Not implemented. C<strcmp()> is C-specific, use C<eq> or C<cmp> instead, see L<perlop>.
=item C<strcoll>
@@ -1398,17 +1695,17 @@ Perl can do this transparently, see L<perllocale>.
=item C<strcpy>
-C<strcpy()> is C-specific, use C<=> instead, see L<perlop>.
+Not implemented. C<strcpy()> is C-specific, use C<=> instead, see L<perlop>.
=item C<strcspn>
-C<strcspn()> is C-specific, use regular expressions instead,
+Not implemented. C<strcspn()> is C-specific, use regular expressions instead,
see L<perlre>.
=item C<strerror>
Returns the error string for the specified errno.
-Identical to the string form of the C<$!>, see L<perlvar/$ERRNO>.
+Identical to the string form of C<$!>, see L<perlvar/$ERRNO>.
=item C<strftime>
@@ -1419,9 +1716,9 @@ Synopsis:
strftime(fmt, sec, min, hour, mday, mon, year,
wday = -1, yday = -1, isdst = -1)
-The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
-I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
-year (C<year>) is given in years since 1900. I.e., the year 1995 is 95; the
+The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero,
+I<i.e.>, January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
+year (C<year>) is given in years since 1900, I<i.e.>, the year 1995 is 95; the
year 2001 is 101. Consult your system's C<strftime()> manpage for details
about these and the other arguments.
@@ -1450,32 +1747,32 @@ The string for Tuesday, December 12, 1995.
=item C<strlen>
-C<strlen()> is C-specific, use C<length()> instead, see L<perlfunc/length>.
+Not implemented. C<strlen()> is C-specific, use C<length()> instead, see L<perlfunc/length>.
=item C<strncat>
-C<strncat()> is C-specific, use C<.=> instead, see L<perlop>.
+Not implemented. C<strncat()> is C-specific, use C<.=> instead, see L<perlop>.
=item C<strncmp>
-C<strncmp()> is C-specific, use C<eq> instead, see L<perlop>.
+Not implemented. C<strncmp()> is C-specific, use C<eq> instead, see L<perlop>.
=item C<strncpy>
-C<strncpy()> is C-specific, use C<=> instead, see L<perlop>.
+Not implemented. C<strncpy()> is C-specific, use C<=> instead, see L<perlop>.
=item C<strpbrk>
-C<strpbrk()> is C-specific, use regular expressions instead,
+Not implemented. C<strpbrk()> is C-specific, use regular expressions instead,
see L<perlre>.
=item C<strrchr>
-C<strrchr()> is C-specific, see L<perlfunc/rindex> instead.
+Not implemented. C<strrchr()> is C-specific, see L<perlfunc/rindex> instead.
=item C<strspn>
-C<strspn()> is C-specific, use regular expressions instead,
+Not implemented. C<strspn()> is C-specific, use regular expressions instead,
see L<perlre>.
=item C<strstr>
@@ -1488,10 +1785,10 @@ see L<perlfunc/index>.
String to double translation. Returns the parsed number and the number
of characters in the unparsed portion of the string. Truly
POSIX-compliant systems set C<$!> (C<$ERRNO>) to indicate a translation
-error, so clear C<$!> before calling strtod. However, non-POSIX systems
+error, so clear C<$!> before calling C<strtod>. However, non-POSIX systems
may not check for overflow, and therefore will never set C<$!>.
-strtod respects any POSIX I<setlocale()> C<LC_TIME> settings,
+C<strtod> respects any POSIX C<setlocale()> C<LC_TIME> settings,
regardless of whether or not it is called from Perl code that is within
the scope of S<C<use locale>>.
@@ -1506,11 +1803,11 @@ The second returned item and C<$!> can be used to check for valid input:
die "Non-numeric input $str" . ($! ? ": $!\n" : "\n");
}
-When called in a scalar context strtod returns the parsed number.
+When called in a scalar context C<strtod> returns the parsed number.
=item C<strtok>
-C<strtok()> is C-specific, use regular expressions instead, see
+Not implemented. C<strtok()> is C-specific, use regular expressions instead, see
L<perlre>, or L<perlfunc/split>.
=item C<strtol>
@@ -1529,7 +1826,7 @@ To parse a string C<$str> as a number in some base C<$base> use
($num, $n_unparsed) = POSIX::strtol($str, $base);
The base should be zero or between 2 and 36, inclusive. When the base
-is zero or omitted strtol will use the string itself to determine the
+is zero or omitted C<strtol> will use the string itself to determine the
base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
octal; any other leading characters mean decimal. Thus, "1234" is
parsed as a decimal number, "01234" as an octal number, and "0x1234"
@@ -1541,7 +1838,12 @@ The second returned item and C<$!> can be used to check for valid input:
die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
}
-When called in a scalar context strtol returns the parsed number.
+When called in a scalar context C<strtol> returns the parsed number.
+
+=item C<strtold>
+
+Like L</strtod> but for long doubles. Defined only if the
+system supports long doubles.
=item C<strtoul>
@@ -1630,6 +1932,12 @@ terminal.
Returns C<undef> on failure.
+=item C<tgamma>
+
+The Gamma function [C99].
+
+See also L</lgamma>.
+
=item C<time>
This is identical to Perl's builtin C<time()> function
@@ -1643,7 +1951,7 @@ The C<times()> function returns elapsed realtime since some point in the past
and system times used by child processes. All times are returned in clock
ticks.
- ($realtime, $user, $system, $cuser, $csystem)
+ ($realtime, $user, $system, $cuser, $csystem)
= POSIX::times();
Note: Perl's builtin C<times()> function returns four values, measured in
@@ -1651,7 +1959,7 @@ seconds.
=item C<tmpfile>
-Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>.
+Not implemented. Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>.
=item C<tmpnam>
@@ -1666,16 +1974,23 @@ should not be used; instead see L<File::Temp>.
=item C<tolower>
This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using the C<lc()> function,
+character or to a whole string, and currently operates as if the locale
+always is "C". Consider using the C<lc()> function, see L<perlfunc/lc>,
see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish
strings.
=item C<toupper>
-This is identical to the C function, except that it can apply to a single
-character or to a whole string. Consider using the C<uc()> function,
-see L<perlfunc/uc>, or the equivalent C<\U> operator inside doublequotish
-strings.
+This is similar to the C function, except that it can apply to a single
+character or to a whole string, and currently operates as if the locale
+always is "C". Consider using the C<uc()> function, see L<perlfunc/uc>,
+or the equivalent C<\U> operator inside doublequotish strings.
+
+=item C<trunc>
+
+Returns the integer toward zero from the argument [C99].
+
+See also L</ceil>, L</floor>, and L</round>.
=item C<ttyname>
@@ -1720,7 +2035,7 @@ Maybe.
=item C<ungetc>
-Use method C<IO::Handle::ungetc()> instead.
+Not implemented. Use method C<IO::Handle::ungetc()> instead.
=item C<unlink>
@@ -1735,15 +2050,15 @@ see L<perlfunc/utime>.
=item C<vfprintf>
-C<vfprintf()> is C-specific, see L<perlfunc/printf> instead.
+Not implemented. C<vfprintf()> is C-specific, see L<perlfunc/printf> instead.
=item C<vprintf>
-C<vprintf()> is C-specific, see L<perlfunc/printf> instead.
+Not implemented. C<vprintf()> is C-specific, see L<perlfunc/printf> instead.
=item C<vsprintf>
-C<vsprintf()> is C-specific, see L<perlfunc/sprintf> instead.
+Not implemented. C<vsprintf()> is C-specific, see L<perlfunc/sprintf> instead.
=item C<wait>
@@ -1761,16 +2076,14 @@ builtin C<waitpid()> function, see L<perlfunc/waitpid>.
=item C<wcstombs>
This is identical to the C function C<wcstombs()>.
-Perl does not have any support for the wide and multibyte
-characters of the C standards, so this might be a rather
-useless function.
+
+See L</mblen>.
=item C<wctomb>
This is identical to the C function C<wctomb()>.
-Perl does not have any support for the wide and multibyte
-characters of the C standards, so this might be a rather
-useless function.
+
+See L</mblen>.
=item C<write>
@@ -1962,7 +2275,7 @@ Tests the SigSet object to see if it contains a specific signal.
=item C<new>
Create a new Termios object. This object will be destroyed automatically
-when it is no longer needed. A Termios object corresponds to the termios
+when it is no longer needed. A Termios object corresponds to the C<termios>
C struct. C<new()> mallocs a new one, C<getattr()> fills it from a file descriptor,
and C<setattr()> sets a file descriptor's parameters to match Termios' contents.
@@ -1972,7 +2285,7 @@ and C<setattr()> sets a file descriptor's parameters to match Termios' contents.
Get terminal control attributes.
-Obtain the attributes for stdin.
+Obtain the attributes for C<stdin>.
$termios->getattr( 0 ) # Recommended for clarity.
$termios->getattr()
@@ -1985,20 +2298,20 @@ Returns C<undef> on failure.
=item C<getcc>
-Retrieve a value from the c_cc field of a termios object. The c_cc field is
+Retrieve a value from the C<c_cc> field of a C<termios> object. The C<c_cc> field is
an array so an index must be specified.
$c_cc[1] = $termios->getcc(1);
=item C<getcflag>
-Retrieve the c_cflag field of a termios object.
+Retrieve the C<c_cflag> field of a C<termios> object.
$c_cflag = $termios->getcflag;
=item C<getiflag>
-Retrieve the c_iflag field of a termios object.
+Retrieve the C<c_iflag> field of a C<termios> object.
$c_iflag = $termios->getiflag;
@@ -2010,13 +2323,13 @@ Retrieve the input baud rate.
=item C<getlflag>
-Retrieve the c_lflag field of a termios object.
+Retrieve the C<c_lflag> field of a C<termios> object.
$c_lflag = $termios->getlflag;
=item C<getoflag>
-Retrieve the c_oflag field of a termios object.
+Retrieve the C<c_oflag> field of a C<termios> object.
$c_oflag = $termios->getoflag;
@@ -2038,20 +2351,20 @@ Returns C<undef> on failure.
=item C<setcc>
-Set a value in the c_cc field of a termios object. The c_cc field is an
+Set a value in the C<c_cc> field of a C<termios> object. The C<c_cc> field is an
array so an index must be specified.
$termios->setcc( &POSIX::VEOF, 1 );
=item C<setcflag>
-Set the c_cflag field of a termios object.
+Set the C<c_cflag> field of a C<termios> object.
$termios->setcflag( $c_cflag | &POSIX::CLOCAL );
=item C<setiflag>
-Set the c_iflag field of a termios object.
+Set the C<c_iflag> field of a C<termios> object.
$termios->setiflag( $c_iflag | &POSIX::BRKINT );
@@ -2065,13 +2378,13 @@ Returns C<undef> on failure.
=item C<setlflag>
-Set the c_lflag field of a termios object.
+Set the C<c_lflag> field of a C<termios> object.
$termios->setlflag( $c_lflag | &POSIX::ECHO );
=item C<setoflag>
-Set the c_oflag field of a termios object.
+Set the C<c_oflag> field of a C<termios> object.
$termios->setoflag( $c_oflag | &POSIX::OPOST );
@@ -2196,6 +2509,17 @@ C<LDBL_MAX_EXP> C<LDBL_MIN> C<LDBL_MIN_10_EXP> C<LDBL_MIN_EXP>
=back
+=head1 FLOATING-POINT ENVIRONMENT
+
+=over 8
+
+=item Constants
+
+C<FE_DOWNWARD> C<FE_TONEAREST> C<FE_TOWARDZERO> C<FE_UPWARD>
+on systems that support them.
+
+=back
+
=head1 LIMITS
=over 8
@@ -2215,7 +2539,8 @@ C<UCHAR_MAX> C<UINT_MAX> C<ULONG_MAX> C<USHRT_MAX>
=item Constants
-C<LC_ALL> C<LC_COLLATE> C<LC_CTYPE> C<LC_MONETARY> C<LC_NUMERIC> C<LC_TIME>
+C<LC_ALL> C<LC_COLLATE> C<LC_CTYPE> C<LC_MONETARY> C<LC_NUMERIC> C<LC_TIME> C<LC_MESSAGES>
+on systems that support them.
=back
@@ -2227,6 +2552,12 @@ C<LC_ALL> C<LC_COLLATE> C<LC_CTYPE> C<LC_MONETARY> C<LC_NUMERIC> C<LC_TIME>
C<HUGE_VAL>
+C<FP_ILOGB0> C<FP_ILOGBNAN> C<FP_INFINITE> C<FP_NAN> C<FP_NORMAL> C<FP_SUBNORMAL> C<FP_ZERO>
+C<INFINITY> C<NAN> C<Inf> C<NaN>
+C<M_1_PI> C<M_2_PI> C<M_2_SQRTPI> C<M_E> C<M_LN10> C<M_LN2> C<M_LOG10E> C<M_LOG2E> C<M_PI>
+C<M_PI_2> C<M_PI_4> C<M_SQRT1_2> C<M_SQRT2>
+on systems with C99 support.
+
=back
=head1 SIGNAL
diff --git a/Master/tlpkg/tlperl/lib/Package/Constants.pm b/Master/tlpkg/tlperl/lib/Package/Constants.pm
deleted file mode 100644
index 0ecdcf78956..00000000000
--- a/Master/tlpkg/tlperl/lib/Package/Constants.pm
+++ /dev/null
@@ -1,108 +0,0 @@
-package Package::Constants;
-
-use if $] >= 5.019006, 'deprecate';
-
-use strict;
-use vars qw[$VERSION $DEBUG];
-
-$VERSION = '0.04';
-$DEBUG = 0;
-
-=head1 NAME
-
-Package::Constants - List all constants declared in a package
-
-=head1 SYNOPSIS
-
- use Package::Constants;
-
- ### list the names of all constants in a given package;
- @const = Package::Constants->list( __PACKAGE__ );
- @const = Package::Constants->list( 'main' );
-
- ### enable debugging output
- $Package::Constants::DEBUG = 1;
-
-=head1 DESCRIPTION
-
-C<Package::Constants> lists all the constants defined in a certain
-package. This can be useful for, among others, setting up an
-autogenerated C<@EXPORT/@EXPORT_OK> for a Constants.pm file.
-
-=head1 CLASS METHODS
-
-=head2 @const = Package::Constants->list( PACKAGE_NAME );
-
-Lists the names of all the constants defined in the provided package.
-
-=cut
-
-sub list {
- my $class = shift;
- my $pkg = shift;
- return unless defined $pkg; # some joker might use '0' as a pkg...
-
- _debug("Inspecting package '$pkg'");
-
- my @rv;
- { no strict 'refs';
- my $stash = $pkg . '::';
-
- for my $name (sort keys %$stash ) {
-
- _debug( " Checking stash entry '$name'" );
-
- ### is it a subentry?
- my $sub = $pkg->can( $name );
- next unless defined $sub;
-
- _debug( " '$name' is a coderef" );
-
- next unless defined prototype($sub) and
- not length prototype($sub);
-
- _debug( " '$name' is a constant" );
- push @rv, $name;
- }
- }
-
- return sort @rv;
-}
-
-=head1 GLOBAL VARIABLES
-
-=head2 $Package::Constants::DEBUG
-
-When set to true, prints out debug information to STDERR about the
-package it is inspecting. Helps to identify issues when the results
-are not as you expect.
-
-Defaults to false.
-
-=cut
-
-sub _debug { warn "@_\n" if $DEBUG; }
-
-1;
-
-=head1 BUG REPORTS
-
-Please report bugs or other issues to E<lt>bug-package-constants@rt.cpan.org<gt>.
-
-=head1 AUTHOR
-
-This module by Jos Boumans E<lt>kane@cpan.orgE<gt>.
-
-=head1 COPYRIGHT
-
-This library is free software; you may redistribute and/or modify it
-under the same terms as Perl itself.
-
-=cut
-
-# Local variables:
-# c-indentation-style: bsd
-# c-basic-offset: 4
-# indent-tabs-mode: nil
-# End:
-# vim: expandtab shiftwidth=4:
diff --git a/Master/tlpkg/tlperl/lib/Perl/OSType.pm b/Master/tlpkg/tlperl/lib/Perl/OSType.pm
index e6196c46d61..0d5b54b732b 100644
--- a/Master/tlpkg/tlperl/lib/Perl/OSType.pm
+++ b/Master/tlpkg/tlperl/lib/Perl/OSType.pm
@@ -3,7 +3,8 @@ use warnings;
package Perl::OSType;
# ABSTRACT: Map Perl operating system names to generic types
-our $VERSION = '1.007'; # VERSION
+
+our $VERSION = '1.008';
require Exporter;
our @ISA = qw(Exporter);
@@ -30,6 +31,7 @@ my %OSTYPES = qw(
darwin Unix
machten Unix
midnightbsd Unix
+ minix Unix
mirbsd Unix
next Unix
openbsd Unix
@@ -93,7 +95,7 @@ Perl::OSType - Map Perl operating system names to generic types
=head1 VERSION
-version 1.007
+version 1.008
=head1 SYNOPSIS
@@ -172,10 +174,16 @@ David Golden <dagolden@cpan.org>
=head1 CONTRIBUTORS
+=for stopwords Chris 'BinGOs' Williams Jonas B. Nielsen Owain G. Ainsworth Paul Green Piotr Roszatycki
+
=over 4
=item *
+Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
+
+=item *
+
Jonas B. Nielsen <jonasbn@hoarfrost.local>
=item *
@@ -194,7 +202,7 @@ Piotr Roszatycki <piotr.roszatycki@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2014 by David Golden.
+This software is copyright (c) 2015 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/Master/tlpkg/tlperl/lib/PerlIO/encoding.pm b/Master/tlpkg/tlperl/lib/PerlIO/encoding.pm
index 8d39ed9a205..4cff76d8702 100644
--- a/Master/tlpkg/tlperl/lib/PerlIO/encoding.pm
+++ b/Master/tlpkg/tlperl/lib/PerlIO/encoding.pm
@@ -1,7 +1,7 @@
package PerlIO::encoding;
use strict;
-our $VERSION = '0.18';
+our $VERSION = '0.21';
our $DEBUG = 0;
$DEBUG and warn __PACKAGE__, " called by ", join(", ", caller), "\n";
diff --git a/Master/tlpkg/tlperl/lib/PerlIO/mmap.pm b/Master/tlpkg/tlperl/lib/PerlIO/mmap.pm
index cf97882fa59..845f2d1de8c 100644
--- a/Master/tlpkg/tlperl/lib/PerlIO/mmap.pm
+++ b/Master/tlpkg/tlperl/lib/PerlIO/mmap.pm
@@ -1,7 +1,7 @@
package PerlIO::mmap;
use strict;
use warnings;
-our $VERSION = '0.011';
+our $VERSION = '0.014';
use XSLoader;
XSLoader::load(__PACKAGE__, __PACKAGE__->VERSION);
diff --git a/Master/tlpkg/tlperl/lib/PerlIO/scalar.pm b/Master/tlpkg/tlperl/lib/PerlIO/scalar.pm
index 7e93f6da562..5d2049ba3f7 100644
--- a/Master/tlpkg/tlperl/lib/PerlIO/scalar.pm
+++ b/Master/tlpkg/tlperl/lib/PerlIO/scalar.pm
@@ -1,5 +1,5 @@
package PerlIO::scalar;
-our $VERSION = '0.18_01';
+our $VERSION = '0.23';
require XSLoader;
XSLoader::load();
1;
diff --git a/Master/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm b/Master/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm
index 11ba2e7b4f3..8135e176403 100644
--- a/Master/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm
+++ b/Master/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm
@@ -1,6 +1,6 @@
package PerlIO::via::QuotedPrint;
-$VERSION= '0.07';
+$VERSION= '0.08';
# be as strict as possible
use strict;
@@ -71,7 +71,7 @@ PerlIO::via::QuotedPrint - PerlIO layer for quoted-printable strings
=head1 VERSION
-This documentation describes version 0.07.
+This documentation describes version 0.08.
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/Pod/Escapes.pm b/Master/tlpkg/tlperl/lib/Pod/Escapes.pm
index 52b52724fce..00501db3e88 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Escapes.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Escapes.pm
@@ -17,7 +17,7 @@ use vars qw(
require Exporter;
@ISA = ('Exporter');
-$VERSION = '1.06';
+$VERSION = '1.07';
@EXPORT_OK = qw(
%Code2USASCII
%Name2character
@@ -48,28 +48,15 @@ sub e2char {
$in = hex $1;
} # else it's decimal, or named
- if($NOT_ASCII) {
- # We're in bizarro world of not-ASCII!
- # Cope with US-ASCII codes, use fallbacks for Latin-1, or use FAR_CHAR.
- unless($in =~ m/^\d+$/s) {
- # It's a named character reference. Get its numeric Unicode value.
- $in = $Name2character{$in};
- return undef unless defined $in; # (if there's no such name)
- $in = ord $in; # (All ents must be one character long.)
- # ...So $in holds the char's US-ASCII numeric value, which we'll
- # now go get the local equivalent for.
- }
-
- # It's numeric, whether by origin or by mutation from a known name
- return $Code2USASCII{$in} # so "65" => "A" everywhere
- || $Latin1Code_to_fallback{$in} # Fallback.
- || $FAR_CHAR; # Fall further back
- }
-
- # Normal handling:
if($in =~ m/^\d+$/s) {
if($] < 5.007 and $in > 255) { # can't be trusted with Unicode
return $FAR_CHAR;
+ } elsif ($] >= 5.007003) {
+ return chr(utf8::unicode_to_native($in));
+ } elsif ($NOT_ASCII) {
+ return $Code2USASCII{$in} # so "65" => "A" everywhere
+ || $Latin1Code_to_fallback{$in} # Fallback.
+ || $FAR_CHAR; # Fall further back
} else {
return chr($in);
}
@@ -99,6 +86,133 @@ sub e2charnum {
#--------------------------------------------------------------------------
+%Code2USASCII = (
+# mostly generated by
+# perl -e "printf qq{ \x25 3s, '\x25s',\n}, $_, chr($_) foreach (32 .. 126)"
+ 32, ' ',
+ 33, '!',
+ 34, '"',
+ 35, '#',
+ 36, '$',
+ 37, '%',
+ 38, '&',
+ 39, "'", #!
+ 40, '(',
+ 41, ')',
+ 42, '*',
+ 43, '+',
+ 44, ',',
+ 45, '-',
+ 46, '.',
+ 47, '/',
+ 48, '0',
+ 49, '1',
+ 50, '2',
+ 51, '3',
+ 52, '4',
+ 53, '5',
+ 54, '6',
+ 55, '7',
+ 56, '8',
+ 57, '9',
+ 58, ':',
+ 59, ';',
+ 60, '<',
+ 61, '=',
+ 62, '>',
+ 63, '?',
+ 64, '@',
+ 65, 'A',
+ 66, 'B',
+ 67, 'C',
+ 68, 'D',
+ 69, 'E',
+ 70, 'F',
+ 71, 'G',
+ 72, 'H',
+ 73, 'I',
+ 74, 'J',
+ 75, 'K',
+ 76, 'L',
+ 77, 'M',
+ 78, 'N',
+ 79, 'O',
+ 80, 'P',
+ 81, 'Q',
+ 82, 'R',
+ 83, 'S',
+ 84, 'T',
+ 85, 'U',
+ 86, 'V',
+ 87, 'W',
+ 88, 'X',
+ 89, 'Y',
+ 90, 'Z',
+ 91, '[',
+ 92, "\\", #!
+ 93, ']',
+ 94, '^',
+ 95, '_',
+ 96, '`',
+ 97, 'a',
+ 98, 'b',
+ 99, 'c',
+ 100, 'd',
+ 101, 'e',
+ 102, 'f',
+ 103, 'g',
+ 104, 'h',
+ 105, 'i',
+ 106, 'j',
+ 107, 'k',
+ 108, 'l',
+ 109, 'm',
+ 110, 'n',
+ 111, 'o',
+ 112, 'p',
+ 113, 'q',
+ 114, 'r',
+ 115, 's',
+ 116, 't',
+ 117, 'u',
+ 118, 'v',
+ 119, 'w',
+ 120, 'x',
+ 121, 'y',
+ 122, 'z',
+ 123, '{',
+ 124, '|',
+ 125, '}',
+ 126, '~',
+);
+
+#--------------------------------------------------------------------------
+
+%Latin1Code_to_fallback = ();
+@Latin1Code_to_fallback{0xA0 .. 0xFF} = (
+# Copied from Text/Unidecode/x00.pm:
+
+' ', qq{!}, qq{C/}, 'PS', qq{\$?}, qq{Y=}, qq{|}, 'SS', qq{"}, qq{(c)}, 'a', qq{<<}, qq{!}, "", qq{(r)}, qq{-},
+'deg', qq{+-}, '2', '3', qq{'}, 'u', 'P', qq{*}, qq{,}, '1', 'o', qq{>>}, qq{1/4}, qq{1/2}, qq{3/4}, qq{?},
+'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I',
+'D', 'N', 'O', 'O', 'O', 'O', 'O', 'x', 'O', 'U', 'U', 'U', 'U', 'U', 'Th', 'ss',
+'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i',
+'d', 'n', 'o', 'o', 'o', 'o', 'o', qq{/}, 'o', 'u', 'u', 'u', 'u', 'y', 'th', 'y',
+
+);
+
+{
+ # Now stuff %Latin1Char_to_fallback:
+ %Latin1Char_to_fallback = ();
+ my($k,$v);
+ while( ($k,$v) = each %Latin1Code_to_fallback) {
+ $Latin1Char_to_fallback{chr $k} = $v;
+ #print chr($k), ' => ', $v, "\n";
+ }
+}
+
+#--------------------------------------------------------------------------
+
%Name2character_number = (
# General XML/XHTML:
'lt' => 60,
@@ -380,147 +494,28 @@ sub e2charnum {
if($] < 5.007 and $number > 255) {
$Name2character{$name} = $FAR_CHAR;
# substitute for Unicode characters, for perls
- # that can't reliable handle them
+ # that can't reliably handle them
+ } elsif ($] >= 5.007003) {
+ $Name2character{$name} = chr utf8::unicode_to_native($number);
+ # normal case for more recent Perls where we can translate from Unicode
+ # to the native character set.
+ }
+ elsif (exists $Code2USASCII{$number}) {
+ $Name2character{$name} = $Code2USASCII{$number};
+ # on older Perls, we can use the translations we have hard-coded in this
+ # file, but these don't include the non-ASCII-range characters
+ }
+ elsif ($NOT_ASCII && $number > 127 && $number < 256) {
+ # this range on old non-ASCII-platform perls is wrong
+ if (exists $Latin1Code_to_fallback{$number}) {
+ $Name2character{$name} = $Latin1Code_to_fallback{$number};
+ } else {
+ $Name2character{$name} = $FAR_CHAR;
+ }
} else {
$Name2character{$name} = chr $number;
- # normal case
}
}
- # So they resolve 'right' even in EBCDIC-land
- $Name2character{'lt' } = '<';
- $Name2character{'gt' } = '>';
- $Name2character{'quot'} = '"';
- $Name2character{'amp' } = '&';
- $Name2character{'apos'} = "'";
- $Name2character{'sol' } = '/';
- $Name2character{'verbar'} = '|';
-}
-
-#--------------------------------------------------------------------------
-
-%Code2USASCII = (
-# mostly generated by
-# perl -e "printf qq{ \x25 3s, '\x25s',\n}, $_, chr($_) foreach (32 .. 126)"
- 32, ' ',
- 33, '!',
- 34, '"',
- 35, '#',
- 36, '$',
- 37, '%',
- 38, '&',
- 39, "'", #!
- 40, '(',
- 41, ')',
- 42, '*',
- 43, '+',
- 44, ',',
- 45, '-',
- 46, '.',
- 47, '/',
- 48, '0',
- 49, '1',
- 50, '2',
- 51, '3',
- 52, '4',
- 53, '5',
- 54, '6',
- 55, '7',
- 56, '8',
- 57, '9',
- 58, ':',
- 59, ';',
- 60, '<',
- 61, '=',
- 62, '>',
- 63, '?',
- 64, '@',
- 65, 'A',
- 66, 'B',
- 67, 'C',
- 68, 'D',
- 69, 'E',
- 70, 'F',
- 71, 'G',
- 72, 'H',
- 73, 'I',
- 74, 'J',
- 75, 'K',
- 76, 'L',
- 77, 'M',
- 78, 'N',
- 79, 'O',
- 80, 'P',
- 81, 'Q',
- 82, 'R',
- 83, 'S',
- 84, 'T',
- 85, 'U',
- 86, 'V',
- 87, 'W',
- 88, 'X',
- 89, 'Y',
- 90, 'Z',
- 91, '[',
- 92, "\\", #!
- 93, ']',
- 94, '^',
- 95, '_',
- 96, '`',
- 97, 'a',
- 98, 'b',
- 99, 'c',
- 100, 'd',
- 101, 'e',
- 102, 'f',
- 103, 'g',
- 104, 'h',
- 105, 'i',
- 106, 'j',
- 107, 'k',
- 108, 'l',
- 109, 'm',
- 110, 'n',
- 111, 'o',
- 112, 'p',
- 113, 'q',
- 114, 'r',
- 115, 's',
- 116, 't',
- 117, 'u',
- 118, 'v',
- 119, 'w',
- 120, 'x',
- 121, 'y',
- 122, 'z',
- 123, '{',
- 124, '|',
- 125, '}',
- 126, '~',
-);
-
-#--------------------------------------------------------------------------
-
-%Latin1Code_to_fallback = ();
-@Latin1Code_to_fallback{0xA0 .. 0xFF} = (
-# Copied from Text/Unidecode/x00.pm:
-
-' ', qq{!}, qq{C/}, 'PS', qq{\$?}, qq{Y=}, qq{|}, 'SS', qq{"}, qq{(c)}, 'a', qq{<<}, qq{!}, "", qq{(r)}, qq{-},
-'deg', qq{+-}, '2', '3', qq{'}, 'u', 'P', qq{*}, qq{,}, '1', 'o', qq{>>}, qq{1/4}, qq{1/2}, qq{3/4}, qq{?},
-'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I',
-'D', 'N', 'O', 'O', 'O', 'O', 'O', 'x', 'O', 'U', 'U', 'U', 'U', 'U', 'Th', 'ss',
-'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i',
-'d', 'n', 'o', 'o', 'o', 'o', 'o', qq{/}, 'o', 'u', 'u', 'u', 'u', 'y', 'th', 'y',
-
-);
-
-{
- # Now stuff %Latin1Char_to_fallback:
- %Latin1Char_to_fallback = ();
- my($k,$v);
- while( ($k,$v) = each %Latin1Code_to_fallback) {
- $Latin1Char_to_fallback{chr $k} = $v;
- #print chr($k), ' => ', $v, "\n";
- }
}
#--------------------------------------------------------------------------
@@ -637,7 +632,12 @@ characters (characters 160-255) are unaffected.
Under EBCDIC platforms, C<e2char($n)> may not always be the
same as C<chr(e2charnum($n))>, and ditto for
C<$Name2character{$name}> and
-C<chr($Name2character_number{$name})>.
+C<chr($Name2character_number{$name})>, because the strings are returned as
+native, and the numbers are returned as Unicode.
+However, for Perls starting with v5.8, C<e2char($n)> is the same as
+C<chr(utf8::unicode_to_native(e2charnum($n)))>, and ditto for
+C<$Name2character{$name}> and
+C<chr(utf8::unicode_to_native($Name2character_number{$name}))>.
=head1 SEE ALSO
diff --git a/Master/tlpkg/tlperl/lib/Pod/Find.pm b/Master/tlpkg/tlperl/lib/Pod/Find.pm
index 6149e7940ae..f258f26df68 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Find.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Find.pm
@@ -14,7 +14,7 @@ package Pod::Find;
use strict;
use vars qw($VERSION);
-$VERSION = '1.62'; ## Current version of this package
+$VERSION = '1.63'; ## Current version of this package
require 5.005; ## requires this Perl version or later
use Carp;
@@ -56,7 +56,7 @@ so be sure to specify them in the B<use> statement if you need them:
use Pod::Find qw(pod_find);
From this version on the typical SCM (software configuration management)
-files/directories like RCS, CVS, SCCS, .svn are ignored.
+directories are ignored. These are: RCS, CVS, SCCS, .svn, .hg, .git, .sync
=cut
@@ -226,7 +226,7 @@ sub pod_find
File::Find::find( sub {
my $item = $File::Find::name;
if(-d) {
- if($item =~ m{/(?:RCS|CVS|SCCS|\.svn)$}) {
+ if($item =~ m{/(?:RCS|CVS|SCCS|\.svn|\.hg|\.git|\.sync)$}) {
$File::Find::prune = 1;
return;
}
diff --git a/Master/tlpkg/tlperl/lib/Pod/Functions.pm b/Master/tlpkg/tlperl/lib/Pod/Functions.pm
index 9e09beee929..87b64d178d7 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Functions.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Functions.pm
@@ -54,7 +54,7 @@ L<perlfunc/"Perl Functions by Category"> section.
=cut
-our $VERSION = '1.08';
+our $VERSION = '1.09';
require Exporter;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Html.pm b/Master/tlpkg/tlperl/lib/Pod/Html.pm
index f9f05b358eb..34729a9c241 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Html.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Html.pm
@@ -3,7 +3,7 @@ use strict;
require Exporter;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
-$VERSION = 1.21;
+$VERSION = 1.22;
@ISA = qw(Exporter);
@EXPORT = qw(pod2html htmlify);
@EXPORT_OK = qw(anchorify);
@@ -16,11 +16,7 @@ use File::Spec;
use File::Spec::Unix;
use Getopt::Long;
use Pod::Simple::Search;
-BEGIN {
- if($Config{d_setlocale}) {
- require locale; import locale; # make \w work right in non-ASCII lands
- }
-}
+use locale; # make \w work right in non-ASCII lands
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/Pod/InputObjects.pm b/Master/tlpkg/tlperl/lib/Pod/InputObjects.pm
index 87ce2478f63..c4d6fc24691 100644
--- a/Master/tlpkg/tlperl/lib/Pod/InputObjects.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/InputObjects.pm
@@ -12,7 +12,7 @@ package Pod::InputObjects;
use strict;
use vars qw($VERSION);
-$VERSION = '1.62'; ## Current version of this package
+$VERSION = '1.63'; ## Current version of this package
require 5.005; ## requires this Perl version or later
#############################################################################
diff --git a/Master/tlpkg/tlperl/lib/Pod/ParseUtils.pm b/Master/tlpkg/tlperl/lib/Pod/ParseUtils.pm
index e1ff2aeb19b..2afd0cd420e 100644
--- a/Master/tlpkg/tlperl/lib/Pod/ParseUtils.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/ParseUtils.pm
@@ -11,7 +11,7 @@ package Pod::ParseUtils;
use strict;
use vars qw($VERSION);
-$VERSION = '1.62'; ## Current version of this package
+$VERSION = '1.63'; ## Current version of this package
require 5.005; ## requires this Perl version or later
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/Pod/Parser.pm b/Master/tlpkg/tlperl/lib/Pod/Parser.pm
index f3a861982ba..63edcd2e197 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Parser.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Parser.pm
@@ -12,7 +12,7 @@ use strict;
## These "variables" are used as local "glob aliases" for performance
use vars qw($VERSION @ISA %myData %myOpts @input_stack);
-$VERSION = '1.62'; ## Current version of this package
+$VERSION = '1.63'; ## Current version of this package
require 5.005; ## requires this Perl version or later
#############################################################################
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc.pm
index 6ddd21d95d4..969019d89ad 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc.pm
@@ -12,7 +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.23';
+$VERSION = '3.25';
#..........................................................................
@@ -432,6 +432,16 @@ sub init {
# Make sure creat()s are neither too much nor too little
eval { umask(0077) }; # doubtless someone has no mask
+ if ( $] < 5.008 ) {
+ $self->aside("Your old perl doesn't have proper unicode support.");
+ }
+ else {
+ # http://www.perl.com/pub/2012/04/perlunicookbook-decode-argv-as-utf8.html
+ # Decode command line arguments as UTF-8. See RT#98906 for example problem.
+ use Encode qw(decode_utf8);
+ @ARGV = map { decode_utf8($_, 1) } @ARGV;
+ }
+
$self->{'args'} ||= \@ARGV;
$self->{'found'} ||= [];
$self->{'temp_file_list'} ||= [];
@@ -939,7 +949,7 @@ sub maybe_generate_dynamic_pod {
$self->aside("Hm, I found some Pod from that search!\n");
my ($buffd, $buffer) = $self->new_tempfile('pod', 'dyn');
if ( $] >= 5.008 && $self->opt_L ) {
- binmode($buffd, ":utf8");
+ binmode($buffd, ":encoding(UTF-8)");
print $buffd "=encoding utf8\n\n";
}
@@ -1028,6 +1038,33 @@ sub add_translator { # $self->add_translator($lang);
#..........................................................................
+sub open_fh {
+ my ($self, $op, $path) = @_;
+
+ open my $fh, $op, $path or $self->die("Couldn't open $path: $!");
+ return $fh;
+}
+
+sub set_encoding {
+ my ($self, $fh, $encoding) = @_;
+
+ if ( $encoding =~ /utf-?8/i ) {
+ $encoding = ":encoding(UTF-8)";
+ }
+ else {
+ $encoding = ":encoding($encoding)";
+ }
+
+ if ( $] < 5.008 ) {
+ $self->aside("Your old perl doesn't have proper unicode support.");
+ }
+ else {
+ binmode($fh, $encoding);
+ }
+
+ return $fh;
+}
+
sub search_perlvar {
my($self, $found_things, $pod) = @_;
@@ -1040,8 +1077,7 @@ sub search_perlvar {
DEBUG > 2 and print "Search: @$found_things\n";
my $perlvar = shift @$found_things;
- open(PVAR, "<", $perlvar) # "Funk is its own reward"
- or $self->die("Can't open $perlvar: $!");
+ my $fh = $self->open_fh("<", $perlvar);
if ( $opt ne '$0' && $opt =~ /^\$\d+$/ ) { # handle $1, $2, ...
$opt = '$<I<digits>>';
@@ -1053,15 +1089,19 @@ sub search_perlvar {
# Skip introduction
local $_;
- while (<PVAR>) {
+ my $enc;
+ while (<$fh>) {
+ $enc = $1 if /^=encoding\s+(\S+)/;
last if /^=over 8/;
}
+ $fh = $self->set_encoding($fh, $enc) if $enc;
+
# Look for our variable
my $found = 0;
my $inheader = 1;
my $inlist = 0;
- while (<PVAR>) { # "The Mothership Connection is here!"
+ while (<$fh>) {
last if /^=head2 Error Indicators/;
# \b at the end of $` and friends borks things!
if ( m/^=item\s+$search_re\s/ ) {
@@ -1095,7 +1135,7 @@ sub search_perlvar {
if (!@$pod) {
CORE::die( "No documentation for perl variable '$opt' found\n" );
}
- close PVAR or $self->die( "Can't open $perlvar: $!" );
+ close $fh or $self->die( "Can't close $perlvar: $!" );
return;
}
@@ -1111,7 +1151,7 @@ sub search_perlop {
# XXX FIXME: getting filehandles should probably be done in a single place
# especially since we need to support UTF8 or other encoding when dealing
# with perlop, perlfunc, perlapi, perlfaq[1-9]
- open( PERLOP, '<', $perlop ) or $self->die( "Can't open $perlop: $!" );
+ my $fh = $self->open_fh('<', $perlop);
my $thing = $self->opt_f;
@@ -1120,7 +1160,8 @@ sub search_perlop {
my $seen_item = 0;
my $skip = 1;
- while( my $line = <PERLOP> ) {
+ while( my $line = <$fh> ) {
+ $line =~ /^=encoding\s+(\S+)/ && $self->set_encoding($fh, $1);
# only start search after we hit the operator section
if ($line =~ m!^X<operator, regexp>!) {
$skip = 0;
@@ -1174,7 +1215,7 @@ sub search_perlop {
DEBUG > 4 and print "No pod from perlop\n";
}
- close PERLOP;
+ close $fh;
return;
}
@@ -1187,25 +1228,13 @@ sub search_perlapi {
DEBUG > 2 and print "Search: @$found_things\n";
my $perlapi = shift @$found_things;
- open(PAPI, "<", $perlapi) # "Funk is its own reward"
- or $self->die("Can't open $perlapi: $!");
+ my $fh = $self->open_fh('<', $perlapi);
my $search_re = quotemeta($self->opt_a);
DEBUG > 2 and
print "Going to perlapi-scan for $search_re in $perlapi\n";
- # Check available translator or backup to default (english)
- if ( $self->opt_L && defined $self->{'translators'}->[0] ) {
- my $tr = $self->{'translators'}->[0];
- if ( $] < 5.008 ) {
- $self->aside("Your old perl doesn't really have proper unicode support.");
- }
- else {
- binmode(PAPI, ":utf8");
- }
- }
-
local $_;
# Look for our function
@@ -1214,7 +1243,9 @@ sub search_perlapi {
my @related;
my $related_re;
- while (<PAPI>) { # "The Mothership Connection is here!"
+ while (<$fh>) {
+ /^=encoding\s+(\S+)/ && $self->set_encoding($fh, $1);
+
if ( m/^=item\s+$search_re\b/ ) {
$found = 1;
}
@@ -1251,7 +1282,7 @@ sub search_perlapi {
$self->opt_a )
;
}
- close PAPI or $self->die( "Can't open $perlapi: $!" );
+ close $fh or $self->die( "Can't open $perlapi: $!" );
return;
}
@@ -1263,16 +1294,15 @@ sub search_perlfunc {
DEBUG > 2 and print "Search: @$found_things\n";
- my $perlfunc = shift @$found_things;
- open(PFUNC, "<", $perlfunc) # "Funk is its own reward"
- or $self->die("Can't open $perlfunc: $!");
+ my $pfunc = shift @$found_things;
+ my $fh = $self->open_fh("<", $pfunc); # "Funk is its own reward"
# Functions like -r, -e, etc. are listed under `-X'.
my $search_re = ($self->opt_f =~ /^-[rwxoRWXOeszfdlpSbctugkTBMAC]$/)
? '(?:I<)?-X' : quotemeta($self->opt_f) ;
DEBUG > 2 and
- print "Going to perlfunc-scan for $search_re in $perlfunc\n";
+ print "Going to perlfunc-scan for $search_re in $pfunc\n";
my $re = 'Alphabetical Listing of Perl Functions';
@@ -1283,14 +1313,12 @@ sub search_perlfunc {
if ( $] < 5.008 ) {
$self->aside("Your old perl doesn't really have proper unicode support.");
}
- else {
- binmode(PFUNC, ":utf8");
- }
}
# Skip introduction
local $_;
- while (<PFUNC>) {
+ while (<$fh>) {
+ /^=encoding\s+(\S+)/ && $self->set_encoding($fh, $1);
last if /^=head2 $re/;
}
@@ -1302,7 +1330,7 @@ sub search_perlfunc {
my @related;
my $related_re;
- while (<PFUNC>) { # "The Mothership Connection is here!"
+ while (<$fh>) { # "The Mothership Connection is here!"
last if( grep{ $self->opt_f eq $_ }@perlops );
if ( /^=over/ and not $found ) {
@@ -1352,7 +1380,7 @@ sub search_perlfunc {
$self->opt_f )
;
}
- close PFUNC or $self->die( "Can't close $perlfunc: $!" );
+ close $fh or $self->die( "Can't close $pfunc: $!" );
return;
}
@@ -1377,9 +1405,9 @@ EOD
local $_;
foreach my $file (@$found_things) {
$self->die( "invalid file spec: $!" ) if $file =~ /[<>|]/;
- open(INFAQ, "<", $file) # XXX 5.6ism
- or $self->die( "Can't read-open $file: $!\nAborting" );
- while (<INFAQ>) {
+ my $fh = $self->open_fh("<", $file);
+ while (<$fh>) {
+ /^=encoding\s+(\S+)/ && $self->set_encoding($fh, $1);
if ( m/^=head2\s+.*(?:$search_key)/i ) {
$found = 1;
push @$pod, "=head1 Found in $file\n\n" unless $found_in{$file}++;
@@ -1390,7 +1418,7 @@ EOD
next unless $found;
push @$pod, $_;
}
- close(INFAQ);
+ close($fh);
}
CORE::die("No documentation for perl FAQ keyword '$search_key' found\n")
unless @$pod;
@@ -1614,6 +1642,9 @@ sub minus_f_nocase { # i.e., do like -f, but without regard to case
#..........................................................................
sub pagers_guessing {
+ # TODO: This whole subroutine needs to be rewritten. It's semi-insane
+ # right now.
+
my $self = shift;
my @pagers;
@@ -1650,6 +1681,7 @@ sub pagers_guessing {
unshift @pagers, "$ENV{PERLDOC_SRC_PAGER}" if $ENV{PERLDOC_SRC_PAGER}
}
else {
+ unshift @pagers, "$ENV{MANPAGER} <" if $ENV{MANPAGER};
unshift @pagers, "$ENV{PERLDOC_PAGER} <" if $ENV{PERLDOC_PAGER};
}
@@ -1729,9 +1761,9 @@ sub isprintable {
my $data;
local($_);
- open(TEST,"<", $file) or $self->die( "Can't open $file: $!" );
- read TEST, $data, $size;
- close TEST;
+ my $fh = $self->open_fh("<", $file);
+ read $fh, $data, $size;
+ close $fh;
$size= length($data);
$data =~ tr/\x09-\x0D\x20-\x7E//d;
return length($data) <= $size*$maxunprintfrac;
@@ -1764,14 +1796,14 @@ sub containspod {
}
local($_);
- open(TEST,"<", $file) or $self->die( "Can't open $file: $!" ); # XXX 5.6ism
- while (<TEST>) {
+ my $fh = $self->open_fh("<", $file);
+ while (<$fh>) {
if (/^=head/) {
- close(TEST) or $self->die( "Can't close $file: $!" );
+ close($fh) or $self->die( "Can't close $file: $!" );
return 1;
}
}
- close(TEST) or $self->die( "Can't close $file: $!" );
+ close($fh) or $self->die( "Can't close $file: $!" );
return 0;
}
@@ -1807,15 +1839,8 @@ sub new_output_file {
# Otherwise open a write-handle on opt_d!f
- my $fh;
- # If we are running before perl5.6.0, we can't autovivify
- if ($^V < 5.006) {
- require Symbol;
- $fh = Symbol::gensym();
- }
DEBUG > 3 and print "About to try writing to specified output file $outspec\n";
- $self->die( "Can't write-open $outspec: $!" )
- unless open($fh, ">", $outspec); # XXX 5.6ism
+ my $fh = $self->open_fh(">", $outspec);
DEBUG > 3 and print "Successfully opened $outspec\n";
binmode($fh) if $self->{'output_is_binary'};
@@ -1869,12 +1894,12 @@ sub page { # apply a pager to the output file
my ($self, $output, $output_to_stdout, @pagers) = @_;
if ($output_to_stdout) {
$self->aside("Sending unpaged output to STDOUT.\n");
- open(TMP, "<", $output) or $self->die( "Can't open $output: $!" ); # XXX 5.6ism
+ my $fh = $self->open_fh("<", $output);
local $_;
- while (<TMP>) {
+ while (<$fh>) {
print or $self->die( "Can't print to stdout: $!" );
}
- close TMP or $self->die( "Can't close while $output: $!" );
+ close $fh or $self->die( "Can't close while $output: $!" );
$self->unlink_if_temp_file($output);
} else {
# On VMS, quoting prevents logical expansion, and temp files with no
@@ -1892,6 +1917,9 @@ sub page { # apply a pager to the output file
if ($self->is_vms) {
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/Master/tlpkg/tlperl/lib/Pod/Perldoc/BaseTo.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/BaseTo.pm
index b216d426114..304da44ede2 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/BaseTo.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/BaseTo.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use vars qw($VERSION);
-$VERSION = '3.23';
+$VERSION = '3.25';
use Carp qw(croak carp);
use Config qw(%Config);
@@ -106,7 +106,7 @@ Pod::Perldoc::BaseTo - Base for Pod::Perldoc formatters
package Pod::Perldoc::ToMyFormat;
- use base qw( Pod::Perldoc::BaseTo );
+ use parent qw( Pod::Perldoc::BaseTo );
...
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/GetOptsOO.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/GetOptsOO.pm
index 3f4e218a946..71fcc7bc9a2 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/GetOptsOO.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/GetOptsOO.pm
@@ -2,7 +2,7 @@ package Pod::Perldoc::GetOptsOO;
use strict;
use vars qw($VERSION);
-$VERSION = '3.23';
+$VERSION = '3.25';
BEGIN { # Make a DEBUG constant ASAP
*DEBUG = defined( &Pod::Perldoc::DEBUG )
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToANSI.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToANSI.pm
index f0ecbced987..26a11d3c809 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToANSI.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToANSI.pm
@@ -4,7 +4,7 @@ use warnings;
use parent qw(Pod::Perldoc::BaseTo);
use vars qw($VERSION);
-$VERSION = '3.23';
+$VERSION = '3.25';
sub is_pageable { 1 }
sub write_with_binmode { 0 }
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToChecker.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToChecker.pm
index 8bff3381201..3d161acf51c 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToChecker.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToChecker.pm
@@ -4,7 +4,7 @@ use warnings;
use vars qw(@ISA);
use vars qw($VERSION);
-$VERSION = '3.23';
+$VERSION = '3.25';
# Pick our superclass...
#
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToMan.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToMan.pm
index 1080dbd93e0..e22e05044d1 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToMan.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToMan.pm
@@ -5,7 +5,7 @@ use warnings;
use parent qw(Pod::Perldoc::BaseTo);
use vars qw($VERSION);
-$VERSION = '3.23';
+$VERSION = '3.25';
use File::Spec::Functions qw(catfile);
use Pod::Man 2.18;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToNroff.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToNroff.pm
index 9777581db23..ac4a8aa17d4 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToNroff.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToNroff.pm
@@ -4,7 +4,7 @@ use warnings;
use parent qw(Pod::Perldoc::BaseTo);
use vars qw($VERSION);
-$VERSION = '3.23';
+$VERSION = '3.25';
# This is unlike ToMan.pm in that it emits the raw nroff source!
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToPod.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToPod.pm
index 97185bbb42d..8433e8ca409 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToPod.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToPod.pm
@@ -4,7 +4,7 @@ use warnings;
use parent qw(Pod::Perldoc::BaseTo);
use vars qw($VERSION);
-$VERSION = '3.23';
+$VERSION = '3.25';
sub is_pageable { 1 }
sub write_with_binmode { 0 }
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToRtf.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToRtf.pm
index 588405715bb..81f019f8a20 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToRtf.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToRtf.pm
@@ -4,7 +4,7 @@ use warnings;
use parent qw( Pod::Simple::RTF );
use vars qw($VERSION);
-$VERSION = '3.23';
+$VERSION = '3.25';
sub is_pageable { 0 }
sub write_with_binmode { 0 }
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTerm.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTerm.pm
index 693b52a9059..e97a775e10e 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTerm.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTerm.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use vars qw($VERSION);
-$VERSION = '3.23';
+$VERSION = '3.25';
use parent qw(Pod::Perldoc::BaseTo);
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToText.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToText.pm
index 07f44cd5630..dbd47438d3a 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToText.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToText.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use vars qw($VERSION);
-$VERSION = '3.23';
+$VERSION = '3.25';
use parent qw(Pod::Perldoc::BaseTo);
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTk.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTk.pm
index 627289e88a1..40b51c5b438 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTk.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTk.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use vars qw($VERSION);
-$VERSION = '3.23';
+$VERSION = '3.25';
use parent qw(Pod::Perldoc::BaseTo);
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToXml.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToXml.pm
index 5c86b3ebda1..9da514f7f61 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToXml.pm
+++ b/Master/tlpkg/tlperl/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.23';
+$VERSION = '3.25';
sub is_pageable { 0 }
sub write_with_binmode { 0 }
diff --git a/Master/tlpkg/tlperl/lib/Pod/Select.pm b/Master/tlpkg/tlperl/lib/Pod/Select.pm
index 6657def58fd..70267e94ec0 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Select.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Select.pm
@@ -11,7 +11,7 @@ package Pod::Select;
use strict;
use vars qw($VERSION @ISA @EXPORT $MAX_HEADING_LEVEL %myData @section_headings @selected_sections);
-$VERSION = '1.62'; ## Current version of this package
+$VERSION = '1.63'; ## Current version of this package
require 5.005; ## requires this Perl version or later
#############################################################################
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple.pm b/Master/tlpkg/tlperl/lib/Pod/Simple.pm
index fb5438f7f71..538969d9fb2 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple.pm
@@ -18,7 +18,7 @@ use vars qw(
);
@ISA = ('Pod::Simple::BlackBox');
-$VERSION = '3.28';
+$VERSION = '3.29';
@Known_formatting_codes = qw(I B C L E F S X Z);
%Known_formatting_codes = map(($_=>1), @Known_formatting_codes);
@@ -105,7 +105,7 @@ __PACKAGE__->_accessorize(
# $pod_handler->($line, $self->{'line_count'}, $self) if $pod_handler;
# $wl_handler->($line, $self->{'line_count'}, $self) if $wl_handler;
'parse_empty_lists', # whether to acknowledge empty =over/=back blocks
-
+ 'raw_mode', # to report entire raw lines instead of Pod elements
);
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ -487,7 +487,7 @@ sub parse_from_file {
} elsif(ref(\$source) eq 'GLOB') { # stet
} elsif(ref($source) ) { # stet
} elsif(!length $source
- or $source eq '-' or $source =~ m/^<&(STDIN|0)$/i
+ or $source eq '-' or $source =~ m/^<&(?:STDIN|0)$/i
) {
$source = *STDIN{IO};
}
@@ -499,6 +499,8 @@ sub parse_from_file {
or $to eq '-' or $to =~ m/^>&?(?:STDOUT|1)$/i
) {
$self->output_fh( *STDOUT{IO} );
+ } elsif($to =~ m/^>&(?:STDERR|2)$/i) {
+ $self->output_fh( *STDERR{IO} );
} else {
require Symbol;
my $out_fh = Symbol::gensym();
@@ -1439,6 +1441,14 @@ sub _treat_Ss {
return;
}
+# We can get NO BREAK SPACE accurately for any platform for recent Perls; for
+# earlier ones use the ASCII value for those platforms, and assume the typical
+# EBCDIC value for any others.
+my $nbsp = ($] >= 5.007003)
+ ? chr utf8::unicode_to_native(0xA0)
+ : (ASCII)
+ ? "\xA0"
+ : "\x41";
sub _change_S_to_nbsp { # a recursive function
# Sanely assumes that the top node in the excursion won't be an S node.
@@ -1457,8 +1467,7 @@ sub _change_S_to_nbsp { # a recursive function
$i += @$to_pull_up - 1; # Make $i skip the pulled-up stuff
}
} else {
- $treelet->[$i] =~ s/\s/\xA0/g if ASCII and $in_s;
- # (If not in ASCIIland, we can't assume that \xA0 == nbsp.)
+ $treelet->[$i] =~ s/\s/$nbsp/g if $in_s;
# Note that if you apply nbsp_for_S to text, and so turn
# "foo S<bar baz> quux" into "foo bar&#160;faz quux", you
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple.pod b/Master/tlpkg/tlperl/lib/Pod/Simple.pod
index 4edc08ed677..aadba19e941 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple.pod
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple.pod
@@ -42,8 +42,8 @@ of Pod::Simple.
=item C<< $parser->output_fh( *OUT ); >>
This sets the filehandle that C<$parser>'s output will be written to.
-You can pass C<*STDOUT>, otherwise you should probably do something
-like this:
+You can pass C<*STDOUT> or C<*STDERR>, otherwise you should probably do
+something like this:
my $outfile = "output.txt";
open TXTOUT, ">$outfile" or die "Can't write to $outfile: $!";
@@ -183,7 +183,7 @@ verbatim blocks will be preserved in the output. This can be annoying for
outputs such as HTML, where that whitespace will remain in front of every
line. It's an unfortunate case where syntax is turned into semantics.
-If the POD your parsing adheres to a consistent indentation policy, you can
+If the POD you're parsing adheres to a consistent indentation policy, you can
have such indentation stripped from the beginning of every line of your
verbatim blocks. This method tells Pod::Simple what to strip. For two-space
indents, you'd use:
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm
index a1b570810d0..ee6e747a6a0 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm
@@ -1,4 +1,3 @@
-
package Pod::Simple::BlackBox;
#
# "What's in the box?" "Pain."
@@ -23,7 +22,7 @@ use integer; # vroom!
use strict;
use Carp ();
use vars qw($VERSION );
-$VERSION = '3.28';
+$VERSION = '3.29';
#use constant DEBUG => 7;
BEGIN {
require Pod::Simple;
@@ -127,13 +126,25 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines)
# Try to guess encoding. Inlined for performance reasons.
if(!$self->{'parse_characters'} && !$self->{'encoding'}
&& ($self->{'in_pod'} || $line =~ /^=/s)
- && $line =~ /[^\x00-\x7f]/
+ && $line =~ /[[:^ascii:]]/
) {
- my $encoding = $line =~ /^[\x00-\x7f]*[\xC0-\xFD][\x80-\xBF]/ ? 'UTF-8' : 'ISO8859-1';
+ my $encoding;
+ if (ord("A") != 65) {
+
+ # Hard to figure out on non-ASCII platform if UTF-8 or not. This
+ # won't work if it isn't UTF-8, so just assume it is and hope for the
+ # best. It's not clear that the other encodings work on non-ASCII
+ # platforms anyway.
+ $encoding = 'UTF-8';
+ }
+ else {
+ $encoding = $line =~ /^[\x00-\x7f]*[\xC0-\xFD][\x80-\xBF]/ ? 'UTF-8' : 'ISO8859-1';
+ }
$self->_handle_encoding_line( "=encoding $encoding" );
+ delete $self->{'_processed_encoding'};
$self->{'_transcoder'} && $self->{'_transcoder'}->($line);
- my ($word) = $line =~ /(\S*[^\x00-\x7f]\S*)/;
+ my ($word) = $line =~ /(\S*[[:^ascii:]]\S*)/;
$self->whine(
$self->{'line_count'},
@@ -376,8 +387,8 @@ sub _handle_encoding_line {
}
push @{ $self->{'encoding_command_statuses'} }, $enc_error;
if (defined($self->{'_processed_encoding'})) {
- # Should never happen
- die "Nested processed encoding.";
+ # Double declaration.
+ $self->scream( $self->{'line_count'}, 'Cannot have multiple =encoding directives');
}
$self->{'_processed_encoding'} = $orig;
@@ -1980,20 +1991,20 @@ sub pretty { # adopted from Class::Classless
$_ eq '0' # very common case
or(
m/^-?(?:[123456789]\d*|0)(?:\.\d+)?$/s
- and $_ ne '-0' # the strange case that that RE lets thru
+ and $_ ne '-0' # the strange case that RE lets thru
)
) { $_;
} else {
- if( chr(65) eq 'A' ) {
- s<([^\x20\x21\x23\x27-\x3F\x41-\x5B\x5D-\x7E])>
- #<$pretty_form{$1} || '\\x'.(unpack("H2",$1))>eg;
+ # Yes, explicitly name every character desired. There are shorcuts one
+ # could make, but I (Karl Williamson) was afraid that some Perl
+ # releases would have bugs in some of them. For example [A-Z] works
+ # even on EBCDIC platforms to match exactly the 26 uppercase English
+ # letters, but I don't know if it has always worked without bugs. It
+ # seemed safest just to list the characters.
+ # s<([^\x20\x21\x23\x27-\x3F\x41-\x5B\x5D-\x7E])>
+ s<([^ !#'()*+,\-./0123456789:;\<=\>?ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\]^_`abcdefghijklmnopqrstuvwxyz{|}~])>
<$pretty_form{$1} || '\\x{'.sprintf("%x", ord($1)).'}'>eg;
- } else {
- # We're in some crazy non-ASCII world!
- s<([^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789])>
#<$pretty_form{$1} || '\\x'.(unpack("H2",$1))>eg;
- <$pretty_form{$1} || '\\x{'.sprintf("%x", ord($1)).'}'>eg;
- }
qq{"$_"};
}
} @stuff;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Checker.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Checker.pm
index 92e1bee238a..3ef64eea650 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Checker.pm
+++ b/Master/tlpkg/tlperl/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.28';
+$VERSION = '3.29';
@ISA = ('Pod::Simple::Methody');
BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG)
? \&Pod::Simple::DEBUG
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Debug.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Debug.pm
index b170bb780ab..2bbd50a6643 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Debug.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/Debug.pm
@@ -1,9 +1,8 @@
-
require 5;
package Pod::Simple::Debug;
use strict;
use vars qw($VERSION );
-$VERSION = '3.28';
+$VERSION = '3.29';
sub import {
my($value,$variable);
@@ -97,7 +96,7 @@ Note that you should load this module I<before> loading Pod::Simple (or
any Pod::Simple-based class). If you try loading Pod::Simple::Debug
after &Pod::Simple::DEBUG is already defined, Pod::Simple::Debug will
throw a fatal error to the effect that
-"it's s too late to call Pod::Simple::Debug".
+"It's too late to call Pod::Simple::Debug".
Note that the C<use Pod::Simple::Debug (\$x, I<somenum>)> mode will make
Pod::Simple (et al) run rather slower, since &Pod::Simple::DEBUG won't
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm
index 019dfd57fbd..dfde4d66b2c 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::DumpAsText;
-$VERSION = '3.28';
+$VERSION = '3.29';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
@@ -54,7 +54,7 @@ sub _handle_text {
[^\n]{55} # Snare some characters from a line
[^\n\ ]{0,50} # and finish any current word
)
- \x20{1,10}(?!\n) # capture some spaces not at line-end
+ \ {1,10}(?!\n) # capture some spaces not at line-end
/$1"\n$indent . "/gx # => line-break here
;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm
index ac925c08eff..4db6a061494 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::DumpAsXML;
-$VERSION = '3.28';
+$VERSION = '3.29';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/HTML.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/HTML.pm
index 8a2f81569c1..2c6494b9ba2 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/HTML.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/HTML.pm
@@ -1,4 +1,3 @@
-
require 5;
package Pod::Simple::HTML;
use strict;
@@ -10,8 +9,7 @@ use vars qw(
$Doctype_decl $Content_decl
);
@ISA = ('Pod::Simple::PullParser');
-$VERSION = '3.28';
-
+$VERSION = '3.29';
BEGIN {
if(defined &DEBUG) { } # no-op
elsif( defined &Pod::Simple::DEBUG ) { *DEBUG = \&Pod::Simple::DEBUG }
@@ -75,6 +73,7 @@ __PACKAGE__->_accessorize(
'html_header_before_title',
'html_header_after_title',
'html_footer',
+ 'top_anchor',
'index', # whether to add an index at the top of each page
# (actually it's a table-of-contents, but we'll call it an index,
@@ -209,6 +208,7 @@ sub new {
"<!-- start doc -->\n",
);
$new->html_footer( qq[\n<!-- end doc -->\n\n</body></html>\n] );
+ $new->top_anchor( "<a name='___top' class='dummyTopAnchor' ></a>\n" );
$new->{'Tagmap'} = {%Tagmap};
@@ -312,7 +312,7 @@ sub do_beginning {
sub _add_top_anchor {
my($self, $text_r) = @_;
unless($$text_r and $$text_r =~ m/name=['"]___top['"]/) { # a hack
- $$text_r .= "<a name='___top' class='dummyTopAnchor' ></a>\n";
+ $$text_r .= $self->top_anchor || '';
}
return;
}
@@ -524,7 +524,9 @@ sub _do_middle_main_loop {
next;
}
DEBUG and print " raw text ", $next->text, "\n";
- print $fh "\n" . $next->text . "\n";
+ # The parser sometimes preserves newlines and sometimes doesn't!
+ (my $text = $next->text) =~ s/\n\z//;
+ print $fh $text, "\n";
next;
} else {
@@ -969,7 +971,7 @@ Set the content-type in the HTML head: (defaults to ISO-8859-1)
$Pod::Simple::HTML::Content_decl = q{<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >};
-Set the value that will be ebedded in the opening tags of F, C tags and verbatim text.
+Set the value that will be embedded in the opening tags of F, C tags and verbatim text.
F maps to <em>, C maps to <code>, Verbatim text maps to <pre> (Computerese defaults to "")
$Pod::Simple::HTML::Computerese = ' class="some_class_name';
@@ -990,6 +992,13 @@ file:
$p->html_header_before_title('<html><head><title>');
+=head2 top_anchor
+
+By default Pod::Simple::HTML adds a dummy anchor at the top of the HTML.
+You can change it by calling
+
+ $p->top_anchor('<a name="zz" >');
+
=head2 html_h_level
Normally =head1 will become <h1>, =head2 will become <h2> etc.
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm
index e41b11e2c50..19e700b825f 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm
+++ b/Master/tlpkg/tlperl/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.28';
+$VERSION = '3.29';
@ISA = (); # Yup, we're NOT a subclass of Pod::Simple::HTML!
# TODO: nocontents stylesheets. Strike some of the color variations?
@@ -1310,18 +1310,6 @@ TODO
that classname
-
-=head1 ASK ME!
-
-If you want to do some kind of big pod-to-HTML version with some
-particular kind of option that you don't see how to achieve using this
-module, email me (C<sburke@cpan.org>) and I'll probably have a good idea
-how to do it. For reasons of concision and energetic laziness, some
-methods and options in this module (and the dozen modules it depends on)
-are undocumented; but one of those undocumented bits might be just what
-you're looking for.
-
-
=head1 SEE ALSO
L<Pod::Simple>, L<Pod::Simple::HTMLBatch>, L<perlpod>, L<perlpodspec>
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm
index be1f5345d08..2139509303e 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm
+++ b/Master/tlpkg/tlperl/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.28';
+$VERSION = '3.29';
use strict;
use Pod::Simple::BlackBox;
use vars qw($VERSION );
-$VERSION = '3.28';
+$VERSION = '3.29';
use overload( # So it'll stringify nice
'""' => \&Pod::Simple::BlackBox::stringify_lol,
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Methody.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Methody.pm
index 38acaa20d0b..d867b1ce932 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Methody.pm
+++ b/Master/tlpkg/tlperl/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.28';
+$VERSION = '3.29';
@ISA = ('Pod::Simple');
# Yes, we could use named variables, but I want this to be impose
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Progress.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Progress.pm
index f9cd6816722..3a87b998423 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Progress.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/Progress.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::Progress;
-$VERSION = '3.28';
+$VERSION = '3.29';
use strict;
# Objects of this class are used for noting progress of an
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm
index 5c13724dc11..0e47ec3413b 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm
@@ -1,7 +1,6 @@
-
require 5;
package Pod::Simple::PullParser;
-$VERSION = '3.28';
+$VERSION = '3.29';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
@@ -688,7 +687,7 @@ If the title can't be found, then get_short_title returns empty-string
This works like get_title except that it returns the contents of the
"=head1 AUTHOR\n\nParagraph...\n" section, assuming that that section
isn't terribly long. To recognize a "=head1 Author\n\nParagraph\n"
-section, pass the C<nocase> otpion:
+section, pass the C<nocase> option:
$parser->get_author(nocase => 1);
@@ -699,7 +698,7 @@ section, pass the C<nocase> otpion:
This works like get_title except that it returns the contents of the
"=head1 DESCRIPTION\n\nParagraph...\n" section, assuming that that section
isn't terribly long. To recognize a "=head1 Description\n\nParagraph\n"
-section, pass the C<nocase> otpion:
+section, pass the C<nocase> option:
$parser->get_description(nocase => 1);
@@ -708,7 +707,7 @@ section, pass the C<nocase> otpion:
This works like get_title except that it returns the contents of
the "=head1 VERSION\n\n[BIG BLOCK]\n" block. Note that this does NOT
return the module's C<$VERSION>!! To recognize a
-"=head1 Version\n\n[BIG BLOCK]\n" section, pass the C<nocase> otpion:
+"=head1 Version\n\n[BIG BLOCK]\n" section, pass the C<nocase> option:
$parser->get_version(nocase => 1);
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm
index 5fa402318eb..bb5ac7adbfe 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm
+++ b/Master/tlpkg/tlperl/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.28';
+$VERSION = '3.29';
sub new { # Class->new(tagname);
my $class = shift;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm
index 3edb0ad5695..dbb0b2c859f 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm
+++ b/Master/tlpkg/tlperl/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.28';
+$VERSION = '3.29';
sub new { # Class->new(tagname, optional_attrhash);
my $class = shift;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm
index a75fd7a706e..9db7f1ee8fc 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm
+++ b/Master/tlpkg/tlperl/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.28';
+$VERSION = '3.29';
sub new { # Class->new(text);
my $class = shift;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm
index bbae51ba69e..46ab1fd4d3a 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm
+++ b/Master/tlpkg/tlperl/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.28';
+$VERSION = '3.29';
use strict;
sub new { # Class->new('type', stuff...); ## Overridden in derived classes anyway
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/RTF.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/RTF.pm
index 067e6b9dd35..617190418b6 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/RTF.pm
+++ b/Master/tlpkg/tlperl/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.28';
+$VERSION = '3.29';
use Pod::Simple::PullParser ();
BEGIN {@ISA = ('Pod::Simple::PullParser')}
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Search.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Search.pm
index 15cb292fc50..49df34d3543 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Search.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/Search.pm
@@ -1,10 +1,9 @@
-
require 5.005;
package Pod::Simple::Search;
use strict;
use vars qw($VERSION $MAX_VERSION_WITHIN $SLEEPY);
-$VERSION = '3.28'; ## Current version of this package
+$VERSION = '3.29'; ## Current version of this package
BEGIN { *DEBUG = sub () {0} unless defined &DEBUG; } # set DEBUG level
use Carp ();
@@ -768,7 +767,6 @@ are produced. (Setting verbose to 1 turns on some messages, and setting
it to 2 turns on even more messages, i.e., makes the following search(es)
even more verbose than 1 would make them.)
-
=item $search->limit_glob( I<some-glob-string> );
This option means that you want to limit the results just to items whose
@@ -806,6 +804,10 @@ seeing only files with Perl-like extensions, omitting subdirectories
that are numeric but do I<not> match the current Perl interpreter's
version ID, suppressing F<site_perl> as a module hierarchy name, etc.
+=item $search->recurse( I<true-or-false> );
+
+Unless you set this attribute to a false value, Pod::Search will
+recurse into subdirectories of the search directories.
=item $search->shadows( I<true-or-false> );
@@ -834,7 +836,7 @@ C<limit_glob> attribute is used instead.
Setting this attribute to a string value means that the searches should
begin in the specified subdirectory name (like "Pod" or "File::Find",
-also expressable as "File/Find"). For example, the search option
+also expressible as "File/Find"). For example, the search option
C<< $search->limit_glob("File::Find::R*") >>
is the same as the combination of the search options
C<< $search->limit_re("^File::Find::R") -> dir_prefix("File::Find") >>.
@@ -942,8 +944,7 @@ version than the system's general path dirs in general.)
The options to this argument is a list of either directories that are
searched recursively, or files. (Usually you wouldn't specify files,
but just dirs.) Or you can just specify an empty-list, as in
-$name2path; with the
-C<inc> option on, as it is by default, teh
+$name2path; with the C<inc> option on, as it is by default.
The POD names of files are the plain basenames with any Perl-like
extension (.pm, .pl, .pod) stripped, and path separators replaced by
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm
index 0b42a22b273..201e37aac95 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm
@@ -1,12 +1,11 @@
-
require 5;
package Pod::Simple::SimpleTree;
use strict;
use Carp ();
use Pod::Simple ();
use vars qw( $ATTR_PAD @ISA $VERSION $SORT_ATTRS);
-$VERSION = '3.28';
+$VERSION = '3.29';
BEGIN {
@ISA = ('Pod::Simple');
*DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG;
@@ -121,7 +120,7 @@ the form: C<[ I<elementname>, \%attributes, I<...subnodes...> ]>.
See the example tree dump in the Synopsis, above.
Every text node in the tree is represented by a simple (non-ref)
-string scalar. So you can test C<ref($node)> to see whather you have
+string scalar. So you can test C<ref($node)> to see whether you have
an element node or just a text node.
The top node in the tree is C<[ 'Document', \%attributes,
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Subclassing.pod b/Master/tlpkg/tlperl/lib/Pod/Simple/Subclassing.pod
index 7a7976bdc47..e3f09a34e1b 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Subclassing.pod
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/Subclassing.pod
@@ -1,4 +1,3 @@
-
=head1 NAME
Pod::Simple::Subclassing -- write a formatter as a Pod::Simple subclass
@@ -38,7 +37,7 @@ generally a Pod formatter. If you just want to know about using an
existing Pod formatter, instead see its documentation and see also the
docs in L<Pod::Simple>.
-The zeroeth step in writing a Pod formatter is to make sure that there
+B<The zeroeth step> in writing a Pod formatter is to make sure that there
isn't already a decent one in CPAN. See L<http://search.cpan.org/>, and
run a search on the name of the format you want to render to. Also
consider joining the Pod People list
@@ -46,29 +45,47 @@ L<http://lists.perl.org/showlist.cgi?name=pod-people> and asking whether
anyone has a formatter for that format -- maybe someone cobbled one
together but just hasn't released it.
-The first step in writing a Pod processor is to read L<perlpodspec>,
+B<The first step> in writing a Pod processor is to read L<perlpodspec>,
which contains notes information on writing a Pod parser (which has been
largely taken care of by Pod::Simple), but also a lot of requirements
and recommendations for writing a formatter.
-The second step is to actually learn the format you're planning to
+B<The second step> is to actually learn the format you're planning to
format to -- or at least as much as you need to know to represent Pod,
which probably isn't much.
-The third step is to pick which of Pod::Simple's interfaces you want to
-use -- the basic interface via Pod::Simple or L<Pod::Simple::Methody> is
-event-based, sort of like L<HTML::Parser>'s interface, or sort of like
-L<XML::Parser>'s "Handlers" interface), but L<Pod::Simple::PullParser>
-provides a token-stream interface, sort of like L<HTML::TokeParser>'s
-interface; L<Pod::Simple::SimpleTree> provides a simple tree interface,
-rather like XML::Parser's "Tree" interface. Users familiar with
-XML-handling will find one of these styles relatively familiar; but if
-you would be even more at home with XML, there are classes that produce
-an XML representation of the Pod stream, notably
-L<Pod::Simple::XMLOutStream>; you can feed the output of such a class to
-whatever XML parsing system you are most at home with.
-
-The last step is to write your code based on how the events (or tokens,
+B<The third step> is to pick which of Pod::Simple's interfaces you want to
+use:
+
+=over
+
+=item Pod::Simple
+
+The basic L<Pod::Simple> interface that uses C<_handle_element_start()>,
+C<_handle_element_end()> and C<_handle_text()>.
+
+=item Pod::Simple::Methody
+
+The L<Pod::Simple::Methody> interface is event-based, similar to that of
+L<HTML::Parser> or L<XML::Parser>'s "Handlers".
+
+=item Pod::Simple::PullParser
+
+L<Pod::Simple::PullParser> provides a token-stream interface, sort of
+like L<HTML::TokeParser>'s interface.
+
+=item Pod::Simple::SimpleTree
+
+L<Pod::Simple::SimpleTree> provides a simple tree interface, rather like
+L<XML::Parser>'s "Tree" interface. Users familiar with XML handling will
+be comfortable with this interface. Users interested in outputting XML,
+should look into the modules that produce an XML representation of the
+Pod stream, notably L<Pod::Simple::XMLOutStream>; you can feed the output
+of such a class to whatever XML parsing system you are most at home with.
+
+=back
+
+B<The last step> is to write your code based on how the events (or tokens,
or tree-nodes, or the XML, or however you're parsing) will map to
constructs in the output format. Also sure to consider how to escape
text nodes containing arbitrary text, and also what to do with text
@@ -545,7 +562,7 @@ an "<UL><LI>...</LI>...</UL>" structure), but which any processor may use.
Note that the values for the I<number> attributes of "item-number"
elements in a given "over-number" area I<will> start at 1 and go up by
one each time. If the Pod source doesn't follow that order (even though
-it really should should!), whatever numbers it has will be ignored (with
+it really should!), whatever numbers it has will be ignored (with
the correct values being put in the I<number> attributes), and an error
message might be issued to the user.
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Text.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Text.pm
index bd1a5416df8..b3292f8c498 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Text.pm
+++ b/Master/tlpkg/tlperl/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.28';
+$VERSION = '3.29';
@ISA = ('Pod::Simple::Methody');
BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG)
? \&Pod::Simple::DEBUG
@@ -14,7 +14,8 @@ BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG)
}
use Text::Wrap 98.112902 ();
-$Text::Wrap::wrap = 'overflow';
+$Text::Wrap::huge = 'overflow';
+
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub new {
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm
index 6788df6d762..516f28cb223 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm
@@ -6,7 +6,7 @@ use strict;
use Carp ();
use Pod::Simple ();
use vars qw( @ISA $VERSION );
-$VERSION = '3.28';
+$VERSION = '3.29';
@ISA = ('Pod::Simple');
sub new {
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm
index 0b2fb2f8c49..dbf5210388e 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm
@@ -4,7 +4,7 @@ package Pod::Simple::TiedOutFH;
use Symbol ('gensym');
use Carp ();
use vars qw($VERSION );
-$VERSION = '3.28';
+$VERSION = '3.29';
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm
index 9e835048a0e..9c60f05d021 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm
@@ -2,7 +2,7 @@
require 5;
package Pod::Simple::Transcode;
use vars qw($VERSION );
-$VERSION = '3.28';
+$VERSION = '3.29';
BEGIN {
if(defined &DEBUG) {;} # Okay
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm
index 4749e9af198..badb9a0d439 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm
@@ -5,7 +5,7 @@ require 5;
package Pod::Simple::TranscodeDumb;
use strict;
use vars qw($VERSION %Supported);
-$VERSION = '3.28';
+$VERSION = '3.29';
# 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/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm
index 06fdb9f2750..6735b9979b3 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm
@@ -9,7 +9,7 @@ use strict;
use Pod::Simple;
require Encode;
use vars qw($VERSION );
-$VERSION = '3.28';
+$VERSION = '3.29';
sub is_dumb {0}
sub is_smart {1}
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm
index df896e64a7c..3a2d2094c68 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm
+++ b/Master/tlpkg/tlperl/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.28';
+$VERSION = '3.29';
use Pod::Simple::Methody ();
@ISA = ('Pod::Simple::Methody');
@@ -132,7 +132,7 @@ A document type tag for the file. This option is not set by default.
=head2 html_charset
-The charater set to declare in the Content-Type meta tag created by default
+The character set to declare in the Content-Type meta tag created by default
for C<html_header_tags>. Note that this option will be ignored if the value of
C<html_header_tags> is changed. Defaults to "ISO-8859-1".
@@ -313,9 +313,9 @@ The base implementation just escapes the text.
The callback methods C<start_code> and C<end_code> emits the C<code> tags
before and after C<handle_code> is invoked, so you might want to override these
-together with C<handle_code> if this wrapping isn't suiteable.
+together with C<handle_code> if this wrapping isn't suitable.
-Note that the code might be broken into mulitple segments if there are
+Note that the code might be broken into multiple segments if there are
nested formatting codes inside a C<< CE<lt>...> >> sequence. In between the
calls to C<handle_code> other markup tags might have been emitted in that
case. The same is true for verbatim sections if the C<codes_in_verbatim>
@@ -352,7 +352,23 @@ sub handle_text {
# literal xhtml region, since handle_code calls encode_entities.
$_[0]->handle_code( $_[1], $_[0]{'in_code'}[-1] );
} else {
- $_[0]{'scratch'} .= $text;
+ if ($_[0]->{in_for}) {
+ my $newlines = $_[0]->__in_literal_xhtml_region ? "\n\n" : '';
+ if ($_[0]->{started_for}) {
+ if ($text =~ /\S/) {
+ delete $_[0]->{started_for};
+ $_[0]{'scratch'} .= $text . $newlines;
+ }
+ # Otherwise, append nothing until we have something to append.
+ } else {
+ # The parser sometimes preserves newlines and sometimes doesn't!
+ $text =~ s/\n\z//;
+ $_[0]{'scratch'} .= $text . $newlines;
+ }
+ } else {
+ # Just plain text.
+ $_[0]{'scratch'} .= $text;
+ }
}
$_[0]{htext} .= $text if $_[0]{'in_head'};
@@ -371,7 +387,7 @@ sub handle_code {
}
sub start_Para {
- $_[0]{'scratch'} = '<p>';
+ $_[0]{'scratch'} .= '<p>';
}
sub start_Verbatim {
@@ -496,20 +512,27 @@ sub start_for {
my ($self, $flags) = @_;
push @{ $self->{__region_targets} }, $flags->{target_matching};
+ $self->{started_for} = 1;
+ $self->{in_for} = 1;
unless ($self->__in_literal_xhtml_region) {
$self->{scratch} .= '<div';
$self->{scratch} .= qq( class="$flags->{target}") if $flags->{target};
- $self->{scratch} .= '>';
+ $self->{scratch} .= ">\n\n";
}
-
- $self->emit;
-
}
+
sub end_for {
my ($self) = @_;
+ delete $self->{started_for};
+ delete $self->{in_for};
- $self->{'scratch'} .= '</div>' unless $self->__in_literal_xhtml_region;
+ if ($self->__in_literal_xhtml_region) {
+ # Remove trailine newlines.
+ $self->{'scratch'} =~ s/\s+\z//s;
+ } else {
+ $self->{'scratch'} .= '</div>';
+ }
pop @{ $self->{__region_targets} };
$self->emit;
@@ -526,16 +549,17 @@ sub start_Document {
$title = $self->force_title || $self->title || $self->default_title || '';
$metatags = $self->html_header_tags || '';
if (my $css = $self->html_css) {
- $metatags .= $css;
if ($css !~ /<link/) {
# this is required to be compatible with Pod::Simple::BatchHTML
$metatags .= '<link rel="stylesheet" href="'
. $self->encode_entities($css) . '" type="text/css" />';
+ } else {
+ $metatags .= $css;
}
}
if ($self->html_javascript) {
$metatags .= qq{\n<script type="text/javascript" src="} .
- $self->html_javascript . "'></script>";
+ $self->html_javascript . '"></script>';
}
$bodyid = $self->backlink ? ' id="_podtop_"' : '';
$self->{'scratch'} .= <<"HTML";
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm
index 47496e2577f..a0f50a20fb2 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm
+++ b/Master/tlpkg/tlperl/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.28';
+$VERSION = '3.29';
BEGIN {
@ISA = ('Pod::Simple');
*DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG;
@@ -125,19 +125,6 @@ The older (and possibly obsolete) libraries L<Pod::PXML>, L<Pod::XML>
TODO: An example or two of =extend, then point to Pod::Simple::Subclassing
-
-=head1 ASK ME!
-
-If you actually want to use Pod as a format that you want to render to
-XML (particularly if to an XML instance with more elements than normal
-Pod has), please email me (C<sburke@cpan.org>) and I'll probably have
-some recommendations.
-
-For reasons of concision and energetic laziness, some methods and
-options in this module (and the dozen modules it depends on) are
-undocumented; but one of those undocumented bits might be just what
-you're looking for.
-
=head1 SEE ALSO
L<Pod::Simple>, L<Pod::Simple::Text>, L<Pod::Spell>
diff --git a/Master/tlpkg/tlperl/lib/Pod/Usage.pm b/Master/tlpkg/tlperl/lib/Pod/Usage.pm
index f0dd8350f12..bb8e60f05b0 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Usage.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Usage.pm
@@ -11,7 +11,7 @@ package Pod::Usage;
use strict;
use vars qw($VERSION @ISA @EXPORT);
-$VERSION = '1.63'; ## Current version of this package
+$VERSION = '1.64'; ## Current version of this package
require 5.006; ## requires this Perl version or later
#use diagnostics;
@@ -360,7 +360,7 @@ __END__
=head1 NAME
-Pod::Usage, pod2usage() - print a usage message from embedded pod documentation
+Pod::Usage - print a usage message from embedded pod documentation
=head1 SYNOPSIS
@@ -594,13 +594,15 @@ use them by default if you don't expressly tell it to do otherwise. The
ability of B<pod2usage()> to accept a single number or a string makes it
convenient to use as an innocent looking error message handling function:
+ use strict;
use Pod::Usage;
use Getopt::Long;
## Parse options
- GetOptions("help", "man", "flag1") || pod2usage(2);
- pod2usage(1) if ($opt_help);
- pod2usage(-verbose => 2) if ($opt_man);
+ my %opt;
+ GetOptions(\%opt, "help|?", "man", "flag1") || pod2usage(2);
+ pod2usage(1) if ($opt{help});
+ pod2usage(-exitval => 0, -verbose => 2) if ($opt{man});
## Check for too many filenames
pod2usage("$0: Too many files given.\n") if (@ARGV > 1);
@@ -609,23 +611,35 @@ Some user's however may feel that the above "economy of expression" is
not particularly readable nor consistent and may instead choose to do
something more like the following:
- use Pod::Usage;
- use Getopt::Long;
+ use strict;
+ use Pod::Usage qw(pod2usage);
+ use Getopt::Long qw(GetOptions);
## Parse options
- GetOptions("help", "man", "flag1") || pod2usage(-verbose => 0);
- pod2usage(-verbose => 1) if ($opt_help);
- pod2usage(-verbose => 2) if ($opt_man);
+ my %opt;
+ GetOptions(\%opt, "help|?", "man", "flag1") ||
+ pod2usage(-verbose => 0);
+
+ pod2usage(-verbose => 1) if ($opt{help});
+ pod2usage(-verbose => 2) if ($opt{man});
## Check for too many filenames
pod2usage(-verbose => 2, -message => "$0: Too many files given.\n")
- if (@ARGV > 1);
+ if (@ARGV > 1);
+
As with all things in Perl, I<there's more than one way to do it>, and
B<pod2usage()> adheres to this philosophy. If you are interested in
seeing a number of different ways to invoke B<pod2usage> (although by no
means exhaustive), please refer to L<"EXAMPLES">.
+=head2 Scripts
+
+The Pod::Usage distribution comes with a script pod2usage which offers
+a command line interface to the functionality of Pod::Usage. See
+L<pod2usage>.
+
+
=head1 EXAMPLES
Each of the following invocations of C<pod2usage()> will print just the
@@ -709,8 +723,9 @@ provide a means of printing their complete documentation to C<STDOUT>
uses B<Pod::Usage> in combination with B<Getopt::Long> to do all of these
things:
- use Getopt::Long;
- use Pod::Usage;
+ use strict;
+ use Getopt::Long qw(GetOptions);
+ use Pod::Usage qw(pod2usage);
my $man = 0;
my $help = 0;
@@ -723,6 +738,7 @@ things:
## If no arguments were given, then allow STDIN to be used only
## if it's not connected to a terminal (otherwise print usage)
pod2usage("$0: No files given.") if ((@ARGV == 0) && (-t STDIN));
+
__END__
=head1 NAME
@@ -739,7 +755,7 @@ things:
=head1 OPTIONS
- =over 8
+ =over 4
=item B<-help>
diff --git a/Master/tlpkg/tlperl/lib/SDBM_File.pm b/Master/tlpkg/tlperl/lib/SDBM_File.pm
index 0410bef32d8..707a9f8bf29 100644
--- a/Master/tlpkg/tlperl/lib/SDBM_File.pm
+++ b/Master/tlpkg/tlperl/lib/SDBM_File.pm
@@ -7,7 +7,7 @@ require Tie::Hash;
require XSLoader;
our @ISA = qw(Tie::Hash);
-our $VERSION = "1.11";
+our $VERSION = "1.13";
our @EXPORT_OK = qw(PAGFEXT DIRFEXT PAIRMAX);
use Exporter "import";
diff --git a/Master/tlpkg/tlperl/lib/Safe.pm b/Master/tlpkg/tlperl/lib/Safe.pm
index 4db116dff5f..d78fcc54f68 100644
--- a/Master/tlpkg/tlperl/lib/Safe.pm
+++ b/Master/tlpkg/tlperl/lib/Safe.pm
@@ -3,7 +3,7 @@ package Safe;
use 5.003_11;
use Scalar::Util qw(reftype refaddr);
-$Safe::VERSION = "2.37";
+$Safe::VERSION = "2.39";
# *** Don't declare any lexicals above this point ***
#
@@ -362,9 +362,15 @@ sub reval {
my $evalsub = lexless_anon_sub($root, $strict, $expr);
# propagate context
my $sg = sub_generation();
- my @subret = (wantarray)
+ my @subret;
+ if (defined wantarray) {
+ @subret = (wantarray)
? Opcode::_safe_call_sv($root, $obj->{Mask}, $evalsub)
: scalar Opcode::_safe_call_sv($root, $obj->{Mask}, $evalsub);
+ }
+ else {
+ Opcode::_safe_call_sv($root, $obj->{Mask}, $evalsub);
+ }
_clean_stash($root.'::') if $sg != sub_generation();
$obj->wrap_code_refs_within(@subret);
return (wantarray) ? @subret : $subret[0];
diff --git a/Master/tlpkg/tlperl/lib/Scalar/Util.pm b/Master/tlpkg/tlperl/lib/Scalar/Util.pm
index 4ab67f9aa07..3f17d13b838 100644
--- a/Master/tlpkg/tlperl/lib/Scalar/Util.pm
+++ b/Master/tlpkg/tlperl/lib/Scalar/Util.pm
@@ -14,9 +14,10 @@ our @ISA = qw(Exporter);
our @EXPORT_OK = qw(
blessed refaddr reftype weaken unweaken isweak
- dualvar isdual isvstring looks_like_number openhandle readonly set_prototype tainted
+ dualvar isdual isvstring looks_like_number openhandle readonly set_prototype
+ tainted
);
-our $VERSION = "1.38";
+our $VERSION = "1.41";
$VERSION = eval $VERSION;
our @EXPORT_FAIL;
@@ -45,6 +46,13 @@ sub export_fail {
@_;
}
+# set_prototype has been moved to Sub::Util with a different interface
+sub set_prototype(&$)
+{
+ my ( $code, $proto ) = @_;
+ return Sub::Util::set_prototype( $proto, $code );
+}
+
1;
__END__
@@ -75,7 +83,9 @@ By default C<Scalar::Util> does not export any subroutines.
The following functions all perform some useful activity on reference values.
-=head2 $pkg = blessed( $ref )
+=head2 blessed
+
+ my $pkg = blessed( $ref );
If C<$ref> is a blessed reference the name of the package that it is blessed
into is returned. Otherwise C<undef> is returned.
@@ -92,7 +102,9 @@ into is returned. Otherwise C<undef> is returned.
Take care when using this function simply as a truth test (such as in
C<if(blessed $ref)...>) because the package name C<"0"> is defined yet false.
-=head2 $addr = refaddr( $ref )
+=head2 refaddr
+
+ my $addr = refaddr( $ref );
If C<$ref> is reference the internal memory address of the referenced value is
returned as a plain integer. Otherwise C<undef> is returned.
@@ -104,7 +116,9 @@ returned as a plain integer. Otherwise C<undef> is returned.
$obj = bless {}, "Foo";
$addr = refaddr $obj; # eg 88123488
-=head2 $type = reftype( $ref )
+=head2 reftype
+
+ my $type = reftype( $ref );
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>
@@ -117,9 +131,11 @@ is returned.
$obj = bless {}, "Foo";
$type = reftype $obj; # HASH
-=head2 weaken( REF )
+=head2 weaken
-The lvalue C<REF> will be turned into a weak reference. This means that it
+ 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
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
@@ -154,12 +170,16 @@ references to objects will be strong, causing the remaining objects to never be
destroyed because there is now always a strong reference to them in the @object
array.
-=head2 unweaken( REF )
+=head2 unweaken
+
+ unweaken( $ref );
+
+I<Since version 1.36.>
The lvalue C<REF> will be turned from a weak reference back into a normal
(strong) reference again. This function mutates the lvalue passed as its
argument and returns no value. This undoes the action performed by
-C<weaken()>.
+L</weaken>.
This function is slightly neater and more convenient than the
otherwise-equivalent code
@@ -171,7 +191,9 @@ otherwise-equivalent code
(because in particular, simply assigning a weak reference back to itself does
not work to unweaken it; C<$REF = $REF> does not work).
-=head2 $weak = isweak( $ref )
+=head2 isweak
+
+ my $weak = isweak( $ref );
Returns true if C<$ref> is a weak reference.
@@ -187,7 +209,9 @@ B<NOTE>: Copying a weak reference creates a normal, strong, reference.
=head1 OTHER FUNCTIONS
-=head2 $var = dualvar( $num, $string )
+=head2 dualvar
+
+ my $var = dualvar( $num, $string );
Returns a scalar that has the value C<$num> in a numeric context and the value
C<$string> in a string context.
@@ -196,7 +220,11 @@ C<$string> in a string context.
$num = $foo + 2; # 12
$str = $foo . " world"; # Hello world
-=head2 $dual = isdual( $var )
+=head2 isdual
+
+ my $dual = isdual( $var );
+
+I<Since version 1.26.>
If C<$var> is a scalar that has both numeric and string values, the result is
true.
@@ -224,7 +252,9 @@ You can capture its numeric and string content using:
$err = dualvar $!, $!;
$dual = isdual($err); # true
-=head2 $vstring = isvstring( $var )
+=head2 isvstring
+
+ my $vstring = isvstring( $var );
If C<$var> is a scalar which was coded as a vstring the result is true.
@@ -232,12 +262,16 @@ If C<$var> is a scalar which was coded as a vstring the result is true.
$fmt = isvstring($vs) ? "%vd" : "%s"; #true
printf($fmt,$vs);
-=head2 $isnum = looks_like_number( $var )
+=head2 looks_like_number
+
+ my $isnum = looks_like_number( $var );
Returns true if perl thinks C<$var> is a number. See
L<perlapi/looks_like_number>.
-=head2 $fh = openhandle( $fh )
+=head2 openhandle
+
+ my $fh = openhandle( $fh );
Returns C<$fh> itself if C<$fh> may be used as a filehandle and is open, or is
is a tied handle. Otherwise C<undef> is returned.
@@ -247,7 +281,9 @@ is a tied handle. Otherwise C<undef> is returned.
$fh = openhandle(*NOTOPEN); # undef
$fh = openhandle("scalar"); # undef
-=head2 $ro = readonly( $var )
+=head2 readonly
+
+ my $ro = readonly( $var );
Returns true if C<$var> is readonly.
@@ -256,14 +292,18 @@ Returns true if C<$var> is readonly.
$readonly = foo($bar); # false
$readonly = foo(0); # true
-=head2 $code = set_prototype( $code, $prototype )
+=head2 set_prototype
+
+ my $code = set_prototype( $code, $prototype );
Sets the prototype of the function given by the C<$code> reference, or deletes
it if C<$prototype> is C<undef>. Returns the C<$code> reference itself.
set_prototype \&foo, '$$';
-=head2 $t = tainted( $var )
+=head2 tainted
+
+ my $t = tainted( $var );
Return true if C<$var> is tainted.
@@ -279,12 +319,12 @@ Module use may give one of the following errors during import.
=item Weak references are not implemented in the version of perl
The version of perl that you are using does not implement weak references, to
-use C<isweak> or C<weaken> you will need to use a newer release of perl.
+use L</isweak> or L</weaken> you will need to use a newer release of perl.
=item Vstrings are not implemented in the version of perl
The version of perl that you are using does not implement Vstrings, to use
-C<isvstring> you will need to use a newer release of perl.
+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
@@ -312,10 +352,15 @@ Copyright (c) 1997-2007 Graham Barr <gbarr@pobox.com>. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
-Except weaken and isweak which are
+Additionally L</weaken> and L</isweak> which are
Copyright (c) 1999 Tuomas J. Lukka <lukka@iki.fi>. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as perl itself.
+Copyright (C) 2004, 2008 Matthijs van Duin. All rights reserved.
+Copyright (C) 2014 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.
+
=cut
diff --git a/Master/tlpkg/tlperl/lib/SelfLoader.pm b/Master/tlpkg/tlperl/lib/SelfLoader.pm
index 53a0dbfcabc..586dc57621f 100644
--- a/Master/tlpkg/tlperl/lib/SelfLoader.pm
+++ b/Master/tlpkg/tlperl/lib/SelfLoader.pm
@@ -2,7 +2,7 @@ package SelfLoader;
use 5.008;
use strict;
use IO::Handle;
-our $VERSION = "1.21";
+our $VERSION = "1.22";
# The following bit of eval-magic is necessary to make this work on
# perls < 5.009005.
@@ -100,17 +100,25 @@ sub _load_stubs {
# Protect: fork() shares the file pointer between the parent and the kid
if(sysseek($fh, tell($fh), 0)) {
open my $nfh, '<&', $fh or croak "reopen: $!";# dup() the fd
- close $fh or die "close: $!"; # autocloses, but be paranoid
+ close $fh or die "close: $!"; # autocloses, but be
+ # paranoid
open $fh, '<&', $nfh or croak "reopen2: $!"; # dup() the fd "back"
- close $nfh or die "close after reopen: $!"; # autocloses, but be paranoid
+ close $nfh or die "close after reopen: $!"; # autocloses, but be
+ # paranoid
$fh->untaint;
}
$Cache{"${currpack}::<DATA"} = 1; # indicate package is cached
local($/) = "\n";
while(defined($line = <$fh>) and $line !~ m/^__END__/) {
- if ($line =~ m/^\s*sub\s+([\w:]+)\s*((?:\([\\\$\@\%\&\*\;]*\))?(?:$AttrList)?)/) {
- push(@stubs, $self->_add_to_cache($name, $currpack, \@lines, $protoype));
+ if ($line =~ m/ ^\s* # indentation
+ sub\s+([\w:]+)\s* # 'sub' and sub name
+ (
+ (?:\([\\\$\@\%\&\*\;]*\))? # optional prototype sigils
+ (?:$AttrList)? # optional attribute list
+ )/x) {
+ push(@stubs, $self->_add_to_cache($name, $currpack,
+ \@lines, $protoype));
$protoype = $2;
@lines = ($line);
if (index($1,'::') == -1) { # simple sub name
@@ -127,7 +135,8 @@ sub _load_stubs {
}
}
} elsif ($line =~ m/^package\s+([\w:]+)/) { # A package declared
- push(@stubs, $self->_add_to_cache($name, $currpack, \@lines, $protoype));
+ push(@stubs, $self->_add_to_cache($name, $currpack,
+ \@lines, $protoype));
$self->_package_defined($line);
$name = '';
@lines = ();
@@ -165,7 +174,9 @@ sub _add_to_cache {
return () unless $fullname;
carp("Redefining sub $fullname")
if exists $Cache{$fullname};
- $Cache{$fullname} = join('', "\n\#line 1 \"sub $fullname\"\npackage $pack; ", @$lines);
+ $Cache{$fullname} = join('',
+ "\n\#line 1 \"sub $fullname\"\npackage $pack; ",
+ @$lines);
#$Cache{$fullname} = join('', "package $pack; ",@$lines);
print STDERR "SelfLoader cached $fullname: $Cache{$fullname}" if DEBUG;
# return stub to be eval'd
@@ -407,7 +418,7 @@ This package has the same copyright and license as the perl core:
Kit, in the file named "Artistic". If not, I'll be glad to provide one.
You should also have received a copy of the GNU General Public License
- along with this program in the file named "Copying". If not, write to the
+ along with this program in the file named "Copying". If not, write to the
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
MA 02110-1301, USA or visit their web page on the internet at
http://www.gnu.org/copyleft/gpl.html.
diff --git a/Master/tlpkg/tlperl/lib/Storable.pm b/Master/tlpkg/tlperl/lib/Storable.pm
index 7d8a01198d5..bd0632f832d 100644
--- a/Master/tlpkg/tlperl/lib/Storable.pm
+++ b/Master/tlpkg/tlperl/lib/Storable.pm
@@ -1,7 +1,7 @@
#
# Copyright (c) 1995-2001, Raphael Manfredi
-# Copyright (c) 2002-2013 by the Perl 5 Porters
-#
+# Copyright (c) 2002-2014 by the Perl 5 Porters
+#
# You may redistribute only under the same terms as Perl 5, as specified
# in the README file that comes with the distribution.
#
@@ -22,7 +22,7 @@ package Storable; @ISA = qw(Exporter);
use vars qw($canonical $forgive_me $VERSION);
-$VERSION = '2.49_01';
+$VERSION = '2.53_01';
BEGIN {
if (eval { local $SIG{__DIE__}; require Log::Agent; 1 }) {
@@ -241,7 +241,8 @@ sub _store {
if ($use_locking) {
open(FILE, ">>$file") || logcroak "can't write into $file: $!";
unless (&CAN_FLOCK) {
- logcarp "Storable::lock_store: fcntl/flock emulation broken on $^O";
+ logcarp
+ "Storable::lock_store: fcntl/flock emulation broken on $^O";
return undef;
}
flock(FILE, LOCK_EX) ||
@@ -372,7 +373,8 @@ sub _retrieve {
my $da = $@; # Could be from exception handler
if ($use_locking) {
unless (&CAN_FLOCK) {
- logcarp "Storable::lock_store: fcntl/flock emulation broken on $^O";
+ logcarp
+ "Storable::lock_store: fcntl/flock emulation broken on $^O";
return undef;
}
flock(FILE, LOCK_SH) || logcroak "can't get shared lock on $file: $!";
@@ -1212,8 +1214,10 @@ the bill.
=head1 AUTHOR
-Storable was written by Raphael Manfredi F<E<lt>Raphael_Manfredi@pobox.comE<gt>>
-Maintenance is now done by the perl5-porters F<E<lt>perl5-porters@perl.orgE<gt>>
+Storable was written by Raphael Manfredi
+F<E<lt>Raphael_Manfredi@pobox.comE<gt>>
+Maintenance is now done by the perl5-porters
+F<E<lt>perl5-porters@perl.orgE<gt>>
Please e-mail us with problems, bug fixes, comments and complaints,
although if you have compliments you should send them to Raphael.
diff --git a/Master/tlpkg/tlperl/lib/Sub/Util.pm b/Master/tlpkg/tlperl/lib/Sub/Util.pm
new file mode 100644
index 00000000000..e40cf2205e6
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Sub/Util.pm
@@ -0,0 +1,149 @@
+# Copyright (c) 2014 Paul Evans <leonerd@leonerd.org.uk>. All rights reserved.
+# This program is free software; you can redistribute it and/or
+# modify it under the same terms as Perl itself.
+
+package Sub::Util;
+
+use strict;
+use warnings;
+
+require Exporter;
+require List::Util; # as it has the XS
+
+our @ISA = qw( Exporter );
+our @EXPORT_OK = qw(
+ prototype set_prototype
+ subname set_subname
+);
+
+our $VERSION = "1.41";
+$VERSION = eval $VERSION;
+
+=head1 NAME
+
+Sub::Util - A selection of utility subroutines for subs and CODE references
+
+=head1 SYNOPSIS
+
+ use Sub::Util qw( prototype set_prototype subname set_subname );
+
+=head1 DESCRIPTION
+
+C<Sub::Util> contains a selection of utility subroutines that are useful for
+operating on subs and CODE references.
+
+The rationale for inclusion in this module is that the function performs some
+work for which an XS implementation is essential because it cannot be
+implemented in Pure Perl, and which is sufficiently-widely used across CPAN
+that its popularity warrants inclusion in a core module, which this is.
+
+=cut
+
+=head1 FUNCTIONS
+
+=cut
+
+=head2 prototype
+
+ my $proto = prototype( $code )
+
+I<Since version 1.40.>
+
+Returns the prototype of the given C<$code> reference, if it has one, as a
+string. This is the same as the C<CORE::prototype> operator; it is included
+here simply for symmetry and completeness with the other functions.
+
+=cut
+
+sub prototype
+{
+ my ( $code ) = @_;
+ return CORE::prototype( $code );
+}
+
+=head2 set_prototype
+
+ my $code = set_prototype $prototype, $code;
+
+I<Since version 1.40.>
+
+Sets the prototype of the function given by the C<$code> reference, or deletes
+it if C<$prototype> is C<undef>. Returns the C<$code> reference itself.
+
+I<Caution>: This function takes arguments in a different order to the previous
+copy of the code from C<Scalar::Util>. This is to match the order of
+C<set_subname>, and other potential additions in this file. This order has
+been chosen as it allows a neat and simple chaining of other
+C<Sub::Util::set_*> functions as might become available, such as:
+
+ my $code =
+ set_subname name_here =>
+ set_prototype '&@' =>
+ set_attribute ':lvalue' =>
+ sub { ...... };
+
+=cut
+
+=head2 subname
+
+ my $name = subname( $code )
+
+I<Since version 1.40.>
+
+Returns the name of the given C<$code> reference, if it has one. Normal named
+subs will give a fully-qualified name consisting of the package and the
+localname separated by C<::>. Anonymous code references will give C<__ANON__>
+as the localname. If a name has been set using L</set_subname>, this name will
+be returned instead.
+
+This function was inspired by C<sub_fullname> from L<Sub::Identify>. The
+remaining functions that C<Sub::Identify> implements can easily be emulated
+using regexp operations, such as
+
+ sub get_code_info { return (subname $_[0]) =~ m/^(.+)::(.+?)$/ }
+ sub sub_name { return (get_code_info $_[0])[0] }
+ sub stash_name { return (get_code_info $_[0])[1] }
+
+I<Users of Sub::Name beware>: This function is B<not> the same as
+C<Sub::Name::subname>; it returns the existing name of the sub rather than
+changing it. To set or change a name, see instead L</set_subname>.
+
+=cut
+
+=head2 set_subname
+
+ my $code = set_subname $name, $code;
+
+I<Since version 1.40.>
+
+Sets the name of the function given by the C<$code> reference. Returns the
+C<$code> reference itself. If the C<$name> is unqualified, the package of the
+caller is used to qualify it.
+
+This is useful for applying names to anonymous CODE references so that stack
+traces and similar situations, to give a useful name rather than having the
+default of C<__ANON__>. Note that this name is only used for this situation;
+the C<set_subname> will not install it into the symbol table; you will have to
+do that yourself if required.
+
+However, since the name is not used by perl except as the return value of
+C<caller>, for stack traces or similar, there is no actual requirement that
+the name be syntactically valid as a perl function name. This could be used to
+attach extra information that could be useful in debugging stack traces.
+
+This function was copied from C<Sub::Name::subname> and renamed to the naming
+convention of this module.
+
+=cut
+
+=head1 AUTHOR
+
+The general structure of this module was written by Paul Evans
+<leonerd@leonerd.org.uk>.
+
+The XS implementation of L</set_subname> was copied from L<Sub::Name> by
+Matthijs van Duin <xmath@cpan.org>
+
+=cut
+
+1;
diff --git a/Master/tlpkg/tlperl/lib/Sys/Hostname.pm b/Master/tlpkg/tlperl/lib/Sys/Hostname.pm
index 1d2e47210a7..42e9293c3fa 100644
--- a/Master/tlpkg/tlperl/lib/Sys/Hostname.pm
+++ b/Master/tlpkg/tlperl/lib/Sys/Hostname.pm
@@ -14,7 +14,7 @@ our $VERSION;
our $host;
BEGIN {
- $VERSION = '1.18';
+ $VERSION = '1.20';
{
local $SIG{__DIE__};
eval {
diff --git a/Master/tlpkg/tlperl/lib/TAP/Base.pm b/Master/tlpkg/tlperl/lib/TAP/Base.pm
index 02f8b5e48ce..61c567f570b 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Base.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Base.pm
@@ -12,11 +12,11 @@ and L<TAP::Harness>
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
use constant GOT_TIME_HIRES => do {
eval 'use Time::HiRes qw(time);';
@@ -121,4 +121,13 @@ Return true if the time returned by get_time is high resolution (i.e. if Time::H
sub time_is_hires { return GOT_TIME_HIRES }
+=head3 C<get_times>
+
+Return array reference of the four-element list of CPU seconds,
+as with L<perlfunc/times>.
+
+=cut
+
+sub get_times { return [ times() ] }
+
1;
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/Base.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/Base.pm
index 1bb357d9bd0..a5a78d1cbe1 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/Base.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/Base.pm
@@ -58,11 +58,11 @@ TAP::Formatter::Base - Base class for harness output delegates
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/Color.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/Color.pm
index d22752e12ee..76937b01a0f 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/Color.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/Color.pm
@@ -71,11 +71,11 @@ TAP::Formatter::Color - Run Perl test scripts with color
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/Console.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/Console.pm
index 5ac9fa1a16e..01f1a541655 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/Console.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/Console.pm
@@ -11,11 +11,11 @@ TAP::Formatter::Console - Harness output delegate for default console output
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm
index f9cd7af5964..9c4b9cf2564 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm
@@ -41,11 +41,11 @@ TAP::Formatter::Console::ParallelSession - Harness output delegate for parallel
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm
index 16ce97153d9..672a0834cd1 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm
+++ b/Master/tlpkg/tlperl/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.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
@@ -185,19 +185,7 @@ sub _closures {
$self->_output_test_failure($parser);
}
else {
- my $time_report = '';
- if ( $formatter->timer ) {
- my $start_time = $parser->start_time;
- my $end_time = $parser->end_time;
- if ( defined $start_time and defined $end_time ) {
- my $elapsed = $end_time - $start_time;
- $time_report
- = $self->time_is_hires
- ? sprintf( ' %8d ms', $elapsed * 1000 )
- : sprintf( ' %8s s', $elapsed || '<1' );
- }
- }
-
+ my $time_report = $self->time_report($formatter, $parser);
$formatter->_output( $self->_make_ok_line($time_report) );
}
},
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/File.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/File.pm
index 2e72d914ba8..8ee90fc1739 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/File.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/File.pm
@@ -13,11 +13,11 @@ TAP::Formatter::File - Harness output delegate for file output
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
@@ -30,7 +30,7 @@ This provides file orientated output formatting for TAP::Harness.
=head2 C<< open_test >>
-See L<TAP::Formatter::base>
+See L<TAP::Formatter::Base>
=cut
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm
index 4719f22b1b6..2a92d6082ca 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm
@@ -10,11 +10,11 @@ TAP::Formatter::File::Session - Harness output delegate for file output
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
@@ -85,19 +85,7 @@ sub close_test {
$self->_output_test_failure($parser);
}
else {
- my $time_report = '';
- if ( $formatter->timer ) {
- my $start_time = $parser->start_time;
- my $end_time = $parser->end_time;
- if ( defined $start_time and defined $end_time ) {
- my $elapsed = $end_time - $start_time;
- $time_report
- = $self->time_is_hires
- ? sprintf( ' %8d ms', $elapsed * 1000 )
- : sprintf( ' %8s s', $elapsed || '<1' );
- }
- }
-
+ my $time_report = $self->time_report($formatter, $parser);
$formatter->_output( $pretty
. ( $self->{results} ? "\n" . $self->{results} : "" )
. $self->_make_ok_line($time_report) );
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/Session.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/Session.pm
index 120b4953c36..089c1e6729d 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/Session.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/Session.pm
@@ -23,11 +23,11 @@ TAP::Formatter::Session - Abstract base class for harness output delegate
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 METHODS
@@ -99,6 +99,11 @@ Called to close a test session.
Called by C<close_test> to clear the line showing test progress, or the parallel
test ruler, prior to printing the final test result.
+=head3 C<time_report>
+
+Return a formatted string about the elapsed (wall-clock) time
+and about the consumed CPU time.
+
=cut
sub header { }
@@ -183,4 +188,33 @@ sub _make_ok_line {
return "ok$suffix\n";
}
+sub time_report {
+ my ( $self, $formatter, $parser ) = @_;
+
+ my @time_report;
+ if ( $formatter->timer ) {
+ my $start_time = $parser->start_time;
+ my $end_time = $parser->end_time;
+ if ( defined $start_time and defined $end_time ) {
+ my $elapsed = $end_time - $start_time;
+ push @time_report,
+ $self->time_is_hires
+ ? sprintf( ' %8d ms', $elapsed * 1000 )
+ : sprintf( ' %8s s', $elapsed || '<1' );
+ }
+ my $start_times = $parser->start_times();
+ my $end_times = $parser->end_times();
+ my $usr = $end_times->[0] - $start_times->[0];
+ my $sys = $end_times->[1] - $start_times->[1];
+ my $cusr = $end_times->[2] - $start_times->[2];
+ my $csys = $end_times->[3] - $start_times->[3];
+ push @time_report,
+ sprintf('(%5.2f usr %5.2f sys + %5.2f cusr %5.2f csys = %5.2f CPU)',
+ $usr, $sys, $cusr, $csys,
+ $usr + $sys + $cusr + $csys);
+ }
+
+ return "@time_report";
+}
+
1;
diff --git a/Master/tlpkg/tlperl/lib/TAP/Harness.pm b/Master/tlpkg/tlperl/lib/TAP/Harness.pm
index 53d8d18bea6..d9ede6b96ae 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Harness.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Harness.pm
@@ -16,11 +16,11 @@ TAP::Harness - Run test scripts with statistics
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
$ENV{HARNESS_ACTIVE} = 1;
$ENV{HARNESS_VERSION} = $VERSION;
@@ -81,6 +81,7 @@ BEGIN {
test_args => sub { shift; shift },
ignore_exit => sub { shift; shift },
rules => sub { shift; shift },
+ rulesfile => sub { shift; shift },
sources => sub { shift; shift },
version => sub { shift; shift },
trap => sub { shift; shift },
@@ -328,8 +329,12 @@ run only one test at a time.
=item * C<rules>
A reference to a hash of rules that control which tests may be executed in
-parallel. If no rules are declared, all tests are eligible for being run in
-parallel. Here some simple examples. For the full details of the data structure
+parallel. If no rules are declared and L<CPAN::Meta::YAML> is available,
+C<TAP::Harness> attempts to load rules from a YAML file specified by the
+C<rulesfile> parameter. If no rules file exists, the default is for all
+tests to be eligible to be run in parallel.
+
+Here some simple examples. For the full details of the data structure
and the related glob-style pattern matching, see
L<TAP::Parser::Scheduler/"Rules data structure">.
@@ -338,6 +343,10 @@ L<TAP::Parser::Scheduler/"Rules data structure">.
par => 't/p*.t'
});
+ # Equivalent YAML file
+ ---
+ par: t/p*.t
+
# Run all tests in parallel, except those starting with "p"
$harness->rules({
seq => [
@@ -346,6 +355,12 @@ L<TAP::Parser::Scheduler/"Rules data structure">.
],
});
+ # Equivalent YAML file
+ ---
+ seq:
+ - seq: t/p*.t
+ - par: **
+
# Run some startup tests in sequence, then some parallel tests than some
# teardown tests in sequence.
$harness->rules({
@@ -357,8 +372,25 @@ L<TAP::Parser::Scheduler/"Rules data structure">.
});
+ # Equivalent YAML file
+ ---
+ seq:
+ - seq: t/startup/*.t
+ - par:
+ - t/a/*.t
+ - t/b/*.t
+ - t/c/*.t
+ - seq: t/shutdown/*.t
+
This is an experimental feature and the interface may change.
+=item * C<rulesfiles>
+
+This specifies where to find a YAML file of test scheduling rules. If not
+provided, it looks for a default file to use. It first checks for a file given
+in the C<HARNESS_RULESFILE> environment variable, then it checks for
+F<testrules.yml> and then F<t/testrules.yml>.
+
=item * C<stdout>
A filehandle for catching standard output.
@@ -415,6 +447,10 @@ Any keys for which the value is C<undef> will be ignored.
$self->jobs(1) unless defined $self->jobs;
+ if ( ! defined $self->rules ) {
+ $self->_maybe_load_rulesfile;
+ }
+
local $default_class{formatter_class} = 'TAP::Formatter::File'
unless -t ( $arg_for{stdout} || \*STDOUT ) && !$ENV{HARNESS_NOTTY};
@@ -445,6 +481,29 @@ Any keys for which the value is C<undef> will be ignored.
return $self;
}
+
+ sub _maybe_load_rulesfile {
+ my ($self) = @_;
+
+ my ($rulesfile) = defined $self->rulesfile ? $self->rulesfile :
+ defined($ENV{HARNESS_RULESFILE}) ? $ENV{HARNESS_RULESFILE} :
+ grep { -r } qw(./testrules.yml t/testrules.yml);
+
+ if ( defined $rulesfile && -r $rulesfile ) {
+ if ( ! eval { require CPAN::Meta::YAML; 1} ) {
+ warn "CPAN::Meta::YAML required to process $rulesfile" ;
+ return;
+ }
+ my $layer = $] lt "5.008" ? "" : ":encoding(UTF-8)";
+ open my $fh, "<$layer", $rulesfile
+ or die "Couldn't open $rulesfile: $!";
+ my $yaml_text = do { local $/; <$fh> };
+ my $yaml = CPAN::Meta::YAML->read_string($yaml_text)
+ or die CPAN::Meta::YAML->errstr;
+ $self->rules( $yaml->[0] );
+ }
+ return;
+ }
}
##############################################################################
diff --git a/Master/tlpkg/tlperl/lib/TAP/Harness/Env.pm b/Master/tlpkg/tlperl/lib/TAP/Harness/Env.pm
index 1a9d7196c40..c565b13bd0d 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Harness/Env.pm
+++ b/Master/tlpkg/tlperl/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.30';
+our $VERSION = '3.35';
# Get the parts of @INC which are changed from the stock list AND
# preserve reordering of stock directories.
@@ -91,7 +91,7 @@ sub create {
ignore_exit => $ENV{HARNESS_IGNORE_EXIT} || 0,
);
- my $class = $ENV{HARNESS_SUBCLASS} || 'TAP::Harness';
+ my $class = delete $input{harness_class} || $ENV{HARNESS_SUBCLASS} || 'TAP::Harness';
if ( defined( my $env_opt = $ENV{HARNESS_OPTIONS} ) ) {
for my $opt ( split /:/, $env_opt ) {
if ( $opt =~ /^j(\d*)$/ ) {
@@ -126,24 +126,90 @@ TAP::Harness::Env - Parsing harness related environmental variables where approp
=head1 VERSION
-Version 3.30
+Version 3.35
=head1 SYNOPSIS
- my ($class, $args) = get_test_arguments();
- require_module($class);
- $class->new($args);
+ my $harness = TAP::Harness::Env->create(\%extra_args)
=head1 DESCRIPTION
-This module implements the environmental variables that L<Test::Harness> for use with TAP::Harness.
+This module implements the environmental variables that L<Test::Harness> uses with TAP::Harness, and instantiates the appropriate class with the appropriate arguments.
-=head1 FUNCTIONS
+=head1 METHODS
=over 4
-=item * get_test_options( \%args )
+=item * create( \%args )
-This function reads the environment and generates an appropriate argument hash from it. If given any arguments, there will override the environmental defaults. It will return of C<$class> and C<$args>.
+This function reads the environment and generates an appropriate argument hash from it. If given any arguments in C<%extra_args>, these will override the environmental defaults. In accepts C<harness_class> (which defaults to C<TAP::Harness>), and any argument the harness class accepts.
+
+=back
+
+=head1 ENVIRONMENTAL VARIABLES
+
+=over 4
+
+=item C<HARNESS_PERL_SWITCHES>
+
+Setting this adds perl command line switches to each test file run.
+
+For example, C<HARNESS_PERL_SWITCHES=-T> will turn on taint mode.
+C<HARNESS_PERL_SWITCHES=-MDevel::Cover> will run C<Devel::Cover> for
+each test.
+
+=item C<HARNESS_VERBOSE>
+
+If true, C<TAP::Harness> will output the verbose results of running
+its tests.
+
+=item C<HARNESS_SUBCLASS>
+
+Specifies a TAP::Harness subclass to be used in place of TAP::Harness.
+
+=item C<HARNESS_OPTIONS>
+
+Provide additional options to the harness. Currently supported options are:
+
+=over
+
+=item C<< j<n> >>
+
+Run <n> (default 9) parallel jobs.
+
+=item C<< c >>
+
+Try to color output. See L<TAP::Formatter::Base/"new">.
+
+=item C<< a<file.tgz> >>
+
+Will use L<TAP::Harness::Archive> as the harness class, and save the TAP to
+C<file.tgz>
+
+=item C<< fPackage-With-Dashes >>
+
+Set the formatter_class of the harness being run. Since the C<HARNESS_OPTIONS>
+is seperated by C<:>, we use C<-> instead.
+
+=back
+
+Multiple options may be separated by colons:
+
+ HARNESS_OPTIONS=j9:c make test
+
+=item C<HARNESS_TIMER>
+
+Setting this to true will make the harness display the number of
+milliseconds each test took. You can also use F<prove>'s C<--timer>
+switch.
+
+=item C<HARNESS_COLOR>
+
+Attempt to produce color output.
+
+=item C<HARNESS_IGNORE_EXIT>
+
+If set to a true value instruct C<TAP::Parser> to ignore exit and wait
+status from test scripts.
=back
diff --git a/Master/tlpkg/tlperl/lib/TAP/Object.pm b/Master/tlpkg/tlperl/lib/TAP/Object.pm
index 21c53dc06a8..84dfe88c2af 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Object.pm
+++ b/Master/tlpkg/tlperl/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.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser.pm b/Master/tlpkg/tlperl/lib/TAP/Parser.pm
index 1ebb0db969c..22222c2482e 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser.pm
@@ -27,11 +27,11 @@ TAP::Parser - Parse L<TAP|Test::Harness::TAP> output
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
my $DEFAULT_TAP_VERSION = 12;
my $MAX_TAP_VERSION = 13;
@@ -60,6 +60,8 @@ BEGIN { # making accessors
in_todo
start_time
end_time
+ start_times
+ end_times
skip_all
grammar_class
result_factory_class
@@ -1007,11 +1009,20 @@ were skipped.
=head3 C<start_time>
-Returns the time when the Parser was created.
+Returns the wall-clock time when the Parser was created.
=head3 C<end_time>
-Returns the time when the end of TAP input was seen.
+Returns the wall-clock time when the end of TAP input was seen.
+
+=head3 C<start_times>
+
+Returns the CPU times (like L<perlfunc/times> when the Parser was created.
+
+=head3 C<end_times>
+
+Returns the CPU times (like L<perlfunc/times> when the end of TAP
+input was seen.
=head3 C<has_problems>
@@ -1374,6 +1385,7 @@ sub _iter {
my $state_table = $self->_make_state_table;
$self->start_time( $self->get_time );
+ $self->start_times( $self->get_times );
# Make next_state closure
my $next_state = sub {
@@ -1466,6 +1478,7 @@ sub _finish {
my $self = shift;
$self->end_time( $self->get_time );
+ $self->end_times( $self->get_times );
# Avoid leaks
$self->_iterator(undef);
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm
index ee4befd3fa3..5745245072a 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm
@@ -12,11 +12,11 @@ TAP::Parser::Aggregator - Aggregate TAP::Parser results
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm
index fe1b9adba2e..1a0be3c7e80 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm
@@ -14,11 +14,11 @@ TAP::Parser::Grammar - A grammar for the Test Anything Protocol.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm
index 886f5f4656b..114aba6bd4f 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm
@@ -11,11 +11,11 @@ TAP::Parser::Iterator - Base class for TAP source iterators
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm
index 929b1004585..650adbfa45c 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm
@@ -11,11 +11,11 @@ TAP::Parser::Iterator::Array - Iterator for array-based TAP sources
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm
index aaf6b6cf61a..923de9aa4d4 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm
@@ -16,11 +16,11 @@ TAP::Parser::Iterator::Process - Iterator for process-based TAP sources
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm
index 9181fc7ae79..bd6a8b75423 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm
@@ -11,11 +11,11 @@ TAP::Parser::Iterator::Stream - Iterator for filehandle-based TAP sources
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm
index 8b75724fd8e..d4e29ffa3b4 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm
@@ -16,11 +16,11 @@ TAP::Parser::IteratorFactory - Figures out which SourceHandler objects to use fo
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm
index 65cd46de13e..d002272ac1e 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm
@@ -17,11 +17,11 @@ TAP::Parser::Multiplexer - Multiplex multiple TAP::Parsers
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm
index eaad1d2f41b..efbcfe8ee23 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm
@@ -24,11 +24,11 @@ TAP::Parser::Result - Base class for TAP::Parser output objects
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm
index 2ae35d6e603..c3749864c92 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Bailout - Bailout result token.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm
index d69ec5189c2..bd0f78ad897 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Comment - Comment result token.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm
index d85243c9766..900874a8966 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Plan - Plan result token.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm
index 1479e8836cd..b7b6a43399f 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Pragma - TAP pragma token.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm
index 749f26cbe2b..57219cbea73 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Test - Test result token.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm
index 3e1a6112271..8bfeb6c933a 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Unknown - Unknown result token.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm
index 8b08e33d063..68789b502db 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Version - TAP syntax version token.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm
index a6f86e3c46d..0775e4a12a5 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::YAML - YAML result token.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm
index 65d31d25367..12ecb1cc3a6 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm
@@ -29,11 +29,11 @@ TAP::Parser::ResultFactory - Factory for creating TAP::Parser output objects
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head2 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm
index 7c5cedf7edc..ed3ef5135f3 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm
@@ -13,11 +13,11 @@ TAP::Parser::Scheduler - Schedule tests during parallel testing
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
@@ -100,7 +100,7 @@ Here are some examples:
=head3 Rules resolution
-=over4
+=over 4
=item * By default, all tests are eligible to be run in parallel. Specifying any of your own rules removes this one.
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm
index 6375a7b8786..ae0b59b9c71 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm
@@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Job - A single testing job.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm
index f590ea58f04..a739164aa6c 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm
@@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Spinner - A no-op job.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm
index 0e2da09f644..27f6e53315e 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm
@@ -14,11 +14,11 @@ TAP::Parser::Source - a TAP source & meta data about it
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm
index dc257e0ed9f..a2e943b9096 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm
@@ -12,11 +12,11 @@ TAP::Parser::SourceHandler - Base class for different TAP source handlers
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm
index 5522625d317..3e0bd6e1d5b 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm
+++ b/Master/tlpkg/tlperl/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.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm
index b48660fc782..cb117c66365 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm
@@ -16,11 +16,11 @@ TAP::Parser::SourceHandler::File - Stream TAP from a text file.
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm
index 944fb2a9b37..d113845e7b1 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm
+++ b/Master/tlpkg/tlperl/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.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm
index 1a1867b922d..4dc3afbb479 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm
@@ -21,11 +21,11 @@ TAP::Parser::SourceHandler::Perl - Stream TAP from a Perl executable
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm
index 627a1e1311a..8574e27ab7c 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm
+++ b/Master/tlpkg/tlperl/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.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm
index 8a61a4bfd92..a79f7280237 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm
@@ -5,7 +5,7 @@ use warnings;
use base 'TAP::Object';
-our $VERSION = '3.30';
+our $VERSION = '3.35';
# TODO:
# Handle blessed object syntax
@@ -269,7 +269,7 @@ TAP::Parser::YAMLish::Reader - Read YAMLish data from iterator
=head1 VERSION
-Version 3.30
+Version 3.35
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm
index 811c190d124..9d68a1824f9 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm
@@ -5,7 +5,7 @@ use warnings;
use base 'TAP::Object';
-our $VERSION = '3.30';
+our $VERSION = '3.35';
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.30
+Version 3.35
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/Term/ANSIColor.pm b/Master/tlpkg/tlperl/lib/Term/ANSIColor.pm
index 17183666607..2101a871257 100644
--- a/Master/tlpkg/tlperl/lib/Term/ANSIColor.pm
+++ b/Master/tlpkg/tlperl/lib/Term/ANSIColor.pm
@@ -1,7 +1,7 @@
# Term::ANSIColor -- Color screen output using ANSI escape sequences.
#
# Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2005, 2006, 2008, 2009, 2010,
-# 2011, 2012, 2013 Russ Allbery <rra@stanford.edu>
+# 2011, 2012, 2013, 2014 Russ Allbery <rra@cpan.org>
# Copyright 1996 Zenin
# Copyright 2012 Kurt Starsinic <kstarsinic@gmail.com>
#
@@ -40,7 +40,7 @@ our $AUTOLOAD;
# against circular module loading (not that we load any modules, but
# consistency is good).
BEGIN {
- $VERSION = '4.02';
+ $VERSION = '4.03';
# All of the basic supported constants, used in %EXPORT_TAGS.
my @colorlist = qw(
@@ -60,14 +60,13 @@ BEGIN {
);
# 256-color constants, used in %EXPORT_TAGS.
- ## no critic (ValuesAndExpressions::ProhibitMagicNumbers)
my @colorlist256 = (
(map { ("ANSI$_", "ON_ANSI$_") } 0 .. 15),
(map { ("GREY$_", "ON_GREY$_") } 0 .. 23),
);
for my $r (0 .. 5) {
for my $g (0 .. 5) {
- push @colorlist256, map { ("RGB$r$g$_", "ON_RGB$r$g$_") } 0 .. 5;
+ push(@colorlist256, map { ("RGB$r$g$_", "ON_RGB$r$g$_") } 0 .. 5);
}
}
@@ -144,7 +143,6 @@ our %ATTRIBUTES = (
# Generating the 256-color codes involves a lot of codes and offsets that are
# not helped by turning them into constants.
-## no critic (ValuesAndExpressions::ProhibitMagicNumbers)
# The first 16 256-color codes are duplicates of the 16 ANSI colors,
# included for completeness.
@@ -172,8 +170,6 @@ for my $n (0 .. 23) {
$ATTRIBUTES{"on_grey$n"} = "48;5;$code";
}
-## use critic (ValuesAndExpressions::ProhibitMagicNumbers)
-
# Reverse lookup. Alphabetically first name for a sequence is preferred.
our %ATTRIBUTES_R;
for my $attr (reverse sort keys %ATTRIBUTES) {
@@ -244,14 +240,14 @@ sub AUTOLOAD {
# Check if we were called with something that doesn't look like an
# attribute.
- if (!$attr || !defined $ATTRIBUTES{ lc $attr }) {
+ if (!($attr && defined($ATTRIBUTES{ lc $attr }))) {
croak("undefined subroutine &$AUTOLOAD called");
}
# If colors are disabled, just return the input. Do this without
# installing a sub for (marginal, unbenchmarked) speed.
if ($ENV{ANSI_COLORS_DISABLED}) {
- return join q{}, @_;
+ return join(q{}, @_);
}
# We've untainted the name of the sub.
@@ -273,13 +269,13 @@ sub AUTOLOAD {
my $eval_result = eval qq{
sub $AUTOLOAD {
if (\$ENV{ANSI_COLORS_DISABLED}) {
- return join q{}, \@_;
+ return join(q{}, \@_);
} elsif (\$AUTOLOCAL && \@_) {
return PUSHCOLOR('$escape') . join(q{}, \@_) . POPCOLOR;
} elsif (\$AUTORESET && \@_) {
return '$escape' . join(q{}, \@_) . "\e[0m";
} else {
- return '$escape' . join q{}, \@_;
+ return '$escape' . join(q{}, \@_);
}
}
1;
@@ -309,7 +305,7 @@ sub AUTOLOAD {
# Returns: The text passed in
sub PUSHCOLOR {
my (@text) = @_;
- my $text = join q{}, @text;
+ my $text = join(q{}, @text);
# Extract any number of color-setting escape sequences from the start of
# the string.
@@ -324,7 +320,7 @@ sub PUSHCOLOR {
}
# Push the color onto the stack.
- push @COLORSTACK, $color;
+ push(@COLORSTACK, $color);
return $text;
}
@@ -336,9 +332,9 @@ sub PUSHCOLOR {
# Returns: The concatenation of @text prepended with the new stack color
sub POPCOLOR {
my (@text) = @_;
- pop @COLORSTACK;
+ pop(@COLORSTACK);
if (@COLORSTACK) {
- return $COLORSTACK[-1] . join q{}, @text;
+ return $COLORSTACK[-1] . join(q{}, @text);
} else {
return RESET(@text);
}
@@ -353,7 +349,7 @@ sub POPCOLOR {
# Returns: The concatenation of the text and the proper color reset sequence.
sub LOCALCOLOR {
my (@text) = @_;
- return PUSHCOLOR(join q{}, @text) . POPCOLOR();
+ return PUSHCOLOR(join(q{}, @text)) . POPCOLOR();
}
##############################################################################
@@ -379,10 +375,10 @@ sub color {
# Build the attribute string from semicolon-separated numbers.
my $attribute = q{};
for my $code (@codes) {
- $code = lc $code;
- if (defined $ATTRIBUTES{$code}) {
+ $code = lc($code);
+ if (defined($ATTRIBUTES{$code})) {
$attribute .= $ATTRIBUTES{$code} . q{;};
- } elsif (defined $ALIASES{$code}) {
+ } elsif (defined($ALIASES{$code})) {
$attribute .= $ALIASES{$code} . q{;};
} else {
croak("Invalid attribute name $code");
@@ -390,7 +386,7 @@ sub color {
}
# We added one too many semicolons for simplicity. Remove the last one.
- chop $attribute;
+ chop($attribute);
# Return undef if there were no attributes.
return ($attribute ne q{}) ? "\e[${attribute}m" : undef;
@@ -416,12 +412,12 @@ sub uncolor {
$escape =~ s{ \A \e\[ }{}xms;
$escape =~ s{ m \z } {}xms;
my ($attrs) = $escape =~ m{ \A ((?:\d+;)* \d*) \z }xms;
- if (!defined $attrs) {
+ if (!defined($attrs)) {
croak("Bad escape sequence $escape");
}
# Pull off 256-color codes (38;5;n or 48;5;n) as a unit.
- push @nums, $attrs =~ m{ ( 0*[34]8;0*5;\d+ | \d+ ) (?: ; | \z ) }xmsg;
+ push(@nums, $attrs =~ m{ ( 0*[34]8;0*5;\d+ | \d+ ) (?: ; | \z ) }xmsg);
}
# Now, walk the list of numbers and convert them to attribute names.
@@ -430,10 +426,10 @@ sub uncolor {
for my $num (@nums) {
$num =~ s{ ( \A | ; ) 0+ (\d) }{$1$2}xmsg;
my $name = $ATTRIBUTES_R{$num};
- if (!defined $name) {
+ if (!defined($name)) {
croak("No name for escape sequence $num");
}
- push @result, $name;
+ push(@result, $name);
}
# Return the attribute names.
@@ -461,7 +457,7 @@ sub colored {
my ($string, @codes);
if (ref($first) && ref($first) eq 'ARRAY') {
@codes = @{$first};
- $string = join q{}, @rest;
+ $string = join(q{}, @rest);
} else {
$string = $first;
@codes = @rest;
@@ -477,11 +473,11 @@ sub colored {
# If $EACHLINE is defined, split the string on line boundaries, suppress
# empty segments, and then colorize each of the line sections.
- if (defined $EACHLINE) {
+ if (defined($EACHLINE)) {
my @text = map { ($_ ne $EACHLINE) ? $attr . $_ . "\e[0m" : $_ }
grep { length($_) > 0 }
- split m{ (\Q$EACHLINE\E) }xms, $string;
- return join q{}, @text;
+ split(m{ (\Q$EACHLINE\E) }xms, $string);
+ return join(q{}, @text);
} else {
return $attr . $string . "\e[0m";
}
@@ -498,7 +494,7 @@ sub colored {
# standard color name as an alias, or an unknown standard color name
sub coloralias {
my ($alias, $color) = @_;
- if (!defined $color) {
+ if (!defined($color)) {
if (!exists $ALIASES{$alias}) {
return;
} else {
@@ -529,7 +525,7 @@ sub colorstrip {
for my $string (@string) {
$string =~ s{ \e\[ [\d;]* m }{}xmsg;
}
- return wantarray ? @string : join q{}, @string;
+ return wantarray ? @string : join(q{}, @string);
}
# Given a list of color attributes (arguments for color, for instance), return
@@ -540,9 +536,9 @@ sub colorstrip {
# Returns: True if all the attributes are valid, false otherwise.
sub colorvalid {
my (@codes) = @_;
- @codes = map { split q{ }, lc $_ } @codes;
+ @codes = map { split(q{ }, lc($_)) } @codes;
for my $code (@codes) {
- if (!defined $ATTRIBUTES{$code} && !defined $ALIASES{$code}) {
+ if (!defined($ATTRIBUTES{$code}) && !defined($ALIASES{$code})) {
return;
}
}
@@ -562,24 +558,25 @@ __END__
Term::ANSIColor - Color screen output using ANSI escape sequences
=for stopwords
-cyan colorize namespace runtime TMTOWTDI cmd.exe 4nt.exe command.com NT
-ESC Delvare SSH OpenSSH aixterm ECMA-048 Fraktur overlining Zenin
-reimplemented Allbery PUSHCOLOR POPCOLOR LOCALCOLOR openmethods.com
-grey ATTR urxvt mistyped prepending Bareword filehandle Cygwin Starsinic
-aterm rxvt CPAN RGB Solarized Whitespace alphanumerics undef
+cyan colorize namespace runtime TMTOWTDI cmd.exe cmd.exe. 4nt.exe. 4nt.exe
+command.com NT ESC Delvare SSH OpenSSH aixterm ECMA-048 Fraktur overlining
+Zenin reimplemented Allbery PUSHCOLOR POPCOLOR LOCALCOLOR openmethods.com
+openmethods.com. grey ATTR urxvt mistyped prepending Bareword filehandle
+Cygwin Starsinic aterm rxvt CPAN RGB Solarized Whitespace alphanumerics
+undef
=head1 SYNOPSIS
use Term::ANSIColor;
- print color 'bold blue';
+ print color('bold blue');
print "This text is bold blue.\n";
- print color 'reset';
+ print color('reset');
print "This text is normal.\n";
print colored("Yellow on magenta.", 'yellow on_magenta'), "\n";
print "This text is normal.\n";
- print colored ['yellow on_magenta'], 'Yellow on magenta.', "\n";
- print colored ['red on_bright_yellow'], 'Red on bright yellow.', "\n";
- print colored ['bright_red on_black'], 'Bright red on black.', "\n";
+ print colored(['yellow on_magenta'], 'Yellow on magenta.', "\n");
+ print colored(['red on_bright_yellow'], 'Red on bright yellow.', "\n");
+ print colored(['bright_red on_black'], 'Bright red on black.', "\n");
print "\n";
# Map escape sequences back to color names.
@@ -589,7 +586,7 @@ aterm rxvt CPAN RGB Solarized Whitespace alphanumerics undef
# Strip all color escape sequences.
use Term::ANSIColor 2.01 qw(colorstrip);
- print colorstrip '\e[1mThis is bold\e[0m', "\n";
+ print colorstrip("\e[1mThis is bold\e[0m"), "\n";
# Determine whether a color is valid.
use Term::ANSIColor 2.02 qw(colorvalid);
@@ -729,7 +726,7 @@ C<rgb000> or C<rgb515>. Similarly, the recognized background colors are:
on_ansi0 .. on_ansi15
on_grey0 .. on_grey23
-plus C<on_rgbI<RGB>> for for I<R>, I<G>, and I<B> values from 0 to 5.
+plus C<on_rgbI<RGB>> for I<R>, I<G>, and I<B> values from 0 to 5.
For any of the above listed attributes, case is not significant.
@@ -1092,11 +1089,11 @@ Support for italic was added in Term::ANSIColor 3.02, included in Perl
Support for colors 16 through 256 (the C<ansi>, C<rgb>, and C<grey>
colors), the C<:constants256> import tag, the coloralias() function, and
support for the ANSI_COLORS_ALIASES environment variable were added in
-Term::ANSIColor 4.00.
+Term::ANSIColor 4.00, included in Perl 5.17.8.
$Term::ANSIColor::AUTOLOCAL was changed to take precedence over
$Term::ANSIColor::AUTORESET, rather than the other way around, in
-Term::ANSIColor 4.00.
+Term::ANSIColor 4.00, included in Perl 5.17.8.
=head1 RESTRICTIONS
@@ -1181,8 +1178,31 @@ supported by this module.
Most modern X terminal emulators support 256 colors. Known to not support
those colors are aterm, rxvt, Terminal.app, and TTY/VC.
+=head1 AUTHORS
+
+Original idea (using constants) by Zenin, reimplemented using subs by Russ
+Allbery <rra@cpan.org>, and then combined with the original idea by
+Russ with input from Zenin. 256-color support is based on work by Kurt
+Starsinic. Russ Allbery now maintains this module.
+
+PUSHCOLOR, POPCOLOR, and LOCALCOLOR were contributed by openmethods.com
+voice solutions.
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 1996 Zenin. Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2005,
+2006, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Russ Allbery
+<rra@cpan.org>. Copyright 2012 Kurt Starsinic <kstarsinic@gmail.com>.
+This program is free software; you may redistribute it and/or modify it
+under the same terms as Perl itself.
+
=head1 SEE ALSO
+The CPAN module L<Term::ExtendedColor> provides a different and more
+comprehensive interface for 256-color emulators that may be more
+convenient. The CPAN module L<Win32::Console::ANSI> provides ANSI color
+(and other escape sequence) support in the Win32 Console environment.
+
ECMA-048 is available on-line (at least at the time of this writing) at
L<http://www.ecma-international.org/publications/standards/Ecma-048.htm>.
@@ -1192,32 +1212,11 @@ ECMA-048 and the latter is available for free, there seems little reason
to obtain the ISO standard.
The 256-color control sequences are documented at
-L<http://www.xfree86.org/current/ctlseqs.html> (search for 256-color).
-
-The CPAN module Term::ExtendedColor provides a different and more
-comprehensive interface for 256-color emulators that may be more
-convenient.
+L<http://invisible-island.net/xterm/ctlseqs/ctlseqs.html> (search for
+256-color).
The current version of this module is always available from its web site
at L<http://www.eyrie.org/~eagle/software/ansicolor/>. It is also part of
the Perl core distribution as of 5.6.0.
-=head1 AUTHORS
-
-Original idea (using constants) by Zenin, reimplemented using subs by Russ
-Allbery <rra@stanford.edu>, and then combined with the original idea by
-Russ with input from Zenin. 256-color support is based on work by Kurt
-Starsinic. Russ Allbery now maintains this module.
-
-PUSHCOLOR, POPCOLOR, and LOCALCOLOR were contributed by openmethods.com
-voice solutions.
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 1996 Zenin. Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2005,
-2006, 2008, 2009, 2010, 2011, 2012 Russ Allbery <rra@stanford.edu>.
-Copyright 2012 Kurt Starsinic <kstarsinic@gmail.com>. This program is
-free software; you may redistribute it and/or modify it under the same
-terms as Perl itself.
-
=cut
diff --git a/Master/tlpkg/tlperl/lib/Term/Complete.pm b/Master/tlpkg/tlperl/lib/Term/Complete.pm
index 601e4956430..4d0e79ebd0a 100644
--- a/Master/tlpkg/tlperl/lib/Term/Complete.pm
+++ b/Master/tlpkg/tlperl/lib/Term/Complete.pm
@@ -5,7 +5,7 @@ require Exporter;
use strict;
our @ISA = qw(Exporter);
our @EXPORT = qw(Complete);
-our $VERSION = '1.402';
+our $VERSION = '1.403';
# @(#)complete.pl,v1.2 (me@anywhere.EBay.Sun.COM) 09/23/91
@@ -162,7 +162,7 @@ sub Complete {
};
# printable char
- ord >= 32 && do {
+ ord >= ord(" ") && do {
$return .= $_;
$r++;
print;
diff --git a/Master/tlpkg/tlperl/lib/Term/ReadLine.pm b/Master/tlpkg/tlperl/lib/Term/ReadLine.pm
index 80a0d4bac88..db08947972d 100644
--- a/Master/tlpkg/tlperl/lib/Term/ReadLine.pm
+++ b/Master/tlpkg/tlperl/lib/Term/ReadLine.pm
@@ -233,9 +233,9 @@ sub findConsole {
my $console;
my $consoleOUT;
- if (-e "/dev/tty" and $^O ne 'MSWin32') {
+ if ($^O ne 'MSWin32' and -e "/dev/tty") {
$console = "/dev/tty";
- } elsif (-e "con" or $^O eq 'MSWin32' or $^O eq 'msys') {
+ } elsif ($^O eq 'MSWin32' or $^O eq 'msys' or -e "con") {
$console = 'CONIN$';
$consoleOUT = 'CONOUT$';
} elsif ($^O eq 'VMS') {
@@ -320,7 +320,7 @@ sub Features { \%features }
package Term::ReadLine; # So late to allow the above code be defined?
-our $VERSION = '1.14';
+our $VERSION = '1.15';
my ($which) = exists $ENV{PERL_RL} ? split /\s+/, $ENV{PERL_RL} : undef;
if ($which) {
diff --git a/Master/tlpkg/tlperl/lib/Test/Builder.pm b/Master/tlpkg/tlperl/lib/Test/Builder.pm
index 061b0fc5a63..a8e7bd95b1c 100644
--- a/Master/tlpkg/tlperl/lib/Test/Builder.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Builder.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.001002';
+our $VERSION = '1.001014';
$VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval)
BEGIN {
@@ -89,7 +89,7 @@ Test::Builder - Backend for building test libraries
=head1 DESCRIPTION
-Test::Simple and Test::More have proven to be popular testing modules,
+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>.
@@ -223,15 +223,18 @@ sub child {
=item B<subtest>
- $builder->subtest($name, \&subtests);
+ $builder->subtest($name, \&subtests, @args);
-See documentation of C<subtest> in Test::More.
+See documentation of C<subtest> in Test::More.
+
+C<subtest> also, and optionally, accepts arguments which will be passed to the
+subtests reference.
=cut
sub subtest {
my $self = shift;
- my($name, $subtests) = @_;
+ my($name, $subtests, @args) = @_;
if ('CODE' ne ref $subtests) {
$self->croak("subtest()'s second argument must be a code ref");
@@ -255,7 +258,7 @@ sub subtest {
my $run_the_subtests = sub {
# Add subtest name for clarification of starting point
$self->note("Subtest: $name");
- $subtests->();
+ $subtests->(@args);
$self->done_testing unless $self->_plan_handled;
1;
};
@@ -321,7 +324,7 @@ sub _plan_handled {
When your child is done running tests, you must call C<finalize> to clean up
and tell the parent your pass/fail status.
-Calling finalize on a child with open children will C<croak>.
+Calling C<finalize> on a child with open children will C<croak>.
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.
@@ -352,7 +355,7 @@ sub finalize {
$self->parent->{Child_Name} = undef;
unless ($self->{Bailed_Out}) {
if ( $self->{Skip_All} ) {
- $self->parent->skip($self->{Skip_All});
+ $self->parent->skip($self->{Skip_All}, $self->name);
}
elsif ( not @{ $self->{Test_Results} } ) {
$self->parent->ok( 0, sprintf q[No tests run for subtest "%s"], $self->name );
@@ -1062,14 +1065,14 @@ DIAGNOSTIC
$Test->isnt_eq($got, $dont_expect, $name);
-Like Test::More's C<isnt()>. Checks if C<$got ne $dont_expect>. This is
+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 Test::More's C<isnt()>. Checks if C<$got ne $dont_expect>. This is
+Like L<Test::More>'s C<isnt()>. Checks if C<$got ne $dont_expect>. This is
the numeric version.
=cut
@@ -1111,14 +1114,14 @@ sub isnt_num {
$Test->like($thing, qr/$regex/, $name);
$Test->like($thing, '/$regex/', $name);
-Like Test::More's C<like()>. Checks if $thing matches the given C<$regex>.
+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 Test::More's C<unlike()>. Checks if $thing B<does not match> the
+Like L<Test::More>'s C<unlike()>. Checks if $thing B<does not match> the
given C<$regex>.
=cut
@@ -1141,7 +1144,7 @@ sub unlike {
$Test->cmp_ok($thing, $type, $that, $name);
-Works just like Test::More's C<cmp_ok()>.
+Works just like L<Test::More>'s C<cmp_ok()>.
$Test->cmp_ok($big_num, '!=', $other_big_num);
@@ -1159,7 +1162,7 @@ sub cmp_ok {
$self->croak("$type is not a valid comparison operator in cmp_ok()");
}
- my $test;
+ my ($test, $succ);
my $error;
{
## no critic (BuiltinFunctions::ProhibitStringyEval)
@@ -1169,9 +1172,10 @@ sub cmp_ok {
my($pack, $file, $line) = $self->caller();
# This is so that warnings come out at the caller's level
- $test = eval qq[
+ $succ = eval qq[
#line $line "(eval in cmp_ok) $file"
-\$got $type \$expect;
+\$test = (\$got $type \$expect);
+1;
];
$error = $@;
}
@@ -1185,7 +1189,7 @@ sub cmp_ok {
? '_unoverload_num'
: '_unoverload_str';
- $self->diag(<<"END") if $error;
+ $self->diag(<<"END") unless $succ;
An error occurred while using $type:
------------------------------------
$error
@@ -1246,7 +1250,7 @@ These are methods which are used in the course of writing a test but are not the
$Test->BAIL_OUT($reason);
-Indicates to the Test::Harness that things are going so badly all
+Indicates to the L<Test::Harness> that things are going so badly all
testing should terminate. This includes running any additional test
scripts.
@@ -1289,8 +1293,9 @@ Skips the current test, reporting C<$why>.
=cut
sub skip {
- my( $self, $why ) = @_;
+ my( $self, $why, $name ) = @_;
$why ||= '';
+ $name = '' unless defined $name;
$self->_unoverload_str( \$why );
lock( $self->{Curr_Test} );
@@ -1300,7 +1305,7 @@ sub skip {
{
'ok' => 1,
actual_ok => 1,
- name => '',
+ name => $name,
type => 'skip',
reason => $why,
}
@@ -2201,7 +2206,7 @@ pretty good at guessing the right package to look at. It first looks for
the caller based on C<$Level + 1>, since C<todo()> is usually called inside
a test function. As a last resort it will use C<exported_to()>.
-Sometimes there is some confusion about where todo() should be looking
+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.
@@ -2616,7 +2621,7 @@ Test::Builder.
=head1 MEMORY
-An informative hash, accessible via C<<details()>>, is stored for each
+An informative hash, accessible via C<details()>, is stored for each
test you perform. So memory usage will scale linearly with each test
run. Although this is not a problem for most test suites, it can
become an issue if you do large (hundred thousands to million)
@@ -2624,25 +2629,33 @@ combinatorics tests in the same run.
In such cases, you are advised to either split the test file into smaller
ones, or use a reverse approach, doing "normal" (code) compares and
-triggering fail() should anything go unexpected.
+triggering C<fail()> should anything go unexpected.
Future versions of Test::Builder will have a way to turn history off.
=head1 EXAMPLES
-CPAN can provide the best examples. Test::Simple, Test::More,
-Test::Exception and Test::Differences all use Test::Builder.
+CPAN can provide the best examples. L<Test::Simple>, L<Test::More>,
+L<Test::Exception> and L<Test::Differences> all use Test::Builder.
=head1 SEE ALSO
-Test::Simple, Test::More, Test::Harness
+L<Test::Simple>, L<Test::More>, L<Test::Harness>
=head1 AUTHORS
Original code by chromatic, maintained by Michael G Schwern
E<lt>schwern@pobox.comE<gt>
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
=head1 COPYRIGHT
Copyright 2002-2008 by chromatic E<lt>chromatic@wgz.orgE<gt> and
diff --git a/Master/tlpkg/tlperl/lib/Test/Builder/IO/Scalar.pm b/Master/tlpkg/tlperl/lib/Test/Builder/IO/Scalar.pm
new file mode 100644
index 00000000000..54700c42cbb
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test/Builder/IO/Scalar.pm
@@ -0,0 +1,658 @@
+package Test::Builder::IO::Scalar;
+
+
+=head1 NAME
+
+Test::Builder::IO::Scalar - A copy of IO::Scalar for Test::Builder
+
+=head1 DESCRIPTION
+
+This is a copy of L<IO::Scalar> which ships with L<Test::Builder> to
+support scalar references as filehandles on Perl 5.6. Newer
+versions of Perl simply use C<open()>'s built in support.
+
+L<Test::Builder> can not have dependencies on other modules without
+careful consideration, so its simply been copied into the distribution.
+
+=head1 COPYRIGHT and LICENSE
+
+This file came from the "IO-stringy" Perl5 toolkit.
+
+Copyright (c) 1996 by Eryq. All rights reserved.
+Copyright (c) 1999,2001 by ZeeGee Software Inc. All rights reserved.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+
+=cut
+
+# This is copied code, I don't care.
+##no critic
+
+use Carp;
+use strict;
+use vars qw($VERSION @ISA);
+use IO::Handle;
+
+use 5.005;
+
+### The package version, both in 1.23 style *and* usable by MakeMaker:
+$VERSION = "2.113";
+
+### Inheritance:
+@ISA = qw(IO::Handle);
+
+#==============================
+
+=head2 Construction
+
+=over 4
+
+=cut
+
+#------------------------------
+
+=item new [ARGS...]
+
+I<Class method.>
+Return a new, unattached scalar handle.
+If any arguments are given, they're sent to open().
+
+=cut
+
+sub new {
+ my $proto = shift;
+ my $class = ref($proto) || $proto;
+ my $self = bless \do { local *FH }, $class;
+ tie *$self, $class, $self;
+ $self->open(@_); ### open on anonymous by default
+ $self;
+}
+sub DESTROY {
+ shift->close;
+}
+
+#------------------------------
+
+=item open [SCALARREF]
+
+I<Instance method.>
+Open the scalar handle on a new scalar, pointed to by SCALARREF.
+If no SCALARREF is given, a "private" scalar is created to hold
+the file data.
+
+Returns the self object on success, undefined on error.
+
+=cut
+
+sub open {
+ my ($self, $sref) = @_;
+
+ ### Sanity:
+ defined($sref) or do {my $s = ''; $sref = \$s};
+ (ref($sref) eq "SCALAR") or croak "open() needs a ref to a scalar";
+
+ ### Setup:
+ *$self->{Pos} = 0; ### seek position
+ *$self->{SR} = $sref; ### scalar reference
+ $self;
+}
+
+#------------------------------
+
+=item opened
+
+I<Instance method.>
+Is the scalar handle opened on something?
+
+=cut
+
+sub opened {
+ *{shift()}->{SR};
+}
+
+#------------------------------
+
+=item close
+
+I<Instance method.>
+Disassociate the scalar handle from its underlying scalar.
+Done automatically on destroy.
+
+=cut
+
+sub close {
+ my $self = shift;
+ %{*$self} = ();
+ 1;
+}
+
+=back
+
+=cut
+
+
+
+#==============================
+
+=head2 Input and output
+
+=over 4
+
+=cut
+
+
+#------------------------------
+
+=item flush
+
+I<Instance method.>
+No-op, provided for OO compatibility.
+
+=cut
+
+sub flush { "0 but true" }
+
+#------------------------------
+
+=item getc
+
+I<Instance method.>
+Return the next character, or undef if none remain.
+
+=cut
+
+sub getc {
+ my $self = shift;
+
+ ### Return undef right away if at EOF; else, move pos forward:
+ return undef if $self->eof;
+ substr(${*$self->{SR}}, *$self->{Pos}++, 1);
+}
+
+#------------------------------
+
+=item getline
+
+I<Instance method.>
+Return the next line, or undef on end of string.
+Can safely be called in an array context.
+Currently, lines are delimited by "\n".
+
+=cut
+
+sub getline {
+ my $self = shift;
+
+ ### Return undef right away if at EOF:
+ return undef if $self->eof;
+
+ ### Get next line:
+ my $sr = *$self->{SR};
+ my $i = *$self->{Pos}; ### Start matching at this point.
+
+ ### Minimal impact implementation!
+ ### We do the fast fast thing (no regexps) if using the
+ ### classic input record separator.
+
+ ### Case 1: $/ is undef: slurp all...
+ if (!defined($/)) {
+ *$self->{Pos} = length $$sr;
+ return substr($$sr, $i);
+ }
+
+ ### Case 2: $/ is "\n": zoom zoom zoom...
+ elsif ($/ eq "\012") {
+
+ ### Seek ahead for "\n"... yes, this really is faster than regexps.
+ my $len = length($$sr);
+ for (; $i < $len; ++$i) {
+ last if ord (substr ($$sr, $i, 1)) == 10;
+ }
+
+ ### Extract the line:
+ my $line;
+ if ($i < $len) { ### We found a "\n":
+ $line = substr ($$sr, *$self->{Pos}, $i - *$self->{Pos} + 1);
+ *$self->{Pos} = $i+1; ### Remember where we finished up.
+ }
+ else { ### No "\n"; slurp the remainder:
+ $line = substr ($$sr, *$self->{Pos}, $i - *$self->{Pos});
+ *$self->{Pos} = $len;
+ }
+ return $line;
+ }
+
+ ### Case 3: $/ is ref to int. Do fixed-size records.
+ ### (Thanks to Dominique Quatravaux.)
+ elsif (ref($/)) {
+ my $len = length($$sr);
+ my $i = ${$/} + 0;
+ my $line = substr ($$sr, *$self->{Pos}, $i);
+ *$self->{Pos} += $i;
+ *$self->{Pos} = $len if (*$self->{Pos} > $len);
+ return $line;
+ }
+
+ ### Case 4: $/ is either "" (paragraphs) or something weird...
+ ### This is Graham's general-purpose stuff, which might be
+ ### a tad slower than Case 2 for typical data, because
+ ### of the regexps.
+ else {
+ pos($$sr) = $i;
+
+ ### If in paragraph mode, skip leading lines (and update i!):
+ length($/) or
+ (($$sr =~ m/\G\n*/g) and ($i = pos($$sr)));
+
+ ### If we see the separator in the buffer ahead...
+ if (length($/)
+ ? $$sr =~ m,\Q$/\E,g ### (ordinary sep) TBD: precomp!
+ : $$sr =~ m,\n\n,g ### (a paragraph)
+ ) {
+ *$self->{Pos} = pos $$sr;
+ return substr($$sr, $i, *$self->{Pos}-$i);
+ }
+ ### Else if no separator remains, just slurp the rest:
+ else {
+ *$self->{Pos} = length $$sr;
+ return substr($$sr, $i);
+ }
+ }
+}
+
+#------------------------------
+
+=item getlines
+
+I<Instance method.>
+Get all remaining lines.
+It will croak() if accidentally called in a scalar context.
+
+=cut
+
+sub getlines {
+ my $self = shift;
+ wantarray or croak("can't call getlines in scalar context!");
+ my ($line, @lines);
+ push @lines, $line while (defined($line = $self->getline));
+ @lines;
+}
+
+#------------------------------
+
+=item print ARGS...
+
+I<Instance method.>
+Print ARGS to the underlying scalar.
+
+B<Warning:> this continues to always cause a seek to the end
+of the string, but if you perform seek()s and tell()s, it is
+still safer to explicitly seek-to-end before subsequent print()s.
+
+=cut
+
+sub print {
+ my $self = shift;
+ *$self->{Pos} = length(${*$self->{SR}} .= join('', @_) . (defined($\) ? $\ : ""));
+ 1;
+}
+sub _unsafe_print {
+ my $self = shift;
+ my $append = join('', @_) . $\;
+ ${*$self->{SR}} .= $append;
+ *$self->{Pos} += length($append);
+ 1;
+}
+sub _old_print {
+ my $self = shift;
+ ${*$self->{SR}} .= join('', @_) . $\;
+ *$self->{Pos} = length(${*$self->{SR}});
+ 1;
+}
+
+
+#------------------------------
+
+=item read BUF, NBYTES, [OFFSET]
+
+I<Instance method.>
+Read some bytes from the scalar.
+Returns the number of bytes actually read, 0 on end-of-file, undef on error.
+
+=cut
+
+sub read {
+ my $self = $_[0];
+ my $n = $_[2];
+ my $off = $_[3] || 0;
+
+ my $read = substr(${*$self->{SR}}, *$self->{Pos}, $n);
+ $n = length($read);
+ *$self->{Pos} += $n;
+ ($off ? substr($_[1], $off) : $_[1]) = $read;
+ return $n;
+}
+
+#------------------------------
+
+=item write BUF, NBYTES, [OFFSET]
+
+I<Instance method.>
+Write some bytes to the scalar.
+
+=cut
+
+sub write {
+ my $self = $_[0];
+ my $n = $_[2];
+ my $off = $_[3] || 0;
+
+ my $data = substr($_[1], $off, $n);
+ $n = length($data);
+ $self->print($data);
+ return $n;
+}
+
+#------------------------------
+
+=item sysread BUF, LEN, [OFFSET]
+
+I<Instance method.>
+Read some bytes from the scalar.
+Returns the number of bytes actually read, 0 on end-of-file, undef on error.
+
+=cut
+
+sub sysread {
+ my $self = shift;
+ $self->read(@_);
+}
+
+#------------------------------
+
+=item syswrite BUF, NBYTES, [OFFSET]
+
+I<Instance method.>
+Write some bytes to the scalar.
+
+=cut
+
+sub syswrite {
+ my $self = shift;
+ $self->write(@_);
+}
+
+=back
+
+=cut
+
+
+#==============================
+
+=head2 Seeking/telling and other attributes
+
+=over 4
+
+=cut
+
+
+#------------------------------
+
+=item autoflush
+
+I<Instance method.>
+No-op, provided for OO compatibility.
+
+=cut
+
+sub autoflush {}
+
+#------------------------------
+
+=item binmode
+
+I<Instance method.>
+No-op, provided for OO compatibility.
+
+=cut
+
+sub binmode {}
+
+#------------------------------
+
+=item clearerr
+
+I<Instance method.> Clear the error and EOF flags. A no-op.
+
+=cut
+
+sub clearerr { 1 }
+
+#------------------------------
+
+=item eof
+
+I<Instance method.> Are we at end of file?
+
+=cut
+
+sub eof {
+ my $self = shift;
+ (*$self->{Pos} >= length(${*$self->{SR}}));
+}
+
+#------------------------------
+
+=item seek OFFSET, WHENCE
+
+I<Instance method.> Seek to a given position in the stream.
+
+=cut
+
+sub seek {
+ my ($self, $pos, $whence) = @_;
+ my $eofpos = length(${*$self->{SR}});
+
+ ### Seek:
+ if ($whence == 0) { *$self->{Pos} = $pos } ### SEEK_SET
+ elsif ($whence == 1) { *$self->{Pos} += $pos } ### SEEK_CUR
+ elsif ($whence == 2) { *$self->{Pos} = $eofpos + $pos} ### SEEK_END
+ else { croak "bad seek whence ($whence)" }
+
+ ### Fixup:
+ if (*$self->{Pos} < 0) { *$self->{Pos} = 0 }
+ if (*$self->{Pos} > $eofpos) { *$self->{Pos} = $eofpos }
+ return 1;
+}
+
+#------------------------------
+
+=item sysseek OFFSET, WHENCE
+
+I<Instance method.> Identical to C<seek OFFSET, WHENCE>, I<q.v.>
+
+=cut
+
+sub sysseek {
+ my $self = shift;
+ $self->seek (@_);
+}
+
+#------------------------------
+
+=item tell
+
+I<Instance method.>
+Return the current position in the stream, as a numeric offset.
+
+=cut
+
+sub tell { *{shift()}->{Pos} }
+
+#------------------------------
+
+=item use_RS [YESNO]
+
+I<Instance method.>
+B<Deprecated and ignored.>
+Obey the current setting of $/, like IO::Handle does?
+Default is false in 1.x, but cold-welded true in 2.x and later.
+
+=cut
+
+sub use_RS {
+ my ($self, $yesno) = @_;
+ carp "use_RS is deprecated and ignored; \$/ is always consulted\n";
+ }
+
+#------------------------------
+
+=item setpos POS
+
+I<Instance method.>
+Set the current position, using the opaque value returned by C<getpos()>.
+
+=cut
+
+sub setpos { shift->seek($_[0],0) }
+
+#------------------------------
+
+=item getpos
+
+I<Instance method.>
+Return the current position in the string, as an opaque object.
+
+=cut
+
+*getpos = \&tell;
+
+
+#------------------------------
+
+=item sref
+
+I<Instance method.>
+Return a reference to the underlying scalar.
+
+=cut
+
+sub sref { *{shift()}->{SR} }
+
+
+#------------------------------
+# Tied handle methods...
+#------------------------------
+
+# Conventional tiehandle interface:
+sub TIEHANDLE {
+ ((defined($_[1]) && UNIVERSAL::isa($_[1], __PACKAGE__))
+ ? $_[1]
+ : shift->new(@_));
+}
+sub GETC { shift->getc(@_) }
+sub PRINT { shift->print(@_) }
+sub PRINTF { shift->print(sprintf(shift, @_)) }
+sub READ { shift->read(@_) }
+sub READLINE { wantarray ? shift->getlines(@_) : shift->getline(@_) }
+sub WRITE { shift->write(@_); }
+sub CLOSE { shift->close(@_); }
+sub SEEK { shift->seek(@_); }
+sub TELL { shift->tell(@_); }
+sub EOF { shift->eof(@_); }
+
+#------------------------------------------------------------
+
+1;
+
+__END__
+
+
+
+=back
+
+=cut
+
+
+=head1 WARNINGS
+
+Perl's TIEHANDLE spec was incomplete prior to 5.005_57;
+it was missing support for C<seek()>, C<tell()>, and C<eof()>.
+Attempting to use these functions with an IO::Scalar will not work
+prior to 5.005_57. IO::Scalar will not have the relevant methods
+invoked; and even worse, this kind of bug can lie dormant for a while.
+If you turn warnings on (via C<$^W> or C<perl -w>),
+and you see something like this...
+
+ attempt to seek on unopened filehandle
+
+...then you are probably trying to use one of these functions
+on an IO::Scalar with an old Perl. The remedy is to simply
+use the OO version; e.g.:
+
+ $SH->seek(0,0); ### GOOD: will work on any 5.005
+ seek($SH,0,0); ### WARNING: will only work on 5.005_57 and beyond
+
+
+=head1 VERSION
+
+$Id: Scalar.pm,v 1.6 2005/02/10 21:21:53 dfs Exp $
+
+
+=head1 AUTHORS
+
+=head2 Primary Maintainer
+
+David F. Skoll (F<dfs@roaringpenguin.com>).
+
+=head2 Principal author
+
+Eryq (F<eryq@zeegee.com>).
+President, ZeeGee Software Inc (F<http://www.zeegee.com>).
+
+
+=head2 Other contributors
+
+The full set of contributors always includes the folks mentioned
+in L<IO::Stringy/"CHANGE LOG">. But just the same, special
+thanks to the following individuals for their invaluable contributions
+(if I've forgotten or misspelled your name, please email me!):
+
+I<Andy Glew,>
+for contributing C<getc()>.
+
+I<Brandon Browning,>
+for suggesting C<opened()>.
+
+I<David Richter,>
+for finding and fixing the bug in C<PRINTF()>.
+
+I<Eric L. Brine,>
+for his offset-using read() and write() implementations.
+
+I<Richard Jones,>
+for his patches to massively improve the performance of C<getline()>
+and add C<sysread> and C<syswrite>.
+
+I<B. K. Oxley (binkley),>
+for stringification and inheritance improvements,
+and sundry good ideas.
+
+I<Doug Wilson,>
+for the IO::Handle inheritance and automatic tie-ing.
+
+
+=head1 SEE ALSO
+
+L<IO::String>, which is quite similar but which was designed
+more-recently and with an IO::Handle-like interface in mind,
+so you could mix OO- and native-filehandle usage without using tied().
+
+I<Note:> as of version 2.x, these classes all work like
+their IO::Handle counterparts, so we have comparable
+functionality to IO::String.
+
+=cut
+
diff --git a/Master/tlpkg/tlperl/lib/Test/Builder/Module.pm b/Master/tlpkg/tlperl/lib/Test/Builder/Module.pm
index 48e9ea8f748..2322d8a9b78 100644
--- a/Master/tlpkg/tlperl/lib/Test/Builder/Module.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Builder/Module.pm
@@ -2,12 +2,12 @@ package Test::Builder::Module;
use strict;
-use Test::Builder 0.99;
+use Test::Builder 1.00;
require Exporter;
our @ISA = qw(Exporter);
-our $VERSION = '1.001002';
+our $VERSION = '1.001014';
$VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval)
@@ -35,41 +35,41 @@ Test::Builder::Module - Base class for test modules
=head1 DESCRIPTION
-This is a superclass for Test::Builder-based modules. It provides a
+This is a superclass for L<Test::Builder>-based modules. It provides a
handful of common functionality and a method of getting at the underlying
-Test::Builder object.
+L<Test::Builder> object.
=head2 Importing
-Test::Builder::Module is a subclass of Exporter which means your
+Test::Builder::Module is a subclass of L<Exporter> which means your
module is also a subclass of Exporter. @EXPORT, @EXPORT_OK, etc...
all act normally.
-A few methods are provided to do the C<use Your::Module tests => 23> part
+A few methods are provided to do the C<< use Your::Module tests => 23 >> part
for you.
=head3 import
-Test::Builder::Module provides an import() method which acts in the
-same basic way as Test::More's, setting the plan and controlling
+Test::Builder::Module provides an C<import()> method which acts in the
+same basic way as L<Test::More>'s, setting the plan and controlling
exporting of functions and variables. This allows your module to set
-the plan independent of Test::More.
+the plan independent of L<Test::More>.
-All arguments passed to import() are passed onto
+All arguments passed to C<import()> are passed onto
C<< Your::Module->builder->plan() >> with the exception of
C<< import =>[qw(things to import)] >>.
use Your::Module import => [qw(this that)], tests => 23;
-says to import the functions this() and that() as well as set the plan
+says to import the functions C<this()> and C<that()> as well as set the plan
to be 23 tests.
-import() also sets the exported_to() attribute of your builder to be
-the caller of the import() function.
+C<import()> also sets the C<exported_to()> attribute of your builder to be
+the caller of the C<import()> function.
-Additional behaviors can be added to your import() method by overriding
-import_extra().
+Additional behaviors can be added to your C<import()> method by overriding
+C<import_extra()>.
=cut
@@ -123,13 +123,13 @@ sub _strip_imports {
Your::Module->import_extra(\@import_args);
-import_extra() is called by import(). It provides an opportunity for you
+C<import_extra()> is called by C<import()>. It provides an opportunity for you
to add behaviors to your module based on its import list.
-Any extra arguments which shouldn't be passed on to plan() should be
+Any extra arguments which shouldn't be passed on to C<plan()> should be
stripped off by this method.
-See Test::More for an example of its use.
+See L<Test::More> for an example of its use.
B<NOTE> This mechanism is I<VERY ALPHA AND LIKELY TO CHANGE> as it
feels like a bit of an ugly hack in its current form.
@@ -147,15 +147,15 @@ Test::Builder object.
my $builder = Your::Class->builder;
-This method returns the Test::Builder object associated with Your::Class.
+This method returns the L<Test::Builder> object associated with Your::Class.
It is not a constructor so you can call it as often as you like.
-This is the preferred way to get the Test::Builder object. You should
+This is the preferred way to get the L<Test::Builder> object. You should
I<not> get it via C<< Test::Builder->new >> as was previously
recommended.
-The object returned by builder() may change at runtime so you should
-call builder() inside each function rather than store it in a global.
+The object returned by C<builder()> may change at runtime so you should
+call C<builder()> inside each function rather than store it in a global.
sub ok {
my $builder = Your::Class->builder;
diff --git a/Master/tlpkg/tlperl/lib/Test/Builder/Tester.pm b/Master/tlpkg/tlperl/lib/Test/Builder/Tester.pm
index 49a42cead16..b0554b89aca 100644
--- a/Master/tlpkg/tlperl/lib/Test/Builder/Tester.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Builder/Tester.pm
@@ -1,9 +1,9 @@
package Test::Builder::Tester;
use strict;
-our $VERSION = "1.23_002";
+our $VERSION = "1.28";
-use Test::Builder 0.98;
+use Test::Builder 0.99;
use Symbol;
use Carp;
@@ -25,20 +25,20 @@ Test::Builder
=head1 DESCRIPTION
A module that helps you test testing modules that are built with
-B<Test::Builder>.
+L<Test::Builder>.
The testing system is designed to be used by performing a three step
process for each test you wish to test. This process starts with using
C<test_out> and C<test_err> in advance to declare what the testsuite you
-are testing will output with B<Test::Builder> to stdout and stderr.
+are testing will output with L<Test::Builder> to stdout and stderr.
You then can run the test(s) from your test suite that call
-B<Test::Builder>. At this point the output of B<Test::Builder> is
-safely captured by B<Test::Builder::Tester> rather than being
+L<Test::Builder>. At this point the output of L<Test::Builder> is
+safely captured by L<Test::Builder::Tester> rather than being
interpreted as real test output.
The final stage is to call C<test_test> that will simply compare what you
-predeclared to what B<Test::Builder> actually outputted, and report the
+predeclared to what L<Test::Builder> actually outputted, and report the
results back with a "ok" or "not ok" (with debugging) to the normal
output.
@@ -165,8 +165,8 @@ which is even the same as
test_out("ok 2");
Once C<test_out> or C<test_err> (or C<test_fail> or C<test_diag>) have
-been called, all further output from B<Test::Builder> will be
-captured by B<Test::Builder::Tester>. This means that you will not
+been called, all further output from L<Test::Builder> will be
+captured by L<Test::Builder::Tester>. This means that you will not
be able perform further tests to the normal output in the normal way
until you call C<test_test> (well, unless you manually meddle with the
output filehandles)
@@ -189,7 +189,7 @@ sub test_err {
=item test_fail
-Because the standard failure message that B<Test::Builder> produces
+Because the standard failure message that L<Test::Builder> produces
whenever a test fails will be a common occurrence in your test error
output, and because it has changed between Test::Builder versions, rather
than forcing you to call C<test_err> with the string all the time like
@@ -228,7 +228,7 @@ sub test_fail {
=item test_diag
As most of the remaining expected output to the error stream will be
-created by Test::Builder's C<diag> function, B<Test::Builder::Tester>
+created by L<Test::Builder>'s C<diag> function, L<Test::Builder::Tester>
provides a convenience function C<test_diag> that you can use instead of
C<test_err>.
@@ -242,7 +242,7 @@ you can write
test_diag("Couldn't open file");
-Remember that B<Test::Builder>'s diag function will not add newlines to
+Remember that L<Test::Builder>'s diag function will not add newlines to
the end of output and test_diag will. So to check
Test::Builder->new->diag("foo\n","bar\n");
@@ -267,7 +267,7 @@ sub test_diag {
=item test_test
Actually performs the output check testing the tests, comparing the
-data (with C<eq>) that we have captured from B<Test::Builder> against
+data (with C<eq>) that we have captured from L<Test::Builder> against
what was declared with C<test_out> and C<test_err>.
This takes name/value pairs that effect how the test is run.
@@ -297,9 +297,9 @@ As a convenience, if only one argument is passed then this argument
is assumed to be the name of the test (as in the above examples.)
Once C<test_test> has been run test output will be redirected back to
-the original filehandles that B<Test::Builder> was connected to
+the original filehandles that L<Test::Builder> was connected to
(probably STDOUT and STDERR,) meaning any further tests you run
-will function normally and cause success/errors for B<Test::Harness>.
+will function normally and cause success/errors for L<Test::Harness>.
=cut
@@ -400,11 +400,11 @@ respectively, and the function called with no argument will return the
current setting.
To enable colouring from the command line, you can use the
-B<Text::Builder::Tester::Color> module like so:
+L<Text::Builder::Tester::Color> module like so:
perl -Mlib=Text::Builder::Tester::Color test.t
-Or by including the B<Test::Builder::Tester::Color> module directly in
+Or by including the L<Test::Builder::Tester::Color> module directly in
the PERL5LIB.
=cut
@@ -420,12 +420,12 @@ sub color {
=head1 BUGS
-Calls C<<Test::Builder->no_ending>> turning off the ending tests.
+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 B<Term::ANSIColor> is
+The color function doesn't work unless L<Term::ANSIColor> is
compatible with your terminal.
Bugs (and requests for new features) can be reported to the author
@@ -436,7 +436,7 @@ L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Builder-Tester>
Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-Some code taken from B<Test::More> and B<Test::Catch>, written by
+Some code taken from L<Test::More> and L<Test::Catch>, written by
Michael G Schwern E<lt>schwern@pobox.comE<gt>. Hence, those parts
Copyright Micheal G Schwern 2001. Used and distributed with
permission.
@@ -444,6 +444,14 @@ permission.
This program is free software; you can redistribute it
and/or modify it under the same terms as Perl itself.
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
=head1 NOTES
Thanks to Richard Clamp E<lt>richardc@unixbeard.netE<gt> for letting
diff --git a/Master/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm b/Master/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm
index b269a2783d8..9a89310f1f3 100644
--- a/Master/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm
@@ -1,7 +1,7 @@
package Test::Builder::Tester::Color;
use strict;
-our $VERSION = "1.23_002";
+our $VERSION = "1.290001";
require Test::Builder::Tester;
diff --git a/Master/tlpkg/tlperl/lib/Test/Harness.pm b/Master/tlpkg/tlperl/lib/Test/Harness.pm
index aa54574b44c..d3759195e01 100644
--- a/Master/tlpkg/tlperl/lib/Test/Harness.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Harness.pm
@@ -31,11 +31,11 @@ Test::Harness - Run Perl standard test scripts with statistics
=head1 VERSION
-Version 3.30
+Version 3.35
=cut
-our $VERSION = '3.30';
+our $VERSION = '3.35';
# Backwards compatibility for exportable variable names.
*verbose = *Verbose;
diff --git a/Master/tlpkg/tlperl/lib/Test/More.pm b/Master/tlpkg/tlperl/lib/Test/More.pm
index 50f3e39b0ea..4bab267fcf6 100644
--- a/Master/tlpkg/tlperl/lib/Test/More.pm
+++ b/Master/tlpkg/tlperl/lib/Test/More.pm
@@ -9,7 +9,7 @@ use warnings;
# We use a lot of subroutine prototypes
## no critic (Subroutines::ProhibitSubroutinePrototypes)
-# Can't use Carp because it might cause use_ok() to accidentally succeed
+# Can't use Carp because it might cause C<use_ok()> to accidentally succeed
# even though the module being used forgot to use Carp. Yes, this
# actually happened.
sub _carp {
@@ -17,7 +17,7 @@ sub _carp {
return warn @_, " at $file line $line\n";
}
-our $VERSION = '1.001002';
+our $VERSION = '1.001014';
$VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval)
use Test::Builder::Module 0.99;
@@ -144,7 +144,7 @@ but 'fail', you'd do:
use Test::More tests => 23, import => ['!fail'];
-Alternatively, you can use the plan() function. Useful for when you
+Alternatively, you can use the C<plan()> function. Useful for when you
have to calculate the number of tests.
use Test::More;
@@ -204,7 +204,7 @@ sub import_extra {
If you don't know how many tests you're going to run, you can issue
the plan when you're done running tests.
-$number_of_tests is the same as plan(), it's the number of tests you
+$number_of_tests is the same as C<plan()>, it's the number of tests you
expected to run. You can omit this, in which case the number of tests
you ran doesn't matter, just the fact that your tests ran to
conclusion.
@@ -277,13 +277,13 @@ out. It makes it very easy to find a test in your script when it fails
and gives others an idea of your intentions. $test_name is optional,
but we B<very> strongly encourage its use.
-Should an ok() fail, it will produce some diagnostics:
+Should an C<ok()> fail, it will produce some diagnostics:
not ok 18 - sufficient mucus
# Failed test 'sufficient mucus'
# in foo.t at line 42.
-This is the same as Test::Simple's ok() routine.
+This is the same as L<Test::Simple>'s C<ok()> routine.
=cut
@@ -301,7 +301,7 @@ sub ok ($;$) {
is ( $got, $expected, $test_name );
isnt( $got, $expected, $test_name );
-Similar to ok(), is() and isnt() compare their two arguments
+Similar to C<ok()>, C<is()> and C<isnt()> compare their two arguments
with C<eq> and C<ne> respectively and use the result of that to
determine if the test succeeded or failed. So these:
@@ -323,9 +323,9 @@ against C<undef> like this:
(Mnemonic: "This is that." "This isn't that.")
-So why use these? They produce better diagnostics on failure. ok()
-cannot know what you are testing for (beyond the name), but is() and
-isnt() know what the test was and why it failed. For example this
+So why use these? They produce better diagnostics on failure. C<ok()>
+cannot know what you are testing for (beyond the name), but C<is()> and
+C<isnt()> know what the test was and why it failed. For example this
test:
my $foo = 'waffle'; my $bar = 'yarblokos';
@@ -341,7 +341,7 @@ Will produce something like this:
So you can figure out what went wrong without rerunning the test.
-You are encouraged to use is() and isnt() over ok() where possible,
+You are encouraged to use C<is()> and C<isnt()> over C<ok()> where possible,
however do not be tempted to use them to find out if something is
true or false!
@@ -350,11 +350,11 @@ true or false!
This does not check if C<exists $brooklyn{tree}> is true, it checks if
it returns 1. Very different. Similar caveats exist for false and 0.
-In these cases, use ok().
+In these cases, use C<ok()>.
ok( exists $brooklyn{tree}, 'A tree grows in Brooklyn' );
-A simple call to isnt() usually does not provide a strong test but there
+A simple call to C<isnt()> usually does not provide a strong test but there
are cases when you cannot say much more about a value than that it is
different from some other value:
@@ -366,7 +366,7 @@ different from some other value:
isnt $obj, $clone, "clone() produces a different object";
For those grammatical pedants out there, there's an C<isn't()>
-function which is an alias of isnt().
+function which is an alias of C<isnt()>.
=cut
@@ -383,12 +383,13 @@ sub isnt ($$;$) {
}
*isn't = \&isnt;
+# ' to unconfuse syntax higlighters
=item B<like>
like( $got, qr/expected/, $test_name );
-Similar to ok(), like() matches $got against the regex C<qr/expected/>.
+Similar to C<ok()>, C<like()> matches $got against the regex C<qr/expected/>.
So this:
@@ -409,7 +410,7 @@ currently not supported):
Regex options may be placed on the end (C<'/expected/i'>).
-Its advantages over ok() are similar to that of is() and isnt(). Better
+Its advantages over C<ok()> are similar to that of C<is()> and C<isnt()>. Better
diagnostics on failure.
=cut
@@ -424,7 +425,7 @@ sub like ($$;$) {
unlike( $got, qr/expected/, $test_name );
-Works exactly as like(), only it checks if $got B<does not> match the
+Works exactly as C<like()>, only it checks if $got B<does not> match the
given pattern.
=cut
@@ -453,7 +454,7 @@ passes if the comparison is true and fails otherwise.
cmp_ok( $got, '&&', $expected, 'this && that' );
...etc...
-Its advantage over ok() is when the test fails you'll know what $got
+Its advantage over C<ok()> is when the test fails you'll know what $got
and $expected were:
not ok 1
@@ -463,7 +464,7 @@ and $expected were:
# undef
It's also useful in those cases where you are comparing numbers and
-is()'s use of C<eq> will interfere:
+C<is()>'s use of C<eq> will interfere:
cmp_ok( $big_hairy_number, '==', $another_big_hairy_number );
@@ -501,7 +502,7 @@ is almost exactly like saying:
only without all the typing and with a better interface. Handy for
quickly testing an interface.
-No matter how many @methods you check, a single can_ok() call counts
+No matter how many @methods you check, a single C<can_ok()> call counts
as one test. If you desire otherwise, use:
foreach my $meth (@methods) {
@@ -663,7 +664,7 @@ WHOA
my $obj = new_ok( $class => \@args, $object_name );
A convenience function which combines creating an object and calling
-isa_ok() on that object.
+C<isa_ok()> on that object.
It is basically equivalent to:
@@ -672,7 +673,7 @@ It is basically equivalent to:
If @args is not given, an empty list will be used.
-This function only works on new() and it assumes new() will return
+This function only works on C<new()> and it assumes C<new()> will return
just a single object which isa C<$class>.
=cut
@@ -704,7 +705,7 @@ sub new_ok {
subtest $name => \&code;
-subtest() runs the &code as its own little test with its own plan and
+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
result of the whole subtest to determine if its ok or not ok.
@@ -734,7 +735,7 @@ This would produce.
ok 2 - An example subtest
ok 3 - Third test
-A subtest may call "skip_all". No tests will be run, but the subtest is
+A subtest may call C<skip_all>. No tests will be run, but the subtest is
considered a skip.
subtest 'skippy' => sub {
@@ -779,9 +780,9 @@ sub subtest {
Sometimes you just want to say that the tests have passed. Usually
the case is you've got some complicated condition that is difficult to
-wedge into an ok(). In this case, you can simply use pass() (to
+wedge into an C<ok()>. In this case, you can simply use C<pass()> (to
declare the test ok) or fail (for not ok). They are synonyms for
-ok(1) and ok(0).
+C<ok(1)> and C<ok(0)>.
Use these very, very, very sparingly.
@@ -896,7 +897,7 @@ If you just want to test a module can be loaded, use C<require_ok>.
If you just want to load a module in a test, we recommend simply using
C<use> directly. It will cause the test to stop.
-It's recommended that you run use_ok() inside a BEGIN block so its
+It's recommended that you run C<use_ok()> inside a BEGIN block so its
functions are exported at compile-time and prototypes are properly
honored.
@@ -1017,16 +1018,16 @@ B<NOTE> I'm not quite sure what will happen with filehandles.
is_deeply( $got, $expected, $test_name );
-Similar to is(), except that if $got and $expected are references, it
+Similar to C<is()>, except that if $got and $expected are references, it
does a deep comparison walking each data structure to see if they are
equivalent. If the two structures are different, it will display the
place where they start differing.
-is_deeply() compares the dereferenced values of references, the
+C<is_deeply()> compares the dereferenced values of references, the
references themselves (except for their type) are ignored. This means
aspects such as blessing and ties are not considered "different".
-is_deeply() currently has very limited handling of function reference
+C<is_deeply()> currently has very limited handling of function reference
and globs. It merely checks if they have the same referent. This may
improve in the future.
@@ -1185,7 +1186,7 @@ interfere with the test.
note(@diagnostic_message);
-Like diag(), except the message will not be seen when the test is run
+Like C<diag()>, except the message will not be seen when the test is run
in a harness. It will only be visible in the verbose TAP stream.
Handy for putting in notes which might be useful for debugging, but
@@ -1232,7 +1233,7 @@ sub explain {
Sometimes running a test under certain conditions will cause the
test script to die. A certain function or method isn't implemented
-(such as fork() on MacOS), some resource isn't available (like a
+(such as C<fork()> on MacOS), some resource isn't available (like a
net connection) or a module isn't available. In these cases it's
necessary to skip tests, or declare that they are supposed to fail
but will work in the future (a todo test).
@@ -1337,7 +1338,7 @@ because you haven't fixed a bug or haven't finished a new feature:
With a todo block, the tests inside are expected to fail. Test::More
will run the tests normally, but print out special flags indicating
-they are "todo". Test::Harness will interpret failures as being ok.
+they are "todo". L<Test::Harness> will interpret failures as being ok.
Should anything succeed, it will report it as an unexpected success.
You then know the thing you had todo is done and can remove the
TODO flag.
@@ -1366,7 +1367,7 @@ inside an C<eval BLOCK> with and using C<alarm>. In these extreme
cases you have no choice but to skip over the broken tests entirely.
The syntax and behavior is similar to a C<SKIP: BLOCK> except the
-tests will be marked as failing but todo. Test::Harness will
+tests will be marked as failing but todo. L<Test::Harness> will
interpret them as passing.
=cut
@@ -1394,7 +1395,7 @@ sub todo_skip {
B<If it's something the user might not be able to do>, use SKIP.
This includes optional modules that aren't installed, running under
-an OS that doesn't have some feature (like fork() or symlinks), or maybe
+an OS that doesn't have some feature (like C<fork()> or symlinks), or maybe
you need an Internet connection and one isn't available.
B<If it's something the programmer hasn't done yet>, use TODO. This
@@ -1440,11 +1441,11 @@ sub BAIL_OUT {
The use of the following functions is discouraged as they are not
actually testing functions and produce no diagnostics to help figure
-out what went wrong. They were written before is_deeply() existed
+out what went wrong. They were written before C<is_deeply()> existed
because I couldn't figure out how to display a useful diff of two
arbitrary data structures.
-These functions are usually used inside an ok().
+These functions are usually used inside an C<ok()>.
ok( eq_array(\@got, \@expected) );
@@ -1649,7 +1650,7 @@ sub _eq_hash {
my $is_eq = eq_set(\@got, \@expected);
-Similar to eq_array(), except the order of the elements is B<not>
+Similar to C<eq_array()>, except the order of the elements is B<not>
important. This is a deep check, but the irrelevancy of order only
applies to the top level.
@@ -1662,7 +1663,7 @@ Is better written:
B<NOTE> By historical accident, this is not a true set comparison.
While the order of elements does not matter, duplicate elements do.
-B<NOTE> eq_set() does not know how to deal with references at the top
+B<NOTE> C<eq_set()> does not know how to deal with references at the top
level. The following is an example of a comparison which might not work:
eq_set([\1, \2], [\2, \1]);
@@ -1700,13 +1701,13 @@ sub eq_set {
=head2 Extending and Embedding Test::More
Sometimes the Test::More interface isn't quite enough. Fortunately,
-Test::More is built on top of Test::Builder which provides a single,
+Test::More is built on top of L<Test::Builder> which provides a single,
unified backend for any test library to use. This means two test
-libraries which both use Test::Builder B<can be used together in the
+libraries which both use <Test::Builder> B<can> be used together in the
same program>.
If you simply want to do a little tweaking of how the tests behave,
-you can access the underlying Test::Builder object like so:
+you can access the underlying L<Test::Builder> object like so:
=over 4
@@ -1714,7 +1715,7 @@ you can access the underlying Test::Builder object like so:
my $test_builder = Test::More->builder;
-Returns the Test::Builder object underlying Test::More for you to play
+Returns the L<Test::Builder> object underlying Test::More for you to play
with.
@@ -1723,10 +1724,10 @@ with.
=head1 EXIT CODES
-If all your tests passed, Test::Builder will exit with zero (which is
+If all your tests passed, L<Test::Builder> will exit with zero (which is
normal). If anything failed it will exit with how many failed. If
you run less (or more) tests than you planned, the missing (or extras)
-will be considered failures. If no tests were ever run Test::Builder
+will be considered failures. If no tests were ever run L<Test::Builder>
will throw a warning and exit with 255. If the test died, even after
having successfully completed all its tests, it will still be
considered a failure and will exit with 255.
@@ -1785,8 +1786,9 @@ There is a full version history in the Changes file, and the Test::More versions
=item utf8 / "Wide character in print"
If you use utf8 or other non-ASCII characters with Test::More you
-might get a "Wide character in print" warning. Using C<binmode
-STDOUT, ":utf8"> will not fix it. Test::Builder (which powers
+might get a "Wide character in print" warning. Using
+C<< binmode STDOUT, ":utf8" >> will not fix it.
+L<Test::Builder> (which powers
Test::More) duplicates STDOUT and STDERR. So any changes to them,
including changing their output disciplines, will not be seem by
Test::More.
@@ -1798,7 +1800,7 @@ as possible and before Test::More (or any other Test module) loads.
use Test::More;
A more direct work around is to change the filehandles used by
-Test::Builder.
+L<Test::Builder>.
my $builder = Test::More->builder;
binmode $builder->output, ":encoding(utf8)";
@@ -1808,14 +1810,14 @@ Test::Builder.
=item Overloaded objects
-String overloaded objects are compared B<as strings> (or in cmp_ok()'s
+String overloaded objects are compared B<as strings> (or in C<cmp_ok()>'s
case, strings or numbers as appropriate to the comparison op). This
prevents Test::More from piercing an object's interface allowing
better blackbox testing. So if a function starts returning overloaded
objects instead of bare strings your tests won't notice the
difference. This is good.
-However, it does mean that functions like is_deeply() cannot be used to
+However, it does mean that functions like C<is_deeply()> cannot be used to
test the internals of string overloaded objects. In this case I would
suggest L<Test::Deep> which contains more flexible testing functions for
complex data structures.
@@ -1823,7 +1825,7 @@ complex data structures.
=item Threads
-Test::More will only be aware of threads if "use threads" has been done
+Test::More will only be aware of threads if C<use threads> has been done
I<before> Test::More is loaded. This is ok:
use threads;
@@ -1841,9 +1843,9 @@ This may cause problems:
=head1 HISTORY
-This is a case of convergent evolution with Joshua Pritikin's Test
+This is a case of convergent evolution with Joshua Pritikin's L<Test>
module. I was largely unaware of its existence when I'd first
-written my own ok() routines. This module exists because I can't
+written my own C<ok()> routines. This module exists because I can't
figure out how to easily wedge test names into Test's interface (along
with a few other problems).
@@ -1856,18 +1858,29 @@ magic side-effects are kept to a minimum. WYSIWYG.
=head1 SEE ALSO
+=head2
+
+=head2 ALTERNATIVES
+
L<Test::Simple> if all this confuses you and you just want to write
some tests. You can upgrade to Test::More later (it's forward
compatible).
-L<Test::Harness> is the test runner and output interpreter for Perl.
-It's the thing that powers C<make test> and where the C<prove> utility
-comes from.
-
L<Test::Legacy> tests written with Test.pm, the original testing
module, do not play well with other testing libraries. Test::Legacy
emulates the Test.pm interface and does play well with others.
+=head2 TESTING FRAMEWORKS
+
+L<Fennec> The Fennec framework is a testers toolbox. It uses L<Test::Builder>
+under the hood. It brings enhancements for forking, defining state, and
+mocking. Fennec enhances several modules to work better together than they
+would if you loaded them individually on your own.
+
+L<Fennec::Declare> Provides enhanced (L<Devel::Declare>) syntax for Fennec.
+
+=head2 ADDITIONAL LIBRARIES
+
L<Test::Differences> for more ways to test complex data structures.
And it plays well with Test::More.
@@ -1877,8 +1890,22 @@ L<Test::Deep> gives you more powerful complex data structure testing.
L<Test::Inline> shows the idea of embedded testing.
+L<Mock::Quick> The ultimate mocking library. Easily spawn objects defined on
+the fly. Can also override, block, or reimplement packages as needed.
+
+L<Test::FixtureBuilder> Quickly define fixture data for unit tests.
+
+=head2 OTHER COMPONENTS
+
+L<Test::Harness> is the test runner and output interpreter for Perl.
+It's the thing that powers C<make test> and where the C<prove> utility
+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
@@ -1887,6 +1914,14 @@ from Joshua Pritikin's Test module and lots of help from Barrie
Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and
the perl-qa gang.
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
=head1 BUGS
@@ -1896,7 +1931,7 @@ See F<http://rt.cpan.org> to report and view bugs.
=head1 SOURCE
The source code repository for Test::More can be found at
-F<http://github.com/schwern/test-more/>.
+F<http://github.com/Test-More/test-more/>.
=head1 COPYRIGHT
diff --git a/Master/tlpkg/tlperl/lib/Test/Simple.pm b/Master/tlpkg/tlperl/lib/Test/Simple.pm
index 86143d63208..56457b407f8 100644
--- a/Master/tlpkg/tlperl/lib/Test/Simple.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Simple.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
-our $VERSION = '1.001002';
+our $VERSION = '1.001014';
$VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval)
use Test::Builder::Module 0.99;
@@ -26,7 +26,7 @@ Test::Simple - Basic utilities for writing tests.
=head1 DESCRIPTION
-** If you are unfamiliar with testing B<read Test::Tutorial> first! **
+** If you are unfamiliar with testing B<read L<Test::Tutorial> first!> **
This is an extremely simple, extremely basic module for writing tests
suitable for CPAN modules and other pursuits. If you wish to do more
@@ -35,7 +35,7 @@ for this one).
The basic unit of Perl testing is the ok. For each thing you want to
test your program will print out an "ok" or "not ok" to indicate pass
-or fail. You do this with the ok() function (see below).
+or fail. You do this with the C<ok()> function (see below).
The only other constraint is you must pre-declare how many tests you
plan to run. This is in case something goes horribly wrong during the
@@ -54,10 +54,10 @@ You must have a plan.
ok( $foo eq $bar, $name );
ok( $foo eq $bar );
-ok() is given an expression (in this case C<$foo eq $bar>). If it's
+C<ok()> is given an expression (in this case C<$foo eq $bar>). If it's
true, the test passed. If it's false, it didn't. That's about it.
-ok() prints out either "ok" or "not ok" along with a test number (it
+C<ok()> prints out either "ok" or "not ok" along with a test number (it
keeps track of that for you).
# This produces "ok 1 - Hell not yet frozen over" (or not ok)
@@ -84,7 +84,7 @@ sub ok ($;$) { ## no critic (Subroutines::ProhibitSubroutinePrototypes)
Test::Simple will start by printing number of tests run in the form
"1..M" (so "1..5" means you're going to run 5 tests). This strange
-format lets Test::Harness know how many tests you plan on running in
+format lets L<Test::Harness> know how many tests you plan on running in
case something goes horribly wrong.
If all your tests passed, Test::Simple will exit with zero (which is
@@ -185,13 +185,13 @@ he wasn't in Tony's kitchen). This is it.
=item L<Test::More>
More testing functions! Once you outgrow Test::Simple, look at
-Test::More. Test::Simple is 100% forward compatible with Test::More
-(i.e. you can just use Test::More instead of Test::Simple in your
+L<Test::More>. Test::Simple is 100% forward compatible with L<Test::More>
+(i.e. you can just use L<Test::More> instead of Test::Simple in your
programs and things will still work).
=back
-Look in Test::More's SEE ALSO for more testing modules.
+Look in L<Test::More>'s SEE ALSO for more testing modules.
=head1 AUTHORS
@@ -199,6 +199,13 @@ Look in Test::More's SEE ALSO for more testing modules.
Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
=head1 COPYRIGHT
diff --git a/Master/tlpkg/tlperl/lib/Test/Tester.pm b/Master/tlpkg/tlperl/lib/Test/Tester.pm
new file mode 100644
index 00000000000..a5f1ccfdbb8
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test/Tester.pm
@@ -0,0 +1,652 @@
+use strict;
+
+package Test::Tester;
+
+BEGIN
+{
+ if (*Test::Builder::new{CODE})
+ {
+ warn "You should load Test::Tester before Test::Builder (or anything that loads Test::Builder)"
+ }
+}
+
+use Test::Builder;
+use Test::Tester::CaptureRunner;
+use Test::Tester::Delegate;
+
+require Exporter;
+
+use vars qw( @ISA @EXPORT $VERSION );
+
+$VERSION = "0.114";
+@EXPORT = qw( run_tests check_tests check_test cmp_results show_space );
+@ISA = qw( Exporter );
+
+my $Test = Test::Builder->new;
+my $Capture = Test::Tester::Capture->new;
+my $Delegator = Test::Tester::Delegate->new;
+$Delegator->{Object} = $Test;
+
+my $runner = Test::Tester::CaptureRunner->new;
+
+my $want_space = $ENV{TESTTESTERSPACE};
+
+sub show_space
+{
+ $want_space = 1;
+}
+
+my $colour = '';
+my $reset = '';
+
+if (my $want_colour = $ENV{TESTTESTERCOLOUR} || $ENV{TESTTESTERCOLOUR})
+{
+ if (eval "require Term::ANSIColor")
+ {
+ my ($f, $b) = split(",", $want_colour);
+ $colour = Term::ANSIColor::color($f).Term::ANSIColor::color("on_$b");
+ $reset = Term::ANSIColor::color("reset");
+ }
+
+}
+
+sub new_new
+{
+ return $Delegator;
+}
+
+sub capture
+{
+ return Test::Tester::Capture->new;
+}
+
+sub fh
+{
+ # experiment with capturing output, I don't like it
+ $runner = Test::Tester::FHRunner->new;
+
+ return $Test;
+}
+
+sub find_run_tests
+{
+ my $d = 1;
+ my $found = 0;
+ while ((not $found) and (my ($sub) = (caller($d))[3]) )
+ {
+# print "$d: $sub\n";
+ $found = ($sub eq "Test::Tester::run_tests");
+ $d++;
+ }
+
+# die "Didn't find 'run_tests' in caller stack" unless $found;
+ return $d;
+}
+
+sub run_tests
+{
+ local($Delegator->{Object}) = $Capture;
+
+ $runner->run_tests(@_);
+
+ return ($runner->get_premature, $runner->get_results);
+}
+
+sub check_test
+{
+ my $test = shift;
+ my $expect = shift;
+ my $name = shift;
+ $name = "" unless defined($name);
+
+ @_ = ($test, [$expect], $name);
+ goto &check_tests;
+}
+
+sub check_tests
+{
+ my $test = shift;
+ my $expects = shift;
+ my $name = shift;
+ $name = "" unless defined($name);
+
+ my ($prem, @results) = eval { run_tests($test, $name) };
+
+ $Test->ok(! $@, "Test '$name' completed") || $Test->diag($@);
+ $Test->ok(! length($prem), "Test '$name' no premature diagnostication") ||
+ $Test->diag("Before any testing anything, your tests said\n$prem");
+
+ local $Test::Builder::Level = $Test::Builder::Level + 1;
+ cmp_results(\@results, $expects, $name);
+ return ($prem, @results);
+}
+
+sub cmp_field
+{
+ my ($result, $expect, $field, $desc) = @_;
+
+ if (defined $expect->{$field})
+ {
+ $Test->is_eq($result->{$field}, $expect->{$field},
+ "$desc compare $field");
+ }
+}
+
+sub cmp_result
+{
+ my ($result, $expect, $name) = @_;
+
+ my $sub_name = $result->{name};
+ $sub_name = "" unless defined($name);
+
+ my $desc = "subtest '$sub_name' of '$name'";
+
+ {
+ local $Test::Builder::Level = $Test::Builder::Level + 1;
+
+ cmp_field($result, $expect, "ok", $desc);
+
+ cmp_field($result, $expect, "actual_ok", $desc);
+
+ cmp_field($result, $expect, "type", $desc);
+
+ cmp_field($result, $expect, "reason", $desc);
+
+ cmp_field($result, $expect, "name", $desc);
+ }
+
+ # if we got no depth then default to 1
+ my $depth = 1;
+ if (exists $expect->{depth})
+ {
+ $depth = $expect->{depth};
+ }
+
+ # if depth was explicitly undef then don't test it
+ if (defined $depth)
+ {
+ $Test->is_eq($result->{depth}, $depth, "checking depth") ||
+ $Test->diag('You need to change $Test::Builder::Level');
+ }
+
+ if (defined(my $exp = $expect->{diag}))
+ {
+ # if there actually is some diag then put a \n on the end if it's not
+ # there already
+
+ $exp .= "\n" if (length($exp) and $exp !~ /\n$/);
+ if (not $Test->ok($result->{diag} eq $exp,
+ "subtest '$sub_name' of '$name' compare diag")
+ )
+ {
+ my $got = $result->{diag};
+ my $glen = length($got);
+ my $elen = length($exp);
+ for ($got, $exp)
+ {
+ my @lines = split("\n", $_);
+ $_ = join("\n", map {
+ if ($want_space)
+ {
+ $_ = $colour.escape($_).$reset;
+ }
+ else
+ {
+ "'$colour$_$reset'"
+ }
+ } @lines);
+ }
+
+ $Test->diag(<<EOM);
+Got diag ($glen bytes):
+$got
+Expected diag ($elen bytes):
+$exp
+EOM
+
+ }
+ }
+}
+
+sub escape
+{
+ my $str = shift;
+ my $res = '';
+ for my $char (split("", $str))
+ {
+ my $c = ord($char);
+ if(($c>32 and $c<125) or $c == 10)
+ {
+ $res .= $char;
+ }
+ else
+ {
+ $res .= sprintf('\x{%x}', $c)
+ }
+ }
+ return $res;
+}
+
+sub cmp_results
+{
+ my ($results, $expects, $name) = @_;
+
+ $Test->is_num(scalar @$results, scalar @$expects, "Test '$name' result count");
+
+ for (my $i = 0; $i < @$expects; $i++)
+ {
+ my $expect = $expects->[$i];
+ my $result = $results->[$i];
+
+ local $Test::Builder::Level = $Test::Builder::Level + 1;
+ cmp_result($result, $expect, $name);
+ }
+}
+
+######## nicked from Test::More
+sub plan {
+ my(@plan) = @_;
+
+ my $caller = caller;
+
+ $Test->exported_to($caller);
+
+ my @imports = ();
+ foreach my $idx (0..$#plan) {
+ if( $plan[$idx] eq 'import' ) {
+ my($tag, $imports) = splice @plan, $idx, 2;
+ @imports = @$imports;
+ last;
+ }
+ }
+
+ $Test->plan(@plan);
+
+ __PACKAGE__->_export_to_level(1, __PACKAGE__, @imports);
+}
+
+sub import {
+ my($class) = shift;
+ {
+ no warnings 'redefine';
+ *Test::Builder::new = \&new_new;
+ }
+ goto &plan;
+}
+
+sub _export_to_level
+{
+ my $pkg = shift;
+ my $level = shift;
+ (undef) = shift; # redundant arg
+ my $callpkg = caller($level);
+ $pkg->export($callpkg, @_);
+}
+
+
+############
+
+1;
+
+__END__
+
+=head1 NAME
+
+Test::Tester - Ease testing test modules built with Test::Builder
+
+=head1 SYNOPSIS
+
+ use Test::Tester tests => 6;
+
+ use Test::MyStyle;
+
+ check_test(
+ sub {
+ is_mystyle_eq("this", "that", "not eq");
+ },
+ {
+ ok => 0, # expect this to fail
+ name => "not eq",
+ diag => "Expected: 'this'\nGot: 'that'",
+ }
+ );
+
+or
+
+ use Test::Tester;
+
+ use Test::More tests => 3;
+ use Test::MyStyle;
+
+ my ($premature, @results) = run_tests(
+ sub {
+ is_database_alive("dbname");
+ }
+ );
+
+ # now use Test::More::like to check the diagnostic output
+
+ like($results[0]->{diag}, "/^Database ping took \\d+ seconds$"/, "diag");
+
+=head1 DESCRIPTION
+
+If you have written a test module based on Test::Builder then Test::Tester
+allows you to test it with the minimum of effort.
+
+=head1 HOW TO USE (THE EASY WAY)
+
+From version 0.08 Test::Tester no longer requires you to included anything
+special in your test modules. All you need to do is
+
+ use Test::Tester;
+
+in your test script B<before> any other Test::Builder based modules and away
+you go.
+
+Other modules based on Test::Builder can be used to help with the
+testing. In fact you can even use functions from your module to test
+other functions from the same module (while this is possible it is
+probably not a good idea, if your module has bugs, then
+using it to test itself may give the wrong answers).
+
+The easiest way to test is to do something like
+
+ check_test(
+ sub { is_mystyle_eq("this", "that", "not eq") },
+ {
+ ok => 0, # we expect the test to fail
+ name => "not eq",
+ diag => "Expected: 'this'\nGot: 'that'",
+ }
+ );
+
+this will execute the is_mystyle_eq test, capturing it's results and
+checking that they are what was expected.
+
+You may need to examine the test results in a more flexible way, for
+example, the diagnostic output may be quite long or complex or it may involve
+something that you cannot predict in advance like a timestamp. In this case
+you can get direct access to the test results:
+
+ my ($premature, @results) = run_tests(
+ sub {
+ is_database_alive("dbname");
+ }
+ );
+
+ like($result[0]->{diag}, "/^Database ping took \\d+ seconds$"/, "diag");
+
+
+We cannot predict how long the database ping will take so we use
+Test::More's like() test to check that the diagnostic string is of the right
+form.
+
+=head1 HOW TO USE (THE HARD WAY)
+
+I<This is here for backwards compatibility only>
+
+Make your module use the Test::Tester::Capture object instead of the
+Test::Builder one. How to do this depends on your module but assuming that
+your module holds the Test::Builder object in $Test and that all your test
+routines access it through $Test then providing a function something like this
+
+ sub set_builder
+ {
+ $Test = shift;
+ }
+
+should allow your test scripts to do
+
+ Test::YourModule::set_builder(Test::Tester->capture);
+
+and after that any tests inside your module will captured.
+
+=head1 TEST RESULTS
+
+The result of each test is captured in a hash. These hashes are the same as
+the hashes returned by Test::Builder->details but with a couple of extra
+fields.
+
+These fields are documented in L<Test::Builder> in the details() function
+
+=over 2
+
+=item ok
+
+Did the test pass?
+
+=item actual_ok
+
+Did the test really pass? That is, did the pass come from
+Test::Builder->ok() or did it pass because it was a TODO test?
+
+=item name
+
+The name supplied for the test.
+
+=item type
+
+What kind of test? Possibilities include, skip, todo etc. See
+L<Test::Builder> for more details.
+
+=item reason
+
+The reason for the skip, todo etc. See L<Test::Builder> for more details.
+
+=back
+
+These fields are exclusive to Test::Tester.
+
+=over 2
+
+=item diag
+
+Any diagnostics that were output for the test. This only includes
+diagnostics output B<after> the test result is declared.
+
+Note that Test::Builder ensures that any diagnostics end in a \n and
+it in earlier versions of Test::Tester it was essential that you have
+the final \n in your expected diagnostics. From version 0.10 onwards,
+Test::Tester will add the \n if you forgot it. It will not add a \n if
+you are expecting no diagnostics. See below for help tracking down
+hard to find space and tab related problems.
+
+=item depth
+
+This allows you to check that your test module is setting the correct value
+for $Test::Builder::Level and thus giving the correct file and line number
+when a test fails. It is calculated by looking at caller() and
+$Test::Builder::Level. It should count how many subroutines there are before
+jumping into the function you are testing. So for example in
+
+ run_tests( sub { my_test_function("a", "b") } );
+
+the depth should be 1 and in
+
+ sub deeper { my_test_function("a", "b") }
+
+ run_tests(sub { deeper() });
+
+depth should be 2, that is 1 for the sub {} and one for deeper(). This
+might seem a little complex but if your tests look like the simple
+examples in this doc then you don't need to worry as the depth will
+always be 1 and that's what Test::Tester expects by default.
+
+B<Note>: if you do not specify a value for depth in check_test() then it
+automatically compares it against 1, if you really want to skip the depth
+test then pass in undef.
+
+B<Note>: depth will not be correctly calculated for tests that run from a
+signal handler or an END block or anywhere else that hides the call stack.
+
+=back
+
+Some of Test::Tester's functions return arrays of these hashes, just
+like Test::Builder->details. That is, the hash for the first test will
+be array element 1 (not 0). Element 0 will not be a hash it will be a
+string which contains any diagnostic output that came before the first
+test. This should usually be empty, if it's not, it means something
+output diagnostics before any test results showed up.
+
+=head1 SPACES AND TABS
+
+Appearances can be deceptive, especially when it comes to emptiness. If you
+are scratching your head trying to work out why Test::Tester is saying that
+your diagnostics are wrong when they look perfectly right then the answer is
+probably whitespace. From version 0.10 on, Test::Tester surrounds the
+expected and got diag values with single quotes to make it easier to spot
+trailing whitesapce. So in this example
+
+ # Got diag (5 bytes):
+ # 'abcd '
+ # Expected diag (4 bytes):
+ # 'abcd'
+
+it is quite clear that there is a space at the end of the first string.
+Another way to solve this problem is to use colour and inverse video on an
+ANSI terminal, see below COLOUR below if you want this.
+
+Unfortunately this is sometimes not enough, neither colour nor quotes will
+help you with problems involving tabs, other non-printing characters and
+certain kinds of problems inherent in Unicode. To deal with this, you can
+switch Test::Tester into a mode whereby all "tricky" characters are shown as
+\{xx}. Tricky characters are those with ASCII code less than 33 or higher
+than 126. This makes the output more difficult to read but much easier to
+find subtle differences between strings. To turn on this mode either call
+show_space() in your test script or set the TESTTESTERSPACE environment
+variable to be a true value. The example above would then look like
+
+ # Got diag (5 bytes):
+ # abcd\x{20}
+ # Expected diag (4 bytes):
+ # abcd
+
+=head1 COLOUR
+
+If you prefer to use colour as a means of finding tricky whitespace
+characters then you can set the TESTTESTCOLOUR environment variable to a
+comma separated pair of colours, the first for the foreground, the second
+for the background. For example "white,red" will print white text on a red
+background. This requires the Term::ANSIColor module. You can specify any
+colour that would be acceptable to the Term::ANSIColor::color function.
+
+If you spell colour differently, that's no problem. The TESTTESTERCOLOR
+variable also works (if both are set then the British spelling wins out).
+
+=head1 EXPORTED FUNCTIONS
+
+=head3 ($premature, @results) = run_tests(\&test_sub)
+
+\&test_sub is a reference to a subroutine.
+
+run_tests runs the subroutine in $test_sub and captures the results of any
+tests inside it. You can run more than 1 test inside this subroutine if you
+like.
+
+$premature is a string containing any diagnostic output from before
+the first test.
+
+@results is an array of test result hashes.
+
+=head3 cmp_result(\%result, \%expect, $name)
+
+\%result is a ref to a test result hash.
+
+\%expect is a ref to a hash of expected values for the test result.
+
+cmp_result compares the result with the expected values. If any differences
+are found it outputs diagnostics. You may leave out any field from the
+expected result and cmp_result will not do the comparison of that field.
+
+=head3 cmp_results(\@results, \@expects, $name)
+
+\@results is a ref to an array of test results.
+
+\@expects is a ref to an array of hash refs.
+
+cmp_results checks that the results match the expected results and if any
+differences are found it outputs diagnostics. It first checks that the
+number of elements in \@results and \@expects is the same. Then it goes
+through each result checking it against the expected result as in
+cmp_result() above.
+
+=head3 ($premature, @results) = check_tests(\&test_sub, \@expects, $name)
+
+\&test_sub is a reference to a subroutine.
+
+\@expect is a ref to an array of hash refs which are expected test results.
+
+check_tests combines run_tests and cmp_tests into a single call. It also
+checks if the tests died at any stage.
+
+It returns the same values as run_tests, so you can further examine the test
+results if you need to.
+
+=head3 ($premature, @results) = check_test(\&test_sub, \%expect, $name)
+
+\&test_sub is a reference to a subroutine.
+
+\%expect is a ref to an hash of expected values for the test result.
+
+check_test is a wrapper around check_tests. It combines run_tests and
+cmp_tests into a single call, checking if the test died. It assumes
+that only a single test is run inside \&test_sub and include a test to
+make sure this is true.
+
+It returns the same values as run_tests, so you can further examine the test
+results if you need to.
+
+=head3 show_space()
+
+Turn on the escaping of characters as described in the SPACES AND TABS
+section.
+
+=head1 HOW IT WORKS
+
+Normally, a test module (let's call it Test:MyStyle) calls
+Test::Builder->new to get the Test::Builder object. Test::MyStyle calls
+methods on this object to record information about test results. When
+Test::Tester is loaded, it replaces Test::Builder's new() method with one
+which returns a Test::Tester::Delegate object. Most of the time this object
+behaves as the real Test::Builder object. Any methods that are called are
+delegated to the real Test::Builder object so everything works perfectly.
+However once we go into test mode, the method calls are no longer passed to
+the real Test::Builder object, instead they go to the Test::Tester::Capture
+object. This object seems exactly like the real Test::Builder object,
+except, instead of outputting test results and diagnostics, it just records
+all the information for later analysis.
+
+=head1 CAVEATS
+
+Support for calling Test::Builder->note is minimal. It's implemented
+as an empty stub, so modules that use it will not crash but the calls
+are not recorded for testing purposes like the others. Patches
+welcome.
+
+=head1 SEE ALSO
+
+L<Test::Builder> the source of testing goodness. L<Test::Builder::Tester>
+for an alternative approach to the problem tackled by Test::Tester -
+captures the strings output by Test::Builder. This means you cannot get
+separate access to the individual pieces of information and you must predict
+B<exactly> what your test will output.
+
+=head1 AUTHOR
+
+This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
+are based on other people's work.
+
+Plan handling lifted from Test::More. written by Michael G Schwern
+<schwern@pobox.com>.
+
+Test::Tester::Capture is a cut down and hacked up version of Test::Builder.
+Test::Builder was written by chromatic <chromatic@wgz.org> and Michael G
+Schwern <schwern@pobox.com>.
+
+=head1 LICENSE
+
+Under the same license as Perl itself
+
+See http://www.perl.com/perl/misc/Artistic.html
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test/Tester/Capture.pm b/Master/tlpkg/tlperl/lib/Test/Tester/Capture.pm
new file mode 100644
index 00000000000..00e12e6458e
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test/Tester/Capture.pm
@@ -0,0 +1,231 @@
+use strict;
+
+package Test::Tester::Capture;
+
+use Test::Builder;
+
+use vars qw( @ISA );
+@ISA = qw( Test::Builder );
+
+# Make Test::Tester::Capture thread-safe for ithreads.
+BEGIN {
+ use Config;
+ if( $] >= 5.008 && $Config{useithreads} ) {
+ require threads::shared;
+ threads::shared->import;
+ }
+ else {
+ *share = sub { 0 };
+ *lock = sub { 0 };
+ }
+}
+
+my $Curr_Test = 0; share($Curr_Test);
+my @Test_Results = (); share(@Test_Results);
+my $Prem_Diag = {diag => ""}; share($Curr_Test);
+
+sub new
+{
+ # Test::Tester::Capgture::new used to just return __PACKAGE__
+ # because Test::Builder::new enforced it's singleton nature by
+ # return __PACKAGE__. That has since changed, Test::Builder::new now
+ # returns a blessed has and around version 0.78, Test::Builder::todo
+ # started wanting to modify $self. To cope with this, we now return
+ # a blessed hash. This is a short-term hack, the correct thing to do
+ # is to detect which style of Test::Builder we're dealing with and
+ # act appropriately.
+
+ my $class = shift;
+ return bless {}, $class;
+}
+
+sub ok {
+ my($self, $test, $name) = @_;
+
+ # $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 $Curr_Test;
+ $Curr_Test++;
+
+ my($pack, $file, $line) = $self->caller;
+
+ my $todo = $self->todo($pack);
+
+ my $result = {};
+ share($result);
+
+ unless( $test ) {
+ @$result{ 'ok', 'actual_ok' } = ( ( $todo ? 1 : 0 ), 0 );
+ }
+ else {
+ @$result{ 'ok', 'actual_ok' } = ( 1, $test );
+ }
+
+ if( defined $name ) {
+ $name =~ s|#|\\#|g; # # in a name can confuse Test::Harness.
+ $result->{name} = $name;
+ }
+ else {
+ $result->{name} = '';
+ }
+
+ if( $todo ) {
+ my $what_todo = $todo;
+ $result->{reason} = $what_todo;
+ $result->{type} = 'todo';
+ }
+ else {
+ $result->{reason} = '';
+ $result->{type} = '';
+ }
+
+ $Test_Results[$Curr_Test-1] = $result;
+
+ unless( $test ) {
+ my $msg = $todo ? "Failed (TODO)" : "Failed";
+ $result->{fail_diag} = (" $msg test ($file at line $line)\n");
+ }
+
+ $result->{diag} = "";
+ $result->{_level} = $Test::Builder::Level;
+ $result->{_depth} = Test::Tester::find_run_tests();
+
+ return $test ? 1 : 0;
+}
+
+sub skip {
+ my($self, $why) = @_;
+ $why ||= '';
+
+ lock($Curr_Test);
+ $Curr_Test++;
+
+ my %result;
+ share(%result);
+ %result = (
+ 'ok' => 1,
+ actual_ok => 1,
+ name => '',
+ type => 'skip',
+ reason => $why,
+ diag => "",
+ _level => $Test::Builder::Level,
+ _depth => Test::Tester::find_run_tests(),
+ );
+ $Test_Results[$Curr_Test-1] = \%result;
+
+ return 1;
+}
+
+sub todo_skip {
+ my($self, $why) = @_;
+ $why ||= '';
+
+ lock($Curr_Test);
+ $Curr_Test++;
+
+ my %result;
+ share(%result);
+ %result = (
+ 'ok' => 1,
+ actual_ok => 0,
+ name => '',
+ type => 'todo_skip',
+ reason => $why,
+ diag => "",
+ _level => $Test::Builder::Level,
+ _depth => Test::Tester::find_run_tests(),
+ );
+
+ $Test_Results[$Curr_Test-1] = \%result;
+
+ return 1;
+}
+
+sub diag {
+ my($self, @msgs) = @_;
+ return unless @msgs;
+
+ # Prevent printing headers when compiling (i.e. -c)
+ return if $^C;
+
+ # Escape each line with a #.
+ foreach (@msgs) {
+ $_ = 'undef' unless defined;
+ }
+
+ push @msgs, "\n" unless $msgs[-1] =~ /\n\Z/;
+
+ my $result = $Curr_Test ? $Test_Results[$Curr_Test - 1] : $Prem_Diag;
+
+ $result->{diag} .= join("", @msgs);
+
+ return 0;
+}
+
+sub details {
+ return @Test_Results;
+}
+
+
+# Stub. Feel free to send me a patch to implement this.
+sub note {
+}
+
+sub explain {
+ return Test::Builder::explain(@_);
+}
+
+sub premature
+{
+ return $Prem_Diag->{diag};
+}
+
+sub current_test
+{
+ if (@_ > 1)
+ {
+ die "Don't try to change the test number!";
+ }
+ else
+ {
+ return $Curr_Test;
+ }
+}
+
+sub reset
+{
+ $Curr_Test = 0;
+ @Test_Results = ();
+ $Prem_Diag = {diag => ""};
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Test::Tester::Capture - Help testing test modules built with Test::Builder
+
+=head1 DESCRIPTION
+
+This is a subclass of Test::Builder that overrides many of the methods so
+that they don't output anything. It also keeps track of it's own set of test
+results so that you can use Test::Builder based modules to perform tests on
+other Test::Builder based modules.
+
+=head1 AUTHOR
+
+Most of the code here was lifted straight from Test::Builder and then had
+chunks removed by Fergal Daly <fergal@esatclear.ie>.
+
+=head1 LICENSE
+
+Under the same license as Perl itself
+
+See http://www.perl.com/perl/misc/Artistic.html
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm b/Master/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm
new file mode 100644
index 00000000000..f14a4c145aa
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm
@@ -0,0 +1,76 @@
+# $Header: /home/fergal/my/cvs/Test-Tester/lib/Test/Tester/CaptureRunner.pm,v 1.3 2003/03/05 01:07:55 fergal Exp $
+use strict;
+
+package Test::Tester::CaptureRunner;
+
+use Test::Tester::Capture;
+require Exporter;
+
+sub new
+{
+ my $pkg = shift;
+ my $self = bless {}, $pkg;
+ return $self;
+}
+
+sub run_tests
+{
+ my $self = shift;
+
+ my $test = shift;
+
+ capture()->reset;
+
+ $self->{StartLevel} = $Test::Builder::Level;
+ &$test();
+}
+
+sub get_results
+{
+ my $self = shift;
+ my @results = capture()->details;
+
+ my $start = $self->{StartLevel};
+ foreach my $res (@results)
+ {
+ next if defined $res->{depth};
+ my $depth = $res->{_depth} - $res->{_level} - $start - 3;
+# print "my $depth = $res->{_depth} - $res->{_level} - $start - 1\n";
+ $res->{depth} = $depth;
+ }
+
+ return @results;
+}
+
+sub get_premature
+{
+ return capture()->premature;
+}
+
+sub capture
+{
+ return Test::Tester::Capture->new;
+}
+
+__END__
+
+=head1 NAME
+
+Test::Tester::CaptureRunner - Help testing test modules built with Test::Builder
+
+=head1 DESCRIPTION
+
+This stuff if needed to allow me to play with other ways of monitoring the
+test results.
+
+=head1 AUTHOR
+
+Copyright 2003 by Fergal Daly <fergal@esatclear.ie>.
+
+=head1 LICENSE
+
+Under the same license as Perl itself
+
+See http://www.perl.com/perl/misc/Artistic.html
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test/Tester/Delegate.pm b/Master/tlpkg/tlperl/lib/Test/Tester/Delegate.pm
new file mode 100644
index 00000000000..7ddb921cdfc
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test/Tester/Delegate.pm
@@ -0,0 +1,32 @@
+use strict;
+use warnings;
+
+package Test::Tester::Delegate;
+
+use vars '$AUTOLOAD';
+
+sub new
+{
+ my $pkg = shift;
+
+ my $obj = shift;
+ my $self = bless {}, $pkg;
+
+ return $self;
+}
+
+sub AUTOLOAD
+{
+ my ($sub) = $AUTOLOAD =~ /.*::(.*?)$/;
+
+ return if $sub eq "DESTROY";
+
+ my $obj = $_[0]->{Object};
+
+ my $ref = $obj->can($sub);
+ shift(@_);
+ unshift(@_, $obj);
+ goto &$ref;
+}
+
+1;
diff --git a/Master/tlpkg/tlperl/lib/Test/Tutorial.pod b/Master/tlpkg/tlperl/lib/Test/Tutorial.pod
index b89fd07ca5d..a71a9c1b3f2 100644
--- a/Master/tlpkg/tlperl/lib/Test/Tutorial.pod
+++ b/Master/tlpkg/tlperl/lib/Test/Tutorial.pod
@@ -90,7 +90,7 @@ along. [2]
This is the hardest part of testing, where do you start? People often get
overwhelmed at the apparent enormity of the task of testing a whole module.
-The best place to start is at the beginning. C<Date::ICal> is an
+The best place to start is at the beginning. L<Date::ICal> is an
object-oriented module, and that means you start by making an object. Test
C<new()>.
@@ -176,18 +176,18 @@ Run that and you get:
ok 8 - year()
# Looks like you failed 1 tests of 8.
-Whoops, a failure! [4] C<Test::Simple> helpfully lets us know on what line the
+Whoops, a failure! [4] L<Test::Simple> helpfully lets us know on what line the
failure occurred, but not much else. We were supposed to get 17, but we
didn't. What did we get?? Dunno. You could re-run the test in the debugger
or throw in some print statements to find out.
-Instead, switch from L<Test::Simple> to L<Test::More>. C<Test::More>
-does everything C<Test::Simple> does, and more! In fact, C<Test::More> does
-things I<exactly> the way C<Test::Simple> does. You can literally swap
-C<Test::Simple> out and put C<Test::More> in its place. That's just what
+Instead, switch from L<Test::Simple> to L<Test::More>. L<Test::More>
+does everything L<Test::Simple> does, and more! In fact, L<Test::More> does
+things I<exactly> the way L<Test::Simple> does. You can literally swap
+L<Test::Simple> out and put L<Test::More> in its place. That's just what
we're going to do.
-C<Test::More> does more than C<Test::Simple>. The most important difference at
+L<Test::More> does more than L<Test::Simple>. The most important difference at
this point is it provides more informative ways to say "ok". Although you can
write almost any test with a generic C<ok()>, it can't tell you what went
wrong. The C<is()> function lets us declare that something is supposed to be
@@ -210,7 +210,7 @@ the same as something else:
is( $ical->month, 10, ' month()' );
is( $ical->year, 1964, ' year()' );
-"Is C<$ical-E<gt>sec> 47?" "Is C<$ical-E<gt>min> 12?" With C<is()> in place,
+"Is C<< $ical->sec >> 47?" "Is C<< $ical->min >> 12?" With C<is()> in place,
you get more information:
1..8
@@ -227,7 +227,7 @@ you get more information:
ok 8 - year()
# Looks like you failed 1 tests of 8.
-Aha. C<$ical-E<gt>day> returned 16, but we expected 17. A
+Aha. C<< $ical->day >> returned 16, but we expected 17. A
quick check shows that the code is working fine, we made a mistake
when writing the tests. Change it to:
@@ -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 C<use Test::More tests =E<gt> ##> line. That can rapidly get
+the L<< 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()>
@@ -324,10 +324,10 @@ running some tests, don't know how many. [6]
done_testing(); # reached the end safely
-If you don't specify a plan, C<Test::More> expects to see C<done_testing()>
+If you don't specify a plan, L<Test::More> expects to see C<done_testing()>
before your program exits. It will warn you if you forget it. You can give
C<done_testing()> an optional number of tests you expected to run, and if the
-number ran differs, C<Test::More> will give you another kind of warning.
+number ran differs, L<Test::More> will give you another kind of warning.
=head2 Informative names
@@ -417,7 +417,7 @@ the test.
A little bit of magic happens here. When running on anything but MacOS, all
the tests run normally. But when on MacOS, C<skip()> causes the entire
contents of the SKIP block to be jumped over. It never runs. Instead,
-C<skip()> prints special output that tells C<Test::Harness> that the tests have
+C<skip()> prints special output that tells L<Test::Harness> that the tests have
been skipped.
1..7
@@ -446,7 +446,7 @@ The tests are wholly and completely skipped. [10] This will work.
=head2 Todo tests
-While thumbing through the C<Date::ICal> man page, I came across this:
+While thumbing through the L<Date::ICal> man page, I came across this:
ical
@@ -497,12 +497,12 @@ Now when you run, it's a little different:
# got: '20010822T201551Z'
# expected: '20201231Z'
-C<Test::More> doesn't say "Looks like you failed 1 tests of 1". That '#
-TODO' tells C<Test::Harness> "this is supposed to fail" and it treats a
+L<Test::More> doesn't say "Looks like you failed 1 tests of 1". That '#
+TODO' tells L<Test::Harness> "this is supposed to fail" and it treats a
failure as a successful test. You can write tests even before
you've fixed the underlying code.
-If a TODO test passes, C<Test::Harness> will report it "UNEXPECTEDLY
+If a TODO test passes, L<Test::Harness> will report it "UNEXPECTEDLY
SUCCEEDED". When that happens, remove the TODO block with C<local $TODO> and
turn it into a real test.
@@ -517,7 +517,7 @@ in mind, it's very important to ensure your module works under taint
mode.
It's very simple to have your tests run under taint mode. Just throw
-a C<-T> into the C<#!> line. C<Test::Harness> will read the switches
+a C<-T> into the C<#!> line. L<Test::Harness> will read the switches
in C<#!> and use them to run your tests.
#!/usr/bin/perl -Tw
@@ -558,7 +558,7 @@ We'll get to testing the contents of lists later.
But what happens if your test program dies halfway through?! Since we
didn't say how many tests we're going to run, how can we know it
-failed? No problem, C<Test::More> employs some magic to catch that death
+failed? No problem, L<Test::More> employs some magic to catch that death
and turn the test into a failure, even if every test passed up to that
point.
@@ -594,6 +594,14 @@ bugs!
Michael G Schwern E<lt>schwern@pobox.comE<gt> and the perl-qa dancers!
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
=head1 COPYRIGHT
Copyright 2001 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
diff --git a/Master/tlpkg/tlperl/lib/Test/use/ok.pm b/Master/tlpkg/tlperl/lib/Test/use/ok.pm
new file mode 100644
index 00000000000..87d7cc52a55
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test/use/ok.pm
@@ -0,0 +1,62 @@
+package Test::use::ok;
+use 5.005;
+$Test::use::ok::VERSION = '0.16';
+
+__END__
+
+=head1 NAME
+
+Test::use::ok - Alternative to Test::More::use_ok
+
+=head1 SYNOPSIS
+
+ use ok 'Some::Module';
+
+=head1 DESCRIPTION
+
+According to the B<Test::More> documentation, it is recommended to run
+C<use_ok()> inside a C<BEGIN> block, so functions are exported at
+compile-time and prototypes are properly honored.
+
+That is, instead of writing this:
+
+ use_ok( 'Some::Module' );
+ use_ok( 'Other::Module' );
+
+One should write this:
+
+ BEGIN { use_ok( 'Some::Module' ); }
+ BEGIN { use_ok( 'Other::Module' ); }
+
+However, people often either forget to add C<BEGIN>, or mistakenly group
+C<use_ok> with other tests in a single C<BEGIN> block, which can create subtle
+differences in execution order.
+
+With this module, simply change all C<use_ok> in test scripts to C<use ok>,
+and they will be executed at C<BEGIN> time. The explicit space after C<use>
+makes it clear that this is a single compile-time action.
+
+=head1 SEE ALSO
+
+L<Test::More>
+
+=head1 MAINTAINER
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=encoding utf8
+
+=head1 CC0 1.0 Universal
+
+To the extent possible under law, å”é³³ has waived all copyright and related
+or neighboring rights to L<Test-use-ok>.
+
+This work is published from Taiwan.
+
+L<http://creativecommons.org/publicdomain/zero/1.0>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Text/Balanced.pm b/Master/tlpkg/tlperl/lib/Text/Balanced.pm
index 07d956735c2..f1a5780a0b9 100644
--- a/Master/tlpkg/tlperl/lib/Text/Balanced.pm
+++ b/Master/tlpkg/tlperl/lib/Text/Balanced.pm
@@ -10,7 +10,7 @@ use SelfLoader;
use vars qw { $VERSION @ISA %EXPORT_TAGS };
BEGIN {
- $VERSION = '2.02';
+ $VERSION = '2.03';
@ISA = 'Exporter';
%EXPORT_TAGS = (
ALL => [ qw{
diff --git a/Master/tlpkg/tlperl/lib/Text/ParseWords.pm b/Master/tlpkg/tlperl/lib/Text/ParseWords.pm
index 8771d436479..87f9c70a216 100644
--- a/Master/tlpkg/tlperl/lib/Text/ParseWords.pm
+++ b/Master/tlpkg/tlperl/lib/Text/ParseWords.pm
@@ -2,7 +2,7 @@ package Text::ParseWords;
use strict;
require 5.006;
-our $VERSION = "3.29";
+our $VERSION = "3.30";
use Exporter;
@@ -202,8 +202,8 @@ one line you can call &parse_line() directly and save a function
call.
The $keep argument is a boolean flag. If true, then the tokens are
-split on the specified delimiter, but all other characters (quotes,
-backslashes, etc.) are kept in the tokens. If $keep is false then the
+split on the specified delimiter, but all other characters (including
+quotes and backslashes) are kept in the tokens. If $keep is false then the
&*quotewords() functions remove all quotes and backslashes that are
not themselves backslash-escaped or inside of single quotes (i.e.,
&quotewords() tries to interpret these characters just like the Bourne
@@ -243,27 +243,27 @@ demonstrating:
=over 4
-=item 0
+=item 0Z<>
a simple word
-=item 1
+=item 1Z<>
multiple spaces are skipped because of our $delim
-=item 2
+=item 2Z<>
use of quotes to include a space in a word
-=item 3
+=item 3Z<>
use of a backslash to include a space in a word
-=item 4
+=item 4Z<>
use of a backslash to remove the special meaning of a double-quote
-=item 5
+=item 5Z<>
another simple word (note the lack of effect of the
backslashed double-quote)
@@ -295,4 +295,9 @@ for assuring me that a &nested_quotewords() would be useful, and to
Jeff Friedl <jfriedl@yahoo-inc.com> for telling me not to worry about
error-checking (sort of-- you had to be there).
+=head1 COPYRIGHT AND LICENSE
+
+This library is free software; you may redistribute and/or modify it
+under the same terms as Perl itself.
+
=cut
diff --git a/Master/tlpkg/tlperl/lib/Tie/File.pm b/Master/tlpkg/tlperl/lib/Tie/File.pm
index 16426c0d49e..df8a197867f 100644
--- a/Master/tlpkg/tlperl/lib/Tie/File.pm
+++ b/Master/tlpkg/tlperl/lib/Tie/File.pm
@@ -7,7 +7,7 @@ use Fcntl 'O_CREAT', 'O_RDWR', 'LOCK_EX', 'LOCK_SH', 'O_WRONLY', 'O_RDONLY';
sub O_ACCMODE () { O_RDONLY | O_RDWR | O_WRONLY }
-$VERSION = "1.00";
+$VERSION = "1.01";
my $DEFAULT_MEMORY_SIZE = 1<<21; # 2 megabytes
my $DEFAULT_AUTODEFER_THRESHHOLD = 3; # 3 records
my $DEFAULT_AUTODEFER_FILELEN_THRESHHOLD = 65536; # 16 disk blocksful
@@ -439,7 +439,8 @@ sub _splice {
if ($pos < 0) {
$pos += $oldsize;
if ($pos < 0) {
- croak "Modification of non-creatable array value attempted, subscript $oldpos";
+ croak "Modification of non-creatable array value attempted, " .
+ "subscript $oldpos";
}
}
@@ -676,7 +677,7 @@ sub _upcopy {
} elsif ($dpos == $spos) {
return;
}
-
+
while (! defined ($len) || $len > 0) {
my $readsize = ! defined($len) ? $blocksize
: $len > $blocksize ? $blocksize
@@ -885,7 +886,7 @@ sub _fill_offsets {
my $fh = $self->{fh};
local *OFF = $self->{offsets};
-
+
$self->_seek(-1); # tricky -- see comment at _seek
# Tels says that inlining read_record() would make this loop
@@ -1014,7 +1015,7 @@ sub flock {
my $fh = $self->{fh};
$op = LOCK_EX unless defined $op;
my $locked = flock $fh, $op;
-
+
if ($locked && ($op & (LOCK_EX | LOCK_SH))) {
# If you're locking the file, then presumably it's because
# there might have been a write access by another process.
@@ -1049,7 +1050,7 @@ sub offset {
# If it's still undefined, there is no such record, so return 'undef'
return unless defined $o;
}
-
+
$self->{offsets}[$n];
}
@@ -1342,7 +1343,8 @@ sub _check_integrity {
}
if (! defined $offset && $self->{eof}) {
$good = 0;
- _ci_warn("The offset table was marked complete, but it is missing element $.");
+ _ci_warn("The offset table was marked complete, but it is missing " .
+ "element $.");
}
}
if (@{$self->{offsets}} > $.+1) {
@@ -1398,14 +1400,16 @@ sub _check_integrity {
# Total size of deferbuffer should not exceed the specified limit
if ($deferred_s > $self->{dw_size}) {
- _ci_warn("buffer size is $self->{deferred_s} which exceeds the limit of $self->{dw_size}");
+ _ci_warn("buffer size is $self->{deferred_s} which exceeds the limit " .
+ "of $self->{dw_size}");
$good = 0;
}
# Total size of cached data should not exceed the specified limit
if ($deferred_s + $cached > $self->{memory}) {
my $total = $deferred_s + $cached;
- _ci_warn("total stored data size is $total which exceeds the limit of $self->{memory}");
+ _ci_warn("total stored data size is $total which exceeds the limit " .
+ "of $self->{memory}");
$good = 0;
}
@@ -2490,7 +2494,8 @@ C<rollback>, but it isn't, so don't.
=item *
There is a large memory overhead for each record offset and for each
-cache entry: about 310 bytes per cached data record, and about 21 bytes per offset table entry.
+cache entry: about 310 bytes per cached data record, and about 21 bytes
+per offset table entry.
The per-record overhead will limit the maximum number of records you
can access per file. Note that I<accessing> the length of the array
diff --git a/Master/tlpkg/tlperl/lib/Tie/Registry.pm b/Master/tlpkg/tlperl/lib/Tie/Registry.pm
deleted file mode 100644
index 2ded338d342..00000000000
--- a/Master/tlpkg/tlperl/lib/Tie/Registry.pm
+++ /dev/null
@@ -1,45 +0,0 @@
-package Tie::Registry;
-
-# Tie/Registry.pm -- Provides backward compatibility for Win32::TieRegistry
-# that was called Tie::Registry prior to version 0.20.
-# by Tye McQueen, tye@metronet.com, see http://www.metronet.com/~tye/.
-
-use strict;
-use Carp;
-
-use vars qw( $VERSION @ISA );
-BEGIN {
- require Win32::TieRegistry;
- $VERSION = '0.15';
- @ISA = qw{Win32::TieRegistry};
-}
-
-sub import {
- my $pkg = shift;
- Win32::TieRegistry->import( ExportLevel => 1, SplitMultis => 0, @_ );
-}
-
-1;
-
-__END__
-
-=pod
-
-=head1 NAME
-
-Tie::Registry - Legacy interface to Win32::TieRegistry (DEPRECATED)
-
-=head1 DESCRIPTION
-
-This module provides backward compatibility for L<Win32::TieRegistry>
-that was called Tie::Registry prior to version 0.20.
-
-=head1 AUTHOR
-
-Tye McQueen E<lt>tye@metronet.comE<gt>
-
-=head1 COPYRIGHT
-
-Copyright 1999 Tye McQueen.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tie/Watch.pm b/Master/tlpkg/tlperl/lib/Tie/Watch.pm
deleted file mode 100644
index c1f551ab5c2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tie/Watch.pm
+++ /dev/null
@@ -1,563 +0,0 @@
-$Tie::Watch::VERSION = '1.302';
-
-package Tie::Watch;
-
-=head1 NAME
-
- Tie::Watch - place watchpoints on Perl variables.
-
-=head1 SYNOPSIS
-
- use Tie::Watch;
-
- $watch = Tie::Watch->new(
- -variable => \$frog,
- -debug => 1,
- -shadow => 0,
- -fetch => [\&fetch, 'arg1', 'arg2', ..., 'argn'],
- -store => \&store,
- -destroy => sub {print "Final value=$frog.\n"},
- }
- %vinfo = $watch->Info;
- $args = $watch->Args(-fetch);
- $val = $watch->Fetch;
- print "val=", $watch->Say($val), ".\n";
- $watch->Store('Hello');
- $watch->Unwatch;
-
-=head1 DESCRIPTION
-
-This class module binds one or more subroutines of your devising to a
-Perl variable. All variables can have B<FETCH>, B<STORE> and
-B<DESTROY> callbacks. Additionally, arrays can define B<CLEAR>,
-B<DELETE>, B<EXISTS>, B<EXTEND>, B<FETCHSIZE>, B<POP>, B<PUSH>,
-B<SHIFT>, B<SPLICE>, B<STORESIZE> and B<UNSHIFT> callbacks, and hashes
-can define B<CLEAR>, B<DELETE>, B<EXISTS>, B<FIRSTKEY> and B<NEXTKEY>
-callbacks. If these term are unfamiliar to you, I I<really> suggest
-you read L<perltie>.
-
-With Tie::Watch you can:
-
- . alter a variable's value
- . prevent a variable's value from being changed
- . invoke a Perl/Tk callback when a variable changes
- . trace references to a variable
-
-Callback format is patterned after the Perl/Tk scheme: supply either a
-code reference, or, supply an array reference and pass the callback
-code reference in the first element of the array, followed by callback
-arguments. (See examples in the Synopsis, above.)
-
-Tie::Watch provides default callbacks for any that you fail to
-specify. Other than negatively impacting performance, they perform
-the standard action that you'd expect, so the variable behaves
-"normally". Once you override a default callback, perhaps to insert
-debug code like print statements, your callback normally finishes by
-calling the underlying (overridden) method. But you don't have to!
-
-To map a tied method name to a default callback name simply lowercase
-the tied method name and uppercase its first character. So FETCH
-becomes Fetch, NEXTKEY becomes Nextkey, etcetera.
-
-Here are two callbacks for a scalar. The B<FETCH> (read) callback does
-nothing other than illustrate the fact that it returns the value to
-assign the variable. The B<STORE> (write) callback uppercases the
-variable and returns it. In all cases the callback I<must> return the
-correct read or write value - typically, it does this by invoking the
-underlying method.
-
- my $fetch_scalar = sub {
- my($self) = @_;
- $self->Fetch;
- };
-
- my $store_scalar = sub {
- my($self, $new_val) = @_;
- $self->Store(uc $new_val);
- };
-
-Here are B<FETCH> and B<STORE> callbacks for either an array or hash.
-They do essentially the same thing as the scalar callbacks, but
-provide a little more information.
-
- my $fetch = sub {
- my($self, $key) = @_;
- my $val = $self->Fetch($key);
- print "In fetch callback, key=$key, val=", $self->Say($val);
- my $args = $self->Args(-fetch);
- print ", args=('", join("', '", @$args), "')" if $args;
- print ".\n";
- $val;
- };
-
- my $store = sub {
- my($self, $key, $new_val) = @_;
- my $val = $self->Fetch($key);
- $new_val = uc $new_val;
- $self->Store($key, $new_val);
- print "In store callback, key=$key, val=", $self->Say($val),
- ", new_val=", $self->Say($new_val);
- my $args = $self->Args(-store);
- print ", args=('", join("', '", @$args), "')" if $args;
- print ".\n";
- $new_val;
- };
-
-In all cases, the first parameter is a reference to the Watch object,
-used to invoke the following class methods.
-
-=head1 METHODS
-
-=over 4
-
-=item $watch = Tie::Watch->new(-options => values);
-
-The watchpoint constructor method that accepts option/value pairs to
-create and configure the Watch object. The only required option is
-B<-variable>.
-
-B<-variable> is a I<reference> to a scalar, array or hash variable.
-
-B<-debug> (default 0) is 1 to activate debug print statements internal
-to Tie::Watch.
-
-B<-shadow> (default 1) is 0 to disable array and hash shadowing. To
-prevent infinite recursion Tie::Watch maintains parallel variables for
-arrays and hashes. When the watchpoint is created the parallel shadow
-variable is initialized with the watched variable's contents, and when
-the watchpoint is deleted the shadow variable is copied to the original
-variable. Thus, changes made during the watch process are not lost.
-Shadowing is on my default. If you disable shadowing any changes made
-to an array or hash are lost when the watchpoint is deleted.
-
-Specify any of the following relevant callback parameters, in the
-format described above: B<-fetch>, B<-store>, B<-destroy>.
-Additionally for arrays: B<-clear>, B<-extend>, B<-fetchsize>,
-B<-pop>, B<-push>, B<-shift>, B<-splice>, B<-storesize> and
-B<-unshift>. Additionally for hashes: B<-clear>, B<-delete>,
-B<-exists>, B<-firstkey> and B<-nextkey>.
-
-=item $args = $watch->Args(-fetch);
-
-Returns a reference to a list of arguments for the specified callback,
-or undefined if none.
-
-=item $watch->Fetch(); $watch->Fetch($key);
-
-Returns a variable's current value. $key is required for an array or
-hash.
-
-=item %vinfo = $watch->Info();
-
-Returns a hash detailing the internals of the Watch object, with these
-keys:
-
- %vinfo = {
- -variable => SCALAR(0x200737f8)
- -debug => '0'
- -shadow => '1'
- -value => 'HELLO SCALAR'
- -destroy => ARRAY(0x200f86cc)
- -fetch => ARRAY(0x200f8558)
- -store => ARRAY(0x200f85a0)
- -legible => above data formatted as a list of string, for printing
- }
-
-For array and hash Watch objects, the B<-value> key is replaced with a
-B<-ptr> key which is a reference to the parallel array or hash.
-Additionally, for an array or hash, there are key/value pairs for
-all the variable specific callbacks.
-
-=item $watch->Say($val);
-
-Used mainly for debugging, it returns $val in quotes if required, or
-the string "undefined" for undefined values.
-
-=item $watch->Store($new_val); $watch->Store($key, $new_val);
-
-Store a variable's new value. $key is required for an array or hash.
-
-=item $watch->Unwatch();
-
-Stop watching the variable.
-
-=back
-
-=head1 EFFICIENCY CONSIDERATIONS
-
-If you can live using the class methods provided, please do so. You
-can meddle with the object hash directly and improved watch
-performance, at the risk of your code breaking in the future.
-
-=head1 AUTHOR
-
-Stephen O. Lidie
-
-=head1 HISTORY
-
- lusol@Lehigh.EDU, LUCC, 96/05/30
- . Original version 0.92 release, based on the Trace module from Hans Mulder,
- and ideas from Tim Bunce.
-
- lusol@Lehigh.EDU, LUCC, 96/12/25
- . Version 0.96, release two inner references detected by Perl 5.004.
-
- lusol@Lehigh.EDU, LUCC, 97/01/11
- . Version 0.97, fix Makefile.PL and MANIFEST (thanks Andreas Koenig).
- Make sure test.pl doesn't fail if Tk isn't installed.
-
- Stephen.O.Lidie@Lehigh.EDU, Lehigh University Computing Center, 97/10/03
- . Version 0.98, implement -shadow option for arrays and hashes.
-
- Stephen.O.Lidie@Lehigh.EDU, Lehigh University Computing Center, 98/02/11
- . Version 0.99, finally, with Perl 5.004_57, we can completely watch arrays.
- With tied array support this module is essentially complete, so its been
- optimized for speed at the expense of clarity - sorry about that. The
- Delete() method has been renamed Unwatch() because it conflicts with the
- builtin delete().
-
- Stephen.O.Lidie@Lehigh.EDU, Lehigh University Computing Center, 99/04/04
- . Version 1.0, for Perl 5.005_03, update Makefile.PL for ActiveState, and
- add two examples (one for Perl/Tk).
-
- sol0@lehigh.edu, Lehigh University Computing Center, 2003/06/07
- . Version 1.1, for Perl 5.8, can trace a reference now, patch from Slaven
- Rezic.
-
- sol0@lehigh.edu, Lehigh University Computing Center, 2005/05/17
- . Version 1.2, for Perl 5.8, per Rob Seegel's suggestion, support array
- DELETE and EXISTS.
-
-=head1 COPYRIGHT
-
-Copyright (C) 1996 - 2005 Stephen O. Lidie. All rights reserved.
-
-This program is free software; you can redistribute it and/or modify it under
-the same terms as Perl itself.
-
-=cut
-
-use 5.004_57;;
-use Carp;
-use strict;
-use subs qw/normalize_callbacks/;
-use vars qw/@array_callbacks @hash_callbacks @scalar_callbacks/;
-
-@array_callbacks = qw/-clear -delete -destroy -exists -extend -fetch
- -fetchsize -pop -push -shift -splice -store
- -storesize -unshift/;
-@hash_callbacks = qw/-clear -delete -destroy -exists -fetch -firstkey
- -nextkey -store/;
-@scalar_callbacks = qw/-destroy -fetch -store/;
-
-sub new {
-
- # Watch constructor. The *real* constructor is Tie::Watch->base_watch(),
- # invoked by methods in other Watch packages, depending upon the variable's
- # type. Here we supply defaulted parameter values and then verify them,
- # normalize all callbacks and bind the variable to the appropriate package.
-
- my($class, %args) = @_;
- my $version = $Tie::Watch::VERSION;
- my (%arg_defaults) = (-debug => 0, -shadow => 1);
- my $variable = $args{-variable};
- croak "Tie::Watch::new(): -variable is required." if not defined $variable;
-
- my($type, $watch_obj) = (ref $variable, undef);
- if ($type =~ /(SCALAR|REF)/) {
- @arg_defaults{@scalar_callbacks} = (
- [\&Tie::Watch::Scalar::Destroy], [\&Tie::Watch::Scalar::Fetch],
- [\&Tie::Watch::Scalar::Store]);
- } elsif ($type =~ /ARRAY/) {
- @arg_defaults{@array_callbacks} = (
- [\&Tie::Watch::Array::Clear], [\&Tie::Watch::Array::Delete],
- [\&Tie::Watch::Array::Destroy], [\&Tie::Watch::Array::Exists],
- [\&Tie::Watch::Array::Extend], [\&Tie::Watch::Array::Fetch],
- [\&Tie::Watch::Array::Fetchsize], [\&Tie::Watch::Array::Pop],
- [\&Tie::Watch::Array::Push], [\&Tie::Watch::Array::Shift],
- [\&Tie::Watch::Array::Splice], [\&Tie::Watch::Array::Store],
- [\&Tie::Watch::Array::Storesize], [\&Tie::Watch::Array::Unshift]);
- } elsif ($type =~ /HASH/) {
- @arg_defaults{@hash_callbacks} = (
- [\&Tie::Watch::Hash::Clear], [\&Tie::Watch::Hash::Delete],
- [\&Tie::Watch::Hash::Destroy], [\&Tie::Watch::Hash::Exists],
- [\&Tie::Watch::Hash::Fetch], [\&Tie::Watch::Hash::Firstkey],
- [\&Tie::Watch::Hash::Nextkey], [\&Tie::Watch::Hash::Store]);
- } else {
- croak "Tie::Watch::new() - not a variable reference.";
- }
- my(@margs, %ahsh, $args, @args);
- @margs = grep ! defined $args{$_}, keys %arg_defaults;
- %ahsh = %args; # argument hash
- @ahsh{@margs} = @arg_defaults{@margs}; # fill in missing values
- normalize_callbacks \%ahsh;
-
- if ($type =~ /(SCALAR|REF)/) {
- $watch_obj = tie $$variable, 'Tie::Watch::Scalar', %ahsh;
- } elsif ($type =~ /ARRAY/) {
- $watch_obj = tie @$variable, 'Tie::Watch::Array', %ahsh;
- } elsif ($type =~ /HASH/) {
- $watch_obj = tie %$variable, 'Tie::Watch::Hash', %ahsh;
- }
- $watch_obj;
-
-} # end new, Watch constructor
-
-sub Args {
-
- # Return a reference to a list of callback arguments, or undef if none.
- #
- # $_[0] = self
- # $_[1] = callback type
-
- defined $_[0]->{$_[1]}->[1] ? [@{$_[0]->{$_[1]}}[1 .. $#{$_[0]->{$_[1]}}]]
- : undef;
-
-} # end Args
-
-sub Info {
-
- # Info() method subclassed by other Watch modules.
- #
- # $_[0] = self
- # @_[1 .. $#_] = optional callback types
-
- my(%vinfo, @results);
- my(@info) = (qw/-variable -debug -shadow/);
- push @info, @_[1 .. $#_] if scalar @_ >= 2;
- foreach my $type (@info) {
- push @results, sprintf('%-10s: ', substr $type, 1) .
- $_[0]->Say($_[0]->{$type});
- $vinfo{$type} = $_[0]->{$type};
- }
- $vinfo{-legible} = [@results];
- %vinfo;
-
-} # end Info
-
-sub Say {
-
- # For debugging, mainly.
- #
- # $_[0] = self
- # $_[1] = value
-
- defined $_[1] ? (ref($_[1]) ne '' ? $_[1] : "'$_[1]'") : "undefined";
-
-} # end Say
-
-sub Unwatch {
-
- # Stop watching a variable by releasing the last reference and untieing it.
- # Update the original variable with its shadow, if appropriate.
- #
- # $_[0] = self
-
- my $variable = $_[0]->{-variable};
- my $type = ref $variable;
- my $copy; $copy = $_[0]->{-ptr} if $type !~ /(SCALAR|REF)/;
- my $shadow = $_[0]->{-shadow};
- undef $_[0];
- if ($type =~ /(SCALAR|REF)/) {
- untie $$variable;
- } elsif ($type =~ /ARRAY/) {
- untie @$variable;
- @$variable = @$copy if $shadow;
- } elsif ($type =~ /HASH/) {
- untie %$variable;
- %$variable = %$copy if $shadow;
- } else {
- croak "Tie::Watch::Delete() - not a variable reference.";
- }
-
-} # end Unwatch
-
-# Watch private methods.
-
-sub base_watch {
-
- # Watch base class constructor invoked by other Watch modules.
-
- my($class, %args) = @_;
- my $watch_obj = {%args};
- $watch_obj;
-
-} # end base_watch
-
-sub callback {
-
- # Execute a Watch callback, either the default or user specified.
- # Note that the arguments are those supplied by the tied method,
- # not those (if any) specified by the user when the watch object
- # was instantiated. This is for performance reasons, and why the
- # Args() method exists.
- #
- # $_[0] = self
- # $_[1] = callback type
- # $_[2] through $#_ = tied arguments
-
- &{$_[0]->{$_[1]}->[0]} ($_[0], @_[2 .. $#_]);
-
-} # end callback
-
-sub normalize_callbacks {
-
- # Ensure all callbacks are normalized in [\&code, @args] format.
-
- my($args_ref) = @_;
- my($cb, $ref);
- foreach my $arg (keys %$args_ref) {
- next if $arg =~ /variable|debug|shadow/;
- $cb = $args_ref->{$arg};
- $ref = ref $cb;
- if ($ref =~ /CODE/) {
- $args_ref->{$arg} = [$cb];
- } elsif ($ref !~ /ARRAY/) {
- croak "Tie::Watch: malformed callback $arg=$cb.";
- }
- }
-
-} # end normalize_callbacks
-
-###############################################################################
-
-package # temporarily disabled from PAUSE indexer because of permission problems
- Tie::Watch::Scalar;
-
-use Carp;
-@Tie::Watch::Scalar::ISA = qw/Tie::Watch/;
-
-sub TIESCALAR {
-
- my($class, %args) = @_;
- my $variable = $args{-variable};
- my $watch_obj = Tie::Watch->base_watch(%args);
- $watch_obj->{-value} = $$variable;
- print "WatchScalar new: $variable created, \@_=", join(',', @_), "!\n"
- if $watch_obj->{-debug};
- bless $watch_obj, $class;
-
-} # end TIESCALAR
-
-sub Info {$_[0]->SUPER::Info('-value', @Tie::Watch::scalar_callbacks)}
-
-# Default scalar callbacks.
-
-sub Destroy {undef %{$_[0]}}
-sub Fetch {$_[0]->{-value}}
-sub Store {$_[0]->{-value} = $_[1]}
-
-# Scalar access methods.
-
-sub DESTROY {$_[0]->callback('-destroy')}
-sub FETCH {$_[0]->callback('-fetch')}
-sub STORE {$_[0]->callback('-store', $_[1])}
-
-###############################################################################
-
-package # temporarily disabled from PAUSE indexer because of permission problems
- Tie::Watch::Array;
-
-use Carp;
-@Tie::Watch::Array::ISA = qw/Tie::Watch/;
-
-sub TIEARRAY {
-
- my($class, %args) = @_;
- my($variable, $shadow) = @args{-variable, -shadow};
- my @copy; @copy = @$variable if $shadow; # make a private copy of user's array
- $args{-ptr} = $shadow ? \@copy : [];
- my $watch_obj = Tie::Watch->base_watch(%args);
- print "WatchArray new: $variable created, \@_=", join(',', @_), "!\n"
- if $watch_obj->{-debug};
- bless $watch_obj, $class;
-
-} # end TIEARRAY
-
-sub Info {$_[0]->SUPER::Info('-ptr', @Tie::Watch::array_callbacks)}
-
-# Default array callbacks.
-
-sub Clear {$_[0]->{-ptr} = ()}
-sub Delete {delete $_[0]->{-ptr}->[$_[1]]}
-sub Destroy {undef %{$_[0]}}
-sub Exists {exists $_[0]->{-ptr}->[$_[1]]}
-sub Extend {}
-sub Fetch {$_[0]->{-ptr}->[$_[1]]}
-sub Fetchsize {scalar @{$_[0]->{-ptr}}}
-sub Pop {pop @{$_[0]->{-ptr}}}
-sub Push {push @{$_[0]->{-ptr}}, @_[1 .. $#_]}
-sub Shift {shift @{$_[0]->{-ptr}}}
-sub Splice {
- my $n = scalar @_; # splice() is wierd!
- return splice @{$_[0]->{-ptr}}, $_[1] if $n == 2;
- return splice @{$_[0]->{-ptr}}, $_[1], $_[2] if $n == 3;
- return splice @{$_[0]->{-ptr}}, $_[1], $_[2], @_[3 .. $#_] if $n >= 4;
-}
-sub Store {$_[0]->{-ptr}->[$_[1]] = $_[2]}
-sub Storesize {$#{$_[0]->{-ptr}} = $_[1] - 1}
-sub Unshift {unshift @{$_[0]->{-ptr}}, @_[1 .. $#_]}
-
-# Array access methods.
-
-sub CLEAR {$_[0]->callback('-clear')}
-sub DELETE {$_[0]->callback('-delete', $_[1])}
-sub DESTROY {$_[0]->callback('-destroy')}
-sub EXISTS {$_[0]->callback('-exists', $_[1])}
-sub EXTEND {$_[0]->callback('-extend', $_[1])}
-sub FETCH {$_[0]->callback('-fetch', $_[1])}
-sub FETCHSIZE {$_[0]->callback('-fetchsize')}
-sub POP {$_[0]->callback('-pop')}
-sub PUSH {$_[0]->callback('-push', @_[1 .. $#_])}
-sub SHIFT {$_[0]->callback('-shift')}
-sub SPLICE {$_[0]->callback('-splice', @_[1 .. $#_])}
-sub STORE {$_[0]->callback('-store', $_[1], $_[2])}
-sub STORESIZE {$_[0]->callback('-storesize', $_[1])}
-sub UNSHIFT {$_[0]->callback('-unshift', @_[1 .. $#_])}
-
-###############################################################################
-
-package # temporarily disabled from PAUSE indexer because of permission problems
- Tie::Watch::Hash;
-
-use Carp;
-@Tie::Watch::Hash::ISA = qw/Tie::Watch/;
-
-sub TIEHASH {
-
- my($class, %args) = @_;
- my($variable, $shadow) = @args{-variable, -shadow};
- my %copy; %copy = %$variable if $shadow; # make a private copy of user's hash
- $args{-ptr} = $shadow ? \%copy : {};
- my $watch_obj = Tie::Watch->base_watch(%args);
- print "WatchHash new: $variable created, \@_=", join(',', @_), "!\n"
- if $watch_obj->{-debug};
- bless $watch_obj, $class;
-
-} # end TIEHASH
-
-sub Info {$_[0]->SUPER::Info('-ptr', @Tie::Watch::hash_callbacks)}
-
-# Default hash callbacks.
-
-sub Clear {$_[0]->{-ptr} = ()}
-sub Delete {delete $_[0]->{-ptr}->{$_[1]}}
-sub Destroy {undef %{$_[0]}}
-sub Exists {exists $_[0]->{-ptr}->{$_[1]}}
-sub Fetch {$_[0]->{-ptr}->{$_[1]}}
-sub Firstkey {my $c = keys %{$_[0]->{-ptr}}; each %{$_[0]->{-ptr}}}
-sub Nextkey {each %{$_[0]->{-ptr}}}
-sub Store {$_[0]->{-ptr}->{$_[1]} = $_[2]}
-
-# Hash access methods.
-
-sub CLEAR {$_[0]->callback('-clear')}
-sub DELETE {$_[0]->callback('-delete', $_[1])}
-sub DESTROY {$_[0]->callback('-destroy')}
-sub EXISTS {$_[0]->callback('-exists', $_[1])}
-sub FETCH {$_[0]->callback('-fetch', $_[1])}
-sub FIRSTKEY {$_[0]->callback('-firstkey')}
-sub NEXTKEY {$_[0]->callback('-nextkey')}
-sub STORE {$_[0]->callback('-store', $_[1], $_[2])}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Time/Piece.pm b/Master/tlpkg/tlperl/lib/Time/Piece.pm
index f913db99be9..aaf63eebb78 100644
--- a/Master/tlpkg/tlperl/lib/Time/Piece.pm
+++ b/Master/tlpkg/tlperl/lib/Time/Piece.pm
@@ -19,7 +19,7 @@ our %EXPORT_TAGS = (
':override' => 'internal',
);
-our $VERSION = '1.27';
+our $VERSION = '1.29';
bootstrap Time::Piece $VERSION;
diff --git a/Master/tlpkg/tlperl/lib/Time/Seconds.pm b/Master/tlpkg/tlperl/lib/Time/Seconds.pm
index b001f20402e..8e5b52b269f 100644
--- a/Master/tlpkg/tlperl/lib/Time/Seconds.pm
+++ b/Master/tlpkg/tlperl/lib/Time/Seconds.pm
@@ -2,7 +2,7 @@ package Time::Seconds;
use strict;
use vars qw/@EXPORT @EXPORT_OK/;
-our $VERSION = '1.27';
+our $VERSION = '1.29';
use Exporter 5.57 'import';
@@ -160,7 +160,7 @@ sub pretty {
if ($s >= ONE_HOUR) {
if ($s >= ONE_DAY) {
my $days = sprintf("%d", $s->days); # does a "floor"
- $str = $days . " days, ";
+ $str .= $days . " days, ";
$s -= ($days * ONE_DAY);
}
my $hours = sprintf("%d", $s->hours);
diff --git a/Master/tlpkg/tlperl/lib/Time/Zone.pm b/Master/tlpkg/tlperl/lib/Time/Zone.pm
deleted file mode 100644
index 8a40f9158c8..00000000000
--- a/Master/tlpkg/tlperl/lib/Time/Zone.pm
+++ /dev/null
@@ -1,291 +0,0 @@
-
-package Time::Zone;
-
-=head1 NAME
-
-Time::Zone -- miscellaneous timezone manipulations routines
-
-=head1 SYNOPSIS
-
- use Time::Zone;
- print tz2zone();
- print tz2zone($ENV{'TZ'});
- print tz2zone($ENV{'TZ'}, time());
- print tz2zone($ENV{'TZ'}, undef, $isdst);
- $offset = tz_local_offset();
- $offset = tz_offset($TZ);
-
-=head1 DESCRIPTION
-
-This is a collection of miscellaneous timezone manipulation routines.
-
-C<tz2zone()> parses the TZ environment variable and returns a timezone
-string suitable for inclusion in L<date(1)>-like output. It opionally takes
-a timezone string, a time, and a is-dst flag.
-
-C<tz_local_offset()> determins the offset from GMT time in seconds. It
-only does the calculation once.
-
-C<tz_offset()> determines the offset from GMT in seconds of a specified
-timezone.
-
-C<tz_name()> determines the name of the timezone based on its offset
-
-=head1 AUTHORS
-
-Graham Barr <gbarr@pobox.com>
-David Muir Sharnoff <muir@idiom.com>
-Paul Foley <paul@ascent.com>
-
-=cut
-
-require 5.002;
-
-require Exporter;
-use Carp;
-use strict;
-use vars qw(@ISA @EXPORT $VERSION @tz_local);
-
-@ISA = qw(Exporter);
-@EXPORT = qw(tz2zone tz_local_offset tz_offset tz_name);
-$VERSION = "2.24";
-
-# Parts stolen from code by Paul Foley <paul@ascent.com>
-
-sub tz2zone (;$$$)
-{
- my($TZ, $time, $isdst) = @_;
-
- use vars qw(%tzn_cache);
-
- $TZ = defined($ENV{'TZ'}) ? ( $ENV{'TZ'} ? $ENV{'TZ'} : 'GMT' ) : ''
- unless $TZ;
-
- # Hack to deal with 'PST8PDT' format of TZ
- # Note that this can't deal with all the esoteric forms, but it
- # does recognize the most common: [:]STDoff[DST[off][,rule]]
-
- if (! defined $isdst) {
- my $j;
- $time = time() unless $time;
- ($j, $j, $j, $j, $j, $j, $j, $j, $isdst) = localtime($time);
- }
-
- if (defined $tzn_cache{$TZ}->[$isdst]) {
- return $tzn_cache{$TZ}->[$isdst];
- }
-
- if ($TZ =~ /^
- ( [^:\d+\-,] {3,} )
- ( [+-] ?
- \d {1,2}
- ( : \d {1,2} ) {0,2}
- )
- ( [^\d+\-,] {3,} )?
- /x
- ) {
- my $dsttz = defined($4) ? $4 : $1;
- $TZ = $isdst ? $dsttz : $1;
- $tzn_cache{$TZ} = [ $1, $dsttz ];
- } else {
- $tzn_cache{$TZ} = [ $TZ, $TZ ];
- }
- return $TZ;
-}
-
-sub tz_local_offset (;$)
-{
- my ($time) = @_;
-
- $time = time() unless $time;
- my (@l) = localtime($time);
- my $isdst = $l[8];
-
- if (defined($tz_local[$isdst])) {
- return $tz_local[$isdst];
- }
-
- $tz_local[$isdst] = &calc_off($time);
-
- return $tz_local[$isdst];
-}
-
-sub calc_off
-{
- my ($time) = @_;
-
- my (@l) = localtime($time);
- my (@g) = gmtime($time);
-
- my $off;
-
- $off = $l[0] - $g[0]
- + ($l[1] - $g[1]) * 60
- + ($l[2] - $g[2]) * 3600;
-
- # subscript 7 is yday.
-
- if ($l[7] == $g[7]) {
- # done
- } elsif ($l[7] == $g[7] + 1) {
- $off += 86400;
- } elsif ($l[7] == $g[7] - 1) {
- $off -= 86400;
- } elsif ($l[7] < $g[7]) {
- # crossed over a year boundry!
- # localtime is beginning of year, gmt is end
- # therefore local is ahead
- $off += 86400;
- } else {
- $off -= 86400;
- }
-
- return $off;
-}
-
-# constants
-
-CONFIG: {
- use vars qw(%dstZone %zoneOff %dstZoneOff %Zone);
-
- my @dstZone = (
- # "ndt" => -2*3600-1800, # Newfoundland Daylight
- "brst" => -2*3600, # Brazil Summer Time (East Daylight)
- "adt" => -3*3600, # Atlantic Daylight
- "edt" => -4*3600, # Eastern Daylight
- "cdt" => -5*3600, # Central Daylight
- "mdt" => -6*3600, # Mountain Daylight
- "pdt" => -7*3600, # Pacific Daylight
- "akdt" => -8*3600, # Alaska Daylight
- "ydt" => -8*3600, # Yukon Daylight
- "hdt" => -9*3600, # Hawaii Daylight
- "bst" => +1*3600, # British Summer
- "mest" => +2*3600, # Middle European Summer
- "metdst" => +2*3600, # Middle European DST
- "sst" => +2*3600, # Swedish Summer
- "fst" => +2*3600, # French Summer
- "cest" => +2*3600, # Central European Daylight
- "eest" => +3*3600, # Eastern European Summer
- "msd" => +4*3600, # Moscow Daylight
- "wadt" => +8*3600, # West Australian Daylight
- "kdt" => +10*3600, # Korean Daylight
- # "cadt" => +10*3600+1800, # Central Australian Daylight
- "aedt" => +11*3600, # Eastern Australian Daylight
- "eadt" => +11*3600, # Eastern Australian Daylight
- "nzd" => +13*3600, # New Zealand Daylight
- "nzdt" => +13*3600, # New Zealand Daylight
- );
-
- my @Zone = (
- "gmt" => 0, # Greenwich Mean
- "ut" => 0, # Universal (Coordinated)
- "utc" => 0,
- "wet" => 0, # Western European
- "wat" => -1*3600, # West Africa
- "at" => -2*3600, # Azores
- "fnt" => -2*3600, # Brazil Time (Extreme East - Fernando Noronha)
- "brt" => -3*3600, # Brazil Time (East Standard - Brasilia)
- # For completeness. BST is also British Summer, and GST is also Guam Standard.
- # "bst" => -3*3600, # Brazil Standard
- # "gst" => -3*3600, # Greenland Standard
- # "nft" => -3*3600-1800,# Newfoundland
- # "nst" => -3*3600-1800,# Newfoundland Standard
- "mnt" => -4*3600, # Brazil Time (West Standard - Manaus)
- "ewt" => -4*3600, # U.S. Eastern War Time
- "ast" => -4*3600, # Atlantic Standard
- "est" => -5*3600, # Eastern Standard
- "act" => -5*3600, # Brazil Time (Extreme West - Acre)
- "cst" => -6*3600, # Central Standard
- "mst" => -7*3600, # Mountain Standard
- "pst" => -8*3600, # Pacific Standard
- "akst" => -9*3600, # Alaska Standard
- "yst" => -9*3600, # Yukon Standard
- "hst" => -10*3600, # Hawaii Standard
- "cat" => -10*3600, # Central Alaska
- "ahst" => -10*3600, # Alaska-Hawaii Standard
- "nt" => -11*3600, # Nome
- "idlw" => -12*3600, # International Date Line West
- "cet" => +1*3600, # Central European
- "mez" => +1*3600, # Central European (German)
- "ect" => +1*3600, # Central European (French)
- "met" => +1*3600, # Middle European
- "mewt" => +1*3600, # Middle European Winter
- "swt" => +1*3600, # Swedish Winter
- "set" => +1*3600, # Seychelles
- "fwt" => +1*3600, # French Winter
- "eet" => +2*3600, # Eastern Europe, USSR Zone 1
- "ukr" => +2*3600, # Ukraine
- "bt" => +3*3600, # Baghdad, USSR Zone 2
- "msk" => +3*3600, # Moscow
- # "it" => +3*3600+1800,# Iran
- "zp4" => +4*3600, # USSR Zone 3
- "zp5" => +5*3600, # USSR Zone 4
- # "ist" => +5*3600+1800,# Indian Standard
- "zp6" => +6*3600, # USSR Zone 5
- # For completeness. NST is also Newfoundland Stanard, and SST is also Swedish Summer.
- # "nst" => +6*3600+1800,# North Sumatra
- # "sst" => +7*3600, # South Sumatra, USSR Zone 6
- # "jt" => +7*3600+1800,# Java (3pm in Cronusland!)
- "wst" => +8*3600, # West Australian Standard
- "hkt" => +8*3600, # Hong Kong
- "cct" => +8*3600, # China Coast, USSR Zone 7
- "jst" => +9*3600, # Japan Standard, USSR Zone 8
- "kst" => +9*3600, # Korean Standard
- # "cast" => +9*3600+1800,# Central Australian Standard
- "aest" => +10*3600, # Eastern Australian Standard
- "east" => +10*3600, # Eastern Australian Standard
- "gst" => +10*3600, # Guam Standard, USSR Zone 9
- "nzt" => +12*3600, # New Zealand
- "nzst" => +12*3600, # New Zealand Standard
- "idle" => +12*3600, # International Date Line East
- );
-
- %Zone = @Zone;
- %dstZone = @dstZone;
- %zoneOff = reverse(@Zone);
- %dstZoneOff = reverse(@dstZone);
-
-}
-
-sub tz_offset (;$$)
-{
- my ($zone, $time) = @_;
-
- return &tz_local_offset($time) unless($zone);
-
- $time = time() unless $time;
- my(@l) = localtime($time);
- my $dst = $l[8];
-
- $zone = lc $zone;
-
- if($zone =~ /^(([\-\+])\d\d?)(\d\d)$/) {
- my $v = $2 . $3;
- return $1 * 3600 + $v * 60;
- } elsif (exists $dstZone{$zone} && ($dst || !exists $Zone{$zone})) {
- return $dstZone{$zone};
- } elsif(exists $Zone{$zone}) {
- return $Zone{$zone};
- }
- undef;
-}
-
-sub tz_name (;$$)
-{
- my ($off, $dst) = @_;
-
- $off = tz_offset()
- unless(defined $off);
-
- $dst = (localtime(time))[8]
- unless(defined $dst);
-
- if (exists $dstZoneOff{$off} && ($dst || !exists $zoneOff{$off})) {
- return $dstZoneOff{$off};
- } elsif (exists $zoneOff{$off}) {
- return $zoneOff{$off};
- }
- sprintf("%+05d", int($off / 60) * 100 + $off % 60);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk.pm b/Master/tlpkg/tlperl/lib/Tk.pm
deleted file mode 100644
index 831eef8e3fc..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk.pm
+++ /dev/null
@@ -1,857 +0,0 @@
-#
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-# Copyright (c) 1995-2004 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-
-# modify it under the same terms as Perl itself, subject
-# to additional disclaimer in Tk/license.terms due to partial
-# derivation from Tk8.0 sources.
-#
-package Tk;
-require 5.007;
-use Tk::Event ();
-use AutoLoader qw(AUTOLOAD);
-use DynaLoader;
-use Cwd();
-use base qw(Exporter DynaLoader);
-use File::Spec qw();
-
-*fileevent = \&Tk::Event::IO::fileevent;
-
-use Encode;
-$Tk::encodeStopOnError = Encode::FB_QUIET();
-$Tk::encodeFallback = Encode::FB_PERLQQ(); # Encode::FB_DEFAULT();
-
-our %font_encoding = ('jis0208' => 'jis0208-raw',
- 'jis0212' => 'jis0212-raw',
- 'ksc5601' => 'ksc5601-raw',
- 'gb2312' => 'gb2312-raw',
- 'unicode' => 'ucs-2le',
- );
-
-BEGIN {
- if($^O eq 'cygwin')
- {
- require Tk::Config;
- $Tk::platform = $Tk::Config::win_arch;
- $Tk::platform = 'unix' if $Tk::platform eq 'x';
- }
- else
- {
- $Tk::platform = ($^O eq 'MSWin32') ? $^O : 'unix';
- }
-};
-
-$Tk::tearoff = 1 if ($Tk::platform eq 'unix');
-
-
-@EXPORT = qw(Exists Ev exit MainLoop DoOneEvent tkinit);
-@EXPORT_OK = qw(NoOp after *widget *event lsearch catch $XS_VERSION
- DONT_WAIT WINDOW_EVENTS FILE_EVENTS TIMER_EVENTS
- IDLE_EVENTS ALL_EVENTS
- NORMAL_BG ACTIVE_BG SELECT_BG
- SELECT_FG TROUGH INDICATOR DISABLED BLACK WHITE);
-%EXPORT_TAGS = (eventtypes => [qw(DONT_WAIT WINDOW_EVENTS FILE_EVENTS
- TIMER_EVENTS IDLE_EVENTS ALL_EVENTS)],
- variables => [qw(*widget *event)],
- colors => [qw(NORMAL_BG ACTIVE_BG SELECT_BG SELECT_FG
- TROUGH INDICATOR DISABLED BLACK WHITE)],
- );
-
-use strict;
-use Carp;
-
-# Record author's perforce depot record
-#$Tk::CHANGE = q$Change: 3279 $;
-#$Tk::CHANGE = 'sfsvn-' . q$Change: 27 $;
-$Tk::CHANGE = 'git-controlled';
-
-# $tk_version and $tk_patchLevel are reset by pTk when a mainwindow
-# is created, $VERSION is checked by bootstrap
-$Tk::version = '8.4';
-$Tk::patchLevel = '8.4';
-$Tk::VERSION = '804.033';
-$Tk::VERSION =~ s{_}{};
-$Tk::XS_VERSION = $Tk::VERSION;
-$Tk::strictMotif = 0;
-
-
-{($Tk::library) = __FILE__ =~ /^(.*)\.pm$/;}
-$Tk::library = Tk->findINC('.') unless (defined($Tk::library) && -d $Tk::library);
-
-$Tk::widget = undef;
-$Tk::event = undef;
-
-use vars qw($inMainLoop);
-
-bootstrap Tk;
-
-my $boot_time = timeofday();
-
-# This is a workround for Solaris X11 locale handling
-Preload(DynaLoader::dl_findfile('-L/usr/openwin/lib','-lX11'))
- if (NeedPreload() && -d '/usr/openwin/lib');
-
-use Tk::Submethods ('option' => [qw(add get clear readfile)],
- 'clipboard' => [qw(clear append get)]
- );
-
-#
-# Next few routines are here as perl code as doing caller()
-# in XS code is very complicated - so instead C code calls BackTrace
-#
-sub _backTrace
-{
- my $w = shift;
- my $i = 1;
- my ($pack,$file,$line,$sub) = caller($i++);
- while (1)
- {
- my $loc = "at $file line $line";
- ($pack,$file,$line,$sub) = caller($i++);
- last unless defined($sub);
- return 1 if $sub eq '(eval)';
- $w->AddErrorInfo("$sub $loc");
- }
- return 0;
-}
-
-sub BackTrace
-{
- my $w = shift;
- return unless (@_ || $@);
- my $mess = (@_) ? shift : "$@";
- die "$mess\n" if $w->_backTrace;
- # if we get here we are not in an eval so report now
- $w->Fail($mess);
- $w->idletasks;
- die "$mess\n";
-}
-
-#
-# This is a $SIG{__DIE__} handler which does not change the $@
-# string in the way 'croak' does, but rather add to Tk's ErrorInfo.
-# It stops at 1st enclosing eval on assumption that the eval
-# is part of Tk call process and will add its own context to ErrorInfo
-# and then pass on the error.
-#
-sub __DIE__
-{
- my $mess = shift;
- my $w = $Tk::widget;
- # Note that if a __DIE__ handler returns it re-dies up the chain.
- return unless defined($w) && Exists($w);
- # This special message is for exit() as an exception see pTkCallback.c
- return if $mess =~/^_TK_EXIT_\(\d+\)/;
- return if $w->_backTrace;
- # Not in an eval - should not happen
-}
-
-sub XEvent::xy { shift->Info('xy') }
-
-sub XEvent::AUTOLOAD
-{
- my ($meth) = $XEvent::AUTOLOAD =~ /(\w)$/;
- no strict 'refs';
- *{$XEvent::AUTOLOAD} = sub { shift->Info($meth) };
- goto &$XEvent::AUTOLOAD;
-}
-
-sub NoOp { }
-
-sub Ev
-{
- if (@_ == 1)
- {
- my $arg = $_[0];
- return bless (((ref $arg) ? $arg : \$arg), 'Tk::Ev');
- }
- else
- {
- return bless [@_],'Tk::Ev';
- }
-}
-
-sub InitClass
-{
- my ($package,$parent) = @_;
- croak "Unexpected type of parent $parent" unless(ref $parent);
- croak "$parent is not a widget" unless($parent->IsWidget);
- my $mw = $parent->MainWindow;
- my $hash = $mw->TkHash('_ClassInit_');
- unless (exists $hash->{$package})
- {
- $package->Install($mw);
- $hash->{$package} = $package->ClassInit($mw);
- }
-}
-
-require Tk::Widget;
-require Tk::Image;
-require Tk::MainWindow;
-
-sub Exists
-{my $w = shift;
- return defined($w) && ref($w) && $w->IsWidget && $w->exists;
-}
-
-sub Time_So_Far
-{
- return timeofday() - $boot_time;
-}
-
-# Selection* are not autoloaded as names are too long.
-
-sub SelectionOwn
-{my $widget = shift;
- selection('own',(@_,$widget));
-}
-
-sub SelectionOwner
-{
- selection('own','-displayof',@_);
-}
-
-sub SelectionClear
-{
- selection('clear','-displayof',@_);
-}
-
-sub SelectionExists
-{
- selection('exists','-displayof',@_);
-}
-
-sub SelectionHandle
-{my $widget = shift;
- my $command = pop;
- selection('handle',@_,$widget,$command);
-}
-
-sub SplitString
-{
- local $_ = shift;
- my (@arr, $tmp);
- while (/\{([^{}]*)\}|((?:[^\s\\]|\\.)+)/gs) {
- if (defined $1) { push @arr, $1 }
- else { $tmp = $2 ; $tmp =~ s/\\([\s\\])/$1/g; push @arr, $tmp }
- }
- # carp '('.join(',',@arr).")";
- return @arr;
-}
-
-sub Methods
-{
- my ($package) = caller;
- no strict 'refs';
- foreach my $meth (@_)
- {
- my $name = $meth;
- *{$package."::$meth"} = sub { shift->WidgetMethod($name,@_) };
- }
-}
-
-my %dialog = ( tk_chooseColor => 'ColorDialog',
- tk_messageBox => 'MessageBox',
- tk_getOpenFile => 'FDialog',
- tk_getSaveFile => 'FDialog',
- tk_chooseDirectory => 'FDialog'
-# Slaven claims NI-S's version above does not work
-# and provides this
-# tk_chooseDirectory => 'DirDialog'
- );
-
-foreach my $dialog (keys %dialog)
- {
- no strict 'refs';
- unless (defined &$dialog)
- {
- my $kind = $dialog;
- my $code = \&{"Tk::$dialog{$dialog}"};
- *$dialog = sub { &$code($kind,@_) };
- }
- }
-
-sub MessageBox {
- my ($kind,%args) = @_;
- require Tk::Dialog;
- my $parent = delete $args{'-parent'};
- my $args = \%args;
-
- $args->{-bitmap} = delete $args->{-icon} if defined $args->{-icon};
- $args->{-text} = delete $args->{-message} if defined $args->{-message};
- $args->{-type} = 'OK' unless defined $args->{-type};
-
- my $type;
- if (defined($type = delete $args->{-type})) {
- delete $args->{-type};
- my @buttons = grep($_,map(ucfirst($_),
- split(/(abort|retry|ignore|yes|no|cancel|ok)/,
- lc($type))));
- $args->{-buttons} = [@buttons];
- $args->{-default_button} = ucfirst(delete $args->{-default}) if
- defined $args->{-default};
- if (not defined $args->{-default_button} and scalar(@buttons) == 1) {
- $args->{-default_button} = $buttons[0];
- }
- my $md = $parent->Dialog(%$args);
- my $an = $md->Show;
- $md->destroy if Tk::Exists($md);
- return $an;
- }
-} # end messageBox
-
-sub messageBox
-{
- my ($widget,%args) = @_;
- # remove in a later version:
- if (exists $args{'-text'})
- {
- warn "The -text option is deprecated. Please use -message instead";
- if (!exists $args{'-message'})
- {
- $args{'-message'} = delete $args{'-text'};
- }
- }
- $args{'-type'} = (exists $args{'-type'}) ? lc($args{'-type'}) : 'ok';
- $args{'-default'} = lc($args{'-default'}) if (exists $args{'-default'});
- ucfirst tk_messageBox(-parent => $widget, %args);
-}
-sub _adapt_path_to_os
-{
- # adapting the path of -initalfile and -initialdir to the operating system
- # (like that getOpenFile(-initialdir => 'c:/WINNT') will work, as it will
- # be converted to c:\WINNT)
- my %args = @_;
- foreach my $option (qw(-initialfile -initialdir))
- {
- if ($args{$option})
- {
- $args{$option} = File::Spec->catfile($args{$option});
- }
- }
- return %args;
-}
-sub getOpenFile
-{
- tk_getOpenFile(-parent => shift,_adapt_path_to_os(@_));
-}
-
-sub getSaveFile
-{
- tk_getSaveFile(-parent => shift,_adapt_path_to_os(@_));
-}
-
-sub chooseColor
-{
- tk_chooseColor(-parent => shift,@_);
-}
-
-sub chooseDirectory
-{
- tk_chooseDirectory(-parent => shift,_adapt_path_to_os(@_));
-}
-
-sub DialogWrapper
-{
- my ($method,$kind,%args) = @_;
- my $created = 0;
- my $w = delete $args{'-parent'};
- if (defined $w)
- {
- $args{'-popover'} = $w;
- }
- else
- {
- $w = MainWindow->new;
- $w->withdraw;
- $created = 1;
- }
- my $mw = $w->toplevel;
- my $fs = $mw->{$kind};
- unless (defined $fs)
- {
- $mw->{$kind} = $fs = $mw->$method(%args);
- }
- else
- {
- $fs->configure(%args);
- }
- my $val = $fs->Show;
- $w->destroy if $created;
- return $val;
-}
-
-sub ColorDialog
-{
- require Tk::ColorEditor;
- DialogWrapper('ColorDialog',@_);
-}
-
-sub FDialog
-{
- require Tk::FBox;
- my $cmd = shift;
- if ($cmd =~ /Save/)
- {
- push @_, -type => 'save';
- }
- elsif ($cmd =~ /Directory/)
- {
- push @_, -type => 'dir';
- }
- DialogWrapper('FBox', $cmd, @_);
-}
-
-sub DirDialog
-{
- require Tk::DirTree;
- DialogWrapper('DirTreeDialog',@_);
-}
-
-*MotifFDialog = \&FDialog;
-
-*CORE::GLOBAL::exit = \&exit;
-
-sub MainLoop
-{
- unless ($inMainLoop)
- {
- local $inMainLoop = 1;
- while (Tk::MainWindow->Count)
- {
- DoOneEvent(0);
- }
- }
-}
-
-sub tkinit { return MainWindow->new(@_) }
-
-# a wrapper on eval which turns off user $SIG{__DIE__}
-sub catch (&)
-{
- my $sub = shift;
- eval {local $SIG{'__DIE__'}; &$sub };
-}
-
-my $Home;
-
-sub TranslateFileName
-{
- local $_ = shift;
- unless (defined $Home)
- {
- $Home = $ENV{'HOME'} || (defined $ENV{'HOMEDRIVE'} && defined $ENV{'HOMEPATH'} ? $ENV{'HOMEDRIVE'}.$ENV{'HOMEPATH'} : "");
- $Home =~ s#\\#/#g;
- $Home .= '/' unless $Home =~ m#/$#;
- }
- s#~/#$Home#g;
- # warn $_;
- return $_;
-}
-
-sub findINC
-{
- my $file = join('/',@_);
- my $dir;
- $file =~ s,::,/,g;
- foreach $dir (@INC)
- {
- my $path;
- return $path if (-e ($path = "$dir/$file"));
- }
- return undef;
-}
-
-sub idletasks
-{
- shift->update('idletasks');
-}
-
-sub backtrace
-{
- my ($self,$msg,$i) = @_;
- $i = 1 if @_ < 3;
- while (1)
- {
- my ($pack,$file,$line,$sub) = caller($i++);
- last unless defined($sub);
- $msg .= "\n $sub at $file line $line";
- }
- return "$msg\n";
-}
-
-sub die_with_trace
-{
- my ($self,$msg) = @_;
- die $self->backtrace($msg,1);
-}
-
-
-
-1;
-
-__END__
-
-sub Error
-{my $w = shift;
- my $error = shift;
- if (Exists($w))
- {
- my $grab = $w->grab('current');
- $grab->Unbusy if (defined $grab);
- }
- chomp($error);
- warn "Tk::Error: $error\n " . join("\n ",@_)."\n";
-}
-
-sub CancelRepeat
-{
- my $w = shift->MainWindow;
- my $id = delete $w->{_afterId_};
- $w->after('cancel',$id) if (defined $id);
-}
-
-sub RepeatId
-{
- my ($w,$id) = @_;
- $w = $w->MainWindow;
- $w->CancelRepeat;
- $w->{_afterId_} = $id;
-}
-
-
-
-#----------------------------------------------------------------------------
-# focus.tcl --
-#
-# This file defines several procedures for managing the input
-# focus.
-#
-# @(#) focus.tcl 1.6 94/12/19 17:06:46
-#
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-sub FocusChildren { shift->children }
-
-#
-# focusNext --
-# This procedure is invoked to move the input focus to the next window
-# after a given one. "Next" is defined in terms of the window
-# stacking order, with all the windows underneath a given top-level
-# (no matter how deeply nested in the hierarchy) considered except
-# for frames and toplevels.
-#
-# Arguments:
-# w - Name of a window: the procedure will set the focus
-# to the next window after this one in the traversal
-# order.
-sub focusNext
-{
- my $w = shift;
- my $cur = $w->getNextFocus;
- if ($cur)
- {
- $cur->tabFocus;
- }
-}
-
-sub getNextFocus
-{
- my $w = shift;
- my $cur = $w;
- while (1)
- {
- # Descend to just before the first child of the current widget.
- my $parent = $cur;
- my @children = $cur->FocusChildren();
- my $i = -1;
- # Look for the next sibling that isn't a top-level.
- while (1)
- {
- $i += 1;
- if ($i < @children)
- {
- $cur = $children[$i];
- next if ($cur->toplevel == $cur);
- last
- }
- # No more siblings, so go to the current widget's parent.
- # If it's a top-level, break out of the loop, otherwise
- # look for its next sibling.
- $cur = $parent;
- last if ($cur->toplevel() == $cur);
- $parent = $parent->parent();
- @children = $parent->FocusChildren();
- $i = lsearch(\@children,$cur);
- }
- if ($cur == $w || $cur->FocusOK)
- {
- return $cur;
- }
- }
-}
-# focusPrev --
-# This procedure is invoked to move the input focus to the previous
-# window before a given one. "Previous" is defined in terms of the
-# window stacking order, with all the windows underneath a given
-# top-level (no matter how deeply nested in the hierarchy) considered.
-#
-# Arguments:
-# w - Name of a window: the procedure will set the focus
-# to the previous window before this one in the traversal
-# order.
-sub focusPrev
-{
- my $w = shift;
- my $cur = $w->getPrevFocus;
- if ($cur)
- {
- $cur->tabFocus;
- }
-}
-
-sub getPrevFocus
-{
- my $w = shift;
- my $cur = $w;
- my @children;
- my $i;
- my $parent;
- while (1)
- {
- # Collect information about the current window's position
- # among its siblings. Also, if the window is a top-level,
- # then reposition to just after the last child of the window.
- if ($cur->toplevel() == $cur)
- {
- $parent = $cur;
- @children = $cur->FocusChildren();
- $i = @children;
- }
- else
- {
- $parent = $cur->parent();
- @children = $parent->FocusChildren();
- $i = lsearch(\@children,$cur);
- }
- # Go to the previous sibling, then descend to its last descendant
- # (highest in stacking order. While doing this, ignore top-levels
- # and their descendants. When we run out of descendants, go up
- # one level to the parent.
- while ($i > 0)
- {
- $i--;
- $cur = $children[$i];
- next if ($cur->toplevel() == $cur);
- $parent = $cur;
- @children = $parent->FocusChildren();
- $i = @children;
- }
- $cur = $parent;
- if ($cur == $w || $cur->FocusOK)
- {
- return $cur;
- }
- }
-
-}
-
-sub FocusOK
-{
- my $w = shift;
- my $value;
- catch { $value = $w->cget('-takefocus') };
- if (!$@ && defined($value))
- {
- return 0 if ($value eq '0');
- return $w->viewable if ($value eq '1');
- if ($value)
- {
- $value = $w->$value();
- return $value if (defined $value);
- }
- }
- if (!$w->viewable)
- {
- return 0;
- }
- catch { $value = $w->cget('-state') } ;
- if (!$@ && defined($value) && $value eq 'disabled')
- {
- return 0;
- }
- $value = grep(/Key|Focus/,$w->Tk::bind(),$w->Tk::bind(ref($w)));
- return $value;
-}
-
-
-# focusFollowsMouse
-#
-# If this procedure is invoked, Tk will enter "focus-follows-mouse"
-# mode, where the focus is always on whatever window contains the
-# mouse. If this procedure isn't invoked, then the user typically
-# has to click on a window to give it the focus.
-#
-# Arguments:
-# None.
-
-sub EnterFocus
-{
- my $w = shift;
- return unless $w;
- my $Ev = $w->XEvent;
- my $d = $Ev->d;
- $w->Tk::focus() if ($d eq 'NotifyAncestor' || $d eq 'NotifyNonlinear' || $d eq 'NotifyInferior');
-}
-
-sub tabFocus
-{
- shift->Tk::focus;
-}
-
-sub focusFollowsMouse
-{
- my $widget = shift;
- $widget->bind('all','<Enter>','EnterFocus');
-}
-
-# tkTraverseToMenu --
-# This procedure implements keyboard traversal of menus. Given an
-# ASCII character "char", it looks for a menubutton with that character
-# underlined. If one is found, it posts the menubutton's menu
-#
-# Arguments:
-# w - Window in which the key was typed (selects
-# a toplevel window).
-# char - Character that selects a menu. The case
-# is ignored. If an empty string, nothing
-# happens.
-sub TraverseToMenu
-{
- my $w = shift;
- my $char = shift;
- return unless(defined $char && $char ne '');
- $w = $w->toplevel->FindMenu($char);
-}
-# tkFirstMenu --
-# This procedure traverses to the first menubutton in the toplevel
-# for a given window, and posts that menubutton's menu.
-#
-# Arguments:
-# w - Name of a window. Selects which toplevel
-# to search for menubuttons.
-sub FirstMenu
-{
- my $w = shift;
- $w = $w->toplevel->FindMenu('');
-}
-
-# These wrappers don't use method syntax so need to live
-# in same package as raw Tk routines are newXS'ed into.
-
-sub Selection
-{my $widget = shift;
- my $cmd = shift;
- croak 'Use SelectionOwn/SelectionOwner' if ($cmd eq 'own');
- croak "Use Selection\u$cmd()";
-}
-
-# If we have sub Clipboard in Tk then use base qw(Tk::Clipboard ....)
-# calls it when it does its eval "require $base"
-#sub Clipboard
-#{my $w = shift;
-# my $cmd = shift;
-# croak "Use clipboard\u$cmd()";
-#}
-
-sub Receive
-{
- my $w = shift;
- warn 'Receive(' . join(',',@_) .')';
- die 'Tk rejects send(' . join(',',@_) .")\n";
-}
-
-sub break
-{
- die "_TK_BREAK_\n";
-}
-
-sub updateWidgets
-{
- my ($w) = @_;
- while ($w->DoOneEvent(DONT_WAIT|IDLE_EVENTS|WINDOW_EVENTS))
- {
- }
- $w;
-}
-
-sub ImageNames
-{
- image('names');
-}
-
-sub ImageTypes
-{
- image('types');
-}
-
-sub interps
-{
- my $w = shift;
- return $w->winfo('interps','-displayof');
-}
-
-sub lsearch
-{my $ar = shift;
- my $x = shift;
- my $i;
- for ($i = 0; $i < scalar @$ar; $i++)
- {
- return $i if ($$ar[$i] eq $x);
- }
- return -1;
-}
-
-
-sub getEncoding
-{
- my ($class,$name) = @_;
- eval { require Encode };
- if ($@)
- {
- require Tk::DummyEncode;
- return Tk::DummyEncode->getEncoding($name);
- }
- $name = $Tk::font_encoding{$name} if exists $Tk::font_encoding{$name};
- my $enc = Encode::find_encoding($name);
-
- unless ($enc)
- {
- $enc = Encode::find_encoding($name) if ($name =~ s/[-_]\d+$//)
- }
-# if ($enc)
-# {
-# print STDERR "Lookup '$name' => ".$enc->name."\n";
-# }
-# else
-# {
-# print STDERR "Failed '$name'\n";
-# }
- unless ($enc)
- {
- if ($name eq 'X11ControlChars')
- {
- require Tk::DummyEncode;
- $Encode::encoding{$name} = $enc = Tk::DummyEncode->getEncoding($name);
- }
- }
- return $enc;
-}
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk.pod b/Master/tlpkg/tlperl/lib/Tk.pod
deleted file mode 100644
index 4cdf3a0df19..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk.pod
+++ /dev/null
@@ -1,865 +0,0 @@
-=head1 NAME
-
-Tk - a graphical user interface toolkit for Perl
-
-=head1 SYNOPSIS
-
- use Tk;
- $top = new MainWindow;
- MainLoop;
-
-=head1 DESCRIPTION
-
-The Perl/Tk manual is split up into a number of sections:
-
-=head2 Introduction
-
-=over 4
-
-=item *
-
-L<Tk::overview|Tk::overview>
-
-=item *
-
-L<Tk::UserGuide|Tk::UserGuide>
-
-=back
-
-=head2 Tk Geometry Management
-
-=over 4
-
-=item *
-
-L<Tk::Adjuster|Tk::Adjuster>
-
-=item *
-
-L<Tk::form|Tk::form>
-
-=item *
-
-L<Tk::grid|Tk::grid>
-
-=item *
-
-L<Tk::pack|Tk::pack>
-
-=item *
-
-L<Tk::place|Tk::place>
-
-=item *
-
-L<Tk::Table|Tk::Table>
-
-=item *
-
-L<Tk::Tiler|Tk::Tiler>
-
-=item *
-
-L<Tk::Wm|Tk::Wm>
-
-=back
-
-=head2 Binding Events and Callbacks
-
-=over 4
-
-=item *
-
-L<Tk::after|Tk::after>
-
-=item *
-
-L<Tk::bind|Tk::bind>
-
-=item *
-
-L<Tk::bindtags|Tk::bindtags>
-
-=item *
-
-L<Tk::callbacks|Tk::callbacks>
-
-=item *
-
-L<Tk::Error|Tk::Error>
-
-=item *
-
-L<Tk::event|Tk::event>
-
-=item *
-
-L<Tk::exit|Tk::exit>
-
-=item *
-
-L<Tk::fileevent|Tk::fileevent>
-
-=item *
-
-L<Tk::IO|Tk::IO>
-
-=back
-
-=head2 Tk Image Classes
-
-=over 4
-
-=item *
-
-L<Tk::Animation|Tk::Animation>
-
-=item *
-
-L<Tk::Bitmap|Tk::Bitmap>
-
-=item *
-
-L<Tk::Compound|Tk::Compound>
-
-=item *
-
-L<Tk::Image|Tk::Image>
-
-=item *
-
-L<Tk::JPEG|Tk::JPEG>
-
-=item *
-
-L<Tk::Photo|Tk::Photo>
-
-=item *
-
-L<Tk::Pixmap|Tk::Pixmap>
-
-=item *
-
-L<Tk::PNG|Tk::PNG>
-
-=back
-
-=head2 Tk Widget Classes
-
-=over 4
-
-=item *
-
-L<Tk::Button|Tk::Button>
-
-=item *
-
-L<Tk::Canvas|Tk::Canvas>
-
-=item *
-
-L<Tk::Checkbutton|Tk::Checkbutton>
-
-=item *
-
-L<Tk::Entry|Tk::Entry>
-
-=item *
-
-L<Tk::Frame|Tk::Frame>
-
-=item *
-
-L<Tk::HList|Tk::HList>
-
-=item *
-
-L<Tk::Label|Tk::Label>
-
-=item *
-
-L<Tk::Listbox|Tk::Listbox>
-
-=item *
-
-L<Tk::Menu|Tk::Menu>
-
-=item *
-
-L<Tk::Menubutton|Tk::Menubutton>
-
-=item *
-
-L<Tk::Message|Tk::Message>
-
-=item *
-
-L<Tk::Optionmenu|Tk::Optionmenu>
-
-=item *
-
-L<Tk::Radiobutton|Tk::Radiobutton>
-
-=item *
-
-L<Tk::Scale|Tk::Scale>
-
-=item *
-
-L<Tk::Scrollbar|Tk::Scrollbar>
-
-=item *
-
-L<Tk::Text|Tk::Text>
-
-=item *
-
-L<Tk::Toplevel|Tk::Toplevel>
-
-=back
-
-=head2 Tix Extensions
-
-=over 4
-
-=item *
-
-L<Tk::Balloon|Tk::Balloon>
-
-=item *
-
-L<Tk::BrowseEntry|Tk::BrowseEntry>
-
-=item *
-
-L<Tk::DialogBox|Tk::DialogBox>
-
-=item *
-
-L<Tk::DirTree|Tk::DirTree>
-
-=item *
-
-L<Tk::DItem|Tk::DItem>
-
-=item *
-
-L<Tk::InputO|Tk::InputO>
-
-=item *
-
-L<Tk::LabFrame|Tk::LabFrame>
-
-=item *
-
-L<Tk::Mwm|Tk::Mwm>
-
-=item *
-
-L<Tk::NoteBook|Tk::NoteBook>
-
-=item *
-
-L<Tk::TixGrid|Tk::TixGrid>
-
-=item *
-
-L<Tk::tixWm|Tk::tixWm>
-
-=item *
-
-L<Tk::TList|Tk::TList>
-
-=item *
-
-L<Tk::Tree|Tk::Tree>
-
-=back
-
-=head2 Tk Generic Methods
-
-=over 4
-
-=item *
-
-L<Tk::Font|Tk::Font>
-
-=item *
-
-L<Tk::send|Tk::send>
-
-=item *
-
-L<Tk::tkvars|Tk::tkvars>
-
-=item *
-
-L<Tk::Widget|Tk::Widget>
-
-=item *
-
-L<Tk::X11Font|Tk::X11Font>
-
-=back
-
-=head2 User Interaction
-
-=over 4
-
-=item *
-
-L<Tk::DropSite|Tk::DropSite>
-
-=item *
-
-L<Tk::Clipboard|Tk::Clipboard>
-
-=item *
-
-L<Tk::focus|Tk::focus>
-
-=item *
-
-L<Tk::grab|Tk::grab>
-
-=item *
-
-L<Tk::selection|Tk::selection>
-
-=back
-
-=head2 Creating and Configuring Widgets
-
-=over 4
-
-=item *
-
-L<Tk::CmdLine|Tk::CmdLine>
-
-=item *
-
-L<Tk::MainWindow|Tk::MainWindow>
-
-=item *
-
-L<Tk::option|Tk::option>
-
-=item *
-
-L<Tk::options|Tk::options>
-
-=item *
-
-L<Tk::palette|Tk::palette>
-
-=item *
-
-L<Tk::Xrm|Tk::Xrm>
-
-=back
-
-=head2 Popups and Dialogs
-
-=over 4
-
-=item *
-
-L<Tk::chooseColor|Tk::chooseColor>
-
-=item *
-
-L<Tk::chooseDirectory|Tk::chooseDirectory>
-
-=item *
-
-L<Tk::ColorEditor|Tk::ColorEditor>
-
-=item *
-
-L<Tk::Dialog|Tk::Dialog>
-
-=item *
-
-L<Tk::DialogBox|Tk::DialogBox>
-
-=item *
-
-L<Tk::FBox|Tk::FBox>
-
-=item *
-
-L<Tk::FileSelect|Tk::FileSelect>
-
-=item *
-
-L<Tk::getOpenFile|Tk::getOpenFile>
-
-=item *
-
-L<Tk::messageBox|Tk::messageBox>
-
-=item *
-
-L<Tk::MsgBox|Tk::MsgBox>
-
-=back
-
-=head2 Derived Widgets
-
-=over 4
-
-=item *
-
-L<Tk::composite|Tk::composite>
-
-=item *
-
-L<Tk::configspec|Tk::configspec>
-
-=item *
-
-L<Tk::Derived|Tk::Derived>
-
-=item *
-
-L<Tk::mega|Tk::mega>
-
-=item *
-
-L<Tk::ROText|Tk::ROText>
-
-=item *
-
-L<Tk::Scrolled|Tk::Scrolled>
-
-=item *
-
-L<Tk::TextUndo|Tk::TextUndo>
-
-=item *
-
-L<Tk::Reindex|Tk::Reindex>
-
-=item *
-
-L<Tk::Pane|Tk::Pane>
-
-=item *
-
-L<Tk::ProgressBar|Tk::ProgressBar>
-
-=back
-
-=head2 C Programming
-
-=over 4
-
-=item *
-
-Internals
-
-=item *
-
-pTk
-
-=item *
-
-3DBorder
-
-=item *
-
-BackgdErr
-
-=item *
-
-BindTable
-
-=item *
-
-CanvPsY
-
-=item *
-
-CanvTkwin
-
-=item *
-
-CanvTxtInfo
-
-=item *
-
-Clipboard
-
-=item *
-
-ClrSelect
-
-=item *
-
-ConfigWidg
-
-=item *
-
-ConfigWind
-
-=item *
-
-CoordToWin
-
-=item *
-
-CrtErrHdlr
-
-=item *
-
-CrtGenHdlr
-
-=item *
-
-CrtImgType
-
-=item *
-
-CrtItemType
-
-=item *
-
-CrtMainWin
-
-=item *
-
-CrtPhImgFmt
-
-=item *
-
-CrtSelHdlr
-
-=item *
-
-CrtWindow
-
-=item *
-
-DeleteImg
-
-=item *
-
-DoOneEvent
-
-=item *
-
-DoWhenIdle
-
-=item *
-
-DrawFocHlt
-
-=item *
-
-EventHndlr
-
-=item *
-
-EventInit
-
-=item *
-
-FileHndlr
-
-=item *
-
-FindPhoto
-
-=item *
-
-FontId
-
-=item *
-
-FreeXId
-
-=item *
-
-GeomReq
-
-=item *
-
-GetAnchor
-
-=item *
-
-GetBitmap
-
-=item *
-
-GetCapStyl
-
-=item *
-
-GetClrmap
-
-=item *
-
-GetColor
-
-=item *
-
-GetCursor
-
-=item *
-
-GetFont
-
-=item *
-
-GetFontStr
-
-=item *
-
-GetGC
-
-=item *
-
-GetImage
-
-=item *
-
-GetJoinStl
-
-=item *
-
-GetJustify
-
-=item *
-
-GetOption
-
-=item *
-
-GetPixels
-
-=item *
-
-GetPixmap
-
-=item *
-
-GetRelief
-
-=item *
-
-GetRootCrd
-
-=item *
-
-GetScroll
-
-=item *
-
-GetSelect
-
-=item *
-
-GetUid
-
-=item *
-
-GetVisual
-
-=item *
-
-GetVRoot
-
-=item *
-
-HandleEvent
-
-=item *
-
-IdToWindow
-
-=item *
-
-ImgChanged
-
-=item *
-
-InternAtom
-
-=item *
-
-MainLoop
-
-=item *
-
-MaintGeom
-
-=item *
-
-MainWin
-
-=item *
-
-ManageGeom
-
-=item *
-
-MapWindow
-
-=item *
-
-MeasureChar
-
-=item *
-
-MoveToplev
-
-=item *
-
-Name
-
-=item *
-
-NameOfImg
-
-=item *
-
-OwnSelect
-
-=item *
-
-ParseArgv
-
-=item *
-
-Preserve
-
-=item *
-
-QWinEvent
-
-=item *
-
-Restack
-
-=item *
-
-RestrictEv
-
-=item *
-
-SetAppName
-
-=item *
-
-SetClass
-
-=item *
-
-SetGrid
-
-=item *
-
-SetVisual
-
-=item *
-
-Sleep
-
-=item *
-
-StrictMotif
-
-=item *
-
-TextLayout
-
-=item *
-
-TimerHndlr
-
-=item *
-
-Tk_Init
-
-=item *
-
-WindowId
-
-=back
-
-=head2 Implementation
-
-=over 4
-
-=item *
-
-L<Tk::Eventloop|Tk::Eventloop>
-
-=item *
-
-L<Tk::Menu::Item|Tk::Menu::Item>
-
-=item *
-
-L<Tk::Submethods|Tk::Submethods>
-
-=item *
-
-L<Tk::WidgetDemo|Tk::WidgetDemo>
-
-=item *
-
-L<Tk::widgets|Tk::widgets>
-
-=back
-
-=head2 Experimental Modules
-
-=over 4
-
-=item *
-
-L<Tk::Common|Tk::Common>
-
-=item *
-
-L<Tk::SunConst|Tk::SunConst>
-
-=item *
-
-L<Tk::WinPhoto|Tk::WinPhoto>
-
-=back
-
-=head2 Other Modules and Languages
-
-=over 4
-
-=item *
-
-Tk::Compile
-
-=item *
-
-L<Tk::Tcl-perl|Tk::Tcl-perl>
-
-=item *
-
-L<Tk::X|Tk::X>
-
-=back
-
-
-=head1 AUTHOR
-
-Nick Ing-Simmons
-
-=head1 SEE ALSO
-
-L<perl>, L<wish(1)>.
-
-Alternative Perl modules implementing the Tk toolkit: L<Tkx>,
-L<Tcl::Tk>.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tk/804delta.pod b/Master/tlpkg/tlperl/lib/Tk/804delta.pod
deleted file mode 100644
index 1472f38c86b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/804delta.pod
+++ /dev/null
@@ -1,110 +0,0 @@
-=head1 NAME
-
-Tk::804delta - what is new for perl/Tk 804
-
-=head1 DESCRIPTION
-
-This document describes differences between the Tk800 series and the
-Tk804 series.
-
-=head1 Incompatible Changes
-
-In Tk804.028, there are some additional incompatible changes:
-
-Return values of some B<Tk::Wm> methods (e.g. B<aspect>, B<wmGrid>,
-B<iconposition>, B<resizable> ...) were changed from returning tclish
-lists (e.g. "1 2 3 4") to perlish lists (1,2,3,4).
-
-B<Tk::Wm::wmTracing> needs argument for setting on/off, without argument
-just return the current value.
-
-All Tk804 releases have the following incompatible changes:
-
-Tk804 will only work with perl 5.8.0 and above. For older perl
-versions look for Tk800.025.
-
-B<curselection> of B<Tk::Listbox> now returns an array reference in
-scalar context. This means you have to write
-
- my(@selected) = $listbox->curselection
-
-or
-
- my(@selected) = @{ $listbox->curselection }
-
-now.
-
-The B<fontActual> method now returns the pixel value instead of the
-point value for B<-size>. Pixel values are expressed as negative
-numbers.
-
-Some enhancements from the E<quot>dashE<quot> patches are lost for now
-(i.e. B<-tile>, B<-troughtile> ...).
-
-The B<-state> option is not available anymore for B<Tk::Text> tags.
-Use B<-elide> instead.
-
-=head1 Enhancements
-
-Tk804 is Unicode-aware.
-
-It is possible to build Tk with Xft support on X11. This is strongly
-recommened if you are planning to make use of Unicode rendering
-capabilities of Tk. It also gives anti-aliased fonts for regular text
-(if you have TrueType or Type1 fonts and they are in your fontconfig
-config file).
-
-The new method B<chooseDirectory> is available as a standard directory
-selector.
-
-B<Tk::PNG> and B<Tk::JPEG> are bundled now with the perl/Tk
-distribution, providing support for the image formats B<png> and
-B<jpeg>.
-
-Improvements to B<Tk::Listbox>: new option B<-activestyle>, new
-methods B<itemconfigure> and B<itemcget>, new virtual event B<<<
-<<ListboxSelect>> >>>.
-
-More tests.
-
-=head1 New Widgets
-
-=over
-
-=item Tk::Labelframe
-
-An alternative to B<Tk::LabFrame>.
-
-=item Tk::Panedwindow
-
-An alternative to B<Tk::Adjuster>.
-
-=item Tk::Spinbox
-
-An alternative to the CPAN module B<Tk::NumEntry>.
-
-=back
-
-=head1 Selected Bug Fixes
-
-=head1 Changed Internals
-
-=head1 Platform Specific Problems
-
-=head1 Future Directions
-
-=head1 Reporting Bugs
-
-If you find what you think is a bug, you might check the articles
-recently posted to the comp.lang.perl.tk newsgroup.
-
-If you believe you have an unreported bug, please send a mail to <ptk@lists.stanford.edu> and/or <nick@ing-simmons.net>. Be sure to trim your bug down
-to a tiny but sufficient test case.
-
-=head1 SEE ALSO
-
-L<Tk>, C<Changes> file in the Perl/Tk distribution.
-
-=cut
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Adjuster.pm b/Master/tlpkg/tlperl/lib/Tk/Adjuster.pm
deleted file mode 100644
index bbe44f33dc8..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Adjuster.pm
+++ /dev/null
@@ -1,438 +0,0 @@
-package Tk::Adjuster;
-
-use vars qw($VERSION);
-$VERSION = '4.008'; # $Id: //depot/Tkutf8/Tk/Adjuster.pm#7 $
-
-use base qw(Tk::Frame);
-
-# We cannot do this :
-
-# Construct Tk::Widget 'packAdjust';
-
-# because if managed object is Derived (e.g. a Scrolled) then our 'new'
-# will be delegated and hierachy gets turned inside-out
-# So packAdjust is autoloaded in Widget.pm
-
-
-Construct Tk::Widget qw(Adjuster);
-
-{package Tk::Adjuster::Item;
-
-use strict;
-use base qw(Tk::Frame);
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<1>',['BDown', 1]);
- $mw->bind($class,'<Shift-1>',['BDown', 0]);
- $mw->bind($class,'<B1-Motion>',['Motion',1]);
- $mw->bind($class,'<Shift-B1-Motion>',['Motion',0]);
- $mw->bind($class,'<ButtonRelease-1>',['Motion',0]);
- return $class;
-}
-
-sub BDown
-{
- my($w, $delay_mask) = @_;
- $w->{'start_x'} = $w->XEvent->x;
- $w->{'start_y'} = $w->XEvent->y;
- my $adj = $w->Parent;
- delete $adj->{'lin_info'};
- my $delay = $delay_mask && $adj->cget('-delay');
- if ($delay)
- {
- $adj->vert ? $adj->delta_width_bar(0) : $adj->delta_height_bar(0);
- }
-}
-
-sub Motion
-{
- my($w, $delay_mask) = @_;
- my $ev = $w->XEvent;
- my $adj = $w->Parent;
-
- my $delay = $delay_mask && $adj->cget('-delay');
- if ($adj->vert)
- {
- my $dx = $ev->x - $w->{'start_x'};
- $delay ? $adj->delta_width_bar($dx) : $adj->delta_width($dx);
- }
- else
- {
- my $dy = $ev->y - $w->{'start_y'};
- $delay ? $adj->delta_height_bar($dy) : $adj->delta_height($dy);
- }
-}
-
-}
-
-
-
-sub packAfter
-{
- my ($w,$s,%args) = @_;
- my $side = $args{'-side'} ? $args{'-side'} : 'top';
- $w->configure(-side => $side, -widget => $s);
- $w->packed($s, %args);
-}
-
-sub packForget
-{
- my ($w,$forget_slave) = @_;
- $w->Tk::Widget::packForget;
- $w->slave->packForget if $forget_slave;
-}
-
-# Called by Tk::Widget::packAdjust. It was here before packAfter was added
-sub packed
-{
- my ($w,$s,%args) = @_;
- delete $args{'-before'};
- delete $args{'-in'};
- $args{'-expand'} = 0;
- $args{'-after'} = $s;
- $args{'-fill'} = (($w->vert) ? 'y' : 'x');
- $w->pack(%args);
-}
-
-sub gridded
-{
- my ($w,$s,%args) = @_;
- # delete $args{'-before'};
- # $args{'-expand'} = 0;
- # $args{'-after'} = $s;
- # $args{'-fill'} = (($w->vert) ? 'y' : 'x');
- $w->grid(%args);
-}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<Configure>','SizeChange');
- $mw->bind($class,'<Unmap>','Restore');
- $mw->bind($class,'<Map>','Mapped');
- return $class;
-}
-
-sub SizeChange
-{
- my $w = shift;
- # reqwidth/height of Adjuster is stored here. If it is partially pushed out
- # of the window, then $w->width/height returns that of the visible part.
- if ($w->vert)
- {
- my $sx = ($w->Width - $w->{'sep'}->Width)/2;
- $w->{'but'}->place('-x' => 0, '-y' => $w->Height-18);
- $w->{'sep'}->place('-x' => $sx, '-y' => 0, -relheight => 1);
- $w->configure(-width => $w->{'but'}->ReqWidth);
- $w->{'reqwidth'} = $w->reqwidth;
- }
- else
- {
- my $sy = ($w->Height - $w->{'sep'}->Height)/2;
- $w->{'but'}->place('-x' => $w->Width-18, '-y' => 0);
- $w->{'sep'}->place('-x' => 0, '-y' => $sy, -relwidth => 1);
- $w->configure(-height => $w->{'but'}->ReqHeight);
- $w->{'reqheight'} = $w->reqheight;
- }
- # Turn off geometry propagation in the slave. Do only if necessary, as this
- # causes repacking.
- my $s = $w->slave;
- $s->packPropagate('0') if $s->packSlaves && $s->packPropagate();
- $s->gridPropagate('0') if $s->gridSlaves && $s->gridPropagate();
-}
-
-sub Mapped
-{
- my $w = shift;
- $w->idletasks;
- my $m = $w->manager;
- if ($m =~ /^(?:pack|grid)$/)
- {
- my %info = $w->$m('info');
- my $master = $info{'-in'};
- $master->$m('propagate',0);
- $w->{'master'} = $master;
- }
- $w->slave_expand_off;
-}
-
-sub Populate
-{
- my ($w,$args) = @_;
- $w->SUPER::Populate($args);
- $w->{'sep'} = Tk::Adjuster::Item->new($w,-bd => 1, -relief => 'sunken');
- $w->{'but'} = Tk::Adjuster::Item->new($w,-bd => 1, -width => 8, -height => 8, -relief => 'raised');
-
- # Force creation of Frame in widget's Toplevel. This makes a difference
- # where the widget's Toplevel has Delegates('Construct') set.
- # Need to explicitly set frame width to 0 for Win32
- my $l = $w->{'lin'} = Tk::Frame->new($w->toplevel, -bd => 0);
- # my $l = $w->{'lin'} = $w->toplevel->Frame(-bd => 0);
-
- my $cs = $w->ConfigSpecs(-widget => ['PASSIVE','widget','Widget',$w->Parent],
- -side => ['METHOD','side','Side','top'],
- -delay => ['PASSIVE','delay','Delay', 1],
- -background => [['SELF',$w->{'sep'},$w->{'but'}],'background','Background',undef],
- -foreground => [Tk::Configure->new($w->{'lin'},'-background'),'foreground','Foreground','black'],
- -restore => ['PASSIVE','restore', 'Restore', 1],
- );
- $w->_OnDestroy(qw(sep but lin master));
-}
-
-sub side
-{
- my ($w,$val) = @_;
- if (@_ > 1)
- {
- $w->{'side'} = $val;
- my $cursor;
- if ($w->vert)
- {
- $cursor = 'sb_h_double_arrow';
- $w->{'sep'}->configure(-width => 2, -height => 10000);
- }
- else
- {
- $cursor = 'sb_v_double_arrow';
- $w->{'sep'}->configure(-height => 2, -width => 10000);
- }
- my $x;
- foreach $x ($w->{'sep'},$w->{'but'})
- {
- $x->configure(-cursor => $cursor);
- }
- }
- return $w->{'side'};
-}
-
-sub slave
-{
- my $w = shift;
- my $s = $w->cget('-widget');
- return $s;
-}
-
-sub vert
-{
- my $w = shift;
- my $side = $w->cget('-side');
- return 1 if $side eq 'left';
- return -1 if $side eq 'right';
- return 0;
-}
-
-# If the Adjuster gets unmapped, it attempts to restore itself. If its
-# slave is mapped, then it reduces the size of the slave so that there is
-# then room in the master for the Adjuster widget.
-sub Restore
-{
- my $w = shift;
- return if ! $w->toplevel->IsMapped ||
- ! $w->slave->IsMapped ||
- ! $w->cget('-restore');
- $w->vert ? $w->delta_width(0) : $w->delta_height(0);
-}
-
-sub delta_width_bar
-{
- my ($w,$dx) = @_;
- my $l = $w->{'lin'};
- my $r = $w->{'sep'};
- my $t = $w->toplevel;
- my $m = $w->{'master'};
- my $s = $w->slave;
- my ($min_rootx, $max_rootx, $t_border);
- if (! $w->{'lin_info'})
- {
- my $m_border = $m->cget('-bd') + $m->cget('-highlightthickness');
- $t_border = $t->cget('-bd') + $t->cget('-highlightthickness');
- if ($w->cget('-side') eq 'right')
- {
- $min_rootx = $m->rootx + $m_border;
- $max_rootx = $s->rootx + $s->width - 1;
- }
- else
- {
- $min_rootx = $s->rootx;
- $max_rootx = $m->rootx + $m->width - $m_border - 1;
- }
- $w->{'lin_info'} = [$min_rootx, $max_rootx, $t_border];
- }
- else
- {
- ($min_rootx, $max_rootx, $t_border) = @{$w->{'lin_info'}};
- }
- $l->configure(-width => 1, -height => $w->height) unless $l->IsMapped;
-
- my $new_rootx = $w->rootx + $w->{'reqwidth'}/2 + $dx;
- $new_rootx = $min_rootx if $new_rootx < $min_rootx;
- $new_rootx = $max_rootx if $new_rootx > $max_rootx;
- my $placex = $new_rootx - $t->rootx - $t_border;
- my $placey = $w->rooty - $t->rooty - $t_border;
- $l->place(-in => $t, -anchor => 'n', '-x' => $placex, '-y' => $placey);
- my $this = $w->containing($new_rootx, $w->rooty + 1);
- $l->raise($this) if $this && $this ne $t;
-}
-
-sub delta_width
-{
- my ($w,$dx) = @_;
- my $l = $w->{'lin'};
- $l->placeForget;
- my $s = $w->slave;
- if ($s)
- {
- my $m = $w->{'master'};
- my $m_border = $m->cget('-bd') + $m->cget('-highlightthickness');
- my $w_width = $w->{'reqwidth'};
- my $m_width = $m->width;
- my $s_width = $s->width;
- my $max_width = $m_width - $w_width;
- my $max_s_width;
- if ($w->cget('-side') eq 'right')
- {
- $dx = -$dx;
- $max_s_width = $max_width -
- ($m->rootx + $m_width - ($s->rootx+$s_width)) - $m_border;
- }
- else
- {
- $max_s_width = $max_width - ($s->rootx - $m->rootx) - $m_border;
- }
- my $new_width = $s_width+$dx;
- $new_width = $max_s_width if $new_width > $max_s_width;
- $new_width = 0 if $new_width < 0;
- $s->GeometryRequest($new_width, $s->height);
- }
-}
-
-sub delta_height_bar
-{
- my ($w,$dy) = @_;
- my $l = $w->{'lin'};
- my $r = $w->{'sep'};
- my $t = $w->toplevel;
- my $m = $w->{'master'};
- my $s = $w->slave;
- my ($min_rooty, $max_rooty, $t_border);
- if (! $w->{'lin_info'})
- {
- my $m_border = $m->cget('-bd') + $m->cget('-highlightthickness');
- $t_border = $t->cget('-bd') + $t->cget('-highlightthickness');
- if ($w->cget('-side') eq 'bottom')
- {
- $min_rooty = $m->rooty + $m_border;
- $max_rooty = $s->rooty + $s->height - 1;
- }
- else
- {
- $min_rooty = $s->rooty;
- $max_rooty = $m->rooty + $m->height - $m_border - 1;
- }
- $w->{'lin_info'} = [$min_rooty, $max_rooty, $t_border];
- }
- else
- {
- ($min_rooty, $max_rooty, $t_border) = @{$w->{'lin_info'}};
- }
- $l->configure(-height => 1, -width => $w->width) unless $l->IsMapped;
-
- my $new_rooty = $w->rooty + $w->{'reqheight'}/2 + $dy;
- $new_rooty = $min_rooty if $new_rooty < $min_rooty;
- $new_rooty = $max_rooty if $new_rooty > $max_rooty;
- my $placey = $new_rooty - $t->rooty - $t_border;
- my $placex = $w->rootx - $t->rootx - $t_border;
- $l->place(-in => $t, -anchor => 'w', '-x' => $placex, '-y' => $placey);
- my $this = $w->containing($w->rootx + 1, $new_rooty);
- $l->raise($this) if $this && $this ne $t;
-}
-
-sub delta_height
-{
- my ($w,$dy) = @_;
- my $l = $w->{'lin'};
- $l->placeForget;
- my $s = $w->slave;
- if ($s)
- {
- my $m = $w->{'master'};
- my $m_border = $m->cget('-bd') + $m->cget('-highlightthickness');
- my $w_height = $w->{'reqheight'};
- my $m_height = $m->height;
- my $s_height = $s->height;
- my $max_height = $m_height - $w_height;
- my $max_s_height;
- if ($w->cget('-side') eq 'bottom')
- {
- $dy = -$dy;
- $max_s_height = $max_height -
- ($m->rooty + $m_height - ($s->rooty+$s_height)) - $m_border;
- }
- else
- {
- $max_s_height = $max_height - ($s->rooty - $m->rooty) - $m_border;
- }
- my $new_height = $s_height+$dy;
-
- $new_height = $max_s_height if $new_height > $max_s_height;
- $new_height = 0 if $new_height < 0;
- $s->GeometryRequest($s->width, $new_height);
- }
-}
-
-# Turn off expansion in the slave.
-# This is done only if necessary, as calls to pack/gridConfigure cause
-# repacking.
-# Before call to pack/gridConfigure, the reqwidth/reqheight is set to the
-# current width/height. This is because the geometry managers use
-# the requested values, not the actual, to calculate the new geometry.
-sub slave_expand_off
-{
- my $w = shift;
- my $s = $w->slave;
- return if ! $s;
-
- my $manager = $s->manager;
- if ($manager eq 'pack')
- {
- my %info = $s->packInfo;
- my $expand = $info{'-expand'};
- if ($expand)
- {
- $s->GeometryRequest($s->width, $s->height);
- $s->packConfigure(-expand => 0);
- }
- }
- elsif ($manager eq 'grid')
- {
- my %info = $s->gridInfo;
- my $master = $info{'-in'};
- if ($w->vert)
- {
- my $col = $info{'-column'};
- my $expand = $master->gridColumnconfigure($col, '-weight');
- if ($expand)
- {
- $s->GeometryRequest($s->width, $s->height);
- $master->gridColumnconfigure($col, -weight => 0);
- }
- }
- else
- {
- my $row = $info{'-row'};
- my $expand = $master->gridRowconfigure($row, '-weight');
- if ($expand)
- {
- $s->GeometryRequest($s->width, $s->height);
- $master->gridRowconfigure($row, -weight => 0);
- }
- }
- }
-}
-
-1;
-
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Adjuster.pod b/Master/tlpkg/tlperl/lib/Tk/Adjuster.pod
deleted file mode 100644
index 7d094f4e262..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Adjuster.pod
+++ /dev/null
@@ -1,223 +0,0 @@
-
-=head1 NAME
-
-Tk::Adjuster - Allow size of packed widgets to be adjusted by user
-
-=for pm Tk/Adjuster.pm
-
-=for category Tk Geometry Management
-
-=head1 SYNOPSIS
-
-use Tk::Adjuster;
-
-I<$adjuster> = I<$widget>->B<Adjuster>I<(?options?)>;
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<restore>
-
-=item Class: B<Restore>
-
-=item Switch: B<-restore>
-
-Specifies a boolean value that determines whether the Adjuster
-should forcibly attempt to make room
-for itself (by reducing the size of its managed widget) when it is
-unmapped (for example, due to a size change in a top level window).
-The default value is 1.
-
-=item Name: B<side>
-
-=item Class: B<Side>
-
-=item Switch: B<-side>
-
-Specifies the side on which the managed widget lies relative to the
-Adjuster. In conjunction with the pack geometry manager, this relates to
-the side of the master against which the managed widget and the Adjuster
-are packed.
-Must be B<left>, B<right>, B<top>, or B<bottom>. Defaults to B<top>.
-
-=item Name: B<widget>
-
-=item Class: B<Widget>
-
-=item Switch: B<-widget>
-
-Specifies the widget which is to be managed by the Adjuster.
-
-=back
-
-=head1 DESCRIPTION
-
-B<Tk::Adjuster> is a Frame containing a "line" and a "blob".
-
-Dragging with Mouse Button-1 results in a line being dragged
-to indicate new size. Releasing Button-1 submits GeometryRequests
-on behalf of the managed widget which will cause the packer to change the
-widget's size.
-
-If Drag is done with Shift button down, then GeometryRequests are made
-in "real time" so that text-flow effects can be seen, but as a lot more
-work is done behaviour may be sluggish.
-
-If widget is packed with -side => left or -side => right then width is
-adjusted. If packed -side => top or -side => bottom then height is adjusted.
-
-B<packPropagate> is turned off for the master window to prevent adjustment
-changing overall window size. Similarly B<packPropagate> is turned off
-for the managed widget if it has things packed inside it. This is so that
-the GeometryRequests made by B<Tk::Adjuster> are not overridden by pack.
-
-In addition, the managed widget is made non-expandable
-to prevent the geometry manager reallocating freed space in the master
-back to the managed widget.
-Note however that expansion is turned off only after the Adjuster is mapped,
-which allows the managed widget to expand naturally on window creation.
-
-The Tk::Widget method, B<packAdjust>, calls pack on the widget, then
-creates an instance of B<Tk::Adjuster>,
-and packs that "after" the widget. Its use has two disadvantages however: the
-Adjuster widget is not made available to the caller, and
-options cannot be set on the Adjuster. For these reasons, the Tk::Adjuster
-method, B<packAfter> is preferred, but B<packAdjust> is retained
-for backwards compatibility.
-
-=head1 WIDGET METHODS
-
-=over 4
-
-=item I<$adjuster>->B<packAfter>(I<managed_widget, ?pack_options?>)
-
-This command configures the Adjuster's B<-widget> and B<-side> options
-respectively to I<managed_widget> and the B<-side> value specified in
-I<pack_options> (B<top> if not specified). It then packs the Adjuster
-after I<managed_widget>, with B<-fill> set to B<x> or B<y> as appropriate.
-
-=item I<$adjuster>->B<packForget>I<?(boolean)?>
-
-This command calls B<Tk::Widget::packForget> on the Adjuster.
-If a parameter is provided and it has a true boolean value, then
-B<packForget> is also called on the managed widget.
-
-=item I<$adjuster>->B<slave>
-
-This command returns the value I<$adjuster>->I<cget('-widget')>, ie. the
-reference to the managed widget.
-
-=back
-
-=head1 EXAMPLES
-
-B<Using an Adjuster to separate two widgets, whereby the left widget
-is managed, and right widget expands to fill space on a window resize>
-
-a) Using packAfter (preferred interface)
-
- use Tk;
- use Tk::Adjuster;
-
- my $f = MainWindow->new;
- my $lst1 = $f->Listbox();
- my $adj1 = $f->Adjuster();
- my $lst2 = $f->Listbox();
-
- my $side = 'left';
- $lst1->pack(-side => $side, -fill => 'both', -expand => 1);
- $adj1->packAfter($lst1, -side => $side);
- $lst2->pack(-side => $side, -fill => 'both', -expand => 1);
- MainLoop;
-
-b) Using packAdjust
-
- use Tk;
- use Tk::Adjuster;
-
- my $f = MainWindow->new;
- my $lst1 = $f->Listbox();
- my $lst2 = $f->Listbox();
-
- my $side = 'left';
- $lst1->packAdjust(-side => $side, -fill => 'both');
- $lst2->pack (-side => $side, -fill => 'both', -expand => 1);
- MainLoop;
-
-c) Using the standard Tk::Widget::pack
-
- use Tk;
- use Tk::Adjuster;
-
- my $f = MainWindow->new;
- my $side = 'left';
- my $lst1 = $f->Listbox();
- my $adj = $f->Adjuster(-widget => $lst1, -side => $side);
- my $lst2 = $f->Listbox();
-
- $lst1->pack(-side => $side, -fill => 'both', -expand => 1);
- $adj->pack (-side => $side, -fill => 'y');
- $lst2->pack(-side => $side, -fill => 'both', -expand => 1);
-
- MainLoop;
-
-Changing the above examples so that $side has the value 'right' means the
-left widget expands to fill space on a window resize.
-
-Changing the above examples so that $side has the value 'top'
-produces a testcase with a horizontal Adjuster.
-Here the bottom widget expands to fill space on a window resize.
-Packing to the 'bottom' makes the top widget expand to fill space on window
-resize.
-
-B<Using -restore =E<gt> 0 for multiple columns>
-
-In the case of multiple columns (or rows) the "restore" functionality of the
-Adjuster can be inconvenient. When the user adjusts the width of one column
-and thereby pushes the Adjuster of another column off the window, this
-adjuster tries to restore itself by reducing the size of its managed widget.
-This has the effect that column widths shrink; and the original size
-is not restored when
-the user reverses the originating change. The B<-restore> option can be
-used to turn off this functionality. (It makes some sense, however, to
-leave B<-restore>
-turned on for the first-packed Adjuster, so that at least one Adjuster
-always remains visible.)
-
- use Tk;
- use Tk::Adjuster;
- my $f = MainWindow->new;
- my $lst1 = $f->Listbox();
- my $adj1 = $f->Adjuster();
- my $lst2 = $f->Listbox();
- my $adj2 = $f->Adjuster(-restore => 0);
- my $lst3 = $f->Listbox();
-
- my $side = 'left';
- $lst1->pack(-side => $side, -fill => 'both', -expand => 1);
- $adj1->packAfter($lst1, -side => $side);
- $lst2->pack(-side => $side, -fill => 'both', -expand => 1);
- $adj2->packAfter($lst2, -side => $side);
- $lst3->pack(-side => $side, -fill => 'both', -expand => 1);
-
- MainLoop;
-
-=head1 BUGS
-
-It is currently not possible to configure the appearance of the Adjuster.
-It would be nice to be able to set the width and relief of the Adjuster "line"
-and the presence/absence of the "blob" on the Adjuster.
-
-Tk::Adjuster works theoretically with the grid geometry manager but there
-are currently some problems which seem to be due to bugs in grid:
-
- a) There's never an Unmap event for the adjuster, so the "restore"
- functionality has no effect.
- b) After adjusting, widgets protrude into the border of the master.
- c) grid('Propagate', 0) on MainWindow has no effect - window shrinks/grows
- when widgets are adjusted.
- d) Widgets shuffle to correct position on startup
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/After.pm b/Master/tlpkg/tlperl/lib/Tk/After.pm
deleted file mode 100644
index 9b36ff24b9c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/After.pm
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright (c) 1995-2004 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::After;
-use Carp;
-
-use vars qw($VERSION);
-$VERSION = '4.008'; # $Id: //depot/Tkutf8/Tk/After.pm#11 $
-
-sub _cancelAll
-{
- my $w = shift;
- my $h = delete $w->{_After_};
- foreach my $obj (values %$h)
- {
- # carp "Auto cancel ".$obj->[1]." for ".$obj->[0]->PathName;
- $obj->cancel;
- bless $obj,"Tk::After::Cancelled";
- }
-}
-
-sub Tk::After::Cancelled::once { }
-sub Tk::After::Cancelled::repeat { }
-sub Tk::After::Cancelled::cancel { }
-
-sub submit
-{
- my $obj = shift;
- my $w = $obj->[0];
- my $id = $obj->[1];
- my $t = $obj->[2];
- my $method = $obj->[3];
- delete($w->{_After_}{$id}) if (defined $id);
- $id = $w->Tk::after($t,[$method => $obj]);
- unless (exists $w->{_After_})
- {
- $w->{_After_} = {};
- $w->OnDestroy([\&_cancelAll, $w]);
- }
- $w->{_After_}{$id} = $obj;
- $obj->[1] = $id;
- return $obj;
-}
-
-sub DESTROY
-{
- my $obj = shift;
- $obj->cancel;
- undef $obj->[0];
- undef $obj->[4];
-}
-
-sub new
-{
- my ($class,$w,$t,$method,@cb) = @_;
- my $cb = (@cb == 1) ? shift(@cb) : [@cb];
- my $obj = bless [$w,undef,$t,$method,Tk::Callback->new($cb)],$class;
- return $obj->submit;
-}
-
-sub cancel
-{
- my $obj = shift;
- my $id = $obj->[1];
- my $w = $obj->[0];
- if ($id)
- {
- $w->Tk::after('cancel'=> $id) if Tk::Exists($w);
- delete $w->{_After_}{$id} if exists $w->{_After_};
- $obj->[1] = undef;
- }
- return $obj;
-}
-
-sub repeat
-{
- my $obj = shift;
- $obj->submit;
- local $Tk::widget = $obj->[0];
- $obj->[4]->Call;
-}
-
-sub once
-{
- my $obj = shift;
- my $w = $obj->[0];
- my $id = $obj->[1];
- delete $w->{_After_}{$id};
- local $Tk::widget = $w;
- $obj->[4]->Call;
-}
-
-sub time {
- my $obj = shift;
- my $delay = shift;
- if (defined $delay) {
- $obj->cancel if $delay == 0;
- $obj->[2] = $delay;
- }
- $obj->[2];
-}
-
-1;
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Animation.pm b/Master/tlpkg/tlperl/lib/Tk/Animation.pm
deleted file mode 100644
index 24cfacb4a7c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Animation.pm
+++ /dev/null
@@ -1,230 +0,0 @@
-package Tk::Animation;
-
-use vars qw($VERSION);
-$VERSION = '4.008'; # $Id: //depot/Tkutf8/Tk/Animation.pm#8 $
-
-use Tk::Photo;
-use base qw(Tk::Photo);
-
-Construct Tk::Widget 'Animation';
-
-sub MainWindow
-{
- return shift->{'_MainWIndow_'};
-}
-
-sub add_frame
-{
- my $obj = shift;
- $obj->{'_frames_'} = [] unless exists $obj->{'_frames_'};
- push(@{$obj->{'_frames_'}},@_);
-}
-
-sub new
-{
- my ($class,$widget,%args) = @_;
- my $obj = $class->SUPER::new($widget,%args);
- $obj->{'_MainWIndow_'} = $widget->MainWindow;
- if ($args{'-format'} eq 'gif')
- {
- my @images;
- local $@;
- while (1)
- {
- my $index = @images;
- $args{'-format'} = "gif -index $index";
- my $img;
- eval {local $SIG{'__DIE__'}; $img = $class->SUPER::new($widget,%args) };
- last if $@;
- push(@images,$img);
- }
- if (@images > 1)
- {
- $obj->add_frame(@images);
- $obj->{'_frame_index_'} = 0;
- }
- }
- $obj->set_image( 0 );
- $obj->_get_gif_info;
- return $obj;
-}
-
-sub fast_forward {
-
- my( $self, $delta) = @_;
-
- $self->{_delta_} = $delta;
- if( not exists $self->{_playing_} ) {
- my $playing = exists $self->{'_NextId_'};
- $self->{_playing_} = $playing;
- $self->resume_animation if not $playing;
- } else {
- my $playing = delete $self->{_playing_};
- $self->pause_animation if not $playing;
- }
-
-} # end fast_forward
-
-*fast_reverse = \&fast_forward;
-
-sub frame_count {
- my $frames = shift->{'_frames_'};
- return -1 unless $frames;
- return @$frames;
-}
-
-sub set_disposal_method {
- my( $self, $blank ) = @_;
- $blank = 1 if not defined $blank;
- $self->{_blank_} = $blank;
- $blank;
-}
-
-sub set_image
-{
- my ($obj,$index) = @_;
- my $frames = $obj->{'_frames_'};
- return unless $frames && @$frames;
- $index = 0 unless $index < @$frames;
- $obj->blank if $obj->{_blank_}; # helps some make others worse
- $obj->copy($frames->[$index]);
- $obj->{'_frame_index_'} = $index;
-}
-
-sub next_image
-{
- my ($obj, $delta) = @_;
- $obj->_next_image($delta);
-}
-
-sub _next_image
-{
- my ($obj, $delta, $in_animation) = @_;
- $delta = $obj->{_delta_} unless $delta;
- my $frames = $obj->{'_frames_'};
- return unless $frames && @$frames;
- my $next_index = (($obj->{'_frame_index_'} || 0) + $delta);
- if ($next_index > @$frames && $in_animation && $obj->{'_loop_'} ne 'forever')
- {
- return 0; # signal to stop animation
- }
- $next_index %= @$frames;
- $obj->set_image($next_index);
- 1;
-}
-
-sub prev_image { shift->next_image( -1 ) }
-
-sub next_image_in_animation
-{
- my ($obj, $delta) = @_;
- my $continue = $obj->_next_image($delta, 1);
- if (!$continue && $self->{'_NextId_'})
- {
- $obj->pause_animation;
- }
-}
-
-sub pause_animation {
- my $self = shift;
- my $id = delete $self->{'_NextId_'};
- Tk::catch { $id->cancel } if $id;
-}
-
-sub resume_animation {
- my( $self, $period ) = @_;
- if( not defined $self->{'_period_'} ) {
- $self->{'_period_'} = defined( $period ) ? $period : 100;
- }
- $period = $self->{'_period_'};
- my $w = $self->MainWindow;
- $self->{'_NextId_'} = $w->repeat( $period => [ $self => 'next_image_in_animation' ] );
-}
-
-sub start_animation
-{
- my ($obj,$period) = @_;
- my $frames = $obj->{'_frames_'};
- return unless $frames && @$frames;
- my $w = $obj->MainWindow;
- $obj->stop_animation;
- $obj->{'_period_'} = $period if $period;
- $obj->{'_NextId_'} = $w->repeat($obj->{'_period_'},[$obj,'next_image_in_animation']);
-}
-
-sub stop_animation
-{
- my ($obj) = @_;
- my $id = delete $obj->{'_NextId_'};
- Tk::catch { $id->cancel } if $id;
- $obj->set_image(0);
-}
-
-sub _get_gif_info
-{
- my ($obj) = @_;
- my $info;
- if (defined(my $file = $obj->cget(-file)) && eval { require Image::Info; 1; })
- {
- $info = Image::Info::image_info($file);
- }
- elsif (defined(my $data = $obj->cget(-data)))
- {
- if ($data =~ m{^GIF8} && eval { require Image::Info; 1; })
- {
- $info = Image::Info::image_info(\$data);
- }
- elsif (eval { require Image::Info; require MIME::Base64; 1; })
- {
- $data = MIME::Base64::decode_base64($data);
- $info = Image::Info::image_info(\$data);
- }
- }
- if ($info)
- {
- $obj->{'_blank_'} = $info->{DisposalMethod} == 2 || $info->{DisposalMethod} == 3;
- $obj->{'_period_'} = $info->{Delay}*1000 if defined $info->{Delay};
- $obj->{'_loop_'} = $info->{GIF_Loop};
- }
- $obj->{'_blank_'} = 0 if !defined $obj->{'_blank_'};
- $obj->{'_period_'} = 100 if !defined $obj->{'_period_'};
- $obj->{'_loop_'} = 'forever' if !defined $obj->{'_loop_'};
- $obj->{'_delta_'} = 1;
-}
-
-1;
-
-__END__
-
-#
-# This almost works for changing the animation on the fly
-# but does not resize things correctly
-#
-
-sub gif_sequence
-{
- my ($obj,%args) = @_;
- my $widget = $obj->MainWindow;
- my @images;
- local $@;
- while (1)
- {
- my $index = @images;
- $args{'-format'} = "gif -index $index";
- my $img;
- eval
- {local $SIG{'__DIE__'};
- my $img = $widget->Photo(%args);
- push(@images,$img);
- };
- last if $@;
- }
- if (@images)
- {
- delete $obj->{'_frames_'};
- $obj->add_frame(@images);
- $obj->configure(-width => 0, -height => 0);
- $obj->set_frame(0);
- }
-}
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Animation.pod b/Master/tlpkg/tlperl/lib/Tk/Animation.pod
deleted file mode 100644
index 996b035b1c5..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Animation.pod
+++ /dev/null
@@ -1,92 +0,0 @@
-
-=head1 NAME
-
-Tk::Animation - Display sequence of Tk::Photo images
-
-=for pm Tk/Animation.pm
-
-=for category Tk Image Classes
-
-=head1 SYNOPSIS
-
- use Tk::Animation
- my $img = $widget->Animation('-format' => 'gif', -file => 'somefile.gif');
-
- $img->add_frame(@images);
-
- $img->start_animation;
- $img->start_animation( $period );
-
- $img->next_image;
- $img->prev_image;
- $img->set_image( 0 .. $#frames );
-
- $img->pause_animation;
- $img->resume_animation( $period );
-
- $img->fast_forward( $multiplier );
- $img->fast_reverse( $multiplier );
-
- $img->stop_animation;
-
- $img->set_disposal_method( $boolean );
-
-=head1 DESCRIPTION
-
-In the simple case when C<Animation> is passed a GIF89 style GIF with
-multiple 'frames', it will build an internal array of C<Photo> images.
-
-The C<add_frame> method adds images to the sequence. It is provided
-to allow animations to be constructed from separate images.
-All images must be C<Photo>s and should all be the same size.
-
-C<start_animation($period)> then initiates a C<repeat> with specified
-I<$period> to sequence through these images. As for raw C<repeat>
-I<$period> is in milliseconds, for a 50Hz monitor it should be at
-least 20ms. If I<$period> is omitted it is determined from the GIF
-metadata (see below), or if this is not possible it defaults to 100
-milliseconds.
-
-C<stop_animation> cancels the C<repeat> and resets the image to the first
-image in the sequence.
-
-For fine-grained control C<next_image> and C<prev_image> move one frame forward
-or backward. C<set_image> randomly positions the animation to a particular frame.
-
-C<pause_animation> pauses the movie and C<resume_animation> continues from the
-pause point.
-
-C<fast_forward> and C<fast_reverse> speed through the movie either
-forwards or backwards. $multiplier specifies how much faster the
-animation moves.
-
-If L<Image::Info> is installed, then the repeat period time and
-disposal method of GIF animations are determined from the GIF metadata
-directly. Otherwise the disposal method must be set manually by using
-C<set_disposal_method> (1 for blanking the previous images, 0 for
-leaving the previous images as is). The repeat period time may be
-given in the C<start_animation> method.
-
-=head1 NOTES
-
-C<set_disposal_method> was formerly known as C<blank> method, but the
-naming of this method was a mistake.
-
-If the disposal method is not set correctly, either by
-C<set_disposal_method> or by determining from the GIF metadata, then
-the following may happen: By default Animation leaves the previous
-movie frame in the animation photo. Many times overlaying subsequent
-frames produces a composite that looks blurred.
-
-=head1 BUGS
-
-This module should not depend on a module which is not declared as a
-dependency (Image::Info).
-
-The delays between images may vary in a GIF animation. This cannot be
-handled by this module yet.
-
-The handling of the various disposal methods is not correct.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Balloon.pm b/Master/tlpkg/tlperl/lib/Tk/Balloon.pm
deleted file mode 100644
index 4be9f6db9ae..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Balloon.pm
+++ /dev/null
@@ -1,644 +0,0 @@
-#
-# The help widget that provides both "balloon" and "status bar"
-# types of help messages.
-#
-# This is a patched version of Balloon 3.037 - it adds support
-# for different orientations of the balloon widget, depending
-# on wether there's enough space for it. The little arrow now
-# should always point directly to the client.
-# Added by Gerhard Petrowitsch (gerhard.petrowitsch@philips.com)
-#
-# Nov 1, 2003 - Jack Dunnigan
-# Added support for more than one screen in single logical
-# screen mode (i.e. xinerama, dual monitors)
-
-package Tk::Balloon;
-
-use vars qw($VERSION);
-$VERSION = '4.012'; # was: sprintf '4.%03d', q$Revision: #10 $ =~ /\D(\d+)\s*$/;
-
-use Tk qw(Ev Exists);
-use Carp;
-require Tk::Toplevel;
-
-Tk::Widget->Construct('Balloon');
-use base qw(Tk::Toplevel);
-
-# use UNIVERSAL; avoid the UNIVERSAL.pm file subs are XS in perl core
-
-use strict;
-
-my @balloons;
-my $button_up = 0;
-my %arrows = ( TL => 'R0lGODlhBgAGAJEAANnZ2QAAAP///////yH5BAEAAAAALAAAAAAGAAYAAAINjA0HAEdwLCwMKIQfBQA7',
- TR => 'R0lGODlhBgAGAJEAANnZ2QAAAP///////yH5BAEAAAAALAAAAAAGAAYAAAIRBGMDwAEQkgAIAAoCABEEuwAAOw==',
- BR => 'R0lGODlhBgAGAJEAANnZ2QAAAP///////yH5BAEAAAAALAAAAAAGAAYAAAIPDOHHhYVRAIgIAEISQLELADs=',
- BL => 'R0lGODlhBgAGAJEAANnZ2QAAAP///////yH5BAEAAAAALAAAAAAGAAYAAAIPhB1xAUFALCIMKAaAWQAVADs=',
- NO => 'R0lGODlhAQABAJEAANnZ2f///////////yH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='
- );
-
-
-sub ClassInit {
- my ($class, $mw) = @_;
- $mw->bind('all', '<Motion>', ['Tk::Balloon::Motion', Ev('X'), Ev('Y'), Ev('s')]);
- $mw->bind('all', '<Leave>', ['Tk::Balloon::Motion', Ev('X'), Ev('Y'), Ev('s')]);
- $mw->bind('all', '<Button>', 'Tk::Balloon::ButtonDown');
- $mw->bind('all', '<ButtonRelease>', 'Tk::Balloon::ButtonUp');
- return $class;
-}
-
-sub Populate {
- my ($w, $args) = @_;
-
- $w->SUPER::Populate($args);
-
- $w->overrideredirect(1);
- $w->withdraw;
- # Only the container frame's background should be black... makes it
- # look better.
- $w->configure(-background => 'black');
-
- # the balloon arrows
- $w->{img_tl} = $w->Photo(-data => $arrows{TL}, -format => 'gif');
- $w->{img_tr} = $w->Photo(-data => $arrows{TR}, -format => 'gif');
- $w->{img_bl} = $w->Photo(-data => $arrows{BL}, -format => 'gif');
- $w->{img_br} = $w->Photo(-data => $arrows{BR}, -format => 'gif');
- $w->{img_no} = $w->Photo(-data => $arrows{NO}, -format => 'gif');
- $w->OnDestroy([$w, '_destroyed']);
-
- $w->{'pointer'} = $w->Label(-bd=>0, -relief=>'flat',-image=>$w->{img_no});
-
- # the balloon message
- # We give the Label a big borderwidth
- # ..enough to slide a 6x6 gif image along the border including some space
-
- my $ml = $w->Label(-bd => 0,
- -padx => 10,
- -pady => 3,
- -justify => 'left',
- -relief=>'flat');
- $w->Advertise('message' => $ml);
-
- $ml->pack(
- -side => 'top',
- -anchor => 'nw',
- -expand => 1,
- -fill => 'both',
- -padx => 0,
- -pady => 0);
-
- # append to global list of balloons
- push(@balloons, $w);
- $w->{'popped'} = 0;
- $w->{'buttonDown'} = 0;
- $w->{'menu_index'} = 'none';
- $w->{'menu_index_over'} = 'none';
- $w->{'canvas_tag'} = '';
- $w->{'canvas_tag_over'} = '';
- $w->{'current_screen'} = 0;
-
- $w->ConfigSpecs(-installcolormap => ['PASSIVE', 'installColormap', 'InstallColormap', 0],
- -initwait => ['PASSIVE', 'initWait', 'InitWait', 350],
- -state => ['PASSIVE', 'state', 'State', 'both'],
- -statusbar => ['PASSIVE', 'statusBar', 'StatusBar', undef],
- -statusmsg => ['PASSIVE', 'statusMsg', 'StatusMsg', ''],
- -balloonmsg => ['PASSIVE', 'balloonMsg', 'BalloonMsg', ''],
- -balloonposition => ['PASSIVE', 'balloonPosition', 'BalloonPosition', 'widget'],
- -postcommand => ['CALLBACK', 'postCommand', 'PostCommand', undef],
- -cancelcommand => ['CALLBACK', 'cancelCommand', 'CancelCommand', undef],
- -motioncommand => ['CALLBACK', 'motionCommand', 'MotionCommand', undef],
- -background => ['DESCENDANTS', 'background', 'Background', '#C0C080'],
- -foreground => ['DESCENDANTS', 'foreground', 'Foreground', undef],
- -font => [$ml, 'font', 'Font', '-*-helvetica-medium-r-normal--*-120-*-*-*-*-*-*'],
- -borderwidth => ['SELF', 'borderWidth', 'BorderWidth', 1],
- -numscreens=>['PASSIVE', 'numScreens','NumScreens',1],
- );
-}
-
-sub _get_client {
- my ($w, $client) = @_;
- if ($client->can("Subwidget") and my $scrolled = $client->Subwidget("scrolled")) {
- $scrolled;
- } else {
- $client;
- }
-}
-
-# attach a client to the balloon
-sub attach {
- my ($w, $client, %args) = @_;
- $client = $w->_get_client($client);
- foreach my $key (grep(/command$/,keys %args))
- {
- $args{$key} = Tk::Callback->new($args{$key});
- }
- my $msg = delete $args{-msg};
- $args{-balloonmsg} = $msg unless exists $args{-balloonmsg};
- $args{-statusmsg} = $msg unless exists $args{-statusmsg};
- $w->{'clients'}{$client} = \%args;
- $client->OnDestroy([$w, 'detach', $client]);
-}
-
-# detach a client from the balloon.
-sub detach {
- my ($w, $client) = @_;
- $client = $w->_get_client($client);
- if (Exists($w))
- {
- $w->Deactivate if ($client->IS($w->{'client'}));
- }
- delete $w->{'clients'}{$client};
-}
-
-sub GetOption
-{
- my ($w,$opt,$client) = @_;
- $client = $w->{'client'} unless defined $client;
- if (defined $client)
- {
- my $info = $w->{'clients'}{$client};
- return $info->{$opt} if exists $info->{$opt};
- }
- return $w->cget($opt);
-}
-
-sub Motion {
- my ($ewin, $x, $y, $s) = @_;
-
- return if not defined $ewin;
-
- # Find which window we are over
- my $over = $ewin->Containing($x, $y);
-
- return if &grabBad($ewin, $over);
-
- foreach my $w (@balloons) {
- # if cursor has moved over the balloon -- ignore
- next if defined $over and $over->toplevel eq $w;
-
- # find the client window that matches
- my $client = $over;
- while (defined $client) {
- last if (exists $w->{'clients'}{$client});
- if ($client->can("MasterMenu")) {
- my $master = $client->MasterMenu;
- if ($master && exists $w->{'clients'}{$master}) {
- $w->{'clients'}{$client} = $w->{'clients'}{$master};
- last;
- }
- }
- $client = $client->Parent;
- }
- if (defined $client) {
- # popping up disabled -- ignore
- my $state = $w->GetOption(-state => $client);
- next if $state eq 'none';
- # Check if a button was recently released:
- my $deactivate = 0;
- if ($button_up) {
- $deactivate = 1;
- $button_up = 0;
- }
- # Deactivate it if the motioncommand says to:
- my $command = $w->GetOption(-motioncommand => $client);
- $deactivate = $command->Call($client, $x, $y) if defined $command;
- if ($deactivate)
- {
- $w->Deactivate;
- }
- else
- {
- # warn "deact: $client $w->{'client'}";
- $w->Deactivate unless $client->IS($w->{'client'});
- my $msg = $client->BalloonInfo($w,$x,$y,'-statusmsg','-balloonmsg');
- if (defined($msg))
- {
- my $delay = delete $w->{'delay'};
- $delay->cancel if defined $delay;
- my $initwait = $w->GetOption(-initwait => $client);
- $w->{'delay'} = $client->after($initwait, sub {$w->SwitchToClient($client);});
- $w->{'client'} = $client;
- }
- }
- } else {
- # cursor is at a position covered by a non client
- # pop down the balloon if it is up or scheduled.
- $w->Deactivate;
- }
- }
-}
-
-sub ButtonDown {
- my ($ewin) = @_;
-
- foreach my $w (@balloons) {
- $w->Deactivate;
- }
-}
-
-sub ButtonUp {
- $button_up = 1;
-}
-
-# switch the balloon to a new client
-sub SwitchToClient {
- my ($w, $client) = @_;
- return unless Exists($w);
- return unless Exists($client);
- return unless $client->IS($w->{'client'});
- return if &grabBad($w, $client);
- my $command = $w->GetOption(-postcommand => $client);
- if (defined $command) {
- # Execute the user's command and return if it returns false:
- my $pos = $command->Call($client);
- return if not $pos;
- if ($pos =~ /^(\d+),(\d+)$/) {
- # Save the returned position so the Popup method can use it:
- $w->{'clients'}{$client}{'postposition'} = [$1, $2];
- }
- }
- my $state = $w->GetOption(-state => $client);
- $w->Popup if ($state =~ /both|balloon/);
- $w->SetStatus if ($state =~ /both|status/);
- $w->{'popped'} = 1;
- $w->{'delay'} = $w->repeat(200, ['Verify', $w, $client]);
-}
-
-sub grabBad {
-
- my ($w, $client) = @_;
-
- return 0 unless Exists($client);
- my $g = $w->grabCurrent;
- return 0 unless defined $g;
- return 0 if $g->isa('Tk::Menu');
- return 0 if $g eq $client;
-
- # Ignore grab check if $w is the balloon itself.
- # XXX Why is this necessary? Is it possible to remove the grabBad
- # condition in SwitchToClient altogether?
- return 0 if $w->isa(__PACKAGE__);
-
- # The grab is OK if $client is a decendant of $g. Use the internal Tcl/Tk
- # pathname (yes, it's cheating, but it's legal).
-
- return 0 if $g == $w->MainWindow;
- my $wp = $w->PathName;
- my $gp = $g->PathName;
- return 0 if $wp =~ /^$gp/;
- return 1; # bad grab
-
-} # end grabBad
-
-
-sub Subclient
-{
- my ($w,$data) = @_;
- if (defined($w->{'subclient'}) && (!defined($data) || $w->{'subclient'} ne $data))
- {
- $w->Deactivate;
- }
- $w->{'subclient'} = $data;
-}
-
-sub Verify {
- my $w = shift;
- my $client = shift;
- my ($X,$Y) = (@_) ? @_ : ($w->pointerxy);
- my $over = $w->Containing($X,$Y);
- return if not defined $over or ($over->toplevel eq $w);
- my $deactivate = # DELETE? or move it to the isa-Menu section?:
- # ($over ne $client) or
- not $client->IS($w->{'client'})
-# or (!$client->isa('Tk::Menu') && $w->grabCurrent);
-# or $w->grabbad($client);
- or &grabBad($w, $client);
- if ($deactivate)
- {
- $w->Deactivate;
- }
- else
- {
- $client->BalloonInfo($w,$X,$Y,'-statusmsg','-balloonmsg');
- }
-}
-
-sub Deactivate {
- my ($w) = @_;
- my $delay = delete $w->{'delay'};
- $delay->cancel if defined $delay;
- if ($w->{'popped'}) {
- my $client = $w->{'client'};
- my $command = $w->GetOption(-cancelcommand => $client);
- if (defined $command) {
- # Execute the user's command and return if it returns false:
- return if not $command->Call($client);
- }
- $w->withdraw;
- $w->ClearStatus;
- $w->{'popped'} = 0;
- $w->{'menu_index'} = 'none';
- $w->{'canvas_tag'} = '';
- }
- $w->{'client'} = undef;
- $w->{'subclient'} = undef;
- $w->{'location'} = undef;
-}
-
-sub Popup {
- my ($w) = @_;
- if ($w->cget(-installcolormap)) {
- $w->colormapwindows($w->winfo('toplevel'))
- }
- my $client = $w->{'client'};
- return if not defined $client or not exists $w->{'clients'}{$client};
- my $msg = $client->BalloonInfo($w, $w->pointerxy,'-balloonmsg');
- # Dereference it if it looks like a scalar reference:
- $msg = $$msg if UNIVERSAL::isa($msg, 'SCALAR');
-
- $w->Subwidget('message')->configure(-text => $msg);
- $w->idletasks;
-
- return unless Exists($w);
- return unless Exists($client);
- return if $msg eq ''; # Don't popup empty balloons.
-
- my ($x, $y);
- my $pos = $w->GetOption(-balloonposition => $client);
- my $postpos = delete $w->{'clients'}{$client}{'postposition'};
- if (defined $postpos) {
- # The postcommand must have returned a position for the balloon - I will use that:
- ($x,$y) = @{$postpos};
- } elsif ($pos eq 'mouse') {
- ($x,$y)=$client->pointerxy; # We adjust the position later
- } elsif ($pos eq 'widget') {
- $x = int($client->rootx + $client->width/2);
- $y = int($client->rooty + int ($client->height/1.3));
- } else {
- croak "'$pos' is not a valid position for the balloon - it must be one of: 'widget', 'mouse'.";
- }
-
- $w->idletasks;
-
- # Explanation of following code. [JD]
- # PREMISE: We want to ensure that the balloon is always "on screen".
- # To do this we use calculate the size of the
- # toplevel before it is mapped. Then we adjust it's position with respect to the
- # mouse cursor or widget. Balloons are usually shown below and to the right of the target.
- # From extensive KDE experience using Xinerama, and from using dual monitors on WinXP..
- # the balloon will extend across two monitors in single logical screen mode (SLS).
- # This is an undesirable characteristic indeed. Trying to read a disjointed balloon
- # across monitors is not fun.
- #
- # The intent of the following code is to fix this problem. We do this by avoiding
- # placement of any part of the balloon over,say, the "half screenwidth" mark (for two
- # monitors in SLS mode) or "thirds of screenwidth" mark (for 3 monitors) and so on...
- # i.e. In SLS mode these *WILL BE* separate screens and as such, should be considered hard
- # boundaries to be avoided.
- #
- # The only drawback of this code, is I know of no way to actually determine this on a
- # user by user basis. This means that the developer or administrator will have to know
- # the hardware (monitor) setup for which the application is designed.
- #
- # This code uses Gerhard's GIF images but changes *how* the image gets shown. Instead
- # of creating four separate labels, we configure only ONE label with the proper image.
- # Then using the place geometry manager, this image/label can be "slid" along the
- # appropriate side of the toplevel so that it always points directly at the target widget.
- #
- # Here we go..
-
- my ($width, $height) = ($w->reqwidth, $w->reqheight);
- my ($sw, $sh) = ($w->screenwidth, $w->screenheight);
- my $numscreen = $w->cget(-numscreens);
- my $deltax = $sw/$numscreen;
- my $leftedge;
- my $rightedge;
- my $count = 0;
- for (my $i=0; $i<$sw; $i+=$deltax){
- $leftedge = $i;
- $rightedge = $i + $deltax;
- if ($x >= $leftedge && $x < $rightedge ){
- last;
- }
- $count++;
- }
-
- # Force another look at balloon location because mouse has switched
- # virtual screens.
- $w->{'location'} = undef unless ( $count == $w->{'current_screen'} );
- $w->{'current_screen'} = $count;
-
- my $xx=undef;
- my $yy=undef; # to hold final toplevel placement
- my $slideOffsetX = 0;
- my $slideOffsetY = 0;
- my $cornerOffset = 5; #default - keep corner away from pointer
- my $testtop = $y - $height - $cornerOffset;
- my $testbottom = $y + $height + (2*$cornerOffset);
- my $testright = $x + $width + (2*$cornerOffset);
- my $testleft = $x - $width - $cornerOffset;
- my $vert='bottom'; #default
- my $horiz='right'; #default
-
-
- if ( defined $w->{'location'} ){
- # Once balloon is activated, **don't** change the location of the balloon.
- # It is annoying to have it jump from one location to another.
- ( $w->{'location'}=~/top/ ) ? ( $vert = 'top' ) : ( $vert = 'bottom' );
- ( $w->{'location'}=~/left/ ) ? ( $horiz = 'left' ) : ( $horiz = 'right' );
-
- if ($vert eq 'top' && $testtop < 0) {
- $yy = 0;
- $slideOffsetY = $testtop;
- }
- elsif ($vert eq 'bottom' && $testbottom > $sh) {
- $slideOffsetY = $testbottom - $sh;
- }
-
- if ($horiz eq 'left' && $testleft < $leftedge) {
- $xx = $leftedge;
- }
- elsif ($horiz eq 'right' && $testright > $rightedge) {
- $slideOffsetX = $testright - $rightedge;
- }
- }
- else {
- #Test balloon positions in the vertical
- if ($testbottom > $sh) {
- #Then offscreen to bottom, check top
- if ($testtop >= 0) {
- $vert = 'top';
- }
- elsif ($y > $sh/2) {
- #still offscreen to top but there is more room above then below
- $vert = 'top';
- $yy=0;
- $slideOffsetY = $testtop;
- }
- if ($vert eq 'bottom'){
- #Calculate Yoffset to fit entire balloon onto screen
- $slideOffsetY = $testbottom - $sh;
- }
- }
- #Test balloon positions in the horizontal
-
- if ($testright > $rightedge) {
- #The offscreen, check left
- if ($testleft >= $leftedge) {
- $horiz = 'left';
- }
- elsif ($x > ($leftedge+$deltax) ) {
- #still offscreen to left but there is more room to left than right
- $horiz = 'left';
- $xx=0;
- $slideOffsetX = $testleft;
- }
- if ($horiz eq 'right'){
- #Calculate Xoffset to fit entire balloon onto screen
- $slideOffsetX = $testright - $rightedge;
- }
- }
- }
-
- $w->{'location'} = $vert.$horiz unless (defined $w->{'location'});
-
- if ($w->{'location'} eq 'bottomright') {
- if ( $slideOffsetX or $slideOffsetY ) {
- $w->{'pointer'}->configure(-image => $w->{img_no});
- }
- else {
- $w->{'pointer'}->configure(-image => $w->{img_tl});
- }
-
- $w->{'pointer'}->place(
- -in=>$w,
-# -relx=>0, -x=>$slideOffsetX + 2,
-# -rely=>0, -y=>$slideOffsetY + 2,
- -relx=>0, -x=>2,
- -rely=>0, -y=>2,
- -bordermode=>'outside',
- -anchor=>'nw');
-
- $xx=$x-$slideOffsetX+(2*$cornerOffset) unless (defined $xx);
- $yy=$y-$slideOffsetY+(2*$cornerOffset) unless (defined $yy);
-
- }
- elsif ($w->{'location'} eq 'bottomleft') {
- if ( $slideOffsetX or $slideOffsetY ) {
- $w->{'pointer'}->configure(-image => $w->{img_no});
- }
- else {
- $w->{'pointer'}->configure(-image => $w->{img_tr});
- }
-
- $w->{'pointer'}->place(-in=>$w,
-# -relx=>1, -x=>$slideOffsetX - 2,
-# -rely=>0, -y=>$slideOffsetY + 2,
- -relx=>1, -x=>-2,
- -rely=>0, -y=>2,
- -bordermode=>'outside',
- -anchor=>'ne');
-
- $xx=$x-$width-$slideOffsetX-$cornerOffset unless (defined $xx);
- $yy=$y-$slideOffsetY+(2*$cornerOffset) unless (defined $yy);
-
- }
- elsif ($w->{'location'} eq 'topright') {
- if ( $slideOffsetX or $slideOffsetY ) {
- $w->{'pointer'}->configure(-image => $w->{img_no});
- }
- else {
- $w->{'pointer'}->configure(-image => $w->{img_bl});
- }
-
- $w->{'pointer'}->place(-in=>$w,
-# -relx=>0, -x=>$slideOffsetX + 2,
-# -rely=>1, -y=>$slideOffsetY - 2,
- -relx=>0, -x=>2,
- -rely=>1, -y=>-2,
- -bordermode=>'outside',
- -anchor=>'sw');
-
- $xx=$x-$slideOffsetX+$cornerOffset unless (defined $xx);
- $yy=$y-$height-$slideOffsetY-$cornerOffset unless (defined $yy);
- }
- elsif ($w->{'location'} eq 'topleft') {
- if ( $slideOffsetX or $slideOffsetY ) {
- $w->{'pointer'}->configure(-image => $w->{img_no});
- }
- else {
- $w->{'pointer'}->configure(-image => $w->{img_br});
- }
-
- $w->{'pointer'}->place(-in=>$w,
-# -relx=>1, -x=>$slideOffsetX - 2,
-# -rely=>1, -y=>$slideOffsetY - 2,
- -relx=>1, -x=>-2,
- -rely=>1, -y=>-2,
- -bordermode=>'outside',
- -anchor=>'se');
-
- $xx=$x-$width-$slideOffsetX-$cornerOffset unless (defined $xx);
- $yy=$y-$height-$slideOffsetY-$cornerOffset unless (defined $yy);
- }
-
- $w->{'pointer'}->raise;
- $xx = int($xx);
- $yy = int($yy);
- $w->geometry("+$xx+$yy");
- $w->deiconify();
- $w->raise;
-}
-
-sub SetStatus {
- my ($w) = @_;
- my $client = $w->{'client'};
- my $s = $w->GetOption(-statusbar => $client);
- if (defined $s and $s->winfo('exists')) {
- my $vref = $s->cget(-textvariable);
- return if not defined $client or not exists $w->{'clients'}{$client};
- my $msg = $client->BalloonInfo($w, $w->pointerxy,'-statusmsg');
- # Dereference it if it looks like a scalar reference:
- $msg = $$msg if UNIVERSAL::isa($msg, 'SCALAR');
- if (not defined $vref) {
- eval { $s->configure(-text => $msg); };
- } else {
- $$vref = $msg;
- }
- }
-}
-
-sub ClearStatus {
- my ($w) = @_;
- my $client = $w->{'client'};
- my $s = $w->GetOption(-statusbar => $client);
- if (defined $s and $s->winfo('exists')) {
- my $vref = $s->cget(-textvariable);
- if (defined $vref) {
- $$vref = '';
- } else {
- eval { $s->configure(-text => ''); }
- }
- }
-}
-
-sub _destroyed {
- my ($w) = @_;
- # This is called when widget is destroyed (no matter how!)
- # via the ->OnDestroy hook set in Populate.
- # remove ourselves from the list of baloons.
- @balloons = grep($w != $_, @balloons);
-
- # FIXME: If @balloons is now empty perhaps remove the 'all' bindings
- # to reduce overhead until another balloon is created?
-
- # Delete the images
- for (qw(no tl tr bl br)) {
- my $img = delete $w->{"img_$_"};
- $img->delete if defined $img;
- }
-}
-
-1;
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Balloon.pod b/Master/tlpkg/tlperl/lib/Tk/Balloon.pod
deleted file mode 100644
index 9188a9e25a4..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Balloon.pod
+++ /dev/null
@@ -1,293 +0,0 @@
-
-=head1 NAME
-
-Tk::Balloon - pop up help balloons.
-
-=for pm Tixish/Balloon.pm
-
-=for category Tix Extensions
-
-=head1 SYNOPSIS
-
- use Tk::Balloon;
- ...
- $b = $top->Balloon(-statusbar => $status_bar_widget);
-
- # Normal Balloon:
- $b->attach($widget,
- -balloonmsg => "Balloon help message",
- -statusmsg => "Status bar message");
-
- # Balloon attached to entries in a menu widget:
- $b->attach($menu, -state => 'status',
- -msg => ['first menu entry',
- 'second menu entry',
- ...
- ],
- );
-
- # Balloon attached to individual items in a canvas widget:
- $b->attach($canvas, -balloonposition => 'mouse',
- -msg => {'item1' => 'msg1',
- 'tag2' => 'msg2',
- ...
- },
- );
-
- # Balloon attached to items in a listbox widget:
- $b->attach($listbox, -balloonposition => 'mouse',
- -msg => ['first listbox element',
- '2nd listbox element',
- ...
- ],
- );
-
-=head1 DESCRIPTION
-
-B<Balloon> provides the framework to create and attach help
-balloons to various widgets so that when the mouse pauses over the
-widget for more than a specified amount of time, a help balloon is
-popped up.
-
-=head2 Balloons and Menus or Listboxes
-
-If the balloon is attached to a B<Menu> or B<Listbox> widget and the
-message arguments are array references, then each element in the array
-will be the message corresponding to a menu entry or listbox element.
-The balloon message will then be shown for the entry which the mouse
-pauses over. Otherwise it is assumed that the balloon is to be
-attached to the B<Menu> or B<Listbox> as a whole. You can have
-separate status and balloon messages just like normal balloons.
-
-=head2 Balloons and Canvases
-
-If the balloon is attached to a B<Canvas> widget and the message
-arguments are hash references, then each hash key should correspond to
-a canvas item ID or tag and the associated value will correspond to the
-message for that canvas item. The balloon message will then be shown for
-the current item (the one at the position of the mouse). Otherwise it is
-assumed that the balloon is to be attached to the B<Canvas> as a whole.
-You can have separate status and balloon messages just like normal
-balloons.
-
-=head2 Balloons and HLists
-
-If the balloon is attached to a B<HList> widget and the message
-arguments are hash references, then each hash key should correspond to
-a HList path and the associated value will correspond to the message
-for that HList item. The balloon message will then be shown for the
-current item (the one at the position of the mouse). Otherwise it is
-assumed that the balloon is to be attached to the B<HList> as a whole.
-You can have separate status and balloon messages just like normal
-balloons.
-
-=head2 Balloon Position
-
-By default, the balloon pops up at the lower right side of the client.
-If it would extend outside the lower screen border, its positioned at the
-upper right side. If it would extend outside the right screen border
-it's shown on the lower left side of the client. If it would extend
-outside both the lower and the right screen border, it's positioned
-at the upper left side of the client. Thus, the little arrow always
-points to the attached client.
-
-=head1 OPTIONS
-
-B<Balloon> accepts all of the options that the B<Frame> widget
-accepts. In addition, the following options are also recognized.
-
-=over 4
-
-=item B<-initwait>
-
-Specifies the amount of time to wait without activity before
-popping up a help balloon. Specified in milliseconds. Defaults to
-350 milliseconds. This applies to both the popped up balloon and
-the status bar message.
-
-=item B<-state>
-
-Can be one of B<'balloon'>, B<'status'>, B<'both'> or B<'none'>
-indicating that the help balloon, status bar help, both or none
-respectively should be activated when the mouse pauses over the
-client widget. Default is B<'both'>.
-
-=item B<-statusbar>
-
-Specifies the widget used to display the status message. This
-widget should accept the B<-text> option and is typically a
-B<Label>. If the widget accepts the B<-textvariable> option and
-that option is defined then it is used instead of the B<-text>
-option.
-
-=item B<-balloonposition>
-
-Can be one of B<'widget'> or B<'mouse'>. It controls where the balloon
-will popup. B<'widget'> makes the balloon appear at the lower right
-corner of the widget it is attached to (default), and B<'mouse'> makes
-the balloon appear below and to the right of the current mouse position.
-
-=item B<-postcommand>
-
-This option takes a B<CODE> reference which will be executed before the
-balloon and statusbar messages are displayed and should return a true
-or false value to indicate whether you want the balloon to be displayed
-or not. This also lets you control where the balloon is positioned by
-returning a true value that looks like I<X,Y> (matches this regular
-expression: C</^(\d+),(\d+)$/>). If the postcommand returns a value that
-matches that re then those coordinates will be used as the position to
-post the balloon. I<Warning:> this subroutine should return quickly or
-the balloon response will appear slow.
-
-=item B<-cancelcommand>
-
-This option takes a B<CODE> reference which will be executed before the
-balloon and statusbar messages are canceled and should return a true
-or false value to indicate whether you want the balloon to be canceled
-or not. I<Warning:> this subroutine should return quickly or the balloon
-response will appear slow.
-
-=item B<-motioncommand>
-
-This option takes a B<CODE> reference which will be executed for any
-motion event and should return a true or false value to indicate
-whether the currently displayed balloon should be canceled (deactivated).
-If it returns true then the balloon will definitely be canceled, if it
-returns false then it may still be canceled depending the internal rules.
-I<Note:> a new balloon may be posted after the B<-initwait> time
-interval, use the B<-postcommand> option to control that behavior.
-I<Warning:> the subroutine should be extremely fast or the balloon
-response will appear slow and consume a lot of CPU time (it is executed
-every time the mouse moves over the widgets the balloon is attached to).
-
-=item B<-numscreens>
-
-This option accepts an integer 1 or greater. This option should be used
-to avoid disjointed balloons across multiple screens in single logical
-sceen (SLS) mode. This only currently works in the horizontal direction.
-Example: If you are running dual screens in SLS mode then you would set
-this value to 2. Default value is 1.
-
-=back
-
-=head1 METHODS
-
-The B<Balloon> widget supports only three non-standard methods:
-
-=head2 B<attach(>I<widget>, I<options>B<)>
-
-Attaches the widget indicated by I<widget> to the help system. The
-allowed options are:
-
-=over 4
-
-=item B<-statusmsg>
-
-The argument is the message to be shown on the status bar when the
-mouse pauses over this client. If this is not specified, but
-B<-msg> is specified then the message displayed on the status bar
-is the same as the argument for B<-msg>. If you give it a scalar
-reference then it is dereferenced before being displayed. Useful
-if the postcommand is used to change the message.
-
-=item B<-balloonmsg>
-
-The argument is the message to be displayed in the balloon that
-will be popped up when the mouse pauses over this client. As with
-B<-statusmsg> if this is not specified, then it takes its value
-from the B<-msg> specification if any. If neither B<-balloonmsg>
-nor B<-msg> are specified, or they are the empty string then
-no balloon is popped up instead of an empty balloon. If you
-give it a scalar reference then it is dereferenced before being
-displayed. Useful if the postcommand is used to change the message.
-
-=item B<-msg>
-
-The catch-all for B<-statusmsg> and B<-balloonmsg>. This is a
-convenient way of specifying the same message to be displayed in
-both the balloon and the status bar for the client.
-
-=item B<-initwait>
-
-=item B<-state>
-
-=item B<-statusbar>
-
-=item B<-balloonposition>
-
-=item B<-postcommand>
-
-=item B<-cancelcommand>
-
-=item B<-motioncommand>
-
-These options allow you to override the balloon's default value for
-those option for some of the widgets it is attached to. It accepts the
-same values as above and will default to the B<Balloon>'s value.
-
-=back
-
-=head2 B<detach(>I<widget>B<)>
-
-Detaches the specified I<widget> from the help system.
-
-=head2 B<destroy>
-
-Destroys the specified balloon.
-
-=head1 ADVERTISED SUBWIDGETS
-
-The balloon label is advertised as C<message>.
-
-=head1 EXAMPLES
-
-See the balloon demo included with the widget demo script that came with
-the distribution for examples on various ways to use balloons.
-
-=head1 NOTES
-
-Because of the overhead associated with each balloon you create (from
-tracking the mouse movement to know when to activate and deactivate
-them) you will see the best performance (low CPU consumption) if you
-create as few balloons as possible and attach them to as many widgets
-as you can. In other words, don't create a balloon for each widget
-you want to attach one to.
-
-=head1 CAVEATS
-
-Pressing any button will deactivate (cancel) the current balloon,
-if one exists. You can usually make the balloon reappear by moving
-the mouse a little. Creative use of the 3 command options can help
-you out also. If the mouse is over the balloon when a menu is unposted
-then the balloon will remain until you move off of it.
-
-=head1 BUGS
-
-If using balloons attached to listbox entries or canvas items in a
-scrolled widget, then the subwidget have to be used:
-
- $balloon->attach($w->Subwidget("scrolled"), -msg => ...);
-
-=head1 AUTHORS
-
-B<Rajappa Iyer> <rsi@earthling.net> did the original coding.
-
-B<Jason A. Smith> <smithj4@rpi.edu> added support for menus and made some
-other enhancements.
-
-B<Slaven Rezic> <srezic@cpan.org> added support for canvas items.
-
-B<Gerhard Petrowitsch> <gerhard@petrowitsch.de> added intelligent positioning
-
-B<Jack Dunnigan> <dunniganj@cpan.org> Made positioning I<more> intelligent and
-added support for multiple monitors under single logical screen.
-
-=head1 HISTORY
-
-The code and documentation was derived from Balloon.tcl from the
-Tix4.0 distribution by Ioi Lam and modified by the above mentioned
-authors. This code may be redistributed under the same terms as Perl.
-
-=cut
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Bitmap.pm b/Master/tlpkg/tlperl/lib/Tk/Bitmap.pm
deleted file mode 100644
index d081a393804..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Bitmap.pm
+++ /dev/null
@@ -1,10 +0,0 @@
-package Tk::Bitmap;
-require Tk;
-require Tk::Image;
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/Tk/Bitmap.pm#4 $
-use base qw(Tk::Image);
-Construct Tk::Image 'Bitmap';
-sub Tk_image { 'bitmap' }
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/Bitmap.pod b/Master/tlpkg/tlperl/lib/Tk/Bitmap.pod
deleted file mode 100644
index 49bf20ce4b4..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Bitmap.pod
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Bitmap - Images that display two colors
-
-=for category Tk Image Classes
-
-=head1 SYNOPSIS
-
-S< >I<$image> = I<$widget>-E<gt>B<Bitmap>?(I<name>??,I<options>?)
-
-=head1 DESCRIPTION
-
-A bitmap is an image whose pixels can display either of two colors
-or be transparent.
-A bitmap image is defined by four things: a background color,
-a foreground color, and two bitmaps, called the I<source>
-and the I<mask>.
-Each of the bitmaps specifies 0/1 values for a rectangular
-array of pixels, and the two bitmaps must have the same
-dimensions.
-For pixels where the mask is zero, the image displays nothing,
-producing a transparent effect.
-For other pixels, the image displays the foreground color if
-the source data is one and the background color if the source
-data is zero.
-
-=head1 CREATING BITMAPS
-
-Bitmaps are created using I<$widget>-E<gt>B<Bitmap>.
-Bitmaps support the following I<options>:
-
-=over 4
-
-=item B<-background> =E<gt> I<color>
-
-Specifies a background color for the image in any of the standard
-ways accepted by Tk. If this option is set to an empty string
-then the background pixels will be transparent. This effect
-is achieved by using the source bitmap as the mask bitmap, ignoring
-any B<-maskdata> or B<-maskfile> options.
-
-=item B<-data> =E<gt> I<string>
-
-Specifies the contents of the source bitmap as a string.
-The string must adhere to X11 bitmap format (e.g., as generated
-by the B<bitmap> program).
-If both the B<-data> and B<-file> options are specified,
-the B<-data> option takes precedence.
-
-=item B<-file> =E<gt> I<name>
-
-I<name> gives the name of a file whose contents define the
-source bitmap.
-The file must adhere to X11 bitmap format (e.g., as generated
-by the B<bitmap> program).
-
-=item B<-foreground> =E<gt> I<color>
-
-Specifies a foreground color for the image in any of the standard
-ways accepted by Tk.
-
-=item B<-maskdata> =E<gt> I<string>
-
-Specifies the contents of the mask as a string.
-The string must adhere to X11 bitmap format (e.g., as generated
-by the B<bitmap> program).
-If both the B<-maskdata> and B<-maskfile> options are specified,
-the B<-maskdata> option takes precedence.
-
-=item B<-maskfile> =E<gt> I<name>
-
-I<name> gives the name of a file whose contents define the
-mask.
-The file must adhere to X11 bitmap format (e.g., as generated
-by the B<bitmap> program).
-
-=back
-
-=head1 IMAGE METHODS
-
-When a bitmap image is created, Tk also creates a new object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-
-=head1 SEE ALSO
-
-L<Tk::Image|Tk::Image>
-L<Tk::Pixmap|Tk::Pixmap>
-L<Tk::Photo|Tk::Photo>
-
-=head1 KEYWORDS
-
-bitmap, image
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tk/BrowseEntry.pm b/Master/tlpkg/tlperl/lib/Tk/BrowseEntry.pm
deleted file mode 100644
index b421480127d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/BrowseEntry.pm
+++ /dev/null
@@ -1,524 +0,0 @@
-#
-# BrowseEntry is a stripped down version of ComboBox.tcl from Tix4.0
-#
-# Some additions by Slaven Rezic <slaven@rezic.de> to make the widget
-# look like the Windows' Combobox. There are also additional options.
-#
-
-package Tk::BrowseEntry;
-
-use vars qw($VERSION);
-$VERSION = '4.015'; # was: sprintf '4.%03d', q$Revision: #13 $ =~ /\D(\d+)\s*$/;
-
-use Tk qw(Ev);
-use Carp;
-use strict;
-
-use base qw(Tk::Frame);
-Construct Tk::Widget 'BrowseEntry';
-
-require Tk::LabEntry;
-
-sub LabEntryWidget { "LabEntry" }
-sub ButtonWidget { "Button" }
-sub ListboxWidget { "Listbox" }
-
-sub Populate {
- my ($w, $args) = @_;
-
- my %labelArgs;
- while(my($k,$v) = each %$args) {
- $labelArgs{$k} = $v;
- delete $args->{$k};
- }
-
- $w->Tk::Frame::Populate($args);
-
- while(my($k,$v) = each %labelArgs) {
- $args->{$k} = $v;
- }
-
- # entry widget and arrow button
- my $lpack = delete $args->{-labelPack};
- if (not defined $lpack) {
- $lpack = [-side => 'left', -anchor => 'e'];
- }
- $w->{_BE_Style} = delete $args->{-style} || $Tk::platform;
- my $LabEntry = $w->LabEntryWidget;
- my $Listbox = $w->ListboxWidget;
- my $Button = $w->ButtonWidget;
- # XXX should this be retained?
-# if (defined $args->{-state} and $args->{-state} eq 'readonly') { # XXX works only at construction time
-# $LabEntry = "NoSelLabEntry";
-# require Tk::NoSelLabEntry;
-# }
- my $e;
- my $var = "";
- my @LabEntry_args = (-textvariable => \$var);
- if (exists $args->{-label}) {
- $e = $w->$LabEntry(-labelPack => $lpack,
- -label => delete $args->{-label},
- @LabEntry_args,
- );
- } else {
- $e = $w->$LabEntry(@LabEntry_args);
- }
- my $b = $w->$Button(-bitmap => '@' . Tk->findINC($w->{_BE_Style} eq 'MSWin32' ? 'arrowdownwin.xbm' : 'cbxarrow.xbm'));
- $w->Advertise('entry' => $e);
- $w->Advertise('arrow' => $b);
-
- # Pack the button to align vertically with the entry widget
- my @anch;
- my $edge = {@$lpack}->{-side};
- push(@anch,-anchor => 's') if ($edge && $edge eq 'top');
- push(@anch,-anchor => 'n') if ($edge && $edge eq 'bottom');
- $b->pack(-side => 'right', -padx => 1, @anch);
-
- $e->pack(-side => 'right', -fill => 'x', -expand => 1); #XXX, -padx => 1);
-
- # popup shell for listbox with values.
- my $c = $w->Toplevel(-bd => 2,
- -relief => ($w->{_BE_Style} eq 'MSWin32'
- ? "solid" : "raised"));
- $c->overrideredirect(1);
- $c->withdraw;
- my $sl = $c->Scrolled( $Listbox, qw/-selectmode browse -scrollbars oe/ );
- if ($w->{_BE_Style} eq 'MSWin32' and $Tk::platform eq 'MSWin32') {
- $sl->configure(-bg => 'SystemWindow', -relief => "flat");
- }
- $w->Advertise('choices' => $c);
- $w->Advertise('slistbox' => $sl);
- $sl->pack(-expand => 1, -fill => 'both');
-
- $sl->Subwidget("scrolled")->bind("<Motion>",sub {
- return unless ($w->{_BE_Style} eq 'MSWin32');
- my $e = $_[0]->XEvent;
- my $y = $e->y;
- my $inx = $sl->nearest($y);
- if (defined $inx) {
- $sl->selectionClear(0, "end");
- $sl->selectionSet($inx);
- }
- });
-
- # other initializations
- $w->SetBindings;
- $w->{'_BE_popped'} = 0;
- $w->Delegates(get => $sl, DEFAULT => $e);
- $w->ConfigSpecs(
- -font => [qw/DESCENDANTS font Font/],
- -listwidth => [qw/PASSIVE listWidth ListWidth/, undef],
- -listheight => [{-height => $sl}, qw/listHeight ListHeight/, undef],
- -listcmd => [qw/CALLBACK listCmd ListCmd/, undef],
- -autolistwidth => [qw/PASSIVE autoListWidth AutoListWidth/, undef],
- -autolimitheight => [qw/PASSIVE autoLimitHeight AutoLimitHeight 0/],
- -browsecmd => [qw/CALLBACK browseCmd BrowseCmd/, undef],
- -browse2cmd => [qw/CALLBACK browse2Cmd Browse2Cmd/, undef],
- -choices => [qw/METHOD choices Choices/, undef],
- -state => [qw/METHOD state State normal/],
- -arrowimage => [ {-image => $b}, qw/arrowImage ArrowImage/, undef],
- -variable => [ {'-textvariable' => $e} ],
- -colorstate => [qw/PASSIVE colorState ColorState/, undef],
- -command => '-browsecmd',
- -options => '-choices',
- -label => [qw/PASSIVE label Label/, undef],
- -labelPack => [qw/PASSIVE labelPack LabelPack/, undef],
- #-background => [$e, qw/background Background/, undef],
- #-foreground => [$e, qw/foreground Foreground/, undef],
- -buttontakefocus => [{-takefocus => $b}, 'buttonTakefocus',
- 'ButtonTakefocus', 1],
- DEFAULT => [$e] );
-}
-
-sub SetBindings {
- my ($w) = @_;
-
- my $e = $w->Subwidget('entry');
- my $b = $w->Subwidget('arrow');
-
- # set bind tags
- $w->bindtags([$w, 'Tk::BrowseEntry', $w->toplevel, 'all']);
- # as we don't bind $e here leave its tags alone ...
- # $e->bindtags([$e, ref($e), $e->toplevel, 'all']);
-
- # bindings for the button and entry
- $b->bind('<1>',[$w,'BtnDown']);
- $b->toplevel->bind('<ButtonRelease-1>',[$w,'ButtonHack']);
- $b->bind('<space>',[$w,'space']);
-
- # bindings for listbox
- my $sl = $w->Subwidget('slistbox');
- my $l = $sl->Subwidget('listbox');
- $l->bind('<ButtonRelease-1>',[$w,'ListboxRelease',Ev('x'),Ev('y')]);
- $l->bind('<Escape>' => [$w,'LbClose']);
- $l->bind('<Return>' => [$w,'Return',$l]);
-
- # allow click outside the popped up listbox to pop it down.
- $w->bind('<1>','BtnDown');
-}
-
-sub space
-{
- my $w = shift;
- $w->BtnDown;
- $w->{'_BE_savefocus'} = $w->focusCurrent;
- $w->Subwidget('slistbox')->focus;
-}
-
-
-sub ListboxRelease
-{
- my ($w,$x,$y) = @_;
- $w->ButtonHack;
- $w->LbChoose($x, $y);
-}
-
-sub Return
-{
- my ($w,$l) = @_;
- my($x, $y) = $l->bbox($l->curselection);
- $w->LbChoose($x, $y)
-}
-
-
-sub BtnDown {
- my ($w) = @_;
- return if $w->cget( '-state' ) eq 'disabled';
-
- if ($w->{'_BE_popped'}) {
- $w->Popdown;
- $w->{'_BE_buttonHack'} = 0;
- } else {
- $w->PopupChoices;
- $w->{'_BE_buttonHack'} = 1;
- }
-}
-
-sub PopupChoices {
- my ($w) = @_;
-
- if (!$w->{'_BE_popped'}) {
- $w->Callback(-listcmd => $w);
- my $e = $w->Subwidget('entry');
- my $c = $w->Subwidget('choices');
- my $s = $w->Subwidget('slistbox');
- my $a = $w->Subwidget('arrow');
- my $y1 = ($w->{_BE_Style} eq 'MSWin32'
- ? $a->rooty + $a->height
- : $e->rooty + $e->height + 3
- );
- my $bd = $c->cget(-bd) + $c->cget(-highlightthickness);
- # using the real listbox reqheight rather than the
- # container frame one, which does not change after resizing the
- # listbox
- my $ht = $s->Subwidget("scrolled")->reqheight + 2 * $bd;
- my $x1 = ($w->{_BE_Style} eq 'MSWin32'
- ? $e->Subwidget("entry")->rootx
- : $e->rootx
- );
- my ($width, $x2);
- if (defined $w->cget(-listwidth)) {
- $width = $w->cget(-listwidth);
- $x2 = $x1 + $width;
- } else {
- $x2 = $a->rootx + $a->width;
- $width = $x2 - $x1;
- }
- my $rw = $c->reqwidth;
- if ($rw < $width) {
- $rw = $width
- } else {
- if ($rw > $width * 3) {
- $rw = $width * 3;
- }
- if ($rw > $w->vrootwidth) {
- $rw = $w->vrootwidth;
- }
- }
- $width = $rw;
-
- # if listbox is too far right, pull it back to the left
- #
- if ($x2 > $w->vrootwidth) {
- $x1 = $w->vrootwidth - $width;
- }
-
- # if listbox is too far left, pull it back to the right
- #
- if ($x1 < 0) {
- $x1 = 0;
- }
-
- # if listbox is below bottom of screen, pull it up.
- # check the Win32 taskbar, if possible
- my $rootheight;
- if ($Tk::platform eq 'MSWin32' and $^O eq 'MSWin32') {
- eval {
- require Win32Util; # XXX should not use a non-CPAN widget
- $rootheight = (Win32Util::screen_region($w))[3];
- };
- }
- if (!defined $rootheight) {
- $rootheight = $w->vrootheight;
- }
-
- my $y2 = $y1 + $ht;
- if ($y2 > $rootheight) {
- $y1 = $y1 - $ht - ($e->height - 5);
- }
- $c->geometry(sprintf('%dx%d+%d+%d', $rw, $ht, $x1, $y1));
- $c->deiconify;
- $c->raise;
- $e->focus;
- $w->{'_BE_popped'} = 1;
-
- # highlight current selection
- my $current_sel = $e->get;
- if (defined $current_sel) {
- my $i = 0;
- foreach my $str ($s->get(0, "end")) {
- local $^W = 0; # in case of undefined strings
- if ($str eq $current_sel) {
- $s->selectionClear(0, "end");
- $s->selectionSet($i);
- last;
- }
- $i++;
- }
- }
-
- $c->configure(-cursor => 'arrow');
- $w->{'_BE_grabinfo'} = $w->grabSave;
- $w->grabGlobal;
- }
-}
-
-# choose value from listbox if appropriate
-sub LbChoose {
- my ($w, $x, $y) = @_;
- my $l = $w->Subwidget('slistbox')->Subwidget('listbox');
- if ((($x < 0) || ($x > $l->Width)) ||
- (($y < 0) || ($y > $l->Height))) {
- # mouse was clicked outside the listbox... close the listbox
- $w->LbClose;
- } else {
- # select appropriate entry and close the listbox
- $w->LbCopySelection;
- $w->Callback(-browsecmd, $w, $w->Subwidget('entry')->get());
- $w->Callback(-browse2cmd => $w, $w->LbIndex);
- }
-}
-
-# close the listbox after clearing selection
-sub LbClose {
- my ($w) = @_;
- my $l = $w->Subwidget('slistbox')->Subwidget('listbox');
- $l->selection('clear', 0, 'end');
- $w->Popdown;
-}
-
-# copy the selection to the entry and close listbox
-sub LbCopySelection {
- my ($w) = @_;
- my $index = $w->LbIndex;
- if (defined $index) {
- $w->{'_BE_curIndex'} = $index;
- my $l = $w->Subwidget('slistbox')->Subwidget('listbox');
- my $var_ref = $w->cget( '-textvariable' );
- $$var_ref = $l->get($index);
- if ($w->{'_BE_popped'}) {
- $w->Popdown;
- }
- }
- $w->Popdown;
-}
-
-sub LbIndex {
- my ($w, $flag) = @_;
- my ($sel) = $w->Subwidget('slistbox')->Subwidget('listbox')->curselection;
- if (defined $sel) {
- return int($sel);
- } else {
- if (defined $flag && ($flag eq 'emptyOK')) {
- return undef;
- } else {
- return 0;
- }
- }
-}
-
-# pop down the listbox
-sub Popdown {
- my ($w) = @_;
- if ($w->{'_BE_savefocus'} && Tk::Exists($w->{'_BE_savefocus'})) {
- $w->{'_BE_savefocus'}->focus;
- delete $w->{'_BE_savefocus'};
- }
- if ($w->{'_BE_popped'}) {
- my $c = $w->Subwidget('choices');
- $c->withdraw;
- $w->grabRelease;
- if (ref $w->{'_BE_grabinfo'} eq 'CODE') {
- $w->{'_BE_grabinfo'}->();
- delete $w->{'_BE_grabinfo'};
- }
- $w->{'_BE_popped'} = 0;
- }
-}
-
-# This hack is to prevent the ugliness of the arrow being depressed.
-#
-sub ButtonHack {
- my ($w) = @_;
- if ($w->{'_BE_buttonHack'}) {
- my $b = $w->Subwidget('arrow');
- if (Tk::Exists($b)) {
- $b->butUp;
- }
- }
-}
-
-sub choices
-{
- my ($w,$choices) = @_;
- if (@_ > 1)
- {
- $w->delete( qw/0 end/ );
- my %hash;
- my $var = $w->cget('-textvariable');
- my $old = $$var;
- foreach my $val (@$choices)
- {
- local $^W = 0; # in case of undefined values
- $w->insert( 'end', $val);
- $hash{$val} = 1;
- }
- $old = $choices->[0]
- if defined $old && !exists $hash{$old} && defined $choices->[0];
- $$var = $old;
- }
- else
- {
- return( $w->get( qw/0 end/ ) );
- }
-}
-
-sub _set_edit_state {
- my( $w, $state ) = @_;
-
- my $entry = $w->Subwidget( 'entry' );
- my $button = $w->Subwidget( 'arrow' );
-
- if ($w->cget( '-colorstate' )) {
- my $color;
- if( $state eq 'normal' ) { # Editable
- $color = 'gray95';
- } else { # Not Editable
- $color = $w->cget( -background ) || 'lightgray';
- }
- $entry->Subwidget( 'entry' )->configure( -background => $color );
- }
-
- if( $state eq 'readonly' ) {
- $entry->configure( -state => 'disabled' );
- $button->configure( -state => 'normal' );
- if ($w->{_BE_Style} eq 'MSWin32') {
- $entry->bind('<1>',[$w,'BtnDown']);
- $w->{_BE_OriginalCursor} = $entry->cget( -cursor );
- $entry->configure( -cursor => 'left_ptr' );
- }
- } else {
- $entry->configure( -state => $state );
- if (exists $w->{_BE_OriginalCursor}) {
- $entry->configure(-cursor => delete $w->{_BE_OriginalCursor});
- }
- $button->configure( -state => $state );
- if ($w->{_BE_Style} eq 'MSWin32') {
- $entry->bind('<1>',['Button1',Tk::Ev('x')]);
- }
- }
-}
-
-sub state {
- my $w = shift;
- unless( @_ ) {
- return( $w->{Configure}{-state} );
- } else {
- my $state = shift;
- $w->{Configure}{-state} = $state;
- $w->_set_edit_state( $state );
- }
-}
-
-sub _max {
- my $max = shift;
- foreach my $val (@_) {
- $max = $val if $max < $val;
- }
- return( $max );
-}
-
-sub shrinkwrap {
- my( $w, $size ) = @_;
-
- unless( defined $size ) {
- $size = _max( map( length, $w->get( qw/0 end/ ) ) ) || 0;;
- }
-
- my $lb = $w->Subwidget( 'slistbox' )->Subwidget( 'listbox' );
- $w->configure( -width => $size );
- $lb->configure( -width => $size );
-}
-
-sub limitheight {
- my $w = shift;
- my $choices_number = shift || $w->Subwidget('slistbox')->index("end");
- $choices_number = 10 if $choices_number > 10;
- $w->configure(-listheight => $choices_number) if ($choices_number > 0);
-}
-
-sub insert {
- my $w = shift;
- $w->Subwidget("slistbox")->insert(@_);
- if ($w->cget(-autolimitheight)) {
- $w->limitheight;
- }
- if ($w->cget(-autolistwidth)) {
- $w->updateListWidth(@_[1..$#_]);
- }
-}
-
-sub delete {
- my $w = shift;
- $w->Subwidget("slistbox")->delete(@_);
- if ($w->cget(-autolimitheight)) {
- $w->limitheight;
- }
- if ($w->cget(-autolistwidth)) {
- $w->updateListWidth();
- }
-}
-
-sub updateListWidth {
- my $w = shift;
- my @ins = @_;
- if (!@ins) {
- @ins = $w->get(0, "end");
- }
-
- my $max_width = 0;
- foreach my $ins (@ins) {
- my $new_width = $w->fontMeasure($w->cget(-font), $ins);
- if ($new_width > $max_width) {
- $max_width = $new_width;
- }
- }
- if ($max_width > 20) { # be sane
- $w->configure(-listwidth => $max_width + 32); # XXX for scrollbar
- }
-}
-
-1;
-
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/BrowseEntry.pod b/Master/tlpkg/tlperl/lib/Tk/BrowseEntry.pod
deleted file mode 100644
index 98a547c4084..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/BrowseEntry.pod
+++ /dev/null
@@ -1,210 +0,0 @@
-
-=head1 NAME
-
-Tk::BrowseEntry - entry widget with popup choices.
-
-=for pm Tixish/BrowseEntry.pm
-
-=for category Tix Extensions
-
-=head1 SYNOPSIS
-
- use Tk::BrowseEntry;
-
- $b = $frame->BrowseEntry(-label => "Label", -variable => \$var);
- $b->insert("end", "opt1");
- $b->insert("end", "opt2");
- $b->insert("end", "opt3");
- ...
- $b->pack;
-
-=head1 SUPER-CLASS
-
-The C<BrowseEntry> class is derived from the C<Frame> class and
-inherits all the methods, options and subwidgets of its super-class.
-By default, options and methods are delegated to the entry subwidget.
-
-=head1 DESCRIPTION
-
-BrowseEntry is a poor man's ComboBox. It may be considered an
-enhanced version of LabEntry which provides a button to popup the
-choices of the possible values that the Entry may
-take. BrowseEntry supports all the options LabEntry supports
-except B<-textvariable>. This is replaced by B<-variable>. Other
-options that BrowseEntry supports:
-
-=over 4
-
-=item B<-arrowimage>
-
-Specifies the image to be used in the arrow button beside the entry
-widget. The default is an downward arrow image in the file cbxarrow.xbm
-
-=item B<-autolimitheight>
-
-If set to a true value, then the height of the listbox will be at most
-the number of entries in the list. The overall maximum of
-C<-listheight> still applies.
-
-=item B<-autolistwidth>
-
-If set to a true value, then the width of the listbox will match the
-width of the largest entry.
-
-=item B<-browsecmd>
-
-Specifies a function to call when a selection is made in the
-popped up listbox. It is passed the widget and the text of the
-entry selected. This function is called after the entry variable
-has been assigned the value.
-
-=item B<-browse2cmd>
-
-Like C<-browsecmd>, but the callback is called with the listbox index
-instead of the selected value.
-
-=item B<-buttontakefocus>
-
-Set the C<-takefocus> option of the button subwidget.
-
-=item B<-choices>
-
-Specifies the list of choices to pop up. This is a reference to an
-array of strings specifying the choices.
-
-=item B<-colorstate>
-
-The state of the widget is reflected by color. A non-editable entry
-widget will get a light gray background, while an editable entry will
-be almost white. [This may change]
-
-=item B<-listcmd>
-
-Specifies the function to call when the button next to the entry
-is pressed to popup the choices in the listbox. This is called before
-popping up the listbox, so can be used to populate the entries in
-the listbox.
-
-=item B<-listheight>
-
-Set the height of the listbox. See also C<-autolimitheight>.
-
-=item B<-listwidth>
-
-Specifies the width of the popup listbox.
-
-=item B<-state>
-
-Specifies one of three states for the widget: normal, readonly, or
-disabled. If the widget is disabled then the value may not be changed
-and the arrow button won't activate. If the widget is readonly, the
-entry may not be edited, but it may be changed by choosing a value
-from the popup listbox. normal is the default.
-
-=item B<-style>
-
-Set the "style" of the widget. Permitted values are C<MSWin32> and
-C<unix>. By default C<-style> is set to the current platform. Widgets
-with the C<unix> style will look like a normal C<BrowseEntry> widget,
-whereas with the C<MSWin32> style the arrow will look close to the
-Windows' standard combobox widget, while moving the mouse the entries
-will be highlighted, and probably includes other changes.
-
-=item B<-variable>
-
-Specifies the variable in which the entered value is to be stored.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item B<insert(>I<index>, I<string>B<)>
-
-Inserts the text of I<string> at the specified I<index>. This string
-then becomes available as one of the choices.
-
-=item B<delete(>I<index1>, I<index2>B<)>
-
-Deletes items from I<index1> to I<index2>.
-
-=item B<get>
-
-The get method is delegated to the choices listbox.
-
-=back
-
-=head1 ADVERTISED WIDGETS
-
-The following widgets are advertised:
-
-=over
-
-=item entry
-
-The entry widget.
-
-=item arrow
-
-The button with the arrow image.
-
-=item choices
-
-The toplevel widget containing the choice listbox.
-
-=item slistbox
-
-The scrolled listbox with the choices.
-
-=back
-
-=head1 SUBCLASSING
-
-To make subclassing easier, the following methods may be overridden to
-use other standard widgets in composing the mega widget:
-
-=over
-
-=item LabEntryWidget
-
-A widget class compatible with Tk::LabEntry used for the entry.
-
-=item ButtonWidget
-
-A widget class compatible with Tk::Button used for the arrow button.
-
-=item ListboxWidget
-
-A widget class compatible with Tk::Listbox used for the choices
-listbox.
-
-=back
-
-For example to use a C<NumEntry> widget (from the Tk-GBARR CPAN
-distribution) instead of the normal C<Entry> widget:
-
- package Tk::NumBrowseEntry;
- use base qw(Tk::BrowseEntry);
- use Tk::NumEntry;
- Construct Tk::Widget 'NumBrowseEntry';
- sub LabEntryWidget { "NumEntry" }
-
-=head1 BUGS
-
-BrowseEntry should really provide more of the ComboBox options.
-
-=head1 AUTHOR
-
-B<Rajappa Iyer> rsi@earthling.net
-
-B<Chris Dean> ctdean@cogit.com made additions.
-
-More additions by B<Slaven Rezic> slaven@rezic.de
-
-This code was inspired by ComboBox.tcl in Tix4.0 by Ioi Lam and
-bears more than a passing resemblance to ComboBox code. This may
-be distributed under the same conditions as Perl.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Button.pm b/Master/tlpkg/tlperl/lib/Tk/Button.pm
deleted file mode 100644
index b423f8caaa5..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Button.pm
+++ /dev/null
@@ -1,247 +0,0 @@
-package Tk::Button;
-# Conversion from Tk4.0 button.tcl competed.
-#
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-
-use vars qw($VERSION);
-$VERSION = '4.010'; # $Id: //depot/Tkutf8/Tk/Button.pm#8 $
-
-# modify it under the same terms as Perl itself, subject
-# to additional disclaimer in license.terms due to partial
-# derivation from Tk4.0 sources.
-
-use strict;
-
-require Tk::Widget;
-use base qw(Tk::Widget);
-
-use vars qw($buttonWindow $afterId $repeated);
-
-Tk::Methods('deselect','flash','invoke','select','toggle');
-
-sub Tk_cmd { \&Tk::button }
-
-Construct Tk::Widget 'Button';
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<Enter>', 'Enter');
- $mw->bind($class,'<Leave>', 'Leave');
- $mw->bind($class,'<1>', 'butDown');
- $mw->bind($class,'<ButtonRelease-1>', 'butUp');
- $mw->bind($class,'<space>', 'Invoke');
- $mw->bind($class,'<Return>', 'Invoke');
- return $class;
-}
-
-# tkButtonEnter --
-# The procedure below is invoked when the mouse pointer enters a
-# button widget. It records the button we're in and changes the
-# state of the button to active unless the button is disabled.
-#
-# Arguments:
-# w - The name of the widget.
-
-sub Enter
-{
- my $w = shift;
- my $E = shift;
- if ($w->cget('-state') ne 'disabled')
- {
- # On unix the state is active just with mouse-over
- $w->configure(-state => 'active');
-
- # If the mouse button is down, set the relief to sunken on entry.
- # Overwise, if there's an -overrelief value, set the relief to that.
- $w->{__relief__} = $w->cget('-relief');
- if (defined $buttonWindow && $w == $buttonWindow)
- {
- $w->configure(-relief => 'sunken');
- $w->{__prelief__} = 'sunken';
- }
- elsif ((my $over = $w->cget('-overrelief')) ne '')
- {
- $w->configure(-relief => $over);
- $w->{__prelief__} = $over;
- }
- }
- $Tk::window = $w;
-}
-
-# tkButtonLeave --
-# The procedure below is invoked when the mouse pointer leaves a
-# button widget. It changes the state of the button back to
-# inactive. If we're leaving the button window with a mouse button
-# pressed (tkPriv(buttonWindow) == $w), restore the relief of the
-# button too.
-#
-# Arguments:
-# w - The name of the widget.
-sub Leave
-{
- my $w = shift;
- $w->configure('-state'=>'normal') if ($w->cget('-state') ne 'disabled');
- # Restore the original button relief if it was changed by Tk.
- # That is signaled by the existence of Priv($w,prelief).
- if (exists $w->{__relief__})
- {
- if (exists $w->{__prelief__} &&
- $w->{__prelief__} eq $w->cget('-relief'))
- {
- $w->configure(-relief => $w->{__relief__});
- }
- delete $w->{__relief__};
- delete $w->{__prelief__};
- }
- undef $Tk::window;
-}
-
-# tkButtonDown --
-# The procedure below is invoked when the mouse button is pressed in
-# a button widget. It records the fact that the mouse is in the button,
-# saves the button's relief so it can be restored later, and changes
-# the relief to sunken.
-#
-# Arguments:
-# w - The name of the widget.
-sub butDown
-{
- my $w = shift;
-
- # Only save the button's relief if it does not yet exist. If there
- # is an overrelief setting, Priv($w,relief) will already have been set,
- # and the current value of the -relief option will be incorrect.
-
- if (!exists $w->{__relief__})
- {
- $w->{__relief__} = $w->cget('-relief');
- }
-
- if ($w->cget('-state') ne 'disabled')
- {
- $buttonWindow = $w;
- $w->configure('-relief' => 'sunken', '-state' => 'active');
- $w->{__prelief__} = 'sunken';
-
- # If this button has a repeatdelay set up, get it going with an after
- $w->afterCancel($afterId);
- my $delay = $w->cget('-repeatdelay');
- $repeated = 0;
- if ($delay > 0)
- {
- $afterId = $w->after($delay, [$w, 'AutoInvoke']);
- }
- }
-}
-
-# tkButtonUp --
-# The procedure below is invoked when the mouse button is released
-# in a button widget. It restores the button's relief and invokes
-# the command as long as the mouse hasn't left the button.
-#
-# Arguments:
-# w - The name of the widget.
-sub butUp
-{
- my $w = shift;
- if (defined($buttonWindow) && $buttonWindow == $w)
- {
- undef $buttonWindow;
-
- # Restore the button's relief if it was cached.
- if (exists $w->{__relief__})
- {
- if (exists $w->{__prelief__} &&
- $w->{__prelief__} eq $w->cget('-relief'))
- {
- $w->configure(-relief => $w->{__relief__});
- }
- delete $w->{__relief__};
- delete $w->{__prelief__};
- }
-
- # Clean up the after event from the auto-repeater
- $w->afterCancel($afterId);
-
- if ($w->IS($Tk::window) && $w->cget('-state') ne 'disabled')
- {
- $w->configure(-state => 'normal');
- # Only invoke the command if it wasn't already invoked by the
- # auto-repeater functionality
- if ($repeated == 0)
- {
- $w->invoke;
- }
- }
- }
-}
-
-# tkButtonInvoke --
-# The procedure below is called when a button is invoked through
-# the keyboard. It simulate a press of the button via the mouse.
-#
-# Arguments:
-# w - The name of the widget.
-sub Invoke
-{
- my $w = shift;
- if ($w->cget('-state') ne 'disabled')
- {
- my $oldRelief = $w->cget('-relief');
- my $oldState = $w->cget('-state');
- $w->configure('-state' => 'active', '-relief' => 'sunken');
- $w->idletasks;
- $w->after(100);
- $w->configure('-state' => $oldState, '-relief' => $oldRelief);
- $w->invoke;
- }
-}
-
-# ::tk::ButtonAutoInvoke --
-#
-# Invoke an auto-repeating button, and set it up to continue to repeat.
-#
-# Arguments:
-# w button to invoke.
-#
-# Results:
-# None.
-#
-# Side effects:
-# May create an after event to call ::tk::ButtonAutoInvoke.
-sub AutoInvoke
-{
- my $w = shift;
- $w->afterCancel($afterId);
- my $delay = $w->cget('-repeatinterval');
- if ($w->IS($Tk::window))
- {
- $repeated++;
- $w->invoke;
- }
- if ($delay > 0)
- {
- $afterId = $w->after($delay, [$w, 'AutoInvoke']);
- }
-}
-
-# Used for Tk::Widget::AmpWidget
-sub AmpWidgetPostHook
-{
- my $w = shift;
- $w->bind('<<AltUnderlined>>' => ['invoke']);
-}
-
-
-1;
-
-__END__
-
-
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Button.pod b/Master/tlpkg/tlperl/lib/Tk/Button.pod
deleted file mode 100644
index 6c3eb5ffa72..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Button.pod
+++ /dev/null
@@ -1,255 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Button - Create and manipulate Button widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-I<$button> = I<$parent>-E<gt>B<Button>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-activebackground>
-B<-activeforeground>
-B<-anchor>
-B<-background>
-B<-bitmap>
-B<-borderwidth>
-B<-compound>
-B<-cursor>
-B<-disabledforeground>
-B<-font>
-B<-foreground>
-B<-highlightbackground>
-B<-highlightcolor>
-B<-highlightthickness>
-B<-image>
-B<-justify>
-B<-padx>
-B<-pady>
-B<-relief>
-B<-repeatdelay>
-B<-repeatinterval>
-B<-takefocus>
-B<-text>
-B<-textvariable>
-B<-underline>
-B<-wraplength>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<command>
-
-=item Class: B<Command>
-
-=item Switch: B<-command>
-
-Specifies a L<PerlE<sol>Tk callback|Tk::callbacks> to associate with the
-button. This command is typically invoked when mouse button 1 is
-released over the button window.
-
-=item Command-Line Name: B<-compound>
-
-=item Database Name: B<compound>
-
-=item Database Class: B<Compound>
-
-Specifies whether the button should display both an image and text,
-and if so, where the image should be placed relative to the text.
-Valid values for this option are B<bottom>, B<center>, B<left>,
-B<none>, B<right> and B<top>. The default value is B<none>, meaning
-that the button will display either an image or text, depending on the
-values of the -image and -bitmap options.
-
-=item Name: B<default>
-
-=item Class: B<Default>
-
-=item Switch: B<-default>
-
-Specifies one of three states for the default ring: B<normal>,
-B<active>, or B<disabled>. In active state, the button is drawn
-with the platform specific appearance for a default button. In normal
-state, the button is drawn with the platform specific appearance for a
-non-default button, leaving enough space to draw the default button
-appearance. The normal and active states will result in buttons of
-the same size. In disabled state, the button is drawn with the
-non-default button appearance without leaving space for the default
-appearance. The disabled state may result in a smaller button than
-the active state.
-ring.
-
-=item Name: B<height>
-
-=item Class: B<Height>
-
-=item Switch: B<-height>
-
-Specifies a desired height for the button.
-If an image or bitmap is being displayed in the button then the value is in
-screen units (i.e. any of the forms acceptable to B<Tk_GetPixels>);
-for text it is in lines of text.
-If this option isn't specified, the button's desired height is computed
-from the size of the image or bitmap or text being displayed in it.
-
-=item Command-Line Name: B<-overrelief>
-
-=item Database Name: B<overRelief>
-
-=item Database Class: B<OverRelief>
-
-Specifies an alternative relief for the button, to be used when
-the mouse cursor is over the widget. This option can be used to
-make toolbar buttons, by configuring B<-relief flat -overrelief
-raised>. If the value of this option is the empty string, then
-no alternative relief is used when the mouse cursor is over the
-button. The empty string is the default value.
-
-=item Name: B<state>
-
-=item Class: B<State>
-
-=item Switch: B<-state>
-
-Specifies one of three states for the button: B<normal>, B<active>,
-or B<disabled>. In normal state the button is displayed using the
-B<foreground> and B<background> options. The active state is
-typically used when the pointer is over the button. In active state
-the button is displayed using the B<activeForeground> and
-B<activeBackground> options. Disabled state means that the button
-should be insensitive: the default bindings will refuse to activate
-the widget and will ignore mouse button presses.
-In this state the B<disabledForeground> and
-B<background> options determine how the button is displayed.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies a desired width for the button.
-If an image or bitmap is being displayed in the button then the value is in
-screen units (i.e. any of the forms acceptable to B<Tk_GetPixels>);
-for text it is in characters.
-If this option isn't specified, the button's desired width is computed
-from the size of the image or bitmap or text being displayed in it.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Button> method creates a new window (given by the
-$widget argument) and makes it into a button widget.
-Additional
-options, described above, may be specified on the command line
-or in the option database
-to configure aspects of the button such as its colors, font,
-text, and initial relief. The B<button> command returns its
-$widget argument. At the time this command is invoked,
-there must not exist a window named $widget, but
-$widget's parent must exist.
-
-A button is a widget that displays a textual string, bitmap or image.
-If text is displayed, it must all be in a single font, but it
-can occupy multiple lines on the screen (if it contains newlines
-or if wrapping occurs because of the B<-wraplength> option) and
-one of the characters may optionally be underlined using the
-B<-underline> option.
-It can display itself in either of three different ways, according
-to
-the B<-state> option;
-it can be made to appear raised, sunken, or flat;
-and it can be made to flash. When a user invokes the
-button (by pressing mouse button 1 with the cursor over the
-button), then the L<perlE<sol>Tk callback|Tk::callbacks> specified in the B<-command>
-option is invoked.
-
-=head1 WIDGET METHODS
-
-The B<Button> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-The following additional methods are available for button widgets:
-
-=over 4
-
-=item I<$button>-E<gt>B<flash>
-
-Flash the button. This is accomplished by redisplaying the button
-several times, alternating between active and normal colors. At
-the end of the flash the button is left in the same normal/active
-state as when the command was invoked.
-This command is ignored if the button's state is B<disabled>.
-
-=item I<$button>-E<gt>B<invoke>
-
-Invoke the L<callback|Tk::callbacks> associated with the buttons
-B<-command> option, if there is one.
-The return value is the return value from the callback, or the
-undefined value if there is no callback associated with the button.
-This command is ignored if the button's state is B<disabled>.
-
-=back
-
-=head1 DEFAULT BINDINGS
-
-Tk automatically creates class bindings for buttons that give them
-default behavior:
-
-=over 4
-
-=item [1]
-
-A button activates whenever the mouse passes over it and deactivates
-whenever the mouse leaves the button.
-Under Windows, this binding is only active when mouse button 1 has
-been pressed over the button.
-
-=item [2]
-
-A button's relief is changed to sunken whenever mouse button 1 is
-pressed over the button, and the relief is restored to its original
-value when button 1 is later released.
-
-=item [3]
-
-If mouse button 1 is pressed over a button and later released over
-the button, the button is invoked. However, if the mouse is not
-over the button when button 1 is released, then no invocation occurs.
-
-=item [4]
-
-When a button has the input focus, the space key causes the button
-to be invoked.
-
-If the button's state is B<disabled> then none of the above
-actions occur: the button is completely non-responsive.
-
-The behavior of buttons can be changed by defining new bindings for
-individual widgets or by redefining the class bindings.
-
-=back
-
-=head1 KEYWORDS
-
-button, widget
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Camel.xpm b/Master/tlpkg/tlperl/lib/Tk/Camel.xpm
deleted file mode 100644
index ba33c0149ec..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Camel.xpm
+++ /dev/null
@@ -1,41 +0,0 @@
-/* XPM */
-static char *Camel[] = {
-/* width height num_colors chars_per_pixel */
-" 32 32 2 1",
-/* colors */
-". c #ffffff",
-"# c #7f7f00",
-/* pixels */
-"................................",
-"................................",
-"...................###..........",
-".......####......######.........",
-"....####.##.....########........",
-"....########....#########.......",
-"......######..###########.......",
-"......#####..#############......",
-".....######.##############......",
-".....######.###############.....",
-".....######################.....",
-".....#######################....",
-".....#######################....",
-"......#######################...",
-".......####################.#...",
-"........###################.#...",
-"........###############.###.#...",
-"............#######.###.###.#...",
-"............###.###.##...##.....",
-"............###.###..#...##.....",
-"............##.####..#....#.....",
-"............##.###...#....#.....",
-"............##.##...#.....#.....",
-"............#...#...#.....#.....",
-"............#....#..#.....#.....",
-"............#.....#.#.....#.....",
-"............#.....###.....#.....",
-"...........##....##.#....#......",
-"...........#..............#.....",
-".........###.............#......"
-"................................",
-"................................",
-};
diff --git a/Master/tlpkg/tlperl/lib/Tk/Canvas.pm b/Master/tlpkg/tlperl/lib/Tk/Canvas.pm
deleted file mode 100644
index beaa2a13866..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Canvas.pm
+++ /dev/null
@@ -1,1436 +0,0 @@
-package Tk::Canvas;
-use vars qw($VERSION);
-$VERSION = '4.013'; # sprintf '4.%03d', q$Revision: #12 $ =~ /\D(\d+)\s*$/;
-
-use Tk qw($XS_VERSION);
-
-use base qw(Tk::Widget);
-Construct Tk::Widget 'Canvas';
-
-bootstrap Tk::Canvas;
-
-sub Tk_cmd { \&Tk::canvas }
-
-Tk::Methods('addtag','bbox','bind','canvasx','canvasy','coords','create',
- 'dchars','delete','dtag','find','focus','gettags','icursor',
- 'index','insert','itemcget','itemconfigure','lower','move',
- 'postscript','raise','scale','scan','select','type','xview','yview');
-
-use Tk::Submethods ( 'create' => [qw(arc bitmap grid group image line oval
- polygon rectangle text window)],
- 'scan' => [qw(mark dragto)],
- 'select' => [qw(from clear item to)],
- 'xview' => [qw(moveto scroll)],
- 'yview' => [qw(moveto scroll)],
- );
-
-*CanvasBind = \&Tk::bind;
-*CanvasFocus = \&Tk::focus;
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->XYscrollBind($class);
- return $class;
-}
-
-sub BalloonInfo
-{
- my ($canvas,$balloon,$X,$Y,@opt) = @_;
- my @tags = ($canvas->find('withtag', 'current'),$canvas->gettags('current'));
- foreach my $opt (@opt)
- {
- my $info = $balloon->GetOption($opt,$canvas);
- if ($opt =~ /^-(statusmsg|balloonmsg)$/ && UNIVERSAL::isa($info,'HASH'))
- {
- $balloon->Subclient($tags[0]);
- foreach my $tag (@tags)
- {
- return $info->{$tag} if exists $info->{$tag};
- }
- return '';
- }
- return $info;
- }
-}
-
-sub get_corners
-{
- my $c = shift;
- my(@xview) = $c->xview;
- my(@yview) = $c->yview;
- my(@scrollregion) = @{$c->cget(-scrollregion)};
- return (
- $xview[0] * ($scrollregion[2]-$scrollregion[0]) + $scrollregion[0],
- $yview[0] * ($scrollregion[3]-$scrollregion[1]) + $scrollregion[1],
- $xview[1] * ($scrollregion[2]-$scrollregion[0]) + $scrollregion[0],
- $yview[1] * ($scrollregion[3]-$scrollregion[1]) + $scrollregion[1],
- );
-}
-
-# List of adobe glyph names. Converted from glyphlist.txt, downloaded
-# from Adobe
-
-$Tk::psglyphs = {qw(
- 0020 space
- 0021 exclam
- 0022 quotedbl
- 0023 numbersign
- 0024 dollar
- 0025 percent
- 0026 ampersand
- 0027 quotesingle
- 0028 parenleft
- 0029 parenright
- 002A asterisk
- 002B plus
- 002C comma
- 002D hyphen
- 002E period
- 002F slash
- 0030 zero
- 0031 one
- 0032 two
- 0033 three
- 0034 four
- 0035 five
- 0036 six
- 0037 seven
- 0038 eight
- 0039 nine
- 003A colon
- 003B semicolon
- 003C less
- 003D equal
- 003E greater
- 003F question
- 0040 at
- 0041 A
- 0042 B
- 0043 C
- 0044 D
- 0045 E
- 0046 F
- 0047 G
- 0048 H
- 0049 I
- 004A J
- 004B K
- 004C L
- 004D M
- 004E N
- 004F O
- 0050 P
- 0051 Q
- 0052 R
- 0053 S
- 0054 T
- 0055 U
- 0056 V
- 0057 W
- 0058 X
- 0059 Y
- 005A Z
- 005B bracketleft
- 005C backslash
- 005D bracketright
- 005E asciicircum
- 005F underscore
- 0060 grave
- 0061 a
- 0062 b
- 0063 c
- 0064 d
- 0065 e
- 0066 f
- 0067 g
- 0068 h
- 0069 i
- 006A j
- 006B k
- 006C l
- 006D m
- 006E n
- 006F o
- 0070 p
- 0071 q
- 0072 r
- 0073 s
- 0074 t
- 0075 u
- 0076 v
- 0077 w
- 0078 x
- 0079 y
- 007A z
- 007B braceleft
- 007C bar
- 007D braceright
- 007E asciitilde
- 00A0 space
- 00A1 exclamdown
- 00A2 cent
- 00A3 sterling
- 00A4 currency
- 00A5 yen
- 00A6 brokenbar
- 00A7 section
- 00A8 dieresis
- 00A9 copyright
- 00AA ordfeminine
- 00AB guillemotleft
- 00AC logicalnot
- 00AD hyphen
- 00AE registered
- 00AF macron
- 00B0 degree
- 00B1 plusminus
- 00B2 twosuperior
- 00B3 threesuperior
- 00B4 acute
- 00B5 mu
- 00B6 paragraph
- 00B7 periodcentered
- 00B8 cedilla
- 00B9 onesuperior
- 00BA ordmasculine
- 00BB guillemotright
- 00BC onequarter
- 00BD onehalf
- 00BE threequarters
- 00BF questiondown
- 00C0 Agrave
- 00C1 Aacute
- 00C2 Acircumflex
- 00C3 Atilde
- 00C4 Adieresis
- 00C5 Aring
- 00C6 AE
- 00C7 Ccedilla
- 00C8 Egrave
- 00C9 Eacute
- 00CA Ecircumflex
- 00CB Edieresis
- 00CC Igrave
- 00CD Iacute
- 00CE Icircumflex
- 00CF Idieresis
- 00D0 Eth
- 00D1 Ntilde
- 00D2 Ograve
- 00D3 Oacute
- 00D4 Ocircumflex
- 00D5 Otilde
- 00D6 Odieresis
- 00D7 multiply
- 00D8 Oslash
- 00D9 Ugrave
- 00DA Uacute
- 00DB Ucircumflex
- 00DC Udieresis
- 00DD Yacute
- 00DE Thorn
- 00DF germandbls
- 00E0 agrave
- 00E1 aacute
- 00E2 acircumflex
- 00E3 atilde
- 00E4 adieresis
- 00E5 aring
- 00E6 ae
- 00E7 ccedilla
- 00E8 egrave
- 00E9 eacute
- 00EA ecircumflex
- 00EB edieresis
- 00EC igrave
- 00ED iacute
- 00EE icircumflex
- 00EF idieresis
- 00F0 eth
- 00F1 ntilde
- 00F2 ograve
- 00F3 oacute
- 00F4 ocircumflex
- 00F5 otilde
- 00F6 odieresis
- 00F7 divide
- 00F8 oslash
- 00F9 ugrave
- 00FA uacute
- 00FB ucircumflex
- 00FC udieresis
- 00FD yacute
- 00FE thorn
- 00FF ydieresis
- 0100 Amacron
- 0101 amacron
- 0102 Abreve
- 0103 abreve
- 0104 Aogonek
- 0105 aogonek
- 0106 Cacute
- 0107 cacute
- 0108 Ccircumflex
- 0109 ccircumflex
- 010A Cdotaccent
- 010B cdotaccent
- 010C Ccaron
- 010D ccaron
- 010E Dcaron
- 010F dcaron
- 0110 Dcroat
- 0111 dcroat
- 0112 Emacron
- 0113 emacron
- 0114 Ebreve
- 0115 ebreve
- 0116 Edotaccent
- 0117 edotaccent
- 0118 Eogonek
- 0119 eogonek
- 011A Ecaron
- 011B ecaron
- 011C Gcircumflex
- 011D gcircumflex
- 011E Gbreve
- 011F gbreve
- 0120 Gdotaccent
- 0121 gdotaccent
- 0122 Gcommaaccent
- 0123 gcommaaccent
- 0124 Hcircumflex
- 0125 hcircumflex
- 0126 Hbar
- 0127 hbar
- 0128 Itilde
- 0129 itilde
- 012A Imacron
- 012B imacron
- 012C Ibreve
- 012D ibreve
- 012E Iogonek
- 012F iogonek
- 0130 Idotaccent
- 0131 dotlessi
- 0132 IJ
- 0133 ij
- 0134 Jcircumflex
- 0135 jcircumflex
- 0136 Kcommaaccent
- 0137 kcommaaccent
- 0138 kgreenlandic
- 0139 Lacute
- 013A lacute
- 013B Lcommaaccent
- 013C lcommaaccent
- 013D Lcaron
- 013E lcaron
- 013F Ldot
- 0140 ldot
- 0141 Lslash
- 0142 lslash
- 0143 Nacute
- 0144 nacute
- 0145 Ncommaaccent
- 0146 ncommaaccent
- 0147 Ncaron
- 0148 ncaron
- 0149 napostrophe
- 014A Eng
- 014B eng
- 014C Omacron
- 014D omacron
- 014E Obreve
- 014F obreve
- 0150 Ohungarumlaut
- 0151 ohungarumlaut
- 0152 OE
- 0153 oe
- 0154 Racute
- 0155 racute
- 0156 Rcommaaccent
- 0157 rcommaaccent
- 0158 Rcaron
- 0159 rcaron
- 015A Sacute
- 015B sacute
- 015C Scircumflex
- 015D scircumflex
- 015E Scedilla
- 015F scedilla
- 0160 Scaron
- 0161 scaron
- 0162 Tcommaaccent
- 0163 tcommaaccent
- 0164 Tcaron
- 0165 tcaron
- 0166 Tbar
- 0167 tbar
- 0168 Utilde
- 0169 utilde
- 016A Umacron
- 016B umacron
- 016C Ubreve
- 016D ubreve
- 016E Uring
- 016F uring
- 0170 Uhungarumlaut
- 0171 uhungarumlaut
- 0172 Uogonek
- 0173 uogonek
- 0174 Wcircumflex
- 0175 wcircumflex
- 0176 Ycircumflex
- 0177 ycircumflex
- 0178 Ydieresis
- 0179 Zacute
- 017A zacute
- 017B Zdotaccent
- 017C zdotaccent
- 017D Zcaron
- 017E zcaron
- 017F longs
- 0192 florin
- 01A0 Ohorn
- 01A1 ohorn
- 01AF Uhorn
- 01B0 uhorn
- 01E6 Gcaron
- 01E7 gcaron
- 01FA Aringacute
- 01FB aringacute
- 01FC AEacute
- 01FD aeacute
- 01FE Oslashacute
- 01FF oslashacute
- 0218 Scommaaccent
- 0219 scommaaccent
- 021A Tcommaaccent
- 021B tcommaaccent
- 02BC afii57929
- 02BD afii64937
- 02C6 circumflex
- 02C7 caron
- 02C9 macron
- 02D8 breve
- 02D9 dotaccent
- 02DA ring
- 02DB ogonek
- 02DC tilde
- 02DD hungarumlaut
- 0300 gravecomb
- 0301 acutecomb
- 0303 tildecomb
- 0309 hookabovecomb
- 0323 dotbelowcomb
- 0384 tonos
- 0385 dieresistonos
- 0386 Alphatonos
- 0387 anoteleia
- 0388 Epsilontonos
- 0389 Etatonos
- 038A Iotatonos
- 038C Omicrontonos
- 038E Upsilontonos
- 038F Omegatonos
- 0390 iotadieresistonos
- 0391 Alpha
- 0392 Beta
- 0393 Gamma
- 0394 Delta
- 0395 Epsilon
- 0396 Zeta
- 0397 Eta
- 0398 Theta
- 0399 Iota
- 039A Kappa
- 039B Lambda
- 039C Mu
- 039D Nu
- 039E Xi
- 039F Omicron
- 03A0 Pi
- 03A1 Rho
- 03A3 Sigma
- 03A4 Tau
- 03A5 Upsilon
- 03A6 Phi
- 03A7 Chi
- 03A8 Psi
- 03A9 Omega
- 03AA Iotadieresis
- 03AB Upsilondieresis
- 03AC alphatonos
- 03AD epsilontonos
- 03AE etatonos
- 03AF iotatonos
- 03B0 upsilondieresistonos
- 03B1 alpha
- 03B2 beta
- 03B3 gamma
- 03B4 delta
- 03B5 epsilon
- 03B6 zeta
- 03B7 eta
- 03B8 theta
- 03B9 iota
- 03BA kappa
- 03BB lambda
- 03BC mu
- 03BD nu
- 03BE xi
- 03BF omicron
- 03C0 pi
- 03C1 rho
- 03C2 sigma1
- 03C3 sigma
- 03C4 tau
- 03C5 upsilon
- 03C6 phi
- 03C7 chi
- 03C8 psi
- 03C9 omega
- 03CA iotadieresis
- 03CB upsilondieresis
- 03CC omicrontonos
- 03CD upsilontonos
- 03CE omegatonos
- 03D1 theta1
- 03D2 Upsilon1
- 03D5 phi1
- 03D6 omega1
- 0401 afii10023
- 0402 afii10051
- 0403 afii10052
- 0404 afii10053
- 0405 afii10054
- 0406 afii10055
- 0407 afii10056
- 0408 afii10057
- 0409 afii10058
- 040A afii10059
- 040B afii10060
- 040C afii10061
- 040E afii10062
- 040F afii10145
- 0410 afii10017
- 0411 afii10018
- 0412 afii10019
- 0413 afii10020
- 0414 afii10021
- 0415 afii10022
- 0416 afii10024
- 0417 afii10025
- 0418 afii10026
- 0419 afii10027
- 041A afii10028
- 041B afii10029
- 041C afii10030
- 041D afii10031
- 041E afii10032
- 041F afii10033
- 0420 afii10034
- 0421 afii10035
- 0422 afii10036
- 0423 afii10037
- 0424 afii10038
- 0425 afii10039
- 0426 afii10040
- 0427 afii10041
- 0428 afii10042
- 0429 afii10043
- 042A afii10044
- 042B afii10045
- 042C afii10046
- 042D afii10047
- 042E afii10048
- 042F afii10049
- 0430 afii10065
- 0431 afii10066
- 0432 afii10067
- 0433 afii10068
- 0434 afii10069
- 0435 afii10070
- 0436 afii10072
- 0437 afii10073
- 0438 afii10074
- 0439 afii10075
- 043A afii10076
- 043B afii10077
- 043C afii10078
- 043D afii10079
- 043E afii10080
- 043F afii10081
- 0440 afii10082
- 0441 afii10083
- 0442 afii10084
- 0443 afii10085
- 0444 afii10086
- 0445 afii10087
- 0446 afii10088
- 0447 afii10089
- 0448 afii10090
- 0449 afii10091
- 044A afii10092
- 044B afii10093
- 044C afii10094
- 044D afii10095
- 044E afii10096
- 044F afii10097
- 0451 afii10071
- 0452 afii10099
- 0453 afii10100
- 0454 afii10101
- 0455 afii10102
- 0456 afii10103
- 0457 afii10104
- 0458 afii10105
- 0459 afii10106
- 045A afii10107
- 045B afii10108
- 045C afii10109
- 045E afii10110
- 045F afii10193
- 0462 afii10146
- 0463 afii10194
- 0472 afii10147
- 0473 afii10195
- 0474 afii10148
- 0475 afii10196
- 0490 afii10050
- 0491 afii10098
- 04D9 afii10846
- 05B0 afii57799
- 05B1 afii57801
- 05B2 afii57800
- 05B3 afii57802
- 05B4 afii57793
- 05B5 afii57794
- 05B6 afii57795
- 05B7 afii57798
- 05B8 afii57797
- 05B9 afii57806
- 05BB afii57796
- 05BC afii57807
- 05BD afii57839
- 05BE afii57645
- 05BF afii57841
- 05C0 afii57842
- 05C1 afii57804
- 05C2 afii57803
- 05C3 afii57658
- 05D0 afii57664
- 05D1 afii57665
- 05D2 afii57666
- 05D3 afii57667
- 05D4 afii57668
- 05D5 afii57669
- 05D6 afii57670
- 05D7 afii57671
- 05D8 afii57672
- 05D9 afii57673
- 05DA afii57674
- 05DB afii57675
- 05DC afii57676
- 05DD afii57677
- 05DE afii57678
- 05DF afii57679
- 05E0 afii57680
- 05E1 afii57681
- 05E2 afii57682
- 05E3 afii57683
- 05E4 afii57684
- 05E5 afii57685
- 05E6 afii57686
- 05E7 afii57687
- 05E8 afii57688
- 05E9 afii57689
- 05EA afii57690
- 05F0 afii57716
- 05F1 afii57717
- 05F2 afii57718
- 060C afii57388
- 061B afii57403
- 061F afii57407
- 0621 afii57409
- 0622 afii57410
- 0623 afii57411
- 0624 afii57412
- 0625 afii57413
- 0626 afii57414
- 0627 afii57415
- 0628 afii57416
- 0629 afii57417
- 062A afii57418
- 062B afii57419
- 062C afii57420
- 062D afii57421
- 062E afii57422
- 062F afii57423
- 0630 afii57424
- 0631 afii57425
- 0632 afii57426
- 0633 afii57427
- 0634 afii57428
- 0635 afii57429
- 0636 afii57430
- 0637 afii57431
- 0638 afii57432
- 0639 afii57433
- 063A afii57434
- 0640 afii57440
- 0641 afii57441
- 0642 afii57442
- 0643 afii57443
- 0644 afii57444
- 0645 afii57445
- 0646 afii57446
- 0647 afii57470
- 0648 afii57448
- 0649 afii57449
- 064A afii57450
- 064B afii57451
- 064C afii57452
- 064D afii57453
- 064E afii57454
- 064F afii57455
- 0650 afii57456
- 0651 afii57457
- 0652 afii57458
- 0660 afii57392
- 0661 afii57393
- 0662 afii57394
- 0663 afii57395
- 0664 afii57396
- 0665 afii57397
- 0666 afii57398
- 0667 afii57399
- 0668 afii57400
- 0669 afii57401
- 066A afii57381
- 066D afii63167
- 0679 afii57511
- 067E afii57506
- 0686 afii57507
- 0688 afii57512
- 0691 afii57513
- 0698 afii57508
- 06A4 afii57505
- 06AF afii57509
- 06BA afii57514
- 06D2 afii57519
- 06D5 afii57534
- 1E80 Wgrave
- 1E81 wgrave
- 1E82 Wacute
- 1E83 wacute
- 1E84 Wdieresis
- 1E85 wdieresis
- 1EF2 Ygrave
- 1EF3 ygrave
- 200C afii61664
- 200D afii301
- 200E afii299
- 200F afii300
- 2012 figuredash
- 2013 endash
- 2014 emdash
- 2015 afii00208
- 2017 underscoredbl
- 2018 quoteleft
- 2019 quoteright
- 201A quotesinglbase
- 201B quotereversed
- 201C quotedblleft
- 201D quotedblright
- 201E quotedblbase
- 2020 dagger
- 2021 daggerdbl
- 2022 bullet
- 2024 onedotenleader
- 2025 twodotenleader
- 2026 ellipsis
- 202C afii61573
- 202D afii61574
- 202E afii61575
- 2030 perthousand
- 2032 minute
- 2033 second
- 2039 guilsinglleft
- 203A guilsinglright
- 203C exclamdbl
- 2044 fraction
- 2070 zerosuperior
- 2074 foursuperior
- 2075 fivesuperior
- 2076 sixsuperior
- 2077 sevensuperior
- 2078 eightsuperior
- 2079 ninesuperior
- 207D parenleftsuperior
- 207E parenrightsuperior
- 207F nsuperior
- 2080 zeroinferior
- 2081 oneinferior
- 2082 twoinferior
- 2083 threeinferior
- 2084 fourinferior
- 2085 fiveinferior
- 2086 sixinferior
- 2087 seveninferior
- 2088 eightinferior
- 2089 nineinferior
- 208D parenleftinferior
- 208E parenrightinferior
- 20A1 colonmonetary
- 20A3 franc
- 20A4 lira
- 20A7 peseta
- 20AA afii57636
- 20AB dong
- 20AC Euro
- 2105 afii61248
- 2111 Ifraktur
- 2113 afii61289
- 2116 afii61352
- 2118 weierstrass
- 211C Rfraktur
- 211E prescription
- 2122 trademark
- 2126 Omega
- 212E estimated
- 2135 aleph
- 2153 onethird
- 2154 twothirds
- 215B oneeighth
- 215C threeeighths
- 215D fiveeighths
- 215E seveneighths
- 2190 arrowleft
- 2191 arrowup
- 2192 arrowright
- 2193 arrowdown
- 2194 arrowboth
- 2195 arrowupdn
- 21A8 arrowupdnbse
- 21B5 carriagereturn
- 21D0 arrowdblleft
- 21D1 arrowdblup
- 21D2 arrowdblright
- 21D3 arrowdbldown
- 21D4 arrowdblboth
- 2200 universal
- 2202 partialdiff
- 2203 existential
- 2205 emptyset
- 2206 Delta
- 2207 gradient
- 2208 element
- 2209 notelement
- 220B suchthat
- 220F product
- 2211 summation
- 2212 minus
- 2215 fraction
- 2217 asteriskmath
- 2219 periodcentered
- 221A radical
- 221D proportional
- 221E infinity
- 221F orthogonal
- 2220 angle
- 2227 logicaland
- 2228 logicalor
- 2229 intersection
- 222A union
- 222B integral
- 2234 therefore
- 223C similar
- 2245 congruent
- 2248 approxequal
- 2260 notequal
- 2261 equivalence
- 2264 lessequal
- 2265 greaterequal
- 2282 propersubset
- 2283 propersuperset
- 2284 notsubset
- 2286 reflexsubset
- 2287 reflexsuperset
- 2295 circleplus
- 2297 circlemultiply
- 22A5 perpendicular
- 22C5 dotmath
- 2302 house
- 2310 revlogicalnot
- 2320 integraltp
- 2321 integralbt
- 2329 angleleft
- 232A angleright
- 2500 SF100000
- 2502 SF110000
- 250C SF010000
- 2510 SF030000
- 2514 SF020000
- 2518 SF040000
- 251C SF080000
- 2524 SF090000
- 252C SF060000
- 2534 SF070000
- 253C SF050000
- 2550 SF430000
- 2551 SF240000
- 2552 SF510000
- 2553 SF520000
- 2554 SF390000
- 2555 SF220000
- 2556 SF210000
- 2557 SF250000
- 2558 SF500000
- 2559 SF490000
- 255A SF380000
- 255B SF280000
- 255C SF270000
- 255D SF260000
- 255E SF360000
- 255F SF370000
- 2560 SF420000
- 2561 SF190000
- 2562 SF200000
- 2563 SF230000
- 2564 SF470000
- 2565 SF480000
- 2566 SF410000
- 2567 SF450000
- 2568 SF460000
- 2569 SF400000
- 256A SF540000
- 256B SF530000
- 256C SF440000
- 2580 upblock
- 2584 dnblock
- 2588 block
- 258C lfblock
- 2590 rtblock
- 2591 ltshade
- 2592 shade
- 2593 dkshade
- 25A0 filledbox
- 25A1 H22073
- 25AA H18543
- 25AB H18551
- 25AC filledrect
- 25B2 triagup
- 25BA triagrt
- 25BC triagdn
- 25C4 triaglf
- 25CA lozenge
- 25CB circle
- 25CF H18533
- 25D8 invbullet
- 25D9 invcircle
- 25E6 openbullet
- 263A smileface
- 263B invsmileface
- 263C sun
- 2640 female
- 2642 male
- 2660 spade
- 2663 club
- 2665 heart
- 2666 diamond
- 266A musicalnote
- 266B musicalnotedbl
- F6BE dotlessj
- F6BF LL
- F6C0 ll
- F6C1 Scedilla
- F6C2 scedilla
- F6C3 commaaccent
- F6C4 afii10063
- F6C5 afii10064
- F6C6 afii10192
- F6C7 afii10831
- F6C8 afii10832
- F6C9 Acute
- F6CA Caron
- F6CB Dieresis
- F6CC DieresisAcute
- F6CD DieresisGrave
- F6CE Grave
- F6CF Hungarumlaut
- F6D0 Macron
- F6D1 cyrBreve
- F6D2 cyrFlex
- F6D3 dblGrave
- F6D4 cyrbreve
- F6D5 cyrflex
- F6D6 dblgrave
- F6D7 dieresisacute
- F6D8 dieresisgrave
- F6D9 copyrightserif
- F6DA registerserif
- F6DB trademarkserif
- F6DC onefitted
- F6DD rupiah
- F6DE threequartersemdash
- F6DF centinferior
- F6E0 centsuperior
- F6E1 commainferior
- F6E2 commasuperior
- F6E3 dollarinferior
- F6E4 dollarsuperior
- F6E5 hypheninferior
- F6E6 hyphensuperior
- F6E7 periodinferior
- F6E8 periodsuperior
- F6E9 asuperior
- F6EA bsuperior
- F6EB dsuperior
- F6EC esuperior
- F6ED isuperior
- F6EE lsuperior
- F6EF msuperior
- F6F0 osuperior
- F6F1 rsuperior
- F6F2 ssuperior
- F6F3 tsuperior
- F6F4 Brevesmall
- F6F5 Caronsmall
- F6F6 Circumflexsmall
- F6F7 Dotaccentsmall
- F6F8 Hungarumlautsmall
- F6F9 Lslashsmall
- F6FA OEsmall
- F6FB Ogoneksmall
- F6FC Ringsmall
- F6FD Scaronsmall
- F6FE Tildesmall
- F6FF Zcaronsmall
- F721 exclamsmall
- F724 dollaroldstyle
- F726 ampersandsmall
- F730 zerooldstyle
- F731 oneoldstyle
- F732 twooldstyle
- F733 threeoldstyle
- F734 fouroldstyle
- F735 fiveoldstyle
- F736 sixoldstyle
- F737 sevenoldstyle
- F738 eightoldstyle
- F739 nineoldstyle
- F73F questionsmall
- F760 Gravesmall
- F761 Asmall
- F762 Bsmall
- F763 Csmall
- F764 Dsmall
- F765 Esmall
- F766 Fsmall
- F767 Gsmall
- F768 Hsmall
- F769 Ismall
- F76A Jsmall
- F76B Ksmall
- F76C Lsmall
- F76D Msmall
- F76E Nsmall
- F76F Osmall
- F770 Psmall
- F771 Qsmall
- F772 Rsmall
- F773 Ssmall
- F774 Tsmall
- F775 Usmall
- F776 Vsmall
- F777 Wsmall
- F778 Xsmall
- F779 Ysmall
- F77A Zsmall
- F7A1 exclamdownsmall
- F7A2 centoldstyle
- F7A8 Dieresissmall
- F7AF Macronsmall
- F7B4 Acutesmall
- F7B8 Cedillasmall
- F7BF questiondownsmall
- F7E0 Agravesmall
- F7E1 Aacutesmall
- F7E2 Acircumflexsmall
- F7E3 Atildesmall
- F7E4 Adieresissmall
- F7E5 Aringsmall
- F7E6 AEsmall
- F7E7 Ccedillasmall
- F7E8 Egravesmall
- F7E9 Eacutesmall
- F7EA Ecircumflexsmall
- F7EB Edieresissmall
- F7EC Igravesmall
- F7ED Iacutesmall
- F7EE Icircumflexsmall
- F7EF Idieresissmall
- F7F0 Ethsmall
- F7F1 Ntildesmall
- F7F2 Ogravesmall
- F7F3 Oacutesmall
- F7F4 Ocircumflexsmall
- F7F5 Otildesmall
- F7F6 Odieresissmall
- F7F8 Oslashsmall
- F7F9 Ugravesmall
- F7FA Uacutesmall
- F7FB Ucircumflexsmall
- F7FC Udieresissmall
- F7FD Yacutesmall
- F7FE Thornsmall
- F7FF Ydieresissmall
- F8E5 radicalex
- F8E6 arrowvertex
- F8E7 arrowhorizex
- F8E8 registersans
- F8E9 copyrightsans
- F8EA trademarksans
- F8EB parenlefttp
- F8EC parenleftex
- F8ED parenleftbt
- F8EE bracketlefttp
- F8EF bracketleftex
- F8F0 bracketleftbt
- F8F1 bracelefttp
- F8F2 braceleftmid
- F8F3 braceleftbt
- F8F4 braceex
- F8F5 integralex
- F8F6 parenrighttp
- F8F7 parenrightex
- F8F8 parenrightbt
- F8F9 bracketrighttp
- F8FA bracketrightex
- F8FB bracketrightbt
- F8FC bracerighttp
- F8FD bracerightmid
- F8FE bracerightbt
- FB00 ff
- FB01 fi
- FB02 fl
- FB03 ffi
- FB04 ffl
- FB1F afii57705
- FB2A afii57694
- FB2B afii57695
- FB35 afii57723
- FB4B afii57700
-)};
-
-
-sub CreatePostscriptEncoding
-{
- my ($encoding) = @_;
- my $result = "/CurrentEncoding \[\n";
- for (my $i = 0; $i < 256; $i += 8)
- {
- for (my $j = 0; $j < 8; $j++)
- {
- my $ch;
- Tk::catch { $ch = $encoding->decode(chr($i+$j),1) };
- if ($@)
- {
- $result .= '/space';
- }
- else
- {
- my $hexcode = sprintf("%04X",ord($ch));
- $result .= '/'.((exists $Tk::psglyphs->{$hexcode}) ? $Tk::psglyphs->{$hexcode} : 'space');
- }
- }
- $result .= "\n";
- }
- $result .= "\] def\n";
- return $result;
-}
-
-# precalculate entire prolog when this file is loaded
-# (to speed things up)
-$Tk::ps_preamable = "%%BeginProlog\n".
- CreatePostscriptEncoding(Tk::SystemEncoding()). <<'END';
-50 dict begin
-% This is a standard prolog for Postscript generated by Tk's canvas
-% widget.
-% RCS: @(#) $Id: //depot/Tkutf8/Canvas/Canvas.pm#12 $
-
-% The definitions below just define all of the variables used in
-% any of the procedures here. This is needed for obscure reasons
-% explained on p. 716 of the Postscript manual (Section H.2.7,
-% "Initializing Variables," in the section on Encapsulated Postscript).
-
-/baseline 0 def
-/stipimage 0 def
-/height 0 def
-/justify 0 def
-/lineLength 0 def
-/spacing 0 def
-/stipple 0 def
-/strings 0 def
-/xoffset 0 def
-/yoffset 0 def
-/tmpstip null def
-
-
-/cstringshow {
- {
- dup type /stringtype eq
- { show } { glyphshow }
- ifelse
- }
- forall
-} bind def
-
-
-
-/cstringwidth {
- 0 exch 0 exch
- {
- dup type /stringtype eq
- { stringwidth } {
- currentfont /Encoding get exch 1 exch put (\001) stringwidth
- }
- ifelse
- exch 3 1 roll add 3 1 roll add exch
- }
- forall
-} bind def
-
-% font ISOEncode font
-% This procedure changes the encoding of a font from the default
-% Postscript encoding to current system encoding. It's typically invoked just
-% before invoking "setfont". The body of this procedure comes from
-% Section 5.6.1 of the Postscript book.
-
-/ISOEncode {
- dup length dict begin
- {1 index /FID ne {def} {pop pop} ifelse} forall
- /Encoding CurrentEncoding def
- currentdict
- end
-
- % I'm not sure why it's necessary to use "definefont" on this new
- % font, but it seems to be important; just use the name "Temporary"
- % for the font.
-
- /Temporary exch definefont
-} bind def
-
-% StrokeClip
-%
-% This procedure converts the current path into a clip area under
-% the assumption of stroking. It's a bit tricky because some Postscript
-% interpreters get errors during strokepath for dashed lines. If
-% this happens then turn off dashes and try again.
-
-/StrokeClip {
- {strokepath} stopped {
- (This Postscript printer gets limitcheck overflows when) =
- (stippling dashed lines; lines will be printed solid instead.) =
- [] 0 setdash strokepath} if
- clip
-} bind def
-
-% desiredSize EvenPixels closestSize
-%
-% The procedure below is used for stippling. Given the optimal size
-% of a dot in a stipple pattern in the current user coordinate system,
-% compute the closest size that is an exact multiple of the device's
-% pixel size. This allows stipple patterns to be displayed without
-% aliasing effects.
-
-/EvenPixels {
- % Compute exact number of device pixels per stipple dot.
- dup 0 matrix currentmatrix dtransform
- dup mul exch dup mul add sqrt
-
- % Round to an integer, make sure the number is at least 1, and compute
- % user coord distance corresponding to this.
- dup round dup 1 lt {pop 1} if
- exch div mul
-} bind def
-
-% width height string StippleFill --
-%
-% Given a path already set up and a clipping region generated from
-% it, this procedure will fill the clipping region with a stipple
-% pattern. "String" contains a proper image description of the
-% stipple pattern and "width" and "height" give its dimensions. Each
-% stipple dot is assumed to be about one unit across in the current
-% user coordinate system. This procedure trashes the graphics state.
-
-/StippleFill {
- % The following code is needed to work around a NeWSprint bug.
-
- /tmpstip 1 index def
-
- % Change the scaling so that one user unit in user coordinates
- % corresponds to the size of one stipple dot.
- 1 EvenPixels dup scale
-
- % Compute the bounding box occupied by the path (which is now
- % the clipping region), and round the lower coordinates down
- % to the nearest starting point for the stipple pattern. Be
- % careful about negative numbers, since the rounding works
- % differently on them.
-
- pathbbox
- 4 2 roll
- 5 index div dup 0 lt {1 sub} if cvi 5 index mul 4 1 roll
- 6 index div dup 0 lt {1 sub} if cvi 6 index mul 3 2 roll
-
- % Stack now: width height string y1 y2 x1 x2
- % Below is a doubly-nested for loop to iterate across this area
- % in units of the stipple pattern size, going up columns then
- % across rows, blasting out a stipple-pattern-sized rectangle at
- % each position
-
- 6 index exch {
- 2 index 5 index 3 index {
- % Stack now: width height string y1 y2 x y
-
- gsave
- 1 index exch translate
- 5 index 5 index true matrix tmpstip imagemask
- grestore
- } for
- pop
- } for
- pop pop pop pop pop
-} bind def
-
-% -- AdjustColor --
-% Given a color value already set for output by the caller, adjusts
-% that value to a grayscale or mono value if requested by the CL
-% variable.
-
-/AdjustColor {
- CL 2 lt {
- currentgray
- CL 0 eq {
- .5 lt {0} {1} ifelse
- } if
- setgray
- } if
-} bind def
-
-% x y strings spacing xoffset yoffset justify stipple DrawText --
-% This procedure does all of the real work of drawing text. The
-% color and font must already have been set by the caller, and the
-% following arguments must be on the stack:
-%
-% x, y - Coordinates at which to draw text.
-% strings - An array of strings, one for each line of the text item,
-% in order from top to bottom.
-% spacing - Spacing between lines.
-% xoffset - Horizontal offset for text bbox relative to x and y: 0 for
-% nw/w/sw anchor, -0.5 for n/center/s, and -1.0 for ne/e/se.
-% yoffset - Vertical offset for text bbox relative to x and y: 0 for
-% nw/n/ne anchor, +0.5 for w/center/e, and +1.0 for sw/s/se.
-% justify - 0 for left justification, 0.5 for center, 1 for right justify.
-% stipple - Boolean value indicating whether or not text is to be
-% drawn in stippled fashion. If text is stippled,
-% procedure StippleText must have been defined to call
-% StippleFill in the right way.
-%
-% Also, when this procedure is invoked, the color and font must already
-% have been set for the text.
-
-/DrawText {
- /stipple exch def
- /justify exch def
- /yoffset exch def
- /xoffset exch def
- /spacing exch def
- /strings exch def
-
- % First scan through all of the text to find the widest line.
-
- /lineLength 0 def
- strings {
- cstringwidth pop
- dup lineLength gt {/lineLength exch def} {pop} ifelse
- newpath
- } forall
-
- % Compute the baseline offset and the actual font height.
-
- 0 0 moveto (TXygqPZ) false charpath
- pathbbox dup /baseline exch def
- exch pop exch sub /height exch def pop
- newpath
-
- % Translate coordinates first so that the origin is at the upper-left
- % corner of the text's bounding box. Remember that x and y for
- % positioning are still on the stack.
-
- translate
- lineLength xoffset mul
- strings length 1 sub spacing mul height add yoffset mul translate
-
- % Now use the baseline and justification information to translate so
- % that the origin is at the baseline and positioning point for the
- % first line of text.
-
- justify lineLength mul baseline neg translate
-
- % Iterate over each of the lines to output it. For each line,
- % compute its width again so it can be properly justified, then
- % display it.
-
- strings {
- dup cstringwidth pop
- justify neg mul 0 moveto
- stipple {
-
-
- % The text is stippled, so turn it into a path and print
- % by calling StippledText, which in turn calls StippleFill.
- % Unfortunately, many Postscript interpreters will get
- % overflow errors if we try to do the whole string at
- % once, so do it a character at a time.
-
- gsave
- /char (X) def
- {
- dup type /stringtype eq {
- % This segment is a string.
- {
- char 0 3 -1 roll put
- currentpoint
- gsave
- char true charpath clip StippleText
- grestore
- char stringwidth translate
- moveto
- } forall
- } {
- % This segment is glyph name
- % Temporary override
- currentfont /Encoding get exch 1 exch put
- currentpoint
- gsave (\001) true charpath clip StippleText
- grestore
- (\001) stringwidth translate
- moveto
- } ifelse
- } forall
- grestore
- } {cstringshow} ifelse
- 0 spacing neg translate
- } forall
-} bind def
-
-%%EndProlog
-END
-
-1;
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Canvas.pod b/Master/tlpkg/tlperl/lib/Tk/Canvas.pod
deleted file mode 100644
index daf4cf7f32e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Canvas.pod
+++ /dev/null
@@ -1,2394 +0,0 @@
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-
-=head1 NAME
-
-Tk::Canvas - Create and manipulate Canvas widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-I<$canvas> = I<$parent>-E<gt>B<Canvas>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-background> B<-highlightthickness> B<-insertwidth> B<-state>
-B<-borderwidth> B<-insertbackground> B<-relief> B<-tile>
-B<-cursor> B<-insertborderwidth> B<-selectbackground> B<-takefocus>
-B<-highlightbackground> B<-insertofftime> B<-selectborderwidth> B<-xscrollcommand>
-B<-highlightcolor> B<-insertontime> B<-selectforeground> B<-yscrollcommand>
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<closeEnough>
-
-=item Class: B<CloseEnough>
-
-=item Switch: B<-closeenough>
-
-Specifies a floating-point value indicating how close the mouse cursor
-must be to an item before it is considered to be ``inside'' the item.
-Defaults to 1.0.
-
-=item Name: B<confine>
-
-=item Class: B<Confine>
-
-=item Switch: B<-confine>
-
-Specifies a boolean value that indicates whether or not it should be
-allowable to set the canvas's view outside the region defined by the
-B<scrollRegion> argument.
-Defaults to true, which means that the view will
-be constrained within the scroll region.
-
-=item Name: B<height>
-
-=item Class: B<Height>
-
-=item Switch: B<-height>
-
-Specifies a desired window height that the canvas widget should request from
-its geometry manager. The value may be specified in any
-of the forms described in the L<"COORDINATES"> section below.
-
-=item Name: B<scrollRegion>
-
-=item Class: B<ScrollRegion>
-
-=item Switch: B<-scrollregion>
-
-Specifies a list with four coordinates describing the left, top, right, and
-bottom coordinates of a rectangular region.
-This region is used for scrolling purposes and is considered to be
-the boundary of the information in the canvas.
-Each of the coordinates may be specified
-in any of the forms given in the L<"COORDINATES"> section below.
-
-=item Name: B<state>
-
-=item Class: B<State>
-
-=item Switch: B<-state>
-
-Modifies the default state of the canvas where I<state> may be set to one of:
-normal, disabled, or hidden. Individual canvas objects all have their own
-state option, which overrides the default state. Many options can take
-separate specifications such that the appearance of the item can be different
-in different situations. The options that start with "active" control the
-appearence when the mouse pointer is over it, while the option starting
-with "disabled" controls the appearence when the state is disabled.
-
-=item Name: B<width>
-
-=item Class: B<width>
-
-=item Switch: B<-width>
-
-Specifies a desired window width that the canvas widget should request from
-its geometry manager. The value may be specified in any
-of the forms described in the L<"COORDINATES"> section below.
-
-=item Name: B<xScrollIncrement>
-
-=item Class: B<ScrollIncrement>
-
-=item Switch: B<-xscrollincrement>
-
-Specifies an increment for horizontal scrolling, in any of the usual forms
-permitted for screen distances. If the value of this option is greater
-than zero, the horizontal view in the window will be constrained so that
-the canvas x coordinate at the left edge of the window is always an even
-multiple of B<xScrollIncrement>; furthermore, the units for scrolling
-(e.g., the change in view when the left and right arrows of a scrollbar
-are selected) will also be B<xScrollIncrement>. If the value of
-this option is less than or equal to zero, then horizontal scrolling
-is unconstrained.
-
-=item Name: B<yScrollIncrement>
-
-=item Class: B<ScrollIncrement>
-
-=item Switch: B<-yscrollincrement>
-
-Specifies an increment for vertical scrolling, in any of the usual forms
-permitted for screen distances. If the value of this option is greater
-than zero, the vertical view in the window will be constrained so that
-the canvas y coordinate at the top edge of the window is always an even
-multiple of B<yScrollIncrement>; furthermore, the units for scrolling
-(e.g., the change in view when the top and bottom arrows of a scrollbar
-are selected) will also be B<yScrollIncrement>. If the value of
-this option is less than or equal to zero, then vertical scrolling
-is unconstrained.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Canvas> method creates a new window (given
-by the $canvas argument) and makes it into a canvas widget.
-Additional options, described above, may be specified on the
-command line or in the option database
-to configure aspects of the canvas such as its colors and 3-D relief.
-The B<canvas> command returns its
-$canvas argument. At the time this command is invoked,
-there must not exist a window named $canvas, but
-$canvas's parent must exist.
-
-Canvas widgets implement structured graphics.
-A canvas displays any number of I<items>, which may be things like
-rectangles, circles, lines, and text.
-Items may be manipulated (e.g. moved or re-colored) and
-L<callbacks|Tk::callbacks> may
-be associated with items in much the same way that the L<bind|Tk::bind>
-method allows callbacks to be bound to widgets. For example,
-a particular callback may be associated with the B<E<lt>Button-1E<gt>> event
-so that the callback is invoked whenever button 1 is pressed with
-the mouse cursor over an item.
-This means that items in a canvas can have behaviors defined by
-the Callbacks bound to them.
-
-=head1 DISPLAY LIST
-
-The items in a canvas are ordered for purposes of display,
-with the first item in the display list being displayed
-first, followed by the next item in the list, and so on.
-Items later in the display list obscure those that are
-earlier in the display list and are sometimes referred to
-as being I<``on top''> of earlier items.
-When a new item is created it is placed at the end of the
-display list, on top of everything else.
-Widget methods may be used to re-arrange the order of the
-display list.
-
-Window items are an exception to the above rules. The underlying
-window systems require them always to be drawn on top of other items.
-In addition, the stacking order of window items
-is not affected by any of the canvas methods; you must use
-the L<raise|Tk::Widget> and L<lower|Tk::Widget> Tk widget methods instead.
-
-=head1 ITEM IDS AND TAGS
-
-Items in a canvas widget may be named in either of two ways:
-by id or by tag.
-Each item has a unique identifying number which is assigned to
-that item when it is created. The id of an item never changes
-and id numbers are never re-used within the lifetime of a
-canvas widget.
-
-Each item may also have any number of I<tags> associated
-with it. A tag is just a string of characters, and it may
-take any form except that of an integer.
-For example, ``x123'' is OK but ``123'' isn't.
-The same tag may be associated with many different items.
-This is commonly done to group items in various interesting
-ways; for example, all selected items might be given the
-tag ``selected''.
-
-The tag B<all> is implicitly associated with every item
-in the canvas; it may be used to invoke operations on
-all the items in the canvas.
-
-The tag B<current> is managed automatically by Tk;
-it applies to the I<current item>, which is the
-topmost item whose drawn area covers the position of
-the mouse cursor.
-If the mouse is not in the canvas widget or is not over
-an item, then no item has the B<current> tag.
-
-When specifying items in canvas methods, if the
-specifier is an integer then it is assumed to refer to
-the single item with that id.
-If the specifier is not an integer, then it is assumed to
-refer to all of the items in the canvas that have a tag
-matching the specifier.
-The symbol I<tagOrId> is used below to indicate that
-an argument specifies either an id that selects a single
-item or a tag that selects zero or more items.
-
-I<tagOrId> may contain a logical expressions of
-tags by using operators: 'E<amp>E<amp>', '||', '^' '!', and parenthezised
-subexpressions. For example:
-
-$c-E<gt>find('withtag', '(aE<amp>E<amp>!b)|(!aE<amp>E<amp>b)');
-
-or equivalently:
-
-$c-E<gt>find('withtag', 'a^b');
-
-will find only those items with either "a" or "b" tags, but not both.
-
-Some methods only operate on a single item at a
-time; if I<tagOrId> is specified in a way that
-names multiple items, then the normal behavior is for
-the methods is to use the first (lowest) of these items in
-the display list that is suitable for the method.
-Exceptions are noted in the method descriptions
-below.
-
-=head1 COORDINATES
-
-All coordinates related to canvases are stored as floating-point
-numbers.
-Coordinates and distances are specified in screen units,
-which are floating-point numbers optionally followed
-by one of several letters.
-If no letter is supplied then the distance is in pixels.
-If the letter is B<m> then the distance is in millimeters on
-the screen; if it is B<c> then the distance is in centimeters;
-B<i> means inches, and B<p> means printers points (1/72 inch).
-Larger y-coordinates refer to points lower on the screen; larger
-x-coordinates refer to points farther to the right.
-
-=head1 TRANSFORMATIONS
-
-Normally the origin of the canvas coordinate system is at the
-upper-left corner of the window containing the canvas.
-It is possible to adjust the origin of the canvas
-coordinate system relative to the origin of the window using the
-B<xview> and B<yview> methods; this is typically used
-for scrolling.
-Canvases do not support scaling or rotation of the canvas coordinate
-system relative to the window coordinate system.
-
-Individual items may be moved or scaled using methods
-described below, but they may not be rotated.
-
-=head1 INDICES
-
-Text items support the notion of an I<index> for identifying
-particular positions within the item.
-
-Indices are used for methods such as inserting text, deleting
-a range of characters, and setting the insertion cursor position.
-An index may be specified in any of a number of ways, and
-different types of items may support different forms for
-specifying indices.
-
-In a similar fashion, line and polygon items support I<index> for
-identifying, inserting and deleting subsets of their coordinates.
-Indices are used for commands such as inserting or deleting
-a range of characters or coordinates, and setting the insertion
-cursor position. An index may be specified in any of a number
-of ways, and different types of items may support different forms
-for specifying indices.
-
-Text items support the following forms for an index; if you
-define new types of text-like items, it would be advisable to
-support as many of these forms as practical.
-Note that it is possible to refer to the character just after
-the last one in the text item; this is necessary for such
-tasks as inserting new text at the end of the item.
-Lines and Polygons don't support the insertion cursor
-and the selection. Their indices are supposed to be even
-always, because coordinates always appear in pairs.
-
-=over 4
-
-=item I<number>
-
-A decimal number giving the position of the desired character
-within the text item.
-0 refers to the first character, 1 to the next character, and
-so on. If indexes are odd for lines and polygons, they will be
-automatically decremented by one.
-A number less than 0 is treated as if it were zero, and a
-number greater than the length of the text item is treated
-as if it were equal to the length of the text item. For
-polygons, numbers less than 0 or greater then the length
-of the coordinate list will be adjusted by adding or substracting
-the length until the result is between zero and the length,
-inclusive.
-
-=item B<end>
-
-Refers to the character or coordinate just after the last one
-in the item (same as the number of characters or coordinates
-in the item).
-
-=item B<insert>
-
-Refers to the character just before which the insertion cursor
-is drawn in this item. Not valid for lines and polygons.
-
-=item B<sel.first>
-
-Refers to the first selected character in the item.
-If the selection isn't in this item then this form is illegal.
-
-=item B<sel.last>
-
-Refers to the last selected character in the item.
-If the selection isn't in this item then this form is illegal.
-
-=item B<[>I<x,y>B<]>
-
-Refers to the character or coordinate at the point given by I<x> and
-I<y>, where I<x> and I<y> are specified in the coordinate
-system of the canvas.
-If I<x> and I<y> lie outside the coordinates covered by the
-text item, then they refer to the first or last character in the
-line that is closest to the given point.
-The Tcl string form "@x,y" is also allowed.
-
-=back
-
-=head1 DASH PATTERNS
-
-Many items support the notion of an dash pattern for outlines.
-
-The first possible syntax is a list of integers. Each element
-represents the number of pixels of a line segment. Only the odd
-segments are drawn using the "outline" color. The other segments
-are drawn transparent.
-
-The second possible syntax is a character list containing only
-5 possible characters B<[.,-_ ]>, with the first 4 characters
-producing a segment of length 1 to 4, respectively, followed
-by a transparent segment of length 2. The space can be used
-repeatedly to enlarge the space between other line elements
-by 1, and can not occur as the first position in the string.
-The main difference of this syntax with the previous one is
-that it it shape-conserving. This means that all values in the dash
-list will be multiplied by the line width before display. This
-assures that "." will always be displayed as a dot and "-"
-always as a dash regardless of the line width.
-
-Some examples, for a line width of 2:
-
- -dash . = -dash [2,4]
- -dash - = -dash [6,4]
- -dash -. = -dash [6,4,2,4]
- -dash -.. = -dash [6,4,2,4,2,4]
- -dash '. ' = -dash [2,8]
- -dash ',' = -dash [4,4]
-
-On systems where only a limited set of dash patterns is available,
-the dash pattern will be displayed as the closest available dash
-pattern. For example, on Windows only the first 4 of the
-above examples are available. The last 2 examples will be
-displayed identically as the first one.
-
-=head1 WIDGET METHODS
-
-The B<Canvas> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-The following additional methods are available for canvas widgets:
-
-=over 4
-
-=item I<$canvas>-E<gt>B<addtag>(I<tag, searchSpec, >?I<arg, arg, ...>?)
-
-For each item that meets the constraints specified by
-I<searchSpec> and the I<arg>s, add
-I<tag> to the list of tags associated with the item if it
-isn't already present on that list.
-It is possible that no items will satisfy the constraints
-given by I<searchSpec> and I<arg>s, in which case the
-method has no effect.
-This command returns an empty string as result.
-I<SearchSpec> and I<arg>'s may take any of the following
-forms:
-
-=over 8
-
-=item B<above >I<tagOrId>
-
-Selects the item just after (above) the one given by I<tagOrId>
-in the display list.
-If I<tagOrId> denotes more than one item, then the last (topmost)
-of these items in the display list is used.
-
-=item B<all>
-
-Selects all the items in the canvas.
-
-=item B<below >I<tagOrId>
-
-Selects the item just before (below) the one given by I<tagOrId>
-in the display list.
-If I<tagOrId> denotes more than one item, then the first (lowest)
-of these items in the display list is used.
-
-=item B<closest >I<x y >?I<halo>? ?I<start>?
-
-Selects the item closest to the point given by I<x> and I<y>.
-If more than one item is at the same closest distance (e.g. two
-items overlap the point), then the top-most of these items (the
-last one in the display list) is used.
-If I<halo> is specified, then it must be a non-negative
-value.
-Any item closer than I<halo> to the point is considered to
-overlap it.
-The I<start> argument may be used to step circularly through
-all the closest items.
-If I<start> is specified, it names an item using a tag or id
-(if by tag, it selects the first item in the display list with
-the given tag).
-Instead of selecting the topmost closest item, this form will
-select the topmost closest item that is below I<start> in
-the display list; if no such item exists, then the selection
-behaves as if the I<start> argument had not been specified.
-
-=item B<enclosed> I<x1> I<y1> I<x2> I<y2>
-
-Selects all the items completely enclosed within the rectangular
-region given by I<x1>, I<y1>, I<x2>, and I<y2>.
-I<X1> must be no greater then I<x2> and I<y1> must be
-no greater than I<y2>.
-
-=item B<overlapping> I<x1> I<y1> I<x2> I<y2>
-
-Selects all the items that overlap or are enclosed within the
-rectangular region given by I<x1>, I<y1>, I<x2>,
-and I<y2>.
-I<X1> must be no greater then I<x2> and I<y1> must be
-no greater than I<y2>.
-
-=item B<withtag >I<tagOrId>
-
-Selects all the items given by I<tagOrId>.
-
-=back
-
-=item I<$canvas>-E<gt>B<bbox>(I<tagOrId, >?I<tagOrId, tagOrId, ...>?)
-
-Returns a list with four elements giving an approximate bounding box
-for all the items named by the I<tagOrId> arguments.
-The list has the form ``I<x1 y1 x2 y2>'' such that the drawn
-areas of all the named elements are within the region bounded by
-I<x1> on the left, I<x2> on the right, I<y1> on the top,
-and I<y2> on the bottom.
-The return value may overestimate the actual bounding box by
-a few pixels.
-If no items match any of the I<tagOrId> arguments or if the
-matching items have empty bounding boxes (i.e. they have nothing
-to display)
-then an empty string is returned.
-
-=item I<$canvas>-E<gt>B<bind>(I<tagOrId>?, I<sequence>? ?,I<callback>?)
-
-This method associates I<callback> with all the items given by
-I<tagOrId> such that whenever the event sequence given by
-I<sequence> occurs for one of the items the callback will
-be invoked.
-This method is similar to the B<bind> method except that
-it operates on items in a canvas rather than entire widgets.
-See L<Tk::bind> for complete details
-on the syntax of I<sequence> and the substitutions performed
-on I<callback> before invoking it.
-If all arguments are specified then a new binding is created, replacing
-any existing binding for the same I<sequence> and I<tagOrId>
-(if the first character of I<command> is ``+'' then I<command>
-augments an existing binding rather than replacing it).
-In this case the return value is an empty string.
-If I<callback> is omitted then the method returns the I<callback>
-associated with I<tagOrId> and I<sequence> (an error occurs
-if there is no such binding).
-If both I<callback> and I<sequence> are omitted then the method
-returns a list of all the sequences for which bindings have been
-defined for I<tagOrId>.
-
-=over 8
-
-The only events for which bindings may be specified are those related to
-the mouse and keyboard (such as B<Enter>, B<Leave>,
-B<ButtonPress>, B<Motion>, and B<KeyPress>) or virtual events.
-The handling of events in canvases uses the current item defined
-in L<"ITEM IDS AND TAGS"> above. B<Enter> and B<Leave> events trigger for an
-item when it becomes the current item or ceases to be the current item;
-note that these events are different than B<Enter> and B<Leave>
-events for windows. Mouse-related events are directed to the current
-item, if any. Keyboard-related events are directed to the focus item, if
-any (see the L<focus|/focus> method below for more on this). If a
-virtual event is used in a binding, that binding can trigger only if the
-virtual event is defined by an underlying mouse-related or
-keyboard-related event.
-
-It is possible for multiple bindings to match a particular event.
-This could occur, for example, if one binding is associated with the
-item's id and another is associated with one of the item's tags.
-When this occurs, all of the matching bindings are invoked.
-A binding associated with the B<all> tag is invoked first,
-followed by one binding for each of the item's tags (in order),
-followed by a binding associated with the item's id.
-If there are multiple matching bindings for a single tag,
-then only the most specific binding is invoked.
-A B<continue> in a callback terminates that
-subroutine, and a B<break> method terminates that subroutine
-and skips any remaining callbacks for the event, just as for the
-B<bind> method.
-
-If bindings have been created for a canvas window using the B<CanvasBind>
-method, then they are invoked in addition to bindings created for
-the canvas's items using the B<bind> method.
-The bindings for items will be invoked before any of the bindings
-for the window as a whole.
-
-=back
-
-=item I<$canvas>-E<gt>B<canvasx>(I<screenx>?, I<gridspacing>?)
-
-Given a window x-coordinate in the canvas I<screenx>, this method returns
-the canvas x-coordinate that is displayed at that location.
-If I<gridspacing> is specified, then the canvas coordinate is
-rounded to the nearest multiple of I<gridspacing> units.
-
-=item I<$canvas>-E<gt>B<canvasy>(I<screeny, >?I<gridspacing>?)
-
-Given a window y-coordinate in the canvas I<screeny> this method returns
-the canvas y-coordinate that is displayed at that location.
-If I<gridspacing> is specified, then the canvas coordinate is
-rounded to the nearest multiple of I<gridspacing> units.
-
-=item I<$canvas>-E<gt>B<coords>(I<tagOrId >?I<x0,y0 ...>?)
-
-Query or modify the coordinates that define an item.
-If no coordinates are specified, this method returns a list
-whose elements are the coordinates of the item named by
-I<tagOrId>.
-If coordinates are specified, then they replace the current
-coordinates for the named item.
-If I<tagOrId> refers to multiple items, then
-the first one in the display list is used.
-
-=item I<$canvas>-E<gt>B<create>(I<type, x, y, >?I<x, y, ...>?, ?I<option, value, ...>?)
-
-Create a new item in I<$canvas> of type I<type>.
-The exact format of the arguments after B<type> depends
-on B<type>, but usually they consist of the coordinates for
-one or more points, followed by specifications for zero or
-more item options.
-See the subsections on individual item types below for more
-on the syntax of this method.
-This method returns the id for the new item.
-
-=item I<$canvas>-E<gt>B<dchars>(I<tagOrId, first, >?I<last>?)
-
-For each item given by I<tagOrId>, delete the characters, or coordinates,
-in the range given by I<first> and I<last>, inclusive.
-If some of the items given by I<tagOrId> don't support
-Text items interpret I<first> and I<last> as indices to a character,
-line and polygon items interpret them indices to a coordinate (an x,y pair).
-within the item(s) as described in L<"INDICES"> above.
-If I<last> is omitted, it defaults to I<first>.
-This method returns an empty string.
-
-=item I<$canvas>-E<gt>B<delete>(?I<tagOrId, tagOrId, ...>?)
-
-Delete each of the items given by each I<tagOrId>, and return
-an empty string.
-
-=item I<$canvas>-E<gt>B<dtag>(I<tagOrId, >?I<tagToDelete>?)
-
-For each of the items given by I<tagOrId>, delete the
-tag given by I<tagToDelete> from the list of those
-associated with the item.
-If an item doesn't have the tag I<tagToDelete> then
-the item is unaffected by the method.
-If I<tagToDelete> is omitted then it defaults to I<tagOrId>.
-This method returns an empty string.
-
-=item I<$canvas>-E<gt>B<find>(I<searchCommand, >?I<arg, arg, ...>?)
-
-This method returns a list consisting of all the items that
-meet the constraints specified by I<searchCommand> and
-I<arg>'s.
-I<SearchCommand> and I<args> have any of the forms
-accepted by the B<addtag> method.
-The items are returned in stacking order, with the lowest item first.
-
-=item focus
-
-=item I<$canvas>-E<gt>B<focus>(?I<tagOrId>?)
-
-Set the keyboard focus for the canvas widget to the item given by
-I<tagOrId>.
-If I<tagOrId> refers to several items, then the focus is set
-to the first such item in the display list that supports the
-insertion cursor.
-If I<tagOrId> doesn't refer to any items, or if none of them
-support the insertion cursor, then the focus isn't changed.
-If I<tagOrId> is an empty
-string, then the focus item is reset so that no item has the focus.
-If I<tagOrId> is not specified then the method returns the
-id for the item that currently has the focus, or an empty string
-if no item has the focus.
-
-=over 8
-
-Once the focus has been set to an item, the item will display
-the insertion cursor and all keyboard events will be directed
-to that item.
-The focus item within a canvas and the focus window on the
-screen (set with the B<focus> method) are totally independent:
-a given item doesn't actually have the input focus unless (a)
-its canvas is the focus window and (b) the item is the focus item
-within the canvas.
-In most cases it is advisable to follow the B<focus> widget
-method with the B<CanvasFocus> method to set the focus window to
-the canvas (if it wasn't there already).
-
-=back
-
-=item I<$canvas>-E<gt>B<gettags>(I<tagOrId>)
-
-Return a list whose elements are the tags associated with the
-item given by I<tagOrId>.
-If I<tagOrId> refers to more than one item, then the tags
-are returned from the first such item in the display list.
-If I<tagOrId> doesn't refer to any items, or if the item
-contains no tags, then an empty string is returned.
-
-=item I<$canvas>-E<gt>B<icursor>(I<tagOrId, index>)
-
-Set the position of the insertion cursor for the item(s) given by I<tagOrId>
-to just before the character whose position is given by I<index>.
-If some or all of the items given by I<tagOrId> don't support
-an insertion cursor then this method has no effect on them.
-See L<"INDICES"> above for a description of the
-legal forms for I<index>.
-Note: the insertion cursor is only displayed in an item if
-that item currently has the keyboard focus (see the widget
-method B<focus>, below), but the cursor position may
-be set even when the item doesn't have the focus.
-This method returns an empty string.
-
-=item I<$canvas>-E<gt>B<index>(I<tagOrId, index>)
-
-This method returns a decimal string giving the numerical index
-within I<tagOrId> corresponding to I<index>.
-I<Index> gives a textual description of the desired position
-as described in L<"INDICES"> above.
-Text items interpret I<index> as an index to a character,
-line and polygon items interpret it as an index to a coordinate (an x,y pair).
-The return value is guaranteed to lie between 0 and the number
-of characters, or coordinates, within the item, inclusive.
-If I<tagOrId> refers to multiple items, then the index
-is processed in the first of these items that supports indexing
-operations (in display list order).
-
-=item I<$canvas>-E<gt>B<insert>(I<tagOrId, beforeThis, string>)
-
-For each of the items given by I<tagOrId>, if the item supports
-text or coordinate, insertion then I<string> is inserted into the item's
-text just before the character, or coordinate, whose index is I<beforeThis>.
-Text items interpret I<beforethis> as an index to a character,
-line and polygon items interpret it as an index to a coordinate (an x,y pair).
-For lines and polygons the I<string> must be a valid coordinate
-sequence.
-See L<"INDICES"> above for information about the forms allowed
-for I<beforeThis>.
-This method returns an empty string.
-
-=item I<$canvas>-E<gt>B<itemcget>(I<tagOrId, >I<option>)
-
-Returns the current value of the configuration option for the
-item given by I<tagOrId> whose name is I<option>.
-This method is similar to the L<cget|Tk::option> method except that
-it applies to a particular item rather than the widget as a whole.
-I<Option> may have any of the values accepted by the B<create>
-method when the item was created.
-If I<tagOrId> is a tag that refers to more than one item,
-the first (lowest) such item is used.
-
-=item I<$canvas>-E<gt>B<itemconfigure>(I<tagOrId, >?I<option>?, ?I<value>?, ?I<option, value, ...>?)
-
-This method is similar to the L<configure|Tk::option> method except
-that it modifies item-specific options for the items given by
-I<tagOrId> instead of modifying options for the overall
-canvas widget.
-If no I<option> is specified, returns a list describing all of
-the available options for the first item given by I<tagOrId>
-(see L<Tk::options> for
-information on the format of this list). If I<option> is specified
-with no I<value>, then the method returns a list describing the
-one named option (this list will be identical to the corresponding
-sublist of the value returned if no I<option> is specified). If
-one or more I<option-value> pairs are specified, then the method
-modifies the given widget option(s) to have the given value(s) in
-each of the items given by I<tagOrId>; in
-this case the method returns an empty string.
-The I<option>s and I<value>s are the same as those permissible
-in the B<create> method when the item(s) were created;
-see the sections describing individual item types below for details
-on the legal options.
-
-=item I<$canvas>-E<gt>B<lower>(I<tagOrId, >?I<belowThis>?)
-
-Move all of the items given by I<tagOrId> to a new position
-in the display list just before the item given by I<belowThis>.
-If I<tagOrId> refers to more than one item then all are moved
-but the relative order of the moved items will not be changed.
-I<BelowThis> is a tag or id; if it refers to more than one
-item then the first (lowest) of these items in the display list is used
-as the destination location for the moved items.
-Note: this method has no effect on window items. Window items always
-obscure other item types, and the stacking order of window items is
-determined by the B<raise> and B<lower> methods of the widget, not the
-B<raise> and B<lower> methods for canvases.
-This method returns an empty string.
-
-=item I<$canvas>-E<gt>B<move>(I<tagOrId, xAmount, yAmount>)
-
-Move each of the items given by I<tagOrId> in the canvas coordinate
-space by adding I<xAmount> to the x-coordinate of each point
-associated with the item and I<yAmount> to the y-coordinate of
-each point associated with the item.
-This method returns an empty string.
-
-=item I<$canvas>-E<gt>B<postscript>(?I<option, value, option, value, ...>?)
-
-Generate a Postscript representation for part or all of the canvas.
-If the B<-file> option is specified then the Postscript is written
-to a file and an empty string is returned; otherwise the Postscript
-is returned as the result of the method.
-If the interpreter that owns the canvas is marked as safe, the operation
-will fail because safe interpreters are not allowed to write files.
-If the B<-channel> option is specified, the argument denotes the name
-of a channel already opened for writing. The Postscript is written to
-that channel, and the channel is left open for further writing at the end
-of the operation.
-The Postscript is created in Encapsulated Postscript form using
-version 3.0 of the Document Structuring Conventions.
-Note: by default Postscript is only generated for information that
-appears in the canvas's window on the screen. If the canvas is
-freshly created it may still have its initial size of 1x1 pixel
-so nothing will appear in the Postscript. To get around this problem
-either invoke the B<update> method to wait for the canvas window
-to reach its final size, or else use the B<-width> and B<-height>
-options to specify the area of the canvas to print.
-The I<option>-I<value> argument pairs provide additional
-information to control the generation of Postscript. The following
-options are supported:
-
-=over 8
-
-=item B<-colormap> =E<gt> I<hashRef>
-
-I<HashRef> must be a reference to a hash variable or an anonymous hash
-that specifies a color mapping to use in the Postscript.
-Each value of the hash must consist of Postscript
-code to set a particular color value (e.g. ``B<1.0 1.0 0.0 setrgbcolor>'').
-When outputting color information in the Postscript, Tk checks
-to see if there is a key in the hash with the same
-name as the color.
-If so, Tk uses the value of the element as the Postscript method
-to set the color.
-If this option hasn't been specified, or if there isn't a key
-in I<hashRef> for a given color, then Tk uses the red, green,
-and blue intensities from the X color.
-
-=item B<-colormode> =E<gt> I<mode>
-
-Specifies how to output color information. I<Mode> must be either
-B<color> (for full color output), B<gray> (convert all colors
-to their gray-scale equivalents) or B<mono> (convert all colors
-to black or white).
-
-=item B<-file> =E<gt> I<fileName>
-
-Specifies the name of the file in which to write the Postscript.
-If this option isn't specified then the Postscript is returned as the
-result of the method instead of being written to a file.
-
-=item B<-fontmap> =E<gt> I<hashRef>
-
-I<HashRef> must be a reference to a hash variable or an anonymous hash
-that specifies a font mapping to use in the Postscript.
-Each value of the hash must consist of an array reference with
-two elements, which are the name and point size of a Postscript font.
-When outputting Postscript commands for a particular font, Tk
-checks to see if I<hashRef> contains a value with the same
-name as the font.
-If there is such an element, then the font information contained in
-that element is used in the Postscript.
-Otherwise Tk attempts to guess what Postscript font to use.
-Tk's guesses generally only work for well-known fonts such as
-Times and Helvetica and Courier, and only if the X font name does not
-omit any dashes up through the point size.
-For example, B<-*-Courier-Bold-R-Normal--*-120-*> will work but
-B<*Courier-Bold-R-Normal*120*> will not; Tk needs the dashes to
-parse the font name).
-
-=item B<-height> =E<gt> I<size>
-
-Specifies the height of the area of the canvas to print.
-Defaults to the height of the canvas window.
-
-=item B<-pageanchor> =E<gt> I<anchor>
-
-Specifies which point of the printed area of the canvas should appear over
-the positioning point on the page (which is given by the B<-pagex>
-and B<-pagey> options).
-For example, B<-pageanchor>=>B<n> means that the top center of the
-area of the canvas being printed (as it appears in the canvas window)
-should be over the positioning point. Defaults to B<center>.
-
-=item B<-pageheight> =E<gt> I<size>
-
-Specifies that the Postscript should be scaled in both x and y so
-that the printed area is I<size> high on the Postscript page.
-I<Size> consists of a floating-point number followed by
-B<c> for centimeters, B<i> for inches, B<m> for millimeters,
-or B<p> or nothing for printer's points (1/72 inch).
-Defaults to the height of the printed area on the screen.
-If both B<-pageheight> and B<-pagewidth> are specified then
-the scale factor from B<-pagewidth> is used (non-uniform scaling
-is not implemented).
-
-=item B<-pagewidth> =E<gt> I<size>
-
-Specifies that the Postscript should be scaled in both x and y so
-that the printed area is I<size> wide on the Postscript page.
-I<Size> has the same form as for B<-pageheight>.
-Defaults to the width of the printed area on the screen.
-If both B<-pageheight> and B<-pagewidth> are specified then
-the scale factor from B<-pagewidth> is used (non-uniform scaling
-is not implemented).
-
-=item B<-pagex> =E<gt> I<position>
-
-I<Position> gives the x-coordinate of the positioning point on
-the Postscript page, using any of the forms allowed for B<-pageheight>.
-Used in conjunction with the B<-pagey> and B<-pageanchor> options
-to determine where the printed area appears on the Postscript page.
-Defaults to the center of the page.
-
-=item B<-pagey> =E<gt> I<position>
-
-I<Position> gives the y-coordinate of the positioning point on
-the Postscript page, using any of the forms allowed for B<-pageheight>.
-Used in conjunction with the B<-pagex> and B<-pageanchor> options
-to determine where the printed area appears on the Postscript page.
-Defaults to the center of the page.
-
-=item B<-rotate> =E<gt> I<boolean>
-
-I<Boolean> specifies whether the printed area is to be rotated 90
-degrees.
-In non-rotated output the x-axis of the printed area runs along
-the short dimension of the page (``portrait'' orientation);
-in rotated output the x-axis runs along the long dimension of the
-page (``landscape'' orientation).
-Defaults to non-rotated.
-
-=item B<-width> =E<gt> I<size>
-
-Specifies the width of the area of the canvas to print.
-Defaults to the width of the canvas window.
-
-=item B<-x> => I<position>
-
-Specifies the x-coordinate of the left edge of the area of the
-canvas that is to be printed, in canvas coordinates, not window
-coordinates.
-Defaults to the coordinate of the left edge of the window.
-
-=item B<-y> => I<position>
-
-Specifies the y-coordinate of the top edge of the area of the
-canvas that is to be printed, in canvas coordinates, not window
-coordinates.
-Defaults to the coordinate of the top edge of the window.
-
-=back
-
-=item I<$canvas>-E<gt>B<raise>(I<tagOrId, >?I<aboveThis>?)
-
-Move all of the items given by I<tagOrId> to a new position
-in the display list just after the item given by I<aboveThis>.
-If I<tagOrId> refers to more than one item then all are moved
-but the relative order of the moved items will not be changed.
-I<AboveThis> is a tag or id; if it refers to more than one
-item then the last (topmost) of these items in the display list is used
-as the destination location for the moved items.
-Note: this method has no effect on window items. Window items always
-obscure other item types, and the stacking order of window items is
-determined by the B<raise> and B<lower> widget commands, not the
-B<raise> and B<lower> methods for canvases.
-This method returns an empty string.
-
-=item I<$canvas>-E<gt>B<scale>(I<tagOrId, xOrigin, yOrigin, xScale, yScale>)
-
-Rescale all of the items given by I<tagOrId> in canvas coordinate
-space.
-I<XOrigin> and I<yOrigin> identify the origin for the scaling
-operation and I<xScale> and I<yScale> identify the scale
-factors for x- and y-coordinates, respectively (a scale factor of
-1.0 implies no change to that coordinate).
-For each of the points defining each item, the x-coordinate is
-adjusted to change the distance from I<xOrigin> by a factor
-of I<xScale>.
-Similarly, each y-coordinate is adjusted to change the distance
-from I<yOrigin> by a factor of I<yScale>.
-This method returns an empty string.
-
-=item I<$canvas>-E<gt>B<scan>(I<option, args>)
-
-This method is used to implement scanning on canvases. It has
-two forms, depending on I<option>:
-
-=over 8
-
-=item I<$canvas>-E<gt>B<scanMark>(I<x, y>)
-
-Records I<x> and I<y> and the canvas's current view; used
-in conjunction with later B<scanDragto> method.
-Typically this method is associated with a mouse button press in
-the widget and I<x> and I<y> are the coordinates of the
-mouse. It returns an empty string.
-
-=item I<$canvas>-E<gt>B<scanDragto>(I<x, y, ?gain?>.)
-
-This method computes the difference between its I<x> and I<y>
-arguments (which are typically mouse coordinates) and the I<x> and
-I<y> arguments to the last B<scanMark> method for the widget.
-It then adjusts the view by 10 times the
-difference in coordinates. This method is typically associated
-It then adjusts the view by I<gain> times the
-difference in coordinates, where I<gain> defaults to 10.
-This command is typically associated
-with mouse motion events in the widget, to produce the effect of
-dragging the canvas at high speed through its window. The return
-value is an empty string.
-
-=back
-
-=item I<$canvas>-E<gt>B<select>(I<option, >?I<tagOrId, arg>?)
-
-Manipulates the selection in one of several ways, depending on
-I<option>.
-The method may take any of the forms described below.
-In all of the descriptions below, I<tagOrId> must refer to
-an item that supports indexing and selection; if it refers to
-multiple items then the first of
-these that supports indexing and the selection is used.
-I<Index> gives a textual description of a position
-within I<tagOrId>, as described in L<"INDICES"> above.
-
-=over 8
-
-=item I<$canvas>-E<gt>B<selectAdjust>(I<tagOrId, index>)
-
-Locate the end of the selection in I<tagOrId> nearest
-to the character given by I<index>, and adjust that
-end of the selection to be at I<index> (i.e. including
-but not going beyond I<index>).
-The other end of the selection is made the anchor point
-for future B<selectTo> method calls.
-If the selection isn't currently in I<tagOrId> then
-this method behaves the same as the B<selectTo> widget
-method.
-Returns an empty string.
-
-=item I<$canvas>-E<gt>B<selectClear>
-
-Clear the selection if it is in this widget.
-If the selection isn't in this widget then the method
-has no effect.
-Returns an empty string.
-
-=item I<$canvas>-E<gt>B<selectFrom>(I<tagOrId, index>)
-
-Set the selection anchor point for the widget to be just
-before the character
-given by I<index> in the item given by I<tagOrId>.
-This method doesn't change the selection; it just sets
-the fixed end of the selection for future B<selectTo>
-method calls.
-Returns an empty string.
-
-=item I<$canvas>-E<gt>B<selectItem>
-
-Returns the id of the selected item, if the selection is in an
-item in this canvas.
-If the selection is not in this canvas then an empty string
-is returned.
-
-=item I<$canvas>-E<gt>B<selectTo>(I<tagOrId, index>)
-
-Set the selection to consist of those characters of I<tagOrId>
-between the selection anchor point and
-I<index>.
-The new selection will include the character given by I<index>;
-it will include the character given by the anchor point only if
-I<index> is greater than or equal to the anchor point.
-The anchor point is determined by the most recent B<selectAdjust>
-or B<selectFrom> method calls for this widget.
-If the selection anchor point for the widget isn't currently in
-I<tagOrId>, then it is set to the same character given
-by I<index>.
-Returns an empty string.
-
-=back
-
-=item I<$canvas>-E<gt>B<type>(I<tagOrId>)
-
-Returns the type of the item given by I<tagOrId>, such as
-B<rectangle> or B<text>.
-If I<tagOrId> refers to more than one item, then the type
-of the first item in the display list is returned.
-If I<tagOrId> doesn't refer to any items at all then
-an empty string is returned.
-
-=item I<$canvas>-E<gt>B<xview>(?I<args>?)
-
-This method is used to query and change the horizontal position of the
-information displayed in the canvas's window.
-It can take any of the following forms:
-
-=over 8
-
-=item I<$canvas>-E<gt>B<xview>
-
-Returns a list containing two elements.
-Each element is a real fraction between 0 and 1; together they describe
-the horizontal span that is visible in the window.
-For example, if the first element is .2 and the second element is .6,
-20% of the canvas's area (as defined by the B<-scrollregion> option)
-is off-screen to the left, the middle 40% is visible
-in the window, and 40% of the canvas is off-screen to the right.
-These are the same values passed to scrollbars via the B<-xscrollcommand>
-option.
-
-=item I<$canvas>-E<gt>B<xviewMoveto>(I<fraction>)
-
-Adjusts the view in the window so that I<fraction> of the
-total width of the canvas is off-screen to the left.
-I<Fraction> must be a fraction between 0 and 1.
-
-=item I<$canvas>-E<gt>B<xviewScroll>(I<number, what>)
-
-This method shifts the view in the window left or right according to
-I<number> and I<what>.
-I<Number> must be an integer.
-I<What> must be either B<units> or B<pages> or an abbreviation
-of one of these.
-If I<what> is B<units>, the view adjusts left or right in units
-of the B<xScrollIncrement> option, if it is greater than zero,
-or in units of one-tenth the window's width otherwise.
-If I<what is >B<pages> then the view
-adjusts in units of nine-tenths the window's width.
-If I<number> is negative then information farther to the left
-becomes visible; if it is positive then information farther to the right
-becomes visible.
-
-=back
-
-=item I<$canvas>-E<gt>B<yview>(I<?args>?)
-
-This method is used to query and change the vertical position of the
-information displayed in the canvas's window.
-It can take any of the following forms:
-
-=over 8
-
-=item I<$canvas>-E<gt>B<yview>
-
-Returns a list containing two elements.
-Each element is a real fraction between 0 and 1; together they describe
-the vertical span that is visible in the window.
-For example, if the first element is .6 and the second element is 1.0,
-the lowest 40% of the canvas's area (as defined by the B<-scrollregion>
-option) is visible in the window.
-These are the same values passed to scrollbars via the B<-yscrollcommand>
-option.
-
-=item I<$canvas>-E<gt>B<yviewMoveto>(I<fraction>)
-
-Adjusts the view in the window so that I<fraction> of the canvas's
-area is off-screen to the top.
-I<Fraction> is a fraction between 0 and 1.
-
-=item I<$canvas>-E<gt>B<yviewScroll>(I<number, what>)
-
-This method adjusts the view in the window up or down according to
-I<number> and I<what>.
-I<Number> must be an integer.
-I<What> must be either B<units> or B<pages>.
-If I<what> is B<units>, the view adjusts up or down in units
-of the B<yScrollIncrement> option, if it is greater than zero,
-or in units of one-tenth the window's height otherwise.
-If I<what> is B<pages> then
-the view adjusts in units of nine-tenths the window's height.
-If I<number> is negative then higher information becomes
-visible; if it is positive then lower information
-becomes visible.
-
-=back
-
-=back
-
-=head1 OVERVIEW OF ITEM TYPES
-
-The sections below describe the various types of items supported
-by canvas widgets. Each item type is characterized by two things:
-first, the form of the B<create> method used to create
-instances of the type; and second, a set of configuration options
-for items of that type, which may be used in the
-B<create> and B<itemconfigure> methods.
-Most items don't support indexing or selection or the methods
-related to them, such as B<index> and B<insert>.
-Where items do support these facilities, it is noted explicitly
-in the descriptions below.
-At present, text, line and polygon items provide this support.
-For lines and polygons the indexing facility is used to manipulate
-the coordinates of the item.
-
-=head1 ARC ITEMS
-
-Items of type B<arc> appear on the display as arc-shaped regions.
-An arc is a section of an oval delimited by two angles (specified
-by the B<-start> and B<-extent> options) and displayed in
-one of several ways (specified by the B<-style> option).
-Arcs are created with methods of the following form:
-
- $canvas->createArc(x1, y1, x2, y2, ?option, value, option, value, ...?)
-
-The arguments I<x1>, I<y1>, I<x2>, and I<y2> give
-the coordinates of two diagonally opposite corners of a
-rectangular region enclosing the oval that defines the arc.
-After the coordinates there may be any number of I<option>-I<value>
-pairs, each of which sets one of the configuration options
-for the item. These same I<option>-I<value> pairs may be
-used in B<itemconfigure> methods to change the item's
-configuration.
-The following options are supported for arcs:
-
-=over 4
-
-=item B<-dash> =E<gt> I<pattern>
-
-=item B<-activedash> =E<gt> I<pattern>
-
-=item B<-disableddash> =E<gt> I<pattern>
-
-This option specifies dash patterns for the normal state, the active
-state, and the disabled state of an arc item.
-I<pattern> may have any of the forms accepted by B<Tk_GetDash>.
-If the dash options are omitted then the default is a solid outline.
-
-=item B<-dashoffset> =E<gt> I<offset>
-
-The starting I<offset> into the pattern provided by the
-B<-dash> option.
-B<-dashoffset> is ignored if there is no B<-dash> pattern.
-
-=item B<-extent> =E<gt> I<degrees>
-
-Specifies the size of the angular range occupied by the arc.
-The arc's range extends for I<degrees> degrees counter-clockwise
-from the starting angle given by the B<-start> option.
-I<Degrees> may be negative.
-If it is greater than 360 or less than -360, then I<degrees>
-modulo 360 is used as the extent.
-
-=item B<-fill> =E<gt> I<color>
-
-=item B<-activefill> =E<gt> I<color>
-
-=item B<-disabledfill> =E<gt> I<color>
-
-Specifies the color to be used to fill the arc region in its normal, active, and
-disabled states,
-I<Color> may have any of the forms accepted by B<Tk_GetColor>.
-If I<color> is an empty string (the default), then
-then the arc will not be filled.
-
-=item B<-outline> =E<gt> I<color>
-
-=item B<-activeoutline> =E<gt> I<color>
-
-=item B<-disabledoutline> =E<gt> I<color>
-
-This option specifies the color that should be used to draw the
-outline of the arc in its normal, active and disabled states.
-I<Color> may have any of the forms accepted by B<Tk_GetColor>.
-This option defaults to B<black>. If I<color> is specified
-as undef then no outline is drawn for the arc.
-
-=item B<-outlinestipple> =E<gt> I<bitmap>
-
-=item B<-activeoutlinestipple> =E<gt> I<bitmap>
-
-=item B<-disabledoutlinestipple> =E<gt> I<bitmap>
-
-This option specifies stipple patterns that should be used to draw the
-outline of the arc in its normal, active and disabled states.
-Indicates that the outline for the arc should be drawn with a stipple pattern;
-I<bitmap> specifies the stipple pattern to use, in any of the
-forms accepted by B<Tk_GetBitmap>.
-If the B<-outline> option hasn't been specified then this option
-has no effect.
-If I<bitmap> is an empty string (the default), then the outline is drawn
-in a solid fashion.
-
-=item B<-start> =E<gt> I<degrees>
-
-Specifies the beginning of the angular range occupied by the
-arc.
-I<Degrees> is given in units of degrees measured counter-clockwise
-from the 3-o'clock position; it may be either positive or negative.
-
-=item B<-state> =E<gt> I<state>
-
-Modifies the state of the arc item where I<state> may be set to one of:
-normal, disabled, hidden or "". If set to empty, the state of the canvas
-itself is used. An arc item may also be in the "active"
-state if the mouse is currently over it. Many options can take
-separate specifications in normal, active and disabled states such that the
-appearance of the item can be different in each state.
-
-=item B<-stipple> =E<gt> I<bitmap>
-
-=item B<-activestipple> =E<gt> I<bitmap>
-
-=item B<-disabledstipple> =E<gt> I<bitmap>
-
-This option specifies stipple patterns that should be used to fill the
-the arc in its normal, active and disabled states.
-I<bitmap> specifies the stipple pattern to use, in any of the
-forms accepted by B<Tk_GetBitmap>.
-If the B<-fill> option hasn't been specified then this option
-has no effect.
-If I<bitmap> is an empty string (the default), then filling is done
-in a solid fashion.
-
-=item B<-style> =E<gt> I<type>
-
-Specifies how to draw the arc. If I<type> is B<pieslice>
-(the default) then the arc's region is defined by a section
-of the oval's perimeter plus two line segments, one between the center
-of the oval and each end of the perimeter section.
-If I<type> is B<chord> then the arc's region is defined
-by a section of the oval's perimeter plus a single line segment
-connecting the two end points of the perimeter section.
-If I<type> is B<arc> then the arc's region consists of
-a section of the perimeter alone.
-In this last case the B<-fill> option is ignored.
-
-=item B<-tags> =E<gt> I<tagList>
-
-Specifies a set of tags to apply to the item.
-I<TagList> consists of a list of tag names, which replace any
-existing tags for the item.
-I<TagList> may be an empty list.
-
-=item B<-updatecommand> =E<gt> I<command>
-
-Specifies a callback that is to be executed every time
-the arc item is updated on the screen.
-
-=item B<-width> =E<gt> I<outlineWidth>
-
-=item B<-activewidth> =E<gt> I<outlineWidth>
-
-=item B<-disabledwidth> =E<gt> I<outlineWidth>
-
-Specifies the width of the outline to be drawn around
-the arc's region, in its normal, active and disabled states.
-I<outlineWidth> may be in any of the forms described in
-the L<"COORDINATES"> section above.
-If the B<-outline> option has been specified as undef
-then this option has no effect.
-Wide outlines will be drawn centered on the edges of the arc's region.
-This option defaults to 1.0.
-
-=back
-
-=head1 BITMAP ITEMS
-
-Items of type B<bitmap> appear on the display as images with
-two colors, foreground and background.
-Bitmaps are created with methods of the following form:
-
- $canvas->createBitmap(x, y, ?option, value, option, value, ...?)
-
-The arguments I<x> and I<y> specify the coordinates of a
-point used to position the bitmap on the display (see the B<-anchor>
-option below for more information on how bitmaps are displayed).
-After the coordinates there may be any number of I<option>-I<value>
-pairs, each of which sets one of the configuration options
-for the item. These same I<option>-I<value> pairs may be
-used in B<itemconfigure> methods to change the item's
-configuration.
-The following options are supported for bitmaps:
-
-=over 4
-
-=item B<-anchor> =E<gt> I<anchorPos>
-
-I<AnchorPos> tells how to position the bitmap relative to the
-positioning point for the item; it may have any of the forms
-accepted by B<Tk_GetAnchor>. For example, if I<anchorPos>
-is B<center> then the bitmap is centered on the point; if
-I<anchorPos> is B<n> then the bitmap will be drawn so that
-its top center point is at the positioning point.
-This option defaults to B<center>.
-
-=item B<-background> =E<gt> I<color>
-
-=item B<-activebackground> =E<gt> I<color>
-
-=item B<-disabledbackground> =E<gt> I<color>
-
-Specifies the color to use for each of the bitmap's '0' valued pixels
-in its normal, active and disabled states.
-I<Color> may have any of the forms accepted by B<Tk_GetColor>.
-If this option isn't specified, or if it is specified as undef,
-then nothing is displayed where the bitmap pixels are 0; this
-produces a transparent effect.
-
-=item B<-bitmap> =E<gt> I<bitmap>
-
-=item B<-activebitmap> =E<gt> I<bitmap>
-
-=item B<-disabledbitmap> =E<gt> I<bitmap>
-
-Specifies the bitmaps to display in the item in its normal, active and
-disabled states. All bitmaps must have the same width and height.
-I<Bitmap> may have any of the forms accepted by B<Tk_GetBitmap>.
-
-=item B<-foreground> =E<gt> I<color>
-
-=item B<-activeforeground> =E<gt> I<color>
-
-=item B<-disabledforeground> =E<gt> I<color>
-
-Specifies the color to use for each of the bitmap's '1' valued pixels
-in its normal, active and disabled states.
-I<Color> may have any of the forms accepted by B<Tk_GetColor> and
-defaults to B<black>.
-
-=item B<-state> =E<gt> I<state>
-
-Modifies the state of the bitmap item where I<state> may be set to one of:
-normal, disabled, or hidden. An bitmap item may also be in the "active"
-state if the mouse is currently over it. Many options can take
-separate specifications in normal, active and disabled states such that the
-appearance of the item can be different in each state.
-
-=item B<-tags> =E<gt> I<tagList>
-
-Specifies a set of tags to apply to the item.
-I<TagList> consists of a list of tag names, which replace any
-existing tags for the item.
-I<TagList> may be an empty list.
-
-=item B<-updatecommand> =E<gt> I<command>
-
-Specifies a callback that is to be executed every time
-the bitmap item is updated on the screen.
-
-=back
-
-=head1 GRID ITEMS
-
-Items of type B<grid> are intended for producing a visual reference for
-interpreting other items. They can be drawn as either lines (with dash
-style) or as rectangular "dots" at each grid point.
-
-Items of type B<grid> are unlike other items they always cover the
-whole of the canvas, but are never enclosed by nor overlap any area
-and are not near any point. That is they are intended to be always visible
-but not "pickable", as such they do support the "active" state.
-They are like other items in that: multiple
-grids are permitted, they can be raised and lowered relative to other
-items, they can be moved and scaled. As yet grids do not appear in
-PostScript output.
-
-Grids have outline like configure options. Grids are created with methods of the
-following form:
-
- $canvas->createGrid(x1, y1, x2, y2, ?option, value, option, value, ...?)
-
-The arguments I<x1>, I<y1> give the origin of the grid. I<x2>, and I<y2> give
-the coordinates of the next grid point in their respective directions.
-After the coordinates there may be any number of I<option>-I<value>
-pairs, each of which sets one of the configuration options
-for the item. These same I<option>-I<value> pairs may be
-used in B<itemconfigure> methods to change the item's
-configuration.
-
-The following options are supported for grids:
-
-=over 4
-
-=item B<-lines> =E<gt> I<boolean>
-
-If B<-lines> is set to a true value then lines are drawn for both X and Y
-grids in the style determined by B<-dash>. Otherwise retangular "dots"
-are drawn at each grid point.
-
-=item B<-dash> =E<gt> I<pattern>
-
-=item B<-disableddash> =E<gt> I<pattern>
-
-This option specifies dash patterns for the normal state,
-and the disabled state of a grid item.
-I<pattern> may have any of the forms accepted by B<Tk_GetDash>.
-If the dash options are omitted then the default is a solid outline.
-
-=item B<-dashoffset> =E<gt> I<offset>
-
-The starting I<offset> into the pattern provided by the
-B<-dash> option.
-B<-dashoffset> is ignored if there is no B<-dash> pattern.
-
-=item B<-color> =E<gt> I<color>
-
-=item B<-disabledcolor> =E<gt> I<color>
-
-This option specifies the color that should be used to draw the
-outline of the grid in its normal and disabled states.
-I<Color> may have any of the forms accepted by B<Tk_GetColor>.
-This option defaults to B<black>.
-If I<color> is undef then no grid will be drawn.
-
-=item B<-stipple> =E<gt> I<bitmap>
-
-=item B<-disabledstipple> =E<gt> I<bitmap>
-
-This option specifies stipple patterns that should be used to draw the
-outline of the rectangle in its normal and disabled states.
-I<bitmap> specifies the stipple pattern to use, in any of the
-forms accepted by B<Tk_GetBitmap>.
-If I<bitmap> is an empty string (the default), then the outline is drawn
-in a solid fashion.
-
-=item B<-state> =E<gt> I<state>
-
-Modifies the state of the rectangle item where I<state> may be set to one of:
-normal, disabled, or hidden. Many options can take
-separate specifications in normal and disabled states such that the
-appearance of the item can be different in each state.
-
-=item B<-tags> =E<gt> I<tagList>
-
-Specifies a set of tags to apply to the item.
-I<TagList> consists of a list of tag names, which replace any
-existing tags for the item.
-I<TagList> may be an empty list.
-
-=item B<-updatecommand> =E<gt> I<command>
-
-Specifies a callback that is to be executed every time
-the grid item is updated on the screen.
-
-=item B<-width> =E<gt> I<outlineWidth>
-
-=item B<-disabledwidth> =E<gt> I<outlineWidth>
-
-Specifies the width of the lines drawn by the grid or the size (in both X and Y)
-of the dots, in its normal and disabled states.
-This option defaults to 1.0.
-
-=back
-
-=head1 IMAGE ITEMS
-
-Items of type B<image> are used to display images on a
-canvas.
-Images are created with methods of the following form:
-
- $canvas->createImage(x, y, ?option, value, option, value, ...?)
-
-The arguments I<x> and I<y> specify the coordinates of a
-point used to position the image on the display (see the B<-anchor>
-option below for more information).
-After the coordinates there may be any number of I<option>-I<value>
-pairs, each of which sets one of the configuration options
-for the item. These same I<option>-I<value> pairs may be
-used in B<itemconfigure> methods to change the item's
-configuration.
-The following options are supported for images:
-
-=over 4
-
-=item B<-anchor> =E<gt> I<anchorPos>
-
-I<AnchorPos> tells how to position the image relative to the
-positioning point for the item; it may have any of the forms
-accepted by B<Tk_GetAnchor>. For example, if I<anchorPos>
-is B<center> then the image is centered on the point; if
-I<anchorPos> is B<n> then the image will be drawn so that
-its top center point is at the positioning point.
-This option defaults to B<center>.
-
-=item B<-image> =E<gt> I<name>
-
-=item B<-activeimage> =E<gt> I<name>
-
-=item B<-disabledimage> =E<gt> I<name>
-
-Specifies the name of the images to display in the item in is normal,
-active and disabled states. This image must have been created
-previously, see L<Tk::Image>.
-
-=item B<-state> =E<gt> I<state>
-
-Modifies the state of the image item where I<state> may be set to one of:
-normal, disabled, or hidden. An image item may also be in the "active"
-state if the mouse is currently over it. Many options can take
-separate specifications in normal, active and disabled states such that the
-appearance of the item can be different in each state.
-
-=item B<-tags> =E<gt> I<tagList>
-
-Specifies a set of tags to apply to the item.
-I<TagList> consists of a list of tag names, which replace any
-existing tags for the item; it may be an empty list.
-
-=item B<-updatecommand> =E<gt> I<command>
-
-Specifies a callback that is to be executed every time
-the image item is updated on the screen.
-
-=back
-
-=head1 LINE ITEMS
-
-Items of type B<line> appear on the display as one or more connected
-line segments or curves.
-Line items support coordinate indexing operations using the canvas
-methods: B<dchars, index, insert.>
-Lines are created with methods of the following form:
-
- $canvas->createLine(x1, y1..., xn, yn, ?option, value, option, value, ...?)
-
-The arguments I<x1> through I<yn> give
-the coordinates for a series of two or more points that describe
-a series of connected line segments.
-After the coordinates there may be any number of I<option>-I<value>
-pairs, each of which sets one of the configuration options
-for the item. These same I<option>-I<value> pairs may be
-used in B<itemconfigure> methods to change the item's
-configuration.
-The following options are supported for lines:
-
-=over 4
-
-=item B<-arrow> =E<gt> I<where>
-
-Indicates whether or not arrowheads are to be drawn at one or both
-ends of the line.
-I<Where> must have one of the values B<none> (for no arrowheads),
-B<first> (for an arrowhead at the first point of the line),
-B<last> (for an arrowhead at the last point of the line), or
-B<both> (for arrowheads at both ends).
-This option defaults to B<none>.
-
-=item B<-arrowshape> =E<gt> I<shape>
-
-This option indicates how to draw arrowheads.
-The I<shape> argument must be a list with three elements, each
-specifying a distance in any of the forms described in
-the L<"COORDINATES"> section above.
-The first element of the list gives the distance along the line
-from the neck of the arrowhead to its tip.
-The second element gives the distance along the line from the
-trailing points of the arrowhead to the tip, and the third
-element gives the distance from the outside edge of the line to the
-trailing points.
-If this option isn't specified then Tk picks a ``reasonable'' shape.
-
-=item B<-capstyle> =E<gt> I<style>
-
-Specifies the ways in which caps are to be drawn at the endpoints
-of the line.
-I<Style> may have any of the forms accepted by B<Tk_GetCapStyle>
-(B<butt>, B<projecting>, or B<round>).
-If this option isn't specified then it defaults to B<butt>.
-Where arrowheads are drawn the cap style is ignored.
-
-=item B<-dash> =E<gt> I<pattern>
-
-=item B<-activedash> =E<gt> I<pattern>
-
-=item B<-disableddash> =E<gt> I<pattern>
-
-This option specifies dash patterns for the normal state, the active
-state, and the disabled state of a line item.
-I<pattern> may have any of the forms accepted by B<Tk_GetDash>.
-If the dash options are omitted then the default is a solid outline.
-
-=item B<-dashoffset> =E<gt> I<offset>
-
-The starting I<offset> into the pattern provided by the
-B<-dash> option.
-B<-dashoffset> is ignored if there is no B<-dash> pattern.
-
-=item B<-fill> =E<gt> I<color>
-
-=item B<-activefill> =E<gt> I<color>
-
-=item B<-disabledfill> =E<gt> I<color>
-
-Specifies the color to be used to fill the line in its normal, active, and
-disabled states.
-I<Color> may have
-any of the forms acceptable to B<Tk_GetColor>. It may also be undef,
-in which case the line will be transparent.
-This option defaults to B<black>.
-
-=item B<-joinstyle> =E<gt> I<style>
-
-Specifies the ways in which joints are to be drawn at the vertices
-of the line.
-I<Style> may have any of the forms accepted by B<Tk_GetCapStyle>
-(B<bevel>, B<miter>, or B<round>).
-If this option isn't specified then it defaults to B<miter>.
-If the line only contains two points then this option is
-irrelevant.
-
-=item B<-smooth> =E<gt> I<boolean>
-
-I<Boolean> must have one of the forms accepted by B<Tk_GetBoolean>.
-It indicates whether or not the line should be drawn as a curve.
-If so, the line is rendered as a set of parabolic splines: one spline
-is drawn for the first and second line segments, one for the second
-and third, and so on. Straight-line segments can be generated within
-a curve by duplicating the end-points of the desired line segment.
-
-=item B<-splinesteps> =E<gt> I<number>
-
-Specifies the degree of smoothness desired for curves: each spline
-will be approximated with I<number> line segments. This
-option is ignored unless the B<-smooth> option is true.
-
-=item B<-state> =E<gt> I<state>
-
-Modifies the state of the line item where I<state> may be set to one of:
-normal, disabled, or hidden. A line item may also be in the "active"
-state if the mouse is currently over it. Many options can take
-separate specifications in normal, active and disabled states such that the
-appearance of the item can be different in each state.
-
-=item B<-stipple> =E<gt> I<bitmap>
-
-=item B<-activestipple> =E<gt> I<bitmap>
-
-=item B<-disabledstipple> =E<gt> I<bitmap>
-
-This option specifies stipple patterns that should be used to fill the
-the line in its normal, active and disabled states.
-I<bitmap> specifies the stipple pattern to use, in any of the
-forms accepted by B<Tk_GetBitmap>.
-If I<bitmap> is an empty string (the default), then filling is
-done in a solid fashion.
-
-=item B<-tags> =E<gt> I<tagList>
-
-Specifies a set of tags to apply to the item.
-I<TagList> consists of a list of tag names, which replace any
-existing tags for the item.
-I<TagList> may be an empty list.
-
-=item B<-updatecommand> =E<gt> I<command>
-
-Specifies a callback that is to be executed every time
-the line item is updated on the screen.
-
-=item B<-width> =E<gt> I<lineWidth>
-
-=item B<-activewidth> =E<gt> I<lineWidth>
-
-=item B<-disabledwidth> =E<gt> I<lineWidth>
-
-Specifies the width of the line
-in its normal, active and disabled states.
-I<lineWidth> may be in any of the forms
-described in the L<"COORDINATES"> section above.
-
-Wide lines will be drawn centered on the path specified by the
-points.
-If this option isn't specified then it defaults to 1.0.
-
-=back
-
-=head1 OVAL ITEMS
-
-Items of type B<oval> appear as circular or oval regions on
-the display. Each oval may have an outline, a fill, or
-both. Ovals are created with methods of the
-following form:
-
- $canvas->createOval(x1, y1, x2, y2, ?option, value, option, value, ...?)
-
-The arguments I<x1>, I<y1>, I<x2>, and I<y2> give
-the coordinates of two diagonally opposite corners of a
-rectangular region enclosing the oval.
-The oval will include the top and left edges of the rectangle
-not the lower or right edges.
-If the region is square then the resulting oval is circular;
-otherwise it is elongated in shape.
-After the coordinates there may be any number of I<option>-I<value>
-pairs, each of which sets one of the configuration options
-for the item. These same I<option>-I<value> pairs may be
-used in B<itemconfigure> methods to change the item's
-configuration.
-The following options are supported for ovals:
-
-=over 4
-
-=item B<-dash> =E<gt> I<pattern>
-
-=item B<-activedash> =E<gt> I<pattern>
-
-=item B<-disableddash> =E<gt> I<pattern>
-
-This option specifies dash patterns for the normal state, the active
-state, and the disabled state of an oval item.
-I<pattern> may have any of the forms accepted by B<Tk_GetDash>.
-If the dash options are omitted then the default is a solid outline.
-
-=item B<-dashoffset> =E<gt> I<offset>
-
-The starting I<offset> into the pattern provided by the
-B<-dash> option.
-B<-dashoffset> is ignored if there is no B<-dash> pattern.
-
-=item B<-fill> =E<gt> I<color>
-
-=item B<-activefill> =E<gt> I<color>
-
-=item B<-disabledfill> =E<gt> I<color>
-
-Specifies the color to be used to fill the oval in its normal, active, and
-disabled states.
-I<Color> may have any of the forms accepted by B<Tk_GetColor>.
-If I<color> is undef (the default), then
-then the oval will not be filled.
-
-=item B<-outline> =E<gt> I<color>
-
-=item B<-activeoutline> =E<gt> I<color>
-
-=item B<-disabledoutline> =E<gt> I<color>
-
-This option specifies the color that should be used to draw the
-outline of the oval in its normal, active and disabled states.
-I<Color> may have any of the forms accepted by B<Tk_GetColor>.
-This option defaults to B<black>.
-If I<color> is undef then no outline will be
-drawn for the oval.
-
-=item B<-outlinestipple> =E<gt> I<bitmap>
-
-=item B<-activeoutlinestipple> =E<gt> I<bitmap>
-
-=item B<-disabledoutlinestipple> =E<gt> I<bitmap>
-
-This option specifies stipple patterns that should be used to draw the
-outline of the oval in its normal, active and disabled states.
-I<bitmap> specifies the stipple pattern to use, in any of the
-forms accepted by B<Tk_GetBitmap>.
-If the B<-outline> option hasn't been specified then this option
-has no effect.
-If I<bitmap> is an empty string (the default), then the outline is drawn
-in a solid fashion.
-
-=item B<-state> =E<gt> I<state>
-
-Modifies the state of the oval item where I<state> may be set to one of:
-normal, disabled, or hidden. An oval item may also be in the "active"
-state if the mouse is currently over it. Many options can take
-separate specifications in normal, active and disabled states such that the
-appearance of the item can be different in each state.
-
-=item B<-stipple> =E<gt> I<bitmap>
-
-=item B<-activestipple> =E<gt> I<bitmap>
-
-=item B<-disabledstipple> =E<gt> I<bitmap>
-
-This option specifies stipple patterns that should be used to fill the
-the oval in its normal, active and disabled states.
-I<bitmap> specifies the stipple pattern to use, in any of the
-forms accepted by B<Tk_GetBitmap>.
-If the B<-fill> option hasn't been specified then this option
-has no effect.
-If I<bitmap> is an empty string (the default), then filling is done
-in a solid fashion.
-
-=item B<-tags> =E<gt> I<tagList>
-
-Specifies a set of tags to apply to the item.
-I<TagList> consists of a list of tag names, which replace any
-existing tags for the item.
-I<TagList> may be an empty list.
-
-=item B<-updatecommand> =E<gt> I<command>
-
-Specifies a callback that is to be executed every time
-the oval item is updated on the screen.
-
-=item B<-width> =E<gt> I<outlineWidth>
-
-=item B<-activewidth> =E<gt> I<outlineWidth>
-
-=item B<-disabledwidth> =E<gt> I<outlineWidth>
-
-Specifies the width of the outline to be drawn around
-the oval, in its normal, active and disabled states.
-I<outlineWidth> specifies the width of the outline to be drawn around
-the oval, in any of the forms described in the L<"COORDINATES"> section above.
-
-If the B<-outline> option hasn't been specified then this option
-has no effect.
-Wide outlines are drawn centered on the oval path defined by
-I<x1>, I<y1>, I<x2>, and I<y2>.
-This option defaults to 1.0.
-
-=back
-
-=head1 POLYGON ITEMS
-
-Items of type B<polygon> appear as polygonal or curved filled regions
-on the display.
-Polygon items support coordinate indexing operations using the canvas
-methods: B<dchars, index, insert.>
-Polygons are created with methods of the following form:
-
- $canvas->createPolygon(x1, y1, ..., xn, yn, ?option, value, option, value, ...?)
-
-The arguments I<x1> through I<yn> specify the coordinates for
-three or more points that define a closed polygon.
-The first and last points may be the same; whether they are or not,
-Tk will draw the polygon as a closed polygon.
-After the coordinates there may be any number of I<option>-I<value>
-pairs, each of which sets one of the configuration options
-for the item. These same I<option>-I<value> pairs may be
-used in B<itemconfigure> methods to change the item's
-configuration.
-The following options are supported for polygons:
-
-=over 4
-
-=item B<-dash> =E<gt> I<pattern>
-
-=item B<-activedash> =E<gt> I<pattern>
-
-=item B<-disableddash> =E<gt> I<pattern>
-
-This option specifies dash patterns for the normal state, the active
-state, and the disabled state of an polygon item.
-I<pattern> may have any of the forms accepted by B<Tk_GetDash>.
-If the dash options are omitted then the default is a solid outline.
-
-=item B<-dashoffset> =E<gt> I<offset>
-
-The starting I<offset> into the pattern provided by the
-B<-dash> option.
-B<-dashoffset> is ignored if there is no B<-dash> pattern.
-
-=item B<-fill> =E<gt> I<color>
-
-=item B<-activefill> =E<gt> I<color>
-
-=item B<-disabledfill> =E<gt> I<color>
-
-Specifies the color to be used to fill the polygon in its normal, active, and
-disabled states.
-I<Color>
-may have any of the forms acceptable to B<Tk_GetColor>.
-If I<color> is undef then the polygon will be
-transparent.
-This option defaults to B<black>.
-
-=item B<-joinstyle> =E<gt> I<style>
-
-Specifies the ways in which joints are to be drawn at the vertices
-of the outline.
-I<Style> may have any of the forms accepted by B<Tk_GetCapStyle>
-(B<bevel>, B<miter>, or B<round>).
-If this option isn't specified then it defaults to B<miter>.
-
-=item B<-outline> =E<gt> I<color>
-
-=item B<-activeoutline> =E<gt> I<color>
-
-=item B<-disabledoutline> =E<gt> I<color>
-
-This option specifies the color that should be used to draw the
-outline of the polygon in its normal, active and disabled states.
-I<Color> may have any of the forms accepted by B<Tk_GetColor>.
-If I<color> is undef then no outline will be
-drawn for the polygon.
-This option defaults to undef (no outline).
-
-=item B<-outlinestipple> =E<gt> I<bitmap>
-
-=item B<-activeoutlinestipple> =E<gt> I<bitmap>
-
-=item B<-disabledoutlinestipple> =E<gt> I<bitmap>
-
-This option specifies stipple patterns that should be used to draw the
-outline of the polygon in its normal, active and disabled states.
-I<bitmap> specifies the stipple pattern to use, in any of the
-forms accepted by B<Tk_GetBitmap>.
-If the B<-outline> option hasn't been specified then this option
-has no effect.
-If I<bitmap> is an empty string (the default), then the outline is drawn
-in a solid fashion.
-
-=item B<-smooth> =E<gt> I<boolean>
-
-I<Boolean> must have one of the forms accepted by B<Tk_GetBoolean>
-It indicates whether or not the polygon should be drawn with a
-curved perimeter.
-If so, the outline of the polygon becomes a set of parabolic splines,
-one spline for the first and second line segments, one for the second
-and third, and so on. Straight-line segments can be generated in a
-smoothed polygon by duplicating the end-points of the desired line segment.
-
-=item B<-splinesteps> =E<gt> I<number>
-
-Specifies the degree of smoothness desired for curves: each spline
-will be approximated with I<number> line segments. This
-option is ignored unless the B<-smooth> option is true.
-
-=item B<-state> =E<gt> I<state>
-
-Modifies the state of the polygon item where I<state> may be set to one of:
-normal, disabled, or hidden. A polygon item may also be in the "active"
-state if the mouse is currently over it. Many options can take
-separate specifications in normal, active and disabled states such that the
-appearance of the item can be different in each state.
-
-=item B<-stipple> =E<gt> I<bitmap>
-
-=item B<-activestipple> =E<gt> I<bitmap>
-
-=item B<-disabledstipple> =E<gt> I<bitmap>
-
-This option specifies stipple patterns that should be used to fill the
-the polygon in its normal, active and disabled states.
-I<bitmap> specifies the stipple pattern to use, in any of the
-forms accepted by B<Tk_GetBitmap>.
-If I<bitmap> is an empty string (the default), then filling is
-done in a solid fashion.
-
-=item B<-tags> =E<gt> I<tagList>
-
-Specifies a set of tags to apply to the item.
-I<TagList> consists of a list of tag names, which replace any
-existing tags for the item.
-I<TagList> may be an empty list.
-
-=item B<-updatecommand> =E<gt> I<command>
-
-Specifies a callback that is to be executed every time
-the polygon item is updated on the screen.
-
-=item B<-width> =E<gt> I<outlineWidth>
-
-=item B<-activewidth> =E<gt> I<outlineWidth>
-
-=item B<-disabledwidth> =E<gt> I<outlineWidth>
-
-=item Specifies the width of the outline to be drawn around
-
-the polygon, in its normal, active and disabled states.
-I<outlineWidth> may be in any of the forms described in the COORDINATES
-section above.
-I<OutlineWidth> specifies the width of the outline to be drawn around
-the polygon, in any of the forms described in the L<"COORDINATES"> section above.
-If the B<-outline> option hasn't been specified then this option
-has no effect. This option defaults to 1.0.
-
-Polygon items are different from other items such as rectangles, ovals
-and arcs in that interior points are considered to be ``inside'' a
-polygon (e.g. for purposes of the B<find closest> and
-B<find overlapping> methods) even if it is not filled.
-For most other item types, an
-interior point is considered to be inside the item only if the item
-is filled or if it has neither a fill nor an outline. If you would
-like an unfilled polygon whose interior points are not considered
-to be inside the polygon, use a line item instead.
-
-=back
-
-=head1 RECTANGLE ITEMS
-
-Items of type B<rectangle> appear as rectangular regions on
-the display. Each rectangle may have an outline, a fill, or
-both. Rectangles are created with methods of the
-following form:
-
- $canvas->createRectangle(x1, y1, x2, y2, ?option, value, option, value, ...?)
-
-The arguments I<x1>, I<y1>, I<x2>, and I<y2> give
-the coordinates of two diagonally opposite corners of the rectangle
-(the rectangle will include its upper and left edges but not
-its lower or right edges).
-After the coordinates there may be any number of I<option>-I<value>
-pairs, each of which sets one of the configuration options
-for the item. These same I<option>-I<value> pairs may be
-used in B<itemconfigure> methods to change the item's
-configuration.
-The following options are supported for rectangles:
-
-=over 4
-
-=item B<-dash> =E<gt> I<pattern>
-
-=item B<-activedash> =E<gt> I<pattern>
-
-=item B<-disableddash> =E<gt> I<pattern>
-
-This option specifies dash patterns for the normal state, the active
-state, and the disabled state of a rectangle item.
-I<pattern> may have any of the forms accepted by B<Tk_GetDash>.
-If the dash options are omitted then the default is a solid outline.
-
-=item B<-dashoffset> =E<gt> I<offset>
-
-The starting I<offset> into the pattern provided by the
-B<-dash> option.
-B<-dashoffset> is ignored if there is no B<-dash> pattern.
-
-=item B<-fill> =E<gt> I<color>
-
-=item B<-activefill> =E<gt> I<color>
-
-=item B<-disabledfill> =E<gt> I<color>
-
-Specifies the color to be used to fill the rectangle in its normal, active, and
-disabled states.
-I<Color>
-may be specified in any of the forms accepted by B<Tk_GetColor>.
-If I<color> is undef (the default),
-then the rectangle will not be filled.
-
-=item B<-outline> =E<gt> I<color>
-
-=item B<-activeoutline> =E<gt> I<color>
-
-=item B<-disabledoutline> =E<gt> I<color>
-
-This option specifies the color that should be used to draw the
-outline of the rectangle in its normal, active and disabled states.
-I<Color> may have any of the forms accepted by B<Tk_GetColor>.
-This option defaults to B<black>.
-If I<color> is undef then no outline will be
-drawn for the rectangle.
-
-=item B<-outlinestipple> =E<gt> I<bitmap>
-
-=item B<-activeoutlinestipple> =E<gt> I<bitmap>
-
-=item B<-disabledoutlinestipple> =E<gt> I<bitmap>
-
-This option specifies stipple patterns that should be used to draw the
-outline of the rectangle in its normal, active and disabled states.
-I<bitmap> specifies the stipple pattern to use, in any of the
-forms accepted by B<Tk_GetBitmap>.
-If the B<-outline> option hasn't been specified then this option
-has no effect.
-If I<bitmap> is an empty string (the default), then the outline is drawn
-in a solid fashion.
-
-=item B<-state> =E<gt> I<state>
-
-Modifies the state of the rectangle item where I<state> may be set to one of:
-normal, disabled, or hidden. A rectangle item may also be in the "active"
-state if the mouse is currently over it. Many options can take
-separate specifications in normal, active and disabled states such that the
-appearance of the item can be different in each state.
-
-=item B<-stipple> =E<gt> I<bitmap>
-
-=item B<-activestipple> =E<gt> I<bitmap>
-
-=item B<-disabledstipple> =E<gt> I<bitmap>
-
-This option specifies stipple patterns that should be used to fill the
-the rectangle in its normal, active and disabled states.
-I<bitmap> specifies the stipple pattern to use, in any of the
-forms accepted by B<Tk_GetBitmap>.
-If the B<-fill> option hasn't been specified then this option
-has no effect.
-If I<bitmap> is an empty string (the default), then filling
-is done in a solid fashion.
-
-=item B<-tags> =E<gt> I<tagList>
-
-Specifies a set of tags to apply to the item.
-I<TagList> consists of a list of tag names, which replace any
-existing tags for the item.
-I<TagList> may be an empty list.
-
-=item B<-updatecommand> =E<gt> I<command>
-
-Specifies a callback that is to be executed every time
-the rectangle item is updated on the screen.
-
-=item B<-width> =E<gt> I<outlineWidth>
-
-=item B<-activewidth> =E<gt> I<outlineWidth>
-
-=item B<-disabledwidth> =E<gt> I<outlineWidth>
-
-Specifies the width of the outline to be drawn around
-the rectangle, in its normal, active and disabled states.
-I<OutlineWidth> specifies the width of the outline to be drawn around
-the rectangle, in any of the forms described in the L<"COORDINATES"> section above.
-
-If the B<-outline> option hasn't been specified then this option
-has no effect.
-Wide outlines are drawn centered on the rectangular path
-defined by I<x1>, I<y1>, I<x2>, and I<y2>.
-This option defaults to 1.0.
-
-=back
-
-=head1 TEXT ITEMS
-
-A text item displays a string of characters on the screen in one
-or more lines.
-Text items support indexing and selection, along with the
-following text-related canvas methods: B<dchars>,
-B<focus>, B<icursor>, B<index>, B<insert>,
-B<select>.
-Text items are created with methods of the following
-form:
-
- $canvas->createText(x, y, ?option, value, option, value, ...?)
-
-The arguments I<x> and I<y> specify the coordinates of a
-point used to position the text on the display (see the options
-below for more information on how text is displayed).
-After the coordinates there may be any number of I<option>-I<value>
-pairs, each of which sets one of the configuration options
-for the item. These same I<option>-I<value> pairs may be
-used in B<itemconfigure> methods to change the item's
-configuration.
-The following options are supported for text items:
-
-=over 4
-
-=item B<-anchor> =E<gt> I<anchorPos>
-
-I<AnchorPos> tells how to position the text relative to the
-positioning point for the text; it may have any of the forms
-accepted by B<Tk_GetAnchor>. For example, if I<anchorPos>
-is B<center> then the text is centered on the point; if
-I<anchorPos> is B<n> then the text will be drawn such that
-the top center point of the rectangular region occupied by the
-text will be at the positioning point.
-This option defaults to B<center>.
-
-=item B<-fill> =E<gt> I<color>
-
-=item B<-activefill> =E<gt> I<color>
-
-=item B<-disabledfill> =E<gt> I<color>
-
-Specifies the color to be used to fill the text in its normal, active, and
-disabled states.
-I<Color> may have any of the forms accepted by B<Tk_GetColor>.
-If I<color> is undef then the text will be transparent.
-If this option isn't specified then it defaults to B<black>.
-
-=item B<-font> =E<gt> I<fontName>
-
-Specifies the font to use for the text item.
-I<FontName> may be any string acceptable to B<Tk_GetFontStruct>.
-If this option isn't specified, it defaults to a system-dependent
-font.
-
-=item B<-justify> =E<gt> I<how>
-
-Specifies how to justify the text within its bounding region.
-I<How> must be one of the values B<left>, B<right>,
-or B<center>.
-This option will only matter if the text is displayed as multiple
-lines.
-If the option is omitted, it defaults to B<left>.
-
-=item B<-state> =E<gt> I<state>
-
-Modifies the state of the text item where I<state> may be set to one of:
-normal, disabled, or hidden. A text item may also be in the "active"
-state if the mouse is currently over it. Many options can take
-separate specifications in normal, active and disabled states such that the
-appearance of the item can be different in each state.
-
-=item B<-stipple> =E<gt> I<bitmap>
-
-=item B<-activestipple> =E<gt> I<bitmap>
-
-=item B<-disabledstipple> =E<gt> I<bitmap>
-
-This option specifies stipple patterns that should be used to fill the
-the text in its normal, active and disabled states.
-I<bitmap> specifies the stipple pattern to use, in any of the
-forms accepted by B<Tk_GetBitmap>.
-If I<bitmap> is an empty string (the default) then the text
-is drawn in a solid fashion.
-
-=item B<-tags> =E<gt> I<tagList>
-
-Specifies a set of tags to apply to the item.
-I<TagList> consists of a list of tag names, which replace any
-existing tags for the item.
-I<TagList> may be an empty list.
-
-=item B<-text> =E<gt> I<string>
-
-I<String> specifies the characters to be displayed in the text item.
-Newline characters cause line breaks.
-The characters in the item may also be changed with the
-B<insert> and B<delete> methods.
-This option defaults to an empty string.
-
-=item B<-updatecommand> =E<gt> I<command>
-
-Specifies a callback that is to be executed every time
-the text item is updated on the screen.
-
-=item B<-width> =E<gt> I<lineLength>
-
-Specifies a maximum line length for the text, in any of the forms
-described in the L<"COORDINATES"> section above.
-If this option is zero (the default) the text is broken into
-lines only at newline characters.
-However, if this option is non-zero then any line that would
-be longer than I<lineLength> is broken just before a space
-character to make the line shorter than I<lineLength>; the
-space character is treated as if it were a newline
-character.
-
-=back
-
-=head1 WINDOW ITEMS
-
-Items of type B<window> cause a particular window to be displayed
-at a given position on the canvas.
-Window items are created with methods of the following form:
-
-S< >I<$canvas>->B<createWindow>(I<x, y>?, I<-option>=>I<value>, I<-option>=>I<value>, ...?)
-
-The arguments I<x> and I<y> specify the coordinates of a
-point used to position the window on the display (see the B<-anchor>
-option below for more information on how bitmaps are displayed).
-After the coordinates there may be any number of I<option-value>
-pairs, each of which sets one of the configuration options
-for the item. These same I<option>-I<value> pairs may be
-used in B<itemconfigure> method to change the item's
-configuration.
-The following options are supported for window items:
-
-=over 4
-
-=item B<-anchor> =E<gt> I<anchorPos>
-
-I<AnchorPos> tells how to position the window relative to the
-positioning point for the item; it may have any of the forms
-accepted by B<Tk_GetAnchor>. For example, if I<anchorPos>
-is B<center> then the window is centered on the point; if
-I<anchorPos> is B<n> then the window will be drawn so that
-its top center point is at the positioning point.
-This option defaults to B<center>.
-
-=item B<-height> =E<gt> I<pixels>
-
-Specifies the height to assign to the item's window.
-I<Pixels> may have any of the
-forms described in the L<"COORDINATES"> section above.
-If this option isn't specified, or if it is specified as an empty
-string, then the window is given whatever height it requests internally.
-
-=item B<-state> =E<gt> I<state>
-
-Modifies the state of the window item where I<state> may be set to one of:
-normal, disabled, or hidden.
-
-=item B<-tags> =E<gt> I<tagList>
-
-Specifies a set of tags to apply to the item.
-I<TagList> consists of a list of tag names, which replace any
-existing tags for the item.
-I<TagList> may be an empty list.
-
-=item B<-updatecommand> =E<gt> I<command>
-
-Specifies a callback that is to be executed every time
-the window item is updated on the screen.
-
-=item B<-width> =E<gt> I<pixels>
-
-Specifies the width to assign to the item's window.
-I<Pixels> may have any of the
-forms described in the L<"COORDINATES"> section above.
-If this option isn't specified, or if it is specified as an empty
-string, then the window is given whatever width it requests internally.
-
-=item B<-window> =E<gt> I<$widget>
-
-Specifies the window to associate with this item.
-The window specified by $widget must either be a child of
-the canvas widget or a child of some ancestor of the canvas widget.
-I<PathName> may not refer to a top-level window.
-
-Note: due to restrictions in the ways that windows are managed, it is not
-possible to draw other graphical items (such as lines and images) on top
-of window items. A window item always obscures any graphics that
-overlap it, regardless of their order in the display list.
-
-=back
-
-=head1 APPLICATION-DEFINED ITEM TYPES
-
-It is possible for individual applications to define new item
-types for canvas widgets using C code.
-See the documentation for B<Tk_CreateItemType>.
-
-=head1 BINDINGS
-
-Canvas has default bindings to allow scrolling if necessary:
-<Up>, <Down>, <Left> and <Right> (and their <Control-*> counter
-parts). Further <Proir>, <Next>, <Home> and <End>. These
-bindings allow you to navigate the same way as in other
-widgets that can scroll.
-
-=head1 Perl/Tk Methods
-
-The following methods are added as perl code:
-
-=over 4
-
-=item $canvas->get_corners
-
-Returns the bounding box in Canvas coordinates of the visible portion
-of the Canvas. (Written by Slaven Rezic.)
-
-=back
-
-=head1 CREDITS
-
-Tk's canvas widget is a blatant ripoff of ideas from Joel Bartlett's
-I<ezd> program. I<Ezd> provides structured graphics in a Scheme
-environment and preceded canvases by a year or two. Its simple
-mechanisms for placing and animating graphical objects inspired the
-functions of canvases.
-
-=head1 KEYWORDS
-
-canvas, widget
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Checkbutton.pm b/Master/tlpkg/tlperl/lib/Tk/Checkbutton.pm
deleted file mode 100644
index 491d8cd2444..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Checkbutton.pm
+++ /dev/null
@@ -1,42 +0,0 @@
-package Tk::Checkbutton;
-# Conversion from Tk4.0 button.tcl competed.
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-
-
-use vars qw($VERSION);
-$VERSION = '4.006'; # $Id: //depot/Tkutf8/Tk/Checkbutton.pm#6 $
-
-# modify it under the same terms as Perl itself, subject
-# to additional disclaimer in license.terms due to partial
-# derivation from Tk4.0 sources.
-
-require Tk::Widget;
-require Tk::Button;
-
-use base qw(Tk::Button);
-
-Construct Tk::Widget 'Checkbutton';
-
-sub Tk_cmd { \&Tk::checkbutton }
-
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<Enter>', 'Enter');
- $mw->bind($class,'<Leave>', 'Leave');
- $mw->bind($class,'<1>', 'Invoke');
- $mw->bind($class,'<space>', 'Invoke');
- return $class;
-}
-
-sub Invoke
-{
- my $w = shift;
- $w->invoke() unless($w->cget('-state') eq 'disabled');
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/Checkbutton.pod b/Master/tlpkg/tlperl/lib/Tk/Checkbutton.pod
deleted file mode 100644
index 710e1192055..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Checkbutton.pod
+++ /dev/null
@@ -1,347 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Checkbutton - Create and manipulate Checkbutton widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-I<$checkbutton> = I<$parent>-E<gt>B<Checkbutton>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-activebackground>
-B<-activeforeground>
-B<-anchor>
-B<-background>
-B<-bitmap>
-B<-borderwidth>
-B<-compound>
-B<-cursor>
-B<-disabledforeground>
-B<-font>
-B<-foreground>
-B<-highlightbackground>
-B<-highlightcolor>
-B<-highlightthickness>
-B<-image>
-B<-justify>
-B<-padx>
-B<-pady>
-B<-relief>
-B<-takefocus>
-B<-text>
-B<-textvariable>
-B<-underline>
-B<-wraplength>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<command>
-
-=item Class: B<Command>
-
-=item Switch: B<-command>
-
-Specifies a L<perlE<sol>Tk callback|Tk::callbacks> to associate with the button. This command
-is typically invoked when mouse button 1 is released over the button
-window. The button's global variable (B<-variable> option) will
-be updated before the command is invoked.
-
-=item Name: B<height>
-
-=item Class: B<Height>
-
-=item Switch: B<-height>
-
-Specifies a desired height for the button.
-If an image or bitmap is being displayed in the button then the value is in
-screen units (i.e. any of the forms acceptable to B<Tk_GetPixels>);
-for text it is in lines of text.
-If this option isn't specified, the button's desired height is computed
-from the size of the image or bitmap or text being displayed in it.
-
-=item Name: B<indicatorOn>
-
-=item Class: B<IndicatorOn>
-
-=item Switch: B<-indicatoron>
-
-Specifies whether or not the indicator should be drawn. Must be a
-proper boolean value. If false, the B<relief> option is
-ignored and the widget's relief is always sunken if the widget is
-selected and raised otherwise.
-
-=item Command-Line Name: B<-offrelief>
-
-=item Database Name: B<offRelief>
-
-=item Database Class: B<OffRelief>
-
-Specifies the relief for the checkbutton when the indicator is not
-drawn and the checkbutton is off. The default value is B<raised>. By
-setting this option to B<flat> and setting
-B<-indicatoron false -overrelief raised>, the effect is achieved of
-having a flat button
-that raises on mouse-over and which is depressed when activated. This
-is the behavior typically exhibited by the Bold, Italic, and
-Underline checkbuttons on the toolbar of a word-processor, for
-example.
-
-=item Name: B<offValue>
-
-=item Class: B<Value>
-
-=item Switch: B<-offvalue>
-
-Specifies value to store in the button's associated variable whenever
-this button is deselected. Defaults to ``0''.
-
-=item Name: B<onValue>
-
-=item Class: B<Value>
-
-=item Switch: B<-onvalue>
-
-Specifies value to store in the button's associated variable whenever
-this button is selected. Defaults to ``1''.
-
-=item Command-Line Name: B<-overrelief>
-
-=item Database Name: B<overRelief>
-
-=item Database Class: B<OverRelief>
-
-Specifies an alternative relief for the button, to be used when
-the mouse cursor is over the widget. This option can be used to
-make toolbar buttons, by configuring B<-relief flat -overrelief
-raised>. If the value of this option is the empty string, then
-no alternative relief is used when the mouse cursor is over the
-button. The empty string is the default value.
-
-=item Name: B<selectColor>
-
-=item Class: B<Background>
-
-=item Switch: B<-selectcolor>
-
-Specifies a background color to use when the button is selected.
-If B<indicatorOn> is true then the color applies to the indicator.
-Under Windows, this color is used as the background for the indicator
-regardless of the select state.
-If B<indicatorOn> is false, this color is used as the background
-for the entire widget, in place of B<background> or B<activeBackground>,
-whenever the widget is selected.
-If specified as an empty string then no special color is used for
-displaying when the widget is selected.
-
-=item Name: B<selectImage>
-
-=item Class: B<SelectImage>
-
-=item Switch: B<-selectimage>
-
-Specifies an image to display (in place of the B<image> option)
-when the checkbutton is selected.
-This option is ignored unless the B<image> option has been
-specified.
-
-=item Name: B<state>
-
-=item Class: B<State>
-
-=item Switch: B<-state>
-
-Specifies one of three states for the checkbutton: B<normal>, B<active>,
-or B<disabled>. In normal state the checkbutton is displayed using the
-B<foreground> and B<background> options. The active state is
-typically used when the pointer is over the checkbutton. In active state
-the checkbutton is displayed using the B<activeForeground> and
-B<activeBackground> options. Disabled state means that the checkbutton
-should be insensitive: the default bindings will refuse to activate
-the widget and will ignore mouse button presses.
-In this state the B<disabledForeground> and
-B<background> options determine how the checkbutton is displayed.
-
-=item Name: B<variable>
-
-=item Class: B<Variable>
-
-=item Switch: B<-variable>
-
-Specifies reference to a variable to set to indicate whether
-or not this button is selected. Defaults to C<\$widget-E<gt>{'Value'}>
-member of the widget's hash. In general perl variables are C<undef> unless
-specifically initialized which will not match either default B<-onvalue> or
-default B<-offvalue>.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies a desired width for the button.
-If an image or bitmap is being displayed in the button then the value is in
-screen units (i.e. any of the forms acceptable to B<Tk_GetPixels>);
-for text it is in characters.
-If this option isn't specified, the button's desired width is computed
-from the size of the image or bitmap or text being displayed in it.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Checkbutton> method creates a new window (given by the
-$widget argument) and makes it into a checkbutton widget.
-Additional
-options, described above, may be specified on the command line
-or in the option database
-to configure aspects of the checkbutton such as its colors, font,
-text, and initial relief. The B<checkbutton> command returns its
-$widget argument. At the time this command is invoked,
-there must not exist a window named $widget, but
-$widget's parent must exist.
-
-A checkbutton is a widget
-that displays a textual string, bitmap or image
-and a square called an I<indicator>.
-If text is displayed, it must all be in a single font, but it
-can occupy multiple lines on the screen (if it contains newlines
-or if wrapping occurs because of the B<wrapLength> option) and
-one of the characters may optionally be underlined using the
-B<underline> option.
-A checkbutton has
-all of the behavior of a simple button, including the
-following: it can display itself in either of three different
-ways, according to the B<state> option;
-it can be made to appear
-raised, sunken, or flat; it can be made to flash; and it invokes
-a L<perlE<sol>Tk callback|Tk::callbacks> whenever mouse button 1 is clicked over the
-checkbutton.
-
-In addition, checkbuttons can be I<selected>.
-If a checkbutton is selected then the indicator is normally
-drawn with a selected appearance, and
-a Tcl variable associated with the checkbutton is set to a particular
-value (normally 1).
-Under Unix, the indicator is drawn with a sunken relief and a special
-color. Under Windows, the indicator is drawn with a check mark inside.
-If the checkbutton is not selected, then the indicator is drawn with a
-deselected appearance, and the associated variable is
-set to a different value (typically 0).
-Under Unix, the indicator is drawn with a raised relief and no special
-color. Under Windows, the indicator is drawn without a check mark inside.
-By default, the name of the variable associated with a checkbutton is the
-same as the I<name> used to create the checkbutton.
-The variable name, and the ``on'' and ``off'' values stored in it,
-may be modified with options on the command line or in the option
-database.
-Configuration options may also be used to modify the way the
-indicator is displayed (or whether it is displayed at all).
-By default a checkbutton is configured to select and deselect
-itself on alternate button clicks.
-In addition, each checkbutton monitors its associated variable and
-automatically selects and deselects itself when the variables value
-changes to and from the button's ``on'' value.
-
-=head1 WIDGET METHODS
-
-The B<Checkbutton> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-The following additional methods are available for checkbutton widgets:
-
-=over 4
-
-=item I<$checkbutton>-E<gt>B<deselect>
-
-Deselects the checkbutton and sets the associated variable to its ``off''
-value.
-
-=item I<$checkbutton>-E<gt>B<flash>
-
-Flashes the checkbutton. This is accomplished by redisplaying the checkbutton
-several times, alternating between active and normal colors. At
-the end of the flash the checkbutton is left in the same normal/active
-state as when the command was invoked.
-This command is ignored if the checkbutton's state is B<disabled>.
-
-=item I<$checkbutton>-E<gt>B<invoke>
-
-Does just what would have happened if the user invoked the checkbutton
-with the mouse: toggle the selection state of the button and invoke
-the L<perlE<sol>Tk callback|Tk::callbacks> associated with the checkbutton, if there is one.
-The return value is the return value from the L<perlE<sol>Tk callback|Tk::callbacks>, or an
-empty string if there is no command associated with the checkbutton.
-This command is ignored if the checkbutton's state is B<disabled>.
-
-=item I<$checkbutton>-E<gt>B<select>
-
-Selects the checkbutton and sets the associated variable to its ``on''
-value.
-
-=item I<$checkbutton>-E<gt>B<toggle>
-
-Toggles the selection state of the button, redisplaying it and
-modifying its associated variable to reflect the new state.
-
-=back
-
-=head1 BINDINGS
-
-Tk automatically creates class bindings for checkbuttons that give them
-the following default behavior:
-
-=over 4
-
-=item [1]
-
-On Unix systems, a checkbutton activates whenever the mouse passes
-over it and deactivates whenever the mouse leaves the checkbutton. On
-Mac and Windows systems, when mouse button 1 is pressed over a
-checkbutton, the button activates whenever the mouse pointer is inside
-the button, and deactivates whenever the mouse pointer leaves the
-button.
-
-=item [2]
-
-When mouse button 1 is pressed over a checkbutton, it is invoked (its
-selection state toggles and the command associated with the button is
-invoked, if there is one).
-
-=item [3]
-
-When a checkbutton has the input focus, the space key causes the checkbutton
-to be invoked. Under Windows, there are additional key bindings; plus
-(+) and equal (=) select the button, and minus (-) deselects the button.
-
-If the checkbutton's state is B<disabled> then none of the above
-actions occur: the checkbutton is completely non-responsive.
-
-The behavior of checkbuttons can be changed by defining new bindings for
-individual widgets or by redefining the class bindings.
-
-=back
-
-=head1 KEYWORDS
-
-checkbutton, widget
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Clipboard.pm b/Master/tlpkg/tlperl/lib/Tk/Clipboard.pm
deleted file mode 100644
index 16ab74a599e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Clipboard.pm
+++ /dev/null
@@ -1,122 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Clipboard;
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '4.009'; # sprintf '4.%03d', q$Revision: #8 $ =~ /\D(\d+)\s*$/;
-
-use AutoLoader qw(AUTOLOAD);
-use Tk qw(catch);
-
-sub clipEvents
-{
- return qw[Copy Cut Paste];
-}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- foreach my $op ($class->clipEvents)
- {
- $mw->Tk::bind($class,"<<$op>>","clipboard$op");
- }
- return $class;
-}
-
-sub clipboardSet
-{
- my $w = shift;
- $w->clipboardClear;
- $w->clipboardAppend(@_);
-}
-
-sub clipboardCopy
-{
- my $w = shift;
- my $val = $w->getSelected;
- if (defined $val)
- {
- $w->clipboardSet('--',$val);
- }
- return $val;
-}
-
-sub clipboardCut
-{
- my $w = shift;
- my $val = $w->clipboardCopy;
- if (defined $val)
- {
- $w->deleteSelected;
- }
- return $val;
-}
-
-sub clipboardGet
-{
- my $w = shift;
- $w->SelectionGet('-selection','CLIPBOARD',@_);
-}
-
-sub clipboardPaste
-{
- my $w = shift;
- local $@;
- catch
- {
-## Different from Tcl/Tk version:
-# if ($w->windowingsystem eq 'x11')
-# {
-# catch
-# {
-# $w->deleteSelected;
-# };
-# }
- $w->insert("insert", $w->clipboardGet);
- $w->SeeInsert if $w->can('SeeInsert');
- };
-}
-
-sub clipboardOperations
-{
- my @class = ();
- my $mw = shift;
- if (ref $mw)
- {
- $mw = $mw->DelegateFor('bind');
- }
- else
- {
- push(@class,$mw);
- $mw = shift;
- }
- while (@_)
- {
- my $op = shift;
- $mw->Tk::bind(@class,"<<$op>>","clipboard$op");
- }
-}
-
-# These methods work for Entry and Text
-# and can be overridden where they don't work
-
-sub deleteSelected
-{
- my $w = shift;
- catch { $w->delete('sel.first','sel.last') };
-}
-
-
-1;
-__END__
-
-sub getSelected
-{
- my $w = shift;
- my $val = Tk::catch { $w->get('sel.first','sel.last') };
- return $val;
-}
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Clipboard.pod b/Master/tlpkg/tlperl/lib/Tk/Clipboard.pod
deleted file mode 100644
index a65eb37a870..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Clipboard.pod
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::clipboard - Manipulate Tk clipboard
-
-=for category User Interaction
-
-=head1 SYNOPSIS
-
-I<$widget>-E<gt>B<clipboard>I<Option>?(I<args>)?
-
-=head1 DESCRIPTION
-
-This command provides an interface to the Tk clipboard,
-which stores data for later retrieval using the selection mechanism.
-In order to copy data into the clipboard, B<clipboardClear> must
-be called, followed by a sequence of one or more calls to
-B<clipboardAppend>. To ensure that the clipboard is updated atomically, all
-appends should be completed before returning to the event loop.
-
-The following methods are currently supported:
-
-=over 4
-
-=item I<$widget>-E<gt>B<clipboardClear>
-
-Claims ownership of the clipboard on I<$widget>'s display and removes
-any previous contents. Returns an empty string.
-
-=item I<$widget>-E<gt>B<clipboardAppend>(?B<-format>=E<gt>I<format>?,?B<-type>=E<gt>I<type>?,?B<-->?,I<data>)
-
-Appends I<data> to the clipboard on $widget's
-display in the form given by I<type> with the representation given
-by I<format> and claims ownership of the clipboard on $widget's
-display.
-
-=over 4
-
-I<Type> specifies the form in which the selection is to be returned
-(the desired ``target'' for conversion, in ICCCM terminology), and
-should be an atom name such as STRING or FILE_NAME; see the
-Inter-Client Communication Conventions Manual for complete details.
-I<Type> defaults to STRING.
-
-The I<format> argument specifies the representation that should be
-used to transmit the selection to the requester (the second column of
-Table 2 of the ICCCM), and defaults to STRING. If I<format> is
-STRING, the selection is transmitted as 8-bit ASCII characters.
-See the L<Tk::Selection> documentation for explanation of what happens
-if I<format> is not STRING.
-Note that arguments passed to
-B<clipboardAppend> are concatenated before conversion, so the
-caller must take care to ensure appropriate spacing across string
-boundaries. All items appended to the clipboard with the same
-I<type> must have the same I<format>.
-
-A B<--> argument may be specified to mark the end of options: the
-next argument will always be used as I<data>.
-This feature may be convenient if, for example, I<data> starts
-with a B<->.
-
-=back
-
-=back
-
-=over 4
-
-=item I<$widget>-E<gt>B<clipboardGet>( ?-type? );
-
-Retrieve data from the clipboard on I<widget>'s display.
-I<-type> specifies the form in which the data is
-to be returned and should be an atom name such as STRING or
-FILE_NAME. Type defaults to STRING. This command is equivalent
-to C<SelectionGet( -selection =E<gt> 'CLIPBOARD' )>.
-
-=back
-
-=head1 KEYWORDS
-
-clear, format, clipboard, append, selection, type
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/CmdLine.pm b/Master/tlpkg/tlperl/lib/Tk/CmdLine.pm
deleted file mode 100644
index ebe43a7f1e2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/CmdLine.pm
+++ /dev/null
@@ -1,497 +0,0 @@
-package Tk::CmdLine; # -*-Perl-*-
-
-#/----------------------------------------------------------------------------//
-#/ Module: Tk/CmdLine.pm
-#/
-#/ Purpose:
-#/
-#/ Process standard X11 command line options and set initial resources.
-#/
-#/ Author: ???? Date: ????
-#/
-#/ History: SEE POD
-#/----------------------------------------------------------------------------//
-
-use vars qw($VERSION);
-$VERSION = '4.007'; # $Id: //depot/Tkutf8/Tk/CmdLine.pm#6 $
-
-use 5.004;
-
-use strict;
-
-use Config;
-
-my $OBJECT = undef; # define the current object
-
-#/----------------------------------------------------------------------------//
-#/ Constructor
-#/ Returns the object reference.
-#/----------------------------------------------------------------------------//
-
-sub new # Tk::CmdLine::new()
-{
- my $this = shift(@_);
- my $class = ref($this) || $this;
-
- my $name = 'pTk';
- $name = $1 if (($0 =~ m/(?:^|[\/\\])([\w-]+)(?:\.\w+)?$/) && ($1 ne '-e'));
-
- my $self = {
- name => $name,
- config => { -name => $name },
- options => {},
- methods => {},
- command => [],
- synchronous => 0,
- iconic => 0,
- motif => ($Tk::strictMotif || 0),
- resources => {} };
-
- return bless($self, $class);
-}
-
-#/----------------------------------------------------------------------------//
-#/ Process the arguments in a given array or in @ARGV.
-#/ Returns the object reference.
-#/----------------------------------------------------------------------------//
-
-sub Argument_ # Tk::CmdLine::Argument_($flag) # private method
-{
- my $self = shift(@_);
- my $flag = shift(@_);
- unless ($self->{offset} < @{$self->{argv}})
- {
- die 'Usage: ', $self->{name}, ' ... ', $flag, " <argument> ...\n";
- }
- return splice(@{$self->{argv}}, $self->{offset}, 1);
-}
-
-sub Config_ # Tk::CmdLine::Config_($flag, $name) # private method
-{
- my $self = shift(@_);
- my ($flag, $name) = @_;
- my $val = $self->Argument_($flag);
- push(@{$self->{command}}, $flag, $val);
- $self->{config}->{"-$name"} = $val;
-}
-
-sub Flag_ # Tk::CmdLine::Flag_($flag, $name) # private method
-{
- my $self = shift(@_);
- my ($flag, $name) = @_;
- push(@{$self->{command}}, $flag);
- $self->{$name} = 1;
-}
-
-sub Option_ # Tk::CmdLine::Option_($flag, $name) # private method
-{
- my $self = shift(@_);
- my ($flag, $name) = @_;
- my $val = $self->Argument_($flag);
- push(@{$self->{command}}, $flag, $val);
- $self->{options}->{"*$name"} = $val;
-}
-
-sub Method_ # Tk::CmdLine::Method_($flag, $name) # private method
-{
- my $self = shift(@_);
- my ($flag, $name) = @_;
- my $val = $self->Argument_($flag);
- push(@{$self->{command}}, $flag, $val);
- $self->{methods}->{$name} = $val;
-}
-
-sub Resource_ # Tk::CmdLine::Resource_($flag, $name) # private method
-{
- my $self = shift(@_);
- my ($flag, $name) = @_;
- my $val = $self->Argument_($flag);
- if ($val =~ /^([^!:\s]+)*\s*:\s*(.*)$/)
- {
- push(@{$self->{command}}, $flag, $val);
- $self->{options}->{$1} = $2;
- }
-}
-
-my %Method = (
- background => 'Option_',
- bg => 'background', # alias
- class => 'Config_',
- display => 'screen', # alias
- fg => 'foreground', # alias
- fn => 'font', # alias
- font => 'Option_',
- foreground => 'Option_',
- geometry => 'Method_',
- iconic => 'Flag_',
- iconposition => 'Method_',
- motif => 'Flag_',
- name => 'Config_',
- screen => 'Config_',
- synchronous => 'Flag_',
- title => 'Config_',
- xrm => 'Resource_'
-);
-
-sub SetArguments # Tk::CmdLine::SetArguments([@argument])
-{
- my $self = (@_ # define the object as necessary
- ? ((ref($_[0]) eq __PACKAGE__)
- ? shift(@_)
- : (($_[0] eq __PACKAGE__) ? shift(@_) : 1) && ($OBJECT ||= __PACKAGE__->new()))
- : ($OBJECT ||= __PACKAGE__->new()));
- $OBJECT = $self; # update the current object
- $self->{argv} = (@_ ? [ @_ ] : \@ARGV);
- $self->{offset} = 0; # its existence will denote that this method has been called
-
- my @option = ();
-
- while ($self->{offset} < @{$self->{argv}})
- {
- last if ($self->{argv}->[$self->{offset}] eq '--');
- unless (
- (($self->{argv}->[$self->{offset}] =~ /^-{1,2}(\w+)$/) && (@option = $1)) ||
- (($self->{argv}->[$self->{offset}] =~ /^--(\w+)=(.*)$/) && (@option = ($1, $2))))
- {
- ++$self->{offset};
- next;
- }
-
- next if (!exists($Method{$option[0]}) && ++$self->{offset});
-
- $option[0] = $Method{$option[0]} if exists($Method{$Method{$option[0]}});
-
- my $method = $Method{$option[0]};
-
- if (@option > 1) # replace --<option>=<value> with <value>
- {
- $self->{argv}->[$self->{offset}] = $option[1];
- }
- else # remove the argument
- {
- splice(@{$self->{argv}}, $self->{offset}, 1);
- }
-
- $self->$method(('-' . $option[0]), $option[0]);
- }
-
- $self->{config}->{-class} ||= ucfirst($self->{config}->{-name});
-
- delete($self->{argv}); # no longer needed
-
- return $self;
-}
-
-use vars qw(&process); *process = \&SetArguments; # alias to keep old code happy
-
-#/----------------------------------------------------------------------------//
-#/ Get a list of the arguments that have been processed by SetArguments().
-#/ Returns an array.
-#/----------------------------------------------------------------------------//
-
-sub GetArguments # Tk::CmdLine::GetArguments()
-{
- my $self = (@_ # define the object as necessary
- ? ((ref($_[0]) eq __PACKAGE__)
- ? shift(@_)
- : (($_[0] eq __PACKAGE__) ? shift(@_) : 1) && ($OBJECT ||= __PACKAGE__->new()))
- : ($OBJECT ||= __PACKAGE__->new()));
- $OBJECT = $self; # update the current object
-
- $self->SetArguments() unless exists($self->{offset}); # set arguments if not yet done
-
- return @{$self->{command}};
-}
-
-#/----------------------------------------------------------------------------//
-#/ Get the value of a configuration option (default: -class).
-#/ Returns the option value.
-#/----------------------------------------------------------------------------//
-
-sub cget # Tk::CmdLine::cget([$option])
-{
- my $self = (@_ # define the object as necessary
- ? ((ref($_[0]) eq __PACKAGE__)
- ? shift(@_)
- : (($_[0] eq __PACKAGE__) ? shift(@_) : 1) && ($OBJECT ||= __PACKAGE__->new()))
- : ($OBJECT ||= __PACKAGE__->new()));
- $OBJECT = $self; # update the current object
- my $option = shift(@_) || '-class';
-
- $self->SetArguments() unless exists($self->{offset}); # set arguments if not yet done
-
- return (exists($self->{config}->{$option}) ? $self->{config}->{$option} : undef);
-}
-
-#/----------------------------------------------------------------------------//
-
-sub CreateArgs # Tk::CmdLine::CreateArgs()
-{
- my $self = (@_ # define the object as necessary
- ? ((ref($_[0]) eq __PACKAGE__)
- ? shift(@_)
- : (($_[0] eq __PACKAGE__) ? shift(@_) : 1) && ($OBJECT ||= __PACKAGE__->new()))
- : ($OBJECT ||= __PACKAGE__->new()));
- $OBJECT = $self; # update the current object
-
- $self->SetArguments() unless exists($self->{offset}); # set arguments if not yet done
-
- return $self->{config};
-}
-
-#/----------------------------------------------------------------------------//
-
-sub Tk::MainWindow::apply_command_line
-{
- my $mw = shift(@_);
-
- my $self = ($OBJECT ||= __PACKAGE__->new());
-
- $self->SetArguments() unless exists($self->{offset}); # set arguments if not yet done
-
- foreach my $priority (keys(%{$self->{resources}}))
- {
- foreach my $resource (@{$self->{resources}->{$priority}})
- {
- $mw->optionAdd(@{$resource}, $priority);
- }
- }
-
- foreach my $key (keys(%{$self->{options}}))
- {
- $mw->optionAdd($key => $self->{options}->{$key}, 'interactive');
- }
-
- foreach my $key (keys(%{$self->{methods}}))
- {
- $mw->$key($self->{methods}->{$key});
- }
-
- if ($self->{methods}->{geometry})
- {
- if ($self->{methods}->{geometry} =~ /[+-]\d+[+-]\d+/)
- {
- $mw->positionfrom('user');
- }
- if ($self->{methods}->{geometry} =~ /\d+x\d+/)
- {
- $mw->sizefrom('user');
- }
- delete $self->{methods}->{geometry}; # XXX needed?
- }
-
- $mw->Synchronize() if $self->{synchronous};
-
- if ($self->{iconic})
- {
- $mw->iconify();
- $self->{iconic} = 0;
- }
-
- $Tk::strictMotif = ($self->{motif} || 0);
-
- # Both these are needed to reliably save state
- # but 'hostname' is tricky to do portably.
- # $mw->client(hostname());
- $mw->protocol('WM_SAVE_YOURSELF' => ['WMSaveYourself',$mw]);
- $mw->command([ $self->{name}, @{$self->{command}} ]);
-}
-
-#/----------------------------------------------------------------------------//
-#/ Set the initial resources.
-#/ Returns the object reference.
-#/----------------------------------------------------------------------------//
-
-sub SetResources # Tk::CmdLine::SetResources((\@resource | $resource) [, $priority])
-{
- my $self = (@_ # define the object as necessary
- ? ((ref($_[0]) eq __PACKAGE__)
- ? shift(@_)
- : (($_[0] eq __PACKAGE__) ? shift(@_) : 1) && ($OBJECT ||= __PACKAGE__->new()))
- : ($OBJECT ||= __PACKAGE__->new()));
- $OBJECT = $self; # update the current object
-
- $self->SetArguments() unless exists($self->{offset}); # set arguments if not yet done
- return $self unless @_;
-
- my $data = shift(@_);
- my $priority = shift(@_) || 'userDefault';
-
- $self->{resources}->{$priority} = [] unless exists($self->{resources}->{$priority});
-
- foreach my $resource ((ref($data) eq 'ARRAY') ? @{$data} : $data)
- {
- if (ref($resource) eq 'ARRAY') # resources in [ <pattern>, <value> ] format
- {
- push(@{$self->{resources}->{$priority}}, [ @{$resource} ])
- if (@{$resource} == 2);
- }
- else # resources in resource file format
- {
- push(@{$self->{resources}->{$priority}}, [ $1, $2 ])
- if ($resource =~ /^([^!:\s]+)*\s*:\s*(.*)$/);
- }
- }
-
- return $self;
-}
-
-#/----------------------------------------------------------------------------//
-#/ Load initial resources from one or more files (default: $XFILESEARCHPATH with
-#/ priority 'startupFile' and $XUSERFILESEARCHPATH with priority 'userDefault').
-#/ Returns the object reference.
-#/----------------------------------------------------------------------------//
-
-sub LoadResources # Tk::CmdLine::LoadResources([%options])
-{
- my $self = (@_ # define the object as necessary
- ? ((ref($_[0]) eq __PACKAGE__)
- ? shift(@_)
- : (($_[0] eq __PACKAGE__) ? shift(@_) : 1) && ($OBJECT ||= __PACKAGE__->new()))
- : ($OBJECT ||= __PACKAGE__->new()));
- $OBJECT = $self; # update the current object
-
- $self->SetArguments() unless exists($self->{offset}); # set arguments if not yet done
-
- my %options = @_;
-
- my @file = ();
- my $echo = (exists($options{-echo})
- ? (defined($options{-echo}) ? $options{-echo} : \*STDOUT) : undef);
-
- unless (%options && (exists($options{-file}) || exists($options{-symbol})))
- {
- @file = (
- { -symbol => 'XFILESEARCHPATH', -priority => 'startupFile' },
- { -symbol => 'XUSERFILESEARCHPATH', -priority => 'userDefault' } );
- }
- else
- {
- @file = { %options };
- }
-
- my $delimiter = (($^O eq 'MSWin32') ? ';' : ':');
-
- foreach my $file (@file)
- {
- my $fileSpec = $file->{-spec} = undef;
- if (exists($file->{-symbol}))
- {
- my $xpath = undef;
- if ($file->{-symbol} eq 'XUSERFILESEARCHPATH')
- {
- $file->{-priority} ||= 'userDefault';
- foreach my $symbol (qw(XUSERFILESEARCHPATH XAPPLRESDIR HOME))
- {
- last if (exists($ENV{$symbol}) && ($xpath = $ENV{$symbol}));
- }
- next unless defined($xpath);
- }
- else
- {
- $file->{-priority} ||= (($file->{-symbol} eq 'XFILESEARCHPATH')
- ? 'startupFile' : 'userDefault');
- next unless (
- exists($ENV{$file->{-symbol}}) && ($xpath = $ENV{$file->{-symbol}}));
- }
-
- unless (exists($self->{translation}))
- {
- $self->{translation} = {
- '%l' => '', # ignored
- '%C' => '', # ignored
- '%S' => '', # ignored
- '%L' => ($ENV{LANG} || 'C'), # language
- '%T' => 'app-defaults', # type
- '%N' => $self->{config}->{-class} # filename
- };
- }
-
- my @postfix = map({ $_ . '/' . $self->{config}->{-class} }
- ('/' . $self->{translation}->{'%L'}), '');
-
- ITEM: foreach $fileSpec (split($Config{path_sep}, $xpath))
- {
- if ($fileSpec =~ s/(%[A-Za-z])/$self->{translation}->{$1}/g) # File Pattern
- {
- if (defined($echo) && ($file->{-symbol} ne 'XFILESEARCHPATH'))
- {
- print $echo 'Checking ', $fileSpec, "\n";
- }
- next unless ((-f $fileSpec) && (-r _) && (-s _));
- $file->{-spec} = $fileSpec;
- last;
- }
- else # Directory - Check for <Directory>/$LANG/<Class>, <Directory>/<CLASS>
- {
- foreach my $postfix (@postfix)
- {
- my $fileSpec2 = $fileSpec . $postfix;
- if (defined($echo) && ($file->{-symbol} ne 'XFILESEARCHPATH'))
- {
- print $echo 'Checking ', $fileSpec2, "\n";
- }
- next unless ((-f $fileSpec2) && (-r _) && (-s _));
- $file->{-spec} = $fileSpec2;
- last ITEM;
- }
- }
- }
- }
- elsif (exists($file->{-file}) && ($fileSpec = $file->{-file}))
- {
- print $echo 'Checking ', $fileSpec, "\n" if defined($echo);
- next unless ((-f $fileSpec) && (-r _) && (-s _));
- $file->{-spec} = $fileSpec;
- }
- }
-
- foreach my $file (@file)
- {
- next unless defined($file->{-spec});
- local *SPEC;
- next unless open(SPEC,$file->{-spec});
- print $echo ' Loading ', $file->{-spec}, "\n" if defined($echo);
-
- my $resource = undef;
- my @resource = ();
- my $continuation = 0;
-
- while (defined(my $line = <SPEC>))
- {
- chomp($line);
- next if ($line =~ /^\s*$/); # skip blank lines
- next if ($line =~ /^\s*!/); # skip comments
- $continuation = ($line =~ s/\s*\\$/ /); # search for trailing backslash
- unless (defined($resource)) # it is the first line
- {
- $resource = $line;
- }
- else # it is a continuation line
- {
- $line =~ s/^\s*//; # remove leading whitespace
- $resource .= $line;
- }
- next if $continuation;
- push(@resource, [ $1, $2 ]) if ($resource =~ /^([^:\s]+)*\s*:\s*(.*)$/);
- $resource = undef;
- }
-
- close(SPEC);
-
- if (defined($resource)) # special case - EOF after line with trailing backslash
- {
- push(@resource, [ $1, $2 ]) if ($resource =~ /^([^:\s]+)*\s*:\s*(.*)$/);
- }
-
- $self->SetResources(\@resource, $file->{-priority}) if @resource;
- }
-
- return $self;
-}
-
-#/----------------------------------------------------------------------------//
-
-1;
-
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/CmdLine.pod b/Master/tlpkg/tlperl/lib/Tk/CmdLine.pod
deleted file mode 100644
index 58b69fded17..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/CmdLine.pod
+++ /dev/null
@@ -1,454 +0,0 @@
-=head1 NAME
-
-Tk::CmdLine - Process standard X11 command line options and set initial resources
-
-=for pm Tk/CmdLine.pm
-
-=for category Creating and Configuring Widgets
-
-=head1 SYNOPSIS
-
- Tk::CmdLine::SetArguments([@argument]);
-
- my $value = Tk::CmdLine::cget([$option]);
-
- Tk::CmdLine::SetResources((\@resource | $resource) [, $priority]);
-
- Tk::CmdLine::LoadResources(
- [ -symbol => $symbol ]
- [ -file => $fileSpec ]
- [ -priority => $priority ]
- [ -echo => $fileHandle ] );
-
-=head1 DESCRIPTION
-
-Process standard X11 command line options and set initial resources.
-
-The X11R5 man page for X11 says: "Most X programs attempt to use the same names
-for command line options and arguments. All applications written with the
-X Toolkit Intrinsics automatically accept the following options: ...".
-This module processes these command line options for perl/Tk applications
-using the C<SetArguments>() function.
-
-This module can optionally be used to load initial resources explicitly via
-function C<SetResources>(), or from specified files (default: the standard X11
-application-specific resource files) via function C<LoadResources>().
-
-=head2 Command Line Options
-
-=over 4
-
-=item B<-background> I<Color> | B<-bg> I<Color>
-
-Specifies the color to be used for the window background.
-
-=item B<-class> I<Class>
-
-Specifies the class under which resources for the application should be found.
-This option is useful in shell aliases to distinguish between invocations
-of an application, without resorting to creating links to alter the executable
-file name.
-
-=item B<-display> I<Display> | B<-screen> I<Display>
-
-Specifies the name of the X server to be used.
-
-=item B<-font> I<Font> | B<-fn> I<Font>
-
-Specifies the font to be used for displaying text.
-
-=item B<-foreground> I<Color> | B<-fg> I<Color>
-
-Specifies the color to be used for text or graphics.
-
-=item B<-geometry> I<Geometry>
-
-Specifies the initial size and location of the I<first>
-L<MainWindow|Tk::MainWindow>.
-
-=item B<-iconic>
-
-Indicates that the user would prefer that the application's windows initially
-not be visible as if the windows had been immediately iconified by the user.
-Window managers may choose not to honor the application's request.
-
-=item B<-motif>
-
-Specifies that the application should adhere as closely as possible to Motif
-look-and-feel standards. For example, active elements such as buttons and
-scrollbar sliders will not change color when the pointer passes over them.
-
-=item B<-name> I<Name>
-
-Specifies the name under which resources for the application should be found.
-This option is useful in shell aliases to distinguish between invocations
-of an application, without resorting to creating links to alter the executable
-file name.
-
-=item B<-synchronous>
-
-Indicates that requests to the X server should be sent synchronously, instead of
-asynchronously. Since Xlib normally buffers requests to the server, errors do
-do not necessarily get reported immediately after they occur. This option turns
-off the buffering so that the application can be debugged. It should never
-be used with a working program.
-
-=item B<-title> I<TitleString>
-
-This option specifies the title to be used for this window. This information is
-sometimes used by a window manager to provide some sort of header identifying
-the window.
-
-=item B<-xrm> I<ResourceString>
-
-Specifies a resource pattern and value to override any defaults. It is also
-very useful for setting resources that do not have explicit command line
-arguments.
-
-The I<ResourceString> is of the form E<lt>I<pattern>E<gt>:E<lt>I<value>E<gt>,
-that is (the first) ':' is used to determine which part is pattern and which
-part is value. The (E<lt>I<pattern>E<gt>, E<lt>I<value>E<gt>) pair is entered
-into the options database with B<optionAdd> (for each
-L<MainWindow|Tk::MainWindow> configured), with I<interactive> priority.
-
-=back
-
-=head2 Initial Resources
-
-There are several mechanism for initializing the resource database to be used
-by an X11 application. Resources may be defined in a $C<HOME>/.Xdefaults file,
-a system application defaults file (e.g.
-/usr/lib/X11/app-defaults/E<lt>B<CLASS>E<gt>),
-or a user application defaults file (e.g. $C<HOME>/E<lt>B<CLASS>E<gt>).
-The Tk::CmdLine functionality for setting initial resources concerns itself
-with the latter two.
-
-Resource files contain data lines of the form
-E<lt>I<pattern>E<gt>:E<lt>I<value>E<gt>.
-They may also contain blank lines and comment lines (denoted
-by a ! character as the first non-blank character). Refer to L<option|Tk::option>
-for a description of E<lt>I<pattern>E<gt>:E<lt>I<value>E<gt>.
-
-=over 4
-
-=item System Application Defaults Files
-
-System application defaults files may be specified via environment variable
-$C<XFILESEARCHPATH> which, if set, contains a list of file patterns
-(joined using the OS-dependent path delimiter, e.g. colon on B<UNIX>).
-
-=item User Application Defaults Files
-
-User application defaults files may be specified via environment variables
-$C<XUSERFILESEARCHPATH>, $C<XAPPLRESDIR> or $C<HOME>.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item B<SetArguments> - Tk::CmdLine::SetArguments([@argument])
-
-Extract the X11 options contained in a specified array (@ARGV by default).
-
- Tk::CmdLine::SetArguments([@argument])
-
-The X11 options may be specified using a single dash I<-> as per the X11
-convention, or using two dashes I<--> as per the POSIX standard (e.g.
-B<-geometry> I<100x100>, B<-geometry> I<100x100> or B<-geometry=>I<100x100>).
-The options may be interspersed with other options or arguments.
-A I<--> by itself terminates option processing.
-
-By default, command line options are extracted from @ARGV the first time
-a MainWindow is created. The Tk::MainWindow constructor indirectly invokes
-C<SetArguments>() to do this.
-
-=item B<GetArguments> - Tk::CmdLine::GetArguments()
-
-Get a list of the X11 options that have been processed by C<SetArguments>().
-(C<GetArguments>() first invokes C<SetArguments>() if it has not already been invoked.)
-
-=item B<cget> - Tk::CmdLine::cget([$option])
-
-Get the value of a configuration option specified via C<SetArguments>().
-(C<cget>() first invokes C<SetArguments>() if it has not already been invoked.)
-
- Tk::CmdLine::cget([$option])
-
-The valid options are: B<-class>, B<-name>, B<-screen> and B<-title>.
-If no option is specified, B<-class> is implied.
-
-A typical use of C<cget>() might be to obtain the application class in order
-to define the name of a resource file to be loaded in via C<LoadResources>().
-
- my $class = Tk::CmdLine::cget(); # process command line and return class
-
-=item B<SetResources> - Tk::CmdLine::SetResources((\@resource | $resource) [, $priority])
-
-Set the initial resources.
-
- Tk::CmdLine::SetResources((\@resource | $resource) [, $priority])
-
-A single resource may be specified using a string of the form
-'E<lt>I<pattern>E<gt>:E<lt>I<value>E<gt>'. Multiple resources may be specified
-by passing an array reference whose elements are either strings of the above
-form, and/or anonymous arrays of the form [ E<lt>I<pattern>E<gt>,
-E<lt>I<value>E<gt> ]. The optional second argument specifies the priority,
-as defined in L<option|Tk::option>, to be associated with the resources
-(default: I<userDefault>).
-
-Note that C<SetResources>() first invokes C<SetArguments>() if it has not already
-been invoked.
-
-=item B<LoadResources> - Tk::CmdLine::LoadResources([%options])
-
-Load initial resources from one or more files.
-
- Tk::CmdLine::LoadResources(
- [ -symbol => $symbol ]
- [ -file => $fileSpec ]
- [ -priority => $priority ]
- [ -echo => $fileHandle ] );
-
-[ B<-symbol> =E<gt> $symbol ] specifies the name of an environment variable
-that, if set, defines a list of one or more directories and/or file patterns
-(joined using the OS-dependent path delimiter, e.g. colon on B<UNIX>).
-$C<XUSERFILESEARCHPATH> is a special case.
-If $C<XUSERFILESEARCHPATH> is not set, $C<XAPPLRESDIR> is checked instead.
-If $C<XAPPLRESDIR> is not set, $C<HOME> is checked instead.
-
-An item is identified as a file pattern if it contains one or more /%[A-Za-z]/
-patterns. Only patterns B<%L>, B<%T> and B<%N> are currently recognized. All
-others are replaced with the null string. Pattern B<%L> is translated into
-$C<LANG>. Pattern B<%T> is translated into I<app-defaults>. Pattern B<%N> is
-translated into the application class name.
-
-Each file pattern, after substitutions are applied, is assumed to define a
-FileSpec to be examined.
-
-When a directory is specified, FileSpecs
-E<lt>B<DIRECTORY>E<gt>/E<lt>B<LANG>E<gt>/E<lt>B<CLASS>E<gt>
-and E<lt>B<DIRECTORY>E<gt>/E<lt>B<CLASS>E<gt> are defined, in that order.
-
-[ B<-file> =E<gt> $fileSpec ] specifies a resource file to be loaded in.
-The file is silently skipped if if does not exist, or if it is not readable.
-
-[ B<-priority> =E<gt> $priority ] specifies the priority, as defined in
-L<option|Tk::option>, to be associated with the resources
-(default: I<userDefault>).
-
-[ B<-echo> =E<gt> $fileHandle ] may be used to specify that a line should be
-printed to the corresponding FileHandle (default: \*STDOUT) everytime a file
-is examined / loaded.
-
-If no B<-symbol> or B<-file> options are specified, C<LoadResources>()
-processes symbol $C<XFILESEARCHPATH> with priority I<startupFile> and
-$C<XUSERFILESEARCHPATH> with priority I<userDefault>.
-(Note that $C<XFILESEARCHPATH> and $C<XUSERFILESEARCHPATH> are supposed to
-contain only patterns. $C<XAPPLRESDIR> and $C<HOME> are supposed to be a single
-directory. C<LoadResources>() does not check/care whether this is the case.)
-
-For each set of FileSpecs, C<LoadResources>() examines each FileSpec to
-determine if the file exists and is readable. The first file that meets this
-criteria is read in and C<SetResources>() is invoked.
-
-Note that C<LoadResources>() first invokes C<SetArguments>() if it has not already
-been invoked.
-
-=back
-
-=head1 NOTES
-
-This module is an object-oriented module whose methods can be invoked as object
-methods, class methods or regular functions. This is accomplished via an
-internally-maintained object reference which is created as necessary, and which
-always points to the last object used. C<SetArguments>(), C<SetResources>() and
-C<LoadResources>() return the object reference.
-
-=head1 EXAMPLES
-
-=over
-
-=item 1
-
-@ARGV is processed by Tk::CmdLine at MainWindow creation.
-
- use Tk;
-
- # <Process @ARGV - ignoring all X11-specific options>
-
- my $mw = MainWindow->new();
-
- MainLoop();
-
-=item 2
-
-@ARGV is processed by Tk::CmdLine before MainWindow creation.
-An @ARGV of (--geometry=100x100 -opt1 a b c -bg red)
-is equal to (-opt1 a b c) after C<SetArguments>() is invoked.
-
- use Tk;
-
- Tk::CmdLine::SetArguments(); # Tk::CmdLine->SetArguments() works too
-
- # <Process @ARGV - not worrying about X11-specific options>
-
- my $mw = MainWindow->new();
-
- MainLoop();
-
-=item 3
-
-Just like 2) except that default arguments are loaded first.
-
- use Tk;
-
- Tk::CmdLine::SetArguments(qw(-name test -iconic));
- Tk::CmdLine::SetArguments();
-
- # <Process @ARGV - not worrying about X11-specific options>
-
- my $mw = MainWindow->new();
-
- MainLoop();
-
-=item 4
-
-@ARGV is processed by Tk::CmdLine before MainWindow creation.
-Standard resource files are loaded in before MainWindow creation.
-
- use Tk;
-
- Tk::CmdLine::SetArguments();
-
- # <Process @ARGV - not worrying about X11-specific options>
-
- Tk::CmdLine::LoadResources();
-
- my $mw = MainWindow->new();
-
- MainLoop();
-
-=item 5
-
-@ARGV is processed by Tk::CmdLine before MainWindow creation.
-Standard resource files are loaded in before MainWindow creation
-using non-default priorities.
-
- use Tk;
-
- Tk::CmdLine::SetArguments();
-
- # <Process @ARGV - not worrying about X11-specific options>
-
- Tk::CmdLine::LoadResources(-echo => \*STDOUT,
- -priority => 65, -symbol => 'XFILESEARCHPATH' );
- Tk::CmdLine::LoadResources(-echo => \*STDOUT,
- -priority => 75, -symbol => 'XUSERFILESEARCHPATH' );
-
- my $mw = MainWindow->new();
-
- MainLoop();
-
-=item 6
-
-@ARGV is processed by Tk::CmdLine before MainWindow creation.
-Standard resource files are loaded in before MainWindow creation.
-Individual resources are also loaded in before MainWindow creation.
-
- use Tk;
-
- Tk::CmdLine::SetArguments();
-
- # <Process @ARGV - not worrying about X11-specific options>
-
- Tk::CmdLine::LoadResources();
-
- Tk::CmdLine::SetResources( # set a single resource
- '*Button*background: red',
- 'widgetDefault' );
-
- Tk::CmdLine::SetResources( # set multiple resources
- [ '*Button*background: red', '*Button*foreground: blue' ],
- 'widgetDefault' );
-
- my $mw = MainWindow->new();
-
- MainLoop();
-
-=back
-
-=head1 ENVIRONMENT
-
-=over 4
-
-=item B<HOME> (optional)
-
-Home directory which may contain user application defaults files as
-$C<HOME>/$C<LANG>/E<lt>B<CLASS>E<gt> or $C<HOME>/E<lt>B<CLASS>E<gt>.
-
-=item B<LANG> (optional)
-
-The current language (default: I<C>).
-
-=item B<XFILESEARCHPATH> (optional)
-
-List of FileSpec patterns
-(joined using the OS-dependent path delimiter, e.g. colon on B<UNIX>)
-used in defining system application defaults files.
-
-=item B<XUSERFILESEARCHPATH> (optional)
-
-List of FileSpec patterns
-(joined using the OS-dependent path delimiter, e.g. colon on B<UNIX>)
-used in defining user application defaults files.
-
-=item B<XAPPLRESDIR> (optional)
-
-Directory containing user application defaults files as
-$C<XAPPLRESDIR>/$C<LANG>/E<lt>B<CLASS>E<gt> or
-$C<XAPPLRESDIR>/E<lt>B<CLASS>E<gt>.
-
-=back
-
-=head1 SEE ALSO
-
-L<MainWindow|Tk::MainWindow>
-L<option|Tk::option>
-
-=head1 HISTORY
-
-=over 4
-
-=item *
-
-1999.03.04 Ben Pavon E<lt>ben.pavon@hsc.hac.comE<gt>
-
-Rewritten as an object-oriented module.
-
-Allow one to process command line options in a specified array (@ARGV by default).
-Eliminate restrictions on the format and location of the options within the array
-(previously the X11 options could not be specified in POSIX format and had to be
-at the beginning of the array).
-
-Added the C<SetResources>() and C<LoadResources>() functions to allow the definition
-of resources prior to MainWindow creation.
-
-=item *
-
-2000.08.31 Ben Pavon E<lt>ben.pavon@hsc.hac.comE<gt>
-
-Added the C<GetArguments>() method which returns the list of arguments that
-have been processed by C<SetArguments>().
-
-Modified C<LoadResources>() to split the symbols using the OS-dependent
-path delimiter defined in the B<Config> module.
-
-Modified C<LoadResources>() to eliminate a warning message when processing
-patterns B<%l>, B<%C>, B<%S>.
-
-=back
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/ColorDialog.pm b/Master/tlpkg/tlperl/lib/Tk/ColorDialog.pm
deleted file mode 100755
index 7b62eeca356..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ColorDialog.pm
+++ /dev/null
@@ -1,58 +0,0 @@
-package Tk::ColorDialog;
-require Tk::Toplevel;
-use base qw(Tk::Toplevel);
-
-use vars qw($VERSION);
-$VERSION = '4.014';
-
-Construct Tk::Widget 'ColorDialog';
-
-sub Accept
-{
- my $cw = shift;
- $cw->withdraw;
- $cw->{'done'} = 1;
-}
-
-sub Cancel
-{
- my $cw = shift;
-# $cw->configure(-color => undef);
- $cw->configure(-color => 'cancel');
- $cw->Accept;
-}
-
-sub Populate
-{
- my ($cw,$args) = @_;
- $cw->SUPER::Populate($args);
- $cw->protocol('WM_DELETE_WINDOW' => [ 'Cancel' => $cw ]);
- $cw->transient($cw->Parent->toplevel);
- $cw->withdraw;
- my $sel = $cw->ColorSelect;
- my $accept = $cw->Button(-text => 'Accept', -command => ['Accept', $cw]);
- my $cancel = $cw->Button(-text => 'Cancel', -command => ['Cancel', $cw]);
- Tk::grid($sel);
- Tk::grid($accept,$cancel);
- $cw->ConfigSpecs(DEFAULT => [$sel]);
-}
-
-sub Show
-{
- my $cw = shift;
- $cw->configure(@_) if @_;
- $cw->Popup();
- $cw->OnDestroy(sub { $cw->{'done'} = 0 }); # auto-cancel
- $cw->waitVariable(\$cw->{'done'});
- if (Tk::Exists($cw))
- {
- $cw->withdraw;
- $cw->cget('-color');
- }
- else
- {
- undef;
- }
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/ColorEdit.xpm b/Master/tlpkg/tlperl/lib/Tk/ColorEdit.xpm
deleted file mode 100644
index ef3474cd869..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ColorEdit.xpm
+++ /dev/null
@@ -1,58 +0,0 @@
-/* XPM */
-static char * ColorEditor_xpm[] = {
-"48 48 6 1",
-" c #0000FFFF0000",
-". c #FFFFFFFF0000",
-"X c #FFFF00000000",
-"o c #000000000000",
-"O c #0000FFFFFFFF",
-"+ c #00000000FFFF",
-" . . ......X..XXXXXXXXXXXXXXXX",
-" . .X.X. X...XX.XXXXXXXXXXX",
-" . . . ... ...XXXXXXXXXXXXXX",
-" . . .. .....XX.XXXXXXXXXXXX",
-" . .X.X...XXX..XXXXXXXXXXXX",
-" .. . ....X...X.XXXXXXXXX",
-" .. ..X.. . ..X..XXXXXXXX",
-" .... ..X.X..X.XXXXXXX",
-" ... .X. X...X...XX.XXX",
-" . .. ... XX...XXXX..XXXX",
-" ooo o ooo. . .. .X...X..X.XXXXX",
-" oo oo oo. . . . .......X.X.XX",
-" oo o oo . . .. ........XX.XXXX",
-" oo ooo oo ooo Xooo.oo..... X XX.X",
-" oo o oo oo o oo ooo o.. . X...X X",
-" oo oo oo oo oo oo .oo . X.X.....XX ",
-"O oo o oo oo oo oo oo oo. ... X..... .",
-"O O oo oo oo o oo ooo o. oo . ... .X..X",
-"O OOOooooO ooo ooo ooo oo ... ....... X ",
-" O OOO . . .. ... ..",
-"OOO OOOO OO O . .... . . .. .",
-" + O O O O .. .. . .",
-" O OOO OO . .. .... ",
-"OOOOO O OO . .. . ... ",
-"+OOOO OOOO OO O ... .. ..",
-" O+OO OO O . ",
-"OOOOOOOOoooooooOOOO ooo oo .... ",
-"OO++ OOO ooO OoOO oo oo oo .. ",
-"+OOOOOOOOooOOOo O O oo oo .",
-"++OOO +oo+oOO O oo oo ooo ooooo ooo ooo oo. ",
-"+OO O OOoooooO O o ooo oo oo o oo ooo o ",
-"++++ O OooOOoO Ooo Ooo oo oo oo oo oo ",
-"+++OOOO ooOOOoOOooOOooO oo oo oo oo oo ",
-"++++++ Ooo OOoOOooOooo ooo ooo o oo o oo ",
-"+++O+++oooooooOOOooOoooOooo ooo Oooo oo ",
-"++++++++O++OOOO O OOOOOOO ",
-"++O++++O+O+OOOOOOO O O OOOOOO O ",
-"+++O+++OOO+OO OOOO O OO O O O ",
-"++++++++O++O OO OO OO OOO OO O O ",
-"+++++++++++++ OOOOOO OOOO OO OO ",
-"+++++++++++++O+ +O OOOO OOO OOO OOO ",
-"++++++++++++++ OOOOO O OOOOOOOOOO ",
-"+++++++++++++ ++ OO +O OOOOO O O O ",
-"+++++++++++++++O+++O+O+O OOOOOOOOOO O ",
-"+++++++++++++O++++O++ O OOO O OOO OO ",
-"++++++++++++++++O+++O+O+OOOO OOOO O OO ",
-"+++++++++++++++++++O+++ +++O OOOOOO OO O ",
-"++++++++++++++++++++++ +++ O OOOOOOOOO "};
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/ColorEditor.pm b/Master/tlpkg/tlperl/lib/Tk/ColorEditor.pm
deleted file mode 100644
index 78f31fca4d4..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ColorEditor.pm
+++ /dev/null
@@ -1,317 +0,0 @@
-package Tk::ColorEditor;
-
-use vars qw($VERSION $SET_PALETTE);
-$VERSION = '4.014';
-
-use Tk qw(lsearch Ev);
-use Tk::Toplevel;
-use base qw(Tk::Toplevel);
-use Tk::widgets qw(Pixmap);
-Construct Tk::Widget 'ColorEditor';
-
-use Tk::Dialog;
-use Tk::Pretty;
-
-use Tk::ColorSelect ();
-use Tk::ColorDialog ();
-
-BEGIN { $SET_PALETTE = 'Set Palette' };
-
-use subs qw(color_space hsvToRgb rgbToHsv);
-
-# ColorEditor public methods.
-
-sub add_menu_item
-{
- my $objref = shift;
- my $value;
- foreach $value (@_)
- {
- if ($value eq 'SEP')
- {
- $objref->{'mcm2'}->separator;
- }
- else
- {
- $objref->{'mcm2'}->command( -label => $value,
- -command => [ 'configure', $objref, '-highlight' => $value ] );
- push @{$objref->{'highlight_list'}}, $value;
- }
- }
-}
-
-sub set_title
-{
- my ($w) = @_;
- my $t = $w->{Configure}{'-title'} || '' ;
- my $h = $w->{Configure}{'-highlight'} || '';
- $w->SUPER::title("$t $h Color Editor");
-}
-
-sub highlight
-{
- my ($w,$h) = @_;
- if (@_ > 1)
- {
- $w->{'update'}->configure( -text => "Apply $h Color" );
- my $state = ($h eq 'background') ? 'normal' : 'disabled';
- $w->{'palette'}->entryconfigure( $SET_PALETTE, -state => $state);
- $w->{'highlight'} = $h;
- $w->configure(-color => $w->Palette->{$h});
- $w->set_title;
- }
- return $w->{'highlight'};
-}
-
-sub title
-{
- my ($w,$val) = @_;
- $w->set_title if (@_ > 1);
- return $w->{Configure}{'-title'};
-}
-
-sub delete_menu_item
-{
- my $objref = shift;
- my $value;
- foreach $value (@_)
- {
- $objref->{'mcm2'}->delete($value);
- my $list_ord = $value =~ /\d+/ ? $value : lsearch($objref->{'highlight_list'}, $value);
- splice(@{$objref->{'highlight_list'}}, $list_ord, 1) if $list_ord != -1;
- }
-}
-
-sub delete_widgets {
-
- # Remove widgets from consideration by the color configurator.
- # $widgets_ref points to widgets previously added via `configure'.
-
- my($objref, $widgets_ref) = @_;
-
- my($i, $found, $r1, $r2, @wl) = (0, 0, 0, 0, @{$objref->cget(-widgets)});
- foreach $r1 (@{$widgets_ref}) {
- $i = -1;
- $found = 0;
- foreach $r2 (@wl) {
- $i++;
- next if $r1 != $r2;
- $found = 1;
- last;
- }
- splice(@wl, $i, 1) if $found;
- }
- $objref->configure(-widgets => [@wl]);
-
-} # end delete_widgets
-
-sub ApplyDefault
-{
- my($objref) = @_;
- my $cb = $objref->cget('-command');
- my $h;
- foreach $h (@{$objref->{'highlight_list'}})
- {
- next if $h =~ /TEAR_SEP|SEP/;
- $cb->Call($h);
- die unless (defined $cb);
- }
-}
-
-sub Populate
-{
-
- # ColorEditor constructor.
-
- my($cw, $args) = @_;
-
- $cw->SUPER::Populate($args);
- $cw->withdraw;
-
- my $color_space = 'hsb'; # rgb, cmy, hsb
- my(@highlight_list) = qw(
- TEAR_SEP
- foreground background SEP
- activeForeground activeBackground SEP
- highlightColor highlightBackground SEP
- selectForeground selectBackground SEP
- disabledForeground insertBackground selectColor troughColor
- );
-
- # Create the Usage Dialog;
-
- my $usage = $cw->Dialog( '-title' => 'ColorEditor Usage',
- -justify => 'left',
- -wraplength => '6i',
- -text => "The Colors menu allows you to:\n\nSelect a color attribute such as \"background\" that you wish to colorize. Click on \"Apply\" to update that single color attribute.\n\nSelect one of three color spaces. All color spaces display a color value as a hexadecimal number under the oval color swatch that can be directly supplied on widget commands.\n\nApply Tk's default color scheme to the application. Useful if you've made a mess of things and want to start over!\n\nChange the application's color palette. Make sure \"background\" is selected as the color attribute, find a pleasing background color to apply to all current and future application widgets, then select \"Set Palette\".",
- );
-
- # Create the menu bar at the top of the window for the File, Colors
- # and Help menubuttons.
-
- my $m0 = $cw->Frame(-relief => 'raised', -borderwidth => 2);
- $m0->pack(-side => 'top', -fill => 'x');
- my $mf = $m0->Menubutton(
- -text => 'File',
- -underline => 0,
- -bd => 1,
- -relief => 'raised',
- );
- $mf->pack(-side => 'left');
- my $close_command = [sub {shift->withdraw}, $cw];
- $mf->command(
- -label => 'Close',
- -underline => 0,
- -command => $close_command,
- -accelerator => 'Ctrl-w',
- );
- $cw->bind('<Control-Key-w>' => $close_command);
- $cw->protocol(WM_DELETE_WINDOW => $close_command);
-
- my $mc = $m0->Menubutton(
- -text => 'Colors',
- -underline => 0,
- -bd => 1,
- -relief => 'raised',
- );
- $mc->pack(-side => 'left');
- my $color_attributes = 'Color Attributes';
- $mc->cascade(-label => $color_attributes, -underline => 6);
- $mc->separator;
-
- $mc->command(
- -label => 'Apply Default Colors',
- -underline => 6,
- -command => ['ApplyDefault',$cw]
- );
- $mc->separator;
- $mc->command(
- -label => $SET_PALETTE,
- -underline => 0,
- -command => sub { $cw->setPalette($cw->cget('-color'))}
- );
-
- my $m1 = $mc->cget(-menu);
-
- my $mcm2 = $m1->Menu;
- $m1->entryconfigure($color_attributes, -menu => $mcm2);
- my $mh = $m0->Menubutton(
- -text => 'Help',
- -underline => 0,
- -bd => 1,
- -relief => 'raised',
- );
- $mh->pack(-side => 'right');
- $mh->command(
- -label => 'Usage',
- -underline => 0,
- -command => [sub {shift->Show}, $usage],
- );
-
- # Create the Apply button.
-
- my $bot = $cw->Frame(-relief => 'raised', -bd => 2);
- $bot->pack(-side => 'bottom', -fill =>'x');
- my $update = $bot->Button(
- -command => [
- sub {
- my ($objref) = @_;
- $objref->Callback(-command => ($objref->{'highlight'}, $objref->cget('-color')));
- $cw->{'done'} = 1;
- }, $cw,
- ],
- );
- $update->pack(-pady => 1, -padx => '0.25c');
-
- # Create the listbox that holds all of the color names in rgb.txt, if an
- # rgb.txt file can be found.
-
- my $middle = $cw->ColorSelect(-relief => 'raised', -borderwidth => 2);
- $middle->pack(-side => 'top', -fill => 'both');
- # Create the status window.
-
- my $status = $cw->Toplevel;
- $status->withdraw;
- $status->geometry('+0+0');
- my $status_l = $status->Label(-width => 50, -anchor => 'w');
- $status_l->pack(-side => 'top');
-
- $cw->{'highlight_list'} = [@highlight_list];
- $cw->{'mcm2'} = $mcm2;
-
- foreach (@highlight_list)
- {
- next if /^TEAR_SEP$/;
- $cw->add_menu_item($_);
- }
-
- $cw->{'updating'} = 0;
- $cw->{'pending'} = 0;
- $cw->{'Status'} = $status;
- $cw->{'Status_l'} = $status_l;
- $cw->{'update'} = $update;
- $cw->{'gwt_depth'} = 0;
- $cw->{'palette'} = $mc;
-
- my $pixmap = $cw->Pixmap('-file' => Tk->findINC('ColorEdit.xpm'));
- $cw->Icon(-image => $pixmap);
-
- $cw->ConfigSpecs(
- DEFAULT => [$middle],
- -widgets => ['PASSIVE', undef, undef,
- [$cw->parent->Descendants]],
- -display_status => ['PASSIVE', undef, undef, 0],
- '-title' => ['METHOD', undef, undef, ''],
- -command => ['CALLBACK', undef, undef, ['set_colors',$cw]],
- '-highlight' => ['METHOD', undef, undef, 'background'],
- -cursor => ['DESCENDANTS', 'cursor', 'Cursor', 'left_ptr'],
- );
-
-} # end Populate, ColorEditor constructor
-
-sub Show {
-
- my($objref, @args) = @_;
-
- Tk::ColorDialog::Show(@_);
-
-} # end show
-
-# ColorEditor default configurator procedure - can be redefined by the
-# application.
-
-sub set_colors {
-
- # Configure all the widgets in $widgets for attribute $type and color
- # $color. If $color is undef then reset all colors
- # to the Tk defaults.
-
- my($objref, $type, $color) = @_;
- my $display = $objref->cget('-display_status');
-
- $objref->{'Status'}->title("Configure $type");
- $objref->{'Status'}->deiconify if $display;
- my $widget;
- my $reset = !defined($color);
-
- foreach $widget (@{$objref->cget('-widgets')}) {
- if ($display) {
- $objref->{'Status_l'}->configure(
- -text => 'WIDGET: ' . $widget->PathName
- );
- $objref->update;
- }
- eval {local $SIG{'__DIE__'}; $color = ($widget->configure("-\L${type}"))[3]} if $reset;
- eval {local $SIG{'__DIE__'}; $widget->configure("-\L${type}" => $color)};
- }
-
- $objref->{'Status'}->withdraw if $display;
-
-} # end set_colors
-
-# ColorEditor private methods.
-
-1;
-
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/ColorEditor.pod b/Master/tlpkg/tlperl/lib/Tk/ColorEditor.pod
deleted file mode 100644
index 48e6477f3ef..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ColorEditor.pod
+++ /dev/null
@@ -1,120 +0,0 @@
-
-=head1 NAME
-
-Tk::ColorEditor - a general purpose Tk widget Color Editor
-
-=for pm Tk/ColorEditor.pm
-
-=for category Popups and Dialogs
-
-=head1 SYNOPSIS
-
- use Tk::ColorEditor;
-
- $cref = $mw->ColorEditor(-title => $title, -cursor => @cursor);
-
- $cref->Show;
-
-=head1 DESCRIPTION
-
-ColorEditor is implemented as an object with various methods, described
-below. First, create your ColorEditor object during program initialization
-(one should be sufficient), and then configure it by specifying a list of Tk
-widgets to colorize. When it's time to use the editor, invoke the Show()
-method.
-
-ColorEditor allows some customization: you may alter the color attribute
-menu by adding and/or deleting menu items and/or separators, turn the status
-window on or off, alter the configurator's list of color widgets, or even
-supply your own custom color configurator callback.
-
-=over 4
-
-=item 1.
-
-Call the constructor to create the editor object, which in turn returns a
-blessed reference to the new object:
-
- use Tk::ColorEditor;
-
- $cref = $mw->ColorEditor(
- -title => $title,
- -cursor => @cursor,
- );
-
- mw - a window reference, usually the result of a MainWindow->new
- call. As the default root of a widget tree, $mw and all
- descendant widgets at object-creation-time are configured
- by the default color configurator procedure. (You probably
- want to change this though or you might end up colorizing
- ColorEditor!)
- title - Toplevel title, default = ' '.
- cursor - a valid Tk '-cursor' specification (default is
- 'top_left_arrow'). This cursor is used over all ColorEditor
- "hot spots".
-
-=item 2.
-
-Invoke the configure() method to change editor characteristics:
-
- $cref->configure(-option => value, ..., -option-n => value-n);
-
- options:
- -command : a callback to a `set_colors' replacement.
- -widgets : a reference to a list of widget references
- for the color configurator.
- -display_status : TRUE IFF display the ColorEditor status
- window when applying colors.
- -add_menu_item : 'SEP', or a color attribute menu item.
- -delete_menu_item : 'SEP', a color attribute menu item, or color
- attribute menu ordinal.
-
- For example:
-
- $cref->configure(-delete_menu_item => 3,
- -delete_menu_item => 'disabledforeground',
- -add_menu_item => 'SEP',
- -add_menu_item => 'New color attribute',
- -widgets => [$ce, $qu, $f2b2],
- -widgets => [$f2->Descendants],
- -command => [\&my_special_configurator, some, args ]
- );
-
-=item 3.
-
-Invoke the Show() method on the editor object, say, by a button or menu press:
-
- $cref->Show;
-
-=item 4.
-
-The cget(-widgets) method returns a reference to a list of widgets that
-are colorized by the configurator. Typically, you add new widgets to
-this list and then use it in a subsequent configure() call to expand your
-color list.
-
- $cref->configure(
- -widgets => [
- @{$Filesystem_ref->cget(-widgets)}, @{$cref->cget(-widgets)},
- ]
- );
-
-=item 5.
-
-The delete_widgets() method expects a reference to a list of widgets which are
-then removed from the current color list.
-
- $cref->delete_widgets($OBJTABLE{$objname}->{'-widgets'})
-
-=back
-
-=head1 AUTHORS
-
-Stephen O. Lidie, Lehigh University Computing Center. 95/03/05
-lusol@Lehigh.EDU
-
-Many thanks to Guy Decoux (decoux@moulon.inra.fr) for doing the initial
-translation of tcolor.tcl to TkPerl, from which this code has been derived.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/ColorSelect.pm b/Master/tlpkg/tlperl/lib/Tk/ColorSelect.pm
deleted file mode 100755
index 385213e4363..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ColorSelect.pm
+++ /dev/null
@@ -1,414 +0,0 @@
-package Tk::ColorSelect; # XXX why is this the Tk::ColorSelect package?
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '4.014';
-
-use Tk qw(Ev);
-
-require Tk::Frame;
-
-use base qw(Tk::Frame);
-Construct Tk::Widget 'ColorSelect';
-
-sub Populate
-{
- my ($middle,$args) = @_;
- my($i, @a);
- my %seen_names;
- foreach $i ($middle->_rgbTxtPath) {
- local *FOO;
- next if ! open FOO, $i;
- my $middle_left = $middle->Frame;
- $middle_left->pack(
- -side => 'left',
- -padx => '0.25c',
- -pady => '0.25c',
- );
- my $names = $middle->Listbox(
- -width => 20,
- -height => 12,
- -relief => 'sunken',
- -borderwidth => 2,
- -exportselection => 0,
- );
- $middle->Advertise(Names => $names);
-
- $names->bind('<Double-1>' => [$middle,'color',Ev(['getSelected'])]);
-
- my $scroll = $middle->Scrollbar(
- -orient => 'vertical',
- -command => ['yview', $names],
- -relief => 'sunken',
- -borderwidth => 2,
- );
- $names->configure(-yscrollcommand => ['set',$scroll]);
- $names->pack(-in => $middle_left, -side => 'left');
- $scroll->pack(-in => $middle_left, -side => 'right', -fill => 'y');
-
- while(<FOO>) {
- chomp;
- next if /^!/;
- my @a = split;
- my $color = join(' ', @a[3 .. $#a]);
- my $hex;
- eval { $hex = $middle->Hex($color); };
- if ($@) {
- #print STDERR "unknown color: '$color'\n";
- if ($@ =~ /unknown color name "/) {
- next;
- } else {
- chomp $@;
- die $@;
- }
- }
- if (!exists($seen_names{$hex}) ||
- length($seen_names{$hex}) > length($color)) {
- $seen_names{$hex} = $color;
- $names->insert('end', $color);
- }
- }
- close FOO;
- last;
- }
-
- # Create the three scales for editing the color, and the entry for typing
- # in a color value.
-
- my $middle_middle = $middle->Frame;
- $middle_middle->pack(-side => 'left', -expand => 1, -fill => 'y');
- my $mcm1 = $middle_middle->Optionmenu(-variable => \$middle->{'color_space'},
- -command => [ $middle, 'color_space'],
- -relief => 'raised',
- -options => [ ['HSB color space' => 'hsb'],
- ['RGB color space' => 'rgb'],
- ['CMY color space' => 'cmy']]);
- $mcm1->pack(-side => 'top', -fill => 'x');
-
- my(@middle_middle, @label, @scale);
- $middle_middle[0] = $middle_middle->Frame;
- $middle_middle[1] = $middle_middle->Frame;
- $middle_middle[2] = $middle_middle->Frame;
- $middle_middle[3] = $middle_middle->Frame;
- $middle_middle[0]->pack(-side => 'top', -expand => 1);
- $middle_middle[1]->pack(-side => 'top', -expand => 1);
- $middle_middle[2]->pack(-side => 'top', -expand => 1);
- $middle_middle[3]->pack(-side => 'top', -expand => 1, -fill => 'x');
- $middle->{'Labels'} = ['zero','one','two'];
- foreach $i (0..2) {
- $label[$i] = $middle->Label(-textvariable => \$middle->{'Labels'}[$i]);
- $scale[$i] = $middle->Scale(
- -from => 0,
- -to => 1000,
- '-length' => '6c',
- -orient => 'horizontal',
- -command => [\&scale_changed, $middle],
- );
- $scale[$i]->pack(
- -in => $middle_middle[$i],
- -side => 'top',
- -anchor => 'w',
- );
- $label[$i]->pack(
- -in => $middle_middle[$i],
- -side => 'top',
- -anchor => 'w',
- );
- }
- my $nameLabel = $middle->Label(-text => 'Name:');
- $middle->{'Entry'} = '';
- my $name = $middle->Entry(
- -relief => 'sunken',
- -borderwidth => 2,
- -textvariable => \$middle->{'Entry'},
- -width => 10,
-# For some reason giving this font causes problems at end of t/create.t
-# -font => '-*-Courier-Medium-R-Normal--*-120-*-*-*-*-*-*'
- );
-
- $nameLabel->pack(-in => $middle_middle[3], -side => 'left');
- $name->pack(
- -in => $middle_middle[3],
- -side => 'right',
- -expand => 1,
- -fill => 'x',
- );
- $name->bind('<Return>' => [ $middle, 'color', Ev(['get'])]);
-
- # Create the color display swatch on the right side of the window.
-
- my $middle_right = $middle->Frame;
- $middle_right->pack(
- -side => 'left',
- -pady => '.25c',
- -padx => '.25c',
- -anchor => 's',
- );
- my $swatch = $middle->Canvas(
- -width => '2.5c',
- -height => '5c',
- );
- my $swatch_item = $swatch->create('oval', '.5c', '.3c', '2.26c', '4.76c');
-
- my $value = $middle->Label(
- -textvariable => \$middle->{'color'},
- -width => 13,
- -font => '-*-Courier-Medium-R-Normal--*-120-*-*-*-*-*-*'
- );
-
- $swatch->pack(
- -in => $middle_right,
- -side => 'top',
- -expand => 1,
- -fill => 'both',
- );
- $value->pack(-in => $middle_right, -side => 'bottom', -pady => '.25c');
-
- $middle->ConfigSpecs(
- '-color_space' => ['METHOD', undef, undef, 'hsb'],
- '-initialcolor' => '-color',
- '-color' => ['METHOD', 'background', 'Background',
- $middle->cget('-background')]
- );
-
- $middle->{'swatch'} = $swatch;
- $middle->{'swatch_item'} = $swatch_item;
- $middle->{'scale'} = [@scale];
- $middle->{'red'} = 0;
- $middle->{'blue'} = 0;
- $middle->{'green'} = 0;
-
-}
-
-sub _rgbTxtPath
-{
- require Tk::Config;
- my(@xlibpath) = map { s/^-L//; "$_/X11/rgb.txt" }
- split /\s+/, $Tk::Config::xlib;
- (
- @xlibpath,
- '/usr/local/lib/X11/rgb.txt',
- '/usr/lib/X11/rgb.txt',
- '/usr/X11R6/lib/X11/rgb.txt',
- '/usr/local/X11R5/lib/X11/rgb.txt',
- '/X11/R5/lib/X11/rgb.txt',
- '/X11/R4/lib/rgb/rgb.txt',
- '/usr/openwin/lib/X11/rgb.txt',
- '/usr/share/X11/rgb.txt', # This is the Debian location
- '/usr/X11/share/X11/rgb.txt', # seen on a Mac OS X 10.5.1 system
- '/usr/X11R6/share/X11/rgb.txt', # seen on a OpenBSD 4.2 system
- '/etc/X11R6/rgb.txt',
- '/etc/X11/rgb.txt', # seen on HP-UX 11.31
- );
-}
-
-sub Hex
-{
- my $w = shift;
- my @rgb = (@_ == 3) ? @_ : $w->rgb(@_);
- sprintf('#%04x%04x%04x',@rgb)
-}
-
-sub color_space {
-
- my($objref, $space) = @_;
-
- if (@_ > 1)
- {
- my %Labels = ( 'rgb' => [qw(Red Green Blue)],
- 'cmy' => [qw(Cyan Magenta Yellow)],
- 'hsb' => [qw(Hue Saturation Brightness)] );
-
- # The procedure below is invoked when a new color space is selected. It
- # changes the labels on the scales and re-loads the scales with the
- # appropriate values for the current color in the new color space
-
- $space = 'hsb' unless (exists $Labels{$space});
- my $i;
- for $i (0..2)
- {
- $objref->{'Labels'}[$i] = $Labels{$space}->[$i];
- }
- $objref->{'color_space'} = $space;
- $objref->afterIdle(['set_scales',$objref]) unless ($objref->{'pending'}++);
- }
- return $objref->{'color_space'};
-} # color_space
-
-sub hsvToRgb {
-
- # The procedure below converts an HSB value to RGB. It takes hue,
- # saturation, and value components (floating-point, 0-1.0) as arguments,
- # and returns a list containing RGB components (integers, 0-65535) as
- # result. The code here is a copy of the code on page 616 of
- # "Fundamentals of Interactive Computer Graphics" by Foley and Van Dam.
-
- my($hue, $sat, $value) = @_;
- my($v, $i, $f, $p, $q, $t);
-
- $v = int(65535 * $value);
- return ($v, $v, $v) if $sat == 0;
- $hue *= 6;
- $hue = 0 if $hue >= 6;
- $i = int($hue);
- $f = $hue - $i;
- $p = int(65535 * $value * (1 - $sat));
- $q = int(65535 * $value * (1 - ($sat * $f)));
- $t = int(65535 * $value * (1 - ($sat * (1 - $f))));
- return ($v, $t, $p) if $i == 0;
- return ($q, $v, $p) if $i == 1;
- return ($p, $v, $t) if $i == 2;
- return ($p, $q, $v) if $i == 3;
- return ($t, $p, $v) if $i == 4;
- return ($v, $p, $q) if $i == 5;
-
-} # end hsvToRgb
-
-sub color
-{
- my ($objref,$name) = @_;
- if (@_ > 1 && defined($name) && length($name))
- {
- if ($name eq 'cancel') {
- $objref->{color} = undef;
- return;
- }
- my ($format, $shift);
- my ($red, $green, $blue);
-
- if ($name !~ /^#/)
- {
- ($red, $green, $blue) = $objref->{'swatch'}->rgb($name);
- }
- else
- {
- my $len = length $name;
- if($len == 4) { $format = '#(.)(.)(.)'; $shift = 12; }
- elsif($len == 7) { $format = '#(..)(..)(..)'; $shift = 8; }
- elsif($len == 10) { $format = '#(...)(...)(...)'; $shift = 4; }
- elsif($len == 13) { $format = '#(....)(....)(....)'; $shift = 0; }
- else {
- $objref->BackTrace(
- "ColorEditor error: syntax error in color name \"$name\"");
- return;
- }
- ($red,$green,$blue) = $name =~ /$format/;
- # Looks like a call for 'pack' or similar rather than eval
- eval "\$red = 0x$red; \$green = 0x$green; \$blue = 0x$blue;";
- $red = $red << $shift;
- $green = $green << $shift;
- $blue = $blue << $shift;
- }
- $objref->{'red'} = $red;
- $objref->{'blue'} = $blue;
- $objref->{'green'} = $green;
- my $hex = sprintf('#%04x%04x%04x', $red, $green, $blue);
- $objref->{'color'} = $hex;
- $objref->{'Entry'} = $name;
- $objref->afterIdle(['set_scales',$objref]) unless ($objref->{'pending'}++);
- $objref->{'swatch'}->itemconfigure($objref->{'swatch_item'},
- -fill => $objref->{'color'});
- }
- return $objref->{'color'};
-}
-
-sub rgbToHsv {
-
- # The procedure below converts an RGB value to HSB. It takes red, green,
- # and blue components (0-65535) as arguments, and returns a list
- # containing HSB components (floating-point, 0-1) as result. The code
- # here is a copy of the code on page 615 of "Fundamentals of Interactive
- # Computer Graphics" by Foley and Van Dam.
-
- my($red, $green, $blue) = @_;
- my($max, $min, $sat, $range, $hue, $rc, $gc, $bc);
-
- $max = ($red > $green) ? (($blue > $red) ? $blue : $red) :
- (($blue > $green) ? $blue : $green);
- $min = ($red < $green) ? (($blue < $red) ? $blue : $red) :
- (($blue < $green) ? $blue : $green);
- $range = $max - $min;
- if ($max == 0) {
- $sat = 0;
- } else {
- $sat = $range / $max;
- }
- if ($sat == 0) {
- $hue = 0;
- } else {
- $rc = ($max - $red) / $range;
- $gc = ($max - $green) / $range;
- $bc = ($max - $blue) / $range;
- $hue = ($max == $red)?(0.166667*($bc - $gc)):
- (($max == $green)?(0.166667*(2 + $rc - $bc)):
- (0.166667*(4 + $gc - $rc)));
- }
- $hue += 1 if $hue < 0;
- return ($hue, $sat, $max/65535);
-
-} # end rgbToHsv
-
-sub scale_changed {
-
- # The procedure below is invoked when one of the scales is adjusted. It
- # propagates color information from the current scale readings to
- # everywhere else that it is used.
-
- my($objref) = @_;
-
- return if $objref->{'updating'};
- my ($red, $green, $blue);
-
- if($objref->{'color_space'} eq 'rgb') {
- $red = int($objref->{'scale'}->[0]->get * 65.535 + 0.5);
- $green = int($objref->{'scale'}->[1]->get * 65.535 + 0.5);
- $blue = int($objref->{'scale'}->[2]->get * 65.535 + 0.5);
- } elsif($objref->{'color_space'} eq 'cmy') {
- $red = int(65535 - $objref->{'scale'}->[0]->get * 65.535 + 0.5);
- $green = int(65535 - $objref->{'scale'}->[1]->get * 65.535 + 0.5);
- $blue = int(65535 - $objref->{'scale'}->[2]->get * 65.535 + 0.5);
- } else {
- ($red, $green, $blue) = hsvToRgb($objref->{'scale'}->[0]->get/1000.0,
- $objref->{'scale'}->[1]->get/1000.0,
- $objref->{'scale'}->[2]->get/1000.0);
- }
- $objref->{'red'} = $red;
- $objref->{'blue'} = $blue;
- $objref->{'green'} = $green;
- $objref->color(sprintf('#%04x%04x%04x', $red, $green, $blue));
- $objref->idletasks;
-
-} # end scale_changed
-
-sub set_scales {
-
- my($objref) = @_;
- $objref->{'pending'} = 0;
- $objref->{'updating'} = 1;
-
- # The procedure below is invoked to update the scales from the current red,
- # green, and blue intensities. It's invoked after a change in the color
- # space and after a named color value has been loaded.
-
- my($red, $blue, $green) = ($objref->{'red'}, $objref->{'blue'},
- $objref->{'green'});
-
- if($objref->{'color_space'} eq 'rgb') {
- $objref->{'scale'}->[0]->set(int($red / 65.535 + 0.5));
- $objref->{'scale'}->[1]->set(int($green / 65.535 + 0.5));
- $objref->{'scale'}->[2]->set(int($blue / 65.535 + 0.5));
- } elsif($objref->{'color_space'} eq 'cmy') {
- $objref->{'scale'}->[0]->set(int((65535 - $red) / 65.535 + 0.5));
- $objref->{'scale'}->[1]->set(int((65535 - $green) / 65.535 + 0.5));
- $objref->{'scale'}->[2]->set(int((65535 - $blue) / 65.535 + 0.5));
- } else {
- my ($s1, $s2, $s3) = rgbToHsv($red, $green, $blue);
- $objref->{'scale'}->[0]->set(int($s1 * 1000.0 + 0.5));
- $objref->{'scale'}->[1]->set(int($s2 * 1000.0 + 0.5));
- $objref->{'scale'}->[2]->set(int($s3 * 1000.0 + 0.5));
- }
- $objref->{'updating'} = 0;
-
-} # end set_scales
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/Compound.pm b/Master/tlpkg/tlperl/lib/Tk/Compound.pm
deleted file mode 100644
index 9f1ccd64487..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Compound.pm
+++ /dev/null
@@ -1,40 +0,0 @@
-package Tk::Compound;
-require Tk;
-import Tk qw($XS_VERSION);
-require Tk::Image;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/Compound/Compound.pm#4 $
-
-use base qw(Tk::Image);
-
-Construct Tk::Image 'Compound';
-
-bootstrap Tk::Compound;
-
-sub Tk_image { 'compound' }
-
-Tk::Methods('add');
-
-sub new
-{
- my $package = shift;
- my $widget = shift;
- my $leaf = $package->Tk_image;
- $package->InitClass($widget);
- my $obj = $widget->image(create => $leaf,@_,-window => $widget);
- return bless($obj,$package);
-}
-
-BEGIN
- {
- foreach my $type (qw(line text image bitmap space))
- {
- my $meth = ucfirst($type);
- no strict qw 'refs';
- *{$meth} = sub { shift->add($type,@_) };
- }
- }
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/Compound.pod b/Master/tlpkg/tlperl/lib/Tk/Compound.pod
deleted file mode 100644
index 01f6e5f2639..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Compound.pod
+++ /dev/null
@@ -1,298 +0,0 @@
-# Copyright (c) 1996, Expert Interface Technologies
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# The file man.macros and some of the macros used by this file are
-# copyrighted: (c) 1990 The Regents of the University of California.
-# (c) 1994-1995 Sun Microsystems, Inc.
-# The license terms of the Tcl/Tk distrobution are in the file
-# license.tcl.
-
-=head1 NAME
-
-Tk::Compound - Create multi-line compound images.
-
-=for category Tk Image Classes
-
-=head1 SYNOPSIS
-
- use Tk::Compound;
- $image = $widget->Compound(name,options);
- $image->Line(options);
- $image->Text(options);
- $image->Bitmap(options);
- $image->Image(options);
- $image->Space(options);
-
-=for comment
-This paragraph used to be written different, but perldoc 3.14 cannot
-display this paragraph.
-S< >use Tk::Compound;
-S< >I<$image> = I<$widget>-E<gt>B<Compound>?(I<name>??,I<options>?)
-S< >I<$image>-E<gt>B<Line>?(I<options>?)
-S< >I<$image>-E<gt>B<Text>?(I<options>?)
-S< >I<$image>-E<gt>B<Bitmap>?(I<options>?)
-S< >I<$image>-E<gt>B<Image>?(I<options>?)
-S< >I<$image>-E<gt>B<Space>?(I<options>?)
-
-=head1 DESCRIPTION
-
-Compound image types can be used to create images that consists of
-multiple horizontal lines; each line is composed of a series of items
-(texts, bitmaps, images or spaces) arranged from left to
-right. Compound images are mainly used to embed complex drawings into
-widgets that support the B<-image> option. As shown in the EXAMPLE
-section below, a compound image can be used to display a bitmap and a
-text string simutaneously in a Tk B<Button> widget.
-
-Compound images can only be used on windows on the same display as, and
-with the same pixel depth and visual as the I<$widget> used to create them.
-
-=head1 CREATING COMPOUND IMAGES
-
-Compounds are created using I<$widget>-E<gt>B<Compound>.
-Compounds support the following I<options>:
-
-=over 4
-
-=item B<-background> =E<gt> I<color>
-
-Specifies the background color of the compound image. This color is
-also used as the default background color for the bitmap items in the
-compound image.
-
-=item B<-borderwidth> =E<gt> I<pixels>
-
-Specifies a non-negative value indicating the width of the 3-D border
-drawn around the compound image.
-
-=item B<-font> =E<gt> I<font>
-
-Specifies the default font for the text items in the compound image.
-
-=item B<-foreground> =E<gt> I<color>
-
-Specifies the default foreground color for the bitmap and text items
-in the compound image.
-
-=item B<-padx> =E<gt> I<value>
-
-Specifies a non-negative value indicating how much extra space to
-request for the compound image in the X-direction. The I<value> may
-have any of the forms acceptable to B<Tk_GetPixels(3)>.
-
-=item B<-pady> =E<gt> I<value>
-
-Specifies a non-negative value indicating how much extra space to
-request for the compound image in the Y-direction.
-
-=item B<-relief> =E<gt> I<value>
-
-Specifies the 3-D effect desired for the background of the compound
-image. Acceptable values are B<raised>, B<sunken>, B<flat>,
-B<ridge>, and B<groove>.
-
-=item B<-showbackground> =E<gt> I<value>
-
-Specifies whether the background and the 3D borders should be drawn.
-Must be a valid boolean value. By default the background is not drawn
-and the compound image appears to have a transparent background.
-
-
-=back
-
-=head1 IMAGE COMMAND
-
-When a compound image is created, Tk also creates a new object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-
-The object also supports the following methods:
-
-=over 4
-
-=item I<$compound>-E<gt>B<Line>?(I<option => value ...>)?
-
-Creates a new line at the bottom of the compound image. Lines support
-the following I<options>:
-
-=over 4
-
-=item B<-anchor> value
-
-Specifies how the line should be aligned along the horizontal axis.
-When the values are B<w>, B<sw> or B<nw>, the line is aligned
-to the left. When the values are B<c>, B<s> or B<n>, the line
-is aligned to the middle. When the values are B<e>, B<se> or
-B<ne>, the line is aligned to the right.
-
-=item B<-padx> =E<gt> I<value>
-
-Specifies a non-negative value indicating how much extra space to
-request for this line in the X-direction.
-
-=back
-
-=item I<$compound>-E<gt>I<Itemtype>?(I<option => value ...>)?
-
-Creates a new item of the type I<Itemtype> at the end of the last
-line of the compound image. All types of items support
-these following common I<options>:
-
-=over 4
-
-=item B<-anchor> value
-
-Specifies how the item should be aligned along the vertical axis. When
-the values are B<n>, B<nw> or B<ne>, the item is aligned to
-the top of the line. When the values are B<c>, B<w> or B<e>,
-the item is aligned to the middle of the line. When the values are
-B<s>, B<se> or B<sw>, the item is aligned to the bottom of
-the line.
-
-=item B<-padx> =E<gt> I<value>
-
-Specifies a non-negative value indicating how much extra space to
-request for this item in the X-direction.
-
-=item B<-pady> =E<gt> I<value>
-
-Specifies a non-negative value indicating how much extra space to
-request for this item in the Y-direction.
-
-=item I<item-type> can be any of the following:
-
-=back
-
-=item I<$compound>-E<gt>B<Bitmap>?(I<option => value ...>)?
-
-Creates a new bitmap item of at the end of the last
-line of the compound image. Additional I<options> accepted by the
-bitmap type are:
-
-=over 4
-
-=item B<-background> =E<gt> I<color>
-
-Specifies the background color of the bitmap item.
-
-=item B<-bitmap> =E<gt> I<name>
-
-Specifies a bitmap to display in this item, in any of the forms
-acceptable to B<Tk_GetBitmap(3)>.
-
-=item B<-foreground> =E<gt> I<color>
-
-Specifies the foreground color of the bitmap item.
-
-=back
-
-=item I<$compound>-E<gt>B<Image>?(I<option => value ...>)?
-
-Creates a new image item of at the end of the last
-line of the compound image. Additional I<options> accepted by the
-image type are:
-
-=over 4
-
-=item B<-image> =E<gt> I<name>
-
-Specifies an image to display in this item. I<name>
-must have been created with the B<image create> command.
-
-=back
-
-=item I<$compound>-E<gt>B<Space>?(I<option => value ...>)?
-
-Creates a new space item of at the end of the last line of the
-compound image. Space items do not display anything. They just acts as
-space holders that add additional spaces between items inside a
-compound image. Additional I<options> accepted by the image type
-are:
-
-=over 4
-
-=item B<-width> =E<gt> I<value>
-
-Specifies the width of this space. The I<value> may have any of the
-forms acceptable to B<Tk_GetPixels(3)>.
-
-=item B<-height> =E<gt> I<value>
-
-Specifies the height of this space. The I<value> may have any of
-the forms acceptable to B<Tk_GetPixels(3)>.
-
-=back
-
-=item I<$compound>-E<gt>B<Text>?(I<option => value ...>)?
-
-Creates a new text item of at the end of the last line of the compound
-image. Additional I<options> accepted by the text type are:
-
-=over 4
-
-=item B<-background> =E<gt> I<color>
-
-Specifies the background color of the text item.
-
-=item B<-font> =E<gt> I<name>
-
-Specifies the font to be used for this text item.
-
-=item B<-foreground> =E<gt> I<color>
-
-Specifies the foreground color of the text item.
-
-=item B<-justify> I<value>
-
-When there are multiple lines of text displayed in a text item, this
-option determines how the lines line up with each other. I<value>
-must be one of B<left>, B<center>, or B<right>. B<Left>
-means that the lines' left edges all line up, B<center> means that
-the lines' centers are aligned, and B<right> means that the lines'
-right edges line up.
-
-=item B<-text> =E<gt> I<string>
-
-Specifies a text string to display in this text item.
-
-=item B<-underline> I<value>
-
-Specifies the integer index of a character to underline in the text
-item. 0 corresponds to the first character of the text displayed in
-the text item, 1 to the next character, and so on.
-
-=item B<-wraplength> I<value>
-
-This option specifies the maximum line length of the label string on
-this text item. If the line length of the label string exceeds this
-length, it is wrapped onto the next line, so that no line is longer
-than the specified length. The value may be specified in any of the
-standard forms for screen distances. If this value is less than or
-equal to 0 then no wrapping is done: lines will break only at newline
-characters in the text.
-
-=back
-
-=back
-
-=head1 EXAMPLE
-
-The following example creates a compound image with a bitmap and a
-text string and places this image into a B<Button(n)>
-widget. Notice that the image must be created using the widget
-that it resides in.
-
- my $b = $parent->Button;
- my $c = $b->Compound;
- $b->configure(-image => $c);
- $c->Line;
- $c->Bitmap(-bitmap => 'warning');
- $c->Space(-width => 8);
- $c->Text(-text => "Warning", -underline => 0);
- $b->pack;
-
-=head1 KEYWORDS
-
-image(n), Tix(n)
diff --git a/Master/tlpkg/tlperl/lib/Tk/Config.pm b/Master/tlpkg/tlperl/lib/Tk/Config.pm
deleted file mode 100644
index c8eaa5e795e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Config.pm
+++ /dev/null
@@ -1,13 +0,0 @@
-# DO NOT EDIT. CREATED AUTOMATICALLY BY myConfig
-package Tk::Config;
-require Exporter;
-use base qw(Exporter);
-$VERSION = '804.033';
-$inc = '-I$(TKDIR) -I$(TKDIR)/pTk/mTk/xlib';
-$define = '';
-$xlib = '';
-$xinc = '';
-$gccopt = ' -Wall -Wno-implicit-int -Wno-comment -Wno-unused -D__USE_FIXED_PROTOTYPES__';
-$win_arch = 'MSWin32';
-@EXPORT = qw($VERSION $inc $define $xlib $xinc $gccopt $win_arch);
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/ConfigSpecs.pod b/Master/tlpkg/tlperl/lib/Tk/ConfigSpecs.pod
deleted file mode 100644
index 5f90c2716bb..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ConfigSpecs.pod
+++ /dev/null
@@ -1,262 +0,0 @@
-# $Id: configspec.pod 1.2 Wed, 12 Nov 1997 00:30:45 +0100 ach $
-
-=head1 NAME
-
-Tk::ConfigSpecs - Defining behaviour of 'configure' for composite widgets.
-
-=for category Derived Widgets
-
-=head1 SYNOPSIS
-
- sub Populate
- {
- my ($composite,$args) = @_;
- ...
- $composite->ConfigSpecs('-attribute' => [ where,dbName,dbClass,default ]);
- $composite->ConfigSpecs('-alias' => '-otherattribute');
- $composite->ConfigSpecs('DEFAULT' => [ where ]);
- $composite->ConfigSpecs($subwidget->ConfigSpecs);
- ...
- }
-
- $composite->configure(-attribute => value);
-
-=head1 DESCRIPTION
-
-The aim is to make the composite widget configure method look as much like
-a regular Tk widget's configure as possible.
-(See L<Tk::options> for a description of this behaviour.)
-To enable this the attributes that the composite as a whole accepts
-needs to be defined.
-
-=head2 Defining the ConfigSpecs for a class.
-
-Typically a widget will have one or more calls like the following
-
- $composite->ConfigSpecs(-attribute => [where,dbName,dbClass,default]);
-
-in its B<Populate> method. When B<ConfigSpecs> is called this way
-(with arguments) the arguments are used to construct or augment/replace
-a hash table for the widget. (More than one I<-option>=E<gt>I<value>
-pair can be specified to a single call.)
-
-B<dbName>, B<dbClass> and default are only used by B<ConfigDefault> described
-below, or to respond to 'inquiry' configure commands.
-
-It may be either one of the values below, or a list of such values
-enclosed in B<[]>.
-
-The currently permitted values of B<where> are:
-
-=over 4
-
-=item B<'ADVERTISED'>
-
-Apply B<configure> to I<advertised> subwidgets.
-
-=item B<'DESCENDANTS'>
-
-Apply B<configure> recursively to all descendants.
-
-=item B<'CALLBACK'>
-
-Setting the attribute does C<Tk::Callback-E<gt>new($value)> before storing
-in C<$composite-E<gt>{Configure}{-attribute}>. This is appropriate for
-C<-command =E<gt> ...> attributes that are handled by the composite and not
-forwarded to a subwidget. (E.g. B<Tk::Tiler> has C<-yscrollcommand> to
-allow it to have scrollbar attached.)
-
-This may be the first of several 'validating' keywords (e.g. font, cursor,
-anchor etc.) that core Tk makes special for C code.
-
-=item B<'CHILDREN'>
-
-Apply B<configure> to all children. (Children are the immediate
-descendants of a widget.)
-
-=item B<'METHOD'>
-
-Call C<$cw-E<gt>attribute(value)>
-
-This is the most general case. Simply have a method of the composite
-class with the same name as the attribute. The method may do any
-validation and have whatever side-effects you like. (It is probably
-worth 'queueing' using B<afterIdle> for more complex side-effects.)
-
-=item B<'PASSIVE'>
-
-Simply store value in C<$composite-E<gt>{Configure}{-attribute}>.
-
-This form is also a useful placeholder for attributes which you
-currently only handle at create time.
-
-=item B<'SELF'>
-
-Apply B<configure> to the core widget (e.g. B<Frame>) that is the basis of
-the composite. (This is the default behaviour for most attributes which
-makes a simple Frame behave the way you would expect.) Note that once
-you have specified B<ConfigSpecs> for an attribute you must explicitly
-include C<'SELF'> in the list if you want the attribute to apply to the
-composite itself (this avoids nasty infinite recursion problems).
-
-=item B<$reference> (blessed)
-
-Call B<$reference>->configure(-attribute => value)
-
-A common case is where B<$reference> is a subwidget.
-
-$reference may also be result of
-
- Tk::Config->new(setmethod,getmethod,args,...);
-
-B<Tk::Config> class is used to implement all the above keyword types. The
-class has C<configure> and C<cget> methods so allows higher level code to
-I<always> just call one of those methods on an I<object> of some kind.
-
-=item B<hash reference>
-
-Defining:
-
- $cw->ConfigSpecs(
- ...
- -option => [ { -optionX=>$w1, -optionY=>[$w2, $w3] },
- dbname dbclass default ],
- ...
- );
-
-So C<$cw-E<gt>configure(-option =E<gt> value)> actually does
-
- $w1->configure(-optionX => value);
- $w2->configure(-optionY => value);
- $w3->configure(-optionY => value);
-
-=item B<'otherstring'>
-
-Call
-
- $composite->Subwidget('otherstring')->configure( -attribute => value );
-
-While this is here for backward compatibility with Tk-b5, it is probably
-better just to use the subwidget reference directly. The only
-case for retaining this form is to allow an additional layer of
-abstraction - perhaps having a 'current' subwidget - this is unproven.
-
-=item B<Aliases>
-
-C<ConfigSpecs( -alias =E<gt> '-otherattribute' )> is used to make C<-alias>
-equivalent to C<-otherattribute>. For example the aliases
-
- -fg => '-foreground',
- -bg => '-background'
-
-are provided automatically (if not already specified).
-
-=back
-
-=head2 Delegating all options of a widget class to a subwidget
-
- $composite->ConfigSpecs($subwidget->ConfigSpecs);
-
-The above generates a list of I<composite> ConfigSpecs arguments, one
-for each valid option in $subwidget's class, and delegates said option
-to $subwidget. See L<Tk::Widget> and the I<widget> method
-ConfigSpecs. Duplicating I<composite> ConfigSpecs and I<widget>
-ConfigSpecs keys will yield undefined results.
-
-
-=head2 Default values
-
-When the B<Populate> method returns B<ConfigDefault> is called. This calls
-
- $composite->ConfigSpecs;
-
-(with no arguments) to return a reference to a hash. Entries in the hash
-take the form:
-
- '-attribute' => [ where, dbName, dbClass, default ]
-
-B<ConfigDefault> ignores 'where' completely (and also the DEFAULT entry) and
-checks the 'options' database on the widget's behalf, and if an entry is
-present matching dbName/dbClass
-
- -attribute => value
-
-is added to the list of options that B<new> will eventually apply to the
-widget. Likewise if there is not a match and default is defined this
-default value will be added.
-
-Alias entries in the hash are used to convert user-specified values for the
-alias into values for the real attribute.
-
-=head2 B<New()-time configure>
-
-Once control returns to B<new>, the list of user-supplied options
-augmented by those from B<ConfigDefault> are applied to the widget using the
-B<configure> method below.
-
-Widgets are most flexible and most Tk-like if they handle the majority of
-their attributes this way.
-
-=head2 Configuring composites
-
-Once the above have occurred calls of the form:
-
- $composite->configure( -attribute => value );
-
-should behave like any other widget as far as end-user code is concerned.
-B<configure> will be handled by B<Tk::Derived::configure> as follows:
-
- $composite->ConfigSpecs;
-
-is called (with no arguments) to return a reference to a hash B<-attribute> is
-looked up in this hash, if B<-attribute> is not present in the hash then
-B<'DEFAULT'> is looked for instead. (Aliases are tried as well and cause
-redirection to the aliased attribute). The result should be a reference to a
-list like:
-
- [ where, dbName, dbClass, default ]
-
-at this stage only I<where> is of interest, it maps to a list of object
-references (maybe only one) foreach one
-
- $object->configure( -attribute => value );
-
-is B<eval>ed.
-
-=head2 Inquiring attributes of composites
-
- $composite->cget( '-attribute' );
-
-This is handled by B<Tk::Derived::cget> in a similar manner to configure. At
-present if I<where> is a list of more than one object it is ignored completely
-and the "cached" value in
-
- $composite->{Configure}{-attribute}.
-
-is returned.
-
-=head1 CAVEATS
-
-The C<-background> and C<-foreground> option values are automatically
-propagated down to all composite widget's children. This may be
-sometimes not desirable, especially if some subwidgets should use own
-color schemes, either by using explicit options or by option database
-definitions. If this is the case, then just add
-
- -foreground => 'SELF',
- -background => 'SELF',
-
-to C<ConfigSpecs>.
-
-It is the author's intention to port as many of the "Tix" composite widgets
-as make sense. The mechanism described above may have to evolve in order to
-make this possible, although now aliases are handled I think the above is
-sufficient.
-
-=head1 SEE ALSO
-
-L<Tk::composite|Tk::composite>,
-L<Tk::options|Tk::options>,
-L<Tk::Widget>
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tk/Configure.pm b/Master/tlpkg/tlperl/lib/Tk/Configure.pm
deleted file mode 100644
index 8c19fe8efb8..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Configure.pm
+++ /dev/null
@@ -1,68 +0,0 @@
-package Tk::Configure;
-use vars qw($VERSION);
-$VERSION = '4.009'; # $Id: //depot/Tkutf8/Tk/Configure.pm#8 $
-
-use Carp;
-
-
-# Class that handles cget/configure for options that
-# need translating from public form
-# e.g. $cw->configure(-label => 'fred')
-# into $cw->subwiget('label')->configure(-text => 'fred')
-# Should probably do something clever with regexp's here
-
-
-sub new
-{
- my ($class,@args) = @_;
- unshift(@args,'configure','cget') if (@args < 3);
- return bless \@args,$class;
-}
-
-sub cget
-{
- croak('Wrong number of args to cget') unless (@_ == 2);
- my ($alias,$key) = @_;
- my ($set,$get,$widget,@args) = @$alias;
- $widget->$get(@args);
-}
-
-sub configure
-{
- my $alias = shift;
- shift if (@_);
- my ($set,$get,$widget,@args) = @$alias;
- if (wantarray)
- {
- my @results;
- eval { @results = $widget->$set(@args,@_) };
- croak($@) if $@;
- return @results;
- }
- else
- {
- my $results;
- eval { $results = $widget->$set(@args,@_) };
- croak($@) if $@;
- return $results;
- }
-}
-
-*TIESCALAR = \&new;
-*TIEHASH = \&new;
-
-sub FETCH
-{
- my $alias = shift;
- my ($set,$get,$widget,@args) = @$alias;
- return $widget->$get(@args,@_);
-}
-
-sub STORE
-{
- my $alias = shift;
- my ($set,$get,$widget,@args) = @$alias;
- $widget->$set(@args,@_);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/Credits b/Master/tlpkg/tlperl/lib/Tk/Credits
deleted file mode 100644
index 3ea9be43b7d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Credits
+++ /dev/null
@@ -1,7 +0,0 @@
-The two Camel/X 'logo' GIFs were produced by :
-
-Grafix, Sussex, UK, +44-1293-886725
-
-For a very reasonable fee. We have rights to distribute them.
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/DItem.pod b/Master/tlpkg/tlperl/lib/Tk/DItem.pod
deleted file mode 100644
index 27db79744df..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DItem.pod
+++ /dev/null
@@ -1,439 +0,0 @@
-=head1 NAME
-
-Tk::DItem - Tix Display Items
-
-=for category Tix Extensions
-
-=head1 SYNOPSIS
-
-=head1 DESCRIPTION
-
-The Tix B<Display Items> and B<Display Types> are devised to
-solve a general problem: many Tix widgets (both existing and planned
-ones) display many items of many types simultaneously.
-
-For example, a hierarchical listbox widget (see L<Tk::HList>) can display
-items
-of images, plain text and subwindows in the form of a
-hierarchy. Another widget, the tabular listbox widget (see L<Tk::TList>)
-also displays items of the
-same types, although it arranges the items in a tabular form. Yet
-another widget, the spreadsheet widget (see L<Tk::TixGrid>),
-also displays similar types
-items, but in yet another format.
-
-In these examples, the display items in different widgets are only
-different in how they are arranged by the B<host widget>. In Tix,
-display items are clearly separated from the host widgets. The
-advantage is two-fold: first, the creation and configuration of
-display items become uniform across different host widgets. Second,
-new display item types can be added without the need to modify the
-existing host widgets.
-
-In a way, Tix display items are similar to the items inside Tk
-the canvas widget. However, unlike the Tix display items, the canvas
-items are not independent of the canvas widget; this makes it
-impossible to use the canvas items inside other types of TK widgets.
-
-The appearance of a display item is controlled by a set of
-I<attributes>. It is observed that each the attributes usually fall
-into one of two categroies: ``I<individual>'' or
-``I<collective>''. For example, the text items inside a HList widget
-may all display a different text string; however, in most cases, the
-text items share the same color, font and spacing. Instead of keeping
-a duplicated version of the same attributes inside each display item,
-it will be advantageous to put the collective attributes in a
-special object called a B<display style>. First, there is the space
-concern: a host widget may have many thousands of items; keeping
-dupilcated attributes will be very wasteful. Second, when it becomes
-necessary to change a collective attribute, such as changing all the
-text items' foreground color to red, it will be more efficient to
-change only the display style object than to modify all the text
-items one by one.
-
-The attributes of the a display item are thus stored in two places: it
-has a set of B<item options> to store its individual attributes. Each
-display item is also associated with a I<display style>, which specifies
-the collective attributes of all items associated with itself.
-
-The division between the individual and collective attributes are
-fixed and cannot be changed. Thus, when it becomes necessary for some
-items to differ in their collective attributes, two or more B<display styles>
-can be used. For example, suppose you want to display two
-columns of text items inside an HList widget, one column in red and
-the other in blue. You can create a TextStyle object called ``$red''
-which defines a red foreground, and another called ``$blue'', which
-defines a blue foreground. You can then associate all text items of
-the first column to ``$red'' and the second column to ``$blue''
-
-=head1 DISPLAY ITEM TYPES AND OPTIONS
-
-Currently there are three types of display items: B<text>,
-B<imagetext> and I<window>.
-
-=head1 IMAGETEXT ITEMS
-
-Display items of the type B<imagetext> are used to display an image
-together with a text string. Imagetext items support the following options:
-
-=head2 Imagetext Item Options
-
-=over 4
-
-=item Name: B<bitmap>
-
-=item Class: B<Bitmap>
-
-=item Switch: B<-bitmap>
-
-Specifies the bitmap to display in the item.
-
-=item Name: B<image>
-
-=item Class: B<Image>
-
-=item Switch: B<-image>
-
-Specifies the image to display in the item. When both the
-B<-bitmap> and B<-image> options are specified, only the image
-will be displayed.
-
-=item Name: B<imageTextStyle>
-
-=item Class: B<ImageTextStyle>
-
-=item Switch: B<-style>
-
-Specifies the display style to use for this item. Must be the
-name of a B<imagetext> display style that has already be created with
-B<ItemStyle>.
-
-=item Name: B<showImage>
-
-=item Class: B<ShowImage>
-
-=item Switch: B<-showimage>
-
-A Boolean value that specifies whether the image/bitmap should be
-displayed.
-
-=item Name: B<showText>
-
-=item Class: B<ShowText>
-
-=item Switch: B<-showtext>
-
-A Boolean value that specifies whether the text string should be
-displayed.
-
-=item Name: B<text>
-
-=item Class: B<Text>
-
-=item Switch: B<-text>
-
-Specifies the text string to display in the item.
-
-=item Name: B<underline>
-
-=item Class: B<Underline>
-
-=item Switch: B<-underline>
-
-Specifies the integer index of a character to underline in the text
-string in the item. 0 corresponds to the first character of the text
-displayed in the widget, 1 to the next character, and so on.
-
-=back
-
-=head2 Imagetext Style Options
-
-The style information of B<imagetext> items are stored in the
-B<imagetext> display style. The following options are supported:
-
-B<STANDARD OPTIONS>
-
-B<-activebackground> B<-activeforeground>
-B<-anchor> B<-background>
-B<-disabledbackground> B<-disabledforeground>
-B<-foreground> B<-font>
-B<-justify> B<-padx>
-B<-pady> B<-selectbackground>
-B<-selectforeground> B<-wraplength>
-
-See L<Tk::options> for details of the standard options.
-
-B<STYLE-SPECIFIC OPTIONS>
-
-=over 4
-
-=item Name: B<gap>
-
-=item Class: B<Gap>
-
-=item Switch: B<-gap>
-
-Specifies the distance between the bitmap/image and the text string,
-in number of pixels.
-
-=item Name: B<textAnchor>
-
-=item Class: B<TextAnchor>
-
-=item Switch: B<-textanchor>
-
-The anchor position on the image to which text part is attached.
-This is a perl/Tk addition. Defaults to B<e> for compatibility with standard
-Tix. The interesting cases are
-
-=over 8
-
-=item B<n>
-
-Text is centred above the image.
-
-=item B<s>
-
-Text is centred below the image
-
-=item B<e>
-
-Text is centred to right of the image.
-
-=item B<w>
-
-Text is centred to left of the image.
-
-=item B<c>
-
-Text is centred over the image.
-
-=back
-
-The B<sw>, B<se>, B<ne>, and b<nw> cases look rather odd.
-
-To get items to line up correctly it will usually be necessary
-to specify B<-anchor> as well. e.g. with default B<e> then anchoring
-item as a whole B<w> lines images up down left with text stuck to right side.
-
-=back
-
-=head1 TEXT ITEMS
-
-Display items of the type B<text> are used to display a text string
-in a widget. Text items support the following options:
-
-=head2 Text Item Options
-
-=over 4
-
-=item Name: B<textStyle>
-
-=item Class: B<TextStyle>
-
-=item Switch: B<-style>
-
-Specifies the display style to use for this text item. Must be the
-name of a B<text> display style that has already be created with
-B<ItemStyle>.
-
-=item Name: B<text>
-
-=item Class: B<Text>
-
-=item Switch: B<-text>
-
-Specifies the text string to display in the item.
-
-=item Name: B<underline>
-
-=item Class: B<Underline>
-
-=item Switch: B<-underline>
-
-Specifies the integer index of a character to underline in the item.
-0 corresponds to the first character of the text displayed in the
-widget, 1 to the next character, and so on.
-
-=back
-
-=head2 Text Style Options
-
-B<STANDARD OPTIONS>
-
-B<-activebackground> B<-activeforeground>
-B<-anchor> B<-background>
-B<-disabledbackground> B<-disabledforeground>
-B<-foreground> B<-font>
-B<-justify> B<-padx>
-B<-pady> B<-selectbackground>
-B<-selectforeground> B<-wraplength>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WINDOW ITEMS
-
-Display items of the type I<window> are used to display a
-sub-window in a widget. B<Window> items support the following
-options:
-
-=head2 Window Item Options
-
-=over 4
-
-=item Name: B<windowStyle>
-
-=item Class: B<WindowStyle>
-
-=item Switch: B<-style>
-
-Specifies the display style to use for this window item. Must be the
-name of a I<window> display style that has already be created with
-the B<ItemStyle> method.
-
-=item Name: B<window>
-
-=item Class: B<Window>
-
-=item Switch: B<-window>
-
-=item Alias: B<-widget>
-
-Specifies the sub-window to display in the item.
-
-=back
-
-=head2 Window Style Options
-
-B<STYLE STANDARD OPTIONS>
-
-B<-anchor> B<-padx> B<-pady>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 CREATING DISPLAY ITEMS
-
-Display items do not exist on their and thus they cannot be created
-independently of the widgets they reside in. As a rule, display items
-are created by special methods of their ``host'' widgets. For
-example, the HList widgets has a method B<item> which can be used
-to create new display items. The following code creates a new text
-item at the third column of the entry foo inside an HList widget:
-
- my $hlist = $parent->HList(-columns=>3);
- $hlist->add('foo');
- $hlist->itemCreate('foo', 2, -itemtype=>'text', -text=>'Hello');
-
-The B<itemCreate> method of the HList widget accepts a variable
-number of arguments. The special argument B<-itemtype> specifies
-which type of display item to create. Options that are valid for this
-type of display items can then be specified by one or more
-I<option-value> pairs.
-
-After the display item is created, they can then be configured or
-destroyed using the methods provided by the host widget. For example,
-the HList widget has the methods B<itemConfigure>, B<itemCget>
-and B<itemDelete> for accessing the display items.
-
-=head1 CREATING AND MANIPULATING ITEM STYLES
-
-Item styles are created with B<ItemStyle>:
-
-=head1 SYNOPSIS
-
-S< >I<$widget>-E<gt>B<ItemStyle>(I<itemType> ?,B<-stylename>=E<gt>I<name>? ?,B<-refwindow>=E<gt>I<pathName>? ?,I<option>=E<gt>I<value>, ...>?);
-
-I<itemType> must be one of the existing display items types such as
-B<text>, B<imagetext>, B<window> or any new types added by
-the user. Additional arguments can be given in one or more
-I<option-value> pairs. I<option> can be any of the valid option
-for this display style or any of the following:
-
-=over 4
-
-=item B<-stylename> =E<gt> I<name>
-
-Specifies a name for this style. If unspecified, then a default name
-will be chosen for this style.
-
-=item B<-refwindow> =E<gt> I<$otherwidget>
-
-Specifies a window to use for determine the default values of the
-display type. If unspecified, the I<$widget> will be used. Default
-values for the display types can be set via the options database. The
-following example sets the B<-disablebackground> and
-B<-disabledforeground> options of a B<text> display style via
-the option database:
-
- $widget->optionAdd('*table.list*disabledForeground' => 'blue');
- $widget->optionAdd('*table.list*disabledBackground' => 'darkgray');
- $widget->ItemStyle('text', -refwindow => $table_list, -fg => 'red');
-
-By using the option database to set the options of the display styles,
-we can advoid hard-coding the option values and give the user more
-flexibility in customization. See L<Tk::option> for a detailed description
-of the option database.
-
-=back
-
-=head1 STYLE METHODS
-
-The B<ItemStyle> method creates an object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-
-The following additional methods are available for item styles:
-
-=over 4
-
-=item I<$style>-E<gt>B<delete>
-
-Destroy this display style object.
-
-=back
-
-=head1 EXAMPLE
-
-The following example creates two columns of data in a HList
-widget. The first column is in red and the second column in blue. The
-colors of the columns are controlled by two different B<text>
-styles. Also, the anchor and font of the second column is chosen so
-that the income data is aligned properly.
-
- use strict;
- use Tk;
- use Tk::HList;
- use Tk::ItemStyle;
-
- my $mw = MainWindow->new();
-
- my $hlist = $mw->HList(-columns=>2)->pack;
-
- my $red = $hlist->ItemStyle('text', -foreground=>'#800000');
- my $blue = $hlist->ItemStyle('text', -foreground=>'#000080', -anchor=>'e');
-
- my $e;
- foreach ([Joe => '$10,000'], [Peter => '$20,000'],
- [Raj => '$90,000'], [Zinh => '$0']) {
- $e = $hlist->addchild("");
- $hlist->itemCreate($e, 0, -itemtype=>'text',
- -text=>$_->[0], -style=>$red );
- $hlist->itemCreate($e, 1, -itemtype=>'text',
- -text=>$_->[1], -style=>$blue);
- }
-
- Tk::MainLoop;
-
-=head1 SEE ALSO
-
-L<Tk::HList|Tk::HList>
-L<Tk::TixGrid|Tk::TixGrid>
-L<Tk::TList|Tk::TList>
-
-=head1 KEYWORDS
-
-display item, display style, item style
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Derived.pm b/Master/tlpkg/tlperl/lib/Tk/Derived.pm
deleted file mode 100644
index 1685c78156d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Derived.pm
+++ /dev/null
@@ -1,512 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Derived;
-require Tk::Widget;
-require Tk::Configure;
-use strict;
-use Carp;
-
-use vars qw($VERSION);
-$VERSION = '4.011'; # sprintf '4.%03d', q$Revision: #10 $ =~ /\D(\d+)\s*$/;
-
-$Tk::Derived::Debug = 0;
-
-my $ENHANCED_CONFIGSPECS = 0; # disable for now
-
-use Tk qw(NORMAL_BG BLACK);
-
-sub Subwidget
-{
- my $cw = shift;
- my @result = ();
- if (exists $cw->{SubWidget})
- {
- if (@_)
- {
- foreach my $name (@_)
- {
- push(@result,$cw->{SubWidget}{$name}) if (exists $cw->{SubWidget}{$name});
- }
- }
- else
- {
- @result = values %{$cw->{SubWidget}};
- }
- }
- return (wantarray) ? @result : $result[0];
-}
-
-sub _makelist
-{
- my $widget = shift;
- my (@specs) = (ref $widget && ref $widget eq 'ARRAY') ? (@$widget) : ($widget);
- return @specs;
-}
-
-sub Subconfigure
-{
- # This finds the widget or widgets to to which to apply a particular
- # configure option
- my ($cw,$opt) = @_;
- my $config = $cw->ConfigSpecs;
- my $widget;
- my @subwidget = ();
- my @arg = ();
- if (defined $opt)
- {
- $widget = $config->{$opt};
- unless (defined $widget)
- {
- $widget = ($opt =~ /^-(.*)$/) ? $config->{$1} : $config->{-$opt};
- }
- # Handle alias entries
- if (defined($widget) && !ref($widget))
- {
- $opt = $widget;
- $widget = $config->{$widget};
- }
- push(@arg,$opt) unless ($opt eq 'DEFAULT');
- }
- $widget = $config->{DEFAULT} unless (defined $widget);
- if (defined $widget)
- {
- $cw->BackTrace("Invalid ConfigSpecs $widget") unless (ref($widget) && (ref $widget eq 'ARRAY'));
- $widget = $widget->[0];
- }
- else
- {
- $widget = 'SELF';
- }
- foreach $widget (_makelist($widget))
- {
- $widget = 'SELF' if (ref($widget) && $widget == $cw);
- if (ref $widget)
- {
- my $ref = ref $widget;
- if ($ref eq 'ARRAY')
- {
- $widget = Tk::Configure->new(@$widget);
- push(@subwidget,$widget)
- }
- elsif ($ref eq 'HASH')
- {
- foreach my $key (%$widget)
- {
- foreach my $sw (_makelist($widget->{$key}))
- {
- push(@subwidget,Tk::Configure->new($sw,$key));
- }
- }
- }
- else
- {
- push(@subwidget,$widget)
- }
- }
- elsif ($widget eq 'ADVERTISED')
- {
- push(@subwidget,$cw->Subwidget)
- }
- elsif ($widget eq 'DESCENDANTS')
- {
- push(@subwidget,$cw->Descendants)
- }
- elsif ($widget eq 'CHILDREN')
- {
- push(@subwidget,$cw->children)
- }
- elsif ($widget eq 'METHOD')
- {
- my ($method) = ($opt =~ /^-?(.*)$/);
- push(@subwidget,Tk::Configure->new($method,$method,$cw))
- }
- elsif ($widget eq 'SETMETHOD')
- {
- my ($method) = ($opt =~ /^-?(.*)$/);
- push(@subwidget,Tk::Configure->new($method,'_cget',$cw,@arg))
- }
- elsif ($widget eq 'SELF')
- {
- push(@subwidget,Tk::Configure->new('Tk::configure', 'Tk::cget', $cw,@arg))
- }
- elsif ($widget eq 'PASSIVE')
- {
- push(@subwidget,Tk::Configure->new('_configure','_cget',$cw,@arg))
- }
- elsif ($widget eq 'CALLBACK')
- {
- push(@subwidget,Tk::Configure->new('_callback','_cget',$cw,@arg))
- }
- else
- {
- push(@subwidget,$cw->Subwidget($widget));
- }
- }
- $cw->BackTrace("No delegate subwidget '$widget' for $opt") unless (@subwidget);
- return (wantarray) ? @subwidget : $subwidget[0];
-}
-
-sub _cget
-{
- my ($cw,$opt) = @_;
- $cw->BackTrace('Wrong number of args to cget') unless (@_ == 2);
- return $cw->{Configure}{$opt}
-}
-
-sub _configure
-{
- my ($cw,$opt,$val) = @_;
- $cw->BackTrace('Wrong number of args to configure') unless (@_ == 3);
- $cw->{Configure}{$opt} = $val;
-}
-
-sub _callback
-{
- my ($cw,$opt,$val) = @_;
- $cw->BackTrace('Wrong number of args to configure') unless (@_ == 3);
- $val = Tk::Callback->new($val) if defined($val) && ref($val);
- $cw->{Configure}{$opt} = $val;
-}
-
-sub cget
-{my ($cw,$opt) = @_;
- my @result;
- local $SIG{'__DIE__'};
- foreach my $sw ($cw->Subconfigure($opt))
- {
- if (wantarray)
- {
- eval { @result = $sw->cget($opt) };
- }
- else
- {
- eval { $result[0] = $sw->cget($opt) };
- }
- last unless $@;
- }
- return wantarray ? @result : $result[0];
-}
-
-sub Configured
-{
- # Called whenever a derived widget is re-configured
- my ($cw,$args,$changed) = @_;
- if (@_ > 1)
- {
- $cw->afterIdle(['ConfigChanged',$cw,$changed]) if (%$changed);
- }
- return exists $cw->{'Configure'};
-}
-
-sub configure
-{
- # The default composite widget configuration method uses hash stored
- # in the widget's hash to map configuration options
- # onto subwidgets.
- #
- my @results = ();
- my $cw = shift;
- if (@_ <= 1)
- {
- # Enquiry cases
- my $spec = $cw->ConfigSpecs;
- if (@_)
- {
- # Return info on the nominated option
- my $opt = $_[0];
- my $info = $spec->{$opt};
- unless (defined $info)
- {
- $info = ($opt =~ /^-(.*)$/) ? $spec->{$1} : $spec->{-$opt};
- }
- if (defined $info)
- {
- if (ref $info)
- {
- # If the default slot is undef then ask subwidgets in turn
- # for their default value until one accepts it.
- if ($ENHANCED_CONFIGSPECS && !defined($info->[3]))
- {local $SIG{'__DIE__'};
- my @def;
- foreach my $sw ($cw->Subconfigure($opt))
- {
- eval { @def = $sw->configure($opt) };
- last unless $@;
- }
- $info->[3] = $def[3];
- $info->[1] = $def[1] unless defined $info->[1];
- $info->[2] = $def[2] unless defined $info->[2];
- }
- push(@results,$opt,$info->[1],$info->[2],$info->[3],$cw->cget($opt));
- }
- else
- {
- # Real (core) Tk widgets return db name rather than option name
- # for aliases so recurse to get that ...
- my @real = $cw->configure($info);
- push(@results,$opt,$real[1]);
- }
- }
- else
- {
- push(@results,$cw->Subconfigure($opt)->configure($opt));
- }
- }
- else
- {
- my $opt;
- my %results;
- if (exists $spec->{'DEFAULT'})
- {
- foreach $opt ($cw->Subconfigure('DEFAULT')->configure)
- {
- $results{$opt->[0]} = $opt;
- }
- }
- foreach $opt (keys %$spec)
- {
- $results{$opt} = [$cw->configure($opt)] if ($opt ne 'DEFAULT');
- }
- foreach $opt (sort keys %results)
- {
- push(@results,$results{$opt});
- }
- }
- }
- else
- {
- my (%args) = @_;
- my %changed = ();
- my ($opt,$val);
- my $config = $cw->TkHash('Configure');
-
- while (($opt,$val) = each %args)
- {
- my $var = \$config->{$opt};
- my $old = $$var;
- $$var = $val;
- my $accepted = 0;
- my $error = "No widget handles $opt";
- foreach my $subwidget ($cw->Subconfigure($opt))
- {
- next unless (defined $subwidget);
- eval {local $SIG{'__DIE__'}; $subwidget->configure($opt => $val) };
- if ($@)
- {
- my $val2 = (defined $val) ? $val : 'undef';
- $error = "Can't set $opt to `$val2' for $cw: " . $@;
- undef $@;
- }
- else
- {
- $accepted = 1;
- }
- }
- $cw->BackTrace($error) unless ($accepted);
- $val = $$var;
- $changed{$opt} = $val if (!defined $old || !defined $val || "$old" ne "$val");
- }
- $cw->Configured(\%args,\%changed);
- }
- return (wantarray) ? @results : \@results;
-}
-
-sub ConfigDefault
-{
- my ($cw,$args) = @_;
-
- $cw->BackTrace('Bad args') unless (defined $args && ref $args eq 'HASH');
-
- my $specs = $cw->ConfigSpecs;
- # Should we enforce a Delagates(DEFAULT => ) as well ?
- $specs->{'DEFAULT'} = ['SELF'] unless (exists $specs->{'DEFAULT'});
-
- #
- # This is a pain with Text or Entry as core widget, they don't
- # inherit SELF's cursor. So comment it out for Tk402.001
- #
- # $specs->{'-cursor'} = ['SELF',undef,undef,undef] unless (exists $specs->{'-cursor'});
-
- # Now some hacks that cause colours to propogate down a composite widget
- # tree - really needs more thought, other options adding such as active
- # colours too and maybe fonts
-
- my $child = ($cw->children)[0]; # 1st child window (if any)
-
- unless (exists($specs->{'-background'}))
- {
- Tk::catch { $cw->Tk::cget('-background') };
- my (@bg) = $@ ? ('PASSIVE') : ('SELF');
- push(@bg,'CHILDREN') if $child;
- $specs->{'-background'} = [\@bg,'background','Background',NORMAL_BG];
- }
- unless (exists($specs->{'-foreground'}))
- {
- Tk::catch { $cw->Tk::cget('-foreground') };
- my (@fg) = $@ ? ('PASSIVE') : ('SELF');
- push(@fg,'CHILDREN') if $child;
- $specs->{'-foreground'} = [\@fg,'foreground','Foreground',BLACK];
- }
- $cw->ConfigAlias(-fg => '-foreground', -bg => '-background');
-
- # Pre-scan args for aliases - this avoids defaulting
- # options specified via alias
- foreach my $opt (keys %$args)
- {
- my $info = $specs->{$opt};
- if (defined($info) && !ref($info))
- {
- $args->{$info} = delete $args->{$opt};
- }
- }
-
- # Now walk %$specs supplying defaults for all the options
- # which have a defined default value, potentially looking up .Xdefaults database
- # options for the name/class of the 'frame'
-
- foreach my $opt (keys %$specs)
- {
- if ($opt ne 'DEFAULT')
- {
- unless (exists $args->{$opt})
- {
- my $info = $specs->{$opt};
- if (ref $info)
- {
- # Not an alias
- if ($ENHANCED_CONFIGSPECS && !defined $info->[3])
- {
- # configure inquire to fill in default slot from subwidget
- $cw->configure($opt);
- }
- if (defined $info->[3])
- {
- if (defined $info->[1] && defined $info->[2])
- {
- # Should we do this on the Subconfigure widget instead?
- # to match *Entry.Background
- my $db = $cw->optionGet($info->[1],$info->[2]);
- $info->[3] = $db if (defined $db);
- }
- $args->{$opt} = $info->[3];
- }
- }
- }
- }
- }
-}
-
-sub ConfigSpecs
-{
- my $cw = shift;
- my $specs = $cw->TkHash('ConfigSpecs');
- while (@_)
- {
- my $key = shift;
- my $val = shift;
- $specs->{$key} = $val;
- }
- return $specs;
-}
-
-sub _alias
-{
- my ($specs,$opt,$main) = @_;
- if (exists($specs->{$opt}))
- {
- unless (exists $specs->{$main})
- {
- my $targ = $specs->{$opt};
- if (ref($targ))
- {
- # opt is a real option
- $specs->{$main} = $opt
- }
- else
- {
- # opt is itself an alias
- # make main point to same place
- $specs->{$main} = $targ unless $targ eq $main;
- }
- }
- return 1;
- }
- return 0;
-}
-
-sub ConfigAlias
-{
- my $cw = shift;
- my $specs = $cw->ConfigSpecs;
- while (@_ >= 2)
- {
- my $opt = shift;
- my $main = shift;
- unless (_alias($specs,$opt,$main) || _alias($specs,$main,$opt))
- {
- $cw->BackTrace("Neither $opt nor $main exist");
- }
- }
- $cw->BackTrace('Odd number of args to ConfigAlias') if (@_);
-}
-
-sub Delegate
-{
- my ($cw,$method,@args) = @_;
- my $widget = $cw->DelegateFor($method);
- if ($widget == $cw)
- {
- $method = "Tk::Widget::$method"
- }
- my @result;
- if (wantarray)
- {
- @result = $widget->$method(@args);
- }
- else
- {
- $result[0] = $widget->$method(@args);
- }
- return (wantarray) ? @result : $result[0];
-}
-
-sub InitObject
-{
- my ($cw,$args) = @_;
- $cw->Populate($args);
- $cw->ConfigDefault($args);
-}
-
-sub ConfigChanged
-{
- my ($cw,$args) = @_;
-}
-
-sub Advertise
-{
- my ($cw,$name,$widget) = @_;
- confess 'No name' unless (defined $name);
- croak 'No widget' unless (defined $widget);
- my $hash = $cw->TkHash('SubWidget');
- $hash->{$name} = $widget; # advertise it
- return $widget;
-}
-
-sub Component
-{
- my ($cw,$kind,$name,%args) = @_;
- $args{'Name'} = "\l$name" if (defined $name && !exists $args{'Name'});
- # my $pack = delete $args{'-pack'};
- my $delegate = delete $args{'-delegate'};
- my $w = $cw->$kind(%args); # Create it
- # $w->pack(@$pack) if (defined $pack);
- $cw->Advertise($name,$w) if (defined $name);
- $cw->Delegates(map(($_ => $w),@$delegate)) if (defined $delegate);
- return $w; # and return it
-}
-
-1;
-__END__
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Derived.pod b/Master/tlpkg/tlperl/lib/Tk/Derived.pod
deleted file mode 100644
index 4b99934d5bd..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Derived.pod
+++ /dev/null
@@ -1,89 +0,0 @@
-
-=head1 NAME
-
-Tk::Derived - Base class for widgets derived from others
-
-=for pm Tk/Derived.pm
-
-=for category Derived Widgets
-
-=head1 SYNOPSIS
-
- package Tk::MyNewWidget;
-
- use Tk::widgets qw/ BaseWidget, list of Tk widgets /;
- use base qw/ Tk::Derived Tk::BaseWidget /;
-
- Construct Tk::Widget 'MyNewWidget';
-
- sub ClassInit {
- my( $class, $mw ) = @_;
- #... e.g., class bindings here ...
- $class->SUPER::ClassInit( $mw );
- }
-
- sub Populate {
- my( $self, $args ) = @_;
-
- my $flag = delete $args->{-flag};
- if( defined $flag ) {
- # handle -flag => xxx which can only be done at create
- # time the delete above ensures that new() does not try
- # and do $self->configure( -flag => xxx );
- }
-
- $self->SUPER::Populate( $args );
-
- $self = $self->Component( ... );
-
- $self->Delegates( ... );
-
- $self->ConfigSpecs(
- '-cursor' => [ SELF, 'cursor', 'Cursor', undef ],
- '-something' => [ METHOD, dbName, dbClass, default ],
- '-text' => [ $label, dbName, dbClass, default ],
- '-heading' => [ {-text => $head},
- heading, Heading, 'My Heading' ],
- );
- }
-
- sub something {
- my( $self, $value) = @_;
- if ( @_ > 1 ) {
- # set it
- }
- return # current value
- }
-
-=head1 DESCRIPTION
-
-Tk::Derived is used with Perl's multiple inheritance to override some
-methods normally inherited from Tk::Widget.
-
-Tk::Derived should precede any Tk widgets in the class's base class
-definition.
-
-Tk::Derived's main purpose is to apply wrappers to C<configure> and C<cget>
-methods of widgets to allow the derived widget to add to or modify behaviour
-of the configure options supported by the base widget.
-
-The derived class should normally override the C<Populate> method provided
-by Tk::Derived and call C<ConfigSpecs> to declare configure options.
-
-The public methods provided by Tk::Derived are as follows:
-
-=over 4
-
-=item -E<gt>ConfigSpecs(-I<key> =E<gt> [I<kind>, I<name>, I<Class>, I<default>], ...)
-
-=back
-
-=head1 SEE ALSO
-
-L<Tk::ConfigSpecs|Tk::ConfigSpecs>
-L<Tk::mega|Tk::mega>
-L<Tk::composite|Tk::composite>
-
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Dialog.pm b/Master/tlpkg/tlperl/lib/Tk/Dialog.pm
deleted file mode 100644
index d713814813b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Dialog.pm
+++ /dev/null
@@ -1,68 +0,0 @@
-package Tk::Dialog;
-
-use vars qw($VERSION);
-$VERSION = '4.005'; # $Id: //depot/Tkutf8/Tk/Dialog.pm#4 $
-
-# Dialog - a translation of `tk_dialog' from Tcl/Tk to TkPerl (based on
-# John Stoffel's idea).
-#
-# Stephen O. Lidie, Lehigh University Computing Center. 94/12/27
-# lusol@Lehigh.EDU
-
-# Documentation after __END__
-
-use Carp;
-use strict;
-use base qw(Tk::DialogBox);
-
-Construct Tk::Widget 'Dialog';
-
-sub Populate
-{
-
- # Dialog object constructor. Uses `new' method from base class
- # to create object container then creates the dialog toplevel.
-
- my($cw, $args) = @_;
-
- $cw->SUPER::Populate($args);
-
- my ($w_bitmap,$w_but,$pad1,$pad2);
-
- # Create the Toplevel window and divide it into top and bottom parts.
-
- my (@pl) = (-side => 'top', -fill => 'both');
-
- ($pad1, $pad2) =
- ([-padx => '3m', -pady => '3m'], [-padx => '3m', -pady => '2m']);
-
-
- $cw->iconname('Dialog');
-
- my $w_top = $cw->Subwidget('top');
-
- # Fill the top part with the bitmap and message.
-
- @pl = (-side => 'left');
-
- $w_bitmap = $w_top->Label(Name => 'bitmap');
- $w_bitmap->pack(@pl, @$pad1);
-
- my $w_msg = $w_top->Label( -wraplength => '3i', -justify => 'left' );
-
- $w_msg->pack(-side => 'right', -expand => 1, -fill => 'both', @$pad1);
-
- $cw->Advertise(message => $w_msg);
- $cw->Advertise(bitmap => $w_bitmap );
-
- $cw->ConfigSpecs( -image => ['bitmap',undef,undef,undef],
- -bitmap => ['bitmap',undef,undef,undef],
- -font => ['message','font','Font', '-*-Times-Medium-R-Normal--*-180-*-*-*-*-*-*'],
- DEFAULT => ['message',undef,undef,undef]
- );
-}
-
-1;
-
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Dialog.pod b/Master/tlpkg/tlperl/lib/Tk/Dialog.pod
deleted file mode 100644
index 871206d504c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Dialog.pod
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright (c) 1992 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Dialog - Create modal dialog and wait for a response.
-
-=for pm Tk/Dialog.pm
-
-=for category Popups and Dialogs
-
-=head1 SYNOPSIS
-
-S< >I<$dialog> = I<$parent>-E<gt>B<Dialog>(I<-option> =E<gt> I<value>, ... );
-
-=head1 DESCRIPTION
-
-This procedure is part of the Tk script library - its arguments
-describe a dialog box. After creating a dialog box, B<Dialog> waits
-for the user to select one of the Buttons either by clicking on the
-Button with the mouse or by typing return to invoke the default Button
-(if any). Then it returns the text string of the selected Button.
-
-While waiting for the user to respond, B<Dialog> sets a local
-grab. This prevents the user from interacting with the application
-in any way except to invoke the dialog box. See the B<Show()> method.
-
-=head1 OPTIONS
-
-The following option/value pairs are supported:
-
-=over 4
-
-=item B<-title>
-
-Text to appear in the window manager's title bar for the dialog.
-
-=item B<-text>
-
-Message to appear in the top portion of the Dialog.
-
-=item B<-bitmap>
-
-If non-empty, specifies a bitmap to display in the top portion of the
-Dialog, to the left of the text. If this is an empty string then no
-bitmap is displayed in the Dialog.
-
-=item B<-default_button>
-
-Text label string of the Button that displays the default ring.
-
-=item B<-buttons>
-
-A reference to a list of Button label strings. Each I<string>
-specifies text to display in a Button, in order from left to right.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item I<$answer> = $dialog-E<gt>B<Show(>?-global?B<)>;
-
-This method displays the Dialog, waits for the user's response, and stores
-the text string of the selected Button in I<$answer>. If I<-global> is
-specified a global (rather than local) grab is performed.
-
-The actual Dialog is shown using the B<Popup> method. Any other
-options supplied to B<Show> are passed to B<Popup>, and can be used to
-position the Dialog on the screen. Please read Tk::Popup for details.
-
-=back
-
-=head1 ADVERTISED WIDGETS
-
-Because Tk::Dialog is a subclass of Tk::DialogBox it inherits all the
-advertised subwidgets of its superclass: e.g. "B_button-text", where
-'button-text' is a Button's -text value. Additionally, Tk::Dialog
-advertises:
-
-=over 4
-
-=item B<message>
-
-The dialog's Label widget containing the message text.
-
-=item B<bitmap>
-
-The dialog's Label widget containing the bitmap image.
-
-=back
-
-=head1 EXAMPLE
-
-I<$dialog> = I<$mw>-E<gt>B<Dialog>(-text =E<gt> 'Save File?', -bitmap =E<gt> 'question', -title =E<gt> 'Save File Dialog', -default_button =E<gt> 'Yes', -buttons =E<gt> [qw/Yes No Cancel/);
-
-=head1 KEYWORDS
-
-bitmap, dialog, modal, messageBox
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/DialogBox.pm b/Master/tlpkg/tlperl/lib/Tk/DialogBox.pm
deleted file mode 100644
index 6111a0ec51c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DialogBox.pm
+++ /dev/null
@@ -1,152 +0,0 @@
-#
-# DialogBox is similar to Dialog except that it allows any widget
-# in the top frame. Widgets can be added with the add method. Currently
-# there exists no way of deleting a widget once it has been added.
-
-package Tk::DialogBox;
-
-use strict;
-use Carp;
-
-use vars qw($VERSION);
-$VERSION = '4.016'; # was: sprintf '4.%03d', q$Revision: #13 $ =~ /\D(\d+)\s*$/;
-
-use base qw(Tk::Toplevel);
-
-Tk::Widget->Construct('DialogBox');
-
-sub Populate {
- my ($cw, $args) = @_;
-
- $cw->SUPER::Populate($args);
- my $buttons = delete $args->{'-buttons'};
- $buttons = ['OK'] unless defined $buttons;
- my $default_button = delete $args->{'-default_button'};
- $default_button = $buttons->[0] unless defined $default_button;
- my $cancel_button = delete $args->{'-cancel_button'};
- if (!$cancel_button && @$buttons == 1) {
- $cancel_button = $buttons->[0];
- }
-
- $cw->{'selected_button'} = '';
- $cw->transient($cw->Parent->toplevel);
- $cw->withdraw;
- if ($cancel_button) {
- $cw->protocol('WM_DELETE_WINDOW' => sub { $cw->{'cancel_button'}->invoke });
- } else {
- $cw->protocol('WM_DELETE_WINDOW' => sub { $cw->{'selected_button'} = undef });
- }
- # Make sure waitVariable exits if a waiting dialog is destroyed
- $cw->OnDestroy(sub { $cw->{'selected_button'} = $cw->{'selected_button'} });
-
- # create the two frames
- my $top = $cw->Component('Frame', 'top');
- $top->configure(-relief => 'raised', -bd => 1) unless $Tk::platform eq 'MSWin32';
- my $bot = $cw->Component('Frame', 'bottom');
- $bot->configure(-relief => 'raised', -bd => 1) unless $Tk::platform eq 'MSWin32';
- $bot->pack(qw/-side bottom -fill both -ipady 3 -ipadx 3/);
- $top->pack(qw/-side top -fill both -ipady 3 -ipadx 3 -expand 1/);
-
- # create a row of buttons in the bottom.
- my $bl; # foreach my $var: perl > 5.003_08
- foreach $bl (@$buttons)
- {
- my $b = $bot->Button(-text => $bl, -command => sub { $cw->{'selected_button'} = "$bl" } );
- $b->bind('<Return>' => [ $b, 'Invoke']);
- $cw->Advertise("B_$bl" => $b);
- if ($Tk::platform eq 'MSWin32')
- {
- $b->configure(-width => 10, -pady => 0);
- }
- if ($bl eq $default_button) {
- my $db = $bot->Frame(-relief => 'sunken', -bd => 1);
- $b->raise($db);
- $b->pack(-in => $db, -padx => '2', -pady => '2');
- $db->pack(-side => 'left', -expand => 1, -padx => 1, -pady => 1);
- $cw->{'default_button'} = $b;
- $cw->bind('<Return>' => [ $b, 'Invoke']);
- } else {
- $b->pack(-side => 'left', -expand => 1, -padx => 1, -pady => 1);
- }
- if (defined $cancel_button && $bl eq $cancel_button) {
- $cw->{'cancel_button'} = $b;
- }
- }
- if (defined $default_button && !$cw->{'default_button'}) {
- warn "Default button `$default_button' does not exist.\n";
- }
- if (defined $cancel_button && !$cw->{'cancel_button'}) {
- warn "Cancel button `$cancel_button' does not exist.\n";
- }
- $cw->ConfigSpecs(-command => ['CALLBACK', undef, undef, undef ],
- -foreground => ['DESCENDANTS', 'foreground','Foreground', 'black'],
- -background => ['DESCENDANTS', 'background','Background', undef],
- -focus => ['PASSIVE', undef, undef, undef],
- -showcommand => ['CALLBACK', undef, undef, undef],
- );
- $cw->Delegates('Construct',$top);
-}
-
-sub add {
- my ($cw, $wnam, @args) = @_;
- my $w = $cw->Subwidget('top')->$wnam(@args);
- $cw->Advertise("\L$wnam" => $w);
- return $w;
-}
-
-sub Wait
-{
- my $cw = shift;
- $cw->Callback(-showcommand => $cw);
- $cw->waitVariable(\$cw->{'selected_button'});
- $cw->grabRelease if Tk::Exists($cw);
- $cw->withdraw if Tk::Exists($cw);
- $cw->Callback(-command => $cw->{'selected_button'});
-}
-
-sub Show {
-
- croak 'DialogBox: "Show" method requires at least 1 argument'
- if scalar @_ < 1;
- my $cw = shift;
- my ($grab) = @_;
- my $old_focus = $cw->focusSave;
- my $old_grab = $cw->grabSave;
-
- shift if defined $grab && length $grab && ($grab =~ /global/);
- $cw->Popup(@_);
-
- Tk::catch {
- if (defined $grab && length $grab && ($grab =~ /global/)) {
- $cw->grabGlobal;
- } else {
- $cw->grab;
- }
- };
- if (my $focusw = $cw->cget(-focus)) {
- $focusw->focus;
- } elsif (defined $cw->{'default_button'}) {
- $cw->{'default_button'}->focus;
- } else {
- $cw->focus;
- }
- $cw->Wait;
- &$old_focus;
- &$old_grab;
- return $cw->{'selected_button'};
-}
-
-sub SelectButton
-{
- my ($w, $button_text) = @_;
- $w->{'selected_button'} = $button_text;
-}
-
-sub Exit
-{
- my $cw = shift;
- #kill the dialogbox, by faking a 'DONE'
- $cw->{'selected_button'} = $cw->{'default_button'}->cget(-text);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/DialogBox.pod b/Master/tlpkg/tlperl/lib/Tk/DialogBox.pod
deleted file mode 100644
index a091cd98427..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DialogBox.pod
+++ /dev/null
@@ -1,156 +0,0 @@
-
-=head1 NAME
-
-Tk::DialogBox - create and manipulate a dialog screen.
-
-=for pm Tixish/DialogBox.pm
-
-=for category Tix Extensions
-
-=head1 SYNOPSIS
-
- use Tk::DialogBox
- ...
- $d = $top->DialogBox(-title => "Title", -buttons => ["OK", "Cancel"]);
- $w = $d->add(Widget, args)->pack;
- ...
- $button = $d->Show;
-
-=head1 DESCRIPTION
-
-B<DialogBox> is very similar to B<Dialog> except that it allows
-any widget in the top Frame. B<DialogBox> creates two
-Frames, I<top> and I<bottom>. The bottom Frame shows all the
-specified Buttons, lined up from left to right. The top Frame acts
-as a container for all other widgets that can be added with the
-B<add()> method.
-
-=head1 OPTIONS
-
-The options recognized by B<DialogBox> are as follows:
-
-=over 4
-
-=item B<-title>
-
-Specify the title of the DialogBox. If this is not set, then the
-name of the program is used.
-
-=item B<-buttons>
-
-The button names to display in the bottom Frame. This is a reference
-to an array of strings containing the text to put on each
-Button. There is no default value for this. If you do not specify any
-button names, no Buttons are displayed.
-
-=item B<-default_button>
-
-Specifies the default Button that is considered invoked when user
-presses <Return> on the DialogBox. This Button is highlighted. If
-no default Button is specified, then the first element of the
-array whose reference is passed to the B<-buttons> option is used
-as the default.
-
-=item B<-cancel_button>
-
-Specifies the Button that is considered invoked when the user closes
-the DialogBox using the window manager's close button. If the
-B<-cancel_button> option is not given, and if there's only one button
-configured, then this button is also used as the cancel button.
-Otherwise no button is considered as the cancel button; in such a case
-B<Show> just returns C<undef> when the user closes the DialogBox.
-
-=item B<-command>
-
-A callback which is executed after invoking an action to close the
-DialogBox, but before restoring focus and grab information. The
-selected button is passed as the first argument.
-
-=item B<-focus>
-
-Specify the widget to receive the initial focus after popping up the
-DialogBox. By default the B<-default_button> widget receives the
-initial focus.
-
-=item B<-showcommand>
-
-A callback which is executed before displaying the DialogBox and
-waiting for user input. The DialogBox itself is passed as the first
-argument.
-
-=back
-
-=head1 METHODS
-
-B<DialogBox> supports only two methods as of now:
-
-=over 4
-
-=item B<add(>I<widget>, I<options>B<)>
-
-Add the widget indicated by I<widget>. I<Widget> can be the name
-of any Tk widget (standard or contributed). I<options> are the
-options that the widget accepts. The widget is advertized as a
-subwidget of B<DialogBox>. The name of I<widget> is
-lower-cased and used as the advertised name. If multiple instances of
-I<widget> are created in the B<DialogBox>, then only the last one gets
-the advertised name. B<add()> does not automatically B<pack()> or
-B<grid()> I<widget> into the B<DialogBox>.
-
-=item B<Show(>I<?-global?>B<)>
-
-Displays the Dialog until the user invokes one of the Buttons in the
-bottom Frame. If the grab type I<-global> is specified, then B<Show>
-uses that grab; otherwise it defaults to a local grab. Returns the
-name of the Button invoked.
-
-The actual Dialog is shown using the B<Popup> method. Any other
-options supplied to B<Show> are passed to B<Popup>, and can be used to
-position the Dialog on the screen. Please read Tk::Popup for details.
-
-=item B<Exit()>
-
-Close the dialogbox, by emulating a click on the default button.
-
-=back
-
-=head1 ADVERTISED WIDGETS
-
-=over 4
-
-=item B<top>
-
-The subwidget reference to the top half of the DialogBox widget, the Frame
-containing widgets added by the B<add> method.
-
-=item B<bottom>
-
-The subwidget reference to the bottom half of the DialogBox widget, the Frame
-containing the Button widgets.
-
-=item B<B_"button-text">
-
-Individual subwidget references to the Buttons in the DialogBox widget. The
-subwidget name is the string I<B_> concatenated with the Button's -text
-value.
-
-=back
-
-=head1 BUGS
-
-There is no way of removing a widget once it has been added to the
-top Frame, unless you access the I<top> subwidget and go through the
-child widgets.
-
-There is no control over the appearance of the Buttons in the
-bottom Frame nor is there any way to control the placement of the
-two Frames with respect to each other.
-
-=head1 AUTHOR
-
-B<Rajappa Iyer> rsi@earthling.net
-
-This code is distributed under the same terms as Perl.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/DirSelect.pm b/Master/tlpkg/tlperl/lib/Tk/DirSelect.pm
deleted file mode 100755
index 85e402f131c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DirSelect.pm
+++ /dev/null
@@ -1,503 +0,0 @@
-#===============================================================================
-# Tk/DirSelect.pm
-# Copyright (C) 2000-2001 Kristi Thompson <kristi@kristi.ca>
-# Copyright (C) 2002-2005,2010 Michael Carman <mjcarman@mchsi.com>
-# Last Modified: 2/16/2010
-#===============================================================================
-BEGIN { require 5.004 }
-
-package Tk::DirSelect;
-use Cwd;
-use File::Spec;
-use Tk 800;
-require Tk::Frame;
-require Tk::BrowseEntry;
-require Tk::Button;
-require Tk::Label;
-require Tk::DirTree;
-
-use strict;
-use base 'Tk::Toplevel';
-Construct Tk::Widget 'DirSelect';
-
-use vars qw'$VERSION';
-$VERSION = '1.12';
-
-my %colors;
-my $isWin32;
-
-#-------------------------------------------------------------------------------
-# Subroutine : ClassInit()
-# Purpose : Class initialzation.
-# Notes :
-#-------------------------------------------------------------------------------
-sub ClassInit {
- my ($class, $mw) = @_;
- $class->SUPER::ClassInit($mw);
-
- $isWin32 = $^O eq 'MSWin32';
-
- # Get system colors from a Text widget for use in DirTree
- my $t = $mw->Text();
- foreach my $x (qw'-background -selectbackground -selectforeground') {
- $colors{$x} = $t->cget($x);
- }
- $t->destroy();
-}
-
-
-#-------------------------------------------------------------------------------
-# Subroutine : Populate()
-# Purpose : Create the DirSelect widget
-# Notes :
-#-------------------------------------------------------------------------------
-sub Populate {
- my ($w, $args) = @_;
- my $directory = delete $args->{-dir} || cwd();
- my $title = delete $args->{-title} || 'Select Directory';
-
- $w->withdraw;
- $w->SUPER::Populate($args);
- $w->ConfigSpecs(-title => ['METHOD', 'title', 'Title', $title]);
- $w->bind('<Escape>', sub { $w->{dir} = undef });
-
- my %f = (
- drive => $w->Frame->pack(-anchor => 'n', -fill => 'x'),
- button => $w->Frame->pack(-side => 'bottom', -anchor => 's', -fill => 'x', -ipady => 6),
- tree => $w->Frame->pack(-fill => 'both', -expand => 1),
- );
-
- $w->{tree} = $f{tree}->Scrolled('DirTree',
- -scrollbars => 'osoe',
- -selectmode => 'single',
- -ignoreinvoke => 0,
- -width => 50,
- -height => 15,
- %colors,
- %$args,
- )->pack(-fill => 'both', -expand => 1);
-
- $w->{tree}->configure(-command => sub { $w->{tree}->opencmd($_[0]) });
- $w->{tree}->configure(-browsecmd => sub { $w->{tree}->anchorClear });
-
- $f{button}->Button(
- -width => 7,
- -text => 'OK',
- -command => sub { $w->{dir} = $w->{tree}->selectionGet() },
- )->pack(-side => 'left', -expand => 1);
-
- $f{button}->Button(
- -width => 7,
- -text => 'Cancel',
- -command => sub { $w->{dir} = undef },
- )->pack(-side => 'left', -expand => 1);
-
- if ($isWin32) {
- $f{drive}->Label(-text => 'Drive:')->pack(-side => 'left');
- $w->{drive} = $f{drive}->BrowseEntry(
- -variable => \$w->{selected_drive},
- -browsecmd => [\&_browse, $w->{tree}],
- -state => 'readonly',
- )->pack(-side => 'left', -fill => 'x', -expand => 1);
-
- if ($Tk::VERSION >= 804) {
- # widget is readonly, but shouldn't appear disabled
- for my $e ($w->{drive}->Subwidget('entry')->Subwidget('entry')) {
- $e->configure(-disabledforeground => $colors{-foreground});
- $e->configure(-disabledbackground => $colors{-background});
- }
- }
- }
- else {
- $f{drive}->destroy;
- }
-
- # right-click context menu
- my $menu = $w->Menu(
- -tearoff => 0,
- -menuitems => [
- [qw/command ~New/, -command => [\&_mkdir , $w]],
- [qw/command ~Rename/, -command => [\&_rename, $w]],
- [qw/command ~Delete/, -command => [\&_rmdir, $w]],
- ],
- );
- $menu->bind('<FocusOut>' => sub {$menu->unpost});
- $w->{tree}->bind('<Button-3>' => [\&_context, $menu, Ev('X'), Ev('Y')]);
-
- # popup overlay for renaming directories
- $w->{renameval} = undef;
- $w->{popup} = $w->Toplevel();
- $w->{rename} = $w->{popup}->Entry(
- -relief => 'groove',
- -borderwidth => 1,
- )->pack(-fill => 'x', -expand => 1);
- $w->{popup}->overrideredirect(1);
- $w->{popup}->withdraw;
- $w->{rename}->bind('<Escape>', sub {$w->{renameval} = undef});
- $w->{rename}->bind('<FocusOut>', sub {$w->{renameval} = undef});
- $w->{rename}->bind('<KeyPress-Return>', sub {$w->{renameval} = $w->{rename}->get});
-
- return $w;
-}
-
-
-#-------------------------------------------------------------------------------
-# Subroutine : Show()
-# Purpose : Display the DirSelect widget.
-# Notes :
-#-------------------------------------------------------------------------------
-sub Show {
- my $w = shift;
- my $dir = shift;
- my $cwd = cwd();
- my $focus = $w->focusSave;
- my $grab = $w->grabSave;
-
- $dir = $cwd unless defined $dir && -d $dir;
- chdir($dir);
-
- if ($isWin32) {
- # populate the drive list
- my @drives = _get_volume_info();
- $w->{drive}->delete(0, 'end');
- my $startdrive = _drive($dir);
-
- foreach my $d (@drives) {
- $w->{drive}->insert('end', $d);
- if ($startdrive eq _drive($d)) {
- $w->{selected_drive} = $d;
- }
- }
- }
-
- # show initial directory
- _showdir($w->{tree}, $dir);
-
- $w->Popup(@_); # show widget
- $w->focus; # seize focus
- $w->grab; # seize grab
- $w->waitVariable(\$w->{dir}); # wait for user selection (or cancel)
- $w->grabRelease; # release grab
- $w->withdraw; # run and hide
- $focus->(); # restore prior focus
- $grab->(); # restore prior grab
- chdir($cwd) # restore working directory
- or warn "Could not chdir() back to '$cwd' [$!]\n";
-
- # HList SelectionGet() behavior changed around Tk 804.025
- if (ref $w->{dir} eq 'ARRAY') {
- $w->{dir} = $w->{dir}[0];
- }
-
- {
- local $^W;
- $w->{dir} .= '/' if ($isWin32 && $w->{dir} =~ /:$/);
- }
-
- return $w->{dir};
-}
-
-
-#-------------------------------------------------------------------------------
-# Subroutine : _browse()
-# Purpose : Browse to a mounted filesystem (Win32)
-# Notes :
-#-------------------------------------------------------------------------------
-sub _browse {
- my ($w, undef, $d) = @_;
- $d = _drive($d) . '/';
- chdir($d);
- _showdir($w, $d);
-
- # Workaround: Under Win* versions of Perl/Tk, scrollbars have a tendancy
- # to show up but be disabled.
- $w->yview(scroll => 1, 'units');
- $w->update;
- $w->yview(scroll => -1, 'units');
-}
-
-
-#-------------------------------------------------------------------------------
-# Subroutine : _showdir()
-# Purpose : Show the requested directory
-# Notes :
-#-------------------------------------------------------------------------------
-sub _showdir {
- my $w = shift;
- my $dir = shift;
- $w->delete('all');
- $w->chdir($dir);
-}
-
-
-#-------------------------------------------------------------------------------
-# Subroutine : _get_volume_info()
-# Purpose : Get volume information (Win32)
-# Notes :
-#-------------------------------------------------------------------------------
-sub _get_volume_info {
- require Win32API::File;
-
- my @drivetype = (
- 'Unknown',
- 'No root directory',
- 'Removable disk drive',
- 'Fixed disk drive',
- 'Network drive',
- 'CD-ROM drive',
- 'RAM Disk',
- );
-
- my @drives;
- foreach my $ld (Win32API::File::getLogicalDrives()) {
- my $drive = _drive($ld);
- my $type = $drivetype[Win32API::File::GetDriveType($drive)];
- my $label;
-
- Win32API::File::GetVolumeInformation(
- $drive, $label, [], [], [], [], [], []);
-
- push @drives, "$drive [$label] $type";
- }
-
- return @drives;
-}
-
-
-#-------------------------------------------------------------------------------
-# Subroutine : _drive()
-# Purpose : Get the drive letter (Win32)
-# Notes :
-#-------------------------------------------------------------------------------
-sub _drive {
- shift =~ /^(\w:)/;
- return uc $1;
-}
-
-
-#-------------------------------------------------------------------------------
-# Method : _context
-# Purpose : Display the context menu
-# Notes :
-#-------------------------------------------------------------------------------
-sub _context {
- my ($w, $m, $x, $y) = @_;
- my $wy = $y - $w->rooty;
- $w->selectionClear();
- $w->selectionSet($w->nearest($wy));
- $m->post($x, $y);
- $m->focus;
-}
-
-
-#-------------------------------------------------------------------------------
-# Method : _mkdir
-# Purpose : Create a new directory under the current selection
-# Notes :
-#-------------------------------------------------------------------------------
-sub _mkdir {
- my $w = shift;
- my $dt = $w->{tree};
- my ($sel) = $dt->selectionGet();
-
- my $cwd = Cwd::cwd();
- if (chdir($sel)) {
- my $base = 'NewDirectory';
- my $name = $base;
- my $i = 1;
-
- while (-d $name && $i < 1000) {
- $name = $base . $i++;
- }
-
- unless (-d $name) {
- if (mkdir($name)) {
- _showdir($dt, $sel);
- $dt->selectionClear();
- $dt->selectionSet($sel . '/' . $name);
- $w->_rename();
- }
- else {
- $w->messageBox(
- -title => 'Unable to create directory',
- -message => "The directory '$name' could not be created.\n$!",
- -icon => 'error',
- -type => 'OK',
- );
- }
- }
-
- chdir($cwd);
- }
- else {
- warn "Unable to chdir() for mkdir() [$!]\n";
- }
-}
-
-
-#-------------------------------------------------------------------------------
-# Method : _rmdir
-# Purpose : Delete the selected directory
-# Notes :
-#-------------------------------------------------------------------------------
-sub _rmdir {
- my $w = shift;
- my $dt = $w->{tree};
- my ($sel) = $dt->selectionGet();
-
- my @path = File::Spec->splitdir($sel);
- my $dir = pop @path;
- my $pdir = File::Spec->catdir(@path);
-
- my $cwd = Cwd::cwd();
- if (chdir($pdir)) {
- if (rmdir($dir)) {
- _showdir($dt, $pdir);
- }
- else {
- $w->messageBox(
- -title => 'Unable to delete directory',
- -message => "The directory '$dir' could not be deleted.\n$!",
- -icon => 'error',
- -type => 'OK',
- );
- }
- chdir($cwd);
- }
- else {
- warn "Unable to chdir() for rmdir() [$!]\n";
- }
-}
-
-#-------------------------------------------------------------------------------
-# Method : _rename
-# Purpose : Rename the selected directory
-# Notes :
-#-------------------------------------------------------------------------------
-sub _rename {
- my $w = shift;
- my $dt = $w->{tree};
- my $popup = $w->{popup};
- my $entry = $w->{rename};
- my ($sel) = $dt->selectionGet();
- my ($x, $y, $x1, $y1) = $dt->infoBbox($sel);
-
- my @path = File::Spec->splitdir($sel);
- my $dir = pop @path;
- my $pdir = File::Spec->catdir(@path);
-
- $entry->delete(0, 'end');
- $entry->insert(0, $dir);
- $entry->selectionRange(0, 'end');
- $entry->focus;
-
- my $font = ($entry->configure(-font))[4];
- my $text = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ';
- my $width = $entry->fontMeasure($font, $text) / length($text);
- $entry->configure(-width => ($x1 - $x) / $width);
-
- $popup->Post($dt->rootx + $x, $dt->rooty + $y);
- $popup->waitVariable(\$w->{renameval});
- $popup->withdraw;
-
- if (defined $w->{renameval} && $w->{renameval} ne $dir) {
- my $cwd = Cwd::cwd();
-
- if (chdir($pdir)) {
- unless (rename($dir, $w->{renameval})) {
- $w->messageBox(
- -title => 'Unable to rename directory',
- -message => "The directory '$dir' could not be renamed.\n$!",
- -icon => 'error',
- -type => 'OK',
- );
- }
- chdir($cwd);
- _showdir($dt, $pdir); # rebrowse to update the display
- }
- else {
- warn "Unable to chdir() for rename() [$!]\n";
- }
- }
-}
-
-
-1;
-
-__END__
-=pod
-
-=head1 NAME
-
-Tk::DirSelect - Cross-platform directory selection widget.
-
-=head1 SYNOPSIS
-
- use Tk::DirSelect;
- my $ds = $mw->DirSelect();
- my $dir = $ds->Show();
-
-=head1 DESCRIPTION
-
-This module provides a cross-platform directory selection widget. For
-systems running Microsoft Windows, this includes selection of local and
-mapped network drives. A context menu (right-click or E<lt>Button3E<gt>)
-allows the creation, renaming, and deletion of directories while
-browsing.
-
-Note: Perl/Tk 804 added the C<chooseDirectory> method which uses native
-system dialogs where available. (i.e. Windows) If you want a native feel
-for your program, you probably want to use that method instead --
-possibly using this module as a fallback for systems with older versions
-of Tk installed.
-
-=head1 METHODS
-
-=head2 C<DirSelect([-title =E<gt> 'title'], [options])>
-
-Constructs a new DirSelect widget as a child of the invoking object
-(usually a MainWindow).
-
-The title for the widget can be set by specifying C<-title =E<gt>
-'Title'>. Any other options provided will be passed through to the
-DirTree widget that displays directories, so be sure they're appropriate
-(e.g. C<-width>)
-
-=head2 C<Show([directory], [options])>
-
-Displays the DirSelect widget and returns the user selected directory or
-C<undef> if the operation is canceled.
-
-All arguments are optional. The first argument (if defined) is the
-initial directory to display. The default is to display the current
-working directory. Any additional options are passed through to the
-Popup() method. This means that you can do something like
-
- $ds->Show(undef, -popover => $mw);
-
-to center the dialog over your application.
-
-=head1 DEPENDENCIES
-
-=over 4
-
-=item * Perl 5.004
-
-=item * Tk 800
-
-=item * Win32API::File (under Microsoft Windows only)
-
-=back
-
-=head1 LICENSE AND COPYRIGHT
-
-Copyright 2000-2001 Kristi Thompson <kristi@kristi.ca>
-Copyright 2002-2005,2010 Michael Carman <mjcarman@cpan.org>
-
-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
-by the Free Software Foundation; or the Artistic License.
-
-See http://dev.perl.org/licenses/ for more information.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tk/DirTree.pm b/Master/tlpkg/tlperl/lib/Tk/DirTree.pm
deleted file mode 100644
index abdfbdb547d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DirTree.pm
+++ /dev/null
@@ -1,261 +0,0 @@
-package Tk::DirTree;
-# DirTree -- TixDirTree widget
-#
-# Derived from DirTree.tcl in Tix 4.1
-#
-# Chris Dean <ctdean@cogit.com>
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '4.022';
-
-use Tk;
-use Tk::Derived;
-use Tk::Tree;
-use Cwd;
-use DirHandle;
-use File::Spec qw();
-
-use base qw(Tk::Derived Tk::Tree);
-use strict;
-
-Construct Tk::Widget 'DirTree';
-
-my $sep = $^O eq 'MSWin32' ? '\\' : '/';
-
-*_fs_encode = eval { require Encode; 1 } ? sub { Encode::encode("iso-8859-1", $_[0]) } : sub { $_[0] };
-
-sub Populate {
- my( $cw, $args ) = @_;
-
- $cw->SUPER::Populate( $args );
-
- $cw->ConfigSpecs(
- -dircmd => [qw/CALLBACK dirCmd DirCmd DirCmd/],
- -showhidden => [qw/PASSIVE showHidden ShowHidden 0/],
- -image => [qw/PASSIVE image Image folder/],
- -directory => [qw/SETMETHOD directory Directory ./],
- -value => '-directory' );
-
- $cw->configure( -separator => $sep,
- -itemtype => 'imagetext',
- );
-}
-
-sub DirCmd {
- my( $w, $dir, $showhidden ) = @_;
- $dir .= $sep if $dir =~ /^[a-z]:$/i and $^O eq 'MSWin32';
- my $h = DirHandle->new( $dir ) or return();
- my @names = grep( $_ ne '.' && $_ ne '..', $h->read );
- @names = grep( ! /^[.]/, @names ) unless $showhidden;
- return( @names );
-}
-
-*dircmd = \&DirCmd;
-
-sub fullpath
-{
- my ($path) = @_;
- my $cwd = getcwd();
- if (CORE::chdir($path))
- {
- $path = getcwd();
- CORE::chdir($cwd) || die "Cannot cd back to $cwd:$!";
- }
- else
- {
- warn "Cannot cd to $path:$!"
- }
- $path = File::Spec->canonpath($path);
- return $path;
-}
-
-sub directory
-{
- my ($w,$key,$val) = @_;
- # We need a value for -image, so its being undefined
- # is probably caused by order of handling config defaults
- # so defer it.
- $w->afterIdle([$w, 'set_dir' => $val]);
-}
-
-sub set_dir {
- my( $w, $val ) = @_;
- my $fulldir = fullpath( $val );
-
- my $parent = $sep;
- if ($^O eq 'MSWin32')
- {
- if ($fulldir =~ s/^([a-z]:)//i)
- {
- $parent = $1;
- }
- }
- $w->add_to_tree( $parent, $parent) unless $w->infoExists($parent);
-
- my @dirs = ($parent);
- foreach my $name (split( /\Q$sep\E/, $fulldir )) {
- next unless length $name;
- push @dirs, $name;
- my $dir = File::Spec->catfile( @dirs );
- $w->add_to_tree( $dir, $name, $parent )
- unless $w->infoExists( $dir );
- $parent = $dir;
- }
-
- $w->OpenCmd( $parent );
- $w->setmode( $parent, 'close' );
-}
-*chdir = \&set_dir;
-
-
-sub OpenCmd {
- my( $w, $dir ) = @_;
-
- my $parent = $dir;
- foreach my $name ($w->dirnames( $parent )) {
- next if ($name eq '.' || $name eq '..');
- my $subdir = File::Spec->catfile( $dir, $name );
- $subdir = _fs_encode($subdir);
- next unless -d $subdir;
- if( $w->infoExists( $subdir ) ) {
- $w->show( -entry => $subdir );
- } else {
- $w->add_to_tree( $subdir, $name, $parent );
- }
- }
-}
-
-*opencmd = \&OpenCmd;
-
-sub add_to_tree {
- my( $w, $dir, $name, $parent ) = @_;
-
- my $dir8 = _fs_encode($dir);
- my $image = $w->cget('-image');
- if ( !UNIVERSAL::isa($image, 'Tk::Image') ) {
- $image = $w->Getimage( $image );
- }
- my $mode = 'none';
- $mode = 'open' if $w->has_subdir( $dir );
-
- my @args = (-image => $image, -text => $name);
- if( $parent ) { # Add in alphabetical order.
- foreach my $sib ($w->infoChildren( $parent )) {
- use if $^O ne 'MSWin32', "locale"; # dumps core under Windows under some (japanese?) locales, see http://www.nntp.perl.org/group/perl.cpan.testers/2008/11/msg2550386.html
- my $sib8 = _fs_encode($sib);
- if ($sib8 gt $dir8) {
- push @args, (-before => $sib);
- last;
- }
- }
- }
-
- $w->add( $dir, @args );
- $w->setmode( $dir, $mode );
-}
-
-sub has_subdir {
- my( $w, $dir ) = @_;
- foreach my $name ($w->dirnames( $dir )) {
- next if ($name eq '.' || $name eq '..');
- next if ($name =~ /^\.+$/);
- return( 1 ) if -d File::Spec->catfile( $dir, $name );
- }
- return( 0 );
-}
-
-sub dirnames {
- my( $w, $dir ) = @_;
- my @names = $w->Callback( '-dircmd', $dir, $w->cget( '-showhidden' ) );
- return( @names );
-}
-
-{
- package Tk::DirTreeDialog;
- use base qw(Tk::Toplevel);
- Construct Tk::Widget 'DirTreeDialog';
-
- sub Populate {
- my($w, $args) = @_;
- $w->{curr_dir} = delete $args->{-initialdir};
- if (!defined $w->{curr_dir}) {
- require Cwd;
- $w->{curr_dir} = Cwd::getcwd();
- }
- if (defined $args->{-mustexist}) {
- die "-mustexist is not yet implemented";
- }
- my $title = $args->{-title} || "Choose directory:";
- delete $args->{-popover};
-
- $w->title($title);
- $w->{ok} = 0; # flag: "1" means OK, "-1" means cancelled
-
- $w->transient($w->Parent->toplevel);
-
- # Create Frame widget before the DirTree widget, so it's always visible
- # if the window gets resized.
- my $f = $w->Frame->pack(-fill => "x", -side => "bottom");
-
- my $d;
- $d = $w->Scrolled('DirTree',
- -scrollbars => 'osoe',
- -width => 35,
- -height => 20,
- -selectmode => 'browse',
- -exportselection => 1,
- -browsecmd => sub {
- $w->{curr_dir} = shift;
- },
-
- # With this version of -command a double-click will
- # select the directory
- -command => sub { $w->{ok} = 1 },
-
- # With this version of -command a double-click will
- # open a directory. Selection is only possible with
- # the Ok button.
- #-command => sub { $d->opencmd($_[0]) },
- )->pack(-fill => "both", -expand => 1);
- # Set the initial directory
- $d->set_dir($w->{curr_dir});
-
- $f->Button(-text => 'Ok',
- -command => sub { $w->{ok} = 1 })->pack(-side => 'left');
- $f->Button(-text => 'Cancel',
- -command => sub { $w->{ok} = -1 })->pack(-side => 'left');
- $w->OnDestroy(sub { $w->{ok} = -1 });
- }
-
- sub Show {
- my $w = shift;
- my $old_focus = $w->focusSave;
- my $old_grab = $w->grabSave;
- Tk::catch {
- $w->grab;
- };
- $w->waitVariable(\$w->{ok});
- my $ret = $w->{ok} == 1 ? $w->{curr_dir} : undef;
- $w->grabRelease if Tk::Exists($w);
- &$old_focus;
- &$old_grab;
- $w->destroy if Tk::Exists($w);
- $ret;
- }
-}
-
-1;
-
-__END__
-
-# Copyright (c) 1996, Expert Interface Technologies
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# The file man.macros and some of the macros used by this file are
-# copyrighted: (c) 1990 The Regents of the University of California.
-# (c) 1994-1995 Sun Microsystems, Inc.
-# The license terms of the Tcl/Tk distrobution are in the file
-# license.tcl.
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/DirTree.pod b/Master/tlpkg/tlperl/lib/Tk/DirTree.pod
deleted file mode 100644
index d8ded2f41b7..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DirTree.pod
+++ /dev/null
@@ -1,172 +0,0 @@
-
-=head1 NAME
-
-Tk::DirTree - Create and manipulate DirTree widgets
-
-=for pm Tixish/DirTree.pm
-
-=for category Tix Extensions
-
-=head1 SYNOPSIS
-
-S< >B<use Tk::DirTree;>
-
-S< >I<$dirtree> = I<$parent>-E<gt>B<DirTree>(?I<options>?);
-
-=head1 SUPER-CLASS
-
-The B<DirTree> class is derived from the L<Tree|Tk::Tree> class and inherits
-all the methods, options and subwidgets of its super-class.
-
-=head1 STANDARD OPTIONS
-
-B<Tree> supports all the standard options of a Tree widget. See
-L<Tk::options> for details on the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<browseCmd>
-
-=item Class: B<BrowseCmd>
-
-=item Switch: B<-browsecmd>
-
-Specifies a L<callback|Tk::callbacks> to call whenever the user browses on a directory
-(usually by single-clicking on the name of the directory). The callback
-is called with one argument, the complete pathname of the directory.
-
-=item Name: B<command>
-
-=item Class: B<Command>
-
-=item Switch: B<-command>
-
-Specifies the L<callback|Tk::callbacks> to be called when the user activates on a directory
-(usually by double-clicking on the name of the directory). The callback
-is called with one argument, the complete pathname of the directory.
-
-=item Name: B<dircmd>
-
-=item Class: B<DirCmd>
-
-=item Switch: B<-dircmd>
-
-Specifies the L<callback|Tk::callbacks> to be called when a directory listing is needed
-for a particular directory. If this option is not specified, by
-default the DirTree widget will attempt to read the directory as a
-Unix directory. On special occasions, the application programmer may
-want to supply a special method for reading directories: for example,
-when he needs to list remote directories. In this case, the B<-dircmd>
-option can be used. The specified callback accepts two arguments: the
-first is the name of the directory to be listed; the second is a
-Boolean value indicating whether hidden sub-directories should be
-listed. This callback returns a list of names of the sub-directories of
-this directory. For example:
-
- sub read_dir {
- my( $dir, $showhidden ) = @_;
- return( qw/DOS NORTON WINDOWS/ ) if $dir eq "C:\\";
- return();
- }
-
-=item Name: B<showHidden>
-
-=item Class: B<ShowHidden>
-
-=item Switch: B<-showhidden>
-
-Specifies whether hidden directories should be shown. By default, a
-directory name starting with a period "." is considered as a hidden
-directory. This rule can be overridden by supplying an alternative
-B<-dircmd> option.
-
-=item Name: B<directory>
-
-=item Class: B<Directory>
-
-=item Switch: B<-directory>
-
-=item Alias: B<-value>
-
-Specifies the name of the current directory to be displayed in the
-DirTree widget.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<DirTree> constructor method creates a new window (given by the $dirtree
-argument) and makes it into a DirTree widget. Additional options,
-described above, may be specified on the command line or in the
-option database to configure aspects of the DirTree such as its
-cursor and relief. The DirTree widget displays a list view of a
-directory, its previous directories and its sub-directories. The
-user can choose one of the directories displayed in the list or
-change to another directory.
-
-=head1 WIDGET METHODS
-
-The B<DirTree> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-The following additional methods are available for DirTree widgets:
-
-=over 4
-
-=item I<$dirtree>-E<gt>B<chdir>(I<dir>)
-
-Change the current directory to I<dir>.
-
-=back
-
-=head1 OTHER METHODS
-
-These methods have to be documented or made private:
-
-=over 4
-
-=item OpenCmd
-
-=item Populate
-
-=item add_to_tree
-
-=item dirnames
-
-=item fullpath
-
-=item has_subdir
-
-=item opencmd
-
-=item set_dir
-
-=back
-
-=head1 BINDINGS
-
-The mouse and keyboard bindings of the DirTree widget are the same as
-the bindings of the L<Tree|Tk::Tree> widget.
-
-=head1 KEYWORDS
-
-directory, tree, tix
-
-=head1 SEE ALSO
-
-L<Tk::Tree|Tk::Tree>
-L<Tk::HList|Tk::HList>
-
-=head1 AUTHOR
-
-Perl/TK version by Chris Dean <ctdean@cogit.com>. Original Tcl/Tix
-version by Ioi Kim Lam.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Dirlist.pm b/Master/tlpkg/tlperl/lib/Tk/Dirlist.pm
deleted file mode 100644
index f16ce021f41..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Dirlist.pm
+++ /dev/null
@@ -1,113 +0,0 @@
-package Tk::Dirlist;
-require Tk::Derived;
-require Tk::HList;
-require DirHandle;
-use Cwd;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/Tk/Dirlist.pm#5 $
-
-use base qw(Tk::Derived Tk::HList);
-use strict;
-Construct Tk::Widget 'Dirlist';
-
-sub getimage
-{
- my ($w,$key) = @_;
- unless (exists $w->{$key})
- {
- $w->{$key} = $w->Pixmap(-id => $key);
- unless ($w->{$key})
- {
- $w->{$key} = $w->Bitmap($key);
- }
- }
- return $w->{$key};
-}
-
-
-sub Populate
-{
- my ($cw,$args) = @_;
- $cw->configure(-separator => '/', -itemtype => 'imagetext');
- $cw->ConfigSpecs(-directory => ['SETMETHOD','directory','Directory','.']);
-}
-
-sub fullpath
-{
- my ($path) = @_;
- my $cwd = getcwd;
- if (chdir($path))
- {
- $path = getcwd;
- chdir($cwd);
- }
- else
- {
- warn "Cannot cd to $path:$!"
- }
-# print "$path\n";
- return $path;
-}
-
-sub AddDir
-{
- my ($w,$dir) = @_;
- my $path = '';
- my $prefix = '';
- my $first = 0;
- my $name;
- foreach $name (split m#/#,$dir)
- {
- $first++;
- if ($name eq '')
- {
- next unless ($first == 1);
- $path = '/';
- $name = '/';
- }
- else
- {
- $path .= $prefix;
- $path .= $name;
- $prefix = '/';
- }
- unless ($w->info('exists' => $path))
- {
-# print "Add $path\n";
- $w->add($path,-image => $w->getimage('folder'), -text => $name);
- }
- }
-}
-
-sub choose_image
-{
- my ($w,$path) = @_;
- return 'folder' if (-d $path);
- return 'srcfile' if ($path =~ /\.[ch]$/);
- return 'textfile' if (-T $path);
- return 'file';
-}
-
-
-sub directory
-{
- my ($w,$key,$val) = @_;
- my $h = DirHandle->new($val);
- $w->AddDir($val = fullpath($val));
- my $f;
- $w->entryconfigure($val,-image => $w->getimage('act_fold'));
- foreach $f (sort $h->read)
- {
- next if ($f =~ /^\.+$/);
- my $path = "$val/$f";
- unless ($w->info('exists' => $path))
- {
- my $image = $w->getimage($w->choose_image($path));
- $w->add($path,-image => $image, -text => $f);
- }
- }
- $h->close;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/DragDrop.pm b/Master/tlpkg/tlperl/lib/Tk/DragDrop.pm
deleted file mode 100644
index 46bbacddc26..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DragDrop.pm
+++ /dev/null
@@ -1,332 +0,0 @@
-package Tk::DragDrop;
-require Tk::DragDrop::Common;
-require Tk::Toplevel;
-require Tk::Label;
-
-use vars qw($VERSION);
-$VERSION = '4.015'; # sprintf '4.%03d', q$Revision: #14 $ =~ /\D(\d+)\s*$/;
-
-use base qw(Tk::DragDrop::Common Tk::Toplevel);
-
-# This is a little tricky, ISA says 'Toplevel' but we
-# define a Tk_cmd to actually build a 'Label', then
-# use wmRelease in Populate to make it a toplevel.
-
-my $useWmRelease = Tk::Wm->can('release'); # ($^O ne 'MSWin32');
-
-sub Tk_cmd { ($useWmRelease) ? \&Tk::label : \&Tk::toplevel }
-
-Construct Tk::Widget 'DragDrop';
-
-use strict;
-use vars qw(%type @types);
-use Carp;
-
-
-# There is a snag with having a token window and moving to
-# exactly where cursor is - the cursor is "inside" the token
-# window - hence it is not "inside" the dropsite window
-# so we offset X,Y by OFFSET pixels.
-sub OFFSET () {3}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<Map>','Mapped');
- $mw->bind($class,'<Any-KeyPress>','Done');
- $mw->bind($class,'<Any-ButtonRelease>','Drop');
- $mw->bind($class,'<Any-Motion>','Drag');
- return $class;
-}
-
-sub Populate
-{
- my ($token,$args) = @_;
- my $parent = $token->parent;
- if ($useWmRelease)
- {
- $token->wmRelease;
- $token->ConfigSpecs(-text => ['SELF','text','Text',$parent->class]);
- }
- else
- {
- my $lab = $token->Label->pack(-expand => 1, -fill => 'both');
- bless $lab,ref($token);
- $lab->bindtags([ref($token), $lab, $token, 'all']);
- $token->ConfigSpecs(-text => [$lab,'text','Text',$parent->class],
- DEFAULT => [$lab]);
- }
- $token->withdraw;
- $token->overrideredirect(1);
- $token->ConfigSpecs(-sitetypes => ['METHOD','siteTypes','SiteTypes',undef],
- -startcommand => ['CALLBACK',undef,undef,undef],
- -endcommand => ['CALLBACK',undef,undef,undef],
- -predropcommand => ['CALLBACK',undef,undef,undef],
- -postdropcommand => ['CALLBACK',undef,undef,undef],
- -delta => ['PASSIVE','delta','Delta',10],
- -cursor => ['SELF','cursor','Cursor','hand2'],
- -handlers => ['SETMETHOD','handlers','Handlers',[[[$token,'SendText']]]],
- -selection => ['SETMETHOD','selection','Selection','XdndSelection'],
- -event => ['SETMETHOD','event','Event','<B1-Motion>']
- );
- $token->{InstallHandlers} = 0;
- $args->{-borderwidth} = 3;
- $args->{-relief} = 'flat';
- $args->{-takefocus} = 1;
-}
-
-sub sitetypes
-{
- my ($w,$val) = @_;
- confess "Not a widget $w" unless (ref $w);
- my $var = \$w->{Configure}{'-sitetypes'};
- if (@_ > 1)
- {
- if (defined $val)
- {
- $val = [$val] unless (ref $val);
- my $type;
- foreach $type (@$val)
- {
- Tk::DragDrop->import($type);
- }
- }
- $$var = $val;
- }
- return (defined $$var) ? $$var : \@types;
-}
-
-sub SendText
-{
- my ($w,$offset,$max) = @_;
- my $s = substr($w->cget('-text'),$offset);
- $s = substr($s,0,$max) if (length($s) > $max);
- return $s;
-}
-
-sub handlers
-{
- my ($token,$opt,$value) = @_;
- $token->{InstallHandlers} = (defined($value) && @$value);
- $token->{'handlers'} = $value;
-}
-
-sub selection
-{
- my ($token,$opt,$value) = @_;
- my $handlers = $token->{'handlers'};
- $token->{InstallHandlers} = (defined($handlers) && @$handlers);
-}
-
-sub event
-{
- my ($w,$opt,$value) = @_;
- # delete old bindings
- $w->parent->Tk::bind($value,[$w,'StartDrag']);
-}
-
-#
-
-sub FindSite
-{
- my ($token,$X,$Y,$e) = @_;
- my $site;
- my $types = $token->sitetypes;
- if (defined $types && @$types)
- {
- foreach my $type (@$types)
- {
- my $class = $type{$type};
- last if (defined($class) && ($site = $class->FindSite($token,$X,$Y)));
- }
- }
- else
- {
- warn 'No sitetypes';
- }
- my $new = $site || 'undef';
- my $over = $token->{'Over'};
- if ($over)
- {
- if (!$over->Match($site))
- {
- $over->Leave($token,$e);
- delete $token->{'Over'};
- }
- }
- if ($site)
- {
- unless ($token->{'Over'})
- {
- $site->Enter($token,$e);
- $token->{'Over'} = $site;
- }
- $site->Motion($token,$e) if (defined $site)
- }
- return $site;
-}
-
-sub Mapped
-{
- my ($token) = @_;
- my $e = $token->parent->XEvent;
- $token = $token->toplevel;
- $token->grabGlobal;
- $token->focus;
- if (defined $e)
- {
- my $X = $e->X;
- my $Y = $e->Y;
- $token->MoveToplevelWindow($X+OFFSET,$Y+OFFSET);
- $token->NewDrag;
- $token->FindSite($X,$Y,$e);
- }
-}
-
-sub NewDrag
-{
- my ($token) = @_;
- my $types = $token->sitetypes;
- if (defined $types && @$types)
- {
- my $type;
- foreach $type (@$types)
- {
- my $class = $type{$type};
- if (defined $class)
- {
- $class->NewDrag($token);
- }
- }
- }
-}
-
-sub Drag
-{
- my $token = shift;
- my $e = $token->XEvent;
- my $X = $e->X;
- my $Y = $e->Y;
- $token = $token->toplevel;
- $token->MoveToplevelWindow($X+OFFSET,$Y+OFFSET);
- $token->FindSite($X,$Y,$e);
-}
-
-sub Done
-{
- my $token = shift;
- my $e = $token->XEvent;
- $token = $token->toplevel;
- my $over = delete $token->{'Over'};
- $over->Leave($token,$e) if (defined $over);
- my $w = $token->parent;
- eval {local $SIG{__DIE__}; $token->grabRelease };
- $token->withdraw;
- delete $w->{'Dragging'};
- $w->update;
-}
-
-sub AcceptDrop
-{
- my ($token) = @_;
- $token->configure(-relief => 'sunken');
- $token->{'Accepted'} = 1;
-}
-
-sub RejectDrop
-{
- my ($token) = @_;
- $token->configure(-relief => 'flat');
- $token->{'Accepted'} = 0;
-}
-
-sub HandleLoose
-{
- my ($w,$seln) = @_;
- return '';
-}
-
-sub InstallHandlers
-{
- my ($token,$seln) = @_;
- my $w = $token->parent;
- $token->configure('-selection' => $seln) if $seln;
- $seln = $token->cget('-selection');
- if ($token->{InstallHandlers})
- {
- foreach my $h (@{$token->cget('-handlers')})
- {
- $w->SelectionHandle('-selection' => $seln,@$h);
- }
- $token->{InstallHandlers} = 0;
- }
- if (!$w->IS($w->SelectionOwner('-selection'=>$seln)))
- {
- $w->SelectionOwn('-selection' => $seln, -command => [\&HandleLoose,$w,$seln]);
- }
-}
-
-sub Drop
-{
- my $ewin = shift;
- my $e = $ewin->XEvent;
- my $token = $ewin->toplevel;
- my $site = $token->FindSite($e->X,$e->Y,$e);
- Tk::catch { $token->grabRelease };
- if (defined $site)
- {
- my $seln = $token->cget('-selection');
- unless ($token->Callback(-predropcommand => $seln, $site))
- {
-# XXX This is ugly if the user restarts a drag within the 2000 ms:
-# my $id = $token->after(2000,[$token,'Done']);
- my $w = $token->parent;
- $token->InstallHandlers;
- $site->Drop($token,$seln,$e);
- $token->Callback(-postdropcommand => $seln);
- $token->Done;
- }
- }
- else
- {
- $token->Done;
- }
- $token->Callback('-endcommand');
-}
-
-sub StartDrag
-{
- my $token = shift;
- my $w = $token->parent;
- unless ($w->{'Dragging'})
- {
- my $e = $w->XEvent;
- my $X = $e->X;
- my $Y = $e->Y;
- my $was = $token->{'XY'};
- if ($was)
- {
- my $dx = $was->[0] - $X;
- my $dy = $was->[1] - $Y;
- if (sqrt($dx*$dx+$dy*$dy) > $token->cget('-delta'))
- {
- unless ($token->Callback('-startcommand',$token,$e))
- {
- delete $token->{'XY'};
- $w->{'Dragging'} = $token;
- $token->MoveToplevelWindow($X+OFFSET,$Y+OFFSET);
- $token->raise;
- $token->deiconify;
- $token->FindSite($X,$Y,$e);
- }
- }
- }
- else
- {
- $token->{'XY'} = [$X,$Y];
- }
- }
-}
-
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/DragDrop/Common.pm b/Master/tlpkg/tlperl/lib/Tk/DragDrop/Common.pm
deleted file mode 100644
index de28ce60e8b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DragDrop/Common.pm
+++ /dev/null
@@ -1,61 +0,0 @@
-package Tk::DragDrop::Common;
-
-use strict;
-use Carp;
-
-no warnings 'once'; # cease warning about Tk::DragDrop::type
-
-use vars qw($VERSION);
-$VERSION = '4.005'; # $Id: //depot/Tkutf8/DragDrop/DragDrop/Common.pm#4 $
-
-sub Type
-{
- my ($base,$name,$class) = @_;
- no strict 'refs';
- my $hash = \%{"${base}::type"};
- my $array = \@{"${base}::types"};
- unless (exists $hash->{$name})
- {
- push(@$array,$name);
- $class = (caller(0))[0] unless (@_ > 2);
- $hash->{$name} = $class;
- # confess "Strange class $class for $base/$name" unless ($class =~ /^Tk/);
- # print "$base $name is ",$class,"\n";
- }
-}
-
-sub import
-{
- my $class = shift;
- no strict 'refs';
- my $types = \%{"${class}::type"};
- while (@_)
- {
- my $type = shift;
- unless (exists $types->{$type})
- {
- if ($type eq 'Local')
- {
- $class->Type($type,$class);
- }
- else
- {
- my ($kind) = $class =~ /([A-Z][a-z]+)$/;
- my $file = Tk->findINC("DragDrop/${type}${kind}.pm");
- if (defined $file)
- {
- # print "Loading $file\n";
- require $file;
- }
- else
- {
- croak "Cannot find ${type}${kind}";
- }
- }
- }
- }
-}
-
-1;
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/DragDrop/Common.pod b/Master/tlpkg/tlperl/lib/Tk/DragDrop/Common.pod
deleted file mode 100644
index cd53ab79a99..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DragDrop/Common.pod
+++ /dev/null
@@ -1,16 +0,0 @@
-
-=head1 NAME
-
-Tk::DragDrop::Common - private class used by Drag&Drop
-
-=for pm DragDrop/DragDrop/Common.pm
-
-=for category Experimental Modules
-
-=head1 DESCRIPTION
-
-This class provides methods to automate the the loading and declaring
-of Drop and Site 'types'.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/DragDrop/LocalDrop.pm b/Master/tlpkg/tlperl/lib/Tk/DragDrop/LocalDrop.pm
deleted file mode 100644
index 0f5028ae64c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DragDrop/LocalDrop.pm
+++ /dev/null
@@ -1,61 +0,0 @@
-package Tk::DragDrop::Local;
-use strict;
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/DragDrop/DragDrop/LocalDrop.pm#4 $
-
-use base qw(Tk::DragDrop::Rect);
-require Tk::DragDrop;
-
-my @toplevels;
-
-Tk::DragDrop->Type('Local');
-
-sub XY
-{
- my ($site,$event) = @_;
- return ($event->X - $site->X,$event->Y - $site->Y);
-}
-
-sub Apply
-{
- my $site = shift;
- my $name = shift;
- my $cb = $site->{$name};
- if ($cb)
- {
- my $event = shift;
- $cb->Call(@_,$site->XY($event));
- }
-}
-
-sub Drop
-{
- my ($site,$token,$seln,$event) = @_;
- $site->Apply(-dropcommand => $event, $seln);
- $site->Apply(-entercommand => $event, 0);
- $token->Done;
-}
-
-sub Enter
-{
- my ($site,$token,$event) = @_;
- $token->AcceptDrop;
- $site->Apply(-entercommand => $event, 1);
-}
-
-sub Leave
-{
- my ($site,$token,$event) = @_;
- $token->RejectDrop;
- $site->Apply(-entercommand => $event, 0);
-}
-
-sub Motion
-{
- my ($site,$token,$event) = @_;
- $site->Apply(-motioncommand => $event);
-}
-
-1;
-
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/DragDrop/Rect.pm b/Master/tlpkg/tlperl/lib/Tk/DragDrop/Rect.pm
deleted file mode 100644
index 0e62e35a5bf..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DragDrop/Rect.pm
+++ /dev/null
@@ -1,110 +0,0 @@
-package Tk::DragDrop::Rect;
-use strict;
-use Carp;
-
-# Proxy class which represents sites to the dropping side
-
-use vars qw($VERSION);
-$VERSION = '4.012'; # sprintf '4.%03d', q$Revision: #11 $ =~ /\D(\d+)\s*$/;
-
-# Some default methods when called site side
-# XIDs and viewable-ness from widget
-
-# XID of ancestor
-sub ancestor { ${shift->widget->toplevel->WindowId} }
-
-# XID of site window
-sub win { ${shift->widget->WindowId} }
-
-# Is site window mapped
-sub viewable { shift->widget->viewable }
-
-sub Over
-{
- my ($site,$X,$Y) = @_;
-
- my $x = $site->X;
- my $y = $site->Y;
- my $w = $site->width;
- my $h = $site->height;
- my $val = ($X >= $x && $X < ($x + $w) && $Y >= $y && $Y < ($y + $h));
-
- return 0 unless $val;
-
- my $widget = $site->widget;
-
- # Now XTranslateCoords from root window to site window's
- # ancestor. Ancestors final descendant should be the site window.
- # Like $win->containing but avoids a problem that dropper's "token"
- # window may be the toplevel (child of root) that contains X,Y
- # so if that is in another application ->containing does not
- # give us a window.
- my $id = $site->ancestor;
- while (1)
- {
- my $cid = $widget->PointToWindow($X,$Y,$id);
- last unless $cid;
- $id = $cid;
- }
- return ($id == $site->win);
-}
-
-sub FindSite
-{
- my ($class,$widget,$X,$Y) = @_;
- foreach my $site ($class->SiteList($widget))
- {
- return $site if ($site->viewable && $site->Over($X,$Y));
- }
- return undef;
-}
-
-sub NewDrag
-{
- my ($class,$widget) = @_;
-}
-
-sub Match
-{
- my ($site,$other) = @_;
- return 0 unless (defined $other);
- return 1 if ($site == $other);
- return 0 unless (ref($site) eq ref($other));
- for ("$site")
- {
- if (/ARRAY/)
- {
- my $i;
- return 0 unless (@$site == @$other);
- for ($i = 0; $i < @$site; $i++)
- {
- return 0 unless ($site->[$i] == $other->[$i]);
- }
- return 1;
- }
- elsif (/SCALAR/)
- {
- return $site == $other;
- }
- elsif (/HASH/)
- {
- my $key;
- foreach $key (keys %$site)
- {
- return 0 unless exists $other->{$key};
- return 0 unless ($other->{$key} eq $site->{$key});
- }
- foreach $key (keys %$other)
- {
- return 0 unless exists $site->{$key};
- return 0 unless ($other->{$key} eq $site->{$key});
- }
- return 1;
- }
- return 0;
- }
- return 0;
-}
-
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/DragDrop/SunConst.pm b/Master/tlpkg/tlperl/lib/Tk/DragDrop/SunConst.pm
deleted file mode 100644
index 66325466e68..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DragDrop/SunConst.pm
+++ /dev/null
@@ -1,34 +0,0 @@
-package Tk::DragDrop::SunConst;
-require Exporter;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/DragDrop/DragDrop/SunConst.pm#4 $
-
-use base qw(Exporter);
-
-@EXPORT = qw(_enter _leave _motion
- ENTERLEAVE MOTION DEFAULT_SITE
- MOVE_FLAG ACK_FLAG TRANSIENT_FLAG FORWARDED_FLAG
- );
-
-# Event types
-sub _enter () {7};
-sub _leave () {8};
-sub _motion () {6};
-
-# Site flags
-
-sub ENTERLEAVE () {1<<0}
-sub MOTION () {1<<1}
-sub DEFAULT_SITE () {1<<2}
-
-# Trigger flags
-sub MOVE_FLAG () {1<<0}
-sub ACK_FLAG () {1<<1}
-sub TRANSIENT_FLAG () {1<<2}
-sub FORWARDED_FLAG () {1<<3}
-
-1;
-
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/DragDrop/SunConst.pod b/Master/tlpkg/tlperl/lib/Tk/DragDrop/SunConst.pod
deleted file mode 100644
index eb5d892871b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DragDrop/SunConst.pod
+++ /dev/null
@@ -1,18 +0,0 @@
-
-=head1 NAME
-
-Tk::DragDrop::SunConst - Constants for Sun's Drag&Drop protocol
-
-=for pm DragDrop/DragDrop/SunConst.pm
-
-=for category Experimental Modules
-
-=head1 DESCRIPTION
-
-This module defines symbolic name subs for the numeric constants that
-make up Sun's Drag&Drop protocol. They are in this module with Exporter
-as they are shared between the two halves (Dropper and Receiver) of
-the protocol.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/DragDrop/SunDrop.pm b/Master/tlpkg/tlperl/lib/Tk/DragDrop/SunDrop.pm
deleted file mode 100644
index 87489fed9a8..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DragDrop/SunDrop.pm
+++ /dev/null
@@ -1,200 +0,0 @@
-package Tk::DragDrop::SunDrop;
-require Tk::DragDrop::Rect;
-
-use vars qw($VERSION);
-$VERSION = '4.006'; # sprintf '4.%03d', q$Revision: #5 $ =~ /\D(\d+)\s*$/;
-
-use base qw(Tk::DragDrop::Rect);
-use strict;
-use Tk::DragDrop::SunConst;
-
-Tk::DragDrop->Type('Sun');
-
-BEGIN
- {
- # Define the Rect API as members of the array
- my @fields = qw(name win X Y width height flags ancestor widget);
- my $i = 0;
- no strict 'refs';
- for ($i=0; $i < @fields; $i++)
- {
- my $j = $i;
- *{"$fields[$i]"} = sub { shift->[$j] };
- }
- }
-
-
-sub Preview
-{
- my ($site,$token,$e,$kind,$flags) = (@_);
- $token->BackTrace('No flags') unless defined $flags;
- my $sflags = $site->flags;
- return if ($kind == _motion && !($sflags & MOTION));
- return if ($kind != _motion && !($sflags & ENTERLEAVE));
- my $data = pack('LLSSLL',$kind,$e->t,$e->X,$e->Y,$site->name,$flags);
- $token->SendClientMessage('_SUN_DRAGDROP_PREVIEW',$site->win,32,$data);
-}
-
-sub Enter
-{
- my ($site,$token,$e) = @_;
- $token->AcceptDrop;
- $site->Preview($token,$e,_enter,0);
-}
-
-sub Leave
-{
- my ($site,$token,$e) = @_;
- $token->RejectDrop;
- $site->Preview($token,$e,_leave,0);
-}
-
-sub Motion
-{
- my ($site,$token,$e) = @_;
- $site->Preview($token,$e,_motion,0);
-}
-
-sub HandleDone
-{
- my ($token,$seln,$offset,$max) = @_;
- $token->Done;
- return '';
-}
-
-sub HandleAck
-{
- my ($w,$seln,$offset,$max) = @_;
- return '';
-}
-
-sub HandleItem
-{
- my ($w,$seln,$offset,$max) = @_;
- return undef;
-}
-
-sub HandleCount
-{
- my ($w,$seln,$offset,$max) = @_;
- return 1;
-}
-
-sub Drop
-{
- my ($site,$token,$seln,$e) = @_;
- my $w = $token->parent;
- $w->SelectionHandle('-selection'=>$seln,'-type'=>'_SUN_DRAGDROP_ACK',[\&HandleAck,$token,$seln]);
- $w->SelectionHandle('-selection'=>$seln,'-type'=>'_SUN_DRAGDROP_DONE',[\&HandleDone,$token,$seln]);
- my $atom = $w->InternAtom($seln);
- my $flags = ACK_FLAG | TRANSIENT_FLAG;
- my $data = pack('LLSSLL',$atom,$e->t,$e->X,$e->Y,$site->name,$flags);
- $w->SendClientMessage('_SUN_DRAGDROP_TRIGGER',$site->win,32,$data);
-}
-
-sub FindSite
-{
- my ($class,$token,$X,$Y) = @_;
- $token->{'SunDD'} = [] unless exists $token->{'SunDD'};
- my $site = $class->SUPER::FindSite($token,$X,$Y);
- if (!defined $site)
- {
- my $id = $token->PointToWindow($X,$Y);
- while ($id)
- {
- my @prop;
- Tk::catch { @prop = $token->property('get','_SUN_DRAGDROP_INTEREST', $id) };
- if (!$@ && shift(@prop) eq '_SUN_DRAGDROP_INTEREST' && shift(@prop) == 0)
- {
- # This is a "toplevel" which has some sites associated with it.
- my ($bx,$by) = $token->WindowXY($id);
- $token->{'SunDDSeen'} = {} unless exists $token->{'SunDDSeen'};
- return $site if $token->{'SunDDSeen'}{$id};
- $token->{'SunDDSeen'}{$id} = 1;
- my $sites = $token->{'SunDD'};
- my $count = shift(@prop);
- while (@prop && $count-- > 0)
- {
- my ($xid,$sn,$flags,$kind,$n) = splice(@prop,0,5);
- if ($kind != 0)
- {
- warn "Don't understand site type $kind";
- last;
- }
- while (@prop >= 4 && $n-- > 0)
- {
- my ($x,$y,$w,$h) = splice(@prop,0,4);
- push(@$sites,bless [$sn,$xid,$x+$bx,$y+$by,$w,$h,$flags,$id,$token],$class);
- }
- }
- return $class->SUPER::FindSite($token,$X,$Y);
- }
- $id = $token->PointToWindow($X,$Y,$id)
- }
- }
- return $site;
-}
-
-my $busy = 0;
-
-sub NewDrag
-{
- my ($class,$token) = @_;
- delete $token->{'SunDD'} unless $busy;
- delete $token->{'SunDDSeen'};
-}
-
-sub SiteList
-{
- my ($class,$token) = @_;
- return @{$token->{'SunDD'}};
-}
-
-1;
-__END__
-
-# this code is obsolete now that we look at properties ourselves
-# which means we don't need dropsite manager running
-# On Sun's running OpenLook the window manager or dropsite mananger
-# watches for and caches site info in a special selection
-# This code got sites from that
-#
-
-sub SiteList
-{
- my ($class,$token) = @_;
- unless (1 || $busy || exists $token->{'SunDD'})
- {
- Carp::confess('Already doing it!') if ($busy++);
- my @data = ();
- my @sites = ();
- my $mw = $token->MainWindow;
- $token->{'SunDD'} = \@sites;
- Tk::catch {
- @data = $mw->SelectionGet( '-selection'=>'_SUN_DRAGDROP_DSDM', '_SUN_DRAGDROP_SITE_RECTS');
- };
- if ($@)
- {
- $token->configure('-cursor'=>'hand2');
- $token->grab(-global);
- }
- else
- {
- while (@data)
- {
- my $version = shift(@data);
- if ($version != 0)
- {
- warn "Unexpected site version $version";
- last;
- }
- push(@sites,bless [splice(@data,0,7)],$class);
- }
- }
- $busy--;
- }
- return @{$token->{'SunDD'}};
-}
-
-1;
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/DragDrop/SunSite.pm b/Master/tlpkg/tlperl/lib/Tk/DragDrop/SunSite.pm
deleted file mode 100644
index ac6f7488a7a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DragDrop/SunSite.pm
+++ /dev/null
@@ -1,107 +0,0 @@
-package Tk::DragDrop::SunSite;
-require Tk::DropSite;
-
-use vars qw($VERSION);
-$VERSION = '4.007'; # sprintf '4.%03d', q$Revision: #6 $ =~ /\D(\d+)\s*$/;
-
-use Tk::DragDrop::SunConst;
-use base qw(Tk::DropSite);
-use strict;
-
-Tk::DropSite->Type('Sun');
-
-sub SunDrop
-{
- my ($w,$site) = @_;
- my $e = $w->XEvent;
- my ($seln,$t,$x,$y,$id,$flags) = unpack('LLSSLL',$e->A);
- $w->MakeAtom($seln);
- if ($flags & &ACK_FLAG)
- {
- Tk::catch { $w->SelectionGet('-selection'=>$seln,'_SUN_DRAGDROP_ACK') };
- }
- my @targ = $w->SelectionGet(-selection => $seln,'TARGETS');
- $site->Apply(-dropcommand => $x, $y, $seln, SunDrop => \@targ);
- if ($flags & &TRANSIENT_FLAG)
- {
- Tk::catch { $w->SelectionGet('-selection'=>$seln,'_SUN_DRAGDROP_DONE') };
- }
- $w->configure('-relief' => $w->{'_DND_RELIEF_'}) if (defined $w->{'_DND_RELIEF_'});
- $site->Apply(-entercommand => $x, $y, 0);
-}
-
-sub SunPreview
-{
- my ($w,$site) = @_;
- my $event = $w->XEvent;
- my ($kind,$t,$x,$y,$id,$flags) = unpack('LLSSLL',$event->A);
- $x -= $site->X;
- $y -= $site->Y;
- if ($kind == _enter)
- {
- $site->Callback(-entercommand => 1, $x, $y);
- }
- elsif ($kind == _leave)
- {
- $site->Callback(-entercommand => 0, $x, $y);
- }
- elsif ($kind == _motion)
- {
- $site->Callback(-motioncommand => $x, $y);
- }
-}
-
-sub InitSite
-{
- my ($class,$site) = @_;
- my $w = $site->widget;
- $w->BindClientMessage('_SUN_DRAGDROP_TRIGGER',[\&SunDrop,$site]);
- $w->BindClientMessage('_SUN_DRAGDROP_PREVIEW',[\&SunPreview,$site]);
-}
-
-sub NoteSites
-{
- my ($class,$t,$sites) = @_;
- my $count = @$sites;
- my @data = (0,0);
- my ($wrapper,$offset) = $t->wrapper;
- if ($t->viewable)
- {
- my $s;
- my $i = 0;
- my @win;
- my $bx = $t->rootx;
- my $by = $t->rooty - $offset;
- $t->MakeWindowExist;
- foreach $s (@$sites)
- {
- my $w = $s->widget;
- if ($w->viewable)
- {
- $w->MakeWindowExist;
- $data[1]++;
- push(@data,${$w->WindowId}); # XID
- push(@data,$i++); # Our 'tag'
- push(@data,ENTERLEAVE|MOTION); # Flags
- push(@data,0); # Kind is 'rect'
- push(@data,1); # Number of rects
- push(@data,$s->X-$bx,$s->Y-$by,$s->width,$s->height); # The rect
- }
- }
- }
- if ($data[1])
- {
- $t->property('set',
- '_SUN_DRAGDROP_INTEREST', # name
- '_SUN_DRAGDROP_INTEREST', # type
- 32, # format
- \@data,$wrapper); # the data
- }
- else
- {
- $t->property('delete','_SUN_DRAGDROP_INTEREST',$wrapper);
- }
-}
-
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/DragDrop/Win32Drop.pm b/Master/tlpkg/tlperl/lib/Tk/DragDrop/Win32Drop.pm
deleted file mode 100644
index 08a4656ecce..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DragDrop/Win32Drop.pm
+++ /dev/null
@@ -1,8 +0,0 @@
-package Tk::DragDrop::Win32Drop;
-# Dummy placeholder for symetry
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/DragDrop/Win32Site/Win32Drop.pm#4 $
-
-use Tk ();
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/DragDrop/Win32Site.pm b/Master/tlpkg/tlperl/lib/Tk/DragDrop/Win32Site.pm
deleted file mode 100644
index ca9029dc8b6..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DragDrop/Win32Site.pm
+++ /dev/null
@@ -1,50 +0,0 @@
-package Tk::DragDrop::Win32Site;
-
-use vars qw($VERSION);
-$VERSION = '4.009'; # sprintf '4.%03d', q$Revision: #8 $ =~ /\D(\d+)\s*$/;
-
-use Tk qw($XS_VERSION);
-require DynaLoader;
-require Tk::DropSite;
-
-use base qw(Tk::DropSite DynaLoader);
-
-bootstrap Tk::DragDrop::Win32Site;
-
-use strict;
-
-Tk::DropSite->Type('Win32');
-
-sub WM_DROPFILES () {563}
-
-sub InitSite
-{
- my ($class,$site) = @_;
- my $w = $site->widget;
- $w->BindClientMessage(WM_DROPFILES,[\&Win32Drop,$site]);
- DragAcceptFiles($w,1);
-}
-
-sub Win32Drop
-{
- # print join(',',@_),"\n";
- my ($w,$site,$msg,$wParam,$lParam) = @_;
- my ($x,$y,@files) = DropInfo($wParam);
- my $cb = $site->{'-dropcommand'};
- $site->Apply(-entercommand => $x, $y, 1);
- if ($cb)
- {
- foreach my $file (@files)
- {
- # print "$file @ $x,$y\n";
- $w->clipboardClear;
- $w->clipboardAppend('--',$file);
- $cb->Call('CLIPBOARD',Win32Drop => ['STRING'],$x,$y);
- }
- }
- $site->Apply(-entercommand => $x, $y, 0);
- return 0;
-}
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/DragDrop/XDNDDrop.pm b/Master/tlpkg/tlperl/lib/Tk/DragDrop/XDNDDrop.pm
deleted file mode 100644
index 879874cea9d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DragDrop/XDNDDrop.pm
+++ /dev/null
@@ -1,145 +0,0 @@
-package Tk::DragDrop::XDNDDrop;
-use strict;
-use vars qw($VERSION);
-$VERSION = '4.007'; # sprintf '4.%03d', q$Revision: #6 $ =~ /\D(\d+)\s*$/;
-use base qw(Tk::DragDrop::Rect);
-
-sub XDND_PROTOCOL_VERSION () { 4 }
-
-Tk::DragDrop->Type('XDND');
-
-sub NewDrag
-{
- my ($class,$token) = @_;
- $token->{$class} = {};
-}
-
-sub new
-{
- my ($class,$token,$id,@prop) = @_;
- my $ver = $token->InternAtom(shift(@prop));
- # warn "XDND version $ver ".join(' ',@prop)."\n";
- $ver = XDND_PROTOCOL_VERSION if $ver > XDND_PROTOCOL_VERSION;
- my $site = bless { id => $id, token => $token, ver => $ver, state => 0, accept => \@prop}, $class;
- my $w = $token->parent;
- $w->BindClientMessage('XdndStatus',[$site => 'XdndStatus']);
- $w->BindClientMessage('XdndFinished',[$site => 'XdndFinished']);
- return $site;
-}
-
-sub Drop
-{
- my ($site,$token,$seln,$e) = @_;
- my $w = $token->parent;
- my $data = pack('LLLLL',oct($w->id),0,$e->t,0,0);
- $w->SendClientMessage('XdndDrop',$site->{id},32,$data);
-}
-
-sub FindSite
-{
- my ($class,$token,$X,$Y) = @_;
- my $id = $token->PointToWindow($X,$Y);
- while ($id)
- {
- my @prop;
- Tk::catch { @prop = $token->property('get','XdndAware', $id) };
- if (!$@ && shift(@prop) eq 'ATOM')
- {
- my $hash = $token->{$class};
- my $site = $hash->{$id};
- if (!defined $site)
- {
- $site = $class->new($token,$id,@prop);
- $hash->{$id} = $site;
- }
- return $site;
- }
- $id = $token->PointToWindow($X,$Y,$id)
- }
- return undef;
-}
-
-sub Enter
-{
- my ($site,$token,$e) = @_;
- my $w = $token->parent;
- $token->InstallHandlers('XdndSelection');
- my $seln = $token->cget('-selection');
- my @targets = grep(!/^(TARGETS|MULTIPLE|TIMESTAMP)$/,reverse($token->SelectionGet('-selection'=> 'XdndSelection','TARGETS')));
- # print join(' ',@targets),"\n";
- my $flags = ($site->{ver} << 24);
- my @atarg = map($token->InternAtom($_),@targets);
- my $ntarg = @atarg;
- if ($ntarg > 3)
- {
- $flags |= 1;
- $w->property('set','XdndTypeList','ATOM',32,\@atarg);
- splice(@atarg,3);
- }
- else
- {
- splice(@atarg,$ntarg,(0 x 3 - $ntarg));
- }
- unshift(@atarg,oct($w->id),$flags);
- # print join(' ',map(sprintf("%08X",$_),@atarg)),"\n";
- my $data = pack('LLLLL',@atarg);
- $w->SendClientMessage('XdndEnter',$site->{id},32,$data);
-}
-
-sub Leave
-{
- my ($site,$token,$e) = @_;
- my $w = $token->parent;
- my $data = pack('LLLLL',oct($w->id), 0, 0, 0, 0);
- $w->SendClientMessage('XdndLeave',$site->{id},32,$data);
-}
-
-sub Motion
-{
- my ($site,$token,$e) = @_;
- my $X = $e->X;
- my $Y = $e->Y;
- my $w = $token->parent;
- my $action = $token->InternAtom($site->{'action'} || 'XdndActionCopy');
- my @atarg = (oct($w->id),0,($X << 16) | $Y, $e->t, $action);
- # print join(' ',map(sprintf("%08X",$_),@atarg)),"\n";
- my $data = pack('LLLLL',@atarg);
- $w->SendClientMessage('XdndPosition',$site->{id},32,$data);
-}
-
-sub XdndFinished
-{
- my ($site) = @_;
- my $token = $site->{token};
- # printf "XdndFinished $site\n",
- $token->Done;
-}
-
-sub XdndStatus
-{
- my ($site) = @_;
- my $token = $site->{token};
- my $w = $token->parent;
- my $event = $w->XEvent;
- my ($tid,$flags,$xy,$wh,$action) = unpack('LLLLL',$event->A);
- $action = $w->GetAtomName($action) if $action;
- $site->{flags} = $flags;
- $site->{'X'} = $xy >> 16;
- $site->{'Y'} = $xy & 0xFFFF;
- $site->{'width'} = $wh >> 16;
- $site->{'height'} = $wh & 0xFFFF;
- #printf "XdndStatus $site targ=%x flags=%08X x=%d y=%d w=%d h=%d a=%s\n",
- # $tid,$flags,$xy >> 16, $xy & 0xFFFF, $wh >> 16, $wh & 0xFFFF,$action;
- if ($flags & 1)
- {
- $token->AcceptDrop;
- }
- else
- {
- $token->RejectDrop;
- }
-}
-
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/DragDrop/XDNDSite.pm b/Master/tlpkg/tlperl/lib/Tk/DragDrop/XDNDSite.pm
deleted file mode 100644
index 9661b009f9d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DragDrop/XDNDSite.pm
+++ /dev/null
@@ -1,159 +0,0 @@
-package Tk::DragDrop::XDNDSite;
-use strict;
-use vars qw($VERSION);
-$VERSION = '4.007'; # sprintf '4.%03d', q$Revision: #6 $ =~ /\D(\d+)\s*$/;
-use base qw(Tk::DropSite);
-
-sub XDND_PROTOCOL_VERSION () { 4 }
-
-Tk::DropSite->Type('XDND');
-
-sub InitSite
-{my ($class,$site) = @_;
- my $w = $site->widget;
-}
-
-sub XdndEnter
-{
- my ($t,$sites) = @_;
- my $event = $t->XEvent;
- my ($src,$flags,@types) = unpack('LLLLL',$event->A);
- my $ver = ($flags >> 24) & 0xFF;
- if ($flags & 1)
- {
- my @prop;
- Tk::catch { @prop = $t->property('get','XdndTypeList',$src) };
- @types = @prop if (!$@ && shift(@prop) eq 'ATOM');
- }
- else
- {
- $t->MakeAtom(@types);
- }
- # print "XdndEnter $src $ver @types\n";
- $t->{"XDND$src"} = { ver => $ver, types => \@types };
-}
-
-sub XdndLeave
-{
- my ($t,$sites) = @_;
- my $event = $t->XEvent;
- my ($src,$flags,@types) = unpack('LLLLL',$event->A);
- # print "XdndLeave $src\n";
- my $info = $t->{"XDND$src"};
- if ($info)
- {
- my $over = $info->{site};
- if ($over)
- {
- my $X = $info->{X};
- my $Y = $info->{Y};
- $over->Apply(-entercommand => $X, $Y, 0)
- }
- }
- delete $t->{"XDND$src"};
-}
-
-sub XdndPosition
-{
- my ($t,$sites) = @_;
- my $event = $t->XEvent;
- my ($src,$flags,$xy,$time,$action) = unpack('LLLLL',$event->A);
- $t->MakeAtom($action);
- my $X = $xy >> 16;
- my $Y = $xy & 0xFFFF;
- my $info = $t->{"XDND$src"};
- $info->{X} = $X;
- $info->{Y} = $Y;
- $info->{action} = $action;
- $info->{t} = $time;
- my ($id) = $t->wrapper;
- my $sxy = 0;
- my $swh = 0;
- my $sflags = 0;
- my $saction = 0;
- my $over = $info->{site};
- foreach my $site (@$sites)
- {
- if ($site->Over($X,$Y))
- {
- $sxy = ($site->X << 16) | $site->Y;
- $swh = ($site->width << 16) | $site->height;
- $saction = $action;
- $sflags |= 1;
- if ($over)
- {
- if ($over == $site)
- {
- $site->Apply(-motioncommand => $X, $Y);
- }
- else
- {
- $over->Apply(-entercommand => $X, $Y, 0);
- $site->Apply(-entercommand => $X, $Y, 1);
- }
- }
- else
- {
- $site->Apply(-entercommand => $X, $Y, 1);
- }
- $info->{site} = $site;
- last;
- }
- }
- unless ($sflags & 1)
- {
- if ($over)
- {
- $over->Apply(-entercommand => $X, $Y, 0)
- }
- delete $info->{site};
- }
- my $data = pack('LLLLL',$id,$sflags,$sxy,$swh,$action);
- $t->SendClientMessage('XdndStatus',$src,32,$data);
-}
-
-sub XdndDrop
-{
- my ($t,$sites) = @_;
- my $event = $t->XEvent;
- my ($src,$flags,$time,$res1,$res2) = unpack('LLLLL',$event->A);
- my $info = $t->{"XDND$src"};
- my $sflags = 0;
- my $action = 0;
- if ($info)
- {
- $info->{t} = $time;
- my $site = $info->{'site'};
- if ($site)
- {
- my $X = $info->{'X'};
- my $Y = $info->{'Y'};
- $action = $info->{action};
- $site->Apply(-dropcommand => $X, $Y, 'XdndSelection',$action,$info->{types});
- $site->Apply(-entercommand => $X, $Y, 0);
- }
- }
- my ($id) = $t->wrapper;
- my $data = pack('LLLLL',$id,$sflags,$action,0,0);
- $t->SendClientMessage('XdndFinished',$src,32,$data);
-}
-
-sub NoteSites
-{my ($class,$t,$sites) = @_;
- my ($wrapper) = $t->wrapper;
- if (@$sites)
- {
- $t->BindClientMessage('XdndLeave',[\&XdndLeave,$sites]);
- $t->BindClientMessage('XdndEnter',[\&XdndEnter,$sites]);
- $t->BindClientMessage('XdndPosition',[\&XdndPosition,$sites]);
- $t->BindClientMessage('XdndDrop',[\&XdndDrop,$sites]);
- $t->property('set','XdndAware','ATOM',32,[XDND_PROTOCOL_VERSION],$wrapper);
- }
- else
- {
- $t->property('delete','XdndAware',$wrapper);
- }
-}
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/DropSite.pm b/Master/tlpkg/tlperl/lib/Tk/DropSite.pm
deleted file mode 100644
index 71b70d12a68..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DropSite.pm
+++ /dev/null
@@ -1,257 +0,0 @@
-package Tk::DropSite;
-require Tk::DragDrop::Common;
-require Tk::DragDrop::Rect;
-
-use vars qw($VERSION);
-$VERSION = '4.008'; # sprintf '4.%03d', q$Revision: #7 $ =~ /\D(\d+)\s*$/;
-
-use base qw(Tk::DragDrop::Common Tk::DragDrop::Rect);
-
-Construct Tk::Widget 'DropSite';
-
-use strict;
-use vars qw(%type @types);
-
-Tk::DragDrop->Tk::DragDrop::Common::Type('Local');
-
-my @toplevels;
-
-BEGIN
-{
- # Are these really methods of Tk::DragDrop::Rect ?
- no strict 'refs';
- foreach my $name (qw(x y X Y width height widget))
- {
- my $key = $name;
- *{"$key"} = sub { shift->{$key} };
- }
-}
-
-# Dropping side API - really only here for Local drops
-# inheritance is a mess right now.
-
-sub NewDrag
-{
- my ($class,$token) = @_;
- # No need to clear cached sites we see live data
-}
-
-sub SiteList
-{
- # this should be inheritable - so that receive side of XDND can re-use it.
- my ($class,$widget) = @_;
- my $t;
- my @list;
- foreach $t (@toplevels)
- {
- my $sites = $t->{'DropSites'};
- if ($sites)
- {
- $sites = $sites->{'Local'};
- push(@list,@{$sites}) if ($sites);
- }
- }
- return @list;
-}
-
-sub Apply
-{
- my $site = shift;
- my $name = shift;
- my $cb = $site->{$name};
- if ($cb)
- {
- my $X = shift;
- my $Y = shift;
- $cb->Call(@_,$X - $site->X, $Y - $site->Y);
- }
-}
-
-sub Drop
-{
- my ($site,$token,$seln,$event) = @_;
- my $X = $event->X;
- my $Y = $event->Y;
- my @targ = $token->SelectionGet(-selection => $seln,'TARGETS');
- $site->Apply(-dropcommand => $X, $Y, $seln,'LocalDrop',\@targ);
- $site->Apply(-entercommand => $X, $Y, 0);
- $token->Done;
-}
-
-sub Enter
-{
- my ($site,$token,$event) = @_;
- $token->AcceptDrop;
- $site->Apply(-entercommand => $event->X, $event->Y, 1);
-}
-
-sub Leave
-{
- my ($site,$token,$event) = @_;
- $token->RejectDrop;
- $site->Apply(-entercommand => $event->X, $event->Y, 0);
-}
-
-sub Motion
-{
- my ($site,$token,$event) = @_;
- $site->Apply(-motioncommand => $event->X, $event->Y);
-}
-
-# This is receive side API.
-
-sub NoteSites
-{
- my ($class,$t,$sites) = @_;
- unless (grep($_ == $t,@toplevels))
- {
- $Tk::DragDrop::types{'Local'} = $class if (@$sites);
- push(@toplevels,$t);
- $t->OnDestroy(sub { @toplevels = grep($_ != $t,@toplevels) });
- }
-}
-
-sub UpdateDropSites
-{
- my ($t) = @_;
- $t->{'DropUpdate'} = 0;
- foreach my $type (@types)
- {
- my $sites = $t->{'DropSites'}->{$type};
- if ($sites && @$sites)
- {
- my $class = $type{$type};
- $class->NoteSites($t,$sites);
- }
- }
-}
-
-sub QueueDropSiteUpdate
-{
- my $obj = shift;
- my $class = ref($obj);
- my $t = $obj->widget->toplevel;
- unless ($t->{'DropUpdate'})
- {
- $t->{'DropUpdate'} = 1;
- $t->afterIdle(sub { UpdateDropSites($t) });
- }
-}
-
-sub delete
-{
- my ($obj) = @_;
- my $w = $obj->widget;
- $w->bindtags([grep($_ ne $obj,$w->bindtags)]);
- my $t = $w->toplevel;
- foreach my $type (@{$obj->{'-droptypes'}})
- {
- my $a = $t->{'DropSites'}->{$type};
- @$a = grep($_ ne $obj,@$a);
- }
- $obj->QueueDropSiteUpdate;
-}
-
-sub DropSiteUpdate
-{
- # Note size of widget and arrange to update properties etc.
- my $obj = shift;
- my $w = $obj->widget;
- $obj->{'x'} = $w->X;
- $obj->{'y'} = $w->Y;
- $obj->{'X'} = $w->rootx;
- $obj->{'Y'} = $w->rooty;
- $obj->{'width'} = $w->Width;
- $obj->{'height'} = $w->Height;
- $obj->QueueDropSiteUpdate;
-}
-
-sub TopSiteUpdate
-{
- my ($t) = @_;
- foreach my $type (@types)
- {
- my $sites = $t->{'DropSites'}->{$type};
- if ($sites && @$sites)
- {
- my $site;
- foreach $site (@$sites)
- {
- $site->DropSiteUpdate;
- }
- }
- }
-}
-
-sub Callback
-{
- my $obj = shift;
- my $key = shift;
- my $cb = $obj->{$key};
- $cb->Call(@_) if (defined $cb);
-}
-
-sub InitSite
-{
- my ($class,$site) = @_;
- # Tk::DragDrop->Type('Local');
-}
-
-sub new
-{
- my ($class,$w,%args) = @_;
- my $t = $w->toplevel;
- $args{'widget'} = $w;
- if (exists $args{'-droptypes'})
- {
- # Convert single type to array-of-one
- $args{'-droptypes'} = [$args{'-droptypes'}] unless (ref $args{'-droptypes'});
- }
- else
- {
- # Default to all known types.
- $args{'-droptypes'} = \@types;
- }
- my ($key,$val);
- while (($key,$val) = each %args)
- {
- if ($key =~ /command$/)
- {
- $val = Tk::Callback->new($val);
- $args{$key} = $val;
- }
- }
- my $obj = bless \%args,$class;
- unless (exists $t->{'DropSites'})
- {
- $t->{'DropSites'} = {};
- $t->{'DropUpdate'} = 0;
- }
- my $type;
- foreach $type (@{$args{'-droptypes'}})
- {
- Tk::DropSite->import($type) unless (exists $type{$type});
- my $class = $type{$type};
- $class->InitSite($obj);
- # Should this be indexed by type or class ?
- unless (exists $t->{'DropSites'}->{$type})
- {
- $t->{'DropSites'}->{$type} = [];
- }
- push(@{$t->{'DropSites'}->{$type}},$obj);
- }
- $w->OnDestroy([$obj,'delete']);
- $obj->DropSiteUpdate;
- $w->bindtags([$w->bindtags,$obj]);
- $w->Tk::bind($obj,'<Map>',[$obj,'DropSiteUpdate']);
- $w->Tk::bind($obj,'<Unmap>',[$obj,'DropSiteUpdate']);
- $w->Tk::bind($obj,'<Configure>',[$obj,'DropSiteUpdate']);
- $t->Tk::bind($class,'<Configure>',[\&TopSiteUpdate,$t]);
- unless (grep($_ eq $class,$t->bindtags))
- {
- $t->bindtags([$t->bindtags,$class]);
- }
- return $obj;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/DropSite.pod b/Master/tlpkg/tlperl/lib/Tk/DropSite.pod
deleted file mode 100644
index 8ae5a199fe3..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DropSite.pod
+++ /dev/null
@@ -1,33 +0,0 @@
-=head1 NAME
-
-Tk::DropSite - Receive side of Drag & Drop abstraction
-
-=for category User Interaction
-
-=head1 SYNOPSIS
-
- use Tk::DropSite qw(...);
- $widget->DropSite(-entercommand => ...,
- -dropcommand => ...,
- -motioncommand => ...,
- -dropcommand => ...,
- );
-
-=head1 DESCRIPTION
-
-C<DropSite> creates an object which represents a site on which things
-may be "Dropped".
-
-A DropSite provides the following methods:
-
-=over 4
-
-=item $site->Enter($token,$event)
-
-=item $site->Leave($token,$event)
-
-=item $site->Motion($token,$event)
-
-=item $site->Drop($token,$event)
-
-=back
diff --git a/Master/tlpkg/tlperl/lib/Tk/DummyEncode.pm b/Master/tlpkg/tlperl/lib/Tk/DummyEncode.pm
deleted file mode 100644
index 5ead808405d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/DummyEncode.pm
+++ /dev/null
@@ -1,46 +0,0 @@
-package Tk::DummyEncode;
-
-use vars qw($VERSION);
-$VERSION = '4.007'; # $Id: //depot/Tkutf8/Tk/DummyEncode.pm#7 $
-
-sub getEncoding
-{
- my ($class,$name) = @_;
- return undef unless ($name =~ /(iso8859-1|X11ControlChars)/);
- my $pkg = $name;
- $pkg =~ s/\W+/_/g;
- return bless {Name => $name},$class.'::'.$pkg;
-}
-
-package Tk::DummyEncode::iso8859_1;
-sub encode
-{
- my ($obj,$uni,$chk) = @_;
- $_[1] = '' if $chk;
- return $uni;
-}
-
-sub decode
-{
- my ($obj,$byt,$chk) = @_;
- $_[1]
-= '' if $chk;
- return $byt;
-}
-
-package Tk::DummyEncode::X11ControlChars;
-sub encode
-{
- my ($obj,$uni,$chk) = @_;
- my $str = '';
- foreach my $ch (split(//,$uni))
- {
- $str .= sprintf("\\x{%x}",ord($ch));
- }
- $_[1] = '' if $chk;
- return $str;
-}
-
-1;
-
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/English.pm b/Master/tlpkg/tlperl/lib/Tk/English.pm
deleted file mode 100644
index de640376580..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/English.pm
+++ /dev/null
@@ -1,307 +0,0 @@
-package Tk::English;
-
-require Exporter;
-
-use vars qw($VERSION);
-$VERSION = '4.006'; # $Id: //depot/Tkutf8/Tk/English.pm#6 $
-
-use base qw(Exporter);
-
-# This file is generated automatically by pTk/makeenglish from Tk distribution.
-
-
-@EXPORT = qw(
- &ABOVE &ACTIVATE &ACTIVE &ADD &ADDTAG &ADJUST &AFTER &ALL &ANCHOR &APPEND
- &APPLY &ARROW1 &ARROW2 &ASCII &ASPECT &AUTO &BASELINE &BBOX &BEFORE &BELOW
- &BEVEL &BIND &BITMAP &BLANK &BOTH &BOTTOM &BUTT &CANVASX &CANVASY &CAPTURE
- &CASCADE &CENTER &CGET &CHAR &CHARS &CHECKBUTTON &CHILDREN &CLEAR &CLIENT
- &CLONE &CLOSEST &COLOR &COLORMAPWINDOWS &COLUMN &COLUMNCONFIGURE &COMMAND
- &COMPARE &CONFIGURE &COORDS &COPY &CREATE &CURRENT &CURSELECTION &DATA
- &DCHARS &DEACTIVATE &DEBUG &DECORATIONS &DECREASING &DEFAULT &DEICONIFY
- &DELETE &DELTA &DESELECT &DLINEINFO &DOWN &DRAGSITE &DRAGTO &DROPSITE &DTAG
- &DUMP &ENCLOSED &END &ENTRY &ENTRYCGET &ENTRYCONFIGURE &EVAL &EXISTS &EXPAND
- &FILL &FILLX &FILLY &FIND &FIRST &FLASH &FLAT &FOCUS &FOCUSMODEL &FOCUSNEXT
- &FOCUSPREV &FORGET &FRACTION &FRAME &FROM &GENERATE &GEOMETRY &GEOMETRYINFO
- &GET &GETTAGS &GRAVITY &GRAY &GRID &GROOVE &GROUP &HANDLE &HEAD &HEIGHT
- &HIDDEN &HIDE &HORIZONTAL &ICONBITMAP &ICONIFY &ICONMASK &ICONNAME
- &ICONPOSITION &ICONWINDOW &ICURSOR &IDENTIFY &IDLETASKS &IGNORE &IMAGE
- &INCLUDES &INCREASING &INDEX &INFO &INSERT &INSIDE &INTEGER &INTERACTIVE
- &INVOKE &ISMWMRUNNING &ITEM &ITEMCGET &ITEMCONFIGURE &LAST &LEFT &LINE
- &LINECONFIGURE &LINEEND &LINES &LINESTART &LIST &LOCATION &LOWER &MARK &MAX
- &MAXSIZE &MENUBAR &MINSIZE &MITER &MONOCHROME &MOVE &MOVETO &NAMES &NEAREST
- &NEW &NEXT &NEXTRANGE &NONE &NORMAL &NOW &OFFSPRINGS &OUTSIDE &OVERLAPPING
- &OVERRIDEREDIRECT &OWN &PADX &PADY &PAGECGET &PAGECONFIGURE &PAGES &PARENT
- &PASSIVE &POSITION &POSITIONFROM &POST &POSTCASCADE &POSTSCRIPT &PRESENT
- &PREV &PREVIOUS &PREVRANGE &PROGRAM &PROJECTING &PROPAGATE &PROTOCOL &PUT
- &RADIOBUTTON &RAISE &RAISED &RANGE &RANGES &READ &READFILE &REAL &RECORD
- &REDITHER &REFCOUNT &RELEASE &REMOVE &RESIZABLE &RIDGE &RIGHT &ROOT &ROUND
- &ROW &ROWCONFIGURE &ROWS &SAVEUNDER &SCALE &SCAN &SCROLL &SEARCH &SEE
- &SELECT &SELECTION &SEPARATOR &SET &SHOW &SIBLINGS &SIZE &SIZEFROM &SLAVES
- &SLIDER &SOLID &SPACE &STATE &STATUS &SUNKEN &TAG &TAIL &TEAROFF &TEXT
- &TITLE &TO &TOGGLE &TOP &TRACING &TRANSIENT &TRANSIENTFOR &TYPE &TYPES
- &UNITS &UNPACK &UNPOST &UNSET &UP &USER &VARIABLE &VERTICAL &VISIBILITY
- &WIDTH &WINDOW &WITHDRAW &WITHTAG &WORDEND &WORDSTART &WRITE &XVIEW
- &YPOSITION &YVIEW
-);
-sub ABOVE () { 'above' }
-sub ACTIVATE () { 'activate' }
-sub ACTIVE () { 'active' }
-sub ADD () { 'add' }
-sub ADDTAG () { 'addtag' }
-sub ADJUST () { 'adjust' }
-sub AFTER () { 'after' }
-sub ALL () { 'all' }
-sub ANCHOR () { 'anchor' }
-sub APPEND () { 'append' }
-sub APPLY () { 'apply' }
-sub ARROW1 () { 'arrow1' }
-sub ARROW2 () { 'arrow2' }
-sub ASCII () { 'ascii' }
-sub ASPECT () { 'aspect' }
-sub AUTO () { 'auto' }
-sub BASELINE () { 'baseline' }
-sub BBOX () { 'bbox' }
-sub BEFORE () { 'before' }
-sub BELOW () { 'below' }
-sub BEVEL () { 'bevel' }
-sub BIND () { 'bind' }
-sub BITMAP () { 'bitmap' }
-sub BLANK () { 'blank' }
-sub BOTH () { 'both' }
-sub BOTTOM () { 'bottom' }
-sub BUTT () { 'butt' }
-sub CANVASX () { 'canvasx' }
-sub CANVASY () { 'canvasy' }
-sub CAPTURE () { 'capture' }
-sub CASCADE () { 'cascade' }
-sub CENTER () { 'center' }
-sub CGET () { 'cget' }
-sub CHAR () { 'char' }
-sub CHARS () { 'chars' }
-sub CHECKBUTTON () { 'checkbutton' }
-sub CHILDREN () { 'children' }
-sub CLEAR () { 'clear' }
-sub CLIENT () { 'client' }
-sub CLONE () { 'clone' }
-sub CLOSEST () { 'closest' }
-sub COLOR () { 'color' }
-sub COLORMAPWINDOWS () { 'colormapwindows' }
-sub COLUMN () { 'column' }
-sub COLUMNCONFIGURE () { 'columnconfigure' }
-sub COMMAND () { 'command' }
-sub COMPARE () { 'compare' }
-sub CONFIGURE () { 'configure' }
-sub COORDS () { 'coords' }
-sub COPY () { 'copy' }
-sub CREATE () { 'create' }
-sub CURRENT () { 'current' }
-sub CURSELECTION () { 'curselection' }
-sub DATA () { 'data' }
-sub DCHARS () { 'dchars' }
-sub DEACTIVATE () { 'deactivate' }
-sub DEBUG () { 'debug' }
-sub DECORATIONS () { 'decorations' }
-sub DECREASING () { 'decreasing' }
-sub DEFAULT () { 'default' }
-sub DEICONIFY () { 'deiconify' }
-sub DELETE () { 'delete' }
-sub DELTA () { 'delta' }
-sub DESELECT () { 'deselect' }
-sub DLINEINFO () { 'dlineinfo' }
-sub DOWN () { 'down' }
-sub DRAGSITE () { 'dragsite' }
-sub DRAGTO () { 'dragto' }
-sub DROPSITE () { 'dropsite' }
-sub DTAG () { 'dtag' }
-sub DUMP () { 'dump' }
-sub ENCLOSED () { 'enclosed' }
-sub END () { 'end' }
-sub ENTRY () { 'entry' }
-sub ENTRYCGET () { 'entrycget' }
-sub ENTRYCONFIGURE () { 'entryconfigure' }
-sub EVAL () { 'eval' }
-sub EXISTS () { 'exists' }
-sub EXPAND () { 'expand' }
-sub FILL () { 'fill' }
-sub FILLX () { 'fillx' }
-sub FILLY () { 'filly' }
-sub FIND () { 'find' }
-sub FIRST () { 'first' }
-sub FLASH () { 'flash' }
-sub FLAT () { 'flat' }
-sub FOCUS () { 'focus' }
-sub FOCUSMODEL () { 'focusmodel' }
-sub FOCUSNEXT () { 'focusnext' }
-sub FOCUSPREV () { 'focusprev' }
-sub FORGET () { 'forget' }
-sub FRACTION () { 'fraction' }
-sub FRAME () { 'frame' }
-sub FROM () { 'from' }
-sub GENERATE () { 'generate' }
-sub GEOMETRY () { 'geometry' }
-sub GEOMETRYINFO () { 'geometryinfo' }
-sub GET () { 'get' }
-sub GETTAGS () { 'gettags' }
-sub GRAVITY () { 'gravity' }
-sub GRAY () { 'gray' }
-sub GRID () { 'grid' }
-sub GROOVE () { 'groove' }
-sub GROUP () { 'group' }
-sub HANDLE () { 'handle' }
-sub HEAD () { 'head' }
-sub HEIGHT () { 'height' }
-sub HIDDEN () { 'hidden' }
-sub HIDE () { 'hide' }
-sub HORIZONTAL () { 'horizontal' }
-sub ICONBITMAP () { 'iconbitmap' }
-sub ICONIFY () { 'iconify' }
-sub ICONMASK () { 'iconmask' }
-sub ICONNAME () { 'iconname' }
-sub ICONPOSITION () { 'iconposition' }
-sub ICONWINDOW () { 'iconwindow' }
-sub ICURSOR () { 'icursor' }
-sub IDENTIFY () { 'identify' }
-sub IDLETASKS () { 'idletasks' }
-sub IGNORE () { 'ignore' }
-sub IMAGE () { 'image' }
-sub INCLUDES () { 'includes' }
-sub INCREASING () { 'increasing' }
-sub INDEX () { 'index' }
-sub INFO () { 'info' }
-sub INSERT () { 'insert' }
-sub INSIDE () { 'inside' }
-sub INTEGER () { 'integer' }
-sub INTERACTIVE () { 'interactive' }
-sub INVOKE () { 'invoke' }
-sub ISMWMRUNNING () { 'ismwmrunning' }
-sub ITEM () { 'item' }
-sub ITEMCGET () { 'itemcget' }
-sub ITEMCONFIGURE () { 'itemconfigure' }
-sub LAST () { 'last' }
-sub LEFT () { 'left' }
-sub LINE () { 'line' }
-sub LINECONFIGURE () { 'lineconfigure' }
-sub LINEEND () { 'lineend' }
-sub LINES () { 'lines' }
-sub LINESTART () { 'linestart' }
-sub LIST () { 'list' }
-sub LOCATION () { 'location' }
-sub LOWER () { 'lower' }
-sub MARK () { 'mark' }
-sub MAX () { 'max' }
-sub MAXSIZE () { 'maxsize' }
-sub MENUBAR () { 'menubar' }
-sub MINSIZE () { 'minsize' }
-sub MITER () { 'miter' }
-sub MONOCHROME () { 'monochrome' }
-sub MOVE () { 'move' }
-sub MOVETO () { 'moveto' }
-sub NAMES () { 'names' }
-sub NEAREST () { 'nearest' }
-sub NEW () { 'new' }
-sub NEXT () { 'next' }
-sub NEXTRANGE () { 'nextrange' }
-sub NONE () { 'none' }
-sub NORMAL () { 'normal' }
-sub NOW () { 'now' }
-sub OFFSPRINGS () { 'offsprings' }
-sub OUTSIDE () { 'outside' }
-sub OVERLAPPING () { 'overlapping' }
-sub OVERRIDEREDIRECT () { 'overrideredirect' }
-sub OWN () { 'own' }
-sub PADX () { 'padx' }
-sub PADY () { 'pady' }
-sub PAGECGET () { 'pagecget' }
-sub PAGECONFIGURE () { 'pageconfigure' }
-sub PAGES () { 'pages' }
-sub PARENT () { 'parent' }
-sub PASSIVE () { 'passive' }
-sub POSITION () { 'position' }
-sub POSITIONFROM () { 'positionfrom' }
-sub POST () { 'post' }
-sub POSTCASCADE () { 'postcascade' }
-sub POSTSCRIPT () { 'postscript' }
-sub PRESENT () { 'present' }
-sub PREV () { 'prev' }
-sub PREVIOUS () { 'previous' }
-sub PREVRANGE () { 'prevrange' }
-sub PROGRAM () { 'program' }
-sub PROJECTING () { 'projecting' }
-sub PROPAGATE () { 'propagate' }
-sub PROTOCOL () { 'protocol' }
-sub PUT () { 'put' }
-sub RADIOBUTTON () { 'radiobutton' }
-sub RAISE () { 'raise' }
-sub RAISED () { 'raised' }
-sub RANGE () { 'range' }
-sub RANGES () { 'ranges' }
-sub READ () { 'read' }
-sub READFILE () { 'readfile' }
-sub REAL () { 'real' }
-sub RECORD () { 'record' }
-sub REDITHER () { 'redither' }
-sub REFCOUNT () { 'refcount' }
-sub RELEASE () { 'release' }
-sub REMOVE () { 'remove' }
-sub RESIZABLE () { 'resizable' }
-sub RIDGE () { 'ridge' }
-sub RIGHT () { 'right' }
-sub ROOT () { 'root' }
-sub ROUND () { 'round' }
-sub ROW () { 'row' }
-sub ROWCONFIGURE () { 'rowconfigure' }
-sub ROWS () { 'rows' }
-sub SCALE () { 'scale' }
-sub SCAN () { 'scan' }
-sub SCROLL () { 'scroll' }
-sub SEARCH () { 'search' }
-sub SEE () { 'see' }
-sub SELECT () { 'select' }
-sub SELECTION () { 'selection' }
-sub SEPARATOR () { 'separator' }
-sub SET () { 'set' }
-sub SHOW () { 'show' }
-sub SIBLINGS () { 'siblings' }
-sub SIZE () { 'size' }
-sub SIZEFROM () { 'sizefrom' }
-sub SLAVES () { 'slaves' }
-sub SLIDER () { 'slider' }
-sub SOLID () { 'solid' }
-sub SPACE () { 'space' }
-sub STATE () { 'state' }
-sub STATUS () { 'status' }
-sub SUNKEN () { 'sunken' }
-sub TAG () { 'tag' }
-sub TAIL () { 'tail' }
-sub TEAROFF () { 'tearoff' }
-sub TEXT () { 'text' }
-sub TITLE () { 'title' }
-sub TO () { 'to' }
-sub TOGGLE () { 'toggle' }
-sub TOP () { 'top' }
-sub TRACING () { 'tracing' }
-sub TRANSIENT () { 'transient' }
-sub TRANSIENTFOR () { 'transientfor' }
-sub TYPE () { 'type' }
-sub TYPES () { 'types' }
-sub UNITS () { 'units' }
-sub UNPACK () { 'unpack' }
-sub UNPOST () { 'unpost' }
-sub UNSET () { 'unset' }
-sub UP () { 'up' }
-sub USER () { 'user' }
-sub VARIABLE () { 'variable' }
-sub VERTICAL () { 'vertical' }
-sub VISIBILITY () { 'visibility' }
-sub WIDTH () { 'width' }
-sub WINDOW () { 'window' }
-sub WITHDRAW () { 'withdraw' }
-sub WITHTAG () { 'withtag' }
-sub WORDEND () { 'wordend' }
-sub WORDSTART () { 'wordstart' }
-sub WRITE () { 'write' }
-sub XVIEW () { 'xview' }
-sub YPOSITION () { 'yposition' }
-sub YVIEW () { 'yview' }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/Entry.pm b/Master/tlpkg/tlperl/lib/Tk/Entry.pm
deleted file mode 100644
index 68e4710978b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Entry.pm
+++ /dev/null
@@ -1,615 +0,0 @@
-package Tk::Entry;
-
-# Converted from entry.tcl --
-#
-# This file defines the default bindings for Tk entry widgets.
-#
-# @(#) entry.tcl 1.22 94/12/17 16:05:14
-#
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-
-use vars qw($VERSION);
-use strict;
-$VERSION = '4.018'; # sprintf '4.%03d',q$Revision: #17 $ =~ /#(\d+)/;
-
-# modify it under the same terms as Perl itself, subject
-# to additional disclaimer in license.terms due to partial
-# derivation from Tk4.0 sources.
-
-use Tk::Widget ();
-use Tk::Clipboard ();
-use base qw(Tk::Clipboard Tk::Widget);
-
-import Tk qw(Ev $XS_VERSION);
-
-Construct Tk::Widget 'Entry';
-
-bootstrap Tk::Entry;
-
-sub Tk_cmd { \&Tk::entry }
-
-Tk::Methods('bbox','delete','get','icursor','index','insert','scan',
- 'selection','validate','xview');
-
-use Tk::Submethods ( 'selection' => [qw(clear range adjust present to from)],
- 'xview' => [qw(moveto scroll)],
- );
-
-sub wordstart
-{my ($w,$pos) = @_;
- my $string = $w->get;
- $pos = $w->index('insert')-1 unless(defined $pos);
- $string = substr($string,0,$pos);
- $string =~ s/\S*$//;
- length $string;
-}
-
-sub wordend
-{my ($w,$pos) = @_;
- my $string = $w->get;
- my $anc = length $string;
- $pos = $w->index('insert') unless(defined $pos);
- $string = substr($string,$pos);
- $string =~ s/^(?:((?=\s)\s*|(?=\S)\S*))//x;
- $anc - length($string);
-}
-
-sub deltainsert
-{
- my ($w,$d) = @_;
- return $w->index('insert')+$d;
-}
-
-#
-# Bind --
-# This procedure is invoked the first time the mouse enters an
-# entry widget or an entry widget receives the input focus. It creates
-# all of the class bindings for entries.
-#
-# Arguments:
-# event - Indicates which event caused the procedure to be invoked
-# (Enter or FocusIn). It is used so that we can carry out
-# the functions of that event in addition to setting up
-# bindings.
-sub ClassInit
-{
- my ($class,$mw) = @_;
-
- $class->SUPER::ClassInit($mw);
-
- # <<Cut>>, <<Copy>> and <<Paste>> defined in Tk::Clipboard
- $mw->bind($class,'<<Clear>>' => sub {
- my $w = shift;
- $w->delete("sel.first", "sel.last");
- });
- $mw->bind($class,'<<PasteSelection>>' => [sub {
- my($w, $x) = @_;
- # XXX logic in Tcl/Tk version screwed up?
- if (!$Tk::strictMotif && !$Tk::mouseMoved) {
- $w->Paste($x);
- }
- }, Ev('x')]);
-
- # Standard Motif bindings:
- # The <Escape> binding is different from the Tcl/Tk version:
- $mw->bind($class,'<Escape>','selectionClear');
-
- $mw->bind($class,'<1>',['Button1',Ev('x'),Ev('y')]);
- $mw->bind($class,'<ButtonRelease-1>',['Button1Release',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B1-Motion>',['Motion',Ev('x'),Ev('y')]);
-
- $mw->bind($class,'<Double-1>',['MouseSelect',Ev('x'),'word','sel.first']);
- $mw->bind($class,'<Double-Shift-1>',['MouseSelect',Ev('x'),'word']);
- $mw->bind($class,'<Triple-1>',['MouseSelect',Ev('x'),'line',0]);
- $mw->bind($class,'<Triple-Shift-1>',['MouseSelect',Ev('x'),'line']);
-
- $mw->bind($class,'<Shift-1>','Shift_1');
-
-
- $mw->bind($class,'<B1-Leave>',['AutoScan',Ev('x')]);
- $mw->bind($class,'<B1-Enter>','CancelRepeat');
- $mw->bind($class,'<Control-1>','Control_1');
- $mw->bind($class,'<Left>', ['SetCursor',Ev('deltainsert',-1)]);
- $mw->bind($class,'<Right>',['SetCursor',Ev('deltainsert',1)]);
- $mw->bind($class,'<Shift-Left>',['KeySelect',Ev('deltainsert',-1)]);
- $mw->bind($class,'<Shift-Right>',['KeySelect',Ev('deltainsert',1)]);
- $mw->bind($class,'<Control-Left>',['SetCursor',Ev(['wordstart'])]);
- $mw->bind($class,'<Control-Right>',['SetCursor',Ev(['wordend'])]);
- $mw->bind($class,'<Shift-Control-Left>',['KeySelect',Ev(['wordstart'])]);
- $mw->bind($class,'<Shift-Control-Right>',['KeySelect',Ev(['wordend'])]);
- $mw->bind($class,'<Home>',['SetCursor',0]);
- $mw->bind($class,'<Shift-Home>',['KeySelect',0]);
- $mw->bind($class,'<End>',['SetCursor','end']);
- $mw->bind($class,'<Shift-End>',['KeySelect','end']);
- $mw->bind($class,'<Delete>','Delete');
-
- $mw->bind($class,'<BackSpace>','Backspace');
-
- $mw->bind($class,'<Control-space>',['selectionFrom','insert']);
- $mw->bind($class,'<Select>',['selectionFrom','insert']);
- $mw->bind($class,'<Control-Shift-space>',['selectionAdjust','insert']);
- $mw->bind($class,'<Shift-Select>',['selectionAdjust','insert']);
-
- $mw->bind($class,'<Control-slash>',['selectionRange',0,'end']);
- $mw->bind($class,'<Control-backslash>','selectionClear');
-
- # $class->clipboardOperations($mw,qw[Copy Cut Paste]);
-
- $mw->bind($class,'<KeyPress>', ['Insert',Ev('A')]);
-
- # Ignore all Alt, Meta, and Control keypresses unless explicitly bound.
- # Otherwise, if a widget binding for one of these is defined, the
- # <KeyPress> class binding will also fire and insert the character,
- # which is wrong. Ditto for Return, and Tab.
-
- $mw->bind($class,'<Alt-KeyPress>' ,'NoOp');
- $mw->bind($class,'<Meta-KeyPress>' ,'NoOp');
- $mw->bind($class,'<Control-KeyPress>' ,'NoOp');
- $mw->bind($class,'<Return>' ,'NoOp');
- $mw->bind($class,'<KP_Enter>' ,'NoOp');
- $mw->bind($class,'<Tab>' ,'NoOp');
- if ($mw->windowingsystem =~ /^(?:classic|aqua)$/)
- {
- $mw->bind($class,'<Command-KeyPress>', 'NoOp');
- }
-
- # On Windows, paste is done using Shift-Insert. Shift-Insert already
- # generates the <<Paste>> event, so we don't need to do anything here.
- if ($Tk::platform ne 'MSWin32')
- {
- $mw->bind($class,'<Insert>','InsertSelection');
- }
-
- if (!$Tk::strictMotif)
- {
- # Additional emacs-like bindings:
- $mw->bind($class,'<Control-a>',['SetCursor',0]);
- $mw->bind($class,'<Control-b>',['SetCursor',Ev('deltainsert',-1)]);
- $mw->bind($class,'<Control-d>',['delete','insert']);
- $mw->bind($class,'<Control-e>',['SetCursor','end']);
- $mw->bind($class,'<Control-f>',['SetCursor',Ev('deltainsert',1)]);
- $mw->bind($class,'<Control-h>','Backspace');
- $mw->bind($class,'<Control-k>',['delete','insert','end']);
-
- $mw->bind($class,'<Control-t>','Transpose');
-
- # XXX The original Tcl/Tk bindings use NextWord/PreviousWord instead
- $mw->bind($class,'<Meta-b>',['SetCursor',Ev(['wordstart'])]);
- $mw->bind($class,'<Meta-d>',['delete','insert',Ev(['wordend'])]);
- $mw->bind($class,'<Meta-f>',['SetCursor',Ev(['wordend'])]);
- $mw->bind($class,'<Meta-BackSpace>',['delete',Ev(['wordstart']),'insert']);
- $mw->bind($class,'<Meta-Delete>',['delete',Ev(['wordstart']),'insert']);
-
- # A few additional bindings from John Ousterhout.
-# XXX conflicts with <<Copy>>: $mw->bind($class,'<Control-w>',['delete',Ev(['wordstart']),'insert']);
- $mw->bind($class,'<2>','Button_2');
- $mw->bind($class,'<B2-Motion>','B2_Motion');
-# XXX superseded by <<PasteSelection>>: $mw->bind($class,'<ButtonRelease-2>','ButtonRelease_2');
- }
- return $class;
-}
-
-
-sub Shift_1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $Tk::selectMode = 'char';
- $w->selectionAdjust('@' . $Ev->x)
-}
-
-
-sub Control_1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->icursor('@' . $Ev->x)
-}
-
-
-sub Delete
-{
- my $w = shift;
- if ($w->selectionPresent)
- {
- $w->deleteSelected
- }
- else
- {
- $w->delete('insert')
- }
-}
-
-
-sub InsertSelection
-{
- my $w = shift;
- eval {local $SIG{__DIE__}; $w->Insert($w->GetSelection)}
-}
-
-
-# Original is ::tk::EntryScanMark
-sub Button_2
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->scan('mark',$Ev->x);
- $Tk::x = $Ev->x;
- $Tk::y = $Ev->y;
- $Tk::mouseMoved = 0
-}
-
-
-# Original is ::tk::EntryScanDrag
-sub B2_Motion
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- # Make sure these exist, as some weird situations can trigger the
- # motion binding without the initial press. [Tcl/Tk Bug #220269]
- if (!defined $Tk::x) { $Tk::x = $Ev->x }
- if (abs(($Ev->x-$Tk::x)) > 2)
- {
- $Tk::mouseMoved = 1
- }
- $w->scan('dragto',$Ev->x)
-}
-
-
-# XXX Not needed anymore
-sub ButtonRelease_2
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- if (!$Tk::mouseMoved)
- {
- eval
- {local $SIG{__DIE__};
- $w->insert('insert',$w->SelectionGet);
- $w->SeeInsert;
- }
- }
-}
-
-sub Button1Release
-{
- shift->CancelRepeat;
-}
-
-# ::tk::EntryClosestGap --
-# Given x and y coordinates, this procedure finds the closest boundary
-# between characters to the given coordinates and returns the index
-# of the character just after the boundary.
-#
-# Arguments:
-# w - The entry window.
-# x - X-coordinate within the window.
-sub ClosestGap
-{
- my($w, $x) = @_;
- my $pos = $w->index('@'.$x);
- my @bbox = $w->bbox($pos);
- if ($x - $bbox[0] < $bbox[2] / 2)
- {
- return $pos;
- }
- $pos + 1;
-}
-
-# Button1 --
-# This procedure is invoked to handle button-1 presses in entry
-# widgets. It moves the insertion cursor, sets the selection anchor,
-# and claims the input focus.
-#
-# Arguments:
-# w - The entry window in which the button was pressed.
-# x - The x-coordinate of the button press.
-sub Button1
-{
- my $w = shift;
- my $x = shift;
- $Tk::selectMode = 'char';
- $Tk::mouseMoved = 0;
- $Tk::pressX = $x;
- $w->icursor($w->ClosestGap($x));
- $w->selectionFrom('insert');
- $w->selectionClear;
- if ($w->cget('-state') ne 'disabled')
- {
- $w->focus()
- }
-}
-
-sub Motion
-{
- my ($w,$x,$y) = @_;
- $Tk::x = $x; # XXX ?
- $w->MouseSelect($x);
-}
-
-# MouseSelect --
-# This procedure is invoked when dragging out a selection with
-# the mouse. Depending on the selection mode (character, word,
-# line) it selects in different-sized units. This procedure
-# ignores mouse motions initially until the mouse has moved from
-# one character to another or until there have been multiple clicks.
-#
-# Arguments:
-# w - The entry window in which the button was pressed.
-# x - The x-coordinate of the mouse.
-sub MouseSelect
-{
-
- my $w = shift;
- my $x = shift;
- return if UNIVERSAL::isa($w, 'Tk::Spinbox') and $w->{_element} ne 'entry';
- $Tk::selectMode = shift if (@_);
- my $cur = $w->index($w->ClosestGap($x));
- return unless defined $cur;
- my $anchor = $w->index('anchor');
- return unless defined $anchor;
- $Tk::pressX ||= $x; # XXX Better use "if !defined $Tk::pressX"?
- if (($cur != $anchor) || (abs($Tk::pressX - $x) >= 3))
- {
- $Tk::mouseMoved = 1
- }
- my $mode = $Tk::selectMode;
- return unless $mode;
- if ($mode eq 'char')
- {
- # The Tcl version uses selectionRange here XXX
- if ($Tk::mouseMoved)
- {
- if ($cur < $anchor)
- {
- $w->selectionTo($cur)
- }
- else
- {
- $w->selectionTo($cur+1)
- }
- }
- }
- elsif ($mode eq 'word')
- {
- # The Tcl version uses tcl_wordBreakBefore/After here XXX
- if ($cur < $w->index('anchor'))
- {
- $w->selectionRange($w->wordstart($cur),$w->wordend($anchor-1))
- }
- else
- {
- $w->selectionRange($w->wordstart($anchor),$w->wordend($cur))
- }
- }
- elsif ($mode eq 'line')
- {
- $w->selectionRange(0,'end')
- }
- if (@_)
- {
- my $ipos = shift;
- eval {local $SIG{__DIE__}; $w->icursor($ipos) };
- }
- $w->idletasks;
-}
-# ::tk::EntryPaste --
-# This procedure sets the insertion cursor to the current mouse position,
-# pastes the selection there, and sets the focus to the window.
-#
-# Arguments:
-# w - The entry window.
-# x - X position of the mouse.
-sub Paste
-{
- my($w, $x) = @_;
- $w->icursor($w->ClosestGap($x));
- eval { local $SIG{__DIE__};
- $w->insert("insert", $w->GetSelection);
- $w->SeeInsert; # Perl/Tk extension
- };
- if ($w->cget(-state) ne 'disabled')
- {
- $w->focus;
- }
-}
-# AutoScan --
-# This procedure is invoked when the mouse leaves an entry window
-# with button 1 down. It scrolls the window left or right,
-# depending on where the mouse is, and reschedules itself as an
-# 'after' command so that the window continues to scroll until the
-# mouse moves back into the window or the mouse button is released.
-#
-# Arguments:
-# w - The entry window.
-# x - The x-coordinate of the mouse when it left the window.
-sub AutoScan
-{
- my $w = shift;
- my $x = shift;
- return if !Tk::Exists($w);
- if ($x >= $w->width)
- {
- $w->xview('scroll',2,'units')
- }
- elsif ($x < 0)
- {
- $w->xview('scroll',-2,'units')
- }
- else
- {
- return;
- }
- $w->MouseSelect($x);
- $w->RepeatId($w->after(50,['AutoScan',$w,$x]))
-}
-# KeySelect
-# This procedure is invoked when stroking out selections using the
-# keyboard. It moves the cursor to a new position, then extends
-# the selection to that position.
-#
-# Arguments:
-# w - The entry window.
-# new - A new position for the insertion cursor (the cursor hasn't
-# actually been moved to this position yet).
-sub KeySelect
-{
- my $w = shift;
- my $new = shift;
- if (!$w->selectionPresent)
- {
- $w->selectionFrom('insert');
- $w->selectionTo($new)
- }
- else
- {
- $w->selectionAdjust($new)
- }
- $w->icursor($new);
- $w->SeeInsert;
-}
-# Insert --
-# Insert a string into an entry at the point of the insertion cursor.
-# If there is a selection in the entry, and it covers the point of the
-# insertion cursor, then delete the selection before inserting.
-#
-# Arguments:
-# w - The entry window in which to insert the string
-# s - The string to insert (usually just a single character)
-sub Insert
-{
- my $w = shift;
- my $s = shift;
- return unless (defined $s && $s ne '');
- eval
- {local $SIG{__DIE__};
- my $insert = $w->index('insert');
- if ($w->index('sel.first') <= $insert && $w->index('sel.last') >= $insert)
- {
- $w->deleteSelected
- }
- };
- $w->insert('insert',$s);
- $w->SeeInsert
-}
-# Backspace --
-# Backspace over the character just before the insertion cursor.
-#
-# Arguments:
-# w - The entry window in which to backspace.
-sub Backspace
-{
- my $w = shift;
- if ($w->selectionPresent)
- {
- $w->deleteSelected
- }
- else
- {
- my $x = $w->index('insert')-1;
- $w->delete($x) if ($x >= 0);
- # XXX Missing repositioning part from Tcl/Tk source
- }
-}
-# SeeInsert
-# Make sure that the insertion cursor is visible in the entry window.
-# If not, adjust the view so that it is.
-#
-# Arguments:
-# w - The entry window.
-sub SeeInsert
-{
- my $w = shift;
- my $c = $w->index('insert');
-#
-# Probably a bug in your version of tcl/tk (I've not this problem
-# when I test Entry in the widget demo for tcl/tk)
-# index('\@0') give always 0. Consequence :
-# if you make <Control-E> or <Control-F> view is adapted
-# but with <Control-A> or <Control-B> view is not adapted
-#
- my $left = $w->index('@0');
- if ($left > $c)
- {
- $w->xview($c);
- return;
- }
- my $x = $w->width;
- while ($w->index('@' . $x) <= $c && $left < $c)
- {
- $left += 1;
- $w->xview($left)
- }
-}
-# SetCursor
-# Move the insertion cursor to a given position in an entry. Also
-# clears the selection, if there is one in the entry, and makes sure
-# that the insertion cursor is visible.
-#
-# Arguments:
-# w - The entry window.
-# pos - The desired new position for the cursor in the window.
-sub SetCursor
-{
- my $w = shift;
- my $pos = shift;
- $w->icursor($pos);
- $w->selectionClear;
- $w->SeeInsert;
-}
-# Transpose
-# This procedure implements the 'transpose' function for entry widgets.
-# It tranposes the characters on either side of the insertion cursor,
-# unless the cursor is at the end of the line. In this case it
-# transposes the two characters to the left of the cursor. In either
-# case, the cursor ends up to the right of the transposed characters.
-#
-# Arguments:
-# w - The entry window.
-sub Transpose
-{
- my $w = shift;
- my $i = $w->index('insert');
- $i++ if ($i < $w->index('end'));
- my $first = $i-2;
- return if ($first < 0);
- my $str = $w->get;
- my $new = substr($str,$i-1,1) . substr($str,$first,1);
- $w->delete($first,$i);
- $w->insert('insert',$new);
- $w->SeeInsert;
-}
-
-sub tabFocus
-{
- my $w = shift;
- $w->selectionRange(0,'end');
- $w->icursor('end');
- $w->SUPER::tabFocus;
-}
-
-# ::tk::EntryGetSelection --
-#
-# Returns the selected text of the entry with respect to the -show option.
-#
-# Arguments:
-# w - The entry window from which the text to get
-sub getSelected
-{
- my $w = shift;
- return undef unless $w->selectionPresent;
- my $str = $w->get;
- my $show = $w->cget('-show');
- $str = $show x length($str) if (defined $show);
- my $s = $w->index('sel.first');
- my $e = $w->index('sel.last');
- return substr($str,$s,$e-$s);
-}
-
-
-1;
-
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/Entry.pod b/Master/tlpkg/tlperl/lib/Tk/Entry.pod
deleted file mode 100644
index 1b6dbf15482..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Entry.pod
+++ /dev/null
@@ -1,693 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Entry - Create and manipulate Entry widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-S< >I<$entry> = I<$parent>-E<gt>B<Entry>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-background> B<-highlightbackground> B<-insertontime> B<-selectforeground>
-B<-borderwidth> B<-highlightcolor> B<-insertwidth> B<-takefocus>
-B<-cursor> B<-highlightthickness> B<-justify> B<-textvariable>
-B<-exportselection> B<-insertbackground> B<-relief> B<-xscrollcommand>
-B<-font> B<-insertborderwidth> B<-selectbackground>
-B<-foreground> B<-insertofftime> B<-selectborderwidth>
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Command-Line Name: B<-disabledbackground>
-
-=item Database Name: B<disabledBackground>
-
-=item Database Class: B<DisabledBackground>
-
-Specifies the background color to use when the entry is disabled. If
-this option is the empty string, the normal background color is used.
-
-=item Command-Line Name: B<-disabledforeground>
-
-=item Database Name: B<disabledForeground>
-
-=item Database Class: B<DisabledForeground>
-
-Specifies the foreground color to use when the entry is disabled. If
-this option is the empty string, the normal foreground color is used.
-
-=item Name: B<invalidCommand>
-
-=item Class: B<InvalidCommand>
-
-=item Switch: B<-invalidcommand>
-
-=item Alias: B<-invcmd>
-
-Specifies a script to eval when B<validateCommand> returns 0.
-Setting it to <undef> disables this feature (the default). The best use
-of this option is to set it to I<bell>. See B<Validation>
-below for more information.
-
-=item Command-Line Name: B<-readonlybackground>
-
-=item Database Name: B<readonlyBackground>
-
-=item Database Class: B<ReadonlyBackground>
-
-Specifies the background color to use when the entry is read-only. If
-this option is the empty string, the normal background color is used.
-
-=item Name: B<show>
-
-=item Class: B<Show>
-
-=item Switch: B<-show>
-
-If this option is specified, then the true contents of the entry
-are not displayed in the window.
-Instead, each character in the entry's value will be displayed as
-the first character in the value of this option, such as ``*''.
-This is useful, for example, if the entry is to be used to enter
-a password.
-If characters in the entry are selected and copied elsewhere, the
-information copied will be what is displayed, not the true contents
-of the entry.
-
-=item Name: B<state>
-
-=item Class: B<State>
-
-=item Switch: B<-state>
-
-Specifies one of three states for the entry: B<normal>, B<disabled>, or
-B<readonly>. If the entry is B<readonly>, then the value may not be changed
-using widget commands and no insertion cursor will be displayed, even
-if the input focus is in the widget; the contents of the widget may
-still be selected. If the entry is B<disabled>, the value may not be
-changed, no insertion cursor will be displayed, the contents will not
-be selectable, and the entry may be displayed in a different color,
-depending on the values of the B<-disabledforeground> and
-B<-disabledbackground> options.
-
-=item Name: B<validate>
-
-=item Class: B<Validate>
-
-=item Switch: B<-validate>
-
-Specifies the mode in which validation should operate: B<none>,
-B<focus>, B<focusin>, B<focusout>, B<key>, or B<all>.
-It defaults to B<none>. When you want validation, you must explicitly
-state which mode you wish to use. See B<Validation> below for more.
-
-=item Name: B<validateCommand>
-
-=item Class: B<ValidateCommand>
-
-=item Switch: B<-validatecommand>
-
-=item Alias: B<-vcmd>
-
-Specifies a script to eval when you want to validate the input into
-the entry widget. Setting it to C<undef> disables this feature (the default).
-This command must return a valid boolean value. If it returns 0 (or
-the valid boolean equivalent) then it means you reject the new edition
-and it will not occur and the B<invalidCommand> will be evaluated if it
-is set. If it returns 1, then the new edition occurs.
-See B<Validation> below for more information.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies an integer value indicating the desired width of the entry window,
-in average-size characters of the widget's font.
-If the value is less than or equal to zero, the widget picks a
-size just large enough to hold its current text.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Entry> method creates a new window (given by the
-$entry argument) and makes it into an entry widget.
-Additional options, described above, may be specified on the
-command line or in the option database
-to configure aspects of the entry such as its colors, font,
-and relief. The B<entry> command returns its
-$entry argument. At the time this command is invoked,
-there must not exist a window named $entry, but
-$entry's parent must exist.
-
-An entry is a widget that displays a one-line text string and
-allows that string to be edited using methods described below, which
-are typically bound to keystrokes and mouse actions.
-When first created, an entry's string is empty.
-A portion of the entry may be selected as described below.
-If an entry is exporting its selection (see the B<exportSelection>
-option), then it will observe the standard X11 protocols for handling the
-selection; entry selections are available as type B<STRING>.
-Entries also observe the standard Tk rules for dealing with the
-input focus. When an entry has the input focus it displays an
-I<insertion cursor> to indicate where new characters will be
-inserted.
-
-Entries are capable of displaying strings that are too long to
-fit entirely within the widget's window. In this case, only a
-portion of the string will be displayed; methods described below
-may be used to change the view in the window. Entries use
-the standard B<xScrollCommand> mechanism for interacting with
-scrollbars (see the description of the B<-xscrollcommand> option
-for details). They also support scanning, as described below.
-
-=head1 VALIDATION
-
-Validation of entry widgets is derived from part of the patch written by
-jhobbs@cs.uoregon.edu. This works by setting the B<validateCommand>
-option to a callback which will be evaluated according to the B<validate>
-option as follows:
-
-=over 4
-
-=item B<none>
-
-Default. This means no validation will occur.
-
-=item B<focus>
-
-B<validateCommand> will be called when the entry receives or
-loses focus.
-
-=item B<focusin>
-
-B<validateCommand> will be called when the entry receives focus.
-
-=item B<focusout>
-
-B<validateCommand> will be called when the entry loses focus.
-
-=item B<key>
-
-B<validateCommand> will be called when the entry is edited.
-
-=item B<all>
-
-B<validateCommand> will be called for all above conditions.
-
-=back
-
-The B<validateCommand> and B<invalidCommand> are called with the following
-arguments:
-
-=over 4
-
-=item * The proposed value of the entry. If you are configuring the
-entry widget to have a new textvariable, this will be the value of that
-textvariable.
-
-=item * The characters to be added (or deleted). This will be C<undef>
-if validation is due to focus, explcit call to validate or if change
-is due to C<-textvariable> changing.
-
-=item * The current value of entry i.e. before the proposed change.
-
-=item * index of char string to be added/deleted, if any. -1 otherwise
-
-=item * type of action. 1 == INSERT, 0 == DELETE,
--1 if it's a forced validation or textvariable validation
-
-=back
-
-In general, the B<textVariable> and B<validateCommand> can be
-dangerous to mix. If you try set the B<textVariable>
-to something that the B<validateCommand> will not accept it will
-be set back to the value of the entry widget.
-Using the B<textVariable> for read-only purposes will never cause problems.
-
-The B<validateCommand> will turn itself off by setting
-B<validate> to B<none> when an error occurs, for example
-when the B<validateCommand> or B<invalidCommand> encounters
-an error in its script while evaluating, or
-B<validateCommand> does not return a valid boolean value.
-
-With the perl/Tk version B<validate> option is supposed to be
-"suspended" while executing the B<validateCommand> or the B<invalidCommand>.
-This is experimental but in theory either callback can "correct" the
-value of the widget, and override the proposed change. (B<validateCommand>
-should still return false to inhibit the change from happening when
-it returns.)
-
-=head1 WIDGET METHODS
-
-The B<Entry> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-Many of the additional methods for entries take one or more indices as
-arguments. An index specifies a particular character in the entry's
-string, in any of the following ways:
-
-=over 4
-
-=item I<number>
-
-Specifies the character as a numerical index, where 0 corresponds
-to the first character in the string.
-
-=item B<anchor>
-
-Indicates the anchor point for the selection, which is set with the
-B<selectionFrom> and B<selectionAdjust> methods.
-
-=item B<end>
-
-Indicates the character just after the last one in the entry's string.
-This is equivalent to specifying a numerical index equal to the length
-of the entry's string.
-
-=item B<insert>
-
-Indicates the character adjacent to and immediately following the
-insertion cursor.
-
-=item B<sel.first>
-
-Indicates the first character in the selection. It is an error to
-use this form if the selection isn't in the entry window.
-
-=item B<sel.last>
-
-Indicates the character just after the last one in the selection.
-It is an error to use this form if the selection isn't in the
-entry window.
-
-=item B<@>I<number>
-
-In this form, I<number> is treated as an x-coordinate in the
-entry's window; the character spanning that x-coordinate is used.
-For example, ``B<@0>'' indicates the left-most character in the
-window.
-
-=back
-
-Abbreviations may be used for any of the forms above, e.g. ``B<e>''
-or ``B<sel.f>''. In general, out-of-range indices are automatically
-rounded to the nearest legal value.
-
-The following additional methods are available for entry widgets:
-
-=over 4
-
-=item I<$entry>-E<gt>B<bbox>(I<index>)
-
-Returns a list of four numbers describing the bounding box of the
-character given by I<index>.
-The first two elements of the list give the x and y coordinates of
-the upper-left corner of the screen area covered by the character
-(in pixels relative to the widget) and the last two elements give
-the width and height of the character, in pixels.
-The bounding box may refer to a region outside the visible area
-of the window.
-
-=item I<$entry>-E<gt>B<cget>(?I<option>?)
-
-Returns the current value of the configuration option given
-by I<option>.
-I<Option> may have any of the values accepted by the B<entry>
-command.
-
-=item I<$entry>-E<gt>B<configure>(?I<option>?, ?I<value, option, value, ...>?)
-
-Query or modify the configuration options of the widget.
-If no I<option> is specified, returns a list describing all of
-the available options for $entry (see L<Tk::configure> for
-information on the format of this list). If I<option> is specified
-with no I<value>, then the command returns a list describing the
-one named option (this list will be identical to the corresponding
-sublist of the value returned if no I<option> is specified). If
-one or more I<option-value> pairs are specified, then the command
-modifies the given widget option(s) to have the given value(s); in
-this case the command returns an empty string.
-I<Option> may have any of the values accepted by the B<entry>
-command.
-
-=item I<$entry>-E<gt>B<delete>(I<first, >?I<last>?)
-
-Delete one or more elements of the entry.
-I<First> is the index of the first character to delete, and
-I<last> is the index of the character just after the last
-one to delete.
-If I<last> isn't specified it defaults to I<first>+1,
-i.e. a single character is deleted.
-This method returns an empty string.
-
-=item I<$entry>-E<gt>B<get>
-
-Returns the entry's string.
-
-=item I<$entry>-E<gt>B<icursor>(I<index>)
-
-Arrange for the insertion cursor to be displayed just before the character
-given by I<index>. Returns an empty string.
-
-=item I<$entry>-E<gt>B<index>(I<index>)
-
-Returns the numerical index corresponding to I<index>.
-
-=item I<$entry>-E<gt>B<insert>(I<index, string>)
-
-Insert the characters of I<string> just before the character
-indicated by I<index>. Returns an empty string.
-
-=item I<$entry>->B<scan>(I<option, args>)
-
-=item I<$entry>->B<scan>I<Option>(I<args>)
-
-This method is used to implement scanning on entries. It has
-two forms, depending on I<Option>:
-
-=over 8
-
-=item I<$entry>->B<scanMark>(I<x>)
-
-Records I<x> and the current view in the entry widget; used in
-conjunction with later B<scanDragto> methods. Typically this
-method is associated with a mouse button press in the widget. It
-returns an empty string.
-
-=item I<$entry>->B<scanDragto>(I<x>)
-
-This method computes the difference between its I<x> argument
-and the I<x> argument to the last B<scanMark> method for
-the widget. It then adjusts the view left or right by 10 times the
-difference in x-coordinates. This method is typically associated
-with mouse motion events in the widget, to produce the effect of
-dragging the entry at high speed through the widget. The return
-value is an empty string.
-
-=back
-
-=item I<$entry>->B<selection>(I<option, arg>)
-
-=item I<$entry>->B<selection>I<Option>(I<arg>)
-
-This method is used to adjust the selection within an entry. It
-has several forms, depending on I<Option>:
-
-=over 8
-
-=item I<$entry>-E<gt>B<selectionAdjust>(I<index>)
-
-Locate the end of the selection nearest to the character given by
-I<index>, and adjust that end of the selection to be at I<index>
-(i.e including but not going beyond I<index>). The other
-end of the selection is made the anchor point for future
-B<selectionTo> methods. If the selection
-isn't currently in the entry, then a new selection is created to
-include the characters between I<index> and the most recent
-selection anchor point, inclusive.
-Returns an empty string.
-
-=item I<$entry>-E<gt>B<selectionClear>
-
-Clear the selection if it is currently in this widget. If the
-selection isn't in this widget then the method has no effect.
-Returns an empty string.
-
-=item I<$entry>-E<gt>B<selectionFrom>(I<index>)
-
-Set the selection anchor point to just before the character
-given by I<index>. Doesn't change the selection.
-Returns an empty string.
-
-=item I<$entry>-E<gt>B<selectionPresent>
-
-Returns 1 if there is are characters selected in the entry,
-0 if nothing is selected.
-
-=item I<$entry>-E<gt>B<selectionRange>(I<start, >I<end>)
-
-Sets the selection to include the characters starting with
-the one indexed by I<start> and ending with the one just
-before I<end>.
-If I<end> refers to the same character as I<start> or an
-earlier one, then the entry's selection is cleared.
-
-=item I<$entry>-E<gt>B<selectionTo>(I<index>)
-
-If I<index> is before the anchor point, set the selection
-to the characters from I<index> up to but not including
-the anchor point.
-If I<index> is the same as the anchor point, do nothing.
-If I<index> is after the anchor point, set the selection
-to the characters from the anchor point up to but not including
-I<index>.
-The anchor point is determined by the most recent B<selectionFrom>
-or B<selectionAdjust> method in this widget.
-If the selection isn't in this widget then a new selection is
-created using the most recent anchor point specified for the widget.
-Returns an empty string.
-
-=back
-
-=item I<$entry>-E<gt>B<validate>
-
-This command is used to force an evaluation of the B<validateCommand>
-independent of the conditions specified by the B<validate> option. It
-returns 0 or 1.
-
-=item I<$entry>-E<gt>B<xview>(I<args>)
-
-This command is used to query and change the horizontal position of the
-text in the widget's window. It can take any of the following
-forms:
-
-=over 8
-
-=item I<$entry>-E<gt>B<xview>
-
-Returns a list containing two elements.
-Each element is a real fraction between 0 and 1; together they describe
-the horizontal span that is visible in the window.
-For example, if the first element is .2 and the second element is .7,
-20% of the entry's text is off-screen to the left, the middle 50% is visible
-in the window, and 30% of the text is off-screen to the right.
-These are the same values passed to scrollbars via the B<-xscrollcommand>
-option.
-
-=item I<$entry>-E<gt>B<xview>(I<index>)
-
-Adjusts the view in the window so that the character given by I<index>
-is displayed at the left edge of the window.
-
-=item I<$entry>-E<gt>B<xviewMoveto>(I<fraction>)
-
-Adjusts the view in the window so that the character I<fraction> of the
-way through the text appears at the left edge of the window.
-I<Fraction> must be a fraction between 0 and 1.
-
-=item I<$entry>-E<gt>B<xviewScroll>(I<number, what>)
-
-This method shifts the view in the window left or right according to
-I<number> and I<what>.
-I<Number> must be an integer.
-I<What> must be either B<units> or B<pages> or an abbreviation
-of one of these.
-If I<what> is B<units>, the view adjusts left or right by
-I<number> average-width characters on the display; if it is
-B<pages> then the view adjusts by I<number> screenfuls.
-If I<number> is negative then characters farther to the left
-become visible; if it is positive then characters farther to the right
-become visible.
-
-=back
-
-=back
-
-=head1 DEFAULT BINDINGS
-
-Tk automatically creates class bindings for entries that give them
-the following default behavior.
-In the descriptions below, ``word'' refers to a contiguous group
-of letters, digits, or ``_'' characters, or any single character
-other than these.
-
-=over 4
-
-=item [1]
-
-Clicking mouse button 1 positions the insertion cursor
-just before the character underneath the mouse cursor, sets the
-input focus to this widget, and clears any selection in the widget.
-Dragging with mouse button 1 strokes out a selection between
-the insertion cursor and the character under the mouse.
-
-=item [2]
-
-Double-clicking with mouse button 1 selects the word under the mouse
-and positions the insertion cursor at the beginning of the word.
-Dragging after a double click will stroke out a selection consisting
-of whole words.
-
-=item [3]
-
-Triple-clicking with mouse button 1 selects all of the text in the
-entry and positions the insertion cursor before the first character.
-
-=item [4]
-
-The ends of the selection can be adjusted by dragging with mouse
-button 1 while the Shift key is down; this will adjust the end
-of the selection that was nearest to the mouse cursor when button
-1 was pressed.
-If the button is double-clicked before dragging then the selection
-will be adjusted in units of whole words.
-
-=item [5]
-
-Clicking mouse button 1 with the Control key down will position the
-insertion cursor in the entry without affecting the selection.
-
-=item [6]
-
-If any normal printing characters are typed in an entry, they are
-inserted at the point of the insertion cursor.
-
-=item [7]
-
-The view in the entry can be adjusted by dragging with mouse button 2.
-If mouse button 2 is clicked without moving the mouse, the selection
-is copied into the entry at the position of the mouse cursor.
-
-=item [8]
-
-If the mouse is dragged out of the entry on the left or right sides
-while button 1 is pressed, the entry will automatically scroll to
-make more text visible (if there is more text off-screen on the side
-where the mouse left the window).
-
-=item [9]
-
-The Left and Right keys move the insertion cursor one character to the
-left or right; they also clear any selection in the entry and set
-the selection anchor.
-If Left or Right is typed with the Shift key down, then the insertion
-cursor moves and the selection is extended to include the new character.
-Control-Left and Control-Right move the insertion cursor by words, and
-Control-Shift-Left and Control-Shift-Right move the insertion cursor
-by words and also extend the selection.
-Control-b and Control-f behave the same as Left and Right, respectively.
-Meta-b and Meta-f behave the same as Control-Left and Control-Right,
-respectively.
-
-=item [10]
-
-The Home key, or Control-a, will move the insertion cursor to the
-beginning of the entry and clear any selection in the entry.
-Shift-Home moves the insertion cursor to the beginning of the entry
-and also extends the selection to that point.
-
-=item [11]
-
-The End key, or Control-e, will move the insertion cursor to the
-end of the entry and clear any selection in the entry.
-Shift-End moves the cursor to the end and extends the selection
-to that point.
-
-=item [12]
-
-The Select key and Control-Space set the selection anchor to the position
-of the insertion cursor. They don't affect the current selection.
-Shift-Select and Control-Shift-Space adjust the selection to the
-current position of the insertion cursor, selecting from the anchor
-to the insertion cursor if there was not any selection previously.
-
-=item [13]
-
-Control-/ selects all the text in the entry.
-
-=item [14]
-
-Control-\ clears any selection in the entry.
-
-=item [15]
-
-The F16 key (labelled Copy on many Sun workstations) or Meta-w
-copies the selection in the widget to the clipboard, if there is a selection.
-
-=item [16]
-
-The F20 key (labelled Cut on many Sun workstations) or Control-w
-copies the selection in the widget to the clipboard and deletes
-the selection.
-If there is no selection in the widget then these keys have no effect.
-
-=item [17]
-
-The F18 key (labelled Paste on many Sun workstations) or Control-y
-inserts the contents of the clipboard at the position of the
-insertion cursor.
-
-=item [18]
-
-The Delete key deletes the selection, if there is one in the entry.
-If there is no selection, it deletes the character to the right of
-the insertion cursor.
-
-=item [19]
-
-The BackSpace key and Control-h delete the selection, if there is one
-in the entry.
-If there is no selection, it deletes the character to the left of
-the insertion cursor.
-
-=item [20]
-
-Control-d deletes the character to the right of the insertion cursor.
-
-=item [21]
-
-Meta-d deletes the word to the right of the insertion cursor.
-
-=item [22]
-
-Control-k deletes all the characters to the right of the insertion
-cursor.
-
-=item [23]
-
-Control-t reverses the order of the two characters to the right of
-the insertion cursor.
-
-If the entry is disabled using the B<-state> option, then the entry's
-view can still be adjusted and text in the entry can still be selected,
-but no insertion cursor will be displayed and no text modifications will
-take place.
-
-The behavior of entries can be changed by defining new bindings for
-individual widgets or by redefining the class bindings.
-
-=back
-
-=head1 KEYWORDS
-
-entry, widget
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Error.pod b/Master/tlpkg/tlperl/lib/Tk/Error.pod
deleted file mode 100644
index 9c38f0b7d74..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Error.pod
+++ /dev/null
@@ -1,145 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Error - Method invoked to process background errors
-
-=for category Binding Events and Callbacks
-
-=head1 SYNOPSIS
-
-Customization:
-
- require Tk::ErrorDialog;
-
-or
-
- sub Tk::Error
- {
- my ($widget,$error,@locations) = @_;
- ...
-
- }
-
-=head1 DESCRIPTION
-
-The B<Tk::Error> method is invoked by perl/Tk when a background
-error occurs. Two possible implementations are provided in the
-distribution and individual applications or users can (re)define a B<Tk::Error>
-method (e.g. as a perl sub) if they wish to handle background
-errors in some other manner.
-
-A background error is one that occurs in a command that didn't
-originate with the application. For example, if an error occurs
-while executing a L<callback|Tk::callbacks> specified with a
-L<bind|Tk::bind> or a L<after|Tk::after>
-command, then it is a background error. For a non-background error,
-the error can simply be returned up through nested subroutines
-until it reaches the top-level code in the application;
-then the application can report the error in whatever way it
-wishes. When a background error occurs, the unwinding ends in
-the Tk library and there is no obvious way for Tk to report
-the error.
-
-When Tk detects a background error, it saves information about the
-error and invokes the B<Tk::Error> method later when Tk is idle.
-
-B<Tk::Error> is invoked by perl/Tk as if by the perl code:
-
-S< >I<$mainwindow>-E<gt>B<Tk::Error>(I<"error message">, I<location ...>);
-
-I<$mainwindow> is the B<MainWindow> associated with widget which
-detected the error, I<"error message"> is a string describing the error
-that has been detected, I<location> is a list of one or more "locations"
-which describe the call sequence at the point the error was detected.
-
-The locations are a typically a mixture of perl location reports giving
-script name and line number, and simple strings describing locations in
-core Tk or perl/Tk C code.
-
-Tk will ignore any result returned by the B<Tk::Error> method.
-If another error occurs within the B<Tk::Error> method
-(for example if it calls B<die>) then Tk reports this error
-itself by writing a message to stderr (this is to avoid infinite loops
-due to any bugs in B<Tk::Error>).
-
-If several background errors accumulate before B<Tk::Error>
-is invoked to process them, B<Tk::Error> will be invoked once
-for each error, in the order they occurred.
-However, if B<Tk::Error> calls B<Tk-E<gt>break>, then
-any remaining errors are skipped without calling B<Tk::Error>.
-
-The B<Tk> module includes a default B<Tk::Error> subroutine
-that simply reports the error on stderr.
-
-=head1 Tk::ErrorDialog
-
-An alternate definition is provided via:
-
-S< >C<require Tk::ErrorDialog;>
-
-that posts a dialog box containing the error message and offers
-the user a chance to see a stack trace showing where the
-error occurred.
-
-This is an OO implementation of the Tcl/Tk command B<bgerror>, with a
-twist: since there is only one B<ErrorDialog> widget, you aren't required
-to invoke the constructor to create it; it will be created
-automatically when the first background error occurs. However, in
-order to configure the I<-cleanupcode> and I<-appendtraceback>
-B<ErrorDialog> options you must call the constructor and create it
-manually.
-
-The B<ErrorDialog> object essentially consists of two subwidgets: a
-B<Dialog> widget to display the background error and a B<Text> widget
-for the traceback information. If required, you can invoke various
-widget methods to customize these subwidgets - their advertised names
-are described below.
-
-S< >I<$mw>-E<gt>B<ErrorDialog>(-cleanupcode => I<code>, -appendtraceback => I<bool>);
-
-$mw is a window reference.
-
-I<code> is a CODE reference if special post-background error
-processing is required (default is undefined). The callback subroutine
-is called with @_ having the same arguments that B<Tk::Error> was
-invoked with.
-
-I<bool> is a boolean indicating whether or not to append successive
-tracebacks (default is 1, do append).
-
-=head2 Advertised ErrorDialog widgets
-
-I<error_dialog> is the Dialog widget reference.
-
-I<text> is the Text widget reference containing the traceback information.
-
-=head1 BUGS
-
-If B<after> or B<fileevent> are not invoked as methods of a widget
-then perl/Tk is unable to provide a I<$mainwindow> argument.
-To support such code from earlier versions of perl/Tk
-perl/Tk therefore calls B<Tk::Error> with string 'Tk' instead:
-B<Tk-E<gt>Tk::Error\(...\)>.
-In this case the B<Tk::Error> in B<Tk::ErrorDialog> and similar
-implementations cannot "popup" a window as they don't know which display
-to use. A mechanism to supply I<the> B<MainWindow> in applications
-which only have one (a very common case) should be provided.
-
-=head1 SEE ALSO
-
-L<Tk::bind|Tk::bind>
-L<Tk::after|Tk::after>
-L<Tk::fileevent|Tk::fileevent>
-
-=head1 KEYWORDS
-
-background error, reporting
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/ErrorDialog.pm b/Master/tlpkg/tlperl/lib/Tk/ErrorDialog.pm
deleted file mode 100644
index 2e327825b0b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ErrorDialog.pm
+++ /dev/null
@@ -1,129 +0,0 @@
-package Tk::ErrorDialog;
-
-use vars qw($VERSION);
-#$VERSION = sprintf '4.%03d', q$Revision: #7 $ =~ /\D(\d+)\s*$/;
-$VERSION = '4.008';
-
-use Tk ();
-require Tk::Dialog;
-use base qw(Tk::Toplevel);
-
-
-# ErrorDialog - a translation of bgerror() from Tcl/Tk to Perl/Tk.
-#
-# Currently TkPerl background errors are sent to stdout/stderr; use this
-# module if you want them in a window. You can also "roll your own" by
-# supplying the routine Tk::Error.
-
-use strict;
-
-Construct Tk::Widget 'ErrorDialog';
-
-my %options = ( -buttons => ['OK', 'Skip Messages', 'Stack trace'],
- -bitmap => 'error'
- );
-my %ED_OBJECT; # ErrorDialog per MainWindow (singleton)
-
-sub import
-{
- my $class = shift;
- while (@_)
- {
- my $key = shift;
- my $val = shift;
- $options{$key} = $val;
- }
-}
-
-sub Populate {
-
- # ErrorDialog constructor. Uses `new' method from base class
- # to create object container then creates the dialog toplevel and the
- # traceback toplevel.
-
- my($cw, $args) = @_;
-
- my $mw = $cw->MainWindow;
- my $dr = $mw->Dialog(
- -title => 'Error in '.$mw->name,
- -text => 'on-the-fly-text',
- -bitmap => $options{'-bitmap'},
- -buttons => $options{'-buttons'},
- );
- $cw->minsize(1, 1);
- $cw->title('Stack Trace for Error');
- $cw->iconname('Stack Trace');
- my $t_ok = $cw->Button(
- -text => 'OK',
- -command => [
- sub {
- shift->withdraw;
- }, $cw,
- ]
- );
- my $t_text = $cw->Text(
- -relief => 'sunken',
- -bd => 2,
- -setgrid => 'true',
- -width => 60,
- -height => 20,
- );
- my $t_scroll = $cw->Scrollbar(
- -relief => 'sunken',
- -command => ['yview', $t_text],
- );
- $t_text->configure(-yscrollcommand => ['set', $t_scroll]);
- $t_ok->pack(-side => 'bottom', -padx => '3m', -pady => '2m');
- $t_scroll->pack(-side => 'right', -fill => 'y');
- $t_text->pack(-side => 'left', -expand => 'yes', -fill => 'both');
- $cw->withdraw;
-
- $cw->Advertise(error_dialog => $dr); # advertise dialog widget
- $cw->Advertise(text => $t_text); # advertise text widget
- $cw->ConfigSpecs(-cleanupcode => [PASSIVE => undef, undef, undef],
- -appendtraceback => [ PASSIVE => undef, undef, 1 ]);
- $ED_OBJECT{$mw} = $cw;
- $cw->protocol('WM_DELETE_WINDOW' => sub {$cw->withdraw});
- return $cw;
-
-} # end Populate
-
-sub Tk::Error {
-
- # Post a dialog box with the error message and give the user a chance
- # to see a more detailed stack trace.
-
- my($w, $error, @msgs) = @_;
-
- my $grab = $w->grab('current');
- $grab->Unbusy if (defined $grab);
-
- my $mw = $w->MainWindow;
- my $ed = $ED_OBJECT{$mw} || $w->ErrorDialog;
-
- my($d, $t) = ($ed->Subwidget('error_dialog'), $ed->Subwidget('text'));
-
- $d->configure(-text => "Error: $error");
- $d->bell;
- $mw->deiconify if $mw->state ne 'normal';
- my $ans = $d->Show;
-
- $t->delete('0.0', 'end') if not $ed->{'-appendtraceback'};
- $t->insert('end', "\n");
- $t->mark('set', 'ltb', 'end');
- $t->insert('end', "--- Begin Traceback ---\n$error\n");
- my $msg;
- for $msg (@msgs) {
- $t->insert('end', "$msg\n");
- }
- $t->yview('ltb');
-
- $ed->deiconify if ($ans =~ /trace/i);
-
- my $c = $ed->{Configure}{'-cleanupcode'};
- &$c if defined $c; # execute any cleanup code if it was defined
- $w->break if ($ans =~ /skip/i);
-
-} # end Tk::Error
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/ErrorDialog.pod b/Master/tlpkg/tlperl/lib/Tk/ErrorDialog.pod
deleted file mode 100644
index 6e13550967f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ErrorDialog.pod
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::ErrorDialog - Method invoked to process background errors
-
-=for category Binding Events and Callbacks
-
-=head1 SYNOPSIS
-
-Customization:
-
- require Tk::ErrorDialog;
-
-=head1 DESCRIPTION
-
-C<Tk::ErrorDialog> is a possibility to handle background errors. For a full descriptionm, see L<Tk::Error>.
-
-=head1 SEE ALSO
-
-L<Tk::Error>
-L<Tk::bind|Tk::bind>
-L<Tk::after|Tk::after>
-L<Tk::fileevent|Tk::fileevent>
-
-=head1 KEYWORDS
-
-background error, reporting, error dialog
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Event.pm b/Master/tlpkg/tlperl/lib/Tk/Event.pm
deleted file mode 100644
index f00a0b5bdbe..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Event.pm
+++ /dev/null
@@ -1,14 +0,0 @@
-package Tk::Event;
-use vars qw($VERSION $XS_VERSION @EXPORT_OK);
-END { CleanupGlue() }
-$VERSION = '4.033';
-$XS_VERSION = '804.033';
-$XS_VERSION =~ s{_}{};
-use base qw(Exporter);
-use XSLoader;
-@EXPORT_OK = qw($XS_VERSION DONT_WAIT WINDOW_EVENTS FILE_EVENTS
- TIMER_EVENTS IDLE_EVENTS ALL_EVENTS);
-XSLoader::load 'Tk::Event',$XS_VERSION;
-require Tk::Event::IO;
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/Event/IO.pm b/Master/tlpkg/tlperl/lib/Tk/Event/IO.pm
deleted file mode 100644
index 3cd2fda3856..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Event/IO.pm
+++ /dev/null
@@ -1,132 +0,0 @@
-package Tk::Event::IO;
-use strict;
-use Carp;
-
-use vars qw($VERSION @EXPORT_OK);
-$VERSION = '4.009'; # sprintf '4.%03d', q$Revision: #8 $ =~ /\D(\d+)\s*$/;
-
-use base qw(Exporter);
-use Symbol ();
-
-@EXPORT_OK = qw(READABLE WRITABLE);
-
-sub PrintArgs
-{
- my $func = (caller(1))[3];
- print "$func(",join(',',@_),")\n";
-}
-
-sub PRINT
-{
- my $obj = shift;
- $obj->wait(WRITABLE);
- my $h = $obj->handle;
- return print $h @_;
-}
-
-sub PRINTF
-{
- my $obj = shift;
- $obj->wait(WRITABLE);
- my $h = $obj->handle;
- return printf $h @_;
-}
-
-sub WRITE
-{
- my $obj = $_[0];
- $obj->wait(WRITABLE);
- return syswrite($obj->handle,$_[1],$_[2]);
-}
-
-my $depth = 0;
-sub READLINE
-{
- my $obj = shift;
- $obj->wait(READABLE);
- my $h = $obj->handle;
- my $w = <$h>;
- return $w;
-}
-
-sub READ
-{
- my $obj = $_[0];
- $obj->wait(READABLE);
- my $h = $obj->handle;
- return sysread($h,$_[1],$_[2],defined $_[3] ? $_[3] : 0);
-}
-
-sub GETC
-{
- my $obj = $_[0];
- $obj->wait(READABLE);
- my $h = $obj->handle;
- return getc($h);
-}
-
-sub CLOSE
-{
- my $obj = shift;
- $obj->unwatch;
- my $h = $obj->handle;
- return close($h);
-}
-
-sub EOF
-{
- my $obj = shift;
- my $h = $obj->handle;
- return eof($h);
-}
-
-sub FILENO
-{
- my $obj = shift;
- my $h = $obj->handle;
- return fileno($h);
-}
-
-sub imode
-{
- my $mode = shift;
- my $imode = ${{'readable' => READABLE(),
- 'writable' => WRITABLE()}}{$mode};
- croak("Invalid handler type '$mode'") unless (defined $imode);
- return $imode;
-}
-
-sub fileevent
-{
- my ($widget,$file,$mode,$cb) = @_;
- my $imode = imode($mode);
- unless (ref $file)
- {
- no strict 'refs';
- $file = Symbol::qualify($file,(caller)[0]);
- $file = \*{$file};
- }
- my $obj = tied(*$file);
- unless ($obj && $obj->isa('Tk::Event::IO'))
- {
- $obj = tie *$file,'Tk::Event::IO', $file;
- }
- if (@_ == 3)
- {
- # query return the handler
- return $obj->handler($imode);
- }
- else
- {
- # set the handler
- my $h = $obj->handler($imode,$cb);
- undef $obj; # Prevent warnings about untie with ref to object
- unless ($h)
- {
- untie *$file;
- }
- }
-}
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/Eventloop.pod b/Master/tlpkg/tlperl/lib/Tk/Eventloop.pod
deleted file mode 100644
index a4c99e7988e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Eventloop.pod
+++ /dev/null
@@ -1,62 +0,0 @@
-
-=head1 NAME
-
-Tk::Event - ToolKit for Events
-
-=for category Implementation
-
-=head1 SYNOPSIS
-
- use Tk::Event;
-
- Tk::Event->fileevent(\*FH, 'readable' => callback);
-
- Tk::Event->lineavail(\*FH, callback);
-
- use Tk::Event::Signal qw(INT);
-
- $SIG{'INT'} = callback;
-
- use Tk::Event::process;
-
- Tk::Event->proc($pid, callback);
-
- QueueEvent(callback [, position])
-
-
-=head1 DESCRIPTION
-
-
-That is better than nothing but still hard to use. Most scripts want higher
-level result (a line, a "block" of data etc.)
-
-So it has occured to me that we could use new-ish TIEHANDLE thus:
-
- my $obj = tie SOMEHANDLE,Tk::Event::IO;
-
- while (<SOMEHANDLE>)
- {
- }
-
-Then the READLINE routine registers a callback and looks something like:
-
- sub READLINE
- {
- my $obj = shift;
- Event->io(*$obj,'readable',sub { sysread(*$obj,${*$obj},1,length(${*$obj}) });
- my $pos;
- while (($pos = index(${*$obj},$/) < 0)
- {
- DoOneEvent();
- }
- Event->io(*$obj,'readable',''); # unregister
- $pos += length($/);
- my $result = substr(${*$obj},0,$pos);
- substr(${*$obj},0,$pos) = '';
- return $result;
- }
-
-This is using the scalar part of the glob representing the _inner_ IO
-as a buffer in which to accumulate chars.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tk/FBox.pm b/Master/tlpkg/tlperl/lib/Tk/FBox.pm
deleted file mode 100644
index ef867a7e097..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/FBox.pm
+++ /dev/null
@@ -1,1061 +0,0 @@
-# -*- perl -*-
-#
-# tkfbox.tcl --
-#
-# Implements the "TK" standard file selection dialog box. This
-# dialog box is used on the Unix platforms whenever the tk_strictMotif
-# flag is not set.
-#
-# The "TK" standard file selection dialog box is similar to the
-# file selection dialog box on Win95(TM). The user can navigate
-# the directories by clicking on the folder icons or by
-# selecting the "Directory" option menu. The user can select
-# files by clicking on the file icons or by entering a filename
-# in the "Filename:" entry.
-#
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# Translated to perl/Tk by Slaven Rezic <slaven@rezic.de>.
-#
-
-#----------------------------------------------------------------------
-#
-# F I L E D I A L O G
-#
-#----------------------------------------------------------------------
-# tkFDialog --
-#
-# Implements the TK file selection dialog. This dialog is used when
-# the tk_strictMotif flag is set to false. This procedure shouldn't
-# be called directly. Call tk_getOpenFile or tk_getSaveFile instead.
-#
-
-use 5.005; # qr//
-
-package Tk::FBox;
-require Tk::Toplevel;
-
-use strict;
-use vars qw($VERSION $updirImage $folderImage $fileImage);
-
-#$VERSION = sprintf '4.%03d', q$Revision: #18 $ =~ /\D(\d+)\s*$/;
-$VERSION = '4.021';
-
-use base qw(Tk::Toplevel);
-
-Construct Tk::Widget 'FBox';
-
-sub import {
- if (defined $_[1] and $_[1] eq 'as_default') {
- local $^W = 0;
- package Tk;
- if ($Tk::VERSION < 804) {
- *FDialog = \&Tk::FBox::FDialog;
- *MotifFDialog = \&Tk::FBox::FDialog;
- } else {
- *tk_getOpenFile = sub {
- Tk::FBox::FDialog("tk_getOpenFile", @_);
- };
- *tk_getSaveFile = sub {
- Tk::FBox::FDialog("tk_getSaveFile", @_);
- };
- }
- }
-}
-
-# Note that -sortcmd is experimental and the interface is likely to change.
-# Using -sortcmd is really strange :-(
-# $top->getOpenFile(-sortcmd => sub { package Tk::FBox; uc $b cmp uc $a});
-# or, un-perlish, but useable (now activated in code):
-# $top->getOpenFile(-sortcmd => sub { uc $_[1] cmp uc $_[0]});
-
-sub Populate {
- my($w, $args) = @_;
-
- require Tk::IconList;
- require File::Basename;
- require Cwd;
-
- $w->SUPER::Populate($args);
-
- $w->{'encoding'} = $w->getEncoding('iso_8859_1');
-
- # f1: the frame with the directory option menu
- my $f1 = $w->Frame;
- my $lab = $f1->Label(-text => 'Directory:', -underline => 0);
- $w->{'dirMenu'} = my $dirMenu =
- $f1->Optionmenu(-variable => \$w->{'selectPath'},
- -textvariable => \$w->{'selectPath'},
- -command => ['SetPath', $w]);
- my $upBtn = $f1->Button;
- if (!defined $updirImage->{$w->MainWindow}) {
- $updirImage->{$w->MainWindow} = $w->Bitmap(-data => <<EOF);
-#define updir_width 28
-#define updir_height 16
-static char updir_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00,
- 0x20, 0x40, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x01, 0x10, 0x00, 0x00, 0x01,
- 0x10, 0x02, 0x00, 0x01, 0x10, 0x07, 0x00, 0x01, 0x90, 0x0f, 0x00, 0x01,
- 0x10, 0x02, 0x00, 0x01, 0x10, 0x02, 0x00, 0x01, 0x10, 0x02, 0x00, 0x01,
- 0x10, 0xfe, 0x07, 0x01, 0x10, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x01,
- 0xf0, 0xff, 0xff, 0x01};
-EOF
- }
- $upBtn->configure(-image => $updirImage->{$w->MainWindow});
- $dirMenu->configure(-takefocus => 1, -highlightthickness => 2);
- $upBtn->pack(-side => 'right', -padx => 4, -fill => 'both');
- $lab->pack(-side => 'left', -padx => 4, -fill => 'both');
- $dirMenu->pack(-expand => 'yes', -fill => 'both', -padx => 4);
-
- $w->{'icons'} = my $icons =
- $w->IconList(-command => ['OkCmd', $w, 'iconlist'],
- );
- $icons->bind('<<ListboxSelect>>' => [$w, 'ListBrowse']);
-
- # f2: the frame with the OK button and the "file name" field
- my $f2 = $w->Frame(-bd => 0);
-#XXX File name => File names if multiple
- my $f2_lab = $f2->Label(-text => 'File name:', -anchor => 'e',
- -width => 14, -underline => 5, -pady => 0);
- $w->{'ent'} = my $ent = $f2->Entry;
-
- # The font to use for the icons. The default Canvas font on Unix
- # is just deviant.
-# $w->{'icons'}{'font'} = $ent->cget(-font);
- $w->{'icons'}->configure(-font => $ent->cget(-font));
-
- # f3: the frame with the cancel button and the file types field
- my $f3 = $w->Frame(-bd => 0);
-
- # The "File of types:" label needs to be grayed-out when
- # -filetypes are not specified. The label widget does not support
- # grayed-out text on monochrome displays. Therefore, we have to
- # use a button widget to emulate a label widget (by setting its
- # bindtags)
- $w->{'typeMenuLab'} = my $typeMenuLab = $f3->Button
- (-text => 'Files of type:',
- -anchor => 'e',
- -width => 14,
- -underline => 9,
- -bd => $f2_lab->cget(-bd),
- -highlightthickness => $f2_lab->cget(-highlightthickness),
- -relief => $f2_lab->cget(-relief),
- -padx => $f2_lab->cget(-padx),
- -pady => $f2_lab->cget(-pady),
- -takefocus => 0,
- );
- $typeMenuLab->bindtags([$typeMenuLab, 'Label',
- $typeMenuLab->toplevel, 'all']);
- $w->{'typeMenuBtn'} = my $typeMenuBtn =
- $f3->Menubutton(-indicatoron => 1, -tearoff => 0);
- $typeMenuBtn->configure(-takefocus => 1,
- -highlightthickness => 2,
- -relief => 'raised',
- -bd => 2,
- -anchor => 'w',
- );
-
- # the okBtn is created after the typeMenu so that the keyboard traversal
- # is in the right order
- $w->{'okBtn'} = my $okBtn = $f2->Button
- (-text => 'OK',
- -underline => 0,
- -width => 6,
- -default => 'active',
- -pady => 3,
- );
- my $cancelBtn = $f3->Button
- (-text => 'Cancel',
- -underline => 0,
- -width => 6,
- -default => 'normal',
- -pady => 3,
- );
-
- # pack the widgets in f2 and f3
- $okBtn->pack(-side => 'right', -padx => 4, -anchor => 'e');
- $f2_lab->pack(-side => 'left', -padx => 4);
- $ent->pack(-expand => 'yes', -fill => 'x', -padx => 2, -pady => 0);
- $cancelBtn->pack(-side => 'right', -padx => 4, -anchor => 'w');
- $typeMenuLab->pack(-side => 'left', -padx => 4);
- $typeMenuBtn->pack(-expand => 'yes', -fill => 'x', -side => 'right');
-
- # Pack all the frames together. We are done with widget construction.
- $f1->pack(-side => 'top', -fill => 'x', -pady => 4);
- $f3->pack(-side => 'bottom', -fill => 'x');
- $f2->pack(-side => 'bottom', -fill => 'x');
- $icons->pack(-expand => 'yes', -fill => 'both', -padx => 4, -pady => 1);
-
- # Set up the event handlers
- $ent->bind('<Return>',[$w,'ActivateEnt']);
- $upBtn->configure(-command => ['UpDirCmd', $w]);
- $okBtn->configure(-command => ['OkCmd', $w]);
- $cancelBtn->configure(-command, ['CancelCmd', $w]);
-
- $w->bind('<Alt-d>',[$dirMenu,'focus']);
- $w->bind('<Alt-t>',sub {
- if ($typeMenuBtn->cget(-state) eq 'normal') {
- $typeMenuBtn->focus;
- } });
- $w->bind('<Alt-n>',[$ent,'focus']);
- $w->bind('<KeyPress-Escape>',[$cancelBtn,'invoke']);
- $w->bind('<Alt-c>',[$cancelBtn,'invoke']);
- $w->bind('<Alt-o>',['InvokeBtn','Open']);
- $w->bind('<Alt-s>',['InvokeBtn','Save']);
- $w->protocol('WM_DELETE_WINDOW', ['CancelCmd', $w]);
- $w->OnDestroy(['CancelCmd', $w]);
-
- # Build the focus group for all the entries
- $w->FG_Create;
- $w->FG_BindIn($ent, ['EntFocusIn', $w]);
- $w->FG_BindOut($ent, ['EntFocusOut', $w]);
-
- $w->SetPath(_cwd());
-
- $w->ConfigSpecs(-defaultextension => ['PASSIVE', undef, undef, undef],
- -filetypes => ['PASSIVE', undef, undef, undef],
- -initialdir => ['PASSIVE', undef, undef, undef],
- -initialfile => ['PASSIVE', undef, undef, undef],
-# -sortcmd => ['PASSIVE', undef, undef, sub { lc($a) cmp lc($b) }],
- -sortcmd => ['PASSIVE', undef, undef, sub { lc($_[0]) cmp lc($_[1]) }],
- -title => ['PASSIVE', undef, undef, undef],
- -type => ['PASSIVE', undef, undef, 'open'],
- -filter => ['PASSIVE', undef, undef, '*'],
- -force => ['PASSIVE', undef, undef, 0],
- -multiple => ['PASSIVE', undef, undef, 0],
- 'DEFAULT' => [$icons],
- );
- # So-far-failed attempt to break reference loops ...
- $w->_OnDestroy(qw(dirMenu icons typeMenuLab typeMenuBtn okBtn ent updateId));
- $w;
-}
-
-# -initialdir fix with ResolveFile
-sub Show {
- my $w = shift;
-
- $w->configure(@_);
-
- # Dialog boxes should be transient with respect to their parent,
- # so that they will always stay on top of their parent window. However,
- # some window managers will create the window as withdrawn if the parent
- # window is withdrawn or iconified. Combined with the grab we put on the
- # window, this can hang the entire application. Therefore we only make
- # the dialog transient if the parent is viewable.
-
- if (Tk::Exists($w->Parent) && $w->Parent->viewable) {
- $w->transient($w->Parent);
- }
-
- # set the default directory and selection according to the -initial
- # settings
- {
- my $initialdir = $w->cget(-initialdir);
- if (defined $initialdir) {
- my ($flag, $path, $file) = ResolveFile($initialdir, 'junk');
- if ($flag eq 'OK' or $flag eq 'FILE') {
- $w->{'selectPath'} = $path;
- } else {
- $w->Error("\"$initialdir\" is not a valid directory");
- }
- }
- $w->{'selectFile'} = $w->cget(-initialfile);
- }
-
- # Set -multiple to a one or zero value (not other boolean types
- # like "yes") so we can use it in tests more easily.
- if ($w->cget('-type') ne 'open') {
- $w->configure(-multiple => 0);
- } else {
- $w->configure(-multiple => !!$w->cget('-multiple'));
- }
- $w->{'icons'}->configure(-multiple => $w->cget('-multiple'));
-
- # Initialize the file types menu
- my $typeMenuBtn = $w->{'typeMenuBtn'};
- my $typeMenuLab = $w->{'typeMenuLab'};
- if (defined $w->cget('-filetypes')) {
- my(@filetypes) = GetFileTypes($w->cget('-filetypes'));
- my $typeMenu = $typeMenuBtn->cget(-menu);
- $typeMenu->delete(0, 'end');
- foreach my $ft (@filetypes) {
- my $title = $ft->[0];
- my $filter = join(' ', @{ $ft->[1] });
- $typeMenuBtn->command
- (-label => $title,
- -command => ['SetFilter', $w, $title, $filter],
- );
- }
- $w->SetFilter($filetypes[0]->[0], join(' ', @{ $filetypes[0]->[1] }));
- $typeMenuBtn->configure(-state => 'normal');
- $typeMenuLab->configure(-state => 'normal');
- } else {
-#XXX $w->configure(-filter => '*');
- $typeMenuBtn->configure(-state => 'disabled',
- -takefocus => 0);
- $typeMenuLab->configure(-state => 'disabled');
- }
- $w->UpdateWhenIdle;
-
- {
- my $title = $w->cget(-title);
- if (!defined $title) {
- my $type = $w->cget(-type);
- $title = ($type eq 'dir') ? 'Choose Directory'
- : ($type eq 'save') ? 'Save As' : 'Open';
- }
- $w->title($title);
- }
-
- # Withdraw the window, then update all the geometry information
- # so we know how big it wants to be, then center the window in the
- # display and de-iconify it.
- $w->withdraw;
- $w->idletasks;
- if (0)
- {
- #XXX use Tk::Wm::Popup? or Tk::PlaceWindow?
- my $x = int($w->screenwidth / 2 - $w->reqwidth / 2 - $w->parent->vrootx);
- my $y = int($w->screenheight / 2 - $w->reqheight / 2 - $w->parent->vrooty);
- $w->geometry("+$x+$y");
- $w->deiconify;
- }
- else
- {
- $w->Popup;
- }
-
- # Set a grab and claim the focus too.
-#XXX use Tk::setFocusGrab when it's available
- my $oldFocus = $w->focusCurrent;
- my $oldGrab = $w->grabCurrent;
- my $grabStatus; $grabStatus = $oldGrab->grabStatus if ($oldGrab);
- $w->grab;
- my $ent = $w->{'ent'};
- $ent->focus;
- $ent->delete(0, 'end');
- if (defined $w->{'selectFile'} && $w->{'selectFile'} ne '') {
- $ent->insert(0, $w->{'selectFile'});
- $ent->selectionRange(0,'end');
- $ent->icursor('end');
- }
-
- # 8. Wait for the user to respond, then restore the focus and
- # return the index of the selected button. Restore the focus
- # before deleting the window, since otherwise the window manager
- # may take the focus away so we can't redirect it. Finally,
- # restore any grab that was in effect.
- $w->waitVariable(\$w->{'selectFilePath'});
- eval {
- $oldFocus->focus if $oldFocus;
- };
- if (Tk::Exists($w)) { # widget still exists
- $w->grabRelease;
- $w->withdraw;
- }
- if (Tk::Exists($oldGrab) && $oldGrab->viewable) {
- if ($grabStatus eq 'global') {
- $oldGrab->grabGlobal;
- } else {
- $oldGrab->grab;
- }
- }
- return $w->{'selectFilePath'};
-}
-
-# tkFDialog_UpdateWhenIdle --
-#
-# Creates an idle event handler which updates the dialog in idle
-# time. This is important because loading the directory may take a long
-# time and we don't want to load the same directory for multiple times
-# due to multiple concurrent events.
-#
-sub UpdateWhenIdle {
- my $w = shift;
- if (exists $w->{'updateId'}) {
- return;
- } else {
- $w->{'updateId'} = $w->after('idle', [$w, 'Update']);
- }
-}
-
-# tkFDialog_Update --
-#
-# Loads the files and directories into the IconList widget. Also
-# sets up the directory option menu for quick access to parent
-# directories.
-#
-sub Update {
- my $w = shift;
- my $dataName = $w->name;
-
- # This proc may be called within an idle handler. Make sure that the
- # window has not been destroyed before this proc is called
- if (!Tk::Exists($w) || $w->class ne 'FBox') {
- return;
- } else {
- delete $w->{'updateId'};
- }
- unless (defined $folderImage->{$w->MainWindow}) {
- require Tk::Pixmap;
- $folderImage->{$w->MainWindow} = $w->Pixmap(-file => Tk->findINC('folder.xpm'));
- $fileImage->{$w->MainWindow} = $w->Pixmap(-file => Tk->findINC('file.xpm'));
- }
- my $folder = $folderImage->{$w->MainWindow};
- my $file = $fileImage->{$w->MainWindow};
- my $appPWD = _cwd();
- if (!ext_chdir($w->_get_select_path)) {
- # We cannot change directory to $data(selectPath). $data(selectPath)
- # should have been checked before tkFDialog_Update is called, so
- # we normally won't come to here. Anyways, give an error and abort
- # action.
- $w->messageBox(-type => 'OK',
- -message => 'Cannot change to the directory "' .
- $w->_get_select_path . "\".\nPermission denied.",
- -icon => 'warning',
- );
- ext_chdir($appPWD);
- return;
- }
-
- # Turn on the busy cursor. BUG?? We haven't disabled X events, though,
- # so the user may still click and cause havoc ...
- my $ent = $w->{'ent'};
- my $entCursor = $ent->cget(-cursor);
- my $dlgCursor = $w->cget(-cursor);
- $ent->configure(-cursor => 'watch');
- $w->configure(-cursor => 'watch');
- $w->idletasks;
- my $icons = $w->{'icons'};
- $icons->DeleteAll;
-
- # Make the dir & file list
- my $cwd = _cwd();
- local *FDIR;
- if (opendir(FDIR, $cwd)) {
- my @files;
-# my $sortcmd = $w->cget(-sortcmd);
- my $sortcmd = sub { $w->cget(-sortcmd)->($a,$b) };
- my $flt = $w->cget(-filter);
- my $fltcb;
- if (ref $flt eq 'CODE') {
- $fltcb = $flt;
- } else {
- $flt = _rx_to_glob($flt);
- }
- my $type_dir = $w->cget(-type) eq 'dir';
- foreach my $f (sort $sortcmd readdir(FDIR)) {
- next if $f eq '.' or $f eq '..';
- next if $type_dir && ! -d "$cwd/$f"; # XXX use File::Spec?
- if ($fltcb) {
- next if !$fltcb->($w, $f, $cwd);
- } else {
- next if !-d $f && $f !~ m!$flt!s;
- }
- if (-d $f) {
- $icons->Add($folder, $f);
- } else {
- push @files, $f;
- }
- }
- closedir(FDIR);
- $icons->Add($file, @files);
- }
-
- $icons->Arrange;
-
- # Update the Directory: option menu
- my @list;
- my $dir = '';
- foreach my $subdir (TclFileSplit($w->_get_select_path)) {
- $dir = TclFileJoin($dir, $subdir);
- push @list, $dir;
- }
- my $dirMenu = $w->{'dirMenu'};
- $dirMenu->configure(-options => \@list);
-
- # Restore the PWD to the application's PWD
- ext_chdir($appPWD);
-
- # Restore the Save label
- if ($w->cget(-type) eq 'save') {
- $w->{'okBtn'}->configure(-text => 'Save');
- }
-
- # turn off the busy cursor.
- $ent->configure(-cursor => $entCursor);
- $w->configure(-cursor => $dlgCursor);
-}
-
-# tkFDialog_SetPathSilently --
-#
-# Sets data(selectPath) without invoking the trace procedure
-#
-sub SetPathSilently {
- my($w, $path) = @_;
-
- $w->{'selectPath'} = $path;
-}
-
-# This proc gets called whenever data(selectPath) is set
-#
-sub SetPath {
- my $w = shift;
- $w->{'selectPath'} = $_[0] if @_;
- $w->UpdateWhenIdle;
-}
-
-# This proc gets called whenever data(filter) is set
-#
-#XXX here's much more code in the tcl version ... check it out
-sub SetFilter {
- my($w, $title, $filter) = @_;
- $w->configure(-filter => $filter);
- $w->{'typeMenuBtn'}->configure(-text => $title,
- -indicatoron => 1);
- $w->{'icons'}->Subwidget('sbar')->set(0.0, 0.0);
- $w->UpdateWhenIdle;
-}
-
-# tkFDialogResolveFile --
-#
-# Interpret the user's text input in a file selection dialog.
-# Performs:
-#
-# (1) ~ substitution
-# (2) resolve all instances of . and ..
-# (3) check for non-existent files/directories
-# (4) check for chdir permissions
-#
-# Arguments:
-# context: the current directory you are in
-# text: the text entered by the user
-# defaultext: the default extension to add to files with no extension
-#
-# Return value:
-# [list $flag $directory $file]
-#
-# flag = OK : valid input
-# = PATTERN : valid directory/pattern
-# = PATH : the directory does not exist
-# = FILE : the directory exists but the file doesn't
-# exist
-# = CHDIR : Cannot change to the directory
-# = ERROR : Invalid entry
-#
-# directory : valid only if flag = OK or PATTERN or FILE
-# file : valid only if flag = OK or PATTERN
-#
-# directory may not be the same as context, because text may contain
-# a subdirectory name
-#
-sub ResolveFile {
- my($context, $text, $defaultext) = @_;
- my $appPWD = _cwd();
- my $path = JoinFile($context, $text);
- # If the file has no extension, append the default. Be careful not
- # to do this for directories, otherwise typing a dirname in the box
- # will give back "dirname.extension" instead of trying to change dir.
- if (!-d $path && $text !~ /\..+$/s && defined $defaultext) {
- $path = "$path$defaultext";
- }
- # Cannot just test for existance here as non-existing files are
- # not an error for getSaveFile type dialogs.
- # return ('ERROR', $path, "") if (!-e $path);
- my($directory, $file, $flag);
- if (-e $path) {
- if (-d $path) {
- if (!ext_chdir($path)) {
- return ('CHDIR', $path, '');
- }
- $directory = _cwd();
- $file = '';
- $flag = 'OK';
- ext_chdir($appPWD);
- } else {
- my $dirname = File::Basename::dirname($path);
- if (!ext_chdir($dirname)) {
- return ('CHDIR', $dirname, '');
- }
- $directory = _cwd();
- $file = File::Basename::basename($path);
- $flag = 'OK';
- ext_chdir($appPWD);
- }
- } else {
- my $dirname = File::Basename::dirname($path);
- if (-e $dirname) {
- if (!ext_chdir($dirname)) {
- return ('CHDIR', $dirname, '');
- }
- $directory = _cwd();
- $file = File::Basename::basename($path);
- if ($file =~ /[*?]/) {
- $flag = 'PATTERN';
- } else {
- $flag = 'FILE';
- }
- ext_chdir($appPWD);
- } else {
- $directory = $dirname;
- $file = File::Basename::basename($path);
- $flag = 'PATH';
- }
- }
- return ($flag,$directory,$file);
-}
-
-# Gets called when the entry box gets keyboard focus. We clear the selection
-# from the icon list . This way the user can be certain that the input in the
-# entry box is the selection.
-#
-sub EntFocusIn {
- my $w = shift;
- my $ent = $w->{'ent'};
- if ($ent->get ne '') {
- $ent->selectionRange(0, 'end');
- $ent->icursor('end');
- } else {
- $ent->selectionClear;
- }
-#XXX is this missing in the tcl version, too??? $w->{'icons'}->Selection('clear');
- my $okBtn = $w->{'okBtn'};
- if ($w->cget(-type) ne 'save') {
- $okBtn->configure(-text => 'Open');
- } else {
- $okBtn->configure(-text => 'Save');
- }
-}
-
-sub EntFocusOut {
- my $w = shift;
- $w->{'ent'}->selectionClear;
-}
-
-# Gets called when user presses Return in the "File name" entry.
-#
-sub ActivateEnt {
- my $w = shift;
- if ($w->cget(-multiple)) {
- # For the multiple case we have to be careful to get the file
- # names as a true list, watching out for a single file with a
- # space in the name. Thus we query the IconList directly.
-
- $w->{'selectFile'} = [];
- for my $item ($w->{'icons'}->Curselection) {
- $w->VerifyFileName($w->_get_from_icons($item));
- }
- } else {
- my $ent = $w->{'ent'};
- my $text = $w->_encode_filename($ent->get);
- $w->VerifyFileName($text);
- }
-}
-
-# Verification procedure
-#
-sub VerifyFileName {
- my($w, $text) = @_;
-#XXX leave this here?
-# $text =~ s/^\s+//;
-# $text =~ s/\s+$//;
- my($flag, $path, $file) = ResolveFile($w->_get_select_path, $text,
- $w->cget(-defaultextension));
- my $ent = $w->{'ent'};
- if ($flag eq 'OK') {
- if ($file eq '') {
- # user has entered an existing (sub)directory
- $w->SetPath($path);
- $ent->delete(0, 'end');
- } else {
- $w->SetPathSilently($path);
- if ($w->cget(-multiple)) {
- push @{ $w->{'selectFile'} }, $file;
- } else {
- $w->{'selectFile'} = $file;
- }
- $w->Done;
- }
- } elsif ($flag eq 'PATTERN') {
- $w->SetPath($path);
- $w->configure(-filter => $file);
- } elsif ($flag eq 'FILE') {
- if ($w->cget(-type) eq 'open') {
- $w->messageBox(-icon => 'warning',
- -type => 'OK',
- -message => 'File "' . TclFileJoin($path, $file)
- . '" does not exist.');
- $ent->selectionRange(0, 'end');
- $ent->icursor('end');
- } elsif ($w->cget(-type) eq 'save') {
- $w->SetPathSilently($path);
- if ($w->cget(-multiple)) {
- push @{ $w->{'selectFile'} }, $file;
- } else {
- $w->{'selectFile'} = $file;
- }
- $w->Done;
- }
- } elsif ($flag eq 'PATH') {
- $w->messageBox(-icon => 'warning',
- -type => 'OK',
- -message => "Directory \'$path\' does not exist.");
- $ent->selectionRange(0, 'end');
- $ent->icursor('end');
- } elsif ($flag eq 'CHDIR') {
- $w->messageBox(-type => 'OK',
- -message => "Cannot change to the directory \"$path\".\nPermission denied.",
- -icon => 'warning');
- $ent->selectionRange(0, 'end');
- $ent->icursor('end');
- } elsif ($flag eq 'ERROR') {
- $w->messageBox(-type => 'OK',
- -message => "Invalid file name \"$path\".",
- -icon => 'warning');
- $ent->selectionRange(0, 'end');
- $ent->icursor('end');
- }
-}
-
-# Gets called when user presses the Alt-s or Alt-o keys.
-#
-sub InvokeBtn {
- my($w, $key) = @_;
- my $okBtn = $w->{'okBtn'};
- $okBtn->invoke if ($okBtn->cget(-text) eq $key);
-}
-
-# Gets called when user presses the "parent directory" button
-#
-sub UpDirCmd {
- my $w = shift;
- $w->SetPath(File::Basename::dirname($w->_get_select_path))
- unless ($w->_get_select_path eq '/');
-}
-
-# Join a file name to a path name. The "file join" command will break
-# if the filename begins with ~
-sub JoinFile {
- my($path, $file) = @_;
- if ($file =~ /^~/ && -e "$path/$file") {
- TclFileJoin($path, "./$file");
- } else {
- TclFileJoin($path, $file);
- }
-}
-
-# XXX replace with File::Spec if possible
-sub TclFileJoin {
- my $path = '';
- foreach (@_) {
- if (m|^/|) {
- $path = $_;
- } elsif (m|^[a-z]:/|i) { # DOS-ish
- $path = $_;
- } elsif ($_ eq '~') {
- $path = _get_homedir();
- } elsif (m|^~/(.*)|) {
- $path = _get_homedir() . "/" . $1;
- } elsif (m|^~([^/]+)(.*)|) {
- my($user, $p) = ($1, $2);
- my $dir = _get_homedir($user);
- if (!defined $dir) {
- $path = "~$user$p";
- } else {
- $path = $dir . $p;
- }
- } elsif ($path eq '/' or $path eq '') {
- $path .= $_;
- } else {
- $path .= "/$_";
- }
- }
- $path;
-}
-
-sub TclFileSplit {
- my $path = shift;
- my @comp;
- $path =~ s|/+|/|g; # strip multiple slashes
- if ($path =~ m|^/|) {
- push @comp, '/';
- $path = substr($path, 1);
- }
- push @comp, split /\//, $path;
- @comp;
-}
-
-# Gets called when user presses the "OK" button
-#
-sub OkCmd {
- my $w = shift;
- my $from = shift || "button";
-
- my $filenames = [];
- for my $item ($w->{'icons'}->Curselection) {
- push @$filenames, $w->_get_from_icons($item);
- }
-
- my $filename = $filenames->[0];
- $filename = "" if !defined $filename;
- if ($w->cget('-type') eq 'dir' && $from ne "iconlist") {
- my $file = $filename eq '' ? $w->_get_select_path : JoinFile($w->_get_select_path, $filename);
- $w->Done($file);
- } elsif ((@$filenames && !$w->cget('-multiple')) ||
- ($w->cget('-multiple') && @$filenames == 1)) {
- my $file = JoinFile($w->_get_select_path, $filename);
- if (-d $file) {
- $w->ListInvoke($filename);
- return;
- }
- }
-
- $w->ActivateEnt;
-}
-
-# Gets called when user presses the "Cancel" button
-#
-sub CancelCmd {
- my $w = shift;
- undef $w->{'selectFilePath'};
-}
-
-# Gets called when user browses the IconList widget (dragging mouse, arrow
-# keys, etc)
-#
-sub ListBrowse {
- my($w) = @_;
-
- my $text = [];
- for my $item ($w->{'icons'}->Curselection) {
- push @$text, $w->_get_from_icons($item);
- }
- return if @$text == 0;
- my $isDir;
- if (@$text > 1) {
- my $newtext = [];
- for my $file (@$text) {
- my $fullfile = JoinFile($w->_get_select_path, $file);
- if (!-d $fullfile) {
- push @$newtext, $file;
- }
- }
- $text = $newtext;
- $isDir = 0;
- } else {
- my $file = JoinFile($w->_get_select_path, $text->[0]);
- $isDir = -d $file;
- }
- my $ent = $w->{'ent'};
- my $okBtn = $w->{'okBtn'};
- if (!$isDir) {
- $ent->delete(qw(0 end));
- $ent->insert(0, "@$text"); # XXX quote!
-
- if ($w->cget('-type') ne 'save') {
- $okBtn->configure(-text => 'Open');
- } else {
- $okBtn->configure(-text => 'Save');
- }
- } else {
- $okBtn->configure(-text => 'Open');
- }
-}
-
-# Gets called when user invokes the IconList widget (double-click,
-# Return key, etc)
-#
-sub ListInvoke {
- my($w, @filenames) = @_;
- return if !@filenames;
- my $file = JoinFile($w->_get_select_path, $filenames[0]);
- if (-d $file) {
- my $appPWD = _cwd();
- if (!ext_chdir($file)) {
- $w->messageBox(-type => 'OK',
- -message => "Cannot change to the directory \"$file\".\nPermission denied.",
- -icon => 'warning');
- } else {
- ext_chdir($appPWD);
- $w->SetPath($file);
- }
- } else {
- if ($w->cget('-multiple')) {
- $w->{'selectFile'} = [@filenames];
- } else {
- $w->{'selectFile'} = $file;
- }
- $w->Done;
- }
-}
-
-# tkFDialog_Done --
-#
-# Gets called when user has input a valid filename. Pops up a
-# dialog box to confirm selection when necessary. Sets the
-# tkPriv(selectFilePath) variable, which will break the "tkwait"
-# loop in tkFDialog and return the selected filename to the
-# script that calls tk_getOpenFile or tk_getSaveFile
-#
-sub Done {
- my $w = shift;
- my $selectFilePath = (@_) ? shift : '';
- if ($selectFilePath eq '') {
- if ($w->cget('-multiple')) {
- $selectFilePath = [];
- for my $f (@{ $w->{'selectFile'} }) {
- push @$selectFilePath, JoinFile($w->_get_select_path, $f);
- }
- } else {
- $selectFilePath = JoinFile($w->_get_select_path,
- $w->{'selectFile'});
- }
- if ($w->cget(-type) eq 'save' and
- -e $selectFilePath and
- !$w->cget(-force)) {
- my $reply = $w->messageBox
- (-icon => 'warning',
- -type => 'YesNo',
- -message => "File \"$selectFilePath\" already exists.\nDo you want to overwrite it?");
- return unless (lc($reply) eq 'yes');
- }
- }
- $w->{'selectFilePath'} = ($selectFilePath ne '' ? $selectFilePath : undef);
-}
-
-sub FDialog {
- my $cmd = shift;
- if ($cmd =~ /Save/) {
- push @_, -type => 'save';
- } elsif ($cmd =~ /Directory/) {
- push @_, -type => 'dir';
- }
- Tk::DialogWrapper('FBox', $cmd, @_);
-}
-
-# tkFDGetFileTypes --
-#
-# Process the string given by the -filetypes option of the file
-# dialogs. Similar to the C function TkGetFileFilters() on the Mac
-# and Windows platform.
-#
-sub GetFileTypes {
- my $in = shift;
- my %fileTypes;
- foreach my $t (@$in) {
- if (@$t < 2 || @$t > 3) {
- require Carp;
- Carp::croak("bad file type \"$t\", should be \"typeName [extension ?extensions ...?] ?[macType ?macTypes ...?]?\"");
- }
- push @{ $fileTypes{$t->[0]} }, (ref $t->[1] eq 'ARRAY'
- ? @{ $t->[1] }
- : $t->[1]);
- }
-
- my @types;
- my %hasDoneType;
- my %hasGotExt;
- foreach my $t (@$in) {
- my $label = $t->[0];
- my @exts;
-
- next if (exists $hasDoneType{$label});
-
- my $name = "$label (";
- my $sep = '';
- foreach my $ext (@{ $fileTypes{$label} }) {
- next if ($ext eq '');
- $ext =~ s/^\./*./;
- if (!exists $hasGotExt{$label}->{$ext}) {
- $name .= "$sep$ext";
- push @exts, $ext;
- $hasGotExt{$label}->{$ext}++;
- }
- $sep = ',';
- }
- $name .= ')';
- push @types, [$name, \@exts];
-
- $hasDoneType{$label}++;
- }
-
- return @types;
-}
-
-# ext_chdir --
-#
-# Change directory with tilde substitution
-#
-sub ext_chdir {
- my $dir = shift;
- if ($dir eq '~') {
- chdir _get_homedir();
- } elsif ($dir =~ m|^~/(.*)|s) {
- chdir _get_homedir() . "/" . $1;
- } elsif ($dir =~ m|^~([^/]+(.*))|s) {
- chdir _get_homedir($1) . $2;
- } else {
- chdir $dir;
- }
-}
-
-# _get_homedir --
-#
-# Get home directory of the current user
-#
-sub _get_homedir {
- my($user) = @_;
- if (!defined $user) {
- eval {
- local $SIG{__DIE__};
- (getpwuid($<))[7];
- } || $ENV{HOME} || undef; # chdir undef changes to home directory, too
- } else {
- eval {
- local $SIG{__DIE__};
- (getpwnam($user))[7];
- };
- }
-}
-
-sub _cwd {
- #Cwd::cwd();
- Cwd::fastcwd(); # this is taint-safe
-}
-
-sub _untaint {
- my $s = shift;
- $s =~ /^(.*)$/;
- $1;
-}
-
-sub _rx_to_glob {
- my $arg = shift;
- $arg =~ s!([.+^()|\${}\[\]\\])!\\$1!g;
- $arg = join('|', map {"^$_\\z"} split(' ', $arg));
- $arg =~ s!\*!.*!g;$arg =~ s!\?!.!g;
- $arg = qr/$arg/s;
- $arg;
-}
-
-sub _get_from_icons {
- my($w, $item) = @_;
- $w->_encode_filename($w->{'icons'}->Get($item));
-}
-
-sub _get_select_path {
- my($w) = @_;
- $w->_encode_filename($w->{'selectPath'});
-}
-
-sub _encode_filename {
- my($w, $filename) = @_;
- $filename = $w->{encoding}->encode($filename);
- $filename;
-}
-
-1;
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/FBox.pod b/Master/tlpkg/tlperl/lib/Tk/FBox.pod
deleted file mode 100644
index dada482a761..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/FBox.pod
+++ /dev/null
@@ -1,67 +0,0 @@
-=head1 NAME
-
-Tk::FBox - a file dialog
-
-=for pm Tk/FBox.pm
-
-=for category Popups and Dialogs
-
-=head1 SYNOPSIS
-
- use Tk::FBox;
- $file = $mw->FBox(...)->Show;
-
-=head1 DESCRIPTION
-
-C<Tk::FBox> is the dialog implementation behind the C<getOpenFile>,
-C<getSaveFile>, and C<chooseDirectory> method calls in the Unix/X11
-world. As such, it supports all options for these methods and
-additionally:
-
-=over
-
-=item -sortcmd => sub { $_[0] cmp $_[1] }
-
-Specified a callback for changing the sorting of the icons in the
-C<IconList> widget. By default, perl's C<cmp> operator will be used.
-
-From the source code:
-
- # Using -sortcmd is really strange :-(
- # $top->getOpenFile(-sortcmd => sub { package Tk::FBox; uc $b cmp uc $a});
- # or, un-perlish, but useable (now activated in code):
- # $top->getOpenFile(-sortcmd => sub { uc $_[1] cmp uc $_[0]});
-
-This is an experimental option!
-
-=item -type => $type
-
-Type should be "open" for choosing existing files to open (default),
-"save" for choosing existing or non-existing files to save, or "dir"
-for choosing directories.
-
-=item -filter => $glob
-
-A file glob to restrict displayed files. This is only active if no
-B<-filetypes> are defined.
-
-=item -force => $bool
-
-If true, then there will be no dialog if a file already exists.
-
-=back
-
-=head1 COPYRIGHT
-
-The original tkfbox.tcl from Tcl/Tk is:
-
-Copyright (c) 1994-1996 Sun Microsystems, Inc.
-
-See the file "license.terms" for information on usage and redistribution
-of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-Translated to Perl/Tk by Slaven Rezic <srezic@cpan.org>.
-
-=head1 SEE ALSO
-
-L<Tk::getOpenFile>, L<Tk::IconList>.
diff --git a/Master/tlpkg/tlperl/lib/Tk/FileSelect.pm b/Master/tlpkg/tlperl/lib/Tk/FileSelect.pm
deleted file mode 100644
index e1cc2209242..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/FileSelect.pm
+++ /dev/null
@@ -1,578 +0,0 @@
-package Tk::FileSelect;
-
-use vars qw($VERSION @EXPORT_OK);
-$VERSION = '4.018'; # was: sprintf '4.%03d', q$Revision: #15 $ =~ /\D(\d+)\s*$/;
-@EXPORT_OK = qw(glob_to_re);
-
-use Tk qw(Ev);
-use strict;
-use Carp;
-use base qw(Tk::Toplevel);
-use Tk::widgets qw(LabEntry Button Frame Listbox Scrollbar);
-use File::Basename;
-
-Construct Tk::Widget 'FileSelect';
-
-use vars qw(%error_text);
-%error_text = (
- '-r' => 'is not readable by effective uid/gid',
- '-w' => 'is not writeable by effective uid/gid',
- '-x' => 'is not executable by effective uid/gid',
- '-R' => 'is not readable by real uid/gid',
- '-W' => 'is not writeable by real uid/gid',
- '-X' => 'is not executable by real uid/gid',
- '-o' => 'is not owned by effective uid/gid',
- '-O' => 'is not owned by real uid/gid',
- '-e' => 'does not exist',
- '-z' => 'is not of size zero',
- '-s' => 'does not exists or is of size zero',
- '-f' => 'is not a file',
- '-d' => 'is not a directory',
- '-l' => 'is not a link',
- '-S' => 'is not a socket',
- '-p' => 'is not a named pipe',
- '-b' => 'is not a block special file',
- '-c' => 'is not a character special file',
- '-u' => 'is not setuid',
- '-g' => 'is not setgid',
- '-k' => 'is not sticky',
- '-t' => 'is not a terminal file',
- '-T' => 'is not a text file',
- '-B' => 'is not a binary file',
- '-M' => 'has no modification date/time',
- '-A' => 'has no access date/time',
- '-C' => 'has no inode change date/time',
- );
-
-# Documentation after __END__
-
-sub import {
- if (defined $_[1] and $_[1] eq 'as_default') {
- local $^W = 0;
- package Tk;
- if ($Tk::VERSION < 804) {
- *FDialog = \&Tk::FileSelect::FDialog;
- *MotifFDialog = \&Tk::FileSelect::FDialog;
- } else {
- *tk_getOpenFile = sub {
- Tk::FileSelect::FDialog("tk_getOpenFile", @_);
- };
- *tk_getSaveFile = sub {
- Tk::FileSelect::FDialog("tk_getSaveFile", @_);
- };
- }
- }
-}
-
-sub Cancel
-{
- my ($cw) = @_;
- $cw->{Selected} = undef;
- $cw->withdraw unless $cw->cget('-transient');
-}
-
-sub Accept {
-
- # Accept the file or directory name if possible.
-
- my ($cw) = @_;
-
- my($path, $so) = ($cw->cget('-directory'), $cw->SelectionOwner);
- my $leaf = undef;
- my $leaves;
-
- if (defined $so and
- $so == $cw->Subwidget('dir_list')->Subwidget('listbox')) {
- $leaves = [$cw->Subwidget('dir_list')->getSelected];
- $leaves = [$cw->Subwidget('dir_entry')->get] if !scalar(@$leaves);
- } else {
- $leaves = [$cw->Subwidget('file_list')->getSelected];
- $leaves = [$cw->Subwidget('file_entry')->get] if !scalar(@$leaves);
- }
-
- foreach $leaf (@$leaves)
- {
- if (defined $leaf and $leaf ne '') {
- if (!$cw->cget('-create') || -e "$path/$leaf")
- {
- foreach (@{$cw->cget('-verify')}) {
- my $r = ref $_;
- if (defined $r and $r eq 'ARRAY') {
- #local $_ = $leaf; # use strict var problem here
- return if not &{$_->[0]}($cw, $path, $leaf, @{$_}[1..$#{$_}]);
- } else {
- my $path_leaf = "$path/$leaf";
- my $s = eval "$_ \$path_leaf";
- warn "Error while eval'ing $_ \$path_leaf: $@" if $@;
- if (not $s) {
- my $err;
- if (substr($_,0,1) eq '!')
- {
- my $t = substr($_,1);
- if (exists $error_text{$t})
- {
- $err = $error_text{$t};
- $err =~ s/\b(?:no|not) //;
- }
- }
- $err = $error_text{$_} unless defined $err;
- $err = "failed '$_' test" unless defined $err;
- $cw->Error("'$leaf' $err.");
- return;
- }
- }
- } # forend
- }
- else
- {
- unless (-w $path)
- {
- $cw->Error("Cannot write to $path");
- return;
- }
- }
- $leaf = $path . '/' . $leaf;
- } else {
- $leaf = undef;
- }
- }
- if (scalar(@$leaves))
- {
- my $sm = $cw->Subwidget('file_list')->cget(-selectmode);
- $cw->{Selected} = $leaves;
- my $command = $cw->cget('-command');
- $command->Call(@{$cw->{Selected}}) if defined $command;
- }
-
-} # end Accept
-
-sub Accept_dir
-{
- my ($cw,$new) = @_;
- return if !defined $new;
- my $dir = $cw->cget('-directory');
- $cw->configure(-directory => "$dir/$new");
-}
-
-sub Populate {
-
- my ($w, $args) = @_;
-
- require Tk::Listbox;
- require Tk::Button;
- require Tk::Dialog;
- require Tk::Toplevel;
- require Tk::LabEntry;
- require Cwd;
-
- $w->SUPER::Populate($args);
- $w->protocol('WM_DELETE_WINDOW' => ['Cancel', $w ]);
-
- $w->{'reread'} = 0;
- $w->withdraw;
-
- # Create directory/filter entry, place at the top.
- my $e = $w->Component(
- LabEntry => 'dir_entry',
- -textvariable => \$w->{DirectoryString},
- -labelVariable => \$w->{Configure}{-dirlabel},
- );
- $e->pack(-side => 'top', -expand => 0, -fill => 'x');
- $e->bind('<Return>' => [$w => 'validateDir', Ev(['get'])]);
-
- # Create file entry, place at the bottom.
- $e = $w->Component(
- LabEntry => 'file_entry',
- -textvariable => \$w->{Configure}{-initialfile},
- -labelVariable => \$w->{Configure}{-filelabel},
- );
- $e->pack(-side => 'bottom', -expand => 0, -fill => 'x');
- $e->bind('<Return>' => [$w => 'validateFile', Ev(['get'])]);
- $e->bind('<FocusIn>' => [$w => 'SelectionClear']);
-
- # Create directory scrollbox, place at the left-middle.
- my $b = $w->Component(
- ScrlListbox => 'dir_list',
- -labelVariable => \$w->{Configure}{-dirlistlabel},
- -scrollbars => 'se',
- );
- $b->pack(-side => 'left', -expand => 1, -fill => 'both');
- $b->bind('<Double-Button-1>' => [$w => 'Accept_dir', Ev(['getSelected'])]);
-
- # Add a label.
-
- my $f = $w->Frame();
- $f->pack(-side => 'right', -fill => 'y', -expand => 0);
- $b = $f->Button('-textvariable' => \$w->{'Configure'}{'-acceptlabel'},
- -command => [ 'Accept', $w ],
- );
- $b->pack(-side => 'top', -fill => 'x', -expand => 1);
- $b = $f->Button('-textvariable' => \$w->{'Configure'}{'-cancellabel'},
- -command => [ 'Cancel', $w ],
- );
- $b->pack(-side => 'top', -fill => 'x', -expand => 1);
- $b = $f->Button('-textvariable' => \$w->{'Configure'}{'-resetlabel'},
- -command => [$w => 'configure','-directory','.'],
- );
- $b->pack(-side => 'top', -fill => 'x', -expand => 1);
- $b = $f->Button('-textvariable' => \$w->{'Configure'}{'-homelabel'},
- -command => [$w => 'configure','-directory',$ENV{'HOME'}],
- );
- $b->pack(-side => 'top', -fill => 'x', -expand => 1);
-
- # Create file scrollbox, place at the right-middle.
-
- $b = $w->Component(
- ScrlListbox => 'file_list',
- -labelVariable => \$w->{Configure}{-filelistlabel},
- -scrollbars => 'se',
- );
- $b->pack(-side => 'right', -expand => 1, -fill => 'both');
- $b->bind('<Double-1>' => [$w => 'Accept']);
-
- # Create -very dialog.
-
- my $v = $w->Component(
- Dialog => 'dialog',
- -title => 'Verify Error',
- -bitmap => 'error',
- -buttons => ['Dismiss'],
- );
-
- $w->ConfigSpecs(
- -width => [ ['file_list','dir_list'], undef, undef, 14 ],
- -height => [ ['file_list','dir_list'], undef, undef, 14 ],
- -directory => [ 'METHOD', undef, undef, '.' ],
- -initialdir => '-directory',
- -filelabel => [ 'PASSIVE', 'fileLabel', 'FileLabel', 'File' ],
- -initialfile => [ 'PASSIVE', undef, undef, '' ],
- -filelistlabel => [ 'PASSIVE', undef, undef, 'Files' ],
- -filter => [ 'METHOD', undef, undef, undef ],
- -defaultextension => [ 'METHOD', undef, undef, undef ],
- -regexp => [ 'METHOD', undef, undef, undef ],
- -dirlistlabel => [ 'PASSIVE', undef, undef, 'Directories'],
- -dirlabel => [ 'PASSIVE', undef, undef, 'Directory'],
- '-accept' => [ 'CALLBACK',undef,undef, undef ],
- -command => [ 'CALLBACK',undef,undef, undef ],
- -transient => [ 'PASSIVE', undef, undef, 1 ],
- -verify => [ 'PASSIVE', undef, undef, ['!-d'] ],
- -create => [ 'PASSIVE', undef, undef, 0 ],
- -acceptlabel => [ 'PASSIVE', undef, undef, 'Accept'],
- -cancellabel => [ 'PASSIVE', undef, undef, 'Cancel'],
- -resetlabel => [ 'PASSIVE', undef, undef, 'Reset'],
- -homelabel => [ 'PASSIVE', undef, undef, 'Home'],
- DEFAULT => [ 'file_list' ],
- );
- $w->Delegates(DEFAULT => 'file_list');
-
- return $w;
-
-} # end Populate
-
-sub translate
- {
- my ($bs,$ch) = @_;
- return "\\$ch" if (length $bs);
- return '.*' if ($ch eq '*');
- return '.' if ($ch eq '?');
- return "\\." if ($ch eq '.');
- return "\\/" if ($ch eq '/');
- return "\\\\" if ($ch eq '\\');
- return $ch;
-}
-
-sub glob_to_re
-{
- my $regex = shift;
- $regex =~ s/(\\?)(.)/&translate($1,$2)/ge;
- return sub { shift =~ /^${regex}$/ };
-}
-
-sub filter
-{
- my ($cw,$val) = @_;
- my $var = \$cw->{Configure}{'-filter'};
- if (@_ > 1 || !defined($$var))
- {
- $val = '*' unless defined $val;
- $$var = $val;
- $cw->{'match'} = glob_to_re($val) unless defined $cw->{'match'};
- unless ($cw->{'reread'}++)
- {
- $cw->Busy;
- $cw->afterIdle(['reread',$cw,$cw->cget('-directory')])
- }
- }
- return $$var;
-}
-
-sub regexp
-{
- my ($cw,$val) = @_;
- my $var = \$cw->{Configure}{'-regexp'};
- if (@_ > 1)
- {
- $$var = $val;
- $cw->{'match'} = (defined $val) ? sub { shift =~ m|^${val}$| } : sub { 1 };
- unless ($cw->{'reread'}++)
- {
- $cw->Busy;
- $cw->afterIdle(['reread',$cw])
- }
- }
- return $$var;
-}
-
-sub defaultextension
-{
- my ($cw,$val) = @_;
- if (@_ > 1)
- {
- $val = '' unless defined $val;
- $val = ".$val" if ($val !~ /^\./);
- $cw->filter("*$val");
- }
- else
- {
- $val = $cw->filter;
- my ($ext) = $val =~ /(\.[^\.]*)$/;
- return $ext;
- }
-}
-
-sub directory
-{
- my ($cw,$dir) = @_;
- my $var = \$cw->{Configure}{'-directory'};
- if (@_ > 1 && defined $dir)
- {
- if (substr($dir,0,1) eq '~')
- {
- if (substr($dir,1,1) eq '/')
- {
- $dir = (defined $ENV{'HOME'} ? $ENV{'HOME'} : '') . substr($dir,1);
- }
- else
- {my ($uid,$rest) = ($dir =~ m#^~([^/]+)(/.*$)#);
- $dir = (getpwnam($uid))[7] . $rest;
- }
- }
- my $revert_dir = sub
- {
- my $message = shift;
- $$var = $cw->{OldDirectory};
- $cw->messageBox(-message => $message, -icon => 'error');
- if (!defined $$var)
- {
- # OldDirectory was never set, so force reread...
- $$var = $cw->{OldDirectory} = Cwd::getcwd(); # XXX maybe use check like code below...
- unless ($cw->{'reread'}++)
- {
- $cw->Busy;
- $cw->afterIdle(['reread',$cw])
- }
- }
- $$var;
- };
- $dir =~ s#([^/\\])[\\/]+$#$1#;
- if (-d $dir)
- {
- unless (Tk::tainting())
- {
- my $pwd = Cwd::getcwd();
- if (chdir( (defined($dir) ? $dir : '') ) )
- {
- my $new = Cwd::getcwd();
- if ($new)
- {
- $dir = $new;
- }
- else
- {
- return $revert_dir->("Cannot getcwd in '$dir'");
- }
- if (!chdir($pwd))
- {
- return $revert_dir->("Cannot change directory to $pwd:\n$!");
- }
- $$var = $dir;
- }
- else
- {
- return $revert_dir->("Cannot change directory to $dir:\n$!");
- }
- $$var = $cw->{OldDirectory} = $dir;
- }
- unless ($cw->{'reread'}++)
- {
- $cw->Busy;
- $cw->afterIdle(['reread',$cw])
- }
- }
- }
- return $$var;
-}
-
-sub reread
-{
- my ($w) = @_;
- my $dir = $w->cget('-directory');
- if (defined $dir)
- {
- if (!defined $w->cget('-filter') or $w->cget('-filter') eq '')
- {
- $w->configure('-filter', '*');
- }
- my $dl = $w->Subwidget('dir_list');
- $dl->delete(0, 'end');
- $dl->selectionClear(0,'end');
- my $fl = $w->Subwidget('file_list');
- $fl->delete(0, 'end');
- local *DIR;
- if (opendir(DIR, $dir))
- {
- my $file = $w->cget('-initialfile');
- my $seen = 0;
- my $accept = $w->cget('-accept');
- foreach my $f (sort(readdir(DIR)))
- {
- next if ($f eq '.');
- my $path = "$dir/$f";
- if (-d $path)
- {
- $dl->insert('end', $f);
- }
- else
- {
- if (&{$w->{match}}($f))
- {
- if (!defined($accept) || $accept->Call($path))
- {
- $seen = $fl->index('end') if ($file && $f eq $file);
- $fl->insert('end', $f)
- }
- }
- }
- }
- closedir(DIR);
- if ($seen)
- {
- $fl->selectionSet($seen);
- $fl->see($seen);
- }
- else
- {
- $w->configure(-initialfile => undef) unless $w->cget('-create');
- }
- }
- $w->{DirectoryString} = $dir . ($dir ne '/' ? '/' : '') . $w->cget('-filter');
- }
- $w->{'reread'} = 0;
- $w->Unbusy if $w->{'Busy'};
-}
-
-sub validateDir
-{
- my ($cw,$name) = @_;
- my ($leaf,$base) = fileparse($name);
- if ($leaf =~ /[*?]/)
- {
- $cw->configure('-directory' => $base,'-filter' => $leaf);
- }
- else
- {
- $cw->configure('-directory' => $name);
- }
-}
-
-sub validateFile
-{
- my ($cw,$name) = @_;
- my $i = 0;
- my $n = $cw->index('end');
- # See if it is an existing file
- for ($i= 0; $i < $n; $i++)
- {
- my $f = $cw->get($i);
- if ($f eq $name)
- {
- $cw->selection('set',$i);
- $cw->Accept;
- }
- }
- # otherwise allow if -create is set, directory is writable
- # and it passes filter and accept criteria
- if ($cw->cget('-create'))
- {
- my $path = $cw->cget('-directory');
- if (-w $path)
- {
- if (&{$cw->{match}}($name))
- {
- my $accept = $cw->cget('-accept');
- my $full = "$path/$name";
- if (!defined($accept) || $accept->Call($full))
- {
- $cw->{Selected} = [$full];
- $cw->Callback(-command => @{$cw->{Selected}});
- }
- else
- {
- $cw->Error("$name is not 'acceptable'");
- }
- }
- else
- {
- $cw->Error("$name does not match '".$cw->cget('-filter').'\'');
- }
- }
- else
- {
- $cw->Error("Directory '$path' is not writable");
- return;
- }
- }
-}
-
-sub Error
-{
- my $cw = shift;
- my $msg = shift;
- my $dlg = $cw->Subwidget('dialog');
- $dlg->configure(-text => $msg);
- $dlg->Show;
-}
-
-sub Show
-{
- my ($cw,@args) = @_;
- if ($cw->cget('-transient')) {
- $cw->Popup(@args);
- $cw->focus;
- $cw->waitVariable(\$cw->{Selected});
- $cw->withdraw;
- return defined($cw->{Selected})
- ? (wantarray) ? @{$cw->{Selected}} : $cw->{Selected}[0]
- : undef;
- } else {
- $cw->Popup(@args);
- }
-}
-
-sub FDialog
-{
- my($cmd, %args) = @_;
- if ($cmd =~ /Save/)
- {
- $args{-create} = 1;
- $args{-verify} = [qw(!-d -w)];
- }
- delete $args{-filetypes};
- delete $args{-force};
- Tk::DialogWrapper('FileSelect',$cmd, %args);
-}
-
-1;
-
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/FileSelect.pod b/Master/tlpkg/tlperl/lib/Tk/FileSelect.pod
deleted file mode 100644
index 2ea633de674..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/FileSelect.pod
+++ /dev/null
@@ -1,150 +0,0 @@
-
-=head1 NAME
-
-Tk::FileSelect - a widget for choosing files
-
-=for pm Tk/FileSelect.pm
-
-=for category Popups and Dialogs
-
-=head1 SYNOPSIS
-
- use Tk::FileSelect;
-
- $FSref = $top->FileSelect(-directory => $start_dir);
- $top - a window reference, e.g. MainWindow->new
- $start_dir - the starting point for the FileSelect
- $file = $FSref->Show;
- Executes the fileselector until either a filename is
- accepted or the user hits Cancel. Returns the filename
- or the empty string, respectively, and unmaps the
- FileSelect.
- $FSref->configure(option => value[, ...])
- Please see the Populate subroutine as the configuration
- list changes rapidly.
-
-=head1 DESCRIPTION
-
-This Module pops up a Fileselector box, with a directory entry on
-top, a list of directories in the current directory, a list of
-files in the current directory, an entry for entering/modifying a
-file name, an accept button and a cancel button.
-
-You can enter a starting directory in the directory entry. After
-hitting Return, the listboxes get updated. Double clicking on any
-directory shows you the respective contents. Single clicking on a
-file brings it into the file entry for further consideration,
-double clocking on a file pops down the file selector and calls
-the optional command with the complete path for the selected file.
-Hitting return in the file selector box or pressing the accept
-button will also work. *NOTE* the file selector box will only then
-get destroyed if the file name is not zero length. If you want
-yourself take care of it, change the if(length(.. in sub
-accept_file.
-
-=head1 AUTHORS
-
-Based on original FileSelect by
-Klaus Lichtenwalder, Lichtenwalder@ACM.org, Datapat GmbH, Munich,
-April 22, 1995 adapted by
-Frederick L. Wagner, derf@ti.com, Texas Instruments Incorporated, Dallas,
-21Jun95
-
-=head1 HISTORY
-
-=head2 950621 -- The following changes were made:
-
-=over 4
-
-=item *
-
-Rewrote Tk stuff to take advantage of new Compound widget module, so
-FileSelect is now composed of 2 LabEntry and 2 ScrlListbox2
-subwidgets.
-
-=item *
-
-Moved entry labels (from to the left of) to above the entry fields.
-
-=item *
-
-Caller is now able to control these aspects of widget, in both
-FileSelect (new) and configure :
-
-(Please see subroutine Populate for details, as these options
-change rapidly!)
-
-=item *
-
-I changed from Double-Button-1 to Button-1 in the Files listbox,
-to work with multiple mode in addition to browse mode. I also
-made some name changes (LastPath --> saved_path, ...).
-
-=item *
-
-The show method is not yet updated.
-
-=item *
-
-The topLevel stuff is not done yet. I took it out while I toy with
-the idea of FileSelect as a subwidget. Then the 'normal' topLevel
-thing with Buttons along the bottom could be build on top of it.
-
-=item *
-
-By request of Henry Katz <katz@fs09.webo.dg.com>, I added the functionality
-of using the Directory entry as a filter. So, if you want to only see the
-*.c files, you add a .c (the *'s already there :) and hit return.
-
-=back
-
-=head2 95/10/17, SOL, LUCC. lusol@Lehigh.EDU
-
-=over 4
-
-=item *
-
- Allow either file or directory names to be accepted.
-
-=item *
-
-Require double click to move into a new directory rather than a single
-click. This allows a single click to select a directory name so it can
-be accepted.
-
-=item *
-
-Add -verify list option so that standard Perl file test operators (like
--d and -x) can be specified for further name validation. The default
-value is the special value '!-d' (not a directory), so any name can be
-selected as long as it's not a directory - after all, this IS FileSelect!
-
-For example:
-
- $fs->configure(-verify => ['-d', [\&verify_code, $P1, $P2, ... $Pn]]);
-
-ensures that the selected name is a directory. Further, if an element of
-the list is an array reference, the first element is a code reference to a
-subroutine and the remaining optional elements are it's parameters. The
-subroutine is called like this:
-
- &verify_code($cd, $leaf, $P1, $P2, ... $Pn);
-
-where $cd is the current directory, $leaf is a directory or file name, and
-$P1 .. $Pn are your optional parameters. The subroutine should return TRUE
-if success or FALSE if failure.
-
-=back
-
-=head2 961008 -- derf@ti.com :
-
-By request of Jim Stern <js@world.northgrum.com> and Brad Vance
-<bvance@ti.com>, I updated the Accept and Show functions to support
-selection of multiple files. I also corrected a typo in the -verify code.
-
-=head1 SEE ALSO
-
-L<Tk::getOpenFile>, L<Tk::FBox>.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/FloatEntry.pm b/Master/tlpkg/tlperl/lib/Tk/FloatEntry.pm
deleted file mode 100644
index eb6465dbe61..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/FloatEntry.pm
+++ /dev/null
@@ -1,109 +0,0 @@
-# Tranlation of FloatEnt.tcl in Tix4.1
-
-# TODO/IDEA:
-# o extract a widget (SimpleEntry?) without post/unpost methods
-# and derive FloatEntry fron this widget.
-
-package Tk::FloatEntry;
-use strict;
-
-BEGIN
- {
- use vars '$DEBUG';
- $DEBUG = (defined($ENV{USER}) and $ENV{USER} eq 'achx') ? 1 : 0;
- print STDERR "tixGrid: debug = $DEBUG\n" if $DEBUG;
- }
-
-require Tk;
-require Tk::Widget;
-require Tk::Derived;
-require Tk::Entry;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/TixGrid/FloatEntry.pm#4 $
-
-use base qw(Tk::Derived Tk::Entry);
-
-Construct Tk::Widget 'FloatEntry';
-
-sub ClassInit
- {
- my ($class, $mw) = @_;
- $class->SUPER::ClassInit($mw);
- $mw->bind($class, '<Return>', 'invoke');
- $mw->bind($class, '<FocusIn>', 'FocusIn');
- $class;
- }
-
-sub Populate
- {
- my ($e, $args) = @_;
- $e->ConfigSpecs(
- -value => ['METHOD', 'value', 'Value', undef],
- -highlightthickness => [$e, 'highlightThickness', 'HighlightThickness', 0 ],
- -command => ['CALLBACK', 'command', 'Command', undef],
- );
- print "FloatEntry Init: $e\n" if $DEBUG;
- $e;
- }
-
-## option method
-
-sub value
- {
- my $e = shift;
- unless (@_)
- {
- return $e->get
- }
- $e->delete(0,'end');
- $e->insert(0,$_[0]);
- $e->selection('from', 0);
- $e->selection('to', 'end');
-
- }
-
-## public methods
-
-sub invoke
- {
- my ($e) = @_;
- $e->Callback('-command', $e->get);
- }
-
-sub post
- {
- my ($e, $x, $y, $dx, $dy) = @_;
-
- $dx = $e->reqwidth unless defined $dx;
- $dy = $e->reqheight unless defined $dy;
-
- $e->place('-x'=>$x, '-y'=>$y, -width=>$dx, -height=>$dy, -bordermode=>'ignore');
- $e->raise;
- $e->focus;
- }
-
-sub unpost
- {
- my ($e) = @_;
- $e->place('forget');
- }
-
-## bindings
-
-sub FocusIn
- {
- my ($e) = @_;
-
- # FIX: xxx only if entry has not already focus
- {
- $e->focus;
- $e->selection('from', 0);
- $e->selection('to', 'end');
- $e->icursor('end');
- }
- }
-
-1;
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Font.pm b/Master/tlpkg/tlperl/lib/Tk/Font.pm
deleted file mode 100644
index bb1b52cc7c5..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Font.pm
+++ /dev/null
@@ -1,163 +0,0 @@
-package Tk::Font;
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/Tk/Font.pm#4 $
-require Tk::Widget;
-use strict;
-use Carp;
-use overload '""' => 'as_string';
-sub as_string { return ${$_[0]} }
-
-*MainWindow = \&Tk::Widget::MainWindow;
-
-foreach my $key (qw(actual metrics measure configure))
- {
- no strict 'refs';
- *{$key} = sub { shift->Tk::font($key,@_) };
- }
-
-Construct Tk::Widget 'Font';
-
-my @xfield = qw(foundry family weight slant swidth adstyle pixel
- point xres yres space avgwidth registry encoding);
-my @tkfield = qw(family size weight slant underline overstrike);
-my %tkfield = map { $_ => "-$_" } @tkfield;
-
-sub _xonly { my $old = '*'; return $old }
-
-sub Pixel
-{
- my $me = shift;
- my $old = $me->configure('-size');
- $old = '*' if ($old > 0);
- if (@_)
- {
- $me->configure(-size => -$_[0]);
- }
- return $old;
-}
-
-sub Point
-{
- my $me = shift;
- my $old = 10*$me->configure('-size');
- $old = '*' if ($old < 0);
- if (@_)
- {
- $me->configure(-size => int($_[0]/10));
- }
- return $old;
-}
-
-foreach my $f (@tkfield,@xfield)
- {
- no strict 'refs';
- my $sub = "\u$f";
- unless (defined &{$sub})
- {
- my $key = $tkfield{$f};
- if (defined $key)
- {
- *{$sub} = sub { shift->configure($key,@_) };
- }
- else
- {
- *{$sub} = \&_xonly;
- }
- }
- }
-
-sub new
-{
- my $pkg = shift;
- my $w = shift;
- my $me;
- if (scalar(@_) == 1)
- {
- $me = $w->Tk::font('create',@_);
- }
- else
- {
- croak 'Odd number of args' if @_ & 1;
- my %attr;
- while (@_)
- {
- my $k = shift;
- my $v = shift;
- my $t = (substr($k,0,1) eq '-') ? $k : $tkfield{$k};
- if (defined $t)
- {
- $attr{$t} = $v;
- }
- elsif ($k eq 'point')
- {
- $attr{'-size'} = -int($v/10+0.5);
- }
- elsif ($k eq 'pixel')
- {
- $attr{'-size'} = -$v;
- }
- else
- {
- carp "$k ignored" if $^W;
- }
- }
- $me = $w->Tk::font('create',%attr);
- }
- return bless $me,$pkg;
-}
-
-sub Pattern
-{
- my $me = shift;
- my @str;
- foreach my $f (@xfield)
- {
- my $meth = "\u$f";
- my $str = $me->$meth();
- if ($f eq 'family')
- {
- $str =~ s/(?:Times\s+New\s+Roman|New York)/Times/i;
- $str =~ s/(?:Courier\s+New|Monaco)/Courier/i;
- $str =~ s/(?:Arial|Geneva)/Helvetica/i;
- }
- elsif ($f eq 'slant')
- {
- $str = substr($str,0,1);
- }
- elsif ($f eq 'weight')
- {
- $str = 'medium' if ($str eq 'normal');
- }
- push(@str,$str);
- }
- return join('-', '', @str);
-}
-
-sub Name
-{
- my $me = shift;
- return $$me if (!wantarray || ($^O eq 'MSWin32'));
- my $max = shift || 128;
- my $w = $me->MainWindow;
- my $d = $w->Display;
- return $d->XListFonts($me->Pattern,$max);
-}
-
-sub Clone
-{
- my $me = shift;
- return ref($me)->new($me,$me->actual,@_);
-}
-
-sub ascent
-{
- return shift->metrics('-ascent');
-}
-
-sub descent
-{
- return shift->metrics('-descent');
-}
-
-1;
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Font.pod b/Master/tlpkg/tlperl/lib/Tk/Font.pod
deleted file mode 100644
index be85105e475..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Font.pod
+++ /dev/null
@@ -1,407 +0,0 @@
-# Copyright (c) 1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Font - Create and inspect fonts.
-
-=for category Tk Generic Methods
-
-=head1 SYNOPSIS
-
-S< >I<$widget>->B<Font>(I<option>?, I<arg, arg, ...>?)
-
-S< >I<$font>->I<Option>?(I<arg, arg, ...>)?
-
-=head1 DESCRIPTION
-
-The B<Font> method provides several facilities for dealing with
-fonts, such as defining named fonts and inspecting the actual attributes of
-a font. The command has several different forms, determined by the
-first argument. The following forms are currently supported:
-
-=over 4
-
-=item I<$font>-E<gt>B<actual>(I<-option>?)
-
-=item I<$widget>-E<gt>B<fontActual>(I<font>?, I<-option>?)
-
-Returns information about the actual attributes that are obtained when
-I<font> is used on I<$font>'s display; the actual attributes obtained
-may differ from the attributes requested due to platform-dependant
-limitations, such as the availability of font families and pointsizes.
-I<font> is a font description; see L<"FONT DESCRIPTION"> below. If
-I<option> is specified, returns the value of that attribute; if it is
-omitted, the return value is a list of all the attributes and their values.
-See L<"FONT OPTIONS"> below for a list of the possible attributes.
-
-=item I<$font>-E<gt>B<configure>(I<-option>??=>I<value>, I<-option>=>I<value>, ...?)
-
-Query or modify the desired attributes for I<$font>.
-If no I<-option> is specified, returns a list describing
-all the options and their values for I<fontname>. If a single I<-option>
-is specified with no I<value>, then returns the current value of that
-attribute. If one or more I<option-value> pairs are specified,
-then the method modifies the given named font to have the given values; in
-this case, all widgets using that font will redisplay themselves using the
-new attributes for the font. See L<"FONT OPTIONS"> below for a list of the
-possible attributes.
-
-Note: the above behaviour differs in detail to B<configure> on widgets,
-images etc.
-
-=item I<$font> = I<$widget>-E<gt>B<Font>(I<-option>=>I<value>, ...>?)
-
-=item I<$font> = I<$widget>-E<gt>B<fontCreate>(?I<fontname>??, I<-option>=>I<value>, ...>?)
-
-Creates a new font object and returns a reference to it.
-I<fontname> specifies the name for the font; if it is omitted, then Tk generates
-a new name of the form B<font>I<x>, where I<x> is an integer. There may be any
-number of I<option-value> pairs, which provide the desired attributes for
-the new named font. See L<"FONT OPTIONS"> below for a list of the possible
-attributes.
-
-Note: the created font is I<not> shared between widgets of different
-L<MainWindow|Tk::MainWindow>s.
-
-=item I<$font>-E<gt>B<delete>
-
-=item I<$widget>-E<gt>B<fontDelete>(I<fontname>?, I<fontname>, ...?)
-
-Delete the specified named fonts. If there are widgets using the named font,
-the named font won't actually be deleted until all the instances are
-released. Those widgets will continue to display using the last known values
-for the named font. If a deleted named font is subsequently recreated with
-another call to B<fontCreate>, the widgets will use the new named font
-and redisplay themselves using the new attributes of that font.
-
-=item I<$widget>-E<gt>B<fontFamilies>
-
-The return value is a list of the case-insensitive names of all font families
-that exist on I<$widget>'s display.
-
-=item I<$font>-E<gt>B<measure>(I<text>)
-
-=item I<$widget>-E<gt>B<fontMeasure>(I<font>, I<text>)
-
-Measures the amount of space the string I<text> would use in the given
-I<font> when displayed in I<$widget>. I<font> is a font description;
-see L<"FONT DESCRIPTION"> below.
-The return value is the total width in pixels
-of I<text>, not including the extra pixels used by highly exagerrated
-characters such as cursive ``I<f>''. If the string contains newlines or tabs,
-those characters are not expanded or treated specially when measuring the
-string.
-
-=item I<$font>-E<gt>B<metrics>(I<-option>?)
-
-=item I<$widget>-E<gt>B<fontMetrics>(I<font>?, I<-option>?)
-
-Returns information about the metrics (the font-specific data), for
-I<font> when it is used on I<$widget>'s display. I<font> is a font
-description; see L<"FONT DESCRIPTION"> below.
-If I<option> is specified,
-returns the value of that metric; if it is omitted, the return value is a
-list of all the metrics and their values. See L<"FONT METRICS"> below for a list
-of the possible metrics.
-
-=item I<$widget>-E<gt>B<fontNames>
-
-The return value is a list of all font objects that are currently defined for
-I<$widget>'s MainWindow.
-
-=back
-
-=head1 FONT DESCRIPTION
-
-The following formats are accepted as a font description anywhere
-I<font> is specified as an argument above; these same forms are also
-permitted when specifying the B<-font> option for widgets.
-
-=over 4
-
-=item [1] I<fontname>
-
-The name of a named font, created using the B<fontCreate> method. When
-a widget uses a named font, it is guaranteed that this will never cause an
-error, as long as the named font exists, no matter what potentially invalid
-or meaningless set of attributes the named font has. If the named font
-cannot be displayed with exactly the specified attributes, some other close
-font will be substituted automatically.
-
-=item [1a] I<$font>
-
-A font object created using the B<Font> method. This is essentially the same
-as using a named font. The object is a reference to the name, and carries
-additional information e.g. which MainWindow it relates to in an manner peculiar
-to perl/Tk.
-
-=item [2] I<systemfont>
-
-The platform-specific name of a font, interpreted by the graphics server.
-This also includes, under X, an XLFD (see L<[4]|/[4]>) for which a single ``B<*>''
-character was used to elide more than one field in the middle of the
-name. See L<"PLATFORM-SPECIFIC ISSUES"> for a list of the system fonts.
-
-=item [3] [I<family>,?I<size>,??I<style>,??I<style ...>?]
-
-A properly formed list whose first element is the desired font
-I<family> and whose optional second element is the desired I<size>.
-The interpretation of the I<size> attribute follows the same rules
-described for L<-size|/-size> in L<"FONT OPTIONS"> below. Any additional optional
-arguments following the I<size> are font I<style>s. Possible values
-for the I<style> arguments are as follows:
-
- normal bold roman italic
- underline overstrike
-
-=item [4] X-font names (XLFD)
-
-A Unix-centric font name of the form
-I<-foundry-family-weight-slant-setwidth-addstyle-pixel-point-resx-resy-spacing-width-charset-encoding>.
-The ``B<*>'' character may be used to skip individual fields that the
-user does not care about. There must be exactly one ``B<*>'' for each
-field skipped, except that a ``B<*>'' at the end of the XLFD skips any
-remaining fields; the shortest valid XLFD is simply ``B<*>'', signifying
-all fields as defaults. Any fields that were skipped are given default
-values. For compatibility, an XLFD always chooses a font of the specified
-pixel size (not point size); although this interpretation is not strictly
-correct, all existing applications using XLFDs assumed that one ``point''
-was in fact one pixel and would display incorrectly (generally larger) if
-the correct size font were actually used.
-
-=item [5] I<option value >?I<option value ...>?
-
-A properly formed list of I<option-value> pairs that specify
-the desired attributes of the font, in the same format used when defining
-a named font; see L<"FONT OPTIONS"> below.
-
-=back
-
-When font description I<font> is used, the system attempts to parse the
-description according to each of the above five rules, in the order specified.
-Cases [1] and [2] must match the name of an existing named font or of a
-system font. Cases [3], [4], and [5] are accepted on all
-platforms and the closest available font will be used. In some situations
-it may not be possible to find any close font (e.g., the font family was
-a garbage value); in that case, some system-dependant default font is
-chosen. If the font description does not match any of the above patterns,
-an error is generated.
-
-=head1 FONT METRICS
-
-The following options are used by the B<metrics>/B<fontMetrics> method to query
-font-specific data determined when the font was created. These properties are
-for the whole font itself and not for individual characters drawn in that
-font. In the following definitions, the ``baseline'' of a font is the
-horizontal line where the bottom of most letters line up; certain letters,
-such as lower-case ``g'' stick below the baseline.
-
-=over 4
-
-=item B<-ascent>
-
-The amount in pixels that the tallest letter sticks up above the baseline of
-the font, plus any extra blank space added by the designer of the font.
-(I<$font>-E<gt>B<ascent> is provided for compatibility.)
-
-=item B<-descent>
-
-The largest amount in pixels that any letter sticks down below the baseline
-of the font, plus any extra blank space added by the designer of the font.
-(I<$font>-E<gt>B<descent> is provided for compatibility.)
-
-=item B<-linespace>
-
-Returns how far apart vertically in pixels two lines of text using the same
-font should be placed so that none of the characters in one line overlap any
-of the characters in the other line. This is generally the sum of the ascent
-above the baseline line plus the descent below the baseline.
-
-=item B<-fixed>
-
-Returns a boolean flag that is ``B<1>'' if this is a fixed-width font,
-where each normal character is the the same width as all the other
-characters, or is ``B<0>'' if this is a proportionally-spaced font, where
-individual characters have different widths. The widths of control
-characters, tab characters, and other non-printing characters are not
-included when calculating this value.
-
-=back
-
-=head1 FONT OPTIONS
-
-The following options are supported on all platforms, and are used when
-constructing a named font or when specifying a font using style [5] as
-above:
-
-=over 4
-
-=item B<-family> => I<name>
-
-The case-insensitive font family name. Tk guarantees to support the font
-families named B<Courier> (a monospaced ``typewriter'' font), B<Times>
-(a serifed ``newspaper'' font), and B<Helvetica> (a sans-serif
-``European'' font). The most closely matching native font family will
-automatically be substituted when one of the above font families is used.
-The I<name> may also be the name of a native, platform-specific font
-family; in that case it will work as desired on one platform but may not
-display correctly on other platforms. If the family is unspecified or
-unrecognized, a platform-specific default font will be chosen.
-
-=item B<-size> => I<size>
-
-The desired size of the font. If the I<size> argument is a positive
-number, it is interpreted as a size in points. If I<size> is a negative
-number, its absolute value is interpreted as a size in pixels. If a
-font cannot be displayed at the specified size, a nearby size will be
-chosen. If I<size> is unspecified or zero, a platform-dependent default
-size will be chosen.
-
-The original Tcl/Tk authors believe sizes should normally be specified in points
-so the application will remain the same ruler size on the screen, even when
-changing screen resolutions or moving scripts across platforms. While this is an
-admirable goal it does not work as well in practice as they hoped.
-The mapping between points and pixels is set when the application starts, based
-on alleged properties of the installed monitor, but it can be overridden by
-calling the L<scaling|Tk::Widget/scaling> command. However this can be
-problematic when system has no way of telling if (say) an 11" or 22" monitor is
-attached, also if it I<can> tell then some monitor sizes may result in poorer
-quality scaled fonts being used rather than a "tuned" bitmap font.
-In addition specifying pixels is useful in certain circumstances such as when a piece of text
-must line up with respect to a fixed-size bitmap.
-
-At present the Tcl/Tk scheme is used unchanged, with "point" size being returned
-by I<actual> (as an integer), and used internally. Suggestions for work-rounds
-to undesirable behaviour welcome.
-
-=item B<-weight> => I<weight>
-
-The nominal thickness of the characters in the font. The value
-B<normal> specifies a normal weight font, while B<bold> specifies a
-bold font. The closest available weight to the one specified will
-be chosen. The default weight is B<normal>.
-
-=item B<-slant> => I<slant>
-
-The amount the characters in the font are slanted away from the
-vertical. Valid values for slant are B<roman> and B<italic>.
-A roman font is the normal, upright appearance of a font, while
-an italic font is one that is tilted some number of degrees from upright.
-The closest available slant to the one specified will be chosen.
-The default slant is B<roman>.
-
-=item B<-underline> => I<boolean>
-
-The value is a boolean flag that specifies whether characters in this
-font should be underlined. The default value for underline is B<false>.
-
-=item B<-overstrike> => I<boolean>
-
-The value is a boolean flag that specifies whether a horizontal line should
-be drawn through the middle of characters in this font. The default value
-for overstrike is B<false>.
-
-=back
-
-=head1 PLATFORM-SPECIFIC ISSUES
-
-The following named system fonts are supported:
-
-=over 4
-
-=item X Windows:
-
-All valid X font names, including those listed by xlsfonts(1), are available.
-
-=item MS Windows:
-
- system ansi device
- systemfixed ansifixed oemfixed
-
-=item Macintosh:
-
- system application
-
-=back
-
-=head1 COMPATIBILITY WITH PREVIOUS VERSIONS
-
-In prior versions of perl/Tk the I<$widget>-E<gt>B<Font> method was a perl
-wrapper on the original "[4] X-font names (XLFD)" style as described above
-(which was the only form supported by versions of core tk prior to version
-tk8.0).
-This module is provided in its original form (it has just been renamed)
-via:
-
- use Tk::X11Font;
- I<$widget>-E<gt>B<X11Font>(...)
-
-However the methods of the old scheme have been mimiced as closely as possible
-with the new scheme. It is intended that code should work without modification,
-except for the case of using :
-
- @names = $font->Name;
-
-i.e. the I<Name> method in an array/list context. This now returns one element
-on all platforms (as it did on Win32), while previously on X systems it returned
-a list of fonts that matched an under-specified pattern.
-
-Briefly the methods supported for compatibilty are as follows:
-
-=over 4
-
-=item $newfont = I<$font>-E<gt>B<Clone>(I<-option>=>I<value>, ...>?)
-
-Returns a new font object I<$newfont> related to the original I<$font> by
-changing the values of the specified I<-option>s.
-
-=item I<$font>-E<gt>Family - maps to -family
-
-=item I<$font>-E<gt>Weight - maps to -weight
-
-=item I<$font>-E<gt>Slant - maps to -slant
-
-=item I<$font>-E<gt>Pixel and Point - map to -size
-
-=back
-
-New code should use I<$font>-E<gt>B<configure> to achieve same effect as last
-four items above.
-
-=over 4
-
-=item Foundry, Swidth, Adstyle, Xres, Yres, Space, Avgwidth, Registry, Encoding
-
-Are all ignored if set, and return '*' if queried.
-
-=item I<$font>-E<gt>B<Name>
-
-Returns the name of a named font, or a string representation of an unnamed
-font. Using I<$font> in a scalar context does the same. Note this is distinctly
-different from behaviour of L<X11Font's Name|Tk::X11Font/Name( [ $max ] )> in
-a list context.
-
-=item I<$font>-E<gt>B<Pattern>
-
-Returns a XLFD string for the font based on I<actual> values, and some heuristics
-to map Tk's forms to the "standard" X conventions.
-
-=back
-
-
-=head1 SEE ALSO
-
-L<Tk::options|Tk::options>
-
-L<Tk::X11Font|Tk::X11Font>
-
-=head1 KEYWORDS
-
-font
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Frame.pm b/Master/tlpkg/tlperl/lib/Tk/Frame.pm
deleted file mode 100644
index a5716cdf9bd..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Frame.pm
+++ /dev/null
@@ -1,378 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Frame;
-require Tk::Widget;
-require Tk::Derived;
-use AutoLoader;
-use strict qw(vars);
-use Carp;
-
-use base qw(Tk::Derived Tk::Widget);
-
-Construct Tk::Widget 'Frame';
-
-use vars qw($VERSION);
-$VERSION = '4.010'; # $Id: //depot/Tkutf8/Tk/Frame.pm#10 $
-
-sub Tk_cmd { \&Tk::frame }
-
-sub CreateOptions
-{
- return (shift->SUPER::CreateOptions,'-colormap','-visual','-container')
-}
-
-sub Default
-{
- my ($cw,$name,$widget) = @_;
- confess 'No name' unless (defined $name);
- croak 'No widget' unless (defined $widget);
- $cw->Delegates(DEFAULT => $widget);
- $cw->ConfigSpecs(DEFAULT => [$widget]);
- $widget->pack('-expand' => 1, -fill => 'both') unless ($widget->manager); # Suspect
- $cw->Advertise($name,$widget);
-}
-
-sub ConfigDelegate
-{
- my ($cw,$name,@skip) = @_;
- my $sw = $cw->Subwidget($name);
- my $sc;
- my %skip = ();
- foreach $sc (@skip)
- {
- $skip{$sc} = 1;
- }
- foreach $sc ($sw->configure)
- {
- my (@info) = @$sc;
- next if (@info == 2);
- my $option = $info[0];
- unless ($skip{$option})
- {
- $option =~ s/^-(.*)/-$name\u$1/;
- $info[0] = Tk::Configure->new($sw,$info[0]);
- pop(@info);
- $cw->ConfigSpecs($option => \@info);
- }
- }
-}
-
-sub bind
-{my ($cw,@args) = @_;
- $cw->Delegate('bind',@args);
-}
-
-sub menu
-{my ($cw,@args) = @_;
- $cw->Delegate('menu',@args);
-}
-
-sub focus
-{my ($cw,@args) = @_;
- $cw->Delegate('focus',@args);
-}
-
-#sub bindtags
-#{my ($cw,@args) = @_;
-# $cw->Delegate('bindtags',@args);
-#}
-
-sub selection
-{my ($cw,@args) = @_;
- $cw->Delegate('selection',@args);
-}
-
-sub autoLabel { 1 }
-
-sub Populate
-{
- my ($cw,$args) = @_;
- if ($cw->autoLabel)
- {
- $cw->ConfigSpecs('-labelPack' => [ 'METHOD', undef, undef, undef]);
- $cw->ConfigSpecs('-labelVariable' => [ 'METHOD', undef, undef, undef]);
- $cw->ConfigSpecs('-label' => [ 'METHOD', undef, undef, undef]);
- $cw->labelPack([]) if grep /^-label\w+/, keys %$args;
- }
-}
-
-sub Menubar
-{
- my $frame = shift;
- my $menu = $frame->cget('-menu');
- if (defined $menu)
- {
- $menu->configure(@_) if @_;
- }
- else
- {
- $menu = $frame->Menu(-type => 'menubar',@_);
- $frame->configure('-menu' => $menu);
- }
- $frame->Advertise('menubar' => $menu);
- return $menu;
-}
-
-1;
-
-__END__
-
-sub labelPack
-{
- my ($cw,$val) = @_;
- my $w = $cw->Subwidget('label');
- my @result = ();
- if (@_ > 1)
- {
- if (defined($w) && !defined($val))
- {
- $w->packForget;
- }
- elsif (defined($val) && !defined ($w))
- {
- require Tk::Label;
- $w = Tk::Label->new($cw,-textvariable => $cw->labelVariable);
- $cw->Advertise('label' => $w);
- $cw->ConfigDelegate('label',qw(-text -textvariable));
- }
- if (defined($val) && defined($w))
- {
- my %pack = @$val;
- unless (exists $pack{-side})
- {
- $pack{-side} = 'top' unless (exists $pack{-side});
- }
- unless (exists $pack{-fill})
- {
- $pack{-fill} = 'x' if ($pack{-side} =~ /(top|bottom)/);
- $pack{-fill} = 'y' if ($pack{-side} =~ /(left|right)/);
- }
- unless (exists($pack{'-before'}) || exists($pack{'-after'}))
- {
- my $before = ($cw->packSlaves)[0];
- $pack{'-before'} = $before if (defined $before);
- }
- $w->pack(%pack);
- }
- }
- @result = $w->packInfo if (defined $w);
- return (wantarray) ? @result : \@result;
-}
-
-sub labelVariable
-{
- my ($cw,$val) = @_;
- my $var = \$cw->{Configure}{'-labelVariable'};
- if (@_ > 1 && defined $val)
- {
- $$var = $val;
- $$val = '' unless (defined $$val);
- my $w = $cw->Subwidget('label');
- unless (defined $w)
- {
- $cw->labelPack([]);
- $w = $cw->Subwidget('label');
- }
- $w->configure(-textvariable => $val);
- }
- return $$var;
-}
-
-sub label
-{
- my ($cw,$val) = @_;
- my $var = $cw->cget('-labelVariable');
- if (@_ > 1 && defined $val)
- {
- if (!defined $var)
- {
- $var = \$cw->{Configure}{'-label'};
- $cw->labelVariable($var);
- }
- $$var = $val;
- }
- return (defined $var) ? $$var : undef;;
-}
-
-sub queuePack
-{
- my ($cw) = @_;
- unless ($cw->{'pack_pending'})
- {
- $cw->{'pack_pending'} = 1;
- $cw->afterIdle([$cw,'packscrollbars']);
- }
-}
-
-sub sbset
-{
- my ($cw,$sb,$ref,@args) = @_;
- $sb->set(@args);
- $cw->queuePack if (@args == 2 && $sb->Needed != $$ref);
-}
-
-sub freeze_on_map
-{
- my ($w) = @_;
- unless ($w->Tk::bind('Freeze','<Map>'))
- {
- $w->Tk::bind('Freeze','<Map>',['packPropagate' => 0])
- }
- $w->AddBindTag('Freeze');
-}
-
-sub AddScrollbars
-{
- require Tk::Scrollbar;
- my ($cw,$w) = @_;
- my $def = '';
- my ($x,$y) = ('','');
- my $s = 0;
- my $c;
- $cw->freeze_on_map;
- foreach $c ($w->configure)
- {
- my $opt = $c->[0];
- if ($opt eq '-yscrollcommand')
- {
- my $slice = Tk::Frame->new($cw,Name => 'ysbslice');
- my $ysb = Tk::Scrollbar->new($slice,-orient => 'vertical', -command => [ 'yview', $w ]);
- my $size = $ysb->cget('-width');
- my $corner = Tk::Frame->new($slice,Name=>'corner','-relief' => 'raised',
- '-width' => $size, '-height' => $size);
- $ysb->pack(-side => 'left', -fill => 'y');
- $cw->Advertise('yscrollbar' => $ysb);
- $cw->Advertise('corner' => $corner);
- $cw->Advertise('ysbslice' => $slice);
- $corner->{'before'} = $ysb->PathName;
- $slice->{'before'} = $w->PathName;
- $y = 'w';
- $s = 1;
- }
- elsif ($opt eq '-xscrollcommand')
- {
- my $xsb = Tk::Scrollbar->new($cw,-orient => 'horizontal', -command => [ 'xview', $w ]);
- $cw->Advertise('xscrollbar' => $xsb);
- $xsb->{'before'} = $w->PathName;
- $x = 's';
- $s = 1;
- }
- }
- if ($s)
- {
- $cw->Advertise('scrolled' => $w);
- $cw->ConfigSpecs('-scrollbars' => ['METHOD','scrollbars','Scrollbars',$x.$y]);
- }
-}
-
-sub packscrollbars
-{
- my ($cw) = @_;
- my $opt = $cw->cget('-scrollbars');
- my $slice = $cw->Subwidget('ysbslice');
- my $xsb = $cw->Subwidget('xscrollbar');
- my $corner = $cw->Subwidget('corner');
- my $w = $cw->Subwidget('scrolled');
- my $xside = (($opt =~ /n/) ? 'top' : 'bottom');
- my $havex = 0;
- my $havey = 0;
- $opt =~ s/r//;
- $cw->{'pack_pending'} = 0;
- if (defined $slice)
- {
- my $reqy;
- my $ysb = $cw->Subwidget('yscrollbar');
- if ($opt =~ /(o)?[we]/ && (($reqy = !defined($1)) || $ysb->Needed))
- {
- my $yside = (($opt =~ /w/) ? 'left' : 'right');
- $slice->pack(-side => $yside, -fill => 'y',-before => $slice->{'before'});
- $havey = 1;
- if ($reqy)
- {
- $w->configure(-yscrollcommand => ['set', $ysb]);
- }
- else
- {
- $w->configure(-yscrollcommand => ['sbset', $cw, $ysb, \$cw->{'packysb'}]);
- }
- }
- else
- {
- $w->configure(-yscrollcommand => undef) unless $opt =~ s/[we]//;
- $slice->packForget;
- }
- $cw->{'packysb'} = $havey;
- }
- if (defined $xsb)
- {
- my $reqx;
- if ($opt =~ /(o)?[ns]/ && (($reqx = !defined($1)) || $xsb->Needed))
- {
- $xsb->pack(-side => $xside, -fill => 'x',-before => $xsb->{'before'});
- $havex = 1;
- if ($reqx)
- {
- $w->configure(-xscrollcommand => ['set', $xsb]);
- }
- else
- {
- $w->configure(-xscrollcommand => ['sbset', $cw, $xsb, \$cw->{'packxsb'}]);
- }
- }
- else
- {
- $w->configure(-xscrollcommand => undef) unless $opt =~ s/[ns]//;
- $xsb->packForget;
- }
- $cw->{'packxsb'} = $havex;
- }
- if (defined $corner)
- {
- if ($havex && $havey && defined $corner->{'before'})
- {
- my $anchor = $opt;
- $anchor =~ s/o//g;
- $corner->configure(-height => $xsb->ReqHeight);
- $corner->pack(-before => $corner->{'before'}, -side => $xside,
- -anchor => $anchor, -fill => 'x');
- }
- else
- {
- $corner->packForget;
- }
- }
-}
-
-sub scrollbars
-{
- my ($cw,$opt) = @_;
- my $var = \$cw->{'-scrollbars'};
- if (@_ > 1)
- {
- my $old = $$var;
- if (!defined $old || $old ne $opt)
- {
- $$var = $opt;
- $cw->queuePack;
- }
- }
- return $$var;
-}
-
-sub FindMenu
-{
- my ($w,$char) = @_;
- my $child;
- my $match;
- foreach $child ($w->children)
- {
- next unless (ref $child);
- $match = $child->FindMenu($char);
- return $match if (defined $match);
- }
- return undef;
-}
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Frame.pod b/Master/tlpkg/tlperl/lib/Tk/Frame.pod
deleted file mode 100644
index 6570b6a18c7..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Frame.pod
+++ /dev/null
@@ -1,146 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Frame - Create and manipulate Frame widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-S< >I<$frame> = I<$parent>-E<gt>B<Frame>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-borderwidth> B<-highlightbackground> B<-highlightthickness> B<-takefocus>
-B<-class> B<-highlightcolor> B<-relief>
-B<-cursor>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<background>
-
-=item Class: B<Background>
-
-=item Switch: B<-background>
-
-This option is the same as the standard B<background> option
-except that its value may also be specified as an undefined value.
-In this case, the widget will display no background or border, and
-no colors will be consumed from its colormap for its background
-and border.
-
-=item Name: B<colormap>
-
-=item Class: B<Colormap>
-
-=item Switch: B<-colormap>
-
-Specifies a colormap to use for the window.
-The value may be either B<new>, in which case a new colormap is
-created for the window and its children, or the name of another
-window (which must be on the same screen and have the same visual
-as $widget), in which case the new window will use the colormap
-from the specified window.
-If the B<colormap> option is not specified, the new window
-uses the same colormap as its parent.
-This option may not be changed with the B<configure>
-method.
-
-=item Name: B<container>
-
-=item Class: B<Container>
-
-=item Switch: B<-container>
-
-The value must be a boolean. If true, it means that this window will
-be used as a container in which some other application will be embedded
-(for example, a Tk toplevel can be embedded using the B<-use> option).
-The window will support the appropriate window manager protocols for
-things like geometry requests. The window should not have any
-children of its own in this application.
-This option may not be changed with the B<configure>
-method.
-
-=item Name: B<height>
-
-=item Class: B<Height>
-
-=item Switch: B<-height>
-
-Specifies the desired height for the window in any of the forms
-acceptable to B<Tk_GetPixels>.
-If this option is less than or equal to zero then the window will
-not request any size at all.
-
-=item Name: B<visual>
-
-=item Class: B<Visual>
-
-=item Switch: B<-visual>
-
-Specifies visual information for the new window in any of the
-forms accepted by B<Tk_GetVisual>.
-If this option is not specified, the new window will use the same
-visual as its parent.
-The B<visual> option may not be modified with the B<configure>
-method.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies the desired width for the window in any of the forms
-acceptable to B<Tk_GetPixels>.
-If this option is less than or equal to zero then the window will
-not request any size at all.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Frame> method creates a new window (given by the
-$widget argument) and makes it into a frame widget.
-Additional
-options, described above, may be specified on the command line
-or in the option database
-to configure aspects of the frame such as its background color
-and relief. The B<frame> command returns the
-path name of the new window.
-
-A frame is a simple widget. Its primary purpose is to act as a
-spacer or container for complex window layouts. The only features
-of a frame are its background color and an optional 3-D border to make the
-frame appear raised or sunken.
-
-=head1 WIDGET METHODS
-
-The B<Frame> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-=head1 BINDINGS
-
-When a new frame is created, it has no default event bindings:
-frames are not intended to be interactive.
-
-=head1 KEYWORDS
-
-frame, widget
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/HList.pm b/Master/tlpkg/tlperl/lib/Tk/HList.pm
deleted file mode 100644
index 7761f097373..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/HList.pm
+++ /dev/null
@@ -1,708 +0,0 @@
-package Tk::HList;
-
-use vars qw($VERSION);
-$VERSION = '4.015'; # was: sprintf '4.%03d', q$Revision: #14 $ =~ /\D(\d+)\s*$/;
-
-use Tk qw(Ev $XS_VERSION);
-
-use base qw(Tk::Widget);
-
-Construct Tk::Widget 'HList';
-sub Tk::Widget::ScrlHList { shift->Scrolled('HList'=>@_) }
-
-bootstrap Tk::HList;
-
-sub Tk_cmd { \&Tk::hlist }
-
-sub CreateArgs
-{
- my ($package,$parent,$args) = @_;
- my @result = $package->SUPER::CreateArgs($parent,$args);
- my $columns = delete $args->{-columns};
- push(@result, '-columns' => $columns) if (defined $columns);
- return @result;
-}
-
-Tk::Methods qw(add addchild anchor column
- delete dragsite dropsite entrycget
- entryconfigure geometryinfo indicator header hide item info
- nearest see select selection show xview yview);
-
-use Tk::Submethods ( 'delete' => [qw(all entry offsprings siblings)],
- 'header' => [qw(configure cget create delete exists size)],
- 'indicator' => [qw(configure cget create delete exists size)],
- 'info' => [qw(anchor bbox children data dragsite
- dropsite exists hidden item next parent prev
- selection)],
- 'item' => [qw(configure cget create delete exists)],
- 'selection' => [qw(clear get includes set)],
- 'anchor' => [qw(clear set)],
- 'column' => [qw(width)],
- );
-
-# This is undocumented, but worked until 804.027:
-sub hideEntry { shift->hide('entry', @_) }
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
-
- $mw->bind($class,'<ButtonPress-1>',[ 'Button1' ] );
- $mw->bind($class,'<Shift-ButtonPress-1>',[ 'ShiftButton1' ] );
- $mw->bind($class,'<Control-ButtonRelease-1>','Control_ButtonRelease_1');
- $mw->bind($class,'<ButtonRelease-1>','ButtonRelease_1');
- $mw->bind($class,'<Double-ButtonRelease-1>','NoOp');
- $mw->bind($class,'<B1-Motion>',[ 'Button1Motion' ] );
- $mw->bind($class,'<B1-Leave>',[ 'AutoScan' ] );
-
- $mw->bind($class,'<Double-ButtonPress-1>',['Double1']);
-
- $mw->bind($class,'<Control-B1-Motion>','Control_B1_Motion');
- $mw->bind($class,'<Control-ButtonPress-1>',['CtrlButton1']);
- $mw->bind($class,'<Control-Double-ButtonPress-1>',['CtrlButton1']);
-
- $mw->bind($class,'<B1-Enter>','B1_Enter');
-
- $mw->bind($class,'<Up>',['UpDown', 'prev']);
- $mw->bind($class,'<Down>',['UpDown', 'next']);
-
- $mw->bind($class,'<Shift-Up>',['ShiftUpDown', 'prev']);
- $mw->bind($class,'<Shift-Down>',['ShiftUpDown', 'next']);
-
- $mw->bind($class,'<Left>', ['LeftRight', 'left']);
- $mw->bind($class,'<Right>',['LeftRight', 'right']);
-
- $mw->PriorNextBind($class);
- $mw->MouseWheelBind($class);
-
- $mw->bind($class,'<Return>', ['KeyboardActivate']);
- $mw->bind($class,'<space>', ['KeyboardBrowse']);
- $mw->bind($class,'<Home>', ['KeyboardHome']);
- $mw->bind($class,'<End>', ['KeyboardEnd']);
-
- $mw->YMouseWheelBind($class);
- $mw->XMouseWheelBind($class);
-
- return $class;
-}
-
-sub Control_ButtonRelease_1
-{
-}
-
-sub ButtonRelease_1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->CancelRepeat
- if($w->cget('-selectmode') ne 'dragdrop');
- $w->ButtonRelease1($Ev);
-}
-
-sub Control_B1_Motion
-{
-}
-
-sub B1_Enter
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->CancelRepeat
- if($w->cget('-selectmode') ne 'dragdrop');
-}
-
-sub Button1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
-
- delete $w->{'shiftanchor'};
- delete $w->{tixindicator};
-
- $w->focus() if($w->cget('-takefocus'));
-
- my $mode = $w->cget('-selectmode');
-
- if ($mode eq 'dragdrop')
- {
- # $w->Send_WaitDrag($Ev->y);
- return;
- }
-
- my $ent = $w->GetNearest($Ev->y, 1);
-
- if (!defined($ent) || !length($ent))
- {
- $w->selectionClear;
- $w->anchorClear;
- return;
- }
-
- my @info = $w->info('item',$Ev->x, $Ev->y);
- if (@info)
- {
- die 'Assert' unless $info[0] eq $ent;
- }
- else
- {
- @info = $ent;
- }
-
- if (defined($info[1]) && $info[1] eq 'indicator')
- {
- $w->{tixindicator} = $ent;
- $w->Callback(-indicatorcmd => $ent, '<Arm>');
- }
- else
- {
- my $browse = 0;
-
- if ($mode eq 'single')
- {
- $w->anchorSet($ent);
- }
- elsif ($mode eq 'browse')
- {
- $w->anchorSet($ent);
- $w->selectionClear;
- $w->selectionSet($ent);
- $browse = 1;
- }
- elsif ($mode eq 'multiple')
- {
- $w->selectionClear;
- $w->anchorSet($ent);
- $w->selectionSet($ent);
- $browse = 1;
- }
- elsif ($mode eq 'extended')
- {
- $w->anchorSet($ent);
- $w->selectionClear;
- $w->selectionSet($ent);
- $browse = 1;
- }
-
- if ($browse)
- {
- $w->Callback(-browsecmd => @info);
- }
- }
-}
-
-sub ShiftButton1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
-
- my $to = $w->GetNearest($Ev->y, 1);
-
- delete $w->{'shiftanchor'};
- delete $w->{tixindicator};
-
- return unless (defined($to) and length($to));
-
- my $mode = $w->cget('-selectmode');
-
- if($mode eq 'extended' or $mode eq 'multiple')
- {
- my $from = $w->info('anchor');
- if(defined $from)
- {
- $w->selectionClear;
- $w->selectionSet($from, $to);
- }
- else
- {
- $w->anchorSet($to);
- $w->selectionClear;
- $w->selectionSet($to);
- }
- }
-}
-
-sub GetNearest
-{
- my ($w,$y,$undefafterend) = @_;
- my $ent = $w->nearest($y);
- if (defined $ent)
- {
- if ($undefafterend)
- {
- my $borderwidth = $w->cget('-borderwidth');
- my $highlightthickness = $w->cget('-highlightthickness');
- my $bottomy = ($w->infoBbox($ent))[3];
- $bottomy += $borderwidth + $highlightthickness;
- if ($w->header('exist', 0))
- {
- $bottomy += $w->header('height');
- }
- if ($y > $bottomy)
- {
- #print "$y > $bottomy\n";
- return undef;
- }
- }
- my $state = $w->entrycget($ent, '-state');
- return $ent if (!defined($state) || $state ne 'disabled');
- }
- return undef;
-}
-
-sub ButtonRelease1
-{
- my ($w, $Ev) = @_;
-
- delete $w->{'shiftanchor'};
-
- my $mode = $w->cget('-selectmode');
-
- if($mode eq 'dragdrop')
- {
-# $w->Send_DoneDrag();
- return;
- }
-
- my ($x, $y) = ($Ev->x, $Ev->y);
- my $ent = $w->GetNearest($y, 1);
-
- if (!defined($ent) and $mode eq 'single')
- {
- my $ent = $w->info('selection');
- if (defined $ent)
- {
- $w->anchorSet($ent);
- }
- }
- return unless (defined($ent) and length($ent));
-
- if (exists $w->{tixindicator})
- {
- return unless delete($w->{tixindicator}) eq $ent;
- my @info = $w->info('item',$Ev->x, $Ev->y);
- if(defined($info[1]) && $info[1] eq 'indicator')
- {
- $w->Callback(-indicatorcmd => $ent, '<Activate>');
- }
- else
- {
- $w->Callback(-indicatorcmd => $ent, '<Disarm>');
- }
- return;
- }
-
- if($mode eq 'single' || $mode eq 'browse')
- {
- $w->anchorSet($ent);
- $w->selectionClear;
- $w->selectionSet($ent);
-
- }
- elsif($mode eq 'multiple')
- {
- $w->selectionSet($ent);
- }
- elsif($mode eq 'extended')
- {
- $w->selectionSet($ent);
- }
-
- $w->Callback(-browsecmd =>$ent);
-}
-
-sub Button1Motion
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- return unless defined $Ev;
-
- delete $w->{'shiftanchor'};
-
- my $mode = $w->cget('-selectmode');
-
- if ($mode eq 'dragdrop')
- {
-# $w->Send_StartDrag();
- return;
- }
-
- my $ent;
- if (defined $w->info('anchor'))
- {
- $ent = $w->GetNearest($Ev->y);
- }
- else
- {
- $ent = $w->GetNearest($Ev->y, 1);
- }
- return unless (defined($ent) and length($ent));
-
- if(exists $w->{tixindicator})
- {
- my $event_type = $w->{tixindicator} eq $ent ? '<Arm>' : '<Disarm>';
- $w->Callback(-indicatorcmd => $w->{tixindicator}, $event_type );
- return;
- }
-
- if ($mode eq 'single')
- {
- $w->anchorSet($ent);
- }
- elsif ($mode eq 'multiple' || $mode eq 'extended')
- {
- my $from = $w->info('anchor');
- if(defined $from)
- {
- $w->selectionClear;
- $w->selectionSet($from, $ent);
- }
- else
- {
- $w->anchorSet($ent);
- $w->selectionClear;
- $w->selectionSet($ent);
- }
- }
-
- if ($mode ne 'single')
- {
- $w->Callback(-browsecmd =>$ent);
- }
-}
-
-sub Double1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
-
- delete $w->{'shiftanchor'};
-
- my $ent = $w->GetNearest($Ev->y, 1);
-
- return unless (defined($ent) and length($ent));
-
- $w->anchorSet($ent)
- unless(defined $w->info('anchor'));
-
- $w->selectionSet($ent);
-
- $w->Callback(-command => $ent);
-}
-
-sub CtrlButton1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
-
- delete $w->{'shiftanchor'};
-
- my $ent = $w->GetNearest($Ev->y, 1);
-
- return unless (defined($ent) and length($ent));
-
- my $mode = $w->cget('-selectmode');
-
- if($mode eq 'extended')
- {
- $w->anchorSet($ent) unless( defined $w->info('anchor') );
-
- if($w->select('includes', $ent))
- {
- $w->select('clear', $ent);
- }
- else
- {
- $w->selectionSet($ent);
- }
- $w->Callback(-browsecmd =>$ent);
- }
-}
-
-sub UpDown
-{
- my $w = shift;
- my $spec = shift;
-
- my $done = 0;
- my $anchor = $w->info('anchor');
-
- delete $w->{'shiftanchor'};
-
- unless( defined $anchor )
- {
- $anchor = ($w->info('children'))[0];
-
- return unless (defined($anchor) and length($anchor));
-
- if($w->entrycget($anchor, '-state') ne 'disabled')
- {
- # That's a good anchor
- $done = 1;
- }
- else
- {
- # We search for the first non-disabled entry (downward)
- $spec = 'next';
- }
- }
-
- my $ent = $anchor;
-
- # Find the prev/next non-disabled entry
- #
- while(!$done)
- {
- $ent = $w->info($spec, $ent);
- last unless( defined $ent );
- next if( $w->entrycget($ent, '-state') eq 'disabled' );
- next if( $w->info('hidden', $ent) );
- last;
- }
-
- unless( defined $ent )
- {
- $w->yview('scroll', $spec eq 'prev' ? -1 : 1, 'unit');
- return;
- }
-
- $w->anchorSet($ent);
- $w->see($ent);
-
- if($w->cget('-selectmode') ne 'single')
- {
- $w->selectionClear;
- $w->selection('set', $ent);
- $w->Callback(-browsecmd =>$ent);
- }
-}
-
-sub ShiftUpDown
-{
- my $w = shift;
- my $spec = shift;
-
- my $mode = $w->cget('-selectmode');
-
- return $w->UpDown($spec)
- if($mode eq 'single' || $mode eq 'browse');
-
- my $anchor = $w->info('anchor');
-
- return $w->UpDown($spec) unless (defined($anchor) and length($anchor));
-
- my $done = 0;
-
- $w->{'shiftanchor'} = $anchor unless( $w->{'shiftanchor'} );
-
- my $ent = $w->{'shiftanchor'};
-
- while( !$done )
- {
- $ent = $w->info($spec, $ent);
- last unless( defined $ent );
- next if( $w->entrycget($ent, '-state') eq 'disabled' );
- next if( $w->info('hidden', $ent) );
- last;
- }
-
- unless( $ent )
- {
- $w->yview('scroll', $spec eq 'prev' ? -1 : 1, 'unit');
- return;
- }
-
- $w->selectionClear;
- $w->selection('set', $anchor, $ent);
- $w->see($ent);
-
- $w->{'shiftanchor'} = $ent;
-
- $w->Callback(-browsecmd =>$ent);
-}
-
-sub LeftRight
-{
- my $w = shift;
- my $spec = shift;
-
- delete $w->{'shiftanchor'};
-
- my $anchor = $w->info('anchor');
-
- unless(defined $anchor)
- {
- $anchor = ($w->info('children'))[0]
- }
- unless(defined $anchor)
- {
- $anchor = '';
- }
-
- my $done = 0;
- my $ent = $anchor;
-
- while(!$done)
- {
- my $e = $ent;
-
- if($spec eq 'left')
- {
- $ent = $w->info('parent', $e);
-
- $ent = $w->info('prev', $e)
- unless(defined $ent && $w->entrycget($ent, '-state') ne 'disabled')
- }
- else
- {
- $ent = ($w->info('children', $e))[0];
-
- $ent = $w->info('next', $e)
- unless(defined $ent && $w->entrycget($ent, '-state') ne 'disabled')
- }
-
- last unless( defined $ent );
- last if($w->entrycget($ent, '-state') ne 'disabled');
- }
-
- unless( defined $ent )
- {
- $w->xview('scroll', $spec eq 'left' ? -1 : 1, 'unit');
- return;
- }
-
- $w->anchorSet($ent);
- $w->see($ent);
-
- if($w->cget('-selectmode') ne 'single')
- {
- $w->selectionClear;
- $w->selectionSet($ent);
-
- $w->Callback(-browsecmd =>$ent);
- }
-}
-
-sub KeyboardHome
-{
- my $w = shift;
- $w->yview('moveto' => 0);
- $w->xview('moveto' => 0);
-}
-
-sub KeyboardEnd
-{
- my $w = shift;
- $w->yview('moveto' => 1);
- $w->xview('moveto' => 0);
-}
-
-sub KeyboardActivate
-{
- my $w = shift;
-
- my $anchor = $w->info('anchor');
-
- return unless (defined($anchor) and length($anchor));
-
- if($w->cget('-selectmode'))
- {
- $w->selectionClear;
- $w->selectionSet($anchor);
- }
-
- $w->Callback(-command => $anchor);
-}
-
-sub KeyboardBrowse
-{
- my $w = shift;
-
- my $anchor = $w->info('anchor');
-
- return unless (defined($anchor) and length($anchor));
-
- if ($w->indicatorExists($anchor))
- {
- $w->Callback(-indicatorcmd => $anchor);
- }
-
- if($w->cget('-selectmode'))
- {
- $w->selectionClear;
- $w->selectionSet($anchor);
- }
- $w->Callback(-browsecmd =>$anchor);
-}
-
-sub AutoScan
-{
- my ($w,$x,$y) = @_;
-
- return if ($w->cget('-selectmode') eq 'dragdrop');
- if (@_ < 3)
- {
- my $Ev = $w->XEvent;
- return unless defined $Ev;
- $y = $Ev->y;
- $x = $Ev->x;
- }
-
- if($y >= $w->height)
- {
- $w->yview('scroll', 1, 'units');
- }
- elsif($y < 0)
- {
- $w->yview('scroll', -1, 'units');
- }
- elsif($x >= $w->width)
- {
- $w->xview('scroll', 2, 'units');
- }
- elsif($x < 0)
- {
- $w->xview('scroll', -2, 'units');
- }
- else
- {
- return;
- }
- $w->RepeatId($w->SUPER::after(50,[ AutoScan => $w, $x, $y ]));
- $w->Button1Motion;
-}
-
-sub children
-{
- # Tix has core-tk window(s) which are not a widget(s)
- # the generic code returns these as an "undef"
- my $w = shift;
- my @info = grep(defined($_),$w->winfo('children'));
- @info;
-}
-
-sub BalloonInfo
-{
- my ($listbox,$balloon,$X,$Y,@opt) = @_;
- my $e = $listbox->XEvent;
- return if !$e;
- my $path = $listbox->GetNearest($e->y, 1);
- $path = '' unless defined($path);
- foreach my $opt (@opt)
- {
- my $info = $balloon->GetOption($opt,$listbox);
- if ($opt =~ /^-(statusmsg|balloonmsg)$/
- && UNIVERSAL::isa($info,'HASH'))
- {
- $balloon->Subclient($path);
- if (defined $info->{$path})
- {
- return $info->{$path};
- }
- return '';
- }
- return $info if (defined $info);
- }
- return '';
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/HList.pod b/Master/tlpkg/tlperl/lib/Tk/HList.pod
deleted file mode 100644
index 0843e689843..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/HList.pod
+++ /dev/null
@@ -1,1050 +0,0 @@
-# Copyright (c) 1996, Expert Interface Technologies
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# The file man.macros and some of the macros used by this file are
-# copyrighted: (c) 1990 The Regents of the University of California.
-# (c) 1994-1995 Sun Microsystems, Inc.
-# The license terms of the Tcl/Tk distribution are in the file
-# license.tcl.
-
-=head1 NAME
-
-Tk::HList - Create and manipulate Tix Hierarchial List widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-I<$hlist> = I<$parent>-E<gt>B<HList>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-background> B<-borderwidth> B<-cursor> B<-exportselection>
-B<-foreground> B<-font> B<-height> B<-highlightcolor>
-B<-highlightthickness> B<-relief> B<-selectbackground>
-B<-selectforeground> B<-xscrollcommand> B<-yscrollcommand>
-B<-width>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<browsecmd>
-
-=item Class: B<BrowseCmd>
-
-=item Switch: B<-browsecmd>
-
-Specifies a perl/Tk L<callback|Tk::callbacks> to be executed when the user browses through the
-entries in the HList widget.
-
-=item Name: B<columns>
-
-=item Class: B<Columns>
-
-=item Switch: B<-columns>
-
-Specifies the number of columns in this HList widget. This option can
-only be set during the creation of the HList widget and cannot be
-changed subsequently.
-
-=item Name: B<command>
-
-=item Class: B<Command>
-
-=item Switch: B<-command>
-
-Specifies the perl/Tk L<callback|Tk::callbacks> to be executed when the user invokes a list
-entry in the HList widget. Normally the user invokes a list
-entry by double-clicking it or pressing the Return key.
-
-=item Name: B<drawBranch>
-
-=item Class: B<DrawBranch>
-
-=item Switch: B<-drawbranch>
-
-A Boolean value to specify whether branch line should be drawn to
-connect list entries to their parents.
-
-=item Name: B<foreground>
-
-=item Class: B<Foreground>
-
-=item Switch: B<-foreground>
-
-=item Alias: B<-fg>
-
-B<[OBSOLETE]> Specifies the default foreground color for the list entries.
-
-=item Name: B<gap>
-
-=item Class: B<Gap>
-
-=item Switch: B<-gap>
-
-B<[OBSOLETE]> The default distance between the bitmap/image and the
-text in list entries.
-
-=item Name: B<header>
-
-=item Class: B<Header>
-
-=item Switch: B<-header>
-
-A Boolean value specifying whether headers should be displayed for
-this HList widget (see the B<header> method below).
-
-=item Name: B<height>
-
-=item Class: B<Height>
-
-=item Switch: B<-height>
-
-Specifies the desired height for the window in number of characters.
-
-=item Name: B<indent>
-
-=item Class: B<Indent>
-
-=item Switch: B<-indent>
-
-Specifies the amount of horizontal indentation between a list entry
-and its children. Must be a valid screen distance value.
-
-=item Name: B<indicator>
-
-=item Class: B<Indicator>
-
-=item Switch: B<-indicator>
-
-Specifies whether the indicators should be displayed inside the HList
-widget. See the B<indicator> method below.
-
-=item Name: B<indicatorCmd>
-
-=item Class: B<IndicatorCmd>
-
-=item Switch: B<-indicatorcmd>
-
-Specifies a perl/Tk L<callback|Tk::callbacks> to be executed when the user manipulates the
-indicator of an HList entry. The B<-indicatorcmd> is triggered
-when the user press or releases the mouse button over the indicator in
-an HList entry. By default the perl/Tk B<callback> specified by
-B<-indicatorcmd> is executed with two additional arguments, the
-entryPath of the entry whose indicator has been triggered and additional
-information about the event. The additional information is one of the
-following strings: B<E<lt>ArmE<gt>>, B<E<lt>DisarmE<gt>>,
-and B<E<lt>ActivateE<gt>>.
-
-=item Name: B<itemType>
-
-=item Class: B<ItemType>
-
-=item Switch: B<-itemtype>
-
-Specifies the default type of display item for this HList widget. When
-you call the B<itemCreate>, B<add> and B<addchild> methods, display
-items of this
-type will be created if the B<-itemtype> option is not specified .
-
-=item Name: B<padX>
-
-=item Class: B<Pad>
-
-=item Switch: B<-padx>
-
-B<[OBSOLETE]> The default horizontal padding for list entries.
-
-=item Name: B<padY>
-
-=item Class: B<Pad>
-
-=item Switch: B<-padx>
-
-B<[OBSOLETE]> The default vertical padding for list entries.
-
-=item Name: B<selectBackground>
-
-=item Class: B<SelectBackground>
-
-=item Switch: B<-selectbackground>
-
-Specifies the background color for the selected list entries.
-
-=item Name: B<selectBorderWidth>
-
-=item Class: B<BorderWidth>
-
-=item Switch: B<-selectborderwidth>
-
-Specifies a non-negative value indicating the width of the 3-D border
-to draw around selected items. The value may have any of the forms
-acceptable to B<Tk_GetPixels>.
-
-=item Name: B<selectForeground>
-
-=item Class: B<SelectForeground>
-
-=item Switch: B<-selectforeground>
-
-Specifies the foreground color for the selected list entries.
-
-=item Name: B<selectMode>
-
-=item Class: B<SelectMode>
-
-=item Switch: B<-selectmode>
-
-Specifies one of several styles for manipulating the selection. The
-value of the option may be arbitrary, but the default bindings expect
-it to be either B<single>, B<browse>, B<multiple>, or
-B<extended>; the default value is B<single>.
-
-=item Name: B<sizeCmd>
-
-=item Class: B<SizeCmd>
-
-=item Switch: B<-sizecmd>
-
-Specifies a perl/Tk L<callback|Tk::callbacks> to be called whenever the HList widget
-changes its size. This method can be useful to implement ``I<user scroll
-bars when needed>'' features.
-
-=item Name: B<separator>
-
-=item Class: B<Separator>
-
-=item Switch: B<-separator>
-
-Specifies the character to used as the separator character when
-intepreting the path-names of list entries. By default the character
-"." is used.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies the desired width for the window in characters.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<HList> method creates a new window (given by the
-$widget argument) and makes it into a HList widget.
-Additional options, described above, may be specified on the command
-line or in the option database to configure aspects of the
-HList widget such as its cursor and relief.
-
-The HList widget can be used to display any data that have a
-hierarchical structure, for example, file system directory trees. The
-list entries are indented and connected by branch lines according to
-their places in the hierachy.
-
-Each list entry is identified by an B<entryPath>. The entryPath is a
-sequence of B<entry names> separated by the separator charactor
-(specified by the B<-separator> option). An B<entry name> can be
-any string that does not contain the separator charactor, or it can be
-the a string that contains only one separator charactor.
-
-For example, when "." is used as the separator charactor,
-"one.two.three" is the entryPath for a list entry whose parent is
-"one.two", whose parent is "one", which is a toplevel entry (has no
-parents).
-
-Another examples: ".two.three" is the entryPath for a list entry whose
-parent is ".two", whose parent is ".", which is a toplevel entry.
-
-=head1 DISPLAY ITEMS
-
-Each list entry in an HList widget is associated with a B<display>
-item. The display item determines what visual information should
-be displayed for this list entry. Please see L<Tk::DItem>
-for a list of all display items.
-When a list entry is created by the B<itemCreate>, B<add> or
-B<addchild> widget
-methods, the type of its display item is determined by the
-B<-itemtype> option passed to these methods. If the
-B<-itemtype> is omitted, then by default the type specified by
-this HList widget's B<-itemtype> option is used.
-
-=head1 WIDGET METHODS
-
-The B<HList> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-The following additional methods are available HList widgets:
-
-=over 4
-
-=item I<$hlist>-E<gt>B<add>(I<$entryPath> ?,I<option>=E<gt>I<value>, ...?)
-
-Creates a new list entry with the pathname I<$entryPath>. A list
-entry must be created after its parent is created (unless this entry
-is a top-level entry, which has no parent). See also L<"BUGS"> below.
-This method returns the
-entryPath of the newly created list entry. The following
-configuration options can be given to configure the list entry:
-
-=over 8
-
-=item B<-at> =E<gt> I<position>
-
-Insert the new list at the position given by I<position>.
-I<position> must be a valid integer. The position B<0> indicates
-the first position, B<1> indicates the second position, and so on.
-
-=item B<-after> =E<gt> I<afterWhich>
-
-Insert the new list entry after the entry identified by
-I<afterWhich>. I<afterWhich> must be a valid list entry and it
-mush have the same parent as the new list entry
-
-=item B<-before> =E<gt> I<beforeWhich>
-
-Insert the new list entry before the entry identified by
-I<beforeWhich>. I<beforeWhich> must be a valid list entry and it
-mush have the same parent as the new list entry
-
-=item B<-data> =E<gt> I<string>
-
-Specifies a string to associate with this list entry. This string can
-be queried by the B<info> method. The application
-programmer can use the B<-data> option to associate the list entry
-with the data it represents.
-
-=item B<-itemtype> =E<gt> I<type>
-
-Specifies the type of display item to be display for the new list
-entry. B<type> must be a valid display item type. Currently the
-available display item types are B<imagetext>, B<text>, and
-$widget. If this option is not specified, then by default the
-type specified by this HList widget's B<-itemtype> option is used.
-
-=item B<-state> =E<gt> I<state>
-
-Specifies whether this entry can be selected or invoked by the user.
-Must be either B<normal> or B<disabled>.
-
-=back
-
-The B<add> method accepts additional configuration options
-to configure the display item associated with this list entry. The set
-of additional configuration options depends on the type of the display
-item given by the B<-itemtype> option. Please see
-L<Tk::DItem> for a list of the configuration options for
-each of the display item types.
-
-=item I<$hlist>-E<gt>B<addchild>(I<$parentPath, >?I<option, value, ..., >?)
-
-Adds a new child entry to the children list of the list entry
-identified by I<$parentPath>. Or, if I<$parentPath> is set to be
-the empty string, then creates a new toplevel entry. The name of the
-new list entry will be a unique name automatically generated by the
-HList widget. Usually if I<$parentPath> is B<foo>, then the
-entryPath of the new entry will be B<foo.0>, B<foo.1>, ... etc.
-This method returns the entryPath of the newly created list entry.
-I<option> can be any option for the B<add> method.
-See also L<"BUGS"> below.
-
-=item I<$hlist>-E<gt>B<anchorSet>(I<$entryPath>)
-
-Sets the anchor to the list entry identified by I<$entryPath>. The
-anchor is the end of the selection that is fixed while the user is
-dragging out a selection with the mouse.
-
-=item I<$hlist>-E<gt>B<anchorClear>
-
-Removes the anchor, if any, from this HList widget. This only
-removes the surrounding highlights of the anchor entry and does not
-affect its selection status.
-
-=item I<$hlist>-E<gt>B<columnWidth>(I<$col>?, I<-char>?, ?I<width>?)
-
-Querys or sets the width of a the column I<$col> in the HList
-widget. The value of I<$col> is zero-based: 0 stands for the first
-column, 1 stands for the second, and so on. If no further parameters
-are given, returns the current width of this column (in number of
-pixels). Additional parameters can be given to set the width of this
-column:
-
-=over 8
-
-=item I<$hlist>-E<gt>B<columnWidth>(I<$col>, B<''>)
-
-An empty string indicates that the width of the column should be just
-wide enough to display the widest element in this column. In this
-case, the width of this column may change as a result of the elements
-in this column changing their sizes.
-
-=item I<$hlist>-E<gt>B<columnWidth>(I<$col, >I<width>)
-
-I<width> must be in a form accepted by B<Tk_GetPixels>.
-
-=item I<$hlist>-E<gt>B<columnWidth>(I<$col, >B<-char, >I<nChars>)
-
-The width is set to be the average width occupied by I<nChars>
-number of characters of the font specified by the B<-font> option
-of this HList widget.
-
-=back
-
-=item I<$hlist>-E<gt>B<delete>(I<option>, I<$entryPath>)
-
-Delete one or more list entries. I<option> may be one of the
-following:
-
-=over 8
-
-=item B<all>
-
-Delete all entries in the HList. In this case the I<$entryPath>
-does not need to be specified.
-
-=item B<entry>
-
-Delete the entry specified by I<$entryPath> and all its offsprings,
-if any.
-
-=item B<offsprings>
-
-Delete all the offsprings, if any, of the entry specified by
-I<$entryPath>. However, I<$entryPath> itself is not deleted.
-
-=item B<siblings>
-
-Delete all the list entries that share the same parent with the entry
-specified by I<$entryPath>. However, I<$entryPath> itself is not
-deleted.
-
-=back
-
-=item I<$hlist>-E<gt>B<dragsiteSet>(I<$entryPath>)
-
-Sets the dragsite to the list entry identified by
-I<$entryPath>. The dragsite is used to indicate the source of a
-drag-and-drop action. Currently drag-and-drop functionality has not
-been implemented in Tix yet.
-
-=item I<$hlist>-E<gt>B<dragsiteClear>
-
-Remove the dragsite, if any, from the this HList widget. This only
-removes the surrounding highlights of the dragsite entry and does not
-affect its selection status.
-
-=item I<$hlist>-E<gt>B<dropsiteSet>(I<$entryPath>)
-
-Sets the dropsite to the list entry identified by I<$entryPath>. The
-dropsite is used to indicate the target of a drag-and-drop
-action. Currently drag-and-drop functionality has not been implemented
-in Tix yet.
-
-=item I<$hlist>-E<gt>B<dropsiteClear>
-
-Remove the dropsite, if any, from the this HList widget. This only
-removes the surrounding highlights of the dropsite entry and does not
-affect its selection status.
-
-=item I<$hlist>-E<gt>B<entrycget>(I<$entryPath>, I<option>)
-
-Returns the current value of the configuration option given by
-I<option> for the entry indentfied by I<$entryPath>. I<Option>
-may have any of the values accepted by the B<add> method.
-
-=item I<$hlist>-E<gt>B<entryconfigure>(I<$entryPath> ?,I<option>?, ?I<value>=E<gt>I<option>, ...?)
-
-Query or modify the configuration options of the list entry indentfied
-by I<$entryPath>. If no I<option> is specified, returns a list
-describing all of the available options for I<$entryPath> (see
-L<Tk::options> for information on the format of this list.) If
-I<option> is specified with no I<value>, then the method
-returns a list describing the one named option (this list will be
-identical to the corresponding sublist of the value returned if no
-I<option> is specified). If one or more I<option-value> pairs
-are specified, then the method modifies the given option(s) to have
-the given value(s); in this case the method returns an empty string.
-I<Option> may have any of the values accepted by the B<add> or
-B<addchild> method. The exact set of options depends on the
-value of the B<-itemtype> option passed to the the B<add> or
-B<addchild> method when this list entry is created.
-
-=item I<$hlist>-E<gt>B<header>(I<option>, I<$col> ?,I<args>, ...?)
-
-Manipulates the header items of this HList widget. If the
-B<-header> option of this HList widget is set to true, then a
-header item is displayed at the top of each column. The I<$col>
-argument for this method must be a valid integer. 0 indicates the
-first column, 1 the second column, ... and so on. This method
-supports the following options:
-
-=over 8
-
-=item I<$hlist>-E<gt>B<header>(B<cget>, I<$col>, I<option>)
-
-If the I<$col>-th column has a header display item, returns the
-value of the specified I<option> of the header item. If the header
-doesn't exist, returns an error.
-
-=item I<$hlist>-E<gt>B<header>(B<configure, >I<$col, >?I<option>?, I<?value, option, value, ...>?)
-
-Query or modify the configuration options of the header display item
-of the I<$col>-th column. The header item must exist, or an error
-will result. If no I<option> is specified, returns a list
-describing all of the available options for the header display item
-(see L<Tk::options> for information on the format of this
-list.) If I<option> is specified with no I<value>, then the
-method returns a list describing the one named option (this list will
-be identical to the corresponding sublist of the value returned if no
-I<option> is specified). If one or more I<option-value> pairs
-are specified, then the method modifies the given option(s) to have
-the given value(s); in this case the method returns an empty
-string. I<Option> may have any of the values accepted by the
-B<header create> method. The exact set of options depends
-on the value of the B<-itemtype> option passed to the the B<header>
-create method when this display item was created.
-
-=item I<$hlist>-E<gt>B<header>(B<create, >I<$col, >?I<-itemtype type>? ?I<option value ...>?
-
-Creates a new display item as the header for the I<$col>-th
-column. See also L<"BUGS"> below.
-If an header display item already exists for this column, it
-will be replaced by the new item. An optional parameter
-I<-itemtype> can be used to specify what type of display item
-should be created. If the I<-itemtype> is not given, then by
-default the type specified by this HList widget's B<-itemtype>
-option is used. Additional parameters, in I<option-value> pairs,
-can be passed to configure the appearance of the display item. Each
-I<option-value> pair must be a valid option for this type of
-display item or one of the following:
-
-=over 12
-
-=item B<-borderwidth> =E<gt> I<color>
-
-Specifies the border width of this header item.
-
-=item B<-headerbackground> =E<gt> I<color>
-
-Specifies the background color of this header item.
-
-=item B<-relief> =E<gt> I<type>
-
-Specifies the relief type of the border of this header item.
-
-=back
-
-=item I<$hlist>-E<gt>B<header>(B<delete, >I<$col>)
-
-Deletes the header display item for the I<$col>-th column.
-
-=item I<$hlist>-E<gt>B<header>(B<exists, >I<$col>)
-
-Return true if an header display item exists for the I<$col>-th
-column; return false otherwise.
-
-=item I<$hlist>-E<gt>B<header>(B<size>, I<$col>)
-
-If an header display item exists for the I<$col>-th column , returns
-its size in pixels in a two element list I<(width, height)>;
-returns an error if the header display item does not exist.
-
-=back
-
-=item I<$hlist>-E<gt>B<hide>(I<option> ?,I<$entryPath>?)
-
-Makes some of entries invisible without deleting them.
-I<Option> can be one of the following:
-
-=over 8
-
-=item B<entry>
-
-Hides the list entry identified by I<$entryPath>.
-
-=back
-
-Currently only the B<entry> option is supported. Other options will
-be added in the next release.
-
-=item I<$hlist>-E<gt>B<indicator>(I<option>, I<$entryPath>, ?I<args, ...>?)
-
-Manipulates the indicator on the list entries. An indicator is usually
-a small display item (such as an image) that is displayed to the left
-to an entry to indicate the status of the entry. For example, it may
-be used to indicate whether a directory is opened or
-closed. I<Option> can be one of the following:
-
-=over 8
-
-=item I<$hlist>-E<gt>B<indicator>(B<cget>, I<$entryPath>, I<option>)
-
-If the list entry given by I<$entryPath> has an indicator, returns
-the value of the specified I<option> of the indicator. If the
-indicator doesn't exist, returns an error.
-
-=item I<$hlist>-E<gt>B<indicator>(B<configure>, I<$entryPath>, ?I<option>?, I<?value, option, value, ...>?)
-
-Query or modify the configuration options of the indicator display
-item of the entry specified by I<$entryPath>. The indicator item
-must exist, or an error will result. If no I<option> is specified,
-returns a list describing all of the available options for the
-indicator display item (see L<Tk::options> for information
-on the format of this list). If I<option> is specified with no
-I<value>, then the method returns a list describing the one named
-option (this list will be identical to the corresponding sublist of
-the value returned if no I<option> is specified). If one or more
-I<option-value> pairs are specified, then the method modifies the
-given option(s) to have the given value(s); in this case the method
-returns an empty string. I<Option> may have any of the values
-accepted by the B<indicator create> method. The exact set
-of options depends on the value of the B<-itemtype> option passed
-to the the B<indicator create> method when this display item
-was created.
-
-=item I<$hlist>-E<gt>B<indicator>(B<create, >I<$entryPath, >?, I<-itemtype type>? ?I<option value ...>?)
-
-Creates a new display item as the indicator for the entry specified by
-I<$entryPath>. If an indicator display item already exists for this
-entry, it will be replaced by the new item. An optional parameter
-I<-itemtype> can be used to specify what type of display item
-should be created. If the I<-itemtype> is not given, then by
-default the type specified by this HList widget's B<-itemtype>
-option is used. Additional parameters, in I<option-value> pairs,
-can be passed to configure the appearance of the display item. Each
-I<option-value> pair must be a valid option for this type of
-display item.
-
-=item I<$hlist>-E<gt>B<indicator>(B<delete>, I<$entryPath>)
-
-Deletes the indicator display item for the entry given by I<$entryPath>.
-
-=item I<$hlist>-E<gt>B<indicator>(B<exists>, I<$entryPath>)
-
-Return true if an indicator display item exists for the entry given by
-I<$entryPath>; return false otherwise.
-
-=item I<$hlist>-E<gt>B<indicator>(B<size>, I<$entryPath>)
-
-If an indicator display item exists for the entry given by
-I<$entryPath>, returns its size in a two element list of the form
-{I<width height>}; returns an error if the indicator display item
-does not exist.
-
-=back
-
-=item I<$hlist>-E<gt>B<info>(I<option>, I<arg, ...>)
-
-Query information about the HList widget. I<option> can be one
-of the following:
-
-=over 8
-
-=item I<$hlist>-E<gt>B<info>(B<anchor>)
-
-Returns the entryPath of the current anchor, if any, of the HList
-widget. If the anchor is not set, returns the empty string.
-
-=item I<$hlist>-E<gt>B<infoBbox>(I<$entryPath>)
-
-Returns a list of four numbers describing the visible bounding box of
-the entry given I<$entryPath>. The first two elements of the list
-give the x and y coordinates of the upper-left corner of the screen
-area covered by the entry (specified in pixels relative to the widget)
-and the last two elements give the lower-right corner of the area, in
-pixels. If no part of the entry given by index is visible on the
-screen then the result is an empty string; if the entry is partially
-visible, the result gives the only the visible area of the entry.
-
-=item I<$hlist>-E<gt>B<info>(B<children> ?,I<$entryPath>?)
-
-If I<$entryPath> is given, returns a list of the entryPath's of its
-children entries. Otherwise returns a list of the toplevel
-entryPath's.
-
-=item I<$hlist>-E<gt>B<info>(B<data> ?,I<$entryPath>?)
-
-Returns the data associated with I<$entryPath>.
-
-=item I<$hlist>-E<gt>B<info>(B<dragsite>)
-
-Returns the entryPath of the current dragsite, if any, of the HList
-widget. If the dragsite is not set, returns the empty string.
-
-=item I<$hlist>-E<gt>B<info>(B<dropsite>)
-
-Returns the entryPath of the current dropsite, if any, of the HList
-widget. If the dropsite is not set, returns the empty string.
-
-=item I<$hlist>-E<gt>B<info>(B<exists>, I<$entryPath>)
-
-Returns a boolean value indicating whether the list entry
-I<$entryPath> exists.
-
-=item I<$hlist>-E<gt>B<info>(B<hidden>, I<$entryPath>)
-
-Returns a boolean value indicating whether the list entry
-B<$entryPath> is hidden or not.
-
-=item I<$hlist>-E<gt>B<info>(B<next>, I<$entryPath>)
-
-Returns the entryPath of the list entry, if any, immediately below
-this list entry. If this entry is already at the bottom of the HList
-widget, returns an empty string.
-
-=item I<$hlist>-E<gt>B<info>(B<parent>, I<$entryPath>)
-
-Returns the name of the parent of the list entry identified by
-I<$entryPath>. If I<entryPath> is a toplevel list entry,
-returns the empty string.
-
-=item I<$hlist>-E<gt>B<info>(B<prev>, I<$entryPath>)
-
-Returns the entryPath of the list entry, if any, immediately above
-this list entry. If this entry is already at the top of the HList
-widget, returns an empty string.
-
-=item I<$hlist>-E<gt>B<info>(B<selection>)
-
-Returns a list of selected entries in the HList widget. In scalar
-context, returns an anonymous list of the selected entries.
-If no entries are selected, undef is returned in scalar context, and
-an empty list otherwise.
-
-=back
-
-=item I<$hlist>-E<gt>B<item>(I<option, >?I<args, ...>?)
-
-Creates and configures the display items at individual columns the
-entries. The form of additional of arguments depends on the choice of
-I<option>:
-
-=over 8
-
-=item I<$hlist>-E<gt>B<itemCget>(I<$entryPath>, I<$col>, I<option>)
-
-Returns the current value of the configure I<option> of the display
-item at the column designated by I<$col> of the entry specified by
-I<$entryPath>.
-
-=item I<$hlist>-E<gt>B<itemConfigure>(I<$entryPath>, I<$col> ?,I<option>?, I<?value, option, value, ...>?)
-
-Query or modify the configuration options of the display item at the
-column designated by I<$col> of the entry specified by
-I<$entryPath>. If no I<option> is specified, returns a list
-describing all of the available options for I<$entryPath> (see
-L<Tk::options> for information on the format of this
-list). If I<option> is specified with no I<value>, then the
-method returns a list describing the one named option (this list will
-be identical to the corresponding sublist of the value returned if no
-I<option> is specified). If one or more I<option-value> pairs
-are specified, then the method modifies the given option(s) to have
-the given value(s); in this case the method returns an empty string.
-I<Option> may have any of the values accepted by the B<item>
-create method. The exact set of options depends on the
-value of the B<-itemtype> option passed to the the B<item>
-create method when this display item was created.
-
-=item I<$hlist>-E<gt>B<itemCreate>(I<$entryPath>, I<$col> ?,I<-itemtype>=E<gt>I<type>? ?,I<option value ...>?)
-
-Creates a new display item at the column designated by I<$col> of
-the entry specified by I<$entryPath>. An optional parameter
-I<-itemtype> can be used to specify what type of display items
-should be created. If the I<-itemtype> is not specified, then by
-default the type specified by this HList widget's B<-itemtype>
-option is used. Additional parameters, in I<option-value> pairs,
-can be passed to configure the appearance of the display item. Each
-I<option- value> pair must be a valid option for this type of
-display item.
-
-=item I<$hlist>-E<gt>B<itemDelete>(I<$entryPath>, I<$col>)
-
-Deletes the display item at the column designated by I<$col> of
-the entry specified by I<$entryPath>.
-
-=item I<$hlist>-E<gt>B<itemExists>(I<$entryPath>, I<$col>)
-
-Returns true if there is a display item at the column designated by
-I<$col> of the entry specified by I<$entryPath>; returns false
-otherwise.
-
-=back
-
-=item I<$hlist>-E<gt>B<nearest>(I<y>)
-
-I<$hlist>-E<gt>B<nearest>(I<y>)
-Given a y-coordinate within the HList window, this method returns
-the entryPath of the (visible) HList element nearest to that
-y-coordinate.
-
-=item I<$hlist>-E<gt>B<see>(I<$entryPath>)
-
-Adjust the view in the HList so that the entry given by I<$entryPath> is
-visible. If the entry is already visible then the method has no
-effect; if the entry is near one edge of the window then the HList
-scrolls to bring the element into view at the edge; otherwise the
-HList widget scrolls to center the entry.
-
-=item I<$hlist>-E<gt>B<selection>(I<option>, I<arg>, ...)
-
-=item I<$hlist>-E<gt>B<selection>I<Option>(I<arg>, ...)
-
-This method is used to adjust the selection within a HList widget. It
-has several forms, depending on I<option>:
-
-=over 8
-
-=item I<$hlist>-E<gt>B<selectionClear>(?I<from>?, ?I<to>?)
-
-When no extra arguments are given, deselects all of the list entrie(s)
-in this HList widget. When only I<from> is given, only the list
-entry identified by I<from> is deselected. When both I<from> and
-I<to> are given, deselects all of the list entrie(s) between
-between I<from> and I<to>, inclusive, without affecting the
-selection state of elements outside that range.
-
-=item I<$hlist>-E<gt>B<selectionGet>
-
-This is an alias for the B<infoSelection> method.
-
-=item I<$hlist>-E<gt>B<selectionIncludes>(I<$entryPath>)
-
-Returns 1 if the list entry indicated by I<$entryPath> is currently
-selected; returns 0 otherwise.
-
-=item I<$hlist>-E<gt>B<selectionSet>(I<from>?, I<to>?)
-
-Selects all of the list entrie(s) between between I<from> and
-I<to>, inclusive, without affecting the selection state of entries
-outside that range. When only I<from> is given, only the list entry
-identified by I<from> is selected.
-
-=back
-
-=item I<$hlist>-E<gt>B<show>(I<option> ?,I<$entryPath>?)
-
-Show the entries that are hidden by the B<hide> method,
-I<option> can be one of the following:
-
-=over 8
-
-=item B<entry>
-
-Shows the list entry identified by I<$entryPath>.
-
-=back
-
-Currently only the B<entry> option is supported. Other options will
-be added in future releases.
-
-=item I<$hlist>-E<gt>B<xview>(I<args>)
-
-This method is used to query and change the horizontal position of the
-information in the widget's window. It can take any of the following
-forms:
-
-=over 8
-
-=item I<$hlist>-E<gt>B<xview>
-
-Returns a list containing two elements. Each element is a real
-fraction between 0 and 1; together they describe the horizontal span
-that is visible in the window. For example, if the first element is
-.2 and the second element is .6, 20% of the HList entry is
-off-screen to the left, the middle 40% is visible in the window, and
-40% of the entry is off-screen to the right. These are the same values
-passed to scrollbars via the B<-xscrollcommand> option.
-
-=item I<$hlist>-E<gt>B<xview>(I<$entryPath>)
-
-Adjusts the view in the window so that the list entry identified by
-I<$entryPath> is aligned to the left edge of the window.
-
-=item I<$hlist>-E<gt>B<xview>(B<moveto> =E<gt> I<fraction>)
-
-Adjusts the view in the window so that I<fraction> of the total
-width of the HList is off-screen to the left. I<fraction> must be
-a fraction between 0 and 1.
-
-=item I<$hlist>-E<gt>B<xview>(B<scroll> =E<gt> I<number, what>)
-
-This method shifts the view in the window left or right according to
-I<number> and I<what>. I<Number> must be an integer.
-I<What> must be either B<units> or B<pages> or an
-abbreviation of one of these. If I<what> is B<units>, the view
-adjusts left or right by I<number> character units (the width of
-the B<0> character) on the display; if it is B<pages> then the
-view adjusts by I<number> screenfuls. If I<number> is negative
-then characters farther to the left become visible; if it is positive
-then characters farther to the right become visible.
-
-=back
-
-=item I<$hlist>-E<gt>B<yview>(I<?args>?)
-
-This method is used to query and change the vertical position of the
-entries in the widget's window. It can take any of the following forms:
-
-=over 8
-
-=item I<$hlist>-E<gt>B<yview>
-
-Returns a list containing two elements, both of which are real
-fractions between 0 and 1. The first element gives the position of
-the list element at the top of the window, relative to the HList as a
-whole (0.5 means it is halfway through the HList, for example). The
-second element gives the position of the list entry just after the
-last one in the window, relative to the HList as a whole. These are
-the same values passed to scrollbars via the B<-yscrollcommand>
-option.
-
-=item I<$hlist>-E<gt>B<yview>(I<$entryPath>)
-
-Adjusts the view in the window so that the list entry given by
-I<$entryPath> is displayed at the top of the window.
-
-=item I<$hlist>-E<gt>B<yview>(B<moveto> =E<gt> I<fraction>)
-
-Adjusts the view in the window so that the list entry given by
-I<fraction> appears at the top of the window. I<Fraction> is a
-fraction between 0 and 1; 0 indicates the first entry in the
-HList, 0.33 indicates the entry one-third the way through the
-HList, and so on.
-
-=item I<$hlist>-E<gt>B<yview>(B<scroll> =E<gt> I<number, what>)
-
-This method adjust the view in the window up or down according to
-I<number> and I<what>. I<Number> must be an integer.
-I<What> must be either B<units> or B<pages>. If I<what>
-is B<units>, the view adjusts up or down by I<number> lines; if
-it is B<pages> then the view adjusts by I<number> screenfuls.
-If I<number> is negative then earlier entries become visible; if
-it is positive then later entries become visible.
-
-=back
-
-=back
-
-=head1 BINDINGS
-
-=over 4
-
-=item [1]
-
-If the B<-selectmode> is "browse", when the user drags the mouse
-pointer over the list entries, the entry under the pointer will be
-highlighted and the B<-browsecmd> callback will be called with
-one parameter, the entryPath of the highlighted entry. Only one entry
-can be highlighted at a time. The B<-command> callback will be
-called when the user double-clicks on a list entry.
-
-=item [2]
-
-If the B<-selectmode> is "single", the entries will only be
-highlighted by mouse E<lt>ButtonRelease-1E<gt> events. When a new list entry
-is highlighted, the B<-browsecmd> callback will be called with
-one parameter indicating the highlighted list entry. The
-B<-command> callback will be called when the user double-clicks
-on a list entry.
-
-=item [3]
-
-If the B<-selectmode> is "multiple", when the user drags the mouse
-pointer over the list entries, all the entries under the pointer will
-be highlighted. However, only a contiguous region of list entries can
-be selected. When the highlighted area is changed, the
-B<-browsecmd> callback will be called with an undefined
-parameter. It is the responsibility of the B<-browsecmd> callback
-to find out the exact highlighted selection in the HList. The
-B<-command> callback will be called when the user double-clicks
-on a list entry.
-
-=item [4]
-
-If the B<-selectmode> is "extended", when the user drags the mouse
-pointer over the list entries, all the entries under the pointer will
-be highlighted. The user can also make disjointed selections using
-E<lt>Control-ButtonPress-1E<gt>. When the highlighted area is changed, the
-B<-browsecmd> callback will be called with an undefined
-parameter. It is the responsibility of the B<-browsecmd> callback
-to find out the exact highlighted selection in the HList. The
-B<-command> callback will be called when the user double-clicks
-on a list entry.
-
-=item [5]
-
-B<Arrow key bindings:> E<lt>UpE<gt> arrow key moves the anchor point to the
-item right on top of the current anchor item. E<lt>DownE<gt> arrow key moves
-the anchor point to the item right below the current anchor item.
-E<lt>LeftE<gt> arrow key moves the anchor to the parent item of the current
-anchor item. E<lt>RightE<gt> moves the anchor to the first child of the
-current anchor item. If the current anchor item does not have any
-children, moves the anchor to the item right below the current anchor
-item.
-
-=back
-
-=head1 EXAMPLE
-
-This example demonstrates how to use an HList to store a file
-directory structure and respond to the user's browse events:
-
- use strict;
- use Tk;
- use Tk::Label;
- use Tk::HList;
-
- my $mw = MainWindow->new();
- my $label = $mw->Label(-width=>15);
- my $hlist = $mw->HList(
- -itemtype => 'text',
- -separator => '/',
- -selectmode => 'single',
- -browsecmd => sub {
- my $file = shift;
- $label->configure(-text=>$file);
- }
- );
-
- foreach ( qw(/ /home /home/ioi /home/foo /usr /usr/lib) ) {
- $hlist->add($_, -text=>$_);
- }
-
- $hlist->pack;
- $label->pack;
-
- MainLoop;
-
-=head1 BUGS
-
-The fact that the display item at column 0 is implicitly associated
-with the whole entry is probably a design bug. This was done for
-backward compatibility purposes. The result is that there is a large
-overlap between the B<item> method and the B<add>,
-B<addchild>, B<entrycget> and B<entryconfigure>
-methods. Whenever multiple columns exist, the programmer should use
-ONLY the B<item> method to create and configure the display items
-in each column; the B<add>, B<addchild>, B<entrycget> and
-B<entryconfigure> should be used ONLY to create and configure
-entries.
-
-=head1 KEYWORDS
-
-Hierarchical Listbox
-
-=head1 SEE ALSO
-
-L<Tk::DItem|Tk::DItem>
-
-=cut
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/IO.pm b/Master/tlpkg/tlperl/lib/Tk/IO.pm
deleted file mode 100644
index ea9acf582a2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/IO.pm
+++ /dev/null
@@ -1,183 +0,0 @@
-package Tk::IO;
-use strict;
-use vars qw($VERSION);
-$VERSION = '4.006';
-
-require 5.002;
-use Tk::Event qw($XS_VERSION);
-
-use Carp;
-use base qw(DynaLoader IO::Handle);
-
-bootstrap Tk::IO;
-
-my %fh2obj;
-my %obj2fh;
-
-sub new
-{
- my ($package,%args) = @_;
- # Do whatever IO::Handle does
- my $fh = $package->SUPER::new;
- %{*$fh} = (); # The hash is used for configure options
- ${*$fh} = ''; # The scalar is used as the 'readable' buffer
- @{*$fh} = (); # The array
- $fh->configure(%args);
- return $fh;
-}
-
-sub pending
-{
- my $fh = shift;
- return ${*$fh};
-}
-
-sub cget
-{
- my ($fh,$key) = @_;
- return ${*$fh}{$key};
-}
-
-sub configure
-{
- my ($fh,%args) = @_;
- my $key;
- foreach $key (keys %args)
- {
- my $val = $args{$key};
- $val = Tk::Callback->new($val) if ($key =~ /command$/);
- ${*$fh}{$key} = $val;
- }
-}
-
-sub killpg
-{
- my ($fh,$sig) = @_;
- my $pid = $fh->pid;
- croak 'No child' unless (defined $pid);
- kill($sig,-$pid);
-}
-
-sub kill
-{
- my ($fh,$sig) = @_;
- my $pid = $fh->pid;
- croak 'No child' unless (defined $pid);
- kill($sig,$pid) || croak "Cannot kill($sig,$pid):$!";
-}
-
-sub readable
-{
- my $fh = shift;
- my $count = sysread($fh,${*$fh},1,length(${*$fh}));
- if ($count < 0)
- {
- if (exists ${*$fh}{-errorcommand})
- {
- ${*$fh}{-errorcommand}->Call($!);
- }
- else
- {
- warn "Cannot read $fh:$!";
- $fh->close;
- }
- }
- elsif ($count)
- {
- if (exists ${*$fh}{-linecommand})
- {
- my $eol = index(${*$fh},"\n");
- if ($eol >= 0)
- {
- my $line = substr(${*$fh},0,++$eol);
- substr(${*$fh},0,$eol) = '';
- ${*$fh}{-linecommand}->Call($line);
- }
- }
- }
- else
- {
- $fh->close;
- }
-}
-
-sub pid
-{
- my $fh = shift;
- return ${*$fh}{-pid};
-}
-
-sub command
-{
- my $fh = shift;
- my $cmd = ${*$fh}{'-exec'};
- return (wantarray) ? @$cmd : $cmd;
-}
-
-sub exec
-{
- my $fh = shift;
- my $pid = open($fh,'-|');
- if ($pid)
- {
- ${*$fh} = '' unless (defined ${*$fh});
- ${*$fh}{'-exec'} = [@_];
- ${*$fh}{'-pid'} = $pid;
- if (exists ${*$fh}{-linecommand})
- {
- my $w = ${*$fh}{-widget};
- $w = 'Tk' unless (defined $w);
- $w->fileevent($fh,'readable',[$fh,'readable']);
- ${*$fh}{_readable} = $w;
- }
- else
- {
- require Tk::Pretty;
- croak Tk::Pretty::Pretty(\%{*$fh});
- }
- return $pid;
- }
- else
- {
- # make STDERR same as STDOUT here
- setpgrp;
- exec(@_) || die 'Cannot exec ',join(' ',@_),":$!";
- }
-}
-
-sub wait
-{
- my $fh = shift;
- my $code;
- my $ch = delete ${*$fh}{-childcommand};
- ${*$fh}{-childcommand} = Tk::Callback->new(sub { $code = shift });
- Tk::Event::DoOneEvent(0) until (defined $code);
- if (defined $ch)
- {
- ${*$fh}{-childcommand} = $ch;
- $ch->Call($code,$fh)
- }
- return $code;
-}
-
-sub close
-{
- my $fh = shift;
- my $code;
- if (defined fileno($fh))
- {
- my $w = delete ${*$fh}{_readable};
- $w->fileevent($fh,'readable','') if (defined $w);
- $code = close($fh);
- if (exists ${*$fh}{-childcommand})
- {
- ${*$fh}{-childcommand}->Call($?,$fh);
- }
- }
- return $code;
-}
-
-1;
-__END__
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/IO.pod b/Master/tlpkg/tlperl/lib/Tk/IO.pod
deleted file mode 100644
index 2781d2e17e6..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/IO.pod
+++ /dev/null
@@ -1,51 +0,0 @@
-
-=head1 NAME
-
-Tk::IO - high level interface to Tk's 'fileevent' mechanism
-
-=for pm IO/IO.pm
-
-=for category Binding Events and Callbacks
-
-=head1 SYNOPSIS
-
- my $fh = Tk::IO->new(-linecommand => callback, -childcommand => callback);
- $fh->exec("command")
- $fh->wait
- $fh->kill
-
-=head1 WARNING
-
-INTERFACES TO THIS MODULE MAY CHANGE AS PERL'S IO EVOLVES
-AND WITH PORT OF TK4.1
-
-=head1 DESCRIPTION
-
-Tk::IO is now layered on perl's IO::Handle class. Interfaces
-have changed, and are still evolving.
-
-In theory C methods which enable non-blocking IO as in earlier Tk-b*
-release(s) are still there. I have not changed them to use perl's
-additional Configure information, or tested them much.
-
-Assumption is that B<exec> is
-used to fork a child process and a callback is called each time a
-complete line arrives up the implied pipe.
-
-"line" should probably be defined in terms of perl's input record
-separator but is not yet.
-
-The -childcommand callback is called when end-of-file occurs.
-
-$fh->B<wait> can be used to wait for child process while processing
-other Tk events.
-
-$fh->B<kill> can be used to send signal to child process.
-
-=head1 BUGS
-
-Still not finished.
-Idea is to use "exec" to emulate "system" in a non-blocking manner.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/IconList.pm b/Master/tlpkg/tlperl/lib/Tk/IconList.pm
deleted file mode 100644
index 1972809ea2a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/IconList.pm
+++ /dev/null
@@ -1,712 +0,0 @@
-# -*- perl -*-
-#
-# tkfbox.tcl --
-#
-# Implements the "TK" standard file selection dialog box. This
-# dialog box is used on the Unix platforms whenever the tk_strictMotif
-# flag is not set.
-#
-# The "TK" standard file selection dialog box is similar to the
-# file selection dialog box on Win95(TM). The user can navigate
-# the directories by clicking on the folder icons or by
-# selectinf the "Directory" option menu. The user can select
-# files by clicking on the file icons or by entering a filename
-# in the "Filename:" entry.
-#
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# Translated to perk/Tk and modified by Slaven Rezic <slaven@rezic.de>.
-#
-
-#----------------------------------------------------------------------
-#
-# I C O N L I S T
-#
-# This is a pseudo-widget that implements the icon list inside the
-# tkFDialog dialog box.
-#
-#----------------------------------------------------------------------
-# tkIconList --
-#
-# Creates an IconList widget.
-#
-
-package Tk::IconList;
-require Tk::Frame;
-
-use vars qw($VERSION);
-$VERSION = '4.007'; # $Id: //depot/Tkutf8/Tk/IconList.pm#7 $
-
-use Tk qw(Ev);
-use strict;
-use Carp;
-
-use base 'Tk::Frame';
-
-Construct Tk::Widget 'IconList';
-
-# tkIconList_Create --
-#
-# Creates an IconList widget by assembling a canvas widget and a
-# scrollbar widget. Sets all the bindings necessary for the IconList's
-# operations.
-#
-sub Populate {
- my($w, $args) = @_;
- $w->SUPER::Populate($args);
-
- my $sbar = $w->Component('Scrollbar' => 'sbar',
- -orient => 'horizontal',
- -highlightthickness => 0,
- -takefocus => 0,
- );
- # make sure that the size does not exceed handhelds' dimensions
- my($sw,$sh) = ($w->screenwidth, $w->screenheight);
- my $canvas = $w->Component('Canvas' => 'canvas',
- -bd => 2,
- -relief => 'sunken',
- -width => ($sw > 420 ? 400 : $sw-20),
- -height => ($sh > 160 ? 120 : $sh-40),
- -takefocus => 1,
- );
- $sbar->pack(-side => 'bottom', -fill => 'x', -padx => 2);
- $canvas->pack(-expand => 'yes', -fill => 'both');
- $sbar->configure(-command => ['xview', $canvas]);
- $canvas->configure(-xscrollcommand => ['set', $sbar]);
-
- # Initializes the max icon/text width and height and other variables
- $w->{'maxIW'} = 1;
- $w->{'maxIH'} = 1;
- $w->{'maxTW'} = 1;
- $w->{'maxTH'} = 1;
- $w->{'numItems'} = 0;
-#XXX curItem never used delete $w->{'curItem'};
- $w->{'noScroll'} = 1;
- $w->{'selection'} = [];
- $w->{'index,anchor'} = '';
-
- # Creates the event bindings.
- $canvas->Tk::bind('<Configure>', sub { $w->Arrange } );
- $canvas->Tk::bind('<1>', [$w,'Btn1',Ev('x'),Ev('y')]);
- $canvas->Tk::bind('<B1-Motion>', [$w,'Motion1',Ev('x'),Ev('y')]);
- $canvas->Tk::bind('<Control-B1-Motion>', 'NoOp');
- $canvas->Tk::bind('<Shift-B1-Motion>', 'NoOp');
- $canvas->Tk::bind('<Control-1>', [$w,'CtrlBtn1',Ev('x'),Ev('y')]);
- $canvas->Tk::bind('<Shift-1>', [$w,'ShiftBtn1',Ev('x'),Ev('y')]);
- $canvas->Tk::bind('<Double-ButtonRelease-1>', [$w,'Double1',Ev('x'),Ev('y')]);
- $canvas->Tk::bind('<Control-Double-ButtonRelease-1>', 'NoOp');
- $canvas->Tk::bind('<Shift-Double-ButtonRelease-1>', 'NoOp');
- $canvas->Tk::bind('<ButtonRelease-1>', [$w,'CancelRepeat']);
- $canvas->Tk::bind('<B1-Leave>', [$w,'Leave1',Ev('x'),Ev('y')]);
- $canvas->Tk::bind('<B1-Enter>', [$w,'CancelRepeat']);
- $canvas->Tk::bind('<Up>', [$w,'UpDown', -1]);
- $canvas->Tk::bind('<Down>', [$w,'UpDown', 1]);
- $canvas->Tk::bind('<Left>', [$w,'LeftRight',-1]);
- $canvas->Tk::bind('<Right>', [$w,'LeftRight', 1]);
- $canvas->Tk::bind('<Return>', [$w,'ReturnKey']);
- $canvas->Tk::bind('<KeyPress>', [$w,'KeyPress',Ev('A')]);
- $canvas->Tk::bind('<Control-KeyPress>', 'NoOp');
- $canvas->Tk::bind('<Alt-KeyPress>', 'NoOp');
- $canvas->Tk::bind('<Meta-KeyPress>', 'NoOp');
-#XXX bad....
-# $canvas->Tk::bind('<FocusIn>', sub { $w->FocusIn });
-# $canvas->Tk::bind('<FocusOut>', sub { $w->FocusOut });
-
- # additional bindings not in tkfbox.tcl
- $canvas->Tk::bind('<2>',['scan','mark',Ev('x'),Ev('y')]);
- $canvas->Tk::bind('<B2-Motion>',['scan','dragto',Ev('x'),Ev('y')]);
- # Remove the standard Canvas bindings
- $canvas->bindtags([$canvas, $canvas->toplevel, 'all']);
- # ... and define some again
- $canvas->Tk::bind('<Home>', ['xview','moveto',0]);
- $canvas->Tk::bind('<End>', ['xview','moveto',1]);
-
- $w->ConfigSpecs(-browsecmd =>
- ['METHOD', 'browseCommand', 'BrowseCommand', undef],
- -command =>
- ['CALLBACK', 'command', 'Command', undef],
- -font =>
- ['PASSIVE', 'font', 'Font', undef],
- -foreground =>
- ['PASSIVE', 'foreground', 'Foreground', undef],
- -fg => '-foreground',
- -multiple =>
- ['PASSIVE', 'multiple', 'Multiple', 0],
- -selectmode =>
- ['PASSIVE', 'selectMode', 'SelectMode', 'browse'],
- -selectbackground =>
- ['PASSIVE', 'selectBackground', 'Foreground', '#a0a0ff'],
- );
-
- $w;
-}
-
-# compatibility for old -browsecmd options
-sub browsecmd {
- my $w = shift;
- if (@_) {
- $w->{Configure}{'-browsecmd'} = $_[0];
- $w->bind('<<ListboxSelect>>' => $_[0]);
- }
- $w->{Configure}{'-browsecmd'};
-}
-
-sub Index {
- my($w, $i) = @_;
- if (!$w->{'list'}) { $w->{'list'} = [] }
- if ($i =~ /^-?[0-9]+$/) {
- if ($i < 0) {
- $i = 0;
- }
- if ($i > @{ $w->{'list'} }) {
- $i = @{ $w->{'list'} } - 1;
- }
- return $i;
- } elsif ($i eq 'active') {
- return $w->{'index,active'};
- } elsif ($i eq 'anchor') {
- return $w->{'index,anchor'};
- } elsif ($i eq 'end') {
- return @{ $w->{'list'} };
- } elsif ($i =~ /@(-?[0-9]+),(-?[0-9]+)/) {
- my($x, $y) = ($1, $2);
- my $canvas = $w->Subwidget('canvas');
- my $item = $canvas->find('closest', $x, $y);
- if (defined $item) {
- return $canvas->itemcget($item, '-tags')->[1];
- } else {
- return "";
- }
- } else {
- croak "Unrecognized Index parameter `$i', use active, anchor, end, \@x,y, or x";
- }
-}
-
-sub Selection {
- my($w, $op, @args) = @_;
- if ($op eq 'anchor') {
- if (@args == 1) {
- $w->{'index,anchor'} = $w->Index($args[0]);
- } else {
- return $w->{'index,anchor'};
- }
- } elsif ($op eq 'clear') {
- my($first, $last);
- if (@args == 2) {
- ($first, $last) = @args;
- } elsif (@args == 1) {
- $first = $last = $args[0];
- } else {
- croak "wrong # args: should be Selection('clear', first, ?last?)"
- }
- $first = $w->Index($first);
- $last = $w->Index($last);
- if ($first > $last) {
- ($first, $last) = ($last, $first);
- }
- my $ind = 0;
- for my $item (@{ $w->{'selection'} }) {
- if ($item >= $first) {
- $first = $ind;
- last;
- }
- $ind++; # XXX seems to be missing in the Tcl version
- }
- $ind = @{ $w->{'selection'} } - 1;
- for(; $ind >= 0; $ind--) {
- my $item = $w->{'selection'}->[$ind];
- if ($item <= $last) {
- $last = $ind;
- last;
- }
- }
- if ($first > $last) {
- return;
- }
- splice @{ $w->{'selection'} }, $first, $last-$first+1;
- $w->event('generate', '<<ListboxSelect>>');
- $w->DrawSelection;
- } elsif ($op eq 'includes') {
- my $index;
- for (@{ $w->{'selection'} }) {
- if ($args[0] eq $_) {
- return 1;
- }
- }
- return 0;
- } elsif ($op eq 'set') {
- my($first, $last);
- if (@args == 2) {
- ($first, $last) = @args;
- } elsif (@args == 1) {
- $first = $last = $args[0];
- } else {
- croak "wrong # args: should be Selection('set', first, ?last?)";
- }
-
- $first = $w->Index($first);
- $last = $w->Index($last);
- if ($first > $last) {
- ($first, $last) = ($last, $first);
- }
- for(my $i = $first; $i <= $last; $i++) {
- push @{ $w->{'selection'} }, $i;
- }
- # lsort -integer -unique
- my %sel = map { ($_ => 1) } @{ $w->{'selection'} };
- @{ $w->{'selection'} } = sort { $a <=> $b } keys %sel;
- $w->event('generate', '<<ListboxSelect>>');
- $w->DrawSelection;
- } else {
- croak "Unrecognized Selection parameter `$op', use anchor, clear, includes, or set";
- }
-}
-
-# XXX why lower case 's' here and upper in DrawSelection?
-sub Curselection {
- my $w = shift;
- @{ $w->{'selection'} };
-}
-
-sub DrawSelection {
- my $w = shift;
- my $canvas = $w->Subwidget('canvas');
- $canvas->delete('selection');
- my $selBg = $w->cget('-selectbackground');
- for my $item (@{ $w->{'selection'} }) {
- my $rTag = $w->{'list'}->[$item][2];
- my($iTag, $tTag, $text, $serial) = @{ $w->{'itemList'}{$rTag} };
- my @bbox = $canvas->bbox($tTag);
- # XXX don't hardcode colors
- $canvas->createRectangle
- (@bbox, -fill => $selBg, -outline => $selBg, -tags => 'selection');
- }
- $canvas->lower('selection');
-}
-
-# Returns the selected item
-#
-sub Get {
- my($w, $item) = @_;
- my $rTag = $w->{'list'}->[$item][2];
- my($iTag, $tTag, $text, $serial) = @{ $w->{'itemList'}{$rTag} };
- $text;
-}
-
-
-# tkIconList_AutoScan --
-#
-# This procedure is invoked when the mouse leaves an entry window
-# with button 1 down. It scrolls the window up, down, left, or
-# right, depending on where the mouse left the window, and reschedules
-# itself as an "after" command so that the window continues to scroll until
-# the mouse moves back into the window or the mouse button is released.
-#
-# Arguments:
-# w - The IconList window.
-#
-sub AutoScan {
- my $w = shift;
- return unless ($w->exists);
- return if ($w->{'noScroll'});
- my($x, $y);
- $x = $Tk::x;
- $y = $Tk::y;
- my $canvas = $w->Subwidget('canvas');
- if ($x >= $canvas->width) {
- $canvas->xview('scroll', 1, 'units');
- } elsif ($x < 0) {
- $canvas->xview('scroll', -1, 'units');
- } elsif ($y >= $canvas->height) {
- # do nothing
- } elsif ($y < 0) {
- # do nothing
- } else {
- return;
- }
- $w->Motion1($x, $y);
- $w->RepeatId($w->after(50, ['AutoScan', $w]));
-}
-
-# Deletes all the items inside the canvas subwidget and reset the IconList's
-# state.
-#
-sub DeleteAll {
- my $w = shift;
- my $canvas = $w->Subwidget('canvas');
- $canvas->delete('all');
- delete $w->{'selected'};
- delete $w->{'rect'};
- delete $w->{'list'};
- delete $w->{'itemList'};
- $w->{'maxIW'} = 1;
- $w->{'maxIH'} = 1;
- $w->{'maxTW'} = 1;
- $w->{'maxTH'} = 1;
- $w->{'numItems'} = 0;
-#XXX curItem never used delete $w->{'curItem'};
- $w->{'noScroll'} = 1;
- $w->{'selection'} = [];
- $w->{'index,anchor'} = '';
- $w->Subwidget('sbar')->set(0.0, 1.0);
- $canvas->xview('moveto', 0);
-}
-
-# Adds an icon into the IconList with the designated image and items
-#
-sub Add {
- my($w, $image, @items) = @_;
- my $canvas = $w->Subwidget('canvas');
- my $font = $w->cget(-font);
- my $fg = $w->cget(-foreground);
- foreach my $text (@items) {
- my $iTag = $canvas->createImage
- (0, 0, -image => $image, -anchor => 'nw',
- -tags => ['icon', $w->{numItems}, 'item'.$w->{numItems}],
- );
- my $tTag = $canvas->createText
- (0, 0, -text => $text, -anchor => 'nw',
- (defined $fg ? (-fill => $fg) : ()),
- (defined $font ? (-font => $font) : ()),
- -tags => ['text', $w->{numItems}, 'item'.$w->{numItems}],
- );
- my $rTag = $canvas->createRectangle
- (0, 0, 0, 0,
- -fill => undef,
- -outline => undef,
- -tags => ['rect', $w->{numItems}, 'item'.$w->{numItems}],
- );
- my(@b) = $canvas->bbox($iTag);
- my $iW = $b[2] - $b[0];
- my $iH = $b[3] - $b[1];
- $w->{'maxIW'} = $iW if ($w->{'maxIW'} < $iW);
- $w->{'maxIH'} = $iH if ($w->{'maxIH'} < $iH);
- @b = $canvas->bbox($tTag);
- my $tW = $b[2] - $b[0];
- my $tH = $b[3] - $b[1];
- $w->{'maxTW'} = $tW if ($w->{'maxTW'} < $tW);
- $w->{'maxTH'} = $tH if ($w->{'maxTH'} < $tH);
- push @{ $w->{'list'} }, [$iTag, $tTag, $rTag, $iW, $iH, $tW, $tH,
- $w->{'numItems'}];
- $w->{'itemList'}{$rTag} = [$iTag, $tTag, $text, $w->{'numItems'}];
- $w->{'textList'}{$w->{'numItems'}} = lc($text);
- ++$w->{'numItems'};
- }
-}
-
-# Places the icons in a column-major arrangement.
-#
-sub Arrange {
- my $w = shift;
- my $canvas = $w->Subwidget('canvas');
- my $sbar = $w->Subwidget('sbar');
- unless (exists $w->{'list'}) {
- if (defined $canvas && Tk::Exists($canvas)) {
- $w->{'noScroll'} = 1;
- $sbar->configure(-command => sub { });
- }
- return;
- }
-
- my $W = $canvas->width;
- my $H = $canvas->height;
- my $pad = $canvas->cget(-highlightthickness) + $canvas->cget(-bd);
- $pad = 2 if ($pad < 2);
- $W -= $pad*2;
- $H -= $pad*2;
- my $dx = $w->{'maxIW'} + $w->{'maxTW'} + 8;
- my $dy;
- if ($w->{'maxTH'} > $w->{'maxIH'}) {
- $dy = $w->{'maxTH'};
- } else {
- $dy = $w->{'maxIH'};
- }
- $dy += 2;
- my $shift = $w->{'maxIW'} + 4;
- my $x = $pad * 2;
- my $y = $pad;
- my $usedColumn = 0;
- foreach my $sublist (@{ $w->{'list'} }) {
- $usedColumn = 1;
- my($iTag, $tTag, $rTag, $iW, $iH, $tW, $tH) = @$sublist;
- my $i_dy = ($dy - $iH) / 2;
- my $t_dy = ($dy - $tH) / 2;
- $canvas->coords($iTag, $x, $y + $i_dy);
- $canvas->coords($tTag, $x + $shift, $y + $t_dy);
- $canvas->coords($rTag, $x, $y, $x + $dx, $y + $dy);
- $y += $dy;
- if ($y + $dy > $H) {
- $y = $pad;
- $x += $dx;
- $usedColumn = 0;
- }
- }
- my $sW;
- if ($usedColumn) {
- $sW = $x + $dx;
- } else {
- $sW = $x;
- }
- if ($sW < $W) {
- $canvas->configure(-scrollregion => [$pad, $pad, $sW, $H]);
- $sbar->configure(-command => sub { });
- $canvas->xview(moveto => 0);
- $w->{'noScroll'} = 1;
- } else {
- $canvas->configure(-scrollregion => [$pad, $pad, $sW, $H]);
- $sbar->configure(-command => ['xview', $canvas]);
- $w->{'noScroll'} = 0;
- }
- $w->{'itemsPerColumn'} = int(($H - $pad) / $dy);
- $w->{'itemsPerColumn'} = 1 if ($w->{'itemsPerColumn'} < 1);
-#XXX $w->Select($w->{'list'}[$w->{'curItem'}][2], 0)
-# if (exists $w->{'curItem'});
- $w->DrawSelection; # missing in Tcl XXX
-}
-
-# Gets called when the user invokes the IconList (usually by double-clicking
-# or pressing the Return key).
-#
-sub Invoke {
- my $w = shift;
- $w->Callback(-command => $w->{'selected'}) if (@{ $w->{'selection'} });
-}
-
-# tkIconList_See --
-#
-# If the item is not (completely) visible, scroll the canvas so that
-# it becomes visible.
-sub See {
- my($w, $rTag) = @_;
- return if ($w->{'noScroll'});
- return if ($rTag < 0 || $rTag >= @{ $w->{'list'} });
- my $canvas = $w->Subwidget('canvas');
- my(@sRegion) = @{ $canvas->cget('-scrollregion') };
- return unless (@sRegion);
- my(@bbox) = $canvas->bbox('item'.$rTag);
- my $pad = $canvas->cget(-highlightthickness) + $canvas->cget(-bd);
- my $x1 = $bbox[0];
- my $x2 = $bbox[2];
- $x1 -= $pad * 2;
- $x2 -= $pad;
- my $cW = $canvas->width - $pad * 2;
- my $scrollW = $sRegion[2] - $sRegion[0] + 1;
- my $dispX = int(($canvas->xview)[0] * $scrollW);
- my $oldDispX = $dispX;
- # check if out of the right edge
- $dispX = $x2 - $cW if ($x2 - $dispX >= $cW);
- # check if out of the left edge
- $dispX = $x1 if ($x1 - $dispX < 0);
- if ($oldDispX != $dispX) {
- my $fraction = $dispX / $scrollW;
- $canvas->xview('moveto', $fraction);
- }
-}
-
-sub Btn1 {
- my($w, $x, $y) = @_;
-
- my $canvas = $w->Subwidget('canvas');
- $canvas->CanvasFocus;
- $x = int($canvas->canvasx($x));
- $y = int($canvas->canvasy($y));
- my $i = $w->Index('@'.$x.','.$y);
- return if ($i eq '');
- $w->Selection('clear', 0, 'end');
- $w->Selection('set', $i);
- $w->Selection('anchor', $i);
-}
-
-sub CtrlBtn1 {
- my($w, $x, $y) = @_;
-
- if ($w->cget(-multiple)) {
- my $canvas = $w->Subwidget('canvas');
- $canvas->CanvasFocus;
- my $x = int($canvas->canvasx($x));
- my $y = int($canvas->canvasy($y));
- my $i = $w->Index('@'.$x.','.$y);
- return if ($i eq '');
- if ($w->Selection('includes', $i)) {
- $w->Selection('clear', $i);
- } else {
- $w->Selection('set', $i);
- $w->Selection('anchor', $i);
- }
- }
-}
-
-sub ShiftBtn1 {
- my($w, $x, $y) = @_;
-
- if ($w->cget(-multiple)) {
- my $canvas = $w->Subwidget('canvas');
- $canvas->CanvasFocus;
- my $x = int($canvas->canvasx($x));
- my $y = int($canvas->canvasy($y));
- my $i = $w->Index('@'.$x.','.$y);
- return if ($i eq '');
- my $a = $w->Index('anchor');
- if ($a eq '') {
- $a = $i;
- }
- $w->Selection('clear', 0, 'end');
- $w->Selection('set', $a, $i);
- }
-}
-
-# Gets called on button-1 motions
-#
-sub Motion1 {
- my($w, $x, $y) = @_;
- $Tk::x = $x;
- $Tk::y = $y;
- my $canvas = $w->Subwidget('canvas');
- $canvas->CanvasFocus;
- $x = int($canvas->canvasx($x));
- $y = int($canvas->canvasy($y));
- my $i = $w->Index('@'.$x.','.$y);
- return if ($i eq '');
- $w->Selection('clear', 0, 'end');
- $w->Selection('set', $i);
-}
-
-sub Double1 {
- my($w, $x, $y) = @_;
- $w->Invoke if (@{ $w->{'selection'} });
-}
-
-sub ReturnKey {
- my $w = shift;
- $w->Invoke;
-}
-
-sub Leave1 {
- my($w, $x, $y) = @_;
- $Tk::x = $x;
- $Tk::y = $y;
- $w->AutoScan;
-}
-
-sub FocusIn {
- my $w = shift;
- return unless (exists $w->{'list'});
- if (@{ $w->{'selection'} }) {
- $w->DrawSelection;
- }
-}
-
-sub FocusOut {
- my $w = shift;
- $w->Selection('clear', 0, 'end');
-}
-
-# tkIconList_UpDown --
-#
-# Moves the active element up or down by one element
-#
-# Arguments:
-# w - The IconList widget.
-# amount - +1 to move down one item, -1 to move back one item.
-#
-sub UpDown {
- my($w, $amount) = @_;
- return unless (exists $w->{'list'});
- my $i;
- my(@curr) = $w->Curselection;
- if (!@curr) {
- $i = 0;
- } else {
- $i = $w->Index('anchor');
- return if ($i eq '');
- $i += $amount;
- }
- $w->Selection('clear', 0, 'end');
- $w->Selection('set', $i);
- $w->Selection('anchor', $i);
- $w->See($i);
-}
-
-# tkIconList_LeftRight --
-#
-# Moves the active element left or right by one column
-#
-# Arguments:
-# w - The IconList widget.
-# amount - +1 to move right one column, -1 to move left one column.
-#
-sub LeftRight {
- my($w, $amount) = @_;
- return unless (exists $w->{'list'});
- my $i;
- my(@curr) = $w->Curselection;
- if (!@curr) {
- $i = 0;
- } else {
- $i = $w->Index('anchor');
- return if ($i eq '');
- $i += $amount*$w->{'itemsPerColumn'};
- }
- $w->Selection('clear', 0, 'end');
- $w->Selection('set', $i);
- $w->Selection('anchor', $i);
- $w->See($i);
-}
-
-#----------------------------------------------------------------------
-# Accelerator key bindings
-#----------------------------------------------------------------------
-# tkIconList_KeyPress --
-#
-# Gets called when user enters an arbitrary key in the listbox.
-#
-sub KeyPress {
- my($w, $key) = @_;
- $w->{'_ILAccel'} .= $key;
- $w->Goto($w->{'_ILAccel'});
- eval {
- $w->afterCancel($w->{'_ILAccel_afterid'});
- };
- $w->{'_ILAccel_afterid'} = $w->after(500, ['Reset', $w]);
-}
-
-sub Goto {
- my($w, $text) = @_;
- return unless (exists $w->{'list'});
- return if (not defined $text or $text eq '');
-#XXX curItem never used my $start = (!exists $w->{'curItem'} ? 0 : $w->{'curItem'});
- my $start = 0;
- $text = lc($text);
- my $theIndex = -1;
- my $less = 0;
- my $len = length($text);
- my $i = $start;
- # Search forward until we find a filename whose prefix is an exact match
- # with $text
- while (1) {
- my $sub = substr($w->{'textList'}{$i}, 0, $len);
- if ($text eq $sub) {
- $theIndex = $i;
- last;
- }
- ++$i;
- $i = 0 if ($i == $w->{'numItems'});
- last if ($i == $start);
- }
- if ($theIndex > -1) {
- $w->Selection(qw(clear 0 end));
- $w->Selection('set', $theIndex);
- $w->Selection('anchor', $theIndex);
- $w->See($theIndex);
- }
-}
-
-sub Reset {
- my $w = shift;
- undef $w->{'_ILAccel'};
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/IconList.pod b/Master/tlpkg/tlperl/lib/Tk/IconList.pod
deleted file mode 100644
index e68324ce4b6..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/IconList.pod
+++ /dev/null
@@ -1,82 +0,0 @@
-=head1 NAME
-
-Tk::IconList - an icon list widget
-
-=for pm Tk/IconList.pm
-
-=for category Derived Widgets
-
-=head1 SYNOPSIS
-
- use Tk::IconList;
- $il = $mw->IconList(-browsecmd => sub { ... },
- -command => sub { ... })->pack;
- $il->Add($icon1, $text1);
- $il->Add($icon2, $text2);
- $il->Arrange;
- ...
- $il->DeleteAll;
-
-=head1 DESCRIPTION
-
-=head2 OPTIONS
-
-=over
-
-=item -browsecmd
-
-=item -command
-
-=item -font
-
--item -foreground|-fg
-
-=back
-
-=head2 METHODS
-
-=over 4
-
-=item DeleteAll
-
-Deletes all the items inside the canvas subwidget and reset the IconList's
-state.
-
-=item Add($image, $text)
-
-Adds an icon into the IconList with the designated image and text.
-
-=item Arrange
-
-Places the icons in a column-major arrangement.
-
-=item Get
-
-Return the selected item.
-
-=item Invoke
-
-Gets called when the user invokes the IconList (usually by double-clicking
-or pressing the Return key) (internal method).
-
-=item See($tag)
-
-If the item is not (completely) visible, scroll the canvas so that it
-becomes visible (internal method).
-
-=back
-
-=head1 COPYRIGHT
-
-The original tkfbox.tcl from Tcl/Tk is:
-
-Copyright (c) 1994-1996 Sun Microsystems, Inc.
-
-See the file "license.terms" for information on usage and redistribution
-of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-Translated to Perl/Tk by Slaven Rezic <srezic@cpan.org>.
-
-=head1 SEE ALSO
-
-L<Tk::FBox>.
diff --git a/Master/tlpkg/tlperl/lib/Tk/Image.pm b/Master/tlpkg/tlperl/lib/Tk/Image.pm
deleted file mode 100644
index 2c47a13d749..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Image.pm
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Image;
-
-# This module does for images what Tk::Widget does for widgets:
-# provides a base class for them to inherit from.
-require DynaLoader;
-
-use base qw(DynaLoader Tk); # but are they ?
-
-use vars qw($VERSION);
-$VERSION = '4.011'; # $Id: //depot/Tkutf8/Tk/Image.pm#11 $
-
-sub new
-{
- my $package = shift;
- my $widget = shift;
- $package->InitClass($widget);
- my $leaf = $package->Tk_image;
- my $obj = $widget->Tk::image('create',$leaf,@_);
- $obj = $widget->_object($obj) unless (ref $obj);
- return bless $obj,$package;
-}
-
-sub Install
-{
- # Dynamically loaded image types can install standard images here
- my ($class,$mw) = @_;
-}
-
-sub ClassInit
-{
- # Carry out class bindings (or whatever)
- my ($package,$mw) = @_;
- return $package;
-}
-
-require Tk::Submethods;
-
-Direct Tk::Submethods ('image' => [qw(delete width height inuse type)]);
-
-sub Tk::Widget::imageNames
-{
- my $w = shift;
- $w->image('names',@_);
-}
-
-sub Tk::Widget::imageTypes
-{
- my $w = shift;
- map("\u$_",$w->image('types',@_));
-}
-
-sub Construct
-{
- my ($base,$name) = @_;
- my $class = (caller(0))[0];
-
- # Hack for broken ->isa in perl5.6.0
- delete ${"$class\::"}{'::ISA::CACHE::'} if $] == 5.006;
-
- *{"Tk::Widget::$name"} = sub { $class->new(@_) };
-}
-
-# This is here to prevent AUTOLOAD trying to find it.
-sub DESTROY
-{
- my $i = shift;
- # maybe do image delete ???
-}
-
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/Image.pod b/Master/tlpkg/tlperl/lib/Tk/Image.pod
deleted file mode 100644
index 797ecc23cbf..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Image.pod
+++ /dev/null
@@ -1,145 +0,0 @@
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Image - Create and manipulate images
-
-=for category Tk Image Classes
-
-=head1 SYNOPSIS
-
-I<$image> = I<$widget>-E<gt>I<type>(?I<arg arg ...>?)
-
-I<$image>-E<gt>I<method>(?I<arg arg ...>?)
-
-=head1 DESCRIPTION
-
-The B<image> constructors and methods are used to create, delete, and query images.
-It can take several different forms, depending on the
-I<type>.
-
-The constructors require a I<$widget> to invoke them, this is used
-to locate a B<MainWindow>. (This is because the underlying Tk code
-registers the images in the data structure for the B<MainWindow>.)
-
-The legal forms are:
-
-=over 4
-
-=item I<$widget>-E<gt>I<type>?(?I<name>?,?I<option>=E<gt>I<value ...>)?
-
-Creates a new image and returns an object.
-I<type> specifies the type of the image, which must be one of
-the types currently defined (e.g., B<Bitmap>).
-I<name> specifies the name for the image; if it is omitted then
-Tk picks a name of the form B<image>I<x>, where I<x> is
-an integer.
-There may be any number of I<option>=E<gt>I<value> pairs,
-which provide configuration options for the new image.
-The legal set of options is defined separately for each image
-type; see below for details on the options for built-in image types.
-If an image already exists by the given name then it is replaced
-with the new image and any instances of that image will redisplay
-with the new contents.
-
-=item I<$image>-E<gt>B<delete>
-
-Deletes the image I<$image> and returns an empty string.
-If there are instances of the image displayed in widgets,
-the image won't actually be deleted until all of the instances
-are released.
-However, the association between the instances and the image
-manager will be dropped.
-Existing instances will retain their sizes but redisplay as
-empty areas.
-If a deleted image is recreated (with the same I<name>)
-the existing instances will use the new image.
-
-=item I<$image>-E<gt>B<height>
-
-Returns a decimal string giving the height of image I<name>
-in pixels.
-
-=item I<$image>-E<gt>B<inuse>
-
-Returns a boolean value indicating whether or not the image is in use
-by any widgets.
-
-=item I<$widget>-E<gt>B<imageNames>
-
-Returns a list containing all existing images for I<$widget>'s
-B<MainWindow>.
-
-=item I<$image>-E<gt>B<type>
-
-Returns the type of I<$image> (the value of the I<type>
-method when the image was created).
-
-=item I<$widget>-E<gt>B<imageTypes>
-
-Returns a list whose elements are all of the valid image types
-(i.e., all of the values that may be supplied for the I<type>
-to create an image).
-
-=item I<$image>-E<gt>B<width>
-
-Returns a decimal string giving the width of image I<name>
-in pixels.
-
-=back
-
-=head1 BUILT-IN IMAGE TYPES
-
-The following image types are defined by Tk so they will be available
-in any Tk application.
-Individual applications or extensions may define additional types.
-
-=over 4
-
-=item B<Bitmap>
-
-Each pixel in the image displays a foreground color, a background
-color, or nothing.
-See L<Tk::Bitmap> for more information.
-
-=item B<Pixmap>
-
-B<Pixmap> is slightly more general than B<Bitmap>, each pixel can
-be any available color or "transparent" (rendered as background color of the
-widget image is displayed in). B<Pixmap> is best used for icons and other
-simple graphics with only a few colors.
-
-B<Pixmap> is derived from Tix. See L<Tk::Pixmap> for more information.
-
-=item B<Photo>
-
-Displays a variety of full-color images, using dithering to
-approximate colors on displays with limited color capabilities.
-See L<Tk::Photo> documentation for more information.
-
-=back
-
-=head1 CAVEATS
-
-It's necessary to use the L</delete> method to delete an image object
-and free memory associated with it. Just using a lexical variable for
-storing the image object and letting the variable to go out of scope
-or setting to C<undef> is not sufficient.
-
-=head1 SEE ALSO
-
-L<Tk::Bitmap|Tk::Bitmap>
-L<Tk::Pixmap|Tk::Pixmap>
-L<Tk::Photo|Tk::Photo>
-
-=head1 KEYWORDS
-
-height, image, types of images, width
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/InputO.pod b/Master/tlpkg/tlperl/lib/Tk/InputO.pod
deleted file mode 100644
index 03a43b29ed7..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/InputO.pod
+++ /dev/null
@@ -1,50 +0,0 @@
-=head1 NAME
-
-Tk::InputO - Create and manipulate TIX InputO widgets
-
-=for category Tix Extensions
-
-=head1 SYNOPSIS
-
-I<$inputonly> = I<$parent>-E<gt>B<InputO>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-Only the following three standard options are supported by
-B<InputO>:
-
-B<cursor> B<width> B<height>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-B<InputO> does not have any widget specific options.
-
-=head1 DESCRIPTION
-
-The B<InputO> method creates a new window (given by the
-$widget argument) and makes it into a B<InputO>
-widget. Additional options, described above, may be specified on the
-command line or in the option database to configure aspects of the
-B<InputO> such as its cursor or width.
-
-B<InputO> widgets are not visible to the user. The only
-purpose of B<InputO> widgets are to accept inputs from the
-user, which can be done with the B<bind> method.
-
-=head1 WIDGET METHODS
-
-The B<InputO> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-=head1 BINDINGS
-
-B<InputO> widgets have no default bindings.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Internals.pod b/Master/tlpkg/tlperl/lib/Tk/Internals.pod
deleted file mode 100644
index 572abdf0f4f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Internals.pod
+++ /dev/null
@@ -1,142 +0,0 @@
-=head1 NAME
-
-Tk::Internals - what is Perl Tk interface doing when you call Tk functions.
-
-=for category C Programming
-
-This information is worse than useless for C<perlTk> users, but can of
-some help for people interested in using modified Tk source with
-C<perlTk>.
-
-I<This document is under construction. The information is believed to
-be pertinent to the version of> C<portableTk> I<available when it was
-created. All the details are subject to change.>
-
-=head1 DESCRIPTION
-
-=over 4
-
-=item PreCompiling
-
-Before the actual compilation stage a script scans the source
-and extracts the subcommands of different commands. This information
-resides in the file C<pTk/Methods.def>.
-
-=item Compilation
-
-During compilation the above file is included in the source of booting
-routine of dynamic (or static) library. More precisely, the booting
-code of module C<Tk> calls the subroutine Boot_Glue() from the module
-C<tkGlue.c>, and this subroutine includes the file (with appropriate
-macro definitions).
-
-=item Inside C<use Tk;>
-
-The module bootstraps the C code, then loads the Perl libraries. The
-heart of the Perl code is contained in the C<Tk::Widget> library, all the
-widgets inherit from this module. Code for toplevels is loaded from
-C<Tk::MainWindow>.
-
-During bootstrap of the C glue code the C<Xevent::?> codes and a
-handful of C<Tk::Widget> and C<Tk::Image> routines are defined. (Much
-more XSUBs are created from C<Tk.xs> code.) The widget subcommands are
-glued to Perl basing on the list included from C<pTk/Methods.def>. In
-fact all the subcommands are glued to XSUBs that are related to the
-same C subroutine XStoWidget(), but have different data parts.
-
-During the Perl code bootstrap the method C<Tk::Widget::import> is
-called. This call requires all the code from particular widget
-packages.
-
-Code from the widget packages calls an obscure command like
-
- (bless \"Text")->WidgetClass;
-
-This command (actually Tk::Widget::WidgetClass()) creates three
-routines: Tk::Widget::Text(), Tk::Widget::isText(), and
-Tk::Text::isText(). The first one is basically C<new> of C<Tk::Text>,
-the other two return constants. It also puts the class into
-depository.
-
-=item Inside C<$top = MainWindow-E<gt>new;>
-
-This is quite intuitive. This call goes direct to
-C<Tk::MainWindow::new>, that calls XSUB
-C<Tk::MainWindow::CreateMainWindow>, that calls C subroutine
-Tk_CreateMainWindow(). It is a C<Tk> subroutine, so here black magic
-ends (almost).
-
-The only remaining black magic is that the C<Tk> initialization
-routine creates a lot of commands, but the subroutine for creation is
-usurped by B<portableTk> and the commands are created in the package
-C<Tk>. They are associated to XSUBs that are related to one of three C
-subroutines XStoSubCmd(), XStoBind(), or XStoTk(), but have different
-data parts.
-
-The result of the call is blessed into C<Tk::MainWindow>, as it should.
-
-=item Inside C<$top-E<gt>title('Text demo');>
-
-The package C<Tk::Toplevel> defines a lot of subroutines on the fly on
-some list. All the commands from the list are converted to the
-corresponding subcommands of C<wm> method of the widget. Here
-subcommand is a command with some particular second argument (in this
-case C<"title">). Recall that the first argument is $self.
-
-Now C<Tk::Toplevel> @ISA C<Tk::Widget>, that in turn @ISA C<Tk>. So a
-call to C<$top-E<gt>wm('title','Text demo')> calls C<Tk::wm>, that is
-defined during call to Tk_CreateMainWindow(). As it is described
-above, the XSUB associated to XStoSubCmd() is called.
-
-This C routine is defined in C<tkGlue.c>. It gets the data part of
-XSUB, creates a C<SV> with the name of the command, and calls
-Call_Tk() with the XSUB data as the first argument, and with the name
-of XSUB stuffed into the Perl stack in the place there C<tk> expects
-it. (In fact it can also reorder the arguments if it thinks it is
-what you want).
-
-The latter procedure extracts name of C<tk> procedure and
-C<clientData> from the first argument and makes a call, using Perl
-stack as C<argv> for the procedure. A lot of black magic is performed
-afterwards to convert result of the procedure to a Perl array return.
-
-=item Inside C<$text = $top-E<gt>Text(background =E<gt> $txtBg);>
-
-Above we discussed how the command C<Tk::Widget::Text> is created. The
-above command calls it via inheritance. It is translated to
-
- Tk::Text::new($top, background => $txtBg);
-
-The package C<Tk::Text> has no method C<new>, so the
-C<Tk::Widget::new> is called. In turn it calls
-C<Tk::Text-E<gt>DoInit($top)>, that is
-C<Tk::Widget::DoInit(Tk::Text,$top)>, that initializes the bindings if
-necessary. Then it creates the name for the widget of the form
-C<.text0>, and calls C<Tk::text('.text0', background =E<gt> $txtBg)>
-(note lowercase). The result of the call is blessed into C<Tk::Text>,
-and the method C<bindtags> for this object is called.
-
-Now the only thing to discuss is who defines the methods C<text> and
-C<bindtags>. The answer is that they are defined in C<tkWindow.c>,
-and these commands are created in the package C<Tk> in the same sweep
-that created the command C<Tk::wm> discussed above.
-
-So the the same C code that corresponds to the processing of
-corresponding TCL commands is called here as well (this time via
-C<XStoTk> interface).
-
-=item Inside C<$text-E<gt>insert('insert','Hello, world!');>
-
-As we discussed above, the subcommands of widget procedures correspond
-to XSUB C<XStoWidget>. This XSUB substitutes the first argument $text
-(that is a hash reference) to an appropriate value from this hash,
-adds the additional argument after the first one that contains the
-name of the subcommand extracted from the data part of XSUB, and calls
-the corresponding Tk C subroutine via C<Call_Tk>.
-
-=back
-
-Ilya Zakharevich <ilya@math.ohio-state.edu>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/ItemStyle.pm b/Master/tlpkg/tlperl/lib/Tk/ItemStyle.pm
deleted file mode 100644
index 85c6c11a76c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ItemStyle.pm
+++ /dev/null
@@ -1,38 +0,0 @@
-package Tk::ItemStyle;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/Tk/ItemStyle.pm#4 $
-
-require Tk;
-use base qw(Tk);
-require Tk::Widget;
-Construct Tk::Widget 'ItemStyle';
-
-Tk::Methods ('delete');
-
-sub new
-{
- my $package = shift;
- my $widget = shift;
- my $type = shift;
- my %args = @_;
- $args{'-refwindow'} = $widget unless exists $args{'-refwindow'};
- $package->InitClass($widget);
- my $obj = $widget->itemstyle($type, %args);
- return bless $obj,$package;
-}
-
-sub Install
-{
- # Dynamically loaded image types can install standard images here
- my ($class,$mw) = @_;
-}
-
-sub ClassInit
-{
- # Carry out class bindings (or whatever)
- my ($package,$mw) = @_;
- return $package;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/JPEG.pm b/Master/tlpkg/tlperl/lib/Tk/JPEG.pm
deleted file mode 100644
index 6565c4157b3..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/JPEG.pm
+++ /dev/null
@@ -1,57 +0,0 @@
-package Tk::JPEG;
-require DynaLoader;
-
-use vars qw($VERSION);
-$VERSION = '4.003'; # was: sprintf '4.%03d', q$Revision: #2$ =~ /\D(\d+)\s*$/;
-use Tk 800.015;
-require Tk::Image;
-require Tk::Photo;
-require DynaLoader;
-
-use vars qw($VERSION $XS_VERSION);
-
-@ISA = qw(DynaLoader);
-
-$XS_VERSION = $Tk::VERSION;
-bootstrap Tk::JPEG;
-
-1;
-
-__END__
-
-=head1 NAME
-
-Tk::JPEG - JPEG loader for Tk::Photo
-
-=head1 SYNOPSIS
-
- use Tk;
- use Tk::JPEG;
-
- my $image = $widget->Photo('-format' => 'jpeg', -file => 'something.jpg');
-
-
-=head1 DESCRIPTION
-
-This is an extension for Tk which supplies
-JPEG format loader for Photo image type.
-
-JPEG access is via release 5 of the The Independent JPEG Group's (IJG)
-free JPEG software.
-
-=head1 HISTORY
-
-This extension works for Tk800.015 and later and is by default bundled
-with Perl/Tk since Tk804.
-
-=head1 AUTHOR
-
-Nick Ing-Simmons E<lt>nick@ing-simmons.netE<gt>
-
-=head1 SEE ALSO
-
-L<Tk::Photo>.
-
-=cut
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/LabEntry.pm b/Master/tlpkg/tlperl/lib/Tk/LabEntry.pm
deleted file mode 100644
index 64cb392fa8c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/LabEntry.pm
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-package Tk::LabEntry;
-
-use vars qw($VERSION);
-$VERSION = '4.006'; # $Id: //depot/Tkutf8/Tk/LabEntry.pm#6 $
-
-use base qw(Tk::Frame);
-use Tk::widgets qw(Frame Label Entry);
-
-Construct Tk::Widget 'LabEntry';
-
-sub Populate
-{
- require Tk::Entry;
- # LabeledEntry constructor.
- #
- my($cw, $args) = @_;
- $cw->SUPER::Populate($args);
- # Advertised subwidgets: entry.
- my $e = $cw->Entry();
- $e->pack('-expand' => 1, '-fill' => 'both');
- $cw->Advertise('entry' => $e );
- $cw->ConfigSpecs(DEFAULT => [$e]);
- $cw->Delegates(DEFAULT => $e);
- $cw->AddScrollbars($e) if (exists $args->{-scrollbars});
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/LabFrame.pm b/Master/tlpkg/tlperl/lib/Tk/LabFrame.pm
deleted file mode 100644
index 6fcab1acc56..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/LabFrame.pm
+++ /dev/null
@@ -1,138 +0,0 @@
-#
-# Labeled frame. Derives from Tk::Frame, but intercepts the labeling
-# part.
-
-package Tk::LabFrame;
-
-use vars qw($VERSION);
-$VERSION = '4.010'; # $Id: //depot/Tkutf8/Tixish/LabFrame.pm#11 $
-
-use Tk;
-use base qw(Tk::Frame);
-Tk::Widget->Construct('LabFrame');
-
-sub autoLabel { 0 }
-
-sub Populate {
- my ($cw, $args) = @_;
-
- $cw->{m_geoMgr} = "";
-
- my $border = $cw->Component(
- Frame => 'border',
- -relief => 'groove',
- -bd => 2,
- );
-
- my $pad = $border->Frame;
- $cw->Advertise(pad => $pad);
-
- my $frame = $border->Frame;
- $cw->Advertise(frame => $frame);
-
- my $label = $cw->Component(Label => 'label');
-
- $cw->SUPER::Populate($args);
-
- $cw->Delegates(DEFAULT => $frame);
- $cw->ConfigSpecs(
- -background => [[qw/SELF ADVERTISED/],
- qw/background Background/],
- -borderwidth => [$border, qw/borderWidth Border 2/],
- -font => [$label, qw/font Font/],
- -foreground => [$label, qw/foreground Foreground black/],
- -label => [{-text => $label}, qw/label Label/],
- -labelside => [qw/METHOD labelSide LabelSide acrosstop/],
- -labelvariable => [{-textvariable => $label}],
- -relief => [$border, qw/relief Relief groove/],
- DEFAULT => [$frame]
- );
- return $cw;
-}
-
-use Tk::Submethods(
- form => [qw/check forget grid info slaves/],
- grid => [qw/bbox columnconfigure configure forget info location
- propagate rowconfigure remove size slaves/],
- pack => [qw/forget info propagate slaves/],
- place => [qw/forget info slaves/]
-);
-
-sub labelside {
- my ($cw, $side) = @_;
- return $cw->{Configure}{-labelside} unless $side;
-
- my $border = $cw->Subwidget('border');
- my $pad = $cw->Subwidget('pad');
- my $frame = $cw->Subwidget('frame');
- my $label = $cw->Subwidget('label');
-
- ## packForget/formForget as appropriate
- foreach ($border, $label, $pad, $frame) {
- $_->formForget if $cw->{m_geoMgr} eq "form";
- $_->packForget if ($cw->{m_geoMgr} eq "pack" && $_->ismapped);
- }
-
- if ($side eq "acrosstop") {
-
- my $y = $label->reqheight / 2;
- my $ph = $y - ($border->cget(-bd));
- $ph = 0 if $ph < 0;
-
- $label->form(qw/-top 0 -left 4 -padx 6 -pady 2/);
- $border->form(-top => $y,
- qw/-bottom -1 -left 0 -right -1 -padx 2 -pady 2/);
- $pad->form(-bottom => $ph,
- qw/-top 0 -left 0 -right -1/);
- $frame->form(-top => $pad,
- qw/-bottom -1 -left 0 -right -1 -fill both/);
- $cw->{m_geoMgr} = "form";
-
- } else {
-
- $label->pack(-side => $side);
- $frame->pack(-expand => 1, -fill => 'both');
- $border->pack(-side => $side, -expand => 1, -fill => 'both');
- $cw->{m_geoMgr} = "pack";
- }
-}
-
-sub form {
- my $cw = shift;
- $cw = $cw->Subwidget('frame')
- if (@_ && $_[0] =~ /^(?:slaves)$/);
- $cw->SUPER::form(@_);
-}
-
-sub grid {
- my $cw = shift;
- $cw = $cw->Subwidget('frame') if (@_ && $_[0] =~
- /^(?:bbox
- |columnconfigure
- |location
- |propagate
- |rowconfigure
- |size
- |slaves)
- $/x);
- $cw->SUPER::grid(@_);
-}
-
-
-sub pack {
- my $cw = shift;
- $cw = $cw->Subwidget('frame')
- if (@_ && $_[0] =~ /^(?:propagate|slaves)$/);
- $cw->SUPER::pack(@_);
-}
-
-sub place {
- my $cw = shift;
- $cw = $cw->Subwidget('frame')
- if (@_ && $_[0] =~ /^(?:slaves)$/);
- $cw->SUPER::place(@_);
-}
-
-1;
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/LabFrame.pod b/Master/tlpkg/tlperl/lib/Tk/LabFrame.pod
deleted file mode 100644
index cf5cebf754a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/LabFrame.pod
+++ /dev/null
@@ -1,110 +0,0 @@
-=head1 NAME
-
-Tk::LabFrame - labeled frame.
-
-=for pm Tixish/LabFrame.pm
-
-=for category Tix Extensions
-
-=head1 SYNOPSIS
-
-S< >B<use Tk::LabFrame;>
-
-S< >I<$f> = I<$parent>-E<gt>B<LabFrame>(?B<-label>=E<gt>I<text>,
-B<-labelside>=E<gt>I<where>, ...?);
-
-=head1 DESCRIPTION
-
-B<LabFrame> is exactly like B<Frame> and additionaly allows to
-add a label to the frame.
-
-=head1 WIDGET-OPTIONS
-
-B<LabFrame> supports the same options as the
-L<Frame|Tk::Frame/"STANDARD OPTIONS"> widget.
-
-Additional options of B<LabFrame> are:
-
-=over 4
-
-=item B<-font> =E<gt> I<font>
-
-Specifies the label's font
-
-=item B<-foreground> =E<gt> I<color>
-
-Specifies the label's foreground color
-
-=item B<-label> =E<gt> I<text>
-
-The text of the label to be placed with the Frame.
-
-=item B<-labelside> =E<gt> I<where>
-
-I<Where> can be one of B<left>, B<right>, B<top>, B<bottom> or B<acrosstop>.
-The first four work as might be expected and place the label to the
-left, right, above or below the frame respectively. The B<acrosstop>
-creates a grooved frame around the central frame and puts the label
-near the northwest corner such that it appears to "overwrite" the
-groove.
-
-=item B<-labelvariable> =E<gt> I<scalar_ref>
-
-Specifies a reference to a variable and used as an
-alternative to -label. If the value of the variable changes,
-then the widget will be updated automatically to reflect the
-change. Used like -textvariable.
-
-=back
-
-=head1 ADVERTISED SUBWIDGETS
-
-See L<Tk::mega/"Subwidget"> how to use advertised widgets.
-
-=over 4
-
-=item I<border>
-
- Frame used to display the border
-
-=item I<frame>
-
- Frame used to create new LabFrame children.
-
-=item I<label>
-
- Label used for displaying text
-
-=back
-
-=head1 EXAMPLE
-
-Run the following test program to see this in action:
-
- use strict;
- use Tk;
- require Tk::LabFrame;
- require Tk::LabEntry;
-
- my $test = 'Test this';
- my $mw = Tk::MainWindow->new;
- my $f = $mw->LabFrame(-label => "This is a label",
- -labelside => "acrosstop");
- $f->LabEntry(-label => "Testing", -textvariable => \$test)->pack;
- $f->pack;
- Tk::MainLoop;
-
-=head1 BUGS
-
-Perhaps B<LabFrame> should be subsumed within the generic pTk
-labeled widget mechanism.
-
-=head1 AUTHOR
-
-B<Rajappa Iyer> rsi@earthling.net
-
-This code is derived from LabFrame.tcl and LabWidg.tcl in the Tix4.0
-distribution by Ioi Lam. The code may be redistributed under the same
-terms as Perl.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tk/LabRadio.pm b/Master/tlpkg/tlperl/lib/Tk/LabRadio.pm
deleted file mode 100644
index 69e07b12f01..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/LabRadio.pm
+++ /dev/null
@@ -1,63 +0,0 @@
-# Class LabeledRadiobutton
-
-package Tk::LabRadiobutton;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/Tk/LabRadio.pm#4 $
-
-require Tk::Frame;
-use base qw(Tk::Frame);
-
-Construct Tk::Widget 'LabRadiobutton';
-
-
-# Although there is no fundamental reason why -radiobuttons
-# should be fixed at create time converting to METHOD form
-# is extra work an this can serve as an example of CreateArgs
-# checking.
-
-sub CreateArgs
-{
- my ($package,$parent,$args) = @_;
- $parent->BackTrace("Must specify -radiobuttons for $package")
- unless (defined $args->{'-radiobuttons'});
- return $package->SUPER::CreateArgs($parent,$args);
-}
-
-sub Populate
-{
- require Tk::Radiobutton;
-
- my ($cw,$args) = @_;
- $cw->SUPER::Populate($args);
-
- # LabeledRadiobutton(s) constructor.
- #
- # Advertised subwidgets: the name(s) of your radiobutton(s).
-
-
-
- my (@widgets) = ();
-
- my $rl;
- foreach $rl (@{$args->{'-radiobuttons'}})
- {
- my $r = $cw->Component( Radiobutton => $rl,
- -text => $rl,
- -value => $rl );
- $r->pack(-side => 'left', -expand => 1, -fill => 'both');
- push(@widgets,$r);
- $cw->{Configure}{-value} = $rl;
- }
-
- $cw->BackTrace('No buttons') unless (@widgets);
-
- $cw->ConfigSpecs('-variable' => [ \@widgets, undef, undef, \$cw->{Configure}{-value} ],
- '-radiobuttons' => [ 'PASSIVE', undef, undef, undef ],
- '-value' => [ 'PASSIVE', undef, undef, $cw->{Configure}{-value} ],
- 'DEFAULT' => [ \@widgets ]
- );
-}
-
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/Label.pm b/Master/tlpkg/tlperl/lib/Tk/Label.pm
deleted file mode 100644
index ebea1741c2f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Label.pm
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-package Tk::Label;
-require Tk;
-
-
-use vars qw($VERSION);
-$VERSION = '4.006'; # $Id: //depot/Tkutf8/Tk/Label.pm#6 $
-
-use base qw(Tk::Widget);
-
-Construct Tk::Widget 'Label';
-
-sub Tk_cmd { \&Tk::label }
-
-1;
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Label.pod b/Master/tlpkg/tlperl/lib/Tk/Label.pod
deleted file mode 100644
index 96386b09b5c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Label.pod
+++ /dev/null
@@ -1,133 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Label - Create and manipulate Label widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-I<$label> = I<$parent>-E<gt>B<Label>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-activebackground>
-B<-activeforeground>
-B<-anchor>
-B<-background>
-B<-bitmap>
-B<-borderwidth>
-B<-compound>
-B<-cursor>
-B<-disabledforeground>
-B<-font>
-B<-foreground>
-B<-highlightbackground>
-B<-highlightcolor>
-B<-highlightthickness>
-B<-image>
-B<-justify>
-B<-padx>
-B<-pady>
-B<-relief>
-B<-takefocus>
-B<-text>
-B<-textvariable>
-B<-underline>
-B<-wraplength>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<height>
-
-=item Class: B<Height>
-
-=item Switch: B<-height>
-
-Specifies a desired height for the label.
-If an image or bitmap is being displayed in the label then the value is in
-screen units (i.e. any of the forms acceptable to B<Tk_GetPixels>);
-for text it is in lines of text.
-If this option isn't specified, the label's desired height is computed
-from the size of the image or bitmap or text being displayed in it.
-
-=item Name: B<state>
-
-=item Class: B<State>
-
-=item Switch: B<-state>
-
-Specifies one of three states for the label: B<normal>, B<active>, or
-B<disabled>. In normal state the label is displayed using the
-B<foreground> and B<background> options. In active state the label is
-displayed using the B<activeForeground> and B<activeBackground>
-options. In the disabled state the B<disabledForeground> and
-B<background> options determine how the button is displayed.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies a desired width for the label.
-If an image or bitmap is being displayed in the label then the value is in
-screen units (i.e. any of the forms acceptable to B<Tk_GetPixels>);
-for text it is in characters.
-If this option isn't specified, the label's desired width is computed
-from the size of the image or bitmap or text being displayed in it.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Label> method creates a new window (given by the
-$widget argument) and makes it into a label widget.
-Additional
-options, described above, may be specified on the command line
-or in the option database
-to configure aspects of the label such as its colors, font,
-text, and initial relief. The B<label> command returns its
-$widget argument. At the time this command is invoked,
-there must not exist a window named $widget, but
-$widget's parent must exist.
-
-A label is a widget that displays a textual string, bitmap or image.
-If text is displayed, it must all be in a single font, but it
-can occupy multiple lines on the screen (if it contains newlines
-or if wrapping occurs because of the B<wrapLength> option) and
-one of the characters may optionally be underlined using the
-B<underline> option.
-The label can be manipulated in a few simple ways, such as
-changing its relief or text, using the commands described below.
-
-=head1 WIDGET METHODS
-
-The B<Label> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-=head1 BINDINGS
-
-When a new label is created, it has no default event bindings:
-labels are not intended to be interactive.
-
-=head1 KEYWORDS
-
-label, widget
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Labelframe.pm b/Master/tlpkg/tlperl/lib/Tk/Labelframe.pm
deleted file mode 100644
index dc167fe161d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Labelframe.pm
+++ /dev/null
@@ -1,16 +0,0 @@
-package Tk::Labelframe;
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '4.003'; # sprintf '4.%03d', q$Revision: #2 $ =~ /#(\d+)/;
-
-# New widget which is a kind of Frame with a label ...
-
-use base qw(Tk::Frame);
-
-Construct Tk::Widget 'Labelframe';
-
-sub Tk_cmd { \&Tk::labelframe }
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/Labelframe.pod b/Master/tlpkg/tlperl/lib/Tk/Labelframe.pod
deleted file mode 100644
index b904ad7775b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Labelframe.pod
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-# RCS: @(#) $Id: labelframe.n,v 1.1 2001/09/26 21:36:19 pspjuth Exp $
-
-=head1 NAME
-
-Tk::Labelframe - Create and manipulate Labelframe widgets
-
-=for category Tk Generic Methods
-
-=head1 SYNOPSIS
-
-I<$labelframe> = I<$parent>-E<gt>B<Labelframe>(?I<options>?);
-
- -borderwidth -highlightbackground -pady
- -cursor -highlightcolor -relief
- -font -highlightthickness -takefocus
- -foreground -padx -text
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Option: B<-background>
-
-=item Name: B<background>
-
-=item Class: B<Background>
-
-This option is the same as the standard B<background> option
-except that its value may also be specified as an empty string.
-In this case, the widget will display no background or border, and
-no colors will be consumed from its colormap for its background
-and border.
-
-=item Option: B<-class>
-
-=item Name: B<class>
-
-=item Class: B<Class>
-
-Specifies a class for the window.
-This class will be used when querying the option database for
-the window's other options, and it will also be used later for
-other purposes such as bindings.
-The B<class> option may not be changed with the B<configure>
-method.
-
-=item Option: B<-colormap>
-
-=item Name: B<colormap>
-
-=item Class: B<Colormap>
-
-Specifies a colormap to use for the window.
-The value may be either B<new>, in which case a new colormap is
-created for the window and its children, or the name of another
-window (which must be on the same screen and have the same visual
-as $widget), in which case the new window will use the colormap
-from the specified window.
-If the B<colormap> option is not specified, the new window
-uses the same colormap as its parent.
-This option may not be changed with the B<configure>
-method.
-
-=item Option: B<-container>
-
-=item Name: B<container>
-
-=item Class: B<Container>
-
-The value must be a boolean. If true, it means that this window will
-be used as a container in which some other application will be embedded
-(for example, a Tk toplevel can be embedded using the B<-use> option).
-The window will support the appropriate window manager protocols for
-things like geometry requests. The window should not have any
-children of its own in this application.
-This option may not be changed with the B<configure>
-method.
-
-=item Option: B<-height>
-
-=item Name: B<height>
-
-=item Class: B<Height>
-
-Specifies the desired height for the window in any of the forms
-acceptable to B<Tk_GetPixels>.
-If this option is less than or equal to zero then the window will
-not request any size at all.
-
-=item Option: B<-labelanchor>
-
-=item Name: B<labelAnchor>
-
-=item Class: B<LabelAnchor>
-
-Specifies where to place the label. A label is only displayed if the
-B<-text> option is not the empty string.
-Valid values for this option are (listing them clockwise)
-B<nw>, B<n>, B<ne>, B<en>, B<e>, B<es>,
-B<se>, B<s>,B<sw>, B<ws>, B<w> and B<wn>.
-The default value is B<nw>.
-
-=item Option: B<-labelwidget>
-
-=item Name: B<labelWidget>
-
-=item Class: B<LabelWidget>
-
-Specifies a widget to use as label. This overrides any B<-text>
-option. The widget must exist before being used as B<-labelwidget>
-and if it is not a descendant of this window, it will be raised
-above it in the stacking order.
-
-=item Option: B<-visual>
-
-=item Name: B<visual>
-
-=item Class: B<Visual>
-
-Specifies visual information for the new window in any of the
-forms accepted by B<Tk_GetVisual>.
-If this option is not specified, the new window will use the same
-visual as its parent.
-The B<visual> option may not be modified with the B<configure>
-method.
-
-=item Option: B<-width>
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-Specifies the desired width for the window in any of the forms
-acceptable to B<Tk_GetPixels>.
-If this option is less than or equal to zero then the window will
-not request any size at all.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Labelframe> method creates a new window (given by the
-$labelframe argument) and makes it into a Labelframe widget.
-Additional
-options, described above, may be specified on the command line
-or in the option database
-to configure aspects of the Labelframe such as its background color
-and relief.
-
-A Labelframe is a simple widget. Its primary purpose is to act as a
-spacer or container for complex window layouts. It has the features
-of a B<Frame> plus the ability to display a label.
-
-=head1 WIDGET METHODS
-
-The B<Labelframe> method
-may be used to invoke various operations on the widget. It has the
-following general form:
-
- $widget->method(?arg arg ...?);
-
-The following
-methods are possible for Labelframe widgets:
-
-=over 4
-
-=item I<$widget>-E<gt>B<cget>(I<option>);
-
-Returns the current value of the configuration option given
-by I<option>.
-I<Option> may have any of the values accepted by the B<Labelframe>
-command.
-
-=item I<$widget>-E<gt>B<configure>(?I<option>?, I<?value, option, value, ...>?);
-
-Query or modify the configuration options of the widget.
-If no I<option> is specified, returns a list describing all of
-the available options for $widget (see L<Tk::configure> for
-information on the format of this list). If I<option> is specified
-with no I<value>, then the command returns a list describing the
-one named option (this list will be identical to the corresponding
-sublist of the value returned if no I<option> is specified). If
-one or more I<option-value> pairs are specified, then the command
-modifies the given widget option(s) to have the given value(s); in
-this case the command returns an empty string.
-I<Option> may have any of the values accepted by the B<Labelframe>
-command.
-
-=back
-
-=head1 BINDINGS
-
-When a new Labelframe is created, it has no default event bindings:
-Labelframes are not intended to be interactive.
-
-=head1 SEE ALSO
-
-L<Tk::Frame>, L<Tk::Label>
-
-=head1 KEYWORDS
-
-Labelframe, widget
diff --git a/Master/tlpkg/tlperl/lib/Tk/Listbox.pm b/Master/tlpkg/tlperl/lib/Tk/Listbox.pm
deleted file mode 100644
index c73c0c193a4..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Listbox.pm
+++ /dev/null
@@ -1,910 +0,0 @@
-# Converted from listbox.tcl --
-#
-# This file defines the default bindings for Tk listbox widgets.
-#
-# @(#) listbox.tcl 1.7 94/12/17 16:05:18
-#
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-# Modifications from standard Listbox.pm
-# --------------------------------------
-# 27-JAN-2001 Alasdair Allan
-# Modified for local use by adding tied scalar and arrays
-# Implemented TIESCALAR, TIEARRAY, FETCH, FETCHSIZE, STORE, CLEAR & EXTEND
-# 31-JAN-2001 Alasdair Allan
-# Made changes suggested by Tim Jenness
-# 03-FEB-2001 Alasdair Allan
-# Modified STORE for tied scalars to clear and select elements
-# 06-FEB-2001 Alasdair Allan
-# Added POD documentation for tied listbox
-# 13-FEB-2001 Alasdair Allan
-# Implemented EXISTS, DELETE, PUSH, POP, SHIFT & UNSHIFT for tied arrays
-# 14-FEB-2001 Alasdair Allan
-# Implemented SPLICE for tied arrays, all tied functionality in place
-# 16-FEB-2001 Alasdair Allan
-# Tweak to STORE interface for tied scalars
-# 23-FEB-2001 Alasdair Allan
-# Added flag to FETCH for tied scalars, modified to return hashes
-# 24-FEB-2001 Alasdair Allan
-# Updated Pod documentation
-#
-
-package Tk::Listbox;
-
-use vars qw($VERSION @Selection $Prev);
-use strict;
-$VERSION = '4.015'; # sprintf '4.%03d', q$Revision: #14 $ =~ /\D(\d+)\s*$/;
-
-use Tk qw(Ev $XS_VERSION);
-use Tk::Clipboard ();
-use AutoLoader;
-
-use base qw(Tk::Clipboard Tk::Widget);
-
-Construct Tk::Widget 'Listbox';
-
-bootstrap Tk::Listbox;
-
-sub Tk_cmd { \&Tk::listbox }
-
-Tk::Methods('activate','bbox','curselection','delete','get','index',
- 'insert','itemcget','itemconfigure','nearest','scan','see',
- 'selection','size','xview','yview');
-
-use Tk::Submethods ( 'selection' => [qw(anchor clear includes set)],
- 'scan' => [qw(mark dragto)],
- 'xview' => [qw(moveto scroll)],
- 'yview' => [qw(moveto scroll)],
- );
-
-*Getselected = \&getSelected;
-
-sub clipEvents
-{
- return qw[Copy];
-}
-
-sub BalloonInfo
-{
- my ($listbox,$balloon,$X,$Y,@opt) = @_;
- my $e = $listbox->XEvent;
- return if !$e;
- my $index = $listbox->index('@' . $e->x . ',' . $e->y);
- foreach my $opt (@opt)
- {
- my $info = $balloon->GetOption($opt,$listbox);
- if ($opt =~ /^-(statusmsg|balloonmsg)$/ && UNIVERSAL::isa($info,'ARRAY'))
- {
- $balloon->Subclient($index);
- if (defined $info->[$index])
- {
- return $info->[$index];
- }
- return '';
- }
- return $info;
- }
-}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $class->SUPER::ClassInit($mw);
- # Standard Motif bindings:
- $mw->bind($class,'<1>',[sub {
- my $w = shift;
- if (Tk::Exists($w)) {
- $w->BeginSelect(@_);
- }
- }, Ev('index',Ev('@'))]);
- $mw->bind($class, '<Double-1>' => \&Tk::NoOp);
- $mw->bind($class,'<B1-Motion>',['Motion',Ev('index',Ev('@'))]);
- $mw->bind($class,'<ButtonRelease-1>','ButtonRelease_1');
- ;
- $mw->bind($class,'<Shift-1>',['BeginExtend',Ev('index',Ev('@'))]);
- $mw->bind($class,'<Control-1>',['BeginToggle',Ev('index',Ev('@'))]);
-
- $mw->bind($class,'<B1-Leave>',['AutoScan',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B1-Enter>','CancelRepeat');
- $mw->bind($class,'<Up>',['UpDown',-1]);
- $mw->bind($class,'<Shift-Up>',['ExtendUpDown',-1]);
- $mw->bind($class,'<Down>',['UpDown',1]);
- $mw->bind($class,'<Shift-Down>',['ExtendUpDown',1]);
-
- $mw->XscrollBind($class);
- $mw->bind($class,'<Prior>', sub {
- my $w = shift;
- $w->yview('scroll',-1,'pages');
- $w->activate('@0,0');
- });
- $mw->bind($class,'<Next>', sub {
- my $w = shift;
- $w->yview('scroll',1,'pages');
- $w->activate('@0,0');
- });
- $mw->bind($class,'<Control-Prior>', ['xview', 'scroll', -1, 'pages']);
- $mw->bind($class,'<Control-Next>', ['xview', 'scroll', 1, 'pages']);
- # <Home> and <End> defined in XscrollBind
- $mw->bind($class,'<Control-Home>','Cntrl_Home');
- ;
- $mw->bind($class,'<Shift-Control-Home>',['DataExtend',0]);
- $mw->bind($class,'<Control-End>','Cntrl_End');
- ;
- $mw->bind($class,'<Shift-Control-End>',['DataExtend','end']);
- # XXX What about <<Copy>>? Already handled in Tk::Clipboard?
- # $class->clipboardOperations($mw,'Copy');
- $mw->bind($class,'<space>',['BeginSelect',Ev('index','active')]);
- $mw->bind($class,'<Select>',['BeginSelect',Ev('index','active')]);
- $mw->bind($class,'<Control-Shift-space>',['BeginExtend',Ev('index','active')]);
- $mw->bind($class,'<Shift-Select>',['BeginExtend',Ev('index','active')]);
- $mw->bind($class,'<Escape>','Cancel');
- $mw->bind($class,'<Control-slash>','SelectAll');
- $mw->bind($class,'<Control-backslash>','Cntrl_backslash');
- ;
- # Additional Tk bindings that aren't part of the Motif look and feel:
- $mw->bind($class,'<2>',['scan','mark',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B2-Motion>',['scan','dragto',Ev('x'),Ev('y')]);
-
- $mw->MouseWheelBind($class); # XXX Both needed?
- $mw->YMouseWheelBind($class);
- return $class;
-}
-
-1;
-__END__
-
-sub TIEARRAY {
- my ( $class, $obj, %options ) = @_;
- return bless {
- OBJECT => \$obj,
- OPTION => \%options }, $class;
-}
-
-
-
-sub TIESCALAR {
- my ( $class, $obj, %options ) = @_;
- return bless {
- OBJECT => \$obj,
- OPTION => \%options }, $class;
-}
-
-# FETCH
-# -----
-# Return either the full contents or only the selected items in the
-# box depending on whether we tied it to an array or scalar respectively
-sub FETCH {
- my $class = shift;
-
- my $self = ${$class->{OBJECT}};
- my %options = %{$class->{OPTION}} if defined $class->{OPTION};;
-
- # Define the return variable
- my $result;
-
- # Check whether we are have a tied array or scalar quantity
- if ( @_ ) {
- my $i = shift;
- # The Tk:: Listbox has been tied to an array, we are returning
- # an array list of the current items in the Listbox
- $result = $self->get($i);
- } else {
- # The Tk::Listbox has been tied to a scalar, we are returning a
- # reference to an array or hash containing the currently selected items
- my ( @array, %hash );
-
- if ( defined $options{ReturnType} ) {
-
- # THREE-WAY SWITCH
- if ( $options{ReturnType} eq "index" ) {
- $result = [$self->curselection];
- } elsif ( $options{ReturnType} eq "element" ) {
- foreach my $selection ( $self->curselection ) {
- push(@array,$self->get($selection)); }
- $result = \@array;
- } elsif ( $options{ReturnType} eq "both" ) {
- foreach my $selection ( $self->curselection ) {
- %hash = ( %hash, $selection => $self->get($selection)); }
- $result = \%hash;
- }
- } else {
- # return elements (default)
- foreach my $selection ( $self->curselection ) {
- push(@array,$self->get($selection)); }
- $result = \@array;
- }
- }
- return $result;
-}
-
-# FETCHSIZE
-# ---------
-# Return the number of elements in the Listbox when tied to an array
-sub FETCHSIZE {
- my $class = shift;
- return ${$class->{OBJECT}}->size();
-}
-
-# STORE
-# -----
-# If tied to an array we will modify the Listbox contents, while if tied
-# to a scalar we will select and clear elements.
-sub STORE {
-
- if ( scalar(@_) == 2 ) {
- # we have a tied scalar
- my ( $class, $selected ) = @_;
- my $self = ${$class->{OBJECT}};
- my %options = %{$class->{OPTION}} if defined $class->{OPTION};;
-
- # clear currently selected elements
- $self->selectionClear(0,'end');
-
- # set selected elements
- if ( defined $options{ReturnType} ) {
-
- # THREE-WAY SWITCH
- if ( $options{ReturnType} eq "index" ) {
- for ( my $i=0; $i < scalar(@$selected) ; $i++ ) {
- for ( my $j=0; $j < $self->size() ; $j++ ) {
- if( $j == $$selected[$i] ) {
- $self->selectionSet($j); last; }
- }
- }
- } elsif ( $options{ReturnType} eq "element" ) {
- for ( my $k=0; $k < scalar(@$selected) ; $k++ ) {
- for ( my $l=0; $l < $self->size() ; $l++ ) {
- if( $self->get($l) eq $$selected[$k] ) {
- $self->selectionSet($l); last; }
- }
- }
- } elsif ( $options{ReturnType} eq "both" ) {
- foreach my $key ( keys %$selected ) {
- $self->selectionSet($key)
- if $$selected{$key} eq $self->get($key);
- }
- }
- } else {
- # return elements (default)
- for ( my $k=0; $k < scalar(@$selected) ; $k++ ) {
- for ( my $l=0; $l < $self->size() ; $l++ ) {
- if( $self->get($l) eq $$selected[$k] ) {
- $self->selectionSet($l); last; }
- }
- }
- }
-
- } else {
- # we have a tied array
- my ( $class, $index, $value ) = @_;
- my $self = ${$class->{OBJECT}};
-
- # check size of current contents list
- my $sizeof = $self->size();
-
- if ( $index <= $sizeof ) {
- # Change a current listbox entry
- $self->delete($index);
- $self->insert($index, $value);
- } else {
- # Add a new value
- if ( defined $index ) {
- $self->insert($index, $value);
- } else {
- $self->insert("end", $value);
- }
- }
- }
-}
-
-# CLEAR
-# -----
-# Empty the Listbox of contents if tied to an array
-sub CLEAR {
- my $class = shift;
- ${$class->{OBJECT}}->delete(0, 'end');
-}
-
-# EXTEND
-# ------
-# Do nothing and be happy about it
-sub EXTEND { }
-
-# PUSH
-# ----
-# Append elements onto the Listbox contents
-sub PUSH {
- my ( $class, @list ) = @_;
- ${$class->{OBJECT}}->insert('end', @list);
-}
-
-# POP
-# ---
-# Remove last element of the array and return it
-sub POP {
- my $class = shift;
-
- my $value = ${$class->{OBJECT}}->get('end');
- ${$class->{OBJECT}}->delete('end');
- return $value;
-}
-
-# SHIFT
-# -----
-# Removes the first element and returns it
-sub SHIFT {
- my $class = shift;
-
- my $value = ${$class->{OBJECT}}->get(0);
- ${$class->{OBJECT}}->delete(0);
- return $value
-}
-
-# UNSHIFT
-# -------
-# Insert elements at the beginning of the Listbox
-sub UNSHIFT {
- my ( $class, @list ) = @_;
- ${$class->{OBJECT}}->insert(0, @list);
-}
-
-# DELETE
-# ------
-# Delete element at specified index
-sub DELETE {
- my ( $class, @list ) = @_;
-
- my $value = ${$class->{OBJECT}}->get(@list);
- ${$class->{OBJECT}}->delete(@list);
- return $value;
-}
-
-# EXISTS
-# ------
-# Returns true if the index exist, and undef if not
-sub EXISTS {
- my ( $class, $index ) = @_;
- return undef unless ${$class->{OBJECT}}->get($index);
-}
-
-# SPLICE
-# ------
-# Performs equivalent of splice on the listbox contents
-sub SPLICE {
- my $class = shift;
-
- my $self = ${$class->{OBJECT}};
-
- # check for arguments
- my @elements;
- if ( scalar(@_) == 0 ) {
- # none
- @elements = $self->get(0,'end');
- $self->delete(0,'end');
- return wantarray ? @elements : $elements[scalar(@elements)-1];;
-
- } elsif ( scalar(@_) == 1 ) {
- # $offset
- my ( $offset ) = @_;
- if ( $offset < 0 ) {
- my $start = $self->size() + $offset;
- if ( $start > 0 ) {
- @elements = $self->get($start,'end');
- $self->delete($start,'end');
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- } else {
- return undef;
- }
- } else {
- @elements = $self->get($offset,'end');
- $self->delete($offset,'end');
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- }
-
- } elsif ( scalar(@_) == 2 ) {
- # $offset and $length
- my ( $offset, $length ) = @_;
- if ( $offset < 0 ) {
- my $start = $self->size() + $offset;
- my $end = $self->size() + $offset + $length - 1;
- if ( $start > 0 ) {
- @elements = $self->get($start,$end);
- $self->delete($start,$end);
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- } else {
- return undef;
- }
- } else {
- @elements = $self->get($offset,$offset+$length-1);
- $self->delete($offset,$offset+$length-1);
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- }
-
- } else {
- # $offset, $length and @list
- my ( $offset, $length, @list ) = @_;
- if ( $offset < 0 ) {
- my $start = $self->size() + $offset;
- my $end = $self->size() + $offset + $length - 1;
- if ( $start > 0 ) {
- @elements = $self->get($start,$end);
- $self->delete($start,$end);
- $self->insert($start,@list);
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- } else {
- return undef;
- }
- } else {
- @elements = $self->get($offset,$offset+$length-1);
- $self->delete($offset,$offset+$length-1);
- $self->insert($offset,@list);
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- }
- }
-}
-
-# ----
-
-#
-# Bind --
-# This procedure is invoked the first time the mouse enters a listbox
-# widget or a listbox widget receives the input focus. It creates
-# all of the class bindings for listboxes.
-#
-# Arguments:
-# event - Indicates which event caused the procedure to be invoked
-# (Enter or FocusIn). It is used so that we can carry out
-# the functions of that event in addition to setting up
-# bindings.
-
-sub xyIndex
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- return $w->index($Ev->xy);
-}
-
-sub ButtonRelease_1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->CancelRepeat;
- $w->activate($Ev->xy);
-}
-
-
-sub Cntrl_Home
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->activate(0);
- $w->see(0);
- $w->selectionClear(0,'end');
- $w->selectionSet(0);
- $w->eventGenerate("<<ListboxSelect>>");
-}
-
-
-sub Cntrl_End
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->activate('end');
- $w->see('end');
- $w->selectionClear(0,'end');
- $w->selectionSet('end');
- $w->eventGenerate("<<ListboxSelect>>");
-}
-
-
-sub Cntrl_backslash
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- if ($w->cget('-selectmode') ne 'browse')
- {
- $w->selectionClear(0,'end');
- $w->eventGenerate("<<ListboxSelect>>");
- }
-}
-
-# BeginSelect --
-#
-# This procedure is typically invoked on button-1 presses. It begins
-# the process of making a selection in the listbox. Its exact behavior
-# depends on the selection mode currently in effect for the listbox;
-# see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginSelect
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'multiple')
- {
- if ($w->selectionIncludes($el))
- {
- $w->selectionClear($el)
- }
- else
- {
- $w->selectionSet($el)
- }
- }
- else
- {
- $w->selectionClear(0,'end');
- $w->selectionSet($el);
- $w->selectionAnchor($el);
- @Selection = ();
- $Prev = $el
- }
- $w->focus if ($w->cget('-takefocus'));
- $w->eventGenerate("<<ListboxSelect>>");
-}
-# Motion --
-#
-# This procedure is called to process mouse motion events while
-# button 1 is down. It may move or extend the selection, depending
-# on the listbox's selection mode.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element under the pointer (must be a number).
-sub Motion
-{
- my $w = shift;
- my $el = shift;
- if (defined($Prev) && $el == $Prev)
- {
- return;
- }
- my $anchor = $w->index('anchor');
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet($el);
- $Prev = $el;
- $w->eventGenerate("<<ListboxSelect>>");
- }
- elsif ($mode eq 'extended')
- {
- my $i = $Prev;
- if (!defined $i || $i eq '')
- {
- $i = $el;
- $w->selectionSet($el);
- }
- if ($w->selectionIncludes('anchor'))
- {
- $w->selectionClear($i,$el);
- $w->selectionSet('anchor',$el)
- }
- else
- {
- $w->selectionClear($i,$el);
- $w->selectionClear('anchor',$el)
- }
- if (!@Selection)
- {
- @Selection = $w->curselection;
- }
- while ($i < $el && $i < $anchor)
- {
- if (Tk::lsearch(\@Selection,$i) >= 0)
- {
- $w->selectionSet($i)
- }
- $i++
- }
- while ($i > $el && $i > $anchor)
- {
- if (Tk::lsearch(\@Selection,$i) >= 0)
- {
- $w->selectionSet($i)
- }
- $i--
- }
- $Prev = $el;
- $w->eventGenerate("<<ListboxSelect>>");
- }
-}
-# BeginExtend --
-#
-# This procedure is typically invoked on shift-button-1 presses. It
-# begins the process of extending a selection in the listbox. Its
-# exact behavior depends on the selection mode currently in effect
-# for the listbox; see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginExtend
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'extended' && $w->selectionIncludes('anchor'))
- {
- $w->Motion($el)
- }
- else
- {
- # No selection yet; simulate the begin-select operation.
- $w->BeginSelect($el);
- }
-}
-# BeginToggle --
-#
-# This procedure is typically invoked on control-button-1 presses. It
-# begins the process of toggling a selection in the listbox. Its
-# exact behavior depends on the selection mode currently in effect
-# for the listbox; see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginToggle
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'extended')
- {
- @Selection = $w->curselection();
- $Prev = $el;
- $w->selectionAnchor($el);
- if ($w->selectionIncludes($el))
- {
- $w->selectionClear($el)
- }
- else
- {
- $w->selectionSet($el)
- }
- $w->eventGenerate("<<ListboxSelect>>");
- }
-}
-# AutoScan --
-# This procedure is invoked when the mouse leaves an entry window
-# with button 1 down. It scrolls the window up, down, left, or
-# right, depending on where the mouse left the window, and reschedules
-# itself as an "after" command so that the window continues to scroll until
-# the mouse moves back into the window or the mouse button is released.
-#
-# Arguments:
-# w - The entry window.
-# x - The x-coordinate of the mouse when it left the window.
-# y - The y-coordinate of the mouse when it left the window.
-sub AutoScan
-{
- my $w = shift;
- return if !Tk::Exists($w);
- my $x = shift;
- my $y = shift;
- if ($y >= $w->height)
- {
- $w->yview('scroll',1,'units')
- }
- elsif ($y < 0)
- {
- $w->yview('scroll',-1,'units')
- }
- elsif ($x >= $w->width)
- {
- $w->xview('scroll',2,'units')
- }
- elsif ($x < 0)
- {
- $w->xview('scroll',-2,'units')
- }
- else
- {
- return;
- }
- $w->Motion($w->index("@" . $x . ',' . $y));
- $w->RepeatId($w->after(50,'AutoScan',$w,$x,$y));
-}
-# UpDown --
-#
-# Moves the location cursor (active element) up or down by one element,
-# and changes the selection if we're in browse or extended selection
-# mode.
-#
-# Arguments:
-# w - The listbox widget.
-# amount - +1 to move down one item, -1 to move back one item.
-sub UpDown
-{
- my $w = shift;
- my $amount = shift;
- $w->activate($w->index('active')+$amount);
- $w->see('active');
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active');
- $w->eventGenerate("<<ListboxSelect>>");
- }
- elsif ($mode eq 'extended')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active');
- $w->selectionAnchor('active');
- $Prev = $w->index('active');
- @Selection = ();
- $w->eventGenerate("<<ListboxSelect>>");
- }
-}
-# ExtendUpDown --
-#
-# Does nothing unless we're in extended selection mode; in this
-# case it moves the location cursor (active element) up or down by
-# one element, and extends the selection to that point.
-#
-# Arguments:
-# w - The listbox widget.
-# amount - +1 to move down one item, -1 to move back one item.
-sub ExtendUpDown
-{
- my $w = shift;
- my $amount = shift;
- if ($w->cget('-selectmode') ne 'extended')
- {
- return;
- }
- my $active = $w->index('active');
- if (!@Selection)
- {
- $w->selectionSet($active);
- @Selection = $w->curselection;
- }
- $w->activate($active + $amount);
- $w->see('active');
- $w->Motion($w->index('active'))
-}
-# DataExtend
-#
-# This procedure is called for key-presses such as Shift-KEndData.
-# If the selection mode isn't multiple or extend then it does nothing.
-# Otherwise it moves the active element to el and, if we're in
-# extended mode, extends the selection to that point.
-#
-# Arguments:
-# w - The listbox widget.
-# el - An integer element number.
-sub DataExtend
-{
- my $w = shift;
- my $el = shift;
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'extended')
- {
- $w->activate($el);
- $w->see($el);
- if ($w->selectionIncludes('anchor'))
- {
- $w->Motion($el)
- }
- }
- elsif ($mode eq 'multiple')
- {
- $w->activate($el);
- $w->see($el)
- }
-}
-# Cancel
-#
-# This procedure is invoked to cancel an extended selection in
-# progress. If there is an extended selection in progress, it
-# restores all of the items between the active one and the anchor
-# to their previous selection state.
-#
-# Arguments:
-# w - The listbox widget.
-sub Cancel
-{
- my $w = shift;
- if ($w->cget('-selectmode') ne 'extended' || !defined $Prev)
- {
- return;
- }
- my $first = $w->index('anchor');
- my $last = $Prev;
- if ($first > $last)
- {
- ($first, $last) = ($last, $first);
- }
- $w->selectionClear($first,$last);
- while ($first <= $last)
- {
- if (Tk::lsearch(\@Selection,$first) >= 0)
- {
- $w->selectionSet($first)
- }
- $first++
- }
- $w->eventGenerate("<<ListboxSelect>>");
-}
-# SelectAll
-#
-# This procedure is invoked to handle the "select all" operation.
-# For single and browse mode, it just selects the active element.
-# Otherwise it selects everything in the widget.
-#
-# Arguments:
-# w - The listbox widget.
-sub SelectAll
-{
- my $w = shift;
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'single' || $mode eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active')
- }
- else
- {
- $w->selectionSet(0,'end')
- }
- $w->eventGenerate("<<ListboxSelect>>");
-}
-
-# Perl/Tk extensions:
-sub SetList
-{
- my $w = shift;
- $w->delete(0,'end');
- $w->insert('end',@_);
-}
-
-sub deleteSelected
-{
- my $w = shift;
- my $i;
- foreach $i (reverse $w->curselection)
- {
- $w->delete($i);
- }
-}
-
-sub clipboardPaste
-{
- my $w = shift;
- my $index = $w->index('active') || $w->index($w->XEvent->xy);
- my $str;
- eval {local $SIG{__DIE__}; $str = $w->clipboardGet };
- return if $@;
- foreach (split("\n",$str))
- {
- $w->insert($index++,$_);
- }
-}
-
-sub getSelected
-{
- my ($w) = @_;
- my $i;
- my (@result) = ();
- foreach $i ($w->curselection)
- {
- push(@result,$w->get($i));
- }
- return (wantarray) ? @result : $result[0];
-}
-
-
-
-1;
-__END__
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Listbox.pod b/Master/tlpkg/tlperl/lib/Tk/Listbox.pod
deleted file mode 100644
index ba00afe3ed9..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Listbox.pod
+++ /dev/null
@@ -1,794 +0,0 @@
-# Copyright (c) 1990 The Regents of the University of California.
-# Copyright (c) 1994-1997 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Listbox - Create and manipulate Listbox widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-I<$listbox> = I<$parent>-E<gt>B<Listbox>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-background> B<-borderwidth> B<-cursor> B<-disabledforeground>
-B<-exportselection> B<-font> B<-foreground> B<-height>
-B<-highlightbackground> B<-highlightcolor> B<-highlightthickness>
-B<-offset> B<-relief> B<-selectbackground> B<-selectborderwidth>
-B<-selectforeground> B<-setgrid> B<-state> B<-takefocus> B<-tile>
-B<-width> B<-xscrollcommand> B<-yscrollcommand>
-
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<activeStyle>
-
-=item Class: B<ActiveStyle>
-
-=item Switch: B<-activestyle>
-
-Specifies the style in which to draw the active element. This must be
-one of B<dotbox> (show a focus ring around the active element), B<none>
-(no special indication of active element) or B<underline> (underline the
-active element). The default is B<underline>.
-
-=item Name: B<height>
-
-=item Class: B<Height>
-
-=item Switch: B<-height>
-
-Specifies the desired height for the window, in lines.
-If zero or less, then the desired height for the window is made just
-large enough to hold all the elements in the listbox.
-
-=item Name: B<listVariable>
-
-=item Class: B<Variable>
-
-=item Switch: B<-listvariable>
-
-I<The following is only partially implemented in Perl/Tk:>
-
-Specifies the reference of a variable. The value of the variable is an array
-to be displayed inside the widget; if the variable value changes
-then the widget will automatically update itself to reflect the new
-value. Attempts to assign a variable with an invalid list value to
-B<-listvariable> will cause an error. Attempts to unset a variable in use
-as a B<-listvariable> will fail but will not generate an error.
-
-=item Name: B<selectMode>
-
-=item Class: B<SelectMode>
-
-=item Switch: B<-selectmode>
-
-Specifies one of several styles for manipulating the selection.
-The value of the option may be arbitrary, but the default bindings
-expect it to be either B<single>, B<browse>, B<multiple>,
-or B<extended>; the default value is B<browse>.
-
-=item Name: B<state>
-
-=item Class: B<State>
-
-=item Switch: B<-state>
-
-Specifies one of two states for the listbox: B<normal> or B<disabled>.
-If the listbox is disabled then items may not be inserted or deleted,
-items are drawn in the B<-disabledforeground> color, and selection
-cannot be modified and is not shown (though selection information is
-retained).
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies the desired width for the window in characters.
-If the font doesn't have a uniform width then the width of the
-character ``0'' is used in translating from character units to
-screen units.
-If zero or less, then the desired width for the window is made just
-large enough to hold all the elements in the listbox.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Listbox> method creates a new window (given by the
-$widget argument) and makes it into a listbox widget.
-Additional
-options, described above, may be specified on the command line
-or in the option database
-to configure aspects of the listbox such as its colors, font,
-text, and relief. The B<listbox> command returns its
-$widget argument. At the time this command is invoked,
-there must not exist a window named $widget, but
-$widget's parent must exist.
-
-A listbox is a widget that displays a list of strings, one per line.
-When first created, a new listbox has no elements.
-Elements may be added or deleted using methods described
-below. In addition, one or more elements may be selected as described
-below.
-If a listbox is exporting its selection (see B<exportSelection>
-option), then it will observe the standard X11 protocols
-for handling the selection.
-Listbox selections are available as type B<STRING>;
-the value of the selection will be the text of the selected elements, with
-newlines separating the elements.
-
-It is not necessary for all the elements to be
-displayed in the listbox window at once; commands described below
-may be used to change the view in the window. Listboxes allow
-scrolling in both directions using the standard B<xScrollCommand>
-and B<yScrollCommand> options.
-They also support scanning, as described below.
-
-=head1 INDICES
-
-Many of the methods for listboxes take one or more indices
-as arguments.
-An index specifies a particular element of the listbox, in any of
-the following ways:
-
-=over 4
-
-=item I<number>
-
-Specifies the element as a numerical index, where 0 corresponds
-to the first element in the listbox.
-
-=item B<active>
-
-Indicates the element that has the location cursor. This element
-will be displayed with an underline when the listbox has the
-keyboard focus, and it is specified with the B<activate>
-method.
-
-=item B<anchor>
-
-Indicates the anchor point for the selection, which is set with the
-B<selection anchor> method.
-
-=item B<end>
-
-Indicates the end of the listbox.
-For most commands this refers to the last element in the listbox,
-but for a few commands such as B<index> and B<insert>
-it refers to the element just after the last one.
-
-=item B<@>I<x>B<,>I<y>
-
-Indicates the element that covers the point in the listbox window
-specified by I<x> and I<y> (in pixel coordinates). If no
-element covers that point, then the closest element to that
-point is used.
-
-=back
-
-In the method descriptions below, arguments named I<index>,
-I<first>, and I<last> always contain text indices in one of
-the above forms.
-
-=head1 WIDGET METHODS
-
-The B<Listbox> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-The following additional methods are available for listbox widgets:
-
-=over 4
-
-=item I<$listbox>-E<gt>B<activate>(I<index>)
-
-Sets the active element to the one indicated by I<index>.
-If I<index> is outside the range of elements in the listbox
-then the closest element is activated.
-The active element is drawn with an underline when the widget
-has the input focus, and its index may be retrieved with the
-index B<active>.
-
-=item I<$listbox>-E<gt>B<bbox>(I<index>)
-
-Returns a list of four numbers describing the bounding box of
-the text in the element given by I<index>.
-The first two elements of the list give the x and y coordinates
-of the upper-left corner of the screen area covered by the text
-(specified in pixels relative to the widget) and the last two
-elements give the width and height of the area, in pixels.
-If no part of the element given by I<index> is visible on the
-screen,
-or if I<index> refers to a non-existent element,
-then the result is an empty string; if the element is
-partially visible, the result gives the full area of the element,
-including any parts that are not visible.
-
-=item I<$listbox>-E<gt>B<curselection>
-
-Returns a list containing the numerical indices of
-all of the elements in the listbox that are currently selected.
-If there are no elements selected in the listbox then an empty
-string is returned.
-
-=item I<$listbox>-E<gt>B<delete>(I<first, >?I<last>?)
-
-Deletes one or more elements of the listbox. I<First> and I<last>
-are indices specifying the first and last elements in the range
-to delete. If I<last> isn't specified it defaults to
-I<first>, i.e. a single element is deleted.
-
-=item I<$listbox>-E<gt>B<get>(I<first, >?I<last>?)
-
-If I<last> is omitted, returns the contents of the listbox
-element indicated by I<first>,
-or an empty string if I<first> refers to a non-existent element.
-If I<last> is specified, the command returns a list whose elements
-are all of the listbox elements between I<first> and I<last>,
-inclusive.
-Both I<first> and I<last> may have any of the standard
-forms for indices.
-
-=item I<$listbox>-E<gt>B<index>(I<index>)
-
-Returns the integer index value that corresponds to I<index>.
-If I<index> is B<end> the return value is a count of the number
-of elements in the listbox (not the index of the last element).
-
-=item I<$listbox>-E<gt>B<insert>(I<index, >?I<element, element, ...>?)
-
-Inserts zero or more new elements in the list just before the
-element given by I<index>. If I<index> is specified as
-B<end> then the new elements are added to the end of the
-list. Returns an empty string.
-
-=item I<$listbox>-E<gt>B<itemcget>(I<index>, I<option>)
-
-Returns the current value of the item configuration option given by
-I<option>. Option may have any of the values accepted by the listbox
-B<itemconfigure> command.
-
-=item I<$listbox>-E<gt>B<itemconfigure>(I<index, >?I<option, value,
-option, value, ...>?)
-
-Query or modify the configuration options of an item in the listbox.
-If no option is specified, returns a list describing all of the
-available options for the item (see Tk_ConfigureInfo for information
-on the format of this list). If option is specified with no value,
-then the command returns a list describing the one named option (this
-list will be identical to the corresponding sublist of the value
-returned if no option is specified). If one or more option-value pairs
-are specified, then the command modifies the given widget option(s) to
-have the given value(s); in this case the command returns an empty
-string. The following options are currently supported for items:
-
-=over
-
-=item B<-background> =E<gt> I<color>
-
-I<Color> specifies the background color to use when displaying the
-item. It may have any of the forms accepted by Tk_GetColor.
-
-=item B<-foreground> =E<gt> I<color>
-
-I<Color> specifies the foreground color to use when displaying the
-item. It may have any of the forms accepted by Tk_GetColor.
-
-=item B<-selectbackground> =E<gt> I<color>
-
-I<Color> specifies the background color to use when displaying the
-item while it is selected. It may have any of the forms accepted by
-Tk_GetColor.
-
-=item B<-selectforeground> =E<gt> I<color>
-
-I<Color> specifies the foreground color to use when displaying the
-item while it is selected. It may have any of the forms accepted by
-Tk_GetColor.
-
-=back
-
-=item I<$listbox>-E<gt>B<nearest>(I<y>)
-
-Given a y-coordinate within the listbox window, this command returns
-the index of the (visible) listbox element nearest to that y-coordinate.
-
-=item I<$listbox>-E<gt>B<scan>(I<option, args>)
-
-This command is used to implement scanning on listboxes. It has
-two forms, depending on I<option>:
-
-=over 8
-
-=item I<$listbox>-E<gt>B<scanMark>(I<x, y>)
-
-Records I<x> and I<y> and the current view in the listbox
-window; used in conjunction with later B<scan dragto> commands.
-Typically this command is associated with a mouse button press in
-the widget. It returns an empty string.
-
-=item I<$listbox>-E<gt>B<scanDragto>(I<x, y>.)
-
-This command computes the difference between its I<x> and I<y>
-arguments and the I<x> and I<y> arguments to the last
-B<scan mark> command for the widget.
-It then adjusts the view by 10 times the
-difference in coordinates. This command is typically associated
-with mouse motion events in the widget, to produce the effect of
-dragging the list at high speed through the window. The return
-value is an empty string.
-
-=back
-
-=item I<$listbox>-E<gt>B<see>(I<index>)
-
-Adjust the view in the listbox so that the element given by I<index>
-is visible.
-If the element is already visible then the command has no effect;
-if the element is near one edge of the window then the listbox
-scrolls to bring the element into view at the edge; otherwise
-the listbox scrolls to center the element.
-
-=item I<$listbox>-E<gt>B<selection>(I<option, arg>)
-
-This command is used to adjust the selection within a listbox. It
-has several forms, depending on I<option>:
-
-=over 8
-
-=item I<$listbox>-E<gt>B<selectionAnchor>(I<index>)
-
-Sets the selection anchor to the element given by I<index>.
-If I<index> refers to a non-existent element, then the closest
-element is used.
-The selection anchor is the end of the selection that is fixed
-while dragging out a selection with the mouse.
-The index B<anchor> may be used to refer to the anchor
-element.
-
-=item I<$listbox>-E<gt>B<selectionClear>(I<first, >?I<last>?)
-
-If any of the elements between I<first> and I<last>
-(inclusive) are selected, they are deselected.
-The selection state is not changed for elements outside
-this range.
-
-=item I<$listbox>-E<gt>B<selectionIncludes>(I<index>)
-
-Returns 1 if the element indicated by I<index> is currently
-selected, 0 if it isn't.
-
-=item I<$listbox>-E<gt>B<selectionSet>(I<first, >?I<last>?)
-
-Selects all of the elements in the range between
-I<first> and I<last>, inclusive, without affecting
-the selection state of elements outside that range.
-
-=back
-
-=item I<$listbox>-E<gt>B<size>
-
-Returns a decimal string indicating the total number of elements
-in the listbox.
-
-=item I<$listbox>-E<gt>B<xview>(I<args>)
-
-This command is used to query and change the horizontal position of the
-information in the widget's window. It can take any of the following
-forms:
-
-=over 8
-
-=item I<$listbox>-E<gt>B<xview>
-
-Returns a list containing two elements.
-Each element is a real fraction between 0 and 1; together they describe
-the horizontal span that is visible in the window.
-For example, if the first element is .2 and the second element is .6,
-20% of the listbox's text is off-screen to the left, the middle 40% is visible
-in the window, and 40% of the text is off-screen to the right.
-These are the same values passed to scrollbars via the B<-xscrollcommand>
-option.
-
-=item I<$listbox>-E<gt>B<xview>(I<index>)
-
-Adjusts the view in the window so that the character position given by
-I<index> is displayed at the left edge of the window.
-Character positions are defined by the width of the character B<0>.
-
-=item I<$listbox>-E<gt>B<xviewMoveto>( I<fraction> );
-
-Adjusts the view in the window so that I<fraction> of the
-total width of the listbox text is off-screen to the left.
-I<fraction> must be a fraction between 0 and 1.
-
-=item I<$listbox>-E<gt>B<xviewScroll>( I<number, what> );
-
-This command shifts the view in the window left or right according to
-I<number> and I<what>.
-I<Number> must be an integer.
-I<What> must be either B<units> or B<pages> or an abbreviation
-of one of these.
-If I<what> is B<units>, the view adjusts left or right by
-I<number> character units (the width of the B<0> character)
-on the display; if it is B<pages> then the view adjusts by
-I<number> screenfuls.
-If I<number> is negative then characters farther to the left
-become visible; if it is positive then characters farther to the right
-become visible.
-
-=back
-
-=item I<$listbox>-E<gt>B<yview>(I<?args>?)
-
-This command is used to query and change the vertical position of the
-text in the widget's window.
-It can take any of the following forms:
-
-=over 8
-
-=item I<$listbox>-E<gt>B<yview>
-
-Returns a list containing two elements, both of which are real fractions
-between 0 and 1.
-The first element gives the position of the listbox element at the
-top of the window, relative to the listbox as a whole (0.5 means
-it is halfway through the listbox, for example).
-The second element gives the position of the listbox element just after
-the last one in the window, relative to the listbox as a whole.
-These are the same values passed to scrollbars via the B<-yscrollcommand>
-option.
-
-=item I<$listbox>-E<gt>B<yview>(I<index>)
-
-Adjusts the view in the window so that the element given by
-I<index> is displayed at the top of the window.
-
-=item I<$listbox>-E<gt>B<yviewMoveto>( I<fraction> );
-
-Adjusts the view in the window so that the element given by I<fraction>
-appears at the top of the window.
-I<Fraction> is a fraction between 0 and 1; 0 indicates the first
-element in the listbox, 0.33 indicates the element one-third the
-way through the listbox, and so on.
-
-=item I<$listbox>-E<gt>B<yviewScroll>( I<number, what> );
-
-This command adjusts the view in the window up or down according to
-I<number> and I<what>.
-I<Number> must be an integer.
-I<What> must be either B<units> or B<pages>.
-If I<what> is B<units>, the view adjusts up or down by
-I<number> lines; if it is B<pages> then
-the view adjusts by I<number> screenfuls.
-If I<number> is negative then earlier elements
-become visible; if it is positive then later elements
-become visible.
-
-=back
-
-=back
-
-=head1 DEFAULT BINDINGS
-
-Tk automatically creates class bindings for listboxes that give them
-Motif-like behavior. Much of the behavior of a listbox is determined
-by its B<selectMode> option, which selects one of four ways
-of dealing with the selection.
-
-If the selection mode is B<single> or B<browse>, at most one
-element can be selected in the listbox at once.
-In both modes, clicking button 1 on an element selects
-it and deselects any other selected item.
-In B<browse> mode it is also possible to drag the selection
-with button 1.
-
-If the selection mode is B<multiple> or B<extended>,
-any number of elements may be selected at once, including discontiguous
-ranges. In B<multiple> mode, clicking button 1 on an element
-toggles its selection state without affecting any other elements.
-In B<extended> mode, pressing button 1 on an element selects
-it, deselects everything else, and sets the anchor to the element
-under the mouse; dragging the mouse with button 1
-down extends the selection to include all the elements between
-the anchor and the element under the mouse, inclusive.
-
-Most people will probably want to use B<browse> mode for
-single selections and B<extended> mode for multiple selections;
-the other modes appear to be useful only in special situations.
-
-Any time the selection changes in the listbox, the virtual event
-B<<< <<ListboxSelect>> >>> will be generated. It is easiest to bind to this
-event to be made aware of any changes to listbox selection.
-
-
-In addition to the above behavior, the following additional behavior
-is defined by the default bindings:
-
-=over 4
-
-=item [1]
-
-In B<extended> mode, the selected range can be adjusted by pressing
-button 1 with the Shift key down: this modifies the selection to
-consist of the elements between the anchor and the element under
-the mouse, inclusive.
-The un-anchored end of this new selection can also be dragged with
-the button down.
-
-=item [2]
-
-In B<extended> mode, pressing button 1 with the Control key down
-starts a toggle operation: the anchor is set to the element under
-the mouse, and its selection state is reversed. The selection state
-of other elements isn't changed.
-If the mouse is dragged with button 1 down, then the selection state
-of all elements between the anchor and the element under the mouse
-is set to match that of the anchor element; the selection state of
-all other elements remains what it was before the toggle operation
-began.
-
-=item [3]
-
-If the mouse leaves the listbox window with button 1 down, the window
-scrolls away from the mouse, making information visible that used
-to be off-screen on the side of the mouse.
-The scrolling continues until the mouse re-enters the window, the
-button is released, or the end of the listbox is reached.
-
-=item [4]
-
-Mouse button 2 may be used for scanning.
-If it is pressed and dragged over the listbox, the contents of
-the listbox drag at high speed in the direction the mouse moves.
-
-=item [5]
-
-If the Up or Down key is pressed, the location cursor (active
-element) moves up or down one element.
-If the selection mode is B<browse> or B<extended> then the
-new active element is also selected and all other elements are
-deselected.
-In B<extended> mode the new active element becomes the
-selection anchor.
-
-=item [6]
-
-In B<extended> mode, Shift-Up and Shift-Down move the location
-cursor (active element) up or down one element and also extend
-the selection to that element in a fashion similar to dragging
-with mouse button 1.
-
-=item [7]
-
-The Left and Right keys scroll the listbox view left and right
-by the width of the character B<0>.
-Control-Left and Control-Right scroll the listbox view left and
-right by the width of the window.
-Control-Prior and Control-Next also scroll left and right by
-the width of the window.
-
-=item [8]
-
-The Prior and Next keys scroll the listbox view up and down
-by one page (the height of the window).
-
-=item [9]
-
-The Home and End keys scroll the listbox horizontally to
-the left and right edges, respectively.
-
-=item [10]
-
-Control-Home sets the location cursor to the the first element in
-the listbox, selects that element, and deselects everything else
-in the listbox.
-
-=item [11]
-
-Control-End sets the location cursor to the the last element in
-the listbox, selects that element, and deselects everything else
-in the listbox.
-
-=item [12]
-
-In B<extended> mode, Control-Shift-Home extends the selection
-to the first element in the listbox and Control-Shift-End extends
-the selection to the last element.
-
-=item [13]
-
-In B<multiple> mode, Control-Shift-Home moves the location cursor
-to the first element in the listbox and Control-Shift-End moves
-the location cursor to the last element.
-
-=item [14]
-
-The space and Select keys make a selection at the location cursor
-(active element) just as if mouse button 1 had been pressed over
-this element.
-
-=item [15]
-
-In B<extended> mode, Control-Shift-space and Shift-Select
-extend the selection to the active element just as if button 1
-had been pressed with the Shift key down.
-
-=item [16]
-
-In B<extended> mode, the Escape key cancels the most recent
-selection and restores all the elements in the selected range
-to their previous selection state.
-
-=item [17]
-
-Control-slash selects everything in the widget, except in
-B<single> and B<browse> modes, in which case it selects
-the active element and deselects everything else.
-
-=item [18]
-
-Control-backslash deselects everything in the widget, except in
-B<browse> mode where it has no effect.
-
-=item [19]
-
-The F16 key (labelled Copy on many Sun workstations) or Meta-w
-copies the selection in the widget to the clipboard, if there is
-a selection.
-
-The behavior of listboxes can be changed by defining new bindings for
-individual widgets or by redefining the class bindings.
-
-=back
-
-=head1 TIED INTERFACE
-
-The Tk::Listbox widget can also be tied to a scalar or array variable, with
-different behaviour depending on the variable type, with the following
-tie commands:
-
- use Tk;
-
- my ( @array, $scalar, $other );
- my %options = ( ReturnType => "index" );
-
- my $MW = MainWindow->new();
- my $lbox = $MW->Listbox()->pack();
-
- my @list = ( "a", "b", "c", "d", "e", "f" );
- $lbox->insert('end', @list );
-
- tie @array, "Tk::Listbox", $lbox
- tie $scalar, "Tk::Listbox", $lbox;
- tie $other, "Tk::Listbox", $lbox, %options;
-
-currently only one modifier is implemented, a 3 way flag for tied scalars
-"ReturnType" which can have values "element", "index" or "both". The default
-is "element".
-
-=over 4
-
-=item Tied Arrays
-
-If you tie an array to the Listbox you can manipulate the items currently
-contained by the box in the same manner as a normal array, e.g.
-
- print @array;
- push(@array, @list);
- my $popped = pop(@array);
- my $shifted = shift(@array);
- unshift(@array, @list);
- delete $array[$index];
- print $string if exists $array[$i];
- @array = ();
- splice @array, $offset, $length, @list
-
-The delete function is implemented slightly differently from the standard
-array implementation. Instead of setting the element at that index to undef
-it instead physically removes it from the Listbox. This has the effect of
-changing the array indices, so for instance if you had a list on non-continuous
-indices you wish to remove from the Listbox you should reverse sort the list
-and then apply the delete function, e.g.
-
- my @list = ( 1, 2, 4, 12, 20 );
- my @remove = reverse sort { $a <=> $b } @list;
- delete @array[@remove];
-
-would safely remove indices 20, 12, 4, 2 and 1 from the Listbox without
-problems. It should also be noted that a similar warning applies to the
-splice function (which would normally be used in this context to perform
-the same job).
-
-
-=item Tied Scalars
-
-Unlike tied arrays, if you tie a scalar to the Listbox you can retrieve the
-currently selected elements in the box as an array referenced by the scalar,
-for instance
-
- my @list = ( "a", "b", "c", "d", "e", "f" );
- $lbox->insert('end', sort @list );
- $lbox->selectionSet(1);
-
-inserts @list as elements in an already existing listbox and selects the
-element at index 1, which is "b". If we then
-
- print @$selected;
-
-this will return the currently selected elements, in this case "b".
-
-However, if the "ReturnType" arguement is passed when tying the Listbox to the
-scalar with value "index" then the indices of the selected elements will be
-returned instead of the elements themselves, ie in this case "1". This can be
-useful when manipulating both contents and selected elements in the Listbox at
-the same time.
-
-Importantly, if a value "both" is given the scalar will not be tied to an
-array, but instead to a hash, with keys being the indices and values being
-the elements at those indices
-
-You can also manipulate the selected items using the scalar. Equating the
-scalar to an array reference will select any elements that match elements
-in the Listbox, non-matching array items are ignored, e.g.
-
- my @list = ( "a", "b", "c", "d", "e", "f" );
- $lbox->insert('end', sort @list );
- $lbox->selectionSet(1);
-
-would insert the array @list into an already existing Listbox and select
-element at index 1, i.e. "b"
-
- @array = ( "a", "b", "f" );
- $selected = \@array;
-
-would select elements "a", "b" and "f" in the Listbox.
-
-Again, if the "index" we indicate we want to use indices in the options hash
-then the indices are use instead of elements, e.g.
-
- @array = ( 0, 1, 5 );
- $selected = \@array;
-
-would have the same effect, selecting elements "a", "b" and "f" if the
-$selected variable was tied with %options = ( ReturnType => "index" ).
-
-If we are returning "both", i.e. the tied scalar points to a hash, both key and
-value must match, e.g.
-
- %hash = ( 0 => "a", 1 => "b", 5 => "f" );
- $selected = \%hash;
-
-would have the same effect as the previous examples.
-
-It should be noted that, despite being a reference to an array (or possibly a has), you still can not copy the tied variable without it being untied, instead
-you must pass a reference to the tied scalar between subroutines.
-
-=back
-
-=head1 KEYWORDS
-
-listbox, widget, tied
-
-=head1 SEE ALSO
-
-L<Tk::HList>, L<Tk::TextList>.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/MMtry.pm b/Master/tlpkg/tlperl/lib/Tk/MMtry.pm
deleted file mode 100644
index e112ebdc7de..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/MMtry.pm
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::MMtry;
-use Config;
-require Exporter;
-
-use vars qw($VERSION @EXPORT $VERBOSE);
-#$VERSION = sprintf '4.%03d', q$Revision: #9 $ =~ /\D(\d+)\s*$/;
-$VERSION = '4.011';
-
-use base qw(Exporter);
-@EXPORT = qw(try_compile try_run);
-use strict;
-use File::Basename;
-use File::Spec;
-
-my $stderr_too = ($^O eq 'MSWin32') ? '' : '2>&1';
-
-sub try_compile
-{
- my ($file,$inc,$lib,$def) = @_;
- $inc = [] unless $inc;
- $lib = [] unless $lib;
- $def = [] unless $def;
- my $stderr_too = $VERBOSE ? '' : $stderr_too;
- my $out = basename($file,'.c').$Config{'exe_ext'};
- warn "Test Compiling $file\n";
- my $msgs = `$Config{'cc'} -o $out $Config{'ccflags'} @$inc $file $Config{ldflags} @$lib @$def $stderr_too`;
- my $ok = ($? == 0);
- warn "$msgs\n" if $VERBOSE && $msgs;
- unlink($out) if (-f $out);
- return $ok;
-}
-
-sub try_run
-{
- my ($file,$inc,$lib,$def) = @_;
- $inc = [] unless $inc;
- $lib = [] unless $lib;
- $def = [] unless $def;
- my $stderr_too = $VERBOSE ? '' : $stderr_too;
- my $out = basename($file,'.c').$Config{'exe_ext'};
- warn "Test Compile/Run $file\n";
- my $cmdline = "$Config{'cc'} -o $out $Config{'ccflags'} @$inc $file $Config{ldflags} @$lib @$def";
- my $msgs = `$cmdline $stderr_too`;
- my $ok = ($? == 0);
- warn "$cmdline:\n$msgs\n" if $VERBOSE && $msgs;
- if ($ok)
- {
- my $path = File::Spec->rel2abs($out);
- $msgs = `$path $stderr_too`;
- $ok = ($? == 0);
- warn "$path:$msgs\n" if $VERBOSE && $msgs;
- }
- unlink($out) if (-f $out);
- return $ok;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/MMutil.pm b/Master/tlpkg/tlperl/lib/Tk/MMutil.pm
deleted file mode 100644
index df5e9a26644..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/MMutil.pm
+++ /dev/null
@@ -1,603 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::MMutil;
-use ExtUtils::MakeMaker;
-use Cwd;
-use Config;
-use Carp;
-use File::Basename;
-
-use vars qw($VERSION);
-$VERSION = '4.026';
-
-# warn __FILE__." $VERSION\n";
-
-use Tk::MakeDepend;
-
-use Tk::Config qw(!$VERSION);
-use vars qw($IsWin32);
-
-*IsWin32 = \$main::IsWin32;
-$IsWin32 = ($^O eq 'MSWin32' || $Config{'ccflags'} =~ /-D_?WIN32_?/)
- unless defined $IsWin32;
-
-@MYEXPORT = qw(pasthru perldepend cflags const_config constants installbin c_o xs_o makefile manifypods);
-
-sub arch_prune
-{
- my $hash = shift;
- foreach (keys %$hash)
- {
- if ($win_arch eq 'x')
- {
- delete $hash->{$_} if /Win[A-Z0-9]/ or /OS2/ or /ImgUtil/ or /^x/;
- }
- elsif ($win_arch eq 'open32')
- {
- delete $hash->{$_} if /Unix|Mwm/ and not /tclUnix/;
- delete $hash->{$_} if /winMain|dllMain/;
- }
- elsif ($win_arch eq 'pm')
- {
- delete $hash->{$_}
- if /Unix|Mwm/ and not
- /tclUnix|Unix(3d|Button|Dialog|Color|Embed|Focus|Font|Menu|Scrlbr|Send|Int\.|Scale)/;
- delete $hash->{$_} if /os2Main|dllMain|tkOS2Dll|^x(colors\.c|gc\.)/;
- delete $hash->{$_} if /ImgUtil|tkWin[A-Z0-9]/ and not /OS2/;
- }
- elsif ($win_arch eq 'MSWin32')
- {
- delete $hash->{$_} if /Mwm/ and not /tclUnix/;
- delete $hash->{$_} if /winMain|dllMain/;
- # delete $hash->{$_} if /^Xrm/;
- }
- }
-}
-
-sub mTk_postamble
-{
- my ($self) = @_;
- my $dep = "config :: \$(C_FILES) \$(H_FILES)\n\t$self->{NOECHO}\$(NOOP)\n";
- my $mTk = $self->{'MTK'};
- $dep .= "# Begin Munging dependencies\n";
- foreach my $file (sort keys %$mTk)
- {
- $dep .= "$file : ".$mTk->{$file}." \$(TKDIR)/pTk/Tcl-pTk\n";
- $dep .= "\t\$(PERL) \$(TKDIR)/pTk/Tcl-pTk ".$mTk->{$file}." $file\n";
- }
- $dep .= "# End Munging dependencies\n\n";
- return $dep;
-}
-
-sub mTk_CHO
-{
- my $self = shift;
- my $mTk = shift;
- my $exc = shift;
- my %c;
- my %h;
- foreach (@{$self->{H}}) { $h{$_} = 1 }
- foreach (@{$self->{C}}) { $c{$_} = 1 }
- foreach (keys %$mTk)
- {
- if (/\.c$/)
- {
- $c{$_} = 1;
- }
- elsif (/\.h$/)
- {
- $h{$_} = 1;
- }
- }
- foreach (keys %$exc)
- {
- if (/\.c$/)
- {
- delete $c{$_};
- }
- elsif (/\.h$/)
- {
- delete $h{$_};
- }
- }
- while (@_)
- {
- my $name = shift;
- cluck("No $name") unless (exists $c{$name});
- delete $c{$name}
- }
- arch_prune(\%h);
- arch_prune(\%c);
- $self->{'H'} = [sort keys %h];
- $self->{'C'} = [sort keys %c];
- my(@o_files) = @{$self->{C}};
- $self->{O_FILES} = [grep s/\.c(pp|xx|c)?$/$self->{OBJ_EXT}/i, @o_files] ;
- $self->{'MTK'} = $mTk;
- my $tk = installed_tk();
- my $perl = $^X;
- foreach my $file (sort keys %$mTk)
- {
- unless (-f $file && -M $file < -M $mTk->{$file})
- {
- warn "Extracting $file\n";
- my @cmd = ($perl,"$tk/pTk/Tcl-pTk",$mTk->{$file},$file);
- system @cmd;
- die "The command '@cmd' failed with $?" if $? != 0;
- }
- }
-}
-
-my %visited;
-
-sub abspath
-{
- my $dir = shift;
- my $here = getcwd() || die "Cannot get current directory:$!";
- if (chdir($dir))
- {
- $dir = getcwd();
- chdir($here) || die "Cannot cd back to $here:$!";
- }
- return $dir;
-}
-
-sub relpath
-{
- my ($path,$dir) = @_;
- unless (defined $dir)
- {
- $dir = (-d $path) ? $path : dirname($path);
- }
- if (defined $dir and -d $dir)
- {
- if ($path =~ m#^\Q$dir\E([/\\]?.*)$#)
- {
- my $base = $1;
- my $here = getcwd;
- if ($here =~ m#^\Q$dir\E([/\\]?.*)#)
- {
- my $depth = reverse($1);
- if ($depth)
- {
- $depth =~ s,[^/\\]+,..,g;
- }
- else
- {
- $depth = '.' ;
- }
- $depth =~ s,[/\\]+$,,;
- $base =~ s,^[/\\]+,,;
- $depth .= "/$base" if ($base);
- if (-e $depth)
- {
- # print "$path is $depth from $here\n";
- return $depth;
- }
- else
- {
- warn "Cannot find $depth\n";
- }
- }
- else
- {
- unless(exists $visited{$here})
- {
- $visited{$here} = 1;
- warn "$here does not start with $dir\n";
- warn "i.e. building outside Tk itself\n";
- }
- }
- }
- else
- {
- die "'$path' not under '$dir'\n";
- }
- }
- else
- {
- die "Cannot get directory for $path\n";
- }
- return $path;
-}
-
-use strict;
-
-sub upgrade_pic
-{
- my $flags = '';
- die 'upgrade_pic is obsolete';
- return $flags;
-}
-
-sub pasthru
-{
- my $self = shift;
- my $str = $self->MM::pasthru;
- if ($str =~ s/^\s+INC=.*\n//m)
- {
- $str = "# - Do NOT pasthru INC for Tk - it is computed by subdir\n$str"
- }
- if ($str =~ s/\bLIB="\$\(LIB\)"//)
- {
- $str = qq[# - Drop LIB="\$(LIB)" - not used\n$str];
- }
- $str = "#Tk::MMutil pasthru\n$str";
- return $str;
-}
-
-sub perldepend
-{
- my $self = shift;
- my $str = $self->MM::perldepend;
- my $name;
- my %c;
- foreach my $file (@{$self->{'C'}})
- {
- $c{$file} = 1;
- }
- foreach my $file (keys %{$self->{'XS'}})
- {
- $c{$file} = 1;
- delete $c{$self->{'XS'}{$file}};
- }
- my @files = grep(-f $_,sort(keys %c));
- if (@files)
- {
- my $tk = installed_tk();
- my @inc = split(/\s+/,$self->{'INC'});
- my @def = split(/\s+/,$self->{'DEFINE'});
- push(@def,qw(-DWIN32 -D__WIN32__)) if ($IsWin32);
- if ($^O eq 'cygwin')
- {
- push(@def,qw(-D__CYGWIN__));
- if ($win_arch eq 'MSWin32')
- {
- push(@def,qw(-D__WIN32__)) unless $self->{'DEFINE'} =~ /-D__WIN32__/;
- push(@def,qw(-DWIN32)) if $self->{'NAME'} eq 'Tk::pTk';
- push(@def,qw(-dWINARCH_MSWIN32));
- }
- elsif ($win_arch eq 'x')
- {
- push(@def,qw(-U_WIN32));
- push(@def,qw(-DWINARCH_X));
- }
- }
- foreach (@inc)
- {
- s/\$\(TKDIR\)/$tk/g;
- warn "Odd:$_" if /\$\(/;
- }
- $str .= Tk::MakeDepend::command_line(@inc,@def,@files) unless ($ENV{'TKNOMAKEDEPEND'});
- }
- return $str;
-}
-
-sub const_config
-{
- my $self = shift;
- my $name;
- foreach $name (grep /(%|\.(old|bak|q4|orig|rej))$/,keys %{$self->{PM}})
- {
- delete $self->{PM}->{$name};
- }
- my $flags = $self->{'CCCDLFLAGS'};
- $flags =~ s/(-[fK]?\s*)pic\b/${1}PIC/;
- $self->{'CCCDLFLAGS'} = $flags;
- if ($^O eq 'MSWin32' && $Config{'ccflags'} =~ /-DPERL_OBJECT/)
- {
- $self->{'LDFLAGS'} =~ s/-(debug|pdb:\w+)\s+//g;
- $self->{'LDDLFLAGS'} =~ s/-(debug|pdb:\w+)\s+//g;
- }
- elsif ($^O eq 'darwin' )
- {
- $self->{'LDDLFLAGS'} =~ s/-flat_namespace//;
- $self->{'LDDLFLAGS'} =~ s/-undefined\s+suppress//;
-## These lines seem to be not necessary for Panther, both
-## builds with and without shared libperl, and seem to
-## be dangerous for other MacOSX versions using perl builds
-## without shared libperl, so disabled completely.
-## See http://rt.cpan.org/Public/Bug/Display.html?id=39593
-# if ( -e "$Config{'archlib'}/CORE/$Config{'libperl'}" ) {
-# $self->{'LDDLFLAGS'} .= " -L\${PERL_ARCHLIB}/CORE -lperl ";
-# }
-# elsif ( -e "/System/Library/Perl/darwin/CORE/libperl.dylib" ) {
-# $self->{'LDDLFLAGS'} .= " -L/System/Library/Perl/darwin/CORE -lperl ";
-# }
-# else {
-# warn "Can't find libperl.dylib";
-# }
- $self->{'LDFLAGS'} =~ s/-flat_namespace//;
- $self->{'LDFLAGS'} =~ s/-undefined\s+suppress//;
- } elsif ($^O =~ /(openbsd)/i)
- {
- # -Bforcearchive is bad news for Tk - we don't want all of libpTk.a in all .so-s.
- $self->{'LDDLFLAGS'} =~ s/-Bforcearchive\s*//g;
- }
- return $self->MM::const_config;
-}
-
-sub constants
-{
- my $self = shift;
- local $_ = $self->MM::constants;
- s/(\.SUFFIXES)/$1:\n$1/;
- $_ .= "\nGCCOPT = $Tk::Config::gccopt\n";
- if ($IsWin32)
- {
- }
- $_;
-}
-
-sub cflags
-{
- my $self = shift;
- local $_ = $self->MM::cflags;
- if (0 && $IsWin32)
- {
- if ($Config::Config{cc} =~ /^bcc/i) {
- # s/(CCFLAGS\s*=)/$1/;
- }
- else {
- s/(CCFLAGS\s*=)/$1 \$(cflags) \$(cvarsdll)/;
- s/(OPTIMIZE\s*=).*/$1 \$(cdebug)/;
- }
- }
- $_;
-}
-
-sub c_o
-{
- my $self = shift;
- local $_ = $self->MM::c_o;
- s/\$\(DEFINE\)/\$(DEFINE) \$(GCCOPT)/g;
- $_;
-}
-
-sub xs_o
-{
- my $self = shift;
- local $_ = $self->MM::xs_o;
- s/\$\(DEFINE\)/\$(DEFINE) \$(GCCOPT)/g;
- $_;
-}
-
-sub manifypods
-{
- my $self = shift;
- # Maybe always call UNIX version - we HTMLize them later
- local $_ = $self->MM::manifypods;
- if ($] >= 5.00565)
- {
- s/(POD2MAN_EXE.*pod2man.*)/$1 --center "perl\/Tk Documentation" --release "Tk\$(VERSION)"/;
- }
- elsif ($] >= 5.003)
- {
- s/(POD2MAN_EXE.*pod2man.*)/$1 -center "perl\/Tk Documentation" -release "Tk\$(VERSION)"/;
- }
- else
- {
- s/(POD2MAN_EXE.*pod2man.*)/$1 -center \\"perl\/Tk Documentation\\" -release \\"Tk\$(VERSION)\\"/;
- }
- s/\bpod::/Tk::/mg;
- s/\bpTk:://mg;
- $_;
-}
-
-sub findINC
-{
- my $file = shift;
- my $dir;
- foreach $dir (@INC)
- {
- my $try = "$dir/$file";
- return $try if (-f $try);
- }
- die "Cannot find $file in \@INC\n";
-}
-
-
-sub makefile
-{
- my $self = shift;
- my $str = $self->MM::makefile;
- my $mm = findINC('Tk/MMutil.pm');
- my $cf = findINC('Tk/Config.pm');
- $str =~ s/(\$\(CONFIGDEP\))/$1 $cf $mm/;
- $str =~ s/\$\(OBJECT\)\s*:.*\n//;
- return $str;
-}
-
-sub installed_tk
-{
- my $tk;
- my $dir;
- foreach $dir (@INC)
- {
- if (-f "$dir/tkGlue.h")
- {
- $tk = relpath($dir);
- last;
- }
- my $try = "$dir/Tk";
- if (-f "$try/tkGlue.h")
- {
- $tk = relpath($try,$dir);
- last;
- }
- }
- die "Cannot find perl/Tk include files\n" unless (defined $tk);
- $tk =~ s,^(\./)+,,;
- return $tk;
-}
-
-sub installbin
-{
- my ($self) = @_;
- my $str = $self->MM::installbin;
- my $prog = 'perl'; # $self->{'MAP_TARGET'} || 'perl';
- my $inc = findINC('Tk/MMutil.pm');
- $inc =~ s,/Tk/MMutil.pm$,,;
- $inc = relpath($inc);
- $str =~ s/^\tcp\s/\t\$(PERL) -I$inc -MTk::install -e installbin $prog /mg;
- return $str;
-}
-
-sub findpTk
-{
- my $ptk;
- my $dir;
- foreach $dir (map(abspath($_),@_),@INC)
- {
- my $try = "$dir/pTk";
- if (-d $try && (-f "$try/Lang.h" || -f "$try/libpTk\$(LIB_EXT)"))
- {
- $ptk = relpath($try,$dir);
- last;
- }
- }
- confess "Cannot locate pTk\n" unless (defined $ptk);
- return $ptk;
-}
-
-sub find_subdir
-{
- my %dir;
- opendir(DIR,'.') || die "Cannot opendir:$!";
- foreach my $dir (readdir(DIR))
- {
- next if $dir =~ /^\.\.?$/;
- next if -l $dir;
- next unless -d $dir;
- if (-f "$dir/Makefile.PL")
- {
- my $exc = ($win_arch eq 'x') ? 'Unix' : 'Win';
- if (-f "$dir/Not${exc}.exc")
- {
- warn "Skip $dir on $win_arch\n"
- }
- else
- {
- $dir{$dir} = 1
- }
- }
- }
- closedir(DIR);
- return \%dir;
-}
-
-sub TkExtMakefile
-{
- my (%att) = @_;
- if ($Config{'ccflags'} =~ /-DPERL_OBJECT/)
- {
- $att{'CAPI'} = 'TRUE' unless exists $att{'CAPI'};
- }
- unless (exists $att{'DIR'})
- {
- my $dir = find_subdir();
- $att{'DIR'} = [sort(keys %$dir)];
- }
- unless (exists $att{'NAME'})
- {
- my $dir = getcwd;
- my ($pack) = $dir =~ m#/([^/]+)$#;
- if (defined $pack)
- {
- $att{NAME} = 'Tk::'.$pack;
- }
- else
- {
- warn "No Name and cannot deduce from '$dir'";
- }
- }
- my $tk = installed_tk();
- $att{'macro'} = {} unless (exists $att{'macro'});
- $att{'macro'}{'TKDIR'} = $tk;
- my @opt = ('VERSION' => $Tk::Config::VERSION,
- 'XS_VERSION' => $Tk::Config::VERSION);
- push(@opt,'clean' => {} ) unless (exists $att{'clean'});
- $att{'clean'}->{FILES} = '' unless (exists $att{'clean'}->{FILES});
- $att{'clean'}->{FILES} .= ' *.bak';
- unless (exists($att{'linkext'}) && $att{linkext}{LINKTYPE} eq '')
- {
- my $ptk = findpTk($tk);
- my @tm = (findINC('Tk/typemap'));
- unshift(@tm,@{$att{'TYPEMAPS'}}) if (exists $att{'TYPEMAPS'});
- $att{'TYPEMAPS'} = \@tm;
- my $i = delete ($att{'INC'});
- $i = (defined $i) ? "$i $inc" : $inc;
- if (delete $att{'dynamic_ptk'})
- {
- push(@opt,
- 'MYEXTLIB' => "$ptk/libpTk\$(LIB_EXT)",
-# 'dynamic_lib' => { INST_DYNAMIC_DEP => "$ptk/libpTk\$(LIB_EXT)" }
- );
- }
- # Several loadable widgets use things from -lm
- # if platform does not have a shared -lm need to link against it
- if ($Config{libs} =~/-lm\b/)
- {
- my $libs = $att{'LIBS'}->[0];
- $att{'LIBS'}->[0] = "$libs -lm" unless $libs =~ /-lm\b/;
- }
- if ($IsWin32 && $Config{'cc'} =~ /^bcc/)
- {
- # Borland compiler is very dumb at finding files
- $i = "-I$tk $i";
- $i = "-I$ptk $i";
- }
- if ($IsWin32 && $Config{'cc'} =~ /gcc/i)
- {
- my $base = $Config{'libpth'};
- #$base =~ s#lib$#i386-mingw32/lib#;
- my $extra = "-L$base -limm32 -lcomctl32 -lcomdlg32 -lgdi32";
- my $libs = $att{'LIBS'}->[0];
- $att{'LIBS'}->[0] = "$extra $libs";
- }
- if ($^O eq 'cygwin')
- {
- # NOTE: use gcc -shared instead of dllwrap (ld2),
- # dllwrap tries to resolve all symbols, even those
- # that are brought in from libraries like libpTk.a
- push(@opt,'LD' => 'gcc -shared');
- if ($win_arch eq 'MSWin32')
- {
- my $extra = "-L/lib/w32api -limm32 -lcomctl32 -lcomdlg32 -lgdi32";
- my $libs = $att{'LIBS'}->[0];
- $att{'LIBS'}->[0] = "$extra $libs";
- $att{'DEFINE'} .= ' -D__WIN32__ -D_WIN32 -DWINARCH_MSWIN32';
- $att{'DEFINE'} .= ' -DWIN32' if($att{'NAME'} eq 'Tk::pTk');
- }
- elsif ($win_arch eq 'x')
- {
- $att{'DEFINE'} .= ' -U_WIN32 -DWINARCH_X';
- }
- }
- if (delete $att{'ptk_include'})
- {
- $i = "-I$ptk $i" unless ($ptk eq '.');
- }
- else
- {
- $i = "-I$tk $i" unless ($tk eq '.');
- }
- push(@opt,'DEFINE' => $define, 'INC' => $i);
- }
- WriteMakefile(@opt, %att);
-}
-
-sub import
-{
- no strict 'refs';
- my $class = shift;
- my @list = (@_) ? @_ : @{"${class}::MYEXPORT"};
- my $name;
- foreach $name (@list)
- {
- *{"MY::$name"} = \&{"$name"};
- }
-}
-
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/MainWindow.pm b/Master/tlpkg/tlperl/lib/Tk/MainWindow.pm
deleted file mode 100644
index 207b0d1fbb5..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/MainWindow.pm
+++ /dev/null
@@ -1,210 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::MainWindow;
-use base qw(Tk::Toplevel);
-BEGIN { @MainWindow::ISA = 'Tk::MainWindow' }
-
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '4.015'; # was: sprintf '4.%03d', q$Revision: #12 $ =~ /\D(\d+)\s*$/;
-
-use Tk::CmdLine;
-use Tk qw(catch);
-require Tk::Toplevel;
-
-use Carp;
-
-$| = 1;
-
-my %Windows = ();
-
-sub CreateArgs
-{
- my ($class,$args) = @_;
- my $cmd = Tk::CmdLine->CreateArgs();
- my $key;
- foreach $key (keys %$cmd)
- {
- $args->{$key} = $cmd->{$key} unless exists $args->{$key};
- }
- my %result = $class->SUPER::CreateArgs(undef,$args);
- my $name = delete($args->{'-name'});
- unless (Tk::tainting)
- {
- $ENV{'DISPLAY'} = ':0' unless (exists $ENV{'DISPLAY'});
- $result{'-screen'} = $ENV{'DISPLAY'} unless exists $result{'-screen'};
- }
- return (-name => "\l$name",%result);
-}
-
-sub new
-{
- my $package = shift;
- if (@_ > 0 && $_[0] =~ /:\d+(\.\d+)?$/)
- {
- carp "Usage $package->new(-screen => '$_[0]' ...)" if $^W;
- unshift(@_,'-screen');
- }
- croak('Odd number of args'."$package->new(" . join(',',@_) .')') if @_ % 2;
- my %args = @_;
-
- my $top = eval { bless Create($package->CreateArgs(\%args)), $package };
- croak($@ . "$package->new(" . join(',',@_) .')') if ($@);
- $top->apply_command_line;
- $top->InitBindings;
- $top->SetBindtags;
- $top->InitObject(\%args);
- eval { $top->configure(%args) };
- croak "$@" if ($@);
- if (($top->positionfrom||'') ne 'user' and ($top->sizefrom||'') ne 'user') {
- my $geometry = $top->optionGet(qw(geometry Geometry));
- if ($geometry) {
- $top->geometry($geometry);
- }
- }
- $Windows{$top} = $top;
- return $top;
-}
-
-sub _Destroyed
-{
- my $top = shift;
- $top->SUPER::_Destroyed;
- delete $Windows{$top};
-}
-
-sub InitBindings
-{
- my $mw = shift;
- $mw->bind('all','<Tab>','focusNext');
- # <<LeftTab>> is named <<PrevWindow>> in Tcl/Tk
- $mw->eventAdd(qw[<<LeftTab>> <Shift-Tab>]);
- # This is needed for XFree86 systems
- catch { $mw->eventAdd(qw[<<LeftTab>> <ISO_Left_Tab>]) };
- # This seems to be correct on *some* HP systems.
- catch { $mw->eventAdd(qw[<<LeftTab>> <hpBackTab>]) };
- $mw->bind('all','<<LeftTab>>','focusPrev');
- if ($mw->windowingsystem eq 'x11')
- {
- $mw->eventAdd(qw[<<Cut>> <Control-Key-x> <Lock-Control-Key-X> <Key-F20> <Meta-Key-w>]);
- $mw->eventAdd(qw[<<Copy>> <Control-Key-c> <Lock-Control-Key-C> <Key-F16> <Control-Key-w>]);
- $mw->eventAdd(qw[<<Paste>> <Control-Key-v> <Lock-Control-Key-V> <Key-F18> <Control-Key-y>]);
- $mw->eventAdd(qw[<<PasteSelection>> <ButtonRelease-2>]);
- $mw->eventAdd(qw[<<Undo>> <Control-Key-z> <Key-Undo> <Key-F14>
- <Control-Key-underscore>]);
- $mw->eventAdd(qw[<<Redo>> <Control-Key-y> <Shift-Key-Undo> <Key-F12> <Shift-Key-F14>]);
- }
- elsif ($mw->windowingsystem eq 'win32')
- {
- $mw->eventAdd(qw[<<Cut>> <Control-Key-x> <Shift-Key-Delete>]);
- $mw->eventAdd(qw[<<Copy>> <Control-Key-c> <Control-Key-Insert>]);
- $mw->eventAdd(qw[<<Paste>> <Control-Key-v> <Shift-Key-Insert>]);
- $mw->eventAdd(qw[<<Undo>> <Control-Key-z>]);
- $mw->eventAdd(qw[<<Redo>> <Control-Key-y>]);
- }
- elsif ($mw->windowingsystem eq 'aqua')
- {
- $mw->eventAdd(qw[<<Cut>> <Command-Key-x> <Key-F2>]);
- $mw->eventAdd(qw[<<Copy>> <Command-Key-c> <Key-F3>]);
- $mw->eventAdd(qw[<<Paste>> <Command-Key-v> <Key-F4>]);
- $mw->eventAdd(qw[<<PasteSelection>> <ButtonRelease-2>]);
- $mw->eventAdd(qw[<<Clear>> <Clear>]);
- $mw->eventAdd(qw[<<Undo>> <Command-Key-z>]);
- $mw->eventAdd(qw[<<Redo>> <Command-Key-y>]);
- }
- elsif ($mw->windowingsystem eq 'classic')
- {
- $mw->eventAdd(qw[<<Cut>> <Control-Key-x> <Key-F2>]);
- $mw->eventAdd(qw[<<Copy>> <Control-Key-c> <Key-F3>]);
- $mw->eventAdd(qw[<<Paste>> <Control-Key-v> <Key-F4>]);
- $mw->eventAdd(qw[<<PasteSelection>> <ButtonRelease-2>]);
- $mw->eventAdd(qw[<<Clear>> <Clear>]);
- $mw->eventAdd(qw[<<Undo>> <Control-Key-z> <Key-F1>]);
- $mw->eventAdd(qw[<<Redo>> <Control-Key-Z>]);
- }
-
- # FIXME - Should these move to Menubutton ?
- my $c = ($Tk::platform eq 'unix') ? 'all' : 'Tk::Menubutton';
- $mw->bind($c,'<Alt-KeyPress>',['TraverseToMenu',Tk::Ev('K')]);
- $mw->bind($c,'<F10>','FirstMenu');
-}
-
-sub Existing
-{
- my @Windows;
- foreach my $name (keys %Windows)
- {
- my $obj = $Windows{$name};
- if (Tk::Exists($obj))
- {
- push(@Windows,$obj);
- }
- else
- {
- delete $Windows{$name};
- }
- }
- return @Windows;
-}
-
-END
-{
- if (Tk::IsParentProcess())
- {
- foreach my $top (values %Windows)
- {
- if ($top->IsWidget)
- {
- # Tk data structuctures are still in place
- # this can occur if non-callback perl code did a 'die'.
- # It will also handle some cases of non-Tk 'exit' being called
- # Destroy this mainwindow and hence is descendants ...
- $top->destroy;
- }
- }
- }
-}
-
-sub CmdLine { return shift->command }
-
-sub WMSaveYourself
-{
- my $mw = shift;
- my @args = @{$mw->command};
-# warn 'preWMSaveYourself:'.join(' ',@args)."\n";
- @args = ($0) unless (@args);
- my $i = 1;
- while ($i < @args)
- {
- if ($args[$i] eq '-iconic')
- {
- splice(@args,$i,1);
- }
- elsif ($args[$i] =~ /^-(geometry|iconposition)$/)
- {
- splice(@args,$i,2);
- }
- }
-
- my @ip = $mw->wm('iconposition');
-# print 'ip ',join(',',@ip),"\n";
- my $icon = $mw->iconwindow;
- if (defined($icon))
- {
- @ip = $icon->geometry =~ /\d+x\d+([+-]\d+)([+-]\d+)/;
- }
- splice(@args,1,0,'-iconposition' => join(',',@ip)) if (@ip == 2);
-
- splice(@args,1,0,'-iconic') if ($mw->state() eq 'iconic');
-
- splice(@args,1,0,'-geometry' => $mw->geometry);
-# warn 'postWMSaveYourself:'.join(' ',@args)."\n";
- $mw->command([@args]);
-}
-
-1;
-
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/MainWindow.pod b/Master/tlpkg/tlperl/lib/Tk/MainWindow.pod
deleted file mode 100644
index 565658adc1d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/MainWindow.pod
+++ /dev/null
@@ -1,85 +0,0 @@
-
-=head1 NAME
-
-Tk::MainWindow - Root widget of a widget tree
-
-=for pm Tk/MainWindow.pm
-
-=for category Creating and Configuring Widgets
-
-=head1 SYNOPSIS
-
- use Tk;
-
- my $mw = MainWindow->new( ... options ... );
-
- my $this = $mw->ThisWidget -> pack ;
- my $that = $mw->ThatWidget;
- ...
-
- MainLoop;
-
-=head1 DESCRIPTION
-
-Perl/Tk applications (which have windows associated with them) create
-one or more B<MainWindow>s which act as the containers and parents
-of the other widgets.
-
-B<Tk::MainWindow> is a special kind of L<Toplevel|Tk::Toplevel> widget. It is
-the root of a widget tree. Therefore C<$mw-E<gt>Parent> returns
-C<undef>.
-
-The default title of a MainWindow is the basename of the script
-(actually the Class name used for options lookup, i.e. with basename
-with inital caps) or 'Ptk' as the fallback value. If more than one MainWindow is created
-or several instances of the script are running at the same time the
-string C<" #n"> is appended where the number C<n> is set to get
-a unique value.
-
-Unlike the standard Tcl/Tk's wish, perl/Tk allows you to create
-several MainWindows. When the I<last> B<MainWindow> is destroyed
-the Tk eventloop exits (the eventloop is entered with the call of
-C<MainLoop>). Various resources (bindings, fonts, images, colors) are
-maintained or cached for each MainWindow, so each MainWindow consumes more
-resources than a Toplevel. However multiple MainWindows can make sense when
-the user can destroy them independently.
-
-=head1 METHODS
-
-You can apply all methods that a L<Toplevel|Tk::Toplevel> widget accepts.
-
-The method I<$w>-E<gt>B<MainWindow> applied to any widget will return the
-B<MainWindow> to which the widget belongs (the MainWindow belongs to itself).
-
-=head1 MISSING
-
-Documentation is incomplete.
-Here are I<some> missing items that should be explained in
-more detail:
-
-=over 4
-
-=item *
-
-The new mechanism for MainWindows is slightly different to
-other widgets.
-
-=item *
-
-There no explanation about what resources are bound
-to a MainWindow (e.g., ClassInit done per MainWindow)
-
-=item *
-
-Passing of command line options to override or augment
-arguments of the C<new> method (see L<Tk::CmdLine>).
-
-=back
-
-=head1 SEE ALSO
-
-L<Tk::Toplevel|Tk::Toplevel>
-L<Tk::CmdLine|Tk::CmdLine>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/MakeDepend.pm b/Master/tlpkg/tlperl/lib/Tk/MakeDepend.pm
deleted file mode 100644
index b15b996995c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/MakeDepend.pm
+++ /dev/null
@@ -1,342 +0,0 @@
-package Tk::MakeDepend;
-use strict;
-use vars qw(%define);
-use Config;
-
-my @include;
-
-use Carp;
-
-$SIG{__DIE__} = \&Carp::confess;
-
-
-use vars qw($VERSION);
-$VERSION = '4.015';
-
-sub scan_file;
-
-sub do_include
-{
- my ($inc,$dep,@include) = @_;
- foreach my $dir (@include)
- {
- my $path = "$dir/$inc";
- if (-f $path)
- {
- scan_file($path,$dep) unless exists $dep->{$path};
- return;
- }
- }
- warn "Cannot find '$inc' assume made\n";
- $dep->{$inc} = 1;
-}
-
-sub remove_comment
-{
- s#^\s*/\*.*?\*/\s*##g;
-}
-
-
-sub term
-{
- remove_comment();
- return !term() if s/^\s*!//;
- return exists($define{$1}) if s/^\s*defined\s*\(([_A-Za-z][_\w]*)\s*\)//;
- return exists($define{$1}) if s/^\s*defined\s*([_A-Za-z][_\w]*)//;
- return eval "$1" if s/^\s*(0x[0-9a-f]+)L?//i;
- return $1 if s/^\s*(\d+)L?//;
- return $define{$1} || 0 if s/^\s*([_A-Za-z][_\w]*)//;
- if (s/^\s*\(//)
- {
- my $val = expression(0);
- warn "Missing ')'\n" unless s/^\s*\)//;
- return $val;
- }
- warn "Invalid term:$_";
- return undef;
-}
-
-my %pri = ( '&&' => 4,
- '||' => 3,
- '>=' => 2, '<=' => 2, '<' => 2, '>' => 2,
- '==' => 1, '!=' => 1 );
-
-sub expression
-{
- my $pri = shift;
- # printf STDERR "%d# expr . $_\n";
- my $invert = 0;
- my $lhs = term() || 0;
- remove_comment();
- while (/^\s*(&&|\|\||>=?|<=?|==|!=)/)
- {
- my $op = $1;
- last unless ($pri{$op} >= $pri);
- s/^\s*\Q$op\E//;
- # printf STDERR "%d# $lhs $op . $_\n";
- my $rhs = expression($pri{$op}) || 0;
- my $e = "$lhs $op $rhs";
- $lhs = eval "$e" || 0;
- die "'$e' $@" if $@;
- remove_comment();
- }
- return $lhs;
-}
-
-sub do_if
-{
- my ($key,$expr) = @_;
- chomp($expr);
- if ($key eq 'ifdef' || $key eq 'ifndef')
- {
- if ($expr =~ /^\s*(\w+)/)
- {
- my $val = exists $define{$1};
- $val = !$val if ($key eq 'ifndef');
-# printf STDERR "%d from $key $expr\n",$val;
- return $val;
- }
- }
- else
- {
- local $_ = $expr;
- my $val = expression(0) != 0;
- warn "trailing: $_" if /\S/;
- #printf STDERR "%d from $key $expr\n",$val;
- return $val;
- }
-}
-
-sub scan_file
-{
- no strict 'refs';
- my ($file,$dep) = @_;
- open($file,"<$file") || die "Cannot open $file:$!";
- local $_;
- my ($srcdir) = $file =~ m#^(.*)[\\/][^\\/]*$#;
- $srcdir = '.' unless defined $srcdir;
- my $live = 1;
- $dep->{$file} = 1;
- my @stack;
- while (<$file>)
- {
- $_ .= <$file> while (s/\\\n/ /);
- if (/^\s*#\s*(\w+)\s*(.*?)\s*$/)
- {
- my $ol = $live;
- my $key = $1;
- my $rest = $2;
- if ($key =~ /^if(.*)$/)
- {
- push(@stack,$live);
- $live &&= do_if($key,$rest);
- }
- elsif ($key eq 'elif')
- {
- $live = ($live) ? 0 : $stack[-1];
- $live &&= do_if('if',$rest);
- }
- elsif ($key eq 'else')
- {
- $live = ($live) ? 0 : $stack[-1];
- }
- elsif ($key eq 'endif')
- {
- if (@stack)
- {
- $live = pop(@stack);
- }
- else
- {
- die "$file:$.: Mismatched #endif\n";
- }
- }
- elsif ($live)
- {
- if ($key eq 'include')
- {
- do_include($1,$dep,$srcdir,@include) if $rest =~ /^"(.*)"/;
- }
- elsif ($key eq 'define')
- {
- if ($rest =~ /^\s*([_A-Za-z][\w_]*)\s*(.*)$/)
- {
- my $sym = $1;
- my $val = $2 || 1;
- $val =~ s#\s*/\*.*?\*/\s*# #g;
- $define{$sym} = $val;
- }
- else
- {
- warn "ignore '$key $rest'\n";
- }
- }
- elsif ($key eq 'undef')
- {
- if ($rest =~ /^\s*([_A-Za-z][\w_]*)/)
- {
- delete $define{$1};
- }
- }
- elsif ($key =~ /^(line|pragma)$/)
- {
-
- }
- else
- {
- warn "ignore '$key $rest'\n";
- }
- }
- # printf STDERR "$file:$.: %d $key $rest\n",$live if ($ol != $live);
- }
- else
- {
- # print if $live;
- }
- }
- close($file);
- if (@stack)
- {
- warn "$file:$.: unclosed #if\n";
- }
-}
-
-sub command_line
-{
- @include = ();
- local %define = ('__STDC__' => 1 );
- my $data = '';
- my @files;
- while (@_ && $_[-1] !~ /^-/)
- {
- unshift(@files,pop(@_));
- }
- my $flags = $Config{ccflags};
- $flags =~ s/^\s+|\s+$//g;
- my @opt = (@_, split(/\s+/,$flags));
- while (@opt)
- {
- local $_ = shift(@opt);
- if (/^-I(.*)$/)
- {
- push @include,$1;
- }
- elsif (/^-D([^=]+)(?:=(.*))?$/)
- {
- $define{$1} = $2 || 1;
- }
- elsif (/^-U(.*)$/)
- {
- delete $define{$1};
- }
- elsif (/^(-.*)$/)
- {
- # Some option
- if ($opt[0] !~ /^-/)
- {
- # next arg does not start with '-' assume it
- # belongs to this option and discard it silently
- shift(@opt);
- }
- }
- else
- {
- # We got confused
- warn "Ignoring $1\n";
- }
- }
- # force /usr/include (and other system directories) to be last element of @include
- if ($Config{ccname} eq 'gcc')
- {
- push @include, parse_gcc_inc_search_list();
- }
- else
- {
- push @include, $Config{'usrinc'}
- if (defined $Config{'usrinc'} and $Config{'usrinc'} ne '');
- }
- # warn "Include:@include\n";
- while (@files)
- {
- local $_ = shift(@files);
- unless (/^(.*)\.[^\.]+$/)
- {
- warn "Skip $_";
- next;
- }
- local %define = %define;
- my $base = $1;
- my $file = $_;
- my %dep;
- warn "Finding dependencies for $file\n";
- scan_file($_,\%dep);
- my $str = "\n$base\$(OBJ_EXT) : $base.c";
- delete $dep{$file};
- my @dep = (sort(keys %dep));
- while (@dep)
- {
- my $dep = shift(@dep);
- $dep =~ s#^\./##;
- if (length($str)+length($dep) > 70)
- {
- $data .= "$str \\\n";
- $str = ' ';
- }
- else
- {
- $str .= ' ';
- }
- $str .= $dep;
- }
- $data .= "$str\n";
- }
- return $data;
-}
-
-sub parse_gcc_inc_search_list
-{
- our @GCC_INC_SEARCH_LIST;
- return @GCC_INC_SEARCH_LIST if @GCC_INC_SEARCH_LIST;
-
- require File::Spec;
- my $cmd = "$Config{cc} -xc -E -v -";
- my @inc;
- eval
- {
- open my $fh, "-|", "$cmd 2>&1 <".File::Spec->devnull
- or die "Error while running $cmd: $!";
-
- my $in_search_list;
- while(<$fh>)
- {
- if (/^#include <\.\.\.> search starts here:/)
- {
- $in_search_list = 1;
- }
- elsif ($in_search_list)
- {
- last if /^End of search list/;
- chomp;
- s/^\s+//;
- push @inc, $_;
- }
- }
- };
- if ($@)
- {
- warn $@;
- }
- if (!@inc)
- {
- # Fallback: add /usr/include
- @inc = $Config{'usrinc'}
- if (defined $Config{'usrinc'} and $Config{'usrinc'} ne '');
- }
- @GCC_INC_SEARCH_LIST = @inc;
- @inc;
-}
-
-1;
-__END__
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Menu.pm b/Master/tlpkg/tlperl/lib/Tk/Menu.pm
deleted file mode 100644
index 98ef0f71800..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Menu.pm
+++ /dev/null
@@ -1,1201 +0,0 @@
-# Converted from menu.tcl --
-#
-# This file defines the default bindings for Tk menus and menubuttons.
-# It also implements keyboard traversal of menus and implements a few
-# other utility procedures related to menus.
-#
-# @(#) menu.tcl 1.34 94/12/19 17:09:09
-#
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-package Tk::Menu;
-require Tk;
-require Tk::Widget;
-require Tk::Wm;
-require Tk::Derived;
-require Tk::Menu::Item;
-
-
-use vars qw($VERSION);
-$VERSION = '4.023'; # was: sprintf '4.%03d', q$Revision: #21 $ =~ /\D(\d+)\s*$/;
-
-use strict;
-
-use base qw(Tk::Wm Tk::Derived Tk::Widget);
-
-Construct Tk::Widget 'Menu';
-
-sub Tk_cmd { \&Tk::_menu }
-
-Tk::Methods('activate','add','clone','delete','entrycget','entryconfigure',
- 'index','insert','invoke','post','postcascade','type',
- 'unpost','yposition');
-
-import Tk qw(Ev);
-
-sub CreateArgs
-{
- my ($package,$parent,$args) = @_;
- # Remove from hash %$args any configure-like
- # options which only apply at create time (e.g. -class for Frame)
- # return these as a list of -key => value pairs
- my @result = ();
- my $opt;
- foreach $opt (qw(-type -screen -visual -colormap))
- {
- my $val = delete $args->{$opt};
- push(@result, $opt => $val) if (defined $val);
- }
- return @result;
-}
-
-sub InitObject
-{
- my ($menu,$args) = @_;
- my $menuitems = delete $args->{-menuitems};
- $menu->SUPER::InitObject($args);
- $menu->ConfigSpecs(-foreground => ['SELF']);
- if (defined $menuitems)
- {
- # If any other args do configure now
- if (%$args)
- {
- $menu->configure(%$args);
- %$args = ();
- }
- $menu->AddItems(@$menuitems)
- }
-}
-
-sub AddItems
-{
- my $menu = shift;
- ITEM:
- while (@_)
- {
- my $item = shift;
- if (!ref($item))
- {
- $menu->separator; # A separator
- }
- else
- {
- my ($kind,$name,%minfo) = ( @$item );
- my $invoke = delete $minfo{'-invoke'};
- if (defined $name)
- {
- $minfo{-label} = $name unless defined($minfo{-label});
- $menu->$kind(%minfo);
- }
- else
- {
- $menu->BackTrace("Don't recognize " . join(' ',@$item));
- }
- } # A non-separator
- }
-}
-
-#
-#-------------------------------------------------------------------------
-# Elements of tkPriv that are used in this file:
-#
-# cursor - Saves the -cursor option for the posted menubutton.
-# focus - Saves the focus during a menu selection operation.
-# Focus gets restored here when the menu is unposted.
-# inMenubutton - The name of the menubutton widget containing
-# the mouse, or an empty string if the mouse is
-# not over any menubutton.
-# popup - If a menu has been popped up via tk_popup, this
-# gives the name of the menu. Otherwise this
-# value is empty.
-# postedMb - Name of the menubutton whose menu is currently
-# posted, or an empty string if nothing is posted
-# A grab is set on this widget.
-# relief - Used to save the original relief of the current
-# menubutton.
-# window - When the mouse is over a menu, this holds the
-# name of the menu; it's cleared when the mouse
-# leaves the menu.
-#-------------------------------------------------------------------------
-#-------------------------------------------------------------------------
-# Overall note:
-# This file is tricky because there are four different ways that menus
-# can be used:
-#
-# 1. As a pulldown from a menubutton. This is the most common usage.
-# In this style, the variable tkPriv(postedMb) identifies the posted
-# menubutton.
-# 2. As a torn-off menu copied from some other menu. In this style
-# tkPriv(postedMb) is empty, and the top-level menu is no
-# override-redirect.
-# 3. As an option menu, triggered from an option menubutton. In thi
-# style tkPriv(postedMb) identifies the posted menubutton.
-# 4. As a popup menu. In this style tkPriv(postedMb) is empty and
-# the top-level menu is override-redirect.
-#
-# The various binding procedures use the state described above to
-# distinguish the various cases and take different actions in each
-# case.
-#-------------------------------------------------------------------------
-# Bind --
-# This procedure is invoked the first time the mouse enters a menubutton
-# widget or a menubutton widget receives the input focus. It creates
-# all of the class bindings for both menubuttons and menus.
-#
-# Arguments:
-# w - The widget that was just entered or just received
-# the input focus.
-# event - Indicates which event caused the procedure to be invoked
-# (Enter or FocusIn). It is used so that we can carry out
-# the functions of that event in addition to setting up
-# bindings.
-sub ClassInit
-{
- my ($class,$mw) = @_;
- # Must set focus when mouse enters a menu, in order to allow
- # mixed-mode processing using both the mouse and the keyboard.
- $mw->bind($class,'<FocusIn>', 'NoOp');
- $mw->bind($class,'<Enter>', 'Enter');
- $mw->bind($class,'<Leave>', ['Leave',Ev('X'),Ev('Y'),Ev('s')]);
- $mw->bind($class,'<Motion>', ['Motion',Ev('x'),Ev('y'),Ev('s')]);
- $mw->bind($class,'<ButtonPress>','ButtonDown');
- $mw->bind($class,'<ButtonRelease>',['Invoke',1]);
- $mw->bind($class,'<space>',['Invoke',0]);
- $mw->bind($class,'<Return>',['Invoke',0]);
- $mw->bind($class,'<Escape>','Escape');
- $mw->bind($class,'<Left>','LeftArrow');
- $mw->bind($class,'<Right>','RightArrow');
- $mw->bind($class,'<Up>','UpArrow');
- $mw->bind($class,'<Down>','DownArrow');
- $mw->bind($class,'<KeyPress>', ['TraverseWithinMenu',Ev('K')]);
- $mw->bind($class,'<Alt-KeyPress>', ['TraverseWithinMenu',Ev('K')]);
- return $class;
-}
-
-sub UpArrow
-{
- my $menu = shift;
- if ($menu->cget('-type') eq 'menubar')
- {
- $menu->NextMenu('left');
- }
- else
- {
- $menu->NextEntry(-1);
- }
-}
-
-sub DownArrow
-{
- my $menu = shift;
- if ($menu->cget('-type') eq 'menubar')
- {
- $menu->NextMenu('right');
- }
- else
- {
- $menu->NextEntry(1);
- }
-}
-
-sub LeftArrow
-{
- my $menu = shift;
- if ($menu->cget('-type') eq 'menubar')
- {
- $menu->NextEntry(-1);
- }
- else
- {
- $menu->NextMenu('left');
- }
-}
-
-sub RightArrow
-{
- my $menu = shift;
- if ($menu->cget('-type') eq 'menubar')
- {
- $menu->NextEntry(1);
- }
- else
- {
- $menu->NextMenu('right');
- }
-}
-
-
-
-# Unpost --
-# This procedure unposts a given menu, plus all of its ancestors up
-# to (and including) a menubutton, if any. It also restores various
-# values to what they were before the menu was posted, and releases
-# a grab if there's a menubutton involved. Special notes:
-# 1. It's important to unpost all menus before releasing the grab, so
-# that any Enter-Leave events (e.g. from menu back to main
-# application) have mode NotifyGrab.
-# 2. Be sure to enclose various groups of commands in "catch" so that
-# the procedure will complete even if the menubutton or the menu
-# or the grab window has been deleted.
-#
-# Arguments:
-# menu - Name of a menu to unpost. Ignored if there
-# is a posted menubutton.
-sub Unpost
-{
- my $menu = shift;
- my $mb = $Tk::postedMb;
-
- # Restore focus right away (otherwise X will take focus away when
- # the menu is unmapped and under some window managers (e.g. olvwm)
- # we'll lose the focus completely).
-
- eval {local $SIG{__DIE__}; $Tk::focus->focus() } if (defined $Tk::focus);
- undef $Tk::focus;
-
- # Unpost menu(s) and restore some stuff that's dependent on
- # what was posted.
- eval {local $SIG{__DIE__};
- if (defined $mb)
- {
- $menu = $mb->cget('-menu');
- $menu->unpost();
- $Tk::postedMb = undef;
- $mb->configure('-cursor',$Tk::cursor);
- $mb->configure('-relief',$Tk::relief)
- }
- elsif (defined $Tk::popup)
- {
- $Tk::popup->unpost();
- my $grab = $Tk::popup->grabCurrent;
- $grab->grabRelease if (defined $grab);
-
- undef $Tk::popup;
- }
- elsif (defined $menu && ref $menu &&
- $menu->cget('-type') ne 'menubar' &&
- $menu->cget('-type') ne 'tearoff'
- )
- {
- # We're in a cascaded sub-menu from a torn-off menu or popup.
- # Unpost all the menus up to the toplevel one (but not
- # including the top-level torn-off one) and deactivate the
- # top-level torn off menu if there is one.
- while (1)
- {
- my $parent = $menu->parent;
- last if (!$parent->IsMenu || !$parent->ismapped);
- $parent->postcascade('none');
- $parent->GenerateMenuSelect;
- $parent->activate('none');
- my $type = $parent->cget('-type');
- last if ($type eq 'menubar' || $type eq 'tearoff');
- $menu = $parent
- }
- $menu->unpost() if ($menu->cget('-type') ne 'menubar');
- }
- };
- warn "$@" if ($@);
- if ($Tk::tearoff || $Tk::menubar)
- {
- # Release grab, if any.
- if (defined $menu && ref $menu)
- {
- my $grab = $menu->grabCurrent;
- $grab->grabRelease if (defined $grab);
- }
- RestoreOldGrab();
- if ($Tk::menubar)
- {
- $Tk::menubar->configure(-cursor => $Tk::cursor);
- undef $Tk::menubar;
- }
- if ($Tk::platform ne 'unix')
- {
- undef $Tk::tearoff;
- }
- }
-}
-
-sub RestoreOldGrab
-{
- if (defined $Tk::oldGrab)
- {
- eval
- {
- local $SIG{__DIE__};
- if ($Tk::grabStatus eq 'global')
- {
- $Tk::oldGrab->grabGlobal;
- }
- else
- {
- $Tk::oldGrab->grab;
- }
- };
- undef $Tk::oldGrab;
- }
-}
-
-sub typeIS
-{my $w = shift;
- my $type = $w->type(shift);
- return defined $type && $type eq shift;
-}
-
-# Motion --
-# This procedure is called to handle mouse motion events for menus.
-# It does two things. First, it resets the active element in the
-# menu, if the mouse is over the menu. Second, if a mouse button
-# is down, it posts and unposts cascade entries to match the mouse
-# position.
-#
-# Arguments:
-# menu - The menu window.
-# y - The y position of the mouse.
-# state - Modifier state (tells whether buttons are down).
-sub Motion
-{
- my $menu = shift;
- my $x = shift;
- my $y = shift;
- my $state = shift;
- my $t = $menu->cget('-type');
-
- if ($menu->IS($Tk::window))
- {
- if ($menu->cget('-type') eq 'menubar')
- {
-# if (defined($Tk::focus) && $Tk::focus != $menu)
- {
- $menu->activate("\@$x,$y");
- $menu->GenerateMenuSelect;
- }
- }
- else
- {
- $menu->activate("\@$x,$y");
- $menu->GenerateMenuSelect;
- }
- }
- if (($state & 0x1f00) != 0)
- {
- $menu->postcascade('active')
- }
-}
-# ButtonDown --
-# Handles button presses in menus. There are a couple of tricky things
-# here:
-# 1. Change the posted cascade entry (if any) to match the mouse position.
-# 2. If there is a posted menubutton, must grab to the menubutton so
-# that it can track mouse motions over other menubuttons and change
-# the posted menu.
-# 3. If there's no posted menubutton (e.g. because we're a torn-off menu
-# or one of its descendants) must grab to the top-level menu so that
-# we can track mouse motions across the entire menu hierarchy.
-
-#
-# Arguments:
-# menu - The menu window.
-sub ButtonDown
-{
- my $menu = shift;
- return if (!$menu->viewable);
- $menu->postcascade('active');
- if (defined $Tk::postedMb && $Tk::postedMb->viewable)
- {
- $Tk::postedMb->grabGlobal
- }
- else
- {
- while ($menu->cget('-type') eq 'normal'
- && $menu->parent->IsMenu
- && $menu->parent->ismapped
- )
- {
- $menu = $menu->parent;
- }
-
- if (!defined $Tk::menuBar)
- {
- $Tk::menuBar = $menu;
- $Tk::cursor = $menu->cget('-cursor');
- $menu->configure(-cursor => 'arrow');
- }
-
- # Don't update grab information if the grab window isn't changing.
- # Otherwise, we'll get an error when we unpost the menus and
- # restore the grab, since the old grab window will not be viewable
- # anymore.
-
- $menu->SaveGrabInfo unless ($menu->IS($menu->grabCurrent));
-
- # Must re-grab even if the grab window hasn't changed, in order
- # to release the implicit grab from the button press.
-
- $menu->grabGlobal if ($Tk::platform eq 'unix');
- }
-}
-
-sub Enter
-{
- my $w = shift;
- my $ev = $w->XEvent;
- $Tk::window = $w;
- if ($w->cget('-type') eq 'tearoff')
- {
- if ($ev->m ne 'NotifyUngrab')
- {
- $w->SetFocus if ($Tk::platform eq 'unix');
- }
- }
- $w->Motion($ev->x, $ev->y, $ev->s);
-}
-
-# Leave --
-# This procedure is invoked to handle Leave events for a menu. It
-# deactivates everything unless the active element is a cascade element
-# and the mouse is now over the submenu.
-#
-# Arguments:
-# menu - The menu window.
-# rootx, rooty - Root coordinates of mouse.
-# state - Modifier state.
-sub Leave
-{
- my $menu = shift;
- my $rootx = shift;
- my $rooty = shift;
- my $state = shift;
- undef $Tk::window;
- return if ($menu->index('active') eq 'none');
- if ($menu->typeIS('active','cascade'))
- {
- my $c = $menu->Containing($rootx,$rooty);
- return if (defined $c && $menu->entrycget('active','-menu')->IS($c));
- }
- $menu->activate('none');
- $menu->GenerateMenuSelect;
-}
-
-# Invoke --
-# This procedure is invoked when button 1 is released over a menu.
-# It invokes the appropriate menu action and unposts the menu if
-# it came from a menubutton.
-#
-# Arguments:
-# w - Name of the menu widget.
-sub Invoke
-{
- my $w = shift;
- my $release = shift;
-
- if ($release && !defined($Tk::window))
- {
- # Mouse was pressed over a menu without a menu button, then
- # dragged off the menu (possibly with a cascade posted) and
- # released. Unpost everything and quit.
-
- $w->postcascade('none');
- $w->activate('none');
- $w->eventGenerate('<<MenuSelect>>');
- $w->Unpost;
- return;
- }
-
- my $type = $w->type('active');
- if ($w->typeIS('active','cascade'))
- {
- $w->postcascade('active');
- my $menu = $w->entrycget('active','-menu');
- $menu->FirstEntry() if (defined $menu);
- }
- elsif ($w->typeIS('active','tearoff'))
- {
- $w->tearOffMenu();
- $w->Unpost();
- }
- elsif ($w->typeIS('active','menubar'))
- {
- $w->postcascade('none');
- $w->activate('none');
- $w->eventGenerate('<<MenuSelect>>');
- $w->Unpost;
- }
- else
- {
- $w->Unpost();
- $w->invoke('active')
- }
-}
-# Escape --
-# This procedure is invoked for the Cancel (or Escape) key. It unposts
-# the given menu and, if it is the top-level menu for a menu button,
-# unposts the menu button as well.
-#
-# Arguments:
-# menu - Name of the menu window.
-sub Escape
-{
- my $menu = shift;
- my $parent = $menu->parent;
- if (!$parent->IsMenu)
- {
- $menu->Unpost()
- }
- elsif ($parent->cget('-type') eq 'menubar')
- {
- $menu->Unpost;
- RestoreOldGrab();
- }
- else
- {
- $menu->NextMenu(-1)
- }
-}
-# LeftRight --
-# This procedure is invoked to handle "left" and "right" traversal
-# motions in menus. It traverses to the next menu in a menu bar,
-# or into or out of a cascaded menu.
-#
-# Arguments:
-# menu - The menu that received the keyboard
-# event.
-# direction - Direction in which to move: "left" or "right"
-sub NextMenu
-{
- my $menu = shift;
- my $direction = shift;
- # First handle traversals into and out of cascaded menus.
- my $count;
- if ($direction eq 'right')
- {
- $count = 1;
- if ($menu->typeIS('active','cascade'))
- {
- $menu->postcascade('active');
- my $m2 = $menu->entrycget('active','-menu');
- $m2->FirstEntry if (defined $m2);
- return;
- }
- else
- {
- my $parent = $menu->parent;
- while ($parent->PathName ne '.')
- {
- if ($parent->IsMenu && $parent->cget('-type') eq 'menubar')
- {
- $parent->SetFocus;
- $parent->NextEntry(1);
- return;
- }
- $parent = $parent->parent;
- }
- }
- }
- else
- {
- $count = -1;
- my $m2 = $menu->parent;
- if ($m2->IsMenu)
- {
- $menu->activate('none');
- $menu->GenerateMenuSelect;
- $m2->SetFocus;
-
- $m2->postcascade('none');
-
- if ($m2->cget('-type') ne 'menubar')
- {
- return;
- }
- }
- }
- # Can't traverse into or out of a cascaded menu. Go to the next
- # or previous menubutton, if that makes sense.
-
- my $m2 = $menu->parent;
- if ($m2->IsMenu)
- {
- if ($m2->cget('-type') eq 'menubar')
- {
- $m2->SetFocus;
- $m2->NextEntry(-1);
- return;
- }
- }
-
- my $w = $Tk::postedMb;
- return unless defined $w;
- my @buttons = $w->parent->children;
- my $length = @buttons;
- my $i = Tk::lsearch(\@buttons,$w)+$count;
- my $mb;
- while (1)
- {
- while ($i < 0)
- {
- $i += $length
- }
- while ($i >= $length)
- {
- $i += -$length
- }
- $mb = $buttons[$i];
- last if ($mb->IsMenubutton && $mb->cget('-state') ne 'disabled'
- && defined($mb->cget('-menu'))
- && $mb->cget('-menu')->index('last') ne 'none'
- );
- return if ($mb == $w);
- $i += $count
- }
- $mb->PostFirst();
-}
-# NextEntry --
-# Activate the next higher or lower entry in the posted menu,
-# wrapping around at the ends. Disabled entries are skipped.
-#
-# Arguments:
-# menu - Menu window that received the keystroke.
-# count - 1 means go to the next lower entry,
-# -1 means go to the next higher entry.
-sub NextEntry
-{
- my $menu = shift;
- my $count = shift;
- if ($menu->index('last') eq 'none')
- {
- return;
- }
- my $length = $menu->index('last')+1;
- my $quitAfter = $length;
- my $active = $menu->index('active');
- my $i = ($active eq 'none') ? 0 : $active+$count;
- while (1)
- {
- return if ($quitAfter <= 0);
- while ($i < 0)
- {
- $i += $length
- }
- while ($i >= $length)
- {
- $i += -$length
- }
- my $state = eval {local $SIG{__DIE__}; $menu->entrycget($i,'-state') };
- last if (defined($state) && $state ne 'disabled');
- return if ($i == $active);
- $i += $count;
- $quitAfter -= 1;
- }
- $menu->activate($i);
- $menu->GenerateMenuSelect;
- if ($menu->cget('-type') eq 'menubar' && $menu->type($i) eq 'cascade')
- {
- my $cascade = $menu->entrycget($i, '-menu');
- $menu->postcascade($i);
- $cascade->FirstEntry if (defined $cascade);
- }
-}
-
-
-# tkTraverseWithinMenu
-# This procedure implements keyboard traversal within a menu. It
-# searches for an entry in the menu that has "char" underlined. If
-# such an entry is found, it is invoked and the menu is unposted.
-#
-# Arguments:
-# w - The name of the menu widget.
-# char - The character to look for; case is
-# ignored. If the string is empty then
-# nothing happens.
-sub TraverseWithinMenu
-{
- my $w = shift;
- my $char = shift;
- return unless (defined $char);
- $char = "\L$char";
- my $last = $w->index('last');
- return if ($last eq 'none');
- for (my $i = 0;$i <= $last;$i += 1)
- {
- my $label = eval {local $SIG{__DIE__}; $w->entrycget($i,'-label') };
- next unless defined($label);
- my $ul = $w->entrycget($i,'-underline');
- if (defined $ul && $ul >= 0)
- {
- $label = substr("\L$label",$ul,1);
- if (defined($label) && $label eq $char)
- {
- if ($w->type($i) eq 'cascade')
- {
- $w->postcascade($i);
- $w->activate($i);
- my $m2 = $w->entrycget($i,'-menu');
- $m2->FirstEntry if (defined $m2);
- }
- else
- {
- $w->Unpost();
- $w->invoke($i);
- }
- return;
- }
- }
- }
-}
-
-sub FindMenu
-{
- my ($menu,$char) = @_;
- if ($menu->cget('-type') eq 'menubar')
- {
- if (!defined($char) || $char eq '')
- {
- $menu->FirstEntry;
- }
- else
- {
- $menu->TraverseWithinMenu($char);
- }
- return $menu;
- }
- return undef;
-}
-
-
-# FirstEntry --
-# Given a menu, this procedure finds the first entry that isn't
-# disabled or a tear-off or separator, and activates that entry.
-# However, if there is already an active entry in the menu (e.g.,
-# because of a previous call to tkPostOverPoint) then the active
-# entry isn't changed. This procedure also sets the input focus
-# to the menu.
-#
-# Arguments:
-# menu - Name of the menu window (possibly empty).
-sub FirstEntry
-{
- my $menu = shift;
- return if (!defined($menu) || $menu eq '' || !ref($menu));
- $menu->SetFocus;
- return if ($menu->index('active') ne 'none');
- my $last = $menu->index('last');
- return if ($last eq 'none');
- for (my $i = 0;$i <= $last;$i += 1)
- {
- my $state = eval {local $SIG{__DIE__}; $menu->entrycget($i,'-state') };
- if (defined $state && $state ne 'disabled' && !$menu->typeIS($i,'tearoff'))
- {
- $menu->activate($i);
- $menu->GenerateMenuSelect;
- if ($menu->type($i) eq 'cascade')
- {
- my $cascade = $menu->entrycget($i,'-menu');
- if (0 && defined $cascade)
- {
- $menu->postcascade($i);
- $cascade->FirstEntry;
- }
- }
- return;
- }
- }
-}
-
-# FindName --
-# Given a menu and a text string, return the index of the menu entry
-# that displays the string as its label. If there is no such entry,
-# return an empty string. This procedure is tricky because some names
-# like "active" have a special meaning in menu commands, so we can't
-# always use the "index" widget command.
-#
-# Arguments:
-# menu - Name of the menu widget.
-# s - String to look for.
-sub FindName
-{
- my $menu = shift;
- my $s = shift;
- my $i = undef;
- if ($s !~ /^active$|^last$|^none$|^[0-9]|^@/)
- {
- $i = eval {local $SIG{__DIE__}; $menu->index($s) };
- return $i;
- }
- my $last = $menu->index('last');
- return if ($last eq 'none');
- for ($i = 0;$i <= $last;$i += 1)
- {
- my $label = eval {local $SIG{__DIE__}; $menu->entrycget($i,'-label') };
- return $i if (defined $label && $label eq $s);
- }
- return undef;
-}
-# PostOverPoint --
-# This procedure posts a given menu such that a given entry in the
-# menu is centered over a given point in the root window. It also
-# activates the given entry.
-#
-# Arguments:
-# menu - Menu to post.
-# x, y - Root coordinates of point.
-# entry - Index of entry within menu to center over (x,y).
-# If omitted or specified as {}, then the menu's
-# upper-left corner goes at (x,y).
-sub PostOverPoint
-{
- my $menu = shift;
- my $x = shift;
- my $y = shift;
- my $entry = shift;
- if (defined $entry)
- {
- if ($entry == $menu->index('last'))
- {
- $y -= ($menu->yposition($entry)+$menu->height)/2;
- }
- else
- {
- $y -= ($menu->yposition($entry)+$menu->yposition($entry+1))/2;
- }
- $x -= $menu->reqwidth/2;
- }
- $menu->post($x,$y);
- if (defined($entry) && $menu->entrycget($entry,'-state') ne 'disabled')
- {
- $menu->activate($entry);
- $menu->GenerateMenuSelect;
- }
-}
-# tk_popup --
-# This procedure pops up a menu and sets things up for traversing
-# the menu and its submenus.
-#
-# Arguments:
-# menu - Name of the menu to be popped up.
-# x, y - Root coordinates at which to pop up the
-# menu.
-# entry - Index of a menu entry to center over (x,y).
-# If omitted or specified as {}, then menu's
-# upper-left corner goes at (x,y).
-sub Post
-{
- my $menu = shift;
- return unless (defined $menu);
- my $x = shift;
- my $y = shift;
- my $entry = shift;
- Unpost(undef) if (defined($Tk::popup) || defined($Tk::postedMb));
- $menu->PostOverPoint($x,$y,$entry);
- if ($Tk::platform eq 'unix' && $menu->viewable)
- {
- $menu->grabGlobal;
- $Tk::popup = $menu;
- $Tk::focus = $menu->focusCurrent;
- $menu->focus();
- }
-}
-
-sub SetFocus
-{
- my $menu = shift;
- $Tk::focus = $menu->focusCurrent if (!defined($Tk::focus));
- $menu->focus;
-}
-
-sub GenerateMenuSelect
-{
- my $menu = shift;
- $Tk::activeMenu = $menu;
- $Tk::activeItem = $menu->index('active');
- $menu->eventGenerate('<<MenuSelect>>'); # FIXME
-}
-
-# Converted from tearoff.tcl --
-#
-# This file contains procedures that implement tear-off menus.
-#
-# @(#) tearoff.tcl 1.3 94/12/17 16:05:25
-#
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# tkTearoffMenu --
-# Given the name of a menu, this procedure creates a torn-off menu
-# that is identical to the given menu (including nested submenus).
-# The new torn-off menu exists as a toplevel window managed by the
-# window manager. The return value is the name of the new menu.
-#
-# Arguments:
-# w - The menu to be torn-off (duplicated).
-sub tearOffMenu
-{
- my $w = shift;
- my $x = (@_) ? shift : 0;
- my $y = (@_) ? shift : 0;
-
- $x = $w->rootx if $x == 0;
- $y = $w->rooty if $y == 0;
-
- # Find a unique name to use for the torn-off menu. Find the first
- # ancestor of w that is a toplevel but not a menu, and use this as
- # the parent of the new menu. This guarantees that the torn off
- # menu will be on the same screen as the original menu. By making
- # it a child of the ancestor, rather than a child of the menu, it
- # can continue to live even if the menu is deleted; it will go
- # away when the toplevel goes away.
-
- my $parent = $w->parent;
- while ($parent->toplevel != $parent || $parent->IsMenu)
- {
- $parent = $parent->parent;
- }
- my $menu = $w->clone($parent->PathName,'tearoff');
-
- # Pick a title for the new menu by looking at the parent of the
- # original: if the parent is a menu, then use the text of the active
- # entry. If it's a menubutton then use its text.
- my $title = $w->cget('-title');
- # print ref($w),' ',$w->PathName," ",$menu->PathName," $w\n";
- unless (defined $title && length($title))
- {
- $parent = $w->parent;
- if ($parent)
- {
- if ($parent->IsMenubutton)
- {
- $title = $parent->cget('-text');
- }
- elsif ($parent->IsMenu)
- {
- $title = $parent->entrycget('active','-label');
- }
- }
- }
- $menu->title($title) if (defined $title && length($title));
- $menu->post($x,$y);
-
- if (!Tk::Exists($menu))
- {
- return;
- }
-
- # Set tkPriv(focus) on entry: otherwise the focus will get lost
- # after keyboard invocation of a sub-menu (it will stay on the
- # submenu).
-
-
- # This seems to conflict with <Enter> class binding above
- # if this fires before the class binding the wrong thing
- # will get saved in $Tk::focus
- # $menu->bind('<Enter>','EnterFocus');
- $menu->Callback('-tearoffcommand');
-
- # Strangely tear-off menus do not work in tkpod and Tk804.027.
- # Explicitely setting normal state helps here - why?
- $menu->state("normal");
-
- return $menu;
-}
-
-# tkMenuDup --
-# Given a menu (hierarchy), create a duplicate menu (hierarchy)
-# in a given window.
-#
-# Arguments:
-# src - Source window. Must be a menu. It and its
-# menu descendants will be duplicated at path.
-# path - Name to use for topmost menu in duplicate
-# hierarchy.
-
-sub tkMenuDup
-{
- my ($src,$path,$type) = @_;
- my ($pname,$name) = $path =~ /^(.*)\.([^\.]*)$/;
- ($name) = $src->PathName =~ /^.*\.([^\.]*)$/ unless $name;
- my $parent = ($pname) ? $src->Widget($pname) : $src->MainWindow;
- my %args = (Name => $name, -type => $type);
- foreach my $option ($src->configure())
- {
- next if (@$option == 2);
- $args{$$option[0]} = $$option[4] unless exists $args{$$option[0]};
- }
- my $dst = ref($src)->new($parent,%args);
- # print "MenuDup $src $path $name $type ->",$dst->PathName,"\n";
- $_[1] = $dst;
- if ($type eq 'tearoff')
- {
- $dst->transient($parent->toplevel);
- }
- my $last = $src->index('last');
- if ($last ne 'none')
- {
- for (my $i = $src->cget('-tearoff'); $i <= $last; $i++)
- {
- my $type = $src->type($i);
- if (defined $type)
- {
- my @args = ();
- foreach my $option ($src->entryconfigure($i))
- {
- next if (@$option == 2);
- push(@args,$$option[0],$$option[4]) if (defined $$option[4]);
- }
- $dst->add($type,@args);
- }
- }
- }
- # Duplicate the binding tags and bindings from the source menu.
- my @bindtags = $src->bindtags;
- $path = $src->PathName;
- foreach (@bindtags)
- {
- $_ = $dst if ($_ eq $path);
- }
- $dst->bindtags([@bindtags]);
- foreach my $event ($src->bind)
- {
- my $cb = $src->bind($event);
-# print "$event => $cb\n";
- $dst->bind($event,$cb->Substitute($src,$dst));
- }
- return $dst;
-}
-
-
-
-# Some convenience methods
-
-sub separator { require Tk::Menu::Item; shift->Separator(@_); }
-sub cascade { require Tk::Menu::Item; shift->Cascade(@_); }
-sub checkbutton { require Tk::Menu::Item; shift->Checkbutton(@_); }
-sub radiobutton { require Tk::Menu::Item; shift->Radiobutton(@_); }
-
-sub command
-{
- my ($menu,%args) = @_;
- require Tk::Menu::Item;
- if (exists $args{-button})
- {
- # Backward compatible stuff from 'Menubar'
- my $button = delete $args{-button};
- $button = ['Misc', -underline => 0 ] unless (defined $button);
- my @bargs = ();
- ($button,@bargs) = @$button if (ref($button) && ref $button eq 'ARRAY');
- $menu = $menu->Menubutton(-label => $button, @bargs);
- }
- $menu->Command(%args);
-}
-
-sub Menubutton
-{
- my ($menu,%args) = @_;
- my $name = delete($args{'-text'}) || $args{'-label'};;
- $args{'-label'} = $name if (defined $name);
- my $items = delete $args{'-menuitems'};
- foreach my $opt (qw(-pack -after -before -side -padx -ipadx -pady -ipady -fill))
- {
- delete $args{$opt};
- }
- if (defined($name) && !defined($args{-underline}))
- {
- my $underline = ($name =~ s/^(.*)~/$1/) ? length($1): undef;
- if (defined($underline) && ($underline >= 0))
- {
- $args{-underline} = $underline;
- $args{-label} = $name;
- }
- }
- my $hash = $menu->TkHash('MenuButtons');
- my $mb = $hash->{$name};
- if (defined $mb)
- {
- delete $args{'-tearoff'}; # too late!
- $mb->configure(%args) if %args;
- }
- else
- {
- $mb = $menu->cascade(%args);
- $hash->{$name} = $mb;
- }
- $mb->menu->AddItems(@$items) if defined($items) && @$items;
- return $mb;
-}
-
-sub BalloonInfo
-{
- my ($menu,$balloon,$X,$Y,@opt) = @_;
- my $i = $menu->index('active');
- if ($i eq 'none')
- {
- my $y = $Y - $menu->rooty;
- $i = $menu->index("\@$y");
- }
- foreach my $opt (@opt)
- {
- my $info = $balloon->GetOption($opt,$menu);
- if ($opt =~ /^-(statusmsg|balloonmsg)$/ && UNIVERSAL::isa($info,'ARRAY'))
- {
- $balloon->Subclient($i);
- return '' if $i eq 'none';
- return ${$info}[$i] || '';
- }
- return $info;
- }
-}
-
-sub MasterMenu
-{
- my ($menu) = @_;
- my $pathname = $menu->PathName;
- my $master_menu;
- if ($pathname =~ m{#})
- {
- my $master_pathname = (split m{\.}, $pathname)[-1];
- $master_pathname =~ s{#}{.}g;
- $master_menu = $menu->Widget($master_pathname);
- if (0 && !Tk::Exists($master_menu))
- {
- warn "Cannot find master menu <$master_pathname>";
- }
- }
- $master_menu;
-}
-
-
-# ::tk::AmpMenuArgs --
-# Processes arguments for a menu entry, turning -label option into
-# -label and -underline options, returned by ::tk::UnderlineAmpersand.
-#
-sub AmpArgs
-{
- my ($w, $add, $type, %args) = @_;
- my @options;
- while(my($opt,$val) = each %args)
- {
- if ($opt eq "-label")
- {
- my ($newtext,$under) = $w->UnderlineAmpersand($val);
- push @options, -label => $newtext, -underline => $under;
- }
- else
- {
- push @options, $opt, $val;
- }
- }
- $w->$type(@options);
-}
-
-1;
-
-__END__
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Menu.pod b/Master/tlpkg/tlperl/lib/Tk/Menu.pod
deleted file mode 100644
index d76e7ef4b82..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Menu.pod
+++ /dev/null
@@ -1,876 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1997 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Menu - Create and manipulate Menu widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-S< >I<$menu> = I<$parent>-E<gt>B<Menu>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-activebackground> B<-background> B<-disabledforeground> B<-relief>
-B<-activeborderwidth> B<-borderwidth> B<-font> B<-takefocus>
-B<-activeforeground> B<-cursor> B<-foreground>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<postCommand>
-
-=item Class: B<Command>
-
-=item Switch: B<-postcommand>
-
-If this option is specified then it provides a L<callback|Tk::callbacks> to execute
-each time the menu is posted. The callback is invoked by the B<post>
-method before posting the menu. Note that in 8.0 on Macintosh
-and Windows, all commands in a menu systems are executed before any
-are posted. This is due to the limitations in the individual platforms'
-menu managers.
-
-=item Name: B<selectColor>
-
-=item Class: B<Background>
-
-=item Switch: B<-selectcolor>
-
-For menu entries that are check buttons or radio buttons, this option
-specifies the color to display in the indicator when the check button
-or radio button is selected.
-
-=item Name: B<tearOff>
-
-=item Class: B<TearOff>
-
-=item Switch: B<-tearoff>
-
-This option must have a proper boolean value, which specifies
-whether or not the menu should include a tear-off entry at the
-top. If so, it will exist as entry 0 of the menu and the other
-entries will number starting at 1. The default
-menu bindings arrange for the menu to be torn off when the tear-off
-entry is invoked.
-
-=item Name: B<tearOffCommand>
-
-=item Class: B<TearOffCommand>
-
-=item Switch: B<-tearoffcommand>
-
-If this option has a non-empty value, then it specifies a L<perlE<sol>Tk callback|Tk::callbacks>
-to invoke whenever the menu is torn off. The actual command will
-consist of the value of this option, followed by a space, followed
-by the name of the menu window, followed by a space, followed by
-the name of the name of the torn off menu window. For example, if
-the option's is ``B<a b>'' and menu B<.x.y> is torn off to
-create a new menu B<.x.tearoff1>, then the command
-``B<a b .x.y .x.tearoff1>'' will be invoked.
-
-=item Name: B<title>
-
-=item Class: B<Title>
-
-=item Switch: B<-title>
-
-The string will be used to title the window created when this menu is
-torn off. If the title is NULL, then the window will have the title
-of the menubutton or the text of the cascade item from which this menu
-was invoked.
-
-=item Name: B<type>
-
-=item Class: B<Type>
-
-=item Switch: B<-type>
-
-This option can be one of B<menubar>, B<tearoff>, or
-B<normal>, and is set when the menu is created. While the string
-returned by the configuration database will change if this option is
-changed, this does not affect the menu widget's behavior. This is used
-by the cloning mechanism and is not normally set outside of the Tk
-library.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Menu> method creates a new top-level window (given
-by the $widget argument) and makes it into a menu widget.
-Additional
-options, described above, may be specified on the command line
-or in the option database
-to configure aspects of the menu such as its colors and font.
-The B<menu> command returns its
-$widget argument. At the time this command is invoked,
-there must not exist a window named $widget, but
-$widget's parent must exist.
-
-A menu is a widget that displays a collection of one-line entries arranged
-in one or more columns. There exist several different types of entries,
-each with different properties. Entries of different types may be
-combined in a single menu. Menu entries are not the same as
-entry widgets. In fact, menu entries are not even distinct widgets;
-the entire menu is one widget.
-
-Menu entries are displayed with up to three separate fields.
-The main field is a label in the form of a text string,
-a bitmap, or an image, controlled by the B<-label>,
-B<-bitmap>, and B<-image> options for the entry.
-If the B<-accelerator> option is specified for an entry then a second
-textual field is displayed to the right of the label. The accelerator
-typically describes a keystroke sequence that may be typed in the
-application to cause the same result as invoking the menu entry.
-The third field is an I<indicator>. The indicator is present only for
-checkbutton or radiobutton entries. It indicates whether the entry
-is selected or not, and is displayed to the left of the entry's
-string.
-
-In normal use, an entry becomes active (displays itself differently)
-whenever the mouse pointer is over the entry. If a mouse
-button is released over the entry then the entry is I<invoked>.
-The effect of invocation is different for each type of entry;
-these effects are described below in the sections on individual
-entries.
-
-Entries may be I<disabled>, which causes their labels
-and accelerators to be displayed
-with dimmer colors.
-The default menu bindings will not allow
-a disabled entry to be activated or invoked.
-Disabled entries may be re-enabled, at which point it becomes
-possible to activate and invoke them again.
-
-Whenever a menu's active entry is changed, a E<lt>E<lt>MenuSelectE<gt>E<gt> virtual
-event is sent to the menu. The active item can then be queried from
-the menu, and an action can be taken, such as setting
-context-sensitive help text for the entry.
-
-=head2 COMMAND ENTRIES
-
-The most common kind of menu entry is a command entry, which
-behaves much like a button widget. When a command entry is
-invoked, a callback is executed. The callback
-is specified with the B<-command> option.
-
-=head2 SEPARATOR ENTRIES
-
-A separator is an entry that is displayed as a horizontal dividing
-line. A separator may not be activated or invoked, and it has
-no behavior other than its display appearance.
-
-=head2 CHECKBUTTON ENTRIES
-
-A checkbutton menu entry behaves much like a checkbutton widget.
-When it is invoked it toggles back and forth between the selected
-and deselected states. When the entry is selected, a particular
-value is stored in a particular global variable (as determined by
-the B<-onvalue> and B<-variable> options for the entry); when
-the entry is deselected another value (determined by the
-B<-offvalue> option) is stored in the global variable.
-An indicator box is displayed to the left of the label in a checkbutton
-entry. If the entry is selected then the indicator's center is displayed
-in the color given by the B<-selectcolor> option for the entry;
-otherwise the indicator's center is displayed in the background color for
-the menu. If a B<-command> option is specified for a checkbutton
-entry, then its value is evaluated each time the entry
-is invoked; this happens after toggling the entry's
-selected state.
-
-=head2 RADIOBUTTON ENTRIES
-
-A radiobutton menu entry behaves much like a radiobutton widget.
-Radiobutton entries are organized in groups of which only one
-entry may be selected at a time. Whenever a particular entry
-becomes selected it stores a particular value into a particular
-global variable (as determined by the B<-value> and
-B<-variable> options for the entry). This action
-causes any previously-selected entry in the same group
-to deselect itself.
-Once an entry has become selected, any change to the entry's
-associated variable will cause the entry to deselect itself.
-Grouping of radiobutton entries is determined by their
-associated variables: if two entries have the same associated
-variable then they are in the same group.
-An indicator diamond is displayed to the left of the label in each
-radiobutton entry. If the entry is selected then the indicator's
-center is displayed in the color given by the B<-selectcolor> option
-for the entry;
-otherwise the indicator's center is displayed in the background color for
-the menu. If a B<-command> option is specified for a radiobutton
-entry, then its value is evaluated each time the entry
-is invoked; this happens after selecting the entry.
-
-=head2 CASCADE ENTRIES
-
-A cascade entry is one with an associated menu (determined
-by the B<-menu> option). Cascade entries allow the construction
-of cascading menus.
-The B<postcascade> method can be used to post and unpost
-the associated menu just next to of the cascade entry.
-The associated menu must be a child of the menu containing
-the cascade entry (this is needed in order for menu traversal to
-work correctly).
-
-A cascade entry posts its associated menu by invoking
-
-=over 4
-
-I<$menu>-E<gt>B<post>(I<x,y>)
-
-=back
-
-where I<menu> is the path name of the associated menu, and I<x>
-and I<y> are the root-window coordinates of the upper-right
-corner of the cascade entry.
-On Unix, the lower-level menu is unposted by executing
-
-=over 4
-
-I<$menu>-E<gt>B<unpost>
-
-=back
-
-where I<menu> is the name of the associated menu.
-On other platforms, the platform's native code takes care of unposting the
-menu.
-
-If a B<-command> option is specified for a cascade entry then it is
-evaluated whenever the entry is invoked. This is not supported on Windows.
-
-=head2 TEAR-OFF ENTRIES
-
-A tear-off entry appears at the top of the menu if enabled with the
-B<tearOff> option. It is not like other menu entries in that
-it cannot be created with the B<add> method and
-cannot be deleted with the B<delete> method.
-When a tear-off entry is created it appears as a dashed line at
-the top of the menu. Under the default bindings, invoking the
-tear-off entry causes a torn-off copy to be made of the menu and
-all of its submenus.
-
-=head2 MENUBARS
-
-Any menu can be set as a menubar for a toplevel window (see the
-L<Toplevel|Tk::Toplevel> constructor for syntax). On the Macintosh, whenever the
-toplevel is in front, this menu's cascade items will appear in the
-menubar across the top of the main monitor. On Windows and Unix, this
-menu's items will be displayed in a menubar accross the top of the
-window. These menus will behave according to the interface guidelines
-of their platforms. For every menu set as a menubar, a clone menu is
-made. See L<"CLONES"> for more information.
-
-As noted, menubars may behave differently on different platforms. One
-example of this concerns the handling of checkbuttons and radiobuttons
-within the menu. While it is permitted to put these menu elements on
-menubars, they may not be drawn with indicators on some platforms, due
-to system restrictions.
-
-=head2 SPECIAL MENUS IN MENUBARS
-
-Certain menus in a menubar will be treated specially. On the Macintosh,
-access to the special Apple and Help menus is provided. On Windows,
-access to the Windows System menu in each window is provided. On X Windows,
-a special right-justified help menu is provided. In all cases, these
-menus must be created with the command name of the menubar menu concatenated
-with the special name. So for a menubar named .menubar, on the Macintosh,
-the special menus would be .menubar.apple and .menubar.help; on Windows,
-the special menu would be .menubar.system; on X Windows, the help
-menu would be .menubar.help.
-
-When Tk sees an Apple menu on the Macintosh, that menu's contents make
-up the first items of the Apple menu on the screen whenever the window
-containing the menubar is in front. The menu is the
-first one that the user sees and has a title which is an Apple logo.
-After all of the Tk-defined items, the menu will have a separator,
-followed by all of the items in the user's Apple Menu Items folder.
-Since the System uses a different menu definition procedure for
-the Apple menu than Tk uses for its menus, and the system APIs do
-not fully support everything Tk tries to do, the menu item will only
-have its text displayed. No font attributes, images, bitmaps, or colors
-will be displayed. In addition, a menu with a tearoff item will have
-the tearoff item displayed as "(TearOff)".
-
-When Tk see a Help menu on the Macintosh, the menu's contents are
-appended to the standard help menu on the right of the user's menubar
-whenever the user's menubar is in front. The first items in the menu
-are provided by Apple. Similar to the Apple Menu, cusomization in this
-menu is limited to what the system provides.
-
-When Tk sees a System menu on Windows, its items are appended to the
-system menu that the menubar is attached to. This menu has an icon
-representing a spacebar, and can be invoked with the mouse or by typing
-Alt+Spacebar. Due to limitations in the Windows API, any font changes,
-colors, images, bitmaps, or tearoff images will not appear in the
-system menu.
-
-When Tk see a Help menu on X Windows, the menu is moved to be last in
-the menubar and is right justified.
-
-=head2 CLONES
-
-When a menu is set as a menubar for a toplevel window, or when a menu
-is torn off, a clone of the menu is made. This clone is a menu widget
-in its own right, but it is a child of the original. Changes in the
-configuration of the original are reflected in the
-clone. Additionally, any cascades that are pointed to are also cloned
-so that menu traversal will work right. Clones are destroyed when
-either the tearoff or menubar goes away, or when the original menu is
-destroyed.
-
-=head2 WIDGET METHODS
-
-The B<Menu> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class, and the L<Tk::Wm|Tk::Wm> class.
-
-Many of the methods for a menu take as one argument an
-indicator of which entry of the menu to operate on. These
-indicators are called I<index>es and may be specified in
-any of the following forms:
-
-=over 4
-
-=item I<number>
-
-Specifies the entry numerically, where 0 corresponds
-to the top-most entry of the menu, 1 to the entry below it, and
-so on.
-
-=item B<active>
-
-Indicates the entry that is currently active. If no entry is
-active then this form is equivalent to B<none>. This form may
-not be abbreviated.
-
-=item B<end>
-
-Indicates the bottommost entry in the menu. If there are no
-entries in the menu then this form is equivalent to B<none>.
-This form may not be abbreviated.
-
-=item B<last>
-
-Same as B<end>.
-
-=item B<none>
-
-Indicates ``no entry at all''; this is used most commonly with
-the B<activate> option to deactivate all the entries in the
-menu. In most cases the specification of B<none> causes
-nothing to happen in the method.
-This form may not be abbreviated.
-
-=item B<@>I<number>
-
-In this form, I<number> is treated as a y-coordinate in the
-menu's window; the entry closest to that y-coordinate is used.
-For example, ``B<@0>'' indicates the top-most entry in the
-window.
-
-=item I<pattern>
-
-If the index doesn't satisfy one of the above forms then this
-form is used. I<Pattern> is pattern-matched against the label of
-each entry in the menu, in order from the top down, until a
-matching entry is found.
-(In perl/Tk the matching is under review, but exact match
-should work.)
-
-=back
-
-The following methods are possible for menu widgets:
-
-=over 4
-
-=item I<$menu>-E<gt>B<activate>(I<index>)
-
-Change the state of the entry indicated by I<index> to B<active>
-and redisplay it using its active colors.
-Any previously-active entry is deactivated. If I<index>
-is specified as B<none>, or if the specified entry is
-disabled, then the menu ends up with no active entry.
-Returns an empty string.
-
-=item I<$menu>-E<gt>B<add>(I<type, >?I<option, value, option, value, ...>?)
-
-Add a new entry to the bottom of the menu. The new entry's type
-is given by I<type> and must be one of B<cascade>,
-B<checkbutton>, B<command>, B<radiobutton>, or B<separator>,
-or a unique abbreviation of one of the above. If additional arguments
-are present, they specify any of the following options:
-
-=over 8
-
-=item B<-activebackground> =E<gt> I<value>
-
-Specifies a background color to use for displaying this entry when it
-is active.
-If this option is specified as an empty string (the default), then the
-B<activeBackground> option for the overall menu is used.
-If the B<$Tk::strictMotif> variable has been set to request strict
-Motif compliance, then this option is ignored and the B<-background>
-option is used in its place.
-This option is not available for separator or tear-off entries.
-
-=item B<-activeforeground> =E<gt> I<value>
-
-Specifies a foreground color to use for displaying this entry when it
-is active.
-If this option is specified as an empty string (the default), then the
-B<activeForeground> option for the overall menu is used.
-This option is not available for separator or tear-off entries.
-
-=item B<-accelerator> =E<gt> I<value>
-
-Specifies a string to display at the right side of the menu entry.
-Normally describes an accelerator keystroke sequence that may be
-typed to invoke the same function as the menu entry. This option
-is not available for separator or tear-off entries.
-
-=item B<-background> =E<gt> I<value>
-
-Specifies a background color to use for displaying this entry when it
-is in the normal state (neither active nor disabled).
-If this option is specified as an empty string (the default), then the
-B<background> option for the overall menu is used.
-This option is not available for separator or tear-off entries.
-
-=item B<-bitmap> =E<gt> I<value>
-
-Specifies a bitmap to display in the menu instead of a textual
-label, in any of the forms accepted by B<Tk_GetBitmap>.
-This option overrides the B<-label> option but may be reset
-to an empty string to enable a textual label to be displayed.
-If a B<-image> option has been specified, it overrides
-B<-bitmap>.
-This option is not available for separator or tear-off entries.
-
-=item B<-columnbreak> =E<gt> I<value>
-
-When this option is zero, the appears below the previous entry. When
-this option is one, the menu appears at the top of a new column in the
-menu.
-
-=item B<-compound> =E<gt> I<value>
-
-Specifies whether the button should display both an image and text,
-and if so, where the image should be placed relative to the text.
-Valid values for this option are B<bottom>, B<center>, B<left>,
-B<none>, B<right> and B<top>. The default value is B<none>, meaning
-that the button will display either an image or text, depending on the
-values of the -image and -bitmap options.
-
-=item B<-command> =E<gt> I<value>
-
-For command, checkbutton, and radiobutton entries, specifies a
-callback to execute when the menu entry is invoked.
-For cascade entries, specifies a callback to execute
-when the entry is activated (i.e. just before its submenu is
-posted).
-Not available for separator or tear-off entries.
-
-=item B<-font> =E<gt> I<value>
-
-Specifies the font to use when drawing the label or accelerator
-string in this entry.
-If this option is specified as an empty string (the default) then
-the B<font> option for the overall menu is used.
-This option is not available for separator or tear-off entries.
-
-=item B<-foreground> =E<gt> I<value>
-
-Specifies a foreground color to use for displaying this entry when it
-is in the normal state (neither active nor disabled).
-If this option is specified as an empty string (the default), then the
-B<foreground> option for the overall menu is used.
-This option is not available for separator or tear-off entries.
-
-=item B<-hidemargin> =E<gt> I<value>
-
-Specifies whether the standard margins should be drawn for this menu
-entry. This is useful when creating palette with images in them, i.e.,
-color palettes, pattern palettes, etc. 1 indicates that the margin for
-the entry is hidden; 0 means that the margin is used.
-
-=item B<-image> =E<gt> I<value>
-
-Specifies an image to display in the menu instead of a text string
-or bitmap
-The image must have been created by some previous invocation of
-B<image create>.
-This option overrides the B<-label> and B<-bitmap> options
-but may be reset to an empty string to enable a textual or
-bitmap label to be displayed.
-This option is not available for separator or tear-off entries.
-
-=item B<-indicatoron> =E<gt> I<value>
-
-Available only for checkbutton and radiobutton entries.
-I<Value> is a boolean that determines whether or not the
-indicator should be displayed.
-
-=item B<-label> =E<gt> I<value>
-
-Specifies a string to display as an identifying label in the menu
-entry. Not available for separator or tear-off entries.
-
-=item B<-menu> =E<gt> I<value>
-
-Available only for cascade entries. Specifies the path name of
-the submenu associated with this entry.
-The submenu must be a child of the menu.
-
-=item B<-offvalue> =E<gt> I<value>
-
-Available only for checkbutton entries. Specifies the value to
-store in the entry's associated variable when the entry is
-deselected.
-
-=item B<-onvalue> =E<gt> I<value>
-
-Available only for checkbutton entries. Specifies the value to
-store in the entry's associated variable when the entry is selected.
-
-=item B<-selectcolor> =E<gt> I<value>
-
-Available only for checkbutton and radiobutton entries.
-Specifies the color to display in the indicator when the entry is
-selected.
-If the value is an empty string (the default) then the B<selectColor>
-option for the menu determines the indicator color.
-
-=item B<-selectimage> =E<gt> I<value>
-
-Available only for checkbutton and radiobutton entries.
-Specifies an image to display in the entry (in place of
-the B<-image> option) when it is selected.
-I<Value> is the name of an image, which must have been created
-by some previous invocation of B<image create>.
-This option is ignored unless the B<-image> option has
-been specified.
-
-=item B<-state> =E<gt> I<value>
-
-Specifies one of three states for the entry: B<normal>, B<active>,
-or B<disabled>. In normal state the entry is displayed using the
-B<foreground> option for the menu and the B<background>
-option from the entry or the menu.
-The active state is typically used when the pointer is over the entry.
-In active state the entry is displayed using the B<activeForeground>
-option for the menu along with the B<activebackground> option from
-the entry. Disabled state means that the entry
-should be insensitive: the default bindings will refuse to activate
-or invoke the entry.
-In this state the entry is displayed according to the
-B<disabledForeground> option for the menu and the
-B<background> option from the entry.
-This option is not available for separator entries.
-
-=item B<-underline> =E<gt> I<value>
-
-Specifies the integer index of a character to underline in the entry.
-This option is also queried by the default bindings and used to
-implement keyboard traversal.
-0 corresponds to the first character of the text displayed in the entry,
-1 to the next character, and so on.
-If a bitmap or image is displayed in the entry then this option is ignored.
-This option is not available for separator or tear-off entries.
-
-=item B<-value> =E<gt> I<value>
-
-Available only for radiobutton entries. Specifies the value to
-store in the entry's associated variable when the entry is selected.
-If an empty string is specified, then the B<-label> option
-for the entry as the value to store in the variable.
-
-=item B<-variable> =E<gt> I<value>
-
-Available only for checkbutton and radiobutton entries. Specifies
-the name of a global value to set when the entry is selected.
-For checkbutton entries the variable is also set when the entry
-is deselected. For radiobutton entries, changing the variable
-causes the currently-selected entry to deselect itself.
-
-=back
-
-The B<add> method returns an empty string.
-
-=item I<$menu>-E<gt>B<clone>(I<$parent> ?, I<cloneType?>)
-
-Makes a clone of the current menu as a child of I<$parent>. This clone
-is a menu in its own right, but any changes to the clone are
-propogated to the original menu and vice versa. I<cloneType> can be
-B<normal>, B<menubar>, or B<tearoff>. Should not normally be
-called outside of the Tk library. See L<"CLONES"> for
-more information.
-
-=item I<$menu>-E<gt>B<delete>(I<index1>?, I<index2>?)
-
-Delete all of the menu entries between I<index1> and
-I<index2> inclusive.
-If I<index2> is omitted then it defaults to I<index1>.
-Attempts to delete a tear-off menu entry are ignored (instead, you
-should change the B<tearOff> option to remove the tear-off entry).
-
-=item I<$menu>-E<gt>B<entrycget>(I<index, option>)
-
-Returns the current value of a configuration option for
-the entry given by I<index>.
-I<Option> may have any of the values accepted by the B<add>
-method.
-
-=item I<$menu>-E<gt>B<entryconfigure>(I<index> ?,I<options>?)
-
-This method is similar to the B<configure> method, except that
-it applies to the options for an individual entry, whereas B<configure>
-applies to the options for the menu as a whole.
-I<Options> may have any of the values accepted by the B<add>
-method. If I<options> are specified, options are modified
-as indicated
-in the method call and the method returns an empty string.
-If no I<options> are specified, returns a list describing
-the current options for entry I<index> (see L<Tk::options> for
-information on the format of this list).
-
-=item I<$menu>-E<gt>B<index>(I<index>)
-
-Returns the numerical index corresponding to I<index>, or
-B<none> if I<index> was specified as B<none>.
-
-=item I<$menu>-E<gt>B<insert>(I<index, type>?, I<-option>=E<gt>I<value>, ...?)
-
-Same as the B<add> method except that it inserts the new
-entry just before the entry given by I<index>, instead of appending
-to the end of the menu. The I<type>, I<-option>, and I<value>
-arguments have the same interpretation as for the B<add> widget
-method. It is not possible to insert new menu entries before the
-tear-off entry, if the menu has one.
-
-=item I<$menu>-E<gt>B<invoke>(I<index>)
-
-Invoke the action of the menu entry. See the sections on the
-individual entries above for details on what happens. If the
-menu entry is disabled then nothing happens. If the
-entry has a callback associated with it then the result of that
-callback is returned as the result of the B<invoke> widget
-method. Otherwise the result is an empty string. Note: invoking
-a menu entry does not automatically unpost the menu; the default
-bindings normally take care of this before invoking the B<invoke>
-method.
-
-=item I<$menu>-E<gt>B<post>(I<x, y>)
-
-Arrange for the menu to be displayed on the screen at the root-window
-coordinates given by I<x> and I<y>. These coordinates are
-adjusted if necessary to guarantee that the entire menu is visible on
-the screen. This method normally returns an empty string.
-If the B<postCommand> option has been specified, then its value is
-executed before posting the menu and the result of
-that callback is returned as the result of the B<post> widget
-method.
-If an error returns while executing the method, then the error is
-returned without posting the menu.
-
-=item I<$menu>-E<gt>B<postcascade>(I<index>)
-
-Posts the submenu associated with the cascade entry given by
-I<index>, and unposts any previously posted submenu.
-If I<index> doesn't correspond to a cascade entry,
-or if I<$menu> isn't posted,
-the method has no effect except to unpost any currently posted
-submenu.
-
-=item I<$menu>-E<gt>B<type>(I<index>)
-
-Returns the type of the menu entry given by I<index>.
-This is the I<type> argument passed to the B<add> widget
-method when the entry was created, such as B<command>
-or B<separator>, or B<tearoff> for a tear-off entry.
-
-=item I<$menu>-E<gt>B<unpost>
-
-Unmap the window so that it is no longer displayed. If a
-lower-level cascaded menu is posted, unpost that menu. Returns an
-empty string. This method does not work on Windows and the
-Macintosh, as those platforms have their own way of unposting menus.
-
-=item I<$menu>-E<gt>B<yposition>(I<index>)
-
-Returns a decimal string giving the y-coordinate within the menu
-window of the topmost pixel in the entry specified by I<index>.
-
-=back
-
-=head1 MENU CONFIGURATIONS
-
-The default bindings support four different ways of using menus:
-
-=over 4
-
-=item B<Pulldown Menus in Menubar>
-
-This is the most command case. You create a menu widget that will become the
-menu bar. You then add cascade entries to this menu, specifying the
-pull down menus you wish to use in your menu bar. You then create all
-of the pulldowns. Once you have done this, specify the menu using the
-B<-menu> option of the toplevel's method. See the
-B<toplevel> manual entry for details.
-
-=item B<Pulldown Menus in Menu Buttons>
-
-This is the compatable way to do menu bars. You create one menubutton
-widget for each top-level menu, and typically you arrange a series of
-menubuttons in a row in a menubar window. You also create the top-level menus
-and any cascaded submenus, and tie them together with B<-menu>
-options in menubuttons and cascade menu entries. The top-level menu must
-be a child of the menubutton, and each submenu must be a child of the
-menu that refers to it. Once you have done this, the default bindings
-will allow users to traverse and invoke the tree of menus via its
-menubutton; see the B<menubutton> documentation for details.
-
-=item B<Popup Menus>
-
-Popup menus typically post in response to a mouse button press or
-keystroke. You create the popup menus and any cascaded submenus,
-then you call the B<Post> method at the appropriate time
-to post the top-level menu.
-
-I<$menu>-E<gt>B<Post>(I<$x>,I<$y>?,I<$entry>?)
-
-I<$x> and I<$y> are the root window coordinates at which the I<$menu>
-will be displayed. If I<$entry> is specified then that entry is centred
-on that point, otherwise the top-left corner of the I<$menu> is placed
-at that point.
-
-B<Menu> also inherits methods from L<Tk::Wm> and so the method
-B<Popup> can be used to position menu relative to other windows, the
-mouse cursor or the screen.
-
-=item B<Option Menus>
-
-An option menu consists of a menubutton with an associated menu
-that allows you to select one of several values. The current value
-is displayed in the menubutton and is also stored in a global
-variable. Use the L<Tk::Optionmenu> class to create option
-menubuttons and their menus.
-
-=item B<Torn-off Menus>
-
-You create a torn-off menu by invoking the tear-off entry at
-the top of an existing menu. The default bindings will create a new menu
-that is a copy of the original menu and leave it permanently
-posted as a top-level window. The torn-off menu behaves just
-the same as the original menu.
-
-=back
-
-=head1 DEFAULT BINDINGS
-
-Tk automatically creates class bindings for menus that give them
-the following default behavior:
-
-=over 4
-
-=item [1]
-
-When the mouse enters a menu, the entry underneath the mouse
-cursor activates; as the mouse moves around the menu, the active
-entry changes to track the mouse.
-
-=item [2]
-
-When the mouse leaves a menu all of the entries in the menu
-deactivate, except in the special case where the mouse moves from
-a menu to a cascaded submenu.
-
-=item [3]
-
-When a button is released over a menu, the active entry (if any) is invoked.
-The menu also unposts unless it is a torn-off menu.
-
-=item [4]
-
-The Space and Return keys invoke the active entry and
-unpost the menu.
-
-=item [5]
-
-If any of the entries in a menu have letters underlined with
-with B<-underline> option, then pressing one of the underlined
-letters (or its upper-case or lower-case equivalent) invokes that
-entry and unposts the menu.
-
-=item [6]
-
-The Escape key aborts a menu selection in progress without invoking any
-entry. It also unposts the menu unless it is a torn-off menu.
-
-=item [7]
-
-The Up and Down keys activate the next higher or lower entry
-in the menu. When one end of the menu is reached, the active
-entry wraps around to the other end.
-
-=item [8]
-
-The Left key moves to the next menu to the left.
-If the current menu is a cascaded submenu, then the submenu is
-unposted and the current menu entry becomes the cascade entry
-in the parent.
-If the current menu is a top-level menu posted from a
-menubutton, then the current menubutton is unposted and the
-next menubutton to the left is posted.
-Otherwise the key has no effect.
-The left-right order of menubuttons is determined by their stacking
-order: Tk assumes that the lowest menubutton (which by default
-is the first one created) is on the left.
-
-=item [9]
-
-The Right key moves to the next menu to the right.
-If the current entry is a cascade entry, then the submenu is
-posted and the current menu entry becomes the first entry
-in the submenu.
-Otherwise, if the current menu was posted from a
-menubutton, then the current menubutton is unposted and the
-next menubutton to the right is posted.
-
-Disabled menu entries are non-responsive: they don't activate and
-they ignore mouse button presses and releases.
-
-The behavior of menus can be changed by defining new bindings for
-individual widgets or by redefining the class bindings.
-
-=back
-
-=head1 BUGS
-
-At present it isn't possible to use the
-option database to specify values for the options to individual
-entries.
-
-=head1 SEE ALSO
-
-L<Tk::callbacks|Tk::callbacks>
-
-=head1 KEYWORDS
-
-menu, widget
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Menu/Item.pm b/Master/tlpkg/tlperl/lib/Tk/Menu/Item.pm
deleted file mode 100644
index 167715f9382..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Menu/Item.pm
+++ /dev/null
@@ -1,178 +0,0 @@
-package Tk::Menu::Item;
-
-require Tk::Menu;
-
-use Carp;
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '4.005'; # $Id: //depot/Tkutf8/Tk/Menu/Item.pm#4 $
-
-sub PreInit
-{
- # Dummy (virtual) method
- my ($class,$menu,$minfo) = @_;
-}
-
-sub new
-{
- my ($class,$menu,%minfo) = @_;
- my $kind = $class->kind;
- my $name = $minfo{'-label'};
- if (defined $kind)
- {
- my $invoke = delete $minfo{'-invoke'};
- if (defined $name)
- {
- # Use ~ in name/label to set -underline
- if (defined($minfo{-label}) && !defined($minfo{-underline}))
- {
- my $cleanlabel = $minfo{-label};
- my $underline = ($cleanlabel =~ s/^(.*)~/$1/) ? length($1): undef;
- if (defined($underline) && ($underline >= 0))
- {
- $minfo{-underline} = $underline;
- $name = $cleanlabel if ($minfo{-label} eq $name);
- $minfo{-label} = $cleanlabel;
- }
- }
- }
- else
- {
- $name = $minfo{'-bitmap'} || $minfo{'-image'};
- croak('No -label') unless defined($name);
- $minfo{'-label'} = $name;
- }
- $class->PreInit($menu,\%minfo);
- $menu->add($kind,%minfo);
- $menu->invoke('last') if ($invoke);
- }
- else
- {
- $menu->add('separator');
- }
- return bless [$menu,$name],$class;
-}
-
-sub configure
-{
- my $obj = shift;
- my ($menu,$name) = @$obj;
- my %args = @_;
- $obj->[1] = $args{'-label'} if exists $args{'-label'};
- $menu->entryconfigure($name,@_);
-}
-
-sub cget
-{
- my $obj = shift;
- my ($menu,$name) = @$obj;
- $menu->entrycget($name,@_);
-}
-
-sub parentMenu
-{
- my $obj = shift;
- return $obj->[0];
-}
-
-# Default "kind" is a command
-sub kind { return 'command' }
-
-# Now the derived packages
-
-package Tk::Menu::Separator;
-use base qw(Tk::Menu::Item);
-Construct Tk::Menu 'Separator';
-sub kind { return undef }
-
-package Tk::Menu::Button;
-use base qw(Tk::Menu::Item);
-Construct Tk::Menu 'Button';
-Construct Tk::Menu 'Command';
-
-#package Tk::Menu::Command;
-#use base qw(Tk::Menu::Button);
-#Construct Tk::Menu 'Command';
-
-package Tk::Menu::Cascade;
-use base qw(Tk::Menu::Item);
-Construct Tk::Menu 'Cascade';
-sub kind { return 'cascade' }
-use Carp;
-
-sub PreInit
-{
- my ($class,$menu,$minfo) = @_;
- my $tearoff = delete $minfo->{-tearoff};
- my $items = delete $minfo->{-menuitems};
- my $widgetvar = delete $minfo->{-menuvar};
- my $command = delete $minfo->{-postcommand};
- my $name = delete $minfo->{'Name'};
- $name = $minfo->{'-label'} unless defined $name;
- my @args = ();
- push(@args, '-tearoff' => $tearoff) if (defined $tearoff);
- push(@args, '-menuitems' => $items) if (defined $items);
- push(@args, '-postcommand' => $command) if (defined $command);
- my $submenu = $minfo->{'-menu'};
- unless (defined $submenu)
- {
- $minfo->{'-menu'} = $submenu = $menu->Menu(Name => $name, @args);
- }
- $$widgetvar = $submenu if (defined($widgetvar) && ref($widgetvar));
-}
-
-sub menu
-{
- my ($self,%args) = @_;
- my $w = $self->parentMenu;
- my $menu = $self->cget('-menu');
- if (!defined $menu)
- {
- require Tk::Menu;
- $w->ColorOptions(\%args);
- my $name = $self->cget('-label');
- warn "Had to (re-)reate menu for $name";
- $menu = $w->Menu(Name => $name, %args);
- $self->configure('-menu'=>$menu);
- }
- else
- {
- $menu->configure(%args) if %args;
- }
- return $menu;
-}
-
-# Some convenience methods
-
-sub separator { shift->menu->Separator(@_); }
-sub command { shift->menu->Command(@_); }
-sub cascade { shift->menu->Cascade(@_); }
-sub checkbutton { shift->menu->Checkbutton(@_); }
-sub radiobutton { shift->menu->Radiobutton(@_); }
-
-sub pack
-{
- my $w = shift;
- if ($^W)
- {
- require Carp;
- Carp::carp("Cannot 'pack' $w - done automatically")
- }
-}
-
-package Tk::Menu::Checkbutton;
-use base qw(Tk::Menu::Item);
-Construct Tk::Menu 'Checkbutton';
-sub kind { return 'checkbutton' }
-
-package Tk::Menu::Radiobutton;
-use base qw(Tk::Menu::Item);
-Construct Tk::Menu 'Radiobutton';
-sub kind { return 'radiobutton' }
-
-package Tk::Menu::Item;
-
-1;
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Menu/Item.pod b/Master/tlpkg/tlperl/lib/Tk/Menu/Item.pod
deleted file mode 100644
index dabaadb8a58..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Menu/Item.pod
+++ /dev/null
@@ -1,96 +0,0 @@
-
-=head1 NAME
-
-Tk::Menu::Item - Base class for Menu items
-
-=for pm Tk/Menu/Item.pm
-
-=for category Implementation
-
-=head1 SYNOPSIS
-
- require Tk::Menu::Item;
-
- my $but = $menu->Button(...);
- $but->configure(...);
- my $what = $but->cget();
-
- package Whatever;
- require Tk::Menu::Item;
- @ISA = qw(Tk::Menu::Item);
-
- sub PreInit
- {
- my ($class,$menu,$info) = @_;
- $info->{'-xxxxx'} = ...
- my $y = delete $info->{'-yyyy'};
- }
-
-=head1 DESCRIPTION
-
-Tk::Menu::Item is the base class from which Tk::Menu::Button,
-Tk::Menu::Cascade, Tk::Menu::Radiobutton and Tk::Menu::Checkbutton are derived.
-There is also a Tk::Menu::Separator.
-
-Constructors are declared so that $menu-E<gt>Button(...) etc. do what you would
-expect.
-
-The C<-label> option is pre-processed allowing ~ to be prefixed to the character
-to derive a C<-underline> value. Thus
-
- $menu->Button(-label => 'Goto ~Home',...)
-
- is equivalent to
-
- $menu->Button(-label => 'Goto Home', -underline => 6, ...)
-
-The C<Cascade> menu item creates a sub-menu and accepts
-these options:
-
-=over 4
-
-=item B<-menuitems>
-
-A list of items for the sub-menu.
-Within this list (which is also accepted by Menu and Menubutton) the first
-two elements of each item should be the "constructor" name and the label:
-
- -menuitems => [
- [Button => '~Quit', -command => [destroy => $mw]],
- [Checkbutton => '~Oil', -variable => \$oil],
- ]
-
-=item B<-postcommand>
-
-A callback to be invoked before posting the menu.
-
-=item B<-tearoff>
-
-Specifies whether sub-menu can be torn-off or not.
-
-=item B<-menuvar>
-
-Scalar reference that will be set to the newly-created sub-menu.
-
-=back
-
-The returned object is currently a blessed reference to an array of two items:
-the containing Menu and the 'label'.
-Methods C<configure> and C<cget> are mapped onto underlying C<entryconfigure>
-and C<entrycget>.
-
-The main purpose of the OO interface is to allow derived item classes to
-be defined which pre-set the options used to create a more basic item.
-
-=head1 BUGS
-
-This OO interface is very new. Using the label as the "key" is a problem
-for separaror items which don't have one. The alternative would be to
-use an index into the menu but that is a problem if items are deleted
-(or inserted other than at the end).
-
-There should probably be a PostInit entry point too, or a more widget like
-defered 'configure'.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Menubar.pm b/Master/tlpkg/tlperl/lib/Tk/Menubar.pm
deleted file mode 100644
index 54b745130bf..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Menubar.pm
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Menubar;
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '4.006'; # $Id: //depot/Tkutf8/Tk/Menubar.pm#6 $
-
-use Tk::Frame;
-use Tk::Menu;
-# use Carp;
-# carp "Tk::Menubar is obsolete" if $^W;
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/Menubutton.pm b/Master/tlpkg/tlperl/lib/Tk/Menubutton.pm
deleted file mode 100644
index f3f4481b2ca..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Menubutton.pm
+++ /dev/null
@@ -1,401 +0,0 @@
-# Converted from menu.tcl --
-#
-# This file defines the default bindings for Tk menus and menubuttons.
-# It also implements keyboard traversal of menus and implements a few
-# other utility procedures related to menus.
-#
-# @(#) menu.tcl 1.34 94/12/19 17:09:09
-#
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-
-package Tk::Menubutton;
-require Tk;
-
-use vars qw($VERSION);
-$VERSION = '4.005'; # $Id: //depot/Tkutf8/Menubutton/Menubutton.pm#4 $
-
-use base qw(Tk::Widget);
-
-Construct Tk::Widget 'Menubutton';
-
-import Tk qw(&Ev $XS_VERSION);
-
-bootstrap Tk::Menubutton;
-
-sub Tk_cmd { \&Tk::menubutton }
-
-sub InitObject
-{
- my ($mb,$args) = @_;
- my $menuitems = delete $args->{-menuitems};
- my $tearoff = delete $args->{-tearoff};
- $mb->SUPER::InitObject($args);
- if ((defined($menuitems) || defined($tearoff)) && %$args)
- {
- $mb->configure(%$args);
- %$args = ();
- }
- $mb->menu(-tearoff => $tearoff) if (defined $tearoff);
- $mb->AddItems(@$menuitems) if (defined $menuitems)
-}
-
-
-#
-#-------------------------------------------------------------------------
-# Elements of tkPriv that are used in this file:
-#
-# cursor - Saves the -cursor option for the posted menubutton.
-# focus - Saves the focus during a menu selection operation.
-# Focus gets restored here when the menu is unposted.
-# inMenubutton - The name of the menubutton widget containing
-# the mouse, or an empty string if the mouse is
-# not over any menubutton.
-# popup - If a menu has been popped up via tk_popup, this
-# gives the name of the menu. Otherwise this
-# value is empty.
-# postedMb - Name of the menubutton whose menu is currently
-# posted, or an empty string if nothing is posted
-# A grab is set on this widget.
-# relief - Used to save the original relief of the current
-# menubutton.
-# window - When the mouse is over a menu, this holds the
-# name of the menu; it's cleared when the mouse
-# leaves the menu.
-#-------------------------------------------------------------------------
-#-------------------------------------------------------------------------
-# Overall note:
-# This file is tricky because there are four different ways that menus
-# can be used:
-#
-# 1. As a pulldown from a menubutton. This is the most common usage.
-# In this style, the variable tkPriv(postedMb) identifies the posted
-# menubutton.
-# 2. As a torn-off menu copied from some other menu. In this style
-# tkPriv(postedMb) is empty, and the top-level menu is no
-# override-redirect.
-# 3. As an option menu, triggered from an option menubutton. In thi
-# style tkPriv(postedMb) identifies the posted menubutton.
-# 4. As a popup menu. In this style tkPriv(postedMb) is empty and
-# the top-level menu is override-redirect.
-#
-# The various binding procedures use the state described above to
-# distinguish the various cases and take different actions in each
-# case.
-#-------------------------------------------------------------------------
-# Menu::Bind --
-# This procedure is invoked the first time the mouse enters a menubutton
-# widget or a menubutton widget receives the input focus. It creates
-# all of the class bindings for both menubuttons and menus.
-#
-# Arguments:
-# w - The widget that was just entered or just received
-# the input focus.
-# event - Indicates which event caused the procedure to be invoked
-# (Enter or FocusIn). It is used so that we can carry out
-# the functions of that event in addition to setting up
-# bindings.
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<FocusIn>','NoOp');
- $mw->bind($class,'<Enter>','Enter');
- $mw->bind($class,'<Leave>','Leave');
- $mw->bind($class,'<1>','ButtonDown');
- $mw->bind($class,'<Motion>',['Motion','up',Ev('X'),Ev('Y')]);
- $mw->bind($class,'<B1-Motion>',['Motion','down',Ev('X'),Ev('Y')]);
- $mw->bind($class,'<ButtonRelease-1>','ButtonUp');
- $mw->bind($class,'<space>','PostFirst');
- $mw->bind($class,'<Return>','PostFirst');
- return $class;
-}
-
-sub ButtonDown
-{my $w = shift;
- my $Ev = $w->XEvent;
- $Tk::inMenubutton->Post($Ev->X,$Ev->Y) if (defined $Tk::inMenubutton);
-}
-
-sub PostFirst
-{
- my $w = shift;
- my $menu = $w->cget('-menu');
- $w->Post();
- $menu->FirstEntry() if (defined $menu);
-}
-
-
-# Enter --
-# This procedure is invoked when the mouse enters a menubutton
-# widget. It activates the widget unless it is disabled. Note:
-# this procedure is only invoked when mouse button 1 is *not* down.
-# The procedure B1Enter is invoked if the button is down.
-#
-# Arguments:
-# w - The name of the widget.
-sub Enter
-{
- my $w = shift;
- $Tk::inMenubutton->Leave if (defined $Tk::inMenubutton);
- $Tk::inMenubutton = $w;
- if ($w->cget('-state') ne 'disabled')
- {
- $w->configure('-state','active')
- }
-}
-
-sub Leave
-{
- my $w = shift;
- $Tk::inMenubutton = undef;
- return unless Tk::Exists($w);
- if ($w->cget('-state') eq 'active')
- {
- $w->configure('-state','normal')
- }
-}
-# Post --
-# Given a menubutton, this procedure does all the work of posting
-# its associated menu and unposting any other menu that is currently
-# posted.
-#
-# Arguments:
-# w - The name of the menubutton widget whose menu
-# is to be posted.
-# x, y - Root coordinates of cursor, used for positioning
-# option menus. If not specified, then the center
-# of the menubutton is used for an option menu.
-sub Post
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- return if ($w->cget('-state') eq 'disabled');
- return if (defined $Tk::postedMb && $w == $Tk::postedMb);
- my $menu = $w->cget('-menu');
- return unless (defined($menu) && $menu->index('last') ne 'none');
-
- my $tearoff = $Tk::platform eq 'unix' || $menu->cget('-type') eq 'tearoff';
-
- my $wpath = $w->PathName;
- my $mpath = $menu->PathName;
- unless (index($mpath,"$wpath.") == 0)
- {
- die "Cannot post $mpath : not a descendant of $wpath";
- }
-
- my $cur = $Tk::postedMb;
- if (defined $cur)
- {
- Tk::Menu->Unpost(undef); # fixme
- }
- $Tk::cursor = $w->cget('-cursor');
- $Tk::relief = $w->cget('-relief');
- $w->configure('-cursor','arrow');
- $w->configure('-relief','raised');
- $Tk::postedMb = $w;
- $Tk::focus = $w->focusCurrent;
- $menu->activate('none');
- $menu->GenerateMenuSelect;
- # If this looks like an option menubutton then post the menu so
- # that the current entry is on top of the mouse. Otherwise post
- # the menu just below the menubutton, as for a pull-down.
-
- eval
- {local $SIG{'__DIE__'};
- my $dir = $w->cget('-direction');
- if ($dir eq 'above')
- {
- $menu->post($w->rootx, $w->rooty - $menu->ReqHeight);
- }
- elsif ($dir eq 'below')
- {
- $menu->post($w->rootx, $w->rooty + $w->Height);
- }
- elsif ($dir eq 'left')
- {
- my $x = $w->rootx - $menu->ReqWidth;
- my $y = int((2*$w->rooty + $w->Height) / 2);
- if ($w->cget('-indicatoron') == 1 && defined($w->cget('-textvariable')))
- {
- $menu->PostOverPoint($x,$y,$menu->FindName($w->cget('-text')))
- }
- else
- {
- $menu->post($x,$y);
- }
- }
- elsif ($dir eq 'right')
- {
- my $x = $w->rootx + $w->Width;
- my $y = int((2*$w->rooty + $w->Height) / 2);
- if ($w->cget('-indicatoron') == 1 && defined($w->cget('-textvariable')))
- {
- $menu->PostOverPoint($x,$y,$menu->FindName($w->cget('-text')))
- }
- else
- {
- $menu->post($x,$y);
- }
- }
- else
- {
- if ($w->cget('-indicatoron') == 1 && defined($w->cget('-textvariable')))
- {
- if (!defined($y))
- {
- $x = $w->rootx+$w->width/2;
- $y = $w->rooty+$w->height/2
- }
- $menu->PostOverPoint($x,$y,$menu->FindName($w->cget('-text')))
- }
- else
- {
- $menu->post($w->rootx,$w->rooty+$w->height);
- }
- }
- };
- if ($@)
- {
- Tk::Menu->Unpost;
- die $@
- }
-
- $Tk::tearoff = $tearoff;
- if ($tearoff)
- {
- $menu->focus;
- if ($w->viewable)
- {
- $w->SaveGrabInfo;
- $w->grabGlobal;
- }
- }
-}
-# Motion --
-# This procedure handles mouse motion events inside menubuttons, and
-# also outside menubuttons when a menubutton has a grab (e.g. when a
-# menu selection operation is in progress).
-#
-# Arguments:
-# w - The name of the menubutton widget.
-# upDown - "down" means button 1 is pressed, "up" means
-# it isn't.
-# rootx, rooty - Coordinates of mouse, in (virtual?) root window.
-sub Motion
-{
- my $w = shift;
- my $upDown = shift;
- my $rootx = shift;
- my $rooty = shift;
- return if (defined($Tk::inMenubutton) && $Tk::inMenubutton == $w);
- my $new = $w->Containing($rootx,$rooty);
- if (defined($Tk::inMenubutton))
- {
- if (!defined($new) || ($new != $Tk::inMenubutton && $w->toplevel != $new->toplevel))
- {
- $Tk::inMenubutton->Leave();
- }
- }
- if (defined($new) && $new->IsMenubutton && $new->cget('-indicatoron') == 0 &&
- $w->cget('-indicatoron') == 0)
- {
- if ($upDown eq 'down')
- {
- $new->Post($rootx,$rooty);
- }
- else
- {
- $new->Enter();
- }
- }
-}
-# ButtonUp --
-# This procedure is invoked to handle button 1 releases for menubuttons.
-# If the release happens inside the menubutton then leave its menu
-# posted with element 0 activated. Otherwise, unpost the menu.
-#
-# Arguments:
-# w - The name of the menubutton widget.
-
-sub ButtonUp {
- my $w = shift;
-
- my $tearoff = $Tk::platform eq 'unix' || (defined($w->cget('-menu')) &&
- $w->cget('-menu')->cget('-type') eq 'tearoff');
- if ($tearoff && (defined($Tk::postedMb) && $Tk::postedMb == $w)
- && (defined($Tk::inMenubutton) && $Tk::inMenubutton == $w)) {
- $Tk::postedMb->cget(-menu)->FirstEntry();
- } else {
- Tk::Menu->Unpost(undef);
- }
-} # end ButtonUp
-
-# Some convenience methods
-
-sub menu
-{
- my ($w,%args) = @_;
- my $menu = $w->cget('-menu');
- if (!defined $menu)
- {
- require Tk::Menu;
- $w->ColorOptions(\%args) if ($Tk::platform eq 'unix');
- $menu = $w->Menu(%args);
- $w->configure('-menu'=>$menu);
- }
- else
- {
- $menu->configure(%args);
- }
- return $menu;
-}
-
-sub separator { require Tk::Menu::Item; shift->menu->Separator(@_); }
-sub command { require Tk::Menu::Item; shift->menu->Command(@_); }
-sub cascade { require Tk::Menu::Item; shift->menu->Cascade(@_); }
-sub checkbutton { require Tk::Menu::Item; shift->menu->Checkbutton(@_); }
-sub radiobutton { require Tk::Menu::Item; shift->menu->Radiobutton(@_); }
-
-sub AddItems
-{
- shift->menu->AddItems(@_);
-}
-
-sub entryconfigure
-{
- shift->menu->entryconfigure(@_);
-}
-
-sub entrycget
-{
- shift->menu->entrycget(@_);
-}
-
-sub FindMenu
-{
- my $child = shift;
- my $char = shift;
- my $ul = $child->cget('-underline');
- if (defined $ul && $ul >= 0 && $child->cget('-state') ne 'disabled')
- {
- my $char2 = $child->cget('-text');
- $char2 = substr("\L$char2",$ul,1) if (defined $char2);
- if (!defined($char) || $char eq '' || (defined($char2) && "\l$char" eq $char2))
- {
- $child->PostFirst;
- return $child;
- }
- }
- return undef;
-}
-
-1;
-
-__END__
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Menubutton.pod b/Master/tlpkg/tlperl/lib/Tk/Menubutton.pod
deleted file mode 100644
index fcda3e958aa..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Menubutton.pod
+++ /dev/null
@@ -1,249 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1997 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Menubutton - Create and manipulate Menubutton widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-I<$menubutton> = I<$parent>-E<gt>B<Menubutton>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-activebackground> B<-cursor> B<-highlightthickness> B<-takefocus>
-B<-activeforeground> B<-disabledforeground> B<-image> B<-text>
-B<-anchor> B<-font> B<-justify> B<-textvariable>
-B<-background> B<-foreground> B<-padx> B<-underline>
-B<-bitmap> B<-highlightbackground> B<-pady> B<-wraplength>
-B<-borderwidth> B<-highlightcolor> B<-relief>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Command-Line Name: B<-compound>
-
-=item Database Name: B<compound>
-
-=item Database Class: B<Compound>
-
-Specifies whether the button should display both an image and text,
-and if so, where the image should be placed relative to the text.
-Valid values for this option are B<bottom>, B<center>, B<left>,
-B<none>, B<right> and B<top>. The default value is B<none>, meaning
-that the button will display either an image or text, depending on the
-values of the -image and -bitmap options.
-
-=item Name: B<direction>
-
-=item Class: B<Height>
-
-=item Switch: B<-direction>
-
-Specifies where the menu is going to be popup up. B<above> tries to
-pop the menu above the menubutton. B<below> tries to pop the menu
-below the menubutton. B<left> tries to pop the menu to the left of
-the menubutton. B<right> tries to pop the menu to the right of the
-menu button. B<flush> pops the menu directly over the menubutton.
-
-=item Name: B<height>
-
-=item Class: B<Height>
-
-=item Switch: B<-height>
-
-Specifies a desired height for the menubutton.
-If an image or bitmap is being displayed in the menubutton then the value is in
-screen units (i.e. any of the forms acceptable to B<Tk_GetPixels>);
-for text it is in lines of text.
-If this option isn't specified, the menubutton's desired height is computed
-from the size of the image or bitmap or text being displayed in it.
-
-=item Name: B<indicatorOn>
-
-=item Class: B<IndicatorOn>
-
-=item Switch: B<-indicatoron>
-
-The value must be a proper boolean value. If it is true then
-a small indicator rectangle will be displayed on the right side
-of the menubutton and the default menu bindings will treat this
-as an option menubutton. If false then no indicator will be
-displayed.
-
-=item Name: B<menu>
-
-=item Class: B<MenuName>
-
-=item Switch: B<-menu>
-
-Specifies the path name of the menu associated with this menubutton.
-The menu must be a child of the menubutton.
-
-=item Name: B<state>
-
-=item Class: B<State>
-
-=item Switch: B<-state>
-
-Specifies one of three states for the menubutton: B<normal>, B<active>,
-or B<disabled>. In normal state the menubutton is displayed using the
-B<foreground> and B<background> options. The active state is
-typically used when the pointer is over the menubutton. In active state
-the menubutton is displayed using the B<activeForeground> and
-B<activeBackground> options. Disabled state means that the menubutton
-should be insensitive: the default bindings will refuse to activate
-the widget and will ignore mouse button presses.
-In this state the B<disabledForeground> and
-B<background> options determine how the button is displayed.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies a desired width for the menubutton.
-If an image or bitmap is being displayed in the menubutton then the value is in
-screen units (i.e. any of the forms acceptable to B<Tk_GetPixels>);
-for text it is in characters.
-If this option isn't specified, the menubutton's desired width is computed
-from the size of the image or bitmap or text being displayed in it.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Menubutton> method creates a new window (given by the
-$widget argument) and makes it into a menubutton widget.
-Additional
-options, described above, may be specified on the command line
-or in the option database
-to configure aspects of the menubutton such as its colors, font,
-text, and initial relief. The B<menubutton> command returns its
-$widget argument. At the time this command is invoked,
-there must not exist a window named $widget, but
-$widget's parent must exist.
-
-A menubutton is a widget that displays a textual string, bitmap, or image
-and is associated with a menu widget.
-If text is displayed, it must all be in a single font, but it
-can occupy multiple lines on the screen (if it contains newlines
-or if wrapping occurs because of the B<wrapLength> option) and
-one of the characters may optionally be underlined using the
-B<underline> option. In normal usage, pressing
-mouse button 1 over the menubutton causes the associated menu to
-be posted just underneath the menubutton. If the mouse is moved over
-the menu before releasing the mouse button, the button release
-causes the underlying menu entry to be invoked. When the button
-is released, the menu is unposted.
-
-Menubuttons are typically organized into groups called menu bars
-that allow scanning:
-if the mouse button is pressed over one menubutton (causing it
-to post its menu) and the mouse is moved over another menubutton
-in the same menu bar without releasing the mouse button, then the
-menu of the first menubutton is unposted and the menu of the
-new menubutton is posted instead.
-
-There are several interactions between menubuttons and menus; see
-the B<menu> manual entry for information on various menu configurations,
-such as pulldown menus and option menus.
-
-=head1 WIDGET METHODS
-
-The B<Menubutton> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The B<menu> method returns the menu associated with the widget.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-=head1 DEFAULT BINDINGS
-
-Tk automatically creates class bindings for menubuttons that give them
-the following default behavior:
-
-=over 4
-
-=item [1]
-
-A menubutton activates whenever the mouse passes over it and deactivates
-whenever the mouse leaves it.
-
-=item [2]
-
-Pressing mouse button 1 over a menubutton posts the menubutton:
-its relief changes to raised and its associated menu is posted
-under the menubutton. If the mouse is dragged down into the menu
-with the button still down, and if the mouse button is then
-released over an entry in the menu, the menubutton is unposted
-and the menu entry is invoked.
-
-=item [3]
-
-If button 1 is pressed over a menubutton and then released over that
-menubutton, the menubutton stays posted: you can still move the mouse
-over the menu and click button 1 on an entry to invoke it.
-Once a menu entry has been invoked, the menubutton unposts itself.
-
-=item [4]
-
-If button 1 is pressed over a menubutton and then dragged over some
-other menubutton, the original menubutton unposts itself and the
-new menubutton posts.
-
-=item [5]
-
-If button 1 is pressed over a menubutton and released outside
-any menubutton or menu, the menubutton unposts without invoking
-any menu entry.
-
-=item [6]
-
-When a menubutton is posted, its associated menu claims the input
-focus to allow keyboard traversal of the menu and its submenus.
-See the B<menu> documentation for details on these bindings.
-
-=item [7]
-
-If the B<underline> option has been specified for a menubutton
-then keyboard traversal may be used to post the menubutton:
-Alt+I<x>, where I<x> is the underlined character (or its
-lower-case or upper-case equivalent), may be typed in any window
-under the menubutton's toplevel to post the menubutton.
-
-=item [8]
-
-The F10 key may be typed in any window to post the first menubutton
-under its toplevel window that isn't disabled.
-
-=item [9]
-
-If a menubutton has the input focus, the space and return keys
-post the menubutton.
-
-If the menubutton's state is B<disabled> then none of the above
-actions occur: the menubutton is completely non-responsive.
-
-The behavior of menubuttons can be changed by defining new bindings for
-individual widgets or by redefining the class bindings.
-
-=back
-
-=head1 KEYWORDS
-
-menubutton, widget
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Message.pm b/Master/tlpkg/tlperl/lib/Tk/Message.pm
deleted file mode 100644
index 63b0f170097..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Message.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Message;
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '4.006'; # $Id: //depot/Tkutf8/Tk/Message.pm#6 $
-
-require Tk::Widget;
-
-use base qw(Tk::Widget);
-
-Construct Tk::Widget 'Message';
-
-sub Tk_cmd { \&Tk::message }
-
-1;
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Message.pod b/Master/tlpkg/tlperl/lib/Tk/Message.pod
deleted file mode 100644
index 9b0d67f3118..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Message.pod
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Message - Create and manipulate Message widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-I<$message> = I<$parent>-E<gt>B<Message>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-anchor> B<-font> B<-highlightthickness> B<-takefocus>
-B<-background> B<-foreground> B<-padx> B<-text>
-B<-borderwidth> B<-highlightbackground> B<-pady> B<-textvariable>
-B<-cursor> B<-highlightcolor> B<-relief> B<-width>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<aspect>
-
-=item Class: B<Aspect>
-
-=item Switch: B<-aspect>
-
-Specifies a non-negative integer value indicating desired
-aspect ratio for the text. The aspect ratio is specified as
-100*width/height. 100 means the text should
-be as wide as it is tall, 200 means the text should
-be twice as wide as it is tall, 50 means the text should
-be twice as tall as it is wide, and so on.
-Used to choose line length for text if B<width> option
-isn't specified.
-Defaults to 150.
-
-=item Name: B<justify>
-
-=item Class: B<Justify>
-
-=item Switch: B<-justify>
-
-Specifies how to justify lines of text.
-Must be one of B<left>, B<center>, or B<right>. Defaults
-to B<left>.
-This option works together with the B<anchor>, B<aspect>,
-B<padX>, B<padY>, and B<width> options to provide a variety
-of arrangements of the text within the window.
-The B<aspect> and B<width> options determine the amount of
-screen space needed to display the text.
-The B<anchor>, B<padX>, and B<padY> options determine where this
-rectangular area is displayed within the widget's window, and the
-B<justify> option determines how each line is displayed within that
-rectangular region.
-For example, suppose B<anchor> is B<e> and B<justify> is
-B<left>, and that the message window is much larger than needed
-for the text.
-The the text will displayed so that the left edges of all the lines
-line up and the right edge of the longest line is B<padX> from
-the right side of the window; the entire text block will be centered
-in the vertical span of the window.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies the length of lines in the window.
-The value may have any of the forms acceptable to B<Tk_GetPixels>.
-If this option has a value greater than zero then the B<aspect>
-option is ignored and the B<width> option determines the line
-length.
-If this option has a value less than or equal to zero, then
-the B<aspect> option determines the line length.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Message> method creates a new window (given by the
-$widget argument) and makes it into a message widget.
-Additional
-options, described above, may be specified on the command line
-or in the option database
-to configure aspects of the message such as its colors, font,
-text, and initial relief. The B<message> command returns its
-$widget argument. At the time this command is invoked,
-there must not exist a window named $widget, but
-$widget's parent must exist.
-
-A message is a widget that displays a textual string. A message
-widget has three special features. First, it breaks up
-its string into lines in order to produce a given aspect ratio
-for the window. The line breaks are chosen at word boundaries
-wherever possible (if not even a single word would fit on a
-line, then the word will be split across lines). Newline characters
-in the string will force line breaks; they can be used, for example,
-to leave blank lines in the display.
-
-The second feature of a message widget is justification. The text
-may be displayed left-justified (each line starts at the left side of
-the window), centered on a line-by-line basis, or right-justified
-(each line ends at the right side of the window).
-
-The third feature of a message widget is that it handles control
-characters and non-printing characters specially. Tab characters
-are replaced with enough blank space to line up on the next
-8-character boundary. Newlines cause line breaks. Other control
-characters (ASCII code less than 0x20) and characters not defined
-in the font are displayed as a four-character sequence B<\x>I<hh> where
-I<hh> is the two-digit hexadecimal number corresponding to
-the character. In the unusual case where the font doesn't contain
-all of the characters in ``0123456789abcdef\x'' then control
-characters and undefined characters are not displayed at all.
-
-=head1 WIDGET METHODS
-
-The B<Message> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-=head1 DEFAULT BINDINGS
-
-When a new message is created, it has no default event bindings:
-messages are intended for output purposes only.
-
-=head1 BUGS
-
-Tabs don't work very well with text that is centered or right-justified.
-The most common result is that the line is justified wrong.
-
-=head1 KEYWORDS
-
-message, widget
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/MsgBox.pm b/Master/tlpkg/tlperl/lib/Tk/MsgBox.pm
deleted file mode 100644
index 9c753cf4e33..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/MsgBox.pm
+++ /dev/null
@@ -1,506 +0,0 @@
-# -*- perl -*-
-
-# msgbox.tcl --
-#
-# Implements messageboxes for platforms that do not have native
-# messagebox support.
-#
-# RCS: @(#) $Id: msgbox.tcl,v 1.30 2006/01/25 18:22:04 dgp Exp $
-#
-# Copyright (c) 1994-1997 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-
-# Translated to Perl/Tk by Slaven Rezic
-
-package Tk::MsgBox;
-
-use Tk qw(Ev);
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '4.002';
-
-use base qw(Tk::Toplevel);
-Construct Tk::Widget 'MsgBox';
-
-sub import {
- if (defined $_[1] and $_[1] eq 'as_default') {
- local $^W = 0;
- package Tk;
- *tk_messageBox = sub {
- Tk::MsgBox::_tk_messageBox(@_);
- };
- }
-}
-
-use vars qw(%image);
-
-sub ClassInit {
- my($class, $mw) = @_;
- $class->SUPER::ClassInit($mw);
-
- $image{b1}{$mw} = $mw->Bitmap(-foreground => 'black',
- -data => "#define b1_width 32\n#define b1_height 32
-static unsigned char q1_bits[] = {
- 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x07, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x03,
- 0x20, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x10,
- 0x04, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40,
- 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
- 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80,
- 0x01, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40,
- 0x04, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x08,
- 0x60, 0x00, 0x00, 0x04, 0x80, 0x03, 0x80, 0x03, 0x00, 0x0c, 0x78, 0x00,
- 0x00, 0x30, 0x04, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x40, 0x04, 0x00,
- 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};");
-
- $image{b2}{$mw} = $mw->Bitmap(-foreground => 'white',
- -data => "#define b2_width 32\n#define b2_height 32
-static unsigned char b2_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x00,
- 0xc0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0x0f,
- 0xf8, 0xff, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x3f,
- 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f,
- 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f,
- 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x3f,
- 0xf8, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0x07,
- 0x80, 0xff, 0xff, 0x03, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0xf0, 0x07, 0x00,
- 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00,
- 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};");
-
- $image{'q'}{$mw} = $mw->Bitmap(-foreground => 'blue',
- -data => "#define q_width 32\n#define q_height 32
-static unsigned char q_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00,
- 0x00, 0x10, 0x0f, 0x00, 0x00, 0x18, 0x1e, 0x00, 0x00, 0x38, 0x1e, 0x00,
- 0x00, 0x38, 0x1e, 0x00, 0x00, 0x10, 0x0f, 0x00, 0x00, 0x80, 0x07, 0x00,
- 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00,
- 0x00, 0xe0, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};");
-
- $image{'i'}{$mw} = $mw->Bitmap(-foreground => 'blue',
- -data => "#define i_width 32\n#define i_height 32
-static unsigned char i_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xe0, 0x01, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xf0, 0x03, 0x00,
- 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xf8, 0x03, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00,
- 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00,
- 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xf0, 0x07, 0x00,
- 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};");
-
- $image{'w1'}{$mw} = $mw->Bitmap(-foreground => 'black',
- -data => "#define w1_width 32\n#define w1_height 32
-static unsigned char w1_bits[] = {
- 0x00, 0x80, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x20, 0x04, 0x00,
- 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00,
- 0x00, 0x08, 0x10, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x04, 0x20, 0x00,
- 0x00, 0x02, 0x20, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x40, 0x00,
- 0x00, 0x01, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x40, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x02,
- 0x20, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x08,
- 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10,
- 0x04, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x40,
- 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x20,
- 0xfc, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00};");
-
- $image{'w2'}{$mw} = $mw->Bitmap(-foreground => 'yellow',
- -data => "#define w2_width 32\n#define w2_height 32
-static unsigned char w2_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00,
- 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xf0, 0x07, 0x00,
- 0x00, 0xf0, 0x0f, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xf8, 0x1f, 0x00,
- 0x00, 0xfc, 0x1f, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0xfe, 0x3f, 0x00,
- 0x00, 0xfe, 0x7f, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0xff, 0xff, 0x00,
- 0x80, 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0x01, 0xc0, 0xff, 0xff, 0x01,
- 0xc0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07,
- 0xf0, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0x0f,
- 0xf8, 0xff, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0x1f, 0xfe, 0xff, 0xff, 0x3f,
- 0xfe, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x1f,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};");
-
- $image{'w3'}{$mw} = $mw->Bitmap(-foreground => 'black',
- -data => "#define w3_width 32\n#define w3_height 32
-static unsigned char w3_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xc0, 0x03, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00,
- 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00,
- 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00,
- 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00,
- 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};");
-
- $class;
-}
-
-# ::tk::MessageBox --
-#
-# Pops up a messagebox with an application-supplied message with
-# an icon and a list of buttons. This procedure will be called
-# by tk_messageBox if the platform does not have native
-# messagebox support, or if the particular type of messagebox is
-# not supported natively.
-#
-# Color icons are used on Unix displays that have a color
-# depth of 4 or more and $tk_strictMotif is not on.
-#
-# This procedure is a private procedure shouldn't be called
-# directly. Call tk_messageBox instead.
-#
-# See the user documentation for details on what tk_messageBox does.
-#
-sub Populate {
- my($w, $args) = @_;
-
- $w->SUPER::Populate($args);
-
- {
- my $icon = delete $args->{-icon};
- if (!defined $icon) {
- $icon = 'info';
- }
- if (!grep {$icon eq $_} qw(info warning error question)) {
- die "bad -icon value \"$icon\": must be error, info, question, or warning";
- }
- if ($Tk::platform eq 'aqua') {
- if ($icon eq 'error') {
- $icon = 'stop';
- } elsif ($icon eq 'warning') {
- $icon = 'caution';
- } elsif ($icon eq 'info') {
- $icon = 'note';
- }
- }
- $w->{Configure}{icon} = $icon;
- }
-
- {
- my $type = delete $args->{-type};
- if (!defined $type) {
- $type = 'ok';
- }
- if ($type =~ m{^abortretryignore$}i) {
- $w->{Names} = [qw(abort retry ignore)];
- $w->{Labels} = [qw(&Abort &Retry &Ignore)];
- $w->{Cancel} = 'abort';
- } elsif ($type =~ m{^ok$}i) {
- $w->{Names} = [qw(ok)];
- $w->{Labels} = [qw(&OK)];
- $w->{Cancel} = 'ok';
- } elsif ($type =~ m{^okcancel$}i) {
- $w->{Names} = [qw(ok cancel)];
- $w->{Labels} = [qw(&OK &Cancel)];
- $w->{Cancel} = 'cancel';
- } elsif ($type =~ m{^retrycancel$}i) {
- $w->{Names} = [qw(retry cancel)];
- $w->{Labels} = [qw(&Retry &Cancel)];
- $w->{Cancel} = 'cancel';
- } elsif ($type =~ m{^yesno$}i) {
- $w->{Names} = [qw(yes no)];
- $w->{Labels} = [qw(&Yes &No)];
- $w->{Cancel} = 'no';
- } elsif ($type =~ m{^yesnocancel$}i) {
- $w->{Names} = [qw(yes no cancel)];
- $w->{Labels} = [qw(&Yes &No &Cancel)];
- $w->{Cancel} = 'cancel';
- } else {
- die "bad -type value \"$type\": must be abortretryignore, ok, okcancel, retrycancel, yesno, or yesnocancel";
- }
- $w->{Configure}{type} = $type;
- }
-
- $w->iconname('Dialog');
-
- $w->withdraw;
- #
- # The default value of the title is space (" ") not the empty string
- # because for some window managers, a
- # wm title .foo ""
- # causes the window title to be "foo" instead of the empty string.
- #
- $w->ConfigSpecs
- ('-default' => ['PASSIVE',undef,undef,''],
- '-detail' => ['PASSIVE',undef,undef,''],
- '-message' => ['PASSIVE',undef,undef,''],
- #not needed, we can do it different way in perl: '-parent' => ['PASSIVE' ...],
- '-title' => ['PASSIVE',undef,undef," "],
- );
- $w;
-}
-
-sub Show {
- my $w = shift;
-
- # If reusing the widget:
- $_->destroy for ($w->children);
-
- my @buttons;
- for my $i (0 .. $#{ $w->{Names} }) {
- my($name, $lab) = ($w->{Names}[$i], $w->{Labels}[$i]);
- push @buttons, [$name, -text => $lab]; # XXX missing: mc (message catalog)
- }
-
- # If no default button was specified, the default default is the
- # first button (Bug: 2218).
-
- if ($w->cget(-default) eq "") {
- $w->configure(-default => $buttons[0][0]);
- }
-
- my $valid = 0;
- foreach my $btn (@buttons) {
- if ($btn->[0] eq $w->cget(-default)) {
- $valid = 1;
- last;
- }
- }
- if (!$valid) {
- die "invalid default button \"" . $w->cget(-default) . "\"";
- }
-
- ### skip the step 2, not needed in Perl/Tk
-
- # 3. Create the top-level window and divide it into top
- # and bottom parts.
-
- $w->title($w->cget(-title));
- $w->protocol('WM_DELETE_WINDOW' => sub {
- $w->Subwidget($w->{Cancel})->invoke;
- });
- # There is only one background colour for the whole dialog
- my $bg = $w->cget(-background);
-
- # Message boxes should be transient with respect to their parent so that
- # they always stay on top of the parent window. But some window managers
- # will simply create the child window as withdrawn if the parent is not
- # viewable (because it is withdrawn or iconified). This is not good for
- # "grab"bed windows. So only make the message box transient if the parent
- # is viewable.
- #
- if ($w->parent->toplevel->viewable) {
- $w->transient($w->parent);
- }
-
-#XXX?
-# if {$windowingsystem eq "aqua"} {
-# unsupported::MacWindowStyle style $w dBoxProc # XXX what's that?
-# }
-
- my $w_bot = $w->Frame(-background => $bg)->pack(qw(-side bottom -fill both));
-#XXX??? NYI? $w_bot->gridAnchor('center');
- my $w_top = $w->Frame(-background => $bg)->pack(qw(-side top -fill both -expand 1));
- if ($Tk::platform ne "aqua") {
- $w_bot->configure(qw(-relief raised -bd 1));
- $w_top->configure(qw(-relief raised -bd 1));
- }
-
- # 4. Fill the top part with bitmap, message and detail (use the
- # option database for -wraplength and -font so that they can be
- # overridden by the caller).
-
- $w->optionAdd('*MsgBox.msg.wrapLength', '3i', 'widgetDefault');
- $w->optionAdd('*MsgBox.dtl.wrapLength', '3i', 'widgetDefault');
- if ($Tk::platform eq "aqua") {
- $w->optionAdd('*MsgBox.msg.font', 'system', 'widgetDefault');
- $w->optionAdd('*MsgBox.dtl.font', 'system', 'widgetDefault');
- } else {
- $w->optionAdd('*MsgBox.msg.font', [qw(Times 14)], 'widgetDefault');
- $w->optionAdd('*MsgBox.dtl.font', [qw(Times 10)], 'widgetDefault');
- }
-
- my $w_msg = $w->Label(qw(Name msg -anchor nw -justify left),
- -text => $w->cget(-message),
- -background => $bg,
- );
- my $w_dtl;
- if ($w->cget(-detail) ne "") {
- $w_dtl = $w->Label(qw(Name dtl -anchor nw -justify left),
- -text => $w->cget(-detail),
- -background => $bg,
- );
- }
- my $w_bitmap;
- my $icon = $w->{Configure}{icon};
- if ($icon ne "") {
- if ($Tk::platform eq "aqua"
- || ($w->depth < 4) || $Tk::strictMotif) {
- $w_bitmap = $w->Label(Name => "bitmap",
- -bitmap => $icon,
- -background => $bg,
- );
- } else {
- $w_bitmap = $w->Canvas(Name => "bitmap",
- qw(-width 32 -height 32 -highlightthickness 0),
- -background => $bg,
- );
- my $mw = $w->MainWindow;
- if ($icon eq 'error') {
- $w_bitmap->create(qw(oval 0 0 31 31 -fill red -outline black));
- $w_bitmap->create(qw(line 9 9 23 23 -fill white -width 4));
- $w_bitmap->create(qw(line 9 23 23 9 -fill white -width 4));
- } elsif ($icon eq 'info') {
- $w_bitmap->create(qw(image 0 0 -anchor nw),
- -image => $image{b1}{$mw});
- $w_bitmap->create(qw(image 0 0 -anchor nw),
- -image => $image{b2}{$mw});
- $w_bitmap->create(qw(image 0 0 -anchor nw),
- -image => $image{i}{$mw});
- } elsif ($icon eq 'question') {
- $w_bitmap->create(qw(image 0 0 -anchor nw),
- -image => $image{b1}{$mw});
- $w_bitmap->create(qw(image 0 0 -anchor nw),
- -image => $image{b2}{$mw});
- $w_bitmap->create(qw(image 0 0 -anchor nw),
- -image => $image{'q'}{$mw});
- } else {
- $w_bitmap->create(qw(image 0 0 -anchor nw),
- -image => $image{w1}{$mw});
- $w_bitmap->create(qw(image 0 0 -anchor nw),
- -image => $image{w2}{$mw});
- $w_bitmap->create(qw(image 0 0 -anchor nw),
- -image => $image{w3}{$mw});
- }
- }
- } else {
- # Unlike in Tcl/Tk, a placeholder is needed here
- $w_bitmap = $w->Label;
- }
- Tk::grid($w_bitmap, $w_msg, -in => $w_top, qw(-sticky news -padx 2m -pady 2m));
- $w_top->gridColumnconfigure(qw(1 -weight 1));
- if (Tk::Exists($w_dtl)) {
- Tk::grid('^', $w_dtl, -in => $w_top, qw(-sticky news -padx 2m), -pady => [0, '2m']);
- $w_top->gridRowconfigure(qw(1 -weight 1));
- } else {
- $w_top->gridRowconfigure(qw(0 -weight 1));
- }
-
- # 5. Create a row of buttons at the bottom of the dialog.
-
- my $i = 0;
- for my $but (@buttons) {
- my($name, @opts) = @$but;
- if (!@opts) {
- # Capitalize the first letter of $name
- @opts = (-text => ucfirst $name);
- }
-
- my $cw = $w->AmpWidget('Button', -padx => '3m', @opts,
- -command => sub { $w->{selectedButton} = $name });
- $w->Advertise($name => $cw);
- if ($name eq $w->cget(-default)) {
- $cw->configure(qw(-default active));
- } else {
- $cw->configure(qw(-default normal));
- }
- $cw->grid(-in => $w_bot, -row => 0, -column => $i,
- qw(-padx 3m -pady 2m -sticky ew));
- $w_bot->gridColumnconfigure($i, -uniform => 'buttons');
- $i++;
-
- # create the binding for the key accelerator, based on the underline
- #
- # set underIdx [$w.$name cget -under]
- # if {$underIdx >= 0} {
- # set key [string index [$w.$name cget -text] $underIdx]
- # bind $w <Alt-[string tolower $key]> [list $w.$name invoke]
- # bind $w <Alt-[string toupper $key]> [list $w.$name invoke]
- # }
- }
- $w->bind('<Alt-Key>', [sub { $w->AltKeyInDialog($_[1]) }, Ev('%A')]);
-
- if ($w->cget(-default) ne "") {
- $w->bind('<FocusIn>', sub {
- my $e = shift->XEvent;
- my $w = $e->W;
- if ($w->isa('Tk::Button')) {
- $w->configure(qw(-default active));
- }
- });
- $w->bind('<FocusOut>', sub {
- my $e = shift->XEvent;
- my $w = $e->W;
- if ($w->isa('Tk::Button')) {
- $w->configure(qw(-default normal));
- }
- });
- }
-
- # 6. Create bindings for <Return>, <Escape> and <Destroy> on the dialog
-
- $w->bind('<Return>' => sub {
- my $e = shift->XEvent;
- my $w = $e->W;
- if ($w->isa('Tk::Button')) {
- $w->invoke;
- }
- });
-
- # Invoke the designated cancelling operation
- $w->bind('<Escape>' => sub { $w->Subwidget($w->{Cancel})->invoke });
-
- # At <Destroy> the buttons have vanished, so must do this directly.
- $w_msg->bind('<Destroy>' => sub { $w->{selectedButton} = $w->{Cancel} });
-
- # 7. Withdraw the window, then update all the geometry information
- # so we know how big it wants to be, then center the window in the
- # display and de-iconify it.
-
- # ::tk::PlaceWindow $w widget $data(-parent)
- $w->withdraw;
- $w->Popup;
-
- # 8. Set a grab and claim the focus too.
-
- my $focus;
- if ($w->cget(-default) ne "") {
- $focus = $w->Subwidget($w->cget(-default));
- } else {
- $focus = $w;
- }
- $w->SetFocusGrab($focus);
-
- # 9. Wait for the user to respond, then restore the focus and
- # return the index of the selected button. Restore the focus
- # before deleting the window, since otherwise the window manager
- # may take the focus away so we can't redirect it. Finally,
- # restore any grab that was in effect.
-
- $w->waitVariable(\$w->{selectedButton});
- # Copy the result now so any <Destroy> that happens won't cause
- # trouble
- my $result = $w->{selectedButton};
-
- $w->RestoreFocusGrab($focus, 'withdraw');
-
- return $result;
-}
-
-sub _tk_messageBox {
- my(%args) = @_;
- my $parent = delete $args{-parent};
- my $md = $parent->MsgBox(%args);
- my $an = $md->Show;
- $md->destroy;
- $an;
-}
-
-1;
-
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/MsgBox.pod b/Master/tlpkg/tlperl/lib/Tk/MsgBox.pod
deleted file mode 100644
index 6f5536cf89c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/MsgBox.pod
+++ /dev/null
@@ -1,83 +0,0 @@
-
-=head1 NAME
-
-Tk::MsgBox - create and manipulate a message dialog
-
-=for pm Tk/MsgBox.pm
-
-=for category Popups and Dialogs
-
-=head1 SYNOPSIS
-
- use Tk::MsgBox
- ...
- $d = $top->MsgBox(-title => "Title", -type => "okcancel");
- ...
- $button = $d->Show;
-
-=head1 DESCRIPTION
-
-B<MsgBox> is a simple dialog with predefined buttons.
-
-=head1 OPTIONS
-
-The options recognized by B<MsgBox> are as follows:
-
-=over 4
-
-=item B<-icon>
-
-Specify the icon of the MsgBox. Valid values are B<error>, B<info>,
-B<question>, or B<warning>.
-
-=item B<-type>
-
-Specify the type of the MsgBox. Valid values are B<abortretryignore>,
-B<ok>, B<okcancel>, B<retrycancel>, B<yesno>, or B<yesnocancel>. The
-type determines the buttons to be shown.
-
-=item B<-default>
-
-Specify the default button. This must be one of B<abort>, B<retry>,
-B<ignore>, B<ok>, B<cancel>, B<yes>, or B<no>, depending on the type
-of the MsgBox previously specified.
-
-=item B<-detail>
-
-Specify text for the detail region of the MsgBox.
-
-=item B<-message>
-
-Specify the message text of the MsgBox.
-
-=item B<-title>
-
-Specify the title of the MsgBox.
-
-=back
-
-=head1 METHODS
-
-B<MsgBox> supports only one method as of now:
-
-=over 4
-
-=item B<Show()>
-
-Displays the MsgBox until the user invokes one of the buttons. Returns
-the name of the button invoked.
-
-=back
-
-=head1 AUTHOR
-
-Translated from Tcl/Tk by B<Slaven Rezic> srezic@cpan.org
-
-This code is distributed under the same terms as Perl.
-
-=head1 SEE ALSO
-
-L<Tk::messageBox>, L<Tk::DialogBox>, L<Tk::Dialog>.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Mwm.pod b/Master/tlpkg/tlperl/lib/Tk/Mwm.pod
deleted file mode 100644
index e9c09cd0358..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Mwm.pod
+++ /dev/null
@@ -1,109 +0,0 @@
-
-=head1 NAME
-
-Tk::Mwm - Communicate with the Motif(tm) window manager.
-
-=for category Tix Extensions
-
-=head1 SYNOPSIS
-
-S< >B<use Tk::Mwm;>
-
-S< >I<$toplevel>-E<gt>B<mwm>I<Option>?(I<args>)?
-
-S< >I<$toplevel>-E<gt>B<mwm>(I<option> ?,I<args>?)
-
-=head1 DESCRIPTION
-
-Interface to special extentions supported by mwm.
-
-=head1 METHODS
-
-=over 4
-
-=item I<$toplevel>-E<gt>B<mwmDecoration>?(?option??=E<gt>value? ?,...?)?
-
-When no options are given, this method returns the values of all the
-decorations options for the toplevel window with the I<$toplevel>.
-When only one option is given without specifying the value, the
-current value of that option is returned.
-When more than one "option-value" pairs are passed to this method,
-the specified values will be assigned to the corresponding options. As
-a result, the appearance of the Motif decorations around the toplevel
-window will be changed.
-Possible options are: B<-border>, B<-menu>, B<-maximize>,
-B<-minimize>, B<-resizeh> and B<-title>. The value must be a
-Boolean value. The values returned by this command are undefined when
-the window is not managed by mwm.
-
-=item I<$toplevel>-E<gt>B<mwmIsmwmrunning>
-
-This returns value is true if mwm is running on the screen where the specified
-window is located, false otherwise.
-
-=item I<$toplevel>-E<gt>B<mwmProtocol>
-
-When no additional options are given, this method returns all
-protocols associated with this toplevel window.
-
-=item I<$toplevel>-E<gt>B<mwmProtocol>(B<activate> =E<gt> I<protocol_name>)
-
-Activate the mwm protocol message in mwm's menu.
-
-=item I<$toplevel>-E<gt>B<MwmProtocol>(B<add> =E<gt> I<protocol_name>, I<menu_message>)
-
-Add a new mwm protocol message for this toplevel window. The
-message is identified by the string name specified in
-I<protocol_name>. A menu item will be added into mwm's menu as
-specified by I<menu_message>. Once a new mwm protocol message is
-added to a toplevel, it can be caught by the TK B<protocol>
-method. Here is an example:
-
-S< >I<$toplevel>-E<gt>B<mwmProtocol>(B<'add'> =E<gt> 'MY_PRINT_HELLO', '"Print Hello" _H CtrlE<lt>KeyE<gt>H');
-
-S< >I<$toplevel>-E<gt>B<protocol>(B<'MY_PRINT_HELLO'> =E<gt> sub {print "Hello"});
-
-=item I<$toplevel>-E<gt>B<mwmProtocol>(B<'deactivate'> =E<gt> I<protocol_name>)
-
-Deactivate the mwm protocol message in mwm's menu.
-
-=item I<$toplevel>-E<gt>B<mwmProtocol>(B<'delete'> =E<gt> I<protocol_name>)
-
-Delete the mwm protocol message from mwm's menu. Please note that the
-window manager protocol handler associated with this protocol (by the
-B<protocol> method) is not deleted automatically. You have to
-delete the protocol handle explicitly. E.g.:
-
-S< >I<$mw>-E<gt>B<mwmProtocol>(B<'delete'> =E<gt> 'MY_PRINT_HELLO');
-
-S< >I<$mw>-E<gt>B<protocol>(B<'MY_PRINT_HELLO'> =E<gt> '');
-
-=back
-
-=head1 BUGS
-
-This is a Tix extension which perl/Tk has adopted. It has not been
-tested as perl/Tk's author has not got round to installing a Motif Window
-Manager.
-
-On some versions of mwm, the B<-border> will not disappear unless
-B<-resizeh> is turned off. Also, the B<-title> will not disappear
-unless all of B<-title>, B<-menu>, B<-maximize> and
-B<-minimize> are turned off.
-
-=head1 SEE ALSO
-
-L<Tk::Wm|Tk::Wm>
-L<Tk::tixWm|Tk::tixWm>
-L<Tk::Toplevel|Tk::Toplevel>
-
-=head1 KEYWORDS
-
-window manager, mwm, TIX
-
-=head1 AUTHOR
-
-Ioi Kim Lam - ioi@graphics.cis.upenn.edu
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/NBFrame.pm b/Master/tlpkg/tlperl/lib/Tk/NBFrame.pm
deleted file mode 100644
index 0e45251f852..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/NBFrame.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-package Tk::NBFrame;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/NBFrame/NBFrame.pm#4 $
-
-use Tk qw($XS_VERSION);
-
-use base qw(Tk::Widget);
-
-Construct Tk::Widget 'NBFrame';
-
-bootstrap Tk::NBFrame;
-
-sub Tk_cmd { \&Tk::nbframe }
-
-Tk::Methods qw(activate add delete focus info geometryinfo identify
- move pagecget pageconfigure);
-
-1;
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/NoteBook.pm b/Master/tlpkg/tlperl/lib/Tk/NoteBook.pm
deleted file mode 100644
index a1f2eedb09e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/NoteBook.pm
+++ /dev/null
@@ -1,480 +0,0 @@
-package Tk::NoteBook;
-#
-# Implementation of NoteBook widget.
-# Derived from NoteBook.tcl in Tix 4.0
-
-# Contributed by Rajappa Iyer <rsi@earthling.net>
-# Hacked by Nick for 'menu' traversal.
-# Restructured by Nick
-
-use vars qw($VERSION);
-
-#$VERSION = sprintf '4.%03d', q$Revision: #9 $ =~ /\D(\d+)\s*$/;
-$VERSION = '4.011';
-require Tk::NBFrame;
-
-use base qw(Tk::Derived Tk::NBFrame);
-Tk::Widget->Construct('NoteBook');
-use strict;
-
-use Tk qw(Ev);
-
-use Carp;
-require Tk::Frame;
-
-sub TraverseToNoteBook;
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- # class binding does not work right due to extra level of
- # widget hierachy
- $mw->bind($class,'<ButtonPress-1>', ['MouseDown',Ev('x'),Ev('y')]);
- $mw->bind($class,'<ButtonRelease-1>', ['MouseUp',Ev('x'),Ev('y')]);
-
- $mw->bind($class,'<B1-Motion>', ['MouseDown',Ev('x'),Ev('y')]);
- $mw->bind($class,'<Left>', ['FocusNext','prev']);
- $mw->bind($class,'<Right>', ['FocusNext','next']);
-
- $mw->bind($class,'<Return>', 'SetFocusByKey');
- $mw->bind($class,'<space>', 'SetFocusByKey');
- return $class;
-}
-
-sub raised
-{
- return shift->{'topchild'};
-}
-
-sub Populate
-{
- my ($w, $args) = @_;
-
- $w->SUPER::Populate($args);
- $w->{'pad-x1'} = undef;
- $w->{'pad-x2'} = undef;
- $w->{'pad-y1'} = undef;
- $w->{'pad-y2'} = undef;
-
- $w->{'windows'} = [];
- $w->{'nWindows'} = 0;
- $w->{'minH'} = 1;
- $w->{'minW'} = 1;
-
- $w->{'counter'} = 0;
- $w->{'resize'} = 0;
-
- $w->ConfigSpecs(-ipadx => ['PASSIVE', 'ipadX', 'Pad', 0],
- -ipady => ['PASSIVE', 'ipadY', 'Pad', 0],
- -takefocus => ['SELF', 'takeFocus', 'TakeFocus', 0],
- -dynamicgeometry => ['PASSIVE', 'dynamicGeometry', 'DynamicGeometry', 0]);
-
- # SetBindings
- $w->bind('<Configure>','MasterGeomProc');
-
- $args->{-slave} = 1;
- $args->{-takefocus} = 1;
- $args->{-relief} = 'raised';
-
- $w->QueueResize;
-}
-
-
-#---------------------------
-# Public methods
-#---------------------------
-
-sub page_widget
-{
- my $w = shift;
- $w->{'_pages_'} = {} unless exists $w->{'_pages_'};
- my $h = $w->{'_pages_'};
- if (@_)
- {
- my $name = shift;
- if (@_)
- {
- my $cw = shift;
- if (defined $cw)
- {
- $h->{$name} = $cw;
- }
- else
- {
- return delete $h->{$name};
- }
- }
- return $h->{$name};
- }
- else
- {
- return (values %$h);
- }
-}
-
-sub add
-{
- my ($w, $child, %args) = @_;
-
- croak("$child already exists") if defined $w->page_widget($child);
-
- my $f = Tk::Frame->new($w,Name => $child,-relief => 'raised');
-
- my $ccmd = delete $args{-createcmd};
- my $rcmd = delete $args{-raisecmd};
- $f->{-createcmd} = Tk::Callback->new($ccmd) if (defined $ccmd);
- $f->{-raisecmd} = Tk::Callback->new($rcmd) if (defined $rcmd);
-
- # manage our geometry
- $w->ManageGeometry($f);
- # create default bindings
- $f->bind('<Configure>',[$w,'ClientGeomProc','-configure', $f]);
- $f->bind('<Destroy>', [$w,'delete',$child,1]);
- $w->page_widget($child,$f);
- $w->{'nWindows'}++;
- push(@{$w->{'windows'}}, $child);
- $w->SUPER::add($child,%args);
- return $f;
-}
-
-sub raise
-{
- my ($w, $child) = @_;
- return unless defined $child;
- if ($w->pagecget($child, -state) eq 'normal')
- {
- $w->activate($child);
- $w->focus($child);
- my $childw = $w->page_widget($child);
- if ($childw)
- {
- if (defined $childw->{-createcmd})
- {
- $childw->{-createcmd}->Call($childw);
- delete $childw->{-createcmd};
- }
- # hide the original visible window
- my $oldtop = $w->{'topchild'};
- if (defined($oldtop) && ($oldtop ne $child))
- {
- $w->page_widget($oldtop)->UnmapWindow;
- }
- $w->{'topchild'} = $child;
- my $myW = $w->Width;
- my $myH = $w->Height;
-
- if (!defined $w->{'pad-x1'}) {
- $w->InitTabSize;
- }
-
- my $cW = $myW - $w->{'pad-x1'} - $w->{'pad-x2'} - 2 * (defined $w->{-ipadx} ? $w->{-ipadx} : 0);
- my $cH = $myH - $w->{'pad-y1'} - $w->{'pad-y2'} - 2 * (defined $w->{-ipady} ? $w->{-ipady} : 0);
- my $cX = $w->{'pad-x1'} + (defined $w->{-ipadx} ? $w->{-ipadx} : 0);
- my $cY = $w->{'pad-y1'} + (defined $w->{-ipady} ? $w->{-ipady} : 0);
-
- if ($cW > 0 && $cH > 0)
- {
- $childw->MoveResizeWindow($cX, $cY, $cW, $cH);
- $childw->MapWindow;
- $childw->raise;
- }
- if ((not defined $oldtop) || ($oldtop ne $child))
- {
- if (defined $childw->{-raisecmd})
- {
- $childw->{-raisecmd}->Call($childw);
- }
- }
- }
- }
-}
-
-sub pageconfigure
-{
- my ($w, $child, %args) = @_;
- my $childw = $w->page_widget($child);
- if (defined $childw)
- {
- my $ccmd = delete $args{-createcmd};
- my $rcmd = delete $args{-raisecmd};
- $childw->{-createcmd} = Tk::Callback->new($ccmd) if (defined $ccmd);
- $childw->{-raisecmd} = Tk::Callback->new($rcmd) if (defined $rcmd);
- $w->SUPER::pageconfigure($child, %args) if (keys %args);
- }
-}
-
-sub pages {
- my ($w) = @_;
- return @{$w->{'windows'}};
-}
-
-sub pagecget
-{
- my ($w, $child, $opt) = @_;
- my $childw = $w->page_widget($child);
- if (defined $childw)
- {
- return $childw->{-createcmd} if ($opt =~ /-createcmd/);
- return $childw->{-raisecmd} if ($opt =~ /-raisecmd/);
- return $w->SUPER::pagecget($child, $opt);
- }
- else
- {
- carp "page $child does not exist";
- }
-}
-
-sub delete
-{
- my ($w, $child, $destroy) = @_;
- my $childw = $w->page_widget($child,undef);
- if (defined $childw)
- {
- $childw->bind('<Destroy>', undef);
- $childw->destroy;
- @{$w->{'windows'}} = grep($_ ne $child, @{$w->{'windows'}});
- $w->{'nWindows'}--;
- $w->SUPER::delete($child);
- # see if the child to be deleted was the top child
- if ((defined $w->{'topchild'}) && ($w->{'topchild'} eq $child))
- {
- delete $w->{'topchild'};
- if ( @{$w->{'windows'}})
- {
- $w->raise($w->{'windows'}[0]);
- }
- }
- }
- else
- {
- carp "page $child does not exist" unless $destroy;
- }
-}
-
-#---------------------------------------
-# Private methods
-#---------------------------------------
-
-sub MouseDown {
- my ($w, $x, $y) = @_;
- my $name = $w->identify($x, $y);
- $w->focus($name);
- $w->{'down'} = $name;
-}
-
-sub MouseUp {
- my ($w, $x, $y) = @_;
- my $name = $w->identify($x, $y);
- if ((defined $name) && (defined $w->{'down'}) &&
- ($name eq $w->{'down'}) &&
- ($w->pagecget($name, -state) eq 'normal')) {
- $w->raise($name);
- } else {
- $w->focus($name);
- }
-}
-
-sub FocusNext {
- my ($w, $dir) = @_;
- my $name;
-
- if (not defined $w->info('focus')) {
- $name = $w->info('active');
- $w->focus($name);
- } else {
- $name = $w->info('focus' . $dir);
- $w->focus($name);
- }
-}
-
-sub SetFocusByKey {
- my ($w) = @_;
-
- my $name = $w->info('focus');
- if (defined $name) {
- if ($w->pagecget($name, -state) eq 'normal') {
- $w->raise($name);
- $w->activate($name);
- }
- }
-}
-
-sub NoteBookFind {
- my ($w, $char) = @_;
-
- my $page;
- foreach $page (@{$w->{'windows'}}) {
- my $i = $w->pagecget($page, -underline);
- my $c = substr($page, $i, 1);
- if ($char =~ /$c/) {
- if ($w->pagecget($page, -state) ne 'disabled') {
- return $page;
- }
- }
- }
- return undef;
-}
-
-# This is called by TraveseToMenu when an <Alt-Keypress> occurs
-# See the code in Tk.pm
-sub FindMenu {
- my ($w, $char) = @_;
-
- my $page;
- foreach $page (@{$w->{'windows'}}) {
- my $i = $w->pagecget($page, -underline);
- my $l = $w->pagecget($page, -label);
- next if (not defined $l);
- my $c = substr($l, $i, 1);
- if ($char =~ /$c/i) {
- if ($w->pagecget($page, -state) ne 'disabled') {
- $w->raise($page);
- return $w;
- }
- }
- }
- return undef;
-}
-
-
-sub MasterGeomProc
-{
- my ($w) = @_;
- if (Tk::Exists($w))
- {
- $w->{'resize'} = 0 unless (defined $w->{'resize'});
- $w->QueueResize;
- }
-}
-
-sub SlaveGeometryRequest
-{
- my $w = shift;
- if (Tk::Exists($w))
- {
- $w->QueueResize;
- }
-}
-
-sub LostSlave {
- my ($w, $s) = @_;
- $s->UnmapWindow;
-}
-
-sub ClientGeomProc
-{
- my ($w, $flag, $client) = @_;
- $w->QueueResize if (Tk::Exists($w));
- if ($flag =~ /-lostslave/)
- {
- carp "Geometry Management Error: Another geometry manager has taken control of $client. This error is usually caused because a widget has been created in the wrong frame: it should have been created inside $client instead of $w";
- }
-}
-
-sub QueueResize
-{
- my $w = shift;
- $w->afterIdle(['Resize', $w]) unless ($w->{'resize'}++);
-}
-
-sub Resize {
-
- my ($w) = @_;
-
- return unless Tk::Exists($w) && $w->{'nWindows'} && $w->{'resize'};
-
- $w->InitTabSize;
-
- $w->{'resize'} = 0;
- my $reqW = $w->{-width} || 0;
- my $reqH = $w->{-height} || 0;
-
- if ($reqW * $reqH == 0)
- {
- if ((not defined $w->cget('-dynamicgeometry')) ||
- ($w->cget('-dynamicgeometry') == 0)) {
- $reqW = 1;
- $reqH = 1;
-
- my $childw;
- foreach $childw ($w->page_widget)
- {
- my $cW = $childw->ReqWidth;
- my $cH = $childw->ReqHeight;
- $reqW = $cW if ($reqW < $cW);
- $reqH = $cH if ($reqH < $cH);
- }
- } else {
- if (defined $w->{'topchild'}) {
- my $topw = $w->page_widget($w->{'topchild'});
- $reqW = $topw->ReqWidth;
- $reqH = $topw->ReqHeight;
- } else {
- $reqW = 1;
- $reqH = 1;
- }
- }
- $reqW += $w->{'pad-x1'} + $w->{'pad-x2'} + 2 * (defined $w->{-ipadx} ? $w->{-ipadx} : 0);
- $reqH += $w->{'pad-y1'} + $w->{'pad-y2'} + 2 * (defined $w->{-ipady} ? $w->{-ipady} : 0);
- $reqW = ($reqW > $w->{'minW'}) ? $reqW : $w->{'minW'};
- $reqH = ($reqH > $w->{'minH'}) ? $reqH : $w->{'minH'};
- }
- if (($w->ReqWidth != $reqW) ||
- ($w->ReqHeight != $reqH)) {
- $w->{'counter'} = 0 if (not defined $w->{'counter'});
- if ($w->{'counter'} < 50) {
- $w->{'counter'}++;
- $w->GeometryRequest($reqW, $reqH);
- $w->afterIdle([$w,'Resize']);
- $w->{'resize'} = 1;
- return;
- }
- }
- $w->{'counter'} = 0;
- $w->raise($w->{'topchild'} || ${$w->{'windows'}}[0]);
- $w->{'resize'} = 0;
-}
-
-sub InitTabSize {
- my ($w) = @_;
- my ($tW, $tH) = $w->geometryinfo;
- $w->{'pad-x1'} = 2;
- $w->{'pad-x2'} = 2;
- $w->{'pad-y1'} = $tH + (defined $w->{'-ipadx'} ? $w->{'-ipadx'} : 0) + 1;
- $w->{'pad-y2'} = 2;
- $w->{'minW'} = $tW;
- $w->{'minH'} = $tH;
-}
-
-sub BalloonInfo
-{
- my ($notebook,$balloon,$X,$Y,@opt) = @_;
- my $page = $notebook->identify($X-$notebook->rootx,$Y-$notebook->rooty);
- foreach my $opt (@opt)
- {
- my $info = $balloon->GetOption($opt,$notebook);
- if ($opt =~ /^-(statusmsg|balloonmsg)$/ && UNIVERSAL::isa($info,'HASH'))
- {
- if (!defined $page)
- {
- $balloon->Deactivate;
- return;
- }
- $balloon->Subclient($page);
- if (exists $info->{$page})
- {
- return $info->{$page}
- }
- else
- {
- return '';
- }
- }
- return $info;
- }
-}
-
-1;
-
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/NoteBook.pod b/Master/tlpkg/tlperl/lib/Tk/NoteBook.pod
deleted file mode 100644
index 2cc84bb3fad..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/NoteBook.pod
+++ /dev/null
@@ -1,235 +0,0 @@
-
-=head1 NAME
-
-Tk::NoteBook - display several windows in limited space with notebook metaphor.
-
-=for pm Tixish/NoteBook.pm
-
-=for category Tix Extensions
-
-=head1 SYNOPSIS
-
- use Tk::NoteBook;
- ...
- $w = $frame->NoteBook();
- $page1 = $w->add("page1", options);
- $page2 = $w->add("page2", options);
- ...
- $page2 = $w->add("page2", options);
-
-=head1 DESCRIPTION
-
-The NoteBook widget provides a notebook metaphor to display several
-windows in limited space. The notebook is divided into a stack of pages
-of which only one is displayed at any time. The other pages can be
-selected by means of choosing the visual "tabs" at the top of the
-widget. Additionally, the <Tab> key may be used to traverse the pages.
-If B<-underline> is used, Alt- bindings will also work.
-
-The widget takes all the options that a Frame does. In addition,
-it supports the following options:
-
-=over 4
-
-=item B<-dynamicgeometry>
-
-If set to false (default and recommended), the size of the NoteBook
-will match the size of the largest page. Otherwise the size will
-match the size of the current page causing the NoteBook to change
-size when different pages of different sizes are selected.
-
-=item B<-ipadx>
-
-The amount of internal horizontal padding around the pages.
-
-=item B<-ipady>
-
-The amount of internal vertical padding around the pages.
-
-=item B<-backpagecolor>
-
-The background color of the tabs and back page.
-
-=item B<-disabledforeground>
-
-XXX
-
-=item B<-focuscolor>
-
-The color of the focus border around the tabs.
-
-=item B<-font>
-
-The font of the tab labels.
-
-=item B<-inactivebackground>
-
-XXX
-
-=item B<-tabpadx>
-
-Horizonzal padding around the tab label.
-
-=item B<-tabpady>
-
-Vertical padding around the tab label.
-
-=back
-
-=head1 METHODS
-
-The following methods may be used with a NoteBook object in addition
-to standard methods.
-
-=over 4
-
-=item B<add(>I<pageName>, I<options>B<)>
-
-Adds a page with name I<pageName> to the notebook. Returns an object
-of type B<Frame>. The recognized I<options> are:
-
-=over 4
-
-=item B<-anchor>
-
-Specifies how the information in a tab is to be displayed. Must be
-one of B<n>, B<ne>, B<e>, B<se>, B<s>, B<sw>, B<w>, B<nw> or
-B<center>.
-
-=item B<-bitmap>
-
-Specifies a bitmap to display on the tab of this page. The bitmap
-is displayed only if none of the B<-label> or B<-image> options
-are specified.
-
-=item B<-image>
-
-Specifies an image to display on the tab of this page. The image
-is displayed only if the B<-label> option is not specified.
-
-=item B<-label>
-
-Specifies the text string to display on the tab of this page.
-
-=item B<-justify>
-
-When there are multiple lines of text displayed in a tab, this
-option determines the justification of the lines.
-
-=item B<-createcmd>
-
-Specifies a L<callback|Tk::callbacks> to be called the first time the page is
-shown on the screen. This option can be used to delay the creation
-of the contents of a page until necessary. It can be useful in
-situations where there are a large number of pages in a NoteBook
-widget; with B<-createcmd> you do not have to make the user wait
-until all pages are constructed before displaying the first page.
-
-=item B<-raisecmd>
-
-Specifies a L<callback|Tk::callbacks> to be called whenever this page is raised
-by the user.
-
-=item B<-state>
-
-Specifies whether this page can be raised by the user. Must be
-either B<normal> or B<disabled>.
-
-=item B<-underline>
-
-Specifies the integer index of a character to underline in the
-tab. This option is used by the default bindings to implement
-keyboard traversal for menu buttons and menu entries. 0
-corresponds to the first character of text displayed on the
-widget, 1 to the next character and so on.
-
-=item B<-wraplength>
-
-This option specifies the maximum line length of the label string
-on this tab. If the line length of the label string exceeds this
-length, then it is wrapped onto the next line so that no line is
-longer than the specified length. The value may be specified in
-any standard forms for screen distances. If this value is less
-than or equal to 0, then no wrapping is done: lines will break
-only at newline characters in the text.
-
-=back
-
-=item B<delete(>I<pageName>B<)>
-
-Deletes the page identified by I<pageName>.
-
-=item B<pagecget(>I<pageName>, I<-option>B<)>
-
-Returns the current value of the configuration option given by
-I<-option> in the page given by I<pageName>. I<Option> may have any of
-the values accepted in the B<add> method.
-
-=item B<pageconfigure(>I<pageName>, I<options>B<)>
-
-Like configure for the page indicated by I<pageName>. I<Options> may
-be any of the options accepted by the B<add> method.
-
-=item B<pages>
-
-Returns a list consisting of the names of all currently defined
-pages, i.e., those created with the B<add> method.
-
-=item B<page_widget(>I<pageName>B<)>
-
-Returns the page with name I<pageName>.
-
-=item B<raise(>I<pageName>B<)>
-
-Raise the page identified by I<pageName>.
-
-=item B<raised()>
-
-Returns the name of the currently raised page.
-
-=item B<geometryinfo>
-
-Return the dimensions of the tab area.
-
-=item B<identify(>I<x>,I<y>B<)>
-
-Identify the tab's page name under the specified coordinates. Return
-an empty string if there's no tab.
-
-=item B<info(E<quot>pagesE<quot>)>
-
-Return a list of all pages.
-
-=item B<info(E<quot>focusE<quot>)>
-
-Return the page name of the tab with the current focus.
-
-=item B<info(E<quot>focusnextE<quot>)>
-
-Return the page name of the tab which would receive the next focus.
-
-=item B<info(E<quot>focusprevE<quot>)>
-
-Return the page name of the tab which had the previous focus.
-
-=item B<info(E<quot>activeE<quot>)>
-
-Return the page name of the active tab.
-
-=back
-
-=head1 BUGS
-
-The options C<-width> and C<-height> do not work.
-
-=head1 AUTHORS
-
-B<Rajappa Iyer> <rsi@earthling.net>
-Nick Ing-Simmons <nick@ni-s.u-net.com>
-
-This code and documentation was derived from NoteBook.tcl in
-Tix4.0 written by Ioi Lam. It may be distributed under the same
-conditions as Perl itself.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Optionmenu.pm b/Master/tlpkg/tlperl/lib/Tk/Optionmenu.pm
deleted file mode 100644
index c95f008cd4d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Optionmenu.pm
+++ /dev/null
@@ -1,128 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Optionmenu;
-require Tk::Menubutton;
-require Tk::Menu;
-use Carp;
-
-use vars qw($VERSION);
-$VERSION = '4.014'; # $Id: //depot/Tkutf8/Tk/Optionmenu.pm#13 $
-
-use base qw(Tk::Derived Tk::Menubutton);
-
-use strict;
-
-Construct Tk::Widget 'Optionmenu';
-
-sub Populate
-{
- my ($w,$args) = @_;
- $w->SUPER::Populate($args);
- $args->{-indicatoron} = 1;
- my $menu = $w->menu(-tearoff => 0);
-
- # Should we allow -menubackground etc. as in -label* of Frame ?
-
- $w->ConfigSpecs(-command => ['CALLBACK',undef,undef,undef],
- -options => ['METHOD', undef, undef, undef],
- -variable=> ['PASSIVE', undef, undef, undef],
- -font => [['SELF',$menu], undef, undef, undef],
- -foreground => [['SELF', 'CHILDREN'], undef, undef, undef],
-
- -takefocus => [ qw/SELF takefocus Takefocus 1/ ],
- -highlightthickness => [ qw/SELF highlightThickness HighlightThickness 1/ ],
- -relief => [ qw/SELF relief Relief raised/ ],
-
- );
-
- # configure -variable and -command now so that when -options
- # is set by main-line configure they are there to be set/called.
-
- my $tvar = delete $args->{-textvariable};
- my $vvar = delete $args->{-variable};
- if (!defined($vvar))
- {
- if (defined $tvar)
- {
- $vvar = $tvar;
- }
- else
- {
- my $new;
- $vvar = \$new;
- }
- }
- $tvar = $vvar if (!defined($tvar));
- $w->configure(-textvariable => $tvar, -variable => $vvar);
- $w->configure(-command => $vvar) if ($vvar = delete $args->{-command});
-}
-
-sub setOption
-{
- my ($w, $label, $val) = @_;
- my $tvar = $w->cget(-textvariable);
- my $vvar = $w->cget(-variable);
- if (@_ == 2)
- {
- $val = $label;
- }
- $$tvar = $label if $tvar;
- $$vvar = $val if $vvar;
- $w->Callback(-command => $val);
-}
-
-sub addOptions
-{
- my $w = shift;
- my $menu = $w->menu;
- my $tvar = $w->cget(-textvariable);
- my $vvar = $w->cget(-variable);
- my $oldt = $$tvar;
- my $width = $w->cget('-width');
- my %hash;
- my $first;
- while (@_)
- {
- my $val = shift;
- my $label = $val;
- if (ref $val)
- {
- if ($vvar == $tvar)
- {
- my $new = $label;
- $w->configure(-textvariable => ($tvar = \$new));
- }
- ($label, $val) = @$val;
- }
- my $len = length($label);
- $width = $len if (!defined($width) || $len > $width);
- $menu->command(-label => $label, -command => [ $w , 'setOption', $label, $val ]);
- $hash{$label} = $val;
- $first = $label unless defined $first;
- }
- if (!defined($oldt) || !exists($hash{$oldt}))
- {
- $w->setOption($first, $hash{$first}) if defined $first;
- }
- $w->configure('-width' => $width);
-}
-
-sub options
-{
- my ($w,$opts) = @_;
- if (@_ > 1)
- {
- $w->menu->delete(0,'end');
- $w->addOptions(@$opts);
- }
- else
- {
- return $w->_cget('-options');
- }
-}
-
-1;
-
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Optionmenu.pod b/Master/tlpkg/tlperl/lib/Tk/Optionmenu.pod
deleted file mode 100644
index f5e514c63b3..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Optionmenu.pod
+++ /dev/null
@@ -1,100 +0,0 @@
-
-=head1 NAME
-
-Tk::Optionmenu - Let the user select one of some predefined options values
-
-=for pm Tk/Optionmenu.pm
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
- use Tk::Optionmenu;
-
- $opt = $w->Optionmenu(
- -options => REFERENCE_to_OPTIONLIST,
- -command => CALLBACK,
- -variable => SCALAR_REF,
- );
-
- $opt->addOptions( OPTIONLIST );
-
- # OPTION LIST is
- # a) $val1, $val2, $val3,...
- # b) [ $lab1=>$val1], [$lab2=>val2], ... ]
- # c) combination of a) and b), e.g.,
- # val1, [$lab2=>val2], val3, val4, [...], ...
-
-=head1 DESCRIPTION
-
-The B<Optionmenu> widget allows the user chose between a given set
-of options.
-
-If the user should be able to change the available option have a look
-at L<Tk::BrowseEntry>.
-
-=head1 OPTIONS
-
-=over 4
-
-=item -options
-
-(Re)sets the list of options presented.
-
-=item -command
-
-Defines the L<callback|Tk::callbacks> that is invokes when a new option
-is selected.
-
-=item -variable
-
-Reference to a scalar that contains the current value of the
-selected option.
-
-=item -textvariable
-
-Reference to a scalar that contains the text label of the current value of the
-selected option.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item addOptions
-
-Adds OPTION_LIST to the already available options.
-
-=back
-
-=head1 EXAMPLE
-
- use Tk;
- my $mw = MainWindow->new();
-
- my ($var, $tvar);
- my $opt = $mw->Optionmenu(
- -options => [[jan=>1], [feb=>2], [mar=>3], [apr=>4]],
- -command => sub { print "got: ", shift, "\n" },
- -variable => \$var,
- -textvariable => \$tvar
- )->pack;
-
- $opt->addOptions([may=>5],[jun=>6],[jul=>7],[aug=>8]);
-
- my $f = $mw->Frame(-relief=>'groove', -borderwidth => 2)->pack;
- $f->Label(-textvariable=>\$tvar)->pack(-side => 'left');
- $f->Label(-text => " -> ")->pack(-side => 'left');
- $f->Label(-textvariable=>\$var)->pack(-side => 'left');
-
- $mw->Button(-text=>'Exit', -command=>sub{$mw->destroy})->pack;
-
- MainLoop;
-
-=head1 SEE ALSO
-
-L<Tk::Menubutton>, L<Tk::BrowseEntry>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/PNG.pm b/Master/tlpkg/tlperl/lib/Tk/PNG.pm
deleted file mode 100644
index 39974315645..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/PNG.pm
+++ /dev/null
@@ -1,50 +0,0 @@
-package Tk::PNG;
-require DynaLoader;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # was: sprintf '4.%03d', q$Revision: #3 $ =~ /\D(\d+)\s*$/;
-
-use Tk 800.005;
-require Tk::Image;
-require Tk::Photo;
-
-use base qw(DynaLoader);
-
-bootstrap Tk::PNG $Tk::VERSION;
-
-1;
-
-__END__
-
-=head1 NAME
-
-Tk::PNG - PNG loader for Tk::Photo
-
-=head1 SYNOPSIS
-
- use Tk;
- use Tk::PNG;
-
- my $image = $widget->Photo('-format' => 'png', -file => 'something.png');
-
-
-=head1 DESCRIPTION
-
-This is an extension for Tk which supplies
-PNG format loader for Photo image type.
-
-=head1 HISTORY
-
-This extension is by default bundled with Perl/Tk since Tk804.
-
-=head1 AUTHOR
-
-Nick Ing-Simmons E<lt>nick@ing-simmons.netE<gt>
-
-=head1 SEE ALSO
-
-L<Tk::Photo>.
-
-=cut
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Pane.pm b/Master/tlpkg/tlperl/lib/Tk/Pane.pm
deleted file mode 100644
index fa63b1a64f9..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Pane.pm
+++ /dev/null
@@ -1,544 +0,0 @@
-# Tk::Pane.pm
-#
-# Copyright (c) 1997-1998 Graham Barr <gbarr@pobox.com>. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-package Tk::Pane;
-
-use vars qw($VERSION);
-$VERSION = '4.007'; # $Id: //depot/Tkutf8/Tk/Pane.pm#7 $
-
-use Tk;
-use Tk::Widget;
-use Tk::Derived;
-use Tk::Frame;
-
-use strict;
-
-use base qw(Tk::Derived Tk::Frame);
-
-Construct Tk::Widget 'Pane';
-
-use Tk::Submethods(
- grid => [qw/bbox columnconfigure location propagate rowconfigure size slaves/],
- pack => [qw/propagate slaves/]
-);
-
-sub ClassInit {
- my ($class,$mw) = @_;
- $mw->bind($class,'<Configure>',['QueueLayout',4]);
- $mw->bind($class,'<FocusIn>', 'NoOp');
- return $class;
-}
-
-sub Populate {
- my $pan = shift;
-
- my $frame = $pan->Component(Frame => "frame");
-
- $pan->afterIdle(['Manage',$pan,$frame]);
- $pan->afterIdle(['QueueLayout',$pan,1]);
-
- $pan->Delegates(
- DEFAULT => $frame,
- # FIXME
- # These are a hack to avoid an existing bug in Tk::Widget::DelegateFor
- # which has been reported and should be fixed in the next Tk release
- see => $pan,
- xview => $pan,
- yview => $pan,
- );
-
- $pan->ConfigSpecs(
- DEFAULT => [$frame],
- -sticky => [PASSIVE => undef, undef, undef],
- -gridded => [PASSIVE => undef, undef, undef],
- -xscrollcommand => [CALLBACK => undef, undef, undef],
- -yscrollcommand => [CALLBACK => undef, undef, undef],
- );
-
-
- $pan;
-}
-
-
-sub grid {
- my $w = shift;
- $w = $w->Subwidget('frame')
- if (@_ && $_[0] =~ /^(?: bbox
- |columnconfigure
- |location
- |propagate
- |rowconfigure
- |size
- |slaves)$/x);
- $w->SUPER::grid(@_);
-}
-
-sub slave {
- my $w = shift;
- $w->Subwidget('frame');
-}
-
-sub pack {
- my $w = shift;
- $w = $w->Subwidget('frame')
- if (@_ && $_[0] =~ /^(?:propagate|slaves)$/x);
- $w->SUPER::pack(@_);
-}
-
-sub QueueLayout {
- shift if ref $_[1];
- my($m,$why) = @_;
- $m->afterIdle(['Layout',$m]) unless ($m->{LayoutPending});
- $m->{LayoutPending} |= $why;
-}
-
-sub AdjustXY {
- my($w,$Wref,$X,$st,$scrl,$getx) = @_;
- my $W = $$Wref;
-
- if($w >= $W) {
- my $v = 0;
- if($getx) {
- $v |= 1 if $st =~ /[Ww]/;
- $v |= 2 if $st =~ /[Ee]/;
- }
- else {
- $v |= 1 if $st =~ /[Nn]/;
- $v |= 2 if $st =~ /[Ss]/;
- }
-
- if($v == 0) {
- $X = int(($w - $W) / 2);
- }
- elsif($v == 1) {
- $X = 0;
- }
- elsif($v == 2) {
- $X = int($w - $W);
- }
- else {
- $X = 0;
- $$Wref = $w;
- }
- $scrl->Call(0,1)
- if $scrl;
- }
- elsif($scrl) {
- $X = 0
- if $X > 0;
- $X = $w - $W
- if(($X + $W) < $w);
- $scrl->Call(-$X / $W,(-$X + $w) / $W);
- }
- else {
- $X = 0;
- $$Wref = $w;
- }
-
- return $X;
-}
-
-sub Layout {
- my $pan = shift;
- my $why = $pan->{LayoutPending};
-
- my $slv = $pan->Subwidget('frame');
-
- return unless $slv;
-
- my $H = $slv->ReqHeight;
- my $W = $slv->ReqWidth;
- my $X = $slv->x;
- my $Y = $slv->y;
- my $w = $pan->width;
- my $h = $pan->height;
- my $yscrl = $pan->{Configure}{'-yscrollcommand'};
- my $xscrl = $pan->{Configure}{'-xscrollcommand'};
-
- $yscrl = undef
- if(defined($yscrl) && UNIVERSAL::isa($yscrl, 'SCALAR') && !defined($$yscrl));
- $xscrl = undef
- if(defined($xscrl) && UNIVERSAL::isa($xscrl, 'SCALAR') && !defined($$xscrl));
-
- if($why & 1) {
- $h = $pan->{Configure}{'-height'} || 0
- unless($h > 1);
- $w = $pan->{Configure}{'-width'} || 0
- unless($w > 1);
-
- $h = $H
- unless($h > 1 || defined($yscrl));
- $w = $W
- unless($w > 1 || defined($xscrl));
-
- $w = 100 if $w <= 1;
- $h = 100 if $h <= 1;
-
- $pan->GeometryRequest($w,$h);
- }
-
- my $st = $pan->{Configure}{'-sticky'} || '';
-
- $pan->{LayoutPending} = 0;
-
- $slv->MoveResizeWindow(
- AdjustXY($w,\$W,$X,$st,$xscrl,1),
- AdjustXY($h,\$H,$Y,$st,$yscrl,0),
- $W,$H
- );
-}
-
-sub SlaveGeometryRequest {
- my ($m,$s) = @_;
- $m->QueueLayout(1);
-}
-
-sub LostSlave {
- my($m,$s) = @_;
- $m->{Slave} = undef;
-}
-
-sub Manage {
- my $m = shift;
- my $s = shift;
-
- $m->{Slave} = $s;
- $m->ManageGeometry($s);
- $s->MapWindow;
- $m->QueueLayout(2);
-}
-
-sub xview {
- my $pan = shift;
-
- unless(@_) {
- my $scrl = $pan->{Configure}{'-xscrollcommand'};
- return (0,1) unless $scrl;
- my $slv = $pan->Subwidget('frame');
- my $sw = $slv->ReqWidth;
- my $ldx = $pan->rootx - $slv->rootx;
- my $rdx = $ldx + $pan->width;
- $ldx = $ldx <= 0 ? 0 : $ldx / $sw;
- $rdx = $rdx >= $sw ? 1 : $rdx / $sw;
- return( $ldx , $rdx);
- }
- elsif(@_ == 1) {
- my $widget = shift;
- my $slv = $pan->Subwidget('frame');
- xyview(1,$pan,
- moveto => ($widget->rootx - $slv->rootx) / $slv->ReqWidth);
- }
- else {
- xyview(1,$pan,@_);
- }
-}
-
-sub yview {
- my $pan = shift;
-
- unless(@_) {
- my $scrl = $pan->{Configure}{'-yscrollcommand'};
- return (0,1) unless $scrl;
- my $slv = $pan->Subwidget('frame');
- my $sh = $slv->ReqHeight;
- my $tdy = $pan->rooty - $slv->rooty;
- my $bdy = $tdy + $pan->height;
- $tdy = $tdy <= 0 ? 0 : $tdy / $sh;
- $bdy = $bdy >= $sh ? 1 : $bdy / $sh;
- return( $tdy, $bdy);
- }
- elsif(@_ == 1) {
- my $widget = shift;
- my $slv = $pan->Subwidget('frame');
- xyview(0,$pan,
- moveto => ($widget->rooty - $slv->rooty) / $slv->ReqHeight);
- }
- else {
- xyview(0,$pan,@_);
- }
-}
-
-sub xyview {
- my($horz,$pan,$cmd,$val,$mul) = @_;
- my $slv = $pan->Subwidget('frame');
- return unless $slv;
-
- my($XY,$WH,$wh,$scrl,@a);
-
- if($horz) {
- $XY = $slv->x;
- $WH = $slv->ReqWidth;
- $wh = $pan->width;
- $scrl = $pan->{Configure}{'-xscrollcommand'};
- }
- else {
- $XY = $slv->y;
- $WH = $slv->ReqHeight;
- $wh = $pan->height;
- $scrl = $pan->{Configure}{'-yscrollcommand'};
- }
-
- $scrl = undef
- if(UNIVERSAL::isa($scrl, 'SCALAR') && !defined($$scrl));
-
- if($WH < $wh) {
- $scrl->Call(0,1);
- return;
- }
-
- if($cmd eq 'scroll') {
- my $dxy = 0;
-
- my $gridded = $pan->{Configure}{'-gridded'} || '';
- my $do_gridded = ($gridded eq 'both'
- || (!$horz == ($gridded ne 'x'))) ? 1 : 0;
-
- if($do_gridded && $mul eq 'pages') {
- my $ch = ($slv->children)[0];
- if(defined($ch) && $ch->manager eq 'grid') {
- @a = $horz
- ? (1-$XY,int($slv->width / 2))
- : (int($slv->height / 2),1-$XY);
- my $rc = ($slv->gridLocation(@a))[$horz ? 0 : 1];
- my $mrc = ($slv->gridSize)[$horz ? 0 : 1];
- $rc += $val;
- $rc = 0 if $rc < 0;
- $rc = $mrc if $rc > $mrc;
- my $gsl;
- while($rc >= 0 && $rc < $mrc) {
- $gsl = ($slv->gridSlaves(-row => $rc))[0];
- last
- if defined $gsl;
- $rc += $val;
- }
- if(defined $gsl) {
- @a = $horz ? ($rc,0) : (0,$rc);
- $XY = 0 - ($slv->gridBbox(@a))[$horz ? 0 : 1];
- }
- else {
- $XY = $val > 0 ? $wh - $WH : 0;
- }
- $dxy = $val; $val = 0;
- }
- }
- $dxy = $mul eq 'pages' ? ($horz ? $pan->width : $pan->height) : 10
- unless $dxy;
- $XY -= $dxy * $val;
- }
- elsif($cmd eq 'moveto') {
- $XY = -int($WH * $val);
- }
-
- $XY = $wh - $WH
- if($XY < ($wh - $WH));
- $XY = 0
- if $XY > 0;
-
- @a = $horz
- ? ( $XY, $slv->y)
- : ($slv->x, $XY);
-
- $slv->MoveWindow(@a);
-
- $scrl->Call(-$XY / $WH,(-$XY + $wh) / $WH);
-}
-
-sub see {
- my $pan = shift;
- my $widget = shift;
- my %opt = @_;
- my $slv = $pan->Subwidget('frame');
-
- my $anchor = defined $opt{'-anchor'} ? $opt{'-anchor'} : "";
-
- if($pan->{Configure}{'-yscrollcommand'}) {
- my $yanchor = lc(($anchor =~ /([NnSs]?)/)[0] || "");
- my $pty = $pan->rooty;
- my $ph = $pan->height;
- my $pby = $pty + $ph;
- my $ty = $widget->rooty;
- my $wh = $widget->height;
- my $by = $ty + $wh;
- my $h = $slv->ReqHeight;
-
- if($yanchor eq 'n' || ($yanchor ne 's' && ($wh >= $h || $ty < $pty))) {
- my $y = $ty - $slv->rooty;
- $pan->yview(moveto => $y / $h);
- }
- elsif($yanchor eq 's' || $by > $pby) {
- my $y = $by - $ph - $slv->rooty;
- $pan->yview(moveto => $y / $h);
- }
- }
-
- if($pan->{Configure}{'-xscrollcommand'}) {
- my $xanchor = lc(($anchor =~ /([WwEe]?)/)[0] || "");
- my $ptx = $pan->rootx;
- my $pw = $pan->width;
- my $pbx = $ptx + $pw;
- my $tx = $widget->rootx;
- my $ww = $widget->width;
- my $bx = $tx + $ww;
- my $w = $slv->ReqWidth;
-
- if($xanchor eq 'w' || ( $xanchor ne 'e' && ($ww >= $w || $tx < $ptx))) {
- my $x = $tx - $slv->rootx;
- $pan->xview(moveto => $x / $w);
- }
- elsif($xanchor eq 'e' || $bx > $pbx) {
- my $x = $bx - $pw - $slv->rootx;
- $pan->xview(moveto => $x / $w);
- }
- }
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Tk::Pane - A window panner
-
-=for category Derived Widgets
-
-=head1 SYNOPSIS
-
- use Tk::Pane;
-
- $pane = $mw->Scrolled("Pane", Name => 'fred',
- -scrollbars => 'soe',
- -sticky => 'we',
- -gridded => 'y'
- );
-
- $pane->Frame;
-
- $pane->pack;
-
-=head1 DESCRIPTION
-
-B<Tk::Pane> provides a scrollable frame widget. Once created it can be
-treated as a frame, except it is scrollable.
-
-=head1 OPTIONS
-
-=over 4
-
-=item B<-gridded> =E<gt> I<direction>
-
-Specifies if the top and left edges of the pane should snap to a
-grid column. This option is only useful if the widgets in the pane
-are managed by the I<grid> geometry manager. Possible values are
-B<x>, B<y> and B<xy>.
-
-=item B<-sticky> =E<gt> I<style>
-
-If Pane is larger than its requested dimensions, this option may be used to
-position (or stretch) the slave within its cavity. I<Style> is a string that
-contains zero or more of the characters n, s, e or w. The string can optionally
-contains spaces or commas, but they are ignored. Each letter refers to a side
-(north, south, east, or west) that the slave will "stick" to. If both n and s
-(or e and w) are specified, the slave will be stretched to fill the entire
-height (or width) of its cavity.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item I<$pane>-E<gt>B<see>(I<$widget> ?,I<options>?)
-
-Adjusts the view so that I<$widget> is visable. Aditional parameters in
-I<options-value> pairs can be passed, each I<option-value> pair must be
-one of the following
-
-=over 8
-
-=item B<-anchor> =E<gt> I<anchor>
-
-Specifies how to make the widget visable. If not given then as much of
-the widget as possible is made visable.
-
-Possible values are B<n>, B<s>, B<w>, B<e>, B<nw>, B<ne>, B<sw> and B<se>.
-This will cause an edge on the widget to be aligned with the corresponding
-edge on the pane. for example B<nw> will cause the top left of the widget
-to be placed at the top left of the pane. B<s> will cause the bottom of the
-widget to be placed at the bottom of the pane, and as much of the widget
-as possible made visable in the x direction.
-
-=back
-
-=item I<$pane>-E<gt>B<xview>
-
-Returns a list containing two elements, both of which are real fractions
-between 0 and 1. The first element gives the position of the left of the
-window, relative to the Pane as a whole (0.5 means it is halfway through the
-Pane, for example). The second element gives the position of the right of the
-window, relative to the Pane as a whole.
-
-=item I<$pane>-E<gt>B<xview>(I<$widget>)
-
-Adjusts the view in the window so that I<widget> is displayed at the left of
-the window.
-
-=item I<$pane>-E<gt>B<xview>(B<moveto> =E<gt> I<fraction>)
-
-Adjusts the view in the window so that I<fraction> of the total width of the
-Pane is off-screen to the left. fraction must be a fraction between 0 and 1.
-
-=item I<$pane>-E<gt>B<xview>(B<scroll> =E<gt> I<number>, I<what>)
-
-This command shifts the view in the window left or right according to I<number>
-and I<what>. I<Number> must be an integer. I<What> must be either B<units> or
-B<pages> or an abbreviation of one of these. If I<what> is B<units>, the view
-adjusts left or right by I<number>*10 screen units on the display; if it is
-B<pages> then the view adjusts by number screenfuls. If number is negative then
-widgets farther to the left become visible; if it is positive then widgets
-farther to the right become visible.
-
-=item I<$pane>-E<gt>B<yview>
-
-Returns a list containing two elements, both of which are real fractions
-between 0 and 1. The first element gives the position of the top of the
-window, relative to the Pane as a whole (0.5 means it is halfway through the
-Pane, for example). The second element gives the position of the bottom of the
-window, relative to the Pane as a whole.
-
-=item I<$pane>-E<gt>B<yview>(I<$widget>)
-
-Adjusts the view in the window so that I<widget> is displayed at the top of the
-window.
-
-=item I<$pane>-E<gt>B<yview>(B<moveto> =E<gt> I<fraction>)
-
-Adjusts the view in the window so that I<fraction> of the total width of the
-Pane is off-screen to the top. fraction must be a fraction between 0 and 1.
-
-=item I<$pane>-E<gt>B<yview>(B<scroll> =E<gt> I<number>, I<what>)
-
-This command shifts the view in the window up or down according to I<number>
-and I<what>. I<Number> must be an integer. I<What> must be either B<units> or
-B<pages> or an abbreviation of one of these. If I<what> is B<units>, the view
-adjusts up or down by I<number>*10 screen units on the display; if it is
-B<pages> then the view adjusts by number screenfuls. If number is negative then
-widgets farther up become visible; if it is positive then widgets farther down
-become visible.
-
-=back
-
-=head1 AUTHOR
-
-Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
-
-=head1 COPYRIGHT
-
-Copyright (c) 1997-1998 Graham Barr. All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tk/Panedwindow.pm b/Master/tlpkg/tlperl/lib/Tk/Panedwindow.pm
deleted file mode 100644
index ae279f20012..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Panedwindow.pm
+++ /dev/null
@@ -1,221 +0,0 @@
-package Tk::Panedwindow;
-use strict;
-
-use vars qw/$VERSION/;
-$VERSION = '4.004'; # sprintf '4.%03d', q$Revision: #3 $ =~ /#(\d+)/;
-
-# A Panedwindow widget (similar to Adjuster).
-
-use Tk qw/Ev/;
-use base qw/Tk::Widget/;
-
-Construct Tk::Widget 'Panedwindow';
-
-sub Tk_cmd { \&Tk::panedwindow }
-
-Tk::Methods('add', 'forget', 'identify', 'proxy', 'sash', 'panes');
-
-use Tk::Submethods (
- 'proxy' => [qw/coord forget place/],
- 'sash' => [qw/coord mark place/],
-);
-
-sub ClassInit {
-
- my ($class,$mw) = @_;
-
- $class->SUPER::ClassInit($mw);
-
- $mw->bind($class, '<Button-1>' => ['MarkSash' => Ev('x'), Ev('y'), 1]);
- $mw->bind($class, '<Button-2>' => ['MarkSash' => Ev('x'), Ev('y'), 0]);
- $mw->bind($class, '<B1-Motion>' => ['DragSash' => Ev('x'), Ev('y'), 1]);
- $mw->bind($class, '<B2-Motion>' => ['DragSash' => Ev('x'), Ev('y'), 0]);
- $mw->bind($class, '<ButtonRelease-1>' => ['ReleaseSash' => 1]);
- $mw->bind($class, '<ButtonRelease-2>' => ['ReleaseSash' => 0]);
- $mw->bind($class, '<Motion>' => ['Motion' => Ev('x'), Ev('y')]);
- $mw->bind($class, '<Leave>' => ['Leave']);
-
- return $class;
-
-} # end ClassInit
-
-sub MarkSash {
-
- # MarkSash
- #
- # Handle marking the correct sash for possible dragging
- #
- # Arguments:
- # w the widget
- # x widget local x coord
- # y widget local y coord
- # proxy whether this should be a proxy sash
- # Results:
- # None
-
- my ($w, $x, $y, $proxy) = @_;
-
- my @what = $w->identify($x, $y);
- if ( @what == 2 ) {
- my ($index, $which) = @what[0 .. 1];
- if (not $Tk::strictMotif or $which eq 'handle') {
- $w->sashMark($index, $x, $y) if not $proxy;
- $w->{_sash} = $index;
- my ($sx, $sy) = $w->sashCoord($index);
- $w->{_dx} = $sx - $x;
- $w->{_dy} = $sy - $y;
- }
- }
-
-} # end MarkSash
-
-sub DragSash {
-
- # DragSash
- #
- # Handle dragging of the correct sash
- #
- # Arguments:
- # w the widget
- # x widget local x coord
- # y widget local y coord
- # proxy whether this should be a proxy sash
- # Results:
- # Moves sash
-
- my ($w, $x, $y, $proxy) = @_;
-
- if ( exists $w->{_sash} ) {
- if ($proxy) {
- $w->proxyPlace($x + $w->{_dx}, $y + $w->{_dy});
- } else {
- $w->sashPlace($w->{_sash}, $x + $w->{_dx}, $y + $w->{_dy});
- }
- }
-
-} # end DragSash
-
-sub ReleaseSash {
-
- # ReleaseSash
- #
- # Handle releasing of the sash
- #
- # Arguments:
- # w the widget
- # proxy whether this should be a proxy sash
- # Results:
- # Returns ...
-
- my ($w, $proxy) = @_;
-
- if ( exists $w->{_sash} ) {
- if ($proxy) {
- my ($x, $y) = $w->proxyCoord;
- $w->sashPlace($w->{_sash}, $x, $y);
- $w->proxyForget;
- }
- delete $w->{'_sash', '_dx', '_dy'};
- }
-
-} # end ReleaseSash
-
-sub Motion {
-
- # Motion
- #
- # Handle motion on the widget. This is used to change the cursor
- # when the user moves over the sash area.
- #
- # Arguments:
- # w the widget
- # x widget local x coord
- # y widget local y coord
- # Results:
- # May change the cursor. Sets up a timer to verify that we are still
- # over the widget.
-
- my ($w, $x, $y) = @_;
-
- my @id = $w->identify($x, $y);
- if ( (@id == 2) and
- (not $Tk::strictMotif or $id[1] eq 'handle') ) {
- if ( not exists $w->{_panecursor} ) {
- $w->{_panecursor} = $w->cget(-cursor);
- if ( not defined $w->cget(-sashcursor) ) {
- if ( $w->cget(-orient) eq 'horizontal' ) {
- $w->configure(-cursor => 'sb_h_double_arrow');
- } else {
- $w->configure(-cursor => 'sb_v_double_arrow');
- }
- } else {
- $w->configure(-cursor => $w->cget(-sashcursor));
- }
- if ( exists $w->{_pwAfterId} ) {
- $w->afterCancel($w->{_pwAfterId});
- }
- $w->{_pwAfterId} = $w->after(150 => ['Cursor' => $w]);
- }
- return
- }
- if ( exists $w->{_panecursor} ) {
- $w->configure(-cursor => $w->{_panecursor});
- delete $w->{_panecursor};
- }
-
-} # end Motion
-
-sub Cursor {
-
- # Cursor
- #
- # Handles returning the normal cursor when we are no longer over the
- # sash area. This needs to be done this way, because the panedwindow
- # won't see Leave events when the mouse moves from the sash to a
- # paned child, although the child does receive an Enter event.
- #
- # Arguments:
- # w the widget
- # Results:
- # May restore the default cursor, or schedule a timer to do it.
-
- my ($w) = @_;
-
- if ( exists $w->{_panecursor} ) {
- if ( $w->containing($w->pointerx, $w->pointery) == $w ) {
- $w->{_pwAfterId} = $w->after(150 => ['Cursor' => $w]);
- } else {
- $w->configure(-cursor => $w->{_panecursor});
- delete $w->{_panecursor};
- if ( exists $w->{_pwAfterId} ) {
- $w->afterCancel($w->{_pwAfterId});
- delete $w->{_pwAfterId};
- }
- }
- }
-
-} # end Cursor
-
-sub Leave {
-
- # Leave
- #
- # Return to default cursor when leaving the pw widget.
- #
- # Arguments:
- # w the widget
- # Results:
- # Restores the default cursor
-
- my ($w) = @_;
-
- if ( exists $w->{_panecursor} ) {
- $w->configure(-cursor => $w->{_panecursor});
- delete $w->{_panecursor};
- }
-
-} # end Leave
-
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/Panedwindow.pod b/Master/tlpkg/tlperl/lib/Tk/Panedwindow.pod
deleted file mode 100644
index 673938d55e5..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Panedwindow.pod
+++ /dev/null
@@ -1,326 +0,0 @@
-# Copyright (c) 1992 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-# RCS: @(#) $Id: panedwindow.n,v 1.2.2.1 2003/07/17 20:49:00 dkf Exp $
-
-=head1 NAME
-
-Tk::Panedwindow - Create and manipulate Panedwindow widgets
-
-=for category Tk Generic Methods
-
-=head1 SYNOPSIS
-
-I<$panedwindow> = I<$parent>-E<gt>B<Panedwindow>(?I<options>?);
-
- -background -height -width
- -borderwidth -orient
- -cursor -relief
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Option: B<-handlepad>
-
-=item Name: B<handlePad>
-
-=item Class: B<HandlePad>
-
-When sash handles are drawn, specifies the distance from the top or
-left end of the sash (depending on the orientation of the widget) at
-which to draw the handle. May be any value accepted by B<Tk_GetPixels>.
-
-=item Option: B<-handlesize>
-
-=item Name: B<handleSize>
-
-=item Class: B<HandleSize>
-
-Specifies the side length of a sash handle. Handles are always
-drawn as squares. May be any value accepted by B<Tk_GetPixels>.
-
-=item Option: B<-opaqueresize>
-
-=item Name: B<opaqueResize>
-
-=item Class: B<OpaqueResize>
-
-Specifies whether panes should be resized as a sash is moved (true),
-or if resizing should be deferred until the sash is placed (false).
-
-=item Option: B<-sashcursor>
-
-=item Name: B<sashCursor>
-
-=item Class: B<SashCursor>
-
-Mouse cursor to use when over a sash. If null,
-B<sb_h_double_arrow> will be used for horizontal Panedwindows, and
-B<sb_v_double_arrow> will be used for vertical Panedwindows.
-
-=item Option: B<-sashpad>
-
-=item Name: B<sashPad>
-
-=item Class: B<SashPad>
-
-Specifies the amount of padding to leave of each side of a sash. May
-be any value accepted by B<Tk_GetPixels>.
-
-=item Option: B<-sashrelief>
-
-=item Name: B<sashRelief>
-
-=item Class: B<SashRelief>
-
-Relief to use when drawing a sash. May be any of the standard Tk
-relief values.
-
-=item Option: B<-sashwidth>
-
-=item Name: B<sashWidth>
-
-=item Class: B<SashWidth>
-
-Specifies the width of each sash. May be any value accepted by
-B<Tk_GetPixels>.
-
-=item Option: B<-showhandle>
-
-=item Name: B<showHandle>
-
-=item Class: B<ShowHandle>
-
-Specifies whether sash handles should be shown. May be any valid
-boolean value.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Panedwindow> method creates a new window (given by the
-$panedwindow argument) and makes it into a Panedwindow widget.
-Additional options, described above, may be specified on the command
-line or in the option database to configure aspects of the Panedwindow
-such as its default background color and relief.
-
-A Panedwindow widget contains any number of panes, arranged
-horizontally or vertically, according to the value of the
-B<-orient> option. Each pane contains one widget, and each pair of
-panes is separated by a moveable (via mouse movements) sash. Moving a
-sash causes the widgets on either side of the sash to be resized.
-
-=head1 WIDGET METHODS
-
-The B<Panedwindow> method
-may be used to invoke various operations on the widget. It has the
-following general form:
-
- $widget->method(?arg arg ...?);
-
-The following
-commands are possible for Panedwindow widgets:
-
-=over 4
-
-=item I<$widget>-E<gt>B<add>(?window ...? ?option value ...?);
-
-Add one or more windows to the Panedwindow, each in a separate pane.
-The arguments consist of the names of one or more windows
-followed by pairs of arguments that specify how to manage the windows.
-I<Option> may have any of the values accepted by the
-B<configure> subcommand.
-
-=item I<$widget>-E<gt>B<cget>(I<option>);
-
-Returns the current value of the configuration option given by
-I<option>. I<Option> may have any of the values accepted by the
-B<Panedwindow> command.
-
-=item I<$widget>-E<gt>B<configure>(I<?option?, ?value, option, value, ...?>);
-
-Query or modify the configuration options of the widget. If no
-I<option> is specified, returns a list describing all of the
-available options for $widget (see L<Tk::configure> for
-information on the format of this list). If I<option> is specified
-with no I<value>, then the command returns a list describing the
-one named option (this list will be identical to the corresponding
-sublist of the value returned if no I<option> is specified). If
-one or more I<option-value> pairs are specified, then the command
-modifies the given widget option(s) to have the given value(s); in
-this case the command returns an empty string. I<Option> may have
-any of the values accepted by the B<Panedwindow> command.
-
-=item I<$widget>-E<gt>B<forget>(?window ...?);
-
-Remove the pane containing $widget from the Panedwindow. All
-geometry management options for $widget will be forgotten.
-
-=item I<$widget>-E<gt>B<identify>(I<x, y>);
-
-Identify the Panedwindow component underneath the point given by
-I<x> and I<y>, in window coordinates. If the point is over a
-sash or a sash handle, the result is a two element list containing the
-index of the sash or handle, and a word indicating whether it is over
-a sash or a handle, such as [0, 'sash'] or [2, 'handle']. If the point is
-over any other part of the Panedwindow, the result is an empty list.
-
-=item I<$widget>-E<gt>B<proxy>(I<?args?>);
-
-This command is used to query and change the position of the sash
-proxy, used for rubberband-style pane resizing. It can take any of
-the following forms:
-
-=over 4
-
-=item I<$widget>-E<gt>B<proxyCoord>;
-
-Return a list containing the x and y coordinates of the most recent
-proxy location.
-
-=item I<$widget>-E<gt>B<proxyForget>;
-
-Remove the proxy from the display.
-
-=item I<$widget>-E<gt>B<proxyPlace>(I<x, y>);
-
-Place the proxy at the given I<x> and I<y> coordinates.
-
-=back
-
-=item I<$widget>-E<gt>B<sash>(I<?args?>);
-
-This command is used to query and change the position of sashes in the
-Panedwindow. It can take any of the following forms:
-
-=over 4
-
-=item I<$widget>-E<gt>B<sashCoord>(I<index>);
-
-Return the current x and y coordinate pair for the sash given by
-I<index>. I<Index> must be an integer between 0 and 1 less than
-the number of panes in the Panedwindow. The coordinates given are
-those of the top left corner of the region containing the sash.
-I<$widget>-E<gt>B<sashDragto>(I<index, x, y>)
-This command computes the difference between the given coordinates and the
-coordinates given to the last B<sash coord> command for the given
-sash. It then moves that sash the computed difference. The return
-value is the empty string.
-
-=item I<$widget>-E<gt>B<sashMark>(I<index, x, y>);
-
-Records I<x> and I<y> for the sash given by I<index>; used in
-conjunction with later dragto commands to move the sash.
-
-=item I<$widget>-E<gt>B<sashPlace>(I<index, x, y>);
-
-Place the sash given by I<index> at the given coordinates.
-
-=back
-
-=item $widget I<$widget>-E<gt>B<panecget>(option);
-
-Query a management option for $widget. I<Option> may be any
-value allowed by the B<paneconfigure> subcommand.
-
-=item $widget I<$widget>-E<gt>B<paneconfigure>(?option? ?value option value ...?);
-
-Query or modify the management options for $widget. If no
-I<option> is specified, returns a list describing all of the
-available options for $widget (see L<Tk::configure> for
-information on the format of this list). If I<option> is specified
-with no I<value>, then the command returns a list describing the
-one named option (this list will be identical to the corresponding
-sublist of the value returned if no I<option> is specified). If
-one or more I<option-value> pairs are specified, then the command
-modifies the given widget option(s) to have the given value(s); in
-this case the command returns an empty string. The following options
-are supported:
-
-=over 4
-
-=item B<-after> =E<gt> $widget
-
-Insert the window after the window specified. $widget should be the
-name of a window already managed by $widget.
-
-=item B<-before> =E<gt> $widget
-
-Insert the window before the window specified. $widget should be
-the name of a window already managed by $widget.
-
-=item B<-height> =E<gt> I<size>
-
-Specify a height for the window. The height will be the outer
-dimension of the window including its border, if any. If I<size>
-is an empty string, or if B<-height> is not specified, then the
-height requested internally by the window will be used initially; the
-height may later be adjusted by the movement of sashes in the
-Panedwindow. I<Size> may be any value accepted by B<Tk_GetPixels>.
-
-=item B<-minsize> =E<gt> I<n>
-
-Specifies that the size of the window cannot be made less than
-I<n>. This constraint only affects the size of the widget in the
-paned dimension -- the x dimension for horizontal Panedwindows, the y
-dimension for vertical Panedwindows. May be any value accepted by
-B<Tk_GetPixels>.
-
-=item B<-padx> =E<gt> I<n>
-
-Specifies a non-negative value indicating how much extra space to
-leave on each side of the window in the X-direction. The value may
-have any of the forms accepted by B<Tk_GetPixels>.
-
-=item B<-pady> =E<gt> I<n>
-
-Specifies a non-negative value indicating how much extra space to
-leave on each side of the window in the Y-direction. The value may
-have any of the forms accepted by B<Tk_GetPixels>.
-
-=item B<-sticky> =E<gt> I<style>
-
-If a window's pane is larger than the requested dimensions of the
-window, this option may be used to position (or stretch) the window
-within its pane. I<Style> is a string that contains zero or more
-of the characters B<n>, B<s>, B<e> or B<w>. The string
-can optionally contains spaces or commas, but they are ignored. Each
-letter refers to a side (north, south, east, or west) that the window
-will "stick" to. If both B<n> and B<s> (or B<e> and B<w>)
-are specified, the window will be stretched to fill the entire height
-(or width) of its cavity.
-
-=item B<-width> =E<gt> I<size>
-
-Specify a width for the window. The width will be the outer
-dimension of the window including its border, if any. If I<size>
-is an empty string, or if B<-width> is not specified, then the
-width requested internally by the window will be used initially; the
-width may later be adjusted by the movement of sashes in the
-Panedwindow. I<Size> may be any value accepted by B<Tk_GetPixels>.
-
-=back
-
-=item I<$widget>-E<gt>B<panes>;
-
-Returns an ordered list of the widgets managed by $widget.
-
-=back
-
-=head1 RESIZING PANES
-
-A pane is resized by grabbing the sash (or sash handle if present) and
-dragging with the mouse. This is accomplished via mouse motion
-bindings on the widget. When a sash is moved, the sizes of the panes
-on each side of the sash, and thus the widgets in those panes, are
-adjusted.
-
-When a pane is resized from outside (eg, it is packed to expand and
-fill, and the containing toplevel is resized), space is added to the final
-(rightmost or bottommost) pane in the window.
-
-=head1 KEYWORDS
-
-Panedwindow, widget, geometry management
diff --git a/Master/tlpkg/tlperl/lib/Tk/Photo.pm b/Master/tlpkg/tlperl/lib/Tk/Photo.pm
deleted file mode 100644
index 587c8c239b9..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Photo.pm
+++ /dev/null
@@ -1,22 +0,0 @@
-package Tk::Photo;
-
-use vars qw($VERSION);
-$VERSION = '4.006'; # sprintf '4.%03d', 4+q$Revision: #4 $ =~ /\D(\d+)\s*$/;
-
-use Tk qw($XS_VERSION);
-
-use base qw(Tk::Image);
-
-Construct Tk::Image 'Photo';
-
-sub Tk_image { 'photo' }
-
-Tk::Methods('blank','copy','data','formats','get','put','read',
- 'redither','transparency','write');
-
-use Tk::Submethods (
- 'transparency' => [qw/get set/],
-);
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/Photo.pod b/Master/tlpkg/tlperl/lib/Tk/Photo.pod
deleted file mode 100644
index 02a691d6261..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Photo.pod
+++ /dev/null
@@ -1,475 +0,0 @@
-# Copyright (c) 1994 The Australian National University
-# Copyright (c) 1994-1997 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-# Author: Paul Mackerras (paulus@cs.anu.edu.au),
-# Department of Computer Science,
-# Australian National University.
-# RCS: @(#) $Id: photo.n,v 1.2 1998/09/14 18:22:59 stanton Exp $
-#
-
-=head1 NAME
-
-Tk::Photo - Full-color images
-
-=for category Tk Image Classes
-
-=head1 SYNOPSIS
-
-S< >I<$widget>-E<gt>B<Photo>(?I<name>??, I<options>?)
-
-=head1 DESCRIPTION
-
-A photo is an L<image|Tk::Image> whose pixels can display any color or be
-transparent. A photo image is stored internally in full color (32
-bits per pixel), and is displayed using dithering if necessary. Image
-data for a photo image can be obtained from a file or a string, or it
-can be supplied from
-C code through a procedural interface. At present, only GIF,
-XBM, XPM, BMP, JPEG, PNG and PPM/PGM
-formats are supported, but an interface exists to allow additional
-image file formats to be added easily. A photo image is transparent
-in regions where no image data has been supplied
-or where it has been set transparent by the B<transparencySet>
-subcommand.
-
-=head1 CREATING PHOTOS
-
-Photos are created using the B<Photo> method.
-B<Photo> supports the following I<options>:
-
-=over 4
-
-=item B<-data> =E<gt> I<string>
-
-Specifies the contents of the image as a string.
-The string can
-contain base64 encoded data or binary data.
-The format of the
-string must be one of those for which there is an image file format
-handler that will accept string data. If both the B<-data>
-and B<-file> options are specified, the B<-file> option takes
-precedence.
-
-=item B<-format> =E<gt> I<format-name>
-
-Specifies the name of the file format for the data specified with the
-B<-data> or B<-file> option.
-
-=item B<-file> =E<gt> I<name>
-
-I<name> gives the name of a file that is to be read to supply data
-for the photo image. The file format must be one of those for which
-there is an image file format handler that can read data.
-
-=item B<-gamma> =E<gt> I<value>
-
-Specifies that the colors allocated for displaying this image in a
-window should be corrected for a non-linear display with the specified
-gamma exponent value. (The intensity produced by most
-CRT displays is a power function of the input value, to a good
-approximation; gamma is the exponent and is typically around 2).
-The value specified must be greater than zero. The default
-value is one (no correction). In general, values greater than one
-will make the image lighter, and values less than one will make it
-darker.
-
-=item B<-height> =E<gt> I<number>
-
-Specifies the height of the image, in pixels. This option is useful
-primarily in situations where the user wishes to build up the contents
-of the image piece by piece. A value of zero (the default) allows the
-image to expand or shrink vertically to fit the data stored in it.
-
-=item B<-palette> =E<gt> I<palette-spec>
-
-Specifies the resolution of the color cube to be allocated for
-displaying this image, and thus the number of colors used from the
-colormaps of the windows where it is displayed. The
-I<palette-spec> string may be either a single decimal number,
-specifying the number of shades of gray to use, or three decimal
-numbers separated by slashes (/), specifying the number of shades of
-red, green and blue to use, respectively. If the first form (a single
-number) is used, the image will be displayed in monochrome (i.e.,
-grayscale).
-
-=item B<-width> =E<gt> I<number>
-
-Specifies the width of the image, in pixels. This option is useful
-primarily in situations where the user wishes to build up the contents
-of the image piece by piece. A value of zero (the default) allows the
-image to expand or shrink horizontally to fit the data stored in it.
-
-=back
-
-=head1 IMAGE METHODS
-
-When a photo image is created, Tk also creates a new object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-
-Those options that write data to the image generally expand the size
-of the image, if necessary, to accommodate the data written to the
-image, unless the user has specified non-zero values for the
-B<-width> and/or B<-height> configuration options, in which
-case the width and/or height, respectively, of the image will not be
-changed.
-
-The following addition methods are available for photo images:
-
-=over 4
-
-=item I<$image>-E<gt>B<blank>
-
-Blank the image; that is, set the entire image to have no data, so it
-will be displayed as transparent, and the background of whatever
-window it is displayed in will show through.
-
-=item I<$image>-E<gt>B<copy>(I<sourceImage> ?,I<option value(s) ...>?)
-
-Copies a region from the image called I<$sourceImage> (which must
-be a photo image) to the image called I<$image>, possibly with
-pixel zooming and/or subsampling. If no options are specified, this
-method copies the whole of I<$sourceImage> into I<$image>,
-starting at coordinates (0,0) in I<$image>. The following
-options may be specified:
-
-=over 8
-
-=item B<-from> =E<gt> I<x1, y1, ? ,x2, y2?>
-
-Specifies a rectangular sub-region of the source image to be copied.
-(I<x1,y1>) and (I<x2,y2>) specify diagonally opposite corners of
-the rectangle. If I<x2> and I<y2> are not specified, the
-default value is the bottom-right corner of the source image. The
-pixels copied will include the left and top edges of the specified
-rectangle but not the bottom or right edges. If the B<-from>
-option is not given, the default is the whole source image.
-
-=item B<-to> =E<gt> I<x1, y1, ?, x2, y2?>
-
-Specifies a rectangular sub-region of the destination image to be
-affected. (I<x1,y1>) and (I<x2,y2>) specify diagonally opposite
-corners of the rectangle. If I<x2> and I<y2> are not specified,
-the default value is (I<x1,y1>) plus the size of the source
-region (after subsampling and zooming, if specified). If I<x2> and
-I<y2> are specified, the source region will be replicated if
-necessary to fill the destination region in a tiled fashion.
-
-=item B<-shrink>
-
-Specifies that the size of the destination image should be reduced, if
-necessary, so that the region being copied into is at the bottom-right
-corner of the image. This option will not affect the width or height
-of the image if the user has specified a non-zero value for the
-B<-width> or B<-height> configuration option, respectively.
-
-=item B<-zoom> =E<gt> I<x, y>
-
-Specifies that the source region should be magnified by a factor of
-I<x> in the X direction and I<y> in the Y direction. If I<y>
-is not given, the default value is the same as I<x>. With this
-option, each pixel in the source image will be expanded into a block
-of I<x> x I<y> pixels in the destination image, all the same
-color. I<x> and I<y> must be greater than 0.
-
-=item B<-subsample> =E<gt> I<x, y>
-
-Specifies that the source image should be reduced in size by using
-only every I<x>th pixel in the X direction and I<y>th pixel in
-the Y direction. Negative values will cause the image to be flipped
-about the Y or X axes, respectively. If I<y> is not given, the
-default value is the same as I<x>.
-
-=item B<-compositingrule> =E<gt> I<rule>
-
-Specifies how transparent pixels in the source image are combined with
-the destination image. When a compositing rule of I<overlay> is
-set, the old contents of the destination image are visible, as if the
-source image were printed on a piece of transparent film and placed
-over the top of the destination. When a compositing rule of I<set>
-is set, the old contents of the destination image are discarded and
-the source image is used as-is. The default compositing rule is
-I<overlay>.
-
-=back
-
-=item I<$image>-E<gt>B<data>(?I<option value(s), ...>?)
-
-Returns image data in the form of a string.
-The following options may be specified:
-
-=over 8
-
-=item B<-background> =E<gt> I< color>
-
-If the color is specified, the data will not contain any transparency
-information. In all transparent pixels the color will be replaced by
-the specified color.
-
-=item B<-format> =E<gt> I<format-name>
-
-Specifies the name of the image file format handler to be used.
-Specifically, this method searches
-for the first handler whose name matches a initial substring of
-I<format-name> and which has the capability to read this image data.
-If this option is not given, this method uses the first
-handler that has the capability to read the image data.
-
-=item B<-from> =E<gt> I<x1, y1, ?, x2, y2?>
-
-Specifies a rectangular region of I<$image> to be
-returned. If only I<x1> and I<y1> are specified, the region
-extends from I<(x1,y1)> to the bottom-right corner of
-I<$image>. If all four coordinates are given, they specify
-diagonally opposite corners of the rectangular region, including x1,y1
-and excluding x2,y2. The default,
-if this option is not given, is the whole image.
-
-=item B<-grayscale>
-
-If this options is specified, the data will not contain color
-information. All pixel data will be transformed into grayscale.
-
-=back
-
-=item I<$image>-E<gt>B<get>(I<x, y>)
-
-Returns the color of the pixel at coordinates (I<x>,I<y>) in the
-image as a list of three integers between 0 and 255, representing the
-red, green and blue components respectively.
-
-=item I<$image>-E<gt>B<put>(I<data> ?,B<-format>=E<gt>I<format-name>? ?,B<-to>=E<gt>I< x1 y1 ?x2 y2?>?)
-
-Sets pixels in I<$image> to the data specified in I<data>.
-This command first searches the list of image file format handlers for
-a handler that can interpret the data in I<data>, and then reads
-the image encoded within into I<$image> (the destination image).
-If I<data> does not match any known format, an attempt to interpret
-it as a (top-to-bottom) list of scan-lines is made, with each
-scan-line being a (left-to-right) list of pixel colors (see
-B<Tk_GetColor> for a description of valid colors.) Every scan-line
-must be of the same length. Note that when I<data> is a single
-color name, you are instructing Tk to fill a rectangular region with
-that color. The following options may be specified:
-
-=over 4
-
-=item B<-format> =E<gt>I<format-name>
-
-Specifies the format of the image data in I<data>.
-Specifically, only image file format handlers whose names begin with
-I<format-name> will be used while searching for an image data
-format handler to read the data.
-
-=item B<-to> =E<gt>I<x, y> ?I<, x2, y2>?
-
-Specifies the coordinates of the top-left corner (I<x1>,I<y1>)
-of the region of I<$image> into which data from I<filename>
-are to be read. The default is (0,0). If I<x2>,I<y2> is given
-and I<data> is not large enough to cover the rectangle specified by
-this option, the image data extracted will be tiled so it covers the
-entire destination rectangle. Note that if I<data> specifies a
-single color value, then a region extending to the bottom-right corner
-represented by (I<x2>,I<y2>) will be filled with that color.
-
-=back
-
-=item I<$image>-E<gt>B<read>(I<filename> ?,I<option value(s), ...>?)
-
-Reads image data from the file named I<filename> into the image.
-This method first searches the list of
-image file format handlers for a handler that can interpret the data
-in I<filename>, and then reads the image in I<filename> into
-I<$image> (the destination image). The following options may be
-specified:
-
-=over 8
-
-=item B<-format> =E<gt> I<format-name>
-
-Specifies the format of the image data in I<filename>.
-Specifically, only image file format handlers whose names begin with
-I<format-name> will be used while searching for an image data
-format handler to read the data.
-
-=item B<-from> =E<gt> I<x1, y1, x2, y2>
-
-Specifies a rectangular sub-region of the image file data to be copied
-to the destination image. If only I<x1> and I<y1> are
-specified, the region extends from (I<x1,y1>) to the bottom-right
-corner of the image in the image file. If all four coordinates are
-specified, they specify diagonally opposite corners or the region.
-The default, if this option is not specified, is the whole of the
-image in the image file.
-
-=item B<-shrink>
-
-If this option is specified, the size of I<$image> will be reduced, if
-necessary, so that the region into which the image file data are read
-is at the bottom-right corner of the I<$image>. This option
-will not affect the width or height of the image if the user has
-specified a non-zero value for the B<-width> or B<-height>
-configuration option, respectively.
-
-=item B<-to> =E<gt> I<x, y>
-
-Specifies the coordinates of the top-left corner of the region of
-I<$image> into which data from I<filename> are to be read.
-The default is (0,0).
-
-=back
-
-=item I<$image>-E<gt>B<redither>
-
-The dithering algorithm used in displaying photo images propagates
-quantization errors from one pixel to its neighbors.
-If the image data for I<$image> is supplied in pieces, the
-dithered image may not be exactly correct. Normally the difference is
-not noticeable, but if it is a problem, this method can be used to
-recalculate the dithered image in each window where the image is
-displayed.
-
-=item I<$image>-E<gt>B<transparency>(I<subcommand, ?arg, arg ...?>);
-
-Allows examination and manipulation of the transparency information in
-the photo image. Several subcommands are available:
-
-=over 4
-
-=item I<$image>-E<gt>B<transparencyGet>(I<x, y>);
-
-Returns a boolean indicating if the pixel at (I<x>,I<y>) is
-transparent.
-
-=item I<$image>-E<gt>B<transparencySet>(I<x, y, boolean>);
-
-Makes the pixel at (I<x>,I<y>) transparent if I<boolean> is
-true, and makes that pixel opaque otherwise.
-
-=back
-
-=item I<$image>-E<gt>B<write>(I<filename> ?,I<option value(s), ...>?)
-
-Writes image data from I<$image> to a file named I<filename>.
-The following options may be specified:
-
-=over 8
-
-=item B<-background> =E<gt> I< color>
-
-If the color is specified, the data will not contain any transparency
-information. In all transparent pixels the color will be replaced by
-the specified color.
-
-=item B<-format> =E<gt> I<format-name>
-
-Specifies the name of the image file format handler to be used to
-write the data to the file. Specifically, this subcommand searches
-for the first handler whose name matches a initial substring of
-I<format-name> and which has the capability to write an image
-file. If this option is not given, this subcommand uses the first
-handler that has the capability to write an image file.
-
-=item B<-from> =E<gt> I<x1, y1, ?, x2, y2?>
-
-Specifies a rectangular region of I<$image> to be written to the
-image file. If only I<x1> and I<y1> are specified, the region
-extends from I<(x1,y1)> to the bottom-right corner of
-I<$image>. If all four coordinates are given, they specify
-diagonally opposite corners of the rectangular region. The default,
-if this option is not given, is the whole image.
-
-
-=item B<-grayscale>
-
-If this options is specified, the data will not contain color
-information. All pixel data will be transformed into grayscale.
-
-=back
-
-=back
-
-=head1 IMAGE FORMATS
-
-The photo image code is structured to allow handlers for additional
-image file formats to be added easily. The photo image code maintains
-a list of these handlers. Handlers are added to the list by
-registering them with a call to B<Tk_CreatePhotoImageFormat>. The
-standard Tk distribution comes with handlers for XBM, XPM, BMP, JPEG,
-PNG and PPM/PGM formats, which are automatically registered on
-initialization.
-
-When reading an image file or processing
-string data specified with the B<-data> configuration option, the
-photo image code invokes each handler in turn until one is
-found that claims to be able to read the data in the file or string.
-Usually this will find the correct handler, but if it doesn't, the
-user may give a format name with the B<-format> option to specify
-which handler to use. In fact the photo image code will try those
-handlers whose names begin with the string specified for the
-B<-format> option (the comparison is case-insensitive). For
-example, if the user specifies B<-format> B<=E<gt>> B<gif>, then a handler
-named GIF87 or GIF89 may be invoked, but a handler
-named JPEG may not (assuming that such handlers had been
-registered).
-
-When writing image data to a file, the processing of the
-B<-format> option is slightly different: the string value given
-for the B<-format> option must begin with the complete name of the
-requested handler, and may contain additional information following
-that, which the handler can use, for example, to specify which variant
-to use of the formats supported by the handler.
-Note that not all image handlers may support writing transparency data
-to a file, even where the target image format does.
-
-=head1 COLOR ALLOCATION
-
-When a photo image is displayed in a window, the photo image code
-allocates colors to use to display the image and dithers the image, if
-necessary, to display a reasonable approximation to the image using
-the colors that are available. The colors are allocated as a color
-cube, that is, the number of colors allocated is the product of the
-number of shades of red, green and blue.
-
-Normally, the number of
-colors allocated is chosen based on the depth of the window. For
-example, in an 8-bit PseudoColor window, the photo image code will
-attempt to allocate seven shades of red, seven shades of green and
-four shades of blue, for a total of 198 colors. In a 1-bit StaticGray
-(monochrome) window, it will allocate two colors, black and white. In
-a 24-bit DirectColor or TrueColor window, it will allocate 256 shades
-each of red, green and blue. Fortunately, because of the way that
-pixel values can be combined in DirectColor and TrueColor windows,
-this only requires 256 colors to be allocated. If not all of the
-colors can be allocated, the photo image code reduces the number of
-shades of each primary color and tries again.
-
-The user can exercise some control over the number of colors that a
-photo image uses with the B<-palette> configuration option. If
-this option is used, it specifies the maximum number of shades of
-each primary color to try to allocate. It can also be used to force
-the image to be displayed in shades of gray, even on a color display,
-by giving a single number rather than three numbers separated by
-slashes.
-
-=head1 CREDITS
-
-The photo image type was designed and implemented by Paul Mackerras,
-based on his earlier photo widget and some suggestions from
-John Ousterhout.
-
-=head1 SEE ALSO
-
-L<Tk::Bitmap|Tk::Bitmap>
-L<Tk::Image|Tk::Image>
-L<Tk::Pixmap|Tk::Pixmap>
-
-=head1 KEYWORDS
-
-photo, image, color
-
-=cut
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Pixmap.pm b/Master/tlpkg/tlperl/lib/Tk/Pixmap.pm
deleted file mode 100644
index 3fbc3179b56..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Pixmap.pm
+++ /dev/null
@@ -1,19 +0,0 @@
-package Tk::Pixmap;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/TixPixmap/Pixmap.pm#4 $
-
-use Tk qw($XS_VERSION);
-
-use Tk::Image ();
-
-use base qw(Tk::Image);
-
-Construct Tk::Image 'Pixmap';
-
-bootstrap Tk::Pixmap;
-
-sub Tk_image { 'pixmap' }
-
-1;
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Pixmap.pod b/Master/tlpkg/tlperl/lib/Tk/Pixmap.pod
deleted file mode 100644
index d0f36b00e65..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Pixmap.pod
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright (c) 1996, Expert Interface Technologies
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# The file man.macros and some of the macros used by this file are
-# copyrighted: (c) 1990 The Regents of the University of California.
-# (c) 1994-1995 Sun Microsystems, Inc.
-# The license terms of the Tcl/Tk distribution are in the file
-# license.tcl.
-
-=head1 NAME
-
-Tk::Pixmap - Create color images from XPM files.
-
-=for category Tk Image Classes
-
-=head1 SYNOPSIS
-
-S< >I<$widget>-E<gt>B<Pixmap>?(I<name>?,I<options>?)?
-
-=head1 DESCRIPTION
-
-XPM is a popular X Window image file format for storing color icons.
-The B<Pixmap> image type can be used to create color images using XPM files.
-
-Pixmaps support the following I<options>:
-
-=over 4
-
-=item B<-data> =E<gt> I<string>
-
-Specifies the contents of the source pixmap as a string. The string
-must adhere to the XPM file format (e.g., as generated by the
-B<pixmap(1)> program). If both the B<-data> and B<-file>
-options are specified, the B<-data> option takes precedence.
-Please note that the XPM file parsing code in the xpm library is
-somewhat fragile. The first line of the string must be "B</* XPM>
-*/" or otherwise a segmatation fault will be caused.
-
-=item B<-file> =E<gt> I<name>
-
-I<name> gives the name of a file whose contents define the source
-pixmap. The file must adhere to the XPM file format (e.g., as
-generated by the B<pixmap(1)> program).
-
-=back
-
-=head1 IMAGE METHODS
-
-When a pixmap image is created, Tk also creates a new object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-
-=head1 SEE ALSO
-
-L<Tk::Image|Tk::Image>
-
-=head1 KEYWORDS
-
-pixmap, image, tix
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Popup.pod b/Master/tlpkg/tlperl/lib/Tk/Popup.pod
deleted file mode 100644
index 8d40a4ed275..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Popup.pod
+++ /dev/null
@@ -1,89 +0,0 @@
-
-=head1 NAME
-
-Tk::Wm::Popup - popup dialog windows.
-
-=for pm Tk/Wm.pm
-
-=for category Tk Toplevel widgets
-
-=head1 SYNOPSIS
-
- $dialog->Popup(qw/
- -popover => 'cursor' | $widget | undef,
- -overanchor => c | n | ne | e | se | s | sw | w | nw,
- -popanchor => c | n | ne | e | se | s | sw | w | nw,
- /);
-
-=head1 DESCRIPTION
-
-You've probably had occasion to use a Dialog (or DialogBox)
-widget. These widgets are derived from a Toplevel (which is a subclass
-of Tk::Wm, the window manager) and spend most of their time in a
-withdrawn state. It's also common to use Toplevels as containers for
-custom built popup windows. Menus, too, are dialogs derived from the
-window manager class. For this discussion, we'll use the simple term
-I<dialog> to refer any widget that pops up and awaits user
-interaction, whether it be a Menu, a special purpose Toplevel, or any
-of the dialog-type widgets, including, but not limited to, ColorEditor,
-Dialog, DialogBox, ErrorDialog, FileSelect, FBox, getOpenFile and
-getSaveFile.
-
-When it's time to display these dialogs, we call the Perl/Tk
-window manager B<Popup> method. B<Popup> accepts three special purpose
-options that specify placement information in high-level terms rather
-than numerical coordinates. It is B<Popup>'s responsibility to take
-our human specifications and turn them into actual screen
-coordinates before displaying the dialog.
-
-We can direct the dialog to appear in two general locations, either
-over another window (e.g. the root window (screen) or a particular
-widget), or over the cursor. This is called the I<popover
-location>. Once we've made this decision we can further refine the
-exact placement of the dialog relative to the popover location by
-specifying the intersection of two I<anchor points>. The I<popanchor
-point> is associated with the dialog and the I<overanchor point> is
-associated with the popover location (whether it be a window or the
-cursor). The point where the two anchor points coincide is the I<popup
-locus>. Anchor points are string values and can be I<c> (for center),
-or any of the eight cardinal compass points: I<n>, I<ne>, I<e>, I<se>,
-I<s>, I<sw>, I<w> or I<nw>.
-
-For example, if I<-popover> specifies a widget, I<-popanchor> is I<sw>,
-and I<-overanchor> is I<ne>, the the dialog's southwest corner pops up
-at the widget's northeast corner.
-
-=head1 OPTIONS
-
-The options recognized by B<Popup> are as follows:
-
-=over 4
-
-=item B<-popover>
-
-Specifies whether the dialog "pops over" a window or the cursor.
-It may be the string I<cursor>, a widget reference, or undef for the
-root window.
-
-=item B<-popanchor>
-
-Specifies the anchor point of the dialog. For instance, if I<e> is
-specified, the right side of the dialog is the anchor.
-
-=item B<-overanchor>
-
-Specifies where the dialog should anchor relative to the popover
-location. For instance, if I<e> is specified the dialog appears over
-the right side of the popover location and if it's I<ne> the the
-dialog is positioned at the upper-right corner of the popover location.
-
-=back
-
-=head1 AUTHOR
-
-Nick Ing-Simmons, Steve Lidie
-
-This code is distributed under the same terms as Perl.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Pretty.pm b/Master/tlpkg/tlperl/lib/Tk/Pretty.pm
deleted file mode 100644
index 7e442a4bcbc..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Pretty.pm
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Pretty;
-require Exporter;
-
-use vars qw($VERSION @EXPORT);
-$VERSION = '4.006'; # $Id: //depot/Tkutf8/Tk/Pretty.pm#6 $
-
-use base qw(Exporter);
-
-@EXPORT = qw(Pretty PrintArgs);
-
-sub pretty_list
-{
- join(',',map(&Pretty($_),@_));
-}
-
-sub Pretty
-{
- return pretty_list(@_) if (@_ > 1);
- my $obj = shift;
- return 'undef' unless defined($obj);
- my $type = "$obj";
- return $type if ($type =~ /=HASH/ && exists($obj->{"_Tcl_CmdInfo_\0"}));
- my $result = '';
- if (ref $obj)
- {
- my $class;
- if ($type =~ /^([^=]+)=(.*)$/)
- {
- $class = $1;
- $type = $2;
- $result .= 'bless(';
- }
- if ($type =~ /^ARRAY/)
- {
- $result .= '[';
- $result .= pretty_list(@$obj);
- $result .= ']';
- }
- elsif ($type =~ /^HASH/)
- {
- $result .= '{';
- if (%$obj)
- {
- my ($key, $value);
- while (($key,$value) = each %$obj)
- {
- $result .= $key . '=>' . Pretty($value) . ',';
- }
- chop($result);
- }
- $result .= '}';
- }
- elsif ($type =~ /^REF/)
- {
- $result .= "\\" . Pretty($$obj);
- }
- elsif ($type =~ /^SCALAR/)
- {
- $result .= Pretty($$obj);
- }
- else
- {
- $result .= $type;
- }
- $result .= ",$class)" if (defined $class);
- }
- else
- {
- if ($obj =~ /^-?[0-9]+(.[0-9]*(e[+-][0-9]+)?)?$/ ||
- $obj =~ /^[A-Z_][A-Za-z_0-9]*$/ ||
- $obj =~ /^[a-z_][A-Za-z_0-9]*[A-Z_][A-Za-z_0-9]*$/
- )
- {
- $result .= $obj;
- }
- else
- {
- $result .= "'" . $obj . "'";
- }
- }
- return $result;
-}
-
-sub PrintArgs
-{
- my $name = (caller(1))[3];
- print "$name(",Pretty(@_),")\n";
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/ProgressBar.pm b/Master/tlpkg/tlperl/lib/Tk/ProgressBar.pm
deleted file mode 100644
index 33d97fb3b94..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ProgressBar.pm
+++ /dev/null
@@ -1,517 +0,0 @@
-package Tk::ProgressBar;
-
-use vars qw($VERSION);
-$VERSION = '4.015'; # was: sprintf '4.%03d', q$Revision: #10 $ =~ /\D(\d+)\s*$/;
-
-use Tk;
-use Tk::Canvas;
-use Tk::Trace;
-use Carp;
-use strict;
-
-use base qw(Tk::Derived Tk::Canvas);
-
-Construct Tk::Widget 'ProgressBar';
-
-sub ClassInit {
- my ($class,$mw) = @_;
-
- $class->SUPER::ClassInit($mw);
-
- $mw->bind($class,'<Configure>', ['_layoutRequest',1]);
-}
-
-my $LAYOUT_REQUEST_NONE = 0;
-my $LAYOUT_REQUEST_COLORS = 1;
-my $LAYOUT_REQUEST_VALUE = 2;
-my $LAYOUT_REQUEST_GEOM = 4;
-
-sub Populate {
- my($c,$args) = @_;
-
- $c->ConfigSpecs(
- -width => [PASSIVE => undef, undef, 0],
- '-length' => [PASSIVE => undef, undef, 0],
- -from => [PASSIVE => undef, undef, 0],
- -to => [PASSIVE => undef, undef, 100],
- -blocks => [PASSIVE => undef, undef, 10],
- -padx => [PASSIVE => 'padX', 'Pad', 0],
- -pady => [PASSIVE => 'padY', 'Pad', 0],
- -gap => [PASSIVE => undef, undef, 1],
- -colors => [PASSIVE => undef, undef, undef],
- -relief => [SELF => 'relief', 'Relief', 'sunken'],
- -value => [METHOD => undef, undef, undef],
- -variable => [METHOD => undef, undef, undef],
- -anchor => [METHOD => 'anchor', 'Anchor', 'w'],
- -resolution
- => [PASSIVE => undef, undef, 1.0],
- -highlightthickness
- => [SELF => 'highlightThickness','HighlightThickness',0],
- -troughcolor
- => [PASSIVE => 'troughColor', 'Background', 'grey55'],
- );
- $c->_layoutRequest($LAYOUT_REQUEST_COLORS);
- $c->OnDestroy(['Destroyed' => $c]);
-}
-
-sub ConfigChanged {
- my($c, $changed) = @_;
- for my $k (qw(from to blocks padx pady gap colors resolution troughcolor)) {
- if (exists $changed->{"-$k"}) {
- $c->_layoutRequest($LAYOUT_REQUEST_COLORS);
- last;
- }
- }
- for my $k (qw(borderwidth length width)) {
- if (exists $changed->{"-$k"}) {
- $c->_layoutRequest($LAYOUT_REQUEST_GEOM);
- last;
- }
- }
-}
-
-sub anchor {
- my $c = shift;
- my $var = \$c->{Configure}{'-anchor'};
- my $old = $$var;
-
- if(@_) {
- my $new = shift;
- croak "bad anchor position \"$new\": must be n, s, w or e"
- unless $new =~ /^[news]$/;
- $$var = $new;
- }
-
- $old;
-}
-
-sub _layoutRequest {
- my $c = shift;
- my $why = shift;
- $c->afterIdle(['_arrange',$c]) unless $c->{'layout_pending'};
- $c->{'layout_pending'} |= $why;
-}
-
-sub _arrange {
- my $c = shift;
- my $why = $c->{'layout_pending'};
-
- $c->{'layout_pending'} = 0;
-
- my $w = $c->Width;
- my $h = $c->Height;
- my $bw = $c->cget('-borderwidth') + $c->cget('-highlightthickness');
- my $x = abs(int($c->{Configure}{'-padx'})) + $bw;
- my $y = abs(int($c->{Configure}{'-pady'})) + $bw;
- my $value = $c->value;
- my $from = $c->{Configure}{'-from'};
- my $to = $c->{Configure}{'-to'};
- my $horz = $c->{Configure}{'-anchor'} =~ /[ew]/i ? 1 : 0;
- my $dir = $c->{Configure}{'-anchor'} =~ /[se]/i ? -1 : 1;
-
- my($minv,$maxv) = $from < $to ? ($from,$to) : ($to,$from);
-
- if(($w == 1 && $h == 1) || ($why & $LAYOUT_REQUEST_GEOM)) {
- my $bw = $c->cget('-borderwidth');
- my $defw = 10 + $y*2 + $bw *2;
- my $defl = ($maxv - $minv) + $x*2 + $bw*2;
-
- $h = $c->pixels($c->{Configure}{'-length'}) || $defl;
- $w = $c->pixels($c->{Configure}{'-width'}) || $defw;
-
- ($w,$h) = ($h,$w) if $horz;
- $c->GeometryRequest($w,$h);
- $c->update;
-
- $w = $c->Width;
- $h = $c->Height;
- }
-
- $w -= $x*2;
- $h -= $y*2;
-
- my $length = $horz ? $w : $h;
- my $width = $horz ? $h : $w;
-
- my $blocks = int($c->{Configure}{'-blocks'});
- my $gap = int($c->{Configure}{'-gap'});
-
- $blocks = 1 if $blocks < 1;
-
- my $gwidth = $gap * ( $blocks - 1);
- my $bwidth = ($length - $gwidth) / $blocks;
-
- if($bwidth < 3 || $blocks <= 1 || $gap <= 0) {
- $blocks = 1;
- $bwidth = $length;
- $gap = 0;
- }
-
- if($why & $LAYOUT_REQUEST_COLORS) {
- my $colors = $c->{Configure}{'-colors'} || [];
- my $bdir = $from < $to ? $dir : 0 - $dir;
-
- $c->delete('all');
-
- $c->createRectangle(0,0,$w+$x*2,$h+$y*2,
- -fill => $c->{Configure}{'-troughcolor'},
- -width => 0,
- -outline => undef);
-
- $c->{'cover'} = $c->createRectangle($x,$y,$w,$h,
- -fill => $c->{Configure}{'-troughcolor'},
- -width => 0,
- -outline => undef);
-
- my($x0,$y0,$x1,$y1);
-
- if($horz) {
- if($bdir > 0) {
- ($x0,$y0) = ($x - $gap,$y);
- }
- else {
- ($x0,$y0) = ($length + $x + $gap,$y);
- }
- ($x1,$y1) = ($x0,$y0 + $width);
- }
- else {
- if($bdir > 0) {
- ($x0,$y0) = ($x,$y - $gap);
- }
- else {
- ($x0,$y0) = ($x,$length + $y + $gap);
- }
- ($x1,$y1) = ($x0 + $width,$y0);
- }
-
- my $blks = $blocks;
- my $dval = ($maxv - $minv) / $blocks;
- my $color = $c->cget('-foreground');
- my $pos = 0;
- my $val = $minv;
-
- while($val < $maxv) {
- my($bw,$nval);
-
- while(($pos < @$colors) && $colors->[$pos] <= $val) {
- $color = $colors->[$pos+1];
- $pos += 2;
- }
-
- if($blocks == 1) {
- $nval = defined($colors->[$pos])
- ? $colors->[$pos] : $maxv;
- $bw = (($nval - $val) / ($maxv - $minv)) * $length;
- }
- else {
- $bw = $bwidth;
- $nval = $val + $dval if($blocks > 1);
- }
-
- if($horz) {
- if($bdir > 0) {
- $x0 = $x1 + $gap;
- $x1 = $x0 + $bw;
- }
- else {
- $x1 = $x0 - $gap;
- $x0 = $x1 - $bw;
- }
- }
- else {
- if($bdir > 0) {
- $y0 = $y1 + $gap;
- $y1 = $y0 + $bw;
- }
- else {
- $y1 = $y0 - $gap;
- $y0 = $y1 - $bw;
- }
- }
-
- $c->createRectangle($x0,$y0,$x1,$y1,
- -fill => $color,
- -width => 0,
- -outline => undef
- );
- $val = $nval;
- }
- }
-
- my $cover = $c->{'cover'};
- my $ddir = $from > $to ? 1 : -1;
-
- if(($value <=> $to) == (0-$ddir)) {
- $c->lower($cover);
- }
- elsif(($value <=> $from) == $ddir) {
- $c->raise($cover);
- my $x1 = $horz ? $x + $length : $x + $width;
- my $y1 = $horz ? $y + $width : $y + $length;
- $c->coords($cover,$x,$y,$x1,$y1);
- }
- else {
- my $step;
- $value = int($value / $step) * $step
- if(defined($step = $c->{Configure}{'-resolution'}) && $step > 0);
-
- $maxv = $minv+1
- if $minv == $maxv;
-
- my $range = $maxv - $minv;
- my $bval = $range / $blocks;
- my $offset = abs($value - $from);
- my $ioff = int($offset / $bval);
- my $start = $ioff * ($bwidth + $gap);
- $start += ($offset - ($ioff * $bval)) / $bval * $bwidth;
-
- my($x0,$x1,$y0,$y1);
-
- if($horz) {
- $y0 = $y;
- $y1 = $y + $h;
- if($dir > 0) {
- $x0 = $x + $start;
- $x1 = $x + $w;
- }
- else {
- $x0 = $x;
- $x1 = $w + $x - $start;
- }
- }
- else {
- $x0 = $x;
- $x1 = $x + $w;
- if($dir > 0) {
- $y0 = $y + $start;
- $y1 = $y + $h;
- }
- else {
- $y0 = $y;
- $y1 = $h + $y - $start;
- }
- }
-
-
- $c->raise($cover);
- $c->coords($cover,$x0,$y0,$x1,$y1);
- }
-}
-
-sub value {
- my $c = shift;
- my $val = defined($c->{'-variable'})
- ? $c->{'-variable'}
- : \$c->{'-value'};
- my $old = defined($$val) ? $$val : $c->{Configure}{'-from'};
-
- if(@_) {
- my $value = shift;
- $$val = defined($value) ? $value : $c->{Configure}{'-from'};
- $c->_layoutRequest($LAYOUT_REQUEST_VALUE);
- }
-
- $old;
-}
-
-sub variable {
- my $c = shift;
- my $oldvarref = $c->{'-variable'};
- my $oldval; $oldval = $$oldvarref if $oldvarref;
- if(@_) {
- my $varref = shift;
- if ($oldvarref)
- {
- $c->traceVdelete($oldvarref);
- }
- $c->{'-variable'} = $varref;
- $c->traceVariable($varref, 'w', sub { $c->value($_[1]) });
- $$varref = $oldval;
- $c->_layoutRequest($LAYOUT_REQUEST_VALUE);
- }
- $oldval;
-}
-
-sub Destroyed
-{
- my $c = shift;
- my $var = delete $c->{'-variable'};
- $c->traceVdelete($var);
-}
-
-1;
-__END__
-
-=head1 NAME
-
-Tk::ProgressBar - A graphical progress bar
-
-=for category Derived Widgets
-
-=head1 SYNOPSIS
-
- use Tk::ProgressBar;
-
- $progress = $parent->ProgressBar(
- -width => 20,
- -length => 200,
- -anchor => 's',
- -from => 0,
- -to => 100,
- -blocks => 10,
- -colors => [0, 'green', 50, 'yellow' , 80, 'red'],
- -variable => \$percent_done
- );
-
- $progress->value($position);
-
-=head1 DESCRIPTION
-
-B<Tk::ProgressBar> provides a widget which will show a graphical representation
-of a value, given maximum and minimum reference values.
-
-=head1 STANDARD OPTIONS
-
-The following standard widget options are supported:
-
-=over 4
-
-=item B<-borderwidth>
-
-=item B<-highlightthickness>
-
-Defaults to 0.
-
-=item B<-padx>
-
-Defaults to 0.
-
-=item B<-pady>
-
-Defaults to 0.
-
-=item B<-relief>
-
-Defaults to C<sunken>
-
-=item B<-troughcolor>
-
-The color to be used for the background (trough) of the progress bar.
-Default is to use grey55.
-
-=back
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item B<-anchor>
-
-This can be used to position the start point of the bar. Default
-is 'w' (horizontal bar starting from the left). A vertical bar can be
-configured by using either 's' or 'n'.
-
-=item B<-blocks>
-
-This controls the number of blocks to be used to construct the progress
-bar. The default is to break the bar into 10 blocks.
-
-=item B<-colors>
-
-Controls the colors to be used for different positions of the progress bar.
-The colors should be supplied as a reference to an array containing pairs
-of positions and colors.
-
- -colors => [ 0, 'green', 50, 'red' ]
-
-means that for the range 0 to 50 the progress bar should be green
-and for higher values it should be red.
-
-
-=item B<-from>
-
-This sets the lower limit of the progress bar. If the bar is set to a
-value below the lower limt no bar will be displayed. Defaults to 0.
-See the C<-to> description for more information.
-
-=item B<-gap>
-
-This is the spacing (in pixels) between each block. Defaults to 1.
-Use 0 to get a continuous bar.
-
-
-=item B<-length>
-
-Specifies the desired long dimension of the ProgressBar in screen
-units (i.e. any of the forms acceptable to Tk_GetPixels). For vertical
-ProgressBars this is the ProgressBars height; for horizontal scales it
-is the ProgressBars width. The default length is calculated from the
-values of C<-padx>, C<-borderwidth>, C<-highlightthickness> and the
-difference between C<-from> and C<-to>.
-
-
-=item B<-resolution>
-
-A real value specifying the resolution for the scale. If this value is greater
-than zero then the scale's value will always be rounded to an even multiple of
-this value, as will tick marks and the endpoints of the scale. If the value is
-less than zero then no rounding occurs. Defaults to 1 (i.e., the value will be
-integral).
-
-=item B<-to>
-
-This sets the upper limit of the progress bar. If a value is specified
-(for example, using the C<value> method) that lies above this value the
-full progress bar will be displayed. Defaults to 100.
-
-
-
-=item B<-variable>
-
-Specifies the reference to a scalar variable to link to the ProgressBar.
-Whenever the value of the variable changes, the ProgressBar will update
-to reflect this value. (See also the B<value> method below.)
-
-=item B<-value>
-
-This can be used to set the current position of the progress bar
-when used in conjunction with the standard C<configure>. It is
-usually recommended to use the B<value> method instead.
-
-
-=item B<-width>
-
-Specifies the desired narrow dimension of the ProgressBar in screen
-units (i.e. any of the forms acceptable to Tk_GetPixels). For
-vertical ProgressBars this is the ProgressBars width; for horizontal
-bars this is the ProgressBars height. The default width is derived
-from the values of C<-borderwidth> and C<-pady> and C<-highlightthickness>.
-
-=back
-
-=head1 WIDGET METHODS
-
-=over 4
-
-=item I<$ProgressBar>-E<gt>B<value>(?I<value>?)
-
-If I<value> is omitted, returns the current value of the ProgressBar. If
-I<value> is given, the value of the ProgressBar is set. If I<$value> is
-given but undefined the value of the option B<-from> is used.
-
-=back
-
-
-=head1 AUTHOR
-
-Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
-
-=head1 COPYRIGHT
-
-Copyright (c) 1997-1998 Graham Barr. All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=cut
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/README.Adjust b/Master/tlpkg/tlperl/lib/Tk/README.Adjust
deleted file mode 100644
index 8c3eba45717..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/README.Adjust
+++ /dev/null
@@ -1,77 +0,0 @@
-Subject: Adjuster
-Date: Wed, 16 Dec 1998 22:23:23 +0100
-From: Stephen Kun <stephen.kun@is.gaertner.de>
-To: Nick Ing-Simmons <nick@ni-s.u-net.com>
-
-
-
-
-3. How do I find out whether slave is a pack or grid master or if it is not a
-master (for setting packPropagate(0))
-Currently I set both on the slave.
-
-4. In setting position of drag bar, I do a lot of calcs for each motion event.
-Some could be done one for first, then used again for subsequent calls, eg:
-borderwidth of master, etc.
-I've now partially done this and store them on the widget.
-
-5. Do I need XSync and idletasks calls in Adjuster.pm?
-XSync causes a bug. idletasks doesn't make any difference in practice, from
-what I can see. I've commented both out.
-Bug when using XSync:
- Run pack_adj_4r
- Shorten whole window from right so that left window edge crosses leftmost
- adjuster. Buttons on other adjusters disappear
-
-6. Sometimes the effect given by the Restore method, is undesirable. Eg.
-for multi-columns. Then when you expand say the 1st column, the size of the
-col at the end gets reduced to 0 width when the Adjuster forces itself in.
-Then when you reduce the size of the first column again, the end col is still
-0 width.
-Better would be:
-a) put the restore functionality on a flag OR
-b) when a col is reduced because of a Restore, it saves previous width of
-its slave, and attempts to restore it when the space becomes availabe. (Sounds
-impracticable.)
-I've implemented a) with default ON. In the documentation I'll recommend the
-default for the 1st Adjuster, then OFF for the remaining.
-
-8. What about a packAdjustForget? Given that Adjuster doesn't work well for
-grid anyway, and doesn't consider other managers, that wouldn't be too bad.
-I'm not going to do this, but someone mentioned it a while ago. I can
-see me probably wanting it too at some point.
-Are you for the idea?
-
-10. Grid doesn't work well with Adjuster, didn't before either. I think
-this has to do with grid, rather than adjuster. You get the same effect
-if you grid a row of widgets, then reduce the width of the window.
-Bugs demonstrated by grid_adj_4l:
-a) there's never an Unmap event for the adjuster.
-b) after adjusting, widgets protrude into border on right.
-c) grid('Propagate', 0) on MainWindow has no effect - window shrinks/grows
- when widgets are adjusted
-d) widgets shuffle to correct position on startup
-I don't recommend use of grid with Adjust!
-
-11. Have taken out __END__ temporarily for testing
-Will put it back before publishing on the mailing list.
-
-12. Why do the adjusters in my testcases come out grey? That's not the
-default background.
-
-13. Could packAdjust return ($adj, $w). Could then do:
- my $canv = $top->Canvas()->packAdjust();
-OR
- my ($adj, $canv) = $top->Canvas()->packAdjust();
-Latter is good if you want to configure or unpack adjuster later.
-I realise this is very Kludgy, but there's no other way to get the
-Adjuster from packAdjust.
-I suppose the workaround of creating the Adjuster yourself is OK. When
-you do it by hand though, there's more chance of making mistakes, eg
-forgetting the -side (which defaults then to 'top') which would cause havoc.
-What's your opinion.
-
-14. Run the script adj_button_bug: You can't reduce size of button.
-Button can be expanded, but as soon as focus enters button, it springs back
-to its original size. Why?
-It's not important though.
diff --git a/Master/tlpkg/tlperl/lib/Tk/ROText.pm b/Master/tlpkg/tlperl/lib/Tk/ROText.pm
deleted file mode 100644
index 21fe52004db..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ROText.pm
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::ROText;
-
-use vars qw($VERSION);
-#$VERSION = sprintf '4.%03d', q$Revision: #10 $ =~ /\D(\d+)\s*$/;
-$VERSION = '4.011';
-
-use Tk::Text;
-use base qw(Tk::Derived Tk::Text);
-
-Construct Tk::Widget 'ROText';
-
-sub clipEvents
-{
- return qw[Copy];
-}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- my $val = $class->bindRdOnly($mw);
- my $cb = $mw->bind($class,'<Next>');
- $mw->bind($class,'<space>',$cb) if (defined $cb);
- $cb = $mw->bind($class,'<Prior>');
- $mw->bind($class,'<BackSpace>',$cb) if (defined $cb);
- $class->clipboardOperations($mw,'Copy');
- return $val;
-}
-
-sub Populate
-{
- my($self,$args) = @_;
- $self->SUPER::Populate($args);
- my $m = $self->menu->entrycget($self->menu->index('Search'), '-menu');
- $m->delete($m->index('Replace'));
- $self->ConfigSpecs(-background => ['SELF'],
- -foreground => ['SELF'],
- );
-}
-
-sub Tk::Widget::ScrlROText { shift->Scrolled('ROText' => @_) }
-
-1;
-
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/ROText.pod b/Master/tlpkg/tlperl/lib/Tk/ROText.pod
deleted file mode 100644
index b442164ae72..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ROText.pod
+++ /dev/null
@@ -1,48 +0,0 @@
-
-=head1 NAME
-
-Tk::ROText - 'readonly' perl/Tk Text widget
-
-=for pm Tk/ROText.pm
-
-=for category Derived Widgets
-
-=head1 SYNOPSIS
-
- use Tk::ROText;
- ...
- $ro = $mw->ROText(?options,...?);
-
-=head1 DESCRIPTION
-
-This "I<IS A>" text widget with all bindings removed that would alter
-the contents of the text widget. The contents can still be modified
-via method calls.
-
-=head2 BINDINGS
-
-Only read-only bindings from L<Tk::Text> are available in
-B<Tk::ROText>. Additionally the following bindings are defined:
-
-=over
-
-=item <space>
-
-Move the cursor forward by one screenful.
-
-=item <BackSpace>
-
-Move the cursor backward by one screenful.
-
-=back
-
-=head1 KEYWORDS
-
-widget, text, readonly
-
-=head1 SEE ALSO
-
-L<Tk::Text>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Radiobutton.pm b/Master/tlpkg/tlperl/lib/Tk/Radiobutton.pm
deleted file mode 100644
index d09d41b4208..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Radiobutton.pm
+++ /dev/null
@@ -1,45 +0,0 @@
-# Conversion from Tk4.0 button.tcl competed.
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-
-package Tk::Radiobutton;
-
-use vars qw($VERSION);
-$VERSION = '4.006'; # $Id: //depot/Tkutf8/Tk/Radiobutton.pm#6 $
-
-# modify it under the same terms as Perl itself, subject
-# to additional disclaimer in license.terms due to partial
-# derivation from Tk4.0 sources.
-
-require Tk::Button;
-
-
-use base qw(Tk::Button);
-Construct Tk::Widget 'Radiobutton';
-
-sub Tk_cmd { \&Tk::radiobutton }
-
-sub CreateOptions
-{
- return (shift->SUPER::CreateOptions,'-variable');
-}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<Enter>', 'Enter');
- $mw->bind($class,'<Leave>', 'Leave');
- $mw->bind($class,'<1>', 'Invoke');
- $mw->bind($class,'<space>', 'Invoke');
- return $class;
-}
-
-sub Invoke
-{
- my $w = shift;
- $w->invoke() unless($w->cget('-state') eq 'disabled');
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/Radiobutton.pod b/Master/tlpkg/tlperl/lib/Tk/Radiobutton.pod
deleted file mode 100644
index 4a1cee57d20..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Radiobutton.pod
+++ /dev/null
@@ -1,333 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Radiobutton - Create and manipulate Radiobutton widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-I<$radiobutton> = I<$parent>-E<gt>B<Radiobutton>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-activebackground>
-B<-activeforeground>
-B<-anchor>
-B<-background>
-B<-bitmap>
-B<-borderwidth>
-B<-compound>
-B<-cursor>
-B<-disabledforeground>
-B<-font>
-B<-foreground>
-B<-highlightbackground>
-B<-highlightcolor>
-B<-highlightthickness>
-B<-image>
-B<-justify>
-B<-padx>
-B<-pady>
-B<-relief>
-B<-takefocus>
-B<-text>
-B<-textvariable>
-B<-underline>
-B<-wraplength>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<command>
-
-=item Class: B<Command>
-
-=item Switch: B<-command>
-
-Specifies a L<perlE<sol>Tk callback|Tk::callbacks> to associate with the button. This command
-is typically invoked when mouse button 1 is released over the button
-window. The button's global variable (B<-variable> option) will
-be updated before the command is invoked.
-
-=item Name: B<height>
-
-=item Class: B<Height>
-
-=item Switch: B<-height>
-
-Specifies a desired height for the button.
-If an image or bitmap is being displayed in the button then the value is in
-screen units (i.e. any of the forms acceptable to B<Tk_GetPixels>);
-for text it is in lines of text.
-If this option isn't specified, the button's desired height is computed
-from the size of the image or bitmap or text being displayed in it.
-
-=item Name: B<indicatorOn>
-
-=item Class: B<IndicatorOn>
-
-=item Switch: B<-indicatoron>
-
-Specifies whether or not the indicator should be drawn. Must be a
-proper boolean value. If false, the B<relief> option is
-ignored and the widget's relief is always sunken if the widget is
-selected and raised otherwise.
-
-=item Command-Line Name: B<-offrelief>
-
-=item Database Name: B<offRelief>
-
-=item Database Class: B<OffRelief>
-
-Specifies the relief for the checkbutton when the indicator is not
-drawn and the checkbutton is off. The default value is B<raised>. By
-setting this option to B<flat> and setting
-B<-indicatoron false -overrelief raised>, the effect is achieved of
-having a flat button
-that raises on mouse-over and which is depressed when activated. This
-is the behavior typically exhibited by the Bold, Italic, and
-Underline checkbuttons on the toolbar of a word-processor, for
-example.
-
-=item Command-Line Name: B<-overrelief>
-
-=item Database Name: B<overRelief>
-
-=item Database Class: B<OverRelief>
-
-Specifies an alternative relief for the button, to be used when
-the mouse cursor is over the widget. This option can be used to
-make toolbar buttons, by configuring B<-relief flat -overrelief
-raised>. If the value of this option is the empty string, then
-no alternative relief is used when the mouse cursor is over the
-button. The empty string is the default value.
-
-=item Name: B<selectColor>
-
-=item Class: B<Background>
-
-=item Switch: B<-selectcolor>
-
-Specifies a background color to use when the button is selected.
-If B<indicatorOn> is true then the color applies to the indicator.
-Under Windows, this color is used as the background for the indicator
-regardless of the select state.
-If B<indicatorOn> is false, this color is used as the background
-for the entire widget, in place of B<background> or B<activeBackground>,
-whenever the widget is selected.
-If specified as an empty string then no special color is used for
-displaying when the widget is selected.
-
-=item Name: B<selectImage>
-
-=item Class: B<SelectImage>
-
-=item Switch: B<-selectimage>
-
-Specifies an image to display (in place of the B<image> option)
-when the radiobutton is selected.
-This option is ignored unless the B<image> option has been
-specified.
-
-=item Name: B<state>
-
-=item Class: B<State>
-
-=item Switch: B<-state>
-
-Specifies one of three states for the radiobutton: B<normal>, B<active>,
-or B<disabled>. In normal state the radiobutton is displayed using the
-B<foreground> and B<background> options. The active state is
-typically used when the pointer is over the radiobutton. In active state
-the radiobutton is displayed using the B<activeForeground> and
-B<activeBackground> options. Disabled state means that the radiobutton
-should be insensitive: the default bindings will refuse to activate
-the widget and will ignore mouse button presses.
-In this state the B<disabledForeground> and
-B<background> options determine how the radiobutton is displayed.
-
-=item Name: B<value>
-
-=item Class: B<Value>
-
-=item Switch: B<-value>
-
-Specifies value to store in the button's associated variable whenever
-this button is selected.
-
-=item Name: B<variable>
-
-=item Class: B<Variable>
-
-=item Switch: B<-variable>
-
-Specifies reference to a variable to set whenever this button is
-selected. Changes in this variable also cause the button to select
-or deselect itself. Defaults to the value C<\$Tk::selectedButton>.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies a desired width for the button.
-If an image or bitmap is being displayed in the button, the value is in
-screen units (i.e. any of the forms acceptable to B<Tk_GetPixels>);
-for text it is in characters.
-If this option isn't specified, the button's desired width is computed
-from the size of the image or bitmap or text being displayed in it.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Radiobutton> method creates a new window (given by the
-$widget argument) and makes it into a radiobutton widget.
-Additional
-options, described above, may be specified on the command line
-or in the option database
-to configure aspects of the radiobutton such as its colors, font,
-text, and initial relief. The B<radiobutton> command returns its
-$widget argument. At the time this command is invoked,
-there must not exist a window named $widget, but
-$widget's parent must exist.
-
-A radiobutton is a widget that displays a textual string, bitmap or image
-and a diamond or circle called an I<indicator>.
-If text is displayed, it must all be in a single font, but it
-can occupy multiple lines on the screen (if it contains newlines
-or if wrapping occurs because of the B<wrapLength> option) and
-one of the characters may optionally be underlined using the
-B<underline> option. A radiobutton has
-all of the behavior of a simple button: it can display itself in either
-of three different ways, according to the B<state> option;
-it can be made to appear
-raised, sunken, or flat; it can be made to flash; and it invokes
-a L<perlE<sol>Tk callback|Tk::callbacks> whenever mouse button 1 is clicked over the
-check button.
-
-In addition, radiobuttons can be I<selected>.
-If a radiobutton is selected, the indicator is normally
-drawn with a selected appearance, and
-a Tcl variable associated with the radiobutton is set to a particular
-value (normally 1).
-Under Unix, the indicator is drawn with a sunken relief and a special
-color. Under Windows, the indicator is drawn with a round mark inside.
-If the radiobutton is not selected, then the indicator is drawn with a
-deselected appearance, and the associated variable is
-set to a different value (typically 0).
-Under Unix, the indicator is drawn with a raised relief and no special
-color. Under Windows, the indicator is drawn without a round mark inside.
-Typically, several radiobuttons share a single variable and the
-value of the variable indicates which radiobutton is to be selected.
-When a radiobutton is selected it sets the value of the variable to
-indicate that fact; each radiobutton also monitors the value of
-the variable and automatically selects and deselects itself when the
-variable's value changes.
-By default the variable B<selectedButton>
-is used; its contents give the name of the button that is
-selected, or the empty string if no button associated with that
-variable is selected.
-The name of the variable for a radiobutton,
-plus the variable to be stored into it, may be modified with options
-on the command line or in the option database.
-Configuration options may also be used to modify the way the
-indicator is displayed (or whether it is displayed at all).
-By default a radiobutton is configured to select itself on button clicks.
-
-=head1 WIDGET METHODS
-
-The B<Radiobutton> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-The following additional methods are available for radiobutton widgets:
-
-=over 4
-
-=item I<$radiobutton>-E<gt>B<deselect>
-
-Deselects the radiobutton and sets the associated variable to an
-empty string.
-If this radiobutton was not currently selected, the command has
-no effect.
-
-=item I<$radiobutton>-E<gt>B<flash>
-
-Flashes the radiobutton. This is accomplished by redisplaying the radiobutton
-several times, alternating between active and normal colors. At
-the end of the flash the radiobutton is left in the same normal/active
-state as when the command was invoked.
-This command is ignored if the radiobutton's state is B<disabled>.
-
-=item I<$radiobutton>-E<gt>B<invoke>
-
-Does just what would have happened if the user invoked the radiobutton
-with the mouse: selects the button and invokes
-its associated Tcl command, if there is one.
-The return value is the return value from the Tcl command, or an
-empty string if there is no command associated with the radiobutton.
-This command is ignored if the radiobutton's state is B<disabled>.
-
-=item I<$radiobutton>-E<gt>B<select>
-
-Selects the radiobutton and sets the associated variable to the
-value corresponding to this widget.
-
-=back
-
-=head1 BINDINGS
-
-Tk automatically creates class bindings for radiobuttons that give them
-the following default behavior:
-
-=over 4
-
-=item [1]
-
-On Unix systems, a radiobutton activates whenever the mouse passes
-over it and deactivates whenever the mouse leaves the radiobutton. On
-Mac and Windows systems, when mouse button 1 is pressed over a
-radiobutton, the button activates whenever the mouse pointer is inside
-the button, and deactivates whenever the mouse pointer leaves the
-button.
-
-=item [2]
-
-When mouse button 1 is pressed over a radiobutton it is invoked (it
-becomes selected and the command associated with the button is
-invoked, if there is one).
-
-=item [3]
-
-When a radiobutton has the input focus, the space key causes the radiobutton
-to be invoked.
-
-If the radiobutton's state is B<disabled> then none of the above
-actions occur: the radiobutton is completely non-responsive.
-
-The behavior of radiobuttons can be changed by defining new bindings for
-individual widgets or by redefining the class bindings.
-
-=back
-
-=head1 KEYWORDS
-
-radiobutton, widget
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Region.pm b/Master/tlpkg/tlperl/lib/Tk/Region.pm
deleted file mode 100644
index 3e02bd2ff49..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Region.pm
+++ /dev/null
@@ -1,182 +0,0 @@
-package Tk::Region;
-
-# Ideas in progress do not document ...
-
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '4.006'; # $Id: //depot/Tkutf8/Tk/Region.pm#6 $
-
-use Tk::Widget ();
-
-Construct Tk::Widget 'Region';
-
-my %index = (-widget => 1, '-x' => 2, '-y' => 3, -width => 4, -height => 5);
-
-sub _attr
-{
- my ($obj,$key,$val) = @_;
- if (@_ > 2)
- {
- $obj->{$key} = $val;
- }
- return $obj->{$key}
-}
-
-foreach my $name (qw(widget x y width height))
- {
- my $key = "-$name";
- no strict 'refs';
- *{$name} = sub { shift->_attr($key,@_) };
- }
-
-sub new
-{
- my $class = shift;
- my $widget = shift;
- my $obj = bless [\%index,$widget,0,0,0,0],$class;
- $obj->configure(@_);
-}
-
-sub cfgDefault
-{
- my ($class,$key) = @_;
- return undef;
-}
-
-sub cfgName
-{
- my ($class,$key) = @_;
- $key =~ s/^-//;
- return lcfirst($key);
-}
-
-sub cfgClass
-{
- return ucfirst(shift->cfgName(@_));
-}
-
-sub configure
-{
- my $obj = shift;
- my @results;
- if (@_ > 1)
- {
- while (@_)
- {
- my $key = shift;
- my $val = shift;
- if (exists $obj->{$key})
- {
- $obj->{$key} = $val;
- }
- else
- {
- my ($meth) = $key =~ /^-(\w+)$/;
- croak("Invalid option $key") unless $obj->can($meth);
- $obj->$meth($val);
- }
- }
- }
- elsif (@_ == 1)
- {
- my $key = shift;
- my $value = $obj->cget($key);
- push(@results,$key,$obj->cfgName($key),$obj->cfgClass($key),$obj->cfgDefault($key),$value);
- }
- else
- {
- foreach my $key (sort keys %$obj)
- {
- push(@results,scalar($obj->configure($key)))
- }
- }
- return wantarray ? @results : \@results;
-}
-
-sub cget
-{
- my $obj = shift;
- my $key = shift;
- return $obj->{$key} if exists $obj->{$key};
- my ($meth) = $key =~ /^-(\w+)$/;
- croak("Invalid option $key") unless $obj->can($meth);
- return $obj->$meth();
-}
-
-sub bbox
-{
- my $obj = shift;
- my @results;
- if (@_)
- {
- my $ref = (@_ == 1) ? shift : \@_;
- my ($x1,$y1,$x2,$y2) = (ref $ref) ? @$ref : split(/\s+/,$ref);
- ($x2,$x1) = ($x1,$x2) if ($x2 < $x1);
- ($y2,$y1) = ($y1,$y2) if ($y2 < $y1);
- $obj->width($x2-$x1);
- $obj->height($y2-$y1);
- $obj->x($x1);
- $obj->y($y1);
- }
- else
- {
- my $x = $obj->x;
- my $y = $obj->x;
- push(@results,$x,$y,$x+$obj->width,$y+$obj->height);
- }
- return wantarray ? @results : \@results;
-}
-
-sub rootx
-{
- my $obj = shift;
- if (@_)
- {
- my $x = shift;
- $obj->x($x-$obj->widget->rootx);
- }
- return $obj->widget->rootx + $obj->{'-x'}
-}
-
-sub rooty
-{
- my $obj = shift;
- if (@_)
- {
- my $y = shift;
- $obj->y($y-$obj->widget->rootx);
- }
- return $obj->widget->rooty + $obj->{'-y'}
-}
-
-sub rootxy
-{
- my $obj = shift;
- if (@_)
- {
- $obj->rootx(shift);
- $obj->rooty(shift);
- }
- my @results = ($obj->rootx,$obj->rooty);
- return wantarray ? @results : \@results;
-}
-
-sub rootbbox
-{
- my $obj = shift;
- my ($x1,$y1) = $obj->rootxy;
- my $x2 = $x1+$obj->width;
- my $y2 = $y1+$obj->height;
- my @results = ($x1,$y1,$x2,$y2);
- return wantarray ? @results : \@results;
-}
-
-
-*Width = \&width;
-*Height = \&height;
-*X = \&rootx;
-*Y = \&rooty;
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/Reindex.pm b/Master/tlpkg/tlperl/lib/Tk/Reindex.pm
deleted file mode 100644
index 7be04e7c88e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Reindex.pm
+++ /dev/null
@@ -1,233 +0,0 @@
-package Tk::Reindex;
-
-
-use vars qw($VERSION);
-$VERSION = '4.006'; # $Id: //depot/Tkutf8/TextList/Reindex.pm#4 $
-
-use Tk;
-use base qw(Tk::Derived);
-
-
-sub Populate
-{
- my ($w, $args) = @_;
-
- $w->_callbase('Populate',$args);
-
- $w->ConfigSpecs(-linestart => ["PASSIVE", "lineStart", "LineStart", 0],
- -toindexcmd => ["CALLBACK", "toIndexCmd", "ToIndexCmd" , [\&to_index,$w]],
- -fromindexcmd => ["CALLBACK", "fromIndexCmd","FromIndexCmd", [\&from_index,$w]]);
-}
-
-sub import
-{
- my($module,$base)=@_;
- my $pkg=(caller)[0];
-
- no strict 'refs';
- *{"${pkg}::_reindexbase"}=sub{$base};
-}
-
-sub _callbase
-{
- my($w,$sub)=(shift,shift);
- my $supersub=$w->_reindexbase()."::$sub";
- $w->$supersub(@_);
-}
-
-BEGIN
-{
- # list of subroutines and index argument number (-1 as first element means return value)
- my %subs=('bbox' => [0],
- 'compare' => [0,2],
- 'delete' => [0,1],
- 'dlineinfo' => [0],
- 'dump' => \&_find_dump_index,
- 'get' => [0,1],
- 'index' => [-1,0],
- 'insert' => [0],
- 'mark' => \&_find_mark_index,
- 'search' => \&_find_search_index,
- 'see' => [0],
- 'tag' => \&_find_tag_index,
- 'window' => [1],
- 'image' => [1],
- );
-
- foreach my $sub (keys %subs)
- {
- my $args=$subs{$sub};
- my $argsub=ref $args eq 'CODE'?$args:sub{$args};
- my $newsub=sub
- {
- my($w)=shift;
- my(@iargs)=grep($_<=$#_,@{$argsub->(@_)});
- my $iret; $iret=shift @iargs if @iargs && $iargs[0]==-1;
- my(@args)=@_;
- @args[@iargs]=$w->Callback(-toindexcmd,@args[@iargs]);
- my(@ret)=$w->_callbase($sub,@args);
- @ret=$w->Callback(-fromindexcmd,@ret) if $iret;
- wantarray?@ret:$ret[0];
- };
- no strict 'refs';
- *{$sub}=$newsub;
- }
-}
-
-sub to_index
-{
- my $w=shift;
- my $offset=$w->cget(-linestart)+1;
- my(@args)=@_;
- foreach (@args)
- {
- s/^\d+(?=\.)/$&+$offset/e;
- }
- @args;
-}
-
-sub from_index
-{
- my $w=shift;
- my $offset=$w->cget(-linestart)+1;
- my(@args)=@_;
- foreach (@args)
- {
- s/^\d+(?=\.)/$&-$offset/e
- }
- @args;
-}
-
-sub _find_dump_index
-{
- my $idx=_count_options(@_);
- [$idx,$idx+1];
-}
-
-sub _find_search_index
-{
- my $idx=_count_options(@_);
- [$idx+1,$idx+2];
-}
-
-sub _count_options
-{
- my $idx=0;
- while($_[$idx]=~/^-/g)
- {
- $idx++;
- $idx++ if $' eq 'count' or $' eq 'command';
- last if $' eq '-';
- }
- $idx;
-}
-
-sub _find_tag_index
-{
- return [1] if $_[0] eq 'names';
- return [2,3] if $_[0]=~/^(add|remove|nextrange|prevrange)$/;
- return [-1] if $_[0] eq 'ranges';
- return [];
-}
-
-sub _find_mark_index
-{
- return [2] if $_[0] eq 'set';
- return [1] if $_[0] eq 'next' or $_[0] eq 'previous';
- return [];
-}
-
-1;
-
-=head1 NAME
-
-Tk::Reindex - change the base index of Text-like widgets
-
-=for category Derived Widgets
-
-=head1 SYNOPSIS
-
- use Tk::ReindexedText;
- $t1=$w->ReindexedText(-linestart => 2);
-
- use Tk::ReindexedROText;
- $t2=$w->ReindexedROText(-linestart => 0);
-
-=head1 DESCRIPTION
-
-Creates a new widget class based on B<Text>-like widgets that can
-redefine the line number base (normally B<Text> widgets start line
-numbers at 1), or possibly other manipulations on indexes.
-
-=head1 STANDARD OPTIONS
-
-The newly-defined widget takes all the same options as the base
-widget, which defaults to B<Text>.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over
-
-=item Name: B<lineStart>
-
-=item Class: B<LineStart>
-
-=item Switch: B<-linestart>
-
-Sets the line number of the first line in the B<Text> widget. The
-default B<-toindexcmd> and B<-fromindexcmd> use this configuration
-option.
-
--item Name: B<toIndexCmd> B<fromIndexCmd>
-
--item Class: B<ToIndexCmd> B<FromIndexCmd>
-
--item Switch: B<-toindexcmd> B<-fromindexcmd>
-
-These two options specify callbacks that are called with a list of
-indexes and are responsible for translating them to/from indexes that
-the base B<Text> widget can understand. The callback is passed the
-widget followed by a list of indexes, and should return a list of
-translated indexes. B<-toindexcmd> should translate from 'user'
-indexes to 'native' B<Text>-compatible indexes, and B<-fromindexcmd>
-should translate from 'native' indexes to 'user' indexes.
-
-The default callbacks simply add/subtract the offset given by the
-B<-linestart> option for all indexes in 'line.character' format.
-
-It would probably be prudent to make these functions inverses of each
-other.
-
-=back
-
-=head1 CLASS METHODS
-
-=over
-
-=item import
-
-To make new Reindex widgets, this function should be called via B<use>
-with the name of the Text-like base class that you are extending with
-"Reindex" capability. 'use base(Tk::Reindex Tk::nameofbasewidget)'
-should also be specified for that widget.
-
-=back
-
-=head1 BUGS
-
-I've used the word "indexes" instead of "indices" throughout the
-documentation.
-
-All the built-in perl code for widget bindings & methods will use the
-new 'user' indexes. Which means all this index manipulation might
-might break code that is trying to parse/manipulate indexes. Or even
-assume that '1.0' is the beginning index. B<Tk::Text::Contents> comes
-to mind.
-
-=head1 AUTHOR
-
-Andrew Allen <ada@fc.hp.com>
-
-This code may be distributed under the same conditions as Perl.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tk/ReindexedROText.pm b/Master/tlpkg/tlperl/lib/Tk/ReindexedROText.pm
deleted file mode 100644
index 8c293f5fa61..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ReindexedROText.pm
+++ /dev/null
@@ -1,13 +0,0 @@
-use strict;
-package Tk::ReindexedROText;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/TextList/ReindexedROText.pm#4 $
-
-use Tk::Reindex qw(Tk::ROText);
-use base qw(Tk::Reindex Tk::ROText);
-Construct Tk::Widget 'ReindexedROText';
-
-1;
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/ReindexedText.pm b/Master/tlpkg/tlperl/lib/Tk/ReindexedText.pm
deleted file mode 100644
index c16a6fe7fd7..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/ReindexedText.pm
+++ /dev/null
@@ -1,13 +0,0 @@
-use strict;
-package Tk::ReindexedText;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/TextList/ReindexedText.pm#4 $
-
-use Tk::Reindex qw(Tk::Text);
-use base qw(Tk::Reindex Tk::Text);
-Construct Tk::Widget 'ReindexedText';
-
-1;
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Scale.pm b/Master/tlpkg/tlperl/lib/Tk/Scale.pm
deleted file mode 100644
index 57c7bb11aa1..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Scale.pm
+++ /dev/null
@@ -1,278 +0,0 @@
-# Converted from scale.tcl --
-#
-# This file defines the default bindings for Tk scale widgets.
-#
-# @(#) scale.tcl 1.3 94/12/17 16:05:23
-#
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-package Tk::Scale;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/Scale/Scale.pm#4 $
-
-use Tk qw($XS_VERSION);
-use AutoLoader;
-
-use base qw(Tk::Widget);
-
-Construct Tk::Widget 'Scale';
-
-bootstrap Tk::Scale;
-
-sub Tk_cmd { \&Tk::scale }
-
-Tk::Methods('coords','get','identify','set');
-
-
-import Tk qw(Ev);
-
-#
-# Bind --
-# This procedure below invoked the first time the mouse enters a
-# scale widget or a scale widget receives the input focus. It creates
-# all of the class bindings for scales.
-#
-# Arguments:
-# event - Indicates which event caused the procedure to be invoked
-# (Enter or FocusIn). It is used so that we can carry out
-# the functions of that event in addition to setting up
-# bindings.
-sub ClassInit
-{
- my ($class,$mw) = @_;
-
- $mw->bind($class,'<Enter>',['Enter',Ev('x'),Ev('y')]);
- $mw->bind($class,'<Motion>',['Activate',Ev('x'),Ev('y')]);
- $mw->bind($class,'<Leave>','Leave');
-
- $mw->bind($class,'<1>',['ButtonDown',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B1-Motion>',['Drag',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B1-Leave>','NoOp');
- $mw->bind($class,'<B1-Enter>','NoOp');
- $mw->bind($class,'<ButtonRelease-1>',['ButtonUp',Ev('x'),Ev('y')]);
-
- $mw->bind($class,'<2>',['ButtonDown',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B2-Motion>',['Drag',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B2-Leave>','NoOp');
- $mw->bind($class,'<B2-Enter>','NoOp');
- $mw->bind($class,'<ButtonRelease-2>',['ButtonUp',Ev('x'),Ev('y')]);
-
- $mw->bind($class,'<Control-1>',['ControlPress',Ev('x'),Ev('y')]);
-
- $mw->bind($class,'<Up>',['Increment','up','little','noRepeat']);
- $mw->bind($class,'<Down>',['Increment','down','little','noRepeat']);
- $mw->bind($class,'<Left>',['Increment','up','little','noRepeat']);
- $mw->bind($class,'<Right>',['Increment','down','little','noRepeat']);
-
- $mw->bind($class,'<Control-Up>',['Increment','up','big','noRepeat']);
- $mw->bind($class,'<Control-Down>',['Increment','down','big','noRepeat']);
- $mw->bind($class,'<Control-Left>',['Increment','up','big','noRepeat']);
- $mw->bind($class,'<Control-Right>',['Increment','down','big','noRepeat']);
-
- $mw->bind($class,'<Home>',['set',Ev('cget','-from')]);
- $mw->bind($class,'<End>',['set',Ev('cget','-to')]);
- return $class;
-}
-
-1;
-
-__END__
-
-# Activate --
-# This procedure is invoked to check a given x-y position in the
-# scale and activate the slider if the x-y position falls within
-# the slider.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates.
-sub Activate
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- return if ($w->cget('-state') eq 'disabled');
- my $ident = $w->identify($x,$y);
- if (defined($ident) && $ident eq 'slider')
- {
- $w->configure(-state => 'active')
- }
- else
- {
- $w->configure(-state => 'normal')
- }
-}
-
-sub Leave
-{
- my ($w) = @_;
- $w->configure('-activebackground',$w->{'activeBg'}) if ($Tk::strictMotif);
- $w->configure('-state','normal') if ($w->cget('-state') eq 'active');
-}
-
-sub Enter
-{
- my ($w,$x,$y) = @_;
- if ($Tk::strictMotif)
- {
- $w->{'activeBg'} = $w->cget('-activebackground');
- $w->configure('-activebackground',$w->cget('-background'));
- }
- $w->Activate($x,$y);
-}
-
-sub ButtonUp
-{
- my ($w,$x,$y) = @_;
- $w->CancelRepeat();
- $w->EndDrag();
- $w->Activate($x,$y)
-}
-
-
-# ButtonDown --
-# This procedure is invoked when a button is pressed in a scale. It
-# takes different actions depending on where the button was pressed.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates of button press.
-sub ButtonDown
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- $Tk::dragging = 0;
- $el = $w->identify($x,$y);
- return unless ($el);
- if ($el eq 'trough1')
- {
- $w->Increment('up','little','initial')
- }
- elsif ($el eq 'trough2')
- {
- $w->Increment('down','little','initial')
- }
- elsif ($el eq 'slider')
- {
- $Tk::dragging = 1;
- my @coords = $w->coords();
- $Tk::deltaX = $x-$coords[0];
- $Tk::deltaY = $y-$coords[1];
- }
-}
-# Drag --
-# This procedure is called when the mouse is dragged with
-# mouse button 1 down. If the drag started inside the slider
-# (i.e. the scale is active) then the scale's value is adjusted
-# to reflect the mouse's position.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates.
-sub Drag
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- if (!$Tk::dragging)
- {
- return;
- }
- $w->set($w->get($x-$Tk::deltaX,$y-$Tk::deltaY))
-}
-# EndDrag --
-# This procedure is called to end an interactive drag of the
-# slider. It just marks the drag as over.
-# Arguments:
-# w - The scale widget.
-sub EndDrag
-{
- my $w = shift;
- if (!$Tk::dragging)
- {
- return;
- }
- $Tk::dragging = 0;
-}
-# Increment --
-# This procedure is invoked to increment the value of a scale and
-# to set up auto-repeating of the action if that is desired. The
-# way the value is incremented depends on the "dir" and "big"
-# arguments.
-#
-# Arguments:
-# w - The scale widget.
-# dir - "up" means move value towards -from, "down" means
-# move towards -to.
-# big - Size of increments: "big" or "little".
-# repeat - Whether and how to auto-repeat the action: "noRepeat"
-# means don't auto-repeat, "initial" means this is the
-# first action in an auto-repeat sequence, and "again"
-# means this is the second repetition or later.
-sub Increment
-{
- my $w = shift;
- my $dir = shift;
- my $big = shift;
- my $repeat = shift;
- my $inc;
- if ($big eq 'big')
- {
- $inc = $w->cget('-bigincrement');
- if ($inc == 0)
- {
- $inc = abs(($w->cget('-to')-$w->cget('-from')))/10.0
- }
- if ($inc < $w->cget('-resolution'))
- {
- $inc = $w->cget('-resolution')
- }
- }
- else
- {
- $inc = $w->cget('-resolution')
- }
- if (($w->cget('-from') > $w->cget('-to')) ^ ($dir eq 'up'))
- {
- $inc = -$inc
- }
- $w->set($w->get()+$inc);
- if ($repeat eq 'again')
- {
- $w->RepeatId($w->after($w->cget('-repeatinterval'),'Increment',$w,$dir,$big,'again'));
- }
- elsif ($repeat eq 'initial')
- {
- $w->RepeatId($w->after($w->cget('-repeatdelay'),'Increment',$w,$dir,$big,'again'));
- }
-}
-# ControlPress --
-# This procedure handles button presses that are made with the Control
-# key down. Depending on the mouse position, it adjusts the scale
-# value to one end of the range or the other.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates where the button was pressed.
-sub ControlPress
-{
- my ($w,$x,$y) = @_;
- my $el = $w->identify($x,$y);
- return unless ($el);
- if ($el eq 'trough1')
- {
- $w->set($w->cget('-from'))
- }
- elsif ($el eq 'trough2')
- {
- $w->set($w->cget('-to'))
- }
-}
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Scale.pod b/Master/tlpkg/tlperl/lib/Tk/Scale.pod
deleted file mode 100644
index 72f6f8c7b5e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Scale.pod
+++ /dev/null
@@ -1,356 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Scale - Create and manipulate Scale widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-I<$scale> = I<$parent>-E<gt>B<Scale>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-activebackground> B<-font> B<-highlightthickness> B<-repeatinterval>
-B<-background> B<-foreground> B<-orient> B<-takefocus>
-B<-borderwidth> B<-highlightbackground> B<-relief> B<-troughcolor>
-B<-cursor> B<-highlightcolor> B<-repeatdelay>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<bigIncrement>
-
-=item Class: B<BigIncrement>
-
-=item Switch: B<-bigincrement>
-
-Some interactions with the scale cause its value to change by
-``large'' increments; this option specifies the size of the
-large increments. If specified as 0, the large increments default
-to 1/10 the range of the scale.
-
-=item Name: B<command>
-
-=item Class: B<Command>
-
-=item Switch: B<-command>
-
-Specifies the prefix of a L<perlE<sol>Tk callback|Tk::callbacks> to invoke whenever the scale's
-value is changed via a method.
-The actual command consists
-of this option followed by a space and a real number indicating the
-new value of the scale.
-
-=item Name: B<digits>
-
-=item Class: B<Digits>
-
-=item Switch: B<-digits>
-
-An integer specifying how many significant digits should be retained
-when converting the value of the scale to a string.
-If the number is less than or equal to zero, then the scale picks
-the smallest value that guarantees that every possible slider
-position prints as a different string.
-
-=item Name: B<from>
-
-=item Class: B<From>
-
-=item Switch: B<-from>
-
-A real value corresponding to the left or top end of the scale.
-
-=item Name: B<label>
-
-=item Class: B<Label>
-
-=item Switch: B<-label>
-
-A string to display as a label for the scale. For
-vertical scales the label is displayed just to the right of the
-top end of the scale. For horizontal scales the label is displayed
-just above the left end of the scale. If the option is specified
-as an empty string, no label is displayed.
-
-=item Name: B<length>
-
-=item Class: B<Length>
-
-=item Switch: B<-length>
-
-Specifies the desired long dimension of the scale in screen units
-(i.e. any of the forms acceptable to B<Tk_GetPixels>).
-For vertical scales this is the scale's height; for horizontal scales
-it is the scale's width.
-
-=item Name: B<resolution>
-
-=item Class: B<Resolution>
-
-=item Switch: B<-resolution>
-
-A real value specifying the resolution for the scale.
-If this value is greater than zero then the scale's value will always be
-rounded to an even multiple of this value, as will tick marks and
-the endpoints of the scale. If the value is less than zero then no
-rounding occurs. Defaults to 1 (i.e., the value will be integral).
-
-=item Name: B<showValue>
-
-=item Class: B<ShowValue>
-
-=item Switch: B<-showvalue>
-
-Specifies a boolean value indicating whether or not the current
-value of the scale is to be displayed.
-
-=item Name: B<sliderLength>
-
-=item Class: B<SliderLength>
-
-=item Switch: B<-sliderlength>
-
-Specfies the size of the slider, measured in screen units along the slider's
-long dimension. The value may be specified in any of the forms acceptable
-to B<Tk_GetPixels>.
-
-=item Name: B<sliderRelief>
-
-=item Class: B<SliderRelief>
-
-=item Switch: B<-sliderrelief>
-
-Specifies the relief to use when drawing the slider, such as B<raised>
-or B<sunken>.
-
-=item Name: B<state>
-
-=item Class: B<State>
-
-=item Switch: B<-state>
-
-Specifies one of three states for the scale: B<normal>,
-B<active>, or B<disabled>.
-If the scale is disabled then the value may not be changed and the scale
-won't activate.
-If the scale is active, the slider is displayed using the color
-specified by the B<activeBackground> option.
-
-=item Name: B<tickInterval>
-
-=item Class: B<TickInterval>
-
-=item Switch: B<-tickinterval>
-
-Must be a real value.
-Determines the spacing between numerical
-tick marks displayed below or to the left of the slider.
-If 0, no tick marks will be displayed.
-
-=item Name: B<to>
-
-=item Class: B<To>
-
-=item Switch: B<-to>
-
-Specifies a real value corresponding
-to the right or bottom end of the scale.
-This value may be either less than or greater than the B<from> option.
-
-=item Name: B<variable>
-
-=item Class: B<Variable>
-
-=item Switch: B<-variable>
-
-Specifies the name of a global variable to link to the scale. Whenever the
-value of the variable changes, the scale will update to reflect this
-value.
-Whenever the scale is manipulated interactively, the variable
-will be modified to reflect the scale's new value.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies the desired narrow dimension of the trough in screen units
-(i.e. any of the forms acceptable to B<Tk_GetPixels>).
-For vertical scales this is the trough's width; for horizontal scales
-this is the trough's height.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Scale> method creates a new window (given by the
-$widget argument) and makes it into a scale widget.
-Additional
-options, described above, may be specified on the command line
-or in the option database
-to configure aspects of the scale such as its colors, orientation,
-and relief. The B<scale> command returns its
-$widget argument. At the time this command is invoked,
-there must not exist a window named $widget, but
-$widget's parent must exist.
-
-A scale is a widget that displays a rectangular I<trough> and a
-small I<slider>. The trough corresponds to a range
-of real values (determined by the B<from>, B<to>, and
-B<resolution> options),
-and the position of the slider selects a particular real value.
-The slider's position (and hence the scale's value) may be adjusted
-with the mouse or keyboard as described in
-the L<"BINDINGS"> section below. Whenever the scale's value is changed, a Tcl
-command is invoked (using the B<command> option) to notify
-other interested widgets of the change.
-In addition, the value
-of the scale can be linked to a Tcl variable (using the B<variable>
-option), so that changes in either are reflected in the other.
-
-Three annotations may be displayed in a scale widget: a label
-appearing at the top right of the widget (top left for horizontal
-scales), a number displayed just to the left of the slider
-(just above the slider for horizontal scales), and a collection
-of numerical tick marks just to the left of the current value
-(just below the trough for horizontal scales). Each of these three
-annotations may be enabled or disabled using the
-configuration options.
-
-=head1 WIDGET METHODS
-
-The B<Scale> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-The following additional methods are available for scale widgets:
-
-=over 4
-
-=item I<$scale>-E<gt>B<coords>(?I<value>?)
-
-Returns a list whose elements are the x and y coordinates of
-the point along the centerline of the trough that corresponds
-to I<value>.
-If I<value> is omitted then the scale's current value is used.
-
-=item I<$scale>-E<gt>B<get>(?I<x, y>?)
-
-If I<x> and I<y> are omitted, returns the current value
-of the scale. If I<x> and I<y> are specified, they give
-pixel coordinates within the widget; the command returns
-the scale value corresponding to the given pixel.
-Only one of I<x> or I<y> is used: for horizontal scales
-I<y> is ignored, and for vertical scales I<x> is ignored.
-
-=item I<$scale>-E<gt>B<identify>(I<x, y>)
-
-Returns a string indicating what part of the scale lies under
-the coordinates given by I<x> and I<y>.
-A return value of B<slider> means that the point is over
-the slider; B<trough1> means that the point is over the
-portion of the slider above or to the left of the slider;
-and B<trough2> means that the point is over the portion
-of the slider below or to the right of the slider.
-If the point isn't over one of these elements, an empty string
-is returned.
-
-=item I<$scale>-E<gt>B<set>(I<value>)
-
-This command is invoked to change the current value of the scale,
-and hence the position at which the slider is displayed. I<Value>
-gives the new value for the scale.
-The command has no effect if the scale is disabled.
-
-=back
-
-=head1 BINDINGS
-
-Tk automatically creates class bindings for scales that give them
-the following default behavior.
-Where the behavior is different for vertical and horizontal scales,
-the horizontal behavior is described in parentheses.
-
-=over 4
-
-=item [1]
-
-If button 1 is pressed in the trough, the scale's value will
-be incremented or decremented by the value of the B<resolution>
-option so that the slider moves in the direction of the cursor.
-If the button is held down, the action auto-repeats.
-
-=item [2]
-
-If button 1 is pressed over the slider, the slider can be dragged
-with the mouse.
-
-=item [3]
-
-If button 1 is pressed in the trough with the Control key down,
-the slider moves all the way to the end of its range, in the
-direction towards the mouse cursor.
-
-=item [4]
-
-If button 2 is pressed, the scale's value is set to the mouse
-position. If the mouse is dragged with button 2 down, the scale's
-value changes with the drag.
-
-=item [5]
-
-The Up and Left keys move the slider up (left) by the value
-of the B<resolution> option.
-
-=item [6]
-
-The Down and Right keys move the slider down (right) by the value
-of the B<resolution> option.
-
-=item [7]
-
-Control-Up and Control-Left move the slider up (left) by the
-value of the B<bigIncrement> option.
-
-=item [8]
-
-Control-Down and Control-Right move the slider down (right) by the
-value of the B<bigIncrement> option.
-
-=item [9]
-
-Home moves the slider to the top (left) end of its range.
-
-=item [10]
-
-End moves the slider to the bottom (right) end of its range.
-
-If the scale is disabled using the B<state> option then
-none of the above bindings have any effect.
-
-The behavior of scales can be changed by defining new bindings for
-individual widgets or by redefining the class bindings.
-
-=back
-
-=head1 KEYWORDS
-
-scale, slider, trough, widget
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Scrollbar.pm b/Master/tlpkg/tlperl/lib/Tk/Scrollbar.pm
deleted file mode 100644
index 6b416e04b30..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Scrollbar.pm
+++ /dev/null
@@ -1,429 +0,0 @@
-# Conversion from Tk4.0 scrollbar.tcl competed.
-package Tk::Scrollbar;
-
-use vars qw($VERSION);
-$VERSION = '4.010'; # $Id: //depot/Tkutf8/Scrollbar/Scrollbar.pm#10 $
-
-use Tk qw($XS_VERSION Ev);
-use AutoLoader;
-
-use base qw(Tk::Widget);
-
-#use strict;
-#use vars qw($pressX $pressY @initValues $initPos $activeBg);
-
-Construct Tk::Widget 'Scrollbar';
-
-bootstrap Tk::Scrollbar;
-
-sub Tk_cmd { \&Tk::scrollbar }
-
-Tk::Methods('activate','delta','fraction','get','identify','set');
-
-sub Needed
-{
- my ($sb) = @_;
- my @val = $sb->get;
- return 1 unless (@val == 2);
- return 1 if $val[0] != 0.0;
- return 1 if $val[1] != 1.0;
- return 0;
-}
-
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class, '<Enter>', 'Enter');
- $mw->bind($class, '<Motion>', 'Motion');
- $mw->bind($class, '<Leave>', 'Leave');
-
- $mw->bind($class, '<1>', 'ButtonDown');
- $mw->bind($class, '<B1-Motion>', ['Drag', Ev('x'), Ev('y')]);
- $mw->bind($class, '<ButtonRelease-1>', 'ButtonUp');
- $mw->bind($class, '<B1-Leave>', 'NoOp'); # prevent generic <Leave>
- $mw->bind($class, '<B1-Enter>', 'NoOp'); # prevent generic <Enter>
- $mw->bind($class, '<Control-1>', 'ScrlTopBottom');
-
- $mw->bind($class, '<2>', 'ButtonDown');
- $mw->bind($class, '<B2-Motion>', ['Drag', Ev('x'), Ev('y')]);
- $mw->bind($class, '<ButtonRelease-2>', 'ButtonUp');
- $mw->bind($class, '<B2-Leave>', 'NoOp'); # prevent generic <Leave>
- $mw->bind($class, '<B2-Enter>', 'NoOp'); # prevent generic <Enter>
- $mw->bind($class, '<Control-2>', 'ScrlTopBottom');
-
- $mw->bind($class, '<Up>', ['ScrlByUnits','v',-1]);
- $mw->bind($class, '<Down>', ['ScrlByUnits','v', 1]);
- $mw->bind($class, '<Control-Up>', ['ScrlByPages','v',-1]);
- $mw->bind($class, '<Control-Down>', ['ScrlByPages','v', 1]);
-
- $mw->bind($class, '<Left>', ['ScrlByUnits','h',-1]);
- $mw->bind($class, '<Right>', ['ScrlByUnits','h', 1]);
- $mw->bind($class, '<Control-Left>', ['ScrlByPages','h',-1]);
- $mw->bind($class, '<Control-Right>', ['ScrlByPages','h', 1]);
-
- $mw->bind($class, '<Prior>', ['ScrlByPages','hv',-1]);
- $mw->bind($class, '<Next>', ['ScrlByPages','hv', 1]);
-
- # X11 mousewheel - honour for horizontal too.
- $mw->bind($class, '<4>', ['ScrlByUnits','hv',-5]);
- $mw->bind($class, '<5>', ['ScrlByUnits','hv', 5]);
-
- $mw->bind($class, '<Home>', ['ScrlToPos', 0]);
- $mw->bind($class, '<End>', ['ScrlToPos', 1]);
-
- $mw->bind($class, '<4>', ['ScrlByUnits','v',-3]);
- $mw->bind($class, '<5>', ['ScrlByUnits','v', 3]);
-
- return $class;
-
-}
-
-1;
-
-__END__
-
-sub Enter
-{
- my $w = shift;
- my $e = $w->XEvent;
- if ($Tk::strictMotif)
- {
- my $bg = $w->cget('-background');
- $activeBg = $w->cget('-activebackground');
- $w->configure('-activebackground' => $bg);
- }
- $w->activate($w->identify($e->x,$e->y));
-}
-
-sub Leave
-{
- my $w = shift;
- if ($Tk::strictMotif)
- {
- $w->configure('-activebackground' => $activeBg) if (defined $activeBg) ;
- }
- $w->activate('');
-}
-
-sub Motion
-{
- my $w = shift;
- my $e = $w->XEvent;
- $w->activate($w->identify($e->x,$e->y));
-}
-
-# tkScrollButtonDown --
-# This procedure is invoked when a button is pressed in a scrollbar.
-# It changes the way the scrollbar is displayed and takes actions
-# depending on where the mouse is.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - Mouse coordinates.
-
-sub ButtonDown
-{my $w = shift;
- my $e = $w->XEvent;
- my $element = $w->identify($e->x,$e->y);
- $w->configure('-activerelief' => 'sunken');
- if ($e->b == 1 and
- (defined($element) && $element eq 'slider'))
- {
- $w->StartDrag($e->x,$e->y);
- }
- elsif ($e->b == 2 and
- (defined($element) && $element =~ /^(trough[12]|slider)$/o))
- {
- my $pos = $w->fraction($e->x, $e->y);
- my($head, $tail) = $w->get;
- my $len = $tail - $head;
-
- $head = $pos - $len/2;
- $tail = $pos + $len/2;
- if ($head < 0) {
- $head = 0;
- $tail = $len;
- }
- elsif ($tail > 1) {
- $head = 1 - $len;
- $tail = 1;
- }
- $w->ScrlToPos($head);
- $w->set($head, $tail);
-
- $w->StartDrag($e->x,$e->y);
- }
- else
- {
- $w->Select($element,'initial');
- }
-}
-
-# tkScrollButtonUp --
-# This procedure is invoked when a button is released in a scrollbar.
-# It cancels scans and auto-repeats that were in progress, and restores
-# the way the active element is displayed.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - Mouse coordinates.
-
-sub ButtonUp
-{my $w = shift;
- my $e = $w->XEvent;
- $w->CancelRepeat;
- $w->configure('-activerelief' => 'raised');
- $w->EndDrag($e->x,$e->y);
- $w->activate($w->identify($e->x,$e->y));
-}
-
-# tkScrollSelect --
-# This procedure is invoked when button 1 is pressed over the scrollbar.
-# It invokes one of several scrolling actions depending on where in
-# the scrollbar the button was pressed.
-#
-# Arguments:
-# w - The scrollbar widget.
-# element - The element of the scrollbar that was selected, such
-# as "arrow1" or "trough2". Shouldn't be "slider".
-# repeat - Whether and how to auto-repeat the action: "noRepeat"
-# means don't auto-repeat, "initial" means this is the
-# first action in an auto-repeat sequence, and "again"
-# means this is the second repetition or later.
-
-sub Select
-{
- my $w = shift;
- my $element = shift;
- my $repeat = shift;
- return unless defined ($element);
- if ($element eq 'arrow1')
- {
- $w->ScrlByUnits('hv',-1);
- }
- elsif ($element eq 'trough1')
- {
- $w->ScrlByPages('hv',-1);
- }
- elsif ($element eq 'trough2')
- {
- $w->ScrlByPages('hv', 1);
- }
- elsif ($element eq 'arrow2')
- {
- $w->ScrlByUnits('hv', 1);
- }
- else
- {
- return;
- }
-
- if ($repeat eq 'again')
- {
- $w->RepeatId($w->after($w->cget('-repeatinterval'),['Select',$w,$element,'again']));
- }
- elsif ($repeat eq 'initial')
- {
- $w->RepeatId($w->after($w->cget('-repeatdelay'),['Select',$w,$element,'again']));
- }
-}
-
-# tkScrollStartDrag --
-# This procedure is called to initiate a drag of the slider. It just
-# remembers the starting position of the slider.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - The mouse position at the start of the drag operation.
-
-sub StartDrag
-{
- my($w,$x,$y) = @_;
- return unless (defined ($w->cget('-command')));
- $pressX = $x;
- $pressY = $y;
- @initValues = $w->get;
- my $iv0 = $initValues[0];
- if (@initValues == 2)
- {
- $initPos = $iv0;
- }
- elsif ($iv0 == 0)
- {
- $initPos = 0;
- }
- else
- {
- $initPos = $initValues[2]/$initValues[0];
- }
-}
-
-# tkScrollDrag --
-# This procedure is called for each mouse motion even when the slider
-# is being dragged. It notifies the associated widget if we're not
-# jump scrolling, and it just updates the scrollbar if we are jump
-# scrolling.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - The current mouse position.
-
-sub Drag
-{
- my($w,$x,$y) = @_;
- return if !defined $initPos;
- my $delta = $w->delta($x-$pressX, $y-$pressY);
- if ($w->cget('-jump'))
- {
- if (@initValues == 2)
- {
- $w->set($initValues[0]+$delta, $initValues[1]+$delta);
- }
- else
- {
- $delta = sprintf "%d", $delta * $initValues[0]; # round()
- $initValues[2] += $delta;
- $initValues[3] += $delta;
- $w->set(@initValues[2,3]);
- }
- }
- else
- {
- $w->ScrlToPos($initPos+$delta);
- }
-}
-
-# tkScrollEndDrag --
-# This procedure is called to end an interactive drag of the slider.
-# It scrolls the window if we're in jump mode, otherwise it does nothing.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - The mouse position at the end of the drag operation.
-
-sub EndDrag
-{
- my($w,$x,$y) = @_;
- return if (!defined $initPos);
- if ($w->cget('-jump'))
- {
- my $delta = $w->delta($x-$pressX, $y-$pressY);
- $w->ScrlToPos($initPos+$delta);
- }
- undef $initPos;
-}
-
-# tkScrlByUnits --
-# This procedure tells the scrollbar's associated widget to scroll up
-# or down by a given number of units. It notifies the associated widget
-# in different ways for old and new command syntaxes.
-#
-# Arguments:
-# w - The scrollbar widget.
-# orient - Which kinds of scrollbars this applies to: "h" for
-# horizontal, "v" for vertical, "hv" for both.
-# amount - How many units to scroll: typically 1 or -1.
-
-sub ScrlByUnits
-{my $w = shift;
- my $orient = shift;
- my $amount = shift;
- my $cmd = $w->cget('-command');
- return unless (defined $cmd);
- return if (index($orient,substr($w->cget('-orient'),0,1)) < 0);
- my @info = $w->get;
- if (@info == 2)
- {
- $cmd->Call('scroll',$amount,'units');
- }
- else
- {
- $cmd->Call($info[2]+$amount);
- }
-}
-
-# tkScrlByPages --
-# This procedure tells the scrollbar's associated widget to scroll up
-# or down by a given number of screenfuls. It notifies the associated
-# widget in different ways for old and new command syntaxes.
-#
-# Arguments:
-# w - The scrollbar widget.
-# orient - Which kinds of scrollbars this applies to: "h" for
-# horizontal, "v" for vertical, "hv" for both.
-# amount - How many screens to scroll: typically 1 or -1.
-
-sub ScrlByPages
-{
- my $w = shift;
- my $orient = shift;
- my $amount = shift;
- my $cmd = $w->cget('-command');
- return unless (defined $cmd);
- return if (index($orient,substr($w->cget('-orient'),0,1)) < 0);
- my @info = $w->get;
- if (@info == 2)
- {
- $cmd->Call('scroll',$amount,'pages');
- }
- else
- {
- $cmd->Call($info[2]+$amount*($info[1]-1));
- }
-}
-
-# tkScrlToPos --
-# This procedure tells the scrollbar's associated widget to scroll to
-# a particular location, given by a fraction between 0 and 1. It notifies
-# the associated widget in different ways for old and new command syntaxes.
-#
-# Arguments:
-# w - The scrollbar widget.
-# pos - A fraction between 0 and 1 indicating a desired position
-# in the document.
-
-sub ScrlToPos
-{
- my $w = shift;
- my $pos = shift;
- my $cmd = $w->cget('-command');
- return unless (defined $cmd);
- my @info = $w->get;
- if (@info == 2)
- {
- $cmd->Call('moveto',$pos);
- }
- else
- {
- $cmd->Call(int($info[0]*$pos));
- }
-}
-
-# tkScrlTopBottom
-# Scroll to the top or bottom of the document, depending on the mouse
-# position.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - Mouse coordinates within the widget.
-
-sub ScrlTopBottom
-{
- my $w = shift;
- my $e = $w->XEvent;
- my $element = $w->identify($e->x,$e->y);
- return unless ($element);
- if ($element =~ /1$/)
- {
- $w->ScrlToPos(0);
- }
- elsif ($element =~ /2$/)
- {
- $w->ScrlToPos(1);
- }
-}
-
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Scrollbar.pod b/Master/tlpkg/tlperl/lib/Tk/Scrollbar.pod
deleted file mode 100644
index 838eb97e666..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Scrollbar.pod
+++ /dev/null
@@ -1,429 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Scrollbar - Create and manipulate Scrollbar widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-I<$scrollbar> = I<$parent>-E<gt>B<Scrollbar>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-activebackground> B<-highlightbackground> B<-orient> B<-takefocus>
-B<-background> B<-highlightcolor> B<-relief> B<-troughcolor>
-B<-borderwidth> B<-highlightthickness> B<-repeatdelay>
-B<-cursor> B<-jump> B<-repeatinterval>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<activeRelief>
-
-=item Class: B<ActiveRelief>
-
-=item Switch: B<-activerelief>
-
-Specifies the relief to use when displaying the element that is
-active, if any.
-Elements other than the active element are always displayed with
-a raised relief.
-
-=item Name: B<command>
-
-=item Class: B<Command>
-
-=item Switch: B<-command>
-
-Specifies a callback to invoke to change the view
-in the widget associated with the scrollbar. When a user requests
-a view change by manipulating the scrollbar, the callback is
-invoked. The callback is passed
-additional arguments as described later. This option almost always has
-a value such as B<[xview =E<gt> $widget]> or B<[yview =E<gt> $widget]>, consisting of the
-a widget object and either B<xview> (if the scrollbar is for
-horizontal scrolling) or B<yview> (for vertical scrolling).
-All scrollable widgets have B<xview> and B<yview> methods
-that take exactly the additional arguments appended by the scrollbar
-as described in L<"SCROLLING COMMANDS"> below.
-
-=item Name: B<elementBorderWidth>
-
-=item Class: B<BorderWidth>
-
-=item Switch: B<-elementborderwidth>
-
-Specifies the width of borders drawn around the internal elements
-of the scrollbar (the two arrows and the slider). The value may
-have any of the forms acceptable to B<Tk_GetPixels>.
-If this value is less than zero, the value of the B<borderWidth>
-option is used in its place.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies the desired narrow dimension of the scrollbar window,
-not including 3-D border, if any. For vertical
-scrollbars this will be the width and for horizontal scrollbars
-this will be the height.
-The value may have any of the forms acceptable to B<Tk_GetPixels>.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Scrollbar> method creates a new window (given by the
-$widget argument) and makes it into a scrollbar widget.
-Additional options, described above, may be specified on the command
-line or in the option database to configure aspects of the scrollbar
-such as its colors, orientation, and relief.
-The B<scrollbar> command returns its $widget argument.
-At the time this command is invoked, there must not exist a window
-named $widget, but $widget's parent must exist.
-
-A scrollbar is a widget that displays two arrows, one at each end of
-the scrollbar, and a I<slider> in the middle portion of the
-scrollbar.
-It provides information about what is visible in an I<associated window>
-that displays an document of some sort (such as a file being edited or
-a drawing).
-The position and size of the slider indicate which portion of the
-document is visible in the associated window. For example, if the
-slider in a vertical scrollbar covers the top third of the area
-between the two arrows, it means that the associated window displays
-the top third of its document.
-
-Scrollbars can be used to adjust the view in the associated window
-by clicking or dragging with the mouse.
-See L<"BINDINGS"> below for details.
-
-=head1 ELEMENTS
-
-A scrollbar displays five elements, which are referred to in the
-methods for the scrollbar:
-
-=over 4
-
-=item B<arrow1>
-
-The top or left arrow in the scrollbar.
-
-=item B<trough1>
-
-The region between the slider and B<arrow1>.
-
-=item B<slider>
-
-The rectangle that indicates what is visible in the associated widget.
-
-=item B<trough2>
-
-The region between the slider and B<arrow2>.
-
-=item B<arrow2>
-
-The bottom or right arrow in the scrollbar.
-
-=back
-
-=head1 WIDGET METHODS
-
-The B<Scrollbar> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-The following additional methods are available for scrollbar widgets:
-
-=over 4
-
-=item I<$scrollbar>-E<gt>B<activate>(?I<element>?)
-
-Marks the element indicated by I<element> as active, which
-causes it to be displayed as specified by the B<activeBackground>
-and B<activeRelief> options.
-The only element values understood by this command are B<arrow1>,
-B<slider>, or B<arrow2>.
-If any other value is specified then no element of the scrollbar
-will be active.
-If I<element> is not specified, the command returns
-the name of the element that is currently active, or an empty string
-if no element is active.
-
-=item I<$scrollbar>-E<gt>B<delta>(I<deltaX, deltaY>)
-
-Returns a real number indicating the fractional change in
-the scrollbar setting that corresponds to a given change
-in slider position. For example, if the scrollbar is horizontal,
-the result indicates how much the scrollbar setting must change
-to move the slider I<deltaX> pixels to the right (I<deltaY> is
-ignored in this case).
-If the scrollbar is vertical, the result indicates how much the
-scrollbar setting must change to move the slider I<deltaY> pixels
-down. The arguments and the result may be zero or negative.
-
-=item I<$scrollbar>-E<gt>B<fraction>(I<x, y>)
-
-Returns a real number between 0 and 1 indicating where the point
-given by I<x> and I<y> lies in the trough area of the scrollbar.
-The value 0 corresponds to the top or left of the trough, the
-value 1 corresponds to the bottom or right, 0.5 corresponds to
-the middle, and so on.
-I<X> and I<y> must be pixel coordinates relative to the scrollbar
-widget.
-If I<x> and I<y> refer to a point outside the trough, the closest
-point in the trough is used.
-
-=item I<$scrollbar>-E<gt>B<get>
-
-Returns the scrollbar settings in the form of a list whose
-elements are the arguments to the most recent B<set> method.
-
-=item I<$scrollbar>-E<gt>B<identify>(I<x, y>)
-
-Returns the name of the element under the point given by I<x> and
-I<y> (such as B<arrow1>), or an empty string if the point does
-not lie in any element of the scrollbar.
-I<X> and I<y> must be pixel coordinates relative to the scrollbar
-widget.
-
-=item I<$scrollbar>-E<gt>B<set>(I<first, last>)
-
-This command is invoked by the scrollbar's associated widget to
-tell the scrollbar about the current view in the widget.
-The command takes two arguments, each of which is a real fraction
-between 0 and 1.
-The fractions describe the range of the document that is visible in
-the associated widget.
-For example, if I<first> is 0.2 and I<last> is 0.4, it means
-that the first part of the document visible in the window is 20%
-of the way through the document, and the last visible part is 40%
-of the way through.
-
-=back
-
-=head1 SCROLLING COMMANDS
-
-When the user interacts with the scrollbar, for example by dragging
-the slider, the scrollbar notifies the associated widget that it
-must change its view.
-The scrollbar makes the notification by evaluating a callback
-specified as the scrollbar's B<-command> option.
-The callback may take several forms.
-In each case, the intial arguments passed are those
-specified in the B<-command> callback itself,
-which usually has a form like [B<yview> =E<gt> I<$widget>].
-(Which will invoke I<$widget>-E<gt>B<yview>(...) where
-the ... part is as below. See L<Tk::callbacks> for details.)
-The callback is passed additional arguments as follows:
-
-=over 4
-
-=item B<moveto>,I<fraction>
-
-I<Fraction> is a real number between 0 and 1.
-The widget should adjust its view so that the point given
-by I<fraction> appears at the beginning of the widget.
-If I<fraction> is 0 it refers to the beginning of the
-document. 1.0 refers to the end of the document, 0.333
-refers to a point one-third of the way through the document,
-and so on.
-
-=item B<scroll,>I<number,>B<units>
-
-The widget should adjust its view by I<number> units.
-The units are defined in whatever way makes sense for the widget,
-such as characters or lines in a text widget.
-I<Number> is either 1, which means one unit should scroll off
-the top or left of the window, or -1, which means that one unit
-should scroll off the bottom or right of the window.
-
-=item B<scroll>,I<number>,B<page>
-
-The widget should adjust its view by I<number> pages.
-It is up to the widget to define the meaning of a page; typically
-it is slightly less than what fits in the window, so that there
-is a slight overlap between the old and new views.
-I<Number> is either 1, which means the next page should
-become visible, or -1, which means that the previous page should
-become visible.
-
-=back
-
-=head1 OLD COMMAND SYNTAX
-
-In versions of Tk before 4.0, the B<set> and B<get> widget
-commands used a different form.
-This form is still supported for backward compatibility, but it
-is deprecated.
-In the old command syntax, the B<set> method has the
-following form:
-
-=over 4
-
-=item I<$scrollbar>-E<gt>B<set>(I<totalUnits, windowUnits, firstUnit, lastUnit>)
-
-In this form the arguments are all integers.
-I<TotalUnits> gives the total size of the object being displayed in the
-associated widget. The meaning of one unit depends on the associated
-widget; for example, in a text editor widget units might
-correspond to lines of
-text. I<WindowUnits> indicates the total number of units that
-can fit in the associated window at one time. I<FirstUnit>
-and I<lastUnit> give the indices of the first and last units
-currently visible in the associated window (zero corresponds to the
-first unit of the object).
-
-=back
-
-Under the old syntax the B<get> method returns a list
-of four integers, consisting of the I<totalUnits>, I<windowUnits>,
-I<firstUnit>, and I<lastUnit> values from the last B<set>
-method.
-
-The callbacks generated by scrollbars also have a different form
-when the old syntax is being used, the callback is passed a single argument:
-
-=over 4
-
-=item I<unit>
-
-I<Unit> is an integer that indicates what should appear at
-the top or left of the associated widget's window.
-It has the same meaning as the I<firstUnit> and I<lastUnit>
-arguments to the B<set> method.
-
-=back
-
-The most recent B<set> method determines whether or not
-to use the old syntax.
-If it is given two real arguments then the new syntax will be
-used in the future, and if it is given four integer arguments then
-the old syntax will be used.
-
-=head1 BINDINGS
-
-Tk automatically creates class bindings for scrollbars that give them
-the following default behavior.
-If the behavior is different for vertical and horizontal scrollbars,
-the horizontal behavior is described in parentheses.
-
-=over 4
-
-=item [1]
-
-Pressing button 1 over B<arrow1> causes the view in the
-associated widget to shift up (left) by one unit so that the
-document appears to move down (right) one unit.
-If the button is held down, the action auto-repeats.
-
-=item [2]
-
-Pressing button 1 over B<trough1> causes the view in the
-associated widget to shift up (left) by one screenful so that the
-document appears to move down (right) one screenful.
-If the button is held down, the action auto-repeats.
-
-=item [3]
-
-Pressing button 1 over the slider and dragging causes the view
-to drag with the slider.
-If the B<jump> option is true, then the view doesn't drag along
-with the slider; it changes only when the mouse button is released.
-
-=item [4]
-
-Pressing button 1 over B<trough2> causes the view in the
-associated widget to shift down (right) by one screenful so that the
-document appears to move up (left) one screenful.
-If the button is held down, the action auto-repeats.
-
-=item [5]
-
-Pressing button 1 over B<arrow2> causes the view in the
-associated widget to shift down (right) by one unit so that the
-document appears to move up (left) one unit.
-If the button is held down, the action auto-repeats.
-
-=item [6]
-
-If button 2 is pressed over the trough or the slider, it sets
-the view to correspond to the mouse position; dragging the
-mouse with button 2 down causes the view to drag with the mouse.
-If button 2 is pressed over one of the arrows, it causes the
-same behavior as pressing button 1.
-
-=item [7]
-
-If button 1 is pressed with the Control key down, then if the
-mouse is over B<arrow1> or B<trough1> the view changes
-to the very top (left) of the document; if the mouse is over
-B<arrow2> or B<trough2> the view changes
-to the very bottom (right) of the document; if the mouse is
-anywhere else then the button press has no effect.
-
-=item [8]
-
-In vertical scrollbars the Up and Down keys have the same behavior
-as mouse clicks over B<arrow1> and B<arrow2>, respectively.
-In horizontal scrollbars these keys have no effect.
-
-=item [9]
-
-In vertical scrollbars Control-Up and Control-Down have the same
-behavior as mouse clicks over B<trough1> and B<trough2>, respectively.
-In horizontal scrollbars these keys have no effect.
-
-=item [10]
-
-In horizontal scrollbars the Up and Down keys have the same behavior
-as mouse clicks over B<arrow1> and B<arrow2>, respectively.
-In vertical scrollbars these keys have no effect.
-
-=item [11]
-
-In horizontal scrollbars Control-Up and Control-Down have the same
-behavior as mouse clicks over B<trough1> and B<trough2>, respectively.
-In vertical scrollbars these keys have no effect.
-
-=item [12]
-
-The Prior and Next keys have the same behavior
-as mouse clicks over B<trough1> and B<trough2>, respectively.
-
-=item [13]
-
-The Home key adjusts the view to the top (left edge) of the document.
-
-=item [14]
-
-The End key adjusts the view to the bottom (right edge) of the document.
-
-=back
-
-=head1 SEE ALSO
-
-L<Tk::callbacks|Tk::callbacks>
-L<Tk::Scrolled|Tk::Scrolled>
-
-=head1 KEYWORDS
-
-scrollbar, widget
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Scrolled.pod b/Master/tlpkg/tlperl/lib/Tk/Scrolled.pod
deleted file mode 100644
index cd6c648ef5e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Scrolled.pod
+++ /dev/null
@@ -1,86 +0,0 @@
-=head1 NAME
-
-Tk::Scrolled - Create a widget with attached scrollbar(s)
-
-=for category Derived Widgets
-
-=for index_group Perl/Tk Constructs
-
-=head1 SYNOPSIS
-
-S< >I<$whatever> = I<$parent>-E<gt>B<Scrolled>(I<Whatever> ?,B<-scrollbars>=E<gt>I<where>? ?,...?);
-
-=head1 DESCRIPTION
-
-To stop a flood of B<ScrlWhatever> widgets Perl/Tk introcuded the special
-constructor B<Scrolled>. B<Scrolled> creates a widget of the given Class
-I<Whatever> with attached L<scrollbar(s)|Tk::Scrollbar>.
-
-=head1 OPTIONS
-
-All options beside B<-scrollbars> explained below are passed to
-the I<Whatever> widget constructor.
-
-=over 4
-
-=item -scrollbars
-
-Expects as argument the position where the scrollbars should be
-created: B<w>, B<e> or B<n>, B<s> or a combination of
-them. If the one or both positions are prefixed with B<o> the
-scrollbar will only show up if there is a 'real' need to scroll.
-
-=back
-
-=head1 ADVERTISED SUBWIDGETS
-
-See L<Tk::mega/"Subwidget"> how to use advertised widgets.
-
-=over 4
-
-=item scrolled
-
-the scrolled widget
-
-=item I<widget>
-
-same as B<scrolled> above. I<widget> is the kind of widget passed
-to scrolled as first argument in all lowercase.
-
-=item xscrollbar
-
-the B<Scrollbar> widget used for horizontal scrolling (if it exists)
-
-=item yscrollbar
-
-the B<Scrollbar> widget used for vertical scrolling (if it exists)
-
-=item corner
-
-a frame in the corner between the vertical and horizontal scrolbar
-
-=back
-
-=head1 BUGS
-
-If a widget does not support I<-{x,y}scrollcommand> options,
-B<Scrolled> does not complain if the specified widget class does
-not support them. E.g.,
-
-S< >I<$parent>->B<Scrolled>(B<'Button'>, ...)
-
-One does not get an error message or warning when one tries to
-configure scrollbars after the widget construction:
-
-S< >I<$ascrolled>->B<configure>(B<-scrollbars> => B<'e'>);
-
-=head1 SEE ALSO
-
-L<Tk::Scrollbar|Tk::Scrollbar>
-
-=head1 KEYWORDS
-
-scrolled, scrollbar
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Spinbox.pm b/Master/tlpkg/tlperl/lib/Tk/Spinbox.pm
deleted file mode 100644
index 849983078af..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Spinbox.pm
+++ /dev/null
@@ -1,115 +0,0 @@
-package Tk::Spinbox;
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '4.007'; # sprintf '4.%03d',q$Revision: #6 $ =~ /#(\d+)/;
-
-use base 'Tk::Entry';
-
-sub Tk_cmd { \&Tk::spinbox }
-
-# Also inherits Entry's methods
-Tk::Methods( "identify", "invoke", "set" );
-use Tk::Submethods ( 'selection' => ["element"] );
-
-Construct Tk::Widget 'Spinbox';
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
-
- $class->SUPER::ClassInit($mw);
-
- $mw->bind($class, '<Up>', [invoke => 'buttonup']);
- $mw->bind($class, '<4>', [invoke => 'buttonup']);
- $mw->bind($class, '<Down>',[invoke => 'buttondown']);
- $mw->bind($class, '<5>', [invoke => 'buttondown']);
-
- return $class;
-}
-
-sub Invoke
-{
- my ($w,$elem) = @_;
- unless ($w->{_outside})
- {
- $w->invoke($elem);
- $w->{_repeated}++;
- }
- my $delay = $w->cget('-repeatinterval');
- if ($delay > 0)
- {
- $w->RepeatId($w->after($delay,[Invoke => $w,$elem]));
- }
-}
-
-sub Button1
-{
- my ($w,$x,$y) = @_;
- my $elem = $w->identify($x,$y);
- $w->{_element} = $elem || 'entry';
- if ($w->{_element} eq 'entry')
- {
- $w->SUPER::Button1($x,$y);
- }
- elsif ($w->cget('-state') ne 'disabled')
- {
- $w->selectionElement($elem);
- $w->{_repeated} = 0;
- $w->{_outside} = 0;
- $w->{_relief} = $w->cget("-${elem}relief");
- $w->CancelRepeat;
- my $delay = $w->cget('-repeatdelay');
- $w->RepeatId($w->after($delay,[Invoke => $w,$elem])) if $delay > 0;
- }
-}
-
-sub Motion
-{
- my ($w,$x,$y) = @_;
- my $elem = $w->identify($x,$y);
- $w->{_element} = $elem || 'entry' unless $w->{_element};
- if ($w->{_element} eq 'entry')
- {
- $w->SUPER::Motion($x,$y);
- }
- else
- {
- if (!defined($elem) || $elem ne $w->{_element})
- {
- # Moved outside the button
- unless ($w->{_outside})
- {
- $w->{_outside} = 1;
- $w->selectionElement('none');
- }
- }
- elsif ($w->{_outside})
- {
- # Moved back over the button
- $w->selectionElement($elem);
- $w->{_outside} = 0;
- }
- }
-}
-
-sub Button1Release
-{
- my ($w,$x,$y) = @_;
- $w->SUPER::Button1Release($x,$y);
- my $elem = $w->{_element};
- if (defined($elem) && $elem ne 'entry')
- {
- my $repeated = $w->{_repeated};
- if (defined($repeated) && !$repeated)
- {
- $w->invoke($elem);
- }
- my $relief = delete $w->{_relief};
- $w->configure("-${elem}relief",$relief) if $relief
- }
- $w->selectionElement('none');
-}
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/Spinbox.pod b/Master/tlpkg/tlperl/lib/Tk/Spinbox.pod
deleted file mode 100644
index b18b7e1b9ae..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Spinbox.pod
+++ /dev/null
@@ -1,819 +0,0 @@
-# Copyright (c) 2000 Jeffrey Hobbs.
-# Copyright (c) 2000 Ajuba Solutions.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-# RCS: @(#) $Id: spinbox.n,v 1.3 2001/12/18 23:02:35 hobbs Exp $
-
-=head1 NAME
-
-Tk::Spinbox - Create and manipulate Spinbox widgets
-
-=for category Tk Generic Methods
-
-=head1 SYNOPSIS
-
-I<$spinbox> = I<$parent>-E<gt>Spinbox(?I<options>?);
-
- -activebackground -highlightthickness -repeatinterval
- -background -insertbackground -selectbackground
- -borderwidth -insertborderwidth -selectborderwidth
- -cursor -insertontime -selectforeground
- -exportselection -insertwidth -takefocus
- -font -insertofftime -textvariable
- -foreground -justify -xscrollcommand
- -highlightbackground -relief
- -highlightcolor -repeatdelay
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Option: B<-buttonbackground>
-
-=item Name: B<buttonBackground>
-
-=item Class: B<Background>
-
-The background color to be used for the spin buttons.
-
-=item Option: B<-buttoncursor>
-
-=item Name: B<buttonCursor>
-
-=item Class: B<Cursor>
-
-The cursor to be used when over the spin buttons. If this is empty
-(the default), a default cursor will be used.
-
-=item Option: B<-buttondownrelief>
-
-=item Name: B<buttonDownRelief>
-
-=item Class: B<Relief>
-
-The relief to be used for the upper spin button.
-
-=item Option: B<-buttonuprelief>
-
-=item Name: B<buttonUpRelief>
-
-=item Class: B<Relief>
-
-The relief to be used for the lower spin button.
-
-=item Option: B<-command>
-
-=item Name: B<command>
-
-=item Class: B<Command>
-
-Specifies a Perl/Tk callback to invoke whenever a Spinbutton is invoked.
-The callback has these two arguments I<appended> to any existing callback
-arguments: the current value of the widget and the direction of the button
-press (B<up> or B<down>).
-
-=item Option: B<-disabledbackground>
-
-=item Name: B<disabledBackground>
-
-=item Class: B<DisabledBackground>
-
-Specifies the background color to use when the Spinbox is disabled. If
-this option is the empty string, the normal background color is used.
-
-=item Option: B<-disabledforeground>
-
-=item Name: B<disabledForeground>
-
-=item Class: B<DisabledForeground>
-
-Specifies the foreground color to use when the Spinbox is disabled. If
-this option is the empty string, the normal foreground color is used.
-
-=item Option: B<-format>
-
-=item Name: B<format>
-
-=item Class: B<Format>
-
-Specifies an alternate format to use when setting the string value
-when using the B<-from> and B<-to> range.
-This must be a format specifier of the form B<%E<lt>padE<gt>.E<lt>padE<gt>f>,
-as it will format a floating-point number.
-
-=item Option: B<-from>
-
-=item Name: B<from>
-
-=item Class: B<From>
-
-A floating-point value corresponding to the lowest value for a Spinbox, to
-be used in conjunction with B<-to> and B<-increment>. When all
-are specified correctly, the Spinbox will use these values to control its
-contents. This value must be less than the B<-to> option.
-If B<-values> is specified, it supercedes this option.
-
-=item Option: B<-invalidcommand>
-
-=item Alias: B<-invcmd>
-
-=item Name: B<invalidCommand>
-
-=item Class: B<InvalidCommand>
-
-Specifies a script to eval when B<validateCommand> returns 0. Setting
-it to an empty string disables this feature (the default). The best use of
-this option is to set it to I<bell>. See B<Validation> below for
-more information.
-
-=item Option: B<-increment>
-
-=item Name: B<increment>
-
-=item Class: B<Increment>
-
-A floating-point value specifying the increment. When used with
-B<-from> and B<-to>, the value in the widget will be adjusted by
-B<-increment> when a spin button is pressed (up adds the value,
-down subtracts the value).
-
-=item Option: B<-readonlybackground>
-
-=item Name: B<readonlyBackground>
-
-=item Class: B<ReadonlyBackground>
-
-Specifies the background color to use when the Spinbox is readonly. If
-this option is the empty string, the normal background color is used.
-
-=item Option: B<-state>
-
-=item Name: B<state>
-
-=item Class: B<State>
-
-Specifies one of three states for the Spinbox: B<normal>,
-B<disabled>, or B<readonly>. If the Spinbox is readonly, then the
-value may not be changed using methods and no insertion cursor
-will be displayed, even if the input focus is in the widget; the
-contents of the widget may still be selected. If the Spinbox is
-disabled, the value may not be changed, no insertion cursor will be
-displayed, the contents will not be selectable, and the Spinbox may
-be displayed in a different color, depending on the values of the
-B<-disabledforeground> and B<-disabledbackground> options.
-
-=item Option: B<-to>
-
-=item Name: B<to>
-
-=item Class: B<To>
-
-A floating-point value corresponding to the highest value for the Spinbox,
-to be used in conjunction with B<-from> and B<-increment>. When
-all are specified correctly, the Spinbox will use these values to control
-its contents. This value must be greater than the B<-from> option.
-If B<-values> is specified, it supercedes this option.
-
-=item Option: B<-validate>
-
-=item Name: B<validate>
-
-=item Class: B<Validate>
-
-Specifies the mode in which validation should operate: B<none>,
-B<focus>, B<focusin>, B<focusout>, B<key>, or B<all>.
-It defaults to B<none>. When you want validation, you must explicitly
-state which mode you wish to use. See B<Validation> below for more.
-
-=item Option: B<-validatecommand>
-
-=item Alias: B<-vcmd>
-
-=item Name: B<validateCommand>
-
-=item Class: B<ValidateCommand>
-
-Specifies a script to evaluate when you want to validate the input in the
-widget. Setting it to an empty string disables this feature (the default).
-Validation occurs according to the value of B<-validate>.
-This command must return a valid boolean value. If it returns 0 (or
-the valid boolean equivalent) then the value of the widget will not
-change and the B<invalidCommand> will be evaluated if it is set. If it
-returns 1, then value will be changed.
-See B<Validation> below for more information.
-
-=item Option: B<-values>
-
-=item Name: B<values>
-
-=item Class: B<Values>
-
-Must be a proper list value. If specified, the Spinbox will use these
-values as to control its contents, starting with the first value. This
-option has precedence over the B<-from> and B<-to> range.
-
-=item Option: B<-width>
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-Specifies an integer value indicating the desired width of the Spinbox window,
-in average-size characters of the widget's font.
-If the value is less than or equal to zero, the widget picks a
-size just large enough to hold its current text.
-
-=item Option: B<-wrap>
-
-=item Name: B<wrap>
-
-=item Class: B<Wrap>
-
-Must be a proper boolean value. If on, the Spinbox will wrap around the
-values of data in the widget.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Spinbox> method creates a new window (given by the
-$spinbox argument) and makes it into a Spinbox widget.
-Additional options, described above, may be specified on the
-command line or in the option database
-to configure aspects of the Spinbox such as its colors, font,
-and relief.
-
-A B<Spinbox> is an extended B<Entry> widget that allows he user
-to move, or spin, through a fixed set of ascending or descending values
-such as times or dates in addition to editing the value as in an
-B<entry>. When first created, a Spinbox's string is empty.
-A portion of the Spinbox may be selected as described below.
-If a Spinbox is exporting its selection (see the B<exportSelection>
-option), then it will observe the standard protocols for handling the
-selection; Spinbox selections are available as type B<STRING>.
-Spinboxes also observe the standard Tk rules for dealing with the
-input focus. When a Spinbox has the input focus it displays an
-I<insertion cursor> to indicate where new characters will be
-inserted.
-
-Spinboxes are capable of displaying strings that are too long to
-fit entirely within the widget's window. In this case, only a
-portion of the string will be displayed; commands described below
-may be used to change the view in the window. Spinboxes use
-the standard B<-xscrollcommand> mechanism for interacting with
-scrollbars (see the description of the B<-xscrollcommand> option
-for details). They also support scanning, as described below.
-
-=head1 VALIDATION
-
-Validation works by setting the B<validateCommand>
-option to a callback which will be evaluated according to the B<validate>
-option as follows:
-
-=over 4
-
-=item B<none>
-
-Default. This means no validation will occur.
-
-=item B<focus>
-
-B<validateCommand> will be called when the Spinbox receives or
-loses focus.
-
-=item B<focusin>
-
-B<validateCommand> will be called when the Spinbox receives focus.
-
-=item B<focusout>
-
-B<validateCommand> will be called when the Spinbox loses focus.
-
-=item B<key>
-
-B<validateCommand> will be called when the Spinbox is edited.
-
-=item B<all>
-
-B<validateCommand> will be called for all above conditions.
-
-
-The B<validateCommand> and B<invalidCommand> callbacks are invoked
-with at least 5 positional arguments, which are I<appended> to any already
-existing callback arguments:
-
-=over 4
-
-=item * 1
-
-The proposed value of the entry. If you are configuring the
-entry widget to have a new textVariable, this will be the value of that
-textVariable.
-
-=item * 2
-
-The characters to be added (or deleted). This will be C<undef>
-if validation is due to focus, explcit call to validate or if change
-is due to C<-textvariable> changing.
-
-=item * 3
-
-The current value of entry i.e. before the proposed change.
-
-=item * 4
-
-The index of character string to be added/deleted, if any. Otherwise -1.
-
-=item * 5
-
-Type of action. 1 == INSERT, 0 == DELETE,
--1 if it's a forced validation or textVariable validation.
-
-=back
-
-In general, the B<textVariable> and B<validateCommand> can be
-dangerous to mix. Any problems have been overcome so that using the
-B<validateCommand> will not interfere with the traditional behavior of
-the Spinbox widget. Using the B<textVariable> for read-only purposes will
-never cause problems. The danger comes when you try set the
-B<textVariable> to something that the B<validateCommand> would not
-accept, which causes B<validate> to become I<none> (the
-B<invalidCommand> will not be triggered). The same happens
-when an error occurs evaluating the B<validateCommand>.
-
-Primarily, an error will occur when the B<validateCommand> or
-B<invalidCommand> encounters an error in its script while evaluating or
-B<validateCommand> does not return a valid boolean value. The
-B<validate> option will also set itself to B<none> when you edit the
-Spinbox widget from within either the B<validateCommand> or the
-B<invalidCommand>. Such editions will override the one that was being
-validated. If you wish to edit the value of the widget
-during validation and still have the B<validate> option set, you should
-include the command
-
- my $val = $spinbox->cget(-validate);
- $spinbox->configure(-validate => $val);
-
-in the B<validateCommand> or B<invalidCommand> (whichever one you
-were editing the Spinbox widget from). It is also recommended to not set an
-associated B<textVariable> during validation, as that can cause the
-Spinbox widget to become out of sync with the B<textVariable>.
-
-=back
-
-=head1 WIDGET METHODS
-
-The B<Spinbox> command creates a widget object whose
-name is $widget. This command may be used to invoke various
-operations on the widget. It has the following general form:
-
- $widget->method(?arg arg ...?);
-
-Many of the methods for Spinboxes take one or more indices as
-arguments. An index specifies a particular character in the Spinbox's
-string, in any of the following ways:
-
-=over 4
-
-=item I<number>
-
-Specifies the character as a numerical index, where 0 corresponds
-to the first character in the string.
-
-=item B<anchor>
-
-Indicates the anchor point for the selection, which is set with the
-B<select from> and B<select adjust> methods.
-
-=item B<end>
-
-Indicates the character just after the last one in the Spinbox's string.
-This is equivalent to specifying a numerical index equal to the length
-of the Spinbox's string.
-
-=item B<insert>
-
-Indicates the character adjacent to and immediately following the
-insertion cursor.
-
-=item B<sel.first>
-
-Indicates the first character in the selection. It is an error to
-use this form if the selection isn't in the Spinbox window.
-
-=item B<sel.last>
-
-Indicates the character just after the last one in the selection.
-It is an error to use this form if the selection isn't in the
-Spinbox window.
-
-=item B<@>I<number>
-
-In this form, I<number> is treated as an x-coordinate in the
-Spinbox's window; the character spanning that x-coordinate is used.
-For example, ``B<@0>'' indicates the left-most character in the
-window.
-
-=back
-
-Abbreviations may be used for any of the forms above, e.g. ``B<e>''
-or ``B<sel.f>''. In general, out-of-range indices are automatically
-rounded to the nearest legal value.
-
-The following commands are possible for Spinbox widgets:
-
-=over 4
-
-=item I<$widget>-E<gt>B<bbox>(I<index>);
-
-Returns a list of four numbers describing the bounding box of the
-character given by I<index>.
-The first two elements of the list give the x and y coordinates of
-the upper-left corner of the screen area covered by the character
-(in pixels relative to the widget) and the last two elements give
-the width and height of the character, in pixels.
-The bounding box may refer to a region outside the visible area
-of the window.
-
-=item I<$widget>-E<gt>B<cget>(I<option>);
-
-Returns the current value of the configuration option given
-by I<option>.
-I<Option> may have any of the values accepted by the B<Spinbox>
-command.
-
-=item I<$widget>-E<gt>B<configure>(?I<option>?, ?I<value, option, value, ...>?);
-
-Query or modify the configuration options of the widget.
-If no I<option> is specified, returns a list describing all of
-the available options for $widget (see L<Tk::configure> for
-information on the format of this list). If I<option> is specified
-with no I<value>, then the command returns a list describing the
-one named option (this list will be identical to the corresponding
-sublist of the value returned if no I<option> is specified). If
-one or more I<option-value> pairs are specified, then the command
-modifies the given widget option(s) to have the given value(s); in
-this case the command returns an empty string.
-I<Option> may have any of the values accepted by the B<Spinbox>
-command.
-
-=item I<$widget>-E<gt>B<delete>(I<first, >?I<last>?);
-
-Delete one or more elements of the Spinbox.
-I<First> is the index of the first character to delete, and
-I<last> is the index of the character just after the last
-one to delete.
-If I<last> isn't specified it defaults to I<first>+1,
-i.e. a single character is deleted.
-This command returns an empty string.
-
-=item I<$widget>-E<gt>B<get>;
-
-Returns the Spinbox's string.
-
-=item I<$widget>-E<gt>B<icursor>(I<index>);
-
-Arrange for the insertion cursor to be displayed just before the character
-given by I<index>. Returns an empty string.
-
-=item I<$widget>-E<gt>B<identify>(I<x, y>);
-
-Returns the name of the window element corresponding to coordinates
-I<x> and I<y> in the Spinbox. Return value is one of:
-B<none>, B<buttondown>, B<buttonup>, B<entry>.
-
-=item I<$widget>-E<gt>B<index>(I<index>);
-
-Returns the numerical index corresponding to I<index>.
-
-=item I<$widget>-E<gt>B<insert>(I<index, string>);
-
-Insert the characters of I<string> just before the character
-indicated by I<index>. Returns an empty string.
-
-=item I<$widget>-E<gt>B<invoke>(I<element>);
-
-Causes the specified element, either B<buttondown> or B<buttonup>,
-to be invoked, triggering the action associated with it.
-
-=item I<$widget>-E<gt>B<scan>(I<option, args>);
-
-This command is used to implement scanning on Spinboxes. It has
-two forms, depending on I<option>:
-
-=over 4
-
-=item I<$widget>-E<gt>B<scanMark>(I<x>);
-
-Records I<x> and the current view in the Spinbox window; used in
-conjunction with later B<scan dragto> commands. Typically this
-command is associated with a mouse button press in the widget. It
-returns an empty string.
-
-=item I<$widget>-E<gt>B<scanDragto>(I<x>);
-
-This command computes the difference between its I<x> argument
-and the I<x> argument to the last B<scan mark> command for
-the widget. It then adjusts the view left or right by 10 times the
-difference in x-coordinates. This command is typically associated
-with mouse motion events in the widget, to produce the effect of
-dragging the Spinbox at high speed through the window. The return
-value is an empty string.
-
-=back
-
-=item I<$widget>-E<gt>B<selection>(I<option, arg>);
-
-This command is used to adjust the selection within a Spinbox. It
-has several forms, depending on I<option>:
-
-=over 4
-
-=item I<$widget>-E<gt>B<selectionAdjust>(I<index>);
-
-Locate the end of the selection nearest to the character given by
-I<index>, and adjust that end of the selection to be at I<index>
-(i.e including but not going beyond I<index>). The other
-end of the selection is made the anchor point for future
-B<select to> commands. If the selection
-isn't currently in the Spinbox, then a new selection is created to
-include the characters between I<index> and the most recent
-selection anchor point, inclusive.
-Returns an empty string.
-
-=item I<$widget>-E<gt>B<selectionClear>;
-
-Clear the selection if it is currently in this widget. If the
-selection isn't in this widget then the command has no effect.
-Returns an empty string.
-
-=item I<$widget>-E<gt>B<selectionElement>(?I<element>?);
-
-Sets or gets the currently selected element. If a spinbutton element
-is specified, it will be displayed depressed.
-
-=item I<$widget>-E<gt>B<selectionFrom>(I<index>);
-
-Set the selection anchor point to just before the character
-given by I<index>. Doesn't change the selection.
-Returns an empty string.
-
-=item I<$widget>-E<gt>B<selectionPresent>;
-
-Returns 1 if there is are characters selected in the Spinbox,
-0 if nothing is selected.
-
-=item I<$widget>-E<gt>B<selectionRange>(I<start, >I<end>);
-
-Sets the selection to include the characters starting with
-the one indexed by I<start> and ending with the one just
-before I<end>.
-If I<end> refers to the same character as I<start> or an
-earlier one, then the Spinbox's selection is cleared.
-
-=item I<$widget>-E<gt>B<selectionTo>(I<index>);
-
-If I<index> is before the anchor point, set the selection
-to the characters from I<index> up to but not including
-the anchor point.
-If I<index> is the same as the anchor point, do nothing.
-If I<index> is after the anchor point, set the selection
-to the characters from the anchor point up to but not including
-I<index>.
-The anchor point is determined by the most recent B<select from>
-or B<select adjust> command in this widget.
-If the selection isn't in this widget then a new selection is
-created using the most recent anchor point specified for the widget.
-Returns an empty string.
-
-=back
-
-=item I<$widget>-E<gt>B<set>(?I<string>?);
-
-If I<string> is specified, the Spinbox will try and set it to this
-value, otherwise it just returns the Spinbox's string.
-If validation is on, it will occur when setting the string.
-
-=item I<$widget>-E<gt>B<validate>;
-
-This command is used to force an evaluation of the B<validateCommand>
-independent of the conditions specified by the B<validate> option.
-This is done by temporarily setting the B<validate> option to B<all>.
-It returns 0 or 1.
-
-=item I<$widget>-E<gt>B<xview>(I<args>);
-
-This command is used to query and change the horizontal position of the
-text in the widget's window. It can take any of the following
-forms:
-
-=over 4
-
-=item I<$widget>-E<gt>B<xview>;
-
-Returns a list containing two elements.
-Each element is a real fraction between 0 and 1; together they describe
-the horizontal span that is visible in the window.
-For example, if the first element is .2 and the second element is .6,
-20% of the Spinbox's text is off-screen to the left, the middle 40% is visible
-in the window, and 40% of the text is off-screen to the right.
-These are the same values passed to scrollbars via the B<-xscrollcommand>
-option.
-
-=item I<$widget>-E<gt>B<xview>(I<index>);
-
-Adjusts the view in the window so that the character given by I<index>
-is displayed at the left edge of the window.
-
-=item I<$widget>-E<gt>B<xviewMoveto>(I<fraction>);
-
-Adjusts the view in the window so that the character I<fraction> of the
-way through the text appears at the left edge of the window.
-I<Fraction> must be a fraction between 0 and 1.
-
-=item I<$widget>-E<gt>B<xviewScroll>(I<number, what>);
-
-This command shifts the view in the window left or right according to
-I<number> and I<what>.
-I<Number> must be an integer.
-I<What> must be either B<units> or B<pages> or an abbreviation
-of one of these.
-If I<what> is B<units>, the view adjusts left or right by
-I<number> average-width characters on the display; if it is
-B<pages> then the view adjusts by I<number> screenfuls.
-If I<number> is negative then characters farther to the left
-become visible; if it is positive then characters farther to the right
-become visible.
-
-=back
-
-=back
-
-=head1 DEFAULT BINDINGS
-
-Tk automatically creates class bindings for Spinboxes that give them
-the following default behavior.
-In the descriptions below, ``word'' refers to a contiguous group
-of letters, digits, or ``_'' characters, or any single character
-other than these.
-
-=over 4
-
-=item [1]
-
-Clicking mouse button 1 positions the insertion cursor
-just before the character underneath the mouse cursor, sets the
-input focus to this widget, and clears any selection in the widget.
-Dragging with mouse button 1 strokes out a selection between
-the insertion cursor and the character under the mouse.
-
-=item [2]
-
-Double-clicking with mouse button 1 selects the word under the mouse
-and positions the insertion cursor at the beginning of the word.
-Dragging after a double click will stroke out a selection consisting
-of whole words.
-
-=item [3]
-
-Triple-clicking with mouse button 1 selects all of the text in the
-Spinbox and positions the insertion cursor before the first character.
-
-=item [4]
-
-The ends of the selection can be adjusted by dragging with mouse
-button 1 while the Shift key is down; this will adjust the end
-of the selection that was nearest to the mouse cursor when button
-1 was pressed.
-If the button is double-clicked before dragging then the selection
-will be adjusted in units of whole words.
-
-=item [5]
-
-Clicking mouse button 1 with the Control key down will position the
-insertion cursor in the Spinbox without affecting the selection.
-
-=item [6]
-
-If any normal printing characters are typed in a Spinbox, they are
-inserted at the point of the insertion cursor.
-
-=item [7]
-
-The view in the Spinbox can be adjusted by dragging with mouse button 2.
-If mouse button 2 is clicked without moving the mouse, the selection
-is copied into the Spinbox at the position of the mouse cursor.
-
-=item [8]
-
-If the mouse is dragged out of the Spinbox on the left or right sides
-while button 1 is pressed, the Spinbox will automatically scroll to
-make more text visible (if there is more text off-screen on the side
-where the mouse left the window).
-
-=item [9]
-
-The Left and Right keys move the insertion cursor one character to the
-left or right; they also clear any selection in the Spinbox and set
-the selection anchor.
-If Left or Right is typed with the Shift key down, then the insertion
-cursor moves and the selection is extended to include the new character.
-Control-Left and Control-Right move the insertion cursor by words, and
-Control-Shift-Left and Control-Shift-Right move the insertion cursor
-by words and also extend the selection.
-Control-b and Control-f behave the same as Left and Right, respectively.
-Meta-b and Meta-f behave the same as Control-Left and Control-Right,
-respectively.
-
-=item [10]
-
-The Home key, or Control-a, will move the insertion cursor to the
-beginning of the Spinbox and clear any selection in the Spinbox.
-Shift-Home moves the insertion cursor to the beginning of the Spinbox
-and also extends the selection to that point.
-
-=item [11]
-
-The End key, or Control-e, will move the insertion cursor to the
-end of the Spinbox and clear any selection in the Spinbox.
-Shift-End moves the cursor to the end and extends the selection
-to that point.
-
-=item [12]
-
-The Select key and Control-Space set the selection anchor to the position
-of the insertion cursor. They don't affect the current selection.
-Shift-Select and Control-Shift-Space adjust the selection to the
-current position of the insertion cursor, selecting from the anchor
-to the insertion cursor if there was not any selection previously.
-
-=item [13]
-
-Control-/ selects all the text in the Spinbox.
-
-=item [14]
-
-Control-\ clears any selection in the Spinbox.
-
-=item [15]
-
-The F16 key (labelled Copy on many Sun workstations) or Meta-w
-copies the selection in the widget to the clipboard, if there is a selection.
-
-=item [16]
-
-The F20 key (labelled Cut on many Sun workstations) or Control-w
-copies the selection in the widget to the clipboard and deletes
-the selection.
-If there is no selection in the widget then these keys have no effect.
-
-=item [17]
-
-The F18 key (labelled Paste on many Sun workstations) or Control-y
-inserts the contents of the clipboard at the position of the
-insertion cursor.
-
-=item [18]
-
-The Delete key deletes the selection, if there is one in the Spinbox.
-If there is no selection, it deletes the character to the right of
-the insertion cursor.
-
-=item [19]
-
-The BackSpace key and Control-h delete the selection, if there is one
-in the Spinbox.
-If there is no selection, it deletes the character to the left of
-the insertion cursor.
-
-=item [20]
-
-Control-d deletes the character to the right of the insertion cursor.
-
-=item [21]
-
-Meta-d deletes the word to the right of the insertion cursor.
-
-=item [22]
-
-Control-k deletes all the characters to the right of the insertion
-cursor.
-
-=item [23]
-
-Control-t reverses the order of the two characters to the right of
-the insertion cursor.
-
-If the Spinbox is disabled using the B<-state> option, then the Spinbox's
-view can still be adjusted and text in the Spinbox can still be selected,
-but no insertion cursor will be displayed and no text modifications will
-take place.
-
-The behavior of Spinboxes can be changed by defining new bindings for
-individual widgets or by redefining the class bindings.
-
-=back
-
-=head1 KEYWORDS
-
-Spinbox, Entry, widget
diff --git a/Master/tlpkg/tlperl/lib/Tk/Stats.pm b/Master/tlpkg/tlperl/lib/Tk/Stats.pm
deleted file mode 100644
index 39bedfb1a47..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Stats.pm
+++ /dev/null
@@ -1,26 +0,0 @@
-package Tk::Stats;
-
-($lu,$ls) = times;
-
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/Tk/Stats.pm#4 $
-
-sub stats
- {
- my ($u,$s) = times;
- my $du = $u-$lu;
- my $ds = $s-$ls;
- $ls = $s;
- $lu = $u;
- print sprintf(' dt=%4.2f du=%4.2f ds=%4.2f',$du+$ds,$du,$ds);
- print sprintf(' t=%4.2f u=%4.2f s=%4.2f',$u+$s,$u,$s);
- print ' ',shift,"\n";
- }
-
-sub import
-{
- stats($_[1]);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/Submethods.pm b/Master/tlpkg/tlperl/lib/Tk/Submethods.pm
deleted file mode 100644
index 2741611172e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Submethods.pm
+++ /dev/null
@@ -1,45 +0,0 @@
-package Tk::Submethods;
-
-use vars qw($VERSION);
-$VERSION = '4.005'; # $Id: //depot/Tkutf8/Tk/Submethods.pm#4 $
-
-sub import
-{
- my $class = shift;
- no strict 'refs';
- my $package = caller(0);
- while (@_)
- {
- my $fn = shift;
- my $sm = shift;
- foreach my $sub (@{$sm})
- {
- my ($suffix) = $sub =~ /(\w+)$/;
- my $pfn = $package.'::'.$fn;
- *{$pfn."\u$suffix"} = sub { shift->$pfn($sub,@_) };
- }
- }
-}
-
-sub Direct
-{
- my $class = shift;
- no strict 'refs';
- my $package = caller(0);
- while (@_)
- {
- my $fn = shift;
- my $sm = shift;
- my $sub;
- foreach $sub (@{$sm})
- {
- # eval "sub ${package}::${sub} { shift->$fn('$sub',\@_) }";
- *{$package.'::'.$sub} = sub { shift->$fn($sub,@_) };
- }
- }
-}
-
-1;
-
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Submethods.pod b/Master/tlpkg/tlperl/lib/Tk/Submethods.pod
deleted file mode 100644
index 2a83334f8b2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Submethods.pod
+++ /dev/null
@@ -1,27 +0,0 @@
-
-=head1 NAME
-
-Tk::Submethods - add aliases for tk sub-commands
-
-=for pm Tk/Submethods.pm
-
-=for category Implementation
-
-=head1 SYNOPSIS
-
- use Tk::Submethods ( 'command1' => [qw(sub1 sub2 sub3)],
- 'command2' => [qw(sub1 sub2 sub3)]);
-
-=head1 DESCRIPTION
-
-Creates C<-E<gt>commandSub(...)> as an alias for C<-E<gt>command('sub',...)>
-e.g. C<-E<gt>grabRelease> for C<-E<gt>grab('release')>.
-
-For each command/subcommand pair this creates a closure with command
-and subcommand as bound lexical variables and assigns a reference to this
-to a 'glob' in the callers package.
-
-Someday the sub-commands may be created directly in the C code.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/TList.pm b/Master/tlpkg/tlperl/lib/Tk/TList.pm
deleted file mode 100644
index 65ce18796bb..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/TList.pm
+++ /dev/null
@@ -1,416 +0,0 @@
-package Tk::TList;
-
-use vars qw($VERSION);
-$VERSION = '4.006'; # $Id: //depot/Tkutf8/TList/TList.pm#6 $
-
-use Tk qw(Ev $XS_VERSION);
-
-use base qw(Tk::Widget);
-
-use strict;
-
-Construct Tk::Widget 'TList';
-
-bootstrap Tk::TList;
-
-sub Tk_cmd { \&Tk::tlist }
-
-Tk::Methods qw(insert index anchor delete dragsite dropsite entrycget
- entryconfigure info nearest see selection xview yview);
-
-use Tk::Submethods ( 'delete' => [qw(all entry offsprings siblings)],
- 'info' => [qw(anchor dragsite dropsite selection)],
- 'selection' => [qw(clear get includes set)],
- 'anchor' => [qw(clear set)],
- 'dragsite' => [qw(clear set)],
- 'dropsite' => [qw(clear set)],
- );
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
-
- $mw->bind($class,'<ButtonPress-1>',[ 'Button1' ] );
- $mw->bind($class,'<Shift-ButtonPress-1>',[ 'ShiftButton1' ] );
- $mw->bind($class,'<Control-ButtonRelease-1>','Control_ButtonRelease_1');
- $mw->bind($class,'<ButtonRelease-1>','ButtonRelease_1');
- $mw->bind($class,'<B1-Motion>',[ 'Button1Motion' ] );
- $mw->bind($class,'<B1-Leave>',[ 'AutoScan' ] );
-
- $mw->bind($class,'<Double-ButtonPress-1>',['Double1']);
-
- $mw->bind($class,'<Control-B1-Motion>','Control_B1_Motion');
- $mw->bind($class,'<Control-ButtonPress-1>',['CtrlButton1']);
- $mw->bind($class,'<Control-Double-ButtonPress-1>',['CtrlButton1']);
-
- $mw->bind($class,'<B1-Enter>','B1_Enter');
-
- $mw->bind($class,'<Up>', ['DirKey', 'up']);
- $mw->bind($class,'<Down>',['DirKey', 'down']);
-
- $mw->bind($class,'<Left>', ['DirKey', 'left']);
- $mw->bind($class,'<Right>',['DirKey', 'right']);
-
- $mw->bind($class,'<Prior>','Prior');
- $mw->bind($class,'<Next>','Next');
-
- $mw->bind($class,'<Return>', ['KeyboardActivate']);
- $mw->bind($class,'<space>', ['KeyboardBrowse']);
-
- return $class;
-}
-
-sub Control_ButtonRelease_1
-{
-}
-
-
-sub ButtonRelease_1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->CancelRepeat
- if($w->cget('-selectmode') ne 'dragdrop');
- $w->ButtonRelease1($Ev);
-}
-
-
-sub Control_B1_Motion
-{
-}
-
-
-sub B1_Enter
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->CancelRepeat
- if($w->cget('-selectmode') ne 'dragdrop');
-}
-
-
-sub Prior
-{
-shift->yview('scroll', -1, 'pages')
-}
-
-
-sub Next
-{
-shift->yview('scroll', 1, 'pages')
-}
-
-
-sub Button1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
-
- delete $w->{'shiftanchor'};
-
- $w->focus()
- if($w->cget('-takefocus'));
-
- my $mode = $w->cget('-selectmode');
-
- if ($mode eq 'dragdrop')
- {
- # $w->Send_WaitDrag($Ev->y);
- return;
- }
-
- my $ent = $w->GetNearest($Ev->x, $Ev->y);
-
- return unless defined $ent;
-
- my $browse = 0;
-
- if($mode eq 'single')
- {
- $w->anchor('set', $ent);
- }
- elsif($mode eq 'browse')
- {
- $w->anchor('set', $ent);
- $w->selection('clear' );
- $w->selection('set', $ent);
- $browse = 1;
- }
- elsif($mode eq 'multiple')
- {
- $w->selection('clear');
- $w->anchor('set', $ent);
- $w->selection('set', $ent);
- $browse = 1;
- }
- elsif($mode eq 'extended')
- {
- $w->anchor('set', $ent);
- $w->selection('clear');
- $w->selection('set', $ent);
- $browse = 1;
- }
-
- $w->Callback(-browsecmd => $ent) if ($browse);
-}
-
-sub ShiftButton1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
-
- my $to = $w->GetNearest($Ev->x,$Ev->y);
-
- delete $w->{'shiftanchor'};
-
- return unless defined $to;
-
- my $mode = $w->cget('-selectmode');
-
- if ($mode eq 'extended')
- {
- my $from = $w->info('anchor');
- if (defined $from)
- {
- $w->selection('clear');
- $w->selection('set', $from, $to);
- }
- else
- {
- $w->anchor('set', $to);
- $w->selection('clear');
- $w->selection('set', $to);
- }
- }
-}
-
-sub GetNearest
-{
- my ($w,$x,$y) = @_;
- my $ent = $w->nearest($x,$y);
- if (defined $ent)
- {
- my $state = $w->entrycget($ent, '-state');
- return $ent if (!defined($state) || $state ne 'disabled');
- }
- return undef;
-}
-
-sub ButtonRelease1
-{
- my ($w, $Ev) = @_;
-
- delete $w->{'shiftanchor'};
-
- my $mode = $w->cget('-selectmode');
-
- if($mode eq 'dragdrop')
- {
-# $w->Send_DoneDrag();
- return;
- }
-
- my ($x, $y) = ($Ev->x, $Ev->y);
- my $ent = $w->GetNearest($x,$y);
-
- return unless defined $ent;
-
- if($x < 0 || $y < 0 || $x > $w->width || $y > $w->height)
- {
- $w->selection('clear');
-
- return if($mode eq 'single' || $mode eq 'browse')
-
- }
- else
- {
- if($mode eq 'single' || $mode eq 'browse')
- {
- $w->anchor('set', $ent);
- $w->selection('clear');
- $w->selection('set', $ent);
-
- }
- elsif($mode eq 'multiple')
- {
- $w->selection('set', $ent);
- }
- elsif($mode eq 'extended')
- {
- $w->selection('set', $ent);
- }
- }
-
- $w->Callback(-browsecmd =>$ent);
-}
-
-sub Button1Motion
-{
- my $w = shift;
- my $Ev = $w->XEvent;
-
- delete $w->{'shiftanchor'};
-
- my $mode = $w->cget('-selectmode');
-
- if ($mode eq 'dragdrop')
- {
-# $w->Send_StartDrag();
- return;
- }
-
- my $ent = $w->GetNearest($Ev->x,$Ev->y);
-
- return unless defined $ent;
-
- if($mode eq 'single')
- {
- $w->anchor('set', $ent);
- }
- elsif($mode eq 'multiple' || $mode eq 'extended')
- {
- my $from = $w->info('anchor');
- if (defined $from)
- {
- $w->selection('clear');
- $w->selection('set', $from, $ent);
- }
- else
- {
- $w->anchor('set', $ent);
- $w->selection('clear');
- $w->selection('set', $ent);
- }
- }
-
- if($mode ne 'single')
- {
- $w->Callback(-browsecmd =>$ent);
- }
-}
-
-sub Double1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
-
- delete $w->{'shiftanchor'};
-
- my $ent = $w->GetNearest($Ev->x,$Ev->y);
-
- return unless defined $ent;
-
- $w->anchor('set', $ent) unless defined($w->info('anchor'));
-
- $w->selection('set', $ent);
- $w->Callback(-command => $ent);
-}
-
-sub CtrlButton1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
-
- delete $w->{'shiftanchor'};
-
- my $ent = $w->GetNearest($Ev->x,$Ev->y);
-
- return unless defined $ent;
-
- my $mode = $w->cget('-selectmode');
-
- if($mode eq 'extended')
- {
- $w->anchor('set', $ent) unless defined( $w->info('anchor') );
-
- if($w->selection('includes', $ent))
- {
- $w->selection('clear', $ent);
- }
- else
- {
- $w->selection('set', $ent);
- }
- $w->Callback(-browsecmd =>$ent);
- }
-}
-
-sub DirKey
-{
- my ($w,$dir) = @_;
- my $anchor = $w->info('anchor');
-
- my $new = (defined $anchor) ? $w->info($dir,$anchor) : 0;
-
- $w->anchorSet($new);
- $w->see($new);
-}
-
-sub KeyboardActivate
-{
- my $w = shift;
-
- my $anchor = $w->info('anchor');
-
- return unless defined $anchor;
-
- if($w->cget('-selectmode'))
- {
- $w->selection('clear');
- $w->selection('set', $anchor);
- }
- $w->Callback(-command => $anchor);
-}
-
-sub KeyboardBrowse
-{
- my $w = shift;
-
- my $anchor = $w->info('anchor');
-
- return unless defined $anchor;
-
- if($w->cget('-selectmode'))
- {
- $w->selection('clear');
- $w->selection('set', $anchor);
- }
- $w->Callback(-browsecmd =>$anchor);
-}
-
-sub AutoScan
-{
- my $w = shift;
-
- return if($w->cget('-selectmode') eq 'dragdrop');
-
- my $Ev = $w->XEvent;
- my $y = $Ev->y;
- my $x = $Ev->x;
-
- if($y >= $w->height)
- {
- $w->yview('scroll', 1, 'units');
- }
- elsif($y < 0)
- {
- $w->yview('scroll', -1, 'units');
- }
- elsif($x >= $w->width)
- {
- $w->xview('scroll', 2, 'units');
- }
- elsif($x < 0)
- {
- $w->xview('scroll', -2, 'units');
- }
- else
- {
- return;
- }
- $w->RepeatId($w->after(50,[AutoScan => $w]));
- $w->Button1Motion;
-}
-
-1;
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/TList.pod b/Master/tlpkg/tlperl/lib/Tk/TList.pod
deleted file mode 100644
index b8937fa8ef0..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/TList.pod
+++ /dev/null
@@ -1,597 +0,0 @@
-# Copyright (c) 1996, Expert Interface Technologies
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# The file man.macros and some of the macros used by this file are
-# copyrighted: (c) 1990 The Regents of the University of California.
-# (c) 1994-1995 Sun Microsystems, Inc.
-# The license terms of the Tcl/Tk distribution are in the file
-# license.tcl.
-
-=head1 NAME
-
-Tk::TList - Create and manipulate Tix Tabular List widgets
-
-=for category Tix Extensions
-
-=head1 SYNOPSIS
-
-S< >I<$tlist> = I<$parent>-E<gt>B<TList>(?I<options>?);
-
-=head1 SUPER-CLASS
-
-None.
-
-=head1 STANDARD OPTIONS
-
-B<-background> B<-borderwidth> B<-class> B<-cursor> B<-foreground>
-B<-font> B<-height> B<-highlightcolor> B<-highlightthickness>
-B<-relief> B<-selectbackground> B<-selectforeground>
-B<-xscrollcommand> B<-yscrollcommand> B<-width>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<browsecmd>
-
-=item Class: B<BrowseCmd>
-
-=item Switch: B<-browsecmd>
-
-Specifies a perl/Tk B<callback> to be executed when the user browses through the
-entries in the TList widget.
-
-=item Name: B<command>
-
-=item Class: B<Command>
-
-=item Switch: B<-command>
-
-Specifies the perl/Tk B<callback> to be executed when the user invokes a list
-entry in the TList widget. Normally the user invokes a list
-entry by double-clicking it or pressing the Return key.
-
-=item Name: B<foreground>
-
-=item Class: B<Foreground>
-
-=item Switch: B<-foreground>
-
-=item Alias: B<-fg>
-
-Specifies the default foreground color for the list entries.
-
-=item Name: B<height>
-
-=item Class: B<Height>
-
-=item Switch: B<-height>
-
-Specifies the desired height for the window in number of characters.
-
-=item Name: B<itemType>
-
-=item Class: B<ItemType>
-
-=item Switch: B<-itemtype>
-
-Specifies the default type of display item for this TList widget. When
-you call the B<insert> methods, display items of this
-type will be created if the B<-itemtype> option is not specified.
-
-=item Name: B<orient>
-
-=item Class: B<Orient>
-
-=item Switch: B<-orient>
-
-Specifies the order of tabularizing the list entries. When set to
-"B<vertical>", the entries are arranged in a column, from top to
-bottom. If the entries cannot be contained in one column, the
-remaining entries will go to the next column, and so on. When set to
-"B<horizontal>", the entries are arranged in a row, from left to
-right. If the entries cannot be contained in one row, the remaining
-entries will go to the next row, and so on.
-
-=item Name: B<padX>
-
-=item Class: B<Pad>
-
-=item Switch: B<-padx>
-
-The default horizontal padding for list entries.
-
-=item Name: B<padY>
-
-=item Class: B<Pad>
-
-=item Switch: B<-padx>
-
-The default vertical padding for list entries.
-
-=item Name: B<selectBackground>
-
-=item Class: B<SelectBackground>
-
-=item Switch: B<-selectbackground>
-
-Specifies the background color for the selected list entries.
-
-=item Name: B<selectBorderWidth>
-
-=item Class: B<BorderWidth>
-
-=item Switch: B<-selectborderwidth>
-
-Specifies a non-negative value indicating the width of the 3-D border
-to draw around selected items. The value may have any of the forms
-acceptable to B<Tk_GetPixels>.
-
-=item Name: B<selectForeground>
-
-=item Class: B<SelectForeground>
-
-=item Switch: B<-selectforeground>
-
-Specifies the foreground color for the selected list entries.
-
-=item Name: B<selectMode>
-
-=item Class: B<SelectMode>
-
-=item Switch: B<-selectmode>
-
-Specifies one of several styles for manipulating the selection. The
-value of the option may be arbitrary, but the default bindings expect
-it to be either B<single>, B<browse>, B<multiple>, or
-B<extended>; the default value is B<single>.
-
-=item Name: B<sizeCmd>
-
-=item Class: B<SizeCmd>
-
-=item Switch: B<-sizecmd>
-
-Specifies a perl/Tk B<callback> to be called whenever the TList widget
-changes its size. This command can be useful to implement "user scroll
-bars when needed" features.
-
-=item Name: B<state>
-
-=item Class: B<State>
-
-=item Switch: B<-state>
-
-Specifies whether the TList command should react to user actions. When
-set to "B<normal>", the TList reacts to user actions in the normal
-way. When set to "B<disabled>", the TList can only be scrolled, but
-its entries cannot be selected or activated.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies the desired width for the window in characters.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<TList> method creates a new window (given by the
-$widget argument) and makes it into a TList widget.
-Additional options, described above, may be specified on the command
-line or in the option database to configure aspects of the
-TList widget such as its cursor and relief.
-
-The TList widget can be used to display data in a tabular format. The
-list entries of a TList widget are similar to the entries in the Tk
-listbox widget. The main differences are (1) the TList widget can
-display the list entries in a two dimensional format and (2) you can
-use graphical images as well as multiple colors and fonts for
-the list entries.
-
-Each list entry is identified by an B<index>, which can be in the
-following forms:
-
-=over 4
-
-=item I<number>
-
-An integer that indicates the position of the entry in the list. 0
-means the first position, 1 means the second position, and so on.
-
-=item B<end>
-
-Indicates the end of the listbox. For some commands this means just
-after the last entry; for other commands it means the last entry.
-
-=item B<@>I<x>,I<y>
-
-Indicates the element that covers the point in the listbox window
-specified by x and y (in pixel coordinates). If no element covers that
-point, then the closest element to that point is used.
-
-=back
-
-=head1 DISPLAY ITEMS
-
-Each list entry in an TList widget is associated with a B<display>
-item. The display item determines what visual information should
-be displayed for this list entry. Please see L<Tk::DItem>
-for a list of all display items.
-
-When a list entry is created by the B<insert> command, the type of
-its display item is determined by the B<-itemtype> option passed
-to these commands. If the B<-itemtype> is omitted, then by default
-the type specified by this TList widget's B<-itemtype> option is
-used.
-
-=head1 WIDGET METHODS
-
-The B<TList> method creates a widget object.
-
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-The following additional methods are available for TList widgets:
-
-=over 4
-
-=item I<$tlist>-E<gt>B<anchorSet>(I<index>)
-
-Sets the anchor to the list entry identified by I<index>. The
-anchor is the end of the selection that is fixed while dragging out a
-selection with the mouse.
-
-=item I<$tlist>-E<gt>B<anchorClear>
-
-Removes the anchor, if any, from this TList widget. This only removes
-the surrounding highlights of the anchor entry and does not affect its
-selection status.
-
-=item I<$tlist>-E<gt>B<delete>(I<from, >?I<to>?)
-
-Deletes one or more list entries between the two entries specified by
-the indices I<from> and I<to>. If I<to> is not specified, deletes
-the single entry specified by I<from>.
-
-=item I<$tlist>-E<gt>B<dragsiteSet>(I<index>)
-
-Sets the dragsite to the list entry identified by
-I<index>. The dragsite is used to indicate the source of a
-drag-and-drop action. Currently drag-and-drop functionality has not
-been implemented in Tix yet.
-
-=item I<$tlist>-E<gt>B<dragsiteClear>
-
-Remove the dragsite, if any, from the this TList widget. This only
-removes the surrounding highlights of the dragsite entry and does not
-affect its selection status.
-
-=item I<$tlist>-E<gt>B<dropsiteSet>(I<index>)
-
-Sets the dropsite to the list entry identified by I<index>. The
-dropsite is used to indicate the target of a drag-and-drop
-action. Currently drag-and-drop functionality has not been implemented
-in Tix yet.
-
-=item I<$tlist>-E<gt>B<dropsiteClear>
-
-Remove the dropsite, if any, from the this TList widget. This only
-removes the surrounding highlights of the dropsite entry and does not
-affect its selection status.
-
-=item I<$tlist>-E<gt>B<entrycget>(I<index, option>)
-
-Returns the current value of the configuration option given by
-I<option> for the entry indentfied by I<index>. I<Option> may
-have any of the values accepted by the B<insert> method.
-
-=item I<$tlist>-E<gt>B<entryconfigure>(I<index, >?I<option>?, I<?value, option, value, ...>?)
-
-Query or modify the configuration options of the list entry identified
-by I<index>. If no I<option> is specified, returns a list
-describing all of the available options for I<index> (see
-B<Tk_ConfigureInfo> for information on the format of this list). If
-I<option> is specified with no I<value>, then the method
-returns a list describing the one named option (this list will be
-identical to the corresponding sublist of the value returned if no
-I<option> is specified). If one or more I<option-value> pairs
-are specified, then the command modifies the given option(s) to have
-the given value(s); in this case the method returns an empty string.
-I<Option> may have any of the values accepted by the B<insert>
-method. The exact set of options depends on the
-value of the B<-itemtype> option passed to the the B<insert>
-method when this list entry is created.
-
-=item I<$tlist>-E<gt>B<insert>(I<index, >?I<option, value, ...>?)
-
-Creates a new list entry at the position indicated by I<index>. The
-following configuration options can be given to configure the list
-entry:
-
-=over 8
-
-=item B<-itemtype> => I<type>
-
-Specifies the type of display item to be display for the new list
-entry. I<type> must be a valid display item type. Currently the
-available display item types are B<image>, B<imagetext>,
-B<text>, and I<$widget>. If this option is not specified, then by
-default the type specified by this TList widget's B<-itemtype>
-option is used.
-
-=item B<-state> => I<state>
-
-Specifies whether this entry can be selected or invoked by the user.
-Must be either B<normal> or B<disabled>.
-
-=item B<-data> => I<data>
-
-Arbitrary data to be associated with the entry (a perl scalar value).
-
-=back
-
-The B<insert> method accepts additional configuration options
-to configure the display item associated with this list entry. The set
-of additional configuration options depends on the type of the display
-item given by the B<-itemtype> option. Please see
-L<Tk::DItem> for a list of the configuration options for
-each of the display item types.
-
-=item I<$tlist>-E<gt>B<info>(I<option, >I<arg, ...>)
-
-Query information about the TList widget. I<option> can be one
-of the following:
-
-=over 8
-
-=item I<$tlist>-E<gt>B<info>(B<anchor, >I<index>)
-
-Returns the index of the current anchor, if any, of the TList
-widget. If the anchor is not set, returns the empty string.
-
-=item I<$tlist>-E<gt>B<info>(B<dragsite, >I<index>)
-
-Returns the index of the current dragsite, if any, of the TList
-widget. If the dragsite is not set, returns the empty string.
-
-=item I<$tlist>-E<gt>B<info>(B<dropsite, >I<index>)
-
-Returns the index of the current dropsite, if any, of the TList
-widget. If the dropsite is not set, returns the empty string.
-
-=item I<$tlist>-E<gt>B<info>(B<selection>)
-
-Returns a list of selected elements in the TList widget. If no entries
-are selected, returns an empty string.
-
-=back
-
-=item I<$tlist>-E<gt>B<nearest>(I<x, y>)
-
-Given an I<(x,y)> coordinate within the TList window, this command
-returns the index of the TList element nearest to that coordinate.
-
-=item I<$tlist>-E<gt>B<see>(I<index>)
-
-Adjust the view in the TList so that the entry given by I<index> is
-visible. If the entry is already visible then the command has no
-effect; otherwise TList scrolls to bring the element into view at the edge
-to which it is nearest.
-
-=item I<$tlist>-E<gt>B<selection>(I<option, >I<arg, ...>)
-
-This command is used to adjust the selection within a TList widget. It
-has several forms, depending on I<option>:
-
-=over 8
-
-=item I<$tlist>-E<gt>B<selectionClear>(?I<from>?, ?I<to>?)
-
-When no extra arguments are given, deselects all of the list entrie(s)
-in this TList widget. When only I<from> is given, only the list
-entry identified by I<from> is deselected. When both I<from> and
-I<to> are given, deselects all of the list entrie(s) between
-between I<from> and I<to>, inclusive, without affecting the
-selection state of entries outside that range.
-
-=item I<$tlist>-E<gt>B<selectionIncludes>(I<index>)
-
-Returns 1 if the list entry indicated by I<index> is currently
-selected; returns 0 otherwise.
-
-=item I<$tlist>-E<gt>B<selectionSet>(I<from, >?I<to>?)
-
-Selects all of the list entrie(s) between between I<from> and
-I<to>, inclusive, without affecting the selection state of entries
-outside that range. When only I<from> is given, only the list entry
-identified by I<from> is selected.
-
-=back
-
-=item I<$tlist>-E<gt>B<xview>(I<args>)
-
-This command is used to query and change the horizontal position of the
-information in the widget's window. It can take any of the following
-forms:
-
-=over 8
-
-=item I<$tlist>-E<gt>B<xview>
-
-Returns a list containing two elements. Each element is a real
-fraction between 0 and 1; together they describe the horizontal span
-that is visible in the window. For example, if the first element is
-0.2 and the second element is 0.6, 20% of the TList entry is
-off-screen to the left, the middle 40% is visible in the window, and
-40% of the entry is off-screen to the right. These are the same values
-passed to scrollbars via the B<-xscrollcommand> option.
-
-=item I<$tlist>-E<gt>B<xview>(I<index>)
-
-Adjusts the view in the window so that the list entry identified by
-I<index> is aligned to the left edge of the window.
-
-=item I<$tlist>-E<gt>B<xviewMoveto>(I<fraction>)
-
-Adjusts the view in the window so that I<fraction> of the total
-width of the TList is off-screen to the left. I<fraction> must be
-a fraction between 0 and 1.
-
-=item I<$tlist>-E<gt>B<xviewScroll>(I<number, what>)
-
-This command shifts the view in the window left or right according to
-I<number> and I<what>. I<Number> must be an integer.
-I<What> must be either B<units> or B<pages> or an
-abbreviation of one of these. If I<what> is B<units>, the view
-adjusts left or right by I<number> character units (the width of
-the B<0> character) on the display; if it is B<pages> then the
-view adjusts by I<number> screenfuls. If I<number> is negative
-then characters farther to the left become visible; if it is positive
-then characters farther to the right become visible.
-
-=back
-
-=item I<$tlist>-E<gt>B<yview>(I<?args>?)
-
-This command is used to query and change the vertical position of the
-entries in the widget's window. It can take any of the following forms:
-
-=over 8
-
-=item I<$tlist>-E<gt>B<yview>
-
-Returns a list containing two elements, both of which are real
-fractions between 0 and 1. The first element gives the position of
-the list element at the top of the window, relative to the TList as a
-whole (0.5 means it is halfway through the TList, for example). The
-second element gives the position of the list entry just after the
-last one in the window, relative to the TList as a whole. These are
-the same values passed to scrollbars via the B<-yscrollcommand>
-option.
-
-=item I<$tlist>-E<gt>B<yview>(I<index>)
-
-Adjusts the view in the window so that the list entry given by
-I<index> is displayed at the top of the window.
-
-=item I<$tlist>-E<gt>B<yviewMoveto>(I<fraction>)
-
-Adjusts the view in the window so that the list entry given by
-I<fraction> appears at the top of the window. I<Fraction> is a
-fraction between 0 and 1; 0 indicates the first entry in the TList,
-0.33 indicates the entry one-third the way through the TList, and so
-on.
-
-=item I<$tlist>-E<gt>B<yviewScroll>(I<number, what>)
-
-This command adjust the view in the window up or down according to
-I<number> and I<what>. I<Number> must be an integer.
-I<What> must be either B<units> or B<pages>. If I<what>
-is B<units>, the view adjusts up or down by I<number> lines; if
-it is B<pages> then the view adjusts by I<number> screenfuls.
-If I<number> is negative then earlier entries become visible; if
-it is positive then later entries become visible.
-
-=back
-
-=back
-
-=head1 BINDINGS
-
-=over 4
-
-=item [1]
-
-If the B<-selectmode> is "browse", when the user drags the mouse
-pointer over the list entries, the entry under the pointer will be
-highlighted and the B<-browsecmd> procedure will be called with
-one parameter, the index of the highlighted entry. Only one entry
-can be highlighted at a time. The B<-command> procedure will be
-called when the user double-clicks on a list entry.
-
-=item [2]
-
-If the B<-selectmode> is "single", the entries will only be
-highlighted by mouse E<lt>ButtonRelease-1E<gt> events. When a new list entry
-is highlighted, the B<-browsecmd> procedure will be called with
-one parameter indicating the highlighted list entry. The
-B<-command> procedure will be called when the user double-clicks
-on a list entry.
-
-=item [3]
-
-If the B<-selectmode> is "multiple", when the user drags the mouse
-pointer over the list entries, all the entries under the pointer will
-be highlighted. However, only a contiguous region of list entries can
-be selected. When the highlighted area is changed, the
-B<-browsecmd> procedure will be called with an undefined
-parameter. It is the responsibility of the B<-browsecmd> procedure
-to find out the exact highlighted selection in the TList. The
-B<-command> procedure will be called when the user double-clicks
-on a list entry.
-
-=item [4]
-
-If the B<-selectmode> is "extended", when the user drags the mouse
-pointer over the list entries, all the entries under the pointer will
-be highlighted. The user can also make disjointed selections using
-E<lt>Control-ButtonPress-1E<gt>. When the highlighted area is changed, the
-B<-browsecmd> procedure will be called with an undefined
-parameter. It is the responsibility of the B<-browsecmd> procedure
-to find out the exact highlighted selection in the TList. The
-B<-command> procedure will be called when the user double-clicks
-on a list entry.
-
-=back
-
-=cut
-
-# BUG:
-# click on 'one' in example below does not make
-# it 'active' item (didn't GBARR reported this before!?)
-
-=head1 EXAMPLE
-
-This example demonstrates how to use an TList to store a list of
-numbers:
-
- use strict;
- use Tk ();
- use Tk::TList;
-
- my $mw = Tk::MainWindow->new();
- my $image = $mw->Getimage('folder');
- my $tlist = $mw->TList(-orient => 'vertical');
- for my $text ( qw/one two three four five six seven eight nine/ ) {
- $tlist->insert('end',
- -itemtype=>'imagetext', -image=>$image, -text=>$text);
- }
-
- $tlist->pack(-expand=>'yes', -fill=>'both');
-
- Tk::MainLoop;
-
-=head1 SEE ALSO
-
-L<Tk::options|Tk::options>
-L<Tk::Widget|Tk::Widget>
-L<Tk::DItem|Tk::DItem>
-L<Tk::HList|Tk::HList>
-L<Tk::TixGrid|Tk::TixGrid>
-
-=head1 KEYWORDS
-
-Tix(n), Tabular Listbox, Display Items
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Table.pm b/Master/tlpkg/tlperl/lib/Tk/Table.pm
deleted file mode 100644
index 8116c012a09..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Table.pm
+++ /dev/null
@@ -1,597 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Table;
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '4.016';
-
-use AutoLoader;
-use base qw(Tk::Frame);
-
-Construct Tk::Widget 'Table';
-
-# Constants for QueueLayout flags
-sub _SlaveSize () { 1 } # Slave has asked for change of width or height
-sub _SlaveChange () { 2 } # We lost or gained a slave
-sub _ViewChange () { 4 } # xview or yview called
-sub _ConfigEvent () { 8 } # Table has changed size
-sub _ScrollBars () { 32 } # Scrollabrs came or went
-sub _RowColCount () { 16 } # rows or columns configured
-
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<Configure>',['QueueLayout',_ConfigEvent]);
- $mw->bind($class,'<FocusIn>', 'NoOp');
- $mw->XYscrollBind($class);
- return $class;
-}
-
-sub _view
-{
- my ($t,$s,$page,$a,$op,$num,$type) = @_;
- if ($op eq 'moveto')
- {
- $$s = int(@$a*$num);
- }
- else
- {
- $num *= ($page/2) if ($type eq 'pages');
- $$s += $num;
- }
- $$s = 0 if ($$s < 0);
- $t->QueueLayout(_ViewChange);
-}
-
-sub xview
-{
- my $t = shift;
- $t->_view(\$t->{Left},$t->cget('-columns'),$t->{Width},@_);
-}
-
-sub yview
-{
- my $t = shift;
- $t->_view(\$t->{Top},$t->cget('-rows'),$t->{Height},@_);
-}
-
-sub FocusChildren
-{
- my $t = shift;
- return () if ($t->cget('-takefocus'));
- return $t->SUPER::FocusChildren;
-}
-
-sub Populate
-{
- my ($t,$args) = @_;
- $t->SUPER::Populate($args);
- $t->ConfigSpecs('-scrollbars' => [METHOD => 'scrollbars','Scrollbars','nw'],
- '-takefocus' => [SELF => 'takeFocus','TakeFocus',1],
- '-rows' => [METHOD => 'rows','Rows',10],
- '-fixedrows' => [METHOD => 'fixedRows','FixedRows',0],
- '-columns' => [METHOD => 'columns','Columns',10],
- '-fixedcolumns' => [METHOD => 'fixedColumn','FixedColumns',0],
- '-highlightthickness' => [SELF => 'highlightThickness','HighlightThickness',2]
- );
- $t->_init;
-}
-
-sub sizeN
-{
- my ($n,$a) = @_;
- my $max = 0;
- my $i = 0;
- my $sum = 0;
- while ($i < @$a && $i < $n)
- {
- my $n = $a->[$i++];
- $a->[$i-1] = $n = 0 unless (defined $n);
- $sum += $n;
- }
- $max = $sum if ($sum > $max);
- while ($i < @$a)
- {
- $sum = $sum-$a->[$i-$n]+$a->[$i];
- $max = $sum if ($sum > $max);
- $i++;
- }
- return $max;
-}
-
-sub total
-{
- my ($a) = @_;
- my $total = 0;
- my $x;
- foreach $x (@{$a})
- {
- $total += $x;
- }
- return $total;
-}
-
-sub constrain
-{
- my ($sb,$a,$pixels,$fixed) = @_;
- my $n = $$sb+$fixed;
- my $total = 0;
- my $i;
- $n = @$a if ($n > @$a);
- $n = $fixed if ($n < $fixed);
- for ($i= 0; $i < $fixed; $i++)
- {
- (defined($a->[$i])) && ($total += $a->[$i]);
- }
- for ($i=$n; $total < $pixels && $i < @$a; $i++)
- {
- $a->[$i] ||= 0;
- $total += $a->[$i];
- }
- while ($n > $fixed)
- {
- if (($total += $a->[--$n]) > $pixels)
- {
- $n++;
- last;
- }
- }
- $$sb = $n-$fixed;
-}
-
-sub Layout
-{
- my ($t) = @_;
- return unless Tk::Exists($t);
- my $rows = @{$t->{Row}};
- my $bw = $t->cget(-highlightthickness);
- my $frows = $t->cget(-fixedrows);
- my $fcols = $t->cget(-fixedcolumns);
- my $sb = $t->cget(-scrollbars);
- my $H = $t->Height;
- my $W = $t->Width;
- my $tadj = $bw;
- my $badj = $bw;
- my $ladj = $bw;
- my $radj = $bw;
- my @xs = ($W,0,0,0);
- my @ys = (0,$H,0,0);
- my $xsb;
- my $ysb;
-
- my $why = $t->{LayoutPending};
- $t->{LayoutPending} = 0;
-
- if ($sb =~ /[ns]/)
- {
- $t->{xsb} = $t->Scrollbar(-orient => 'horizontal', -command => ['xview' => $t]) unless (defined $t->{xsb});
- $xsb = $t->{xsb};
- $t->Advertise('xscrollbar' => $xsb);
- $xs[3] = $xsb->ReqHeight;
- if ($sb =~ /n/)
- {
- $xs[1] = $tadj;
- $tadj += $xs[3];
- }
- else
- {
- $badj += $xs[3];
- $xs[1] = $H-$badj;
- }
- }
- else
- {
- $t->{xsb}->UnmapWindow if (defined $t->{xsb});
- }
-
- if ($sb =~ /[ew]/)
- {
- $t->{ysb} = $t->Scrollbar(-orient => 'vertical', -command => ['yview' => $t]) unless (defined $t->{ysb});
- $ysb = $t->{ysb};
- $t->Advertise('yscrollbar' => $ysb);
- $ys[2] = $ysb->ReqWidth;
- if ($sb =~ /w/)
- {
- $ys[0] = $ladj;
- $ladj += $ys[2];
- }
- else
- {
- $radj += $ys[2];
- $ys[0] = $W-$radj;
- }
- }
- else
- {
- $t->{ysb}->UnmapWindow if (defined $t->{ysb});
- }
-
- constrain(\$t->{Top}, $t->{Height},$H-($tadj+$badj),$frows);
- constrain(\$t->{Left},$t->{Width}, $W-($ladj+$radj),$fcols);
-
- my $top = $t->{Top}+$frows;
- my $left = $t->{Left}+$fcols;
-
- if ($why & (_ScrollBars|_RowColCount|_SlaveSize))
- {
- # Width and/or Height of element or
- # number of rows and/or columns or
- # scrollbar presence has changed
- my $w = sizeN($t->cget('-columns'),$t->{Width})+$radj+$ladj;
- my $h = sizeN($t->cget('-rows'),$t->{Height})+$tadj+$badj;
- $t->GeometryRequest($w,$h);
- }
-
- if ($rows)
- {
- my $cols = @{$t->{Width}};
- my $yhwm = $top-$frows;
- my $xhwm = $left-$fcols;
- my $y = $tadj;
- my $r;
- for ($r = 0; $r < $rows; $r++)
- {
- my $h = $t->{Height}[$r];
- next unless defined $h;
- if (($r < $top && $r >= $frows) || ($y+$h > $H-$badj))
- {
- if (defined $t->{Row}[$r])
- {
- my $c;
- for ($c = 0; $c < @{$t->{Row}[$r]}; $c++)
- {
- my $s = $t->{Row}[$r][$c];
- if (defined $s)
- {
- $s->UnmapWindow;
- if ($why & 1)
- {
- my $w = $t->{Width}[$c];
- $s->ResizeWindow($w,$h);
- }
- }
- }
- }
- }
- else
- {
- my $hwm = $left-$fcols;
- my $sh = 0;
- my $x = $ladj;
- my $c;
- $ys[1] = $y if ($y < $ys[1] && $r >= $frows);
- for ($c = 0; $c <$cols; $c++)
- {
- my $s = $t->{Row}[$r][$c];
- my $w = $t->{Width}[$c];
- if (($c < $left && $c >= $fcols) || ($x+$w > $W-$radj) )
- {
- if (defined $s)
- {
- $s->UnmapWindow;
- $s->ResizeWindow($w,$h) if ($why & 1);
- }
- }
- else
- {
- $xs[0] = $x if ($x < $xs[0] && $c >= $fcols);
- if (defined $s)
- {
- if ($why & 1)
- {
- $s->MoveResizeWindow($x,$y,$w,$h);
- }
- else
- {
- $s->MoveWindow($x,$y);
- }
- $s->MapWindow;
- }
- $x += $w;
- if ($c >= $fcols)
- {
- $hwm++;
- $sh += $w
- }
- }
- }
- $xhwm = $hwm if ($hwm > $xhwm);
- $xs[2] = $sh if ($sh > $xs[2]);
- $y += $h;
- if ($r >= $frows)
- {
- $ys[3] += $h;
- $yhwm++;
- }
- }
- }
- $t->{Bottom} = $yhwm;
- $t->{Right} = $xhwm;
- if (defined $xsb && $xs[2] > 0)
- {
- $xsb->MoveResizeWindow(@xs);
- $cols -= $fcols;
- if ($cols > 0)
- {
- $xsb->set($t->{Left}/$cols,$t->{Right}/$cols);
- $xsb->MapWindow;
- }
- }
- if (defined $ysb && $ys[3] > 0)
- {
- $ysb->MoveResizeWindow(@ys);
- $rows -= $frows;
- if ($rows > 0)
- {
- $ysb->set($t->{Top}/$rows,$t->{Bottom}/$rows);
- $ysb->MapWindow;
- }
- }
- }
-}
-
-sub QueueLayout
-{
- my ($m,$why) = @_;
- $m->afterIdle(['Layout',$m]) unless ($m->{LayoutPending});
- $m->{LayoutPending} |= $why;
-}
-
-sub SlaveGeometryRequest
-{
- my ($m,$s) = @_;
- my ($row,$col) = @{$m->{Slave}{$s->PathName}};
- my $sw = $s->ReqWidth;
- my $sh = $s->ReqHeight;
- my $sz = 0;
- if ($sw > $m->{Width}[$col])
- {
- $m->{Width}[$col] = $sw;
- $m->QueueLayout(_SlaveSize);
- $sz++;
- }
- if ( (not defined ($m->{Height}[$row])) or $sh > $m->{Height}[$row])
- {
- $m->{Height}[$row] = $sh;
- $m->QueueLayout(_SlaveSize);
- $sz++;
- }
- if (!$sz)
- {
- $s->ResizeWindow($m->{Width}[$col],$m->{Height}[$row]);
- }
-}
-
-sub get
-{
- my ($t,$row,$col) = @_;
- return $t->{Row}[$row][$col];
-}
-
-sub LostSlave
-{
- my ($t,$s) = @_;
- my $info = delete $t->{Slave}{$s->PathName};
- if (defined $info)
- {
- my ($row,$col) = @$info;
- $t->{Row}[$row][$col] = undef;
- $s->UnmapWindow;
- }
- else
- {
- $t->BackTrace('Cannot find' . $s->PathName);
- }
- $t->QueueLayout(_SlaveChange);
-}
-
-sub clear {
- my $self = shift;
- my $rows = $self->cget(-rows);
- my $cols = $self->cget(-columns);
- foreach my $r (0 .. $rows-1) {
- foreach my $c (0 .. $cols-1) {
- my $old = $self->get( $r, $c );
- next unless $old;
- $self->LostSlave($old);
- $old->destroy;
- }
- }
- $self->_init;
- $self->QueueLayout(_SlaveSize);
-}
-
-sub _init {
- my $self = shift;
- $self->{'Width'} = [];
- $self->{'Height'} = [];
- $self->{'Row'} = [];
- $self->{'Slave'} = {};
- $self->{'Top'} = 0;
- $self->{'Left'} = 0;
- $self->{'Bottom'} = 0;
- $self->{'Right'} = 0;
- $self->{LayoutPending} = 0;
-}
-
-sub put
-{
- my ($t,$row,$col,$w) = @_;
- $w = $t->Label(-text => $w) unless (ref $w);
- $t->ManageGeometry($w);
- unless (defined $t->{Row}[$row])
- {
- $t->{Row}[$row] = [];
- $t->{Height}[$row] = 0;
- }
- unless (defined $t->{Width}[$col])
- {
- $t->{Width}[$col] = 0;
- }
- my $old = $t->{Row}[$row][$col];
- if (defined $old)
- {
- $old->UnmanageGeometry;
- $t->LostSlave($old);
- }
- $t->{Row}[$row][$col] = $w;
- $t->{Slave}{$w->PathName} = [$row,$col];
- $t->SlaveGeometryRequest($w);
- $t->QueueLayout(_SlaveChange);
- return $old;
-}
-
-#
-# configure methods
-#
-
-sub scrollbars
-{
- my ($t,$v) = @_;
- if (@_ > 1)
- {
- $t->_configure(-scrollbars => $v);
- $t->QueueLayout(_ScrollBars);
- }
- return $t->_cget('-scrollbars');
-}
-
-sub rows
-{
- my ($t,$r) = @_;
- if (@_ > 1)
- {
- $t->_configure(-rows => $r);
- if ($t->{Row} && @{$t->{Row}} > $r)
- {
- for my $y ($r .. $#{$t->{Row}})
- {
- for my $s (@{$t->{Row}[$y]})
- {
- $s->destroy if $s;
- }
- }
- splice @{ $t->{Row} }, $r;
- }
- $t->QueueLayout(_RowColCount);
- }
- return $t->_cget('-rows');
-}
-
-sub fixedrows
-{
- my ($t,$r) = @_;
- if (@_ > 1)
- {
- $t->_configure(-fixedrows => $r);
- $t->QueueLayout(_RowColCount);
- }
- return $t->_cget('-fixedrows');
-}
-
-sub columns
-{
- my ($t,$r) = @_;
- if (@_ > 1)
- {
- $t->_configure(-columns => $r);
- if ($t->{Row})
- {
- for my $row (@{$t->{Row}})
- {
- for my $s (@$row[$r .. $#$row])
- {
- $s->destroy if $s;
- }
- { # FIXME? - Steve was getting warnings :
- # splice() offset past end of array
- local $^W = 0;
- splice @$row, $r;
- }
- }
- }
- $t->QueueLayout(_RowColCount);
- }
- return $t->_cget('-columns');
-}
-
-sub fixedcolumns
-{
- my ($t,$r) = @_;
- if (@_ > 1)
- {
- $t->_configure(-fixedcolumns => $r);
- $t->QueueLayout(_RowColCount);
- }
- return $t->_cget('-fixedcolumns');
-}
-
-1;
-__END__
-sub Create
-{
- my $t = shift;
- my $r = shift;
- my $c = shift;
- my $kind = shift;
- $t->put($r,$c,$t->$kind(@_));
-}
-
-sub totalColumns
-{
- scalar @{shift->{'Width'}};
-}
-
-sub totalRows
-{
- scalar @{shift->{'Height'}};
-}
-
-sub Posn
-{
- my ($t,$s) = @_;
- my $info = $t->{Slave}{$s->PathName};
- return (wantarray) ? @$info : $info;
-}
-
-sub see
-{
- my $t = shift;
- my ($row,$col) = (@_ == 2) ? @_ : @{$t->{Slave}{$_[0]->PathName}};
- my $see = 1;
- if (($row -= $t->cget('-fixedrows')) >= 0)
- {
- if ($row < $t->{Top})
- {
- $t->{Top} = $row;
- $t->QueueLayout(_ViewChange);
- $see = 0;
- }
- elsif ($row >= $t->{Bottom})
- {
- $t->{Top} += ($row - $t->{Bottom}+1);
- $t->QueueLayout(_ViewChange);
- $see = 0;
- }
- }
- if (($col -= $t->cget('-fixedcolumns')) >= 0)
- {
- if ($col < $t->{Left})
- {
- $t->{Left} = $col;
- $t->QueueLayout(_ViewChange);
- $see = 0;
- }
- elsif ($col >= $t->{Right})
- {
- $t->{Left} += ($col - $t->{Right}+1);
- $t->QueueLayout(_ViewChange);
- $see = 0;
- }
- }
- return $see;
-}
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Table.pod b/Master/tlpkg/tlperl/lib/Tk/Table.pod
deleted file mode 100644
index 02b6690b869..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Table.pod
+++ /dev/null
@@ -1,102 +0,0 @@
-
-=head1 NAME
-
-Tk::Table - Scrollable 2 dimensional table of Tk widgets
-
-=for pm Tk/Table.pm
-
-=for category Tk Geometry Management
-
-=head1 SYNOPSIS
-
- use Tk::Table;
-
- $table = $parent->Table(-rows => number,
- -columns => number,
- -scrollbars => anchor,
- -fixedrows => number,
- -fixedcolumns => number,
- -takefocus => boolean);
-
- $widget = $table->Button(...);
-
- $old = $table->put($row,$col,$widget);
- $old = $table->put($row,$col,"Text"); # simple Label
- $widget = $table->get($row,$col);
-
- $cols = $table->totalColumns;
- $rows = $table->totalRows;
-
- $table->see($widget);
- $table->see($row,$col);
-
- ($row,$col) = $table->Posn($widget);
-
-=head1 DESCRIPTION
-
-Tk::Table is an all-perl widget/geometry manager which allows a two dimensional
-table of arbitary perl/Tk widgets to be displayed.
-
-Entries in the Table are simply ordinary perl/Tk widgets. They should
-be created with the Table as their parent. Widgets are positioned in the
-table using:
-
- $table->put($row,$col,$widget)
-
-If I<$widget> is not a reference it is treated as a string, and
-a Lable widget is created with the string as its text.
-
-All the widgets in each column are set to the same width - the requested
-width of the widest widget in the column.
-Likewise, all the widgets in each row are set to the same height - the requested
-height of the tallest widget in the column.
-
-A number of rows and/or columns can be marked as 'fixed' - and so can serve
-as 'headings' for the remainder the rows which are scrollable.
-
-The requested size of the table as a whole is such that the number of rows
-specified by -rows (default 10), and number of columns specified by -columns
-(default 10) can be displayed.
-
-If the Table is told it can take the keyboard focus then cursor and scroll
-keys scroll the displayed widgets.
-
-The Table will create and manage its own scrollbars if requested via
--scrollbars.
-
-The table can be emptied using
-
- $table->clear
-
-the widgets which were in the table are destroyed.
-
-
-The Tk::Table widget is derived from a Tk::Frame, so inherits all its
-configure options.
-
-The default focus traversal is giving the focus only to the table
-widget as a whole. To enable focus traversal into table cells (e.g. if
-there are embedded entry widgets), then the option C<-takefocus> has
-to be set to C<0>.
-
-=head1 BUGS / Snags / Possible enhancements
-
-=over 4
-
-=item *
-
-Very large Tables consume a lot of X windows.
-
-=item *
-
-No equivalent of pack's -anchor/-pad etc. options
-
-=back
-
-=head1 SEE ALSO
-
-L<Tk::grid>, L<Tk::HList>, L<Tk::TableMatrix>, L<Tk::MListbox>,
-L<Tk::Columns>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Tcl-perl.pod b/Master/tlpkg/tlperl/lib/Tk/Tcl-perl.pod
deleted file mode 100644
index 2310e0738e4..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Tcl-perl.pod
+++ /dev/null
@@ -1,200 +0,0 @@
-=head1 NAME
-
-Tcl vs perl - very old suspect documentation on porting.
-
-=for category Other Modules and Languages
-
-=head1 DESCRIPTION
-
-This isn't really a .pod yet, nor is it Tcl vs perl
-it is a copy of John's comparison of Malcolm's original perl/Tk
-port with the current one. It is also out-of-date in places.
-
- From: john@WPI.EDU (John Stoffel )
-
- Here are some thoughts on the new Tk extension and how I think the
- organization of the commands looks. Mostly, I'm happy with it, it
- makes some things more organized and more consistent with tcl/tk, but
- since the overlying language is so different, I don't think we need to
- follow exactly the tcl/tk model for how to call the language.
-
- The basic structure of the Tk program is:
-
- require Tk;
-
- $top = MainWindow->new();
-
- #
- # create widgets
- #
-
- Tk::MainLoop;
-
- sub method1 {
- }
-
- sub methodN {
- }
-
- This is pretty much the same as tkperl5a5, with some cosmetic naming
- changes, and some more useful command name and usage changes. A quick
- comparison in no particular order follows:
-
- tkperl5a5 Tk
- ------------------------------- -----------------------------------
- $top=tkinit(name,display,sync); $top=MainWindow->new();
-
- tkpack $w, ... ; $w->pack(...)
-
- $w = Class::new($top, ...); $w = $top->Class(...);
-
- tkmainloop; Tk::MainLoop;
-
- tkbind($w,"<key>",sub); $w->bind("<key>",sub);
-
- tkdelete($w, ...); $w->delete(...);
-
- $w->scanmark(...); $w->scan("mark", ...);
-
- $w->scandragto(...); $w->scan("dragto", ...);
-
- $w->tkselect(); $w->Select();
-
- $w->selectadjust(...); $w->selection("adjust", ...);
-
- $w->selectto(...); $w->selection("to", ...);
-
- $w->selectfrom(...); $w->selection("from", ...);
-
- $w->tkindex(...); $w->index(...);
-
- tclcmd("xxx",...); &Tk::xxx(...) # all Tk commands, but no Tcl at all
-
- tclcmd("winfo", xxx, $w, ...); $w->xxx(...);
-
- $w->mark(...);
-
- $w->tag(...);
-
- $w->grabstatus(); $w->grab("status");
-
- $w->grabrelease(...); $w->grab("release", ...);
-
- focus($w); $w->focus;
-
- update(); Tk->update();
-
- idletasks(); Tk->update("idletasks");
-
- wm("cmd",$w, ...); $w->cmd(...);
-
- destroy($w); $w->destroy();
-
- Tk::option(...);
- $w->OptionGet(name,Class)
-
- $w->place(...)
-
- Tk::property(...);
-
- $w = Entry::new($parent,...)
-
- is now
-
- $w = $parent->Entry(...)
-
- As this allows new to be inherited from a Window class.
-
- -method=>x,-slave=>y
-
- is now
-
- -command => [x,y]
-
- 1st element of list is treated as "method" if y is an object reference.
- (You can have -command => [a,b,c,d,e] too; b..e get passed as args).
-
- Object references are now hashes rather than scalars and there
- is only ever one such per window. The Tcl_CmdInfo and PathName
- are entries in the hash.
-
- (This allows derived classes to
- re-bless the hash and keep their on stuff in it too.)
-
- Tk's "Tcl_Interp" is in fact a ref to "." window.
- You can find all the Tk windows descended from it as their object
- references get added (by PathName) into this hash.
- $w->MainWindow returns this hash from any window.
-
- I think that it should extend to multiple tkinits / Tk->news
- with different Display's - if Tk code does.
-
- Finally "bind" passes window as "extra" (or only)
- argument. Thus
-
- Tk::Button->bind(<Any-Enter>,"Enter");
-
- Binds Enter events to Tk::Button::Enter by default
- but gets called as $w->Enter so derived class of Button can just
- define its own Enter method. &EvWref and associated globals and race
- conditions are no longer needed.
-
- One thing to beware of : commands bound to events with $widget->bind
- follow same pattern, but get passed extra args :
-
- $widget->bind(<Any-1>,[sub {print shift}, $one, $two ]);
-
- When sub gets called it has :
-
- $widget $one $two
-
- passed.
-
- 1st extra arg is reference to the per-widget hash that serves as the
- perl object for the widget.
-
- Every time an XEvent a reference to a special class is placed
- in the widget hash. It can be retrieved by $w->XEvent method.
-
- The methods of the XEvent class are the
- Tcl/Tk % special characters.
-
- Thus:
-
- $widget->bind(<Any-KeyPress>,
- sub {
- my $w = shift;
- my $e = $w->XEvent;
- print $w->PathName," ",$e->A," pressed ,$e->xy,"\n");
- });
-
- XEvent->xy is a special case which returns "@" . $e->x . "," . $e->y
- which is common in Text package.
-
- Because of passing a blessed widget hash to "bound" subs they can be
- bound to (possibly inherited) methods of the widget's class:
-
- Class->bind(<Any-Down>,Down);
-
- sub Class::Down
- {
- my $w = shift;
- # handle down arrow
- }
-
- Also:
-
- -command and friends can take a list the 1st element can be a ref to
- as sub or a method name. Remaining elements are passed as args to the
- sub at "invoke" time. Thus :
-
- $b= $w->Button(blah blah, '-command' => [sub{print shift} , $fred ]);
-
- Should do the trick, provided $fred is defined at time of button creation.
-
- Thus 1st element of list is equivalent to Malcolm's -method and second
- would be his -slave. Any further elements are a bonus and avoid
- having to pass ref to an array/hash as a slave.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Text.pm b/Master/tlpkg/tlperl/lib/Tk/Text.pm
deleted file mode 100644
index bef423c0afb..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Text.pm
+++ /dev/null
@@ -1,1673 +0,0 @@
-# text.tcl --
-#
-# This file defines the default bindings for Tk text widgets.
-#
-# @(#) text.tcl 1.18 94/12/17 16:05:26
-#
-# Copyright (c) 1992-1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
-# perl/Tk version:
-# Copyright (c) 1995-2004 Nick Ing-Simmons
-# Copyright (c) 1999 Greg London
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-package Tk::Text;
-use AutoLoader;
-use Carp;
-use strict;
-
-use Text::Tabs;
-
-use vars qw($VERSION);
-#$VERSION = sprintf '4.%03d', q$Revision: #24 $ =~ /\D(\d+)\s*$/;
-$VERSION = '4.030';
-
-use Tk qw(Ev $XS_VERSION);
-use base qw(Tk::Clipboard Tk::Widget);
-
-Construct Tk::Widget 'Text';
-
-bootstrap Tk::Text;
-
-sub Tk_cmd { \&Tk::text }
-
-sub Tk::Widget::ScrlText { shift->Scrolled('Text' => @_) }
-
-Tk::Methods('bbox','compare','debug','delete','dlineinfo','dump','edit',
- 'get','image','index','insert','mark','scan','search',
- 'see','tag','window','xview','yview');
-
-use Tk::Submethods ( 'mark' => [qw(gravity names next previous set unset)],
- 'scan' => [qw(mark dragto)],
- 'tag' => [qw(add bind cget configure delete lower
- names nextrange prevrange raise ranges remove)],
- 'window' => [qw(cget configure create names)],
- 'image' => [qw(cget configure create names)],
- 'xview' => [qw(moveto scroll)],
- 'yview' => [qw(moveto scroll)],
- 'edit' => [qw(modified redo reset separator undo)],
- );
-
-sub Tag;
-sub Tags;
-
-sub bindRdOnly
-{
-
- my ($class,$mw) = @_;
-
- # Standard Motif bindings:
- $mw->bind($class,'<Meta-B1-Motion>','NoOp');
- $mw->bind($class,'<Meta-1>','NoOp');
- $mw->bind($class,'<Alt-KeyPress>','NoOp');
- $mw->bind($class,'<Meta-KeyPress>','NoOp');
- $mw->bind($class,'<Control-KeyPress>','NoOp');
- $mw->bind($class,'<Escape>','unselectAll');
-
- $mw->bind($class,'<1>',['Button1',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B1-Motion>','B1_Motion' ) ;
- $mw->bind($class,'<B1-Leave>','B1_Leave' ) ;
- $mw->bind($class,'<B1-Enter>','CancelRepeat');
- $mw->bind($class,'<ButtonRelease-1>','CancelRepeat');
- $mw->bind($class,'<Control-1>',['markSet','insert',Ev('@')]);
-
- $mw->bind($class,'<Double-1>','selectWord' ) ;
- $mw->bind($class,'<Triple-1>','selectLine' ) ;
- $mw->bind($class,'<Shift-1>','adjustSelect' ) ;
- $mw->bind($class,'<Double-Shift-1>',['SelectTo',Ev('@'),'word']);
- $mw->bind($class,'<Triple-Shift-1>',['SelectTo',Ev('@'),'line']);
-
- $mw->bind($class,'<Left>',['SetCursor',Ev('index','insert-1c')]);
- $mw->bind($class,'<Shift-Left>',['KeySelect',Ev('index','insert-1c')]);
- $mw->bind($class,'<Control-Left>',['SetCursor',Ev('index','insert-1c wordstart')]);
- $mw->bind($class,'<Shift-Control-Left>',['KeySelect',Ev('index','insert-1c wordstart')]);
-
- $mw->bind($class,'<Right>',['SetCursor',Ev('index','insert+1c')]);
- $mw->bind($class,'<Shift-Right>',['KeySelect',Ev('index','insert+1c')]);
- $mw->bind($class,'<Control-Right>',['SetCursor',Ev('index','insert+1c wordend')]);
- $mw->bind($class,'<Shift-Control-Right>',['KeySelect',Ev('index','insert wordend')]);
-
- $mw->bind($class,'<Up>',['SetCursor',Ev('UpDownLine',-1)]);
- $mw->bind($class,'<Shift-Up>',['KeySelect',Ev('UpDownLine',-1)]);
- $mw->bind($class,'<Control-Up>',['SetCursor',Ev('PrevPara','insert')]);
- $mw->bind($class,'<Shift-Control-Up>',['KeySelect',Ev('PrevPara','insert')]);
-
- $mw->bind($class,'<Down>',['SetCursor',Ev('UpDownLine',1)]);
- $mw->bind($class,'<Shift-Down>',['KeySelect',Ev('UpDownLine',1)]);
- $mw->bind($class,'<Control-Down>',['SetCursor',Ev('NextPara','insert')]);
- $mw->bind($class,'<Shift-Control-Down>',['KeySelect',Ev('NextPara','insert')]);
-
- $mw->bind($class,'<Home>',['SetCursor','insert linestart']);
- $mw->bind($class,'<Shift-Home>',['KeySelect','insert linestart']);
- $mw->bind($class,'<Control-Home>',['SetCursor','1.0']);
- $mw->bind($class,'<Control-Shift-Home>',['KeySelect','1.0']);
-
- $mw->bind($class,'<End>',['SetCursor','insert lineend']);
- $mw->bind($class,'<Shift-End>',['KeySelect','insert lineend']);
- $mw->bind($class,'<Control-End>',['SetCursor','end-1char']);
- $mw->bind($class,'<Control-Shift-End>',['KeySelect','end-1char']);
-
- $mw->bind($class,'<Prior>',['SetCursor',Ev('ScrollPages',-1)]);
- $mw->bind($class,'<Shift-Prior>',['KeySelect',Ev('ScrollPages',-1)]);
- $mw->bind($class,'<Control-Prior>',['xview','scroll',-1,'page']);
-
- $mw->bind($class,'<Next>',['SetCursor',Ev('ScrollPages',1)]);
- $mw->bind($class,'<Shift-Next>',['KeySelect',Ev('ScrollPages',1)]);
- $mw->bind($class,'<Control-Next>',['xview','scroll',1,'page']);
-
- $mw->bind($class,'<Shift-Tab>', 'NoOp'); # Needed only to keep <Tab> binding from triggering; does not have to actually do anything.
- $mw->bind($class,'<Control-Tab>','focusNext');
- $mw->bind($class,'<Control-Shift-Tab>','focusPrev');
-
- $mw->bind($class,'<Control-space>',['markSet','anchor','insert']);
- $mw->bind($class,'<Select>',['markSet','anchor','insert']);
- $mw->bind($class,'<Control-Shift-space>',['SelectTo','insert','char']);
- $mw->bind($class,'<Shift-Select>',['SelectTo','insert','char']);
- $mw->bind($class,'<Control-slash>','selectAll');
- $mw->bind($class,'<Control-backslash>','unselectAll');
-
- if (!$Tk::strictMotif)
- {
- $mw->bind($class,'<Control-a>', ['SetCursor','insert linestart']);
- $mw->bind($class,'<Control-b>', ['SetCursor','insert-1c']);
- $mw->bind($class,'<Control-e>', ['SetCursor','insert lineend']);
- $mw->bind($class,'<Control-f>', ['SetCursor','insert+1c']);
- $mw->bind($class,'<Meta-b>', ['SetCursor','insert-1c wordstart']);
- $mw->bind($class,'<Meta-f>', ['SetCursor','insert wordend']);
- $mw->bind($class,'<Meta-less>', ['SetCursor','1.0']);
- $mw->bind($class,'<Meta-greater>', ['SetCursor','end-1c']);
-
- $mw->bind($class,'<Control-n>', ['SetCursor',Ev('UpDownLine',1)]);
- $mw->bind($class,'<Control-p>', ['SetCursor',Ev('UpDownLine',-1)]);
-
- $mw->bind($class,'<2>',['Button2',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B2-Motion>',['Motion2',Ev('x'),Ev('y')]);
- }
- $mw->bind($class,'<Destroy>','Destroy');
- $mw->bind($class, '<3>', ['PostPopupMenu', Ev('X'), Ev('Y')] );
- $mw->YMouseWheelBind($class);
- $mw->XMouseWheelBind($class);
-
- $mw->MouseWheelBind($class);
-
- return $class;
-}
-
-sub selectAll
-{
- my ($w) = @_;
- $w->tagAdd('sel','1.0','end');
-}
-
-sub unselectAll
-{
- my ($w) = @_;
- $w->tagRemove('sel','1.0','end');
-}
-
-sub adjustSelect
-{
- my ($w) = @_;
- my $Ev = $w->XEvent;
- $w->ResetAnchor($Ev->xy);
- $w->SelectTo($Ev->xy,'char')
-}
-
-sub selectLine
-{
- my ($w) = @_;
- my $Ev = $w->XEvent;
- $w->SelectTo($Ev->xy,'line');
- Tk::catch { $w->markSet('insert','sel.first') };
-}
-
-sub selectWord
-{
- my ($w) = @_;
- my $Ev = $w->XEvent;
- $w->SelectTo($Ev->xy,'word');
- Tk::catch { $w->markSet('insert','sel.first') }
-}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $class->SUPER::ClassInit($mw);
-
- $class->bindRdOnly($mw);
-
- $mw->bind($class,'<Tab>', 'insertTab');
- $mw->bind($class,'<Control-i>', ['Insert',"\t"]);
- $mw->bind($class,'<Return>', ['Insert',"\n"]);
- $mw->bind($class,'<Delete>','Delete');
- $mw->bind($class,'<BackSpace>','Backspace');
- $mw->bind($class,'<Insert>', \&ToggleInsertMode ) ;
- $mw->bind($class,'<KeyPress>',['InsertKeypress',Ev('A')]);
-
- $mw->bind($class,'<F1>', 'clipboardColumnCopy');
- $mw->bind($class,'<F2>', 'clipboardColumnCut');
- $mw->bind($class,'<F3>', 'clipboardColumnPaste');
-
- # Additional emacs-like bindings:
-
- if (!$Tk::strictMotif)
- {
- $mw->bind($class,'<Control-d>',['delete','insert']);
- $mw->bind($class,'<Control-k>','deleteToEndofLine') ;
- $mw->bind($class,'<Control-o>','openLine');
- $mw->bind($class,'<Control-t>','Transpose');
- $mw->bind($class,'<Meta-d>',['delete','insert','insert wordend']);
- $mw->bind($class,'<Meta-BackSpace>',['delete','insert-1c wordstart','insert']);
-
- # A few additional bindings of my own.
- $mw->bind($class,'<Control-h>','deleteBefore');
- $mw->bind($class,'<ButtonRelease-2>','ButtonRelease2');
- }
-#JD# $Tk::prevPos = undef;
- return $class;
-}
-
-sub insertTab
-{
- my ($w) = @_;
- $w->Insert("\t");
- $w->focus;
- $w->break
-}
-
-sub deleteToEndofLine
-{
- my ($w) = @_;
- if ($w->compare('insert','==','insert lineend'))
- {
- $w->delete('insert')
- }
- else
- {
- $w->delete('insert','insert lineend')
- }
-}
-
-sub openLine
-{
- my ($w) = @_;
- $w->insert('insert',"\n");
- $w->markSet('insert','insert-1c')
-}
-
-sub Button2
-{
- my ($w,$x,$y) = @_;
- $w->scan('mark',$x,$y);
- $Tk::x = $x;
- $Tk::y = $y;
- $Tk::mouseMoved = 0;
-}
-
-sub Motion2
-{
- my ($w,$x,$y) = @_;
- $Tk::mouseMoved = 1 if ($x != $Tk::x || $y != $Tk::y);
- $w->scan('dragto',$x,$y) if ($Tk::mouseMoved);
-}
-
-sub ButtonRelease2
-{
- my ($w) = @_;
- my $Ev = $w->XEvent;
- if (!$Tk::mouseMoved)
- {
- Tk::catch
- {
- $w->mark('set','insert',$Ev->xy);
- $w->insert($Ev->xy,$w->SelectionGet);
- $w->focus if ($w->cget('-state') eq "normal");
- }
- }
-}
-
-sub InsertSelection
-{
- my ($w) = @_;
- Tk::catch { $w->Insert($w->SelectionGet) }
-}
-
-sub Backspace
-{
- my ($w) = @_;
- my $sel = Tk::catch { $w->tag('nextrange','sel','1.0','end') };
- if (defined $sel)
- {
- $w->delete('sel.first','sel.last');
- return;
- }
- $w->deleteBefore;
-}
-
-sub deleteBefore
-{
- my ($w) = @_;
- if ($w->compare('insert','!=','1.0'))
- {
- $w->delete('insert-1c');
- $w->see('insert')
- }
-}
-
-sub Delete
-{
- my ($w) = @_;
- my $sel = Tk::catch { $w->tag('nextrange','sel','1.0','end') };
- if (defined $sel)
- {
- $w->delete('sel.first','sel.last')
- }
- else
- {
- $w->delete('insert');
- $w->see('insert')
- }
-}
-
-# Button1 --
-# This procedure is invoked to handle button-1 presses in text
-# widgets. It moves the insertion cursor, sets the selection anchor,
-# and claims the input focus.
-#
-# Arguments:
-# w - The text window in which the button was pressed.
-# x - The x-coordinate of the button press.
-# y - The x-coordinate of the button press.
-sub Button1
-{
- my ($w,$x,$y) = @_;
- $Tk::selectMode = 'char';
- $Tk::mouseMoved = 0;
- $w->SetCursor('@'.$x.','.$y);
- $w->markSet('anchor','insert');
- $w->focus() if ($w->cget('-state') eq 'normal');
-}
-
-sub B1_Motion
-{
- my ($w) = @_;
- return unless defined $Tk::mouseMoved;
- my $Ev = $w->XEvent;
- $Tk::x = $Ev->x;
- $Tk::y = $Ev->y;
- $w->SelectTo($Ev->xy)
-}
-
-sub B1_Leave
-{
- my ($w) = @_;
- my $Ev = $w->XEvent;
- $Tk::x = $Ev->x;
- $Tk::y = $Ev->y;
- $w->AutoScan;
-}
-
-# SelectTo --
-# This procedure is invoked to extend the selection, typically when
-# dragging it with the mouse. Depending on the selection mode (character,
-# word, line) it selects in different-sized units. This procedure
-# ignores mouse motions initially until the mouse has moved from
-# one character to another or until there have been multiple clicks.
-#
-# Arguments:
-# w - The text window in which the button was pressed.
-# index - Index of character at which the mouse button was pressed.
-sub SelectTo
-{
- my ($w, $index, $mode)= @_;
- $Tk::selectMode = $mode if defined ($mode);
- my $cur = $w->index($index);
- my $anchor = Tk::catch { $w->index('anchor') };
- if (!defined $anchor)
- {
- $w->markSet('anchor',$anchor = $cur);
- $Tk::mouseMoved = 0;
- }
- elsif ($w->compare($cur,'!=',$anchor))
- {
- $Tk::mouseMoved = 1;
- }
- $Tk::selectMode = 'char' unless (defined $Tk::selectMode);
- $mode = $Tk::selectMode;
- my ($first,$last);
- if ($mode eq 'char')
- {
- if ($w->compare($cur,'<','anchor'))
- {
- $first = $cur;
- $last = 'anchor';
- }
- else
- {
- $first = 'anchor';
- $last = $cur
- }
- }
- elsif ($mode eq 'word')
- {
- if ($w->compare($cur,'<','anchor'))
- {
- $first = $w->index("$cur wordstart");
- $last = $w->index('anchor - 1c wordend')
- }
- else
- {
- $first = $w->index('anchor wordstart');
- $last = $w->index("$cur wordend")
- }
- }
- elsif ($mode eq 'line')
- {
- if ($w->compare($cur,'<','anchor'))
- {
- $first = $w->index("$cur linestart");
- $last = $w->index('anchor - 1c lineend + 1c')
- }
- else
- {
- $first = $w->index('anchor linestart');
- $last = $w->index("$cur lineend + 1c")
- }
- }
- if ($Tk::mouseMoved || $Tk::selectMode ne 'char')
- {
- $w->tagRemove('sel','1.0',$first);
- $w->tagAdd('sel',$first,$last);
- $w->tagRemove('sel',$last,'end');
- $w->idletasks;
- }
-}
-# AutoScan --
-# This procedure is invoked when the mouse leaves a text window
-# with button 1 down. It scrolls the window up, down, left, or right,
-# depending on where the mouse is (this information was saved in
-# tkPriv(x) and tkPriv(y)), and reschedules itself as an 'after'
-# command so that the window continues to scroll until the mouse
-# moves back into the window or the mouse button is released.
-#
-# Arguments:
-# w - The text window.
-sub AutoScan
-{
- my ($w) = @_;
- if ($Tk::y >= $w->height)
- {
- $w->yview('scroll',2,'units')
- }
- elsif ($Tk::y < 0)
- {
- $w->yview('scroll',-2,'units')
- }
- elsif ($Tk::x >= $w->width)
- {
- $w->xview('scroll',2,'units')
- }
- elsif ($Tk::x < 0)
- {
- $w->xview('scroll',-2,'units')
- }
- else
- {
- return;
- }
- $w->SelectTo('@' . $Tk::x . ','. $Tk::y);
- $w->RepeatId($w->after(50,['AutoScan',$w]));
-}
-# SetCursor
-# Move the insertion cursor to a given position in a text. Also
-# clears the selection, if there is one in the text, and makes sure
-# that the insertion cursor is visible.
-#
-# Arguments:
-# w - The text window.
-# pos - The desired new position for the cursor in the window.
-sub SetCursor
-{
- my ($w,$pos) = @_;
- $pos = 'end - 1 chars' if $w->compare($pos,'==','end');
- $w->markSet('insert',$pos);
- $w->unselectAll;
- $w->see('insert');
-}
-# KeySelect
-# This procedure is invoked when stroking out selections using the
-# keyboard. It moves the cursor to a new position, then extends
-# the selection to that position.
-#
-# Arguments:
-# w - The text window.
-# new - A new position for the insertion cursor (the cursor has not
-# actually been moved to this position yet).
-sub KeySelect
-{
- my ($w,$new) = @_;
- my ($first,$last);
- if (!defined $w->tag('ranges','sel'))
- {
- # No selection yet
- $w->markSet('anchor','insert');
- if ($w->compare($new,'<','insert'))
- {
- $w->tagAdd('sel',$new,'insert')
- }
- else
- {
- $w->tagAdd('sel','insert',$new)
- }
- }
- else
- {
- # Selection exists
- if ($w->compare($new,'<','anchor'))
- {
- $first = $new;
- $last = 'anchor'
- }
- else
- {
- $first = 'anchor';
- $last = $new
- }
- $w->tagRemove('sel','1.0',$first);
- $w->tagAdd('sel',$first,$last);
- $w->tagRemove('sel',$last,'end')
- }
- $w->markSet('insert',$new);
- $w->see('insert');
- $w->idletasks;
-}
-# ResetAnchor --
-# Set the selection anchor to whichever end is farthest from the
-# index argument. One special trick: if the selection has two or
-# fewer characters, just leave the anchor where it is. In this
-# case it does not matter which point gets chosen for the anchor,
-# and for the things like Shift-Left and Shift-Right this produces
-# better behavior when the cursor moves back and forth across the
-# anchor.
-#
-# Arguments:
-# w - The text widget.
-# index - Position at which mouse button was pressed, which determines
-# which end of selection should be used as anchor point.
-sub ResetAnchor
-{
- my ($w,$index) = @_;
- if (!defined $w->tag('ranges','sel'))
- {
- $w->markSet('anchor',$index);
- return;
- }
- my $a = $w->index($index);
- my $b = $w->index('sel.first');
- my $c = $w->index('sel.last');
- if ($w->compare($a,'<',$b))
- {
- $w->markSet('anchor','sel.last');
- return;
- }
- if ($w->compare($a,'>',$c))
- {
- $w->markSet('anchor','sel.first');
- return;
- }
- my ($lineA,$chA) = split(/\./,$a);
- my ($lineB,$chB) = split(/\./,$b);
- my ($lineC,$chC) = split(/\./,$c);
- if ($lineB < $lineC+2)
- {
- my $total = length($w->get($b,$c));
- if ($total <= 2)
- {
- return;
- }
- if (length($w->get($b,$a)) < $total/2)
- {
- $w->markSet('anchor','sel.last')
- }
- else
- {
- $w->markSet('anchor','sel.first')
- }
- return;
- }
- if ($lineA-$lineB < $lineC-$lineA)
- {
- $w->markSet('anchor','sel.last')
- }
- else
- {
- $w->markSet('anchor','sel.first')
- }
-}
-
-########################################################################
-sub markExists
-{
- my ($w, $markname)=@_;
- my $mark_exists=0;
- my @markNames_list = $w->markNames;
- foreach my $mark (@markNames_list)
- { if ($markname eq $mark) {$mark_exists=1;last;} }
- return $mark_exists;
-}
-
-########################################################################
-sub OverstrikeMode
-{
- my ($w,$mode) = @_;
-
- $w->{'OVERSTRIKE_MODE'} =0 unless exists($w->{'OVERSTRIKE_MODE'});
-
- $w->{'OVERSTRIKE_MODE'}=$mode if (@_ > 1);
-
- return $w->{'OVERSTRIKE_MODE'};
-}
-
-########################################################################
-# pressed the <Insert> key, just above 'Del' key.
-# this toggles between insert mode and overstrike mode.
-sub ToggleInsertMode
-{
- my ($w)=@_;
- $w->OverstrikeMode(!$w->OverstrikeMode);
-}
-
-########################################################################
-sub InsertKeypress
-{
- my ($w,$char)=@_;
- return unless length($char);
- if ($w->OverstrikeMode)
- {
- my $current=$w->get('insert');
- $w->delete('insert') unless($current eq "\n");
- }
- $w->Insert($char);
-}
-
-########################################################################
-sub GotoLineNumber
-{
- my ($w,$line_number) = @_;
- $line_number=~ s/^\s+|\s+$//g;
- return if $line_number =~ m/\D/;
- my ($last_line,$junk) = split(/\./, $w->index('end'));
- if ($line_number > $last_line) {$line_number = $last_line; }
- $w->{'LAST_GOTO_LINE'} = $line_number;
- $w->markSet('insert', $line_number.'.0');
- $w->see('insert');
-}
-
-########################################################################
-sub GotoLineNumberPopUp
-{
- my ($w)=@_;
- my $popup = $w->{'GOTO_LINE_NUMBER_POPUP'};
-
- unless (defined($w->{'LAST_GOTO_LINE'}))
- {
- my ($line,$col) = split(/\./, $w->index('insert'));
- $w->{'LAST_GOTO_LINE'} = $line;
- }
-
- ## if anything is selected when bring up the pop-up, put it in entry window.
- my $selected;
- eval { $selected = $w->SelectionGet(-selection => "PRIMARY"); };
- unless ($@)
- {
- if (defined($selected) and length($selected))
- {
- unless ($selected =~ /\D/)
- {
- $w->{'LAST_GOTO_LINE'} = $selected;
- }
- }
- }
- unless (defined($popup))
- {
- require Tk::DialogBox;
- $popup = $w->DialogBox(-buttons => [qw[Ok Cancel]],-title => "Goto Line Number", -popover => $w,
- -command => sub { $w->GotoLineNumber($w->{'LAST_GOTO_LINE'}) if $_[0] eq 'Ok'});
- $w->{'GOTO_LINE_NUMBER_POPUP'}=$popup;
- $popup->resizable('no','no');
- my $frame = $popup->Frame->pack(-fill => 'x');
- $frame->Label(-text=>'Enter line number: ')->pack(-side => 'left');
- my $entry = $frame->Entry(-background=>'white', -width=>25,
- -textvariable => \$w->{'LAST_GOTO_LINE'})->pack(-side =>'left',-fill => 'x');
- $popup->Advertise(entry => $entry);
- }
- $popup->Popup;
- $popup->Subwidget('entry')->focus;
- $popup->Wait;
-}
-
-########################################################################
-
-sub getSelected
-{
- shift->GetTextTaggedWith('sel');
-}
-
-sub deleteSelected
-{
- shift->DeleteTextTaggedWith('sel');
-}
-
-sub GetTextTaggedWith
-{
- my ($w,$tag) = @_;
-
- my @ranges = $w->tagRanges($tag);
- my $range_total = @ranges;
- my $return_text='';
-
- # if nothing selected, then ignore
- if ($range_total == 0) {return $return_text;}
-
- # for every range-pair, get selected text
- while(@ranges)
- {
- my $first = shift(@ranges);
- my $last = shift(@ranges);
- my $text = $w->get($first , $last);
- if(defined($text))
- {$return_text = $return_text . $text;}
- # if there is more tagged text, separate with an end of line character
- if(@ranges)
- {$return_text = $return_text . "\n";}
- }
- return $return_text;
-}
-
-########################################################################
-sub DeleteTextTaggedWith
-{
- my ($w,$tag) = @_;
- my @ranges = $w->tagRanges($tag);
- my $range_total = @ranges;
-
- # if nothing tagged with that tag, then ignore
- if ($range_total == 0) {return;}
-
- # insert marks where selections are located
- # marks will move with text even as text is inserted and deleted
- # in a previous selection.
- for (my $i=0; $i<$range_total; $i++)
- { $w->markSet('mark_tag_'.$i => $ranges[$i]); }
-
- # for every selected mark pair, insert new text and delete old text
- for (my $i=0; $i<$range_total; $i=$i+2)
- {
- my $first = $w->index('mark_tag_'.$i);
- my $last = $w->index('mark_tag_'.($i+1));
-
- my $text = $w->delete($first , $last);
- }
-
- # delete the marks
- for (my $i=0; $i<$range_total; $i++)
- { $w->markUnset('mark_tag_'.$i); }
-}
-
-
-########################################################################
-sub FindAll
-{
- my ($w,$mode, $case, $pattern ) = @_;
- ### 'sel' tags accumulate, need to remove any previous existing
- $w->unselectAll;
-
- my $match_length=0;
- my $start_index;
- my $end_index = '1.0';
-
- while(defined($end_index))
- {
- if ($case eq '-nocase')
- {
- $start_index = $w->search(
- $mode,
- $case,
- -count => \$match_length,
- "--",
- $pattern ,
- $end_index,
- 'end');
- }
- else
- {
- $start_index = $w->search(
- $mode,
- -count => \$match_length,
- "--",
- $pattern ,
- $end_index,
- 'end');
- }
-
- unless(defined($start_index) && $start_index) {last;}
-
- my ($line,$col) = split(/\./, $start_index);
- $col = $col + $match_length;
- $end_index = $line.'.'.$col;
- $w->tagAdd('sel', $start_index, $end_index);
- }
-}
-
-########################################################################
-# get current selected text and search for the next occurrence
-sub FindSelectionNext
-{
- my ($w) = @_;
- my $selected;
- eval {$selected = $w->SelectionGet(-selection => "PRIMARY"); };
- return if($@);
- return unless (defined($selected) and length($selected));
-
- $w->FindNext('-forward', '-exact', '-case', $selected);
-}
-
-########################################################################
-# get current selected text and search for the previous occurrence
-sub FindSelectionPrevious
-{
- my ($w) = @_;
- my $selected;
- eval {$selected = $w->SelectionGet(-selection => "PRIMARY"); };
- return if($@);
- return unless (defined($selected) and length($selected));
-
- $w->FindNext('-backward', '-exact', '-case', $selected);
-}
-
-
-
-########################################################################
-sub FindNext
-{
- my ($w,$direction, $mode, $case, $pattern ) = @_;
-
- ## if searching forward, start search at end of selected block
- ## if backward, start search from start of selected block.
- ## dont want search to find currently selected text.
- ## tag 'sel' may not be defined, use eval loop to trap error
- my $is_forward = $direction =~ m{^-f} && $direction eq substr("-forwards", 0, length($direction));
- eval {
- if ($is_forward)
- {
- $w->markSet('insert', 'sel.last');
- $w->markSet('current', 'sel.last');
- }
- else
- {
- $w->markSet('insert', 'sel.first');
- $w->markSet('current', 'sel.first');
- }
- };
-
- my $saved_index=$w->index('insert');
-
- # remove any previous existing tags
- $w->unselectAll;
-
- my $match_length=0;
- my $start_index;
-
- if ($case eq '-nocase')
- {
- $start_index = $w->search(
- $direction,
- $mode,
- $case,
- -count => \$match_length,
- "--",
- $pattern ,
- 'insert');
- }
- else
- {
- $start_index = $w->search(
- $direction,
- $mode,
- -count => \$match_length,
- "--",
- $pattern ,
- 'insert');
- }
-
- unless(defined($start_index)) { return 0; }
- if(length($start_index) == 0) { return 0; }
-
- my ($line,$col) = split(/\./, $start_index);
- $col = $col + $match_length;
- my $end_index = $line.'.'.$col;
- $w->tagAdd('sel', $start_index, $end_index);
-
- $w->see($start_index);
-
- if ($is_forward)
- {
- $w->markSet('insert', $end_index);
- $w->markSet('current', $end_index);
- }
- else
- {
- $w->markSet('insert', $start_index);
- $w->markSet('current', $start_index);
- }
-
- my $compared_index = $w->index('insert');
-
- my $ret_val;
- if ($compared_index eq $saved_index)
- {$ret_val=0;}
- else
- {$ret_val=1;}
- return $ret_val;
-}
-
-########################################################################
-sub FindAndReplaceAll
-{
- my ($w,$mode, $case, $find, $replace ) = @_;
- $w->markSet('insert', '1.0');
- $w->unselectAll;
- while($w->FindNext('-forward', $mode, $case, $find))
- {
- $w->ReplaceSelectionsWith($replace);
- }
-}
-
-########################################################################
-sub ReplaceSelectionsWith
-{
- my ($w,$new_text ) = @_;
-
- my @ranges = $w->tagRanges('sel');
- my $range_total = @ranges;
-
- # if nothing selected, then ignore
- if ($range_total == 0) {return};
-
- # insert marks where selections are located
- # marks will move with text even as text is inserted and deleted
- # in a previous selection.
- for (my $i=0; $i<$range_total; $i++)
- {$w->markSet('mark_sel_'.$i => $ranges[$i]); }
-
- # for every selected mark pair, insert new text and delete old text
- my ($first, $last);
- for (my $i=0; $i<$range_total; $i=$i+2)
- {
- $first = $w->index('mark_sel_'.$i);
- $last = $w->index('mark_sel_'.($i+1));
-
- ##########################################################################
- # eventually, want to be able to get selected text,
- # support regular expression matching, determine replace_text
- # $replace_text = $selected_text=~m/$new_text/ (or whatever would work)
- # will have to pass in mode and case flags.
- # this would allow a regular expression search and replace to be performed
- # example, look for "line (\d+):" and replace with "$1 >" or similar
- ##########################################################################
-
- $w->insert($last, $new_text);
- $w->delete($first, $last);
-
- }
- ############################################################
- # set the insert cursor to the end of the last insertion mark
- $w->markSet('insert',$w->index('mark_sel_'.($range_total-1)));
-
- # delete the marks
- for (my $i=0; $i<$range_total; $i++)
- { $w->markUnset('mark_sel_'.$i); }
-}
-########################################################################
-sub FindAndReplacePopUp
-{
- my ($w)=@_;
- $w->findandreplacepopup(0);
-}
-
-########################################################################
-sub FindPopUp
-{
- my ($w)=@_;
- $w->findandreplacepopup(1);
-}
-
-########################################################################
-
-sub findandreplacepopup
-{
- my ($w,$find_only)=@_;
-
- my $pop = $w->Toplevel;
- $pop->transient($w->toplevel);
- if ($find_only)
- { $pop->title("Find"); }
- else
- { $pop->title("Find and/or Replace"); }
- my $frame = $pop->Frame->pack(-anchor=>'nw');
-
- $frame->Label(-text=>"Direction:")
- ->grid(-row=> 1, -column=>1, -padx=> 20, -sticky => 'nw');
- my $direction = '-forward';
- $frame->Radiobutton(
- -variable => \$direction,
- -text => 'forward',-value => '-forward' )
- ->grid(-row=> 2, -column=>1, -padx=> 20, -sticky => 'nw');
- $frame->Radiobutton(
- -variable => \$direction,
- -text => 'backward',-value => '-backward' )
- ->grid(-row=> 3, -column=>1, -padx=> 20, -sticky => 'nw');
-
- $frame->Label(-text=>"Mode:")
- ->grid(-row=> 1, -column=>2, -padx=> 20, -sticky => 'nw');
- my $mode = '-exact';
- $frame->Radiobutton(
- -variable => \$mode, -text => 'exact',-value => '-exact' )
- ->grid(-row=> 2, -column=>2, -padx=> 20, -sticky => 'nw');
- $frame->Radiobutton(
- -variable => \$mode, -text => 'regexp',-value => '-regexp' )
- ->grid(-row=> 3, -column=>2, -padx=> 20, -sticky => 'nw');
-
- $frame->Label(-text=>"Case:")
- ->grid(-row=> 1, -column=>3, -padx=> 20, -sticky => 'nw');
- my $case = '-case';
- $frame->Radiobutton(
- -variable => \$case, -text => 'case',-value => '-case' )
- ->grid(-row=> 2, -column=>3, -padx=> 20, -sticky => 'nw');
- $frame->Radiobutton(
- -variable => \$case, -text => 'nocase',-value => '-nocase' )
- ->grid(-row=> 3, -column=>3, -padx=> 20, -sticky => 'nw');
-
- ######################################################
- my $find_entry = $pop->Entry(-width=>25);
- $find_entry->focus;
-
- my $donext = sub {$w->FindNext ($direction,$mode,$case,$find_entry->get())};
-
- $find_entry -> pack(-anchor=>'nw', '-expand' => 'yes' , -fill => 'x'); # autosizing
-
- ###### if any $w text is selected, put it in the find entry
- ###### could be more than one text block selected, get first selection
- my @ranges = $w->tagRanges('sel');
- if (@ranges)
- {
- my $first = shift(@ranges);
- my $last = shift(@ranges);
-
- # limit to one line
- my ($first_line, $first_col) = split(/\./,$first);
- my ($last_line, $last_col) = split(/\./,$last);
- unless($first_line == $last_line)
- {$last = $first. ' lineend';}
-
- $find_entry->insert('insert', $w->get($first , $last));
- }
- else
- {
- my $selected;
- eval {$selected=$w->SelectionGet(-selection => "PRIMARY"); };
- if($@) {}
- elsif (defined($selected))
- {$find_entry->insert('insert', $selected);}
- }
-
- $find_entry->icursor(0);
-
- my ($replace_entry,$button_replace,$button_replace_all);
- unless ($find_only)
- {
- $replace_entry = $pop->Entry(-width=>25);
-
- $replace_entry -> pack(-anchor=>'nw', '-expand' => 'yes' , -fill => 'x');
- }
-
-
- my $button_find = $pop->Button(-text=>'Find', -command => $donext, -default => 'active')
- -> pack(-side => 'left');
-
- my $button_find_all = $pop->Button(-text=>'Find All',
- -command => sub {$w->FindAll($mode,$case,$find_entry->get());} )
- ->pack(-side => 'left');
-
- unless ($find_only)
- {
- $button_replace = $pop->Button(-text=>'Replace', -default => 'normal',
- -command => sub {$w->ReplaceSelectionsWith($replace_entry->get());} )
- -> pack(-side =>'left');
- $button_replace_all = $pop->Button(-text=>'Replace All',
- -command => sub {$w->FindAndReplaceAll
- ($mode,$case,$find_entry->get(),$replace_entry->get());} )
- ->pack(-side => 'left');
- }
-
-
- my $button_cancel = $pop->Button(-text=>'Cancel',
- -command => sub {$pop->destroy()} )
- ->pack(-side => 'left');
-
- $find_entry->bind("<Return>" => [$button_find, 'invoke']);
- $find_entry->bind("<Escape>" => [$button_cancel, 'invoke']);
-
- $find_entry->bind("<Return>" => [$button_find, 'invoke']);
- $find_entry->bind("<Escape>" => [$button_cancel, 'invoke']);
-
- $pop->resizable('yes','no');
- return $pop;
-}
-
-# paste clipboard into current location
-sub clipboardPaste
-{
- my ($w) = @_;
- local $@;
- Tk::catch { $w->Insert($w->clipboardGet) };
-}
-
-########################################################################
-# Insert --
-# Insert a string into a text at the point of the insertion cursor.
-# If there is a selection in the text, and it covers the point of the
-# insertion cursor, then delete the selection before inserting.
-#
-# Arguments:
-# w - The text window in which to insert the string
-# string - The string to insert (usually just a single character)
-sub Insert
-{
- my ($w,$string) = @_;
- return unless (defined $string && $string ne '');
- #figure out if cursor is inside a selection
- my @ranges = $w->tagRanges('sel');
- if (@ranges)
- {
- while (@ranges)
- {
- my ($first,$last) = splice(@ranges,0,2);
- if ($w->compare($first,'<=','insert') && $w->compare($last,'>=','insert'))
- {
- $w->ReplaceSelectionsWith($string);
- return;
- }
- }
- }
- # paste it at the current cursor location
- $w->insert('insert',$string);
- $w->see('insert');
-}
-
-# UpDownLine --
-# Returns the index of the character one *display* line above or below the
-# insertion cursor. There are two tricky things here. First,
-# we want to maintain the original column across repeated operations,
-# even though some lines that will get passed through do not have
-# enough characters to cover the original column. Second, do not
-# try to scroll past the beginning or end of the text.
-#
-# This may have some weirdness associated with a proportional font. Ie.
-# the insertion cursor will zigzag up or down according to the width of
-# the character at destination.
-#
-# Arguments:
-# w - The text window in which the cursor is to move.
-# n - The number of lines to move: -1 for up one line,
-# +1 for down one line.
-sub UpDownLine
-{
- my ($w,$n) = @_;
- $w->see('insert');
- my $i = $w->index('insert');
-
- my ($line,$char) = split(/\./,$i);
-
- my $testX; #used to check the "new" position
- my $testY; #used to check the "new" position
-
- (my $bx, my $by, my $bw, my $bh) = $w->bbox($i);
- (my $lx, my $ly, my $lw, my $lh) = $w->dlineinfo($i);
-
- if ( ($n == -1) and ($by <= $bh) )
- {
- #On first display line.. so scroll up and recalculate..
- $w->yview('scroll', -1, 'units');
- unless (($w->yview)[0]) {
- #first line of entire text - keep same position.
- return $i;
- }
- ($bx, $by, $bw, $bh) = $w->bbox($i);
- ($lx, $ly, $lw, $lh) = $w->dlineinfo($i);
- }
- elsif ( ($n == 1) and
- ($ly + $lh) > ( $w->height - 2*$w->cget(-bd) - 2*$w->cget(-highlightthickness) - $lh + 1) )
- {
- #On last display line.. so scroll down and recalculate..
- $w->yview('scroll', 1, 'units');
- ($bx, $by, $bw, $bh) = $w->bbox($i);
- ($lx, $ly, $lw, $lh) = $w->dlineinfo($i);
- }
-
- # Calculate the vertical position of the next display line
- my $Yoffset = 0;
- $Yoffset = $by - $ly + 1 if ($n== -1);
- $Yoffset = $ly + $lh + 1 - $by if ($n == 1);
- $Yoffset*=$n;
- $testY = $by + $Yoffset;
-
- # Save the original 'x' position of the insert cursor if:
- # 1. This is the first time through -- or --
- # 2. The insert cursor position has changed from the previous
- # time the up or down key was pressed -- or --
- # 3. The cursor has reached the beginning or end of the widget.
-
- {
- no warnings 'uninitialized';
- if (not defined $w->{'origx'} or ($w->{'lastindex'} != $i) )
- {
- $w->{'origx'} = $bx;
- }
- }
-
- # Try to keep the same column if possible
- $testX = $w->{'origx'};
-
- # Get the coordinates of the possible new position
- my $testindex = $w->index('@'.$testX.','.$testY );
- $w->see($testindex);
- my ($nx,$ny,$nw,$nh) = $w->bbox($testindex);
-
- # Which side of the character should we position the cursor -
- # mainly for a proportional font
- if ($testX > $nx+$nw/2)
- {
- $testX = $nx+$nw+1;
- }
-
- my $newindex = $w->index('@'.$testX.','.$testY );
-
- if ( $w->compare($newindex,'==','end - 1 char') and ($ny == $ly ) )
- {
- # Then we are trying to the 'end' of the text from
- # the same display line - don't do that
- return $i;
- }
-
- $w->{'lastindex'} = $newindex;
- $w->see($newindex);
- return $newindex;
-}
-
-# PrevPara --
-# Returns the index of the beginning of the paragraph just before a given
-# position in the text (the beginning of a paragraph is the first non-blank
-# character after a blank line).
-#
-# Arguments:
-# w - The text window in which the cursor is to move.
-# pos - Position at which to start search.
-sub PrevPara
-{
- my ($w,$pos) = @_;
- $pos = $w->index("$pos linestart");
- while (1)
- {
- if ($w->get("$pos - 1 line") eq "\n" && $w->get($pos) ne "\n" || $pos eq '1.0' )
- {
- my $string = $w->get($pos,"$pos lineend");
- if ($string =~ /^(\s)+/)
- {
- my $off = length($1);
- $pos = $w->index("$pos + $off chars")
- }
- if ($w->compare($pos,'!=','insert') || $pos eq '1.0')
- {
- return $pos;
- }
- }
- $pos = $w->index("$pos - 1 line")
- }
-}
-# NextPara --
-# Returns the index of the beginning of the paragraph just after a given
-# position in the text (the beginning of a paragraph is the first non-blank
-# character after a blank line).
-#
-# Arguments:
-# w - The text window in which the cursor is to move.
-# start - Position at which to start search.
-sub NextPara
-{
- my ($w,$start) = @_;
- my $pos = $w->index("$start linestart + 1 line");
- while ($w->get($pos) ne "\n")
- {
- if ($w->compare($pos,'==','end'))
- {
- return $w->index('end - 1c');
- }
- $pos = $w->index("$pos + 1 line")
- }
- while ($w->get($pos) eq "\n" )
- {
- $pos = $w->index("$pos + 1 line");
- if ($w->compare($pos,'==','end'))
- {
- return $w->index('end - 1c');
- }
- }
- my $string = $w->get($pos,"$pos lineend");
- if ($string =~ /^(\s+)/)
- {
- my $off = length($1);
- return $w->index("$pos + $off chars");
- }
- return $pos;
-}
-# ScrollPages --
-# This is a utility procedure used in bindings for moving up and down
-# pages and possibly extending the selection along the way. It scrolls
-# the view in the widget by the number of pages, and it returns the
-# index of the character that is at the same position in the new view
-# as the insertion cursor used to be in the old view.
-#
-# Arguments:
-# w - The text window in which the cursor is to move.
-# count - Number of pages forward to scroll; may be negative
-# to scroll backwards.
-sub ScrollPages
-{
- my ($w,$count) = @_;
- my @bbox = $w->bbox('insert');
- $w->yview('scroll',$count,'pages');
- if (!@bbox)
- {
- return $w->index('@' . int($w->height/2) . ',' . 0);
- }
- my $x = int($bbox[0]+$bbox[2]/2);
- my $y = int($bbox[1]+$bbox[3]/2);
- return $w->index('@' . $x . ',' . $y);
-}
-
-sub Contents
-{
- my $w = shift;
- if (@_)
- {
- $w->delete('1.0','end');
- $w->insert('end',shift) while (@_);
- }
- else
- {
- return $w->get('1.0','end -1c');
- }
-}
-
-sub Destroy
-{
- my ($w) = @_;
- delete $w->{_Tags_};
-}
-
-sub Transpose
-{
- my ($w) = @_;
- my $pos = 'insert';
- $pos = $w->index("$pos + 1 char") if ($w->compare($pos,'!=',"$pos lineend"));
- return if ($w->compare("$pos - 1 char",'==','1.0'));
- my $new = $w->get("$pos - 1 char").$w->get("$pos - 2 char");
- $w->delete("$pos - 2 char",$pos);
- $w->insert('insert',$new);
- $w->see('insert');
-}
-
-sub Tag
-{
- my $w = shift;
- my $name = shift;
- Carp::confess('No args') unless (ref $w and defined $name);
- $w->{_Tags_} = {} unless (exists $w->{_Tags_});
- unless (exists $w->{_Tags_}{$name})
- {
- require Tk::Text::Tag;
- $w->{_Tags_}{$name} = 'Tk::Text::Tag'->new($w,$name);
- }
- $w->{_Tags_}{$name}->configure(@_) if (@_);
- return $w->{_Tags_}{$name};
-}
-
-sub Tags
-{
- my ($w,$name) = @_;
- my @result = ();
- foreach $name ($w->tagNames(@_))
- {
- push(@result,$w->Tag($name));
- }
- return @result;
-}
-
-sub TIEHANDLE
-{
- my ($class,$obj) = @_;
- return $obj;
-}
-
-sub PRINT
-{
- my $w = shift;
- # Find out whether 'end' is displayed at the moment
- # Retrieve the position of the bottom of the window as
- # a fraction of the entire contents of the Text widget
- my $yview = ($w->yview)[1];
-
- # If $yview is 1.0 this means that 'end' is visible in the window
- my $update = 0;
- $update = 1 if $yview == 1.0;
-
- # Loop over all input strings
- while (@_)
- {
- $w->insert('end',shift);
- }
- # Move the window to see the end of the text if required
- $w->see('end') if $update;
-}
-
-sub PRINTF
-{
- my $w = shift;
- $w->PRINT(sprintf(shift,@_));
-}
-
-sub WRITE
-{
- my ($w, $scalar, $length, $offset) = @_;
- unless (defined $length) { $length = length $scalar }
- unless (defined $offset) { $offset = 0 }
- $w->PRINT(substr($scalar, $offset, $length));
-}
-
-sub WhatLineNumberPopUp
-{
- my ($w)=@_;
- my ($line,$col) = split(/\./,$w->index('insert'));
- $w->messageBox(-type => 'Ok', -title => "What Line Number",
- -message => "The cursor is on line $line (column is $col)");
-}
-
-sub MenuLabels
-{
- return qw[~File ~Edit ~Search ~View];
-}
-
-sub SearchMenuItems
-{
- my ($w) = @_;
- return [
- ['command'=>'~Find', -command => [$w => 'FindPopUp']],
- ['command'=>'Find ~Next', -command => [$w => 'FindSelectionNext']],
- ['command'=>'Find ~Previous', -command => [$w => 'FindSelectionPrevious']],
- ['command'=>'~Replace', -command => [$w => 'FindAndReplacePopUp']]
- ];
-}
-
-sub EditMenuItems
-{
- my ($w) = @_;
- my @items = ();
- foreach my $op ($w->clipEvents)
- {
- push(@items,['command' => "~$op", -command => [ $w => "clipboard$op"]]);
- }
- push(@items,
- '-',
- ['command'=>'Select All', -command => [$w => 'selectAll']],
- ['command'=>'Unselect All', -command => [$w => 'unselectAll']],
- );
- return \@items;
-}
-
-sub ViewMenuItems
-{
- my ($w) = @_;
- my $v;
- tie $v,'Tk::Configure',$w,'-wrap';
- return [
- ['command'=>'Goto ~Line...', -command => [$w => 'GotoLineNumberPopUp']],
- ['command'=>'~Which Line?', -command => [$w => 'WhatLineNumberPopUp']],
- ['cascade'=> 'Wrap', -tearoff => 0, -menuitems => [
- [radiobutton => 'Word', -variable => \$v, -value => 'word'],
- [radiobutton => 'Character', -variable => \$v, -value => 'char'],
- [radiobutton => 'None', -variable => \$v, -value => 'none'],
- ]],
- ];
-}
-
-########################################################################
-sub clipboardColumnCopy
-{
- my ($w) = @_;
- $w->Column_Copy_or_Cut(0);
-}
-
-sub clipboardColumnCut
-{
- my ($w) = @_;
- $w->Column_Copy_or_Cut(1);
-}
-
-########################################################################
-sub Column_Copy_or_Cut
-{
- my ($w, $cut) = @_;
- my @ranges = $w->tagRanges('sel');
- my $range_total = @ranges;
- # this only makes sense if there is one selected block
- unless ($range_total==2)
- {
- $w->bell;
- return;
- }
-
- my $selection_start_index = shift(@ranges);
- my $selection_end_index = shift(@ranges);
-
- my ($start_line, $start_column) = split(/\./, $selection_start_index);
- my ($end_line, $end_column) = split(/\./, $selection_end_index);
-
- # correct indices for tabs
- my $string;
- $string = $w->get($start_line.'.0', $start_line.'.0 lineend');
- $string = substr($string, 0, $start_column);
- $string = expand($string);
- my $tab_start_column = length($string);
-
- $string = $w->get($end_line.'.0', $end_line.'.0 lineend');
- $string = substr($string, 0, $end_column);
- $string = expand($string);
- my $tab_end_column = length($string);
-
- my $length = $tab_end_column - $tab_start_column;
-
- $selection_start_index = $start_line . '.' . $tab_start_column;
- $selection_end_index = $end_line . '.' . $tab_end_column;
-
- # clear the clipboard
- $w->clipboardClear;
- my ($clipstring, $startstring, $endstring);
- my $padded_string = ' 'x$tab_end_column;
- for(my $line = $start_line; $line <= $end_line; $line++)
- {
- $string = $w->get($line.'.0', $line.'.0 lineend');
- $string = expand($string) . $padded_string;
- $clipstring = substr($string, $tab_start_column, $length);
- #$clipstring = unexpand($clipstring);
- $w->clipboardAppend($clipstring."\n");
-
- if ($cut)
- {
- $startstring = substr($string, 0, $tab_start_column);
- $startstring = unexpand($startstring);
- $start_column = length($startstring);
-
- $endstring = substr($string, 0, $tab_end_column );
- $endstring = unexpand($endstring);
- $end_column = length($endstring);
-
- $w->delete($line.'.'.$start_column, $line.'.'.$end_column);
- }
- }
-}
-
-########################################################################
-
-sub clipboardColumnPaste
-{
- my ($w) = @_;
- my @ranges = $w->tagRanges('sel');
- my $range_total = @ranges;
- if ($range_total)
- {
- warn " there cannot be any selections during clipboardColumnPaste. \n";
- $w->bell;
- return;
- }
-
- my $clipboard_text;
- eval
- {
- $clipboard_text = $w->SelectionGet(-selection => "CLIPBOARD");
- };
-
- return unless (defined($clipboard_text));
- return unless (length($clipboard_text));
- my $string;
-
- my $current_index = $w->index('insert');
- my ($current_line, $current_column) = split(/\./,$current_index);
- $string = $w->get($current_line.'.0', $current_line.'.'.$current_column);
- $string = expand($string);
- $current_column = length($string);
-
- my @clipboard_lines = split(/\n/,$clipboard_text);
- my $length;
- my $end_index;
- my ($delete_start_column, $delete_end_column, $insert_column_index);
- foreach my $line (@clipboard_lines)
- {
- if ($w->OverstrikeMode)
- {
- #figure out start and end indexes to delete, compensating for tabs.
- $string = $w->get($current_line.'.0', $current_line.'.0 lineend');
- $string = expand($string);
- $string = substr($string, 0, $current_column);
- $string = unexpand($string);
- $delete_start_column = length($string);
-
- $string = $w->get($current_line.'.0', $current_line.'.0 lineend');
- $string = expand($string);
- $string = substr($string, 0, $current_column + length($line));
- chomp($string); # dont delete a "\n" on end of line.
- $string = unexpand($string);
- $delete_end_column = length($string);
-
-
-
- $w->delete(
- $current_line.'.'.$delete_start_column ,
- $current_line.'.'.$delete_end_column
- );
- }
-
- $string = $w->get($current_line.'.0', $current_line.'.0 lineend');
- $string = expand($string);
- $string = substr($string, 0, $current_column);
- $string = unexpand($string);
- $insert_column_index = length($string);
-
- $w->insert($current_line.'.'.$insert_column_index, unexpand($line));
- $current_line++;
- }
-
-}
-
-# Backward compatibility
-sub GetMenu
-{
- carp((caller(0))[3]." is deprecated") if $^W;
- shift->menu
-}
-
-1;
-__END__
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Text.pod b/Master/tlpkg/tlperl/lib/Tk/Text.pod
deleted file mode 100644
index a069ee889a2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Text.pod
+++ /dev/null
@@ -1,2224 +0,0 @@
-# Copyright (c) 1992 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# Copyright (c) 2002 O'Reilly & Associates Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Text - Create and manipulate Text widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-I<$text> = I<$parent>-E<gt>B<Text>(?I<options>?);
-
-B<-background> B<-highlightbackground> B<-insertontime> B<-selectborderwidth>
-B<-borderwidth> B<-highlightcolor> B<-insertwidth> B<-selectforeground>
-B<-cursor> B<-highlightthickness> B<-padx> B<-setgrid>
-B<-exportselection> B<-insertbackground> B<-pady> B<-takefocus>
-B<-font> B<-insertborderwidth> B<-relief> B<-xscrollcommand>
-B<-foreground> B<-insertofftime> B<-selectbackground> B<-yscrollcommand>
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<height>
-
-=item Class: B<Height>
-
-=item Switch: B<-height>
-
-Specifies the desired height for the window, in units of characters
-in the font given by the B<-font> option.
-Must be at least one.
-
-=item Name: B<spacing1>
-
-=item Class: B<Spacing1>
-
-=item Switch: B<-spacing1>
-
-Requests additional space above each text line in the widget,
-using any of the standard forms for screen distances.
-If a line wraps, this option only applies to the first line
-on the display.
-This option may be overriden with B<-spacing1> options in
-tags.
-
-=item Name: B<spacing2>
-
-=item Class: B<Spacing2>
-
-=item Switch: B<-spacing2>
-
-For lines that wrap (so that they cover more than one line on the
-display) this option specifies additional space to provide between
-the display lines that represent a single line of text.
-The value may have any of the standard forms for screen distances.
-This option may be overriden with B<-spacing2> options in
-tags.
-
-=item Name: B<spacing3>
-
-=item Class: B<Spacing3>
-
-=item Switch: B<-spacing3>
-
-Requests additional space below each text line in the widget,
-using any of the standard forms for screen distances.
-If a line wraps, this option only applies to the last line
-on the display.
-This option may be overriden with B<-spacing3> options in
-tags.
-
-=item Name: B<state>
-
-=item Class: B<State>
-
-=item Switch: B<-state>
-
-Specifies one of two states for the text: B<normal> or B<disabled>.
-If the text is disabled then characters may not be inserted or deleted
-and no insertion cursor will be displayed, even if the input focus is
-in the widget.
-
-=item Name: B<tabs>
-
-=item Class: B<Tabs>
-
-=item Switch: B<-tabs>
-
-Specifies a set of tab stops for the window. The option's value consists
-of a list of screen distances giving the positions of the tab stops. Each
-position may optionally be followed in the next list element
-by one of the keywords B<left>, B<right>, B<center>,
-or B<numeric>, which specifies how to justify
-text relative to the tab stop. B<Left> is the default; it causes
-the text following the tab character to be positioned with its left edge
-at the tab position. B<Right> means that the right edge of the text
-following the tab character is positioned at the tab position, and
-B<center> means that the text is centered at the tab position.
-B<Numeric> means that the decimal point in the text is positioned
-at the tab position; if there is no decimal point then the least
-significant digit of the number is positioned just to the left of the
-tab position; if there is no number in the text then the text is
-right-justified at the tab position.
-For example, B<-tabs =E<gt> [qw/2c left 4c 6c center/]> creates three
-tab stops at two-centimeter intervals; the first two use left
-justification and the third uses center justification.
-If the list of tab stops does not have enough elements to cover all
-of the tabs in a text line, then Tk extrapolates new tab stops using
-the spacing and alignment from the last tab stop in the list.
-The value of the B<tabs> option may be overridden by B<-tabs>
-options in tags.
-If no B<-tabs> option is specified, or if it is specified as
-an empty list, then Tk uses default tabs spaced every eight
-(average size) characters.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies the desired width for the window in units of characters
-in the font given by the B<-font> option.
-If the font doesn't have a uniform width then the width of the
-character ``0'' is used in translating from character units to
-screen units.
-
-=item Name: B<wrap>
-
-=item Class: B<Wrap>
-
-=item Switch: B<-wrap>
-
-Specifies how to handle lines in the text that are too long to be
-displayed in a single line of the text's window.
-The value must be B<none> or B<char> or B<word>.
-A wrap mode of B<none> means that each line of text appears as
-exactly one line on the screen; extra characters that don't fit
-on the screen are not displayed.
-In the other modes each line of text will be broken up into several
-screen lines if necessary to keep all the characters visible.
-In B<char> mode a screen line break may occur after any character;
-in B<word> mode a line break will only be made at word boundaries.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Text> method creates a new window (given by the
-$text argument) and makes it into a text widget.
-Additional
-options, described above, may be specified on the command line
-or in the option database
-to configure aspects of the text such as its default background color
-and relief. The B<text> command returns the
-path name of the new window.
-
-A text widget displays one or more lines of text and allows that
-text to be edited.
-Text widgets support four different kinds of annotations on the
-text, called tags, marks, embedded windows or embedded images.
-Tags allow different portions of the text
-to be displayed with different fonts and colors.
-In addition, L<perlE<sol>Tk callbacks|Tk::callbacks> can be associated with tags so
-that scripts are invoked when particular actions such as keystrokes
-and mouse button presses occur in particular ranges of the text.
-See L<"TAGS"> below for more details.
-
-The second form of annotation consists of marks, which are floating
-markers in the text.
-Marks are used to keep track of various interesting positions in the
-text as it is edited.
-See L<"MARKS"> below for more details.
-
-The third form of annotation allows arbitrary windows to be
-embedded in a text widget.
-See L<"EMBEDDED WINDOWS"> below for more details.
-
-The fourth form of annotation allows Tk images to be embedded in a text
-widget.
-See L<"EMBEDDED IMAGES"> below for more details.
-
-The Perl/Tk B<Text> widget does not support undo/redo, use the B<TextUndo>
-widget instead.
-
-=head1 INDICES
-
-Many of the methods for texts take one or more indices
-as arguments.
-An index is a string used to indicate a particular place within
-a text, such as a place to insert characters or one endpoint of a
-range of characters to delete.
-Indices have the syntax
-
- base modifier modifier modifier ...
-
-Where I<base> gives a starting point and the I<modifier>s
-adjust the index from the starting point (e.g. move forward or
-backward one character). Every index must contain a I<base>,
-but the I<modifier>s are optional.
-
-The I<base> for an index must have one of the following forms:
-
-=over 4
-
-=item I<line>B<.>I<char>
-
-Indicates I<char>'th character on line I<line>.
-Lines are numbered from 1 for consistency with other UNIX programs
-that use this numbering scheme.
-Within a line, characters are numbered from 0.
-If I<char> is B<end> then it refers to the newline character
-that ends the line.
-
-=item B<@>I<x>B<,>I<y>
-
-Indicates the character that covers the pixel whose x and y coordinates
-within the text's window are I<x> and I<y>.
-
-=item B<end>
-
-Indicates the end of the text (the character just after the last
-newline).
-
-=item I<mark>
-
-Indicates the character just after the mark whose name is I<mark>.
-
-=item I<tag>B<.first>
-
-Indicates the first character in the text that has been tagged with
-I<tag>.
-This form generates an error if no characters are currently tagged
-with I<tag>.
-
-=item I<tag>B<.last>
-
-Indicates the character just after the last one in the text that has
-been tagged with I<tag>.
-This form generates an error if no characters are currently tagged
-with I<tag>.
-
-=item I<$widget>
-
-Indicates the position of the embedded window referenced by I<$widget>.
-This form generates an error if I<$widget> does not reference to an
-embedded window.
-
-=item I<imageName>
-
-Indicates the position of the embedded image whose name is
-I<imageName>.
-This form generates an error if there is no embedded image
-by the given name.
-
-=back
-
-If the I<base> could match more than one of the above forms, such
-as a I<mark> and I<imageName> both having the same value, then
-the form earlier in the above list takes precedence.
-If modifiers follow the base index, each one of them must have one
-of the forms listed below. Keywords such as B<chars> and B<wordend>
-may be abbreviated as long as the abbreviation is unambiguous.
-
-=over 4
-
-=item B<+ >I<count>B< chars>
-
-Adjust the index forward by I<count> characters, moving to later
-lines in the text if necessary. If there are fewer than I<count>
-characters in the text after the current index, then set the index
-to the last character in the text.
-Spaces on either side of I<count> are optional.
-
-=item B<- >I<count>B< chars>
-
-Adjust the index backward by I<count> characters, moving to earlier
-lines in the text if necessary. If there are fewer than I<count>
-characters in the text before the current index, then set the index
-to the first character in the text.
-Spaces on either side of I<count> are optional.
-
-=item B<+ >I<count>B< lines>
-
-Adjust the index forward by I<count> lines, retaining the same
-character position within the line. If there are fewer than I<count>
-lines after the line containing the current index, then set the index
-to refer to the same character position on the last line of the text.
-Then, if the line is not long enough to contain a character at the indicated
-character position, adjust the character position to refer to the last
-character of the line (the newline).
-Spaces on either side of I<count> are optional.
-
-=item B<- >I<count>B< lines>
-
-Adjust the index backward by I<count> lines, retaining the same
-character position within the line. If there are fewer than I<count>
-lines before the line containing the current index, then set the index
-to refer to the same character position on the first line of the text.
-Then, if the line is not long enough to contain a character at the indicated
-character position, adjust the character position to refer to the last
-character of the line (the newline).
-Spaces on either side of I<count> are optional.
-
-=item B<linestart>
-
-Adjust the index to refer to the first character on the line.
-
-=item B<lineend>
-
-Adjust the index to refer to the last character on the line (the newline).
-
-=item B<wordstart>
-
-Adjust the index to refer to the first character of the word containing
-the current index. A word consists of any number of adjacent characters
-that are letters, digits, or underscores, or a single character that
-is not one of these.
-
-=item B<wordend>
-
-Adjust the index to refer to the character just after the last one of the
-word containing the current index. If the current index refers to the last
-character of the text then it is not modified.
-
-=back
-
-If more than one modifier is present then they are applied in
-left-to-right order. For example, the index ``B<end - 1 chars>''
-refers to the next-to-last character in the text and
-``B<insert wordstart - 1 c>'' refers to the character just before
-the first one in the word containing the insertion cursor.
-
-=head1 TAGS
-
-The first form of annotation in text widgets is a tag.
-A tag is a textual string that is associated with some of the characters
-in a text.
-Tags may contain arbitrary characters, but it is probably best to
-avoid using the the characters `` '' (space), B<+>, or B<->:
-these characters have special meaning in indices, so tags containing
-them can't be used as indices.
-There may be any number of tags associated with characters in a
-text.
-Each tag may refer to a single character, a range of characters, or
-several ranges of characters.
-An individual character may have any number of tags associated with it.
-
-A priority order is defined among tags, and this order is used in
-implementing some of the tag-related functions described below.
-When a tag is defined (by associating it with characters or setting
-its display options or binding callbacks to it), it is given
-a priority higher than any existing tag.
-The priority order of tags may be redefined using the
-``I<$text>-E<gt>B<tagRaise>'' and ``I<$text>-E<gt>B<tagLower>''
-methods.
-
-Tags serve three purposes in text widgets.
-First, they control the way information is displayed on the screen.
-By default, characters are displayed as determined by the
-B<background>, B<font>, and B<foreground> options for the
-text widget.
-However, display options may be associated with individual tags
-using the ``I<$text>-E<gt>B<tagConfigure>'' method.
-If a character has been tagged, then the display options associated
-with the tag override the default display style.
-The following options are currently supported for tags:
-
-=over 4
-
-=item B<-background> =E<gt> I<color>
-
-I<Color> specifies the background color to use for characters
-associated with the tag.
-It may have any of the forms accepted by B<Tk_GetColor>.
-
-=item B<-bgstipple> =E<gt> I<bitmap>
-
-I<Bitmap> specifies a bitmap that is used as a stipple pattern
-for the background.
-It may have any of the forms accepted by B<Tk_GetBitmap>.
-If I<bitmap> hasn't been specified, or if it is specified
-as an empty string, then a solid fill will be used for the
-background.
-
-=item B<-borderwidth> =E<gt> I<pixels>
-
-I<Pixels> specifies the width of a 3-D border to draw around
-the background.
-It may have any of the forms accepted by B<Tk_GetPixels>.
-This option is used in conjunction with the B<-relief>
-option to give a 3-D appearance to the background for characters;
-it is ignored unless the B<-background> option
-has been set for the tag.
-
-=item B<-elide> =E<gt> boolean
-
-Elide specifies whether the data should be elided. Elided data
-is not displayed and takes no space on screen, but further on
-behaves just as normal data.
-
-=item B<-data> =E<gt> I<value>
-
-Allows an arbitrary perl scalar I<value> to be associated with the tag.
-
-=item B<-fgstipple> =E<gt> I<bitmap>
-
-I<Bitmap> specifies a bitmap that is used as a stipple pattern
-when drawing text and other foreground information such as
-underlines.
-It may have any of the forms accepted by B<Tk_GetBitmap>.
-If I<bitmap> hasn't been specified, or if it is specified
-as an empty string, then a solid fill will be used.
-
-=item B<-font> =E<gt> I<fontName>
-
-I<FontName> is the name of a font to use for drawing characters.
-It may have any of the forms accepted by B<Tk_GetFontStruct>.
-
-=item B<-foreground> =E<gt> I<color>
-
-I<Color> specifies the color to use when drawing text and other
-foreground information such as underlines.
-It may have any of the forms accepted by B<Tk_GetColor>.
-
-=item B<-justify> =E<gt> I<justify>
-
-If the first character of a display line has a tag for which this
-option has been specified, then I<justify> determines how to
-justify the line.
-It must be one of B<left>, B<right>, or B<center>.
-If a line wraps, then the justification for each line on the
-display is determined by the first character of that display line.
-
-=item B<-lmargin1> =E<gt> I<pixels>
-
-If the first character of a text line has a tag for which this
-option has been specified, then I<pixels> specifies how
-much the line should be indented from the left edge of the
-window.
-I<Pixels> may have any of the standard forms for screen
-distances.
-If a line of text wraps, this option only applies to the
-first line on the display; the B<-lmargin2> option controls
-the indentation for subsequent lines.
-
-=item B<-lmargin2> =E<gt> I<pixels>
-
-If the first character of a display line has a tag for which this
-option has been specified, and if the display line is not the
-first for its text line (i.e., the text line has wrapped), then
-I<pixels> specifies how much the line should be indented from
-the left edge of the window.
-I<Pixels> may have any of the standard forms for screen
-distances.
-This option is only used when wrapping is enabled, and it only
-applies to the second and later display lines for a text line.
-
-=item B<-offset> =E<gt> I<pixels>
-
-I<Pixels> specifies an amount by which the text's baseline
-should be offset vertically from the baseline of the overall
-line, in pixels.
-For example, a positive offset can be used for superscripts
-and a negative offset can be used for subscripts.
-I<Pixels> may have any of the standard forms for screen
-distances.
-
-=item B<-overstrike> =E<gt> I<boolean>
-
-Specifies whether or not to draw a horizontal rule through
-the middle of characters.
-I<Boolean> may have any of the forms accepted by B<Tk_GetBoolean>.
-
-=item B<-relief> =E<gt> I<relief>
-
-I<Relief> specifies the 3-D relief to use for drawing backgrounds,
-in any of the forms accepted by B<Tk_GetRelief>.
-This option is used in conjunction with the B<-borderwidth>
-option to give a 3-D appearance to the background for characters;
-it is ignored unless the B<-background> option
-has been set for the tag.
-
-=item B<-rmargin> =E<gt> I<pixels>
-
-If the first character of a display line has a tag for which this
-option has been specified, then I<pixels> specifies how wide
-a margin to leave between the end of the line and the right
-edge of the window.
-I<Pixels> may have any of the standard forms for screen
-distances.
-This option is only used when wrapping is enabled.
-If a text line wraps, the right margin for each line on the
-display is determined by the first character of that display
-line.
-
-=item B<-spacing1> =E<gt> I<pixels>
-
-I<Pixels> specifies how much additional space should be
-left above each text line, using any of the standard forms for
-screen distances.
-If a line wraps, this option only applies to the first
-line on the display.
-
-=item B<-spacing2> =E<gt> I<pixels>
-
-For lines that wrap, this option specifies how much additional
-space to leave between the display lines for a single text line.
-I<Pixels> may have any of the standard forms for screen
-distances.
-
-=item B<-spacing3> =E<gt> I<pixels>
-
-I<Pixels> specifies how much additional space should be
-left below each text line, using any of the standard forms for
-screen distances.
-If a line wraps, this option only applies to the last
-line on the display.
-
-=item B<-tabs> =E<gt> I<tabList>
-
-I<TabList> specifies a set of tab stops in the same form
-as for the B<-tabs> option for the text widget. This
-option only applies to a display line if it applies to the
-first character on that display line.
-If this option is specified as an empty string, it cancels
-the option, leaving it unspecified for the tag (the default).
-If the option is specified as a non-empty string that is
-an empty list, such as B<-tabs => " ">, then it requests
-default 8-character tabs as described for the B<tabs>
-widget option.
-
-=item B<-underline> =E<gt> I<boolean>
-
-I<Boolean> specifies whether or not to draw an underline underneath
-characters.
-It may have any of the forms accepted by B<Tk_GetBoolean>.
-
-=item B<-wrap> =E<gt> I<mode>
-
-I<Mode> specifies how to handle lines that are wider than the
-text's window.
-It has the same legal values as the B<-wrap> option
-for the text widget: B<none>, B<char>, or B<word>.
-If this tag option is specified, it overrides the B<-wrap> option
-for the text widget.
-
-=back
-
-If a character has several tags associated with it, and if their
-display options conflict, then the options of the highest priority
-tag are used.
-If a particular display option hasn't been specified for a
-particular tag, or if it is specified as an empty string, then
-that option will never be used; the next-highest-priority
-tag's option will used instead.
-If no tag specifies a particular display option, then the default
-style for the widget will be used.
-
-The second purpose for tags is event bindings.
-You can associate bindings with a tag in much the same way you can
-associate bindings with a widget class: whenever particular X
-events occur on characters with the given tag, a given
-<perl/Tk callback|Tk::callbacks> will be executed.
-Tag bindings can be used to give behaviors to ranges of characters;
-among other things, this allows hypertext-like
-features to be implemented.
-For details, see the description of the B<tagBind> widget
-method below.
-
-The third use for tags is in managing the selection.
-See L<"THE SELECTION"> below.
-
-=head1 MARKS
-
-The second form of annotation in text widgets is a mark.
-Marks are used for remembering particular places in a text.
-They are something like tags, in that they have names and
-they refer to places in the file, but a mark isn't associated
-with particular characters.
-Instead, a mark is associated with the gap between two characters.
-Only a single position may be associated with a mark at any given
-time.
-If the characters around a mark are deleted the mark will still
-remain; it will just have new neighbor characters.
-In contrast, if the characters containing a tag are deleted then
-the tag will no longer have an association with characters in
-the file.
-Marks may be manipulated with the ``I<$text>-E<gt>B<mark>'' text widget
-method, and their current locations may be determined by using the
-mark name as an index in methods.
-
-Each mark also has a I<gravity>, which is either B<left> or
-B<right>.
-The gravity for a mark specifies what happens to the mark when
-text is inserted at the point of the mark.
-If a mark has left gravity, then the mark is treated as if it
-were attached to the character on its left, so the mark will
-remain to the left of any text inserted at the mark position.
-If the mark has right gravity, new text inserted at the mark
-position will appear to the right of the mark. The gravity
-for a mark defaults to B<right>.
-
-The name space for marks is different from that for tags: the
-same name may be used for both a mark and a tag, but they will refer
-to different things.
-
-Two marks have special significance.
-First, the mark B<insert> is associated with the insertion cursor,
-as described under L<"THE INSERTION CURSOR"> below.
-Second, the mark B<current> is associated with the character
-closest to the mouse and is adjusted automatically to track the
-mouse position and any changes to the text in the widget (one
-exception: B<current> is not updated in response to mouse
-motions if a mouse button is down; the update will be deferred
-until all mouse buttons have been released).
-Neither of these special marks may be deleted.
-
-=head1 EMBEDDED WINDOWS
-
-The third form of annotation in text widgets is an embedded window.
-Each embedded window annotation causes a window to be displayed
-at a particular point in the text.
-There may be any number of embedded windows in a text widget,
-and any widget may be used as an embedded window (subject to the
-usual rules for geometry management, which require the text window
-to be the parent of the embedded window or a descendant of its
-parent).
-The embedded window's position on the screen will be updated as the
-text is modified or scrolled, and it will be mapped and unmapped as
-it moves into and out of the visible area of the text widget.
-Each embedded window occupies one character's worth of index space
-in the text widget, and it may be referred to either by the name
-of its embedded window or by its position in the widget's
-index space.
-If the range of text containing the embedded window is deleted then
-the window is destroyed.
-
-When an embedded window is added to a text widget with the
-B<widgetCreate> method, several configuration
-options may be associated with it.
-These options may be modified later with the B<widgetConfigure>
-method.
-The following options are currently supported:
-
-=over 4
-
-=item B<-align> =E<gt> I<where>
-
-If the window is not as tall as the line in which it is displayed,
-this option determines where the window is displayed in the line.
-I<Where> must have one of the values B<top> (align the top of the window
-with the top of the line), B<center> (center the window
-within the range of the line), B<bottom> (align the bottom of the
-window with the bottom of the line's area),
-or B<baseline> (align the bottom of the window with the baseline
-of the line).
-
-=item B<-create> =E<gt> I<callback>
-
-Specifies a L<callback|Tk::callbacks> that may be evaluated to create the window
-for the annotation.
-If no B<-window> option has been specified for the annotation
-this I<callback> will be evaluated when the annotation is about to
-be displayed on the screen.
-I<Callback> must create a window for the annotation and return
-the name of that window as its result.
-If the annotation's window should ever be deleted, I<callback>
-will be evaluated again the next time the annotation is displayed.
-
-=item B<-padx> =E<gt> I<pixels>
-
-I<Pixels> specifies the amount of extra space to leave on
-each side of the embedded window.
-It may have any of the usual forms defined for a screen distance
-(see B<Tk_GetPixels>).
-
-=item B<-pady> =E<gt> I<pixels>
-
-I<Pixels> specifies the amount of extra space to leave on
-the top and on the bottom of the embedded window.
-It may have any of the usual forms defined for a screen distance
-(see B<Tk_GetPixels>).
-
-=item B<-stretch> =E<gt> I<boolean>
-
-If the requested height of the embedded window is less than the
-height of the line in which it is displayed, this option can be
-used to specify whether the window should be stretched vertically
-to fill its line.
-If the B<-pady> option has been specified as well, then the
-requested padding will be retained even if the window is
-stretched.
-
-=item B<-window> =E<gt> I<$widget>
-
-Specifies the name of a window to display in the annotation.
-
-=back
-
-=head1 EMBEDDED IMAGES
-
-The final form of annotation in text widgets is an embedded image.
-Each embedded image annotation causes an image to be displayed
-at a particular point in the text.
-There may be any number of embedded images in a text widget,
-and a particular image may be embedded in multiple places in the same
-text widget.
-The embedded image's position on the screen will be updated as the
-text is modified or scrolled.
-Each embedded image occupies one character's worth of index space
-in the text widget, and it may be referred to either by
-its position in the widget's index space, or the name it is assigned
-when the image is inserted into the text widget with B<imageCreate>.
-If the range of text containing the embedded image is deleted then
-that copy of the image is removed from the screen.
-
-When an embedded image is added to a text widget with the B<image>
-create method, a name unique to this instance of the image
-is returned. This name may then be used to refer to this image
-instance. The name is taken to be the value of the B<-name> option
-(described below). If the B<-name> option is not provided, the
-B<-image> name is used instead. If the I<imageName> is already
-in use in the text widget, then B<#>I<nn> is added to the end of the
-I<imageName>, where I<nn> is an arbitrary integer. This insures
-the I<imageName> is unique.
-Once this name is assigned to this instance of the image, it does not
-change, even though the B<-image> or B<-name> values can be changed
-with B<image configure>.
-
-When an embedded image is added to a text widget with the
-B<imageCreate> method, several configuration
-options may be associated with it.
-These options may be modified later with the B<image configure>
-method.
-The following options are currently supported:
-
-=over 4
-
-=item B<-align> =E<gt> I<where>
-
-If the image is not as tall as the line in which it is displayed,
-this option determines where the image is displayed in the line.
-I<Where> must have one of the values B<top> (align the top of the image
-with the top of the line), B<center> (center the image
-within the range of the line), B<bottom> (align the bottom of the
-image with the bottom of the line's area),
-or B<baseline> (align the bottom of the image with the baseline
-of the line).
-
-=item B<-image> =E<gt> I<image>
-
-Specifies the name of the Tk image to display in the annotation.
-If I<image> is not a valid Tk image, then an error is returned.
-
-=item B<-name> =E<gt> I<ImageName>
-
-Specifies the name by which this image instance may be referenced in
-the text widget. If I<ImageName> is not supplied, then the
-name of the Tk image is used instead.
-If the I<imageName> is already in use, I<#nn> is appended to
-the end of the name as described above.
-
-=item B<-padx> =E<gt> I<pixels>
-
-I<Pixels> specifies the amount of extra space to leave on
-each side of the embedded image.
-It may have any of the usual forms defined for a screen distance.
-
-=item B<-pady> =E<gt> I<pixels>
-
-I<Pixels> specifies the amount of extra space to leave on
-the top and on the bottom of the embedded image.
-It may have any of the usual forms defined for a screen distance.
-
-=back
-
-=head1 THE SELECTION
-
-Selection support is implemented via tags.
-If the B<exportSelection> option for the text widget is true
-then the B<sel> tag will be associated with the selection:
-
-=over 4
-
-=item [1]
-
-Whenever characters are tagged with B<sel> the text widget
-will claim ownership of the selection.
-
-=item [2]
-
-Attempts to retrieve the
-selection will be serviced by the text widget, returning all the
-characters with the B<sel> tag.
-
-=item [3]
-
-If the selection is claimed away by another application or by another
-window within this application, then the B<sel> tag will be removed
-from all characters in the text.
-
-=item [4]
-
-Whenever the sel tag range changes a virtual event B<<<Selection>>>
-is generated.
-
-The B<sel> tag is automatically defined when a text widget is
-created, and it may not be deleted with the ``I<$text>-E<gt>B<tagDelete>''
-method. Furthermore, the B<selectBackground>,
-B<selectBorderWidth>, and B<selectForeground> options for
-the text widget are tied to the B<-background>,
-B<-borderwidth>, and B<-foreground> options for the B<sel>
-tag: changes in either will automatically be reflected in the
-other.
-
-=back
-
-=head1 THE INSERTION CURSOR
-
-The mark named B<insert> has special significance in text widgets.
-It is defined automatically when a text widget is created and it
-may not be unset with the ``I<$text>-E<gt>B<markUnset>'' widget
-command.
-The B<insert> mark represents the position of the insertion
-cursor, and the insertion cursor will automatically be drawn at
-this point whenever the text widget has the input focus.
-
-=head1 THE MODIFIED FLAG
-
-The text widget can keep track of changes to the content of the widget
-by means of the modified flag. Inserting or deleting text will set this
-flag. The flag can be queried, set and cleared programatically as well.
-Whenever the flag changes state a B<<<Modified>>> virtual event is gener-
-ated. See the edit modified widget command for more details.
-
-
-=head1 WIDGET METHODS
-
-The B<Text> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-The following additional methods are available for text widgets.
-In addition, the extended text widget methods as documented
-in I<"Mastering Perl/Tk"> are included in this pod (with
-permission from the publisher, B<O'Reilly and Associates Inc.>).
-
-=over 4
-
-=item I<$text>-E<gt>B<adjustSelect>
-
-Moves the end point of the selection and anchor point to the
-mouse pointer location.
-
-=item I<$text>-E<gt>B<bbox>(I<index>)
-
-Returns a list of four elements describing the screen area
-of the character given by I<index>.
-The first two elements of the list give the x and y coordinates
-of the upper-left corner of the area occupied by the
-character, and the last two elements give the width and height
-of the area.
-If the character is only partially visible on the screen, then
-the return value reflects just the visible part.
-If the character is not visible on the screen then the return
-value is an empty list.
-
-=item I<$text>-E<gt>B<clipboardColumnCopy>
-
-Performs a rectangular copy of the currently selected text with
-basic compensation for tab characters.
-
-=item I<$text>-E<gt>B<clipboardColumnCut>
-
-Performs a rectangular cut of the currently selected text with
-basic compensation for tab characters.
-
-=item I<$text>-E<gt>B<clipboardColumnPaste>
-
-Performs a rectangular paste of the text in the clipboard. The
-upper-left corner is specified by the current position of the
-insert mark with basic compensation for tab characters.
-
-=item I<$text>-E<gt>B<compare>(I<index1, op, index2>)
-
-Compares the indices given by I<index1> and I<index2> according
-to the relational operator given by I<op>, and returns 1 if
-the relationship is satisfied and 0 if it isn't.
-I<Op> must be one of the operators E<lt>, E<lt>=, ==, E<gt>=, E<gt>, or !=.
-If I<op> is == then 1 is returned if the two indices refer to
-the same character, if I<op> is E<lt> then 1 is returned if I<index1>
-refers to an earlier character in the text than I<index2>, and
-so on.
-
-=item I<$text>-E<gt>B<Contents>(I<?args>?)
-
-Query or change the entire contents of the text widget. If no
-arguments are given, the entire contents of the text widget are
-returned. If any arguments are given, the entire contents of the
-text widget are deleted and replaced by the argument list.
-
-=item I<$text>-E<gt>B<debug>(?I<boolean>?)
-
-If I<boolean> is specified, then it must have one of the true or
-false values accepted by Tcl_GetBoolean.
-If the value is a true one then internal consistency checks will be
-turned on in the B-tree code associated with text widgets.
-If I<boolean> has a false value then the debugging checks will
-be turned off.
-In either case the command returns an empty string.
-If I<boolean> is not specified then the command returns B<on>
-or B<off> to indicate whether or not debugging is turned on.
-There is a single debugging switch shared by all text widgets: turning
-debugging on or off in any widget turns it on or off for all widgets.
-For widgets with large amounts of text, the consistency checks may
-cause a noticeable slow-down.
-
-=item I<$text>-E<gt>B<delete>(I<index1, >?I<index2>?)
-
-Delete a range of characters from the text.
-If both I<index1> and I<index2> are specified, then delete
-all the characters starting with the one given by I<index1>
-and stopping just before I<index2> (i.e. the character at
-I<index2> is not deleted).
-If I<index2> doesn't specify a position later in the text
-than I<index1> then no characters are deleted.
-If I<index2> isn't specified then the single character at
-I<index1> is deleted.
-It is not allowable to delete characters in a way that would leave
-the text without a newline as the last character.
-The command returns an empty string.
-If more indices are given, multiple ranges of text will
-be deleted. All indices are first checked for validity before
-any deletions are made. They are sorted and the text is removed
-from the last range to the first range to deleted text does not
-cause a undesired index shifting side-effects. If multiple
-ranges with the same start index are given, then the longest
-range is used. If overlapping ranges are given, then they will
-be merged into spans that do not cause deletion of text outside
-the given ranges due to text shifted during deletion.
-
-=item I<$text>-E<gt>B<deleteSelected>
-
-Delete the currently selected text.
-
-=item I<$text>-E<gt>B<deleteTextTaggedWith>(I<tag>)
-
-Delete the text tagged with the I<tag> parameter.
-
-=item I<$text>-E<gt>B<deleteToEndofLine>
-
-Delete from the insert mark location to the end of line.
-
-=item I<$text>-E<gt>B<dlineinfo>(I<index>)
-
-Returns a list with five elements describing the area occupied
-by the display line containing I<index>.
-The first two elements of the list give the x and y coordinates
-of the upper-left corner of the area occupied by the
-line, the third and fourth elements give the width and height
-of the area, and the fifth element gives the position of the baseline
-for the line, measured down from the top of the area.
-All of this information is measured in pixels.
-If the current wrap mode is B<none> and the line extends beyond
-the boundaries of the window,
-the area returned reflects the entire area of the line, including the
-portions that are out of the window.
-If the line is shorter than the full width of the window then the
-area returned reflects just the portion of the line that is occupied
-by characters and embedded windows.
-If the display line containing I<index> is not visible on
-the screen then the return value is an empty list.
-
-=item I<$text>-E<gt>B<dump>(?I<switches>?, I<index1, >?I<index2>?)
-
-Return the contents of the text widget from I<index1> up to,
-but not including I<index2>,
-including the text and
-information about marks, tags, and embedded windows.
-If I<index2> is not specified, then it defaults to
-one character past I<index1>. The information is returned
-in the following format:
-
-I<key1 value1 index1 key2 value2 index2> ...
-
-The possible I<key> values are B<text>, B<mark>,
-B<tagon>, B<tagoff>, and I<$text>. The corresponding
-I<value> is the text, mark name, tag name, or window name.
-The I<index> information is the index of the
-start of the text, the mark, the tag transition, or the window.
-One or more of the following switches (or abbreviations thereof)
-may be specified to control the dump:
-
-=over 4
-
-=item B<-all>
-
-Return information about all elements: text, marks, tags, and windows.
-This is the default.
-
-=item B<-command> =E<gt> I<callback>
-
-Instead of returning the information as the result of the dump operation,
-invoke the I<callback> on each element of the text widget within the range.
-The callback has three arguments appended to it before it is evaluated:
-the I<key>, I<value>, and I<index>.
-
-=item B<-mark>
-
-Include information about marks in the dump results.
-
-=item B<-tag>
-
-Include information about tag transitions in the dump results. Tag information is
-returned as B<tagon> and B<tagoff> elements that indicate the
-begin and end of each range of each tag, respectively.
-
-=item B<-text>
-
-Include information about text in the dump results. The value is the
-text up to the next element or the end of range indicated by I<index2>.
-A text element does not span newlines. A multi-line block of text that
-contains no marks or tag transitions will still be dumped as a set
-of text seqments that each end with a newline. The newline is part
-of the value.
-
-=item B<-window>
-
-=back
-
-Include information about embedded windows in the dump results.
-The value of a window is its Tk pathname, unless the window
-has not been created yet. (It must have a create script.)
-In this case an empty string is returned, and you must query the
-window by its index position to get more information.
-
-=item I<$text>-E<gt>B<edit>( I< option, ?arg, arg ...?> );
-
-This command controls the undo mechanism and the modified flag.
-The exact behavior of the command depends on the option argument
-that follows the edit argument. The following forms of the command
-are currently supported:
-
-=over 4
-
-=item I<$text>-E<gt>B<editModified>( ?boolean? );
-
-If boolean is not specified, returns the modified flag of
-the widget. The insert, delete, edit undo and edit redo
-commands or the user can set or clear the modified flag.
-If boolean is specified, sets the modified flag of the
-widget to boolean.
-
-=item I<$text>-E<gt>B<editRedo>;
-
-(Not implemented, use B<TextUndo>.) When the B<-undo> option is true,
-reapplies the last undone edits provided no other edits were done
-since then. Generates an error when the redo stack is empty. Does
-nothing when the B<-undo> option is false.
-
-=item I<$text>-E<gt>B<editReset>;
-
-(Not implemented, use B<TextUndo>.) Clears the undo and redo stacks.
-
-=item I<$text>-E<gt>B<editSeparator>;
-
-(Not implemented, use B<TextUndo>.) Inserts a separator (boundary) on
-the undo stack. Does nothing when the -undo option is false.
-
-=item I<$text>-E<gt>B<editUndo>;
-
-(Not implemented, use B<TextUndo>.) Undoes the last edit action when
-the -undo option is true. An edit action is defined as all the insert
-and delete commands that are recorded on the undo stack in between two
-separators. Generates an error when the undo stack is empty. Does
-nothing when the -undo option is false.
-
-=back
-
-=item I<$text>-E<gt>B<FindAll>(I<mode, case, pattern>)
-
-Removes any current selections and then performs a global text
-search. All matches are tagged with the B<sel> tag.
-
-I<mode> can be be B<-exact> or B<-regexp>. See the B<search> command
-for more information
-
-I<case> can be B<-nocase> or B<-case>. See the B<search> command
-for more information
-
-I<pattern> is an exact string to match if I<mode> is B<-exact> or a
-regular expression if the match I<mode> is B<-regexp>.
-
-
-=item I<$text>-E<gt>B<FindAndReplaceAll>(I<mode, case, find, replace>)
-
-Same as the B<FindAll> method, however additionally substitutes the
-matched text with the characters I<replace>.
-
-=item I<$text>-E<gt>B<FindAndReplacePopUp>
-
-Creates a find-and-replace popup window if one does not already exist.
-If there is currently selected text, then the 'find' field will be
-'pre-filled' with the selection.
-
-=item I<$text>-E<gt>B<FindNext>(I<direction, mode, case, pattern>)
-
-Removes any current selections and then performs a forward or reverse
-text search. All matches are tagged with the B<sel> tag. I<direction>
-can be B<-forwards> or B<-backwards>. I<mode, case> and I<pattern> are
-as for the B<FindAll> method.
-
-=item I<$text>-E<gt>B<FindPopUp>
-
-Creates a find popup, if one does not yet exist. If there is currently
-selected text, then the 'find' field will be 'pre-filled' with the
-selection.
-
-=item I<$text>-E<gt>B<FindSelectionNext>
-
-Gets the currently selected text and removes all selections. It then
-finds the next exact, case-sensitive string that matches in a forward
-direction and selects the text and makes the new selection visible.
-
-=item I<$text>-E<gt>B<FindSelectionPrevious>
-
-Gets the currently selected text and removes all selections. It then
-finds the next exact, case-sensitive string that matches in a reverse
-direction and selects the text and makes the new selection visible.
-
-=item I<$text>-E<gt>B<get>(I<index1, >?I<index2>?)
-
-Return a range of characters from the text. The return value will be
-all the characters in the text starting with the one whose index is
-I<index1> and ending just before the one whose index is I<index2> (the
-character at I<index2> will not be returned). If I<index2> is omitted
-then the single character at I<index1> is returned. If there are no
-characters in the specified range (e.g. I<index1> is past the end of
-the file or I<index2> is less than or equal to I<index1>) then an
-empty string is returned. If the specified range contains embedded
-windows, no information about them is included in the returned string.
-If multiple index pairs are given, multiple ranges of text will be
-returned in a list. Invalid ranges will not be represented with empty
-strings in the list. The ranges are returned in the order passed to
-B<get>.
-
-=item I<$text>-E<gt>B<getSelected>
-
-Return the currently selected text.
-
-=item I<$text>-E<gt>B<GetTextTaggedWith>(I<tag>)
-
-Return the text tagged with the I<tag> parameter.
-
-=item I<$text>-E<gt>B<GotoLineNumber>(I<line_number>)
-
-Set the insert mark to I<line_number> and ensures the line is
-visible.
-
-=item I<$text>-E<gt>B<GotoLineNumberPopUp>(I<line_number>)
-
-Displays a popup, pre-filling it with selected numeric text
-(if any), or the line number from B<GotoLineNumber> (if any).
-
-=item I<$text>-E<gt>B<image>(I<option>, ?I<arg, arg, ...>?)
-
-=item I<$text>-E<gt>B<image>I<Option>(?I<arg, arg, ...>?)
-
-This method is used to manipulate embedded images.
-The behavior of the method depends on the I<option> argument
-that follows the B<image> prefix.
-The following forms of the methods are currently supported:
-
-=over 8
-
-=item I<$text>-E<gt>B<imageCget>(I<index, option>)
-
-Returns the value of a configuration option for an embedded image.
-I<Index> identifies the embedded image, and I<option>
-specifies a particular configuration option, which must be one of
-the ones listed in L<"EMBEDDED IMAGES">.
-
-=item I<$text>-E<gt>B<imageConfigure>(I<index, >?I<option, value, ...>?)
-
-Query or modify the configuration options for an embedded image.
-If no I<option> is specified, returns a list describing all of
-the available options for the embedded image at I<index>
-(see L<Tk::options> for information on the format of this list).
-If I<option> is specified with no I<value>, then the command
-returns a list describing the one named option (this list will be
-identical to the corresponding sublist of the value returned if no
-I<option> is specified).
-If one or more I<option-value> pairs are specified, then the command
-modifies the given option(s) to have the given value(s); in
-this case the command returns an empty string.
-See L<"EMBEDDED IMAGES"> for information on the options that
-are supported.
-
-=item I<$text>-E<gt>B<imageCreate>(I<index, >?I<option, value, ...>?)
-
-This command creates a new image annotation, which will appear
-in the text at the position given by I<index>.
-Any number of I<option-value> pairs may be specified to
-configure the annotation.
-Returns a unique identifier that may be used as an index to refer to
-this image.
-See L<"EMBEDDED IMAGES"> for information on the options that
-are supported, and a description of the identifier returned.
-
-=item I<$text>-E<gt>B<imageNames>
-
-Returns a list whose elements are the names of all image instances currently
-embedded in $text.
-
-=back
-
-=item I<$text>-E<gt>B<index>(I<index>)
-
-Returns the position corresponding to I<index> in the form
-I<line.char> where I<line> is the line number and I<char>
-is the character number.
-I<Index> may have any of the forms described under L<"INDICES"> above.
-
-=item I<$text>-E<gt>B<insert>(I<index, chars, >?I<tagList, chars, tagList, ...>?)
-
-Inserts all of the I<chars> arguments just before the character at
-I<index>.
-If I<index> refers to the end of the text (the character after
-the last newline) then the new text is inserted just before the
-last newline instead.
-If there is a single I<chars> argument and no I<tagList>, then
-the new text will receive any tags that are present on both the
-character before and the character after the insertion point; if a tag
-is present on only one of these characters then it will not be
-applied to the new text.
-If I<tagList> is specified then it consists of a list of
-tag names; the new characters will receive all of the tags in
-this list and no others, regardless of the tags present around
-the insertion point.
-If multiple I<chars>-I<tagList> argument pairs are present,
-they produce the same effect as if a separate B<insert> widget
-command had been issued for each pair, in order.
-The last I<tagList> argument may be omitted.
-
-=item I<$text>-E<gt>B<Insert>(I<string>)
-
-Do NOT confuse this with the lower-case B<insert> method.
-Insert I<string> at the point of the insertion cursor. If there is
-a selection in the text, and it covers the point of the insertion
-cursor, then it deletes the selection before inserting.
-
-=item I<$text>-E<gt>B<InsertKeypress>(I<character>)
-
-Inserts I<character> at the B<insert> mark. If in overstrike mode,
-it firsts deletes the character at the B<insert> mark.
-
-=item I<$text>-E<gt>B<InsertSelection>
-
-Inserts the current selection at the B<insert> mark.
-
-=item I<$text>-E<gt>B<insertTab>
-
-Inserts a tab (\t) character at the B<insert> mark.
-
-=item I<$text>-E<gt>B<mark>(I<option, >?I<arg, arg, ...>?)
-
-This command is used to manipulate marks. The exact behavior of
-the command depends on the I<option> argument that follows
-the B<mark> argument. The following forms of the command
-are currently supported:
-
-=over 8
-
-=item I<$text>-E<gt>B<markGravity>(I<markName, >?I<direction>?)
-
-If I<direction> is not specified, returns B<left> or B<right>
-to indicate which of its adjacent characters I<markName> is attached
-to.
-If I<direction> is specified, it must be B<left> or B<right>;
-the gravity of I<markName> is set to the given value.
-
-=item I<$text>-E<gt>B<markNames>
-
-Returns a list whose elements are the names of all the marks that
-are currently set.
-
-=item I<$text>-E<gt>B<markNext>(I<index>)
-
-Returns the name of the next mark at or after I<index>.
-If I<index> is specified in numerical form, then the search for
-the next mark begins at that index.
-If I<index> is the name of a mark, then the search for
-the next mark begins immediately after that mark.
-This can still return a mark at the same position if
-there are multiple marks at the same index.
-These semantics mean that the B<mark next> operation can be used to
-step through all the marks in a text widget in the same order
-as the mark information returned by the B<dump> operation.
-If a mark has been set to the special B<end> index,
-then it appears to be I<after> B<end> with respect to the B<mark next> operation.
-An empty string is returned if there are no marks after I<index>.
-
-=item I<$text>-E<gt>B<markPrevious>(I<index>)
-
-Returns the name of the mark at or before I<index>.
-If I<index> is specified in numerical form, then the search for
-the previous mark begins with the character just before that index.
-If I<index> is the name of a mark, then the search for
-the next mark begins immediately before that mark.
-This can still return a mark at the same position if
-there are multiple marks at the same index.
-These semantics mean that the B<mark previous> operation can be used to
-step through all the marks in a text widget in the reverse order
-as the mark information returned by the B<dump> operation.
-An empty string is returned if there are no marks before I<index>.
-
-=item I<$text>-E<gt>B<markSet>(I<markName, index>)
-
-Sets the mark named I<markName> to a position just before the
-character at I<index>.
-If I<markName> already exists, it is moved from its old position;
-if it doesn't exist, a new mark is created.
-This command returns an empty string.
-
-=item I<$text>-E<gt>B<markUnset>(I<markName>?, I<markName, markName, ...>?)
-
-Remove the mark corresponding to each of the I<markName> arguments.
-The removed marks will not be usable in indices and will not be
-returned by future calls to ``I<$text>-E<gt>B<markNames>''.
-This command returns an empty string.
-
-=back
-
-=item I<$text>-E<gt>B<markExists>(I<markname>)
-
-Returns true if I<markname> exists - false otherwise.
-
-=item I<$text>-E<gt>B<menu>(I<?menu?>)
-
-If I<menu> reference is given as an argument, then the text widget
-menu is adjusted to use this new I<menu>. If the I<menu> argument
-is B<undef>, then this command disables the current text widget menu.
-If the I<menu> argument is omitted altogether, then the current text
-widget menu reference is returned.
-
-=item I<$text>-E<gt>B<openLine>
-
-Inserts a newline (\n) at the insert mark.
-
-=item I<$text>-E<gt>B<OverstrikeMode>(I<?boolean?>)
-
-Returns the overstrike mode if I<boolean> is omitted or sets the
-overstrike mode to I<boolean>. True means overstrike mode is enabled.
-
-=item I<$text>-E<gt>B<PostPopupMenu>(I<x,y>)
-
-Creates a popup menu at the specified (I<x,y>) pixel coordinates. The
-default menu has File, Edit, Search and View menu items which cascade
-to sub-menus for further commands. There is an implicit E<lt>Button-3E<gt>
-binding to this method that posts the menu over the cursor.
-
-=item I<$text>-E<gt>B<ResetAnchor>
-
-Sets the selection anchor to whichever end is farthest from the index
-argument.
-
-=item I<$text>-E<gt>B<scan>(I<option>, I<args>) or
-
-=item I<$text>-E<gt>B<scan>I<option>(I<args>)
-
-This method is used to implement scanning on texts. It has
-two forms, depending on I<option>:
-
-=over 8
-
-=item I<$text>-E<gt>B<scanMark>(I<x, y>)
-
-Records I<x> and I<y> and the current view in the text window,
-for use in conjunction with later B<scanDragto> method.
-Typically this method is associated with a mouse button press in
-the widget. It returns an empty string.
-
-=item I<$text>-E<gt>B<scanDragto>(I<x, y>)
-
-This command computes the difference between its I<x> and I<y>
-arguments and the I<x> and I<y> arguments to the last
-B<scanMark> method for the widget.
-It then adjusts the view by 10 times the difference in coordinates.
-This command is typically associated
-with mouse motion events in the widget, to produce the effect of
-dragging the text at high speed through the window. The return
-value is an empty string.
-
-=back
-
-=item I<$text>-E<gt>B<search>(?I<switches>,? I<pattern, index, >?I<stopIndex>?)
-
-Searches the text in I<$text> starting at I<index> for a range
-of characters that matches I<pattern>.
-If a match is found, the index of the first character in the match is
-returned as result; otherwise an empty string is returned.
-One or more of the following switches (or abbreviations thereof)
-may be specified to control the search:
-
-=over 8
-
-=item B<-forwards>
-
-The search will proceed forward through the text, finding the first
-matching range starting at or after the position given by I<index>.
-This is the default.
-
-=item B<-backwards>
-
-The search will proceed backward through the text, finding the
-matching range closest to I<index> whose first character
-is before I<index>.
-
-=item B<-exact>
-
-Use exact matching: the characters in the matching range must be
-identical to those in I<pattern>.
-This is the default.
-
-=item B<-regexp>
-
-Treat I<pattern> as a regular expression and match it against
-the text using the rules for regular expressions (see the B<regexp>
-command for details).
-
-=item B<-nocase>
-
-Ignore case differences between the pattern and the text.
-
-=item B<-count>I< varName>
-
-The argument following B<-count> gives the name of a variable;
-if a match is found, the number of characters in the matching
-range will be stored in the variable.
-
-=item B<-hidden>
-
-Find hidden text as well. By default only displayed text is found.
-
-=item B<-->
-
-This switch has no effect except to terminate the list of switches:
-the next argument will be treated as I<pattern> even if it starts
-with B<->.
-
-=back
-
-=back
-
-The matching range must be entirely within a single line of text.
-For regular expression matching the newlines are removed from the ends
-of the lines before matching: use the B<$> feature in regular
-expressions to match the end of a line.
-For exact matching the newlines are retained.
-If I<stopIndex> is specified, the search stops at that index:
-for forward searches, no match at or after I<stopIndex> will
-be considered; for backward searches, no match earlier in the
-text than I<stopIndex> will be considered.
-If I<stopIndex> is omitted, the entire text will be searched:
-when the beginning or end of the text is reached, the search
-continues at the other end until the starting location is reached
-again; if I<stopIndex> is specified, no wrap-around will occur.
-
-=over 4
-
-=item I<$text>-E<gt>B<see>(I<index>)
-
-Adjusts the view in the window so that the character given by I<index>
-is completely visible.
-If I<index> is already visible then the command does nothing.
-If I<index> is a short distance out of view, the command
-adjusts the view just enough to make I<index> visible at the
-edge of the window.
-If I<index> is far out of view, then the command centers
-I<index> in the window.
-
-=item I<$text>-E<gt>B<selectAll>
-
-Selects all the text in the widget.
-
-=item I<$text>-E<gt>B<selectLine>
-
-Selects the line with the insert mark.
-
-=item I<$text>-E<gt>B<selectWord>
-
-Selects the word with the insert mark.
-
-=item I<$text>-E<gt>B<SetCursor>(I<position>)
-
-Moves the insert mark to I<position>.
-
-=item I<$text>-E<gt>B<tag>(I<option, >?I<arg, arg, ...>?)
-
-This command is used to manipulate tags. The exact behavior of the
-command depends on the I<option> argument that follows the
-B<tag> argument. The following forms of the command are currently
-supported:
-
-=over 8
-
-=item I<$text>-E<gt>B<tagAdd>(I<tagName, index1, >?I<index2, index1, index2, ...>?)
-
-Associate the tag I<tagName> with all of the characters starting
-with I<index1> and ending just before
-I<index2> (the character at I<index2> isn't tagged).
-A single command may contain any number of I<index1>-I<index2>
-pairs.
-If the last I<index2> is omitted then the single character at
-I<index1> is tagged.
-If there are no characters in the specified range (e.g. I<index1>
-is past the end of the file or I<index2> is less than or equal
-to I<index1>) then the command has no effect.
-
-=item I<$text>-E<gt>B<tagBind>(I<tagName, >?I<sequence>?, ?I<script>?)
-
-This command associates I<script> with the tag given by
-I<tagName>.
-Whenever the event sequence given by I<sequence> occurs for a
-character that has been tagged with I<tagName>,
-the script will be invoked.
-This method is similar to the B<bind> command except that
-it operates on characters in a text rather than entire widgets.
-See the L<Tk::bind> documentation for complete details
-on the syntax of I<sequence> and the substitutions performed
-on I<script> before invoking it.
-If all arguments are specified then a new binding is created, replacing
-any existing binding for the same I<sequence> and I<tagName>
-(if the first character of I<script> is ``+'' then I<script>
-augments an existing binding rather than replacing it).
-In this case the return value is an empty string.
-If I<script> is omitted then the command returns the I<script>
-associated with I<tagName> and I<sequence> (an error occurs
-if there is no such binding).
-If both I<script> and I<sequence> are omitted then the command
-returns a list of all the sequences for which bindings have been
-defined for I<tagName>.
-
-The only events for which bindings may be specified are those related
-to the mouse and keyboard (such as B<Enter>, B<Leave>,
-B<ButtonPress>, B<Motion>, and B<KeyPress>) or virtual events.
-Event bindings for a text widget use the B<current> mark described
-under L<"MARKS"> above. An B<Enter> event triggers for a tag when the tag
-first becomes present on the current character, and a B<Leave> event
-triggers for a tag when it ceases to be present on the current character.
-B<Enter> and B<Leave> events can happen either because the
-B<current> mark moved or because the character at that position
-changed. Note that these events are different than B<Enter> and
-B<Leave> events for windows. Mouse and keyboard events are directed
-to the current character. If a virtual event is used in a binding, that
-binding can trigger only if the virtual event is defined by an underlying
-mouse-related or keyboard-related event.
-
-It is possible for the current character to have multiple tags,
-and for each of them to have a binding for a particular event
-sequence.
-When this occurs, one binding is invoked for each tag, in order
-from lowest-priority to highest priority.
-If there are multiple matching bindings for a single tag, then
-the most specific binding is chosen (see the the documentation for
-the B<bind> command for details).
-B<continue> and B<break> commands within binding scripts
-are processed in the same way as for bindings created with
-the B<bind> command.
-
-If bindings are created for the widget as a whole using the
-B<bind> command, then those bindings will supplement the
-tag bindings.
-The tag bindings will be invoked first, followed by bindings
-for the window as a whole.
-
-=item I<$text>-E<gt>B<tagCget>(I<tagName, option>)
-
-This command returns the current value of the option named I<option>
-associated with the tag given by I<tagName>.
-I<Option> may have any of the values accepted by the B<tag configure>
-method.
-
-=item I<$text>-E<gt>B<tagConfigure>(I<tagName, >?I<option>?, ?I<value>?, ?I<option, value, ...>?)
-
-This command is similar to the B<configure> method except
-that it modifies options associated with the tag given by I<tagName>
-instead of modifying options for the overall text widget.
-If no I<option> is specified, the command returns a list describing
-all of the available options for I<tagName>
-(see L<Tk::options> for information on the format of this list).
-If I<option> is specified with no I<value>, then the command returns
-a list describing the one named option (this list will be identical to
-the corresponding sublist of the value returned if no I<option>
-is specified).
-If one or more I<option-value> pairs are specified, then the command
-modifies the given option(s) to have the given value(s) in I<tagName>;
-in this case the command returns an empty string.
-See L<"TAGS"> above for details on the options available for tags.
-
-=item I<$text>-E<gt>B<tagDelete>(I<tagName, >?I<tagName, ...>?)
-
-Deletes all tag information for each of the I<tagName>
-arguments.
-The command removes the tags from all characters in the file
-and also deletes any other information associated with the tags,
-such as bindings and display information.
-The command returns an empty string.
-
-=item I<$text>-E<gt>B<tagLower>(I<tagName>?, I<belowThis>?)
-
-Changes the priority of tag I<tagName> so that it is just lower
-in priority than the tag whose name is I<belowThis>.
-If I<belowThis> is omitted, then I<tagName>'s priority
-is changed to make it lowest priority of all tags.
-
-=item I<$text>-E<gt>B<tagNames>(?I<index>?)
-
-Returns a list whose elements are the names of all the tags that
-are active at the character position given by I<index>.
-If I<index> is omitted, then the return value will describe
-all of the tags that exist for the text (this includes all tags
-that have been named in a ``I<$text>-E<gt>B<tag>'' widget
-command but haven't been deleted by a ``I<$text>-E<gt>B<tagDelete>''
-method, even if no characters are currently marked with
-the tag).
-The list will be sorted in order from lowest priority to highest
-priority.
-
-=item I<$text>-E<gt>B<tagNextrange>(I<tagName, index1, >?I<index2>?)
-
-This command searches the text for a range of characters tagged
-with I<tagName> where the first character of the range is
-no earlier than the character at I<index1> and no later than
-the character just before I<index2> (a range starting at
-I<index2> will not be considered).
-If several matching ranges exist, the first one is chosen.
-The command's return value is a list containing
-two elements, which are the index of the first character of the
-range and the index of the character just after the last one in
-the range.
-If no matching range is found then the return value is an
-empty string.
-If I<index2> is not given then it defaults to the end of the text.
-
-=item I<$text>-E<gt>B<tagPrevrange>(I<tagName, index1, >?I<index2>?)
-
-This command searches the text for a range of characters tagged
-with I<tagName> where the first character of the range is
-before the character at I<index1> and no earlier than
-the character at I<index2> (a range starting at
-I<index2> will be considered).
-If several matching ranges exist, the one closest to I<index1> is chosen.
-The command's return value is a list containing
-two elements, which are the index of the first character of the
-range and the index of the character just after the last one in
-the range.
-If no matching range is found then the return value is an
-empty string.
-If I<index2> is not given then it defaults to the beginning of the text.
-
-=item I<$text>-E<gt>B<tagRaise>(I<tagName, >?I<aboveThis>?)
-
-Changes the priority of tag I<tagName> so that it is just higher
-in priority than the tag whose name is I<aboveThis>.
-If I<aboveThis> is omitted, then I<tagName>'s priority
-is changed to make it highest priority of all tags.
-
-=item I<$text>-E<gt>B<tagRanges>(I<tagName>)
-
-Returns a list describing all of the ranges of text that have been
-tagged with I<tagName>.
-The first two elements of the list describe the first tagged range
-in the text, the next two elements describe the second range, and
-so on.
-The first element of each pair contains the index of the first
-character of the range, and the second element of the pair contains
-the index of the character just after the last one in the
-range.
-If there are no characters tagged with I<tag> then an
-empty string is returned.
-
-=item I<$text>-E<gt>B<tagRemove>(I<tagName, index1, >?I<index2, index1, index2, ...>?)
-
-Remove the tag I<tagName> from all of the characters starting
-at I<index1> and ending just before
-I<index2> (the character at I<index2> isn't affected).
-A single command may contain any number of I<index1>-I<index2>
-pairs.
-If the last I<index2> is omitted then the single character at
-I<index1> is tagged.
-If there are no characters in the specified range (e.g. I<index1>
-is past the end of the file or I<index2> is less than or equal
-to I<index1>) then the command has no effect.
-This command returns an empty string.
-
-=back
-
-=item I<$text>-E<gt>B<ToggleInsertMode>
-
-Toggles the current overstrike mode.
-
-=item I<$text>-E<gt>B<unselectAll>
-
-Unselects all the text in the widget.
-
-=item I<$text>-E<gt>B<WhatLineNumberPopup>
-
-Creates a popup that displays the current line number of the
-insert mark.
-
-=item I<$text>->B<widget>(I<option?, arg, arg, ...>?)
-
-=item I<$text>->B<widget>I<Option>(?I<arg, arg, ...>?)
-
-This method is used to manipulate embedded windows.
-The behavior of the method depends on the I<option> argument
-that follows the B<window> argument.
-The following forms of the method are currently supported:
-
-=over 8
-
-=item I<$text>->B<windowCget>(I<index, option>)
-
-Returns the value of a configuration option for an embedded window.
-I<Index> identifies the embedded window, and I<option>
-specifies a particular configuration option, which must be one of
-the ones listed in L<"EMBEDDED WINDOWS"> above.
-
-=item I<$text>->B<windowConfigure>(I<index>?, I<option, value, ...>?)
-
-Query or modify the configuration options for an embedded window.
-If no I<option> is specified, returns a list describing all of
-the available options for the embedded window at I<index>
-(see L<Tk::options> for information on the format of this list).
-If I<option> is specified with no I<value>, then the command
-returns a list describing the one named option (this list will be
-identical to the corresponding sublist of the value returned if no
-I<option> is specified).
-If one or more I<option-value> pairs are specified, then the command
-modifies the given option(s) to have the given value(s); in
-this case the command returns an empty string.
-See L<"EMBEDDED WINDOWS"> above for information on the options that
-are supported.
-
-=item I<$text>->B<windowCreate>(I<index>?, I<option, value, ...>?)
-
-This command creates a new window annotation, which will appear
-in the text at the position given by I<index>.
-Any number of I<option-value> pairs may be specified to
-configure the annotation.
-See L<"EMBEDDED WINDOWS"> above for information on the options that
-are supported.
-Returns an empty string.
-
-=item I<$text>->B<windowNames>
-
-Returns a list whose elements are the names of all windows currently
-embedded in $text.
-
-=back
-
-=item I<$text>->B<xview>(I<option, args>)
-
-This command is used to query and change the horizontal position of the
-text in the widget's window. It can take any of the following
-forms:
-
-=over 8
-
-=item I<$text>->B<xview>
-
-Returns a list containing two elements.
-Each element is a real fraction between 0 and 1; together they describe
-the portion of the document's horizontal span that is visible in
-the window.
-For example, if the first element is .2 and the second element is .6,
-20% of the text is off-screen to the left, the middle 40% is visible
-in the window, and 40% of the text is off-screen to the right.
-The fractions refer only to the lines that are actually visible in the
-window: if the lines in the window are all very short, so that they
-are entirely visible, the returned fractions will be 0 and 1,
-even if there are other lines in the text that are
-much wider than the window.
-These are the same values passed to scrollbars via the B<-xscrollcommand>
-option.
-
-=item I<$text>-E<gt>B<xviewMoveto>(I<fraction>)
-
-Adjusts the view in the window so that I<fraction> of the horizontal
-span of the text is off-screen to the left.
-I<Fraction> is a fraction between 0 and 1.
-
-=item I<$text>-E<gt>B<xviewScroll>(I<number, what>)
-
-This command shifts the view in the window left or right according to
-I<number> and I<what>.
-I<Number> must be an integer.
-I<What> must be either B<units> or B<pages> or an abbreviation
-of one of these.
-If I<what> is B<units>, the view adjusts left or right by
-I<number> average-width characters on the display; if it is
-B<pages> then the view adjusts by I<number> screenfuls.
-If I<number> is negative then characters farther to the left
-become visible; if it is positive then characters farther to the right
-become visible.
-
-=back
-
-=item I<$text>-E<gt>B<yview>(I<?args>?)
-
-This command is used to query and change the vertical position of the
-text in the widget's window.
-It can take any of the following forms:
-
-=over 8
-
-=item I<$text>-E<gt>B<yview>
-
-Returns a list containing two elements, both of which are real fractions
-between 0 and 1.
-The first element gives the position of the first character in the
-top line in the window, relative to the text as a whole (0.5 means
-it is halfway through the text, for example).
-The second element gives the position of the character just after
-the last one in the bottom line of the window,
-relative to the text as a whole.
-These are the same values passed to scrollbars via the B<-yscrollcommand>
-option.
-
-=item I<$text>-E<gt>B<yviewMoveto>(I<fraction>)
-
-Adjusts the view in the window so that the character given by I<fraction>
-appears on the top line of the window.
-I<Fraction> is a fraction between 0 and 1; 0 indicates the first
-character in the text, 0.33 indicates the character one-third the
-way through the text, and so on.
-
-=item I<$text>-E<gt>B<yviewScroll>(I<number, what>)
-
-This command adjust the view in the window up or down according to
-I<number> and I<what>.
-I<Number> must be an integer.
-I<What> must be either B<units> or B<pages>.
-If I<what> is B<units>, the view adjusts up or down by
-I<number> lines on the display; if it is B<pages> then
-the view adjusts by I<number> screenfuls.
-If I<number> is negative then earlier positions in the text
-become visible; if it is positive then later positions in the text
-become visible.
-
-=item I<$text>->B<yview>(?B<-pickplace>,? I<index>)
-
-Changes the view in the I<$text>'s window to make I<index> visible.
-If the B<-pickplace> option isn't specified then I<index> will
-appear at the top of the window.
-If B<-pickplace> is specified then the widget chooses where
-I<index> appears in the window:
-
-=over 12
-
-=item [1]
-
-If I<index> is already visible somewhere in the window then the
-command does nothing.
-
-=item [2]
-
-If I<index> is only a few lines off-screen above the window then
-it will be positioned at the top of the window.
-
-=item [3]
-
-If I<index> is only a few lines off-screen below the window then
-it will be positioned at the bottom of the window.
-
-=item [4]
-
-Otherwise, I<index> will be centered in the window.
-
-=back
-
-=back
-
-=back
-
-The B<-pickplace> option has been obsoleted by the B<see> widget
-command (B<see> handles both x- and y-motion to make a location
-visible, whereas B<-pickplace> only handles motion in y).
-
-=over 4
-
-=item I<$text>-E<gt>B<yview>(I<number>)
-
-This command makes the first character on the line after
-the one given by I<number> visible at the top of the window.
-I<Number> must be an integer.
-This command used to be used for scrolling, but now it is obsolete.
-
-=back
-
-=head1 BINDINGS
-
-Tk automatically creates class bindings for texts that give them
-the following default behavior.
-In the descriptions below, ``word'' refers to a contiguous group
-of letters, digits, or ``_'' characters, or any single character
-other than these.
-
-=over 4
-
-=item [1]
-
-Clicking mouse button 1 positions the insertion cursor
-just before the character underneath the mouse cursor, sets the
-input focus to this widget, and clears any selection in the widget.
-Dragging with mouse button 1 strokes out a selection between
-the insertion cursor and the character under the mouse.
-
-=item [2]
-
-Double-clicking with mouse button 1 selects the word under the mouse
-and positions the insertion cursor at the beginning of the word.
-Dragging after a double click will stroke out a selection consisting
-of whole words.
-
-=item [3]
-
-Triple-clicking with mouse button 1 selects the line under the mouse
-and positions the insertion cursor at the beginning of the line.
-Dragging after a triple click will stroke out a selection consisting
-of whole lines.
-
-=item [4]
-
-The ends of the selection can be adjusted by dragging with mouse
-button 1 while the Shift key is down; this will adjust the end
-of the selection that was nearest to the mouse cursor when button
-1 was pressed.
-If the button is double-clicked before dragging then the selection
-will be adjusted in units of whole words; if it is triple-clicked
-then the selection will be adjusted in units of whole lines.
-
-=item [5]
-
-Clicking mouse button 1 with the Control key down will reposition the
-insertion cursor without affecting the selection.
-
-=item [6]
-
-If any normal printing characters are typed, they are
-inserted at the point of the insertion cursor.
-
-=item [7]
-
-The view in the widget can be adjusted by dragging with mouse button 2.
-If mouse button 2 is clicked without moving the mouse, the selection
-is copied into the text at the position of the mouse cursor.
-The Insert key also inserts the selection, but at the position of
-the insertion cursor.
-
-=item [8]
-
-If the mouse is dragged out of the widget
-while button 1 is pressed, the entry will automatically scroll to
-make more text visible (if there is more text off-screen on the side
-where the mouse left the window).
-
-=item [9]
-
-The Left and Right keys move the insertion cursor one character to the
-left or right; they also clear any selection in the text.
-If Left or Right is typed with the Shift key down, then the insertion
-cursor moves and the selection is extended to include the new character.
-Control-Left and Control-Right move the insertion cursor by words, and
-Control-Shift-Left and Control-Shift-Right move the insertion cursor
-by words and also extend the selection.
-Control-b and Control-f behave the same as Left and Right, respectively.
-Meta-b and Meta-f behave the same as Control-Left and Control-Right,
-respectively.
-
-=item [10]
-
-The Up and Down keys move the insertion cursor one line up or
-down and clear any selection in the text.
-If Up or Right is typed with the Shift key down, then the insertion
-cursor moves and the selection is extended to include the new character.
-Control-Up and Control-Down move the insertion cursor by paragraphs (groups
-of lines separated by blank lines), and
-Control-Shift-Up and Control-Shift-Down move the insertion cursor
-by paragraphs and also extend the selection.
-Control-p and Control-n behave the same as Up and Down, respectively.
-
-=item [11]
-
-The Next and Prior keys move the insertion cursor forward or backwards
-by one screenful and clear any selection in the text.
-If the Shift key is held down while Next or Prior is typed, then
-the selection is extended to include the new character.
-Control-v moves the view down one screenful without moving the
-insertion cursor or adjusting the selection.
-
-=item [12]
-
-Control-Next and Control-Prior scroll the view right or left by one page
-without moving the insertion cursor or affecting the selection.
-
-=item [13]
-
-Home and Control-a move the insertion cursor to the
-beginning of its line and clear any selection in the widget.
-Shift-Home moves the insertion cursor to the beginning of the line
-and also extends the selection to that point.
-
-=item [14]
-
-End and Control-e move the insertion cursor to the
-end of the line and clear any selection in the widget.
-Shift-End moves the cursor to the end of the line and extends the selection
-to that point.
-
-=item [15]
-
-Control-Home and Meta-E<lt> move the insertion cursor to the beginning of
-the text and clear any selection in the widget.
-Control-Shift-Home moves the insertion cursor to the beginning of the text
-and also extends the selection to that point.
-
-=item [16]
-
-Control-End and Meta-E<gt> move the insertion cursor to the end of the
-text and clear any selection in the widget.
-Control-Shift-End moves the cursor to the end of the text and extends
-the selection to that point.
-
-=item [17]
-
-The Select key and Control-Space set the selection anchor to the position
-of the insertion cursor. They don't affect the current selection.
-Shift-Select and Control-Shift-Space adjust the selection to the
-current position of the insertion cursor, selecting from the anchor
-to the insertion cursor if there was not any selection previously.
-
-=item [18]
-
-Control-/ selects the entire contents of the widget.
-
-=item [19]
-
-Control-\ clears any selection in the widget.
-
-=item [20]
-
-The F16 key (labelled Copy on many Sun workstations) or Meta-w
-copies the selection in the widget to the clipboard, if there is a selection.
-
-=item [21]
-
-The F20 key (labelled Cut on many Sun workstations) or Control-w
-copies the selection in the widget to the clipboard and deletes
-the selection.
-If there is no selection in the widget then these keys have no effect.
-
-=item [22]
-
-The F18 key (labelled Paste on many Sun workstations) or Control-y
-inserts the contents of the clipboard at the position of the
-insertion cursor.
-
-=item [23]
-
-The Delete key deletes the selection, if there is one in the widget.
-If there is no selection, it deletes the character to the right of
-the insertion cursor.
-
-=item [24]
-
-Backspace and Control-h delete the selection, if there is one
-in the widget.
-If there is no selection, they delete the character to the left of
-the insertion cursor.
-
-=item [25]
-
-Control-d deletes the character to the right of the insertion cursor.
-
-=item [26]
-
-Meta-d deletes the word to the right of the insertion cursor.
-
-=item [27]
-
-Control-k deletes from the insertion cursor to the end of its line;
-if the insertion cursor is already at the end of a line, then
-Control-k deletes the newline character.
-
-=item [28]
-
-Control-o opens a new line by inserting a newline character in
-front of the insertion cursor without moving the insertion cursor.
-
-=item [29]
-
-Meta-backspace and Meta-Delete delete the word to the left of the
-insertion cursor.
-
-=item [30]
-
-Control-x deletes whatever is selected in the text widget.
-
-=item [31]
-
-Control-t reverses the order of the two characters to the right of
-the insertion cursor.
-
-=item [32]
-
-Control-z (and Control-underscore on UNIX when tk_strictMotif is
-true) undoes the last edit action if the -undo option is true.
-Does nothing otherwise.
-
-=item [33]
-
-Control-Z (or Control-y on Windows) reapplies the last undone edit
-action if the -undo option is true. Does nothing otherwise.
-
-=back
-
-If the widget is disabled using the B<-state> option, then its
-view can still be adjusted and text can still be selected,
-but no insertion cursor will be displayed and no text modifications will
-take place.
-
-The behavior of texts can be changed by defining new bindings for
-individual widgets or by redefining the class bindings.
-
-
-=head1 TIED INTERFACE
-
-The Perl/Tk Text widget also has built-in TIEHANDLE methods for
-B<print> and B<printf> statements. This means you can print to file
-handles tied to a Text widget, and the tied methods automatically
-insert the print statement's arguments into the Text widget.
-
-For example:
-
- #!/usr/local/bin/perl -w
- use POSIX 'acos';
- use Tk;
- use strict;
-
- my $mw = MainWindow->new;
- my $text = $mw->Text(qw/-width 40 -height 10/)->pack;
-
- tie *STDOUT, ref $text, $text;
-
- print "Hello Text World!\n";
- printf "pi ~= %1.5f", acos(-1.0);
-
- MainLoop;
-
-To tie a scrolled Text widget, use the Subwidget method to get to the
-E<quot>realE<quot> widget:
-
- my $text = $mw->Scrolled('Text')->pack;
- tie *STDOUT, 'Tk::Text', $text->Subwidget('scrolled');
-
-=head1 PERFORMANCE ISSUES
-
-Text widgets should run efficiently under a variety
-of conditions. The text widget uses about 2-3 bytes of
-main memory for each byte of text, so texts containing a megabyte
-or more should be practical on most workstations.
-Text is represented internally with a modified B-tree structure
-that makes operations relatively efficient even with large texts.
-Tags are included in the B-tree structure in a way that allows
-tags to span large ranges or have many disjoint smaller ranges
-without loss of efficiency.
-Marks are also implemented in a way that allows large numbers of
-marks.
-In most cases it is fine to have large numbers of unique tags,
-or a tag that has many distinct ranges.
-
-One performance problem can arise if you have hundreds or thousands
-of different tags that all have the following characteristics:
-the first and last ranges of each tag are near the beginning and
-end of the text, respectively,
-or a single tag range covers most of the text widget.
-The cost of adding and deleting tags like this is proportional
-to the number of other tags with the same properties.
-In contrast, there is no problem with having thousands of distinct
-tags if their overall ranges are localized and spread uniformly throughout
-the text.
-
-Very long text lines can be expensive,
-especially if they have many marks and tags within them.
-
-The display line with the insert cursor is redrawn each time the
-cursor blinks, which causes a steady stream of graphics traffic.
-Set the B<-insertofftime> option to 0 avoid this.
-
-=head1 SEE ALSO
-
-L<Tk::ROText|Tk::ROText>
-L<Tk::TextUndo|Tk::TextUndo>
-
-=head1 KEYWORDS
-
-text, widget
-
-=cut
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Text/Tag.pm b/Master/tlpkg/tlperl/lib/Tk/Text/Tag.pm
deleted file mode 100644
index 827278eb88c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Text/Tag.pm
+++ /dev/null
@@ -1,46 +0,0 @@
-package Tk::Text::Tag;
-require Tk::Text;
-
-use overload '""' => \&name;
-
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/Text/Text/Tag.pm#4 $
-
-sub _apply
-{
- my $self = shift;
- my $meth = shift;
- $self->widget->tag($meth => $self->name,@_);
-}
-
-sub name
-{
- return shift->[0];
-}
-
-sub widget
-{
- return shift->[1];
-}
-
-BEGIN
-{
- my $meth;
- foreach $meth (qw(cget configure bind add))
- {
- *{$meth} = sub { shift->_apply($meth,@_) }
- }
-}
-
-sub new
-{
- my $class = shift;
- my $widget = shift;
- my $name = shift;
- my $obj = bless [$name,$widget],$class;
- $obj->configure(@_) if (@_);
- return $obj;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/TextEdit.pm b/Master/tlpkg/tlperl/lib/Tk/TextEdit.pm
deleted file mode 100644
index e1ff20b6149..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/TextEdit.pm
+++ /dev/null
@@ -1,509 +0,0 @@
-# Copyright (c) 1999 Greg Bartels. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-# Special thanks to Nick Ing-Simmons for pushing a lot of
-# my text edit functionality into Text.pm and TextUndo.pm
-# otherwise, this module would have been monstrous.
-
-# Andy Worhal had it wrong, its "fifteen megabytes of fame"
-# -Greg Bartels
-
-package Tk::TextEdit;
-
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/Tk/TextEdit.pm#4 $
-
-use Tk qw (Ev);
-use AutoLoader;
-
-use Text::Tabs;
-
-use base qw(Tk::TextUndo);
-
-Construct Tk::Widget 'TextEdit';
-
-#######################################################################
-#######################################################################
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $class->SUPER::ClassInit($mw);
-
- $mw->bind($class,'<F5>', 'IndentSelectedLines');
- $mw->bind($class,'<F6>', 'UnindentSelectedLines');
-
- $mw->bind($class,'<F7>', 'CommentSelectedLines');
- $mw->bind($class,'<F8>', 'UncommentSelectedLines');
-
- return $class;
-}
-
-# 8 horizontal pixels in the "space" character in default font.
-my $tab_multiplier = 8;
-
-sub debug_code_f1
-{
- my $w=shift;
-}
-
-sub debug_code_f2
-{
- my $w=shift;
-}
-
-#######################################################################
-#######################################################################
-sub InitObject
-{
- my ($w) = @_;
- $w->SUPER::InitObject;
-
- $w->{'INDENT_STRING'} = "\t"; # Greg mode=>"\t", Nick mode=>" "
- $w->{'LINE_COMMENT_STRING'} = "#"; # assuming perl comments
-
- my %pair_descriptor_hash =
- (
- 'PARENS' => [ 'multiline', '(', ')', "[()]" ],
- 'CURLIES' => [ 'multiline', '{', '}', "[{}]" ],
- 'BRACES' => [ 'multiline', '[', ']', "[][]" ],
- 'DOUBLEQUOTE' => [ 'singleline', "\"","\"" ],
- 'SINGLEQUOTE' => [ 'singleline', "'","'" ],
- );
-
- $w->{'HIGHLIGHT_PAIR_DESCRIPTOR_HASH_REF'}=\%pair_descriptor_hash;
-
- $w->tagConfigure
- ('CURSOR_HIGHLIGHT_PARENS', -foreground=>'white', -background=>'violet');
- $w->tagConfigure
- ('CURSOR_HIGHLIGHT_CURLIES', -foreground=>'white', -background=>'blue');
- $w->tagConfigure
- ('CURSOR_HIGHLIGHT_BRACES', -foreground=>'white', -background=>'purple');
- $w->tagConfigure
- ('CURSOR_HIGHLIGHT_DOUBLEQUOTE', -foreground=>'black', -background=>'green');
- $w->tagConfigure
- ('CURSOR_HIGHLIGHT_SINGLEQUOTE', -foreground=>'black', -background=>'grey');
-
- $w->tagConfigure('BLOCK_HIGHLIGHT_PARENS', -background=>'red');
- $w->tagConfigure('BLOCK_HIGHLIGHT_CURLIES', -background=>'orange');
- $w->tagConfigure('BLOCK_HIGHLIGHT_BRACES', -background=>'red');
- $w->tagConfigure('BLOCK_HIGHLIGHT_DOUBLEQUOTE', -background=>'red');
- $w->tagConfigure('BLOCK_HIGHLIGHT_SINGLEQUOTE', -background=>'red');
-
- $w->tagRaise('BLOCK_HIGHLIGHT_PARENS','CURSOR_HIGHLIGHT_PARENS');
- $w->tagRaise('BLOCK_HIGHLIGHT_CURLIES','CURSOR_HIGHLIGHT_CURLIES');
- $w->tagRaise('BLOCK_HIGHLIGHT_BRACES','CURSOR_HIGHLIGHT_BRACES');
- $w->tagRaise('BLOCK_HIGHLIGHT_DOUBLEQUOTE','CURSOR_HIGHLIGHT_DOUBLEQUOTE');
- $w->tagRaise('BLOCK_HIGHLIGHT_SINGLEQUOTE','CURSOR_HIGHLIGHT_SINGLEQUOTE');
-
- $w->{'UPDATE_WIDGET_PERIOD'}=300; # how much time between each call.
- $w->{'WINDOW_PLUS_AND_MINUS_VALUE'}=80;
- $w->SetGUICallbackIndex(0);
- $w->schedule_next_callback;
-
-}
-
-#######################################################################
-
-sub cancel_current_gui_callback_and_restart_from_beginning
-{
- my ($w)=@_;
- if(defined($w->{'UPDATE_WIDGET_AFTER_REFERENCE'}))
- {$w->{'UPDATE_WIDGET_AFTER_REFERENCE'}->cancel();}
- $w->SetGUICallbackIndex(0);
-
- $w->schedule_next_callback;
-}
-
-sub schedule_next_callback
-{
- my ($w)=@_;
- return if $w->NoMoreGUICallbacksToCall; #stops infinite recursive call.
- $w->{'UPDATE_WIDGET_AFTER_REFERENCE'} = $w->after
- ($w->{'UPDATE_WIDGET_PERIOD'},
- sub
- {
- $w->CallNextGUICallback;
- $w->schedule_next_callback;
- }
- );
-
-}
-
-
-#######################################################################
-# use these methods to pass the TextEdit widget an anonymous array
-# of code references.
-# any time the widget changes that requires the display to be updated,
-# then these code references will be scheduled in sequence for calling.
-# splitting them up allows them to be prioritized by order,
-# and prevents the widget from "freezing" too long if they were
-# one large callback. scheduling them apart allows the widget time
-# to respond to user inputs.
-#######################################################################
-sub SetGUICallbacks
-{
- my ($w,$callback_array_ref) = @_;
- $w->{GUI_CALLBACK_ARRAY_REF}=$callback_array_ref;
- $w->SetGUICallbackIndex(0);
-}
-
-sub GetGUICallbacks
-{
- return shift->{GUI_CALLBACK_ARRAY_REF};
-}
-
-sub SetGUICallbackIndex
-{
- my ($w, $val)=@_;
- $w->{GUI_CALLBACK_ARRAY_INDEX}=$val;
-}
-
-sub GetGUICallbackIndex
-{
- return shift->{GUI_CALLBACK_ARRAY_INDEX};
-}
-
-sub IncrementGUICallbackIndex
-{
- shift->{GUI_CALLBACK_ARRAY_INDEX} += 1;
-}
-
-sub NoMoreGUICallbacksToCall
-{
- my ($w) = @_;
- return 0 unless defined ($w->{GUI_CALLBACK_ARRAY_REF});
- return 0 unless defined ($w->{GUI_CALLBACK_ARRAY_INDEX});
- my $arr_ref = $w->{GUI_CALLBACK_ARRAY_REF};
- my $arr_ind = $w->{GUI_CALLBACK_ARRAY_INDEX};
- return $arr_ind >= @$arr_ref;
-}
-
-sub CallNextGUICallback
-{
- my ($w) = @_;
- return if $w->NoMoreGUICallbacksToCall;
- my $arr_ref = $w->{GUI_CALLBACK_ARRAY_REF};
- my $arr_ind = $w->{GUI_CALLBACK_ARRAY_INDEX};
- &{$arr_ref->[$arr_ind]};
- $w->IncrementGUICallbackIndex;
-}
-
-
-#######################################################################
-#######################################################################
-
-sub insert
-{
- my $w = shift;
- $w->SUPER::insert(@_);
- $w->cancel_current_gui_callback_and_restart_from_beginning;
-}
-
-sub delete
-{
- my $w = shift;
- $w->SUPER::delete(@_);
- $w->cancel_current_gui_callback_and_restart_from_beginning;
-}
-
-sub SetCursor
-{
- my $w = shift;
- $w->SUPER::SetCursor(@_);
- $w->cancel_current_gui_callback_and_restart_from_beginning;
-}
-
-sub OverstrikeMode
-{
- my ($w,$mode) = @_;
- if (defined($mode))
- {
- $w->SUPER::OverstrikeMode($mode);
- $w->cancel_current_gui_callback_and_restart_from_beginning;
- }
- return $w->SUPER::OverstrikeMode;
-}
-
-
-#######################################################################
-# use yview on scrollbar to get fractional coordinates.
-# scale this by the total length of the text to find the
-# approximate start line of widget and end line of widget.
-#######################################################################
-sub GetScreenWindowCoordinates
-{
- my $w = shift;
- my ($top_frac, $bot_frac) = $w->yview;
- my $end_index = $w->index('end');
- my ($lines,$columns) = split (/\./,$end_index);
- my $window = $w->{'WINDOW_PLUS_AND_MINUS_VALUE'};
- my $top_line = int(($top_frac * $lines) - $window);
- $top_line = 0 if ($top_line < 0);
- my $bot_line = int(($bot_frac * $lines) + $window);
- $bot_line = $lines if ($bot_line > $lines);
- my $top_index = $top_line . '.0';
- my $bot_index = $bot_line . '.0';
-
- $_[0] = $top_index;
- $_[1] = $bot_index;
-}
-
-########################################################################
-# take two indices as inputs.
-# if they are on the same line or same column (accounting for tabs)
-# then return 1
-# else return 0
-# (assume indices passed in are in line.column format)
-########################################################################
-sub IndicesLookGood
-{
- my ($w, $start, $end, $singleline) = @_;
-
- return 0 unless ( (defined($start)) and (defined($end)));
-
- my ($start_line, $start_column) = split (/\./,$start);
- my ($end_line, $end_column) = split (/\./,$end);
-
- ##########################
- # good if on the same line
- ##########################
- return 1 if ($start_line == $end_line);
-
- ##########################
- # if not on same line and its a singleline, its bad
- ##########################
- return 0 if $singleline;
-
-
- # get both lines, convert the tabs to spaces, and get the new column.
- # see if they line up or not.
- my $string;
- $string = $w->get($start_line.'.0', $start_line.'.0 lineend');
- $string = substr($string, 0, $start_column+1);
- $string = expand($string);
- $start_column = length($string);
-
- $string = $w->get($end_line.'.0', $end_line.'.0 lineend');
- $string = substr($string, 0, $end_column +1);
- $string = expand($string);
- $end_column = length($string);
-
- ##########################
- # good if on the same column (adjusting for tabs)
- ##########################
- return 1 if ($start_column == $end_column);
-
- # otherwise its bad
- return 0;
-}
-
-########################################################################
-# if searching backward, count paranthesis until find a start parenthesis
-# which does not have a forward match.
-#
-# (<= search backward will return this index
-# ()
-# START X HERE
-# ( ( ) () )
-# )<== search forward will return this index
-#
-# if searching forward, count paranthesis until find a end parenthesis
-# which does not have a rearward match.
-########################################################################
-sub searchForBaseCharacterInPair
-{
- my
- (
- $w, $top_index, $searchfromindex, $bot_index,
- $direction, $startchar, $endchar, $charpair
- )=@_;
- my ($plus_one_char, $search_end_index, $index_offset, $done_index);
- if ($direction eq '-forward')
- {
- $plus_one_char = $endchar;
- $search_end_index = $bot_index;
- $index_offset = ' +1c';
- $done_index = $w->index('end');
- }
- else
- {
- $plus_one_char = $startchar;
- $search_end_index = $top_index;
- $index_offset = '';
- $done_index = '1.0';
- }
-
- my $at_done_index = 0;
- my $count = 0;
- my $char;
- while(1)
- {
- $searchfromindex = $w->search
- ($direction, '-regexp', $charpair, $searchfromindex, $search_end_index );
-
- last unless(defined($searchfromindex));
- $char = $w->get($searchfromindex, $w->index($searchfromindex.' +1c'));
- if ($char eq $plus_one_char)
- {$count += 1;}
- else
- {$count -= 1;}
- last if ($count==1);
- # boundary condition exists when first char in widget is the match char
- # need to be able to determine if search tried to go past index '1.0'
- # if so, set index to undef and return.
- if ( $at_done_index )
- {
- $searchfromindex = undef;
- last;
- }
- $at_done_index = 1 if ($searchfromindex eq $done_index);
- $searchfromindex=$w->index($searchfromindex . $index_offset);
- }
- return $searchfromindex;
-}
-
-########################################################################
-# highlight a character pair that most closely brackets the cursor.
-# allows you to pick and choose which ones you want to do.
-########################################################################
-
-sub HighlightParenthesisAroundCursor
-{
- my ($w)=@_;
- $w->HighlightSinglePairBracketingCursor
- ( '(', ')', '[()]', 'CURSOR_HIGHLIGHT_PARENS','BLOCK_HIGHLIGHT_PARENS',0);
-}
-
-sub HighlightCurlyBracesAroundCursor
-{
- my ($w)=@_;
- $w->HighlightSinglePairBracketingCursor
- ( '{', '}', '[{}]', 'CURSOR_HIGHLIGHT_CURLIES','BLOCK_HIGHLIGHT_CURLIES',0);
-}
-
-sub HighlightBracesAroundCursor
-{
- my ($w)=@_;
- $w->HighlightSinglePairBracketingCursor
- ( '[', ']','[][]', 'CURSOR_HIGHLIGHT_BRACES','BLOCK_HIGHLIGHT_BRACES',0);
-}
-
-sub HighlightDoubleQuotesAroundCursor
-{
- my ($w)=@_;
- $w->HighlightSinglePairBracketingCursor
- ( "\"", "\"", "\"", 'CURSOR_HIGHLIGHT_DOUBLEQUOTE','BLOCK_HIGHLIGHT_DOUBLEQUOTE',1);
-}
-
-sub HighlightSingleQuotesAroundCursor
-{
- my ($w)=@_;
- $w->HighlightSinglePairBracketingCursor
- ( "'", "'", "'", 'CURSOR_HIGHLIGHT_SINGLEQUOTE','BLOCK_HIGHLIGHT_SINGLEQUOTE',1);
-}
-
-########################################################################
-# highlight all the character pairs that most closely bracket the cursor.
-########################################################################
-sub HighlightAllPairsBracketingCursor
-{
- my ($w)=@_;
- $w->HighlightParenthesisAroundCursor;
- $w->HighlightCurlyBracesAroundCursor;
- $w->HighlightBracesAroundCursor;
- $w->HighlightDoubleQuotesAroundCursor;
- $w->HighlightSingleQuotesAroundCursor;
-}
-
-########################################################################
-# search for a pair of matching characters that bracket the
-# cursor and tag them with the given tagname.
-# startchar might be '['
-# endchar would then be ']'
-# tagname is a name of a tag, which has already been
-# configured to highlight however the user wants them to behave.
-# error tagname is the tag to highlight the chars with if there
-# is a problem of some kind.
-# singleline indicates whether the character pairs must occur
-# on a single line. quotation marks are single line characters usually.
-########################################################################
-sub HighlightSinglePairBracketingCursor
-{
- my
- (
- $w, $startchar, $endchar, $charpair,
- $good_tagname, $bad_tagname, $single_line
- ) = @_;
- $single_line=0 unless defined($single_line);
- $w->tagRemove($good_tagname, '1.0','end');
- $w->tagRemove($bad_tagname, '1.0','end');
- my $top_index; my $bot_index;
- my $cursor = $w->index('insert');
- if ($single_line)
- {
- $top_index = $w->index($cursor.' linestart');
- $bot_index = $w->index($cursor.' lineend');
- }
- else
- {
- $w->GetScreenWindowCoordinates($top_index, $bot_index);
- }
-
- # search backward for the startchar
- # $top_index, $searchfromindex, $bot_index,
- # $direction, $startchar, $endchar, $charpair
-
- my $startindex = $w->searchForBaseCharacterInPair
- (
- $top_index, $cursor, $bot_index,
- '-backward', $startchar, $endchar, $charpair
- );
-
- # search forward for the endchar
- my $endindex = $w->searchForBaseCharacterInPair
- (
- $top_index, $cursor, $bot_index,
- '-forward', $startchar, $endchar, $charpair
- );
- return unless ((defined $startindex) and (defined $endindex));
-
- my $final_tag = $bad_tagname;
- if ($w->IndicesLookGood( $startindex, $endindex, $single_line))
- {
- $final_tag = $good_tagname;
- }
-
- $w->tagAdd($final_tag, $startindex, $w->index($startindex.'+1c') );
- $w->tagAdd($final_tag, $endindex, $w->index( $endindex.'+1c') );
-}
-
-####################################################################
-sub IndentSelectedLines
-{
- my($w)=@_;
- $w->insertStringAtStartOfSelectedLines($w->{'INDENT_STRING'});
-}
-
-sub UnindentSelectedLines
-{
- my($w)=@_;
- $w->deleteStringAtStartOfSelectedLines($w->{'INDENT_STRING'});
-}
-
-sub CommentSelectedLines
-{
- my($w)=@_;
- $w->insertStringAtStartOfSelectedLines($w->{'LINE_COMMENT_STRING'});
-}
-
-sub UncommentSelectedLines
-{
- my($w)=@_;
- $w->deleteStringAtStartOfSelectedLines($w->{'LINE_COMMENT_STRING'});
-}
-
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/TextList.pm b/Master/tlpkg/tlperl/lib/Tk/TextList.pm
deleted file mode 100644
index 40c4c6ee7eb..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/TextList.pm
+++ /dev/null
@@ -1,982 +0,0 @@
-# Copyright (c) 1999 Greg London. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-# code for bindings taken from Listbox.pm
-
-# comments specifying method functionality taken from
-# "Perl/Tk Pocket Reference" by Stephen Lidie.
-
-#######################################################################
-# this module uses a text module as its base class to create a list box.
-# this will allow list box functionality to also have all the functionality
-# of the Text widget.
-#
-# note that most methods use an element number to indicate which
-# element in the list to work on.
-# the exception to this is the tag and mark methods which
-# are dual natured. These methods may accept either the
-# normal element number, or they will also take a element.char index,
-# which would be useful for applying tags to part of a line in the list.
-#
-#######################################################################
-
-package Tk::TextList;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '4.006'; # $Id: //depot/Tkutf8/TextList/TextList.pm#5 $
-
-use base qw(Tk::Derived Tk::ReindexedROText );
-
-use Tk qw (Ev);
-
-Construct Tk::Widget 'TextList';
-
-#######################################################################
-# the following line causes Populate to get called
-# @ISA = qw(Tk::Derived ... );
-#######################################################################
-sub Populate
-{
- my ($w,$args)=@_;
- my $option=delete $args->{'-selectmode'};
- $w->SUPER::Populate($args);
- $w->ConfigSpecs( -selectmode => ['PASSIVE','selectMode','SelectMode','browse'],
- -takefocus => ['PASSIVE','takeFocus','TakeFocus',1],
- -spacing3 => ['SELF', undef, undef, 3],
- -insertwidth => ['SELF', undef, undef, 0],
- );
-
-}
-
-#######################################################################
-#######################################################################
-sub ClassInit
-{
- my ($class,$mw) = @_;
-
- # Standard Motif bindings:
- $mw->bind($class,'<1>',['BeginSelect',Ev('index',Ev('@'))]);
- $mw->bind($class,'<B1-Motion>',['Motion',Ev('index',Ev('@'))]);
- $mw->bind($class,'<ButtonRelease-1>','ButtonRelease_1');
-
- $mw->bind($class,'<Shift-1>',['BeginExtend',Ev('index',Ev('@'))]);
- $mw->bind($class,'<Control-1>',['BeginToggle',Ev('index',Ev('@'))]);
-
- $mw->bind($class,'<B1-Leave>',['AutoScan',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B1-Enter>','CancelRepeat');
- $mw->bind($class,'<Up>',['UpDown',-1]);
- $mw->bind($class,'<Shift-Up>',['ExtendUpDown',-1]);
- $mw->bind($class,'<Down>',['UpDown',1]);
- $mw->bind($class,'<Shift-Down>',['ExtendUpDown',1]);
-
- $mw->XscrollBind($class);
- $mw->PriorNextBind($class);
-
- $mw->bind($class,'<Control-Home>','Cntrl_Home');
-
- $mw->bind($class,'<Shift-Control-Home>',['DataExtend',0]);
- $mw->bind($class,'<Control-End>','Cntrl_End');
-
- $mw->bind($class,'<Shift-Control-End>',['DataExtend','end']);
- $class->clipboardOperations($mw,'Copy');
- $mw->bind($class,'<space>',['BeginSelect',Ev('index','active')]);
- $mw->bind($class,'<Select>',['BeginSelect',Ev('index','active')]);
- $mw->bind($class,'<Control-Shift-space>',['BeginExtend',Ev('index','active')]);
- $mw->bind($class,'<Shift-Select>',['BeginExtend',Ev('index','active')]);
- $mw->bind($class,'<Escape>','Cancel');
- $mw->bind($class,'<Control-slash>','SelectAll');
- $mw->bind($class,'<Control-backslash>','Cntrl_backslash');
- ;
- # Additional Tk bindings that aren't part of the Motif look and feel:
- $mw->bind($class,'<2>',['scan','mark',Ev('x'),Ev('y')]);
- $mw->bind($class,'<B2-Motion>',['scan','dragto',Ev('x'),Ev('y')]);
-
- $mw->bind($class,'<FocusIn>' , ['tagConfigure','_ACTIVE_TAG', -underline=>1]);
- $mw->bind($class,'<FocusOut>', ['tagConfigure','_ACTIVE_TAG', -underline=>0]);
-
- return $class;
-}
-
-#######################################################################
-# set the active element to index
-# "active" is a text "mark" which underlines the marked text.
-#######################################################################
-sub activate
-{
- my($w,$element)=@_;
- $element= $w->index($element).'.0';
- $w->SUPER::tag('remove', '_ACTIVE_TAG', '1.0','end');
- $w->SUPER::tag('add', '_ACTIVE_TAG',
- $element.' linestart', $element.' lineend');
- $w->SUPER::mark('set', 'active', $element);
-}
-
-
-#######################################################################
-# bbox returns a list (x,y,width,height) giving an approximate
-# bounding box of character given by index
-#######################################################################
-sub bbox
-{
- my($w,$element)=@_;
- $element=$w->index($element).'.0' unless ($element=~/\./);
- return $w->SUPER::bbox($element);
-}
-
-#######################################################################
-# returns a list of indices of all elements currently selected
-#######################################################################
-sub curselection
-{
- my ($w)=@_;
- my @ranges = $w->SUPER::tag('ranges', 'sel');
- my @selection_list;
- while (@ranges)
- {
- my ($first,$firstcol) = split(/\./,shift(@ranges));
- my ($last,$lastcol) = split(/\./,shift(@ranges));
-
- #########################################################################
- # if previous selection ended on the same line that this selection starts,
- # then fiddle the numbers so that this line number isnt included twice.
- #########################################################################
- if (defined($selection_list[-1]) and ($first == $selection_list[-1]))
- {
- $first++; # count this selection starting from the next line.
- }
-
- if ($lastcol==0)
- {
- $last-=1;
- }
-
- #########################################################################
- # if incrementing $first causes it to be greater than $last,
- # then do nothing,
- # else add (first .. last) to list
- #########################################################################
- unless ($first>$last)
- {
- push(@selection_list, $first .. $last);
- }
- }
- return @selection_list;
-}
-
-
-#######################################################################
-# deletes range of elements from element1 to element2
-# defaults to element1
-#######################################################################
-sub delete
-{
- my ($w, $element1, $element2)=@_;
- $element1=$w->index($element1);
- $element2=$element1 unless(defined($element2));
- $element2=$w->index($element2);
- $w->SUPER::delete($element1.'.0' , $element2.'.0 lineend');
-}
-
-#######################################################################
-# deletes range of characters from index1 to index2
-# defaults to index1+1c
-# index is line.char notation.
-#######################################################################
-sub deleteChar
-{
- my ($w, $index1, $index2)=@_;
- $index1=$w->index($index1);
- $index2=$index1.' +1c' unless(defined($index2));
- $index2=$w->index($index2);
- $w->SUPER::delete($index1, $index2);
-}
-
-#######################################################################
-# returns as a list contents of elements from $element1 to $element2
-# defaults to element1.
-#######################################################################
-sub get
-{
- my ($w, $element1, $element2)=@_;
- $element1=$w->index($element1);
- $element2=$element1 unless(defined($element2));
- $element2=$w->index($element2);
- my @getlist;
- for(my $i=$element1; $i<=$element2; $i++)
- {
- push(@getlist, $w->SUPER::get($i.'.0 linestart', $i.'.0 lineend'));
- }
-
- return @getlist;
-}
-
-#######################################################################
-# return text between index1 and index2 which are line.char notation.
-# return value is a single string. index2 defaults to index1+1c
-# index is line.char notation.
-######################################################################
-sub getChar
-{
- my $w=shift;
- return $w->SUPER::get(@_);
-}
-
-#######################################################################
-# returns index in number notation
-# this method returns an element number, ie the 5th element.
-#######################################################################
-sub index
-{
- my ($w,$element)=@_;
- return undef unless(defined($element));
- $element=0 if $element<0;
- $element .= '.0' unless $element=~/\D/;
- $element = $w->SUPER::index($element);
- my($line,$col)=split(/\./,$element);
- return $line;
-}
-
-#######################################################################
-# returns index in line.char notation
-# this method returns an index specific to a character within an element
-#######################################################################
-sub indexChar
-{
- my $w=shift;
- return $w->SUPER::index(@_);
-}
-
-
-#######################################################################
-# inserts specified elements just before element at index
-#######################################################################
-sub insert
-{
- my $w=shift;
- my $element=shift;
- $element=$w->index($element);
- my $item;
- while (@_)
- {
- $item = shift(@_);
- $item .= "\n";
- $w->SUPER::insert($element++.'.0', $item);
- }
-}
-
-#######################################################################
-# inserts string just before character at index.
-# index is line.char notation.
-#######################################################################
-sub insertChar
-{
- my $w=shift;
- $w->SUPER::insert(@_);
-}
-
-
-
-#######################################################################
-# returns index of element nearest to y-coordinate
-#
-# currently not defined
-#######################################################################
-#sub nearest
-#{
-# return undef;
-#}
-
-#######################################################################
-# Sets the selection anchor to element at index
-#######################################################################
-sub selectionAnchor
-{
- my ($w, $element)=@_;
- $element=$w->index($element);
- $w->SUPER::mark('set', 'anchor', $element.'.0');
-}
-
-#######################################################################
-# deselects elements between index1 and index2, inclusive
-#######################################################################
-sub selectionClear
-{
- my ($w, $element1, $element2)=@_;
- $element1=$w->index($element1);
- $element2=$element1 unless(defined($element2));
- $element2=$w->index($element2);
- $w->SUPER::tag('remove', 'sel', $element1.'.0', $element2.'.0 lineend +1c');
-}
-
-#######################################################################
-# returns 1 if element at index is selected, 0 otherwise.
-#######################################################################
-sub selectionIncludes
-{
- my ($w, $element)=@_;
- $element=$w->index($element);
- my @list = $w->curselection;
- my $line;
- foreach $line (@list)
- {
- if ($line == $element) {return 1;}
- }
- return 0;
-}
-
-#######################################################################
-# adds all elements between element1 and element2 inclusive to selection
-#######################################################################
-sub selectionSet
-{
- my ($w, $element1, $element2)=@_;
- $element1=$w->index($element1);
- $element2=$element1 unless(defined($element2));
- $element2=$w->index($element2);
- $w->SUPER::tag('add', 'sel', $element1.'.0', $element2.'.0 lineend +1c');
-}
-
-#######################################################################
-# for ->selection(option,args) calling convention
-#######################################################################
-sub selection
-{
-# my ($w,$sub)=(shift,"selection".ucfirst(shift));
-# no strict 'refs';
-# # can't use $w->$sub, since it might call overridden method-- bleh
-# &($sub)($w,@_);
-}
-
-
-#######################################################################
-# adjusts the view in window so element at index is completely visible
-#######################################################################
-sub see
-{
- my ($w, $element)=@_;
- $element=$w->index($element);
- $w->SUPER::see($element.'.0');
-}
-
-#######################################################################
-# returns number of elements in listbox
-#######################################################################
-sub size
-{
- my ($w)=@_;
- my $element = $w->index('end');
- # theres a weird thing with the 'end' mark sometimes being on a line
- # with text, and sometimes being on a line all by itself
- my ($text) = $w->get($element);
- if (length($text) == 0)
- {$element -= 1;}
- return $element;
-}
-
-
-
-#######################################################################
-# add a tag based on element numbers
-#######################################################################
-sub tagAdd
-{
- my ($w, $tagName, $element1, $element2)=@_;
- $element1=$w->index($element1);
- $element1.='.0';
-
- $element2=$element1.' lineend' unless(defined($element2));
- $element2=$w->index($element2);
- $element2.='.0 lineend +1c';
-
- $w->SUPER::tag('add', $tagName, $element1, $element2);
-}
-
-#######################################################################
-# add a tag based on line.char indexes
-#######################################################################
-sub tagAddChar
-{
- my $w=shift;
- $w->SUPER::tag('add',@_);
-}
-
-
-#######################################################################
-# remove a tag based on element numbers
-#######################################################################
-sub tagRemove
-{
- my ($w, $tagName, $element1, $element2)=@_;
- $element1=$w->index($element1);
- $element1.='.0';
-
- $element2=$element1.' lineend' unless(defined($element2));
- $element2=$w->index($element2);
- $element2.='.0 lineend +1c';
-
- $w->SUPER::tag('remove', 'sel', $element1, $element2);
-}
-
-#######################################################################
-# remove a tag based on line.char indexes
-#######################################################################
-sub tagRemoveChar
-{
- my $w=shift;
- $w->SUPER::tag('remove', @_);
-}
-
-
-
-
-#######################################################################
-# perform tagNextRange based on element numbers
-#######################################################################
-sub tagNextRange
-{
- my ($w, $tagName, $element1, $element2)=@_;
- $element1=$w->index($element1);
- $element1.='.0';
-
- $element2=$element1 unless(defined($element2));
- $element2=$w->index($element2);
- $element2.='.0 lineend +1c';
-
- my $index = $w->SUPER::tag('nextrange', 'sel', $element1, $element2);
- my ($line,$col)=split(/\./,$index);
- return $line;
-}
-
-#######################################################################
-# perform tagNextRange based on line.char indexes
-#######################################################################
-sub tagNextRangeChar
-{
- my $w=shift;
- $w->SUPER::tag('nextrange', @_);
-}
-
-#######################################################################
-# perform tagPrevRange based on element numbers
-#######################################################################
-sub tagPrevRange
-{
- my ($w, $tagName, $element1, $element2)=@_;
- $element1=$w->index($element1);
- $element1.='.0';
-
- $element2=$element1 unless(defined($element2));
- $element2=$w->index($element2);
- $element2.='.0 lineend +1c';
-
- my $index = $w->SUPER::tag('prevrange', 'sel', $element1, $element2);
- my ($line,$col)=split(/\./,$index);
- return $line;
-}
-
-#######################################################################
-# perform tagPrevRange based on line.char indexes
-#######################################################################
-sub tagPrevRangeChar
-{
- my $w=shift;
- $w->SUPER::tag('prevrange', @_);
-}
-
-
-
-#######################################################################
-# perform markSet based on element numbers
-#######################################################################
-sub markSet
-{
- my ($w,$mark,$element1)=@_;
- $element1=$w->index($element1);
- $element1.='.0';
- $w->SUPER::mark('set', $element1,$mark);
-}
-
-#######################################################################
-# perform markSet based on line.char indexes
-#######################################################################
-sub markSetChar
-{
- my $w=shift;
- $w->SUPER::mark('set', @_);
-}
-
-#######################################################################
-# perform markNext based on element numbers
-#######################################################################
-sub markNext
-{
- my ($w,$element1)=@_;
- $element1=$w->index($element1);
- $element1.='.0';
- return $w->SUPER::mark('next', $element1);
-}
-
-#######################################################################
-# perform markNext based on line.char indexes
-#######################################################################
-sub markNextChar
-{
- my $w=shift;
- $w->SUPER::mark('next', @_);
-}
-
-
-#######################################################################
-# perform markPrevious based on element numbers
-#######################################################################
-sub markPrevious
-{
- my ($w,$element1)=@_;
- $element1=$w->index($element1);
- $element1.='.0';
- return $w->SUPER::mark('previous', $element1);
-}
-
-#######################################################################
-# perform markPrevious based on line.char indexes
-#######################################################################
-sub markPreviousChar
-{
- my $w=shift;
- $w->SUPER::mark('previous', @_);
-}
-
-
-
-
-sub ButtonRelease_1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->CancelRepeat;
- $w->activate($Ev->xy);
-}
-
-
-sub Cntrl_Home
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->activate(0);
- $w->see(0);
- $w->selectionClear(0,'end');
- $w->selectionSet(0)
-}
-
-
-sub Cntrl_End
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->activate('end');
- $w->see('end');
- $w->selectionClear(0,'end');
- $w->selectionSet('end')
-}
-
-
-sub Cntrl_backslash
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- if ($w->cget('-selectmode') ne 'browse')
- {
- $w->selectionClear(0,'end');
- }
-}
-
-# BeginSelect --
-#
-# This procedure is typically invoked on button-1 presses. It begins
-# the process of making a selection in the listbox. Its exact behavior
-# depends on the selection mode currently in effect for the listbox;
-# see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginSelect
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'multiple')
- {
- if ($w->selectionIncludes($el))
- {
- $w->selectionClear($el)
- }
- else
- {
- $w->selectionSet($el)
- }
- }
- else
- {
- $w->selectionClear(0,'end');
- $w->selectionSet($el);
- $w->selectionAnchor($el);
- my @list = ();
- $w->{'SELECTION_LIST_REF'} = \@list;
- $w->{'PREVIOUS_ELEMENT'} = $el
- }
- $w->focus if ($w->cget('-takefocus'));
-}
-# Motion --
-#
-# This procedure is called to process mouse motion events while
-# button 1 is down. It may move or extend the selection, depending
-# on the listbox's selection mode.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element under the pointer (must be a number).
-sub Motion
-{
- my $w = shift;
- my $el = shift;
- if (defined($w->{'PREVIOUS_ELEMENT'}) && $el == $w->{'PREVIOUS_ELEMENT'})
- {
- return;
- }
-
- # if no selections, select current
- if($w->curselection==0)
- {
- $w->activate($el);
- $w->selectionSet($el);
- $w->selectionAnchor($el);
- $w->{'PREVIOUS_ELEMENT'}=$el;
- return;
- }
-
- my $anchor = $w->index('anchor');
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet($el);
- $w->{'PREVIOUS_ELEMENT'} = $el;
- }
- elsif ($mode eq 'extended')
- {
- my $i = $w->{'PREVIOUS_ELEMENT'};
- if ($w->selectionIncludes('anchor'))
- {
- $w->selectionClear($i,$el);
- $w->selectionSet('anchor',$el)
- }
- else
- {
- $w->selectionClear($i,$el);
- $w->selectionClear('anchor',$el)
- }
- while ($i < $el && $i < $anchor)
- {
- if (Tk::lsearch($w->{'SELECTION_LIST_REF'},$i) >= 0)
- {
- $w->selectionSet($i)
- }
- $i += 1
- }
- while ($i > $el && $i > $anchor)
- {
- if (Tk::lsearch($w->{'SELECTION_LIST_REF'},$i) >= 0)
- {
- $w->selectionSet($i)
- }
- $i += -1
- }
- $w->{'PREVIOUS_ELEMENT'} = $el
- }
-}
-# BeginExtend --
-#
-# This procedure is typically invoked on shift-button-1 presses. It
-# begins the process of extending a selection in the listbox. Its
-# exact behavior depends on the selection mode currently in effect
-# for the listbox; see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginExtend
-{
- my $w = shift;
- my $el = shift;
-
- # if no selections, select current
- if($w->curselection==0)
- {
- $w->activate($el);
- $w->selectionSet($el);
- $w->selectionAnchor($el);
- $w->{'PREVIOUS_ELEMENT'}=$el;
- return;
- }
-
- if ($w->cget('-selectmode') eq 'extended' && $w->selectionIncludes('anchor'))
- {
- $w->Motion($el)
- }
-}
-# BeginToggle --
-#
-# This procedure is typically invoked on control-button-1 presses. It
-# begins the process of toggling a selection in the listbox. Its
-# exact behavior depends on the selection mode currently in effect
-# for the listbox; see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginToggle
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'extended')
- {
- my @list = $w->curselection();
- $w->{'SELECTION_LIST_REF'} = \@list;
- $w->{'PREVIOUS_ELEMENT'} = $el;
- $w->selectionAnchor($el);
- if ($w->selectionIncludes($el))
- {
- $w->selectionClear($el)
- }
- else
- {
- $w->selectionSet($el)
- }
- }
-}
-# AutoScan --
-# This procedure is invoked when the mouse leaves an entry window
-# with button 1 down. It scrolls the window up, down, left, or
-# right, depending on where the mouse left the window, and reschedules
-# itself as an "after" command so that the window continues to scroll until
-# the mouse moves back into the window or the mouse button is released.
-#
-# Arguments:
-# w - The entry window.
-# x - The x-coordinate of the mouse when it left the window.
-# y - The y-coordinate of the mouse when it left the window.
-sub AutoScan
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- if ($y >= $w->height)
- {
- $w->yview('scroll',1,'units')
- }
- elsif ($y < 0)
- {
- $w->yview('scroll',-1,'units')
- }
- elsif ($x >= $w->width)
- {
- $w->xview('scroll',2,'units')
- }
- elsif ($x < 0)
- {
- $w->xview('scroll',-2,'units')
- }
- else
- {
- return;
- }
- $w->Motion($w->index("@" . $x . ',' . $y));
- $w->RepeatId($w->after(50,'AutoScan',$w,$x,$y));
-}
-# UpDown --
-#
-# Moves the location cursor (active element) up or down by one element,
-# and changes the selection if we're in browse or extended selection
-# mode.
-#
-# Arguments:
-# w - The listbox widget.
-# amount - +1 to move down one item, -1 to move back one item.
-sub UpDown
-{
- my $w = shift;
- my $amount = shift;
- $w->activate($w->index('active')+$amount);
- $w->see('active');
- my $selectmode = $w->cget('-selectmode');
- if ($selectmode eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active')
- }
- elsif ($selectmode eq 'extended')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active');
- $w->selectionAnchor('active');
- $w->{'PREVIOUS_ELEMENT'} = $w->index('active');
- my @list = ();
- $w->{'SELECTION_LIST_REF'}=\@list;
- }
-}
-# ExtendUpDown --
-#
-# Does nothing unless we're in extended selection mode; in this
-# case it moves the location cursor (active element) up or down by
-# one element, and extends the selection to that point.
-#
-# Arguments:
-# w - The listbox widget.
-# amount - +1 to move down one item, -1 to move back one item.
-sub ExtendUpDown
-{
- my $w = shift;
- my $amount = shift;
- if ($w->cget('-selectmode') ne 'extended')
- {
- return;
- }
- $w->activate($w->index('active')+$amount);
- $w->see('active');
- $w->Motion($w->index('active'))
-}
-# DataExtend
-#
-# This procedure is called for key-presses such as Shift-KEndData.
-# If the selection mode isn't multiple or extend then it does nothing.
-# Otherwise it moves the active element to el and, if we're in
-# extended mode, extends the selection to that point.
-#
-# Arguments:
-# w - The listbox widget.
-# el - An integer element number.
-sub DataExtend
-{
- my $w = shift;
- my $el = shift;
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'extended')
- {
- $w->activate($el);
- $w->see($el);
- if ($w->selectionIncludes('anchor'))
- {
- $w->Motion($el)
- }
- }
- elsif ($mode eq 'multiple')
- {
- $w->activate($el);
- $w->see($el)
- }
-}
-# Cancel
-#
-# This procedure is invoked to cancel an extended selection in
-# progress. If there is an extended selection in progress, it
-# restores all of the items between the active one and the anchor
-# to their previous selection state.
-#
-# Arguments:
-# w - The listbox widget.
-sub Cancel
-{
- my $w = shift;
- if ($w->cget('-selectmode') ne 'extended' || !defined $w->{'PREVIOUS_ELEMENT'})
- {
- return;
- }
- my $first = $w->index('anchor');
- my $last = $w->{'PREVIOUS_ELEMENT'};
- if ($first > $last)
- {
- ($first,$last)=($last,$first);
- }
- $w->selectionClear($first,$last);
- while ($first <= $last)
- {
- if (Tk::lsearch($w->{'SELECTION_LIST_REF'},$first) >= 0)
- {
- $w->selectionSet($first)
- }
- $first += 1
- }
-}
-# SelectAll
-#
-# This procedure is invoked to handle the "select all" operation.
-# For single and browse mode, it just selects the active element.
-# Otherwise it selects everything in the widget.
-#
-# Arguments:
-# w - The listbox widget.
-sub SelectAll
-{
- my $w = shift;
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'single' || $mode eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active')
- }
- else
- {
- $w->selectionSet(0,'end')
- }
-}
-
-sub SetList
-{
- my $w = shift;
- $w->delete(0,'end');
- $w->insert('end',@_);
-}
-
-sub deleteSelected
-{
- my $w = shift;
- my $i;
- foreach $i (reverse $w->curselection)
- {
- $w->delete($i);
- }
-}
-
-sub clipboardPaste
-{
- my $w = shift;
- my $element = $w->index('active') || $w->index($w->XEvent->xy);
- my $str;
- eval {local $SIG{__DIE__}; $str = $w->clipboardGet };
- return if $@;
- foreach (split("\n",$str))
- {
- $w->insert($element++,$_);
- }
-}
-
-sub getSelected
-{
- my ($w) = @_;
- my $i;
- my (@result) = ();
- foreach $i ($w->curselection)
- {
- push(@result,$w->get($i));
- }
- return (wantarray) ? @result : $result[0];
-}
-
-
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/TextUndo.pm b/Master/tlpkg/tlperl/lib/Tk/TextUndo.pm
deleted file mode 100644
index dc6ce5fee98..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/TextUndo.pm
+++ /dev/null
@@ -1,1023 +0,0 @@
-# Copyright (c) 1995-2004 Nick Ing-Simmons.
-# Copyright (c) 1999 Greg London.
-# All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::TextUndo;
-
-use vars qw($VERSION $DoDebug);
-$VERSION = '4.015'; # $Id: //depot/Tkutf8/Tk/TextUndo.pm#15 $
-$DoDebug = 0;
-
-use Tk qw (Ev);
-use AutoLoader;
-
-use Tk::Text ();
-use base qw(Tk::Text);
-
-Construct Tk::Widget 'TextUndo';
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<<Undo>>','undo');
- $mw->bind($class,'<<Redo>>','redo');
-
- return $class->SUPER::ClassInit($mw);
-}
-
-
-####################################################################
-# methods for manipulating the undo and redo stacks.
-# no one should directly access the stacks except for these methods.
-# everyone else must access the stacks through these methods.
-####################################################################
-sub ResetUndo
-{
- my ($w) = @_;
- delete $w->{UNDO};
- delete $w->{REDO};
-}
-
-sub PushUndo
-{
- my $w = shift;
- $w->{UNDO} = [] unless (exists $w->{UNDO});
- push(@{$w->{UNDO}},@_);
-}
-
-sub PushRedo
-{
- my $w = shift;
- $w->{REDO} = [] unless (exists $w->{REDO});
- push(@{$w->{REDO}},@_);
-}
-
-sub PopUndo
-{
- my ($w) = @_;
- return pop(@{$w->{UNDO}}) if defined $w->{UNDO};
- return undef;
-}
-
-sub PopRedo
-{
- my ($w) = @_;
- return pop(@{$w->{REDO}}) if defined $w->{REDO};
- return undef;
-}
-
-sub ShiftRedo
-{
- my ($w) = @_;
- return shift(@{$w->{REDO}}) if defined $w->{REDO};
- return undef;
-}
-
-sub numberChanges
-{
- my ($w) = @_;
- return 0 unless (exists $w->{'UNDO'}) and (defined($w->{'UNDO'}));
- return scalar(@{$w->{'UNDO'}});
-}
-
-sub SizeRedo
-{
- my ($w) = @_;
- return 0 unless exists $w->{'REDO'};
- return scalar(@{$w->{'REDO'}});
-}
-
-sub getUndoAtIndex
-{
- my ($w,$index) = @_;
- return undef unless (exists $w->{UNDO});
- return $w->{UNDO}[$index];
-}
-
-sub getRedoAtIndex
-{
- my ($w,$index) = @_;
- return undef unless (exists $w->{REDO});
- return $w->{REDO}[$index];
-}
-
-####################################################################
-# type "hello there"
-# hello there_
-# hit UNDO
-# hello_
-# type "out"
-# hello out_
-# pressing REDO should not do anything
-# pressing UNDO should make "out" disappear.
-# pressing UNDO should make "there" reappear.
-# pressing UNDO should make "there" disappear.
-# pressing UNDO should make "hello" disappear.
-#
-# if there is anything in REDO stack and
-# the OperationMode is normal, (i.e. not in the middle of an ->undo or ->redo)
-# then before performing the current operation
-# take the REDO stack, and put it on UNDO stack
-# such that UNDO/REDO keystrokes will still make logical sense.
-#
-# call this method at the beginning of any overloaded method
-# which adds operations to the undo or redo stacks.
-# it will perform all the magic needed to handle the redo stack.
-####################################################################
-sub CheckForRedoShuffle
-{
- my ($w) = @_;
- my $size_redo = $w->SizeRedo;
- return unless $size_redo && ($w->OperationMode eq 'normal');
- # local $DoDebug = 1;
-
- # we are about to 'do' something new, but have something in REDO stack.
- # The REDOs may conflict with new ops, but we want to preserve them.
- # So convert them to UNDOs - effectively do them and their inverses
- # so net effect on the widget is no-change.
-
- $w->dump_array('StartShuffle');
-
- $w->OperationMode('REDO_MAGIC');
- $w->MarkSelectionsSavePositions;
-
- my @pvtundo;
-
- # go through REDO array from end downto 0, i.e. pseudo pop
- # then pretend we did 'redo' get inverse, and push into UNDO array
- # and 'do' the op.
- for (my $i=$size_redo-1; $i>=0 ; $i--)
- {
- my ($op,@args) = @{$w->getRedoAtIndex($i)};
- my $op_undo = $op .'_UNDO';
- # save the inverse of the op on the UNDO array
- # do this before the re-doing the op - after a 'delete' we cannot see
- # text we deleted!
- my $undo = $w->$op_undo(@args);
- $w->PushUndo($undo);
- # We must 'do' the operation now so if this is an insert
- # the text and tags are available for inspection in delete_UNDO, and
- # indices reflect changes.
- $w->$op(@args);
- # Save the undo that will reverse what we just did - it is
- # on the undo stack but will be tricky to find
- push(@pvtundo,$undo);
- }
-
- # Now shift each item off REDO array until empty
- # push each item onto UNDO array - this reverses the order
- # and we are not altering buffer so we cannot look in the
- # buffer to compute inverses - which is why we saved them above
-
- while ($w->SizeRedo)
- {
- my $ref = $w->ShiftRedo;
- $w->PushUndo($ref);
- }
-
- # Finally undo whatever we did to compensate for doing it
- # and get buffer back to state it was before we started.
- while (@pvtundo)
- {
- my ($op,@args) = @{pop(@pvtundo)};
- $w->$op(@args);
- }
-
- $w->RestoreSelectionsMarkedSaved;
- $w->OperationMode('normal');
- $w->dump_array('EndShuffle');
-}
-
-# sets/returns undo/redo/normal operation mode
-sub OperationMode
-{
- my ($w,$mode) = @_;
- $w->{'OPERATION_MODE'} = $mode if (@_ > 1);
- $w->{'OPERATION_MODE'} = 'normal' unless exists($w->{'OPERATION_MODE'});
- return $w->{'OPERATION_MODE'};
-}
-
-####################################################################
-# dump the undo and redo stacks to the screen.
-# used for debug purposes.
-sub dump_array
-{
- return unless $DoDebug;
- my ($w,$why) = @_;
- print "At $why:\n";
- foreach my $key ('UNDO','REDO')
- {
- if (defined($w->{$key}))
- {
- print " $key array is:\n";
- my $array = $w->{$key};
- foreach my $ref (@$array)
- {
- my @items;
- foreach my $item (@$ref)
- {
- my $loc = $item;
- $loc =~ tr/\n/\^/;
- push(@items,$loc);
- }
- print " [",join(',',@items),"]\n";
- }
- }
- }
- print "\n";
-}
-
-
-############################################################
-############################################################
-# these are a group of methods used to indicate the start and end of
-# several operations that are to be undo/redo 'ed in a single step.
-#
-# in other words, "glob" a bunch of operations together.
-#
-# for example, a search and replace should be undone with a single
-# keystroke, rather than one keypress undoes the insert and another
-# undoes the delete.
-# all other methods should access the count via these methods.
-# no other method should directly access the {GLOB_COUNT} value directly
-#############################################################
-#############################################################
-
-sub AddOperation
-{
- my ($w,@operation) = @_;
- my $mode = $w->OperationMode;
-
- if ($mode eq 'normal')
- {$w->PushUndo([@operation]);}
- elsif ($mode eq 'undo')
- {$w->PushRedo([@operation]);}
- elsif ($mode eq 'redo')
- {$w->PushUndo([@operation]);}
- else
- {die "invalid destination '$mode', must be one of 'normal', 'undo' or 'redo'";}
-}
-
-sub addGlobStart # add it to end of undo list
-{
- my ($w, $who) = @_;
- unless (defined($who)) {$who = (caller(1))[3];}
- $w->CheckForRedoShuffle;
- $w->dump_array('Start'.$who);
- $w->AddOperation('GlobStart', $who) ;
-}
-
-sub addGlobEnd # add it to end of undo list
-{
- my ($w, $who) = @_;
- unless (defined($who)) {$who = (caller(1))[3];}
- my $topundo = $w->getUndoAtIndex(-1);
- if ($topundo->[0] eq 'GlobStart')
- {
- $w->PopUndo;
- }
- else
- {
- my $nxtundo = $w->getUndoAtIndex(-2);
- if ($nxtundo->[0] eq 'GlobStart')
- {
- $w->PopUndo;
- $w->PopUndo;
- $w->PushUndo($topundo);
- }
- else
- {
- $w->AddOperation('GlobEnd', $who);
- }
- }
- $w->dump_array('End'.$who);
-}
-
-sub GlobStart
-{
- my ($w, $who) = @_;
- unless (defined($w->{GLOB_COUNT})) {$w->{GLOB_COUNT}=0;}
- if ($w->OperationMode eq 'normal')
- {
- $w->PushUndo($w->GlobStart_UNDO($who));
- }
- $w->{GLOB_COUNT} = $w->{GLOB_COUNT} + 1;
-}
-
-sub GlobStart_UNDO
-{
- my ($w, $who) = @_;
- $who = 'GlobEnd_UNDO' unless defined($who);
- return ['GlobEnd',$who];
-}
-
-sub GlobEnd
-{
- my ($w, $who) = @_;
- unless (defined($w->{GLOB_COUNT})) {$w->{GLOB_COUNT}=0;}
- if ($w->OperationMode eq 'normal')
- {
- $w->PushUndo($w->GlobStart_UNDO($who));
- }
- $w->{GLOB_COUNT} = $w->{GLOB_COUNT} - 1;
-}
-
-sub GlobEnd_UNDO
-{
- my ($w, $who) = @_;
- $who = 'GlobStart_UNDO' unless defined($who);
- return ['GlobStart',$who];
-}
-
-sub GlobCount
-{
- my ($w,$count) = @_;
- unless ( exists($w->{'GLOB_COUNT'}) and defined($w->{'GLOB_COUNT'}) )
- {
- $w->{'GLOB_COUNT'}=0;
- }
- if (defined($count))
- {
- $w->{'GLOB_COUNT'}=$count;
- }
- return $w->{'GLOB_COUNT'};
-}
-
-####################################################################
-# two methods should be used by applications to access undo and redo
-# capability, namely, $w->undo; and $w->redo; methods.
-# these methods undo and redo the last operation, respectively.
-####################################################################
-sub undo
-{
- my ($w) = @_;
- $w->dump_array('Start'.'undo');
- unless ($w->numberChanges) {$w->bell; return;} # beep and return if empty
- $w->GlobCount(0); #initialize to zero
- $w->OperationMode('undo');
- do
- {
- my ($op,@args) = @{$w->PopUndo}; # get undo operation, convert ref to array
- my $undo_op = $op .'_UNDO';
- $w->PushRedo($w->$undo_op(@args)); # find out how to undo it
- $w->$op(@args); # do the operation
- } while($w->GlobCount and $w->numberChanges);
- $w->OperationMode('normal');
- $w->dump_array('End'.'undo');
-}
-
-sub redo
-{
- my ($w) = @_;
- unless ($w->SizeRedo) {$w->bell; return;} # beep and return if empty
- $w->OperationMode('redo');
- $w->GlobCount(0); #initialize to zero
- do
- {
- my ($op,@args) = @{$w->PopRedo}; # get op from redo stack, convert to list
- my $undo_op = $op .'_UNDO';
- $w->PushUndo($w->$undo_op(@args)); # figure out how to undo operation
- $w->$op(@args); # do the operation
- } while($w->GlobCount and $w->SizeRedo);
- $w->OperationMode('normal');
-}
-
-
-############################################################
-# override low level subroutines so that they work with UNDO/REDO capability.
-# every overridden subroutine must also have a corresponding *_UNDO subroutine.
-# the *_UNDO method takes the same parameters in and returns an array reference
-# which is how to undo itself.
-# note that the *_UNDO must receive absolute indexes.
-# ->insert receives 'markname' as the starting index.
-# ->insert must convert 'markname' using $absindex=$w->index('markname')
-# and pass $absindex to ->insert_UNDO.
-############################################################
-
-sub insert
-{
- my $w = shift;
- $w->markSet('insert', $w->index(shift) );
- while(@_)
- {
- my $index1 = $w->index('insert');
- my $string = shift;
- my $taglist_ref; $taglist_ref = shift if @_;
-
- if ($w->OperationMode eq 'normal')
- {
- $w->CheckForRedoShuffle;
- $w->PushUndo($w->insert_UNDO($index1,$string,$taglist_ref));
- }
- $w->markSet('notepos' => $index1);
- $w->SUPER::insert($index1,$string,$taglist_ref);
- $w->markSet('insert', $w->index('notepos'));
- }
-}
-
-sub insert_UNDO
-{
- my $w = shift;
- my $index = shift;
- my $string = '';
- # This possible call: ->insert (index, string, tag, string, tag...);
- # if more than one string, keep reading strings in (discarding tags)
- # until all strings are read in and $string contains entire text inserted.
- while (@_)
- {
- $string .= shift;
- shift if (@_); # discard tag
- }
- # calculate index
- # possible things to insert:
- # carriage return
- # single character (not CR)
- # single line of characters (not ending in CR)
- # single line of characters ending with a CR
- # multi-line characters. last line does not end with CR
- # multi-line characters, last line does end with CR.
- my ($line,$col) = split(/\./,$index);
- if ($string =~ /\n(.*)$/)
- {
- $line += $string =~ tr/\n/\n/;
- $col = length($1);
- }
- else
- {
- $col += length($string);
- }
- return ['delete', $index, $line.'.'.$col];
-}
-
-sub delete
-{
- my ($w, $start, $stop) = @_;
- unless(defined($stop))
- { $stop = $start .'+1c'; }
- my $index1 = $w->index($start);
- my $index2 = $w->index($stop);
- if ($w->OperationMode eq 'normal')
- {
- $w->CheckForRedoShuffle;
- $w->PushUndo($w->delete_UNDO($index1,$index2));
- }
- $w->SUPER::delete($index1,$index2);
- # why call SetCursor - it has side effects
- # which cause a whole slew if save/restore hassles ?
- $w->SetCursor($index1);
-}
-
-sub delete_UNDO
-{
- my ($w, $index1, $index2) = @_;
- my %tags;
- my @result = ( 'insert' => $index1 );
- my $str = '';
-
- ###############################################################
- # get tags in range and return them in a format that
- # can be inserted.
- # $text->insert('1.0', $string1, [tag1,tag2], $string2, [tag2, tag3]);
- # note, have to break tags up into sequential order
- # in reference to _all_ tags.
- ###############################################################
-
- $w->dump('-text','-tag', -command => sub {
- my ($kind,$value,$posn) = @_;
- if ($kind eq 'text')
- {
- $str .= $value;
- }
- else
- {
- push(@result,$str,[keys %tags]) if (length $str);
- $str = '';
- if ($kind eq 'tagon')
- {
- $tags{$value} = 1;
- }
- elsif ($kind eq 'tagoff')
- {
- delete $tags{$value};
- }
- }
- }, $index1, $index2);
- push(@result,$str,[keys %tags]) if (length $str);
- return \@result;
-}
-
-############################################################
-# override subroutines which are collections of low level
-# routines executed in sequence.
-# wrap a globstart and globend around the SUPER:: version of routine.
-############################################################
-
-sub ReplaceSelectionsWith
-{
- my $w = shift;
- $w->addGlobStart;
- $w->SUPER::ReplaceSelectionsWith(@_);
- $w->addGlobEnd;
-}
-
-sub FindAndReplaceAll
-{
- my $w = shift;
- $w->addGlobStart;
- $w->SUPER::FindAndReplaceAll(@_);
- $w->addGlobEnd;
-}
-
-sub clipboardCut
-{
- my $w = shift;
- $w->addGlobStart;
- $w->SUPER::clipboardCut(@_);
- $w->addGlobEnd;
-}
-
-sub clipboardPaste
-{
- my $w = shift;
- $w->addGlobStart;
- $w->SUPER::clipboardPaste(@_);
- $w->addGlobEnd;
-}
-
-sub clipboardColumnCut
-{
- my $w = shift;
- $w->addGlobStart;
- $w->SUPER::clipboardColumnCut(@_);
- $w->addGlobEnd;
-}
-
-sub clipboardColumnPaste
-{
- my $w = shift;
- $w->addGlobStart;
- $w->SUPER::clipboardColumnPaste(@_);
- $w->addGlobEnd;
-}
-
-# Greg: this method is more tightly coupled to the base class
-# than I would prefer, but I know of no other way to do it.
-
-sub Insert
-{
- my ($w,$char)=@_;
- return if $char eq '';
- $w->addGlobStart;
- $w->SUPER::Insert($char);
- $w->addGlobEnd;
- $w->see('insert');
-}
-
-
-sub InsertKeypress
-{
- my ($w,$char)=@_;
- return if $char eq '';
- if ($char =~ /^\S$/ and !$w->OverstrikeMode and !$w->tagRanges('sel'))
- {
- my $index = $w->index('insert');
- my $undo_item = $w->getUndoAtIndex(-1);
- if (defined($undo_item) &&
- ($undo_item->[0] eq 'delete') &&
- ($undo_item->[2] == $index)
- )
- {
- $w->SUPER::insert($index,$char);
- $undo_item->[2] = $w->index('insert');
- $w->see('insert');
- return;
- }
- }
- $w->addGlobStart;
- $w->SUPER::InsertKeypress($char);
- $w->addGlobEnd;
-}
-
-############################################################
-sub TextUndoFileProgress
-{
- my ($w,$action,$filename,$count,$val,$total) = @_;
- return unless(defined($filename) and defined($count));
-
- my $popup = $w->{'FILE_PROGRESS_POP_UP'};
- unless (defined($popup))
- {
- $w->update;
- $popup = $w->Toplevel(-title => "File Progress",-popover => $w);
- $popup->transient($w->toplevel);
- $popup->withdraw;
- $popup->resizable('no','no');
- $popup->Label(-textvariable => \$popup->{ACTION})->pack;
- $popup->Label(-textvariable => \$popup->{FILENAME})->pack;
- $popup->Label(-textvariable => \$popup->{COUNT})->pack;
- my $f = $popup->Frame(-height => 10, -border => 2, -relief => 'sunken')->pack(-fill => 'x');
- my $i = $f->Frame(-background => 'blue', -relief => 'raised', -border => 2);
- $w->{'FILE_PROGRESS_POP_UP'} = $popup;
- $popup->{PROGBAR} = $i;
- }
- $popup->{ACTION} = $action;
- $popup->{COUNT} = "lines: $count";
- $popup->{FILENAME} = "Filename: $filename";
- if (defined($val) && defined($total) && $total != 0)
- {
- $popup->{PROGBAR}->place('-x' => 0, '-y' => 0, -relheight => 1, -relwidth => $val/$total);
- }
- else
- {
- $popup->{PROGBAR}->placeForget;
- }
-
- $popup->idletasks;
- unless ($popup->viewable)
- {
- $w->idletasks;
- $w->toplevel->deiconify unless $w->viewable;
- $popup->Popup;
- }
- $popup->update;
- return $popup;
-}
-
-sub FileName
-{
- my ($w,$filename) = @_;
- if (@_ > 1)
- {
- $w->{'FILENAME'}=$filename;
- }
- return $w->{'FILENAME'};
-}
-
-sub PerlIO_layers
-{
- my ($w,$layers) = @_;
- $w->{PERLIO_LAYERS} = $layers if @_ > 1;
- return $w->{PERLIO_LAYERS} || '' ;
-}
-
-sub ConfirmDiscard
-{
- my ($w)=@_;
- if ($w->numberChanges)
- {
- my $ans = $w->messageBox(-icon => 'warning',
- -type => 'YesNoCancel', -default => 'Yes',
- -message =>
-"The text has been modified without being saved.
-Save edits?");
- return 0 if $ans eq 'Cancel';
- return 0 if ($ans eq 'Yes' && !$w->Save);
- }
- return 1;
-}
-
-################################################################################
-# if the file has been modified since being saved, a pop up window will be
-# created, asking the user to confirm whether or not to exit.
-# this allows the user to return to the application and save the file.
-# the code would look something like this:
-#
-# if ($w->user_wants_to_exit)
-# {$w->ConfirmExit;}
-#
-# it is also possible to trap attempts to delete the main window.
-# this allows the ->ConfirmExit method to be called when the main window
-# is attempted to be deleted.
-#
-# $mw->protocol('WM_DELETE_WINDOW'=>
-# sub{$w->ConfirmExit;});
-#
-# finally, it might be desirable to trap Control-C signals at the
-# application level so that ->ConfirmExit is also called.
-#
-# $SIG{INT}= sub{$w->ConfirmExit;};
-#
-################################################################################
-
-sub ConfirmExit
-{
- my ($w) = @_;
- $w->toplevel->destroy if $w->ConfirmDiscard;
-}
-
-sub Save
-{
- my ($w,$filename) = @_;
- $filename = $w->FileName unless defined $filename;
- return $w->FileSaveAsPopup unless defined $filename;
- my $layers = $w->PerlIO_layers;
- if (open(my $file,">$layers",$filename))
- {
- my $status;
- my $count=0;
- my $index = '1.0';
- my $progress;
- my ($lines) = $w->index('end - 1 chars') =~ /^(\d+)\./;
- while ($w->compare($index,'<','end'))
- {
-# my $end = $w->index("$index + 1024 chars");
- my $end = $w->index("$index lineend +1c");
- print $file $w->get($index,$end);
- $index = $end;
- if (($count++%1000) == 0)
- {
- $progress = $w->TextUndoFileProgress (Saving => $filename,$count,$count,$lines);
- }
- }
- $progress->withdraw if defined $progress;
- if (close($file))
- {
- $w->ResetUndo;
- $w->FileName($filename);
- return 1;
- }
- }
- else
- {
- $w->BackTrace("Cannot open $filename:$!");
- }
- return 0;
-}
-
-sub Load
-{
- my ($w,$filename) = @_;
- $filename = $w->FileName unless (defined($filename));
- return 0 unless defined $filename;
- my $layers = $w->PerlIO_layers;
- if (open(my $file,"<$layers",$filename))
- {
- $w->MainWindow->Busy;
- $w->EmptyDocument;
- my $count=1;
- my $progress;
- while (<$file>)
- {
- $w->SUPER::insert('end',$_);
- if (($count++%1000) == 0)
- {
- $progress = $w->TextUndoFileProgress (Loading => $filename,
- $count,tell($file),-s $filename);
- }
- }
- close($file);
- $progress->withdraw if defined $progress;
- $w->markSet('insert' => '1.0');
- $w->FileName($filename);
- $w->MainWindow->Unbusy;
- }
- else
- {
- $w->BackTrace("Cannot open $filename:$!");
- }
-}
-
-sub IncludeFile
-{
- my ($w,$filename) = @_;
- unless (defined($filename))
- {$w->BackTrace("filename not specified"); return;}
- my $layers = $w->PerlIO_layers;
- if (open(my $file,"<$layers",$filename))
- {
- $w->Busy;
- my $count=1;
- $w->addGlobStart;
- my $progress;
- while (<$file>)
- {
- $w->insert('insert',$_);
- if (($count++%1000) == 0)
- {
- $progress = $w->TextUndoFileProgress(Including => $filename,
- $count,tell($file),-s $filename);
- }
- }
- $progress->withdraw if defined $progress;
- $w->addGlobEnd;
- close($file);
- $w->Unbusy;
- }
- else
- {
- $w->BackTrace("Cannot open $filename:$!");
- }
-}
-
-# clear document without pushing it into UNDO array, (use SUPER::delete)
-# (using plain delete(1.0,end) on a really big document fills up the undo array)
-# and then clear the Undo and Redo stacks.
-sub EmptyDocument
-{
- my ($w) = @_;
- $w->SUPER::delete('1.0','end');
- $w->ResetUndo;
- $w->FileName(undef);
-}
-
-sub ConfirmEmptyDocument
-{
- my ($w)=@_;
- $w->EmptyDocument if $w->ConfirmDiscard;
-}
-
-sub FileMenuItems
-{
- my ($w) = @_;
- return [
- ["command"=>'~Open', -command => [$w => 'FileLoadPopup']],
- ["command"=>'~Save', -command => [$w => 'Save' ]],
- ["command"=>'Save ~As', -command => [$w => 'FileSaveAsPopup']],
- ["command"=>'~Include', -command => [$w => 'IncludeFilePopup']],
- ["command"=>'~Clear', -command => [$w => 'ConfirmEmptyDocument']],
- "-",@{$w->SUPER::FileMenuItems}
- ]
-}
-
-sub EditMenuItems
-{
- my ($w) = @_;
-
- return [
- ["command"=>'Undo', -command => [$w => 'undo']],
- ["command"=>'Redo', -command => [$w => 'redo']],
- "-",@{$w->SUPER::EditMenuItems}
- ];
-}
-
-sub CreateFileSelect
-{
- my $w = shift;
- my $k = shift;
- my $name = $w->FileName;
- my @types = (['All Files', '*']);
- my $dir = undef;
- if (defined $name)
- {
- require File::Basename;
- my $sfx;
- ($name,$dir,$sfx) = File::Basename::fileparse($name,'\..*');
- #
- # it should never happen where we have a file suffix and
- # no file name... but fileparse() screws this up with dotfiles.
- #
- if (length($sfx) && !length($name)) { ($name, $sfx) = ($sfx, $name) }
-
- if (defined($sfx) && length($sfx))
- {
- unshift(@types,['Similar Files',[$sfx]]);
- $name .= $sfx;
- }
- }
- return $w->$k(-initialdir => $dir, -initialfile => $name,
- -filetypes => \@types, @_);
-}
-
-sub FileLoadPopup
-{
- my ($w)=@_;
- my $name = $w->CreateFileSelect('getOpenFile',-title => 'File Load');
- return $w->Load($name) if defined($name) and length($name);
- return 0;
-}
-
-sub IncludeFilePopup
-{
- my ($w)=@_;
- my $name = $w->CreateFileSelect('getOpenFile',-title => 'File Include');
- return $w->IncludeFile($name) if defined($name) and length($name);
- return 0;
-}
-
-sub FileSaveAsPopup
-{
- my ($w)=@_;
- my $name = $w->CreateFileSelect('getSaveFile',-title => 'File Save As');
- return $w->Save($name) if defined($name) and length($name);
- return 0;
-}
-
-
-sub MarkSelectionsSavePositions
-{
- my ($w)=@_;
- $w->markSet('MarkInsertSavePosition','insert');
- my @ranges = $w->tagRanges('sel');
- my $i = 0;
- while (@ranges)
- {
- my ($start,$end) = splice(@ranges,0,2);
- $w->markSet( 'MarkSelectionsSavePositions_'.++$i, $start);
- $w->markSet( 'MarkSelectionsSavePositions_'.++$i, $end);
- $w->tagRemove('sel',$start,$end);
- }
-}
-
-sub RestoreSelectionsMarkedSaved
-{
- my ($w)=@_;
- my $i = 1;
- my %mark_hash;
- foreach my $mark ($w->markNames)
- {
- $mark_hash{$mark}=1;
- }
- while(1)
- {
- my $markstart = 'MarkSelectionsSavePositions_'.$i++;
- last unless(exists($mark_hash{$markstart}));
- my $indexstart = $w->index($markstart);
- my $markend = 'MarkSelectionsSavePositions_'.$i++;
- last unless(exists($mark_hash{$markend}));
- my $indexend = $w->index($markend);
- $w->tagAdd('sel',$indexstart, $indexend);
- $w->markUnset($markstart, $markend);
- }
- $w->markSet('insert','MarkInsertSavePosition');
-}
-
-####################################################################
-# selected lines may be discontinous sequence.
-sub GetMarkedSelectedLineNumbers
-{
- my ($w) = @_;
-
- my $i = 1;
- my %mark_hash;
- my @ranges;
- foreach my $mark ($w->markNames)
- {
- $mark_hash{$mark}=1;
- }
-
- while(1)
- {
- my $markstart = 'MarkSelectionsSavePositions_'.$i++;
- last unless(exists($mark_hash{$markstart}));
- my $indexstart = $w->index($markstart);
- my $markend = 'MarkSelectionsSavePositions_'.$i++;
- last unless(exists($mark_hash{$markend}));
- my $indexend = $w->index($markend);
-
- push(@ranges, $indexstart, $indexend);
- }
-
- my @selection_list;
- while (@ranges)
- {
- my ($first) = split(/\./,shift(@ranges));
- my ($last) = split(/\./,shift(@ranges));
- # if previous selection ended on the same line that this selection starts,
- # then fiddle the numbers so that this line number isnt included twice.
- if (defined($selection_list[-1]) and ($first == $selection_list[-1]))
- {
- # if this selection ends on the same line its starts, then skip this sel
- next if ($first == $last);
- $first++; # count this selection starting from the next line.
- }
- push(@selection_list, $first .. $last);
- }
- return @selection_list;
-}
-
-sub insertStringAtStartOfSelectedLines
-{
- my ($w,$insert_string)=@_;
- $w->addGlobStart;
- $w->MarkSelectionsSavePositions;
- foreach my $line ($w->GetMarkedSelectedLineNumbers)
- {
- $w->insert($line.'.0', $insert_string);
- }
- $w->RestoreSelectionsMarkedSaved;
- $w->addGlobEnd;
-}
-
-sub deleteStringAtStartOfSelectedLines
-{
- my ($w,$insert_string)=@_;
- $w->addGlobStart;
- $w->MarkSelectionsSavePositions;
- my $length = length($insert_string);
- foreach my $line ($w->GetMarkedSelectedLineNumbers)
- {
- my $start = $line.'.0';
- my $end = $line.'.'.$length;
- my $current_text = $w->get($start, $end);
- next unless ($current_text eq $insert_string);
- $w->delete($start, $end);
- }
- $w->RestoreSelectionsMarkedSaved;
- $w->addGlobEnd;
-}
-
-
-1;
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/TextUndo.pod b/Master/tlpkg/tlperl/lib/Tk/TextUndo.pod
deleted file mode 100644
index 2b9d98a3c4a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/TextUndo.pod
+++ /dev/null
@@ -1,73 +0,0 @@
-
-=head1 NAME
-
-Tk::TextUndo - perl/tk text widget with bindings to undo changes.
-
-=for pm Tk/TextUndo.pm
-
-=for category Derived Widgets
-
-=head1 SYNOPSIS
-
-S< >B<use Tk::TextUndo;>
-
-S< >I<$testundo> = I<$parent>-E<gt>B<TextUndo>(?I<-option>=E<gt>I<value>, ...?);
-
-=head1 DESCRIPTION
-
-This IS-A text widget with an unlimited 'undo' history but without
-a re'undo' capability.
-
-=head2 Bindings
-
-The C<TextUndo> widget has the same bindings as the L<Text|Tk::Text> widget.
-In addition there are the following bindings:
-
-=over 4
-
-=item Event <L4> <<Undo>>
-
-undo the last change. Pressing <L4> several times undo
-step by step the changes made to the text widget.
-
-=back
-
-=head2 Methods
-
-The C<TextUndo> widget has the same methods as C<Text> widget.
-Additional methods for the C<TextUndo> widget are:
-
-=over 4
-
-=item $text->Load($filename);
-
-Loads the contents of the $filename into the text widget. Load()
-delete the previous contents of the text widget as well as it's
-undo history of the previous file.
-
-=item $text->Save(?$otherfilename?)
-
-Save contents of the text widget to a file. If the
-$otherfilename is not specified, the text widget contents
-writes the file of $filename used in the last Load()
-call. If no file was previously Load()'ed an error message
-pops up. The default filename of the last Load() call
-is not overwriten by $otherfilename.
-
-=item $text->FileName(?$otherfilename?)
-
-If passed an argument sets the file name associated with the loaded
-document. Returns the current file name associated with the document.
-
-=back
-
-=head1 KEYS
-
-widget, text, undo
-
-=head1 SEE ALSO
-
-L<Tk::Text>, L<Tk::ROText>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Tiler.pm b/Master/tlpkg/tlperl/lib/Tk/Tiler.pm
deleted file mode 100644
index ee05dacae63..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Tiler.pm
+++ /dev/null
@@ -1,202 +0,0 @@
-# Copyright (c) 1995-2004 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-# An example of a geometry manager "widget" in perl
-package Tk::Tiler;
-require Tk;
-require Tk::Frame;
-
-use vars qw($VERSION);
-#$VERSION = sprintf '4.%03d', q$Revision: #12 $ =~ /\D(\d+)\s*$/;
-$VERSION = '4.013';
-
-use base qw(Tk::Frame);
-
-Construct Tk::Widget 'Tiler';
-sub Tk::Widget::ScrlTiler { shift->Scrolled('Tiler' => @_) }
-
-sub FocusChildren
-{
- return (wantarray) ? () : 0;
-}
-
-sub Populate
-{
- my ($obj,$args) = @_;
- $obj->SUPER::Populate($args);
- $obj->{Slaves} = [];
- $obj->{LayoutPending} = 0;
- $obj->{Start} = 0;
- $obj->{Sw} = 0;
- $obj->{Sh} = 0;
- $obj->ConfigSpecs('-takefocus' => ['SELF', 'takeFocus','TakeFocus',1],
- '-highlightthickness' => ['SELF', 'highlightThickness','HighlightThickness',2],
- '-yscrollcommand' => ['CALLBACK',undef,undef,undef],
- '-columns' => ['PASSIVE','columns','Columns',5],
- '-rows' => ['PASSIVE','rows','Rows',10]
- );
- return $obj;
-}
-
-sub change_size
-{
- my ($w) = shift;
- my $r = $w->cget('-rows');
- my $c = $w->cget('-columns');
- my $bw = $w->cget(-highlightthickness);
- if (defined $r && defined $c)
- {
- $w->GeometryRequest($c*$w->{Sw}+2*$bw,$r*$w->{Sh}+2*$bw);
- }
-}
-
-sub Layout
-{
- my $m = shift;
- my $bw = $m->cget(-highlightthickness);
- my $why = $m->{LayoutPending};
- $m->{LayoutPending} = 0;
- my $W = $m->Width;
- my $H = $m->Height;
- my $w = $m->{Sw} || 1; # max width of slave
- my $h = $m->{Sh} || 1; # max height of slave
- my $x = $bw;
- my $y = $bw;
- my $start = 0;
- # Set size and position of slaves
- my $rows = $m->{Rows} = int(($H-2*$bw)/$h) || 1;
- my $cols = $m->{Cols} = int(($W-2*$bw)/$w) || 1;
- my $need = $m->{Need} = int( (@{$m->{Slaves}}+$cols-1)/$cols );
- $m->{Start} = ($need - $rows) if ($m->{Start} + $rows > $need);
-
- $m->{Start} = 0 if ($m->{Start} < 0);
- my $row = 0;
- my @posn = ();
- my $s;
- foreach $s (@{$m->{Slaves}})
- {
- if ($row < $m->{Start})
- {
- $s->UnmapWindow;
- $x += $w;
- if ($x+$w+$bw > $W)
- {
- $x = $bw;
- $row++;
- }
- }
- elsif ($y+$h+$bw > $H)
- {
- $s->UnmapWindow;
- $s->ResizeWindow($w,$h) if ($why & 1);
- }
- else
- {
- push(@posn,[$s,$x,$y]);
- $x += $w;
- if ($x+$w+$bw > $W)
- {
- $x = $bw;
- $y += $h;
- $row++;
- }
- }
- $s->ResizeWindow($w,$h) if ($why & 1);
- }
- $row++ if ($x > $bw);
- if (defined $m->{Prev} && $m->{Prev} > $m->{Start})
- {
- @posn = reverse(@posn);
- }
- while (@posn)
- {
- my $posn = shift(@posn);
- my ($s,$x,$y) = (@$posn);
- $s->MoveWindow($x,$y);
- $s->MapWindow;
- }
- $m->{Prev} = $m->{Start};
- $m->Callback(-yscrollcommand => $m->{Start}/$need,$row/$need) if $need;
-}
-
-sub QueueLayout
-{
- my ($m,$why) = @_;
- $m->afterIdle(['Layout',$m]) unless ($m->{LayoutPending});
- $m->{LayoutPending} |= $why;
-}
-
-sub SlaveGeometryRequest
-{
- my ($m,$s) = @_;
- my $sw = $s->ReqWidth;
- my $sh = $s->ReqHeight;
- my $sz = 0;
- if ($sw > $m->{Sw})
- {
- $m->{Sw} = $sw;
- $m->QueueLayout(1);
- $sz++;
- }
- if ($sh > $m->{Sh})
- {
- $m->{Sh} = $sh;
- $m->QueueLayout(1);
- $sz++;
- }
- $m->change_size if ($sz);
-}
-
-sub LostSlave
-{
- my ($m,$s) = @_;
- @{$m->{Slaves}} = grep($_ != $s,@{$m->{Slaves}});
- $m->QueueLayout(2);
-}
-
-sub Manage
-{
- my $m = shift;
- my $s;
- foreach $s (@_)
- {
- $m->ManageGeometry($s);
- push(@{$m->{Slaves}},$s);
- $m->SlaveGeometryRequest($s);
- }
- $m->QueueLayout(2 | 1);
-}
-
-sub moveto
- {
- my ($m,$frac) = (@_);
- $m->{Start} = int($m->{Need} * $frac);
- $m->QueueLayout(4);
- }
-
-sub scroll
- {
- my ($m,$delta,$type) = @_;
- $delta *= $m->{Rows}/2 if ($type eq 'pages');
- $m->{Start} += $delta;
- $m->QueueLayout(4);
- }
-
-sub yview { my $w = shift; my $c = shift; $w->$c(@_) }
-
-sub FocusIn
-{
- my ($w) = @_;
-# print 'Focus ',$w->PathName,"\n";
-}
-
-sub ClassInit
-{
- my ($class,$mw) = @_;
- $mw->bind($class,'<Configure>',['QueueLayout',8]);
- $mw->bind($class,'<FocusIn>', 'NoOp');
- $mw->YscrollBind($class);
- return $class;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/Tiler.pod b/Master/tlpkg/tlperl/lib/Tk/Tiler.pod
deleted file mode 100644
index 2db172ebaf1..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Tiler.pod
+++ /dev/null
@@ -1,32 +0,0 @@
-
-=head1 NAME
-
-Tk::Tiler - Scrollable frame with sub-widgets arranged into rows
-
-=for pm Tk/Tiler.pm
-
-=for category Tk Geometry Management
-
-=head1 SYNOPSIS
-
- use Tk::Tiler;
-
- my $tl = $parent->Scrolled('Tiler', -columns => n, -rows => n);
-
- my $a = $tl->Xxxxx(...);
- my $b = $tl->Xxxxx(...);
- my $c = $tl->Xxxxx(...);
-
- $tl->Manage($a,$b,$c);
-
-=head1 DESCRIPTION
-
-Tiler is derived form Tk::Frame. It is a geometry managing widget which
-accepts widgets to manage. It places the widgets in a grid with as many
-widgets as possible in a row. All the "slots" in the grid are the same size,
-which is determined by the largest managed widget.
-
-The grid may be scrolled vertically.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/TixGrid.pm b/Master/tlpkg/tlperl/lib/Tk/TixGrid.pm
deleted file mode 100644
index 35f7e6c2099..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/TixGrid.pm
+++ /dev/null
@@ -1,1597 +0,0 @@
-
-# TODO:
-#
-# o How to get into state 's0' 'b0' so cursor keys start
-# working (compare with Tk/Widget XYscrollBind
-# o the options -browsecmd and -command callback are not
-# not implemented (as in Tix)
-# o privateData 'state' used only once (check again Grid.tcl)
-# o FloatEntry 'sometimes not activeted immediately on selection
-# o check also Leave Binding. Looks like entry does get unpost'ed
-
-package Tk::TixGrid;
-
-BEGIN
- {
- use vars '$DEBUG';
- $DEBUG = (defined($ENV{USER}) and $ENV{USER} eq 'ach') ? 1 : 0;
- print STDERR "tixGrid: debug = $DEBUG\n" if $DEBUG;
- }
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '4.010'; # sprintf '4.%03d', q$Revision: #9 $ =~ /\D(\d+)\s*$/;
-
-use Tk qw(Ev $XS_VERSION);
-use Tk::Widget;
-use Carp;
-
-# carp "\n".__PACKAGE__.' is deprecated' unless defined($Test::ntest);
-
-use base 'Tk::Widget';
-
-Construct Tk::Widget 'TixGrid';
-
-bootstrap Tk::TixGrid;
-
-sub Tk_cmd { \&Tk::tixGrid }
-
-sub Tk::Widget::SrclTixGrid { shift->Scrolled('TixGrid' => @_) }
-
-Tk::Methods qw(anchor bdtype delete entrycget entryconfigure format index
- move set size unset xview yview
- dragsite dropsite geometryinfo info
- nearest see selection sort );
-
-use Tk::Submethods
- (
- 'anchor' => [ qw(get set) ],
- 'delete' => [ qw(column row) ],
- 'info' => [ qw(bbox exists anchor) ],
- 'move' => [ qw(column row) ],
- 'selection' => [ qw(adjust clear includes set) ],
- 'size' => [ qw(column row) ],
- 'format' => [ qw(grid border) ],
- );
-
-# edit subcommand is special. It justs invokes tcl code:
-#
-# edit set x y -> tixGrid:EditCell $w, x, y
-# edit apply -> tixGrid:EditApply
-
-# xxx Create an edit sub?
-# sub edit { .... }
-
-sub editSet
- {
- die "wrong args. Should be \$w->editSet(x,y)\n" unless @_ == 3;
- my ($w, $x, $y) = @_;
- $w->EditCell($x, $y);
- }
-
-sub editApply
- {
- die "wrong args. Should be \$w->editApply()\n" unless @_ == 1;
- my ($w) = @_;
- $w->EditApply()
- }
-
-
-####################################################
-##
-## For button 2 scrolling. So TixGrid has 'standard'
-## standard scrolling interface
-##
-
-#sub scanMark
-# {
-# die "wrong # args: \$w->scanMark(x,y)\n" unless @_ == 3;
-# my ($w) = @_;
-# $w->{__scanMarkXY__} = [ @_[1,2] ];
-# return "";
-# }
-#
-#sub scanDragto
-# {
-# die "wrong # args: \$w->scanDragto(x,y)\n" unless @_ == 3;
-# my ($w, $x, $y) = @_;
-# my ($ox, $oy) = @{ $w->{__scanMarkXY__} };
-#
-# #...
-#
-# return "";
-# }
-
-### end button 2 scrolling stuff ####################
-
-
-# Grid.tcl --
-#
-# This file defines the default bindings for Tix Grid widgets.
-#
-# Copyright (c) 1996, Expert Interface Technologies
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# Bindings translated to perl/Tk by Achim Bohnet <ach@mpe.mpg.de>
-
-sub ClassInit
- {
- my ($class, $mw) = @_;
- $class->SUPER::ClassInit($mw);
-
- $mw->XYscrollBind($class);
-
- ##
- ## Button bindings
- ##
-
- $mw->bind($class, '<ButtonPress-1>', ['Button_1', Ev('x'), Ev('y')]);
- $mw->bind($class, '<Shift-ButtonPress-1>', ['Shift_Button_1', Ev('x'), Ev('y')]);
- $mw->bind($class, '<Control-ButtonPress-1>',['Control_Button_1', Ev('x'), Ev('y')]);
- $mw->bind($class, '<ButtonRelease-1>', ['ButtonRelease_1', Ev('x'), Ev('y')]);
- $mw->bind($class, '<Double-ButtonPress-1>', ['Double_1', Ev('x'), Ev('y')]);
- $mw->bind($class, '<B1-Motion>','Button_Motion');
- $mw->bind($class, '<Control-B1-Motion>','Control_Button_Motion');
- $mw->bind($class, '<B1-Leave>','Button_Leave');
- $mw->bind($class, '<Double-ButtonPress-1>', ['Double_1', Ev('x'), Ev('y')]);
- $mw->bind($class, '<B1-Enter>', ['B1_Enter', Ev('x'), Ev('y')]);
- $mw->bind($class, '<Control-B1-Leave>','Control_Button_Leave');
- $mw->bind($class, '<Control-B1-Enter>', ['Control_B1_Enter', Ev('x'), Ev('y')]);
-
- ##
- ## Keyboard bindings
- ##
-
- $mw->bind($class, '<Up>', ['DirKey', 'up' ]);
- $mw->bind($class, '<Down>', ['DirKey', 'down' ]);
- $mw->bind($class, '<Left>', ['DirKey', 'left' ]);
- $mw->bind($class, '<Right>', ['DirKey', 'right' ]);
-
- $mw->PriorNextBind($class);
-
- $mw->bind($class, '<Return>', 'Return');
- $mw->bind($class, '<space>', 'Space' );
-
- return $class;
- }
-
-#----------------------------------------------------------------------
-#
-#
-# Mouse bindings
-#
-#
-#----------------------------------------------------------------------
-
-sub Button_1
- {
- my $w = shift;
-
- return if $w->cget('-state') eq 'disabled';
- $w->SetFocus;
- $w->ChgState(@_,
- [
- '0'=>'1',
- ]
- );
- }
-
-sub Shift_Button_1
- {
- my $w = shift;
-
- return if $w->cget('-state') eq 'disabled';
- $w->SetFocus;
-
-# $w->ChgState(@_,
-# [
-# ]
-# );
- }
-
-sub Control_Button_1
- {
- my $w = shift;
-
- return if $w->cget('-state') eq 'disabled';
- $w->SetFocus;
-
- $w->ChgState(@_,
- [
- 's0' => 's1',
- 'b0' => 'b1',
- 'm0' => 'm1',
- 'e0' => 'e10',
- ]
- );
- }
-
-sub ButtonRelease_1
- {
- shift->ChgState(@_,
- [
- '2' => '5',
- '4' => '3',
- ]
- );
- }
-
-sub B1_Motion
- {
- shift->ChgState(@_,
- [
- '2' => '4',
- '4' => '4',
- ]
- );
- }
-
-
-sub Control_B1_Motion
- {
- shift->ChgState(@_,
- [
- 's2' => 's4',
- 's4' => 's4',
- 'b2' => 'b4',
- 'b4' => 'b4',
- 'm2' => 'm4',
- 'm5' => 'm4',
- ]
- );
- }
-
-
-sub Double_1
- {
- shift->ChgState(@_,
- [
- 's0' => 's7',
- 'b0' => 'b7',
- ]
- );
- }
-
-
-sub B1_Leave
- {
- shift->ChgState(@_,
- [
- 's2' => 's5',
- 's4' => 's5',
- 'b2' => 'b5',
- 'b4' => 'b5',
- 'm2' => 'm8',
- 'm5' => 'm8',
- 'e2' => 'e8',
- 'e5' => 'e8',
- ]
- );
- }
-
-
-sub B1_Enter
- {
- shift->ChgState(@_,
- [
- 's5' => 's4',
- 's6' => 's4',
- 'b5' => 'b4',
- 'b6' => 'b4',
- 'm8' => 'm4',
- 'm9' => 'm4',
- 'e8' => 'e4',
- 'e9' => 'e4',
- ]
- );
- }
-
-
-sub Control_B1_Leave
- {
- shift->ChgState(@_,
- [
- 's2' => 's5',
- 's4' => 's5',
- 'b2' => 'b5',
- 'b4' => 'b5',
- 'm2' => 'm8',
- 'm5' => 'm8',
- ]
- );
- }
-
-
-sub Control_B1_Enter
- {
- shift->ChgState(@_,
- [
- 's5' => 's4',
- 's6' => 's4',
- 'b5' => 'b4',
- 'b6' => 'b4',
- 'm8' => 'm4',
- 'm9' => 'm4',
- ]
- );
- }
-
-
-sub AutoScan
- {
- shift->ChgState(@_,
- [
- 's5' => 's9',
- 's6' => 's9',
- 'b5' => 'b9',
- 'b6' => 'b9',
- 'm8' => 'm9',
- 'm9' => 'm9',
- 'e8' => 'm9',
- 'e9' => 'm9',
- ]
- );
- }
-
-#----------------------------------------------------------------------
-#
-#
-# Key bindings
-#
-#
-#----------------------------------------------------------------------
-
-sub DirKey
- {
- my ($w, $key) = @_;
-
- return if $w->cget('-state') eq 'disabled';
-
-print STDERR "$w->DirKey($key)\n" if $DEBUG;
- $w->ChgState($key,
- [
- 's0' => 's8',
- 'b0' => 'b8',
- ]
- );
- }
-
-
-sub Return
- {
- my ($w) = @_;
-
- return if $w->cget('-state') eq 'disabled';
-
- $w->ChgState(
- [
- 's0' => 's9',
- 'b0' => 'b9',
- ]
- );
- }
-
-
-sub Space
- {
- my ($w) = @_;
-
- return if $w->cget('-state') eq 'disabled';
-
- $w->ChgState(
- [
- 's0' => 's10',
- 'b0' => 'b10',
- ]
- );
- }
-
-
-#----------------------------------------------------------------------
-#
-# STATE MANIPULATION
-#
-#
-#----------------------------------------------------------------------
-
-sub GetState
- {
- my ($w) = @_;
- my $data = $w->privateData();
- $data->{state} = 0 unless exists $data->{state};
- return $data->{state};
-}
-
-sub Button_Motion
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $Tk::x = $Ev->x;
- $Tk::y = $Ev->y;
- $Tk::X = $Ev->X;
- $Tk::Y = $Ev->Y;
- $w->B1_Motion($Tk::x, $Tk::y);
-}
-
-
-sub Control_Button_Motion
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $Tk::x = $Ev->x;
- $Tk::y = $Ev->y;
- $Tk::X = $Ev->X;
- $Tk::Y = $Ev->Y;
- $w->Control_B1_Motion($Tk::x, $Tk::y);
-}
-
-
-sub Button_Leave
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $Tk::x = $Ev->x;
- $Tk::y = $Ev->y;
- $Tk::X = $Ev->X;
- $Tk::Y = $Ev->Y;
- $w->B1_Leave();
-}
-
-
-sub Control_Button_Leave
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $Tk::x = $Ev->x;
- $Tk::y = $Ev->y;
- $Tk::X = $Ev->X;
- $Tk::Y = $Ev->Y;
- $w->Control_B1_Leave();
-}
-
-
-sub SetState
- {
- my ($w, $state) = @_;
- $w->privateData()->{state} = $state;
- }
-
-sub GoState
- {
- my ($w, $state) = (shift, shift);
- print STDERR 'Gostate: ', $w->GetState, " --> $state, " if $DEBUG;
- $w->SetState($state);
- my $method = "GoState_$state";
-
- print STDERR 'args=(', join(',',@_), ')'.
- "\t(",$w->cget('-selectmode').
- ',',$w->cget('-selectunit').")\n" if $DEBUG;
-
- if (0)
- {
- $@ = '';
- %@ = (); # Workaround to prevent spurious loss of $@
- eval { $w->$method(@_) };
- print STDERR "Error Gostate: '$state': ", $@ if $@;
- return undef;
- }
-
- $w->$method(@_);
- return undef
- }
-
-##
-## ChgState is a fancy case statement
-##
-
-sub ChgState
- {
- my $w = shift;
- my $map = pop;
- print STDERR 'ChgState(', join(',',@_,'['), join(',',@$map,),']) ' if $DEBUG;
- my $state = $w->GetState;
-
- my ($match, $to);
- while (@$map)
- {
- $match = shift @$map;
- $to = shift @$map;
- if ($match eq $state)
- {
- print STDERR "$state --> $to \n" if $DEBUG;
- $w->GoState($to, @_);
- return;
- }
- }
- print STDERR "*no* chg for $state\n" if $DEBUG;
- }
-
-
-#----------------------------------------------------------------------
-# SELECTION ROUTINES
-#----------------------------------------------------------------------
-
-#proc tixGrid:SelectSingle {w ent} {
-# $w selection set [lindex $ent 0] [lindex $ent 1]
-# tixGrid:CallBrowseCmd $w $ent
-#}
-
-sub SelectSingle
- {
- my ($w, $n1, $n2) = @_;
- $w->selection('set', $n1, $n2);
- $w->Callback('-browsecmd' => $n1, $n2);
- }
-
-#----------------------------------------------------------------------
-# SINGLE SELECTION
-#----------------------------------------------------------------------
-
-sub GoState_0
- {
- my ($w) = @_;
- my $list = $w->privateData()->{list};
- return unless defined $list;
-
- foreach my $cmd (@$list)
- {
- # XXX should do more something like $w->Callback'('__pending_cmds__');
- eval $cmd; # XXX why in tcl in global context (binding?)
- }
- undef(@$list); # XXX should really delete? Maybe on needed in TCL
- }
-
-# XXXX how to translate global context
-# what does unset
-#proc tixGrid:GoState-0 {w} {
-# set list $w:_list
-# global $list
-#
-# if [info exists $list] {
-# foreach cmd [set $list] {
-# uplevel #0 $cmd
-# }
-# if [info exists $list] {
-# unset $list
-# }
-# }
-#}
-
-sub GoState_1
- {
- my ($w, $x, $y) = @_;
-
- my @ent = $w->mynearest($x,$y);
- if (@ent)
- {
- $w->SetAnchor(@ent);
- }
- $w->CheckEdit;
- $w->selection('clear', 0, 0, 'max', 'max');
-
- if ($w->cget('-selectmode') ne 'single')
- {
- $w->SelectSingle(@ent);
- }
- $w->GoState(2);
- }
-
-sub GoState_2
- {
- my ($w) = @_;
- }
-
-sub GoState_3
- {
- my ($w, $x, $y) = @_;
-
- my @ent = $w->mynearest($x,$y);
- if (@ent)
- {
- $w->SelectSingle(@ent);
- }
- $w->GoState(0);
-
- }
-
-sub GoState_4
- {
- my ($w, $x, $y) = @_;
-
- my (@ent) = $w->mynearest($x,$y);
- my $mode = $w->cget('-selectmode');
-
- if ($mode eq 'single')
- {
- $w->SetAnchor(@ent);
- }
- elsif ($mode eq 'browse')
- {
- $w->SetAnchor(@ent);
- $w->selection('clear', 0, 0, 'max', 'max');
- $w->SelectSingle(@ent);
- }
- elsif ($mode eq 'multiple' ||
- $mode eq 'extended')
- {
- my (@anchor) = $w->anchor('get');
- $w->selection('adjust', @anchor[0,1], @ent[0,1]);
- }
- }
-
-sub GoState_5
- {
- my ($w, $x, $y) = @_;
-
- my @ent = $w->mynearest($x,$y);
- if (@ent)
- {
- $w->SelectSingle(@ent);
- $w->SetEdit(@ent);
- }
- $w->GoState(0);
-
- }
-
-##############################################
-# BUG xxx
-# return scalar instead of errors
-
-sub mynearest { shift->split_s2a('nearest', @_); }
-sub myanchorGet { shift->split_s2a('anchor', 'get', @_); }
-
-sub split_s2a
- {
- my $w = shift;
- my $method = shift;
- my @ent = $w->$method(@_);
- if (@ent == 1)
- {
-my $tmp = $ent[0];
- @ent = split(/ /, $ent[0]) if @ent == 1;
-print STDERR join('|',"$method splitted '$tmp' =>",@ent,"\n") if $DEBUG;
- }
- else
- {
-#print STDERR join("|","$method splitted is okay :",@ent,"\n") if $DEBUG;
- }
- return @ent;
- }
-
-##############################################
-
-
-sub GoState_s5
- {
- shift->StartScan();
- }
-
-
-sub GoState_s6
- {
- shift->DoScan();
- }
-
-
-sub GoState_s7
- {
- my ($w, $x, $y) = @_;
-
- my @ent = $w->mynearest($x, $y);
- if (@ent)
- {
- $w->selection('clear');
- $w->selection('set', @ent);
- $w->Callback('-command' => @ent);
- }
- $w->GoState('s0');
- }
-
-
-sub GoState_s8
- {
- my ($w, $key) = @_;
-
- ## BUGS ....
- ## - anchor is bad, only bbox, exists8
- ## - looks like anchor is 1-dim: set anchor 0
- ## - method see unknown (even when defined with Tk::Method)
-
- my (@anchor) = $w->info('anchor');
- if (@anchor)
- {
- @anchor = ();
- }
- else
- {
- @anchor = $w->info($key, @anchor);
- }
-
- $w->anchor('set', @anchor);
- $w->see(@anchor);
-
- $w->GoState('s0');
- }
-
-#proc tixGrid:GoState-s8 {w key} {
-# set anchor [$w info anchor]
-#
-# if {$anchor == ""} {
-# set anchor 0
-# } else {
-# set anchor [$w info $key $anchor]
-# }
-#
-# $w anchor set $anchor
-# $w see $anchor
-# tixGrid:GoState s0 $w
-#}
-
-
-sub GoState_s9
- {
- my ($w, $key) = @_;
-
-#print STDERR "GoState_s9 is not implemented\n";
-
- my (@anchor) = $w->info('anchor');
- unless (@anchor)
- {
- @anchor = ();
- $w->anchor('set', @anchor);
- $w->see(@anchor);
- }
-
- unless ($w->info('anchor'))
- {
- # ! may not have any elements
- #
- $w->Callback('-command' => $w->info('anchor'));
- $w->selection('clear');
- $w->selection('set', @anchor);
- }
-
- $w->GoState('s0');
- }
-
-
-sub GoState_s10
- {
- my ($w, $key) = @_;
-
- my (@anchor) = $w->info('anchor');
- if (@anchor)
- {
- @anchor = ();
- $w->anchor('set', @anchor);
- $w->see(@anchor);
- }
-
- unless ($w->info('anchor'))
- {
- # ! may not have any elements
- #
- $w->Callback('-browsecmd' => $w->info('anchor'));
- $w->selection('clear');
- $w->selection('set', @anchor);
- }
-
- $w->GoState('s0');
- }
-
-
-#----------------------------------------------------------------------
-# BROWSE SELECTION
-#----------------------------------------------------------------------
-
-sub GoState_b0
- {
- my ($w) = @_;
- }
-
-sub GoState_b1
- {
- my ($w, $x, $y) = @_;
-
- my (@ent) = $w->mynearest($x, $y);
- if (@ent)
- {
- $w->anchor('set', @ent);
- $w->selection('clear');
- $w->selection('set', @ent);
- $w->Callback('-browsecmd' => @ent);
- }
-
- $w->GoState('b2');
- }
-
-sub GoState_b2
- {
- my ($w) = @_;
- }
-
-sub GoState_b3
- {
- my ($w) = @_;
-
- my (@ent) = $w->info('anchor');
- if (@ent)
- {
- $w->selection('clear');
- $w->selection('set', @ent);
- $w->selection('set', @ent);
- $w->Callback('-browsecmd' => @ent);
- }
-
- $w->GoState('b0');
- }
-
-
-sub GoState_b4
- {
- my ($w, $x, $y) = @_;
-
- my (@ent) = $w->mynearest($x, $y);
- if (@ent)
- {
- $w->anchor('set', @ent);
- $w->selection('clear');
- $w->selection('set', @ent);
- $w->Callback('-browsecmd' => @ent);
- }
- }
-
-
-sub GoState_b5 { shift->StartScan(); }
-
-
-sub GoState_b6 { shift->DoScan(); }
-
-
-sub GoState_b7
- {
- my ($w, $x, $y) = @_;
-
- my (@ent) = $w->mynearest($x, $y);
- if (@ent)
- {
- $w->selection('clear');
- $w->selection('set', @ent);
- $w->Callback('-command' => @ent);
- }
- $w->GoState('b0');
- }
-
-
-sub GoState_b8
- {
- my ($w, $key) = @_;
-
- my (@anchor) = $w->info('anchor');
- if (@anchor)
- {
- @anchor = $w->info('key', @anchor);
- }
- else
- {
- @anchor = (0,0); # ?????
- }
-
- $w->anchor('set', @anchor);
- $w->selection('clear');
- $w->selection('set', @anchor);
- $w->see(@anchor);
-
- $w->Callback('-browsecmd' => @anchor);
- $w->GoState('b0');
- }
-
-
-sub GoState_b9
- {
- my ($w) = @_;
-
- my (@anchor) = $w->info('anchor');
- unless (@anchor)
- {
- @anchor = (0,0);
- $w->anchor('set', @anchor);
- $w->see(@anchor);
- }
-
- if ($w->info('anchor'))
- {
- # ! may not have any elements
- #
- $w->Callback('-command' => $w->info('anchor'));
- $w->selection('clear');
- $w->selection('set', @anchor);
- }
-
- $w->GoState('b0');
- }
-
-
-sub GoState_b10
- {
- my ($w) = @_;
-
- my (@anchor) = $w->info('anchor');
- unless (@anchor)
- {
- @anchor = (0,0);
- $w->anchor('set', @anchor);
- $w->see(@anchor);
- }
-
- if ($w->info('anchor'))
- {
- # ! may not have any elements
- #
- $w->Callback('-browsecmd' => $w->info('anchor'));
- $w->selection('clear');
- $w->selection('set', @anchor);
- }
-
- $w->GoState('b0');
- }
-
-#----------------------------------------------------------------------
-# MULTIPLE SELECTION
-#----------------------------------------------------------------------
-
-
-sub GoState_m0
- {
- my ($w) = @_;
- }
-
-sub GoState_m1
- {
- my ($w, $x, $y) = @_;
-
- my (@ent) = $w->mynearest($x,$y);
- if (@ent)
- {
- $w->anchor('set', @ent);
- $w->selection('clear');
- $w->selection('set', @ent);
- $w->Callback('-browsecmd' => @ent);
- }
-
- $w->GoState('m2');
- }
-
-sub GoState_m2
- {
- my ($w) = @_;
- }
-
-sub GoState_m3
- {
- my ($w) = @_;
-
- my (@ent) = $w->info('anchor');
- if (@ent)
- {
- $w->Callback('-browsecmd' => @ent);
- }
-
- $w->GoState('m0');
- }
-
-
-sub GoState_m4
- {
- my ($w, $x, $y) = @_;
-
- my (@from) = $w->info('anchor');
- my (@to) = $w->mynearest($x, $y);
- if (@to)
- {
- $w->selection('clear');
- $w->selection('set', @from, @to);
- $w->Callback('-browsecmd' => @to);
- }
- $w->GoState('m5');
- }
-
-sub GoState_m5
- {
- my ($w) = @_;
- }
-
-sub GoState_m6
- {
- my ($w, $x, $y) = @_;
-
- my (@ent) = $w->mynearest($x, $y);
- if (@ent)
- {
- $w->Callback('-browsecmd' => @ent);
- }
- $w->GoState('m0');
- }
-
-sub GoState_m7
- {
- my ($w, $x, $y) = @_;
-
- my (@from) = $w->info('anchor');
- my (@to) = $w->mynearest($x, $y);
- unless (@from)
- {
- @from = @to;
- $w->anchor('set', @from);
- }
- if (@to)
- {
- $w->selection('clear');
- $w->selection('set', @from, @to);
- $w->Callback('-browsecmd' => @to);
- }
- $w->GoState('m5');
- }
-
-
-sub GoState_m8 { shift->StartScan() }
-
-
-sub GoState_m9 { shift->DoScan() }
-
-
-sub GoState_xm7
- {
- my ($w, $x, $y) = @_;
-
- my (@ent) = $w->mynearest($x, $y);
- if (@ent)
- {
- $w->selection('clear');
- $w->selection('set', @ent);
- $w->Callback('-browsecmd' => @ent);
- }
- $w->GoState('m0');
- }
-
-#----------------------------------------------------------------------
-# EXTENDED SELECTION
-#----------------------------------------------------------------------
-
-sub GoState_e0
- {
- my ($w) = @_;
- }
-
-sub GoState_e1
- {
- my ($w, $x, $y) = @_;
- my (@ent) = $w->mynearest($x, $y);
- if (@ent)
- {
- $w->anchor('set', @ent);
- $w->selection('clear');
- $w->selection('set', @ent);
- $w->Callback('-browsecmd' => @ent);
- }
- $w->GoState('e2');
- }
-
-
-sub GoState_e2
- {
- my ($w) = @_;
- }
-
-sub GoState_e3
- {
- my ($w) = @_;
-
- my (@ent) = $w->info('anchor');
- if (@ent)
- {
- $w->Callback('-browsecmd' => @ent);
- }
- $w->GoState('e0');
- }
-
-sub GoState_e4
- {
- my ($w, $x, $y) = @_;
-
- my (@from) = $w->info('anchor');
- my (@to) = $w->mynearest($x, $y);
- if (@to)
- {
- $w->selection('clear');
- $w->selection('set', @from, @to);
- $w->Callback('-browsecmd' => @to);
- }
- $w->GoState('e5');
- }
-
-sub GoState_e5
- {
- my ($w) = @_;
- }
-
-sub GoState_e6
- {
- my ($w, $x, $y) = @_;
-
- my (@ent) = $w->mynearest($x, $y);
- if (@ent)
- {
- $w->Callback('-browsecmd' => @ent);
- }
- $w->GoState('e0');
- }
-
-sub GoState_e7
- {
- my ($w, $x, $y) = @_;
-
- my (@from) = $w->info('anchor');
- my (@to) = $w->mynearest($x, $y);
- unless (@from)
- {
- @from = @to;
- $w->anchor('set', @from);
- }
- if (@to)
- {
- $w->selection('clear');
- $w->selection('set', @from, @to);
- $w->Callback('-browsecmd' => @to);
- }
- $w->GoState('e5');
- }
-
-sub GoState_e8 { shift->StartScan(); }
-
-sub GoState_e9 { shift->DoScan(); }
-
-sub GoState_e10
- {
- my ($w, $x, $y) = @_;
-
- my (@ent) = $w->mynearest($x, $y);
- if (@ent)
- {
- if ($w->info('anchor'))
- {
- $w->anchor('set', @ent);
- }
- if ($w->selection('includes', @ent))
- {
- $w->selection('clear', @ent);
- }
- else
- {
- $w->selection('set', @ent);
- }
- $w->Callback('-browsecmd' => @ent);
- }
- $w->GoState('e2');
- }
-
-sub GoState_xe7
- {
- my ($w, $x, $y) = @_;
-
- my (@ent) = $w->mynearest($x, $y);
- if (@ent)
- {
- $w->selection('clear');
- $w->selection('set', @ent);
- $w->Callback('-command' => @ent);
- }
- $w->GoState('e0');
- }
-
-
-#----------------------------------------------------------------------
-# HODGE PODGE
-#----------------------------------------------------------------------
-
-sub GoState_12
- {
- my ($w, $x, $y) = @_;
-
- $w->CancelRepeat; # xxx will not work
- $w->GoState(5, $x, $y);
- }
-#proc tixGrid:GoState-12 {w x y} {
-# tkCancelRepeat
-# tixGrid:GoState 5 $w $x $y
-#}
-
-sub GoState_13
- {
- # FIX: a) $ent or @ent, b) 13 is never called!!? same in Grid.tcl
- my ($w, @ent, @oldEnt) = @_;
-
- my $data = $w->MainWindow->privateData('Tix');
- $data->{indicator} = \@ent;
- $data->{oldEntry} = \@oldEnt;
- $w->IndicatorCmd('<Arm>', @ent);
- }
-# set tkPriv(tix,oldEnt) $oldEnt
-# tixGrid:IndicatorCmd $w <Arm> $ent
-#}
-
-sub GoState_14
- {
- my ($w, $x, $y) = @_;
-
- my $data = $w->MainWindow->privateData('Tix');
- if ($w->InsideArmedIndicator($x, $y))
- {
- $w->anchor('set', @{ $data->{indicator} });
- $w->selection('clear');
- $w->selection('set', @{ $data->{indicator} });
- $w->IndicatorCmd('<Activate>', @{ $data->{indicator} });
- }
- else
- {
- $w->IndicatorCmd('<Disarm>', @{ $data->{indicator} });
- }
- delete($data->{indicator});
- $w->GoState(0);
- }
-
-sub GoState_16
- {
- my ($w, @ent) = @_;
-
- return unless (@ent);
- if ($w->cget('-selectmode') ne 'single')
- {
- $w->Select(@ent);
- $w->Browse(@ent);
- }
- }
-
-sub GoState_18
- {
- my ($w) = @_;
-
- $w->CancelRepeat; ## xxx
- $w->GoState(6, $Tk::x, $Tk::y);
- }
-
-sub GoState_20
- {
- my ($w, $x, $y) = @_;
-
- my $data = $w->MainWindow->privateData('Tix');
- if ($w->InsideArmedIndicator($x, $y))
- {
- $w->IndicatorCmd('<Arm>', $data->{'indicator'});
- }
- else
- {
- $w->GoState(21, $x, $y);
- }
- }
-
-sub GoState_21
- {
- my ($w, $x, $y) = @_;
-
- my $data = $w->MainWindow->privateData('Tix');
- unless ($w->InsideArmedIndicator($x, $y))
- {
- $w->IndicatorCmd('<Disarm>', $data->{'indicator'});
- }
- else
- {
- $w->GoState(20, $x, $y);
- }
- }
-
-sub GoState_22
- {
- my ($w) = @_;
- my $data = $w->MainWindow->privateData('Tix');
- if (@{ $data->{oldEntry} })
- {
- $w->anchor('set', @{ $data->{oldEntry} });
- }
- else
- {
- $w->anchor('clear');
- }
- $w->GoState(0);
- }
-
-
-#----------------------------------------------------------------------
-# callback actions
-#----------------------------------------------------------------------
-
-sub SetAnchor
- {
- my ($w, @ent) = @_;
-
- if (@ent)
- {
- $w->anchor('set', @ent);
-# $w->see(@ent);
- }
- }
-
-# xxx check @ent of @$ent
-sub Select
- {
- my ($w, @ent) = @_;
- $w->selection('clear');
- $w->selection('set', @ent)
- }
-
-# xxx check new After handling
-sub StartScan
- {
- my ($w) = @_;
- $Tk::afterId = $w->after(50, [AutoScan, $w]);
- }
-
-sub DoScan
- {
- my ($w) = @_;
- my $x = $Tk::x;
- my $y = $Tk::y;
- my $X = $Tk::X;
- my $Y = $Tk::Y;
-
- my $out = 0;
- if ($y >= $w->height)
- {
- $w->yview('scroll', 1, 'units');
- $out = 1;
- }
- if ($y < 0)
- {
- $w->yview('scroll', -1, 'units');
- $out = 1;
- }
- if ($x >= $w->width)
- {
- $w->xview('scroll', 2, 'units');
- $out = 1;
- }
- if ($x < 0)
- {
- $w->xview('scroll', -2, 'units');
- $out = 1;
- }
- if ($out)
- {
- $Tk::afterId = $w->after(50, ['AutoScan', $w]);
- }
- }
-
-
-#proc tixGrid:CallBrowseCmd {w ent} {
-# return
-#
-# set browsecmd [$w cget -browsecmd]
-# if {$browsecmd != ""} {
-# set bind(specs) {%V}
-# set bind(%V) $ent
-#
-# tixEvalCmdBinding $w $browsecmd bind $ent
-# }
-#}
-
-#proc tixGrid:CallCommand {w ent} {
-# set command [$w cget -command]
-# if {$command != ""} {
-# set bind(specs) {%V}
-# set bind(%V) $ent
-#
-# tixEvalCmdBinding $w $command bind $ent
-# }
-#}
-
-# tixGrid:EditCell --
-#
-# This command is called when "$w edit set $x $y" is called. It causes
-# an SetEdit call when the grid's state is 0.
-#
-
-sub EditCell
- {
- my ($w, $x, $y) = @_;
- my $list = $w->privateData()->{'list'};
- if ($w->GetState == 0)
- {
- $w->SetEdit($x, $y); # xxx really correct ? once 2, once 4 args?
- }
- else
- {
- push(@$list, [ $w, 'SetEdit', $x, $y]);
- }
- }
-#proc tixGrid:EditCell {w x y} {
-# set list $w:_list
-# global $list
-#
-# case [tixGrid:GetState $w] {
-# {0} {
-# tixGrid:SetEdit $w [list $x $y]
-# }
-# default {
-# lappend $list [list tixGrid:SetEdit $w [list $x $y]]
-# }
-# }
-#}
-
-
-# tixGrid:EditApply --
-#
-# This command is called when "$w edit apply $x $y" is called. It causes
-# an CheckEdit call when the grid's state is 0.
-#
-
-sub EditApply
- {
- my ($w) = @_;
- my $list = $w->privateData()->{'list'};
- if ($w->GetState eq 0)
- {
- $w->CheckEdit; # xxx really correct ? once 2, once 4 args?
- }
- else
- {
- push(@$list, $w->CheckEdit);
- }
- }
-#proc tixGrid:EditApply {w} {
-# set list $w:_list
-# global $list
-#
-# case [tixGrid:GetState $w] {
-# {0} {
-# tixGrid:CheckEdit $w
-# }
-# default {
-# lappend $list [list tixGrid:CheckEdit $w]
-# }
-# }
-#}
-
-# tixGrid:CheckEdit --
-#
-# This procedure is called when the user sets the focus on a cell.
-# If another cell is being edited, apply the changes of that cell.
-#
-
-sub CheckEdit
- {
- my ($w) = @_;
- my $edit = $w->privateData->{editentry};
- if (Tk::Exists($edit))
- {
- # If it -command is not empty, it is being used for another cell.
- # Invoke it so that the other cell can be updated.
- #
- if (defined $edit->cget('-command'))
- {
- $edit->invoke; # xxx no args??
- }
- }
- }
-
-sub SetFocus
- {
- my ($w) = @_;
- if ($w->cget('-takefocus'))
- {
-$w->focus;
-# # xxx translation of if ![string match $w.* [focus -displayof $w]] {
-# my $hasfocus = $w->focus(-displayof => $w)->pathname;
-# my $pathname = $w->pathname;
-# if ($hasfocus =~ /\Q$pathname\E.*/)
-# {
-# $w->focus
-# }
- }
- }
-
-
-# tixGrid:SetEdit --
-#
-# Puts a floatentry on top of an editable entry.
-#
-
-sub SetEdit
- {
- my ($w, $px, $py) = @_;
-
- $w->CheckEdit;
-
- my $efc = $w->cget('-editnotifycmd');
- return unless ( defined($efc) && length($efc) );
-
- unless ($w->Callback('-editnotifycmd' => $px, $py))
- {
- print STDERR "editnotifycmd not defined or returned false\n";
- return;
- }
-
- my $oldvalue;
- if ($w->info('exists', $px, $py))
- {
- # if entry doesn't support -text option. Can't edit it.
- #
- # If the application wants to force editing of an entry, it could
- # delete or replace the entry in the editnotifyCmd procedure.
- #
- Tk::catch { $oldvalue = $w->entrycget($px, $py, '-text'); };
- if ($@)
- {
- return;
- }
- }
- else
- {
- $oldvalue = '';
- }
-
- my @bbox = $w->info('bbox', $px, $py);
-
- my $edit = $w->privateData()->{__EDIT__};
- unless (Tk::Exists($edit))
- {
- require Tk::FloatEntry;
- $edit = $w->FloatEntry();
- $w->privateData()->{__EDIT__} = $edit;
- }
- $edit->configure(-command=>[\&DoneEdit, $w, $px, $py]);
- $edit->post(@bbox);
- $edit->configure(-value=>$oldvalue);
-}
-
-
-sub DoneEdit
- {
- my ($w, $x, $y, @args) = @_;
-
- my $edit = $w->privateData()->{__EDIT__};
- $edit->configure(-command=>undef);
- $edit->unpost;
-
- # FIX xxx
- # set value [tixEvent value]
- my $value = $edit->get;
- if ($w->info('exists', $x, $y))
- {
- Tk::catch { $w->entryconfigure($x, $y, -text=>$value) };
- if ($@)
- {
- return
- }
- }
- elsif ( length($value) )
- {
- # This needs to be catch'ed because the default itemtype may
- # not support the -text option
- #
- Tk::catch { $w->set($x,$y,-text $value); };
- if ($@)
- {
- return;
- }
- }
- else
- {
- return;
- }
- $w->Callback('-editdonecmd' => $x, $y);
- }
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/TixGrid.pod b/Master/tlpkg/tlperl/lib/Tk/TixGrid.pod
deleted file mode 100644
index 93484db0076..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/TixGrid.pod
+++ /dev/null
@@ -1,539 +0,0 @@
-# Copyright (c) 1996, Expert Interface Technologies
-# See the file "license.terms" for information on usage and
-# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-# The file man.macros and some of the macros used by this file are
-# copyrighted: (c) 1990 The Regents of the University of California.
-# (c) 1994-1995 Sun Microsystems, Inc.
-# The license terms of the Tcl/Tk distribution are in the file
-# license.tcl.
-
-## TO CHECK:
-##
-## callback: checked for defined of code ref (compare -edit*cmd)
-##
-## option
-## formatcmd mentions format method but there is no format
-## method documented
-##
-## methods:
-## bdtype: what is it? no description given
-## see: not documented? Not implemented??
-##
-## todo: missing peaces marked by ????
-
-=head1 NAME
-
-Tk::TixGrid - Create and manipulate Tix Grid widgets
-
-=for pm TixGrid/TixGrid.pm
-
-=for category Tix Extensions
-
-=head1 SYNOPSIS
-
-S< >I<$tixgrid> = I<$parent>->B<TixGrid>?(I<options>)?;
-
-=head1 DESCRIPTION
-
-This widget is intended as the basis of "spread sheet" like interfaces.
-The widget displays its contents in a two dimensional "grid" of cells.
-Each cell may contain one Tix display item, which may be in text,
-graphics or other formats. See L<Tk::DItem> for more information
-about Tix display items. Because these "items" need not be "windows" large
-grids can be handled without consuming excessive display system resources.
-
-Individual cells, or groups of cells, can be formatted with a wide range of
-attributes, such as its color, relief and border. However because the
-widget is intended to handle large grids the mechanisms to achieve these
-are lower level, and more callback oriented than for other widgets. The
-assumption is that to avoid storing display details of a large number
-of cells, the data will be re-computed as needed.
-
-The port of Tix C code and some of the bindings to perl/Tk is done but still
-need further work. In several places the intent of the Tix code is not
-yet understood. For example the 'edit' interface is clearly intended
-for spread-sheet like cell content editing in an auxillary "entry" widget
-or similar, but how that should work is not yet clear.
-
-The B<TixGrid> method creates a new TixGrid window and returns a
-blessed reference of this TixGrid widget. Additional options,
-described below, may be specified on the command line or in the
-option database to configure aspects of the B<TixGrid> widget.
-
-=head1 STANDARD OPTIONS
-
-B<-background>
- B<-borderwidth>
- B<-cursor>
- B<-font>
- B<-foreground>
- B<-height>
- B<-highlightbackground>
- B<-highlightcolor>
- B<-highlightthickness>
- B<-padx>
- B<-pady>
- B<-relief>
- B<-selectbackground>
- B<-selectborderwidth>
- B<-selectforeground>
- B<-state>
- B<-takefocus>
- B<-width>
- B<-xscrollcommand>
- B<-yscrollcommand>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<browseCmd>
-
-=item Class: B<BrowseCmd>
-
-=item Switch: B<-browsecmd>
-
-If defined, gives a perl/Tk L<callback|Tk::callbacks> to be executed when the
-user browses a grid cell (This is normally the case when the user clicks on an
-entry). When this callback is called, it is passed with two additional
-parameters: I<x> I<y>, where (I<x>,I<y>) is the location of the cell that has
-just been clicked.
-
-=item Name: B<Command>
-
-=item Class: B<Command>
-
-=item Switch: B<-command>
-
-If defined, gives a perl/Tk L<callback|Tk::callbacks> to be executed when the
-user double-clicks a grid cell. When this callback is called, it is passed
-with two additional parameters: I<x> I<y>, where (I<x>,I<y>) is the location of
-the cell that has just been clicked.
-
-=item Name: B<editDoneCmd>
-
-=item Class: B<EditDoneCmd>
-
-=item Switch: B<-editdonecmd>
-
-If defined, gives a perl/Tk L<callback|Tk::callbacks>
-to be executed when the
-user has edited grid cell. When this callback is called, it is
-passed with two additional parameters: I<x> I<y>, where (I<x>,I<y>)
-is the location of the cell that has just been edited.
-
-=item Name: B<editNotifyCmd>
-
-=item Class: B<EditNotifyCmd>
-
-=item Switch: B<-editnotifycmd>
-
-If defined gives a perl/Tk L<callback|Tk::callbacks>
-to be executed when the user tries to edit a grid cell.
-When this callback is called, it is passed with two additional
-parameters: I<x> I<y>, where (I<x>,I<y>,) is the location
-of the cell. This callback should return a boolean value: B<true>
-indicates that the cell is editable and B<false> otherwise.
-
-=item Name: B<FloatingCols>
-
-=item Class: B<floatingCols>
-
-=item Switch: B<-floatingcols>
-
-Defines the number of extra columns beyond the existing grid
-that can be brought into view by scrolling.
-
-=item Name: B<FloatingRows>
-
-=item Class: B<floatingRows>
-
-=item Switch: B<-floatingrows>
-
-Defines the number of extra rows beyond the the existing grid
-that can be brought into view by scrolling.
-
-=item Name: B<formatCmd>
-
-=item Class: B<FormatCmd>
-
-=item Switch: B<-formatcmd>
-
-If defined, gives a perl/Tk L<callback|Tk::callbacks> to be
-executed when the grid cells need to be displayed on the screen.
-Its primary purpose is to draw the background of the region
-before the cells are rendered on top. This is normally
-achieved by calling B<formatGrid> or B<formatBorder> (see below).
-However other uses can be made of this low-level callback. For example it can be used
-to "lazily" populate the grid by calling the B<set> method only as cells come
-into view.
-
-When this callback is called, it is passed with five additional
-parameters: I<type> I<x1> I<y1> I<x2> I<y2>.
-
-I<x1> I<y1> I<x2> I<y2> gives the extent of the region that needs
-formatting.
-
-I<type> gives the logical type of the region in the grid. It may be one of the
-following.
-
-=over 8
-
-=item B<x_margin>
-
-The horizontal margin.
-
-=item B<y_margin>
-
-The vertical margin.
-
-=item B<s_margin>
-
-The area in the top left corner where the horizontal and vertical margins
-are joined.
-
-=item B<main>
-
-The main body i.e. all the cells that do not fall into the above three types.
-
-=back
-
-=item Name: B<leftMargin>
-
-=item Class: B<LeftMargin>
-
-=item Switch: B<-leftmargin>
-
-Gives the width of vertical margin in cells (columns).
-A zero indicates that no vertical margin exists. A positive value I<N>
-indicates that first I<N> columns are "labels" and are always displayed
-and not scrolled.
-
-=item Name: B<itemType>
-
-=item Class: B<ItemType>
-
-=item Switch: B<-itemtype>
-
-Default item type for cells.
-
-=item Name: B<selectMode>
-
-=item Class: B<SelectMode>
-
-=item Switch: B<-selectmode>
-
-Specifies one of several styles for manipulating the selection.
-The value of the option may be arbitrary, but the default bindings
-expect it to be either B<single>, B<browse>, B<multiple>, or B<extended>;
-the default value is B<single>.
-
-=item Name: B<selectUnit>
-
-=item Class: B<SelectUnit>
-
-=item Switch: B<-selectunit>
-
-Specifies the selection unit. Valid values are B<cell>, B<column> or B<row>.
-
-=item Name: B<sizeCmd>
-
-=item Class: B<SizeCmd>
-
-=item Switch: B<-sizecmd>
-
-Callback is called (with no extra arguments) when grid sizes are
-re-computed. For example if window changes size, a different font
-is specified etc.
-
-It is called just after scrollbars (if present) are updated.
-
-=item Name: B<topMargin>
-
-=item Class: B<TopMargin>
-
-=item Switch: B<-topmargin>
-
-Gives the width of horizontal margin in cells (rows).
-A zero indicates that no horizontal margin exists. A positive value
-I<N> indicates that first I<N> rows are "labels" and are always
-displayed and not scrolled.
-
-=back
-
-=head1 WIDGET METHODS
-
-The B<TixGrid> method creates a TixGrid widget and returns a blessed
-reference of this TixGrid widget. This reference may be used to
-invoke various operations on the widget. It has the following general
-form:
-
-S< >I<$tixgrid>->B<method>?(I<arg, arg, ...>)?
-
-I<arg>s determine the exact behavior of the method.
-
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-The following additional methods are possible for B<TixGrid> widgets:
-
-=over 4
-
-=item I<$tixgrid>->B<anchorGet>(I<x>, I<y>)
-
-=item I<$tixgrid>->B<anchorSet>(I<x>, I<y>)
-
-=item I<$tixgrid>->B<anchorClear>
-
-Manipulates the B<anchor cell> of the B<TixGrid> widget.
-The anchor cell is the end of the selection that is fixed
-while the user is dragging out a selection with the mouse.
-
-=item ($bd,$col,$row) = I<$tixgrid>->B<bdtype>(I<x,y> ?,I<xDelta>,I<yDelta>?)
-
-Determines if the the screen (pixel) position I<x,y> is in a border.
-This is useful for changing the mouse cursor when the user points at a
-border - e.g. to indicate that the border can be adjusted
-interactively.
-
-If in a border returns a list of three elements. First element
-is 'xy', 'x' or 'y', second two elements are integers.
-(Value of these are not understood, seem to indicate which
-column and row of the border the screen position corresponds to?)
-
-If not in a border returns an empty list.
-
-=item I<$tixgrid>->B<delete>(I<dim>, I<from>?, I<to>?)
-
-=item I<$tixgrid>->B<deleteColumn>(I<from>?, I<to>?)
-
-=item I<$tixgrid>->B<deleteRow>(I<from>?, I<to>?)
-
-I<Dim> may be B<row> or B<column>. If I<to> is not given,
-deletes a single row (or column) at the position I<from>.
-If I<to> is given, deletes the range of rows (or columns)
-from position I<from> through I<to>.
-
-=item I<$tixgrid>->B<dragsite>(I<option>, I<x>, I<y>)
-
-=item I<$tixgrid>->B<dropsite>(I<option>, I<x>, I<y>)
-
-Tcl/Tix has (or was going to have) Drag&Drop support.
-Meaning for perl/Tk is not clear yet.
-
-=item I<$tixgrid>->B<editApply>
-
-If any cell is being edited, de-highlight the cell and
-applies the changes.
-
-=item I<$tixgrid>->B<editSet>(I<x>, I<y>)
-
-Highlights the cell at (I<x>,I<y>) for editing,
-if the B<-editnotify> callback returns true for this cell.
-
-=item I<$tixgrid>->B<entrycget>(I<x>, I<y>, 'I<-option>')
-
-=item I<$tixgrid>->B<entryconfigure>(I<x>, I<y>?, I<-option>??=>I<value>, I<-option>=>I<value>, I<...>?)
-
-Provide a configue interface to cells in the grid.
-The I<-option>s depend on the item type of the cell.
-
-=item I<$tixgrid>->B<formatBorder>(I<x1,y1>, I<x2,y2>, I<options>);
-
-=item I<$tixgrid>->B<formatGrid>(I<x1,y1>, I<x2,y2>, I<options>);
-
-The B<formatBorder> and B<formatBorder> methods can only be called by the
-B<-formatcmd> callback of the tixGrid widget. They draw the background of
-the region described by I<x1,y1>, I<x2,y2> according the the supplied
-I<options>. One call to B<-formatcmd> callback can make multiple
-calls to B<formatBorder> and/or B<formatBorder> for different
-sub-regions.
-
-B<formatBorder> draws the background using Tk relief style,
-B<formatGrid> also draws grid lines between the cells.
-It only makes sense to call one or the other for a particular
-sub-region as one will over-write the other.
-
-The options allowed are:
-
-=over 8
-
-=item -background / -bg
-
-=item -borderwidth / -bd
-
-=item -filled
-
-=item -relief
-
-=item -selectbackground
-
-=item -xoff
-
-=item -xon
-
-=item -yoff
-
-=item -yon
-
-=back
-
-The B<-xon/-xoff and -yon/-yoff> options are obscure. If anyone
-can figure out how to do something interesting given what
-F<pTk/tixGrFmt.c> is doing with them please let Nick know!.
-
-=item I<$tixgrid>->B<geometryinfo>(?I<width>, I<height>?)
-
-Returns list of four values - two sets of two floating point numbers.
-First set is the scrollbar fractions for x direction, second set
-is scrollbar fractions for y direction. If I<width> and I<height>
-are specified then fractions are based on as if window size was of
-specified size (in pixels, but not allowing normal GetPixels units).
-Otherwise fractions are based on current size of the window.
-
-Usage obscure.
-
-=item I<$tixgrid>->B<index>(I<xcoord>, I<ycoord>)
-
-Retuns I<(x, y)> of entry at position (I<$coordx>, I<$coordy>).
-Either coordinate may be B<'max'> which is largest existing entry
-in that direction, B<'end'> which is one I<beyond> largest existing
-entry, or a number. (This is how you find out how big the grid is.)
-
-=item I<$tixgrid>->B<infoBbox>(I<x>,I<y>)
-
-Return the pixel bounding box of the cell at I<x,y>.
-
-=item I<$tixgrid>->B<infoExists>(I<x>,I<y>)
-
-Returns true if there is an item in the cell at I<x,y>.
-Throws an exception (dies) if I<x,y> is outside the
-grid - this may change (Nick doesn't like it).
-
-=item I<$tixgrid>->B<move>(I<dim>, I<from>, I<to>, I<offset>)
-
-=item I<$tixgrid>->B<moveColumn>(I<from>, I<to>, I<offset>)
-
-=item I<$tixgrid>->B<moveRow>(I<from>, I<to>, I<offset>)
-
-I<Dim> may be B<row> or B<column>. Moves the range of rows
-(or columns) from position I<from> through I<to> by the distance
-indicated by I<offset>. For example,
-I<$tixgrid>->B<moveRow>(B<2>, B<4>, B<1>) moves the rows 2,3,4
-to rows 3,4,5.
-
-=item I<$tixgrid>->B<nearest>(I<x>, I<y>)
-
-Screen pos (pixels) to entry (nx,ny) translation.
-
-=item I<$tixgrid>->B<selectionAdjust>(I<x1>, I<y1> ?,I<x2>, I<y2>?)
-
-=item I<$tixgrid>->B<selectionClear>(I<x1>, I<y1> ?,I<x2>, I<y2>?)
-
-=item I<$tixgrid>->B<selectionIncludes>(I<x1>, I<y1> ?,I<x2>, I<y2>?)
-
-=item I<$tixgrid>->B<selectionSet>(I<x1>, I<y1> ?,I<x2>, I<y2>?)
-
-=item I<$tixgrid>->B<selectionToggle>(I<x1>, I<y1> ?,I<x2>, I<y2>?)
-
-Selection support methods - probably buggy.
-
-x1 (y1) has not to be greater than x2 (y2), but only x2 and y2 can be 'max'.
-
-BUG: I<selectionIncludes>: has no visible effect (as in Tix). Eh???
-
-BUG: I<selectionClear>: only works for 0, 0, max, max (as in Tix). Eh???
-
-When I<x2, y2> are not given they default to I<x1, y1>, respectively.
-
-=item I<$tixgrid>->B<set>(I<x>, I<y>?, B<-itemtype>=>I<type>??, I<-option>=>I<value>, I<...>?)
-
-Creates a new display item at the cell at (I<x>,I<y>). The optional
-B<-itemtype> parameter gives the type of the display item.
-An additional list of I<option-value> pairs specify options
-of the display item. If a display item already exists at this cell,
-the old item will be deleted automatically.
-
-=item I<$tixgrid>->B<size>(I<dim>, I<index>?, I<-option>??=>I<value>, I<...>?)
-
-=item I<$tixgrid>->B<sizeColumn>(I<index>?, I<-option>??=>I<value>, I<...>?)
-
-=item I<$tixgrid>->B<sizeRow>(I<index>?, I<-option>??=>I<value>, I<...>?)
-
-Queries or sets the size of the row or column given by I<dim> and
-I<index>. I<Dim> may be B<row> or B<column>. I<Index> may be any
-non-negative integer that gives the position of a given row (or column).
-I<Index> can also be the string B<default>; in this case, this method
-queries or sets the default size of all rows (or columns).
-When no I<option-value> pair is given, this method returns
-a list containing the current size setting of the given row (or column).
-When I<option-value> pairs are given, the corresponding options
-of the size setting of the given row are changed. I<-option> may be
-one of the following:
-
-=over 8
-
-=item B<-pad0> => I<pixels>
-
-Specifies the paddings to the left of a column or the top of a row.
-
-=item B<-pad1> => I<pixels>
-
-Specifies the paddings to the right of a column or the bottom of a row.
-
-=item B<-size> => I<val>
-
-Specifies the width of a column or the height of a row.
-I<Val> may be: B<auto> -- the width of the column is set
-the widest cell in the column; a valid Tk screen distance
-unit (see B<Tk_GetPixels>); or a real number following by the
-word B<chars> (e.g. B<3.4chars>) that sets the width of the
-column to the given number of characters.
-
-=back
-
-=item I<$tixgrid>->B<sort>(I<dimension>, I<start>, I<end>, ?I<args ...>?)
-
-?docu here? (not supported on Win* OSs up to now)
-
-=item I<$tixgrid>->B<unset>(I<x>, I<y>)
-
-Clears the cell at (I<x>,I<y>) by removing its display item.
-
-=item I<$tixgrid>->B<xview>
-
-Normal horizontal scrollbar method.
-
-=item I<$tixgrid>->B<yview>
-
-Normal vertical scrollbar method.
-
-=back
-
-=head1 BINDINGS
-
-To be done - only most obvious basic bindings work. The Tcl/Tix code
-was coded as a "state machine" which is not easy to follow.
-
-=head1 SEE ALSO
-
-L<Tk::DItem|Tk::DItem>
-L<Tk::callbacks|Tk::callbacks>
-L<Tk::FloatEntry|Tk::FloatEntry>
-
-=head1 BUGS
-
-Tcl/Tix was/is not finished and both C code and bindings of TixGrid
-have some bugs.
-
-=head1 KEYWORDS
-
-tix, tixgrid, table, display item, spreadsheet
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Tk.xbm b/Master/tlpkg/tlperl/lib/Tk/Tk.xbm
deleted file mode 100644
index 136d4793037..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Tk.xbm
+++ /dev/null
@@ -1,44 +0,0 @@
-#define Tk.xbm_width 61
-#define Tk.xbm_height 61
-static unsigned char Tk.xbm_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xf8, 0x0e, 0x00, 0x00,
- 0x00, 0xe0, 0x1e, 0x00, 0xbe, 0x3e, 0x00, 0x00, 0x00, 0xfb, 0x1e, 0x00,
- 0xfe, 0x7f, 0x00, 0x00, 0x80, 0xdf, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x00,
- 0x80, 0xe0, 0x3d, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0x47, 0x7f, 0x80,
- 0xff, 0xfd, 0x01, 0x00, 0x00, 0x7f, 0x3e, 0xc0, 0xff, 0xf1, 0x01, 0x00,
- 0x00, 0x30, 0x7f, 0xf0, 0xfe, 0xb3, 0x03, 0x00, 0x00, 0xf8, 0x3e, 0x7c,
- 0xff, 0xcf, 0x07, 0x00, 0x00, 0x78, 0x37, 0xfc, 0x7b, 0xc3, 0x07, 0x00,
- 0x00, 0xfc, 0x3d, 0xfe, 0x3c, 0x25, 0x0e, 0x00, 0x00, 0xfc, 0x3e, 0x5f,
- 0x18, 0x41, 0x0b, 0x00, 0x00, 0x5c, 0x3f, 0x5f, 0xf0, 0x59, 0x1b, 0x00,
- 0x00, 0xdc, 0x9f, 0x3f, 0xe8, 0xbe, 0x17, 0x00, 0x00, 0xbc, 0x9f, 0x2f,
- 0xa8, 0x5b, 0x15, 0x00, 0x00, 0xdc, 0xdf, 0x25, 0x48, 0x7a, 0x34, 0x00,
- 0x00, 0x7c, 0xce, 0x1f, 0x20, 0x2c, 0x36, 0x00, 0x00, 0x7c, 0xa7, 0x1f,
- 0xcc, 0x09, 0xf0, 0x00, 0x00, 0xfc, 0xae, 0x1f, 0x49, 0x05, 0xf6, 0x00,
- 0x00, 0xfc, 0xac, 0x3f, 0xf8, 0x11, 0xf6, 0x00, 0x00, 0xf8, 0x8d, 0x3f,
- 0x8e, 0x0e, 0xd6, 0x01, 0x00, 0xf8, 0x9c, 0x7e, 0xd7, 0x5b, 0xff, 0x03,
- 0x00, 0x70, 0x83, 0x5f, 0xcf, 0xfd, 0xbf, 0x01, 0x00, 0xe0, 0xc3, 0x3b,
- 0xc7, 0xff, 0x3f, 0x03, 0x00, 0xe0, 0xcf, 0xbf, 0xe3, 0xff, 0x97, 0x03,
- 0x00, 0x80, 0xfb, 0x7f, 0xfb, 0xff, 0x17, 0x01, 0x00, 0x80, 0xef, 0xff,
- 0xb3, 0x6f, 0x17, 0x03, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x3f, 0x17, 0x03,
- 0x00, 0x00, 0x88, 0xff, 0xbf, 0x3f, 0x1b, 0x03, 0x00, 0x00, 0x00, 0x7b,
- 0x3d, 0x1f, 0x9f, 0x01, 0x00, 0x00, 0x80, 0x1f, 0x7f, 0x1f, 0x9e, 0x00,
- 0x00, 0x00, 0x80, 0x1f, 0x3f, 0x0f, 0x1e, 0x00, 0x00, 0x00, 0x80, 0x1f,
- 0x1f, 0x0f, 0x1e, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x1f, 0x0e, 0x1e, 0x00,
- 0x00, 0xfe, 0x81, 0x8f, 0x1f, 0x0f, 0x1c, 0x00, 0x00, 0x98, 0x81, 0xc7,
- 0x1f, 0x0e, 0x18, 0x00, 0x00, 0x98, 0x01, 0xc7, 0x0f, 0x0a, 0x18, 0x00,
- 0xfc, 0x98, 0x99, 0xc7, 0x07, 0x0e, 0x18, 0x00, 0x8c, 0x99, 0x8d, 0xc7,
- 0x02, 0x0e, 0x18, 0x00, 0x8c, 0x99, 0x07, 0xc3, 0x03, 0x03, 0x18, 0x00,
- 0x8c, 0x99, 0x07, 0xc7, 0x01, 0x03, 0x28, 0x00, 0x8c, 0x99, 0x0d, 0x03,
- 0x03, 0x01, 0x08, 0x00, 0xfc, 0x98, 0x19, 0x03, 0x86, 0x01, 0x18, 0x00,
- 0x0c, 0x00, 0x00, 0x03, 0xc4, 0x01, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x03,
- 0x88, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x03, 0x90, 0x00, 0x18, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x30, 0x00, 0x08, 0x00, 0x00, 0x00, 0x80, 0x01,
- 0xf0, 0x01, 0x08, 0x00, 0x00, 0x00, 0x80, 0x01, 0xf8, 0x01, 0x18, 0x00,
- 0x00, 0x00, 0xc0, 0x01, 0x9e, 0x03, 0x04, 0x00, 0x00, 0x00, 0xc0, 0x01,
- 0xb3, 0x01, 0x04, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x01, 0x18, 0x00,
- 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xdc, 0x00,
- 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/tlpkg/tlperl/lib/Tk/Tk.xpm b/Master/tlpkg/tlperl/lib/Tk/Tk.xpm
deleted file mode 100644
index 7880a637f39..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Tk.xpm
+++ /dev/null
@@ -1,41 +0,0 @@
-/* XPM */
-static char *Tk[] = {
-/* width height num_colors chars_per_pixel */
-" 32 32 2 1",
-/* colors */
-"# c #008080",
-"a c #ff0000",
-/* pixels */
-"################################",
-"################################",
-"################################",
-"################################",
-"################################",
-"################################",
-"##########aaaaaaaa##############",
-"#######aaaaaaaaaaaa#######aa####",
-"#####aaaaaaaaaaaaaa######aaa####",
-"####aaaaaaaaaaaaaaaa####aaaa####",
-"####aaaaaaa######aa####aaaa#####",
-"###aaaa#########aaa###aaaa######",
-"###aaaa#########aa###aaaa#######",
-"######aa#######aa####aaa########",
-"##############aaa###aaaa########",
-"#############aaa###aaaa##aaa####",
-"#############aa####aaa#aaaaa####",
-"############aaa###aaa#aaaaaa####",
-"###########aaa####aa#aa#aaa#####",
-"###########aaa###aa#aa#aaa######",
-"##########aaa####aaaaaaaa#aa####",
-"##########aaa####aaaaaaa##aa####",
-"#########aaaa####aaaaaaaaaa#####",
-"#########aaa#####aa##aaaaa######",
-"#########aaa##########aa########",
-"################################",
-"################################",
-"################################",
-"################################",
-"################################",
-"################################",
-"################################"
-};
diff --git a/Master/tlpkg/tlperl/lib/Tk/TkXSUB.def b/Master/tlpkg/tlperl/lib/Tk/TkXSUB.def
deleted file mode 100644
index 8f60974226e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/TkXSUB.def
+++ /dev/null
@@ -1,62 +0,0 @@
-MkXSUB("Tk::bind", XS_Tk_bind, XStoBind, Tk_BindObjCmd)
-MkXSUB("Tk::pack", XS_Tk_pack, XStoAfterSub, Tk_PackObjCmd)
-MkXSUB("Tk::grid", XS_Tk_grid, XStoGrid, Tk_GridObjCmd)
-MkXSUB("Tk::place", XS_Tk_place, XStoAfterSub, Tk_PlaceObjCmd)
-MkXSUB("Tk::form", XS_Tk_form, XStoAfterSub, Tix_FormCmd)
-MkXSUB("Tk::itemstyle", XS_Tk_itemstyle, XStoTclCmd, Tix_ItemStyleCmd)
-MkXSUB("Tk::winfo", XS_Tk_winfo, XStoSubCmd, Tk_WinfoObjCmd)
-MkXSUB("Tk::font", XS_Tk_font, XStoFont, Tk_FontObjCmd)
-MkXSUB("Tk::wm", XS_Tk_wm, XStoAfterSub, Tk_WmObjCmd)
-MkXSUB("Tk::grab", XS_Tk_grab, XStoSubCmd, Tk_GrabObjCmd)
-MkXSUB("Tk::focus", XS_Tk_focus, XStoSubCmd, Tk_FocusObjCmd)
-MkXSUB("Tk::event", XS_Tk_event, XStoEvent, Tk_EventObjCmd)
-MkXSUB("Tk::property", XS_Tk_property, XStoSubCmd, Tk_PropertyCmd)
-MkXSUB("Tk::clipboard", XS_Tk_clipboard, XStoDisplayof, Tk_ClipboardObjCmd)
-MkXSUB("Tk::bell", XS_Tk_bell, XStoDisplayof, Tk_BellObjCmd)
-MkXSUB("Tk::bindtags", XS_Tk_bindtags, XStoTk, Tk_BindtagsObjCmd)
-MkXSUB("Tk::destroy", XS_Tk_destroy, XStoTk, Tk_DestroyObjCmd)
-MkXSUB("Tk::raise", XS_Tk_raise, XStoTk, Tk_RaiseObjCmd)
-MkXSUB("Tk::lower", XS_Tk_lower, XStoTk, Tk_LowerObjCmd)
-MkXSUB("Tk::option", XS_Tk_option, XStoOption, Tk_OptionObjCmd)
-MkXSUB("Tk::image", XS_Tk_image, XStoImage, Tk_ImageObjCmd)
-MkXSUB("Tk::selection", XS_Tk_selection, XStoTk, Tk_SelectionObjCmd)
-
-#if defined(__WIN32__) || defined(MAC_TCL)
-MkXSUB("Tk::tk_chooseColor", XS_Tk_tk_chooseColor, XStoTk, Tk_ChooseColorObjCmd)
-MkXSUB("Tk::tk_chooseDirectory", XS_Tk_tk_chooseDirectory, XStoTk, Tk_ChooseDirectoryObjCmd)
-MkXSUB("Tk::tk_getOpenFile", XS_Tk_tk_getOpenFile, XStoTk, Tk_GetOpenFileObjCmd)
-MkXSUB("Tk::tk_getSaveFile", XS_Tk_tk_getSaveFile, XStoTk, Tk_GetSaveFileObjCmd)
-#endif
-#if defined(__WIN32__)
-MkXSUB("Tk::tk_messageBox", XS_Tk_tk_messageBox, XStoTk, Tk_MessageBoxObjCmd)
-#endif
-
-MkXSUB("Tk::tk", XS_Tk_tk, XStoTclCmd, Tk_TkObjCmd)
-
-#if 0
-MkXSUB("Tk::exit", XS_Tk_exit, XStoNoWindow, Tcl_ExitCmd)
-MkXSUB("Tk::fileevent", XS_Tk_fileevent, XStoNoWindow, Tcl_FileeventCmd)
-#endif
-MkXSUB("Tk::after", XS_Tk_after, XStoNoWindow, Tcl_AfterObjCmd)
-#ifndef WIN32
-MkXSUB("Tk::send", XS_Tk_send, XStoTclCmd, Tk_SendCmd)
-#endif
-
-MkXSUB("Tk::button", XS_Tk_button, XStoTclCmdNull, Tk_ButtonObjCmd)
-MkXSUB("Tk::checkbutton", XS_Tk_checkbutton, XStoTclCmdNull, Tk_CheckbuttonObjCmd)
-MkXSUB("Tk::label", XS_Tk_label, XStoTclCmdNull, Tk_LabelObjCmd)
-MkXSUB("Tk::radiobutton", XS_Tk_radiobutton, XStoTclCmdNull, Tk_RadiobuttonObjCmd)
-MkXSUB("Tk::_menu", XS_Tk__menu, XStoTclCmdNull, 0)
-
-MkXSUB("Tk::message", XS_Tk_message, XStoTclCmd, Tk_MessageObjCmd)
-MkXSUB("Tk::frame", XS_Tk_frame, XStoTclCmd, Tk_FrameObjCmd)
-MkXSUB("Tk::labelframe", XS_Tk_labelframe, XStoTclCmd, Tk_LabelframeObjCmd)
-MkXSUB("Tk::panedwindow", XS_Tk_panedwindow, XStoTclCmd, Tk_PanedWindowObjCmd)
-MkXSUB("Tk::toplevel", XS_Tk_toplevel, XStoTclCmd, Tk_ToplevelObjCmd)
-MkXSUB("Tk::update", XS_Tk_update, XStoTclCmd, Tk_UpdateObjCmd)
-MkXSUB("Tk::tkwait", XS_Tk_tkwait, XStoTclCmd, Tk_TkwaitObjCmd)
-MkXSUB("Tk::configure", XS_Tk_configure, XStoWidget, newSVpv("configure",0))
-MkXSUB("Tk::cget", XS_Tk_cget, XStoWidget, newSVpv("cget",0))
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Toplevel.pm b/Master/tlpkg/tlperl/lib/Tk/Toplevel.pm
deleted file mode 100644
index 7bcd156d475..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Toplevel.pm
+++ /dev/null
@@ -1,211 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Toplevel;
-use AutoLoader;
-
-use vars qw($VERSION);
-$VERSION = '4.006'; # $Id: //depot/Tkutf8/Tk/Toplevel.pm#6 $
-
-use base qw(Tk::Wm Tk::Frame);
-
-Construct Tk::Widget 'Toplevel';
-
-sub Tk_cmd { \&Tk::toplevel }
-
-sub CreateOptions
-{
- return (shift->SUPER::CreateOptions,'-screen','-use')
-}
-
-sub Populate
-{
- my ($cw,$arg) = @_;
- $cw->SUPER::Populate($arg);
- $cw->ConfigSpecs('-title',['METHOD',undef,undef,$cw->class]);
-}
-
-sub Icon
-{
- my ($top,%args) = @_;
- my $icon = $top->iconwindow;
- my $state = $top->state;
- if ($state ne 'withdrawn')
- {
- $top->withdraw;
- $top->update; # Let attributes propogate
- }
- unless (defined $icon)
- {
- $icon = Tk::Toplevel->new($top,'-borderwidth' => 0,'-class'=>'Icon');
- $icon->withdraw;
- # Fake Populate
- my $lab = $icon->Component('Label' => 'icon');
- $lab->pack('-expand'=>1,'-fill' => 'both');
- $icon->ConfigSpecs(DEFAULT => ['DESCENDANTS']);
- # Now do tail of InitObject
- $icon->ConfigDefault(\%args);
- # And configure that new would have done
- $top->iconwindow($icon);
- $top->update;
- $lab->DisableButtonEvents;
- $lab->update;
- }
- $top->iconimage($args{'-image'}) if (exists $args{'-image'});
- $icon->configure(%args);
- $icon->idletasks; # Let size request propogate
- $icon->geometry($icon->ReqWidth . 'x' . $icon->ReqHeight);
- $icon->update; # Let attributes propogate
- $top->deiconify if ($state eq 'normal');
- $top->iconify if ($state eq 'iconic');
-}
-
-sub menu
-{
- my $w = shift;
- my $menu;
- $menu = $w->cget('-menu');
- unless (defined $menu)
- {
- $w->configure(-menu => ($menu = $w->SUPER::menu))
- }
- $menu->configure(@_) if @_;
- return $menu;
-}
-
-
-1;
-__END__
-
-#----------------------------------------------------------------------
-#
-# Focus Group
-#
-# Focus groups are used to handle the user's focusing actions inside a
-# toplevel.
-#
-# One example of using focus groups is: when the user focuses on an
-# entry, the text in the entry is highlighted and the cursor is put to
-# the end of the text. When the user changes focus to another widget,
-# the text in the previously focused entry is validated.
-#
-
-#----------------------------------------------------------------------
-# tkFocusGroup_Create --
-#
-# Create a focus group. All the widgets in a focus group must be
-# within the same focus toplevel. Each toplevel can have only
-# one focus group, which is identified by the name of the
-# toplevel widget.
-#
-sub FG_Create {
- my $t = shift;
- unless (exists $t->{'_fg'}) {
- $t->{'_fg'} = 1;
- $t->bind('<FocusIn>', sub {
- my $w = shift;
- my $Ev = $w->XEvent;
- $t->FG_In($w, $Ev->d);
- }
- );
- $t->bind('<FocusOut>', sub {
- my $w = shift;
- my $Ev = $w->XEvent;
- $t->FG_Out($w, $Ev->d);
- }
- );
- $t->bind('<Destroy>', sub {
- my $w = shift;
- my $Ev = $w->XEvent;
- $t->FG_Destroy($w);
- }
- );
- # <Destroy> is not sufficient to break loops if never mapped.
- $t->OnDestroy([$t,'FG_Destroy']);
- }
-}
-
-# tkFocusGroup_BindIn --
-#
-# Add a widget into the "FocusIn" list of the focus group. The $cmd will be
-# called when the widget is focused on by the user.
-#
-sub FG_BindIn {
- my($t, $w, $cmd) = @_;
- $t->Error("focus group \"$t\" doesn't exist") unless (exists $t->{'_fg'});
- $t->{'_FocusIn'}{$w} = Tk::Callback->new($cmd);
-}
-
-# tkFocusGroup_BindOut --
-#
-# Add a widget into the "FocusOut" list of the focus group. The
-# $cmd will be called when the widget loses the focus (User
-# types Tab or click on another widget).
-#
-sub FG_BindOut {
- my($t, $w, $cmd) = @_;
- $t->Error("focus group \"$t\" doesn't exist") unless (exists $t->{'_fg'});
- $t->{'_FocusOut'}{$w} = Tk::Callback->new($cmd);
-}
-
-# tkFocusGroup_Destroy --
-#
-# Cleans up when members of the focus group is deleted, or when the
-# toplevel itself gets deleted.
-#
-sub FG_Destroy {
- my($t, $w) = @_;
- if (!defined($w) || $t == $w) {
- delete $t->{'_fg'};
- delete $t->{'_focus'};
- delete $t->{'_FocusOut'};
- delete $t->{'_FocusIn'};
- } else {
- if (exists $t->{'_focus'}) {
- delete $t->{'_focus'} if ($t->{'_focus'} == $w);
- }
- delete $t->{'_FocusIn'}{$w};
- delete $t->{'_FocusOut'}{$w};
- }
-}
-
-# tkFocusGroup_In --
-#
-# Handles the <FocusIn> event. Calls the FocusIn command for the newly
-# focused widget in the focus group.
-#
-sub FG_In {
- my($t, $w, $detail) = @_;
- if (defined $t->{'_focus'} and $t->{'_focus'} eq $w) {
- # This is already in focus
- return;
- } else {
- $t->{'_focus'} = $w;
- $t->{'_FocusIn'}{$w}->Call if exists $t->{'_FocusIn'}{$w};
- }
-}
-
-# tkFocusGroup_Out --
-#
-# Handles the <FocusOut> event. Checks if this is really a lose
-# focus event, not one generated by the mouse moving out of the
-# toplevel window. Calls the FocusOut command for the widget
-# who loses its focus.
-#
-sub FG_Out {
- my($t, $w, $detail) = @_;
- if ($detail ne 'NotifyNonlinear' and $detail ne 'NotifyNonlinearVirtual') {
- # This is caused by mouse moving out of the window
- return;
- }
- unless (exists $t->{'_FocusOut'}{$w}) {
- return;
- } else {
- $t->{'_FocusOut'}{$w}->Call;
- delete $t->{'_focus'};
- }
-}
-
-1;
-
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/Toplevel.pod b/Master/tlpkg/tlperl/lib/Tk/Toplevel.pod
deleted file mode 100644
index e3bbf579c0b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Toplevel.pod
+++ /dev/null
@@ -1,199 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Toplevel - Create and manipulate Toplevel widgets
-
-=for category Tk Widget Classes
-
-=head1 SYNOPSIS
-
-S< >I<$toplevel> = I<$parent>-E<gt>B<Toplevel>(?I<options>?);
-
-=head1 STANDARD OPTIONS
-
-B<-borderwidth> B<-highlightbackground> B<-highlightthickness> B<-takefocus>
-B<-class> B<-highlightcolor> B<-relief>
-B<-cursor>
-
-See L<Tk::options> for details of the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<background>
-
-=item Class: B<Background>
-
-=item Switch: B<-background>
-
-This option is the same as the standard B<background> option
-except that its value may also be specified as an undefined value.
-In this case, the widget will display no background or border, and
-no colors will be consumed from its colormap for its background
-and border.
-
-=item Name: B<colormap>
-
-=item Class: B<Colormap>
-
-=item Switch: B<-colormap>
-
-Specifies a colormap to use for the window.
-The value may be either B<new>, in which case a new colormap is
-created for the window and its children, or the name of another
-window (which must be on the same screen and have the same visual
-as $widget), in which case the new window will use the colormap
-from the specified window.
-If the B<colormap> option is not specified, the new window
-uses the default colormap of its screen.
-This option may not be changed with the B<configure>
-method.
-
-=item Name: B<container>
-
-=item Class: B<Container>
-
-=item Switch: B<-container>
-
-The value must be a boolean. If true, it means that this window will
-be used as a container in which some other application will be embedded
-(for example, a Tk toplevel can be embedded using the B<-use> option).
-The window will support the appropriate window manager protocols for
-things like geometry requests. The window should not have any
-children of its own in this application.
-This option may not be changed with the B<configure>
-method.
-
-=item Name: B<height>
-
-=item Class: B<Height>
-
-=item Switch: B<-height>
-
-Specifies the desired height for the window in any of the forms
-acceptable to B<Tk_GetPixels>.
-If this option is less than or equal to zero then the window will
-not request any size at all.
-
-=item Name: B<menu>
-
-=item Class: B<Menu>
-
-=item Switch: B<-menu>
-
-Specifies a menu widget to be used as a menubar. On the Macintosh, the
-menubar will be displayed accross the top of the main monitor. On
-Microsoft Windows and all UNIX platforms, the menu will appear accross
-the toplevel window as part of the window dressing maintained by the
-window manager.
-
-=item Name: B<"">
-
-=item Class: B<"">
-
-=item Switch: B<-screen>
-
-Specifies the screen on which to place the new window.
-Any valid screen name may be used, even one associated with a
-different display.
-Defaults to the same screen as its parent.
-This option is special in that it may not be specified via the option
-database, and it may not be modified with the B<configure>
-method.
-
-=item Switch: B<-title>
-
-Specifies the title of the toplevel window.
-
-=item Name: B<use>
-
-=item Class: B<Use>
-
-=item Switch: B<-use>
-
-This option is used for embedding. If the value isn't an empty string,
-it must be the the window identifier of a container window, specified as
-a hexadecimal string like the ones returned by the B<winfo id>
-command. The toplevel widget will be created as a child of the given
-container instead of the root window for the screen. If the container
-window is in a Tk application, it must be a frame or toplevel widget for
-which the B<-container> option was specified.
-This option may not be changed with the B<configure>
-method.
-
-=item Name: B<visual>
-
-=item Class: B<Visual>
-
-=item Switch: B<-visual>
-
-Specifies visual information for the new window in any of the
-forms accepted by B<Tk_GetVisual>.
-If this option is not specified, the new window will use the default
-visual for its screen.
-The B<visual> option may not be modified with the B<configure>
-method.
-
-=item Name: B<width>
-
-=item Class: B<Width>
-
-=item Switch: B<-width>
-
-Specifies the desired width for the window in any of the forms
-acceptable to B<Tk_GetPixels>.
-If this option is less than or equal to zero then the window will
-not request any size at all.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Toplevel> method creates a new toplevel widget (given
-by the $widget argument). Additional
-options, described above, may be specified on the command line
-or in the option database
-to configure aspects of the toplevel such as its background color
-and relief. The B<toplevel> command returns the
-path name of the new window.
-
-A toplevel is similar to a frame except that it is created as a
-top-level window: its X parent is the root window of a screen
-rather than the logical parent from its path name. The primary
-purpose of a toplevel is to serve as a container for dialog boxes
-and other collections of widgets. The only visible features
-of a toplevel are its background color and an optional 3-D border
-to make the toplevel appear raised or sunken.
-
-=head1 WIDGET METHODS
-
-The B<Toplevel> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class, and the L<Tk::Wm|Tk::Wm> class.
-
-=head1 BINDINGS
-
-When a new toplevel is created, it has no default event bindings:
-toplevels are not intended to be interactive.
-
-=head1 SEE ALSO
-
-L<Tk::Widget|Tk::Widget>
-L<Tk::Wm|Tk::Wm>
-
-=head1 KEYWORDS
-
-toplevel, widget
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Trace.pm b/Master/tlpkg/tlperl/lib/Tk/Trace.pm
deleted file mode 100644
index b663620452a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Trace.pm
+++ /dev/null
@@ -1,405 +0,0 @@
-package Tk::Trace;
-
-use vars qw($VERSION);
-$VERSION = '4.009'; # was: sprintf '4.%03d', q$Revision: #7 $ =~ /\D(\d+)\s*$/;
-
-use Carp;
-use Tie::Watch;
-use strict;
-
-# The %TRACE hash is indexed by stringified variable reference. Each hash
-# bucket contains an array reference having two elements:
-#
-# ->[0] = a reference to the variable's Tie::Watch object
-# ->[1] = a hash reference with these keys: -fetch, -store, -destroy
-# ->{key} = [ active flag, [ callback list ] ]
-# where each callback is a normalized callback array reference
-#
-# Thus, each trace type (r w u ) may have multiple traces.
-
-my %TRACE; # watchpoints indexed by stringified ref
-
-my %OP = ( # trace to Tie::Watch operation map
- r => '-fetch',
- w => '-store',
- u => '-destroy',
-);
-
-sub fetch {
-
- # fetch() wraps the user's callback with necessary tie() bookkeeping
- # and invokes the callback with the proper arguments. It expects:
- #
- # $_[0] = Tie::Watch object
- # $_[1] = undef for a scalar, an index/key for an array/hash
- #
- # The user's callback is passed these arguments:
- #
- # $_[0] = undef for a scalar, index/key for array/hash
- # $_[1] = current value
- # $_[2] = operation 'r'
- # $_[3 .. $#_] = optional user callback arguments
- #
- # The user callback returns the final value to assign the variable.
-
- my $self = shift; # Tie::Watch object
- my $val = $self->Fetch(@_); # get variable's current value
- my $aref = $self->Args('-fetch'); # argument reference
- my $call = $TRACE{$aref->[0]}->[1]->{-fetch}; # active flag/callbacks
- return $val unless $call->[0]; # if fetch inactive
-
- my $final_val;
- foreach my $aref (reverse @$call[ 1 .. $#{$call} ] ) {
- my ( @args_copy ) = @$aref;
- my $sub = shift @args_copy; # user's callback
- unshift @_, undef if scalar @_ == 0; # undef "index" for a scalar
- my @args = @_; # save for post-callback work
- $args[1] = &$sub(@_, $val, 'r', @args_copy); # invoke user callback
- shift @args unless defined $args[0]; # drop scalar "index"
- $final_val = $self->Store(@args); # update variable's value
- }
- $final_val;
-
-} # end fetch
-
-sub store {
-
- # store() wraps the user's callback with necessary tie() bookkeeping
- # and invokes the callback with the proper arguments. It expects:
- #
- # $_[0] = Tie::Watch object
- # $_[1] = new value for a scalar, index/key for an array/hash
- # $_[2] = undef for a scalar, new value for an array/hash
- #
- # The user's callback is passed these arguments:
- #
- # $_[0] = undef for a scalar, index/key for array/hash
- # $_[1] = new value
- # $_[2] = operation 'w'
- # $_[3 .. $#_] = optional user callback arguments
- #
- # The user callback returns the final value to assign the variable.
-
- my $self = shift; # Tie::Watch object
- my $val = $self->Store(@_); # store variable's new value
- my $aref = $self->Args('-store'); # argument reference
- my $call = $TRACE{$aref->[0]}->[1]->{-store}; # active flag/callbacks
- return $val unless $call->[0]; # if store inactive
-
- foreach my $aref ( reverse @$call[ 1 .. $#{$call} ] ) {
- my ( @args_copy ) = @$aref;
- my $sub = shift @args_copy; # user's callback
- unshift @_, undef if scalar @_ == 1; # undef "index" for a scalar
- my @args = @_; # save for post-callback work
- $args[1] = &$sub(@_, 'w', @args_copy); # invoke user callback
- shift @args unless defined $args[0]; # drop scalar "index"
- $self->Store(@args); # update variable's value
- }
-
-} # end store
-
-sub destroy {
-
- # destroy() wraps the user's callback with necessary tie() bookkeeping
- # and invokes the callback with the proper arguments. It expects:
- #
- # $_[0] = Tie::Watch object
- #
- # The user's callback is passed these arguments:
- #
- # $_[0] = undef for a scalar, index/key for array/hash
- # $_[1] = final value
- # $_[2] = operation 'u'
- # $_[3 .. $#_] = optional user callback arguments
-
- my $self = shift; # Tie::Watch object
- my $val = $self->Fetch(@_); # variable's final value
- my $aref = $self->Args('-destroy'); # argument reference
- my $call = $TRACE{$aref->[0]}->[1]->{-destroy}; # active flag/callbacks
- return $val unless $call->[0]; # if destroy inactive
-
- foreach my $aref ( reverse @$call[ 1 .. $#{$call} ] ) {
- my ( @args_copy ) = @$aref;
- my $sub = shift @args_copy; # user's callback
- my $val = $self->Fetch(@_); # get final value
- &$sub(undef, $val, 'u', @args_copy); # invoke user callback
- $self->Destroy(@_); # destroy variable
- }
-
-} # end destroy
-
-sub Tk::Widget::traceVariable {
-
- my( $parent, $vref, $op, $callback ) = @_;
-
- {
- $^W = 0;
- croak "Illegal parent '$parent', not a widget" unless ref $parent;
- croak "Illegal variable '$vref', not a reference" unless ref $vref;
- croak "Illegal trace operation '$op'" unless $op;
- croak "Illegal trace operation '$op'" if $op =~ /[^rwu]/;
- croak "Illegal callback ($callback)" unless $callback;
- }
-
- # Need to add our internal callback to user's callback arg list
- # so we can call ours first, followed by the user's callback and
- # any user arguments. Trace callbacks are activated as requied.
-
- my $trace = $TRACE{$vref};
- if ( not defined $trace ) {
- my $watch = Tie::Watch->new(
- -variable => $vref,
- -fetch => [ \&fetch, $vref ],
- -store => [ \&store, $vref ],
- -destroy => [ \&destroy, $vref ],
- );
- $trace = $TRACE{$vref} =
- [$watch,
- {
- -fetch => [ 0 ],
- -store => [ 0 ],
- -destroy => [ 0 ],
- }
- ];
- }
-
- $callback = [ $callback ] if ref $callback eq 'CODE';
-
- foreach my $o (split '', $op) {
- push @{$trace->[1]->{$OP{$o}}}, $callback;
- $trace->[1]->{$OP{$o}}->[0] = 1; # activate
- }
-
- return $trace; # for peeking
-
-} # end traceVariable
-
-sub Tk::Widget::traceVdelete {
-
- my ( $parent, $vref, $op_not_honored, $callabck_not_honored ) = @_;
-
- if ( defined $vref && defined $TRACE{$vref} && defined $TRACE{$vref}->[0] ) {
- $$vref = $TRACE{$vref}->[0]->Fetch;
- $TRACE{$vref}->[0]->Unwatch;
- delete $TRACE{$vref};
- }
-
-} # end traceVdelete
-
-sub Tk::Widget::traceVinfo {
-
- my ( $parent, $vref ) = @_;
-
- return ( defined $TRACE{$vref}->[0] ) ? $TRACE{$vref}->[0]->Info : undef;
-
-} # end traceVinfo
-
-=head1 NAME
-
-Tk::Trace - emulate Tcl/Tk B<trace> functions.
-
-=head1 SYNOPSIS
-
- use Tk::Trace
-
- $mw->traceVariable(\$v, 'wru' => [\&update_meter, $scale]);
- %vinfo = $mw->traceVinfo(\$v);
- print "Trace info :\n ", join("\n ", @{$vinfo{-legible}}), "\n";
- $mw->traceVdelete(\$v);
-
-=head1 DESCRIPTION
-
-This class module emulates the Tcl/Tk B<trace> family of commands by
-binding subroutines of your devising to Perl variables using simple
-B<Tie::Watch> features.
-
-Callback format is patterned after the Perl/Tk scheme: supply either a
-code reference, or, supply an array reference and pass the callback
-code reference in the first element of the array, followed by callback
-arguments.
-
-User callbacks are passed these arguments:
-
- $_[0] = undef for a scalar, index/key for array/hash
- $_[1] = variable's current (read), new (write), final (undef) value
- $_[2] = operation (r, w, or u)
- $_[3 .. $#_] = optional user callback arguments
-
-As a Trace user, you have an important responsibility when writing your
-callback, since you control the final value assigned to the variable.
-A typical callback might look like:
-
- sub callback {
- my($index, $value, $op, @args) = @_;
- return if $op eq 'u';
- # .... code which uses $value ...
- return $value; # variable's final value
- }
-
-Note that the callback's return value becomes the variable's final value,
-for either read or write traces.
-
-For write operations, the variable is updated with its new value before
-the callback is invoked.
-
-Multiple read, write and undef callbacks can be attached to a variable,
-which are invoked in reverse order of creation.
-
-=head1 METHODS
-
-=over 4
-
-=item $mw->traceVariable(varRef, op => callback);
-
-B<varRef> is a reference to the scalar, array or hash variable you
-wish to trace. B<op> is the trace operation, and can be any combination
-of B<r> for read, B<w> for write, and B<u> for undef. B<callback> is a
-standard Perl/Tk callback, and is invoked, depending upon the value of
-B<op>, whenever the variable is read, written, or destroyed.
-
-=item %vinfo = $mw->traceVinfo(varRef);
-
-Returns a hash detailing the internals of the Trace object, with these
-keys:
-
- %vinfo = (
- -variable => varRef
- -debug => '0'
- -shadow => '1'
- -value => 'HELLO SCALAR'
- -destroy => callback
- -fetch => callback
- -store => callback
- -legible => above data formatted as a list of string, for printing
- );
-
-For array and hash Trace objects, the B<-value> key is replaced with a
-B<-ptr> key which is a reference to the parallel array or hash.
-Additionally, for an array or hash, there are key/value pairs for
-all the variable specific callbacks.
-
-=item $mw->traceVdelete(\$v);
-
-Stop tracing the variable.
-
-=back
-
-=head1 EXAMPLES
-
- # Trace a Scale's variable and move a meter in unison.
-
- use Tk;
- use Tk::widgets qw/Trace/;
-
- $pi = 3.1415926;
- $mw = MainWindow->new;
- $c = $mw->Canvas( qw/-width 200 -height 110 -bd 2 -relief sunken/ )->grid;
- $c->createLine( qw/100 100 10 100 -tag meter -arrow last -width 5/ );
- $s = $mw->Scale( qw/-orient h -from 0 -to 100 -variable/ => \$v )->grid;
- $mw->Label( -text => 'Slide Me for 5 Seconds' )->grid;
-
- $mw->traceVariable( \$v, 'w' => [ \&update_meter, $s ] );
-
- $mw->after( 5000 => sub {
- print "Untrace time ...\n";
- %vinfo = $s->traceVinfo( \$v );
- print "Watch info :\n ", join("\n ", @{$vinfo{-legible}}), "\n";
- $c->traceVdelete( \$v );
- });
-
- MainLoop;
-
- sub update_meter {
- my( $index, $value, $op, @args ) = @_;
- return if $op eq 'u';
- $min = $s->cget( -from );
- $max = $s->cget( -to );
- $pos = $value / abs( $max - $min );
- $x = 100.0 - 90.0 * ( cos( $pos * $pi ) );
- $y = 100.0 - 90.0 * ( sin( $pos * $pi ) );
- $c->coords( qw/meter 100 100/, $x, $y );
- return $value;
- }
-
- # Predictive text entry.
-
- use Tk;
- use Tk::widgets qw/ LabEntry Trace /;
- use strict;
-
- my @words = qw/radio television telephone turntable microphone/;
-
- my $mw = MainWindow->new;
-
- my $e = $mw->LabEntry(
- qw/ -label Thing -width 40 /,
- -labelPack => [ qw/ -side left / ],
- -textvariable => \my $thing,
- );
- my $t = $mw->Text( qw/ -height 10 -width 50 / );;
-
- $t->pack( $e, qw/ -side top / );
-
- $e->focus;
- $e->traceVariable( \$thing, 'w', [ \&trace_thing, $e, $t ] );
-
- foreach my $k ( 1 .. 12 ) {
- $e->bind( "<F${k}>" => [ \&ins, $t, Ev('K') ] );
- }
- $e->bind( '<Return>' =>
- sub {
- print "$thing\n";
- $_[0]->delete( 0, 'end' );
- }
- );
-
- MainLoop;
-
- sub trace_thing {
-
- my( $index, $value, $op, $e, $t ) = @_;
-
- return unless $value;
-
- $t->delete( qw/ 1.0 end / );
- foreach my $w ( @words ) {
- if ( $w =~ /^$value/ ) {
- $t->insert( 'end', "$w\n" );
- }
- }
-
- return $value;
-
- } # end trace_thing
-
- sub ins {
-
- my( $e, $t, $K ) = @_;
-
- my( $index ) = $K =~ /^F(\d+)$/;
-
- $e->delete( 0, 'end' );
- $e->insert( 'end', $t->get( "$index.0", "$index.0 lineend" ) );
- $t->delete( qw/ 1.0 end / );
-
- } # end ins
-
-=head1 HISTORY
-
- Stephen.O.Lidie@Lehigh.EDU, Lehigh University Computing Center, 2000/08/01
- . Version 1.0, for Tk800.022.
-
- sol0@Lehigh.EDU, Lehigh University Computing Center, 2003/09/22
- . Version 1.1, for Tk804.025, add support for multiple traces of the same
- type on the same variable.
-
-=head1 COPYRIGHT
-
-Copyright (C) 2000 - 2003 Stephen O. Lidie. All rights reserved.
-
-This program is free software; you can redistribute it and/or modify it under
-the same terms as Perl itself.
-
-=cut
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/Tree.pm b/Master/tlpkg/tlperl/lib/Tk/Tree.pm
deleted file mode 100644
index 8f4fe2640d8..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Tree.pm
+++ /dev/null
@@ -1,313 +0,0 @@
-package Tk::Tree;
-# Tree -- TixTree widget
-#
-# Derived from Tree.tcl in Tix 4.1
-#
-# Chris Dean <ctdean@cogit.com>
-# Changes: Renee Baecker <module@renee-baecker.de>
-
-use vars qw($VERSION);
-$VERSION = '4.72'; # $Id: Tree.pm,v 1.4 2007/11/04 09:11:31 eserte Exp $
-
-use Tk ();
-use Tk::Derived;
-use Tk::HList;
-use base qw(Tk::Derived Tk::HList);
-use strict;
-
-Construct Tk::Widget 'Tree';
-
-sub Tk::Widget::ScrlTree { shift->Scrolled('Tree' => @_) }
-
-sub Populate
-{
- my( $w, $args ) = @_;
-
- $w->SUPER::Populate( $args );
-
- $w->ConfigSpecs(
- -ignoreinvoke => ['PASSIVE', 'ignoreInvoke', 'IgnoreInvoke', 0],
- -opencmd => ['CALLBACK', 'openCmd', 'OpenCmd', 'OpenCmd' ],
- -indicatorcmd => ['CALLBACK', 'indicatorCmd', 'IndicatorCmd', 'IndicatorCmd'],
- -closecmd => ['CALLBACK', 'closeCmd', 'CloseCmd', 'CloseCmd'],
- -indicator => ['SELF', 'indicator', 'Indicator', 1],
- -indent => ['SELF', 'indent', 'Indent', 20],
- -width => ['SELF', 'width', 'Width', 20],
- -itemtype => ['SELF', 'itemtype', 'Itemtype', 'imagetext'],
- -foreground => ['SELF'],
- );
-}
-
-sub autosetmode
-{
- my( $w ) = @_;
- $w->setmode();
-}
-
-sub add_pathimage
-{
- my ($w,$path,$imgopen,$imgclose) = @_;
- $imgopen ||= "minusarm";
- $imgclose ||= "plusarm";
-
- my $separator = $w->cget(-separator);
-
- $path =~ s/([\.?()|])/\\$1/g;
- $path =~ s/\$/\\\$/g;
- $path =~ s/\\\$$/\$/;
- $path =~ s/\*/[^$separator]+/g;
-
- push(@{$w->{Images}},[$path,$imgopen,$imgclose]);
-}
-
-sub child_entries
-{
- my ($w,$path,$depth) = @_;
-
- my $level = 1;
- $depth ||= 1;
- $path ||= '';
-
- my @children = $w->_get_childinfos($depth,$level,$path);
-
- return wantarray ? @children : scalar(@children);
-}
-
-sub _get_childinfos
-{
- my ($w,$maxdepth,$level,$path) = @_;
- my @children = $w->infoChildren($path);
- my @tmp;
-
- if($level < $maxdepth)
- {
- for my $child(@children)
- {
- push(@tmp,$w->_get_childinfos($maxdepth,$level +1,$child));
- }
- }
-
- push(@children,@tmp);
-
- return @children;
-}
-
-sub IndicatorCmd
-{
- my( $w, $ent, $event ) = @_;
-
- my $mode = $w->getmode( $ent );
-
- if ( $event eq '<Arm>' )
- {
- if ($mode eq 'open' )
- {
- #$w->_indicator_image( $ent, 'plusarm' );
- $w->_open($ent);
- }
- else
- {
- #$w->_indicator_image( $ent, 'minusarm' );
- $w->_close($ent);
- }
- }
- elsif ( $event eq '<Disarm>' )
- {
- if ($mode eq 'open' )
- {
- #$w->_indicator_image( $ent, 'plus' );
- $w->_open($ent);
- }
- else
- {
- #$w->_indicator_image( $ent, 'minus' );
- $w->_close($ent);
- }
- }
- elsif( $event eq '<Activate>' )
- {
- $w->Activate( $ent, $mode );
- $w->Callback( -browsecmd => $ent );
- }
-}
-
-sub close
-{
- my( $w, $ent ) = @_;
- my $mode = $w->getmode( $ent );
- $w->Activate( $ent, $mode ) if( $mode eq 'close' );
-}
-
-sub open
-{
- my( $w, $ent ) = @_;
- my $mode = $w->getmode( $ent );
- $w->Activate( $ent, $mode ) if( $mode eq 'open' );
-}
-
-sub getmode
-{
- my( $w, $ent ) = @_;
-
- return( 'none' ) unless $w->indicatorExists( $ent );
-
- my $img = $w->_indicator_image( $ent );
- if ($img eq "plus" || $img eq "plusarm" || grep{$img eq $_->[2]}@{$w->{Images}})
- {
- return( 'open' );
- }
- return( 'close' );
-}
-
-sub setmode
-{
- my ($w,$ent,$mode) = @_;
- unless (defined $mode)
- {
- $mode = 'none';
- my @args;
- push(@args,$ent) if defined $ent;
- my @children = $w->infoChildren( @args );
- if ( @children )
- {
- $mode = 'close';
- foreach my $c (@children)
- {
- $mode = 'open' if $w->infoHidden( $c );
- $w->setmode( $c );
- }
- }
- }
-
- if (defined $ent)
- {
- if ( $mode eq 'open' )
- {
- #$w->_indicator_image( $ent, 'plus' );
- $w->_open($ent);
- }
- elsif ( $mode eq 'close' )
- {
- #$w->_indicator_image( $ent, 'minus' );
- $w->_close($ent);
- }
- elsif( $mode eq 'none' )
- {
- $w->_indicator_image( $ent, undef );
- }
- }
-}
-
-sub _open
-{
- my ($w,$ent) = @_;
- $w->_indicator_image( $ent, "plus" );
- for my $entry (@{$w->{Images}})
- {
- if($ent =~ $entry->[0])
- {
- $w->_indicator_image( $ent, $entry->[2] );
- }
- }
-}
-
-sub _close
-{
- my ($w,$ent) = @_;
- $w->_indicator_image( $ent, "minus" );
- for my $entry (@{$w->{Images}})
- {
- if($ent =~ $entry->[0])
- {
- $w->_indicator_image( $ent, $entry->[1] );
- }
- }
-}
-
-sub Activate
-{
- my( $w, $ent, $mode ) = @_;
- if ( $mode eq 'open' )
- {
- $w->Callback( -opencmd => $ent );
- #$w->_indicator_image( $ent, 'minus' );
- $w->_close($ent);
- }
- elsif ( $mode eq 'close' )
- {
- $w->Callback( -closecmd => $ent );
- #$w->_indicator_image( $ent, 'plus' );
- $w->_open($ent);
- }
- else
- {
-
- }
-}
-
-sub OpenCmd
-{
- my( $w, $ent ) = @_;
- # The default action
- foreach my $kid ($w->infoChildren( $ent ))
- {
- $w->show( -entry => $kid );
- }
-}
-
-sub CloseCmd
-{
- my( $w, $ent ) = @_;
-
- # The default action
- foreach my $kid ($w->infoChildren( $ent ))
- {
- $w->hide( -entry => $kid );
- }
-}
-
-sub Command
-{
- my( $w, $ent ) = @_;
-
- return if $w->{Configure}{-ignoreInvoke};
-
- $w->Activate( $ent, $w->getmode( $ent ) ) if $w->indicatorExists( $ent );
-}
-
-sub _indicator_image
-{
- my( $w, $ent, $image ) = @_;
- my $data = $w->privateData();
- if (@_ > 2)
- {
- if (defined $image)
- {
- $w->indicatorCreate( $ent, -itemtype => 'image' )
- unless $w->indicatorExists($ent);
- $data->{$ent} = $image;
- $w->indicatorConfigure( $ent, -image => $w->Getimage( $image ) );
- }
- else
- {
- $w->indicatorDelete( $ent ) if $w->indicatorExists( $ent );
- delete $data->{$ent};
- }
- }
- return $data->{$ent};
-}
-
-1;
-
-__END__
-
-# Copyright (c) 1996, Expert Interface Technologies
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# The file man.macros and some of the macros used by this file are
-# copyrighted: (c) 1990 The Regents of the University of California.
-# (c) 1994-1995 Sun Microsystems, Inc.
-# The license terms of the Tcl/Tk distrobution are in the file
-# license.tcl.
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Tree.pod b/Master/tlpkg/tlperl/lib/Tk/Tree.pod
deleted file mode 100644
index bbb14665008..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Tree.pod
+++ /dev/null
@@ -1,274 +0,0 @@
-
-=head1 NAME
-
-Tk::Tree - Create and manipulate Tree widgets
-
-=for pm Tixish/Tree.pm
-
-=for category Tix Extensions
-
-=head1 SYNOPSIS
-
-S< >B<use Tk::Tree;>
-
-S< >I<$tree> = I<$parent>-E<gt>B<Tree>(?I<options>?);
-
-=head1 SUPER-CLASS
-
-The B<Tree> class is derived from the L<HList|Tk::HList> class and inherits all
-the methods, options and subwidgets of its super-class. A B<Tree> widget is
-not scrolled by default.
-
-=head1 STANDARD OPTIONS
-
-B<Tree> supports all the standard options of an HList widget.
-See L<Tk::options> for details on the standard options.
-
-=head1 WIDGET-SPECIFIC OPTIONS
-
-=over 4
-
-=item Name: B<browseCmd>
-
-=item Class: B<BrowseCmd>
-
-=item Switch: B<-browsecmd>
-
-Specifies a L<callback|Tk::callbacks> to call whenever the user browses on an entry
-(usually by single-clicking on the entry). The callback is called with
-one argument, the pathname of the entry.
-
-=item Name: B<closeCmd>
-
-=item Class: B<CloseCmd>
-
-=item Switch: B<-closecmd>
-
-Specifies a L<callback|Tk::callbacks> to call whenever an entry needs to be closed (See
-L<"BINDINGS"> below). This method is called with one argument,
-the pathname of the entry. This method should perform appropriate
-actions to close the specified entry. If the B<-closecmd> option
-is not specified, the default closing action is to hide all child
-entries of the specified entry.
-
-=item Name: B<command>
-
-=item Class: B<Command>
-
-=item Switch: B<-command>
-
-Specifies a L<callback|Tk::callbacks> to call whenever the user activates an entry
-(usually by double-clicking on the entry). The callback
-is called with one argument, the pathname of the entry.
-
-=item Name: B<ignoreInvoke>
-
-=item Class: B<IgnoreInvoke>
-
-=item Switch: B<-ignoreinvoke>
-
-A Boolean value that specifies when a branch should be opened or
-closed. A branch will always be opened or closed when the user presses
-the (+) and (-) indicators. However, when the user invokes a branch
-(by doublc-clicking or pressing E<lt>ReturnE<gt>), the branch will be opened
-or closed only if B<-ignoreinvoke> is set to false (the default
-setting).
-
-=item Name: B<openCmd>
-
-=item Class: B<OpenCmd>
-
-=item Switch: B<-opencmd>
-
-Specifies a L<callback|Tk::callbacks> to call whenever an entry needs to be opened (See
-L<"BINDINGS"> below). This method is called with one argument,
-the pathname of the entry. This method should perform appropriate
-actions to open the specified entry. If the B<-opencmd> option
-is not specified, the default opening action is to show all the child
-entries of the specified entry.
-
-=back
-
-=head1 DESCRIPTION
-
-The B<Tree> method creates a new window and makes it into a Tree widget
-and return a reference to it. Additional options, described above, may
-be specified on the command line or in the option database to configure
-aspects of the Tree widget such as its cursor and relief.
-
-The Tree widget can be used to display hierarchical data in a tree
-form. The user can adjust the view of the tree by opening or closing
-parts of the tree.
-
-To display a static tree structure, you can add the entries into the
-Tree widget and hide any entries as desired. Then you can call
-the B<autosetmode> method. This will set up the Tree widget so that it
-handles all the I<open> and I<close> events automatically.
-the demonstration program F<Tixish/examples/perl-tix-tree>).
-
-The above method is not applicable if you want to maintain a dynamic tree
-structure, i.e, you do not know all the entries in the tree and you need
-to add or delete entries subsequently. To do this, you should first create
-the entries in the Tree widget. Then, use the B<setmode> method to
-indicate the entries that can be opened or closed, and use the B<-opencmd>
-and B<-closecmd> options to handle the opening and closing events. (Please
-see the demonstration program F<Tixish/examples/perl-tix-dyntree>).
-
-Use either
-
-S< >I<$parent>-E<gt>B<Scrolled>(B<'Tree'>, ... );
-
-or
-
-S< >I<$parent>-E<gt>B<ScrlTree>( ... );
-
-to create a scrolled B<Tree>. See L<Tk::Scrolled> for details.
-
-=head1 WIDGET METHODS
-
-The B<Tree> method creates a widget object.
-This object supports the B<configure> and B<cget> methods
-described in L<Tk::options> which can be used to enquire and
-modify the options described above.
-The widget also inherits all the methods provided by the generic
-L<Tk::Widget|Tk::Widget> class.
-
-The following additional methods are available for Tree widgets:
-
-=over 4
-
-=item I<$tree-E<gt>>B<add_pathimage>(I<treeRegExp [, openImg, closeImg]>)
-
-This method defines images for a given path (images must be in xpm
-format). The path can be determined by a simplified regular
-expression. There are just three metasymbols:
-
-=over
-
-=item ^
-
-at the beginning of the C<treeRegExp> same as in Perl regular
-expressions
-
-=item Z<>*
-
-anything
-
-=item $
-
-at the end of the C<TreeRegExp>, the same as in Perl regular
-expressions
-
-=back
-
-Examples:
-
- $tree->add_pathimage('^root','openfolder','folder');
-
-matches C<root>, C<root.foo>, C<root.bar>, but not C<foo.root>
-
- $tree->add_pathimage('root.*.class','openfolder','folder');
-
-matches all paths containing C<< root.<anything>.class >>, but not
-C<< root.<anything>.<anything>.class >> C<*> is one part of the path. If
-you want to use a wildcard for two steps, you have to use C<*.*>.
-
- $tree->add_pathimage('class$','openfolder','folder');
-
-This matches all path with C<class> at the end.
-
-=item I<$tree>-E<gt>B<autosetmode>
-
-This method calls the B<setmode> method for all the entries in
-this Tree widget: if an entry has no child entries, its mode is set to
-B<none>. Otherwise, if the entry has any hidden child entries, its
-mode is set to B<open>; otherwise its mode is set to B<close>.
-
-=item I<$tree-E<gt>>B<child_entries>([$path][,$depth])
-
-This method returns in list context an array that contains all
-pathnames of subentries within the given path. In scalar context it
-returns the number of subentries in the given path.
-
- Example:
- root
- | foo
- | bar
- | | bar1
- | | bar2
-
- my @childentries = $tree->child_entries('root.bar');
- # returns (root.bar.bar1, root.bar.bar2)
-
- my $nr_of_subentries = $tree->child_entries('root',2);
- # returns 4
-
-If C<$path> is omitted, all it is assumed, that the entry above
-'root' is meant. C<$depth> defines the numbers of levels.
-
-=item I<$tree>-E<gt>B<close>(I<entryPath>)
-
-Close the entry given by I<entryPath> if its I<mode> is B<close>.
-
-=item I<$tree>-E<gt>B<getmode>(I<entryPath>)
-
-Returns the current I<mode> of the entry given by I<entryPath>.
-
-=item I<$tree>-E<gt>B<open>(I<entryPath>)
-
-Open the entry given by I<entryPath> if its I<mode> is B<open>.
-
-=item I<$tree>-E<gt>B<setmode>(I<entryPath, mode>)
-
-This method is used to indicate whether the entry given by
-I<entryPath> has children entries and whether the children are
-visible. I<mode> must be one of B<open>,
-B<close> or B<none>. If I<mode> is set to B<open>, a (+)
-indicator is drawn next to the entry. If I<mode> is set to
-B<close>, a (-) indicator is drawn next to the entry. If
-I<mode> is set to B<none>, no indicators will be drawn for this
-entry. The default I<mode> is none. The B<open> mode indicates
-the entry has hidden children and this entry can be opened by the
-user. The B<close> mode indicates that all the children of the entry
-are now visible and the entry can be closed by the user.
-
-=back
-
-=head1 BINDINGS
-
-The basic mouse and keyboard bindings of the Tree widget are the same
-as the L<bindings of the HList|Tk::HList/"BINDINGS"> widget.
-In addition, the entries can be opened or closed under the following
-conditions:
-
-=over 4
-
-=item [1]
-
-If the I<mode> of the entry is B<open>, it can be opened by clicking
-on its (+) indicator.
-
-=item [2]
-
-If the I<mode> of the entry is B<close>, it can be closed by clicking
-on its (-) indicator.
-
-=back
-
-=head1 SEE ALSO
-
-L<Tk::HList|Tk::HList>
-
-=head1 AUTHOR
-
-Perl/TK version by Chris Dean <ctdean@cogit.com>. Original Tcl/Tix
-version by Ioi Kim Lam.
-
-Additions by Renee Baecker <module@renee-baecker.de>
-
-=head1 ACKNOWLEDGEMENTS
-
-Thanks to Achim Bohnet <ach@mpe.mpg.de> for all his help.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/UserGuide.pod b/Master/tlpkg/tlperl/lib/Tk/UserGuide.pod
deleted file mode 100644
index caf34ece8d7..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/UserGuide.pod
+++ /dev/null
@@ -1,586 +0,0 @@
-=head1 NAME
-
-Tk::UserGuide - Writing Tk applications in Perl 5
-
-=for category Introduction
-
-=head1 DESCRIPTION
-
-This document is for beginners. It assumes you know some B<Perl>, and
-have it and Tk running. If you are I<not> currently reading this
-document courtesy of the B<widget> demonstration program, please be
-sure to run B<widget>, as it will show you the various widget types
-supported by Tk and how to use them. B<widget> should be installed in
-your default path, so type I<widget> at a command prompt.
-
-Here are links to other novice tutorials:
-
-L<http://www.lehigh.edu/~sol0/ptk/tpj1.html>
-L<http://www.lehigh.edu/~sol0/ptk/perlmonth01/pm1.html>
-
-I<Mastering Perl/Tk> is the definitive book on Perl/Tk:
-
-L<http://www.oreilly.com/catalog/mastperltk>
-
-=head1 Some Background
-
-Tk GUI programming is event-driven. (This may already be familiar to
-you.) In event-driven programs, the main GUI loop is outside of the
-user program and inside the GUI library. This loop - initiated by
-calling B<MainLoop> - watches all events of interest and activates
-the correct handler procedures to handle these events. Some of these
-handler procedures may be user-supplied; others will be part of the
-library.
-
-For a programmer, this means that you're not watching what is happening;
-instead, you are requested by the toolkit to perform actions whenever
-necessary.
-So, you're not watching for 'raise window / close window / redraw window'
-requests, but you tell the toolkit which routine will handle such cases,
-and the toolkit will call the procedures when required. These procedures
-are known as I<callbacks>, and some of them you write yourself.
-
-=head1 First Requirements
-
-B<Perl> programs that use Tk need to include C<use Tk>.
-A program should also use C<use strict> and the B<-w> switch to ensure
-the program is working without common errors.
-
-Any Perl/Tk application starts by creating the Tk B<L<MainWindow|Tk::MainWindow>>. You
-then create items inside the B<MainWindow>, and/or create new windows
-called B<L<Toplevel|Tk::Toplevel>>s that also contain child items, before starting the
-B<MainLoop>, which is the last logical statment in your program. You
-can also create more items and windows while you're running, using
-callbacks. Items are only shown on the display after they have been
-arranged by a I<geometry manager> like B<L<pack|Tk::pack>>; more information on
-this later. B<MainLoop> starts the GUI and handle all events. That's
-all there is to it! A trivial one-window example is shown below:
-
- #!/usr/bin/perl -w
- use Tk;
- use strict;
-
- my $mw = MainWindow->new;
- $mw->Label(-text => 'Hello, world!')->pack;
- $mw->Button(
- -text => 'Quit',
- -command => sub { exit },
- )->pack;
- MainLoop;
-
-Please run this example. It shows you two widget types, a B<L<Label|Tk::Label>>
-and a B<L<Button|Tk::Button>>, and how they are packed. When clicked, the B<Button>
-widget invokes the callback specified by the C<-command> option. Finally,
-note the typical Tk style using C<-option> =E<gt> C<value> pairs.
-
-=head1 Widget creation
-
-Tk windows and widgets are hierarchical, S<i.e. one> window includes
-one or more other windows. You create the first Tk window using
-C<MainWindow-E<gt>new>. This returns a window handle, assigned to
-C<$mw> in the example above. Keep track of the main handle, commonly
-called a I<widget reference>.
-
-You can use any Tk handle to create child widgets within the window (or
-widget). This is done by calling the Tk constructor method on the
-variable. In the example above, the C<Label> method called from
-C<$mw> creates a B<Label> widget inside the B<MainWindow>. In the
-constructor call, you can specify various options; you can later add
-or change options for any widget using the B<configure> method, which
-takes the same parameters as the constructor. The one exception to
-the hierarchical structure is the B<Toplevel> constructor, which
-creates a new outermost window.
-
-After you create any widget (other than the B<MainWindow> or
-B<Toplevel>s, you must render it by calling B<pack>. (This is not
-entirely true; more later)). If you do not need to refer to the widget
-after construction and packing, call B<pack> off the constructor
-results, as shown for the B<Label> and B<Button> in the example above. Note
-that the result of the compound call is the result of B<pack>, which
-is a valid Tk handle.
-
-Windows and widgets are deleted by calling B<destroy> on them;
-this will delete and un-draw the widget and all its children.
-
-=head1 Standard Tk widgets
-
-Here is an itemize of the standard Tk widget set.
-
-=over 4
-
-=item L<Button|Tk::Button>
-
-=item L<Canvas|Tk::Canvas>
-
-=item L<Checkbutton|Tk::Checkbutton>
-
-=item L<Entry|Tk::Entry>
-
-=item L<Frame|Tk::Frame>
-
-=item L<Label|Tk::Label>
-
-=item L<Labelframe|Tk::Labelframe>
-
-=item L<Listbox|Tk::Listbox>
-
-=item L<Menu|Tk::Menu>
-
-=item L<Menubutton|Tk::Menubutton>
-
-=item L<Message|Tk::Message>
-
-=item L<Panedwindow|Tk::Panedwindow>
-
-=item L<Radiobutton|Tk::Radiobutton>
-
-=item L<Scale|Tk::Scale>
-
-=item L<Scrollbar|Tk::Scrollbar>
-
-=item L<Spinbox|Tk::Spinbox>
-
-=item L<Text|Tk::Text>
-
-=item L<Toplevel|Tk::Toplevel>
-
-=back
-
-Perl/Tk provides an equal number of new widgets, above and beyond this
-core set.
-
-=over 4
-
-=item L<Adjuster|Tk::Adjuster>
-
-=item L<Balloon|Tk::Balloon>
-
-=item L<BrowseEntry|Tk::BrowseEntry>
-
-=item L<ColorEditor|Tk::ColorEditor>
-
-=item L<Dialog|Tk::Dialog>
-
-=item L<DialogBox|Tk::DialogBox>
-
-=item L<DirTree|Tk::DirTree>
-
-=item ErrorDialog
-
-=item L<FBox|Tk::FBox>
-
-=item L<FileSelect|Tk::FileSelect>
-
-=item L<HList|Tk::HList>
-
-=item LabEntry
-
-=item L<LabFrame|Tk::LabFrame>
-
-=item L<NoteBook|Tk::NoteBook>
-
-=item L<Optionmenu|Tk::Optionmenu>
-
-=item L<Pane|Tk::Pane>
-
-=item L<ProgressBar|Tk::ProgressBar>
-
-=item L<ROText|Tk::ROText>
-
-=item L<Table|Tk::Table>
-
-=item L<TextUndo|Tk::TextUndo>
-
-=item L<Tiler|Tk::Tiler>
-
-=item L<TList|Tk::TList>
-
-=item L<Tree|Tk::Tree>
-
-=back
-
-=head1 Variables and callback routines
-
-Most graphical interfaces are used to set up a set of values and conditions,
-and then perform the appropriate action. The Tk toolkit is different
-from your average text-based prompting or menu driven system in that you do
-not collect settings yourself, and decide on an action based on an
-input code; instead, you leave these
-values to your toolkit and only get them when the action is performed.
-
-So, where a traditional text-based system would look like this:
-
- #!/usr/bin/perl -w
- use strict;
-
- print "Please type a font name\n";
- my $font = <>; chomp $font;
- # Validate font
-
- print "Please type a file name\n";
- my $filename = <>; chomp $filename;
- # Validate filename
-
- print "Type <1> to fax, <2> to print\n";
- my $option = <>; chomp $option;
- if ($option eq 1) {
- print "Faxing $filename in font $font\n";
- } elsif ($option eq 2) {
- print "Now sending $filename to printer in font $font\n";
- }
-
-The slightly larger example below shows how to do this in Tk.
-Note the use of callbacks. Note, also, that Tk handles the values, and
-the subroutine uses the method B<get> to get at the values.
-If a user changes his mind and wants to change the font again,
-the application never notices; it's all handled by Tk.
-
- #!/usr/bin/perl -w
- use Tk;
- use strict;
-
- my $mw = MainWindow->new;
-
- $mw->Label(-text => 'File Name')->pack;
- my $filename = $mw->Entry(-width => 20);
- $filename->pack;
-
- $mw->Label(-text => 'Font Name')->pack;
- my $font = $mw->Entry(-width => 10);
- $font->pack;
-
- $mw->Button(
- -text => 'Fax',
- -command => sub{do_fax($filename, $font)}
- )->pack;
-
- $mw->Button(
- -text => 'Print',
- -command => sub{do_print($filename, $font)}
- )->pack;
-
- MainLoop;
-
- sub do_fax {
- my ($file, $font) = @_;
- my $file_val = $file->get;
- my $font_val = $font->get;
- print "Now faxing $file_val in font $font_val\n";
- }
-
- sub do_print {
- my ($file, $font) = @_;
- my $file_val = $file->get;
- my $font_val = $font->get;
- print "Sending file $file_val to printer in font $font_val\n";
- }
-
-=head1 The packer - grouping with Frame widgets
-
-In the examples above, you must have noticed the B<pack> calls. This
-is one of the more complicated parts of Tk. The basic idea is that
-any window or widget should be subject to a Tk geometry manager; the
-I<packer> is one of the placement managers, and B<L<grid|Tk::grid>> is another.
-
-The actions of the packer are rather simple: when applied
-to a widget, the packer positions that widget on the indicated position
-within the remaining space in its parent. By default, the position is
-on top; this means the next items will be put below. You can also
-specify the left, right, or bottom positions. Specify position
-using B<-side =E<gt> 'right'>.
-
-Additional packing parameters specify the behavior of the widget when
-there is some space left in the B<L<Frame|Tk::Frame>> or when the window size is
-increased. If widgets should maintain a fixed size, specify nothing;
-this is the default. For widgets that you want to fill up the current
-horizontal and/or vertical space, specify B<-fill =E<gt> 'x'>, B<'y'>,
-or B<'both'>; for widgets that should grow, specify B<-expand =E<gt> 1>.
-These parameters are not shown in the example below; see the B<widget>
-demonstration.
-
-If you want to group some items within a window that have a different
-packing order than others, you can include them in a Frame. This is a
-do-nothing window type that is meant for packing or filling (and to
-play games with borders and colors).
-
-The example below shows the use of pack and Frames:
-
- #!/usr/bin/perl -w
- use Tk;
- use strict;
-
- # Take top and the bottom - now implicit top is in the middle
- my $mw = MainWindow->new;
- $mw->title( 'The MainWindow' );
- $mw->Label(-text => 'At the top (default)')->pack;
- $mw->Label(-text => 'At the bottom')->pack(-side => 'bottom');
- $mw->Label(-text => 'The middle remains')->pack;
-
- # Since left and right are taken, bottom will not work...
- my $top1 = $mw->Toplevel;
- $top1->title( 'Toplevel 1' );
- $top1->Label(-text => 'Left')->pack(-side => 'left');
- $top1->Label(-text => 'Right')->pack(-side => 'right');
- $top1->Label(-text => '?Bottom?')->pack(-side => 'bottom');
-
- # But when you use Frames, things work quite alright
- my $top2 = $mw->Toplevel;
- $top2->title( 'Toplevel 2' );
- my $frame = $top2->Frame;
- $frame->pack;
- $frame->Label(-text => 'Left2')->pack(-side => 'left');
- $frame->Label(-text => 'Right2')->pack(-side => 'right');
- $top2->Label(-text => 'Bottom2')->pack(-side => 'bottom');
-
- MainLoop;
-
-=head1 More than one window
-
-Most real applications require more than one window. As you just saw,
-you can create more outermost windows by using a B<Toplevel> widget.
-Each window is independent; destroying a B<Toplevel> window does not
-affect the others as long as they are not a child of the closed
-B<Toplevel>. However, exiting the B<MainWindow> will destroy all remaining
-B<Toplevel> widgets and end the application. The
-example below shows a trivial three-window application:
-
- #!/usr/bin/perl -w
- use Tk;
- use strict;
-
- my $mw = MainWindow->new;
- fill_window($mw, 'Main');
- my $top1 = $mw->Toplevel;
- fill_window($top1, 'First top-level');
- my $top2 = $mw->Toplevel;
- fill_window($top2, 'Second top-level');
- MainLoop;
-
- sub fill_window {
- my ($window, $header) = @_;
- $window->Label(-text => $header)->pack;
- $window->Button(
- -text => 'close',
- -command => [$window => 'destroy']
- )->pack(-side => 'left');
- $window->Button(
- -text => 'exit',
- -command => [$mw => 'destroy']
- )->pack(-side => 'right');
- }
-
-=head1 More callbacks
-
-So far, all callback routines shown called a user procedure.
-You can also have a callback routine call another Tk routine.
-This is the way that scroll bars are implemented: scroll-bars
-can call a Tk item or a user procedure, whenever their position
-has changed. The Tk item that has a scrollbar attached calls the
-scrollbar when its size or offset has changed. In this way,
-the items are linked. You can still ask a scrollbar's position,
-or set it by hand - but the defaults will be taken care of.
-
-The example below shows a B<L<Listbox|Tk::Listbox>> with a scroll bar. Moving
-the scrollbar moves the B<Listbox>. Scanning a B<Listbox> (dragging
-an item with the left mouse button) moves the scrollbar.
-
- #!/usr/bin/perl -w
- use Tk;
- use strict;
-
- my $mw = MainWindow->new;
- my $box = $mw->Listbox(
- -relief => 'sunken',
- -height => 5,
- -setgrid => 1,
- );
- my @items = qw(One Two Three Four Five Six Seven
- Eight Nine Ten Eleven Twelve);
- foreach (@items) {
- $box->insert('end', $_);
- }
- my $scroll = $mw->Scrollbar(-command => ['yview', $box]);
- $box->configure(-yscrollcommand => ['set', $scroll]);
- $box->pack(-side => 'left', -fill => 'both', -expand => 1);
- $scroll->pack(-side => 'right', -fill => 'y');
-
- MainLoop;
-
-Note that there's a convenience method B<L<Scrolled|Tk::Scrolled>>
-which helps constructing widgets with automatically managed
-scrollbars.
-
-=head1 Canvases and tags
-
-One of the most powerful widgets in Tk is the B<L<Canvas|Tk::Canvas>> window.
-In a B<Canvas> window, you can draw simple graphics and include
-other widgets. The B<Canvas> area may be larger than the visible window,
-and may then be scrolled. Any item you draw on the canvas has its own id,
-and may optionally have one or more I<tags>. You may refer to any
-item by its id, and may refer to any group of items by a common tag;
-you can move, delete, or change groups of items using these tags,
-and you can I<bind> actions to tags. For a properly designed (often
-structured) B<Canvas>, you can specify powerful actions quite simply.
-
-In the example below, actions are bound to circles (single click)
-and blue items (double-click); obviously, this can be extended to any
-tag or group of tags.
-
- #!/usr/bin/perl -w
- use Tk;
- use strict;
-
- # Create B<MainWindow> and canvas
- my $mw = MainWindow->new;
- my $canvas = $mw->Canvas;
- $canvas->pack(-expand => 1, -fill => 'both');
-
- # Create various items
- create_item($canvas, 1, 1, 'circle', 'blue', 'Jane');
- create_item($canvas, 4, 4, 'circle', 'red', 'Peter');
- create_item($canvas, 4, 1, 'square', 'blue', 'James');
- create_item($canvas, 1, 4, 'square', 'red', 'Patricia');
-
- # Single-clicking with left on a 'circle' item invokes a procedure
- $canvas->bind('circle', '<1>' => sub {handle_circle($canvas)});
- # Double-clicking with left on a 'blue' item invokes a procedure
- $canvas->bind('blue', '<Double-1>' => sub {handle_blue($canvas)});
- MainLoop;
-
- # Create an item; use parameters as tags (this is not a default!)
- sub create_item {
- my ($can, $x, $y, $form, $color, $name) = @_;
-
- my $x2 = $x + 1;
- my $y2 = $y + 1;
- my $kind;
- $kind = 'oval' if ($form eq 'circle');
- $kind = 'rectangle' if ($form eq 'square');
- $can->create(
- ($kind, "$x" . 'c', "$y" . 'c',
- "$x2" . 'c', "$y2" . 'c'),
- -tags => [$form, $color, $name],
- -fill => $color);
- }
-
- # This gets the real name (not current, blue/red, square/circle)
- # Note: you'll want to return a list in realistic situations...
- sub get_name {
- my ($can) = @_;
- my $item = $can->find('withtag', 'current');
- my @taglist = $can->gettags($item);
- my $name;
- foreach (@taglist) {
- next if ($_ eq 'current');
- next if ($_ eq 'red' or $_ eq 'blue');
- next if ($_ eq 'square' or $_ eq 'circle');
- $name = $_;
- last;
- }
- return $name;
- }
-
- sub handle_circle {
- my ($can) = @_;
- my $name = get_name($can);
- print "Action on circle $name...\n";
- }
-
- sub handle_blue {
- my ($can) = @_;
- my $name = get_name($can);
- print "Action on blue item $name...\n";
- }
-
-=head1 Perl/Tk and Unicode
-
-Perl/Tk follows Perl's model of handling Unicode. That is, if a string
-is correctly flagged as a E<quot>characterE<quot> string in the sense
-like described in L<Encode/TERMINOLOGY>, then Perl/Tk will very
-probably display and handle this string correctly.
-
-Note that every variable which is passed somehow into a Perl/Tk method
-will be implicitely changed into an internally utf8-flagged variable.
-Semantically nothing changes, as the series of codepoints stays the
-same, but things will change when variables with high-bit iso-8859-1
-characters will be passed to the "outer" world. In this case you have
-to explicitely mark the encoding of your output stream if using IO, or
-encode the variables using L<Encode> for other style of communication.
-
-This is the theory, now some examples.
-
-If you use non-iso-8859-1 characters in the source code, then use
-either the C<use utf8;> or C<use encoding 'I<encodingname>'> pragma:
-
- use utf8;
- use Tk;
- my $x = "some characters using utf8 encoding";
- tkinit->Label(-text => $x)->pack;
- MainLoop;
-
-For data that comes from a file you have to specify the encoding
-unless it's encoded as ascii or iso-8559-1:
-
- use Tk;
- open my $FH, "<:encoding(utf-8)", "filename" or die $!;
- # or for utf-16 data: open my $FH, "<:encoding(utf-16)", "filename" or die $!;
- my $data = <$FH>;
- tkinit->Label(-text => $data)->pack;
- MainLoop;
-
-Likewise, the encoding must be specified for all data which is read
-from Tk widgets and that shall be output into a file. For the output,
-the encoding should be always specified, even if it is iso-8859-1:
-
- use Tk;
- $mw = tkinit;
- $mw->Entry(-textvariable => \$input)->pack;
- $mw->Button(
- -text => "Write to file",
- -command => sub {
- open my $FH, ">:encoding(iso-8859-1)", "filename" or die $!;
- print $FH $input;
- },
- )->pack;
- MainLoop;
-
-Note that Tk is Unicode-capable. So you need to be prepared that the
-user has the appropriate input methods activated to enter non-ascii
-characters. If an output encoding is used which does not cover the
-whole of Unicode codepoints then a warning will be issued when writing
-the file, like this:
-
- "\x{20ac}" does not map to iso-8859-1 at /usr/local/lib/perl5/site_perl/5.8.8/mach/Tk.pm line 250.
-
-Also, the same hexadecimal notation will be used as replacements for
-the unhandled characters.
-
-Handling encoding in I/O is pretty simple using the C<encoding> PerlIO
-layer, as described above. In other cases, such as when dealing with
-databases, encoding the data usually has to be done manually, unless
-the database driver has some means for automatically do this for you.
-So when working with a MySQL database, one could use:
-
- use Tk;
- use DBI;
- use Encode qw(encode);
- $mw = tkinit;
- $mw->Entry(-textvariable => \$input)->pack;
- $mw->Button(
- -text => "Write to database",
- -command => sub {
- my $dbh = DBI->connect("dbi:mysql:test", "root", "") or die;
- my $encoded_input = encode("iso-8859-1", $input);
- $dbh->do("INSERT INTO testtable VALUES (?)", undef, $encoded_input) or die;
- },
- )->pack;
- MainLoop;
-
-Unfortunately, there are still places in Perl ignorant of Unicode. One
-of these places are filenames. Consequently, the file selectors in
-Perl/Tk do not handle encoding of filenames properly. Currently they
-suppose that filenames are in iso-8859-1 encoding, at least on Unix
-systems. As soon as Perl has a concept of filename encodings, then
-Perl/Tk will also implement such schemes.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tk/Widget.pm b/Master/tlpkg/tlperl/lib/Tk/Widget.pm
deleted file mode 100644
index 62cb5c44afb..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Widget.pm
+++ /dev/null
@@ -1,1774 +0,0 @@
-# Copyright (c) 1995-2004 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Widget;
-use vars qw($VERSION @DefaultMenuLabels);
-$VERSION = '4.036'; # was: sprintf '4.%03d', q$Revision: #30 $ =~ /\D(\d+)\s*$/;
-
-require Tk;
-use AutoLoader;
-use strict;
-use Carp;
-use base qw(DynaLoader Tk);
-
-# stubs for 'autoloaded' widget classes
-sub Button;
-sub Canvas;
-sub Checkbutton;
-sub Entry;
-sub Frame;
-sub Label;
-sub Labelframe;
-sub Listbox;
-sub Menu;
-sub Menubutton;
-sub Message;
-sub Panedwindow;
-sub Radiobutton;
-sub Scale;
-sub Scrollbar;
-sub Spinbox;
-sub Text;
-sub Toplevel;
-
-sub Pixmap;
-sub Bitmap;
-sub Photo;
-
-sub ScrlListbox;
-sub Optionmenu;
-
-sub import
-{
- my $package = shift;
- carp 'use Tk::Widget () to pre-load widgets is deprecated' if (@_);
- my $need;
- foreach $need (@_)
- {
- unless (defined &{$need})
- {
- require "Tk/${need}.pm";
- }
- croak "Cannot locate $need" unless (defined &{$need});
- }
-}
-
-@DefaultMenuLabels = qw[~File ~Help];
-
-# Some tidy-ness functions for winfo stuff
-
-sub True { 1 }
-sub False { 0 }
-
-use Tk::Submethods( 'grab' => [qw(current status release -global)],
- 'focus' => [qw(-force -lastfor)],
- 'pack' => [qw(configure forget info propagate slaves)],
- 'grid' => [qw(bbox columnconfigure configure forget info location propagate remove rowconfigure size slaves)],
- 'form' => [qw(check configure forget grid info slaves)],
- 'event' => [qw(add delete generate info)],
- 'place' => [qw(configure forget info slaves)],
- 'wm' => [qw(capture release)],
- 'font' => [qw(actual configure create delete families measure metrics names subfonts)]
- );
-
-BEGIN {
- # FIXME - these don't work in the compiler
- *IsMenu = \&False;
- *IsMenubutton = \&False;
- *configure_self = \&Tk::configure;
- *cget_self = \&Tk::cget;
-}
-
-
-
-Direct Tk::Submethods (
- 'winfo' => [qw(cells class colormapfull depth exists
- geometry height id ismapped manager name parent reqheight
- reqwidth rootx rooty screen screencells screendepth screenheight
- screenmmheight screenmmwidth screenvisual screenwidth visual
- visualsavailable vrootheight viewable vrootwidth vrootx vrooty
- width x y toplevel children pixels pointerx pointery pointerxy
- server fpixels rgb )],
- 'tk' => [qw(appname caret scaling useinputmethods windowingsystem)]);
-
-
-sub DESTROY
-{
- my $w = shift;
- $w->destroy if ($w->IsWidget);
-}
-
-sub Install
-{
- # Dynamically loaded widgets add their core commands
- # to the Tk base class here
- my ($package,$mw) = @_;
-}
-
-sub ClassInit
-{
- # Carry out class bindings (or whatever)
- my ($package,$mw) = @_;
- return $package;
-}
-
-sub CreateOptions
-{
- return ();
-}
-
-sub CreateArgs
-{
- my ($package,$parent,$args) = @_;
- # Remove from hash %$args any configure-like
- # options which only apply at create time (e.g. -colormap for Frame),
- # or which may as well be applied right away
- # return these as a list of -key => value pairs
- # Augment same hash with default values for missing mandatory options,
- # allthough this can be done later in InitObject.
-
- # Honour -class => if present, we have hacked Tk_ConfigureWidget to
- # allow -class to be passed to any widget.
- my @result = ();
- my $class = delete $args->{'-class'};
- ($class) = $package =~ /([A-Z][A-Z0-9_]*)$/i unless (defined $class);
- @result = (-class => "\u$class") if (defined $class);
- foreach my $opt ($package->CreateOptions)
- {
- push(@result, $opt => delete $args->{$opt}) if exists $args->{$opt};
- }
- return @result;
-}
-
-sub InitObject
-{
- my ($obj,$args) = @_;
- # per object initialization, for example populating
- # with sub-widgets, adding a few object bindings to augment
- # inherited class bindings, changing binding tags.
- # Also another chance to mess with %$args before configure...
-}
-
-sub SetBindtags
-{
- my ($obj) = @_;
- $obj->bindtags([ref($obj),$obj,$obj->toplevel,'all']);
-}
-
-sub new
-{
- local $SIG{'__DIE__'} = \&Carp::croak;
- my $package = shift;
- my $parent = shift;
- $package->InitClass($parent);
- $parent->BackTrace("Odd number of args to $package->new(...)") unless ((@_ % 2) == 0);
- my %args = @_;
- my @args = $package->CreateArgs($parent,\%args);
- my $cmd = $package->Tk_cmd;
- my $pname = $parent->PathName;
- $pname = '' if ($pname eq '.');
- my $leaf = delete $args{'Name'};
- if (defined $leaf)
- {
- $leaf =~ s/[^a-z0-9_#]+/_/ig;
- $leaf = lcfirst($leaf);
- }
- else
- {
- ($leaf) = "\L$package" =~ /([a-z][a-z0-9_]*)$/;
- }
- my $lname = $pname . '.' . $leaf;
- # create a hash indexed by leaf name to speed up
- # creation of a lot of sub-widgets of the same type
- # e.g. entries in Table
- my $nhash = $parent->TkHash('_names_');
- $nhash->{$leaf} = 0 unless (exists $nhash->{$leaf});
- while (defined ($parent->Widget($lname)))
- {
- $lname = $pname . '.' . $leaf . ++$nhash->{$leaf};
- }
- my $obj = eval { &$cmd($parent, $lname, @args) };
- confess $@ if $@;
- unless (ref $obj)
- {
- die "No value from $cmd $lname" unless defined $obj;
- warn "$cmd '$lname' returned '$obj'" unless $obj eq $lname;
- $obj = $parent->Widget($lname = $obj);
- die "$obj from $lname" unless ref $obj;
- }
- bless $obj,$package;
- $obj->SetBindtags;
- my $notice = $parent->can('NoticeChild');
- $parent->$notice($obj,\%args) if $notice;
- $obj->InitObject(\%args);
-# ASkludge(\%args,1);
- $obj->configure(%args) if (%args);
-# ASkludge(\%args,0);
- return $obj;
-}
-
-sub DelegateFor
-{
- my ($w,$method) = @_;
- while(exists $w->{'Delegates'})
- {
- my $delegate = $w->{'Delegates'};
- my $widget = $delegate->{$method};
- $widget = $delegate->{DEFAULT} unless (defined $widget);
- $widget = $w->Subwidget($widget) if (defined $widget && !ref $widget);
- last unless (defined $widget);
- last if $widget == $w;
- $w = $widget;
- }
- return $w;
-}
-
-sub Delegates
-{
- my $cw = shift;
- my $specs = $cw->TkHash('Delegates');
- while (@_)
- {
- my $key = shift;
- my $val = shift;
- $specs->{$key} = $val;
- }
- return $specs;
-}
-
-sub Construct
-{
- my ($base,$name) = @_;
- my $class = (caller(0))[0];
- no strict 'refs';
-
- # Hack for broken ->isa in perl5.6.0
- delete ${"$class\::"}{'::ISA::CACHE::'} if $] == 5.006;
-
- # Pre ->isa scheme
- *{$base.'::Is'.$name} = \&False;
- *{$class.'::Is'.$name} = \&True;
-
- # DelegateFor trickyness is to allow Frames and other derived things
- # to force creation in a delegate e.g. a ScrlText with embeded windows
- # need those windows to be children of the Text to get clipping right
- # and not of the Frame which contains the Text and the scrollbars.
- *{$base.'::'."$name"} = sub { $class->new(shift->DelegateFor('Construct'),@_) };
-}
-
-sub IS
-{
- return (defined $_[1]) && $_[0] == $_[1];
-}
-
-sub _AutoloadTkWidget
-{
- my ($self,$method) = @_;
- my $what = "Tk::Widget::$method";
- unless (defined &$what)
- {
- require "Tk/$method.pm";
- }
- return $what;
-}
-
-# require UNIVERSAL; don't load .pm use XS code from perl core though
-
-sub AUTOLOAD
-{
- # Take a copy into a 'my' variable so we can recurse
- my $what = $Tk::Widget::AUTOLOAD;
- my $save = $@;
- my $name;
- # warn "AUTOLOAD $what ".(ref($_[0]) || $_[0])."\n";
- # Braces used to preserve $1 et al.
- {
- my ($pkg,$func) = $what =~ /(.*)::([^:]+)$/;
- confess("Attempt to load '$what'") unless defined($pkg) && $func =~ /^[\w:]+$/;
- $pkg =~ s#::#/#g;
- if (defined($name=$INC{"$pkg.pm"}))
- {
- $name =~ s#^(.*)$pkg\.pm$#$1auto/$pkg/$func.al#;
- }
- else
- {
- $name = "auto/$what.al";
- $name =~ s#::#/#g;
- }
- }
- # This may fail, catch error and prevent user's __DIE__ handler
- # from triggering as well...
- eval {local $SIG{'__DIE__'}; require $name};
- if ($@)
- {
- croak $@ unless ($@ =~ /Can't locate\s+(?:file\s+)?'?\Q$name\E'?/);
- my($package,$method) = ($what =~ /^(.*)::([^:]*)$/);
- if (ref $_[0] && !$_[0]->can($method)
- && $_[0]->can('Delegate')
- && $method !~ /^(ConfigSpecs|Delegates)/ )
- {
- my $delegate = $_[0]->Delegates;
- if (%$delegate || tied %$delegate)
- {
- my $widget = $delegate->{$method};
- $widget = $delegate->{DEFAULT} unless (defined $widget);
- if (defined $widget)
- {
- my $subwidget = (ref $widget) ? $widget : $_[0]->Subwidget($widget);
- if (defined $subwidget)
- {
- no strict 'refs';
- # print "AUTOLOAD: $what\n";
- *{$what} = sub { shift->Delegate($method,@_) };
- }
- else
- {
- croak "No delegate subwidget '$widget' for $what";
- }
- }
- }
- }
- if (!defined(&$what) && ref($_[0]) && $method =~ /^[A-Z]\w+$/)
- {
- # Use ->can as ->isa is broken in perl5.6.0
- my $sub = UNIVERSAL::can($_[0],'_AutoloadTkWidget');
- if ($sub)
- {
- carp "Assuming 'require Tk::$method;'" unless $_[0]->can($method);
- $what = $_[0]->$sub($method)
- }
- }
- }
- $@ = $save;
- $DB::sub = $what; # Tell debugger what is going on...
- unless (defined &$what)
- {
- no strict 'refs';
- *{$what} = sub { croak("Failed to AUTOLOAD '$what'") };
- }
- goto &$what;
-}
-
-sub _Destroyed
-{
- my $w = shift;
- my $a = delete $w->{'_Destroy_'};
- if (ref($a))
- {
- while (@$a)
- {
- my $ent = pop(@$a);
- if (ref $ent)
- {
- eval {local $SIG{'__DIE__'}; $ent->Call };
- }
- else
- {
- delete $w->{$ent};
- }
- }
- }
-}
-
-sub _OnDestroy
-{
- my $w = shift;
- $w->{'_Destroy_'} = [] unless (exists $w->{'_Destroy_'});
- push(@{$w->{'_Destroy_'}},@_);
-}
-
-sub OnDestroy
-{
- my $w = shift;
- $w->_OnDestroy(Tk::Callback->new(@_));
-}
-
-sub TkHash
-{
- my ($w,$key) = @_;
- return $w->{$key} if exists $w->{$key};
- my $hash = $w->{$key} = {};
- $w->_OnDestroy($key);
- return $hash;
-}
-
-sub privateData
-{
- my $w = shift;
- my $p = shift || caller;
- $w->{$p} ||= {};
-}
-
-my @image_types;
-my %image_method;
-
-sub ImageMethod
-{
- shift if (@_ & 1);
- while (@_)
- {
- my ($name,$method) = splice(@_,0,2);
- push(@image_types,$name);
- $image_method{$name} = $method;
- }
-}
-
-sub Getimage
-{
- my ($w, $name) = @_;
- my $mw = $w->MainWindow;
- croak "Usage \$widget->Getimage('name')" unless defined($name);
- my $images = ($mw->{'__Images__'} ||= {});
-
- return $images->{$name} if $images->{$name};
-
- ImageMethod(xpm => 'Pixmap',
- gif => 'Photo',
- ppm => 'Photo',
- xbm => 'Bitmap' ) unless @image_types;
-
- foreach my $type (@image_types)
- {
- my $method = $image_method{$type};
- my $file = Tk->findINC( "$name.$type" );
- next unless( $file && $method );
- my $sub = $w->can($method);
- unless (defined &$sub)
- {
- require Tk::widgets;
- Tk::widgets->import($method);
- }
- $images->{$name} = $w->$method( -file => $file );
- return $images->{$name};
- }
-
- # Try built-in bitmaps
- $images->{$name} = $w->Pixmap( -id => $name );
- return $images->{$name};
-}
-
-sub SaveGrabInfo
-{
- my $w = shift;
- $Tk::oldGrab = $w->grabCurrent;
- if (defined $Tk::oldGrab)
- {
- $Tk::grabStatus = $Tk::oldGrab->grabStatus;
- }
-}
-
-sub grabSave
-{
- my ($w) = @_;
- my $grab = $w->grabCurrent;
- return sub {} if (!defined $grab);
- my $method = ($grab->grabStatus eq 'global') ? 'grabGlobal' : 'grab';
- return sub { eval {local $SIG{'__DIE__'}; $grab->$method() } };
-}
-
-sub focusCurrent
-{
- my ($w) = @_;
- $w->Tk::focus('-displayof');
-}
-
-sub focusSave
-{
- my ($w) = @_;
- my $focus = $w->focusCurrent;
- return sub {} if (!defined $focus);
- return sub { eval {local $SIG{'__DIE__'}; $focus->focus } };
-}
-
-# This is supposed to replicate Tk::after behaviour,
-# but does auto-cancel when widget is deleted.
-require Tk::After;
-
-sub afterCancel
-{
- my ($w,$what) = @_;
- if (defined $what)
- {
- return $what->cancel if ref($what);
- carp "dubious cancel of $what" if 0 && $^W;
- $w->Tk::after('cancel' => $what);
- }
-}
-
-sub afterIdle
-{
- my $w = shift;
- return Tk::After->new($w,'idle','once',@_);
-}
-
-sub afterInfo {
- my ($w, $id) = @_;
- if (defined $id) {
- return ($id->[4], $id->[2], $id->[3]);
- } else {
- return sort( keys %{$w->{_After_}} );
- }
-}
-
-sub after
-{
- my $w = shift;
- my $t = shift;
- if (@_)
- {
- if ($t ne 'cancel')
- {
- require Tk::After;
- return Tk::After->new($w,$t,'once',@_)
- }
- while (@_)
- {
- my $what = shift;
- $w->afterCancel($what);
- }
- }
- else
- {
- $w->Tk::after($t);
- }
-}
-
-sub repeat
-{
- require Tk::After;
- my $w = shift;
- my $t = shift;
- return Tk::After->new($w,$t,'repeat',@_);
-}
-
-sub FindMenu
-{
- # default FindMenu is that there is no menu.
- return undef;
-}
-
-sub XEvent { shift->{'_XEvent_'} }
-
-sub propertyRoot
-{
- my $w = shift;
- return $w->property(@_,'root');
-}
-
-# atom, atomname, containing, interps, pathname
-# don't work this way - there is no window arg
-# So we pretend there was an call the C versions from Tk.xs
-
-sub atom { shift->InternAtom(@_) }
-sub atomname { shift->GetAtomName(@_) }
-sub containing { shift->Containing(@_) }
-
-# interps not done yet
-# pathname not done yet
-
-# walk and descendants adapted from Stephen's composite
-# versions as they only use core features they can go here.
-# hierachy is reversed in that descendants calls walk rather
-# than vice versa as this avoids building a list.
-# Walk should possibly be enhanced so allow early termination
-# like '-prune' of find.
-
-sub Walk
-{
- # Traverse a widget hierarchy while executing a subroutine.
- my($cw, $proc, @args) = @_;
- my $subwidget;
- foreach $subwidget ($cw->children)
- {
- $subwidget->Walk($proc,@args);
- &$proc($subwidget, @args);
- }
-} # end walk
-
-sub Descendants
-{
- # Return a list of widgets derived from a parent widget and all its
- # descendants of a particular class.
- # If class is not passed returns the entire widget hierarchy.
-
- my($widget, $class) = @_;
- my(@widget_tree) = ();
-
- $widget->Walk(
- sub { my ($widget,$list,$class) = @_;
- push(@$list, $widget) if (!defined($class) or $class eq $widget->class);
- },
- \@widget_tree, $class
- );
- return @widget_tree;
-}
-
-sub Palette
-{
- my $w = shift->MainWindow;
- unless (exists $w->{_Palette_})
- {
- my %Palette = ();
- my $c = $w->Checkbutton();
- my $e = $w->Entry();
- my $s = $w->Scrollbar();
- $Palette{'activeBackground'} = ($c->configure('-activebackground'))[3] ;
- $Palette{'activeForeground'} = ($c->configure('-activeforeground'))[3];
- $Palette{'background'} = ($c->configure('-background'))[3];
- $Palette{'disabledForeground'} = ($c->configure('-disabledforeground'))[3];
-
- $Palette{'foreground'} = ($c->configure('-foreground'))[3];
- $Palette{'highlightBackground'} = ($c->configure('-highlightbackground'))[3];
- $Palette{'highlightColor'} = ($c->configure('-highlightcolor'))[3];
- $Palette{'insertBackground'} = ($e->configure('-insertbackground'))[3];
- $Palette{'selectColor'} = ($c->configure('-selectcolor'))[3];
- $Palette{'selectBackground'} = ($e->configure('-selectbackground'))[3];
- $Palette{'selectForeground'} = ($e->configure('-selectforeground'))[3];
- $Palette{'troughColor'} = ($s->configure('-troughcolor'))[3];
- $c->destroy;
- $e->destroy;
- $s->destroy;
- $w->{_Palette_} = \%Palette;
- }
- return $w->{_Palette_};
-}
-
-# tk_setPalette --
-# Changes the default color scheme for a Tk application by setting
-# default colors in the option database and by modifying all of the
-# color options for existing widgets that have the default value.
-#
-# Arguments:
-# The arguments consist of either a single color name, which
-# will be used as the new background color (all other colors will
-# be computed from this) or an even number of values consisting of
-# option names and values. The name for an option is the one used
-# for the option database, such as activeForeground, not -activeforeground.
-# Additional special option names are:
-# priority: set the priority for the option database entries, see Tk::option
-sub setPalette
-{
- my $w = shift->MainWindow;
- # Just return on monochrome displays, otherwise errors will occur
- return if $w->depth == 1;
- my %new = (@_ == 1) ? (background => $_[0]) : @_;
- my $priority = delete($new{'priority'}) || 'widgetDefault';
-
- # Create an array that has the complete new palette. If some colors
- # aren't specified, compute them from other colors that are specified.
-
- die 'must specify a background color' if (!exists $new{background});
- my @bg = $w->rgb($new{'background'});
-
- if (!exists $new{foreground})
- {
- # Note that the range of each value in the triple returned by
- # [winfo rgb] is 0-65535, and your eyes are more sensitive to
- # green than to red, and more to red than to blue.
- my($r,$g,$b) = @bg;
- if ($r+1.5*$g+0.5*$b > 100000)
- {
- $new{'foreground'} = 'black';
- }
- else
- {
- $new{'foreground'} = 'white';
- }
- }
- my @fg = $w->rgb($new{'foreground'});
- my $darkerBg = sprintf('#%02x%02x%02x',9*$bg[0]/2560,9*$bg[1]/2560,9*$bg[2]/2560);
- foreach my $i ('activeForeground','insertBackground','selectForeground','highlightColor')
- {
- $new{$i} = $new{'foreground'} unless (exists $new{$i});
- }
- unless (exists $new{'disabledForeground'})
- {
- $new{'disabledForeground'} = sprintf('#%02x%02x%02x',(3*$bg[0]+$fg[0])/1024,(3*$bg[1]+$fg[1])/1024,(3*$bg[2]+$fg[2])/1024);
- }
- $new{'highlightBackground'} = $new{'background'} unless (exists $new{'highlightBackground'});
-
- unless (exists $new{'activeBackground'})
- {
- my @light;
- # Pick a default active background that is lighter than the
- # normal background. To do this, round each color component
- # up by 15% or 1/3 of the way to full white, whichever is
- # greater.
- foreach my $i (0, 1, 2)
- {
- $light[$i] = $bg[$i]/256;
- my $inc1 = $light[$i]*15/100;
- my $inc2 = (255-$light[$i])/3;
- if ($inc1 > $inc2)
- {
- $light[$i] += $inc1
- }
- else
- {
- $light[$i] += $inc2
- }
- $light[$i] = 255 if ($light[$i] > 255);
- }
- $new{'activeBackground'} = sprintf('#%02x%02x%02x',@light);
- }
- $new{'selectBackground'} = $darkerBg unless (exists $new{'selectBackground'});
- $new{'troughColor'} = $darkerBg unless (exists $new{'troughColor'});
- $new{'selectColor'} = '#b03060' unless (exists $new{'selectColor'});
-
- # Before doing this, make sure that the Tk::Palette variable holds
- # the default values of all options, so that tkRecolorTree can
- # be sure to only change options that have their default values.
- # If the variable exists, then it is already correct (it was created
- # the last time this procedure was invoked). If the variable
- # doesn't exist, fill it in using the defaults from a few widgets.
- my $Palette = $w->Palette;
-
- # let's make one of each of the widgets so we know what the
- # defaults are currently for this platform.
- $Tk::___tk_set_palette = $w->Toplevel(Name => "___tk_set_palette");
- $Tk::___tk_set_palette->withdraw;
- foreach my $q (qw(Button Canvas Checkbutton Entry Frame Label Labelframe
- Listbox Menubutton Menu Message Radiobutton Scale Scrollbar
- Spinbox Text
- ))
- {
- $Tk::___tk_set_palette->Component($q, $q);
- }
-
- # Walk the widget hierarchy, recoloring all existing windows.
- my $res = $w->RecolorTree(\%new);
- if ($res->{addOptionDB})
- {
- for (@{ $res->{addOptionDB} })
- {
- $w->optionAdd(@$_);
- }
- }
-
- $Tk::___tk_set_palette->destroy;
-
- # Change the option database so that future windows will get the
- # same colors.
- foreach my $option (keys %new)
- {
- $w->option('add',"*$option",$new{$option},$priority);
- # Save the options in the global variable Tk::Palette, for use the
- # next time we change the options.
- $Palette->{$option} = $new{$option};
- }
-}
-
-# tkRecolorTree --
-# This procedure changes the colors in a window and all of its
-# descendants, according to information provided by the colors
-# argument. It only modifies colors that have their default values
-# as specified by the Tk::Palette variable.
-#
-# Arguments:
-# w - The name of a window. This window and all its
-# descendants are recolored.
-# colors - The name of an array variable in the caller,
-# which contains color information. Each element
-# is named after a widget configuration option, and
-# each value is the value for that option.
-sub RecolorTree
-{
- my ($w,$colors) = @_;
- local ($@);
- my @addOptionDB;
- my $prototype = (defined $Tk::___tk_set_palette ? $Tk::___tk_set_palette->Subwidget($w->Class) || undef : undef);
- foreach my $dbOption (keys %$colors)
- {
- my $option = "-\L$dbOption";
- my $class = ucfirst($dbOption);
- my @value;
- eval {local $SIG{'__DIE__'}; @value = $w->configure($option) };
- if (@value)
- {
- # if the option database has a preference for this
- # dbOption, then use it, otherwise use the defaults
- # for the widget.
- my $defaultcolor = $w->optionGet($dbOption, $class);
- no warnings 'uninitialized';
- if ($defaultcolor eq '' ||
- ($prototype && $prototype->cget($option) ne $defaultcolor))
- {
- $defaultcolor = $value[3];
- }
- if ($defaultcolor ne '')
- {
- $defaultcolor = join ',', $w->rgb($defaultcolor);
- }
- my $chosencolor = $value[4];
- if ($chosencolor ne '')
- {
- $chosencolor = join ',', $w->rgb($chosencolor);
- }
- if ($defaultcolor eq $chosencolor)
- {
- # Change the option database so that future windows will get
- # the same colors.
- push @addOptionDB, ['*'.$w->Class.".$dbOption", $colors->{$dbOption}, 60];
- $w->configure($option,$colors->{$dbOption});
- }
- }
- }
- foreach my $child ($w->children)
- {
- my $res = $child->RecolorTree($colors);
- if ($res->{addOptionDB})
- {
- push @addOptionDB, @{ $res->{addOptionDB} };
- }
- }
- return { addOptionDB => \@addOptionDB };
-}
-# tkDarken --
-# Given a color name, computes a new color value that darkens (or
-# brightens) the given color by a given percent.
-#
-# Arguments:
-# color - Name of starting color.
-# perecent - Integer telling how much to brighten or darken as a
-# percent: 50 means darken by 50%, 110 means brighten
-# by 10%.
-sub Darken
-{
- my ($w,$color,$percent) = @_;
- my @l = $w->rgb($color);
- my $red = $l[0]/256;
- my $green = $l[1]/256;
- my $blue = $l[2]/256;
- $red = int($red*$percent/100);
- $red = 255 if ($red > 255);
- $green = int($green*$percent/100);
- $green = 255 if ($green > 255);
- $blue = int($blue*$percent/100);
- $blue = 255 if ($blue > 255);
- sprintf('#%02x%02x%02x',$red,$green,$blue)
-}
-# tk_bisque --
-# Reset the Tk color palette to the old "bisque" colors.
-#
-# Arguments:
-# None.
-sub bisque
-{
- shift->setPalette('activeBackground' => '#e6ceb1',
- 'activeForeground' => 'black',
- 'background' => '#ffe4c4',
- 'disabledForeground' => '#b0b0b0',
- 'foreground' => 'black',
- 'highlightBackground' => '#ffe4c4',
- 'highlightColor' => 'black',
- 'insertBackground' => 'black',
- 'selectColor' => '#b03060',
- 'selectBackground' => '#e6ceb1',
- 'selectForeground' => 'black',
- 'troughColor' => '#cdb79e'
- );
-}
-
-sub PrintConfig
-{
- require Tk::Pretty;
- my ($w) = (@_);
- my $c;
- foreach $c ($w->configure)
- {
- print Tk::Pretty::Pretty(@$c),"\n";
- }
-}
-
-sub BusyRecurse
-{
- my ($restore,$w,$cursor,$recurse,$top) = @_;
- my $c = $w->cget('-cursor');
- my @tags = $w->bindtags;
- if ($top || defined($c) || $w->isa('Tk::Toplevel'))
- {
- push(@$restore, sub { return unless Tk::Exists($w); $w->configure(-cursor => $c); $w->bindtags(\@tags) });
- $w->configure(-cursor => $cursor);
- }
- else
- {
- push(@$restore, sub { return unless Tk::Exists($w); $w->bindtags(\@tags) });
- }
- $w->bindtags(['Busy',@tags]);
- if ($recurse)
- {
- foreach my $child ($w->children)
- {
- BusyRecurse($restore,$child,$cursor,1,0);
- }
- }
- return $restore;
-}
-
-sub Busy
-{
- my ($w,@args) = @_;
- return unless $w->viewable;
- my($sub, %args);
- for(my $i=0; $i<=$#args; $i++)
- {
- if (ref $args[$i] eq 'CODE')
- {
- if (defined $sub)
- {
- croak "Multiple code definitions not allowed in Tk::Widget::Busy";
- }
- $sub = $args[$i];
- }
- else
- {
- $args{$args[$i]} = $args[$i+1]; $i++;
- }
- }
- my $cursor = delete $args{'-cursor'};
- my $recurse = delete $args{'-recurse'};
- $cursor = 'watch' unless defined $cursor;
- unless (exists $w->{'Busy'})
- {
- my @old = ($w->grabSave);
- my $key;
- my @config;
- foreach $key (keys %args)
- {
- push(@config,$key => $w->Tk::cget($key));
- }
- if (@config)
- {
- push(@old, sub { $w->Tk::configure(@config) });
- $w->Tk::configure(%args);
- }
- unless ($w->Tk::bind('Busy'))
- {
- $w->Tk::bind('Busy','<Any-KeyPress>',[_busy => 1]);
- $w->Tk::bind('Busy','<Any-KeyRelease>',[_busy => 0]);
- $w->Tk::bind('Busy','<Any-ButtonPress>',[_busy => 1]);
- $w->Tk::bind('Busy','<Any-ButtonRelease>',[_busy => 0]);
- $w->Tk::bind('Busy','<Any-Motion>',[_busy => 0]);
- }
- $w->{'Busy'} = BusyRecurse(\@old,$w,$cursor,$recurse,1);
- }
- my $g = $w->grabCurrent;
- if (defined $g)
- {
- # warn "$g has the grab";
- $g->grabRelease;
- }
- $w->update;
- if (Tk::Exists($w))
- {
- eval {local $SIG{'__DIE__'}; $w->grab };
- $w->update;
- }
- if ($sub && Tk::Exists($w))
- {
- eval { $sub->() };
- my $err = $@;
- $w->Unbusy(-recurse => $recurse);
- die $err if $err;
- }
-}
-
-sub _busy
-{
- my ($w,$f) = @_;
- $w->bell if $f;
- $w->break;
-}
-
-sub Unbusy
-{
- my ($w) = @_;
- $w->update;
- $w->grabRelease if Tk::Exists($w);
- my $old = delete $w->{'Busy'};
- if (defined $old)
- {
- local $SIG{'__DIE__'};
- eval { &{pop(@$old)} } while (@$old);
- }
- $w->update if Tk::Exists($w);
-}
-
-sub waitVisibility
-{
- my ($w) = shift;
- $w->tkwait('visibility',$w);
-}
-
-sub waitVariable
-{
- my ($w) = shift;
- $w->tkwait('variable',@_);
-}
-
-sub waitWindow
-{
- my ($w) = shift;
- $w->tkwait('window',$w);
-}
-
-sub EventWidget
-{
- my ($w) = @_;
- return $w->{'_EventWidget_'};
-}
-
-sub Popwidget
-{
- my ($ew,$method,$w,@args) = @_;
- $w->{'_EventWidget_'} = $ew;
- $w->$method(@args);
-}
-
-sub ColorOptions
-{
- my ($w,$args) = @_;
- my $opt;
- $args = {} unless (defined $args);
- foreach $opt (qw(-foreground -background -disabledforeground
- -activebackground -activeforeground
- ))
- {
- $args->{$opt} = $w->cget($opt) unless (exists $args->{$opt})
- }
- return (wantarray) ? %$args : $args;
-}
-
-sub XscrollBind
-{
- my ($mw,$class) = @_;
- $mw->bind($class,'<Left>', ['xview','scroll',-1,'units']);
- $mw->bind($class,'<Control-Left>', ['xview','scroll',-1,'pages']);
- $mw->bind($class,'<Control-Prior>',['xview','scroll',-1,'pages']);
- $mw->bind($class,'<Right>', ['xview','scroll',1,'units']);
- $mw->bind($class,'<Control-Right>',['xview','scroll',1,'pages']);
- $mw->bind($class,'<Control-Next>', ['xview','scroll',1,'pages']);
-
- $mw->bind($class,'<Home>', ['xview','moveto',0]);
- $mw->bind($class,'<End>', ['xview','moveto',1]);
- $mw->XMouseWheelBind($class);
-}
-
-sub PriorNextBind
-{
- my ($mw,$class) = @_;
- $mw->bind($class,'<Next>', ['yview','scroll',1,'pages']);
- $mw->bind($class,'<Prior>', ['yview','scroll',-1,'pages']);
-}
-
-sub XMouseWheelBind
-{
- my ($mw,$class) = @_;
- # <4> and <5> are how mousewheel looks on X
- # <4> and <5> are how mousewheel looks on X
- $mw->bind($class,'<Shift-4>', ['xview','scroll',-1,'units']);
- $mw->bind($class,'<Shift-5>', ['xview','scroll',1,'units']);
- $mw->bind($class,'<Button-6>', ['xview','scroll',-1,'units']);
- $mw->bind($class,'<Button-7>', ['xview','scroll',1,'units']);
-}
-
-sub YMouseWheelBind
-{
- my ($mw,$class) = @_;
- # <4> and <5> are how mousewheel looks on X
- $mw->bind($class,'<4>', ['yview','scroll',-1,'units']);
- $mw->bind($class,'<5>', ['yview','scroll',1,'units']);
-}
-
-sub YscrollBind
-{
- my ($mw,$class) = @_;
- $mw->PriorNextBind($class);
- $mw->bind($class,'<Up>', ['yview','scroll',-1,'units']);
- $mw->bind($class,'<Down>', ['yview','scroll',1,'units']);
- $mw->YMouseWheelBind($class);
-}
-
-sub XYscrollBind
-{
- my ($mw,$class) = @_;
- $mw->YscrollBind($class);
- $mw->XscrollBind($class);
- # <4> and <5> are how mousewheel looks on X
-}
-
-sub MouseWheelBind
-{
- my($mw,$class) = @_;
-
- # The MouseWheel will typically only fire on Windows. However, one
- # could use the "event generate" command to produce MouseWheel
- # events on other platforms.
-
- $mw->Tk::bind($class, '<MouseWheel>',
- [ sub { $_[0]->yview('scroll',-($_[1]/120)*3,'units') }, Tk::Ev("D")]);
-
- if ($Tk::platform eq 'unix')
- {
- # Support for mousewheels on Linux/Unix commonly comes through mapping
- # the wheel to the extended buttons. If you have a mousewheel, find
- # Linux configuration info at:
- # http://www.inria.fr/koala/colas/mouse-wheel-scroll/
- $mw->Tk::bind($class, '<4>',
- sub { $_[0]->yview('scroll', -3, 'units')
- unless $Tk::strictMotif;
- });
- $mw->Tk::bind($class, '<5>',
- sub { $_[0]->yview('scroll', 3, 'units')
- unless $Tk::strictMotif;
- });
- }
-}
-
-sub ScrlListbox
-{
- my $parent = shift;
- return $parent->Scrolled('Listbox',-scrollbars => 'w', @_);
-}
-
-sub AddBindTag
-{
- my ($w,$tag) = @_;
- my $t;
- my @tags = $w->bindtags;
- foreach $t (@tags)
- {
- return if $t eq $tag;
- }
- $w->bindtags([@tags,$tag]);
-}
-
-sub Callback
-{
- my $w = shift;
- my $name = shift;
- my $cb = $w->cget($name);
- if (defined $cb)
- {
- return $cb->Call(@_) if (ref $cb);
- return $w->$cb(@_);
- }
- return (wantarray) ? () : undef;
-}
-
-sub packAdjust
-{
-# print 'packAdjust(',join(',',@_),")\n";
- require Tk::Adjuster;
- my ($w,%args) = @_;
- my $delay = delete($args{'-delay'});
- $delay = 1 unless (defined $delay);
- $w->pack(%args);
- %args = $w->packInfo;
- my $adj = Tk::Adjuster->new($args{'-in'},
- -widget => $w, -delay => $delay, -side => $args{'-side'});
- $adj->packed($w,%args);
- return $w;
-}
-
-sub gridAdjust
-{
- require Tk::Adjuster;
- my ($w,%args) = @_;
- my $delay = delete($args{'-delay'});
- $delay = 1 unless (defined $delay);
- $w->grid(%args);
- %args = $w->gridInfo;
- my $adj = Tk::Adjuster->new($args{'-in'},-widget => $w, -delay => $delay);
- $adj->gridded($w,%args);
- return $w;
-}
-
-sub place
-{
- local $SIG{'__DIE__'} = \&Carp::croak;
- my $w = shift;
- if (@_ && $_[0] =~ /^(?:configure|forget|info|slaves)$/x)
- {
- $w->Tk::place(@_);
- }
- else
- {
- # Two things going on here:
- # 1. Add configure on the front so that we can drop leading '-'
- $w->Tk::place('configure',@_);
- # 2. Return the widget rather than nothing
- return $w;
- }
-}
-
-sub pack
-{
- local $SIG{'__DIE__'} = \&Carp::croak;
- my $w = shift;
- if (@_ && $_[0] =~ /^(?:configure|forget|info|propagate|slaves)$/x)
- {
- # maybe array/scalar context issue with slaves
- $w->Tk::pack(@_);
- }
- else
- {
- # Two things going on here:
- # 1. Add configure on the front so that we can drop leading '-'
- $w->Tk::pack('configure',@_);
- # 2. Return the widget rather than nothing
- return $w;
- }
-}
-
-sub grid
-{
- local $SIG{'__DIE__'} = \&Carp::croak;
- my $w = shift;
- if (@_ && $_[0] =~ /^(?:bbox|columnconfigure|configure|forget|info|location|propagate|remove|rowconfigure|size|slaves)$/x)
- {
- my $opt = shift;
- Tk::grid($opt,$w,@_);
- }
- else
- {
- # Two things going on here:
- # 1. Add configure on the front so that we can drop leading '-'
- Tk::grid('configure',$w,@_);
- # 2. Return the widget rather than nothing
- return $w;
- }
-}
-
-sub form
-{
- local $SIG{'__DIE__'} = \&Carp::croak;
- my $w = shift;
- if (@_ && $_[0] =~ /^(?:configure|check|forget|grid|info|slaves)$/x)
- {
- $w->Tk::form(@_);
- }
- else
- {
- # Two things going on here:
- # 1. Add configure on the front so that we can drop leading '-'
- $w->Tk::form('configure',@_);
- # 2. Return the widget rather than nothing
- return $w;
- }
-}
-
-sub Scrolled
-{
- my ($parent,$kind,%args) = @_;
- $kind = 'Pane' if $kind eq 'Frame';
- # Find args that are Frame create time args
- my @args = Tk::Frame->CreateArgs($parent,\%args);
- my $name = delete $args{'Name'};
- push(@args,'Name' => $name) if (defined $name);
- my $cw = $parent->Frame(@args);
- @args = ();
- # Now remove any args that Frame can handle
- foreach my $k ('-scrollbars',map($_->[0],$cw->configure))
- {
- push(@args,$k,delete($args{$k})) if (exists $args{$k})
- }
- # Anything else must be for target widget - pass at widget create time
- my $w = $cw->$kind(%args);
- # Now re-set %args to be ones Frame can handle
- %args = @args;
- $cw->ConfigSpecs('-scrollbars' => ['METHOD','scrollbars','Scrollbars','se'],
- '-background' => [$w,'background','Background'],
- '-foreground' => [$w,'foreground','Foreground'],
- );
- $cw->AddScrollbars($w);
- $cw->Default("\L$kind" => $w);
- $cw->Delegates('bind' => $w, 'bindtags' => $w, 'menu' => $w);
- $cw->ConfigDefault(\%args);
- $cw->configure(%args);
- return $cw;
-}
-
-sub Populate
-{
- my ($cw,$args) = @_;
-}
-
-sub ForwardEvent
-{
- my $self = shift;
- my $to = shift;
- $to->PassEvent($self->XEvent);
-}
-
-# Save / Return abstract event type as in Tix.
-sub EventType
-{
- my $w = shift;
- $w->{'_EventType_'} = $_[0] if @_;
- return $w->{'_EventType_'};
-}
-
-sub PostPopupMenu
-{
- my ($w, $X, $Y) = @_;
- if (@_ < 3)
- {
- my $e = $w->XEvent;
- $X = $e->X;
- $Y = $e->Y;
- }
- my $menu = $w->menu;
- $menu->Post($X,$Y) if defined $menu;
-}
-
-sub FillMenu
-{
- my ($w,$menu,@labels) = @_;
- foreach my $lab (@labels)
- {
- my $method = $lab.'MenuItems';
- $method =~ s/~//g;
- $method =~ s/[\s-]+/_/g;
- if ($w->can($method))
- {
- $menu->Menubutton(-label => $lab, -tearoff => 0, -menuitems => $w->$method());
- }
- }
- return $menu;
-}
-
-sub menu
-{
- my ($w,$menu) = @_;
- if (@_ > 1)
- {
- $w->_OnDestroy('_MENU_') unless exists $w->{'_MENU_'};
- $w->{'_MENU_'} = $menu;
- }
- return unless defined wantarray;
- unless (exists $w->{'_MENU_'})
- {
- $w->_OnDestroy('_MENU_');
- $w->{'_MENU_'} = $menu = $w->Menu(-tearoff => 0);
- $w->FillMenu($menu,$w->MenuLabels);
- }
- return $w->{'_MENU_'};
-}
-
-sub MenuLabels
-{
- return @DefaultMenuLabels;
-}
-
-sub FileMenuItems
-{
- my ($w) = @_;
- return [ ["command"=>'E~xit', -command => [ $w, 'WmDeleteWindow']]];
-}
-
-sub WmDeleteWindow
-{
- shift->toplevel->WmDeleteWindow
-}
-
-sub BalloonInfo
-{
- my ($widget,$balloon,$X,$Y,@opt) = @_;
- foreach my $opt (@opt)
- {
- my $info = $balloon->GetOption($opt,$widget);
- return $info if defined $info;
- }
-}
-
-sub ConfigSpecs {
-
- my $w = shift;
-
- return map { ( $_->[0], [ $w, @$_[ 1 .. 4 ] ] ) } $w->configure;
-
-}
-
-*GetSelection =
- ($Tk::platform eq 'unix'
- ? sub
- {
- my $w = shift;
- my $sel = @_ ? shift : "PRIMARY";
- my $txt = eval { local $SIG{__DIE__};
- $w->SelectionGet(-selection => $sel, -type => "UTF8_STRING")
- };
- if ($@)
- {
- $txt = eval { local $SIG{__DIE__};
- $w->SelectionGet(-selection => $sel)
- };
- if ($@)
- {
- die "could not find default selection";
- }
- }
- $txt;
- }
- : sub
- {
- my $w = shift;
- my $sel = @_ ? shift : "PRIMARY";
- my $txt = eval { local $SIG{__DIE__};
- $w->SelectionGet(-selection => $sel)
- };
- if ($@)
- {
- die "could not find default selection";
- }
- $txt;
- }
- );
-
-1;
-__END__
-
-sub bindDump {
-
- # Dump lots of good binding information. This pretty-print subroutine
- # is, essentially, the following code in disguise:
- #
- # print "Binding information for $w\n";
- # foreach my $tag ($w->bindtags) {
- # printf "\n Binding tag '$tag' has these bindings:\n";
- # foreach my $binding ($w->Tk::bind($tag)) {
- # printf " $binding\n";
- # }
- # }
-
- my ($w) = @_;
-
- my (@bindtags) = $w->bindtags;
- my $digits = length( scalar @bindtags );
- my ($spc1, $spc2) = ($digits + 33, $digits + 35);
- my $format1 = "%${digits}d.";
- my $format2 = ' ' x ($digits + 2);
- my $n = 0;
-
- my @out;
- push @out, sprintf( "\n## Binding information for '%s', %s ##", $w->PathName, $w );
-
- foreach my $tag (@bindtags) {
- my (@bindings) = $w->Tk::bind($tag);
- $n++; # count this bindtag
-
- if ($#bindings == -1) {
- push @out, sprintf( "\n$format1 Binding tag '$tag' has no bindings.\n", $n );
- } else {
- push @out, sprintf( "\n$format1 Binding tag '$tag' has these bindings:\n", $n );
-
- foreach my $binding ( @bindings ) {
- my $callback = $w->Tk::bind($tag, $binding);
- push @out, sprintf( "$format2%27s : %-40s\n", $binding, $callback );
-
- if ($callback =~ /SCALAR/) {
- if (ref $$callback) {
- push @out, sprintf( "%s %s\n", ' ' x $spc1, $$callback );
- } else {
- push @out, sprintf( "%s '%s'\n", ' ' x $spc1, $$callback );
- }
- } elsif ($callback =~ /ARRAY/) {
- if (ref $callback->[0]) {
- push @out, sprintf( "%s %s\n", ' ' x $spc1, $callback->[0] );
- } else {
- push @out, sprintf( "%s '%s'\n", ' ' x $spc1, $callback->[0] );
- }
- foreach my $arg (@$callback[1 .. $#$callback]) {
- if (ref $arg) {
- push @out, sprintf( "%s %-40s", ' ' x $spc2, $arg );
- } else {
- push @out, sprintf( "%s '%s'", ' ' x $spc2, $arg );
- }
-
- if (ref $arg eq 'Tk::Ev') {
- if ($arg =~ /SCALAR/) {
- push @out, sprintf( ": '$$arg'" );
- } else {
- push @out, sprintf( ": '%s'", join("' '", @$arg) );
- }
- }
-
- push @out, sprintf( "\n" );
- } # forend callback arguments
- } # ifend callback
-
- } # forend all bindings for one tag
-
- } # ifend have bindings
-
- } # forend all tags
- push @out, sprintf( "\n" );
- return @out;
-
-} # end bindDump
-
-
-sub ASkludge
-{
- my ($hash,$sense) = @_;
- foreach my $key (%$hash)
- {
- if ($key =~ /-.*variable/ && ref($hash->{$key}) eq 'SCALAR')
- {
- if ($sense)
- {
- my $val = ${$hash->{$key}};
- require Tie::Scalar;
- tie ${$hash->{$key}},'Tie::StdScalar';
- ${$hash->{$key}} = $val;
- }
- else
- {
- untie ${$hash->{$key}};
- }
- }
- }
-}
-
-
-
-# clipboardKeysyms --
-# This procedure is invoked to identify the keys that correspond to
-# the "copy", "cut", and "paste" functions for the clipboard.
-#
-# Arguments:
-# copy - Name of the key (keysym name plus modifiers, if any,
-# such as "Meta-y") used for the copy operation.
-# cut - Name of the key used for the cut operation.
-# paste - Name of the key used for the paste operation.
-#
-# This method is obsolete use clipboardOperations and abstract
-# event types instead. See Clipboard.pm and Mainwindow.pm
-
-sub clipboardKeysyms
-{
- my @class = ();
- my $mw = shift;
- if (ref $mw)
- {
- $mw = $mw->DelegateFor('bind');
- }
- else
- {
- push(@class,$mw);
- $mw = shift;
- }
- if (@_)
- {
- my $copy = shift;
- $mw->Tk::bind(@class,"<$copy>",'clipboardCopy') if (defined $copy);
- }
- if (@_)
- {
- my $cut = shift;
- $mw->Tk::bind(@class,"<$cut>",'clipboardCut') if (defined $cut);
- }
- if (@_)
- {
- my $paste = shift;
- $mw->Tk::bind(@class,"<$paste>",'clipboardPaste') if (defined $paste);
- }
-}
-
-sub pathname
-{
- my ($w,$id) = @_;
- my $x = $w->winfo('pathname',-displayof => oct($id));
- return $x->PathName;
-}
-
-# ::tk::UnderlineAmpersand --
-# This procedure takes some text with ampersand and returns
-# text w/o ampersand and position of the ampersand.
-# Double ampersands are converted to single ones.
-# Position returned is -1 when there is no ampersand.
-#
-sub UnderlineAmpersand
-{
- my (undef,$text) = @_;
- if ($text =~ m{(?<!&)&(?!&)}g)
- {
- my $idx = pos $text;
- $text =~ s{(?<!&)&(?!&)}{};
- ($text, $idx);
- }
- else
- {
- ($text, -1);
- }
-}
-
-# ::tk::SetAmpText --
-# Given widget path and text with "magic ampersands",
-# sets -text and -underline options for the widget
-#
-sub SetAmpText
-{
- my ($w,$text) = @_;
- my ($newtext,$under) = $w->UnderlineAmpersand($text);
- $w->configure(-text => $newtext, -underline => $under);
-}
-
-# ::tk::AmpWidget --
-# Creates new widget, turning -text option into -text and
-# -underline options, returned by ::tk::UnderlineAmpersand.
-#
-sub AmpWidget
-{
- my ($w,$class,%args) = @_;
- my @options;
- while(my($opt,$val) = each %args)
- {
- if ($opt eq "-text")
- {
- my ($newtext,$under) = $w->UnderlineAmpersand($val);
- push @options, -text => $newtext, -underline => $under;
- }
- else
- {
- push @options, $opt, $val;
- }
- }
- my $result = $w->$class(@options);
- if ($result->can('AmpWidgetPostHook'))
- {
- $result->AmpWidgetPostHook;
- }
- return $result;
-}
-
-# ::tk::FindAltKeyTarget --
-# search recursively through the hierarchy of visible widgets
-# to find button or label which has $char as underlined character
-#
-sub FindAltKeyTarget
-{
- my ($w,$char) = @_;
- $char = lc $char;
- if ($w->isa('Tk::Button') || $w->isa('Tk::Label'))
- {
- if ($char eq lc substr($w->cget(-text), $w->cget(-underline), 1))
- {
- return $w;
- }
- else
- {
- return undef;
- }
- }
- else
- {
- for my $cw ($w->gridSlaves, $w->packSlaves, $w->placeSlaves) # Cannot handle $w->formSlaves here?
- {
- my $target = $cw->FindAltKeyTarget($char);
- return $target if ($target);
- }
- }
- undef;
-}
-
-# ::tk::AltKeyInDialog --
-# <Alt-Key> event handler for standard dialogs. Sends <<AltUnderlined>>
-# to button or label which has appropriate underlined character
-#
-sub AltKeyInDialog
-{
- my ($w, $key) = @_;
- my $target = $w->FindAltKeyTarget($key);
- return if !$target;
- $target->eventGenerate('<<AltUnderlined>>');
-}
-
-# ::tk::SetFocusGrab --
-# swap out current focus and grab temporarily (for dialogs)
-# Arguments:
-# grab new window to grab
-# focus window to give focus to
-# Results:
-# Returns nothing
-#
-sub SetFocusGrab
-{
- my ($grab,$focus) = @_;
- my $index = "$grab,$focus";
- $Tk::FocusGrab{$index} ||= [];
- my $data = $Tk::FocusGrab{$index};
- push @$data, $grab->focusCurrent;
- my $oldGrab = $grab->grabCurrent;
- push @$data, $oldGrab;
- if (Tk::Exists($oldGrab))
- {
- push @$data, $oldGrab->grabStatus;
- }
- # The "grab" command will fail if another application
- # already holds the grab. So catch it.
- Tk::catch { $grab->grab };
- if (Tk::Exists($focus))
- {
- $focus->focus;
- }
-}
-
-# ::tk::RestoreFocusGrab --
-# restore old focus and grab (for dialogs)
-# Arguments:
-# grab window that had taken grab
-# focus window that had taken focus
-# destroy destroy|withdraw - how to handle the old grabbed window
-# Results:
-# Returns nothing
-#
-sub RestoreFocusGrab
-{
- my ($grab, $focus, $destroy) = @_;
- $destroy = 'destroy' if !$destroy;
- my $index = "$grab,$focus";
- my ($oldFocus, $oldGrab, $oldStatus);
- if (exists $Tk::FocusGrab{$index})
- {
- ($oldFocus, $oldGrab, $oldStatus) = $Tk::FocusGrab{$index};
- delete $Tk::FocusGrab{$index};
- }
- else
- {
- $oldGrab = "";
- }
-
- Tk::catch { $oldFocus->focus };
- if (Tk::Exists($grab))
- {
- $grab->grabRelease;
- if ($destroy eq "withdraw")
- {
- $grab->withdraw;
- }
- else
- {
- $grab->destroy;
- }
- }
- if (Tk::Exists($oldGrab) && $oldGrab->ismapped)
- {
- if ($oldStatus eq "global")
- {
- $oldGrab->grabGlobal;
- }
- else
- {
- $oldGrab->grab;
- }
- }
-}
-
-# See http://rt.cpan.org/Ticket/Display.html?id=30929 and
-# http://rt.cpan.org/Ticket/Display.html?id=31016
-sub MasterMenu
- {
- }
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Widget.pod b/Master/tlpkg/tlperl/lib/Tk/Widget.pod
deleted file mode 100644
index 696bbab22b7..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Widget.pod
+++ /dev/null
@@ -1,678 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1997 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Widget - Base class of all widgets
-
-=for pm Tk/Widget.pm
-
-=for category Tk Generic Methods
-
-=head1 SYNOPSIS
-
- package Tk::Whatever;
- require Tk::Widget;
- @ISA = qw(Tk::Widget);
- Construct Tk::Widget 'Whatever';
-
- sub Tk_cmd { \&Tk::whatever }
-
-S< >I<$widget>-E<gt>I<method>(?I<arg, arg, ...>?)
-
-=head1 DESCRIPTION
-
-The B<Tk::Widget> is an abstract base class for all Tk widgets.
-
-Generic methods available to all widgets include the methods based on core
-C<winfo> mechanism and are used to retrieve information about windows managed by
-Tk. They can take any of a number of different forms, depending on the I<method>.
-The legal forms are:
-
-=over 4
-
-=item I<$widget>-E<gt>B<appname>?(I<newName>)?
-
-If I<newName> isn't specified, this method returns the name
-of the application (the name that may be used in B<send>
-commands to communicate with the application).
-If I<newName> is specified, then the name of the application
-is changed to I<newName>.
-If the given name is already in use, then a suffix of the form
-``B< #2>'' or ``B< #3>'' is appended in order to make the name unique.
-The method's result is the name actually chosen.
-I<newName> should not start with a capital letter.
-This will interfere with L<option|Tk::option> processing, since names starting with
-capitals are assumed to be classes; as a result, Tk may not
-be able to find some options for the application.
-If sends have been disabled by deleting the B<send> command,
-this command will reenable them and recreate the B<send>
-command.
-
-=item I<$widget>-E<gt>B<atom>(I<name>)
-
-Returns a decimal string giving the integer identifier for the
-atom whose name is I<name>. If no atom exists with the name
-I<name> then a new one is created.
-
-=item I<$widget>-E<gt>B<atomname>(I<id>)
-
-Returns the textual name for the atom whose integer identifier is
-I<id>.
-This command is the inverse of the I<$widget>-E<gt>B<atom> command.
-It generates an error if no such atom exists.
-
-=item I<$widget>-E<gt>B<bell>( ?-nice? );
-
-This command rings the bell on the display for I<$widget> and
-returns an empty string.
-The command uses the current bell-related settings for the display, which
-may be modified with programs such as B<xset>.
-
-If I<-nice> is not specified, this command also resets the screen saver
-for the screen. Some screen savers will ignore this, but others will
-reset so that the screen becomes visible again.
-
-=item I<$widget>-E<gt>B<bindDump>
-
-This command returns a list of strings suitable for printing detailing
-binding information for a widget. It prints a widget's
-bindtags. For each binding tag it prints all the bindings, comprised
-of the event descriptor and the callback. Callback arguments are
-printed, and B<Tk::Ev> objects are expanded.
-
-=item I<$widget>-E<gt>B<Busy>?(?-recurse => 1?,I<-option> => I<value>?)?
-
-This method B<configure>s a B<-cursor> option for I<$widget> and
-(if B<-recurse => 1> is specified) all its descendants. The cursor to
-be set may be passed as S<B<-cursor> => I<cursor>> or defaults to 'watch'.
-Additional B<configure> options are applied to I<$widget> only.
-It also adds a special tag B<'Busy'> to the B<bindtags> of the widgets so
-configured so that B<KeyPress>, B<KeyRelease>, B<ButtonPress> and
-B<ButtonRelease> events are ignored (with press events generating a call to
-B<bell>). It then acquires a local B<grab> for I<$widget>.
-The state of the widgets and the grab is restored by a call to
-I<$widget>-E<gt>B<Unbusy>.
-
-=item I<$widget>-E<gt>B<caret>( ?-x => I<x>?, ?-y => I<y>?, ?-height
-=> I<height>? );
-
-Sets and queries the caret location for the display of the specified
-Tk window window. The caret is the per-display cursor location used
-for indicating global focus (e.g. to comply with Microsoft
-Accessibility guidelines), as well as for location of the
-over-the-spot XIM (X Input Methods) or Windows IME windows. If no
-options are specified, the last values used for setting the caret are
-return in option-value pair format. -x and -y represent
-window-relative coordinates, and -height is the height of the current
-cursor location, or the height of the specified window if none is
-given.
-
-=item I<$widget>-E<gt>B<cells>
-
-Returns a decimal string giving the number of cells in the
-color map for I<$widget>.
-
-=item I<$widget>-E<gt>B<children>
-
-I<$widget->>B<children>
-Returns a list containing all the children
-of $widget. The list is in stacking order, with the lowest
-window first. Top-level windows are returned as children
-of their logical parents.
-
-=item I<$widget>-E<gt>B<class>
-
-Returns the class name for I<$widget>.
-
-=item I<$widget>-E<gt>B<colormapfull>
-
-Returns 1 if the colormap for I<$widget> is known to be full, 0
-otherwise. The colormap for a window is ``known'' to be full if the last
-attempt to allocate a new color on that window failed and this
-application hasn't freed any colors in the colormap since the
-failed allocation.
-
-=item I<$widget>-E<gt>B<ConfigSpecs>
-
-Used to perform delegated option configuration for a mega-widget.
-Returns, in Tk::Derived::ConfigSpecs notation (see L<Tk::ConfigSpecs>),
-all possible options for a widget. For example,
-
- $s = $self->Scale;
- $self->ConfigSpecs(
- $s->ConfigSpecs,
- .... more ConfigSpecs specifications
- );
-
-returns a hash of all Tk::Scale options, delegated to $s - e.g. some
-representative examples:
-
- -bigincrement => [$s, bigIncrement, BigIncrement, 0, 0]
- -digits => [$s, digits, Digits, 0, 0]
- -sliderlength => [$s, sliderLength, SliderLength, 10m, 30]
- -troughcolor => [$s, troughColor, Background, #c3c3c3, #c3c3c3]
-
-This provides an easy means of populating a mega-widget's ConfigSpecs
-with initializers.
-
-=item I<$widget>-E<gt>B<containing>(I<rootX,rootY>)
-
-Returns the window containing the point given
-by I<rootX> and I<rootY>.
-I<RootX> and I<rootY> are specified in screen units (i.e.
-any form acceptable to B<Tk_GetPixels>) in the coordinate
-system of the root window (if a virtual-root window manager is in
-use then the coordinate system of the virtual root window is used).
-If no window in this application contains the point then an empty
-string is returned.
-In selecting the containing window, children are given higher priority
-than parents and among siblings the highest one in the stacking order is
-chosen.
-
-=item I<$widget>-E<gt>B<depth>
-
-Returns a decimal string giving the depth of I<$widget> (number
-of bits per pixel).
-
-=item I<$widget>-E<gt>B<destroy>
-
-This command deletes the window related to
-I<$widget>, plus all its descendants.
-If all the B<MainWindows> are deleted then the entire application
-will be destroyed.
-
-The perl object I<$widget> continues to exist while references
-to it still exist, e.g. until variable goes out of scope.
-However any attempt to use Tk methods on the object will fail.
-B<Exists>(I<$widget>) will return false on such objects.
-
-Note however that while a window exists for I<$widget> the
-perl object is maintained (due to "references" in perl/Tk internals)
-even though original variables may have gone out of scope.
-(Normally this is intuitive.)
-
-=item B<Exists>(I<$widget>)
-
-Returns 1 if there exists a window for I<$widget>, 0 if no such
-window exists.
-
-=item I<$widget>-E<gt>B<font>(I<option>?, I<arg, arg, ...>?)
-
-Create and inspect fonts. See L<Tk::Font> for further details.
-
-=item I<$widget>-E<gt>B<fpixels>(I<number>)
-
-Returns a floating-point value giving the number of pixels
-in I<$widget> corresponding to the distance given by I<number>.
-I<Number> may be specified in any of the forms acceptable
-to B<Tk_GetScreenMM>, such as ``2.0c'' or ``1i''.
-The return value may be fractional; for an integer value, use
-I<$widget>-E<gt>B<pixels>.
-
-=item I<$widget>-E<gt>B<Getimage>(I<name>)
-
-Given I<name>, look for an image file with that base name and return
-a L<Tk::Image>. File extensions are tried in this order: F<xpm>,
-F<gif>, F<ppm>, F<xbm> until a valid iamge is found. If no image is
-found, try a builtin image with that name.
-
-=item I<$widget>-E<gt>B<geometry>
-
-Returns the geometry for I<$widget>, in the form
-I<width>B<x>I<height>B<+>I<x>B<+>I<y>. All dimensions are
-in pixels.
-
-=item I<$widget>-E<gt>B<height>
-
-Returns a decimal string giving I<$widget>'s height in pixels.
-When a window is first created its height will be 1 pixel; the
-height will eventually be changed by a geometry manager to fulfill
-the window's needs.
-If you need the true height immediately after creating a widget,
-invoke B<update> to force the geometry manager to arrange it,
-or use I<$widget>-E<gt>B<reqheight> to get the window's requested height
-instead of its actual height.
-
-=item I<$widget>-E<gt>B<id>
-
-Returns a hexadecimal string giving a low-level platform-specific
-identifier for $widget. On Unix platforms, this is the X
-window identifier. Under Windows, this is the Windows
-HWND. On the Macintosh the value has no meaning outside Tk.
-
-=item I<$widget>-E<gt>B<idletasks>
-
-One of two methods which are used to bring the application ``up to date''
-by entering the event loop repeated until all pending events
-(including idle callbacks) have been processed.
-
-If the B<idletasks> method is specified, then no new events or errors
-are processed; only idle callbacks are invoked. This causes operations
-that are normally deferred, such as display updates and window layout
-calculations, to be performed immediately.
-
-The B<idletasks> command is useful in scripts where changes have been
-made to the application's state and you want those changes to appear
-on the display immediately, rather than waiting for the script to
-complete. Most display updates are performed as idle callbacks, so
-B<idletasks> will cause them to run. However, there are some kinds of
-updates that only happen in response to events, such as those
-triggered by window size changes; these updates will not occur in
-B<idletasks>.
-
-=item I<$widget>-E<gt>B<interps>
-
-Returns a list whose members are the names of all Tcl interpreters
-(e.g. all Tk-based applications) currently registered for
-a particular display.
-The return value refers
-to the display of I<$widget>.
-
-=item I<$widget>-E<gt>B<ismapped>
-
-Returns B<1> if I<$widget> is currently mapped, B<0> otherwise.
-
-=item I<$widget->>B<lower>(?I<belowThis>?)
-
-If the I<belowThis> argument is omitted then the command lowers
-$widget so that it is below all of its siblings in the stacking
-order (it will be obscured by any siblings that overlap it and
-will not obscure any siblings).
-If I<belowThis> is specified then it must be the path name of
-a window that is either a sibling of $widget or the descendant
-of a sibling of $widget.
-In this case the B<lower> command will insert
-$widget into the stacking order just below I<belowThis>
-(or the ancestor of I<belowThis> that is a sibling of $widget);
-this could end up either raising or lowering $widget.
-
-=item I<$widget>-E<gt>B<MapWindow>
-
-Cause I<$widget> to be "mapped" i.e. made visible on the display.
-May confuse the geometry manager (pack, grid, place, ...)
-that thinks it is managing the widget.
-
-=item I<$widget>-E<gt>B<manager>
-
-Returns the name of the geometry manager currently
-responsible for I<$widget>, or an empty string if I<$widget>
-isn't managed by any geometry manager.
-The name is usually the name of the method for the geometry
-manager, such as B<pack> or B<place>.
-If the geometry manager is a widget, such as canvases or text, the
-name is the widget's class command, such as B<canvas>.
-
-=item I<$widget>-E<gt>B<name>
-
-Returns I<$widget>'s name (i.e. its name within its parent, as opposed
-to its full path name).
-The command I<$mainwin>-E<gt>B<name> will return the name of the application.
-
-=item I<$widget>-E<gt>B<OnDestroy>(I<callback>);
-
-OnDestroy accepts a standard perl/Tk I<callback>.
-When the window associated with I<$widget> is destroyed then
-the callback is invoked. Unlike I<$widget->>bind('E<lt>DestroyE<gt>',...)
-the widgets methods are still available when I<callback> is executed,
-so (for example) a B<Text> widget can save its contents to a file.
-
-OnDestroy was required for new B<after> mechanism.
-
-=item I<$widget>-E<gt>B<parent>
-
-Returns I<$widget>'s parent, or an empty string
-if I<$widget> is the main window of the application.
-
-=item I<$widget>-E<gt>B<PathName>
-
-Returns the Tk path name of I<$widget>. This is the inverse of the
-L</Widget> method. (This is an import from the C interface.)
-
-=item I<$widget>-E<gt>B<pathname>(I<id>)
-
-Returns an object whose X identifier is I<id>.
-The identifier is looked up on the display of I<$widget>.
-I<Id> must be a decimal, hexadecimal, or octal integer and must
-correspond to a window in the invoking application, or an error
-occurs which can be trapped with C<eval { }> or C<Tk::catch { }>.
-If the window belongs to the application, but is not an object
-(for example wrapper windows, HList header, etc.) then C<undef>
-is returned.
-
-=item I<$widget>-E<gt>B<pixels>(I<number>)
-
-Returns the number of pixels in I<$widget> corresponding
-to the distance given by I<number>.
-I<Number> may be specified in any of the forms acceptable
-to B<Tk_GetPixels>, such as ``2.0c'' or ``1i''.
-The result is rounded to the nearest integer value; for a
-fractional result, use I<$widget>-E<gt>B<fpixels>.
-
-=item I<$widget>-E<gt>B<pointerx>
-
-If the mouse pointer is on the same screen as I<$widget>, returns the
-pointer's x coordinate, measured in pixels in the screen's root window.
-If a virtual root window is in use on the screen, the position is
-measured in the virtual root.
-If the mouse pointer isn't on the same screen as I<$widget> then
--1 is returned.
-
-=item I<$widget>-E<gt>B<pointerxy>
-
-If the mouse pointer is on the same screen as I<$widget>, returns a list
-with two elements, which are the pointer's x and y coordinates measured
-in pixels in the screen's root window.
-If a virtual root window is in use on the screen, the position
-is computed in the virtual root.
-If the mouse pointer isn't on the same screen as I<$widget> then
-both of the returned coordinates are -1.
-
-=item I<$widget>-E<gt>B<pointery>
-
-If the mouse pointer is on the same screen as I<$widget>, returns the
-pointer's y coordinate, measured in pixels in the screen's root window.
-If a virtual root window is in use on the screen, the position
-is computed in the virtual root.
-If the mouse pointer isn't on the same screen as I<$widget> then
--1 is returned.
-
-=item I<$widget>-E<gt>B<raise>(?I<aboveThis>?)
-
-If the I<aboveThis> argument is omitted then the command raises
-$widget so that it is above all of its siblings in the stacking
-order (it will not be obscured by any siblings and will obscure
-any siblings that overlap it).
-If I<aboveThis> is specified then it must be the path name of
-a window that is either a sibling of $widget or the descendant
-of a sibling of $widget.
-In this case the B<raise> command will insert
-$widget into the stacking order just above I<aboveThis>
-(or the ancestor of I<aboveThis> that is a sibling of $widget);
-this could end up either raising or lowering $widget.
-
-=item I<$widget>-E<gt>B<reqheight>
-
-Returns a decimal string giving I<$widget>'s requested height,
-in pixels. This is the value used by I<$widget>'s geometry
-manager to compute its geometry.
-
-=item I<$widget>-E<gt>B<reqwidth>
-
-Returns a decimal string giving I<$widget>'s requested width,
-in pixels. This is the value used by I<$widget>'s geometry
-manager to compute its geometry.
-
-=item I<$widget>-E<gt>B<rgb>(I<color>)
-
-Returns a list containing three decimal values, which are the
-red, green, and blue intensities that correspond to I<color> in
-the window given by I<$widget>. I<Color>
-may be specified in any of the forms acceptable for a color
-option.
-
-=item I<$widget>-E<gt>B<rootx>
-
-Returns a decimal string giving the x-coordinate, in the root
-window of the screen, of the
-upper-left corner of I<$widget>'s border (or I<$widget> if it
-has no border).
-
-=item I<$widget>-E<gt>B<rooty>
-
-Returns a decimal string giving the y-coordinate, in the root
-window of the screen, of the
-upper-left corner of I<$widget>'s border (or I<$widget> if it
-has no border).
-
-=item I<$widget>-E<gt>B<scaling>?(I<number>)?
-
-Sets and queries the current scaling factor used by Tk to convert between
-physical units (for example, points, inches, or millimeters) and pixels. The
-I<number> argument is a floating point number that specifies the number of
-pixels per point on $widget's display. If the I<number> argument is
-omitted, the current value of the scaling factor is returned.
-
-A ``point'' is a unit of measurement equal to 1/72 inch. A scaling factor
-of 1.0 corresponds to 1 pixel per point, which is equivalent to a standard
-72 dpi monitor. A scaling factor of 1.25 would mean 1.25 pixels per point,
-which is the setting for a 90 dpi monitor; setting the scaling factor to
-1.25 on a 72 dpi monitor would cause everything in the application to be
-displayed 1.25 times as large as normal. The initial value for the scaling
-factor is set when the application starts, based on properties of the
-installed monitor (as reported via the window system),
-but it can be changed at any time. Measurements made
-after the scaling factor is changed will use the new scaling factor, but it
-is undefined whether existing widgets will resize themselves dynamically to
-accomodate the new scaling factor.
-
-=item I<$widget>-E<gt>B<screen>
-
-Returns the name of the screen associated with I<$widget>, in
-the form I<displayName>.I<screenIndex>.
-
-=item I<$widget>-E<gt>B<screencells>
-
-Returns a decimal string giving the number of cells in the default
-color map for I<$widget>'s screen.
-
-=item I<$widget>-E<gt>B<screendepth>
-
-Returns a decimal string giving the depth of the root window
-of I<$widget>'s screen (number of bits per pixel).
-
-=item I<$widget>-E<gt>B<screenheight>
-
-Returns a decimal string giving the height of I<$widget>'s screen,
-in pixels.
-
-=item I<$widget>-E<gt>B<screenmmheight>
-
-Returns a decimal string giving the height of I<$widget>'s screen,
-in millimeters.
-
-=item I<$widget>-E<gt>B<screenmmwidth>
-
-Returns a decimal string giving the width of I<$widget>'s screen,
-in millimeters.
-
-=item I<$widget>-E<gt>B<screenvisual>
-
-Returns one of the following strings to indicate the default visual
-class for I<$widget>'s screen: B<directcolor>, B<grayscale>,
-B<pseudocolor>, B<staticcolor>, B<staticgray>, or
-B<truecolor>.
-
-=item I<$widget>-E<gt>B<screenwidth>
-
-Returns a decimal string giving the width of I<$widget>'s screen,
-in pixels.
-
-=item I<$widget>-E<gt>B<server>
-
-Returns a string containing information about the server for
-I<$widget>'s display. The exact format of this string may vary
-from platform to platform. For X servers the string
-has the form ``B<X>I<major>B<R>I<minor vendor vendorVersion>''
-where I<major> and I<minor> are the version and revision
-numbers provided by the server (e.g., B<X11R5>), I<vendor>
-is the name of the vendor for the server, and I<vendorRelease>
-is an integer release number provided by the server.
-
-=item I<$widget>-E<gt>B<toplevel>
-
-Returns the reference of the top-level window containing I<$widget>.
-
-=item I<$widget>-E<gt>B<Unbusy>
-
-Restores widget state after a call to I<$widget>-E<gt>B<Busy>.
-
-=item I<$widget>-E<gt>B<UnmapWindow>
-
-Cause I<$widget> to be "unmapped" i.e. removed from the display.
-This does for any widget what I<$widget>-E<gt>withdraw does for
-toplevel widgets. May confuse the geometry manager (pack, grid, place, ...)
-that thinks it is managing the widget.
-
-=item I<$widget>-E<gt>B<update>
-
-One of two methods which are used to bring the application ``up to date''
-by entering the event loop repeated until all pending events
-(including idle callbacks) have been processed.
-
-The B<update> method is useful in scripts where you are performing a
-long-running computation but you still want the application to respond
-to events such as user interactions; if you occasionally call
-B<update> then user input will be processed during the next call to
-B<update>.
-
-=item I<$widget>-E<gt>B<useinputmethods>( ?I<boolean>? )
-
-Sets and queries the state of whether Tk should use XIM (X Input
-Methods) for filtering events. The resulting state is returned.
-XIM is used in some locales (ie: Japanese, Korean), to handle
-special input devices. This feature is only significant on X.
-If XIM support is not available, this will always return 0.
-If the boolean argument is omitted, the current state is
-returned. This is turned on by default for the main display.
-
-=item I<$widget>-E<gt>B<viewable>
-
-Returns 1 if I<$widget> and all of its ancestors up through the
-nearest toplevel window are mapped. Returns 0 if any of these
-windows are not mapped.
-
-=item I<$widget>-E<gt>B<visual>
-
-Returns one of the following strings to indicate the visual
-class for I<$widget>: B<directcolor>, B<grayscale>,
-B<pseudocolor>, B<staticcolor>, B<staticgray>, or
-B<truecolor>.
-
-=item I<$widget>-E<gt>B<visualid>
-
-Returns the X identifier for the visual for $widget.
-
-=item I<$widget>-E<gt>B<visualsavailable>(?B<includeids>?)
-
-Returns a list whose elements describe the visuals available for
-I<$widget>'s screen.
-Each element consists of a visual class followed by an integer depth.
-The class has the same form as returned by I<$widget>-E<gt>B<visual>.
-The depth gives the number of bits per pixel in the visual.
-In addition, if the B<includeids> argument is provided, then the
-depth is followed by the X identifier for the visual.
-
-=item I<$widget>-E<gt>B<vrootheight>
-
-Returns the height of the virtual root window associated with I<$widget>
-if there is one; otherwise returns the height of I<$widget>'s screen.
-
-=item I<$widget>-E<gt>B<vrootwidth>
-
-Returns the width of the virtual root window associated with I<$widget>
-if there is one; otherwise returns the width of I<$widget>'s screen.
-
-=item I<$widget>-E<gt>B<vrootx>
-
-Returns the x-offset of the virtual root window associated with I<$widget>,
-relative to the root window of its screen.
-This is normally either zero or negative.
-Returns 0 if there is no virtual root window for I<$widget>.
-
-=item I<$widget>-E<gt>B<vrooty>
-
-Returns the y-offset of the virtual root window associated with I<$widget>,
-relative to the root window of its screen.
-This is normally either zero or negative.
-Returns 0 if there is no virtual root window for I<$widget>.
-
-=item I<$widget->>B<waitVariable>(\$I<name>)
-
-=item I<$widget->>B<waitVisibility>
-
-=item I<$widget->>B<waitWindow>
-
-The B<tk wait> methods wait for one of several things to happen,
-then it returns without taking any other actions.
-The return value is always an empty string.
-B<waitVariable> expects a reference to a perl
-variable and the command waits for that variable to be modified.
-This form is typically used to wait for a user to finish interacting
-with a dialog which sets the variable as part (possibly final)
-part of the interaction.
-B<waitVisibility> waits for a change in I<$widget>'s
-visibility state (as indicated by the arrival of a VisibilityNotify
-event). This form is typically used to wait for a newly-created
-window to appear on the screen before taking some action.
-B<waitWindow> waits for I<$widget> to be destroyed.
-This form is typically used to wait for a user to finish interacting
-with a dialog box before using the result of that interaction.
-Note that creating and destroying the window each time a dialog is required
-makes code modular but imposes overhead which can be avoided by B<withdrawing>
-the window instead and using B<waitVisibility>.
-
-While the B<tk wait> methods are waiting they processes events in
-the normal fashion, so the application will continue to respond
-to user interactions.
-If an event handler invokes B<tkwait> again, the nested call
-to B<tkwait> must complete before the outer call can complete.
-
-=item I<$widget>-E<gt>B<Walk>(I<proc>?, I<arg, ...>?)
-
-Traverse a widget hierarchy starting at I<$widget> while executing the
-subroutine I<proc> to every visited widget. The arguments I<arg, ...>
-are supplied to the subroutine.
-
-=item I<$widget>-E<gt>B<Widget>(I<pathname>)
-
-Returns the widget reference for the given Tk path name, or C<undef>
-if the path name does not match a Tk widget. This is the inverse of
-the L</PathName> method. (This is an import from the C interface.)
-
-=item I<$widget>-E<gt>B<width>
-
-Returns a decimal string giving I<$widget>'s width in pixels.
-When a window is first created its width will be 1 pixel; the
-width will eventually be changed by a geometry manager to fulfill
-the window's needs.
-If you need the true width immediately after creating a widget,
-invoke B<update> to force the geometry manager to arrange it,
-or use I<$widget>-E<gt>B<reqwidth> to get the window's requested width
-instead of its actual width.
-
-=item I<$widget>-E<gt>B<windowingsystem>
-
-Returns the current Tk windowing system, one of B<x11> (X11-based),
-B<win32> (MS Windows), B<classic> (Mac OS Classic), or B<aqua> (Mac OS X Aqua).
-
-=item I<$widget>-E<gt>B<x>
-
-Returns a decimal string giving the x-coordinate, in I<$widget>'s
-parent, of the upper-left corner of I<$widget>'s border (or I<$widget>
-if it has no border).
-
-=item I<$widget>-E<gt>B<y>
-
-Returns a decimal string giving the y-coordinate, in I<$widget>'s
-parent, of the
-upper-left corner of I<$widget>'s border (or I<$widget> if it
-has no border).
-
-=back
-
-=head1 CAVEATS
-
-The above documentaion on generic methods is incomplete.
-
-=head1 KEYWORDS
-
-atom, children, class, geometry, height, identifier, information, interpreters,
-mapped, parent, path name, screen, virtual root, width, window
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/WidgetDemo.pod b/Master/tlpkg/tlperl/lib/Tk/WidgetDemo.pod
deleted file mode 100644
index edc00001a23..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/WidgetDemo.pod
+++ /dev/null
@@ -1,59 +0,0 @@
-
-=head1 NAME
-
-Tk::WidgetDemo - create a standard widget demonstration window.
-
-=for pm demos/demos/widget_lib/WidgetDemo.pm
-
-=for category Implementation
-
-=head1 SYNOPSIS
-
- use WidgetDemo;
- my $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'Learn how to write a widget demonstration!',
- -title => 'WidgetDemo Demonstration',
- -iconname => 'WidgetDemo',
- -geometry_manager => 'grid',
- -font => $FONT,
- );
-
-=head1 DESCRIPTION
-
-This constructor builds a standard widget demonstration window, composed of
-three frames. The top frame contains descriptive demonstration text. The
-bottom frame contains the "Dismiss" and "See Code" buttons. The middle frame
-is demonstration container, which came be managed by either the pack or grid
-geometry manager.
-
-The -text attribute is supplied to a Label widget, which is left-adjusted
-with -wraplength set to 4 inches. If you require different specifications
-then pass an array to -text; the first element is the text string and
-the remaining array elements are standard Label widget attributes - WidgetDemo
-will rearrange things as required..
-
- -text => ['Hello World!', qw/-wraplength 6i/],
-
-=head1 AUTHOR
-
-Steve Lidie <Stephen.O.Lidie@Lehigh.EDU>
-
-=head1 HISTORY
-
-lusol@Lehigh.EDU, LUCC, 97/02/11
-lusol@Lehigh.EDU, LUCC, 97/06/07
-Stephen.O.Lidie@Lehigh.EDU, LUCC, 97/06/07
- . Add Delegates() call that obviates the need for Top(). Many thanks to
- Achim Bohnet for this patch.
- . Fix -title so that it works.
-
-=head1 COPYRIGHT
-
-Copyright (C) 1997 - 1998 Stephen O. Lidie. All rights reserved.
-
-This program is free software; you can redistribute it and/or modify it under
-the same terms as Perl itself.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Wm.pm b/Master/tlpkg/tlperl/lib/Tk/Wm.pm
deleted file mode 100644
index 113bf951a15..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Wm.pm
+++ /dev/null
@@ -1,174 +0,0 @@
-# Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-package Tk::Wm;
-use AutoLoader;
-
-require Tk::Widget;
-*AUTOLOAD = \&Tk::Widget::AUTOLOAD;
-
-use strict qw(vars);
-
-# There are issues with this stuff now we have Tix's wm release/capture
-# as toplevel-ness is now dynamic.
-
-
-use vars qw($VERSION);
-$VERSION = '4.015'; # was: sprintf '4.%03d', q$Revision: #14 $ =~ /\D(\d+)\s*$/;
-
-use Tk::Submethods;
-
-*{Tk::Wm::wmGrid} = sub { shift->wm("grid", @_) };
-*{Tk::Wm::wmTracing} = sub { shift->wm("tracing", @_) };
-
-Direct Tk::Submethods ('wm' => [qw(aspect attributes client colormapwindows command
- deiconify focusmodel frame geometry group
- iconbitmap iconify iconimage iconmask iconname iconphoto
- iconwindow maxsize minsize overrideredirect positionfrom
- protocol resizable sizefrom stackorder state title transient
- withdraw wrapper)]);
-
-sub SetBindtags
-{
- my ($obj) = @_;
- $obj->bindtags([ref($obj),$obj,'all']);
-}
-
-sub Populate
-{
- my ($cw,$args) = @_;
- $cw->ConfigSpecs('-overanchor' => ['PASSIVE',undef,undef,undef],
- '-popanchor' => ['PASSIVE',undef,undef,undef],
- '-popover' => ['PASSIVE',undef,undef,undef]
- );
-}
-
-sub MoveResizeWindow
-{
- my ($w,$x,$y,$width,$height) = @_;
- $w->withdraw;
- $w->geometry($width.'x'.$height);
- $w->MoveToplevelWindow($x,$y);
- $w->deiconify;
-}
-
-sub WmDeleteWindow
-{
- my ($w) = @_;
- my $cb = $w->protocol('WM_DELETE_WINDOW');
- if (defined $cb)
- {
- $cb->Call;
- }
- else
- {
- $w->destroy;
- }
-}
-
-
-1;
-
-__END__
-
-
-sub Post
-{
- my ($w,$X,$Y) = @_;
- $X = int($X);
- $Y = int($Y);
- $w->positionfrom('user');
- $w->geometry("+$X+$Y");
- # $w->MoveToplevelWindow($X,$Y);
- $w->deiconify;
- $w->raise;
-}
-
-sub AnchorAdjust
-{
- my ($anchor,$X,$Y,$w,$h) = @_;
- $anchor = 'c' unless (defined $anchor);
- $Y += ($anchor =~ /s/) ? $h : ($anchor =~ /n/) ? 0 : $h/2;
- $X += ($anchor =~ /e/) ? $w : ($anchor =~ /w/) ? 0 : $w/2;
- return ($X,$Y);
-}
-
-sub Popup
-{
- my $w = shift;
- $w->configure(@_) if @_;
- $w->idletasks;
- my ($mw,$mh) = ($w->reqwidth,$w->reqheight);
- my ($rx,$ry,$rw,$rh) = (0,0,0,0);
- my $base = $w->cget('-popover');
- my $outside = 0;
- if (defined $base)
- {
- if ($base eq 'cursor')
- {
- ($rx,$ry) = $w->pointerxy;
- }
- else
- {
- $rx = $base->rootx;
- $ry = $base->rooty;
- $rw = $base->Width;
- $rh = $base->Height;
- }
- }
- else
- {
- my $sc = ($w->parent) ? $w->parent->toplevel : $w;
- $rx = -$sc->vrootx;
- $ry = -$sc->vrooty;
- $rw = $w->screenwidth;
- $rh = $w->screenheight;
- }
- my ($X,$Y) = AnchorAdjust($w->cget('-overanchor'),$rx,$ry,$rw,$rh);
- ($X,$Y) = AnchorAdjust($w->cget('-popanchor'),$X,$Y,-$mw,-$mh);
- # adjust to not cross screen borders
- if ($X < 0) { $X = 0 }
- if ($Y < 0) { $Y = 0 }
- if ($mw > $w->screenwidth) { $X = 0 }
- if ($mh > $w->screenheight) { $Y = 0 }
- $w->Post($X,$Y);
- $w->waitVisibility;
-}
-
-sub FullScreen
-{
- my $w = shift;
- my $over = (@_) ? shift : 0;
- my $width = $w->screenwidth;
- my $height = $w->screenheight;
- $w->GeometryRequest($width,$height);
- $w->overrideredirect($over & 1);
- $w->Post(0,0);
- $w->update;
- if ($over & 2)
- {
- my $x = $w->rootx;
- my $y = $w->rooty;
- $width -= 2*$x;
- $height -= $x + $y;
- $w->GeometryRequest($width,$height);
- $w->update;
- }
-}
-
-sub iconposition
-{
- my $w = shift;
- if (@_ == 1)
- {
- return $w->wm('iconposition',$1,$2) if $_[0] =~ /^(\d+),(\d+)$/;
- if ($_[0] =~ /^([+-])(\d+)([+-])(\d+)$/)
- {
- my $x = ($1 eq '-') ? $w->screenwidth-$2 : $2;
- my $y = ($3 eq '-') ? $w->screenheight-$4 : $4;
- return $w->wm('iconposition',$x,$y);
- }
- }
- $w->wm('iconposition',@_);
-}
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Wm.pod b/Master/tlpkg/tlperl/lib/Tk/Wm.pod
deleted file mode 100644
index 0cbb7f1b695..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Wm.pod
+++ /dev/null
@@ -1,669 +0,0 @@
-# Copyright (c) 1991-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Wm - Communicate with window manager
-
-=for category Tk Geometry Management
-
-=head1 SYNOPSIS
-
-S< >I<$toplevel>-E<gt>I<method>(?I<args>?)
-
-=head1 DESCRIPTION
-
-The B<wm> methods are used to interact with window managers in
-order to control such things as the title for a window, its geometry,
-or the increments in terms of which it may be resized.
-The B<wm> methods can take any of a number of different forms, depending on
-the particular I<method> argument.
-All of the forms expect I<$toplevel>, which must be a
-top-level window object.
-
-The legal forms for the B<wm> methods are:
-
-=over 4
-
-=item I<$toplevel>-E<gt>B<aspect>(?I<minNumer minDenom maxNumer maxDenom>?)
-
-If I<minNumer>, I<minDenom>, I<maxNumer>, and I<maxDenom>
-are all specified, then they will be passed to the window manager
-and the window manager should use them to enforce a range of
-acceptable aspect ratios for I<$toplevel>. The aspect ratio of
-I<$toplevel> (width/length) will be constrained to lie
-between I<minNumer>/I<minDenom> and I<maxNumer>/I<maxDenom>.
-If I<minNumer> etc. are all specified as empty strings, then
-any existing aspect ratio restrictions are removed.
-If I<minNumer> etc. are specified, then the method returns an
-empty string. Otherwise, it returns
-a array containing four elements, which are the current values
-of I<minNumer>, I<minDenom>, I<maxNumer>, and I<maxDenom>
-(if no aspect restrictions are in effect, then an empty string is
-returned).
-
-=item I<$widget>-E<gt>B<attributes>( I<?args?> );
-
-This subcommand returns or sets platform specific attributes
-associated with a window.
-
-=over 4
-
-=item I<$widget>-E<gt>B<attributes>;
-
-Returns a list of the platform specific flags and their values.
-
-=item I<$widget>-E<gt>B<attributes>( I<?option?> );
-
-Returns the value for the specific option.
-
-=item I<$widget>-E<gt>B<attributes>( I<?option value option value...?> );
-
-Sets one or more of the values. The values are as follows:
-
-On Windows, B<-disabled> gets or sets whether the window is in a
-disabled state. B<-toolwindow> gets or sets the style of the window
-to toolwindow (as defined in the MSDN). B<-topmost> gets or sets
-whether this is a topmost window (displays above all other windows).
-
-On Macintosh, there are currently no special attribute values.
-
-On Unix, there are currently no special attribute values.
-
-=back
-
-=item I<$toplevel>-E<gt>B<client>(?I<name>?)
-
-If I<name> is specified, this method stores I<name> (which
-should be the name of
-the host on which the application is executing) in I<$toplevel>'s
-B<WM_CLIENT_MACHINE> property for use by the window manager or
-session manager.
-The method returns an empty string in this case.
-If I<name> isn't specified, the method returns the last name
-set in a B<client> method for I<$toplevel>.
-If I<name> is specified as an empty string, the method deletes the
-B<WM_CLIENT_MACHINE> property from I<$toplevel>.
-
-=item I<$toplevel>-E<gt>B<colormapwindows>(?I<windowList>?)
-
-This method is used to manipulate the B<WM_COLORMAP_WINDOWS>
-property, which provides information to the window managers about
-windows that have private colormaps.
-If I<windowList> isn't specified, the method returns a list
-whose elements are the names of the windows in the B<WM_COLORMAP_WINDOWS>
-property.
-If I<windowList> is specified, it consists of a list of widgets;
-the method overwrites the B<WM_COLORMAP_WINDOWS>
-property with the given windows and returns an empty string.
-The B<WM_COLORMAP_WINDOWS> property should normally contain a
-list of the internal windows within I<$toplevel> whose colormaps differ
-from their parents.
-The order of the windows in the property indicates a priority order:
-the window manager will attempt to install as many colormaps as possible
-from the head of this list when I<$widget> gets the colormap focus.
-If I<$widget> is not included among the windows in I<windowList>,
-Tk implicitly adds it at the end of the B<WM_COLORMAP_WINDOWS>
-property, so that its colormap is lowest in priority.
-If I<$widget>-E<gt>colormapwindows is not invoked, Tk will automatically set
-the property for each top-level window to all the internal windows
-whose colormaps differ from their parents, followed by the top-level
-itself; the order of the internal windows is undefined.
-See the ICCCM documentation for more information on the
-B<WM_COLORMAP_WINDOWS> property.
-
-=item I<$toplevel>-E<gt>B<command>(?I<value>?)
-
-If I<value> is specified, this method stores I<value> in I<$toplevel>'s
-B<WM_COMMAND> property for use by the window manager or
-session manager and returns an empty string.
-I<Value> must have proper list structure; the elements should
-contain the words of the command used to invoke the application.
-If I<value> isn't specified then the method returns the last value
-set in a B<command> method for I<$toplevel>.
-If I<value> is specified as an empty string, the method
-deletes the B<WM_COMMAND> property from I<$toplevel>.
-
-=item I<$toplevel>-E<gt>B<deiconify>
-
-Arrange for I<$toplevel> to be displayed in normal (non-iconified) form.
-This is done by mapping the window. If the window has never been
-mapped then this method will not map the window, but it will ensure
-that when the window is first mapped it will be displayed
-in de-iconified form. Returns an empty string.
-
-=item I<$toplevel>-E<gt>B<focusmodel>(?B<active>|B<passive>?)
-
-If B<active> or B<passive> is supplied as an optional argument
-to the method, then it specifies the focus model for I<$toplevel>.
-In this case the method returns an empty string. If no additional
-argument is supplied, then the method returns the current focus
-model for I<$toplevel>.
-An B<active> focus model means that I<$toplevel> will claim the
-input focus for itself or its descendants, even at times when
-the focus is currently in some other application. B<Passive> means that
-I<$toplevel> will never claim the focus for itself: the window manager
-should give the focus to I<$toplevel> at appropriate times. However,
-once the focus has been given to I<$toplevel> or one of its descendants,
-the application may re-assign the focus among I<$toplevel>'s descendants.
-The focus model defaults to B<passive>, and Tk's B<focus> method
-assumes a passive model of focusing.
-
-=item I<$toplevel>-E<gt>B<frame>
-
-If I<$widget> has been reparented by the window manager into a
-decorative frame, the method returns the platform specific window
-identifier for the outermost frame that contains I<$toplevel> (the
-window whose parent is the root or virtual root). If I<$toplevel>
-hasn't been reparented by the window manager then the method returns
-the platform specific window identifier for I<$toplevel>.
-
-=item I<$toplevel>-E<gt>B<geometry>(?I<newGeometry>?)
-
-If I<newGeometry> is specified, then the geometry of I<$toplevel>
-is changed and an empty string is returned. Otherwise the current
-geometry for I<$toplevel> is returned (this is the most recent
-geometry specified either by manual resizing or
-in a B<geometry> method). I<NewGeometry> has
-the form B<=>I<width>B<x>I<height>B<+->I<x>B<+->I<y>, where
-any of B<=>, I<width>B<x>I<height>, or B<+->I<x>B<+->I<y>
-may be omitted. I<Width> and I<height> are positive integers
-specifying the desired dimensions of I<$toplevel>. If I<$toplevel>
-is gridded (see L<"GRIDDED GEOMETRY MANAGEMENT"> below) then the dimensions
-are specified in grid units; otherwise they are specified in pixel
-units. I<X> and I<y> specify the desired location of
-I<$toplevel> on the screen, in pixels.
-If I<x> is preceded by B<+>, it specifies
-the number of pixels between the left edge of the screen and the left
-edge of I<$toplevel>'s border; if preceded by B<-> then
-I<x> specifies the number of pixels
-between the right edge of the screen and the right edge of I<$toplevel>'s
-border. If I<y> is preceded by B<+> then it specifies the
-number of pixels between the top of the screen and the top
-of I<$toplevel>'s border; if I<y> is preceded by B<-> then
-it specifies the number of pixels between the bottom of I<$toplevel>'s
-border and the bottom of the screen.
-If I<newGeometry> is specified as an empty string then any
-existing user-specified geometry for I<$toplevel> is cancelled, and
-the window will revert to the size requested internally by its
-widgets.
-
-=item I<$toplevel>-E<gt>B<wmGrid>(?I<baseWidth,baseHeight,widthInc,heightInc>?)
-
-This method indicates that I<$toplevel> is to be managed as a
-gridded window.
-It also specifies the relationship between grid units and pixel units.
-I<BaseWidth> and I<baseHeight> specify the number of grid
-units corresponding to the pixel dimensions requested internally
-by I<$toplevel> using B<Tk_GeometryRequest>. I<WidthInc>
-and I<heightInc> specify the number of pixels in each horizontal
-and vertical grid unit.
-These four values determine a range of acceptable sizes for
-I<$toplevel>, corresponding to grid-based widths and heights
-that are non-negative integers.
-Tk will pass this information to the window manager; during
-manual resizing, the window manager will restrict the window's size
-to one of these acceptable sizes.
-Furthermore, during manual resizing the window manager will display
-the window's current size in terms of grid units rather than pixels.
-If I<baseWidth> etc. are all specified as empty strings, then
-I<$toplevel> will no longer be managed as a gridded window. If
-I<baseWidth> etc. are specified then the return value is an
-empty string.
-Otherwise the return value is a array containing
-four elements corresponding to the current I<baseWidth>,
-I<baseHeight>, I<widthInc>, and I<heightInc>; if
-I<$toplevel> is not currently gridded, then an empty string
-is returned.
-Note: this command should not be needed very often, since the
-B<Tk_SetGrid> library procedure and the B<-setgrid> option
-provide easier access to the same functionality.
-
-=item I<$toplevel>-E<gt>B<group>(?I<$widget>?)
-
-If I<$widget> is specified, it is the the leader of
-a group of related windows. The window manager may use this information,
-for example, to unmap all of the windows in a group when the group's
-leader is iconified. I<$widget> may be specified as an empty string to
-remove I<$toplevel> from any group association. If I<$widget> is
-specified then the method returns an empty string; otherwise it
-returns the I<$toplevel>'s current group leader, or an empty
-string if I<$toplevel> isn't part of any group.
-
-=item I<$toplevel>-E<gt>B<iconbitmap>(?I<bitmap>?)
-
-If I<bitmap> is specified, then it names a bitmap in the standard
-forms accepted by Tk (see the B<Tk_GetBitmap> documentation for details).
-This I<black and white> bitmap is passed to the window manager to be displayed
-in I<$toplevel>'s icon, and the method returns an empty string. If
-an empty string is specified for I<bitmap>, then any current icon
-bitmap or image is cancelled for I<$toplevel>.
-If I<bitmap> is specified then the method returns an empty string.
-Otherwise it returns the name of
-the current icon bitmap associated with I<$toplevel>, or an empty
-string if I<$toplevel> has no icon bitmap.
-
-=item I<$toplevel>-E<gt>B<iconify>
-
-Arrange for I<$toplevel> to be iconified. It I<$toplevel> hasn't
-yet been mapped for the first time, this method will arrange for
-it to appear in the iconified state when it is eventually mapped.
-
-=item I<$toplevel>-E<gt>B<iconimage>(?I<image>?)
-
-If I<image> is specified, then it names a normal Tk image.
-This image is rendered into a private I<coloured> bitmap which is passed to
-the window manager to be displayed in I<$toplevel>'s icon, and the method returns
-an empty string. If an empty string is specified for I<image>, then any current
-icon bitmap or image is cancelled for I<$toplevel>.
-If I<image> is specified then the method returns an empty string.
-Otherwise it returns the name of
-the current icon image associated with I<$toplevel>, or an empty
-string if I<$toplevel> has no icon image.
-The private pixmap is not pre-cleared so images which are partly "transparent"
-display rubbish in their transparent parts.
-
-The sizes of images that can be used as icons in this manner are platform
-dependant. On Win32 this sets the "large" icon, which should be 32x32, it
-will automatically be scaled down to 16x16 for use as a small icon.
-
-=item I<$toplevel>-E<gt>B<iconmask>(?I<bitmap>?)
-
-If I<bitmap> is specified, then it names a bitmap in the standard
-forms accepted by Tk (see the B<Tk_GetBitmap> documentation for details).
-This bitmap is passed to the window manager to be used as a mask
-in conjunction with the B<iconbitmap> option: where the mask
-has zeroes no icon will be displayed; where it has ones, the bits
-from the icon bitmap will be displayed. If
-an empty string is specified for I<bitmap> then any current icon
-mask is cancelled for I<$toplevel> (this is equivalent to specifying
-a bitmap of all ones). If I<bitmap> is specified
-then the method returns an empty string. Otherwise it
-returns the name of the current icon mask associated with
-I<$toplevel>, or an empty string if no mask is in effect.
-
-=item I<$toplevel>-E<gt>B<iconname>(?I<newName>?)
-
-If I<newName> is specified, then it is passed to the window
-manager; the window manager should display I<newName> inside
-the icon associated with I<$toplevel>. In this case an empty
-string is returned as result. If I<newName> isn't specified
-then the method returns the current icon name for I<$toplevel>,
-or an empty string if no icon name has been specified (in this
-case the window manager will normally display the window's title,
-as specified with the B<title> method).
-
-=item I<$toplevel>-E<gt>B<iconphoto>(?-default? I<image1> ?I<image2>
-...?)
-
-Sets the titlebar icon for window based on the named photo
-images. If -default is specified, this is applied to all future
-created toplevels as well. The data in the images is taken as a
-snapshot at the time of invocation. If the images are later
-changed, this is not reflected to the titlebar icons. Multiple
-images are accepted to allow different images sizes (eg, 16x16
-and 32x32) to be provided. The window manager may scale pro-
-vided icons to an appropriate size.
-
-On Windows, the images are packed into a Windows icon structure.
-This will override an ico specified to wm iconbitmap, and vice
-versa. [NOTE: This is not implemented yet!]
-
-On X, the images are arranged into the _NET_WM_ICON X property,
-which most modern window managers support. A wm iconbitmap may
-exist simultaneously. It is recommended to use not more than 2
-icons, placing the larger icon first.
-
-On Macintosh, this is currently does nothing.
-
-=item I<$toplevel>-E<gt>B<iconposition>(?I<x y>?)
-
-If I<x> and I<y> are specified, they are passed to the window
-manager as a hint about where to position the icon for I<$toplevel>.
-In this case an empty string is returned. If I<x> and I<y> are
-specified as empty strings then any existing icon position hint is cancelled.
-If neither I<x> nor I<y> is specified, then the method returns
-a array containing two values, which are the current icon position
-hints (if no hints are in effect then an empty string is returned).
-
-=item I<$toplevel>-E<gt>B<iconwindow>(?I<$widget>?)
-
-If I<$widget> is specified, it is a window to
-use as icon for I<$toplevel>: when I<$toplevel> is iconified then
-I<$widget> will be mapped to serve as icon, and when I<$toplevel>
-is de-iconified then I<$widget> will be unmapped again. If
-I<$widget> is specified as an empty string then any existing
-icon window association for I<$toplevel> will be cancelled. If
-the I<$widget> argument is specified then an empty string is
-returned. Otherwise the method returns the
-current icon window for I<$toplevel>, or an empty string if there
-is no icon window currently specified for I<$toplevel>.
-Button press events are disabled for I<$toplevel> as long as it is
-an icon window; this is needed in order to allow window managers
-to ``own'' those events.
-Note: not all window managers support the notion of an icon window.
-
-=item I<$toplevel>-E<gt>B<maxsize>(?I<width,height>?)
-
-If I<width> and I<height> are specified, they give
-the maximum permissible dimensions for I<$toplevel>.
-For gridded windows the dimensions are specified in
-grid units; otherwise they are specified in pixel units.
-The window manager will restrict the window's dimensions to be
-less than or equal to I<width> and I<height>.
-If I<width> and I<height> are
-specified, then the method returns an empty string. Otherwise
-it returns a array with two elements, which are the
-maximum width and height currently in effect.
-The maximum size defaults to the size of the screen.
-If resizing has been disabled with the B<resizable> method,
-then this method has no effect.
-See the sections on geometry management below for more information.
-
-=item I<$toplevel>-E<gt>B<minsize>(?I<width,height>?)
-
-If I<width> and I<height> are specified, they give the
-minimum permissible dimensions for I<$toplevel>.
-For gridded windows the dimensions are specified in
-grid units; otherwise they are specified in pixel units.
-The window manager will restrict the window's dimensions to be
-greater than or equal to I<width> and I<height>.
-If I<width> and I<height> are
-specified, then the method returns an empty string. Otherwise
-it returns a array with two elements, which are the
-minimum width and height currently in effect.
-The minimum size defaults to one pixel in each dimension.
-If resizing has been disabled with the B<resizable> method,
-then this method has no effect.
-See the sections on geometry management below for more information.
-
-=item I<$toplevel>-E<gt>B<overrideredirect(?>I<boolean>?)
-
-If I<boolean> is specified, it must have a proper boolean form and
-the override-redirect flag for I<$toplevel> is set to that value.
-If I<boolean> is not specified then B<1> or B<0> is
-returned to indicate whether or not the override-redirect flag
-is currently set for I<$toplevel>.
-Setting the override-redirect flag for a window causes
-it to be ignored by the window manager; among other things, this means
-that the window will not be reparented from the root window into a
-decorative frame and the user will not be able to manipulate the
-window using the normal window manager mechanisms.
-
-=item I<$toplevel>-E<gt>B<positionfrom>(?I<who>?)
-
-If I<who> is specified, it must be either B<program> or
-B<user>, or an abbreviation of one of these two. It indicates
-whether I<$toplevel>'s current position was requested by the
-program or by the user. Many window managers ignore program-requested
-initial positions and ask the user to manually position the window; if
-B<user> is specified then the window manager should position the
-window at the given place without asking the user for assistance.
-If I<who> is specified as an empty string, then the current position
-source is cancelled.
-If I<who> is specified, then the method returns an empty string.
-Otherwise it returns B<user> or $widget to indicate the
-source of the window's current position, or an empty string if
-no source has been specified yet. Most window managers interpret
-``no source'' as equivalent to B<program>.
-Tk will automatically set the position source to B<user>
-when a B<geometry> method is invoked, unless the source has
-been set explicitly to B<program>.
-
-=item I<$toplevel>-E<gt>B<protocol>(?I<name>?,?I<callback>?)
-
-This method is used to manage window manager protocols such as
-B<WM_DELETE_WINDOW>.
-I<Name> is the name of an atom corresponding to a window manager
-protocol, such as B<WM_DELETE_WINDOW> or B<WM_SAVE_YOURSELF>
-or B<WM_TAKE_FOCUS>.
-If both I<name> and I<callback> are specified, then I<callback>
-is associated with the protocol specified by I<name>.
-I<Name> will be added to I<$toplevel>'s B<WM_PROTOCOLS>
-property to tell the window manager that the application has a
-protocol handler for I<name>, and I<callback> will
-be invoked in the future whenever the window manager sends a
-message to the client for that protocol.
-In this case the method returns an empty string.
-If I<name> is specified but I<callback> isn't, then the current
-callback for I<name> is returned, or an empty string if there
-is no handler defined for I<name>.
-If I<callback> is specified as an empty string then the current
-handler for I<name> is deleted and it is removed from the
-B<WM_PROTOCOLS> property on I<$toplevel>; an empty string is
-returned.
-Lastly, if neither I<name> nor I<callback> is specified, the
-method returns a list of all the protocols for which handlers
-are currently defined for I<$toplevel>.
-
-=over 8
-
-Tk always defines a protocol handler for B<WM_DELETE_WINDOW>, even if
-you haven't asked for one with B<protocol>.
-If a B<WM_DELETE_WINDOW> message arrives when you haven't defined
-a handler, then Tk handles the message by destroying the window for
-which it was received.
-
-=back
-
-=item I<$toplevel>-E<gt>B<resizable>(?I<width,height>?)
-
-This method controls whether or not the user may interactively
-resize a top-level window. If I<width> and I<height> are
-specified, they are boolean values that determine whether the
-width and height of I<$toplevel> may be modified by the user.
-In this case the method returns an empty string.
-If I<width> and I<height> are omitted then the method
-returns a list with two 0/1 elements that indicate whether the
-width and height of I<$toplevel> are currently resizable.
-By default, windows are resizable in both dimensions.
-If resizing is disabled, then the window's size will be the size
-from the most recent interactive resize or B<geometry>
-method. If there has been no such operation then
-the window's natural size will be used.
-
-=item I<$toplevel>-E<gt>B<sizefrom>(?I<who>?)
-
-If I<who> is specified, it must be either B<program> or
-B<user>, or an abbreviation of one of these two. It indicates
-whether I<$toplevel>'s current size was requested by the
-program or by the user. Some window managers ignore program-requested
-sizes and ask the user to manually size the window; if
-B<user> is specified then the window manager should give the
-window its specified size without asking the user for assistance.
-If I<who> is specified as an empty string, then the current size
-source is cancelled.
-If I<who> is specified, then the method returns an empty string.
-Otherwise it returns B<user> or $widget to indicate the
-source of the window's current size, or an empty string if
-no source has been specified yet. Most window managers interpret
-``no source'' as equivalent to B<program>.
-
-=item I<$toplevel>-E<gt>B<stackorder>( I<?isabove|isbelow $toplevel?> );
-
-The stackorder command returns a list of toplevel windows in
-stacking order, from lowest to highest. When a single toplevel
-window is passed, the returned list recursively includes all of
-the window's children that are toplevels. Only those toplevels
-that are currently mapped to the screen are returned. The
-stackorder command can also be used to determine if one toplevel
-is positioned above or below a second toplevel. When two window
-arguments separated by either isabove or isbelow are passed, a
-boolean result indicates whether or not the first window is
-currently above or below the second window in the stacking order.
-
-
-=item I<$toplevel>-E<gt>B<state>(?I<newstate>?)
-
-If I<newstate> is specified, the window will be set to
-the new state, otherwise it returns the current state of
-I<$toplevel>: either B<normal>, B<iconic>, B<withdrawn>, B<icon>, or
-(Windows only) B<zoomed>. The
-difference between B<iconic> and B<icon> is that B<iconic> refers to a
-window that has been iconified (e.g., with the B<iconify> method)
-while B<icon> refers to a window whose only purpose is to serve as the
-icon for some other window (via the B<iconwindow> method). The
-B<icon> state cannot be set.
-
-
-=item I<$toplevel>-E<gt>B<title>(?I<string>?)
-
-If I<string> is specified, then it will be passed to the window
-manager for use as the title for I<$toplevel> (the window manager
-should display this string in I<$toplevel>'s title bar). In this
-case the method returns an empty string. If I<string> isn't
-specified then the method returns the current title for the
-I<$toplevel>. The title for a window defaults to its name.
-
-=item I<$toplevel>-E<gt>B<transient>(?I<master>?)
-
-If I<master> is specified, then the window manager is informed
-that I<$toplevel> is a transient window (e.g. pull-down menu) working
-on behalf of I<master> (where I<master> is
-a top-level window). Some window managers will use
-this information to manage I<$toplevel> specially. If I<master>
-is specified as an empty string then I<$toplevel> is marked as not
-being a transient window any more. If I<master> is specified,
-then the method returns an empty string. Otherwise the method
-returns the path name of I<$toplevel>'s current master, or an
-empty string if I<$toplevel> isn't currently a transient window.
-
-=item I<$toplevel>-E<gt>B<withdraw>
-
-Arranges for I<$toplevel> to be withdrawn from the screen. This
-causes the window to be unmapped and forgotten about by the window
-manager. If the window
-has never been mapped, then this method
-causes the window to be mapped in the withdrawn state. Not all
-window managers appear to know how to handle windows that are
-mapped in the withdrawn state.
-Note: it sometimes seems to be necessary to withdraw a
-window and then re-map it (e.g. with B<deiconify>) to get some
-window managers to pay attention to changes in window attributes
-such as group.
-
-=item I<$toplevel>-E<gt>B<wrapper>
-
-Returns a list of two elements: the window id of the wrapper window in
-which Tk has placed I<$toplevel>, and the height of the menu bar. The
-id is the one by which window manager will know I<$toplevel>, and so
-is appropriate place to add X properties. The menu height is only
-returned on X. On Windows, this value is always zero.
-
-=back
-
-=head1 ICON SIZES
-
-The sizes of bitmaps/images that can be used as icons in this manner are platform
-and window manager dependant. Unix window managers are typically more tolerant
-than Win32. It is possible that coloured C<iconimage> icons may cause problems
-on some X window managers.
-
-=over 4
-
-=item * Win32
-
-C<iconimage> and C<iconbitmap> set the "large" icon, which should be
-32x32, it will automatically be scaled down to 16x16 for use as a small icon.
-Win32 ignores C<iconwin> requests.
-
-=item * KDE's "kwm"
-
-Accepts coloured C<iconimage> and black and white C<iconbitmap> but
-will scale either to a small (14x14?) icon. Kwm ignores C<iconwin>.
-
-=item * Sun's "olwm" or "olvwm"
-
-Honours C<iconwin> which will override C<iconimage> or C<iconbitmap>.
-Coloured images work.
-
-=item * Sun's CDE window manager
-
-Coloured images work. ...
-
-=back
-
-=head1 GEOMETRY MANAGEMENT
-
-By default a top-level window appears on the screen in its
-I<natural size>, which is the one determined internally by its
-widgets and geometry managers.
-If the natural size of a top-level window changes, then the window's size
-changes to match.
-A top-level window can be given a size other than its natural size in two ways.
-First, the user can resize the window manually using the facilities
-of the window manager, such as resize handles.
-Second, the application can request a particular size for a
-top-level window using the B<geometry> method.
-These two cases are handled identically by Tk; in either case,
-the requested size overrides the natural size.
-You can return the window to its natural by invoking B<geometry>
-with an empty I<geometry> string.
-
-Normally a top-level window can have any size from one pixel in each
-dimension up to the size of its screen.
-However, you can use the B<minsize> and B<maxsize> methods
-to limit the range of allowable sizes.
-The range set by B<minsize> and B<maxsize> applies to
-all forms of resizing, including the window's natural size as
-well as manual resizes and the B<geometry> method.
-You can also use the method B<resizable> to completely
-disable interactive resizing in one or both dimensions.
-
-=head1 GRIDDED GEOMETRY MANAGEMENT
-
-Gridded geometry management occurs when one of the widgets of an
-application supports a range of useful sizes.
-This occurs, for example, in a text editor where the scrollbars,
-menus, and other adornments are fixed in size but the edit widget
-can support any number of lines of text or characters per line.
-In this case, it is usually desirable to let the user specify the
-number of lines or characters-per-line, either with the
-B<geometry> method or by interactively resizing the window.
-In the case of text, and in other interesting cases also, only
-discrete sizes of the window make sense, such as integral numbers
-of lines and characters-per-line; arbitrary pixel sizes are not useful.
-
-Gridded geometry management provides support for this kind of
-application.
-Tk (and the window manager) assume that there is a grid of some
-sort within the application and that the application should be
-resized in terms of I<grid units> rather than pixels.
-Gridded geometry management is typically invoked by turning on
-the B<setGrid> option for a widget; it can also be invoked
-with the B<wmGrid> method or by calling B<Tk_SetGrid>.
-In each of these approaches the particular widget (or sometimes
-code in the application as a whole) specifies the relationship between
-integral grid sizes for the window and pixel sizes.
-To return to non-gridded geometry management, invoke
-B<grid> with empty argument strings.
-
-When gridded geometry management is enabled then all the dimensions specified
-in B<minsize>, B<maxsize>, and B<geometry> methods
-are treated as grid units rather than pixel units.
-Interactive resizing is also carried out in even numbers of grid units
-rather than pixels.
-
-=head1 BUGS
-
-Most existing window managers appear to have bugs that affect the
-operation of the B<wm> methods. For example, some changes won't
-take effect if the window is already active: the window will have
-to be withdrawn and de-iconified in order to make the change happen.
-
-=head1 SEE ALSO
-
-L<Tk::Widget|Tk::Widget>
-L<Tk::tixWm|Tk::tixWm>
-L<Tk::Mwm|Tk::Mwm>
-
-=head1 KEYWORDS
-
-aspect ratio, deiconify, focus model, geometry, grid, group, icon, iconify, increments, position, size, title, top-level window, units, window manager
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/X.pm b/Master/tlpkg/tlperl/lib/Tk/X.pm
deleted file mode 100644
index f32ca93d325..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/X.pm
+++ /dev/null
@@ -1,391 +0,0 @@
-package Tk::X;
-
-use strict;
-use Carp;
-use vars qw($VERSION @EXPORT $AUTOLOAD);
-$VERSION = '4.005'; # $Id: //depot/Tkutf8/Xlib/X/X.pm#4 $
-use Tk qw($XS_VERSION);
-
-require Exporter;
-require DynaLoader;
-require AutoLoader;
-
-
-use base qw(Exporter DynaLoader);
-# Items to export into callers namespace by default. Note: do not export
-# names by default without a very good reason. Use EXPORT_OK instead.
-# Do not simply export all your public functions/methods/constants.
-@EXPORT = qw(
- Above
- AllTemporary
- AllocAll
- AllocNone
- AllowExposures
- AlreadyGrabbed
- Always
- AnyButton
- AnyKey
- AnyModifier
- AnyPropertyType
- ArcChord
- ArcPieSlice
- AsyncBoth
- AsyncKeyboard
- AsyncPointer
- AutoRepeatModeDefault
- AutoRepeatModeOff
- AutoRepeatModeOn
- BadAccess
- BadAlloc
- BadAtom
- BadColor
- BadCursor
- BadDrawable
- BadFont
- BadGC
- BadIDChoice
- BadImplementation
- BadLength
- BadMatch
- BadName
- BadPixmap
- BadRequest
- BadValue
- BadWindow
- Below
- BottomIf
- Button1
- Button1Mask
- Button1MotionMask
- Button2
- Button2Mask
- Button2MotionMask
- Button3
- Button3Mask
- Button3MotionMask
- Button4
- Button4Mask
- Button4MotionMask
- Button5
- Button5Mask
- Button5MotionMask
- ButtonMotionMask
- ButtonPress
- ButtonPressMask
- ButtonRelease
- ButtonReleaseMask
- CWBackPixel
- CWBackPixmap
- CWBackingPixel
- CWBackingPlanes
- CWBackingStore
- CWBitGravity
- CWBorderPixel
- CWBorderPixmap
- CWBorderWidth
- CWColormap
- CWCursor
- CWDontPropagate
- CWEventMask
- CWHeight
- CWOverrideRedirect
- CWSaveUnder
- CWSibling
- CWStackMode
- CWWidth
- CWWinGravity
- CWX
- CWY
- CapButt
- CapNotLast
- CapProjecting
- CapRound
- CenterGravity
- CirculateNotify
- CirculateRequest
- ClientMessage
- ClipByChildren
- ColormapChangeMask
- ColormapInstalled
- ColormapNotify
- ColormapUninstalled
- Complex
- ConfigureNotify
- ConfigureRequest
- ControlMapIndex
- ControlMask
- Convex
- CoordModeOrigin
- CoordModePrevious
- CopyFromParent
- CreateNotify
- CurrentTime
- CursorShape
- DefaultBlanking
- DefaultExposures
- DestroyAll
- DestroyNotify
- DirectColor
- DisableAccess
- DisableScreenInterval
- DisableScreenSaver
- DoBlue
- DoGreen
- DoRed
- DontAllowExposures
- DontPreferBlanking
- EastGravity
- EnableAccess
- EnterNotify
- EnterWindowMask
- EvenOddRule
- Expose
- ExposureMask
- FamilyChaos
- FamilyDECnet
- FamilyInternet
- FillOpaqueStippled
- FillSolid
- FillStippled
- FillTiled
- FirstExtensionError
- FocusChangeMask
- FocusIn
- FocusOut
- FontChange
- FontLeftToRight
- FontRightToLeft
- ForgetGravity
- GCArcMode
- GCBackground
- GCCapStyle
- GCClipMask
- GCClipXOrigin
- GCClipYOrigin
- GCDashList
- GCDashOffset
- GCFillRule
- GCFillStyle
- GCFont
- GCForeground
- GCFunction
- GCGraphicsExposures
- GCJoinStyle
- GCLastBit
- GCLineStyle
- GCLineWidth
- GCPlaneMask
- GCStipple
- GCSubwindowMode
- GCTile
- GCTileStipXOrigin
- GCTileStipYOrigin
- GXand
- GXandInverted
- GXandReverse
- GXclear
- GXcopy
- GXcopyInverted
- GXequiv
- GXinvert
- GXnand
- GXnoop
- GXnor
- GXor
- GXorInverted
- GXorReverse
- GXset
- GXxor
- GrabFrozen
- GrabInvalidTime
- GrabModeAsync
- GrabModeSync
- GrabNotViewable
- GrabSuccess
- GraphicsExpose
- GravityNotify
- GrayScale
- HostDelete
- HostInsert
- IncludeInferiors
- InputFocus
- InputOnly
- InputOutput
- IsUnmapped
- IsUnviewable
- IsViewable
- JoinBevel
- JoinMiter
- JoinRound
- KBAutoRepeatMode
- KBBellDuration
- KBBellPercent
- KBBellPitch
- KBKey
- KBKeyClickPercent
- KBLed
- KBLedMode
- KeyPress
- KeyPressMask
- KeyRelease
- KeyReleaseMask
- KeymapNotify
- KeymapStateMask
- LASTEvent
- LSBFirst
- LastExtensionError
- LeaveNotify
- LeaveWindowMask
- LedModeOff
- LedModeOn
- LineDoubleDash
- LineOnOffDash
- LineSolid
- LockMapIndex
- LockMask
- LowerHighest
- MSBFirst
- MapNotify
- MapRequest
- MappingBusy
- MappingFailed
- MappingKeyboard
- MappingModifier
- MappingNotify
- MappingPointer
- MappingSuccess
- Mod1MapIndex
- Mod1Mask
- Mod2MapIndex
- Mod2Mask
- Mod3MapIndex
- Mod3Mask
- Mod4MapIndex
- Mod4Mask
- Mod5MapIndex
- Mod5Mask
- MotionNotify
- NoEventMask
- NoExpose
- NoSymbol
- Nonconvex
- None
- NorthEastGravity
- NorthGravity
- NorthWestGravity
- NotUseful
- NotifyAncestor
- NotifyDetailNone
- NotifyGrab
- NotifyHint
- NotifyInferior
- NotifyNonlinear
- NotifyNonlinearVirtual
- NotifyNormal
- NotifyPointer
- NotifyPointerRoot
- NotifyUngrab
- NotifyVirtual
- NotifyWhileGrabbed
- Opposite
- OwnerGrabButtonMask
- ParentRelative
- PlaceOnBottom
- PlaceOnTop
- PointerMotionHintMask
- PointerMotionMask
- PointerRoot
- PointerWindow
- PreferBlanking
- PropModeAppend
- PropModePrepend
- PropModeReplace
- PropertyChangeMask
- PropertyDelete
- PropertyNewValue
- PropertyNotify
- PseudoColor
- RaiseLowest
- ReparentNotify
- ReplayKeyboard
- ReplayPointer
- ResizeRedirectMask
- ResizeRequest
- RetainPermanent
- RetainTemporary
- RevertToNone
- RevertToParent
- RevertToPointerRoot
- ScreenSaverActive
- ScreenSaverReset
- SelectionClear
- SelectionNotify
- SelectionRequest
- SetModeDelete
- SetModeInsert
- ShiftMapIndex
- ShiftMask
- SouthEastGravity
- SouthGravity
- SouthWestGravity
- StaticColor
- StaticGravity
- StaticGray
- StippleShape
- StructureNotifyMask
- SubstructureNotifyMask
- SubstructureRedirectMask
- Success
- SyncBoth
- SyncKeyboard
- SyncPointer
- TileShape
- TopIf
- TrueColor
- UnmapGravity
- UnmapNotify
- Unsorted
- VisibilityChangeMask
- VisibilityFullyObscured
- VisibilityNotify
- VisibilityPartiallyObscured
- VisibilityUnobscured
- WestGravity
- WhenMapped
- WindingRule
- XYBitmap
- XYPixmap
- X_H
- X_PROTOCOL
- X_PROTOCOL_REVISION
- YSorted
- YXBanded
- YXSorted
- ZPixmap
-);
-
-sub AUTOLOAD {
- # This AUTOLOAD is used to 'autoload' constants from the constant()
- # XS function. If a constant is not found then control is passed
- # to the AUTOLOAD in AutoLoader.
-
- my $constname;
- ($constname = $AUTOLOAD) =~ s/.*:://;
- my $val = constant($constname, @_ ? $_[0] : 0);
- if ($! != 0) {
- if ($! =~ /Invalid/) {
- $AutoLoader::AUTOLOAD = $AUTOLOAD;
- goto &AutoLoader::AUTOLOAD;
- }
- else {
- croak "Your vendor has not defined X macro $constname";
- }
- }
- eval "sub $AUTOLOAD { $val }";
- goto &$AUTOLOAD;
-}
-
-bootstrap Tk::X;
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/X.pod b/Master/tlpkg/tlperl/lib/Tk/X.pod
deleted file mode 100644
index e6c7614a72c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/X.pod
+++ /dev/null
@@ -1,373 +0,0 @@
-
-=head1 NAME
-
-Tk::X - Perl extension for Xlib constants.
-
-=for pm Xlib/X/X.pm
-
-=for category Other Modules and Languages
-
-=head1 SYNOPSIS
-
- use Tk::X;
-
-=head1 DESCRIPTION
-
-A module generated by h2xs. It exists to export Xlib #define type
-constants for possible use with Tk::Xlib.
-
-=head1 Exported constants
-
- Above
- AllTemporary
- AllocAll
- AllocNone
- AllowExposures
- AlreadyGrabbed
- Always
- AnyButton
- AnyKey
- AnyModifier
- AnyPropertyType
- ArcChord
- ArcPieSlice
- AsyncBoth
- AsyncKeyboard
- AsyncPointer
- AutoRepeatModeDefault
- AutoRepeatModeOff
- AutoRepeatModeOn
- BadAccess
- BadAlloc
- BadAtom
- BadColor
- BadCursor
- BadDrawable
- BadFont
- BadGC
- BadIDChoice
- BadImplementation
- BadLength
- BadMatch
- BadName
- BadPixmap
- BadRequest
- BadValue
- BadWindow
- Below
- BottomIf
- Button1
- Button1Mask
- Button1MotionMask
- Button2
- Button2Mask
- Button2MotionMask
- Button3
- Button3Mask
- Button3MotionMask
- Button4
- Button4Mask
- Button4MotionMask
- Button5
- Button5Mask
- Button5MotionMask
- ButtonMotionMask
- ButtonPress
- ButtonPressMask
- ButtonRelease
- ButtonReleaseMask
- CWBackPixel
- CWBackPixmap
- CWBackingPixel
- CWBackingPlanes
- CWBackingStore
- CWBitGravity
- CWBorderPixel
- CWBorderPixmap
- CWBorderWidth
- CWColormap
- CWCursor
- CWDontPropagate
- CWEventMask
- CWHeight
- CWOverrideRedirect
- CWSaveUnder
- CWSibling
- CWStackMode
- CWWidth
- CWWinGravity
- CWX
- CWY
- CapButt
- CapNotLast
- CapProjecting
- CapRound
- CenterGravity
- CirculateNotify
- CirculateRequest
- ClientMessage
- ClipByChildren
- ColormapChangeMask
- ColormapInstalled
- ColormapNotify
- ColormapUninstalled
- Complex
- ConfigureNotify
- ConfigureRequest
- ControlMapIndex
- ControlMask
- Convex
- CoordModeOrigin
- CoordModePrevious
- CopyFromParent
- CreateNotify
- CurrentTime
- CursorShape
- DefaultBlanking
- DefaultExposures
- DestroyAll
- DestroyNotify
- DirectColor
- DisableAccess
- DisableScreenInterval
- DisableScreenSaver
- DoBlue
- DoGreen
- DoRed
- DontAllowExposures
- DontPreferBlanking
- EastGravity
- EnableAccess
- EnterNotify
- EnterWindowMask
- EvenOddRule
- Expose
- ExposureMask
- FamilyChaos
- FamilyDECnet
- FamilyInternet
- FillOpaqueStippled
- FillSolid
- FillStippled
- FillTiled
- FirstExtensionError
- FocusChangeMask
- FocusIn
- FocusOut
- FontChange
- FontLeftToRight
- FontRightToLeft
- ForgetGravity
- GCArcMode
- GCBackground
- GCCapStyle
- GCClipMask
- GCClipXOrigin
- GCClipYOrigin
- GCDashList
- GCDashOffset
- GCFillRule
- GCFillStyle
- GCFont
- GCForeground
- GCFunction
- GCGraphicsExposures
- GCJoinStyle
- GCLastBit
- GCLineStyle
- GCLineWidth
- GCPlaneMask
- GCStipple
- GCSubwindowMode
- GCTile
- GCTileStipXOrigin
- GCTileStipYOrigin
- GXand
- GXandInverted
- GXandReverse
- GXclear
- GXcopy
- GXcopyInverted
- GXequiv
- GXinvert
- GXnand
- GXnoop
- GXnor
- GXor
- GXorInverted
- GXorReverse
- GXset
- GXxor
- GrabFrozen
- GrabInvalidTime
- GrabModeAsync
- GrabModeSync
- GrabNotViewable
- GrabSuccess
- GraphicsExpose
- GravityNotify
- GrayScale
- HostDelete
- HostInsert
- IncludeInferiors
- InputFocus
- InputOnly
- InputOutput
- IsUnmapped
- IsUnviewable
- IsViewable
- JoinBevel
- JoinMiter
- JoinRound
- KBAutoRepeatMode
- KBBellDuration
- KBBellPercent
- KBBellPitch
- KBKey
- KBKeyClickPercent
- KBLed
- KBLedMode
- KeyPress
- KeyPressMask
- KeyRelease
- KeyReleaseMask
- KeymapNotify
- KeymapStateMask
- LASTEvent
- LSBFirst
- LastExtensionError
- LeaveNotify
- LeaveWindowMask
- LedModeOff
- LedModeOn
- LineDoubleDash
- LineOnOffDash
- LineSolid
- LockMapIndex
- LockMask
- LowerHighest
- MSBFirst
- MapNotify
- MapRequest
- MappingBusy
- MappingFailed
- MappingKeyboard
- MappingModifier
- MappingNotify
- MappingPointer
- MappingSuccess
- Mod1MapIndex
- Mod1Mask
- Mod2MapIndex
- Mod2Mask
- Mod3MapIndex
- Mod3Mask
- Mod4MapIndex
- Mod4Mask
- Mod5MapIndex
- Mod5Mask
- MotionNotify
- NoEventMask
- NoExpose
- NoSymbol
- Nonconvex
- None
- NorthEastGravity
- NorthGravity
- NorthWestGravity
- NotUseful
- NotifyAncestor
- NotifyDetailNone
- NotifyGrab
- NotifyHint
- NotifyInferior
- NotifyNonlinear
- NotifyNonlinearVirtual
- NotifyNormal
- NotifyPointer
- NotifyPointerRoot
- NotifyUngrab
- NotifyVirtual
- NotifyWhileGrabbed
- Opposite
- OwnerGrabButtonMask
- ParentRelative
- PlaceOnBottom
- PlaceOnTop
- PointerMotionHintMask
- PointerMotionMask
- PointerRoot
- PointerWindow
- PreferBlanking
- PropModeAppend
- PropModePrepend
- PropModeReplace
- PropertyChangeMask
- PropertyDelete
- PropertyNewValue
- PropertyNotify
- PseudoColor
- RaiseLowest
- ReparentNotify
- ReplayKeyboard
- ReplayPointer
- ResizeRedirectMask
- ResizeRequest
- RetainPermanent
- RetainTemporary
- RevertToNone
- RevertToParent
- RevertToPointerRoot
- ScreenSaverActive
- ScreenSaverReset
- SelectionClear
- SelectionNotify
- SelectionRequest
- SetModeDelete
- SetModeInsert
- ShiftMapIndex
- ShiftMask
- SouthEastGravity
- SouthGravity
- SouthWestGravity
- StaticColor
- StaticGravity
- StaticGray
- StippleShape
- StructureNotifyMask
- SubstructureNotifyMask
- SubstructureRedirectMask
- Success
- SyncBoth
- SyncKeyboard
- SyncPointer
- TileShape
- TopIf
- TrueColor
- UnmapGravity
- UnmapNotify
- Unsorted
- VisibilityChangeMask
- VisibilityFullyObscured
- VisibilityNotify
- VisibilityPartiallyObscured
- VisibilityUnobscured
- WestGravity
- WhenMapped
- WindingRule
- XYBitmap
- XYPixmap
- X_H
- X_PROTOCOL
- X_PROTOCOL_REVISION
- YSorted
- YXBanded
- YXSorted
- ZPixmap
-
-=head1 AUTHOR
-
-Nick Ing-Simmons ran h2xs ...
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/X11/X.h b/Master/tlpkg/tlperl/lib/Tk/X11/X.h
deleted file mode 100644
index a1cf10c8a90..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/X11/X.h
+++ /dev/null
@@ -1,677 +0,0 @@
-/*
- * $XConsortium: X.h,v 1.66 88/09/06 15:55:56 jim Exp $
- */
-
-/* Definitions for the X window system likely to be used by applications */
-
-#ifndef X_H
-#define X_H
-
-/***********************************************************
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
-and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Digital or MIT not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-#define X_PROTOCOL 11 /* current protocol version */
-#define X_PROTOCOL_REVISION 0 /* current minor version */
-
-#if defined(MAC_TCL) || defined(MAC_OSX_TK)
-# define Cursor XCursor
-# define Region XRegion
-#endif
-
-/* Resources */
-
-#if defined(_WIN64) && defined(_MSC_VER)
-typedef __int64 XID;
-#else
-typedef unsigned long XID;
-#endif
-
-typedef XID Window;
-typedef XID Drawable;
-typedef XID Font;
-typedef XID Pixmap;
-typedef XID Cursor;
-typedef XID Colormap;
-typedef XID GContext;
-typedef XID KeySym;
-
-typedef unsigned long Mask;
-
-typedef unsigned long Atom;
-
-typedef unsigned long VisualID;
-
-typedef unsigned long Time;
-
-typedef unsigned long KeyCode; /* In order to use IME, the Macintosh needs
- * to pack 3 bytes into the keyCode field in
- * the XEvent. In the real X.h, a KeyCode is
- * defined as a short, which wouldn't be big
- * enough. */
-
-/*****************************************************************
- * RESERVED RESOURCE AND CONSTANT DEFINITIONS
- *****************************************************************/
-
-#define None 0L /* universal null resource or null atom */
-
-#define ParentRelative 1L /* background pixmap in CreateWindow
- and ChangeWindowAttributes */
-
-#define CopyFromParent 0L /* border pixmap in CreateWindow
- and ChangeWindowAttributes
- special VisualID and special window
- class passed to CreateWindow */
-
-#define PointerWindow 0L /* destination window in SendEvent */
-#define InputFocus 1L /* destination window in SendEvent */
-
-#define PointerRoot 1L /* focus window in SetInputFocus */
-
-#define AnyPropertyType 0L /* special Atom, passed to GetProperty */
-
-#define AnyKey 0L /* special Key Code, passed to GrabKey */
-
-#define AnyButton 0L /* special Button Code, passed to GrabButton */
-
-#define AllTemporary 0L /* special Resource ID passed to KillClient */
-
-#define CurrentTime 0L /* special Time */
-
-#define NoSymbol 0L /* special KeySym */
-
-/*****************************************************************
- * EVENT DEFINITIONS
- *****************************************************************/
-
-/* Input Event Masks. Used as event-mask window attribute and as arguments
- to Grab requests. Not to be confused with event names. */
-
-#define NoEventMask 0L
-#define KeyPressMask (1L<<0)
-#define KeyReleaseMask (1L<<1)
-#define ButtonPressMask (1L<<2)
-#define ButtonReleaseMask (1L<<3)
-#define EnterWindowMask (1L<<4)
-#define LeaveWindowMask (1L<<5)
-#define PointerMotionMask (1L<<6)
-#define PointerMotionHintMask (1L<<7)
-#define Button1MotionMask (1L<<8)
-#define Button2MotionMask (1L<<9)
-#define Button3MotionMask (1L<<10)
-#define Button4MotionMask (1L<<11)
-#define Button5MotionMask (1L<<12)
-#define ButtonMotionMask (1L<<13)
-#define KeymapStateMask (1L<<14)
-#define ExposureMask (1L<<15)
-#define VisibilityChangeMask (1L<<16)
-#define StructureNotifyMask (1L<<17)
-#define ResizeRedirectMask (1L<<18)
-#define SubstructureNotifyMask (1L<<19)
-#define SubstructureRedirectMask (1L<<20)
-#define FocusChangeMask (1L<<21)
-#define PropertyChangeMask (1L<<22)
-#define ColormapChangeMask (1L<<23)
-#define OwnerGrabButtonMask (1L<<24)
-
-/* Event names. Used in "type" field in XEvent structures. Not to be
-confused with event masks above. They start from 2 because 0 and 1
-are reserved in the protocol for errors and replies. */
-
-#define KeyPress 2
-#define KeyRelease 3
-#define ButtonPress 4
-#define ButtonRelease 5
-#define MotionNotify 6
-#define EnterNotify 7
-#define LeaveNotify 8
-#define FocusIn 9
-#define FocusOut 10
-#define KeymapNotify 11
-#define Expose 12
-#define GraphicsExpose 13
-#define NoExpose 14
-#define VisibilityNotify 15
-#define CreateNotify 16
-#define DestroyNotify 17
-#define UnmapNotify 18
-#define MapNotify 19
-#define MapRequest 20
-#define ReparentNotify 21
-#define ConfigureNotify 22
-#define ConfigureRequest 23
-#define GravityNotify 24
-#define ResizeRequest 25
-#define CirculateNotify 26
-#define CirculateRequest 27
-#define PropertyNotify 28
-#define SelectionClear 29
-#define SelectionRequest 30
-#define SelectionNotify 31
-#define ColormapNotify 32
-#define ClientMessage 33
-#define MappingNotify 34
-#define LASTEvent 35 /* must be bigger than any event # */
-
-
-/* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer,
- state in various key-, mouse-, and button-related events. */
-
-#define ShiftMask (1<<0)
-#define LockMask (1<<1)
-#define ControlMask (1<<2)
-#define Mod1Mask (1<<3)
-#define Mod2Mask (1<<4)
-#define Mod3Mask (1<<5)
-#define Mod4Mask (1<<6)
-#define Mod5Mask (1<<7)
-
-/* modifier names. Used to build a SetModifierMapping request or
- to read a GetModifierMapping request. These correspond to the
- masks defined above. */
-#define ShiftMapIndex 0
-#define LockMapIndex 1
-#define ControlMapIndex 2
-#define Mod1MapIndex 3
-#define Mod2MapIndex 4
-#define Mod3MapIndex 5
-#define Mod4MapIndex 6
-#define Mod5MapIndex 7
-
-
-/* button masks. Used in same manner as Key masks above. Not to be confused
- with button names below. */
-
-#define Button1Mask (1<<8)
-#define Button2Mask (1<<9)
-#define Button3Mask (1<<10)
-#define Button4Mask (1<<11)
-#define Button5Mask (1<<12)
-
-#define AnyModifier (1<<15) /* used in GrabButton, GrabKey */
-
-
-/* button names. Used as arguments to GrabButton and as detail in ButtonPress
- and ButtonRelease events. Not to be confused with button masks above.
- Note that 0 is already defined above as "AnyButton". */
-
-#define Button1 1
-#define Button2 2
-#define Button3 3
-#define Button4 4
-#define Button5 5
-
-/* Notify modes */
-
-#define NotifyNormal 0
-#define NotifyGrab 1
-#define NotifyUngrab 2
-#define NotifyWhileGrabbed 3
-
-#define NotifyHint 1 /* for MotionNotify events */
-
-/* Notify detail */
-
-#define NotifyAncestor 0
-#define NotifyVirtual 1
-#define NotifyInferior 2
-#define NotifyNonlinear 3
-#define NotifyNonlinearVirtual 4
-#define NotifyPointer 5
-#define NotifyPointerRoot 6
-#define NotifyDetailNone 7
-
-/* Visibility notify */
-
-#define VisibilityUnobscured 0
-#define VisibilityPartiallyObscured 1
-#define VisibilityFullyObscured 2
-
-/* Circulation request */
-
-#define PlaceOnTop 0
-#define PlaceOnBottom 1
-
-/* protocol families */
-
-#define FamilyInternet 0
-#define FamilyDECnet 1
-#define FamilyChaos 2
-
-/* Property notification */
-
-#define PropertyNewValue 0
-#define PropertyDelete 1
-
-/* Color Map notification */
-
-#define ColormapUninstalled 0
-#define ColormapInstalled 1
-
-/* GrabPointer, GrabButton, GrabKeyboard, GrabKey Modes */
-
-#define GrabModeSync 0
-#define GrabModeAsync 1
-
-/* GrabPointer, GrabKeyboard reply status */
-
-#define GrabSuccess 0
-#define AlreadyGrabbed 1
-#define GrabInvalidTime 2
-#define GrabNotViewable 3
-#define GrabFrozen 4
-
-/* AllowEvents modes */
-
-#define AsyncPointer 0
-#define SyncPointer 1
-#define ReplayPointer 2
-#define AsyncKeyboard 3
-#define SyncKeyboard 4
-#define ReplayKeyboard 5
-#define AsyncBoth 6
-#define SyncBoth 7
-
-/* Used in SetInputFocus, GetInputFocus */
-
-#define RevertToNone (int)None
-#define RevertToPointerRoot (int)PointerRoot
-#define RevertToParent 2
-
-/*****************************************************************
- * ERROR CODES
- *****************************************************************/
-
-#define Success 0 /* everything's okay */
-#define BadRequest 1 /* bad request code */
-#define BadValue 2 /* int parameter out of range */
-#define BadWindow 3 /* parameter not a Window */
-#define BadPixmap 4 /* parameter not a Pixmap */
-#define BadAtom 5 /* parameter not an Atom */
-#define BadCursor 6 /* parameter not a Cursor */
-#define BadFont 7 /* parameter not a Font */
-#define BadMatch 8 /* parameter mismatch */
-#define BadDrawable 9 /* parameter not a Pixmap or Window */
-#define BadAccess 10 /* depending on context:
- - key/button already grabbed
- - attempt to free an illegal
- cmap entry
- - attempt to store into a read-only
- color map entry.
- - attempt to modify the access control
- list from other than the local host.
- */
-#define BadAlloc 11 /* insufficient resources */
-#define BadColor 12 /* no such colormap */
-#define BadGC 13 /* parameter not a GC */
-#define BadIDChoice 14 /* choice not in range or already used */
-#define BadName 15 /* font or color name doesn't exist */
-#define BadLength 16 /* Request length incorrect */
-#define BadImplementation 17 /* server is defective */
-
-#define FirstExtensionError 128
-#define LastExtensionError 255
-
-/*****************************************************************
- * WINDOW DEFINITIONS
- *****************************************************************/
-
-/* Window classes used by CreateWindow */
-/* Note that CopyFromParent is already defined as 0 above */
-
-#define InputOutput 1
-#define InputOnly 2
-
-/* Window attributes for CreateWindow and ChangeWindowAttributes */
-
-#define CWBackPixmap (1L<<0)
-#define CWBackPixel (1L<<1)
-#define CWBorderPixmap (1L<<2)
-#define CWBorderPixel (1L<<3)
-#define CWBitGravity (1L<<4)
-#define CWWinGravity (1L<<5)
-#define CWBackingStore (1L<<6)
-#define CWBackingPlanes (1L<<7)
-#define CWBackingPixel (1L<<8)
-#define CWOverrideRedirect (1L<<9)
-#define CWSaveUnder (1L<<10)
-#define CWEventMask (1L<<11)
-#define CWDontPropagate (1L<<12)
-#define CWColormap (1L<<13)
-#define CWCursor (1L<<14)
-
-/* ConfigureWindow structure */
-
-#define CWX (1<<0)
-#define CWY (1<<1)
-#define CWWidth (1<<2)
-#define CWHeight (1<<3)
-#define CWBorderWidth (1<<4)
-#define CWSibling (1<<5)
-#define CWStackMode (1<<6)
-
-
-/* Bit Gravity */
-
-#define ForgetGravity 0
-#define NorthWestGravity 1
-#define NorthGravity 2
-#define NorthEastGravity 3
-#define WestGravity 4
-#define CenterGravity 5
-#define EastGravity 6
-#define SouthWestGravity 7
-#define SouthGravity 8
-#define SouthEastGravity 9
-#define StaticGravity 10
-
-/* Window gravity + bit gravity above */
-
-#define UnmapGravity 0
-
-/* Used in CreateWindow for backing-store hint */
-
-#define NotUseful 0
-#define WhenMapped 1
-#define Always 2
-
-/* Used in GetWindowAttributes reply */
-
-#define IsUnmapped 0
-#define IsUnviewable 1
-#define IsViewable 2
-
-/* Used in ChangeSaveSet */
-
-#define SetModeInsert 0
-#define SetModeDelete 1
-
-/* Used in ChangeCloseDownMode */
-
-#define DestroyAll 0
-#define RetainPermanent 1
-#define RetainTemporary 2
-
-/* Window stacking method (in configureWindow) */
-
-#define Above 0
-#define Below 1
-#define TopIf 2
-#define BottomIf 3
-#define Opposite 4
-
-/* Circulation direction */
-
-#define RaiseLowest 0
-#define LowerHighest 1
-
-/* Property modes */
-
-#define PropModeReplace 0
-#define PropModePrepend 1
-#define PropModeAppend 2
-
-/*****************************************************************
- * GRAPHICS DEFINITIONS
- *****************************************************************/
-
-/* graphics functions, as in GC.alu */
-
-#define GXclear 0x0 /* 0 */
-#define GXand 0x1 /* src AND dst */
-#define GXandReverse 0x2 /* src AND NOT dst */
-#define GXcopy 0x3 /* src */
-#define GXandInverted 0x4 /* NOT src AND dst */
-#define GXnoop 0x5 /* dst */
-#define GXxor 0x6 /* src XOR dst */
-#define GXor 0x7 /* src OR dst */
-#define GXnor 0x8 /* NOT src AND NOT dst */
-#define GXequiv 0x9 /* NOT src XOR dst */
-#define GXinvert 0xa /* NOT dst */
-#define GXorReverse 0xb /* src OR NOT dst */
-#define GXcopyInverted 0xc /* NOT src */
-#define GXorInverted 0xd /* NOT src OR dst */
-#define GXnand 0xe /* NOT src OR NOT dst */
-#define GXset 0xf /* 1 */
-
-/* LineStyle */
-
-#define LineSolid 0
-#define LineOnOffDash 1
-#define LineDoubleDash 2
-
-/* capStyle */
-
-#define CapNotLast 0
-#define CapButt 1
-#define CapRound 2
-#define CapProjecting 3
-
-/* joinStyle */
-
-#define JoinMiter 0
-#define JoinRound 1
-#define JoinBevel 2
-
-/* fillStyle */
-
-#define FillSolid 0
-#define FillTiled 1
-#define FillStippled 2
-#define FillOpaqueStippled 3
-
-/* fillRule */
-
-#define EvenOddRule 0
-#define WindingRule 1
-
-/* subwindow mode */
-
-#define ClipByChildren 0
-#define IncludeInferiors 1
-
-/* SetClipRectangles ordering */
-
-#define Unsorted 0
-#define YSorted 1
-#define YXSorted 2
-#define YXBanded 3
-
-/* CoordinateMode for drawing routines */
-
-#define CoordModeOrigin 0 /* relative to the origin */
-#define CoordModePrevious 1 /* relative to previous point */
-
-/* Polygon shapes */
-
-#define Complex 0 /* paths may intersect */
-#define Nonconvex 1 /* no paths intersect, but not convex */
-#define Convex 2 /* wholly convex */
-
-/* Arc modes for PolyFillArc */
-
-#define ArcChord 0 /* join endpoints of arc */
-#define ArcPieSlice 1 /* join endpoints to center of arc */
-
-/* GC components: masks used in CreateGC, CopyGC, ChangeGC, OR'ed into
- GC.stateChanges */
-
-#define GCFunction (1L<<0)
-#define GCPlaneMask (1L<<1)
-#define GCForeground (1L<<2)
-#define GCBackground (1L<<3)
-#define GCLineWidth (1L<<4)
-#define GCLineStyle (1L<<5)
-#define GCCapStyle (1L<<6)
-#define GCJoinStyle (1L<<7)
-#define GCFillStyle (1L<<8)
-#define GCFillRule (1L<<9)
-#define GCTile (1L<<10)
-#define GCStipple (1L<<11)
-#define GCTileStipXOrigin (1L<<12)
-#define GCTileStipYOrigin (1L<<13)
-#define GCFont (1L<<14)
-#define GCSubwindowMode (1L<<15)
-#define GCGraphicsExposures (1L<<16)
-#define GCClipXOrigin (1L<<17)
-#define GCClipYOrigin (1L<<18)
-#define GCClipMask (1L<<19)
-#define GCDashOffset (1L<<20)
-#define GCDashList (1L<<21)
-#define GCArcMode (1L<<22)
-
-#define GCLastBit 22
-/*****************************************************************
- * FONTS
- *****************************************************************/
-
-/* used in QueryFont -- draw direction */
-
-#define FontLeftToRight 0
-#define FontRightToLeft 1
-
-#define FontChange 255
-
-/*****************************************************************
- * IMAGING
- *****************************************************************/
-
-/* ImageFormat -- PutImage, GetImage */
-
-#define XYBitmap 0 /* depth 1, XYFormat */
-#define XYPixmap 1 /* depth == drawable depth */
-#define ZPixmap 2 /* depth == drawable depth */
-
-/*****************************************************************
- * COLOR MAP STUFF
- *****************************************************************/
-
-/* For CreateColormap */
-
-#define AllocNone 0 /* create map with no entries */
-#define AllocAll 1 /* allocate entire map writeable */
-
-
-/* Flags used in StoreNamedColor, StoreColors */
-
-#define DoRed (1<<0)
-#define DoGreen (1<<1)
-#define DoBlue (1<<2)
-
-/*****************************************************************
- * CURSOR STUFF
- *****************************************************************/
-
-/* QueryBestSize Class */
-
-#define CursorShape 0 /* largest size that can be displayed */
-#define TileShape 1 /* size tiled fastest */
-#define StippleShape 2 /* size stippled fastest */
-
-/*****************************************************************
- * KEYBOARD/POINTER STUFF
- *****************************************************************/
-
-#define AutoRepeatModeOff 0
-#define AutoRepeatModeOn 1
-#define AutoRepeatModeDefault 2
-
-#define LedModeOff 0
-#define LedModeOn 1
-
-/* masks for ChangeKeyboardControl */
-
-#define KBKeyClickPercent (1L<<0)
-#define KBBellPercent (1L<<1)
-#define KBBellPitch (1L<<2)
-#define KBBellDuration (1L<<3)
-#define KBLed (1L<<4)
-#define KBLedMode (1L<<5)
-#define KBKey (1L<<6)
-#define KBAutoRepeatMode (1L<<7)
-
-#define MappingSuccess 0
-#define MappingBusy 1
-#define MappingFailed 2
-
-#define MappingModifier 0
-#define MappingKeyboard 1
-#define MappingPointer 2
-
-/*****************************************************************
- * SCREEN SAVER STUFF
- *****************************************************************/
-
-#define DontPreferBlanking 0
-#define PreferBlanking 1
-#define DefaultBlanking 2
-
-#define DisableScreenSaver 0
-#define DisableScreenInterval 0
-
-#define DontAllowExposures 0
-#define AllowExposures 1
-#define DefaultExposures 2
-
-/* for ForceScreenSaver */
-
-#define ScreenSaverReset 0
-#define ScreenSaverActive 1
-
-/*****************************************************************
- * HOSTS AND CONNECTIONS
- *****************************************************************/
-
-/* for ChangeHosts */
-
-#define HostInsert 0
-#define HostDelete 1
-
-/* for ChangeAccessControl */
-
-#define EnableAccess 1
-#define DisableAccess 0
-
-/* Display classes used in opening the connection
- * Note that the statically allocated ones are even numbered and the
- * dynamically changeable ones are odd numbered */
-
-#define StaticGray 0
-#define GrayScale 1
-#define StaticColor 2
-#define PseudoColor 3
-#define TrueColor 4
-#define DirectColor 5
-
-
-/* Byte order used in imageByteOrder and bitmapBitOrder */
-
-#define LSBFirst 0
-#define MSBFirst 1
-
-#if defined(MAC_TCL) || defined(MAC_OSX_TK)
-# undef Cursor
-# undef Region
-#endif
-
-#endif /* X_H */
diff --git a/Master/tlpkg/tlperl/lib/Tk/X11/Xatom.h b/Master/tlpkg/tlperl/lib/Tk/X11/Xatom.h
deleted file mode 100644
index 485a4236db8..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/X11/Xatom.h
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef XATOM_H
-#define XATOM_H 1
-
-/* THIS IS A GENERATED FILE
- *
- * Do not change! Changing this file implies a protocol change!
- */
-
-#define XA_PRIMARY ((Atom) 1)
-#define XA_SECONDARY ((Atom) 2)
-#define XA_ARC ((Atom) 3)
-#define XA_ATOM ((Atom) 4)
-#define XA_BITMAP ((Atom) 5)
-#define XA_CARDINAL ((Atom) 6)
-#define XA_COLORMAP ((Atom) 7)
-#define XA_CURSOR ((Atom) 8)
-#define XA_CUT_BUFFER0 ((Atom) 9)
-#define XA_CUT_BUFFER1 ((Atom) 10)
-#define XA_CUT_BUFFER2 ((Atom) 11)
-#define XA_CUT_BUFFER3 ((Atom) 12)
-#define XA_CUT_BUFFER4 ((Atom) 13)
-#define XA_CUT_BUFFER5 ((Atom) 14)
-#define XA_CUT_BUFFER6 ((Atom) 15)
-#define XA_CUT_BUFFER7 ((Atom) 16)
-#define XA_DRAWABLE ((Atom) 17)
-#define XA_FONT ((Atom) 18)
-#define XA_INTEGER ((Atom) 19)
-#define XA_PIXMAP ((Atom) 20)
-#define XA_POINT ((Atom) 21)
-#define XA_RECTANGLE ((Atom) 22)
-#define XA_RESOURCE_MANAGER ((Atom) 23)
-#define XA_RGB_COLOR_MAP ((Atom) 24)
-#define XA_RGB_BEST_MAP ((Atom) 25)
-#define XA_RGB_BLUE_MAP ((Atom) 26)
-#define XA_RGB_DEFAULT_MAP ((Atom) 27)
-#define XA_RGB_GRAY_MAP ((Atom) 28)
-#define XA_RGB_GREEN_MAP ((Atom) 29)
-#define XA_RGB_RED_MAP ((Atom) 30)
-#define XA_STRING ((Atom) 31)
-#define XA_VISUALID ((Atom) 32)
-#define XA_WINDOW ((Atom) 33)
-#define XA_WM_COMMAND ((Atom) 34)
-#define XA_WM_HINTS ((Atom) 35)
-#define XA_WM_CLIENT_MACHINE ((Atom) 36)
-#define XA_WM_ICON_NAME ((Atom) 37)
-#define XA_WM_ICON_SIZE ((Atom) 38)
-#define XA_WM_NAME ((Atom) 39)
-#define XA_WM_NORMAL_HINTS ((Atom) 40)
-#define XA_WM_SIZE_HINTS ((Atom) 41)
-#define XA_WM_ZOOM_HINTS ((Atom) 42)
-#define XA_MIN_SPACE ((Atom) 43)
-#define XA_NORM_SPACE ((Atom) 44)
-#define XA_MAX_SPACE ((Atom) 45)
-#define XA_END_SPACE ((Atom) 46)
-#define XA_SUPERSCRIPT_X ((Atom) 47)
-#define XA_SUPERSCRIPT_Y ((Atom) 48)
-#define XA_SUBSCRIPT_X ((Atom) 49)
-#define XA_SUBSCRIPT_Y ((Atom) 50)
-#define XA_UNDERLINE_POSITION ((Atom) 51)
-#define XA_UNDERLINE_THICKNESS ((Atom) 52)
-#define XA_STRIKEOUT_ASCENT ((Atom) 53)
-#define XA_STRIKEOUT_DESCENT ((Atom) 54)
-#define XA_ITALIC_ANGLE ((Atom) 55)
-#define XA_X_HEIGHT ((Atom) 56)
-#define XA_QUAD_WIDTH ((Atom) 57)
-#define XA_WEIGHT ((Atom) 58)
-#define XA_POINT_SIZE ((Atom) 59)
-#define XA_RESOLUTION ((Atom) 60)
-#define XA_COPYRIGHT ((Atom) 61)
-#define XA_NOTICE ((Atom) 62)
-#define XA_FONT_NAME ((Atom) 63)
-#define XA_FAMILY_NAME ((Atom) 64)
-#define XA_FULL_NAME ((Atom) 65)
-#define XA_CAP_HEIGHT ((Atom) 66)
-#define XA_WM_CLASS ((Atom) 67)
-#define XA_WM_TRANSIENT_FOR ((Atom) 68)
-
-#define XA_LAST_PREDEFINED ((Atom) 68)
-#endif /* XATOM_H */
diff --git a/Master/tlpkg/tlperl/lib/Tk/X11/Xfuncproto.h b/Master/tlpkg/tlperl/lib/Tk/X11/Xfuncproto.h
deleted file mode 100644
index a59379b3b65..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/X11/Xfuncproto.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* $XConsortium: Xfuncproto.h,v 1.7 91/05/13 20:49:21 rws Exp $ */
-/*
- * Copyright 1989, 1991 by the Massachusetts Institute of Technology
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- */
-
-/* Definitions to make function prototypes manageable */
-
-#ifndef _XFUNCPROTO_H_
-#define _XFUNCPROTO_H_
-
-#ifndef NeedFunctionPrototypes
-#define NeedFunctionPrototypes 1
-#endif /* NeedFunctionPrototypes */
-
-#ifndef NeedVarargsPrototypes
-#define NeedVarargsPrototypes 0
-#endif /* NeedVarargsPrototypes */
-
-#if NeedFunctionPrototypes
-
-#ifndef NeedNestedPrototypes
-#define NeedNestedPrototypes 1
-#endif /* NeedNestedPrototypes */
-
-#ifndef _Xconst
-#define _Xconst const
-#endif /* _Xconst */
-
-#ifndef NeedWidePrototypes
-#ifdef NARROWPROTO
-#define NeedWidePrototypes 0
-#else
-#define NeedWidePrototypes 1 /* default to make interropt. easier */
-#endif
-#endif /* NeedWidePrototypes */
-
-#endif /* NeedFunctionPrototypes */
-
-#ifdef __cplusplus
-#define _XFUNCPROTOBEGIN extern "C" {
-#define _XFUNCPROTOEND }
-#endif
-
-#ifndef _XFUNCPROTOBEGIN
-#define _XFUNCPROTOBEGIN
-#define _XFUNCPROTOEND
-#endif /* _XFUNCPROTOBEGIN */
-
-#endif /* _XFUNCPROTO_H_ */
diff --git a/Master/tlpkg/tlperl/lib/Tk/X11/Xlib.h b/Master/tlpkg/tlperl/lib/Tk/X11/Xlib.h
deleted file mode 100644
index 660ec128833..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/X11/Xlib.h
+++ /dev/null
@@ -1,1214 +0,0 @@
-/* $XConsortium: Xlib.h,v 11.221 93/07/02 14:13:28 gildea Exp $ */
-/*
- * Copyright 1985, 1986, 1987, 1991 by the Massachusetts Institute of Technology
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * X Window System is a Trademark of MIT.
- *
- */
-
-
-/*
- * Xlib.h - Header definition and support file for the C subroutine
- * interface library (Xlib) to the X Window System Protocol (V11).
- * Structures and symbols starting with "_" are private to the library.
- */
-#ifndef _XLIB_H_
-#define _XLIB_H_
-
-#define XlibSpecificationRelease 5
-
-#if !defined(MAC_TCL) && !defined(MAC_OSX_TK)
-# include <X11/X.h>
-#endif
-#ifdef MAC_TCL
-# include <X.h>
-# define Cursor XCursor
-# define Region XRegion
-#endif
-#ifdef MAC_OSX_TK
-# include <X11/X.h>
-# define Cursor XCursor
-# define Region XRegion
-#endif
-
-/* applications should not depend on these two headers being included! */
-#ifdef MAC_TCL
-#include <Xfuncproto.h>
-#else
-#include <X11/Xfuncproto.h>
-#endif
-
-#ifndef X_WCHAR
-#ifdef X_NOT_STDC_ENV
-#define X_WCHAR
-#endif
-#endif
-
-#ifndef X_WCHAR
-#include <stddef.h>
-#else
-/* replace this with #include or typedef appropriate for your system */
-typedef unsigned long wchar_t;
-#endif
-
-typedef char *XPointer;
-
-#define Bool int
-#if defined(MAC_TCL) || defined(MAC_OSX_TK)
-/* Use define rather than typedef, since may need to undefine this later */
-#define Status int
-#else
-typedef int Status;
-#endif
-#define True 1
-#define False 0
-
-#define QueuedAlready 0
-#define QueuedAfterReading 1
-#define QueuedAfterFlush 2
-
-#define ConnectionNumber(dpy) ((dpy)->fd)
-#define RootWindow(dpy, scr) (((dpy)->screens[(scr)]).root)
-#define DefaultScreen(dpy) ((dpy)->default_screen)
-#define DefaultRootWindow(dpy) (((dpy)->screens[(dpy)->default_screen]).root)
-#define DefaultVisual(dpy, scr) (((dpy)->screens[(scr)]).root_visual)
-#define DefaultGC(dpy, scr) (((dpy)->screens[(scr)]).default_gc)
-#define BlackPixel(dpy, scr) (((dpy)->screens[(scr)]).black_pixel)
-#define WhitePixel(dpy, scr) (((dpy)->screens[(scr)]).white_pixel)
-#define AllPlanes ((unsigned long)~0L)
-#define QLength(dpy) ((dpy)->qlen)
-#define DisplayWidth(dpy, scr) (((dpy)->screens[(scr)]).width)
-#define DisplayHeight(dpy, scr) (((dpy)->screens[(scr)]).height)
-#define DisplayWidthMM(dpy, scr)(((dpy)->screens[(scr)]).mwidth)
-#define DisplayHeightMM(dpy, scr)(((dpy)->screens[(scr)]).mheight)
-#define DisplayPlanes(dpy, scr) (((dpy)->screens[(scr)]).root_depth)
-#define DisplayCells(dpy, scr) (DefaultVisual((dpy), (scr))->map_entries)
-#define ScreenCount(dpy) ((dpy)->nscreens)
-#define ServerVendor(dpy) ((dpy)->vendor)
-#define ProtocolVersion(dpy) ((dpy)->proto_major_version)
-#define ProtocolRevision(dpy) ((dpy)->proto_minor_version)
-#define VendorRelease(dpy) ((dpy)->release)
-#define DisplayString(dpy) ((dpy)->display_name)
-#define DefaultDepth(dpy, scr) (((dpy)->screens[(scr)]).root_depth)
-#define DefaultColormap(dpy, scr)(((dpy)->screens[(scr)]).cmap)
-#define BitmapUnit(dpy) ((dpy)->bitmap_unit)
-#define BitmapBitOrder(dpy) ((dpy)->bitmap_bit_order)
-#define BitmapPad(dpy) ((dpy)->bitmap_pad)
-#define ImageByteOrder(dpy) ((dpy)->byte_order)
-#define NextRequest(dpy) ((dpy)->request + 1)
-#define LastKnownRequestProcessed(dpy) ((dpy)->last_request_read)
-
-/* macros for screen oriented applications (toolkit) */
-#define ScreenOfDisplay(dpy, scr)(&((dpy)->screens[(scr)]))
-#define DefaultScreenOfDisplay(dpy) (&((dpy)->screens[(dpy)->default_screen]))
-#define DisplayOfScreen(s) ((s)->display)
-#define RootWindowOfScreen(s) ((s)->root)
-#define BlackPixelOfScreen(s) ((s)->black_pixel)
-#define WhitePixelOfScreen(s) ((s)->white_pixel)
-#define DefaultColormapOfScreen(s)((s)->cmap)
-#define DefaultDepthOfScreen(s) ((s)->root_depth)
-#define DefaultGCOfScreen(s) ((s)->default_gc)
-#define DefaultVisualOfScreen(s)((s)->root_visual)
-#define WidthOfScreen(s) ((s)->width)
-#define HeightOfScreen(s) ((s)->height)
-#define WidthMMOfScreen(s) ((s)->mwidth)
-#define HeightMMOfScreen(s) ((s)->mheight)
-#define PlanesOfScreen(s) ((s)->root_depth)
-#define CellsOfScreen(s) (DefaultVisualOfScreen((s))->map_entries)
-#define MinCmapsOfScreen(s) ((s)->min_maps)
-#define MaxCmapsOfScreen(s) ((s)->max_maps)
-#define DoesSaveUnders(s) ((s)->save_unders)
-#define DoesBackingStore(s) ((s)->backing_store)
-#define EventMaskOfScreen(s) ((s)->root_input_mask)
-
-/*
- * Extensions need a way to hang private data on some structures.
- */
-typedef struct _XExtData {
- int number; /* number returned by XRegisterExtension */
- struct _XExtData *next; /* next item on list of data for structure */
- int (*free_private)(); /* called to free private storage */
- XPointer private_data; /* data private to this extension. */
-} XExtData;
-
-/*
- * This file contains structures used by the extension mechanism.
- */
-typedef struct { /* public to extension, cannot be changed */
- int extension; /* extension number */
- int major_opcode; /* major op-code assigned by server */
- int first_event; /* first event number for the extension */
- int first_error; /* first error number for the extension */
-} XExtCodes;
-
-/*
- * Data structure for retrieving info about pixmap formats.
- */
-
-typedef struct {
- int depth;
- int bits_per_pixel;
- int scanline_pad;
-} XPixmapFormatValues;
-
-
-/*
- * Data structure for setting graphics context.
- */
-typedef struct {
- int function; /* logical operation */
- unsigned long plane_mask;/* plane mask */
- unsigned long foreground;/* foreground pixel */
- unsigned long background;/* background pixel */
- int line_width; /* line width */
- int line_style; /* LineSolid, LineOnOffDash, LineDoubleDash */
- int cap_style; /* CapNotLast, CapButt,
- CapRound, CapProjecting */
- int join_style; /* JoinMiter, JoinRound, JoinBevel */
- int fill_style; /* FillSolid, FillTiled,
- FillStippled, FillOpaeueStippled */
- int fill_rule; /* EvenOddRule, WindingRule */
- int arc_mode; /* ArcChord, ArcPieSlice */
- Pixmap tile; /* tile pixmap for tiling operations */
- Pixmap stipple; /* stipple 1 plane pixmap for stipping */
- int ts_x_origin; /* offset for tile or stipple operations */
- int ts_y_origin;
- Font font; /* default text font for text operations */
- int subwindow_mode; /* ClipByChildren, IncludeInferiors */
- Bool graphics_exposures;/* boolean, should exposures be generated */
- int clip_x_origin; /* origin for clipping */
- int clip_y_origin;
- Pixmap clip_mask; /* bitmap clipping; other calls for rects */
- int dash_offset; /* patterned/dashed line information */
- char dashes;
-} XGCValues;
-
-/*
- * Graphics context. The contents of this structure are implementation
- * dependent. A GC should be treated as opaque by application code.
- */
-
-typedef XGCValues *GC;
-
-/*
- * Visual structure; contains information about colormapping possible.
- */
-typedef struct {
- XExtData *ext_data; /* hook for extension to hang data */
- VisualID visualid; /* visual id of this visual */
-#if defined(__cplusplus) || defined(c_plusplus)
- int c_class; /* C++ class of screen (monochrome, etc.) */
-#else
- int class; /* class of screen (monochrome, etc.) */
-#endif
- unsigned long red_mask, green_mask, blue_mask; /* mask values */
- int bits_per_rgb; /* log base 2 of distinct color values */
- int map_entries; /* color map entries */
-} Visual;
-
-/*
- * Depth structure; contains information for each possible depth.
- */
-typedef struct {
- int depth; /* this depth (Z) of the depth */
- int nvisuals; /* number of Visual types at this depth */
- Visual *visuals; /* list of visuals possible at this depth */
-} Depth;
-
-/*
- * Information about the screen. The contents of this structure are
- * implementation dependent. A Screen should be treated as opaque
- * by application code.
- */
-typedef struct {
- XExtData *ext_data; /* hook for extension to hang data */
- struct _XDisplay *display;/* back pointer to display structure */
- Window root; /* Root window id. */
- int width, height; /* width and height of screen */
- int mwidth, mheight; /* width and height of in millimeters */
- int ndepths; /* number of depths possible */
- Depth *depths; /* list of allowable depths on the screen */
- int root_depth; /* bits per pixel */
- Visual *root_visual; /* root visual */
- GC default_gc; /* GC for the root root visual */
- Colormap cmap; /* default color map */
- unsigned long white_pixel;
- unsigned long black_pixel; /* White and Black pixel values */
- int max_maps, min_maps; /* max and min color maps */
- int backing_store; /* Never, WhenMapped, Always */
- Bool save_unders;
- long root_input_mask; /* initial root input mask */
-} Screen;
-
-/*
- * Format structure; describes ZFormat data the screen will understand.
- */
-typedef struct {
- XExtData *ext_data; /* hook for extension to hang data */
- int depth; /* depth of this image format */
- int bits_per_pixel; /* bits/pixel at this depth */
- int scanline_pad; /* scanline must padded to this multiple */
-} ScreenFormat;
-
-/*
- * Data structure for setting window attributes.
- */
-typedef struct {
- Pixmap background_pixmap; /* background or None or ParentRelative */
- unsigned long background_pixel; /* background pixel */
- Pixmap border_pixmap; /* border of the window */
- unsigned long border_pixel; /* border pixel value */
- int bit_gravity; /* one of bit gravity values */
- int win_gravity; /* one of the window gravity values */
- int backing_store; /* NotUseful, WhenMapped, Always */
- unsigned long backing_planes;/* planes to be preseved if possible */
- unsigned long backing_pixel;/* value to use in restoring planes */
- Bool save_under; /* should bits under be saved? (popups) */
- long event_mask; /* set of events that should be saved */
- long do_not_propagate_mask; /* set of events that should not propagate */
- Bool override_redirect; /* boolean value for override-redirect */
- Colormap colormap; /* color map to be associated with window */
- Cursor cursor; /* cursor to be displayed (or None) */
-} XSetWindowAttributes;
-
-typedef struct {
- int x, y; /* location of window */
- int width, height; /* width and height of window */
- int border_width; /* border width of window */
- int depth; /* depth of window */
- Visual *visual; /* the associated visual structure */
- Window root; /* root of screen containing window */
-#if defined(__cplusplus) || defined(c_plusplus)
- int c_class; /* C++ InputOutput, InputOnly*/
-#else
- int class; /* InputOutput, InputOnly*/
-#endif
- int bit_gravity; /* one of bit gravity values */
- int win_gravity; /* one of the window gravity values */
- int backing_store; /* NotUseful, WhenMapped, Always */
- unsigned long backing_planes;/* planes to be preserved if possible */
- unsigned long backing_pixel;/* value to be used when restoring planes */
- Bool save_under; /* boolean, should bits under be saved? */
- Colormap colormap; /* color map to be associated with window */
- Bool map_installed; /* boolean, is color map currently installed*/
- int map_state; /* IsUnmapped, IsUnviewable, IsViewable */
- long all_event_masks; /* set of events all people have interest in*/
- long your_event_mask; /* my event mask */
- long do_not_propagate_mask; /* set of events that should not propagate */
- Bool override_redirect; /* boolean value for override-redirect */
- Screen *screen; /* back pointer to correct screen */
-} XWindowAttributes;
-
-/*
- * Data structure for host setting; getting routines.
- *
- */
-
-typedef struct {
- int family; /* for example FamilyInternet */
- int length; /* length of address, in bytes */
- char *address; /* pointer to where to find the bytes */
-} XHostAddress;
-
-/*
- * Data structure for "image" data, used by image manipulation routines.
- */
-typedef struct _XImage {
- int width, height; /* size of image */
- int xoffset; /* number of pixels offset in X direction */
- int format; /* XYBitmap, XYPixmap, ZPixmap */
- char *data; /* pointer to image data */
- int byte_order; /* data byte order, LSBFirst, MSBFirst */
- int bitmap_unit; /* quant. of scanline 8, 16, 32 */
- int bitmap_bit_order; /* LSBFirst, MSBFirst */
- int bitmap_pad; /* 8, 16, 32 either XY or ZPixmap */
- int depth; /* depth of image */
- int bytes_per_line; /* accelarator to next line */
- int bits_per_pixel; /* bits per pixel (ZPixmap) */
- unsigned long red_mask; /* bits in z arrangment */
- unsigned long green_mask;
- unsigned long blue_mask;
- XPointer obdata; /* hook for the object routines to hang on */
- struct funcs { /* image manipulation routines */
- struct _XImage *(*create_image)();
-#if NeedFunctionPrototypes
- int (*destroy_image) (struct _XImage *);
- unsigned long (*get_pixel) (struct _XImage *, int, int);
- int (*put_pixel) (struct _XImage *, int, int, unsigned long);
- struct _XImage *(*sub_image)(struct _XImage *, int, int, unsigned int, unsigned int);
- int (*add_pixel) (struct _XImage *, long);
-#else
- int (*destroy_image)();
- unsigned long (*get_pixel)();
- int (*put_pixel)();
- struct _XImage *(*sub_image)();
- int (*add_pixel)();
-#endif
- } f;
-} XImage;
-
-/*
- * Data structure for XReconfigureWindow
- */
-typedef struct {
- int x, y;
- int width, height;
- int border_width;
- Window sibling;
- int stack_mode;
-} XWindowChanges;
-
-/*
- * Data structure used by color operations
- */
-typedef struct {
- unsigned long pixel;
- unsigned short red, green, blue;
- char flags; /* do_red, do_green, do_blue */
- char pad;
-} XColor;
-
-/*
- * Data structures for graphics operations. On most machines, these are
- * congruent with the wire protocol structures, so reformatting the data
- * can be avoided on these architectures.
- */
-typedef struct {
- short x1, y1, x2, y2;
-} XSegment;
-
-typedef struct {
- short x, y;
-} XPoint;
-
-typedef struct {
- short x, y;
- unsigned short width, height;
-} XRectangle;
-
-typedef struct {
- short x, y;
- unsigned short width, height;
- short angle1, angle2;
-} XArc;
-
-
-/* Data structure for XChangeKeyboardControl */
-
-typedef struct {
- int key_click_percent;
- int bell_percent;
- int bell_pitch;
- int bell_duration;
- int led;
- int led_mode;
- int key;
- int auto_repeat_mode; /* On, Off, Default */
-} XKeyboardControl;
-
-/* Data structure for XGetKeyboardControl */
-
-typedef struct {
- int key_click_percent;
- int bell_percent;
- unsigned int bell_pitch, bell_duration;
- unsigned long led_mask;
- int global_auto_repeat;
- char auto_repeats[32];
-} XKeyboardState;
-
-/* Data structure for XGetMotionEvents. */
-
-typedef struct {
- Time time;
- short x, y;
-} XTimeCoord;
-
-/* Data structure for X{Set,Get}ModifierMapping */
-
-typedef struct {
- int max_keypermod; /* The server's max # of keys per modifier */
- KeyCode *modifiermap; /* An 8 by max_keypermod array of modifiers */
-} XModifierKeymap;
-
-
-/*
- * Display datatype maintaining display specific data.
- * The contents of this structure are implementation dependent.
- * A Display should be treated as opaque by application code.
- */
-typedef struct _XDisplay {
- XExtData *ext_data; /* hook for extension to hang data */
- struct _XFreeFuncs *free_funcs; /* internal free functions */
- int fd; /* Network socket. */
- int conn_checker; /* ugly thing used by _XEventsQueued */
- int proto_major_version;/* maj. version of server's X protocol */
- int proto_minor_version;/* minor version of servers X protocol */
- char *vendor; /* vendor of the server hardware */
- XID resource_base; /* resource ID base */
- XID resource_mask; /* resource ID mask bits */
- XID resource_id; /* allocator current ID */
- int resource_shift; /* allocator shift to correct bits */
- XID (*resource_alloc)(); /* allocator function */
- int byte_order; /* screen byte order, LSBFirst, MSBFirst */
- int bitmap_unit; /* padding and data requirements */
- int bitmap_pad; /* padding requirements on bitmaps */
- int bitmap_bit_order; /* LeastSignificant or MostSignificant */
- int nformats; /* number of pixmap formats in list */
- ScreenFormat *pixmap_format; /* pixmap format list */
- int vnumber; /* Xlib's X protocol version number. */
- int release; /* release of the server */
- struct _XSQEvent *head, *tail; /* Input event queue. */
- int qlen; /* Length of input event queue */
- unsigned long last_request_read; /* seq number of last event read */
- unsigned long request; /* sequence number of last request. */
- char *last_req; /* beginning of last request, or dummy */
- char *buffer; /* Output buffer starting address. */
- char *bufptr; /* Output buffer index pointer. */
- char *bufmax; /* Output buffer maximum+1 address. */
- unsigned max_request_size; /* maximum number 32 bit words in request*/
- struct _XrmHashBucketRec *db;
- int (*synchandler)(); /* Synchronization handler */
- char *display_name; /* "host:display" string used on this connect*/
- int default_screen; /* default screen for operations */
- int nscreens; /* number of screens on this server*/
- Screen *screens; /* pointer to list of screens */
- unsigned long motion_buffer; /* size of motion buffer */
- unsigned long flags; /* internal connection flags */
- int min_keycode; /* minimum defined keycode */
- int max_keycode; /* maximum defined keycode */
- KeySym *keysyms; /* This server's keysyms */
- XModifierKeymap *modifiermap; /* This server's modifier keymap */
- int keysyms_per_keycode;/* number of rows */
- char *xdefaults; /* contents of defaults from server */
- char *scratch_buffer; /* place to hang scratch buffer */
- unsigned long scratch_length; /* length of scratch buffer */
- int ext_number; /* extension number on this display */
- struct _XExten *ext_procs; /* extensions initialized on this display */
- /*
- * the following can be fixed size, as the protocol defines how
- * much address space is available.
- * While this could be done using the extension vector, there
- * may be MANY events processed, so a search through the extension
- * list to find the right procedure for each event might be
- * expensive if many extensions are being used.
- */
- Bool (*event_vec[128])(); /* vector for wire to event */
- int (*wire_vec[128])(); /* vector for event to wire */
- KeySym lock_meaning; /* for XLookupString */
- struct _XLockInfo *lock; /* multi-thread state, display lock */
- struct _XInternalAsync *async_handlers; /* for internal async */
- unsigned long bigreq_size; /* max size of big requests */
- struct _XLockPtrs *lock_fns; /* pointers to threads functions */
- /* things above this line should not move, for binary compatibility */
- struct _XKeytrans *key_bindings; /* for XLookupString */
- Font cursor_font; /* for XCreateFontCursor */
- struct _XDisplayAtoms *atoms; /* for XInternAtom */
- unsigned int mode_switch; /* keyboard group modifiers */
- struct _XContextDB *context_db; /* context database */
- Bool (**error_vec)(); /* vector for wire to error */
- /*
- * Xcms information
- */
- struct {
- XPointer defaultCCCs; /* pointer to an array of default XcmsCCC */
- XPointer clientCmaps; /* pointer to linked list of XcmsCmapRec */
- XPointer perVisualIntensityMaps;
- /* linked list of XcmsIntensityMap */
- } cms;
- struct _XIMFilter *im_filters;
- struct _XSQEvent *qfree; /* unallocated event queue elements */
- unsigned long next_event_serial_num; /* inserted into next queue elt */
- int (*savedsynchandler)(); /* user synchandler when Xlib usurps */
-} Display;
-
-#if NeedFunctionPrototypes /* prototypes require event type definitions */
-#undef _XEVENT_
-#endif
-#ifndef _XEVENT_
-
-#define XMaxTransChars 4
-
-/*
- * Definitions of specific events.
- */
-typedef struct {
- int type; /* of event */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* "event" window it is reported relative to */
- Window root; /* root window that the event occured on */
- Window subwindow; /* child window */
- Time time; /* milliseconds */
- int x, y; /* pointer x, y coordinates in event window */
- int x_root, y_root; /* coordinates relative to root */
- unsigned int state; /* key or button mask */
- unsigned int keycode; /* detail */
- Bool same_screen; /* same screen flag */
- char trans_chars[XMaxTransChars];
- /* translated characters */
- int nbytes;
-} XKeyEvent;
-typedef XKeyEvent XKeyPressedEvent;
-typedef XKeyEvent XKeyReleasedEvent;
-
-typedef struct {
- int type; /* of event */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* "event" window it is reported relative to */
- Window root; /* root window that the event occured on */
- Window subwindow; /* child window */
- Time time; /* milliseconds */
- int x, y; /* pointer x, y coordinates in event window */
- int x_root, y_root; /* coordinates relative to root */
- unsigned int state; /* key or button mask */
- unsigned int button; /* detail */
- Bool same_screen; /* same screen flag */
-} XButtonEvent;
-typedef XButtonEvent XButtonPressedEvent;
-typedef XButtonEvent XButtonReleasedEvent;
-
-typedef struct {
- int type; /* of event */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* "event" window reported relative to */
- Window root; /* root window that the event occured on */
- Window subwindow; /* child window */
- Time time; /* milliseconds */
- int x, y; /* pointer x, y coordinates in event window */
- int x_root, y_root; /* coordinates relative to root */
- unsigned int state; /* key or button mask */
- char is_hint; /* detail */
- Bool same_screen; /* same screen flag */
-} XMotionEvent;
-typedef XMotionEvent XPointerMovedEvent;
-
-typedef struct {
- int type; /* of event */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* "event" window reported relative to */
- Window root; /* root window that the event occured on */
- Window subwindow; /* child window */
- Time time; /* milliseconds */
- int x, y; /* pointer x, y coordinates in event window */
- int x_root, y_root; /* coordinates relative to root */
- int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */
- int detail;
- /*
- * NotifyAncestor, NotifyVirtual, NotifyInferior,
- * NotifyNonlinear,NotifyNonlinearVirtual
- */
- Bool same_screen; /* same screen flag */
- Bool focus; /* boolean focus */
- unsigned int state; /* key or button mask */
-} XCrossingEvent;
-typedef XCrossingEvent XEnterWindowEvent;
-typedef XCrossingEvent XLeaveWindowEvent;
-
-typedef struct {
- int type; /* FocusIn or FocusOut */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* window of event */
- int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */
- int detail;
- /*
- * NotifyAncestor, NotifyVirtual, NotifyInferior,
- * NotifyNonlinear,NotifyNonlinearVirtual, NotifyPointer,
- * NotifyPointerRoot, NotifyDetailNone
- */
-} XFocusChangeEvent;
-typedef XFocusChangeEvent XFocusInEvent;
-typedef XFocusChangeEvent XFocusOutEvent;
-
-/* generated on EnterWindow and FocusIn when KeyMapState selected */
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- char key_vector[32];
-} XKeymapEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- int x, y;
- int width, height;
- int count; /* if non-zero, at least this many more */
-} XExposeEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Drawable drawable;
- int x, y;
- int width, height;
- int count; /* if non-zero, at least this many more */
- int major_code; /* core is CopyArea or CopyPlane */
- int minor_code; /* not defined in the core */
-} XGraphicsExposeEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Drawable drawable;
- int major_code; /* core is CopyArea or CopyPlane */
- int minor_code; /* not defined in the core */
-} XNoExposeEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- int state; /* Visibility state */
-} XVisibilityEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window parent; /* parent of the window */
- Window window; /* window id of window created */
- int x, y; /* window location */
- int width, height; /* size of window */
- int border_width; /* border width */
- Bool override_redirect; /* creation should be overridden */
-} XCreateWindowEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
-} XDestroyWindowEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
- Bool from_configure;
-} XUnmapEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
- Bool override_redirect; /* boolean, is override set... */
-} XMapEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window parent;
- Window window;
-} XMapRequestEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
- Window parent;
- int x, y;
- Bool override_redirect;
-} XReparentEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
- int x, y;
- int width, height;
- int border_width;
- Window above;
- Bool override_redirect;
-} XConfigureEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
- int x, y;
-} XGravityEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- int width, height;
-} XResizeRequestEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window parent;
- Window window;
- int x, y;
- int width, height;
- int border_width;
- Window above;
- int detail; /* Above, Below, TopIf, BottomIf, Opposite */
- unsigned long value_mask;
-} XConfigureRequestEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
- int place; /* PlaceOnTop, PlaceOnBottom */
-} XCirculateEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window parent;
- Window window;
- int place; /* PlaceOnTop, PlaceOnBottom */
-} XCirculateRequestEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- Atom atom;
- Time time;
- int state; /* NewValue, Deleted */
-} XPropertyEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- Atom selection;
- Time time;
-} XSelectionClearEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window owner;
- Window requestor;
- Atom selection;
- Atom target;
- Atom property;
- Time time;
-} XSelectionRequestEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window requestor;
- Atom selection;
- Atom target;
- Atom property; /* ATOM or None */
- Time time;
-} XSelectionEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- Colormap colormap; /* COLORMAP or None */
-#if defined(__cplusplus) || defined(c_plusplus)
- Bool c_new; /* C++ */
-#else
- Bool new;
-#endif
- int state; /* ColormapInstalled, ColormapUninstalled */
-} XColormapEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- Atom message_type;
- int format;
- union {
- char b[20];
- short s[10];
- long l[5];
- } data;
-} XClientMessageEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* unused */
- int request; /* one of MappingModifier, MappingKeyboard,
- MappingPointer */
- int first_keycode; /* first keycode */
- int count; /* defines range of change w. first_keycode*/
-} XMappingEvent;
-
-typedef struct {
- int type;
- Display *display; /* Display the event was read from */
- XID resourceid; /* resource id */
- unsigned long serial; /* serial number of failed request */
- unsigned char error_code; /* error code of failed request */
- unsigned char request_code; /* Major op-code of failed request */
- unsigned char minor_code; /* Minor op-code of failed request */
-} XErrorEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display;/* Display the event was read from */
- Window window; /* window on which event was requested in event mask */
-} XAnyEvent;
-
-/*
- * this union is defined so Xlib can always use the same sized
- * event structure internally, to avoid memory fragmentation.
- */
-typedef union _XEvent {
- int type; /* must not be changed; first element */
- XAnyEvent xany;
- XKeyEvent xkey;
- XButtonEvent xbutton;
- XMotionEvent xmotion;
- XCrossingEvent xcrossing;
- XFocusChangeEvent xfocus;
- XExposeEvent xexpose;
- XGraphicsExposeEvent xgraphicsexpose;
- XNoExposeEvent xnoexpose;
- XVisibilityEvent xvisibility;
- XCreateWindowEvent xcreatewindow;
- XDestroyWindowEvent xdestroywindow;
- XUnmapEvent xunmap;
- XMapEvent xmap;
- XMapRequestEvent xmaprequest;
- XReparentEvent xreparent;
- XConfigureEvent xconfigure;
- XGravityEvent xgravity;
- XResizeRequestEvent xresizerequest;
- XConfigureRequestEvent xconfigurerequest;
- XCirculateEvent xcirculate;
- XCirculateRequestEvent xcirculaterequest;
- XPropertyEvent xproperty;
- XSelectionClearEvent xselectionclear;
- XSelectionRequestEvent xselectionrequest;
- XSelectionEvent xselection;
- XColormapEvent xcolormap;
- XClientMessageEvent xclient;
- XMappingEvent xmapping;
- XErrorEvent xerror;
- XKeymapEvent xkeymap;
- long pad[24];
-} XEvent;
-#endif
-
-#define XAllocID(dpy) ((*(dpy)->resource_alloc)((dpy)))
-
-/*
- * per character font metric information.
- */
-typedef struct {
- short lbearing; /* origin to left edge of raster */
- short rbearing; /* origin to right edge of raster */
- short width; /* advance to next char's origin */
- short ascent; /* baseline to top edge of raster */
- short descent; /* baseline to bottom edge of raster */
- unsigned short attributes; /* per char flags (not predefined) */
-} XCharStruct;
-
-/*
- * To allow arbitrary information with fonts, there are additional properties
- * returned.
- */
-typedef struct {
- Atom name;
- unsigned long card32;
-} XFontProp;
-
-typedef struct {
- XExtData *ext_data; /* hook for extension to hang data */
- Font fid; /* Font id for this font */
- unsigned direction; /* hint about direction the font is painted */
- unsigned min_char_or_byte2;/* first character */
- unsigned max_char_or_byte2;/* last character */
- unsigned min_byte1; /* first row that exists */
- unsigned max_byte1; /* last row that exists */
- Bool all_chars_exist;/* flag if all characters have non-zero size*/
- unsigned default_char; /* char to print for undefined character */
- int n_properties; /* how many properties there are */
- XFontProp *properties; /* pointer to array of additional properties*/
- XCharStruct min_bounds; /* minimum bounds over all existing char*/
- XCharStruct max_bounds; /* maximum bounds over all existing char*/
- XCharStruct *per_char; /* first_char to last_char information */
- int ascent; /* log. extent above baseline for spacing */
- int descent; /* log. descent below baseline for spacing */
-} XFontStruct;
-
-/*
- * PolyText routines take these as arguments.
- */
-typedef struct {
- char *chars; /* pointer to string */
- int nchars; /* number of characters */
- int delta; /* delta between strings */
- Font font; /* font to print it in, None don't change */
-} XTextItem;
-
-typedef struct { /* normal 16 bit characters are two bytes */
- unsigned char byte1;
- unsigned char byte2;
-} XChar2b;
-
-typedef struct {
- XChar2b *chars; /* two byte characters */
- int nchars; /* number of characters */
- int delta; /* delta between strings */
- Font font; /* font to print it in, None don't change */
-} XTextItem16;
-
-
-typedef union { Display *display;
- GC gc;
- Visual *visual;
- Screen *screen;
- ScreenFormat *pixmap_format;
- XFontStruct *font; } XEDataObject;
-
-typedef struct {
- XRectangle max_ink_extent;
- XRectangle max_logical_extent;
-} XFontSetExtents;
-
-typedef struct _XFontSet *XFontSet;
-
-typedef struct {
- char *chars;
- int nchars;
- int delta;
- XFontSet font_set;
-} XmbTextItem;
-
-typedef struct {
- wchar_t *chars;
- int nchars;
- int delta;
- XFontSet font_set;
-} XwcTextItem;
-
-typedef void (*XIMProc)();
-
-typedef struct _XIM *XIM;
-typedef struct _XIC *XIC;
-
-typedef unsigned long XIMStyle;
-
-typedef struct {
- unsigned short count_styles;
- XIMStyle *supported_styles;
-} XIMStyles;
-
-#define XIMPreeditArea 0x0001L
-#define XIMPreeditCallbacks 0x0002L
-#define XIMPreeditPosition 0x0004L
-#define XIMPreeditNothing 0x0008L
-#define XIMPreeditNone 0x0010L
-#define XIMStatusArea 0x0100L
-#define XIMStatusCallbacks 0x0200L
-#define XIMStatusNothing 0x0400L
-#define XIMStatusNone 0x0800L
-
-#define XNVaNestedList "XNVaNestedList"
-#define XNClientWindow "clientWindow"
-#define XNInputStyle "inputStyle"
-#define XNFocusWindow "focusWindow"
-#define XNResourceName "resourceName"
-#define XNResourceClass "resourceClass"
-#define XNGeometryCallback "geometryCallback"
-#define XNFilterEvents "filterEvents"
-#define XNPreeditStartCallback "preeditStartCallback"
-#define XNPreeditDoneCallback "preeditDoneCallback"
-#define XNPreeditDrawCallback "preeditDrawCallback"
-#define XNPreeditCaretCallback "preeditCaretCallback"
-#define XNPreeditAttributes "preeditAttributes"
-#define XNStatusStartCallback "statusStartCallback"
-#define XNStatusDoneCallback "statusDoneCallback"
-#define XNStatusDrawCallback "statusDrawCallback"
-#define XNStatusAttributes "statusAttributes"
-#define XNArea "area"
-#define XNAreaNeeded "areaNeeded"
-#define XNSpotLocation "spotLocation"
-#define XNColormap "colorMap"
-#define XNStdColormap "stdColorMap"
-#define XNForeground "foreground"
-#define XNBackground "background"
-#define XNBackgroundPixmap "backgroundPixmap"
-#define XNFontSet "fontSet"
-#define XNLineSpace "lineSpace"
-#define XNCursor "cursor"
-
-#define XBufferOverflow -1
-#define XLookupNone 1
-#define XLookupChars 2
-#define XLookupKeySym 3
-#define XLookupBoth 4
-
-#if NeedFunctionPrototypes
-typedef void *XVaNestedList;
-#else
-typedef XPointer XVaNestedList;
-#endif
-
-typedef struct {
- XPointer client_data;
- XIMProc callback;
-} XIMCallback;
-
-typedef unsigned long XIMFeedback;
-
-#define XIMReverse 1
-#define XIMUnderline (1<<1)
-#define XIMHighlight (1<<2)
-#define XIMPrimary (1<<5)
-#define XIMSecondary (1<<6)
-#define XIMTertiary (1<<7)
-
-typedef struct _XIMText {
- unsigned short length;
- XIMFeedback *feedback;
- Bool encoding_is_wchar;
- union {
- char *multi_byte;
- wchar_t *wide_char;
- } string;
-} XIMText;
-
-typedef struct _XIMPreeditDrawCallbackStruct {
- int caret; /* Cursor offset within pre-edit string */
- int chg_first; /* Starting change position */
- int chg_length; /* Length of the change in character count */
- XIMText *text;
-} XIMPreeditDrawCallbackStruct;
-
-typedef enum {
- XIMForwardChar, XIMBackwardChar,
- XIMForwardWord, XIMBackwardWord,
- XIMCaretUp, XIMCaretDown,
- XIMNextLine, XIMPreviousLine,
- XIMLineStart, XIMLineEnd,
- XIMAbsolutePosition,
- XIMDontChange
-} XIMCaretDirection;
-
-typedef enum {
- XIMIsInvisible, /* Disable caret feedback */
- XIMIsPrimary, /* UI defined caret feedback */
- XIMIsSecondary /* UI defined caret feedback */
-} XIMCaretStyle;
-
-typedef struct _XIMPreeditCaretCallbackStruct {
- int position; /* Caret offset within pre-edit string */
- XIMCaretDirection direction; /* Caret moves direction */
- XIMCaretStyle style; /* Feedback of the caret */
-} XIMPreeditCaretCallbackStruct;
-
-typedef enum {
- XIMTextType,
- XIMBitmapType
-} XIMStatusDataType;
-
-typedef struct _XIMStatusDrawCallbackStruct {
- XIMStatusDataType type;
- union {
- XIMText *text;
- Pixmap bitmap;
- } data;
-} XIMStatusDrawCallbackStruct;
-
-typedef int (*XErrorHandler) ( /* WARNING, this type not in Xlib spec */
-#if NeedFunctionPrototypes
- Display* /* display */,
- XErrorEvent* /* error_event */
-#endif
-);
-
-_XFUNCPROTOBEGIN
-
-
-
-#include "pTk/tkIntXlibDecls.h"
-
-_XFUNCPROTOEND
-
-#if defined(MAC_TCL) || defined(MAC_OSX_TK)
-# undef Cursor
-#endif
-
-#endif /* _XLIB_H_ */
diff --git a/Master/tlpkg/tlperl/lib/Tk/X11/Xutil.h b/Master/tlpkg/tlperl/lib/Tk/X11/Xutil.h
deleted file mode 100644
index af44e0e9c2e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/X11/Xutil.h
+++ /dev/null
@@ -1,855 +0,0 @@
-/* $XConsortium: Xutil.h,v 11.73 91/07/30 16:21:37 rws Exp $ */
-
-/***********************************************************
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
-and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Digital or MIT not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifndef _XUTIL_H_
-#define _XUTIL_H_
-
-/* You must include <X11/Xlib.h> before including this file */
-
-#if defined(MAC_TCL) || defined(MAC_OSX_TK)
-# define Region XRegion
-#endif
-
-/*
- * Bitmask returned by XParseGeometry(). Each bit tells if the corresponding
- * value (x, y, width, height) was found in the parsed string.
- */
-#define NoValue 0x0000
-#define XValue 0x0001
-#define YValue 0x0002
-#define WidthValue 0x0004
-#define HeightValue 0x0008
-#define AllValues 0x000F
-#define XNegative 0x0010
-#define YNegative 0x0020
-
-/*
- * new version containing base_width, base_height, and win_gravity fields;
- * used with WM_NORMAL_HINTS.
- */
-typedef struct {
- long flags; /* marks which fields in this structure are defined */
- int x, y; /* obsolete for new window mgrs, but clients */
- int width, height; /* should set so old wm's don't mess up */
- int min_width, min_height;
- int max_width, max_height;
- int width_inc, height_inc;
- struct {
- int x; /* numerator */
- int y; /* denominator */
- } min_aspect, max_aspect;
- int base_width, base_height; /* added by ICCCM version 1 */
- int win_gravity; /* added by ICCCM version 1 */
-} XSizeHints;
-
-/*
- * The next block of definitions are for window manager properties that
- * clients and applications use for communication.
- */
-
-/* flags argument in size hints */
-#define USPosition (1L << 0) /* user specified x, y */
-#define USSize (1L << 1) /* user specified width, height */
-
-#define PPosition (1L << 2) /* program specified position */
-#define PSize (1L << 3) /* program specified size */
-#define PMinSize (1L << 4) /* program specified minimum size */
-#define PMaxSize (1L << 5) /* program specified maximum size */
-#define PResizeInc (1L << 6) /* program specified resize increments */
-#define PAspect (1L << 7) /* program specified min and max aspect ratios */
-#define PBaseSize (1L << 8) /* program specified base for incrementing */
-#define PWinGravity (1L << 9) /* program specified window gravity */
-
-/* obsolete */
-#define PAllHints (PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect)
-
-
-
-typedef struct {
- long flags; /* marks which fields in this structure are defined */
- Bool input; /* does this application rely on the window manager to
- get keyboard input? */
- int initial_state; /* see below */
- Pixmap icon_pixmap; /* pixmap to be used as icon */
- Window icon_window; /* window to be used as icon */
- int icon_x, icon_y; /* initial position of icon */
- Pixmap icon_mask; /* icon mask bitmap */
- XID window_group; /* id of related window group */
- /* this structure may be extended in the future */
-} XWMHints;
-
-/* definition for flags of XWMHints */
-
-#define InputHint (1L << 0)
-#define StateHint (1L << 1)
-#define IconPixmapHint (1L << 2)
-#define IconWindowHint (1L << 3)
-#define IconPositionHint (1L << 4)
-#define IconMaskHint (1L << 5)
-#define WindowGroupHint (1L << 6)
-#define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint| \
-IconPositionHint|IconMaskHint|WindowGroupHint)
-
-/* definitions for initial window state */
-#define WithdrawnState 0 /* for windows that are not mapped */
-#define NormalState 1 /* most applications want to start this way */
-#define IconicState 3 /* application wants to start as an icon */
-
-/*
- * Obsolete states no longer defined by ICCCM
- */
-#define DontCareState 0 /* don't know or care */
-#define ZoomState 2 /* application wants to start zoomed */
-#define InactiveState 4 /* application believes it is seldom used; */
- /* some wm's may put it on inactive menu */
-
-
-/*
- * new structure for manipulating TEXT properties; used with WM_NAME,
- * WM_ICON_NAME, WM_CLIENT_MACHINE, and WM_COMMAND.
- */
-typedef struct {
- unsigned char *value; /* same as Property routines */
- Atom encoding; /* prop type */
- int format; /* prop data format: 8, 16, or 32 */
- unsigned long nitems; /* number of data items in value */
-} XTextProperty;
-
-#define XNoMemory -1
-#define XLocaleNotSupported -2
-#define XConverterNotFound -3
-
-typedef enum {
- XStringStyle, /* STRING */
- XCompoundTextStyle, /* COMPOUND_TEXT */
- XTextStyle, /* text in owner's encoding (current locale)*/
- XStdICCTextStyle /* STRING, else COMPOUND_TEXT */
-} XICCEncodingStyle;
-
-typedef struct {
- int min_width, min_height;
- int max_width, max_height;
- int width_inc, height_inc;
-} XIconSize;
-
-typedef struct {
- char *res_name;
- char *res_class;
-} XClassHint;
-
-/*
- * These macros are used to give some sugar to the image routines so that
- * naive people are more comfortable with them.
- */
-#define XDestroyImage(ximage) \
- ((*((ximage)->f.destroy_image))((ximage)))
-#define XGetPixel(ximage, x, y) \
- ((*((ximage)->f.get_pixel))((ximage), (x), (y)))
-#define XPutPixel(ximage, x, y, pixel) \
- ((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel)))
-#define XSubImage(ximage, x, y, width, height) \
- ((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height)))
-#define XAddPixel(ximage, value) \
- ((*((ximage)->f.add_pixel))((ximage), (value)))
-
-/*
- * Compose sequence status structure, used in calling XLookupString.
- */
-typedef struct _XComposeStatus {
- XPointer compose_ptr; /* state table pointer */
- int chars_matched; /* match state */
-} XComposeStatus;
-
-/*
- * Keysym macros, used on Keysyms to test for classes of symbols
- */
-#define IsKeypadKey(keysym) \
- (((unsigned)(keysym) >= XK_KP_Space) && ((unsigned)(keysym) <= XK_KP_Equal))
-
-#define IsCursorKey(keysym) \
- (((unsigned)(keysym) >= XK_Home) && ((unsigned)(keysym) < XK_Select))
-
-#define IsPFKey(keysym) \
- (((unsigned)(keysym) >= XK_KP_F1) && ((unsigned)(keysym) <= XK_KP_F4))
-
-#define IsFunctionKey(keysym) \
- (((unsigned)(keysym) >= XK_F1) && ((unsigned)(keysym) <= XK_F35))
-
-#define IsMiscFunctionKey(keysym) \
- (((unsigned)(keysym) >= XK_Select) && ((unsigned)(keysym) <= XK_Break))
-
-#define IsModifierKey(keysym) \
- ((((unsigned)(keysym) >= XK_Shift_L) && ((unsigned)(keysym) <= XK_Hyper_R)) \
- || ((unsigned)(keysym) == XK_Mode_switch) \
- || ((unsigned)(keysym) == XK_Num_Lock))
-/*
- * opaque reference to Region data type
- */
-typedef struct _XRegion *Region;
-
-/* Return values from XRectInRegion() */
-
-#define RectangleOut 0
-#define RectangleIn 1
-#define RectanglePart 2
-
-
-/*
- * Information used by the visual utility routines to find desired visual
- * type from the many visuals a display may support.
- */
-
-typedef struct {
- Visual *visual;
- VisualID visualid;
- int screen;
- int depth;
-#if defined(__cplusplus) || defined(c_plusplus)
- int c_class; /* C++ */
-#else
- int class;
-#endif
- unsigned long red_mask;
- unsigned long green_mask;
- unsigned long blue_mask;
- int colormap_size;
- int bits_per_rgb;
-} XVisualInfo;
-
-#define VisualNoMask 0x0
-#define VisualIDMask 0x1
-#define VisualScreenMask 0x2
-#define VisualDepthMask 0x4
-#define VisualClassMask 0x8
-#define VisualRedMaskMask 0x10
-#define VisualGreenMaskMask 0x20
-#define VisualBlueMaskMask 0x40
-#define VisualColormapSizeMask 0x80
-#define VisualBitsPerRGBMask 0x100
-#define VisualAllMask 0x1FF
-
-/*
- * This defines a window manager property that clients may use to
- * share standard color maps of type RGB_COLOR_MAP:
- */
-typedef struct {
- Colormap colormap;
- unsigned long red_max;
- unsigned long red_mult;
- unsigned long green_max;
- unsigned long green_mult;
- unsigned long blue_max;
- unsigned long blue_mult;
- unsigned long base_pixel;
- VisualID visualid; /* added by ICCCM version 1 */
- XID killid; /* added by ICCCM version 1 */
-} XStandardColormap;
-
-#define ReleaseByFreeingColormap ((XID) 1L) /* for killid field above */
-
-
-/*
- * return codes for XReadBitmapFile and XWriteBitmapFile
- */
-#define BitmapSuccess 0
-#define BitmapOpenFailed 1
-#define BitmapFileInvalid 2
-#define BitmapNoMemory 3
-
-/****************************************************************
- *
- * Context Management
- *
- ****************************************************************/
-
-
-/* Associative lookup table return codes */
-
-#define XCSUCCESS 0 /* No error. */
-#define XCNOMEM 1 /* Out of memory */
-#define XCNOENT 2 /* No entry in table */
-
-typedef int XContext;
-
-#define XUniqueContext() ((XContext) XrmUniqueQuark())
-#define XStringToContext(string) ((XContext) XrmStringToQuark(string))
-
-_XFUNCPROTOBEGIN
-
-/* The following declarations are alphabetized. */
-
-extern XClassHint *XAllocClassHint (
-#if NeedFunctionPrototypes
- void
-#endif
-);
-
-extern XIconSize *XAllocIconSize (
-#if NeedFunctionPrototypes
- void
-#endif
-);
-
-extern XSizeHints *XAllocSizeHints (
-#if NeedFunctionPrototypes
- void
-#endif
-);
-
-extern XStandardColormap *XAllocStandardColormap (
-#if NeedFunctionPrototypes
- void
-#endif
-);
-
-extern XWMHints *XAllocWMHints (
-#if NeedFunctionPrototypes
- void
-#endif
-);
-
-extern void XClipBox(
-#if NeedFunctionPrototypes
- Region /* r */,
- XRectangle* /* rect_return */
-#endif
-);
-
-extern Region XCreateRegion(
-#if NeedFunctionPrototypes
- void
-#endif
-);
-
-extern char *XDefaultString(
-#if NeedFunctionPrototypes
- void
-#endif
-);
-
-extern int XDeleteContext(
-#if NeedFunctionPrototypes
- Display* /* display */,
- XID /* rid */,
- XContext /* context */
-#endif
-);
-
-extern void XDestroyRegion(
-#if NeedFunctionPrototypes
- Region /* r */
-#endif
-);
-
-extern void XEmptyRegion(
-#if NeedFunctionPrototypes
- Region /* r */
-#endif
-);
-
-extern void XEqualRegion(
-#if NeedFunctionPrototypes
- Region /* r1 */,
- Region /* r2 */
-#endif
-);
-
-extern int XFindContext(
-#if NeedFunctionPrototypes
- Display* /* display */,
- XID /* rid */,
- XContext /* context */,
- XPointer* /* data_return */
-#endif
-);
-
-extern int XGetClassHint(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XClassHint* /* class_hints_return */
-#endif
-);
-
-extern int XGetIconSizes(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XIconSize** /* size_list_return */,
- int* /* count_return */
-#endif
-);
-
-extern int XGetNormalHints(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints_return */
-#endif
-);
-
-extern int XGetRGBColormaps(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XStandardColormap** /* stdcmap_return */,
- int* /* count_return */,
- Atom /* property */
-#endif
-);
-
-extern int XGetSizeHints(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints_return */,
- Atom /* property */
-#endif
-);
-
-extern int XGetStandardColormap(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XStandardColormap* /* colormap_return */,
- Atom /* property */
-#endif
-);
-
-extern int XGetTextProperty(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* window */,
- XTextProperty* /* text_prop_return */,
- Atom /* property */
-#endif
-);
-
-
-extern int XGetWMClientMachine(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* text_prop_return */
-#endif
-);
-
-extern XWMHints *XGetWMHints(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */
-#endif
-);
-
-extern int XGetWMIconName(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* text_prop_return */
-#endif
-);
-
-extern int XGetWMName(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* text_prop_return */
-#endif
-);
-
-extern int XGetWMNormalHints(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints_return */,
- long* /* supplied_return */
-#endif
-);
-
-extern int XGetWMSizeHints(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints_return */,
- long* /* supplied_return */,
- Atom /* property */
-#endif
-);
-
-extern int XGetZoomHints(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* zhints_return */
-#endif
-);
-
-extern void XIntersectRegion(
-#if NeedFunctionPrototypes
- Region /* sra */,
- Region /* srb */,
- Region /* dr_return */
-#endif
-);
-
-extern int XLookupString(
-#if NeedFunctionPrototypes
- XKeyEvent* /* event_struct */,
- char* /* buffer_return */,
- int /* bytes_buffer */,
- KeySym* /* keysym_return */,
- XComposeStatus* /* status_in_out */
-#endif
-);
-
-extern int XMatchVisualInfo(
-#if NeedFunctionPrototypes
- Display* /* display */,
- int /* screen */,
- int /* depth */,
- int /* class */,
- XVisualInfo* /* vinfo_return */
-#endif
-);
-
-extern void XOffsetRegion(
-#if NeedFunctionPrototypes
- Region /* r */,
- int /* dx */,
- int /* dy */
-#endif
-);
-
-extern Bool XPointInRegion(
-#if NeedFunctionPrototypes
- Region /* r */,
- int /* x */,
- int /* y */
-#endif
-);
-
-extern Region XPolygonRegion(
-#if NeedFunctionPrototypes
- XPoint* /* points */,
- int /* n */,
- int /* fill_rule */
-#endif
-);
-
-extern int XRectInRegion(
-#if NeedFunctionPrototypes
- Region /* r */,
- int /* x */,
- int /* y */,
- unsigned int /* width */,
- unsigned int /* height */
-#endif
-);
-
-extern int XSaveContext(
-#if NeedFunctionPrototypes
- Display* /* display */,
- XID /* rid */,
- XContext /* context */,
- _Xconst char* /* data */
-#endif
-);
-
-extern void XSetClassHint(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XClassHint* /* class_hints */
-#endif
-);
-
-extern void XSetIconSizes(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XIconSize* /* size_list */,
- int /* count */
-#endif
-);
-
-extern void XSetNormalHints(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints */
-#endif
-);
-
-extern void XSetRGBColormaps(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XStandardColormap* /* stdcmaps */,
- int /* count */,
- Atom /* property */
-#endif
-);
-
-extern void XSetSizeHints(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints */,
- Atom /* property */
-#endif
-);
-
-extern void XSetStandardProperties(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- _Xconst char* /* window_name */,
- _Xconst char* /* icon_name */,
- Pixmap /* icon_pixmap */,
- char** /* argv */,
- int /* argc */,
- XSizeHints* /* hints */
-#endif
-);
-
-extern void XSetTextProperty(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* text_prop */,
- Atom /* property */
-#endif
-);
-
-extern void XSetWMHints(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XWMHints* /* wm_hints */
-#endif
-);
-
-extern void XSetWMIconName(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* text_prop */
-#endif
-);
-
-extern void XSetWMName(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* text_prop */
-#endif
-);
-
-extern void XSetWMNormalHints(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints */
-#endif
-);
-
-extern void XSetWMProperties(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* window_name */,
- XTextProperty* /* icon_name */,
- char** /* argv */,
- int /* argc */,
- XSizeHints* /* normal_hints */,
- XWMHints* /* wm_hints */,
- XClassHint* /* class_hints */
-#endif
-);
-
-extern void XmbSetWMProperties(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- _Xconst char* /* window_name */,
- _Xconst char* /* icon_name */,
- char** /* argv */,
- int /* argc */,
- XSizeHints* /* normal_hints */,
- XWMHints* /* wm_hints */,
- XClassHint* /* class_hints */
-#endif
-);
-
-extern void XSetWMSizeHints(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints */,
- Atom /* property */
-#endif
-);
-
-extern void XSetRegion(
-#if NeedFunctionPrototypes
- Display* /* display */,
- GC /* gc */,
- Region /* r */
-#endif
-);
-
-extern void XSetStandardColormap(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XStandardColormap* /* colormap */,
- Atom /* property */
-#endif
-);
-
-extern void XSetZoomHints(
-#if NeedFunctionPrototypes
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* zhints */
-#endif
-);
-
-extern void XShrinkRegion(
-#if NeedFunctionPrototypes
- Region /* r */,
- int /* dx */,
- int /* dy */
-#endif
-);
-
-extern void XSubtractRegion(
-#if NeedFunctionPrototypes
- Region /* sra */,
- Region /* srb */,
- Region /* dr_return */
-#endif
-);
-
-extern int XmbTextListToTextProperty(
-#if NeedFunctionPrototypes
- Display* /* display */,
- char** /* list */,
- int /* count */,
- XICCEncodingStyle /* style */,
- XTextProperty* /* text_prop_return */
-#endif
-);
-
-extern int XwcTextListToTextProperty(
-#if NeedFunctionPrototypes
- Display* /* display */,
- wchar_t** /* list */,
- int /* count */,
- XICCEncodingStyle /* style */,
- XTextProperty* /* text_prop_return */
-#endif
-);
-
-extern void XwcFreeStringList(
-#if NeedFunctionPrototypes
- wchar_t** /* list */
-#endif
-);
-
-extern int XTextPropertyToStringList(
-#if NeedFunctionPrototypes
- XTextProperty* /* text_prop */,
- char*** /* list_return */,
- int* /* count_return */
-#endif
-);
-
-extern int XmbTextPropertyToTextList(
-#if NeedFunctionPrototypes
- Display* /* display */,
- XTextProperty* /* text_prop */,
- char*** /* list_return */,
- int* /* count_return */
-#endif
-);
-
-extern int XwcTextPropertyToTextList(
-#if NeedFunctionPrototypes
- Display* /* display */,
- XTextProperty* /* text_prop */,
- wchar_t*** /* list_return */,
- int* /* count_return */
-#endif
-);
-
-extern void XUnionRectWithRegion(
-#if NeedFunctionPrototypes
- XRectangle* /* rectangle */,
- Region /* src_region */,
- Region /* dest_region_return */
-#endif
-);
-
-extern void XUnionRegion(
-#if NeedFunctionPrototypes
- Region /* sra */,
- Region /* srb */,
- Region /* dr_return */
-#endif
-);
-
-extern int XWMGeometry(
-#if NeedFunctionPrototypes
- Display* /* display */,
- int /* screen_number */,
- _Xconst char* /* user_geometry */,
- _Xconst char* /* default_geometry */,
- unsigned int /* border_width */,
- XSizeHints* /* hints */,
- int* /* x_return */,
- int* /* y_return */,
- int* /* width_return */,
- int* /* height_return */,
- int* /* gravity_return */
-#endif
-);
-
-extern void XXorRegion(
-#if NeedFunctionPrototypes
- Region /* sra */,
- Region /* srb */,
- Region /* dr_return */
-#endif
-);
-
-_XFUNCPROTOEND
-
-#if defined(MAC_TCL) || defined(MAC_OSX_TK)
-# undef Region
-#endif
-
-#endif /* _XUTIL_H_ */
diff --git a/Master/tlpkg/tlperl/lib/Tk/X11/cursorfont.h b/Master/tlpkg/tlperl/lib/Tk/X11/cursorfont.h
deleted file mode 100644
index 617274fa806..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/X11/cursorfont.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* $XConsortium: cursorfont.h,v 1.2 88/09/06 16:44:27 jim Exp $ */
-#define XC_num_glyphs 154
-#define XC_X_cursor 0
-#define XC_arrow 2
-#define XC_based_arrow_down 4
-#define XC_based_arrow_up 6
-#define XC_boat 8
-#define XC_bogosity 10
-#define XC_bottom_left_corner 12
-#define XC_bottom_right_corner 14
-#define XC_bottom_side 16
-#define XC_bottom_tee 18
-#define XC_box_spiral 20
-#define XC_center_ptr 22
-#define XC_circle 24
-#define XC_clock 26
-#define XC_coffee_mug 28
-#define XC_cross 30
-#define XC_cross_reverse 32
-#define XC_crosshair 34
-#define XC_diamond_cross 36
-#define XC_dot 38
-#define XC_dotbox 40
-#define XC_double_arrow 42
-#define XC_draft_large 44
-#define XC_draft_small 46
-#define XC_draped_box 48
-#define XC_exchange 50
-#define XC_fleur 52
-#define XC_gobbler 54
-#define XC_gumby 56
-#define XC_hand1 58
-#define XC_hand2 60
-#define XC_heart 62
-#define XC_icon 64
-#define XC_iron_cross 66
-#define XC_left_ptr 68
-#define XC_left_side 70
-#define XC_left_tee 72
-#define XC_leftbutton 74
-#define XC_ll_angle 76
-#define XC_lr_angle 78
-#define XC_man 80
-#define XC_middlebutton 82
-#define XC_mouse 84
-#define XC_pencil 86
-#define XC_pirate 88
-#define XC_plus 90
-#define XC_question_arrow 92
-#define XC_right_ptr 94
-#define XC_right_side 96
-#define XC_right_tee 98
-#define XC_rightbutton 100
-#define XC_rtl_logo 102
-#define XC_sailboat 104
-#define XC_sb_down_arrow 106
-#define XC_sb_h_double_arrow 108
-#define XC_sb_left_arrow 110
-#define XC_sb_right_arrow 112
-#define XC_sb_up_arrow 114
-#define XC_sb_v_double_arrow 116
-#define XC_shuttle 118
-#define XC_sizing 120
-#define XC_spider 122
-#define XC_spraycan 124
-#define XC_star 126
-#define XC_target 128
-#define XC_tcross 130
-#define XC_top_left_arrow 132
-#define XC_top_left_corner 134
-#define XC_top_right_corner 136
-#define XC_top_side 138
-#define XC_top_tee 140
-#define XC_trek 142
-#define XC_ul_angle 144
-#define XC_umbrella 146
-#define XC_ur_angle 148
-#define XC_watch 150
-#define XC_xterm 152
diff --git a/Master/tlpkg/tlperl/lib/Tk/X11/keysym.h b/Master/tlpkg/tlperl/lib/Tk/X11/keysym.h
deleted file mode 100644
index 027afe08d5f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/X11/keysym.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* $XConsortium: keysym.h,v 1.13 91/03/13 20:09:49 rws Exp $ */
-
-/***********************************************************
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
-and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Digital or MIT not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-/* default keysyms */
-#define XK_MISCELLANY
-#define XK_LATIN1
-#define XK_LATIN2
-#define XK_LATIN3
-#define XK_LATIN4
-#define XK_GREEK
-
-#ifdef MAC_TCL
-#include <keysymdef.h>
-#else
-#include <X11/keysymdef.h>
-#endif
diff --git a/Master/tlpkg/tlperl/lib/Tk/X11/keysymdef.h b/Master/tlpkg/tlperl/lib/Tk/X11/keysymdef.h
deleted file mode 100644
index b22d41b3385..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/X11/keysymdef.h
+++ /dev/null
@@ -1,1169 +0,0 @@
-/* $XConsortium: keysymdef.h,v 1.15 93/04/02 10:57:36 rws Exp $ */
-
-/***********************************************************
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
-and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Digital or MIT not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#define XK_VoidSymbol 0xFFFFFF /* void symbol */
-
-#ifdef XK_MISCELLANY
-/*
- * TTY Functions, cleverly chosen to map to ascii, for convenience of
- * programming, but could have been arbitrary (at the cost of lookup
- * tables in client code.
- */
-
-#define XK_BackSpace 0xFF08 /* back space, back char */
-#define XK_Tab 0xFF09
-#define XK_Linefeed 0xFF0A /* Linefeed, LF */
-#define XK_Clear 0xFF0B
-#define XK_Return 0xFF0D /* Return, enter */
-#define XK_Pause 0xFF13 /* Pause, hold */
-#define XK_Scroll_Lock 0xFF14
-#define XK_Sys_Req 0xFF15
-#define XK_Escape 0xFF1B
-#define XK_Delete 0xFFFF /* Delete, rubout */
-
-
-
-/* International & multi-key character composition */
-
-#define XK_Multi_key 0xFF20 /* Multi-key character compose */
-
-/* Japanese keyboard support */
-
-#define XK_Kanji 0xFF21 /* Kanji, Kanji convert */
-#define XK_Muhenkan 0xFF22 /* Cancel Conversion */
-#define XK_Henkan_Mode 0xFF23 /* Start/Stop Conversion */
-#define XK_Henkan 0xFF23 /* Alias for Henkan_Mode */
-#define XK_Romaji 0xFF24 /* to Romaji */
-#define XK_Hiragana 0xFF25 /* to Hiragana */
-#define XK_Katakana 0xFF26 /* to Katakana */
-#define XK_Hiragana_Katakana 0xFF27 /* Hiragana/Katakana toggle */
-#define XK_Zenkaku 0xFF28 /* to Zenkaku */
-#define XK_Hankaku 0xFF29 /* to Hankaku */
-#define XK_Zenkaku_Hankaku 0xFF2A /* Zenkaku/Hankaku toggle */
-#define XK_Touroku 0xFF2B /* Add to Dictionary */
-#define XK_Massyo 0xFF2C /* Delete from Dictionary */
-#define XK_Kana_Lock 0xFF2D /* Kana Lock */
-#define XK_Kana_Shift 0xFF2E /* Kana Shift */
-#define XK_Eisu_Shift 0xFF2F /* Alphanumeric Shift */
-#define XK_Eisu_toggle 0xFF30 /* Alphanumeric toggle */
-
-/* Cursor control & motion */
-
-#define XK_Home 0xFF50
-#define XK_Left 0xFF51 /* Move left, left arrow */
-#define XK_Up 0xFF52 /* Move up, up arrow */
-#define XK_Right 0xFF53 /* Move right, right arrow */
-#define XK_Down 0xFF54 /* Move down, down arrow */
-#define XK_Prior 0xFF55 /* Prior, previous */
-#define XK_Page_Up 0xFF55
-#define XK_Next 0xFF56 /* Next */
-#define XK_Page_Down 0xFF56
-#define XK_End 0xFF57 /* EOL */
-#define XK_Begin 0xFF58 /* BOL */
-
-/* Special Windows keyboard keys */
-
-#define XK_Win_L 0xFF5B /* Left-hand Windows */
-#define XK_Win_R 0xFF5C /* Right-hand Windows */
-#define XK_App 0xFF5D /* Menu key */
-
-/* Misc Functions */
-
-#define XK_Select 0xFF60 /* Select, mark */
-#define XK_Print 0xFF61
-#define XK_Execute 0xFF62 /* Execute, run, do */
-#define XK_Insert 0xFF63 /* Insert, insert here */
-#define XK_Undo 0xFF65 /* Undo, oops */
-#define XK_Redo 0xFF66 /* redo, again */
-#define XK_Menu 0xFF67
-#define XK_Find 0xFF68 /* Find, search */
-#define XK_Cancel 0xFF69 /* Cancel, stop, abort, exit */
-#define XK_Help 0xFF6A /* Help, ? */
-#define XK_Break 0xFF6B
-#define XK_Mode_switch 0xFF7E /* Character set switch */
-#define XK_script_switch 0xFF7E /* Alias for mode_switch */
-#define XK_Num_Lock 0xFF7F
-
-/* Keypad Functions, keypad numbers cleverly chosen to map to ascii */
-
-#define XK_KP_Space 0xFF80 /* space */
-#define XK_KP_Tab 0xFF89
-#define XK_KP_Enter 0xFF8D /* enter */
-#define XK_KP_F1 0xFF91 /* PF1, KP_A, ... */
-#define XK_KP_F2 0xFF92
-#define XK_KP_F3 0xFF93
-#define XK_KP_F4 0xFF94
-#define XK_KP_Home 0xFF95
-#define XK_KP_Left 0xFF96
-#define XK_KP_Up 0xFF97
-#define XK_KP_Right 0xFF98
-#define XK_KP_Down 0xFF99
-#define XK_KP_Prior 0xFF9A
-#define XK_KP_Page_Up 0xFF9A
-#define XK_KP_Next 0xFF9B
-#define XK_KP_Page_Down 0xFF9B
-#define XK_KP_End 0xFF9C
-#define XK_KP_Begin 0xFF9D
-#define XK_KP_Insert 0xFF9E
-#define XK_KP_Delete 0xFF9F
-#define XK_KP_Equal 0xFFBD /* equals */
-#define XK_KP_Multiply 0xFFAA
-#define XK_KP_Add 0xFFAB
-#define XK_KP_Separator 0xFFAC /* separator, often comma */
-#define XK_KP_Subtract 0xFFAD
-#define XK_KP_Decimal 0xFFAE
-#define XK_KP_Divide 0xFFAF
-
-#define XK_KP_0 0xFFB0
-#define XK_KP_1 0xFFB1
-#define XK_KP_2 0xFFB2
-#define XK_KP_3 0xFFB3
-#define XK_KP_4 0xFFB4
-#define XK_KP_5 0xFFB5
-#define XK_KP_6 0xFFB6
-#define XK_KP_7 0xFFB7
-#define XK_KP_8 0xFFB8
-#define XK_KP_9 0xFFB9
-
-
-
-/*
- * Auxilliary Functions; note the duplicate definitions for left and right
- * function keys; Sun keyboards and a few other manufactures have such
- * function key groups on the left and/or right sides of the keyboard.
- * We've not found a keyboard with more than 35 function keys total.
- */
-
-#define XK_F1 0xFFBE
-#define XK_F2 0xFFBF
-#define XK_F3 0xFFC0
-#define XK_F4 0xFFC1
-#define XK_F5 0xFFC2
-#define XK_F6 0xFFC3
-#define XK_F7 0xFFC4
-#define XK_F8 0xFFC5
-#define XK_F9 0xFFC6
-#define XK_F10 0xFFC7
-#define XK_F11 0xFFC8
-#define XK_L1 0xFFC8
-#define XK_F12 0xFFC9
-#define XK_L2 0xFFC9
-#define XK_F13 0xFFCA
-#define XK_L3 0xFFCA
-#define XK_F14 0xFFCB
-#define XK_L4 0xFFCB
-#define XK_F15 0xFFCC
-#define XK_L5 0xFFCC
-#define XK_F16 0xFFCD
-#define XK_L6 0xFFCD
-#define XK_F17 0xFFCE
-#define XK_L7 0xFFCE
-#define XK_F18 0xFFCF
-#define XK_L8 0xFFCF
-#define XK_F19 0xFFD0
-#define XK_L9 0xFFD0
-#define XK_F20 0xFFD1
-#define XK_L10 0xFFD1
-#define XK_F21 0xFFD2
-#define XK_R1 0xFFD2
-#define XK_F22 0xFFD3
-#define XK_R2 0xFFD3
-#define XK_F23 0xFFD4
-#define XK_R3 0xFFD4
-#define XK_F24 0xFFD5
-#define XK_R4 0xFFD5
-#define XK_F25 0xFFD6
-#define XK_R5 0xFFD6
-#define XK_F26 0xFFD7
-#define XK_R6 0xFFD7
-#define XK_F27 0xFFD8
-#define XK_R7 0xFFD8
-#define XK_F28 0xFFD9
-#define XK_R8 0xFFD9
-#define XK_F29 0xFFDA
-#define XK_R9 0xFFDA
-#define XK_F30 0xFFDB
-#define XK_R10 0xFFDB
-#define XK_F31 0xFFDC
-#define XK_R11 0xFFDC
-#define XK_F32 0xFFDD
-#define XK_R12 0xFFDD
-#define XK_F33 0xFFDE
-#define XK_R13 0xFFDE
-#define XK_F34 0xFFDF
-#define XK_R14 0xFFDF
-#define XK_F35 0xFFE0
-#define XK_R15 0xFFE0
-
-/* Modifiers */
-
-#define XK_Shift_L 0xFFE1 /* Left shift */
-#define XK_Shift_R 0xFFE2 /* Right shift */
-#define XK_Control_L 0xFFE3 /* Left control */
-#define XK_Control_R 0xFFE4 /* Right control */
-#define XK_Caps_Lock 0xFFE5 /* Caps lock */
-#define XK_Shift_Lock 0xFFE6 /* Shift lock */
-
-#define XK_Meta_L 0xFFE7 /* Left meta */
-#define XK_Meta_R 0xFFE8 /* Right meta */
-#define XK_Alt_L 0xFFE9 /* Left alt */
-#define XK_Alt_R 0xFFEA /* Right alt */
-#define XK_Super_L 0xFFEB /* Left super */
-#define XK_Super_R 0xFFEC /* Right super */
-#define XK_Hyper_L 0xFFED /* Left hyper */
-#define XK_Hyper_R 0xFFEE /* Right hyper */
-#endif /* XK_MISCELLANY */
-
-/*
- * Latin 1
- * Byte 3 = 0
- */
-#ifdef XK_LATIN1
-#define XK_space 0x020
-#define XK_exclam 0x021
-#define XK_quotedbl 0x022
-#define XK_numbersign 0x023
-#define XK_dollar 0x024
-#define XK_percent 0x025
-#define XK_ampersand 0x026
-#define XK_apostrophe 0x027
-#define XK_quoteright 0x027 /* deprecated */
-#define XK_parenleft 0x028
-#define XK_parenright 0x029
-#define XK_asterisk 0x02a
-#define XK_plus 0x02b
-#define XK_comma 0x02c
-#define XK_minus 0x02d
-#define XK_period 0x02e
-#define XK_slash 0x02f
-#define XK_0 0x030
-#define XK_1 0x031
-#define XK_2 0x032
-#define XK_3 0x033
-#define XK_4 0x034
-#define XK_5 0x035
-#define XK_6 0x036
-#define XK_7 0x037
-#define XK_8 0x038
-#define XK_9 0x039
-#define XK_colon 0x03a
-#define XK_semicolon 0x03b
-#define XK_less 0x03c
-#define XK_equal 0x03d
-#define XK_greater 0x03e
-#define XK_question 0x03f
-#define XK_at 0x040
-#define XK_A 0x041
-#define XK_B 0x042
-#define XK_C 0x043
-#define XK_D 0x044
-#define XK_E 0x045
-#define XK_F 0x046
-#define XK_G 0x047
-#define XK_H 0x048
-#define XK_I 0x049
-#define XK_J 0x04a
-#define XK_K 0x04b
-#define XK_L 0x04c
-#define XK_M 0x04d
-#define XK_N 0x04e
-#define XK_O 0x04f
-#define XK_P 0x050
-#define XK_Q 0x051
-#define XK_R 0x052
-#define XK_S 0x053
-#define XK_T 0x054
-#define XK_U 0x055
-#define XK_V 0x056
-#define XK_W 0x057
-#define XK_X 0x058
-#define XK_Y 0x059
-#define XK_Z 0x05a
-#define XK_bracketleft 0x05b
-#define XK_backslash 0x05c
-#define XK_bracketright 0x05d
-#define XK_asciicircum 0x05e
-#define XK_underscore 0x05f
-#define XK_grave 0x060
-#define XK_quoteleft 0x060 /* deprecated */
-#define XK_a 0x061
-#define XK_b 0x062
-#define XK_c 0x063
-#define XK_d 0x064
-#define XK_e 0x065
-#define XK_f 0x066
-#define XK_g 0x067
-#define XK_h 0x068
-#define XK_i 0x069
-#define XK_j 0x06a
-#define XK_k 0x06b
-#define XK_l 0x06c
-#define XK_m 0x06d
-#define XK_n 0x06e
-#define XK_o 0x06f
-#define XK_p 0x070
-#define XK_q 0x071
-#define XK_r 0x072
-#define XK_s 0x073
-#define XK_t 0x074
-#define XK_u 0x075
-#define XK_v 0x076
-#define XK_w 0x077
-#define XK_x 0x078
-#define XK_y 0x079
-#define XK_z 0x07a
-#define XK_braceleft 0x07b
-#define XK_bar 0x07c
-#define XK_braceright 0x07d
-#define XK_asciitilde 0x07e
-
-#define XK_nobreakspace 0x0a0
-#define XK_exclamdown 0x0a1
-#define XK_cent 0x0a2
-#define XK_sterling 0x0a3
-#define XK_currency 0x0a4
-#define XK_yen 0x0a5
-#define XK_brokenbar 0x0a6
-#define XK_section 0x0a7
-#define XK_diaeresis 0x0a8
-#define XK_copyright 0x0a9
-#define XK_ordfeminine 0x0aa
-#define XK_guillemotleft 0x0ab /* left angle quotation mark */
-#define XK_notsign 0x0ac
-#define XK_hyphen 0x0ad
-#define XK_registered 0x0ae
-#define XK_macron 0x0af
-#define XK_degree 0x0b0
-#define XK_plusminus 0x0b1
-#define XK_twosuperior 0x0b2
-#define XK_threesuperior 0x0b3
-#define XK_acute 0x0b4
-#define XK_mu 0x0b5
-#define XK_paragraph 0x0b6
-#define XK_periodcentered 0x0b7
-#define XK_cedilla 0x0b8
-#define XK_onesuperior 0x0b9
-#define XK_masculine 0x0ba
-#define XK_guillemotright 0x0bb /* right angle quotation mark */
-#define XK_onequarter 0x0bc
-#define XK_onehalf 0x0bd
-#define XK_threequarters 0x0be
-#define XK_questiondown 0x0bf
-#define XK_Agrave 0x0c0
-#define XK_Aacute 0x0c1
-#define XK_Acircumflex 0x0c2
-#define XK_Atilde 0x0c3
-#define XK_Adiaeresis 0x0c4
-#define XK_Aring 0x0c5
-#define XK_AE 0x0c6
-#define XK_Ccedilla 0x0c7
-#define XK_Egrave 0x0c8
-#define XK_Eacute 0x0c9
-#define XK_Ecircumflex 0x0ca
-#define XK_Ediaeresis 0x0cb
-#define XK_Igrave 0x0cc
-#define XK_Iacute 0x0cd
-#define XK_Icircumflex 0x0ce
-#define XK_Idiaeresis 0x0cf
-#define XK_ETH 0x0d0
-#define XK_Eth 0x0d0 /* deprecated */
-#define XK_Ntilde 0x0d1
-#define XK_Ograve 0x0d2
-#define XK_Oacute 0x0d3
-#define XK_Ocircumflex 0x0d4
-#define XK_Otilde 0x0d5
-#define XK_Odiaeresis 0x0d6
-#define XK_multiply 0x0d7
-#define XK_Ooblique 0x0d8
-#define XK_Ugrave 0x0d9
-#define XK_Uacute 0x0da
-#define XK_Ucircumflex 0x0db
-#define XK_Udiaeresis 0x0dc
-#define XK_Yacute 0x0dd
-#define XK_THORN 0x0de
-#define XK_Thorn 0x0de /* deprecated */
-#define XK_ssharp 0x0df
-#define XK_agrave 0x0e0
-#define XK_aacute 0x0e1
-#define XK_acircumflex 0x0e2
-#define XK_atilde 0x0e3
-#define XK_adiaeresis 0x0e4
-#define XK_aring 0x0e5
-#define XK_ae 0x0e6
-#define XK_ccedilla 0x0e7
-#define XK_egrave 0x0e8
-#define XK_eacute 0x0e9
-#define XK_ecircumflex 0x0ea
-#define XK_ediaeresis 0x0eb
-#define XK_igrave 0x0ec
-#define XK_iacute 0x0ed
-#define XK_icircumflex 0x0ee
-#define XK_idiaeresis 0x0ef
-#define XK_eth 0x0f0
-#define XK_ntilde 0x0f1
-#define XK_ograve 0x0f2
-#define XK_oacute 0x0f3
-#define XK_ocircumflex 0x0f4
-#define XK_otilde 0x0f5
-#define XK_odiaeresis 0x0f6
-#define XK_division 0x0f7
-#define XK_oslash 0x0f8
-#define XK_ugrave 0x0f9
-#define XK_uacute 0x0fa
-#define XK_ucircumflex 0x0fb
-#define XK_udiaeresis 0x0fc
-#define XK_yacute 0x0fd
-#define XK_thorn 0x0fe
-#define XK_ydiaeresis 0x0ff
-#endif /* XK_LATIN1 */
-
-/*
- * Latin 2
- * Byte 3 = 1
- */
-
-#ifdef XK_LATIN2
-#define XK_Aogonek 0x1a1
-#define XK_breve 0x1a2
-#define XK_Lstroke 0x1a3
-#define XK_Lcaron 0x1a5
-#define XK_Sacute 0x1a6
-#define XK_Scaron 0x1a9
-#define XK_Scedilla 0x1aa
-#define XK_Tcaron 0x1ab
-#define XK_Zacute 0x1ac
-#define XK_Zcaron 0x1ae
-#define XK_Zabovedot 0x1af
-#define XK_aogonek 0x1b1
-#define XK_ogonek 0x1b2
-#define XK_lstroke 0x1b3
-#define XK_lcaron 0x1b5
-#define XK_sacute 0x1b6
-#define XK_caron 0x1b7
-#define XK_scaron 0x1b9
-#define XK_scedilla 0x1ba
-#define XK_tcaron 0x1bb
-#define XK_zacute 0x1bc
-#define XK_doubleacute 0x1bd
-#define XK_zcaron 0x1be
-#define XK_zabovedot 0x1bf
-#define XK_Racute 0x1c0
-#define XK_Abreve 0x1c3
-#define XK_Lacute 0x1c5
-#define XK_Cacute 0x1c6
-#define XK_Ccaron 0x1c8
-#define XK_Eogonek 0x1ca
-#define XK_Ecaron 0x1cc
-#define XK_Dcaron 0x1cf
-#define XK_Dstroke 0x1d0
-#define XK_Nacute 0x1d1
-#define XK_Ncaron 0x1d2
-#define XK_Odoubleacute 0x1d5
-#define XK_Rcaron 0x1d8
-#define XK_Uring 0x1d9
-#define XK_Udoubleacute 0x1db
-#define XK_Tcedilla 0x1de
-#define XK_racute 0x1e0
-#define XK_abreve 0x1e3
-#define XK_lacute 0x1e5
-#define XK_cacute 0x1e6
-#define XK_ccaron 0x1e8
-#define XK_eogonek 0x1ea
-#define XK_ecaron 0x1ec
-#define XK_dcaron 0x1ef
-#define XK_dstroke 0x1f0
-#define XK_nacute 0x1f1
-#define XK_ncaron 0x1f2
-#define XK_odoubleacute 0x1f5
-#define XK_udoubleacute 0x1fb
-#define XK_rcaron 0x1f8
-#define XK_uring 0x1f9
-#define XK_tcedilla 0x1fe
-#define XK_abovedot 0x1ff
-#endif /* XK_LATIN2 */
-
-/*
- * Latin 3
- * Byte 3 = 2
- */
-
-#ifdef XK_LATIN3
-#define XK_Hstroke 0x2a1
-#define XK_Hcircumflex 0x2a6
-#define XK_Iabovedot 0x2a9
-#define XK_Gbreve 0x2ab
-#define XK_Jcircumflex 0x2ac
-#define XK_hstroke 0x2b1
-#define XK_hcircumflex 0x2b6
-#define XK_idotless 0x2b9
-#define XK_gbreve 0x2bb
-#define XK_jcircumflex 0x2bc
-#define XK_Cabovedot 0x2c5
-#define XK_Ccircumflex 0x2c6
-#define XK_Gabovedot 0x2d5
-#define XK_Gcircumflex 0x2d8
-#define XK_Ubreve 0x2dd
-#define XK_Scircumflex 0x2de
-#define XK_cabovedot 0x2e5
-#define XK_ccircumflex 0x2e6
-#define XK_gabovedot 0x2f5
-#define XK_gcircumflex 0x2f8
-#define XK_ubreve 0x2fd
-#define XK_scircumflex 0x2fe
-#endif /* XK_LATIN3 */
-
-
-/*
- * Latin 4
- * Byte 3 = 3
- */
-
-#ifdef XK_LATIN4
-#define XK_kra 0x3a2
-#define XK_kappa 0x3a2 /* deprecated */
-#define XK_Rcedilla 0x3a3
-#define XK_Itilde 0x3a5
-#define XK_Lcedilla 0x3a6
-#define XK_Emacron 0x3aa
-#define XK_Gcedilla 0x3ab
-#define XK_Tslash 0x3ac
-#define XK_rcedilla 0x3b3
-#define XK_itilde 0x3b5
-#define XK_lcedilla 0x3b6
-#define XK_emacron 0x3ba
-#define XK_gcedilla 0x3bb
-#define XK_tslash 0x3bc
-#define XK_ENG 0x3bd
-#define XK_eng 0x3bf
-#define XK_Amacron 0x3c0
-#define XK_Iogonek 0x3c7
-#define XK_Eabovedot 0x3cc
-#define XK_Imacron 0x3cf
-#define XK_Ncedilla 0x3d1
-#define XK_Omacron 0x3d2
-#define XK_Kcedilla 0x3d3
-#define XK_Uogonek 0x3d9
-#define XK_Utilde 0x3dd
-#define XK_Umacron 0x3de
-#define XK_amacron 0x3e0
-#define XK_iogonek 0x3e7
-#define XK_eabovedot 0x3ec
-#define XK_imacron 0x3ef
-#define XK_ncedilla 0x3f1
-#define XK_omacron 0x3f2
-#define XK_kcedilla 0x3f3
-#define XK_uogonek 0x3f9
-#define XK_utilde 0x3fd
-#define XK_umacron 0x3fe
-#endif /* XK_LATIN4 */
-
-/*
- * Katakana
- * Byte 3 = 4
- */
-
-#ifdef XK_KATAKANA
-#define XK_overline 0x47e
-#define XK_kana_fullstop 0x4a1
-#define XK_kana_openingbracket 0x4a2
-#define XK_kana_closingbracket 0x4a3
-#define XK_kana_comma 0x4a4
-#define XK_kana_conjunctive 0x4a5
-#define XK_kana_middledot 0x4a5 /* deprecated */
-#define XK_kana_WO 0x4a6
-#define XK_kana_a 0x4a7
-#define XK_kana_i 0x4a8
-#define XK_kana_u 0x4a9
-#define XK_kana_e 0x4aa
-#define XK_kana_o 0x4ab
-#define XK_kana_ya 0x4ac
-#define XK_kana_yu 0x4ad
-#define XK_kana_yo 0x4ae
-#define XK_kana_tsu 0x4af
-#define XK_kana_tu 0x4af /* deprecated */
-#define XK_prolongedsound 0x4b0
-#define XK_kana_A 0x4b1
-#define XK_kana_I 0x4b2
-#define XK_kana_U 0x4b3
-#define XK_kana_E 0x4b4
-#define XK_kana_O 0x4b5
-#define XK_kana_KA 0x4b6
-#define XK_kana_KI 0x4b7
-#define XK_kana_KU 0x4b8
-#define XK_kana_KE 0x4b9
-#define XK_kana_KO 0x4ba
-#define XK_kana_SA 0x4bb
-#define XK_kana_SHI 0x4bc
-#define XK_kana_SU 0x4bd
-#define XK_kana_SE 0x4be
-#define XK_kana_SO 0x4bf
-#define XK_kana_TA 0x4c0
-#define XK_kana_CHI 0x4c1
-#define XK_kana_TI 0x4c1 /* deprecated */
-#define XK_kana_TSU 0x4c2
-#define XK_kana_TU 0x4c2 /* deprecated */
-#define XK_kana_TE 0x4c3
-#define XK_kana_TO 0x4c4
-#define XK_kana_NA 0x4c5
-#define XK_kana_NI 0x4c6
-#define XK_kana_NU 0x4c7
-#define XK_kana_NE 0x4c8
-#define XK_kana_NO 0x4c9
-#define XK_kana_HA 0x4ca
-#define XK_kana_HI 0x4cb
-#define XK_kana_FU 0x4cc
-#define XK_kana_HU 0x4cc /* deprecated */
-#define XK_kana_HE 0x4cd
-#define XK_kana_HO 0x4ce
-#define XK_kana_MA 0x4cf
-#define XK_kana_MI 0x4d0
-#define XK_kana_MU 0x4d1
-#define XK_kana_ME 0x4d2
-#define XK_kana_MO 0x4d3
-#define XK_kana_YA 0x4d4
-#define XK_kana_YU 0x4d5
-#define XK_kana_YO 0x4d6
-#define XK_kana_RA 0x4d7
-#define XK_kana_RI 0x4d8
-#define XK_kana_RU 0x4d9
-#define XK_kana_RE 0x4da
-#define XK_kana_RO 0x4db
-#define XK_kana_WA 0x4dc
-#define XK_kana_N 0x4dd
-#define XK_voicedsound 0x4de
-#define XK_semivoicedsound 0x4df
-#define XK_kana_switch 0xFF7E /* Alias for mode_switch */
-#endif /* XK_KATAKANA */
-
-/*
- * Arabic
- * Byte 3 = 5
- */
-
-#ifdef XK_ARABIC
-#define XK_Arabic_comma 0x5ac
-#define XK_Arabic_semicolon 0x5bb
-#define XK_Arabic_question_mark 0x5bf
-#define XK_Arabic_hamza 0x5c1
-#define XK_Arabic_maddaonalef 0x5c2
-#define XK_Arabic_hamzaonalef 0x5c3
-#define XK_Arabic_hamzaonwaw 0x5c4
-#define XK_Arabic_hamzaunderalef 0x5c5
-#define XK_Arabic_hamzaonyeh 0x5c6
-#define XK_Arabic_alef 0x5c7
-#define XK_Arabic_beh 0x5c8
-#define XK_Arabic_tehmarbuta 0x5c9
-#define XK_Arabic_teh 0x5ca
-#define XK_Arabic_theh 0x5cb
-#define XK_Arabic_jeem 0x5cc
-#define XK_Arabic_hah 0x5cd
-#define XK_Arabic_khah 0x5ce
-#define XK_Arabic_dal 0x5cf
-#define XK_Arabic_thal 0x5d0
-#define XK_Arabic_ra 0x5d1
-#define XK_Arabic_zain 0x5d2
-#define XK_Arabic_seen 0x5d3
-#define XK_Arabic_sheen 0x5d4
-#define XK_Arabic_sad 0x5d5
-#define XK_Arabic_dad 0x5d6
-#define XK_Arabic_tah 0x5d7
-#define XK_Arabic_zah 0x5d8
-#define XK_Arabic_ain 0x5d9
-#define XK_Arabic_ghain 0x5da
-#define XK_Arabic_tatweel 0x5e0
-#define XK_Arabic_feh 0x5e1
-#define XK_Arabic_qaf 0x5e2
-#define XK_Arabic_kaf 0x5e3
-#define XK_Arabic_lam 0x5e4
-#define XK_Arabic_meem 0x5e5
-#define XK_Arabic_noon 0x5e6
-#define XK_Arabic_ha 0x5e7
-#define XK_Arabic_heh 0x5e7 /* deprecated */
-#define XK_Arabic_waw 0x5e8
-#define XK_Arabic_alefmaksura 0x5e9
-#define XK_Arabic_yeh 0x5ea
-#define XK_Arabic_fathatan 0x5eb
-#define XK_Arabic_dammatan 0x5ec
-#define XK_Arabic_kasratan 0x5ed
-#define XK_Arabic_fatha 0x5ee
-#define XK_Arabic_damma 0x5ef
-#define XK_Arabic_kasra 0x5f0
-#define XK_Arabic_shadda 0x5f1
-#define XK_Arabic_sukun 0x5f2
-#define XK_Arabic_switch 0xFF7E /* Alias for mode_switch */
-#endif /* XK_ARABIC */
-
-/*
- * Cyrillic
- * Byte 3 = 6
- */
-#ifdef XK_CYRILLIC
-#define XK_Serbian_dje 0x6a1
-#define XK_Macedonia_gje 0x6a2
-#define XK_Cyrillic_io 0x6a3
-#define XK_Ukrainian_ie 0x6a4
-#define XK_Ukranian_je 0x6a4 /* deprecated */
-#define XK_Macedonia_dse 0x6a5
-#define XK_Ukrainian_i 0x6a6
-#define XK_Ukranian_i 0x6a6 /* deprecated */
-#define XK_Ukrainian_yi 0x6a7
-#define XK_Ukranian_yi 0x6a7 /* deprecated */
-#define XK_Cyrillic_je 0x6a8
-#define XK_Serbian_je 0x6a8 /* deprecated */
-#define XK_Cyrillic_lje 0x6a9
-#define XK_Serbian_lje 0x6a9 /* deprecated */
-#define XK_Cyrillic_nje 0x6aa
-#define XK_Serbian_nje 0x6aa /* deprecated */
-#define XK_Serbian_tshe 0x6ab
-#define XK_Macedonia_kje 0x6ac
-#define XK_Byelorussian_shortu 0x6ae
-#define XK_Cyrillic_dzhe 0x6af
-#define XK_Serbian_dze 0x6af /* deprecated */
-#define XK_numerosign 0x6b0
-#define XK_Serbian_DJE 0x6b1
-#define XK_Macedonia_GJE 0x6b2
-#define XK_Cyrillic_IO 0x6b3
-#define XK_Ukrainian_IE 0x6b4
-#define XK_Ukranian_JE 0x6b4 /* deprecated */
-#define XK_Macedonia_DSE 0x6b5
-#define XK_Ukrainian_I 0x6b6
-#define XK_Ukranian_I 0x6b6 /* deprecated */
-#define XK_Ukrainian_YI 0x6b7
-#define XK_Ukranian_YI 0x6b7 /* deprecated */
-#define XK_Cyrillic_JE 0x6b8
-#define XK_Serbian_JE 0x6b8 /* deprecated */
-#define XK_Cyrillic_LJE 0x6b9
-#define XK_Serbian_LJE 0x6b9 /* deprecated */
-#define XK_Cyrillic_NJE 0x6ba
-#define XK_Serbian_NJE 0x6ba /* deprecated */
-#define XK_Serbian_TSHE 0x6bb
-#define XK_Macedonia_KJE 0x6bc
-#define XK_Byelorussian_SHORTU 0x6be
-#define XK_Cyrillic_DZHE 0x6bf
-#define XK_Serbian_DZE 0x6bf /* deprecated */
-#define XK_Cyrillic_yu 0x6c0
-#define XK_Cyrillic_a 0x6c1
-#define XK_Cyrillic_be 0x6c2
-#define XK_Cyrillic_tse 0x6c3
-#define XK_Cyrillic_de 0x6c4
-#define XK_Cyrillic_ie 0x6c5
-#define XK_Cyrillic_ef 0x6c6
-#define XK_Cyrillic_ghe 0x6c7
-#define XK_Cyrillic_ha 0x6c8
-#define XK_Cyrillic_i 0x6c9
-#define XK_Cyrillic_shorti 0x6ca
-#define XK_Cyrillic_ka 0x6cb
-#define XK_Cyrillic_el 0x6cc
-#define XK_Cyrillic_em 0x6cd
-#define XK_Cyrillic_en 0x6ce
-#define XK_Cyrillic_o 0x6cf
-#define XK_Cyrillic_pe 0x6d0
-#define XK_Cyrillic_ya 0x6d1
-#define XK_Cyrillic_er 0x6d2
-#define XK_Cyrillic_es 0x6d3
-#define XK_Cyrillic_te 0x6d4
-#define XK_Cyrillic_u 0x6d5
-#define XK_Cyrillic_zhe 0x6d6
-#define XK_Cyrillic_ve 0x6d7
-#define XK_Cyrillic_softsign 0x6d8
-#define XK_Cyrillic_yeru 0x6d9
-#define XK_Cyrillic_ze 0x6da
-#define XK_Cyrillic_sha 0x6db
-#define XK_Cyrillic_e 0x6dc
-#define XK_Cyrillic_shcha 0x6dd
-#define XK_Cyrillic_che 0x6de
-#define XK_Cyrillic_hardsign 0x6df
-#define XK_Cyrillic_YU 0x6e0
-#define XK_Cyrillic_A 0x6e1
-#define XK_Cyrillic_BE 0x6e2
-#define XK_Cyrillic_TSE 0x6e3
-#define XK_Cyrillic_DE 0x6e4
-#define XK_Cyrillic_IE 0x6e5
-#define XK_Cyrillic_EF 0x6e6
-#define XK_Cyrillic_GHE 0x6e7
-#define XK_Cyrillic_HA 0x6e8
-#define XK_Cyrillic_I 0x6e9
-#define XK_Cyrillic_SHORTI 0x6ea
-#define XK_Cyrillic_KA 0x6eb
-#define XK_Cyrillic_EL 0x6ec
-#define XK_Cyrillic_EM 0x6ed
-#define XK_Cyrillic_EN 0x6ee
-#define XK_Cyrillic_O 0x6ef
-#define XK_Cyrillic_PE 0x6f0
-#define XK_Cyrillic_YA 0x6f1
-#define XK_Cyrillic_ER 0x6f2
-#define XK_Cyrillic_ES 0x6f3
-#define XK_Cyrillic_TE 0x6f4
-#define XK_Cyrillic_U 0x6f5
-#define XK_Cyrillic_ZHE 0x6f6
-#define XK_Cyrillic_VE 0x6f7
-#define XK_Cyrillic_SOFTSIGN 0x6f8
-#define XK_Cyrillic_YERU 0x6f9
-#define XK_Cyrillic_ZE 0x6fa
-#define XK_Cyrillic_SHA 0x6fb
-#define XK_Cyrillic_E 0x6fc
-#define XK_Cyrillic_SHCHA 0x6fd
-#define XK_Cyrillic_CHE 0x6fe
-#define XK_Cyrillic_HARDSIGN 0x6ff
-#endif /* XK_CYRILLIC */
-
-/*
- * Greek
- * Byte 3 = 7
- */
-
-#ifdef XK_GREEK
-#define XK_Greek_ALPHAaccent 0x7a1
-#define XK_Greek_EPSILONaccent 0x7a2
-#define XK_Greek_ETAaccent 0x7a3
-#define XK_Greek_IOTAaccent 0x7a4
-#define XK_Greek_IOTAdiaeresis 0x7a5
-#define XK_Greek_OMICRONaccent 0x7a7
-#define XK_Greek_UPSILONaccent 0x7a8
-#define XK_Greek_UPSILONdieresis 0x7a9
-#define XK_Greek_OMEGAaccent 0x7ab
-#define XK_Greek_accentdieresis 0x7ae
-#define XK_Greek_horizbar 0x7af
-#define XK_Greek_alphaaccent 0x7b1
-#define XK_Greek_epsilonaccent 0x7b2
-#define XK_Greek_etaaccent 0x7b3
-#define XK_Greek_iotaaccent 0x7b4
-#define XK_Greek_iotadieresis 0x7b5
-#define XK_Greek_iotaaccentdieresis 0x7b6
-#define XK_Greek_omicronaccent 0x7b7
-#define XK_Greek_upsilonaccent 0x7b8
-#define XK_Greek_upsilondieresis 0x7b9
-#define XK_Greek_upsilonaccentdieresis 0x7ba
-#define XK_Greek_omegaaccent 0x7bb
-#define XK_Greek_ALPHA 0x7c1
-#define XK_Greek_BETA 0x7c2
-#define XK_Greek_GAMMA 0x7c3
-#define XK_Greek_DELTA 0x7c4
-#define XK_Greek_EPSILON 0x7c5
-#define XK_Greek_ZETA 0x7c6
-#define XK_Greek_ETA 0x7c7
-#define XK_Greek_THETA 0x7c8
-#define XK_Greek_IOTA 0x7c9
-#define XK_Greek_KAPPA 0x7ca
-#define XK_Greek_LAMDA 0x7cb
-#define XK_Greek_LAMBDA 0x7cb
-#define XK_Greek_MU 0x7cc
-#define XK_Greek_NU 0x7cd
-#define XK_Greek_XI 0x7ce
-#define XK_Greek_OMICRON 0x7cf
-#define XK_Greek_PI 0x7d0
-#define XK_Greek_RHO 0x7d1
-#define XK_Greek_SIGMA 0x7d2
-#define XK_Greek_TAU 0x7d4
-#define XK_Greek_UPSILON 0x7d5
-#define XK_Greek_PHI 0x7d6
-#define XK_Greek_CHI 0x7d7
-#define XK_Greek_PSI 0x7d8
-#define XK_Greek_OMEGA 0x7d9
-#define XK_Greek_alpha 0x7e1
-#define XK_Greek_beta 0x7e2
-#define XK_Greek_gamma 0x7e3
-#define XK_Greek_delta 0x7e4
-#define XK_Greek_epsilon 0x7e5
-#define XK_Greek_zeta 0x7e6
-#define XK_Greek_eta 0x7e7
-#define XK_Greek_theta 0x7e8
-#define XK_Greek_iota 0x7e9
-#define XK_Greek_kappa 0x7ea
-#define XK_Greek_lamda 0x7eb
-#define XK_Greek_lambda 0x7eb
-#define XK_Greek_mu 0x7ec
-#define XK_Greek_nu 0x7ed
-#define XK_Greek_xi 0x7ee
-#define XK_Greek_omicron 0x7ef
-#define XK_Greek_pi 0x7f0
-#define XK_Greek_rho 0x7f1
-#define XK_Greek_sigma 0x7f2
-#define XK_Greek_finalsmallsigma 0x7f3
-#define XK_Greek_tau 0x7f4
-#define XK_Greek_upsilon 0x7f5
-#define XK_Greek_phi 0x7f6
-#define XK_Greek_chi 0x7f7
-#define XK_Greek_psi 0x7f8
-#define XK_Greek_omega 0x7f9
-#define XK_Greek_switch 0xFF7E /* Alias for mode_switch */
-#endif /* XK_GREEK */
-
-/*
- * Technical
- * Byte 3 = 8
- */
-
-#ifdef XK_TECHNICAL
-#define XK_leftradical 0x8a1
-#define XK_topleftradical 0x8a2
-#define XK_horizconnector 0x8a3
-#define XK_topintegral 0x8a4
-#define XK_botintegral 0x8a5
-#define XK_vertconnector 0x8a6
-#define XK_topleftsqbracket 0x8a7
-#define XK_botleftsqbracket 0x8a8
-#define XK_toprightsqbracket 0x8a9
-#define XK_botrightsqbracket 0x8aa
-#define XK_topleftparens 0x8ab
-#define XK_botleftparens 0x8ac
-#define XK_toprightparens 0x8ad
-#define XK_botrightparens 0x8ae
-#define XK_leftmiddlecurlybrace 0x8af
-#define XK_rightmiddlecurlybrace 0x8b0
-#define XK_topleftsummation 0x8b1
-#define XK_botleftsummation 0x8b2
-#define XK_topvertsummationconnector 0x8b3
-#define XK_botvertsummationconnector 0x8b4
-#define XK_toprightsummation 0x8b5
-#define XK_botrightsummation 0x8b6
-#define XK_rightmiddlesummation 0x8b7
-#define XK_lessthanequal 0x8bc
-#define XK_notequal 0x8bd
-#define XK_greaterthanequal 0x8be
-#define XK_integral 0x8bf
-#define XK_therefore 0x8c0
-#define XK_variation 0x8c1
-#define XK_infinity 0x8c2
-#define XK_nabla 0x8c5
-#define XK_approximate 0x8c8
-#define XK_similarequal 0x8c9
-#define XK_ifonlyif 0x8cd
-#define XK_implies 0x8ce
-#define XK_identical 0x8cf
-#define XK_radical 0x8d6
-#define XK_includedin 0x8da
-#define XK_includes 0x8db
-#define XK_intersection 0x8dc
-#define XK_union 0x8dd
-#define XK_logicaland 0x8de
-#define XK_logicalor 0x8df
-#define XK_partialderivative 0x8ef
-#define XK_function 0x8f6
-#define XK_leftarrow 0x8fb
-#define XK_uparrow 0x8fc
-#define XK_rightarrow 0x8fd
-#define XK_downarrow 0x8fe
-#endif /* XK_TECHNICAL */
-
-/*
- * Special
- * Byte 3 = 9
- */
-
-#ifdef XK_SPECIAL
-#define XK_blank 0x9df
-#define XK_soliddiamond 0x9e0
-#define XK_checkerboard 0x9e1
-#define XK_ht 0x9e2
-#define XK_ff 0x9e3
-#define XK_cr 0x9e4
-#define XK_lf 0x9e5
-#define XK_nl 0x9e8
-#define XK_vt 0x9e9
-#define XK_lowrightcorner 0x9ea
-#define XK_uprightcorner 0x9eb
-#define XK_upleftcorner 0x9ec
-#define XK_lowleftcorner 0x9ed
-#define XK_crossinglines 0x9ee
-#define XK_horizlinescan1 0x9ef
-#define XK_horizlinescan3 0x9f0
-#define XK_horizlinescan5 0x9f1
-#define XK_horizlinescan7 0x9f2
-#define XK_horizlinescan9 0x9f3
-#define XK_leftt 0x9f4
-#define XK_rightt 0x9f5
-#define XK_bott 0x9f6
-#define XK_topt 0x9f7
-#define XK_vertbar 0x9f8
-#endif /* XK_SPECIAL */
-
-/*
- * Publishing
- * Byte 3 = a
- */
-
-#ifdef XK_PUBLISHING
-#define XK_emspace 0xaa1
-#define XK_enspace 0xaa2
-#define XK_em3space 0xaa3
-#define XK_em4space 0xaa4
-#define XK_digitspace 0xaa5
-#define XK_punctspace 0xaa6
-#define XK_thinspace 0xaa7
-#define XK_hairspace 0xaa8
-#define XK_emdash 0xaa9
-#define XK_endash 0xaaa
-#define XK_signifblank 0xaac
-#define XK_ellipsis 0xaae
-#define XK_doubbaselinedot 0xaaf
-#define XK_onethird 0xab0
-#define XK_twothirds 0xab1
-#define XK_onefifth 0xab2
-#define XK_twofifths 0xab3
-#define XK_threefifths 0xab4
-#define XK_fourfifths 0xab5
-#define XK_onesixth 0xab6
-#define XK_fivesixths 0xab7
-#define XK_careof 0xab8
-#define XK_figdash 0xabb
-#define XK_leftanglebracket 0xabc
-#define XK_decimalpoint 0xabd
-#define XK_rightanglebracket 0xabe
-#define XK_marker 0xabf
-#define XK_oneeighth 0xac3
-#define XK_threeeighths 0xac4
-#define XK_fiveeighths 0xac5
-#define XK_seveneighths 0xac6
-#define XK_trademark 0xac9
-#define XK_signaturemark 0xaca
-#define XK_trademarkincircle 0xacb
-#define XK_leftopentriangle 0xacc
-#define XK_rightopentriangle 0xacd
-#define XK_emopencircle 0xace
-#define XK_emopenrectangle 0xacf
-#define XK_leftsinglequotemark 0xad0
-#define XK_rightsinglequotemark 0xad1
-#define XK_leftdoublequotemark 0xad2
-#define XK_rightdoublequotemark 0xad3
-#define XK_prescription 0xad4
-#define XK_minutes 0xad6
-#define XK_seconds 0xad7
-#define XK_latincross 0xad9
-#define XK_hexagram 0xada
-#define XK_filledrectbullet 0xadb
-#define XK_filledlefttribullet 0xadc
-#define XK_filledrighttribullet 0xadd
-#define XK_emfilledcircle 0xade
-#define XK_emfilledrect 0xadf
-#define XK_enopencircbullet 0xae0
-#define XK_enopensquarebullet 0xae1
-#define XK_openrectbullet 0xae2
-#define XK_opentribulletup 0xae3
-#define XK_opentribulletdown 0xae4
-#define XK_openstar 0xae5
-#define XK_enfilledcircbullet 0xae6
-#define XK_enfilledsqbullet 0xae7
-#define XK_filledtribulletup 0xae8
-#define XK_filledtribulletdown 0xae9
-#define XK_leftpointer 0xaea
-#define XK_rightpointer 0xaeb
-#define XK_club 0xaec
-#define XK_diamond 0xaed
-#define XK_heart 0xaee
-#define XK_maltesecross 0xaf0
-#define XK_dagger 0xaf1
-#define XK_doubledagger 0xaf2
-#define XK_checkmark 0xaf3
-#define XK_ballotcross 0xaf4
-#define XK_musicalsharp 0xaf5
-#define XK_musicalflat 0xaf6
-#define XK_malesymbol 0xaf7
-#define XK_femalesymbol 0xaf8
-#define XK_telephone 0xaf9
-#define XK_telephonerecorder 0xafa
-#define XK_phonographcopyright 0xafb
-#define XK_caret 0xafc
-#define XK_singlelowquotemark 0xafd
-#define XK_doublelowquotemark 0xafe
-#define XK_cursor 0xaff
-#endif /* XK_PUBLISHING */
-
-/*
- * APL
- * Byte 3 = b
- */
-
-#ifdef XK_APL
-#define XK_leftcaret 0xba3
-#define XK_rightcaret 0xba6
-#define XK_downcaret 0xba8
-#define XK_upcaret 0xba9
-#define XK_overbar 0xbc0
-#define XK_downtack 0xbc2
-#define XK_upshoe 0xbc3
-#define XK_downstile 0xbc4
-#define XK_underbar 0xbc6
-#define XK_jot 0xbca
-#define XK_quad 0xbcc
-#define XK_uptack 0xbce
-#define XK_circle 0xbcf
-#define XK_upstile 0xbd3
-#define XK_downshoe 0xbd6
-#define XK_rightshoe 0xbd8
-#define XK_leftshoe 0xbda
-#define XK_lefttack 0xbdc
-#define XK_righttack 0xbfc
-#endif /* XK_APL */
-
-/*
- * Hebrew
- * Byte 3 = c
- */
-
-#ifdef XK_HEBREW
-#define XK_hebrew_doublelowline 0xcdf
-#define XK_hebrew_aleph 0xce0
-#define XK_hebrew_bet 0xce1
-#define XK_hebrew_beth 0xce1 /* deprecated */
-#define XK_hebrew_gimel 0xce2
-#define XK_hebrew_gimmel 0xce2 /* deprecated */
-#define XK_hebrew_dalet 0xce3
-#define XK_hebrew_daleth 0xce3 /* deprecated */
-#define XK_hebrew_he 0xce4
-#define XK_hebrew_waw 0xce5
-#define XK_hebrew_zain 0xce6
-#define XK_hebrew_zayin 0xce6 /* deprecated */
-#define XK_hebrew_chet 0xce7
-#define XK_hebrew_het 0xce7 /* deprecated */
-#define XK_hebrew_tet 0xce8
-#define XK_hebrew_teth 0xce8 /* deprecated */
-#define XK_hebrew_yod 0xce9
-#define XK_hebrew_finalkaph 0xcea
-#define XK_hebrew_kaph 0xceb
-#define XK_hebrew_lamed 0xcec
-#define XK_hebrew_finalmem 0xced
-#define XK_hebrew_mem 0xcee
-#define XK_hebrew_finalnun 0xcef
-#define XK_hebrew_nun 0xcf0
-#define XK_hebrew_samech 0xcf1
-#define XK_hebrew_samekh 0xcf1 /* deprecated */
-#define XK_hebrew_ayin 0xcf2
-#define XK_hebrew_finalpe 0xcf3
-#define XK_hebrew_pe 0xcf4
-#define XK_hebrew_finalzade 0xcf5
-#define XK_hebrew_finalzadi 0xcf5 /* deprecated */
-#define XK_hebrew_zade 0xcf6
-#define XK_hebrew_zadi 0xcf6 /* deprecated */
-#define XK_hebrew_qoph 0xcf7
-#define XK_hebrew_kuf 0xcf7 /* deprecated */
-#define XK_hebrew_resh 0xcf8
-#define XK_hebrew_shin 0xcf9
-#define XK_hebrew_taw 0xcfa
-#define XK_hebrew_taf 0xcfa /* deprecated */
-#define XK_Hebrew_switch 0xFF7E /* Alias for mode_switch */
-#endif /* XK_HEBREW */
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/X11/license.terms b/Master/tlpkg/tlperl/lib/Tk/X11/license.terms
deleted file mode 100644
index 03ca6fcb319..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/X11/license.terms
+++ /dev/null
@@ -1,39 +0,0 @@
-This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., and other parties. The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
-
-The authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
-
-IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
-FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
-DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
-IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
-NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
-MODIFICATIONS.
-
-GOVERNMENT USE: If you are acquiring this software on behalf of the
-U.S. government, the Government shall have only "Restricted Rights"
-in the software and related documentation as defined in the Federal
-Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
-are acquiring the software on behalf of the Department of Defense, the
-software shall be classified as "Commercial Computer Software" and the
-Government shall have only "Restricted Rights" as defined in Clause
-252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
-authors grant the U.S. Government and others acting in its behalf
-permission to use and distribute the software in accordance with the
-terms specified in this license.
diff --git a/Master/tlpkg/tlperl/lib/Tk/X11Font.pm b/Master/tlpkg/tlperl/lib/Tk/X11Font.pm
deleted file mode 100644
index 870dfd4b7dc..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/X11Font.pm
+++ /dev/null
@@ -1,184 +0,0 @@
-package Tk::X11Font;
-use vars qw($VERSION);
-$VERSION = '4.007'; # $Id: //depot/Tkutf8/Tk/X11Font.pm#7 $
-
-require Tk::Widget;
-require Tk::Xlib;
-use strict;
-
-Construct Tk::Widget 'X11Font';
-
-my @field = qw(foundry family weight slant swidth adstyle pixel
- point xres yres space avgwidth registry encoding);
-
-map { eval "sub \u$_ { shift->elem('$_', \@_) }" } @field;
-
-use overload '""' => 'as_string';
-
-sub new
-{
- my $pkg = shift;
- my $w = shift;
-
- my %me = ();
- my $d = $w->Display;
-
- local $_;
-
- if(scalar(@_) == 1)
- {
- my $pattern = shift;
-
- if($pattern =~ /\A(-[^-]*){14}\Z/)
- {
- @me{@field} = split(/-/, substr($pattern,1));
- }
- else
- {
- $me{Name} = $pattern;
-
- if($pattern =~ /^[^-]?-([^-]*-){2,}/)
- {
- my $f = $d->XListFonts($pattern,1);
-
- if($f && $f =~ /\A(-[^-]*){14}/)
- {
- my @f = split(/-/, substr($f,1));
- my @n = split(/-/, $pattern);
- my %f = ();
- my $i = 0;
-
- shift @n if($pattern =~ /\A-/);
-
- while(@n && @f)
- {
- if($n[0] eq '*')
- {
- shift @n;
- }
- elsif($n[0] eq $f[0])
- {
- $f{$field[$i]} = shift @n;
- }
- $i++;
- shift @f;
- }
-
- %me = %f
- unless(@n);
- }
- }
- }
- }
- else
- {
- %me = @_;
- }
-
- map { $me{$_} ||= '*' } @field;
-
- $me{Display} = $d;
- $me{MainWin} = $w->MainWindow;
-
- bless \%me, $pkg;
-}
-
-sub Pattern
-{
- my $me = shift;
- return join('-', '',@{$me}{@field});
-}
-
-sub Name
-{
- my $me = shift;
- my $max = wantarray ? shift || 128 : 1;
-
- if ($^O eq 'MSWin32' or ($^O eq 'cygwin' and $Tk::platform eq 'MSWin32'))
- {
- my $name = $me->{Name};
- if (!defined $name)
- {
- my $fm = $me->{'family'} || 'system';
- my $sz = -int($me->{'point'}/10) || -($me->{'pixel'}) || 12;
- my @opt = (-family => $fm, -size => $sz );
- my $wt = $me->{'weight'};
- if (defined $wt)
- {
- $wt = 'normal' unless $wt =~ /bold/i;
- push(@opt,-weight => lc($wt));
- }
- my $sl = $me->{'slant'};
- if (defined $sl)
- {
- $sl = ($sl =~ /^[io]/) ? 'italic' : 'roman';
- push(@opt,-slant => $sl);
- }
- $name = join(' ',@opt);
- }
- return $name;
- }
- else
- {
- my $name = $me->{Name} ||
- join('-', '',@{$me}{@field});
- return $me->{Display}->XListFonts($name,$max);
- }
-}
-
-sub as_string
-{
- return shift->Name;
-}
-
-sub elem
-{
- my $me = shift;
- my $elem = shift;
-
- return undef
- if(exists $me->{'Name'});
-
- my $old = $me->{$elem};
-
- $me->{$elem} = shift
- if(@_);
-
- $old;
-}
-
-sub Clone
-{
- my $me = shift;
-
- $me = bless { %$me }, ref($me);
-
- unless(exists $me->{'Name'})
- {
- while(@_)
- {
- my $k = shift;
- my $v = shift || $me->{MainWin}->BackTrace('Tk::Font->Clone( key => value, ... )');
- $me->{$k} = $v;
- }
- }
-
- $me;
-}
-
-sub ascent
-{
- my $me = shift;
- my $name = $me->Name;
- $me->{MainWin}->fontMetrics($name, '-ascent');
-}
-
-sub descent
-{
- my $me = shift;
- my $name = $me->Name;
- $me->{MainWin}->fontMetrics($name, '-descent');
-}
-
-1;
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/X11Font.pod b/Master/tlpkg/tlperl/lib/Tk/X11Font.pod
deleted file mode 100644
index bd5b353abe0..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/X11Font.pod
+++ /dev/null
@@ -1,88 +0,0 @@
-
-=head1 NAME
-
-Tk::Font - a class for finding X Fonts
-
-=for pm Tk/X11Font.pm
-
-=for category Tk Generic Methods
-
-=head1 SYNOPSIS
-
- use Tk::X11Font;
-
- $font = $widget->X11Font(foundry => 'adobe',
- family => 'times',
- point => 120
- );
-
- $font = $widget->X11Font('*-courier-medium-r-normal-*-*');
-
-=head1 DESCRIPTION
-
- This module can be use to interrogate the X server what fonts are
- avaliable.
-
-=head1 METHODS
-
-=head2 Foundry( [ $val ] )
-
-=head2 Family( [ $val ] )
-
-=head2 Weight( [ $val ] )
-
-=head2 Slant( [ $val ] )
-
-=head2 Swidth( [ $val ] )
-
-=head2 Adstyle( [ $val ] )
-
-=head2 Pixel( [ $val ] )
-
-=head2 Point( [ $val ] )
-
-=head2 Xres( [ $val ] )
-
-=head2 Yres( [ $val ] )
-
-=head2 Space( [ $val ] )
-
-=head2 Avgwidth( [ $val ] )
-
-=head2 Registry( [ $val ] )
-
-=head2 Encoding( [ $val ] )
-
-Set the given field in the font name to C<$val> if given and return the current
-or previous value
-
-=head2 Name( [ $max ] )
-
-In a list context it returns a list of all font names that match the
-fields given. It will return a maximum of C<$max> names, or 128 if
-$max is not given.
-
-In a scalar contex it returns the first matching name or undef
-
-=head2 Clone( [ key => value, [ ...]] )
-
-Create a duplicate of the curent font object and modify the given fields
-
-=head1 AUTHOR
-
-Graham Barr <Graham.Barr@tiuk.ti.com>
-
-=head1 HISTORY
-
-11-Jan-96 Initial version
-
-08-Nov-98 Renamed for Tk800.012
-
-=head1 COPYRIGHT
-
-Copyright (c) 1995-1996 Graham Barr. All rights reserved. This program is free
-software; you can redistribute it and/or modify it under the same terms
-as Perl itself.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Xcamel.gif b/Master/tlpkg/tlperl/lib/Tk/Xcamel.gif
deleted file mode 100644
index cb88bc0afd8..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Xcamel.gif
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/Tk/Xlib.pm b/Master/tlpkg/tlperl/lib/Tk/Xlib.pm
deleted file mode 100644
index 1432361dc18..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Xlib.pm
+++ /dev/null
@@ -1,15 +0,0 @@
-package Tk::Xlib;
-require DynaLoader;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/Xlib/Xlib.pm#4 $
-
-use Tk qw($XS_VERSION);
-use Exporter;
-
-use base qw(DynaLoader Exporter);
-@EXPORT_OK = qw(XDrawString XLoadFont XDrawRectangle);
-
-bootstrap Tk::Xlib;
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/Xrm.pm b/Master/tlpkg/tlperl/lib/Tk/Xrm.pm
deleted file mode 100644
index 88f0d76a8c2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Xrm.pm
+++ /dev/null
@@ -1,9 +0,0 @@
-package Tk::Xrm;
-
-use vars qw($VERSION);
-$VERSION = '4.005'; # $Id: //depot/Tkutf8/Tk/Xrm.pm#4 $
-
-use Tk ();
-1;
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/Xrm.pod b/Master/tlpkg/tlperl/lib/Tk/Xrm.pod
deleted file mode 100644
index 55f885bc849..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/Xrm.pod
+++ /dev/null
@@ -1,45 +0,0 @@
-
-=head1 NAME
-
-Tk::Xrm - X Resource/Defaults/Options routines that obey the rules.
-
-=for pm Tk/Xrm.pm
-
-=for category Creating and Configuring Widgets
-
-=head1 SYNOPSIS
-
- use Tk;
- use Tk::Xrm;
-
-=head1 DESCRIPTION
-
-Using this modules causes Tk's Option code to be replaced by versions
-which use routines from <X11/Xresource.h> - i.e. same ones every other
-X toolkit uses.
-
-Result is that "matching" of name/Class with the options database follows
-the same rules as other X toolkits. This makes it more predictable,
-and makes it easier to have a single ~/.Xdefaults file which gives sensible
-results for both Tk and (say) Motif applications.
-
-=head1 BUGS
-
-Currently B<optionAdd>(I<key> =E<gt> I<value>?, I<priority>?) ignores optional
-priority completely and just does XrmPutStringResource().
-Perhaps it should be more subtle and do XrmMergeDatabases() or
-XrmCombineDatabase().
-
-This version is a little slower than Tk's re-invention but there is
-more optimization that can be done.
-
-=head1 SEE ALSO
-
-L<Tk::option|Tk::option>
-
-=head1 KEYWORDS
-
-database, option, priority, retrieve
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/act_folder.xbm b/Master/tlpkg/tlperl/lib/Tk/act_folder.xbm
deleted file mode 100644
index fc82949945b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/act_folder.xbm
+++ /dev/null
@@ -1,5 +0,0 @@
-#define act_folder_width 16
-#define act_folder_height 10
-static unsigned char act_folder_bits[] = {
- 0xfc, 0x00, 0xaa, 0x0f, 0x55, 0x15, 0xeb, 0xff, 0x15, 0x80, 0x0b, 0x40,
- 0x05, 0x20, 0x03, 0x10, 0x01, 0x08, 0xff, 0x07};
diff --git a/Master/tlpkg/tlperl/lib/Tk/act_folder.xpm b/Master/tlpkg/tlperl/lib/Tk/act_folder.xpm
deleted file mode 100644
index 0e7d682713a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/act_folder.xpm
+++ /dev/null
@@ -1,22 +0,0 @@
-/* XPM */
-static char * act_folder_xpm[] = {
-/* width height num_colors chars_per_pixel */
-"16 12 4 1",
-/* colors */
-" s None c None",
-". c black",
-"X c yellow",
-"o c #5B5B57574646",
-/* pixels */
-" .... ",
-" .XXXX. ",
-" .XXXXXX. ",
-"............. ",
-".oXoXoXoXoXo. ",
-".XoX............",
-".oX.XXXXXXXXXXX.",
-".Xo.XXXXXXXXXX. ",
-".o.XXXXXXXXXXX. ",
-".X.XXXXXXXXXXX. ",
-"..XXXXXXXXXX.. ",
-"............. "};
diff --git a/Master/tlpkg/tlperl/lib/Tk/after.pod b/Master/tlpkg/tlperl/lib/Tk/after.pod
deleted file mode 100644
index 97c61ba380b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/after.pod
+++ /dev/null
@@ -1,168 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::after - Execute a command after a time delay
-
-=for category Binding Events and Callbacks
-
-=head1 SYNOPSIS
-
-S< >I<$widget>-E<gt>B<after>(I<ms>)
-
-S< >I<$id> = I<$widget>-E<gt>B<after>(I<ms>?,I<callback>?)
-
-S< >I<$id> = I<$widget>-E<gt>B<repeat>(I<ms>?,I<callback>?)
-
-S< >I<$widget>-E<gt>B<afterCancel>(I<$id>)
-
-S< >I<$id> = I<$widget>-E<gt>B<afterIdle>(I<callback>)
-
-S< >I<$widget>-E<gt>B<afterInfo>?(I<$id>)?
-
-S< >I<$id>-E<gt>B<time>(?I<delay>?)
-
-=head1 DESCRIPTION
-
-This method is used to delay execution of the program or to execute
-a callback in background sometime in the future.
-
-In perl/Tk I<$widget>-E<gt>B<after> is implemented via the class C<Tk::After>,
-and callbacks are associated with I<$widget>, and are automatically cancelled
-when the widget is destroyed. An almost identical interface, but without
-automatic cancel, and without repeat is provided via Tk::after method.
-
-=head2 Internal Details
-
-The internal Tk::After class has the following synopsis:
-
- $id = Tk::After->new($widget, tid, $time, 'once', callback);
- $id = Tk::After->new($widget, tid, $time, 'repeat', callback);
- $id->cancel;
- $id->time(?delay?);
-
-$id is a Tk::After object, an array of 5 elements:
-
-I<$widget> is the parent widget reference.
-
-I<tid> is the internal timer id, a unique string.
-
-I<$time> is the string 'idle', representing an idle queue timer, or a
-integer millisecond value.
-
-I<once> or I<repeat> specifies whether the timer is a one-time B<after>
-event, or a repeating B<repeat> event.
-
-I<callback> specifies a Perl/Tk Tk::Callback object.
-
-=head1 Changing a B<repeat> timer interval
-
-It's posible to change a B<repeat> timer's delay value, or even cancel
-any timer, using the B<time> method. If I<delay> is specified and
-non-zero, a new timer delay is established. If I<delay> is zero the
-timer event is canceled just as if I<$id>-E<gt>B<cancel> were invoked.
-In all cases the current millisecond timer delay is returned.
-
-Note: the new timer delay will take effect on the I<subsequent> timer
-event - this command will not cancel the pending timer event and
-re-issue it with the new delay time.
-
-=head1 The after() method has several forms as follows:
-
-=over 4
-
-=item I<$widget>-E<gt>B<after>(I<ms>)
-
-The value I<ms> must be an integer giving a time in milliseconds.
-The command sleeps for I<ms> milliseconds and then returns.
-While the command is sleeping the application does not respond to
-events.
-
-=item I<$widget>-E<gt>B<after>(I<ms>,I<callback>)
-
-In this form the command returns immediately, but it arranges
-for I<callback> be executed I<ms> milliseconds later as an
-event handler.
-The callback will be executed exactly once, at the given time.
-The command will be executed in context of I<$widget>.
-If an error occurs while executing the delayed command then the
-L<Tk::Error|Tk::Error> mechanism is used to report the error.
-The B<after> command returns an identifier (an object in the perl/Tk
-case) that can be used to cancel the delayed command using B<afterCancel>.
-
-=item I<$widget>-E<gt>B<repeat>(I<ms>,I<callback>)
-
-In this form the command returns immediately, but it arranges
-for I<callback> be executed I<ms> milliseconds later as an
-event handler. After I<callback> has executed it is re-scheduled,
-to be executed in a futher I<ms>, and so on until it is cancelled.
-
-=item I<$widget>-E<gt>B<afterCancel>(I<$id>)
-
-=item I<$id>-E<gt>B<cancel>
-
-Cancels the execution of a delayed command that
-was previously scheduled.
-I<$id> indicates which command should be canceled; it must have
-been the return value from a previous B<after> command.
-If the command given by I<$id> has already been executed (and
-is not scheduled to be executed again) then B<afterCancel>
-has no effect.
-
-=item I<$widget>-E<gt>B<afterCancel>(I<callback>)
-
-I<This form is not robust in perl/Tk - its use is deprecated.>
-This command should also cancel the execution of a delayed command.
-The I<callback> argument is compared with pending callbacks,
-if a match is found, that callback is
-cancelled and will never be executed; if no such callback is
-currently pending then the B<afterCancel> has no effect.
-
-=item I<$widget>-E<gt>B<afterIdle>(I<callback>)
-
-Arranges for I<callback> to be evaluated later as an idle callback.
-The script will be run exactly once, the next time the event
-loop is entered and there are no events to process.
-The command returns an identifier that can be used
-to cancel the delayed command using B<afterCancel>.
-If an error occurs while executing the script then the
-L<Tk::Error|Tk::Error> mechanism is used to report the error.
-
-=item I<$widget>-E<gt>B<afterInfo>?(I<$id>)?
-
-This command returns information about existing event handlers. If no
-I<$id> argument is supplied, the command returns a list of the
-identifiers for all existing event handlers created by the B<after>
-and B<repeat> commands for I<$widget>. If I<$id> is supplied, it
-specifies an existing handler; I<$id> must have been the return value
-from some previous call to B<after> or B<repeat> and it must not have
-triggered yet or been cancelled. In this case the command returns a
-list with three elements. The first element of the list is the
-callback associated with I<$id>, the second element is either B<idle>
-or the I<integer> timer millisecond value to indicate what kind of
-event handler it is, and the third is a string I<once> or I<repeat> to
-differentiate an B<after> from a B<repeat> event.
-
-=back
-
-The B<after>(I<ms>) and B<afterIdle> forms of the command
-assume that the application is event driven: the delayed commands
-will not be executed unless the application enters the event loop.
-In applications that are not normally event-driven,
-the event loop can be entered with the B<vwait> and B<update> commands.
-
-=head1 SEE ALSO
-
-L<Tk::Error|Tk::Error>
-L<Tk::callbacks|Tk::callbacks>
-
-=head1 KEYWORDS
-
-cancel, delay, idle callback, sleep, time
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tk/anim.gif b/Master/tlpkg/tlperl/lib/Tk/anim.gif
deleted file mode 100644
index 96a50b701be..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/anim.gif
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/Tk/arrowdownwin.xbm b/Master/tlpkg/tlperl/lib/Tk/arrowdownwin.xbm
deleted file mode 100644
index ea43fc75e7a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/arrowdownwin.xbm
+++ /dev/null
@@ -1,5 +0,0 @@
-#define arrowdownwin2_width 9
-#define arrowdownwin2_height 13
-static char arrowdownwin2_bits[] = {
- 0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x7c,0xfe,0x38,0xfe,0x10,
- 0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe};
diff --git a/Master/tlpkg/tlperl/lib/Tk/balArrow.xbm b/Master/tlpkg/tlperl/lib/Tk/balArrow.xbm
deleted file mode 100644
index ee0664a4727..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/balArrow.xbm
+++ /dev/null
@@ -1,4 +0,0 @@
-#define balArrow_width 6
-#define balArrow_height 6
-static char balArrow_bits[] = {
- 0x1f, 0x07, 0x07, 0x09, 0x11, 0x20};
diff --git a/Master/tlpkg/tlperl/lib/Tk/bind.pod b/Master/tlpkg/tlperl/lib/Tk/bind.pod
deleted file mode 100644
index f595a48e318..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/bind.pod
+++ /dev/null
@@ -1,583 +0,0 @@
-# Copyright (c) 1990 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::bind - Arrange for X events to invoke callbacks
-
-=for category Binding Events and Callbacks
-
-=head1 SYNOPSIS
-
-Retrieve bindings:
-
-S< >I<$widget>-E<gt>B<bind>
-
-S< >I<$widget>-E<gt>B<bind>(I<tag>)
-
-S< >I<$widget>-E<gt>B<bind>(I<sequence>)
-
-S< >I<$widget>-E<gt>B<bind>(I<tag>,I<sequence>)
-
-Associate and destroy bindings:
-
-S< >I<$widget>-E<gt>B<bind>(I<sequence>,I<callback>)
-
-S< >I<$widget>-E<gt>B<bind>(I<tag>,I<sequence>,I<callback>)
-
-=head1 DESCRIPTION
-
-The B<bind> method associates callbacks with X events.
-If I<callback> is specified, B<bind> will
-arrange for I<callback> to be evaluated whenever
-the event(s) given by I<sequence> occur in the window(s)
-identified by I<$widget> or I<tag>.
-If I<callback> is an empty string then the current binding for
-I<sequence> is destroyed, leaving I<sequence> unbound.
-In all of the cases where a I<callback> argument is provided,
-B<bind> returns an empty string.
-
-If I<sequence> is specified without a I<callback>, then the
-callback currently bound to I<sequence> is returned, or
-B<undef> is returned if there is no binding for I<sequence>.
-If neither I<sequence> nor I<callback> is specified, then the
-return value is a list whose elements are all the sequences
-for which there exist bindings for I<tag>.
-
-If no I<tag> is specified then the B<bind> refers to I<$widget>.
-If I<tag> is specified then it is typically a class name and the B<bind>
-refers to all instances of the class on the B<MainWindow> associated
-with I<$widget>. (It is possible for I<tag> to be another "widget object"
-but this practice is deprecated.) Perl's B<ref>(I<$object>) can be used
-to get the class name of any object.
-Each window has an associated list of tags, and a binding applies
-to a particular window if its tag is among those specified for
-the window.
-Although the B<bindtags> method may be used to assign an
-arbitrary set of binding tags to a window, the default binding
-tags provide the following behavior:
-
-If a tag is the name of an internal window the binding applies
-to that window.
-
-If the tag is the name of a toplevel window the binding applies
-to the toplevel window and all its internal windows.
-
-If the tag is the name of a class of widgets, such as B<Tk::Button>,
-the binding applies to all widgets in that class;
-
-If I<tag> has the value B<all>,
-the binding applies to all windows descended from the MainWindow
-of the application.
-
-=head1 EVENT PATTERNS
-
-The I<sequence> argument specifies a sequence of one or more event
-patterns, with optional white space between the patterns. Each event
-pat may take one of three forms. In the simplest case it is a single
-printing ASCII character, such as B<a> or B<[>. The character may not
-be a space character or the character <. This form of pattern matches
-a B<KeyPress> event for the particular character. The second form of
-pattern is longer but more general. It has the following syntax:
-
-S< >'<modifier-modifier-type-detail>'
-
-The entire event pattern is surrounded by angle brackets, and normally
-needs to be quoted, as angle brackets are special to perl.
-Inside the angle brackets are zero or more modifiers, an event
-type, and an extra piece of information (I<detail>) identifying
-a particular button or keysym. Any of the fields may be omitted,
-as long as at least one of I<type> and I<detail> is present.
-The fields must be separated by white space or dashes.
-
-The third form of pattern is used to specify a user-defined, named virtual
-event; see L<Tk::event> for details. It has the following syntax:
-
-S< >'<<name>>'
-
-The entire virtual event pattern is surrounded by double angle brackets.
-Inside the angle brackets is the user-defined name of the virtual event.
-Modifiers, such as B<Shift> or B<Control>, may not be combined with a
-virtual event to modify it. Bindings on a virtual event may be created
-before the virtual event is defined, and if the definition of a virtual
-event changes dynamically, all windows bound to that virtual event will
-respond immediately to the new definition.
-
-=head1 MODIFIERS
-
-Modifiers consist of any of the following values:
-
- Control Mod2, M2
- Shift Mod3, M3
- Lock Mod4, M4
- Button1, B1 Mod5, M5
- Button2, B2 Meta, M
- Button3, B3 Alt
- Button4, B4 Double
- Button5, B5 Triple
- Mod1, M1 Quadruple
-
-Where more than one value is listed, separated by commas, the values
-are equivalent.
-Most of the modifiers have the obvious X meanings.
-For example, B<Button1> requires that
-button 1 be depressed when the event occurs.
-For a binding to match a given event, the modifiers in the event
-must include all of those specified in the event pattern.
-An event may also contain additional modifiers not specified in
-the binding.
-For example, if button 1 is pressed while the shift and control keys
-are down, the pattern B<E<lt>Control-Button-1E<gt>> will match
-the event, but B<E<lt>Mod1-Button-1E<gt>> will not.
-If no modifiers are specified, then any combination of modifiers may
-be present in the event.
-
-B<Meta> and B<M> refer to whichever of the
-B<M1> through B<M5> modifiers is associated with the meta
-key(s) on the keyboard (keysyms B<Meta_R> and B<Meta_L>).
-If there are no meta keys, or if they are not associated with any
-modifiers, then B<Meta> and B<M> will not match any events.
-Similarly, the B<Alt> modifier refers to whichever modifier
-is associated with the alt key(s) on the keyboard (keysyms
-B<Alt_L> and B<Alt_R>).
-
-The B<Double>, B<Triple> and B<Quadruple> modifiers are a convenience
-for specifying double mouse clicks and other repeated events. They
-cause a particular event pattern to be repeated 2, 3 or 4 times, and
-also place a time and space requirement on the sequence: for a
-sequence of events to match a B<Double>, B<Triple> or B<Quadruple>
-pattern, all of the events must occur close together in time and
-without substantial mouse motion in between. For example,
-B<E<lt>Double-Button-1E<gt>> is equivalent to
-B<E<lt>Button-1E<gt>E<lt>Button-1E<gt>> with the extra time and space
-requirement.
-
-=head1 EVENT TYPES
-
-The I<type> field may be any of the standard X event types, with a
-few extra abbreviations. Below is a list of all the valid types;
-where two names appear together, they are synonyms.
-
-
- Activate Destroy Map
- ButtonPress, Button Enter MapRequest
- ButtonRelease Expose Motion
- Circulate FocusIn MouseWheel
- CirculateRequest FocusOut Property
- Colormap Gravity Reparent
- Configure KeyPress, Key ResizeRequest
- ConfigureRequest KeyRelease Unmap
- Create Leave Visibility
- Deactivate
-
-Most of the above events have the same fields and behaviors as events
-in the X Windowing system. You can find more detailed descriptions of
-these events in any X window programming book. A couple of the events
-are extensions to the X event system to support features unique to the
-Macintosh and Windows platforms. We provide a little more detail on
-these events here. These include:
-
- Activate
- Deactivate
-
-These two events are sent to every sub-window of a toplevel when they
-change state. In addition to the focus Window, the Macintosh platform
-and Windows platforms have a notion of an active window (which often
-has but is not required to have the focus). On the Macintosh, widgets
-in the active window have a different appearance than widgets in
-deactive windows. The Activate event is sent to all the sub-windows
-in a toplevel when it changes from being deactive to active.
-Likewise, the Deactive event is sent when the window's state changes
-from active to deactive. There are no use- ful percent substitutions
-you would make when binding to these events.
-
- MouseWheel
-
-Some mice on the Windows platform support a mouse wheel which is
-used for scrolling documents without using the scrollbars. By
-rolling the wheel, the system will generate MouseWheel events that
-the application can use to scroll. Like Key events the event is
-always routed to the window that currently has focus. When the
-event is received you can use the %D substitution to get the delta
-field for the event which is a integer value of motion that the
-mouse wheel has moved. The smallest value for which the system
-will report is defined by the OS. On Windows 95 & 98 machines
-this value is at least 120 before it is reported. However, higher
-resolution devices may be available in the future. The sign of
-the value determines which direction your widget should scroll.
-Positive values should scroll up and negative values should scroll
-down.
-
-The last part of a long event specification is I<detail>. In the
-case of a B<ButtonPress> or B<ButtonRelease> event, it is the
-number of a button (1-5). If a button number is given, then only an
-event on that particular button will match; if no button number is
-given, then an event on any button will match. Note: giving a
-specific button number is different than specifying a button modifier;
-in the first case, it refers to a button being pressed or released,
-while in the second it refers to some other button that is already
-depressed when the matching event occurs. If a button
-number is given then I<type> may be omitted: if will default
-to B<ButtonPress>. For example, the specifier B<E<lt>1E<gt>>
-is equivalent to B<E<lt>ButtonPress-1E<gt>>.
-
-If the event type is B<KeyPress> or B<KeyRelease>, then
-I<detail> may be specified in the form of an X keysym. Keysyms
-are textual specifications for particular keys on the keyboard;
-they include all the alphanumeric ASCII characters (e.g. ``a'' is
-the keysym for the ASCII character ``a''), plus descriptions for
-non-alphanumeric characters (``comma'' is the keysym for the comma
-character), plus descriptions for all the non-ASCII keys on the
-keyboard (``Shift_L'' is the keysm for the left shift key, and
-``F1'' is the keysym for the F1 function key, if it exists). The
-complete list of keysyms is not presented here; it is
-available in other X documentation and may vary from system to
-system.
-If necessary, you can use the B<'K'> notation described below
-to print out the keysym name for a particular key.
-If a keysym I<detail> is given, then the
-I<type> field may be omitted; it will default to B<KeyPress>.
-For example, B<E<lt>Control-commaE<gt>> is equivalent to
-B<E<lt>Control-KeyPress-commaE<gt>>.
-
-=head1 BINDING CALLBACKS AND SUBSTITUTIONS
-
-The I<callback> argument to B<bind> is a perl/Tk callback.
-which will be executed whenever the given event sequence occurs.
-(See L<Tk::callbacks> for description of the possible forms.)
-I<Callback> will be associated with the same B<MainWindow>
-that is associated with the I<$widget> that was used to invoke
-the B<bind> method, and it will run as though called from B<MainLoop>.
-If I<callback> contains
-any B<Ev>(I<%>) calls, then each "nested" B<Ev>(I<%>)
-"callback" will be evaluated when the event occurs to form arguments
-to be passed to the main I<callback>.
-The replacement
-depends on the character I<%>, as defined in the
-list below. Unless otherwise indicated, the
-replacement string is the numeric (decimal) value of the given field from
-the current event. Perl/Tk has enhanced this mechanism slightly compared
-to the comparable Tcl/Tk mechanism. The enhancements are not yet all
-reflected in the list below.
-Some of the substitutions are only valid for
-certain types of events; if they are used for other types of events
-the value substituted is undefined (not the same as B<undef>!).
-
-=over 4
-
-=item B<'#'>
-
-The number of the last client request processed by the server
-(the I<serial> field from the event). Valid for all event
-types.
-
-=item B<'a'>
-
-The I<above> field from the event,
-formatted as a hexadecimal number.
-Valid only for B<Configure> events.
-
-=item B<'b'>
-
-The number of the button that was pressed or released. Valid only
-for B<ButtonPress> and B<ButtonRelease> events.
-
-=item B<'c'>
-
-The I<count> field from the event. Valid only for B<Expose> events.
-
-=item B<'d'>
-
-The I<detail> field from the event. The B<'d'> is replaced by
-a string identifying the detail. For B<Enter>,
-B<Leave>, B<FocusIn>, and B<FocusOut> events,
-the string will be one of the following:
-
- NotifyAncestor NotifyNonlinearVirtual
- NotifyDetailNone NotifyPointer
- NotifyInferior NotifyPointerRoot
- NotifyNonlinear NotifyVirtual
-
-For B<ConfigureRequest> events, the string will be one of:
-
- Above Opposite
- Below None
- BottomIf TopIf
-
-For events other than these, the substituted string is undefined.
-(Note that this is I<not> the same as Detail part of sequence
-use to specify the event.)
-
-=item B<'f'>
-
-The I<focus> field from the event (B<0> or B<1>). Valid only
-for B<Enter> and B<Leave> events.
-
-=item B<'h'>
-
-The I<height> field from the event. Valid only for B<Configure>,
-B<ConfigureRequest>, B<Create>, B<Expose>, and B<ResizeRequest> events.
-
-=item B<'i'>
-
-The window field from the event, represented as a hexadecimal integer.
-
-=item B<'k'>
-
-The I<keycode> field from the event. Valid only for B<KeyPress>
-and B<KeyRelease> events.
-
-=item B<'m'>
-
-The I<mode> field from the event. The substituted string is one of
-B<NotifyNormal>, B<NotifyGrab>, B<NotifyUngrab>, or
-B<NotifyWhileGrabbed>. Valid only for B<Enter>,
-B<FocusIn>, B<FocusOut>, and B<Leave> events.
-
-=item B<'o'>
-
-The I<override_redirect> field from the event. Valid only for
-B<Map>, B<Reparent>, and B<Configure> events.
-
-=item B<'p'>
-
-The I<place> field from the event, substituted as one of the
-strings B<PlaceOnTop> or B<PlaceOnBottom>. Valid only
-for B<Circulate> and B<CirculateRequest> events.
-
-=item B<'s'>
-
-The I<state> field from the event. For B<ButtonPress>,
-B<ButtonRelease>, B<Enter>, B<KeyPress>, B<KeyRelease>,
-B<Leave>, and B<Motion> events, a decimal string
-is substituted. For B<Visibility>, one of the strings
-B<VisibilityUnobscured>, B<VisibilityPartiallyObscured>,
-and B<VisibilityFullyObscured> is substituted.
-
-=item B<'t'>
-
-The I<time> field from the event. Valid only for events that
-contain a I<time> field.
-
-=item B<'w'>
-
-The I<width> field from the event. Valid only for B<Configure>,
-B<ConfigueRequest>, B<Create>, B<Expose>, and B<ResizeREquest> events.
-
-=item B<'x'>
-
-The I<x> field from the event. Valid only for events containing
-an I<x> field.
-
-=item B<'y'>
-
-The I<y> field from the event. Valid only for events containing
-a I<y> field.
-
-=item B<'@'>
-
-The string "@I<x,y>" where I<x> and I<y> are as above.
-Valid only for events containing I<x> and I<y> fields.
-This format is used my methods of B<Tk::Text> and similar widgets.
-
-=item B<'A'>
-
-Substitutes the UNICODE character corresponding to the event, or
-the empty string if the event doesn't correspond to a UNICODE character
-(e.g. the shift key was pressed). B<XmbLookupString> does all the
-work of translating from the event to a UNICODE character.
-Valid only for B<KeyPress> and B<KeyRelease> events.
-
-=item B<'B'>
-
-The I<border_width> field from the event. Valid only for
-B<Configure>, B<ConfigureRequest> and B<Create> events.
-
-=item B<'D'>
-
-This reports the delta value of a B<MouseWheel> event. The delta
-value represents the rotation units the mouse wheel has been
-moved. On Windows 95 & 98 systems the smallest value for the
-delta is 120. Future systems may support higher resolution values
-for the delta. The sign of the value represents the direction the
-mouse wheel was scrolled.
-
-=item B<'E'>
-
-The I<send_event> field from the event. Valid for all event types.
-
-=item B<'K'>
-
-The keysym corresponding to the event, substituted as a textual
-string. Valid only for B<KeyPress> and B<KeyRelease> events.
-
-=item B<'N'>
-
-The keysym corresponding to the event, substituted as
-a decimal
-number. Valid only for B<KeyPress> and B<KeyRelease> events.
-
-=item B<'R'>
-
-The I<root> window identifier from the event. Valid only for
-events containing a I<root> field.
-
-=item B<'S'>
-
-The I<subwindow> window identifier from the event,
-as an object if it is one otherwise as a hexadecimal number.
-Valid only for events containing a I<subwindow> field.
-
-=item B<'T'>
-
-The I<type> field from the event. Valid for all event types.
-
-=item B<'W'>
-
-The window to which the event was reported (the
-$widget field from the event) - as an perl/Tk object.
-Valid for all event types.
-
-=item B<'X'>
-
-The I<x_root> field from the event.
-If a virtual-root window manager is being used then the substituted
-value is the corresponding x-coordinate in the virtual root.
-Valid only for
-B<ButtonPress>, B<ButtonRelease>, B<KeyPress>, B<KeyRelease>,
-and B<Motion> events.
-
-=item B<'Y'>
-
-The I<y_root> field from the event.
-If a virtual-root window manager is being used then the substituted
-value is the corresponding y-coordinate in the virtual root.
-Valid only for
-B<ButtonPress>, B<ButtonRelease>, B<KeyPress>, B<KeyRelease>,
-and B<Motion> events.
-
-=back
-
-=head1 MULTIPLE MATCHES
-
-It is possible for several bindings to match a given X event.
-If the bindings are associated with different I<tag>'s,
-then each of the bindings will be executed, in order.
-By default, a class binding will be executed first, followed
-by a binding for the widget, a binding for its toplevel, and
-an B<all> binding.
-The B<bindtags> method may be used to change this order for
-a particular window or to associate additional binding tags with
-the window.
-
-B<return> and B<Tk-E<gt>break> may be used inside a
-callback to control the processing of matching callbacks.
-If B<return> is invoked, then the current callback
-is terminated but Tk will continue processing callbacks
-associated with other I<tag>'s.
-If B<Tk-E<gt>break> is invoked within a callback,
-then that callback terminates and no other callbacks will be invoked
-for the event.
-(B<Tk-E<gt>break> is implemented via perl's B<die> with a special value
-which is "caught" by the perl/Tk "glue" code.)
-
-If more than one binding matches a particular event and they
-have the same I<tag>, then the most specific binding
-is chosen and its callback is evaluated.
-The following tests are applied, in order, to determine which of
-several matching sequences is more specific:
-(a) an event pattern that specifies a specific button or key is more specific
-than one that doesn't;
-(b) a longer sequence (in terms of number
-of events matched) is more specific than a shorter sequence;
-(c) if the modifiers specified in one pattern are a subset of the
-modifiers in another pattern, then the pattern with more modifiers
-is more specific.
-(d) a virtual event whose physical pattern matches the sequence is less
-specific than the same physical pattern that is not associated with a
-virtual event.
-(e) given a sequence that matches two or more virtual events, one
-of the virtual events will be chosen, but the order is undefined.
-
-If the matching sequences contain more than one event, then tests
-(c)-(e) are applied in order from the most recent event to the least recent
-event in the sequences. If these tests fail to determine a winner, then the
-most recently registered sequence is the winner.
-
-If there are two (or more) virtual events that are both triggered by the
-same sequence, and both of those virtual events are bound to the same window
-tag, then only one of the virtual events will be triggered, and it will
-be picked at random:
-
- $widget->eventAdd('<<Paste>>' => '<Control-y>');
- $widget->eventAdd('<<Paste>>' => '<Button-2>');
- $widget->eventAdd <<Scroll>>' => '<Button-2>');
- $widget->bind('Tk::Entry','<<Paste>>',sub { print 'Paste'});
- $widget->bind('Tk::Entry','<<Scroll>>', sub {print 'Scroll'});
-
-If the user types Control-y, the B<E<lt>E<lt>PasteE<gt>E<gt>> binding
-will be invoked, but if the user presses button 2 then one of
-either the B<E<lt>E<lt>PasteE<gt>E<gt>> or the B<E<lt>E<lt>ScrollE<gt>E<gt>> bindings will
-be invoked, but exactly which one gets invoked is undefined.
-
-If an X event does not match any of the existing bindings, then the
-event is ignored.
-An unbound event is not considered to be an error.
-
-=head1 MULTI-EVENT SEQUENCES AND IGNORED EVENTS
-
-When a I<sequence> specified in a B<bind> method contains
-more than one event pattern, then its callback is executed whenever
-the recent events (leading up to and including the current event)
-match the given sequence. This means, for example, that if button 1 is
-clicked repeatedly the sequence B<E<lt>Double-ButtonPress-1E<gt>> will match
-each button press but the first.
-If extraneous events that would prevent a match occur in the middle
-of an event sequence then the extraneous events are
-ignored unless they are B<KeyPress> or B<ButtonPress> events.
-For example, B<E<lt>Double-ButtonPress-1E<gt>> will match a sequence of
-presses of button 1, even though there will be B<ButtonRelease>
-events (and possibly B<Motion> events) between the
-B<ButtonPress> events.
-Furthermore, a B<KeyPress> event may be preceded by any number
-of other B<KeyPress> events for modifier keys without the
-modifier keys preventing a match.
-For example, the event sequence B<aB> will match a press of the
-B<a> key, a release of the B<a> key, a press of the B<Shift>
-key, and a press of the B<b> key: the press of B<Shift> is
-ignored because it is a modifier key.
-Finally, if several B<Motion> events occur in a row, only
-the last one is used for purposes of matching binding sequences.
-
-=head1 ERRORS
-
-If an error occurs in executing the callback for a binding then the
-B<Tk::Error> mechanism is used to report the error.
-The B<Tk::Error> mechanism will be executed at same call level,
-and associated with the same B<MainWindow> as
-as the callback was invoked.
-
-=head1 CAVEATS
-
-Note that for the B<Canvas> widget, the call to B<bind> has to be
-fully qualified. This is because there is already a bind method for
-the B<Canvas> widget, which binds individual canvas tags.
-
-S< >I<$canvas>-E<gt>B<Tk::bind>
-
-=head1 SEE ALSO
-
-L<Tk::Error|Tk::Error>
-L<Tk::callbacks|Tk::callbacks>
-L<Tk::bindtags|Tk::bindtags>
-
-=head1 KEYWORDS
-
-Event, binding
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/bindtags.pod b/Master/tlpkg/tlperl/lib/Tk/bindtags.pod
deleted file mode 100644
index 3ee6ddb9473..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/bindtags.pod
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright (c) 1990 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::bindtags - Determine which bindings apply to a window, and order of evaluation
-
-=for category Binding Events and Callbacks
-
-=head1 SYNOPSIS
-
-I<$widget>-E<gt>B<bindtags>([I<tagList>]);
-
-I<@tags> = I<$widget>-E<gt>B<bindtags>;
-
-=head1 DESCRIPTION
-
-When a binding is created with the B<bind> command, it is
-associated either with a particular window such as I<$widget>,
-a class name such as B<Tk::Button>, the keyword B<all>, or any
-other string.
-All of these forms are called I<binding tags>.
-Each window has a list of binding tags that determine how
-events are processed for the window.
-When an event occurs in a window, it is applied to each of the
-window's tags in order: for each tag, the most specific binding
-that matches the given tag and event is executed.
-See the L<Tk::bind> documentation for more information on the matching
-process.
-
-By default, each window has four binding tags consisting of the
-the window's class name, name of the window, the name of the window's
-nearest toplevel ancestor, and B<all>, in that order.
-Toplevel windows have only three tags by default, since the toplevel
-name is the same as that of the window.
-
-Note that this order is I<different> from order used by Tcl/Tk.
-Tcl/Tk has the window ahead of the class name in the binding order.
-This is because Tcl is procedural rather than object oriented and
-the normal way for Tcl/Tk applications to override class bindings
-is with an instance binding. However, with perl/Tk the normal way
-to override a class binding is to derive a class. The perl/Tk order
-causes instance bindings to execute after the class binding, and
-so instance bind callbacks can make use of state changes (e.g. changes
-to the selection) than the class bindings have made.
-
-The B<bindtags> command allows the binding tags for a window to be
-read and modified.
-
-If I<$widget>-E<gt>B<bindtags> is invoked without an argument, then the
-current set of binding tags for $widget is returned as a list.
-If the I<tagList> argument is specified to B<bindtags>,
-then it must be a reference to and array; the tags for $widget are changed
-to the elements of the array. (A reference to an anonymous array can
-be created by enclosin the elements in B<[ ]>.)
-The elements of I<tagList> may be arbitrary strings or widget objects,
-if no window exists for an object at the time an event is processed,
-then the tag is ignored for that event.
-The order of the elements in I<tagList> determines the order in
-which binding callbacks are executed in response to events.
-For example, the command
-
- $b->bindtags([$b,ref($b),$b->toplevel,'all'])
-
-applies the Tcl/Tk binding order which binding callbacks will be
-evaluated for a button (say) B<$b> so that B<$b>'s instance bindings
-are invoked first, following by bindings for B<$b>'s class, followed by
-bindings for B<$b>'s toplevel, followed by 'B<all>' bindings.
-
-If I<tagList> is an empty list i.e. B<[]>, then the binding
-tags for $widget are returned to the perl/Tk default state described above.
-
-The B<bindtags> command may be used to introduce arbitrary
-additional binding tags for a window, or to remove standard tags.
-For example, the command
-
- $b->bindtags(['TrickyButton',$b->toplevel,'all'])
-
-replaces the (say) B<Tk::Button> tag for B<$b> with B<TrickyButton>.
-This means that the default widget bindings for buttons, which are
-associated with the B<Tk::Button> tag, will no longer apply to B<$b>,
-but any bindings associated with B<TrickyButton> (perhaps some
-new button behavior) will apply.
-
-=head1 BUGS
-
-The current mapping of the 'native' Tk behaviour of this method
-i.e. returning a list but only accepting a reference to an array is
-counter intuitive. The perl/Tk interface may be tidied up, returning
-a list is sensible so, most likely fix will be to allow a list to be
-passed to I<set> the bindtags.
-
-=head1 SEE ALSO
-
-L<Tk::bind|Tk::bind>
-L<Tk::callbacks|Tk::callbacks>
-
-=head1 KEYWORDS
-
-binding, event, tag
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/callbacks.pod b/Master/tlpkg/tlperl/lib/Tk/callbacks.pod
deleted file mode 100644
index 5b62cb7c12c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/callbacks.pod
+++ /dev/null
@@ -1,104 +0,0 @@
-# $Id: callbacks.pod 1.3 Thu, 27 Nov 1997 00:26:00 +0100 ach $
-
-=head1 NAME
-
-Tk::callbacks - Specifying code for Tk to call.
-
-=for category Binding Events and Callbacks
-
-=head1 SYNOPSIS
-
-One can specify a callback in one of the following ways:
-
-Without arguments:
-
- ... => \&subname, ...
- ... => sub { ... }, ...
- ... => 'methodname', ...
-
-or with arguments:
-
- ... => [ \&subname, args ... ], ...
- ... => [ sub { ... }, args... ], ...
- ... => [ 'methodname', args... ], ...
-
-=head1 DESCRIPTION
-
-Perl/Tk has a callback, where Tcl/Tk has a command string (i.e. a fragment of
-Tcl to be executed). A perl/Tk callback can take one of the following
-basic forms:
-
-=over 4
-
-=item * Reference to a subroutine C<\E<amp>subname>
-
-=item * Anonymous subroutine (closure) C<sub { ... }>
-
-=item * A method name C<'methodname'>
-
-=back
-
-Any of these can be provided with arguments by enclosing them and the
-arguments in B<[]>. Here are some examples:
-
-I<$mw>->B<bind>(I<$class,> B<"E<lt>DeleteE<gt>" =E<gt> 'Delete'>);
-
-This will call I<$widget>->B<Delete>, the I<$widget> being provided (by bind) as
-the one where the Delete key was pressed.
-
-While having bind provide a widget object for you is ideal in many cases
-it can be irritating in others. Using the list form this behaviour
-can be modified:
-
-I<$a>-E<gt>B<bind>(B<"E<lt>DeleteE<gt>">,[I<$b> =E<gt> 'Delete']);
-
-because the first element I<$b> is an object bind
-will call I<$b>-E<gt>B<Delete>.
-
-Note that method/object ordering only matters for C<bind> callbacks,
-the auto-quoting in perl5.001 makes the first of these a little more readable:
-
- $w->configure(-yscrollcommand => [ set => $ysb]);
- $w->configure(-yscrollcommand => [ $ysb => 'set' ]);
-
-but both will call C<$ysb>-E<gt>set(args provided by Tk)
-
-Another use of arguments allows you to write generalized methods which are
-easier to re-use:
-
- $a->bind("<Next>",['Next','Page']);
- $a->bind("<Down>",['Next','Line']);
-
-This will call C<$a>-E<gt>I<Next>('Page') or C<$a>-E<gt>I<Next>('Line') respectively.
-
-Note that the contents of the C<[]> are evaluated by perl when the
-callback is created. It is often desirable for the arguments provided
-to the callback to depend on the details of the event which caused
-it to be executed. To allow for this callbacks can be nested using the
-C<Ev(...)> "constructor".
-C<Ev(...)> inserts callback objects into the
-argument list. When perl/Tk glue code is preparing the argument list for
-the callback it is about to call it spots these special objects and
-recursively applies the callback process to them.
-
-=head1 EXAMPLES
-
- $entry->bind('<Return>' => [$w , 'validate', Ev(['get'])]);
-
- $toplevel->bind('all', '<Visibility>', [\&unobscure, Ev('s')]);
-
- $mw->bind($class, '<Down>', ['SetCursor', Ev('UpDownLine',1)]);
-
-=head1 SEE ALSO
-
-L<Tk::bind|Tk::bind>
-L<Tk::after|Tk::after>
-L<Tk::options|Tk::options>
-L<Tk::fileevent|Tk::fileevent>
-
-=head1 KEYWORDS
-
-callback, closure, anonymous subroutine, bind
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/cbxarrow.xbm b/Master/tlpkg/tlperl/lib/Tk/cbxarrow.xbm
deleted file mode 100644
index ae4054488b9..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/cbxarrow.xbm
+++ /dev/null
@@ -1,6 +0,0 @@
-#define cbxarrow_width 11
-#define cbxarrow_height 14
-static char cbxarrow_bits[] = {
- 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00,
- 0xfe, 0x03, 0xfc, 0x01, 0xf8, 0x00, 0x70, 0x00, 0x20, 0x00, 0x00, 0x00,
- 0xfe, 0x03, 0xfe, 0x03};
diff --git a/Master/tlpkg/tlperl/lib/Tk/chooseColor.pod b/Master/tlpkg/tlperl/lib/Tk/chooseColor.pod
deleted file mode 100644
index 62c2906e77a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/chooseColor.pod
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright (c) 1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::chooseColor - pops up a dialog box for the user to select a color.
-
-=for category Popups and Dialogs
-
-=head1 SYNOPSIS
-
-S< >I<$color> = I<$widget>-E<gt>B<chooseColor>?(I<-option>=E<gt>I<value>, ...)?;
-
-=head1 DESCRIPTION
-
-The method B<chooseColor> is implemented as a perl wrapper
-on the core tk "command" B<tk_chooseColor>, and I<$widget>
-is passed as the argument to the hidden B<-parent> option.
-The implementation of internal B<tk_chooseColor> is platform
-specific, on Win32 it is a native dialog, and on UNIX/X11 it is implemented
-in terms of L<Tk::ColorEditor|Tk::ColorEditor>.
-
-The B<chooseColor> method pops up a dialog box for the
-user to select a color. The following I<option-value> pairs are
-possible as command line arguments:
-
-=over 4
-
-=item B<-initialcolor>=E<gt>I<color>
-
-Specifies the color to display in the color dialog when it pops
-up. I<color> must be in a form acceptable to the B<Tk_GetColor>
-function.
-
-=item B<-parent>=E<gt>$widget
-
-Makes $widget the logical parent of the color dialog. The color
-dialog is displayed on top of its parent window.
-
-=item B<-title>=E<gt>I<titleString>
-
-Specifies a string to display as the title of the dialog box. If this
-option is not specified, then a default title will be displayed.
-
-=back
-
-If the user selects a color, B<tk_chooseColor> will return the
-name of the color in a form acceptable to B<Tk_GetColor>. If the
-user cancels the operation, the command will return B<undef>.
-
-=head1 EXAMPLE
-
- $widget->configure(-fg => $parent->chooseColor(-initialcolor => 'gray',
- -title => "Choose color"));
-
-=head1 KEYWORDS
-
-color selection dialog
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/chooseDirectory.pod b/Master/tlpkg/tlperl/lib/Tk/chooseDirectory.pod
deleted file mode 100644
index 71dc7233902..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/chooseDirectory.pod
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright (c) 1998-2000 by Scriptics Corporation.
-# All rights reserved.
-#
-# RCS: @(#) $Id: chooseDirectory.n,v 1.1 2000/01/27 00:23:10 ericm Exp $
-#
-
-=head1 NAME
-
-Tk::chooseDirectory - pops up a dialog box for the user to select a directory.
-
-=for category Tk Generic Methods
-
-=head1 SYNOPSIS
-
-I<$widget>-E<gt>B<chooseDirectory>( ?I<option value ...>? );
-
-=head1 DESCRIPTION
-
-The method B<chooseDirectory> is implemented as a perl wrapper on the
-core tk "command" B<tk_chooseDirectory>, and I<$widget> is passed as
-the argument to the hidden B<-parent> option.
-
-The B<chooseDirectory>
-method pops up a dialog box for the user to select a directory. The
-following I<option-value> pairs are possible as command line
-arguments:
-
-=over 4
-
-=item B<-initialdir> I<dirname>
-
-Specifies that the directories in I<directory> should be displayed
-when the dialog pops up. If this parameter is not specified, then
-the directories in the current working directory are displayed. If the
-parameter specifies a relative path, the return value will convert the
-relative path to an absolute path. This option may not always work on
-the Macintosh. This is not a bug. Rather, the I<General Controls>
-control panel on the Mac allows the end user to override the
-application default directory.
-
-=item B<-parent> $widget
-
-Makes $widget the logical parent of the dialog. The dialog
-is displayed on top of its parent window.
-
-=item B<-title> I<titleString>
-
-Specifies a string to display as the title of the dialog box. If this
-option is not specified, then a default title will be displayed.
-
-=item B<-mustexist> I<boolean>
-
-Specifies whether the user may specify non-existant directories. If
-this parameter is true, then the user may only select directories that
-already exist. The default value is I<false>.
-
-=back
-
-=head1 CAVEATS
-
-Perl does not have a concept of encoded filesystems yet. This means
-that operations on filenames like C<opendir> and C<open> still use
-byte semantics. Tk however uses character semantics internally, which
-means that you can get filenames with the UTF-8 flag set in functions
-like C<chooseDirectory>, C<getOpenFile> and similar. It's the user's
-responsibility to determine the encoding of the underlying filesystem
-and convert the result into bytes, e.g.
-
- use Encode;
- ...
- my $dir = $mw->chooseDirectory;
- $dir = encode("windows-1252", $dir);
- opendir DIR, $dir or die $!;
- ...
-
-See also L<perlunicode/When Unicode Does Not Happen> and
-L<perltodo/Unicode in Filenames>.
-
-=head1 EXAMPLE
-
- my $dir = $mw->chooseDirectory(-initialdir => '~',
- -title => 'Choose a directory');
- if (!defined $dir) {
- warn 'No directory selected';
- } else {
- warn "Selected $dir";
- }
-
-=head1 SEE ALSO
-
-L<Tk::getOpenFile>, L<Tk::getOpenFile>
-
-=head1 KEYWORDS
-
-directory selection dialog
diff --git a/Master/tlpkg/tlperl/lib/Tk/composite.pod b/Master/tlpkg/tlperl/lib/Tk/composite.pod
deleted file mode 100644
index c1dda4dbd19..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/composite.pod
+++ /dev/null
@@ -1,171 +0,0 @@
-# $Id: composite.pod 1.2 Wed, 12 Nov 1997 00:30:45 +0100 ach $
-
-=head1 NAME
-
-Tk::composite - Defining a new composite widget class
-
-=for category Derived Widgets
-
-=head1 SYNOPSIS
-
- package Tk::MyNewWidget;
-
- use Tk::widgets qw/ list of Tk widgets /;
- use base qw/ Tk::Frame /; # or Tk::Toplevel
-
- Construct Tk::Widget 'MyNewWidget';
-
- sub ClassInit {
- my( $class, $mw ) = @_;
- #... e.g., class bindings here ...
- $class->SUPER::ClassInit( $mw );
- }
-
- sub Populate {
- my( $self, $args ) = @_;
-
- my $flag = delete $args->{-flag};
- if( defined $flag ) {
- # handle -flag => xxx which can only be done at create
- # time the delete above ensures that new() does not try
- # and do $self->configure( -flag => xxx );
- }
-
- $self->SUPER::Populate( $args );
-
- $self = $self->Component( ... );
-
- $self->Delegates( ... );
-
- $self->ConfigSpecs(
- '-cursor' => [ SELF, 'cursor', 'Cursor', undef ],
- '-something' => [ METHOD, dbName, dbClass, default ],
- '-text' => [ $label, dbName, dbClass, default ],
- '-heading' => [ {-text => $head},
- heading, Heading, 'My Heading' ],
- );
- }
-
- sub something {
- my( $self, $value) = @_;
- if ( @_ > 1 ) {
- # set it
- }
- return # current value
- }
-
- 1;
-
- __END__
-
-
- =head1 NAME
-
- Tk::Whatever - a whatever widget
-
- =head1 SYNOPSIS
-
- use Tk::Whatever;
-
- $widget = $parent->Whatever(...);
-
- =head1 DESCRIPTION
-
- ...
-
-=head1 DESCRIPTION
-
-The intention behind a composite is to create a higher-level widget,
-sometimes called a "super-widget" or "mega-widget". Most often,
-a composite will be
-built upon other widgets by B<using> them, as opposed to specializing on them.
-For example, the supplied composite widget B<LabEntry> is I<made of> an
-B<Entry> and a B<Label>; it is neither a I<kind-of> B<Label>
-nor is it a I<kind-of> B<Entry>.
-
-Most of the work of a composite widget consistd in creating subwidgets,
-arranging to dispatch configure options to the proper subwidgets and manage
-composite-specific configure options.
-
-=head1 GLORY DETAILS
-
-Depending on your Perl/Tk knowledge this section may be enlighting
-or confusing.
-
-=head2 Composite Widget
-
-Since Perl/Tk is heavilly using an object-oriented approach, it is no
-suprise that creating a composite goes through a B<new()> method.
-However, the composite does not normally define a B<new()> method
-itself: it is usually sufficient to simply inherit it from
-B<Tk::Widget>.
-
-This is what happens when the composite uses
-
- use base qw/ Tk::Frame /; # or Tk::Toplevel
-
-to specify its inheritance chain. To complete the initialisation of the
-widget, it must call the B<Construct> method from class B<Widget>. That
-method accepts the name of the new class to create, i.e. the package name
-of your composite widget:
-
- Construct Tk::Widget 'MyNewWidget';
-
-Here, B<MyNewWidget> is the package name (aka the widget's B<class>). This
-will define a constructor method for B<MyNewWidget>, normally named after the
-widget's class. Instanciating that composite in client code would
-the look like:
-
- $mw = MainWindow->new; # creates a top-level MainWindow
-
- $self = $mw->MyNewWidget(); # creates an instance of the
- # composite widget MyNewWidget
-
-Whenever a composite is instanciated in client code,
-C<Tk::Widget::new()> will be invoked via the widget's class
-constructor. That B<new> method will call
-
- $self->Populate(\%args);
-
-where I<%args> is the arguments passed to the widget's constructor. Note
-that B<Populate> receives a B<reference> to the hash array
-containing all arguments.
-
-B<Populate> is typically defined in the composite class (package),
-which creates the characteristic subwidgets of the class.
-
-=head2 Creating Subwidgets
-
-Subwidget creation happens usually in B<Populate()>.
-The composite usually calls the
-subwidget's constructor method either directly, for "private" subwidgets,
-or indirectly through the B<Component> method for subwidgets that should
-be advertised to clients.
-
-B<Populate> may call B<Delegates> to direct calls to methods
-of chosen subwidgets. For simple composites, typically most if not all
-methods are directed
-to a single subwidget - e.g. B<ScrListbox> directs all methods to the core
-B<Listbox> so that I<$composite>-E<gt>B<get>(...) calls
-I<$listbox>-E<gt>B<get>(...).
-
-=head2 Defining mega-widget options
-
-B<Populate> should also call B<ConfigSpecs()> to specify the
-way that configure-like options should be handled in the composite.
-Once B<Populate> returns, method B<Tk::Frame::ConfigDefault>
-walks through the B<ConfigSpecs> entries and populates
-%$args hash with defaults for options from X resources (F<.Xdefaults>, etc).
-
-When B<Populate> returns to B<Tk::Widget::new()>,
-a call to B<$self>-E<gt>I<configure>(%$args) is made which sets *all*
-the options.
-
-=head1 SEE ALSO
-
-L<Tk::ConfigSpecs|Tk::ConfigSpecs>
-L<Tk::mega|Tk::mega>
-L<Tk::Derived|Tk::Derived>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/LabEnLabRad.pm b/Master/tlpkg/tlperl/lib/Tk/demos/LabEnLabRad.pm
deleted file mode 100644
index c49ef0b1881..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/LabEnLabRad.pm
+++ /dev/null
@@ -1,41 +0,0 @@
-package Tk::LabeledEntryLabeledRadiobutton;
-require Tk::Frame;
-
-use vars qw($VERSION);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/demos/demos/LabEnLabRad.pm#4 $
-
-use base qw(Tk::Frame);
-
-require Tk::LabEntry;
-require Tk::LabRadio;
-
-Construct Tk::Widget 'LabeledEntryLabeledRadiobutton';
-
-sub Populate
-{
-
- # LabeledEntryLabeledRadiobutton(s) constructor.
- #
- # Advertised subwidgets: labeled_entry, labeled_radiobutton.
-
- my($cw, $args) = @_;
-
- my $e = $cw->Component(LabEntry => 'labeled_entry');
- $e->pack(-side => 'left', -expand => 1, -fill => 'both');
-
- my $r = $cw->Component(LabRadiobutton => 'labeled_radiobutton',
- -radiobuttons => delete $args->{'-radiobuttons'}
- );
- $r->pack(-side => 'left', -expand => 1, -fill => 'both');
- $cw->ConfigSpecs(-entry_label => [ Tk::Configure->new($e,'-label'), undef, undef, 'Entry' ],
- -radio_label => [ Tk::Configure->new($r,'-label'), undef, undef, Choose ],
- -entry_variable => [ Tk::Configure->new($e,'-textvariable'), undef, undef, \$cw->{Config}{-text} ],
- -radio_variable => [ Tk::Configure->new($r,'-variable'), undef, undef, undef ],
- -indicatoron => [ 'labeled_radiobutton' , undef, undef, undef ],
- DEFAULT => [ ['labeled_entry','labeled_radiobutton']],
- );
- $cw->Delegates(DEFAULT => 'labeled_entry');
-
-} # end LabeledEntryLabeledRadiobutton(s) constructor
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/QuitPB.xpm b/Master/tlpkg/tlperl/lib/Tk/demos/images/QuitPB.xpm
deleted file mode 100644
index 54f69c505d2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/QuitPB.xpm
+++ /dev/null
@@ -1,48 +0,0 @@
-/* XPM */
-static char * QuitPB_xpm[] = {
-"64 40 5 1",
-" c none",
-". c #000000000000",
-"X c #00000000FFFF",
-"o c #FFFFFFFFFFFF",
-"O c #820782078207",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ............. ",
-" .XXXXXXXXXXX. ",
-" .XXXXXXXXXXX. ",
-" .XXXXXXXXXXX. ",
-" .XXXXXXXXXXX. ",
-" .XXXXXXXXXXX. ",
-" .XXXXXXXXXXX. .. . ",
-" .XXXXXXX..XX. . . . . ",
-" .XXXXXX.o .X. . . . ",
-" .XXXXXX. .X. . . . . . .... ",
-" .XXXXXXX..XX. . . . . . . ",
-" .XXXXXXXXXXX. . . . . . . ",
-" .XXXXXXXXXXX. . . . . . . ",
-" .XXXXXXXXXXX. . . . . . . . ",
-" .XXXXXXXXXXX. . .. . . . . ",
-" .XXXXXXXXXXX. . .. .. .. . . ",
-" .......XXXXXXXXXXX........ .. . .. . . .. ",
-" OOOOOO.XXXXXXXXXXX.OOOOOOO ",
-" .......................... ........ ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/QuitPBa.xpm b/Master/tlpkg/tlperl/lib/Tk/demos/images/QuitPBa.xpm
deleted file mode 100644
index 6f00b62c1a5..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/QuitPBa.xpm
+++ /dev/null
@@ -1,48 +0,0 @@
-/* XPM */
-static char * QuitPBa_xpm[] = {
-"64 40 5 1",
-" c none",
-". c #820782078207",
-"X c #000000000000",
-"o c #000082070000",
-"O c #00000000FFFF",
-" ",
-" ",
-" . ",
-" . ",
-" . .X ",
-" . ... ",
-" XXXXXXXXXXXXX . X.oo ",
-" XX X .Xooo ",
-" XX X oX.ooo . ",
-" XOX . X ooo.oo . ",
-" XOX . X . .. oooo . ",
-" XOOX . X . . oo . ",
-" XOOX XX . . ",
-" XOOX XXXX ",
-" XOOX XXX XX XX X ",
-" XOOX XX XXX XX X X X X ",
-" XOOX XXX XX X X X X ",
-" XOXX . XXXXXX X X X X X XXXX ",
-" XX X .. XXXX X X X X X X ",
-" XX X . . XXX X X X X X X ",
-" XOXX .. XXXXX X X X X X X ",
-" XOOX . . XX X XXX X X X X X X X ",
-" XXXXXXXOOX . XXXXXXXXX X XX X X X X ",
-" ......XOOX . XX....XXX X XX XX XX X X ",
-" XXXXXXXOOX . . XXXXXXXXX XX X XX X X XX ",
-" XOX . XXXX X ",
-" XOX . XXX XXXXXXXX ",
-" XX . ",
-" XX . ",
-" . ",
-" . ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/c.icon b/Master/tlpkg/tlperl/lib/Tk/demos/images/c.icon
deleted file mode 100644
index 6ae6638097c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/c.icon
+++ /dev/null
@@ -1,16 +0,0 @@
-#define c.icon_width 32
-#define c.icon_height 32
-#define c.icon_x_hot 16
-#define c.icon_y_hot 16
-static char c.icon_bits[] = {
- 0xfc, 0xff, 0xff, 0x00, 0x04, 0x00, 0x80, 0x01, 0x04, 0x00, 0x80, 0x02,
- 0x04, 0x00, 0x80, 0x04, 0x04, 0x00, 0x80, 0x08, 0x04, 0x00, 0x80, 0x10,
- 0x04, 0x00, 0x80, 0x20, 0x04, 0x00, 0x80, 0x7f, 0x04, 0x00, 0x00, 0x60,
- 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60,
- 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60, 0x04, 0xe0, 0x37, 0x60,
- 0x04, 0xf8, 0x3f, 0x60, 0x04, 0x38, 0x3c, 0x60, 0x04, 0x1c, 0x38, 0x60,
- 0x04, 0x0c, 0x30, 0x60, 0x04, 0x0c, 0x00, 0x60, 0x04, 0x0c, 0x00, 0x60,
- 0x04, 0x1c, 0x00, 0x60, 0x04, 0x38, 0x70, 0x60, 0x64, 0xf8, 0x7f, 0x60,
- 0x64, 0xe0, 0x1f, 0x60, 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60,
- 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60,
- 0xfc, 0xff, 0xff, 0x7f, 0xf8, 0xff, 0xff, 0x7f};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/cursor.cur b/Master/tlpkg/tlperl/lib/Tk/demos/images/cursor.cur
deleted file mode 100644
index c74a85ff8ff..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/cursor.cur
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/cursor.mask b/Master/tlpkg/tlperl/lib/Tk/demos/images/cursor.mask
deleted file mode 100644
index 2548715dd01..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/cursor.mask
+++ /dev/null
@@ -1,6 +0,0 @@
-#define cursor_mask_width 17
-#define cursor_mask_height 12
-static char cursor_mask_bits[] = {
- 0x20, 0x00, 0x00, 0x90, 0x20, 0x00, 0x40, 0x40, 0x00, 0x0c, 0x40, 0x00,
- 0x1c, 0x8f, 0x00, 0x9c, 0xbf, 0x00, 0xfc, 0x3f, 0x01, 0xfc, 0x7f, 0x01,
- 0xfe, 0x7f, 0x01, 0xfe, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x7f, 0x00};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/cursor.xbm b/Master/tlpkg/tlperl/lib/Tk/demos/images/cursor.xbm
deleted file mode 100644
index 2646ea7aa77..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/cursor.xbm
+++ /dev/null
@@ -1,8 +0,0 @@
-#define cursor_width 17
-#define cursor_height 12
-#define cursor_x_hot 8
-#define cursor_y_hot 7
-static char cursor_bits[] = {
- 0x20, 0x00, 0x00, 0x90, 0x20, 0x00, 0x40, 0x40, 0x00, 0x0c, 0x40, 0x00,
- 0x14, 0x8f, 0x00, 0x94, 0xb0, 0x00, 0x7c, 0x20, 0x01, 0x0c, 0x4c, 0x01,
- 0x0a, 0x42, 0x01, 0x42, 0x82, 0x00, 0x3b, 0x87, 0x00, 0xff, 0x7f, 0x00};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/dir.icon b/Master/tlpkg/tlperl/lib/Tk/demos/images/dir.icon
deleted file mode 100644
index af2dc3e4fa1..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/dir.icon
+++ /dev/null
@@ -1,16 +0,0 @@
-#define nfm_dir.icon_width 32
-#define nfm_dir.icon_height 32
-#define nfm_dir.icon_x_hot 16
-#define nfm_dir.icon_y_hot 16
-static char nfm_dir.icon_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x08, 0x20,
- 0xfe, 0xff, 0x07, 0x40, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0,
- 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0,
- 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0,
- 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0,
- 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0,
- 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0,
- 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/dir.mask b/Master/tlpkg/tlperl/lib/Tk/demos/images/dir.mask
deleted file mode 100644
index 1cd406b5802..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/dir.mask
+++ /dev/null
@@ -1,16 +0,0 @@
-#define nfm_dir.mask_width 32
-#define nfm_dir.mask_height 32
-#define nfm_dir.mask_x_hot 16
-#define nfm_dir.mask_y_hot 16
-static char nfm_dir.mask_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0xf8, 0x3f,
- 0xfe, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/earth.gif b/Master/tlpkg/tlperl/lib/Tk/demos/images/earth.gif
deleted file mode 100644
index 2f603849780..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/earth.gif
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/earthris.gif b/Master/tlpkg/tlperl/lib/Tk/demos/images/earthris.gif
deleted file mode 100644
index c4ee4737279..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/earthris.gif
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/face b/Master/tlpkg/tlperl/lib/Tk/demos/images/face
deleted file mode 100644
index 03d829f4d1f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/face
+++ /dev/null
@@ -1,173 +0,0 @@
-#define face_width 108
-#define face_height 144
-#define face_x_hot 48
-#define face_y_hot 80
-static char face_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x09,
- 0x20, 0x80, 0x24, 0x05, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0x88,
- 0x24, 0x20, 0x80, 0x24, 0x00, 0x00, 0x00, 0x10, 0x80, 0x04, 0x00, 0x01,
- 0x00, 0x01, 0x40, 0x0a, 0x09, 0x00, 0x92, 0x04, 0x80, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x10, 0x40, 0x12, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00, 0x84,
- 0x24, 0x40, 0x22, 0xa8, 0x02, 0x14, 0x84, 0x92, 0x40, 0x42, 0x12, 0x04,
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x52, 0x11, 0x00, 0x12, 0x00,
- 0x40, 0x02, 0x00, 0x20, 0x00, 0x08, 0x00, 0xaa, 0x02, 0x54, 0x85, 0x24,
- 0x00, 0x10, 0x12, 0x00, 0x00, 0x81, 0x44, 0x00, 0x90, 0x5a, 0x00, 0xea,
- 0x1b, 0x00, 0x80, 0x40, 0x40, 0x02, 0x00, 0x08, 0x00, 0x20, 0xa2, 0x05,
- 0x8a, 0xb4, 0x6e, 0x45, 0x12, 0x04, 0x08, 0x00, 0x00, 0x00, 0x10, 0x02,
- 0xa8, 0x92, 0x00, 0xda, 0x5f, 0x10, 0x00, 0x10, 0xa1, 0x04, 0x20, 0x41,
- 0x02, 0x00, 0x5a, 0x25, 0xa0, 0xff, 0xfb, 0x05, 0x41, 0x02, 0x04, 0x00,
- 0x00, 0x08, 0x40, 0x80, 0xec, 0x9b, 0xec, 0xfe, 0x7f, 0x01, 0x04, 0x20,
- 0x90, 0x02, 0x04, 0x00, 0x08, 0x20, 0xfb, 0x2e, 0xf5, 0xff, 0xff, 0x57,
- 0x00, 0x04, 0x02, 0x00, 0x00, 0x20, 0x01, 0xc1, 0x6e, 0xab, 0xfa, 0xff,
- 0xff, 0x05, 0x90, 0x20, 0x48, 0x02, 0x00, 0x04, 0x20, 0xa8, 0xdf, 0xb5,
- 0xfe, 0xff, 0xff, 0x0b, 0x01, 0x00, 0x01, 0x00, 0x80, 0x80, 0x04, 0xe0,
- 0xbb, 0xef, 0xff, 0xff, 0x7f, 0x01, 0x00, 0x04, 0x48, 0x02, 0x00, 0x20,
- 0x80, 0xf4, 0x6f, 0xfb, 0xff, 0xff, 0xff, 0x20, 0x90, 0x40, 0x02, 0x00,
- 0x00, 0x04, 0x08, 0xb8, 0xf6, 0xff, 0xff, 0xdf, 0xbe, 0x12, 0x45, 0x10,
- 0x90, 0x04, 0x90, 0x00, 0x22, 0xfa, 0xff, 0xff, 0xff, 0xbb, 0xd7, 0xe9,
- 0x3a, 0x02, 0x02, 0x00, 0x04, 0x90, 0x80, 0xfe, 0xdf, 0xf6, 0xb7, 0xef,
- 0xbe, 0x56, 0x57, 0x40, 0x48, 0x09, 0x00, 0x04, 0x00, 0xfa, 0xf5, 0xdf,
- 0xed, 0x5a, 0xd5, 0xea, 0xbd, 0x09, 0x00, 0x00, 0x40, 0x00, 0x92, 0xfe,
- 0xbf, 0x7d, 0xb7, 0x6a, 0x55, 0xbf, 0xf7, 0x02, 0x11, 0x01, 0x00, 0x91,
- 0x00, 0xff, 0xff, 0xaf, 0x55, 0x55, 0x5b, 0xeb, 0xef, 0x22, 0x04, 0x04,
- 0x04, 0x00, 0xa4, 0xff, 0xf7, 0xad, 0xaa, 0xaa, 0xaa, 0xbe, 0xfe, 0x03,
- 0x20, 0x00, 0x10, 0x44, 0x80, 0xff, 0x7f, 0x55, 0x12, 0x91, 0x2a, 0xeb,
- 0xbf, 0x0b, 0x82, 0x02, 0x00, 0x00, 0xd1, 0x7f, 0xdf, 0xa2, 0xa4, 0x54,
- 0x55, 0xfd, 0xfd, 0x47, 0x08, 0x08, 0x00, 0x21, 0xe4, 0xff, 0x37, 0x11,
- 0x09, 0xa5, 0xaa, 0xb6, 0xff, 0x0d, 0x80, 0x00, 0x00, 0x04, 0xd0, 0xff,
- 0x4f, 0x44, 0x20, 0x48, 0x55, 0xfb, 0xff, 0x27, 0x11, 0x02, 0x40, 0x40,
- 0xe2, 0xfb, 0x15, 0x11, 0x4a, 0x55, 0x4a, 0x7d, 0xf7, 0x0f, 0x00, 0x00,
- 0x04, 0x08, 0xf8, 0xdf, 0x52, 0x44, 0x01, 0x52, 0xb5, 0xfa, 0xff, 0x0f,
- 0x49, 0x02, 0x00, 0x02, 0xe9, 0xf6, 0x0a, 0x11, 0xa4, 0x88, 0x4a, 0x6d,
- 0xff, 0x5f, 0x00, 0x00, 0x10, 0x20, 0xf0, 0x2f, 0x21, 0x44, 0x10, 0x52,
- 0xb5, 0xfa, 0xff, 0x0f, 0x44, 0x04, 0x80, 0x08, 0xf8, 0xab, 0x8a, 0x00,
- 0x81, 0xa4, 0xd4, 0xd6, 0xfe, 0x2f, 0x00, 0x00, 0x04, 0x40, 0xb5, 0x2d,
- 0x21, 0x08, 0x04, 0x90, 0xaa, 0xfa, 0xff, 0x1f, 0x11, 0x01, 0x00, 0x04,
- 0xf0, 0x57, 0x0a, 0x22, 0x40, 0x4a, 0xda, 0x5e, 0xfb, 0x1f, 0x40, 0x00,
- 0x40, 0x20, 0xba, 0x95, 0x90, 0x00, 0x01, 0xa0, 0xaa, 0xea, 0xff, 0x5f,
- 0x02, 0x02, 0x00, 0x01, 0xe8, 0x57, 0x05, 0x00, 0x00, 0x12, 0xd5, 0xfe,
- 0xfd, 0x1f, 0x48, 0x00, 0x04, 0x48, 0x7a, 0x95, 0x08, 0x02, 0x10, 0x40,
- 0xaa, 0x55, 0xf7, 0x1f, 0x00, 0x09, 0x20, 0x00, 0xf8, 0x57, 0x22, 0x10,
- 0x00, 0x28, 0xa9, 0xfa, 0xff, 0x5f, 0x02, 0x00, 0x00, 0x49, 0xdd, 0x29,
- 0x01, 0x00, 0x80, 0x80, 0xaa, 0xd7, 0xff, 0x0f, 0x10, 0x00, 0x08, 0x00,
- 0xf8, 0x96, 0x08, 0x00, 0x00, 0x20, 0x54, 0xfa, 0xee, 0x3f, 0x81, 0x04,
- 0x40, 0x24, 0xfe, 0x55, 0x82, 0x00, 0x00, 0x82, 0xd2, 0xad, 0xff, 0x0f,
- 0x08, 0x00, 0x04, 0x80, 0x6c, 0x97, 0x00, 0x00, 0x02, 0x20, 0xa9, 0xf6,
- 0xdf, 0x5f, 0x00, 0x02, 0x20, 0x09, 0xfa, 0x49, 0x12, 0x00, 0x20, 0x84,
- 0x54, 0xdb, 0xfe, 0x1f, 0x91, 0x00, 0x00, 0x00, 0xf8, 0x2b, 0x00, 0x20,
- 0x00, 0x40, 0xa4, 0xf6, 0xbb, 0x1f, 0x04, 0x00, 0x44, 0x92, 0x7e, 0x95,
- 0x02, 0x00, 0x00, 0x89, 0xaa, 0xdd, 0xff, 0x1f, 0x20, 0x09, 0x10, 0x00,
- 0xf4, 0x57, 0x20, 0x01, 0x08, 0x20, 0xa9, 0x76, 0xff, 0x5f, 0x02, 0x00,
- 0x00, 0x21, 0xfc, 0x4a, 0x05, 0x00, 0x01, 0x80, 0x54, 0xdb, 0xff, 0x1e,
- 0x08, 0x02, 0x04, 0x08, 0xf9, 0x2b, 0x00, 0x00, 0x40, 0x28, 0xd2, 0xf6,
- 0xff, 0xbf, 0x80, 0x00, 0x90, 0x00, 0xbc, 0x92, 0x08, 0x10, 0x00, 0x82,
- 0x54, 0xdb, 0xff, 0x1f, 0x20, 0x00, 0x00, 0x44, 0xf9, 0x55, 0x02, 0x01,
- 0x00, 0x20, 0xaa, 0xbd, 0xfd, 0x3f, 0x08, 0x04, 0x04, 0x10, 0xf4, 0x2a,
- 0x01, 0x00, 0x22, 0x80, 0xd4, 0xf6, 0xff, 0x5f, 0x82, 0x00, 0x40, 0x02,
- 0xf8, 0x55, 0x20, 0x00, 0x00, 0x50, 0x6a, 0xdf, 0xfe, 0x3f, 0x00, 0x00,
- 0x00, 0x48, 0xe9, 0x4a, 0x05, 0x08, 0x00, 0xa5, 0xd5, 0xf5, 0xff, 0x3f,
- 0x10, 0x01, 0x10, 0x01, 0xb0, 0xab, 0x92, 0x02, 0x40, 0xf8, 0xbf, 0xde,
- 0xfe, 0x5f, 0x02, 0x04, 0x04, 0x48, 0xfa, 0xd4, 0x6f, 0x20, 0x84, 0xef,
- 0xff, 0xfb, 0xff, 0x1f, 0x20, 0x00, 0x00, 0x00, 0xe0, 0xed, 0xbf, 0x0b,
- 0xa1, 0x7e, 0xff, 0xbf, 0xfd, 0x5f, 0x04, 0x01, 0x20, 0x49, 0xd2, 0xfb,
- 0xfe, 0x55, 0xd4, 0xff, 0xff, 0xf6, 0xff, 0x07, 0x00, 0x04, 0x00, 0x00,
- 0xc0, 0xaa, 0xfb, 0x2b, 0xa2, 0xfe, 0xff, 0xdf, 0xee, 0x1f, 0x91, 0x00,
- 0x82, 0xa4, 0xa4, 0xf5, 0xff, 0x57, 0xd5, 0xff, 0xbf, 0xfd, 0xff, 0x4d,
- 0x00, 0x00, 0x20, 0x00, 0x88, 0x5b, 0xff, 0x2f, 0x69, 0xff, 0xff, 0xdb,
- 0xfe, 0x1f, 0x24, 0x02, 0x00, 0x49, 0xa2, 0xd6, 0xff, 0x5f, 0xea, 0xff,
- 0x7f, 0x7f, 0x7f, 0x0d, 0x00, 0x00, 0x10, 0x00, 0x40, 0xab, 0xf7, 0xbb,
- 0xf0, 0xdf, 0xff, 0xd5, 0xff, 0xbf, 0x82, 0x04, 0x42, 0x24, 0x91, 0xd5,
- 0xaa, 0xae, 0xd4, 0xaa, 0x52, 0x7b, 0xff, 0x15, 0x08, 0x00, 0x00, 0x01,
- 0x04, 0x55, 0xd5, 0x55, 0x70, 0x5b, 0x75, 0xdd, 0xdf, 0x1f, 0x40, 0x00,
- 0x08, 0x48, 0xa0, 0x4a, 0xa9, 0x56, 0xea, 0x56, 0xad, 0x6a, 0x7d, 0x9b,
- 0x04, 0x01, 0x00, 0x02, 0x42, 0x2a, 0xd5, 0xaa, 0xa8, 0xaa, 0xaa, 0xfa,
- 0xdf, 0x2f, 0x10, 0x04, 0x22, 0x48, 0x08, 0x45, 0x2a, 0x15, 0x68, 0x55,
- 0x55, 0xd7, 0x76, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x40, 0x2a, 0x80, 0xa0,
- 0xb2, 0x09, 0x48, 0xb9, 0xdf, 0x17, 0x22, 0x01, 0x00, 0x24, 0x45, 0x8a,
- 0x24, 0x4a, 0x54, 0x51, 0x91, 0xf6, 0x6e, 0x4b, 0x00, 0x04, 0x90, 0x00,
- 0x80, 0x52, 0x00, 0x20, 0x69, 0x05, 0xa4, 0xaa, 0xff, 0x1e, 0x48, 0x00,
- 0x02, 0x92, 0x08, 0x05, 0x81, 0x94, 0xd4, 0x92, 0x40, 0xfd, 0xb6, 0x8b,
- 0x00, 0x01, 0x40, 0x00, 0x82, 0x54, 0x00, 0x48, 0x68, 0x05, 0x90, 0xa4,
- 0xef, 0x06, 0x24, 0x00, 0x08, 0x12, 0x10, 0x05, 0x00, 0x10, 0xb5, 0x01,
- 0x42, 0xfb, 0xbf, 0x43, 0x00, 0x09, 0x00, 0x40, 0x81, 0xa8, 0x08, 0x4a,
- 0xaa, 0x96, 0x90, 0xac, 0x6d, 0x15, 0x22, 0x00, 0x20, 0x09, 0x04, 0x15,
- 0x80, 0x28, 0xdc, 0x01, 0x24, 0xfb, 0xbf, 0x01, 0x80, 0x04, 0x09, 0x00,
- 0x40, 0x48, 0x02, 0x45, 0xb2, 0x2e, 0x41, 0x6d, 0xef, 0x05, 0x11, 0x00,
- 0x40, 0x52, 0x02, 0x15, 0x29, 0x2a, 0xac, 0x42, 0x54, 0xfb, 0x3b, 0x51,
- 0x84, 0x00, 0x08, 0x00, 0x20, 0x54, 0x80, 0x05, 0xb5, 0x3d, 0xa2, 0xb6,
- 0xdf, 0x00, 0x20, 0x04, 0x20, 0x49, 0x89, 0xa8, 0x6a, 0x29, 0xac, 0xd6,
- 0x54, 0xff, 0x3f, 0x84, 0x00, 0x01, 0x04, 0x10, 0x00, 0x94, 0xa8, 0x56,
- 0xda, 0x5f, 0xab, 0xd5, 0x1e, 0x10, 0x48, 0x00, 0x90, 0x82, 0x48, 0xa8,
- 0xb2, 0xac, 0xfd, 0x55, 0xd5, 0xfe, 0x9f, 0x80, 0x00, 0x0a, 0x02, 0x08,
- 0x02, 0x55, 0x5a, 0x75, 0xff, 0xaf, 0xb6, 0xf7, 0x2d, 0x12, 0x92, 0x00,
- 0x10, 0x20, 0x10, 0xa8, 0x54, 0xd5, 0xbf, 0x5d, 0xad, 0xdd, 0x0f, 0x00,
- 0x00, 0x04, 0x40, 0x09, 0x84, 0xa8, 0xaa, 0x5a, 0xed, 0xeb, 0x6a, 0xff,
- 0x9f, 0xa4, 0x24, 0x01, 0x02, 0xa0, 0x20, 0x50, 0x55, 0xd5, 0xbe, 0xae,
- 0xad, 0xfd, 0x16, 0x00, 0x10, 0x04, 0x20, 0x0a, 0x08, 0xb4, 0xaa, 0x95,
- 0xaa, 0x7b, 0xb7, 0xdb, 0x5f, 0x92, 0x04, 0x01, 0x84, 0x20, 0x21, 0x51,
- 0xd5, 0x2a, 0xa9, 0xee, 0xd5, 0xfe, 0x0d, 0x00, 0x20, 0x04, 0x10, 0x00,
- 0x08, 0x50, 0xe9, 0xd7, 0xd4, 0xfb, 0xb5, 0xff, 0x9f, 0x24, 0x09, 0x01,
- 0x42, 0x4a, 0xa2, 0x64, 0xd5, 0x55, 0x7b, 0x7f, 0xda, 0x7d, 0x4f, 0x00,
- 0x20, 0x04, 0x00, 0x80, 0x00, 0xa0, 0x2a, 0x13, 0x84, 0x6a, 0x55, 0xff,
- 0x1d, 0x48, 0x8a, 0x00, 0x94, 0x24, 0x8a, 0xc8, 0xaa, 0x42, 0x20, 0x5d,
- 0xf5, 0xff, 0x5f, 0x01, 0x00, 0x02, 0x01, 0x00, 0x20, 0xa2, 0x4a, 0x1a,
- 0x82, 0x56, 0xda, 0xbd, 0x3f, 0x92, 0x92, 0x00, 0x90, 0x92, 0x00, 0x40,
- 0x95, 0x6a, 0xf4, 0x55, 0x6d, 0xff, 0xd6, 0x00, 0x00, 0x0a, 0x04, 0x20,
- 0x14, 0x49, 0x4b, 0xaa, 0xaa, 0x56, 0xf5, 0xff, 0xbf, 0xab, 0xa4, 0x00,
- 0x20, 0x89, 0x40, 0x80, 0xaa, 0xaa, 0xaa, 0xaa, 0xde, 0xbf, 0xeb, 0x03,
- 0x00, 0x02, 0x04, 0x02, 0x0a, 0x10, 0x2b, 0x2a, 0x55, 0x5b, 0xf5, 0xff,
- 0xd7, 0x2f, 0x92, 0x00, 0x10, 0x28, 0x21, 0x01, 0x56, 0x95, 0xa0, 0x56,
- 0xdf, 0xef, 0xea, 0x87, 0x40, 0x0a, 0x42, 0x41, 0x00, 0x90, 0xaa, 0x52,
- 0xb6, 0xad, 0xfa, 0xff, 0xd5, 0x2f, 0x14, 0x00, 0x00, 0x04, 0x95, 0x04,
- 0xaa, 0xac, 0x55, 0x6b, 0xff, 0xb7, 0xea, 0x9f, 0x40, 0x02, 0x28, 0x51,
- 0x00, 0x40, 0x58, 0xd5, 0xda, 0xd6, 0x6e, 0x7f, 0xf9, 0x3f, 0x12, 0x04,
- 0x02, 0x04, 0x49, 0x25, 0x55, 0xaa, 0x77, 0xab, 0xff, 0x2b, 0xfd, 0x3f,
- 0x48, 0x01, 0x20, 0x41, 0x00, 0x00, 0x58, 0xa9, 0xda, 0xea, 0xfd, 0xaf,
- 0xfa, 0xff, 0x02, 0x04, 0x08, 0x14, 0x29, 0x49, 0x52, 0x55, 0x55, 0x55,
- 0xff, 0x8d, 0xfe, 0x3f, 0xa8, 0x00, 0x02, 0x41, 0x00, 0x02, 0xa0, 0xa2,
- 0xaa, 0xea, 0xff, 0x53, 0xfd, 0xff, 0x02, 0x04, 0x50, 0x04, 0x25, 0xa8,
- 0x54, 0x49, 0x52, 0xb5, 0xbf, 0x8a, 0xfe, 0xff, 0xa9, 0x08, 0x04, 0x50,
- 0x80, 0x02, 0xa1, 0x2a, 0x95, 0xea, 0xff, 0xa1, 0xff, 0xff, 0x03, 0x02,
- 0x90, 0x02, 0x09, 0x08, 0x44, 0x49, 0x52, 0xbd, 0x7f, 0xca, 0xff, 0xff,
- 0x2b, 0x09, 0x04, 0x48, 0x40, 0x82, 0x90, 0x56, 0xa9, 0xf6, 0xbf, 0xd0,
- 0xff, 0xff, 0x47, 0x00, 0x50, 0x02, 0x15, 0x11, 0x40, 0x95, 0xaa, 0xfd,
- 0x2f, 0xe9, 0xff, 0xff, 0x8f, 0x0a, 0x84, 0x50, 0x40, 0x84, 0x14, 0xaa,
- 0x6a, 0xff, 0x5f, 0xf2, 0xff, 0xff, 0x7f, 0x00, 0x10, 0x02, 0x09, 0x10,
- 0x40, 0x7d, 0xf7, 0xff, 0x0b, 0xfc, 0xff, 0xff, 0xaf, 0x02, 0x84, 0x50,
- 0x42, 0x85, 0x12, 0xd0, 0xdd, 0xff, 0xa7, 0xf2, 0xff, 0xff, 0xff, 0x04,
- 0x00, 0x0a, 0x08, 0x10, 0x48, 0xf8, 0xff, 0xff, 0x0a, 0xfe, 0xff, 0xff,
- 0x7f, 0x03, 0xa4, 0x80, 0xa2, 0x8a, 0x02, 0x68, 0xff, 0xff, 0x52, 0xfd,
- 0xff, 0xff, 0xff, 0x07, 0x00, 0x2a, 0x08, 0x20, 0x28, 0xdc, 0xff, 0x5f,
- 0x05, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x92, 0x40, 0x22, 0x09, 0x02, 0xea,
- 0xfb, 0xaf, 0x48, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x12, 0x81, 0xa0,
- 0x48, 0x9c, 0x6e, 0x93, 0xa2, 0xff, 0xff, 0xff, 0xff, 0x07, 0xa8, 0x40,
- 0x28, 0x0a, 0x02, 0x74, 0xb5, 0x45, 0x81, 0xff, 0xff, 0xff, 0xff, 0x0f,
- 0x02, 0x0a, 0x81, 0x20, 0x08, 0xae, 0xaa, 0x90, 0xe8, 0xff, 0xff, 0xff,
- 0xff, 0x0f, 0x90, 0x40, 0x28, 0x88, 0x12, 0x58, 0x15, 0x50, 0xd0, 0xff,
- 0xff, 0xff, 0xff, 0x0f, 0x44, 0x0a, 0x41, 0x21, 0x08, 0xae, 0x04, 0x14,
- 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x10, 0x40, 0x14, 0x88, 0x04, 0xba,
- 0x02, 0x28, 0xe8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x42, 0x15, 0x41, 0x21,
- 0x05, 0xad, 0x00, 0x05, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x10, 0x40,
- 0x24, 0x8a, 0x0e, 0x36, 0x00, 0x0a, 0xf4, 0xff, 0xff, 0xff, 0xff, 0x0f,
- 0x42, 0x25, 0x90, 0xd0, 0x8b, 0xc2, 0x41, 0x05, 0xfc, 0xff, 0xff, 0xff,
- 0xff, 0x0f, 0x10, 0x08, 0x05, 0xe8, 0x8e, 0x58, 0x80, 0x02, 0xfa, 0xff,
- 0xff, 0xff, 0xff, 0x0f, 0x4a, 0x20, 0xa8, 0xba, 0x0b, 0x2b, 0x51, 0x01,
- 0xfe, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x8a, 0x02, 0xe8, 0xaf, 0x84,
- 0x90, 0x04, 0xfd, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x52, 0x21, 0x54, 0xbf,
- 0x1f, 0x15, 0xa5, 0x02, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x08,
- 0x01, 0xfa, 0xb6, 0xa4, 0x52, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
- 0x4a, 0xa2, 0x54, 0xef, 0x5f, 0x4b, 0xa4, 0x80, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x0f, 0x80, 0x10, 0x82, 0xfe, 0xbf, 0x92, 0x52, 0x42, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x0f, 0x12, 0x42, 0xa8, 0xbf, 0x1f, 0x24, 0x80, 0xa0,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x84, 0x28, 0x8a, 0xf7, 0x37, 0x80,
- 0x52, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x10, 0x82, 0xe0, 0xff,
- 0x1f, 0x00, 0x20, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x84, 0x28,
- 0xca, 0xff, 0x1f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
- 0x10, 0x42, 0xf0, 0xfd, 0x1b, 0x00, 0x50, 0xf0, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x0f, 0xa4, 0x10, 0xc5, 0xff, 0x1f, 0x00, 0x00, 0xe0, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x0f, 0x00, 0x22, 0xf8, 0xff, 0x0e, 0x00, 0x00, 0xf0,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xaa, 0x88, 0xe2, 0xff, 0x0f, 0x10,
- 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x25, 0xfa, 0xff,
- 0x0f, 0x01, 0x11, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xfb,
- 0xfb, 0xff, 0x7f, 0x5d, 0xd5, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/flagdown b/Master/tlpkg/tlperl/lib/Tk/demos/images/flagdown
deleted file mode 100644
index 55abc51825b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/flagdown
+++ /dev/null
@@ -1,27 +0,0 @@
-#define flagdown_width 48
-#define flagdown_height 48
-static char flagdown_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00,
- 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0x00, 0x00,
- 0x00, 0x00, 0x70, 0x80, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x03, 0x00,
- 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x04,
- 0x00, 0x00, 0x03, 0x00, 0x06, 0x06, 0x00, 0x80, 0x01, 0x00, 0x06, 0x07,
- 0x00, 0xc0, 0x1f, 0x00, 0x87, 0x07, 0x00, 0xe0, 0x7f, 0x80, 0xc7, 0x07,
- 0x00, 0x70, 0xe0, 0xc0, 0xe5, 0x07, 0x00, 0x38, 0x80, 0xe1, 0x74, 0x07,
- 0x00, 0x18, 0x80, 0x71, 0x3c, 0x07, 0x00, 0x0c, 0x00, 0x3b, 0x1e, 0x03,
- 0x00, 0x0c, 0x00, 0x1f, 0x0f, 0x00, 0x00, 0x86, 0x1f, 0x8e, 0x07, 0x00,
- 0x00, 0x06, 0x06, 0xc6, 0x05, 0x00, 0x00, 0x06, 0x00, 0xc6, 0x05, 0x00,
- 0x00, 0x06, 0x00, 0xc6, 0x04, 0x00, 0x00, 0x06, 0x00, 0x06, 0x04, 0x00,
- 0x7f, 0x06, 0x00, 0x06, 0xe4, 0xff, 0x00, 0x06, 0x00, 0x06, 0x04, 0x00,
- 0x00, 0x06, 0x00, 0x06, 0x04, 0x00, 0x00, 0x06, 0x00, 0x06, 0x06, 0x00,
- 0x00, 0x06, 0x00, 0x06, 0x03, 0x00, 0x00, 0x06, 0x00, 0x86, 0x01, 0x00,
- 0x00, 0x06, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x06, 0x00, 0x66, 0x00, 0x00,
- 0x00, 0x06, 0x00, 0x36, 0x00, 0x00, 0x00, 0x06, 0x00, 0x3e, 0x00, 0x00,
- 0x00, 0xfe, 0xff, 0x2f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x27, 0x00, 0x00,
- 0x00, 0x00, 0x88, 0x20, 0x00, 0x00, 0x00, 0x00, 0x88, 0x20, 0x00, 0x00,
- 0x00, 0x00, 0x88, 0x20, 0x00, 0x00, 0x00, 0x00, 0x88, 0x20, 0x00, 0x00,
- 0x00, 0x00, 0x88, 0x20, 0x00, 0x00, 0x00, 0x00, 0x88, 0x20, 0x00, 0x00,
- 0x00, 0x00, 0x88, 0x20, 0x00, 0x00, 0x00, 0x00, 0x88, 0x20, 0x00, 0x00,
- 0xf7, 0xbf, 0x8e, 0xfc, 0xdf, 0xf8, 0x9d, 0xeb, 0x9b, 0x76, 0xd2, 0x7a,
- 0x46, 0x30, 0xe2, 0x0f, 0xe1, 0x47, 0x55, 0x84, 0x48, 0x11, 0x84, 0x19};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/flagup b/Master/tlpkg/tlperl/lib/Tk/demos/images/flagup
deleted file mode 100644
index 6eb0d846a32..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/flagup
+++ /dev/null
@@ -1,27 +0,0 @@
-#define flagup_width 48
-#define flagup_height 48
-static char flagup_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00,
- 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xef, 0x6a, 0x00,
- 0x00, 0x00, 0xc0, 0x7b, 0x75, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x6a, 0x00,
- 0x00, 0x00, 0x30, 0x60, 0x75, 0x00, 0x00, 0x00, 0x18, 0xe0, 0x7f, 0x00,
- 0x00, 0x00, 0x0c, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x06, 0xe0, 0x04, 0x00,
- 0x00, 0x00, 0x03, 0xe0, 0x04, 0x00, 0x00, 0x80, 0x01, 0xe0, 0x06, 0x00,
- 0x00, 0xc0, 0x1f, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x7f, 0xe0, 0x07, 0x00,
- 0x00, 0x70, 0xe0, 0xe0, 0x05, 0x00, 0x00, 0x38, 0x80, 0xe1, 0x04, 0x00,
- 0x00, 0x18, 0x80, 0xf1, 0x04, 0x00, 0x00, 0x0c, 0x00, 0xfb, 0x04, 0x00,
- 0x00, 0x0c, 0x00, 0xff, 0x04, 0x00, 0x00, 0x86, 0x1f, 0xee, 0x04, 0x00,
- 0x00, 0x06, 0x06, 0xe6, 0x04, 0x00, 0x00, 0x06, 0x00, 0xe6, 0x04, 0x00,
- 0x00, 0x06, 0x00, 0xe6, 0x04, 0x00, 0x00, 0x06, 0x00, 0x66, 0x04, 0x00,
- 0x7f, 0x56, 0x52, 0x06, 0xe4, 0xff, 0x00, 0x76, 0x55, 0x06, 0x04, 0x00,
- 0x00, 0x56, 0x57, 0x06, 0x04, 0x00, 0x00, 0x56, 0x55, 0x06, 0x06, 0x00,
- 0x00, 0x56, 0xd5, 0x06, 0x03, 0x00, 0x00, 0x06, 0x00, 0x86, 0x01, 0x00,
- 0x54, 0x06, 0x00, 0xc6, 0x54, 0x55, 0xaa, 0x06, 0x00, 0x66, 0xaa, 0x2a,
- 0x54, 0x06, 0x00, 0x36, 0x55, 0x55, 0xaa, 0x06, 0x00, 0xbe, 0xaa, 0x2a,
- 0x54, 0xfe, 0xff, 0x6f, 0x55, 0x55, 0xaa, 0xfc, 0xff, 0xa7, 0xaa, 0x2a,
- 0x54, 0x01, 0x88, 0x60, 0x55, 0x55, 0xaa, 0xaa, 0x8a, 0xa0, 0xaa, 0x2a,
- 0x54, 0x55, 0x8d, 0x60, 0x55, 0x55, 0xaa, 0xaa, 0x8a, 0xa0, 0xaa, 0x2a,
- 0x54, 0x55, 0x8d, 0x60, 0x55, 0x55, 0xaa, 0xaa, 0x8a, 0xa0, 0xaa, 0x2a,
- 0x54, 0x55, 0x8d, 0x50, 0x55, 0x55, 0xaa, 0xaa, 0x8a, 0xa8, 0xaa, 0x2a,
- 0x54, 0x55, 0x95, 0x54, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x2a,
- 0x54, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/grey.25 b/Master/tlpkg/tlperl/lib/Tk/demos/images/grey.25
deleted file mode 100644
index b234b3cb0be..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/grey.25
+++ /dev/null
@@ -1,6 +0,0 @@
-#define grey_width 16
-#define grey_height 16
-static char grey_bits[] = {
- 0x11, 0x11, 0x44, 0x44, 0x11, 0x11, 0x44, 0x44, 0x11, 0x11, 0x44, 0x44,
- 0x11, 0x11, 0x44, 0x44, 0x11, 0x11, 0x44, 0x44, 0x11, 0x11, 0x44, 0x44,
- 0x11, 0x11, 0x44, 0x44, 0x11, 0x11, 0x44, 0x44};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/grey.5 b/Master/tlpkg/tlperl/lib/Tk/demos/images/grey.5
deleted file mode 100644
index 37688893f08..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/grey.5
+++ /dev/null
@@ -1,6 +0,0 @@
-#define grey_width 16
-#define grey_height 16
-static char grey_bits[] = {
- 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
- 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
- 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/letters b/Master/tlpkg/tlperl/lib/Tk/demos/images/letters
deleted file mode 100644
index 0f12568d1a0..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/letters
+++ /dev/null
@@ -1,27 +0,0 @@
-#define letters_width 48
-#define letters_height 48
-static char letters_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20,
- 0x00, 0xfa, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2a,
- 0x00, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2e,
- 0xe0, 0xff, 0xff, 0xff, 0xff, 0x21, 0x20, 0x00, 0x00, 0x00, 0x00, 0x21,
- 0xa0, 0x03, 0x00, 0x00, 0x70, 0x21, 0x20, 0x00, 0x00, 0x00, 0x50, 0x21,
- 0xa0, 0x1f, 0x00, 0x00, 0x50, 0x21, 0x20, 0x00, 0x00, 0x00, 0x70, 0x21,
- 0xfe, 0xff, 0xff, 0xff, 0x0f, 0x21, 0x02, 0x00, 0x00, 0x00, 0x08, 0x21,
- 0xfa, 0x01, 0x00, 0x80, 0x0b, 0x21, 0x02, 0x00, 0x00, 0x80, 0x0a, 0x21,
- 0xba, 0x01, 0x00, 0x80, 0x0a, 0x21, 0x02, 0x00, 0x00, 0x80, 0x0b, 0x21,
- 0x3a, 0x00, 0x00, 0x00, 0x08, 0x21, 0x02, 0x00, 0x00, 0x00, 0x08, 0x21,
- 0x02, 0xc0, 0xfb, 0x03, 0x08, 0x21, 0x02, 0x00, 0x00, 0x00, 0x08, 0x3f,
- 0x02, 0xc0, 0xbd, 0x0f, 0x08, 0x01, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x02, 0xc0, 0x7f, 0x7b, 0x08, 0x01, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x02, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00,
- 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00,
- 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00,
- 0xfe, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/mickey.gif b/Master/tlpkg/tlperl/lib/Tk/demos/images/mickey.gif
deleted file mode 100644
index 91baba9795f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/mickey.gif
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/ned.xpm b/Master/tlpkg/tlperl/lib/Tk/demos/images/ned.xpm
deleted file mode 100644
index 88fe4bf098c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/ned.xpm
+++ /dev/null
@@ -1,69 +0,0 @@
-! XPM2
-64 64 3 1
- c None s None
-. c #000000000000
-X c #FFFFFFFFFFFF
-
-
-
-
-
-
-
-
-
- .........
- ...............XXXXXXXXX..
- .............XXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- X.XXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXX.......
- .XXXXXXXXXX.XXXXXXXXXXXXX..........X.
- .XXXXXXXXX.XXXX..........XXXXXXXXXXX.
- .XXXXXXX......XXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXX...XX....X........X......XXXXX.
- .XXXXX..XXX..XXX..XXX..XX..XX..XXXX.
- .XXXXX...XX..XXX..XXX..XX..XXX..XXX.
- .XXXXX...XX..XXX..X.XXXXX..XXX..XXX.
- .XXXXX..X.X..XXX....XXXXX..XXX..XXX.
- .XXXXX..X.X..XXX..X.XXXXX..XXX..XXX.
- .XXXXX..XX...XXX..XXX..XX..XXX..XXX.
- .XXXXX..XX...XXX..XXX..XX..XX..XXXX.
- .XXX....XX..XX........X......XXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ....
- .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....XXXX.
- .XXXXXXXXXXXXXX................XXXXXXXXX.
- .XXXXXX.........XXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- .XXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXX.......
- .XXXXXX.XXXXXXXXXXXXXX..........
- .XXXX..XXXX..........
- ...........
-
-
-
-
-
-
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/noletters b/Master/tlpkg/tlperl/lib/Tk/demos/images/noletters
deleted file mode 100644
index 5774124efe9..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/noletters
+++ /dev/null
@@ -1,27 +0,0 @@
-#define noletters_width 48
-#define noletters_height 48
-static char noletters_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00,
- 0x00, 0xf0, 0x0f, 0xe0, 0x1f, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x7f, 0x00,
- 0x00, 0x3e, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xf0, 0x01,
- 0x80, 0x07, 0x00, 0x00, 0xc0, 0x03, 0xc0, 0x03, 0x00, 0x00, 0xe0, 0x07,
- 0xe0, 0x01, 0x00, 0x00, 0xf0, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x78, 0x0e,
- 0xf0, 0x00, 0x00, 0x00, 0x3c, 0x1e, 0x70, 0x00, 0x00, 0x00, 0x1e, 0x1c,
- 0x38, 0x00, 0x00, 0x00, 0x0f, 0x38, 0x38, 0x00, 0x00, 0x80, 0x07, 0x38,
- 0x3c, 0xfc, 0xff, 0xff, 0x7f, 0x78, 0x1c, 0x04, 0x00, 0xe0, 0x41, 0x70,
- 0x1c, 0x04, 0x00, 0xf0, 0x40, 0x70, 0x1c, 0x74, 0x00, 0x78, 0x4e, 0x70,
- 0x0e, 0x04, 0x00, 0x3c, 0x4a, 0xe0, 0x0e, 0x74, 0x03, 0x1e, 0x4a, 0xe0,
- 0x0e, 0x04, 0x00, 0x0f, 0x4e, 0xe0, 0x0e, 0x04, 0x80, 0x07, 0x40, 0xe0,
- 0x0e, 0x04, 0xf8, 0x0f, 0x40, 0xe0, 0x0e, 0x04, 0xe0, 0x01, 0x40, 0xe0,
- 0x0e, 0x04, 0xf8, 0x00, 0x40, 0xe0, 0x0e, 0x04, 0x78, 0x00, 0x40, 0xe0,
- 0x0e, 0x04, 0xfc, 0xf3, 0x40, 0xe0, 0x1c, 0x04, 0x1e, 0x00, 0x40, 0x70,
- 0x1c, 0x04, 0x0f, 0x00, 0x40, 0x70, 0x1c, 0x84, 0x07, 0x00, 0x40, 0x70,
- 0x3c, 0xfc, 0xff, 0xff, 0x7f, 0x78, 0x38, 0xe0, 0x01, 0x00, 0x00, 0x38,
- 0x38, 0xf0, 0x00, 0x00, 0x00, 0x38, 0x70, 0x78, 0x00, 0x00, 0x00, 0x1c,
- 0xf0, 0x3c, 0x00, 0x00, 0x00, 0x1e, 0xe0, 0x1e, 0x00, 0x00, 0x00, 0x0e,
- 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0x07, 0x00, 0x00, 0x80, 0x07,
- 0x80, 0x07, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x1f, 0x00, 0x00, 0xf0, 0x01,
- 0x00, 0x3e, 0x00, 0x00, 0xf8, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x7f, 0x00,
- 0x00, 0xf0, 0x0f, 0xe0, 0x1f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/page.icon b/Master/tlpkg/tlperl/lib/Tk/demos/images/page.icon
deleted file mode 100644
index c065c48f9b2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/page.icon
+++ /dev/null
@@ -1,16 +0,0 @@
-#define page.icon_width 32
-#define page.icon_height 32
-#define page.icon_x_hot 16
-#define page.icon_y_hot 16
-static char page.icon_bits[] = {
- 0xfc, 0xff, 0xff, 0x00, 0x04, 0x00, 0x80, 0x01, 0x04, 0x00, 0x80, 0x02,
- 0x04, 0x00, 0x80, 0x04, 0x04, 0x00, 0x80, 0x08, 0x04, 0x00, 0x80, 0x10,
- 0x04, 0x00, 0x80, 0x20, 0x04, 0x00, 0x80, 0x7f, 0x04, 0x00, 0x00, 0x60,
- 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60,
- 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60,
- 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60,
- 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60,
- 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60,
- 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60,
- 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x60,
- 0xfc, 0xff, 0xff, 0x7f, 0xf8, 0xff, 0xff, 0x7f};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/page.mask b/Master/tlpkg/tlperl/lib/Tk/demos/images/page.mask
deleted file mode 100644
index f4b5226598c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/page.mask
+++ /dev/null
@@ -1,16 +0,0 @@
-#define page.mask_width 32
-#define page.mask_height 32
-#define page.mask_x_hot 16
-#define page.mask_y_hot 16
-static char page.mask_bits[] = {
- 0xfc, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0x01, 0xfc, 0xff, 0xff, 0x03,
- 0xfc, 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0x0f, 0xfc, 0xff, 0xff, 0x1f,
- 0xfc, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f,
- 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f,
- 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f,
- 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f,
- 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f,
- 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f,
- 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f,
- 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f,
- 0xfc, 0xff, 0xff, 0x7f, 0xf8, 0xff, 0xff, 0x7f};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/pattern b/Master/tlpkg/tlperl/lib/Tk/demos/images/pattern
deleted file mode 100644
index df31baf7895..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/pattern
+++ /dev/null
@@ -1,6 +0,0 @@
-#define foo_width 16
-#define foo_height 16
-static char foo_bits[] = {
- 0x60, 0x06, 0x90, 0x09, 0x90, 0x09, 0xb0, 0x0d, 0x4e, 0x72, 0x49, 0x92,
- 0x71, 0x8e, 0x8e, 0x71, 0x8e, 0x71, 0x71, 0x8e, 0x49, 0x92, 0x4e, 0x72,
- 0xb0, 0x0d, 0x90, 0x09, 0x90, 0x09, 0x60, 0x06};
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/images/teapot.ppm b/Master/tlpkg/tlperl/lib/Tk/demos/images/teapot.ppm
deleted file mode 100644
index b8ab85f3a5d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/images/teapot.ppm
+++ /dev/null
@@ -1,31 +0,0 @@
-P6
-256 256
-255
-\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À[7 eOLjQLmSMoTMnSMlRMhPL_9 \À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀnSMtVMzYN~[N~[N\N\O€\O€]O€]O€]O€]O€\O€\O}[NyYNtVM\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀG-wXN}[N€]O„^O†_O†`O‡`Oˆ`Oˆ`OˆaO‰aO‰aO‰aO‰aO‰aO‰aOˆaOˆ`O†_Oƒ^O\N \À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀaMLyYN…_O‰aP‹bPcPŽcPŽdPŽdPdPdPdPdPdPdPdPeP‘eP’eP’eP‘ePdPcP…_OpUM\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀwXN…_OdP“fP•gQ–hQ˜hQ˜iQ™iQ™iQšiQšiQšjQ›jQ›jQœjQœjQœjQœjQœjQ›jQœjQ™iQ“fP‡`O\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀNCJiQL‹bP—hQkQ¡mR¤nR¥oR¥oR¥oR¥oR¥oR¥oR¦oR¦oR¦pR¨pS©qSªqS«rS¬rS«rS©qS¤oRœjQ€]O\KK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀfOLrUMcPŸlR©qS¯tS²uTµwT·xT¸xT¹yTºyT»zT»zU¼zU¼zU¼zU»zUºyT¸xT¶wT¯tS¡mR‰aOhPL\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\Àa0 cNLqUM€\O”fQ¦pS²wVºzV¿|VÂ}VÄVÆVÇ€VÉ‚WÌ…[Õeæ w÷³‹êª…Ĉg§qT“fQ{ZNYIK9\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀO1{G#‘JkRMqUMtVN–iS¨v\·€d¹bµzZ±vU°uT®sSªqS¤nRœjQ’eP„^OrUMHh>!T4\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀG-V5wE"~I#†M%U+¥e7²l:°g2®b*­a(­`(©^(¥])¡^-›]1ŠS,qC$`9 R3G-\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À@)J/i>!pA"tD"wF$yH&xH&tE$wE#yG%}M+ƒT4S5mE*Z7!K/B*;'\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À‰aO¦oR½{UÇ€VÏ…X<(F-a: e<!h>!j@#k@$h>"d<!c=$hD-fF2[<)K0@);'5$Ë‚VÇ€V¿|U_LKYIK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À…_O·xTÉ‚Wó«€ûµ‹Ö’k¼|X×>µf-¨^(¡Z'šW&–T&œN>)F-J/b; g>#nD(jB&c<!b=%jH2_A/I0!<(8&5$”J¥Y’S%8&;'?)E,<:HA=HE?IJAISFJYIKXIK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À£nRÁ}UܘqÊŠe±vU²e,™V&¥V†C €@ |> y< u: r9 o7 l6
-j5
-h4
-g3
-5$D,K/b; h>"wM1tK.e="a<#cA,U8&E-<(9&.!a0 b1 c1    
-
-+3#@)46G<:HMCIXHK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀU*´vT¿~X¸{YÃk+›W&‰N$|> u: p8 k5
-f3
-a0 _/ ]. [- I¡\*ª_(‘LkRMmSMmSMnSMnSMD,R3W5mA"|O0|P1j?"c<!a=%Y7"N1F,;'NCJNCJNDJODJODJODJh>!a: X/K%
-g3
-a0 Z- \/ T*Q(ŠHµm8kRMmSMnTMoTMpTMpUM15G15G05G04G04GpUMpTM5^9 d<!yF#O+€N,rC#qB"pB#k?"a: Z7 6ODJPDJPEJQEJQEJREJREJREJRFJSFJSFJSFJSFJe<!X/
-^/ V+Q(L&I$r9  TlRMnSM46G47G47G46G46G46G46G46G36G36G25G25G15G04G/4F.3F
-
-X&pUMuWMwXNxXN<:H<:H<:H<:H<;H<;H<;H<;H=;H=;H=;H=;H>;H>;H?<H@<HA=HC>HG@ILBIREJ[JKcNLjQL§pR±uTºzUÃ~VÈWË‚XÖŽcäsÒŽe¼{V²vT¨pSžkR•gQŒbP†_O‚^O]O€\O€\O€\O€\O€]O]O]O]O]O]O]O]O]O]O]O€\O€\O~\N}[N|ZNxXN•T%H$
-›W&rVMvWNyYNzYN|ZN}[N}[N><H?<H?<H?<H?<H?<H@<H@<H@<HA=HA=HB=HC>HE?IG@IIAIKBIODJSFJWHK—hQŸlR§pR°b(¾i*Én+Ù|7Û|6Ïr,Íq+Êp-Ãl+»g)±b(®sS§pS lRšiQ•gQePcPŠaPˆaO‡`O‡`O†_O†_O…_O…_O…_O…_O…_O…_O…_O„_O„^O„^Oƒ^Oƒ^O‚]O]O€\O~[N{ZN•T%
-
- 
-@%<-$G?@…pfdNLuWM\NdNL\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀTFJvWN‰aP./01„E}[N]O…_Oˆ`O‰aP‹bPŒbPcPcPŽcPdPdPdPeP‘eP’eP’eP“fP“fQ”fQ•gQ•gQ–gQ–hQ—hQ˜hQ™iQšiQ›jQœjQkQkRžlRŸlRžY&¤\'¨^'µ^½bÀcÃeÇi ÄgÀc½b¼a¹`µ^´]¯X¢[' Z'žY&¢mR¡mR¡mR lRŸlRŸlRžkRkQœkQœjQ›jQšjQšiQ™iQ™iQ˜iQ˜hQ—hQ—hQ—hQ–gQ–gQ•gQ•gQ•gQ”fQ”fQ“fQ“fP’eP‘ePdPcP‰aP—O
- B\À\À\À\À\À\À\À\À\À\À%7!!C*F#P) {dYœze»p€\OgPL\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀSFJ`LKvWNŠaPm6
- 
-$5 ¬`(¶e)£nRœjQƒ^OJAI\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀXIK^KKdNLhPLuWM‚]OŒbP”fQeP m6
-†`OŽcP“fQ—hQ˜hQ™iQšiQšjQ›jQ›jQ›jQœjQœjQœjQœkQkQkQkRžkRžkRžkRžlRŸlRŸlRŸlR lR lR lR¡mR¡mR¡mR¡mRºg)³c(²c(±b(­V¿cÂeÅi!Åi!Àd¼bº`¹`·_·_¶^¢Q§]'ª_(­`(¹f)£nR£nR£nR£nR£nR£nR£nR¢nR¢nR¢nR¢nR¢nR¢nR¢mR¢mR¢mR¢mR¢mR¢mR¢mR¢mR¢mR¢nR¢mR¢mR£nR¢mR¢mR¡mR mRkR—hQˆGa0 ŠbP mRœjQ“fQ‰aP}[NrUMmSM…L$\À\À\À\À\À\À\À\À B B #C, 8&H.Z7 §pR›jQ{ZN\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀQEJ[JK`LKdNLhQLqUM{ZN…_OŽcP–gQ—hQ
-‹bP‘eP–hQšiQ›jQœjQkQkQkRžkRžkRžlRžlRŸlRŸlRŸlRŸlRŸlR lR lR lR mR¡mR¡mR¡mR¡mR¡mR¢mR¢mR¢mR¢nR£nRÀj*ºg)·e)¶d)Âd°XÅgÅhÂe¿c½b½b¾bªU­`(®a(¯a(³c(¾i*¤oR¤oR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤oR¤oR¥oR¥oR¥oR¥oR¥oR¥oR¦oR¦oR¥oR¥oR¤nR¡mR›jQŽQ%Z- œjQ£nRŸlR—hQŽdP…_OuWMpTMnSMkRLa: \À\À\À\À\À\À\À B B&D2 @*S6#G@IPDJ˜hQmSM\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀVGJ]KKbMLeOLiQLlRMvWN\OˆaO‘eP—hQœjQ•gQ
-!C+E'0F.4F7%8%U/lG.SFJZIK]KKZIKB=H\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀREJZJK`LKdNLgPLjQLlRMnSMpTMqUMtWMxXN{ZN~[N]O„^O†`O‰aO‹bPdP•gQ™iQœkQ lR¤nR§pSªrS­sS¯tT²uT´vT¶wT·xT¹yT¹yTºyTºyT¹yT¶xT´vT¬rS¢nR—hQ¿|U¿|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ}UÀ}UÁ}UÁ}UÁ}UÁ}UÂ}UÂ~UÃ~UÃ~VÃ~VÄVÅ€WÆX®a(ŸlRªrS´vT¸yT¼zU¾|UÁ~VÃXÆ‚[Ɇ_΋dÓ‘jÔ“mÔ“nБlÊŒhĆd½_¶{[°vWªsU¦pS¢nRžkRšiQ˜hQ•gQ“fQ‘ePdPŒbP‰aO†_Oƒ^O€\O|ZNxXNsVMpTMnTMmSMjQL€C B)D&/F-3F47G6%>" Y7 kA$YIK]KK^KKSFJ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀVGJ\KKbMLeOLhPLkRLmSMnTMpTMrUMuWNyYN|ZN\N‚]O„_O‡`OŠaPŒbPŽcPeP“fP—hQ›jQžlR¢nR¥oS©qT¬sT¯uU²vU´wV¶xV¸yV¹yUºzU»zU¼{U½{U¾{U¾|U¿|U¿|U¿|U¿|U¾{U½{U¼{U¼zU»zTºyT¹yT¸xTµwT³vT´vT´vT´vT´wT´wTµwT·xT¹yTºzT¼zU½{U¾{U¿|UÀ|UÂ}UÄVÅ€WÇ‚YÉ„\͈_ÑŒdÙ”láuç£|쩂ſt명æ¦ÞŸ{Õ—sËŽl†d¹^³yZ­uW¨qU¤oSŸlRžkRœjQšiQ˜hQ–gQ”fQ‘ePdPcPŠaP‡`O„^O]O}[NyYNuWMpTMoTMmSMkRLgPL&D#.E,3F46G;'<(D"iB(VGJ]KK`LK[JKB>H\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀNCJYIK^LKcNLfOLiQLkRMmSMoTMqUMsVMvXNzYN}[N€\O‚^O…_Oˆ`OŠaPŒcPdP‘eP“fQ•gQ—hQ™iQkR mS¤oT¨rU¬tW°wY´zZ¸}\»]¾€^À^Á‚^‚^Â\Á€ZÁYÁXÁ~WÁ~WÂ~VÂ~VÂ~VÃ~VÃ~UÃ~UÄ~UÄ~UÄUÄUÅVÅVÅVÅVÆVÆ€VÆ€VÇ€WÇWÈ‚XɃZË…[͇^ЊaÓdØ’iÜ—nâtè£zî©ó¯‡ø´û¸‘üº“û¹“÷¶ñ±Œé©…à¡~Ö˜vËmÇf»€`´z[®vX©rU¥pT£oS¢nS lRžkRœkRšjQ˜iQ–hQ”fQ’ePdPcP‹bPˆ`O…_O‚]O~[NzYNvWNpTMoTMnSMkRMhQLo7 ,2F36G99HC+@ ]8 nA"\JK`ML_LKSFJ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀSFJ[JK`LKdNLgPLjQLlRMnSMpTMqUMtVMwXNzZN}[N€]Oƒ^O†_OˆaO‹bPcPdP‘eP“fQ•gQ—hQ™iQ›jRžlR mS£oU§rW¬vZ²{]¹€a¿…fÅŠjËnГqÓ•sÕ–sÕ–rÕ–qÕ”oÓ’mÑjÏgÍŠcˈaɆ^È„\Ç‚[ÆYÅ€XÅ€WÅWÅWÅVÅVÅWÅ€WÆ€WÇXÈ‚YɃ[Ê…\͇_ÏŠaÒeÕ‘hÙ•mÝ™qávä¡zç¤}꧀멃몄騃奀ߠ|Ù›wÓ•rÌmƉh¿„c¸~^²yZ®vX¬tWªsV¨qU¦pT¤oS¢nS mRžlRœkR›jQ™iQ—hQ•gQ“fPePŽcP‹bPˆaO…_O‚^O\N{ZNwXNsVMoTMnSMlRMiQL~I#26G99G?<HA*E$ i@$ZIKaMLbML[JK;:H\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀWHJ]KKbMLeOLhPLjRLlSMnTMpTMrUMuWMxXN{ZN~\N]O„^O†`O‰aO‹bPŽcPdP’eP”fQ–gQ˜hQšiQœkRžlS mT£oU¦rWªuZ¯y]´~aºƒfŠlË’sÔšzÜ¡€ã§†è«‰ë®‹í¯Œí®‹ë¬ˆè¨„ã£~ßžyÚ™tÖ•oÒjÎŒfˈbÈ…_ƃ\ÅZÄ€YÃXÂWÂ~WÂ~WÂ~WÃXÀXÄ€YÅZƃ\Ç…^Ɇ`ˈbÌŠdÍ‹fÎgÎŽiÎŽjÎŽjÍŽjËŒiljgÆd¿ƒaº^¸}]¶|\´{[²yZ°xY®vX¬tWªsV¨qU¦pT¤oS¢nS mRžlRkR›jQ™iQ—hQ•gQ“fP‘ePŽdPŒbP‰aO†_Oƒ^O€\O|ZNxXNtVMpTMnSMmSMjQLgPL99G?<HG-E&b;!YIK`MLdOM`LKNCJ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀŸlRºyTÄ~UÊ‚XʃYÄXº{W­tUšW'¢[(—hQ lRcP€\OhQL\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀNCJYIK^LKcNLfOLiQLkRLmSMoTMqUMrVMvWNyYN|ZN\N‚]O„_O‡`O‰aPŒbPŽcPdP’fP”gQ–hQ˜iQšjRœkRžlS¡nT¤pU§sW«vZ°z]µb»„gŠlÉ‘sИyØžÞ¤…ã©Šè­ì±ï³‘ﳑ뭊穅⣀ݞzؘtÒ“nÎiɉdÆ…`Â]Á€[¿~Y¾}X½|W½|V¼{V¼{V¼{V¼{V¼{V¼|W¼|W½}X½}Y½~Z½~Z¼~Z»}[º}[º}[º~\º~\º~]º~]¹~]¸~]·}]¶|\´z[²yZ°wY®vX¬tWªsV¨rU¦pT¤oS¢nS mRŸlRkR›jQšiQ˜hQ–gQ“fQ‘ePdPŒcPŠaP‡`O„^O]O}[NyYNuWNpTMnTMmSMkRLhPL|H$D>IQ2P+XHK_LLfQOcNLXIK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À©qSºyTÃ~VΈ`遲ޜv¾€]ªqS–LŽG|> g3
-S)?*%.—hQ—hQ‘eP‡`OuWM\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀSFJ[JK`LKdNLgPLjQLlRMnSMoTMqUMsVMwXNzYN}[N€\O‚^O…_O‡`OŠaPŒbPŽdP‘eP“fP•gQ—hQ˜iQšjRœkRŸlS¡nT¤pV§sX«vZ°z^¶b¼…gËmÊ’sјzØŸ€Þ¤…ã©Šè­ê¯ë°ê¯Žè¬‹å¨‡à¤‚Ûž|Ö™wÑ“qÌŽlljgÃ…bÀ‚_½\»}Zº{X¹zW¸yV·yU·xU·xU·xT·xT·xU·xU·xU·yV·yV·yW¸zW¸{X¹{Y¹|Zº}[º}[º}\º~\¹~]¹~]¸}]·|\µ{\´z[²yZ°wY®vX¬tWªsV¨rU¦pT¤oS¢nS¡mRŸlRkRœjQšiQ˜hQ–gQ”fQ’ePdPcPŠbP‡`O…_O‚]O~[NzZNvWNrUMoTMmSMlRMiQLeOLJAIJ(h>!]KKfQOgQN_LKD>I\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À™iQ°tS¸yT¼{UÂYÎŒeï­ˆô´Õ—u¶|\ Z'™LˆD |>
-
- &3#.$-% .% .& /&!,#,#@70A71XNHXNHWNHWNHZRLYQLYQLXQLWQLWPLUOLSNLQMKOLJMJJ0//.-.,,-&(+"(!'
- %' %$#" ! !$ 
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/Ball.pm b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/Ball.pm
deleted file mode 100644
index 0f85f121091..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/Ball.pm
+++ /dev/null
@@ -1,144 +0,0 @@
-
-package # hide from CPAN indexer
- Ball;
-
-# Ball.pm, a class module that allows concurrent simulation (canvas) instances.
-#
-# This is simply a class module, nothing fancy like a derived widget or
-# composite widget. It has two virtual methods, new() and move_one_ball().
-# There are two static methods, get_canvas_hash() and move_all_balls().
-#
-# Essentially, move_all_balls() is invoked to move all of the balls in a
-# simulation's @BALLS list once - from their current to their new postion.
-# After moving one ball a call to DoOneEvent() is made to handle pending
-# XEvents. The *user* of this module, in this case bounce.pl, has their
-# own main loop which also calls DoOneEvent() and move_all_balls() to keep
-# the simulation active.
-#
-# Gurusamy Sarathy (gsar@engin.umich.edu)
-# Tidied up by SOL.
-
-use vars qw/$VERSION/;
-$VERSION = '4.005'; # $Id: //depot/Tkutf8/demos/demos/widget_lib/Ball.pm#4 $
-
-use Tk::Canvas;
-use Tk::Widget;
-use Tk qw/DoOneEvent DONT_WAIT/;
-Construct Tk::Canvas 'Ball';
-use strict;
-
-# Class Ball global variables.
-
-my %BALLS = (); # hold @BALLS list on a per canvas basis
-my (%DEFAULTS) = ( # Ball constructor option defaults
- -color => 'blue',
- -size => 20.0,
- -position => [12.0,12.0],
- -velocity => [6.0, 9.0],
- );
-
-sub new { # Ball object constructor
-
- # Create a new Ball object, which just happens to be a Canvas item.
- # Fill-in values for defaulted parameters, create the oval item, and
- # store object-specific information in the ball's hash.
- #
- # Finally, update the class global %BALLS hash, indexed by a hashed canvas
- # reference, with the new ball. Note the special Tk::bind statement that
- # removes a canvas from the %BALLS hash when the canvas is destroyed, thus
- # keeping %BALLS trimmed and preventing a very slow memory leak.
-
- my($class, $canvas, %args) = @_;
-
- my @missing_args = grep ! defined $args{$_}, keys %DEFAULTS;
- @args{@missing_args} = @DEFAULTS{@missing_args};
- my($color, $size, $pos, $vel) = @args{-color, -size, -position, -velocity};
-
- my $ball = $canvas->create('oval',
- ($pos->[0] - ($size/2.0)), ($pos->[1] - ($size/2.0)),
- ($pos->[0] + ($size/2.0)), ($pos->[1] + ($size/2.0)),
- -fill => $color,
- );
- $canvas->Tk::bind(
- '<Destroy>' => sub {delete $BALLS{Ball->get_canvas_hash($canvas)}}
- );
-
- my $ball_obj = {'canvas_ID' => $ball,
- 'canvas' => $canvas,
- 'color' => $color,
- 'size' => $size,
- 'pos' => [@$pos],
- 'vel' => [@$vel],
- };
-
- push @{$BALLS{Ball->get_canvas_hash($canvas)}->{'BALLS'}}, $ball_obj;
- return bless $ball_obj, $class;
-
-} # end new, Ball constructor
-
-sub get_canvas_hash {
-
- # Hash a canvas reference to a key for indexing into the %BALLS hash.
- # For now, just use the string-ified widget reference. If this trick
- # were ever to fail in the future then only this code needs to be fixed
- # and the Ball class would be up and running in short oder.
-
- my($class, $canvas) = @_;
-
- return $canvas
-
-} # end get_canvas_hash
-
-sub move_one_ball {
-
- # Move one ball, belonging to one simulation, one clock tick.
-
- my ($ball_obj, $speed_ratio) = @_;
-
- my($ball, $canv, $minx, $miny, $maxx, $maxy);
- my($ballx, $bally, $deltax, $deltay);
-
- $speed_ratio = 1.0 unless defined $speed_ratio;
- $ball = $ball_obj->{'canvas_ID'};
- $canv = $ball_obj->{'canvas'};
- $ballx = $ball_obj->{'pos'}[0];
- $bally = $ball_obj->{'pos'}[1];
-
- $minx = $ball_obj->{'size'} / 2.0;
- $maxx = $ball_obj->{'canvas'}->cget(-width) - $minx;
-
- $miny = $ball_obj->{'size'} / 2.0;
- $maxy = $ball_obj->{'canvas'}->cget(-height) - $miny;
-
- if ($ballx > $maxx || $ballx < $minx) {
- $ball_obj->{'vel'}[0] = -1.0 * $ball_obj->{'vel'}[0];
- }
- if ($bally > $maxy || $bally < $miny) {
- $ball_obj->{'vel'}[1] = -1.0 * $ball_obj->{'vel'}[1];
- }
-
- $deltax = $ball_obj->{'vel'}[0] * $speed_ratio;
- $deltay = $ball_obj->{'vel'}[1] * $speed_ratio;
-
- $canv->move($ball, $deltax, $deltay);
- $ball_obj->{'pos'}[0] = $ballx + $deltax;
- $ball_obj->{'pos'}[1] = $bally + $deltay;
-
- return $ball_obj;
-
-} # end move_one_ball
-
-sub move_all_balls {
-
- # Move all the balls belong to one simulation instance one clock tick.
-
- my($class, $canvas, $speed_ratio) = @_;
-
- foreach (@{$BALLS{Ball->get_canvas_hash($canvas)}->{'BALLS'}}) {
- $_->move_one_ball($speed_ratio);
- DoOneEvent(DONT_WAIT); # be kind and process XEvents if they arise
- }
-
-} # end move_all_balls
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/HList.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/HList.pl
deleted file mode 100644
index 64330be358a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/HList.pl
+++ /dev/null
@@ -1,65 +0,0 @@
-# HList, a hierarchial listbox widget.
-
-use Tk::HList;
-use Cwd;
-use subs qw/show_dir/;
-use vars qw/$TOP $FILEIMG $FOLDIMG/;
-
-sub HList {
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'HList - A hierarchial listbox widget.',
- -geometry_manager => 'grid',
- );
-
- my $h = $TOP->Scrolled(qw\HList -separator / -selectmode extended -width 30
- -height 20 -indent 35 -scrollbars se
- -itemtype imagetext \
- )->grid(qw/-sticky nsew/);
- $h->configure(-command => sub {
- print "Double click $_[0], size=", $h->info('data', $_[0]) ,".\n";
- });
-
- $FILEIMG = $TOP->Bitmap(-file => Tk->findINC('file.xbm'));
- $FOLDIMG = $TOP->Bitmap(-file => Tk->findINC('folder.xbm'));
-
- my $root = Tk->findINC('demos');
- my $olddir = getcwd;
- chdir $root;
- show_dir '.', $root, $h;
- chdir $olddir;
- my $b = $TOP->Button(-text => 'Select All', -command => [\&select_all, $h]);
- Tk::grid($b);
-}
-
-sub select_all
-{
- my $h = shift;
- my @list = $h->infoChildren(@_);
- if (@list)
- {
- $h->selectionSet($list[0],$list[-1]);
- foreach my $e (@list)
- {
- select_all($h,$e);
- }
- }
-}
-
-sub show_dir {
- my($entry_path, $text, $h) = @_;
- opendir H, $entry_path;
- my(@dirent) = grep ! /^\.\.?$/, sort(readdir H);
- closedir H;
- $h->add($entry_path, -text => $text, -image => $FOLDIMG, -data => 'DIR');
- while ($_ = shift @dirent) {
- my $file = "$entry_path/$_";
- if (-d $file) {
- show_dir $file, $_, $h;
- } else {
- my $size = -s $file;
- $h->add($file, -text => $_, -image => $FILEIMG, -data => $size);
- }
- }
-} # end show_dir
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/HList2.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/HList2.pl
deleted file mode 100644
index 10ada400a65..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/HList2.pl
+++ /dev/null
@@ -1,124 +0,0 @@
-# HList and ItemStyle, multicolumn listbox with individual cell styles.
-# -*- perl -*-
-
-#
-# $Id: $
-# Author: Slaven Rezic
-#
-# Copyright (C) 1999 Slaven Rezic. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-# Mail: eserte@cs.tu-berlin.de
-# WWW: http://user.cs.tu-berlin.de/~eserte/
-#
-
-use Tk::HList;
-use Tk::ItemStyle;
-
-sub HList2 {
- my($demo) = @_;
- my $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'HList and ItemStyle, multicolumn listbox with individual cell styles.',
- -geometry_manager => 'grid',
- );
-
- my $h = $TOP->Scrolled
- (qw/HList
- -header 1
- -columns 4
- -width 50
- -height 20/
- )->grid(qw/-sticky nsew/);
-
- for (0 .. 3) {
- $h->header('create', $_, -text => 'Column ' . $_);
- }
-
- my @img;
- foreach ('Xcamel.gif', 'anim.gif', 'icon.gif', 'Camel.xpm') {
- push @img, $TOP->Photo(-file => Tk->findINC($_)),
- }
-
- my(@fonts) = ('-*-Helvetica-Medium-R-Normal--*-180-*-*-*-*-*-*',
- '-*-Courier-Medium-R-Normal--*-180-*-*-*-*-*-*',
- '-*-times-medium-r-normal--*-240-*-*-*-*-*-*',
- '-Adobe-Courier-Bold-O-Normal--*-120-*-*-*-*-*-*',
- 'fixed',
- );
-
- my(@colors) = qw(red green blue yellow red cyan black);
-
- my $rnd_font = sub {
- $fonts[rand($#fonts+1)];
- };
- my $rnd_color = sub {
- $colors[rand($#colors+1)];
- };
- my $rnd_image = sub {
- my $yn = int(rand(2));
- if ($yn) {
- $img[rand($#img+1)];
- } else {
- undef;
- }
- };
- my $rnd_window = sub {
- my $yn = int(rand(10));
- if ($yn == 3) {
- ('Button', 'Entry')[rand(2)];
- } else {
- undef;
- }
- };
-
- for my $y (0 .. 20) {
- my $e = $h->addchild("");
- for my $col (0 .. 3) {
- my $window = $rnd_window->();
- my $image = $rnd_image->();
- my $fg = $rnd_color->();
- my $bg = $rnd_color->();
- if ($bg eq $fg) { $fg = 'white' }
-
- my $style_type = ($window ? 'window' :
- ($image ? 'imagetext' : 'text'));
- my $btn;
- my $style = $h->ItemStyle($style_type);
- if ($style_type eq 'window') {
- $style->configure(-pady => 0, -padx => 0, -anchor => "nw");
- if ($window eq 'Button') {
- $btn = $h->Button
- (-text => 'Click me!',
- -command => sub {
- $btn->configure(-activeforeground => $rnd_color->());
- },
- );
- } else {
- $btn = $h->Entry;
- }
- } else {
- $style->configure(-foreground => $fg,
- -background => $bg,
- -font => $rnd_font->(),
- );
- }
- $h->itemCreate
- ($e, $col,
- -itemtype => $style_type,
- -style => $style,
- ($style_type eq 'imagetext'
- ? (-image => $image) : ()
- ),
- ($style_type eq 'window'
- ? (-widget => $btn) : (-text => 'Cell ' . $y . '/' . $col)
- ),
- );
- }
- }
-}
-
-1;
-
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/Plot.pm b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/Plot.pm
deleted file mode 100644
index 25ace4a805b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/Plot.pm
+++ /dev/null
@@ -1,199 +0,0 @@
-
-package # hide from CPAN indexer
- Plot;
-
-# Class "Plot": constructor, methods, destructor, global class data,
-# etcetera.
-#
-# Because a Plot object is a composite widget all the Composite base
-# class methods and advertised widgets are available to you.
-#
-# Advertised Plot widgets: canvas, entry, PostScript_button, view_button.
-
-require 5.005_03;
-
-use vars qw/$VERSION @ISA/;
-$VERSION = '4.009'; # sprintf '4.%03d', q$Revision: #7 $ =~ /\D(\d+)\s*$/;
-
-use Tk::Frame;
-use base qw/Tk::Frame/;
-Construct Tk::Widget 'Plot';
-use strict;
-
-sub Populate {
-
- # Plot composite widget constructor.
-
- my($cw, $args) = @_;
-
- $cw->SUPER::Populate($args);
- my($tc, $ih, $ah) = (
- delete $args->{-title_color},
- delete $args->{-inactive_highlight},
- delete $args->{-active_highlight},
- );
-
- my %pinfo; # plot information hash
- $pinfo{'lastX'} = 0;
- $pinfo{'lastY'} = 0;
- $pinfo{'areaX2'} = -1;
- $pinfo{'prcmd'} = 'lpr';
-
- my $plot_font = '-*-Helvetica-Medium-R-Normal--*-180-*-*-*-*-*-*';
-
- my $c = $cw->Canvas(
- -relief => 'raised',
- -width => '450',
- -height => '300',
- -cursor => 'top_left_arrow',
- );
- $cw->Advertise('canvas' => $c);
- $c->pack(-side => 'top', -fill => 'x');
-
- $c->createLine(100, 250, 400, 250, -width => 2);
- $c->createLine(100, 250, 100, 50, -width => 2);
- $c->createText(225, 20, -text => 'A Simple Plot', -font => $plot_font,
- -fill => $tc);
-
- my($i, $x, $y, $point, $item);
- for($i = 0; $i <= 10; $i++) {
- $x = 100 + ($i * 30);
- $c->createLine($x, 250, $x, 245, -width => 2);
- $c->createText($x, 254, -text => 10 * $i, -anchor => 'n',
- -font => $plot_font);
- } # forend
- for ($i = 0; $i <= 5; $i++) {
- $y = 250 - ($i * 40);
- $c->createLine(100, $y, 105, $y, -width => 2);
- $c->createText(96, $y, -text => $i * 50.0, -anchor => 'e',
- -font => $plot_font);
- } # forend
-
- foreach $point ([12, 56], [20, 94], [33, 98], [32, 120], [61, 180],
- [75, 160], [98, 223]) {
- $x = 100 + (3 * ${$point}[0]);
- $y = 250 - (4 * ${$point}[1]) / 5;
- $item = $c->createOval($x-6, $y-6, $x+6, $y+6, -width => 1,
- -outline => 'black', -fill => $ih);
- $c->addtag('point', 'withtag', $item);
- }
-
- $c->bind('point', '<Any-Enter>' => [sub{shift->itemconfigure(@_)},
- 'current', -fill => $ah]);
- $c->bind('point', '<Any-Leave>' => [sub{shift->itemconfigure(@_)},
- 'current', -fill => $ih]);
- $c->bind('point', '<1>' => [sub {plot_down(@_)}, \%pinfo]);
- $c->bind('point', '<ButtonRelease-1>' => sub {shift->dtag('selected')});
- $c->CanvasBind('<B1-Motion>' => [sub {plot_move(@_)}, \%pinfo]);
- $c->CanvasBind('<2>' => [sub {area_down(@_)}, \%pinfo]);
- $c->CanvasBind('<B2-Motion>' => [sub {area_move(@_)}, \%pinfo]);
-
- my $w_prcmd = $cw->Entry(
- -textvariable => \$pinfo{'prcmd'},
- );
- $cw->Advertise('entry' => $w_prcmd);
- $w_prcmd->pack;
-
- my $w_print = $cw->Button(
- -text => 'Print in PostScript Format',
- -command => [\&area_save, $c, \%pinfo],
- );
- $cw->Advertise('PostScript_button' => $w_print);
- $w_print->pack;
- $w_prcmd->bind('<Return>' => [$w_print => 'invoke']);
-
- my $w_view = $cw->Button(
- -text => 'View Composite Plot Widget',
- -command => [\&::view_widget,
- Tk->findINC('demos/widget_lib/Plot.pm'),
- ],
- );
- $cw->Advertise('view_button' => $w_view);
- $w_view->pack;
-
- return $cw;
-
-} # end Populate, Plot constructor
-
-# Private methods.
-
-sub area_down {
-
- my($w, $pinfo) = @_;
-
- my $e = $w->XEvent;
- my($x, $y) = ($e->x, $e->y);
- $pinfo->{'areaX1'} = $x;
- $pinfo->{'areaY1'} = $y;
- $pinfo->{'areaX2'} = -1;
- $pinfo->{'areaY2'} = -1;
- eval {local $SIG{'__DIE__'}; $w->delete('area');};
-
-} # end area_down
-
-sub area_move {
-
- my($w, $pinfo) = @_;
-
- my $e = $w->XEvent;
- my($x, $y) = ($e->x, $e->y);
- if($x != $pinfo->{'areaX1'} && $y != $pinfo->{'areaY1'}) {
- eval {local $SIG{'__DIE__'}; $w->delete('area');};
- $w->addtag('area','withtag',$w->createRectangle($pinfo->{'areaX1'},
- $pinfo->{'areaY1'},$x,$y));
- $pinfo->{'areaX2'} = $x;
- $pinfo->{'areaY2'} = $y;
- }
-} # end area_move
-
-sub area_save {
-
- my($w, $pinfo) = @_;
-
- my($x1, $x2, $y1, $y2, $a);
-
- if($pinfo->{'areaX2'} != -1) {
- ($x1, $x2, $y1, $y2) =
- @$pinfo{'areaX1', 'areaX2', 'areaY1', 'areaY2'}; # slice !
- ($x1, $x2) = @$pinfo{'areaX2', 'areaX1'} if $x2 <= $x1;
- ($y1, $y2) = @$pinfo{'areaY2', 'areaY1'} if $y2 <= $y1;
- $a = $w->postscript('-x' => $x1, '-y' => $y1,
- -width => $x2 - $x1, -height => $y2 - $y1);
- } else {
- $a = $w->postscript;
- }
-
- $SIG{'PIPE'} = sub {};
- open(LPR, "| $pinfo->{'prcmd'}");
- print LPR $a;
- close(LPR);
-
-} # end area_save
-
-sub plot_down {
-
- my($w, $pinfo) = @_;
-
- my $e = $w->XEvent;
- my($x, $y) = ($e->x, $e->y);
- $w->dtag('selected');
- $w->addtag('selected', 'withtag', 'current');
- $w->raise('current');
- $pinfo->{'lastX'} = $x;
- $pinfo->{'lastY'} = $y;
-
-} # end plot_down
-
-sub plot_move {
-
- my($w, $pinfo) = @_;
-
- my $e = $w->XEvent;
- my($x, $y) = ($e->x, $e->y);
- $w->move('selected', $x-$pinfo->{'lastX'}, $y-$pinfo->{'lastY'});
- $pinfo->{'lastX'} = $x;
- $pinfo->{'lastY'} = $y;
-
-} # end plot_move
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/WidgetDemo.pm b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/WidgetDemo.pm
deleted file mode 100644
index a05d1ace927..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/WidgetDemo.pm
+++ /dev/null
@@ -1,130 +0,0 @@
-package WidgetDemo;
-
-use 5.005_03;
-
-use vars qw($VERSION);
-$VERSION = '4.012'; # sprintf '4.%03d', q$Revision: #11 $ =~ /\D(\d+)\s*$/;
-
-use Tk 800.000;
-use Carp;
-
-use Tk;
-use Tk::Toplevel;
-use strict;
-use base 'Tk::Toplevel';
-Construct Tk::Widget 'WidgetDemo';
-
-# %WIDGDEMO is a class global that tracks all WidgetDemo composite widgets,
-# providing a means of destroying a previous instance of a demonstration.
-
-my %WIDGDEMO; # class hash of active widget demonstrations
-
-sub Populate {
- my($self, $args) = @_;
-
- my (%arg_defaults) = (
- -name => 'Unknown Demo Name',
- -font => 'Helvetica 12',
- -text => 'Unknown Demo Text',
- -geometry_manager => 'pack',
- );
- my $name = $arg_defaults{-name};
- $arg_defaults{-title} = "$name Demonstration",
- $arg_defaults{-iconname} = $name;
-
- my(@margs, %ahsh, @args);
- @margs = grep ! defined $args->{$_}, keys %arg_defaults;
- %ahsh = %$args;
- @ahsh{@margs} = @arg_defaults{@margs};
- my($demo, $font, $text, $title, $iconname, $gm) =
- @ahsh{-name, -font, -text, -title, -iconname, -geometry_manager};
- delete $args->{-name};
- delete $args->{-font};
- delete $args->{-iconname};
- delete $args->{-geometry_manager};
-
- $WIDGDEMO{$demo}->destroy if Exists($WIDGDEMO{$demo});
- $WIDGDEMO{$demo} = $self;
-
- $self->SUPER::Populate($args);
- $self->iconname($iconname);
-
- my(@label_attributes) = ();
- if (ref($text) eq 'ARRAY') {
- @label_attributes = @$text[1 .. $#{$text}];
- $text = $text->[0];
- }
- my $msg = $self->Label(
- -font => $font,
- -wraplength => '4i',
- -justify => 'left',
- -text => $text,
- @label_attributes,
- );
-
- my $demo_frame = $self->Frame;
- $self->Advertise('WidgetDemo' => $demo_frame); # deprecated
-
- my $buttons = $self->Frame;
- my $dismiss = $buttons->Button(
- -text => 'Dismiss',
- -command => [$self => 'destroy'],
- );
- my $see = $buttons->Button(-text => 'See Code',
- -command => [\&main::see_code, $demo]);
-
- if ($gm eq 'pack') {
- $buttons->pack(qw/-side bottom -fill x -pady 2m/);
- $dismiss->pack(qw/-side left -expand 1/);
- $see->pack(qw/-side left -expand 1/);
- $msg->pack;
- $demo_frame->pack(qw/-fill both -expand 1 -anchor n/);
- } elsif ($gm eq 'grid') {
- $msg->grid;
- $demo_frame->grid(-sticky => "news");
- $demo_frame->gridColumnconfigure(0,-weight=>1);
- $demo_frame->gridRowconfigure(0,-weight=>1);
- $self->gridColumnconfigure(qw/0 -weight 1/);
- $self->gridRowconfigure(qw/1 -weight 1/);
- $buttons->grid(qw/-pady 2m -sticky ew/);
- $buttons->gridColumnconfigure(qw/0 -weight 1/);
- $buttons->gridColumnconfigure(qw/1 -weight 1/);
- $dismiss->grid(qw/-row 0 -column 0/);
- $see->grid(qw/-row 0 -column 1/);
- } else {
- croak "Only pack or grid geometry management supported.";
- }
-
- $self->Delegates('Construct' => $demo_frame);
-
- $self->ConfigSpecs(
- -text => [qw/METHOD text Text NoText/],
- );
-
- $self->{msg} = $msg;
-
- return $self;
-
-} # end Populate
-
-sub Top {return $_[0]->Subwidget('WidgetDemo')} # deprecated
-*top = *top = \&Top; # peacify -w
-
-sub text {
-
- my ($self, $text) = @_;
-
- my(@label_attributes) = ();
- if (ref($text) eq 'ARRAY') {
- @label_attributes = @$text[1 .. $#{$text}];
- $text = $text->[0];
- }
-
- $self->{msg}->configure(
- -text => $text,
- @label_attributes,
- );
-
-} # end text
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/arrows.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/arrows.pl
deleted file mode 100644
index de4973071b9..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/arrows.pl
+++ /dev/null
@@ -1,242 +0,0 @@
-# arrows.pl
-
-use subs qw/arrow_err arrow_move1 arrow_move2 arrow_move3 arrow_setup/;
-use vars qw/$TOP/;
-
-sub arrows {
-
- # Create a top-level window containing a canvas demonstration that
- # allows the user to experiment with arrow shapes.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => ['This widget allows you to experiment with different widths and arrowhead shapes for lines in canvases. To change the line width or the shape of the arrowhead, drag any of the three boxes attached to the oversized arrow. The arrows on the right give examples at normal scale. The text at the bottom shows the configuration options as you\'d enter them for a canvas line item.', qw/-wraplength 5i/],
- -title => 'Arrowhead Editor Demonstration',
- -iconname => 'arrows',
- );
-
- my $c = $TOP->Canvas(
- -width => '500',
- -height => '350',
- -relief => 'sunken',
- -borderwidth => 2,
- )->pack(qw/-expand yes -fill both/);
-
- my %ainfo; # arrow information hash
- $ainfo{a} = 8;
- $ainfo{b} = 10;
- $ainfo{c} = 3;
- $ainfo{width} = 2;
- $ainfo{move_sub} = undef;
- $ainfo{x1} = 40;
- $ainfo{x2} = 350;
- $ainfo{'y'} = 150;
- $ainfo{smallTips} = [5, 5, 2];
- $ainfo{count} = 0;
-
- if ($TOP->depth > 1) {
- $ainfo{bigLineStyle} = [qw/-fill SkyBlue1/];
- $ainfo{boxStyle} = [-fill => undef, qw/-outline black -width 1/];
- $ainfo{activeStyle} = [qw/-fill red -outline black -width 1/];
- } else {
- $ainfo{bigLineStyle} = [
- -fill => 'black',
- -stipple => '@'.Tk->findINC('demos/images/grey.25'),
- ];
- $ainfo{boxStyle} = [-fill => undef, qw/-outline black -width 1/];
- $ainfo{activeStyle} = [qw/-fill black -outline black -width 1/];
- }
- arrow_setup $c, \%ainfo;
-
- # Bindings to highlight the 3 tiny resize boxes.
-
- foreach ([qw/<Enter> activeStyle/], [qw/<Leave> boxStyle/]) {
- $c->bind('box', $_->[0] =>[
- sub {
- my($c, $style) = @_;
- $c->itemconfigure('current', @{$ainfo{$style}})
- }, $_->[1]],
- );
- }
- $c->bind(qw/box <B1-Enter>/ => 'NoOp');
- $c->bind(qw/box <B1-Leave>/ => 'NoOp');
-
- # Bindings that select one of the 3 tiny resize boxes' "move code".
-
- my $n;
- for $n (1,2,3) {
- $c->bind("box${n}", '<1>' =>
- sub {$ainfo{move_sub} = \&{"arrow_move${n}"}}
- );
- }
-
- # Bindings to move a resize box and redraw the arrow.
-
- $c->bind('box', '<B1-Motion>' =>
- sub {&{$ainfo{move_sub}}($c, \%ainfo)}
- );
- $c->Tk::bind('<Any-ButtonRelease-1>' => [\&arrow_setup, \%ainfo]);
-
-} # end arrows
-
-sub arrow_err {
-
- my($c) = @_;
-
- my $i = $c->createText(qw/.6i .1i -anchor n -text/ => "Range error!");
- $c->after(4000, sub { $c->delete($i) });
-
-} # end errow_err
-
-sub arrow_move1 {
-
- my($c, $v) = @_;
- my $e = $c->XEvent;
-
- my($x, $y, $err) = ($e->x, $e->y, 0);
- my $newA = int(($v->{x2} + 5 - int($c->canvasx($x))) / 10);
- $newA = 0, $err = 1 if $newA < 0;
- $newA = 25, $err = 1 if $newA > 25;
- if ($newA != $v->{a}) {
- $c->move('box1', 10 * ($v->{a} - $newA), 0);
- $v->{a} = $newA;
- }
- arrow_err($c) if $err;
-
-} # end arrow_move1
-
-sub arrow_move2 {
-
- my($c, $v) = @_;
- my $e = $c->XEvent;
-
- my($x, $y, $errx, $erry) = ($e->x, $e->y, 0, 0);
- my $newB = int(($v->{x2} + 5 - int($c->canvasx($x))) / 10);
- $newB = 0, $errx = 1 if $newB < 0;
- $newB = 25, $errx = 1 if $newB > 25;
- my $newC = int(($v->{'y'} + 5 - int($c->canvasy($y)) - 5 * $v->{width})
- / 10);
- $newC = 0, $erry = 1 if $newC < 0;
- $newC = 12, $erry = 1 if $newC > 12;
- if (($newB != $v->{b}) or ($newC != $v->{c})) {
- $c->move('box2', 10*($v->{b}-$newB), 10*($v->{c}-$newC));
- $v->{b} = $newB;
- $v->{c} = $newC;
- }
- arrow_err($c) if $errx or $erry;
-
-} # end arrow_move2
-
-sub arrow_move3 {
-
- my($c, $v) = @_;
- my $e = $c->XEvent;
-
- my($x, $y, $err) = ($e->x, $e->y, 0);
- my $newWidth = int(($v->{'y'} + 2 - int($c->canvasy($y))) / 5);
- $newWidth = 0, $err = 1 if $newWidth < 0;
- $newWidth = 20, $err = 1 if $newWidth > 20;
- if ($newWidth != $v->{width}) {
- $c->move('box3', 0, 5*($v->{width}-$newWidth));
- $v->{width} = $newWidth;
- }
- arrow_err($c) if $err;
-
-} # end arrow_move3
-
-sub arrow_setup {
-
- # The procedure below completely regenerates all the text and graphics in
- # the canvas window. It's called when the canvas is initially created,
- # and also whenever any of the parameters of the arrow head are changed
- # interactively. The argument is the name of the canvas widget to be
- # regenerated, and also the name of a global variable containing the
- # parameters for the display.
-
- my($c, $v) = @_;
-
- # Remember the current box, if there is one.
-
- my(@tags) = $c->gettags('current');
- my $cur = defined $tags[0] ? $tags[lsearch('box?', @tags)] : '';
-
- # Create the arrow and outline.
-
- $c->delete('all');
- $c->createLine($v->{x1}, $v->{'y'}, $v->{x2}, $v->{'y'},
- -width => 10*$v->{width},
- -arrowshape => [10*$v->{a}, 10*$v->{b}, 10*$v->{c}],
- -arrow => 'last', @{$v->{bigLineStyle}});
- my $xtip = $v->{x2}-10*$v->{b};
- my $deltaY = 10*$v->{c}+5*$v->{width};
- $c->createLine($v->{x2}, $v->{'y'}, $xtip, $v->{'y'}+$deltaY,
- $v->{x2}-10*$v->{a}, $v->{'y'}, $xtip, $v->{'y'}-$deltaY,
- $v->{x2}, $v->{'y'}, -width => 2, -capstyle => 'round',
- -joinstyle => 'round');
-
- # Create the boxes for reshaping the line and arrowhead.
-
- $c->createRectangle($v->{x2}-10*$v->{a}-5, $v->{'y'}-5,
- $v->{x2}-10*$v->{a}+5, $v->{'y'}+5, @{$v->{boxStyle}},
- -tags => ['box1', 'box']);
- $c->createRectangle($xtip-5, $v->{'y'}-$deltaY-5, $xtip+5,
- $v->{'y'}-$deltaY+5, @{$v->{boxStyle}},
- -tags => ['box2', 'box']);
- $c->createRectangle($v->{x1}-5, $v->{'y'}-5*$v->{width}-5,
- $v->{x1}+5, $v->{'y'}-5*$v->{width}+5, @{$v->{boxStyle}},
- -tags => ['box3', 'box']);
-
- # Create three arrows in actual size with the same parameters
-
- $c->createLine($v->{x2}+50, 0, $v->{x2}+50, 1000, -width => 2);
- my $tmp = $v->{x2}+100;
- $c->createLine($tmp, $v->{'y'}-125, $tmp, $v->{'y'}-75,
- -width => $v->{width}, -arrow => 'both',
- -arrowshape => [$v->{a}, $v->{b}, $v->{c}]);
- $c->createLine($tmp-25, $v->{'y'}, $tmp+25, $v->{'y'},
- -width => $v->{width}, -arrow => 'both',
- -arrowshape =>[$v->{a}, $v->{b}, $v->{c}]);
- $c->createLine($tmp-25, $v->{'y'}+75, $tmp+25, $v->{'y'}+125,
- -width => $v->{width}, -arrow => 'both',
- -arrowshape => [$v->{a}, $v->{b}, $v->{c}]);
- $c->itemconfigure($cur, @{$v->{activeStyle}}) if $cur =~ /box?/;
-
- # Create a bunch of other arrows and text items showing the current
- # dimensions.
-
- $tmp = $v->{x2}+10;
- $c->createLine($tmp, $v->{'y'}-5*$v->{width}, $tmp, $v->{'y'}-$deltaY,
- -arrow => 'both', -arrowshape => $v->{smallTips});
- $c->createText($v->{x2}+15, $v->{'y'}-$deltaY+5*$v->{c},
- -text => $v->{c}, -anchor => 'w');
- $tmp = $v->{x1}-10;
- $c->createLine($tmp, $v->{'y'}-5*$v->{width}, $tmp,
- $v->{'y'}+5*$v->{width}, -arrow => 'both',
- -arrowshape => $v->{smallTips});
- $c->createText($v->{x1}-15, $v->{'y'}, -text => $v->{width},
- -anchor => 'e');
- $tmp = $v->{'y'}+5*$v->{width}+10*$v->{c}+10;
- $c->createLine($v->{x2}-10*$v->{a}, $tmp, $v->{x2}, $tmp,
- -arrow => 'both', -arrowshape => $v->{smallTips});
- $c->createText($v->{x2}-5*$v->{a}, $tmp+5, -text => $v->{a},
- -anchor => 'n');
- $tmp = $tmp+25;
- $c->createLine($v->{x2}-10*$v->{b}, $tmp, $v->{x2}, $tmp,
- -arrow => 'both', -arrowshape => $v->{smallTips});
- $c->createText($v->{x2}-5*$v->{b}, $tmp+5, -text => $v->{b},
- -anchor => 'n');
-
- $c->createText($v->{x1}, 310, -text => "-width => $v->{width}",
- -anchor => 'w',
- -font => '-*-Helvetica-Medium-R-Normal--*-180-*-*-*-*-*-*');
- $c->createText($v->{x1}, 330,
- -text => "-arrowshape => [$v->{a}, $v->{b}, $v->{c}]",
- -anchor => 'w',
- -font => '-*-Helvetica-Medium-R-Normal--*-180-*-*-*-*-*-*');
-
- $v->{count}++;
-
-} # end arrow_setup
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/balloon.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/balloon.pl
deleted file mode 100644
index 630ac957950..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/balloon.pl
+++ /dev/null
@@ -1,168 +0,0 @@
-# Balloon, pop up help window when mouse lingers over widget.
-
-use Tk;
-use English;
-use Carp;
-
-use Tk::Frame;
-use Tk::Balloon;
-
-my $lmsg = "";
-
-my $top = MainWindow->new;
-my $f = $top->Frame;
-
-# status bar widget
-my $status = $top->Label(-width => 60, -relief => "sunken", -bd => 1, -anchor => 'w');
-$status->pack(-side => "bottom", -fill => "y", -padx => 2, -pady => 1);
-
-# create the widgets to be explained
-my $mb = $top->Menubutton(-relief => 'raised',
- -text => 'Menu button');
-my $xxx = 0;
-$mb->checkbutton(-label => 'checkbutton',
- -variable => \$xxx);
-$mb->cascade(-label => 'cascade entry');
-my $menu = $mb->cget(-menu);
-my $cm = $menu->Menu(-tearoff => 0);
-$mb->entryconfigure('cascade entry', -menu => $cm);
-$cm->command(-label => 'first');
-$cm->command(-label => 'second');
-$mb->separator;
-$mb->command(-label => 'Close',
- -command => sub {$top->destroy;});
-
-my $tm = $top->Menu(-title => "Balloon menu");
-$tm->cascade(-label => "Toplevel menu", -menu => $menu);
-$top->configure(-menu => $tm);
-
-my $b1 = $top->Button(-text => "Something Unexpected",
- -command => sub {$top->destroy;});
-my $b2 = $top->Button(-text => "Something Else Unexpected");
-$b2->configure(-command => sub {$b2->destroy;});
-
-# Pack the created widgets:
-$mb->pack(-side => "top", -expand => 1);
-$b1->pack(-side => "top", -expand => 1);
-$b2->pack(-side => "top", -expand => 1);
-
-my $t = $top->Text(-height => 10, -cursor => 'top_left_arrow')->pack;
-$t->insert('end',<<END);
-
-Move the mouse cursor over the buttons above and let it linger.
-A message will be displayed in status box below and a descriptive
-balloon will appear. The top button is a menu button which has
-different messages set for each menu entry. This text widget has
-a balloon attached to it which will change depending on which word
-the mouse is over.
-
-END
-
-my $clbf = $top->Frame->pack;
-my $cf = $clbf->Frame->pack(-side => "left");
-
-my $c1 = $cf->Canvas(-height => 100, -width => 300, -bg => 'white')->pack(-padx => 8, -pady => 8);
-my $c2 = $cf->Canvas(-height => 100, -width => 300, -bg => 'white')->pack(-padx => 8, -pady => 8);
-my $id = $c1->create('text', 10, 10,
- -anchor => 'nw',
- -text => "This is a canvas. You can also attach\nballoons to specific items in a canvas");
-$c1->create('rectangle', 40, 60, 80, 80,
- -fill => 'red',
- -tags => 'rectangle',);
-$c1->create('oval', 100, 50, 140, 90,
- -fill => 'blue',
- -tags => 'circle',);
-$c2->create('text', 10, 10,
- -anchor => 'nw',
- -text => "Or you can attach the balloon\nto the canvas as a whole.");
-
-my $lb = $clbf->Listbox->pack(-side => "left");
-$lb->insert(qw/end one two three four/);
-
-# create the balloon widget
-my $b = $top->Balloon(-statusbar => $status);
-
-$b->attach($mb,
- -msg => 'Press and hold this button to see the menu.');
-$b->attach($menu,
- #-state => 'status',
- -balloonposition => 'mouse',
- -msg => ['Use this to tear off the menu.',
- 'This is a checkbox entry.',
- 'cascade', # Cascade entry (ignored by Balloon)
- 'separator', # Separator: never active so no message will be displayed for this entry.
- 'This is a command entry - it will close this window.',
- ],
- );
-$b->attach($cm,
- -msg => 'This balloon is attached to the cascade menu, not it\'s entries',
- #-statusmsg => 'msg cm',
- #-balloonmsg => 'cm msg.',
- );
-$b->attach($b1,
- -balloonmsg => "Close Window",
- -statusmsg => "Press this button to close this window");
-$b->attach($b2,
- -balloonmsg => "Self-destruct\nButton",
- -statusmsg => "Press this button and it will get rid of itself");
-
-my $msg = '';
-my @word = ('', ''); # Indicies surrounding the current word.
-my @last = ('', ''); # Same for last word.
-$b->attach($t, -msg => \$msg,
- -balloonposition => 'mouse', # Not really used since the postcommand returns the real position.
- -postcommand => sub { if ($word[0] eq $word[1]) {
- # No word under mouse - don't post the balloon.
- 0;
- } else {
- # Have a word under mouse - change the message:
- my $word = $t->get($word[0], $word[1]);
- # Skip it if it contains non-word chars:
- return 0 if $word =~ /\W/;
- $msg = "The word under the mouse is: $word";
- $t->tag('add', 'sel', $word[0] => $word[1]);
- # Find a good place to put the balloon (right below the last char in the word):
- my $i = $t->index("$word[1] - 1 chars");
- my @p = $t->bbox($i);
- my $x = $t->rootx + $p[0] + $p[2] - 4;
- my $y = $t->rooty + $p[1] + $p[3] + 2;
- "$x,$y";
- }
- },
- -motioncommand => sub { my $x = $t->pointerx - $t->rootx;
- my $y = $t->pointery - $t->rooty;
- @word = ($t->index("\@$x,$y wordstart"), $t->index("\@$x,$y wordend"));
- if ($word[0] eq $last[0] and $word[1] eq $last[1]) {
- # Same word - don't cancel the balloon.
- 0;
- } else {
- # New word under mouse - cancel it so a new balloon will be posted.
- $t->SelectionClear;
- @last = @word;
- 1;
- }
- },
- );
-$b->attach($c1,
- -balloonposition => 'mouse',
- -msg => {'rectangle' => 'You are over the red rectangle right now.',
- $id => 'You are over the text right now.',
- 'circle' => 'You are over the blue circle right now.',
- });
-$b->attach($c2,
- -msg => 'This balloon is attached to the canvas itself.',
- );
-
-$b->attach($lb,
- -balloonposition => 'mouse',
- -msg => [qw/1 2 3 4/],
- );
-
-# As $b is a child of $top it is destroyed when $top is destroyed.
-# Balloon.pm now registers a handler for that, and so
-# this hackery is no longer required (and did not actually work
-# before).
-# $top->OnDestroy(sub { $b->destroy; });
-
-MainLoop;
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/bind.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/bind.pl
deleted file mode 100644
index 65579183a91..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/bind.pl
+++ /dev/null
@@ -1,65 +0,0 @@
-# bind.pl
-
-use vars qw/$TOP/;
-
-sub bind {
-
- # Create a top-level window that illustrates how you can bind Perl
- # commands to regions of text in a text widget.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text =>'',
- -title => 'Text Demonstration - Tag Bindings',
- -iconname => 'bind',
- );
-
- my $t = $TOP->Scrolled(qw/Text -setgrid true -width 60 -height 24
- -scrollbars e -wrap word/, -font => $FONT);
- $t->pack(qw/-expand yes -fill both/);
-
- # Set up display styles
-
- my(@bold, @normal, $tag);
- if ($TOP->depth > 1) {
- @bold = (-background => '#43ce80', qw/-relief raised -borderwidth 1/);
- @normal = (-background => undef, qw/-relief flat/);
- } else {
- @bold = (qw/-foreground white -background black/);
- @normal = (-foreground => undef, -background => undef);
- }
-
- $t->insert('0.0', "The same tag mechanism that controls display styles in text widgets can also be used to associate Perl commands with regions of text, so that mouse or keyboard actions on the text cause particular Perl commands to be invoked. For example, in the text below the descriptions of the canvas demonstrations have been tagged. When you move the mouse over a demo description the description lights up, and when you press button 1 over a description then that particular demonstration is invoked.\n\n");
- $t->insert('end','1. Samples of all the different types of items that can be created in canvas widgets.', 'd1');
- $t->insert('end', "\n\n");
- $t->insert('end', '2. A simple two-dimensional plot that allows you to adjust the positions of the data points.', 'd2');
- $t->insert('end', "\n\n");
- $t->insert('end', '3. Anchoring and justification modes for text items.', 'd3');
- $t->insert('end', "\n\n");
- $t->insert('end', '4. An editor for arrow-head shapes for line items.', 'd4');
- $t->insert('end', "\n\n");
- $t->insert('end', '5. A ruler with facilities for editing tab stops.', 'd5');
- $t->insert('end', "\n\n");
- $t->insert('end', '6. A grid that demonstrates how canvases can be scrolled.', 'd6');
-
- foreach $tag (qw(d1 d2 d3 d4 d5 d6)) {
- $t->tagBind($tag, '<Any-Enter>' =>
- sub {shift->tagConfigure($tag, @bold)}
- );
- $t->tagBind($tag, '<Any-Leave>' =>
- sub {shift->tagConfigure($tag, @normal)}
- );
- }
- $t->tagBind(qw/d1 <1>/ => sub {&items('items')});
- $t->tagBind(qw/d2 <1>/ => sub {&plot('plot')});
- $t->tagBind(qw/d3 <1>/ => sub {&ctext('ctext')});
- $t->tagBind(qw/d4 <1>/ => sub {&arrows('arrows')});
- $t->tagBind(qw/d5 <1>/ => sub {&ruler('ruler')});
- $t->tagBind(qw/d6 <1>/ => sub {&cscroll('cscroll')});
-
- $t->mark(qw/set insert 0.0/);
-
-} # end bind
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/bitmaps.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/bitmaps.pl
deleted file mode 100644
index 8001e884b2d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/bitmaps.pl
+++ /dev/null
@@ -1,44 +0,0 @@
-# bitmaps.pl
-
-use subs qw/bitmaps_row/;
-use vars qw/$TOP/;
-
-sub bitmaps {
-
- # Create a top-level window that displays all of Tk's built-in bitmaps.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'This window displays all of Tk\'s built-in bitmaps, along with the names you can use for them in Perl scripts.',
- -title => 'Bitmap Demonstration',
- -iconname => 'bitmaps',
- );
-
- my $frame = $TOP->Frame;
- $frame->pack(qw/-side top -expand yes -fill both/);
- bitmaps_row $frame, qw/error gray12 gray25 gray50 gray75 hourglass/;
- bitmaps_row $frame, qw/info questhead question Tk transparent warning/;
-
-} # end bitmaps
-
-sub bitmaps_row {
-
- # The procedure below creates a new row of bitmaps in a window.
-
- my($w, @names) = @_;
-
- my $row = $w->Frame->pack(qw/-side top -fill both/);
-
- foreach my $bitmap_name (@names) {
- my $bit = $row->Frame;
- $bit->pack(qw/-side left -fill both -pady .25c -padx .25c/);
- my $label = $bit->Label(-text => $bitmap_name, -width => 9);
- $label->pack(qw/-side bottom/);
- my $bitmap = $bit->Label('-bitmap' => $bitmap_name);
- $bitmap->pack(qw/-side bottom/);
- }
-
-} # end bitmaps_row
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/bounce.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/bounce.pl
deleted file mode 100644
index a6012fb818b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/bounce.pl
+++ /dev/null
@@ -1,274 +0,0 @@
-# bounce.pl
-
-use Ball;
-use Tk qw/:eventtypes/;
-use subs qw/ClearMsg DoSingleStep NotDone ShowMsg SimStart SimStop mkmb/;
-use vars qw/$TOP/;
-
-my(@menu_button_list, $quit_flag, $quit_code,
- $bounce_status, $bounce_speed, $bounce_running, $bounce_counter);
-
-sub bounce {
-
- # This began as a borrowed idea from Python distribution examples, ended up
- # with a Ball module of its own. It illustrates how one can run something
- # without blocking XEvent processing in a simple-minded sorta way.
- #
- # Handles resizes to the main window
- #
- # Gurusamy Sarathy (gsar@engin.umich.edu)
- # Tidied up by SOL.
- #
- # 97/06/10 This demo is sufficiently bizarre enough that we don't use
- # WidgetDemo! (-: Plus, you get to see Exists() in action.
-
- my($demo) = @_;
-
- $TOP->destroy if Exists($TOP);
- $TOP = $MW->Toplevel;
- $TOP->title('Bouncing Ball Simulator');
- $TOP->iconname('bounce');
-
- @menu_button_list = ();
- $quit_flag = 0;
- $quit_code = sub {$quit_flag = 1};
- $TOP->protocol('WM_DELETE_WINDOW' => $quit_code);
-
- my $menubar = $TOP->Frame(qw/-relief raised -background DarkGreen -bd 2/);
- $menubar->pack(-side => 'top', -fill => 'x');
-
- mkmb($menubar, 'File', 0, 'File related stuff',
- [
- ['Open', \&NotDone, 0],
- ['New', \&NotDone, 0],
- ['Print', \&NotDone, 0],
- ['Exit', sub{$TOP->bell}, 0],
- ]);
-
- mkmb($menubar, 'Simulate', 0, 'Simulator control',
- [
- ['Start', \&SimStart, 2],
- ['Stop', \&SimStop, 2],
- ]);
-
- mkmb($menubar, 'Display', 0, 'Display settings',
- [
- ['Redraw', \&NotDone, 2],
- ['Clear', \&NotDone, 2],
- ]);
-
- mkmb($menubar, 'Options', 0, 'Various preferences',
- [
- ['Steptime', \&NotDone, 0],
- ['Colors', \&NotDone, 0],
- ['Display', \&NotDone, 0],
- ]);
-
- mkmb($menubar, 'Help', 0, 'There when you need it',
- [
- ['About..', \&NotDone, 0],
- ['Intro', \&NotDone, 0],
- ['Contents', \&NotDone, 0],
- ]);
- $menu_button_list[$#menu_button_list]->pack(-side => 'right');
-
- my $feedback = $TOP->Frame();
- $feedback->pack(-side => 'bottom', -fill => 'x');
- $bounce_status = $feedback->Text(
- -relief => 'sunken',
- -height => 1,
- -background => 'gray',
- -borderwidth => 2,
- );
- $bounce_status->pack(-side => 'left', -fill => 'x', -expand => 1);
-
- my $drawarea = $TOP->Frame();
- $drawarea->pack(-side => 'top', -fill => 'both', -expand => 1);
-
- my $canvas = $drawarea->Canvas(
- -relief => 'ridge',
- -height => 400,
- -width => 600,
- -borderwidth => 2,
- );
- $canvas->pack(-side => 'left', -fill => 'both', -expand => 1);
-
- $bounce_speed = $drawarea->Scale(
- -orient => 'vert',
- -showvalue => 0,
- -width => 10,
- -from => 100,
- -to => 0,
- -borderwidth => 1,
- );
- $bounce_speed->pack(-side => 'left', -fill => 'y');
- $bounce_speed->bind('<Enter>' => sub {
- ClearMsg; ShowMsg('Adjust slider for ball speed');
- });
- $bounce_speed->bind('<Leave>' => \&ClearMsg);
- $bounce_speed->set(50);
-
- my $w_buttons = $TOP->Frame;
- $w_buttons->pack(qw(-side bottom -expand y -fill x -pady 2m));
- my $w_dismiss = $w_buttons->Button(
- -text => 'Dismiss',
- -command => $quit_code,
- );
- $w_dismiss->pack(qw(-side left -expand 1));
- my $w_see = $w_buttons->Button(
- -text => 'See Code',
- -command => [\&see_code, $demo],
- );
- $w_see->pack(qw(-side left -expand 1));
- my $w_ball = $w_buttons->Button(
- -text => 'View Ball Class Module',
- -command => [\&view_widget,
- Tk->findINC('demos/widget_lib') . '/Ball.pm'],
- );
- $w_ball->pack(qw(-side left -expand 1));
-
- $bounce_running = 0;
- $menu_button_list[1]->cget(-menu)->entryconfigure(1, -state => 'disabled');
-
- $canvas->Ball;
- $canvas->Ball(-color => 'red', -size => 30, -position => [200, 75]);
- $canvas->Ball(
- -color => 'green',
- -size => 60,
- -position => [490, 275],
- -velocity => [8.0, 12.0],
- );
- $canvas->Ball(
- -color => 'yellow',
- -size => 100,
- -position => [360, 60],
- -velocity => [8.0, 12.0],
- );
-
- $bounce_counter = 0;
- $TOP->repeat(1000 => sub {
- return unless $bounce_running;
- ClearMsg;
- ShowMsg(sprintf("%6d interations/second", $bounce_counter));
- $bounce_counter = 0
- });
-
-
- # This runs the Tk mainloop. Note that the simulation itself has a main
- # loop which must be processed. DoSingleStep runs a bit of the simulation
- # during every iteration. Also note that, with a flag of 0,
- # Tk::DoOneEvent will suspend the process until an X-event arrives,
- # effectively blocking the while loop.
- #
- # My original idea was to run the simulation mainloop as an asynchronous
- # proc handler that runs when Tk is idle, but the necessary Async(3) calls
- # from Tcl haven't made it into nTk yet.
-
- while (1) {
- if ($quit_flag) {
- $TOP->destroy;
- return;
- }
- DoOneEvent($bounce_running ? DONT_WAIT : ALL_EVENTS);
- DoSingleStep($canvas) if $bounce_running;
- }
-
-} # end bounce
-
-sub mkmb {
-
- # (Ripped from nTk examples)
- # Make a Menubutton widget; note that the menu is automatically created.
- # We maintain a list of the Menubutton references since some callers
- # need to refer to the Menubutton, as well as to suppress stray name
- # warnings with Perl -w.
-
- my($mb0, $mb_label, $mb_label_underline, $mb_msg, $mb_list_ref) = @_;
- my $mb = $mb0->Menubutton(
- -text => $mb_label,
- -underline => $mb_label_underline,
- -background => 'DarkGreen',
- -foreground => 'Yellow',
- );
- my($menu) = $mb->Menu(-tearoff => 0);
- $mb->configure(-menu => $menu);
-
- my $mb_list;
- foreach $mb_list (@{$mb_list_ref}) {
- $mb->command(
- -label => $mb_list->[0],
- -command => $mb_list->[1] ,
- -underline => $mb_list->[2],
- -background => 'DarkGreen',
- -foreground => 'White',
- );
- }
- $mb->pack(-side => 'left');
- $TOP->bind($mb, '<Enter>' => sub {ClearMsg; ShowMsg($mb_msg)});
- $TOP->bind($mb, '<Leave>' => \&ClearMsg);
-
- push @menu_button_list, $mb;
- return $mb;
-
-} # end mkmb
-
-sub SimStart {
-
- if (not $bounce_running) {
- $bounce_running = 1;
- $menu_button_list[1]->cget(-menu)->entryconfigure(0,
- -state => 'disabled',
- );
- $menu_button_list[1]->cget(-menu)->entryconfigure(1,
- -state => 'normal',
- );
- }
-
-} # end SimStart
-
-sub SimStop {
-
- if ($bounce_running) {
- $bounce_running = 0;
- $menu_button_list[1]->cget(-menu)->entryconfigure(0,
- -state => 'normal',
- );
- $menu_button_list[1]->cget(-menu)->entryconfigure(1,
- -state => 'disabled',
- );
- }
-
-} # end SimStop
-
-sub NotDone {
-
- print "Not yet implemented.\n";
-
-} # end NotDone
-
-sub ShowMsg {
-
- my($msg) = shift;
- $bounce_status->insert('1.0', $msg);
-
-} # end ShowMsg
-
-sub ClearMsg {
-
- $bounce_status->delete('1.0', 'end');
-
-} # end ClearMsg
-
-sub DoSingleStep {
-
- # The simulation handler.
- #
- # Note that this handler must be cooperative and return after a short
- # period, so that other X events may be processed by the mainloop below.
-
- my($canvas) = @_;
-
- $bounce_counter++;
- Ball->move_all_balls($canvas, $bounce_speed->get() / 100.0);
-
-} # end DoSingle Step
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/browseentry.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/browseentry.pl
deleted file mode 100644
index ce32f13934b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/browseentry.pl
+++ /dev/null
@@ -1,34 +0,0 @@
-# BrowseEntry, entry with listbox to select list values.
-
-use Tk::BrowseEntry;
-
-my $month = "January";
-
-outer:
-{
- my $top = MainWindow->new;
- my $f = $top->Frame;
- my $c = $f->BrowseEntry(-label => "Month:", -variable => \$month);
- $c->pack;
- $c->insert("end", "January");
- $c->insert("end", "February");
- $c->insert("end", "March");
- $c->insert("end", "April");
- $c->insert("end", "May");
- $c->insert("end", "June");
- $c->insert("end", "July");
- $c->insert("end", "August");
- $c->insert("end", "September");
- $c->insert("end", "October");
- $c->insert("end", "November");
- $c->insert("end", "December");
- my $bf = $f->Frame;
- $bf->Button(-text => "Print value",
- -command => sub {
- print "The month is $month\n";
- }, -relief => "raised")->pack;
-
- $bf->pack;
- $f->pack;
- MainLoop;
-}
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/browseentry2.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/browseentry2.pl
deleted file mode 100644
index 5c8f9919847..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/browseentry2.pl
+++ /dev/null
@@ -1,39 +0,0 @@
-# BrowseEntry, another example.
-#
-# Chris Dean <ctdean@cogit.com>
-
-use strict;
-use Tk;
-use Tk::BrowseEntry;
-
-my $top = new MainWindow( -title => "BrowseEntry 2" );
-main( $top );
-MainLoop();
-
-sub main {
- my( $top ) = @_;
-
- my @countries = qw( America Belize Canada Denmark Egypt Fruitopia );
- my @states = qw( normal readonly disabled );
- foreach my $i (0..$#states) {
- my $state = $states[$i];
- my $var = $countries[$i];
- my $f = $top->Frame->pack( qw/-side left/ );
- my $be = $f->BrowseEntry( -variable => \$var,
- -choices => \@countries,
- -state => $state )->pack;
- if( $state eq "disabled" ) {
- $be->configure( -arrowimage => $f->Getimage( "balArrow" ) )
- }
- foreach my $s (@states) {
- $f->Radiobutton( -text => $s,
- -value => $s,
- -variable => \$state,
- -command => sub {
- $be->configure( -state => $state ); }
- )->pack( qw/-anchor w/ );
- }
- $f->Button( -text => "Print value", -command => sub {
- print "$var\n" } )->pack;
- }
-}
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/button.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/button.pl
deleted file mode 100644
index 4cc1b581678..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/button.pl
+++ /dev/null
@@ -1,28 +0,0 @@
-# button.pl
-
-use vars qw/$TOP/;
-
-sub button {
-
- # Create a top-level window that displays a bunch of buttons.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'If you click on any of the four buttons below, the background of the button area will change to the color indicated in the button. You can press Tab to move among the buttons, then press Space to invoke the current button.',
- -title => 'Button Demonstration',
- -iconname => 'button',
- );
-
- foreach my $color (qw/PeachPuff1 LightBlue1 SeaGreen2 Yellow1/) {
- my $b = $TOP->Button(
- -text => $color,
- -width => 10,
- -command => sub {$TOP->configure(-background => lc($color))},
- );
- $b->pack(qw/-side top -expand yes -pady 2/);
- }
-
-} # end button
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/check.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/check.pl
deleted file mode 100644
index a5f9a10c093..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/check.pl
+++ /dev/null
@@ -1,44 +0,0 @@
-# check.pl
-
-use vars qw/$TOP/;
-
-sub check {
-
- # Create a top-level window that displays a bunch of check buttons.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'Three checkbuttons are displayed below. If you click on a button, it will toggle the button\'s selection state and set a Perl variable to a value indicating the state of the checkbutton. Click the "See Variables" button to see the current values of the variables.',
- -title => 'Checkbutton Demonstration',
- -iconname => 'check',
- );
-
- my $var = $TOP->Button(
- -text => 'See Variables',
- -command => [\&see_vars, $TOP, [
- ['wipers', \$WIPERS],
- ['brakes', \$BRAKES],
- ['sober', \$SOBER],
- ],
- ],
- );
- $var->pack(qw/-side bottom -expand 1/);
-
- my(@pl) = qw/-side top -pady 2 -anchor w/;
- my $b1 = $TOP->Checkbutton(
- -text => 'Wipers OK',
- -variable => \$WIPERS,
- -relief => 'flat')->pack(@pl);
- my $b2 = $TOP->Checkbutton(
- -text => 'Brakes OK',
- -variable => \$BRAKES,
- -relief => 'flat')->pack(@pl);
- my $b3 = $TOP->Checkbutton(
- -text => 'Driver Sober',
- -variable => \$SOBER,
- -relief => 'flat')->pack(@pl);
-
-} # end check
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/choosedir.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/choosedir.pl
deleted file mode 100644
index 5062afa0fad..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/choosedir.pl
+++ /dev/null
@@ -1,39 +0,0 @@
-# This demonstration script prompts the user to select a directory.
-
-use vars qw/$TOP/;
-
-sub choosedir {
- my $demo = shift;
-
- $TOP = $MW->WidgetDemo
- (
- -name => $demo,
- -text => "Enter a directory name in the entry box or click on the \"Browse\" buttons to select a directory name using the directory selection dialog.",
- -title => 'Choose Directory Demonstration',
- -iconname => 'choosedir',
- );
- {
- my $f = $TOP->Frame;
- my $lab = $f->Label(-text => "Select a directory to open: ",
- -anchor => 'e');
- my $ent = $f->Entry(-width => 20);
- my $but = $f->Button(-text => "Browse ...",
- -command => sub { dirDialog($TOP, $ent)});
- $lab->pack(-side => 'left');
- $ent->pack(-side => 'left',-expand => 'yes', -fill => 'x');
- $but->pack(-side => 'left');
- $f->pack(-fill => 'x', -padx => '1c', -pady => 3);
- }
-}
-
-sub dirDialog {
- my $w = shift;
- my $ent = shift;
- my $dir;
- $dir = $w->chooseDirectory;
- if (defined $dir and $dir ne '') {
- $ent->delete(0, 'end');
- $ent->insert(0, $dir);
- $ent->xview('end');
- }
-}
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/clrpick.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/clrpick.pl
deleted file mode 100644
index df9d3a72cd7..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/clrpick.pl
+++ /dev/null
@@ -1,45 +0,0 @@
-# clrpick.pl
-
-use Tk qw/catch/;
-use subs qw/setColor setColor_helper/;
-use vars qw/$TOP/;
-
-sub clrpick {
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'Press the buttons below to choose the foreground and background colors for the widgets in this window.',
- -title => 'chooseColor Demo',
- -iconname => 'chooseColor',
- );
-
- my(@pl) = qw/-side top -anchor c -pady 2m/;
- my($back, $front);
- $back = $TOP->Button(-text => 'Set background color ...')->pack(@pl);
- $back->configure(-command => [\&setColor => $TOP, $back, '-background',
- [-background, -highlightbackground]]);
- $front = $TOP->Button(-text => 'Set foreground color ...')->pack(@pl);
- $front->configure(-command => [\&setColor => $TOP, $front, '-foreground',
- [-foreground]]);
-}
-
-sub setColor {
- my($top, $button, $name, $options) = @_;
- my $initialColor = $button->cget($name);
- my $color = $button->chooseColor(-title => "Choose a $name color",
- -initialcolor => $initialColor);
- setColor_helper $top, $options, $color if defined $color;
-}
-
-sub setColor_helper {
- my($widget, $options, $color) = @_;
- foreach my $option (@$options) {
- catch {
- $widget->configure($option => $color);
- }
- }
- foreach my $child ($widget->children) {
- setColor_helper $child, $options, $color;
- }
-}
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/colors.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/colors.pl
deleted file mode 100644
index 922225107c1..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/colors.pl
+++ /dev/null
@@ -1,85 +0,0 @@
-# colors.pl
-
-use vars qw/$TOP/;
-
-sub colors {
-
- # Create a top-level window containing a listbox showing a bunch of
- # colors from the X color database.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'A listbox containing several color names is displayed below, along with a scrollbar. You can scan the list either using the scrollbar or by dragging in the listbox window with button 2 pressed. If you double-click button 1 on a color, then the application\'s color palette will be set to match that color.',
- -title => 'Listbox Demonstration (colors)',
- -iconname => 'colors',
- );
-
- my $list = $TOP->Scrolled(qw/Listbox -width 20 -height 16 -setgrid 1
- -scrollbars e/);
- $list->pack(qw/-side left -fill y/);
- $list->focus;
-
- $list->bind('<Double-1>' =>
- sub {
- $_[0]->setPalette($_[0]->get('active'));
- },
- );
-
- $list->insert(0, qw/gray60 gray70 gray80 gray85 gray90
-gray95 snow1 snow2 snow3 snow4 seashell1 seashell2 seashell3 seashell4
-AntiqueWhite1 AntiqueWhite2 AntiqueWhite3 AntiqueWhite4 bisque1
-bisque2 bisque3 bisque4 PeachPuff1 PeachPuff2 PeachPuff3 PeachPuff4
-NavajoWhite1 NavajoWhite2 NavajoWhite3 NavajoWhite4 LemonChiffon1
-LemonChiffon2 LemonChiffon3 LemonChiffon4 cornsilk1 cornsilk2
-cornsilk3 cornsilk4 ivory1 ivory2 ivory3 ivory4 honeydew1 honeydew2
-honeydew3 honeydew4 LavenderBlush1 LavenderBlush2 LavenderBlush3
-LavenderBlush4 MistyRose1 MistyRose2 MistyRose3 MistyRose4 azure1
-azure2 azure3 azure4 SlateBlue1 SlateBlue2 SlateBlue3 SlateBlue4
-RoyalBlue1 RoyalBlue2 RoyalBlue3 RoyalBlue4 blue1 blue2 blue3 blue4
-DodgerBlue1 DodgerBlue2 DodgerBlue3 DodgerBlue4 SteelBlue1 SteelBlue2
-SteelBlue3 SteelBlue4 DeepSkyBlue1 DeepSkyBlue2 DeepSkyBlue3
-DeepSkyBlue4 SkyBlue1 SkyBlue2 SkyBlue3 SkyBlue4 LightSkyBlue1
-LightSkyBlue2 LightSkyBlue3 LightSkyBlue4 SlateGray1 SlateGray2
-SlateGray3 SlateGray4 LightSteelBlue1 LightSteelBlue2 LightSteelBlue3
-LightSteelBlue4 LightBlue1 LightBlue2 LightBlue3 LightBlue4 LightCyan1
-LightCyan2 LightCyan3 LightCyan4 PaleTurquoise1 PaleTurquoise2
-PaleTurquoise3 PaleTurquoise4 CadetBlue1 CadetBlue2 CadetBlue3
-CadetBlue4 turquoise1 turquoise2 turquoise3 turquoise4 cyan1 cyan2
-cyan3 cyan4 DarkSlateGray1 DarkSlateGray2 DarkSlateGray3
-DarkSlateGray4 aquamarine1 aquamarine2 aquamarine3 aquamarine4
-DarkSeaGreen1 DarkSeaGreen2 DarkSeaGreen3 DarkSeaGreen4 SeaGreen1
-SeaGreen2 SeaGreen3 SeaGreen4 PaleGreen1 PaleGreen2 PaleGreen3
-PaleGreen4 SpringGreen1 SpringGreen2 SpringGreen3 SpringGreen4 green1
-green2 green3 green4 chartreuse1 chartreuse2 chartreuse3 chartreuse4
-OliveDrab1 OliveDrab2 OliveDrab3 OliveDrab4 DarkOliveGreen1
-DarkOliveGreen2 DarkOliveGreen3 DarkOliveGreen4 khaki1 khaki2 khaki3
-khaki4 LightGoldenrod1 LightGoldenrod2 LightGoldenrod3 LightGoldenrod4
-LightYellow1 LightYellow2 LightYellow3 LightYellow4 yellow1 yellow2
-yellow3 yellow4 gold1 gold2 gold3 gold4 goldenrod1 goldenrod2
-goldenrod3 goldenrod4 DarkGoldenrod1 DarkGoldenrod2 DarkGoldenrod3
-DarkGoldenrod4 RosyBrown1 RosyBrown2 RosyBrown3 RosyBrown4 IndianRed1
-IndianRed2 IndianRed3 IndianRed4 sienna1 sienna2 sienna3 sienna4
-burlywood1 burlywood2 burlywood3 burlywood4 wheat1 wheat2 wheat3
-wheat4 tan1 tan2 tan3 tan4 chocolate1 chocolate2 chocolate3 chocolate4
-firebrick1 firebrick2 firebrick3 firebrick4 brown1 brown2 brown3
-brown4 salmon1 salmon2 salmon3 salmon4 LightSalmon1 LightSalmon2
-LightSalmon3 LightSalmon4 orange1 orange2 orange3 orange4 DarkOrange1
-DarkOrange2 DarkOrange3 DarkOrange4 coral1 coral2 coral3 coral4
-tomato1 tomato2 tomato3 tomato4 OrangeRed1 OrangeRed2 OrangeRed3
-OrangeRed4 red1 red2 red3 red4 DeepPink1 DeepPink2 DeepPink3 DeepPink4
-HotPink1 HotPink2 HotPink3 HotPink4 pink1 pink2 pink3 pink4 LightPink1
-LightPink2 LightPink3 LightPink4 PaleVioletRed1 PaleVioletRed2
-PaleVioletRed3 PaleVioletRed4 maroon1 maroon2 maroon3 maroon4
-VioletRed1 VioletRed2 VioletRed3 VioletRed4 magenta1 magenta2 magenta3
-magenta4 orchid1 orchid2 orchid3 orchid4 plum1 plum2 plum3 plum4
-MediumOrchid1 MediumOrchid2 MediumOrchid3 MediumOrchid4 DarkOrchid1
-DarkOrchid2 DarkOrchid3 DarkOrchid4 purple1 purple2 purple3 purple4
-MediumPurple1 MediumPurple2 MediumPurple3 MediumPurple4 thistle1
-thistle2 thistle3 thistle4/);
-
- $list->activate(0);
-
-} # end colors
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/cscroll.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/cscroll.pl
deleted file mode 100644
index e39e9caac56..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/cscroll.pl
+++ /dev/null
@@ -1,86 +0,0 @@
-# cscroll.pl
-
-use subs qw/cscroll_button cscroll_enter cscroll_leave/;
-use vars qw/$TOP/;
-
-sub cscroll {
-
- # Create a top-level window containing a simple canvas that can be
- # scrolled in two dimensions.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'This window displays a canvas widget that can be scrolled either using the scrollbars or by dragging with button 2 in the canvas. If you click button 1 on one of the rectangles, its indices will be printed on stdout.',
- -title => 'Scrollable Canvas Demonstration',
- -iconname => 'cscroll',
- );
-
- my $c = $TOP->Scrolled(qw/Canvas -relief sunken -borderwidth 2
- -scrollbars se -scrollregion/ => ['-10c', '-10c', '50c', '20c']);
- $c->pack(qw/-expand yes -fill both/);
-
- my($bg, $i, $j, $x, $y) = ($c->configure(-background))[4];
- for ($i = 0; $i < 20; $i++) {
- $x = -10 + 3 * $i;
- $j = 0;
- $y = -10;
- while ($j < 10) {
- $c->createRectangle("${x}c", "${y}c",
- ($x+2).'c', ($y+2).'c',
- -outline => 'black', -fill => $bg, -tags => 'rect');
- $c->createText(($x+1).'c', ($y+1).'c',
- -text => "$i,$j", -anchor => 'center', -tags => 'text');
- $j++;
- $y += 3;
- } # whilend
- } # forend
-
- my $old_fill = '';
- $c->bind('all', '<Any-Enter>' => [\&cscroll_enter, \$old_fill]);
- $c->bind('all', '<Any-Leave>' => [\&cscroll_leave, \$old_fill]);
- $c->bind('all', '<1>' => \&cscroll_button);
-
- $c->CanvasBind('<2>' => [ scanMark => Ev('x'), Ev('y') ]);
- $c->CanvasBind('<B2-Motion>' => [ scanDragto => Ev('x'), Ev('y') ]);
-
-} # end cscroll
-
-sub cscroll_button {
-
- my($c) = @_;
-
- my ($id) = $c->find(qw/withtag current/);
- $id++ if ($c->gettags('current'))[0] ne 'text';
- print STDOUT 'You buttoned at ', ($c->itemconfigure($id, -text))[4], "\n";
-
-} # end cscroll_button
-
-sub cscroll_enter {
-
- my($c, $old_fill) = @_;
-
- my ($id) = $c->find(qw/withtag current/);
- $id-- if ($c->gettags('current'))[0] eq 'text';
- $$old_fill = ($c->itemconfigure($id, -fill))[4];
- if ($c->depth > 1) {
- $c->itemconfigure($id, -fill => 'SeaGreen1');
- } else {
- $c->itemconfigure($id, -fill => 'black');
- $c->itemconfigure($id+1, -fill => 'white');
- }
-
-} # end cscroll_enter
-
-sub cscroll_leave {
-
- my($c, $old_fill) = @_;
-
- my ($id) = $c->find(qw/withtag current/);
- $id-- if ($c->gettags('current'))[0] eq 'text';
- $c->itemconfigure($id, -fill => $$old_fill);
- $c->itemconfigure($id+1, -fill => 'black');
-
-} # end cscroll_leave
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/ctext.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/ctext.pl
deleted file mode 100644
index 9c2ca476379..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/ctext.pl
+++ /dev/null
@@ -1,170 +0,0 @@
-# ctext.pl
-
-use subs qw/ctext_bs ctext_configure ctext_enter ctext_move ctext_press/;
-use vars qw/$TOP/;
-
-sub ctext {
-
- # Create a window containing a canvas displaying a text string and
- # allowing the string to be edited and re-anchored.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => ['This window displays a string of text to demonstrate the text facilities of canvas widgets. You can click in the boxes to adijust the position of the text relative to its positioning point or change its justification. The text also supports the following simple bindings for editing:
- 1. You can point, click, and type.
- 2. You can also select with button 1.
- 3. You can copy the selection to the mouse position with button 2.
- 4. Backspace and Control+h delete the selection if there is one;
- otherwise they delete the character just before the insertion cursor.
- 5. Delete deletes the selection if there is one; otherwise it deletes
- the character just after the insertion cursor.', qw/-wraplength 5i/],
- -title => 'Canvas Text Demonstration',
- -iconname => 'ctext',
- );
-
- my $c = $TOP->Canvas(qw/-relief flat -bd 0 -width 500 -height 350/);
- $c->pack(qw/-side top -expand yes -fill both/);
-
- $c->create(qw/rectangle 245 195 255 205 -outline black -fill red/);
-
- # First, create the text item and give it bindings so it can be edited.
-
- $c->addtag(qw/text withtag/,
- $c->create('text', 250, 200,
- -text => 'This is just a string of text to demonstrate the text facilities of canvas widgets. Bindings have been been defined to support editing (see above)."',
- qw/-width 440 -anchor n -justify left
- -font -*-Helvetica-Medium-R-Normal--*-240-*-*-*-*-*-*/
- ),
- );
- $c->bind(qw/text <1>/ => \&ctext_press);
- $c->bind(qw/text <B1-Motion>/ => \&ctext_move);
- $c->bind(qw/text <Shift-1>/ => sub {
- my($c) = @_;
- my $e = $c->XEvent;
- my($x, $y) = ($e->x, $e->y);
- $c->select(qw/adjust current/, "\@$x,$y");
- });
- $c->bind(qw/text <Shift-B1-Motion>/ => \&ctext_move);
- $c->bind(qw/text <KeyPress>/ => sub {
- my($c) = @_;
- my $e = $c->XEvent;
- my $A = $e->A;
- $c->insert(qw/text insert/, "$A");
- });
- $c->bind(qw/text <Return>/ => sub {
- my($c) = @_;
- $c->insert(qw/text insert/, "\\n");
- });
- $c->bind(qw/text <Control-h>/ => \&ctext_bs);
- $c->bind(qw/text <BackSpace>/ => \&ctext_bs);
- $c->bind(qw/text <Delete>/ => sub {
- my($c) = @_;
- eval {local $SIG{__DIE__}; $c->dchars(qw/text sel.first sel.last/)};
- $c->dchars('text', 'insert');
- });
- $c->bind(qw/text <2>/ => sub {
- my($c) = @_;
- my $e = $c->XEvent;
- $c->insert('text', $e->xy, $MW->SelectionGet);
- });
-
- # Next, create some items that allow the text's anchor position to
- # be edited.
-
- my($x, $y, $color) = (50, 50, 'LightSkyBlue1');
- ctext_configure $c, $x, $y, -anchor => 'se', $color;
- ctext_configure $c, $x+30, $y, -anchor => 's', $color;
- ctext_configure $c, $x+60, $y, -anchor => 'sw', $color;
- ctext_configure $c, $x, $y+30, -anchor => 'e', $color;
- ctext_configure $c, $x+30, $y+30, -anchor => 'center', $color;
- ctext_configure $c, $x+60, $y+30, -anchor => 'w', $color;
- ctext_configure $c, $x, $y+60, -anchor => 'ne', $color;
- ctext_configure $c, $x+30, $y+60, -anchor => 'n', $color;
- ctext_configure $c, $x+60, $y+60, -anchor => 'nw', $color;
- my $item = $c->create('rectangle', $x+40, $y+40, $x+50, $y+50,
- qw/-outline black -fill red/);
- $c->bind($item, '<1>' => sub {
- shift->itemconfigure(qw/text -anchor center/);
- });
- $c->create('text', $x+45, $y-5, -text => 'Text Position', qw/-anchor s
- -font -*-times-medium-r-normal--*-240-*-*-*-*-*-*
- -fill brown/);
-
- # Lastly, create some items that allow the text's justification
- # to be changed.
-
- $x = 350; $y = 50; $color = 'SeaGreen2';
- ctext_configure $c, $x, $y, -justify => 'left', $color;
- ctext_configure $c, $x+30, $y, -justify => 'center', $color;
- ctext_configure $c, $x+60, $y, -justify => 'right', $color;
- $c->create('text', $x+45, $y-5, qw/-text Justification -anchor s
- -font -*-times-medium-r-normal--*-240-*-*-*-*-*-*
- -fill brown/);
-
- my $config_fill = '';
- $c->bind(qw/config <Enter>/ => [\&ctext_enter, \$config_fill]);
- $c->bind(qw/config <Leave>/ =>
- sub {$c->itemconfigure('current', -fill => $config_fill)}
- );
-
-} # end ctext
-
-sub ctext_bs {
-
- my($c) = @_;
-
- eval {local $SIG{__DIE__}; $c->dchars(qw/text sel.first sel.last/)};
- my $char = $c->index(qw/text insert/) - 1;
- $c->dchars('text', $char) if $char >= 0;
-
-} # end ctext_bs
-
-sub ctext_configure {
-
- my($w, $x, $y, $option, $value, $color) = @_;
-
- my $item = $w->create('rectangle', $x, $y, $x+30, $y+30,
- -outline => 'black', -fill => $color, -width => 1);
- $w->bind($item, '<1>',
- sub {$w->itemconfigure('text', $option => $value)}
- );
- $w->addtag(qw/config withtag/, $item);
-
-} # end ctext_configure
-
-sub ctext_enter {
-
- my($w, $config_fill) = @_;
-
- $$config_fill = ($w->itemconfigure('current', -fill))[4];
- $w->itemconfigure(qw/current -fill black/);
-
-} # end ctext_enter
-
-sub ctext_move {
-
- my($w) = @_;
- my $e = $w->XEvent;
-
- my($x, $y) = ($e->x, $e->y);
- $w->select(qw/to current/, "\@$x,$y");
-
-} # end ctext_move
-
-sub ctext_press {
-
- my($w) = @_;
- my $e = $w->XEvent;
-
- my($x, $y) = ($e->x, $e->y);
- $w->icursor('current', "\@$x,$y");
- $w->focus('current');
- $w->CanvasFocus;
- $w->select(qw/from current/, "\@$x,$y");
-
-} # end ctext_press
-
-1;
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/dialog1.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/dialog1.pl
deleted file mode 100644
index 9c98bdfca22..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/dialog1.pl
+++ /dev/null
@@ -1,33 +0,0 @@
-# dialog1.pl
-
-use subs qw/see_code/;
-use vars qw/$DIALOG1/;
-
-sub dialog1 {
-
- my($demo) = @_;
-
- my($ok, $can, $see) = ('OK', 'Cancel', 'See Code');
- if (not Exists($DIALOG1)) {
- $DIALOG1 = $MW->Dialog(
- -title => 'Dialog with local grab',
- -text => '',
- -bitmap => 'info',
- -default_button => $ok,
- -buttons => [$ok, $can, $see],
- );
- $DIALOG1->configure(
- -wraplength => '4i',
- -text => 'This is a modal dialog box. It uses Tk\'s "grab" command to create a "local grab" on the dialog box. The grab prevents any pointer-related events from getting to any other windows in the application until you have answered the dialog by invoking one of the buttons below. However, you can still interact with other applications.',
- );
- }
-
- my $button = $DIALOG1->Show;
-
- print "You pressed OK\n" if $button eq $ok;
- print "You pressed Cancel\n" if $button eq $can;
- see_code 'dialog1' if $button eq $see;
-
-} # end dialog1
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/dialog2.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/dialog2.pl
deleted file mode 100644
index 15b2102edcd..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/dialog2.pl
+++ /dev/null
@@ -1,33 +0,0 @@
-# dialog2.pl
-
-use subs qw/see_code/;
-use vars qw/$DIALOG2/;
-
-sub dialog2 {
-
- my($demo) = @_;
-
- my($ok, $can, $see) = ('OK', 'Cancel', 'See Code');
- if (not Exists($DIALOG2)) {
- $DIALOG2 = $MW->Dialog(
- -title => 'Dialog with global grab',
- -text => '',
- -bitmap => 'info',
- -default_button => $ok,
- -buttons => [$ok, $can, $see],
- );
- $DIALOG2->configure(
- -wraplength => '4i',
- -text => 'This dialog box uses a global grab, so it prevents you from interacting with anything on your display until you invoke one of the buttons below. Global grabs are almost always a bad idea; don\'t use them unless you\'re truly desperate.',
- );
- }
-
- my $button = $DIALOG2->Show('-global');
-
- print "You pressed OK\n" if $button eq $ok;
- print "You pressed Cancel\n" if $button eq $can;
- see_code 'dialog2' if $button eq $see;
-
-} # end dialog2
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/dirtree.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/dirtree.pl
deleted file mode 100644
index 0cf91417a56..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/dirtree.pl
+++ /dev/null
@@ -1,7 +0,0 @@
-# DirTree, display directory tree.
-
-use Tk;
-use Tk::DirTree;
-my $top = MainWindow->new;
-my $dl = $top->Scrolled('DirTree')->pack(-expand => 1 , -fill => 'both');
-MainLoop;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/entry1.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/entry1.pl
deleted file mode 100644
index 6250df5f4d5..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/entry1.pl
+++ /dev/null
@@ -1,28 +0,0 @@
-# entry1.pl
-
-use vars qw/$TOP/;
-
-sub entry1 {
-
- # Create a top-level window that displays a bunch of entries.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => ['Three different entries are displayed below. You can add characters by pointing, clicking and typing. The normal Motif editing characters are supported, along with many Emacs bindings. For example, Backspace and Control-h delete the character to the left of the insertion cursor and Delete and Control-d delete the chararacter to the right of the insertion cursor. For entries that are too large to fit in the window all at once, you can scan through the entries by dragging with mouse button2 pressed.', qw/-wraplength 5i/],
- -title => 'Entry Demonstration (no scrollbars)',
- -iconname => 'entry1',
- );
-
- my(@relief) = qw/-relief sunken/;
- my(@pl) = qw/-side top -padx 10 -pady 5 -fill x/;
- my $e1 = $TOP->Entry(@relief)->pack(@pl);
- my $e2 = $TOP->Entry(@relief)->pack(@pl);
- my $e3 = $TOP->Entry(@relief)->pack(@pl);
-
- $e1->insert(0, 'Initial value');
- $e2->insert('end', 'This entry contains a long value, much too long to fit in the window at one time, so long in fact that you\'ll have to scan or scroll to see the end.');
-
-} # end entry1
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/entry2.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/entry2.pl
deleted file mode 100644
index 4f3c85e3454..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/entry2.pl
+++ /dev/null
@@ -1,33 +0,0 @@
-# entry2.pl
-
-use vars qw/$TOP/;
-
-sub entry2 {
-
- # Create a top-level window that displays a bunch of entries with
- # scrollbars.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => ['Three different entries are displayed below, with a scrollbar for each entry. You can add characters by pointing, clicking and typing. The normal Motif editing characters are supported, along with many Emacs bindings. For example, Backspace and Control-h delete the character to the left of the insertion cursor and Delete and Control-d delete the chararacter to the right of the insertion cursor. For entries that are too large to fit in the window all at once, you can scan through the entries by dragging with mouse button2 pressed.', -wraplength => '5i'],
- -title => 'Entry Demonstration (with scrollbars)',
- -iconname => 'entry2',
- );
-
- my(@pl) = qw/-side top -fill x/;
- my(@scrolled_attributes) = qw/Entry -relief sunken -scrollbars s/;
- my(@spacer_attributes) = qw/-width 20 -height 10/;
-
- my $e1 = $TOP->Scrolled(@scrolled_attributes)->pack(@pl);
- my $spacer1 = $TOP->Frame(@spacer_attributes)->pack(@pl);
- my $e2 = $TOP->Scrolled(@scrolled_attributes)->pack(@pl);
- my $spacer2 = $TOP->Frame(@spacer_attributes)->pack(@pl);
- my $e3 = $TOP->Scrolled(@scrolled_attributes)->pack(@pl);
-
- $e1->insert(0, 'Initial value');
- $e2->insert('end', 'This entry contains a long value, much too long to fit in the window at one time, so long in fact that you\'ll have to scan or scroll to see the end.');
-
-} # end entry2
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/entry3.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/entry3.pl
deleted file mode 100644
index b296fbb0353..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/entry3.pl
+++ /dev/null
@@ -1,199 +0,0 @@
-# entry3.pl
-
-use vars qw/$TOP/;
-
-sub entry3 {
-
- # This demonstration script creates several entry widgets whose
- # permitted input is constrained in some way. It also shows off a
- # password entry.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'Four different entries are displayed below. You can add characters by pointing, clicking and typing, though each is constrained in what it will accept. The first only accepts integers or the empty string (checking when focus leaves it) and will flash to indicate any problem. The second only accepts strings with fewer than ten characters and sounds the bell when an attempt to go over the limit is made. The third accepts US phone numbers, mapping letters to their digit equivalent and sounding the bell on encountering an illegal character or if trying to type over a character that is not a digit. The fourth is a password field that accepts up to eight characters (silently ignoring further ones), and displaying them as asterisk characters.',
- -title => 'Constrained Entry Demonstration',
- -iconname => 'entry3',
- );
-
-
- my $lf1 = $TOP->Labelframe(-text => 'Integer Entry');
- my $e1;
- $e1 = $lf1->Entry(
- -validate => 'focus',
- -validatecommand => sub {
- my ($proposed, $changes, $current, $index, $type) = @_;
- return not $proposed =~ m/[^\d]/g;
- },
- );
- $e1->configure(
- -invalidcommand =>
- [\&entry3_flash, $e1, $e1->cget(-fg), $e1->cget(-bg)],
- );
- $e1->pack(qw/-fill x -expand 1 -padx 1m -pady 1m/);
-
- my $lf2 = $TOP->Labelframe(-text => 'Length-Constrained Entry');
- my $e2 = $lf2->Entry(
- -validate => 'key',
- -invalidcommand => sub {$TOP->bell},
- -validatecommand => sub {
- my ($proposed, $changes, $current, $index, $type) = @_;
- return length($proposed) < 10 ? 1 : 0;
- },
- );
- $e2->pack(qw/-fill x -expand 1 -padx 1m -pady 1m/);
-
- # phone number entry
- #
- # Note that the source to this is quite a bit longer as the behaviour
- # demonstrated is a lot more ambitious than with the others.
- #
- # Mapping from alphabetic characters to numbers. This is probably
- # wrong, but it is the only mapping I have; the UK doesn't really go
- # for associating letters with digits for some reason.
-
- my %phone_letters = qw/abc 2 def 3 ghi 4 jkl 5 mno 6 pqrs 7 tuv 8 wxyz 9/;
- my %l2n; # letter to number mapping hash
-
- while (my ($k, $v) = each %phone_letters) {
- map {$l2n{$_} = $v} split '', $k;
- }
-
- my $lf3 = $TOP->Labelframe(-text => 'US Phone-Number Entry');
- my $e3_var = '1-(000)-000-0000';
- my $e3;
- $e3 = $lf3->Entry(
- -validate => 'key',
- -invalidcommand => sub {$TOP->bell},
- -textvariable => \$e3_var,
- );
- $e3->configure(
- -validatecommand => [\&entry3_validate_phone, $e3, \%l2n],
- );
- $e3->pack(qw/-fill x -expand 1 -padx 1m -pady 1m/);
- # Click to focus goes to the first editable character...
- $e3->bind('<FocusIn>' => sub {
- my $e = shift;
- if ($Tk::event->d ne "NotifyAncestor") {
- $e->icursor(3);
- $e->afterIdle(sub {$e->selectionClear});
- }
- });
- $e3->bind('<Left>' => \&entry3_phone_left);
- $e3->bind('<Right>' => \&entry3_phone_right);
-
- my $lf4 = $TOP->Labelframe(-text => 'Password Entry');
- my $e4 = $lf4->Entry(
- -validate => 'key',
- -show => '*',
- -validatecommand => sub {
- my ($proposed, $changes, $current, $index, $type) = @_;
- return length($proposed) <= 8 ? 1 : 0;
- },
- );
- $e4->pack(qw/-fill x -expand 1 -padx 1m -pady 1m/);
-
- my $f = $TOP->Frame;
- $f->lower;
- $lf1->grid($lf2, -in => $f, qw/-padx 3m -pady 1m -sticky ew/);
- $lf3->grid($lf4, -in => $f, qw/-padx 3m -pady 1m -sticky ew/);
- $f->gridColumnconfigure([0, 1], -uniform => 1);
- $f->pack(qw/-fill both -expand 1/);
-
-} # end entry3
-
-sub entry3_flash {
- my ($w, $fg, $bg) = @_;
- $w->focusForce;
- $w->{count} = 9 unless defined $w->{count};
- if ($w->{count} < 1) {
- $w->configure(-foreground => $fg, -background => $bg);
- $w->{count} = 9;
- } else {
- if ($w->{count} % 2) {
- $w->configure(-foreground => $bg, -background => $fg);
- } else {
- $w->configure(-foreground => $fg, -background => $bg);
- }
- $w->{count}--;
- $w->after(200 => [\&entry3_flash, $w, $fg, $bg]);
- }
-} # end entry3_flash
-
-sub entry3_phone_left {
-
- # Skip over fixed characters in a phone-number string when moving left.
-
- my $e = shift;
- my $index = $e->index('insert');
- if ($index == 8) {
- # Skip back two extra characters
- $index -= 2;
- $e->icursor($index);
- } elsif ($index == 7 or $index == 12) {
- # Skip back one extra character
- $index -= 1;
- $e->icursor($index);
- } elsif ($index <= 3) {
- # Can't move any further
- $e->bell;
- #return -code break
- $e->break;
- }
-
-} # end entry3_phone_left
-
-sub entry3_phone_right {
-
- # Skip over fixed characters in a phone-number string when moving right.
-
- my ($e, $add) = @_;
-
- $add = 0 unless defined $add;
- my $index = $e->index('insert');
- if ($index + $add == 5) {
- # Skip forward two extra characters
- $index += 2;
- $e->icursor($index);
- } elsif ($index + $add == 6 or $index + $add == 10) {
- # Skip forward one extra character
- $index++;
- $e->icursor($index);
- } elsif ($index + $add == 15 and not $add) {
- # Can't move any further
- $e->bell;
- #return -code break
- $e->break;
- }
-
-} # end entry3_phone_right
-
-sub entry3_validate_phone {
-
- # Checks that the replacement (mapped to a digit) of the given
- # character in an entry widget at the given position will leave a
- # valid phone number in the widget.
-
- my ($w, $l2n_ref, $proposed, $changes, $current, $index, $type) = @_;
-
- return 1 if $index == -1;
- my $val = $w->cget(-validate);
- $w->afterIdle(sub {
- $w->configure(
- -validate => $val,
- -invalidcommand => sub {$w->bell},
- );
- });
- if (not ($index < 3 or $index == 6 or $index == 7 or $index == 11 or
- $index > 15) and $changes =~ m/[0-9A-Z]/i) {
- $w->delete($index);
- $changes =~ s/$_/$l2n_ref->{$_}/ig foreach (keys %$l2n_ref);
- $w->insert($index, $changes);
- $w->afterIdle([\&entry3_phone_right, $w, -1]);
- return 1;
- }
- return 0;
-
-} # end entry3_validate_phone;
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/filebox.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/filebox.pl
deleted file mode 100644
index 0d1b9737c01..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/filebox.pl
+++ /dev/null
@@ -1,106 +0,0 @@
-# filebox.tcl --
-#
-# This demonstration script prompts the user to select a file.
-#
-# SCCS: @(#) filebox.tcl 1.3 97/03/02 16:22:36
-
-use vars qw/$TOP/;
-
-sub filebox {
- my $demo = shift;
-
- $TOP = $MW->WidgetDemo
- (
- -name => $demo,
- -text => "Enter a file name in the entry box or click on the \"Browse\" buttons to select a file name using the file selection dialog.",
- -title => 'File box Demonstration',
- -iconname => 'filebox',
- );
- foreach my $i (qw(open save)) {
- my $f = $TOP->Frame;
- my $lab = $f->Label(-text => "Select a file to $i: ",
- -anchor => 'e');
- my $ent = $f->Entry(-width => 20);
- my $but = $f->Button(-text => "Browse ...",
- -command => sub { fileDialog($TOP, $ent, $i)});
- $lab->pack(-side => 'left');
- $ent->pack(-side => 'left',-expand => 'yes', -fill => 'x');
- $but->pack(-side => 'left');
- $f->pack(-fill => 'x', -padx => '1c', -pady => 3);
- }
-
- my $cbf = $TOP->Frame->pack(-fill => 'x', -padx => '1c', -pady => 3);
- my $fd;
- $cbf->Radiobutton
- (-text => 'FileSelect',
- -variable => \$fd,
- -value => 'FileSelect',
- -command => sub { local($^W) = 0;
- require Tk::FileSelect;
- Tk::FileSelect->import('as_default');
- _removeCachedFileDialogs();
- })->pack(-side => 'left');
- my $fdb = $cbf->Radiobutton
- (-text => 'FBox',
- -variable => \$fd,
- -value => 'FBox',
- -command => sub { local($^W) = 0;
- require Tk::FBox;
- Tk::FBox->import('as_default');
- _removeCachedFileDialogs();
- })->pack(-side => 'left');
- $fdb->invoke;
-
-# XXX Motif style file box not implemented
-# unless (compare($tcl_platform{'platform'},'unix'))
-# {
-# $w->{'.strict'} = $w->Checkbutton('Name','strict','-text',"Use Motif Style Dialog",'-variable','tk_strictMotif','-onvalue',1,'-offvalue',0);
-# $w->{'.strict'}->pack('-anchor','c');
-# }
-}
-
-sub fileDialog {
- my $w = shift;
- my $ent = shift;
- my $operation = shift;
- my $types;
- my $file;
- # Type names Extension(s) Mac File Type(s)
- #
- #---------------------------------------------------------
- @types =
- (["Text files", [qw/.txt .doc/]],
- ["Text files", '', 'TEXT'],
- ["Perl Scripts", '.pl', 'TEXT'],
- ["C Source Files", ['.c', '.h']],
- ["All Source Files", [qw/.tcl .c .h/]],
- ["Image Files", '.gif'],
- ["Image Files", ['.jpeg', '.jpg']],
- ["Image Files", '', [qw/GIFF JPEG/]],
- ["All files", '*']
- );
- if ($operation eq 'open') {
- $file = $w->getOpenFile(-filetypes => \@types);
- } else {
- $file = $w->getSaveFile(-filetypes => \@types,
- -initialfile => 'Untitled',
- -defaultextension => '.txt');
- }
- if (defined $file and $file ne '') {
- $ent->delete(0, 'end');
- $ent->insert(0, $file);
- $ent->xview('end');
- }
-}
-
-sub _removeCachedFileDialogs {
- my $mw = $TOP->MainWindow;
- my $remove = sub {
- my $t = shift;
- return if (!UNIVERSAL::isa($t, "Tk::Toplevel"));
- delete $t->{'tk_getOpenFile'};
- delete $t->{'tk_getSaveFile'};
- };
- $remove->($mw);
- $mw->Walk($remove);
-}
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/floor.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/floor.pl
deleted file mode 100644
index 5fa5be1ead2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/floor.pl
+++ /dev/null
@@ -1,1324 +0,0 @@
-# floor.pl
-
-use Tk::Trace;
-use subs qw/floor_bg1 floor_bg2 floor_bg3 floor_display floor_fg1 floor_fg2
- floor_fg3 floor_room_changed/;
-use vars qw/$TOP/;
-
-sub floor {
-
- # Create a top-level window containing a Canvas that displays the
- # floorplan for DEC's Western Research Laboratory.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => ['This window contains a canvas widget showing the floorplan of Digital Equipment Corporation\'s Western Research Laboratory. It has three levels. At any given time one of the levels is active, meaning that you can see its room structure. To activate a level, click the left mouse button anywhere on it. As the mouse moves over the active level, the room under the mouse lights up and its room number appears in the "Room:" entry. You can also type a room number in the entry and the room will light up.', qw/-wraplength 8i/],
- -title => 'Floorplan Canvas Demonstration',
- -iconname => 'floor',
- );
-
- my $c = $TOP->Scrolled(qw/Canvas -width 900 -height 500 -relief sunken
- -borderwidth 2 -scrollbars se/);
- $c->pack(qw/-expand yes -fill both/);
-
- # Create an Entry for displaying and typing in current room.
-
- $floor::current_room = '';
- my $c_entry = $c->Entry(qw/-width 10 -relief sunken -borderwidth 2
- -textvariable/ => \$floor::current_room);
-
- # Choose colors, then fill in the floorplan.
-
- my %cinfo; # color information hash
- if ($TOP->depth > 1) {
- $cinfo{'floor_bg1'} = '#a9c1da';
- $cinfo{outline1} = '#77889a';
- $cinfo{'floor_bg2'} = '#9ab0c6';
- $cinfo{outline2} = '#687786';
- $cinfo{'floor_bg3'} = '#8ba0b3';
- $cinfo{outline3} = '#596673';
- $cinfo{offices} = 'Black';
- $cinfo{active} = '#c4d1df';
- } else {
- $cinfo{'floor_bg1'} = 'white';
- $cinfo{outline1} = 'black';
- $cinfo{'floor_bg2'} = 'white';
- $cinfo{outline2} = 'black';
- $cinfo{'floor_bg3'} = 'white';
- $cinfo{outline3} = 'black';
- $cinfo{offices} = 'Black';
- $cinfo{active} = 'black';
- }
-
- my %floor_labels = ();
- my %floor_items = ();
- my $active_floor = 0;
- floor_display $c->Subwidget('canvas'), 3, \%floor_labels, \%floor_items,
- \%cinfo, \$active_floor, $c_entry;
-
- # Set up event bindings for the Canvas.
-
- my $floor_number;
- for $floor_number (1..3) {
- $c->bind("floor${floor_number}", '<1>' =>
- [\&floor_display, $floor_number, \%floor_labels, \%floor_items,
- \%cinfo, \$active_floor, $c_entry],
- );
- }
- $c->bind('room', '<Enter>' => sub {
- my($c) = @_;
- my $id = $c->find('withtag' => 'current');
- $id = $id->[0] if ref($id) eq 'ARRAY';
- $floor::current_room = $floor_labels{$id} if defined $id;
- $c->idletasks;
- });
- $c->bind('room', '<Leave>' => sub {$floor::current_room = ''});
- $c->CanvasBind('<2>' => sub {
- my($c) = @_;
- my $e = $c->XEvent;
- $c->scanMark($e->x, $e->y);
- });
- $c->CanvasBind('<B2-Motion>' => sub {
- my($c) = @_;
- my $e = $c->XEvent;
- $c->scanDragto($e->x, $e->y);
- });
- $c->CanvasBind('<Enter>', => [sub {shift; shift->focus}, $c_entry]);
-
- $c->traceVariable(\$floor::current_room, 'w' =>
- [sub {
- my($index, $value, $op, $floor_items, $cinfo) = @_;
- return if $op eq 'u';
- $floor_current_room = $value;
- &floor_room_changed($c->Subwidget('canvas'), $floor_items, $cinfo);
- $value; # always return variable's new value
- }, \%floor_items, \%cinfo],
- );
-
-} # floor
-
-sub floor_display {
-
- # The following procedure recreates the floorplan display in the
- # Canvas given by "w". The floor given by "active" (1, 2, or 3) is
- # displayed on top, with office structure visible. (Used as a callback
- # and a normal function.)
-
- my($c, $active, $floor_labels, $floor_items, $cinfo, $active_floor,
- $c_entry) = @_;
-
- return if $$active_floor eq $active;
-
- $c->delete('all');
- $$active_floor = $active;
-
- # First go through the three floors, displaying the backgrounds for
- # each floor.
-
- floor_bg1 $c, $cinfo->{'floor_bg1'}, $cinfo->{outline1};
- floor_bg2 $c, $cinfo->{'floor_bg2'}, $cinfo->{outline2};
- floor_bg3 $c, $cinfo->{'floor_bg3'}, $cinfo->{outline3};
-
- # Raise the background for the active floor so that it's on top.
-
- $c->raise("floor${active}");
-
- # Create a dummy item just to mark this point in the display list, so
- # we can insert highlights here.
-
- $c->create('rectangle', 0, 100, 1, 101, -fill => undef, -outline => undef,
- -tags => 'marker');
-
- # Add the walls and labels for the active floor, along with transparent
- # polygons that define the rooms on the floor. Make sure that the room
- # polygons are on top.
-
- my $cmd = "floor_fg${active}";
- {
- no strict qw(refs);
- &$cmd($c, $cinfo->{offices}, $floor_labels, $floor_items);
- }
- $c->raise('room');
-
- # Offset the floors diagonally from each other.
-
- $c->move(qw(floor1 2c 2c));
- $c->move(qw(floor2 1c 1c));
-
- # Create items for the room entry and its label.
-
- $c->create('window', 600, 100, -anchor => 'w', -window => $c_entry);
- $c->create('text', 600, 100, -anchor => 'e', -text => 'Room: ');
- $c->configure(-scrollregion => [$c->bbox('all')]);
-
-} # end floor_display
-
-
-sub floor_room_changed {
-
- # Whenever the current_room variable changes, this procedure highlights
- # the current room and unhighlights any previous room.
-
- my($w, $floor_items, $cinfo) = @_;
-
- $w->delete('highlight');
- my $item = $floor_items->{$floor::current_room};
- return if not defined $item;
- my(@c) = $w->coords($item);
- if ($c[0]) {
- $w->raise(
- $w->create('polygon', @c,
- -fill => $cinfo->{active},
- -tags => 'highlight',
- ),
- 'marker');
- } # ifend we have coordinates
-
-} # end floor_room_changed
-
-# The following procedures are invoked to instantiate various portions of
-# the building floorplan. The bodies of these procedures were generated
-# automatically from database files describing the building.
-
-
-sub floor_bg1 {
-
- my ($w, $fill, $outline) = @_;
-
- $w->create('poly', qw(347 80 349 82 351 84 353 85 363 92 375 99 386 104 386 129 398 129 398 162 484 162 484 129 559 129 559
- 133 725 133 725 129 802 129 802 389 644 389 644 391 559 391 559 327 508 327 508 311 484 311 484 278 395 278 395 288 400
- 288 404 288 409 290 413 292 418 297 421 302 422 309 421 318 417 325 411 330 405 332 397 333 344 333 340 334 336 336 335
- 338 332 342 331 347 332 351 334 354 336 357 341 359 340 360 335 363 331 365 326 366 304 366 304 355 258 355 258 387 60
- 387 60 391 0 391 0 337 3 337 3 114 8 114 8 25 30 25 30 5 93 5 98 5 104 7 110 10 116 16 119 20 122 28 123 32 123 68 220
- 68 220 34 221 22 223 17 227 13 231 8 236 4 242 2 246 0 260 0 283 1 300 5 321 14 335 22 348 25 365 29 363 39 358 48 352
- 56 337 70 344 76 347 80), -tags => ['floor1', 'bg'], -fill => $fill);
-
- $w->create('line', qw(386 129 398 129), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(258 355 258 387), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(60 387 60 391), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(0 337 0 391), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(60 391 0 391), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(3 114 3 337), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(258 387 60 387), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(484 162 398 162), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(398 162 398 129), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(484 278 484 311), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(484 311 508 311), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(508 327 508 311), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(559 327 508 327), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(644 391 559 391), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(644 389 644 391), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(559 129 484 129), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(484 162 484 129), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(725 133 559 133), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(559 129 559 133), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(725 129 802 129), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(802 389 802 129), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(3 337 0 337), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(559 391 559 327), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(802 389 644 389), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(725 133 725 129), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(8 25 8 114), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(8 114 3 114), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(30 25 8 25), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(484 278 395 278), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(30 25 30 5), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(93 5 30 5), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(98 5 93 5), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(104 7 98 5), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(110 10 104 7), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(116 16 110 10), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(119 20 116 16), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(122 28 119 20), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(123 32 122 28), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(123 68 123 32), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(220 68 123 68), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(386 129 386 104), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(386 104 375 99), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(375 99 363 92), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(353 85 363 92), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(220 68 220 34), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(337 70 352 56), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(352 56 358 48), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(358 48 363 39), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(363 39 365 29), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(365 29 348 25), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(348 25 335 22), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(335 22 321 14), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(321 14 300 5), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(300 5 283 1), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(283 1 260 0), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(260 0 246 0), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(246 0 242 2), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(242 2 236 4), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(236 4 231 8), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(231 8 227 13), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(223 17 227 13), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(221 22 223 17), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(220 34 221 22), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(340 360 335 363), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(335 363 331 365), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(331 365 326 366), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(326 366 304 366), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(304 355 304 366), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(395 288 400 288), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(404 288 400 288), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(409 290 404 288), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(413 292 409 290), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(418 297 413 292), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(421 302 418 297), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(422 309 421 302), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(421 318 422 309), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(421 318 417 325), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(417 325 411 330), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(411 330 405 332), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(405 332 397 333), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(397 333 344 333), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(344 333 340 334), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(340 334 336 336), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(336 336 335 338), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(335 338 332 342), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(331 347 332 342), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(332 351 331 347), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(334 354 332 351), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(336 357 334 354), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(341 359 336 357), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(341 359 340 360), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(395 288 395 278), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(304 355 258 355), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(347 80 344 76), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(344 76 337 70), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(349 82 347 80), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(351 84 349 82), -fill => $outline, -tags => ['floor1', 'bg']);
- $w->create('line', qw(353 85 351 84), -fill => $outline, -tags => ['floor1', 'bg']);
-
-} # end floor_bg1
-
-sub floor_bg2 {
-
- my ($w, $fill, $outline) = @_;
-
- $w->create('poly', qw(559 129 484 129 484 162 398 162 398 129 315 129 315 133 176 133 176 129 96 129 96 133 3 133 3 339 0
- 339 0 391 60 391 60 387 258 387 258 329 350 329 350 311 395 311 395 280 484 280 484 311 508 311 508 327 558 327 558 391
- 644 391 644 367 802 367 802 129 725 129 725 133 559 133 559 129), -tags => ['floor2', 'bg'], -fill => $fill);
- $w->create('line', qw(350 311 350 329), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(398 129 398 162), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(802 367 802 129), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(802 129 725 129), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(725 133 725 129), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(559 129 559 133), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(559 133 725 133), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(484 162 484 129), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(559 129 484 129), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(802 367 644 367), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(644 367 644 391), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(644 391 558 391), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(558 327 558 391), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(558 327 508 327), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(508 327 508 311), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(484 311 508 311), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(484 280 484 311), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(398 162 484 162), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(484 280 395 280), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(395 280 395 311), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(258 387 60 387), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(3 133 3 339), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(3 339 0 339), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(60 391 0 391), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(0 339 0 391), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(60 387 60 391), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(258 329 258 387), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(350 329 258 329), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(395 311 350 311), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(398 129 315 129), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(176 133 315 133), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(176 129 96 129), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(3 133 96 133), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(315 133 315 129), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(176 133 176 129), -fill => $outline, -tags => ['floor2', 'bg']);
- $w->create('line', qw(96 133 96 129), -fill => $outline, -tags => ['floor2', 'bg']);
-
-} # end floor_bg2
-
-sub floor_bg3 {
-
- my ($w, $fill, $outline) = @_;
-
- $w->create('poly', qw(159 300 107 300 107 248 159 248 159 129 96 129 96 133 21 133 21 331 0 331 0 391 60 391 60 370 159 370
- 159 300), -tags => ['floor3', 'bg'], -fill => $fill);
- $w->create('poly', qw(258 370 258 329 350 329 350 311 399 311 399 129 315 129 315 133 176 133 176 129 159 129 159 370 258
- 370), -tags =>['floor3', 'bg'], -fill => $fill);
- $w->create('line', qw(96 133 96 129), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(176 129 96 129), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(176 129 176 133), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(315 133 176 133), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(315 133 315 129), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(399 129 315 129), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(399 311 399 129), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(399 311 350 311), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(350 329 350 311), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(350 329 258 329), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(258 370 258 329), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(60 370 258 370), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(60 370 60 391), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(60 391 0 391), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(0 391 0 331), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(21 331 0 331), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(21 331 21 133), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(96 133 21 133), -fill => $outline, -tags => ['floor3', 'bg']);
- $w->create('line', qw(107 300 159 300 159 248 107 248 107 300), -fill => $outline, -tags => ['floor3', 'bg']);
-
-} # end floor_bg3
-
-sub floor_fg1 {
-
- my($w, $color, $fl, $fi) = @_;
-
- my($i);
- $i = $w->create('polygon', qw(375 246 375 172 341 172 341 246), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 101;
- $fi->{101} = $i;
- $w->create('text', qw(358 209), -text => '101', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(307 240 339 240 339 206 307 206), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 'Pub Lift1';
- $fi->{'Pub Lift1'} = $i;
- $w->create('text', qw(323 223), -text => 'Pub Lift1', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(339 205 307 205 307 171 339 171), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 'Priv Lift1';
- $fi->{'Priv Lift1'} = $i;
- $w->create('text', qw(323 188), -text => 'Priv Lift1', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(42 389 42 337 1 337 1 389), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 110;
- $fi->{110} = $i;
- $w->create('text', qw(21.5 363), -text => '110', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(59 389 59 385 90 385 90 337 44 337 44 389), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 109;
- $fi->{109} = $i;
- $w->create('text', qw(67 363), -text => '109', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(51 300 51 253 6 253 6 300), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 111;
- $fi->{111} = $i;
- $w->create('text', qw(28.5 276.5), -text => '111', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(98 248 98 309 79 309 79 248), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = '117B';
- $fi->{'117B'} = $i;
- $w->create('text', qw(88.5 278.5), -text => '117B', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(51 251 51 204 6 204 6 251), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 112;
- $fi->{112} = $i;
- $w->create('text', qw(28.5 227.5), -text => '112', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(6 156 51 156 51 203 6 203), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 113;
- $fi->{113} = $i;
- $w->create('text', qw(28.5 179.5), -text => '113', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(85 169 79 169 79 192 85 192), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = '117A';
- $fi->{'117A'} = $i;
- $w->create('text', qw(82 180.5), -text => '117A', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(77 302 77 168 53 168 53 302), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 117;
- $fi->{117} = $i;
- $w->create('text', qw(65 235), -text => '117', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(51 155 51 115 6 115 6 155), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 114;
- $fi->{114} = $i;
- $w->create('text', qw(28.5 135), -text => '114', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(95 115 53 115 53 168 95 168), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 115;
- $fi->{115} = $i;
- $w->create('text', qw(74 141.5), -text => '115', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(87 113 87 27 10 27 10 113), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 116;
- $fi->{116} = $i;
- $w->create('text', qw(48.5 70), -text => '116', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(89 91 128 91 128 113 89 113), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 118;
- $fi->{118} = $i;
- $w->create('text', qw(108.5 102), -text => '118', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(178 128 178 132 216 132 216 91 163 91 163 112 149 112 149 128), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 120;
- $fi->{120} = $i;
- $w->create('text', qw(189.5 111.5), -text => '120', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(79 193 87 193 87 169 136 169 136 192 156 192 156 169 175 169 175 246 79 246), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 122;
- $fi->{122} = $i;
- $w->create('text', qw(131 207.5), -text => '122', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(138 169 154 169 154 191 138 191), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 121;
- $fi->{121} = $i;
- $w->create('text', qw(146 180), -text => '121', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(99 300 126 300 126 309 99 309), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = '106A';
- $fi->{'106A'} = $i;
- $w->create('text', qw(112.5 304.5), -text => '106A', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(128 299 128 309 150 309 150 248 99 248 99 299), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 105;
- $fi->{105} = $i;
- $w->create('text', qw(124.5 278.5), -text => '105', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(174 309 174 300 152 300 152 309), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = '106B';
- $fi->{'106B'} = $i;
- $w->create('text', qw(163 304.5), -text => '106B', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(176 299 176 309 216 309 216 248 152 248 152 299), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 104;
- $fi->{104} = $i;
- $w->create('text', qw(184 278.5), -text => '104', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(138 385 138 337 91 337 91 385), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 108;
- $fi->{108} = $i;
- $w->create('text', qw(114.5 361), -text => '108', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(256 337 140 337 140 385 256 385), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 107;
- $fi->{107} = $i;
- $w->create('text', qw(198 361), -text => '107', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(300 353 300 329 260 329 260 353), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 'Smoking';
- $fi->{Smoking} = $i;
- $w->create('text', qw(280 341), -text => 'Smoking', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(314 135 314 170 306 170 306 246 177 246 177 135), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 123;
- $fi->{123} = $i;
- $w->create('text', qw(245.5 190.5), -text => '123', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(217 248 301 248 301 326 257 326 257 310 217 310), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 103;
- $fi->{103} = $i;
- $w->create('text', qw(259 287), -text => '103', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(396 188 377 188 377 169 316 169 316 131 396 131), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 124;
- $fi->{124} = $i;
- $w->create('text', qw(356 150), -text => '124', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(397 226 407 226 407 189 377 189 377 246 397 246), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 125;
- $fi->{125} = $i;
- $w->create('text', qw(392 217.5), -text => '125', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(399 187 409 187 409 207 474 207 474 164 399 164), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 126;
- $fi->{126} = $i;
- $w->create('text', qw(436.5 185.5), -text => '126', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(409 209 409 229 399 229 399 253 486 253 486 239 474 239 474 209), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 127;
- $fi->{127} = $i;
- $w->create('text', qw(436.5 231), -text => '127', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(501 164 501 174 495 174 495 188 490 188 490 204 476 204 476 164), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 'MShower';
- $fi->{MShower} = $i;
- $w->create('text', qw(488.5 184), -text => 'MShower', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(497 176 513 176 513 204 492 204 492 190 497 190), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 'Closet';
- $fi->{Closet} = $i;
- $w->create('text', qw(502.5 190), -text => 'Closet', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(476 237 476 206 513 206 513 254 488 254 488 237), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 'WShower';
- $fi->{WShower} = $i;
- $w->create('text', qw(494.5 230), -text => 'WShower', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(486 131 558 131 558 135 724 135 724 166 697 166 697 275 553 275 531 254 515 254 515 174 503 174 503 161 486 161), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 130;
- $fi->{130} = $i;
- $w->create('text', qw(638.5 205), -text => '130', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(308 242 339 242 339 248 342 248 342 246 397 246 397 276 393 276 393 309 300 309 300 248 308 248), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 102;
- $fi->{102} = $i;
- $w->create('text', qw(367.5 278.5), -text => '102', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(397 255 486 255 486 276 397 276), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 128;
- $fi->{128} = $i;
- $w->create('text', qw(441.5 265.5), -text => '128', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(510 309 486 309 486 255 530 255 552 277 561 277 561 325 510 325), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 129;
- $fi->{129} = $i;
- $w->create('text', qw(535.5 293), -text => '129', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(696 281 740 281 740 387 642 387 642 389 561 389 561 277 696 277), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 133;
- $fi->{133} = $i;
- $w->create('text', qw(628.5 335), -text => '133', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(742 387 742 281 800 281 800 387), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 132;
- $fi->{132} = $i;
- $w->create('text', qw(771 334), -text => '132', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(800 168 800 280 699 280 699 168), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 134;
- $fi->{134} = $i;
- $w->create('text', qw(749.5 224), -text => '134', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(726 131 726 166 800 166 800 131), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 135;
- $fi->{135} = $i;
- $w->create('text', qw(763 148.5), -text => '135', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(340 360 335 363 331 365 326 366 304 366 304 312 396 312 396 288 400 288 404 288 409 290 413 292 418 297 421 302 422 309 421 318 417 325 411 330 405 332 397 333 344 333 340 334 336 336 335 338 332 342 331 347 332 351 334 354 336 357 341 359), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 'Ramona Stair';
- $fi->{'Ramona Stair'} = $i;
- $w->create('text', qw(368 323), -text => 'Ramona Stair', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(30 23 30 5 93 5 98 5 104 7 110 10 116 16 119 20 122 28 123 32 123 68 220 68 220 87 90 87 90 23), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 'University Stair';
- $fi->{'University Stair'} = $i;
- $w->create('text', qw(155 77.5), -text => 'University Stair', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(282 37 295 40 312 49 323 56 337 70 352 56 358 48 363 39 365 29 348 25 335 22 321 14 300 5 283 1 260 0 246 0 242 2 236 4 231 8 227 13 223 17 221 22 220 34 260 34), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 'Plaza Stair';
- $fi->{'Plaza Stair'} = $i;
- $w->create('text', qw(317.5 28.5), -text => 'Plaza Stair', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(220 34 260 34 282 37 295 40 312 49 323 56 337 70 350 83 365 94 377 100 386 104 386 128 220 128), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 'Plaza Deck';
- $fi->{'Plaza Deck'} = $i;
- $w->create('text', qw(303 81), -text => 'Plaza Deck', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(257 336 77 336 6 336 6 301 77 301 77 310 257 310), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 106;
- $fi->{106} = $i;
- $w->create('text', qw(131.5 318.5), -text => '106', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $i = $w->create('polygon', qw(146 110 162 110 162 91 130 91 130 115 95 115 95 128 114 128 114 151 157 151 157 153 112 153 112 130 97 130 97 168 175 168 175 131 146 131), -fill => undef, -tags => ['floor1', 'room']);
- $fl->{$i} = 119;
- $fi->{119} = $i;
- $w->create('text', qw(143.5 133), -text => '119', -fill => $color, -anchor => 'c', -tags => ['floor1', 'label']);
- $w->create('line', qw(155 191 155 189), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(155 177 155 169), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(96 129 96 169), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(78 169 176 169), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(176 247 176 129), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(340 206 307 206), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(340 187 340 170), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(340 210 340 201), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(340 247 340 224), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(340 241 307 241), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(376 246 376 170), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(307 247 307 170), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(376 170 307 170), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(315 129 315 170), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(147 129 176 129), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(202 133 176 133), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(398 129 315 129), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(258 352 258 387), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(60 387 60 391), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(0 337 0 391), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(60 391 0 391), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(3 114 3 337), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(258 387 60 387), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(52 237 52 273), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(52 189 52 225), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(52 140 52 177), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(395 306 395 311), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(531 254 398 254), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(475 178 475 238), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(502 162 398 162), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(398 129 398 188), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(383 188 376 188), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(408 188 408 194), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(398 227 398 254), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(408 227 398 227), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(408 222 408 227), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(408 206 408 210), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(408 208 475 208), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(484 278 484 311), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(484 311 508 311), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(508 327 508 311), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(559 327 508 327), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(644 391 559 391), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(644 389 644 391), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(514 205 475 205), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(496 189 496 187), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(559 129 484 129), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(484 162 484 129), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(725 133 559 133), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(559 129 559 133), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(725 149 725 167), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(725 129 802 129), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(802 389 802 129), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(739 167 802 167), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(396 188 408 188), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(0 337 9 337), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(58 337 21 337), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(43 391 43 337), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(105 337 75 337), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(91 387 91 337), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(154 337 117 337), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(139 387 139 337), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(227 337 166 337), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(258 337 251 337), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(258 328 302 328), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(302 355 302 311), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(395 311 302 311), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(484 278 395 278), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(395 294 395 278), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(473 278 473 275), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(473 256 473 254), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(533 257 531 254), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(553 276 551 274), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(698 276 553 276), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(559 391 559 327), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(802 389 644 389), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(741 314 741 389), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(698 280 698 167), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(707 280 698 280), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(802 280 731 280), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(741 280 741 302), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(698 167 727 167), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(725 137 725 129), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(514 254 514 175), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(496 175 514 175), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(502 175 502 162), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(475 166 475 162), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(496 176 496 175), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(491 189 496 189), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(491 205 491 189), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(487 238 475 238), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(487 240 487 238), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(487 252 487 254), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(315 133 304 133), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(256 133 280 133), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(78 247 270 247), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(307 247 294 247), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(214 133 232 133), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(217 247 217 266), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(217 309 217 291), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(217 309 172 309), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(154 309 148 309), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(175 300 175 309), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(151 300 175 300), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(151 247 151 309), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(78 237 78 265), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(78 286 78 309), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(106 309 78 309), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(130 309 125 309), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(99 309 99 247), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(127 299 99 299), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(127 309 127 299), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(155 191 137 191), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(137 169 137 191), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(78 171 78 169), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(78 190 78 218), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(86 192 86 169), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(86 192 78 192), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(52 301 3 301), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(52 286 52 301), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(52 252 3 252), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(52 203 3 203), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(3 156 52 156), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(8 25 8 114), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(63 114 3 114), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(75 114 97 114), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(108 114 129 114), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(129 114 129 89), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(52 114 52 128), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(132 89 88 89), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(88 25 88 89), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(88 114 88 89), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(218 89 144 89), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(147 111 147 129), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(162 111 147 111), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(162 109 162 111), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(162 96 162 89), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(218 89 218 94), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(218 89 218 119), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(8 25 88 25), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(258 337 258 328), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(113 129 96 129), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(302 355 258 355), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(386 104 386 129), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(377 100 386 104), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(365 94 377 100), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(350 83 365 94), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(337 70 350 83), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(337 70 323 56), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(312 49 323 56), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(295 40 312 49), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(282 37 295 40), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(260 34 282 37), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(253 34 260 34), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(386 128 386 104), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(113 152 156 152), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(113 152 156 152), -fill => $color, -tags => ['floor1', 'wall']);
- $w->create('line', qw(113 152 113 129), -fill => $color, -tags => ['floor1', 'wall']);
-
-} # end floor_fg1;
-
-sub floor_fg2 {;
-
- my($w, $color, $fl, $fi) = @_;
-
- my($i);
- $i = $w->create('polygon', qw(748 188 755 188 755 205 758 205 758 222 800 222 800 168 748 168), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 238;
- $fi->{238} = $i;
- $w->create('text', qw(774 195), -text => '238', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(726 188 746 188 746 166 800 166 800 131 726 131), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 237;
- $fi->{237} = $i;
- $w->create('text', qw(763 148.5), -text => '237', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(497 187 497 204 559 204 559 324 641 324 643 324 643 291 641 291 641 205 696 205 696 291 694 291 694 314 715 314 715 291 715 205 755 205 755 190 724 190 724 187), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 246;
- $fi->{246} = $i;
- $w->create('text', qw(600 264), -text => '246', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(694 279 643 279 643 314 694 314), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 247;
- $fi->{247} = $i;
- $w->create('text', qw(668.5 296.5), -text => '247', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(232 250 308 250 308 242 339 242 339 246 397 246 397 255 476 255 476 250 482 250 559 250 559 274 482 274 482 278 396 278 396 274 232 274), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 202;
- $fi->{202} = $i;
- $w->create('text', qw(285.5 260), -text => '202', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(53 228 53 338 176 338 233 338 233 196 306 196 306 180 175 180 175 169 156 169 156 196 176 196 176 228), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 206;
- $fi->{206} = $i;
- $w->create('text', qw(143 267), -text => '206', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(51 277 6 277 6 338 51 338), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 212;
- $fi->{212} = $i;
- $w->create('text', qw(28.5 307.5), -text => '212', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(557 276 486 276 486 309 510 309 510 325 557 325), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 245;
- $fi->{245} = $i;
- $w->create('text', qw(521.5 300.5), -text => '245', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(560 389 599 389 599 326 560 326), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 244;
- $fi->{244} = $i;
- $w->create('text', qw(579.5 357.5), -text => '244', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(601 389 601 326 643 326 643 389), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 243;
- $fi->{243} = $i;
- $w->create('text', qw(622 357.5), -text => '243', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(688 316 645 316 645 365 688 365), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 242;
- $fi->{242} = $i;
- $w->create('text', qw(666.5 340.5), -text => '242', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(802 367 759 367 759 226 802 226), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 'Barbecue Deck';
- $fi->{'Barbecue Deck'} = $i;
- $w->create('text', qw(780.5 296.5), -text => 'Barbecue Deck', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(755 262 755 314 717 314 717 262), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 240;
- $fi->{240} = $i;
- $w->create('text', qw(736 288), -text => '240', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(755 316 689 316 689 365 755 365), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 241;
- $fi->{241} = $i;
- $w->create('text', qw(722 340.5), -text => '241', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(755 206 717 206 717 261 755 261), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 239;
- $fi->{239} = $i;
- $w->create('text', qw(736 233.5), -text => '239', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(695 277 643 277 643 206 695 206), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 248;
- $fi->{248} = $i;
- $w->create('text', qw(669 241.5), -text => '248', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(676 135 676 185 724 185 724 135), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 236;
- $fi->{236} = $i;
- $w->create('text', qw(700 160), -text => '236', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(675 135 635 135 635 145 628 145 628 185 675 185), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 235;
- $fi->{235} = $i;
- $w->create('text', qw(651.5 160), -text => '235', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(626 143 633 143 633 135 572 135 572 143 579 143 579 185 626 185), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 234;
- $fi->{234} = $i;
- $w->create('text', qw(606 160), -text => '234', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(557 135 571 135 571 145 578 145 578 185 527 185 527 131 557 131), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 233;
- $fi->{233} = $i;
- $w->create('text', qw(552.5 158), -text => '233', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(476 249 557 249 557 205 476 205), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 230;
- $fi->{230} = $i;
- $w->create('text', qw(516.5 227), -text => '230', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(476 164 486 164 486 131 525 131 525 185 476 185), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 232;
- $fi->{232} = $i;
- $w->create('text', qw(500.5 158), -text => '232', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(476 186 495 186 495 204 476 204), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 229;
- $fi->{229} = $i;
- $w->create('text', qw(485.5 195), -text => '229', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(474 207 409 207 409 187 399 187 399 164 474 164), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 227;
- $fi->{227} = $i;
- $w->create('text', qw(436.5 185.5), -text => '227', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(399 228 399 253 474 253 474 209 409 209 409 228), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 228;
- $fi->{228} = $i;
- $w->create('text', qw(436.5 231), -text => '228', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(397 246 397 226 407 226 407 189 377 189 377 246), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 226;
- $fi->{226} = $i;
- $w->create('text', qw(392 217.5), -text => '226', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(377 169 316 169 316 131 397 131 397 188 377 188), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 225;
- $fi->{225} = $i;
- $w->create('text', qw(356.5 150), -text => '225', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(234 198 306 198 306 249 234 249), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 224;
- $fi->{224} = $i;
- $w->create('text', qw(270 223.5), -text => '224', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(270 179 306 179 306 170 314 170 314 135 270 135), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 223;
- $fi->{223} = $i;
- $w->create('text', qw(292 157), -text => '223', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(268 179 221 179 221 135 268 135), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 222;
- $fi->{222} = $i;
- $w->create('text', qw(244.5 157), -text => '222', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(177 179 219 179 219 135 177 135), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 221;
- $fi->{221} = $i;
- $w->create('text', qw(198 157), -text => '221', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(299 327 349 327 349 284 341 284 341 276 299 276), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 204;
- $fi->{204} = $i;
- $w->create('text', qw(324 301.5), -text => '204', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(234 276 297 276 297 327 257 327 257 338 234 338), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 205;
- $fi->{205} = $i;
- $w->create('text', qw(265.5 307), -text => '205', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(256 385 256 340 212 340 212 385), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 207;
- $fi->{207} = $i;
- $w->create('text', qw(234 362.5), -text => '207', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(210 340 164 340 164 385 210 385), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 208;
- $fi->{208} = $i;
- $w->create('text', qw(187 362.5), -text => '208', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(115 340 162 340 162 385 115 385), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 209;
- $fi->{209} = $i;
- $w->create('text', qw(138.5 362.5), -text => '209', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(89 228 89 156 53 156 53 228), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 217;
- $fi->{217} = $i;
- $w->create('text', qw(71 192), -text => '217', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(89 169 97 169 97 190 89 190), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = '217A';
- $fi->{'217A'} = $i;
- $w->create('text', qw(93 179.5), -text => '217A', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(89 156 89 168 95 168 95 135 53 135 53 156), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 216;
- $fi->{216} = $i;
- $w->create('text', qw(71 145.5), -text => '216', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(51 179 51 135 6 135 6 179), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 215;
- $fi->{215} = $i;
- $w->create('text', qw(28.5 157), -text => '215', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(51 227 6 227 6 180 51 180), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 214;
- $fi->{214} = $i;
- $w->create('text', qw(28.5 203.5), -text => '214', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(51 275 6 275 6 229 51 229), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 213;
- $fi->{213} = $i;
- $w->create('text', qw(28.5 252), -text => '213', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(114 340 67 340 67 385 114 385), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 210;
- $fi->{210} = $i;
- $w->create('text', qw(90.5 362.5), -text => '210', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(59 389 59 385 65 385 65 340 1 340 1 389), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 211;
- $fi->{211} = $i;
- $w->create('text', qw(33 364.5), -text => '211', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(393 309 350 309 350 282 342 282 342 276 393 276), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 203;
- $fi->{203} = $i;
- $w->create('text', qw(367.5 292.5), -text => '203', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(99 191 91 191 91 226 174 226 174 198 154 198 154 192 109 192 109 169 99 169), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 220;
- $fi->{220} = $i;
- $w->create('text', qw(132.5 208.5), -text => '220', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(339 205 307 205 307 171 339 171), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 'Priv Lift2';
- $fi->{'Priv Lift2'} = $i;
- $w->create('text', qw(323 188), -text => 'Priv Lift2', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(307 240 339 240 339 206 307 206), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 'Pub Lift2';
- $fi->{'Pub Lift2'} = $i;
- $w->create('text', qw(323 223), -text => 'Pub Lift2', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(175 168 97 168 97 131 175 131), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 218;
- $fi->{218} = $i;
- $w->create('text', qw(136 149.5), -text => '218', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(154 191 111 191 111 169 154 169), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 219;
- $fi->{219} = $i;
- $w->create('text', qw(132.5 180), -text => '219', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $i = $w->create('polygon', qw(375 246 375 172 341 172 341 246), -fill => undef, -tags => ['floor2', 'room']);
- $fl->{$i} = 201;
- $fi->{201} = $i;
- $w->create('text', qw(358 209), -text => '201', -fill => $color, -anchor => 'c', -tags => ['floor2', 'label']);
- $w->create('line', qw(641 186 678 186), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(757 350 757 367), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(634 133 634 144), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(634 144 627 144), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(572 133 572 144), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(572 144 579 144), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(398 129 398 162), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(174 197 175 197), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(175 197 175 227), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(757 206 757 221), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(396 188 408 188), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(727 189 725 189), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(747 167 802 167), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(747 167 747 189), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(755 189 739 189), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(769 224 757 224), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(802 224 802 129), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(802 129 725 129), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(725 189 725 129), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(725 186 690 186), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(676 133 676 186), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(627 144 627 186), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(629 186 593 186), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(579 144 579 186), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(559 129 559 133), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(725 133 559 133), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(484 162 484 129), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(559 129 484 129), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(526 129 526 186), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(540 186 581 186), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(528 186 523 186), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(511 186 475 186), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(496 190 496 186), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(496 205 496 202), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(475 205 527 205), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(558 205 539 205), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(558 205 558 249), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(558 249 475 249), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(662 206 642 206), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(695 206 675 206), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(695 278 642 278), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(642 291 642 206), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(695 291 695 206), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(716 208 716 206), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(757 206 716 206), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(757 221 757 224), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(793 224 802 224), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(757 262 716 262), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(716 220 716 264), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(716 315 716 276), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(757 315 703 315), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(757 325 757 224), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(757 367 644 367), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(689 367 689 315), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(647 315 644 315), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(659 315 691 315), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(600 325 600 391), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(627 325 644 325), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(644 391 644 315), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(615 325 575 325), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(644 391 558 391), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(563 325 558 325), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(558 391 558 314), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(558 327 508 327), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(558 275 484 275), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(558 302 558 275), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(508 327 508 311), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(484 311 508 311), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(484 275 484 311), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(475 208 408 208), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(408 206 408 210), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(408 222 408 227), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(408 227 398 227), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(398 227 398 254), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(408 188 408 194), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(383 188 376 188), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(398 188 398 162), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(398 162 484 162), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(475 162 475 254), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(398 254 475 254), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(484 280 395 280), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(395 311 395 275), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(307 197 293 197), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(278 197 233 197), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(233 197 233 249), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(307 179 284 179), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(233 249 278 249), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(269 179 269 133), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(220 179 220 133), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(155 191 110 191), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(90 190 98 190), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(98 169 98 190), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(52 133 52 165), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(52 214 52 177), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(52 226 52 262), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(52 274 52 276), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(234 275 234 339), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(226 339 258 339), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(211 387 211 339), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(214 339 177 339), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(258 387 60 387), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(3 133 3 339), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(165 339 129 339), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(117 339 80 339), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(68 339 59 339), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(0 339 46 339), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(60 391 0 391), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(0 339 0 391), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(60 387 60 391), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(258 329 258 387), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(350 329 258 329), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(395 311 350 311), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(398 129 315 129), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(176 133 315 133), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(176 129 96 129), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(3 133 96 133), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(66 387 66 339), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(115 387 115 339), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(163 387 163 339), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(234 275 276 275), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(288 275 309 275), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(298 275 298 329), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(341 283 350 283), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(321 275 341 275), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(375 275 395 275), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(315 129 315 170), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(376 170 307 170), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(307 250 307 170), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(376 245 376 170), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(340 241 307 241), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(340 245 340 224), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(340 210 340 201), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(340 187 340 170), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(340 206 307 206), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(293 250 307 250), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(271 179 238 179), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(226 179 195 179), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(176 129 176 179), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(182 179 176 179), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(174 169 176 169), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(162 169 90 169), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(96 169 96 129), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(175 227 90 227), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(90 190 90 227), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(52 179 3 179), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(52 228 3 228), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(52 276 3 276), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(155 177 155 169), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(110 191 110 169), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(155 189 155 197), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(350 283 350 329), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(162 197 155 197), -fill => $color, -tags => ['floor2', 'wall']);
- $w->create('line', qw(341 275 341 283), -fill => $color, -tags => ['floor2', 'wall']);
-
-} # end floor_fg2;
-
-sub floor_fg3 {;
-
- my($w, $color, $fl, $fi) = @_;
-
- my($i);
- $i = $w->create('polygon', qw(89 228 89 180 70 180 70 228), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 316;
- $fi->{316} = $i;
- $w->create('text', qw(79.5 204), -text => '316', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(115 368 162 368 162 323 115 323), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 309;
- $fi->{309} = $i;
- $w->create('text', qw(138.5 345.5), -text => '309', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(164 323 164 368 211 368 211 323), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 308;
- $fi->{308} = $i;
- $w->create('text', qw(187.5 345.5), -text => '308', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(256 368 212 368 212 323 256 323), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 307;
- $fi->{307} = $i;
- $w->create('text', qw(234 345.5), -text => '307', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(244 276 297 276 297 327 260 327 260 321 244 321), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 305;
- $fi->{305} = $i;
- $w->create('text', qw(270.5 301.5), -text => '305', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(251 219 251 203 244 203 244 219), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = '324B';
- $fi->{'324B'} = $i;
- $w->create('text', qw(247.5 211), -text => '324B', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(251 249 244 249 244 232 251 232), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = '324A';
- $fi->{'324A'} = $i;
- $w->create('text', qw(247.5 240.5), -text => '324A', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(223 135 223 179 177 179 177 135), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 320;
- $fi->{320} = $i;
- $w->create('text', qw(200 157), -text => '320', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(114 368 114 323 67 323 67 368), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 310;
- $fi->{310} = $i;
- $w->create('text', qw(90.5 345.5), -text => '310', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(23 277 23 321 68 321 68 277), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 312;
- $fi->{312} = $i;
- $w->create('text', qw(45.5 299), -text => '312', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(23 229 68 229 68 275 23 275), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 313;
- $fi->{313} = $i;
- $w->create('text', qw(45.5 252), -text => '313', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(68 227 23 227 23 180 68 180), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 314;
- $fi->{314} = $i;
- $w->create('text', qw(45.5 203.5), -text => '314', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(95 179 95 135 23 135 23 179), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 315;
- $fi->{315} = $i;
- $w->create('text', qw(59 157), -text => '315', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(99 226 99 204 91 204 91 226), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = '316B';
- $fi->{'316B'} = $i;
- $w->create('text', qw(95 215), -text => '316B', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(91 202 99 202 99 180 91 180), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = '316A';
- $fi->{'316A'} = $i;
- $w->create('text', qw(95 191), -text => '316A', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(97 169 109 169 109 192 154 192 154 198 174 198 174 226 101 226 101 179 97 179), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 319;
- $fi->{319} = $i;
- $w->create('text', qw(141.5 209), -text => '319', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(65 368 58 368 58 389 1 389 1 333 23 333 23 323 65 323), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 311;
- $fi->{311} = $i;
- $w->create('text', qw(29.5 361), -text => '311', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(154 191 111 191 111 169 154 169), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 318;
- $fi->{318} = $i;
- $w->create('text', qw(132.5 180), -text => '318', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(175 168 97 168 97 131 175 131), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 317;
- $fi->{317} = $i;
- $w->create('text', qw(136 149.5), -text => '317', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(274 194 274 221 306 221 306 194), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 323;
- $fi->{323} = $i;
- $w->create('text', qw(290 207.5), -text => '323', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(306 222 274 222 274 249 306 249), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 325;
- $fi->{325} = $i;
- $w->create('text', qw(290 235.5), -text => '325', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(263 179 224 179 224 135 263 135), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 321;
- $fi->{321} = $i;
- $w->create('text', qw(243.5 157), -text => '321', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(314 169 306 169 306 192 273 192 264 181 264 135 314 135), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 322;
- $fi->{322} = $i;
- $w->create('text', qw(293.5 163.5), -text => '322', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(307 240 339 240 339 206 307 206), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 'Pub Lift3';
- $fi->{'Pub Lift3'} = $i;
- $w->create('text', qw(323 223), -text => 'Pub Lift3', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(339 205 307 205 307 171 339 171), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 'Priv Lift3';
- $fi->{'Priv Lift3'} = $i;
- $w->create('text', qw(323 188), -text => 'Priv Lift3', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(350 284 376 284 376 276 397 276 397 309 350 309), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 303;
- $fi->{303} = $i;
- $w->create('text', qw(373.5 292.5), -text => '303', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(272 203 272 249 252 249 252 230 244 230 244 221 252 221 252 203), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 324;
- $fi->{324} = $i;
- $w->create('text', qw(262 226), -text => '324', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(299 276 299 327 349 327 349 284 341 284 341 276), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 304;
- $fi->{304} = $i;
- $w->create('text', qw(324 301.5), -text => '304', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(375 246 375 172 341 172 341 246), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 301;
- $fi->{301} = $i;
- $w->create('text', qw(358 209), -text => '301', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(397 246 377 246 377 185 397 185), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 327;
- $fi->{327} = $i;
- $w->create('text', qw(387 215.5), -text => '327', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(316 131 316 169 377 169 377 185 397 185 397 131), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 326;
- $fi->{326} = $i;
- $w->create('text', qw(356.5 150), -text => '326', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(308 251 242 251 242 274 342 274 342 282 375 282 375 274 397 274 397 248 339 248 339 242 308 242), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 302;
- $fi->{302} = $i;
- $w->create('text', qw(319.5 261), -text => '302', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $i = $w->create('polygon', qw(70 321 242 321 242 200 259 200 259 203 272 203 272 193 263 180 242 180 175 180 175 169 156 169 156 196 177 196 177 228 107 228 70 228 70 275 107 275 107 248 160 248 160 301 107 301 107 275 70 275), -fill => undef, -tags => ['floor3', 'room']);
- $fl->{$i} = 306;
- $fi->{306} = $i;
- $w->create('text', qw(200.5 284.5), -text => '306', -fill => $color, -anchor => 'c', -tags => ['floor3', 'label']);
- $w->create('line', qw(341 275 341 283), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(162 197 155 197), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(396 247 399 247), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(399 129 399 311), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(258 202 243 202), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(350 283 350 329), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(251 231 243 231), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(243 220 251 220), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(243 250 243 202), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(155 197 155 190), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(110 192 110 169), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(155 192 110 192), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(155 177 155 169), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(176 197 176 227), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(69 280 69 274), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(21 276 69 276), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(69 262 69 226), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(21 228 69 228), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(21 179 75 179), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(69 179 69 214), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(90 220 90 227), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(90 204 90 202), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(90 203 100 203), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(90 187 90 179), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(90 227 176 227), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(100 179 100 227), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(100 179 87 179), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(96 179 96 129), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(162 169 96 169), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(173 169 176 169), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(182 179 176 179), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(176 129 176 179), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(195 179 226 179), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(224 133 224 179), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(264 179 264 133), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(238 179 264 179), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(273 207 273 193), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(273 235 273 250), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(273 224 273 219), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(273 193 307 193), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(273 222 307 222), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(273 250 307 250), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(384 247 376 247), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(340 206 307 206), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(340 187 340 170), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(340 210 340 201), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(340 247 340 224), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(340 241 307 241), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(376 247 376 170), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(307 250 307 170), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(376 170 307 170), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(315 129 315 170), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(376 283 366 283), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(376 283 376 275), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(399 275 376 275), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(341 275 320 275), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(341 283 350 283), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(298 275 298 329), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(308 275 298 275), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(243 322 243 275), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(243 275 284 275), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(258 322 226 322), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(212 370 212 322), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(214 322 177 322), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(163 370 163 322), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(165 322 129 322), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(84 322 117 322), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(71 322 64 322), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(115 322 115 370), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(66 322 66 370), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(52 322 21 322), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(21 331 0 331), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(21 331 21 133), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(96 133 21 133), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(176 129 96 129), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(315 133 176 133), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(315 129 399 129), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(399 311 350 311), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(350 329 258 329), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(258 322 258 370), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(60 370 258 370), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(60 370 60 391), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(0 391 0 331), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(60 391 0 391), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(307 250 307 242), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(273 250 307 250), -fill => $color, -tags => ['floor3', 'wall']);
- $w->create('line', qw(258 250 243 250), -fill => $color, -tags => ['floor3', 'wall']);
-
-} # end floor_fg3;
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/form.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/form.pl
deleted file mode 100644
index bd60ef91475..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/form.pl
+++ /dev/null
@@ -1,31 +0,0 @@
-# form.pl
-
-use vars qw/$TOP/;
-
-sub form {
-
- # Create a top-level window that displays a bunch of entries with
- # tabs set up to move between them.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'This window contains a simple form where you can type in the various entries and use tabs to move circularly between the entries.',
- -title => 'Form Demonstration',
- -iconname => 'form',
- );
- my $f = $TOP->Frame->pack(-fill => 'both');
- my $row = 0;
- foreach ('Name:', 'Address:', '', '', 'Phone:') {
- my $e = $f->Entry(qw/-relief sunken -width 40/);
- my $l = $f->Label(-text => $_, -anchor => 'e', -justify => 'right');
- $l->grid(-row => $row, -column => 0, -sticky => 'e');
- $e->grid(-row => $row++, -column => 1,-sticky => 'ew');
- $f->gridRowconfigure(1,-weight => 1);
- $e->focus if $_ eq 'Name:';
- }
- $TOP->bind('<Return>' => [$TOP => 'destroy']);
-
-} # end form
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/form_mgr.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/form_mgr.pl
deleted file mode 100644
index 1a328f94c53..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/form_mgr.pl
+++ /dev/null
@@ -1,21 +0,0 @@
-# Form, window management by Tix->form.
-
-use Tk;
-
-my $Main = MainWindow->new();
-
-my $box4 = $Main->Label(-text => 'box4', -borderwidth => 1, -relief => "raised");
-my $box1 = $Main->Label(-text => 'box1',-borderwidth => 1, -relief => "raised");
-my $box2 = $Main->Label(-text => 'box2',-borderwidth => 1, -relief => "raised");
-my $box3 = $Main->Label(-text => 'box3',-borderwidth => 1, -relief => "raised");
-
-$box1->form(-top => '%0', -left => '%0', -right => '%100');
-$box2->form(-top => $box1, -left => '%0', -right => '%50', -bottom =>
-$box4);
-$box3->form(-top => $box1, -left => $box2, -right => '%100', -bottom =>
-$box4);
-$box4->form(-left => '%0', -right => '%100', -bottom => '%100');
-
-MainLoop;
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/hello.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/hello.pl
deleted file mode 100644
index 08b1a8b52ec..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/hello.pl
+++ /dev/null
@@ -1,51 +0,0 @@
-# hello.pl
-
-use Config;
-use Tk::widgets qw/ ROText /;
-use vars qw/ $TOP /;
-use strict;
-
-sub hello {
-
- my( $demo ) = @_;
-
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => [ "This demonstration describes the basics of Perl/Tk programming. Besides this small user guide, there are various FAQs and other resources and tutorials available on the web, such as:
-
-http://phaseit.net/claird/comp.lang.perl.tk/ptkFAQ.html
-http://www.perltk.org
-http://user.cs.tu-berlin.de/~eserte
-http://www.lehigh.edu/sol0/ptk
-", -wraplength => '7i' ],
- -title => 'Perl/Tk User Guide',
- -iconname => 'hello',
- );
-
- # Pipe perldoc help output via fileevent() into a Scrolled ROText widget.
-
- my $t = $TOP->Scrolled(
- qw/ ROText -width 80 -height 25 -wrap none -scrollbars osoe/,
- );
- $t->focus;
- my $cmd = $Config{installbin} . '/perldoc -t Tk::UserGuide';
- $t->pack( qw/ -expand 1 -fill both / );
-
- open( H, "$cmd|" ) or die "Cannot get pTk user guide: $!";
- $TOP->fileevent( \*H, 'readable' => [ \&hello_fill, $t ] );
-
-} # end hello
-
-sub hello_fill {
-
- my( $t ) = @_;
-
- my $stat = sysread H, my $data, 4096;
- die "sysread error: $!" unless defined $stat;
- if( $stat == 0 ) { # EOF
- $TOP->fileevent( \*H, 'readable' => '' );
- return;
- }
- $t->insert( 'end', $data );
-
-} # end hello_fill
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/hscale.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/hscale.pl
deleted file mode 100644
index dcfd1437139..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/hscale.pl
+++ /dev/null
@@ -1,48 +0,0 @@
-# hscale.pl
-
-use subs qw /hscale_width/;
-use vars qw/$TOP/;
-
-sub hscale {
-
- # Create a top-level window that displays a horizontal scale.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'An arrow and a horizontal scale are displayed below. If you click or drag mouse button 1 in the scale, you can change the size of the arrow.',
- -title => 'Horizontal Scale Demonstration',
- -iconname => 'hscale',
- );
-
- my $frame = $TOP->Frame(-borderwidth => 10)->pack(qw/-side top -fill x/);
-
- my $canvas = $frame->Canvas(
- qw/width 50 -height 50 -bd 0 -highlightthickness 0/);
- $canvas->createPolygon(qw/0 0 1 1 2 2 -fill DeepSkyBlue3 -tags poly/);
- $canvas->createLine (qw/0 0 1 1 2 2 0 0 -fill black -tags line/);
-
- my $scale = $frame->Scale(qw/-orient horizontal -length 284 -from 0
- -to 250 -tickinterval 50 -command/ => [\&hscale_width, $canvas]);
- $scale->set(75);
-
- $canvas->pack(qw/-side top -expand yes -anchor w -fill x/);
- $scale->pack(qw/-side bottom -expand yes -anchor w/);
-
-} # end hscale
-
-sub hscale_width {
-
- my($w, $width) = @_;
-
- $width += 21;
- my $x2 = $width - 30;
- $x2 = 21 if $x2 < 21;
- $w->coords('poly', 20, 15, 20, 35, $x2, 35, $x2, 45, $width, 25, $x2, 5,
- $x2, 15, 20, 15);
- $w->coords('line', 20, 15, 20, 35, $x2, 35, $x2, 45, $width, 25, $x2, 5,
- $x2, 15, 20, 15);
-
-} # end hscale_width
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/icon.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/icon.pl
deleted file mode 100644
index 876f1181baa..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/icon.pl
+++ /dev/null
@@ -1,64 +0,0 @@
-# icon.pl
-
-use vars qw/$TOP/;
-
-sub icon {
-
- # Create a top-level window that displays a bunch of iconic buttons.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => ['This window shows three ways of using bitmaps or images in radiobuttons and checkbuttons. On the left are two radiobuttons, each of which displays a bitmap and an indicator. In the middle is a checkbutton that displays a different image depending on whether it is selected or not. On the right is a checkbutton that displays a single bitmap but changes its background color to indicate whether or not it is selected.', qw/-wraplength 5i/],
- -title => 'Iconic Button Demonstration',
- -iconname => 'icon',
- );
-
- $TOP->Bitmap('flagup',
- -file => Tk->findINC('demos/images/flagup'),
- -maskfile => Tk->findINC('demos/images/flagup'),
- );
- $TOP->Bitmap('flagdown',
- -file => Tk->findINC('demos/images/flagdown'),
- -maskfile => Tk->findINC('demos/images/flagdown'),
- );
-
- my $frame = $TOP->Frame(qw/-borderwidth 10/);
- $frame->pack(qw/-side top/);
-
- my(@pl) = qw/-side left -expand yes -padx 5m/;
- my $frame_left = $frame->Frame;
- $frame_left->pack(@pl);
-
- my $frame_b1 = $frame->Checkbutton(
- -image => 'flagdown',
- -selectimage => 'flagup',
- -indicatoron => 0,
- );
- $frame_b1->pack(@pl);
- $frame_b1->configure(-selectcolor => $frame_b1->cget(-background));
- my $frame_b2 = $frame->Checkbutton(
- -bitmap => '@' . Tk->findINC('demos/images/letters'),
- -indicatoron => 0,
- -selectcolor => 'SeaGreen1',
- );
- $frame_b2->pack(@pl);
-
- my $letters = '';
- @pl = qw/-side top -expand yes/;
- my $frame_left_b3 = $frame_left->Radiobutton(
- -bitmap => '@' . Tk->findINC('demos/images/letters'),
- -variable => \$letters,
- -value => 'full',
- );
- $frame_left_b3->pack(@pl);
- my $frame_left_b4 = $frame_left->Radiobutton(
- -bitmap => '@' . Tk->findINC('demos/images/noletters'),
- -variable => \$letters,
- -value => 'empty',
- );
- $frame_left_b4->pack(@pl);
-
-} # end icon
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/image1.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/image1.pl
deleted file mode 100644
index 61e6ec61b77..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/image1.pl
+++ /dev/null
@@ -1,28 +0,0 @@
-# image1.pl
-
-use vars qw/$TOP/;
-
-sub image1 {
-
- # This demonstration script displays two image widgets.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'This demonstration displays two images, each in a separate label widget.',
- -title => 'Image Demonstration #1',
- -iconname => 'image1',
- );
-
- my(@pl) = qw/-side top -padx .5m -pady .5m/;
- $TOP->Photo('image1a', -file => Tk->findINC('demos/images/earth.gif'));
- $TOP->Label(-image => 'image1a')->pack(@pl);
-
- $TOP->Photo('image1b', -file => Tk->findINC('demos/images/earthris.gif'));
- $TOP->Label(-image => 'image1b')->pack(@pl);
-
-} # end image1
-
-1;
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/image2.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/image2.pl
deleted file mode 100644
index fd318895254..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/image2.pl
+++ /dev/null
@@ -1,104 +0,0 @@
-# image2.pl
-
-use File::Basename;
-use subs qw/image2_load_dir image2_load_image/;
-use vars qw/$TOP/;
-
-sub image2 {
-
- # This demonstration script creates a simple collection of widgets
- # that allow you to select and view images in a Tk label.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'This demonstration allows you to view images using a Tk "photo" image. First type a directory name in the listbox, then type Return to load the directory into the listbox. Then double-click on a file name in the listbox to see that image.',
- -title => 'Image Demonstration #2',
- -iconname => 'image2',
- );
-
- my $dir_label = $TOP->Label(-text => 'Directory:');
- my $demo_img = Tk->findINC('demos/images');
- my $dir_name = $TOP->Entry(-width => 30, -textvariable => \$demo_img);
- my $frog0 = $TOP->Frame;
- my $frog = $frog0->Frame;
- my $file_label = $frog->Label(-text => 'File:');
- my $f = $frog->Frame;
- my(@pl) = qw/-side top -anchor w/;
- $dir_label->pack(@pl);
- $dir_name->pack(@pl);
-
- # All these "frog" and "toad" frames are just to repackage the listbox
- # and image side by side so they fit within an SVGA screen.
-
- $frog0->pack;
- $frog->pack(qw/-side left/);
- my $toad = $frog0->Frame;
- $toad->pack(qw/-side right/);
- $file_label->pack(@pl);
- $f->pack(@pl);
-
- my $f_list = $f->Listbox(-width => 20, -height => 10);
- $dir_name->bind('<Return>' => [\&image2_load_dir, $f_list, \$demo_img]);
- my $f_scroll = $f->Scrollbar(-command => [$f_list => 'yview']);
- $f_list->configure(-yscrollcommand => [$f_scroll => 'set']);
- @pl = qw/-side left -fill y -expand 1/;
- $f_list->pack(@pl);
- $f_scroll->pack(@pl);
- $f_list->insert(0, qw(earth.gif earthris.gif mickey.gif teapot.ppm));
-
- my $image2a = $TOP->Photo;
- $f_list->bind('<Double-1>' => [\&image2_load_image, $image2a, \$demo_img]);
- my $image_label = $toad->Label(-text => 'Image:');
- my $image = $toad->Label(-image => $image2a);
- @pl = qw/-side top -anchor w/;
- $image_label->pack(@pl);
- $image->pack(@pl);
-
-} # end image2
-
-sub image2_load_dir {
-
- # This procedure reloads the directory listbox from the directory
- # named in the demo's entry.
- #
- # Arguments:
- # e - Reference to entry widget.
- # l - Reference to listbox widget.
- # dir_name - Directory name reference.
-
- my($e, $l, $dir_name) = @_;
-
- $l->delete(0, 'end');
- my $i;
- local *DIR;
- opendir DIR, $$dir_name;
- foreach $i (sort readdir DIR) {
- $l->insert('end', $i);
- }
- closedir DIR;
-
-} # end image2_load_dir
-
-sub image2_load_image {
-
- # Given the name of the toplevel window of the demo and the mouse
- # position, extracts the directory entry under the mouse and loads
- # that file into a photo image for display.
- #
- # Arguments:
- # l - Reference to listbox widget.
- # i - Reference to image object.
- # dir_name - Directory name reference.
-
- my($l, $i, $dir_name) = @_;
-
- my $e = $l->XEvent;
- my($x, $y) = ($e->x, $e->y);
- $i->configure(-file => "$$dir_name/" . $l->get("\@$x,$y"));
-
- # NOTE: $l->get('active') works just as well.
-
-} # end image2_load_image
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/items.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/items.pl
deleted file mode 100644
index c720821babb..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/items.pl
+++ /dev/null
@@ -1,358 +0,0 @@
-# items.pl
-
-use subs qw/items_button_press items_drag items_enter items_leave items_mark
- items_start_drag items_stroke items_under_area/;
-use vars qw/$TOP/;
-
-sub items {
-
- # Create a top-level window containing a canvas that displays the various
- # item types and allows them to be selected and moved.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => ["This window contains a canvas widget with examples of the various kinds of items supported by canvases. The following operations are supported:\n Button-1 drag:\tmoves item under pointer.\n Button-2 drag:\trepositions view.\n Button-3 drag:\tstrokes out area.\n Ctrl+f:\t\tdisplays items under area.", qw/-wraplength 5i/],
- -title => 'Canvas Item Demonstration',
- -iconname => 'items',
- );
-
- my $c = $TOP->Scrolled(qw/Canvas -width 15c -height 10c -relief sunken
- -borderwidth 2 -scrollbars se -scrollregion/ =>
- [qw/0c 0c 30c 24c/]);
- $c->pack(qw/-expand yes -fill both/);
-
- my %iinfo = (); # item information hash
- $iinfo{areaX1} = 0;
- $iinfo{areaY1} = 0;
- $iinfo{areaX2} = 0;
- $iinfo{areaY2} = 0;
- $iinfo{restore_cmd} = '';
-
-
- if ($Tk::VERSION cmp '800.015') {
- # Display a 3x3 rectangular grid (800.016 or greater).
- $c->createGrid(qw/0c 0c 10c 8c -width 2 -lines 1/);
- $c->createGrid(qw/0c 0c 5c 4c -lines 1 -dash ./);
- $c->createGrid(qw/0c 0c 10m 8m -width 1/);
- } else {
- # Display a 3x3 rectangular grid.
- $c->createRectangle(qw/ 0c 0c 30c 24c -width 2/);
- $c->createLine (qw/ 0c 8c 30c 8c -width 2/);
- $c->createLine (qw/ 0c 16c 30c 16c -width 2/);
- $c->createLine (qw/10c 0c 10c 24c -width 2/);
- $c->createLine (qw/20c 0c 20c 24c -width 2/);
- }
-
- my $font1 = '-*-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*';
- my $font2 = '-*-Helvetica-Bold-R-Normal--*-240-*-*-*-*-*-*';
- my($blue, $red, $bisque, $green);
- if ($TOP->depth > 1) {
- $blue = 'DeepSkyBlue3';
- $red = 'red';
- $bisque = 'bisque3';
- $green = 'SeaGreen3';
- } else {
- $blue = 'black';
- $red = 'black';
- $bisque = 'black';
- $green = 'black';
- }
-
- # Set up demos within each of the areas of the grid.
-
- $c->createText(qw/5c .2c -text Lines -anchor n/);
- $c->createLine(qw/1c 1c 3c 1c 1c 4c 3c 4c -width 2m/, -fill => $blue,
- qw/-cap butt -join miter -tags item/);
- $c->createLine(qw/4.67c 1c 4.67c 4c -arrow last -activedash - -tags item/);
- $c->createLine(qw/6.33c 1c 6.33c 4c -arrow both -activedash . -tags item/);
- $c->createLine(qw/5c 6c 9c 6c 9c 1c 8c 1c 8c 4.8c 8.8c 4.8c 8.8c 1.2c
- 8.2c 1.2c 8.2c 4.6c 8.6c 4.6c 8.6c 1.4c 8.4c 1.4c
- 8.4c 4.4c -width 3 -tags item -fill/ => $red);
- $c->createLine(qw/1c 5c 7c 5c 7c 7c 9c 7c -width .5c/,
- -stipple => '@'.Tk->findINC('demos/images/grey.25'),
- qw/-arrow both -tags item -arrowshape/ => [15, 15, 7]);
- $c->createLine(qw/1c 7c 1.75c 5.8c 2.5c 7c 3.25c 5.8c 4c 7c -width .5c
- -cap round -join round -tags item/);
-
- $c->createText(qw/15c .2c -anchor n -text/ => 'Curves (smoothed lines)');
- $c->createLine(qw/11c 4c 11.5c 1c 13.5c 1c 14c 4c -smooth on/,
- -fill =>$blue, qw/-tags item/);
- $c->createLine(qw/15.5c 1c 19.5c 1.5c 15.5c 4.5c 19.5c 4c -smooth on
- -arrow both -width 3 -tags item/);
- $c->createLine(qw/12c 6c 13.5c 4.5c 16.5c 7.5c 18c 6c 16.5c 4.5c 13.5c
- 7.5c 12c 6c -smooth on -width 3m -cap round -tags item/,
- -stipple => '@'.Tk->findINC('demos/images/grey.25'),
- -fill => $red);
-
- $c->createText(qw/25c .2c -text Polygons -anchor n/);
- $c->createPolygon(qw/21c 1.0c 22.5c 1.75c 24c 1.0c 23.25c 2.5c 24c 4.0c
- 22.5c 3.25c 21c 4.0c 21.75c 2.5c -tags item/,
- -fill => $green);
- $c->createPolygon(qw/25c 4c 25c 4c 25c 1c 26c 1c 27c 4c 28c 1c 29c 1c
- 29c 4c 29c 4c -smooth on -tags item/, -fill => $red);
- $c->createPolygon(qw/22c 4.5c 25c 4.5c 25c 6.75c 28c 6.75c 28c 5.25c 24c
- 5.25c 24c 6.0c 26c 6c 26c 7.5c 22c 7.5c -tags item/,
- -stipple => '@'.Tk->findINC('demos/images/grey.25'));
-
- $c->createText(qw/5c 8.2c -text Rectangles -anchor n/);
- $c->createRectangle(qw/1c 9.5c 4c 12.5c/, -outline => $red,
- qw/-width 3m -tags item/);
- $c->createRectangle(qw/0.5c 13.5c 4.5c 15.5c/, -fill => $green,
- qw/-tags item/);
- $c->createRectangle(qw/6c 10c 9c 15c -tags item/, -outline => undef,
- -stipple => '@'.Tk->findINC('demos/images/grey.25'),
- -fill => $blue);
-
- $c->createText(qw/15c 8.2c -text Ovals -anchor n/);
- $c->createOval(qw/11c 9.5c 14c 12.5c/, -outline => $red,
- qw/-width 3m -tags item/);
- $c->createOval(qw/10.5c 13.5c 14.5c 15.5c/, -fill => $green,
- qw/-tags item/);
- $c->createOval(qw/16c 10c 19c 15c -tags item/, -outline => undef,
- -stipple => '@'.Tk->findINC('demos/images/grey.25'),
- -fill => $blue);
-
- $c->createText(qw/25c 8.2c -text Text -anchor n/);
- $c->createRectangle(qw/22.4c 8.9c 22.6c 9.1c/);
- $c->createText(qw/22.5c 9c -anchor n -width 4c/, -font => $font1,
- -text => 'A short string of text, word-wrapped, justified left, and anchored north (at the top). The rectangles show the anchor points for each piece of text.', qw/-tags item/);
- $c->createRectangle(qw/25.4c 10.9c 25.6c 11.1c/);
- $c->createText(qw/25.5c 11c -anchor w/, -font => $font1, -fill => $blue,
- -text => "Several lines,\n each centered\n" .
- "individually,\nand all anchored\nat the left edge.",
- qw/-justify center -tags item/);
- $c->createRectangle(qw/24.9c 13.9c 25.1c 14.1c/);
- $c->createText(qw/25c 14c -anchor c/, -font => $font2, -fill => $red,
- -stipple => 'gray50',
- -text => 'Stippled characters', qw/-tags item/);
-
- $c->createText(qw/5c 16.2c -text Arcs -anchor n/);
- $c->createArc(qw/0.5c 17c 7c 20c/, -fill => $green, qw/-outline black/,
- -stipple => '@'.Tk->findINC('demos/images/grey.25'),
- qw/-start 45 -extent 270 -style pieslice -tags item/);
- $c->createArc(qw/6.5c 17c 9.5c 20c -width 4m -style arc/, -fill => $blue,
- qw/-start -135 -extent 270 -tags item/);
- $c->createArc(qw/0.5c 20c 9.5c 24c -width 4m -style pieslice/,
- -fill => undef, -outline => $red,
- qw/-start 225 -extent -90 -tags item/);
- $c->createArc(qw/5.5c 20.5c 9.5c 23.5c -width 4m -style chord/,
- -fill => $blue, -outline => undef,
- qw/-start 45 -extent 270 -tags item/);
-
- $c->createText(qw/15c 16.2c -text Bitmaps -anchor n/);
- $c->createBitmap(qw/13c 20c -bitmap/ =>
- '@'.Tk->findINC('demos/images/face'), qw/-tags item/);
- $c->createBitmap(qw/17c 18.5c/,
- -bitmap => '@'.Tk->findINC('demos/images/noletters'),
- qw/-tags item/);
- $c->createBitmap(qw/17c 21.5c/,
- -bitmap => '@'.Tk->findINC('demos/images/letters'),
- qw/-tags item/);
-
- $c->createText(qw/25c 16.2c -text Windows -anchor n/);
- my $c_button = $c->Button(-text => 'Press Me',
- -command => [\&items_button_press, $c, $red],
- );
- $c->createWindow(qw/21c 18c/, -window => $c_button,
- qw/-anchor nw -tags item/);
- my $c_entry = $c->Entry(-width => '20', -relief => 'sunken',
- -validate => 'all',
- -validatecommand => sub {$n++ ? 1 : 0},
- -invalidcommand => sub {$TOP->bell});
- $c_entry->insert('end' => 'Edit this text');
- $c->createWindow(qw/21c 21c/, -window => $c_entry,
- qw/-anchor nw -tags item/);
- my $c_scale = $c->Scale(qw/-from 0 -to 100 -length 6c -sliderlength .4c
- -width .5c -tickinterval 0/);
- $c->createWindow(qw/28.5c 17.5c/, -window => $c_scale,
- qw/-anchor n -tags item/);
- $c->createText(qw/21c 17.9c -text Button: -anchor sw/);
- $c->createText(qw/21c 20.9c -text Entry: -anchor sw/);
- $c->createText(qw/28.5c 17.4c -text Scale: -anchor s/);
-
- # Set up event bindings for canvas.
-
- $c->bind('item', '<Any-Enter>' => [\&items_enter, \%iinfo]);
- $c->bind('item', '<Any-Leave>' => [\&items_leave, \%iinfo]);
-
- # Get real canvas widget reference to apply bind() commands to: the
- # Canvas widget is a subwidget of the Scrolled composite widget. To
- # reference the X event structure, either use the XEvent() method or
- # read the specially localized variable $Tk::event. We'll use XEvent
- # first, and the variable from then on.
-
- $c->CanvasBind('<<Copy>>',sub { print "Do Copy\n" });
-
- $c->CanvasBind('<1>' => sub {
- my($c) = @_;
- my $e = $c->XEvent;
- items_start_drag $c, $e->x, $e->y, \%iinfo;
- });
- $c->CanvasBind('<B1-Motion>' =>
- sub {items_drag shift, $Tk::event->x, $Tk::event->y, \%iinfo});
- $c->CanvasBind('<2>' =>
- sub {shift->scan('mark', $Tk::event->x, $Tk::event->y)});
- $c->CanvasBind('<B2-Motion>' =>
- sub {shift->scan('dragto', $Tk::event->x, $Tk::event->y)});
- $c->CanvasBind('<3>' =>
- sub {items_mark shift, $Tk::event->x, $Tk::event->y, \%iinfo});
- $c->CanvasBind('<B3-Motion>' =>
- sub {items_stroke shift, $Tk::event->x, $Tk::event->y, \%iinfo});
- $c->CanvasBind('<Control-f>' => [sub {
- my($c, $iinfo) = @_;
- my $e = $c->XEvent;
- items_under_area $c, $iinfo;
- }, \%iinfo]);
- $c->CanvasBind('<Any-Enter>' => sub {$_[0]->CanvasFocus});
-
-} # end items
-
-# Utility procedures for highlighting the item under the pointer:
-
-sub items_button_press {
-
- # Procedure that's invoked when the button embedded in the canvas
- # is invoked.
-
- my($w, $color) = @_;
-
- my $i = $w->createText(qw/25c 18.1c -anchor n/, -text => 'Ouch!!',
- -fill => $color);
- $w->after(500, sub { $w->delete($i) });
-
-} # end items_button_press
-
-sub items_drag {
-
- my($c, $x, $y, $iinfo) = @_;
-
- $x = $c->canvasx($x);
- $y = $c->canvasy($y);
- $c->move('current', $x-$iinfo->{lastX}, $y-$iinfo->{lastY});
- $iinfo->{lastX} = $x;
- $iinfo->{lastY} = $y;
-
-} # end items_drag
-
-sub items_enter {
-
- my($c, $iinfo) = @_;
-
- $iinfo->{restore_cmd} = '';
-
- if ($TOP->depth == 1) {
- $iinfo->{restore_cmd} = '';
- return;
- }
- my $type = $c->type('current');
- if ($type eq 'window') {
- $iinfo->{restore_cmd} = '';
- return;
- }
-
- if ($type eq 'bitmap') {
- my $bg = ($c->itemconfigure(qw/current -background/))[4];
- if (defined $bg) {
- $iinfo->{restore_cmd} = "\$c->itemconfigure('current',
- -background => '$bg');";
- } else {
- $iinfo->{restore_cmd} = "\$c->itemconfigure('current',
- -background => undef);";
- }
- $c->itemconfigure(qw/current -background SteelBlue2/);
- return;
- }
- my $fill = ($c->itemconfigure(qw/current -fill/))[4];
- my $stipple = ($c->itemconfigure(qw/current -stipple/))[4];
- if (defined $stipple) {
- $iinfo->{restore_cmd} = "\$c->itemconfigure('current',
- -stipple => '$stipple')";
- $c->itemconfigure(qw/current -stipple /,'');
- } elsif (($type eq 'rectangle' or $type eq 'oval' or $type eq 'arc')
- and not defined $fill) {
- my $outline = ($c->itemconfigure(qw/current -outline/))[4];
- $iinfo->{restore_cmd} = "\$c->itemconfigure('current',
- -outline => '$outline')";
- $c->itemconfigure(qw/current -outline SteelBlue2/);
- } else {
- $iinfo->{restore_cmd} = "\$c->itemconfigure('current',
- -fill => '$fill')";
- $c->itemconfigure(qw/current -fill SteelBlue2/);
- }
-
-} # end items_enter
-
-sub items_leave {
-
- my($c, $iinfo) = @_;
-
- eval $iinfo->{restore_cmd};
-
-} # end items_leave
-
-sub items_mark {
-
- my($c, $x, $y, $iinfo) = @_;
-
- $iinfo->{areaX1} = $c->canvasx($x);
- $iinfo->{areaY1} = $c->canvasy($y);
- $c->delete('area');
-
-} # end items_mark
-
-sub items_start_drag {
-
- my($c, $x, $y, $iinfo) = @_;
-
- $iinfo->{lastX} = $c->canvasx($x);
- $iinfo->{lastY} = $c->canvasy($y);
-
-} # end items_start_drag
-
-sub items_stroke {
-
- my($c, $x, $y, $iinfo) = @_;
-
- $x = $c->canvasx($x);
- $y = $c->canvasy($y);
- if (($iinfo->{areaX1} != $x) and ($iinfo->{areaY1} != $y)) {
- $c->delete('area');
- $c->addtag('area', 'withtag', $c->create('rectangle',
- $iinfo->{areaX1}, $iinfo->{areaY1}, $x, $y, -outline => 'black'));
- $iinfo->{areaX2} = $x;
- $iinfo->{areaY2} = $y;
- }
-
-} # end items_stroke
-
-sub items_under_area {
-
- my($c, $iinfo) = @_;
-
- my $area = $c->find('withtag', 'area');
- my @items = ();
- my $i;
- foreach $i ($c->find('enclosed', $iinfo->{areaX1},
- $iinfo->{areaY1}, $iinfo->{areaX2}, $iinfo->{areaY2})) {
- my @tags = $c->gettags($i);
- if (defined($tags[0]) and grep $_ eq 'item', @tags) {
- push @items, $i;
- }
- }
- @items = 'None' unless @items;
- print STDOUT 'Items enclosed by area: ', join(' ', @items), ".\n";
- @items = ();
- foreach $i ($c->find('overlapping', $iinfo->{areaX1}, $iinfo->{areaY1},
- $iinfo->{areaX2}, $iinfo->{areaY2})) {
- my @tags = $c->gettags($i);
- if (defined($tags[0]) and grep $_ eq 'item', @tags) {
- push @items, $i;
- }
- }
- @items = 'None' unless @items;
- print STDOUT 'Items overlapping area: ', join(' ', @items), ".\n";
-
-} # end items_under_area
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/keysyms.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/keysyms.pl
deleted file mode 100644
index 17f594d7061..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/keysyms.pl
+++ /dev/null
@@ -1,20 +0,0 @@
-use strict;
-
-sub keysyms {
-
- my( $demo ) = @_;
-
- my $mw = $MW->WidgetDemo(
- -name => $demo,
- -text => 'This demonstration displays the keysym for any keyboard character.',
- -title => 'Display Keysyms',
- -iconname => 'keysyms',
- );
-
- $mw->Label( qw/ -relief solid -width 20 /, -textvariable => \my $k )->pack;
-
- $mw->bind( '<KeyPress>' => sub {
- $k = sprintf( "%s", $Tk::event->K );
- });
-
-} # end keysyms
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/labelframe.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/labelframe.pl
deleted file mode 100644
index 17d191a7c9b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/labelframe.pl
+++ /dev/null
@@ -1,74 +0,0 @@
-# labelframe.pl
-
-use vars qw/$TOP/;
-
-sub labelframe {
-
- # Create a top-level window that displays several Labelframe widgets.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -geometry_manager => 'grid',
- -name => $demo,
- -text => 'Labelframes are used to group related widgets together. The label maybe either plain text or another widget.',
- -title => 'Labelframe Demonstration',
- -iconname => 'labelframe',
- );
-
- # A group of radiobuttons in a labelframe
-
- my $lf1 = $TOP->Labelframe(qw/-text Value -padx 2 -pady 2/);
- $lf1->grid(qw/-row 0 -column 0 -pady 2m -padx 2m/);
-
- my $lfdummy;
- foreach my $value (1 .. 4) {
- $lf1->Radiobutton(
- -text => "This is value $value" ,
- -variable => \$lfdummy,
- -value => $value,
- )->pack(qw/-side top -fill x -pady 2/);
- }
-
- # A label window controlling a group of options.
-
- my $lf2 = $TOP->Labelframe(qw/-pady 2 -padx 2/);
- $lf2->grid(qw/-row 0 -column 1 -pady 2m -padx 2m/);
- my $lfdummy2;
- my $cb;
- $cb = $lf2->Checkbutton(
- -text => 'Use this option',
- -variable => \$lfdummy2,
- -command => sub {&labelframe_buttons($lf2, $cb, \$lfdummy2)},
- -padx => 0,
- );
- $lf2->configure(-labelwidget => $cb);
-
- foreach my $str (qw/Option1 Option2 Option3/) {
- $lf2->Checkbutton(-text => $str)->pack(qw/-side top -fill x -pady 2/);
- }
-
- &labelframe_buttons($lf2, $cb, \$lfdummy2);
-
- $TOP->gridColumnconfigure([0, 1], -weight => 1);
-
-} # end labelframe
-
-sub labelframe_buttons {
-
- # The state of the sub-Checkbuttons is dependent upon the state of
- # the master -labelwidget Checkbutton.
-
- my ($lf, $cb, $var_ref) = @_;
-
- foreach my $child ($lf->children) {
- next if $child == $cb;
- if ($$var_ref) {
- $child->configure(qw/-state normal/);
- } else {
- $child->configure(qw/-state disabled/);
- }
- }
-
-} # end labelframe_buttons
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/labels.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/labels.pl
deleted file mode 100644
index 4650ffdfd50..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/labels.pl
+++ /dev/null
@@ -1,43 +0,0 @@
-# labels.pl
-
-use vars qw/$TOP/;
-
-sub labels {
-
- # Create a top-level window that displays a bunch of labels. @pl is the
- # "packing list" variable which specifies the list of packer attributes.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'Five labels are displayed below: three textual ones on the left, and an image label and a text label on the right. Labels are pretty boring because you can\'t do anything with them.',
- -title => 'Label Demonstration',
- -iconname => 'label',
- );
-
- my(@pl) = qw/-side left -expand yes -padx 10 -pady 10 -fill both/;
- my $left = $TOP->Frame->pack(@pl);
- my $right = $TOP->Frame->pack(@pl);
-
- @pl = qw/-side top -expand yes -pady 2 -anchor w/;
- my $left_l1 = $left->Label(-text => 'First label')->pack(@pl);
- my $left_l2 = $left->Label(
- -text => 'Second label, raised just for fun',
- -relief => 'raised',
- )->pack(@pl);
- my $left_l3 = $left->Label(
- -text => 'Third label, sunken',
- -relief => 'sunken',
- )->pack(@pl);
-
- @pl = qw/-side top/;
- my $right_bitmap = $right->Label(
- -image => $TOP->Photo(-file => Tk->findINC('Xcamel.gif')),
- -borderwidth => 2,
- -relief => 'sunken',
- )->pack(@pl);
- my $right_caption = $right->Label(-text => 'Perl/Tk')->pack(@pl);
-
-} # end labels
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/labframe.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/labframe.pl
deleted file mode 100644
index c5f09f88bca..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/labframe.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# LabFrame, frame with embedded label.
-
-use Tk;
-use Tk::LabFrame;
-use Tk::LabEntry;
-
-my $test = 'Test this';
-
-my $top = MainWindow->new;
-my $f = $top->LabFrame(-label => "This is a label", -labelside => "acrosstop");
-$f->LabEntry(-label => "Testing", -textvariable => \$test)->pack;
-$f->pack;
-MainLoop;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/mega.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/mega.pl
deleted file mode 100644
index cbd1b6cbd4c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/mega.pl
+++ /dev/null
@@ -1,135 +0,0 @@
-# mega.pl
-
-use vars qw / $TOP /;
-use strict;
-
-sub mega {
-
- my( $demo ) = @_;
-
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => [ "Perl/Tk provides a powerful framework for creating custom widgets. There are two types of these mega-widgets: composite and derived. Subsequent demonstrations detail a complete mega-widget of each type. Regardless of the type of mega-widget, they share a common programming structure. The key that differentiates the various types of mega-widget is the definition of the new widget's base class(es).", -wraplength => '7i' ],
- -title => 'Introduction to writing pure Perl mega-widgets ',
- -iconname => 'mega',
- );
-
- my $t = $TOP->Scrolled( qw/ ROText -wrap word -scrollbars oe/ );
- $t->focus;
- $t->pack( qw/ -fill both -expand 1 / );
- $t->insert( 'end', <<'end-of-instructions' );
-
-Here, briefly, is the Perl/Tk mega-widget implementation for pure Perl mega-widgets. As much of the work as possible has been abstracted and incorporated into the pTk core. This mimimizes the code the mega-widget author has to write, increasing consistency.
-
-There are two varieties of mega-widgets in Perl/Tk: composite and derived. A composite is Toplevel or Frame-based, having other, more elemental, widgets packed (or gridded) inside. A derived widget has a ISA-like relationship, generally adding (but sometimes subtracting) options/methods to/from a single, existing, widget. Of course, that single widget may itself be a composite widget.
-
-To create a Perl/Tk mega-widget one:
-
-. chooses a namespace (class name)
-. defines a subroutine to initialize the class (optional)
-. defines an instance constructor (subroutine) that (optional):
- . builds the new widget
- . defines options (configuration specifications, analagous to C widgets)
- . defines delegates for widget methods
-. defines private and instance methods (optional)
-
-As with core widgets, methods like configure() and cget() are automatically provided by the mega-widget framework and are "just there", and option database operations "just work".
-
-Here is a minimal Perl/Tk Toplevel-based composite mega-widget:
-
- package Tk::Nil;
- use base qw/Tk::Toplevel/;
- Construct Tk::Widget 'Nil';
-
-Unless overridden, options and methods are inherited from the mega-widget's base class(es).
-
-You create a Nil just like any other Perl/Tk widget:
-
- my $nil = $mw->Nil;
-
-And an empty Nil window appears that functions just like a Toplevel! But other than that, the Nil widget doesn't do anything more since no additonal subwidgets or behavior have been defined. The purpose of that example was to demonstrate how much the Perl/Tk mega-widget mechanism did for the mega-widget author - a fully functional composite mega-widget in three lines of code.
-
-There's a second container-like mega-widget in Perl/Tk, based on a Frame. But other than the logical container, the two mega-widget types are more-or-less equivalent. The third and final mega-widget type we call a derived mega-widget, because it adds or subtracts behavior to/from an existing widget.
-
-Functional mega-widgets look more like this:
-
- package Tk::MyNewWidget;
-
- # Declare base class.
- use base qw/ Tk::Frame /; # Frame-based composite
-or
- use base qw/ Tk::Toplevel /; # Toplevel-based composite
-or
- use Tk:SomeWidget;
- use base qw/ Tk::Derived Tk::SomeWidget /; # derived from SomeWidget
-
- Construct Tk::Widget 'MyNewWidget'; # install MyNewWidget in pTk namespace
-
- sub ClassInit{ # called once to initialize new class
- my($class, $mw) = @_;
- $class->SUPER::ClassInit($mw);
- }
-
- sub Populate { # called to build each widget instance
- my($self, $args) = @_;
- $self->SUPER::Populate($args);
- $self->Advertise(); # advertise subwidgets
- $self->Callback(); # invoke -command callbacks
- $self->Component(); # define a subwidget component
- $self->ConfigSpecs(); # define cget() / configure() options
- $self->Delegates(); # how methods are delegated to subwidgets
- $self->Subwidget(); # map a subwidget name to subwidget reference
- }
-
- # Private methods.
-
- # Public methods.
-
- 1; # end class MyNewWidget
-
- # Don't forget POD documentation here!
-
-Here's an excerpt from a Text dervived mega-widget called TraceText; you can examine the complete code in another demonstration. This widget defines its content using a new -textvariable option.
-
- package Tk::TraceText;
- use base qw/Tk::Derived Tk::Text/;
- Construct Tk::Widget 'TraceText';
-
- sub Populate {
-
- my( $self, $args ) = @_;
-
- $self->ConfigSpecs(
- -textvariable => 'METHOD', 'textVariable', 'TextVariable', undef,
- );
-
- } # end Populate
-
- # Private methods.
-
- sub textvariable {
-
- my ( $self, $vref ) = @_;
-
- $self->traceVariable( $vref, 'w', [ \&tracew => $self, $vref ] );
- $self->{_vref} = $vref; # store watchpoint in an instance variable
-
- } # end textvariable
-
-If you compare the preamble (the first three lines) with that of the Nil mega-widget, you'll note that they are virtually identical - the important difference is the addition of the Tk::Derived class that provides additional methods specifically for derived mega-widgets.
-
-At that point, with three lines of code, we have a completely functional mega-widget called TraceText that is identical to the standard Text widget in every way, and the key to all this is the Construct() call, which, among other duties, installs the new widget name in the symbol table.
-
-Construct() also arranges for the TraceText "instantiator" to call-out to the well-known method Populate() - this is how the mega-widget author adds behavior to the new widget. Similarly, the mega-widget author can provide a ClassInit() method that is called once per MainWindow to initialize class bindings, variables, images, etcetera.
-
-Tk::TraceText::Populate defines the -textvariable option and provides a private method to establish the watchpoint. In Perl/Tk, all mega-widget options are specified via a ConfigSpecs() call, named after the C structure.
-
-Briefly, ConfigSpecs() names options and tells Perl/Tk what to do when one is specified on a configure() or cget() call. It also specifies the option's database name, class name and default value for option DB lookups. For our -textvariable option, the Perl/Tk framework invokes a METHOD (subroutine) by the same name as the option, minus the dash, of course. Other choices include CHILDREN, DECENDENTS, a name (or list of names) of a subwidget, etcetera.
-
-More details on mega-widget construction can be found in these man pages:
-
-Tk::ConfigSpecs, Tk::Derived, Tk::composite, Tk::mega
-
-end-of-instructions
-
-} # end mega
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/menbut.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/menbut.pl
deleted file mode 100644
index 9fd624bdc22..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/menbut.pl
+++ /dev/null
@@ -1,122 +0,0 @@
-# menbut.pl
-
-use vars qw/$TOP/;
-
-sub menbut {
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => '',
- -title => 'Menubutton Demo',
- -iconname => 'Menubutton',
- );
-
- my @menubuttons;
- foreach (qw/below right left above/) {
- my $pos = ucfirst;
- my $menubutton = $TOP->Menubutton(qw/-underline 0 -relief raised/,
- -text => $pos, -direction => $_);
- push @menubuttons, $menubutton;
- my $menu = $menubutton->menu(qw/-tearoff 0/);
- $menubutton->configure(-menu => $menu);
- $menubutton->command(-label => "$pos menu: first item", -command =>
- sub {print "You selected the first item from the $pos menu.\n"});
- $menubutton->command(-label => "$pos menu: second item", -command =>
- sub {print "You selected the second item from the $pos menu.\n"});
- }
- $menubuttons[0]->grid(qw/-row 0 -column 1 -sticky n/);
- $menubuttons[3]->grid(qw/-row 2 -column 1 -sticky n/);
- $menubuttons[1]->grid(qw/-row 1 -column 0 -sticky w/);
- $menubuttons[2]->grid(qw/-row 1 -column 2 -sticky e/);
-
- my $body = $TOP->Frame;
- $body->grid(qw/-row 1 -column 1 -sticky news/);
- $body->Label(qw/-wraplength 300 -justify left/, -font => 'Helvetica 14',
- -text => 'This is a demonstration of menubuttons. The "Below" menubutton pops its menu below the button; the "Right" button pops to the right, etc. There are two option menus directly below this text; one is just a standard menu and the other is a 16-color palette.')->pack(qw/-side top -padx 25
- -pady 25/);
- $bbutt = $body->Frame->pack(qw/-padx 25 -pady 25/);
- $bbutt->Optionmenu(-options => [qw/one two three/])->pack(qw/-side left
- -padx 25 -pady 25/);
-
- my $palette;
- my(@colors) = qw/Black red4 DarkGreen NavyBlue gray75 Red Green Blue
- gray50 Yellow Cyan Magenta White Brown DarkSeaGreen DarkViolet/;
-
- my $colors = native_optionmenu(
- $bbutt,
- \$palette,
- [sub {print "args=@_.\n"}, 'First'],
- @colors,
- );
- $colors->pack(qw/-side left -padx 25 -pady 25/);
-
- my $menu = $colors->cget(-menu);
- my $topborder = 'gray50';
- my $bottomborder = 'gray75';
-
- foreach my $i (0 .. $#colors) {
-
- # Create a 16 pixel x 16 pixel solid color swatch.
- # Add a black ring around the currently selected item.
-
- my $color = $menu->entrycget($i, -label);
- my $p = $TOP->Photo(qw/-width 16 -height 16/);
- $p->put($topborder, qw/-to 0 0 16 1/);
- $p->put($topborder, qw/-to 0 1 1 16/);
- $p->put($bottomborder, qw/-to 1 15 16 16/);
- $p->put($bottomborder, qw/-to 15 1 16 15/);
- $p->put($color, qw/-to 1 1 15 15/);
-
- my $r = $TOP->Photo(qw/-width 16 -height 16/);
- $r->put(qw/black -to 0 0 16 2/);
- $r->put(qw/black -to 0 2 2 16/);
- $r->put(qw/black -to 2 14 16 16/);
- $r->put(qw/black -to 14 2 16 14/);
- $r->put($color , qw/-to 2 2 14 14/);
-
- $menu->entryconfigure($i, -columnbreak => 1) unless $i % 4;
- $menu->entryconfigure($i,
- -image => $p,
- -hidemargin => 1,
- -selectimage => $r,
- );
-
- } # forend all colors
-
- $menu->configure(-tearoff => 1);
-
-} # end menbut
-
-sub native_optionmenu {
-
- my($parent, $varref, $command, @optionvals) = @_;
-
- $$varref = $optionvals[0];
-
- my $mb = $parent->Menubutton(
- -textvariable => $varref,
- -indicatoron => 1,
- -relief => 'raised',
- -borderwidth => 2,
- -highlightthickness => 2,
- -anchor => 'c',
- -direction => 'flush',
- );
- my $menu = $mb->Menu(-tearoff => 0);
- $mb->configure(-menu => $menu);
-
- my $callback = ref($command) =~ /CODE/ ? [$command] : $command;
-
- foreach (@optionvals) {
- $menu->radiobutton(
- -label => $_,
- -variable => $varref,
- -command => [@$callback, $_],
- );
- }
-
- $mb;
-
-} # end native_optionmenu
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/menus.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/menus.pl
deleted file mode 100644
index 10fa7bfac89..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/menus.pl
+++ /dev/null
@@ -1,196 +0,0 @@
-# menus.pl
-
-use subs qw/menus_error/;
-use vars qw/$TOP/;
-
-sub menus {
-
- # This demonstration script creates a window with a bunch of menus
- # and cascaded menus using a menubar. A <<MenuSelect>> virtual event
- # tracks the active menu item.
-
- my ($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => ['', -wraplength => '5i'],
- -title => 'Menu Demonstration',
- -iconname => 'menus',
- );
-
- my $ws = $TOP->windowingsystem;
-
- my $text = ($ws eq 'classic' or $ws eq 'aqua') ?
- 'This window contains a menubar with cascaded menus. You can invoke entries with an accelerator by typing Command+x, where "x" is the character next to the command key symbol. The rightmost menu can be torn off into a palette by dragging outside of its bounds and releasing the mouse.' :
- 'This window contains a menubar with cascaded menus. You can post a menu from the keyboard by typing Alt+x, where "x" is the character underlined on the menu. You can then traverse among the menus using the arrow keys. When a menu is posted, you can invoke the current entry by typing space, or you can invoke any entry by typing its underlined character. If a menu entry has an accelerator, you can invoke the entry without posting the menu just by typing the accelerator. The rightmost menu can be torn off into a palette by selecting the first item in the menu.';
-
- $TOP->configure(-text => $text);
-
- my $toplevel = $TOP->toplevel; # get $TOP's Toplevel widget reference
- my $menubar = $toplevel->Menu(-type => 'menubar');
- $toplevel->configure(-menu => $menubar);
-
- my $modifier;
- if ( $ws eq 'classic' or $ws eq 'aqua') {
- $modifier = 'Command';
- } elsif ($Tk::platform eq 'windows') {
- $modifier = 'Control';
- } else {
- $modifier = 'Meta';
- }
-
- my $f = $menubar->cascade(-label => '~File', -tearoff => 0);
- $f->command(-label => 'Open ...', -command => [\&menus_error, 'Open'],
- -image => $toplevel->Getimage("openfile"), -compound => "left");
- $f->command(-label => 'New', -command => [\&menus_error, 'New'],
- -image => $toplevel->Getimage("file"), -compound => "left");
- $f->command(-label => 'Save', -command => [\&menus_error, 'Save']);
- $f->command(-label => 'Save As ...', -command => [\&menus_error, 'Save As']);
- $f->separator;
- $f->command(-label => 'Setup ...', -command => [\&menus_error, 'Setup']);
- $f->command(-label => 'Print ...', -command => [\&menus_error, 'Print']);
- $f->separator;
- $f->command(-label => 'Quit', -command => [$TOP => 'bell']);
-
- my $b = $menubar->cascade(-label => '~Basic', -tearoff => 0);
- $b->command(-label => 'Long entry that does nothing');
- my $label;
- foreach $label (qw/A B C D E F/) {
- $b->command(
- -label => "Print letter \"$label\"",
- -underline => 14,
- -accelerator => "$modifier+$label",
- -command => sub {print "$label\n"},
- );
- $TOP->bind("<$modifier-${label}>" => sub {print "$label\n"});
- }
- my $c = $menubar->cascade(-label => '~Cascades', -tearoff => 0);
- $c->command(
- -label => 'Print hello',
- -command => sub {print "Hello\n"},
- -accelerator => "$modifier+H",
- -underline => 6,
- );
- $TOP->bind("<$modifier-h>" => sub {print "Hello\n"});
- $c->command(
- -label => 'Print goodbye',
- -command => sub {print "Goodbye\n"},
- -accelerator => "$modifier+G",
- -underline => 6,
- );
- $TOP->bind("<$modifier-g>" => sub {print "Goodbye\n"});
- my $cc = $c->cascade(-label => '~Check buttons', -tearoff => 0);
-
- $cc->checkbutton(-label => 'Oil checked', -variable => \$OIL);
- $cc->checkbutton(-label => 'Transmission checked', -variable => \$TRANS);
- $cc->checkbutton(-label => 'Brakes checked', -variable => \$BRAKES);
- $cc->checkbutton(-label => 'Lights checked', -variable => \$LIGHTS);
- $cc->separator;
- $cc->command(
- -label => 'See current values',
- -command => [\&see_vars, $MW, [
- ['oil', \$OIL],
- ['trans', \$TRANS],
- ['brakes', \$BRAKES],
- ['lights', \$LIGHTS],
- ],
- ],
- );
- my $cc_menu = $cc->cget(-menu);
- $cc_menu->invoke(1);
- $cc_menu->invoke(3);
-
- my $rc = $c->cascade(-label => '~Radio buttons', -tearoff => 0);
-
- foreach $label (qw/10 14 18 24 32/) {
- $rc->radiobutton(
- -label => "$label point",
- -variable => \$POINT_SIZE,
- -value => $label,
- );
- }
- $rc->separator;
- foreach $label (qw/Roman Bold Italic/) {
- $rc->radiobutton(
- -label => $label,
- -variable => \$FONT_STYLE,
- -value => $label,
- );
- }
- $rc->separator;
- $rc->command(
- -label => 'See current values',
- -command => [\&see_vars, $MW, [
- ['point size', \$POINT_SIZE],
- ['font style', \$FONT_STYLE],
- ],
- ],
- );
- my $rc_menu = $rc->cget(-menu);
- $rc_menu->invoke(1);
- $rc_menu->invoke(7);
-
- my $i = $menubar->cascade(-label => '~Icons', -tearoff => 0);
- $i->command(
- -bitmap => '@'.Tk->findINC('demos/images/pattern'),
- -command => sub {
- $TOP->messageBox(
- -title => 'Bitmap Menu Entry',
- -message => 'The menu entry you invoked displays a bitmap rather than a text string. Other than this, it is just like any other menu entry.',
- -type => 'ok'),
- },
- -hidemargin => 1,
- );
- foreach $label (qw/info questhead error/) {
- $i->command(
- -bitmap => $label,
- -command => sub {print "You invoked the \"$label\" bitmap\n"},
- -hidemargin => 1,
- );
- }
- $i->cget(-menu)->entryconfigure(2, -columnbreak => 1);
-
- my $m = $menubar->cascade(-label => '~More', -tearoff => 0);
- foreach $label ('An entry', 'Another entry', 'Does nothing',
- 'Does almost nothing', 'Make life meaningful') {
- $m->command(
- -label => $label,
- -command => sub {print "You invoked \"$label\"\n"},
- );
- }
-
- my $k = $menubar->cascade(-label => 'C~olors');
- foreach $label (qw/red orange yellow green blue/) {
- $k->command(
- -label => $label,
- -background => $label,
- -command => sub {print "You invoked \"$label\"\n"},
- );
- }
-
- my $status_bar;
- $TOP->Label(
- qw/-relief sunken -borderwidth 1 -anchor w/,
- -font => 'Helvetica 10', -textvariable => \$status_bar)->
- pack(qw/-padx 2 -pady 2 -expand yes -fill both/);
- $menubar->bind('<<MenuSelect>>' => sub {
- $status_bar = undef;
- $status_bar = $_[0]->entrycget('active', -label);
- $TOP->idletasks;
- });
-
-} # end menus
-
-sub menus_error {
-
- # Generate a background error, which may even be displayed in a window if
- # using ErrorDialog.
-
- my($msg) = @_;
-
- $msg = "This is just a demo: no action has been defined for \"$msg\".";
- $TOP->BackTrace($msg);
-
-} # end menus_error
-
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/menus2.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/menus2.pl
deleted file mode 100644
index 632b786b524..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/menus2.pl
+++ /dev/null
@@ -1,216 +0,0 @@
-# menus2.pl
-
-use subs qw/menus_error2/;
-use vars qw/$TOP/;
-
-sub menus2 {
-
- # This demonstration script creates a window with a bunch of menus
- # and cascaded menus, but uses the unique Perl/Tk -menuitems way.
- # A <<MenuSelect>> virtual event tracks the active menu item.
-
- my ($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => ['', -wraplength => '5i'],
- -title => 'Menuitems Demonstration',
- -iconname => 'menus2',
- );
-
- my $ws = $TOP->windowingsystem;
-
- my $text = ($ws eq 'classic' or $ws eq 'aqua') ?
- 'This window contains a menubar with cascaded menus. You can invoke entries with an accelerator by typing Command+x, where "x" is the character next to the command key symbol. The rightmost menu can be torn off into a palette by dragging outside of its bounds and releasing the mouse.' :
- 'This window contains a menubar with cascaded menus. You can post a menu from the keyboard by typing Alt+x, where "x" is the character underlined on the menu. You can then traverse among the menus using the arrow keys. When a menu is posted, you can invoke the current entry by typing space, or you can invoke any entry by typing its underlined character. If a menu entry has an accelerator, you can invoke the entry without posting the menu just by typing the accelerator. The rightmost menu can be torn off into a palette by selecting the first item in the menu.';
-
- $TOP->configure(-text => $text);
-
- my $toplevel = $TOP->toplevel; # get $TOP's Toplevel widget reference
- my $menubar = $toplevel->Menu(-type => 'menubar');
- $toplevel->configure(-menu => $menubar);
-
- my $modifier;
- if ( $ws eq 'classic' or $ws eq 'aqua') {
- $modifier = 'Command';
- } elsif ($Tk::platform eq 'windows') {
- $modifier = 'Control';
- } else {
- $modifier = 'Meta';
- }
-
- my $f = $menubar->Cascade(qw/-label ~File -tearoff 0 -menuitems/ =>
- [
- [Button => 'Open ...', -command => [\&menus_error2, 'Open'],
- -image => $toplevel->Getimage("openfile"),
- -compound=> "left",
- ],
- [Button => 'New', -command => [\&menus_error2, 'New'],
- -image => $toplevel->Getimage("file"),
- -compound=> "left",
- ],
- [Button => 'Save', -command => [\&menus_error2, 'Save']],
- [Button => 'Save As ...', -command => [\&menus_error2, 'Save As']],
- [Separator => ''],
- [Button => 'Setup ...', -command => [\&menus_error2, 'Setup']],
- [Button => 'Print ...', -command => [\&menus_error2, 'Print']],
- [Separator => ''],
- [Button => 'Quit', -command => [$TOP => 'bell']],
- ],
- );
-
- my $b = $menubar->Cascade(qw/-label ~Basic -tearoff 0 -menuitems/ =>
- [
- [Button => 'Long entry that does nothing'],
- map (
- [Button => "Print letter \"~$_\"",
- -command => [sub {print "$_[0]\n"}, $_],
- -accelerator => "Meta+$_" ],
- ('a' .. 'g')
- ),
- ],
- );
-
- my $menu_cb = '~Check buttons';
- my $menu_rb = '~Radio buttons';
-
- my $c = $menubar->Cascade(qw/-label ~Cascades -tearoff 0 -menuitems/ =>
- [
- [Button => 'Print ~hello', -command => sub {print "Hello\n"},
- -accelerator => 'Control+a'],
- [Button => 'Print ~goodbye', -command => sub {print "Goodbye\n"},
- -accelerator => 'Control+b'],
- [Cascade => $menu_cb, -tearoff => 0, -menuitems =>
- [
- [Checkbutton => 'Oil checked', -variable => \$OIL],
- [Checkbutton => 'Transmission checked', -variable => \$TRANS],
- [Checkbutton => 'Brakes checked', -variable => \$BRAKES],
- [Checkbutton => 'Lights checked', -variable => \$LIGHTS],
- [Separator => ''],
- [Button => 'See current values', -command =>
- [\&see_vars, $TOP, [
- ['oil', \$OIL],
- ['trans', \$TRANS],
- ['brakes', \$BRAKES],
- ['lights', \$LIGHTS],
- ],
- ], # end see_vars
- ], # end button
- ], # end checkbutton menuitems
- ], # end checkbuttons cascade
- [Cascade => $menu_rb, -tearoff => 0, -menuitems =>
- [
- map (
- [Radiobutton => "$_ point", -variable => \$POINT_SIZE,
- -value => $_,
- ],
- (qw/10 14 18 24 32/),
- ),
- [Separator => ''],
- map (
- [Radiobutton => "$_", -variable => \$FONT_STYLE,
- -value => $_,
- ],
- (qw/Roman Bold Italic/),
- ),
- [Separator => ''],
- [Button => 'See current values', -command =>
- [\&see_vars, $TOP, [
- ['point size', \$POINT_SIZE],
- ['font style', \$FONT_STYLE],
- ],
- ], # end see_vars
- ], # end button
- ], # end radiobutton menuitems
- ], # end radiobuttons cascade
- ],
- );
-
- $TOP->bind('<Control-a>' => sub {print "Hello\n"});
- $TOP->bind('<Control-b>' => sub {print "Goodbye\n"});
-
- # Fetch the Cascades menu, and from that get the checkbutton and
- # radiobutton cascade menus and invoke a few menu items.
-
- my $cm = $c->cget(-menu);
- $menu_cb = substr $menu_cb, 1;
- my $cc = $cm->entrycget($menu_cb, -menu);
- $cc->invoke(1);
- $cc->invoke(3);
- $menu_rb = substr $menu_rb, 1;
- my $cr = $cm->entrycget($menu_rb, -menu);
- $cr->invoke(1);
- $cr->invoke(7);
-
- my $i = $menubar->Cascade(qw/-label ~Icons -tearoff 0 -menuitems/ =>
- [
- [Button => '', -bitmap => '@'.Tk->findINC('demos/images/pattern'),
- -command => sub {
- $TOP->messageBox(
- -title => 'Bitmap Menu Entry',
- -message => 'The menu entry you invoked displays a bitmap rather than a text string. Other than this, it is just like any other menu entry.',
- -type => 'ok'),
- },
- ],
- map (
- [Button => '', -bitmap => $_,
- -command =>
- [sub {print "You invoked the \"$_[0]\" bitmap\n"}, $_]],
- (qw/info questhead error/),
- ),
- ],
- );
- my $im = $i->cget(-menu);
- $im->entryconfigure(2, -columnbreak => 1);
-
- my $m = $menubar->Cascade(qw/-label ~More -tearoff 0 -menuitems/ =>
- [
- map (
- [Button => $_,
- -command =>
- [sub {print "You invoked \"$_[0]\"\n"}, $_]],
- ('An entry', 'Another entry', 'Does nothing',
- 'Does almost nothing', 'Make life meaningful'),
- ),
- ],
- );
-
- my $k = $menubar->cascade(qw/-label C~olors -tearoff 1 -menuitems/ =>
- [
- map (
- [Button => $_,
- -background => $_,
- -command =>
- [sub {print "You invoked \"$_[0]\"\n"}, $_]],
- (qw/red orange yellow green blue/),
- ),
- ],
- );
-
- my $status_bar;
- $TOP->Label(
- qw/-relief sunken -borderwidth 1 -anchor w/,
- -font => 'Helvetica 10', -textvariable => \$status_bar)->
- pack(qw/-padx 2 -pady 2 -expand yes -fill both/);
- $menubar->bind('<<MenuSelect>>' => sub {
- $status_bar = undef;
- $status_bar = $_[0]->entrycget('active', -label);
- $TOP->idletasks;
- });
-
-} # end menus2
-
-sub menus_error2 {
-
-
- # Generate a background error, which may even be displayed in a window if
- # using ErrorDialog.
-
- my($msg) = @_;
-
- $msg = "This is just a demo: no action has been defined for \"$msg\".";
- $TOP->BackTrace($msg);
-
-} # end menus_error
-
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/msgBox.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/msgBox.pl
deleted file mode 100644
index 4ac739519e8..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/msgBox.pl
+++ /dev/null
@@ -1,82 +0,0 @@
-# msgBox.pl
-
-use vars qw/$TOP/;
-
-sub msgBox {
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'Choose the icon and type option of the message box. Then press the "Message Box" button to see the message box.',
- -title => 'messageBox Demo',
- -iconname => 'messageBox',
- );
-
- my $upper = $TOP->Frame->pack;
- my $left = $upper->Frame;
- my $right = $upper->Frame;
- $left->pack(qw/-side left -expand yes -fill y -pady .5c -padx .5c/);
- $right->pack(qw/-side left -expand yes -fill y -pady .5c -padx .5c/);
-
- my $icon = $left->Label(qw/-text Icon/);
- my $lsep = $left->Frame(qw/-relief ridge -bd 1 -height 2/);
- $icon->pack(qw/-side top/);
- $lsep->pack(qw/-side top -fill x -expand no/);
-
- my $iconvar = 'info';
- foreach my $i (qw/error info question warning/) {
- $left->Radiobutton(-text => $i, -variable => \$iconvar, -value => $i,
- qw/-width 16 -anchor w -relief flat/)->pack(
- qw/-side top -pady 2 -anchor w -fill x/);
- }
-
-
- my $rl = $right->Label(qw/-text Type/);
- my $rsep = $right->Frame(qw/-relief ridge -bd 1 -height 2/);
- $rl->pack(qw/-side top/);
- $rsep->pack(qw/-side top -fill x -expand no/);
-
- my $typevar = 'OK';
- foreach my $t (qw/AbortRetryIgnore OK OKCancel RetryCancel YesNo YesNoCancel/) {
- $right->Radiobutton(-text => $t, -variable => \$typevar, -value => $t,
- qw/-relief flat -width 16 -anchor w/)->pack(
- qw/-side top -pady 2 -anchor w -fill x/);
- }
-
- {
- my $cbf = $TOP->Frame->pack(-fill => 'x', -padx => '.5c', -pady => 3);
- my $fd;
- my $fdb = $cbf->Radiobutton
- (-text => 'Tk::DialogBox',
- -variable => \$fd,
- -value => 'DialogBox',
- -command => sub { local($^W) = 0;
- *Tk::tk_messageBox = sub{ Tk::MessageBox('tk_messageBox', @_) };
- })->pack(-side => 'left');
- $cbf->Radiobutton
- (-text => 'Tk::MsgBox',
- -variable => \$fd,
- -value => 'MsgBox',
- -command => sub { local($^W) = 0;
- require Tk::MsgBox;
- Tk::MsgBox->import('as_default');
- })->pack(-side => 'left');
- $fdb->invoke;
- }
-
- my $show = $TOP->Button(-text => "Message Box",
- -command => [\&show_messageBox, \$iconvar, \$typevar]);
- $show->pack;
-
-} # end msgBox
-
-sub show_messageBox {
- my($iconvar, $typevar) = @_;
-
- my $button = $TOP->messageBox('-icon' => $$iconvar, -type => $$typevar,
- -title => 'Message',
- -message => "This is a \"$$typevar\" type messagebox with the \"$$iconvar\" icon");
-
- $TOP->messageBox(qw/-icon info -type OK -message/ => "You have selected \"$button\"");
-
-} # end show_messageBox
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/notebook.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/notebook.pl
deleted file mode 100644
index ed45ef83190..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/notebook.pl
+++ /dev/null
@@ -1,59 +0,0 @@
-# Notebook, selectable pages.
-
-use Tk;
-use Tk::DialogBox;
-use Tk::NoteBook;
-use Tk::LabEntry;
-
-my $name = "Rajappa Iyer";
-my $email = "rsi\@netcom.com";
-my $os = "Linux";
-
-use vars qw($top);
-
-$top = MainWindow->new;
-my $pb = $top->Button(-text => "Notebook", -command => \&donotebook);
-$pb->pack;
-MainLoop;
-
-
-my $f;
-
-sub donotebook {
- if (not defined $f) {
- # The current example uses a DialogBox, but you could just
- # as easily not use one... replace the following by
- # $n = $top->NoteBook(-ipadx => 6, -ipady => 6);
- # Of course, then you'd have to take care of the OK and Cancel
- # buttons yourself. :-)
- $f = $top->DialogBox(-title => "Personal Profile",
- -buttons => ["OK", "Cancel"]);
- my $n = $f->add('NoteBook', -ipadx => 6, -ipady => 6);
-
- my $address_p = $n->add("address", -label => "Address", -underline => 0);
- my $pref_p = $n->add("pref", -label => "Preferences", -underline => 0);
-
- $address_p->LabEntry(-label => "Name: ",
- -labelPack => [-side => "left", -anchor => "w"],
- -width => 20,
- -textvariable => \$name)->pack(-side => "top", -anchor => "nw");
- $address_p->LabEntry(-label => "Email Address:",
- -labelPack => [-side => "left", -anchor => "w"],
- -width => 50,
- -textvariable => \$email)->pack(-side => "top", -anchor => "nw");
- $pref_p->LabEntry(-label => "Operating System:",
- -labelPack => [-side => "left"],
- -width => 15,
- -textvariable => \$os)->pack(-side => "top", -anchor => "nw");
- $n->pack(-expand => "yes",
- -fill => "both",
- -padx => 5, -pady => 5,
- -side => "top");
-
- }
- my $result = $f->Show;
- if ($result =~ /OK/) {
- print "name = $name, email = $email, os = $os\n";
- }
-}
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/paned1.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/paned1.pl
deleted file mode 100644
index 4a988ddd6da..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/paned1.pl
+++ /dev/null
@@ -1,26 +0,0 @@
-# paned1.pl
-
-use vars qw/$TOP/;
-
-sub paned1 {
-
- # This demonstration script creates a toplevel window containing
- # a paned window that separates two windows horizontally.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'The sash between the two coloured windows below can be used to divide the area between them. Use the left mouse button to resize without redrawing by just moving the sash, and use the middle mouse button to resize opaquely (always redrawing the windows in each position.)',
- -title => 'Horizontal Paned Window Demonstration',
- -iconname => 'paned1',
- );
-
- my $pw = $TOP->Panedwindow;
- $pw->pack(qw/-side top -expand yes -fill both -pady 2 -padx 2m/);
-
- my $l1 = $pw->Label(-text => "This is the\nleft side", -background => 'yellow');
- my $l2 = $pw->Label(-text => "This is the\nright side", -background =>'cyan');
-
- $pw->add($l1, $l2);
-
-} # end paned1
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/paned2.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/paned2.pl
deleted file mode 100644
index 28ccf0ba4bf..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/paned2.pl
+++ /dev/null
@@ -1,65 +0,0 @@
-# paned2.pl
-
-use vars qw/$TOP/;
-
-sub paned2 {
-
- # This demonstration script creates a toplevel window containing
- # a paned window that separates two windows vertically.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'The sash between the two scrolled windows below can be used to divide the area between them. Use the left mouse button to resize without redrawing by just moving the sash, and use the middle mouse button to resize opaquely (always redrawing the windows in each position.)',
- -title => 'Vertical Paned Window Demonstration',
- -iconname => 'paned2',
- );
-
- my $pw = $TOP->Panedwindow(qw/-orient vertical/);
- $pw->pack(qw/-side top -expand yes -fill both -pady 2 -padx 2m/);
-
- my $paneList = [
- 'List of Tk Widgets', qw/
- button
- canvas
- checkbutton
- entry
- frame
- label
- labelframe
- listbox
- menu
- menubutton
- message
- panedwindow
- radiobutton
- scale
- scrollbar
- spinbox
- text
- toplevel
- /,
- ];
-
- my $f1 = $pw->Frame;
- my $lb = $f1->Listbox(-listvariable => $paneList);
- $lb->pack(qw/-fill both -expand 1/);
- my ($fg, $bg) = ($lb->cget(-foreground), $lb->cget(-background));
- $lb->itemconfigure(0,
- -background => $fg,
- -foreground => $bg,
- );
-
- my $f2 = $pw->Frame;
- my $t = $f2->Text(qw/-width 30 -wrap none/);
-
- $t->grid(qw/-sticky nsew/);
- $f2->gridColumnconfigure(qw/0 -weight 1/);
- $f2->gridRowconfigure(qw/0 -weight 1/);
- $t->insert('1.0', 'This is just a normal text widget');
-
- $pw->add($f1, $f2);
-
-} # end paned2
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/photo1.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/photo1.pl
deleted file mode 100644
index aed66103bb2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/photo1.pl
+++ /dev/null
@@ -1,30 +0,0 @@
-# photo1.pl
-
-use vars qw/$TOP/;
-
-sub photo1 {
-
- my($demo) = @_;
-
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'This demonstration displays, for two seconds, a picture of a teapot over a green background, then proceeeds to render transparent a 50 x 50 pixel area of the teapot so that the green background shows through.',
- -title => 'Transparent Pixels',
- -iconname => 'photo1',
- );
-
- my $l = $TOP->Label( qw/ -background green -width 300 -height 300 / )->pack;
-
- my $f1 = $TOP->Photo( -file => Tk->findINC( 'demos/images/teapot.ppm' ) );
- $l->configure( -image => $f1 );
- $TOP->idletasks;
- $TOP->after(2000);
-
- foreach my $x ( 50 .. 100 ) {
- foreach my $y ( 50 .. 100 ) {
- $f1->transparencySet( $x, $y, 1 );
- $f1->update;
- }
- }
-
-} # end photo1
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/photo2.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/photo2.pl
deleted file mode 100644
index d55d8210423..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/photo2.pl
+++ /dev/null
@@ -1,156 +0,0 @@
-# photo2.pl
-
-use vars qw/ $TOP $photo2_use_bg /;
-use strict;
-
-sub photo2 {
-
- my( $demo ) = @_;
-
- my $alpha; # transparency
- my( $dx, $dy ) = ( 0, 0 ); # delta offsets
- my $svar = 100; # Scale variable
- $photo2_use_bg = 0; # nz IFF a green background
-
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => [ "This demonstration illustrates compositing. Commonly, each pixel of a color image is represented by three color components, red, green and blue, each specifiying a relative percentage of the color \"white\", such that, when the components are combined, they produce a visible color. Here are a few samples of 8-bit RGB triplets and the visible colors they produce:\n
-(255, 255, 255) = white (000, 000, 000) = black\n(255, 000, 000) = red (000, 255, 000) = green (000, 000, 255) = blue\n\nAn additional transparency factor can be supplied that describes the importance of each pixel's RGB components when composited over another image. This transparency channel is called the Alpha channel. Although the Alpha channel is said to contain transparency information, in fact, it actually contains opacity information.\n\nIt is still possible to think in terms of transparency, although in this case the transparency is applied to the background image over which the current image is composited. The composited color is computed as:\n\n (image_RGB_component * alpha) + (background_RGB_component * (1.0 - alpha))", -wraplength => 640 ],
- -title => 'Alpha Channel Compositing',
- -iconname => 'photo2',
- );
-
- my $mw = $TOP;
- my $i1 = $mw->Photo( -file => Tk->findINC( 'demos/images/earth.gif' ) );
- my $i2 = $mw->Photo( -file => Tk->findINC( 'demos/images/earthris.gif' ) );
- my $i3 = $mw->Photo( qw/ -format png -width 320 -height 200 / );
-
- my $tf = $mw->Frame;
- $tf->Label( -image => $i2 )->pack( qw/ -side left / );
- $tf->Label( -image => $i1 )->pack( qw/ -side left / );
-
- my $bf = $mw->Frame;
- my $controls = $bf->Frame;
- my $results = $bf->Frame;
-
- $controls->pack( qw/ -side left -fill both -expand 1/ ) ;
- $results->pack( qw/ -side right/ );
-
- $controls->Label(
- -font => '9x15',
- -foreground => 'blue',
- -text => 'Left Image Options',
- )->pack;
- my $s = $controls->Scale(
- qw/
- -from 100.0
- -resolution 10.0
- -tickinterval 10.0
- -to 0.0
- /,
- -label => '% Opacity',
- -variable => \$svar,
- );
- $svar = 80;
-
- my $spacer = $controls->Frame( qw/ -borderwidth 2 -relief solid -width 5/ );
-
- my $rt = $controls->Label( -text => 'Background' );
- my $r = $controls->Frame;
- my $r1 = $r->Radiobutton(
- -anchor => 'w',
- -text => 'Right Image',
- -value => 0,
- -variable => \$photo2_use_bg,
- -width => 20,
- );
- my $r2 = $r->Radiobutton(
- -anchor => 'w',
- -text => 'The Color Green',
- -value => 1,
- -variable => \$photo2_use_bg,
- -width => 20,
- );
- $r2->pack( qw/ -side bottom/ );
- $r1->pack( qw/ -side bottom/ );
-
- my $b = $controls->Button(
- -command => [ \&photo2_blend, $i1, $i2, $i3, $dx, $dy, \$svar ],
- -text => 'Composite ==>>',
- );
-
- my $l = $results->Label( -image => $i3 );
-
- $tf->pack;
- $bf->pack( qw/-fill both -expand 1/ ) ;
- $b->pack( qw/ -side bottom -fill x/ );
- $s->pack( qw/ -side left -fill both -expand 1 / );
- $spacer->pack( qw/ -side left -fill y -expand 1 / );
- $rt->pack( qw/ -side top / );
- $r->pack( qw/ -side right / );
- $l->pack( qw/ -side right / );
-
-} # end photo2
-
-sub photo2_blend {
-
- my( $img1, $img2, $img3, $dx, $dy, $svar_ref ) = @_;
-
- my $a2 = $$svar_ref / 100.0;
- my $a1 = 1.0 - $a2;
-
- my $width1 = $img1->width;
- my $height1 = $img1->height;
- my $width2 = $img2->width;
- my $height2 = $img2->height;
-
- $img3->blank;
-
- my $x1 = $dx;
- my $x2 = 0;
-
- for ( my $i = 0; $i < $width1; $i++ ) {
- last if $i > $width2;
- my $y1 = $dy;
- my $y2 = 0;
-
- for ( my $j = 0; $j < $height1; $j++ ) {
- last if $j > $height2;
-
- # Skip if no pixel at this coordinate or if transparent. Else,
- # combine the proper percentage of each color component and
- # put the pixel into the third image.
-
- Tk::catch {
- if ( not $img2->transparencyGet( $x2, $y2 ) ) {
-
- my ( @c1 ) = $img1->get( $x1, $y1 );
- my ( @c2 ) = $img2->get( $x2, $y2 );
-
- # You can use a colored background rather than another
- # image to test alpha channels. Uncomment this line to
- # ignore the first image and force a green backround.
- @c1 = ( 0, 255, 0 ) if $photo2_use_bg;
-
- foreach my $c ( 0 .. 2 ) {
- $c1[$c] = $c1[$c] * $a1 + $c2[$c] * $a2;
- }
-
- my $color = sprintf( "#%02x%02x%02x", @c1[0 .. 2] );
- $img3->put( $color, -to => $x1, $y1 );
-
- } # ifend
- }; # catchend
-
- $y1++;
- $y2++;
-
- } # forend $j
-
- $img3->update;
- $x1++;
- $x2++;
-
- } # forend $i
-
-} # end photo2_blend
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/plot.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/plot.pl
deleted file mode 100644
index 1f7d3d03904..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/plot.pl
+++ /dev/null
@@ -1,28 +0,0 @@
-# plot.pl
-
-use Plot;
-use vars qw/$TOP/;
-
-sub plot {
-
- # Create a top-level window containing a canvas displaying a simple
- # graph with data points that can be dragged with the pointing device.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => "This window displays a canvas widget containing a simple 2-dimensional plot. You can doctor the data by dragging any of the points with mouse button 1.\n\nYou can also select a printable area with the mouse button 2.",
- -title => 'Plot Demonstration',
- -iconname => 'plot',
- );
-
- my $c = $TOP->Plot(
- -title_color => 'Brown',
- -inactive_highlight => 'Skyblue2',
- -active_highlight => 'red',
- );
- $c->pack(qw/-fill x/);
-
-} # end plot
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/progress.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/progress.pl
deleted file mode 100644
index 5875ba1d2b8..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/progress.pl
+++ /dev/null
@@ -1,46 +0,0 @@
-# ProgressBar - display various progress bars.
-
-use strict;
-use Tk;
-use Tk::ProgressBar;
-use Tk::Scale;
-
-my $mw = MainWindow->new;
-
-my $status_var = 0;
-
-my($fromv,$tov) = (0,100);
-foreach my $loop (0..1) {
- my $res = 0;
- my $blks = 10;
- my @p = qw(top bottom left right);
- foreach my $dir (qw(n s w e)) {
- $mw->ProgressBar(
- -borderwidth => 2,
- -relief => 'sunken',
- -width => 20,
- -padx => 2,
- -pady => 2,
- -variable => \$status_var,
- -colors => [0 => 'green', 50 => 'yellow' , 80 => 'red'],
- -resolution => $res,
- -blocks => $blks,
- -anchor => $dir,
- -from => $fromv,
- -to => $tov
- )->pack(
- -padx => 10,
- -pady => 10,
- -side => pop(@p),
- -fill => 'both',
- -expand => 1
- );
- $blks = abs($blks - ($res * 2));
- $res = abs(5 - $res);
- }
- ($fromv,$tov) = ($tov,$fromv);
-}
-
-$mw->Scale(-from => 0, -to => 100, -variable => \$status_var)->pack;
-
-MainLoop;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/puzzle.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/puzzle.pl
deleted file mode 100644
index 43910eca7e2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/puzzle.pl
+++ /dev/null
@@ -1,86 +0,0 @@
-# puzzle.pl
-
-use subs qw/puzzle_switch/;
-use vars qw/$TOP/;
-
-sub puzzle {
-
- # Create a top-level window containing a 15-puzzle game.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'A 15-puzzle appears below as a collection of buttons. Click on any of the pieces next to the space, and that piece will slide over the space. Continue this until the pieces are arranged in numerical order from upper-left to lower-right.',
- -title => '15-Puzzle Demonstration',
- -iconname => 'puzzle',
- );
-
- # Special trick: select a darker color for the space by creating a
- # scrollbar widget and using its trough color.
-
- my $s = $TOP->Scrollbar;
- my $frame = $TOP->Frame(
- -width => 120,
- -height => 120,
- -borderwidth => '2',
- -relief => 'sunken',
- -background => $s->cget(-troughcolor),
- );
- $frame->pack(qw/-side top -padx 1c -pady 1c/);
- $s->destroy;
-
- my(@order) = (3, 1, 6, 2, 5, 7, 15, 13, 4, 11, 8, 9, 14, 10, 12);
- my %xpos = ();
- my %ypos = ();
-
- my($i, $num, $frame_num);
- for ($i=0; $i<15; $i++) {
- $num = $order[$i];
- $xpos{$num} = ($i%4) * 0.25;
- $ypos{$num} = (int($i/4)) * 0.25;
- $frame_num = $frame->Button(
- -relief => 'raised',
- -text => $num,
- -highlightthickness => 0,
- );
- $frame_num->configure(
- -command => [\&puzzle_switch, $frame_num, $num, \%xpos, \%ypos],
- );
- $frame_num->place(
- -relx => $xpos{$num},
- -rely => $ypos{$num},
- -relwidth => 0.25,
- -relheight => 0.25,
- );
- } # forend all puzzle numbers
- $xpos{'space'} = 0.75;
- $ypos{'space'} = 0.75;
-
-} # end puzzle
-
-sub puzzle_switch {
-
- # Procedure invoked by buttons in the puzzle to resize the puzzle entries.
-
- my($w, $num, $xpos, $ypos) = @_;
-
- if ( (($ypos->{$num} >= ($ypos->{'space'} - 0.01)) &&
- ($ypos->{$num} <= ($ypos->{'space'} + 0.01))
- && ($xpos->{$num} >= ($xpos->{'space'} - 0.26)) &&
- ($xpos->{$num} <= ($xpos->{'space'} + 0.26)))
- || (($xpos->{$num} >= ($xpos->{'space'} - 0.01)) &&
- ($xpos->{$num} <= ($xpos->{'space'} + 0.01))
- && ($ypos->{$num} >= ($ypos->{'space'} - 0.26)) &&
- ($ypos->{$num} <= ($ypos->{'space'} + 0.26))) ) {
- my $tmp = $xpos->{'space'};
- $xpos->{'space'} = $xpos->{$num};
- $xpos->{$num} = $tmp;
- $tmp = $ypos->{'space'};
- $ypos->{'space'} = $ypos->{$num};
- $ypos->{$num} = $tmp;
- $w->place(-relx => $xpos->{$num}, -rely => $ypos->{$num});
- }
-
-} # end puzzle_switch
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/radio.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/radio.pl
deleted file mode 100644
index bae8c9daf3e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/radio.pl
+++ /dev/null
@@ -1,78 +0,0 @@
-# radio.pl
-
-use Tk::widgets qw/LabFrame/;
-use vars qw/$TOP/;
-
-sub radio {
-
- # Create a top-level window that displays a bunch of radio buttons.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => ['Two groups of radiobuttons are displayed below. If you click on a button then the button will become selected exclusively among all the buttons in its group. A Perl variable is associated with each group to indicate which of the group\'s buttons is selected. Click the "See Variables" button to see the current values of the variables.', qw/-wraplength 5i/],
- -title => 'Radiobutton Demonstration',
- -iconname => 'radio',
- );
-
- my $var = $TOP->Button(
- -text => 'See Variables',
- -command => [\&see_vars, $TOP, [
- ['point size', \$POINT_SIZE],
- ['color', \$COLOR],
- ['alignment', \$ALIGN],
- ]
- ],
- );
- $var->pack(qw/-side bottom -expand 1/);
-
- my @pl = qw/-side left -expand 1 -padx .5c -pady .5c/;
- my $left = $TOP->LabFrame(-label => 'Point Size')->pack(@pl);
- my $mid = $TOP->LabFrame(-label => 'Color')->pack(@pl);
- my $right = $TOP->LabFrame(-label => 'Alignment')->pack(@pl);
-
- @pl = qw/-side top -pady 2 -anchor w/;
- foreach my $p (10, 12, 18, 24) {
- $left->Radiobutton(
- -text => "Point Size $p",
- -variable => \$POINT_SIZE,
- -relief => 'flat',
- -value => $p,
- )->pack(@pl);
- }
-
- foreach my $c (qw/Red Green Blue Yellow Orange Purple/) {
- $mid->Radiobutton(
- -text => $c,
- -variable => \$COLOR,
- -relief => 'flat',
- -value => lc($c),
- -command => sub {$mid->configure(-foreground => $c)},
- )->pack(@pl);
- }
-
- my $l = $right->Label(qw/-text Label -bitmap questhead -compound left/);
- $l->configure(-width => $l->reqwidth, -compound => 'top');
- $l->configure(-height => $l->reqheight);
- my %w;
- foreach my $a (qw/Top Left Right Bottom/) {
- my $lower = lc $a;
- $w{$lower} = $right->Radiobutton(
- -text => $a,
- -variable => \$ALIGN,
- -relief => 'flat',
- -value => $lower,
- -indicatoron => 0,
- -width => 7,
- -command => sub {
- $l->configure(-compound => $ALIGN);
- },
- );
- }
- Tk::grid('x', $w{'top'});
- $w{'left'}->grid($l, $w{'right'});
- Tk::grid('x', $w{'bottom'});
-
-} # end radio
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/ruler.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/ruler.pl
deleted file mode 100644
index 83e946f06e5..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/ruler.pl
+++ /dev/null
@@ -1,146 +0,0 @@
-# ruler.pl
-
-use subs qw/ruler_make_tab ruler_move_tab ruler_new_tab ruler_release_tab
- ruler_select_tab/;
-use vars qw/$TOP/;
-
-sub ruler {
-
- # Create a canvas demonstration consisting of a ruler displays a ruler
- # with tab stops that can be set individually.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => ['This canvas widget shows a mock-up of a ruler. You can create tab stops by dragging them out of the well to the right of the ruler. You can also drag existing tab stops. If you drag a tab stop far enough up or down so that it turns dim, it will be deleted when you release the mouse button.', qw/-wraplength 5i/],
- -title => 'Ruler Demonstration',
- -iconname => 'ruler',
- );
-
- my $c = $TOP->Canvas(qw/-width 14.8c -height 2.5c/);
- $c->pack(qw/-side top -fill x/);
-
- my %rinfo; # ruler information hash
- $rinfo{grid} = '.25c';
- $rinfo{left} = $c->fpixels('1c');
- $rinfo{right} = $c->fpixels('13c');
- $rinfo{top} = $c->fpixels('1c');
- $rinfo{bottom} = $c->fpixels('1.5c');
- $rinfo{size} = $c->fpixels('.2c');
- $rinfo{normalStyle} = [qw/-fill black/];
- if ($TOP->depth > 1) {
- $rinfo{activeStyle} = [qw/-fill red -stipple/ => undef];
- $rinfo{deleteStyle} = [
- -fill => 'red',
- -stipple => '@'.Tk->findINC('demos/images/grey.25'),
- ];
- } else {
- $rinfo{activeStyle} = [qw/-fill black -stipple/ => undef];
- $rinfo{deleteStyle} = [
- -fill => 'black',
- -stipple => '@'.Tk->findINC('demos/images/grey.25'),
- ];
- }
-
- $c->create(qw/line 1c 0.5c 1c 1c 13c 1c 13c 0.5c -width 1/);
- my $i;
- for ($i = 0; $i < 12; $i++) {
- my $x = $i+1;
- $c->create('line', "$x.c", '1c', "$x.c", '0.6c', -width => 1);
- $c->create('line', "$x.25c", '1c', "$x.25c", '0.8c', -width => 1);
- $c->create('line', "$x.5c", '1c', "$x.5c", '0.7c', -width => 1);
- $c->create('line', "$x.75c", '1c', "$x.75c", '0.8c', -width => 1);
- $c->create('text', "$x.15c", '.75c',-text => $i, -anchor => 'sw');
- }
- $c->addtag('well', 'withtag', $c->create(qw/rect 13.2c 1c 13.8c 0.5c
- -outline black -fill/, ($c->configure(-bg))[4]));
- $c->addtag('well', 'withtag', ruler_make_tab($c, $c->pixels('13.5c'),
- $c->pixels('.65c'), \%rinfo));
-
- $c->bind('well', '<1>' => [\&ruler_new_tab, \%rinfo]);
- $c->bind('tab', '<1>' => [\&ruler_select_tab, \%rinfo]);
- $c->Tk::bind('<B1-Motion>' => [\&ruler_move_tab, \%rinfo]);
- $c->Tk::bind('<Any-ButtonRelease-1>', [\&ruler_release_tab, \%rinfo]);
-
-} # end ruler
-
-sub ruler_make_tab {
-
- my($c, $x, $y, $rinfo) = @_;
-
- return $c->create('polygon', $x, $y, $x+$rinfo->{size}, $y+$rinfo->{size},
- $x-$rinfo->{size}, $y+$rinfo->{size});
-
-} # end ruler_make_tab
-
-sub ruler_move_tab {
-
- my($c, $rinfo) = @_;
-
- return if not defined $c->find('withtag', 'active');
- my $e = $c->XEvent;
- my($x, $y) = ($e->x, $e->y);
- my $cx = $c->canvasx($x, $rinfo->{grid});
- my $cy = $c->canvasy($y);
- if ($cx < $rinfo->{left}) {
- $cx = $rinfo->{left};
- }
- if ($cx > $rinfo->{right}) {
- $cx = $rinfo->{right};
- }
- if (($cy >= $rinfo->{top}) and ($cy <= $rinfo->{bottom})) {
- $cy = $rinfo->{top} + 2;
- $c->itemconfigure('active', @{$rinfo->{activeStyle}});
- } else {
- $cy = $cy - $rinfo->{size} - 2;
- $c->itemconfigure('active', @{$rinfo->{deleteStyle}});
- }
- $c->move('active', $cx-$rinfo->{'x'}, $cy-$rinfo->{'y'});
- $rinfo->{'x'} = $cx;
- $rinfo->{'y'} = $cy;
-
-} # end ruler_move_tab
-
-sub ruler_new_tab {
-
- my($c, $rinfo) = @_;
-
- my $e = $c->XEvent;
- my($x, $y) = ($e->x, $e->y);
- $c->addtag('active', 'withtag', ruler_make_tab($c, $x, $y, $rinfo));
- $c->addtag('tab', 'withtag', 'active');
- $rinfo->{'x'} = $x;
- $rinfo->{'y'} = $y;
- ruler_move_tab($c, $rinfo);
-
-} # end ruler_new_tab
-
-sub ruler_release_tab {
-
- my($c, $rinfo) = @_;
-
- return if not defined $c->find('withtag', 'active');
- if ($rinfo->{'y'} != $rinfo->{top} + 2) {
- $c->delete('active');
- } else {
- $c->itemconfigure('active', @{$rinfo->{normalStyle}});
- $c->dtag('active');
- }
-
-} # end ruler_release_tab
-
-sub ruler_select_tab {
-
- my($c, $rinfo) = @_;
-
- my $e = $c->XEvent;
- my($x, $y) = ($e->x, $e->y);
- $rinfo->{'x'} = $c->canvasx($x, $rinfo->{grid});
- $rinfo->{'y'} = $rinfo->{top} + 2;
- $c->addtag('active', 'withtag', 'current');
- $c->itemconfigure('active', @{$rinfo->{activeStyle}});
- $c->raise('active');
-
-} # end ruler_select_tab
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/sayings.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/sayings.pl
deleted file mode 100644
index cd9ec5bd898..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/sayings.pl
+++ /dev/null
@@ -1,48 +0,0 @@
-# sayings.pl
-
-use vars qw/$TOP/;
-
-sub sayings {
-
- # Create a top-level window containing a listbox with a bunch of
- # well-known sayings. The listbox can be scrolled or scanned in
- # two dimensions.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'The listbox below contains a collection of well-known sayings. You can scan the list using either of the scrollbars or by dragging in the listbox window with button 2 pressed.',
- -title => 'Listbox Demonstration (well-known sayings)',
- -iconname => 'sayings',
- );
-
- my $list = $TOP->Scrolled(qw/Listbox -width 20 -height 10 -setgrid 1
- -scrollbars se/);
- $list->pack(qw/-expand yes -fill y/);
- $list->focus;
-
- $list->insert(0,
- 'Waste not, want not',
- 'Early to bed and early to rise makes a man healthy, wealthy, and wise',
- 'Ask not what your country can do for you, ask what you can do for your country',
- 'I shall return',
- 'NOT',
- 'A picture is worth a thousand words',
- 'User interfaces are hard to build',
- 'Thou shalt not steal',
- 'A penny for your thoughts',
- 'Fool me once, shame on you; fool me twice, shame on me',
- 'Every cloud has a silver lining',
- 'Where there\'s smoke there\'s fire',
- 'It takes one to know one',
- 'Take this job and shove it',
- 'Up a creek without a paddle',
- 'I\'m mad as hell and I\'m not going to take it any more',
- 'An apple a day keeps the doctor away',
- 'Don\'t look a gift horse in the mouth');
-
- $list->activate(0);
-
-} # end sayings
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/search.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/search.pl
deleted file mode 100644
index ddc42213a0f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/search.pl
+++ /dev/null
@@ -1,177 +0,0 @@
-# search.pl
-
-use Tk::LabEntry;
-use subs qw/search_flash_matches search_load_file search_text/;
-use vars qw/$TOP/;
-
-sub search {
-
- # Create a top-level window with a text widget that allows you to load a
- # file and highlight all instances of a given string. A LabEntry widget
- # is used to collect the file name and search string.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text =>'',
- -title => 'Text Demonstration - Search and Highlight',
- -iconname => 'search',
- );
-
- my $file_name = '';
- my $file = $TOP->Frame;
- my $fn = $file->LabEntry(-label => 'File Name: ', -width => 40,
- -labelPack => [qw/-side left -anchor w/],
- -textvariable => \$file_name)->pack(qw/-side left/);
- $fn->Subwidget('entry')->focus;
- my $fn_button = $file->Button(-text => 'Load File');
- $fn_button->pack(qw/-side left -pady 5 -padx 10/);
-
- my $search_string = '';
- my $kind = 'exact';
- my $string = $TOP->Frame;
- my $ss = $string->LabEntry(-label => 'Search string:', -width => 40,
- -labelPack => [qw/-side left -anchor w/],
- -textvariable => \$search_string)->pack(qw/-side left/);
- my $ss_button = $string->Button(-text => 'Highlight');
- $ss_button->pack(qw/-side left -pady 5 -padx 10/);
-
- my $text = $TOP->Scrolled(qw/Text -setgrid true -scrollbars e/);
-
- my $subframe = $TOP->Frame;
- my $exact = $subframe->Radiobutton(-text => 'Exact match',
- -variable => \$kind,
- -value => 'exact');
- my $regexp = $subframe->Radiobutton(-text => 'Regular expression',
- -variable => \$kind,
- -value => 'regexp');
- $exact->pack(qw/-side left/, -fill => 'x');
- $regexp->pack(qw/-side right/, -fill => 'x');
-
- $file->pack(qw/-side top -fill x/);
- $string->pack(qw/-side top -fill x/);
- $subframe->pack(qw/-side top -fill x/);
- $text->pack(qw/-expand yes -fill both/);
-
- my $command = sub {search_load_file $text, \$file_name, $ss};
- $fn_button->configure(-command => $command);
- $fn->bind('<Return>' => $command);
-
- $command = sub {search_text $text, \$search_string, 'search', $kind};
- $ss_button->configure(-command => $command);
- $ss->bind('<Return>' => $command);
-
- # Set up display styles for text highlighting.
-
- if ($TOP->depth > 1) {
- search_flash_matches $text,
- ['configure', 'search',
- -background => '#ce5555', -foreground => 'white'], 800,
- ['configure', 'search',
- -background => undef, -foreground => undef], 200;
- } else {
- search_flash_matches $text,
- ['configure', 'search',
- -background => 'black', -foreground => 'white'], 800,
- ['configure', 'search',
- -background => undef, -foreground => undef], 200;
- }
-
- $text->insert('0.0', 'This window demonstrates how to use the tagging facilities in text
-widgets to implement a searching mechanism. First, type a file name
-in the top entry, then type <Return> or click on "Load File". Then
-type a string in the lower entry and type <Return> or click on
-"Highlight". This will cause all of the instances of the string to
-be tagged with the tag "search", and it will arrange for the tag\'s
-display attributes to change to make all of the strings blink.');
-
- $text->mark(qw/set insert 0.0/);
-
-} # end search
-
-sub search_flash_matches {
-
- # The procedure below is invoked repeatedly to invoke two commands at
- # periodic intervals. It normally reschedules itself after each execution
- # but if an error occurs (e.g. because the window was deleted) then it
- # doesn't reschedule itself.
- # Arguments:
- #
- # w - Text widget reference.
- # cmd1 - Reference to a list of tag options.
- # sleep1 - Ms to sleep after executing cmd1 before executing cmd2.
- # cmd2 - Reference to a list of tag options.
- # sleep2 - Ms to sleep after executing cmd2 before executing cmd1 again.
-
- my($w, $cmd1, $sleep1, $cmd2, $sleep2) = @_;
-
- $w->tag(@{$cmd1});
- $w->after($sleep1,
- [\&search_flash_matches, $w, $cmd2, $sleep2, $cmd1, $sleep1]);
-
-} # end search_flash_matches
-
-sub search_load_file {
-
- # The utility procedure below loads a file into a text widget, discarding
- # the previous contents of the widget. Tags for the old widget are not
- # affected, however.
- # Arguments:
- #
- # w - The window into which to load the file. Must be a text widget.
- # file - Reference to the name of the file to load. Must be readable.
- # e - Entry widget to get next focus.
-
- my ($w, $file, $e) = @_;
-
- my ($buf, $bytes) = ('', 0);
-
- if (not open(F, "<$$file")) {
- $MW->Dialog(
- -title => 'File Not Found',
- -text => "$!: '$$file'",
- -bitmap => 'error',
- )->Show;
- return;
- }
- $w->delete(qw/1.0 end/);
- $bytes = read F, $buf, 10_000; # after all, it IS just an example
- $w->insert('end', $buf);
- if ($bytes == 10000) {
- $w->insert('end', "\n\n**************** File truncated at 10,000 bytes! ****************\n");
- }
- close F;
-
- $e->Subwidget('entry')->focus;
-
-} # end search_load_file
-
-sub search_text {
-
- # The utility procedure below searches for all instances of a given
- # string in a text widget and applies a given tag to each instance found.
- # Arguments:
- #
- # w - The window in which to search. Must be a text widget.
- # string - Reference to the string to search for. The search is done
- # using exact matching only; no special characters.
- # tag - Tag to apply to each instance of a matching string.
-
- my($w, $string, $tag, $kind) = @_;
-
- return unless ref($string) && length($$string);
-
- $w->tagRemove($tag, qw/0.0 end/);
- my($current, $length) = ('1.0', 0);
-
- while (1) {
- $current = $w->search(-count => \$length, "-$kind", $$string, $current, 'end');
- last if not $current;
- warn "Posn=$current count=$length\n",
- $w->tagAdd($tag, $current, "$current + $length char");
- $current = $w->index("$current + $length char");
- }
-
-} # end search_text
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/showVars.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/showVars.pl
deleted file mode 100644
index 0130ccd153b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/showVars.pl
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-sub showVars {
-
- # Create a top-level window that displays a bunch of global variable values
- # and keeps the display up-to-date even when the variables change value.
- #
- # Arguments:
- # w - Perl widget reference of parent.
- # vars - Name of variable(s) to monitor.
-
- $showVars->destroy if Exists($showVars);
- $showVars = shift->Toplevel();
- my $w = $showVars;
- dpos($w);
- $w->title('Variable values');
- $w->iconname('Variables');
-
- my $w_title = $w->Label(-text => 'Variable values:', -width => 20, -anchor, 'center',
- -font => '-Adobe-helvetica-medium-r-normal--*-180-*-*-*-*-*-*');
- $w_title->pack(-fill => 'x');
- my $i;
- foreach $i (@_) {
- my $w_i = $w->Frame();
- my $w_i_name = $w_i->Label(-text => "$i: ");
- my $w_i_value = $w_i->Label(-textvariable => \${$i});
- $w_i_name->pack(-side => 'left');
- $w_i_value->pack(-side => 'left');
- $w_i->pack(-side => 'top', -anchor => 'w');
- }
- $w->Button(-text => 'OK', -command => [$w => 'destroy'])->
- pack(-side => 'bottom', -pady => 2);
-
-} # end showVars
-
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/slide.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/slide.pl
deleted file mode 100644
index 7bd31a0b369..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/slide.pl
+++ /dev/null
@@ -1,178 +0,0 @@
-# slide.pl
-
-$Tk::SlideSwitch::VERSION = '1.1';
-
-package Tk::SlideSwitch;
-
-use Tk;
-use Tk::widgets qw/Label Scale/;
-use base qw/Tk::Frame/;
-use strict;
-
-Construct Tk::Widget 'SlideSwitch';
-
-sub Populate {
-
- my($self, $args) = @_;
-
- $self->SUPER::Populate($args);
-
- my $ll = $self->Label->pack(-side => 'left');
- my $sl = $self->Scale->pack(-side => 'left');
- my $rl = $self->Label->pack(-side => 'left');
-
- $self->ConfigSpecs(
- -command => [$sl, qw/command Command /],
- -from => [$sl, qw/from From 0/],
- -highlightthickness => [$sl,
- qw/highlightThickness HighlightThickness 0/],
- -length => [$sl, qw/length Length 30/],
- -llabel => [qw/METHOD llabel Llabel /],
- -orient => [$sl, qw/orient Orient horizontal/],
- -rlabel => [qw/METHOD rlabel Rlabel /],
- -showvalue => [$sl, qw/showValue ShowValue 0/],
- -sliderlength => [$sl, qw/sliderLength SliderLength 15/],
- -sliderrelief => [$sl, qw/sliderRelief SliderRelief raised/],
- -to => [$sl, qw/to To 1/],
- -troughcolor => [$sl, qw/troughColor TroughColor /],
- -width => [$sl, qw/width Width 8/],
- -variable => [$sl, qw/variable Variable /],
- 'DEFAULT' => [$ll, $rl],
- );
-
- $self->{ll} = $ll;
- $self->{sl} = $sl;
- $self->{rl} = $rl;
-
- $self->bind('<Configure>' => sub {
- my ($self) = @_;
- my $orient = $self->cget(-orient);
- return if $orient eq 'horizontal';
- my ($ll, $sl, $rl) = ($self->{ll}, $self->{sl}, $self->{rl});
- $ll->packForget;
- $sl->packForget;
- $rl->packForget;
- $ll->pack;
- $sl->pack;
- $rl->pack;
- });
-
-} # end Populate
-
-# Private methods and subroutines.
-
-sub llabel {
- my ($self, $args) = @_;
- $self->{ll}->configure(@$args);
-} # end llabel
-
-sub rlabel {
- my ($self, $args) = @_;
- $self->{rl}->configure(@$args);
-} # end rlabel
-
-1;
-
-package main;
-
-use vars qw / $TOP /;
-use strict;
-
-sub slide {
-
- my( $demo ) = @_;
-
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => "This demonstration creates a new composite SlideSwitch widget that can be either on or off. The widget is really a customized Scale widget.",
- -title => 'A binary sliding switch',
- -iconname => 'slide',
- );
-
- my $mw = $TOP;
-
- my $sl = $mw->SlideSwitch(
- -bg => 'gray',
- -orient => 'horizontal',
- -command => sub {print "Switch value is @_\n"},
- -llabel => [-text => 'OFF', -foreground => 'blue'],
- -rlabel => [-text => 'ON', -foreground => 'blue'],
- -troughcolor => 'tan',
- )->pack(qw/-side left -expand 1/);
-
-} # end slide
-
-__END__
-
-=head1 NAME
-
-Tk::SlideSwitch - a 2 position horizontal or vertical switch.
-
-=head1 SYNOPSIS
-
- use Tk::SlideSwitch;
-
- my $sl = $frame1->SlideSwitch(
- -bg => 'gray',
- -orient => 'horizontal',
- -command => [$self => 'on'],
- -llabel => [-text => 'OFF', -foreground => 'blue'],
- -rlabel => [-text => 'ON', -foreground => 'blue'],
- -troughcolor => 'tan',
- )->pack(qw/-side left -expand 1/);
-
-=head1 DESCRIPTION
-
-Tk::SlideSwitch is a Frame based composite mega-widget featuring a binary Scale
-widget surrounded by two Label widgets. The Scale's value can be either 0 or
-1. The Labels are positioned to the left and right of the Scale if its
-orientation is horizontal, else on the top and bottom of the Scale.
-
-=head1 OPTIONS
-
-In addition to all Scale options, the following option/value pairs are
-also supported:
-
-=over 4
-
-=item B<-llabel>
-
-A reference to an array of left (or top) Label configuration options.
-
-=item B<-rlabel>
-
-A reference to an array of right (or bottom) Label configuration options.
-
-=back
-
-=head1 METHODS
-
-There are no special methods.
-
-=head1 ADVERTISED WIDGETS
-
-Component subwidgets can be accessed via the B<Subwidget> method.
-This mega widget has no advertised subwidgets.
-
-=head1 EXAMPLE
-
-See Synopsis.
-
-=head1 BUGS
-
-This widget uses only the pack geometry manager.
-
-=head1 AUTHOR
-
-sol0@Lehigh.EDU
-
-Copyright (C) 2002 - 2003, Steve Lidie. All rights reserved.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 KEYWORDS
-
-SlideSwitch, Scale
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/spin.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/spin.pl
deleted file mode 100644
index f9b8c05a891..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/spin.pl
+++ /dev/null
@@ -1,36 +0,0 @@
-# spin.pl
-
-use vars qw/$TOP/;
-
-sub spin {
-
- # This demonstration script creates several spinbox widgets.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => ['Three different spin-boxes are displayed below. You can add characters by pointing, clicking and typing. The normal Motif editing characters are supported, along with many Emacs bindings. For example, Backspace and Control-h delete the character to the left of the insertion cursor and Delete and Control-d delete the chararacter to the right of the insertion cursor. For values that are too large to fit in the window all at once, you can scan through the value by dragging with mouse button2 pressed. Note that the first spin-box will only permit you to type in integers, and the third selects from a list of Australian cities.',
- -wraplength => '5i'],
- -title => 'Spinbox Demonstration',
- -iconname => 'spin',
- );
-
- my $s1 = $TOP->Spinbox(
- qw/-from 1 -to 10 -width 10 -validate key/,
- -validatecommand => sub {
- my ($proposed, $changes, $current, $index, $type) = @_;
- return not $proposed =~ m/[^\d]/g;
- },
- );
- my $s2 = $TOP->Spinbox(
- qw/-from 0 -to 3 -increment .5 -format %05.2f -width 10/,
- );
- my $s3 = $TOP->Spinbox(
- -values => [qw/Canberra Sydney Melbourne Perth Adelaide Brisbane Hobart
- Darwin/, 'Alice Springs'],
- -width => 10,
- );
-
- $s1->pack($s2, $s3, qw/-side top -pady 5 -padx 10/);
-
-} # end spin.pl
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/states.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/states.pl
deleted file mode 100644
index b9b350df952..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/states.pl
+++ /dev/null
@@ -1,28 +0,0 @@
-# states.pl
-
-use vars qw/$TOP/;
-
-sub states {
-
- # Create a top-level window that displays a listbox with the names of the
- # 50 states.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'A listbox containing the 50 states is displayed below, along with a scrollbar. You can scan the list either using the scrollbar or by scanning. To scan, press button 2 in the widget and drag up or down.',
- -title => 'Listbox Demonstration (50 states)',
- -iconname => 'states',
- );
-
- my $list = $TOP->Scrolled(qw/Listbox -setgrid 1 -height 12 -scrollbars e/);
- $list->pack(qw/-side left -expand yes -fill both/);
- $list->focus;
-
- $list->insert(0, qw/Alabama Alaska Arizona Arkansas California Colorado Connecticut Delaware Florida Georgia Hawaii Idaho Illinois Indiana Iowa Kansas Kentucky Louisiana Maine Maryland Massachusetts Michigan Minnesota Mississippi Missouri Montana Nebraska Nevada/, 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota', qw/Ohio Oklahoma Oregon Pennsylvania/, 'Rhode Island', 'South Carolina', 'South Dakota', qw/Tennessee Texas Utah Vermont Virginia Washington/, 'West Virginia', 'Wisconsin', 'Wyoming');
-
- $list->activate(0);
-
-} # end states
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/style.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/style.pl
deleted file mode 100644
index d7fd82112ea..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/style.pl
+++ /dev/null
@@ -1,154 +0,0 @@
-# style.pl
-
-use vars qw/$TOP/;
-
-sub style {
-
- # Create a top-level window with a text widget that demonstrates
- # the various display styles that are available in texts.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text =>'',
- -title => 'Text Demonstration - Display Styles',
- -iconname => 'style',
- );
-
- eval { # eval, in case fonts already exist
- $TOP->fontCreate(qw/C_small -family courier -size 10/);
- $TOP->fontCreate(qw/C_big -family courier -size 14 -weight bold/);
- $TOP->fontCreate(qw/C_vbig -family helvetica -size 24 -weight bold/);
- $TOP->fontCreate(qw/C_bold -family courier -size 12 -weight bold
- -slant italic/);
- };
-
- my $t = $TOP->Scrolled(qw/Text -setgrid true -width 70 -height 32
- -font normal -wrap word -scrollbars e/);
- $t->pack(qw/-expand yes -fill both/);
-
- # Set up display styles.
-
- $t->tag(qw/configure bold -font C_bold/);
- $t->tag(qw/configure big -font C_big/);
- $t->tag(qw/configure verybig -font C_vbig/);
- if ($TOP->depth > 1) {
- $t->tag(qw/configure color1 -background/ => '#a0b7ce');
- $t->tag(qw/configure color2 -foreground red/);
- $t->tag(qw/configure raised -relief raised -borderwidth 1/);
- $t->tag(qw/configure sunken -relief sunken -borderwidth 1/);
- } else {
- $t->tag(qw/configure color1 -background black -foreground white/);
- $t->tag(qw/configure color2 -background black -foreground white/);
- $t->tag(qw/configure raised -background white -relief raised -bd 1/);
- $t->tag(qw/configure sunken -background white -relief sunken -bd 1/);
- }
- $t->tag(qw/configure bgstipple -background black -borderwidth 0
- -bgstipple gray12/);
- $t->tag(qw/configure fgstipple -fgstipple gray50/);
- $t->tag(qw/configure underline -underline on/);
- $t->tag(qw/configure overstrike -overstrike on/);
- $t->tag(qw/configure right -justify right/);
- $t->tag(qw/configure center -justify center/);
- $t->tag(qw/configure super -offset 4p -font C_small/);
- $t->tag(qw/configure sub -offset -2p -font C_small/);
- $t->tag(qw/configure margins -lmargin1 12m -lmargin2 6m -rmargin 10m/);
- $t->tag(qw/configure spacing -spacing1 10p -spacing2 2p
- -lmargin1 12m -lmargin2 6m -rmargin 10m/);
-
- $t->insert('0.0', 'Text widgets like this one allow you to display ' .
- 'information in a variety of styles. Display styles are ' .
- 'controlled using a mechanism called ');
- $t->insert('insert', 'tags', 'bold');
- $t->insert('insert', '. Tags are just textual names that you can apply ' .
- 'to one or more ranges of characters within a text widget. ' .
- 'You can configure tags with various display styles. If ' .
- 'you do this, then the tagged characters will be displayed ' .
- 'with the styles you chose. The available display styles ' .
- 'are: ');
- $t->insert('insert', "\n\n1. Font.", 'big');
- $t->insert('insert', ' You can choose any X font, ');
- $t->insert('insert', 'large', 'verybig');
- $t->insert('insert', ' or small.');
- $t->insert('insert', "\n\n2. Color.", 'big');
- $t->insert('insert', ' You can change either the ');
- $t->insert('insert', 'background', 'color1');
- $t->insert('insert', ' or ');
- $t->insert('insert', 'foreground', 'color2');
- $t->insert('insert', "\ncolor, or ");
- $t->insert('insert', 'both', ['color1', 'color2']);
- $t->insert('insert', '.');
- $t->insert('insert', "\n\n3. Stippling.", 'big');
- $t->insert('insert', ' You can cause either the ');
- $t->insert('insert', 'background', 'bgstipple');
- $t->insert('insert', ' or ');
- $t->insert('insert', 'foreground', 'fgstipple');
- $t->insert('insert', "\ninformation to be drawn with a stipple fill instead of a solid fill.");
- $t->insert('insert', "\n\n4. Underlining.", 'big');
- $t->insert('insert', ' You can ');
- $t->insert('insert', 'underline', 'underline');
- $t->insert('insert', ' ranges of text.');
- $t->insert('insert', "\n\n5. Overstrikes.", 'big');
- $t->insert('insert', " You can ");
- $t->insert('insert', "draw lines through", 'overstrike');
- $t->insert('insert', " ranges of text.");
- $t->insert('insert', "\n\n6. 3-D effects.", ' big');
- $t->insert('insert', " You can arrange for the background to be drawn ");
- $t->insert('insert', 'with a border that makes characters appear either ');
- $t->insert('insert', 'raised', 'raised');
- $t->insert('insert', ' or ');
- $t->insert('insert', 'sunken', 'sunken');
- $t->insert('insert', '.');
- $t->insert('insert', "\n\n7. Justification.", 'big');
- $t->insert('insert', " You can arrange for lines to be displayed\n");
- $t->insert('insert', "left-justified,\n");
- $t->insert('insert', "right-justified, or\n", 'right');
- $t->insert('insert', "centered.", 'center');
- $t->insert('insert', "\n\n8. Superscripts and subscripts." , 'big');
- $t->insert('insert', " You can control the vertical ");
- $t->insert('insert', "position of text to generate superscript effects " .
- "like 10");
- $t->insert('insert', "n", 'super');
- $t->insert('insert', " or subscript effects like X");
- $t->insert('insert', "i", 'sub');
- $t->insert('insert', ".");
- $t->insert('insert', "\n\n9. Margins.", 'big');
- $t->insert('insert', " You can control the amount of extra space left");
- $t->insert('insert', " on\neach side of the text:\n");
- $t->insert('insert', "This paragraph is an example of the use of ", 'margins');
- $t->insert('insert', "margins. It consists of a single line of text ", 'margins');
- $t->insert('insert', "that wraps around on the screen. There are two ", 'margins');
- $t->insert('insert', "separate left margin values, one for the first ", 'margins');
- $t->insert('insert', "display line associated with the text line, ", 'margins');
- $t->insert('insert', "and one for the subsequent display lines, which ", 'margins');
- $t->insert('insert', "occur because of wrapping. There is also a ", 'margins');
- $t->insert('insert', "separate specification for the right margin, ", 'margins');
- $t->insert('insert', "which is used to choose wrap points for lines.", 'margins');
-
- $t->insert('insert', "\n\n10. Spacing.", 'big');
- $t->insert('insert', " You can control the spacing of lines with three ");
- $t->insert('insert', "separate parameters. \"Spacing1\" tells how much ");
- $t->insert('insert', "extra space to leave\nabove a line, \"spacing3\" ");
- $t->insert('insert', "tells how much space to leave below a line,\nand ");
- $t->insert('insert', "if a text line wraps, \"spacing2\" tells how much ");
- $t->insert('insert', "space to leave\nbetween the display lines that ");
- $t->insert('insert', "make up the text line.\n");
- $t->insert('insert', "These indented paragraphs illustrate how spacing ", 'spacing');
- $t->insert('insert', "can be used. Each paragraph is actually a ", 'spacing');
- $t->insert('insert', "single line in the text widget, which is ", 'spacing');
- $t->insert('insert', "word-wrapped by the widget.\n", 'spacing');
- $t->insert('insert', "Spacing1 is set to 10 points for this text, ", 'spacing');
- $t->insert('insert', "which results in relatively large gaps between ", 'spacing');
- $t->insert('insert', "the paragraphs. Spacing2 is set to 2 points, ", 'spacing');
- $t->insert('insert', "which results in just a bit of extra space ", 'spacing');
- $t->insert('insert', "within a pararaph. Spacing3 isn't used ", 'spacing');
- $t->insert('insert', "in this example.\n", 'spacing');
- $t->insert('insert', "To see where the space is, select ranges of ", 'spacing');
- $t->insert('insert', "text within these paragraphs. The selection ", 'spacing');
- $t->insert('insert', "highlight will cover the extra space.", 'spacing');
-
- $t->mark(qw/set insert 0.0/);
-
-} # end style
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/texts.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/texts.pl
deleted file mode 100644
index 3a2dc0115d8..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/texts.pl
+++ /dev/null
@@ -1,71 +0,0 @@
-# texts.pl
-
-use vars qw/$TOP/;
-
-sub texts {
-
- # Create a top-level window that displays a basic text widget.
-
- my ($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => '',
- -title => 'Text Demonstration - Basic Facilities',
- -iconname => 'texts',
- );
-
- my $t = $TOP->Scrolled(qw/Text -relief sunken -borderwidth 2 -setgrid true
- -height 30 -scrollbars e/);
- $t->pack(qw/-expand yes -fill both/);
-
- $t->insert('0.0', 'This window is a text widget. It displays one or more lines of text
-and allows you to edit the text. Here is a summary of the things you
-can do to a text widget:
-
-1. Scrolling. Use the scrollbar to adjust the view in the text window.
-
-2. Scanning. Press mouse button 2 in the text window and drag up or down.
-This will drag the text at high speed to allow you to scan its contents.
-
-3. Insert text. Press mouse button 1 to set the insertion cursor, then
-type text. What you type will be added to the widget.
-
-4. Select. Press mouse button 1 and drag to select a range of characters.
-Once you\'ve released the button, you can adjust the selection by pressing
-button 1 with the shift key down. This will reset the end of the
-selection nearest the mouse cursor and you can drag that end of the
-selection by dragging the mouse before releasing the mouse button.
-You can double-click to select whole words or triple-click to select
-whole lines.
-
-5. Delete and replace. To delete text, select the characters you\'d like
-to delete and type Backspace or Delete. Alternatively, you can type new
-text, in which case it will replace the selected text.
-
-6. Copy the selection. To copy the selection into this window, select
-what you want to copy (either here or in another application), then
-click button 2 to copy the selection to the point of the mouse cursor.
-
-7. Edit. Text widgets support the standard Motif editing characters
-plus many Emacs editing characters. Backspace and Control-h erase the
-character to the left of the insertion cursor. Delete and Control-d
-erase the character to the right of the insertion cursor. Meta-backspace
-deletes the word to the left of the insertion cursor, and Meta-d deletes
-the word to the right of the insertion cursor. Control-k deletes from
-the insertion cursor to the end of the line, or it deletes the newline
-character if that is the only thing left on the line. Control-o opens
-a new line by inserting a newline character to the right of the insertion
-cursor. Control-t transposes the two characters on either side of the
-insertion cursor.
-
-7. Resize the window. This widget has been configured with the "setGrid"
-option on, so that if you resize the window it will always resize to an
-even number of characters high and wide. Also, if you make the window
-narrow you can see that long lines automatically wrap around onto
-additional lines so that all the information is always visible.');
-
- $t->mark(qw/set insert 0.0/);
-
-} # end texts
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/trace1.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/trace1.pl
deleted file mode 100644
index eba655c7ba0..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/trace1.pl
+++ /dev/null
@@ -1,49 +0,0 @@
-# trace1.pl
-
-use Tk::widgets qw/ Trace /;
-use vars qw/ $TOP /;
-use strict;
-
-sub trace1 {
-
- my( $demo ) = @_;
-
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => "This demonstration animates an analog display as you move the Scale's slider.",
- -title => 'Move a meter tied to a variable',
- -iconname => 'trace1',
- );
-
- my $mw = $TOP;
- my $v; # variable to trace
-
- my $c = $mw->Canvas(qw/-width 200 -height 110 -bd 2 -relief sunken/)->grid;
- $c->createLine(qw/ 100 100 10 100 -tag meter -arrow last -width 5/);
- my $s = $mw->Scale(qw/-orient h -from 0 -to 100 -variable/ => \$v)->grid;
- $mw->Label(-text => 'Slide Me')->grid;
-
- # Trace $v when written. The callback is supplied three explicit arguments:
- # the index if an array or hash, else undef, the proposed new value, and the
- # trace operation (rwu) for read, write, undef, respectively. Additionally,
- # we pass the Canvas and Scale widget references.
-
- $mw->traceVariable(\$v, 'w' => [\&trace1_update_meter, $c, $s]);
-
-} # end trace1
-
-sub trace1_update_meter {
-
- my( $index, $value, $op, $c, $s ) = @_;
-
- return if $op eq 'u';
-
- my($min, $max) = ($s->cget(-from), $s->cget(-to));
- my $pos = $value / abs($max - $min);
- my $pi = 3.1415926;
- my $x = 100.0 - 90.0 * (cos( $pos * $pi ));
- my $y = 100.0 - 90.0 * (sin( $pos * $pi ));
- $c->coords(qw/meter 100 100/, $x, $y);
- return $value;
-
- } # end trace1_update_meter
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/trace2.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/trace2.pl
deleted file mode 100644
index 9d7c38806d5..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/trace2.pl
+++ /dev/null
@@ -1,188 +0,0 @@
-# trace2.pl
-
-$Tk::TraceText::VERSION = '1.0';
-
-package Tk::TraceText;
-
-use Tk::widgets qw/ Trace /;
-use base qw/ Tk::Derived Tk::Text /;
-use strict;
-
-Construct Tk::Widget 'TraceText';
-
-sub Populate {
-
- my( $self, $args ) = @_;
-
- $self->SUPER::Populate( $args );
-
- $self->ConfigSpecs(
- -textvariable => [ 'METHOD', 'textVariable', 'TextVariable', undef ],
- );
-
- $self->OnDestroy( sub {
- my $vref = $self->{_vref};
- $self->traceVdelete ( $vref ) if defined $vref;
- } );
-
-} # end Populate
-
-# Private methods.
-
-sub insdel {
-
- my( $self, $sub, @args ) = @_;
-
- $self->{_busy} = 1;
- $self->$sub( @args );
- my $vref = $self->{_vref};
- $$vref = $self->get( qw/1.0 end/ );
- $self->{_busy} = 0;
-
-} # end insedel
-
-sub textvariable {
-
- my ( $self, $vref ) = @_;
-
- $self->traceVariable( $vref, 'w', [ \&tracew => $self, $vref ] );
- $self->{_vref} = $vref;
-
-} # end textvariable
-
-sub tracew {
-
- my ( $index, $value, $op, $self, $vref ) = @_;
-
- return unless defined $self; # if app is being destroyed
- return if $self->{_busy};
-
- if ( $op eq 'w' ) {
- $self->delete( qw/1.0 end/ );
- $self->insert( '1.0', $value );
- } elsif ( $op eq 'r' ) {
- } elsif ( $op eq 'u' ) {
- $self->traceVdelete ( $vref );
- }
-
-} # end tracew
-
-# Overridden methods.
-
-sub delete {
-
- my ( $self, @args ) = @_;
-
- $self->insdel( 'SUPER::delete', @args )
-
-} # end delete
-
-sub insert {
-
- my ( $self, @args ) = @_;
-
- $self->insdel( 'SUPER::insert', @args );
-
-} # end insert
-
-1;
-
-package main;
-
-use Tk::widgets qw/ Trace /;
-use vars qw / $TOP /;
-use strict;
-
-sub trace2 {
-
- my( $demo ) = @_;
-
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => "This demonstration derives a new Text widget whose contents are modified using a normal Perl variable.",
- -title => 'Contents of a Text widget tied to a variable',
- -iconname => 'trace2',
- );
-
- my $mw = $TOP;
- my $tt = $mw->Scrolled( 'TraceText', -textvariable => \my $frog )->grid;
- $tt->focus;
-
- $mw->traceVariable( \$frog, 'wu', [ \&trace2_tracefrog, $mw, \$frog ] );
-
- $frog = "Frogs lacking lipophores are blue.";
-
-} # end trace2
-
-sub trace2_tracefrog {
-
- my( $index, $value, $op ) = @_;
-
- print "Final " if $op eq 'u';
- print "User trace: $value";
- return $value;
-
-}
-
-__END__
-
-=head1 NAME
-
-Tk::TraceText - Text contents defined by a traced variable.
-
-=for pm Tk/TraceText.pm
-
-=for category Text
-
-=head1 SYNOPSIS
-
- $tt = $parent->TraceText(-option => value, ... );
-
-=head1 DESCRIPTION
-
-Create a new B<TraceText> widget that is derived from the standard B<Text>
-widget. Because it inherits all the base options and methods it behaves
-just like a B<Text> widget. Additionally, B<TraceText> adds a -textvariable
-option, which is a reference to a Perl scalar that defines the contents of
-the widget.
-
-Based on the Tcl/Tk TracedText "overridden widget" by Kevin Kenny.
-
-=over 4
-
-=item B<-textvariable>
-
-A scalar reference. The value of the variable defines the contents of the
-TraceText widget. Using the keyboard to insert or delete text changes the
-value of the variable, and changing the variable alters the contents of the
-TraceText widget.
-
-=back
-
-=head1 METHODS
-
-Standard Text widget methods.
-
-=head1 ADVERTISED SUBWIDGETS
-
-None.
-
-=head1 EXAMPLE
-
- my $tt = $mw->TraceText( -textvariable => \$scalar );
-
-=head1 AUTHOR
-
-Stephen.O.Lidie@Lehigh.EDU
-
-Copyright (C) 2003 - 2004, Steve Lidie. All rights reserved.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=head1 KEYWORDS
-
-text, trace
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/transtile.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/transtile.pl
deleted file mode 100644
index 55e7130a1af..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/transtile.pl
+++ /dev/null
@@ -1,113 +0,0 @@
-# transtile.pl
-
-use vars qw/$TOP/;
-
-sub transtile {
-
- # Create a top-level window that demonstrates tiles
- # and transparent stuff.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => ['This window demonstrates tiles and transparent images. The Canvas has a yellow background, which displays for one second before it\'s overlayed with a tile of tiny camels. On top of the tile layer are three non-transparent images that obscure the tile. Canvas items such as ovals, rectangles and polygons cannot react to bound events unless they are filled with a color - move the cursor over the blue circle and note that it reacts to <Motion> events. The transparent circle outlined in red to the left of the blue circle does not react to <Motion> events in its interior because it\'s transparent, or unfilled. If you need a transparent item that also reacts to events then add a transparent stipple. The bottom red circle is both transparent and aware of events. Finally, a blue lattice (a transparent GIF that\'s been Base64 encoded so it can be embedded in the source) is overlayed on top of everything, anchored to the southeast corner of the Canvas.', -wraplength => '8i'],
- -title => 'Tile and Transparent Demonstration',
- -iconname => 'transtile',
- );
-
- my $tile = $TOP->Photo(-file =>Tk->findINC('Camel.xpm'));
-
- # A tiled Canvas - the tile overlays the background color.
-
- my $c = $TOP->Canvas(
- -background => 'yellow',
- -width => 300,
- -height => 250,
- -relief => 'raised',
- -borderwidth => 3,
- )->grid;
- $c->update;
- $c->after(1000);
- $c->configure(-tile => $tile);
-
- # These images are not transparent, thus they obscure the tile
- # or background.
-
- my($x, $y) = (30, 30);
- foreach (qw/Xcamel.gif anim.gif icon.gif/) {
- $c->createImage($x, $y, -image => $TOP->Photo(-file => Tk->findINC($_)));
- $x += 50;
- $y += 50;
- }
-
- # Transparent Canvas items do not generate events.
-
- my $cb = sub {
- print "Over circle, args = @_!\n";
- };
-
- # Not filled (transparent), no events.
-
- my $o1 = $c->createOval(25, 25, 100, 100,
- -outline => 'red',
- );
- $c->bind($o1, '<Motion>' => $cb);
-
- # Filled (non-transparent), but with events.
-
- my $o2 = $c->createOval(155, 25, 225, 100,
- -outline => 'red',
- -fill => 'blue',
- );
- $c->bind($o2, '<Motion>' => $cb);
-
- # Transparently filled, with events.
-
- my $o3 = $c->createOval(25, 120, 100, 195,
- -outline => 'red',
- -fill => 'blue',
- -stipple => 'transparent',
- );
- $c->bind($o3, '<Motion>' => $cb);
-
- # A transparent GIF overlaying everything.
-
- $c->createImage(300, 300,
- -image => $TOP->Photo(-data => &encoded_gif, -format => 'gif'),
- -anchor => 'se',
- );
-
-} # end transtile
-
-sub encoded_gif {
-
- # A Base64 encoded transparent GIF.
-
- my $gif = <<'END_OF_GIF';
-R0lGODlhyADIAIAAAB0A/////yH+Dk1hZGUgd2l0aCBHSU1QACH5BAEKAAEALAAAAADIAMgAAAL+
-jI+py+0Po5y02ouz3rz7D4biSJbmiabqCgJuC7DZK9Ly5+Zdrt8Sb+MAYzDUkKgZ+n5AXNOjLB03
-R6TQmpxeo9seSTsDZ3ldctk7fo7EGC5VnQ6+zWd5CB6mx9Ft/N6p92WXBejXt4Z1trTI4MboM/i4
-6ChZabkUeam5ydnp+QkaKjpKWmp6ipqqusoKldjqWvOqSQmbx3ebSTiH+yZrZHhR+9c3bGFcgcwb
-KMy2PBtR5cpc3DsdTCF9Tc3Efez8rUysWOgNId6NPaGNaJ6t3uweDV2t+y5/9SuLf4M+z2/rXSh7
-zQIaPIgwocKFDBs6fAgxosSJjehRHGhxB7z+ZBm/6StSrmMukec2piN4kuQDfyUBhjPZ0tpLlP9k
-cnTZgN0dcDdhOtBZz2ZKmj95asRZkWVOo+uYDlW5FOk9oU2lLlBa1KoCrFGp5gu5DWpXoit9zmNF
-lslHJxfbun0LN67cuXTr2r2LN6/evbvspj2oVcbfnoP7iR17uGK7xCl37iy81WxWxkm9xpM8GexR
-ygi4ToZc1vNVzJVBJzDdmXRmKapHBz5tGVNsgSZEV3aMsRXq0Xx7+/4NPLjw4cSLGz+OPLmK3b5f
-p3COinlN6QGo21bsCfp05tqrt3bNGfZm6ojDe+/e/fzs1eNqXz/wXjwM6PHTh17fdZT2+N7+BeMv
-Wop1/ykHCnkEHohgggouyGCDDj4oCITRDQiYeYyYx598oti3wnfqkcfhPhRqeIJTMT02Im+a8fJc
-fRamll6MKRqQ4WcGFjLfjKmFBYyHJb5Io4+s3QgekAHq6J5gcBEpYZNOPglllFJO2R+V2SFpZY5M
-NvlijVXqZ+SWMHKHpXq45Yjjj0J+OV6XZfLnZZFijsRjnc+oGeI1K26WpntrRojmmbG0WOaRehmZ
-ZaKKLspoo44+CmmkksyZZIJ54kkmoAX+2aGQHF5qJylAzQRknCIKuthrXsYJYpiFRkbfq/aBSo4g
-+yEaJIqUBgXMW6YGCiGtGj25q6TGHov+bLLKLstss2ziOWhc0gn7YXif4morhpyWxtmqrz57Z7hD
-flcjq1jC+S2sM8rI7rnuLucporNyWuypmy7mbK/57stvv/7+C3DAAvd1r4S/9gnSXAe3ieKG2MJn
-Im21MvwJqKPeoqeWpbpp8Z8Z3thuqCJOuy0iGmf8o70UlfswvL6m22+9A89Mc80231yXzKLKiyvJ
-OieMMp/AtjcsphZ+7LGP3oqJ9K3oxSvgpRdfNrTQRe+p67uoRlsxzEFSm9ycC+/7M85mn4122mqv
-zfZXbSOWM89rUez2hE4j2bTS3zK9Zt5kvmcuk1NP5dzghFlLb8lf6+2i39q2KnXfks8fCzTCIx89
-ude56Vv51W9/Dnrooo9Oeummn4566g4UAAA7
-END_OF_GIF
-
- return $gif;
-
-} # end encoded_gif
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/twind.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/twind.pl
deleted file mode 100644
index 5b67fa1d60a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/twind.pl
+++ /dev/null
@@ -1,186 +0,0 @@
-# twind.pl
-
-use Plot;
-use subs qw/twind_create_plot twind_delete_plot twind_restore_bg/;
-use vars qw/$TOP/;
-
-sub twind {
-
- # Create a top-level window with a text widget that demonstrates the
- # use of embedded windows in Text widgets.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => '',
- -title => 'Text Demonstration - Embedded Windows',
- -iconname => 'twind',
- );
-
- # By default, when you create a Scrolled instance of a Perl/Tk widget
- # the scrollbars are always displayed; that is, they are required. But
- # you can have optional scrollbars as well, specified via the -scrollbars
- # specifier. So, assume scrollbars can be postioned 'nsew' (north, south
- # east or west), or 'se' for southeast, etcetera. You specify 'required'
- # or 'optional' using an 'r' or 'o' character, respectively, preceeding
- # the scrollbar position. So the following Scrolled widget has an
- # optional scrollbar at the bottom of the text widget and a required
- # scrollbar positioned to the right.
- #
- # Optional scrollbars are only displayed if they are required, so, the
- # the southern scrollbar is displayed IFF -wrap => none.
-
- my $t = $TOP->Scrolled(qw/Text -setgrid true -width 70 -height 35
- -wrap word -highlightthickness 0 -borderwidth 0 -scrollbars osre
- -font/ => $FONT)->pack;
-
- $t->tag(qw/configure center -justify center -spacing1 5m -spacing3 5m/);
- $t->tag(qw/configure buttons -lmargin1 1c -lmargin2 1c -rmargin 1c
- -spacing1 3m -spacing2 0 -spacing3 0/);
-
- my $t_on = $t->Button(
- -text => 'Turn On',
- -command => [$t => qw/configure -wrap none/],
- -cursor => 'top_left_arrow',
- );
- my $t_off = $t->Button(
- -text => 'Turn Off',
- -command => [$t => qw/configure -wrap word/],
- -cursor => 'top_left_arrow',
- );
-
- my $t_click = $t->Button(
- -text => 'Click Here',
- -command => [\&twind_create_plot, $t],
- -cursor => 'top_left_arrow',
- );
- my $t_delete = $t->Button(
- -text => 'Delete',
- -command => [\&twind_delete_plot, $t],
- -cursor => 'top_left_arrow',
- );
-
- $t->insert('end', "A text widget can contain other widgets embedded ");
- $t->insert('end', "in it. These are called ");
- $t->insert('end', "\"embedded windows\"");
- $t->insert('end', ", and they can consist of arbitrary widgets. ");
- $t->insert('end', "For example, here are two embedded button ");
- $t->insert('end', "widgets. You can click on the first button to ");
- $t->window('create', 'end', -window => $t_on);
- $t->insert('end', " horizontal scrolling, which also turns off ");
- $t->insert('end', "word wrapping. Or, you can click on the second ");
- $t->insert('end', "button to\n");
- $t->window('create', 'end', -window => $t_off);
- $t->insert('end', " horizontal scrolling and turn back on word ");
- $t->insert('end', "wrapping.\n\n");
-
- $t->insert('end', "Or, here is another example. If you ");
- $t->window('create', 'end', -window => $t_click);
- $t->insert('end', " a canvas displaying an x-y plot will appear ");
- $t->insert('end', "right here.");
- $t->mark('set', 'plot', 'insert');
- $t->mark('gravity', 'plot', 'left');
- $t->insert('end', " You can drag the data points around with the ");
- $t->insert('end', "mouse, or you can click here to ");
- $t->window('create', 'end', -window => $t_delete);
- $t->insert('end', " the plot again.\n\n");
-
- $t->insert('end', "You may also find it useful to put embedded windows");
- $t->insert('end', " in a text without any actual text. In this case ");
- $t->insert('end', "the text widget acts like a geometry manager. For ");
- $t->insert('end', "example, here is a collection of buttons laid out ");
- $t->insert('end', "neatly into rows by the text widget. These buttons");
- $t->insert('end', " can be used to change the background color of the ");
- $t->insert('end', "text widget (\"Default\" restores the color to ");
- $t->insert('end', "its default). If you click on the button labeled ");
- $t->insert('end', "\"Short\", it changes to a longer string so that ");
- $t->insert('end', "you can see how the text widget automatically ");
- $t->insert('end', "changes the layout. Click on the button again ");
- $t->insert('end', "to restore the short string.\n");
-
- my $t_default = $t->Button(
- -text => 'Default',
- -command => [\&twind_restore_bg, $t],
- -cursor => 'top_left_arrow',
- );
- $t->window('create', 'end', -window => $t_default, -padx => 3);
- my $embToggle = 'Short';
- my $t_toggle = $t->Checkbutton(
- -textvariable => \$embToggle,
- -indicatoron => 0,
- -variable => \$embToggle,
- -onvalue => 'A much longer string',
- -offvalue => 'Short',
- -cursor => 'top_left_arrow',
- );
- $t->window('create', 'end', -window => $t_toggle,
- -padx => 3, -pady => 2);
- my($i, $color) = (1, '');
- foreach $color (qw(AntiqueWhite3 Bisque1 Bisque2 Bisque3 Bisque4
- SlateBlue3 RoyalBlue1 SteelBlue2 DeepSkyBlue3
- LightBlue1 DarkSlateGray1 Aquamarine2 DarkSeaGreen2
- SeaGreen1 Yellow1 IndianRed1 IndianRed2 Tan1 Tan4)) {
- my $col = $t->Button(
- -text => "$color",
- -cursor => 'top_left_arrow',
- );
- $col->configure(-command => sub {
- $t->configure(-background => $color);
- });
- $t->window('create', 'end', -window => $col,
- -padx => 3, -pady => 2);
- $i++;
- }
- $t->tag('add', 'buttons', $t_default, 'end');
-
-} # end twind
-
-sub twind_create_plot {
-
- # We are required to create a new Plot object everytime since embedded
- # widgets are destroyed when their tag is deleted. (Too bad.)
-
- my($text) = @_;
-
- if (not Exists($twind::plot)) {
- $twind::plot = $text->Plot(
- -title_color => 'Brown',
- -inactive_highlight => 'Skyblue2',
- -active_highlight => 'red',
- );
-
- while ($text->get('plot') =~ / |\t|\n/) {
- $text->delete('plot');
- }
- $text->insert('plot', "\n");
- $text->window('create', 'plot', -window => $twind::plot);
- $text->tag('add', 'center', 'plot');
- $text->insert('plot', "\n");
- } # ifend
-
-} # end twind_create_plot
-
-sub twind_delete_plot {
-
- my($text) = @_;
-
- if (Exists($twind::plot)) {
- $text->delete($twind::plot);
- while ($text->get('plot') =~ / |\t|\n/) {
- $text->delete('plot');
- }
- $text->insert('plot', ' ');
- }
-
-} # end twind_delete_plot
-
-sub twind_restore_bg {
-
- my($text) = @_;
-
- $text->configure(-background =>
- ($text->Subwidget('text')->configure(-background))[3]);
-
-} # end twind_restore_bg
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/unicodeout.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/unicodeout.pl
deleted file mode 100644
index b898810fd6d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/unicodeout.pl
+++ /dev/null
@@ -1,64 +0,0 @@
-# unicodeout.pl
-
-use vars qw/$TOP/;
-use subs qw/unicodeadd/;
-
-sub unicodeout {
-
- # This demonstration script shows how you can produce output (in label
- # widgets) using many different alphabets.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'This is a sample of Perl/Tk\'s support for languages that use non-Western character sets. However, what you will actually seebelow depends largely on what character sets you have installed, and what you see for characters that are not present varies greatly between platforms as well. The strings are written in Perl Unicode characters using the \\x{XXXX} escape sequence so as to do so in a portable fashion.',
- -title => 'Unicode Label Demonstration',
- -iconname => 'unicodeout',
- );
-
- my $unicode_wait = $TOP->Label(
- -text => 'Please wait while loading fonts...',
- -font => 'Helvetica 12 italic',
- )->pack;
- $TOP->update;
-
- # Processing when some characters are missing might take a while, so make
- # sure we're displaying something in the meantime.
-
- $TOP->Busy;
-
- unicodeadd $TOP, 'Arabic',
- "\x{FE94}\x{FEF4}\x{FE91}\x{FEAE}\x{FECC}\x{FEDF}\x{FE8D}\x{FE94}\x{FEE4}\x{FEE0}\x{FEDC}\x{FEDF}\x{FE8D}";
- unicodeadd $TOP, "Trad. Chinese", "\x{4E2D}\x{570B}\x{7684}\x{6F22}\x{5B57}";
- unicodeadd $TOP, "Simpl. Chinese", "\x{6C49}\x{8BED}";
- unicodeadd $TOP, 'Greek',
- "\x{0395}\x{03BB}\x{03BB}\x{03B7}\x{03BD}\x{03B9}\x{03BA}\x{03AE}\x{03B3}\x{03BB}\x{03CE}\x{03C3}\x{03C3}\x{03B1}";
- unicodeadd $TOP, 'Hebrew',
- "\x{05DD}\x{05D9}\x{05DC}\x{05E9}\x{05D5}\x{05E8}\x{05D9}\x{05DC}\x{05D9}\x{05D0}\x{05E8}\x{05E9}\x{05D9}";
- unicodeadd $TOP, 'Japanese',
- "\x{65E5}\x{672C}\x{8A9E}\x{306E}\x{3072}\x{3089}\x{304C}\x{306A}\x{6F22}\x{5B57}\x{3068}\x{30AB}\x{30BF}\x{30AB}\x{30CA}";
- unicodeadd $TOP, 'Korean',
- "\x{B300}\x{D55C}\x{BBFC}\x{AD6D}\x{C758}\x{D55C}\x{AE00}";
- unicodeadd $TOP, 'Russian',
- "\x{0420}\x{0443}\x{0441}\x{0441}\x{043A}\x{0438}\x{0439}\x{044F}\x{0437}\x{044B}\x{043A}";
-
- # We're done processing, so change things back to normal running.
-
- $unicode_wait->destroy;
- $TOP->Unbusy;
-
-} # end unicodeout
-
-sub unicodeadd {
-
- my ($w, $language, @args) = @_;
-
- my $sample = join('', @args);
- my $l1 = $w->Label(-text => "$language: ", qw/-anchor nw -pady 0/);
- my $l2 = $w->Label(-text => $sample, qw/-anchor nw -width 30 -pady 0/);
- $l1->grid($l1, $l2, qw/-sticky ew -pady 0/);
- $l1->gridConfigure(qw/-padx 1m/);
-
-} # end unicodeadd
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/virtevents1.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/virtevents1.pl
deleted file mode 100644
index 8e2e85106f8..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/virtevents1.pl
+++ /dev/null
@@ -1,59 +0,0 @@
-use strict;
-
-sub virtevents1 {
-
- my( $demo ) = @_;
-
- my $mw = $MW->WidgetDemo(
- -name => $demo,
- -text => [ "This demonstration shows how you can use keysyms (keyboard symbols) to programmatically synthesize events that simulate a person typing on the keyboard. To learn about keyboard keysyms, run to previous demonstration, \"Show keyboard symbols\".
-
-A virtual event named <<pTkRules>> is defined that is activated by pressing the \"caps lock\" key (go ahead, press \"caps lock\"). A callback is bound to that virtual event - the callback synthesizes physicals events that \"type\" into the Entry widget displayed below. Pressing the \"Synthesize\" Button calls eventGenerate(), which synthesizes the virtual event <<pTkRules>> directly.
-
-Warning: it's easy to make this demonstration recurse indefinitely because synthesized physical events behave just like the real thing. So, it's possible for the <<pTkRules>> callback to eventGenerate() the keysym that activates the <<pTkRules>> virtual event, which invokes the <<pTkRules>> callback to eventGenerate() the keysym that activates the <<pTkRules>> virtual event, which ...", -wraplength => '6i' ],
- -title => 'Simulate KeyPress events.',
- -iconname => 'vevents1',
- );
-
- # Define a virtual event - <<pTkRules>> - that is activated when
- # the physical event - pressing the "caps lock" key - occurs.
-
- $mw->eventAdd( qw/ <<pTkRules>> <Caps_Lock> / );
-
- # Alphabetics are their own keysyms. The %keysyms hash maps other
- # characters to their keysym string. To see the keysyms associated
- # with keyboard characters run the previous widget demonstration.
-
- my %keysyms = (' ' => 'space', '/' => 'slash', '!' => 'exclam' );
-
- # Create an Entry widget for a person or this program to type into.
- # The Button explicitly generates the virtual event.
-
- my $e = $mw->Entry->pack;
- my $b = $mw->Button(
- -command => sub { $mw->eventGenerate( '<<pTkRules>>' ) },
- -text => 'Synthesize <<pTkRules>>',
- )->pack;
-
- # Now bind the virtual event to a callback that "types" for us.
-
- $mw->bind( qw/ <<pTkRules>> / => sub {
-
- # This subroutine is invoked whenever the "caps lock" key is
- # pressed or the virtual event <<pTkRules>> is programatically
- # generated via eventGenerate.
-
- $e->focus;
- $mw->update;
- my $string_to_type = 'Perl/Tk rules!';
-
- foreach ( split '', $string_to_type ) {
- $_ = $keysyms{$_} if exists $keysyms{$_};
- $e->eventGenerate( '<KeyPress>', -keysym => $_ );
- $mw->idletasks;
- $mw->after( 100 );
-
- } # end sub type characters
- } );
-
-} # end virtevents1
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/vscale.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/vscale.pl
deleted file mode 100644
index 1f7d076e93d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widget_lib/vscale.pl
+++ /dev/null
@@ -1,48 +0,0 @@
-# vscale.pl
-
-use subs qw/vscale_height/;
-use vars qw/$TOP/;
-
-sub vscale {
-
- # Create a top-level window that displays a vertical scale.
-
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'An arrow and a vertical scale are displayed below. If you click or drag mouse button 1 in the scale, you can change the size of the arrow.',
- -title => 'Vertical Scale Demonstration',
- -iconname => 'vscale',
- );
-
- my $frame = $TOP->Frame(-borderwidth => 10)->pack;
-
- my $canvas = $frame->Canvas(
- qw/-width 50 -height 50 -borderwidth 0 -highlightthickness 0/);
- $canvas->createPolygon(qw/0 0 1 1 2 2 -fill SeaGreen3 -tags poly/);
- $canvas->createLine(qw/0 0 1 1 2 2 0 0 -fill black -tags line/);
-
- my $scale = $frame->Scale(qw/-orient vertical -length 284 -from 0
- -to 250 -tickinterval 50 -command/ => [\&vscale_height, $canvas]);
- $scale->set(75);
-
- $scale->pack(qw/-side left -anchor ne/);
- $canvas->pack(qw/-side left -anchor nw -fill y/)
-
-} # end vscale
-
-sub vscale_height {
-
- my($w, $height) = @_;
-
- $height += 21;
- my $y2 = $height - 30;
- $y2 = 21 if $y2 < 21;
- $w->coords('poly', 15, 20, 35, 20, 35, $y2, 45, $y2, 25, $height, 5, $y2,
- 15, $y2, 15, 20);
- $w->coords('line', 15, 20, 35, 20, 35, $y2, 45, $y2, 25, $height, 5, $y2,
- 15, $y2, 15, 20);
-
-} # end vscale_height
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/Gedi.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/Gedi.pl
deleted file mode 100644
index ff847000e05..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/Gedi.pl
+++ /dev/null
@@ -1,429 +0,0 @@
-# Gedi master advanced text editor.
-
-use Tk::TextEdit;
-
-use vars qw/$TOP/;
-
-my $TOP;
-my $text_frame;
-my $counter_frame;
-my $textwindow;
-my $current_line_label;
-my $total_line_label;
-my $current_column_label;
-my $insert_overstrike_mode_label;
-my $about_pop_up_reference;
-my $menu;
-my $help_menu;
-
-sub about_pop_up
-{
- my $name = ref($about_pop_up_reference);
- if (defined($about_pop_up_reference))
- {
- $about_pop_up_reference->raise;
- $about_pop_up_reference->focus;
- }
- else
- {
- my $pop = $TOP->Toplevel();
- $pop->title("About");
-
- $pop->Label(-text=>"Gedi (Gregs EDItor)")->pack();
- $pop->Label(-text=>"Ver. 1.0")->pack();
- $pop->Label(-text=>"Copyright 1999")->pack();
- $pop->Label(-text=>"Greg London")->pack();
- $pop->Label(-text=>"All Rights Reserved.")->pack();
- $pop->Label(-text=>"This program is free software.")->pack();
- $pop->Label(-text=>"You can redistribute it and/or")->pack();
- $pop->Label(-text=>"modify it under the same terms")->pack();
- $pop->Label(-text=>"as Perl itself.")->pack();
- $pop->Label(-text=>"Special Thanks to")->pack();
- $pop->Label(-text=>"Nick Ing-Simmons.")->pack();
-
- my $button_ok = $pop->Button(-text=>'OK',
- -command => sub {$pop->destroy();
- $about_pop_up_reference = undef;
- } )
- ->pack();
- $pop->resizable('no','no');
- $about_pop_up_reference = $pop;
- }
-}
-
-
-sub update_indicators
-{
- my ($line,$column)= split(/\./,$textwindow->index('insert'));
- $current_line_label->configure (-text=> "line: $line");
- $current_column_label->configure (-text=> "column: $column");
-
- my ($last_line,$last_col) = split(/\./,$textwindow->index('end'));
- $total_line_label->configure (-text=> "total lines: $last_line");
-
- my $mode = $textwindow->OverstrikeMode;
- my $overstrke_insert='Insert Mode';
- if ($mode)
- {$overstrke_insert='Overstrike Mode';}
- $insert_overstrike_mode_label->configure
- (-text=> "$overstrke_insert");
-
- my $filename = $textwindow->FileName;
- $filename = 'NoName' unless(defined($filename));
- my $edit_flag='';
- if($textwindow->numberChanges)
- {$edit_flag='edited';}
- $TOP->configure(-title => "Gedi $edit_flag $filename");
- $textwindow->idletasks;
-
-}
-
-
-
-
-
-
-sub Gedi {
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'Gedi master advanced text editor ',
- -geometry_manager => 'grid',
- -title => 'GEDI Text Editor',
- -iconname => 'GEDI',
- );
-
-$TOP->withdraw;
-
-$text_frame = $TOP->Frame->pack
- (-anchor=>'nw', -expand=>'yes', -fill => 'both'); # autosizing
-$counter_frame = $TOP->Frame->pack(-anchor=>'nw');
-
-$textwindow = $text_frame->Scrolled(
- 'TextEdit',
- exportselection => 'true', # 'sel' tag is associated with selections
- # initial height, if it isnt 1, then autosizing fails
- # once window shrinks below height
- # and the line counters go off the screen.
- # seems to be a problem with the Tk::pack command;
-# height => 40,
- -background => 'white',
- -wrap=> 'none',
- -setgrid => 'true', # use this for autosizing
- -scrollbars =>'se')
- -> pack(-expand => 'yes' , -fill => 'both'); # autosizing
-
-$TOP->protocol('WM_DELETE_WINDOW'=>
- sub{$textwindow->ConfirmExit;}
- );
-
-$SIG{INT} = sub {$textwindow->ConfirmExit;};
-
-$current_line_label = $counter_frame
- -> Label(-text=>'line: 1')
- -> grid(-row=>1,-column=>1, -sticky=>'nw' );
-
-$total_line_label = $counter_frame
- -> Label(-text=>'total lines: 1')
- -> grid(-row=>2,-column=>1, -sticky=>'nw' );
-
-$current_column_label = $counter_frame
- -> Label(-text=>'column: 0')
- -> grid(-row=>3,-column=>1, -sticky=>'nw' );
-
-$insert_overstrike_mode_label = $counter_frame
- -> Label(-text=>' ')
- -> grid(-row=>5,-column=>1, -sticky=>'nw' );
-
-$textwindow->SetGUICallbacks (
- [
- \&update_indicators,
- sub{$textwindow->HighlightAllPairsBracketingCursor}
- ]
-);
-
-$menu = $textwindow->menu;
-
-$TOP->configure(-menu => $menu);
-
-$help_menu = $menu->cascade(-label=>'~Help', -tearoff => 0, -menuitems => [
- [Command => 'A~bout', -command => \&about_pop_up]
- ]);
-
-
-#$TOP->minsize(30,1);
-#$TOP->geometry("80x24");
-
-while(<DATA>)
- {$textwindow->insert('insert',$_);}
-$textwindow->ResetUndo;
-
-$textwindow->CallNextGUICallback;
-
-# adjust height
-$TOP->update;
-my $menuheight = ($TOP->wrapper)[1];
-my $TOPheight = 30 + $TOP->reqheight + $menuheight;
-if ($TOP->screenheight < $TOPheight) {
- $textwindow->GeometryRequest($textwindow->reqwidth, $textwindow->reqheight - ($TOPheight - $TOP->screenheight));
-}
-$TOP->deiconify;
-
-}
-
-
-__DATA__
-
-Tk800.015 contains many modifications to the
-text based modules, as well as new text modules
-and an application that uses them all.
-Text.pm, TextUndo.pm, TextEdit.pm, and gedi
-have all been updated since the release prior
-to Tk800.015.
-
-This demo contains a rundown of all the features
-of the text modules, and
-
-What is available in the text modules?
-================================================
-
-Text.pm
-========
-
-Text.pm is the base text editing module.
-Beyond the core functionality of typing text,
-Text.pm has built in menu support for basic
-editing features such as Find/Replace text,
-Copy/Cut/Paste, Goto Line Number, and What
-Line Number queries.
-
-These functions are available simply by right
-clicking the mouse over the text area. Doing
-so will cause a pop-up menu to appear which will
-contain cascading menus to give access to all of
-these new functions.
-
-Many of these functions will create their own
-pop-up windows. Find/Replace will create a pop-up
-window which contains an entry for text to
-find, an entry for replace text, a number of
-radio buttons to control options such as
-case sensitivity, and several command buttons to
-perform functions such as Find, Find All,
-Replace, Replace All.
-
-All of these features have corresponding methods
-built into the Text widget. This allows the basic
-functions to be built into the widget, and also
-allows added features to be built on the lower
-level methods as needed. No one should have to
-reinvent the wheel when it comes to text editing
-features.
-
-Insert and Overstrike modes are also supported
-in the Text.pm module. Pressing the <Insert>
-key will toggle modes back and forth.
-
-Column based copy/cut/paste features are also
-available in the Text.pm module. They are bound
-to the following keys:
-
-<F1> clipboardColumnCopy
-<F2> clipboardColumnCut
-<F3> clipboardColumnPaste
-
-Currently, column based operations are beta versions.
-They compensate for tabs, but they will not behave
-properly unless the text is all the same font, and
-is the same width per character.
-
-Hopefully some future version of Text.pm will correct
-for this deficiency.
-
-Column paste should work with overstrike mode.
-
-
-TextUndo.pm
-=============
-
-TextUndo.pm is the second level module, being
-derived from the Text.pm module. As it's name
-implies, TextUndo supports "UNDO" capability.
-It now also supports "REDO" capability.
-
-Undo/redo works on user typed commands and
-also programmatically, so that any application
-that causes text to be inserted or deleted
-can be undone/redone, whether it was directly
-typed by the user or indirectly through another
-method.
-
-The undo/redo functions support tags, so that
-if you delete text with tags, undo will re-insert
-the text and re-tag it as well. This will eventually
-allow the text modules to support more sophisticated
-word processing type features. Such functionality
-should be available in a future release of the
-text modules.
-
-The TextUndo.pm module also has several added
-features to support file based operations.
-File based methods include ->Save, ->Load, and
-->Include. All methods take a filename as a
-parameter. These methods will create a progress
-widget to indicate the progress of the operation.
-
-The other feature of the TextUndo.pm module
-is the ConfirmDiscard method. This method checks to
-see if the text has been modified since it was
-last saved. If it has been modified, and the
-it will create a pop-up menu asking the user
-if they want to save the text to a file before
-exiting. This method can easily be tied into
-the exit routines, and signal handlers, to provide
-a consistent "save before exit?" feel.
-
-TextEdit.pm
-=============
-
-The TextEdit.pm is a new module in prototype version
-which adds further features to the text modules.
-TextEdit is based off of the TextUndo module,
-and so has all of the features of TextUndo and
-Text.
-
-Features of the TextEdit.pm module include
-parenthesis matching. The module looks at the
-current cursor position and then tries to find
-the parenthesis that bracket the cursor.
-Character pairs that are searched for are:
-() {} [] "" ''
-
-It also checks the position of the pairs to
-try to highlight bad positions. The module
-assumes that if the pairs are not on the same
-line or not on the same column, then there
-might be a missing parenthesis somewhere.
-Characters that appear to not align are
-highlighted in red.
-
-(quotations must start and end on the same line)
-
-
-PARENTHISIS MATCHING DEMO:
-move the cursor to the x between the quotes
-on the line below:
-
-
-{
- ( )
- ( { }
- [
- ' ">> x <<" '
- [] ]
- )
-
-}
-
-PARENTHESIS MISMATCHING DEMO:
-move the cursor to the x between the quotes
-on the line below:
-
-
-{
- ( )
- ( <<RED possible error { }
- [
- ' ">> x <<" '
- [] ]
- ) <<RED possible error
-
-}
-
-
-
-Another feature of the TextEdit module is support
-for application level indicators which reflect
-the status of certain internals. The line and
-column position of the cursor, the total length
-of the file, whether the widget is in insert or
-overstrike mode. Anytime anything occurs that could
-affect these values, a user supplied callback
-is invoked. This callback is supplied by the
-application so that the application can update
-whatever indicators it uses, however it implements
-them.
-
-One other feature of the TextEdit.pm module is
-block level text indention and block level text
-commenting. If a block of text is selected,
-that text can be indented or unindented wiht
-a single keystroke. It can also be commented
-out or uncommented as well. The keystroke bindings
-that support this are:
-
-<F5> IndentSelectedLines
-<F6> UnindentSelectedLines
-
-<F7> CommentSelectedLines
-<F8> UncommentSelectedLines
-
-These bindings only operate on the currently
-selected text. The indent string and the comment
-string can be programmed to be anything, but
-defaults to "\t" (tab) for indent and "#" for
-comments.
-
-(currently the widget hash is used to store these values.
-$w->{'INDENT_STRING'} and $w->{'LINE_COMMENT_STRING'}
-At some point in the future, this will be changed to
-use configure options to set these values.
-any application that changes these values should do
-so in such a way that when the TextEdit module changes,
-the application can be easily changed to handle this)
-
-
-
-gedi application
-=====================
-gedi is short for Greg's EDItor.
-The "g" is soft, pronounced like a "j".
-
-The gedi application uses all of the features of
-the text modules, Text, TextUndo, and TextEdit.
-It supplies TextEdit with a callback to update
-the indicator displays. This information includes
-the current cursor position, insert/overstrike
-mode, length of the file, filename, and whether
-the file has been edited or not.
-
-The bottom of this display contains
-line number
-column number
-total lines
-insert/overstrike mode.
-
-The title bar contains
-filename
-and if the file has been edited, the word "edited".
-
-Where gedi is installed depends on your system,
-but it is part of the tarkit for Tk800.015 and above.
-
-gedi was created to be put a perl editor in with the
-perl tar kit.
-
-NOTE: THIS IS NOT THE ACTUAL GEDI APPLICATION, BUT
-A DEMO SET UP TO BE SIMILAR IN NATURE TO THE GEDI
-APPLICATION. THE ACTUAL GEDI APPLICATION IS PART OF
-THE TK800.015 TARKIT. WHERE IT IS LOCATED ON YOUR
-SYSTEM WILL VARY DEPENDING ON YOUR SYSTEM. ONCE
-YOU LOCATE THE GEDI APPLICATION, PUT IT IN YOUR
-EXECUTABLE PATH, AND YOU WILL BE ABLE TO USE IT AS
-A TEXT EDITOR.
-
-
-
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/TEMPLATE.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/TEMPLATE.pl
deleted file mode 100644
index f0415ea9cae..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/TEMPLATE.pl
+++ /dev/null
@@ -1,92 +0,0 @@
-# Learn how to write your own widget demonstration.
-
-use vars qw/$TOP/;
-
-sub TEMPLATE {
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => 'Learn how to write a widget demonstration!',
- -geometry_manager => 'grid',
- -title => 'WidgetDemo Example',
- -iconname => 'WidgetDemo',
- );
- $TOP->Label(-text => 'Click "See Code".')->grid;
-}
-__END__
-
-The template code above specifies how user contributed widget demonstrations
-can be written.
-
-widget looks in the directory specified on the command line to load user
-contributed demonstrations. If no directory name is specified when widget is
-invoked and the environment variable WIDTRIB is defined then demonstrations
-are loaded from the WIDTRIB directory. If WIDTRIB is undefined then widget
-defaults to the released user contributed directory.
-
-The first line of the file is the DDD (Demonstration Description Data), which
-briefly describes the purpose of the demonstration. The widget program reads
-this line and uses it when building its interface.
-
-Demonstrations must have a unique subroutine which is the same as the filename
-with .pl stripped off. When widget calls your subroutine it's passed one
-argument, the demonstration name. So file TEMPLATE.pl contains subroutine
-TEMPLATE(). But a demo can actually be an entire program - read on!
-
-For consistency your demonstration should use the WidgetDemo widget. This is
-a toplevel widget with three frames. The top frame contains descriptive
-demonstration text. The bottom frame contains the "Dismiss" and "See Code"
-buttons. The middle frame is the demonstration container, which can be
-managed by either the pack or grid geometry manager.
-
-Since your subroutine can "see" all of widget's global variables, you
-use $MW (the main window reference) to create the WidgetDemo toplevel; be sure
-to pass at least the -name and -text parameters. -geometry_manager defaults
-to "pack". The call to WidgetDemo() returns a reference to the containing
-frame for your demonstration, so treat it as if it were the MainWindow, the
-top-most window of your widget hierarchy.
-
-Alternatively the .pl file may contain typical Perl/Tk code of the form:
-
- # Demonstration Description Data
-
- use Tk;
- my $top = MainWindow->new;
- $top->Label(-text => 'Whatever');
- MainLoop;
- __END__
-
-widget has re-defined normal MainWindow to actually create a WidgetDemo
-on your code's behalf. MainLoop is optional in a demo (it will immediately
-return as MainLoop is already active).
-
-Other consideration:
-
- . widget global variables are all uppercase, like $MW - be careful not
- to stomp on them!
-
- . Demo files should really be run in private packages to avoid those
- problems.
-
- . Don't subvert the inheritance mechanism by calling Tk::MainWindow
- in your demo code.
-
- . The description should really be extracted from POD documentation
- in the .pl file rather than a magic comment.
-
- . If your demonstration has a Quit button change it to ring the bell
- and use the builtin Dismiss instead. In particular destroying a
- MainWindow is acceptable, but exit will shut down widget itself!
-
- . Be sure $TOP is declared in a "use vars" statement and not as a
- lexical my() in the subroutine (see below).
-
- . If you're wrapping an existing main program in a subroutine be very
- alert for closure bugs. Lexicals inside a subroutine become closed
- so you may run into initialization problems on the second and
- subsequent invokations of the demonstration. The npuz and plop
- demonstrations show how to work around this. Essentially, remove
- all "global" my() variables and place them within a "use vars".
- This practice is prone to subtle bugs and is not recommended!
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/Tiler.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/Tiler.pl
deleted file mode 100644
index c9a44b8c0b1..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/Tiler.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-# Tiler, arrange widgets in rows.
-
-use strict;
-use Tk;
-use Tk::Tiler;
-
-my $mw = MainWindow->new();
-my $tiler = $mw->Scrolled('Tiler');
-my $num = $tiler->cget('-rows') * $tiler->cget('-columns');
-$mw->Label(-text => "Tiler with $num widgets")->pack;
-foreach (1 .. $num) {
- $tiler->Manage( $tiler->Label(-text => "**$_**") );
-}
-$tiler->pack(qw/-expand yes -fill both/);
-MainLoop;
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/all.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/all.pl
deleted file mode 100644
index 482bb46ea5b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/all.pl
+++ /dev/null
@@ -1,331 +0,0 @@
-# All widgets at a glance.
-# -*- perl -*-
-
-#
-# $Id: $
-# Author: Slaven Rezic
-#
-# Copyright (C) 2007 Slaven Rezic. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-# Mail: slaven@rezic.de
-# WWW: http://www.rezic.de/eserte/
-#
-
-use strict;
-use Tk::Pane;
-
-use vars qw/$TOP $MW $DEMO_FILE/;
-
-sub all {
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => <<"EOF",
-All Tk widgets at a glance in one Toplevel.
-
-The left column contains the class name, the middle column a sample representation of this widget, and the right column a button to the widget's Pod (requires Tk::Pod from CPAN).
-
-There are three sections: core Tk modules and Tix modules which come with stock Tk $Tk::VERSION and a sample of non-standard Tk modules from CPAN. The non-standard modules are only displayed if installed, otherwise they are skipped.
-EOF
- -geometry_manager => 'pack',
- -title => 'All widgets',
- -iconname => 'All widgets',
- );
-
- my($px_w, $px_h) = (400, 200);
- my($txt_w, $txt_h) = (40, 6);
- my @px_geom = (-width => $px_w, -height => $px_h);
- my @txt_geom = (-height => $txt_h, -width => $txt_w);
- my $insert_txt = sub {
- my $w = shift;
- if ($w->can("Subwidget") && $w->Subwidget("scrolled")) {
- $w = $w->Subwidget("scrolled");
- }
- $w->insert("end", "This is some sample text for the widget class " . $w->Class);
- };
- my $insert_lb = sub {
- shift->insert("end", sort grep { !m{^/} } keys %INC);
- };
-
- my $f = $TOP->Scrolled('Pane',
- qw(-width 900 -height 500), # XXX check for screensize!
- -gridded => 'xy',
- -scrollbars => 'osoe',
- -sticky => 'news',
- )->pack(qw(-expand 1 -fill both));
- $f = $f->Subwidget("scrolled");
- my @w_def = (
- {separator => 'Core Tk modules'},
-
- 'Adjuster',
- # XXX 'Balloon',
- {class => 'BrowseEntry', action => $insert_lb},
- {class => 'Button', w_args => [-text => 'This is a button']},
- {class => 'Canvas', w_args => [@px_geom],
- action => sub {
- my($w) = @_;
- my @colors = qw(red green blue orange black white);
- for (1..50) {
- $w->createLine(rand($px_w),rand($px_h),
- rand($px_w),rand($px_h),
- -fill => $colors[rand @colors],
- -width => rand(4)+1,
- );
- }
- $w->configure(-scrollregion => [$w->bbox("all")]);
- },
- },
- {class => 'Checkbutton', w_args => [-text => 'This is a checkbutton']},
- {class => 'ColorEditor', dialog => 1},
- {class => 'Dialog', dialog => 1},
- {class => 'DialogBox', dialog => 1},
- {class => 'DirTree', scrolled => 'oe'},
- {class => 'Dirlist', scrolled => 'oe'},
- {class => 'Entry', w_args => [-width => 20], action => $insert_txt},
- {class => 'FBox', dialog => 1},
- {class => 'FileDialog', dialog => 1},
- {class => 'FileSelect', dialog => 1},
- {class => 'Frame', w_args => [@px_geom, -bg => 'red']},
- {class => 'Label', w_args => [-text => 'This is a label']},
- {class => 'Labelframe', w_args => [@px_geom, -bg => 'red', -text => 'Title of frame']},
- {class => 'Listbox', action => $insert_lb, scrolled => 'oe'},
- # XXX Menubar?
- {class => 'Menubutton', w_args => [-text => 'Menu button']},#XXX menuitems
- {class => 'Message', w_args => [-text => 'This is a message widget']},
- {class => 'MsgBox', dialog => 1},
- {class => 'NoteBook', action => sub {
- my $w = shift;
- for (1..5) {
- my $p = $w->add("page$_", -label => "Page $_");
- $p->Label(-text => "A label in the page $_")->pack;
- }
- },
- },
- # XXX Pane
- {class => 'Radiobutton', w_args => [-text => 'This is a radiobutton']},
- {class => 'ROText', w_args => [@txt_geom], action => $insert_txt, scrolled => 'oe'},
- {class => 'Scale', w_args => [-orient => 'horiz', -from => 0, -showvalue => 1, -to => 100]},
- {class => 'Scrollbar', w_args => [-orient => 'horiz']},
- {class => 'Spinbox', w_args => [-from => 0, -to => 100]},
- {class => 'Text', w_args => [@txt_geom], action => $insert_txt, scrolled => 'oe'},
- # disabled because of warning loop, line 189 ... {class => 'TextEdit', w_args => [@txt_geom], action => $insert_txt, scrolled => 'oe'},
- {class => 'TextList', w_args => [@txt_geom], action => $insert_lb, scrolled => 'oe'},
- {class => 'TextUndo', w_args => [@txt_geom], action => $insert_txt, scrolled => 'oe'},
- # XXX Toplevel
-
- {separator => 'Tix modules'},
-
- 'FloatEntry',
- {class => 'HList', action => sub {
- my $w = shift;
- my $b = $w->Balloon;
- my %binfo;
- for my $path ('1', '1.1', '1.2', '2', '2.1') {
- $w->add($path, -text => $path);
- $binfo{$path} = "BalloonInfo: $path";
- }
- $b->attach($w, -balloonposition => "mouse", -msg => \%binfo);
- },
- },
- qw(IconList InputO
- LabEntry LabFrame LabRadio NBFrame Optionmenu
- Panedwindow ProgressBar TList Table
- Tiler TixGrid Tree
- ),
-
- {separator => 'Installed non-core Tk modules'},
-
- qw(Date DateEntry NumEntry NumEntryPlain
- PathEntry
- ),
- {class => 'FireButton', action => sub {
- my $w = shift;
- my $text = 'This is a firebutton 0';
- $w->configure(-textvariable => \$text,
- -command => sub {
- $text =~ s{(\d+)}{$1+1}e;
- },
- );
- },
- },
- {class => 'TFrame', w_args => [@px_geom, -bg => 'red',
- -label => [ -text => 'Title' ],
- -borderwidth => 2,
- -relief => 'groove',
- ],
- },
- {class => 'ToolBar', w_args => [qw/-movable 1 -side top
- -indicatorcolor blue/],
- action => sub {
- my $tb = shift;
- $tb->ToolButton (-text => 'Button',
- -tip => 'tool tip',
- -command => sub { print "hi\n" });
- $tb->ToolLabel (-text => 'A Label');
- $tb->Label (-text => 'Another Label');
- $tb->ToolLabEntry(-label => 'A LabEntry',
- -labelPack => [-side => "left",
- -anchor => "w"]);
- },
- },
- {class => 'HistEntry', action => sub {
- my $w = shift;
- $w->bind("<Return>" => sub {
- # do something with value, and then:
- $w->historyAdd;
- $w->delete('0', 'end');
- });
- },
- },
- {class => 'MListbox', w_args => [-columns=>[[-text=>'Heading1',
- -sortable=>0],
- [-text=>'Heading2']]],
- action => sub {
- my $w = shift;
- $w->insert("end", [qw(Cell11 Cell12)], [qw(Cell21 Cell22)]);
- },
- },
- {class => 'Cloth', w_args => [@px_geom],
- action => sub {
- my($w) = @_;
- my @colors = qw(red green blue orange black white);
- for (1..50) {
- $w->Line(-coords => [rand($px_w),rand($px_h),
- rand($px_w),rand($px_h)],
- -fill => $colors[rand @colors],
- -width => rand(4)+1,
- );
- }
- },
- },
- {class => 'DirSelect', dialog => 1},
- {class => 'ExecuteCommand', w_args => [@txt_geom]},
- {class => 'FontDialog', dialog => 1},
- {class => 'JBrowseEntry', action => $insert_lb},
- {class => 'JFileDialog', dialog => 1},
- {class => 'More', w_args => [@txt_geom], action => sub {
- shift->Load($DEMO_FILE),
- }, scrolled => 'oe'},
- {class => 'ObjEditor', w_args => [@txt_geom, -caller => { dummy => 'object'}]},
- {class => 'ObjScanner', w_args => [@txt_geom, -caller => $TOP]},
- {class => 'PodText', require => 'Tk::Pod::Text',
- w_args => [@txt_geom, -file => 'Tk']},
- {class => 'XMLViewer', w_args => [@txt_geom], action => sub {
- shift->insertXML(-text => "<?xml version='1.0' ?><a><bla /><foo>bar</foo></a>");
- }, scrolled => 'oe'},
- {class => 'Zinc', w_args => [@px_geom],
- action => sub {
- my($w) = @_;
- my @colors = qw(red green blue orange black white);
- for (1..20) {
- $w->add('curve', 1, [map { (rand($px_w),rand($px_h)) } (1..5)],
- -relief => 'roundgroove',
- -filled => 1,
- -fillcolor => $colors[rand @colors],
- );
- }
- },
- },
- );
- $f->grid('columnconfigure', $_, -pad => 3, -weight => 1) for (0 .. 1);
- $f->grid('rowconfigure', $_, -pad => 3, -weight => 1) for (0 .. $#w_def);
- my $row = -1;
- for my $w_def (@w_def) {
- my($separator, $text, $class, @w_args, $action, $scrolled, $dialog, $dialog_action);
- if (UNIVERSAL::isa($w_def, "HASH")) {
- $separator = $w_def->{separator};
- if (!$separator) {
- $class = $w_def->{class};
- $text = $w_def->{text} || $class;
- @w_args = @{ $w_def->{w_args} || [] };
- $action = $w_def->{action};
- $scrolled = $w_def->{scrolled};
- $dialog = $w_def->{dialog};
- $dialog_action = $w_def->{dialog_action};
- if ($dialog && !$dialog_action) {
- $dialog_action = sub { shift->Show };
- }
- if ($w_def->{require}) {
- eval 'require ' . $w_def->{require};
- if ($@) {
- warn $@;
- next;
- }
- }
- }
- } else {
- ($text, $class) = ($w_def, $w_def);
- }
-
- $row++;
-
- if ($separator) {
- $f->Label(-text => $separator,
- -font => 'Helvetica 18',
- -pady => 5,
- )->grid(-row => $row,
- -column => 0,
- -columnspan => 3,
- );
- next;
- }
-
- my $bgcolor = $row%2==0 ? '#c0c0c0' : '#a0a0a0';
- my $ff = $f->Frame(-background => $bgcolor,
- )->grid(-row => $row,
- -column => 1,
- -sticky => 'news',
- );
- my $cw = eval {
- if ($dialog) {
- $ff->$class(@w_args)->destroy; # just load it...
- $ff->Button(-text => 'Open ' . $class,
- -command => sub {
- # There are some buggy dialogs which display
- # already without calling a Show method (e.g. Tk::FBox),
- # so create here
- my $d = $ff->$class(@w_args);
- $dialog_action->($d) if $dialog_action;
- })->pack;
- } else {
- if ($scrolled) {
- $ff->Scrolled($class, @w_args, -scrollbars => $scrolled)->pack;
- } else {
- $ff->$class(@w_args)->pack;
- }
- }
- };
- if ($@ || !$cw) {
- warn $@;
- $row--;
- $ff->destroy;
- next;
- }
-
- $action->($cw) if $action && !$dialog;
-
- $f->Label(-text => $text,
- -background => $bgcolor,
- -anchor => 'w',
- )->grid(-row => $row,
- -column => 0,
- -sticky => "news",
- );
-
- $f->Button(-text => 'Pod',
- -background => $bgcolor,
- -command => sub {
- require Tk::Pod;
- $TOP->Pod(-file => 'Tk::' . $class);
- },
- )->grid(-row => $row,
- -column => 2,
- -sticky => 'news',
- );
- }
- # $TOP->WidgetDump;
-}
-
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/cursor.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/cursor.pl
deleted file mode 100644
index 645f1433d54..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/cursor.pl
+++ /dev/null
@@ -1,65 +0,0 @@
-# Predefined cursors.
-# -*- perl -*-
-
-#
-# $Id: $
-# Author: Slaven Rezic
-#
-# Copyright (C) 2006,2008 Slaven Rezic. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-# Mail: slaven@rezic.de
-# WWW: http://www.rezic.de/eserte/
-#
-
-use vars qw/$TOP/;
-
-sub cursor {
- my($demo) = @_;
- $TOP = $MW->WidgetDemo(
- -name => $demo,
- -text => <<'EOF',
-This window displays the names of Tk's built-in
-resp. predefined X11 cursors. Click or move on
-the names to see the cursor shape.
-EOF
- -geometry_manager => 'grid',
- -title => 'Predefined cursors',
- -iconname => 'Predefined cursors',
- );
-
- my $fh;
- TRY_CURSORFONTH: {
- for my $cursorfonth (Tk->findINC("X11/cursorfont.h"),
- "/usr/X11R6/include/X11/cursorfont.h",
- "/usr/include/X11/cursorfont.h",
- ) {
- last TRY_CURSORFONTH if (open $fh, $cursorfonth);
- }
- $TOP->Label(-text => "Sorry. I can't find X11/cursorfont.h on this system.")->grid;
- return;
- }
-
- while(<$fh>) {
- chomp;
- if (/XC_(\S+)/) {
- my $cursorname = $1;
- next if $cursorname eq 'num_glyphs';
- push @cursors, $cursorname;
- }
- }
-
- $lb = $TOP->Scrolled("Listbox", -scrollbars => "ose", -selectmode => "browse")->grid(-sticky => "ns");
- $lb->insert("end", @cursors);
- $lb->bind("<Motion>", sub {
- my($inx) = $lb->nearest($lb->Subwidget("scrolled")->XEvent->y);
- $lb->configure(-cursor => $cursors[$inx]);
- });
- $lb->bind("<<ListboxSelect>>", sub {
- my($inx) = $lb->curselection;
- $lb->configure(-cursor => $cursors[$inx]);
- });
-}
-
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/lib/npuz/Xcamel.npuz b/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/lib/npuz/Xcamel.npuz
deleted file mode 100644
index c5c8318d145..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/lib/npuz/Xcamel.npuz
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/npuz.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/npuz.pl
deleted file mode 100644
index 3a6ba17f937..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/npuz.pl
+++ /dev/null
@@ -1,226 +0,0 @@
-# A N-puzzle implemented via the Grid geometry manager.
-#
-# This program is described in the Perl/Tk column from Volume 1, Issue 4 of
-# The Perl Journal (http://tpj.com/tpj), and is included in the Perl/Tk
-# distribution with permission. It has been modified slightly to conform
-# to the widget demo standard.
-
-#!/usr/local/bin/perl -w
-#
-# puz - demonstrate the Grid geometry manager by implementing an n-puzzle.
-#
-# Stephen O. Lidie, Lehigh University Computing Center, lusol@Lehigh.EDU
-# 96/08/11.
-#
-# Copyright (C) 1996 - 1998 Stephen O. Lidie. All rights reserved.
-#
-# This program is free software; you can redistribute it and/or modify it under
-# the same terms as Perl itself.
-
-require 5.002;
-use Tk;
-use Tk::Dialog;
-use strict;
-use subs qw(beep create_puz create_ui puz_fini move_piece new_puz randomly xy);
-
-my $CAMEL; # Perl/Tk Xcamel.gif Photo image
-my $CAMEL_HEIGHT; # Xcamel height
-my $CAMEL_WIDTH; # Xcamel width
-my (@LEVELS) = (9, 16, 36, 64); # possible puzzle piece counts
-my $MW = MainWindow->new; # program's main window
-my @ORDER; # random puzzle piece ordinals
-my $PIECES = $LEVELS[1]; # total puzzle piece count
-my $OLD_PIECES = -1; # previous puzzle piece count
-my $PF; # puzzle Frame
-my @PUZ; # puzzle piece information
-my $SIDE; # pieces per side of puzzle
-my $SPACE; # shortcut to puzzle space piece
-my $SPACE_IMAGE; # space piece image
-
-create_ui;
-create_puz;
-
-sub beep {$MW->bell}
-
-sub create_puz {
-
- return if $PIECES == $OLD_PIECES;
-
- # Create all the puzzle pieces - buttons with images - and arrange them
- # in a rectangular grid. @PUZ is a list of button widget references which
- # represent the puzzle pieces.
- #
- # The actual ordering is controlled by @ORDER, a list of list of two:
- #
- # $ORDER[$i]->[0] = puzzle piece ordinal
- # $ORDER[$i]->[1] = random number used to shuffle the puzzle ordinals
- #
- # If the puzzle frame $PF exists, we've been here before, which means that
- # all images and widgets associated with the previous puzzle need
- # destroying, plugging a potential memory leak. It's important to note
- # that an image must be explicity deleted - it doesn't magically go away
- # if a widget, which just happens to use it, is destroyed. So, loop
- # through all the puzzle pieces and delete their images, then destroy the
- # puzzle's master frame $PF, destroying all child widgets. Now, this
- # scheme isn't particulary efficient, but it is simple; ideally, we'd like
- # to create these images only once and reuse them as required.
-
- if (Exists $PF) {
- my $image;
- foreach (@PUZ) {
- $image = $_->cget(-image);
- $image = $SPACE_IMAGE if not defined $image;
- $image->delete;
- }
- $PF->destroy;
- }
-
- $PF = $MW->Frame->grid; # create the puzzle frame grid master
- $OLD_PIECES = $PIECES;
- $#PUZ = $#ORDER = $PIECES - 1;
- $SIDE = sqrt $PIECES;
-
- my($i, $o, $c, $r, $w, $h, $x, $y, $but, $gif);
-
- foreach (0..$#ORDER) {$ORDER[$_] = [$_, undef]}
-
- for($i = 0; $i <= $#PUZ; $i++) {
- $o = $ORDER[$i]->[0];
- ($c, $r) = xy $o; # puzzle ordinal to column/row
- $w = $CAMEL_WIDTH / $SIDE;
- $h = $CAMEL_HEIGHT / $SIDE;
- $x = $c * $w; # x/column pixel offset
- $y = $r * $h; # y/row pixel offset
- $gif = $PF->Photo; # new, empty, GIF image
- $gif->copy($CAMEL, -from => $x, $y, $x+$w, $y+$h);
- $but = $PF->Button(-image => $gif,
- -relief => 'flat',
- -borderwidth => 0,
- -command => \&beep,
- -highlightthickness => 0,
- );
- $PUZ[$o] = $but;
- ($c, $r) = xy $i;
- $but->grid(-column => $c, -row => $r, -sticky => 'nsew');
- if ($o == 0) {
- $SPACE_IMAGE = $gif;
- $SPACE = $but;
- }
- } # forend all puzzle pieces
-
-} # end create_puz
-
-sub create_ui {
-
- # Create a color Photo image of the Xcamel puzzle.
-
- $CAMEL = $MW->Photo(-file => "$WIDTRIB/lib/npuz/Xcamel.npuz");
- $CAMEL_WIDTH = $CAMEL->image('width');
- $CAMEL_HEIGHT = $CAMEL->image('height');
-
- # Create the menubar.
-
- my $mf = $MW->Frame(-bg => 'blue')->grid(-sticky => 'ew');
- $mf->gridColumnconfigure(1, -weight => 1);
-
- my $mbf = $mf->Menubutton(-text => 'File', -relief => 'raised');
- $mbf->command(-label => 'New Puzzle', -command => \&new_puz);
- $mbf->separator;
- $mbf->command(-label => 'Quit', -command => [$MW => 'bell']);
-
- my $mbp = $mf->Menubutton(-text => 'Prefs', -relief => 'raised');
- my $pieces = 'Pieces';
- $mbp->cascade(-label => $pieces);
- my $mbpm = $mbp->cget(-menu);
- my $mbpmp = $mbpm->Menu;
- $mbp->entryconfigure($pieces, -menu => $mbpmp);
- foreach (@LEVELS) {
- $mbpmp->radiobutton(-label => $_,
- -variable => \$PIECES,
- -value => $_,
- -command => \&create_puz,
- );
- }
-
- my $mbq = $mf->Menubutton(-text => 'Help', -relief => 'raised');
- my $about = $MW->Dialog(-text => <<"END"
-npuz Version 1.0\n
-Select \"File/New Puzzle\", then click around the red \"space\" to rearrange the pieces and solve the puzzle!\n\nThis program is described in the Perl/Tk column from Volume 1, Issue 4 of The Perl Journal (http://tpj.com/tpj), and is included in the Perl/Tk distribution with permission.
-END
- );
- $about->configure(-wraplength => '6i');
- $mbq->command(-label => 'About', -command => [$about => 'Show']);
-
- $mbf->grid(-row => 0, -column => 0, -sticky => 'w');
- $mbp->grid(-row => 0, -column => 1, -sticky => 'w');
- $mbq->grid(-row => 0, -column => 2, -sticky => 'e');
-
-} # end create_ui
-
-sub puz_fini {
-
- # Return true iff all puzzle pieces are in order.
-
- my($i, $c, $r, %info);
- for($i = 0; $i <= $#PUZ; $i++) {
- ($c, $r) = xy $i;
- %info = $PUZ[$i]->gridInfo;
- return 0 if $c != $info{-column} or $r != $info{-row};
- }
- return 1;
-
-} # end puz_fini
-
-sub move_piece {
-
- my($piece) = @_;
-
- my(%info, $c, $r, $sc, $sr);
- %info = $piece->gridInfo; ($c, $r) = @info{-column,-row};
- %info = $SPACE->gridInfo; ($sc, $sr) = @info{-column,-row};
- if ( ($sr == $r and ($sc == $c-1 or $sc == $c+1)) or
- ($sc == $c and ($sr == $r-1 or $sr == $r+1)) ) {
- $SPACE->grid(-column => $c, -row => $r);
- $piece->grid(-column => $sc, -row => $sr);
- }
- if (puz_fini) {
- my $color = ($SPACE->configure(-activebackground))[3];
- $SPACE->configure(-image => $SPACE_IMAGE,
- -activebackground => $color,
- -background => $color,
- -relief => 'flat',
- );
- foreach (@PUZ) {$_->configure(-command => \&beep)}
- }
-
-} # end move_piece
-
-sub new_puz {
-
- srand time;
- foreach (0..$#ORDER) {$ORDER[$_]->[1] = rand $#ORDER}
- my @order = sort randomly @ORDER;
- #@order = @ORDER; # here's how I solve the puzzle (;
- my($i, $o, $c, $r, $but);
-
- for($i = 0; $i <= $#PUZ; $i++) {
- $o = $order[$i]->[0];
- $but = $PUZ[$o];
- if ($o == 0) {
- $but->configure(-background => 'red',
- -relief => 'sunken',
- -image => undef,
- -activebackground => 'red',
- );
- } else {
- $but->configure(-command => [\&move_piece, $but]);
- }
- ($c, $r) = xy $i;
- $but->grid(-column => $c, -row => $r, -sticky => 'nsew');
- }
-
-} # end new_puz
-
-sub randomly {$a->[1] <=> $b->[1]} # randomize order of puzzle pieces
-
-sub xy {my($n) = @_; ($n % $SIDE, int $n / $SIDE)} # ordinal to X/Y
diff --git a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/plop.pl b/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/plop.pl
deleted file mode 100644
index bd6f801b03f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/demos/widtrib/plop.pl
+++ /dev/null
@@ -1,381 +0,0 @@
-# Plot a series of continuous functions on a Perl/Tk Canvas.
-#
-# This program is described in the Perl/Tk column from Volume 1, Issue 1 of
-# The Perl Journal (http://tpj.com/tpj), and is included in the Perl/Tk
-# distribution with permission. It has been modified slightly to conform
-# to the widget demo standard.
-
-#!/usr/local/bin/perl -w
-#
-# plot_program - plot a series of continuous functions on a Perl/Tk Canvas.
-#
-# Stephen O. Lidie, Lehigh University Computing Center, lusol@Lehigh.EDU
-# 96/01/27.
-#
-# Copyright (C) 1996 - 1998 Stephen O. Lidie. All rights reserved.
-#
-# This program is free software; you can redistribute it and/or modify it under
-# the same terms as Perl itself.
-
-require 5.002;
-use strict;
-use Tk;
-use Tk::Dialog;
-use Tk::LabEntry;
-eval {require "plop.fnc";}; # user supplied math functions
-
-# Predeclare global subroutines and variables.
-
-sub collect_errors;
-sub display_coordinates;
-sub initialize_canvas;
-sub initialize_dialogs;
-sub initialize_functions;
-sub initialize_menus;
-sub make_menubutton;
-sub plot_functions;
-sub update_functions;
-
-my $VERSION = '1.0';
-
-# The default sample functions and limits, each in a different color.
-
-my (@FUNCTIONS) = ('sin($x)', 'cos($x)', 'exp($x)', '$x', 'int($x)');
-my (@COLORS) = qw(red green blue orange olivedrab magenta black salmon purple);
-my $NUM_COLORS = scalar @COLORS;
-my ($X_MIN, $X_MAX, $Y_MIN, $Y_MAX) = (-5, 5, -5, 5);
-my ($DX, $DY) = ($X_MAX - $X_MIN, $Y_MAX - $Y_MIN);
-
-# Declare constants that configure the plotting area: a square approximately
-# 500 pixels on a side, with left/right and top/bottom margins of 80 pixles
-# where we can paint axes labels. With this layout there is a 340x340 area
-# available for graphs.
-
-my $MIN_PXL = 0; # minimum Canvas pixel coordinate
-my $MAX_PXL = 300; # maximum Canvas pixel coordinate
-my $MARGIN = 80; # margin size, in pixels
-my $ALEN = $MAX_PXL - 2 * $MARGIN; # X/Y axes length, in pixels
-
-# Declare Perl/Tk widgets and other data.
-
-my $CANV; # Canvas widget used for plotting functions
-my $DIALOG_ABOUT; # Dialog widget showing "About" information
-my $DIALOG_USAGE; # Dialog widget describing plot usage
-my $MBF; # Menubutton frame
-my $MW = MainWindow->new; # program's main window
-my $ORIGINAL_CURSOR = ($MW->configure(-cursor))[3]; # restore this cursor
-my $TEXT; # Text widget showing function definitions
-
-# %ERRORS is a hash to collect eval() and -w errors. The keys are the error
-# messages themselves and the values are the number of times a particular
-# error was detected.
-
-my %ERRORS;
-
-# Begin main.
-
-initialize_dialogs;
-initialize_menus;
-initialize_canvas;
-initialize_functions;
-
-# End main.
-
-sub collect_errors {
-
- # Update the hash %ERRORS with the latest eval() error message. Remove
- # the eval() line number (it's useless to us) to maintain a compact hash.
-
- my($error) = @_;
-
- $error =~ s/eval\s+(\d+)/eval/;
- $ERRORS{$error}++;
-
-} # end collect_errors
-
-sub display_coordinates {
-
- # Print Canvas and Plot coordinates.
-
- my($canvas) = @_;
-
- my $e = $canvas->XEvent;
- my($canv_x, $canv_y) = ($e->x, $e->y);
- my($x, $y);
- $x = $X_MIN + $DX * (($canv_x - $MARGIN) / $ALEN);
- $y = $Y_MAX - $DY * (($canv_y - $MARGIN) / $ALEN);
- print STDOUT "\nCanvas x = $canv_x, Canvas y = $canv_y.\n";
- print STDOUT "Plot x = $x, Plot y = $y.\n";
-
-} # end display_coordinates
-
-sub initialize_canvas {
-
- # Create the Canvas widget and draw axes and labels.
-
- my($label_offset, $tick_length) = (20, 5);
-
- $CANV = $MW->Canvas(
- -width => $MAX_PXL + $MARGIN * 2,
- -height => $MAX_PXL,
- -relief => 'sunken',
- );
- $CANV->pack;
- $CANV->Tk::bind('<Button-1>' => \&display_coordinates);
-
- $CANV->create('text',
- 225, 25,
- -text => 'Plot Continuous Functions Of The Form y=f($x)',
- -fill => 'blue',
- );
-
- # Create the line to represent the X axis and label it. Then label the
- # minimum and maximum X values and draw tick marks to indicate where they
- # fall. The axis limits are LabEntry widgets embedded in Canvas windows.
-
- $CANV->create('line',
- $MIN_PXL + $MARGIN, $MAX_PXL - $MARGIN,
- $MAX_PXL - $MARGIN, $MAX_PXL - $MARGIN,
- );
-
- $CANV->create('window',
- $MIN_PXL + $MARGIN, $MAX_PXL - $label_offset,
- -window => $MW->LabEntry(
- -textvariable => \$X_MIN,
- -label => 'X Minimum',
- -width => 5,
- ),
- );
- $CANV->create('line',
- $MIN_PXL + $MARGIN, $MAX_PXL - $MARGIN - $tick_length,
- $MIN_PXL + $MARGIN, $MAX_PXL - $MARGIN + $tick_length,
- );
-
- $CANV->create('window',
- $MAX_PXL - $MARGIN, $MAX_PXL - $label_offset,
- -window => $MW->LabEntry(
- -textvariable => \$X_MAX,
- -label => 'X Maximum',
- -width => 5,
- ),
- );
- $CANV->create('line',
- $MAX_PXL - $MARGIN, $MAX_PXL - $MARGIN - $tick_length,
- $MAX_PXL - $MARGIN, $MAX_PXL - $MARGIN + $tick_length,
- );
-
- # Create the line to represent the Y axis and label it. Then label the
- # minimum and maximum Y values and draw tick marks to indicate where they
- # fall. The axis limits are LabEntry widgets embedded in Canvas windows.
-
- $CANV->create('line',
- $MAX_PXL - $MARGIN, $MIN_PXL + $MARGIN,
- $MAX_PXL - $MARGIN, $MAX_PXL - $MARGIN,
- );
-
- $CANV->create('window',
- $MAX_PXL + $label_offset, $MIN_PXL + $MARGIN,
- -window => $MW->LabEntry(
- -textvariable => \$Y_MAX,
- -label => 'Y Maximum',
- -width => 5,
- ),
- );
- $CANV->create('line',
- $MAX_PXL - $MARGIN - $tick_length, $MIN_PXL + $MARGIN,
- $MAX_PXL - $MARGIN + $tick_length, $MIN_PXL + $MARGIN,
- );
-
- $CANV->create('window',
- $MAX_PXL + $label_offset, $MAX_PXL - $MARGIN,
- -window => $MW->LabEntry(
- -textvariable => \$Y_MIN,
- -label => 'Y Minimum',
- -width => 5,
- ),
- );
- $CANV->create('line',
- $MAX_PXL - $MARGIN - $tick_length, $MAX_PXL - $MARGIN,
- $MAX_PXL - $MARGIN + $tick_length, $MAX_PXL - $MARGIN,
- );
-
-} # end initialize_canvas
-
-sub initialize_dialogs {
-
- # Create all application Dialog objects.
-
- $DIALOG_ABOUT = $MW->Dialog(
- -title => 'About',
- -text =>
-"plot_program $VERSION\n\n95/12/04\n\nThis program is described in the Perl/Tk column from Volume 1, Issue 1 of The Perl Journal (http://tpj.com/tpj), and is included in the Perl/Tk distribution with permission.",
- -bitmap => 'info',
- -buttons => ['Dismiss'],
- );
- $DIALOG_ABOUT->configure(-wraplength => '6i');
- $DIALOG_USAGE = $MW->Dialog(
- -title => 'Usage',
- -buttons => ['Dismiss'],
- );
- $DIALOG_USAGE->Subwidget('message')->configure(
- -wraplength => '4i',
- -text => "plot_program iterates over the range of values X Minimum to X Maximum, setting the variable \$x to each value in turn, then evaluates each f(\$x) and paints a point on the Y axis. The X axis increment is (Xmax - Xmin) / $ALEN.\n\nJust enter your functions in the Text widget and click the Plot button.\n\nYou can define a file named \"plop.fnc\" that contains additional private math functions, which is automatically \"require\"d by plot_program. In this file are your private functions that you can plot.\n\nPressing button one on the pointing device displays on standard output the current canvas and plot X and Y coordinates.",
- );
-
-} # end initialize_dialogs
-
-sub initialize_functions {
-
- # Pack a spacer Frame and then display instructions in a Label widget.
-
-# $MW->Frame(-height => 10)->pack;
- $MW->Label(
- -text => 'Enter your functions here',
- -foreground => 'blue',
- )->pack;
-
- # Create a Frame with a scrollable Text widget that displays the function
- # list, and a Button to initiate plot activities.
-
- my $functions_frame = $MW->Frame;
- $functions_frame->pack;
- $TEXT = $functions_frame->Text(-height => 3);
- $TEXT->pack;
- $functions_frame->AddScrollbars($TEXT);
- $functions_frame->configure(-scrollbars => 'e');
- update_functions;
-
- my $buttons_frame = $MW->Frame;
- $buttons_frame->pack(-padx => 10, -pady => 5, -expand => 1, -fill => 'x');
- my @pack_attributes = qw(-side left -fill x -expand 1);
- $buttons_frame->Button(
- -text => 'Plot',
- -command => \&plot_functions,
- )->pack(@pack_attributes);
-
-} # end initialize_functions
-
-sub initialize_menus {
-
- # Create the Menubuttons and their associated Menu items.
-
- $MBF = $MW->Frame(-relief => 'raised', -borderwidth => 1);
- $MBF->pack(-fill => 'x');
-
- make_menubutton($MBF, 'File', 0, 'left',
- [
- ['Quit', [$MW => 'bell'], 0],
- ],
- );
- make_menubutton($MBF, 'Help', 0, 'right',
- [
- ['About', [$DIALOG_ABOUT => 'Show'], 0],
- ['', undef, 0],
- ['Usage', [$DIALOG_USAGE => 'Show'], 0],
- ],
- );
-
-} # end initialize_menus
-
-sub make_menubutton {
-
- # Make a Menubutton widget; note that the Menu is automatically created.
- # If the label is '', make a separator.
-
- my($mbf, $mb_label, $mb_label_underline, $pack, $mb_list_ref) = @_;
-
- my $mb = $mbf->Menubutton(
- -text => $mb_label,
- -underline => $mb_label_underline,
- );
- my $mb_list;
- foreach $mb_list (@{$mb_list_ref}) {
- $mb_list->[0] eq '' ? $mb->separator :
- $mb->command(
- -label => $mb_list->[0],
- -command => $mb_list->[1],
- -underline => $mb_list->[2],
- );
- }
- $mb->pack(-side => $pack);
-
-} # end make_menubutton
-
-sub plot_functions {
-
- # Plot all the functions.
-
- my($x, $y, $canv_x, $canv_y) = (0, 0, 0, 0);
- $canv_x = $MIN_PXL + $MARGIN; # X minimum
- $MW->configure(-cursor => 'watch');
- $DX = $X_MAX - $X_MIN; # update delta X
- $DY = $Y_MAX - $Y_MIN; # update delta Y
- $CANV->delete('plot'); # erase all previous plots
-
- # Fetch the newline-separated Text widget contents and update the function
- # list @FUNCTIONS. Also update the Text widget with the new colors.
-
- @FUNCTIONS = ();
- foreach (split /\n/, $TEXT->get('0.0', 'end')) {
- next if $_ eq '';
- push @FUNCTIONS, $_;
- }
- update_functions;
- $MW->idletasks;
-
- %ERRORS = ();
- local $SIG{'__WARN__'} = sub {collect_errors($_[0])};
-
-ALL_X_VALUES:
- for ($x = $X_MIN; $x <= $X_MAX; $x += ($X_MAX - $X_MIN) / $ALEN) {
-
- ALL_FUNCTIONS:
- foreach (0 .. $#FUNCTIONS) {
- next if $FUNCTIONS[$_] =~ /^ERROR:/;
- $y = eval $FUNCTIONS[$_];
- if ($::EVAL_ERROR) {
- collect_errors($::EVAL_ERROR);
- next;
- }
- $canv_y = (($Y_MAX - $y) / $DY) * $ALEN + $MARGIN;
- $CANV->create('text', $canv_x, $canv_y,
- -fill => $COLORS[$_ % $NUM_COLORS],
- -tags => ['plot'],
- -text => '.',
- ) if $canv_y > $MIN_PXL + $MARGIN and
- $canv_y < $MAX_PXL - $MARGIN;
- } # forend ALL_FUNCTIONS
-
- $canv_x++; # next X pixel
-
- } # forend ALL_X_VALUES
-
- $MW->configure(-cursor => $ORIGINAL_CURSOR);
- $MW->idletasks;
-
- # Print all the eval() errors to alert the user of malformed functions.
-
- print STDOUT "\n" if %ERRORS;
- foreach (keys %ERRORS) {
- print STDOUT "$ERRORS{$_} occurrences of $_";
- }
-
-} # end plot_functions
-
-sub update_functions {
-
- # Insert the function list into the Text widget.
-
- $TEXT->delete('0.0', 'end');
- my $i = 0;
- foreach (@FUNCTIONS) {
- $TEXT->insert('end', "$_\n", [$i]);
- $TEXT->tagConfigure($i,
- -foreground => $COLORS[$i % $NUM_COLORS],
- -font => 'fixed',
- );
- $i++;
- }
- $TEXT->yview('end');
-
-} # end update_function_list
diff --git a/Master/tlpkg/tlperl/lib/Tk/event.pod b/Master/tlpkg/tlperl/lib/Tk/event.pod
deleted file mode 100644
index 9012a596267..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/event.pod
+++ /dev/null
@@ -1,417 +0,0 @@
-# Copyright (c) 1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::event - Miscellaneous event facilities: define virtual events and generate events
-
-=for category Binding Events and Callbacks
-
-=head1 SYNOPSIS
-
-I<$widget>-E<gt>B<event>I<Action>(?I<arg, arg, ...>?);
-
-=head1 DESCRIPTION
-
-The B<event>I<Action> methods provides several facilities for dealing with
-window system events, such as defining virtual events and synthesizing
-events. Virtual events are shared by all widgets of the same
-B<MainWindow>. Different L<MainWindow|Tk::MainWindow>s can have different
-virtual event.
-
-The following methods are currently supported:
-
-=over 4
-
-=item I<$widget>-E<gt>B<eventAdd>(B<'E<lt>E<lt>>I<virtual>B<E<gt>E<gt>'>I<, sequence >?,I<sequence, ...>?)
-
-Associates the virtual event I<virtual> with the physical
-event sequence(s) given by the I<sequence> arguments, so that
-the virtual event will trigger whenever any one of the I<sequence>s
-occurs.
-I<Virtual> may be any string value and I<sequence> may have
-any of the values allowed for the I<sequence> argument to the
-L<bind|Tk::bind> method.
-If I<virtual> is already defined, the new physical event sequences
-add to the existing sequences for the event.
-
-=item I<$widget>-E<gt>B<eventDelete>(B<'E<lt>E<lt>>I<virtual>B<E<gt>E<gt>'> ?,I<sequence,> I<sequence, ...>?)
-
-Deletes each of the I<sequence>s from those associated with
-the virtual event given by I<virtual>.
-I<Virtual> may be any string value and I<sequence> may have
-any of the values allowed for the I<sequence> argument to the
-L<bind|Tk::bind> method.
-Any I<sequence>s not currently associated with I<virtual>
-are ignored.
-If no I<sequence> argument is provided, all physical event sequences
-are removed for I<virtual>, so that the virtual event will not
-trigger anymore.
-
-=item I<$widget>-E<gt>B<eventGenerate>(I<event> ?,I<option =E<gt> value, option =E<gt> value, ...>?)
-
-Generates a window event and arranges for it to be processed just as if
-it had come from the window system.
-I<$window> is a reference to the window for which the event
-will be generated.
-I<Event> provides a basic description of
-the event, such as B<E<lt>Shift-Button-2E<gt>> or B<E<lt>E<lt>PasteE<gt>E<gt>>.
-If I<Window> is empty the whole screen is meant, and coordinates
-are relative to the screen.
-I<Event> may have any of the forms allowed for the I<sequence>
-argument of the L<bind|Tk::bind> method except that it must consist
-of a single event pattern, not a sequence.
-I<Option-value> pairs may be used to specify additional
-attributes of the event, such as the x and y mouse position;
-see L<"EVENT FIELDS"> below. If the B<-when> option is not specified, the
-event is processed immediately: all of the handlers for the event
-will complete before the B<eventGenerate> method returns.
-If the B<-when> option is specified then it determines when the
-event is processed.
-
-=item I<$widget>-E<gt>B<eventInfo>(?'B<E<lt>E<lt>>I<virtual>B<E<gt>E<gt>'>?)
-
-Returns information about virtual events.
-If the B<E<lt>E<lt>>I<virtual>B<E<gt>E<gt>> argument is omitted, the return value
-is a list of all the virtual events that are currently defined.
-If B<E<lt>E<lt>>I<virtual>B<E<gt>E<gt>> is specified then the return value is
-a list whose elements are the physical event sequences currently
-defined for the given virtual event; if the virtual event is
-not defined then B<undef> is returned.
-
-=back
-
-=head1 EVENT FIELDS
-
-The following options are supported for the B<eventGenerate>
-method. These correspond to the ``%'' expansions
-allowed in binding callback for the L<bind|Tk::bind> method.
-
-=over 4
-
-=item B<-above> => I<window>
-
-I<Window> specifies the I<above> field for the event,
-either as a window path name or as an integer window id.
-Valid for B<Configure> events.
-Corresponds to the L<%a|Tk::bind/'a'> substitution for binding scripts.
-
-=item B<-borderwidth> => I<size>
-
-I<Size> must be a screen distance; it specifies the
-I<border_width> field for the event.
-Valid for B<Configure> events.
-Corresponds to the L<%B|Tk::bind/'B'> substitution for binding scripts.
-
-=item B<-button> => I<number>
-
-I<Number> must be an integer; it specifies the I<detail> field
-for a B<ButtonPress> or B<ButtonRelease> event, overriding
-any button number provided in the base I<event> argument.
-Corresponds to the L<%b|Tk::bind/'b'> substitution for binding scripts.
-
-=item B<-count> => I<number>
-
-I<Number> must be an integer; it specifies the I<count> field
-for the event. Valid for B<Expose> events.
-Corresponds to the L<%c|Tk::bind/'c'> substitution for binding scripts.
-
-=item B<-delta> =E<gt> I<number>
-
-B<number> must be an integer; it specifies the B<delta> field for the
-B<MouseWheel> event. The delta refers to the direction and magnitude the
-mouse wheel was rotated. Note the value is not a screen distance but
-are units of motion in the mouse wheel. Typically these values are
-multiples of 120. For example, 120 should scroll the text widget up 4
-lines and -240 would scroll the text widget down 8 lines. Of course,
-other widgets may define different behaviors for mouse wheel motion.
-This field corresponds to the %D substitution for binding scripts.
-
-=item B<-detail> => I<detail>
-
-I<Detail> specifies the I<detail> field for the event
-and must be one of the following:
-
-=over 8
-
- NotifyAncestor NotifyNonlinearVirtual
- NotifyDetailNone NotifyPointer
- NotifyInferior NotifyPointerRoot
- NotifyNonlinear NotifyVirtual
-
-=back
-
-Valid for B<Enter>, B<Leave>, B<FocusIn> and
-B<FocusOut> events.
-Corresponds to the L<%d|Tk::bind/'d'> substitution for binding scripts.
-
-=item B<-focus>I< boolean>
-
-I<Boolean> must be a boolean value; it specifies the I<focus>
-field for the event.
-Valid for B<Enter> and B<Leave> events.
-Corresponds to the L<%f|Tk::bind/'f'> substitution for binding scripts.
-
-=item B<-height>I< size>
-
-I<Size> must be a screen distance; it specifies the I<height>
-field for the event. Valid for B<Configure> events.
-Corresponds to the L<%h|Tk::bind/'h'> substitution for binding scripts.
-
-=item B<-keycode>I< number>
-
-I<Number> must be an integer; it specifies the I<keycode>
-field for the event.
-Valid for B<KeyPress> and B<KeyRelease> events.
-Corresponds to the L<%k|Tk::bind/'k'> substitution for binding scripts.
-
-=item B<-keysym>I< name>
-
-I<Name> must be the name of a valid keysym, such as B<g>,
-B<space>, or B<Return>; its corresponding
-keycode value is used as the I<keycode> field for event, overriding
-any detail specified in the base I<event> argument.
-Valid for B<KeyPress> and B<KeyRelease> events.
-Corresponds to the L<%K|Tk::bind/'K'> substitution for binding scripts.
-
-=item B<-mode>I< notify>
-
-I<Notify> specifies the I<mode> field for the event and must be
-one of B<NotifyNormal>, B<NotifyGrab>, B<NotifyUngrab>, or
-B<NotifyWhileGrabbed>.
-Valid for B<Enter>, B<Leave>, B<FocusIn>, and
-B<FocusOut> events.
-Corresponds to the L<%m|Tk::bind/'m'> substitution for binding scripts.
-
-=item B<-override>I< boolean>
-
-I<Boolean> must be a boolean value; it specifies the
-I<override_redirect> field for the event.
-Valid for B<Map>, B<Reparent>, and B<Configure> events.
-Corresponds to the L<%o|Tk::bind/'o'> substitution for binding scripts.
-
-=item B<-place>I< where>
-
-I<Where> specifies the I<place> field for the event; it must be
-either B<PlaceOnTop> or B<PlaceOnBottom>.
-Valid for B<Circulate> events.
-Corresponds to the L<%p|Tk::bind/'p'> substitution for binding scripts.
-
-=item B<-root>I< window>
-
-I<Window> must be either a window path name or an integer window
-identifier; it specifies the I<root> field for the event.
-Valid for B<KeyPress>, B<KeyRelease>, B<ButtonPress>,
-B<ButtonRelease>, B<Enter>, B<Leave>, and B<Motion>
-events.
-Corresponds to the L<%R|Tk::bind/'R'> substitution for binding scripts.
-
-=item B<-rootx>I< coord>
-
-I<Coord> must be a screen distance; it specifies the I<x_root>
-field for the event.
-Valid for B<KeyPress>, B<KeyRelease>, B<ButtonPress>,
-B<ButtonRelease>, B<Enter>, B<Leave>, and B<Motion>
-events. Corresponds to the L<%X|Tk::bind/'X'> substitution for binding scripts.
-
-=item B<-rooty>I< coord>
-
-I<Coord> must be a screen distance; it specifies the I<y_root>
-field for the event.
-Valid for B<KeyPress>, B<KeyRelease>, B<ButtonPress>,
-B<ButtonRelease>, B<Enter>, B<Leave>, and B<Motion>
-events.
-Corresponds to the L<%Y|Tk::bind/'Y'> substitution for binding scripts.
-
-=item B<-sendevent>I< boolean>
-
-B<Boolean> must be a boolean value; it specifies the I<send_event>
-field for the event. Valid for all events. Corresponds to the
-L<%E|Tk::bind/'E'> substitution for binding scripts.
-
-=item B<-serial>I< number>
-
-I<Number> must be an integer; it specifies the I<serial> field
-for the event. Valid for all events.
-Corresponds to the L<%#|Tk::bind/'#'> substitution for binding scripts.
-
-=item B<-state>I< state>
-
-I<State> specifies the I<state> field for the event.
-For B<KeyPress>, B<KeyRelease>, B<ButtonPress>,
-B<ButtonRelease>, B<Enter>, B<Leave>, and B<Motion> events
-it must be an integer value.
-For B<Visibility> events it must be one of B<VisibilityUnobscured>,
-B<VisibilityPartiallyObscured>, or B<VisibilityFullyObscured>.
-This option overrides any modifiers such as B<Meta> or B<Control>
-specified in the base I<event>.
-Corresponds to the L<%s|Tk::bind/'s'> substitution for binding scripts.
-
-=item B<-subwindow>I< window>
-
-I<Window> specifies the I<subwindow> field for the event, either
-as a path name for a Tk widget or as an integer window identifier.
-Valid for B<KeyPress>, B<KeyRelease>, B<ButtonPress>,
-B<ButtonRelease>, B<Enter>, B<Leave>, and B<Motion> events.
-Similar to L<%S|Tk::bind/'S'> substitution for binding scripts.
-
-=item B<-time>I< integer>
-
-I<Integer> must be an integer value; it specifies the I<time> field
-for the event.
-Valid for B<KeyPress>, B<KeyRelease>, B<ButtonPress>,
-B<ButtonRelease>, B<Enter>, B<Leave>, B<Motion>,
-and B<Property> events.
-Corresponds to the L<%t|Tk::bind/'t'> substitution for binding scripts.
-
-
-=item B<-warp>I< boolean>
-
-I<boolean> must be a boolean value; it specifies whether
-the screen pointer should be warped as well.
-Valid for B<KeyPress>, B<KeyRelease>, B<ButtonPress>,
-B<ButtonRelease>, and B<Motion> events.
-
-=item B<-width>I< size>
-
-I<Size> must be a screen distance; it specifies the I<width> field
-for the event.
-Valid for B<Configure> events.
-Corresponds to the L<%w|Tk::bind/'w'> substitution for binding scripts.
-
-=item B<-when>I< when>
-
-I<When> determines when the event will be processed; it must have one
-of the following values:
-
-=over 8
-
-=item B<now>
-
-Process the event immediately, before the command returns.
-This also happens if the B<-when> option is omitted.
-
-=item B<tail>
-
-Place the event on perl/Tk's event queue behind any events already
-queued for this application.
-
-=item B<head>
-
-Place the event at the front of perl/Tk's event queue, so that it
-will be handled before any other events already queued.
-
-=item B<mark>
-
-Place the event at the front of perl/Tk's event queue but behind any
-other events already queued with B<-when mark>.
-This option is useful when generating a series of events that should
-be processed in order but at the front of the queue.
-
-=back
-
-=item B<-x>I< coord>
-
-I<Coord> must be a screen distance; it specifies the I<x> field
-for the event.
-Valid for B<KeyPress>, B<KeyRelease>, B<ButtonPress>,
-B<ButtonRelease>, B<Motion>, B<Enter>, B<Leave>,
-B<Expose>, B<Configure>, B<Gravity>, and B<Reparent>
-events.
-Corresponds to the the L<%x|Tk::bind/'x'> substitution for binding scripts.
-If I<Window> is empty the coordinate is relative to the
-screen, and this option corresponds to the L<%X|Tk::bind/'X'> substitution
-for binding scripts.
-
-=item B<-y>I< coord>
-
-I<Coord> must be a screen distance; it specifies the I<y>
-field for the event.
-Valid for B<KeyPress>, B<KeyRelease>, B<ButtonPress>,
-B<ButtonRelease>, B<Motion>, B<Enter>, B<Leave>,
-B<Expose>, B<Configure>, B<Gravity>, and B<Reparent>
-events.
-Corresponds to the the L<%y|Tk::bind/'y'> substitution for binding scripts.
-If I<Window> is empty the coordinate is relative to the
-screen, and this option corresponds to the L<%Y|Tk::bind/'Y'> substitution
-for binding scripts.
-
-Any options that are not specified when generating an event are filled
-with the value 0, except for I<serial>, which is filled with the
-next X event serial number.
-
-=back
-
-=head1 VIRTUAL EVENT EXAMPLES
-
-In order for a virtual event binding to trigger, two things must
-happen. First, the virtual event must be defined with the
-B<eventAdd> method. Second, a binding must be created for
-the virtual event with the B<bind> method.
-Consider the following virtual event definitions:
-
- $widget->eventAdd('<<Paste>>' => '<Control-y>');
- $widget->eventAdd('<<Paste>>' => '<Button-2>');
- $widget->eventAdd('<<Save>>' => '<Control-X><Control-S>');
- $widget->eventAdd('<<Save>>' => '<Shift-F12>');
-
-In the B<bind> method, a virtual event can be bound like any other
-builtin event type as follows:
-
- $entry->bind('Tk::Entry', '<<Paste>>' => sub {
- $entry->Insert($entry->selectionGet) });
-
-The double angle brackets are used to specify that a virtual event is being
-bound. If the user types Control-y or presses button 2, or if
-a B<E<lt>E<lt>PasteE<gt>E<gt>> virtual event is synthesized with B<eventGenerate>,
-then the B<E<lt>E<lt>PasteE<gt>E<gt>> binding will be invoked.
-
-If a virtual binding has the exact same sequence as a separate
-physical binding, then the physical binding will take precedence.
-Consider the following example:
-
- $mw->eventAdd('<<Paste>>' => '<Control-y>','<Meta-Control-y>');
- $mw->bind('Tk::Entry', '<Control-y>' => sub{print 'Control-y'});
- $mw->bind('Tk::Entry', '<<Paste>>' => sub{print 'Paste'});
-
-When the user types Control-y the B<E<lt>Control-yE<gt>> binding
-will be invoked, because a physical event is considered
-more specific than a virtual event, all other things being equal.
-However, when the user types Meta-Control-y the
-B<E<lt>E<lt>PasteE<gt>E<gt>> binding will be invoked, because the
-B<Meta> modifier in the physical pattern associated with the
-virtual binding is more specific than the B<E<lt>Control-y>E<gt> sequence for
-the physical event.
-
-Bindings on a virtual event may be created before the virtual event exists.
-Indeed, the virtual event never actually needs to be defined, for instance,
-on platforms where the specific virtual event would meaningless or
-ungeneratable.
-
-When a definition of a virtual event changes at run time, all windows
-will respond immediately to the new definition.
-Starting from the preceding example, if the following code is executed:
-
- $entry->bind(ref($entry), '<Control-y>' => undef);
- $entry->eventAdd('<<Paste>>' => '<Key-F6>');
-
-the behavior will change such in two ways. First, the shadowed
-B<E<lt>E<lt>PasteE<gt>E<gt>> binding will emerge.
-Typing Control-y will no longer invoke the B<E<lt>Control-yE<gt>> binding,
-but instead invoke the virtual event B<E<lt>E<lt>PasteE<gt>E<gt>>. Second,
-pressing the F6 key will now also invoke the B<E<lt>E<lt>PasteE<gt>E<gt>> binding.
-
-=head1 SEE ALSO
-
-L<Tk::bind|Tk::bind>
-L<Tk::callbacks|Tk::callbacks>
-
-=head1 KEYWORDS
-
-event, binding, define, handle, virtual event
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/exit.pod b/Master/tlpkg/tlperl/lib/Tk/exit.pod
deleted file mode 100644
index bb564cd0b82..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/exit.pod
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 1993 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::exit - End the application
-
-=for category Binding Events and Callbacks
-
-=head1 SYNOPSIS
-
- use Tk qw(exit);
- ...
- B<exit>?(I<returnCode>)?;
-
-=head1 DESCRIPTION
-
-Terminate the process, returning I<returnCode> to the
-system as the exit status.
-If I<returnCode> isn't specified then it defaults
-to 0.
-
-If calling C<exit> from code invoked via a Tk callback then
-this Tk version of C<exit> cleans up more reliably than using
-the perl C<exit>.
-
-=head1 CAVEATS
-
-Using C<exit> from a forked process will terminate both the child
-process B<and> the parent process. As C<Tk::exit> is imported by
-default one should use C<CORE::exit> in the forked process instead.
-
-=head1 KEYWORDS
-
-exit, process
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/file.xbm b/Master/tlpkg/tlperl/lib/Tk/file.xbm
deleted file mode 100644
index 7bf12bb4c9f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/file.xbm
+++ /dev/null
@@ -1,5 +0,0 @@
-#define file_width 12
-#define file_height 12
-static unsigned char file_bits[] = {
- 0xfe, 0x00, 0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0xfe, 0x03};
diff --git a/Master/tlpkg/tlperl/lib/Tk/file.xpm b/Master/tlpkg/tlperl/lib/Tk/file.xpm
deleted file mode 100644
index 10cc24f9a1e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/file.xpm
+++ /dev/null
@@ -1,18 +0,0 @@
-/* XPM */
-static char * file_xpm[] = {
-"12 12 3 1",
-" s None c None",
-". c #000000000000",
-"X c white",
-" ........ ",
-" .XXXXXX. ",
-" .XXXXXX... ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .......... "};
diff --git a/Master/tlpkg/tlperl/lib/Tk/fileevent.pod b/Master/tlpkg/tlperl/lib/Tk/fileevent.pod
deleted file mode 100644
index 1a98cfd6b71..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/fileevent.pod
+++ /dev/null
@@ -1,112 +0,0 @@
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::fileevent - Execute a callback when a filehandle becomes readable or writable
-
-=for category Binding Events and Callbacks
-
-=head1 SYNOPSIS
-
-I<$widget>-E<gt>B<fileevent>(I<fileHandle>,B<readable>?,I<callback>?)
-
-I<$widget>-E<gt>B<fileevent>(I<fileHandle>,B<writable>?,I<callback>?)
-
-=head1 DESCRIPTION
-
-This command is used to create I<file event handlers>. A file event
-handler is a binding between a filehandle and a callback, such that the callback
-is evaluated whenever the filehandle becomes readable or writable. File event
-handlers are most commonly used to allow data to be received from another
-process on an event-driven basis, so that the receiver can continue to
-interact with the user while waiting for the data to arrive. If an
-application invokes C<E<lt>E<gt>>, C<sysread> or C<read> on a blocking filehandle when
-there is no input data available, the process will block; until the input
-data arrives, it will not be able to service other events, so it will
-appear to the user to ``freeze up''. With B<fileevent>, the process can
-tell when data is present and only invoke B<gets> or B<read> when
-they won't block.
-
-The I<fileHandle> argument to B<fileevent> refers to an open filehandle,
-such as the return value from a previous B<open> or B<socket>
-command.
-If the I<callback> argument is specified, then B<fileevent>
-creates a new event handler: I<callback> will be evaluated
-whenever the filehandle becomes readable or writable (depending on the
-argument to B<fileevent>).
-In this case B<fileevent> returns an empty string.
-The B<readable> and B<writable> event handlers for a file
-are independent, and may be created and deleted separately.
-However, there may be at most one B<readable> and one B<writable>
-handler for a file at a given time in a given interpreter.
-If B<fileevent> is called when the specified handler already
-exists in the invoking interpreter, the new callback replaces the old one.
-
-If the I<callback> argument is not specified, B<fileevent>
-returns the current callback for I<fileHandle>, or an empty string
-if there is none.
-If the I<callback> argument is specified as an empty string
-then the event handler is deleted, so that no callback will be invoked.
-A file event handler is also deleted automatically whenever
-its filehandle is closed or its interpreter is deleted.
-
-A filehandle is considered to be readable if there is unread data
-available on the underlying device.
-A filehandle is also considered to be readable if an end of file or
-error condition is present on the underlying file or device.
-It is important for I<callback> to check for these conditions
-and handle them appropriately; for example, if there is no special
-check for end of file, an infinite loop may occur where I<callback>
-reads no data, returns, and is immediately invoked again.
-
-A filehandle is considered to be writable if at least one byte of data
-can be written to the underlying file or device without blocking,
-or if an error condition is present on the underlying file or device.
-
-Event-driven I/O works best for filehandles that have been
-placed into nonblocking mode.
-In blocking mode, a C<print> command may block if you give it
-more data than the underlying file or device can accept, and a
-C<E<lt>E<gt>>, C<sysread> or C<read> command will block if you attempt to read
-more data than is ready; no events will be processed while the
-commands block.
-In nonblocking mode C<print>, C<E<lt>E<gt>>, C<sysread> and C<read> never block.
-See the documentation for the individual commands for information
-on how they handle blocking and nonblocking filehandles.
-
-The callback for a file event is executed in the context of I<$widget>
-with which B<fileevent> was invoked.
-If an error occurs while executing the callback then the
-L<Tk::Error> mechanism is used to report the error.
-In addition, the file event handler is deleted if it ever returns
-an error; this is done in order to prevent infinite loops due to
-buggy handlers.
-
-=head1 BUGS
-
-On windows platforms B<fileevent> is limited in the types of filehandles
-that behave correctly. Making filefhandles non-blocking is only implemented
-on a subset of UNIX platforms (see L<Tk::IO>).
-
-=head1 CREDITS
-
-B<fileevent> is based on the B<addinput> command created
-by Mark Diekhans.
-
-=head1 SEE ALSO
-
-L<Tk::IO|Tk::IO>
-L<Tk::callbacks|Tk::callbacks>
-
-=head1 KEYWORDS
-
-asynchronous I/O, blocking, filehandle, event handler, nonblocking, readable,
-callback, writable.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/focus.pod b/Master/tlpkg/tlperl/lib/Tk/focus.pod
deleted file mode 100644
index d7e610d5d20..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/focus.pod
+++ /dev/null
@@ -1,166 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::focus - Manage the input focus
-
-=for category User Interaction
-
-=head1 SYNOPSIS
-
-S< >I<$widget>-E<gt>B<focus>
-
-S< >I<$widget>-E<gt>B<focus>I<Option>
-
-S< >I<$widget>-E<gt>B<focusNext>
-
-S< >I<$widget>-E<gt>B<focusPrev>
-
-S< >I<$widget>-E<gt>B<focusFollowsMouse>
-
-=head1 DESCRIPTION
-
-The B<focus> methods are used to manage the Tk input focus.
-At any given time, one window on each display is designated as
-the I<focus window>; any key press or key release events for the
-display are sent to that window.
-It is normally up to the window manager to redirect the focus among the
-top-level windows of a display. For example, some window managers
-automatically set the input focus to a top-level window whenever
-the mouse enters it; others redirect the input focus only when
-the user clicks on a window.
-Usually the window manager will set the focus
-only to top-level windows, leaving it up to the application to
-redirect the focus among the children of the top-level.
-
-Tk remembers one focus window for each top-level (the most recent
-descendant of that top-level to receive the focus); when the window
-manager gives the focus
-to a top-level, Tk automatically redirects it to the remembered
-window. Within a top-level Tk uses an I<explicit> focus model
-by default. Moving the mouse within a top-level does not normally
-change the focus; the focus changes only when a widget
-decides explicitly to claim the focus (e.g., because of a button
-click), or when the user types a key such as Tab that moves the
-focus.
-
-The method B<focusFollowsMouse> may be invoked to
-create an I<implicit> focus model: it reconfigures Tk so that
-the focus is set to a window whenever the mouse enters it.
-The methods B<focusNext> and B<focusPrev>
-implement a focus order among the windows of a top-level; they
-are used in the default bindings for Tab and Shift-Tab, among other
-things.
-
-The B<focus> methods can take any of the following forms:
-
-=over 4
-
-=item I<$widget>-E<gt>B<focusCurrent>
-
-Returns the focus window on the display containing
-the I<$widget>, or an empty string if no window in
-this application has the focus on that display.
-
-=item I<$widget>-E<gt>B<focus>
-
-If the application currently has the input focus on I<$widget>'s
-display, this command resets the input focus for I<$widget>'s display
-to I<$widget> and returns an empty string.
-If the application doesn't currently have the input focus on
-I<$widget>'s display, I<$widget> will be remembered as the focus
-for its top-level; the next time the focus arrives at the top-level,
-Tk will redirect it to I<$widget>.
-
-=item I<$widget>-E<gt>B<focusForce>
-
-Sets the focus of I<$widget>'s display to I<$widget>, even if
-the application doesn't currently have the input focus for the display.
-This command should be used sparingly, if at all.
-In normal usage, an application should not claim the focus for
-itself; instead, it should wait for the window manager to give it
-the focus.
-
-=item I<$widget>-E<gt>B<focusLastfor>
-
-Returns the name of the most recent window to have the input focus
-among all the windows in the same top-level as I<$widget>.
-If no window in that top-level has ever had the input focus, or
-if the most recent focus window has been deleted, then
-the top-level is returned. The return value is the window that
-will receive the input focus the next time the window manager gives
-the focus to the top-level.
-
-=item I<$widget>-E<gt>B<focusNext>
-
-=item I<$widget>-E<gt>B<focusPrev>
-
-B<focusNext> is a utility method used for keyboard traversal, but can be
-useful in other contexts.
-It sets the focus to the ``next'' window after I<$widget> in focus order.
-The focus order is determined by
-the stacking order of windows and the structure of the window hierarchy.
-Among siblings, the focus order is the same as the stacking order, with the
-lowest window being first.
-If a window has children, the window is visited first, followed by
-its children (recursively), followed by its next sibling.
-Top-level windows other than I<$widget> are skipped, so that
-B<focusNext> never returns a window in a different top-level
-from I<$widget>.
-
-After computing the next window, B<focusNext> examines the
-window's B<-takefocus> option to see whether it should be skipped.
-If so, B<focusNext> continues on to the next window in the focus
-order, until it eventually finds a window that will accept the focus
-or returns back to I<$widget>.
-
-B<focusPrev> is similar to B<focusNext> except that it
-sets the focus to the window just before I<$widget> in the focus order.
-
-=item I<$widget>-E<gt>B<focusFollowsMouse>
-
-B<focusFollowsMouse> changes the focus model for the application
-to an implicit one where the window under the mouse gets the focus.
-After this procedure is called, whenever the mouse enters a window
-Tk will automatically give it the input focus.
-The B<focus> command may be used to move the focus to a window
-other than the one under the mouse, but as soon as the mouse moves
-into a new window the focus will jump to that window.
-Note: at present there is no built-in support for returning the
-application to an explicit focus model; to do this you'll have
-to write a script that deletes the bindings created by
-B<focusFollowsMouse>.
-
-=back
-
-=head1 QUIRKS
-
-When an internal window receives the input focus, Tk doesn't actually
-set the X focus to that window; as far as X is concerned, the focus
-will stay on the top-level window containing the window with the focus.
-However, Tk generates FocusIn and FocusOut events just as if the X
-focus were on the internal window. This approach gets around a
-number of problems that would occur if the X focus were actually moved;
-the fact that the X focus is on the top-level is invisible unless
-you use C code to query the X server directly.
-
-=head1 CAVEATS
-
-Note that for the B<Canvas> widget, the call to B<focus> has to be
-fully qualified. This is because there is already a focus method for
-the B<Canvas> widget, which sets the focus on individual canvas tags.
-
-S< >I<$canvas>-E<gt>B<Tk::focus>
-
-
-=head1 KEYWORDS
-
-events, focus, keyboard, top-level, window manager
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/folder.xbm b/Master/tlpkg/tlperl/lib/Tk/folder.xbm
deleted file mode 100644
index 0398f0de777..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/folder.xbm
+++ /dev/null
@@ -1,5 +0,0 @@
-#define folder_width 16
-#define folder_height 10
-static unsigned char folder_bits[] = {
- 0xfc, 0x00, 0x02, 0x07, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08,
- 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0xff, 0x07};
diff --git a/Master/tlpkg/tlperl/lib/Tk/folder.xpm b/Master/tlpkg/tlperl/lib/Tk/folder.xpm
deleted file mode 100644
index fda7c15a549..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/folder.xpm
+++ /dev/null
@@ -1,21 +0,0 @@
-/* XPM */
-static char * folder_xpm[] = {
-/* width height num_colors chars_per_pixel */
-"16 12 3 1",
-/* colors */
-" s None c None",
-". c black",
-"X c #f0ff80",
-/* pixels */
-" .... ",
-" .XXXX. ",
-" .XXXXXX. ",
-"............. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-"............. "};
diff --git a/Master/tlpkg/tlperl/lib/Tk/form.pod b/Master/tlpkg/tlperl/lib/Tk/form.pod
deleted file mode 100644
index 64208c8e26e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/form.pod
+++ /dev/null
@@ -1,397 +0,0 @@
-# Copyright (c) 1996, Expert Interface Technologies
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# The file man.macros and some of the macros used by this file are
-# copyrighted: (c) 1990 The Regents of the University of California.
-# (c) 1994-1995 Sun Microsystems, Inc.
-# The license terms of the Tcl/Tk distribution are in the file
-# license.tcl.
-
-=head1 NAME
-
-Tk::form - Geometry manager based on attachment rules
-
-=for category Tk Geometry Management
-
-=head1 SYNOPSIS
-
-S< >I<$widget>->B<form>?(I<args>)?
-
-S< >I<$widget>->B<form>I<Option>?(I<args>)?
-
-=head1 DESCRIPTION
-
-The B<form> method is used to communicate with the
-B<form> Geometry Manager, a geometry manager that arranges the
-geometry of the children in a parent window according to attachment
-rules. The B<form> geometry manager is very flexible and
-powerful; it can be used to emulate all the existing features of the
-Tk packer and placer geometry managers (see L<pack|Tk::pack>,
-L<place|Tk::place>).
-The B<form> method can have any of several forms,
-depending on I<Option>:
-
-=over 4
-
-=item I<$slave>->B<form>?(I<options>)?
-
-Sets or adjusts the attachment values of the slave window
-according to the I<-option>=>I<value> argument pairs.
-
-=over 8
-
-=item B<-b> => I<attachment>
-
-Abbreviation for the B<-bottom> option.
-
-=item B<-bottom> => I<attachment>
-
-Specifies an attachment for the bottom edge of the slave window. The
-attachment must specified according to L<"SPECIFYING ATTACHMENTS"> below.
-
-=item B<-bottomspring> => I<weight>
-
-Specifies the weight of the spring at the bottom edge of the slave
-window. See L<"USING SPRINGS"> below.
-
-=item B<-bp> => I<value>
-
-Abbreviation for the B<-padbottom> option.
-
-=item B<-bs> => I<weight>
-
-Abbreviation for the B<-bottomspring> option.
-
-=item B<-fill> => I<style>
-
-Specifies the fillings when springs are used for this widget. The
-value must be B<x>, B<y>, B<both> or B<none>.
-
-=item B<-in> => I<$master>
-
-Places the slave window into the specified I<$master> window. If the slave
-was originally in another master window, all attachment values with
-respect to the original master window are discarded. Even if the
-attachment values are the same as in the original master window, they
-need to be specified again. The B<-in> flag, when needed, must appear
-as the first flag of I<options>. Otherwise an error is
-generated.
-
-=item B<-l> => I<attachment>
-
-Abbreviation for the B<-left> option.
-
-=item B<-left> => I<attachment>
-
-Specifies an attachment for the left edge of the slave window. The
-attachment must specified according to L<"SPECIFYING ATTACHMENTS"> below.
-
-=item B<-leftspring> => I<weight>
-
-Specifies the weight of the spring at the left edge of the slave
-window. See L<"USING SPRINGS"> below.
-
-=item B<-lp> => I<value>
-
-Abbreviation for the B<-padleft> option.
-
-=item B<-ls> => I<weight>
-
-Abbreviation for the B<-leftspring> option.
-
-=item B<-padbottom> => I<value>
-
-Specifies the amount of external padding to leave on the bottom side
-of the slave. The I<value> may have any of the forms acceptable to
-B<Tk_GetPixels>.
-
-=item B<-padleft> => I<value>
-
-Specifies the amount of external padding to leave on the left side of
-the slave.
-
-=item B<-padright> => I<value>
-
-Specifies the amount of external padding to leave on the right side of
-the slave.
-
-=item B<-padtop> => I<value>
-
-Specifies the amount of external padding to leave on the top side of
-the slave.
-
-=item B<-padx> => I<value>
-
-Specifies the amount of external padding to leave on both the left and
-the right sides of the slave.
-
-=item B<-pady> => I<value>
-
-Specifies the amount of external padding to leave on both the top and
-the bottom sides of the slave.
-
-=item B<-r> => I<attachment>
-
-Abbreviation for the B<-right> option.
-
-=item B<-right> => I<attachment>
-
-Specifies an attachment for the right edge of the slave window. The
-attachment must specified according to L<"SPECIFYING ATTACHMENTS"> below.
-
-=item B<-rightspring> => I<weight>
-
-Specifies the weight of the spring at the right edge of the slave
-window. See L<"USING SPRINGS"> below.
-
-=item B<-rp> => I<value>
-
-Abbreviation for the B<-padright> option.
-
-=item B<-rs> => I<weight>
-
-Abbreviation for the B<-rightspring> option.
-
-=item B<-t> => I<attachment>
-
-Abbreviation for the B<-top> option.
-
-=item B<-top> => I<attachment>
-
-Specifies an attachment for the top edge of the slave window. The
-attachment must specified according to L<"SPECIFYING ATTACHMENTS"> below.
-
-=item B<-topspring> => I<weight>
-
-Specifies the weight of the spring at the top edge of the slave
-window. See L<"USING SPRINGS"> below.
-
-=item B<-tp> => I<value>
-
-Abbreviation for the B<-padtop> option.
-
-=item B<-ts> => I<weight>
-
-Abbreviation for the B<-topspring> option.
-
-=back
-
-=item I<$master>->B<formCheck>
-
-This method checks whether there is circular dependency in the
-attachments of the master's slaves (see L<"CIRCULAR DEPENDENCY"> below).
-It returns the Boolean value B<TRUE> if it
-discover circular dependency and B<FALSE> otherwise.
-
-=item I<$slave>->B<formForget>
-
-Removes the slave from its master and unmaps its window.
-The slave will no longer be managed by form. All attachment values
-with respect to its master window are discarded. If another slave
-is attached to this slave, then the attachment of the other slave will
-be changed to grid attachment based on its geometry.
-
-=item I<$master>->B<formGrid>?(I<x_size, y_size>)?
-
-When I<x_size> and I<y_size> are given, this method returns the
-number of grids of the I<$master> window in a pair of integers of the form
-(I<x_size, y_size>). When both I<x_size> and I<y_size> are
-given, this method changes the number of horizontal and vertical
-grids on the master window.
-
-=item I<$slave>->B<formInfo>?(I<-option)>?
-
-Queries the attachment options of a slave window. I<-option> can be
-any of the options accepted by the B<form> method. If
-I<-option> is given, only the value of that option is returned.
-Otherwise, this method returns a list whose elements are the current
-configuration state of the slave given in the same I<option-value> form
-that might be specified to B<form>. The first two
-elements in this list list are "B<-in>=>I<$master>" where
-I<$master> is the slave's master window.
-
-=item I<$master>->B<formSlaves>
-
-Returns a list of all of the slaves for the master window. The order
-of the slaves in the list is the same as their order in the packing
-order. If master has no slaves then an empty string is returned.
-
-=back
-
-=head1 SPECIFYING ATTACHMENTS
-
-One can specify an attachment for each side of a slave window managed
-by form. An attachment is specified in the the form "-I<side> =>
-[I<anchor_point>, I<offset>]". -I<side> can be one of
-B<-top>, B<-bottom>, B<-left> or B<-right>.
-
-I<Offset> is given in screen units (i.e. any of the forms
-acceptable to B<Tk_GetPixels>). A positive offset indicates
-shifting to a position to the right or bottom of an anchor point. A
-negative offset indicates shifting to a position to the left or top of
-an anchor point.
-
-I<Anchor_point> can be given in one of the
-following forms:
-
-=over 4
-
-=item B<Grid Attachment>
-
-The master window is divided into a number of horizontal and vertical
-grids. By default the master window is divided into 100x100 grids; the
-number of grids can be adjusted by the B<formGrid> method. A
-grid attachment anchor point is given by a B<%> sign followed by an
-integer value. For example, B<'%0'> specifies the first grid
-line (the top or left edge of the master window). B<'%100'> specifies
-the last grid line (the bottom or right edge of the master window).
-
-=item B<Opposite Side Attachment>
-
-Opposite attachment specifies an anchor point located on the
-B<opposite> side of another slave widget, which must be managed by
-form in the same master window. An opposite attachment anchor point
-is given by the name of another widget. For example,
-"I<$b>->B<form>(B<-top>=>[I<$a>,0])" attaches the top side of the widget I<$b> to the
-bottom of the widget I<$a>.
-
-=item B<Parallel Side Attachment>
-
-Opposite attachment specifies an anchor point located on the
-B<same> side of another slave widget, which must be managed by
-form in the same master window. An parallel attachment anchor point
-is given by the sign B<E<amp>> follwed by the name of another widget.
-For example, "I<$b>->B<form>(B<-top>=>['&',I<$a>,0])" attaches the top side of
-the widget I<$b> to the top of the widget I<$a>, making
-the top sides of these two widgets at the same vertical position
-in their parent window.
-
-=item B<No Attachment>
-
-Specifies a side of the slave to be attached to nothing, indicated by
-the keyword B<none>. When the B<none> anchor point is given, the
-offset must be zero (or not present).
-When a side of a slave is attached to B<['none', 0]>, the position
-of this side is calculated by the position of the other side and the
-natural size of the slave. For example, if a the left side of a
-widget is attached to B<['%0', 100]>, its right side attached to
-B<['none', 0]>, and the natural size of the widget is B<50> pixels,
-the right side of the widget will be positioned at pixel
-B<['%0', 149]>.
-When both B<-top> and B<-bottom> are attached to B<none>,
-then by default B<-top> will be attached to B<['%0', 0]>. When both
-B<-left> and B<-right> are attached to none, then by default
-B<-left> will be attached to B<['%0', 0]>.
-
-=back
-
-Shifting effects can be achieved by specifying a non-zero offset with
-an anchor point. In the following example, the top side of
-widget I<\$b> is attached to the bottom of
-I<\$a>; hence I<\$b>
-always appears below I<\$a>. Also, the left edge of I<\$b>
-is attached to the left side of I<\$a> with a 10
-pixel offest. Therefore, the left edge of I<\$b> is always
-shifted 10 pixels to the right of I<\$a>'s left edge:
-
-S< >I<$b>->B<form>(B<-left>=>[I<$a>,10], B<-top>=>[I<$a>,0]);
-
-=head2 ABBREVIATIONS:
-
-Certain abbreviations can be made on the
-attachment specifications: First an offset of zero can be omitted.
-Thus, the following two lines are equivalent:
-
-S< >I<$b>->B<form>(B<-top>=>[I<$a>,0], B<-right>=>['%100',0]);
-
-S< >I<$b>->B<form>(B<-top>=>[I<$a>], B<-right>=>'%100');
-
-In the second case, when the anchor point is omitted, the offset must
-be given. A default anchor point is chosen according to the value of
-the offset. If the anchor point is B<0> or positive, the default
-anchor point %0 is used; thus, "I<$b>->B<form>(B<-top>=>15)" attaches the top
-edge of I<$b> to a position 15 pixels below the top edge of the
-master window. If the anchor point is "B<-0>" or negative, the
-default anchor point B<%100> is used; thus, "I<$a>->B<form>(B<-right>=>-2)"
-attaches the right edge of I<\$a> to a position 2 pixels to
-the left of the master window's right edge. An further example
-below shows a method with its equivalent abbreviation.
-
-S< >I<$b>->B<form>(B<-top>=>['%0',10], B<-bottom>=>['%100',0]);
-
-S< >I<$b>->B<form>(B<-top>=>10, B<-bottom>=>-0);
-
-=head1 USING SPRINGS
-
-To be written.
-
-=head1 ALGORITHM OF FORM
-
-B<form> starts with any slave in the list of slaves of the master
-window. Then it tries to determine the position of each side of the
-slave.
-
-If the attachment of a side of the slave is grid attachment, the
-position of the side is readily determined.
-
-If the attachment of this side is B<none>, then form tries to
-determine the position of the opposite side first, and then use the
-position of the opposite side and the natural size of the slave to
-determine the position of this side.
-
-If the attachment is opposite or parallel widget attachments, then
-form tries to determine the positions of the other widget first,
-and then use the positions of the other widget and the natural size of
-the slave determine the position of this side. This recursive
-algorithmis carried on until the positions of all slaves are
-determined.
-
-=head1 CIRCULAR DEPENDENCY
-
-The algorithm of form will fail if a circular dependency exists in
-the attachments of the slaves. For example:
-
-S< >I<$c>->B<form>(B<-left>=>I<$b>);
-
-S< >I<$b>->B<form>(B<-right>=>I<$c>);
-
-In this example, the position of the left side of I<$b> depends on
-the right side of I<$c>, which in turn depends on the left side of I<$b>.
-
-When a circular dependency is discovered during the execution of the
-form algorithm, form will generate a background error and the
-geometry of the slaves are undefined (and will be arbitrary). Notice
-that form only executes the algorithm when the specification of the
-slaves' attachments is complete. Therefore, it allows intermediate
-states of circular dependency during the specification of the slaves'
-attachments. Also, unlike the Motif Form manager widget, form
-defines circular dependency as
-``I<dependency in the same dimension>''.
-Therefore, the following code fragment will does not
-have circular dependency because the two widgets do not depend on each
-other in the same dimension (I<$b> depends I<$c> in the
-horizontal dimension and I<$c> depends on I<$b> in the vertical
-dimension):
-
-S< >I<$b>->B<form>(B<-left>=>I<$c>);
-
-S< >I<$c>->B<form>(B<-top>=>I<$b>);
-
-=head1 BUGS
-
-Springs have not been fully implemented yet.
-
-=head1 SEE ALSO
-
-L<Tk::grid|Tk::grid>
-L<Tk::pack|Tk::pack>
-L<Tk::place|Tk::place>
-
-=head1 KEYWORDS
-
-geometry manager, form, attachment, spring, propagation, size, pack,
-tix, master, slave
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/getOpenFile.pod b/Master/tlpkg/tlperl/lib/Tk/getOpenFile.pod
deleted file mode 100644
index 828634bdf34..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/getOpenFile.pod
+++ /dev/null
@@ -1,182 +0,0 @@
-# Copyright (c) 1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-=head1 NAME
-
-Tk::getOpenFile, Tk::getSaveFile - pop up a dialog box for the user to select a file to open or save.
-
-=for category Popups and Dialogs
-
-=head1 SYNOPSIS
-
-S< >I<$widget>-E<gt>B<getOpenFile>(?I<-option>=E<gt>value, ...>?)
-
-S< >I<$widget>-E<gt>B<getSaveFile>(?I<-option>=E<gt>value, ...>?)
-
-=head1 DESCRIPTION
-
-The methods B<getOpenFile> and B<getSaveFile> pop up a
-dialog box for the user to select a file to open or save.
-
-The B<getOpenFile> method is usually associated with the B<Open>
-command in the B<File> menu. Its purpose is for the user to select an
-existing file I<only>. If the user enters an non-existent file, the
-dialog box gives the user an error prompt and requires the user to give
-an alternative selection. If an application allows the user to create
-new files, it should do so by providing a separate B<New> menu command.
-
-The B<getSaveFile> method is usually associated with the B<Save>
-as command in the B<File> menu. If the user enters a file that
-already exists, the dialog box prompts the user for confirmation
-whether the existing file should be overwritten or not.
-
-If the user selects a file, both B<getOpenFile> and
-B<getSaveFile> return the full pathname of this file. If the
-user cancels the operation, both commands return an undefined value.
-
-The following I<option-value> pairs are possible as command line
-arguments to these two commands:
-
-=over 4
-
-=item B<-defaultextension> =E<gt> I<extension>
-
-Specifies a string that will be appended to the filename if the user
-enters a filename without an extension. The default value is the empty
-string, which means no extension will be appended to the filename in
-any case. This option is ignored on the Macintosh platform, which
-does not require extensions to filenames, and the UNIX implementation
-guesses reasonable values for this from the B<-filetypes>
-option when this is not supplied.
-
-=item B<-filetypes> =E<gt> [I<filePattern> ?, ...?]
-
-If a B<File types> listbox exists in the file dialog on the particular
-platform, this option gives the I<filetype>s in this listbox. When
-the user choose a filetype in the listbox, only the files of that type
-are listed. If this option is unspecified, or if it is set to the
-empty list, or if the B<File types> listbox is not supported by the
-particular platform then all files are listed regardless of their
-types. See L<"SPECIFYING FILE PATTERNS"> below for a
-discussion on the contents of I<filePattern>s.
-
-=item B<-initialdir> =E<gt> I<directory>
-
-Specifies that the files in I<directory> should be displayed
-when the dialog pops up. If this parameter is not specified, then
-the files in the current working directory are displayed. This
-option may not always work on the Macintosh. This is not a bug.
-Rather, the I<General Controls> control panel on the Mac allows the
-end user to override the application default directory.
-
-=item B<-initialfile> =E<gt> I<filename>
-
-Specifies a filename to be displayed in the dialog when it pops
-up. This option is ignored by the B<getOpenFile> method.
-
-=item B<-multiple>
-
-Allows the user to choose multiple files from the Open dialog. On the
-Macintosh, this is only available when Navigation Services are
-installed.
-
-=item B<-message> =E<gt> I<string>
-
-Specifies a message to include in the client area of the dialog. This
-is only available on the Macintosh, and only when Navigation Services
-are installed.
-
-=item B<-title> =E<gt> I<titleString>
-
-Specifies a string to display as the title of the dialog box. If this
-option is not specified, then a default title is displayed. This
-option is ignored on the Macintosh platform.
-
-=back
-
-=head1 SPECIFYING FILE PATTERNS
-
-The I<filePattern>s given by the B<-filetypes> option
-are a list of file patterns. Each file pattern is a list of the
-form
-
- typeName [extension ?extension ...?] ?[macType ?macType ...?]?
-
-I<typeName> is the name of the file type described by this
-file pattern and is the text string that appears in the B<File types>
-listbox. I<extension> is a file extension for this file pattern.
-I<macType> is a four-character Macintosh file type. The list of
-I<macType>s is optional and may be omitted for applications that do
-not need to execute on the Macintosh platform.
-
-Several file patterns may have the same I<typeName,> in which case
-they refer to the same file type and share the same entry in the
-listbox. When the user selects an entry in the listbox, all the files
-that match at least one of the file patterns corresponding
-to that entry are listed. Usually, each file pattern corresponds to a
-distinct type of file. The use of more than one file patterns for one
-type of file is necessary on the Macintosh platform only.
-
-On the Macintosh platform, a file matches a file pattern if its
-name matches at least one of the I<extension>(s) AND it
-belongs to at least one of the I<macType>(s) of the
-file pattern. For example, the B<C Source Files> file pattern in the
-sample code matches with files that have a B<\.c> extension AND
-belong to the I<macType> B<TEXT>. To use the OR rule instead,
-you can use two file patterns, one with the I<extensions> only and
-the other with the I<macType> only. The B<GIF Files> file type
-in the sample code matches files that EITHER have a B<\.gif>
-extension OR belong to the I<macType> B<GIFF>.
-
-On the Unix and Windows platforms, a file matches a file pattern
-if its name matches at at least one of the I<extension>(s) of
-the file pattern. The I<macType>s are ignored.
-
-=head1 SPECIFYING EXTENSIONS
-
-On the Unix and Macintosh platforms, extensions are matched using
-glob-style pattern matching. On the Windows platforms, extensions are
-matched by the underlying operating system. The types of possible
-extensions are: (1) the special extension * matches any
-file; (2) the special extension "" matches any files that
-do not have an extension (i.e., the filename contains no full stop
-character); (3) any character string that does not contain any wild
-card characters (* and ?).
-
-Due to the different pattern matching rules on the various platforms,
-to ensure portability, wild card characters are not allowed in the
-extensions, except as in the special extension *. Extensions
-without a full stop character (e.g, ~) are allowed but may not
-work on all platforms.
-
-=head1 CAVEATS
-
-See L<Tk::chooseDirectory/CAVEATS>.
-
-=head1 EXAMPLE
-
- my $types = [
- ['Text Files', ['.txt', '.text']],
- ['TCL Scripts', '.tcl' ],
- ['C Source Files', '.c', 'TEXT'],
- ['GIF Files', '.gif', ],
- ['GIF Files', '', 'GIFF'],
- ['All Files', '*', ],
- ];
- my $filename = $widget->getOpenFile(-filetypes=>$types);
-
- if ($filename ne "") {
- # Open the file ...
- }
-
-=head1 SEE ALSO
-
-L<Tk::FBox|Tk::FBox>, L<Tk::FileSelect|Tk::FileSelect>
-
-=head1 KEYWORDS
-
-file selection dialog
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/grab.pod b/Master/tlpkg/tlperl/lib/Tk/grab.pod
deleted file mode 100644
index d74ee7da502..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/grab.pod
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright (c) 1992 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::grab - Confine pointer and keyboard events to a window sub-tree
-
-=for category User Interaction
-
-=head1 SYNOPSIS
-
-I<$widget>-E<gt>B<grab>
-
-I<$widget>-E<gt>B<grab>I<Option>
-
-=head1 DESCRIPTION
-
-This set of methods implement simple pointer and keyboard grabs for Tk.
-Tk's grabs are different than the grabs
-described in the Xlib documentation.
-When a grab is set for a particular window, Tk restricts all pointer
-events to the grab window and its descendants in Tk's window hierarchy.
-Whenever the pointer is within the grab window's subtree, the pointer
-will behave exactly the same as if there had been no grab at all
-and all events will be reported in the normal fashion.
-When the pointer is outside I<$widget>'s tree, button presses and
-releases and
-mouse motion events are reported to I<$widget>, and window entry
-and window exit events are ignored.
-The grab subtree ``owns'' the pointer:
-windows outside the grab subtree will be visible on the screen
-but they will be insensitive until the grab is released.
-The tree of windows underneath the grab window can include top-level
-windows, in which case all of those top-level windows
-and their descendants will continue to receive mouse events
-during the grab.
-
-Two forms of grabs are possible: local and global.
-A local grab affects only the grabbing application: events will
-be reported to other applications as if the grab had never occurred.
-Grabs are local by default.
-A global grab locks out all applications on the screen,
-so that only the given subtree of the grabbing application will be
-sensitive to pointer events (mouse button presses, mouse button releases,
-pointer motions, window entries, and window exits).
-During global grabs the window manager will not receive pointer
-events either.
-
-During local grabs, keyboard events (key presses and key releases)
-are delivered as usual: the window
-manager controls which application receives keyboard events, and
-if they are sent to any window in the grabbing application then they are
-redirected to the focus window.
-During a global grab Tk grabs the keyboard so that all keyboard events
-are always sent to the grabbing application.
-The B<focus> method is still used to determine which window in the
-application receives the keyboard events.
-The keyboard grab is released when the grab is released.
-
-Grabs apply to particular displays. If an application has windows
-on multiple displays then it can establish a separate grab on each
-display.
-The grab on a particular display affects only the windows on
-that display.
-It is possible for different applications on a single display to have
-simultaneous local grabs, but only one application can have a global
-grab on a given display at once.
-
-The B<grab> methods take any of the following forms:
-
-=over 4
-
-=item I<$widget>-E<gt>B<grabCurrent>
-
-Returns the current grab
-window in this application for I<$widget>'s display, or an empty
-string if there is no such window.
-
-=item I<$widget>-E<gt>B<grabs>
-
-Returns a list whose elements
-are all of the windows grabbed by this application for all displays,
-or an empty string if the application has no grabs.
-
-I<Not implemented yet!>
-
-=item I<$widget>-E<gt>B<grabRelease>
-
-Releases the grab on I<$widget> if there is one, otherwise does
-nothing. Returns an empty string.
-
-=item I<$widget>-E<gt>B<grab>
-
-Sets a local grab on I<$widget>.
-If a grab was already in effect for this application on
-I<$widget>'s display then it is automatically released.
-If there is already a local grab on I<$widget>, then the command
-does nothing. Returns an empty string.
-
-=item I<$widget>-E<gt>B<grabGlobal>
-
-Sets a global grab on I<$widget>.
-If a grab was already in effect for this application on
-I<$widget>'s display then it is automatically released.
-If there is already a global grab on I<$widget>,
-then the command does nothing. Returns an empty string.
-
-=item I<$widget>-E<gt>B<grabStatus>
-
-Returns B<none> if no grab is currently set on I<$widget>,
-B<local> if a local grab is set on I<$widget>, and
-B<global> if a global grab is set.
-
-=back
-
-=head1 BUGS
-
-It took an incredibly complex and gross implementation to produce
-the simple grab effect described above.
-Given the current implementation, it isn't safe for applications
-to use the Xlib grab facilities at all except through the Tk grab
-procedures.
-If applications try to manipulate X's grab mechanisms directly,
-things will probably break.
-
-If a single process is managing several different Tk applications,
-only one of those applications can have a local grab for a given
-display at any given time. If the applications are in different
-processes, this restriction doesn't exist.
-
-=head1 KEYWORDS
-
-grab, keyboard events, pointer events, window
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/grid.pod b/Master/tlpkg/tlperl/lib/Tk/grid.pod
deleted file mode 100644
index 8db89587a62..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/grid.pod
+++ /dev/null
@@ -1,409 +0,0 @@
-# Copyright (c) 1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::grid - Geometry manager that arranges widgets in a grid
-
-=for category Tk Geometry Management
-
-=head1 SYNOPSIS
-
-S< >I<$widget>-E<gt>B<grid>?(?I<widget> ...,? ?I<arg> ?...>?)?
-
-S< >I<$widget>-E<gt>B<grid>I<Option>?(I<arg> ?,I<arg> ...?)?
-
-=head1 DESCRIPTION
-
-The B<grid> method is used to communicate with the grid
-geometry manager that arranges widgets in rows and columns inside
-of another window, called the geometry master (or master window).
-The B<grid> method can have any of several forms, depending
-on the I<option> argument:
-
-=over 4
-
-=item I<$slave>-E<gt>B<grid>(?I<$slave, ...>??, I<options>?)
-
-The arguments consist of the optional references to more slave windows
-followed by pairs of arguments that specify how to manage the slaves.
-The characters B<->, B<x> and B<^>,
-can be specified instead of a window reference to alter the default
-location of a I<$slave>, as described in L<"RELATIVE PLACEMENT">, below.
-
-If any of the slaves are already managed by the geometry manager
-then any unspecified options for them retain their previous values rather
-than receiving default values.
-
-The following options are supported:
-
-=over 8
-
-=item B<-column> => I<n>
-
-Insert the I<$slave> so that it occupies the I<n>th column in the grid.
-Column numbers start with 0. If this option is not supplied, then the
-I<$slave> is arranged just to the right of previous slave specified on this
-call to B<grid>, or column "0" if it is the first slave. For each
-B<x> that immediately precedes the I<$slave>, the column position
-is incremented by one. Thus the B<x> represents a blank column
-for this row in the grid.
-
-=item B<-columnspan> => I<n>
-
-Insert the slave so that it occupies I<n> columns in the grid.
-The default is one column, unless the window name is followed by a
-B<->, in which case the columnspan is incremented once for each immediately
-following B<->.
-
-=item B<-in> => I<$other>
-
-Insert the slave(s) in the master
-window given by I<$other>. The default is the first slave's
-parent window.
-
-=item B<-ipadx> => I<amount>
-
-The I<amount> specifies how much horizontal internal padding to
-leave on each side of the slave(s). This is space is added
-inside the slave(s) border.
-The I<amount> must be a valid screen distance, such as B<2> or B<'.5c'>.
-It defaults to 0.
-
-=item B<-ipady> => I<amount>
-
-The I<amount> specifies how much vertical internal padding to
-leave on on the top and bottom of the slave(s).
-This space is added inside the slave(s) border.
-The I<amount> defaults to 0.
-
-=item B<-padx> => I<amount>
-
-The I<amount> specifies how much horizontal external padding to
-leave on each side of the slave(s), in screen units.
-The I<amount> defaults to 0.
-This space is added outside the slave(s) border.
-
-=item B<-pady> => I<amount>
-
-The I<amount> specifies how much vertical external padding to
-leave on the top and bottom of the slave(s), in screen units.
-The I<amount> defaults to 0.
-This space is added outside the slave(s) border.
-
-=item B<-row> => I<n>
-
-Insert the slave so that it occupies the I<n>th row in the grid.
-Row numbers start with 0. If this option is not supplied, then the
-slave is arranged on the same row as the previous slave specified on this
-call to B<grid>, or the first unoccupied row if this is the first slave.
-
-=item B<-rowspan> => I<n>
-
-Insert the slave so that it occupies I<n> rows in the grid.
-The default is one row. If the next B<grid> method contains
-B<^> characters instead of I<$slave>s that line up with the columns
-of this I<$slave>, then the B<rowspan> of this I<$slave> is
-extended by one.
-
-=item B<-sticky> => I<style>
-
-If a slave's cell is larger than its requested dimensions, this
-option may be used to position (or stretch) the slave within its cell.
-I<Style> is a string that contains zero or more of the characters
-B<n>, B<s>, B<e> or B<w>.
-The string can optionally contain spaces or
-commas, but they are ignored. Each letter refers to a side (north, south,
-east, or west) that the slave will "stick" to. If both B<n> and B<s> (or
-B<e> and B<w>) are specified, the slave will be stretched to fill the entire
-height (or width) of its cavity. The B<sticky> option subsumes the
-combination of B<-anchor> and B<-fill> that is used by L<pack|Tk::pack>.
-The default is B<''>, which causes the slave to be centered in its cavity,
-at its requested size.
-
-=back
-
-=item I<$master>-E<gt>B<gridBbox>(?I<column, row>,? ?I<column2, row2>?)
-
-With no arguments,
-the bounding box (in pixels) of the grid is returned.
-The return value consists of 4 integers. The first two are the pixel
-offset from the master window (x then y) of the top-left corner of the
-grid, and the second two integers are the width and height of the grid,
-also in pixels. If a single I<column> and I<row> is specified on
-the command line, then the bounding box for that cell is returned, where the
-top left cell is numbered from zero. If both I<column> and I<row>
-arguments are specified, then the bounding box spanning the rows and columns
-indicated is returned.
-
-=item I<$master>-E<gt>B<gridColumnconfigure>(I<index>?, I<-option>=>I<value, ...>?)
-
-Query or set the column properties of the I<index> column of the
-geometry master, I<$master>.
-The valid options are B<-minsize>, B<-weight> and B<-pad>.
-If one or more options are provided, then I<index> may be given as
-a list of column indices to which the configuration options will operate on.
-The B<-minsize> option sets the minimum size, in screen units,
-that will be permitted for this column.
-The B<-weight> option (an integer value)
-sets the relative weight for apportioning
-any extra spaces among
-columns.
-A weight of zero (0) indicates the column will not deviate from its requested
-size. A column whose weight is two will grow at twice the rate as a column
-of weight one when extra space is allocated to the layout.
-The B<-uniform> option, when a
-non-empty value is supplied, places the column in a I<uniform
-group> with other columns that have the same value for B<-uniform>.
-The space for columns belonging to a uniform group is allocated
-so that their sizes are always in strict proportion to their
-B<-weight> values. See I<THE GRID ALGORITHM> below for further
-details.
-The B<-pad> option specifies the number of screen units that will be
-added to the largest window contained completely in that column when the
-grid geometry manager requests a size from the containing window.
-If only an option is specified, with no value,
-the current value of that option is returned.
-If only the master window and index is specified, all the current settings
-are returned in an list of "-option value" pairs.
-
-=item I<$slave>-E<gt>B<gridConfigure>(?I<$slave, ...>?, I<options>?)
-
-The same as B<grid> method.
-
-=item I<$slave>-E<gt>B<gridForget>?(I<$slave, ...>)?
-
-Removes each of the I<$slave>s from grid for its
-master and unmaps their windows.
-The slaves will no longer be managed by the grid geometry manager.
-The configuration options for that window are forgotten, so that if the
-slave is managed once more by the grid geometry manager, the initial
-default settings are used.
-
-=item I<$slave>-E<gt>B<gridInfo>
-
-Returns a list whose elements are the current configuration state of
-the slave given by I<$slave> in the same option-value form that
-might be specified to B<gridConfigure>.
-The first two elements of the list are ``B<-in>=>I<$master>'' where
-I<$master> is the slave's master.
-
-=item I<$master>-E<gt>B<gridLocation>(I<x, y>)
-
-Given I<x> and I<y> values in screen units relative to the master window,
-the column and row number at that I<x> and I<y> location is returned.
-For locations that are above or to the left of the grid, B<-1> is returned.
-
-=item I<$master>-E<gt>B<gridPropagate>?(I<boolean>)?
-
-If I<boolean> has a true boolean value such as B<1> or B<on>
-then propagation is enabled for I<$master>, which must be a window
-name (see L<"GEOMETRY PROPAGATION"> below).
-If I<boolean> has a false boolean value then propagation is
-disabled for I<$master>.
-In either of these cases an empty string is returned.
-If I<boolean> is omitted then the method returns B<0> or
-B<1> to indicate whether propagation is currently enabled
-for I<$master>.
-Propagation is enabled by default.
-
-=item I<$master>-E<gt>B<gridRowconfigure>(I<index>?, I<-option>=>I<value, ...>?)
-
-Query or set the row properties of the I<index> row of the
-geometry master, I<$master>.
-The valid options are B<-minsize>, B<-weight> and B<-pad>.
-If one or more options are provided, then I<index> may be given as
-a list of row indeces to which the configuration options will operate on.
-The B<-minsize> option sets the minimum size, in screen units,
-that will be permitted for this row.
-The B<-weight> option (an integer value)
-sets the relative weight for apportioning
-any extra spaces among
-rows.
-A weight of zero (0) indicates the row will not deviate from its requested
-size. A row whose weight is two will grow at twice the rate as a row
-of weight one when extra space is allocated to the layout.
-The B<-uniform> option, when a non-empty value is supplied, places the
-row in a I<uniform group> with other rows that have the same value
-for B<-uniform>. The space for rows belonging to a uniform group
-is allocated so that their sizes are always in strict proportion
-to their B<-weight> values. See I<THE GRID ALGORITHM> below for
-further details.
-The B<-pad> option specifies the number of screen units that will be
-added to the largest window contained completely in that row when the
-grid geometry manager requests a size from the containing window.
-If only an option is specified, with no value,
-the current value of that option is returned.
-If only the master window and index is specified, all the current settings
-are returned in an list of "option-value" pairs.
-
-=item I<$slave>-E<gt>B<gridRemove>?(I<$slave, ...>)?
-
-Removes each of the I<$slave>s from grid for its
-master and unmaps their windows.
-The slaves will no longer be managed by the grid geometry manager.
-However, the configuration options for that window are remembered,
-so that if the
-slave is managed once more by the grid geometry manager, the previous
-values are retained.
-
-=item I<$master>-E<gt>B<gridSize>
-
-Returns the size of the grid (in columns then rows) for I<$master>.
-The size is determined either by the I<$slave> occupying the largest
-row or column, or the largest column or row with a B<-minsize>,
-B<-weight>, or B<-pad> that is non-zero.
-
-=item I<$master>-E<gt>B<gridSlaves>?(I<-option>=>I<value>)?
-
-If no options are supplied, a list of all of the slaves in I<$master>
-are returned, most recently manages first.
-I<-option> can be either B<-row> or B<-column> which
-causes only the slaves in the row (or column) specified by I<value>
-to be returned.
-
-=back
-
-=head1 RELATIVE PLACEMENT
-
-The B<grid> method contains a limited set of capabilities that
-permit layouts to be created without specifying the row and column
-information for each slave. This permits slaves to be rearranged,
-added, or removed without the need to explicitly specify row and
-column information.
-When no column or row information is specified for a I<$slave>,
-default values are chosen for
-B<-column>, B<-row>, B<-columnspan> and B<-rowspan>
-at the time the I<$slave> is managed. The values are chosen
-based upon the current layout of the grid, the position of the I<$slave>
-relative to other I<$slave>s in the same grid method, and the presence
-of the characters B<->, B<^>, and B<^> in B<grid>
-method where I<$slave> names are normally expected.
-
-=over 4
-
-=item B<->
-
-This increases the columnspan of the I<$slave> to the left. Several
-B<->'s in a row will successively increase the columnspan. A B<->
-may not follow a B<^> or a B<x>.
-
-=item B<x>
-
-This leaves an empty column between the I<$slave> on the left and
-the I<$slave> on the right.
-
-=item B<^>
-
-This extends the B<-rowspan> of the I<$slave> above the B<^>'s
-in the grid. The number of B<^>'s in a row must match the number of
-columns spanned by the I<$slave> above it.
-
-=back
-
-=head1 THE GRID ALGORITHM
-
-The grid geometry manager lays out its slaves in three steps.
-In the first step, the minimum size needed to fit all of the slaves
-is computed, then (if propagation is turned on), a request is made
-of the master window to become that size.
-In the second step, the requested size is compared against the actual size
-of the master. If the sizes are different, then space is added to or taken
-away from the layout as needed.
-For the final step, each slave is positioned in its row(s) and column(s)
-based on the setting of its I<sticky> flag.
-
-To compute the minimum size of a layout, the grid geometry manager
-first looks at all slaves whose columnspan and rowspan values are one,
-and computes the nominal size of each row or column to be either the
-I<minsize> for that row or column, or the sum of the I<pad>ding
-plus the size of the largest slave, whichever is greater. Then the
-slaves whose rowspans or columnspans are greater than one are
-examined. If a group of rows or columns need to be increased in size
-in order to accommodate these slaves, then extra space is added to each
-row or column in the group according to its I<weight>. For each
-group whose weights are all zero, the additional space is apportioned
-equally.
-
-When multiple rows or columns belong to a uniform group, the space
-allocated to them is always in proportion to their weights. (A weight
-of zero is considered to be 1.) In other words, a row or column
-configured with B<-weight 1 -uniform> a will have exactly the same size
-as any other row or column configured with B<-weight 1 -uniform a>. A
-row or column configured with B<-weight 2 -uniform b> will be exactly
-twice as large as one that is configured with B<-weight 1 -uniform b>.
-
-More technically, each row or column in the group will have a size
-equal to I<k*weight> for some constant k. The constant k is chosen so
-that no row or column becomes smaller than its minimum size. For
-example, if all rows or columns in a group have the same weight, then
-each row or column will have the same size as the largest row or
-column in the group.
-
-
-For masters whose size is larger than the requested layout, the additional
-space is apportioned according to the row and column weights. If all of
-the weights are zero, the layout is centered within its master.
-For masters whose size is smaller than the requested layout, space is taken
-away from columns and rows according to their weights. However, once a
-column or row shrinks to its minsize, its weight is taken to be zero.
-If more space needs to be removed from a layout than would be permitted, as
-when all the rows or columns are at there minimum sizes, the layout is
-clipped on the bottom and right.
-
-=head1 GEOMETRY PROPAGATION
-
-The grid geometry manager normally computes how large a master must be to
-just exactly meet the needs of its slaves, and it sets the
-requested width and height of the master to these dimensions.
-This causes geometry information to propagate up through a
-window hierarchy to a top-level window so that the entire
-sub-tree sizes itself to fit the needs of the leaf windows.
-However, the B<gridPropagate> method may be used to
-turn off propagation for one or more masters.
-If propagation is disabled then grid will not set
-the requested width and height of the master window.
-This may be useful if, for example, you wish for a master
-window to have a fixed size that you specify.
-
-=head1 RESTRICTIONS ON MASTER WINDOWS
-
-The master for each slave must either be the slave's parent
-(the default) or a descendant of the slave's parent.
-This restriction is necessary to guarantee that the
-slave can be placed over any part of its master that is
-visible without danger of the slave being clipped by its parent.
-In addition, all slaves in one call to B<grid> must have the same master.
-
-=head1 STACKING ORDER
-
-If the master for a slave is not its parent then you must make sure
-that the slave is higher in the stacking order than the master.
-Otherwise the master will obscure the slave and it will appear as
-if the slave hasn't been managed correctly.
-The easiest way to make sure the slave is higher than the master is
-to create the master window first: the most recently created window
-will be highest in the stacking order.
-
-=head1 CREDITS
-
-The B<grid> method is based on ideas taken from the I<GridBag>
-geometry manager written by Doug. Stein, and the B<blt_table> geometry
-manager, written by George Howlett.
-
-=head1 SEE ALSO
-
-L<Tk::form|Tk::form>
-L<Tk::pack|Tk::pack>
-L<Tk::place|Tk::place>
-
-=head1 KEYWORDS
-
-geometry manager, location, grid, cell, propagation, size, pack,
-master, slave
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/icon.gif b/Master/tlpkg/tlperl/lib/Tk/icon.gif
deleted file mode 100644
index dfe6b6621f2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/icon.gif
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/Tk/install.pm b/Master/tlpkg/tlperl/lib/Tk/install.pm
deleted file mode 100644
index 2392dc84fca..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/install.pm
+++ /dev/null
@@ -1,37 +0,0 @@
-package Tk::install;
-require Exporter;
-
-use vars qw($VERSION @EXPORT);
-$VERSION = '4.004'; # $Id: //depot/Tkutf8/Tk/install.pm#4 $
-
-use base qw(Exporter);
-@EXPORT = qw(installbin);
-
-use Config;
-
-sub installbin
-{
- my $prog = shift(@ARGV);
- my $start = $Config{'startperl'};
- my $perl = $Config{'perl'} || 'perl';
- $start =~ s/$perl$/$prog/;
- while (($src,$dst) = splice(@ARGV,0,2))
- {
- open(SRC,"<$src") || die "Cannot open $src:$!";
- my $line = <SRC>;
- $line =~ s/^#!\s*\S+/$start/;
- warn $line;
- chmod(0755,$dst) if (-f $dst);
- open(DST,">$dst") || die "Cannot open $dst:$!";
- print "installbin $src => $dst\n";
- do
- {
- print DST $line;
- } while (defined($line = <SRC>));
- close(SRC);
- close(DST);
- chmod(0555,$dst);
- }
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Tk/license.terms b/Master/tlpkg/tlperl/lib/Tk/license.terms
deleted file mode 100644
index 6a5d3728366..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/license.terms
+++ /dev/null
@@ -1,35 +0,0 @@
-This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., and other parties. The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
-
-The authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
-
-IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
-FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
-DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
-IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
-NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
-MODIFICATIONS.
-
-RESTRICTED RIGHTS: Use, duplication or disclosure by the government
-is subject to the restrictions as set forth in subparagraph (c) (1) (ii)
-of the Rights in Technical Data and Computer Software Clause as DFARS
-252.227-7013 and FAR 52.227-19.
-0 in license.terms
-0 in license.terms
-0 in license.terms
diff --git a/Master/tlpkg/tlperl/lib/Tk/mega.pod b/Master/tlpkg/tlperl/lib/Tk/mega.pod
deleted file mode 100644
index 76e40e7891f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/mega.pod
+++ /dev/null
@@ -1,423 +0,0 @@
-
-## Author: Achim Bohnet <ach@mpe.mpg.de>
-##
-## Copyright (c) 1997-1998 Achim Bohnet. All rights reserved.
-## You can redistribute this document and/or modify it under the
-## same terms as Perl itself.
-##
-## Update for Tk804.025, Steve Lidie, 2004/01/11.
-
-=head1 NAME
-
-Tk::mega - Perl/Tk support for writing widgets in pure Perl
-
-=for category Derived Widgets
-
-=head1 SYNOPSIS
-
-Define the widget's new class name:
-
-S< >B<package Tk::>I<MyNewWidget>;
-
-For composite widget classes:
-
-S< >B<use base qw/ Tk::container />; # where B<container> is I<Frame> or I<Toplevel>
-
-For derived widget classes:
-
-S< >B<use base qw/ Tk::Derived Tk::DerivedWidget /;>
-
-Install the new widget in Tk's namespace and establish class and instance
-constructors.
-
-S< >B<Construct Tk::>I<Widget> I<'MyNewWidget'>;
-
-S< >B<sub ClassInit> { I<my ($self, $args) = @_; ...> }
-
-S< >B<sub Populate> { I<my ($self, $args) = @_; ...> }
-
-=head1 DESCRIPTION
-
-The goal of the mega-widget support of Perl/Tk is to make it
-easy to write mega-widgets that obey the same protocol and
-interface that the Tk core widgets support.
-I<For mega-widget sample code please run the B<widget> demonstration program and go to the section B<Sample Perl Mega-Widgets>.>
-
-There are two kinds of mega-widgets:
-
-=over 4
-
-=item * Composite Widgets
-
-A composite widget is composed with one or more existing widgets.
-The composite widget looks to the user like a simple single widget.
-A well known example is the file selection box.
-
-=item * Derived Widgets
-
-A derived widget adds/modifies/removes properties and methods
-from a single widget (this widget may itself be a mega-widget).
-
-=back
-
-=head1 MEGA-WIDGET SUPPORT
-
-=head2 Advertise
-
-Give a subwidget a symbolic name.
-
-Usage:
-
-S< >I<$self>-E<gt>B<Advertise>(B<name>=E<gt>I<$widget>);
-
-Gives a subwidget I<$widget> of the mega-widget I<$self> the
-name B<name>. One can retrieve the reference of an advertised subwidget
-with the L<Subwidget|"Subwidget"> method.
-
-B<Comment:> Mega-Widget Writers: Please make sure to document the
-advertised widgets that are intended for I<public> use.
-If there are none, document this fact, e.g.:
-
- =head1 ADVERTISED WIDGETS
-
- None.
-
-=head2 Callback
-
-Invoke a callback specified with an option.
-
-Usage:
-
-S< >I<$self>-E<gt>B<Callback>(I<-option> ?,I<args> ...?);
-
-B<Callback> executes the L<callback|Tk::callbacks> defined with
-I<$self>-E<gt>B<ConfigSpecs>(I<-option>, [B<CALLBACK>, ...]);
-If I<args> are given they are passed to the callback. If
-I<-option> is not defined it does nothing.
-
-=head2 ClassInit
-
-Initialization of the mega-widget class.
-
-Usage:
-
-S< >B<sub ClassInit> { I<my ($class, $mw) = @_;> ... }
-
-B<ClassInit> is called once for I<each> L<MainWindow|Tk::MainWindow>
-just before the first widget instance of a class is created in
-the widget tree of B<MainWindow>.
-
-B<ClassInit> is often used to define bindings and/or other
-resources shared by all instances, e.g., images.
-
-Examples:
-
- $mw->bind($class,"<Tab>", sub { my $w = shift; $w->Insert("\t"); $w->focus; $w->break});
- $mw->bind($class,"<Return>", ['Insert',"\n"]);
- $mw->bind($class,"<Delete>",'Delete');
-
-Notice that I<$class> is the class name (e.g. B<Tk::MyText>) and I<$mw> is the mainwindow.
-
-Don't forget to call I<$class>-E<gt>B<SUPER::ClassInit($mw)> in
-B<ClassInit>.
-
-=head2 Component
-
-Convenience function to create subwidgets.
-
-Usage:
-
- $cw->Component('Whatever', 'AdvertisedName',
- -delegate => ['method1', 'method2', ...],
- ... more widget options ...,
- );
-
-B<Component> does several things for you with one call:
-
-=over 4
-
-o Creates the widget
-
-o Advertises it with a given name (overridden by 'Name' option)
-
-o Delegates a set of methods to this widget (optional)
-
-=back
-
-Example:
-
- $cw->Component('Button', 'quitButton', -command => sub{$mw->'destroy'});
-
-=head2 ConfigSpecs
-
-Defines options and their treatment
-
-Usage:
-
- $cw->ConfigSpecs(
- -option => [ where, dbname, dbclass, default],
- ...,
- DEFAULT => [where],
- );
-
-Defines the options of a mega-widget and what actions
-are triggered by configure/cget of an option
-(see L<Tk::ConfigSpecs> and L<Tk::Derived> for details).
-
-=head2 Construct
-
-Make the new mega-widget known to B<Tk>.
-
-Usage:
-
-S< >B<Construct> I<baseclass> B<'Name'>;
-
-B<Construct> declares the new widget class so that your mega-widget
-works like normal Perl/Tk widgets.
-
-Examples:
-
-S< >B<Construct Tk::Widget> I<'Whatever'>;
-S< >B<Construct Tk::Menu> I<'MyItem'>;
-
-First example lets one use I<$widget>-E<gt>B<Whatever> to create
-new B<Whatever> widget.
-
-The second example restricts the usage of the B<MyItem> constructor
-method to widgets that are derived from B<Menu>:
-I<$isamenu>-E<gt>I<MyItem>.
-
-=head2 CreateArgs
-
-Process options before any widget is created:
-
-S< >B<sub CreateArgs> { I<my ($package, $parent, $args) = @_; ...; return @newargs;> }
-
-I<$package> is the package of the mega-widget (e.g., B<Tk::MyText>,
-I<$parent> the parent of the widget to be created and $args the hash
-reference to the options specified in the widget constructor call.
-
-Don't forget to call I<$package>-E<gt>B<SUPER::CreateArgs>(I<$parent>, I<$args>) in
-B<CreateArgs>.
-
-=head2 Delegates
-
-Redirect a method of the mega-widget to a subwidget of
-the composite widget
-
-Usage:
-
- $cw->Delegates(
- 'method1' => $subwidget1,
- 'method2' => 'advertived_name',
- ...,
- 'Construct' => $subwidget2,
- 'DEFAULT' => $subwidget3,
- );
-
-The B<'Construct'> delegation has a special meaning. After
-'Construct' is delegated all Widget constructors are redirected.
-E.g. after
-
-S< >I<$self>-E<gt>B<Delegates>(B<'Construct'>=E<gt>I<$subframe>);
-
-a I<$self>-E<gt>B<Button> does really a I<$subframe>-E<gt>B<Button>
-so the created button is a child of I<$subframe> and not I<$self>.
-
-B<Comment:> Delegates works only with methods that I<$cw> does
-not have itself.
-
-=head2 InitObject
-
-I<Note: this method should not, in general, be used, as it has been
-superceeded by B<Populate> and specifying B<Tk::Derived> as one of the base
-classes.>
-
-Defines construction and interface of derived widgets.
-
-Usage:
-
- sub InitObject {
- my ($derived, $args) = @_;
- ...
- }
-
-where I<$derived> is the widget reference of the already created
-baseclass widget and I<$args> is the reference to a hash of
-I<-option-value> pairs.
-
-B<InitObject> is almost identical to L<Populate|"Populate"> method.
-B<Populate> does some more 'magic' things useful for mega-widgets
-with several widgets.
-
-Don't forget to call I<$derived>-E<gt>B<SUPER::InitObject>(I<$args>) in
-B<InitObject>.
-
-=head2 OnDestroy
-
-Define a callback invoked when the mega-widget is destroyed.
-
-Usage:
-
-S< >I<$widget>-E<gt>B<OnDestroy>(I<callback>);
-
-B<OnDestroy> installs a L<callback|Tk::callbacks> that's called
-when a widget is going to to be destroyed. Useful
-for special cleanup actions. It differs from a normal B<destroy>
-in that all the widget's data structures are still intact.
-
-B<Comment:> This method could be used with any widgets not just
-for mega-widgets. It's listed here because of it's usefulness.
-
-=head2 Populate
-
-Defines construction and interface of the composite
-widget.
-
-Usage:
-
- sub Populate {
- my ($self, $args) = @_;
- ...
- }
-
-where I<$self> is the widget reference of the already created baseclass
-widget and I<$args> is the
-reference to a hash of I<-option-value> pairs.
-
-Most the other support function are normally used inside the B<Populate>
-subroutine.
-
-Don't forget to call I<$cw>-E<gt>B<SUPER::Populate>(I<$args>) in
-B<Populate>.
-
-=head2 privateData
-
-Set/get a private hash of a widget to storage
-composite internal data
-
-Usage:
-
-S< >I<$hashref> = I<$self>-E<gt>B<privateData>();
-
-S< >I<$another> = I<$self>-E<gt>B<privateData>(I<unique_key>|I<package>);
-
-=head2 Subwidget
-
-Get the widget reference of an advertised subwidget.
-
-S< >I<@subwidget> = I<$cw>-E<gt>B<Subwidget>();
-
-S< >I<$subwidget> = I<$cw>-E<gt>B<Subwidget>(I<name>);
-
-S< >I<@subwidget> = I<$cw>-E<gt>B<Subwidget>(I<name> ?,...?);
-
-Returns the widget reference(s) of the subwidget known under the given
-name(s). Without arguments, return all known subwidgets of I<$cw>. See
-L<Advertise|"Advertise"> method how to define I<name> for a subwidget.
-
-B<Comment:> Mega-Widget Users: Use B<Subwidget> to get I<only>
-documented subwidgets.
-
-=head1 PITFALLS
-
-=over 4
-
-=item * Resource DB class name
-
-Some of the standard options use a resource date base class
-that is not equal to the resource database name. E.g.,
-
- Switch: Name: Class:
-
- -padx padX Pad
- -activerelief activeRelief Relief
- -activebackground activeBackground Foreground
- -status undef undef
-
-One should do the same when one defines one of these
-options via B<ConfigSpecs>.
-
-=item * Method delegation
-
-Redirecting methods to a subwidget with B<Delegate>
-can only work if the base widget itself does have a
-method with this name. Therefore one can't ``I<delegate>''
-any of the methods listed in L<Tk::Widget|Tk::Widget>.
-A common problematic method is B<bind>. In this case
-one as to explicitely redirect the method.
-
- sub bind {
- my $self = shift;
- my $to = $self->privateData->{'my_bind_target'};
- $to->bind(@_);
- }
-
-=item * privateData
-
-Graham Barr wrote: ... It is probably
-more private than most people think. Not all calls to privateData will
-return that same HASH reference. The HASH reference that is returned
-depends on the package it was called from, a different HASH is returned
-for each package. This allows a widget to hold private data, but then
-if it is sub-classed the sub-class will get a different HASH and so not
-cause duplicate name clashes.
-
-But privateData does take an optional argument if you want to
-force which HASH is returned.
-
-=item * Scrolled and Composite
-
-B<Scrolled>(I<Kind>,...) constructor can not be used with B<Composite>.
-One has to use $cw->B<Composite>(B<Scrl>I<Kind> =E<gt> B<'name'>, ...);
-
-=back
-
-=head1 MISSING
-
-Of course Perl/Tk does not define support function for
-all necessities. Here's a short list of things you have to
-handle yourself:
-
-=over 4
-
-=item *
-
-No support to define construction-time only options.
-
-=item *
-
-No support to remove an option that is known to the
-base widget.
-
-=item *
-
-It's hard to define B<undef> as fallback for an widget
-option that is not already B<undef>.
-
-=item *
-
-Frame in Perl/Tk carries magic and overhead not needed
-for composite widget class definition.
-
-=item *
-
-No support methods for bindings that are shared between all
-widgets of a composite widget (makes sense at all?)
-
-=back
-
-=head1 KEYWORDS
-
-mega, composite, derived, widget
-
-=head1 SEE ALSO
-
-L<Tk::composite|Tk::composite>
-L<Tk::ConfigSpecs|Tk::ConfigSpecs>
-L<Tk::option|Tk::option>
-L<Tk::callbacks|Tk::callbacks>
-L<Tk::bind|Tk::bind>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/messageBox.pod b/Master/tlpkg/tlperl/lib/Tk/messageBox.pod
deleted file mode 100644
index 36c147b1180..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/messageBox.pod
+++ /dev/null
@@ -1,67 +0,0 @@
-=head1 NAME
-
-Tk::messageBox - pop up a message window and wait for user response.
-
-=for category Popups and Dialogs
-
-=head1 SYNOPSIS
-
-S< >I<$response> = I<$widget>-E<gt>B<messageBox>(I<-option> =E<gt> I<value>, ... );
-
-=head1 DESCRIPTION
-
-This method uses L<Tk::Dialog|Tk::Dialog> to quickly create several
-common dialog boxes. A dialog widget consists of a message, an icon
-and a set of buttons (see the I<-type> option). After the message
-window is popped up, B<messageBox> waits for the user to select one of
-the buttons and return the button text (note that it's best to check the
-returned value in a case insensitive manner). NOTE: unlike
-B<Tk::Dialog> which creates its widget once and can be used many
-times, the B<messageBox> window is created every time it's used.
-
-The following option/value pairs are supported:
-
-=over 4
-
-=item B<-default>
-
-The case-sensitive symbolic name of the default button
-for this message window ('Ok', 'Cancel' and so
-on). See B<-type> for a list of the symbolic names.
-If the message box has just one button it will
-automatically be made the default, otherwise if
-this option is not specified, there won't be any
-default button.
-
-=item B<-icon>
-
-Specifies an icon to display. On X11 any of the builtin Tk bitmaps can
-specified. On Windows only B<error>, B<info>, B<question> or
-B<warning> are supported.
-
-=item B<-message>
-
-Specifies the message to display.
-
-=item B<-title>
-
-Specifies a string to display as the title.
-
-=item B<-type>
-
-Specifies a predefined set of buttons to be displayed. The following
-values are possible: 'AbortRetryIgnore', 'Ok', 'OkCancel',
-'RetryCancel', 'YesNo' or 'YesNoCancel'.
-
-=back
-
-=head1 EXAMPLE
-
-I<$response> = I<$mw>-E<gt>B<messageBox>(-icon =E<gt> 'question', -message =E<gt> 'Hello World!', -title =E<gt> 'My title', -type =E<gt> 'AbortRetryIgnore', -default =E<gt> 'Retry');
-
-=head1 AUTHOR
-
-Stephen.O.Lidie@Lehigh.EDU. 98/05/25
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/openfile.xbm b/Master/tlpkg/tlperl/lib/Tk/openfile.xbm
deleted file mode 100644
index 859e2e57608..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/openfile.xbm
+++ /dev/null
@@ -1,5 +0,0 @@
-#define openfile_width 16
-#define openfile_height 12
-static unsigned char openfile_bits[] = {
- 0x00, 0x00, 0xfc, 0x00, 0x02, 0x07, 0x01, 0x08, 0xc1, 0xff, 0xa1, 0xaa,
- 0x51, 0x55, 0xa9, 0x2a, 0x55, 0x15, 0xab, 0x0a, 0xff, 0x07, 0x00, 0x00};
diff --git a/Master/tlpkg/tlperl/lib/Tk/openfolder.xbm b/Master/tlpkg/tlperl/lib/Tk/openfolder.xbm
deleted file mode 100644
index 59ee624efd0..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/openfolder.xbm
+++ /dev/null
@@ -1,5 +0,0 @@
-#define openfolder_width 16
-#define openfolder_height 10
-static unsigned char openfolder_bits[] = {
- 0xfc, 0x00, 0x02, 0x07, 0x01, 0x08, 0xc1, 0xff, 0x21, 0x80, 0x11, 0x40,
- 0x09, 0x20, 0x05, 0x10, 0x03, 0x08, 0xff, 0x07};
diff --git a/Master/tlpkg/tlperl/lib/Tk/openfolder.xpm b/Master/tlpkg/tlperl/lib/Tk/openfolder.xpm
deleted file mode 100644
index 191fe1e72bc..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/openfolder.xpm
+++ /dev/null
@@ -1,21 +0,0 @@
-/* XPM */
-static char * openfolder_xpm[] = {
-/* width height num_colors chars_per_pixel */
-"16 12 3 1",
-/* colors */
-" s None c None",
-". c black",
-"X c #f0ff80",
-/* pixels */
-" .... ",
-" .XXXX. ",
-" .XXXXXX. ",
-"............. ",
-".XXXXXXXXXXX. ",
-".XXX............",
-".XX.XXXXXXXXXXX.",
-".XX.XXXXXXXXXX. ",
-".X.XXXXXXXXXXX. ",
-".X.XXXXXXXXXXX. ",
-"..XXXXXXXXXX.. ",
-"............. "};
diff --git a/Master/tlpkg/tlperl/lib/Tk/option.pod b/Master/tlpkg/tlperl/lib/Tk/option.pod
deleted file mode 100644
index 9ee206bf9ed..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/option.pod
+++ /dev/null
@@ -1,217 +0,0 @@
-# Copyright (c) 1990 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::option - Using the option database in Perl/Tk
-
-=for category Creating and Configuring Widgets
-
-=head1 SYNOPSIS
-
-S< >I<$widget>-E<gt>B<widgetClass>(B<Name>=E<gt>I<name>, B<-class>=E<gt>I<class>);
-
-S< >I<$widget>-E<gt>B<PathName>;
-
-S< >I<$widget>-E<gt>B<optionAdd>(I<pattern>=E<gt>I<value > ?,I<priority>?);
-
-S< >I<$widget>-E<gt>B<optionClear>;
-
-S< >I<$widget>-E<gt>B<optionGet>(I<name, class>);
-
-S< >I<$widget>-E<gt>B<optionReadfile>(I<fileName> ?,I<priority>?);
-
-=head1 DESCRIPTION
-
-The option database (also known as the I<resource database> or the
-I<application defaults database>) is a set of rules for applying
-default options to widgets. Users and system administrators can
-set up these rules to customize the appearance of applications
-without changing any application code; for example, a user might
-set up personal foreground and background colors, or a site
-might use fonts associated with visual or language preferences.
-Different window managers (and implementations of them) have implemented
-the database differently, but most Xt-based window managers use the
-I<.Xdefaults> file or the I<xrdb> utility to manage user preferences;
-some use both, and/or implement a more complex set of site, user and
-application databases. Check your site documentation for these topics
-or your window manager's B<RESOURCE_MANAGER> property.
-
-=head2 Being a good citizen
-
-For most applications, the option database "just works." The B<option...>
-methods are for applications that need to do something unusual, such as
-add new rules or test an option's default. Even in such cases, the
-application should provide for user preferences.
-Do not hardcode widget options without a B<very> good reason.
-All users have their own tastes and they are all different.
-They choose a special font in a special size and have often spend a
-lot of time working out a color scheme that they will love until death.
-When you respect their choices they will enjoy working with your
-applications much more. Don't destroy the common look and feel of a
-personal desktop.
-
-=head2 Option rules and widget identification
-
-All widgets in an application are identified hierarchically by I<pathname>,
-starting from the B<MainWindow> and passing through each widget used to create
-the endpoint. The path elements are I<widget names>, much like the elements
-of a file path from the root directory to a file. The rules in the option
-database are patterns that are matched against a widget's I<pathname> to
-determine which defaults apply.
-When a widget is created, the B<Name> option can be
-used to assign the widget's name and thus create a distinctive path
-for widgets in an application. If the B<Name> option isn't given,
-Perl/Tk assigns a default name based on the type of widget; a
-B<MainWindow>'s default name is the B<appname>. These defaults are fine
-for most widgets, so don't feel you need to find a meaningful name for
-every widget you create.
-A widget must have a distinctive name to allow users to tailor its
-options independently of other widgets in an application. For instance,
-to create a B<Text> widget that will
-have special options assigned to it, give it a name such as:
-
- $text = $mw->Text(Name => 'importantText');
-
-You can then tailor the widget's attributes with a rule in the option
-database such as:
-
- *importantText*foreground: red
-
-The I<class> attribute identifies groups of widgets, usually within an
-application but also to group similar widgets among different applications.
-One typically assigns a class to a B<TopLevel> or B<Frame> so that the
-class will apply to all of that widget's children. To extend the example,
-we could be more specific about the importantText widget
-by giving its frame a class:
-
- $frame = $mw->Frame(-class => 'Urgent');
- $text = $frame->Text(Name => 'importantText');
-
-Then the resource pattern can be specified as so:
-
- *Urgent*importantText*foreground: red
-
-Similarly, the pattern C<*Urgent*background: cyan> would apply to all
-widgets in the frame.
-
-=head1 METHODS
-
-=over 4
-
-=item I<$widget>-E<gt>B<widgetClass>(B<Name>=E<gt>I<name>, B<-class>=E<gt>I<class>);
-
-Identify a new widget with I<name> and/or I<class>.
-B<Name> specifies the path element for the widget; names generally begin with a
-lowercase letter. B<-class> specifies the class for the widget and its
-children; classes generally begin with an uppercase letter.
-If not specified, Perl/Tk will assign a unique default name to each widget.
-Only B<MainWindow> widgets have a default class, made by uppercasing the
-first letter of the application name.
-
-=item I<$widget>-E<gt>B<PathName>;
-
-The B<PathName> method returns the widget's I<pathname>, which uniquely
-identifies the widget within the application.
-
-=item I<$widget>-E<gt>B<optionAdd>(I<pattern>=E<gt>I<value >?, I<priority>?);
-
-The B<optionAdd> method adds a new option to the database.
-I<Pattern> contains the option being specified, and consists of
-names and/or classes separated by asterisks or dots, in the usual
-X format. I<Value> contains a text string to associate with
-I<pattern>; this is the value that will be returned in calls to
-the B<optionGet> method. If I<priority> is specified, it indicates
-the priority level for this option (see below for legal values);
-it defaults to B<interactive>. This method always returns an empty
-string.
-
-=item I<$widget>-E<gt>B<optionClear>;
-
-The B<optionClear> method clears the option database. Default
-options (from the B<RESOURCE_MANAGER> property or the B<.Xdefaults>
-file) will be reloaded automatically the next time an option is
-added to the database or removed from it. This method always returns
-an empty string.
-
-=item I<$widget>-E<gt>B<optionGet>(I<name,class>);
-
-The B<optionGet> method returns the value of the option specified for
-I<$widget> under I<name> and I<class>. To look up the option,
-B<optionGet> matches the patterns in the resource database against
-I<$widget>'s I<pathname> along with the class of I<$widget>
-(or its parent if I<$widget> has no class specified). The widget's
-class and name are options set when the widget is created (not
-related to class in the sense of L<bless>); the B<MainWindow>'s name
-is the B<appname> and its class is (by default) derived from the name
-of the script.
-
-If several entries in the option database match I<$widget>'s I<pathname>,
-I<name>, and I<class>, then the method returns whichever was created with
-highest I<priority> level. If there are several matching
-entries at the same priority level, then it returns whichever entry
-was I<most recently entered> into the option database. If there are
-no matching entries, then the empty string is returned.
-
-=item I<$widget>-E<gt>B<optionReadfile>(I<fileName>?,I<priority>?);
-
-The B<optionReadfile> method reads I<fileName>, which should have the
-standard format for an X resource database such as B<.Xdefaults>, and
-adds all the options specified in that file to the option database.
-If I<priority> is specified, it indicates the priority level at which
-to enter the options; I<priority> defaults to B<interactive>.
-
-The I<priority> arguments to the B<option> methods are
-normally specified symbolically using one of the following values:
-
-=over 8
-
-=item B<widgetDefault>
-
-Level 20. Used for default values hard-coded into widgets.
-
-=item B<startupFile>
-
-Level 40. Used for options specified in application-specific
-startup files.
-
-=item B<userDefault>
-
-Level 60. Used for options specified in user-specific defaults
-files, such as B<.Xdefaults>, resource databases loaded into
-the X server, or user-specific startup files.
-
-=item B<interactive>
-
-Level 80. Used for options specified interactively after the application
-starts running. If I<priority> isn't specified, it defaults to
-this level.
-
-=back
-
-Any of the above keywords may be abbreviated. In addition, priorities
-may be specified numerically using integers between 0 and 100,
-inclusive. The numeric form is probably a bad idea except for new priority
-levels other than the ones given above.
-
-=back
-
-=head1 BUGS
-
-The priority scheme used by core Tk is not the same as used by normal Xlib
-routines. In particular is assumes that the order of the entries is defined,
-but user commands like B<xrdb -merge> can change the order.
-
-=head1 SEE ALSO
-
-L<Tk::Xrm|Tk::Xrm>
-
-=head1 KEYWORDS
-
-database, option, priority, retrieve
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tk/options.pod b/Master/tlpkg/tlperl/lib/Tk/options.pod
deleted file mode 100644
index 49d81ddd2b4..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/options.pod
+++ /dev/null
@@ -1,787 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::options - Standard options supported by widgets and their manipulation
-
-=for category Creating and Configuring Widgets
-
-=head1 SYNOPSIS
-
-S< >I<$value> = I<$widget>-E<gt>B<cget>('I<-option>');
-
-S< >I<$widget>-E<gt>B<configure>(I<-option>=E<gt>I<value> ?,I<-option>=E<gt>I<value> ...?);
-
-S< >I<@list> = I<$widget>-E<gt>B<configure>('I<-option>');
-
-S< >I<@lol> = I<$widget>-E<gt>B<configure>;
-
-=head1 DESCRIPTION
-
-All widgets, and images have a standard mechanism for setting and querying
-attibutes or options. The mechanism is based on two methods B<configure>
-and B<cget>. The behaviour of these methods is as follows:
-
-=over 4
-
-=item I<$widget>-E<gt>B<configure>(I<-option>=E<gt>I<value> ?,I<-option>=E<gt>I<value> ...?);
-
-Sets the values of I<-option> to I<value> for each I<-option>=E<gt>I<value>
-pair. The internal B<new> method does an implicit B<configure> in this
-form with options passed in at widget create time.
-
-=item I<$widget>-E<gt>B<configure>('I<-option>')
-
-In array context returns a list of five or two elements. If I<-option>
-is an alias for another options it return a list consisting of the
-alias option and the name for the option is is an alias for, e.g.,
-C<('-bg', 'background')>. If I<-option> is not an alias the returned
-list has the following five elements:
-
-=over 8
-
-=item I<Option Name>
-
-The value of I<-option>, e.g., B<-background>.
-
-=item I<Name>
-
-The option's name in the option database, e.g., C<background>.
-
-=item I<Class>
-
-The option's class value in the option database, e.g., C<Background>.
-
-=item I<Default>
-
-The default value for the option if not specified or in the option database,
-e.g., C<grey>.
-
-=item I<Value>
-
-The current value (as returned by B<cget>), e.g., C<white>.
-
-=back
-
-=item I<$widget>-E<gt>B<configure>
-
-Returns a list of lists for all the options supported by I<$widget>.
-Each sub-list is in the form returned by B<configure>('I<-option>').
-(This mechanism is used by the B<Tk::Derived> class to determine
-the options available from base class.)
-
-=item I<$widget>-E<gt>B<cget>('I<-option>')
-
-Returns the current value of I<-option> for I<$widget>.
-
-B<cget>('I<-option>') is clumsy with the need for B<''> due to perl's
-parsing rules. Something more subtle using L<tie|perlfunc/tie> might look better.
-
-=back
-
-The following paragraphs describe the common configuration options supported by
-widgets in the Tk toolkit. Every widget does not necessarily support every option
-(see the the documentation entries for individual widgets for a list of the
-standard options supported by that widget), but if a widget does support an option
-with one of the names listed below, then the option has exactly the effect
-described below.
-
-In the descriptions below, ``Name'' refers to the option's name in the option
-database. ``Class'' refers to the option's class value
-in the option database. ``Switch'' refers to the switch used in widget-creation
-and B<configure> widget methods to set this value. For example, if an option's
-configure option is B<-foreground> and there exists a widget I<$widget>, then the
-call:
-
-S< >I<$widget>-E<gt>B<configure>(B<-foreground>=E<gt>B<'black'>)
-
-may be used to specify the value B<black> for the option in the widget I<$widget>.
-Configure options may be abbreviated, as long as the abbreviation is unambiguous
-(abbreviation is deprecated in perl/Tk).
-
-=head2 Creation options: Widget Name and Class
-
-The B<Name> and B<-class> options can only be specified when a widget is
-created, and cannot be changed with B<configure>. These options determine
-the widget's identity and how Tk applies resource values from the
-option database (see L<Tk::option>) and so they
-cannot be assigned by the options database.
-
-=over 4
-
-=item Name: I<name>
-
-=item Switch: B<Name>
-
-Specifies the path element for the widget. Names generally begin with a
-lowercase letter.
-
-Each widget has a unique I<pathname> that follows the hierarchy from the
-B<MainWindow> to the widget itself. Since the widget's B<PathName> is
-used to assign options from the options database, it is important to
-specify a distinctive B<Name> for any widget that will have non-default
-options. See L<Tk::option> for details.
-
-=item Name: I<class>
-
-=item Switch: B<-class>
-
-Specifies a class for the window. Classes generally begin with an
-uppercase letter.
-
-This class will be used when querying the option database for
-the window's other options (see Tk::options), and it will also be used
-later for other purposes such as bindings. One typically assigns a class
-to a B<TopLevel> or B<Frame> so that the class will apply to all of
-that widget's children.
-
-=back
-
-=head2 Reconfigurable options
-
-These options can be set at widget creation or changed later via B<configure>.
-
-=over 4
-
-=item Name: B<activeBackground>
-
-=item Class: B<Foreground>
-
-=item Switch: B<-activebackground>
-
-Specifies background color to use when drawing active elements.
-An element (a widget or portion of a widget) is active if the
-mouse cursor is positioned over the element and pressing a mouse button
-will cause some action to occur.
-If strict Motif compliance has been requested by setting the
-B<$Tk::strictMotif> variable, this option will normally be
-ignored; the normal background color will be used instead.
-For some elements on Windows and Macintosh systems, the active color
-will only be used while mouse button 1 is pressed over the element.
-
-=item Name: B<activeBorderWidth>
-
-=item Class: B<BorderWidth>
-
-=item Switch: B<-activeborderwidth>
-
-Specifies a non-negative value indicating
-the width of the 3-D border drawn around active elements.
-See above for definition of active elements.
-The value may have any of the forms acceptable to B<Tk_GetPixels>.
-This option is typically only available in widgets displaying more
-than one element at a time (e.g. menus but not buttons).
-
-=item Name: B<activeForeground>
-
-=item Class: B<Background>
-
-=item Switch: B<-activeforeground>
-
-Specifies foreground color to use when drawing active elements.
-See above for definition of active elements.
-
-=item Name: B<activetile>
-
-=item Class: B<Tile>
-
-=item Switch: B<-activetile>
-
-Specifies image used to display inside active elements of the widget.
-See above for definition of active elements.
-
-=item Name: B<anchor>
-
-=item Class: B<Anchor>
-
-=item Switch: B<-anchor>
-
-Specifies how the information in a widget (e.g. text or a bitmap)
-is to be displayed in the widget.
-Must be one of the values B<n>, B<ne>, B<e>, B<se>,
-B<s>, B<sw>, B<w>, B<nw>, or B<center>.
-For example, B<nw> means display the information such that its
-top-left corner is at the top-left corner of the widget.
-
-=item Name: B<background>
-
-=item Class: B<Background>
-
-=item Switch: B<-background>
-
-=item Alias: B<-bg>
-
-Specifies the normal background color to use when displaying the
-widget.
-
-=item Name: B<bitmap>
-
-=item Class: B<Bitmap>
-
-=item Switch: B<-bitmap>
-
-Specifies a bitmap to display in the widget, in any of the forms
-acceptable to B<Tk_GetBitmap>.
-The exact way in which the bitmap is displayed may be affected by
-other options such as B<-anchor> or B<-justify>.
-Typically, if this option is specified then it overrides other
-options that specify a textual value to display in the widget;
-the B<-bitmap> option may be reset to an empty string to re-enable
-a text display.
-In widgets that support both B<-bitmap> and B<-image> options,
-B<-image> will usually override B<-bitmap>.
-
-=item Name: B<borderWidth>
-
-=item Class: B<BorderWidth>
-
-=item Switch: B<-borderwidth>
-
-=item Alias: B<-bd>
-
-Specifies a non-negative value indicating the width
-of the 3-D border to draw around the outside of the widget (if such a
-border is being drawn; the B<relief> option typically determines
-this). The value may also be used when drawing 3-D effects in the
-interior of the widget.
-The value may have any of the forms acceptable to B<Tk_GetPixels>.
-
-=item Name: B<compound>
-
-=item Class: B<Compound>
-
-=item Switch: B<-compound>
-
-Specifies if the widget should display text and bitmaps/images at the
-same time, and if so, where the bitmap/image should be placed relative
-to the text. Must be one of the values B<none>, B<bottom>, B<top>,
-B<left>, B<right>, or B<center>. For example, the (default) value
-B<none> specifies that the bitmap or image should (if defined) be
-displayed instead of the text, the value B<left> specifies that the
-bitmap or image should be displayed to the left of the text, and the
-value B<center> specifies that the bitmap or image should be displayed on
-top of the text.
-
-=item Name: B<cursor>
-
-=item Class: B<Cursor>
-
-=item Switch: B<-cursor>
-
-Specifies the mouse cursor to be used for the widget.
-The value may have any of the forms acceptable to B<Tk_GetCursor>.
-
-=item Name: B<dash>
-
-=item Class: B<Dash>
-
-=item Switch: B<-dash>
-
-The value may have any of the forms accepted by B<Tk_GetDash>,
-such as B<4>, B<[6,4]>, B<.>, B<->, B<-.>, or B<-..>.
-
-=item Name: B<dashoffset>
-
-=item Class: B<Dashoffset>
-
-=item Switch: B<-dashoffset>
-
-Specifies the offset in the dash list where the drawing starts.
-
-=item Name: B<disabledForeground>
-
-=item Class: B<DisabledForeground>
-
-=item Switch: B<-disabledforeground>
-
-Specifies foreground color to use when drawing a disabled element.
-If the option is specified as an empty string (which is typically the
-case on monochrome displays), disabled elements are drawn with the
-normal foreground color but they are dimmed by drawing them
-with a stippled fill pattern.
-
-=item Name: B<disabledtile>
-
-=item Class: B<Tile>
-
-=item Switch: B<-disabledtile>
-
-Specifies image to use when drawing a disabled element.
-
-=item Name: B<exportSelection>
-
-=item Class: B<ExportSelection>
-
-=item Switch: B<-exportselection>
-
-Specifies whether or not a selection in the widget should also be
-the X selection.
-The value may have any of the forms accepted by B<Tcl_GetBoolean>,
-such as B<true>, B<false>, B<0>, B<1>, B<yes>, or B<no>.
-If the selection is exported, then selecting in the widget deselects
-the current X selection, selecting outside the widget deselects any
-widget selection, and the widget will respond to selection retrieval
-requests when it has a selection. The default is usually for widgets
-to export selections.
-
-=item Name: B<font>
-
-=item Class: B<Font>
-
-=item Switch: B<-font>
-
-Specifies the font to use when drawing text inside the widget.
-
-=item Name: B<foreground>
-
-=item Class: B<Foreground>
-
-=item Switch: B<-foreground>
-
-=item Alias: B<-fg>
-
-Specifies the normal foreground color to use when displaying the widget.
-
-=item Name: B<highlightBackground>
-
-=item Class: B<HighlightBackground>
-
-=item Switch: B<-highlightbackground>
-
-Specifies the color to display in the traversal highlight region when
-the widget does not have the input focus.
-
-=item Name: B<highlightColor>
-
-=item Class: B<HighlightColor>
-
-=item Switch: B<-highlightcolor>
-
-Specifies the color to use for the traversal highlight rectangle that is
-drawn around the widget when it has the input focus.
-
-=item Name: B<highlightThickness>
-
-=item Class: B<HighlightThickness>
-
-=item Switch: B<-highlightthickness>
-
-Specifies a non-negative value indicating the width of the highlight
-rectangle to draw around the outside of the widget when it has the
-input focus.
-The value may have any of the forms acceptable to B<Tk_GetPixels>.
-If the value is zero, no focus highlight is drawn around the widget.
-
-=item Name: B<image>
-
-=item Class: B<Image>
-
-=item Switch: B<-image>
-
-Specifies an image to display in the widget, which must have been
-created with an image create. (See L<Tk::Image> for details of image creation.)
-Typically, if the B<-image> option is specified then it overrides other
-options that specify a bitmap or textual value to display in the widget;
-the B<-image> option may be reset to an empty string to re-enable
-a bitmap or text display.
-
-=item Name: B<insertBackground>
-
-=item Class: B<Foreground>
-
-=item Switch: B<-insertbackground>
-
-Specifies the color to use as background in the area covered by the
-insertion cursor. This color will normally override either the normal
-background for the widget (or the selection background if the insertion
-cursor happens to fall in the selection).
-
-=item Name: B<insertBorderWidth>
-
-=item Class: B<BorderWidth>
-
-=item Switch: B<-insertborderwidth>
-
-Specifies a non-negative value indicating the width
-of the 3-D border to draw around the insertion cursor.
-The value may have any of the forms acceptable to B<Tk_GetPixels>.
-
-=item Name: B<insertOffTime>
-
-=item Class: B<OffTime>
-
-=item Switch: B<-insertofftime>
-
-Specifies a non-negative integer value indicating the number of
-milliseconds the insertion cursor should remain ``off'' in each blink cycle.
-If this option is zero then the cursor doesn't blink: it is on
-all the time.
-
-=item Name: B<insertOnTime>
-
-=item Class: B<OnTime>
-
-=item Switch: B<-insertontime>
-
-Specifies a non-negative integer value indicating the number of
-milliseconds the insertion cursor should remain ``on'' in each blink cycle.
-
-=item Name: B<insertWidth>
-
-=item Class: B<InsertWidth>
-
-=item Switch: B<-insertwidth>
-
-Specifies a value indicating the total width of the insertion cursor.
-The value may have any of the forms acceptable to B<Tk_GetPixels>.
-If a border has been specified for the insertion
-cursor (using the B<insertBorderWidth> option), the border
-will be drawn inside the width specified by the B<insertWidth>
-option.
-
-=item Name: B<jump>
-
-=item Class: B<Jump>
-
-=item Switch: B<-jump>
-
-For widgets with a slider that can be dragged to adjust a value,
-such as scrollbars, this option determines when
-notifications are made about changes in the value.
-The option's value must be a boolean of the form accepted by
-B<Tcl_GetBoolean>.
-If the value is false, updates are made continuously as the
-slider is dragged.
-If the value is true, updates are delayed until the mouse button
-is released to end the drag; at that point a single notification
-is made (the value ``jumps'' rather than changing smoothly).
-
-=item Name: B<justify>
-
-=item Class: B<Justify>
-
-=item Switch: B<-justify>
-
-When there are multiple lines of text displayed in a widget, this
-option determines how the lines line up with each other.
-Must be one of B<left>, B<center>, or B<right>.
-B<Left> means that the lines' left edges all line up, B<center>
-means that the lines' centers are aligned, and B<right> means
-that the lines' right edges line up.
-
-=item Name: B<offset>
-
-=item Class: B<Offset>
-
-=item Switch: B<-offset>
-
-Specifies the offset of tiles (see also B<-tile> option). It can
-have two different formats B<-offset x,y> or B<-offset side>,
-where side can be B<n>, B<ne>, B<e>, B<se>, B<s>,
-B<sw>, B<w>, B<nw>, or B<center>. In the first case
-the origin is the origin of the toplevel of the current window.
-For the canvas itself and canvas objects the origin is the canvas
-origin, but putting B<#> in front of the coordinate pair
-indicates using the toplevel origin in stead. For canvas objects,
-the B<-offset> option is used for stippling as well.
-For the line and polygon canvas items you can also specify
-an index as argument, which connects the stipple or tile
-origin to one of the coordinate points of the line/polygon.
-
-=item Name: B<orient>
-
-=item Class: B<Orient>
-
-=item Switch: B<-orient>
-
-For widgets that can lay themselves out with either a horizontal
-or vertical orientation, such as scrollbars, this option specifies
-which orientation should be used. Must be either B<horizontal>
-or B<vertical> or an abbreviation of one of these.
-
-=item Name: B<padX>
-
-=item Class: B<Pad>
-
-=item Switch: B<-padx>
-
-Specifies a non-negative value indicating how much extra space
-to request for the widget in the X-direction.
-The value may have any of the forms acceptable to B<Tk_GetPixels>.
-When computing how large a window it needs, the widget will
-add this amount to the width it would normally need (as determined
-by the width of the things displayed in the widget); if the geometry
-manager can satisfy this request, the widget will end up with extra
-internal space to the left and/or right of what it displays inside.
-Most widgets only use this option for padding text: if they are
-displaying a bitmap or image, then they usually ignore padding
-options.
-
-=item Name: B<padY>
-
-=item Class: B<Pad>
-
-=item Switch: B<-pady>
-
-Specifies a non-negative value indicating how much extra space
-to request for the widget in the Y-direction.
-The value may have any of the forms acceptable to B<Tk_GetPixels>.
-When computing how large a window it needs, the widget will add
-this amount to the height it would normally need (as determined by
-the height of the things displayed in the widget); if the geometry
-manager can satisfy this request, the widget will end up with extra
-internal space above and/or below what it displays inside.
-Most widgets only use this option for padding text: if they are
-displaying a bitmap or image, then they usually ignore padding
-options.
-
-=item Name: B<relief>
-
-=item Class: B<Relief>
-
-=item Switch: B<-relief>
-
-Specifies the 3-D effect desired for the widget. Acceptable
-values are B<raised>, B<sunken>, B<flat>, B<ridge>,
-B<solid>, and B<groove>.
-The value
-indicates how the interior of the widget should appear relative
-to its exterior; for example, B<raised> means the interior of
-the widget should appear to protrude from the screen, relative to
-the exterior of the widget.
-
-=item Name: B<repeatDelay>
-
-=item Class: B<RepeatDelay>
-
-=item Switch: B<-repeatdelay>
-
-Specifies the number of milliseconds a button or key must be held
-down before it begins to auto-repeat. Used, for example, on the
-up- and down-arrows in scrollbars.
-
-=item Name: B<repeatInterval>
-
-=item Class: B<RepeatInterval>
-
-=item Switch: B<-repeatinterval>
-
-Used in conjunction with B<repeatDelay>: once auto-repeat
-begins, this option determines the number of milliseconds between
-auto-repeats.
-
-=item Name: B<selectBackground>
-
-=item Class: B<Foreground>
-
-=item Switch: B<-selectbackground>
-
-Specifies the background color to use when displaying selected
-items.
-
-=item Name: B<selectBorderWidth>
-
-=item Class: B<BorderWidth>
-
-=item Switch: B<-selectborderwidth>
-
-Specifies a non-negative value indicating the width
-of the 3-D border to draw around selected items.
-The value may have any of the forms acceptable to B<Tk_GetPixels>.
-
-=item Name: B<selectForeground>
-
-=item Class: B<Background>
-
-=item Switch: B<-selectforeground>
-
-Specifies the foreground color to use when displaying selected
-items.
-
-=item Name: B<setGrid>
-
-=item Class: B<SetGrid>
-
-=item Switch: B<-setgrid>
-
-Specifies a boolean value that determines whether this widget controls the
-resizing grid for its top-level window.
-This option is typically used in text widgets, where the information
-in the widget has a natural size (the size of a character) and it makes
-sense for the window's dimensions to be integral numbers of these units.
-These natural window sizes form a grid.
-If the B<setGrid> option is set to true then the widget will
-communicate with the window manager so that when the user interactively
-resizes the top-level window that contains the widget, the dimensions of
-the window will be displayed to the user in grid units and the window
-size will be constrained to integral numbers of grid units.
-See L<Tk::Wm/"GRIDDED GEOMETRY MANAGEMENT">
-for more details.
-
-=item Name: B<takeFocus>
-
-=item Class: B<TakeFocus>
-
-=item Switch: B<-takefocus>
-
-Determines whether the window accepts the focus during keyboard
-traversal (e.g., Tab and Shift-Tab).
-Before setting the focus to a window, the traversal scripts
-consult the value of the B<takeFocus> option.
-A value of B<0> means that the window should be skipped entirely
-during keyboard traversal.
-B<1> means that the window should receive the input
-focus as long as it is viewable (it and all of its ancestors are mapped).
-An empty value for the option means that the traversal scripts make
-the decision about whether or not to focus on the window: the current
-algorithm is to skip the window if it is
-disabled, if it has no key bindings, or if it is not viewable.
-If the value has any other form, then the traversal scripts take
-the value, append the name of the window to it (with a separator space),
-and evaluate the resulting string as a Callback.
-The script must return B<0>, B<1>, or an empty string: a
-B<0> or B<1> value specifies whether the window will receive
-the input focus, and an empty string results in the default decision
-described above.
-Note: this interpretation of the option is defined entirely by
-the Callbacks that implement traversal: the widget implementations
-ignore the option entirely, so you can change its meaning if you
-redefine the keyboard traversal scripts.
-
-=item Name: B<text>
-
-=item Class: B<Text>
-
-=item Switch: B<-text>
-
-Specifies a string to be displayed inside the widget. The way in which
-the string is displayed depends on the particular widget and may be
-determined by other options, such as B<anchor> or B<justify>.
-
-=item Name: B<textVariable>
-
-=item Class: B<Variable>
-
-=item Switch: B<-textvariable>
-
-Specifies the name of a variable. The value of the variable is a text
-string to be displayed inside the widget; if the variable value changes
-then the widget will automatically update itself to reflect the new value.
-The way in which the string is displayed in the widget depends on the
-particular widget and may be determined by other options, such as
-B<anchor> or B<justify>.
-
-=item Name: B<tile>
-
-=item Class: B<Tile>
-
-=item Switch: B<-tile>
-
-Specifies image used to display the widget. If image is the empty
-string, then the normal background color is displayed.
-
-=item Name: B<troughColor>
-
-=item Class: B<Background>
-
-=item Switch: B<-troughcolor>
-
-Specifies the color to use for the rectangular trough areas
-in widgets such as scrollbars and scales.
-
-=item Name: B<troughTile>
-
-=item Class: B<Tile>
-
-=item Switch: B<-troughtile>
-
-Specifies image used to display in the rectangular trough areas
-in widgets such as scrollbars and scales.
-
-=item Name: B<underline>
-
-=item Class: B<Underline>
-
-=item Switch: B<-underline>
-
-Specifies the integer index of a character to underline in the widget.
-This option is used by the default bindings to implement keyboard
-traversal for menu buttons and menu entries.
-0 corresponds to the first character of the text displayed in the
-widget, 1 to the next character, and so on.
-
-=item Name: B<wrapLength>
-
-=item Class: B<WrapLength>
-
-=item Switch: B<-wraplength>
-
-For widgets that can perform word-wrapping, this option specifies
-the maximum line length.
-Lines that would exceed this length are wrapped onto the next line,
-so that no line is longer than the specified length.
-The value may be specified in any of the standard forms for
-screen distances.
-If this value is less than or equal to 0 then no wrapping is done: lines
-will break only at newline characters in the text.
-
-=item Name: B<xScrollCommand>
-
-=item Class: B<ScrollCommand>
-
-=item Switch: B<-xscrollcommand>
-
-Specifies a callback used to communicate with horizontal
-scrollbars.
-When the view in the widget's window changes (or
-whenever anything else occurs that could change the display in a
-scrollbar, such as a change in the total size of the widget's
-contents), the widget will
-make a callback passing two numeric arguments in addition to
-any specified in the callback.
-Each of the numbers is a fraction between 0 and 1, which indicates
-a position in the document. 0 indicates the beginning of the document,
-1 indicates the end, .333 indicates a position one third the way through
-the document, and so on.
-The first fraction indicates the first information in the document
-that is visible in the window, and the second fraction indicates
-the information just after the last portion that is visible.
-Typically the
-B<xScrollCommand> option consists of the scrollbar widget object
-and the method ``set'' i.e. [B<set> =E<gt> I<$sb>]:
-this will cause the scrollbar to be updated whenever the view in the window changes.
-If this option is not specified, then no command will be executed.
-
-=item Name: B<yScrollCommand>
-
-=item Class: B<ScrollCommand>
-
-=item Switch: B<-yscrollcommand>
-
-Specifies a calback used to communicate with vertical
-scrollbars. This option is treated in the same way as the
-B<xScrollCommand> option, except that it is used for vertical
-scrollbars and is provided by widgets that support vertical scrolling.
-See the description of B<xScrollCommand> for details
-on how this option is used.
-
-=back
-
-=head1 SEE ALSO
-
-L<Tk::option>
-L<Tk::callbacks>
-L<Tk::ConfigSpecs>
-L<Tk_GetPixels|Tk::pTk::GetPixels>
-
-=head1 KEYWORDS
-
-class, name, standard option, switch
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/overview.pod b/Master/tlpkg/tlperl/lib/Tk/overview.pod
deleted file mode 100644
index 62e6b193a31..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/overview.pod
+++ /dev/null
@@ -1,138 +0,0 @@
-
-=head1 NAME
-
-Tk::overview - An overview of an Object Oriented Tk8 extension for perl5
-
-=for category Introduction
-
-=head1 SYNOPSIS
-
-C<< use Tk; >>
-
-C<< $main = MainWindow-E<gt>new(); >>
-
-C<< $widget = $main-E<gt>I<Widget>(...); >>
-
-C<< $widget-E<gt>pack(...); >>
-
-...
-
-C<< MainLoop; >>
-
-=head1 DESCRIPTION
-
-In writing the perl Tk extension, the goals were to provide a complete
-interface to the latest production version of John Ousterhout's Tk, while providing
-an Object Oriented interface to perl code.
-
-=head1 CONTENTS
-
-The package is composed of three loosely connected parts:
-
-=over 4
-
-=item I<pTk> - Converted Tk source
-
-The I<pTk> sub-directory is a copy of the C code of Tk8.x, modified
-to allow use by languages other than the original Tcl.
-(The pTk can be read as 'perl' Tk or 'portable' Tk, depending on
-your sensibilities.)
-
-=item B<Tk> to Perl 'Glue'
-
-The top level directory provides I<Tk.xs> and I<tkGlue.c>
-which provide the perl-callable interfaces to pTk
-
-=item Perl code for 'Widget' Classes
-
-The I<Tk> sub-directory contains the various perl modules that comprise
-the "Classes" that are visible to Tk applications.
-
-The "major" widgets such as B<Tk::Text> are actually in separate directories
-at the top level (e.g. I<Text/*> for B<Tk::Text>) and are dynamically
-loaded as needed on platforms which support perl5's B<DynaLoader>.
-
-=back
-
-=head1 CLASS HIERARCHY
-
-=over 4
-
-=item B<package Tk;> - the 'base class'
-
-All the "command names" documented in Tcl/Tk are made to look like perl
-sub's and reside in the Tk package. Their names are all lower case.
-Typically there are very few commands at this level which are called
-directly by applications.
-
-=item B<package Tk::Widget;> - the 'Widget class'
-
-There are no actual objects of the B<Tk::Widget> class; however all
-the various Tk window "widgets" inherit from it, and it in turn
-inherits all the core Tk functions from Tk.
-
-B<Tk::Widget> provides various functions and interfaces which are
-common to all Widgets.
-
-A widget is represented to perl as a blessed reference to a hash. There are some
-members of the hash which are private to Tk and its tkGlue code. Keys
-starting with B<'.'> and of the form B</_[A-Z][A-Za-z_]+_/>
-(i.e. starting and ending in _ and with first char after _ being upper case) should be
-considered reserved to B<Tk>.
-
-=item B<Tk::Button>, B<Tk::Entry>, B<Tk::Text> ...
-
-There is one class for each of the "Tk" widget item types.
-Some of them like B<Tk::Frame> do very little indeed, and really
-only exist so that they can be derived from or so that focus or menu
-traversal can discover the "kind" of window being processed.
-
-Other classes, B<Tk::Text> for example, provide a lot of methods
-used with Tk's "bind" to provide a rich keyboard/mouse interface
-to the widgets' data.
-
-These widget classes also include conversions of the Tcl code for
-event bindings, keyboard focus traversal, menu bars, and menu keyboard
-traversal. All the Tcl functions have been converted, but the names have
-changed (systematically) and they have been split up between the various
-classes in what I hope is an appropriate manner.
-Name changes are normally: dropping initial tk_ as the Tk-ness is implicit
-in the B<Tk::> prefix, and similarly dropping say Menu from the name if it
-has been moved the Tk::Menu class.
-Thus 'proc tkMenuNextEntry' becomes 'sub NextEntry' in the Tk::Menu package.
-
-=item B<Tk::Image>
-
-This does for Tk8.x's "images" what B<Tk::Widget> does for widgets.
-Images are new to Tk8.x and the class structure is not mature either.
-
-There are three sub-classes B<Tk::Bitmap>, B<Tk::Pixmap> and B<Tk::Photo>.
-
-It is possible to create dynamic or auto-loaded image types inherited
-from B<Tk::Image> for other image types or photo formats (e.g. support
-for TIFF format).
-
-=item Composite Widgets
-
-A composite is some kind of 'frame' with subwidgets which give it useful behaviour.
-B<Tk::Dialog> is an example of
-a composite widget classes built from the basic B<Tk> ones.
-It is intended that user code should not need to be aware that a particular
-class is a composite, and create and configure such widgets in the same manner
-as any other kind. The B<configure> mechanism and the methods of the
-class manipulate the subwidgets as required.
-
-Composite widgets are implemented via B<Tk::Frame> and multiple inheritance.
-The two 'frame' base classes B<Tk::Frame> and
-B<Tk::Toplevel> include the additional class B<Tk::Derived>
-in their inheritance. B<Tk::Derived> provides methods to allow additional
-B<configure> options to be defined for a widget.
-
-A Composite widget is typically defined as derived
-from B<Tk::Frame> or B<Tk::Toplevel>
-(e.g. B<Tk::Dialog>).
-
-=back
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk.pod b/Master/tlpkg/tlperl/lib/Tk/pTk.pod
deleted file mode 100644
index 6e1a2a04022..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk.pod
+++ /dev/null
@@ -1,550 +0,0 @@
-=head1 NAME
-
-Tk2portableTk - how to make your B<Tk> source portable to other
-interpreted languages.
-
-=for category C Programming
-
-=head1 Author
-
-Ilya Zakharevich <ilya@math.ohio-state.edu> has contributed most of
-this document. Many thanks.
-
-=head1 DESCRIPTION
-
-B<PortableTk> is an attempt to make B<Tk> useful from other
-languages. Currently tk4.0 runs under Perl using this
-approach. Below, I<Lang> is the notation for an external language to
-which B<PortableTk> glues B<Tk> code.
-
-The main problem with using the code developed for B<TCL> with
-different languages is the absence of data types: almost anything is
-C<char*>. It makes automatic translation hopeless. However, if you
-C<typedef> several new symbols to be C<char*>, you can still use your
-code in B<TCL>, I<and> it will make the automatic translation
-possible.
-
-Another problem with the approach that "everything is a string" is
-impossibility to have a result that says "NotApplicable" without
-setting an error. Thus different B<Tk> command return different string
-values that mean "error happened", like C<"">, C<" "> or
-C<"??">. Other languages can be more flexible, so in B<portableTk> you
-should inform the compiler that what you want to return means "error"
-(see L<Setting variables>).
-
-Currently B<PortableTk> uses several different approachs
-to simplify translation: several B<TCL> functions that are especially
-dangerous to use are undefined, so you can easily find places that
-need to be updated to use Language-independent functions based on
-compiler warnings. Eventually a way to use these Language-independent
-functions under proper B<TCL> will be also provided. The end of this
-document provides a starting point for such a project.
-
-=head1 Structure of B<pTk>, porting your code
-
-B<pTk>, that is a port of B<Tk>, is very special with respect to porting
-of other code to B<portableTk>. The problem is that currently there is
-very little hope to merge the modifications back into B<Tk>, so a
-special strategy is needed to maintain this port. Do not use this
-strategy to port your own code.
-
-B<pTk> is produced from B<Tk> via a two-step process: first, some
-manual editing (the result is in the subdirectory C<mTk>), and second,
-automatic conversion by the C<munge> script (written in Perl). Thus the
-subdirectory C<pTk/mTk> contains code with minimal possible difference
-from the virgin B<Tk> code, so it is easier to merge(1) the
-differences between B<Tk> versions into modified code.
-
-It looks like the strategy for a portable code should be exactly
-opposite: starting from B<TCL>-based code, apply C<munge>, and then
-hand-edit the resulting code. Probably it is also possible to target
-your code to B<portableTk> from scratch, since this will make it
-possible to run it under a lot of I<Lang>uages.
-
-The only reason anyone would like to look into contents of C<pTk/mTk>
-directory is to find out which constructs are not supported by
-C<munge>. On the other hand, C<pTk> directory contains code that is
-conformant to B<portableTk>, so you can look there to find example code.
-
-C<munge> is the script that converts most common B<Tk> constructs to
-their C<portableTk> equivalent. For your code to qualify, you should
-follow B<Tk> conventions on indentation and names of variables, in
-particular, the array of arguments for the C<...CmdProc> should be
-called C<argv>.
-
-For details on what C<munge> can do, see
-L<Translation of some TCL functions>.
-
-=head1 B<PortableTk> API
-
-=head2 Checking what you are running under
-
-B<PortableTk> provides a symbol C<????>. If this symbol is defined,
-your source is compiled with it.
-
-=head2 New types of configuration options
-
-B<PortableTk> defines several new types of configuration options:
-
- TK_CONFIG_CALLBACK
- TK_CONFIG_LANGARG
- TK_CONFIG_SCALARVAR
- TK_CONFIG_HASHVAR
- TK_CONFIG_ARRAYVAR
- TK_CONFIG_IMAGE
-
-You should use them instead of TK_CONFIG_STRING whenever
-appropriate. This allows your application to receive a direct
-representation of the corresponding resource instead of the string
-representation, if this is possible under given language.
-
-???? It looks like C<TK_CONFIG_IMAGE> and C<TK_CONFIG_SCALARVAR> set
-variables of type C<char*>.
-
-=head2 Language data
-
-The following data types are defined:
-
-=over 4
-
-=item C<Tcl_Obj *>
-
-is the main datatype of the language. This is a type that your C
-function gets pointers to for arguments when the corresponding I<Lang>
-function is called. The corresponding config type is
-C<TK_CONFIG_LANGARG>.
-
-This is also a type that keeps information about contents of I<Lang>
-variable.
-
-=item C<Var>
-
-Is a substitute for a C<char *> that contains name of variable. In
-I<Lang> it is an object that contains reference to another I<Lang>
-variable.
-
-=item C<LangResultSave>
-
-????
-
-=item C<LangCallback>
-
-C<LangCallback*> a substitute for a C<char *> that contains command to
-call. The corresponding config type is C<TK_CONFIG_CALLBACK>.
-
-=item C<LangFreeProc>
-
-It is the type that the C<Lang_SplitList> sets. Before you call it,
-declare
-
- Args *args;
- LangFreeProc *freeProc = NULL;
- ...
- code = Lang_SplitList(interp, value,
- &argc, &args, &freeProc);
-
-After you use the split values, call
-
- if (args != NULL && freeProc) (*freeProc)(argc,args);
-
-It is not guaranteed that the C<args> can survive deletion of C<value>.
-
-=back
-
-=head2 Conversion
-
-The following macros and functions are used for conversion between
-strings and the additional types:
-
- LangCallback * LangMakeCallback(Tcl_Obj *)
- Tcl_Obj * LangCallbackArg(LangCallback *)
- char * LangString(Tcl_Obj *)
-
-After you use the result of LangCallbackArg(), you should free it with
-C<freeProc> C<LANG_DYNAMIC> (it is not guaranteed that any change of
-C<Tcl_Obj *> will not be reflected in <LangCallback>, so you cannot do
-LangSet...() in between, and you should reset it to C<NULL> if you
-want to do any further assignments to this C<Tcl_Obj *>).
-
-The following function returns the C<Tcl_Obj *> that is a reference to C<Var>:
-
- Tcl_Obj * LangVarArg(Var)
-
-???? It is very anti-intuitive, I hope the name is changed.
-
- int LangCmpCallback(LangCallback *a,Tcl_Obj * b)
-
-(currently only a stub), and, at last,
-
- LangCallback * LangCopyCallback(LangCallback *)
-
-=head2 Callbacks
-
-Above we have seen the new datatype C<LangCallback> and the
-corresponding I<Config option> C<TK_CONFIG_CALLBACK>. The following
-functions are provided for manipulation of C<LangCallback>s:
-
- void LangFreeCallback(LangCallback *)
- int LangDoCallback(Tcl_Interp *,LangCallback *,
- int result,int argc, char *format,...)
-
-The argument C<format> of C<LangDoCallback> should contain a string that is
-suitable for C<sprintf> with optional arguments of C<LangDoCallback>.
-C<result> should be false if result of callback is not needed.
-
- int LangMethodCall(Tcl_Interp *,Tcl_Obj *,char *method,
- int result,int argc,...)
-
-????
-
-Conceptually, C<LangCallback*> is a substitute for ubiquitous C<char *>
-in B<TCL>. So you should use C<LangFreeCallback> instead of C<ckfree>
-or C<free> if appropriate.
-
-=head2 Setting variables
-
- void LangFreeArg (Tcl_Obj *, Tcl_FreeProc *freeProc)
- Tcl_Obj * LangCopyArg (Tcl_Obj *);
- void Tcl_AppendArg (Tcl_Interp *interp, Tcl_Obj *)
- void LangSetString(Tcl_Obj * *, char *s)
- void LangSetDefault(Tcl_Obj * *, char *s)
-
-These two are equivalent unless s is an empty string. In this case
-C<LangSetDefault> behaves like C<LangSetString> with C<s==NULL>, i.e.,
-it sets the current value of the I<Lang> variable to be false.
-
- void LangSetInt(Tcl_Obj * *,int)
- void LangSetDouble(Tcl_Obj * *,double)
-
-The I<Lang> functions separate uninitialized and initialized data
-comparing data with C<NULL>. So the declaration for an C<Tcl_Obj *> should
-look like
-
- Tcl_Obj * arg = NULL;
-
-if you want to use this C<arg> with the above functions. After you are
-done, you should use C<LangFreeArg> with C<TCL_DYNAMIC> as C<freeProc>.
-
-=head2 Language functions
-
-Use
-
-=over 4
-
-=item C<int LangNull(Tcl_Obj *)>
-
-to check that an object is false;
-
-=item C<int LangStringMatch(char *string, Tcl_Obj * match)>
-
-????
-
-=item C<void LangExit(int)>
-
-to make a proper shutdown;
-
-=item C<int LangEval(Tcl_Interp *interp, char *cmd, int global)>
-
-to call I<Lang> C<eval>;
-
-=item C<void Lang_SetErrorCode(Tcl_Interp *interp,char *code)>
-
-=item C<char *Lang_GetErrorCode(Tcl_Interp *interp)>
-
-=item C<char *Lang_GetErrorInfo(Tcl_Interp *interp)>
-
-=item C<void LangCloseHandler(Tcl_Interp *interp,Tcl_Obj * arg,FILE *f,Lang_FileCloseProc *proc)>
-
-currently stubs only;
-
-=item C<int LangSaveVar(Tcl_Interp *,Tcl_Obj * arg,Var *varPtr,int type)>
-
-to save the structure C<arg> into I<Lang> variable C<*varPtr>;
-
-=item C<void LangFreeVar(Var var)>
-
-to free the result;
-
-=item C<int LangEventCallback(Tcl_Interp *,LangCallback *,XEvent *,KeySym)>
-
-????
-
-=item C<int LangEventHook(int flags)>
-
-=item C<void LangBadFile(int fd)>
-
-=item C<int LangCmpConfig(char *spec, char *arg, size_t length)>
-
-unsupported????;
-
-=item C<void Tcl_AppendArg (Tcl_Interp *interp, Tcl_Obj *)>
-
-=back
-
-Another useful construction is
-
- Tcl_Obj * variable = LangFindVar(interp, Tk_Window tkwin, char *name);
-
-After using the above function, you should call
-
- LangFreeVar(Var variable);
-
-???? Note discrepancy in types!
-
-If you want to find the value of a variable (of type C<Tcl_Obj *>) given the
-variable name, use C<Tcl_GetVar(interp, varName, flags)>. If you are
-interested in the string value of this variable, use
-C<LangString(Tcl_GetVar(...))>.
-
-To get a B<C> array of C<Tcl_Obj *> of length C<n>, use
-
- Tcl_Obj * *args = LangAllocVec(n);
- ...
- LangFreeVec(n,args);
-
-You can set the values of the C<Tcl_Obj *>s using C<LangSet...> functions,
-and get string value using C<LangString>.
-
-If you want to merge an array of C<Tcl_Obj *>s into one C<Tcl_Obj *> (that will
-be an array variable), use
-
- result = Tcl_Merge(listLength, list);
-
-=head2 Translation of some TCL functions
-
-We mark items that can be dealt with by C<munge> by I<Autoconverted>.
-
-=over 4
-
-=item C<Tcl_AppendResult>
-
-does not take C<(char*)NULL>, but C<NULL> as delimiter. I<Autoconverted>.
-
-=item C<Tcl_CreateCommand>, C<Tcl_DeleteCommand>
-
-C<Tk_CreateWidget>, C<Tk_DeleteWidget>, the second argument is the
-window itself, not the pathname. I<Autoconverted>.
-
-=item C<sprintf(interp-E<gt>result, "%d %d %d %d",...)>
-
-C<Tcl_IntResults(interp,4,0,...)>. I<Autoconverted>.
-
-=item C<interp-E<gt>result = "1";>
-
-C<Tcl_SetResult(interp,"1", TCL_STATIC)>. I<Autoconverted>.
-
-=item Reading C<interp-E<gt>result>
-
-C<Tcl_GetResult(interp)>. I<Autoconverted>.
-
-=item C<interp-E<gt>result = Tk_PathName(textPtr-E<gt>tkwin);>
-
-C<Tk_WidgetResult(interp,textPtr-E<gt>tkwin)>. I<Autoconverted>.
-
-=item Sequence C<Tcl_PrintDouble, Tcl_PrintDouble, ..., Tcl_AppendResult>
-
-Use a single command
-
- void Tcl_DoubleResults(Tcl_Interp *interp, int append,
- int argc,...);
-
-C<append> governs whether it is required to clear the result first.
-
-A similar command for C<int> arguments is C<Tcl_IntResults>.
-
-=item C<Tcl_SplitList>
-
-Use C<Lang_SplitList> (see the description above).
-
-=back
-
-=head1 Translation back to TCL
-
-To use your B<portableTk> program with B<TCL>, put
-
- #include "ptcl.h"
-
-I<before> inclusion of C<tk.h>, and link the resulting code with
-C<ptclGlue.c>.
-
-These files currently implement the following:
-
-=over 4
-
-=item Additional config types:
-
- TK_CONFIG_CALLBACK
- TK_CONFIG_LANGARG
- TK_CONFIG_SCALARVAR
- TK_CONFIG_HASHVAR
- TK_CONFIG_ARRAYVAR
- TK_CONFIG_IMAGE
-
-=item Types:
-
- Var, Tcl_Obj *, LangCallback, LangFreeProc.
-
-=item Functions and macros:
-
- Lang_SplitList, LangString, LangSetString, LangSetDefault,
- LangSetInt, LangSetDouble Tcl_ArgResult, LangCallbackArg,
- LangSaveVar, LangFreeVar,
- LangFreeSplitProc, LangFreeArg, Tcl_DoubleResults, Tcl_IntResults,
- LangDoCallback, Tk_WidgetResult, Tcl_CreateCommand,
- Tcl_DeleteCommand, Tcl_GetResult.
-
-=back
-
-Current implementation contains enough to make it possible to compile
-C<mTk/tkText*.[ch]> with the virgin B<Tk>.
-
-=head2 New types of events ????
-
-PortableTk defines following new types of events:
-
- TK_EVENTTYPE_NONE
- TK_EVENTTYPE_STRING
- TK_EVENTTYPE_NUMBER
- TK_EVENTTYPE_WINDOW
- TK_EVENTTYPE_ATOM
- TK_EVENTTYPE_DISPLAY
- TK_EVENTTYPE_DATA
-
-and a function
-
- char * Tk_EventInfo(int letter,
- Tk_Window tkwin, XEvent *eventPtr,
- KeySym keySym, int *numPtr, int *isNum, int *type,
- int num_size, char *numStorage)
-
-=head1 Checking for trouble
-
-If you start with working TCL code, you can start convertion using
-the above hints. Good indication that you are doing is OK is absence
-of C<sprintf> and C<sscanf> in your code (at least in the part that is
-working with interpreter).
-
-=head1 Additional API
-
-What is described here is not included into base B<portableTk>
-distribution. Currently it is coded in B<TCL> and as Perl macros (core
-is coded as functions, so theoretically you can use the same object
-files with different interpreted languages).
-
-=head2 C<ListFactory>
-
-Dynamic arrays in B<TCL> are used for two different purposes: to
-construct strings, and to construct lists. These two usages will have
-separate interfaces in other languages (since list is a different type
-from a string), so you should use a different interface in your code.
-
-The type for construction of dynamic lists is C<ListFactory>. The API
-below is a counterpart of the API for construction of dynamic lists
-in B<TCL>:
-
- void ListFactoryInit(ListFactory *)
- void ListFactoryFinish(ListFactory *)
- void ListFactoryFree(ListFactory *)
- Tcl_Obj * * ListFactoryArg(ListFactory *)
- void ListFactoryAppend(ListFactory *, Tcl_Obj * *arg)
- void ListFactoryAppendCopy(ListFactory *, Tcl_Obj * *arg)
- ListFactory * ListFactoryNewLevel(ListFactory *)
- ListFactory * ListFactoryEndLevel(ListFactory *)
- void ListFactoryResult(Tcl_Interp *, ListFactory *)
-
-The difference is that a call to C<ListFactoryFinish> should precede the
-actual usage of the value of C<ListFactory>, and there are two
-different ways to append an C<Tcl_Obj *> to a C<ListFactory>:
-ListFactoryAppendCopy() guarantees that the value of C<arg> is copied
-to the list, but ListFactoryAppend() may append to the list a
-reference to the current value of C<arg>. If you are not going to change
-the value of C<arg> after appending, the call to ListFactoryAppend may
-be quicker.
-
-As in B<TCL>, the call to ListFactoryFree() does not free the
-C<ListFactory>, only the objects it references.
-
-The functions ListFactoryNewLevel() and ListFactoryEndLevel() return a
-pointer to a C<ListFactory> to fill. The argument of
-ListFactoryEndLevel() cannot be used after a call to this function.
-
-=head2 DStrings
-
-Production of strings are still supported in B<portableTk>.
-
-=head2 Accessing C<Tcl_Obj *>s
-
-The following functions for getting a value of an C<Tcl_Obj *> I<may> be
-provided:
-
- double LangDouble(Tcl_Obj *)
- int LangInt(Tcl_Obj *)
- long LangLong(Tcl_Obj *)
- int LangIsList(Tcl_Obj * arg)
-
-The function LangIsList() is supported only partially under B<TCL>,
-since there is no data types. It checks whether there is a space
-inside the string C<arg>.
-
-=head2 Assigning numbers to C<Tcl_Obj *>s
-
-While LangSetDouble() and LangSetInt() are supported ways to assign
-numbers to assign an integer value to a variable, for the sake of
-efficiency under B<TCL> it is supposed that the destination of these
-commands was massaged before the call so it contains a long enough
-string to sprintf() the numbers inside it. If you are going to
-immediately use the resulting C<Tcl_Obj *>, the best way to do this is to
-declare a buffer in the beginning of a block by
-
- dArgBuffer;
-
-and assign this buffer to the C<Tcl_Obj *> by
-
- void LangSetDefaultBuffer(Tcl_Obj * *)
-
-You can also create the buffer(s) manually and assign them using
-
- void LangSetBuffer(Tcl_Obj * *, char *)
-
-This is the only choice if you need to assign numeric values to
-several C<Tcl_Obj *>s simultaneously. The advantage of the first approach is
-that the above declarations can be made C<nop>s in different languages.
-
-Note that if you apply C<LangSetDefaultBuffer> to an C<Tcl_Obj *> that
-contains some value, you can create a leak if you do not free that
-C<Tcl_Obj *> first. This is a non-problem in real languages, but can be a
-trouble in C<TCL>, unless you use only the above API.
-
-=head2 Creating new C<Tcl_Obj *>s
-
-The API for creating a new C<Tcl_Obj *> is
-
- void LangNewArg(Tcl_Obj * *, LangFreeProc *)
-
-The API for creating a new C<Tcl_Obj *> is absent. Just initialize C<Tcl_Obj *> to
-be C<NULL>, and apply one of C<LangSet...> methods.
-
-After you use this C<Tcl_Obj *>, it should be freed thusly:
-
-C<LangFreeArg(arg, freeProc)>.
-
-=head2 Evaluating a list
-
-Use
-
- int LangArgEval(Tcl_Interp *, Tcl_Obj * arg)
-
-Here C<arg> should be a list to evaluate, in particular, the first
-element should be a C<LangCallback> massaged to be an C<Tcl_Obj *>. The
-arguments can be send to the subroutine by reference or by value in
-different languages.
-
-=head2 Getting result as C<Tcl_Obj *>
-
-Use C<Tcl_ArgResult>. It is not guaranteed that result survives this
-operation, so the C<Tcl_Obj *> you get should be the only mean to access the
-data from this moment on. After you use this C<Tcl_Obj *>, you should free
-it with C<freeProc> C<LANG_DYNAMIC> (you can do LangSet...() in between).
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/Lang.h b/Master/tlpkg/tlperl/lib/Tk/pTk/Lang.h
deleted file mode 100644
index b09cede6bfb..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/Lang.h
+++ /dev/null
@@ -1,202 +0,0 @@
-#ifndef _LANG
-#define _LANG
-
-#define STATIC_BUILD
-
-
-#include "tkConfig.h"
-#define TCL_NO_DEPRECATED
-
-#if !defined(WIN32) && defined(USE_XFT_FONTS)
-#ifndef TCL_UTF_MAX
-#define TCL_UTF_MAX 13
-#endif
-#endif
-
-#define USE_TCLALLOC 1
-#define TCL_MEM_DEBUG
-#define USE_COMPAT_CONST
-#include "tcl.h"
-
-#if !defined(__GNUC__) && !defined(_AIX)
-#ifdef __STDC__
-#ifndef STRINGIFY
-#define STRINGIFY(x) STRINGIFY1(x)
-#define STRINGIFY1(x) #x
-#endif /* STRINGIFY */
-#define __FUNCTION__ __FILE__ ":" STRINGIFY(__LINE__)
-#else /* STDC */
-#define __FUNCTION__ ""
-#endif /* STDC */
-#endif /* GNUC or AIX */
-
-EXTERN int Tcl_DStringLength _ANSI_ARGS_((Tcl_DString *dString));
-EXTERN char * Tcl_DStringValue _ANSI_ARGS_((Tcl_DString *dString));
-
-EXTERN void Tcl_IncrRefCount _ANSI_ARGS_((Tcl_Obj *objPtr));
-EXTERN void Tcl_DecrRefCount _ANSI_ARGS_((Tcl_Obj *objPtr));
-EXTERN int Tcl_IsShared _ANSI_ARGS_((Tcl_Obj *objPtr));
-
-EXTERN Tcl_ObjType * TclObjGetType _ANSI_ARGS_((Tcl_Obj *objPtr));
-EXTERN int TclObjLength _ANSI_ARGS_((Tcl_Obj *objPtr));
-EXTERN void TclObjSetType _ANSI_ARGS_((Tcl_Obj *objPtr,Tcl_ObjType *newType));
-EXTERN Tcl_InternalRep * TclObjInternal _ANSI_ARGS_((Tcl_Obj *objPtr));
-
-#if defined(TCL_EVENT_IMPLEMENT) && !defined(Var)
-#include "mTk/tclGeneric/tclInt.h"
-#endif
-#if !defined(TCL_EVENT_IMPLEMENT) || defined(Var)
-#define _TCLINT
-typedef void *TclHandle;
-extern Tcl_ObjType tclIntType;
-#endif
-
-#ifndef Var
-#define Var Tcl_Obj *
-#endif
-#ifndef LangCallback
-#define LangCallback Tcl_Obj
-#endif
-#define LangStringArg(x) Tcl_NewStringObj(x,-1)
-
-#define XFree_arg_t void
-
-EXTERN void LangSetString _ANSI_ARGS_((Tcl_Obj **,CONST char *));
-EXTERN void LangSetDefault _ANSI_ARGS_((Tcl_Obj **,CONST char *));
-EXTERN void LangSetInt _ANSI_ARGS_((Tcl_Obj **,int));
-EXTERN void LangSetDouble _ANSI_ARGS_((Tcl_Obj **,double));
-EXTERN void LangSetObj _ANSI_ARGS_((Tcl_Obj **,Tcl_Obj *));
-EXTERN void LangSetVar _ANSI_ARGS_((Tcl_Obj **,Var));
-
-EXTERN int LangCmpArg _ANSI_ARGS_((CONST Tcl_Obj *,CONST Tcl_Obj *));
-EXTERN int LangCmpOpt _ANSI_ARGS_((CONST char *opt,CONST char *arg,size_t length));
-
-
-/* FIXME:
- Tk will set freeProc as for Tcl e.g. NULL for statics & UIDs
- and to "free" for Tcl_Merge etc.
- Non Tk users *may* be able to use it as a guide,
- but it is more likely that they will have to use
- their own ref counts.
- Perhaps Tcl_Merge should set freeProc and/or Tcl's
- LangSetString() deliberately malloc() a copy of the string so we don't need
- the freeProc
-*/
-EXTERN void LangFreeArg _ANSI_ARGS_((Tcl_Obj *,Tcl_FreeProc *freeProc));
-EXTERN Tcl_Obj *LangCopyArg _ANSI_ARGS_((Tcl_Obj *));
-
-EXTERN int LangNull _ANSI_ARGS_((Tcl_Obj *));
-
-EXTERN void TclpGetTime _ANSI_ARGS_((Tcl_Time *time));
-EXTERN void TclpAsyncMark _ANSI_ARGS_((Tcl_AsyncHandler async));
-
-EXTERN void Lang_SetErrorCode _ANSI_ARGS_((Tcl_Interp *interp,char *code));
-EXTERN char *Lang_GetErrorCode _ANSI_ARGS_((Tcl_Interp *interp));
-EXTERN char *Lang_GetErrorInfo _ANSI_ARGS_((Tcl_Interp *interp));
-
-/* Old-config handler for variables */
-EXTERN int LangSaveVar _ANSI_ARGS_((Tcl_Interp *,Tcl_Obj *,Var *,int type));
-EXTERN void LangFreeVar _ANSI_ARGS_((Var));
-
-/* New-config handler for objects, variables and callbacks */
-EXTERN int LangConfigObj _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj **save,
- Tcl_Obj *obj, int type));
-
-EXTERN int LangEventHook _ANSI_ARGS_((int flags));
-EXTERN void Lang_BuildInImages _ANSI_ARGS_((void));
-EXTERN void * TclCalloc _ANSI_ARGS_((size_t n,size_t s));
-EXTERN void LangDebug _ANSI_ARGS_((CONST char *fmt,...));
-EXTERN void LangDumpVec _ANSI_ARGS_((CONST char *tag, int argc, Tcl_Obj **vec));
-
-EXTERN void Lang_DeleteObject _ANSI_ARGS_((Tcl_Interp *,Tcl_Command));
-EXTERN Tcl_Command Lang_CreateObject _ANSI_ARGS_((Tcl_Interp *interp,
- char *cmdName, Tcl_ObjCmdProc *proc,
- ClientData clientData,
- Tcl_CmdDeleteProc *deleteProc));
-
-EXTERN int Lang_CallWithArgs _ANSI_ARGS_ ((Tcl_Interp *interp,
- char *sub, int argc, Tcl_Obj *CONST *argv));
-
-EXTERN void Tcl_IntResults _ANSI_ARGS_((Tcl_Interp *interp,int,int,...));
-EXTERN void Tcl_DoubleResults _ANSI_ARGS_((Tcl_Interp *interp,int,int,...));
-EXTERN void Tcl_SprintfResult _ANSI_ARGS_((Tcl_Interp *,char *,...));
-
-
-
-EXTERN int LangDoCallback _ANSI_ARGS_((Tcl_Interp *,LangCallback *,int result,int argc,...));
-EXTERN int LangMethodCall _ANSI_ARGS_((Tcl_Interp *,Tcl_Obj *,char *,int result,int argc,...));
-
-EXTERN char *LangLibraryDir _ANSI_ARGS_((void));
-EXTERN void Lang_SetBinaryResult _ANSI_ARGS_((Tcl_Interp *interp,
- char *string, int len, Tcl_FreeProc *freeProc));
-EXTERN Tcl_ObjCmdProc *LangOptionCommand;
-
-typedef char *(Lang_VarTraceProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, Tcl_Obj *part1, CONST char *part2, int flags));
-
-EXTERN Tcl_Encoding Lang_CreateEncoding _ANSI_ARGS_((
- CONST char *encodingName,
- Tcl_EncodingConvertProc *toUtfProc,
- Tcl_EncodingConvertProc *fromUtfProc,
- Tcl_EncodingFreeProc *freeProc,
- ClientData clientData,
- int nullSize));
-
-EXTERN int Tcl_AfterObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-
-
-EXTERN int Lang_TraceVar _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj *varRef, int flags,
- Lang_VarTraceProc * proc,
- ClientData clientData));
-
-EXTERN void Lang_UntraceVar _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * varRef, int flags,
- Lang_VarTraceProc * proc,
- ClientData clientData));
-
-EXTERN int Tk_PropertyCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj **objv));
-
-struct TkFontAttributes;
-
-EXTERN unsigned int LangFontRank _ANSI_ARGS_((unsigned int suggested,
- int ch, CONST char *gotName,
- CONST char *wantFoundary,
- CONST struct TkFontAttributes *wantAttrib,
- CONST char *wantEncoding,
- CONST char *gotFoundary,
- CONST struct TkFontAttributes *gotAttrib,
- CONST char *gotEncoding));
-
-EXTERN void Lang_FreeRegExp _ANSI_ARGS_((Tcl_RegExp re));
-
-EXTERN long Lang_OSHandle _ANSI_ARGS_((int fd));
-#define TK_LIBRARY LangLibraryDir()
-
-#ifdef WIN32
-#ifdef __BORLANDC__
-#pragma warn -par /* "parameter 'foo' is never used" */
-#pragma warn -aus /* "'foo' is assigned a value that is never used" */
-#pragma warn -use /* "'foo' is declared but never used" */
-#endif
-
-#ifdef _MSC_VER
-#pragma warning(disable:4101 4102 4244 4018)
-#pragma warning(disable:4133) /* init incompatible for xlib */
-#endif
-#endif
-
-#ifndef RC_INVOKED
-#include "tkEvent.h"
-#if !defined(TCL_EVENT_IMPLEMENT)
-#include "tkEvent.m"
-#endif
-#endif
-
-#endif /* _LANG */
-
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/Lang.m b/Master/tlpkg/tlperl/lib/Tk/pTk/Lang.m
deleted file mode 100644
index a7a43aebd54..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/Lang.m
+++ /dev/null
@@ -1,192 +0,0 @@
-#ifndef _LANG_VM
-#define _LANG_VM
-#include "Lang_f.h"
-#ifndef NO_VTABLES
-#define LangOptionCommand (*LangVptr->V_LangOptionCommand)
-#define tclIntType (*LangVptr->V_tclIntType)
-#ifndef LangCmpArg
-# define LangCmpArg (*LangVptr->V_LangCmpArg)
-#endif
-
-#ifndef LangCmpOpt
-# define LangCmpOpt (*LangVptr->V_LangCmpOpt)
-#endif
-
-#ifndef LangConfigObj
-# define LangConfigObj (*LangVptr->V_LangConfigObj)
-#endif
-
-#ifndef LangCopyArg
-# define LangCopyArg (*LangVptr->V_LangCopyArg)
-#endif
-
-#ifndef LangDoCallback
-# define LangDoCallback (*LangVptr->V_LangDoCallback)
-#endif
-
-#ifndef LangDumpVec
-# define LangDumpVec (*LangVptr->V_LangDumpVec)
-#endif
-
-#ifndef LangEventHook
-# define LangEventHook (*LangVptr->V_LangEventHook)
-#endif
-
-#ifndef LangFontRank
-# define LangFontRank (*LangVptr->V_LangFontRank)
-#endif
-
-#ifndef LangFreeArg
-# define LangFreeArg (*LangVptr->V_LangFreeArg)
-#endif
-
-#ifndef LangFreeVar
-# define LangFreeVar (*LangVptr->V_LangFreeVar)
-#endif
-
-#ifndef LangLibraryDir
-# define LangLibraryDir (*LangVptr->V_LangLibraryDir)
-#endif
-
-#ifndef LangMethodCall
-# define LangMethodCall (*LangVptr->V_LangMethodCall)
-#endif
-
-#ifndef LangNull
-# define LangNull (*LangVptr->V_LangNull)
-#endif
-
-#ifndef LangSaveVar
-# define LangSaveVar (*LangVptr->V_LangSaveVar)
-#endif
-
-#ifndef LangSetDefault
-# define LangSetDefault (*LangVptr->V_LangSetDefault)
-#endif
-
-#ifndef LangSetDouble
-# define LangSetDouble (*LangVptr->V_LangSetDouble)
-#endif
-
-#ifndef LangSetInt
-# define LangSetInt (*LangVptr->V_LangSetInt)
-#endif
-
-#ifndef LangSetObj
-# define LangSetObj (*LangVptr->V_LangSetObj)
-#endif
-
-#ifndef LangSetString
-# define LangSetString (*LangVptr->V_LangSetString)
-#endif
-
-#ifndef LangSetVar
-# define LangSetVar (*LangVptr->V_LangSetVar)
-#endif
-
-#ifndef Lang_BuildInImages
-# define Lang_BuildInImages (*LangVptr->V_Lang_BuildInImages)
-#endif
-
-#ifndef Lang_CallWithArgs
-# define Lang_CallWithArgs (*LangVptr->V_Lang_CallWithArgs)
-#endif
-
-#ifndef Lang_CreateEncoding
-# define Lang_CreateEncoding (*LangVptr->V_Lang_CreateEncoding)
-#endif
-
-#ifndef Lang_CreateObject
-# define Lang_CreateObject (*LangVptr->V_Lang_CreateObject)
-#endif
-
-#ifndef Lang_DeleteObject
-# define Lang_DeleteObject (*LangVptr->V_Lang_DeleteObject)
-#endif
-
-#ifndef Lang_FreeRegExp
-# define Lang_FreeRegExp (*LangVptr->V_Lang_FreeRegExp)
-#endif
-
-#ifndef Lang_GetErrorCode
-# define Lang_GetErrorCode (*LangVptr->V_Lang_GetErrorCode)
-#endif
-
-#ifndef Lang_GetErrorInfo
-# define Lang_GetErrorInfo (*LangVptr->V_Lang_GetErrorInfo)
-#endif
-
-#ifndef Lang_SetBinaryResult
-# define Lang_SetBinaryResult (*LangVptr->V_Lang_SetBinaryResult)
-#endif
-
-#ifndef Lang_SetErrorCode
-# define Lang_SetErrorCode (*LangVptr->V_Lang_SetErrorCode)
-#endif
-
-#ifndef Lang_TraceVar
-# define Lang_TraceVar (*LangVptr->V_Lang_TraceVar)
-#endif
-
-#ifndef Lang_UntraceVar
-# define Lang_UntraceVar (*LangVptr->V_Lang_UntraceVar)
-#endif
-
-#ifndef TclObjGetType
-# define TclObjGetType (*LangVptr->V_TclObjGetType)
-#endif
-
-#ifndef TclObjInternal
-# define TclObjInternal (*LangVptr->V_TclObjInternal)
-#endif
-
-#ifndef TclObjLength
-# define TclObjLength (*LangVptr->V_TclObjLength)
-#endif
-
-#ifndef TclObjSetType
-# define TclObjSetType (*LangVptr->V_TclObjSetType)
-#endif
-
-#ifndef Tcl_AfterObjCmd
-# define Tcl_AfterObjCmd (*LangVptr->V_Tcl_AfterObjCmd)
-#endif
-
-#ifndef Tcl_DStringLength
-# define Tcl_DStringLength (*LangVptr->V_Tcl_DStringLength)
-#endif
-
-#ifndef Tcl_DStringValue
-# define Tcl_DStringValue (*LangVptr->V_Tcl_DStringValue)
-#endif
-
-#ifndef Tcl_DecrRefCount
-# define Tcl_DecrRefCount (*LangVptr->V_Tcl_DecrRefCount)
-#endif
-
-#ifndef Tcl_DoubleResults
-# define Tcl_DoubleResults (*LangVptr->V_Tcl_DoubleResults)
-#endif
-
-#ifndef Tcl_IncrRefCount
-# define Tcl_IncrRefCount (*LangVptr->V_Tcl_IncrRefCount)
-#endif
-
-#ifndef Tcl_IntResults
-# define Tcl_IntResults (*LangVptr->V_Tcl_IntResults)
-#endif
-
-#ifndef Tcl_IsShared
-# define Tcl_IsShared (*LangVptr->V_Tcl_IsShared)
-#endif
-
-#ifndef Tcl_SprintfResult
-# define Tcl_SprintfResult (*LangVptr->V_Tcl_SprintfResult)
-#endif
-
-#ifndef Tk_PropertyCmd
-# define Tk_PropertyCmd (*LangVptr->V_Tk_PropertyCmd)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _LANG_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/Lang.t b/Master/tlpkg/tlperl/lib/Tk/pTk/Lang.t
deleted file mode 100644
index 030a20c1174..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/Lang.t
+++ /dev/null
@@ -1,217 +0,0 @@
-#ifdef _LANG
-VVAR(Tcl_ObjCmdProc *,LangOptionCommand,V_LangOptionCommand)
-#if !defined(TCL_EVENT_IMPLEMENT) || defined(Var)
-VVAR(Tcl_ObjType,tclIntType,V_tclIntType)
-#endif /* #if !defined(TCL_EVENT_IMPLEMENT) || defined(Var) */
-#ifndef LangCmpArg
-VFUNC(int,LangCmpArg,V_LangCmpArg,_ANSI_ARGS_((CONST Tcl_Obj *,CONST Tcl_Obj *)))
-#endif /* #ifndef LangCmpArg */
-
-#ifndef LangCmpOpt
-VFUNC(int,LangCmpOpt,V_LangCmpOpt,_ANSI_ARGS_((CONST char *opt,CONST char *arg,size_t length)))
-#endif /* #ifndef LangCmpOpt */
-
-#ifndef LangConfigObj
-VFUNC(int,LangConfigObj,V_LangConfigObj,_ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj **save,
- Tcl_Obj *obj, int type)))
-#endif /* #ifndef LangConfigObj */
-
-#ifndef LangCopyArg
-VFUNC(Tcl_Obj *,LangCopyArg,V_LangCopyArg,_ANSI_ARGS_((Tcl_Obj *)))
-#endif /* #ifndef LangCopyArg */
-
-#ifndef LangDoCallback
-VFUNC(int,LangDoCallback,V_LangDoCallback,_ANSI_ARGS_((Tcl_Interp *,LangCallback *,int result,int argc,...)))
-#endif /* #ifndef LangDoCallback */
-
-#ifndef LangDumpVec
-VFUNC(void,LangDumpVec,V_LangDumpVec,_ANSI_ARGS_((CONST char *tag, int argc, Tcl_Obj **vec)))
-#endif /* #ifndef LangDumpVec */
-
-#ifndef LangEventHook
-VFUNC(int,LangEventHook,V_LangEventHook,_ANSI_ARGS_((int flags)))
-#endif /* #ifndef LangEventHook */
-
-#ifndef LangFontRank
-VFUNC(unsigned int,LangFontRank,V_LangFontRank,_ANSI_ARGS_((unsigned int suggested,
- int ch, CONST char *gotName,
- CONST char *wantFoundary,
- CONST struct TkFontAttributes *wantAttrib,
- CONST char *wantEncoding,
- CONST char *gotFoundary,
- CONST struct TkFontAttributes *gotAttrib,
- CONST char *gotEncoding)))
-#endif /* #ifndef LangFontRank */
-
-#ifndef LangFreeArg
-VFUNC(void,LangFreeArg,V_LangFreeArg,_ANSI_ARGS_((Tcl_Obj *,Tcl_FreeProc *freeProc)))
-#endif /* #ifndef LangFreeArg */
-
-#ifndef LangFreeVar
-VFUNC(void,LangFreeVar,V_LangFreeVar,_ANSI_ARGS_((Var)))
-#endif /* #ifndef LangFreeVar */
-
-#ifndef LangLibraryDir
-VFUNC(char *,LangLibraryDir,V_LangLibraryDir,_ANSI_ARGS_((void)))
-#endif /* #ifndef LangLibraryDir */
-
-#ifndef LangMethodCall
-VFUNC(int,LangMethodCall,V_LangMethodCall,_ANSI_ARGS_((Tcl_Interp *,Tcl_Obj *,char *,int result,int argc,...)))
-#endif /* #ifndef LangMethodCall */
-
-#ifndef LangNull
-VFUNC(int,LangNull,V_LangNull,_ANSI_ARGS_((Tcl_Obj *)))
-#endif /* #ifndef LangNull */
-
-#ifndef LangSaveVar
-VFUNC(int,LangSaveVar,V_LangSaveVar,_ANSI_ARGS_((Tcl_Interp *,Tcl_Obj *,Var *,int type)))
-#endif /* #ifndef LangSaveVar */
-
-#ifndef LangSetDefault
-VFUNC(void,LangSetDefault,V_LangSetDefault,_ANSI_ARGS_((Tcl_Obj **,CONST char *)))
-#endif /* #ifndef LangSetDefault */
-
-#ifndef LangSetDouble
-VFUNC(void,LangSetDouble,V_LangSetDouble,_ANSI_ARGS_((Tcl_Obj **,double)))
-#endif /* #ifndef LangSetDouble */
-
-#ifndef LangSetInt
-VFUNC(void,LangSetInt,V_LangSetInt,_ANSI_ARGS_((Tcl_Obj **,int)))
-#endif /* #ifndef LangSetInt */
-
-#ifndef LangSetObj
-VFUNC(void,LangSetObj,V_LangSetObj,_ANSI_ARGS_((Tcl_Obj **,Tcl_Obj *)))
-#endif /* #ifndef LangSetObj */
-
-#ifndef LangSetString
-VFUNC(void,LangSetString,V_LangSetString,_ANSI_ARGS_((Tcl_Obj **,CONST char *)))
-#endif /* #ifndef LangSetString */
-
-#ifndef LangSetVar
-VFUNC(void,LangSetVar,V_LangSetVar,_ANSI_ARGS_((Tcl_Obj **,Var)))
-#endif /* #ifndef LangSetVar */
-
-#ifndef Lang_BuildInImages
-VFUNC(void,Lang_BuildInImages,V_Lang_BuildInImages,_ANSI_ARGS_((void)))
-#endif /* #ifndef Lang_BuildInImages */
-
-#ifndef Lang_CallWithArgs
-VFUNC(int,Lang_CallWithArgs,V_Lang_CallWithArgs,_ANSI_ARGS_((Tcl_Interp *interp,
- char *sub, int argc, Tcl_Obj *CONST *argv)))
-#endif /* #ifndef Lang_CallWithArgs */
-
-#ifndef Lang_CreateEncoding
-VFUNC(Tcl_Encoding,Lang_CreateEncoding,V_Lang_CreateEncoding,_ANSI_ARGS_((
- CONST char *encodingName,
- Tcl_EncodingConvertProc *toUtfProc,
- Tcl_EncodingConvertProc *fromUtfProc,
- Tcl_EncodingFreeProc *freeProc,
- ClientData clientData,
- int nullSize)))
-#endif /* #ifndef Lang_CreateEncoding */
-
-#ifndef Lang_CreateObject
-VFUNC(Tcl_Command,Lang_CreateObject,V_Lang_CreateObject,_ANSI_ARGS_((Tcl_Interp *interp,
- char *cmdName, Tcl_ObjCmdProc *proc,
- ClientData clientData,
- Tcl_CmdDeleteProc *deleteProc)))
-#endif /* #ifndef Lang_CreateObject */
-
-#ifndef Lang_DeleteObject
-VFUNC(void,Lang_DeleteObject,V_Lang_DeleteObject,_ANSI_ARGS_((Tcl_Interp *,Tcl_Command)))
-#endif /* #ifndef Lang_DeleteObject */
-
-#ifndef Lang_FreeRegExp
-VFUNC(void,Lang_FreeRegExp,V_Lang_FreeRegExp,_ANSI_ARGS_((Tcl_RegExp re)))
-#endif /* #ifndef Lang_FreeRegExp */
-
-#ifndef Lang_GetErrorCode
-VFUNC(char *,Lang_GetErrorCode,V_Lang_GetErrorCode,_ANSI_ARGS_((Tcl_Interp *interp)))
-#endif /* #ifndef Lang_GetErrorCode */
-
-#ifndef Lang_GetErrorInfo
-VFUNC(char *,Lang_GetErrorInfo,V_Lang_GetErrorInfo,_ANSI_ARGS_((Tcl_Interp *interp)))
-#endif /* #ifndef Lang_GetErrorInfo */
-
-#ifndef Lang_SetBinaryResult
-VFUNC(void,Lang_SetBinaryResult,V_Lang_SetBinaryResult,_ANSI_ARGS_((Tcl_Interp *interp,
- char *string, int len, Tcl_FreeProc *freeProc)))
-#endif /* #ifndef Lang_SetBinaryResult */
-
-#ifndef Lang_SetErrorCode
-VFUNC(void,Lang_SetErrorCode,V_Lang_SetErrorCode,_ANSI_ARGS_((Tcl_Interp *interp,char *code)))
-#endif /* #ifndef Lang_SetErrorCode */
-
-#ifndef Lang_TraceVar
-VFUNC(int,Lang_TraceVar,V_Lang_TraceVar,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj *varRef, int flags,
- Lang_VarTraceProc * proc,
- ClientData clientData)))
-#endif /* #ifndef Lang_TraceVar */
-
-#ifndef Lang_UntraceVar
-VFUNC(void,Lang_UntraceVar,V_Lang_UntraceVar,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * varRef, int flags,
- Lang_VarTraceProc * proc,
- ClientData clientData)))
-#endif /* #ifndef Lang_UntraceVar */
-
-#ifndef TclObjGetType
-VFUNC(Tcl_ObjType *,TclObjGetType,V_TclObjGetType,_ANSI_ARGS_((Tcl_Obj *objPtr)))
-#endif /* #ifndef TclObjGetType */
-
-#ifndef TclObjInternal
-VFUNC(Tcl_InternalRep *,TclObjInternal,V_TclObjInternal,_ANSI_ARGS_((Tcl_Obj *objPtr)))
-#endif /* #ifndef TclObjInternal */
-
-#ifndef TclObjLength
-VFUNC(int,TclObjLength,V_TclObjLength,_ANSI_ARGS_((Tcl_Obj *objPtr)))
-#endif /* #ifndef TclObjLength */
-
-#ifndef TclObjSetType
-VFUNC(void,TclObjSetType,V_TclObjSetType,_ANSI_ARGS_((Tcl_Obj *objPtr,Tcl_ObjType *newType)))
-#endif /* #ifndef TclObjSetType */
-
-#ifndef Tcl_AfterObjCmd
-VFUNC(int,Tcl_AfterObjCmd,V_Tcl_AfterObjCmd,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tcl_AfterObjCmd */
-
-#ifndef Tcl_DStringLength
-VFUNC(int,Tcl_DStringLength,V_Tcl_DStringLength,_ANSI_ARGS_((Tcl_DString *dString)))
-#endif /* #ifndef Tcl_DStringLength */
-
-#ifndef Tcl_DStringValue
-VFUNC(char *,Tcl_DStringValue,V_Tcl_DStringValue,_ANSI_ARGS_((Tcl_DString *dString)))
-#endif /* #ifndef Tcl_DStringValue */
-
-#ifndef Tcl_DecrRefCount
-VFUNC(void,Tcl_DecrRefCount,V_Tcl_DecrRefCount,_ANSI_ARGS_((Tcl_Obj *objPtr)))
-#endif /* #ifndef Tcl_DecrRefCount */
-
-#ifndef Tcl_DoubleResults
-VFUNC(void,Tcl_DoubleResults,V_Tcl_DoubleResults,_ANSI_ARGS_((Tcl_Interp *interp,int,int,...)))
-#endif /* #ifndef Tcl_DoubleResults */
-
-#ifndef Tcl_IncrRefCount
-VFUNC(void,Tcl_IncrRefCount,V_Tcl_IncrRefCount,_ANSI_ARGS_((Tcl_Obj *objPtr)))
-#endif /* #ifndef Tcl_IncrRefCount */
-
-#ifndef Tcl_IntResults
-VFUNC(void,Tcl_IntResults,V_Tcl_IntResults,_ANSI_ARGS_((Tcl_Interp *interp,int,int,...)))
-#endif /* #ifndef Tcl_IntResults */
-
-#ifndef Tcl_IsShared
-VFUNC(int,Tcl_IsShared,V_Tcl_IsShared,_ANSI_ARGS_((Tcl_Obj *objPtr)))
-#endif /* #ifndef Tcl_IsShared */
-
-#ifndef Tcl_SprintfResult
-VFUNC(void,Tcl_SprintfResult,V_Tcl_SprintfResult,_ANSI_ARGS_((Tcl_Interp *,char *,...)))
-#endif /* #ifndef Tcl_SprintfResult */
-
-#ifndef Tk_PropertyCmd
-VFUNC(int,Tk_PropertyCmd,V_Tk_PropertyCmd,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj **objv)))
-#endif /* #ifndef Tk_PropertyCmd */
-
-#endif /* _LANG */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/Lang_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/Lang_f.h
deleted file mode 100644
index 37058e76411..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/Lang_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef LANG_VT
-#define LANG_VT
-typedef struct LangVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "Lang.t"
-#undef VFUNC
-#undef VVAR
-} LangVtab;
-extern LangVtab *LangVptr;
-extern LangVtab *LangVGet(void);
-#endif /* LANG_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/Tcl-pTk b/Master/tlpkg/tlperl/lib/Tk/pTk/Tcl-pTk
deleted file mode 100644
index 424d69e5ec2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/Tcl-pTk
+++ /dev/null
@@ -1,260 +0,0 @@
-#!/usr/bin/perl -w
-use open IO => ':bytes'; # Avoid UTF-8 issues with some perl5.8.0 (RedHat)
-use Carp;
-my $verbose = 0;
-
-$SIG{'__WARN__'} = sub { print STDERR $_; Carp::confess(shift) };
-
-$src = shift;
-$dst = shift;
-
-die "Usage: $0 <src> <dst> \n" unless (defined $src and defined $dst);
-
-chmod(0666, $dst);
-chmod(0666, "$dst~");
-unlink($dst);
-open(DST,">$dst~") || die "Cannot open $dst~: $!";
-select(DST);
-
-my $copyright;
-
-@ARGV = ($src);
-
-undef $undone;
-
-sub getline
-{
- local $_;
- if (defined $undone)
- {
- $_ = $undone;
- undef $undone;
- }
- else
- {
- $_ = <>;
- }
- return $_;
-}
-
-sub int_results
-{my $fmt = shift;
- my $type = shift;
- my @fmt = split(/\s+/,$fmt);
- my $cnt = @fmt;
- # print STDERR "'$fmt' => $cnt\n";
- return "Tcl_${type}Results(interp,$cnt,0";
-}
-
-sub result
-{my ($interp,$value,$tail) = @_;
- my $line = &getline;
- my $kind = "TCL_STATIC";
- if (defined $line)
- {
- if ($line =~ /^\s*$interp\s*->\s*freeProc\s*=\s*(.*)\s*;\s*$/)
- {
- $kind = $1;
- }
- else
- {
- $undone = $line if (defined $line);
- }
- }
- return "Tcl_SetResult($interp,$value,$kind)$tail";
-}
-
-sub complete
-{
- my $tail = "";
- until (/;/)
- {
- my $line = &getline;
- last unless defined($line);
- s/\s*$//;
- $line =~ s/^\s*//;
- $_ .= " " . $line;
- $tail .= "\n";
- }
- $_ .= $tail;
-}
-
-#use Carp;
-#$SIG{'INT'} = sub { Carp::confess($_) };
-
-
-PROCESS:
-while ($_ = &getline)
- {
- s/^\s*#\s*include\s*[<"]tcl\.h[">]\s*$/#include "Lang.h"\n/;
-
- s/^\s*#\s*include\s*<((tk|tkInt|tkPort|tix|tixInt)\.h)>\s*$/#include "$1"\n/;
-
- next if (/^\s*extern.*\bpanic\s*\(/);
-
- s/\(char\s*\*\)\s*NULL\b/ NULL/g;
-
- if (/^#(define|ifn?def|endif)\b/)
- {
- print;
- while (/\\$/)
- {
- $_ = &getline;
- print;
- }
- next;
- }
-
- if (m#^ */\*# && !m#\*/#)
- {
- print;
- while (!m#\*/#)
- {
- $_ = &getline;
- print;
- }
- next;
- }
-
- s/tclStubs\.t(\w+)/TkeventVptr->V_T$1/;
-
- s/\bpanic\b/Tcl_Panic/g;
-
- s/\b(\w+Ptr)->internalRep\./TclObjInternal($1)->/g;
-
- s/(\w+bjPtr)->typePtr\s*=\s*(.*);/TclObjSetType($1,$2);/g;
-
- s/\b(\w*bjPtr)->typePtr\b/TclObjGetType($1)/g;
-
- if (/if\s*\(\(c == '.'\)\s*$/)
- {
- my $line = &getline;
- if (defined($line))
- {
- s/\s*$//;
- $line =~ s/^\s*//;
- $_ .= " " . $line . "\n";
- }
- }
-
- if (/Tcl_DeleteCommandFromToken/)
- {
- if (/Tcl_DeleteCommandFromToken[^;{]*$/)
- {
- &complete;
- redo PROCESS;
- }
- s/Tcl_DeleteCommandFromToken(.*imageCmd)/Lang_DeleteObject$1/;
- s/Tcl_DeleteCommandFromToken(.*widgetCmd)/Lang_DeleteWidget$1/;
- }
-
- if (/Tcl_(Create|Delete)Command/)
- {
- if (/Tcl_(Create|Delete)Command[^;{]*$/)
- {
- &complete;
- redo PROCESS;
- }
- s/Tcl_CreateCommand\s*\(\s*((\w+->)*interp)\s*,\s*Tk_PathName\s*\(([^\)]+)\)/Lang_CreateWidget($1,$3/;
- s/Tcl_DeleteCommand\s*\(\s*((\w+->)*(\w+\.)?interp)\s*,\s*Tcl_GetCommandName\s*\([^,]+,\s*([^\)]+->(\w+\.style|image)Cmd)\)/Lang_DeleteObject($1,$4/;
- s/Tcl_DeleteCommand\s*\(\s*((\w+->)*(\w+\.)?interp)\s*,\s*Tcl_GetCommandName\s*\([^,]+,\s*([^\)]+->widgetCmd)\)/Lang_DeleteWidget($1,$4/;
- }
-
- s/\(char \*\*\)\s*objv\b/objv/g;
-
-# s/Tcl_Obj\s+\*(CONST\s+)?objv\b/Tcl_Obj *objv/;
- if (/\bargv\w*\b/)
- {
- if (/\bargv\w*\s*\[([^[]*)\]\s*=[^=][^;{]*$/)
- {
- &complete;
- redo PROCESS;
- }
- s/Tcl_Obj\s+\*(CONST\s+)?argv\b/Tcl_Obj *objv/;
- if (/\bchar\b.*\bargv\w*\b/)
- {
- # convert char *argv[] to char **argv
- s/char\s*\*\s*\bargv\s*\[\s*\]/char **argv/;
- # convert char **argv to Tcl_Obj **objv
- s/(CONST\s+)?char\s*\*\*\s*\bargv\b/Tcl_Obj *CONST *objv/;
- # convert char *argv[n] to Tcl_Obj **objv = LangAllocVec(n)
- s/char\s*\*\s*\bargv\s*\[\s*([^[]+)\]/Tcl_Obj **objv = LangAllocVec($1)/;
- }
- else
- {
- s/([^*])\*(argv\w*(\[[^[]*\])?)/${1}${2}[0]/g;
- }
- s/\(Tcl_Obj\s\*\)\s*argv\b/objv/g;
- s/\bargv\s*\[([^[]*)\]\s*=([^=].*);\s*$/LangSetString(objv+$1,$2);\n/;
- s/\bargv\s*\[([^[]*)\]\+\+/objv[$1] = Tcl_NewStringObj(Tcl_GetString(objv[$1])+1,-1)/;
- s/\bargv\s*\[([^[]*)\]\+([0-9])/Tcl_NewStringObj(Tcl_GetString(objv[$1])+$2,-1)/;
- if (/Tcl_Get(Boolean|Int|Double)/ || /Tk_Get(Cursor)/)
- {
- s/\bargv(\w*)\b/objv$1/g;
- }
- s/\bargv\s*(\[[^[]*\])/Tcl_GetString(objv$1)/g;
- if (/\bargv\b/)
- {
- warn "Leak: $_" if ($verbose && !/\bargv\s*\)/);
- s/\bargv\b/objv/;
- }
- }
- if (/->\s*result\b/)
- {
- s/\s*->\s*result\b/->result/g;
-
- s/\bsprintf\s*\(\s*interp->result\s*,\s*"((\s*%d)+)"/&int_results($1,"Int")/e;
-
- s/\bsprintf\s*\(\s*interp->result\s*,\s*"((\s*%g)+)"/&int_results($1,"Double")/e;
-
- s/\bsprintf\s*\(\s*interp->result\b/Tcl_SprintfResult(interp/;
- if (/\binterp->result\s*=[^;]*$/)
- {
- &complete;
- redo PROCESS;
- }
- s/\b((\w+\s*->\s*)*interp)->result\s*=([^;]*);/&result($1,$3,";")/e;
- s/\b((\w+\s*->\s*)*interp)->result\s*=(.*);\s*$/&result($1,$3,";\n")/e;
- s/\b((\w+\s*->\s*)*interp)->result/Tcl_GetResult($1)/;
- }
-
- if (/\bTcl_SetResult\s*\(/)
- {
- if (/Tcl_SetResult\s*\([^;{]*$/)
- {
- &complete;
- redo PROCESS;
- }
- s/Tcl_SetResult\s*\(\s*((\w+->)*interp),\s*"(\d+)",\s*TCL_STATIC\s*\)/Tcl_SetObjResult($1, Tcl_NewIntObj($3))/;
- s/Tcl_SetResult\s*\(\s*((\w+->)*interp),\s*Tk_PathName\(([^)]+)\),\s*TCL_STATIC\s*\)/Tcl_SetObjResult($1,LangWidgetObj($1,$3))/;
- s/Tcl_SetResult\s*\(\s*((\w+->)*interp),\s*((\w+->)*\w+)->pathName\s*,\s*TCL_STATIC\s*\)/Tcl_SetObjResult($1,LangWidgetObj($1,(Tk_Window)($3)))/;
- die $_ if /(Tk_PathName|->pathName)/;
- }
-# 1 2 3 4 5 6
- s/\(c == '(.)'\)\s*&&\s*(\(?)\(strncmp\(([^,]+),\s*("-\1[^"]*"),\s*(\w+|strlen\(\3\))\s*\)\s*==\s*0\)(\)?)/(c == '$1') && $2 LangCmpOpt($4,$3,$5) == 0 $6/g;
- s/\(c == '(.)'\)\s*&&\s*\(strcmp\(([^,]+),\s*("-\1[^"]*")\s*\)\s*==\s*0\)/(c == '$1') && LangCmpOpt($3,$2,0) == 0/g;
-
- if (defined($copyright) && !/^\s\*\s*Copyright/)
- {
- print $copyright;
- undef $copyright;
- }
-
- s/[^\S\n]+$//;
- print;
-
- if (0 && /^((\s\*)\s*)Copyright/)
- {
- $copyright = "$2\n$1Modifications Copyright (c) 1994-2003 Nick Ing-Simmons\n";
- }
- }
-
-select(STDOUT);
-close(DST) or die "While writing to $dst~: $!";
-
-rename "$dst~", $dst or die "Could not rename $dst~ to $dst: $!";
-
-chmod(0444,$dst);
-
-exit 0;
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/Xlib.h b/Master/tlpkg/tlperl/lib/Tk/pTk/Xlib.h
deleted file mode 100644
index 6645407459b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/Xlib.h
+++ /dev/null
@@ -1,151 +0,0 @@
-#ifndef _XLIB
-#define _XLIB
-#ifndef _XLIB_H_
-#ifndef _X11_XLIB_H_
-extern XFontStruct *XLoadQueryFont _ANSI_ARGS_((Display *, const char *));
-extern XModifierKeymap *XGetModifierMapping _ANSI_ARGS_((Display *));
-extern XImage *XCreateImage _ANSI_ARGS_((Display *, Visual *, unsigned int, int, int, char *, unsigned int, unsigned int, int, int));
-extern XImage *XGetImage _ANSI_ARGS_((Display *, Drawable, int, int, unsigned int, unsigned int, long unsigned int, int));
-extern Display *XOpenDisplay _ANSI_ARGS_((const char *));
-extern char *XGetAtomName _ANSI_ARGS_((Display *, Atom));
-extern char *XKeysymToString _ANSI_ARGS_((KeySym));
-extern Atom XInternAtom _ANSI_ARGS_((Display *, const char *, int));
-extern Colormap XCreateColormap _ANSI_ARGS_((Display *, Window, Visual *, int));
-extern Cursor XCreatePixmapCursor _ANSI_ARGS_((Display *, Pixmap, Pixmap, XColor *, XColor *, unsigned int, unsigned int));
-extern Cursor XCreateGlyphCursor _ANSI_ARGS_((Display *, Font, Font, unsigned int, unsigned int, XColor const *, XColor const *));
-extern Font XLoadFont _ANSI_ARGS_((Display *, const char *));
-extern GC XCreateGC _ANSI_ARGS_((Display *, Drawable, long unsigned int, XGCValues *));
-extern GContext XGContextFromGC _ANSI_ARGS_((GC));
-extern Pixmap XCreateBitmapFromData _ANSI_ARGS_((Display *, Drawable, const char *, unsigned int, unsigned int));
-extern Window XCreateWindow _ANSI_ARGS_((Display *, Window, int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, Visual *, long unsigned int, XSetWindowAttributes *));
-extern Atom *XListProperties _ANSI_ARGS_((Display *, Window, int *));
-extern XHostAddress *XListHosts _ANSI_ARGS_((Display *, int *, int *));
-extern KeySym XKeycodeToKeysym _ANSI_ARGS_((Display *, unsigned int, int));
-extern KeySym XStringToKeysym _ANSI_ARGS_((const char *));
-extern VisualID XVisualIDFromVisual _ANSI_ARGS_((Visual *));
-extern Window XRootWindow _ANSI_ARGS_((Display *, int));
-extern Visual *XDefaultVisual _ANSI_ARGS_((Display *, int));
-extern Colormap XDefaultColormap _ANSI_ARGS_((Display *, int));
-extern XErrorHandler XSetErrorHandler _ANSI_ARGS_((XErrorHandler));
-extern int XIconifyWindow _ANSI_ARGS_((Display *, Window, int));
-extern int XWithdrawWindow _ANSI_ARGS_((Display *, Window, int));
-extern int XGetWMColormapWindows _ANSI_ARGS_((Display *, Window, Window **, int *));
-extern int XSetWMColormapWindows _ANSI_ARGS_((Display *, Window, Window *, int));
-extern int XSetTransientForHint _ANSI_ARGS_((Display *, Window, Window));
-extern int XAllocColor _ANSI_ARGS_((Display *, Colormap, XColor *));
-extern int XAllocNamedColor _ANSI_ARGS_((Display *, Colormap, const char *, XColor *, XColor *));
-extern int XBell _ANSI_ARGS_((Display *, int));
-extern int XChangeProperty _ANSI_ARGS_((Display *, Window, Atom, Atom, int, int, const unsigned char *, int));
-extern int XChangeWindowAttributes _ANSI_ARGS_((Display *, Window, long unsigned int, XSetWindowAttributes *));
-extern int XCheckIfEvent _ANSI_ARGS_((Display *, XEvent *, int (*) (Display *, XEvent *, char *), char *));
-extern int XCheckWindowEvent _ANSI_ARGS_((Display *, Window, long int, XEvent *));
-extern int XClearWindow _ANSI_ARGS_((Display *, Window));
-extern int XConfigureWindow _ANSI_ARGS_((Display *, Window, unsigned int, XWindowChanges *));
-extern int XConvertSelection _ANSI_ARGS_((Display *, Atom, Atom, Atom, Window, Time));
-extern int XCopyArea _ANSI_ARGS_((Display *, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int));
-extern int XCopyPlane _ANSI_ARGS_((Display *, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int, long unsigned int));
-extern int XDefaultDepth _ANSI_ARGS_((Display *, int));
-extern int XDefaultScreen _ANSI_ARGS_((Display *));
-extern int XDefineCursor _ANSI_ARGS_((Display *, Window, Cursor));
-extern int XDeleteProperty _ANSI_ARGS_((Display *, Window, Atom));
-extern int XDestroyWindow _ANSI_ARGS_((Display *, Window));
-extern int XDrawArc _ANSI_ARGS_((Display *, Drawable, GC, int, int, unsigned int, unsigned int, int, int));
-extern int XDrawLine _ANSI_ARGS_((Display *, Drawable, GC, int, int, int, int));
-extern int XDrawLines _ANSI_ARGS_((Display *, Drawable, GC, XPoint *, int, int));
-extern int XDrawRectangle _ANSI_ARGS_((Display *, Drawable, GC, int, int, unsigned int, unsigned int));
-extern int XDrawString _ANSI_ARGS_((Display *, Drawable, GC, int, int, const char *, int));
-extern int XEventsQueued _ANSI_ARGS_((Display *, int));
-extern int XFillArc _ANSI_ARGS_((Display *, Drawable, GC, int, int, unsigned int, unsigned int, int, int));
-extern int XFillPolygon _ANSI_ARGS_((Display *, Drawable, GC, XPoint *, int, int, int));
-extern int XFillRectangle _ANSI_ARGS_((Display *, Drawable, GC, int, int, unsigned int, unsigned int));
-extern int XFillRectangles _ANSI_ARGS_((Display *, Drawable, GC, XRectangle *, int));
-extern int XFlush _ANSI_ARGS_((Display *));
-extern int XFree _ANSI_ARGS_((XFree_arg_t *));
-extern int XFreeColormap _ANSI_ARGS_((Display *, Colormap));
-extern int XFreeColors _ANSI_ARGS_((Display *, Colormap, long unsigned int *, int, long unsigned int));
-extern int XFreeCursor _ANSI_ARGS_((Display *, Cursor));
-extern int XFreeFont _ANSI_ARGS_((Display *, XFontStruct *));
-extern int XFreeGC _ANSI_ARGS_((Display *, GC));
-extern int XFreeModifiermap _ANSI_ARGS_((XModifierKeymap *));
-extern int XGetFontProperty _ANSI_ARGS_((XFontStruct *, Atom, long unsigned int *));
-extern int XGetGeometry _ANSI_ARGS_((Display *, Drawable, Window *, int *, int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *));
-extern int XGetInputFocus _ANSI_ARGS_((Display *, Window *, int *));
-extern int XGetWindowProperty _ANSI_ARGS_((Display *, Window, Atom, long int, long int, int, Atom, Atom *, int *, long unsigned int *, long unsigned int *, unsigned char **));
-extern int XGetWindowAttributes _ANSI_ARGS_((Display *, Window, XWindowAttributes *));
-extern int XGrabKeyboard _ANSI_ARGS_((Display *, Window, int, int, int, Time));
-extern int XGrabPointer _ANSI_ARGS_((Display *, Window, int, unsigned int, int, int, Window, Cursor, Time));
-extern int XGrabServer _ANSI_ARGS_((Display *));
-extern int XLookupColor _ANSI_ARGS_((Display *, Colormap, const char *, XColor *, XColor *));
-extern int XLowerWindow _ANSI_ARGS_((Display *, Window));
-extern int XMapWindow _ANSI_ARGS_((Display *, Window));
-extern int XMoveResizeWindow _ANSI_ARGS_((Display *, Window, int, int, unsigned int, unsigned int));
-extern int XMoveWindow _ANSI_ARGS_((Display *, Window, int, int));
-extern int XNextEvent _ANSI_ARGS_((Display *, XEvent *));
-extern int XNoOp _ANSI_ARGS_((Display *));
-extern int XParseColor _ANSI_ARGS_((Display *, Colormap, const char *, XColor *));
-extern int XPutBackEvent _ANSI_ARGS_((Display *, XEvent *));
-extern int XPutImage _ANSI_ARGS_((Display *, Drawable, GC, XImage *, int, int, int, int, unsigned int, unsigned int));
-extern int XQueryColors _ANSI_ARGS_((Display *, Colormap, XColor *, int));
-extern int XQueryPointer _ANSI_ARGS_((Display *, Window, Window *, Window *, int *, int *, int *, int *, unsigned int *));
-extern int XQueryTree _ANSI_ARGS_((Display *, Window, Window *, Window *, Window **, unsigned int *));
-extern int XRaiseWindow _ANSI_ARGS_((Display *, Window));
-extern int XReadBitmapFile _ANSI_ARGS_((Display *, Drawable, const char *, unsigned int *, unsigned int *, Pixmap *, int *, int *));
-extern int XRefreshKeyboardMapping _ANSI_ARGS_((XMappingEvent *));
-extern int XResizeWindow _ANSI_ARGS_((Display *, Window, unsigned int, unsigned int));
-extern int XSelectInput _ANSI_ARGS_((Display *, Window, long int));
-extern int XSendEvent _ANSI_ARGS_((Display *, Window, int, long int, XEvent *));
-extern int XSetClipMask _ANSI_ARGS_((Display *, GC, Pixmap));
-extern int XSetClipOrigin _ANSI_ARGS_((Display *, GC, int, int));
-extern int XSetCommand _ANSI_ARGS_((Display *, Window, char **, int));
-extern int XSetDashes _ANSI_ARGS_((Display *, GC, int, const char *, int));
-extern int XSetForeground _ANSI_ARGS_((Display *, GC, long unsigned int));
-extern int XSetIconName _ANSI_ARGS_((Display *, Window, const char *));
-extern int XSetInputFocus _ANSI_ARGS_((Display *, Window, int, Time));
-extern int XSetSelectionOwner _ANSI_ARGS_((Display *, Atom, Window, Time));
-extern int XSetTSOrigin _ANSI_ARGS_((Display *, GC, int, int));
-extern int XSetWindowBackground _ANSI_ARGS_((Display *, Window, long unsigned int));
-extern int XSetWindowBackgroundPixmap _ANSI_ARGS_((Display *, Window, Pixmap));
-extern int XSetWindowBorder _ANSI_ARGS_((Display *, Window, long unsigned int));
-extern int XSetWindowBorderPixmap _ANSI_ARGS_((Display *, Window, Pixmap));
-extern int XSetWindowBorderWidth _ANSI_ARGS_((Display *, Window, unsigned int));
-extern int XSetWindowColormap _ANSI_ARGS_((Display *, Window, Colormap));
-extern int XSync _ANSI_ARGS_((Display *, int));
-extern int XTextExtents _ANSI_ARGS_((XFontStruct *, const char *, int, int *, int *, int *, XCharStruct *));
-extern int XTextWidth _ANSI_ARGS_((XFontStruct *, const char *, int));
-extern int XTranslateCoordinates _ANSI_ARGS_((Display *, Window, Window, int, int, int *, int *, Window *));
-extern int XUngrabKeyboard _ANSI_ARGS_((Display *, Time));
-extern int XUngrabPointer _ANSI_ARGS_((Display *, Time));
-extern int XUngrabServer _ANSI_ARGS_((Display *));
-extern int XUnmapWindow _ANSI_ARGS_((Display *, Window));
-extern int XWindowEvent _ANSI_ARGS_((Display *, Window, long int, XEvent *));
-extern Region XCreateRegion _ANSI_ARGS_((void));
-extern XVisualInfo *XGetVisualInfo _ANSI_ARGS_((Display *, long int, XVisualInfo *, int *));
-extern XSizeHints *XAllocSizeHints _ANSI_ARGS_((void));
-extern XClassHint *XAllocClassHint _ANSI_ARGS_((void));
-extern void XSetWMNormalHints _ANSI_ARGS_((Display *, Window, XSizeHints *));
-extern void XSetWMName _ANSI_ARGS_((Display *, Window, XTextProperty *));
-extern void XSetWMClientMachine _ANSI_ARGS_((Display *, Window, XTextProperty *));
-extern int XStringListToTextProperty _ANSI_ARGS_((char **, int, XTextProperty *));
-extern int XClipBox _ANSI_ARGS_((Region, XRectangle *));
-extern int XDestroyRegion _ANSI_ARGS_((Region));
-extern int XIntersectRegion _ANSI_ARGS_((Region, Region, Region));
-extern int XLookupString _ANSI_ARGS_((XKeyEvent *, char *, int, KeySym *, XComposeStatus *));
-extern int XSetClassHint _ANSI_ARGS_((Display *, Window, XClassHint *));
-extern int XSetWMHints _ANSI_ARGS_((Display *, Window, XWMHints *));
-extern int XSetRegion _ANSI_ARGS_((Display *, GC, Region));
-extern int XUnionRectWithRegion _ANSI_ARGS_((XRectangle *, Region, Region));
-extern int XSetBackground _ANSI_ARGS_((Display *, GC, unsigned long));
-extern int XDrawImageString _ANSI_ARGS_((Display *, Drawable, GC, int, int, const char *, int));
-extern int XWarpPointer _ANSI_ARGS_(( Display *, Window, Window, int, int, unsigned int, unsigned int, int, int ));
-extern int XDrawPoints _ANSI_ARGS_(( Display*, Drawable, GC, XPoint*, int, int));
-extern int XChangeGC _ANSI_ARGS_(( Display*, GC, unsigned long, XGCValues *));
-extern char **XListFonts _ANSI_ARGS_(( Display*, const char *, int, int *));
-extern int XFreeFontNames _ANSI_ARGS_((char **));
-extern Window XGetSelectionOwner _ANSI_ARGS_((Display *, Atom));
-extern int XRectInRegion _ANSI_ARGS_((Region,int,int,unsigned,unsigned));
-extern int XSubtractRegion _ANSI_ARGS_((Region, Region, Region));
-#endif /* _X11_XLIB_H_ */
-#endif /* _XLIB_H_ */
-extern int _XInitImageFuncPtrs _ANSI_ARGS_((XImage *image));
-#endif /* _XLIB */
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/Xlib.m b/Master/tlpkg/tlperl/lib/Tk/pTk/Xlib.m
deleted file mode 100644
index 81d863e3d63..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/Xlib.m
+++ /dev/null
@@ -1,661 +0,0 @@
-#ifndef _XLIB_VM
-#define _XLIB_VM
-#include "Xlib_f.h"
-#ifndef NO_VTABLES
-#if (defined(__WIN32__) || defined(__PM__)) && !defined(DO_X_EXCLUDE)
-# define DO_X_EXCLUDE
-#endif
-#ifndef DO_X_EXCLUDE
-#ifndef XAllocClassHint
-# define XAllocClassHint (*XlibVptr->V_XAllocClassHint)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XAllocColor
-# define XAllocColor (*XlibVptr->V_XAllocColor)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XAllocNamedColor
-# define XAllocNamedColor (*XlibVptr->V_XAllocNamedColor)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XAllocSizeHints
-# define XAllocSizeHints (*XlibVptr->V_XAllocSizeHints)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XBell
-# define XBell (*XlibVptr->V_XBell)
-#endif
-
-#ifndef XChangeGC
-# define XChangeGC (*XlibVptr->V_XChangeGC)
-#endif
-
-#ifndef XChangeProperty
-# define XChangeProperty (*XlibVptr->V_XChangeProperty)
-#endif
-
-#ifndef XChangeWindowAttributes
-# define XChangeWindowAttributes (*XlibVptr->V_XChangeWindowAttributes)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XCheckIfEvent
-# define XCheckIfEvent (*XlibVptr->V_XCheckIfEvent)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XCheckWindowEvent
-# define XCheckWindowEvent (*XlibVptr->V_XCheckWindowEvent)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XClearWindow
-# define XClearWindow (*XlibVptr->V_XClearWindow)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XClipBox
-# define XClipBox (*XlibVptr->V_XClipBox)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XConfigureWindow
-# define XConfigureWindow (*XlibVptr->V_XConfigureWindow)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XConvertSelection
-# define XConvertSelection (*XlibVptr->V_XConvertSelection)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XCopyArea
-# define XCopyArea (*XlibVptr->V_XCopyArea)
-#endif
-
-#ifndef XCopyPlane
-# define XCopyPlane (*XlibVptr->V_XCopyPlane)
-#endif
-
-#ifndef XCreateBitmapFromData
-# define XCreateBitmapFromData (*XlibVptr->V_XCreateBitmapFromData)
-#endif
-
-#ifndef XCreateColormap
-# define XCreateColormap (*XlibVptr->V_XCreateColormap)
-#endif
-
-#ifndef XCreateGC
-# define XCreateGC (*XlibVptr->V_XCreateGC)
-#endif
-
-#ifndef XCreateGlyphCursor
-# define XCreateGlyphCursor (*XlibVptr->V_XCreateGlyphCursor)
-#endif
-
-#ifndef XCreateImage
-# define XCreateImage (*XlibVptr->V_XCreateImage)
-#endif
-
-#ifndef XCreatePixmapCursor
-# define XCreatePixmapCursor (*XlibVptr->V_XCreatePixmapCursor)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XCreateRegion
-# define XCreateRegion (*XlibVptr->V_XCreateRegion)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XCreateWindow
-# define XCreateWindow (*XlibVptr->V_XCreateWindow)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDefaultColormap
-# define XDefaultColormap (*XlibVptr->V_XDefaultColormap)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDefaultDepth
-# define XDefaultDepth (*XlibVptr->V_XDefaultDepth)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDefaultScreen
-# define XDefaultScreen (*XlibVptr->V_XDefaultScreen)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDefaultVisual
-# define XDefaultVisual (*XlibVptr->V_XDefaultVisual)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XDefineCursor
-# define XDefineCursor (*XlibVptr->V_XDefineCursor)
-#endif
-
-#ifndef XDeleteProperty
-# define XDeleteProperty (*XlibVptr->V_XDeleteProperty)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDestroyRegion
-# define XDestroyRegion (*XlibVptr->V_XDestroyRegion)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XDestroyWindow
-# define XDestroyWindow (*XlibVptr->V_XDestroyWindow)
-#endif
-
-#ifndef XDrawArc
-# define XDrawArc (*XlibVptr->V_XDrawArc)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDrawImageString
-# define XDrawImageString (*XlibVptr->V_XDrawImageString)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XDrawLine
-# define XDrawLine (*XlibVptr->V_XDrawLine)
-#endif
-
-#ifndef XDrawLines
-# define XDrawLines (*XlibVptr->V_XDrawLines)
-#endif
-
-#ifndef XDrawPoints
-# define XDrawPoints (*XlibVptr->V_XDrawPoints)
-#endif
-
-#ifndef XDrawRectangle
-# define XDrawRectangle (*XlibVptr->V_XDrawRectangle)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDrawString
-# define XDrawString (*XlibVptr->V_XDrawString)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XEventsQueued
-# define XEventsQueued (*XlibVptr->V_XEventsQueued)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XFillArc
-# define XFillArc (*XlibVptr->V_XFillArc)
-#endif
-
-#ifndef XFillPolygon
-# define XFillPolygon (*XlibVptr->V_XFillPolygon)
-#endif
-
-#ifndef XFillRectangle
-# define XFillRectangle (*XlibVptr->V_XFillRectangle)
-#endif
-
-#ifndef XFillRectangles
-# define XFillRectangles (*XlibVptr->V_XFillRectangles)
-#endif
-
-#ifndef XFlush
-# define XFlush (*XlibVptr->V_XFlush)
-#endif
-
-#ifndef XFree
-# define XFree (*XlibVptr->V_XFree)
-#endif
-
-#ifndef XFreeColormap
-# define XFreeColormap (*XlibVptr->V_XFreeColormap)
-#endif
-
-#ifndef XFreeColors
-# define XFreeColors (*XlibVptr->V_XFreeColors)
-#endif
-
-#ifndef XFreeCursor
-# define XFreeCursor (*XlibVptr->V_XFreeCursor)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XFreeFont
-# define XFreeFont (*XlibVptr->V_XFreeFont)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XFreeFontNames
-# define XFreeFontNames (*XlibVptr->V_XFreeFontNames)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XFreeGC
-# define XFreeGC (*XlibVptr->V_XFreeGC)
-#endif
-
-#ifndef XFreeModifiermap
-# define XFreeModifiermap (*XlibVptr->V_XFreeModifiermap)
-#endif
-
-#ifndef XGContextFromGC
-# define XGContextFromGC (*XlibVptr->V_XGContextFromGC)
-#endif
-
-#ifndef XGetAtomName
-# define XGetAtomName (*XlibVptr->V_XGetAtomName)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XGetFontProperty
-# define XGetFontProperty (*XlibVptr->V_XGetFontProperty)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XGetGeometry
-# define XGetGeometry (*XlibVptr->V_XGetGeometry)
-#endif
-
-#ifndef XGetImage
-# define XGetImage (*XlibVptr->V_XGetImage)
-#endif
-
-#ifndef XGetInputFocus
-# define XGetInputFocus (*XlibVptr->V_XGetInputFocus)
-#endif
-
-#ifndef XGetModifierMapping
-# define XGetModifierMapping (*XlibVptr->V_XGetModifierMapping)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XGetSelectionOwner
-# define XGetSelectionOwner (*XlibVptr->V_XGetSelectionOwner)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XGetVisualInfo
-# define XGetVisualInfo (*XlibVptr->V_XGetVisualInfo)
-#endif
-
-#ifndef XGetWMColormapWindows
-# define XGetWMColormapWindows (*XlibVptr->V_XGetWMColormapWindows)
-#endif
-
-#ifndef XGetWindowAttributes
-# define XGetWindowAttributes (*XlibVptr->V_XGetWindowAttributes)
-#endif
-
-#ifndef XGetWindowProperty
-# define XGetWindowProperty (*XlibVptr->V_XGetWindowProperty)
-#endif
-
-#ifndef XGrabKeyboard
-# define XGrabKeyboard (*XlibVptr->V_XGrabKeyboard)
-#endif
-
-#ifndef XGrabPointer
-# define XGrabPointer (*XlibVptr->V_XGrabPointer)
-#endif
-
-#ifndef XGrabServer
-# define XGrabServer (*XlibVptr->V_XGrabServer)
-#endif
-
-#ifndef XIconifyWindow
-# define XIconifyWindow (*XlibVptr->V_XIconifyWindow)
-#endif
-
-#ifndef XInternAtom
-# define XInternAtom (*XlibVptr->V_XInternAtom)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XIntersectRegion
-# define XIntersectRegion (*XlibVptr->V_XIntersectRegion)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XKeycodeToKeysym
-# define XKeycodeToKeysym (*XlibVptr->V_XKeycodeToKeysym)
-#endif
-
-#ifndef XKeysymToString
-# define XKeysymToString (*XlibVptr->V_XKeysymToString)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XListFonts
-# define XListFonts (*XlibVptr->V_XListFonts)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XListHosts
-# define XListHosts (*XlibVptr->V_XListHosts)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XListProperties
-# define XListProperties (*XlibVptr->V_XListProperties)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XLoadFont
-# define XLoadFont (*XlibVptr->V_XLoadFont)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XLoadQueryFont
-# define XLoadQueryFont (*XlibVptr->V_XLoadQueryFont)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XLookupColor
-# define XLookupColor (*XlibVptr->V_XLookupColor)
-#endif
-
-#ifndef XLookupString
-# define XLookupString (*XlibVptr->V_XLookupString)
-#endif
-
-#ifndef XLowerWindow
-# define XLowerWindow (*XlibVptr->V_XLowerWindow)
-#endif
-
-#ifndef XMapWindow
-# define XMapWindow (*XlibVptr->V_XMapWindow)
-#endif
-
-#ifndef XMoveResizeWindow
-# define XMoveResizeWindow (*XlibVptr->V_XMoveResizeWindow)
-#endif
-
-#ifndef XMoveWindow
-# define XMoveWindow (*XlibVptr->V_XMoveWindow)
-#endif
-
-#ifndef XNextEvent
-# define XNextEvent (*XlibVptr->V_XNextEvent)
-#endif
-
-#ifndef XNoOp
-# define XNoOp (*XlibVptr->V_XNoOp)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XOpenDisplay
-# define XOpenDisplay (*XlibVptr->V_XOpenDisplay)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XParseColor
-# define XParseColor (*XlibVptr->V_XParseColor)
-#endif
-
-#ifndef XPutBackEvent
-# define XPutBackEvent (*XlibVptr->V_XPutBackEvent)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XPutImage
-# define XPutImage (*XlibVptr->V_XPutImage)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XQueryColors
-# define XQueryColors (*XlibVptr->V_XQueryColors)
-#endif
-
-#ifndef XQueryPointer
-# define XQueryPointer (*XlibVptr->V_XQueryPointer)
-#endif
-
-#ifndef XQueryTree
-# define XQueryTree (*XlibVptr->V_XQueryTree)
-#endif
-
-#ifndef XRaiseWindow
-# define XRaiseWindow (*XlibVptr->V_XRaiseWindow)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XReadBitmapFile
-# define XReadBitmapFile (*XlibVptr->V_XReadBitmapFile)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XRectInRegion
-# define XRectInRegion (*XlibVptr->V_XRectInRegion)
-#endif
-
-#ifndef XRefreshKeyboardMapping
-# define XRefreshKeyboardMapping (*XlibVptr->V_XRefreshKeyboardMapping)
-#endif
-
-#ifndef XResizeWindow
-# define XResizeWindow (*XlibVptr->V_XResizeWindow)
-#endif
-
-#ifndef XRootWindow
-# define XRootWindow (*XlibVptr->V_XRootWindow)
-#endif
-
-#ifndef XSelectInput
-# define XSelectInput (*XlibVptr->V_XSelectInput)
-#endif
-
-#ifndef XSendEvent
-# define XSendEvent (*XlibVptr->V_XSendEvent)
-#endif
-
-#ifndef XSetBackground
-# define XSetBackground (*XlibVptr->V_XSetBackground)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetClassHint
-# define XSetClassHint (*XlibVptr->V_XSetClassHint)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XSetClipMask
-# define XSetClipMask (*XlibVptr->V_XSetClipMask)
-#endif
-
-#ifndef XSetClipOrigin
-# define XSetClipOrigin (*XlibVptr->V_XSetClipOrigin)
-#endif
-
-#ifndef XSetCommand
-# define XSetCommand (*XlibVptr->V_XSetCommand)
-#endif
-
-#ifndef XSetDashes
-# define XSetDashes (*XlibVptr->V_XSetDashes)
-#endif
-
-#ifndef XSetErrorHandler
-# define XSetErrorHandler (*XlibVptr->V_XSetErrorHandler)
-#endif
-
-#ifndef XSetForeground
-# define XSetForeground (*XlibVptr->V_XSetForeground)
-#endif
-
-#ifndef XSetIconName
-# define XSetIconName (*XlibVptr->V_XSetIconName)
-#endif
-
-#ifndef XSetInputFocus
-# define XSetInputFocus (*XlibVptr->V_XSetInputFocus)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetRegion
-# define XSetRegion (*XlibVptr->V_XSetRegion)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XSetSelectionOwner
-# define XSetSelectionOwner (*XlibVptr->V_XSetSelectionOwner)
-#endif
-
-#ifndef XSetTSOrigin
-# define XSetTSOrigin (*XlibVptr->V_XSetTSOrigin)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetTransientForHint
-# define XSetTransientForHint (*XlibVptr->V_XSetTransientForHint)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XSetWMClientMachine
-# define XSetWMClientMachine (*XlibVptr->V_XSetWMClientMachine)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetWMColormapWindows
-# define XSetWMColormapWindows (*XlibVptr->V_XSetWMColormapWindows)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetWMHints
-# define XSetWMHints (*XlibVptr->V_XSetWMHints)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetWMName
-# define XSetWMName (*XlibVptr->V_XSetWMName)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetWMNormalHints
-# define XSetWMNormalHints (*XlibVptr->V_XSetWMNormalHints)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XSetWindowBackground
-# define XSetWindowBackground (*XlibVptr->V_XSetWindowBackground)
-#endif
-
-#ifndef XSetWindowBackgroundPixmap
-# define XSetWindowBackgroundPixmap (*XlibVptr->V_XSetWindowBackgroundPixmap)
-#endif
-
-#ifndef XSetWindowBorder
-# define XSetWindowBorder (*XlibVptr->V_XSetWindowBorder)
-#endif
-
-#ifndef XSetWindowBorderPixmap
-# define XSetWindowBorderPixmap (*XlibVptr->V_XSetWindowBorderPixmap)
-#endif
-
-#ifndef XSetWindowBorderWidth
-# define XSetWindowBorderWidth (*XlibVptr->V_XSetWindowBorderWidth)
-#endif
-
-#ifndef XSetWindowColormap
-# define XSetWindowColormap (*XlibVptr->V_XSetWindowColormap)
-#endif
-
-#ifndef XStringListToTextProperty
-# define XStringListToTextProperty (*XlibVptr->V_XStringListToTextProperty)
-#endif
-
-#ifndef XStringToKeysym
-# define XStringToKeysym (*XlibVptr->V_XStringToKeysym)
-#endif
-
-#ifndef XSubtractRegion
-# define XSubtractRegion (*XlibVptr->V_XSubtractRegion)
-#endif
-
-#ifndef XSync
-# define XSync (*XlibVptr->V_XSync)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XTextExtents
-# define XTextExtents (*XlibVptr->V_XTextExtents)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XTextWidth
-# define XTextWidth (*XlibVptr->V_XTextWidth)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XTranslateCoordinates
-# define XTranslateCoordinates (*XlibVptr->V_XTranslateCoordinates)
-#endif
-
-#ifndef XUngrabKeyboard
-# define XUngrabKeyboard (*XlibVptr->V_XUngrabKeyboard)
-#endif
-
-#ifndef XUngrabPointer
-# define XUngrabPointer (*XlibVptr->V_XUngrabPointer)
-#endif
-
-#ifndef XUngrabServer
-# define XUngrabServer (*XlibVptr->V_XUngrabServer)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XUnionRectWithRegion
-# define XUnionRectWithRegion (*XlibVptr->V_XUnionRectWithRegion)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XUnmapWindow
-# define XUnmapWindow (*XlibVptr->V_XUnmapWindow)
-#endif
-
-#ifndef XVisualIDFromVisual
-# define XVisualIDFromVisual (*XlibVptr->V_XVisualIDFromVisual)
-#endif
-
-#ifndef DO_X_EXCLUDE
-#ifndef XWarpPointer
-# define XWarpPointer (*XlibVptr->V_XWarpPointer)
-#endif
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XWindowEvent
-# define XWindowEvent (*XlibVptr->V_XWindowEvent)
-#endif
-
-#ifndef XWithdrawWindow
-# define XWithdrawWindow (*XlibVptr->V_XWithdrawWindow)
-#endif
-
-#ifndef _XInitImageFuncPtrs
-# define _XInitImageFuncPtrs (*XlibVptr->V__XInitImageFuncPtrs)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _XLIB_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/Xlib.t b/Master/tlpkg/tlperl/lib/Tk/pTk/Xlib.t
deleted file mode 100644
index a193fc5e3ee..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/Xlib.t
+++ /dev/null
@@ -1,657 +0,0 @@
-#ifdef _XLIB
-#if (defined(__WIN32__) || defined(__PM__)) && !defined(DO_X_EXCLUDE)
-# define DO_X_EXCLUDE
-#endif
-#ifndef DO_X_EXCLUDE
-#ifndef XAllocClassHint
-VFUNC(XClassHint *,XAllocClassHint,V_XAllocClassHint,_ANSI_ARGS_((void)))
-#endif /* #ifndef XAllocClassHint */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XAllocColor
-VFUNC(int,XAllocColor,V_XAllocColor,_ANSI_ARGS_((Display *, Colormap, XColor *)))
-#endif /* #ifndef XAllocColor */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XAllocNamedColor
-VFUNC(int,XAllocNamedColor,V_XAllocNamedColor,_ANSI_ARGS_((Display *, Colormap, const char *, XColor *, XColor *)))
-#endif /* #ifndef XAllocNamedColor */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XAllocSizeHints
-VFUNC(XSizeHints *,XAllocSizeHints,V_XAllocSizeHints,_ANSI_ARGS_((void)))
-#endif /* #ifndef XAllocSizeHints */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XBell
-VFUNC(int,XBell,V_XBell,_ANSI_ARGS_((Display *, int)))
-#endif /* #ifndef XBell */
-
-#ifndef XChangeGC
-VFUNC(int,XChangeGC,V_XChangeGC,_ANSI_ARGS_(( Display*, GC, unsigned long, XGCValues *)))
-#endif /* #ifndef XChangeGC */
-
-#ifndef XChangeProperty
-VFUNC(int,XChangeProperty,V_XChangeProperty,_ANSI_ARGS_((Display *, Window, Atom, Atom, int, int, const unsigned char *, int)))
-#endif /* #ifndef XChangeProperty */
-
-#ifndef XChangeWindowAttributes
-VFUNC(int,XChangeWindowAttributes,V_XChangeWindowAttributes,_ANSI_ARGS_((Display *, Window, long unsigned int, XSetWindowAttributes *)))
-#endif /* #ifndef XChangeWindowAttributes */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XCheckIfEvent
-VFUNC(int,XCheckIfEvent,V_XCheckIfEvent,_ANSI_ARGS_((Display *, XEvent *, int (*) (Display *, XEvent *, char *), char *)))
-#endif /* #ifndef XCheckIfEvent */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XCheckWindowEvent
-VFUNC(int,XCheckWindowEvent,V_XCheckWindowEvent,_ANSI_ARGS_((Display *, Window, long int, XEvent *)))
-#endif /* #ifndef XCheckWindowEvent */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XClearWindow
-VFUNC(int,XClearWindow,V_XClearWindow,_ANSI_ARGS_((Display *, Window)))
-#endif /* #ifndef XClearWindow */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XClipBox
-VFUNC(int,XClipBox,V_XClipBox,_ANSI_ARGS_((Region, XRectangle *)))
-#endif /* #ifndef XClipBox */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XConfigureWindow
-VFUNC(int,XConfigureWindow,V_XConfigureWindow,_ANSI_ARGS_((Display *, Window, unsigned int, XWindowChanges *)))
-#endif /* #ifndef XConfigureWindow */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XConvertSelection
-VFUNC(int,XConvertSelection,V_XConvertSelection,_ANSI_ARGS_((Display *, Atom, Atom, Atom, Window, Time)))
-#endif /* #ifndef XConvertSelection */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XCopyArea
-VFUNC(int,XCopyArea,V_XCopyArea,_ANSI_ARGS_((Display *, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int)))
-#endif /* #ifndef XCopyArea */
-
-#ifndef XCopyPlane
-VFUNC(int,XCopyPlane,V_XCopyPlane,_ANSI_ARGS_((Display *, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int, long unsigned int)))
-#endif /* #ifndef XCopyPlane */
-
-#ifndef XCreateBitmapFromData
-VFUNC(Pixmap,XCreateBitmapFromData,V_XCreateBitmapFromData,_ANSI_ARGS_((Display *, Drawable, const char *, unsigned int, unsigned int)))
-#endif /* #ifndef XCreateBitmapFromData */
-
-#ifndef XCreateColormap
-VFUNC(Colormap,XCreateColormap,V_XCreateColormap,_ANSI_ARGS_((Display *, Window, Visual *, int)))
-#endif /* #ifndef XCreateColormap */
-
-#ifndef XCreateGC
-VFUNC(GC,XCreateGC,V_XCreateGC,_ANSI_ARGS_((Display *, Drawable, long unsigned int, XGCValues *)))
-#endif /* #ifndef XCreateGC */
-
-#ifndef XCreateGlyphCursor
-VFUNC(Cursor,XCreateGlyphCursor,V_XCreateGlyphCursor,_ANSI_ARGS_((Display *, Font, Font, unsigned int, unsigned int, XColor const *, XColor const *)))
-#endif /* #ifndef XCreateGlyphCursor */
-
-#ifndef XCreateImage
-VFUNC(XImage *,XCreateImage,V_XCreateImage,_ANSI_ARGS_((Display *, Visual *, unsigned int, int, int, char *, unsigned int, unsigned int, int, int)))
-#endif /* #ifndef XCreateImage */
-
-#ifndef XCreatePixmapCursor
-VFUNC(Cursor,XCreatePixmapCursor,V_XCreatePixmapCursor,_ANSI_ARGS_((Display *, Pixmap, Pixmap, XColor *, XColor *, unsigned int, unsigned int)))
-#endif /* #ifndef XCreatePixmapCursor */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XCreateRegion
-VFUNC(Region,XCreateRegion,V_XCreateRegion,_ANSI_ARGS_((void)))
-#endif /* #ifndef XCreateRegion */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XCreateWindow
-VFUNC(Window,XCreateWindow,V_XCreateWindow,_ANSI_ARGS_((Display *, Window, int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, Visual *, long unsigned int, XSetWindowAttributes *)))
-#endif /* #ifndef XCreateWindow */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDefaultColormap
-VFUNC(Colormap,XDefaultColormap,V_XDefaultColormap,_ANSI_ARGS_((Display *, int)))
-#endif /* #ifndef XDefaultColormap */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDefaultDepth
-VFUNC(int,XDefaultDepth,V_XDefaultDepth,_ANSI_ARGS_((Display *, int)))
-#endif /* #ifndef XDefaultDepth */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDefaultScreen
-VFUNC(int,XDefaultScreen,V_XDefaultScreen,_ANSI_ARGS_((Display *)))
-#endif /* #ifndef XDefaultScreen */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDefaultVisual
-VFUNC(Visual *,XDefaultVisual,V_XDefaultVisual,_ANSI_ARGS_((Display *, int)))
-#endif /* #ifndef XDefaultVisual */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XDefineCursor
-VFUNC(int,XDefineCursor,V_XDefineCursor,_ANSI_ARGS_((Display *, Window, Cursor)))
-#endif /* #ifndef XDefineCursor */
-
-#ifndef XDeleteProperty
-VFUNC(int,XDeleteProperty,V_XDeleteProperty,_ANSI_ARGS_((Display *, Window, Atom)))
-#endif /* #ifndef XDeleteProperty */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDestroyRegion
-VFUNC(int,XDestroyRegion,V_XDestroyRegion,_ANSI_ARGS_((Region)))
-#endif /* #ifndef XDestroyRegion */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XDestroyWindow
-VFUNC(int,XDestroyWindow,V_XDestroyWindow,_ANSI_ARGS_((Display *, Window)))
-#endif /* #ifndef XDestroyWindow */
-
-#ifndef XDrawArc
-VFUNC(int,XDrawArc,V_XDrawArc,_ANSI_ARGS_((Display *, Drawable, GC, int, int, unsigned int, unsigned int, int, int)))
-#endif /* #ifndef XDrawArc */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDrawImageString
-VFUNC(int,XDrawImageString,V_XDrawImageString,_ANSI_ARGS_((Display *, Drawable, GC, int, int, const char *, int)))
-#endif /* #ifndef XDrawImageString */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XDrawLine
-VFUNC(int,XDrawLine,V_XDrawLine,_ANSI_ARGS_((Display *, Drawable, GC, int, int, int, int)))
-#endif /* #ifndef XDrawLine */
-
-#ifndef XDrawLines
-VFUNC(int,XDrawLines,V_XDrawLines,_ANSI_ARGS_((Display *, Drawable, GC, XPoint *, int, int)))
-#endif /* #ifndef XDrawLines */
-
-#ifndef XDrawPoints
-VFUNC(int,XDrawPoints,V_XDrawPoints,_ANSI_ARGS_(( Display*, Drawable, GC, XPoint*, int, int)))
-#endif /* #ifndef XDrawPoints */
-
-#ifndef XDrawRectangle
-VFUNC(int,XDrawRectangle,V_XDrawRectangle,_ANSI_ARGS_((Display *, Drawable, GC, int, int, unsigned int, unsigned int)))
-#endif /* #ifndef XDrawRectangle */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XDrawString
-VFUNC(int,XDrawString,V_XDrawString,_ANSI_ARGS_((Display *, Drawable, GC, int, int, const char *, int)))
-#endif /* #ifndef XDrawString */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XEventsQueued
-VFUNC(int,XEventsQueued,V_XEventsQueued,_ANSI_ARGS_((Display *, int)))
-#endif /* #ifndef XEventsQueued */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XFillArc
-VFUNC(int,XFillArc,V_XFillArc,_ANSI_ARGS_((Display *, Drawable, GC, int, int, unsigned int, unsigned int, int, int)))
-#endif /* #ifndef XFillArc */
-
-#ifndef XFillPolygon
-VFUNC(int,XFillPolygon,V_XFillPolygon,_ANSI_ARGS_((Display *, Drawable, GC, XPoint *, int, int, int)))
-#endif /* #ifndef XFillPolygon */
-
-#ifndef XFillRectangle
-VFUNC(int,XFillRectangle,V_XFillRectangle,_ANSI_ARGS_((Display *, Drawable, GC, int, int, unsigned int, unsigned int)))
-#endif /* #ifndef XFillRectangle */
-
-#ifndef XFillRectangles
-VFUNC(int,XFillRectangles,V_XFillRectangles,_ANSI_ARGS_((Display *, Drawable, GC, XRectangle *, int)))
-#endif /* #ifndef XFillRectangles */
-
-#ifndef XFlush
-VFUNC(int,XFlush,V_XFlush,_ANSI_ARGS_((Display *)))
-#endif /* #ifndef XFlush */
-
-#ifndef XFree
-VFUNC(int,XFree,V_XFree,_ANSI_ARGS_((XFree_arg_t *)))
-#endif /* #ifndef XFree */
-
-#ifndef XFreeColormap
-VFUNC(int,XFreeColormap,V_XFreeColormap,_ANSI_ARGS_((Display *, Colormap)))
-#endif /* #ifndef XFreeColormap */
-
-#ifndef XFreeColors
-VFUNC(int,XFreeColors,V_XFreeColors,_ANSI_ARGS_((Display *, Colormap, long unsigned int *, int, long unsigned int)))
-#endif /* #ifndef XFreeColors */
-
-#ifndef XFreeCursor
-VFUNC(int,XFreeCursor,V_XFreeCursor,_ANSI_ARGS_((Display *, Cursor)))
-#endif /* #ifndef XFreeCursor */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XFreeFont
-VFUNC(int,XFreeFont,V_XFreeFont,_ANSI_ARGS_((Display *, XFontStruct *)))
-#endif /* #ifndef XFreeFont */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XFreeFontNames
-VFUNC(int,XFreeFontNames,V_XFreeFontNames,_ANSI_ARGS_((char **)))
-#endif /* #ifndef XFreeFontNames */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XFreeGC
-VFUNC(int,XFreeGC,V_XFreeGC,_ANSI_ARGS_((Display *, GC)))
-#endif /* #ifndef XFreeGC */
-
-#ifndef XFreeModifiermap
-VFUNC(int,XFreeModifiermap,V_XFreeModifiermap,_ANSI_ARGS_((XModifierKeymap *)))
-#endif /* #ifndef XFreeModifiermap */
-
-#ifndef XGContextFromGC
-VFUNC(GContext,XGContextFromGC,V_XGContextFromGC,_ANSI_ARGS_((GC)))
-#endif /* #ifndef XGContextFromGC */
-
-#ifndef XGetAtomName
-VFUNC(char *,XGetAtomName,V_XGetAtomName,_ANSI_ARGS_((Display *, Atom)))
-#endif /* #ifndef XGetAtomName */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XGetFontProperty
-VFUNC(int,XGetFontProperty,V_XGetFontProperty,_ANSI_ARGS_((XFontStruct *, Atom, long unsigned int *)))
-#endif /* #ifndef XGetFontProperty */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XGetGeometry
-VFUNC(int,XGetGeometry,V_XGetGeometry,_ANSI_ARGS_((Display *, Drawable, Window *, int *, int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *)))
-#endif /* #ifndef XGetGeometry */
-
-#ifndef XGetImage
-VFUNC(XImage *,XGetImage,V_XGetImage,_ANSI_ARGS_((Display *, Drawable, int, int, unsigned int, unsigned int, long unsigned int, int)))
-#endif /* #ifndef XGetImage */
-
-#ifndef XGetInputFocus
-VFUNC(int,XGetInputFocus,V_XGetInputFocus,_ANSI_ARGS_((Display *, Window *, int *)))
-#endif /* #ifndef XGetInputFocus */
-
-#ifndef XGetModifierMapping
-VFUNC(XModifierKeymap *,XGetModifierMapping,V_XGetModifierMapping,_ANSI_ARGS_((Display *)))
-#endif /* #ifndef XGetModifierMapping */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XGetSelectionOwner
-VFUNC(Window,XGetSelectionOwner,V_XGetSelectionOwner,_ANSI_ARGS_((Display *, Atom)))
-#endif /* #ifndef XGetSelectionOwner */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XGetVisualInfo
-VFUNC(XVisualInfo *,XGetVisualInfo,V_XGetVisualInfo,_ANSI_ARGS_((Display *, long int, XVisualInfo *, int *)))
-#endif /* #ifndef XGetVisualInfo */
-
-#ifndef XGetWMColormapWindows
-VFUNC(int,XGetWMColormapWindows,V_XGetWMColormapWindows,_ANSI_ARGS_((Display *, Window, Window **, int *)))
-#endif /* #ifndef XGetWMColormapWindows */
-
-#ifndef XGetWindowAttributes
-VFUNC(int,XGetWindowAttributes,V_XGetWindowAttributes,_ANSI_ARGS_((Display *, Window, XWindowAttributes *)))
-#endif /* #ifndef XGetWindowAttributes */
-
-#ifndef XGetWindowProperty
-VFUNC(int,XGetWindowProperty,V_XGetWindowProperty,_ANSI_ARGS_((Display *, Window, Atom, long int, long int, int, Atom, Atom *, int *, long unsigned int *, long unsigned int *, unsigned char **)))
-#endif /* #ifndef XGetWindowProperty */
-
-#ifndef XGrabKeyboard
-VFUNC(int,XGrabKeyboard,V_XGrabKeyboard,_ANSI_ARGS_((Display *, Window, int, int, int, Time)))
-#endif /* #ifndef XGrabKeyboard */
-
-#ifndef XGrabPointer
-VFUNC(int,XGrabPointer,V_XGrabPointer,_ANSI_ARGS_((Display *, Window, int, unsigned int, int, int, Window, Cursor, Time)))
-#endif /* #ifndef XGrabPointer */
-
-#ifndef XGrabServer
-VFUNC(int,XGrabServer,V_XGrabServer,_ANSI_ARGS_((Display *)))
-#endif /* #ifndef XGrabServer */
-
-#ifndef XIconifyWindow
-VFUNC(int,XIconifyWindow,V_XIconifyWindow,_ANSI_ARGS_((Display *, Window, int)))
-#endif /* #ifndef XIconifyWindow */
-
-#ifndef XInternAtom
-VFUNC(Atom,XInternAtom,V_XInternAtom,_ANSI_ARGS_((Display *, const char *, int)))
-#endif /* #ifndef XInternAtom */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XIntersectRegion
-VFUNC(int,XIntersectRegion,V_XIntersectRegion,_ANSI_ARGS_((Region, Region, Region)))
-#endif /* #ifndef XIntersectRegion */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XKeycodeToKeysym
-VFUNC(KeySym,XKeycodeToKeysym,V_XKeycodeToKeysym,_ANSI_ARGS_((Display *, unsigned int, int)))
-#endif /* #ifndef XKeycodeToKeysym */
-
-#ifndef XKeysymToString
-VFUNC(char *,XKeysymToString,V_XKeysymToString,_ANSI_ARGS_((KeySym)))
-#endif /* #ifndef XKeysymToString */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XListFonts
-VFUNC(char **,XListFonts,V_XListFonts,_ANSI_ARGS_(( Display*, const char *, int, int *)))
-#endif /* #ifndef XListFonts */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XListHosts
-VFUNC(XHostAddress *,XListHosts,V_XListHosts,_ANSI_ARGS_((Display *, int *, int *)))
-#endif /* #ifndef XListHosts */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XListProperties
-VFUNC(Atom *,XListProperties,V_XListProperties,_ANSI_ARGS_((Display *, Window, int *)))
-#endif /* #ifndef XListProperties */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XLoadFont
-VFUNC(Font,XLoadFont,V_XLoadFont,_ANSI_ARGS_((Display *, const char *)))
-#endif /* #ifndef XLoadFont */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XLoadQueryFont
-VFUNC(XFontStruct *,XLoadQueryFont,V_XLoadQueryFont,_ANSI_ARGS_((Display *, const char *)))
-#endif /* #ifndef XLoadQueryFont */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XLookupColor
-VFUNC(int,XLookupColor,V_XLookupColor,_ANSI_ARGS_((Display *, Colormap, const char *, XColor *, XColor *)))
-#endif /* #ifndef XLookupColor */
-
-#ifndef XLookupString
-VFUNC(int,XLookupString,V_XLookupString,_ANSI_ARGS_((XKeyEvent *, char *, int, KeySym *, XComposeStatus *)))
-#endif /* #ifndef XLookupString */
-
-#ifndef XLowerWindow
-VFUNC(int,XLowerWindow,V_XLowerWindow,_ANSI_ARGS_((Display *, Window)))
-#endif /* #ifndef XLowerWindow */
-
-#ifndef XMapWindow
-VFUNC(int,XMapWindow,V_XMapWindow,_ANSI_ARGS_((Display *, Window)))
-#endif /* #ifndef XMapWindow */
-
-#ifndef XMoveResizeWindow
-VFUNC(int,XMoveResizeWindow,V_XMoveResizeWindow,_ANSI_ARGS_((Display *, Window, int, int, unsigned int, unsigned int)))
-#endif /* #ifndef XMoveResizeWindow */
-
-#ifndef XMoveWindow
-VFUNC(int,XMoveWindow,V_XMoveWindow,_ANSI_ARGS_((Display *, Window, int, int)))
-#endif /* #ifndef XMoveWindow */
-
-#ifndef XNextEvent
-VFUNC(int,XNextEvent,V_XNextEvent,_ANSI_ARGS_((Display *, XEvent *)))
-#endif /* #ifndef XNextEvent */
-
-#ifndef XNoOp
-VFUNC(int,XNoOp,V_XNoOp,_ANSI_ARGS_((Display *)))
-#endif /* #ifndef XNoOp */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XOpenDisplay
-VFUNC(Display *,XOpenDisplay,V_XOpenDisplay,_ANSI_ARGS_((const char *)))
-#endif /* #ifndef XOpenDisplay */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XParseColor
-VFUNC(int,XParseColor,V_XParseColor,_ANSI_ARGS_((Display *, Colormap, const char *, XColor *)))
-#endif /* #ifndef XParseColor */
-
-#ifndef XPutBackEvent
-VFUNC(int,XPutBackEvent,V_XPutBackEvent,_ANSI_ARGS_((Display *, XEvent *)))
-#endif /* #ifndef XPutBackEvent */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XPutImage
-VFUNC(int,XPutImage,V_XPutImage,_ANSI_ARGS_((Display *, Drawable, GC, XImage *, int, int, int, int, unsigned int, unsigned int)))
-#endif /* #ifndef XPutImage */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XQueryColors
-VFUNC(int,XQueryColors,V_XQueryColors,_ANSI_ARGS_((Display *, Colormap, XColor *, int)))
-#endif /* #ifndef XQueryColors */
-
-#ifndef XQueryPointer
-VFUNC(int,XQueryPointer,V_XQueryPointer,_ANSI_ARGS_((Display *, Window, Window *, Window *, int *, int *, int *, int *, unsigned int *)))
-#endif /* #ifndef XQueryPointer */
-
-#ifndef XQueryTree
-VFUNC(int,XQueryTree,V_XQueryTree,_ANSI_ARGS_((Display *, Window, Window *, Window *, Window **, unsigned int *)))
-#endif /* #ifndef XQueryTree */
-
-#ifndef XRaiseWindow
-VFUNC(int,XRaiseWindow,V_XRaiseWindow,_ANSI_ARGS_((Display *, Window)))
-#endif /* #ifndef XRaiseWindow */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XReadBitmapFile
-VFUNC(int,XReadBitmapFile,V_XReadBitmapFile,_ANSI_ARGS_((Display *, Drawable, const char *, unsigned int *, unsigned int *, Pixmap *, int *, int *)))
-#endif /* #ifndef XReadBitmapFile */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XRectInRegion
-VFUNC(int,XRectInRegion,V_XRectInRegion,_ANSI_ARGS_((Region,int,int,unsigned,unsigned)))
-#endif /* #ifndef XRectInRegion */
-
-#ifndef XRefreshKeyboardMapping
-VFUNC(int,XRefreshKeyboardMapping,V_XRefreshKeyboardMapping,_ANSI_ARGS_((XMappingEvent *)))
-#endif /* #ifndef XRefreshKeyboardMapping */
-
-#ifndef XResizeWindow
-VFUNC(int,XResizeWindow,V_XResizeWindow,_ANSI_ARGS_((Display *, Window, unsigned int, unsigned int)))
-#endif /* #ifndef XResizeWindow */
-
-#ifndef XRootWindow
-VFUNC(Window,XRootWindow,V_XRootWindow,_ANSI_ARGS_((Display *, int)))
-#endif /* #ifndef XRootWindow */
-
-#ifndef XSelectInput
-VFUNC(int,XSelectInput,V_XSelectInput,_ANSI_ARGS_((Display *, Window, long int)))
-#endif /* #ifndef XSelectInput */
-
-#ifndef XSendEvent
-VFUNC(int,XSendEvent,V_XSendEvent,_ANSI_ARGS_((Display *, Window, int, long int, XEvent *)))
-#endif /* #ifndef XSendEvent */
-
-#ifndef XSetBackground
-VFUNC(int,XSetBackground,V_XSetBackground,_ANSI_ARGS_((Display *, GC, unsigned long)))
-#endif /* #ifndef XSetBackground */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetClassHint
-VFUNC(int,XSetClassHint,V_XSetClassHint,_ANSI_ARGS_((Display *, Window, XClassHint *)))
-#endif /* #ifndef XSetClassHint */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XSetClipMask
-VFUNC(int,XSetClipMask,V_XSetClipMask,_ANSI_ARGS_((Display *, GC, Pixmap)))
-#endif /* #ifndef XSetClipMask */
-
-#ifndef XSetClipOrigin
-VFUNC(int,XSetClipOrigin,V_XSetClipOrigin,_ANSI_ARGS_((Display *, GC, int, int)))
-#endif /* #ifndef XSetClipOrigin */
-
-#ifndef XSetCommand
-VFUNC(int,XSetCommand,V_XSetCommand,_ANSI_ARGS_((Display *, Window, char **, int)))
-#endif /* #ifndef XSetCommand */
-
-#ifndef XSetDashes
-VFUNC(int,XSetDashes,V_XSetDashes,_ANSI_ARGS_((Display *, GC, int, const char *, int)))
-#endif /* #ifndef XSetDashes */
-
-#ifndef XSetErrorHandler
-VFUNC(XErrorHandler,XSetErrorHandler,V_XSetErrorHandler,_ANSI_ARGS_((XErrorHandler)))
-#endif /* #ifndef XSetErrorHandler */
-
-#ifndef XSetForeground
-VFUNC(int,XSetForeground,V_XSetForeground,_ANSI_ARGS_((Display *, GC, long unsigned int)))
-#endif /* #ifndef XSetForeground */
-
-#ifndef XSetIconName
-VFUNC(int,XSetIconName,V_XSetIconName,_ANSI_ARGS_((Display *, Window, const char *)))
-#endif /* #ifndef XSetIconName */
-
-#ifndef XSetInputFocus
-VFUNC(int,XSetInputFocus,V_XSetInputFocus,_ANSI_ARGS_((Display *, Window, int, Time)))
-#endif /* #ifndef XSetInputFocus */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetRegion
-VFUNC(int,XSetRegion,V_XSetRegion,_ANSI_ARGS_((Display *, GC, Region)))
-#endif /* #ifndef XSetRegion */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XSetSelectionOwner
-VFUNC(int,XSetSelectionOwner,V_XSetSelectionOwner,_ANSI_ARGS_((Display *, Atom, Window, Time)))
-#endif /* #ifndef XSetSelectionOwner */
-
-#ifndef XSetTSOrigin
-VFUNC(int,XSetTSOrigin,V_XSetTSOrigin,_ANSI_ARGS_((Display *, GC, int, int)))
-#endif /* #ifndef XSetTSOrigin */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetTransientForHint
-VFUNC(int,XSetTransientForHint,V_XSetTransientForHint,_ANSI_ARGS_((Display *, Window, Window)))
-#endif /* #ifndef XSetTransientForHint */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XSetWMClientMachine
-VFUNC(void,XSetWMClientMachine,V_XSetWMClientMachine,_ANSI_ARGS_((Display *, Window, XTextProperty *)))
-#endif /* #ifndef XSetWMClientMachine */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetWMColormapWindows
-VFUNC(int,XSetWMColormapWindows,V_XSetWMColormapWindows,_ANSI_ARGS_((Display *, Window, Window *, int)))
-#endif /* #ifndef XSetWMColormapWindows */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetWMHints
-VFUNC(int,XSetWMHints,V_XSetWMHints,_ANSI_ARGS_((Display *, Window, XWMHints *)))
-#endif /* #ifndef XSetWMHints */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetWMName
-VFUNC(void,XSetWMName,V_XSetWMName,_ANSI_ARGS_((Display *, Window, XTextProperty *)))
-#endif /* #ifndef XSetWMName */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XSetWMNormalHints
-VFUNC(void,XSetWMNormalHints,V_XSetWMNormalHints,_ANSI_ARGS_((Display *, Window, XSizeHints *)))
-#endif /* #ifndef XSetWMNormalHints */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XSetWindowBackground
-VFUNC(int,XSetWindowBackground,V_XSetWindowBackground,_ANSI_ARGS_((Display *, Window, long unsigned int)))
-#endif /* #ifndef XSetWindowBackground */
-
-#ifndef XSetWindowBackgroundPixmap
-VFUNC(int,XSetWindowBackgroundPixmap,V_XSetWindowBackgroundPixmap,_ANSI_ARGS_((Display *, Window, Pixmap)))
-#endif /* #ifndef XSetWindowBackgroundPixmap */
-
-#ifndef XSetWindowBorder
-VFUNC(int,XSetWindowBorder,V_XSetWindowBorder,_ANSI_ARGS_((Display *, Window, long unsigned int)))
-#endif /* #ifndef XSetWindowBorder */
-
-#ifndef XSetWindowBorderPixmap
-VFUNC(int,XSetWindowBorderPixmap,V_XSetWindowBorderPixmap,_ANSI_ARGS_((Display *, Window, Pixmap)))
-#endif /* #ifndef XSetWindowBorderPixmap */
-
-#ifndef XSetWindowBorderWidth
-VFUNC(int,XSetWindowBorderWidth,V_XSetWindowBorderWidth,_ANSI_ARGS_((Display *, Window, unsigned int)))
-#endif /* #ifndef XSetWindowBorderWidth */
-
-#ifndef XSetWindowColormap
-VFUNC(int,XSetWindowColormap,V_XSetWindowColormap,_ANSI_ARGS_((Display *, Window, Colormap)))
-#endif /* #ifndef XSetWindowColormap */
-
-#ifndef XStringListToTextProperty
-VFUNC(int,XStringListToTextProperty,V_XStringListToTextProperty,_ANSI_ARGS_((char **, int, XTextProperty *)))
-#endif /* #ifndef XStringListToTextProperty */
-
-#ifndef XStringToKeysym
-VFUNC(KeySym,XStringToKeysym,V_XStringToKeysym,_ANSI_ARGS_((const char *)))
-#endif /* #ifndef XStringToKeysym */
-
-#ifndef XSubtractRegion
-VFUNC(int,XSubtractRegion,V_XSubtractRegion,_ANSI_ARGS_((Region, Region, Region)))
-#endif /* #ifndef XSubtractRegion */
-
-#ifndef XSync
-VFUNC(int,XSync,V_XSync,_ANSI_ARGS_((Display *, int)))
-#endif /* #ifndef XSync */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XTextExtents
-VFUNC(int,XTextExtents,V_XTextExtents,_ANSI_ARGS_((XFontStruct *, const char *, int, int *, int *, int *, XCharStruct *)))
-#endif /* #ifndef XTextExtents */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XTextWidth
-VFUNC(int,XTextWidth,V_XTextWidth,_ANSI_ARGS_((XFontStruct *, const char *, int)))
-#endif /* #ifndef XTextWidth */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XTranslateCoordinates
-VFUNC(int,XTranslateCoordinates,V_XTranslateCoordinates,_ANSI_ARGS_((Display *, Window, Window, int, int, int *, int *, Window *)))
-#endif /* #ifndef XTranslateCoordinates */
-
-#ifndef XUngrabKeyboard
-VFUNC(int,XUngrabKeyboard,V_XUngrabKeyboard,_ANSI_ARGS_((Display *, Time)))
-#endif /* #ifndef XUngrabKeyboard */
-
-#ifndef XUngrabPointer
-VFUNC(int,XUngrabPointer,V_XUngrabPointer,_ANSI_ARGS_((Display *, Time)))
-#endif /* #ifndef XUngrabPointer */
-
-#ifndef XUngrabServer
-VFUNC(int,XUngrabServer,V_XUngrabServer,_ANSI_ARGS_((Display *)))
-#endif /* #ifndef XUngrabServer */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XUnionRectWithRegion
-VFUNC(int,XUnionRectWithRegion,V_XUnionRectWithRegion,_ANSI_ARGS_((XRectangle *, Region, Region)))
-#endif /* #ifndef XUnionRectWithRegion */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XUnmapWindow
-VFUNC(int,XUnmapWindow,V_XUnmapWindow,_ANSI_ARGS_((Display *, Window)))
-#endif /* #ifndef XUnmapWindow */
-
-#ifndef XVisualIDFromVisual
-VFUNC(VisualID,XVisualIDFromVisual,V_XVisualIDFromVisual,_ANSI_ARGS_((Visual *)))
-#endif /* #ifndef XVisualIDFromVisual */
-
-#ifndef DO_X_EXCLUDE
-#ifndef XWarpPointer
-VFUNC(int,XWarpPointer,V_XWarpPointer,_ANSI_ARGS_(( Display *, Window, Window, int, int, unsigned int, unsigned int, int, int )))
-#endif /* #ifndef XWarpPointer */
-#endif /* !DO_X_EXCLUDE */
-
-#ifndef XWindowEvent
-VFUNC(int,XWindowEvent,V_XWindowEvent,_ANSI_ARGS_((Display *, Window, long int, XEvent *)))
-#endif /* #ifndef XWindowEvent */
-
-#ifndef XWithdrawWindow
-VFUNC(int,XWithdrawWindow,V_XWithdrawWindow,_ANSI_ARGS_((Display *, Window, int)))
-#endif /* #ifndef XWithdrawWindow */
-
-#ifndef _XInitImageFuncPtrs
-VFUNC(int,_XInitImageFuncPtrs,V__XInitImageFuncPtrs,_ANSI_ARGS_((XImage *image)))
-#endif /* #ifndef _XInitImageFuncPtrs */
-
-#endif /* _XLIB */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/Xlib_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/Xlib_f.h
deleted file mode 100644
index 6c0c3773961..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/Xlib_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef XLIB_VT
-#define XLIB_VT
-typedef struct XlibVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "Xlib.t"
-#undef VFUNC
-#undef VVAR
-} XlibVtab;
-extern XlibVtab *XlibVptr;
-extern XlibVtab *XlibVGet(void);
-#endif /* XLIB_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/compat/limits.h b/Master/tlpkg/tlperl/lib/Tk/pTk/compat/limits.h
deleted file mode 100644
index 66eb54256cf..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/compat/limits.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * limits.h --
- *
- * This is a dummy header file to #include in Tcl when there
- * is no limits.h in /usr/include. There are only a few
- * definitions here; also see tclPort.h, which already
- * #defines some of the things here if they're not arleady
- * defined.
- *
- * Copyright (c) 1991 The Regents of the University of California.
- * Copyright (c) 1994 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * SCCS: @(#) limits.h 1.7 96/02/15 14:43:55
- */
-
-#define LONG_MIN 0x80000000
-#define LONG_MAX 0x7fffffff
-#define INT_MIN 0x80000000
-#define INT_MAX 0x7fffffff
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/compat/stdlib.h b/Master/tlpkg/tlperl/lib/Tk/pTk/compat/stdlib.h
deleted file mode 100644
index 548f880a19a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/compat/stdlib.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * stdlib.h --
- *
- * Declares facilities exported by the "stdlib" portion of
- * the C library. This file isn't complete in the ANSI-C
- * sense; it only declares things that are needed by Tcl.
- * This file is needed even on many systems with their own
- * stdlib.h (e.g. SunOS) because not all stdlib.h files
- * declare all the procedures needed here (such as strtod).
- *
- * Copyright (c) 1991 The Regents of the University of California.
- * Copyright (c) 1994 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * @(#) stdlib.h 1.9 94/12/17 16:26:20
- */
-
-#ifndef _STDLIB
-#define _STDLIB
-
-#include <Lang.h>
-
-extern void abort _ANSI_ARGS_((void));
-extern double atof _ANSI_ARGS_((CONST char *string));
-extern int atoi _ANSI_ARGS_((CONST char *string));
-extern long atol _ANSI_ARGS_((CONST char *string));
-extern char * calloc _ANSI_ARGS_((unsigned int numElements,
- unsigned int size));
-extern void exit _ANSI_ARGS_((int status));
-extern int free _ANSI_ARGS_((char *blockPtr));
-extern char * getenv _ANSI_ARGS_((CONST char *name));
-extern char * malloc _ANSI_ARGS_((unsigned int numBytes));
-extern void qsort _ANSI_ARGS_((VOID *base, int n, int size,
- int (*compar)(CONST VOID *element1, CONST VOID
- *element2)));
-extern char * realloc _ANSI_ARGS_((char *ptr, unsigned int numBytes));
-extern double strtod _ANSI_ARGS_((CONST char *string, char **endPtr));
-extern long strtol _ANSI_ARGS_((CONST char *string, char **endPtr,
- int base));
-extern unsigned long strtoul _ANSI_ARGS_((CONST char *string,
- char **endPtr, int base));
-
-#endif /* _STDLIB */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/compat/unistd.h b/Master/tlpkg/tlperl/lib/Tk/pTk/compat/unistd.h
deleted file mode 100644
index 47717e0278c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/compat/unistd.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * unistd.h --
- *
- * Macros, CONSTants and prototypes for Posix conformance.
- *
- * Copyright 1989 Regents of the University of California
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The University of California
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- *
- * $Header: /home/auspex6/CVSROOT/tcl/compat/unistd.h,v 1.1.1.1 1993/11/29 10:44:47 a904209 Exp $
- */
-
-#ifndef _UNISTD
-#define _UNISTD
-
-#include <sys/types.h>
-#ifndef _TCL
-# include "../Lang.h"
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-#ifndef LSEEK_TYPE
-#define LSEEK_TYPE long
-#endif
-
-/*
- * Strict POSIX stuff goes here. Extensions go down below, in the
- * ifndef _POSIX_SOURCE section.
- */
-
-extern void _exit _ANSI_ARGS_((int status));
-extern int access _ANSI_ARGS_((CONST char *path, int mode));
-extern int chdir _ANSI_ARGS_((CONST char *path));
-extern int chown _ANSI_ARGS_((CONST char *path, uid_t owner, gid_t group));
-extern int close _ANSI_ARGS_((int fd));
-extern int dup _ANSI_ARGS_((int oldfd));
-extern int dup2 _ANSI_ARGS_((int oldfd, int newfd));
-extern int execl _ANSI_ARGS_((CONST char *path, ...));
-extern int execle _ANSI_ARGS_((CONST char *path, ...));
-extern int execlp _ANSI_ARGS_((CONST char *file, ...));
-extern int execv _ANSI_ARGS_((CONST char *path, char **argv));
-extern int execve _ANSI_ARGS_((CONST char *path, char **argv, char **envp));
-extern int execvp _ANSI_ARGS_((CONST char *file, char **argv));
-extern pid_t fork _ANSI_ARGS_((void));
-extern char *getcwd _ANSI_ARGS_((char *buf, size_t size));
-extern gid_t getegid _ANSI_ARGS_((void));
-extern uid_t geteuid _ANSI_ARGS_((void));
-extern gid_t getgid _ANSI_ARGS_((void));
-extern int getgroups _ANSI_ARGS_((int bufSize, int *buffer));
-extern pid_t getpid _ANSI_ARGS_((void));
-extern uid_t getuid _ANSI_ARGS_((void));
-extern int isatty _ANSI_ARGS_((int fd));
-extern long lseek _ANSI_ARGS_((int fd, LSEEK_TYPE offset, int whence));
-extern int pipe _ANSI_ARGS_((int *fildes));
-extern int read _ANSI_ARGS_((int fd, char *buf, size_t size));
-extern int setgid _ANSI_ARGS_((gid_t group));
-extern int setuid _ANSI_ARGS_((uid_t user));
-extern unsigned sleep _ANSI_ARGS_ ((unsigned seconds));
-extern char *ttyname _ANSI_ARGS_((int fd));
-extern int unlink _ANSI_ARGS_((CONST char *path));
-extern int write _ANSI_ARGS_((int fd, CONST char *buf, size_t size));
-
-#ifndef _POSIX_SOURCE
-extern char *crypt _ANSI_ARGS_((CONST char *, CONST char *));
-extern int fchown _ANSI_ARGS_((int fd, uid_t owner, gid_t group));
-extern int flock _ANSI_ARGS_((int fd, int operation));
-extern int ftruncate _ANSI_ARGS_((int fd, unsigned long length));
-extern int readlink _ANSI_ARGS_((CONST char *path, char *buf, int bufsize));
-extern int setegid _ANSI_ARGS_((gid_t group));
-extern int seteuid _ANSI_ARGS_((uid_t user));
-extern int setreuid _ANSI_ARGS_((int ruid, int euid));
-extern int symlink _ANSI_ARGS_((CONST char *, CONST char *));
-extern int ttyslot _ANSI_ARGS_((void));
-extern int truncate _ANSI_ARGS_((CONST char *path, unsigned long length));
-extern int vfork _ANSI_ARGS_((void));
-#endif /* _POSIX_SOURCE */
-
-#endif /* _UNISTD */
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/default.h b/Master/tlpkg/tlperl/lib/Tk/pTk/default.h
deleted file mode 100644
index 5f7f24d546e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/default.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * default.h --
- *
- * This file defines the defaults for all options for all of
- * the Tk widgets.
- *
- * Copyright (c) 1991-1994 The Regents of the University of California.
- * Copyright (c) 1994 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: default.h,v 1.4 2002/08/31 06:12:19 das Exp $
- */
-
-#ifndef _DEFAULT
-#define _DEFAULT
-
-#if defined(__WIN32__) || defined(_WIN32) || \
- (defined(__CYGWIN__) && !defined(WINARCH_X)) || defined(__MINGW32__)
-# include "tkWinDefault.h"
-#else
-# if defined(MAC_OSX_TK)
-# include "tkMacOSXDefault.h"
-# elif defined(MAC_TCL)
-# include "tkMacDefault.h"
-# else
-# ifdef __PM__
-# include "tkOS2Default.h"
-# else
-# include "tkUnixDefault.h"
-# endif
-# endif
-#endif
-
-#endif /* _DEFAULT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/img.h b/Master/tlpkg/tlperl/lib/Tk/pTk/img.h
deleted file mode 100644
index a1b38a7ebd8..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/img.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* img.h */
-
-#ifndef _IMG
-#define _IMG
-
-#include "Lang.h"
-#include "tk.h"
-
-#define IMG_MAJOR_VERSION 1
-#define IMG_MINOR_VERSION 2
-#define IMG_RELEASE_LEVEL 1
-#define IMG_RELEASE_SERIAL 2
-
-#define IMG_VERSION "1.2"
-#define IMG_PATCH_LEVEL "1.2.4"
-
-#ifndef RESOURCE_INCLUDED
-
-#if defined(__WIN32__)
-# define WIN32_LEAN_AND_MEAN
-# include <windows.h>
-# undef WIN32_LEAN_AND_MEAN
-# if defined(_MSC_VER)
-# define EXPORT(a,b) __declspec(dllexport) a b
-# else
-# if defined(__BORLANDC__)
-# define EXPORT(a,b) a _export b
-# else
-# define EXPORT(a,b) a b
-# endif
-# endif
-#else
-# define EXPORT(a,b) a b
-#endif
-
-EXTERN EXPORT(int,Img_Init) _ANSI_ARGS_((Tcl_Interp *interp));
-EXTERN EXPORT(int,Img_SafeInit) _ANSI_ARGS_((Tcl_Interp *interp));
-
-#endif /* RESOURCE_INCLUDED */
-
-#endif /* _IMG */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/imgInt.h b/Master/tlpkg/tlperl/lib/Tk/pTk/imgInt.h
deleted file mode 100644
index 8cca12aa095..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/imgInt.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* imgInt.h */
-
-#ifndef _IMGINT
-#define _IMGINT
-
-#include "tkInt.h"
-
-#ifndef RESOURCE_INCLUDED
-
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-#include "img.h"
-
-typedef struct {
- Tcl_DString *buffer;/* pointer to dynamical string */
- char *data; /* mmencoded source string */
- int c; /* bits left over from previous char */
- int state; /* decoder state (0-4 or IMG_DONE) */
- int length; /* length of phisical line already written */
-} MFile;
-
-#define IMG_SPECIAL (1<<8)
-#define IMG_PAD (IMG_SPECIAL+1)
-#define IMG_SPACE (IMG_SPECIAL+2)
-#define IMG_BAD (IMG_SPECIAL+3)
-#define IMG_DONE (IMG_SPECIAL+4)
-#define IMG_CHAN (IMG_SPECIAL+5)
-#define IMG_STRING (IMG_SPECIAL+6)
-
-#define IMG_TCL (1<<9)
-#define IMG_OBJS (1<<10)
-#define IMG_PERL (1<<11)
-#define IMG_UTF (1<<12)
-
-EXTERN int ImgPhotoPutBlock _ANSI_ARGS_((Tk_PhotoHandle handle,
- Tk_PhotoImageBlock *blockPtr, int x, int y, int width, int height));
-
-EXTERN int ImgLoadLib _ANSI_ARGS_((Tcl_Interp *interp, CONST char *libName,
- VOID **handlePtr, char **symbols, int num));
-EXTERN void ImgLoadFailed _ANSI_ARGS_((VOID **handlePtr));
-
-EXTERN int ImgObjInit _ANSI_ARGS_((Tcl_Interp *interp));
-EXTERN char *ImgGetStringFromObj _ANSI_ARGS_((Tcl_Obj *objPtr,
- int *lengthPtr));
-EXTERN char *ImgGetByteArrayFromObj _ANSI_ARGS_((Tcl_Obj *objPtr,
- int *lengthPtr));
-EXTERN int ImgListObjGetElements _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Obj *objPtr, int *argc, Tcl_Obj ***objv));
-
-EXTERN int ImgGetc _ANSI_ARGS_((MFile *handle));
-EXTERN int ImgRead _ANSI_ARGS_((MFile *handle, char *dst, int count));
-EXTERN int ImgPutc _ANSI_ARGS_((int c, MFile *handle));
-EXTERN int ImgWrite _ANSI_ARGS_((MFile *handle, CONST char *src, int count));
-EXTERN void ImgWriteInit _ANSI_ARGS_((Tcl_DString *buffer, MFile *handle));
-EXTERN int ImgReadInit _ANSI_ARGS_((Tcl_Obj *data, int c, MFile *handle));
-EXTERN Tcl_Channel ImgOpenFileChannel _ANSI_ARGS_((Tcl_Interp *interp,
- CONST char *fileName, int permissions));
-EXTERN void ImgFixChanMatchProc _ANSI_ARGS_((Tcl_Interp **interp, Tcl_Channel *chan,
- Tcl_Obj **file, Tcl_Obj **format, int **width, int **height));
-EXTERN void ImgFixObjMatchProc _ANSI_ARGS_((Tcl_Interp **interp, Tcl_Obj **data,
- Tcl_Obj **format, int **width, int **height));
-EXTERN void ImgFixStringWriteProc _ANSI_ARGS_((Tcl_DString *data, Tcl_Interp **interp,
- Tcl_DString **dataPtr, Tcl_Obj **format, Tk_PhotoImageBlock **blockPtr));
-
-EXTERN int ImgInitTIFFzip _ANSI_ARGS_((VOID *, int));
-EXTERN int ImgInitTIFFjpeg _ANSI_ARGS_((VOID *, int));
-EXTERN int ImgInitTIFFpixar _ANSI_ARGS_((VOID *, int));
-EXTERN int ImgLoadJpegLibrary _ANSI_ARGS_((void));
-
-#endif /* RESOURCE_INCLUDED */
-
-#endif /* _IMGINT */
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/imgInt.m b/Master/tlpkg/tlperl/lib/Tk/pTk/imgInt.m
deleted file mode 100644
index 0ac6a144b4b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/imgInt.m
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef _IMGINT_VM
-#define _IMGINT_VM
-#include "imgInt_f.h"
-#ifndef NO_VTABLES
-#ifndef ImgFixChanMatchProc
-# define ImgFixChanMatchProc (*ImgintVptr->V_ImgFixChanMatchProc)
-#endif
-
-#ifndef ImgFixObjMatchProc
-# define ImgFixObjMatchProc (*ImgintVptr->V_ImgFixObjMatchProc)
-#endif
-
-#ifndef ImgFixStringWriteProc
-# define ImgFixStringWriteProc (*ImgintVptr->V_ImgFixStringWriteProc)
-#endif
-
-#ifndef ImgGetByteArrayFromObj
-# define ImgGetByteArrayFromObj (*ImgintVptr->V_ImgGetByteArrayFromObj)
-#endif
-
-#ifndef ImgGetc
-# define ImgGetc (*ImgintVptr->V_ImgGetc)
-#endif
-
-#ifndef ImgListObjGetElements
-# define ImgListObjGetElements (*ImgintVptr->V_ImgListObjGetElements)
-#endif
-
-#ifndef ImgObjInit
-# define ImgObjInit (*ImgintVptr->V_ImgObjInit)
-#endif
-
-#ifndef ImgOpenFileChannel
-# define ImgOpenFileChannel (*ImgintVptr->V_ImgOpenFileChannel)
-#endif
-
-#ifndef ImgPhotoPutBlock
-# define ImgPhotoPutBlock (*ImgintVptr->V_ImgPhotoPutBlock)
-#endif
-
-#ifndef ImgPutc
-# define ImgPutc (*ImgintVptr->V_ImgPutc)
-#endif
-
-#ifndef ImgRead
-# define ImgRead (*ImgintVptr->V_ImgRead)
-#endif
-
-#ifndef ImgReadInit
-# define ImgReadInit (*ImgintVptr->V_ImgReadInit)
-#endif
-
-#ifndef ImgWrite
-# define ImgWrite (*ImgintVptr->V_ImgWrite)
-#endif
-
-#ifndef ImgWriteInit
-# define ImgWriteInit (*ImgintVptr->V_ImgWriteInit)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _IMGINT_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/imgInt.t b/Master/tlpkg/tlperl/lib/Tk/pTk/imgInt.t
deleted file mode 100644
index 6f20d9a332b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/imgInt.t
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifdef _IMGINT
-#ifndef ImgFixChanMatchProc
-#ifndef RESOURCE_INCLUDED
-VFUNC(void,ImgFixChanMatchProc,V_ImgFixChanMatchProc,_ANSI_ARGS_((Tcl_Interp **interp, Tcl_Channel *chan,
- Tcl_Obj **file, Tcl_Obj **format, int **width, int **height)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgFixChanMatchProc */
-
-#ifndef ImgFixObjMatchProc
-#ifndef RESOURCE_INCLUDED
-VFUNC(void,ImgFixObjMatchProc,V_ImgFixObjMatchProc,_ANSI_ARGS_((Tcl_Interp **interp, Tcl_Obj **data,
- Tcl_Obj **format, int **width, int **height)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgFixObjMatchProc */
-
-#ifndef ImgFixStringWriteProc
-#ifndef RESOURCE_INCLUDED
-VFUNC(void,ImgFixStringWriteProc,V_ImgFixStringWriteProc,_ANSI_ARGS_((Tcl_DString *data, Tcl_Interp **interp,
- Tcl_DString **dataPtr, Tcl_Obj **format, Tk_PhotoImageBlock **blockPtr)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgFixStringWriteProc */
-
-#ifndef ImgGetByteArrayFromObj
-#ifndef RESOURCE_INCLUDED
-VFUNC(char *,ImgGetByteArrayFromObj,V_ImgGetByteArrayFromObj,_ANSI_ARGS_((Tcl_Obj *objPtr,
- int *lengthPtr)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgGetByteArrayFromObj */
-
-#ifndef ImgGetc
-#ifndef RESOURCE_INCLUDED
-VFUNC(int,ImgGetc,V_ImgGetc,_ANSI_ARGS_((MFile *handle)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgGetc */
-
-#ifndef ImgListObjGetElements
-#ifndef RESOURCE_INCLUDED
-VFUNC(int,ImgListObjGetElements,V_ImgListObjGetElements,_ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Obj *objPtr, int *argc, Tcl_Obj ***objv)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgListObjGetElements */
-
-#ifndef ImgObjInit
-#ifndef RESOURCE_INCLUDED
-VFUNC(int,ImgObjInit,V_ImgObjInit,_ANSI_ARGS_((Tcl_Interp *interp)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgObjInit */
-
-#ifndef ImgOpenFileChannel
-#ifndef RESOURCE_INCLUDED
-VFUNC(Tcl_Channel,ImgOpenFileChannel,V_ImgOpenFileChannel,_ANSI_ARGS_((Tcl_Interp *interp,
- CONST char *fileName, int permissions)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgOpenFileChannel */
-
-#ifndef ImgPhotoPutBlock
-#ifndef RESOURCE_INCLUDED
-VFUNC(int,ImgPhotoPutBlock,V_ImgPhotoPutBlock,_ANSI_ARGS_((Tk_PhotoHandle handle,
- Tk_PhotoImageBlock *blockPtr, int x, int y, int width, int height)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgPhotoPutBlock */
-
-#ifndef ImgPutc
-#ifndef RESOURCE_INCLUDED
-VFUNC(int,ImgPutc,V_ImgPutc,_ANSI_ARGS_((int c, MFile *handle)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgPutc */
-
-#ifndef ImgRead
-#ifndef RESOURCE_INCLUDED
-VFUNC(int,ImgRead,V_ImgRead,_ANSI_ARGS_((MFile *handle, char *dst, int count)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgRead */
-
-#ifndef ImgReadInit
-#ifndef RESOURCE_INCLUDED
-VFUNC(int,ImgReadInit,V_ImgReadInit,_ANSI_ARGS_((Tcl_Obj *data, int c, MFile *handle)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgReadInit */
-
-#ifndef ImgWrite
-#ifndef RESOURCE_INCLUDED
-VFUNC(int,ImgWrite,V_ImgWrite,_ANSI_ARGS_((MFile *handle, CONST char *src, int count)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgWrite */
-
-#ifndef ImgWriteInit
-#ifndef RESOURCE_INCLUDED
-VFUNC(void,ImgWriteInit,V_ImgWriteInit,_ANSI_ARGS_((Tcl_DString *buffer, MFile *handle)))
-#endif /* #ifndef RESOURCE_INCLUDED */
-#endif /* #ifndef ImgWriteInit */
-
-#endif /* _IMGINT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/imgInt_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/imgInt_f.h
deleted file mode 100644
index 4e05f81a81c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/imgInt_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef IMGINT_VT
-#define IMGINT_VT
-typedef struct ImgintVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "imgInt.t"
-#undef VFUNC
-#undef VVAR
-} ImgintVtab;
-extern ImgintVtab *ImgintVptr;
-extern ImgintVtab *ImgintVGet(void);
-#endif /* IMGINT_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/ks_names.h b/Master/tlpkg/tlperl/lib/Tk/pTk/ks_names.h
deleted file mode 100644
index e0622ae7319..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/ks_names.h
+++ /dev/null
@@ -1,925 +0,0 @@
-/*
- * This file is generated from $(INCLUDESRC)/keysymdef.h. Do not edit.
- * RCS: $Id: ks_names.h,v 1.4 2000/04/15 00:33:08 ericm Exp $
- */
-{ "BackSpace", 0xFF08 },
-{ "Tab", 0xFF09 },
-{ "Linefeed", 0xFF0A },
-{ "Clear", 0xFF0B },
-{ "Return", 0xFF0D },
-{ "Pause", 0xFF13 },
-{ "Scroll_Lock", 0xFF14 },
-{ "Sys_Req", 0xFF15 },
-{ "Escape", 0xFF1B },
-{ "Delete", 0xFFFF },
-{ "Multi_key", 0xFF20 },
-{ "Kanji", 0xFF21 },
-{ "Home", 0xFF50 },
-{ "Left", 0xFF51 },
-{ "Up", 0xFF52 },
-{ "Right", 0xFF53 },
-{ "Down", 0xFF54 },
-{ "Prior", 0xFF55 },
-{ "Next", 0xFF56 },
-{ "End", 0xFF57 },
-{ "Begin", 0xFF58 },
-{ "Win_L", 0xFF5B },
-{ "Win_R", 0xFF5C },
-{ "App", 0xFF5D },
-{ "Select", 0xFF60 },
-{ "Print", 0xFF61 },
-{ "Execute", 0xFF62 },
-{ "Insert", 0xFF63 },
-{ "Undo", 0xFF65 },
-{ "Redo", 0xFF66 },
-{ "Menu", 0xFF67 },
-{ "Find", 0xFF68 },
-{ "Cancel", 0xFF69 },
-{ "Help", 0xFF6A },
-{ "Break", 0xFF6B },
-{ "Mode_switch", 0xFF7E },
-{ "script_switch", 0xFF7E },
-{ "Num_Lock", 0xFF7F },
-{ "KP_Space", 0xFF80 },
-{ "KP_Tab", 0xFF89 },
-{ "KP_Enter", 0xFF8D },
-{ "KP_F1", 0xFF91 },
-{ "KP_F2", 0xFF92 },
-{ "KP_F3", 0xFF93 },
-{ "KP_F4", 0xFF94 },
-{ "KP_Equal", 0xFFBD },
-{ "KP_Multiply", 0xFFAA },
-{ "KP_Add", 0xFFAB },
-{ "KP_Separator", 0xFFAC },
-{ "KP_Subtract", 0xFFAD },
-{ "KP_Decimal", 0xFFAE },
-{ "KP_Divide", 0xFFAF },
-{ "KP_0", 0xFFB0 },
-{ "KP_1", 0xFFB1 },
-{ "KP_2", 0xFFB2 },
-{ "KP_3", 0xFFB3 },
-{ "KP_4", 0xFFB4 },
-{ "KP_5", 0xFFB5 },
-{ "KP_6", 0xFFB6 },
-{ "KP_7", 0xFFB7 },
-{ "KP_8", 0xFFB8 },
-{ "KP_9", 0xFFB9 },
-{ "F1", 0xFFBE },
-{ "F2", 0xFFBF },
-{ "F3", 0xFFC0 },
-{ "F4", 0xFFC1 },
-{ "F5", 0xFFC2 },
-{ "F6", 0xFFC3 },
-{ "F7", 0xFFC4 },
-{ "F8", 0xFFC5 },
-{ "F9", 0xFFC6 },
-{ "F10", 0xFFC7 },
-{ "F11", 0xFFC8 },
-{ "L1", 0xFFC8 },
-{ "F12", 0xFFC9 },
-{ "L2", 0xFFC9 },
-{ "F13", 0xFFCA },
-{ "L3", 0xFFCA },
-{ "F14", 0xFFCB },
-{ "L4", 0xFFCB },
-{ "F15", 0xFFCC },
-{ "L5", 0xFFCC },
-{ "F16", 0xFFCD },
-{ "L6", 0xFFCD },
-{ "F17", 0xFFCE },
-{ "L7", 0xFFCE },
-{ "F18", 0xFFCF },
-{ "L8", 0xFFCF },
-{ "F19", 0xFFD0 },
-{ "L9", 0xFFD0 },
-{ "F20", 0xFFD1 },
-{ "L10", 0xFFD1 },
-{ "F21", 0xFFD2 },
-{ "R1", 0xFFD2 },
-{ "F22", 0xFFD3 },
-{ "R2", 0xFFD3 },
-{ "F23", 0xFFD4 },
-{ "R3", 0xFFD4 },
-{ "F24", 0xFFD5 },
-{ "R4", 0xFFD5 },
-{ "F25", 0xFFD6 },
-{ "R5", 0xFFD6 },
-{ "F26", 0xFFD7 },
-{ "R6", 0xFFD7 },
-{ "F27", 0xFFD8 },
-{ "R7", 0xFFD8 },
-{ "F28", 0xFFD9 },
-{ "R8", 0xFFD9 },
-{ "F29", 0xFFDA },
-{ "R9", 0xFFDA },
-{ "F30", 0xFFDB },
-{ "R10", 0xFFDB },
-{ "F31", 0xFFDC },
-{ "R11", 0xFFDC },
-{ "F32", 0xFFDD },
-{ "R12", 0xFFDD },
-{ "R13", 0xFFDE },
-{ "F33", 0xFFDE },
-{ "F34", 0xFFDF },
-{ "R14", 0xFFDF },
-{ "F35", 0xFFE0 },
-{ "R15", 0xFFE0 },
-{ "Shift_L", 0xFFE1 },
-{ "Shift_R", 0xFFE2 },
-{ "Control_L", 0xFFE3 },
-{ "Control_R", 0xFFE4 },
-{ "Caps_Lock", 0xFFE5 },
-{ "Shift_Lock", 0xFFE6 },
-{ "Meta_L", 0xFFE7 },
-{ "Meta_R", 0xFFE8 },
-{ "Alt_L", 0xFFE9 },
-{ "Alt_R", 0xFFEA },
-{ "Super_L", 0xFFEB },
-{ "Super_R", 0xFFEC },
-{ "Hyper_L", 0xFFED },
-{ "Hyper_R", 0xFFEE },
-{ "space", 0x020 },
-{ "exclam", 0x021 },
-{ "quotedbl", 0x022 },
-{ "numbersign", 0x023 },
-{ "dollar", 0x024 },
-{ "percent", 0x025 },
-{ "ampersand", 0x026 },
-{ "quoteright", 0x027 },
-{ "parenleft", 0x028 },
-{ "parenright", 0x029 },
-{ "asterisk", 0x02a },
-{ "plus", 0x02b },
-{ "comma", 0x02c },
-{ "minus", 0x02d },
-{ "period", 0x02e },
-{ "slash", 0x02f },
-{ "0", 0x030 },
-{ "1", 0x031 },
-{ "2", 0x032 },
-{ "3", 0x033 },
-{ "4", 0x034 },
-{ "5", 0x035 },
-{ "6", 0x036 },
-{ "7", 0x037 },
-{ "8", 0x038 },
-{ "9", 0x039 },
-{ "colon", 0x03a },
-{ "semicolon", 0x03b },
-{ "less", 0x03c },
-{ "equal", 0x03d },
-{ "greater", 0x03e },
-{ "question", 0x03f },
-{ "at", 0x040 },
-{ "A", 0x041 },
-{ "B", 0x042 },
-{ "C", 0x043 },
-{ "D", 0x044 },
-{ "E", 0x045 },
-{ "F", 0x046 },
-{ "G", 0x047 },
-{ "H", 0x048 },
-{ "I", 0x049 },
-{ "J", 0x04a },
-{ "K", 0x04b },
-{ "L", 0x04c },
-{ "M", 0x04d },
-{ "N", 0x04e },
-{ "O", 0x04f },
-{ "P", 0x050 },
-{ "Q", 0x051 },
-{ "R", 0x052 },
-{ "S", 0x053 },
-{ "T", 0x054 },
-{ "U", 0x055 },
-{ "V", 0x056 },
-{ "W", 0x057 },
-{ "X", 0x058 },
-{ "Y", 0x059 },
-{ "Z", 0x05a },
-{ "bracketleft", 0x05b },
-{ "backslash", 0x05c },
-{ "bracketright", 0x05d },
-{ "asciicircum", 0x05e },
-{ "underscore", 0x05f },
-{ "quoteleft", 0x060 },
-{ "a", 0x061 },
-{ "b", 0x062 },
-{ "c", 0x063 },
-{ "d", 0x064 },
-{ "e", 0x065 },
-{ "f", 0x066 },
-{ "g", 0x067 },
-{ "h", 0x068 },
-{ "i", 0x069 },
-{ "j", 0x06a },
-{ "k", 0x06b },
-{ "l", 0x06c },
-{ "m", 0x06d },
-{ "n", 0x06e },
-{ "o", 0x06f },
-{ "p", 0x070 },
-{ "q", 0x071 },
-{ "r", 0x072 },
-{ "s", 0x073 },
-{ "t", 0x074 },
-{ "u", 0x075 },
-{ "v", 0x076 },
-{ "w", 0x077 },
-{ "x", 0x078 },
-{ "y", 0x079 },
-{ "z", 0x07a },
-{ "braceleft", 0x07b },
-{ "bar", 0x07c },
-{ "braceright", 0x07d },
-{ "asciitilde", 0x07e },
-{ "nobreakspace", 0x0a0 },
-{ "exclamdown", 0x0a1 },
-{ "cent", 0x0a2 },
-{ "sterling", 0x0a3 },
-{ "currency", 0x0a4 },
-{ "yen", 0x0a5 },
-{ "brokenbar", 0x0a6 },
-{ "section", 0x0a7 },
-{ "diaeresis", 0x0a8 },
-{ "copyright", 0x0a9 },
-{ "ordfeminine", 0x0aa },
-{ "guillemotleft", 0x0ab },
-{ "notsign", 0x0ac },
-{ "hyphen", 0x0ad },
-{ "registered", 0x0ae },
-{ "macron", 0x0af },
-{ "degree", 0x0b0 },
-{ "plusminus", 0x0b1 },
-{ "twosuperior", 0x0b2 },
-{ "threesuperior", 0x0b3 },
-{ "acute", 0x0b4 },
-{ "mu", 0x0b5 },
-{ "paragraph", 0x0b6 },
-{ "periodcentered", 0x0b7 },
-{ "cedilla", 0x0b8 },
-{ "onesuperior", 0x0b9 },
-{ "masculine", 0x0ba },
-{ "guillemotright", 0x0bb },
-{ "onequarter", 0x0bc },
-{ "onehalf", 0x0bd },
-{ "threequarters", 0x0be },
-{ "questiondown", 0x0bf },
-{ "Agrave", 0x0c0 },
-{ "Aacute", 0x0c1 },
-{ "Acircumflex", 0x0c2 },
-{ "Atilde", 0x0c3 },
-{ "Adiaeresis", 0x0c4 },
-{ "Aring", 0x0c5 },
-{ "AE", 0x0c6 },
-{ "Ccedilla", 0x0c7 },
-{ "Egrave", 0x0c8 },
-{ "Eacute", 0x0c9 },
-{ "Ecircumflex", 0x0ca },
-{ "Ediaeresis", 0x0cb },
-{ "Igrave", 0x0cc },
-{ "Iacute", 0x0cd },
-{ "Icircumflex", 0x0ce },
-{ "Idiaeresis", 0x0cf },
-{ "Eth", 0x0d0 },
-{ "Ntilde", 0x0d1 },
-{ "Ograve", 0x0d2 },
-{ "Oacute", 0x0d3 },
-{ "Ocircumflex", 0x0d4 },
-{ "Otilde", 0x0d5 },
-{ "Odiaeresis", 0x0d6 },
-{ "multiply", 0x0d7 },
-{ "Ooblique", 0x0d8 },
-{ "Ugrave", 0x0d9 },
-{ "Uacute", 0x0da },
-{ "Ucircumflex", 0x0db },
-{ "Udiaeresis", 0x0dc },
-{ "Yacute", 0x0dd },
-{ "Thorn", 0x0de },
-{ "ssharp", 0x0df },
-{ "agrave", 0x0e0 },
-{ "aacute", 0x0e1 },
-{ "acircumflex", 0x0e2 },
-{ "atilde", 0x0e3 },
-{ "adiaeresis", 0x0e4 },
-{ "aring", 0x0e5 },
-{ "ae", 0x0e6 },
-{ "ccedilla", 0x0e7 },
-{ "egrave", 0x0e8 },
-{ "eacute", 0x0e9 },
-{ "ecircumflex", 0x0ea },
-{ "ediaeresis", 0x0eb },
-{ "igrave", 0x0ec },
-{ "iacute", 0x0ed },
-{ "icircumflex", 0x0ee },
-{ "idiaeresis", 0x0ef },
-{ "eth", 0x0f0 },
-{ "ntilde", 0x0f1 },
-{ "ograve", 0x0f2 },
-{ "oacute", 0x0f3 },
-{ "ocircumflex", 0x0f4 },
-{ "otilde", 0x0f5 },
-{ "odiaeresis", 0x0f6 },
-{ "division", 0x0f7 },
-{ "oslash", 0x0f8 },
-{ "ugrave", 0x0f9 },
-{ "uacute", 0x0fa },
-{ "ucircumflex", 0x0fb },
-{ "udiaeresis", 0x0fc },
-{ "yacute", 0x0fd },
-{ "thorn", 0x0fe },
-{ "ydiaeresis", 0x0ff },
-{ "Aogonek", 0x1a1 },
-{ "breve", 0x1a2 },
-{ "Lstroke", 0x1a3 },
-{ "Lcaron", 0x1a5 },
-{ "Sacute", 0x1a6 },
-{ "Scaron", 0x1a9 },
-{ "Scedilla", 0x1aa },
-{ "Tcaron", 0x1ab },
-{ "Zacute", 0x1ac },
-{ "Zcaron", 0x1ae },
-{ "Zabovedot", 0x1af },
-{ "aogonek", 0x1b1 },
-{ "ogonek", 0x1b2 },
-{ "lstroke", 0x1b3 },
-{ "lcaron", 0x1b5 },
-{ "sacute", 0x1b6 },
-{ "caron", 0x1b7 },
-{ "scaron", 0x1b9 },
-{ "scedilla", 0x1ba },
-{ "tcaron", 0x1bb },
-{ "zacute", 0x1bc },
-{ "doubleacute", 0x1bd },
-{ "zcaron", 0x1be },
-{ "zabovedot", 0x1bf },
-{ "Racute", 0x1c0 },
-{ "Abreve", 0x1c3 },
-{ "Cacute", 0x1c6 },
-{ "Ccaron", 0x1c8 },
-{ "Eogonek", 0x1ca },
-{ "Ecaron", 0x1cc },
-{ "Dcaron", 0x1cf },
-{ "Nacute", 0x1d1 },
-{ "Ncaron", 0x1d2 },
-{ "Odoubleacute", 0x1d5 },
-{ "Rcaron", 0x1d8 },
-{ "Uring", 0x1d9 },
-{ "Udoubleacute", 0x1db },
-{ "Tcedilla", 0x1de },
-{ "racute", 0x1e0 },
-{ "abreve", 0x1e3 },
-{ "cacute", 0x1e6 },
-{ "ccaron", 0x1e8 },
-{ "eogonek", 0x1ea },
-{ "ecaron", 0x1ec },
-{ "dcaron", 0x1ef },
-{ "nacute", 0x1f1 },
-{ "ncaron", 0x1f2 },
-{ "odoubleacute", 0x1f5 },
-{ "udoubleacute", 0x1fb },
-{ "rcaron", 0x1f8 },
-{ "uring", 0x1f9 },
-{ "tcedilla", 0x1fe },
-{ "abovedot", 0x1ff },
-{ "Hstroke", 0x2a1 },
-{ "Hcircumflex", 0x2a6 },
-{ "Iabovedot", 0x2a9 },
-{ "Gbreve", 0x2ab },
-{ "Jcircumflex", 0x2ac },
-{ "hstroke", 0x2b1 },
-{ "hcircumflex", 0x2b6 },
-{ "idotless", 0x2b9 },
-{ "gbreve", 0x2bb },
-{ "jcircumflex", 0x2bc },
-{ "Cabovedot", 0x2c5 },
-{ "Ccircumflex", 0x2c6 },
-{ "Gabovedot", 0x2d5 },
-{ "Gcircumflex", 0x2d8 },
-{ "Ubreve", 0x2dd },
-{ "Scircumflex", 0x2de },
-{ "cabovedot", 0x2e5 },
-{ "ccircumflex", 0x2e6 },
-{ "gabovedot", 0x2f5 },
-{ "gcircumflex", 0x2f8 },
-{ "ubreve", 0x2fd },
-{ "scircumflex", 0x2fe },
-{ "kappa", 0x3a2 },
-{ "Rcedilla", 0x3a3 },
-{ "Itilde", 0x3a5 },
-{ "Lcedilla", 0x3a6 },
-{ "Emacron", 0x3aa },
-{ "Gcedilla", 0x3ab },
-{ "Tslash", 0x3ac },
-{ "rcedilla", 0x3b3 },
-{ "itilde", 0x3b5 },
-{ "lcedilla", 0x3b6 },
-{ "emacron", 0x3ba },
-{ "gacute", 0x3bb },
-{ "tslash", 0x3bc },
-{ "ENG", 0x3bd },
-{ "eng", 0x3bf },
-{ "Amacron", 0x3c0 },
-{ "Iogonek", 0x3c7 },
-{ "Eabovedot", 0x3cc },
-{ "Imacron", 0x3cf },
-{ "Ncedilla", 0x3d1 },
-{ "Omacron", 0x3d2 },
-{ "Kcedilla", 0x3d3 },
-{ "Uogonek", 0x3d9 },
-{ "Utilde", 0x3dd },
-{ "Umacron", 0x3de },
-{ "amacron", 0x3e0 },
-{ "iogonek", 0x3e7 },
-{ "eabovedot", 0x3ec },
-{ "imacron", 0x3ef },
-{ "ncedilla", 0x3f1 },
-{ "omacron", 0x3f2 },
-{ "kcedilla", 0x3f3 },
-{ "uogonek", 0x3f9 },
-{ "utilde", 0x3fd },
-{ "umacron", 0x3fe },
-{ "overline", 0x47e },
-{ "kana_fullstop", 0x4a1 },
-{ "kana_openingbracket", 0x4a2 },
-{ "kana_closingbracket", 0x4a3 },
-{ "kana_comma", 0x4a4 },
-{ "kana_middledot", 0x4a5 },
-{ "kana_WO", 0x4a6 },
-{ "kana_a", 0x4a7 },
-{ "kana_i", 0x4a8 },
-{ "kana_u", 0x4a9 },
-{ "kana_e", 0x4aa },
-{ "kana_o", 0x4ab },
-{ "kana_ya", 0x4ac },
-{ "kana_yu", 0x4ad },
-{ "kana_yo", 0x4ae },
-{ "kana_tu", 0x4af },
-{ "prolongedsound", 0x4b0 },
-{ "kana_A", 0x4b1 },
-{ "kana_I", 0x4b2 },
-{ "kana_U", 0x4b3 },
-{ "kana_E", 0x4b4 },
-{ "kana_O", 0x4b5 },
-{ "kana_KA", 0x4b6 },
-{ "kana_KI", 0x4b7 },
-{ "kana_KU", 0x4b8 },
-{ "kana_KE", 0x4b9 },
-{ "kana_KO", 0x4ba },
-{ "kana_SA", 0x4bb },
-{ "kana_SHI", 0x4bc },
-{ "kana_SU", 0x4bd },
-{ "kana_SE", 0x4be },
-{ "kana_SO", 0x4bf },
-{ "kana_TA", 0x4c0 },
-{ "kana_TI", 0x4c1 },
-{ "kana_TU", 0x4c2 },
-{ "kana_TE", 0x4c3 },
-{ "kana_TO", 0x4c4 },
-{ "kana_NA", 0x4c5 },
-{ "kana_NI", 0x4c6 },
-{ "kana_NU", 0x4c7 },
-{ "kana_NE", 0x4c8 },
-{ "kana_NO", 0x4c9 },
-{ "kana_HA", 0x4ca },
-{ "kana_HI", 0x4cb },
-{ "kana_HU", 0x4cc },
-{ "kana_HE", 0x4cd },
-{ "kana_HO", 0x4ce },
-{ "kana_MA", 0x4cf },
-{ "kana_MI", 0x4d0 },
-{ "kana_MU", 0x4d1 },
-{ "kana_ME", 0x4d2 },
-{ "kana_MO", 0x4d3 },
-{ "kana_YA", 0x4d4 },
-{ "kana_YU", 0x4d5 },
-{ "kana_YO", 0x4d6 },
-{ "kana_RA", 0x4d7 },
-{ "kana_RI", 0x4d8 },
-{ "kana_RU", 0x4d9 },
-{ "kana_RE", 0x4da },
-{ "kana_RO", 0x4db },
-{ "kana_WA", 0x4dc },
-{ "kana_N", 0x4dd },
-{ "voicedsound", 0x4de },
-{ "semivoicedsound", 0x4df },
-{ "kana_switch", 0xFF7E },
-{ "Arabic_comma", 0x5ac },
-{ "Arabic_semicolon", 0x5bb },
-{ "Arabic_question_mark", 0x5bf },
-{ "Arabic_hamza", 0x5c1 },
-{ "Arabic_maddaonalef", 0x5c2 },
-{ "Arabic_hamzaonalef", 0x5c3 },
-{ "Arabic_hamzaonwaw", 0x5c4 },
-{ "Arabic_hamzaunderalef", 0x5c5 },
-{ "Arabic_hamzaonyeh", 0x5c6 },
-{ "Arabic_alef", 0x5c7 },
-{ "Arabic_beh", 0x5c8 },
-{ "Arabic_tehmarbuta", 0x5c9 },
-{ "Arabic_teh", 0x5ca },
-{ "Arabic_theh", 0x5cb },
-{ "Arabic_jeem", 0x5cc },
-{ "Arabic_hah", 0x5cd },
-{ "Arabic_khah", 0x5ce },
-{ "Arabic_dal", 0x5cf },
-{ "Arabic_thal", 0x5d0 },
-{ "Arabic_ra", 0x5d1 },
-{ "Arabic_zain", 0x5d2 },
-{ "Arabic_seen", 0x5d3 },
-{ "Arabic_sheen", 0x5d4 },
-{ "Arabic_sad", 0x5d5 },
-{ "Arabic_dad", 0x5d6 },
-{ "Arabic_tah", 0x5d7 },
-{ "Arabic_zah", 0x5d8 },
-{ "Arabic_ain", 0x5d9 },
-{ "Arabic_ghain", 0x5da },
-{ "Arabic_tatweel", 0x5e0 },
-{ "Arabic_feh", 0x5e1 },
-{ "Arabic_qaf", 0x5e2 },
-{ "Arabic_kaf", 0x5e3 },
-{ "Arabic_lam", 0x5e4 },
-{ "Arabic_meem", 0x5e5 },
-{ "Arabic_noon", 0x5e6 },
-{ "Arabic_heh", 0x5e7 },
-{ "Arabic_waw", 0x5e8 },
-{ "Arabic_alefmaksura", 0x5e9 },
-{ "Arabic_yeh", 0x5ea },
-{ "Arabic_fathatan", 0x5eb },
-{ "Arabic_dammatan", 0x5ec },
-{ "Arabic_kasratan", 0x5ed },
-{ "Arabic_fatha", 0x5ee },
-{ "Arabic_damma", 0x5ef },
-{ "Arabic_kasra", 0x5f0 },
-{ "Arabic_shadda", 0x5f1 },
-{ "Arabic_sukun", 0x5f2 },
-{ "Arabic_switch", 0xFF7E },
-{ "Serbian_dje", 0x6a1 },
-{ "Macedonia_gje", 0x6a2 },
-{ "Cyrillic_io", 0x6a3 },
-{ "Ukranian_je", 0x6a4 },
-{ "Macedonia_dse", 0x6a5 },
-{ "Ukranian_i", 0x6a6 },
-{ "Ukranian_yi", 0x6a7 },
-{ "Serbian_je", 0x6a8 },
-{ "Serbian_lje", 0x6a9 },
-{ "Serbian_nje", 0x6aa },
-{ "Serbian_tshe", 0x6ab },
-{ "Macedonia_kje", 0x6ac },
-{ "Byelorussian_shortu", 0x6ae },
-{ "Serbian_dze", 0x6af },
-{ "numerosign", 0x6b0 },
-{ "Serbian_DJE", 0x6b1 },
-{ "Macedonia_GJE", 0x6b2 },
-{ "Cyrillic_IO", 0x6b3 },
-{ "Ukranian_JE", 0x6b4 },
-{ "Macedonia_DSE", 0x6b5 },
-{ "Ukranian_I", 0x6b6 },
-{ "Ukranian_YI", 0x6b7 },
-{ "Serbian_JE", 0x6b8 },
-{ "Serbian_LJE", 0x6b9 },
-{ "Serbian_NJE", 0x6ba },
-{ "Serbian_TSHE", 0x6bb },
-{ "Macedonia_KJE", 0x6bc },
-{ "Byelorussian_SHORTU", 0x6be },
-{ "Serbian_DZE", 0x6bf },
-{ "Cyrillic_yu", 0x6c0 },
-{ "Cyrillic_a", 0x6c1 },
-{ "Cyrillic_be", 0x6c2 },
-{ "Cyrillic_tse", 0x6c3 },
-{ "Cyrillic_de", 0x6c4 },
-{ "Cyrillic_ie", 0x6c5 },
-{ "Cyrillic_ef", 0x6c6 },
-{ "Cyrillic_ghe", 0x6c7 },
-{ "Cyrillic_ha", 0x6c8 },
-{ "Cyrillic_i", 0x6c9 },
-{ "Cyrillic_shorti", 0x6ca },
-{ "Cyrillic_ka", 0x6cb },
-{ "Cyrillic_el", 0x6cc },
-{ "Cyrillic_em", 0x6cd },
-{ "Cyrillic_en", 0x6ce },
-{ "Cyrillic_o", 0x6cf },
-{ "Cyrillic_pe", 0x6d0 },
-{ "Cyrillic_ya", 0x6d1 },
-{ "Cyrillic_er", 0x6d2 },
-{ "Cyrillic_es", 0x6d3 },
-{ "Cyrillic_te", 0x6d4 },
-{ "Cyrillic_u", 0x6d5 },
-{ "Cyrillic_zhe", 0x6d6 },
-{ "Cyrillic_ve", 0x6d7 },
-{ "Cyrillic_softsign", 0x6d8 },
-{ "Cyrillic_yeru", 0x6d9 },
-{ "Cyrillic_ze", 0x6da },
-{ "Cyrillic_sha", 0x6db },
-{ "Cyrillic_e", 0x6dc },
-{ "Cyrillic_shcha", 0x6dd },
-{ "Cyrillic_che", 0x6de },
-{ "Cyrillic_hardsign", 0x6df },
-{ "Cyrillic_YU", 0x6e0 },
-{ "Cyrillic_A", 0x6e1 },
-{ "Cyrillic_BE", 0x6e2 },
-{ "Cyrillic_TSE", 0x6e3 },
-{ "Cyrillic_DE", 0x6e4 },
-{ "Cyrillic_IE", 0x6e5 },
-{ "Cyrillic_EF", 0x6e6 },
-{ "Cyrillic_GHE", 0x6e7 },
-{ "Cyrillic_HA", 0x6e8 },
-{ "Cyrillic_I", 0x6e9 },
-{ "Cyrillic_SHORTI", 0x6ea },
-{ "Cyrillic_KA", 0x6eb },
-{ "Cyrillic_EL", 0x6ec },
-{ "Cyrillic_EM", 0x6ed },
-{ "Cyrillic_EN", 0x6ee },
-{ "Cyrillic_O", 0x6ef },
-{ "Cyrillic_PE", 0x6f0 },
-{ "Cyrillic_YA", 0x6f1 },
-{ "Cyrillic_ER", 0x6f2 },
-{ "Cyrillic_ES", 0x6f3 },
-{ "Cyrillic_TE", 0x6f4 },
-{ "Cyrillic_U", 0x6f5 },
-{ "Cyrillic_ZHE", 0x6f6 },
-{ "Cyrillic_VE", 0x6f7 },
-{ "Cyrillic_SOFTSIGN", 0x6f8 },
-{ "Cyrillic_YERU", 0x6f9 },
-{ "Cyrillic_ZE", 0x6fa },
-{ "Cyrillic_SHA", 0x6fb },
-{ "Cyrillic_E", 0x6fc },
-{ "Cyrillic_SHCHA", 0x6fd },
-{ "Cyrillic_CHE", 0x6fe },
-{ "Cyrillic_HARDSIGN", 0x6ff },
-{ "Greek_ALPHAaccent", 0x7a1 },
-{ "Greek_EPSILONaccent", 0x7a2 },
-{ "Greek_ETAaccent", 0x7a3 },
-{ "Greek_IOTAaccent", 0x7a4 },
-{ "Greek_IOTAdiaeresis", 0x7a5 },
-{ "Greek_IOTAaccentdiaeresis", 0x7a6 },
-{ "Greek_OMICRONaccent", 0x7a7 },
-{ "Greek_UPSILONaccent", 0x7a8 },
-{ "Greek_UPSILONdieresis", 0x7a9 },
-{ "Greek_UPSILONaccentdieresis", 0x7aa },
-{ "Greek_OMEGAaccent", 0x7ab },
-{ "Greek_alphaaccent", 0x7b1 },
-{ "Greek_epsilonaccent", 0x7b2 },
-{ "Greek_etaaccent", 0x7b3 },
-{ "Greek_iotaaccent", 0x7b4 },
-{ "Greek_iotadieresis", 0x7b5 },
-{ "Greek_iotaaccentdieresis", 0x7b6 },
-{ "Greek_omicronaccent", 0x7b7 },
-{ "Greek_upsilonaccent", 0x7b8 },
-{ "Greek_upsilondieresis", 0x7b9 },
-{ "Greek_upsilonaccentdieresis", 0x7ba },
-{ "Greek_omegaaccent", 0x7bb },
-{ "Greek_ALPHA", 0x7c1 },
-{ "Greek_BETA", 0x7c2 },
-{ "Greek_GAMMA", 0x7c3 },
-{ "Greek_DELTA", 0x7c4 },
-{ "Greek_EPSILON", 0x7c5 },
-{ "Greek_ZETA", 0x7c6 },
-{ "Greek_ETA", 0x7c7 },
-{ "Greek_THETA", 0x7c8 },
-{ "Greek_IOTA", 0x7c9 },
-{ "Greek_KAPPA", 0x7ca },
-{ "Greek_LAMBDA", 0x7cb },
-{ "Greek_MU", 0x7cc },
-{ "Greek_NU", 0x7cd },
-{ "Greek_XI", 0x7ce },
-{ "Greek_OMICRON", 0x7cf },
-{ "Greek_PI", 0x7d0 },
-{ "Greek_RHO", 0x7d1 },
-{ "Greek_SIGMA", 0x7d2 },
-{ "Greek_TAU", 0x7d4 },
-{ "Greek_UPSILON", 0x7d5 },
-{ "Greek_PHI", 0x7d6 },
-{ "Greek_CHI", 0x7d7 },
-{ "Greek_PSI", 0x7d8 },
-{ "Greek_OMEGA", 0x7d9 },
-{ "Greek_alpha", 0x7e1 },
-{ "Greek_beta", 0x7e2 },
-{ "Greek_gamma", 0x7e3 },
-{ "Greek_delta", 0x7e4 },
-{ "Greek_epsilon", 0x7e5 },
-{ "Greek_zeta", 0x7e6 },
-{ "Greek_eta", 0x7e7 },
-{ "Greek_theta", 0x7e8 },
-{ "Greek_iota", 0x7e9 },
-{ "Greek_kappa", 0x7ea },
-{ "Greek_lambda", 0x7eb },
-{ "Greek_mu", 0x7ec },
-{ "Greek_nu", 0x7ed },
-{ "Greek_xi", 0x7ee },
-{ "Greek_omicron", 0x7ef },
-{ "Greek_pi", 0x7f0 },
-{ "Greek_rho", 0x7f1 },
-{ "Greek_sigma", 0x7f2 },
-{ "Greek_finalsmallsigma", 0x7f3 },
-{ "Greek_tau", 0x7f4 },
-{ "Greek_upsilon", 0x7f5 },
-{ "Greek_phi", 0x7f6 },
-{ "Greek_chi", 0x7f7 },
-{ "Greek_psi", 0x7f8 },
-{ "Greek_omega", 0x7f9 },
-{ "Greek_switch", 0xFF7E },
-{ "leftradical", 0x8a1 },
-{ "topleftradical", 0x8a2 },
-{ "horizconnector", 0x8a3 },
-{ "topintegral", 0x8a4 },
-{ "botintegral", 0x8a5 },
-{ "vertconnector", 0x8a6 },
-{ "topleftsqbracket", 0x8a7 },
-{ "botleftsqbracket", 0x8a8 },
-{ "toprightsqbracket", 0x8a9 },
-{ "botrightsqbracket", 0x8aa },
-{ "topleftparens", 0x8ab },
-{ "botleftparens", 0x8ac },
-{ "toprightparens", 0x8ad },
-{ "botrightparens", 0x8ae },
-{ "leftmiddlecurlybrace", 0x8af },
-{ "rightmiddlecurlybrace", 0x8b0 },
-{ "topleftsummation", 0x8b1 },
-{ "botleftsummation", 0x8b2 },
-{ "topvertsummationconnector", 0x8b3 },
-{ "botvertsummationconnector", 0x8b4 },
-{ "toprightsummation", 0x8b5 },
-{ "botrightsummation", 0x8b6 },
-{ "rightmiddlesummation", 0x8b7 },
-{ "lessthanequal", 0x8bc },
-{ "notequal", 0x8bd },
-{ "greaterthanequal", 0x8be },
-{ "integral", 0x8bf },
-{ "therefore", 0x8c0 },
-{ "variation", 0x8c1 },
-{ "infinity", 0x8c2 },
-{ "nabla", 0x8c5 },
-{ "approximate", 0x8c8 },
-{ "similarequal", 0x8c9 },
-{ "ifonlyif", 0x8cd },
-{ "implies", 0x8ce },
-{ "identical", 0x8cf },
-{ "radical", 0x8d6 },
-{ "includedin", 0x8da },
-{ "includes", 0x8db },
-{ "intersection", 0x8dc },
-{ "union", 0x8dd },
-{ "logicaland", 0x8de },
-{ "logicalor", 0x8df },
-{ "partialderivative", 0x8ef },
-{ "function", 0x8f6 },
-{ "leftarrow", 0x8fb },
-{ "uparrow", 0x8fc },
-{ "rightarrow", 0x8fd },
-{ "downarrow", 0x8fe },
-{ "blank", 0x9df },
-{ "soliddiamond", 0x9e0 },
-{ "checkerboard", 0x9e1 },
-{ "ht", 0x9e2 },
-{ "ff", 0x9e3 },
-{ "cr", 0x9e4 },
-{ "lf", 0x9e5 },
-{ "nl", 0x9e8 },
-{ "vt", 0x9e9 },
-{ "lowrightcorner", 0x9ea },
-{ "uprightcorner", 0x9eb },
-{ "upleftcorner", 0x9ec },
-{ "lowleftcorner", 0x9ed },
-{ "crossinglines", 0x9ee },
-{ "horizlinescan1", 0x9ef },
-{ "horizlinescan3", 0x9f0 },
-{ "horizlinescan5", 0x9f1 },
-{ "horizlinescan7", 0x9f2 },
-{ "horizlinescan9", 0x9f3 },
-{ "leftt", 0x9f4 },
-{ "rightt", 0x9f5 },
-{ "bott", 0x9f6 },
-{ "topt", 0x9f7 },
-{ "vertbar", 0x9f8 },
-{ "emspace", 0xaa1 },
-{ "enspace", 0xaa2 },
-{ "em3space", 0xaa3 },
-{ "em4space", 0xaa4 },
-{ "digitspace", 0xaa5 },
-{ "punctspace", 0xaa6 },
-{ "thinspace", 0xaa7 },
-{ "hairspace", 0xaa8 },
-{ "emdash", 0xaa9 },
-{ "endash", 0xaaa },
-{ "signifblank", 0xaac },
-{ "ellipsis", 0xaae },
-{ "doubbaselinedot", 0xaaf },
-{ "onethird", 0xab0 },
-{ "twothirds", 0xab1 },
-{ "onefifth", 0xab2 },
-{ "twofifths", 0xab3 },
-{ "threefifths", 0xab4 },
-{ "fourfifths", 0xab5 },
-{ "onesixth", 0xab6 },
-{ "fivesixths", 0xab7 },
-{ "careof", 0xab8 },
-{ "figdash", 0xabb },
-{ "leftanglebracket", 0xabc },
-{ "decimalpoint", 0xabd },
-{ "rightanglebracket", 0xabe },
-{ "marker", 0xabf },
-{ "oneeighth", 0xac3 },
-{ "threeeighths", 0xac4 },
-{ "fiveeighths", 0xac5 },
-{ "seveneighths", 0xac6 },
-{ "trademark", 0xac9 },
-{ "signaturemark", 0xaca },
-{ "trademarkincircle", 0xacb },
-{ "leftopentriangle", 0xacc },
-{ "rightopentriangle", 0xacd },
-{ "emopencircle", 0xace },
-{ "emopenrectangle", 0xacf },
-{ "leftsinglequotemark", 0xad0 },
-{ "rightsinglequotemark", 0xad1 },
-{ "leftdoublequotemark", 0xad2 },
-{ "rightdoublequotemark", 0xad3 },
-{ "prescription", 0xad4 },
-{ "minutes", 0xad6 },
-{ "seconds", 0xad7 },
-{ "latincross", 0xad9 },
-{ "hexagram", 0xada },
-{ "filledrectbullet", 0xadb },
-{ "filledlefttribullet", 0xadc },
-{ "filledrighttribullet", 0xadd },
-{ "emfilledcircle", 0xade },
-{ "emfilledrect", 0xadf },
-{ "enopencircbullet", 0xae0 },
-{ "enopensquarebullet", 0xae1 },
-{ "openrectbullet", 0xae2 },
-{ "opentribulletup", 0xae3 },
-{ "opentribulletdown", 0xae4 },
-{ "openstar", 0xae5 },
-{ "enfilledcircbullet", 0xae6 },
-{ "enfilledsqbullet", 0xae7 },
-{ "filledtribulletup", 0xae8 },
-{ "filledtribulletdown", 0xae9 },
-{ "leftpointer", 0xaea },
-{ "rightpointer", 0xaeb },
-{ "club", 0xaec },
-{ "diamond", 0xaed },
-{ "heart", 0xaee },
-{ "maltesecross", 0xaf0 },
-{ "dagger", 0xaf1 },
-{ "doubledagger", 0xaf2 },
-{ "checkmark", 0xaf3 },
-{ "ballotcross", 0xaf4 },
-{ "musicalsharp", 0xaf5 },
-{ "musicalflat", 0xaf6 },
-{ "malesymbol", 0xaf7 },
-{ "femalesymbol", 0xaf8 },
-{ "telephone", 0xaf9 },
-{ "telephonerecorder", 0xafa },
-{ "phonographcopyright", 0xafb },
-{ "caret", 0xafc },
-{ "singlelowquotemark", 0xafd },
-{ "doublelowquotemark", 0xafe },
-{ "cursor", 0xaff },
-{ "leftcaret", 0xba3 },
-{ "rightcaret", 0xba6 },
-{ "downcaret", 0xba8 },
-{ "upcaret", 0xba9 },
-{ "overbar", 0xbc0 },
-{ "downtack", 0xbc2 },
-{ "upshoe", 0xbc3 },
-{ "downstile", 0xbc4 },
-{ "underbar", 0xbc6 },
-{ "jot", 0xbca },
-{ "quad", 0xbcc },
-{ "uptack", 0xbce },
-{ "circle", 0xbcf },
-{ "upstile", 0xbd3 },
-{ "downshoe", 0xbd6 },
-{ "rightshoe", 0xbd8 },
-{ "leftshoe", 0xbda },
-{ "lefttack", 0xbdc },
-{ "righttack", 0xbfc },
-{ "hebrew_aleph", 0xce0 },
-{ "hebrew_beth", 0xce1 },
-{ "hebrew_gimmel", 0xce2 },
-{ "hebrew_daleth", 0xce3 },
-{ "hebrew_he", 0xce4 },
-{ "hebrew_waw", 0xce5 },
-{ "hebrew_zayin", 0xce6 },
-{ "hebrew_het", 0xce7 },
-{ "hebrew_teth", 0xce8 },
-{ "hebrew_yod", 0xce9 },
-{ "hebrew_finalkaph", 0xcea },
-{ "hebrew_kaph", 0xceb },
-{ "hebrew_lamed", 0xcec },
-{ "hebrew_finalmem", 0xced },
-{ "hebrew_mem", 0xcee },
-{ "hebrew_finalnun", 0xcef },
-{ "hebrew_nun", 0xcf0 },
-{ "hebrew_samekh", 0xcf1 },
-{ "hebrew_ayin", 0xcf2 },
-{ "hebrew_finalpe", 0xcf3 },
-{ "hebrew_pe", 0xcf4 },
-{ "hebrew_finalzadi", 0xcf5 },
-{ "hebrew_zadi", 0xcf6 },
-{ "hebrew_kuf", 0xcf7 },
-{ "hebrew_resh", 0xcf8 },
-{ "hebrew_shin", 0xcf9 },
-{ "hebrew_taf", 0xcfa },
-{ "Hebrew_switch", 0xFF7E },
-{ "ISO_Left_Tab", 0xFE20 },
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/mkVFunc b/Master/tlpkg/tlperl/lib/Tk/pTk/mkVFunc
deleted file mode 100644
index e10a458858a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/mkVFunc
+++ /dev/null
@@ -1,433 +0,0 @@
-#!/usr/bin/perl -w
-use strict;
-
-
-my %Ignore;
-my %Ignored;
-my %WinIgnore;
-my %Exclude;
-
-my $oops = 0;
-
-use Getopt::Std;
-my %opt;
-getopts('mt',\%opt);
-my @Files;
-
-sub openRO
-{
- my ($fh,$file) = @_;
- if (-f $file && !-w $file)
- {
- chmod(0666,$file) || warn "Cannot change permissions on $file:$!";
- }
- open($fh,">","$file~") || return 0;
- push(@Files,$file);
- return 1;
-}
-
-END
- {
- while (@Files)
- {
- my $file = pop(@Files);
- if (-f $file)
- {
- chmod(0444,"$file~") || warn "Cannot change permissions on $file:$!";
- if (!rename("$file~",$file))
- {
- warn "Cannot rename $file to $file~ ($!), trying again with deleting $file before...";
- unlink($file) || warn "Cannot delete $file:$!";
- rename("$file~",$file) || warn "Cannot rename $file~ to $file ($!), expect major problems now...";
- }
- }
- }
- }
-
-my $win_arch = shift;
-die "Unknown \$win_arch" unless $win_arch eq 'open32'
- or $win_arch eq 'pm'
- or $win_arch eq 'x'
- or $win_arch eq 'MSWin32';
-my $xexcl = <<EOM;
-#if (defined(__WIN32__) || defined(__PM__)) && !defined(DO_X_EXCLUDE)
-# define DO_X_EXCLUDE
-#endif
-EOM
-
-sub Ignore
-{
- my $cfile = shift;
- if (open(C,"<$cfile"))
- {
- warn "Ignoring from $cfile\n";
- while (<C>)
- {
- if (/^([A-Za-z][A-Za-z0-9_]*)/)
- {
- $Ignore{$1} = $cfile;
- }
- }
- close(C);
- }
- else
- {
- warn "Cannot open $cfile:$!";
- }
-}
-
-sub WinIgnore
-{
- my $cfile = shift;
- if (open(C,"<$cfile"))
- {
- warn "WinIgnoring from $cfile\n";
- while (<C>)
- {
- if (/^([A-Za-z][A-Za-z0-9_]*)/)
- {
- $WinIgnore{$1} = $cfile;
- }
- }
- close(C);
- }
- else
- {
- warn "Cannot open $cfile:$!";
- }
-}
-
-sub Exclude
-{
- my $cfile = shift;
- if (open(C,"<$cfile"))
- {
- while (<C>)
- {
- if (/{\s*\"[^\"]+\"\s*,\s*(\w+)\s*}/)
- {
- $Exclude{$1} = $cfile;
- }
- }
- close(C);
- }
- else
- {
- warn "Cannot open $cfile:$!";
- }
-}
-
-sub Vfunc
-{
- my $hfile = shift;
- my %VFunc = ();
- my %VVar = ();
- my %VError= ();
- my $errors = 0;
- my @ifdef = ('');
- open(H,"<$hfile") || die "Cannot open $hfile:$!";
- my $gard = "\U$hfile";
- $gard =~ s/\..*$//;
- $gard =~ s#/#_#g;
-
- while (<H>)
- {
- if (/^\s*#\s*if/)
- {
- s#//.*##;
- s#/\*.*?\*/# #g;
- s/\s+$//;
- s/^\s*#\s*ifndef\s+_$gard\b.*//;
- s/^\s*#\s*ifndef\s+_\w+_H_\b.*//;
- warn "'$gard' in '$_'" if /$gard/;
- push(@ifdef,$_);
- }
- elsif (/^\s*#\s*else/)
- {
- s/\s+$//;
- #warn "$hfile:$.:$_\n";
- $ifdef[-1] = $_;
- }
- elsif (/^\s*#\s*endif\b/)
- {
- pop(@ifdef);
- }
- elsif (/^\s*(MOVEXT|COREXT|EXTERN|extern)\s*(.*?)\s*(\w+)\s+_ANSI_ARGS_\s*\((TCL_VARARGS)?\(/)
- {
- my ($type,$name,$op) = ($2,$3,$4);
- if ($1 eq 'MOVEXT' || $1 eq 'COREXT')
- {
- warn "$1 $name\n";
- $oops++;
- $Ignore{$name} = $hfile;
- }
- $op = "" unless (defined $op);
- my $defn = "VFUNC($type,$name,V_$name,_ANSI_ARGS_($op(";
- $_ = $';
- until (/\)\);\s*$/)
- {
- $defn .= $_;
- $_ = <H>;
- if (/^\S/)
- {
- chomp($_);
- die $_;
- }
- }
- s/\)\);\s*$/\)\)\)\n/;
- $defn .= $_;
- die "$hfile:$.:$ifdef[-1]\n" if $ifdef[-1] =~ /\belse\b/;
- if (exists($VFunc{$name}{$ifdef[-1]}) && $defn ne $VFunc{$name}{$ifdef[-1]})
- {
- warn "Function (@ifdef) $name is $defn and $VFunc{$name}{$ifdef[-1]}";
- $errors++;
- }
- else
- {
- $VFunc{$name}{$ifdef[-1]} = $defn;
- }
- }
- elsif (/^\s*(MOVEXT|COREXT|EXTERN|extern)\s*(.*?)\s*(\w+)\s*;/)
- {
- my ($type,$name) = ($2,$3);
- if ($1 eq 'MOVEXT' || $1 eq 'COREXT')
- {
- warn "$1 $name\n";
- $oops++;
- $Ignore{$name} = $hfile;
- }
- my $defn = "VVAR($type,$name,V_$name)\n";
- die "$hfile:$.:$ifdef[-1]\n" if $ifdef[-1] =~ /\belse\b/;
- if (exists $VVar{$name}{$ifdef[-1]})
- {
- warn "Variable (@ifdef) $name is $defn and $VVar{$name}{$ifdef[-1]}";
- $errors++;
- }
- else
- {
- $VVar{$name}{$ifdef[-1]} = $defn;
- }
- }
- elsif (/\b(EXTERN|extern)\s+[\w_]+\s+[\w_]+\[\];$/)
- {
-
- }
- elsif (/\b(EXTERN|extern)\s*"C"\s*\{\s*$/)
- {
-
- }
- elsif (/\b(EXTERN|extern)\b/)
- {
- warn "$hfile:$.: $_" unless (/^\s*\#\s*define/);
- }
- }
- close(H);
- die "Multiple definitions\n" if $errors;
-
-
- if (keys %VFunc || keys %VVar)
- {
- my $name = "\u\L${gard}\UV";
- my $fdef = $hfile;
- $fdef =~ s/\..*$/.t/;
- my $mdef = $hfile;
- $mdef =~ s/\..*$/.m/;
-
- $mdef .= 'dmy' unless $opt{'m'};
- $fdef .= 'dmy' unless $opt{'t'};
-
- my $htfile = $hfile;
- $htfile =~ s/\..*$/_f.h/;
- unless (-r $htfile)
- {
- openRO(\*C,$htfile) || die "Cannot open $htfile:$!";
- print C "#ifndef ${gard}_VT\n";
- print C "#define ${gard}_VT\n";
- print C "typedef struct ${name}tab\n{\n";
- print C " unsigned (*tabSize)(void);\n";
- print C "#define VFUNC(type,name,mem,args) type (*mem) args;\n";
- print C "#define VVAR(type,name,mem) type (*mem);\n";
- print C "#include \"$fdef\"\n";
- print C "#undef VFUNC\n";
- print C "#undef VVAR\n";
- print C "} ${name}tab;\n";
- print C "extern ${name}tab *${name}ptr;\n";
- print C "extern ${name}tab *${name}Get(void);\n";
- print C "#endif /* ${gard}_VT */\n";
- close(C);
- }
-
- my $cfile = $hfile;
- $cfile =~ s/\..*$/_f.c/;
- unless (-r $cfile)
- {
- openRO(\*C,$cfile) || die "Cannot open $cfile:$!";
- print C "#include \"$hfile\"\n";
- print C "#include \"$htfile\"\n";
- print C "static unsigned ${name}Size(void) { return sizeof(${name}tab);}\n";
- print C "static ${name}tab ${name}table =\n{\n";
- print C " ${name}Size,\n";
- print C "#define VFUNC(type,name,mem,args) name,\n";
- print C "#define VVAR(type,name,mem) &name,\n";
- print C "#include \"$fdef\"\n";
- print C "#undef VFUNC\n";
- print C "#undef VVAR\n";
- print C "};\n";
- print C "${name}tab *${name}ptr;\n";
- print C "${name}tab *${name}Get() { return ${name}ptr = &${name}table;}\n";
- close(C);
- }
-
- print STDERR "$gard\n";
- openRO(\*VFUNC,$fdef) || die "Cannot open $fdef:$!";
- openRO(\*VMACRO,$mdef) || die "Cannot open $mdef:$!";
- print VFUNC "#ifdef _$gard\n";
- print VMACRO "#ifndef _${gard}_VM\n";
- print VMACRO "#define _${gard}_VM\n";
- print VMACRO "#include \"$htfile\"\n";
- print VMACRO "#ifndef NO_VTABLES\n";
- print VMACRO $xexcl if %WinIgnore;
- print VFUNC $xexcl if %WinIgnore;
- foreach my $func (sort keys %VVar)
- {
- if (!exists($Exclude{$func}) && !exists($Ignore{$func}))
- {
- foreach my $ifdef (sort keys %{$VVar{$func}})
- {
- print VFUNC "$ifdef\n" if ($ifdef);
- print VFUNC $VVar{$func}{$ifdef};
- print VFUNC "#endif /* $ifdef */\n" if ($ifdef);
- }
- print VMACRO "#define $func (*${name}ptr->V_$func)\n";
- }
- $Ignored{$func} = delete $Ignore{$func} if exists $Ignore{$func};
- }
- foreach my $func (sort keys %VFunc)
- {
- if (!exists($Exclude{$func}) && !exists($Ignore{$func}))
- {
- print VFUNC "#ifndef DO_X_EXCLUDE\n" if exists($WinIgnore{$func});
- print VFUNC "#ifndef $func\n";
- foreach my $ifdef (sort keys %{$VFunc{$func}})
- {
- print VFUNC "$ifdef\n" if ($ifdef);
- print VFUNC $VFunc{$func}{$ifdef};
- print VFUNC "#endif /* $ifdef */\n" if ($ifdef);
- }
- print VFUNC "#endif /* #ifndef $func */\n";
- print VFUNC "#endif /* !DO_X_EXCLUDE */\n" if exists($WinIgnore{$func});
- print VFUNC "\n";
-
- print VMACRO "#ifndef DO_X_EXCLUDE\n" if exists($WinIgnore{$func});
- print VMACRO "#ifndef $func\n";
- print VMACRO "# define $func (*${name}ptr->V_$func)\n";
- print VMACRO "#endif\n";
- print VMACRO "#endif /* !DO_X_EXCLUDE */\n" if exists($WinIgnore{$func});
- print VMACRO "\n";
- }
- $Ignored{$func} = delete $Ignore{$func} if exists $Ignore{$func};
- }
- print VMACRO "#endif /* NO_VTABLES */\n";
- print VMACRO "#endif /* _${gard}_VM */\n";
- close(VMACRO);
- print VFUNC "#endif /* _$gard */\n";
- close(VFUNC); # Close this last - Makefile dependency
-
- unlink($mdef) unless $opt{'m'};
- unlink($fdef) unless $opt{'t'};
- }
- else
- {
- die "No entries in $hfile\n";
- }
-}
-
-foreach (<tk*Tab.c>)
- {
- Exclude($_);
- }
-
-die "Usage: $0 <some.h>\n" if (@ARGV != 1);
-
-my $h = shift;
-my $x = $h;
-$x =~ s/\.h/.exc/;
-Ignore($x) if (-f $x);
-$x =~ s/\.exc/.excwin/;
-WinIgnore($x) if (-f $x);
-Vfunc($h);
-
-foreach my $s (sort keys %Ignore)
- {
- warn "$s is not in $h\n";
- $oops++;
- }
-
-if ($oops)
- {
- $x = $h;
- $x =~ s/\.h/.exc/;
- rename($x,"$x.old") || die "Cannot rename $x to $x.old:$!";
- open(EXC,">$x") || die "Cannot open $x:$!";
- foreach my $s (sort keys %Ignored)
- {
- print EXC $s,"\n";
- }
- close(EXC);
- }
-
-__END__
-
-=head1 NAME
-
-mkVFunc - Support for "nested" dynamic loading
-
-=head1 SYNOPSIS
-
- mkVFunc xxx.h
-
-=head1 DESCRIPTION
-
-B<perl/Tk> is designed so that B<Tk> can be dynamically loaded 'on top of'
-perl. That is the easy bit. What it also does is allow Tk::Xxxx to be
-dynamically loaded 'on top of' the B<perl/Tk> composite. Thus when
-you 'require Tk::HList' the shared object F<.../HList.so> needs to be
-able to call functions defined in perl I<and> functions defined in loadable
-.../Tk.so . Now functions in 'base executable' are a well known problem,
-and are solved by DynaLoader. However most of dynamic loading schemes
-cannot handle one loadable calling another loadable.
-
-Thus what Tk does is build a table of functions that should be callable.
-This table is auto-generated from the .h file by looking for
-'extern' (and EXTERN which is #defined to 'extern').
-Thus any function marked as 'extern' is 'referenced' by the table.
-The address of the table is then stored in a perl variable when Tk is loaded.
-When HList is loaded it looks in the perl variable (via functions
-in perl - the 'base executable') to get the address of the table.
-
-The same utility that builds the table also builds a set of #define's.
-HList.c (and any other .c files which comprise HList) #include these
-#define's. So that
-
- Tk_SomeFunc(x,y,z)
-
-Is actually compiled as
-
- (*TkVptr->V_Tk_SomeFunc)(x,y,z)
-
-Where Tk_ptr is pointer to the table.
-
-See:
-
- Tk-b*/pTk/mkVFunc - perl script that produces tables
- /tk.h - basis from which table is generated
- /tk.m - #define's to include in sub-extension
- /tk_f.h - #included both sides.
- /tk_f.c - Actual table definition.
- /tk.t - 'shared' set of macros which produce table
- included in tk_f.c and tk_f.h
- /tkVMacro.h - Wrapper to include *.m files
-
-In addition to /tk* there are /tkInt*, /Lang* and /tix*
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/moredefs.h b/Master/tlpkg/tlperl/lib/Tk/pTk/moredefs.h
deleted file mode 100644
index f81380aea31..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/moredefs.h
+++ /dev/null
@@ -1,131 +0,0 @@
-EXTERN int Tk_BellObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_BindCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_BindtagsCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_ButtonCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_CanvasObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST objv[]));
-EXTERN int Tk_CheckbuttonCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_ClipboardCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_ChooseColorCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_DestroyCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_EntryCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_EventObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST objv[]));
-EXTERN int Tk_FrameCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_FocusObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST objv[]));
-EXTERN int Tk_FontObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_GetOpenFileCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_GetSaveFileCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_GrabCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_GridCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_ImageObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST objv[]));
-EXTERN int Tk_LabelCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_ListboxCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_LowerCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_MenuCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_MenubuttonCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_MessageBoxCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_MessageCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_OptionCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_PackCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_PlaceCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_PropertyCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_RadiobuttonCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_RaiseCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_ScaleCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_ScrollbarCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_SelectionCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_SendCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_TextCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_TkObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_TkwaitCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_ToplevelCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_UpdateCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_WinfoObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_WmCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-
-EXTERN int TkTileParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj * value, char *widgRec,
- int offset));
-EXTERN Tcl_Obj * TkTilePrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN int TkOffsetParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj * value, char *widgRec,
- int offset));
-EXTERN Tcl_Obj * TkOffsetPrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN int TkStateParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj * value,
- char *widgRec, int offset));
-EXTERN Tcl_Obj * TkStatePrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN int TkOrientParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj * value,
- char *widgRec, int offset));
-EXTERN Tcl_Obj * TkOrientPrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN int TkPixelParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj * value,
- char *widgRec, int offset));
-EXTERN Tcl_Obj * TkPixelPrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/port.h b/Master/tlpkg/tlperl/lib/Tk/pTk/port.h
deleted file mode 100644
index 7a66a7c2751..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/port.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Warning, this file was automatically created by the TIFF configure script
- * VERSION: v3.5.5
- * DATE: Sun Jul 16 20:21:17 MET DST 2000
- * TARGET: i386-unknown-linux
- * CCOMPILER: /usr/bin/gcc-2.7.2.1
- */
-#ifndef _PORT_
-#define _PORT_ 1
-#ifdef __cplusplus
-extern "C" {
-#endif
-#include <sys/types.h>
-#define HOST_FILLORDER FILLORDER_LSB2MSB
-#define HOST_BIGENDIAN 0
-#define HAVE_MMAP 1
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdlib.h>
-#include <fcntl.h>
-typedef double dblparam_t;
-#ifdef __STRICT_ANSI__
-#define INLINE __inline__
-#else
-#define INLINE inline
-#endif
-#define GLOBALDATA(TYPE,NAME) extern TYPE NAME
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tcl.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tcl.h
deleted file mode 100644
index 2770f572bcc..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tcl.h
+++ /dev/null
@@ -1,2411 +0,0 @@
-/*
- * tcl.h --
- *
- * This header file describes the externally-visible facilities
- * of the Tcl interpreter.
- *
- * Copyright (c) 1987-1994 The Regents of the University of California.
- * Copyright (c) 1993-1996 Lucent Technologies.
- * Copyright (c) 1994-1998 Sun Microsystems, Inc.
- * Copyright (c) 1998-2000 by Scriptics Corporation.
- * Copyright (c) 2002 by Kevin B. Kenny. All rights reserved.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tcl.h,v 1.153.2.8 2003/10/22 22:35:46 andreas_kupries Exp $
- */
-#ifndef _TCL
-#define _TCL
-
-/*
- * For C++ compilers, use extern "C"
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The following defines are used to indicate the various release levels.
- */
-
-#define TCL_ALPHA_RELEASE 0
-#define TCL_BETA_RELEASE 1
-#define TCL_FINAL_RELEASE 2
-
-/*
- * When version numbers change here, must also go into the following files
- * and update the version numbers:
- *
- * library/init.tcl (only if Major.minor changes, not patchlevel) 1 LOC
- * unix/configure.in (2 LOC Major, 2 LOC minor, 1 LOC patch)
- * win/configure.in (as above)
- * win/tcl.m4 (not patchlevel)
- * win/makefile.vc (not patchlevel) 2 LOC
- * README (sections 0 and 2)
- * mac/README (2 LOC, not patchlevel)
- * macosx/Tcl.pbproj/project.pbxproj (not patchlevel) 2 LOC
- * win/README.binary (sections 0-4)
- * win/README (not patchlevel) (sections 0 and 2)
- * unix/tcl.spec (2 LOC Major/Minor, 1 LOC patch)
- * tests/basic.test (1 LOC M/M, not patchlevel)
- * tools/tcl.hpj.in (not patchlevel, for windows installer)
- * tools/tcl.wse.in (for windows installer)
- * tools/tclSplash.bmp (not patchlevel)
- */
-#define TCL_MAJOR_VERSION 8
-#define TCL_MINOR_VERSION 4
-#define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
-#define TCL_RELEASE_SERIAL 5
-
-#define TCL_VERSION "8.4"
-#define TCL_PATCH_LEVEL "8.4.5"
-
-/*
- * The following definitions set up the proper options for Windows
- * compilers. We use this method because there is no autoconf equivalent.
- */
-
-#ifndef __WIN32__
-# if defined(_WIN32) || defined(WIN32) || defined(__MINGW32__) || defined(__BORLANDC__)
-# define __WIN32__
-# ifndef WIN32
-# define WIN32
-# endif
-# endif
-#endif
-
-/*
- * STRICT: See MSDN Article Q83456
- */
-#ifdef __WIN32__
-# ifndef STRICT
-# define STRICT
-# endif
-#endif /* __WIN32__ */
-
-/*
- * The following definitions set up the proper options for Macintosh
- * compilers. We use this method because there is no autoconf equivalent.
- */
-
-#ifdef MAC_TCL
-#include <ConditionalMacros.h>
-# ifndef USE_TCLALLOC
-# define USE_TCLALLOC 1
-# endif
-# ifndef NO_STRERROR
-# define NO_STRERROR 1
-# endif
-# define INLINE
-#endif
-
-
-/*
- * Utility macros: STRINGIFY takes an argument and wraps it in "" (double
- * quotation marks), JOIN joins two arguments.
- */
-#ifndef STRINGIFY
-# define STRINGIFY(x) STRINGIFY1(x)
-# define STRINGIFY1(x) #x
-#endif
-#ifndef JOIN
-# define JOIN(a,b) JOIN1(a,b)
-# define JOIN1(a,b) a##b
-#endif
-
-/*
- * A special definition used to allow this header file to be included
- * from windows or mac resource files so that they can obtain version
- * information. RC_INVOKED is defined by default by the windows RC tool
- * and manually set for macintosh.
- *
- * Resource compilers don't like all the C stuff, like typedefs and
- * procedure declarations, that occur below, so block them out.
- */
-
-#ifndef RC_INVOKED
-
-/*
- * Special macro to define mutexes, that doesn't do anything
- * if we are not using threads.
- */
-
-#ifdef TCL_THREADS
-#define TCL_DECLARE_MUTEX(name) static Tcl_Mutex name;
-#else
-#define TCL_DECLARE_MUTEX(name)
-#endif
-
-/*
- * Macros that eliminate the overhead of the thread synchronization
- * functions when compiling without thread support.
- */
-
-#ifndef TCL_THREADS
-#define Tcl_MutexLock(mutexPtr)
-#define Tcl_MutexUnlock(mutexPtr)
-#define Tcl_MutexFinalize(mutexPtr)
-#define Tcl_ConditionNotify(condPtr)
-#define Tcl_ConditionWait(condPtr, mutexPtr, timePtr)
-#define Tcl_ConditionFinalize(condPtr)
-#endif /* TCL_THREADS */
-
-
-#ifndef BUFSIZ
-# include <stdio.h>
-#endif
-
-
-/*
- * Definitions that allow Tcl functions with variable numbers of
- * arguments to be used with either varargs.h or stdarg.h. TCL_VARARGS
- * is used in procedure prototypes. TCL_VARARGS_DEF is used to declare
- * the arguments in a function definiton: it takes the type and name of
- * the first argument and supplies the appropriate argument declaration
- * string for use in the function definition. TCL_VARARGS_START
- * initializes the va_list data structure and returns the first argument.
- */
-#if !defined(NO_STDARG)
-# include <stdarg.h>
-# define TCL_VARARGS(type, name) (type name, ...)
-# define TCL_VARARGS_DEF(type, name) (type name, ...)
-# define TCL_VARARGS_START(type, name, list) (va_start(list, name), name)
-#else
-# include <varargs.h>
-# define TCL_VARARGS(type, name) ()
-# define TCL_VARARGS_DEF(type, name) (va_alist)
-# define TCL_VARARGS_START(type, name, list) \
- (va_start(list), va_arg(list, type))
-#endif
-
-/*
- * Macros used to declare a function to be exported by a DLL.
- * Used by Windows, maps to no-op declarations on non-Windows systems.
- * The default build on windows is for a DLL, which causes the DLLIMPORT
- * and DLLEXPORT macros to be nonempty. To build a static library, the
- * macro STATIC_BUILD should be defined.
- */
-
-#ifdef STATIC_BUILD
-# define DLLIMPORT
-# define DLLEXPORT
-#else
-# if (defined(__WIN32__) && (defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || (defined(__GNUC__) && defined(__declspec)))) || (defined(MAC_TCL) && FUNCTION_DECLSPEC)
-# define DLLIMPORT __declspec(dllimport)
-# define DLLEXPORT __declspec(dllexport)
-# else
-# define DLLIMPORT
-# define DLLEXPORT
-# endif
-#endif
-
-/*
- * These macros are used to control whether functions are being declared for
- * import or export. If a function is being declared while it is being built
- * to be included in a shared library, then it should have the DLLEXPORT
- * storage class. If is being declared for use by a module that is going to
- * link against the shared library, then it should have the DLLIMPORT storage
- * class. If the symbol is beind declared for a static build or for use from a
- * stub library, then the storage class should be empty.
- *
- * The convention is that a macro called BUILD_xxxx, where xxxx is the
- * name of a library we are building, is set on the compile line for sources
- * that are to be placed in the library. When this macro is set, the
- * storage class will be set to DLLEXPORT. At the end of the header file, the
- * storage class will be reset to DLLIMPORT.
- */
-#undef TCL_STORAGE_CLASS
-#ifdef BUILD_tcl
-# define TCL_STORAGE_CLASS DLLEXPORT
-#else
-# ifdef USE_TCL_STUBS
-# define TCL_STORAGE_CLASS
-# else
-# define TCL_STORAGE_CLASS DLLIMPORT
-# endif
-#endif
-
-
-/*
- * Definitions that allow this header file to be used either with or
- * without ANSI C features like function prototypes.
- */
-#undef _ANSI_ARGS_
-#undef CONST
-#ifndef INLINE
-# define INLINE
-#endif
-
-#ifndef NO_CONST
-# define CONST const
-#else
-# define CONST
-#endif
-
-#ifndef NO_PROTOTYPES
-# define _ANSI_ARGS_(x) x
-#else
-# define _ANSI_ARGS_(x) ()
-#endif
-
-#ifdef USE_NON_CONST
-# ifdef USE_COMPAT_CONST
-# error define at most one of USE_NON_CONST and USE_COMPAT_CONST
-# endif
-# define CONST84
-# define CONST84_RETURN
-#else
-# ifdef USE_COMPAT_CONST
-# define CONST84
-# define CONST84_RETURN CONST
-# else
-# define CONST84 CONST
-# define CONST84_RETURN CONST
-# endif
-#endif
-
-
-/*
- * Make sure EXTERN isn't defined elsewhere
- */
-#ifdef EXTERN
-# undef EXTERN
-#endif /* EXTERN */
-
-#ifdef __cplusplus
-# define EXTERN extern "C" TCL_STORAGE_CLASS
-#else
-# define EXTERN extern TCL_STORAGE_CLASS
-#endif
-
-
-/*
- * The following code is copied from winnt.h.
- * If we don't replicate it here, then <windows.h> can't be included
- * after tcl.h, since tcl.h also defines VOID.
- * This block is skipped under Cygwin and Mingw.
- *
- *
- */
-#if defined(__WIN32__) && !defined(HAVE_WINNT_IGNORE_VOID)
-#ifndef VOID
-#define VOID void
-typedef char CHAR;
-typedef short SHORT;
-typedef long LONG;
-#endif
-#endif /* __WIN32__ && !HAVE_WINNT_IGNORE_VOID */
-
-/*
- * Macro to use instead of "void" for arguments that must have
- * type "void *" in ANSI C; maps them to type "char *" in
- * non-ANSI systems.
- */
-
-#ifndef NO_VOID
-# define VOID void
-#else
-# define VOID char
-#endif
-
-/*
- * Miscellaneous declarations.
- */
-#ifndef NULL
-# define NULL 0
-#endif
-
-#ifndef _CLIENTDATA
-# ifndef NO_VOID
- typedef void *ClientData;
-# else
- typedef int *ClientData;
-# endif
-# define _CLIENTDATA
-#endif
-
-/*
- * Define Tcl_WideInt to be a type that is (at least) 64-bits wide,
- * and define Tcl_WideUInt to be the unsigned variant of that type
- * (assuming that where we have one, we can have the other.)
- *
- * Also defines the following macros:
- * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on
- * a real 64-bit system.)
- * Tcl_WideAsLong - forgetful converter from wideInt to long.
- * Tcl_LongAsWide - sign-extending converter from long to wideInt.
- * Tcl_WideAsDouble - converter from wideInt to double.
- * Tcl_DoubleAsWide - converter from double to wideInt.
- *
- * The following invariant should hold for any long value 'longVal':
- * longVal == Tcl_WideAsLong(Tcl_LongAsWide(longVal))
- *
- * Note on converting between Tcl_WideInt and strings. This
- * implementation (in tclObj.c) depends on the functions strtoull()
- * and sprintf(...,"%" TCL_LL_MODIFIER "d",...). TCL_LL_MODIFIER_SIZE
- * is the length of the modifier string, which is "ll" on most 32-bit
- * Unix systems. It has to be split up like this to allow for the more
- * complex formats sometimes needed (e.g. in the format(n) command.)
- */
-
-#if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG)
-# if defined(__CYGWIN__)
-# define TCL_WIDE_INT_TYPE long long
-# define TCL_LL_MODIFIER "L"
-typedef struct stat Tcl_StatBuf;
-# define TCL_LL_MODIFIER_SIZE 1
-# elif defined(__WIN32__)
-# define TCL_WIDE_INT_TYPE __int64
-# ifdef __BORLANDC__
-typedef struct stati64 Tcl_StatBuf;
-# define TCL_LL_MODIFIER "L"
-# define TCL_LL_MODIFIER_SIZE 1
-# else /* __BORLANDC__ */
-typedef struct _stati64 Tcl_StatBuf;
-# define TCL_LL_MODIFIER "I64"
-# define TCL_LL_MODIFIER_SIZE 3
-# endif /* __BORLANDC__ */
-# else /* __WIN32__ */
-/*
- * Don't know what platform it is and configure hasn't discovered what
- * is going on for us. Try to guess...
- */
-# ifdef NO_LIMITS_H
-# error please define either TCL_WIDE_INT_TYPE or TCL_WIDE_INT_IS_LONG
-# else /* !NO_LIMITS_H */
-# include <limits.h>
-# if (INT_MAX < LONG_MAX)
-# define TCL_WIDE_INT_IS_LONG 1
-# else
-# define TCL_WIDE_INT_TYPE long long
-# endif
-# endif /* NO_LIMITS_H */
-# endif /* __WIN32__ */
-#endif /* !TCL_WIDE_INT_TYPE & !TCL_WIDE_INT_IS_LONG */
-#ifdef TCL_WIDE_INT_IS_LONG
-# undef TCL_WIDE_INT_TYPE
-# define TCL_WIDE_INT_TYPE long
-#endif /* TCL_WIDE_INT_IS_LONG */
-
-typedef TCL_WIDE_INT_TYPE Tcl_WideInt;
-typedef unsigned TCL_WIDE_INT_TYPE Tcl_WideUInt;
-
-#ifdef TCL_WIDE_INT_IS_LONG
-typedef struct stat Tcl_StatBuf;
-# define Tcl_WideAsLong(val) ((long)(val))
-# define Tcl_LongAsWide(val) ((long)(val))
-# define Tcl_WideAsDouble(val) ((double)((long)(val)))
-# define Tcl_DoubleAsWide(val) ((long)((double)(val)))
-# ifndef TCL_LL_MODIFIER
-# define TCL_LL_MODIFIER "l"
-# define TCL_LL_MODIFIER_SIZE 1
-# endif /* !TCL_LL_MODIFIER */
-#else /* TCL_WIDE_INT_IS_LONG */
-/*
- * The next short section of defines are only done when not running on
- * Windows or some other strange platform.
- */
-# ifndef TCL_LL_MODIFIER
-# ifdef HAVE_STRUCT_STAT64
-typedef struct stat64 Tcl_StatBuf;
-# else
-typedef struct stat Tcl_StatBuf;
-# endif /* HAVE_STRUCT_STAT64 */
-# define TCL_LL_MODIFIER "ll"
-# define TCL_LL_MODIFIER_SIZE 2
-# endif /* !TCL_LL_MODIFIER */
-# define Tcl_WideAsLong(val) ((long)((Tcl_WideInt)(val)))
-# define Tcl_LongAsWide(val) ((Tcl_WideInt)((long)(val)))
-# define Tcl_WideAsDouble(val) ((double)((Tcl_WideInt)(val)))
-# define Tcl_DoubleAsWide(val) ((Tcl_WideInt)((double)(val)))
-#endif /* TCL_WIDE_INT_IS_LONG */
-
-
-/*
- * This flag controls whether binary compatability is maintained with
- * extensions built against a previous version of Tcl. This is true
- * by default.
- */
-#ifndef TCL_PRESERVE_BINARY_COMPATABILITY
-# define TCL_PRESERVE_BINARY_COMPATABILITY 1
-#endif
-
-
-/*
- * Data structures defined opaquely in this module. The definitions below
- * just provide dummy types. A few fields are made visible in Tcl_Interp
- * structures, namely those used for returning a string result from
- * commands. Direct access to the result field is discouraged in Tcl 8.0.
- * The interpreter result is either an object or a string, and the two
- * values are kept consistent unless some C code sets interp->result
- * directly. Programmers should use either the procedure Tcl_GetObjResult()
- * or Tcl_GetStringResult() to read the interpreter's result. See the
- * SetResult man page for details.
- *
- * Note: any change to the Tcl_Interp definition below must be mirrored
- * in the "real" definition in tclInt.h.
- *
- * Note: Tcl_ObjCmdProc procedures do not directly set result and freeProc.
- * Instead, they set a Tcl_Obj member in the "real" structure that can be
- * accessed with Tcl_GetObjResult() and Tcl_SetObjResult().
- */
-
-#ifndef Tcl_Interp
-typedef struct Tcl_Interp
-#ifdef USE_TCL_STRUCT
-{
- char *result; /* If the last command returned a string
- * result, this points to it. */
- void (*freeProc) _ANSI_ARGS_((char *blockPtr));
- /* Zero means the string result is
- * statically allocated. TCL_DYNAMIC means
- * it was allocated with ckalloc and should
- * be freed with ckfree. Other values give
- * the address of procedure to invoke to
- * free the result. Tcl_Eval must free it
- * before executing next command. */
- int errorLine; /* When TCL_ERROR is returned, this gives
- * the line number within the command where
- * the error occurred (1 if first line). */
-}
-#endif
-Tcl_Interp;
-#endif
-
-typedef struct Tcl_AsyncHandler_ *Tcl_AsyncHandler;
-#ifndef Tcl_Channel
-typedef struct Tcl_Channel_ *Tcl_Channel;
-#endif
-#ifndef Tcl_Command
-typedef struct Tcl_Command_ *Tcl_Command;
-#endif
-typedef struct Tcl_Condition_ *Tcl_Condition;
-typedef struct Tcl_EncodingState_ *Tcl_EncodingState;
-typedef struct Tcl_Encoding_ *Tcl_Encoding;
-typedef struct Tcl_Event Tcl_Event;
-typedef struct Tcl_Mutex_ *Tcl_Mutex;
-typedef struct Tcl_Pid_ *Tcl_Pid;
-#ifndef Tcl_RegExp
-typedef struct Tcl_RegExp_ *Tcl_RegExp;
-#endif
-typedef struct Tcl_ThreadDataKey_ *Tcl_ThreadDataKey;
-typedef struct Tcl_ThreadId_ *Tcl_ThreadId;
-typedef struct Tcl_TimerToken_ *Tcl_TimerToken;
-typedef struct Tcl_Trace_ *Tcl_Trace;
-typedef struct Tcl_Var_ *Tcl_Var;
-typedef struct Tcl_ChannelTypeVersion_ *Tcl_ChannelTypeVersion;
-typedef struct Tcl_LoadHandle_ *Tcl_LoadHandle;
-
-/*
- * Definition of the interface to procedures implementing threads.
- * A procedure following this definition is given to each call of
- * 'Tcl_CreateThread' and will be called as the main fuction of
- * the new thread created by that call.
- */
-#ifdef MAC_TCL
-typedef pascal void *(Tcl_ThreadCreateProc) _ANSI_ARGS_((ClientData clientData));
-#elif defined __WIN32__
-typedef unsigned (__stdcall Tcl_ThreadCreateProc) _ANSI_ARGS_((ClientData clientData));
-#else
-typedef void (Tcl_ThreadCreateProc) _ANSI_ARGS_((ClientData clientData));
-#endif
-
-
-/*
- * Threading function return types used for abstracting away platform
- * differences when writing a Tcl_ThreadCreateProc. See the NewThread
- * function in generic/tclThreadTest.c for it's usage.
- */
-#ifdef MAC_TCL
-# define Tcl_ThreadCreateType pascal void *
-# define TCL_THREAD_CREATE_RETURN return NULL
-#elif defined __WIN32__
-# define Tcl_ThreadCreateType unsigned __stdcall
-# define TCL_THREAD_CREATE_RETURN return 0
-#else
-# define Tcl_ThreadCreateType void
-# define TCL_THREAD_CREATE_RETURN
-#endif
-
-
-/*
- * Definition of values for default stacksize and the possible flags to be
- * given to Tcl_CreateThread.
- */
-#define TCL_THREAD_STACK_DEFAULT (0) /* Use default size for stack */
-#define TCL_THREAD_NOFLAGS (0000) /* Standard flags, default behaviour */
-#define TCL_THREAD_JOINABLE (0001) /* Mark the thread as joinable */
-
-/*
- * Flag values passed to Tcl_GetRegExpFromObj.
- */
-#define TCL_REG_BASIC 000000 /* BREs (convenience) */
-#define TCL_REG_EXTENDED 000001 /* EREs */
-#define TCL_REG_ADVF 000002 /* advanced features in EREs */
-#define TCL_REG_ADVANCED 000003 /* AREs (which are also EREs) */
-#define TCL_REG_QUOTE 000004 /* no special characters, none */
-#define TCL_REG_NOCASE 000010 /* ignore case */
-#define TCL_REG_NOSUB 000020 /* don't care about subexpressions */
-#define TCL_REG_EXPANDED 000040 /* expanded format, white space &
- * comments */
-#define TCL_REG_NLSTOP 000100 /* \n doesn't match . or [^ ] */
-#define TCL_REG_NLANCH 000200 /* ^ matches after \n, $ before */
-#define TCL_REG_NEWLINE 000300 /* newlines are line terminators */
-#define TCL_REG_CANMATCH 001000 /* report details on partial/limited
- * matches */
-
-/*
- * The following flag is experimental and only intended for use by Expect. It
- * will probably go away in a later release.
- */
-#define TCL_REG_BOSONLY 002000 /* prepend \A to pattern so it only
- * matches at the beginning of the
- * string. */
-
-/*
- * Flags values passed to Tcl_RegExpExecObj.
- */
-#define TCL_REG_NOTBOL 0001 /* Beginning of string does not match ^. */
-#define TCL_REG_NOTEOL 0002 /* End of string does not match $. */
-
-/*
- * Structures filled in by Tcl_RegExpInfo. Note that all offset values are
- * relative to the start of the match string, not the beginning of the
- * entire string.
- */
-typedef struct Tcl_RegExpIndices {
- long start; /* character offset of first character in match */
- long end; /* character offset of first character after the
- * match. */
-} Tcl_RegExpIndices;
-
-typedef struct Tcl_RegExpInfo {
- int nsubs; /* number of subexpressions in the
- * compiled expression */
- Tcl_RegExpIndices *matches; /* array of nsubs match offset
- * pairs */
- long extendStart; /* The offset at which a subsequent
- * match might begin. */
- long reserved; /* Reserved for later use. */
-} Tcl_RegExpInfo;
-
-/*
- * Picky compilers complain if this typdef doesn't appear before the
- * struct's reference in tclDecls.h.
- */
-typedef Tcl_StatBuf *Tcl_Stat_;
-typedef struct stat *Tcl_OldStat_;
-
-/*
- * When a TCL command returns, the interpreter contains a result from the
- * command. Programmers are strongly encouraged to use one of the
- * procedures Tcl_GetObjResult() or Tcl_GetStringResult() to read the
- * interpreter's result. See the SetResult man page for details. Besides
- * this result, the command procedure returns an integer code, which is
- * one of the following:
- *
- * TCL_OK Command completed normally; the interpreter's
- * result contains the command's result.
- * TCL_ERROR The command couldn't be completed successfully;
- * the interpreter's result describes what went wrong.
- * TCL_RETURN The command requests that the current procedure
- * return; the interpreter's result contains the
- * procedure's return value.
- * TCL_BREAK The command requests that the innermost loop
- * be exited; the interpreter's result is meaningless.
- * TCL_CONTINUE Go on to the next iteration of the current loop;
- * the interpreter's result is meaningless.
- */
-#define TCL_OK 0
-#define TCL_ERROR 1
-#define TCL_RETURN 2
-#define TCL_BREAK 3
-#define TCL_CONTINUE 4
-
-#define TCL_RESULT_SIZE 200
-
-/*
- * Flags to control what substitutions are performed by Tcl_SubstObj():
- */
-#define TCL_SUBST_COMMANDS 001
-#define TCL_SUBST_VARIABLES 002
-#define TCL_SUBST_BACKSLASHES 004
-#define TCL_SUBST_ALL 007
-
-
-/*
- * Argument descriptors for math function callbacks in expressions:
- */
-typedef enum {
- TCL_INT, TCL_DOUBLE, TCL_EITHER, TCL_WIDE_INT
-} Tcl_ValueType;
-typedef struct Tcl_Value {
- Tcl_ValueType type; /* Indicates intValue or doubleValue is
- * valid, or both. */
- long intValue; /* Integer value. */
- double doubleValue; /* Double-precision floating value. */
- Tcl_WideInt wideValue; /* Wide (min. 64-bit) integer value. */
-} Tcl_Value;
-
-/*
- * Forward declaration of Tcl_Obj to prevent an error when the forward
- * reference to Tcl_Obj is encountered in the procedure types declared
- * below.
- */
-#ifndef Tcl_Obj
-typedef struct Tcl_Obj Tcl_Obj;
-#endif
-
-/*
- * Procedure types defined by Tcl:
- */
-
-typedef int (Tcl_AppInitProc) _ANSI_ARGS_((Tcl_Interp *interp));
-typedef int (Tcl_AsyncProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int code));
-typedef void (Tcl_ChannelProc) _ANSI_ARGS_((ClientData clientData, int mask));
-typedef void (Tcl_CloseProc) _ANSI_ARGS_((ClientData data));
-typedef void (Tcl_CmdDeleteProc) _ANSI_ARGS_((ClientData clientData));
-typedef int (Tcl_CmdProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, CONST84 char *argv[]));
-typedef void (Tcl_CmdTraceProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int level, char *command, Tcl_CmdProc *proc,
- ClientData cmdClientData, int argc, CONST84 char *argv[]));
-typedef int (Tcl_CmdObjTraceProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int level, CONST char *command,
- Tcl_Command commandInfo, int objc, Tcl_Obj * CONST * objv));
-typedef void (Tcl_CmdObjTraceDeleteProc) _ANSI_ARGS_((ClientData clientData));
-typedef void (Tcl_DupInternalRepProc) _ANSI_ARGS_((Tcl_Obj *srcPtr,
- Tcl_Obj *dupPtr));
-typedef int (Tcl_EncodingConvertProc)_ANSI_ARGS_((ClientData clientData,
- CONST char *src, int srcLen, int flags, Tcl_EncodingState *statePtr,
- char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr,
- int *dstCharsPtr));
-typedef void (Tcl_EncodingFreeProc)_ANSI_ARGS_((ClientData clientData));
-typedef int (Tcl_EventProc) _ANSI_ARGS_((Tcl_Event *evPtr, int flags));
-typedef void (Tcl_EventCheckProc) _ANSI_ARGS_((ClientData clientData,
- int flags));
-typedef int (Tcl_EventDeleteProc) _ANSI_ARGS_((Tcl_Event *evPtr,
- ClientData clientData));
-typedef void (Tcl_EventSetupProc) _ANSI_ARGS_((ClientData clientData,
- int flags));
-typedef void (Tcl_ExitProc) _ANSI_ARGS_((ClientData clientData));
-typedef void (Tcl_FileProc) _ANSI_ARGS_((ClientData clientData, int mask));
-typedef void (Tcl_FileFreeProc) _ANSI_ARGS_((ClientData clientData));
-typedef void (Tcl_FreeInternalRepProc) _ANSI_ARGS_((Tcl_Obj *objPtr));
-typedef void (Tcl_FreeProc) _ANSI_ARGS_((char *blockPtr));
-typedef void (Tcl_IdleProc) _ANSI_ARGS_((ClientData clientData));
-typedef void (Tcl_InterpDeleteProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp));
-typedef int (Tcl_MathProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, Tcl_Value *args, Tcl_Value *resultPtr));
-typedef void (Tcl_NamespaceDeleteProc) _ANSI_ARGS_((ClientData clientData));
-typedef int (Tcl_ObjCmdProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj * CONST * objv));
-typedef int (Tcl_PackageInitProc) _ANSI_ARGS_((Tcl_Interp *interp));
-typedef void (Tcl_PanicProc) _ANSI_ARGS_(TCL_VARARGS(CONST char *, format));
-typedef void (Tcl_TcpAcceptProc) _ANSI_ARGS_((ClientData callbackData,
- Tcl_Channel chan, char *address, int port));
-typedef void (Tcl_TimerProc) _ANSI_ARGS_((ClientData clientData));
-typedef int (Tcl_SetFromAnyProc) _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Obj *objPtr));
-typedef void (Tcl_UpdateStringProc) _ANSI_ARGS_((Tcl_Obj *objPtr));
-typedef char *(Tcl_VarTraceProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, CONST84 char *part1, CONST84 char *part2, int flags));
-typedef void (Tcl_CommandTraceProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, CONST char *oldName, CONST char *newName,
- int flags));
-typedef void (Tcl_CreateFileHandlerProc) _ANSI_ARGS_((int fd, int mask,
- Tcl_FileProc *proc, ClientData clientData));
-typedef void (Tcl_DeleteFileHandlerProc) _ANSI_ARGS_((int fd));
-typedef void (Tcl_AlertNotifierProc) _ANSI_ARGS_((ClientData clientData));
-typedef void (Tcl_ServiceModeHookProc) _ANSI_ARGS_((int mode));
-typedef ClientData (Tcl_InitNotifierProc) _ANSI_ARGS_((VOID));
-typedef void (Tcl_FinalizeNotifierProc) _ANSI_ARGS_((ClientData clientData));
-typedef void (Tcl_MainLoopProc) _ANSI_ARGS_((void));
-
-
-/*
- * The following structure represents a type of object, which is a
- * particular internal representation for an object plus a set of
- * procedures that provide standard operations on objects of that type.
- */
-
-typedef struct Tcl_ObjType
-{
- char *name; /* Name of the type, e.g. "int". */
- Tcl_FreeInternalRepProc *freeIntRepProc;
- /* Called to free any storage for the type's
- * internal rep. NULL if the internal rep
- * does not need freeing. */
- Tcl_DupInternalRepProc *dupIntRepProc;
- /* Called to create a new object as a copy
- * of an existing object. */
- Tcl_UpdateStringProc *updateStringProc;
- /* Called to update the string rep from the
- * type's internal representation. */
- Tcl_SetFromAnyProc *setFromAnyProc;
- /* Called to convert the object's internal
- * rep to this type. Frees the internal rep
- * of the old type. Returns TCL_ERROR on
- * failure. */
-}
-Tcl_ObjType;
-
-
-/*
- * One of the following structures exists for each object in the Tcl
- * system. An object stores a value as either a string, some internal
- * representation, or both.
- */
-
-#ifndef Tcl_Obj
-#ifdef USE_TCL_STRUCT
-struct Tcl_Obj {
- int refCount; /* When 0 the object will be freed. */
- char *bytes; /* This points to the first byte of the
- * object's string representation. The array
- * must be followed by a null byte (i.e., at
- * offset length) but may also contain
- * embedded null characters. The array's
- * storage is allocated by ckalloc. NULL
- * means the string rep is invalid and must
- * be regenerated from the internal rep.
- * Clients should use Tcl_GetStringFromObj
- * or Tcl_GetString to get a pointer to the
- * byte array as a readonly value. */
- int length; /* The number of bytes at *bytes, not
- * including the terminating null. */
- Tcl_ObjType *typePtr; /* Denotes the object's type. Always
- * corresponds to the type of the object's
- * internal rep. NULL indicates the object
- * has no internal rep (has no type). */
- union { /* The internal representation: */
- long longValue; /* - an long integer value */
- double doubleValue; /* - a double-precision floating value */
- VOID *otherValuePtr; /* - another, type-specific value */
- Tcl_WideInt wideValue; /* - a long long value */
- struct { /* - internal rep as two pointers */
- VOID *ptr1;
- VOID *ptr2;
- } twoPtrValue;
- } internalRep;
-};
-
-#define TclObjInternal(o) (&((o)->internalRep))
-#define TclObjGetType(o) ((o)->typePtr)
-#define TclObjSetType(o,t) ((o)->typePtr = (t))
-#define TclObjLength(o) ((o)->length)
-
-#endif
-#endif
-
-#ifndef USE_TCL_STRUCT
-typedef union { /* The internal representation: */
- long longValue; /* - an long integer value */
- double doubleValue; /* - a double-precision floating value */
- VOID *otherValuePtr; /* - another, type-specific value */
- struct { /* - internal rep as two pointers */
- VOID *ptr1;
- VOID *ptr2;
- } twoPtrValue;
-} Tcl_InternalRep;
-#endif
-
-#ifndef TclObjGetType
-EXTERN Tcl_ObjType * TclObjGetType _ANSI_ARGS_((Tcl_Obj *objPtr));
-#endif
-#ifndef TclObjLength
-EXTERN int TclObjLength _ANSI_ARGS_((Tcl_Obj *objPtr));
-#endif
-#ifndef TclObjSetType
-EXTERN void TclObjSetType _ANSI_ARGS_((Tcl_Obj *objPtr,Tcl_ObjType *newType));
-#endif
-#ifndef TclObjInternal
-EXTERN Tcl_InternalRep * TclObjInternal _ANSI_ARGS_((Tcl_Obj *objPtr));
-#endif
-
-
-/*
- * Macros to increment and decrement a Tcl_Obj's reference count, and to
- * test whether an object is shared (i.e. has reference count > 1).
- * Note: clients should use Tcl_DecrRefCount() when they are finished using
- * an object, and should never call TclFreeObj() directly. TclFreeObj() is
- * only defined and made public in tcl.h to support Tcl_DecrRefCount's macro
- * definition. Note also that Tcl_DecrRefCount() refers to the parameter
- * "obj" twice. This means that you should avoid calling it with an
- * expression that is expensive to compute or has side effects.
- */
-
-EXTERN void Tcl_IncrRefCount _ANSI_ARGS_((Tcl_Obj *objPtr));
-EXTERN void Tcl_DecrRefCount _ANSI_ARGS_((Tcl_Obj *objPtr));
-EXTERN int Tcl_IsShared _ANSI_ARGS_((Tcl_Obj *objPtr));
-
-#ifdef USE_TCL_STRUCT
-#ifdef TCL_MEM_DEBUG
-# define Tcl_IncrRefCount(objPtr) \
- Tcl_DbIncrRefCount(objPtr, __FILE__, __LINE__)
-# define Tcl_DecrRefCount(objPtr) \
- Tcl_DbDecrRefCount(objPtr, __FILE__, __LINE__)
-# define Tcl_IsShared(objPtr) \
- Tcl_DbIsShared(objPtr, __FILE__, __LINE__)
-#else
-# define Tcl_IncrRefCount(objPtr) \
- ++(objPtr)->refCount
-# define Tcl_DecrRefCount(objPtr) \
- if (--(objPtr)->refCount <= 0) TclFreeObj(objPtr)
-# define Tcl_IsShared(objPtr) \
- ((objPtr)->refCount > 1)
-#endif
-#endif
-
-/*
- * Macros and definitions that help to debug the use of Tcl objects.
- * When TCL_MEM_DEBUG is defined, the Tcl_New declarations are
- * overridden to call debugging versions of the object creation procedures.
- */
-
-#ifndef _LANG
-#ifdef TCL_MEM_DEBUG
-# define Tcl_NewBooleanObj(val) \
- Tcl_DbNewBooleanObj(val, __FILE__, __LINE__)
-# define Tcl_NewByteArrayObj(bytes, len) \
- Tcl_DbNewByteArrayObj(bytes, len, __FILE__, __LINE__)
-# define Tcl_NewDoubleObj(val) \
- Tcl_DbNewDoubleObj(val, __FILE__, __LINE__)
-# define Tcl_NewIntObj(val) \
- Tcl_DbNewLongObj(val, __FILE__, __LINE__)
-# define Tcl_NewListObj(objc, objv) \
- Tcl_DbNewListObj(objc, objv, __FILE__, __LINE__)
-# define Tcl_NewLongObj(val) \
- Tcl_DbNewLongObj(val, __FILE__, __LINE__)
-# define Tcl_NewObj() \
- Tcl_DbNewObj(__FILE__, __LINE__)
-# define Tcl_NewStringObj(bytes, len) \
- Tcl_DbNewStringObj(bytes, len, __FILE__, __LINE__)
-# define Tcl_NewWideIntObj(val) \
- Tcl_DbNewWideIntObj(val, __FILE__, __LINE__)
-#endif /* TCL_MEM_DEBUG */
-#endif
-
-
-/*
- * The following structure contains the state needed by
- * Tcl_SaveResult. No-one outside of Tcl should access any of these
- * fields. This structure is typically allocated on the stack.
- */
-typedef struct Tcl_SavedResult
-#ifdef USE_TCL_STRUCT
-{
- char *result;
- Tcl_FreeProc *freeProc;
- Tcl_Obj *objResultPtr;
- char *appendResult;
- int appendAvl;
- int appendUsed;
- char resultSpace[TCL_RESULT_SIZE+1];
-}
-#endif
-Tcl_SavedResult;
-
-
-/*
- * The following definitions support Tcl's namespace facility.
- * Note: the first five fields must match exactly the fields in a
- * Namespace structure (see tclInt.h).
- */
-
-typedef struct Tcl_Namespace
-#ifdef USE_TCL_STRUCT
-{
- char *name; /* The namespace's name within its parent
- * namespace. This contains no ::'s. The
- * name of the global namespace is ""
- * although "::" is an synonym. */
- char *fullName; /* The namespace's fully qualified name.
- * This starts with ::. */
- ClientData clientData; /* Arbitrary value associated with this
- * namespace. */
- Tcl_NamespaceDeleteProc* deleteProc;
- /* Procedure invoked when deleting the
- * namespace to, e.g., free clientData. */
- struct Tcl_Namespace* parentPtr;
- /* Points to the namespace that contains
- * this one. NULL if this is the global
- * namespace. */
-}
-#endif
-Tcl_Namespace;
-
-
-/*
- * The following structure represents a call frame, or activation record.
- * A call frame defines a naming context for a procedure call: its local
- * scope (for local variables) and its namespace scope (used for non-local
- * variables; often the global :: namespace). A call frame can also define
- * the naming context for a namespace eval or namespace inscope command:
- * the namespace in which the command's code should execute. The
- * Tcl_CallFrame structures exist only while procedures or namespace
- * eval/inscope's are being executed, and provide a Tcl call stack.
- *
- * A call frame is initialized and pushed using Tcl_PushCallFrame and
- * popped using Tcl_PopCallFrame. Storage for a Tcl_CallFrame must be
- * provided by the Tcl_PushCallFrame caller, and callers typically allocate
- * them on the C call stack for efficiency. For this reason, Tcl_CallFrame
- * is defined as a structure and not as an opaque token. However, most
- * Tcl_CallFrame fields are hidden since applications should not access
- * them directly; others are declared as "dummyX".
- *
- * WARNING!! The structure definition must be kept consistent with the
- * CallFrame structure in tclInt.h. If you change one, change the other.
- */
-
-typedef struct Tcl_CallFrame
-#ifdef USE_TCL_STRUCT
-{
- Tcl_Namespace *nsPtr;
- int dummy1;
- int dummy2;
- char *dummy3;
- char *dummy4;
- char *dummy5;
- int dummy6;
- char *dummy7;
- char *dummy8;
- int dummy9;
- char* dummy10;
-}
-#endif
-Tcl_CallFrame;
-
-
-/*
- * Information about commands that is returned by Tcl_GetCommandInfo and
- * passed to Tcl_SetCommandInfo. objProc is an objc/objv object-based
- * command procedure while proc is a traditional Tcl argc/argv
- * string-based procedure. Tcl_CreateObjCommand and Tcl_CreateCommand
- * ensure that both objProc and proc are non-NULL and can be called to
- * execute the command. However, it may be faster to call one instead of
- * the other. The member isNativeObjectProc is set to 1 if an
- * object-based procedure was registered by Tcl_CreateObjCommand, and to
- * 0 if a string-based procedure was registered by Tcl_CreateCommand.
- * The other procedure is typically set to a compatibility wrapper that
- * does string-to-object or object-to-string argument conversions then
- * calls the other procedure.
- */
-
-typedef struct Tcl_CmdInfo {
- int isNativeObjectProc; /* 1 if objProc was registered by a call to
- * Tcl_CreateObjCommand; 0 otherwise.
- * Tcl_SetCmdInfo does not modify this
- * field. */
- Tcl_ObjCmdProc *objProc; /* Command's object-based procedure. */
- ClientData objClientData; /* ClientData for object proc. */
- Tcl_CmdProc *proc; /* Command's string-based procedure. */
- ClientData clientData; /* ClientData for string proc. */
- Tcl_CmdDeleteProc *deleteProc;
- /* Procedure to call when command is
- * deleted. */
- ClientData deleteData; /* Value to pass to deleteProc (usually
- * the same as clientData). */
- Tcl_Namespace *namespacePtr; /* Points to the namespace that contains
- * this command. Note that Tcl_SetCmdInfo
- * will not change a command's namespace;
- * use Tcl_RenameCommand to do that. */
-
-} Tcl_CmdInfo;
-
-/*
- * The structure defined below is used to hold dynamic strings. The only
- * field that clients should use is the string field, accessible via the
- * macro Tcl_DStringValue.
- */
-
-#ifndef Tcl_DString
-#define TCL_DSTRING_STATIC_SIZE 200
-#ifdef USE_TCL_STRUCT
-typedef struct Tcl_DString {
- char *string; /* Points to beginning of string: either
- * staticSpace below or a malloced array. */
- int length; /* Number of non-NULL characters in the
- * string. */
- int spaceAvl; /* Total number of bytes available for the
- * string and its terminating NULL char. */
- char staticSpace[TCL_DSTRING_STATIC_SIZE];
- /* Space to use in common case where string
- * is small. */
-} Tcl_DString;
-#else
-typedef Tcl_Obj *Tcl_DString;
-#endif
-#endif
-
-#ifdef USE_TCL_STRUCT
-#define Tcl_DStringLength(dsPtr) ((dsPtr)->length)
-#define Tcl_DStringValue(dsPtr) ((dsPtr)->string)
-#endif
-#define Tcl_DStringTrunc Tcl_DStringSetLength
-
-/*
- * Definitions for the maximum number of digits of precision that may
- * be specified in the "tcl_precision" variable, and the number of
- * bytes of buffer space required by Tcl_PrintDouble.
- */
-#define TCL_MAX_PREC 17
-#define TCL_DOUBLE_SPACE (TCL_MAX_PREC+10)
-
-/*
- * Definition for a number of bytes of buffer space sufficient to hold the
- * string representation of an integer in base 10 (assuming the existence
- * of 64-bit integers).
- */
-#define TCL_INTEGER_SPACE 24
-
-/*
- * Flag that may be passed to Tcl_ConvertElement to force it not to
- * output braces (careful! if you change this flag be sure to change
- * the definitions at the front of tclUtil.c).
- */
-#define TCL_DONT_USE_BRACES 1
-
-/*
- * Flag that may be passed to Tcl_GetIndexFromObj to force it to disallow
- * abbreviated strings.
- */
-#define TCL_EXACT 1
-
-/*
- * Flag values passed to Tcl_RecordAndEval and/or Tcl_EvalObj.
- * WARNING: these bit choices must not conflict with the bit choices
- * for evalFlag bits in tclInt.h!!
- */
-#define TCL_NO_EVAL 0x10000
-#define TCL_EVAL_GLOBAL 0x20000
-#define TCL_EVAL_DIRECT 0x40000
-#define TCL_EVAL_INVOKE 0x80000
-
-/*
- * Special freeProc values that may be passed to Tcl_SetResult (see
- * the man page for details):
- */
-#define TCL_VOLATILE ((Tcl_FreeProc *) 1)
-#define TCL_STATIC ((Tcl_FreeProc *) 0)
-#define TCL_DYNAMIC ((Tcl_FreeProc *) 3)
-
-/*
- * Flag values passed to variable-related procedures.
- */
-#define TCL_GLOBAL_ONLY 1
-#define TCL_NAMESPACE_ONLY 2
-#define TCL_APPEND_VALUE 4
-#define TCL_LIST_ELEMENT 8
-#define TCL_TRACE_READS 0x10
-#define TCL_TRACE_WRITES 0x20
-#define TCL_TRACE_UNSETS 0x40
-#define TCL_TRACE_DESTROYED 0x80
-#define TCL_INTERP_DESTROYED 0x100
-#define TCL_LEAVE_ERR_MSG 0x200
-#define TCL_TRACE_ARRAY 0x800
-#ifndef TCL_REMOVE_OBSOLETE_TRACES
-/* Required to support old variable/vdelete/vinfo traces */
-#define TCL_TRACE_OLD_STYLE 0x1000
-#endif
-/* Indicate the semantics of the result of a trace */
-#define TCL_TRACE_RESULT_DYNAMIC 0x8000
-#define TCL_TRACE_RESULT_OBJECT 0x10000
-
-/*
- * Flag values passed to command-related procedures.
- */
-
-#define TCL_TRACE_RENAME 0x2000
-#define TCL_TRACE_DELETE 0x4000
-
-#define TCL_ALLOW_INLINE_COMPILATION 0x20000
-
-/*
- * Flag values passed to Tcl_CreateObjTrace, and used internally
- * by command execution traces. Slots 4,8,16 and 32 are
- * used internally by execution traces (see tclCmdMZ.c)
- */
-#define TCL_TRACE_ENTER_EXEC 1
-#define TCL_TRACE_LEAVE_EXEC 2
-
-/*
- * The TCL_PARSE_PART1 flag is deprecated and has no effect.
- * The part1 is now always parsed whenever the part2 is NULL.
- * (This is to avoid a common error when converting code to
- * use the new object based APIs and forgetting to give the
- * flag)
- */
-#ifndef TCL_NO_DEPRECATED
-# define TCL_PARSE_PART1 0x400
-#endif
-
-
-/*
- * Types for linked variables:
- */
-#define TCL_LINK_INT 1
-#define TCL_LINK_DOUBLE 2
-#define TCL_LINK_BOOLEAN 3
-#define TCL_LINK_STRING 4
-#define TCL_LINK_WIDE_INT 5
-#define TCL_LINK_READ_ONLY 0x80
-
-
-/*
- * Forward declarations of Tcl_HashTable and related types.
- */
-typedef struct Tcl_HashKeyType Tcl_HashKeyType;
-typedef struct Tcl_HashTable Tcl_HashTable;
-typedef struct Tcl_HashEntry Tcl_HashEntry;
-
-typedef unsigned int (Tcl_HashKeyProc) _ANSI_ARGS_((Tcl_HashTable *tablePtr,
- VOID *keyPtr));
-typedef int (Tcl_CompareHashKeysProc) _ANSI_ARGS_((VOID *keyPtr,
- Tcl_HashEntry *hPtr));
-typedef Tcl_HashEntry *(Tcl_AllocHashEntryProc) _ANSI_ARGS_((
- Tcl_HashTable *tablePtr, VOID *keyPtr));
-typedef void (Tcl_FreeHashEntryProc) _ANSI_ARGS_((Tcl_HashEntry *hPtr));
-
-/*
- * This flag controls whether the hash table stores the hash of a key, or
- * recalculates it. There should be no reason for turning this flag off
- * as it is completely binary and source compatible unless you directly
- * access the bucketPtr member of the Tcl_HashTableEntry structure. This
- * member has been removed and the space used to store the hash value.
- */
-#ifndef TCL_HASH_KEY_STORE_HASH
-# define TCL_HASH_KEY_STORE_HASH 1
-#endif
-
-/*
- * Structure definition for an entry in a hash table. No-one outside
- * Tcl should access any of these fields directly; use the macros
- * defined below.
- */
-
-struct Tcl_HashEntry {
- Tcl_HashEntry *nextPtr; /* Pointer to next entry in this
- * hash bucket, or NULL for end of
- * chain. */
- Tcl_HashTable *tablePtr; /* Pointer to table containing entry. */
-#if TCL_HASH_KEY_STORE_HASH
-# if TCL_PRESERVE_BINARY_COMPATABILITY
- VOID *hash; /* Hash value, stored as pointer to
- * ensure that the offsets of the
- * fields in this structure are not
- * changed. */
-# else
- unsigned int hash; /* Hash value. */
-# endif
-#else
- Tcl_HashEntry **bucketPtr; /* Pointer to bucket that points to
- * first entry in this entry's chain:
- * used for deleting the entry. */
-#endif
- ClientData clientData; /* Application stores something here
- * with Tcl_SetHashValue. */
- union { /* Key has one of these forms: */
- char *oneWordValue; /* One-word value for key. */
- Tcl_Obj *objPtr; /* Tcl_Obj * key value. */
- int words[1]; /* Multiple integer words for key.
- * The actual size will be as large
- * as necessary for this table's
- * keys. */
- char string[4]; /* String for key. The actual size
- * will be as large as needed to hold
- * the key. */
- } key; /* MUST BE LAST FIELD IN RECORD!! */
-};
-
-/*
- * Flags used in Tcl_HashKeyType.
- *
- * TCL_HASH_KEY_RANDOMIZE_HASH:
- * There are some things, pointers for example
- * which don't hash well because they do not use
- * the lower bits. If this flag is set then the
- * hash table will attempt to rectify this by
- * randomising the bits and then using the upper
- * N bits as the index into the table.
- */
-#define TCL_HASH_KEY_RANDOMIZE_HASH 0x1
-
-/*
- * Structure definition for the methods associated with a hash table
- * key type.
- */
-#define TCL_HASH_KEY_TYPE_VERSION 1
-struct Tcl_HashKeyType {
- int version; /* Version of the table. If this structure is
- * extended in future then the version can be
- * used to distinguish between different
- * structures.
- */
-
- int flags; /* Flags, see above for details. */
-
- /* Calculates a hash value for the key. If this is NULL then the pointer
- * itself is used as a hash value.
- */
- Tcl_HashKeyProc *hashKeyProc;
-
- /* Compares two keys and returns zero if they do not match, and non-zero
- * if they do. If this is NULL then the pointers are compared.
- */
- Tcl_CompareHashKeysProc *compareKeysProc;
-
- /* Called to allocate memory for a new entry, i.e. if the key is a
- * string then this could allocate a single block which contains enough
- * space for both the entry and the string. Only the key field of the
- * allocated Tcl_HashEntry structure needs to be filled in. If something
- * else needs to be done to the key, i.e. incrementing a reference count
- * then that should be done by this function. If this is NULL then Tcl_Alloc
- * is used to allocate enough space for a Tcl_HashEntry and the key pointer
- * is assigned to key.oneWordValue.
- */
- Tcl_AllocHashEntryProc *allocEntryProc;
-
- /* Called to free memory associated with an entry. If something else needs
- * to be done to the key, i.e. decrementing a reference count then that
- * should be done by this function. If this is NULL then Tcl_Free is used
- * to free the Tcl_HashEntry.
- */
- Tcl_FreeHashEntryProc *freeEntryProc;
-};
-
-/*
- * Structure definition for a hash table. Must be in tcl.h so clients
- * can allocate space for these structures, but clients should never
- * access any fields in this structure.
- */
-
-#define TCL_SMALL_HASH_TABLE 4
-struct Tcl_HashTable {
- Tcl_HashEntry **buckets; /* Pointer to bucket array. Each
- * element points to first entry in
- * bucket's hash chain, or NULL. */
- Tcl_HashEntry *staticBuckets[TCL_SMALL_HASH_TABLE];
- /* Bucket array used for small tables
- * (to avoid mallocs and frees). */
- int numBuckets; /* Total number of buckets allocated
- * at **bucketPtr. */
- int numEntries; /* Total number of entries present
- * in table. */
- int rebuildSize; /* Enlarge table when numEntries gets
- * to be this large. */
- int downShift; /* Shift count used in hashing
- * function. Designed to use high-
- * order bits of randomized keys. */
- int mask; /* Mask value used in hashing
- * function. */
- int keyType; /* Type of keys used in this table.
- * It's either TCL_CUSTOM_KEYS,
- * TCL_STRING_KEYS, TCL_ONE_WORD_KEYS,
- * or an integer giving the number of
- * ints that is the size of the key.
- */
-#if TCL_PRESERVE_BINARY_COMPATABILITY
- Tcl_HashEntry *(*findProc) _ANSI_ARGS_((Tcl_HashTable *tablePtr,
- CONST char *key));
- Tcl_HashEntry *(*createProc) _ANSI_ARGS_((Tcl_HashTable *tablePtr,
- CONST char *key, int *newPtr));
-#endif
- Tcl_HashKeyType *typePtr; /* Type of the keys used in the
- * Tcl_HashTable. */
-};
-
-/*
- * Structure definition for information used to keep track of searches
- * through hash tables:
- */
-
-typedef struct Tcl_HashSearch {
- Tcl_HashTable *tablePtr; /* Table being searched. */
- int nextIndex; /* Index of next bucket to be
- * enumerated after present one. */
- Tcl_HashEntry *nextEntryPtr; /* Next entry to be enumerated in the
- * the current bucket. */
-} Tcl_HashSearch;
-
-/*
- * Acceptable key types for hash tables:
- *
- * TCL_STRING_KEYS: The keys are strings, they are copied into
- * the entry.
- * TCL_ONE_WORD_KEYS: The keys are pointers, the pointer is stored
- * in the entry.
- * TCL_CUSTOM_TYPE_KEYS: The keys are arbitrary types which are copied
- * into the entry.
- * TCL_CUSTOM_PTR_KEYS: The keys are pointers to arbitrary types, the
- * pointer is stored in the entry.
- *
- * While maintaining binary compatability the above have to be distinct
- * values as they are used to differentiate between old versions of the
- * hash table which don't have a typePtr and new ones which do. Once binary
- * compatability is discarded in favour of making more wide spread changes
- * TCL_STRING_KEYS can be the same as TCL_CUSTOM_TYPE_KEYS, and
- * TCL_ONE_WORD_KEYS can be the same as TCL_CUSTOM_PTR_KEYS because they
- * simply determine how the key is accessed from the entry and not the
- * behaviour.
- */
-
-#define TCL_STRING_KEYS 0
-#define TCL_ONE_WORD_KEYS 1
-
-#if TCL_PRESERVE_BINARY_COMPATABILITY
-# define TCL_CUSTOM_TYPE_KEYS -2
-# define TCL_CUSTOM_PTR_KEYS -1
-#else
-# define TCL_CUSTOM_TYPE_KEYS TCL_STRING_KEYS
-# define TCL_CUSTOM_PTR_KEYS TCL_ONE_WORD_KEYS
-#endif
-
-/*
- * Macros for clients to use to access fields of hash entries:
- */
-
-#define Tcl_GetHashValue(h) ((h)->clientData)
-#define Tcl_SetHashValue(h, value) ((h)->clientData = (ClientData) (value))
-#if TCL_PRESERVE_BINARY_COMPATABILITY
-# define Tcl_GetHashKey(tablePtr, h) \
- ((char *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS || \
- (tablePtr)->keyType == TCL_CUSTOM_PTR_KEYS) \
- ? (h)->key.oneWordValue \
- : (h)->key.string))
-#else
-# define Tcl_GetHashKey(tablePtr, h) \
- ((char *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS) \
- ? (h)->key.oneWordValue \
- : (h)->key.string))
-#endif
-
-/*
- * Macros to use for clients to use to invoke find and create procedures
- * for hash tables:
- */
-
-#if TCL_PRESERVE_BINARY_COMPATABILITY
-# define Tcl_FindHashEntry(tablePtr, key) \
- (*((tablePtr)->findProc))(tablePtr, key)
-# define Tcl_CreateHashEntry(tablePtr, key, newPtr) \
- (*((tablePtr)->createProc))(tablePtr, key, newPtr)
-#else /* !TCL_PRESERVE_BINARY_COMPATABILITY */
-/*
- * Macro to use new extended version of Tcl_InitHashTable.
- */
-# define Tcl_InitHashTable(tablePtr, keyType) \
- Tcl_InitHashTableEx(tablePtr, keyType, NULL)
-#endif /* TCL_PRESERVE_BINARY_COMPATABILITY */
-
-
-/*
- * Flag values to pass to Tcl_DoOneEvent to disable searches
- * for some kinds of events:
- */
-#define TCL_DONT_WAIT (1<<1)
-#define TCL_WINDOW_EVENTS (1<<2)
-#define TCL_FILE_EVENTS (1<<3)
-#define TCL_TIMER_EVENTS (1<<4)
-#define TCL_IDLE_EVENTS (1<<5) /* WAS 0x10 ???? */
-#define TCL_ALL_EVENTS (~TCL_DONT_WAIT)
-
-/*
- * The following structure defines a generic event for the Tcl event
- * system. These are the things that are queued in calls to Tcl_QueueEvent
- * and serviced later by Tcl_DoOneEvent. There can be many different
- * kinds of events with different fields, corresponding to window events,
- * timer events, etc. The structure for a particular event consists of
- * a Tcl_Event header followed by additional information specific to that
- * event.
- */
-struct Tcl_Event {
- Tcl_EventProc *proc; /* Procedure to call to service this event. */
- struct Tcl_Event *nextPtr; /* Next in list of pending events, or NULL. */
-};
-
-/*
- * Positions to pass to Tcl_QueueEvent:
- */
-typedef enum {
- TCL_QUEUE_TAIL, TCL_QUEUE_HEAD, TCL_QUEUE_MARK
-} Tcl_QueuePosition;
-
-/*
- * Values to pass to Tcl_SetServiceMode to specify the behavior of notifier
- * event routines.
- */
-#define TCL_SERVICE_NONE 0
-#define TCL_SERVICE_ALL 1
-
-
-/*
- * The following structure keeps is used to hold a time value, either as
- * an absolute time (the number of seconds from the epoch) or as an
- * elapsed time. On Unix systems the epoch is Midnight Jan 1, 1970 GMT.
- * On Macintosh systems the epoch is Midnight Jan 1, 1904 GMT.
- */
-typedef struct Tcl_Time {
- long sec; /* Seconds. */
- long usec; /* Microseconds. */
-} Tcl_Time;
-
-typedef void (Tcl_SetTimerProc) _ANSI_ARGS_((Tcl_Time *timePtr));
-typedef int (Tcl_WaitForEventProc) _ANSI_ARGS_((Tcl_Time *timePtr));
-
-
-/*
- * Bits to pass to Tcl_CreateFileHandler and Tcl_CreateChannelHandler
- * to indicate what sorts of events are of interest:
- */
-#define TCL_READABLE (1<<1)
-#define TCL_WRITABLE (1<<2)
-#define TCL_EXCEPTION (1<<3)
-
-/*
- * Flag values to pass to Tcl_OpenCommandChannel to indicate the
- * disposition of the stdio handles. TCL_STDIN, TCL_STDOUT, TCL_STDERR,
- * are also used in Tcl_GetStdChannel.
- */
-#define TCL_STDIN (1<<1)
-#define TCL_STDOUT (1<<2)
-#define TCL_STDERR (1<<3)
-#define TCL_ENFORCE_MODE (1<<4)
-
-/*
- * Bits passed to Tcl_DriverClose2Proc to indicate which side of a channel
- * should be closed.
- */
-#define TCL_CLOSE_READ (1<<1)
-#define TCL_CLOSE_WRITE (1<<2)
-
-/*
- * Value to use as the closeProc for a channel that supports the
- * close2Proc interface.
- */
-#define TCL_CLOSE2PROC ((Tcl_DriverCloseProc *)1)
-
-/*
- * Channel version tag. This was introduced in 8.3.2/8.4.
- */
-#define TCL_CHANNEL_VERSION_1 ((Tcl_ChannelTypeVersion) 0x1)
-#define TCL_CHANNEL_VERSION_2 ((Tcl_ChannelTypeVersion) 0x2)
-#define TCL_CHANNEL_VERSION_3 ((Tcl_ChannelTypeVersion) 0x3)
-
-/*
- * Typedefs for the various operations in a channel type:
- */
-typedef int (Tcl_DriverBlockModeProc) _ANSI_ARGS_((
- ClientData instanceData, int mode));
-typedef int (Tcl_DriverCloseProc) _ANSI_ARGS_((ClientData instanceData,
- Tcl_Interp *interp));
-typedef int (Tcl_DriverClose2Proc) _ANSI_ARGS_((ClientData instanceData,
- Tcl_Interp *interp, int flags));
-typedef int (Tcl_DriverInputProc) _ANSI_ARGS_((ClientData instanceData,
- char *buf, int toRead, int *errorCodePtr));
-typedef int (Tcl_DriverOutputProc) _ANSI_ARGS_((ClientData instanceData,
- CONST84 char *buf, int toWrite, int *errorCodePtr));
-typedef int (Tcl_DriverSeekProc) _ANSI_ARGS_((ClientData instanceData,
- long offset, int mode, int *errorCodePtr));
-typedef int (Tcl_DriverSetOptionProc) _ANSI_ARGS_((
- ClientData instanceData, Tcl_Interp *interp,
- CONST char *optionName, CONST char *value));
-typedef int (Tcl_DriverGetOptionProc) _ANSI_ARGS_((
- ClientData instanceData, Tcl_Interp *interp,
- CONST84 char *optionName, Tcl_DString *dsPtr));
-typedef void (Tcl_DriverWatchProc) _ANSI_ARGS_((
- ClientData instanceData, int mask));
-typedef int (Tcl_DriverGetHandleProc) _ANSI_ARGS_((
- ClientData instanceData, int direction,
- ClientData *handlePtr));
-typedef int (Tcl_DriverFlushProc) _ANSI_ARGS_((
- ClientData instanceData));
-typedef int (Tcl_DriverHandlerProc) _ANSI_ARGS_((
- ClientData instanceData, int interestMask));
-typedef Tcl_WideInt (Tcl_DriverWideSeekProc) _ANSI_ARGS_((
- ClientData instanceData, Tcl_WideInt offset,
- int mode, int *errorCodePtr));
-
-
-/*
- * The following declarations either map ckalloc and ckfree to
- * malloc and free, or they map them to procedures with all sorts
- * of debugging hooks defined in tclCkalloc.c.
- */
-#ifdef TCL_MEM_DEBUG
-
-# define ckalloc(x) Tcl_DbCkalloc(x, __FILE__, __LINE__)
-# define ckfree(x) Tcl_DbCkfree(x, __FILE__, __LINE__)
-# define ckrealloc(x,y) Tcl_DbCkrealloc((x), (y),__FILE__, __LINE__)
-# define attemptckalloc(x) Tcl_AttemptDbCkalloc(x, __FILE__, __LINE__)
-# define attemptckrealloc(x,y) Tcl_AttemptDbCkrealloc((x), (y), __FILE__, __LINE__)
-#else /* !TCL_MEM_DEBUG */
-
-/*
- * If we are not using the debugging allocator, we should call the
- * Tcl_Alloc, et al. routines in order to guarantee that every module
- * is using the same memory allocator both inside and outside of the
- * Tcl library.
- */
-# define ckalloc(x) Tcl_Alloc(x)
-# define ckfree(x) Tcl_Free(x)
-# define ckrealloc(x,y) Tcl_Realloc(x,y)
-# define attemptckalloc(x) Tcl_AttemptAlloc(x)
-# define attemptckrealloc(x,y) Tcl_AttemptRealloc(x,y)
-# define Tcl_InitMemory(x)
-# define Tcl_DumpActiveMemory(x)
-# define Tcl_ValidateAllMemory(x,y)
-
-#endif /* !TCL_MEM_DEBUG */
-
-/*
- * struct Tcl_ChannelType:
- *
- * One such structure exists for each type (kind) of channel.
- * It collects together in one place all the functions that are
- * part of the specific channel type.
- *
- * It is recommend that the Tcl_Channel* functions are used to access
- * elements of this structure, instead of direct accessing.
- */
-typedef struct Tcl_ChannelType
-#ifdef USE_TCL_STRUCT
-{
- char *typeName; /* The name of the channel type in Tcl
- * commands. This storage is owned by
- * channel type. */
- Tcl_ChannelTypeVersion version; /* Version of the channel type. */
- Tcl_DriverCloseProc *closeProc; /* Procedure to call to close the
- * channel, or TCL_CLOSE2PROC if the
- * close2Proc should be used
- * instead. */
- Tcl_DriverInputProc *inputProc; /* Procedure to call for input
- * on channel. */
- Tcl_DriverOutputProc *outputProc; /* Procedure to call for output
- * on channel. */
- Tcl_DriverSeekProc *seekProc; /* Procedure to call to seek
- * on the channel. May be NULL. */
- Tcl_DriverSetOptionProc *setOptionProc;
- /* Set an option on a channel. */
- Tcl_DriverGetOptionProc *getOptionProc;
- /* Get an option from a channel. */
- Tcl_DriverWatchProc *watchProc; /* Set up the notifier to watch
- * for events on this channel. */
- Tcl_DriverGetHandleProc *getHandleProc;
- /* Get an OS handle from the channel
- * or NULL if not supported. */
- Tcl_DriverClose2Proc *close2Proc; /* Procedure to call to close the
- * channel if the device supports
- * closing the read & write sides
- * independently. */
- Tcl_DriverBlockModeProc *blockModeProc;
- /* Set blocking mode for the
- * raw channel. May be NULL. */
- /*
- * Only valid in TCL_CHANNEL_VERSION_2 channels or later
- */
- Tcl_DriverFlushProc *flushProc; /* Procedure to call to flush a
- * channel. May be NULL. */
- Tcl_DriverHandlerProc *handlerProc; /* Procedure to call to handle a
- * channel event. This will be passed
- * up the stacked channel chain. */
- /*
- * Only valid in TCL_CHANNEL_VERSION_3 channels or later
- */
- Tcl_DriverWideSeekProc *wideSeekProc;
- /* Procedure to call to seek
- * on the channel which can
- * handle 64-bit offsets. May be
- * NULL, and must be NULL if
- * seekProc is NULL. */
-}
-#endif
-Tcl_ChannelType;
-
-/*
- * The following flags determine whether the blockModeProc above should
- * set the channel into blocking or nonblocking mode. They are passed
- * as arguments to the blockModeProc procedure in the above structure.
- */
-#define TCL_MODE_BLOCKING 0 /* Put channel into blocking mode. */
-#define TCL_MODE_NONBLOCKING 1 /* Put channel into nonblocking
- * mode. */
-
-/*
- * Enum for different types of file paths.
- */
-typedef enum Tcl_PathType {
- TCL_PATH_ABSOLUTE,
- TCL_PATH_RELATIVE,
- TCL_PATH_VOLUME_RELATIVE
-} Tcl_PathType;
-
-
-/*
- * The following structure is used to pass glob type data amongst
- * the various glob routines and Tcl_FSMatchInDirectory.
- */
-typedef struct Tcl_GlobTypeData {
- /* Corresponds to bcdpfls as in 'find -t' */
- int type;
- /* Corresponds to file permissions */
- int perm;
- /* Acceptable mac type */
- Tcl_Obj* macType;
- /* Acceptable mac creator */
- Tcl_Obj* macCreator;
-} Tcl_GlobTypeData;
-
-/*
- * type and permission definitions for glob command
- */
-#define TCL_GLOB_TYPE_BLOCK (1<<0)
-#define TCL_GLOB_TYPE_CHAR (1<<1)
-#define TCL_GLOB_TYPE_DIR (1<<2)
-#define TCL_GLOB_TYPE_PIPE (1<<3)
-#define TCL_GLOB_TYPE_FILE (1<<4)
-#define TCL_GLOB_TYPE_LINK (1<<5)
-#define TCL_GLOB_TYPE_SOCK (1<<6)
-#define TCL_GLOB_TYPE_MOUNT (1<<7)
-
-#define TCL_GLOB_PERM_RONLY (1<<0)
-#define TCL_GLOB_PERM_HIDDEN (1<<1)
-#define TCL_GLOB_PERM_R (1<<2)
-#define TCL_GLOB_PERM_W (1<<3)
-#define TCL_GLOB_PERM_X (1<<4)
-
-
-/*
- * Typedefs for the various filesystem operations:
- */
-typedef int (Tcl_FSStatProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, Tcl_StatBuf *buf));
-typedef int (Tcl_FSAccessProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, int mode));
-typedef Tcl_Channel (Tcl_FSOpenFileChannelProc)
- _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *pathPtr,
- int mode, int permissions));
-typedef int (Tcl_FSMatchInDirectoryProc) _ANSI_ARGS_((Tcl_Interp* interp,
- Tcl_Obj *result, Tcl_Obj *pathPtr, CONST char *pattern,
- Tcl_GlobTypeData * types));
-typedef Tcl_Obj* (Tcl_FSGetCwdProc) _ANSI_ARGS_((Tcl_Interp *interp));
-typedef int (Tcl_FSChdirProc) _ANSI_ARGS_((Tcl_Obj *pathPtr));
-typedef int (Tcl_FSLstatProc) _ANSI_ARGS_((Tcl_Obj *pathPtr,
- Tcl_StatBuf *buf));
-typedef int (Tcl_FSCreateDirectoryProc) _ANSI_ARGS_((Tcl_Obj *pathPtr));
-typedef int (Tcl_FSDeleteFileProc) _ANSI_ARGS_((Tcl_Obj *pathPtr));
-typedef int (Tcl_FSCopyDirectoryProc) _ANSI_ARGS_((Tcl_Obj *srcPathPtr,
- Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr));
-typedef int (Tcl_FSCopyFileProc) _ANSI_ARGS_((Tcl_Obj *srcPathPtr,
- Tcl_Obj *destPathPtr));
-typedef int (Tcl_FSRemoveDirectoryProc) _ANSI_ARGS_((Tcl_Obj *pathPtr,
- int recursive, Tcl_Obj **errorPtr));
-typedef int (Tcl_FSRenameFileProc) _ANSI_ARGS_((Tcl_Obj *srcPathPtr,
- Tcl_Obj *destPathPtr));
-typedef void (Tcl_FSUnloadFileProc) _ANSI_ARGS_((Tcl_LoadHandle loadHandle));
-typedef Tcl_Obj* (Tcl_FSListVolumesProc) _ANSI_ARGS_((void));
-/* We have to declare the utime structure here. */
-struct utimbuf;
-typedef int (Tcl_FSUtimeProc) _ANSI_ARGS_((Tcl_Obj *pathPtr,
- struct utimbuf *tval));
-typedef int (Tcl_FSNormalizePathProc) _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Obj *pathPtr, int nextCheckpoint));
-typedef int (Tcl_FSFileAttrsGetProc) _ANSI_ARGS_((Tcl_Interp *interp,
- int index, Tcl_Obj *pathPtr,
- Tcl_Obj **objPtrRef));
-typedef CONST char** (Tcl_FSFileAttrStringsProc) _ANSI_ARGS_((Tcl_Obj *pathPtr,
- Tcl_Obj** objPtrRef));
-typedef int (Tcl_FSFileAttrsSetProc) _ANSI_ARGS_((Tcl_Interp *interp,
- int index, Tcl_Obj *pathPtr,
- Tcl_Obj *objPtr));
-typedef Tcl_Obj* (Tcl_FSLinkProc) _ANSI_ARGS_((Tcl_Obj *pathPtr,
- Tcl_Obj *toPtr, int linkType));
-typedef int (Tcl_FSLoadFileProc) _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj *pathPtr,
- Tcl_LoadHandle *handlePtr,
- Tcl_FSUnloadFileProc **unloadProcPtr));
-typedef int (Tcl_FSPathInFilesystemProc) _ANSI_ARGS_((Tcl_Obj *pathPtr,
- ClientData *clientDataPtr));
-typedef Tcl_Obj* (Tcl_FSFilesystemPathTypeProc)
- _ANSI_ARGS_((Tcl_Obj *pathPtr));
-typedef Tcl_Obj* (Tcl_FSFilesystemSeparatorProc)
- _ANSI_ARGS_((Tcl_Obj *pathPtr));
-typedef void (Tcl_FSFreeInternalRepProc) _ANSI_ARGS_((ClientData clientData));
-typedef ClientData (Tcl_FSDupInternalRepProc)
- _ANSI_ARGS_((ClientData clientData));
-typedef Tcl_Obj* (Tcl_FSInternalToNormalizedProc)
- _ANSI_ARGS_((ClientData clientData));
-typedef ClientData (Tcl_FSCreateInternalRepProc) _ANSI_ARGS_((Tcl_Obj *pathPtr));
-
-typedef struct Tcl_FSVersion_ *Tcl_FSVersion;
-
-/*
- *----------------------------------------------------------------
- * Data structures related to hooking into the filesystem
- *----------------------------------------------------------------
- */
-
-/*
- * Filesystem version tag. This was introduced in 8.4.
- */
-#define TCL_FILESYSTEM_VERSION_1 ((Tcl_FSVersion) 0x1)
-
-/*
- * struct Tcl_Filesystem:
- *
- * One such structure exists for each type (kind) of filesystem.
- * It collects together in one place all the functions that are
- * part of the specific filesystem. Tcl always accesses the
- * filesystem through one of these structures.
- *
- * Not all entries need be non-NULL; any which are NULL are simply
- * ignored. However, a complete filesystem should provide all of
- * these functions. The explanations in the structure show
- * the importance of each function.
- */
-
-typedef struct Tcl_Filesystem {
- CONST char *typeName; /* The name of the filesystem. */
- int structureLength; /* Length of this structure, so future
- * binary compatibility can be assured. */
- Tcl_FSVersion version;
- /* Version of the filesystem type. */
- Tcl_FSPathInFilesystemProc *pathInFilesystemProc;
- /* Function to check whether a path is in
- * this filesystem. This is the most
- * important filesystem procedure. */
- Tcl_FSDupInternalRepProc *dupInternalRepProc;
- /* Function to duplicate internal fs rep. May
- * be NULL (but then fs is less efficient). */
- Tcl_FSFreeInternalRepProc *freeInternalRepProc;
- /* Function to free internal fs rep. Must
- * be implemented, if internal representations
- * need freeing, otherwise it can be NULL. */
- Tcl_FSInternalToNormalizedProc *internalToNormalizedProc;
- /* Function to convert internal representation
- * to a normalized path. Only required if
- * the fs creates pure path objects with no
- * string/path representation. */
- Tcl_FSCreateInternalRepProc *createInternalRepProc;
- /* Function to create a filesystem-specific
- * internal representation. May be NULL
- * if paths have no internal representation,
- * or if the Tcl_FSPathInFilesystemProc
- * for this filesystem always immediately
- * creates an internal representation for
- * paths it accepts. */
- Tcl_FSNormalizePathProc *normalizePathProc;
- /* Function to normalize a path. Should
- * be implemented for all filesystems
- * which can have multiple string
- * representations for the same path
- * object. */
- Tcl_FSFilesystemPathTypeProc *filesystemPathTypeProc;
- /* Function to determine the type of a
- * path in this filesystem. May be NULL. */
- Tcl_FSFilesystemSeparatorProc *filesystemSeparatorProc;
- /* Function to return the separator
- * character(s) for this filesystem. Must
- * be implemented. */
- Tcl_FSStatProc *statProc;
- /*
- * Function to process a 'Tcl_FSStat()'
- * call. Must be implemented for any
- * reasonable filesystem.
- */
- Tcl_FSAccessProc *accessProc;
- /*
- * Function to process a 'Tcl_FSAccess()'
- * call. Must be implemented for any
- * reasonable filesystem.
- */
- Tcl_FSOpenFileChannelProc *openFileChannelProc;
- /*
- * Function to process a
- * 'Tcl_FSOpenFileChannel()' call. Must be
- * implemented for any reasonable
- * filesystem.
- */
- Tcl_FSMatchInDirectoryProc *matchInDirectoryProc;
- /* Function to process a
- * 'Tcl_FSMatchInDirectory()'. If not
- * implemented, then glob and recursive
- * copy functionality will be lacking in
- * the filesystem. */
- Tcl_FSUtimeProc *utimeProc;
- /* Function to process a
- * 'Tcl_FSUtime()' call. Required to
- * allow setting (not reading) of times
- * with 'file mtime', 'file atime' and
- * the open-r/open-w/fcopy implementation
- * of 'file copy'. */
- Tcl_FSLinkProc *linkProc;
- /* Function to process a
- * 'Tcl_FSLink()' call. Should be
- * implemented only if the filesystem supports
- * links (reading or creating). */
- Tcl_FSListVolumesProc *listVolumesProc;
- /* Function to list any filesystem volumes
- * added by this filesystem. Should be
- * implemented only if the filesystem adds
- * volumes at the head of the filesystem. */
- Tcl_FSFileAttrStringsProc *fileAttrStringsProc;
- /* Function to list all attributes strings
- * which are valid for this filesystem.
- * If not implemented the filesystem will
- * not support the 'file attributes' command.
- * This allows arbitrary additional information
- * to be attached to files in the filesystem. */
- Tcl_FSFileAttrsGetProc *fileAttrsGetProc;
- /* Function to process a
- * 'Tcl_FSFileAttrsGet()' call, used by
- * 'file attributes'. */
- Tcl_FSFileAttrsSetProc *fileAttrsSetProc;
- /* Function to process a
- * 'Tcl_FSFileAttrsSet()' call, used by
- * 'file attributes'. */
- Tcl_FSCreateDirectoryProc *createDirectoryProc;
- /* Function to process a
- * 'Tcl_FSCreateDirectory()' call. Should
- * be implemented unless the FS is
- * read-only. */
- Tcl_FSRemoveDirectoryProc *removeDirectoryProc;
- /* Function to process a
- * 'Tcl_FSRemoveDirectory()' call. Should
- * be implemented unless the FS is
- * read-only. */
- Tcl_FSDeleteFileProc *deleteFileProc;
- /* Function to process a
- * 'Tcl_FSDeleteFile()' call. Should
- * be implemented unless the FS is
- * read-only. */
- Tcl_FSCopyFileProc *copyFileProc;
- /* Function to process a
- * 'Tcl_FSCopyFile()' call. If not
- * implemented Tcl will fall back
- * on open-r, open-w and fcopy as
- * a copying mechanism, for copying
- * actions initiated in Tcl (not C). */
- Tcl_FSRenameFileProc *renameFileProc;
- /* Function to process a
- * 'Tcl_FSRenameFile()' call. If not
- * implemented, Tcl will fall back on
- * a copy and delete mechanism, for
- * rename actions initiated in Tcl (not C). */
- Tcl_FSCopyDirectoryProc *copyDirectoryProc;
- /* Function to process a
- * 'Tcl_FSCopyDirectory()' call. If
- * not implemented, Tcl will fall back
- * on a recursive create-dir, file copy
- * mechanism, for copying actions
- * initiated in Tcl (not C). */
- Tcl_FSLstatProc *lstatProc;
- /* Function to process a
- * 'Tcl_FSLstat()' call. If not implemented,
- * Tcl will attempt to use the 'statProc'
- * defined above instead. */
- Tcl_FSLoadFileProc *loadFileProc;
- /* Function to process a
- * 'Tcl_FSLoadFile()' call. If not
- * implemented, Tcl will fall back on
- * a copy to native-temp followed by a
- * Tcl_FSLoadFile on that temporary copy. */
- Tcl_FSGetCwdProc *getCwdProc;
- /*
- * Function to process a 'Tcl_FSGetCwd()'
- * call. Most filesystems need not
- * implement this. It will usually only be
- * called once, if 'getcwd' is called
- * before 'chdir'. May be NULL.
- */
- Tcl_FSChdirProc *chdirProc;
- /*
- * Function to process a 'Tcl_FSChdir()'
- * call. If filesystems do not implement
- * this, it will be emulated by a series of
- * directory access checks. Otherwise,
- * virtual filesystems which do implement
- * it need only respond with a positive
- * return result if the dirName is a valid
- * directory in their filesystem. They
- * need not remember the result, since that
- * will be automatically remembered for use
- * by GetCwd. Real filesystems should
- * carry out the correct action (i.e. call
- * the correct system 'chdir' api). If not
- * implemented, then 'cd' and 'pwd' will
- * fail inside the filesystem.
- */
-} Tcl_Filesystem;
-
-/*
- * The following definitions are used as values for the 'linkAction' flag
- * to Tcl_FSLink, or the linkProc of any filesystem. Any combination
- * of flags can be given. For link creation, the linkProc should create
- * a link which matches any of the types given.
- *
- * TCL_CREATE_SYMBOLIC_LINK: Create a symbolic or soft link.
- * TCL_CREATE_HARD_LINK: Create a hard link.
- */
-#define TCL_CREATE_SYMBOLIC_LINK 0x01
-#define TCL_CREATE_HARD_LINK 0x02
-
-/*
- * The following structure represents the Notifier functions that
- * you can override with the Tcl_SetNotifier call.
- */
-typedef struct Tcl_NotifierProcs {
- Tcl_SetTimerProc *setTimerProc;
- Tcl_WaitForEventProc *waitForEventProc;
- Tcl_CreateFileHandlerProc *createFileHandlerProc;
- Tcl_DeleteFileHandlerProc *deleteFileHandlerProc;
- Tcl_InitNotifierProc *initNotifierProc;
- Tcl_FinalizeNotifierProc *finalizeNotifierProc;
- Tcl_AlertNotifierProc *alertNotifierProc;
- Tcl_ServiceModeHookProc *serviceModeHookProc;
-} Tcl_NotifierProcs;
-
-
-/*
- * The following structure represents a user-defined encoding. It collects
- * together all the functions that are used by the specific encoding.
- */
-typedef struct Tcl_EncodingType
-#ifdef USE_TCL_STRUCT
-{
- CONST char *encodingName; /* The name of the encoding, e.g. "euc-jp".
- * This name is the unique key for this
- * encoding type. */
- Tcl_EncodingConvertProc *toUtfProc;
- /* Procedure to convert from external
- * encoding into UTF-8. */
- Tcl_EncodingConvertProc *fromUtfProc;
- /* Procedure to convert from UTF-8 into
- * external encoding. */
- Tcl_EncodingFreeProc *freeProc;
- /* If non-NULL, procedure to call when this
- * encoding is deleted. */
- ClientData clientData; /* Arbitrary value associated with encoding
- * type. Passed to conversion procedures. */
- int nullSize; /* Number of zero bytes that signify
- * end-of-string in this encoding. This
- * number is used to determine the source
- * string length when the srcLen argument is
- * negative. Must be 1 or 2. */
-}
-#endif
-Tcl_EncodingType;
-
-/*
- * The following definitions are used as values for the conversion control
- * flags argument when converting text from one character set to another:
- *
- * TCL_ENCODING_START: Signifies that the source buffer is the first
- * block in a (potentially multi-block) input
- * stream. Tells the conversion procedure to
- * reset to an initial state and perform any
- * initialization that needs to occur before the
- * first byte is converted. If the source
- * buffer contains the entire input stream to be
- * converted, this flag should be set.
- *
- * TCL_ENCODING_END: Signifies that the source buffer is the last
- * block in a (potentially multi-block) input
- * stream. Tells the conversion routine to
- * perform any finalization that needs to occur
- * after the last byte is converted and then to
- * reset to an initial state. If the source
- * buffer contains the entire input stream to be
- * converted, this flag should be set.
- *
- * TCL_ENCODING_STOPONERROR: If set, then the converter will return
- * immediately upon encountering an invalid
- * byte sequence or a source character that has
- * no mapping in the target encoding. If clear,
- * then the converter will skip the problem,
- * substituting one or more "close" characters
- * in the destination buffer and then continue
- * to sonvert the source.
- */
-#define TCL_ENCODING_START 0x01
-#define TCL_ENCODING_END 0x02
-#define TCL_ENCODING_STOPONERROR 0x04
-
-
-/*
- * The following data structures and declarations are for the new Tcl
- * parser.
- */
-
-/*
- * For each word of a command, and for each piece of a word such as a
- * variable reference, one of the following structures is created to
- * describe the token.
- */
-typedef struct Tcl_Token
-#ifdef USE_TCL_STRUCT
-{
- int type; /* Type of token, such as TCL_TOKEN_WORD;
- * see below for valid types. */
- CONST char *start; /* First character in token. */
- int size; /* Number of bytes in token. */
- int numComponents; /* If this token is composed of other
- * tokens, this field tells how many of
- * them there are (including components of
- * components, etc.). The component tokens
- * immediately follow this one. */
-}
-#endif
-Tcl_Token;
-
-/*
- * Type values defined for Tcl_Token structures. These values are
- * defined as mask bits so that it's easy to check for collections of
- * types.
- *
- * TCL_TOKEN_WORD - The token describes one word of a command,
- * from the first non-blank character of
- * the word (which may be " or {) up to but
- * not including the space, semicolon, or
- * bracket that terminates the word.
- * NumComponents counts the total number of
- * sub-tokens that make up the word. This
- * includes, for example, sub-tokens of
- * TCL_TOKEN_VARIABLE tokens.
- * TCL_TOKEN_SIMPLE_WORD - This token is just like TCL_TOKEN_WORD
- * except that the word is guaranteed to
- * consist of a single TCL_TOKEN_TEXT
- * sub-token.
- * TCL_TOKEN_TEXT - The token describes a range of literal
- * text that is part of a word.
- * NumComponents is always 0.
- * TCL_TOKEN_BS - The token describes a backslash sequence
- * that must be collapsed. NumComponents
- * is always 0.
- * TCL_TOKEN_COMMAND - The token describes a command whose result
- * must be substituted into the word. The
- * token includes the enclosing brackets.
- * NumComponents is always 0.
- * TCL_TOKEN_VARIABLE - The token describes a variable
- * substitution, including the dollar sign,
- * variable name, and array index (if there
- * is one) up through the right
- * parentheses. NumComponents tells how
- * many additional tokens follow to
- * represent the variable name. The first
- * token will be a TCL_TOKEN_TEXT token
- * that describes the variable name. If
- * the variable is an array reference then
- * there will be one or more additional
- * tokens, of type TCL_TOKEN_TEXT,
- * TCL_TOKEN_BS, TCL_TOKEN_COMMAND, and
- * TCL_TOKEN_VARIABLE, that describe the
- * array index; numComponents counts the
- * total number of nested tokens that make
- * up the variable reference, including
- * sub-tokens of TCL_TOKEN_VARIABLE tokens.
- * TCL_TOKEN_SUB_EXPR - The token describes one subexpression of a
- * expression, from the first non-blank
- * character of the subexpression up to but not
- * including the space, brace, or bracket
- * that terminates the subexpression.
- * NumComponents counts the total number of
- * following subtokens that make up the
- * subexpression; this includes all subtokens
- * for any nested TCL_TOKEN_SUB_EXPR tokens.
- * For example, a numeric value used as a
- * primitive operand is described by a
- * TCL_TOKEN_SUB_EXPR token followed by a
- * TCL_TOKEN_TEXT token. A binary subexpression
- * is described by a TCL_TOKEN_SUB_EXPR token
- * followed by the TCL_TOKEN_OPERATOR token
- * for the operator, then TCL_TOKEN_SUB_EXPR
- * tokens for the left then the right operands.
- * TCL_TOKEN_OPERATOR - The token describes one expression operator.
- * An operator might be the name of a math
- * function such as "abs". A TCL_TOKEN_OPERATOR
- * token is always preceeded by one
- * TCL_TOKEN_SUB_EXPR token for the operator's
- * subexpression, and is followed by zero or
- * more TCL_TOKEN_SUB_EXPR tokens for the
- * operator's operands. NumComponents is
- * always 0.
- */
-#define TCL_TOKEN_WORD 1
-#define TCL_TOKEN_SIMPLE_WORD 2
-#define TCL_TOKEN_TEXT 4
-#define TCL_TOKEN_BS 8
-#define TCL_TOKEN_COMMAND 16
-#define TCL_TOKEN_VARIABLE 32
-#define TCL_TOKEN_SUB_EXPR 64
-#define TCL_TOKEN_OPERATOR 128
-
-/*
- * Parsing error types. On any parsing error, one of these values
- * will be stored in the error field of the Tcl_Parse structure
- * defined below.
- */
-#define TCL_PARSE_SUCCESS 0
-#define TCL_PARSE_QUOTE_EXTRA 1
-#define TCL_PARSE_BRACE_EXTRA 2
-#define TCL_PARSE_MISSING_BRACE 3
-#define TCL_PARSE_MISSING_BRACKET 4
-#define TCL_PARSE_MISSING_PAREN 5
-#define TCL_PARSE_MISSING_QUOTE 6
-#define TCL_PARSE_MISSING_VAR_BRACE 7
-#define TCL_PARSE_SYNTAX 8
-#define TCL_PARSE_BAD_NUMBER 9
-
-/*
- * A structure of the following type is filled in by Tcl_ParseCommand.
- * It describes a single command parsed from an input string.
- */
-#define NUM_STATIC_TOKENS 20
-
-typedef struct Tcl_Parse
-#ifdef USE_TCL_STRUCT
-{
- CONST char *commentStart; /* Pointer to # that begins the first of
- * one or more comments preceding the
- * command. */
- int commentSize; /* Number of bytes in comments (up through
- * newline character that terminates the
- * last comment). If there were no
- * comments, this field is 0. */
- CONST char *commandStart; /* First character in first word of command. */
- int commandSize; /* Number of bytes in command, including
- * first character of first word, up
- * through the terminating newline,
- * close bracket, or semicolon. */
- int numWords; /* Total number of words in command. May
- * be 0. */
- Tcl_Token *tokenPtr; /* Pointer to first token representing
- * the words of the command. Initially
- * points to staticTokens, but may change
- * to point to malloc-ed space if command
- * exceeds space in staticTokens. */
- int numTokens; /* Total number of tokens in command. */
- int tokensAvailable; /* Total number of tokens available at
- * *tokenPtr. */
- int errorType; /* One of the parsing error types defined
- * above. */
-
- /*
- * The fields below are intended only for the private use of the
- * parser. They should not be used by procedures that invoke
- * Tcl_ParseCommand.
- */
-
- CONST char *string; /* The original command string passed to
- * Tcl_ParseCommand. */
- CONST char *end; /* Points to the character just after the
- * last one in the command string. */
- Tcl_Interp *interp; /* Interpreter to use for error reporting,
- * or NULL. */
- CONST char *term; /* Points to character in string that
- * terminated most recent token. Filled in
- * by ParseTokens. If an error occurs,
- * points to beginning of region where the
- * error occurred (e.g. the open brace if
- * the close brace is missing). */
- int incomplete; /* This field is set to 1 by Tcl_ParseCommand
- * if the command appears to be incomplete.
- * This information is used by
- * Tcl_CommandComplete. */
- Tcl_Token staticTokens[NUM_STATIC_TOKENS];
- /* Initial space for tokens for command.
- * This space should be large enough to
- * accommodate most commands; dynamic
- * space is allocated for very large
- * commands that don't fit here. */
-}
-#endif
-Tcl_Parse;
-
-/*
- * The following definitions are the error codes returned by the conversion
- * routines:
- *
- * TCL_OK: All characters were converted.
- *
- * TCL_CONVERT_NOSPACE: The output buffer would not have been large
- * enough for all of the converted data; as many
- * characters as could fit were converted though.
- *
- * TCL_CONVERT_MULTIBYTE: The last few bytes in the source string were
- * the beginning of a multibyte sequence, but
- * more bytes were needed to complete this
- * sequence. A subsequent call to the conversion
- * routine should pass the beginning of this
- * unconverted sequence plus additional bytes
- * from the source stream to properly convert
- * the formerly split-up multibyte sequence.
- *
- * TCL_CONVERT_SYNTAX: The source stream contained an invalid
- * character sequence. This may occur if the
- * input stream has been damaged or if the input
- * encoding method was misidentified. This error
- * is reported only if TCL_ENCODING_STOPONERROR
- * was specified.
- *
- * TCL_CONVERT_UNKNOWN: The source string contained a character
- * that could not be represented in the target
- * encoding. This error is reported only if
- * TCL_ENCODING_STOPONERROR was specified.
- */
-#define TCL_CONVERT_MULTIBYTE -1
-#define TCL_CONVERT_SYNTAX -2
-#define TCL_CONVERT_UNKNOWN -3
-#define TCL_CONVERT_NOSPACE -4
-
-/*
- * The maximum number of bytes that are necessary to represent a single
- * Unicode character in UTF-8. The valid values should be 3 or 6 (or
- * perhaps 1 if we want to support a non-unicode enabled core).
- * If 3, then Tcl_UniChar must be 2-bytes in size (UCS-2). (default)
- * If 6, then Tcl_UniChar must be 4-bytes in size (UCS-4).
- * At this time UCS-2 mode is the default and recommended mode.
- * UCS-4 is experimental and not recommended. It works for the core,
- * but most extensions expect UCS-2.
- */
-#ifndef TCL_UTF_MAX
-#define TCL_UTF_MAX 3
-#endif
-
-/*
- * This represents a Unicode character. Any changes to this should
- * also be reflected in regcustom.h.
- */
-#if TCL_UTF_MAX > 3
- /*
- * unsigned int isn't 100% accurate as it should be a strict 4-byte
- * value (perhaps wchar_t). 64-bit systems may have troubles. The
- * size of this value must be reflected correctly in regcustom.h.
- */
-typedef unsigned int Tcl_UniChar;
-#else
-typedef unsigned short Tcl_UniChar;
-#endif
-
-
-/*
- * Deprecated Tcl procedures:
- */
-#ifndef TCL_NO_DEPRECATED
-# define Tcl_EvalObj(interp,objPtr) \
- Tcl_EvalObjEx((interp),(objPtr),0)
-# define Tcl_GlobalEvalObj(interp,objPtr) \
- Tcl_EvalObjEx((interp),(objPtr),TCL_EVAL_GLOBAL)
-#endif
-
-
-/*
- * These function have been renamed. The old names are deprecated, but we
- * define these macros for backwards compatibilty.
- */
-#define Tcl_Ckalloc Tcl_Alloc
-#define Tcl_Ckfree Tcl_Free
-#define Tcl_Ckrealloc Tcl_Realloc
-#define Tcl_Return Tcl_SetResult
-#define Tcl_TildeSubst Tcl_TranslateFileName
-#ifndef _LANG
-#define panic Tcl_Panic
-#endif
-#define panicVA Tcl_PanicVA
-
-
-/*
- * The following constant is used to test for older versions of Tcl
- * in the stubs tables.
- *
- * Jan Nijtman's plus patch uses 0xFCA1BACF, so we need to pick a different
- * value since the stubs tables don't match.
- */
-
-#define TCL_STUB_MAGIC ((int)0xFCA3BACF)
-
-/*
- * The following function is required to be defined in all stubs aware
- * extensions. The function is actually implemented in the stub
- * library, not the main Tcl library, although there is a trivial
- * implementation in the main library in case an extension is statically
- * linked into an application.
- */
-
-EXTERN CONST char * Tcl_InitStubs _ANSI_ARGS_((Tcl_Interp *interp,
- CONST char *version, int exact));
-
-#ifndef USE_TCL_STUBS
-
-/*
- * When not using stubs, make it a macro.
- */
-
-#define Tcl_InitStubs(interp, version, exact) \
- Tcl_PkgRequire(interp, "Tcl", version, exact)
-
-#endif
-
-
-/*
- * Include the public function declarations that are accessible via
- * the stubs table.
- */
-
-#include "tclDecls.h"
-
-/*
- * Include platform specific public function declarations that are
- * accessible via the stubs table.
- */
-
-/*
- * tclPlatDecls.h can't be included here on the Mac, as we need
- * Mac specific headers to define the Mac types used in this file,
- * but these Mac haders conflict with a number of tk types
- * and thus can't be included in the globally read tcl.h
- * This header was originally added here as a fix for bug 5241
- * (stub link error for symbols in TclPlatStubs table), as a work-
- * around for the bug on the mac, tclMac.h is included immediately
- * after tcl.h in the tcl precompiled header (with DLLEXPORT set).
- */
-
-#if !defined(MAC_TCL)
-#include "tclPlatDecls.h"
-#endif
-
-/*
- * Public functions that are not accessible via the stubs table.
- */
-
-EXTERN void Tcl_Main _ANSI_ARGS_((int argc, char **argv,
- Tcl_AppInitProc *appInitProc));
-
-/*
- * Convenience declaration of Tcl_AppInit for backwards compatibility.
- * This function is not *implemented* by the tcl library, so the storage
- * class is neither DLLEXPORT nor DLLIMPORT
- */
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS
-
-EXTERN int Tcl_AppInit _ANSI_ARGS_((Tcl_Interp *interp));
-
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* RC_INVOKED */
-
-/*
- * end block for C++
- */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _TCL */
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls.h
deleted file mode 100644
index 6ae47c1d922..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls.h
+++ /dev/null
@@ -1,4143 +0,0 @@
-/*
- * tclDecls.h --
- *
- * Declarations of functions in the platform independent public Tcl API.
- *
- * Copyright (c) 1998-1999 by Scriptics Corporation.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tclDecls.h,v 1.93.2.1 2003/05/13 09:57:40 mistachkin Exp $
- */
-
-#ifndef _TCLDECLS
-#define _TCLDECLS
-
-/*
- * WARNING: This file is automatically generated by the tools/genStubs.tcl
- * script. Any modifications to the function declarations below should be made
- * in the generic/tcl.decls script.
- */
-
-/* !BEGIN!: Do not edit below this line. */
-
-/*
- * Exported function declarations:
- */
-
-/* 0 */
-EXTERN int Tcl_PkgProvideEx _ANSI_ARGS_((Tcl_Interp* interp,
- CONST char* name, CONST char* version,
- ClientData clientData));
-/* 1 */
-EXTERN CONST84_RETURN char * Tcl_PkgRequireEx _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * name,
- CONST char * version, int exact,
- ClientData * clientDataPtr));
-/* 2 */
-EXTERN void Tcl_Panic _ANSI_ARGS_(TCL_VARARGS(CONST char *,format));
-/* 3 */
-EXTERN char * Tcl_Alloc _ANSI_ARGS_((unsigned int size));
-/* 4 */
-EXTERN void Tcl_Free _ANSI_ARGS_((char * ptr));
-/* 5 */
-EXTERN char * Tcl_Realloc _ANSI_ARGS_((char * ptr,
- unsigned int size));
-/* 6 */
-EXTERN char * Tcl_DbCkalloc _ANSI_ARGS_((unsigned int size,
- CONST char * file, int line));
-/* 7 */
-EXTERN int Tcl_DbCkfree _ANSI_ARGS_((char * ptr,
- CONST char * file, int line));
-/* 8 */
-EXTERN char * Tcl_DbCkrealloc _ANSI_ARGS_((char * ptr,
- unsigned int size, CONST char * file,
- int line));
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-/* 9 */
-EXTERN void Tcl_CreateFileHandler _ANSI_ARGS_((int fd, int mask,
- Tcl_FileProc * proc, ClientData clientData));
-#endif /* UNIX */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-/* 10 */
-EXTERN void Tcl_DeleteFileHandler _ANSI_ARGS_((int fd));
-#endif /* UNIX */
-/* 11 */
-EXTERN void Tcl_SetTimer _ANSI_ARGS_((Tcl_Time * timePtr));
-/* 12 */
-EXTERN void Tcl_Sleep _ANSI_ARGS_((int ms));
-/* 13 */
-EXTERN int Tcl_WaitForEvent _ANSI_ARGS_((Tcl_Time * timePtr));
-/* 14 */
-EXTERN int Tcl_AppendAllObjTypes _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr));
-/* 15 */
-EXTERN void Tcl_AppendStringsToObj _ANSI_ARGS_(TCL_VARARGS(Tcl_Obj *,objPtr));
-/* 16 */
-EXTERN void Tcl_AppendToObj _ANSI_ARGS_((Tcl_Obj* objPtr,
- CONST char* bytes, int length));
-/* 17 */
-EXTERN Tcl_Obj * Tcl_ConcatObj _ANSI_ARGS_((int objc,
- Tcl_Obj *CONST objv[]));
-/* 18 */
-EXTERN int Tcl_ConvertToType _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, Tcl_ObjType * typePtr));
-/* 19 */
-EXTERN void Tcl_DbDecrRefCount _ANSI_ARGS_((Tcl_Obj * objPtr,
- CONST char * file, int line));
-/* 20 */
-EXTERN void Tcl_DbIncrRefCount _ANSI_ARGS_((Tcl_Obj * objPtr,
- CONST char * file, int line));
-/* 21 */
-EXTERN int Tcl_DbIsShared _ANSI_ARGS_((Tcl_Obj * objPtr,
- CONST char * file, int line));
-/* 22 */
-EXTERN Tcl_Obj * Tcl_DbNewBooleanObj _ANSI_ARGS_((int boolValue,
- CONST char * file, int line));
-/* 23 */
-EXTERN Tcl_Obj * Tcl_DbNewByteArrayObj _ANSI_ARGS_((
- CONST unsigned char * bytes, int length,
- CONST char * file, int line));
-/* 24 */
-EXTERN Tcl_Obj * Tcl_DbNewDoubleObj _ANSI_ARGS_((double doubleValue,
- CONST char * file, int line));
-/* 25 */
-EXTERN Tcl_Obj * Tcl_DbNewListObj _ANSI_ARGS_((int objc,
- Tcl_Obj *CONST * objv, CONST char * file,
- int line));
-/* 26 */
-EXTERN Tcl_Obj * Tcl_DbNewLongObj _ANSI_ARGS_((long longValue,
- CONST char * file, int line));
-/* 27 */
-EXTERN Tcl_Obj * Tcl_DbNewObj _ANSI_ARGS_((CONST char * file,
- int line));
-/* 28 */
-EXTERN Tcl_Obj * Tcl_DbNewStringObj _ANSI_ARGS_((CONST char * bytes,
- int length, CONST char * file, int line));
-/* 29 */
-EXTERN Tcl_Obj * Tcl_DuplicateObj _ANSI_ARGS_((Tcl_Obj * objPtr));
-/* 30 */
-EXTERN void TclFreeObj _ANSI_ARGS_((Tcl_Obj * objPtr));
-/* 31 */
-EXTERN int Tcl_GetBoolean _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, int * boolPtr));
-/* 32 */
-EXTERN int Tcl_GetBooleanFromObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr,
- int * boolPtr));
-/* 33 */
-EXTERN unsigned char * Tcl_GetByteArrayFromObj _ANSI_ARGS_((
- Tcl_Obj * objPtr, int * lengthPtr));
-/* 34 */
-EXTERN int Tcl_GetDouble _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, double * doublePtr));
-/* 35 */
-EXTERN int Tcl_GetDoubleFromObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr,
- double * doublePtr));
-/* 36 */
-EXTERN int Tcl_GetIndexFromObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, CONST char ** tablePtr,
- CONST char * msg, int flags, int * indexPtr));
-/* 37 */
-EXTERN int Tcl_GetInt _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, int * intPtr));
-/* 38 */
-EXTERN int Tcl_GetIntFromObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, int * intPtr));
-/* 39 */
-EXTERN int Tcl_GetLongFromObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, long * longPtr));
-/* 40 */
-EXTERN Tcl_ObjType * Tcl_GetObjType _ANSI_ARGS_((CONST char * typeName));
-/* 41 */
-EXTERN char * Tcl_GetStringFromObj _ANSI_ARGS_((Tcl_Obj * objPtr,
- int * lengthPtr));
-/* 42 */
-EXTERN void Tcl_InvalidateStringRep _ANSI_ARGS_((
- Tcl_Obj * objPtr));
-/* 43 */
-EXTERN int Tcl_ListObjAppendList _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * listPtr,
- Tcl_Obj * elemListPtr));
-/* 44 */
-EXTERN int Tcl_ListObjAppendElement _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * listPtr,
- Tcl_Obj * objPtr));
-/* 45 */
-EXTERN int Tcl_ListObjGetElements _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * listPtr,
- int * objcPtr, Tcl_Obj *** objvPtr));
-/* 46 */
-EXTERN int Tcl_ListObjIndex _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * listPtr, int index,
- Tcl_Obj ** objPtrPtr));
-/* 47 */
-EXTERN int Tcl_ListObjLength _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * listPtr, int * lengthPtr));
-/* 48 */
-EXTERN int Tcl_ListObjReplace _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * listPtr, int first, int count,
- int objc, Tcl_Obj *CONST objv[]));
-/* 49 */
-EXTERN Tcl_Obj * Tcl_NewBooleanObj _ANSI_ARGS_((int boolValue));
-/* 50 */
-EXTERN Tcl_Obj * Tcl_NewByteArrayObj _ANSI_ARGS_((
- CONST unsigned char* bytes, int length));
-/* 51 */
-EXTERN Tcl_Obj * Tcl_NewDoubleObj _ANSI_ARGS_((double doubleValue));
-/* 52 */
-EXTERN Tcl_Obj * Tcl_NewIntObj _ANSI_ARGS_((int intValue));
-/* 53 */
-EXTERN Tcl_Obj * Tcl_NewListObj _ANSI_ARGS_((int objc,
- Tcl_Obj *CONST objv[]));
-/* 54 */
-EXTERN Tcl_Obj * Tcl_NewLongObj _ANSI_ARGS_((long longValue));
-/* 55 */
-EXTERN Tcl_Obj * Tcl_NewObj _ANSI_ARGS_((void));
-/* 56 */
-EXTERN Tcl_Obj * Tcl_NewStringObj _ANSI_ARGS_((CONST char * bytes,
- int length));
-/* 57 */
-EXTERN void Tcl_SetBooleanObj _ANSI_ARGS_((Tcl_Obj * objPtr,
- int boolValue));
-/* 58 */
-EXTERN unsigned char * Tcl_SetByteArrayLength _ANSI_ARGS_((Tcl_Obj * objPtr,
- int length));
-/* 59 */
-EXTERN void Tcl_SetByteArrayObj _ANSI_ARGS_((Tcl_Obj * objPtr,
- CONST unsigned char * bytes, int length));
-/* 60 */
-EXTERN void Tcl_SetDoubleObj _ANSI_ARGS_((Tcl_Obj * objPtr,
- double doubleValue));
-/* 61 */
-EXTERN void Tcl_SetIntObj _ANSI_ARGS_((Tcl_Obj * objPtr,
- int intValue));
-/* 62 */
-EXTERN void Tcl_SetListObj _ANSI_ARGS_((Tcl_Obj * objPtr,
- int objc, Tcl_Obj *CONST objv[]));
-/* 63 */
-EXTERN void Tcl_SetLongObj _ANSI_ARGS_((Tcl_Obj * objPtr,
- long longValue));
-/* 64 */
-EXTERN void Tcl_SetObjLength _ANSI_ARGS_((Tcl_Obj * objPtr,
- int length));
-/* 65 */
-EXTERN void Tcl_SetStringObj _ANSI_ARGS_((Tcl_Obj* objPtr,
- CONST char* bytes, int length));
-/* 66 */
-EXTERN void Tcl_AddErrorInfo _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * message));
-/* 67 */
-EXTERN void Tcl_AddObjErrorInfo _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * message, int length));
-/* 68 */
-EXTERN void Tcl_AllowExceptions _ANSI_ARGS_((Tcl_Interp * interp));
-/* 69 */
-EXTERN void Tcl_AppendElement _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * string));
-/* 70 */
-EXTERN void Tcl_AppendResult _ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp));
-/* 71 */
-EXTERN Tcl_AsyncHandler Tcl_AsyncCreate _ANSI_ARGS_((Tcl_AsyncProc * proc,
- ClientData clientData));
-/* 72 */
-EXTERN void Tcl_AsyncDelete _ANSI_ARGS_((Tcl_AsyncHandler async));
-/* 73 */
-EXTERN int Tcl_AsyncInvoke _ANSI_ARGS_((Tcl_Interp * interp,
- int code));
-/* 74 */
-EXTERN void Tcl_AsyncMark _ANSI_ARGS_((Tcl_AsyncHandler async));
-/* 75 */
-EXTERN int Tcl_AsyncReady _ANSI_ARGS_((void));
-/* 76 */
-EXTERN void Tcl_BackgroundError _ANSI_ARGS_((Tcl_Interp * interp));
-/* 77 */
-EXTERN char Tcl_Backslash _ANSI_ARGS_((CONST char * src,
- int * readPtr));
-/* 78 */
-EXTERN int Tcl_BadChannelOption _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * optionName,
- CONST char * optionList));
-/* 79 */
-EXTERN void Tcl_CallWhenDeleted _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_InterpDeleteProc * proc,
- ClientData clientData));
-/* 80 */
-EXTERN void Tcl_CancelIdleCall _ANSI_ARGS_((
- Tcl_IdleProc * idleProc,
- ClientData clientData));
-/* 81 */
-EXTERN int Tcl_Close _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Channel chan));
-/* 82 */
-EXTERN int Tcl_CommandComplete _ANSI_ARGS_((CONST char * cmd));
-/* 83 */
-EXTERN char * Tcl_Concat _ANSI_ARGS_((int argc,
- CONST84 char * CONST * objv));
-/* 84 */
-EXTERN int Tcl_ConvertElement _ANSI_ARGS_((CONST char * src,
- char * dst, int flags));
-/* 85 */
-EXTERN int Tcl_ConvertCountedElement _ANSI_ARGS_((
- CONST char * src, int length, char * dst,
- int flags));
-/* 86 */
-EXTERN int Tcl_CreateAlias _ANSI_ARGS_((Tcl_Interp * slave,
- CONST char * slaveCmd, Tcl_Interp * target,
- CONST char * targetCmd, int argc,
- CONST84 char * CONST * objv));
-/* 87 */
-EXTERN int Tcl_CreateAliasObj _ANSI_ARGS_((Tcl_Interp * slave,
- CONST char * slaveCmd, Tcl_Interp * target,
- CONST char * targetCmd, int objc,
- Tcl_Obj *CONST objv[]));
-/* 88 */
-EXTERN Tcl_Channel Tcl_CreateChannel _ANSI_ARGS_((
- Tcl_ChannelType * typePtr,
- CONST char * chanName,
- ClientData instanceData, int mask));
-/* 89 */
-EXTERN void Tcl_CreateChannelHandler _ANSI_ARGS_((
- Tcl_Channel chan, int mask,
- Tcl_ChannelProc * proc,
- ClientData clientData));
-/* 90 */
-EXTERN void Tcl_CreateCloseHandler _ANSI_ARGS_((Tcl_Channel chan,
- Tcl_CloseProc * proc, ClientData clientData));
-/* 91 */
-EXTERN Tcl_Command Tcl_CreateCommand _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName, Tcl_CmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc));
-
-
-
-/* 92 */
-EXTERN void Tcl_CreateEventSource _ANSI_ARGS_((
- Tcl_EventSetupProc * setupProc,
- Tcl_EventCheckProc * checkProc,
- ClientData clientData));
-/* 93 */
-EXTERN void Tcl_CreateExitHandler _ANSI_ARGS_((
- Tcl_ExitProc * proc, ClientData clientData));
-/* 94 */
-EXTERN Tcl_Interp * Tcl_CreateInterp _ANSI_ARGS_((void));
-/* 95 */
-EXTERN void Tcl_CreateMathFunc _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name, int numArgs,
- Tcl_ValueType * argTypes,
- Tcl_MathProc * proc, ClientData clientData));
-/* 96 */
-EXTERN Tcl_Command Tcl_CreateObjCommand _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * cmdName,
- Tcl_ObjCmdProc * proc, ClientData clientData,
- Tcl_CmdDeleteProc * deleteProc));
-/* 97 */
-EXTERN Tcl_Interp * Tcl_CreateSlave _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * slaveName, int isSafe));
-/* 98 */
-EXTERN Tcl_TimerToken Tcl_CreateTimerHandler _ANSI_ARGS_((int milliseconds,
- Tcl_TimerProc * proc, ClientData clientData));
-/* 99 */
-EXTERN Tcl_Trace Tcl_CreateTrace _ANSI_ARGS_((Tcl_Interp * interp,
- int level, Tcl_CmdTraceProc * proc,
- ClientData clientData));
-/* 100 */
-EXTERN void Tcl_DeleteAssocData _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name));
-/* 101 */
-EXTERN void Tcl_DeleteChannelHandler _ANSI_ARGS_((
- Tcl_Channel chan, Tcl_ChannelProc * proc,
- ClientData clientData));
-/* 102 */
-EXTERN void Tcl_DeleteCloseHandler _ANSI_ARGS_((Tcl_Channel chan,
- Tcl_CloseProc * proc, ClientData clientData));
-/* 103 */
-EXTERN int Tcl_DeleteCommand _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName));
-
-/* 104 */
-EXTERN int Tcl_DeleteCommandFromToken _ANSI_ARGS_(( Tcl_Interp * interp, Tcl_Command command));
-
-/* 105 */
-EXTERN void Tcl_DeleteEvents _ANSI_ARGS_((
- Tcl_EventDeleteProc * proc,
- ClientData clientData));
-/* 106 */
-EXTERN void Tcl_DeleteEventSource _ANSI_ARGS_((
- Tcl_EventSetupProc * setupProc,
- Tcl_EventCheckProc * checkProc,
- ClientData clientData));
-/* 107 */
-EXTERN void Tcl_DeleteExitHandler _ANSI_ARGS_((
- Tcl_ExitProc * proc, ClientData clientData));
-/* 108 */
-EXTERN void Tcl_DeleteHashEntry _ANSI_ARGS_((
- Tcl_HashEntry * entryPtr));
-/* 109 */
-EXTERN void Tcl_DeleteHashTable _ANSI_ARGS_((
- Tcl_HashTable * tablePtr));
-/* 110 */
-EXTERN void Tcl_DeleteInterp _ANSI_ARGS_((Tcl_Interp * interp));
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-/* 111 */
-EXTERN void Tcl_DetachPids _ANSI_ARGS_((int numPids,
- Tcl_Pid * pidPtr));
-#endif /* UNIX */
-#ifdef __WIN32__
-/* 111 */
-EXTERN void Tcl_DetachPids _ANSI_ARGS_((int numPids,
- Tcl_Pid * pidPtr));
-#endif /* __WIN32__ */
-/* 112 */
-EXTERN void Tcl_DeleteTimerHandler _ANSI_ARGS_((
- Tcl_TimerToken token));
-/* 113 */
-EXTERN void Tcl_DeleteTrace _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Trace trace));
-/* 114 */
-EXTERN void Tcl_DontCallWhenDeleted _ANSI_ARGS_((
- Tcl_Interp * interp,
- Tcl_InterpDeleteProc * proc,
- ClientData clientData));
-/* 115 */
-EXTERN int Tcl_DoOneEvent _ANSI_ARGS_((int flags));
-/* 116 */
-EXTERN void Tcl_DoWhenIdle _ANSI_ARGS_((Tcl_IdleProc * proc,
- ClientData clientData));
-/* 117 */
-EXTERN char * Tcl_DStringAppend _ANSI_ARGS_((Tcl_DString * dsPtr,
- CONST char * str, int length));
-/* 118 */
-EXTERN char * Tcl_DStringAppendElement _ANSI_ARGS_((
- Tcl_DString * dsPtr, CONST char * string));
-/* 119 */
-EXTERN void Tcl_DStringEndSublist _ANSI_ARGS_((
- Tcl_DString * dsPtr));
-/* 120 */
-EXTERN void Tcl_DStringFree _ANSI_ARGS_((Tcl_DString * dsPtr));
-/* 121 */
-EXTERN void Tcl_DStringGetResult _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_DString * dsPtr));
-/* 122 */
-EXTERN void Tcl_DStringInit _ANSI_ARGS_((Tcl_DString * dsPtr));
-/* 123 */
-EXTERN void Tcl_DStringResult _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_DString * dsPtr));
-/* 124 */
-EXTERN void Tcl_DStringSetLength _ANSI_ARGS_((
- Tcl_DString * dsPtr, int length));
-/* 125 */
-EXTERN void Tcl_DStringStartSublist _ANSI_ARGS_((
- Tcl_DString * dsPtr));
-/* 126 */
-EXTERN int Tcl_Eof _ANSI_ARGS_((Tcl_Channel chan));
-/* 127 */
-EXTERN CONST84_RETURN char * Tcl_ErrnoId _ANSI_ARGS_((void));
-/* 128 */
-EXTERN CONST84_RETURN char * Tcl_ErrnoMsg _ANSI_ARGS_((int err));
-/* 129 */
-EXTERN int Tcl_Eval _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * string));
-/* 130 */
-EXTERN int Tcl_EvalFile _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * fileName));
-/* 131 */
-EXTERN int Tcl_EvalObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr));
-/* 132 */
-EXTERN void Tcl_EventuallyFree _ANSI_ARGS_((
- ClientData clientData,
- Tcl_FreeProc * freeProc));
-/* 133 */
-EXTERN void Tcl_Exit _ANSI_ARGS_((int status));
-/* 134 */
-EXTERN int Tcl_ExposeCommand _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * hiddenCmdToken,
- CONST char * cmdName));
-/* 135 */
-EXTERN int Tcl_ExprBoolean _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, int * ptr));
-/* 136 */
-EXTERN int Tcl_ExprBooleanObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, int * ptr));
-/* 137 */
-EXTERN int Tcl_ExprDouble _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, double * ptr));
-/* 138 */
-EXTERN int Tcl_ExprDoubleObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, double * ptr));
-/* 139 */
-EXTERN int Tcl_ExprLong _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, long * ptr));
-/* 140 */
-EXTERN int Tcl_ExprLongObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, long * ptr));
-/* 141 */
-EXTERN int Tcl_ExprObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, Tcl_Obj ** resultPtrPtr));
-/* 142 */
-EXTERN int Tcl_ExprString _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * string));
-/* 143 */
-EXTERN void Tcl_Finalize _ANSI_ARGS_((void));
-/* 144 */
-EXTERN void Tcl_FindExecutable _ANSI_ARGS_((CONST char * argv0));
-/* 145 */
-EXTERN Tcl_HashEntry * Tcl_FirstHashEntry _ANSI_ARGS_((
- Tcl_HashTable * tablePtr,
- Tcl_HashSearch * searchPtr));
-/* 146 */
-EXTERN int Tcl_Flush _ANSI_ARGS_((Tcl_Channel chan));
-/* 147 */
-EXTERN void Tcl_FreeResult _ANSI_ARGS_((Tcl_Interp * interp));
-/* 148 */
-EXTERN int Tcl_GetAlias _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * slaveCmd,
- Tcl_Interp ** targetInterpPtr,
- CONST84 char ** targetCmdPtr, int * argcPtr,
- CONST84 char *** argvPtr));
-/* 149 */
-EXTERN int Tcl_GetAliasObj _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * slaveCmd,
- Tcl_Interp ** targetInterpPtr,
- CONST84 char ** targetCmdPtr, int * objcPtr,
- Tcl_Obj *** objv));
-/* 150 */
-EXTERN ClientData Tcl_GetAssocData _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name,
- Tcl_InterpDeleteProc ** procPtr));
-/* 151 */
-EXTERN Tcl_Channel Tcl_GetChannel _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * chanName, int * modePtr));
-/* 152 */
-EXTERN int Tcl_GetChannelBufferSize _ANSI_ARGS_((
- Tcl_Channel chan));
-/* 153 */
-EXTERN int Tcl_GetChannelHandle _ANSI_ARGS_((Tcl_Channel chan,
- int direction, ClientData * handlePtr));
-/* 154 */
-EXTERN ClientData Tcl_GetChannelInstanceData _ANSI_ARGS_((
- Tcl_Channel chan));
-/* 155 */
-EXTERN int Tcl_GetChannelMode _ANSI_ARGS_((Tcl_Channel chan));
-/* 156 */
-EXTERN CONST84_RETURN char * Tcl_GetChannelName _ANSI_ARGS_((
- Tcl_Channel chan));
-/* 157 */
-EXTERN int Tcl_GetChannelOption _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Channel chan,
- CONST char * optionName, Tcl_DString * dsPtr));
-/* 158 */
-EXTERN Tcl_ChannelType * Tcl_GetChannelType _ANSI_ARGS_((Tcl_Channel chan));
-/* 159 */
-EXTERN int Tcl_GetCommandInfo _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * cmdName, Tcl_CmdInfo * infoPtr));
-/* 160 */
-EXTERN CONST84_RETURN char * Tcl_GetCommandName _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Command command));
-/* 161 */
-EXTERN int Tcl_GetErrno _ANSI_ARGS_((void));
-/* 162 */
-EXTERN CONST84_RETURN char * Tcl_GetHostName _ANSI_ARGS_((void));
-/* 163 */
-EXTERN int Tcl_GetInterpPath _ANSI_ARGS_((
- Tcl_Interp * askInterp,
- Tcl_Interp * slaveInterp));
-/* 164 */
-EXTERN Tcl_Interp * Tcl_GetMaster _ANSI_ARGS_((Tcl_Interp * interp));
-/* 165 */
-EXTERN CONST char * Tcl_GetNameOfExecutable _ANSI_ARGS_((void));
-/* 166 */
-EXTERN Tcl_Obj * Tcl_GetObjResult _ANSI_ARGS_((Tcl_Interp * interp));
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-/* 167 */
-EXTERN int Tcl_GetOpenFile _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, int forWriting,
- int checkUsage, ClientData * filePtr));
-#endif /* UNIX */
-/* 168 */
-EXTERN Tcl_PathType Tcl_GetPathType _ANSI_ARGS_((CONST char * path));
-/* 169 */
-EXTERN int Tcl_Gets _ANSI_ARGS_((Tcl_Channel chan,
- Tcl_DString * dsPtr));
-/* 170 */
-EXTERN int Tcl_GetsObj _ANSI_ARGS_((Tcl_Channel chan,
- Tcl_Obj * objPtr));
-/* 171 */
-EXTERN int Tcl_GetServiceMode _ANSI_ARGS_((void));
-/* 172 */
-EXTERN Tcl_Interp * Tcl_GetSlave _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * slaveName));
-/* 173 */
-EXTERN Tcl_Channel Tcl_GetStdChannel _ANSI_ARGS_((int type));
-/* 174 */
-EXTERN CONST84_RETURN char * Tcl_GetStringResult _ANSI_ARGS_((
- Tcl_Interp * interp));
-/* 175 */
-EXTERN CONST84_RETURN char * Tcl_GetVar _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName, int flags));
-/* 176 */
-EXTERN CONST84_RETURN char * Tcl_GetVar2 _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * part1, CONST char * part2,
- int flags));
-/* 177 */
-EXTERN int Tcl_GlobalEval _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * command));
-/* 178 */
-EXTERN int Tcl_GlobalEvalObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr));
-/* 179 */
-EXTERN int Tcl_HideCommand _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * cmdName,
- CONST char * hiddenCmdToken));
-/* 180 */
-EXTERN int Tcl_Init _ANSI_ARGS_((Tcl_Interp * interp));
-/* 181 */
-EXTERN void Tcl_InitHashTable _ANSI_ARGS_((
- Tcl_HashTable * tablePtr, int keyType));
-/* 182 */
-EXTERN int Tcl_InputBlocked _ANSI_ARGS_((Tcl_Channel chan));
-/* 183 */
-EXTERN int Tcl_InputBuffered _ANSI_ARGS_((Tcl_Channel chan));
-/* 184 */
-EXTERN int Tcl_InterpDeleted _ANSI_ARGS_((Tcl_Interp * interp));
-/* 185 */
-EXTERN int Tcl_IsSafe _ANSI_ARGS_((Tcl_Interp * interp));
-/* 186 */
-EXTERN char * Tcl_JoinPath _ANSI_ARGS_((int argc,
- CONST84 char * CONST * objv,
- Tcl_DString * resultPtr));
-/* 187 */
-EXTERN int Tcl_LinkVar _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName, char * addr, int type));
-/* Slot 188 is reserved */
-/* 189 */
-EXTERN Tcl_Channel Tcl_MakeFileChannel _ANSI_ARGS_((ClientData handle,
- int mode));
-/* 190 */
-EXTERN int Tcl_MakeSafe _ANSI_ARGS_((Tcl_Interp * interp));
-/* 191 */
-EXTERN Tcl_Channel Tcl_MakeTcpClientChannel _ANSI_ARGS_((
- ClientData tcpSocket));
-/* 192 */
-EXTERN char * Tcl_Merge _ANSI_ARGS_((int argc,
- CONST84 char * CONST * objv));
-/* 193 */
-EXTERN Tcl_HashEntry * Tcl_NextHashEntry _ANSI_ARGS_((
- Tcl_HashSearch * searchPtr));
-/* 194 */
-EXTERN void Tcl_NotifyChannel _ANSI_ARGS_((Tcl_Channel channel,
- int mask));
-/* 195 */
-EXTERN Tcl_Obj * Tcl_ObjGetVar2 _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr,
- int flags));
-/* 196 */
-EXTERN Tcl_Obj * Tcl_ObjSetVar2 _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr,
- Tcl_Obj * newValuePtr, int flags));
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-/* 197 */
-EXTERN Tcl_Channel Tcl_OpenCommandChannel _ANSI_ARGS_((
- Tcl_Interp * interp, int argc,
- CONST84 Tcl_Obj *CONST *objv, int flags));
-#endif /* UNIX */
-#ifdef __WIN32__
-/* 197 */
-EXTERN Tcl_Channel Tcl_OpenCommandChannel _ANSI_ARGS_((
- Tcl_Interp * interp, int argc,
- CONST84 Tcl_Obj *CONST *objv, int flags));
-#endif /* __WIN32__ */
-/* 198 */
-EXTERN Tcl_Channel Tcl_OpenFileChannel _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * fileName,
- CONST char * modeString, int permissions));
-/* 199 */
-EXTERN Tcl_Channel Tcl_OpenTcpClient _ANSI_ARGS_((Tcl_Interp * interp,
- int port, CONST char * address,
- CONST char * myaddr, int myport, int async));
-/* 200 */
-EXTERN Tcl_Channel Tcl_OpenTcpServer _ANSI_ARGS_((Tcl_Interp * interp,
- int port, CONST char * host,
- Tcl_TcpAcceptProc * acceptProc,
- ClientData callbackData));
-/* 201 */
-EXTERN void Tcl_Preserve _ANSI_ARGS_((ClientData data));
-/* 202 */
-EXTERN void Tcl_PrintDouble _ANSI_ARGS_((Tcl_Interp * interp,
- double value, char * dst));
-/* 203 */
-EXTERN int Tcl_PutEnv _ANSI_ARGS_((CONST char * string));
-/* 204 */
-EXTERN CONST84_RETURN char * Tcl_PosixError _ANSI_ARGS_((Tcl_Interp * interp));
-/* 205 */
-EXTERN void Tcl_QueueEvent _ANSI_ARGS_((Tcl_Event * evPtr,
- Tcl_QueuePosition position));
-/* 206 */
-EXTERN int Tcl_Read _ANSI_ARGS_((Tcl_Channel chan,
- char * bufPtr, int toRead));
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-/* 207 */
-EXTERN void Tcl_ReapDetachedProcs _ANSI_ARGS_((void));
-#endif /* UNIX */
-#ifdef __WIN32__
-/* 207 */
-EXTERN void Tcl_ReapDetachedProcs _ANSI_ARGS_((void));
-#endif /* __WIN32__ */
-/* 208 */
-EXTERN int Tcl_RecordAndEval _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * cmd, int flags));
-/* 209 */
-EXTERN int Tcl_RecordAndEvalObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * cmdPtr,
- int flags));
-/* 210 */
-EXTERN void Tcl_RegisterChannel _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Channel chan));
-/* 211 */
-EXTERN void Tcl_RegisterObjType _ANSI_ARGS_((
- Tcl_ObjType * typePtr));
-/* 212 */
-EXTERN Tcl_RegExp Tcl_RegExpCompile _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * string));
-/* 213 */
-EXTERN int Tcl_RegExpExec _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_RegExp regexp, CONST char * str,
- CONST char * start));
-/* 214 */
-EXTERN int Tcl_RegExpMatch _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, CONST char * pattern));
-/* 215 */
-EXTERN void Tcl_RegExpRange _ANSI_ARGS_((Tcl_RegExp regexp,
- int index, CONST84 char ** startPtr,
- CONST84 char ** endPtr));
-/* 216 */
-EXTERN void Tcl_Release _ANSI_ARGS_((ClientData clientData));
-/* 217 */
-EXTERN void Tcl_ResetResult _ANSI_ARGS_((Tcl_Interp * interp));
-/* 218 */
-EXTERN int Tcl_ScanElement _ANSI_ARGS_((CONST char * str,
- int * flagPtr));
-/* 219 */
-EXTERN int Tcl_ScanCountedElement _ANSI_ARGS_((CONST char * str,
- int length, int * flagPtr));
-/* 220 */
-EXTERN int Tcl_SeekOld _ANSI_ARGS_((Tcl_Channel chan,
- int offset, int mode));
-/* 221 */
-EXTERN int Tcl_ServiceAll _ANSI_ARGS_((void));
-/* 222 */
-EXTERN int Tcl_ServiceEvent _ANSI_ARGS_((int flags));
-/* 223 */
-EXTERN void Tcl_SetAssocData _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name,
- Tcl_InterpDeleteProc * proc,
- ClientData clientData));
-/* 224 */
-EXTERN void Tcl_SetChannelBufferSize _ANSI_ARGS_((
- Tcl_Channel chan, int sz));
-/* 225 */
-EXTERN int Tcl_SetChannelOption _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Channel chan,
- CONST char * optionName,
- CONST char * newValue));
-/* 226 */
-EXTERN int Tcl_SetCommandInfo _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * cmdName,
- CONST Tcl_CmdInfo * infoPtr));
-/* 227 */
-EXTERN void Tcl_SetErrno _ANSI_ARGS_((int err));
-/* 228 */
-EXTERN void Tcl_SetErrorCode _ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp));
-/* 229 */
-EXTERN void Tcl_SetMaxBlockTime _ANSI_ARGS_((Tcl_Time * timePtr));
-/* 230 */
-EXTERN void Tcl_SetPanicProc _ANSI_ARGS_((
- Tcl_PanicProc * panicProc));
-/* 231 */
-EXTERN int Tcl_SetRecursionLimit _ANSI_ARGS_((
- Tcl_Interp * interp, int depth));
-/* 232 */
-EXTERN void Tcl_SetResult _ANSI_ARGS_((Tcl_Interp * interp,
- char * str, Tcl_FreeProc * freeProc));
-/* 233 */
-EXTERN int Tcl_SetServiceMode _ANSI_ARGS_((int mode));
-/* 234 */
-EXTERN void Tcl_SetObjErrorCode _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * errorObjPtr));
-/* 235 */
-EXTERN void Tcl_SetObjResult _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * resultObjPtr));
-/* 236 */
-EXTERN void Tcl_SetStdChannel _ANSI_ARGS_((Tcl_Channel channel,
- int type));
-/* 237 */
-EXTERN CONST84_RETURN char * Tcl_SetVar _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName, CONST char * newValue,
- int flags));
-/* 238 */
-EXTERN CONST84_RETURN char * Tcl_SetVar2 _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * part1, CONST char * part2,
- CONST char * newValue, int flags));
-/* 239 */
-EXTERN CONST84_RETURN char * Tcl_SignalId _ANSI_ARGS_((int sig));
-/* 240 */
-EXTERN CONST84_RETURN char * Tcl_SignalMsg _ANSI_ARGS_((int sig));
-/* 241 */
-EXTERN void Tcl_SourceRCFile _ANSI_ARGS_((Tcl_Interp * interp));
-/* 242 */
-EXTERN int Tcl_SplitList _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * listStr, int * argcPtr,
- CONST84 char *** argvPtr));
-/* 243 */
-EXTERN void Tcl_SplitPath _ANSI_ARGS_((CONST char * path,
- int * argcPtr, CONST84 char *** argvPtr));
-/* 244 */
-EXTERN void Tcl_StaticPackage _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * pkgName,
- Tcl_PackageInitProc * initProc,
- Tcl_PackageInitProc * safeInitProc));
-/* 245 */
-EXTERN int Tcl_StringMatch _ANSI_ARGS_((CONST char * str,
- CONST char * pattern));
-/* 246 */
-EXTERN int Tcl_TellOld _ANSI_ARGS_((Tcl_Channel chan));
-/* 247 */
-EXTERN int Tcl_TraceVar _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName, int flags,
- Tcl_VarTraceProc * proc,
- ClientData clientData));
-/* 248 */
-EXTERN int Tcl_TraceVar2 _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * part1, CONST char * part2,
- int flags, Tcl_VarTraceProc * proc,
- ClientData clientData));
-/* 249 */
-EXTERN char * Tcl_TranslateFileName _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * name,
- Tcl_DString * bufferPtr));
-/* 250 */
-EXTERN int Tcl_Ungets _ANSI_ARGS_((Tcl_Channel chan,
- CONST char * str, int len, int atHead));
-/* 251 */
-EXTERN void Tcl_UnlinkVar _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName));
-/* 252 */
-EXTERN int Tcl_UnregisterChannel _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Channel chan));
-/* 253 */
-EXTERN int Tcl_UnsetVar _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName, int flags));
-/* 254 */
-EXTERN int Tcl_UnsetVar2 _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * part1, CONST char * part2,
- int flags));
-/* 255 */
-EXTERN void Tcl_UntraceVar _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName, int flags,
- Tcl_VarTraceProc * proc,
- ClientData clientData));
-/* 256 */
-EXTERN void Tcl_UntraceVar2 _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * part1, CONST char * part2,
- int flags, Tcl_VarTraceProc * proc,
- ClientData clientData));
-/* 257 */
-EXTERN void Tcl_UpdateLinkedVar _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName));
-/* 258 */
-EXTERN int Tcl_UpVar _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * frameName, CONST char * varName,
- CONST char * localName, int flags));
-/* 259 */
-EXTERN int Tcl_UpVar2 _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * frameName, CONST char * part1,
- CONST char * part2, CONST char * localName,
- int flags));
-/* 260 */
-EXTERN int Tcl_VarEval _ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp));
-/* 261 */
-EXTERN ClientData Tcl_VarTraceInfo _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName, int flags,
- Tcl_VarTraceProc * procPtr,
- ClientData prevClientData));
-/* 262 */
-EXTERN ClientData Tcl_VarTraceInfo2 _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * part1, CONST char * part2,
- int flags, Tcl_VarTraceProc * procPtr,
- ClientData prevClientData));
-/* 263 */
-EXTERN int Tcl_Write _ANSI_ARGS_((Tcl_Channel chan,
- CONST char * s, int slen));
-/* 264 */
-EXTERN void Tcl_WrongNumArgs _ANSI_ARGS_((Tcl_Interp * interp,
- int objc, Tcl_Obj *CONST objv[],
- CONST char * message));
-/* 265 */
-EXTERN int Tcl_DumpActiveMemory _ANSI_ARGS_((
- CONST char * fileName));
-/* 266 */
-EXTERN void Tcl_ValidateAllMemory _ANSI_ARGS_((CONST char * file,
- int line));
-/* 267 */
-EXTERN void Tcl_AppendResultVA _ANSI_ARGS_((Tcl_Interp * interp,
- va_list argList));
-/* 268 */
-EXTERN void Tcl_AppendStringsToObjVA _ANSI_ARGS_((
- Tcl_Obj * objPtr, va_list argList));
-/* 269 */
-EXTERN CONST84_RETURN char * Tcl_HashStats _ANSI_ARGS_((
- Tcl_HashTable * tablePtr));
-/* 270 */
-EXTERN CONST84_RETURN char * Tcl_ParseVar _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, CONST84 char ** termPtr));
-/* 271 */
-EXTERN CONST84_RETURN char * Tcl_PkgPresent _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name, CONST char * version,
- int exact));
-/* 272 */
-EXTERN CONST84_RETURN char * Tcl_PkgPresentEx _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * name,
- CONST char * version, int exact,
- ClientData * clientDataPtr));
-/* 273 */
-EXTERN int Tcl_PkgProvide _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name, CONST char * version));
-/* 274 */
-EXTERN CONST84_RETURN char * Tcl_PkgRequire _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name, CONST char * version,
- int exact));
-/* 275 */
-EXTERN void Tcl_SetErrorCodeVA _ANSI_ARGS_((Tcl_Interp * interp,
- va_list argList));
-/* 276 */
-EXTERN int Tcl_VarEvalVA _ANSI_ARGS_((Tcl_Interp * interp,
- va_list argList));
-/* 277 */
-EXTERN Tcl_Pid Tcl_WaitPid _ANSI_ARGS_((Tcl_Pid pid, int * statPtr,
- int options));
-/* 278 */
-EXTERN void Tcl_PanicVA _ANSI_ARGS_((CONST char * format,
- va_list argList));
-/* 279 */
-EXTERN void Tcl_GetVersion _ANSI_ARGS_((int * major, int * minor,
- int * patchLevel, int * type));
-/* 280 */
-EXTERN void Tcl_InitMemory _ANSI_ARGS_((Tcl_Interp * interp));
-/* 281 */
-EXTERN Tcl_Channel Tcl_StackChannel _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_ChannelType * typePtr,
- ClientData instanceData, int mask,
- Tcl_Channel prevChan));
-/* 282 */
-EXTERN int Tcl_UnstackChannel _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Channel chan));
-/* 283 */
-EXTERN Tcl_Channel Tcl_GetStackedChannel _ANSI_ARGS_((Tcl_Channel chan));
-/* 284 */
-EXTERN void Tcl_SetMainLoop _ANSI_ARGS_((Tcl_MainLoopProc * proc));
-/* Slot 285 is reserved */
-/* 286 */
-EXTERN void Tcl_AppendObjToObj _ANSI_ARGS_((Tcl_Obj * objPtr,
- Tcl_Obj * appendObjPtr));
-/* 287 */
-EXTERN Tcl_Encoding Tcl_CreateEncoding _ANSI_ARGS_((
- Tcl_EncodingType * typePtr));
-/* 288 */
-EXTERN void Tcl_CreateThreadExitHandler _ANSI_ARGS_((
- Tcl_ExitProc * proc, ClientData clientData));
-/* 289 */
-EXTERN void Tcl_DeleteThreadExitHandler _ANSI_ARGS_((
- Tcl_ExitProc * proc, ClientData clientData));
-/* 290 */
-EXTERN void Tcl_DiscardResult _ANSI_ARGS_((
- Tcl_SavedResult * statePtr));
-/* 291 */
-EXTERN int Tcl_EvalEx _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * script, int numBytes, int flags));
-/* 292 */
-EXTERN int Tcl_EvalObjv _ANSI_ARGS_((Tcl_Interp * interp,
- int objc, Tcl_Obj *CONST objv[], int flags));
-/* 293 */
-EXTERN int Tcl_EvalObjEx _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, int flags));
-/* 294 */
-EXTERN void Tcl_ExitThread _ANSI_ARGS_((int status));
-/* 295 */
-EXTERN int Tcl_ExternalToUtf _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Encoding encoding, CONST char * src,
- int srcLen, int flags,
- Tcl_EncodingState * statePtr, char * dst,
- int dstLen, int * srcReadPtr,
- int * dstWrotePtr, int * dstCharsPtr));
-/* 296 */
-EXTERN char * Tcl_ExternalToUtfDString _ANSI_ARGS_((
- Tcl_Encoding encoding, CONST char * src,
- int srcLen, Tcl_DString * dsPtr));
-/* 297 */
-EXTERN void Tcl_FinalizeThread _ANSI_ARGS_((void));
-/* 298 */
-EXTERN void Tcl_FinalizeNotifier _ANSI_ARGS_((
- ClientData clientData));
-/* 299 */
-EXTERN void Tcl_FreeEncoding _ANSI_ARGS_((Tcl_Encoding encoding));
-/* 300 */
-EXTERN Tcl_ThreadId Tcl_GetCurrentThread _ANSI_ARGS_((void));
-/* 301 */
-EXTERN Tcl_Encoding Tcl_GetEncoding _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name));
-/* 302 */
-EXTERN CONST84_RETURN char * Tcl_GetEncodingName _ANSI_ARGS_((
- Tcl_Encoding encoding));
-/* 303 */
-EXTERN void Tcl_GetEncodingNames _ANSI_ARGS_((
- Tcl_Interp * interp));
-/* 304 */
-EXTERN int Tcl_GetIndexFromObjStruct _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr,
- CONST VOID * tablePtr, int offset,
- CONST char * msg, int flags, int * indexPtr));
-/* 305 */
-EXTERN VOID * Tcl_GetThreadData _ANSI_ARGS_((
- Tcl_ThreadDataKey * keyPtr, int size));
-/* 306 */
-EXTERN Tcl_Obj * Tcl_GetVar2Ex _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * part1, CONST char * part2,
- int flags));
-/* 307 */
-EXTERN ClientData Tcl_InitNotifier _ANSI_ARGS_((void));
-/* 308 */
-EXTERN void Tcl_MutexLock _ANSI_ARGS_((Tcl_Mutex * mutexPtr));
-/* 309 */
-EXTERN void Tcl_MutexUnlock _ANSI_ARGS_((Tcl_Mutex * mutexPtr));
-/* 310 */
-EXTERN void Tcl_ConditionNotify _ANSI_ARGS_((
- Tcl_Condition * condPtr));
-/* 311 */
-EXTERN void Tcl_ConditionWait _ANSI_ARGS_((
- Tcl_Condition * condPtr,
- Tcl_Mutex * mutexPtr, Tcl_Time * timePtr));
-/* 312 */
-EXTERN int Tcl_NumUtfChars _ANSI_ARGS_((CONST char * src,
- int len));
-/* 313 */
-EXTERN int Tcl_ReadChars _ANSI_ARGS_((Tcl_Channel channel,
- Tcl_Obj * objPtr, int charsToRead,
- int appendFlag));
-/* 314 */
-EXTERN void Tcl_RestoreResult _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_SavedResult * statePtr));
-/* 315 */
-EXTERN void Tcl_SaveResult _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_SavedResult * statePtr));
-/* 316 */
-EXTERN int Tcl_SetSystemEncoding _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * name));
-/* 317 */
-EXTERN Tcl_Obj * Tcl_SetVar2Ex _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * part1, CONST char * part2,
- Tcl_Obj * newValuePtr, int flags));
-/* 318 */
-EXTERN void Tcl_ThreadAlert _ANSI_ARGS_((Tcl_ThreadId threadId));
-/* 319 */
-EXTERN void Tcl_ThreadQueueEvent _ANSI_ARGS_((
- Tcl_ThreadId threadId, Tcl_Event* evPtr,
- Tcl_QueuePosition position));
-/* 320 */
-EXTERN Tcl_UniChar Tcl_UniCharAtIndex _ANSI_ARGS_((CONST char * src,
- int index));
-/* 321 */
-EXTERN Tcl_UniChar Tcl_UniCharToLower _ANSI_ARGS_((int ch));
-/* 322 */
-EXTERN Tcl_UniChar Tcl_UniCharToTitle _ANSI_ARGS_((int ch));
-/* 323 */
-EXTERN Tcl_UniChar Tcl_UniCharToUpper _ANSI_ARGS_((int ch));
-/* 324 */
-EXTERN int Tcl_UniCharToUtf _ANSI_ARGS_((int ch, char * buf));
-/* 325 */
-EXTERN CONST84_RETURN char * Tcl_UtfAtIndex _ANSI_ARGS_((CONST char * src,
- int index));
-/* 326 */
-EXTERN int Tcl_UtfCharComplete _ANSI_ARGS_((CONST char * src,
- int len));
-/* 327 */
-EXTERN int Tcl_UtfBackslash _ANSI_ARGS_((CONST char * src,
- int * readPtr, char * dst));
-/* 328 */
-EXTERN CONST84_RETURN char * Tcl_UtfFindFirst _ANSI_ARGS_((CONST char * src,
- int ch));
-/* 329 */
-EXTERN CONST84_RETURN char * Tcl_UtfFindLast _ANSI_ARGS_((CONST char * src,
- int ch));
-/* 330 */
-EXTERN CONST84_RETURN char * Tcl_UtfNext _ANSI_ARGS_((CONST char * src));
-/* 331 */
-EXTERN CONST84_RETURN char * Tcl_UtfPrev _ANSI_ARGS_((CONST char * src,
- CONST char * start));
-/* 332 */
-EXTERN int Tcl_UtfToExternal _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Encoding encoding, CONST char * src,
- int srcLen, int flags,
- Tcl_EncodingState * statePtr, char * dst,
- int dstLen, int * srcReadPtr,
- int * dstWrotePtr, int * dstCharsPtr));
-/* 333 */
-EXTERN char * Tcl_UtfToExternalDString _ANSI_ARGS_((
- Tcl_Encoding encoding, CONST char * src,
- int srcLen, Tcl_DString * dsPtr));
-/* 334 */
-EXTERN int Tcl_UtfToLower _ANSI_ARGS_((char * src));
-/* 335 */
-EXTERN int Tcl_UtfToTitle _ANSI_ARGS_((char * src));
-/* 336 */
-EXTERN int Tcl_UtfToUniChar _ANSI_ARGS_((CONST char * src,
- Tcl_UniChar * chPtr));
-/* 337 */
-EXTERN int Tcl_UtfToUpper _ANSI_ARGS_((char * src));
-/* 338 */
-EXTERN int Tcl_WriteChars _ANSI_ARGS_((Tcl_Channel chan,
- CONST char * src, int srcLen));
-/* 339 */
-EXTERN int Tcl_WriteObj _ANSI_ARGS_((Tcl_Channel chan,
- Tcl_Obj * objPtr));
-/* 340 */
-EXTERN char * Tcl_GetString _ANSI_ARGS_((Tcl_Obj * objPtr));
-/* 341 */
-EXTERN CONST84_RETURN char * Tcl_GetDefaultEncodingDir _ANSI_ARGS_((void));
-/* 342 */
-EXTERN void Tcl_SetDefaultEncodingDir _ANSI_ARGS_((
- CONST char * path));
-/* 343 */
-EXTERN void Tcl_AlertNotifier _ANSI_ARGS_((ClientData clientData));
-/* 344 */
-EXTERN void Tcl_ServiceModeHook _ANSI_ARGS_((int mode));
-/* 345 */
-EXTERN int Tcl_UniCharIsAlnum _ANSI_ARGS_((int ch));
-/* 346 */
-EXTERN int Tcl_UniCharIsAlpha _ANSI_ARGS_((int ch));
-/* 347 */
-EXTERN int Tcl_UniCharIsDigit _ANSI_ARGS_((int ch));
-/* 348 */
-EXTERN int Tcl_UniCharIsLower _ANSI_ARGS_((int ch));
-/* 349 */
-EXTERN int Tcl_UniCharIsSpace _ANSI_ARGS_((int ch));
-/* 350 */
-EXTERN int Tcl_UniCharIsUpper _ANSI_ARGS_((int ch));
-/* 351 */
-EXTERN int Tcl_UniCharIsWordChar _ANSI_ARGS_((int ch));
-/* 352 */
-EXTERN int Tcl_UniCharLen _ANSI_ARGS_((CONST Tcl_UniChar * str));
-/* 353 */
-EXTERN int Tcl_UniCharNcmp _ANSI_ARGS_((CONST Tcl_UniChar * cs,
- CONST Tcl_UniChar * ct, unsigned long n));
-/* 354 */
-EXTERN char * Tcl_UniCharToUtfDString _ANSI_ARGS_((
- CONST Tcl_UniChar * string, int numChars,
- Tcl_DString * dsPtr));
-/* 355 */
-EXTERN Tcl_UniChar * Tcl_UtfToUniCharDString _ANSI_ARGS_((
- CONST char * string, int length,
- Tcl_DString * dsPtr));
-/* 356 */
-EXTERN Tcl_RegExp Tcl_GetRegExpFromObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * patObj,
- int flags));
-/* 357 */
-EXTERN Tcl_Obj * Tcl_EvalTokens _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Token * tokenPtr, int count));
-/* 358 */
-EXTERN void Tcl_FreeParse _ANSI_ARGS_((Tcl_Parse * parsePtr));
-/* 359 */
-EXTERN void Tcl_LogCommandInfo _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * script, CONST char * command,
- int length));
-/* 360 */
-EXTERN int Tcl_ParseBraces _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * string, int numBytes,
- Tcl_Parse * parsePtr, int append,
- CONST84 char ** termPtr));
-/* 361 */
-EXTERN int Tcl_ParseCommand _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * string, int numBytes,
- int nested, Tcl_Parse * parsePtr));
-/* 362 */
-EXTERN int Tcl_ParseExpr _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * string, int numBytes,
- Tcl_Parse * parsePtr));
-/* 363 */
-EXTERN int Tcl_ParseQuotedString _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * string,
- int numBytes, Tcl_Parse * parsePtr,
- int append, CONST84 char ** termPtr));
-/* 364 */
-EXTERN int Tcl_ParseVarName _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * string, int numBytes,
- Tcl_Parse * parsePtr, int append));
-/* 365 */
-EXTERN char * Tcl_GetCwd _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_DString * cwdPtr));
-/* 366 */
-EXTERN int Tcl_Chdir _ANSI_ARGS_((CONST char * dirName));
-/* 367 */
-EXTERN int Tcl_Access _ANSI_ARGS_((CONST char * path, int mode));
-/* 368 */
-EXTERN int Tcl_Stat _ANSI_ARGS_((CONST char * path,
- struct stat * bufPtr));
-/* 369 */
-EXTERN int Tcl_UtfNcmp _ANSI_ARGS_((CONST char * s1,
- CONST char * s2, unsigned long n));
-/* 370 */
-EXTERN int Tcl_UtfNcasecmp _ANSI_ARGS_((CONST char * s1,
- CONST char * s2, unsigned long n));
-/* 371 */
-EXTERN int Tcl_StringCaseMatch _ANSI_ARGS_((CONST char * str,
- CONST char * pattern, int nocase));
-/* 372 */
-EXTERN int Tcl_UniCharIsControl _ANSI_ARGS_((int ch));
-/* 373 */
-EXTERN int Tcl_UniCharIsGraph _ANSI_ARGS_((int ch));
-/* 374 */
-EXTERN int Tcl_UniCharIsPrint _ANSI_ARGS_((int ch));
-/* 375 */
-EXTERN int Tcl_UniCharIsPunct _ANSI_ARGS_((int ch));
-/* 376 */
-EXTERN int Tcl_RegExpExecObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_RegExp regexp, Tcl_Obj * objPtr,
- int offset, int nmatches, int flags));
-/* 377 */
-EXTERN void Tcl_RegExpGetInfo _ANSI_ARGS_((Tcl_RegExp regexp,
- Tcl_RegExpInfo * infoPtr));
-/* 378 */
-EXTERN Tcl_Obj * Tcl_NewUnicodeObj _ANSI_ARGS_((
- CONST Tcl_UniChar * unicode, int numChars));
-/* 379 */
-EXTERN void Tcl_SetUnicodeObj _ANSI_ARGS_((Tcl_Obj * objPtr,
- CONST Tcl_UniChar * unicode, int numChars));
-/* 380 */
-EXTERN int Tcl_GetCharLength _ANSI_ARGS_((Tcl_Obj * objPtr));
-/* 381 */
-EXTERN Tcl_UniChar Tcl_GetUniChar _ANSI_ARGS_((Tcl_Obj * objPtr,
- int index));
-/* 382 */
-EXTERN Tcl_UniChar * Tcl_GetUnicode _ANSI_ARGS_((Tcl_Obj * objPtr));
-/* 383 */
-EXTERN Tcl_Obj * Tcl_GetRange _ANSI_ARGS_((Tcl_Obj * objPtr,
- int first, int last));
-/* 384 */
-EXTERN void Tcl_AppendUnicodeToObj _ANSI_ARGS_((Tcl_Obj * objPtr,
- CONST Tcl_UniChar * unicode, int length));
-/* 385 */
-EXTERN int Tcl_RegExpMatchObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * stringObj, Tcl_Obj * patternObj));
-/* 386 */
-EXTERN void Tcl_SetNotifier _ANSI_ARGS_((
- Tcl_NotifierProcs * notifierProcPtr));
-/* 387 */
-EXTERN Tcl_Mutex * Tcl_GetAllocMutex _ANSI_ARGS_((void));
-/* 388 */
-EXTERN int Tcl_GetChannelNames _ANSI_ARGS_((Tcl_Interp * interp));
-/* 389 */
-EXTERN int Tcl_GetChannelNamesEx _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * pattern));
-/* 390 */
-EXTERN int Tcl_ProcObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp * interp, int objc,
- Tcl_Obj *CONST objv[]));
-/* 391 */
-EXTERN void Tcl_ConditionFinalize _ANSI_ARGS_((
- Tcl_Condition * condPtr));
-/* 392 */
-EXTERN void Tcl_MutexFinalize _ANSI_ARGS_((Tcl_Mutex * mutex));
-/* 393 */
-EXTERN int Tcl_CreateThread _ANSI_ARGS_((Tcl_ThreadId * idPtr,
- Tcl_ThreadCreateProc proc,
- ClientData clientData, int stackSize,
- int flags));
-/* 394 */
-EXTERN int Tcl_ReadRaw _ANSI_ARGS_((Tcl_Channel chan,
- char * dst, int bytesToRead));
-/* 395 */
-EXTERN int Tcl_WriteRaw _ANSI_ARGS_((Tcl_Channel chan,
- CONST char * src, int srcLen));
-/* 396 */
-EXTERN Tcl_Channel Tcl_GetTopChannel _ANSI_ARGS_((Tcl_Channel chan));
-/* 397 */
-EXTERN int Tcl_ChannelBuffered _ANSI_ARGS_((Tcl_Channel chan));
-/* 398 */
-EXTERN CONST84_RETURN char * Tcl_ChannelName _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 399 */
-EXTERN Tcl_ChannelTypeVersion Tcl_ChannelVersion _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 400 */
-EXTERN Tcl_DriverBlockModeProc * Tcl_ChannelBlockModeProc _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 401 */
-EXTERN Tcl_DriverCloseProc * Tcl_ChannelCloseProc _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 402 */
-EXTERN Tcl_DriverClose2Proc * Tcl_ChannelClose2Proc _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 403 */
-EXTERN Tcl_DriverInputProc * Tcl_ChannelInputProc _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 404 */
-EXTERN Tcl_DriverOutputProc * Tcl_ChannelOutputProc _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 405 */
-EXTERN Tcl_DriverSeekProc * Tcl_ChannelSeekProc _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 406 */
-EXTERN Tcl_DriverSetOptionProc * Tcl_ChannelSetOptionProc _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 407 */
-EXTERN Tcl_DriverGetOptionProc * Tcl_ChannelGetOptionProc _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 408 */
-EXTERN Tcl_DriverWatchProc * Tcl_ChannelWatchProc _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 409 */
-EXTERN Tcl_DriverGetHandleProc * Tcl_ChannelGetHandleProc _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 410 */
-EXTERN Tcl_DriverFlushProc * Tcl_ChannelFlushProc _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 411 */
-EXTERN Tcl_DriverHandlerProc * Tcl_ChannelHandlerProc _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-/* 412 */
-EXTERN int Tcl_JoinThread _ANSI_ARGS_((Tcl_ThreadId threadId,
- int* result));
-/* 413 */
-EXTERN int Tcl_IsChannelShared _ANSI_ARGS_((Tcl_Channel channel));
-/* 414 */
-EXTERN int Tcl_IsChannelRegistered _ANSI_ARGS_((
- Tcl_Interp* interp, Tcl_Channel channel));
-/* 415 */
-EXTERN void Tcl_CutChannel _ANSI_ARGS_((Tcl_Channel channel));
-/* 416 */
-EXTERN void Tcl_SpliceChannel _ANSI_ARGS_((Tcl_Channel channel));
-/* 417 */
-EXTERN void Tcl_ClearChannelHandlers _ANSI_ARGS_((
- Tcl_Channel channel));
-/* 418 */
-EXTERN int Tcl_IsChannelExisting _ANSI_ARGS_((
- CONST char* channelName));
-/* 419 */
-EXTERN int Tcl_UniCharNcasecmp _ANSI_ARGS_((
- CONST Tcl_UniChar * cs,
- CONST Tcl_UniChar * ct, unsigned long n));
-/* 420 */
-EXTERN int Tcl_UniCharCaseMatch _ANSI_ARGS_((
- CONST Tcl_UniChar * ustr,
- CONST Tcl_UniChar * pattern, int nocase));
-/* 421 */
-EXTERN Tcl_HashEntry * Tcl_FindHashEntry _ANSI_ARGS_((
- Tcl_HashTable * tablePtr, CONST char * key));
-/* 422 */
-EXTERN Tcl_HashEntry * Tcl_CreateHashEntry _ANSI_ARGS_((
- Tcl_HashTable * tablePtr, CONST char * key,
- int * newPtr));
-/* 423 */
-EXTERN void Tcl_InitCustomHashTable _ANSI_ARGS_((
- Tcl_HashTable * tablePtr, int keyType,
- Tcl_HashKeyType * typePtr));
-/* 424 */
-EXTERN void Tcl_InitObjHashTable _ANSI_ARGS_((
- Tcl_HashTable * tablePtr));
-/* 425 */
-EXTERN ClientData Tcl_CommandTraceInfo _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * varName,
- int flags, Tcl_CommandTraceProc * procPtr,
- ClientData prevClientData));
-/* 426 */
-EXTERN int Tcl_TraceCommand _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName, int flags,
- Tcl_CommandTraceProc * proc,
- ClientData clientData));
-/* 427 */
-EXTERN void Tcl_UntraceCommand _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName, int flags,
- Tcl_CommandTraceProc * proc,
- ClientData clientData));
-/* 428 */
-EXTERN char * Tcl_AttemptAlloc _ANSI_ARGS_((unsigned int size));
-/* 429 */
-EXTERN char * Tcl_AttemptDbCkalloc _ANSI_ARGS_((unsigned int size,
- CONST char * file, int line));
-/* 430 */
-EXTERN char * Tcl_AttemptRealloc _ANSI_ARGS_((char * ptr,
- unsigned int size));
-/* 431 */
-EXTERN char * Tcl_AttemptDbCkrealloc _ANSI_ARGS_((char * ptr,
- unsigned int size, CONST char * file,
- int line));
-/* 432 */
-EXTERN int Tcl_AttemptSetObjLength _ANSI_ARGS_((
- Tcl_Obj * objPtr, int length));
-/* 433 */
-EXTERN Tcl_ThreadId Tcl_GetChannelThread _ANSI_ARGS_((
- Tcl_Channel channel));
-/* 434 */
-EXTERN Tcl_UniChar * Tcl_GetUnicodeFromObj _ANSI_ARGS_((Tcl_Obj * objPtr,
- int * lengthPtr));
-/* 435 */
-EXTERN int Tcl_GetMathFuncInfo _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name, int * numArgsPtr,
- Tcl_ValueType ** argTypesPtr,
- Tcl_MathProc ** procPtr,
- ClientData * clientDataPtr));
-/* 436 */
-EXTERN Tcl_Obj * Tcl_ListMathFuncs _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * pattern));
-/* 437 */
-EXTERN Tcl_Obj * Tcl_SubstObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, int flags));
-/* 438 */
-EXTERN int Tcl_DetachChannel _ANSI_ARGS_((Tcl_Interp* interp,
- Tcl_Channel channel));
-/* 439 */
-EXTERN int Tcl_IsStandardChannel _ANSI_ARGS_((
- Tcl_Channel channel));
-/* 440 */
-EXTERN int Tcl_FSCopyFile _ANSI_ARGS_((Tcl_Obj * srcPathPtr,
- Tcl_Obj * destPathPtr));
-/* 441 */
-EXTERN int Tcl_FSCopyDirectory _ANSI_ARGS_((
- Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr,
- Tcl_Obj ** errorPtr));
-/* 442 */
-EXTERN int Tcl_FSCreateDirectory _ANSI_ARGS_((Tcl_Obj * pathPtr));
-/* 443 */
-EXTERN int Tcl_FSDeleteFile _ANSI_ARGS_((Tcl_Obj * pathPtr));
-/* 444 */
-EXTERN int Tcl_FSLoadFile _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * pathPtr, CONST char * sym1,
- CONST char * sym2,
- Tcl_PackageInitProc ** proc1Ptr,
- Tcl_PackageInitProc ** proc2Ptr,
- Tcl_LoadHandle * handlePtr,
- Tcl_FSUnloadFileProc ** unloadProcPtr));
-/* 445 */
-EXTERN int Tcl_FSMatchInDirectory _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * result,
- Tcl_Obj * pathPtr, CONST char * pattern,
- Tcl_GlobTypeData * types));
-/* 446 */
-EXTERN Tcl_Obj * Tcl_FSLink _ANSI_ARGS_((Tcl_Obj * pathPtr,
- Tcl_Obj * toPtr, int linkAction));
-/* 447 */
-EXTERN int Tcl_FSRemoveDirectory _ANSI_ARGS_((Tcl_Obj * pathPtr,
- int recursive, Tcl_Obj ** errorPtr));
-/* 448 */
-EXTERN int Tcl_FSRenameFile _ANSI_ARGS_((Tcl_Obj * srcPathPtr,
- Tcl_Obj * destPathPtr));
-/* 449 */
-EXTERN int Tcl_FSLstat _ANSI_ARGS_((Tcl_Obj * pathPtr,
- Tcl_StatBuf * buf));
-/* 450 */
-EXTERN int Tcl_FSUtime _ANSI_ARGS_((Tcl_Obj * pathPtr,
- struct utimbuf * tval));
-/* 451 */
-EXTERN int Tcl_FSFileAttrsGet _ANSI_ARGS_((Tcl_Interp * interp,
- int index, Tcl_Obj * pathPtr,
- Tcl_Obj ** objPtrRef));
-/* 452 */
-EXTERN int Tcl_FSFileAttrsSet _ANSI_ARGS_((Tcl_Interp * interp,
- int index, Tcl_Obj * pathPtr,
- Tcl_Obj * objPtr));
-/* 453 */
-EXTERN CONST char ** Tcl_FSFileAttrStrings _ANSI_ARGS_((Tcl_Obj * pathPtr,
- Tcl_Obj ** objPtrRef));
-/* 454 */
-EXTERN int Tcl_FSStat _ANSI_ARGS_((Tcl_Obj * pathPtr,
- Tcl_StatBuf * buf));
-/* 455 */
-EXTERN int Tcl_FSAccess _ANSI_ARGS_((Tcl_Obj * pathPtr,
- int mode));
-/* 456 */
-EXTERN Tcl_Channel Tcl_FSOpenFileChannel _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * pathPtr,
- CONST char * modeString, int permissions));
-/* 457 */
-EXTERN Tcl_Obj* Tcl_FSGetCwd _ANSI_ARGS_((Tcl_Interp * interp));
-/* 458 */
-EXTERN int Tcl_FSChdir _ANSI_ARGS_((Tcl_Obj * pathPtr));
-/* 459 */
-EXTERN int Tcl_FSConvertToPathType _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * pathPtr));
-/* 460 */
-EXTERN Tcl_Obj* Tcl_FSJoinPath _ANSI_ARGS_((Tcl_Obj * listObj,
- int elements));
-/* 461 */
-EXTERN Tcl_Obj* Tcl_FSSplitPath _ANSI_ARGS_((Tcl_Obj* pathPtr,
- int * lenPtr));
-/* 462 */
-EXTERN int Tcl_FSEqualPaths _ANSI_ARGS_((Tcl_Obj* firstPtr,
- Tcl_Obj* secondPtr));
-/* 463 */
-EXTERN Tcl_Obj* Tcl_FSGetNormalizedPath _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj* pathObjPtr));
-/* 464 */
-EXTERN Tcl_Obj* Tcl_FSJoinToPath _ANSI_ARGS_((Tcl_Obj * basePtr,
- int objc, Tcl_Obj *CONST objv[]));
-/* 465 */
-EXTERN ClientData Tcl_FSGetInternalRep _ANSI_ARGS_((
- Tcl_Obj* pathObjPtr, Tcl_Filesystem * fsPtr));
-/* 466 */
-EXTERN Tcl_Obj* Tcl_FSGetTranslatedPath _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj* pathPtr));
-/* 467 */
-EXTERN int Tcl_FSEvalFile _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * fileName));
-/* 468 */
-EXTERN Tcl_Obj* Tcl_FSNewNativePath _ANSI_ARGS_((
- Tcl_Filesystem* fromFilesystem,
- ClientData clientData));
-/* 469 */
-EXTERN CONST char* Tcl_FSGetNativePath _ANSI_ARGS_((Tcl_Obj* pathObjPtr));
-/* 470 */
-EXTERN Tcl_Obj* Tcl_FSFileSystemInfo _ANSI_ARGS_((
- Tcl_Obj* pathObjPtr));
-/* 471 */
-EXTERN Tcl_Obj* Tcl_FSPathSeparator _ANSI_ARGS_((Tcl_Obj* pathObjPtr));
-/* 472 */
-EXTERN Tcl_Obj* Tcl_FSListVolumes _ANSI_ARGS_((void));
-/* 473 */
-EXTERN int Tcl_FSRegister _ANSI_ARGS_((ClientData clientData,
- Tcl_Filesystem * fsPtr));
-/* 474 */
-EXTERN int Tcl_FSUnregister _ANSI_ARGS_((Tcl_Filesystem * fsPtr));
-/* 475 */
-EXTERN ClientData Tcl_FSData _ANSI_ARGS_((Tcl_Filesystem * fsPtr));
-/* 476 */
-EXTERN CONST char* Tcl_FSGetTranslatedStringPath _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj* pathPtr));
-/* 477 */
-EXTERN Tcl_Filesystem* Tcl_FSGetFileSystemForPath _ANSI_ARGS_((
- Tcl_Obj* pathObjPtr));
-/* 478 */
-EXTERN Tcl_PathType Tcl_FSGetPathType _ANSI_ARGS_((Tcl_Obj * pathObjPtr));
-/* 479 */
-EXTERN int Tcl_OutputBuffered _ANSI_ARGS_((Tcl_Channel chan));
-/* 480 */
-EXTERN void Tcl_FSMountsChanged _ANSI_ARGS_((
- Tcl_Filesystem * fsPtr));
-/* 481 */
-EXTERN int Tcl_EvalTokensStandard _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Token * tokenPtr,
- int count));
-/* 482 */
-EXTERN void Tcl_GetTime _ANSI_ARGS_((Tcl_Time* timeBuf));
-/* 483 */
-EXTERN Tcl_Trace Tcl_CreateObjTrace _ANSI_ARGS_((Tcl_Interp* interp,
- int level, int flags,
- Tcl_CmdObjTraceProc* objProc,
- ClientData clientData,
- Tcl_CmdObjTraceDeleteProc* delProc));
-/* 484 */
-EXTERN int Tcl_GetCommandInfoFromToken _ANSI_ARGS_((
- Tcl_Command token, Tcl_CmdInfo* infoPtr));
-/* 485 */
-EXTERN int Tcl_SetCommandInfoFromToken _ANSI_ARGS_((
- Tcl_Command token,
- CONST Tcl_CmdInfo* infoPtr));
-/* 486 */
-EXTERN Tcl_Obj * Tcl_DbNewWideIntObj _ANSI_ARGS_((
- Tcl_WideInt wideValue, CONST char * file,
- int line));
-/* 487 */
-EXTERN int Tcl_GetWideIntFromObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr,
- Tcl_WideInt * widePtr));
-/* 488 */
-EXTERN Tcl_Obj * Tcl_NewWideIntObj _ANSI_ARGS_((Tcl_WideInt wideValue));
-/* 489 */
-EXTERN void Tcl_SetWideIntObj _ANSI_ARGS_((Tcl_Obj * objPtr,
- Tcl_WideInt wideValue));
-/* 490 */
-EXTERN Tcl_StatBuf * Tcl_AllocStatBuf _ANSI_ARGS_((void));
-/* 491 */
-EXTERN Tcl_WideInt Tcl_Seek _ANSI_ARGS_((Tcl_Channel chan,
- Tcl_WideInt offset, int mode));
-/* 492 */
-EXTERN Tcl_WideInt Tcl_Tell _ANSI_ARGS_((Tcl_Channel chan));
-/* 493 */
-EXTERN Tcl_DriverWideSeekProc * Tcl_ChannelWideSeekProc _ANSI_ARGS_((
- Tcl_ChannelType * chanTypePtr));
-
-typedef struct TclStubHooks {
- struct TclPlatStubs *tclPlatStubs;
- struct TclIntStubs *tclIntStubs;
- struct TclIntPlatStubs *tclIntPlatStubs;
-} TclStubHooks;
-
-typedef struct TclStubs {
- int magic;
- struct TclStubHooks *hooks;
-
- int (*tcl_PkgProvideEx) _ANSI_ARGS_((Tcl_Interp* interp, CONST char* name, CONST char* version, ClientData clientData)); /* 0 */
- CONST84_RETURN char * (*tcl_PkgRequireEx) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version, int exact, ClientData * clientDataPtr)); /* 1 */
- void (*tcl_Panic) _ANSI_ARGS_(TCL_VARARGS(CONST char *,format)); /* 2 */
- char * (*tcl_Alloc) _ANSI_ARGS_((unsigned int size)); /* 3 */
- void (*tcl_Free) _ANSI_ARGS_((char * ptr)); /* 4 */
- char * (*tcl_Realloc) _ANSI_ARGS_((char * ptr, unsigned int size)); /* 5 */
- char * (*tcl_DbCkalloc) _ANSI_ARGS_((unsigned int size, CONST char * file, int line)); /* 6 */
- int (*tcl_DbCkfree) _ANSI_ARGS_((char * ptr, CONST char * file, int line)); /* 7 */
- char * (*tcl_DbCkrealloc) _ANSI_ARGS_((char * ptr, unsigned int size, CONST char * file, int line)); /* 8 */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void (*tcl_CreateFileHandler) _ANSI_ARGS_((int fd, int mask, Tcl_FileProc * proc, ClientData clientData)); /* 9 */
-#endif /* UNIX */
-#ifdef __WIN32__
- void *reserved9;
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void *reserved9;
-#endif /* MAC_TCL */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void (*tcl_DeleteFileHandler) _ANSI_ARGS_((int fd)); /* 10 */
-#endif /* UNIX */
-#ifdef __WIN32__
- void *reserved10;
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void *reserved10;
-#endif /* MAC_TCL */
- void (*tcl_SetTimer) _ANSI_ARGS_((Tcl_Time * timePtr)); /* 11 */
- void (*tcl_Sleep) _ANSI_ARGS_((int ms)); /* 12 */
- int (*tcl_WaitForEvent) _ANSI_ARGS_((Tcl_Time * timePtr)); /* 13 */
- int (*tcl_AppendAllObjTypes) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr)); /* 14 */
- void (*tcl_AppendStringsToObj) _ANSI_ARGS_(TCL_VARARGS(Tcl_Obj *,objPtr)); /* 15 */
- void (*tcl_AppendToObj) _ANSI_ARGS_((Tcl_Obj* objPtr, CONST char* bytes, int length)); /* 16 */
- Tcl_Obj * (*tcl_ConcatObj) _ANSI_ARGS_((int objc, Tcl_Obj *CONST objv[])); /* 17 */
- int (*tcl_ConvertToType) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_ObjType * typePtr)); /* 18 */
- void (*tcl_DbDecrRefCount) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST char * file, int line)); /* 19 */
- void (*tcl_DbIncrRefCount) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST char * file, int line)); /* 20 */
- int (*tcl_DbIsShared) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST char * file, int line)); /* 21 */
- Tcl_Obj * (*tcl_DbNewBooleanObj) _ANSI_ARGS_((int boolValue, CONST char * file, int line)); /* 22 */
- Tcl_Obj * (*tcl_DbNewByteArrayObj) _ANSI_ARGS_((CONST unsigned char * bytes, int length, CONST char * file, int line)); /* 23 */
- Tcl_Obj * (*tcl_DbNewDoubleObj) _ANSI_ARGS_((double doubleValue, CONST char * file, int line)); /* 24 */
- Tcl_Obj * (*tcl_DbNewListObj) _ANSI_ARGS_((int objc, Tcl_Obj *CONST * objv, CONST char * file, int line)); /* 25 */
- Tcl_Obj * (*tcl_DbNewLongObj) _ANSI_ARGS_((long longValue, CONST char * file, int line)); /* 26 */
- Tcl_Obj * (*tcl_DbNewObj) _ANSI_ARGS_((CONST char * file, int line)); /* 27 */
- Tcl_Obj * (*tcl_DbNewStringObj) _ANSI_ARGS_((CONST char * bytes, int length, CONST char * file, int line)); /* 28 */
- Tcl_Obj * (*tcl_DuplicateObj) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 29 */
- void (*tclFreeObj) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 30 */
- int (*tcl_GetBoolean) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int * boolPtr)); /* 31 */
- int (*tcl_GetBooleanFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int * boolPtr)); /* 32 */
- unsigned char * (*tcl_GetByteArrayFromObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int * lengthPtr)); /* 33 */
- int (*tcl_GetDouble) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, double * doublePtr)); /* 34 */
- int (*tcl_GetDoubleFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, double * doublePtr)); /* 35 */
- int (*tcl_GetIndexFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, CONST84 char ** tablePtr, CONST char * msg, int flags, int * indexPtr)); /* 36 */
- int (*tcl_GetInt) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int * intPtr)); /* 37 */
- int (*tcl_GetIntFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int * intPtr)); /* 38 */
- int (*tcl_GetLongFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, long * longPtr)); /* 39 */
- Tcl_ObjType * (*tcl_GetObjType) _ANSI_ARGS_((CONST char * typeName)); /* 40 */
- char * (*tcl_GetStringFromObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int * lengthPtr)); /* 41 */
- void (*tcl_InvalidateStringRep) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 42 */
- int (*tcl_ListObjAppendList) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * elemListPtr)); /* 43 */
- int (*tcl_ListObjAppendElement) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * objPtr)); /* 44 */
- int (*tcl_ListObjGetElements) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int * objcPtr, Tcl_Obj *** objvPtr)); /* 45 */
- int (*tcl_ListObjIndex) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int index, Tcl_Obj ** objPtrPtr)); /* 46 */
- int (*tcl_ListObjLength) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int * lengthPtr)); /* 47 */
- int (*tcl_ListObjReplace) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int first, int count, int objc, Tcl_Obj *CONST objv[])); /* 48 */
- Tcl_Obj * (*tcl_NewBooleanObj) _ANSI_ARGS_((int boolValue)); /* 49 */
- Tcl_Obj * (*tcl_NewByteArrayObj) _ANSI_ARGS_((CONST unsigned char* bytes, int length)); /* 50 */
- Tcl_Obj * (*tcl_NewDoubleObj) _ANSI_ARGS_((double doubleValue)); /* 51 */
- Tcl_Obj * (*tcl_NewIntObj) _ANSI_ARGS_((int intValue)); /* 52 */
- Tcl_Obj * (*tcl_NewListObj) _ANSI_ARGS_((int objc, Tcl_Obj *CONST objv[])); /* 53 */
- Tcl_Obj * (*tcl_NewLongObj) _ANSI_ARGS_((long longValue)); /* 54 */
- Tcl_Obj * (*tcl_NewObj) _ANSI_ARGS_((void)); /* 55 */
- Tcl_Obj * (*tcl_NewStringObj) _ANSI_ARGS_((CONST char * bytes, int length)); /* 56 */
- void (*tcl_SetBooleanObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int boolValue)); /* 57 */
- unsigned char * (*tcl_SetByteArrayLength) _ANSI_ARGS_((Tcl_Obj * objPtr, int length)); /* 58 */
- void (*tcl_SetByteArrayObj) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST unsigned char * bytes, int length)); /* 59 */
- void (*tcl_SetDoubleObj) _ANSI_ARGS_((Tcl_Obj * objPtr, double doubleValue)); /* 60 */
- void (*tcl_SetIntObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int intValue)); /* 61 */
- void (*tcl_SetListObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int objc, Tcl_Obj *CONST objv[])); /* 62 */
- void (*tcl_SetLongObj) _ANSI_ARGS_((Tcl_Obj * objPtr, long longValue)); /* 63 */
- void (*tcl_SetObjLength) _ANSI_ARGS_((Tcl_Obj * objPtr, int length)); /* 64 */
- void (*tcl_SetStringObj) _ANSI_ARGS_((Tcl_Obj* objPtr, CONST char* bytes, int length)); /* 65 */
- void (*tcl_AddErrorInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * message)); /* 66 */
- void (*tcl_AddObjErrorInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * message, int length)); /* 67 */
- void (*tcl_AllowExceptions) _ANSI_ARGS_((Tcl_Interp * interp)); /* 68 */
- void (*tcl_AppendElement) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string)); /* 69 */
- void (*tcl_AppendResult) _ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp)); /* 70 */
- Tcl_AsyncHandler (*tcl_AsyncCreate) _ANSI_ARGS_((Tcl_AsyncProc * proc, ClientData clientData)); /* 71 */
- void (*tcl_AsyncDelete) _ANSI_ARGS_((Tcl_AsyncHandler async)); /* 72 */
- int (*tcl_AsyncInvoke) _ANSI_ARGS_((Tcl_Interp * interp, int code)); /* 73 */
- void (*tcl_AsyncMark) _ANSI_ARGS_((Tcl_AsyncHandler async)); /* 74 */
- int (*tcl_AsyncReady) _ANSI_ARGS_((void)); /* 75 */
- void (*tcl_BackgroundError) _ANSI_ARGS_((Tcl_Interp * interp)); /* 76 */
- char (*tcl_Backslash) _ANSI_ARGS_((CONST char * src, int * readPtr)); /* 77 */
- int (*tcl_BadChannelOption) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * optionName, CONST char * optionList)); /* 78 */
- void (*tcl_CallWhenDeleted) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData)); /* 79 */
- void (*tcl_CancelIdleCall) _ANSI_ARGS_((Tcl_IdleProc * idleProc, ClientData clientData)); /* 80 */
- int (*tcl_Close) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan)); /* 81 */
- int (*tcl_CommandComplete) _ANSI_ARGS_((CONST char * cmd)); /* 82 */
- char * (*tcl_Concat) _ANSI_ARGS_((int argc, CONST84 char * CONST * objv)); /* 83 */
- int (*tcl_ConvertElement) _ANSI_ARGS_((CONST char * src, char * dst, int flags)); /* 84 */
- int (*tcl_ConvertCountedElement) _ANSI_ARGS_((CONST char * src, int length, char * dst, int flags)); /* 85 */
- int (*tcl_CreateAlias) _ANSI_ARGS_((Tcl_Interp * slave, CONST char * slaveCmd, Tcl_Interp * target, CONST char * targetCmd, int argc, CONST84 char * CONST * objv)); /* 86 */
- int (*tcl_CreateAliasObj) _ANSI_ARGS_((Tcl_Interp * slave, CONST char * slaveCmd, Tcl_Interp * target, CONST char * targetCmd, int objc, Tcl_Obj *CONST objv[])); /* 87 */
- Tcl_Channel (*tcl_CreateChannel) _ANSI_ARGS_((Tcl_ChannelType * typePtr, CONST char * chanName, ClientData instanceData, int mask)); /* 88 */
- void (*tcl_CreateChannelHandler) _ANSI_ARGS_((Tcl_Channel chan, int mask, Tcl_ChannelProc * proc, ClientData clientData)); /* 89 */
- void (*tcl_CreateCloseHandler) _ANSI_ARGS_((Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData)); /* 90 */
- Tcl_Command (*tcl_CreateCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName, Tcl_CmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc)); /* 91 */
- void (*tcl_CreateEventSource) _ANSI_ARGS_((Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData)); /* 92 */
- void (*tcl_CreateExitHandler) _ANSI_ARGS_((Tcl_ExitProc * proc, ClientData clientData)); /* 93 */
- Tcl_Interp * (*tcl_CreateInterp) _ANSI_ARGS_((void)); /* 94 */
- void (*tcl_CreateMathFunc) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, int numArgs, Tcl_ValueType * argTypes, Tcl_MathProc * proc, ClientData clientData)); /* 95 */
- Tcl_Command (*tcl_CreateObjCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName, Tcl_ObjCmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc)); /* 96 */
- Tcl_Interp * (*tcl_CreateSlave) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * slaveName, int isSafe)); /* 97 */
- Tcl_TimerToken (*tcl_CreateTimerHandler) _ANSI_ARGS_((int milliseconds, Tcl_TimerProc * proc, ClientData clientData)); /* 98 */
- Tcl_Trace (*tcl_CreateTrace) _ANSI_ARGS_((Tcl_Interp * interp, int level, Tcl_CmdTraceProc * proc, ClientData clientData)); /* 99 */
- void (*tcl_DeleteAssocData) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name)); /* 100 */
- void (*tcl_DeleteChannelHandler) _ANSI_ARGS_((Tcl_Channel chan, Tcl_ChannelProc * proc, ClientData clientData)); /* 101 */
- void (*tcl_DeleteCloseHandler) _ANSI_ARGS_((Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData)); /* 102 */
- int (*tcl_DeleteCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName)); /* 103 */
- int (*tcl_DeleteCommandFromToken) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Command command)); /* 104 */
- void (*tcl_DeleteEvents) _ANSI_ARGS_((Tcl_EventDeleteProc * proc, ClientData clientData)); /* 105 */
- void (*tcl_DeleteEventSource) _ANSI_ARGS_((Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData)); /* 106 */
- void (*tcl_DeleteExitHandler) _ANSI_ARGS_((Tcl_ExitProc * proc, ClientData clientData)); /* 107 */
- void (*tcl_DeleteHashEntry) _ANSI_ARGS_((Tcl_HashEntry * entryPtr)); /* 108 */
- void (*tcl_DeleteHashTable) _ANSI_ARGS_((Tcl_HashTable * tablePtr)); /* 109 */
- void (*tcl_DeleteInterp) _ANSI_ARGS_((Tcl_Interp * interp)); /* 110 */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void (*tcl_DetachPids) _ANSI_ARGS_((int numPids, Tcl_Pid * pidPtr)); /* 111 */
-#endif /* UNIX */
-#ifdef __WIN32__
- void (*tcl_DetachPids) _ANSI_ARGS_((int numPids, Tcl_Pid * pidPtr)); /* 111 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void *reserved111;
-#endif /* MAC_TCL */
- void (*tcl_DeleteTimerHandler) _ANSI_ARGS_((Tcl_TimerToken token)); /* 112 */
- void (*tcl_DeleteTrace) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Trace trace)); /* 113 */
- void (*tcl_DontCallWhenDeleted) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData)); /* 114 */
- int (*tcl_DoOneEvent) _ANSI_ARGS_((int flags)); /* 115 */
- void (*tcl_DoWhenIdle) _ANSI_ARGS_((Tcl_IdleProc * proc, ClientData clientData)); /* 116 */
- char * (*tcl_DStringAppend) _ANSI_ARGS_((Tcl_DString * dsPtr, CONST char * str, int length)); /* 117 */
- char * (*tcl_DStringAppendElement) _ANSI_ARGS_((Tcl_DString * dsPtr, CONST char * string)); /* 118 */
- void (*tcl_DStringEndSublist) _ANSI_ARGS_((Tcl_DString * dsPtr)); /* 119 */
- void (*tcl_DStringFree) _ANSI_ARGS_((Tcl_DString * dsPtr)); /* 120 */
- void (*tcl_DStringGetResult) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_DString * dsPtr)); /* 121 */
- void (*tcl_DStringInit) _ANSI_ARGS_((Tcl_DString * dsPtr)); /* 122 */
- void (*tcl_DStringResult) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_DString * dsPtr)); /* 123 */
- void (*tcl_DStringSetLength) _ANSI_ARGS_((Tcl_DString * dsPtr, int length)); /* 124 */
- void (*tcl_DStringStartSublist) _ANSI_ARGS_((Tcl_DString * dsPtr)); /* 125 */
- int (*tcl_Eof) _ANSI_ARGS_((Tcl_Channel chan)); /* 126 */
- CONST84_RETURN char * (*tcl_ErrnoId) _ANSI_ARGS_((void)); /* 127 */
- CONST84_RETURN char * (*tcl_ErrnoMsg) _ANSI_ARGS_((int err)); /* 128 */
- int (*tcl_Eval) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string)); /* 129 */
- int (*tcl_EvalFile) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * fileName)); /* 130 */
- int (*tcl_EvalObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr)); /* 131 */
- void (*tcl_EventuallyFree) _ANSI_ARGS_((ClientData clientData, Tcl_FreeProc * freeProc)); /* 132 */
- void (*tcl_Exit) _ANSI_ARGS_((int status)); /* 133 */
- int (*tcl_ExposeCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * hiddenCmdToken, CONST char * cmdName)); /* 134 */
- int (*tcl_ExprBoolean) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int * ptr)); /* 135 */
- int (*tcl_ExprBooleanObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int * ptr)); /* 136 */
- int (*tcl_ExprDouble) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, double * ptr)); /* 137 */
- int (*tcl_ExprDoubleObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, double * ptr)); /* 138 */
- int (*tcl_ExprLong) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, long * ptr)); /* 139 */
- int (*tcl_ExprLongObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, long * ptr)); /* 140 */
- int (*tcl_ExprObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_Obj ** resultPtrPtr)); /* 141 */
- int (*tcl_ExprString) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string)); /* 142 */
- void (*tcl_Finalize) _ANSI_ARGS_((void)); /* 143 */
- void (*tcl_FindExecutable) _ANSI_ARGS_((CONST char * argv0)); /* 144 */
- Tcl_HashEntry * (*tcl_FirstHashEntry) _ANSI_ARGS_((Tcl_HashTable * tablePtr, Tcl_HashSearch * searchPtr)); /* 145 */
- int (*tcl_Flush) _ANSI_ARGS_((Tcl_Channel chan)); /* 146 */
- void (*tcl_FreeResult) _ANSI_ARGS_((Tcl_Interp * interp)); /* 147 */
- int (*tcl_GetAlias) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * slaveCmd, Tcl_Interp ** targetInterpPtr, CONST84 char ** targetCmdPtr, int * argcPtr, CONST84 char *** argvPtr)); /* 148 */
- int (*tcl_GetAliasObj) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * slaveCmd, Tcl_Interp ** targetInterpPtr, CONST84 char ** targetCmdPtr, int * objcPtr, Tcl_Obj *** objv)); /* 149 */
- ClientData (*tcl_GetAssocData) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_InterpDeleteProc ** procPtr)); /* 150 */
- Tcl_Channel (*tcl_GetChannel) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * chanName, int * modePtr)); /* 151 */
- int (*tcl_GetChannelBufferSize) _ANSI_ARGS_((Tcl_Channel chan)); /* 152 */
- int (*tcl_GetChannelHandle) _ANSI_ARGS_((Tcl_Channel chan, int direction, ClientData * handlePtr)); /* 153 */
- ClientData (*tcl_GetChannelInstanceData) _ANSI_ARGS_((Tcl_Channel chan)); /* 154 */
- int (*tcl_GetChannelMode) _ANSI_ARGS_((Tcl_Channel chan)); /* 155 */
- CONST84_RETURN char * (*tcl_GetChannelName) _ANSI_ARGS_((Tcl_Channel chan)); /* 156 */
- int (*tcl_GetChannelOption) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan, CONST char * optionName, Tcl_DString * dsPtr)); /* 157 */
- Tcl_ChannelType * (*tcl_GetChannelType) _ANSI_ARGS_((Tcl_Channel chan)); /* 158 */
- int (*tcl_GetCommandInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName, Tcl_CmdInfo * infoPtr)); /* 159 */
- CONST84_RETURN char * (*tcl_GetCommandName) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Command command)); /* 160 */
- int (*tcl_GetErrno) _ANSI_ARGS_((void)); /* 161 */
- CONST84_RETURN char * (*tcl_GetHostName) _ANSI_ARGS_((void)); /* 162 */
- int (*tcl_GetInterpPath) _ANSI_ARGS_((Tcl_Interp * askInterp, Tcl_Interp * slaveInterp)); /* 163 */
- Tcl_Interp * (*tcl_GetMaster) _ANSI_ARGS_((Tcl_Interp * interp)); /* 164 */
- CONST char * (*tcl_GetNameOfExecutable) _ANSI_ARGS_((void)); /* 165 */
- Tcl_Obj * (*tcl_GetObjResult) _ANSI_ARGS_((Tcl_Interp * interp)); /* 166 */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- int (*tcl_GetOpenFile) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int forWriting, int checkUsage, ClientData * filePtr)); /* 167 */
-#endif /* UNIX */
-#ifdef __WIN32__
- void *reserved167;
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void *reserved167;
-#endif /* MAC_TCL */
- Tcl_PathType (*tcl_GetPathType) _ANSI_ARGS_((CONST char * path)); /* 168 */
- int (*tcl_Gets) _ANSI_ARGS_((Tcl_Channel chan, Tcl_DString * dsPtr)); /* 169 */
- int (*tcl_GetsObj) _ANSI_ARGS_((Tcl_Channel chan, Tcl_Obj * objPtr)); /* 170 */
- int (*tcl_GetServiceMode) _ANSI_ARGS_((void)); /* 171 */
- Tcl_Interp * (*tcl_GetSlave) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * slaveName)); /* 172 */
- Tcl_Channel (*tcl_GetStdChannel) _ANSI_ARGS_((int type)); /* 173 */
- CONST84_RETURN char * (*tcl_GetStringResult) _ANSI_ARGS_((Tcl_Interp * interp)); /* 174 */
- CONST84_RETURN char * (*tcl_GetVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags)); /* 175 */
- CONST84_RETURN char * (*tcl_GetVar2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags)); /* 176 */
- int (*tcl_GlobalEval) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * command)); /* 177 */
- int (*tcl_GlobalEvalObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr)); /* 178 */
- int (*tcl_HideCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName, CONST char * hiddenCmdToken)); /* 179 */
- int (*tcl_Init) _ANSI_ARGS_((Tcl_Interp * interp)); /* 180 */
- void (*tcl_InitHashTable) _ANSI_ARGS_((Tcl_HashTable * tablePtr, int keyType)); /* 181 */
- int (*tcl_InputBlocked) _ANSI_ARGS_((Tcl_Channel chan)); /* 182 */
- int (*tcl_InputBuffered) _ANSI_ARGS_((Tcl_Channel chan)); /* 183 */
- int (*tcl_InterpDeleted) _ANSI_ARGS_((Tcl_Interp * interp)); /* 184 */
- int (*tcl_IsSafe) _ANSI_ARGS_((Tcl_Interp * interp)); /* 185 */
- char * (*tcl_JoinPath) _ANSI_ARGS_((int argc, CONST84 char * CONST * objv, Tcl_DString * resultPtr)); /* 186 */
- int (*tcl_LinkVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, char * addr, int type)); /* 187 */
- void *reserved188;
- Tcl_Channel (*tcl_MakeFileChannel) _ANSI_ARGS_((ClientData handle, int mode)); /* 189 */
- int (*tcl_MakeSafe) _ANSI_ARGS_((Tcl_Interp * interp)); /* 190 */
- Tcl_Channel (*tcl_MakeTcpClientChannel) _ANSI_ARGS_((ClientData tcpSocket)); /* 191 */
- char * (*tcl_Merge) _ANSI_ARGS_((int argc, CONST84 char * CONST * objv)); /* 192 */
- Tcl_HashEntry * (*tcl_NextHashEntry) _ANSI_ARGS_((Tcl_HashSearch * searchPtr)); /* 193 */
- void (*tcl_NotifyChannel) _ANSI_ARGS_((Tcl_Channel channel, int mask)); /* 194 */
- Tcl_Obj * (*tcl_ObjGetVar2) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, int flags)); /* 195 */
- Tcl_Obj * (*tcl_ObjSetVar2) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, Tcl_Obj * newValuePtr, int flags)); /* 196 */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- Tcl_Channel (*tcl_OpenCommandChannel) _ANSI_ARGS_((Tcl_Interp * interp, int argc, CONST84 Tcl_Obj *CONST *objv, int flags)); /* 197 */
-#endif /* UNIX */
-#ifdef __WIN32__
- Tcl_Channel (*tcl_OpenCommandChannel) _ANSI_ARGS_((Tcl_Interp * interp, int argc, CONST84 Tcl_Obj *CONST *objv, int flags)); /* 197 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void *reserved197;
-#endif /* MAC_TCL */
- Tcl_Channel (*tcl_OpenFileChannel) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * fileName, CONST char * modeString, int permissions)); /* 198 */
- Tcl_Channel (*tcl_OpenTcpClient) _ANSI_ARGS_((Tcl_Interp * interp, int port, CONST char * address, CONST char * myaddr, int myport, int async)); /* 199 */
- Tcl_Channel (*tcl_OpenTcpServer) _ANSI_ARGS_((Tcl_Interp * interp, int port, CONST char * host, Tcl_TcpAcceptProc * acceptProc, ClientData callbackData)); /* 200 */
- void (*tcl_Preserve) _ANSI_ARGS_((ClientData data)); /* 201 */
- void (*tcl_PrintDouble) _ANSI_ARGS_((Tcl_Interp * interp, double value, char * dst)); /* 202 */
- int (*tcl_PutEnv) _ANSI_ARGS_((CONST char * string)); /* 203 */
- CONST84_RETURN char * (*tcl_PosixError) _ANSI_ARGS_((Tcl_Interp * interp)); /* 204 */
- void (*tcl_QueueEvent) _ANSI_ARGS_((Tcl_Event * evPtr, Tcl_QueuePosition position)); /* 205 */
- int (*tcl_Read) _ANSI_ARGS_((Tcl_Channel chan, char * bufPtr, int toRead)); /* 206 */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void (*tcl_ReapDetachedProcs) _ANSI_ARGS_((void)); /* 207 */
-#endif /* UNIX */
-#ifdef __WIN32__
- void (*tcl_ReapDetachedProcs) _ANSI_ARGS_((void)); /* 207 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void *reserved207;
-#endif /* MAC_TCL */
- int (*tcl_RecordAndEval) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmd, int flags)); /* 208 */
- int (*tcl_RecordAndEvalObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * cmdPtr, int flags)); /* 209 */
- void (*tcl_RegisterChannel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan)); /* 210 */
- void (*tcl_RegisterObjType) _ANSI_ARGS_((Tcl_ObjType * typePtr)); /* 211 */
- Tcl_RegExp (*tcl_RegExpCompile) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string)); /* 212 */
- int (*tcl_RegExpExec) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_RegExp regexp, CONST char * str, CONST char * start)); /* 213 */
- int (*tcl_RegExpMatch) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, CONST char * pattern)); /* 214 */
- void (*tcl_RegExpRange) _ANSI_ARGS_((Tcl_RegExp regexp, int index, CONST84 char ** startPtr, CONST84 char ** endPtr)); /* 215 */
- void (*tcl_Release) _ANSI_ARGS_((ClientData clientData)); /* 216 */
- void (*tcl_ResetResult) _ANSI_ARGS_((Tcl_Interp * interp)); /* 217 */
- int (*tcl_ScanElement) _ANSI_ARGS_((CONST char * str, int * flagPtr)); /* 218 */
- int (*tcl_ScanCountedElement) _ANSI_ARGS_((CONST char * str, int length, int * flagPtr)); /* 219 */
- int (*tcl_SeekOld) _ANSI_ARGS_((Tcl_Channel chan, int offset, int mode)); /* 220 */
- int (*tcl_ServiceAll) _ANSI_ARGS_((void)); /* 221 */
- int (*tcl_ServiceEvent) _ANSI_ARGS_((int flags)); /* 222 */
- void (*tcl_SetAssocData) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_InterpDeleteProc * proc, ClientData clientData)); /* 223 */
- void (*tcl_SetChannelBufferSize) _ANSI_ARGS_((Tcl_Channel chan, int sz)); /* 224 */
- int (*tcl_SetChannelOption) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan, CONST char * optionName, CONST char * newValue)); /* 225 */
- int (*tcl_SetCommandInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName, CONST Tcl_CmdInfo * infoPtr)); /* 226 */
- void (*tcl_SetErrno) _ANSI_ARGS_((int err)); /* 227 */
- void (*tcl_SetErrorCode) _ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp)); /* 228 */
- void (*tcl_SetMaxBlockTime) _ANSI_ARGS_((Tcl_Time * timePtr)); /* 229 */
- void (*tcl_SetPanicProc) _ANSI_ARGS_((Tcl_PanicProc * panicProc)); /* 230 */
- int (*tcl_SetRecursionLimit) _ANSI_ARGS_((Tcl_Interp * interp, int depth)); /* 231 */
- void (*tcl_SetResult) _ANSI_ARGS_((Tcl_Interp * interp, char * str, Tcl_FreeProc * freeProc)); /* 232 */
- int (*tcl_SetServiceMode) _ANSI_ARGS_((int mode)); /* 233 */
- void (*tcl_SetObjErrorCode) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * errorObjPtr)); /* 234 */
- void (*tcl_SetObjResult) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * resultObjPtr)); /* 235 */
- void (*tcl_SetStdChannel) _ANSI_ARGS_((Tcl_Channel channel, int type)); /* 236 */
- CONST84_RETURN char * (*tcl_SetVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, CONST char * newValue, int flags)); /* 237 */
- CONST84_RETURN char * (*tcl_SetVar2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, CONST char * newValue, int flags)); /* 238 */
- CONST84_RETURN char * (*tcl_SignalId) _ANSI_ARGS_((int sig)); /* 239 */
- CONST84_RETURN char * (*tcl_SignalMsg) _ANSI_ARGS_((int sig)); /* 240 */
- void (*tcl_SourceRCFile) _ANSI_ARGS_((Tcl_Interp * interp)); /* 241 */
- int (*tcl_SplitList) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * listStr, int * argcPtr, CONST84 char *** argvPtr)); /* 242 */
- void (*tcl_SplitPath) _ANSI_ARGS_((CONST char * path, int * argcPtr, CONST84 char *** argvPtr)); /* 243 */
- void (*tcl_StaticPackage) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * pkgName, Tcl_PackageInitProc * initProc, Tcl_PackageInitProc * safeInitProc)); /* 244 */
- int (*tcl_StringMatch) _ANSI_ARGS_((CONST char * str, CONST char * pattern)); /* 245 */
- int (*tcl_TellOld) _ANSI_ARGS_((Tcl_Channel chan)); /* 246 */
- int (*tcl_TraceVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData)); /* 247 */
- int (*tcl_TraceVar2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData)); /* 248 */
- char * (*tcl_TranslateFileName) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_DString * bufferPtr)); /* 249 */
- int (*tcl_Ungets) _ANSI_ARGS_((Tcl_Channel chan, CONST char * str, int len, int atHead)); /* 250 */
- void (*tcl_UnlinkVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName)); /* 251 */
- int (*tcl_UnregisterChannel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan)); /* 252 */
- int (*tcl_UnsetVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags)); /* 253 */
- int (*tcl_UnsetVar2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags)); /* 254 */
- void (*tcl_UntraceVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData)); /* 255 */
- void (*tcl_UntraceVar2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData)); /* 256 */
- void (*tcl_UpdateLinkedVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName)); /* 257 */
- int (*tcl_UpVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * frameName, CONST char * varName, CONST char * localName, int flags)); /* 258 */
- int (*tcl_UpVar2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * frameName, CONST char * part1, CONST char * part2, CONST char * localName, int flags)); /* 259 */
- int (*tcl_VarEval) _ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp)); /* 260 */
- ClientData (*tcl_VarTraceInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData)); /* 261 */
- ClientData (*tcl_VarTraceInfo2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData)); /* 262 */
- int (*tcl_Write) _ANSI_ARGS_((Tcl_Channel chan, CONST char * s, int slen)); /* 263 */
- void (*tcl_WrongNumArgs) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], CONST char * message)); /* 264 */
- int (*tcl_DumpActiveMemory) _ANSI_ARGS_((CONST char * fileName)); /* 265 */
- void (*tcl_ValidateAllMemory) _ANSI_ARGS_((CONST char * file, int line)); /* 266 */
- void (*tcl_AppendResultVA) _ANSI_ARGS_((Tcl_Interp * interp, va_list argList)); /* 267 */
- void (*tcl_AppendStringsToObjVA) _ANSI_ARGS_((Tcl_Obj * objPtr, va_list argList)); /* 268 */
- CONST84_RETURN char * (*tcl_HashStats) _ANSI_ARGS_((Tcl_HashTable * tablePtr)); /* 269 */
- CONST84_RETURN char * (*tcl_ParseVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, CONST84 char ** termPtr)); /* 270 */
- CONST84_RETURN char * (*tcl_PkgPresent) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version, int exact)); /* 271 */
- CONST84_RETURN char * (*tcl_PkgPresentEx) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version, int exact, ClientData * clientDataPtr)); /* 272 */
- int (*tcl_PkgProvide) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version)); /* 273 */
- CONST84_RETURN char * (*tcl_PkgRequire) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version, int exact)); /* 274 */
- void (*tcl_SetErrorCodeVA) _ANSI_ARGS_((Tcl_Interp * interp, va_list argList)); /* 275 */
- int (*tcl_VarEvalVA) _ANSI_ARGS_((Tcl_Interp * interp, va_list argList)); /* 276 */
- Tcl_Pid (*tcl_WaitPid) _ANSI_ARGS_((Tcl_Pid pid, int * statPtr, int options)); /* 277 */
- void (*tcl_PanicVA) _ANSI_ARGS_((CONST char * format, va_list argList)); /* 278 */
- void (*tcl_GetVersion) _ANSI_ARGS_((int * major, int * minor, int * patchLevel, int * type)); /* 279 */
- void (*tcl_InitMemory) _ANSI_ARGS_((Tcl_Interp * interp)); /* 280 */
- Tcl_Channel (*tcl_StackChannel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_ChannelType * typePtr, ClientData instanceData, int mask, Tcl_Channel prevChan)); /* 281 */
- int (*tcl_UnstackChannel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan)); /* 282 */
- Tcl_Channel (*tcl_GetStackedChannel) _ANSI_ARGS_((Tcl_Channel chan)); /* 283 */
- void (*tcl_SetMainLoop) _ANSI_ARGS_((Tcl_MainLoopProc * proc)); /* 284 */
- void *reserved285;
- void (*tcl_AppendObjToObj) _ANSI_ARGS_((Tcl_Obj * objPtr, Tcl_Obj * appendObjPtr)); /* 286 */
- Tcl_Encoding (*tcl_CreateEncoding) _ANSI_ARGS_((Tcl_EncodingType * typePtr)); /* 287 */
- void (*tcl_CreateThreadExitHandler) _ANSI_ARGS_((Tcl_ExitProc * proc, ClientData clientData)); /* 288 */
- void (*tcl_DeleteThreadExitHandler) _ANSI_ARGS_((Tcl_ExitProc * proc, ClientData clientData)); /* 289 */
- void (*tcl_DiscardResult) _ANSI_ARGS_((Tcl_SavedResult * statePtr)); /* 290 */
- int (*tcl_EvalEx) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * script, int numBytes, int flags)); /* 291 */
- int (*tcl_EvalObjv) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], int flags)); /* 292 */
- int (*tcl_EvalObjEx) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int flags)); /* 293 */
- void (*tcl_ExitThread) _ANSI_ARGS_((int status)); /* 294 */
- int (*tcl_ExternalToUtf) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Encoding encoding, CONST char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr)); /* 295 */
- char * (*tcl_ExternalToUtfDString) _ANSI_ARGS_((Tcl_Encoding encoding, CONST char * src, int srcLen, Tcl_DString * dsPtr)); /* 296 */
- void (*tcl_FinalizeThread) _ANSI_ARGS_((void)); /* 297 */
- void (*tcl_FinalizeNotifier) _ANSI_ARGS_((ClientData clientData)); /* 298 */
- void (*tcl_FreeEncoding) _ANSI_ARGS_((Tcl_Encoding encoding)); /* 299 */
- Tcl_ThreadId (*tcl_GetCurrentThread) _ANSI_ARGS_((void)); /* 300 */
- Tcl_Encoding (*tcl_GetEncoding) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name)); /* 301 */
- CONST84_RETURN char * (*tcl_GetEncodingName) _ANSI_ARGS_((Tcl_Encoding encoding)); /* 302 */
- void (*tcl_GetEncodingNames) _ANSI_ARGS_((Tcl_Interp * interp)); /* 303 */
- int (*tcl_GetIndexFromObjStruct) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, CONST VOID * tablePtr, int offset, CONST char * msg, int flags, int * indexPtr)); /* 304 */
- VOID * (*tcl_GetThreadData) _ANSI_ARGS_((Tcl_ThreadDataKey * keyPtr, int size)); /* 305 */
- Tcl_Obj * (*tcl_GetVar2Ex) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags)); /* 306 */
- ClientData (*tcl_InitNotifier) _ANSI_ARGS_((void)); /* 307 */
- void (*tcl_MutexLock) _ANSI_ARGS_((Tcl_Mutex * mutexPtr)); /* 308 */
- void (*tcl_MutexUnlock) _ANSI_ARGS_((Tcl_Mutex * mutexPtr)); /* 309 */
- void (*tcl_ConditionNotify) _ANSI_ARGS_((Tcl_Condition * condPtr)); /* 310 */
- void (*tcl_ConditionWait) _ANSI_ARGS_((Tcl_Condition * condPtr, Tcl_Mutex * mutexPtr, Tcl_Time * timePtr)); /* 311 */
- int (*tcl_NumUtfChars) _ANSI_ARGS_((CONST char * src, int len)); /* 312 */
- int (*tcl_ReadChars) _ANSI_ARGS_((Tcl_Channel channel, Tcl_Obj * objPtr, int charsToRead, int appendFlag)); /* 313 */
- void (*tcl_RestoreResult) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_SavedResult * statePtr)); /* 314 */
- void (*tcl_SaveResult) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_SavedResult * statePtr)); /* 315 */
- int (*tcl_SetSystemEncoding) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name)); /* 316 */
- Tcl_Obj * (*tcl_SetVar2Ex) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, Tcl_Obj * newValuePtr, int flags)); /* 317 */
- void (*tcl_ThreadAlert) _ANSI_ARGS_((Tcl_ThreadId threadId)); /* 318 */
- void (*tcl_ThreadQueueEvent) _ANSI_ARGS_((Tcl_ThreadId threadId, Tcl_Event* evPtr, Tcl_QueuePosition position)); /* 319 */
- Tcl_UniChar (*tcl_UniCharAtIndex) _ANSI_ARGS_((CONST char * src, int index)); /* 320 */
- Tcl_UniChar (*tcl_UniCharToLower) _ANSI_ARGS_((int ch)); /* 321 */
- Tcl_UniChar (*tcl_UniCharToTitle) _ANSI_ARGS_((int ch)); /* 322 */
- Tcl_UniChar (*tcl_UniCharToUpper) _ANSI_ARGS_((int ch)); /* 323 */
- int (*tcl_UniCharToUtf) _ANSI_ARGS_((int ch, char * buf)); /* 324 */
- CONST84_RETURN char * (*tcl_UtfAtIndex) _ANSI_ARGS_((CONST char * src, int index)); /* 325 */
- int (*tcl_UtfCharComplete) _ANSI_ARGS_((CONST char * src, int len)); /* 326 */
- int (*tcl_UtfBackslash) _ANSI_ARGS_((CONST char * src, int * readPtr, char * dst)); /* 327 */
- CONST84_RETURN char * (*tcl_UtfFindFirst) _ANSI_ARGS_((CONST char * src, int ch)); /* 328 */
- CONST84_RETURN char * (*tcl_UtfFindLast) _ANSI_ARGS_((CONST char * src, int ch)); /* 329 */
- CONST84_RETURN char * (*tcl_UtfNext) _ANSI_ARGS_((CONST char * src)); /* 330 */
- CONST84_RETURN char * (*tcl_UtfPrev) _ANSI_ARGS_((CONST char * src, CONST char * start)); /* 331 */
- int (*tcl_UtfToExternal) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Encoding encoding, CONST char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr)); /* 332 */
- char * (*tcl_UtfToExternalDString) _ANSI_ARGS_((Tcl_Encoding encoding, CONST char * src, int srcLen, Tcl_DString * dsPtr)); /* 333 */
- int (*tcl_UtfToLower) _ANSI_ARGS_((char * src)); /* 334 */
- int (*tcl_UtfToTitle) _ANSI_ARGS_((char * src)); /* 335 */
- int (*tcl_UtfToUniChar) _ANSI_ARGS_((CONST char * src, Tcl_UniChar * chPtr)); /* 336 */
- int (*tcl_UtfToUpper) _ANSI_ARGS_((char * src)); /* 337 */
- int (*tcl_WriteChars) _ANSI_ARGS_((Tcl_Channel chan, CONST char * src, int srcLen)); /* 338 */
- int (*tcl_WriteObj) _ANSI_ARGS_((Tcl_Channel chan, Tcl_Obj * objPtr)); /* 339 */
- char * (*tcl_GetString) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 340 */
- CONST84_RETURN char * (*tcl_GetDefaultEncodingDir) _ANSI_ARGS_((void)); /* 341 */
- void (*tcl_SetDefaultEncodingDir) _ANSI_ARGS_((CONST char * path)); /* 342 */
- void (*tcl_AlertNotifier) _ANSI_ARGS_((ClientData clientData)); /* 343 */
- void (*tcl_ServiceModeHook) _ANSI_ARGS_((int mode)); /* 344 */
- int (*tcl_UniCharIsAlnum) _ANSI_ARGS_((int ch)); /* 345 */
- int (*tcl_UniCharIsAlpha) _ANSI_ARGS_((int ch)); /* 346 */
- int (*tcl_UniCharIsDigit) _ANSI_ARGS_((int ch)); /* 347 */
- int (*tcl_UniCharIsLower) _ANSI_ARGS_((int ch)); /* 348 */
- int (*tcl_UniCharIsSpace) _ANSI_ARGS_((int ch)); /* 349 */
- int (*tcl_UniCharIsUpper) _ANSI_ARGS_((int ch)); /* 350 */
- int (*tcl_UniCharIsWordChar) _ANSI_ARGS_((int ch)); /* 351 */
- int (*tcl_UniCharLen) _ANSI_ARGS_((CONST Tcl_UniChar * str)); /* 352 */
- int (*tcl_UniCharNcmp) _ANSI_ARGS_((CONST Tcl_UniChar * cs, CONST Tcl_UniChar * ct, unsigned long n)); /* 353 */
- char * (*tcl_UniCharToUtfDString) _ANSI_ARGS_((CONST Tcl_UniChar * string, int numChars, Tcl_DString * dsPtr)); /* 354 */
- Tcl_UniChar * (*tcl_UtfToUniCharDString) _ANSI_ARGS_((CONST char * string, int length, Tcl_DString * dsPtr)); /* 355 */
- Tcl_RegExp (*tcl_GetRegExpFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * patObj, int flags)); /* 356 */
- Tcl_Obj * (*tcl_EvalTokens) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Token * tokenPtr, int count)); /* 357 */
- void (*tcl_FreeParse) _ANSI_ARGS_((Tcl_Parse * parsePtr)); /* 358 */
- void (*tcl_LogCommandInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * script, CONST char * command, int length)); /* 359 */
- int (*tcl_ParseBraces) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string, int numBytes, Tcl_Parse * parsePtr, int append, CONST84 char ** termPtr)); /* 360 */
- int (*tcl_ParseCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string, int numBytes, int nested, Tcl_Parse * parsePtr)); /* 361 */
- int (*tcl_ParseExpr) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string, int numBytes, Tcl_Parse * parsePtr)); /* 362 */
- int (*tcl_ParseQuotedString) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string, int numBytes, Tcl_Parse * parsePtr, int append, CONST84 char ** termPtr)); /* 363 */
- int (*tcl_ParseVarName) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string, int numBytes, Tcl_Parse * parsePtr, int append)); /* 364 */
- char * (*tcl_GetCwd) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_DString * cwdPtr)); /* 365 */
- int (*tcl_Chdir) _ANSI_ARGS_((CONST char * dirName)); /* 366 */
- int (*tcl_Access) _ANSI_ARGS_((CONST char * path, int mode)); /* 367 */
- int (*tcl_Stat) _ANSI_ARGS_((CONST char * path, struct stat * bufPtr)); /* 368 */
- int (*tcl_UtfNcmp) _ANSI_ARGS_((CONST char * s1, CONST char * s2, unsigned long n)); /* 369 */
- int (*tcl_UtfNcasecmp) _ANSI_ARGS_((CONST char * s1, CONST char * s2, unsigned long n)); /* 370 */
- int (*tcl_StringCaseMatch) _ANSI_ARGS_((CONST char * str, CONST char * pattern, int nocase)); /* 371 */
- int (*tcl_UniCharIsControl) _ANSI_ARGS_((int ch)); /* 372 */
- int (*tcl_UniCharIsGraph) _ANSI_ARGS_((int ch)); /* 373 */
- int (*tcl_UniCharIsPrint) _ANSI_ARGS_((int ch)); /* 374 */
- int (*tcl_UniCharIsPunct) _ANSI_ARGS_((int ch)); /* 375 */
- int (*tcl_RegExpExecObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_RegExp regexp, Tcl_Obj * objPtr, int offset, int nmatches, int flags)); /* 376 */
- void (*tcl_RegExpGetInfo) _ANSI_ARGS_((Tcl_RegExp regexp, Tcl_RegExpInfo * infoPtr)); /* 377 */
- Tcl_Obj * (*tcl_NewUnicodeObj) _ANSI_ARGS_((CONST Tcl_UniChar * unicode, int numChars)); /* 378 */
- void (*tcl_SetUnicodeObj) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST Tcl_UniChar * unicode, int numChars)); /* 379 */
- int (*tcl_GetCharLength) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 380 */
- Tcl_UniChar (*tcl_GetUniChar) _ANSI_ARGS_((Tcl_Obj * objPtr, int index)); /* 381 */
- Tcl_UniChar * (*tcl_GetUnicode) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 382 */
- Tcl_Obj * (*tcl_GetRange) _ANSI_ARGS_((Tcl_Obj * objPtr, int first, int last)); /* 383 */
- void (*tcl_AppendUnicodeToObj) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST Tcl_UniChar * unicode, int length)); /* 384 */
- int (*tcl_RegExpMatchObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * stringObj, Tcl_Obj * patternObj)); /* 385 */
- void (*tcl_SetNotifier) _ANSI_ARGS_((Tcl_NotifierProcs * notifierProcPtr)); /* 386 */
- Tcl_Mutex * (*tcl_GetAllocMutex) _ANSI_ARGS_((void)); /* 387 */
- int (*tcl_GetChannelNames) _ANSI_ARGS_((Tcl_Interp * interp)); /* 388 */
- int (*tcl_GetChannelNamesEx) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * pattern)); /* 389 */
- int (*tcl_ProcObjCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 390 */
- void (*tcl_ConditionFinalize) _ANSI_ARGS_((Tcl_Condition * condPtr)); /* 391 */
- void (*tcl_MutexFinalize) _ANSI_ARGS_((Tcl_Mutex * mutex)); /* 392 */
- int (*tcl_CreateThread) _ANSI_ARGS_((Tcl_ThreadId * idPtr, Tcl_ThreadCreateProc proc, ClientData clientData, int stackSize, int flags)); /* 393 */
- int (*tcl_ReadRaw) _ANSI_ARGS_((Tcl_Channel chan, char * dst, int bytesToRead)); /* 394 */
- int (*tcl_WriteRaw) _ANSI_ARGS_((Tcl_Channel chan, CONST char * src, int srcLen)); /* 395 */
- Tcl_Channel (*tcl_GetTopChannel) _ANSI_ARGS_((Tcl_Channel chan)); /* 396 */
- int (*tcl_ChannelBuffered) _ANSI_ARGS_((Tcl_Channel chan)); /* 397 */
- CONST84_RETURN char * (*tcl_ChannelName) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 398 */
- Tcl_ChannelTypeVersion (*tcl_ChannelVersion) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 399 */
- Tcl_DriverBlockModeProc * (*tcl_ChannelBlockModeProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 400 */
- Tcl_DriverCloseProc * (*tcl_ChannelCloseProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 401 */
- Tcl_DriverClose2Proc * (*tcl_ChannelClose2Proc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 402 */
- Tcl_DriverInputProc * (*tcl_ChannelInputProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 403 */
- Tcl_DriverOutputProc * (*tcl_ChannelOutputProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 404 */
- Tcl_DriverSeekProc * (*tcl_ChannelSeekProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 405 */
- Tcl_DriverSetOptionProc * (*tcl_ChannelSetOptionProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 406 */
- Tcl_DriverGetOptionProc * (*tcl_ChannelGetOptionProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 407 */
- Tcl_DriverWatchProc * (*tcl_ChannelWatchProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 408 */
- Tcl_DriverGetHandleProc * (*tcl_ChannelGetHandleProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 409 */
- Tcl_DriverFlushProc * (*tcl_ChannelFlushProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 410 */
- Tcl_DriverHandlerProc * (*tcl_ChannelHandlerProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 411 */
- int (*tcl_JoinThread) _ANSI_ARGS_((Tcl_ThreadId threadId, int* result)); /* 412 */
- int (*tcl_IsChannelShared) _ANSI_ARGS_((Tcl_Channel channel)); /* 413 */
- int (*tcl_IsChannelRegistered) _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Channel channel)); /* 414 */
- void (*tcl_CutChannel) _ANSI_ARGS_((Tcl_Channel channel)); /* 415 */
- void (*tcl_SpliceChannel) _ANSI_ARGS_((Tcl_Channel channel)); /* 416 */
- void (*tcl_ClearChannelHandlers) _ANSI_ARGS_((Tcl_Channel channel)); /* 417 */
- int (*tcl_IsChannelExisting) _ANSI_ARGS_((CONST char* channelName)); /* 418 */
- int (*tcl_UniCharNcasecmp) _ANSI_ARGS_((CONST Tcl_UniChar * cs, CONST Tcl_UniChar * ct, unsigned long n)); /* 419 */
- int (*tcl_UniCharCaseMatch) _ANSI_ARGS_((CONST Tcl_UniChar * ustr, CONST Tcl_UniChar * pattern, int nocase)); /* 420 */
- Tcl_HashEntry * (*tcl_FindHashEntry) _ANSI_ARGS_((Tcl_HashTable * tablePtr, CONST char * key)); /* 421 */
- Tcl_HashEntry * (*tcl_CreateHashEntry) _ANSI_ARGS_((Tcl_HashTable * tablePtr, CONST char * key, int * newPtr)); /* 422 */
- void (*tcl_InitCustomHashTable) _ANSI_ARGS_((Tcl_HashTable * tablePtr, int keyType, Tcl_HashKeyType * typePtr)); /* 423 */
- void (*tcl_InitObjHashTable) _ANSI_ARGS_((Tcl_HashTable * tablePtr)); /* 424 */
- ClientData (*tcl_CommandTraceInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags, Tcl_CommandTraceProc * procPtr, ClientData prevClientData)); /* 425 */
- int (*tcl_TraceCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags, Tcl_CommandTraceProc * proc, ClientData clientData)); /* 426 */
- void (*tcl_UntraceCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags, Tcl_CommandTraceProc * proc, ClientData clientData)); /* 427 */
- char * (*tcl_AttemptAlloc) _ANSI_ARGS_((unsigned int size)); /* 428 */
- char * (*tcl_AttemptDbCkalloc) _ANSI_ARGS_((unsigned int size, CONST char * file, int line)); /* 429 */
- char * (*tcl_AttemptRealloc) _ANSI_ARGS_((char * ptr, unsigned int size)); /* 430 */
- char * (*tcl_AttemptDbCkrealloc) _ANSI_ARGS_((char * ptr, unsigned int size, CONST char * file, int line)); /* 431 */
- int (*tcl_AttemptSetObjLength) _ANSI_ARGS_((Tcl_Obj * objPtr, int length)); /* 432 */
- Tcl_ThreadId (*tcl_GetChannelThread) _ANSI_ARGS_((Tcl_Channel channel)); /* 433 */
- Tcl_UniChar * (*tcl_GetUnicodeFromObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int * lengthPtr)); /* 434 */
- int (*tcl_GetMathFuncInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, int * numArgsPtr, Tcl_ValueType ** argTypesPtr, Tcl_MathProc ** procPtr, ClientData * clientDataPtr)); /* 435 */
- Tcl_Obj * (*tcl_ListMathFuncs) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * pattern)); /* 436 */
- Tcl_Obj * (*tcl_SubstObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int flags)); /* 437 */
- int (*tcl_DetachChannel) _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Channel channel)); /* 438 */
- int (*tcl_IsStandardChannel) _ANSI_ARGS_((Tcl_Channel channel)); /* 439 */
- int (*tcl_FSCopyFile) _ANSI_ARGS_((Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr)); /* 440 */
- int (*tcl_FSCopyDirectory) _ANSI_ARGS_((Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr, Tcl_Obj ** errorPtr)); /* 441 */
- int (*tcl_FSCreateDirectory) _ANSI_ARGS_((Tcl_Obj * pathPtr)); /* 442 */
- int (*tcl_FSDeleteFile) _ANSI_ARGS_((Tcl_Obj * pathPtr)); /* 443 */
- int (*tcl_FSLoadFile) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * pathPtr, CONST char * sym1, CONST char * sym2, Tcl_PackageInitProc ** proc1Ptr, Tcl_PackageInitProc ** proc2Ptr, Tcl_LoadHandle * handlePtr, Tcl_FSUnloadFileProc ** unloadProcPtr)); /* 444 */
- int (*tcl_FSMatchInDirectory) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * result, Tcl_Obj * pathPtr, CONST char * pattern, Tcl_GlobTypeData * types)); /* 445 */
- Tcl_Obj * (*tcl_FSLink) _ANSI_ARGS_((Tcl_Obj * pathPtr, Tcl_Obj * toPtr, int linkAction)); /* 446 */
- int (*tcl_FSRemoveDirectory) _ANSI_ARGS_((Tcl_Obj * pathPtr, int recursive, Tcl_Obj ** errorPtr)); /* 447 */
- int (*tcl_FSRenameFile) _ANSI_ARGS_((Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr)); /* 448 */
- int (*tcl_FSLstat) _ANSI_ARGS_((Tcl_Obj * pathPtr, Tcl_StatBuf * buf)); /* 449 */
- int (*tcl_FSUtime) _ANSI_ARGS_((Tcl_Obj * pathPtr, struct utimbuf * tval)); /* 450 */
- int (*tcl_FSFileAttrsGet) _ANSI_ARGS_((Tcl_Interp * interp, int index, Tcl_Obj * pathPtr, Tcl_Obj ** objPtrRef)); /* 451 */
- int (*tcl_FSFileAttrsSet) _ANSI_ARGS_((Tcl_Interp * interp, int index, Tcl_Obj * pathPtr, Tcl_Obj * objPtr)); /* 452 */
- CONST char ** (*tcl_FSFileAttrStrings) _ANSI_ARGS_((Tcl_Obj * pathPtr, Tcl_Obj ** objPtrRef)); /* 453 */
- int (*tcl_FSStat) _ANSI_ARGS_((Tcl_Obj * pathPtr, Tcl_StatBuf * buf)); /* 454 */
- int (*tcl_FSAccess) _ANSI_ARGS_((Tcl_Obj * pathPtr, int mode)); /* 455 */
- Tcl_Channel (*tcl_FSOpenFileChannel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * pathPtr, CONST char * modeString, int permissions)); /* 456 */
- Tcl_Obj* (*tcl_FSGetCwd) _ANSI_ARGS_((Tcl_Interp * interp)); /* 457 */
- int (*tcl_FSChdir) _ANSI_ARGS_((Tcl_Obj * pathPtr)); /* 458 */
- int (*tcl_FSConvertToPathType) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * pathPtr)); /* 459 */
- Tcl_Obj* (*tcl_FSJoinPath) _ANSI_ARGS_((Tcl_Obj * listObj, int elements)); /* 460 */
- Tcl_Obj* (*tcl_FSSplitPath) _ANSI_ARGS_((Tcl_Obj* pathPtr, int * lenPtr)); /* 461 */
- int (*tcl_FSEqualPaths) _ANSI_ARGS_((Tcl_Obj* firstPtr, Tcl_Obj* secondPtr)); /* 462 */
- Tcl_Obj* (*tcl_FSGetNormalizedPath) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj* pathObjPtr)); /* 463 */
- Tcl_Obj* (*tcl_FSJoinToPath) _ANSI_ARGS_((Tcl_Obj * basePtr, int objc, Tcl_Obj *CONST objv[])); /* 464 */
- ClientData (*tcl_FSGetInternalRep) _ANSI_ARGS_((Tcl_Obj* pathObjPtr, Tcl_Filesystem * fsPtr)); /* 465 */
- Tcl_Obj* (*tcl_FSGetTranslatedPath) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj* pathPtr)); /* 466 */
- int (*tcl_FSEvalFile) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * fileName)); /* 467 */
- Tcl_Obj* (*tcl_FSNewNativePath) _ANSI_ARGS_((Tcl_Filesystem* fromFilesystem, ClientData clientData)); /* 468 */
- CONST char* (*tcl_FSGetNativePath) _ANSI_ARGS_((Tcl_Obj* pathObjPtr)); /* 469 */
- Tcl_Obj* (*tcl_FSFileSystemInfo) _ANSI_ARGS_((Tcl_Obj* pathObjPtr)); /* 470 */
- Tcl_Obj* (*tcl_FSPathSeparator) _ANSI_ARGS_((Tcl_Obj* pathObjPtr)); /* 471 */
- Tcl_Obj* (*tcl_FSListVolumes) _ANSI_ARGS_((void)); /* 472 */
- int (*tcl_FSRegister) _ANSI_ARGS_((ClientData clientData, Tcl_Filesystem * fsPtr)); /* 473 */
- int (*tcl_FSUnregister) _ANSI_ARGS_((Tcl_Filesystem * fsPtr)); /* 474 */
- ClientData (*tcl_FSData) _ANSI_ARGS_((Tcl_Filesystem * fsPtr)); /* 475 */
- CONST char* (*tcl_FSGetTranslatedStringPath) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj* pathPtr)); /* 476 */
- Tcl_Filesystem* (*tcl_FSGetFileSystemForPath) _ANSI_ARGS_((Tcl_Obj* pathObjPtr)); /* 477 */
- Tcl_PathType (*tcl_FSGetPathType) _ANSI_ARGS_((Tcl_Obj * pathObjPtr)); /* 478 */
- int (*tcl_OutputBuffered) _ANSI_ARGS_((Tcl_Channel chan)); /* 479 */
- void (*tcl_FSMountsChanged) _ANSI_ARGS_((Tcl_Filesystem * fsPtr)); /* 480 */
- int (*tcl_EvalTokensStandard) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Token * tokenPtr, int count)); /* 481 */
- void (*tcl_GetTime) _ANSI_ARGS_((Tcl_Time* timeBuf)); /* 482 */
- Tcl_Trace (*tcl_CreateObjTrace) _ANSI_ARGS_((Tcl_Interp* interp, int level, int flags, Tcl_CmdObjTraceProc* objProc, ClientData clientData, Tcl_CmdObjTraceDeleteProc* delProc)); /* 483 */
- int (*tcl_GetCommandInfoFromToken) _ANSI_ARGS_((Tcl_Command token, Tcl_CmdInfo* infoPtr)); /* 484 */
- int (*tcl_SetCommandInfoFromToken) _ANSI_ARGS_((Tcl_Command token, CONST Tcl_CmdInfo* infoPtr)); /* 485 */
- Tcl_Obj * (*tcl_DbNewWideIntObj) _ANSI_ARGS_((Tcl_WideInt wideValue, CONST char * file, int line)); /* 486 */
- int (*tcl_GetWideIntFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_WideInt * widePtr)); /* 487 */
- Tcl_Obj * (*tcl_NewWideIntObj) _ANSI_ARGS_((Tcl_WideInt wideValue)); /* 488 */
- void (*tcl_SetWideIntObj) _ANSI_ARGS_((Tcl_Obj * objPtr, Tcl_WideInt wideValue)); /* 489 */
- Tcl_StatBuf * (*tcl_AllocStatBuf) _ANSI_ARGS_((void)); /* 490 */
- Tcl_WideInt (*tcl_Seek) _ANSI_ARGS_((Tcl_Channel chan, Tcl_WideInt offset, int mode)); /* 491 */
- Tcl_WideInt (*tcl_Tell) _ANSI_ARGS_((Tcl_Channel chan)); /* 492 */
- Tcl_DriverWideSeekProc * (*tcl_ChannelWideSeekProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 493 */
-} TclStubs;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern TclStubs *tclStubsPtr;
-#ifdef __cplusplus
-}
-#endif
-
-#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS)
-
-/*
- * Inline function declarations:
- */
-
-#ifndef Tcl_PkgProvideEx
-#define Tcl_PkgProvideEx \
- (tclStubsPtr->tcl_PkgProvideEx) /* 0 */
-#endif
-#ifndef Tcl_PkgRequireEx
-#define Tcl_PkgRequireEx \
- (tclStubsPtr->tcl_PkgRequireEx) /* 1 */
-#endif
-#ifndef Tcl_Panic
-#define Tcl_Panic \
- (tclStubsPtr->tcl_Panic) /* 2 */
-#endif
-#ifndef Tcl_Alloc
-#define Tcl_Alloc \
- (tclStubsPtr->tcl_Alloc) /* 3 */
-#endif
-#ifndef Tcl_Free
-#define Tcl_Free \
- (tclStubsPtr->tcl_Free) /* 4 */
-#endif
-#ifndef Tcl_Realloc
-#define Tcl_Realloc \
- (tclStubsPtr->tcl_Realloc) /* 5 */
-#endif
-#ifndef Tcl_DbCkalloc
-#define Tcl_DbCkalloc \
- (tclStubsPtr->tcl_DbCkalloc) /* 6 */
-#endif
-#ifndef Tcl_DbCkfree
-#define Tcl_DbCkfree \
- (tclStubsPtr->tcl_DbCkfree) /* 7 */
-#endif
-#ifndef Tcl_DbCkrealloc
-#define Tcl_DbCkrealloc \
- (tclStubsPtr->tcl_DbCkrealloc) /* 8 */
-#endif
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-#ifndef Tcl_CreateFileHandler
-#define Tcl_CreateFileHandler \
- (tclStubsPtr->tcl_CreateFileHandler) /* 9 */
-#endif
-#endif /* UNIX */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-#ifndef Tcl_DeleteFileHandler
-#define Tcl_DeleteFileHandler \
- (tclStubsPtr->tcl_DeleteFileHandler) /* 10 */
-#endif
-#endif /* UNIX */
-#ifndef Tcl_SetTimer
-#define Tcl_SetTimer \
- (tclStubsPtr->tcl_SetTimer) /* 11 */
-#endif
-#ifndef Tcl_Sleep
-#define Tcl_Sleep \
- (tclStubsPtr->tcl_Sleep) /* 12 */
-#endif
-#ifndef Tcl_WaitForEvent
-#define Tcl_WaitForEvent \
- (tclStubsPtr->tcl_WaitForEvent) /* 13 */
-#endif
-#ifndef Tcl_AppendAllObjTypes
-#define Tcl_AppendAllObjTypes \
- (tclStubsPtr->tcl_AppendAllObjTypes) /* 14 */
-#endif
-#ifndef Tcl_AppendStringsToObj
-#define Tcl_AppendStringsToObj \
- (tclStubsPtr->tcl_AppendStringsToObj) /* 15 */
-#endif
-#ifndef Tcl_AppendToObj
-#define Tcl_AppendToObj \
- (tclStubsPtr->tcl_AppendToObj) /* 16 */
-#endif
-#ifndef Tcl_ConcatObj
-#define Tcl_ConcatObj \
- (tclStubsPtr->tcl_ConcatObj) /* 17 */
-#endif
-#ifndef Tcl_ConvertToType
-#define Tcl_ConvertToType \
- (tclStubsPtr->tcl_ConvertToType) /* 18 */
-#endif
-#ifndef Tcl_DbDecrRefCount
-#define Tcl_DbDecrRefCount \
- (tclStubsPtr->tcl_DbDecrRefCount) /* 19 */
-#endif
-#ifndef Tcl_DbIncrRefCount
-#define Tcl_DbIncrRefCount \
- (tclStubsPtr->tcl_DbIncrRefCount) /* 20 */
-#endif
-#ifndef Tcl_DbIsShared
-#define Tcl_DbIsShared \
- (tclStubsPtr->tcl_DbIsShared) /* 21 */
-#endif
-#ifndef Tcl_DbNewBooleanObj
-#define Tcl_DbNewBooleanObj \
- (tclStubsPtr->tcl_DbNewBooleanObj) /* 22 */
-#endif
-#ifndef Tcl_DbNewByteArrayObj
-#define Tcl_DbNewByteArrayObj \
- (tclStubsPtr->tcl_DbNewByteArrayObj) /* 23 */
-#endif
-#ifndef Tcl_DbNewDoubleObj
-#define Tcl_DbNewDoubleObj \
- (tclStubsPtr->tcl_DbNewDoubleObj) /* 24 */
-#endif
-#ifndef Tcl_DbNewListObj
-#define Tcl_DbNewListObj \
- (tclStubsPtr->tcl_DbNewListObj) /* 25 */
-#endif
-#ifndef Tcl_DbNewLongObj
-#define Tcl_DbNewLongObj \
- (tclStubsPtr->tcl_DbNewLongObj) /* 26 */
-#endif
-#ifndef Tcl_DbNewObj
-#define Tcl_DbNewObj \
- (tclStubsPtr->tcl_DbNewObj) /* 27 */
-#endif
-#ifndef Tcl_DbNewStringObj
-#define Tcl_DbNewStringObj \
- (tclStubsPtr->tcl_DbNewStringObj) /* 28 */
-#endif
-#ifndef Tcl_DuplicateObj
-#define Tcl_DuplicateObj \
- (tclStubsPtr->tcl_DuplicateObj) /* 29 */
-#endif
-#ifndef TclFreeObj
-#define TclFreeObj \
- (tclStubsPtr->tclFreeObj) /* 30 */
-#endif
-#ifndef Tcl_GetBoolean
-#define Tcl_GetBoolean \
- (tclStubsPtr->tcl_GetBoolean) /* 31 */
-#endif
-#ifndef Tcl_GetBooleanFromObj
-#define Tcl_GetBooleanFromObj \
- (tclStubsPtr->tcl_GetBooleanFromObj) /* 32 */
-#endif
-#ifndef Tcl_GetByteArrayFromObj
-#define Tcl_GetByteArrayFromObj \
- (tclStubsPtr->tcl_GetByteArrayFromObj) /* 33 */
-#endif
-#ifndef Tcl_GetDouble
-#define Tcl_GetDouble \
- (tclStubsPtr->tcl_GetDouble) /* 34 */
-#endif
-#ifndef Tcl_GetDoubleFromObj
-#define Tcl_GetDoubleFromObj \
- (tclStubsPtr->tcl_GetDoubleFromObj) /* 35 */
-#endif
-#ifndef Tcl_GetIndexFromObj
-#define Tcl_GetIndexFromObj \
- (tclStubsPtr->tcl_GetIndexFromObj) /* 36 */
-#endif
-#ifndef Tcl_GetInt
-#define Tcl_GetInt \
- (tclStubsPtr->tcl_GetInt) /* 37 */
-#endif
-#ifndef Tcl_GetIntFromObj
-#define Tcl_GetIntFromObj \
- (tclStubsPtr->tcl_GetIntFromObj) /* 38 */
-#endif
-#ifndef Tcl_GetLongFromObj
-#define Tcl_GetLongFromObj \
- (tclStubsPtr->tcl_GetLongFromObj) /* 39 */
-#endif
-#ifndef Tcl_GetObjType
-#define Tcl_GetObjType \
- (tclStubsPtr->tcl_GetObjType) /* 40 */
-#endif
-#ifndef Tcl_GetStringFromObj
-#define Tcl_GetStringFromObj \
- (tclStubsPtr->tcl_GetStringFromObj) /* 41 */
-#endif
-#ifndef Tcl_InvalidateStringRep
-#define Tcl_InvalidateStringRep \
- (tclStubsPtr->tcl_InvalidateStringRep) /* 42 */
-#endif
-#ifndef Tcl_ListObjAppendList
-#define Tcl_ListObjAppendList \
- (tclStubsPtr->tcl_ListObjAppendList) /* 43 */
-#endif
-#ifndef Tcl_ListObjAppendElement
-#define Tcl_ListObjAppendElement \
- (tclStubsPtr->tcl_ListObjAppendElement) /* 44 */
-#endif
-#ifndef Tcl_ListObjGetElements
-#define Tcl_ListObjGetElements \
- (tclStubsPtr->tcl_ListObjGetElements) /* 45 */
-#endif
-#ifndef Tcl_ListObjIndex
-#define Tcl_ListObjIndex \
- (tclStubsPtr->tcl_ListObjIndex) /* 46 */
-#endif
-#ifndef Tcl_ListObjLength
-#define Tcl_ListObjLength \
- (tclStubsPtr->tcl_ListObjLength) /* 47 */
-#endif
-#ifndef Tcl_ListObjReplace
-#define Tcl_ListObjReplace \
- (tclStubsPtr->tcl_ListObjReplace) /* 48 */
-#endif
-#ifndef Tcl_NewBooleanObj
-#define Tcl_NewBooleanObj \
- (tclStubsPtr->tcl_NewBooleanObj) /* 49 */
-#endif
-#ifndef Tcl_NewByteArrayObj
-#define Tcl_NewByteArrayObj \
- (tclStubsPtr->tcl_NewByteArrayObj) /* 50 */
-#endif
-#ifndef Tcl_NewDoubleObj
-#define Tcl_NewDoubleObj \
- (tclStubsPtr->tcl_NewDoubleObj) /* 51 */
-#endif
-#ifndef Tcl_NewIntObj
-#define Tcl_NewIntObj \
- (tclStubsPtr->tcl_NewIntObj) /* 52 */
-#endif
-#ifndef Tcl_NewListObj
-#define Tcl_NewListObj \
- (tclStubsPtr->tcl_NewListObj) /* 53 */
-#endif
-#ifndef Tcl_NewLongObj
-#define Tcl_NewLongObj \
- (tclStubsPtr->tcl_NewLongObj) /* 54 */
-#endif
-#ifndef Tcl_NewObj
-#define Tcl_NewObj \
- (tclStubsPtr->tcl_NewObj) /* 55 */
-#endif
-#ifndef Tcl_NewStringObj
-#define Tcl_NewStringObj \
- (tclStubsPtr->tcl_NewStringObj) /* 56 */
-#endif
-#ifndef Tcl_SetBooleanObj
-#define Tcl_SetBooleanObj \
- (tclStubsPtr->tcl_SetBooleanObj) /* 57 */
-#endif
-#ifndef Tcl_SetByteArrayLength
-#define Tcl_SetByteArrayLength \
- (tclStubsPtr->tcl_SetByteArrayLength) /* 58 */
-#endif
-#ifndef Tcl_SetByteArrayObj
-#define Tcl_SetByteArrayObj \
- (tclStubsPtr->tcl_SetByteArrayObj) /* 59 */
-#endif
-#ifndef Tcl_SetDoubleObj
-#define Tcl_SetDoubleObj \
- (tclStubsPtr->tcl_SetDoubleObj) /* 60 */
-#endif
-#ifndef Tcl_SetIntObj
-#define Tcl_SetIntObj \
- (tclStubsPtr->tcl_SetIntObj) /* 61 */
-#endif
-#ifndef Tcl_SetListObj
-#define Tcl_SetListObj \
- (tclStubsPtr->tcl_SetListObj) /* 62 */
-#endif
-#ifndef Tcl_SetLongObj
-#define Tcl_SetLongObj \
- (tclStubsPtr->tcl_SetLongObj) /* 63 */
-#endif
-#ifndef Tcl_SetObjLength
-#define Tcl_SetObjLength \
- (tclStubsPtr->tcl_SetObjLength) /* 64 */
-#endif
-#ifndef Tcl_SetStringObj
-#define Tcl_SetStringObj \
- (tclStubsPtr->tcl_SetStringObj) /* 65 */
-#endif
-#ifndef Tcl_AddErrorInfo
-#define Tcl_AddErrorInfo \
- (tclStubsPtr->tcl_AddErrorInfo) /* 66 */
-#endif
-#ifndef Tcl_AddObjErrorInfo
-#define Tcl_AddObjErrorInfo \
- (tclStubsPtr->tcl_AddObjErrorInfo) /* 67 */
-#endif
-#ifndef Tcl_AllowExceptions
-#define Tcl_AllowExceptions \
- (tclStubsPtr->tcl_AllowExceptions) /* 68 */
-#endif
-#ifndef Tcl_AppendElement
-#define Tcl_AppendElement \
- (tclStubsPtr->tcl_AppendElement) /* 69 */
-#endif
-#ifndef Tcl_AppendResult
-#define Tcl_AppendResult \
- (tclStubsPtr->tcl_AppendResult) /* 70 */
-#endif
-#ifndef Tcl_AsyncCreate
-#define Tcl_AsyncCreate \
- (tclStubsPtr->tcl_AsyncCreate) /* 71 */
-#endif
-#ifndef Tcl_AsyncDelete
-#define Tcl_AsyncDelete \
- (tclStubsPtr->tcl_AsyncDelete) /* 72 */
-#endif
-#ifndef Tcl_AsyncInvoke
-#define Tcl_AsyncInvoke \
- (tclStubsPtr->tcl_AsyncInvoke) /* 73 */
-#endif
-#ifndef Tcl_AsyncMark
-#define Tcl_AsyncMark \
- (tclStubsPtr->tcl_AsyncMark) /* 74 */
-#endif
-#ifndef Tcl_AsyncReady
-#define Tcl_AsyncReady \
- (tclStubsPtr->tcl_AsyncReady) /* 75 */
-#endif
-#ifndef Tcl_BackgroundError
-#define Tcl_BackgroundError \
- (tclStubsPtr->tcl_BackgroundError) /* 76 */
-#endif
-#ifndef Tcl_Backslash
-#define Tcl_Backslash \
- (tclStubsPtr->tcl_Backslash) /* 77 */
-#endif
-#ifndef Tcl_BadChannelOption
-#define Tcl_BadChannelOption \
- (tclStubsPtr->tcl_BadChannelOption) /* 78 */
-#endif
-#ifndef Tcl_CallWhenDeleted
-#define Tcl_CallWhenDeleted \
- (tclStubsPtr->tcl_CallWhenDeleted) /* 79 */
-#endif
-#ifndef Tcl_CancelIdleCall
-#define Tcl_CancelIdleCall \
- (tclStubsPtr->tcl_CancelIdleCall) /* 80 */
-#endif
-#ifndef Tcl_Close
-#define Tcl_Close \
- (tclStubsPtr->tcl_Close) /* 81 */
-#endif
-#ifndef Tcl_CommandComplete
-#define Tcl_CommandComplete \
- (tclStubsPtr->tcl_CommandComplete) /* 82 */
-#endif
-#ifndef Tcl_Concat
-#define Tcl_Concat \
- (tclStubsPtr->tcl_Concat) /* 83 */
-#endif
-#ifndef Tcl_ConvertElement
-#define Tcl_ConvertElement \
- (tclStubsPtr->tcl_ConvertElement) /* 84 */
-#endif
-#ifndef Tcl_ConvertCountedElement
-#define Tcl_ConvertCountedElement \
- (tclStubsPtr->tcl_ConvertCountedElement) /* 85 */
-#endif
-#ifndef Tcl_CreateAlias
-#define Tcl_CreateAlias \
- (tclStubsPtr->tcl_CreateAlias) /* 86 */
-#endif
-#ifndef Tcl_CreateAliasObj
-#define Tcl_CreateAliasObj \
- (tclStubsPtr->tcl_CreateAliasObj) /* 87 */
-#endif
-#ifndef Tcl_CreateChannel
-#define Tcl_CreateChannel \
- (tclStubsPtr->tcl_CreateChannel) /* 88 */
-#endif
-#ifndef Tcl_CreateChannelHandler
-#define Tcl_CreateChannelHandler \
- (tclStubsPtr->tcl_CreateChannelHandler) /* 89 */
-#endif
-#ifndef Tcl_CreateCloseHandler
-#define Tcl_CreateCloseHandler \
- (tclStubsPtr->tcl_CreateCloseHandler) /* 90 */
-#endif
-#ifndef Tcl_CreateCommand
-#define Tcl_CreateCommand \
- (tclStubsPtr->tcl_CreateCommand) /* 91 */
-#endif
-#ifndef Tcl_CreateEventSource
-#define Tcl_CreateEventSource \
- (tclStubsPtr->tcl_CreateEventSource) /* 92 */
-#endif
-#ifndef Tcl_CreateExitHandler
-#define Tcl_CreateExitHandler \
- (tclStubsPtr->tcl_CreateExitHandler) /* 93 */
-#endif
-#ifndef Tcl_CreateInterp
-#define Tcl_CreateInterp \
- (tclStubsPtr->tcl_CreateInterp) /* 94 */
-#endif
-#ifndef Tcl_CreateMathFunc
-#define Tcl_CreateMathFunc \
- (tclStubsPtr->tcl_CreateMathFunc) /* 95 */
-#endif
-#ifndef Tcl_CreateObjCommand
-#define Tcl_CreateObjCommand \
- (tclStubsPtr->tcl_CreateObjCommand) /* 96 */
-#endif
-#ifndef Tcl_CreateSlave
-#define Tcl_CreateSlave \
- (tclStubsPtr->tcl_CreateSlave) /* 97 */
-#endif
-#ifndef Tcl_CreateTimerHandler
-#define Tcl_CreateTimerHandler \
- (tclStubsPtr->tcl_CreateTimerHandler) /* 98 */
-#endif
-#ifndef Tcl_CreateTrace
-#define Tcl_CreateTrace \
- (tclStubsPtr->tcl_CreateTrace) /* 99 */
-#endif
-#ifndef Tcl_DeleteAssocData
-#define Tcl_DeleteAssocData \
- (tclStubsPtr->tcl_DeleteAssocData) /* 100 */
-#endif
-#ifndef Tcl_DeleteChannelHandler
-#define Tcl_DeleteChannelHandler \
- (tclStubsPtr->tcl_DeleteChannelHandler) /* 101 */
-#endif
-#ifndef Tcl_DeleteCloseHandler
-#define Tcl_DeleteCloseHandler \
- (tclStubsPtr->tcl_DeleteCloseHandler) /* 102 */
-#endif
-#ifndef Tcl_DeleteCommand
-#define Tcl_DeleteCommand \
- (tclStubsPtr->tcl_DeleteCommand) /* 103 */
-#endif
-#ifndef Tcl_DeleteCommandFromToken
-#define Tcl_DeleteCommandFromToken \
- (tclStubsPtr->tcl_DeleteCommandFromToken) /* 104 */
-#endif
-#ifndef Tcl_DeleteEvents
-#define Tcl_DeleteEvents \
- (tclStubsPtr->tcl_DeleteEvents) /* 105 */
-#endif
-#ifndef Tcl_DeleteEventSource
-#define Tcl_DeleteEventSource \
- (tclStubsPtr->tcl_DeleteEventSource) /* 106 */
-#endif
-#ifndef Tcl_DeleteExitHandler
-#define Tcl_DeleteExitHandler \
- (tclStubsPtr->tcl_DeleteExitHandler) /* 107 */
-#endif
-#ifndef Tcl_DeleteHashEntry
-#define Tcl_DeleteHashEntry \
- (tclStubsPtr->tcl_DeleteHashEntry) /* 108 */
-#endif
-#ifndef Tcl_DeleteHashTable
-#define Tcl_DeleteHashTable \
- (tclStubsPtr->tcl_DeleteHashTable) /* 109 */
-#endif
-#ifndef Tcl_DeleteInterp
-#define Tcl_DeleteInterp \
- (tclStubsPtr->tcl_DeleteInterp) /* 110 */
-#endif
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-#ifndef Tcl_DetachPids
-#define Tcl_DetachPids \
- (tclStubsPtr->tcl_DetachPids) /* 111 */
-#endif
-#endif /* UNIX */
-#ifdef __WIN32__
-#ifndef Tcl_DetachPids
-#define Tcl_DetachPids \
- (tclStubsPtr->tcl_DetachPids) /* 111 */
-#endif
-#endif /* __WIN32__ */
-#ifndef Tcl_DeleteTimerHandler
-#define Tcl_DeleteTimerHandler \
- (tclStubsPtr->tcl_DeleteTimerHandler) /* 112 */
-#endif
-#ifndef Tcl_DeleteTrace
-#define Tcl_DeleteTrace \
- (tclStubsPtr->tcl_DeleteTrace) /* 113 */
-#endif
-#ifndef Tcl_DontCallWhenDeleted
-#define Tcl_DontCallWhenDeleted \
- (tclStubsPtr->tcl_DontCallWhenDeleted) /* 114 */
-#endif
-#ifndef Tcl_DoOneEvent
-#define Tcl_DoOneEvent \
- (tclStubsPtr->tcl_DoOneEvent) /* 115 */
-#endif
-#ifndef Tcl_DoWhenIdle
-#define Tcl_DoWhenIdle \
- (tclStubsPtr->tcl_DoWhenIdle) /* 116 */
-#endif
-#ifndef Tcl_DStringAppend
-#define Tcl_DStringAppend \
- (tclStubsPtr->tcl_DStringAppend) /* 117 */
-#endif
-#ifndef Tcl_DStringAppendElement
-#define Tcl_DStringAppendElement \
- (tclStubsPtr->tcl_DStringAppendElement) /* 118 */
-#endif
-#ifndef Tcl_DStringEndSublist
-#define Tcl_DStringEndSublist \
- (tclStubsPtr->tcl_DStringEndSublist) /* 119 */
-#endif
-#ifndef Tcl_DStringFree
-#define Tcl_DStringFree \
- (tclStubsPtr->tcl_DStringFree) /* 120 */
-#endif
-#ifndef Tcl_DStringGetResult
-#define Tcl_DStringGetResult \
- (tclStubsPtr->tcl_DStringGetResult) /* 121 */
-#endif
-#ifndef Tcl_DStringInit
-#define Tcl_DStringInit \
- (tclStubsPtr->tcl_DStringInit) /* 122 */
-#endif
-#ifndef Tcl_DStringResult
-#define Tcl_DStringResult \
- (tclStubsPtr->tcl_DStringResult) /* 123 */
-#endif
-#ifndef Tcl_DStringSetLength
-#define Tcl_DStringSetLength \
- (tclStubsPtr->tcl_DStringSetLength) /* 124 */
-#endif
-#ifndef Tcl_DStringStartSublist
-#define Tcl_DStringStartSublist \
- (tclStubsPtr->tcl_DStringStartSublist) /* 125 */
-#endif
-#ifndef Tcl_Eof
-#define Tcl_Eof \
- (tclStubsPtr->tcl_Eof) /* 126 */
-#endif
-#ifndef Tcl_ErrnoId
-#define Tcl_ErrnoId \
- (tclStubsPtr->tcl_ErrnoId) /* 127 */
-#endif
-#ifndef Tcl_ErrnoMsg
-#define Tcl_ErrnoMsg \
- (tclStubsPtr->tcl_ErrnoMsg) /* 128 */
-#endif
-#ifndef Tcl_Eval
-#define Tcl_Eval \
- (tclStubsPtr->tcl_Eval) /* 129 */
-#endif
-#ifndef Tcl_EvalFile
-#define Tcl_EvalFile \
- (tclStubsPtr->tcl_EvalFile) /* 130 */
-#endif
-#ifndef Tcl_EvalObj
-#define Tcl_EvalObj \
- (tclStubsPtr->tcl_EvalObj) /* 131 */
-#endif
-#ifndef Tcl_EventuallyFree
-#define Tcl_EventuallyFree \
- (tclStubsPtr->tcl_EventuallyFree) /* 132 */
-#endif
-#ifndef Tcl_Exit
-#define Tcl_Exit \
- (tclStubsPtr->tcl_Exit) /* 133 */
-#endif
-#ifndef Tcl_ExposeCommand
-#define Tcl_ExposeCommand \
- (tclStubsPtr->tcl_ExposeCommand) /* 134 */
-#endif
-#ifndef Tcl_ExprBoolean
-#define Tcl_ExprBoolean \
- (tclStubsPtr->tcl_ExprBoolean) /* 135 */
-#endif
-#ifndef Tcl_ExprBooleanObj
-#define Tcl_ExprBooleanObj \
- (tclStubsPtr->tcl_ExprBooleanObj) /* 136 */
-#endif
-#ifndef Tcl_ExprDouble
-#define Tcl_ExprDouble \
- (tclStubsPtr->tcl_ExprDouble) /* 137 */
-#endif
-#ifndef Tcl_ExprDoubleObj
-#define Tcl_ExprDoubleObj \
- (tclStubsPtr->tcl_ExprDoubleObj) /* 138 */
-#endif
-#ifndef Tcl_ExprLong
-#define Tcl_ExprLong \
- (tclStubsPtr->tcl_ExprLong) /* 139 */
-#endif
-#ifndef Tcl_ExprLongObj
-#define Tcl_ExprLongObj \
- (tclStubsPtr->tcl_ExprLongObj) /* 140 */
-#endif
-#ifndef Tcl_ExprObj
-#define Tcl_ExprObj \
- (tclStubsPtr->tcl_ExprObj) /* 141 */
-#endif
-#ifndef Tcl_ExprString
-#define Tcl_ExprString \
- (tclStubsPtr->tcl_ExprString) /* 142 */
-#endif
-#ifndef Tcl_Finalize
-#define Tcl_Finalize \
- (tclStubsPtr->tcl_Finalize) /* 143 */
-#endif
-#ifndef Tcl_FindExecutable
-#define Tcl_FindExecutable \
- (tclStubsPtr->tcl_FindExecutable) /* 144 */
-#endif
-#ifndef Tcl_FirstHashEntry
-#define Tcl_FirstHashEntry \
- (tclStubsPtr->tcl_FirstHashEntry) /* 145 */
-#endif
-#ifndef Tcl_Flush
-#define Tcl_Flush \
- (tclStubsPtr->tcl_Flush) /* 146 */
-#endif
-#ifndef Tcl_FreeResult
-#define Tcl_FreeResult \
- (tclStubsPtr->tcl_FreeResult) /* 147 */
-#endif
-#ifndef Tcl_GetAlias
-#define Tcl_GetAlias \
- (tclStubsPtr->tcl_GetAlias) /* 148 */
-#endif
-#ifndef Tcl_GetAliasObj
-#define Tcl_GetAliasObj \
- (tclStubsPtr->tcl_GetAliasObj) /* 149 */
-#endif
-#ifndef Tcl_GetAssocData
-#define Tcl_GetAssocData \
- (tclStubsPtr->tcl_GetAssocData) /* 150 */
-#endif
-#ifndef Tcl_GetChannel
-#define Tcl_GetChannel \
- (tclStubsPtr->tcl_GetChannel) /* 151 */
-#endif
-#ifndef Tcl_GetChannelBufferSize
-#define Tcl_GetChannelBufferSize \
- (tclStubsPtr->tcl_GetChannelBufferSize) /* 152 */
-#endif
-#ifndef Tcl_GetChannelHandle
-#define Tcl_GetChannelHandle \
- (tclStubsPtr->tcl_GetChannelHandle) /* 153 */
-#endif
-#ifndef Tcl_GetChannelInstanceData
-#define Tcl_GetChannelInstanceData \
- (tclStubsPtr->tcl_GetChannelInstanceData) /* 154 */
-#endif
-#ifndef Tcl_GetChannelMode
-#define Tcl_GetChannelMode \
- (tclStubsPtr->tcl_GetChannelMode) /* 155 */
-#endif
-#ifndef Tcl_GetChannelName
-#define Tcl_GetChannelName \
- (tclStubsPtr->tcl_GetChannelName) /* 156 */
-#endif
-#ifndef Tcl_GetChannelOption
-#define Tcl_GetChannelOption \
- (tclStubsPtr->tcl_GetChannelOption) /* 157 */
-#endif
-#ifndef Tcl_GetChannelType
-#define Tcl_GetChannelType \
- (tclStubsPtr->tcl_GetChannelType) /* 158 */
-#endif
-#ifndef Tcl_GetCommandInfo
-#define Tcl_GetCommandInfo \
- (tclStubsPtr->tcl_GetCommandInfo) /* 159 */
-#endif
-#ifndef Tcl_GetCommandName
-#define Tcl_GetCommandName \
- (tclStubsPtr->tcl_GetCommandName) /* 160 */
-#endif
-#ifndef Tcl_GetErrno
-#define Tcl_GetErrno \
- (tclStubsPtr->tcl_GetErrno) /* 161 */
-#endif
-#ifndef Tcl_GetHostName
-#define Tcl_GetHostName \
- (tclStubsPtr->tcl_GetHostName) /* 162 */
-#endif
-#ifndef Tcl_GetInterpPath
-#define Tcl_GetInterpPath \
- (tclStubsPtr->tcl_GetInterpPath) /* 163 */
-#endif
-#ifndef Tcl_GetMaster
-#define Tcl_GetMaster \
- (tclStubsPtr->tcl_GetMaster) /* 164 */
-#endif
-#ifndef Tcl_GetNameOfExecutable
-#define Tcl_GetNameOfExecutable \
- (tclStubsPtr->tcl_GetNameOfExecutable) /* 165 */
-#endif
-#ifndef Tcl_GetObjResult
-#define Tcl_GetObjResult \
- (tclStubsPtr->tcl_GetObjResult) /* 166 */
-#endif
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-#ifndef Tcl_GetOpenFile
-#define Tcl_GetOpenFile \
- (tclStubsPtr->tcl_GetOpenFile) /* 167 */
-#endif
-#endif /* UNIX */
-#ifndef Tcl_GetPathType
-#define Tcl_GetPathType \
- (tclStubsPtr->tcl_GetPathType) /* 168 */
-#endif
-#ifndef Tcl_Gets
-#define Tcl_Gets \
- (tclStubsPtr->tcl_Gets) /* 169 */
-#endif
-#ifndef Tcl_GetsObj
-#define Tcl_GetsObj \
- (tclStubsPtr->tcl_GetsObj) /* 170 */
-#endif
-#ifndef Tcl_GetServiceMode
-#define Tcl_GetServiceMode \
- (tclStubsPtr->tcl_GetServiceMode) /* 171 */
-#endif
-#ifndef Tcl_GetSlave
-#define Tcl_GetSlave \
- (tclStubsPtr->tcl_GetSlave) /* 172 */
-#endif
-#ifndef Tcl_GetStdChannel
-#define Tcl_GetStdChannel \
- (tclStubsPtr->tcl_GetStdChannel) /* 173 */
-#endif
-#ifndef Tcl_GetStringResult
-#define Tcl_GetStringResult \
- (tclStubsPtr->tcl_GetStringResult) /* 174 */
-#endif
-#ifndef Tcl_GetVar
-#define Tcl_GetVar \
- (tclStubsPtr->tcl_GetVar) /* 175 */
-#endif
-#ifndef Tcl_GetVar2
-#define Tcl_GetVar2 \
- (tclStubsPtr->tcl_GetVar2) /* 176 */
-#endif
-#ifndef Tcl_GlobalEval
-#define Tcl_GlobalEval \
- (tclStubsPtr->tcl_GlobalEval) /* 177 */
-#endif
-#ifndef Tcl_GlobalEvalObj
-#define Tcl_GlobalEvalObj \
- (tclStubsPtr->tcl_GlobalEvalObj) /* 178 */
-#endif
-#ifndef Tcl_HideCommand
-#define Tcl_HideCommand \
- (tclStubsPtr->tcl_HideCommand) /* 179 */
-#endif
-#ifndef Tcl_Init
-#define Tcl_Init \
- (tclStubsPtr->tcl_Init) /* 180 */
-#endif
-#ifndef Tcl_InitHashTable
-#define Tcl_InitHashTable \
- (tclStubsPtr->tcl_InitHashTable) /* 181 */
-#endif
-#ifndef Tcl_InputBlocked
-#define Tcl_InputBlocked \
- (tclStubsPtr->tcl_InputBlocked) /* 182 */
-#endif
-#ifndef Tcl_InputBuffered
-#define Tcl_InputBuffered \
- (tclStubsPtr->tcl_InputBuffered) /* 183 */
-#endif
-#ifndef Tcl_InterpDeleted
-#define Tcl_InterpDeleted \
- (tclStubsPtr->tcl_InterpDeleted) /* 184 */
-#endif
-#ifndef Tcl_IsSafe
-#define Tcl_IsSafe \
- (tclStubsPtr->tcl_IsSafe) /* 185 */
-#endif
-#ifndef Tcl_JoinPath
-#define Tcl_JoinPath \
- (tclStubsPtr->tcl_JoinPath) /* 186 */
-#endif
-#ifndef Tcl_LinkVar
-#define Tcl_LinkVar \
- (tclStubsPtr->tcl_LinkVar) /* 187 */
-#endif
-/* Slot 188 is reserved */
-#ifndef Tcl_MakeFileChannel
-#define Tcl_MakeFileChannel \
- (tclStubsPtr->tcl_MakeFileChannel) /* 189 */
-#endif
-#ifndef Tcl_MakeSafe
-#define Tcl_MakeSafe \
- (tclStubsPtr->tcl_MakeSafe) /* 190 */
-#endif
-#ifndef Tcl_MakeTcpClientChannel
-#define Tcl_MakeTcpClientChannel \
- (tclStubsPtr->tcl_MakeTcpClientChannel) /* 191 */
-#endif
-#ifndef Tcl_Merge
-#define Tcl_Merge \
- (tclStubsPtr->tcl_Merge) /* 192 */
-#endif
-#ifndef Tcl_NextHashEntry
-#define Tcl_NextHashEntry \
- (tclStubsPtr->tcl_NextHashEntry) /* 193 */
-#endif
-#ifndef Tcl_NotifyChannel
-#define Tcl_NotifyChannel \
- (tclStubsPtr->tcl_NotifyChannel) /* 194 */
-#endif
-#ifndef Tcl_ObjGetVar2
-#define Tcl_ObjGetVar2 \
- (tclStubsPtr->tcl_ObjGetVar2) /* 195 */
-#endif
-#ifndef Tcl_ObjSetVar2
-#define Tcl_ObjSetVar2 \
- (tclStubsPtr->tcl_ObjSetVar2) /* 196 */
-#endif
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-#ifndef Tcl_OpenCommandChannel
-#define Tcl_OpenCommandChannel \
- (tclStubsPtr->tcl_OpenCommandChannel) /* 197 */
-#endif
-#endif /* UNIX */
-#ifdef __WIN32__
-#ifndef Tcl_OpenCommandChannel
-#define Tcl_OpenCommandChannel \
- (tclStubsPtr->tcl_OpenCommandChannel) /* 197 */
-#endif
-#endif /* __WIN32__ */
-#ifndef Tcl_OpenFileChannel
-#define Tcl_OpenFileChannel \
- (tclStubsPtr->tcl_OpenFileChannel) /* 198 */
-#endif
-#ifndef Tcl_OpenTcpClient
-#define Tcl_OpenTcpClient \
- (tclStubsPtr->tcl_OpenTcpClient) /* 199 */
-#endif
-#ifndef Tcl_OpenTcpServer
-#define Tcl_OpenTcpServer \
- (tclStubsPtr->tcl_OpenTcpServer) /* 200 */
-#endif
-#ifndef Tcl_Preserve
-#define Tcl_Preserve \
- (tclStubsPtr->tcl_Preserve) /* 201 */
-#endif
-#ifndef Tcl_PrintDouble
-#define Tcl_PrintDouble \
- (tclStubsPtr->tcl_PrintDouble) /* 202 */
-#endif
-#ifndef Tcl_PutEnv
-#define Tcl_PutEnv \
- (tclStubsPtr->tcl_PutEnv) /* 203 */
-#endif
-#ifndef Tcl_PosixError
-#define Tcl_PosixError \
- (tclStubsPtr->tcl_PosixError) /* 204 */
-#endif
-#ifndef Tcl_QueueEvent
-#define Tcl_QueueEvent \
- (tclStubsPtr->tcl_QueueEvent) /* 205 */
-#endif
-#ifndef Tcl_Read
-#define Tcl_Read \
- (tclStubsPtr->tcl_Read) /* 206 */
-#endif
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-#ifndef Tcl_ReapDetachedProcs
-#define Tcl_ReapDetachedProcs \
- (tclStubsPtr->tcl_ReapDetachedProcs) /* 207 */
-#endif
-#endif /* UNIX */
-#ifdef __WIN32__
-#ifndef Tcl_ReapDetachedProcs
-#define Tcl_ReapDetachedProcs \
- (tclStubsPtr->tcl_ReapDetachedProcs) /* 207 */
-#endif
-#endif /* __WIN32__ */
-#ifndef Tcl_RecordAndEval
-#define Tcl_RecordAndEval \
- (tclStubsPtr->tcl_RecordAndEval) /* 208 */
-#endif
-#ifndef Tcl_RecordAndEvalObj
-#define Tcl_RecordAndEvalObj \
- (tclStubsPtr->tcl_RecordAndEvalObj) /* 209 */
-#endif
-#ifndef Tcl_RegisterChannel
-#define Tcl_RegisterChannel \
- (tclStubsPtr->tcl_RegisterChannel) /* 210 */
-#endif
-#ifndef Tcl_RegisterObjType
-#define Tcl_RegisterObjType \
- (tclStubsPtr->tcl_RegisterObjType) /* 211 */
-#endif
-#ifndef Tcl_RegExpCompile
-#define Tcl_RegExpCompile \
- (tclStubsPtr->tcl_RegExpCompile) /* 212 */
-#endif
-#ifndef Tcl_RegExpExec
-#define Tcl_RegExpExec \
- (tclStubsPtr->tcl_RegExpExec) /* 213 */
-#endif
-#ifndef Tcl_RegExpMatch
-#define Tcl_RegExpMatch \
- (tclStubsPtr->tcl_RegExpMatch) /* 214 */
-#endif
-#ifndef Tcl_RegExpRange
-#define Tcl_RegExpRange \
- (tclStubsPtr->tcl_RegExpRange) /* 215 */
-#endif
-#ifndef Tcl_Release
-#define Tcl_Release \
- (tclStubsPtr->tcl_Release) /* 216 */
-#endif
-#ifndef Tcl_ResetResult
-#define Tcl_ResetResult \
- (tclStubsPtr->tcl_ResetResult) /* 217 */
-#endif
-#ifndef Tcl_ScanElement
-#define Tcl_ScanElement \
- (tclStubsPtr->tcl_ScanElement) /* 218 */
-#endif
-#ifndef Tcl_ScanCountedElement
-#define Tcl_ScanCountedElement \
- (tclStubsPtr->tcl_ScanCountedElement) /* 219 */
-#endif
-#ifndef Tcl_SeekOld
-#define Tcl_SeekOld \
- (tclStubsPtr->tcl_SeekOld) /* 220 */
-#endif
-#ifndef Tcl_ServiceAll
-#define Tcl_ServiceAll \
- (tclStubsPtr->tcl_ServiceAll) /* 221 */
-#endif
-#ifndef Tcl_ServiceEvent
-#define Tcl_ServiceEvent \
- (tclStubsPtr->tcl_ServiceEvent) /* 222 */
-#endif
-#ifndef Tcl_SetAssocData
-#define Tcl_SetAssocData \
- (tclStubsPtr->tcl_SetAssocData) /* 223 */
-#endif
-#ifndef Tcl_SetChannelBufferSize
-#define Tcl_SetChannelBufferSize \
- (tclStubsPtr->tcl_SetChannelBufferSize) /* 224 */
-#endif
-#ifndef Tcl_SetChannelOption
-#define Tcl_SetChannelOption \
- (tclStubsPtr->tcl_SetChannelOption) /* 225 */
-#endif
-#ifndef Tcl_SetCommandInfo
-#define Tcl_SetCommandInfo \
- (tclStubsPtr->tcl_SetCommandInfo) /* 226 */
-#endif
-#ifndef Tcl_SetErrno
-#define Tcl_SetErrno \
- (tclStubsPtr->tcl_SetErrno) /* 227 */
-#endif
-#ifndef Tcl_SetErrorCode
-#define Tcl_SetErrorCode \
- (tclStubsPtr->tcl_SetErrorCode) /* 228 */
-#endif
-#ifndef Tcl_SetMaxBlockTime
-#define Tcl_SetMaxBlockTime \
- (tclStubsPtr->tcl_SetMaxBlockTime) /* 229 */
-#endif
-#ifndef Tcl_SetPanicProc
-#define Tcl_SetPanicProc \
- (tclStubsPtr->tcl_SetPanicProc) /* 230 */
-#endif
-#ifndef Tcl_SetRecursionLimit
-#define Tcl_SetRecursionLimit \
- (tclStubsPtr->tcl_SetRecursionLimit) /* 231 */
-#endif
-#ifndef Tcl_SetResult
-#define Tcl_SetResult \
- (tclStubsPtr->tcl_SetResult) /* 232 */
-#endif
-#ifndef Tcl_SetServiceMode
-#define Tcl_SetServiceMode \
- (tclStubsPtr->tcl_SetServiceMode) /* 233 */
-#endif
-#ifndef Tcl_SetObjErrorCode
-#define Tcl_SetObjErrorCode \
- (tclStubsPtr->tcl_SetObjErrorCode) /* 234 */
-#endif
-#ifndef Tcl_SetObjResult
-#define Tcl_SetObjResult \
- (tclStubsPtr->tcl_SetObjResult) /* 235 */
-#endif
-#ifndef Tcl_SetStdChannel
-#define Tcl_SetStdChannel \
- (tclStubsPtr->tcl_SetStdChannel) /* 236 */
-#endif
-#ifndef Tcl_SetVar
-#define Tcl_SetVar \
- (tclStubsPtr->tcl_SetVar) /* 237 */
-#endif
-#ifndef Tcl_SetVar2
-#define Tcl_SetVar2 \
- (tclStubsPtr->tcl_SetVar2) /* 238 */
-#endif
-#ifndef Tcl_SignalId
-#define Tcl_SignalId \
- (tclStubsPtr->tcl_SignalId) /* 239 */
-#endif
-#ifndef Tcl_SignalMsg
-#define Tcl_SignalMsg \
- (tclStubsPtr->tcl_SignalMsg) /* 240 */
-#endif
-#ifndef Tcl_SourceRCFile
-#define Tcl_SourceRCFile \
- (tclStubsPtr->tcl_SourceRCFile) /* 241 */
-#endif
-#ifndef Tcl_SplitList
-#define Tcl_SplitList \
- (tclStubsPtr->tcl_SplitList) /* 242 */
-#endif
-#ifndef Tcl_SplitPath
-#define Tcl_SplitPath \
- (tclStubsPtr->tcl_SplitPath) /* 243 */
-#endif
-#ifndef Tcl_StaticPackage
-#define Tcl_StaticPackage \
- (tclStubsPtr->tcl_StaticPackage) /* 244 */
-#endif
-#ifndef Tcl_StringMatch
-#define Tcl_StringMatch \
- (tclStubsPtr->tcl_StringMatch) /* 245 */
-#endif
-#ifndef Tcl_TellOld
-#define Tcl_TellOld \
- (tclStubsPtr->tcl_TellOld) /* 246 */
-#endif
-#ifndef Tcl_TraceVar
-#define Tcl_TraceVar \
- (tclStubsPtr->tcl_TraceVar) /* 247 */
-#endif
-#ifndef Tcl_TraceVar2
-#define Tcl_TraceVar2 \
- (tclStubsPtr->tcl_TraceVar2) /* 248 */
-#endif
-#ifndef Tcl_TranslateFileName
-#define Tcl_TranslateFileName \
- (tclStubsPtr->tcl_TranslateFileName) /* 249 */
-#endif
-#ifndef Tcl_Ungets
-#define Tcl_Ungets \
- (tclStubsPtr->tcl_Ungets) /* 250 */
-#endif
-#ifndef Tcl_UnlinkVar
-#define Tcl_UnlinkVar \
- (tclStubsPtr->tcl_UnlinkVar) /* 251 */
-#endif
-#ifndef Tcl_UnregisterChannel
-#define Tcl_UnregisterChannel \
- (tclStubsPtr->tcl_UnregisterChannel) /* 252 */
-#endif
-#ifndef Tcl_UnsetVar
-#define Tcl_UnsetVar \
- (tclStubsPtr->tcl_UnsetVar) /* 253 */
-#endif
-#ifndef Tcl_UnsetVar2
-#define Tcl_UnsetVar2 \
- (tclStubsPtr->tcl_UnsetVar2) /* 254 */
-#endif
-#ifndef Tcl_UntraceVar
-#define Tcl_UntraceVar \
- (tclStubsPtr->tcl_UntraceVar) /* 255 */
-#endif
-#ifndef Tcl_UntraceVar2
-#define Tcl_UntraceVar2 \
- (tclStubsPtr->tcl_UntraceVar2) /* 256 */
-#endif
-#ifndef Tcl_UpdateLinkedVar
-#define Tcl_UpdateLinkedVar \
- (tclStubsPtr->tcl_UpdateLinkedVar) /* 257 */
-#endif
-#ifndef Tcl_UpVar
-#define Tcl_UpVar \
- (tclStubsPtr->tcl_UpVar) /* 258 */
-#endif
-#ifndef Tcl_UpVar2
-#define Tcl_UpVar2 \
- (tclStubsPtr->tcl_UpVar2) /* 259 */
-#endif
-#ifndef Tcl_VarEval
-#define Tcl_VarEval \
- (tclStubsPtr->tcl_VarEval) /* 260 */
-#endif
-#ifndef Tcl_VarTraceInfo
-#define Tcl_VarTraceInfo \
- (tclStubsPtr->tcl_VarTraceInfo) /* 261 */
-#endif
-#ifndef Tcl_VarTraceInfo2
-#define Tcl_VarTraceInfo2 \
- (tclStubsPtr->tcl_VarTraceInfo2) /* 262 */
-#endif
-#ifndef Tcl_Write
-#define Tcl_Write \
- (tclStubsPtr->tcl_Write) /* 263 */
-#endif
-#ifndef Tcl_WrongNumArgs
-#define Tcl_WrongNumArgs \
- (tclStubsPtr->tcl_WrongNumArgs) /* 264 */
-#endif
-#ifndef Tcl_DumpActiveMemory
-#define Tcl_DumpActiveMemory \
- (tclStubsPtr->tcl_DumpActiveMemory) /* 265 */
-#endif
-#ifndef Tcl_ValidateAllMemory
-#define Tcl_ValidateAllMemory \
- (tclStubsPtr->tcl_ValidateAllMemory) /* 266 */
-#endif
-#ifndef Tcl_AppendResultVA
-#define Tcl_AppendResultVA \
- (tclStubsPtr->tcl_AppendResultVA) /* 267 */
-#endif
-#ifndef Tcl_AppendStringsToObjVA
-#define Tcl_AppendStringsToObjVA \
- (tclStubsPtr->tcl_AppendStringsToObjVA) /* 268 */
-#endif
-#ifndef Tcl_HashStats
-#define Tcl_HashStats \
- (tclStubsPtr->tcl_HashStats) /* 269 */
-#endif
-#ifndef Tcl_ParseVar
-#define Tcl_ParseVar \
- (tclStubsPtr->tcl_ParseVar) /* 270 */
-#endif
-#ifndef Tcl_PkgPresent
-#define Tcl_PkgPresent \
- (tclStubsPtr->tcl_PkgPresent) /* 271 */
-#endif
-#ifndef Tcl_PkgPresentEx
-#define Tcl_PkgPresentEx \
- (tclStubsPtr->tcl_PkgPresentEx) /* 272 */
-#endif
-#ifndef Tcl_PkgProvide
-#define Tcl_PkgProvide \
- (tclStubsPtr->tcl_PkgProvide) /* 273 */
-#endif
-#ifndef Tcl_PkgRequire
-#define Tcl_PkgRequire \
- (tclStubsPtr->tcl_PkgRequire) /* 274 */
-#endif
-#ifndef Tcl_SetErrorCodeVA
-#define Tcl_SetErrorCodeVA \
- (tclStubsPtr->tcl_SetErrorCodeVA) /* 275 */
-#endif
-#ifndef Tcl_VarEvalVA
-#define Tcl_VarEvalVA \
- (tclStubsPtr->tcl_VarEvalVA) /* 276 */
-#endif
-#ifndef Tcl_WaitPid
-#define Tcl_WaitPid \
- (tclStubsPtr->tcl_WaitPid) /* 277 */
-#endif
-#ifndef Tcl_PanicVA
-#define Tcl_PanicVA \
- (tclStubsPtr->tcl_PanicVA) /* 278 */
-#endif
-#ifndef Tcl_GetVersion
-#define Tcl_GetVersion \
- (tclStubsPtr->tcl_GetVersion) /* 279 */
-#endif
-#ifndef Tcl_InitMemory
-#define Tcl_InitMemory \
- (tclStubsPtr->tcl_InitMemory) /* 280 */
-#endif
-#ifndef Tcl_StackChannel
-#define Tcl_StackChannel \
- (tclStubsPtr->tcl_StackChannel) /* 281 */
-#endif
-#ifndef Tcl_UnstackChannel
-#define Tcl_UnstackChannel \
- (tclStubsPtr->tcl_UnstackChannel) /* 282 */
-#endif
-#ifndef Tcl_GetStackedChannel
-#define Tcl_GetStackedChannel \
- (tclStubsPtr->tcl_GetStackedChannel) /* 283 */
-#endif
-#ifndef Tcl_SetMainLoop
-#define Tcl_SetMainLoop \
- (tclStubsPtr->tcl_SetMainLoop) /* 284 */
-#endif
-/* Slot 285 is reserved */
-#ifndef Tcl_AppendObjToObj
-#define Tcl_AppendObjToObj \
- (tclStubsPtr->tcl_AppendObjToObj) /* 286 */
-#endif
-#ifndef Tcl_CreateEncoding
-#define Tcl_CreateEncoding \
- (tclStubsPtr->tcl_CreateEncoding) /* 287 */
-#endif
-#ifndef Tcl_CreateThreadExitHandler
-#define Tcl_CreateThreadExitHandler \
- (tclStubsPtr->tcl_CreateThreadExitHandler) /* 288 */
-#endif
-#ifndef Tcl_DeleteThreadExitHandler
-#define Tcl_DeleteThreadExitHandler \
- (tclStubsPtr->tcl_DeleteThreadExitHandler) /* 289 */
-#endif
-#ifndef Tcl_DiscardResult
-#define Tcl_DiscardResult \
- (tclStubsPtr->tcl_DiscardResult) /* 290 */
-#endif
-#ifndef Tcl_EvalEx
-#define Tcl_EvalEx \
- (tclStubsPtr->tcl_EvalEx) /* 291 */
-#endif
-#ifndef Tcl_EvalObjv
-#define Tcl_EvalObjv \
- (tclStubsPtr->tcl_EvalObjv) /* 292 */
-#endif
-#ifndef Tcl_EvalObjEx
-#define Tcl_EvalObjEx \
- (tclStubsPtr->tcl_EvalObjEx) /* 293 */
-#endif
-#ifndef Tcl_ExitThread
-#define Tcl_ExitThread \
- (tclStubsPtr->tcl_ExitThread) /* 294 */
-#endif
-#ifndef Tcl_ExternalToUtf
-#define Tcl_ExternalToUtf \
- (tclStubsPtr->tcl_ExternalToUtf) /* 295 */
-#endif
-#ifndef Tcl_ExternalToUtfDString
-#define Tcl_ExternalToUtfDString \
- (tclStubsPtr->tcl_ExternalToUtfDString) /* 296 */
-#endif
-#ifndef Tcl_FinalizeThread
-#define Tcl_FinalizeThread \
- (tclStubsPtr->tcl_FinalizeThread) /* 297 */
-#endif
-#ifndef Tcl_FinalizeNotifier
-#define Tcl_FinalizeNotifier \
- (tclStubsPtr->tcl_FinalizeNotifier) /* 298 */
-#endif
-#ifndef Tcl_FreeEncoding
-#define Tcl_FreeEncoding \
- (tclStubsPtr->tcl_FreeEncoding) /* 299 */
-#endif
-#ifndef Tcl_GetCurrentThread
-#define Tcl_GetCurrentThread \
- (tclStubsPtr->tcl_GetCurrentThread) /* 300 */
-#endif
-#ifndef Tcl_GetEncoding
-#define Tcl_GetEncoding \
- (tclStubsPtr->tcl_GetEncoding) /* 301 */
-#endif
-#ifndef Tcl_GetEncodingName
-#define Tcl_GetEncodingName \
- (tclStubsPtr->tcl_GetEncodingName) /* 302 */
-#endif
-#ifndef Tcl_GetEncodingNames
-#define Tcl_GetEncodingNames \
- (tclStubsPtr->tcl_GetEncodingNames) /* 303 */
-#endif
-#ifndef Tcl_GetIndexFromObjStruct
-#define Tcl_GetIndexFromObjStruct \
- (tclStubsPtr->tcl_GetIndexFromObjStruct) /* 304 */
-#endif
-#ifndef Tcl_GetThreadData
-#define Tcl_GetThreadData \
- (tclStubsPtr->tcl_GetThreadData) /* 305 */
-#endif
-#ifndef Tcl_GetVar2Ex
-#define Tcl_GetVar2Ex \
- (tclStubsPtr->tcl_GetVar2Ex) /* 306 */
-#endif
-#ifndef Tcl_InitNotifier
-#define Tcl_InitNotifier \
- (tclStubsPtr->tcl_InitNotifier) /* 307 */
-#endif
-#ifndef Tcl_MutexLock
-#define Tcl_MutexLock \
- (tclStubsPtr->tcl_MutexLock) /* 308 */
-#endif
-#ifndef Tcl_MutexUnlock
-#define Tcl_MutexUnlock \
- (tclStubsPtr->tcl_MutexUnlock) /* 309 */
-#endif
-#ifndef Tcl_ConditionNotify
-#define Tcl_ConditionNotify \
- (tclStubsPtr->tcl_ConditionNotify) /* 310 */
-#endif
-#ifndef Tcl_ConditionWait
-#define Tcl_ConditionWait \
- (tclStubsPtr->tcl_ConditionWait) /* 311 */
-#endif
-#ifndef Tcl_NumUtfChars
-#define Tcl_NumUtfChars \
- (tclStubsPtr->tcl_NumUtfChars) /* 312 */
-#endif
-#ifndef Tcl_ReadChars
-#define Tcl_ReadChars \
- (tclStubsPtr->tcl_ReadChars) /* 313 */
-#endif
-#ifndef Tcl_RestoreResult
-#define Tcl_RestoreResult \
- (tclStubsPtr->tcl_RestoreResult) /* 314 */
-#endif
-#ifndef Tcl_SaveResult
-#define Tcl_SaveResult \
- (tclStubsPtr->tcl_SaveResult) /* 315 */
-#endif
-#ifndef Tcl_SetSystemEncoding
-#define Tcl_SetSystemEncoding \
- (tclStubsPtr->tcl_SetSystemEncoding) /* 316 */
-#endif
-#ifndef Tcl_SetVar2Ex
-#define Tcl_SetVar2Ex \
- (tclStubsPtr->tcl_SetVar2Ex) /* 317 */
-#endif
-#ifndef Tcl_ThreadAlert
-#define Tcl_ThreadAlert \
- (tclStubsPtr->tcl_ThreadAlert) /* 318 */
-#endif
-#ifndef Tcl_ThreadQueueEvent
-#define Tcl_ThreadQueueEvent \
- (tclStubsPtr->tcl_ThreadQueueEvent) /* 319 */
-#endif
-#ifndef Tcl_UniCharAtIndex
-#define Tcl_UniCharAtIndex \
- (tclStubsPtr->tcl_UniCharAtIndex) /* 320 */
-#endif
-#ifndef Tcl_UniCharToLower
-#define Tcl_UniCharToLower \
- (tclStubsPtr->tcl_UniCharToLower) /* 321 */
-#endif
-#ifndef Tcl_UniCharToTitle
-#define Tcl_UniCharToTitle \
- (tclStubsPtr->tcl_UniCharToTitle) /* 322 */
-#endif
-#ifndef Tcl_UniCharToUpper
-#define Tcl_UniCharToUpper \
- (tclStubsPtr->tcl_UniCharToUpper) /* 323 */
-#endif
-#ifndef Tcl_UniCharToUtf
-#define Tcl_UniCharToUtf \
- (tclStubsPtr->tcl_UniCharToUtf) /* 324 */
-#endif
-#ifndef Tcl_UtfAtIndex
-#define Tcl_UtfAtIndex \
- (tclStubsPtr->tcl_UtfAtIndex) /* 325 */
-#endif
-#ifndef Tcl_UtfCharComplete
-#define Tcl_UtfCharComplete \
- (tclStubsPtr->tcl_UtfCharComplete) /* 326 */
-#endif
-#ifndef Tcl_UtfBackslash
-#define Tcl_UtfBackslash \
- (tclStubsPtr->tcl_UtfBackslash) /* 327 */
-#endif
-#ifndef Tcl_UtfFindFirst
-#define Tcl_UtfFindFirst \
- (tclStubsPtr->tcl_UtfFindFirst) /* 328 */
-#endif
-#ifndef Tcl_UtfFindLast
-#define Tcl_UtfFindLast \
- (tclStubsPtr->tcl_UtfFindLast) /* 329 */
-#endif
-#ifndef Tcl_UtfNext
-#define Tcl_UtfNext \
- (tclStubsPtr->tcl_UtfNext) /* 330 */
-#endif
-#ifndef Tcl_UtfPrev
-#define Tcl_UtfPrev \
- (tclStubsPtr->tcl_UtfPrev) /* 331 */
-#endif
-#ifndef Tcl_UtfToExternal
-#define Tcl_UtfToExternal \
- (tclStubsPtr->tcl_UtfToExternal) /* 332 */
-#endif
-#ifndef Tcl_UtfToExternalDString
-#define Tcl_UtfToExternalDString \
- (tclStubsPtr->tcl_UtfToExternalDString) /* 333 */
-#endif
-#ifndef Tcl_UtfToLower
-#define Tcl_UtfToLower \
- (tclStubsPtr->tcl_UtfToLower) /* 334 */
-#endif
-#ifndef Tcl_UtfToTitle
-#define Tcl_UtfToTitle \
- (tclStubsPtr->tcl_UtfToTitle) /* 335 */
-#endif
-#ifndef Tcl_UtfToUniChar
-#define Tcl_UtfToUniChar \
- (tclStubsPtr->tcl_UtfToUniChar) /* 336 */
-#endif
-#ifndef Tcl_UtfToUpper
-#define Tcl_UtfToUpper \
- (tclStubsPtr->tcl_UtfToUpper) /* 337 */
-#endif
-#ifndef Tcl_WriteChars
-#define Tcl_WriteChars \
- (tclStubsPtr->tcl_WriteChars) /* 338 */
-#endif
-#ifndef Tcl_WriteObj
-#define Tcl_WriteObj \
- (tclStubsPtr->tcl_WriteObj) /* 339 */
-#endif
-#ifndef Tcl_GetString
-#define Tcl_GetString \
- (tclStubsPtr->tcl_GetString) /* 340 */
-#endif
-#ifndef Tcl_GetDefaultEncodingDir
-#define Tcl_GetDefaultEncodingDir \
- (tclStubsPtr->tcl_GetDefaultEncodingDir) /* 341 */
-#endif
-#ifndef Tcl_SetDefaultEncodingDir
-#define Tcl_SetDefaultEncodingDir \
- (tclStubsPtr->tcl_SetDefaultEncodingDir) /* 342 */
-#endif
-#ifndef Tcl_AlertNotifier
-#define Tcl_AlertNotifier \
- (tclStubsPtr->tcl_AlertNotifier) /* 343 */
-#endif
-#ifndef Tcl_ServiceModeHook
-#define Tcl_ServiceModeHook \
- (tclStubsPtr->tcl_ServiceModeHook) /* 344 */
-#endif
-#ifndef Tcl_UniCharIsAlnum
-#define Tcl_UniCharIsAlnum \
- (tclStubsPtr->tcl_UniCharIsAlnum) /* 345 */
-#endif
-#ifndef Tcl_UniCharIsAlpha
-#define Tcl_UniCharIsAlpha \
- (tclStubsPtr->tcl_UniCharIsAlpha) /* 346 */
-#endif
-#ifndef Tcl_UniCharIsDigit
-#define Tcl_UniCharIsDigit \
- (tclStubsPtr->tcl_UniCharIsDigit) /* 347 */
-#endif
-#ifndef Tcl_UniCharIsLower
-#define Tcl_UniCharIsLower \
- (tclStubsPtr->tcl_UniCharIsLower) /* 348 */
-#endif
-#ifndef Tcl_UniCharIsSpace
-#define Tcl_UniCharIsSpace \
- (tclStubsPtr->tcl_UniCharIsSpace) /* 349 */
-#endif
-#ifndef Tcl_UniCharIsUpper
-#define Tcl_UniCharIsUpper \
- (tclStubsPtr->tcl_UniCharIsUpper) /* 350 */
-#endif
-#ifndef Tcl_UniCharIsWordChar
-#define Tcl_UniCharIsWordChar \
- (tclStubsPtr->tcl_UniCharIsWordChar) /* 351 */
-#endif
-#ifndef Tcl_UniCharLen
-#define Tcl_UniCharLen \
- (tclStubsPtr->tcl_UniCharLen) /* 352 */
-#endif
-#ifndef Tcl_UniCharNcmp
-#define Tcl_UniCharNcmp \
- (tclStubsPtr->tcl_UniCharNcmp) /* 353 */
-#endif
-#ifndef Tcl_UniCharToUtfDString
-#define Tcl_UniCharToUtfDString \
- (tclStubsPtr->tcl_UniCharToUtfDString) /* 354 */
-#endif
-#ifndef Tcl_UtfToUniCharDString
-#define Tcl_UtfToUniCharDString \
- (tclStubsPtr->tcl_UtfToUniCharDString) /* 355 */
-#endif
-#ifndef Tcl_GetRegExpFromObj
-#define Tcl_GetRegExpFromObj \
- (tclStubsPtr->tcl_GetRegExpFromObj) /* 356 */
-#endif
-#ifndef Tcl_EvalTokens
-#define Tcl_EvalTokens \
- (tclStubsPtr->tcl_EvalTokens) /* 357 */
-#endif
-#ifndef Tcl_FreeParse
-#define Tcl_FreeParse \
- (tclStubsPtr->tcl_FreeParse) /* 358 */
-#endif
-#ifndef Tcl_LogCommandInfo
-#define Tcl_LogCommandInfo \
- (tclStubsPtr->tcl_LogCommandInfo) /* 359 */
-#endif
-#ifndef Tcl_ParseBraces
-#define Tcl_ParseBraces \
- (tclStubsPtr->tcl_ParseBraces) /* 360 */
-#endif
-#ifndef Tcl_ParseCommand
-#define Tcl_ParseCommand \
- (tclStubsPtr->tcl_ParseCommand) /* 361 */
-#endif
-#ifndef Tcl_ParseExpr
-#define Tcl_ParseExpr \
- (tclStubsPtr->tcl_ParseExpr) /* 362 */
-#endif
-#ifndef Tcl_ParseQuotedString
-#define Tcl_ParseQuotedString \
- (tclStubsPtr->tcl_ParseQuotedString) /* 363 */
-#endif
-#ifndef Tcl_ParseVarName
-#define Tcl_ParseVarName \
- (tclStubsPtr->tcl_ParseVarName) /* 364 */
-#endif
-#ifndef Tcl_GetCwd
-#define Tcl_GetCwd \
- (tclStubsPtr->tcl_GetCwd) /* 365 */
-#endif
-#ifndef Tcl_Chdir
-#define Tcl_Chdir \
- (tclStubsPtr->tcl_Chdir) /* 366 */
-#endif
-#ifndef Tcl_Access
-#define Tcl_Access \
- (tclStubsPtr->tcl_Access) /* 367 */
-#endif
-#ifndef Tcl_Stat
-#define Tcl_Stat \
- (tclStubsPtr->tcl_Stat) /* 368 */
-#endif
-#ifndef Tcl_UtfNcmp
-#define Tcl_UtfNcmp \
- (tclStubsPtr->tcl_UtfNcmp) /* 369 */
-#endif
-#ifndef Tcl_UtfNcasecmp
-#define Tcl_UtfNcasecmp \
- (tclStubsPtr->tcl_UtfNcasecmp) /* 370 */
-#endif
-#ifndef Tcl_StringCaseMatch
-#define Tcl_StringCaseMatch \
- (tclStubsPtr->tcl_StringCaseMatch) /* 371 */
-#endif
-#ifndef Tcl_UniCharIsControl
-#define Tcl_UniCharIsControl \
- (tclStubsPtr->tcl_UniCharIsControl) /* 372 */
-#endif
-#ifndef Tcl_UniCharIsGraph
-#define Tcl_UniCharIsGraph \
- (tclStubsPtr->tcl_UniCharIsGraph) /* 373 */
-#endif
-#ifndef Tcl_UniCharIsPrint
-#define Tcl_UniCharIsPrint \
- (tclStubsPtr->tcl_UniCharIsPrint) /* 374 */
-#endif
-#ifndef Tcl_UniCharIsPunct
-#define Tcl_UniCharIsPunct \
- (tclStubsPtr->tcl_UniCharIsPunct) /* 375 */
-#endif
-#ifndef Tcl_RegExpExecObj
-#define Tcl_RegExpExecObj \
- (tclStubsPtr->tcl_RegExpExecObj) /* 376 */
-#endif
-#ifndef Tcl_RegExpGetInfo
-#define Tcl_RegExpGetInfo \
- (tclStubsPtr->tcl_RegExpGetInfo) /* 377 */
-#endif
-#ifndef Tcl_NewUnicodeObj
-#define Tcl_NewUnicodeObj \
- (tclStubsPtr->tcl_NewUnicodeObj) /* 378 */
-#endif
-#ifndef Tcl_SetUnicodeObj
-#define Tcl_SetUnicodeObj \
- (tclStubsPtr->tcl_SetUnicodeObj) /* 379 */
-#endif
-#ifndef Tcl_GetCharLength
-#define Tcl_GetCharLength \
- (tclStubsPtr->tcl_GetCharLength) /* 380 */
-#endif
-#ifndef Tcl_GetUniChar
-#define Tcl_GetUniChar \
- (tclStubsPtr->tcl_GetUniChar) /* 381 */
-#endif
-#ifndef Tcl_GetUnicode
-#define Tcl_GetUnicode \
- (tclStubsPtr->tcl_GetUnicode) /* 382 */
-#endif
-#ifndef Tcl_GetRange
-#define Tcl_GetRange \
- (tclStubsPtr->tcl_GetRange) /* 383 */
-#endif
-#ifndef Tcl_AppendUnicodeToObj
-#define Tcl_AppendUnicodeToObj \
- (tclStubsPtr->tcl_AppendUnicodeToObj) /* 384 */
-#endif
-#ifndef Tcl_RegExpMatchObj
-#define Tcl_RegExpMatchObj \
- (tclStubsPtr->tcl_RegExpMatchObj) /* 385 */
-#endif
-#ifndef Tcl_SetNotifier
-#define Tcl_SetNotifier \
- (tclStubsPtr->tcl_SetNotifier) /* 386 */
-#endif
-#ifndef Tcl_GetAllocMutex
-#define Tcl_GetAllocMutex \
- (tclStubsPtr->tcl_GetAllocMutex) /* 387 */
-#endif
-#ifndef Tcl_GetChannelNames
-#define Tcl_GetChannelNames \
- (tclStubsPtr->tcl_GetChannelNames) /* 388 */
-#endif
-#ifndef Tcl_GetChannelNamesEx
-#define Tcl_GetChannelNamesEx \
- (tclStubsPtr->tcl_GetChannelNamesEx) /* 389 */
-#endif
-#ifndef Tcl_ProcObjCmd
-#define Tcl_ProcObjCmd \
- (tclStubsPtr->tcl_ProcObjCmd) /* 390 */
-#endif
-#ifndef Tcl_ConditionFinalize
-#define Tcl_ConditionFinalize \
- (tclStubsPtr->tcl_ConditionFinalize) /* 391 */
-#endif
-#ifndef Tcl_MutexFinalize
-#define Tcl_MutexFinalize \
- (tclStubsPtr->tcl_MutexFinalize) /* 392 */
-#endif
-#ifndef Tcl_CreateThread
-#define Tcl_CreateThread \
- (tclStubsPtr->tcl_CreateThread) /* 393 */
-#endif
-#ifndef Tcl_ReadRaw
-#define Tcl_ReadRaw \
- (tclStubsPtr->tcl_ReadRaw) /* 394 */
-#endif
-#ifndef Tcl_WriteRaw
-#define Tcl_WriteRaw \
- (tclStubsPtr->tcl_WriteRaw) /* 395 */
-#endif
-#ifndef Tcl_GetTopChannel
-#define Tcl_GetTopChannel \
- (tclStubsPtr->tcl_GetTopChannel) /* 396 */
-#endif
-#ifndef Tcl_ChannelBuffered
-#define Tcl_ChannelBuffered \
- (tclStubsPtr->tcl_ChannelBuffered) /* 397 */
-#endif
-#ifndef Tcl_ChannelName
-#define Tcl_ChannelName \
- (tclStubsPtr->tcl_ChannelName) /* 398 */
-#endif
-#ifndef Tcl_ChannelVersion
-#define Tcl_ChannelVersion \
- (tclStubsPtr->tcl_ChannelVersion) /* 399 */
-#endif
-#ifndef Tcl_ChannelBlockModeProc
-#define Tcl_ChannelBlockModeProc \
- (tclStubsPtr->tcl_ChannelBlockModeProc) /* 400 */
-#endif
-#ifndef Tcl_ChannelCloseProc
-#define Tcl_ChannelCloseProc \
- (tclStubsPtr->tcl_ChannelCloseProc) /* 401 */
-#endif
-#ifndef Tcl_ChannelClose2Proc
-#define Tcl_ChannelClose2Proc \
- (tclStubsPtr->tcl_ChannelClose2Proc) /* 402 */
-#endif
-#ifndef Tcl_ChannelInputProc
-#define Tcl_ChannelInputProc \
- (tclStubsPtr->tcl_ChannelInputProc) /* 403 */
-#endif
-#ifndef Tcl_ChannelOutputProc
-#define Tcl_ChannelOutputProc \
- (tclStubsPtr->tcl_ChannelOutputProc) /* 404 */
-#endif
-#ifndef Tcl_ChannelSeekProc
-#define Tcl_ChannelSeekProc \
- (tclStubsPtr->tcl_ChannelSeekProc) /* 405 */
-#endif
-#ifndef Tcl_ChannelSetOptionProc
-#define Tcl_ChannelSetOptionProc \
- (tclStubsPtr->tcl_ChannelSetOptionProc) /* 406 */
-#endif
-#ifndef Tcl_ChannelGetOptionProc
-#define Tcl_ChannelGetOptionProc \
- (tclStubsPtr->tcl_ChannelGetOptionProc) /* 407 */
-#endif
-#ifndef Tcl_ChannelWatchProc
-#define Tcl_ChannelWatchProc \
- (tclStubsPtr->tcl_ChannelWatchProc) /* 408 */
-#endif
-#ifndef Tcl_ChannelGetHandleProc
-#define Tcl_ChannelGetHandleProc \
- (tclStubsPtr->tcl_ChannelGetHandleProc) /* 409 */
-#endif
-#ifndef Tcl_ChannelFlushProc
-#define Tcl_ChannelFlushProc \
- (tclStubsPtr->tcl_ChannelFlushProc) /* 410 */
-#endif
-#ifndef Tcl_ChannelHandlerProc
-#define Tcl_ChannelHandlerProc \
- (tclStubsPtr->tcl_ChannelHandlerProc) /* 411 */
-#endif
-#ifndef Tcl_JoinThread
-#define Tcl_JoinThread \
- (tclStubsPtr->tcl_JoinThread) /* 412 */
-#endif
-#ifndef Tcl_IsChannelShared
-#define Tcl_IsChannelShared \
- (tclStubsPtr->tcl_IsChannelShared) /* 413 */
-#endif
-#ifndef Tcl_IsChannelRegistered
-#define Tcl_IsChannelRegistered \
- (tclStubsPtr->tcl_IsChannelRegistered) /* 414 */
-#endif
-#ifndef Tcl_CutChannel
-#define Tcl_CutChannel \
- (tclStubsPtr->tcl_CutChannel) /* 415 */
-#endif
-#ifndef Tcl_SpliceChannel
-#define Tcl_SpliceChannel \
- (tclStubsPtr->tcl_SpliceChannel) /* 416 */
-#endif
-#ifndef Tcl_ClearChannelHandlers
-#define Tcl_ClearChannelHandlers \
- (tclStubsPtr->tcl_ClearChannelHandlers) /* 417 */
-#endif
-#ifndef Tcl_IsChannelExisting
-#define Tcl_IsChannelExisting \
- (tclStubsPtr->tcl_IsChannelExisting) /* 418 */
-#endif
-#ifndef Tcl_UniCharNcasecmp
-#define Tcl_UniCharNcasecmp \
- (tclStubsPtr->tcl_UniCharNcasecmp) /* 419 */
-#endif
-#ifndef Tcl_UniCharCaseMatch
-#define Tcl_UniCharCaseMatch \
- (tclStubsPtr->tcl_UniCharCaseMatch) /* 420 */
-#endif
-#ifndef Tcl_FindHashEntry
-#define Tcl_FindHashEntry \
- (tclStubsPtr->tcl_FindHashEntry) /* 421 */
-#endif
-#ifndef Tcl_CreateHashEntry
-#define Tcl_CreateHashEntry \
- (tclStubsPtr->tcl_CreateHashEntry) /* 422 */
-#endif
-#ifndef Tcl_InitCustomHashTable
-#define Tcl_InitCustomHashTable \
- (tclStubsPtr->tcl_InitCustomHashTable) /* 423 */
-#endif
-#ifndef Tcl_InitObjHashTable
-#define Tcl_InitObjHashTable \
- (tclStubsPtr->tcl_InitObjHashTable) /* 424 */
-#endif
-#ifndef Tcl_CommandTraceInfo
-#define Tcl_CommandTraceInfo \
- (tclStubsPtr->tcl_CommandTraceInfo) /* 425 */
-#endif
-#ifndef Tcl_TraceCommand
-#define Tcl_TraceCommand \
- (tclStubsPtr->tcl_TraceCommand) /* 426 */
-#endif
-#ifndef Tcl_UntraceCommand
-#define Tcl_UntraceCommand \
- (tclStubsPtr->tcl_UntraceCommand) /* 427 */
-#endif
-#ifndef Tcl_AttemptAlloc
-#define Tcl_AttemptAlloc \
- (tclStubsPtr->tcl_AttemptAlloc) /* 428 */
-#endif
-#ifndef Tcl_AttemptDbCkalloc
-#define Tcl_AttemptDbCkalloc \
- (tclStubsPtr->tcl_AttemptDbCkalloc) /* 429 */
-#endif
-#ifndef Tcl_AttemptRealloc
-#define Tcl_AttemptRealloc \
- (tclStubsPtr->tcl_AttemptRealloc) /* 430 */
-#endif
-#ifndef Tcl_AttemptDbCkrealloc
-#define Tcl_AttemptDbCkrealloc \
- (tclStubsPtr->tcl_AttemptDbCkrealloc) /* 431 */
-#endif
-#ifndef Tcl_AttemptSetObjLength
-#define Tcl_AttemptSetObjLength \
- (tclStubsPtr->tcl_AttemptSetObjLength) /* 432 */
-#endif
-#ifndef Tcl_GetChannelThread
-#define Tcl_GetChannelThread \
- (tclStubsPtr->tcl_GetChannelThread) /* 433 */
-#endif
-#ifndef Tcl_GetUnicodeFromObj
-#define Tcl_GetUnicodeFromObj \
- (tclStubsPtr->tcl_GetUnicodeFromObj) /* 434 */
-#endif
-#ifndef Tcl_GetMathFuncInfo
-#define Tcl_GetMathFuncInfo \
- (tclStubsPtr->tcl_GetMathFuncInfo) /* 435 */
-#endif
-#ifndef Tcl_ListMathFuncs
-#define Tcl_ListMathFuncs \
- (tclStubsPtr->tcl_ListMathFuncs) /* 436 */
-#endif
-#ifndef Tcl_SubstObj
-#define Tcl_SubstObj \
- (tclStubsPtr->tcl_SubstObj) /* 437 */
-#endif
-#ifndef Tcl_DetachChannel
-#define Tcl_DetachChannel \
- (tclStubsPtr->tcl_DetachChannel) /* 438 */
-#endif
-#ifndef Tcl_IsStandardChannel
-#define Tcl_IsStandardChannel \
- (tclStubsPtr->tcl_IsStandardChannel) /* 439 */
-#endif
-#ifndef Tcl_FSCopyFile
-#define Tcl_FSCopyFile \
- (tclStubsPtr->tcl_FSCopyFile) /* 440 */
-#endif
-#ifndef Tcl_FSCopyDirectory
-#define Tcl_FSCopyDirectory \
- (tclStubsPtr->tcl_FSCopyDirectory) /* 441 */
-#endif
-#ifndef Tcl_FSCreateDirectory
-#define Tcl_FSCreateDirectory \
- (tclStubsPtr->tcl_FSCreateDirectory) /* 442 */
-#endif
-#ifndef Tcl_FSDeleteFile
-#define Tcl_FSDeleteFile \
- (tclStubsPtr->tcl_FSDeleteFile) /* 443 */
-#endif
-#ifndef Tcl_FSLoadFile
-#define Tcl_FSLoadFile \
- (tclStubsPtr->tcl_FSLoadFile) /* 444 */
-#endif
-#ifndef Tcl_FSMatchInDirectory
-#define Tcl_FSMatchInDirectory \
- (tclStubsPtr->tcl_FSMatchInDirectory) /* 445 */
-#endif
-#ifndef Tcl_FSLink
-#define Tcl_FSLink \
- (tclStubsPtr->tcl_FSLink) /* 446 */
-#endif
-#ifndef Tcl_FSRemoveDirectory
-#define Tcl_FSRemoveDirectory \
- (tclStubsPtr->tcl_FSRemoveDirectory) /* 447 */
-#endif
-#ifndef Tcl_FSRenameFile
-#define Tcl_FSRenameFile \
- (tclStubsPtr->tcl_FSRenameFile) /* 448 */
-#endif
-#ifndef Tcl_FSLstat
-#define Tcl_FSLstat \
- (tclStubsPtr->tcl_FSLstat) /* 449 */
-#endif
-#ifndef Tcl_FSUtime
-#define Tcl_FSUtime \
- (tclStubsPtr->tcl_FSUtime) /* 450 */
-#endif
-#ifndef Tcl_FSFileAttrsGet
-#define Tcl_FSFileAttrsGet \
- (tclStubsPtr->tcl_FSFileAttrsGet) /* 451 */
-#endif
-#ifndef Tcl_FSFileAttrsSet
-#define Tcl_FSFileAttrsSet \
- (tclStubsPtr->tcl_FSFileAttrsSet) /* 452 */
-#endif
-#ifndef Tcl_FSFileAttrStrings
-#define Tcl_FSFileAttrStrings \
- (tclStubsPtr->tcl_FSFileAttrStrings) /* 453 */
-#endif
-#ifndef Tcl_FSStat
-#define Tcl_FSStat \
- (tclStubsPtr->tcl_FSStat) /* 454 */
-#endif
-#ifndef Tcl_FSAccess
-#define Tcl_FSAccess \
- (tclStubsPtr->tcl_FSAccess) /* 455 */
-#endif
-#ifndef Tcl_FSOpenFileChannel
-#define Tcl_FSOpenFileChannel \
- (tclStubsPtr->tcl_FSOpenFileChannel) /* 456 */
-#endif
-#ifndef Tcl_FSGetCwd
-#define Tcl_FSGetCwd \
- (tclStubsPtr->tcl_FSGetCwd) /* 457 */
-#endif
-#ifndef Tcl_FSChdir
-#define Tcl_FSChdir \
- (tclStubsPtr->tcl_FSChdir) /* 458 */
-#endif
-#ifndef Tcl_FSConvertToPathType
-#define Tcl_FSConvertToPathType \
- (tclStubsPtr->tcl_FSConvertToPathType) /* 459 */
-#endif
-#ifndef Tcl_FSJoinPath
-#define Tcl_FSJoinPath \
- (tclStubsPtr->tcl_FSJoinPath) /* 460 */
-#endif
-#ifndef Tcl_FSSplitPath
-#define Tcl_FSSplitPath \
- (tclStubsPtr->tcl_FSSplitPath) /* 461 */
-#endif
-#ifndef Tcl_FSEqualPaths
-#define Tcl_FSEqualPaths \
- (tclStubsPtr->tcl_FSEqualPaths) /* 462 */
-#endif
-#ifndef Tcl_FSGetNormalizedPath
-#define Tcl_FSGetNormalizedPath \
- (tclStubsPtr->tcl_FSGetNormalizedPath) /* 463 */
-#endif
-#ifndef Tcl_FSJoinToPath
-#define Tcl_FSJoinToPath \
- (tclStubsPtr->tcl_FSJoinToPath) /* 464 */
-#endif
-#ifndef Tcl_FSGetInternalRep
-#define Tcl_FSGetInternalRep \
- (tclStubsPtr->tcl_FSGetInternalRep) /* 465 */
-#endif
-#ifndef Tcl_FSGetTranslatedPath
-#define Tcl_FSGetTranslatedPath \
- (tclStubsPtr->tcl_FSGetTranslatedPath) /* 466 */
-#endif
-#ifndef Tcl_FSEvalFile
-#define Tcl_FSEvalFile \
- (tclStubsPtr->tcl_FSEvalFile) /* 467 */
-#endif
-#ifndef Tcl_FSNewNativePath
-#define Tcl_FSNewNativePath \
- (tclStubsPtr->tcl_FSNewNativePath) /* 468 */
-#endif
-#ifndef Tcl_FSGetNativePath
-#define Tcl_FSGetNativePath \
- (tclStubsPtr->tcl_FSGetNativePath) /* 469 */
-#endif
-#ifndef Tcl_FSFileSystemInfo
-#define Tcl_FSFileSystemInfo \
- (tclStubsPtr->tcl_FSFileSystemInfo) /* 470 */
-#endif
-#ifndef Tcl_FSPathSeparator
-#define Tcl_FSPathSeparator \
- (tclStubsPtr->tcl_FSPathSeparator) /* 471 */
-#endif
-#ifndef Tcl_FSListVolumes
-#define Tcl_FSListVolumes \
- (tclStubsPtr->tcl_FSListVolumes) /* 472 */
-#endif
-#ifndef Tcl_FSRegister
-#define Tcl_FSRegister \
- (tclStubsPtr->tcl_FSRegister) /* 473 */
-#endif
-#ifndef Tcl_FSUnregister
-#define Tcl_FSUnregister \
- (tclStubsPtr->tcl_FSUnregister) /* 474 */
-#endif
-#ifndef Tcl_FSData
-#define Tcl_FSData \
- (tclStubsPtr->tcl_FSData) /* 475 */
-#endif
-#ifndef Tcl_FSGetTranslatedStringPath
-#define Tcl_FSGetTranslatedStringPath \
- (tclStubsPtr->tcl_FSGetTranslatedStringPath) /* 476 */
-#endif
-#ifndef Tcl_FSGetFileSystemForPath
-#define Tcl_FSGetFileSystemForPath \
- (tclStubsPtr->tcl_FSGetFileSystemForPath) /* 477 */
-#endif
-#ifndef Tcl_FSGetPathType
-#define Tcl_FSGetPathType \
- (tclStubsPtr->tcl_FSGetPathType) /* 478 */
-#endif
-#ifndef Tcl_OutputBuffered
-#define Tcl_OutputBuffered \
- (tclStubsPtr->tcl_OutputBuffered) /* 479 */
-#endif
-#ifndef Tcl_FSMountsChanged
-#define Tcl_FSMountsChanged \
- (tclStubsPtr->tcl_FSMountsChanged) /* 480 */
-#endif
-#ifndef Tcl_EvalTokensStandard
-#define Tcl_EvalTokensStandard \
- (tclStubsPtr->tcl_EvalTokensStandard) /* 481 */
-#endif
-#ifndef Tcl_GetTime
-#define Tcl_GetTime \
- (tclStubsPtr->tcl_GetTime) /* 482 */
-#endif
-#ifndef Tcl_CreateObjTrace
-#define Tcl_CreateObjTrace \
- (tclStubsPtr->tcl_CreateObjTrace) /* 483 */
-#endif
-#ifndef Tcl_GetCommandInfoFromToken
-#define Tcl_GetCommandInfoFromToken \
- (tclStubsPtr->tcl_GetCommandInfoFromToken) /* 484 */
-#endif
-#ifndef Tcl_SetCommandInfoFromToken
-#define Tcl_SetCommandInfoFromToken \
- (tclStubsPtr->tcl_SetCommandInfoFromToken) /* 485 */
-#endif
-#ifndef Tcl_DbNewWideIntObj
-#define Tcl_DbNewWideIntObj \
- (tclStubsPtr->tcl_DbNewWideIntObj) /* 486 */
-#endif
-#ifndef Tcl_GetWideIntFromObj
-#define Tcl_GetWideIntFromObj \
- (tclStubsPtr->tcl_GetWideIntFromObj) /* 487 */
-#endif
-#ifndef Tcl_NewWideIntObj
-#define Tcl_NewWideIntObj \
- (tclStubsPtr->tcl_NewWideIntObj) /* 488 */
-#endif
-#ifndef Tcl_SetWideIntObj
-#define Tcl_SetWideIntObj \
- (tclStubsPtr->tcl_SetWideIntObj) /* 489 */
-#endif
-#ifndef Tcl_AllocStatBuf
-#define Tcl_AllocStatBuf \
- (tclStubsPtr->tcl_AllocStatBuf) /* 490 */
-#endif
-#ifndef Tcl_Seek
-#define Tcl_Seek \
- (tclStubsPtr->tcl_Seek) /* 491 */
-#endif
-#ifndef Tcl_Tell
-#define Tcl_Tell \
- (tclStubsPtr->tcl_Tell) /* 492 */
-#endif
-#ifndef Tcl_ChannelWideSeekProc
-#define Tcl_ChannelWideSeekProc \
- (tclStubsPtr->tcl_ChannelWideSeekProc) /* 493 */
-#endif
-
-#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */
-
-/* !END!: Do not edit above this line. */
-
-#endif /* _TCLDECLS */
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls.m
deleted file mode 100644
index bc3a0953890..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls.m
+++ /dev/null
@@ -1,538 +0,0 @@
-#ifndef _TCLDECLS_VM
-#define _TCLDECLS_VM
-#include "tclDecls_f.h"
-#ifndef NO_VTABLES
-#ifndef Tcl_AddErrorInfo
-# define Tcl_AddErrorInfo (*TcldeclsVptr->V_Tcl_AddErrorInfo)
-#endif
-
-#ifndef Tcl_AllowExceptions
-# define Tcl_AllowExceptions (*TcldeclsVptr->V_Tcl_AllowExceptions)
-#endif
-
-#ifndef Tcl_AppendElement
-# define Tcl_AppendElement (*TcldeclsVptr->V_Tcl_AppendElement)
-#endif
-
-#ifndef Tcl_AppendObjToObj
-# define Tcl_AppendObjToObj (*TcldeclsVptr->V_Tcl_AppendObjToObj)
-#endif
-
-#ifndef Tcl_AppendResult
-# define Tcl_AppendResult (*TcldeclsVptr->V_Tcl_AppendResult)
-#endif
-
-#ifndef Tcl_AppendStringsToObj
-# define Tcl_AppendStringsToObj (*TcldeclsVptr->V_Tcl_AppendStringsToObj)
-#endif
-
-#ifndef Tcl_AppendToObj
-# define Tcl_AppendToObj (*TcldeclsVptr->V_Tcl_AppendToObj)
-#endif
-
-#ifndef Tcl_BackgroundError
-# define Tcl_BackgroundError (*TcldeclsVptr->V_Tcl_BackgroundError)
-#endif
-
-#ifndef Tcl_CallWhenDeleted
-# define Tcl_CallWhenDeleted (*TcldeclsVptr->V_Tcl_CallWhenDeleted)
-#endif
-
-#ifndef Tcl_CancelIdleCall
-# define Tcl_CancelIdleCall (*TcldeclsVptr->V_Tcl_CancelIdleCall)
-#endif
-
-#ifndef Tcl_Close
-# define Tcl_Close (*TcldeclsVptr->V_Tcl_Close)
-#endif
-
-#ifndef Tcl_ConcatObj
-# define Tcl_ConcatObj (*TcldeclsVptr->V_Tcl_ConcatObj)
-#endif
-
-#ifndef Tcl_CreateEventSource
-# define Tcl_CreateEventSource (*TcldeclsVptr->V_Tcl_CreateEventSource)
-#endif
-
-#ifndef Tcl_CreateExitHandler
-# define Tcl_CreateExitHandler (*TcldeclsVptr->V_Tcl_CreateExitHandler)
-#endif
-
-#ifndef Tcl_CreateFileHandler
-# define Tcl_CreateFileHandler (*TcldeclsVptr->V_Tcl_CreateFileHandler)
-#endif
-
-#ifndef Tcl_CreateInterp
-# define Tcl_CreateInterp (*TcldeclsVptr->V_Tcl_CreateInterp)
-#endif
-
-#ifndef Tcl_CreateObjCommand
-# define Tcl_CreateObjCommand (*TcldeclsVptr->V_Tcl_CreateObjCommand)
-#endif
-
-#ifndef Tcl_CreateTimerHandler
-# define Tcl_CreateTimerHandler (*TcldeclsVptr->V_Tcl_CreateTimerHandler)
-#endif
-
-#ifndef Tcl_DStringAppend
-# define Tcl_DStringAppend (*TcldeclsVptr->V_Tcl_DStringAppend)
-#endif
-
-#ifndef Tcl_DStringAppendElement
-# define Tcl_DStringAppendElement (*TcldeclsVptr->V_Tcl_DStringAppendElement)
-#endif
-
-#ifndef Tcl_DStringFree
-# define Tcl_DStringFree (*TcldeclsVptr->V_Tcl_DStringFree)
-#endif
-
-#ifndef Tcl_DStringInit
-# define Tcl_DStringInit (*TcldeclsVptr->V_Tcl_DStringInit)
-#endif
-
-#ifndef Tcl_DStringResult
-# define Tcl_DStringResult (*TcldeclsVptr->V_Tcl_DStringResult)
-#endif
-
-#ifndef Tcl_DStringSetLength
-# define Tcl_DStringSetLength (*TcldeclsVptr->V_Tcl_DStringSetLength)
-#endif
-
-#ifndef Tcl_DeleteEventSource
-# define Tcl_DeleteEventSource (*TcldeclsVptr->V_Tcl_DeleteEventSource)
-#endif
-
-#ifndef Tcl_DeleteFileHandler
-# define Tcl_DeleteFileHandler (*TcldeclsVptr->V_Tcl_DeleteFileHandler)
-#endif
-
-#ifndef Tcl_DeleteHashEntry
-# define Tcl_DeleteHashEntry (*TcldeclsVptr->V_Tcl_DeleteHashEntry)
-#endif
-
-#ifndef Tcl_DeleteHashTable
-# define Tcl_DeleteHashTable (*TcldeclsVptr->V_Tcl_DeleteHashTable)
-#endif
-
-#ifndef Tcl_DeleteInterp
-# define Tcl_DeleteInterp (*TcldeclsVptr->V_Tcl_DeleteInterp)
-#endif
-
-#ifndef Tcl_DeleteTimerHandler
-# define Tcl_DeleteTimerHandler (*TcldeclsVptr->V_Tcl_DeleteTimerHandler)
-#endif
-
-#ifndef Tcl_DoOneEvent
-# define Tcl_DoOneEvent (*TcldeclsVptr->V_Tcl_DoOneEvent)
-#endif
-
-#ifndef Tcl_DoWhenIdle
-# define Tcl_DoWhenIdle (*TcldeclsVptr->V_Tcl_DoWhenIdle)
-#endif
-
-#ifndef Tcl_DuplicateObj
-# define Tcl_DuplicateObj (*TcldeclsVptr->V_Tcl_DuplicateObj)
-#endif
-
-#ifndef Tcl_Eof
-# define Tcl_Eof (*TcldeclsVptr->V_Tcl_Eof)
-#endif
-
-#ifndef Tcl_EvalObjEx
-# define Tcl_EvalObjEx (*TcldeclsVptr->V_Tcl_EvalObjEx)
-#endif
-
-#ifndef Tcl_EvalObjv
-# define Tcl_EvalObjv (*TcldeclsVptr->V_Tcl_EvalObjv)
-#endif
-
-#ifndef Tcl_EventuallyFree
-# define Tcl_EventuallyFree (*TcldeclsVptr->V_Tcl_EventuallyFree)
-#endif
-
-#ifndef Tcl_ExternalToUtf
-# define Tcl_ExternalToUtf (*TcldeclsVptr->V_Tcl_ExternalToUtf)
-#endif
-
-#ifndef Tcl_ExternalToUtfDString
-# define Tcl_ExternalToUtfDString (*TcldeclsVptr->V_Tcl_ExternalToUtfDString)
-#endif
-
-#ifndef Tcl_FirstHashEntry
-# define Tcl_FirstHashEntry (*TcldeclsVptr->V_Tcl_FirstHashEntry)
-#endif
-
-#ifndef Tcl_FreeEncoding
-# define Tcl_FreeEncoding (*TcldeclsVptr->V_Tcl_FreeEncoding)
-#endif
-
-#ifndef Tcl_GetAssocData
-# define Tcl_GetAssocData (*TcldeclsVptr->V_Tcl_GetAssocData)
-#endif
-
-#ifndef Tcl_GetBooleanFromObj
-# define Tcl_GetBooleanFromObj (*TcldeclsVptr->V_Tcl_GetBooleanFromObj)
-#endif
-
-#ifndef Tcl_GetChannel
-# define Tcl_GetChannel (*TcldeclsVptr->V_Tcl_GetChannel)
-#endif
-
-#ifndef Tcl_GetCommandInfo
-# define Tcl_GetCommandInfo (*TcldeclsVptr->V_Tcl_GetCommandInfo)
-#endif
-
-#ifndef Tcl_GetDouble
-# define Tcl_GetDouble (*TcldeclsVptr->V_Tcl_GetDouble)
-#endif
-
-#ifndef Tcl_GetDoubleFromObj
-# define Tcl_GetDoubleFromObj (*TcldeclsVptr->V_Tcl_GetDoubleFromObj)
-#endif
-
-#ifndef Tcl_GetEncoding
-# define Tcl_GetEncoding (*TcldeclsVptr->V_Tcl_GetEncoding)
-#endif
-
-#ifndef Tcl_GetEncodingName
-# define Tcl_GetEncodingName (*TcldeclsVptr->V_Tcl_GetEncodingName)
-#endif
-
-#ifndef Tcl_GetIndexFromObj
-# define Tcl_GetIndexFromObj (*TcldeclsVptr->V_Tcl_GetIndexFromObj)
-#endif
-
-#ifndef Tcl_GetInt
-# define Tcl_GetInt (*TcldeclsVptr->V_Tcl_GetInt)
-#endif
-
-#ifndef Tcl_GetIntFromObj
-# define Tcl_GetIntFromObj (*TcldeclsVptr->V_Tcl_GetIntFromObj)
-#endif
-
-#ifndef Tcl_GetLongFromObj
-# define Tcl_GetLongFromObj (*TcldeclsVptr->V_Tcl_GetLongFromObj)
-#endif
-
-#ifndef Tcl_GetObjResult
-# define Tcl_GetObjResult (*TcldeclsVptr->V_Tcl_GetObjResult)
-#endif
-
-#ifndef Tcl_GetObjType
-# define Tcl_GetObjType (*TcldeclsVptr->V_Tcl_GetObjType)
-#endif
-
-#ifndef Tcl_GetRegExpFromObj
-# define Tcl_GetRegExpFromObj (*TcldeclsVptr->V_Tcl_GetRegExpFromObj)
-#endif
-
-#ifndef Tcl_GetStdChannel
-# define Tcl_GetStdChannel (*TcldeclsVptr->V_Tcl_GetStdChannel)
-#endif
-
-#ifndef Tcl_GetString
-# define Tcl_GetString (*TcldeclsVptr->V_Tcl_GetString)
-#endif
-
-#ifndef Tcl_GetStringFromObj
-# define Tcl_GetStringFromObj (*TcldeclsVptr->V_Tcl_GetStringFromObj)
-#endif
-
-#ifndef Tcl_GetStringResult
-# define Tcl_GetStringResult (*TcldeclsVptr->V_Tcl_GetStringResult)
-#endif
-
-#ifndef Tcl_GetThreadData
-# define Tcl_GetThreadData (*TcldeclsVptr->V_Tcl_GetThreadData)
-#endif
-
-#ifndef Tcl_GetTime
-# define Tcl_GetTime (*TcldeclsVptr->V_Tcl_GetTime)
-#endif
-
-#ifndef Tcl_GetVar
-# define Tcl_GetVar (*TcldeclsVptr->V_Tcl_GetVar)
-#endif
-
-#ifndef Tcl_GetVar2
-# define Tcl_GetVar2 (*TcldeclsVptr->V_Tcl_GetVar2)
-#endif
-
-#ifndef Tcl_GetVar2Ex
-# define Tcl_GetVar2Ex (*TcldeclsVptr->V_Tcl_GetVar2Ex)
-#endif
-
-#ifndef Tcl_GlobalEval
-# define Tcl_GlobalEval (*TcldeclsVptr->V_Tcl_GlobalEval)
-#endif
-
-#ifndef Tcl_HideCommand
-# define Tcl_HideCommand (*TcldeclsVptr->V_Tcl_HideCommand)
-#endif
-
-#ifndef Tcl_InitHashTable
-# define Tcl_InitHashTable (*TcldeclsVptr->V_Tcl_InitHashTable)
-#endif
-
-#ifndef Tcl_IsSafe
-# define Tcl_IsSafe (*TcldeclsVptr->V_Tcl_IsSafe)
-#endif
-
-#ifndef Tcl_LinkVar
-# define Tcl_LinkVar (*TcldeclsVptr->V_Tcl_LinkVar)
-#endif
-
-#ifndef Tcl_ListObjAppendElement
-# define Tcl_ListObjAppendElement (*TcldeclsVptr->V_Tcl_ListObjAppendElement)
-#endif
-
-#ifndef Tcl_ListObjGetElements
-# define Tcl_ListObjGetElements (*TcldeclsVptr->V_Tcl_ListObjGetElements)
-#endif
-
-#ifndef Tcl_ListObjIndex
-# define Tcl_ListObjIndex (*TcldeclsVptr->V_Tcl_ListObjIndex)
-#endif
-
-#ifndef Tcl_ListObjLength
-# define Tcl_ListObjLength (*TcldeclsVptr->V_Tcl_ListObjLength)
-#endif
-
-#ifndef Tcl_ListObjReplace
-# define Tcl_ListObjReplace (*TcldeclsVptr->V_Tcl_ListObjReplace)
-#endif
-
-#ifndef Tcl_NewBooleanObj
-# define Tcl_NewBooleanObj (*TcldeclsVptr->V_Tcl_NewBooleanObj)
-#endif
-
-#ifndef Tcl_NewDoubleObj
-# define Tcl_NewDoubleObj (*TcldeclsVptr->V_Tcl_NewDoubleObj)
-#endif
-
-#ifndef Tcl_NewIntObj
-# define Tcl_NewIntObj (*TcldeclsVptr->V_Tcl_NewIntObj)
-#endif
-
-#ifndef Tcl_NewListObj
-# define Tcl_NewListObj (*TcldeclsVptr->V_Tcl_NewListObj)
-#endif
-
-#ifndef Tcl_NewLongObj
-# define Tcl_NewLongObj (*TcldeclsVptr->V_Tcl_NewLongObj)
-#endif
-
-#ifndef Tcl_NewObj
-# define Tcl_NewObj (*TcldeclsVptr->V_Tcl_NewObj)
-#endif
-
-#ifndef Tcl_NewStringObj
-# define Tcl_NewStringObj (*TcldeclsVptr->V_Tcl_NewStringObj)
-#endif
-
-#ifndef Tcl_NextHashEntry
-# define Tcl_NextHashEntry (*TcldeclsVptr->V_Tcl_NextHashEntry)
-#endif
-
-#ifndef Tcl_NumUtfChars
-# define Tcl_NumUtfChars (*TcldeclsVptr->V_Tcl_NumUtfChars)
-#endif
-
-#ifndef Tcl_ObjGetVar2
-# define Tcl_ObjGetVar2 (*TcldeclsVptr->V_Tcl_ObjGetVar2)
-#endif
-
-#ifndef Tcl_ObjSetVar2
-# define Tcl_ObjSetVar2 (*TcldeclsVptr->V_Tcl_ObjSetVar2)
-#endif
-
-#ifndef Tcl_OpenFileChannel
-# define Tcl_OpenFileChannel (*TcldeclsVptr->V_Tcl_OpenFileChannel)
-#endif
-
-#ifndef Tcl_Panic
-# define Tcl_Panic (*TcldeclsVptr->V_Tcl_Panic)
-#endif
-
-#ifndef Tcl_PosixError
-# define Tcl_PosixError (*TcldeclsVptr->V_Tcl_PosixError)
-#endif
-
-#ifndef Tcl_Preserve
-# define Tcl_Preserve (*TcldeclsVptr->V_Tcl_Preserve)
-#endif
-
-#ifndef Tcl_Read
-# define Tcl_Read (*TcldeclsVptr->V_Tcl_Read)
-#endif
-
-#ifndef Tcl_RegExpExec
-# define Tcl_RegExpExec (*TcldeclsVptr->V_Tcl_RegExpExec)
-#endif
-
-#ifndef Tcl_RegExpRange
-# define Tcl_RegExpRange (*TcldeclsVptr->V_Tcl_RegExpRange)
-#endif
-
-#ifndef Tcl_Release
-# define Tcl_Release (*TcldeclsVptr->V_Tcl_Release)
-#endif
-
-#ifndef Tcl_ResetResult
-# define Tcl_ResetResult (*TcldeclsVptr->V_Tcl_ResetResult)
-#endif
-
-#ifndef Tcl_Seek
-# define Tcl_Seek (*TcldeclsVptr->V_Tcl_Seek)
-#endif
-
-#ifndef Tcl_ServiceEvent
-# define Tcl_ServiceEvent (*TcldeclsVptr->V_Tcl_ServiceEvent)
-#endif
-
-#ifndef Tcl_SetAssocData
-# define Tcl_SetAssocData (*TcldeclsVptr->V_Tcl_SetAssocData)
-#endif
-
-#ifndef Tcl_SetBooleanObj
-# define Tcl_SetBooleanObj (*TcldeclsVptr->V_Tcl_SetBooleanObj)
-#endif
-
-#ifndef Tcl_SetChannelOption
-# define Tcl_SetChannelOption (*TcldeclsVptr->V_Tcl_SetChannelOption)
-#endif
-
-#ifndef Tcl_SetCommandInfo
-# define Tcl_SetCommandInfo (*TcldeclsVptr->V_Tcl_SetCommandInfo)
-#endif
-
-#ifndef Tcl_SetDoubleObj
-# define Tcl_SetDoubleObj (*TcldeclsVptr->V_Tcl_SetDoubleObj)
-#endif
-
-#ifndef Tcl_SetIntObj
-# define Tcl_SetIntObj (*TcldeclsVptr->V_Tcl_SetIntObj)
-#endif
-
-#ifndef Tcl_SetListObj
-# define Tcl_SetListObj (*TcldeclsVptr->V_Tcl_SetListObj)
-#endif
-
-#ifndef Tcl_SetLongObj
-# define Tcl_SetLongObj (*TcldeclsVptr->V_Tcl_SetLongObj)
-#endif
-
-#ifndef Tcl_SetMaxBlockTime
-# define Tcl_SetMaxBlockTime (*TcldeclsVptr->V_Tcl_SetMaxBlockTime)
-#endif
-
-#ifndef Tcl_SetObjErrorCode
-# define Tcl_SetObjErrorCode (*TcldeclsVptr->V_Tcl_SetObjErrorCode)
-#endif
-
-#ifndef Tcl_SetObjResult
-# define Tcl_SetObjResult (*TcldeclsVptr->V_Tcl_SetObjResult)
-#endif
-
-#ifndef Tcl_SetResult
-# define Tcl_SetResult (*TcldeclsVptr->V_Tcl_SetResult)
-#endif
-
-#ifndef Tcl_SetStringObj
-# define Tcl_SetStringObj (*TcldeclsVptr->V_Tcl_SetStringObj)
-#endif
-
-#ifndef Tcl_SetVar
-# define Tcl_SetVar (*TcldeclsVptr->V_Tcl_SetVar)
-#endif
-
-#ifndef Tcl_Sleep
-# define Tcl_Sleep (*TcldeclsVptr->V_Tcl_Sleep)
-#endif
-
-#ifndef Tcl_StringMatch
-# define Tcl_StringMatch (*TcldeclsVptr->V_Tcl_StringMatch)
-#endif
-
-#ifndef Tcl_TranslateFileName
-# define Tcl_TranslateFileName (*TcldeclsVptr->V_Tcl_TranslateFileName)
-#endif
-
-#ifndef Tcl_UniCharIsAlpha
-# define Tcl_UniCharIsAlpha (*TcldeclsVptr->V_Tcl_UniCharIsAlpha)
-#endif
-
-#ifndef Tcl_UniCharIsSpace
-# define Tcl_UniCharIsSpace (*TcldeclsVptr->V_Tcl_UniCharIsSpace)
-#endif
-
-#ifndef Tcl_UniCharIsUpper
-# define Tcl_UniCharIsUpper (*TcldeclsVptr->V_Tcl_UniCharIsUpper)
-#endif
-
-#ifndef Tcl_UniCharIsWordChar
-# define Tcl_UniCharIsWordChar (*TcldeclsVptr->V_Tcl_UniCharIsWordChar)
-#endif
-
-#ifndef Tcl_UniCharToLower
-# define Tcl_UniCharToLower (*TcldeclsVptr->V_Tcl_UniCharToLower)
-#endif
-
-#ifndef Tcl_UniCharToUpper
-# define Tcl_UniCharToUpper (*TcldeclsVptr->V_Tcl_UniCharToUpper)
-#endif
-
-#ifndef Tcl_UniCharToUtf
-# define Tcl_UniCharToUtf (*TcldeclsVptr->V_Tcl_UniCharToUtf)
-#endif
-
-#ifndef Tcl_UnlinkVar
-# define Tcl_UnlinkVar (*TcldeclsVptr->V_Tcl_UnlinkVar)
-#endif
-
-#ifndef Tcl_UtfAtIndex
-# define Tcl_UtfAtIndex (*TcldeclsVptr->V_Tcl_UtfAtIndex)
-#endif
-
-#ifndef Tcl_UtfCharComplete
-# define Tcl_UtfCharComplete (*TcldeclsVptr->V_Tcl_UtfCharComplete)
-#endif
-
-#ifndef Tcl_UtfNext
-# define Tcl_UtfNext (*TcldeclsVptr->V_Tcl_UtfNext)
-#endif
-
-#ifndef Tcl_UtfPrev
-# define Tcl_UtfPrev (*TcldeclsVptr->V_Tcl_UtfPrev)
-#endif
-
-#ifndef Tcl_UtfToExternal
-# define Tcl_UtfToExternal (*TcldeclsVptr->V_Tcl_UtfToExternal)
-#endif
-
-#ifndef Tcl_UtfToExternalDString
-# define Tcl_UtfToExternalDString (*TcldeclsVptr->V_Tcl_UtfToExternalDString)
-#endif
-
-#ifndef Tcl_UtfToLower
-# define Tcl_UtfToLower (*TcldeclsVptr->V_Tcl_UtfToLower)
-#endif
-
-#ifndef Tcl_UtfToUniChar
-# define Tcl_UtfToUniChar (*TcldeclsVptr->V_Tcl_UtfToUniChar)
-#endif
-
-#ifndef Tcl_Write
-# define Tcl_Write (*TcldeclsVptr->V_Tcl_Write)
-#endif
-
-#ifndef Tcl_WriteChars
-# define Tcl_WriteChars (*TcldeclsVptr->V_Tcl_WriteChars)
-#endif
-
-#ifndef Tcl_WrongNumArgs
-# define Tcl_WrongNumArgs (*TcldeclsVptr->V_Tcl_WrongNumArgs)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TCLDECLS_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls.t
deleted file mode 100644
index e54ecbb64ed..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls.t
+++ /dev/null
@@ -1,675 +0,0 @@
-#ifdef _TCLDECLS
-#ifndef Tcl_AddErrorInfo
-VFUNC(void,Tcl_AddErrorInfo,V_Tcl_AddErrorInfo,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * message)))
-#endif /* #ifndef Tcl_AddErrorInfo */
-
-#ifndef Tcl_AllowExceptions
-VFUNC(void,Tcl_AllowExceptions,V_Tcl_AllowExceptions,_ANSI_ARGS_((Tcl_Interp * interp)))
-#endif /* #ifndef Tcl_AllowExceptions */
-
-#ifndef Tcl_AppendElement
-VFUNC(void,Tcl_AppendElement,V_Tcl_AppendElement,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * string)))
-#endif /* #ifndef Tcl_AppendElement */
-
-#ifndef Tcl_AppendObjToObj
-VFUNC(void,Tcl_AppendObjToObj,V_Tcl_AppendObjToObj,_ANSI_ARGS_((Tcl_Obj * objPtr,
- Tcl_Obj * appendObjPtr)))
-#endif /* #ifndef Tcl_AppendObjToObj */
-
-#ifndef Tcl_AppendResult
-VFUNC(void,Tcl_AppendResult,V_Tcl_AppendResult,_ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp)))
-#endif /* #ifndef Tcl_AppendResult */
-
-#ifndef Tcl_AppendStringsToObj
-VFUNC(void,Tcl_AppendStringsToObj,V_Tcl_AppendStringsToObj,_ANSI_ARGS_(TCL_VARARGS(Tcl_Obj *,objPtr)))
-#endif /* #ifndef Tcl_AppendStringsToObj */
-
-#ifndef Tcl_AppendToObj
-VFUNC(void,Tcl_AppendToObj,V_Tcl_AppendToObj,_ANSI_ARGS_((Tcl_Obj* objPtr,
- CONST char* bytes, int length)))
-#endif /* #ifndef Tcl_AppendToObj */
-
-#ifndef Tcl_BackgroundError
-VFUNC(void,Tcl_BackgroundError,V_Tcl_BackgroundError,_ANSI_ARGS_((Tcl_Interp * interp)))
-#endif /* #ifndef Tcl_BackgroundError */
-
-#ifndef Tcl_CallWhenDeleted
-VFUNC(void,Tcl_CallWhenDeleted,V_Tcl_CallWhenDeleted,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_InterpDeleteProc * proc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_CallWhenDeleted */
-
-#ifndef Tcl_CancelIdleCall
-VFUNC(void,Tcl_CancelIdleCall,V_Tcl_CancelIdleCall,_ANSI_ARGS_((
- Tcl_IdleProc * idleProc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_CancelIdleCall */
-
-#ifndef Tcl_Close
-VFUNC(int,Tcl_Close,V_Tcl_Close,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Channel chan)))
-#endif /* #ifndef Tcl_Close */
-
-#ifndef Tcl_ConcatObj
-VFUNC(Tcl_Obj *,Tcl_ConcatObj,V_Tcl_ConcatObj,_ANSI_ARGS_((int objc,
- Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tcl_ConcatObj */
-
-#ifndef Tcl_CreateEventSource
-VFUNC(void,Tcl_CreateEventSource,V_Tcl_CreateEventSource,_ANSI_ARGS_((
- Tcl_EventSetupProc * setupProc,
- Tcl_EventCheckProc * checkProc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_CreateEventSource */
-
-#ifndef Tcl_CreateExitHandler
-VFUNC(void,Tcl_CreateExitHandler,V_Tcl_CreateExitHandler,_ANSI_ARGS_((
- Tcl_ExitProc * proc, ClientData clientData)))
-#endif /* #ifndef Tcl_CreateExitHandler */
-
-#ifndef Tcl_CreateFileHandler
-#if !defined(__WIN32__) && !defined(MAC_TCL)
-VFUNC(void,Tcl_CreateFileHandler,V_Tcl_CreateFileHandler,_ANSI_ARGS_((int fd, int mask,
- Tcl_FileProc * proc, ClientData clientData)))
-#endif /* #if !defined(__WIN32__) && !defined(MAC_TCL) */
-#endif /* #ifndef Tcl_CreateFileHandler */
-
-#ifndef Tcl_CreateInterp
-VFUNC(Tcl_Interp *,Tcl_CreateInterp,V_Tcl_CreateInterp,_ANSI_ARGS_((void)))
-#endif /* #ifndef Tcl_CreateInterp */
-
-#ifndef Tcl_CreateObjCommand
-VFUNC(Tcl_Command,Tcl_CreateObjCommand,V_Tcl_CreateObjCommand,_ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * cmdName,
- Tcl_ObjCmdProc * proc, ClientData clientData,
- Tcl_CmdDeleteProc * deleteProc)))
-#endif /* #ifndef Tcl_CreateObjCommand */
-
-#ifndef Tcl_CreateTimerHandler
-VFUNC(Tcl_TimerToken,Tcl_CreateTimerHandler,V_Tcl_CreateTimerHandler,_ANSI_ARGS_((int milliseconds,
- Tcl_TimerProc * proc, ClientData clientData)))
-#endif /* #ifndef Tcl_CreateTimerHandler */
-
-#ifndef Tcl_DStringAppend
-VFUNC(char *,Tcl_DStringAppend,V_Tcl_DStringAppend,_ANSI_ARGS_((Tcl_DString * dsPtr,
- CONST char * str, int length)))
-#endif /* #ifndef Tcl_DStringAppend */
-
-#ifndef Tcl_DStringAppendElement
-VFUNC(char *,Tcl_DStringAppendElement,V_Tcl_DStringAppendElement,_ANSI_ARGS_((
- Tcl_DString * dsPtr, CONST char * string)))
-#endif /* #ifndef Tcl_DStringAppendElement */
-
-#ifndef Tcl_DStringFree
-VFUNC(void,Tcl_DStringFree,V_Tcl_DStringFree,_ANSI_ARGS_((Tcl_DString * dsPtr)))
-#endif /* #ifndef Tcl_DStringFree */
-
-#ifndef Tcl_DStringInit
-VFUNC(void,Tcl_DStringInit,V_Tcl_DStringInit,_ANSI_ARGS_((Tcl_DString * dsPtr)))
-#endif /* #ifndef Tcl_DStringInit */
-
-#ifndef Tcl_DStringResult
-VFUNC(void,Tcl_DStringResult,V_Tcl_DStringResult,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_DString * dsPtr)))
-#endif /* #ifndef Tcl_DStringResult */
-
-#ifndef Tcl_DStringSetLength
-VFUNC(void,Tcl_DStringSetLength,V_Tcl_DStringSetLength,_ANSI_ARGS_((
- Tcl_DString * dsPtr, int length)))
-#endif /* #ifndef Tcl_DStringSetLength */
-
-#ifndef Tcl_DeleteEventSource
-VFUNC(void,Tcl_DeleteEventSource,V_Tcl_DeleteEventSource,_ANSI_ARGS_((
- Tcl_EventSetupProc * setupProc,
- Tcl_EventCheckProc * checkProc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_DeleteEventSource */
-
-#ifndef Tcl_DeleteFileHandler
-#if !defined(__WIN32__) && !defined(MAC_TCL)
-VFUNC(void,Tcl_DeleteFileHandler,V_Tcl_DeleteFileHandler,_ANSI_ARGS_((int fd)))
-#endif /* #if !defined(__WIN32__) && !defined(MAC_TCL) */
-#endif /* #ifndef Tcl_DeleteFileHandler */
-
-#ifndef Tcl_DeleteHashEntry
-VFUNC(void,Tcl_DeleteHashEntry,V_Tcl_DeleteHashEntry,_ANSI_ARGS_((
- Tcl_HashEntry * entryPtr)))
-#endif /* #ifndef Tcl_DeleteHashEntry */
-
-#ifndef Tcl_DeleteHashTable
-VFUNC(void,Tcl_DeleteHashTable,V_Tcl_DeleteHashTable,_ANSI_ARGS_((
- Tcl_HashTable * tablePtr)))
-#endif /* #ifndef Tcl_DeleteHashTable */
-
-#ifndef Tcl_DeleteInterp
-VFUNC(void,Tcl_DeleteInterp,V_Tcl_DeleteInterp,_ANSI_ARGS_((Tcl_Interp * interp)))
-#endif /* #ifndef Tcl_DeleteInterp */
-
-#ifndef Tcl_DeleteTimerHandler
-VFUNC(void,Tcl_DeleteTimerHandler,V_Tcl_DeleteTimerHandler,_ANSI_ARGS_((
- Tcl_TimerToken token)))
-#endif /* #ifndef Tcl_DeleteTimerHandler */
-
-#ifndef Tcl_DoOneEvent
-VFUNC(int,Tcl_DoOneEvent,V_Tcl_DoOneEvent,_ANSI_ARGS_((int flags)))
-#endif /* #ifndef Tcl_DoOneEvent */
-
-#ifndef Tcl_DoWhenIdle
-VFUNC(void,Tcl_DoWhenIdle,V_Tcl_DoWhenIdle,_ANSI_ARGS_((Tcl_IdleProc * proc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_DoWhenIdle */
-
-#ifndef Tcl_DuplicateObj
-VFUNC(Tcl_Obj *,Tcl_DuplicateObj,V_Tcl_DuplicateObj,_ANSI_ARGS_((Tcl_Obj * objPtr)))
-#endif /* #ifndef Tcl_DuplicateObj */
-
-#ifndef Tcl_Eof
-VFUNC(int,Tcl_Eof,V_Tcl_Eof,_ANSI_ARGS_((Tcl_Channel chan)))
-#endif /* #ifndef Tcl_Eof */
-
-#ifndef Tcl_EvalObjEx
-VFUNC(int,Tcl_EvalObjEx,V_Tcl_EvalObjEx,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, int flags)))
-#endif /* #ifndef Tcl_EvalObjEx */
-
-#ifndef Tcl_EvalObjv
-VFUNC(int,Tcl_EvalObjv,V_Tcl_EvalObjv,_ANSI_ARGS_((Tcl_Interp * interp,
- int objc, Tcl_Obj *CONST objv[], int flags)))
-#endif /* #ifndef Tcl_EvalObjv */
-
-#ifndef Tcl_EventuallyFree
-VFUNC(void,Tcl_EventuallyFree,V_Tcl_EventuallyFree,_ANSI_ARGS_((
- ClientData clientData,
- Tcl_FreeProc * freeProc)))
-#endif /* #ifndef Tcl_EventuallyFree */
-
-#ifndef Tcl_ExternalToUtf
-VFUNC(int,Tcl_ExternalToUtf,V_Tcl_ExternalToUtf,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Encoding encoding, CONST char * src,
- int srcLen, int flags,
- Tcl_EncodingState * statePtr, char * dst,
- int dstLen, int * srcReadPtr,
- int * dstWrotePtr, int * dstCharsPtr)))
-#endif /* #ifndef Tcl_ExternalToUtf */
-
-#ifndef Tcl_ExternalToUtfDString
-VFUNC(char *,Tcl_ExternalToUtfDString,V_Tcl_ExternalToUtfDString,_ANSI_ARGS_((
- Tcl_Encoding encoding, CONST char * src,
- int srcLen, Tcl_DString * dsPtr)))
-#endif /* #ifndef Tcl_ExternalToUtfDString */
-
-#ifndef Tcl_FirstHashEntry
-VFUNC(Tcl_HashEntry *,Tcl_FirstHashEntry,V_Tcl_FirstHashEntry,_ANSI_ARGS_((
- Tcl_HashTable * tablePtr,
- Tcl_HashSearch * searchPtr)))
-#endif /* #ifndef Tcl_FirstHashEntry */
-
-#ifndef Tcl_FreeEncoding
-VFUNC(void,Tcl_FreeEncoding,V_Tcl_FreeEncoding,_ANSI_ARGS_((Tcl_Encoding encoding)))
-#endif /* #ifndef Tcl_FreeEncoding */
-
-#ifndef Tcl_GetAssocData
-VFUNC(ClientData,Tcl_GetAssocData,V_Tcl_GetAssocData,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name,
- Tcl_InterpDeleteProc ** procPtr)))
-#endif /* #ifndef Tcl_GetAssocData */
-
-#ifndef Tcl_GetBooleanFromObj
-VFUNC(int,Tcl_GetBooleanFromObj,V_Tcl_GetBooleanFromObj,_ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr,
- int * boolPtr)))
-#endif /* #ifndef Tcl_GetBooleanFromObj */
-
-#ifndef Tcl_GetChannel
-VFUNC(Tcl_Channel,Tcl_GetChannel,V_Tcl_GetChannel,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * chanName, int * modePtr)))
-#endif /* #ifndef Tcl_GetChannel */
-
-#ifndef Tcl_GetCommandInfo
-VFUNC(int,Tcl_GetCommandInfo,V_Tcl_GetCommandInfo,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * cmdName, Tcl_CmdInfo * infoPtr)))
-#endif /* #ifndef Tcl_GetCommandInfo */
-
-#ifndef Tcl_GetDouble
-VFUNC(int,Tcl_GetDouble,V_Tcl_GetDouble,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, double * doublePtr)))
-#endif /* #ifndef Tcl_GetDouble */
-
-#ifndef Tcl_GetDoubleFromObj
-VFUNC(int,Tcl_GetDoubleFromObj,V_Tcl_GetDoubleFromObj,_ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr,
- double * doublePtr)))
-#endif /* #ifndef Tcl_GetDoubleFromObj */
-
-#ifndef Tcl_GetEncoding
-VFUNC(Tcl_Encoding,Tcl_GetEncoding,V_Tcl_GetEncoding,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name)))
-#endif /* #ifndef Tcl_GetEncoding */
-
-#ifndef Tcl_GetEncodingName
-VFUNC(CONST84_RETURN char *,Tcl_GetEncodingName,V_Tcl_GetEncodingName,_ANSI_ARGS_((
- Tcl_Encoding encoding)))
-#endif /* #ifndef Tcl_GetEncodingName */
-
-#ifndef Tcl_GetIndexFromObj
-VFUNC(int,Tcl_GetIndexFromObj,V_Tcl_GetIndexFromObj,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, CONST char ** tablePtr,
- CONST char * msg, int flags, int * indexPtr)))
-#endif /* #ifndef Tcl_GetIndexFromObj */
-
-#ifndef Tcl_GetInt
-VFUNC(int,Tcl_GetInt,V_Tcl_GetInt,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, int * intPtr)))
-#endif /* #ifndef Tcl_GetInt */
-
-#ifndef Tcl_GetIntFromObj
-VFUNC(int,Tcl_GetIntFromObj,V_Tcl_GetIntFromObj,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, int * intPtr)))
-#endif /* #ifndef Tcl_GetIntFromObj */
-
-#ifndef Tcl_GetLongFromObj
-VFUNC(int,Tcl_GetLongFromObj,V_Tcl_GetLongFromObj,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, long * longPtr)))
-#endif /* #ifndef Tcl_GetLongFromObj */
-
-#ifndef Tcl_GetObjResult
-VFUNC(Tcl_Obj *,Tcl_GetObjResult,V_Tcl_GetObjResult,_ANSI_ARGS_((Tcl_Interp * interp)))
-#endif /* #ifndef Tcl_GetObjResult */
-
-#ifndef Tcl_GetObjType
-VFUNC(Tcl_ObjType *,Tcl_GetObjType,V_Tcl_GetObjType,_ANSI_ARGS_((CONST char * typeName)))
-#endif /* #ifndef Tcl_GetObjType */
-
-#ifndef Tcl_GetRegExpFromObj
-VFUNC(Tcl_RegExp,Tcl_GetRegExpFromObj,V_Tcl_GetRegExpFromObj,_ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * patObj,
- int flags)))
-#endif /* #ifndef Tcl_GetRegExpFromObj */
-
-#ifndef Tcl_GetStdChannel
-VFUNC(Tcl_Channel,Tcl_GetStdChannel,V_Tcl_GetStdChannel,_ANSI_ARGS_((int type)))
-#endif /* #ifndef Tcl_GetStdChannel */
-
-#ifndef Tcl_GetString
-VFUNC(char *,Tcl_GetString,V_Tcl_GetString,_ANSI_ARGS_((Tcl_Obj * objPtr)))
-#endif /* #ifndef Tcl_GetString */
-
-#ifndef Tcl_GetStringFromObj
-VFUNC(char *,Tcl_GetStringFromObj,V_Tcl_GetStringFromObj,_ANSI_ARGS_((Tcl_Obj * objPtr,
- int * lengthPtr)))
-#endif /* #ifndef Tcl_GetStringFromObj */
-
-#ifndef Tcl_GetStringResult
-VFUNC(CONST84_RETURN char *,Tcl_GetStringResult,V_Tcl_GetStringResult,_ANSI_ARGS_((
- Tcl_Interp * interp)))
-#endif /* #ifndef Tcl_GetStringResult */
-
-#ifndef Tcl_GetThreadData
-VFUNC(VOID *,Tcl_GetThreadData,V_Tcl_GetThreadData,_ANSI_ARGS_((
- Tcl_ThreadDataKey * keyPtr, int size)))
-#endif /* #ifndef Tcl_GetThreadData */
-
-#ifndef Tcl_GetTime
-VFUNC(void,Tcl_GetTime,V_Tcl_GetTime,_ANSI_ARGS_((Tcl_Time* timeBuf)))
-#endif /* #ifndef Tcl_GetTime */
-
-#ifndef Tcl_GetVar
-VFUNC(CONST84_RETURN char *,Tcl_GetVar,V_Tcl_GetVar,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName, int flags)))
-#endif /* #ifndef Tcl_GetVar */
-
-#ifndef Tcl_GetVar2
-VFUNC(CONST84_RETURN char *,Tcl_GetVar2,V_Tcl_GetVar2,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * part1, CONST char * part2,
- int flags)))
-#endif /* #ifndef Tcl_GetVar2 */
-
-#ifndef Tcl_GetVar2Ex
-VFUNC(Tcl_Obj *,Tcl_GetVar2Ex,V_Tcl_GetVar2Ex,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * part1, CONST char * part2,
- int flags)))
-#endif /* #ifndef Tcl_GetVar2Ex */
-
-#ifndef Tcl_GlobalEval
-VFUNC(int,Tcl_GlobalEval,V_Tcl_GlobalEval,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * command)))
-#endif /* #ifndef Tcl_GlobalEval */
-
-#ifndef Tcl_HideCommand
-VFUNC(int,Tcl_HideCommand,V_Tcl_HideCommand,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * cmdName,
- CONST char * hiddenCmdToken)))
-#endif /* #ifndef Tcl_HideCommand */
-
-#ifndef Tcl_InitHashTable
-VFUNC(void,Tcl_InitHashTable,V_Tcl_InitHashTable,_ANSI_ARGS_((
- Tcl_HashTable * tablePtr, int keyType)))
-#endif /* #ifndef Tcl_InitHashTable */
-
-#ifndef Tcl_IsSafe
-VFUNC(int,Tcl_IsSafe,V_Tcl_IsSafe,_ANSI_ARGS_((Tcl_Interp * interp)))
-#endif /* #ifndef Tcl_IsSafe */
-
-#ifndef Tcl_LinkVar
-VFUNC(int,Tcl_LinkVar,V_Tcl_LinkVar,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName, char * addr, int type)))
-#endif /* #ifndef Tcl_LinkVar */
-
-#ifndef Tcl_ListObjAppendElement
-VFUNC(int,Tcl_ListObjAppendElement,V_Tcl_ListObjAppendElement,_ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * listPtr,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tcl_ListObjAppendElement */
-
-#ifndef Tcl_ListObjGetElements
-VFUNC(int,Tcl_ListObjGetElements,V_Tcl_ListObjGetElements,_ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * listPtr,
- int * objcPtr, Tcl_Obj *** objvPtr)))
-#endif /* #ifndef Tcl_ListObjGetElements */
-
-#ifndef Tcl_ListObjIndex
-VFUNC(int,Tcl_ListObjIndex,V_Tcl_ListObjIndex,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * listPtr, int index,
- Tcl_Obj ** objPtrPtr)))
-#endif /* #ifndef Tcl_ListObjIndex */
-
-#ifndef Tcl_ListObjLength
-VFUNC(int,Tcl_ListObjLength,V_Tcl_ListObjLength,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * listPtr, int * lengthPtr)))
-#endif /* #ifndef Tcl_ListObjLength */
-
-#ifndef Tcl_ListObjReplace
-VFUNC(int,Tcl_ListObjReplace,V_Tcl_ListObjReplace,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * listPtr, int first, int count,
- int objc, Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tcl_ListObjReplace */
-
-#ifndef Tcl_NewBooleanObj
-VFUNC(Tcl_Obj *,Tcl_NewBooleanObj,V_Tcl_NewBooleanObj,_ANSI_ARGS_((int boolValue)))
-#endif /* #ifndef Tcl_NewBooleanObj */
-
-#ifndef Tcl_NewDoubleObj
-VFUNC(Tcl_Obj *,Tcl_NewDoubleObj,V_Tcl_NewDoubleObj,_ANSI_ARGS_((double doubleValue)))
-#endif /* #ifndef Tcl_NewDoubleObj */
-
-#ifndef Tcl_NewIntObj
-VFUNC(Tcl_Obj *,Tcl_NewIntObj,V_Tcl_NewIntObj,_ANSI_ARGS_((int intValue)))
-#endif /* #ifndef Tcl_NewIntObj */
-
-#ifndef Tcl_NewListObj
-VFUNC(Tcl_Obj *,Tcl_NewListObj,V_Tcl_NewListObj,_ANSI_ARGS_((int objc,
- Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tcl_NewListObj */
-
-#ifndef Tcl_NewLongObj
-VFUNC(Tcl_Obj *,Tcl_NewLongObj,V_Tcl_NewLongObj,_ANSI_ARGS_((long longValue)))
-#endif /* #ifndef Tcl_NewLongObj */
-
-#ifndef Tcl_NewObj
-VFUNC(Tcl_Obj *,Tcl_NewObj,V_Tcl_NewObj,_ANSI_ARGS_((void)))
-#endif /* #ifndef Tcl_NewObj */
-
-#ifndef Tcl_NewStringObj
-VFUNC(Tcl_Obj *,Tcl_NewStringObj,V_Tcl_NewStringObj,_ANSI_ARGS_((CONST char * bytes,
- int length)))
-#endif /* #ifndef Tcl_NewStringObj */
-
-#ifndef Tcl_NextHashEntry
-VFUNC(Tcl_HashEntry *,Tcl_NextHashEntry,V_Tcl_NextHashEntry,_ANSI_ARGS_((
- Tcl_HashSearch * searchPtr)))
-#endif /* #ifndef Tcl_NextHashEntry */
-
-#ifndef Tcl_NumUtfChars
-VFUNC(int,Tcl_NumUtfChars,V_Tcl_NumUtfChars,_ANSI_ARGS_((CONST char * src,
- int len)))
-#endif /* #ifndef Tcl_NumUtfChars */
-
-#ifndef Tcl_ObjGetVar2
-VFUNC(Tcl_Obj *,Tcl_ObjGetVar2,V_Tcl_ObjGetVar2,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr,
- int flags)))
-#endif /* #ifndef Tcl_ObjGetVar2 */
-
-#ifndef Tcl_ObjSetVar2
-VFUNC(Tcl_Obj *,Tcl_ObjSetVar2,V_Tcl_ObjSetVar2,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr,
- Tcl_Obj * newValuePtr, int flags)))
-#endif /* #ifndef Tcl_ObjSetVar2 */
-
-#ifndef Tcl_OpenFileChannel
-VFUNC(Tcl_Channel,Tcl_OpenFileChannel,V_Tcl_OpenFileChannel,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * fileName,
- CONST char * modeString, int permissions)))
-#endif /* #ifndef Tcl_OpenFileChannel */
-
-#ifndef Tcl_Panic
-VFUNC(void,Tcl_Panic,V_Tcl_Panic,_ANSI_ARGS_(TCL_VARARGS(CONST char *,format)))
-#endif /* #ifndef Tcl_Panic */
-
-#ifndef Tcl_PosixError
-VFUNC(CONST84_RETURN char *,Tcl_PosixError,V_Tcl_PosixError,_ANSI_ARGS_((Tcl_Interp * interp)))
-#endif /* #ifndef Tcl_PosixError */
-
-#ifndef Tcl_Preserve
-VFUNC(void,Tcl_Preserve,V_Tcl_Preserve,_ANSI_ARGS_((ClientData data)))
-#endif /* #ifndef Tcl_Preserve */
-
-#ifndef Tcl_Read
-VFUNC(int,Tcl_Read,V_Tcl_Read,_ANSI_ARGS_((Tcl_Channel chan,
- char * bufPtr, int toRead)))
-#endif /* #ifndef Tcl_Read */
-
-#ifndef Tcl_RegExpExec
-VFUNC(int,Tcl_RegExpExec,V_Tcl_RegExpExec,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_RegExp regexp, CONST char * str,
- CONST char * start)))
-#endif /* #ifndef Tcl_RegExpExec */
-
-#ifndef Tcl_RegExpRange
-VFUNC(void,Tcl_RegExpRange,V_Tcl_RegExpRange,_ANSI_ARGS_((Tcl_RegExp regexp,
- int index, CONST84 char ** startPtr,
- CONST84 char ** endPtr)))
-#endif /* #ifndef Tcl_RegExpRange */
-
-#ifndef Tcl_Release
-VFUNC(void,Tcl_Release,V_Tcl_Release,_ANSI_ARGS_((ClientData clientData)))
-#endif /* #ifndef Tcl_Release */
-
-#ifndef Tcl_ResetResult
-VFUNC(void,Tcl_ResetResult,V_Tcl_ResetResult,_ANSI_ARGS_((Tcl_Interp * interp)))
-#endif /* #ifndef Tcl_ResetResult */
-
-#ifndef Tcl_Seek
-VFUNC(Tcl_WideInt,Tcl_Seek,V_Tcl_Seek,_ANSI_ARGS_((Tcl_Channel chan,
- Tcl_WideInt offset, int mode)))
-#endif /* #ifndef Tcl_Seek */
-
-#ifndef Tcl_ServiceEvent
-VFUNC(int,Tcl_ServiceEvent,V_Tcl_ServiceEvent,_ANSI_ARGS_((int flags)))
-#endif /* #ifndef Tcl_ServiceEvent */
-
-#ifndef Tcl_SetAssocData
-VFUNC(void,Tcl_SetAssocData,V_Tcl_SetAssocData,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name,
- Tcl_InterpDeleteProc * proc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_SetAssocData */
-
-#ifndef Tcl_SetBooleanObj
-VFUNC(void,Tcl_SetBooleanObj,V_Tcl_SetBooleanObj,_ANSI_ARGS_((Tcl_Obj * objPtr,
- int boolValue)))
-#endif /* #ifndef Tcl_SetBooleanObj */
-
-#ifndef Tcl_SetChannelOption
-VFUNC(int,Tcl_SetChannelOption,V_Tcl_SetChannelOption,_ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Channel chan,
- CONST char * optionName,
- CONST char * newValue)))
-#endif /* #ifndef Tcl_SetChannelOption */
-
-#ifndef Tcl_SetCommandInfo
-VFUNC(int,Tcl_SetCommandInfo,V_Tcl_SetCommandInfo,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * cmdName,
- CONST Tcl_CmdInfo * infoPtr)))
-#endif /* #ifndef Tcl_SetCommandInfo */
-
-#ifndef Tcl_SetDoubleObj
-VFUNC(void,Tcl_SetDoubleObj,V_Tcl_SetDoubleObj,_ANSI_ARGS_((Tcl_Obj * objPtr,
- double doubleValue)))
-#endif /* #ifndef Tcl_SetDoubleObj */
-
-#ifndef Tcl_SetIntObj
-VFUNC(void,Tcl_SetIntObj,V_Tcl_SetIntObj,_ANSI_ARGS_((Tcl_Obj * objPtr,
- int intValue)))
-#endif /* #ifndef Tcl_SetIntObj */
-
-#ifndef Tcl_SetListObj
-VFUNC(void,Tcl_SetListObj,V_Tcl_SetListObj,_ANSI_ARGS_((Tcl_Obj * objPtr,
- int objc, Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tcl_SetListObj */
-
-#ifndef Tcl_SetLongObj
-VFUNC(void,Tcl_SetLongObj,V_Tcl_SetLongObj,_ANSI_ARGS_((Tcl_Obj * objPtr,
- long longValue)))
-#endif /* #ifndef Tcl_SetLongObj */
-
-#ifndef Tcl_SetMaxBlockTime
-VFUNC(void,Tcl_SetMaxBlockTime,V_Tcl_SetMaxBlockTime,_ANSI_ARGS_((Tcl_Time * timePtr)))
-#endif /* #ifndef Tcl_SetMaxBlockTime */
-
-#ifndef Tcl_SetObjErrorCode
-VFUNC(void,Tcl_SetObjErrorCode,V_Tcl_SetObjErrorCode,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * errorObjPtr)))
-#endif /* #ifndef Tcl_SetObjErrorCode */
-
-#ifndef Tcl_SetObjResult
-VFUNC(void,Tcl_SetObjResult,V_Tcl_SetObjResult,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * resultObjPtr)))
-#endif /* #ifndef Tcl_SetObjResult */
-
-#ifndef Tcl_SetResult
-VFUNC(void,Tcl_SetResult,V_Tcl_SetResult,_ANSI_ARGS_((Tcl_Interp * interp,
- char * str, Tcl_FreeProc * freeProc)))
-#endif /* #ifndef Tcl_SetResult */
-
-#ifndef Tcl_SetStringObj
-VFUNC(void,Tcl_SetStringObj,V_Tcl_SetStringObj,_ANSI_ARGS_((Tcl_Obj* objPtr,
- CONST char* bytes, int length)))
-#endif /* #ifndef Tcl_SetStringObj */
-
-#ifndef Tcl_SetVar
-VFUNC(CONST84_RETURN char *,Tcl_SetVar,V_Tcl_SetVar,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName, CONST char * newValue,
- int flags)))
-#endif /* #ifndef Tcl_SetVar */
-
-#ifndef Tcl_Sleep
-VFUNC(void,Tcl_Sleep,V_Tcl_Sleep,_ANSI_ARGS_((int ms)))
-#endif /* #ifndef Tcl_Sleep */
-
-#ifndef Tcl_StringMatch
-VFUNC(int,Tcl_StringMatch,V_Tcl_StringMatch,_ANSI_ARGS_((CONST char * str,
- CONST char * pattern)))
-#endif /* #ifndef Tcl_StringMatch */
-
-#ifndef Tcl_TranslateFileName
-VFUNC(char *,Tcl_TranslateFileName,V_Tcl_TranslateFileName,_ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * name,
- Tcl_DString * bufferPtr)))
-#endif /* #ifndef Tcl_TranslateFileName */
-
-#ifndef Tcl_UniCharIsAlpha
-VFUNC(int,Tcl_UniCharIsAlpha,V_Tcl_UniCharIsAlpha,_ANSI_ARGS_((int ch)))
-#endif /* #ifndef Tcl_UniCharIsAlpha */
-
-#ifndef Tcl_UniCharIsSpace
-VFUNC(int,Tcl_UniCharIsSpace,V_Tcl_UniCharIsSpace,_ANSI_ARGS_((int ch)))
-#endif /* #ifndef Tcl_UniCharIsSpace */
-
-#ifndef Tcl_UniCharIsUpper
-VFUNC(int,Tcl_UniCharIsUpper,V_Tcl_UniCharIsUpper,_ANSI_ARGS_((int ch)))
-#endif /* #ifndef Tcl_UniCharIsUpper */
-
-#ifndef Tcl_UniCharIsWordChar
-VFUNC(int,Tcl_UniCharIsWordChar,V_Tcl_UniCharIsWordChar,_ANSI_ARGS_((int ch)))
-#endif /* #ifndef Tcl_UniCharIsWordChar */
-
-#ifndef Tcl_UniCharToLower
-VFUNC(Tcl_UniChar,Tcl_UniCharToLower,V_Tcl_UniCharToLower,_ANSI_ARGS_((int ch)))
-#endif /* #ifndef Tcl_UniCharToLower */
-
-#ifndef Tcl_UniCharToUpper
-VFUNC(Tcl_UniChar,Tcl_UniCharToUpper,V_Tcl_UniCharToUpper,_ANSI_ARGS_((int ch)))
-#endif /* #ifndef Tcl_UniCharToUpper */
-
-#ifndef Tcl_UniCharToUtf
-VFUNC(int,Tcl_UniCharToUtf,V_Tcl_UniCharToUtf,_ANSI_ARGS_((int ch, char * buf)))
-#endif /* #ifndef Tcl_UniCharToUtf */
-
-#ifndef Tcl_UnlinkVar
-VFUNC(void,Tcl_UnlinkVar,V_Tcl_UnlinkVar,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName)))
-#endif /* #ifndef Tcl_UnlinkVar */
-
-#ifndef Tcl_UtfAtIndex
-VFUNC(CONST84_RETURN char *,Tcl_UtfAtIndex,V_Tcl_UtfAtIndex,_ANSI_ARGS_((CONST char * src,
- int index)))
-#endif /* #ifndef Tcl_UtfAtIndex */
-
-#ifndef Tcl_UtfCharComplete
-VFUNC(int,Tcl_UtfCharComplete,V_Tcl_UtfCharComplete,_ANSI_ARGS_((CONST char * src,
- int len)))
-#endif /* #ifndef Tcl_UtfCharComplete */
-
-#ifndef Tcl_UtfNext
-VFUNC(CONST84_RETURN char *,Tcl_UtfNext,V_Tcl_UtfNext,_ANSI_ARGS_((CONST char * src)))
-#endif /* #ifndef Tcl_UtfNext */
-
-#ifndef Tcl_UtfPrev
-VFUNC(CONST84_RETURN char *,Tcl_UtfPrev,V_Tcl_UtfPrev,_ANSI_ARGS_((CONST char * src,
- CONST char * start)))
-#endif /* #ifndef Tcl_UtfPrev */
-
-#ifndef Tcl_UtfToExternal
-VFUNC(int,Tcl_UtfToExternal,V_Tcl_UtfToExternal,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Encoding encoding, CONST char * src,
- int srcLen, int flags,
- Tcl_EncodingState * statePtr, char * dst,
- int dstLen, int * srcReadPtr,
- int * dstWrotePtr, int * dstCharsPtr)))
-#endif /* #ifndef Tcl_UtfToExternal */
-
-#ifndef Tcl_UtfToExternalDString
-VFUNC(char *,Tcl_UtfToExternalDString,V_Tcl_UtfToExternalDString,_ANSI_ARGS_((
- Tcl_Encoding encoding, CONST char * src,
- int srcLen, Tcl_DString * dsPtr)))
-#endif /* #ifndef Tcl_UtfToExternalDString */
-
-#ifndef Tcl_UtfToLower
-VFUNC(int,Tcl_UtfToLower,V_Tcl_UtfToLower,_ANSI_ARGS_((char * src)))
-#endif /* #ifndef Tcl_UtfToLower */
-
-#ifndef Tcl_UtfToUniChar
-VFUNC(int,Tcl_UtfToUniChar,V_Tcl_UtfToUniChar,_ANSI_ARGS_((CONST char * src,
- Tcl_UniChar * chPtr)))
-#endif /* #ifndef Tcl_UtfToUniChar */
-
-#ifndef Tcl_Write
-VFUNC(int,Tcl_Write,V_Tcl_Write,_ANSI_ARGS_((Tcl_Channel chan,
- CONST char * s, int slen)))
-#endif /* #ifndef Tcl_Write */
-
-#ifndef Tcl_WriteChars
-VFUNC(int,Tcl_WriteChars,V_Tcl_WriteChars,_ANSI_ARGS_((Tcl_Channel chan,
- CONST char * src, int srcLen)))
-#endif /* #ifndef Tcl_WriteChars */
-
-#ifndef Tcl_WrongNumArgs
-VFUNC(void,Tcl_WrongNumArgs,V_Tcl_WrongNumArgs,_ANSI_ARGS_((Tcl_Interp * interp,
- int objc, Tcl_Obj *CONST objv[],
- CONST char * message)))
-#endif /* #ifndef Tcl_WrongNumArgs */
-
-#endif /* _TCLDECLS */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls_f.h
deleted file mode 100644
index b150c471937..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tclDecls_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TCLDECLS_VT
-#define TCLDECLS_VT
-typedef struct TcldeclsVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tclDecls.t"
-#undef VFUNC
-#undef VVAR
-} TcldeclsVtab;
-extern TcldeclsVtab *TcldeclsVptr;
-extern TcldeclsVtab *TcldeclsVGet(void);
-#endif /* TCLDECLS_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tclIntDecls.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tclIntDecls.h
deleted file mode 100644
index 4e3c6afd400..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tclIntDecls.h
+++ /dev/null
@@ -1,1324 +0,0 @@
-/*
- * tclIntDecls.h --
- *
- * This file contains the declarations for all unsupported
- * functions that are exported by the Tcl library. These
- * interfaces are not guaranteed to remain the same between
- * versions. Use at your own risk.
- *
- * Copyright (c) 1998-1999 by Scriptics Corporation.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tclIntDecls.h,v 1.49 2003/02/18 02:25:45 hobbs Exp $
- */
-
-#ifndef _TCLINTDECLS
-#define _TCLINTDECLS
-
-/*
- * WARNING: This file is automatically generated by the tools/genStubs.tcl
- * script. Any modifications to the function declarations below should be made
- * in the generic/tclInt.decls script.
- */
-
-/* !BEGIN!: Do not edit below this line. */
-
-/*
- * Exported function declarations:
- */
-
-/* Slot 0 is reserved */
-/* 1 */
-EXTERN int TclAccessDeleteProc _ANSI_ARGS_((
- TclAccessProc_ * proc));
-/* 2 */
-EXTERN int TclAccessInsertProc _ANSI_ARGS_((
- TclAccessProc_ * proc));
-/* 3 */
-EXTERN void TclAllocateFreeObjects _ANSI_ARGS_((void));
-/* Slot 4 is reserved */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-/* 5 */
-EXTERN int TclCleanupChildren _ANSI_ARGS_((Tcl_Interp * interp,
- int numPids, Tcl_Pid * pidPtr,
- Tcl_Channel errorChan));
-#endif /* UNIX */
-#ifdef __WIN32__
-/* 5 */
-EXTERN int TclCleanupChildren _ANSI_ARGS_((Tcl_Interp * interp,
- int numPids, Tcl_Pid * pidPtr,
- Tcl_Channel errorChan));
-#endif /* __WIN32__ */
-/* 6 */
-EXTERN void TclCleanupCommand _ANSI_ARGS_((Command * cmdPtr));
-/* 7 */
-EXTERN int TclCopyAndCollapse _ANSI_ARGS_((int count,
- CONST char * src, char * dst));
-/* 8 */
-EXTERN int TclCopyChannel _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Channel inChan, Tcl_Channel outChan,
- int toRead, Tcl_Obj * cmdPtr));
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-/* 9 */
-EXTERN int TclCreatePipeline _ANSI_ARGS_((Tcl_Interp * interp,
- int argc, Tcl_Obj *CONST *objv,
- Tcl_Pid ** pidArrayPtr, TclFile * inPipePtr,
- TclFile * outPipePtr, TclFile * errFilePtr));
-#endif /* UNIX */
-#ifdef __WIN32__
-/* 9 */
-EXTERN int TclCreatePipeline _ANSI_ARGS_((Tcl_Interp * interp,
- int argc, Tcl_Obj *CONST *objv,
- Tcl_Pid ** pidArrayPtr, TclFile * inPipePtr,
- TclFile * outPipePtr, TclFile * errFilePtr));
-#endif /* __WIN32__ */
-/* 10 */
-EXTERN int TclCreateProc _ANSI_ARGS_((Tcl_Interp * interp,
- Namespace * nsPtr, CONST char * procName,
- Tcl_Obj * argsPtr, Tcl_Obj * bodyPtr,
- Proc ** procPtrPtr));
-/* 11 */
-EXTERN void TclDeleteCompiledLocalVars _ANSI_ARGS_((
- Interp * iPtr, CallFrame * framePtr));
-/* 12 */
-EXTERN void TclDeleteVars _ANSI_ARGS_((Interp * iPtr,
- Tcl_HashTable * tablePtr));
-/* 13 */
-EXTERN int TclDoGlob _ANSI_ARGS_((Tcl_Interp * interp,
- char * separators, Tcl_DString * headPtr,
- char * tail, Tcl_GlobTypeData * types));
-/* 14 */
-EXTERN void TclDumpMemoryInfo _ANSI_ARGS_((FILE * outFile));
-/* Slot 15 is reserved */
-/* 16 */
-EXTERN void TclExprFloatError _ANSI_ARGS_((Tcl_Interp * interp,
- double value));
-/* Slot 17 is reserved */
-/* Slot 18 is reserved */
-/* Slot 19 is reserved */
-/* Slot 20 is reserved */
-/* Slot 21 is reserved */
-/* 22 */
-EXTERN int TclFindElement _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * listStr, int listLength,
- CONST char ** elementPtr,
- CONST char ** nextPtr, int * sizePtr,
- int * bracePtr));
-/* 23 */
-EXTERN Proc * TclFindProc _ANSI_ARGS_((Interp * iPtr,
- CONST char * procName));
-/* 24 */
-EXTERN int TclFormatInt _ANSI_ARGS_((char * buffer, long n));
-/* 25 */
-EXTERN void TclFreePackageInfo _ANSI_ARGS_((Interp * iPtr));
-/* Slot 26 is reserved */
-/* 27 */
-EXTERN int TclGetDate _ANSI_ARGS_((char * p, unsigned long now,
- long zone, unsigned long * timePtr));
-/* 28 */
-EXTERN Tcl_Channel TclpGetDefaultStdChannel _ANSI_ARGS_((int type));
-/* Slot 29 is reserved */
-/* Slot 30 is reserved */
-/* 31 */
-EXTERN char * TclGetExtension _ANSI_ARGS_((char * name));
-/* 32 */
-EXTERN int TclGetFrame _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, CallFrame ** framePtrPtr));
-/* 33 */
-EXTERN TclCmdProcType TclGetInterpProc _ANSI_ARGS_((void));
-/* 34 */
-EXTERN int TclGetIntForIndex _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, int endValue,
- int * indexPtr));
-/* Slot 35 is reserved */
-/* 36 */
-EXTERN int TclGetLong _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, long * longPtr));
-/* 37 */
-EXTERN int TclGetLoadedPackages _ANSI_ARGS_((
- Tcl_Interp * interp, char * targetName));
-/* 38 */
-EXTERN int TclGetNamespaceForQualName _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * qualName,
- Namespace * cxtNsPtr, int flags,
- Namespace ** nsPtrPtr,
- Namespace ** altNsPtrPtr,
- Namespace ** actualCxtPtrPtr,
- CONST char ** simpleNamePtr));
-/* 39 */
-EXTERN TclObjCmdProcType TclGetObjInterpProc _ANSI_ARGS_((void));
-/* 40 */
-EXTERN int TclGetOpenMode _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, int * seekFlagPtr));
-/* 41 */
-EXTERN Tcl_Command TclGetOriginalCommand _ANSI_ARGS_((
- Tcl_Command command));
-/* 42 */
-EXTERN char * TclpGetUserHome _ANSI_ARGS_((CONST char * name,
- Tcl_DString * bufferPtr));
-/* 43 */
-EXTERN int TclGlobalInvoke _ANSI_ARGS_((Tcl_Interp * interp,
- int argc, CONST84 Tcl_Obj *CONST *objv, int flags));
-/* 44 */
-EXTERN int TclGuessPackageName _ANSI_ARGS_((
- CONST char * fileName, Tcl_DString * bufPtr));
-/* 45 */
-EXTERN int TclHideUnsafeCommands _ANSI_ARGS_((
- Tcl_Interp * interp));
-/* 46 */
-EXTERN int TclInExit _ANSI_ARGS_((void));
-/* Slot 47 is reserved */
-/* Slot 48 is reserved */
-/* 49 */
-EXTERN Tcl_Obj * TclIncrVar2 _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr,
- long incrAmount, int part1NotParsed));
-/* 50 */
-EXTERN void TclInitCompiledLocals _ANSI_ARGS_((
- Tcl_Interp * interp, CallFrame * framePtr,
- Namespace * nsPtr));
-/* 51 */
-EXTERN int TclInterpInit _ANSI_ARGS_((Tcl_Interp * interp));
-/* 52 */
-EXTERN int TclInvoke _ANSI_ARGS_((Tcl_Interp * interp, int argc,
- CONST84 Tcl_Obj *CONST *objv, int flags));
-/* 53 */
-EXTERN int TclInvokeObjectCommand _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp * interp,
- int argc, CONST84 Tcl_Obj *CONST *objv));
-/* 54 */
-EXTERN int TclInvokeStringCommand _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp * interp,
- int objc, Tcl_Obj *CONST objv[]));
-/* 55 */
-EXTERN Proc * TclIsProc _ANSI_ARGS_((Command * cmdPtr));
-/* Slot 56 is reserved */
-/* Slot 57 is reserved */
-/* 58 */
-EXTERN Var * TclLookupVar _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * part1, CONST char * part2,
- int flags, CONST char * msg, int createPart1,
- int createPart2, Var ** arrayPtrPtr));
-/* Slot 59 is reserved */
-/* 60 */
-EXTERN int TclNeedSpace _ANSI_ARGS_((CONST char * start,
- CONST char * end));
-/* 61 */
-EXTERN Tcl_Obj * TclNewProcBodyObj _ANSI_ARGS_((Proc * procPtr));
-/* 62 */
-EXTERN int TclObjCommandComplete _ANSI_ARGS_((Tcl_Obj * cmdPtr));
-/* 63 */
-EXTERN int TclObjInterpProc _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp * interp, int objc,
- Tcl_Obj *CONST objv[]));
-/* 64 */
-EXTERN int TclObjInvoke _ANSI_ARGS_((Tcl_Interp * interp,
- int objc, Tcl_Obj *CONST objv[], int flags));
-/* 65 */
-EXTERN int TclObjInvokeGlobal _ANSI_ARGS_((Tcl_Interp * interp,
- int objc, Tcl_Obj *CONST objv[], int flags));
-/* 66 */
-EXTERN int TclOpenFileChannelDeleteProc _ANSI_ARGS_((
- TclOpenFileChannelProc_ * proc));
-/* 67 */
-EXTERN int TclOpenFileChannelInsertProc _ANSI_ARGS_((
- TclOpenFileChannelProc_ * proc));
-/* Slot 68 is reserved */
-/* 69 */
-EXTERN char * TclpAlloc _ANSI_ARGS_((unsigned int size));
-/* Slot 70 is reserved */
-/* Slot 71 is reserved */
-/* Slot 72 is reserved */
-/* Slot 73 is reserved */
-/* 74 */
-EXTERN void TclpFree _ANSI_ARGS_((char * ptr));
-/* 75 */
-EXTERN unsigned long TclpGetClicks _ANSI_ARGS_((void));
-/* 76 */
-EXTERN unsigned long TclpGetSeconds _ANSI_ARGS_((void));
-/* 77 */
-EXTERN void TclpGetTime _ANSI_ARGS_((Tcl_Time * time));
-/* 78 */
-EXTERN int TclpGetTimeZone _ANSI_ARGS_((unsigned long time));
-/* Slot 79 is reserved */
-/* Slot 80 is reserved */
-/* 81 */
-EXTERN char * TclpRealloc _ANSI_ARGS_((char * ptr,
- unsigned int size));
-/* Slot 82 is reserved */
-/* Slot 83 is reserved */
-/* Slot 84 is reserved */
-/* Slot 85 is reserved */
-/* Slot 86 is reserved */
-/* Slot 87 is reserved */
-/* 88 */
-EXTERN char * TclPrecTraceProc _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp * interp, CONST char * name1,
- CONST char * name2, int flags));
-/* 89 */
-EXTERN int TclPreventAliasLoop _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Interp * cmdInterp, Tcl_Command cmd));
-/* Slot 90 is reserved */
-/* 91 */
-EXTERN void TclProcCleanupProc _ANSI_ARGS_((Proc * procPtr));
-/* 92 */
-EXTERN int TclProcCompileProc _ANSI_ARGS_((Tcl_Interp * interp,
- Proc * procPtr, Tcl_Obj * bodyPtr,
- Namespace * nsPtr, CONST char * description,
- CONST char * procName));
-/* 93 */
-EXTERN void TclProcDeleteProc _ANSI_ARGS_((ClientData clientData));
-/* 94 */
-EXTERN int TclProcInterpProc _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp * interp, int argc,
- CONST84 Tcl_Obj *CONST *objv));
-/* Slot 95 is reserved */
-/* 96 */
-EXTERN int TclRenameCommand _ANSI_ARGS_((Tcl_Interp * interp,
- char * oldName, char * newName));
-/* 97 */
-EXTERN void TclResetShadowedCmdRefs _ANSI_ARGS_((
- Tcl_Interp * interp, Command * newCmdPtr));
-/* 98 */
-EXTERN int TclServiceIdle _ANSI_ARGS_((void));
-/* Slot 99 is reserved */
-/* Slot 100 is reserved */
-/* 101 */
-EXTERN char * TclSetPreInitScript _ANSI_ARGS_((char * string));
-/* 102 */
-EXTERN void TclSetupEnv _ANSI_ARGS_((Tcl_Interp * interp));
-/* 103 */
-EXTERN int TclSockGetPort _ANSI_ARGS_((Tcl_Interp * interp,
- char * str, char * proto, int * portPtr));
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-/* 104 */
-EXTERN int TclSockMinimumBuffers _ANSI_ARGS_((int sock,
- int size));
-#endif /* UNIX */
-#ifdef __WIN32__
-/* 104 */
-EXTERN int TclSockMinimumBuffers _ANSI_ARGS_((int sock,
- int size));
-#endif /* __WIN32__ */
-/* Slot 105 is reserved */
-/* 106 */
-EXTERN int TclStatDeleteProc _ANSI_ARGS_((TclStatProc_ * proc));
-/* 107 */
-EXTERN int TclStatInsertProc _ANSI_ARGS_((TclStatProc_ * proc));
-/* 108 */
-EXTERN void TclTeardownNamespace _ANSI_ARGS_((Namespace * nsPtr));
-/* 109 */
-EXTERN int TclUpdateReturnInfo _ANSI_ARGS_((Interp * iPtr));
-/* Slot 110 is reserved */
-/* 111 */
-EXTERN void Tcl_AddInterpResolvers _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * name,
- Tcl_ResolveCmdProc * cmdProc,
- Tcl_ResolveVarProc * varProc,
- Tcl_ResolveCompiledVarProc * compiledVarProc));
-/* 112 */
-EXTERN int Tcl_AppendExportList _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Namespace * nsPtr,
- Tcl_Obj * objPtr));
-/* 113 */
-EXTERN Tcl_Namespace * Tcl_CreateNamespace _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name, ClientData clientData,
- Tcl_NamespaceDeleteProc * deleteProc));
-/* 114 */
-EXTERN void Tcl_DeleteNamespace _ANSI_ARGS_((
- Tcl_Namespace * nsPtr));
-/* 115 */
-EXTERN int Tcl_Export _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Namespace * nsPtr, CONST char * pattern,
- int resetListFirst));
-/* 116 */
-EXTERN Tcl_Command Tcl_FindCommand _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name,
- Tcl_Namespace * contextNsPtr, int flags));
-/* 117 */
-EXTERN Tcl_Namespace * Tcl_FindNamespace _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name,
- Tcl_Namespace * contextNsPtr, int flags));
-/* 118 */
-EXTERN int Tcl_GetInterpResolvers _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * name,
- Tcl_ResolverInfo * resInfo));
-/* 119 */
-EXTERN int Tcl_GetNamespaceResolvers _ANSI_ARGS_((
- Tcl_Namespace * namespacePtr,
- Tcl_ResolverInfo * resInfo));
-/* 120 */
-EXTERN Tcl_Var Tcl_FindNamespaceVar _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * name,
- Tcl_Namespace * contextNsPtr, int flags));
-/* 121 */
-EXTERN int Tcl_ForgetImport _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Namespace * nsPtr, CONST char * pattern));
-/* 122 */
-EXTERN Tcl_Command Tcl_GetCommandFromObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr));
-/* 123 */
-EXTERN void Tcl_GetCommandFullName _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Command command,
- Tcl_Obj * objPtr));
-/* 124 */
-EXTERN Tcl_Namespace * Tcl_GetCurrentNamespace _ANSI_ARGS_((
- Tcl_Interp * interp));
-/* 125 */
-EXTERN Tcl_Namespace * Tcl_GetGlobalNamespace _ANSI_ARGS_((
- Tcl_Interp * interp));
-/* 126 */
-EXTERN void Tcl_GetVariableFullName _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Var variable,
- Tcl_Obj * objPtr));
-/* 127 */
-EXTERN int Tcl_Import _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Namespace * nsPtr, CONST char * pattern,
- int allowOverwrite));
-/* 128 */
-EXTERN void Tcl_PopCallFrame _ANSI_ARGS_((Tcl_Interp* interp));
-/* 129 */
-EXTERN int Tcl_PushCallFrame _ANSI_ARGS_((Tcl_Interp* interp,
- Tcl_CallFrame * framePtr,
- Tcl_Namespace * nsPtr, int isProcCallFrame));
-/* 130 */
-EXTERN int Tcl_RemoveInterpResolvers _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * name));
-/* 131 */
-EXTERN void Tcl_SetNamespaceResolvers _ANSI_ARGS_((
- Tcl_Namespace * namespacePtr,
- Tcl_ResolveCmdProc * cmdProc,
- Tcl_ResolveVarProc * varProc,
- Tcl_ResolveCompiledVarProc * compiledVarProc));
-/* 132 */
-EXTERN int TclpHasSockets _ANSI_ARGS_((Tcl_Interp * interp));
-/* 133 */
-EXTERN struct tm * TclpGetDate _ANSI_ARGS_((TclpTime_t time, int useGMT));
-/* 134 */
-EXTERN size_t TclpStrftime _ANSI_ARGS_((char * s, size_t maxsize,
- CONST char * format, CONST struct tm * t,
- int useGMT));
-/* 135 */
-EXTERN int TclpCheckStackSpace _ANSI_ARGS_((void));
-/* Slot 136 is reserved */
-/* Slot 137 is reserved */
-/* 138 */
-EXTERN CONST84_RETURN char * TclGetEnv _ANSI_ARGS_((CONST char * name,
- Tcl_DString * valuePtr));
-/* Slot 139 is reserved */
-/* 140 */
-EXTERN int TclLooksLikeInt _ANSI_ARGS_((CONST char * bytes,
- int length));
-/* 141 */
-EXTERN CONST84_RETURN char * TclpGetCwd _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_DString * cwdPtr));
-/* 142 */
-EXTERN int TclSetByteCodeFromAny _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr,
- CompileHookProc * hookProc,
- ClientData clientData));
-/* 143 */
-EXTERN int TclAddLiteralObj _ANSI_ARGS_((
- struct CompileEnv * envPtr, Tcl_Obj * objPtr,
- LiteralEntry ** litPtrPtr));
-/* 144 */
-EXTERN void TclHideLiteral _ANSI_ARGS_((Tcl_Interp * interp,
- struct CompileEnv * envPtr, int index));
-/* 145 */
-EXTERN struct AuxDataType * TclGetAuxDataType _ANSI_ARGS_((char * typeName));
-/* 146 */
-EXTERN TclHandle TclHandleCreate _ANSI_ARGS_((VOID * ptr));
-/* 147 */
-EXTERN void TclHandleFree _ANSI_ARGS_((TclHandle handle));
-/* 148 */
-EXTERN TclHandle TclHandlePreserve _ANSI_ARGS_((TclHandle handle));
-/* 149 */
-EXTERN void TclHandleRelease _ANSI_ARGS_((TclHandle handle));
-/* 150 */
-EXTERN int TclRegAbout _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_RegExp re));
-/* 151 */
-EXTERN void TclRegExpRangeUniChar _ANSI_ARGS_((Tcl_RegExp re,
- int index, int * startPtr, int * endPtr));
-/* 152 */
-EXTERN void TclSetLibraryPath _ANSI_ARGS_((Tcl_Obj * pathPtr));
-/* 153 */
-EXTERN Tcl_Obj * TclGetLibraryPath _ANSI_ARGS_((void));
-/* Slot 154 is reserved */
-/* Slot 155 is reserved */
-/* 156 */
-EXTERN void TclRegError _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * msg, int status));
-/* 157 */
-EXTERN Var * TclVarTraceExists _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * varName));
-/* 158 */
-EXTERN void TclSetStartupScriptFileName _ANSI_ARGS_((
- CONST char * filename));
-/* 159 */
-EXTERN CONST84_RETURN char * TclGetStartupScriptFileName _ANSI_ARGS_((void));
-/* Slot 160 is reserved */
-/* 161 */
-EXTERN int TclChannelTransform _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Channel chan, Tcl_Obj * cmdObjPtr));
-/* 162 */
-EXTERN void TclChannelEventScriptInvoker _ANSI_ARGS_((
- ClientData clientData, int flags));
-/* 163 */
-EXTERN void * TclGetInstructionTable _ANSI_ARGS_((void));
-/* 164 */
-EXTERN void TclExpandCodeArray _ANSI_ARGS_((void * envPtr));
-/* 165 */
-EXTERN void TclpSetInitialEncodings _ANSI_ARGS_((void));
-/* 166 */
-EXTERN int TclListObjSetElement _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * listPtr,
- int index, Tcl_Obj * valuePtr));
-/* 167 */
-EXTERN void TclSetStartupScriptPath _ANSI_ARGS_((
- Tcl_Obj * pathPtr));
-/* 168 */
-EXTERN Tcl_Obj * TclGetStartupScriptPath _ANSI_ARGS_((void));
-/* 169 */
-EXTERN int TclpUtfNcmp2 _ANSI_ARGS_((CONST char * s1,
- CONST char * s2, unsigned long n));
-/* 170 */
-EXTERN int TclCheckInterpTraces _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * command,
- int numChars, Command * cmdPtr, int result,
- int traceFlags, int objc,
- Tcl_Obj *CONST objv[]));
-/* 171 */
-EXTERN int TclCheckExecutionTraces _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * command,
- int numChars, Command * cmdPtr, int result,
- int traceFlags, int objc,
- Tcl_Obj *CONST objv[]));
-/* 172 */
-EXTERN int TclInThreadExit _ANSI_ARGS_((void));
-/* 173 */
-EXTERN int TclUniCharMatch _ANSI_ARGS_((
- CONST Tcl_UniChar * string, int strLen,
- CONST Tcl_UniChar * pattern, int ptnLen,
- int nocase));
-
-typedef struct TclIntStubs {
- int magic;
- struct TclIntStubHooks *hooks;
-
- void *reserved0;
- int (*tclAccessDeleteProc) _ANSI_ARGS_((TclAccessProc_ * proc)); /* 1 */
- int (*tclAccessInsertProc) _ANSI_ARGS_((TclAccessProc_ * proc)); /* 2 */
- void (*tclAllocateFreeObjects) _ANSI_ARGS_((void)); /* 3 */
- void *reserved4;
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- int (*tclCleanupChildren) _ANSI_ARGS_((Tcl_Interp * interp, int numPids, Tcl_Pid * pidPtr, Tcl_Channel errorChan)); /* 5 */
-#endif /* UNIX */
-#ifdef __WIN32__
- int (*tclCleanupChildren) _ANSI_ARGS_((Tcl_Interp * interp, int numPids, Tcl_Pid * pidPtr, Tcl_Channel errorChan)); /* 5 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void *reserved5;
-#endif /* MAC_TCL */
- void (*tclCleanupCommand) _ANSI_ARGS_((Command * cmdPtr)); /* 6 */
- int (*tclCopyAndCollapse) _ANSI_ARGS_((int count, CONST char * src, char * dst)); /* 7 */
- int (*tclCopyChannel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel inChan, Tcl_Channel outChan, int toRead, Tcl_Obj * cmdPtr)); /* 8 */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- int (*tclCreatePipeline) _ANSI_ARGS_((Tcl_Interp * interp, int argc, Tcl_Obj *CONST *objv, Tcl_Pid ** pidArrayPtr, TclFile * inPipePtr, TclFile * outPipePtr, TclFile * errFilePtr)); /* 9 */
-#endif /* UNIX */
-#ifdef __WIN32__
- int (*tclCreatePipeline) _ANSI_ARGS_((Tcl_Interp * interp, int argc, Tcl_Obj *CONST *objv, Tcl_Pid ** pidArrayPtr, TclFile * inPipePtr, TclFile * outPipePtr, TclFile * errFilePtr)); /* 9 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void *reserved9;
-#endif /* MAC_TCL */
- int (*tclCreateProc) _ANSI_ARGS_((Tcl_Interp * interp, Namespace * nsPtr, CONST char * procName, Tcl_Obj * argsPtr, Tcl_Obj * bodyPtr, Proc ** procPtrPtr)); /* 10 */
- void (*tclDeleteCompiledLocalVars) _ANSI_ARGS_((Interp * iPtr, CallFrame * framePtr)); /* 11 */
- void (*tclDeleteVars) _ANSI_ARGS_((Interp * iPtr, Tcl_HashTable * tablePtr)); /* 12 */
- int (*tclDoGlob) _ANSI_ARGS_((Tcl_Interp * interp, char * separators, Tcl_DString * headPtr, char * tail, Tcl_GlobTypeData * types)); /* 13 */
- void (*tclDumpMemoryInfo) _ANSI_ARGS_((FILE * outFile)); /* 14 */
- void *reserved15;
- void (*tclExprFloatError) _ANSI_ARGS_((Tcl_Interp * interp, double value)); /* 16 */
- void *reserved17;
- void *reserved18;
- void *reserved19;
- void *reserved20;
- void *reserved21;
- int (*tclFindElement) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * listStr, int listLength, CONST char ** elementPtr, CONST char ** nextPtr, int * sizePtr, int * bracePtr)); /* 22 */
- Proc * (*tclFindProc) _ANSI_ARGS_((Interp * iPtr, CONST char * procName)); /* 23 */
- int (*tclFormatInt) _ANSI_ARGS_((char * buffer, long n)); /* 24 */
- void (*tclFreePackageInfo) _ANSI_ARGS_((Interp * iPtr)); /* 25 */
- void *reserved26;
- int (*tclGetDate) _ANSI_ARGS_((char * p, unsigned long now, long zone, unsigned long * timePtr)); /* 27 */
- Tcl_Channel (*tclpGetDefaultStdChannel) _ANSI_ARGS_((int type)); /* 28 */
- void *reserved29;
- void *reserved30;
- char * (*tclGetExtension) _ANSI_ARGS_((char * name)); /* 31 */
- int (*tclGetFrame) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, CallFrame ** framePtrPtr)); /* 32 */
- TclCmdProcType (*tclGetInterpProc) _ANSI_ARGS_((void)); /* 33 */
- int (*tclGetIntForIndex) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int endValue, int * indexPtr)); /* 34 */
- void *reserved35;
- int (*tclGetLong) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, long * longPtr)); /* 36 */
- int (*tclGetLoadedPackages) _ANSI_ARGS_((Tcl_Interp * interp, char * targetName)); /* 37 */
- int (*tclGetNamespaceForQualName) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * qualName, Namespace * cxtNsPtr, int flags, Namespace ** nsPtrPtr, Namespace ** altNsPtrPtr, Namespace ** actualCxtPtrPtr, CONST char ** simpleNamePtr)); /* 38 */
- TclObjCmdProcType (*tclGetObjInterpProc) _ANSI_ARGS_((void)); /* 39 */
- int (*tclGetOpenMode) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int * seekFlagPtr)); /* 40 */
- Tcl_Command (*tclGetOriginalCommand) _ANSI_ARGS_((Tcl_Command command)); /* 41 */
- char * (*tclpGetUserHome) _ANSI_ARGS_((CONST char * name, Tcl_DString * bufferPtr)); /* 42 */
- int (*tclGlobalInvoke) _ANSI_ARGS_((Tcl_Interp * interp, int argc, CONST84 Tcl_Obj *CONST *objv, int flags)); /* 43 */
- int (*tclGuessPackageName) _ANSI_ARGS_((CONST char * fileName, Tcl_DString * bufPtr)); /* 44 */
- int (*tclHideUnsafeCommands) _ANSI_ARGS_((Tcl_Interp * interp)); /* 45 */
- int (*tclInExit) _ANSI_ARGS_((void)); /* 46 */
- void *reserved47;
- void *reserved48;
- Tcl_Obj * (*tclIncrVar2) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, long incrAmount, int part1NotParsed)); /* 49 */
- void (*tclInitCompiledLocals) _ANSI_ARGS_((Tcl_Interp * interp, CallFrame * framePtr, Namespace * nsPtr)); /* 50 */
- int (*tclInterpInit) _ANSI_ARGS_((Tcl_Interp * interp)); /* 51 */
- int (*tclInvoke) _ANSI_ARGS_((Tcl_Interp * interp, int argc, CONST84 Tcl_Obj *CONST *objv, int flags)); /* 52 */
- int (*tclInvokeObjectCommand) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int argc, CONST84 Tcl_Obj *CONST *objv)); /* 53 */
- int (*tclInvokeStringCommand) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 54 */
- Proc * (*tclIsProc) _ANSI_ARGS_((Command * cmdPtr)); /* 55 */
- void *reserved56;
- void *reserved57;
- Var * (*tclLookupVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags, CONST char * msg, int createPart1, int createPart2, Var ** arrayPtrPtr)); /* 58 */
- void *reserved59;
- int (*tclNeedSpace) _ANSI_ARGS_((CONST char * start, CONST char * end)); /* 60 */
- Tcl_Obj * (*tclNewProcBodyObj) _ANSI_ARGS_((Proc * procPtr)); /* 61 */
- int (*tclObjCommandComplete) _ANSI_ARGS_((Tcl_Obj * cmdPtr)); /* 62 */
- int (*tclObjInterpProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 63 */
- int (*tclObjInvoke) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], int flags)); /* 64 */
- int (*tclObjInvokeGlobal) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], int flags)); /* 65 */
- int (*tclOpenFileChannelDeleteProc) _ANSI_ARGS_((TclOpenFileChannelProc_ * proc)); /* 66 */
- int (*tclOpenFileChannelInsertProc) _ANSI_ARGS_((TclOpenFileChannelProc_ * proc)); /* 67 */
- void *reserved68;
- char * (*tclpAlloc) _ANSI_ARGS_((unsigned int size)); /* 69 */
- void *reserved70;
- void *reserved71;
- void *reserved72;
- void *reserved73;
- void (*tclpFree) _ANSI_ARGS_((char * ptr)); /* 74 */
- unsigned long (*tclpGetClicks) _ANSI_ARGS_((void)); /* 75 */
- unsigned long (*tclpGetSeconds) _ANSI_ARGS_((void)); /* 76 */
- void (*tclpGetTime) _ANSI_ARGS_((Tcl_Time * time)); /* 77 */
- int (*tclpGetTimeZone) _ANSI_ARGS_((unsigned long time)); /* 78 */
- void *reserved79;
- void *reserved80;
- char * (*tclpRealloc) _ANSI_ARGS_((char * ptr, unsigned int size)); /* 81 */
- void *reserved82;
- void *reserved83;
- void *reserved84;
- void *reserved85;
- void *reserved86;
- void *reserved87;
- char * (*tclPrecTraceProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, CONST char * name1, CONST char * name2, int flags)); /* 88 */
- int (*tclPreventAliasLoop) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Interp * cmdInterp, Tcl_Command cmd)); /* 89 */
- void *reserved90;
- void (*tclProcCleanupProc) _ANSI_ARGS_((Proc * procPtr)); /* 91 */
- int (*tclProcCompileProc) _ANSI_ARGS_((Tcl_Interp * interp, Proc * procPtr, Tcl_Obj * bodyPtr, Namespace * nsPtr, CONST char * description, CONST char * procName)); /* 92 */
- void (*tclProcDeleteProc) _ANSI_ARGS_((ClientData clientData)); /* 93 */
- int (*tclProcInterpProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int argc, CONST84 Tcl_Obj *CONST *objv)); /* 94 */
- void *reserved95;
- int (*tclRenameCommand) _ANSI_ARGS_((Tcl_Interp * interp, char * oldName, char * newName)); /* 96 */
- void (*tclResetShadowedCmdRefs) _ANSI_ARGS_((Tcl_Interp * interp, Command * newCmdPtr)); /* 97 */
- int (*tclServiceIdle) _ANSI_ARGS_((void)); /* 98 */
- void *reserved99;
- void *reserved100;
- char * (*tclSetPreInitScript) _ANSI_ARGS_((char * string)); /* 101 */
- void (*tclSetupEnv) _ANSI_ARGS_((Tcl_Interp * interp)); /* 102 */
- int (*tclSockGetPort) _ANSI_ARGS_((Tcl_Interp * interp, char * str, char * proto, int * portPtr)); /* 103 */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- int (*tclSockMinimumBuffers) _ANSI_ARGS_((int sock, int size)); /* 104 */
-#endif /* UNIX */
-#ifdef __WIN32__
- int (*tclSockMinimumBuffers) _ANSI_ARGS_((int sock, int size)); /* 104 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void *reserved104;
-#endif /* MAC_TCL */
- void *reserved105;
- int (*tclStatDeleteProc) _ANSI_ARGS_((TclStatProc_ * proc)); /* 106 */
- int (*tclStatInsertProc) _ANSI_ARGS_((TclStatProc_ * proc)); /* 107 */
- void (*tclTeardownNamespace) _ANSI_ARGS_((Namespace * nsPtr)); /* 108 */
- int (*tclUpdateReturnInfo) _ANSI_ARGS_((Interp * iPtr)); /* 109 */
- void *reserved110;
- void (*tcl_AddInterpResolvers) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc, Tcl_ResolveCompiledVarProc * compiledVarProc)); /* 111 */
- int (*tcl_AppendExportList) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Namespace * nsPtr, Tcl_Obj * objPtr)); /* 112 */
- Tcl_Namespace * (*tcl_CreateNamespace) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, ClientData clientData, Tcl_NamespaceDeleteProc * deleteProc)); /* 113 */
- void (*tcl_DeleteNamespace) _ANSI_ARGS_((Tcl_Namespace * nsPtr)); /* 114 */
- int (*tcl_Export) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Namespace * nsPtr, CONST char * pattern, int resetListFirst)); /* 115 */
- Tcl_Command (*tcl_FindCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_Namespace * contextNsPtr, int flags)); /* 116 */
- Tcl_Namespace * (*tcl_FindNamespace) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_Namespace * contextNsPtr, int flags)); /* 117 */
- int (*tcl_GetInterpResolvers) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_ResolverInfo * resInfo)); /* 118 */
- int (*tcl_GetNamespaceResolvers) _ANSI_ARGS_((Tcl_Namespace * namespacePtr, Tcl_ResolverInfo * resInfo)); /* 119 */
- Tcl_Var (*tcl_FindNamespaceVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_Namespace * contextNsPtr, int flags)); /* 120 */
- int (*tcl_ForgetImport) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Namespace * nsPtr, CONST char * pattern)); /* 121 */
- Tcl_Command (*tcl_GetCommandFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr)); /* 122 */
- void (*tcl_GetCommandFullName) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Command command, Tcl_Obj * objPtr)); /* 123 */
- Tcl_Namespace * (*tcl_GetCurrentNamespace) _ANSI_ARGS_((Tcl_Interp * interp)); /* 124 */
- Tcl_Namespace * (*tcl_GetGlobalNamespace) _ANSI_ARGS_((Tcl_Interp * interp)); /* 125 */
- void (*tcl_GetVariableFullName) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Var variable, Tcl_Obj * objPtr)); /* 126 */
- int (*tcl_Import) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Namespace * nsPtr, CONST char * pattern, int allowOverwrite)); /* 127 */
- void (*tcl_PopCallFrame) _ANSI_ARGS_((Tcl_Interp* interp)); /* 128 */
- int (*tcl_PushCallFrame) _ANSI_ARGS_((Tcl_Interp* interp, Tcl_CallFrame * framePtr, Tcl_Namespace * nsPtr, int isProcCallFrame)); /* 129 */
- int (*tcl_RemoveInterpResolvers) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name)); /* 130 */
- void (*tcl_SetNamespaceResolvers) _ANSI_ARGS_((Tcl_Namespace * namespacePtr, Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc, Tcl_ResolveCompiledVarProc * compiledVarProc)); /* 131 */
- int (*tclpHasSockets) _ANSI_ARGS_((Tcl_Interp * interp)); /* 132 */
- struct tm * (*tclpGetDate) _ANSI_ARGS_((TclpTime_t time, int useGMT)); /* 133 */
- size_t (*tclpStrftime) _ANSI_ARGS_((char * s, size_t maxsize, CONST char * format, CONST struct tm * t, int useGMT)); /* 134 */
- int (*tclpCheckStackSpace) _ANSI_ARGS_((void)); /* 135 */
- void *reserved136;
- void *reserved137;
- CONST84_RETURN char * (*tclGetEnv) _ANSI_ARGS_((CONST char * name, Tcl_DString * valuePtr)); /* 138 */
- void *reserved139;
- int (*tclLooksLikeInt) _ANSI_ARGS_((CONST char * bytes, int length)); /* 140 */
- CONST84_RETURN char * (*tclpGetCwd) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_DString * cwdPtr)); /* 141 */
- int (*tclSetByteCodeFromAny) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, CompileHookProc * hookProc, ClientData clientData)); /* 142 */
- int (*tclAddLiteralObj) _ANSI_ARGS_((struct CompileEnv * envPtr, Tcl_Obj * objPtr, LiteralEntry ** litPtrPtr)); /* 143 */
- void (*tclHideLiteral) _ANSI_ARGS_((Tcl_Interp * interp, struct CompileEnv * envPtr, int index)); /* 144 */
- struct AuxDataType * (*tclGetAuxDataType) _ANSI_ARGS_((char * typeName)); /* 145 */
- TclHandle (*tclHandleCreate) _ANSI_ARGS_((VOID * ptr)); /* 146 */
- void (*tclHandleFree) _ANSI_ARGS_((TclHandle handle)); /* 147 */
- TclHandle (*tclHandlePreserve) _ANSI_ARGS_((TclHandle handle)); /* 148 */
- void (*tclHandleRelease) _ANSI_ARGS_((TclHandle handle)); /* 149 */
- int (*tclRegAbout) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_RegExp re)); /* 150 */
- void (*tclRegExpRangeUniChar) _ANSI_ARGS_((Tcl_RegExp re, int index, int * startPtr, int * endPtr)); /* 151 */
- void (*tclSetLibraryPath) _ANSI_ARGS_((Tcl_Obj * pathPtr)); /* 152 */
- Tcl_Obj * (*tclGetLibraryPath) _ANSI_ARGS_((void)); /* 153 */
- void *reserved154;
- void *reserved155;
- void (*tclRegError) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * msg, int status)); /* 156 */
- Var * (*tclVarTraceExists) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName)); /* 157 */
- void (*tclSetStartupScriptFileName) _ANSI_ARGS_((CONST char * filename)); /* 158 */
- CONST84_RETURN char * (*tclGetStartupScriptFileName) _ANSI_ARGS_((void)); /* 159 */
- void *reserved160;
- int (*tclChannelTransform) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan, Tcl_Obj * cmdObjPtr)); /* 161 */
- void (*tclChannelEventScriptInvoker) _ANSI_ARGS_((ClientData clientData, int flags)); /* 162 */
- void * (*tclGetInstructionTable) _ANSI_ARGS_((void)); /* 163 */
- void (*tclExpandCodeArray) _ANSI_ARGS_((void * envPtr)); /* 164 */
- void (*tclpSetInitialEncodings) _ANSI_ARGS_((void)); /* 165 */
- int (*tclListObjSetElement) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int index, Tcl_Obj * valuePtr)); /* 166 */
- void (*tclSetStartupScriptPath) _ANSI_ARGS_((Tcl_Obj * pathPtr)); /* 167 */
- Tcl_Obj * (*tclGetStartupScriptPath) _ANSI_ARGS_((void)); /* 168 */
- int (*tclpUtfNcmp2) _ANSI_ARGS_((CONST char * s1, CONST char * s2, unsigned long n)); /* 169 */
- int (*tclCheckInterpTraces) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * command, int numChars, Command * cmdPtr, int result, int traceFlags, int objc, Tcl_Obj *CONST objv[])); /* 170 */
- int (*tclCheckExecutionTraces) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * command, int numChars, Command * cmdPtr, int result, int traceFlags, int objc, Tcl_Obj *CONST objv[])); /* 171 */
- int (*tclInThreadExit) _ANSI_ARGS_((void)); /* 172 */
- int (*tclUniCharMatch) _ANSI_ARGS_((CONST Tcl_UniChar * string, int strLen, CONST Tcl_UniChar * pattern, int ptnLen, int nocase)); /* 173 */
-} TclIntStubs;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern TclIntStubs *tclIntStubsPtr;
-#ifdef __cplusplus
-}
-#endif
-
-#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS)
-
-/*
- * Inline function declarations:
- */
-
-/* Slot 0 is reserved */
-#ifndef TclAccessDeleteProc
-#define TclAccessDeleteProc \
- (tclIntStubsPtr->tclAccessDeleteProc) /* 1 */
-#endif
-#ifndef TclAccessInsertProc
-#define TclAccessInsertProc \
- (tclIntStubsPtr->tclAccessInsertProc) /* 2 */
-#endif
-#ifndef TclAllocateFreeObjects
-#define TclAllocateFreeObjects \
- (tclIntStubsPtr->tclAllocateFreeObjects) /* 3 */
-#endif
-/* Slot 4 is reserved */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-#ifndef TclCleanupChildren
-#define TclCleanupChildren \
- (tclIntStubsPtr->tclCleanupChildren) /* 5 */
-#endif
-#endif /* UNIX */
-#ifdef __WIN32__
-#ifndef TclCleanupChildren
-#define TclCleanupChildren \
- (tclIntStubsPtr->tclCleanupChildren) /* 5 */
-#endif
-#endif /* __WIN32__ */
-#ifndef TclCleanupCommand
-#define TclCleanupCommand \
- (tclIntStubsPtr->tclCleanupCommand) /* 6 */
-#endif
-#ifndef TclCopyAndCollapse
-#define TclCopyAndCollapse \
- (tclIntStubsPtr->tclCopyAndCollapse) /* 7 */
-#endif
-#ifndef TclCopyChannel
-#define TclCopyChannel \
- (tclIntStubsPtr->tclCopyChannel) /* 8 */
-#endif
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-#ifndef TclCreatePipeline
-#define TclCreatePipeline \
- (tclIntStubsPtr->tclCreatePipeline) /* 9 */
-#endif
-#endif /* UNIX */
-#ifdef __WIN32__
-#ifndef TclCreatePipeline
-#define TclCreatePipeline \
- (tclIntStubsPtr->tclCreatePipeline) /* 9 */
-#endif
-#endif /* __WIN32__ */
-#ifndef TclCreateProc
-#define TclCreateProc \
- (tclIntStubsPtr->tclCreateProc) /* 10 */
-#endif
-#ifndef TclDeleteCompiledLocalVars
-#define TclDeleteCompiledLocalVars \
- (tclIntStubsPtr->tclDeleteCompiledLocalVars) /* 11 */
-#endif
-#ifndef TclDeleteVars
-#define TclDeleteVars \
- (tclIntStubsPtr->tclDeleteVars) /* 12 */
-#endif
-#ifndef TclDoGlob
-#define TclDoGlob \
- (tclIntStubsPtr->tclDoGlob) /* 13 */
-#endif
-#ifndef TclDumpMemoryInfo
-#define TclDumpMemoryInfo \
- (tclIntStubsPtr->tclDumpMemoryInfo) /* 14 */
-#endif
-/* Slot 15 is reserved */
-#ifndef TclExprFloatError
-#define TclExprFloatError \
- (tclIntStubsPtr->tclExprFloatError) /* 16 */
-#endif
-/* Slot 17 is reserved */
-/* Slot 18 is reserved */
-/* Slot 19 is reserved */
-/* Slot 20 is reserved */
-/* Slot 21 is reserved */
-#ifndef TclFindElement
-#define TclFindElement \
- (tclIntStubsPtr->tclFindElement) /* 22 */
-#endif
-#ifndef TclFindProc
-#define TclFindProc \
- (tclIntStubsPtr->tclFindProc) /* 23 */
-#endif
-#ifndef TclFormatInt
-#define TclFormatInt \
- (tclIntStubsPtr->tclFormatInt) /* 24 */
-#endif
-#ifndef TclFreePackageInfo
-#define TclFreePackageInfo \
- (tclIntStubsPtr->tclFreePackageInfo) /* 25 */
-#endif
-/* Slot 26 is reserved */
-#ifndef TclGetDate
-#define TclGetDate \
- (tclIntStubsPtr->tclGetDate) /* 27 */
-#endif
-#ifndef TclpGetDefaultStdChannel
-#define TclpGetDefaultStdChannel \
- (tclIntStubsPtr->tclpGetDefaultStdChannel) /* 28 */
-#endif
-/* Slot 29 is reserved */
-/* Slot 30 is reserved */
-#ifndef TclGetExtension
-#define TclGetExtension \
- (tclIntStubsPtr->tclGetExtension) /* 31 */
-#endif
-#ifndef TclGetFrame
-#define TclGetFrame \
- (tclIntStubsPtr->tclGetFrame) /* 32 */
-#endif
-#ifndef TclGetInterpProc
-#define TclGetInterpProc \
- (tclIntStubsPtr->tclGetInterpProc) /* 33 */
-#endif
-#ifndef TclGetIntForIndex
-#define TclGetIntForIndex \
- (tclIntStubsPtr->tclGetIntForIndex) /* 34 */
-#endif
-/* Slot 35 is reserved */
-#ifndef TclGetLong
-#define TclGetLong \
- (tclIntStubsPtr->tclGetLong) /* 36 */
-#endif
-#ifndef TclGetLoadedPackages
-#define TclGetLoadedPackages \
- (tclIntStubsPtr->tclGetLoadedPackages) /* 37 */
-#endif
-#ifndef TclGetNamespaceForQualName
-#define TclGetNamespaceForQualName \
- (tclIntStubsPtr->tclGetNamespaceForQualName) /* 38 */
-#endif
-#ifndef TclGetObjInterpProc
-#define TclGetObjInterpProc \
- (tclIntStubsPtr->tclGetObjInterpProc) /* 39 */
-#endif
-#ifndef TclGetOpenMode
-#define TclGetOpenMode \
- (tclIntStubsPtr->tclGetOpenMode) /* 40 */
-#endif
-#ifndef TclGetOriginalCommand
-#define TclGetOriginalCommand \
- (tclIntStubsPtr->tclGetOriginalCommand) /* 41 */
-#endif
-#ifndef TclpGetUserHome
-#define TclpGetUserHome \
- (tclIntStubsPtr->tclpGetUserHome) /* 42 */
-#endif
-#ifndef TclGlobalInvoke
-#define TclGlobalInvoke \
- (tclIntStubsPtr->tclGlobalInvoke) /* 43 */
-#endif
-#ifndef TclGuessPackageName
-#define TclGuessPackageName \
- (tclIntStubsPtr->tclGuessPackageName) /* 44 */
-#endif
-#ifndef TclHideUnsafeCommands
-#define TclHideUnsafeCommands \
- (tclIntStubsPtr->tclHideUnsafeCommands) /* 45 */
-#endif
-#ifndef TclInExit
-#define TclInExit \
- (tclIntStubsPtr->tclInExit) /* 46 */
-#endif
-/* Slot 47 is reserved */
-/* Slot 48 is reserved */
-#ifndef TclIncrVar2
-#define TclIncrVar2 \
- (tclIntStubsPtr->tclIncrVar2) /* 49 */
-#endif
-#ifndef TclInitCompiledLocals
-#define TclInitCompiledLocals \
- (tclIntStubsPtr->tclInitCompiledLocals) /* 50 */
-#endif
-#ifndef TclInterpInit
-#define TclInterpInit \
- (tclIntStubsPtr->tclInterpInit) /* 51 */
-#endif
-#ifndef TclInvoke
-#define TclInvoke \
- (tclIntStubsPtr->tclInvoke) /* 52 */
-#endif
-#ifndef TclInvokeObjectCommand
-#define TclInvokeObjectCommand \
- (tclIntStubsPtr->tclInvokeObjectCommand) /* 53 */
-#endif
-#ifndef TclInvokeStringCommand
-#define TclInvokeStringCommand \
- (tclIntStubsPtr->tclInvokeStringCommand) /* 54 */
-#endif
-#ifndef TclIsProc
-#define TclIsProc \
- (tclIntStubsPtr->tclIsProc) /* 55 */
-#endif
-/* Slot 56 is reserved */
-/* Slot 57 is reserved */
-#ifndef TclLookupVar
-#define TclLookupVar \
- (tclIntStubsPtr->tclLookupVar) /* 58 */
-#endif
-/* Slot 59 is reserved */
-#ifndef TclNeedSpace
-#define TclNeedSpace \
- (tclIntStubsPtr->tclNeedSpace) /* 60 */
-#endif
-#ifndef TclNewProcBodyObj
-#define TclNewProcBodyObj \
- (tclIntStubsPtr->tclNewProcBodyObj) /* 61 */
-#endif
-#ifndef TclObjCommandComplete
-#define TclObjCommandComplete \
- (tclIntStubsPtr->tclObjCommandComplete) /* 62 */
-#endif
-#ifndef TclObjInterpProc
-#define TclObjInterpProc \
- (tclIntStubsPtr->tclObjInterpProc) /* 63 */
-#endif
-#ifndef TclObjInvoke
-#define TclObjInvoke \
- (tclIntStubsPtr->tclObjInvoke) /* 64 */
-#endif
-#ifndef TclObjInvokeGlobal
-#define TclObjInvokeGlobal \
- (tclIntStubsPtr->tclObjInvokeGlobal) /* 65 */
-#endif
-#ifndef TclOpenFileChannelDeleteProc
-#define TclOpenFileChannelDeleteProc \
- (tclIntStubsPtr->tclOpenFileChannelDeleteProc) /* 66 */
-#endif
-#ifndef TclOpenFileChannelInsertProc
-#define TclOpenFileChannelInsertProc \
- (tclIntStubsPtr->tclOpenFileChannelInsertProc) /* 67 */
-#endif
-/* Slot 68 is reserved */
-#ifndef TclpAlloc
-#define TclpAlloc \
- (tclIntStubsPtr->tclpAlloc) /* 69 */
-#endif
-/* Slot 70 is reserved */
-/* Slot 71 is reserved */
-/* Slot 72 is reserved */
-/* Slot 73 is reserved */
-#ifndef TclpFree
-#define TclpFree \
- (tclIntStubsPtr->tclpFree) /* 74 */
-#endif
-#ifndef TclpGetClicks
-#define TclpGetClicks \
- (tclIntStubsPtr->tclpGetClicks) /* 75 */
-#endif
-#ifndef TclpGetSeconds
-#define TclpGetSeconds \
- (tclIntStubsPtr->tclpGetSeconds) /* 76 */
-#endif
-#ifndef TclpGetTime
-#define TclpGetTime \
- (tclIntStubsPtr->tclpGetTime) /* 77 */
-#endif
-#ifndef TclpGetTimeZone
-#define TclpGetTimeZone \
- (tclIntStubsPtr->tclpGetTimeZone) /* 78 */
-#endif
-/* Slot 79 is reserved */
-/* Slot 80 is reserved */
-#ifndef TclpRealloc
-#define TclpRealloc \
- (tclIntStubsPtr->tclpRealloc) /* 81 */
-#endif
-/* Slot 82 is reserved */
-/* Slot 83 is reserved */
-/* Slot 84 is reserved */
-/* Slot 85 is reserved */
-/* Slot 86 is reserved */
-/* Slot 87 is reserved */
-#ifndef TclPrecTraceProc
-#define TclPrecTraceProc \
- (tclIntStubsPtr->tclPrecTraceProc) /* 88 */
-#endif
-#ifndef TclPreventAliasLoop
-#define TclPreventAliasLoop \
- (tclIntStubsPtr->tclPreventAliasLoop) /* 89 */
-#endif
-/* Slot 90 is reserved */
-#ifndef TclProcCleanupProc
-#define TclProcCleanupProc \
- (tclIntStubsPtr->tclProcCleanupProc) /* 91 */
-#endif
-#ifndef TclProcCompileProc
-#define TclProcCompileProc \
- (tclIntStubsPtr->tclProcCompileProc) /* 92 */
-#endif
-#ifndef TclProcDeleteProc
-#define TclProcDeleteProc \
- (tclIntStubsPtr->tclProcDeleteProc) /* 93 */
-#endif
-#ifndef TclProcInterpProc
-#define TclProcInterpProc \
- (tclIntStubsPtr->tclProcInterpProc) /* 94 */
-#endif
-/* Slot 95 is reserved */
-#ifndef TclRenameCommand
-#define TclRenameCommand \
- (tclIntStubsPtr->tclRenameCommand) /* 96 */
-#endif
-#ifndef TclResetShadowedCmdRefs
-#define TclResetShadowedCmdRefs \
- (tclIntStubsPtr->tclResetShadowedCmdRefs) /* 97 */
-#endif
-#ifndef TclServiceIdle
-#define TclServiceIdle \
- (tclIntStubsPtr->tclServiceIdle) /* 98 */
-#endif
-/* Slot 99 is reserved */
-/* Slot 100 is reserved */
-#ifndef TclSetPreInitScript
-#define TclSetPreInitScript \
- (tclIntStubsPtr->tclSetPreInitScript) /* 101 */
-#endif
-#ifndef TclSetupEnv
-#define TclSetupEnv \
- (tclIntStubsPtr->tclSetupEnv) /* 102 */
-#endif
-#ifndef TclSockGetPort
-#define TclSockGetPort \
- (tclIntStubsPtr->tclSockGetPort) /* 103 */
-#endif
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-#ifndef TclSockMinimumBuffers
-#define TclSockMinimumBuffers \
- (tclIntStubsPtr->tclSockMinimumBuffers) /* 104 */
-#endif
-#endif /* UNIX */
-#ifdef __WIN32__
-#ifndef TclSockMinimumBuffers
-#define TclSockMinimumBuffers \
- (tclIntStubsPtr->tclSockMinimumBuffers) /* 104 */
-#endif
-#endif /* __WIN32__ */
-/* Slot 105 is reserved */
-#ifndef TclStatDeleteProc
-#define TclStatDeleteProc \
- (tclIntStubsPtr->tclStatDeleteProc) /* 106 */
-#endif
-#ifndef TclStatInsertProc
-#define TclStatInsertProc \
- (tclIntStubsPtr->tclStatInsertProc) /* 107 */
-#endif
-#ifndef TclTeardownNamespace
-#define TclTeardownNamespace \
- (tclIntStubsPtr->tclTeardownNamespace) /* 108 */
-#endif
-#ifndef TclUpdateReturnInfo
-#define TclUpdateReturnInfo \
- (tclIntStubsPtr->tclUpdateReturnInfo) /* 109 */
-#endif
-/* Slot 110 is reserved */
-#ifndef Tcl_AddInterpResolvers
-#define Tcl_AddInterpResolvers \
- (tclIntStubsPtr->tcl_AddInterpResolvers) /* 111 */
-#endif
-#ifndef Tcl_AppendExportList
-#define Tcl_AppendExportList \
- (tclIntStubsPtr->tcl_AppendExportList) /* 112 */
-#endif
-#ifndef Tcl_CreateNamespace
-#define Tcl_CreateNamespace \
- (tclIntStubsPtr->tcl_CreateNamespace) /* 113 */
-#endif
-#ifndef Tcl_DeleteNamespace
-#define Tcl_DeleteNamespace \
- (tclIntStubsPtr->tcl_DeleteNamespace) /* 114 */
-#endif
-#ifndef Tcl_Export
-#define Tcl_Export \
- (tclIntStubsPtr->tcl_Export) /* 115 */
-#endif
-#ifndef Tcl_FindCommand
-#define Tcl_FindCommand \
- (tclIntStubsPtr->tcl_FindCommand) /* 116 */
-#endif
-#ifndef Tcl_FindNamespace
-#define Tcl_FindNamespace \
- (tclIntStubsPtr->tcl_FindNamespace) /* 117 */
-#endif
-#ifndef Tcl_GetInterpResolvers
-#define Tcl_GetInterpResolvers \
- (tclIntStubsPtr->tcl_GetInterpResolvers) /* 118 */
-#endif
-#ifndef Tcl_GetNamespaceResolvers
-#define Tcl_GetNamespaceResolvers \
- (tclIntStubsPtr->tcl_GetNamespaceResolvers) /* 119 */
-#endif
-#ifndef Tcl_FindNamespaceVar
-#define Tcl_FindNamespaceVar \
- (tclIntStubsPtr->tcl_FindNamespaceVar) /* 120 */
-#endif
-#ifndef Tcl_ForgetImport
-#define Tcl_ForgetImport \
- (tclIntStubsPtr->tcl_ForgetImport) /* 121 */
-#endif
-#ifndef Tcl_GetCommandFromObj
-#define Tcl_GetCommandFromObj \
- (tclIntStubsPtr->tcl_GetCommandFromObj) /* 122 */
-#endif
-#ifndef Tcl_GetCommandFullName
-#define Tcl_GetCommandFullName \
- (tclIntStubsPtr->tcl_GetCommandFullName) /* 123 */
-#endif
-#ifndef Tcl_GetCurrentNamespace
-#define Tcl_GetCurrentNamespace \
- (tclIntStubsPtr->tcl_GetCurrentNamespace) /* 124 */
-#endif
-#ifndef Tcl_GetGlobalNamespace
-#define Tcl_GetGlobalNamespace \
- (tclIntStubsPtr->tcl_GetGlobalNamespace) /* 125 */
-#endif
-#ifndef Tcl_GetVariableFullName
-#define Tcl_GetVariableFullName \
- (tclIntStubsPtr->tcl_GetVariableFullName) /* 126 */
-#endif
-#ifndef Tcl_Import
-#define Tcl_Import \
- (tclIntStubsPtr->tcl_Import) /* 127 */
-#endif
-#ifndef Tcl_PopCallFrame
-#define Tcl_PopCallFrame \
- (tclIntStubsPtr->tcl_PopCallFrame) /* 128 */
-#endif
-#ifndef Tcl_PushCallFrame
-#define Tcl_PushCallFrame \
- (tclIntStubsPtr->tcl_PushCallFrame) /* 129 */
-#endif
-#ifndef Tcl_RemoveInterpResolvers
-#define Tcl_RemoveInterpResolvers \
- (tclIntStubsPtr->tcl_RemoveInterpResolvers) /* 130 */
-#endif
-#ifndef Tcl_SetNamespaceResolvers
-#define Tcl_SetNamespaceResolvers \
- (tclIntStubsPtr->tcl_SetNamespaceResolvers) /* 131 */
-#endif
-#ifndef TclpHasSockets
-#define TclpHasSockets \
- (tclIntStubsPtr->tclpHasSockets) /* 132 */
-#endif
-#ifndef TclpGetDate
-#define TclpGetDate \
- (tclIntStubsPtr->tclpGetDate) /* 133 */
-#endif
-#ifndef TclpStrftime
-#define TclpStrftime \
- (tclIntStubsPtr->tclpStrftime) /* 134 */
-#endif
-#ifndef TclpCheckStackSpace
-#define TclpCheckStackSpace \
- (tclIntStubsPtr->tclpCheckStackSpace) /* 135 */
-#endif
-/* Slot 136 is reserved */
-/* Slot 137 is reserved */
-#ifndef TclGetEnv
-#define TclGetEnv \
- (tclIntStubsPtr->tclGetEnv) /* 138 */
-#endif
-/* Slot 139 is reserved */
-#ifndef TclLooksLikeInt
-#define TclLooksLikeInt \
- (tclIntStubsPtr->tclLooksLikeInt) /* 140 */
-#endif
-#ifndef TclpGetCwd
-#define TclpGetCwd \
- (tclIntStubsPtr->tclpGetCwd) /* 141 */
-#endif
-#ifndef TclSetByteCodeFromAny
-#define TclSetByteCodeFromAny \
- (tclIntStubsPtr->tclSetByteCodeFromAny) /* 142 */
-#endif
-#ifndef TclAddLiteralObj
-#define TclAddLiteralObj \
- (tclIntStubsPtr->tclAddLiteralObj) /* 143 */
-#endif
-#ifndef TclHideLiteral
-#define TclHideLiteral \
- (tclIntStubsPtr->tclHideLiteral) /* 144 */
-#endif
-#ifndef TclGetAuxDataType
-#define TclGetAuxDataType \
- (tclIntStubsPtr->tclGetAuxDataType) /* 145 */
-#endif
-#ifndef TclHandleCreate
-#define TclHandleCreate \
- (tclIntStubsPtr->tclHandleCreate) /* 146 */
-#endif
-#ifndef TclHandleFree
-#define TclHandleFree \
- (tclIntStubsPtr->tclHandleFree) /* 147 */
-#endif
-#ifndef TclHandlePreserve
-#define TclHandlePreserve \
- (tclIntStubsPtr->tclHandlePreserve) /* 148 */
-#endif
-#ifndef TclHandleRelease
-#define TclHandleRelease \
- (tclIntStubsPtr->tclHandleRelease) /* 149 */
-#endif
-#ifndef TclRegAbout
-#define TclRegAbout \
- (tclIntStubsPtr->tclRegAbout) /* 150 */
-#endif
-#ifndef TclRegExpRangeUniChar
-#define TclRegExpRangeUniChar \
- (tclIntStubsPtr->tclRegExpRangeUniChar) /* 151 */
-#endif
-#ifndef TclSetLibraryPath
-#define TclSetLibraryPath \
- (tclIntStubsPtr->tclSetLibraryPath) /* 152 */
-#endif
-#ifndef TclGetLibraryPath
-#define TclGetLibraryPath \
- (tclIntStubsPtr->tclGetLibraryPath) /* 153 */
-#endif
-/* Slot 154 is reserved */
-/* Slot 155 is reserved */
-#ifndef TclRegError
-#define TclRegError \
- (tclIntStubsPtr->tclRegError) /* 156 */
-#endif
-#ifndef TclVarTraceExists
-#define TclVarTraceExists \
- (tclIntStubsPtr->tclVarTraceExists) /* 157 */
-#endif
-#ifndef TclSetStartupScriptFileName
-#define TclSetStartupScriptFileName \
- (tclIntStubsPtr->tclSetStartupScriptFileName) /* 158 */
-#endif
-#ifndef TclGetStartupScriptFileName
-#define TclGetStartupScriptFileName \
- (tclIntStubsPtr->tclGetStartupScriptFileName) /* 159 */
-#endif
-/* Slot 160 is reserved */
-#ifndef TclChannelTransform
-#define TclChannelTransform \
- (tclIntStubsPtr->tclChannelTransform) /* 161 */
-#endif
-#ifndef TclChannelEventScriptInvoker
-#define TclChannelEventScriptInvoker \
- (tclIntStubsPtr->tclChannelEventScriptInvoker) /* 162 */
-#endif
-#ifndef TclGetInstructionTable
-#define TclGetInstructionTable \
- (tclIntStubsPtr->tclGetInstructionTable) /* 163 */
-#endif
-#ifndef TclExpandCodeArray
-#define TclExpandCodeArray \
- (tclIntStubsPtr->tclExpandCodeArray) /* 164 */
-#endif
-#ifndef TclpSetInitialEncodings
-#define TclpSetInitialEncodings \
- (tclIntStubsPtr->tclpSetInitialEncodings) /* 165 */
-#endif
-#ifndef TclListObjSetElement
-#define TclListObjSetElement \
- (tclIntStubsPtr->tclListObjSetElement) /* 166 */
-#endif
-#ifndef TclSetStartupScriptPath
-#define TclSetStartupScriptPath \
- (tclIntStubsPtr->tclSetStartupScriptPath) /* 167 */
-#endif
-#ifndef TclGetStartupScriptPath
-#define TclGetStartupScriptPath \
- (tclIntStubsPtr->tclGetStartupScriptPath) /* 168 */
-#endif
-#ifndef TclpUtfNcmp2
-#define TclpUtfNcmp2 \
- (tclIntStubsPtr->tclpUtfNcmp2) /* 169 */
-#endif
-#ifndef TclCheckInterpTraces
-#define TclCheckInterpTraces \
- (tclIntStubsPtr->tclCheckInterpTraces) /* 170 */
-#endif
-#ifndef TclCheckExecutionTraces
-#define TclCheckExecutionTraces \
- (tclIntStubsPtr->tclCheckExecutionTraces) /* 171 */
-#endif
-#ifndef TclInThreadExit
-#define TclInThreadExit \
- (tclIntStubsPtr->tclInThreadExit) /* 172 */
-#endif
-#ifndef TclUniCharMatch
-#define TclUniCharMatch \
- (tclIntStubsPtr->tclUniCharMatch) /* 173 */
-#endif
-
-#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */
-
-/* !END!: Do not edit above this line. */
-
-#endif /* _TCLINTDECLS */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tclIntPlatDecls.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tclIntPlatDecls.h
deleted file mode 100644
index d69d3e9eead..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tclIntPlatDecls.h
+++ /dev/null
@@ -1,585 +0,0 @@
-/*
- * tclIntPlatDecls.h --
- *
- * This file contains the declarations for all platform dependent
- * unsupported functions that are exported by the Tcl library. These
- * interfaces are not guaranteed to remain the same between
- * versions. Use at your own risk.
- *
- * Copyright (c) 1998-1999 by Scriptics Corporation.
- * All rights reserved.
- *
- * RCS: @(#) $Id: tclIntPlatDecls.h,v 1.19 2002/12/06 23:22:59 hobbs Exp $
- */
-
-#ifndef _TCLINTPLATDECLS
-#define _TCLINTPLATDECLS
-
-/*
- * WARNING: This file is automatically generated by the tools/genStubs.tcl
- * script. Any modifications to the function declarations below should be made
- * in the generic/tclInt.decls script.
- */
-
-/* !BEGIN!: Do not edit below this line. */
-
-/*
- * Exported function declarations:
- */
-
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-/* 0 */
-EXTERN void TclGetAndDetachPids _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Channel chan));
-/* 1 */
-EXTERN int TclpCloseFile _ANSI_ARGS_((TclFile file));
-/* 2 */
-EXTERN Tcl_Channel TclpCreateCommandChannel _ANSI_ARGS_((
- TclFile readFile, TclFile writeFile,
- TclFile errorFile, int numPids,
- Tcl_Pid * pidPtr));
-/* 3 */
-EXTERN int TclpCreatePipe _ANSI_ARGS_((TclFile * readPipe,
- TclFile * writePipe));
-/* 4 */
-EXTERN int TclpCreateProcess _ANSI_ARGS_((Tcl_Interp * interp,
- int argc, Tcl_Obj *CONST *objv,
- TclFile inputFile, TclFile outputFile,
- TclFile errorFile, Tcl_Pid * pidPtr));
-/* Slot 5 is reserved */
-/* 6 */
-EXTERN TclFile TclpMakeFile _ANSI_ARGS_((Tcl_Channel channel,
- int direction));
-/* 7 */
-EXTERN TclFile TclpOpenFile _ANSI_ARGS_((CONST char * fname,
- int mode));
-/* 8 */
-EXTERN int TclUnixWaitForFile _ANSI_ARGS_((int fd, int mask,
- int timeout));
-/* 9 */
-EXTERN TclFile TclpCreateTempFile _ANSI_ARGS_((
- CONST char * contents));
-/* 10 */
-EXTERN Tcl_DirEntry * TclpReaddir _ANSI_ARGS_((DIR * dir));
-/* 11 */
-EXTERN struct tm * TclpLocaltime _ANSI_ARGS_((time_t * clock));
-/* 12 */
-EXTERN struct tm * TclpGmtime _ANSI_ARGS_((time_t * clock));
-/* 13 */
-EXTERN char * TclpInetNtoa _ANSI_ARGS_((struct in_addr addr));
-#endif /* UNIX */
-#ifdef __WIN32__
-/* 0 */
-EXTERN void TclWinConvertError _ANSI_ARGS_((DWORD errCode));
-/* 1 */
-EXTERN void TclWinConvertWSAError _ANSI_ARGS_((DWORD errCode));
-/* 2 */
-EXTERN struct servent * TclWinGetServByName _ANSI_ARGS_((CONST char * nm,
- CONST char * proto));
-/* 3 */
-EXTERN int TclWinGetSockOpt _ANSI_ARGS_((SOCKET s, int level,
- int optname, char FAR * optval,
- int FAR * optlen));
-/* 4 */
-EXTERN HINSTANCE TclWinGetTclInstance _ANSI_ARGS_((void));
-/* Slot 5 is reserved */
-/* 6 */
-EXTERN u_short TclWinNToHS _ANSI_ARGS_((u_short ns));
-/* 7 */
-EXTERN int TclWinSetSockOpt _ANSI_ARGS_((SOCKET s, int level,
- int optname, CONST char FAR * optval,
- int optlen));
-/* 8 */
-EXTERN unsigned long TclpGetPid _ANSI_ARGS_((Tcl_Pid pid));
-/* 9 */
-EXTERN int TclWinGetPlatformId _ANSI_ARGS_((void));
-/* Slot 10 is reserved */
-/* 11 */
-EXTERN void TclGetAndDetachPids _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Channel chan));
-/* 12 */
-EXTERN int TclpCloseFile _ANSI_ARGS_((TclFile file));
-/* 13 */
-EXTERN Tcl_Channel TclpCreateCommandChannel _ANSI_ARGS_((
- TclFile readFile, TclFile writeFile,
- TclFile errorFile, int numPids,
- Tcl_Pid * pidPtr));
-/* 14 */
-EXTERN int TclpCreatePipe _ANSI_ARGS_((TclFile * readPipe,
- TclFile * writePipe));
-/* 15 */
-EXTERN int TclpCreateProcess _ANSI_ARGS_((Tcl_Interp * interp,
- int argc, Tcl_Obj *CONST *objv,
- TclFile inputFile, TclFile outputFile,
- TclFile errorFile, Tcl_Pid * pidPtr));
-/* Slot 16 is reserved */
-/* Slot 17 is reserved */
-/* 18 */
-EXTERN TclFile TclpMakeFile _ANSI_ARGS_((Tcl_Channel channel,
- int direction));
-/* 19 */
-EXTERN TclFile TclpOpenFile _ANSI_ARGS_((CONST char * fname,
- int mode));
-/* 20 */
-EXTERN void TclWinAddProcess _ANSI_ARGS_((HANDLE hProcess,
- DWORD id));
-/* Slot 21 is reserved */
-/* 22 */
-EXTERN TclFile TclpCreateTempFile _ANSI_ARGS_((
- CONST char * contents));
-/* 23 */
-EXTERN char * TclpGetTZName _ANSI_ARGS_((int isdst));
-/* 24 */
-EXTERN char * TclWinNoBackslash _ANSI_ARGS_((char * path));
-/* 25 */
-EXTERN TclPlatformType * TclWinGetPlatform _ANSI_ARGS_((void));
-/* 26 */
-EXTERN void TclWinSetInterfaces _ANSI_ARGS_((int wide));
-/* 27 */
-EXTERN void TclWinFlushDirtyChannels _ANSI_ARGS_((void));
-/* 28 */
-EXTERN void TclWinResetInterfaces _ANSI_ARGS_((void));
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-/* 0 */
-EXTERN VOID * TclpSysAlloc _ANSI_ARGS_((long size, int isBin));
-/* 1 */
-EXTERN void TclpSysFree _ANSI_ARGS_((VOID * ptr));
-/* 2 */
-EXTERN VOID * TclpSysRealloc _ANSI_ARGS_((VOID * cp,
- unsigned int size));
-/* 3 */
-EXTERN void TclpExit _ANSI_ARGS_((int status));
-/* 4 */
-EXTERN int FSpGetDefaultDir _ANSI_ARGS_((FSSpecPtr theSpec));
-/* 5 */
-EXTERN int FSpSetDefaultDir _ANSI_ARGS_((FSSpecPtr theSpec));
-/* 6 */
-EXTERN OSErr FSpFindFolder _ANSI_ARGS_((short vRefNum,
- OSType folderType, Boolean createFolder,
- FSSpec * spec));
-/* 7 */
-EXTERN void GetGlobalMouseTcl _ANSI_ARGS_((Point * mouse));
-/* 8 */
-EXTERN pascal OSErr FSpGetDirectoryIDTcl _ANSI_ARGS_((
- CONST FSSpec * spec, long * theDirID,
- Boolean * isDirectory));
-/* 9 */
-EXTERN pascal short FSpOpenResFileCompatTcl _ANSI_ARGS_((
- CONST FSSpec * spec, SignedByte permission));
-/* 10 */
-EXTERN pascal void FSpCreateResFileCompatTcl _ANSI_ARGS_((
- CONST FSSpec * spec, OSType creator,
- OSType fileType, ScriptCode scriptTag));
-/* 11 */
-EXTERN int FSpLocationFromPath _ANSI_ARGS_((int length,
- CONST char * path, FSSpecPtr theSpec));
-/* 12 */
-EXTERN OSErr FSpPathFromLocation _ANSI_ARGS_((FSSpecPtr theSpec,
- int * length, Handle * fullPath));
-/* 13 */
-EXTERN void TclMacExitHandler _ANSI_ARGS_((void));
-/* 14 */
-EXTERN void TclMacInitExitToShell _ANSI_ARGS_((int usePatch));
-/* 15 */
-EXTERN OSErr TclMacInstallExitToShellPatch _ANSI_ARGS_((
- ExitToShellProcPtr newProc));
-/* 16 */
-EXTERN int TclMacOSErrorToPosixError _ANSI_ARGS_((int error));
-/* 17 */
-EXTERN void TclMacRemoveTimer _ANSI_ARGS_((void * timerToken));
-/* 18 */
-EXTERN void * TclMacStartTimer _ANSI_ARGS_((long ms));
-/* 19 */
-EXTERN int TclMacTimerExpired _ANSI_ARGS_((void * timerToken));
-/* 20 */
-EXTERN int TclMacRegisterResourceFork _ANSI_ARGS_((
- short fileRef, Tcl_Obj * tokenPtr,
- int insert));
-/* 21 */
-EXTERN short TclMacUnRegisterResourceFork _ANSI_ARGS_((
- char * tokenPtr, Tcl_Obj * resultPtr));
-/* 22 */
-EXTERN int TclMacCreateEnv _ANSI_ARGS_((void));
-/* 23 */
-EXTERN FILE * TclMacFOpenHack _ANSI_ARGS_((CONST char * path,
- CONST char * mode));
-/* 24 */
-EXTERN char * TclpGetTZName _ANSI_ARGS_((int isdst));
-/* 25 */
-EXTERN int TclMacChmod _ANSI_ARGS_((CONST char * path, int mode));
-/* 26 */
-EXTERN int FSpLLocationFromPath _ANSI_ARGS_((int length,
- CONST char * path, FSSpecPtr theSpec));
-#endif /* MAC_TCL */
-
-typedef struct TclIntPlatStubs {
- int magic;
- struct TclIntPlatStubHooks *hooks;
-
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void (*tclGetAndDetachPids) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan)); /* 0 */
- int (*tclpCloseFile) _ANSI_ARGS_((TclFile file)); /* 1 */
- Tcl_Channel (*tclpCreateCommandChannel) _ANSI_ARGS_((TclFile readFile, TclFile writeFile, TclFile errorFile, int numPids, Tcl_Pid * pidPtr)); /* 2 */
- int (*tclpCreatePipe) _ANSI_ARGS_((TclFile * readPipe, TclFile * writePipe)); /* 3 */
- int (*tclpCreateProcess) _ANSI_ARGS_((Tcl_Interp * interp, int argc, Tcl_Obj *CONST *objv, TclFile inputFile, TclFile outputFile, TclFile errorFile, Tcl_Pid * pidPtr)); /* 4 */
- void *reserved5;
- TclFile (*tclpMakeFile) _ANSI_ARGS_((Tcl_Channel channel, int direction)); /* 6 */
- TclFile (*tclpOpenFile) _ANSI_ARGS_((CONST char * fname, int mode)); /* 7 */
- int (*tclUnixWaitForFile) _ANSI_ARGS_((int fd, int mask, int timeout)); /* 8 */
- TclFile (*tclpCreateTempFile) _ANSI_ARGS_((CONST char * contents)); /* 9 */
- Tcl_DirEntry * (*tclpReaddir) _ANSI_ARGS_((DIR * dir)); /* 10 */
- struct tm * (*tclpLocaltime) _ANSI_ARGS_((time_t * clock)); /* 11 */
- struct tm * (*tclpGmtime) _ANSI_ARGS_((time_t * clock)); /* 12 */
- char * (*tclpInetNtoa) _ANSI_ARGS_((struct in_addr addr)); /* 13 */
-#endif /* UNIX */
-#ifdef __WIN32__
- void (*tclWinConvertError) _ANSI_ARGS_((DWORD errCode)); /* 0 */
- void (*tclWinConvertWSAError) _ANSI_ARGS_((DWORD errCode)); /* 1 */
- struct servent * (*tclWinGetServByName) _ANSI_ARGS_((CONST char * nm, CONST char * proto)); /* 2 */
- int (*tclWinGetSockOpt) _ANSI_ARGS_((SOCKET s, int level, int optname, char FAR * optval, int FAR * optlen)); /* 3 */
- HINSTANCE (*tclWinGetTclInstance) _ANSI_ARGS_((void)); /* 4 */
- void *reserved5;
- u_short (*tclWinNToHS) _ANSI_ARGS_((u_short ns)); /* 6 */
- int (*tclWinSetSockOpt) _ANSI_ARGS_((SOCKET s, int level, int optname, CONST char FAR * optval, int optlen)); /* 7 */
- unsigned long (*tclpGetPid) _ANSI_ARGS_((Tcl_Pid pid)); /* 8 */
- int (*tclWinGetPlatformId) _ANSI_ARGS_((void)); /* 9 */
- void *reserved10;
- void (*tclGetAndDetachPids) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan)); /* 11 */
- int (*tclpCloseFile) _ANSI_ARGS_((TclFile file)); /* 12 */
- Tcl_Channel (*tclpCreateCommandChannel) _ANSI_ARGS_((TclFile readFile, TclFile writeFile, TclFile errorFile, int numPids, Tcl_Pid * pidPtr)); /* 13 */
- int (*tclpCreatePipe) _ANSI_ARGS_((TclFile * readPipe, TclFile * writePipe)); /* 14 */
- int (*tclpCreateProcess) _ANSI_ARGS_((Tcl_Interp * interp, int argc, Tcl_Obj *CONST *objv, TclFile inputFile, TclFile outputFile, TclFile errorFile, Tcl_Pid * pidPtr)); /* 15 */
- void *reserved16;
- void *reserved17;
- TclFile (*tclpMakeFile) _ANSI_ARGS_((Tcl_Channel channel, int direction)); /* 18 */
- TclFile (*tclpOpenFile) _ANSI_ARGS_((CONST char * fname, int mode)); /* 19 */
- void (*tclWinAddProcess) _ANSI_ARGS_((HANDLE hProcess, DWORD id)); /* 20 */
- void *reserved21;
- TclFile (*tclpCreateTempFile) _ANSI_ARGS_((CONST char * contents)); /* 22 */
- char * (*tclpGetTZName) _ANSI_ARGS_((int isdst)); /* 23 */
- char * (*tclWinNoBackslash) _ANSI_ARGS_((char * path)); /* 24 */
- TclPlatformType * (*tclWinGetPlatform) _ANSI_ARGS_((void)); /* 25 */
- void (*tclWinSetInterfaces) _ANSI_ARGS_((int wide)); /* 26 */
- void (*tclWinFlushDirtyChannels) _ANSI_ARGS_((void)); /* 27 */
- void (*tclWinResetInterfaces) _ANSI_ARGS_((void)); /* 28 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- VOID * (*tclpSysAlloc) _ANSI_ARGS_((long size, int isBin)); /* 0 */
- void (*tclpSysFree) _ANSI_ARGS_((VOID * ptr)); /* 1 */
- VOID * (*tclpSysRealloc) _ANSI_ARGS_((VOID * cp, unsigned int size)); /* 2 */
- void (*tclpExit) _ANSI_ARGS_((int status)); /* 3 */
- int (*fSpGetDefaultDir) _ANSI_ARGS_((FSSpecPtr theSpec)); /* 4 */
- int (*fSpSetDefaultDir) _ANSI_ARGS_((FSSpecPtr theSpec)); /* 5 */
- OSErr (*fSpFindFolder) _ANSI_ARGS_((short vRefNum, OSType folderType, Boolean createFolder, FSSpec * spec)); /* 6 */
- void (*getGlobalMouseTcl) _ANSI_ARGS_((Point * mouse)); /* 7 */
- pascal OSErr (*fSpGetDirectoryIDTcl) _ANSI_ARGS_((CONST FSSpec * spec, long * theDirID, Boolean * isDirectory)); /* 8 */
- pascal short (*fSpOpenResFileCompatTcl) _ANSI_ARGS_((CONST FSSpec * spec, SignedByte permission)); /* 9 */
- pascal void (*fSpCreateResFileCompatTcl) _ANSI_ARGS_((CONST FSSpec * spec, OSType creator, OSType fileType, ScriptCode scriptTag)); /* 10 */
- int (*fSpLocationFromPath) _ANSI_ARGS_((int length, CONST char * path, FSSpecPtr theSpec)); /* 11 */
- OSErr (*fSpPathFromLocation) _ANSI_ARGS_((FSSpecPtr theSpec, int * length, Handle * fullPath)); /* 12 */
- void (*tclMacExitHandler) _ANSI_ARGS_((void)); /* 13 */
- void (*tclMacInitExitToShell) _ANSI_ARGS_((int usePatch)); /* 14 */
- OSErr (*tclMacInstallExitToShellPatch) _ANSI_ARGS_((ExitToShellProcPtr newProc)); /* 15 */
- int (*tclMacOSErrorToPosixError) _ANSI_ARGS_((int error)); /* 16 */
- void (*tclMacRemoveTimer) _ANSI_ARGS_((void * timerToken)); /* 17 */
- void * (*tclMacStartTimer) _ANSI_ARGS_((long ms)); /* 18 */
- int (*tclMacTimerExpired) _ANSI_ARGS_((void * timerToken)); /* 19 */
- int (*tclMacRegisterResourceFork) _ANSI_ARGS_((short fileRef, Tcl_Obj * tokenPtr, int insert)); /* 20 */
- short (*tclMacUnRegisterResourceFork) _ANSI_ARGS_((char * tokenPtr, Tcl_Obj * resultPtr)); /* 21 */
- int (*tclMacCreateEnv) _ANSI_ARGS_((void)); /* 22 */
- FILE * (*tclMacFOpenHack) _ANSI_ARGS_((CONST char * path, CONST char * mode)); /* 23 */
- char * (*tclpGetTZName) _ANSI_ARGS_((int isdst)); /* 24 */
- int (*tclMacChmod) _ANSI_ARGS_((CONST char * path, int mode)); /* 25 */
- int (*fSpLLocationFromPath) _ANSI_ARGS_((int length, CONST char * path, FSSpecPtr theSpec)); /* 26 */
-#endif /* MAC_TCL */
-} TclIntPlatStubs;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern TclIntPlatStubs *tclIntPlatStubsPtr;
-#ifdef __cplusplus
-}
-#endif
-
-#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS)
-
-/*
- * Inline function declarations:
- */
-
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
-#ifndef TclGetAndDetachPids
-#define TclGetAndDetachPids \
- (tclIntPlatStubsPtr->tclGetAndDetachPids) /* 0 */
-#endif
-#ifndef TclpCloseFile
-#define TclpCloseFile \
- (tclIntPlatStubsPtr->tclpCloseFile) /* 1 */
-#endif
-#ifndef TclpCreateCommandChannel
-#define TclpCreateCommandChannel \
- (tclIntPlatStubsPtr->tclpCreateCommandChannel) /* 2 */
-#endif
-#ifndef TclpCreatePipe
-#define TclpCreatePipe \
- (tclIntPlatStubsPtr->tclpCreatePipe) /* 3 */
-#endif
-#ifndef TclpCreateProcess
-#define TclpCreateProcess \
- (tclIntPlatStubsPtr->tclpCreateProcess) /* 4 */
-#endif
-/* Slot 5 is reserved */
-#ifndef TclpMakeFile
-#define TclpMakeFile \
- (tclIntPlatStubsPtr->tclpMakeFile) /* 6 */
-#endif
-#ifndef TclpOpenFile
-#define TclpOpenFile \
- (tclIntPlatStubsPtr->tclpOpenFile) /* 7 */
-#endif
-#ifndef TclUnixWaitForFile
-#define TclUnixWaitForFile \
- (tclIntPlatStubsPtr->tclUnixWaitForFile) /* 8 */
-#endif
-#ifndef TclpCreateTempFile
-#define TclpCreateTempFile \
- (tclIntPlatStubsPtr->tclpCreateTempFile) /* 9 */
-#endif
-#ifndef TclpReaddir
-#define TclpReaddir \
- (tclIntPlatStubsPtr->tclpReaddir) /* 10 */
-#endif
-#ifndef TclpLocaltime
-#define TclpLocaltime \
- (tclIntPlatStubsPtr->tclpLocaltime) /* 11 */
-#endif
-#ifndef TclpGmtime
-#define TclpGmtime \
- (tclIntPlatStubsPtr->tclpGmtime) /* 12 */
-#endif
-#ifndef TclpInetNtoa
-#define TclpInetNtoa \
- (tclIntPlatStubsPtr->tclpInetNtoa) /* 13 */
-#endif
-#endif /* UNIX */
-#ifdef __WIN32__
-#ifndef TclWinConvertError
-#define TclWinConvertError \
- (tclIntPlatStubsPtr->tclWinConvertError) /* 0 */
-#endif
-#ifndef TclWinConvertWSAError
-#define TclWinConvertWSAError \
- (tclIntPlatStubsPtr->tclWinConvertWSAError) /* 1 */
-#endif
-#ifndef TclWinGetServByName
-#define TclWinGetServByName \
- (tclIntPlatStubsPtr->tclWinGetServByName) /* 2 */
-#endif
-#ifndef TclWinGetSockOpt
-#define TclWinGetSockOpt \
- (tclIntPlatStubsPtr->tclWinGetSockOpt) /* 3 */
-#endif
-#ifndef TclWinGetTclInstance
-#define TclWinGetTclInstance \
- (tclIntPlatStubsPtr->tclWinGetTclInstance) /* 4 */
-#endif
-/* Slot 5 is reserved */
-#ifndef TclWinNToHS
-#define TclWinNToHS \
- (tclIntPlatStubsPtr->tclWinNToHS) /* 6 */
-#endif
-#ifndef TclWinSetSockOpt
-#define TclWinSetSockOpt \
- (tclIntPlatStubsPtr->tclWinSetSockOpt) /* 7 */
-#endif
-#ifndef TclpGetPid
-#define TclpGetPid \
- (tclIntPlatStubsPtr->tclpGetPid) /* 8 */
-#endif
-#ifndef TclWinGetPlatformId
-#define TclWinGetPlatformId \
- (tclIntPlatStubsPtr->tclWinGetPlatformId) /* 9 */
-#endif
-/* Slot 10 is reserved */
-#ifndef TclGetAndDetachPids
-#define TclGetAndDetachPids \
- (tclIntPlatStubsPtr->tclGetAndDetachPids) /* 11 */
-#endif
-#ifndef TclpCloseFile
-#define TclpCloseFile \
- (tclIntPlatStubsPtr->tclpCloseFile) /* 12 */
-#endif
-#ifndef TclpCreateCommandChannel
-#define TclpCreateCommandChannel \
- (tclIntPlatStubsPtr->tclpCreateCommandChannel) /* 13 */
-#endif
-#ifndef TclpCreatePipe
-#define TclpCreatePipe \
- (tclIntPlatStubsPtr->tclpCreatePipe) /* 14 */
-#endif
-#ifndef TclpCreateProcess
-#define TclpCreateProcess \
- (tclIntPlatStubsPtr->tclpCreateProcess) /* 15 */
-#endif
-/* Slot 16 is reserved */
-/* Slot 17 is reserved */
-#ifndef TclpMakeFile
-#define TclpMakeFile \
- (tclIntPlatStubsPtr->tclpMakeFile) /* 18 */
-#endif
-#ifndef TclpOpenFile
-#define TclpOpenFile \
- (tclIntPlatStubsPtr->tclpOpenFile) /* 19 */
-#endif
-#ifndef TclWinAddProcess
-#define TclWinAddProcess \
- (tclIntPlatStubsPtr->tclWinAddProcess) /* 20 */
-#endif
-/* Slot 21 is reserved */
-#ifndef TclpCreateTempFile
-#define TclpCreateTempFile \
- (tclIntPlatStubsPtr->tclpCreateTempFile) /* 22 */
-#endif
-#ifndef TclpGetTZName
-#define TclpGetTZName \
- (tclIntPlatStubsPtr->tclpGetTZName) /* 23 */
-#endif
-#ifndef TclWinNoBackslash
-#define TclWinNoBackslash \
- (tclIntPlatStubsPtr->tclWinNoBackslash) /* 24 */
-#endif
-#ifndef TclWinGetPlatform
-#define TclWinGetPlatform \
- (tclIntPlatStubsPtr->tclWinGetPlatform) /* 25 */
-#endif
-#ifndef TclWinSetInterfaces
-#define TclWinSetInterfaces \
- (tclIntPlatStubsPtr->tclWinSetInterfaces) /* 26 */
-#endif
-#ifndef TclWinFlushDirtyChannels
-#define TclWinFlushDirtyChannels \
- (tclIntPlatStubsPtr->tclWinFlushDirtyChannels) /* 27 */
-#endif
-#ifndef TclWinResetInterfaces
-#define TclWinResetInterfaces \
- (tclIntPlatStubsPtr->tclWinResetInterfaces) /* 28 */
-#endif
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-#ifndef TclpSysAlloc
-#define TclpSysAlloc \
- (tclIntPlatStubsPtr->tclpSysAlloc) /* 0 */
-#endif
-#ifndef TclpSysFree
-#define TclpSysFree \
- (tclIntPlatStubsPtr->tclpSysFree) /* 1 */
-#endif
-#ifndef TclpSysRealloc
-#define TclpSysRealloc \
- (tclIntPlatStubsPtr->tclpSysRealloc) /* 2 */
-#endif
-#ifndef TclpExit
-#define TclpExit \
- (tclIntPlatStubsPtr->tclpExit) /* 3 */
-#endif
-#ifndef FSpGetDefaultDir
-#define FSpGetDefaultDir \
- (tclIntPlatStubsPtr->fSpGetDefaultDir) /* 4 */
-#endif
-#ifndef FSpSetDefaultDir
-#define FSpSetDefaultDir \
- (tclIntPlatStubsPtr->fSpSetDefaultDir) /* 5 */
-#endif
-#ifndef FSpFindFolder
-#define FSpFindFolder \
- (tclIntPlatStubsPtr->fSpFindFolder) /* 6 */
-#endif
-#ifndef GetGlobalMouseTcl
-#define GetGlobalMouseTcl \
- (tclIntPlatStubsPtr->getGlobalMouseTcl) /* 7 */
-#endif
-#ifndef FSpGetDirectoryIDTcl
-#define FSpGetDirectoryIDTcl \
- (tclIntPlatStubsPtr->fSpGetDirectoryIDTcl) /* 8 */
-#endif
-#ifndef FSpOpenResFileCompatTcl
-#define FSpOpenResFileCompatTcl \
- (tclIntPlatStubsPtr->fSpOpenResFileCompatTcl) /* 9 */
-#endif
-#ifndef FSpCreateResFileCompatTcl
-#define FSpCreateResFileCompatTcl \
- (tclIntPlatStubsPtr->fSpCreateResFileCompatTcl) /* 10 */
-#endif
-#ifndef FSpLocationFromPath
-#define FSpLocationFromPath \
- (tclIntPlatStubsPtr->fSpLocationFromPath) /* 11 */
-#endif
-#ifndef FSpPathFromLocation
-#define FSpPathFromLocation \
- (tclIntPlatStubsPtr->fSpPathFromLocation) /* 12 */
-#endif
-#ifndef TclMacExitHandler
-#define TclMacExitHandler \
- (tclIntPlatStubsPtr->tclMacExitHandler) /* 13 */
-#endif
-#ifndef TclMacInitExitToShell
-#define TclMacInitExitToShell \
- (tclIntPlatStubsPtr->tclMacInitExitToShell) /* 14 */
-#endif
-#ifndef TclMacInstallExitToShellPatch
-#define TclMacInstallExitToShellPatch \
- (tclIntPlatStubsPtr->tclMacInstallExitToShellPatch) /* 15 */
-#endif
-#ifndef TclMacOSErrorToPosixError
-#define TclMacOSErrorToPosixError \
- (tclIntPlatStubsPtr->tclMacOSErrorToPosixError) /* 16 */
-#endif
-#ifndef TclMacRemoveTimer
-#define TclMacRemoveTimer \
- (tclIntPlatStubsPtr->tclMacRemoveTimer) /* 17 */
-#endif
-#ifndef TclMacStartTimer
-#define TclMacStartTimer \
- (tclIntPlatStubsPtr->tclMacStartTimer) /* 18 */
-#endif
-#ifndef TclMacTimerExpired
-#define TclMacTimerExpired \
- (tclIntPlatStubsPtr->tclMacTimerExpired) /* 19 */
-#endif
-#ifndef TclMacRegisterResourceFork
-#define TclMacRegisterResourceFork \
- (tclIntPlatStubsPtr->tclMacRegisterResourceFork) /* 20 */
-#endif
-#ifndef TclMacUnRegisterResourceFork
-#define TclMacUnRegisterResourceFork \
- (tclIntPlatStubsPtr->tclMacUnRegisterResourceFork) /* 21 */
-#endif
-#ifndef TclMacCreateEnv
-#define TclMacCreateEnv \
- (tclIntPlatStubsPtr->tclMacCreateEnv) /* 22 */
-#endif
-#ifndef TclMacFOpenHack
-#define TclMacFOpenHack \
- (tclIntPlatStubsPtr->tclMacFOpenHack) /* 23 */
-#endif
-#ifndef TclpGetTZName
-#define TclpGetTZName \
- (tclIntPlatStubsPtr->tclpGetTZName) /* 24 */
-#endif
-#ifndef TclMacChmod
-#define TclMacChmod \
- (tclIntPlatStubsPtr->tclMacChmod) /* 25 */
-#endif
-#ifndef FSpLLocationFromPath
-#define FSpLLocationFromPath \
- (tclIntPlatStubsPtr->fSpLLocationFromPath) /* 26 */
-#endif
-#endif /* MAC_TCL */
-
-#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */
-
-/* !END!: Do not edit above this line. */
-
-#endif /* _TCLINTPLATDECLS */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tclMath.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tclMath.h
deleted file mode 100644
index ee1a02e375f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tclMath.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * tclMath.h --
- *
- * This file is necessary because of Metrowerks CodeWarrior Pro 1
- * on the Macintosh. With 8-byte doubles turned on, the definitions of
- * sin, cos, acos, etc., are screwed up. They are fine as long as
- * they are used as function calls, but if the function pointers
- * are passed around and used, they will crash hard on the 68K.
- *
- * Copyright (c) 1997 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tclMath.h,v 1.2 1998/09/14 18:40:01 stanton Exp $
- */
-
-#ifndef _TCLMATH
-#define _TCLMATH
-
-#if defined(MAC_TCL)
-# include "tclMacMath.h"
-#else
-# include <math.h>
-#endif
-
-#endif /* _TCLMATH */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tclPlatDecls.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tclPlatDecls.h
deleted file mode 100644
index 3b567dbeb95..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tclPlatDecls.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * tclPlatDecls.h --
- *
- * Declarations of platform specific Tcl APIs.
- *
- * Copyright (c) 1998-1999 by Scriptics Corporation.
- * All rights reserved.
- *
- * RCS: @(#) $Id: tclPlatDecls.h,v 1.18.2.1 2003/05/13 08:41:26 das Exp $
- */
-
-#ifndef _TCLPLATDECLS
-#define _TCLPLATDECLS
-
-/*
- * Pull in the typedef of TCHAR for windows.
- */
-#if defined(__CYGWIN__)
- typedef char TCHAR;
-#elif defined(__WIN32__) && !defined(_TCHAR_DEFINED)
-# include <tchar.h>
-# ifndef _TCHAR_DEFINED
- /* Borland seems to forget to set this. */
- typedef _TCHAR TCHAR;
-# define _TCHAR_DEFINED
-# endif
-# if defined(_MSC_VER) && defined(__STDC__)
- /* MSVC++ misses this. */
- typedef _TCHAR TCHAR;
-# endif
-#endif
-
-/* !BEGIN!: Do not edit below this line. */
-
-/*
- * Exported function declarations:
- */
-
-#ifdef __WIN32__
-/* 0 */
-EXTERN TCHAR * Tcl_WinUtfToTChar _ANSI_ARGS_((CONST char * str,
- int len, Tcl_DString * dsPtr));
-/* 1 */
-EXTERN char * Tcl_WinTCharToUtf _ANSI_ARGS_((CONST TCHAR * str,
- int len, Tcl_DString * dsPtr));
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-/* 0 */
-EXTERN void Tcl_MacSetEventProc _ANSI_ARGS_((
- Tcl_MacConvertEventPtr procPtr));
-/* 1 */
-EXTERN char * Tcl_MacConvertTextResource _ANSI_ARGS_((
- Handle resource));
-/* 2 */
-EXTERN int Tcl_MacEvalResource _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * resourceName,
- int resourceNumber, CONST char * fileName));
-/* 3 */
-EXTERN Handle Tcl_MacFindResource _ANSI_ARGS_((Tcl_Interp * interp,
- long resourceType, CONST char * resourceName,
- int resourceNumber, CONST char * resFileRef,
- int * releaseIt));
-/* 4 */
-EXTERN int Tcl_GetOSTypeFromObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr,
- OSType * osTypePtr));
-/* 5 */
-EXTERN void Tcl_SetOSTypeObj _ANSI_ARGS_((Tcl_Obj * objPtr,
- OSType osType));
-/* 6 */
-EXTERN Tcl_Obj * Tcl_NewOSTypeObj _ANSI_ARGS_((OSType osType));
-/* 7 */
-EXTERN int strncasecmp _ANSI_ARGS_((CONST char * s1,
- CONST char * s2, size_t n));
-/* 8 */
-EXTERN int strcasecmp _ANSI_ARGS_((CONST char * s1,
- CONST char * s2));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TCL
-/* 0 */
-EXTERN int Tcl_MacOSXOpenBundleResources _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * bundleName,
- int hasResourceFile, int maxPathLen,
- char * libraryPath));
-/* 1 */
-EXTERN int Tcl_MacOSXOpenVersionedBundleResources _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * bundleName,
- CONST char * bundleVersion,
- int hasResourceFile, int maxPathLen,
- char * libraryPath));
-#endif /* MAC_OSX_TCL */
-
-typedef struct TclPlatStubs {
- int magic;
- struct TclPlatStubHooks *hooks;
-
-#ifdef __WIN32__
- TCHAR * (*tcl_WinUtfToTChar) _ANSI_ARGS_((CONST char * str, int len, Tcl_DString * dsPtr)); /* 0 */
- char * (*tcl_WinTCharToUtf) _ANSI_ARGS_((CONST TCHAR * str, int len, Tcl_DString * dsPtr)); /* 1 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void (*tcl_MacSetEventProc) _ANSI_ARGS_((Tcl_MacConvertEventPtr procPtr)); /* 0 */
- char * (*tcl_MacConvertTextResource) _ANSI_ARGS_((Handle resource)); /* 1 */
- int (*tcl_MacEvalResource) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * resourceName, int resourceNumber, CONST char * fileName)); /* 2 */
- Handle (*tcl_MacFindResource) _ANSI_ARGS_((Tcl_Interp * interp, long resourceType, CONST char * resourceName, int resourceNumber, CONST char * resFileRef, int * releaseIt)); /* 3 */
- int (*tcl_GetOSTypeFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, OSType * osTypePtr)); /* 4 */
- void (*tcl_SetOSTypeObj) _ANSI_ARGS_((Tcl_Obj * objPtr, OSType osType)); /* 5 */
- Tcl_Obj * (*tcl_NewOSTypeObj) _ANSI_ARGS_((OSType osType)); /* 6 */
- int (*strncasecmp) _ANSI_ARGS_((CONST char * s1, CONST char * s2, size_t n)); /* 7 */
- int (*strcasecmp) _ANSI_ARGS_((CONST char * s1, CONST char * s2)); /* 8 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TCL
- int (*tcl_MacOSXOpenBundleResources) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * bundleName, int hasResourceFile, int maxPathLen, char * libraryPath)); /* 0 */
- int (*tcl_MacOSXOpenVersionedBundleResources) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * bundleName, CONST char * bundleVersion, int hasResourceFile, int maxPathLen, char * libraryPath)); /* 1 */
-#endif /* MAC_OSX_TCL */
-} TclPlatStubs;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern TclPlatStubs *tclPlatStubsPtr;
-#ifdef __cplusplus
-}
-#endif
-
-#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS)
-
-/*
- * Inline function declarations:
- */
-
-#ifdef __WIN32__
-#ifndef Tcl_WinUtfToTChar
-#define Tcl_WinUtfToTChar \
- (tclPlatStubsPtr->tcl_WinUtfToTChar) /* 0 */
-#endif
-#ifndef Tcl_WinTCharToUtf
-#define Tcl_WinTCharToUtf \
- (tclPlatStubsPtr->tcl_WinTCharToUtf) /* 1 */
-#endif
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-#ifndef Tcl_MacSetEventProc
-#define Tcl_MacSetEventProc \
- (tclPlatStubsPtr->tcl_MacSetEventProc) /* 0 */
-#endif
-#ifndef Tcl_MacConvertTextResource
-#define Tcl_MacConvertTextResource \
- (tclPlatStubsPtr->tcl_MacConvertTextResource) /* 1 */
-#endif
-#ifndef Tcl_MacEvalResource
-#define Tcl_MacEvalResource \
- (tclPlatStubsPtr->tcl_MacEvalResource) /* 2 */
-#endif
-#ifndef Tcl_MacFindResource
-#define Tcl_MacFindResource \
- (tclPlatStubsPtr->tcl_MacFindResource) /* 3 */
-#endif
-#ifndef Tcl_GetOSTypeFromObj
-#define Tcl_GetOSTypeFromObj \
- (tclPlatStubsPtr->tcl_GetOSTypeFromObj) /* 4 */
-#endif
-#ifndef Tcl_SetOSTypeObj
-#define Tcl_SetOSTypeObj \
- (tclPlatStubsPtr->tcl_SetOSTypeObj) /* 5 */
-#endif
-#ifndef Tcl_NewOSTypeObj
-#define Tcl_NewOSTypeObj \
- (tclPlatStubsPtr->tcl_NewOSTypeObj) /* 6 */
-#endif
-#ifndef strncasecmp
-#define strncasecmp \
- (tclPlatStubsPtr->strncasecmp) /* 7 */
-#endif
-#ifndef strcasecmp
-#define strcasecmp \
- (tclPlatStubsPtr->strcasecmp) /* 8 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TCL
-#ifndef Tcl_MacOSXOpenBundleResources
-#define Tcl_MacOSXOpenBundleResources \
- (tclPlatStubsPtr->tcl_MacOSXOpenBundleResources) /* 0 */
-#endif
-#ifndef Tcl_MacOSXOpenVersionedBundleResources
-#define Tcl_MacOSXOpenVersionedBundleResources \
- (tclPlatStubsPtr->tcl_MacOSXOpenVersionedBundleResources) /* 1 */
-#endif
-#endif /* MAC_OSX_TCL */
-
-#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */
-
-/* !END!: Do not edit above this line. */
-
-#endif /* _TCLPLATDECLS */
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tclWinInt.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tclWinInt.h
deleted file mode 100644
index 3248ac88f27..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tclWinInt.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * tclWinInt.h --
- *
- * Declarations of Windows-specific shared variables and procedures.
- *
- * Copyright (c) 1994-1996 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tclWinInt.h,v 1.20.2.1 2003/04/14 15:46:01 vincentdarley Exp $
- */
-
-#ifndef _TCLWININT
-#define _TCLWININT
-
-#ifndef _TCLINT
-#include "tclInt.h"
-#endif
-#ifndef _TCLPORT
-#include "tclPort.h"
-#endif
-
-/*
- * The following specifies how much stack space TclpCheckStackSpace()
- * ensures is available. TclpCheckStackSpace() is called by Tcl_EvalObj()
- * to help avoid overflowing the stack in the case of infinite recursion.
- */
-
-#define TCL_WIN_STACK_THRESHOLD 0x2000
-
-#ifdef BUILD_tcl
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * Some versions of Borland C have a define for the OSVERSIONINFO for
- * Win32s and for NT, but not for Windows 95.
- */
-
-#ifndef VER_PLATFORM_WIN32_WINDOWS
-#define VER_PLATFORM_WIN32_WINDOWS 1
-#endif
-
-/*
- * The following structure keeps track of whether we are using the
- * multi-byte or the wide-character interfaces to the operating system.
- * System calls should be made through the following function table.
- */
-
-typedef union {
- WIN32_FIND_DATAA a;
- WIN32_FIND_DATAW w;
-} WIN32_FIND_DATAT;
-
-typedef struct TclWinProcs {
- int useWide;
-
- BOOL (WINAPI *buildCommDCBProc)(CONST TCHAR *, LPDCB);
- TCHAR *(WINAPI *charLowerProc)(TCHAR *);
- BOOL (WINAPI *copyFileProc)(CONST TCHAR *, CONST TCHAR *, BOOL);
- BOOL (WINAPI *createDirectoryProc)(CONST TCHAR *, LPSECURITY_ATTRIBUTES);
- HANDLE (WINAPI *createFileProc)(CONST TCHAR *, DWORD, DWORD,
- LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
- BOOL (WINAPI *createProcessProc)(CONST TCHAR *, TCHAR *,
- LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD,
- LPVOID, CONST TCHAR *, LPSTARTUPINFOA, LPPROCESS_INFORMATION);
- BOOL (WINAPI *deleteFileProc)(CONST TCHAR *);
- HANDLE (WINAPI *findFirstFileProc)(CONST TCHAR *, WIN32_FIND_DATAT *);
- BOOL (WINAPI *findNextFileProc)(HANDLE, WIN32_FIND_DATAT *);
- BOOL (WINAPI *getComputerNameProc)(WCHAR *, LPDWORD);
- DWORD (WINAPI *getCurrentDirectoryProc)(DWORD, WCHAR *);
- DWORD (WINAPI *getFileAttributesProc)(CONST TCHAR *);
- DWORD (WINAPI *getFullPathNameProc)(CONST TCHAR *, DWORD nBufferLength,
- WCHAR *, TCHAR **);
- DWORD (WINAPI *getModuleFileNameProc)(HMODULE, WCHAR *, int);
- DWORD (WINAPI *getShortPathNameProc)(CONST TCHAR *, WCHAR *, DWORD);
- UINT (WINAPI *getTempFileNameProc)(CONST TCHAR *, CONST TCHAR *, UINT,
- WCHAR *);
- DWORD (WINAPI *getTempPathProc)(DWORD, WCHAR *);
- BOOL (WINAPI *getVolumeInformationProc)(CONST TCHAR *, WCHAR *, DWORD,
- LPDWORD, LPDWORD, LPDWORD, WCHAR *, DWORD);
- HINSTANCE (WINAPI *loadLibraryProc)(CONST TCHAR *);
- TCHAR (WINAPI *lstrcpyProc)(WCHAR *, CONST TCHAR *);
- BOOL (WINAPI *moveFileProc)(CONST TCHAR *, CONST TCHAR *);
- BOOL (WINAPI *removeDirectoryProc)(CONST TCHAR *);
- DWORD (WINAPI *searchPathProc)(CONST TCHAR *, CONST TCHAR *,
- CONST TCHAR *, DWORD, WCHAR *, TCHAR **);
- BOOL (WINAPI *setCurrentDirectoryProc)(CONST TCHAR *);
- BOOL (WINAPI *setFileAttributesProc)(CONST TCHAR *, DWORD);
- /*
- * These two function pointers will only be set when
- * Tcl_FindExecutable is called. If you don't ever call that
- * function, the application will crash whenever WinTcl tries to call
- * functions through these null pointers. That is not a bug in Tcl
- * -- Tcl_FindExecutable is obligatory in recent Tcl releases.
- */
- BOOL (WINAPI *getFileAttributesExProc)(CONST TCHAR *,
- GET_FILEEX_INFO_LEVELS, LPVOID);
- BOOL (WINAPI *createHardLinkProc)(CONST TCHAR*, CONST TCHAR*,
- LPSECURITY_ATTRIBUTES);
-
- INT (__cdecl *utimeProc)(CONST TCHAR*, struct _utimbuf *);
- /* These two are also NULL at start; see comment above */
- HANDLE (WINAPI *findFirstFileExProc)(CONST TCHAR*, UINT,
- LPVOID, UINT,
- LPVOID, DWORD);
- BOOL (WINAPI *getVolumeNameForVMPProc)(CONST TCHAR*, TCHAR*, DWORD);
-} TclWinProcs;
-
-EXTERN TclWinProcs *tclWinProcs;
-
-/*
- * Declarations of functions that are not accessible by way of the
- * stubs table.
- */
-
-EXTERN void TclWinEncodingsCleanup();
-EXTERN void TclWinResetInterfaceEncodings();
-EXTERN void TclWinInit(HINSTANCE hInst);
-EXTERN int TclWinSymLinkCopyDirectory(CONST TCHAR* LinkOriginal,
- CONST TCHAR* LinkCopy);
-EXTERN int TclWinSymLinkDelete(CONST TCHAR* LinkOriginal,
- int linkOnly);
-EXTERN char TclWinDriveLetterForVolMountPoint(CONST WCHAR *mountPoint);
-#if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC)
-EXTERN void TclWinFreeAllocCache(void);
-EXTERN void TclFreeAllocCache(void *);
-EXTERN Tcl_Mutex *TclpNewAllocMutex(void);
-EXTERN void *TclpGetAllocCache(void);
-EXTERN void TclpSetAllocCache(void *);
-#endif /* TCL_THREADS */
-
-/* Needed by tclWinFile.c and tclWinFCmd.c */
-#ifndef FILE_ATTRIBUTE_REPARSE_POINT
-#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
-#endif
-
-#include "tclIntPlatDecls.h"
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TCLWININT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tix.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tix.h
deleted file mode 100644
index ce5a411e8f7..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tix.h
+++ /dev/null
@@ -1,512 +0,0 @@
-
-/* $Id: tix.h,v 1.4.2.2 2001/12/09 03:10:49 idiscovery Exp $ */
-
-/*
- * tix.h --
- *
- * This is the standard header file for all tix C code. It
- * defines many macros and utility functions to make it easier to
- * write TCL commands and TK widgets in C. No more needs to write
- * 2000 line functions!
- *
- * Copyright (c) 1996, Expert Interface Technologies
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- */
-#ifndef _TIX_PORT_H_
-#include "tixPort.h"
-#endif
-#ifndef _TIX
-#define _TIX
-#define _TIX_H_
-
-#ifndef TIX_VERSION
-#define TIX_VERSION "8.1"
-#endif
-#define TIX_PATCHLEVEL "8.1.4"
-#define TIX_PATCH_LEVEL TIX_PATCHLEVEL
-
-#define TIX_RELEASE "8.1.4"
-
-#ifndef _TK
-#include "tk.h"
-#endif
-
-
-#if defined(__WIN32__) || defined(_WIN32) || defined (__BORLAND) || defined(_Windows)
-#ifndef _WINDOWS
-#define _WINDOWS
-#endif
-#endif
-
-/*
- * When building Tix itself, BUILD_tix should be defined by the makefile
- * so that all EXTERN declarations get DLLEXPORT; when building apps
- * using Tix, BUILD_tix should NOT be defined so that all EXTERN
- * declarations get DLLIMPORT as defined in tcl.h
- *
- * NOTE: This ifdef MUST appear after the include of tcl.h and tk.h
- * because the EXTERN declarations in those files need DLLIMPORT.
- */
-/*
- * These macros are used to control whether functions are being declared for
- * import or export. If a function is being declared while it is being built
- * to be included in a shared library, then it should have the DLLEXPORT
- * storage class. If is being declared for use by a module that is going to
- * link against the shared library, then it should have the DLLIMPORT storage
- * class. If the symbol is beind declared for a static build or for use from a
- * stub library, then the storage class should be empty.
- *
- * The convention is that a macro called BUILD_xxxx, where xxxx is the
- * name of a library we are building, is set on the compile line for sources
- * that are to be placed in the library. When this macro is set, the
- * storage class will be set to DLLEXPORT. At the end of the header file, the
- * storage class will be reset to DLLIMPORt.
- */
-
-#undef TCL_STORAGE_CLASS
-#ifdef BUILD_tix
-# define TCL_STORAGE_CLASS DLLEXPORT
-#else
-# ifdef USE_TCL_STUBS
-# define TCL_STORAGE_CLASS
-# else
-# define TCL_STORAGE_CLASS DLLIMPORT
-# endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if (TCL_MAJOR_VERSION > 7)
-# define TCL_7_5_OR_LATER
-#else
-# if ((TCL_MAJOR_VERSION == 7) && (TCL_MINOR_VERSION >= 5))
-# define TCL_7_5_OR_LATER
-# endif
-#endif
-
-
-#if (TK_MAJOR_VERSION > 4)
-# define TK_4_1_OR_LATER
-#else
-# if ((TK_MAJOR_VERSION == 4) && (TK_MINOR_VERSION >= 1))
-# define TK_4_1_OR_LATER
-# endif
-#endif /* TK_MAJOR_VERSION ... */
-
-#if (TK_MAJOR_VERSION >= 8)
-# define TK_8_0_OR_LATER
-#endif
-
-#ifdef TK_4_1_OR_LATER
- /* TK 4.1 or later */
-# define Tix_FreeProc Tcl_FreeProc
-
-#else
- /* TK 4.0 */
-# define Tix_FreeProc Tk_FreeProc
-
- /* These portable features were not defined in previous versions of
- * TK but are used in Tix. Let's define them here.
- */
-# define TkPutImage(a, b, c, d, e, f, g, h, i, j, k, l) \
- XPutImage(c, d, e, f, g, h, i, j, k, l)
-
-# define TkStringToKeysym XStringToKeysym
-
-#endif /* TK_4_1_OR_LATER */
-
-
-#define TIX_STDIN_ALWAYS 0
-#define TIX_STDIN_OPTIONAL 1
-#define TIX_STDIN_NONE 2
-
-typedef struct {
- char *name; /* Name of command. */
- int (*cmdProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp,
- int argc, Tcl_Obj *CONST *objv));
- /* Command procedure. */
-} Tix_TclCmd;
-
-
-/*----------------------------------------------------------------------
- *
- *
- * SUB-COMMAND HANDLING
- *
- *
- *----------------------------------------------------------------------
- */
-typedef int (*Tix_CmdProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-typedef int (*Tix_SubCmdProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-typedef int (*Tix_CheckArgvProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-
-typedef struct _Tix_CmdInfo {
- int numSubCmds;
- int minargc;
- int maxargc;
- char * info;
-} Tix_CmdInfo;
-
-typedef struct _Tix_SubCmdInfo {
- int namelen;
- char * name;
- int minargc;
- int maxargc;
- Tix_SubCmdProc proc;
- char * info;
- Tix_CheckArgvProc checkArgvProc;
-} Tix_SubCmdInfo;
-
-/*
- * Tix_ArraySize --
- *
- * Find out the number of elements inside a C array. The argument "x"
- * must be a valid C array. Pointers don't work.
- */
-#define Tix_ArraySize(x) (sizeof(x) / sizeof(x[0]))
-
-/*
- * This is used for Tix_CmdInfo.maxargc and Tix_SubCmdInfo.maxargc,
- * indicating that this command takes a variable number of arguments.
- */
-#define TIX_VAR_ARGS -1
-
-/*
- * TIX_DEFAULT_LEN --
- *
- * Use this for Tix_SubCmdInfo.namelen and Tix_ExecSubCmds() will try to
- * determine the length of the subcommand name for you.
- */
-#define TIX_DEFAULT_LEN -1
-
-/*
- * TIX_DEFAULT_SUB_CMD --
- *
- * Use this for Tix_SubCmdInfo.name. This will match any subcommand name,
- * including the empty string, when Tix_ExecSubCmds() finds a subcommand
- * to execute.
- */
-#define TIX_DEFAULT_SUBCMD 0
-
-/*
- * TIX_DECLARE_CMD --
- *
- * This is just a handy macro to declare a C function to use as a
- * command function.
- */
-#define TIX_DECLARE_CMD(func) \
- int func _ANSI_ARGS_((ClientData clientData,\
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST objv[]))
-
-/*
- * TIX_DECLARE_SUBCMD --
- *
- * This is just a handy macro to declare a C function to use as a
- * sub command function.
- */
-#define TIX_DECLARE_SUBCMD(func) \
- int func _ANSI_ARGS_((ClientData clientData,\
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST objv[]))
-
-/*
- * TIX_DEFINE_CMD --
- *
- * This is just a handy macro to define a C function to use as a
- * command function.
- */
-#define TIX_DEFINE_CMD(func) \
-int func(clientData, interp, argc, argv) \
- ClientData clientData; /* Main window associated with \
- * interpreter. */ \
- Tcl_Interp *interp; /* Current interpreter. */ \
- int argc; /* Number of arguments. */ \
- Tcl_Obj *objv[]; /* Argument strings. */
-
-
-
-/*----------------------------------------------------------------------
- * Link-list functions --
- *
- * These functions makes it easy to use link lists in C code.
- *
- *----------------------------------------------------------------------
- */
-typedef struct Tix_ListInfo {
- int nextOffset; /* offset of the "next" pointer in a list
- * item */
- int prevOffset; /* offset of the "next" pointer in a list
- * item */
-} Tix_ListInfo;
-
-
-/* Singly-linked list */
-typedef struct Tix_LinkList {
- int numItems; /* number of items in this list */
- char * head; /* (general pointer) head of the list */
- char * tail; /* (general pointer) tail of the list */
-} Tix_LinkList;
-
-typedef struct Tix_ListIterator {
- char * last;
- char * curr;
- unsigned int started : 1; /* True if the search operation has
- * already started for this list */
- unsigned int deleted : 1; /* True if a delete operation has been
- * performed on the current item (in this
- * case the curr pointer has already been
- * adjusted
- */
-} Tix_ListIterator;
-
-#define Tix_IsLinkListEmpty(list) ((list.numItems) == 0)
-#define TIX_UNIQUE 1
-#define TIX_UNDEFINED -1
-
-/*----------------------------------------------------------------------
- * General Single Link List --
- *
- * The next pointer can be anywhere inside a link.
- *----------------------------------------------------------------------
- */
-
-EXTERN void Tix_LinkListInit _ANSI_ARGS_((Tix_LinkList * lPtr));
-EXTERN void Tix_LinkListAppend _ANSI_ARGS_((Tix_ListInfo * infoPtr,
- Tix_LinkList * lPtr, char * itemPtr, int flags));
-EXTERN void Tix_LinkListStart _ANSI_ARGS_((Tix_ListInfo * infoPtr,
- Tix_LinkList * lPtr, Tix_ListIterator * liPtr));
-EXTERN void Tix_LinkListNext _ANSI_ARGS_((Tix_ListInfo * infoPtr,
- Tix_LinkList * lPtr, Tix_ListIterator * liPtr));
-EXTERN void Tix_LinkListDelete _ANSI_ARGS_((Tix_ListInfo * infoPtr,
- Tix_LinkList * lPtr, Tix_ListIterator * liPtr));
-EXTERN int Tix_LinkListDeleteRange _ANSI_ARGS_((
- Tix_ListInfo * infoPtr, Tix_LinkList * lPtr,
- char * fromPtr, char * toPtr,
- Tix_ListIterator * liPtr));
-EXTERN int Tix_LinkListFind _ANSI_ARGS_((
- Tix_ListInfo * infoPtr, Tix_LinkList * lPtr,
- char * itemPtr, Tix_ListIterator * liPtr));
-EXTERN int Tix_LinkListFindAndDelete _ANSI_ARGS_((
- Tix_ListInfo * infoPtr, Tix_LinkList * lPtr,
- char * itemPtr, Tix_ListIterator * liPtr));
-EXTERN void Tix_LinkListInsert _ANSI_ARGS_((
- Tix_ListInfo * infoPtr,
- Tix_LinkList * lPtr, char * itemPtr,
- Tix_ListIterator * liPtr));
-EXTERN void Tix_LinkListIteratorInit _ANSI_ARGS_(( Tix_ListIterator * liPtr));
-
-#define Tix_LinkListDone(liPtr) ((liPtr)->curr == NULL)
-
-
-/*----------------------------------------------------------------------
- * Simple Single Link List --
- *
- * The next pointer is always offset 0 in the link structure.
- *----------------------------------------------------------------------
- */
-
-EXTERN void Tix_SimpleListInit _ANSI_ARGS_((Tix_LinkList * lPtr));
-EXTERN void Tix_SimpleListAppend _ANSI_ARGS_((
- Tix_LinkList * lPtr, char * itemPtr, int flags));
-EXTERN void Tix_SimpleListStart _ANSI_ARGS_((
- Tix_LinkList * lPtr, Tix_ListIterator * liPtr));
-EXTERN void Tix_SimpleListNext _ANSI_ARGS_((
- Tix_LinkList * lPtr, Tix_ListIterator * liPtr));
-EXTERN void Tix_SimpleListDelete _ANSI_ARGS_((
- Tix_LinkList * lPtr, Tix_ListIterator * liPtr));
-EXTERN int Tix_SimpleListDeleteRange _ANSI_ARGS_((
- Tix_LinkList * lPtr,
- char * fromPtr, char * toPtr,
- Tix_ListIterator * liPtr));
-EXTERN int Tix_SimpleListFind _ANSI_ARGS_((
- Tix_LinkList * lPtr,
- char * itemPtr, Tix_ListIterator * liPtr));
-EXTERN int Tix_SimpleListFindAndDelete _ANSI_ARGS_((
- Tix_LinkList * lPtr, char * itemPtr,
- Tix_ListIterator * liPtr));
-EXTERN void Tix_SimpleListInsert _ANSI_ARGS_((
- Tix_LinkList * lPtr, char * itemPtr,
- Tix_ListIterator * liPtr));
-EXTERN void Tix_SimpleListIteratorInit _ANSI_ARGS_((
- Tix_ListIterator * liPtr));
-
-#define Tix_SimpleListDone(liPtr) ((liPtr)->curr == NULL)
-
-/*----------------------------------------------------------------------
- *
- *
- *
- * CUSTOM CONFIG OPTIONS
- *
- *
- *----------------------------------------------------------------------
- */
-#define TIX_RELIEF_RAISED 1
-#define TIX_RELIEF_FLAT 2
-#define TIX_RELIEF_SUNKEN 4
-#define TIX_RELIEF_GROOVE 8
-#define TIX_RELIEF_RIDGE 16
-#define TIX_RELIEF_SOLID 32
-
-typedef int Tix_Relief;
-
-EXTERN Tk_CustomOption tixConfigItemType;
-EXTERN Tk_CustomOption tixConfigItemStyle;
-EXTERN Tk_CustomOption tixConfigRelief;
-
-
-/*
- * C functions exported by Tix
- */
-
-EXTERN int Tix_ArgcError _ANSI_ARGS_((Tcl_Interp *interp,
- int argc, Tcl_Obj *CONST *objv, int prefixCount,
- char *message));
-EXTERN void Tix_CreateCommands _ANSI_ARGS_((
- Tcl_Interp *interp, Tix_TclCmd *commands,
- ClientData clientData,
- Tcl_CmdDeleteProc *deleteProc));
-EXTERN Tk_Window Tix_CreateSubWindow _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- char * subPath));
-EXTERN int Tix_DefinePixmap _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Uid name, char **data));
-EXTERN void Tix_DrawAnchorLines _ANSI_ARGS_((
- Display *display, Drawable drawable,
- GC gc, int x, int y, int w, int h));
-EXTERN int Tix_EvalArgv _ANSI_ARGS_((
- Tcl_Interp * interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tix_ExistMethod _ANSI_ARGS_((Tcl_Interp *interp,
- char *context, char *method));
-EXTERN void Tix_Exit _ANSI_ARGS_((Tcl_Interp * interp, int code));
-EXTERN Pixmap Tix_GetRenderBuffer _ANSI_ARGS_((Display *display,
- Drawable d, int width, int height, int depth));
-
-#ifdef TCL_VARARGS
-/*
- * The TCL_VARARGS macro is only defined in Tcl 7.5 or later
- */
-EXTERN int Tix_GlobalVarEval _ANSI_ARGS_(
- TCL_VARARGS(Tcl_Interp *,interp));
-#else
-EXTERN int Tix_GlobalVarEval _ANSI_ARGS_(
- VARARGS(Tcl_Interp *interp));
-#endif
-
-EXTERN int Tix_HandleSubCmds _ANSI_ARGS_((
- Tix_CmdInfo * cmdInfo,
- Tix_SubCmdInfo * subCmdInfo,
- ClientData clientData, Tcl_Interp *interp,
- int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tix_Init _ANSI_ARGS_((Tcl_Interp *interp));
-
-EXTERN int Tix_LoadTclLibrary _ANSI_ARGS_((
- Tcl_Interp *interp, char *envName,
- char *tclName, char *initFile,
- char *defDir, char * appName));
-EXTERN void Tix_OpenStdin _ANSI_ARGS_((Tcl_Interp *interp));
-EXTERN void Tix_SetArgv _ANSI_ARGS_((Tcl_Interp *interp,
- int argc, Tcl_Obj *CONST *objv));
-EXTERN void Tix_SetRcFileName _ANSI_ARGS_((
- Tcl_Interp * interp, char * rcFileName));
-EXTERN char * TixGetStringFromObj _ANSI_ARGS_((
- char *objPtr,int *lengthPtr));
-
-/*
- * Entry points for Tk_CONFIG_CUSTOM stubs to call
- */
-
-EXTERN int TixDItemParseProc _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj * value,
- char *widRec, int offset));
-
-EXTERN Tcl_Obj * TixDItemPrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin, char *widRec,
- int offset, Tcl_FreeProc **freeProcPtr));
-
-EXTERN int TixDItemStyleParseProc _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj * value,
- char *widRec, int offset));
-
-EXTERN Tcl_Obj * TixDItemStylePrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin, char *widRec,
- int offset, Tcl_FreeProc **freeProcPtr));
-
-
-/*
- * Commands exported by Tix
- *
- */
-
-extern TIX_DECLARE_CMD(Tix_CallMethodCmd);
-extern TIX_DECLARE_CMD(Tix_ChainMethodCmd);
-extern TIX_DECLARE_CMD(Tix_ClassCmd);
-extern TIX_DECLARE_CMD(Tix_DoWhenIdleCmd);
-extern TIX_DECLARE_CMD(Tix_DoWhenMappedCmd);
-extern TIX_DECLARE_CMD(Tix_FalseCmd);
-extern TIX_DECLARE_CMD(Tix_FileCmd);
-extern TIX_DECLARE_CMD(Tix_FlushXCmd);
-extern TIX_DECLARE_CMD(Tix_FormCmd);
-extern TIX_DECLARE_CMD(Tix_GridCmd);
-extern TIX_DECLARE_CMD(Tix_GeometryRequestCmd);
-extern TIX_DECLARE_CMD(Tix_Get3DBorderCmd);
-extern TIX_DECLARE_CMD(Tix_GetBooleanCmd);
-extern TIX_DECLARE_CMD(Tix_GetIntCmd);
-extern TIX_DECLARE_CMD(Tix_GetMethodCmd);
-extern TIX_DECLARE_CMD(Tix_HListCmd);
-extern TIX_DECLARE_CMD(Tix_HandleOptionsCmd);
-extern TIX_DECLARE_CMD(Tix_InputOnlyCmd);
-extern TIX_DECLARE_CMD(Tix_ItemStyleCmd);
-extern TIX_DECLARE_CMD(Tix_ManageGeometryCmd);
-extern TIX_DECLARE_CMD(Tix_MapWindowCmd);
-extern TIX_DECLARE_CMD(Tix_MoveResizeWindowCmd);
-extern TIX_DECLARE_CMD(Tix_NoteBookFrameCmd);
-extern TIX_DECLARE_CMD(Tix_RaiseWindowCmd);
-extern TIX_DECLARE_CMD(Tix_ShellInputCmd);
-extern TIX_DECLARE_CMD(Tix_StringSubCmd);
-extern TIX_DECLARE_CMD(Tix_StrEqCmd);
-extern TIX_DECLARE_CMD(Tix_TListCmd);
-extern TIX_DECLARE_CMD(Tix_TmpLineCmd);
-extern TIX_DECLARE_CMD(Tix_TrueCmd);
-extern TIX_DECLARE_CMD(Tix_UnmapWindowCmd);
-extern TIX_DECLARE_CMD(Tix_MwmCmd);
-extern TIX_DECLARE_CMD(Tix_CreateWidgetCmd);
-
-#define SET_RECORD(interp, record, var, value) \
- Tcl_SetVar2(interp, record, var, value, TCL_GLOBAL_ONLY)
-
-#define GET_RECORD(interp, record, var) \
- Tcl_GetVar2(interp, record, var, TCL_GLOBAL_ONLY)
-
-
-#define TIX_HASHKEY(k) ((sizeof(k)>sizeof(int))?((char*)&(k)):((char*)(k)))
-
-/*----------------------------------------------------------------------
- * Compatibility section
- *---------------------------------------------------------------------- */
-
-
-#ifdef _WINDOWS
-/* This is the way win/tkWinPort.h in tk8.0.5 defines it */
-#ifndef strcasecmp
-#define strcasecmp stricmp
-#endif
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* _TIX */
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tix.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tix.m
deleted file mode 100644
index 92b9f74eb3f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tix.m
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef _TIX_VM
-#define _TIX_VM
-#include "tix_f.h"
-#ifndef NO_VTABLES
-#ifndef TixDItemParseProc
-# define TixDItemParseProc (*TixVptr->V_TixDItemParseProc)
-#endif
-
-#ifndef TixDItemPrintProc
-# define TixDItemPrintProc (*TixVptr->V_TixDItemPrintProc)
-#endif
-
-#ifndef TixDItemStyleParseProc
-# define TixDItemStyleParseProc (*TixVptr->V_TixDItemStyleParseProc)
-#endif
-
-#ifndef TixDItemStylePrintProc
-# define TixDItemStylePrintProc (*TixVptr->V_TixDItemStylePrintProc)
-#endif
-
-#ifndef TixGetStringFromObj
-# define TixGetStringFromObj (*TixVptr->V_TixGetStringFromObj)
-#endif
-
-#ifndef Tix_ArgcError
-# define Tix_ArgcError (*TixVptr->V_Tix_ArgcError)
-#endif
-
-#ifndef Tix_CreateSubWindow
-# define Tix_CreateSubWindow (*TixVptr->V_Tix_CreateSubWindow)
-#endif
-
-#ifndef Tix_DrawAnchorLines
-# define Tix_DrawAnchorLines (*TixVptr->V_Tix_DrawAnchorLines)
-#endif
-
-#ifndef Tix_GetRenderBuffer
-# define Tix_GetRenderBuffer (*TixVptr->V_Tix_GetRenderBuffer)
-#endif
-
-#ifndef Tix_HandleSubCmds
-# define Tix_HandleSubCmds (*TixVptr->V_Tix_HandleSubCmds)
-#endif
-
-#ifndef Tix_LinkListAppend
-# define Tix_LinkListAppend (*TixVptr->V_Tix_LinkListAppend)
-#endif
-
-#ifndef Tix_LinkListDelete
-# define Tix_LinkListDelete (*TixVptr->V_Tix_LinkListDelete)
-#endif
-
-#ifndef Tix_LinkListDeleteRange
-# define Tix_LinkListDeleteRange (*TixVptr->V_Tix_LinkListDeleteRange)
-#endif
-
-#ifndef Tix_LinkListFind
-# define Tix_LinkListFind (*TixVptr->V_Tix_LinkListFind)
-#endif
-
-#ifndef Tix_LinkListFindAndDelete
-# define Tix_LinkListFindAndDelete (*TixVptr->V_Tix_LinkListFindAndDelete)
-#endif
-
-#ifndef Tix_LinkListInit
-# define Tix_LinkListInit (*TixVptr->V_Tix_LinkListInit)
-#endif
-
-#ifndef Tix_LinkListInsert
-# define Tix_LinkListInsert (*TixVptr->V_Tix_LinkListInsert)
-#endif
-
-#ifndef Tix_LinkListIteratorInit
-# define Tix_LinkListIteratorInit (*TixVptr->V_Tix_LinkListIteratorInit)
-#endif
-
-#ifndef Tix_LinkListNext
-# define Tix_LinkListNext (*TixVptr->V_Tix_LinkListNext)
-#endif
-
-#ifndef Tix_LinkListStart
-# define Tix_LinkListStart (*TixVptr->V_Tix_LinkListStart)
-#endif
-
-#ifndef Tix_SimpleListAppend
-# define Tix_SimpleListAppend (*TixVptr->V_Tix_SimpleListAppend)
-#endif
-
-#ifndef Tix_SimpleListDelete
-# define Tix_SimpleListDelete (*TixVptr->V_Tix_SimpleListDelete)
-#endif
-
-#ifndef Tix_SimpleListDeleteRange
-# define Tix_SimpleListDeleteRange (*TixVptr->V_Tix_SimpleListDeleteRange)
-#endif
-
-#ifndef Tix_SimpleListFind
-# define Tix_SimpleListFind (*TixVptr->V_Tix_SimpleListFind)
-#endif
-
-#ifndef Tix_SimpleListFindAndDelete
-# define Tix_SimpleListFindAndDelete (*TixVptr->V_Tix_SimpleListFindAndDelete)
-#endif
-
-#ifndef Tix_SimpleListInit
-# define Tix_SimpleListInit (*TixVptr->V_Tix_SimpleListInit)
-#endif
-
-#ifndef Tix_SimpleListInsert
-# define Tix_SimpleListInsert (*TixVptr->V_Tix_SimpleListInsert)
-#endif
-
-#ifndef Tix_SimpleListIteratorInit
-# define Tix_SimpleListIteratorInit (*TixVptr->V_Tix_SimpleListIteratorInit)
-#endif
-
-#ifndef Tix_SimpleListNext
-# define Tix_SimpleListNext (*TixVptr->V_Tix_SimpleListNext)
-#endif
-
-#ifndef Tix_SimpleListStart
-# define Tix_SimpleListStart (*TixVptr->V_Tix_SimpleListStart)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TIX_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tix.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tix.t
deleted file mode 100644
index 08379729f4f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tix.t
+++ /dev/null
@@ -1,170 +0,0 @@
-#ifdef _TIX
-#ifndef TixDItemParseProc
-VFUNC(int,TixDItemParseProc,V_TixDItemParseProc,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj * value,
- char *widRec, int offset)))
-#endif /* #ifndef TixDItemParseProc */
-
-#ifndef TixDItemPrintProc
-VFUNC(Tcl_Obj *,TixDItemPrintProc,V_TixDItemPrintProc,_ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin, char *widRec,
- int offset, Tcl_FreeProc **freeProcPtr)))
-#endif /* #ifndef TixDItemPrintProc */
-
-#ifndef TixDItemStyleParseProc
-VFUNC(int,TixDItemStyleParseProc,V_TixDItemStyleParseProc,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj * value,
- char *widRec, int offset)))
-#endif /* #ifndef TixDItemStyleParseProc */
-
-#ifndef TixDItemStylePrintProc
-VFUNC(Tcl_Obj *,TixDItemStylePrintProc,V_TixDItemStylePrintProc,_ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin, char *widRec,
- int offset, Tcl_FreeProc **freeProcPtr)))
-#endif /* #ifndef TixDItemStylePrintProc */
-
-#ifndef TixGetStringFromObj
-VFUNC(char *,TixGetStringFromObj,V_TixGetStringFromObj,_ANSI_ARGS_((
- char *objPtr,int *lengthPtr)))
-#endif /* #ifndef TixGetStringFromObj */
-
-#ifndef Tix_ArgcError
-VFUNC(int,Tix_ArgcError,V_Tix_ArgcError,_ANSI_ARGS_((Tcl_Interp *interp,
- int argc, Tcl_Obj *CONST *objv, int prefixCount,
- char *message)))
-#endif /* #ifndef Tix_ArgcError */
-
-#ifndef Tix_CreateSubWindow
-VFUNC(Tk_Window,Tix_CreateSubWindow,V_Tix_CreateSubWindow,_ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- char * subPath)))
-#endif /* #ifndef Tix_CreateSubWindow */
-
-#ifndef Tix_DrawAnchorLines
-VFUNC(void,Tix_DrawAnchorLines,V_Tix_DrawAnchorLines,_ANSI_ARGS_((
- Display *display, Drawable drawable,
- GC gc, int x, int y, int w, int h)))
-#endif /* #ifndef Tix_DrawAnchorLines */
-
-#ifndef Tix_GetRenderBuffer
-VFUNC(Pixmap,Tix_GetRenderBuffer,V_Tix_GetRenderBuffer,_ANSI_ARGS_((Display *display,
- Drawable d, int width, int height, int depth)))
-#endif /* #ifndef Tix_GetRenderBuffer */
-
-#ifndef Tix_HandleSubCmds
-VFUNC(int,Tix_HandleSubCmds,V_Tix_HandleSubCmds,_ANSI_ARGS_((
- Tix_CmdInfo * cmdInfo,
- Tix_SubCmdInfo * subCmdInfo,
- ClientData clientData, Tcl_Interp *interp,
- int argc, Tcl_Obj *CONST *objv)))
-#endif /* #ifndef Tix_HandleSubCmds */
-
-#ifndef Tix_LinkListAppend
-VFUNC(void,Tix_LinkListAppend,V_Tix_LinkListAppend,_ANSI_ARGS_((Tix_ListInfo * infoPtr,
- Tix_LinkList * lPtr, char * itemPtr, int flags)))
-#endif /* #ifndef Tix_LinkListAppend */
-
-#ifndef Tix_LinkListDelete
-VFUNC(void,Tix_LinkListDelete,V_Tix_LinkListDelete,_ANSI_ARGS_((Tix_ListInfo * infoPtr,
- Tix_LinkList * lPtr, Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_LinkListDelete */
-
-#ifndef Tix_LinkListDeleteRange
-VFUNC(int,Tix_LinkListDeleteRange,V_Tix_LinkListDeleteRange,_ANSI_ARGS_((
- Tix_ListInfo * infoPtr, Tix_LinkList * lPtr,
- char * fromPtr, char * toPtr,
- Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_LinkListDeleteRange */
-
-#ifndef Tix_LinkListFind
-VFUNC(int,Tix_LinkListFind,V_Tix_LinkListFind,_ANSI_ARGS_((
- Tix_ListInfo * infoPtr, Tix_LinkList * lPtr,
- char * itemPtr, Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_LinkListFind */
-
-#ifndef Tix_LinkListFindAndDelete
-VFUNC(int,Tix_LinkListFindAndDelete,V_Tix_LinkListFindAndDelete,_ANSI_ARGS_((
- Tix_ListInfo * infoPtr, Tix_LinkList * lPtr,
- char * itemPtr, Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_LinkListFindAndDelete */
-
-#ifndef Tix_LinkListInit
-VFUNC(void,Tix_LinkListInit,V_Tix_LinkListInit,_ANSI_ARGS_((Tix_LinkList * lPtr)))
-#endif /* #ifndef Tix_LinkListInit */
-
-#ifndef Tix_LinkListInsert
-VFUNC(void,Tix_LinkListInsert,V_Tix_LinkListInsert,_ANSI_ARGS_((
- Tix_ListInfo * infoPtr,
- Tix_LinkList * lPtr, char * itemPtr,
- Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_LinkListInsert */
-
-#ifndef Tix_LinkListIteratorInit
-VFUNC(void,Tix_LinkListIteratorInit,V_Tix_LinkListIteratorInit,_ANSI_ARGS_(( Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_LinkListIteratorInit */
-
-#ifndef Tix_LinkListNext
-VFUNC(void,Tix_LinkListNext,V_Tix_LinkListNext,_ANSI_ARGS_((Tix_ListInfo * infoPtr,
- Tix_LinkList * lPtr, Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_LinkListNext */
-
-#ifndef Tix_LinkListStart
-VFUNC(void,Tix_LinkListStart,V_Tix_LinkListStart,_ANSI_ARGS_((Tix_ListInfo * infoPtr,
- Tix_LinkList * lPtr, Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_LinkListStart */
-
-#ifndef Tix_SimpleListAppend
-VFUNC(void,Tix_SimpleListAppend,V_Tix_SimpleListAppend,_ANSI_ARGS_((
- Tix_LinkList * lPtr, char * itemPtr, int flags)))
-#endif /* #ifndef Tix_SimpleListAppend */
-
-#ifndef Tix_SimpleListDelete
-VFUNC(void,Tix_SimpleListDelete,V_Tix_SimpleListDelete,_ANSI_ARGS_((
- Tix_LinkList * lPtr, Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_SimpleListDelete */
-
-#ifndef Tix_SimpleListDeleteRange
-VFUNC(int,Tix_SimpleListDeleteRange,V_Tix_SimpleListDeleteRange,_ANSI_ARGS_((
- Tix_LinkList * lPtr,
- char * fromPtr, char * toPtr,
- Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_SimpleListDeleteRange */
-
-#ifndef Tix_SimpleListFind
-VFUNC(int,Tix_SimpleListFind,V_Tix_SimpleListFind,_ANSI_ARGS_((
- Tix_LinkList * lPtr,
- char * itemPtr, Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_SimpleListFind */
-
-#ifndef Tix_SimpleListFindAndDelete
-VFUNC(int,Tix_SimpleListFindAndDelete,V_Tix_SimpleListFindAndDelete,_ANSI_ARGS_((
- Tix_LinkList * lPtr, char * itemPtr,
- Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_SimpleListFindAndDelete */
-
-#ifndef Tix_SimpleListInit
-VFUNC(void,Tix_SimpleListInit,V_Tix_SimpleListInit,_ANSI_ARGS_((Tix_LinkList * lPtr)))
-#endif /* #ifndef Tix_SimpleListInit */
-
-#ifndef Tix_SimpleListInsert
-VFUNC(void,Tix_SimpleListInsert,V_Tix_SimpleListInsert,_ANSI_ARGS_((
- Tix_LinkList * lPtr, char * itemPtr,
- Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_SimpleListInsert */
-
-#ifndef Tix_SimpleListIteratorInit
-VFUNC(void,Tix_SimpleListIteratorInit,V_Tix_SimpleListIteratorInit,_ANSI_ARGS_((
- Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_SimpleListIteratorInit */
-
-#ifndef Tix_SimpleListNext
-VFUNC(void,Tix_SimpleListNext,V_Tix_SimpleListNext,_ANSI_ARGS_((
- Tix_LinkList * lPtr, Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_SimpleListNext */
-
-#ifndef Tix_SimpleListStart
-VFUNC(void,Tix_SimpleListStart,V_Tix_SimpleListStart,_ANSI_ARGS_((
- Tix_LinkList * lPtr, Tix_ListIterator * liPtr)))
-#endif /* #ifndef Tix_SimpleListStart */
-
-#endif /* _TIX */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixBitmaps.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixBitmaps.h
deleted file mode 100644
index 4e9885cb7e8..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixBitmaps.h
+++ /dev/null
@@ -1,618 +0,0 @@
-
-/* $Id: tixBitmaps.h,v 1.1.1.1 2000/05/17 11:08:42 idiscovery Exp $ */
-
-{
-#define maximize_width 15
-#define maximize_height 15
-static UNSIGNED_CHAR maximize_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x04, 0x10, 0x04, 0x70, 0x04, 0x70,
- 0x04, 0x70, 0x04, 0x70, 0x04, 0x70, 0x04, 0x70, 0x04, 0x70, 0x04, 0x70,
- 0xfc, 0x7f, 0xf0, 0x7f, 0xf0, 0x7f};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("maximize"), (char*)maximize_bits, maximize_width, maximize_height);
-}
-{
-#define act_fold_width 16
-#define act_fold_height 10
-static UNSIGNED_CHAR act_fold_bits[] = {
- 0xfc, 0x00, 0xaa, 0x0f, 0x55, 0x15, 0xeb, 0xff, 0x15, 0x80, 0x0b, 0x40,
- 0x05, 0x20, 0x03, 0x10, 0x01, 0x08, 0xff, 0x07};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("act_fold"), (char*)act_fold_bits, act_fold_width, act_fold_height);
-}
-{
-/* XPM */
-static char * act_fold_xpm[] = {
-/* width height num_colors chars_per_pixel */
-"16 12 4 1",
-/* colors */
-" s None c None",
-". c black",
-"X c yellow",
-"o c #5B5B57574646",
-/* pixels */
-" .... ",
-" .XXXX. ",
-" .XXXXXX. ",
-"............. ",
-".oXoXoXoXoXo. ",
-".XoX............",
-".oX.XXXXXXXXXXX.",
-".Xo.XXXXXXXXXX. ",
-".o.XXXXXXXXXXX. ",
-".X.XXXXXXXXXXX. ",
-"..XXXXXXXXXX.. ",
-"............. "};
-Tix_DefinePixmap(Et_Interp, Tk_GetUid("act_fold"), act_fold_xpm);
-}
-{
-#define balarrow_width 6
-#define balarrow_height 6
-static UNSIGNED_CHAR balarrow_bits[] = {
- 0x1f, 0x07, 0x07, 0x09, 0x11, 0x20};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("balarrow"), (char*)balarrow_bits, balarrow_width, balarrow_height);
-}
-{
-#define cbxarrow_width 11
-#define cbxarrow_height 14
-static UNSIGNED_CHAR cbxarrow_bits[] = {
- 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00,
- 0xfe, 0x03, 0xfc, 0x01, 0xf8, 0x00, 0x70, 0x00, 0x20, 0x00, 0x00, 0x00,
- 0xfe, 0x03, 0xfe, 0x03};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("cbxarrow"), (char*)cbxarrow_bits, cbxarrow_width, cbxarrow_height);
-}
-{
-#define ck_def_width 13
-#define ck_def_height 13
-static UNSIGNED_CHAR ck_def_bits[] = {
- 0xff, 0x1f, 0x01, 0x10, 0x55, 0x15, 0x01, 0x10, 0x55, 0x15, 0x01, 0x10,
- 0x55, 0x15, 0x01, 0x10, 0x55, 0x15, 0x01, 0x10, 0x55, 0x15, 0x01, 0x10,
- 0xff, 0x1f};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("ck_def"), (char*)ck_def_bits, ck_def_width, ck_def_height);
-}
-{
-#define ck_off_width 13
-#define ck_off_height 13
-static UNSIGNED_CHAR ck_off_bits[] = {
- 0xff, 0x1f, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10,
- 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10,
- 0xff, 0x1f};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("ck_off"), (char*)ck_off_bits, ck_off_width, ck_off_height);
-}
-{
-#define ck_on_width 13
-#define ck_on_height 13
-static UNSIGNED_CHAR ck_on_bits[] = {
- 0xff, 0x1f, 0x01, 0x10, 0x01, 0x10, 0x01, 0x14, 0x01, 0x16, 0x01, 0x17,
- 0x89, 0x13, 0xdd, 0x11, 0xf9, 0x10, 0x71, 0x10, 0x21, 0x10, 0x01, 0x10,
- 0xff, 0x1f};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("ck_on"), (char*)ck_on_bits, ck_on_width, ck_on_height);
-}
-{
-#define cross_width 14
-#define cross_height 14
-static UNSIGNED_CHAR cross_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x06, 0x18, 0x0e, 0x1c, 0x1c, 0x0e, 0x38, 0x07,
- 0xf0, 0x03, 0xe0, 0x01, 0xe0, 0x01, 0xf0, 0x03, 0x38, 0x07, 0x1c, 0x0e,
- 0x0e, 0x1c, 0x06, 0x18};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("cross"), (char*)cross_bits, cross_width, cross_height);
-}
-{
-#define decr_width 7
-#define decr_height 4
-static UNSIGNED_CHAR decr_bits[] = {
- 0x7f, 0x3e, 0x1c, 0x08};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("decr"), (char*)decr_bits, decr_width, decr_height);
-}
-{
-#define drop_width 16
-#define drop_height 16
-#define drop_x_hot 6
-#define drop_y_hot 4
-static UNSIGNED_CHAR drop_bits[] = {
- 0x00, 0x00, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0x42, 0x04, 0xc2, 0x04,
- 0xc2, 0x05, 0xc2, 0x07, 0xc2, 0x07, 0xc2, 0x0f, 0xfe, 0x1f, 0xc0, 0x07,
- 0xc0, 0x06, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x08};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("drop"), (char*)drop_bits, drop_width, drop_height);
-}
-{
-#define file_width 12
-#define file_height 12
-static UNSIGNED_CHAR file_bits[] = {
- 0xfe, 0x00, 0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0xfe, 0x03};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("file"), (char*)file_bits, file_width, file_height);
-}
-{
-/* XPM */
-static char * file_xpm[] = {
-"12 12 3 1",
-" s None c None",
-". c black",
-"X c #FFFFFFFFF3CE",
-" ........ ",
-" .XXXXXX. ",
-" .XXXXXX... ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .......... "};
-Tix_DefinePixmap(Et_Interp, Tk_GetUid("file"), file_xpm);
-}
-{
-#define folder_width 16
-#define folder_height 10
-static UNSIGNED_CHAR folder_bits[] = {
- 0xfc, 0x00, 0x02, 0x07, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08,
- 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0xff, 0x07};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("folder"), (char*)folder_bits, folder_width, folder_height);
-}
-{
-/* XPM */
-static char * folder_foo_xpm[] = {
-/* width height num_colors chars_per_pixel */
-"16 12 3 1",
-/* colors */
-" s None c None",
-". c black",
-"X c #f0ff80",
-/* pixels */
-" .... ",
-" .XXXX. ",
-" .XXXXXX. ",
-"............. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-".XXXXXXXXXXX. ",
-"............. "};
-Tix_DefinePixmap(Et_Interp, Tk_GetUid("folder"), folder_foo_xpm);
-}
-{
-#define harddisk_width 32
-#define harddisk_height 32
-static UNSIGNED_CHAR harddisk_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xf8, 0xff, 0xff, 0x1f, 0x08, 0x00, 0x00, 0x18, 0xa8, 0xaa, 0xaa, 0x1a,
- 0x48, 0x55, 0xd5, 0x1d, 0xa8, 0xaa, 0xaa, 0x1b, 0x48, 0x55, 0x55, 0x1d,
- 0xa8, 0xfa, 0xaf, 0x1a, 0xc8, 0xff, 0xff, 0x1d, 0xa8, 0xfa, 0xaf, 0x1a,
- 0x48, 0x55, 0x55, 0x1d, 0xa8, 0xaa, 0xaa, 0x1a, 0x48, 0x55, 0x55, 0x1d,
- 0xa8, 0xaa, 0xaa, 0x1a, 0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("harddisk"), (char*)harddisk_bits, harddisk_width, harddisk_height);
-}
-{
-#define hourglass_width 32
-#define hourglas_height 32
-#define hourglas_x_hot 16
-#define hourglas_y_hot 15
-static UNSIGNED_CHAR hourglas_bits[] = {
- 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff,
- 0x7c, 0x00, 0x00, 0x7c, 0x7c, 0x00, 0x00, 0x7c, 0x7c, 0x00, 0x00, 0x7c,
- 0xfc, 0x00, 0x00, 0x7e, 0xfc, 0x00, 0x00, 0x7e, 0xfc, 0x00, 0x00, 0x7e,
- 0xbc, 0x01, 0x00, 0x7b, 0xbc, 0xfd, 0x7e, 0x7b, 0x3c, 0xfb, 0xbf, 0x79,
- 0x3c, 0xe6, 0xcf, 0x78, 0x3c, 0xdc, 0x77, 0x78, 0x3c, 0x38, 0x39, 0x78,
- 0x3c, 0x60, 0x0d, 0x78, 0x3c, 0x38, 0x38, 0x78, 0x3c, 0x1c, 0x71, 0x78,
- 0x3c, 0x06, 0xc1, 0x78, 0x3c, 0x03, 0x80, 0x79, 0xbc, 0x01, 0x00, 0x7b,
- 0xbc, 0x01, 0x00, 0x7b, 0xfc, 0x00, 0x01, 0x7e, 0xfc, 0x00, 0x01, 0x7e,
- 0xfc, 0x80, 0x03, 0x7e, 0x7c, 0xc0, 0x07, 0x7c, 0x7c, 0xf0, 0x1f, 0x7c,
- 0x7c, 0xfe, 0xff, 0x7c, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0xff,
- 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("hourglas"), (char*)hourglas_bits, hourglass_width, hourglas_height);
-}
-{
-#define incr_width 7
-#define incr_height 4
-static UNSIGNED_CHAR incr_bits[] = {
- 0x08, 0x1c, 0x3e, 0x7f};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("incr"), (char*)incr_bits, incr_width, incr_height);
-}
-{
-/* XPM */
-static char * info_xpm[] = {
-"32 32 3 1",
-" s None c None",
-". c #000000000000",
-"X c white",
-" ",
-" ......... ",
-" ...XXXXXXXXX... ",
-" .XXXXXXXXXXXXXXX. ",
-" ..XXXXXXXXXXXXXXXXX.. ",
-" .XXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXX...XXXXXXXXXX. ",
-" .XXXXXXXXX.....XXXXXXXXX. ",
-" .XXXXXXXXX.......XXXXXXXXX. ",
-" .XXXXXXXXXX.......XXXXXXXXXX. ",
-" .XXXXXXXXXX.......XXXXXXXXXX. ",
-" .XXXXXXXXXXX.....XXXXXXXXXXX. ",
-".XXXXXXXXXXXXX...XXXXXXXXXXXXX. ",
-".XXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ",
-".XXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ",
-".XXXXXXXXXXX.......XXXXXXXXXXX. ",
-".XXXXXXXXXXX.......XXXXXXXXXXX. ",
-".XXXXXXXXXXX.......XXXXXXXXXXX. ",
-".XXXXXXXXXXX.......XXXXXXXXXXX. ",
-".XXXXXXXXXXX.......XXXXXXXXXXX. ",
-".XXXXXXXXXXX.......XXXXXXXXXXX. ",
-" .XXXXXXXXXX.......XXXXXXXXXX. ",
-" .XXXXXXXXXX.......XXXXXXXXXX. ",
-" .XXXXXXXXXX.......XXXXXXXXXX. ",
-" .XXXXXXXXX.......XXXXXXXXX. ",
-" .XXXXXXXX.......XXXXXXXX. ",
-" .XXXXXXXX.......XXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXX. ",
-" ..XXXXXXXXXXXXXXXXX.. ",
-" .XXXXXXXXXXXXXXX. ",
-" ...XXXXXXXXX... ",
-" ......... "};
-Tix_DefinePixmap(Et_Interp, Tk_GetUid("info"), info_xpm);
-}
-{
-#define minimize_width 15
-#define minimize_height 15
-static UNSIGNED_CHAR minimize_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01,
- 0x20, 0x03, 0x20, 0x03, 0xe0, 0x03, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("minimize"), (char*)minimize_bits, minimize_width, minimize_height);
-}
-{
-#define minus_width 9
-#define minus_height 9
-static UNSIGNED_CHAR minus_bits[] = {
- 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x7d, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0xff, 0x01};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("minus"), (char*)minus_bits, minus_width, minus_height);
-}
-{
-/* XPM */
-static char * minus_xpm[] = {
-"9 9 2 1",
-". s None c None",
-" c black",
-" ",
-" ....... ",
-" ....... ",
-" ....... ",
-" . . ",
-" ....... ",
-" ....... ",
-" ....... ",
-" "};
-Tix_DefinePixmap(Et_Interp, Tk_GetUid("minus"), minus_xpm);
-}
-{
-#define minusarm_width 9
-#define minusarm_height 9
-static UNSIGNED_CHAR minusarm_bits[] = {
- 0xff, 0x01, 0x01, 0x01, 0x7d, 0x01, 0x7d, 0x01, 0x01, 0x01, 0x7d, 0x01,
- 0x7d, 0x01, 0x01, 0x01, 0xff, 0x01};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("minusarm"), (char*)minusarm_bits, minusarm_width, minusarm_height);
-}
-{
-/* XPM */
-static char * minusarm_xpm[] = {
-"9 9 3 1",
-" c black",
-". c yellow",
-"X c #808080808080",
-" ",
-" ....... ",
-" ....... ",
-" .XXXXX. ",
-" .X X. ",
-" .XXXXX. ",
-" ....... ",
-" ....... ",
-" "};
-Tix_DefinePixmap(Et_Interp, Tk_GetUid("minusarm"), minusarm_xpm);
-}
-{
-#define network_width 32
-#define network_height 32
-static UNSIGNED_CHAR network_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x02, 0x40,
- 0x00, 0x00, 0xfa, 0x5f, 0x00, 0x00, 0x0a, 0x50, 0x00, 0x00, 0x0a, 0x52,
- 0x00, 0x00, 0x0a, 0x52, 0x00, 0x00, 0x8a, 0x51, 0x00, 0x00, 0x0a, 0x50,
- 0x00, 0x00, 0x4a, 0x50, 0x00, 0x00, 0x0a, 0x50, 0x00, 0x00, 0x0a, 0x50,
- 0x00, 0x00, 0xfa, 0x5f, 0x00, 0x00, 0x02, 0x40, 0xfe, 0x7f, 0x52, 0x55,
- 0x02, 0x40, 0xaa, 0x6a, 0xfa, 0x5f, 0xfe, 0x7f, 0x0a, 0x50, 0xfe, 0x7f,
- 0x0a, 0x52, 0x80, 0x00, 0x0a, 0x52, 0x80, 0x00, 0x8a, 0x51, 0x80, 0x00,
- 0x0a, 0x50, 0x80, 0x00, 0x4a, 0x50, 0x80, 0x00, 0x0a, 0x50, 0xe0, 0x03,
- 0x0a, 0x50, 0x20, 0x02, 0xfa, 0xdf, 0x3f, 0x03, 0x02, 0x40, 0xa0, 0x02,
- 0x52, 0x55, 0xe0, 0x03, 0xaa, 0x6a, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00,
- 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("network"), (char*)network_bits, network_width, network_height);
-}
-{
-/* XPM */
-static char * no_entry_xpm[] = {
-"32 32 4 1",
-" s None c None",
-". c #000000000000",
-"X c red",
-"o c yellow",
-" ",
-" ......... ",
-" ...XXXXXXXXX... ",
-" .XXXXXXXXXXXXXXX. ",
-" ..XXXXXXXXXXXXXXXXX.. ",
-" .XXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXXXXXXXX. ",
-".XXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ",
-".XXX.......................XXX. ",
-".XXX.ooooooooooooooooooooo.XXX. ",
-".XXX.ooooooooooooooooooooo.XXX. ",
-".XXX.ooooooooooooooooooooo.XXX. ",
-".XXX.ooooooooooooooooooooo.XXX. ",
-".XXX.ooooooooooooooooooooo.XXX. ",
-".XXX.ooooooooooooooooooooo.XXX. ",
-".XXX.......................XXX. ",
-" .XXXXXXXXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXX. ",
-" ..XXXXXXXXXXXXXXXXX.. ",
-" .XXXXXXXXXXXXXXX. ",
-" ...XXXXXXXXX... ",
-" ......... "};
-Tix_DefinePixmap(Et_Interp, Tk_GetUid("no_entry"), no_entry_xpm);
-}
-{
-#define openfile_width 16
-#define openfile_height 10
-static UNSIGNED_CHAR openfile_bits[] = {
- 0xf8, 0x01, 0x04, 0x06, 0x02, 0x08, 0x02, 0x10, 0xe2, 0xff, 0x52, 0x55,
- 0xaa, 0x2a, 0x56, 0x15, 0xaa, 0x0a, 0xfe, 0x07};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("openfile"), (char*)openfile_bits, openfile_width, openfile_height);
-}
-{
-#define openfold_width 16
-#define openfold_height 10
-static UNSIGNED_CHAR openfold_bits[] = {
- 0xfc, 0x00, 0x02, 0x07, 0x01, 0x08, 0xc1, 0xff, 0x21, 0x80, 0x11, 0x40,
- 0x09, 0x20, 0x05, 0x10, 0x03, 0x08, 0xff, 0x07};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("openfold"), (char*)openfold_bits, openfold_width, openfold_height);
-}
-{
-/* XPM */
-static char * openfolder_xpm[] = {
-/* width height num_colors chars_per_pixel */
-"16 12 3 1",
-/* colors */
-" s None c None",
-". c black",
-"X c #f0ff80",
-/* pixels */
-" .... ",
-" .XXXX. ",
-" .XXXXXX. ",
-"............. ",
-".XXXXXXXXXXX. ",
-".XXX............",
-".XX.XXXXXXXXXXX.",
-".XX.XXXXXXXXXX. ",
-".X.XXXXXXXXXXX. ",
-".X.XXXXXXXXXXX. ",
-"..XXXXXXXXXX.. ",
-"............. "};
-Tix_DefinePixmap(Et_Interp, Tk_GetUid("openfold"), openfolder_xpm);
-}
-{
-#define plus_width 9
-#define plus_height 9
-static UNSIGNED_CHAR plus_bits[] = {
- 0xff, 0x01, 0x01, 0x01, 0x11, 0x01, 0x11, 0x01, 0x7d, 0x01, 0x11, 0x01,
- 0x11, 0x01, 0x01, 0x01, 0xff, 0x01};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("plus"), (char*)plus_bits, plus_width, plus_height);
-}
-{
-/* XPM */
-static char * plus_xpm[] = {
-"9 9 2 1",
-". s None c None",
-" c black",
-" ",
-" ....... ",
-" ... ... ",
-" ... ... ",
-" . . ",
-" ... ... ",
-" ... ... ",
-" ....... ",
-" "};
-Tix_DefinePixmap(Et_Interp, Tk_GetUid("plus"), plus_xpm);
-}
-{
-#define plusarm_width 9
-#define plusarm_height 9
-static UNSIGNED_CHAR plusarm_bits[] = {
- 0xff, 0x01, 0x01, 0x01, 0x6d, 0x01, 0x6d, 0x01, 0x01, 0x01, 0x6d, 0x01,
- 0x6d, 0x01, 0x01, 0x01, 0xff, 0x01};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("plusarm"), (char*)plusarm_bits, plusarm_width, plusarm_height);
-}
-{
-/* XPM */
-static char * plusarm_xpm[] = {
-"9 9 3 1",
-" c black",
-". c yellow",
-"X c gray40",
-" ",
-" ....... ",
-" ... ... ",
-" ..X X.. ",
-" . X . ",
-" ..X X.. ",
-" ... ... ",
-" ....... ",
-" "};
-Tix_DefinePixmap(Et_Interp, Tk_GetUid("plusarm"), plusarm_xpm);
-}
-{
-#define resize1_width 13
-#define resize1_height 13
-#define resize1_x_hot 6
-#define resize1_y_hot 6
-static UNSIGNED_CHAR resize1_bits[] = {
- 0x7f, 0x00, 0x21, 0x00, 0x11, 0x00, 0x31, 0x00, 0x6d, 0x00, 0xdb, 0x00,
- 0xb1, 0x11, 0x60, 0x1b, 0xc0, 0x16, 0x80, 0x11, 0x00, 0x11, 0x80, 0x10,
- 0xc0, 0x1f};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("resize1"),(char*) resize1_bits, resize1_width, resize1_height);
-}
-{
-#define resize2_width 13
-#define resize2_height 13
-#define resize2_x_hot 6
-#define resize2_y_hot 6
-static UNSIGNED_CHAR resize2_bits[] = {
- 0xc0, 0x1f, 0x80, 0x10, 0x00, 0x11, 0x80, 0x11, 0xc0, 0x16, 0x60, 0x1b,
- 0xb1, 0x11, 0xdb, 0x00, 0x6d, 0x00, 0x31, 0x00, 0x11, 0x00, 0x21, 0x00,
- 0x7f, 0x00};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("resize2"), (char*)resize2_bits, resize2_width, resize2_height);
-}
-{
-#define restore_width 15
-#define restore_height 15
-static UNSIGNED_CHAR restore_bits[] = {
- 0x00, 0x00, 0x80, 0x00, 0xc0, 0x01, 0xe0, 0x03, 0xf0, 0x07, 0xf8, 0x0f,
- 0xfc, 0x1f, 0x00, 0x00, 0xfc, 0x1f, 0xf8, 0x0f, 0xf0, 0x07, 0xe0, 0x03,
- 0xc0, 0x01, 0x80, 0x00, 0x00, 0x00};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("restore"), (char*)restore_bits, restore_width, restore_height);
-}
-{
-#define srcfile_width 12
-#define srcfile_height 12
-static UNSIGNED_CHAR srcfile_bits[] = {
- 0xfe, 0x01, 0x02, 0x01, 0x02, 0x07, 0x02, 0x04, 0x72, 0x04, 0x8a, 0x04,
- 0x0a, 0x04, 0x0a, 0x04, 0x8a, 0x04, 0x72, 0x04, 0x02, 0x04, 0xfe, 0x07};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("srcfile"), (char*)srcfile_bits, srcfile_width, srcfile_height);
-}
-{
-/* XPM */
-static char * srcfile_xpm[] = {
-"12 12 3 1",
-" s None c None",
-". c black",
-"X c gray91",
-" ........ ",
-" .XXXXXX. ",
-" .XXXXXX... ",
-" .XXXXXXXX. ",
-" .XX...XXX. ",
-" .X.XXX.XX. ",
-" .X.XXXXXX. ",
-" .X.XXXXXX. ",
-" .X.XXX.XX. ",
-" .XX...XXX. ",
-" .XXXXXXXX. ",
-" .......... "};
-Tix_DefinePixmap(Et_Interp, Tk_GetUid("srcfile"), srcfile_xpm);
-}
-{
-#define system_width 15
-#define system_height 15
-static UNSIGNED_CHAR system_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f,
- 0x02, 0x20, 0x02, 0x20, 0xfe, 0x3f, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("system"), (char*)system_bits, system_width, system_height);
-}
-{
-#define textfile_width 12
-#define textfile_height 12
-static UNSIGNED_CHAR textfile_bits[] = {
- 0xfe, 0x01, 0x02, 0x01, 0x02, 0x07, 0x7a, 0x04, 0x02, 0x04, 0x3a, 0x04,
- 0x02, 0x04, 0xfa, 0x04, 0x02, 0x04, 0xfa, 0x04, 0x02, 0x04, 0xfe, 0x07};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("textfile"), (char*)textfile_bits, textfile_width, textfile_height);
-}
-{
-/* XPM */
-static char * textfile_xpm[] = {
-"12 12 3 1",
-" s None c None",
-". c black",
-"X c #FFFFFFFFF3CE",
-" ........ ",
-" .XXXXXX. ",
-" .XXXXXX... ",
-" .X....XXX. ",
-" .XXXXXXXX. ",
-" .X...XXXX. ",
-" .XXXXXXXX. ",
-" .X.....XX. ",
-" .XXXXXXXX. ",
-" .X.....XX. ",
-" .XXXXXXXX. ",
-" .......... "};
-Tix_DefinePixmap(Et_Interp, Tk_GetUid("textfile"), textfile_xpm);
-}
-{
-#define tick_width 14
-#define tick_height 14
-static UNSIGNED_CHAR tick_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x38, 0x00, 0x1c, 0x00, 0x0e,
- 0x00, 0x07, 0x80, 0x03, 0xc2, 0x01, 0xe7, 0x00, 0x7f, 0x00, 0x3e, 0x00,
- 0x1c, 0x00, 0x08, 0x00};
-Tk_DefineBitmap(Et_Interp, Tk_GetUid("tick"), (char*)tick_bits, tick_width, tick_height);
-}
-{
-/* XPM */
-static char * warning_xpm[] = {
-"32 32 3 1",
-" s None c None",
-". c #000000000000",
-"X c yellow",
-" ",
-" ......... ",
-" ...XXXXXXXXX... ",
-" .XXXXXXXXXXXXXXX. ",
-" ..XXXXXXXXXXXXXXXXX.. ",
-" .XXXXXXXXX...XXXXXXXXX. ",
-" .XXXXXXXXX.....XXXXXXXXX. ",
-" .XXXXXXXXX.....XXXXXXXXX. ",
-" .XXXXXXXXX.......XXXXXXXXX. ",
-" .XXXXXXXXXX.......XXXXXXXXXX. ",
-" .XXXXXXXXXX.......XXXXXXXXXX. ",
-" .XXXXXXXXXX.......XXXXXXXXXX. ",
-".XXXXXXXXXXX.......XXXXXXXXXXX. ",
-".XXXXXXXXXXX.......XXXXXXXXXXX. ",
-".XXXXXXXXXXX.......XXXXXXXXXXX. ",
-".XXXXXXXXXXX.......XXXXXXXXXXX. ",
-".XXXXXXXXXXX.......XXXXXXXXXXX. ",
-".XXXXXXXXXXXX.....XXXXXXXXXXXX. ",
-".XXXXXXXXXXXX.....XXXXXXXXXXXX. ",
-".XXXXXXXXXXXX.....XXXXXXXXXXXX. ",
-".XXXXXXXXXXXXX...XXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXXXXXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXX...XXXXXXXXXXXX. ",
-" .XXXXXXXXXXX.....XXXXXXXXXXX. ",
-" .XXXXXXXXX.......XXXXXXXXX. ",
-" .XXXXXXXX.......XXXXXXXX. ",
-" .XXXXXXXX.......XXXXXXXX. ",
-" .XXXXXXXX.....XXXXXXXX. ",
-" ..XXXXXXX...XXXXXXX.. ",
-" .XXXXXXXXXXXXXXX. ",
-" ...XXXXXXXXX... ",
-" ......... "};
-Tix_DefinePixmap(Et_Interp, Tk_GetUid("warning"), warning_xpm);
-}
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixDef.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixDef.h
deleted file mode 100644
index 14b2dbc67e7..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixDef.h
+++ /dev/null
@@ -1,173 +0,0 @@
-
-/* $Id: tixDef.h,v 1.2 2000/10/17 16:35:37 idiscovery Exp $ */
-
-/*
- * tixdef.h --
- *
- * This file defines the defaults for all options for all of
- * the Tix widgets.
- *
- * Copyright (c) 1996, Expert Interface Technologies
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- */
-
-#ifndef TIX_DEFAULT
-#define TIX_DEFAULT
-
-/*
- * Include the defaults of the TK distriburion
- */
-#ifndef _DEFAULT
-#include <default.h>
-#endif
-
-#ifndef CTL_FONT
-#define CTL_FONT "Helvetica -12 bold"
-#endif
-
-#define BORDER_COLOR "gray"
-
-/*
- * Compound widget
- */
-#define DEF_CMPIMAGE_BG_COLOR NORMAL_BG
-#define DEF_CMPIMAGE_BG_MONO WHITE
-#define DEF_CMPIMAGE_FG_COLOR BLACK
-#define DEF_CMPIMAGE_FG_MONO BLACK
-#define DEF_CMPIMAGE_FONT CTL_FONT
-
-/*
- * tixHList widget
- */
-#define DEF_HLIST_BG_COLOR NORMAL_BG
-#define DEF_HLIST_BG_MONO WHITE
-#define DEF_HLIST_BORDER_WIDTH "2"
-#define DEF_HLIST_BROWSE_COMMAND ""
-#define DEF_HLIST_COMMAND ""
-#define DEF_HLIST_COLUMNS "1"
-#define DEF_HLIST_CURSOR ""
-#define DEF_HLIST_DISPLAY_MODE "tree"
-#define DEF_HLIST_DRAG_COMMAND ""
-#define DEF_HLIST_DRAW_BRANCH "true"
-#define DEF_HLIST_DROP_COMMAND ""
-#define DEF_HLIST_EXPORT_SELECTION "0"
-#define DEF_HLIST_FONT CTL_FONT
-#define DEF_HLIST_FG_COLOR BLACK
-#define DEF_HLIST_FG_MONO BLACK
-#define DEF_HLIST_HEADER "0"
-#define DEF_HLIST_HEIGHT "10"
-#define DEF_HLIST_HIGHLIGHT_COLOR BLACK
-#define DEF_HLIST_HIGHLIGHT_MONO BLACK
-#define DEF_HLIST_HIGHLIGHT_WIDTH "2"
-#define DEF_HLIST_RELIEF "sunken"
-#define DEF_HLIST_ORIENT "vertical"
-#define DEF_HLIST_PADX "2"
-#define DEF_HLIST_PADY "2"
-#define DEF_HLIST_GAP "5"
-#define DEF_HLIST_INDENT "10"
-#define DEF_HLIST_INDICATOR "0"
-#define DEF_HLIST_INDICATOR_CMD ""
-#define DEF_HLIST_ITEM_TYPE "text"
-#define DEF_HLIST_SELECT_BG_COLOR ACTIVE_BG
-#define DEF_HLIST_SELECT_FG_COLOR BLACK
-#define DEF_HLIST_SELECT_BG_MONO BLACK
-#define DEF_HLIST_SELECT_FG_MONO WHITE
-#define DEF_HLIST_SELECT_MODE "browse"
-#define DEF_HLIST_SELECT_BORDERWIDTH "1"
-#define DEF_HLIST_SEPARATOR "."
-#define DEF_HLIST_SIZE_COMMAND ""
-#define DEF_HLIST_TAKE_FOCUS "1"
-#define DEF_HLIST_WIDTH "20"
-#define DEF_HLIST_WIDE_SELECT "true"
-#define DEF_HLIST_Y_SCROLL_COMMAND ""
-#define DEF_HLIST_X_SCROLL_COMMAND ""
-
-/*
- * HList Entry
- */
-#define DEF_HLISTENTRY_BITMAP ""
-#define DEF_HLISTENTRY_DATA ""
-#define DEF_HLISTENTRY_GAP "4"
-#define DEF_HLISTENTRY_IMAGE ""
-#define DEF_HLISTENTRY_JUSTIFY "left"
-#define DEF_HLISTENTRY_NAME ""
-#define DEF_HLISTENTRY_PADX "2"
-#define DEF_HLISTENTRY_PADY "2"
-#define DEF_HLISTENTRY_STATE "normal"
-#define DEF_HLISTENTRY_TEXT ""
-#define DEF_HLISTENTRY_UNDERLINE "-1"
-#define DEF_HLISTENTRY_WIDGET ""
-#define DEF_HLISTENTRY_WLENGTH "0"
-
-/*
- * HList Entry
- */
-#define DEF_HLISTHEADER_BG_COLOR NORMAL_BG
-#define DEF_HLISTHEADER_BG_MONO WHITE
-#define DEF_HLISTHEADER_BORDER_WIDTH "2"
-#define DEF_HLISTHEADER_RELIEF "raised"
-
-/*
- * tixNBFrame widget
- */
-#define DEF_NOTEBOOKFRAME_ACTIVE_BG_COLOR ACTIVE_BG
-#define DEF_NOTEBOOKFRAME_ACTIVE_BG_MONO BLACK
-#define DEF_NOTEBOOKFRAME_INACTIVE_BG_COLOR TROUGH
-#define DEF_NOTEBOOKFRAME_INACTIVE_BG_MONO WHITE
-#define DEF_NOTEBOOKFRAME_BACKPAGE_COLOR NORMAL_BG
-#define DEF_NOTEBOOKFRAME_BACKPAGE_MONO WHITE
-#define DEF_NOTEBOOKFRAME_BG_COLOR NORMAL_BG
-#define DEF_NOTEBOOKFRAME_BG_MONO WHITE
-#define DEF_NOTEBOOKFRAME_DISABLED_FG_COLOR DISABLED
-#define DEF_NOTEBOOKFRAME_DISABLED_FG_MONO ""
-#define DEF_NOTEBOOKFRAME_FOCUS_COLOR BLACK
-#define DEF_NOTEBOOKFRAME_FOCUS_MONO BLACK
-#define DEF_NOTEBOOKFRAME_BORDER_WIDTH "2"
-#define DEF_NOTEBOOKFRAME_CURSOR ""
-#define DEF_NOTEBOOKFRAME_FONT CTL_FONT
-#define DEF_NOTEBOOKFRAME_FG_COLOR BLACK
-#define DEF_NOTEBOOKFRAME_FG_MONO BLACK
-#define DEF_NOTEBOOKFRAME_RELIEF "sunken"
-#define DEF_NOTEBOOKFRAME_SLAVE "1"
-#define DEF_NOTEBOOKFRAME_TAKE_FOCUS "1"
-#define DEF_NOTEBOOKFRAME_WIDTH "10"
-#define DEF_NOTEBOOKFRAME_TABPADX "6"
-#define DEF_NOTEBOOKFRAME_TABPADY "5"
-
-/*
- * tixTList.h
- */
-#define DEF_TLIST_BG_COLOR NORMAL_BG
-#define DEF_TLIST_BG_MONO WHITE
-#define DEF_TLIST_BORDER_WIDTH "2"
-#define DEF_TLIST_BROWSE_COMMAND ""
-#define DEF_TLIST_COMMAND ""
-#define DEF_TLIST_CURSOR ""
-#define DEF_TLIST_FONT CTL_FONT
-#define DEF_TLIST_FG_COLOR BLACK
-#define DEF_TLIST_FG_MONO BLACK
-#define DEF_TLIST_HEIGHT "10"
-#define DEF_TLIST_HIGHLIGHT_COLOR BLACK
-#define DEF_TLIST_HIGHLIGHT_MONO BLACK
-#define DEF_TLIST_HIGHLIGHT_WIDTH "2"
-#define DEF_TLIST_ITEM_TYPE "text"
-#define DEF_TLIST_RELIEF "sunken"
-#define DEF_TLIST_ORIENT "vertical"
-#define DEF_TLIST_PADX "2"
-#define DEF_TLIST_PADY "2"
-#define DEF_TLIST_SELECT_BG_COLOR ACTIVE_BG
-#define DEF_TLIST_SELECT_FG_COLOR BLACK
-#define DEF_TLIST_SELECT_BG_MONO BLACK
-#define DEF_TLIST_SELECT_FG_MONO WHITE
-#define DEF_TLIST_SELECT_MODE "browse"
-#define DEF_TLIST_SELECT_BORDERWIDTH "1"
-#define DEF_TLIST_STATE "normal"
-#define DEF_TLIST_SIZE_COMMAND ""
-#define DEF_TLIST_TAKE_FOCUS "1"
-#define DEF_TLIST_WIDTH "20"
-#define DEF_TLIST_Y_SCROLL_COMMAND ""
-#define DEF_TLIST_X_SCROLL_COMMAND ""
-
-#endif /* TIX_DEFAULT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixForm.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixForm.h
deleted file mode 100644
index 8b2dbcd6976..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixForm.h
+++ /dev/null
@@ -1,143 +0,0 @@
-
-/* $Id: tixForm.h,v 1.1.1.1 2000/05/17 11:08:42 idiscovery Exp $ */
-
-/*
- * tixForm.h --
- *
- * Declares the internal functions and data types for the Tix Form
- * geometry manager.
- *
- * Copyright (c) 1996, Expert Interface Technologies
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- */
-
-#ifndef _TIX_FORM_H
-#define _TIX_FORM_H
-
-#define SIDE0 0
-#define SIDE1 1
-
-#define NEXT_SIDE(x) (!x)
-
-#define SIDEX 0
-#define SIDEY 1
-
-#define AXIS_X 0
-#define AXIS_Y 1
-
-#define OPPO_SIDE0 1
-#define OPPO_SIDE1 2
-#define OPPO_ALL 3
-
-#define PINNED_SIDE0 4
-#define PINNED_SIDE1 8
-#define PINNED_ALL 12
-
-#define ATT_NONE 0
-#define ATT_GRID 1
-#define ATT_OPPOSITE 2
-#define ATT_PARALLEL 3
-
-/*
- * The following structures carry information about the client windows
- */
-typedef union {
- int grid;
- struct _FormInfo * widget;
-} Attachment;
-
-typedef struct {
- int pcnt; /* percentage anchor point */
- int disp; /* displacement from the percentage anchor point*/
-} Side;
-
-typedef struct _FormInfo {
- Tk_Window tkwin;
- struct _MasterInfo* master; /* The master of this window */
- struct _FormInfo * next;
-
- int depend; /* used to detect circular dependency*/
-
- /* These are specified by the user and set by the "tixForm" command
- */
- Attachment att[2][2]; /* anchor of attachment */
- int off[2][2]; /* offset of attachment */
- char isDefault[2][2];/* Is this side a default attachment*/
-
- char attType[2][2]; /* type of attachment
- GRID or PIXEL*/
- int pad[2][2]; /* value of padding */
-
- /* These values are calculated by the PinnClient() functions
- * and are used to calculated the required size of the master
- * inside CalculateMasterGeometry(), as well as the positions
- * of the clients inside ArrangeGeometry()
- */
- Side side[2][2];
- int sideFlags[2];
-
- /* These values are used to place the clients into the clients
- */
- int posn[2][2];
-
- /* These things are for Spring'ing */
- int spring[2][2];
- struct _FormInfo * strWidget[2][2];
- int springFail[2];
- int fill[2];
-} FormInfo;
-
-
-/*
- * The following structures carry information about the master windows
- */
-typedef struct {
- unsigned int isDeleted : 1;
- unsigned int repackPending : 1;
-} MasterFlags;
-
-typedef struct _MasterInfo {
- Tk_Window tkwin;
- struct _FormInfo * client;
- struct _FormInfo * client_tail;
- int numClients;
- int reqSize[2];
- int numRequests; /* This is used to detect
- * whether two geometry managers
- * are used to manage the same
- * master window
- */
- int grids[2];
- MasterFlags flags;
-} MasterInfo;
-
-/* tixFormMisc.c */
-
-
-EXTERN int TixFm_Configure _ANSI_ARGS_((FormInfo *clientPtr,
- Tk_Window topLevel,
- Tcl_Interp* interp, int argc, Tcl_Obj *CONST *objv));
-
-/* tixForm.c */
-EXTERN FormInfo * TixFm_GetFormInfo _ANSI_ARGS_((Tk_Window tkwin,
- int create));
-EXTERN void TixFm_StructureProc _ANSI_ARGS_((ClientData clientData,
- XEvent * eventPtr));
-EXTERN void TixFm_AddToMaster _ANSI_ARGS_((MasterInfo *masterPtr,
- FormInfo *clientPtr));
-EXTERN void TixFm_DeleteMaster _ANSI_ARGS_((
- MasterInfo *masterPtr));
-EXTERN void TixFm_FreeMasterInfo _ANSI_ARGS_((
- char *clientData));
-EXTERN FormInfo * TixFm_FindClientPtrByName _ANSI_ARGS_((
- Tcl_Interp * interp, char * name,
- Tk_Window topLevel));
-EXTERN void TixFm_ForgetOneClient _ANSI_ARGS_((
- FormInfo *clientPtr));
-EXTERN void TixFm_Unlink _ANSI_ARGS_((FormInfo *clientPtr));
-EXTERN void TixFm_UnlinkFromMaster _ANSI_ARGS_((
- FormInfo *clientPtr));
-#endif /* _TIX_FORM_H */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixGrData.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixGrData.h
deleted file mode 100644
index 1db10aaa37b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixGrData.h
+++ /dev/null
@@ -1,88 +0,0 @@
-
-/* $Id: tixGrData.h,v 1.1.1.1 2000/05/17 11:08:42 idiscovery Exp $ */
-
-/*
- * tixGData.h --
- *
- * Defines portable data structure for tixGrid.
- *
- * Copyright (c) 1996, Expert Interface Technologies
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- */
-
-#ifndef _TIX_GRID_DATA_H_
-#define _TIX_GRID_DATA_H_
-
-/*
- * Data structure that stored the cells in a Grid widget. It is optimized
- * for column/row insertion and deletion.
- *
- * - A grid is divideded into a set of rows and columns. Each row and column
- * is divided into a set of cells.
- *
- * - The following discusses the structure of a row. The structure of a
- * column is the reverse of a row.
- *
- * Row y is stored in the hash table TixGridDataSet.index[1] with
- * the index y. Hence, to search for row y, we use the FindHashEntry
- * operation:
- *
- * row_y = TixGridDataSet.index[1].FindHashEntry(y);
- *
- * To locate a cell (x,y), we can first find the row y, and then
- * locate the cell at column x of this row. Note that the cell is
- * *not* indexed by its column position (y), but rather by the hash
- * table of the column y. The following example illustrates how cell
- * (x,y) can be searched:
- *
- * row_y = TixGridDataSet.index[1].FindHashEntry(y);
- * col_x = TixGridDataSet.index[0].FindHashEntry(x);
- *
- * cell_xy = row_x.list.FindHashEntry(&col_x);
- *
- * The advantage of this arrangement is it is very efficient to
- * insert a row into into the grid -- we just have to fix the
- * indices of the rows table. For example, if, after the insertion,
- * row_y is now moved to the row y1, we change its index from y to
- * y1. In general, an insertion operation takes log(n) time in a
- * grid that contains n items.
- *
- */
-typedef struct TixGridDataSet {
- Tcl_HashTable index[2]; /* the row and column indices */
- /* index[0] holds the columns
- * (horizontal index)
- */
- int maxIdx[2]; /* the max row/col, or {-1,-1}
- * if there are no rows/col
- */
-} TixGridDataSet;
-
-#define TIX_GR_AUTO 0
-#define TIX_GR_DEFAULT 1
-#define TIX_GR_DEFINED_PIXEL 2
-#define TIX_GR_DEFINED_CHAR 3
-
-typedef struct TixGridSize {
- int sizeType;
- int sizeValue; /* width or height */
- int pixels;
- int pad0, pad1;
- double charValue;
-} TixGridSize;
-
-typedef struct TixGridRowCol {
- /* private: */
- Tcl_HashTable table;
-
- /* public: */
- int dispIndex; /* the row or column in which
- * this TixGridRowCol is displayed */
- TixGridSize size;
-} TixGridRowCol;
-
-
-#endif
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixGrid.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixGrid.h
deleted file mode 100644
index 90cee98909b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixGrid.h
+++ /dev/null
@@ -1,458 +0,0 @@
-
-/* $Id: tixGrid.h,v 1.1.1.1 2000/05/17 11:08:42 idiscovery Exp $ */
-
-/*
- * tixGrid.h --
- *
- * Defines main data structures for tixGrid
- *
- * Copyright (c) 1996, Expert Interface Technologies
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- */
-
-#ifndef _TIX_GRID_H_
-#define _TIX_GRID_H_
-#include "tkVMacro.h"
-
-#ifndef _TIX_GRID_DATA_H_
-#include "tixGrData.h"
-#endif
-
-#define TIX_X 0
-#define TIX_Y 1
-
-
-#define TIX_S_MARGIN 0
-#define TIX_X_MARGIN 1
-#define TIX_Y_MARGIN 2
-#define TIX_MAIN 3
-
-#define TIX_SITE_NONE -1
-
-typedef struct TixGrEntry {
- Tix_DItem * iPtr;
- Tcl_HashEntry * entryPtr[2]; /* The index of this entry in the
- * row/col tables */
-} TixGrEntry;
-
-/*----------------------------------------------------------------------
- * Render Block
- *
- * Before the Grid is rendered, information is filled into a pseudo 2D
- * array of RenderBlockElem's:
- *
- * (1) entries are placed in the appropriate (x,y) locations
- * (2) background and borders are formatted according
- * (3) highlights are formatted.
- *
- * The widget is redrawn using the render-block. This saves reformatting
- * the next time the widget is exposed.
- *----------------------------------------------------------------------
- */
-typedef struct RenderBlockElem {
- TixGrEntry * chPtr; /* not allocated, don't need to free */
- int borderW[2][2];
- int index[2];
-
- unsigned int selected : 1;
- unsigned int filled : 1;
-} RenderBlockElem;
-
-
-/* ElmDispSize --
- *
- * This structure stores the size information of the visible
- * rows (RenderBlock.dispSize[0][...]) and columns
- * (RenderBlock.dispSize[1][...])
- */
-typedef struct ElmDispSize {
- int preBorder;
- int size;
- int postBorder;
-
- int total; /* simple the sum of the above */
-} ElmDispSize;
-
-typedef struct RenderBlock {
- int size[2]; /* num of rows and cols in the render block */
-
- RenderBlockElem **elms; /* An Malloc'ed pseudo 2D array (you can do
- * things like elms[0][0]), Used for the
- * main body of the Grid.
- */
- ElmDispSize *dispSize[2]; /* (dispSizes[0][x], dispSizes[1][y])
- * will be the dimension of the element (x,y)
- * displayed on the screen (may be bigger
- * or smaller than its desired size). */
- int visArea[2]; /* visible area (width times height) of
- * the visible cells on the screen */
-} RenderBlock;
-
-/*----------------------------------------------------------------------
- * RenderInfo
- *
- * This stores information for rendering from the RB into an X drawable.
- *
- *----------------------------------------------------------------------
- */
-typedef struct RenderInfo {
- Drawable drawable;
- int origin[2];
- int offset[2];
- int size[2]; /* width and height of the area to draw
- * (number of pixels starting from the offset)
- * if offset = (2,2) and size = (5,5) we have
- * to draw the rectangle ((2,2), (6,6));
- */
- struct { /* the current valid grid area for the */
- int x1, x2, y1, y2; /* "format" command */
- int whichArea;
- } fmt;
-} RenderInfo;
-
-typedef struct ExposedArea {
- int x1, y1, x2, y2;
-} ExposedArea, Rect;
-
-/*----------------------------------------------------------------------
- * ColorInfo
- *
- * These colors are used by the format commands. They must be saved
- * or otherwise the colormap may be changed ..
- *----------------------------------------------------------------------
- */
-typedef struct ColorInfo {
- struct ColorInfo * next;
- int counter;
- int type; /* TK_CONFIG_BORDER or TK_CONFIG_COLOR */
- long pixel;
- Tk_3DBorder border;
- XColor * color;
-} ColorInfo;
-
-/*----------------------------------------------------------------------
- * SelectBlock
- *
- * These structures are arranged in a list and are used to determine
- * where a cell is selected.
- *----------------------------------------------------------------------
- */
-#define TIX_GR_CLEAR 1
-#define TIX_GR_SET 2
-#define TIX_GR_TOGGLE 3
-
-#define TIX_GR_MAX 0x7fffffff
-
-#define TIX_GR_RESIZE 1
-#define TIX_GR_REDRAW 2
-
-
-typedef struct SelectBlock {
- struct SelectBlock * next;
- int range[2][2]; /* the top left and bottom right corners */
- int type; /* TIX_GR_CLEAR, TIX_GR_SET,
- * TIX_GR_TOGGLE
- *
- * If several SelectBlock covers the same
- * cell, the last block in the wPtr->selList
- * determines whether this cell is selected
- * or not */
-} SelectBlock;
-
-/*----------------------------------------------------------------------
- * GrSortItem
- *
- * Used to sort the items in the grid
- *----------------------------------------------------------------------
- */
-typedef struct Tix_GrSortItem {
- Tcl_Obj * data; /* is usually a string, but
- * can be a pointer to an
- * arbitrary data in C API */
- int index; /* row or column */
-} Tix_GrSortItem;
-
-/*----------------------------------------------------------------------
- * Data structure for iterating the cells inside the grid.
- *
- *----------------------------------------------------------------------
- */
-
-typedef struct Tix_GrDataRowSearch {
- struct TixGridRowCol * row;
- Tcl_HashSearch hashSearch;
- Tcl_HashEntry *hashPtr;
-} Tix_GrDataRowSearch;
-
-typedef struct Tix_GrDataCellSearch {
- char * data;
- Tcl_HashSearch hashSearch;
- Tcl_HashEntry *hashPtr;
-} Tix_GrDataCellSearch;
-
-/*----------------------------------------------------------------------
- *
- * Main data structure of the grid widget.
- *
- *----------------------------------------------------------------------
- */
-typedef struct Tix_GridScrollInfo {
- LangCallback *command;
-
- int max; /* total size (width or height) of the widget*/
- int offset; /* The top/left side of the scrolled widget */
- int unit; /* How much should we scroll when the user */
-
- double window; /* visible size, percentage of the total */
-}Tix_GridScrollInfo;
-
-
-typedef struct GridStruct {
- Tix_DispData dispData;
-
- Tcl_Command widgetCmd; /* Token for button's widget command. */
-
- /*
- * Information used when displaying widget:
- */
- int reqSize[2]; /* For app programmer to request size */
-
- /*
- * Information used when displaying widget:
- */
-
- /* Border and general drawing */
- int borderWidth; /* Width of 3-D borders. */
- int selBorderWidth; /* Width of 3-D borders for selected items */
- int relief; /* Indicates whether window as a whole is
- * raised, sunken, or flat. */
- Tk_3DBorder border; /* Used for drawing the 3d border. */
- Tk_3DBorder selectBorder; /* Used for selected background. */
- XColor *normalFg; /* Normal foreground for text. */
- XColor *normalBg; /* Normal background for text. */
- XColor *selectFg; /* Color for drawing selected text. */
-
- Tk_Uid state; /* State can only be normal or disabled. */
-
- /* GC and stuff */
- GC backgroundGC; /* GC for drawing background. */
- GC selectGC; /* GC for drawing selected background. */
- GC anchorGC; /* GC for drawing dotted anchor highlight. */
- TixFont font; /* Default font used by the DItems. */
-
- /* Text drawing */
- Tk_Cursor cursor; /* Current cursor for window, or None. */
-
- /* For highlights */
- int highlightWidth; /* Width in pixels of highlight to draw
- * around widget when it has the focus.
- * <= 0 means don't draw a highlight. */
- int bdPad; /* = highlightWidth + borderWidth */
- XColor *highlightColorPtr; /* Color for drawing traversal highlight. */
- GC highlightGC; /* For drawing traversal highlight. */
-
- /*
- * default pad and gap values
- */
- int padX, padY;
-
- Tk_Uid selectMode; /* Selection style: single, browse, multiple,
- * or extended. This value isn't used in C
- * code, but the Tcl bindings use it. */
- Tk_Uid selectUnit; /* Selection unit: cell, row or column.
- * This value isn't used in C
- * code, but the Tcl bindings use it. */
-
- /*
- * The following three sites are used according to the -selectunit.
- * if selectunit is: "cell", [0] and [1] are used; "row", only [0]
- * is used; "column", only [1] is used
- */
- int anchor[2]; /* The current anchor unit */
- int dropSite[2]; /* The current drop site */
- int dragSite[2]; /* The current drop site */
-
- /*
- * Callback commands.
- */
- LangCallback *command; /* The command when user double-clicks */
- LangCallback *browseCmd; /* The command to call when the selection
- * changes. */
- LangCallback *editNotifyCmd; /* The command to call to determine whether
- * a cell is editable. */
- LangCallback *editDoneCmd; /* The command to call when an entry has
- * been edited by the user.*/
- LangCallback *formatCmd; /* The command to call when the Grid widget
- * needs to be reformatted (e.g, Exposure
- * events or when contents have been
- * changed). */
- LangCallback *sizeCmd; /* The command to call when the size of
- * the listbox changes. E.g., when the user
- * add/deletes elements. Useful for auto-
- * scrollbar geometry managers */
-
- /*
- * Info for lay-out
- */
- char *takeFocus; /* Value of -takefocus option; not used in
- * the C code, but used by keyboard traversal
- * scripts. Malloc'ed, but may be NULL. */
-
- int serial; /* this number is incremented before each time
- * the widget is redisplayed */
-
- TixGridDataSet * dataSet;
- RenderBlock * mainRB; /* Malloc'ed */
-
- int hdrSize[2]; /* number of rows (height of x header, index
- * [0]) and columns (width of y header, index
- * [1]) */
- int floatRange[2]; /* Are the num of columns and rows floated?
- * (if floated, you can scroll past the max
- * element).*/
- int gridSize[2]; /* the size of the grid where there is data */
- Tix_DItemInfo * diTypePtr; /* Default item type */
- ExposedArea expArea;
-
- RenderInfo * renderInfo; /* only points to stuff in stack */
- Tix_GridScrollInfo scrollInfo[2];
- int fontSize[2]; /* size of the "0" char of the -font option
- */
- TixGridSize defSize[2];
- Tix_LinkList colorInfo;
- Tix_LinkList selList;
- Tix_LinkList mappedWindows;
- int colorInfoCounter;
-
- unsigned int hasFocus : 1;
-
- unsigned int idleEvent : 1;
- unsigned int toResize : 1; /* idle event */
- unsigned int toRedraw : 1; /* idle event */
-
- unsigned int toResetRB : 1; /* Do we need to reset the render block */
- unsigned int toComputeSel : 1;
- unsigned int toRedrawHighlight : 1;
-} Grid;
-
-typedef Grid WidgetRecord;
-typedef Grid * WidgetPtr;
-
-#define DEF_GRID_BG_COLOR NORMAL_BG
-#define DEF_GRID_BG_MONO WHITE
-#define DEF_GRID_BORDER_WIDTH "2"
-#define DEF_GRID_BROWSE_COMMAND ""
-#define DEF_GRID_COMMAND ""
-#define DEF_GRID_CURSOR ""
-#define DEF_GRID_DEFAULT_WIDTH "40"
-#define DEF_GRID_DEFAULT_HEIGHT "20"
-#define DEF_GRID_EDITDONE_COMMAND ""
-#define DEF_GRID_EDITNOTIFY_COMMAND ""
-#define DEF_GRID_FLOATING_ROWS "0"
-#define DEF_GRID_FLOATING_COLS "0"
-#define DEF_GRID_FONT "Helvetica -12 bold"
-#define DEF_GRID_FG_COLOR BLACK
-#define DEF_GRID_FG_MONO BLACK
-#define DEF_GRID_FORMAT_COMMAND ""
-#define DEF_GRID_HEIGHT "10"
-#define DEF_GRID_HIGHLIGHT_COLOR BLACK
-#define DEF_GRID_HIGHLIGHT_MONO BLACK
-#define DEF_GRID_HIGHLIGHT_WIDTH "2"
-#define DEF_GRID_LEFT_MARGIN "1"
-#define DEF_GRID_ITEM_TYPE "text"
-#define DEF_GRID_RELIEF "sunken"
-#define DEF_GRID_PADX "2"
-#define DEF_GRID_PADY "2"
-#define DEF_GRID_SELECT_BG_COLOR ACTIVE_BG
-#define DEF_GRID_SELECT_FG_COLOR BLACK
-#define DEF_GRID_SELECT_BG_MONO BLACK
-#define DEF_GRID_SELECT_FG_MONO WHITE
-#define DEF_GRID_SELECT_MODE "single"
-#define DEF_GRID_SELECT_UNIT "row"
-#define DEF_GRID_SELECT_BORDERWIDTH "1"
-#define DEF_GRID_STATE "normal"
-#define DEF_GRID_SIZE_COMMAND ""
-#define DEF_GRID_TAKE_FOCUS "1"
-#define DEF_GRID_TOP_MARGIN "1"
-#define DEF_GRID_WIDTH "4"
-#define DEF_GRID_Y_SCROLL_COMMAND ""
-#define DEF_GRID_X_SCROLL_COMMAND ""
-
-/*
- * common functions
- */
-
-EXTERN void Tix_GrAddChangedRect _ANSI_ARGS_((
- WidgetPtr wPtr, int changedRect[2][2],
- int isSite));
-EXTERN int Tix_GrConfigSize _ANSI_ARGS_((Tcl_Interp *interp,
- WidgetPtr wPtr, int argc, Tcl_Obj *CONST *objv,
- TixGridSize *sizePtr, char * argcErrorMsg,
- int *changed_ret));
-EXTERN void Tix_GrDoWhenIdle _ANSI_ARGS_((WidgetPtr wPtr,
- int type));
-EXTERN void Tix_GrCancelDoWhenIdle _ANSI_ARGS_((WidgetPtr wPtr));
-EXTERN void Tix_GrFreeElem _ANSI_ARGS_((TixGrEntry * chPtr));
-EXTERN void Tix_GrFreeUnusedColors _ANSI_ARGS_((WidgetPtr wPtr,
- int freeAll));
-EXTERN void Tix_GrScrollPage _ANSI_ARGS_((WidgetPtr wPtr,
- int count, int axis));
-
-/*
- * The dataset functions
- */
-
-EXTERN int TixGridDataConfigRowColSize _ANSI_ARGS_((
- Tcl_Interp * interp, WidgetPtr wPtr,
- TixGridDataSet * dataSet, int which, int index,
- int argc, Tcl_Obj *CONST *objv, char * argcErrorMsg,
- int *changed_ret));
-EXTERN char * TixGridDataCreateEntry _ANSI_ARGS_((
- TixGridDataSet * dataSet, int x, int y,
- char * defaultEntry));
-EXTERN int TixGridDataDeleteEntry _ANSI_ARGS_((
- TixGridDataSet * dataSet, int x, int y));
-EXTERN void TixGridDataDeleteRange _ANSI_ARGS_((WidgetPtr wPtr,
- TixGridDataSet * dataSet, int which,
- int from, int to));
-EXTERN void TixGridDataDeleteSearchedEntry _ANSI_ARGS_((
- Tix_GrDataCellSearch * cellSearchPtr));
-EXTERN char * TixGridDataFindEntry _ANSI_ARGS_((
- TixGridDataSet * dataSet, int x, int y));
-EXTERN int TixGrDataFirstCell _ANSI_ARGS_((
- Tix_GrDataRowSearch * rowSearchPtr,
- Tix_GrDataCellSearch * cellSearchPtr));
-EXTERN int TixGrDataFirstRow _ANSI_ARGS_((
- TixGridDataSet* dataSet,
- Tix_GrDataRowSearch * rowSearchPtr));
-EXTERN int TixGridDataGetRowColSize _ANSI_ARGS_((
- WidgetPtr wPtr, TixGridDataSet * dataSet,
- int which, int index, TixGridSize * defSize,
- int *pad0, int * pad1));
-EXTERN void TixGridDataGetGridSize _ANSI_ARGS_((
- TixGridDataSet * dataSet, int *width_ret,
- int *height_ret));
-EXTERN int TixGridDataGetIndex _ANSI_ARGS_((
- Tcl_Interp * interp, WidgetPtr wPtr,
- Tcl_Obj * xStr, Tcl_Obj * yStr, int * xPtr, int * yPtr));
-EXTERN void TixGridDataInsert _ANSI_ARGS_((
- TixGridDataSet * dataSet,
- int x, int y, ClientData data));
-EXTERN void TixGridDataMoveRange _ANSI_ARGS_((WidgetPtr wPtr,
- TixGridDataSet * dataSet, int which,
- int from, int to, int by));
-EXTERN int TixGrDataNextCell _ANSI_ARGS_((
- Tix_GrDataCellSearch * cellSearchPtr));
-EXTERN int TixGrDataNextRow _ANSI_ARGS_((
- Tix_GrDataRowSearch * rowSearchPtr));
-EXTERN TixGridDataSet* TixGridDataSetInit _ANSI_ARGS_((void));
-EXTERN void TixGridDataSetFree _ANSI_ARGS_((
- TixGridDataSet* dataSet));
-EXTERN int TixGridDataUpdateSort _ANSI_ARGS_((
- TixGridDataSet * dataSet, int axis,
- int start, int end, Tix_GrSortItem *items));
-
-#endif /*_TIX_GRID_H_*/
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixHList.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixHList.h
deleted file mode 100644
index 5625f137c15..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixHList.h
+++ /dev/null
@@ -1,323 +0,0 @@
-
-/* $Id: tixHList.h,v 1.1.1.1 2000/05/17 11:08:42 idiscovery Exp $ */
-
-/*
- * tixHList.h --
- *
- * Defines the data structures and functions used by the tixHList
- * widget.
- *
- * Copyright (c) 1996, Expert Interface Technologies
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- */
-
-#ifndef _TIX_HLIST_H_
-#define _TIX_HLIST_H_
-
-#ifndef _TIX_INT_H_
-#include "tixInt.h"
-#endif
-
-#include "tkVMacro.h"
-
-#define HLTYPE_COLUMN 1
-#define HLTYPE_HEADER 2
-#define HLTYPE_ENTRY 3
-
-/* This is used to indetify what object has caused a DItemSizeChange
- * All data structs for objects that manage DItems must have these two
- * members as the beginning of the struct.
- */
-typedef struct HLItemTypeInfo {
- int type;
- char * self;
-} HLItemTypeInfo;
-
-typedef struct HListColumn {
- /* generic type info section */
- int type;
- char * self;
- struct _HListElement * chPtr;
-
- /* other data */
- Tix_DItem * iPtr;
- int width;
-} HListColumn;
-
-typedef struct HListHeader {
- /* generic type info section */
- int type;
- char * self;
-
- struct HListStruct * wPtr;
- /* other data */
- Tix_DItem * iPtr;
- int width;
-
- Tk_3DBorder background; /* Used for drawing the 3d border. */
- int relief; /* Indicates whether window as a whole is
- * raised, sunken, or flat. */
- int borderWidth;
-} HListHeader;
-
-/*----------------------------------------------------------------------
- * A HListElement structure contain the information about each element
- * inside the HList.
- *
- */
-typedef struct _HListElement {
- /* generic type info section */
- int type;
- char * self;
-
- /* other data */
- struct HListStruct * wPtr;
- struct _HListElement * parent;
- struct _HListElement * prev;
- struct _HListElement * next;
- struct _HListElement * childHead;
- struct _HListElement * childTail;
-
- int numSelectedChild; /* number of childs that has selection(s) in
- * them (either this child is selected or some
- * of its descendants are selected */
- int numCreatedChild; /* this var gets increment by one each
- * time a child is created */
- char * pathName; /* Full pathname of this element */
- char * name; /* Name of this element */
- int height; /* Height of this element, including padding
- * and selBorderWidth;
- */
- int allHeight; /* Height of all descendants and self */
- Tk_Uid state; /* State of Tab's for display purposes:
- * normal or disabled. */
- Tcl_Obj * data; /* user data field */
- /* bottom-middle position of the bitmap/image branch (offset from
- * the top-left corner of the item)
- */
- int branchX;
- int branchY;
-
- /* offset of the left-middle position of the icon */
- int iconX;
- int iconY;
- /*----------------------------------*/
- /* Things to display in the element */
- /*----------------------------------*/
- HListColumn * col; /* the multi-column display items */
- HListColumn _oneCol; /* If we have only one column, then this
- * space is used (pointed to by column).
- * This will save one Malloc */
- int indent;
- Tix_DItem * indicator; /* indicator: little triangle on Mac */
-
- /*----------------------------------*/
- /* Flags */
- /*----------------------------------*/
- Tix_DItemInfo * diTypePtr;
-
- unsigned int selected : 1;
- unsigned int hidden : 1;
- unsigned int dirty : 1; /* If it is dirty then its geometry needs
- * be recalculated */
-} Tix_HListElement, HListElement;
-
-/*
- * A data structure of the following type is kept for each
- * widget managed by this file:
- */
-typedef struct HListStruct {
- Tix_DispData dispData;
- Tcl_Command widgetCmd; /* Token for button's widget command. */
-
- /*
- * Information used when displaying widget:
- */
- LangCallback *command; /* Command prefix to use when invoking
- * scrolling commands. NULL means don't
- * invoke commands. Malloc'ed. */
- int width, height; /* For app programmer to request size */
-
- /*
- * Information used when displaying widget:
- */
-
- /* Border and general drawing */
- int borderWidth; /* Width of 3-D borders. */
- int selBorderWidth; /* Width of 3-D borders for selected items */
- int relief; /* Indicates whether window as a whole is
- * raised, sunken, or flat. */
- int indent; /* How much should the children be indented
- * (to the right)?, in pixels */
- Tk_3DBorder border; /* Used for drawing the 3d border. */
- Tk_3DBorder selectBorder; /* Used for selected background. */
- XColor *normalFg; /* Normal foreground for text. */
- XColor *normalBg; /* Normal bachground for text. */
- XColor *selectFg; /* Color for drawing selected text. */
- TixFont font; /* The default font used in the DItems. */
- GC backgroundGC; /* GC for drawing background. */
- GC normalGC; /* GC for drawing text in normal mode. */
- GC selectGC; /* GC for drawing selected background. */
- GC anchorGC; /* GC for drawing dotted anchor highlight. */
- GC dropSiteGC; /* GC for drawing dotted anchor highlight. */
-
- Cursor cursor; /* Current cursor for window, or None. */
-
- int topPixel; /* Vertical offset */
- int leftPixel; /* Horizontal offset */
- int bottomPixel;
- int wideSelect; /* BOOL: if 1, use a wide selection: the
- * selection background color covers the whole
- * widget. If 0, only the "significant" part
- * of a list entry is highlighted */
- int selectWidth; /* Width of the selection: takes effect only
- * if wideSelect == 1 */
- int exportSelection; /* Do we grab X Selection */
- /* For highlights */
- int highlightWidth; /* Width in pixels of highlight to draw
- * around widget when it has the focus.
- * <= 0 means don't draw a highlight. */
- XColor *highlightColorPtr; /* Color for drawing traversal highlight. */
- GC highlightGC; /* For drawing traversal highlight. */
-
- /* default pad and gap values */
- int gap, padX, padY;
- char * separator;
-
- Tk_Uid selectMode; /* Selection style: single, browse, multiple,
- * or extended. This value isn't used in C
- * code, but the Tcl bindings use it. */
- int drawBranch; /* Whether to draw the "branch" lines from
- * parent entry to children */
- Tcl_HashTable childTable; /* Hash table to translate child names
- * into (HListElement *) */
- HListElement * root; /* Mother of all elements */
- HListElement * anchor; /* The current anchor item */
- HListElement * dragSite; /* The current drag site */
- HListElement * dropSite; /* The current drop site */
-
- LangCallback *yScrollCmd; /* Command prefix for communicating with
- * vertical scrollbar. NULL means no command
- * to issue. Malloc'ed. */
- LangCallback *xScrollCmd; /* Command prefix for communicating with
- * horizontal scrollbar. NULL means no command
- * to issue. Malloc'ed. */
- LangCallback *sizeCmd; /* The command to call when the size of
- * the listbox changes. E.g., when the user
- * add/deletes elements. Useful for
- * auto-scrollbar geometry managers */
- LangCallback *browseCmd; /* The command to call when the selection
- * changes. */
- LangCallback *indicatorCmd; /* The command to call when the user touches
- * the indicator. */
- LangCallback *dragCmd; /* The command to call when info about a
- * drag source is needed */
- LangCallback *dropCmd; /* The command to call when action at a drop
- * side needs to be performed */
- char *takeFocus; /* Value of -takefocus option; not used in
- * the C code, but used by keyboard traversal
- * scripts. Malloc'ed, but may be NULL. */
-
- Tix_LinkList mappedWindows; /* Those windows that are are mapped by this
- * widget*/
- int serial; /* this number is incremented before each time
- * the widget is redisplayed */
-
- int numColumns; /* number of columns in the tixHList widget,
- * cannot be changed after the widget's
- * creation */
-
- int totalSize[2];
-
- HListColumn * reqSize; /* Requested column sizes by the user:
- take precedence */
- HListColumn * actualSize; /* Actual column sizes, calculated using
- * the sizes of the ditems */
-
- HListHeader ** headers; /* Stores all the headers for a HList widget */
- int useHeader; /* whether headers should be used */
- int headerHeight; /* required height of the header */
-
- Tix_DItemInfo * diTypePtr; /* Default item type */
- Tix_StyleTemplate stTmpl;
-
- int useIndicator; /* should indicators be displayed */
- int scrollUnit[2];
-
- Tk_Window headerWin; /* subwindow, used to draw the headers */
- char * elmToSee; /* name of element to "see" the next time
- * this widget is redrawn */
- unsigned redrawing : 1;
- unsigned redrawingFrame : 1;
- unsigned resizing : 1;
- unsigned hasFocus : 1;
- unsigned allDirty : 1;
- unsigned initialized : 1;
- unsigned headerDirty : 1;
- unsigned needToRaise : 1; /* The header subwindow needs to be raised
- * if we add a new window item into the
- * HList widget (either in the list or
- * in the header */
-} HList;
-
-#define TIX_X 0
-#define TIX_Y 1
-#define UNINITIALIZED -1
-
-typedef HList WidgetRecord;
-typedef HList * WidgetPtr;
-
-EXTERN TIX_DECLARE_SUBCMD(Tix_HLColumn);
-EXTERN TIX_DECLARE_SUBCMD(Tix_HLItem);
-
-EXTERN HListColumn * Tix_HLAllocColumn _ANSI_ARGS_((
- WidgetPtr wPtr, HListElement * chPtr));
-EXTERN void Tix_HLCancelResizeWhenIdle _ANSI_ARGS_((
- WidgetPtr wPtr));
-EXTERN void Tix_HLComputeGeometry _ANSI_ARGS_((
- ClientData clientData));
-EXTERN HListElement * Tix_HLFindElement _ANSI_ARGS_((Tcl_Interp *interp,
- WidgetPtr wPtr, char * pathName));
-EXTERN void Tix_HLFreeMappedWindow _ANSI_ARGS_((WidgetPtr wPtr,
- HListElement * chPtr));
-EXTERN int Tix_HLElementTopOffset _ANSI_ARGS_((
- WidgetPtr wPtr, HListElement *chPtr));
-EXTERN int Tix_HLElementLeftOffset _ANSI_ARGS_((
- WidgetPtr wPtr, HListElement *chPtr));
-EXTERN int Tix_HLItemInfo _ANSI_ARGS_((Tcl_Interp *interp,
- WidgetPtr wPtr, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tix_HLHeader _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tix_HLCreateHeaders _ANSI_ARGS_((
- Tcl_Interp *interp, WidgetPtr wPtr));
-EXTERN void Tix_HLFreeHeaders _ANSI_ARGS_((
- Tcl_Interp *interp, WidgetPtr wPtr));
-EXTERN void Tix_HLDrawHeader _ANSI_ARGS_((
- WidgetPtr wPtr, Pixmap pixmap, GC gc,
- int hdrX, int hdrY, int hdrW, int hdrH,
- int xOffset));
-EXTERN void Tix_HLComputeHeaderGeometry _ANSI_ARGS_((
- WidgetPtr wPtr));
-
-EXTERN void Tix_HLMarkElementDirty _ANSI_ARGS_((WidgetPtr wPtr,
- HListElement *chPtr));
-EXTERN void Tix_HLResizeWhenIdle _ANSI_ARGS_((WidgetPtr wPtr));
-EXTERN void Tix_HLResizeNow _ANSI_ARGS_((WidgetPtr wPtr));
-EXTERN void Tix_HLComputeGeometry _ANSI_ARGS_((
- ClientData clientData));
-EXTERN void Tix_HLCancelResizeWhenIdle _ANSI_ARGS_((
- WidgetPtr wPtr));
-
-
-/* in tixHLCol.c */
-EXTERN TIX_DECLARE_SUBCMD(Tix_HLColumn);
-EXTERN TIX_DECLARE_SUBCMD(Tix_HLItem);
-
-/* in tixHLInd.c */
-EXTERN TIX_DECLARE_SUBCMD(Tix_HLIndicator);
-
-#endif /*_TIX_HLIST_H_ */
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.h
deleted file mode 100644
index deb68ea76e1..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.h
+++ /dev/null
@@ -1,134 +0,0 @@
-
-/* $Id: tixImgXpm.h,v 1.1.1.1 2000/05/17 11:08:42 idiscovery Exp $ */
-
-/*
- * tixImgXpm.h --
- *
- * Generic header file for the pixmap image type. This is NOT a public
- * header file!
- *
- * Copyright (c) 1996, Expert Interface Technologies
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- */
-
-#ifndef _TIX_IMG_XPM_H_
-#define _TIX_IMG_XPM_H_
-#define _TIXIMGXPM
-/*
- * Constants
- */
-
-#define XPM_MONO 1
-#define XPM_GRAY_4 2
-#define XPM_GRAY 3
-#define XPM_COLOR 4
-#define XPM_SYMBOLIC 5
-#define XPM_UNKNOWN 6
-
-/*
- * The following data structure represents the master for a pixmap
- * image:
- */
-
-typedef struct PixmapMaster {
- Tk_ImageMaster tkMaster; /* Tk's token for image master. NULL means
- * the image is being deleted. */
- Tcl_Interp *interp; /* Interpreter for application that is
- * using image. */
- Tcl_Command imageCmd; /* Token for image command (used to delete
- * it when the image goes away). NULL means
- * the image command has already been
- * deleted. */
- char *fileString; /* Value of -file option (malloc'ed).
- * valid only if the -file option is specified
- */
- char *dataString; /* Value of -data option (malloc'ed).
- * valid only if the -data option is specified
- */
- Tk_Uid id; /* ID's for XPM data already compiled
- * into the tixwish binary */
- int size[2]; /* width and height */
- int ncolors; /* number of colors */
- int cpp; /* characters per pixel */
- char ** data; /* The data that defines this pixmap
- * image (array of strings). It is
- * converted into an X Pixmap when this
- * image is instanciated
- */
- int isDataAlloced; /* False iff the data is got from
- * the -id switch */
- /* First in list of all instances associated
- * with this master. */
- struct PixmapInstance *instancePtr;
-} PixmapMaster;
-
-typedef struct ColorStruct {
- char c; /* This is used if CPP is one */
- char * cstring; /* This is used if CPP is bigger than one */
- XColor * colorPtr;
-} ColorStruct;
-
-/*----------------------------------------------------------------------
- * PixmapInstance --
- *
- * Represents all of the instances of an image that lie within a
- * particular window:
- *
- * %% ToDo
- * Currently one instance is created for each window that uses
- * this pixmap. This is usually OK because pixmaps are usually
- * not shared or only shared by a small number of windows. To
- * improve resource allocation, we can create an instance for
- * each (Display x Visual x Depth) combo. This will usually
- * reduce the number of instances to one.
- *----------------------------------------------------------------------
- */
-typedef struct PixmapInstance {
- int refCount; /* Number of instances that share this
- * data structure. */
- PixmapMaster *masterPtr; /* Pointer to master for image. */
- Tk_Window tkwin; /* Window in which the instances will be
- * displayed. */
- Pixmap pixmap; /* The pixmap to display. */
- struct PixmapInstance *nextPtr;
- /* Next in list of all instance structures
- * associated with masterPtr (NULL means
- * end of list).
- */
- ColorStruct * colors;
- ClientData clientData; /* Place holder for platform specific
- * instance data */
-} PixmapInstance;
-
-
-EXTERN void TixpInitPixmapInstance _ANSI_ARGS_((
- PixmapMaster *masterPtr,
- PixmapInstance *instancePtr));
-EXTERN void TixpXpmAllocTmpBuffer _ANSI_ARGS_((
- PixmapMaster * masterPtr,
- PixmapInstance * instancePtr,
- XImage ** imagePtr, XImage ** maskPtr));
-EXTERN void TixpXpmFreeTmpBuffer _ANSI_ARGS_((
- PixmapMaster * masterPtr,
- PixmapInstance * instancePtr,
- XImage * image, XImage * mask));
-EXTERN void TixpXpmSetPixel _ANSI_ARGS_((
- PixmapInstance * instancePtr, XImage * image,
- XImage * mask, int x, int y, XColor * colorPtr,
- int * isTranspPtr));
-EXTERN void TixpXpmRealizePixmap _ANSI_ARGS_((
- PixmapMaster * masterPtr,
- PixmapInstance * instancePtr,
- XImage * image, XImage * mask, int isTransp));
-EXTERN void TixpXpmFreeInstanceData _ANSI_ARGS_((
- PixmapInstance *instancePtr, int delete,
- Display *display));
-EXTERN void TixpXpmDisplay _ANSI_ARGS_((ClientData clientData,
- Display *display, Drawable drawable,
- int imageX, int imageY, int width, int height,
- int drawableX, int drawableY));
-
-#endif
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.m
deleted file mode 100644
index 2e6845bef96..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.m
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef _TIXIMGXPM_VM
-#define _TIXIMGXPM_VM
-#include "tixImgXpm_f.h"
-#ifndef NO_VTABLES
-#ifndef TixpInitPixmapInstance
-# define TixpInitPixmapInstance (*TiximgxpmVptr->V_TixpInitPixmapInstance)
-#endif
-
-#ifndef TixpXpmAllocTmpBuffer
-# define TixpXpmAllocTmpBuffer (*TiximgxpmVptr->V_TixpXpmAllocTmpBuffer)
-#endif
-
-#ifndef TixpXpmDisplay
-# define TixpXpmDisplay (*TiximgxpmVptr->V_TixpXpmDisplay)
-#endif
-
-#ifndef TixpXpmFreeInstanceData
-# define TixpXpmFreeInstanceData (*TiximgxpmVptr->V_TixpXpmFreeInstanceData)
-#endif
-
-#ifndef TixpXpmFreeTmpBuffer
-# define TixpXpmFreeTmpBuffer (*TiximgxpmVptr->V_TixpXpmFreeTmpBuffer)
-#endif
-
-#ifndef TixpXpmRealizePixmap
-# define TixpXpmRealizePixmap (*TiximgxpmVptr->V_TixpXpmRealizePixmap)
-#endif
-
-#ifndef TixpXpmSetPixel
-# define TixpXpmSetPixel (*TiximgxpmVptr->V_TixpXpmSetPixel)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TIXIMGXPM_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.t
deleted file mode 100644
index b52ad2cf398..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.t
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifdef _TIXIMGXPM
-#ifndef TixpInitPixmapInstance
-VFUNC(void,TixpInitPixmapInstance,V_TixpInitPixmapInstance,_ANSI_ARGS_((
- PixmapMaster *masterPtr,
- PixmapInstance *instancePtr)))
-#endif /* #ifndef TixpInitPixmapInstance */
-
-#ifndef TixpXpmAllocTmpBuffer
-VFUNC(void,TixpXpmAllocTmpBuffer,V_TixpXpmAllocTmpBuffer,_ANSI_ARGS_((
- PixmapMaster * masterPtr,
- PixmapInstance * instancePtr,
- XImage ** imagePtr, XImage ** maskPtr)))
-#endif /* #ifndef TixpXpmAllocTmpBuffer */
-
-#ifndef TixpXpmDisplay
-VFUNC(void,TixpXpmDisplay,V_TixpXpmDisplay,_ANSI_ARGS_((ClientData clientData,
- Display *display, Drawable drawable,
- int imageX, int imageY, int width, int height,
- int drawableX, int drawableY)))
-#endif /* #ifndef TixpXpmDisplay */
-
-#ifndef TixpXpmFreeInstanceData
-VFUNC(void,TixpXpmFreeInstanceData,V_TixpXpmFreeInstanceData,_ANSI_ARGS_((
- PixmapInstance *instancePtr, int delete,
- Display *display)))
-#endif /* #ifndef TixpXpmFreeInstanceData */
-
-#ifndef TixpXpmFreeTmpBuffer
-VFUNC(void,TixpXpmFreeTmpBuffer,V_TixpXpmFreeTmpBuffer,_ANSI_ARGS_((
- PixmapMaster * masterPtr,
- PixmapInstance * instancePtr,
- XImage * image, XImage * mask)))
-#endif /* #ifndef TixpXpmFreeTmpBuffer */
-
-#ifndef TixpXpmRealizePixmap
-VFUNC(void,TixpXpmRealizePixmap,V_TixpXpmRealizePixmap,_ANSI_ARGS_((
- PixmapMaster * masterPtr,
- PixmapInstance * instancePtr,
- XImage * image, XImage * mask, int isTransp)))
-#endif /* #ifndef TixpXpmRealizePixmap */
-
-#ifndef TixpXpmSetPixel
-VFUNC(void,TixpXpmSetPixel,V_TixpXpmSetPixel,_ANSI_ARGS_((
- PixmapInstance * instancePtr, XImage * image,
- XImage * mask, int x, int y, XColor * colorPtr,
- int * isTranspPtr)))
-#endif /* #ifndef TixpXpmSetPixel */
-
-#endif /* _TIXIMGXPM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm_f.h
deleted file mode 100644
index 909c5bd7737..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TIXIMGXPM_VT
-#define TIXIMGXPM_VT
-typedef struct TiximgxpmVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tixImgXpm.t"
-#undef VFUNC
-#undef VVAR
-} TiximgxpmVtab;
-extern TiximgxpmVtab *TiximgxpmVptr;
-extern TiximgxpmVtab *TiximgxpmVGet(void);
-#endif /* TIXIMGXPM_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixInt.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixInt.h
deleted file mode 100644
index d1dad2b88e6..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixInt.h
+++ /dev/null
@@ -1,886 +0,0 @@
-
-/* $Id: tixInt.h,v 1.1.1.1 2000/05/17 11:08:42 idiscovery Exp $ */
-
-/*
- * tixInt.h --
- *
- * Defines internal data types and functions used by the Tix library.
- *
- * Copyright (c) 1996, Expert Interface Technologies
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- */
-#ifndef _TIX
-#include "tix.h"
-#endif
-#ifndef _TIXINT
-#define _TIXINT
-#define _TIX_INT_H_
-
-/*----------------------------------------------------------------------
- *
- * Tix Display Item Types
- *
- *----------------------------------------------------------------------
- */
-
-#define TIX_DITEM_NONE 0
-#define TIX_DITEM_TEXT 1
-#define TIX_DITEM_IMAGETEXT 2
-#define TIX_DITEM_WINDOW 3
-#define TIX_DITEM_IMAGE 4
-
-/*
- * The flags for drawing DItems
- */
-
-#define TIX_DITEM_NORMAL_BG (0x1 << 0)
-#define TIX_DITEM_ACTIVE_BG (0x1 << 1)
-#define TIX_DITEM_SELECTED_BG (0x1 << 2)
-#define TIX_DITEM_DISABLED_BG (0x1 << 3)
-#define TIX_DITEM_NORMAL_FG (0x1 << 4)
-#define TIX_DITEM_ACTIVE_FG (0x1 << 5)
-#define TIX_DITEM_SELECTED_FG (0x1 << 6)
-#define TIX_DITEM_DISABLED_FG (0x1 << 7)
-#define TIX_DITEM_FONT (0x1 << 8)
-#define TIX_DITEM_PADX (0x1 << 9)
-#define TIX_DITEM_PADY (0x1 << 10)
-
-#define TIX_DONT_CALL_CONFIG TK_CONFIG_USER_BIT
-
-/*
- * These values are used ONLY for indexing the color array in
- * Tix_StyleTemplate
- */
-
-#define TIX_DITEM_NORMAL 0
-#define TIX_DITEM_ACTIVE 1
-#define TIX_DITEM_SELECTED 2
-#define TIX_DITEM_DISABLED 3
-
-/*
- * Flags for MultiInfo
- */
-#define TIX_CONFIG_INFO 1
-#define TIX_CONFIG_VALUE 2
-
-typedef union Tix_DItem Tix_DItem;
-typedef union Tix_DItemStyle Tix_DItemStyle;
-typedef struct Tix_DItemInfo Tix_DItemInfo;
-typedef struct Tix_DispData Tix_DispData;
-typedef struct Tix_StyleTemplate Tix_StyleTemplate;
-
-typedef void Tix_DItemCalculateSizeProc _ANSI_ARGS_((
- Tix_DItem * iPtr));
-typedef char * Tix_DItemComponentProc _ANSI_ARGS_((
- Tix_DItem * iPtr, int x, int y));
-typedef int Tix_DItemConfigureProc _ANSI_ARGS_((
- Tix_DItem * iPtr, int argc, Tcl_Obj *CONST *objv,
- int flags));
-typedef Tix_DItem * Tix_DItemCreateProc _ANSI_ARGS_((
- Tix_DispData * ddPtr,
- Tix_DItemInfo * diTypePtr));
-typedef void Tix_DItemDisplayProc _ANSI_ARGS_((
- Pixmap pixmap, GC gc, Tix_DItem * iPtr,
- int x, int y, int width, int height, int flag));
-typedef void Tix_DItemFreeProc _ANSI_ARGS_((Tix_DItem * diPtr));
-typedef void Tix_DItemSizeChangedProc _ANSI_ARGS_((
- Tix_DItem * iPtr));
-
-typedef void Tix_DItemStyleChangedProc _ANSI_ARGS_((
- Tix_DItem * iPtr));
-typedef void Tix_DItemLostStyleProc _ANSI_ARGS_((
- Tix_DItem * iPtr));
-typedef int Tix_DItemStyleConfigureProc _ANSI_ARGS_((
- Tix_DItemStyle* style, int argc, Tcl_Obj *CONST *objv,
- int flags));
-typedef Tix_DItemStyle* Tix_DItemStyleCreateProc _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- Tix_DItemInfo * diTypePtr, char * name));
-typedef void Tix_DItemStyleFreeProc _ANSI_ARGS_((
- Tix_DItemStyle* style));
-typedef void Tix_DItemStyleSetTemplateProc _ANSI_ARGS_((
- Tix_DItemStyle* style,
- Tix_StyleTemplate * tmplPtr));
-
-/*
- * These are debugging routines
- */
-
-typedef int Tix_DItemRefCountProc _ANSI_ARGS_(());
-typedef int Tix_DItemStyleRefCountProc _ANSI_ARGS_(());
-
-/*----------------------------------------------------------------------
- * Tix_DItemInfo --
- *
- * This structure is used to register a new display item (call
- * Tix_AddDItemType).
- *----------------------------------------------------------------------
- */
-struct Tix_DItemInfo {
- char * name;
- int type;
-
- /*
- * These procedures communicate with the items
- */
- Tix_DItemCreateProc * createProc;
- Tix_DItemConfigureProc * configureProc;
- Tix_DItemCalculateSizeProc * calculateSizeProc;
- Tix_DItemComponentProc * componentProc;
- Tix_DItemDisplayProc * displayProc;
- Tix_DItemFreeProc * freeProc;
- Tix_DItemStyleChangedProc *styleChangedProc;
- Tix_DItemLostStyleProc * lostStyleProc;
-
- /*
- * These procedures communicate with the styles
- */
- Tix_DItemStyleCreateProc * styleCreateProc;
- Tix_DItemStyleConfigureProc * styleConfigureProc;
- Tix_DItemStyleFreeProc * styleFreeProc;
- Tix_DItemStyleSetTemplateProc * styleSetTemplateProc;
-
- Tk_ConfigSpec * itemConfigSpecs;
- Tk_ConfigSpec * styleConfigSpecs;
- struct Tix_DItemInfo * next;
-};
-
-/*----------------------------------------------------------------------
- * Tix_DispData --
- *
- * Information needed by the display types to display the item in
- * an X drawable.
- *----------------------------------------------------------------------
- */
-struct Tix_DispData {
- Display * display;
- Tcl_Interp * interp;
- Tk_Window tkwin;
- Tix_DItemSizeChangedProc * sizeChangedProc;
-};
-
-/*----------------------------------------------------------------------
- * Tix_StyleTemplate --
- *
- * A StyleTemplate is used to set the values of the default styles
- * associated with a widget
- *----------------------------------------------------------------------
- */
-struct Tix_StyleTemplate {
- int flags; /* determines which field is valid */
-
- struct {
- XColor * bg;
- XColor * fg;
- } colors[4]; /* colors for the four basic modes*/
-
- int pad[2];
-#if 0
- /* %bordercolor not used */
- XColor * borderColor;
- Tix_Relief relief;
- int borderWidth;
-#endif
- TixFont font;
-};
-
-/*----------------------------------------------------------------------
- *
- *
- * Display Item Types
- *
- *
- *----------------------------------------------------------------------
- */
-
-/*
- * Display Styles
- */
-typedef struct TixBaseStyle TixBaseStyle;
-typedef struct TixImageTextStyle TixImageTextStyle;
-typedef struct TixImageStyle TixImageStyle;
-typedef struct TixTextStyle TixTextStyle;
-typedef struct TixWindowStyle TixWindowStyle;
-
-typedef struct TixBaseItem TixBaseItem;
-typedef struct TixColorStyle TixColorStyle;
-typedef struct TixImageTextItem TixImageTextItem;
-typedef struct TixImageItem TixImageItem;
-typedef struct TixTextItem TixTextItem;
-typedef struct TixWindowItem TixWindowItem;
-
-/*----------------------------------------------------------------------
- * TixBaseItem --
- *
- * This is the abstract base class for all display items. All
- * display items should have the data members defined in the
- * BaseItem structure
- *----------------------------------------------------------------------
- */
-#define ITEM_COMMON_MEMBERS \
- Tix_DItemInfo * diTypePtr; \
- Tix_DispData * ddPtr; \
- ClientData clientData; \
- int size[2] /* Size of this element */ \
-
-struct TixBaseItem {
- ITEM_COMMON_MEMBERS;
- TixBaseStyle * stylePtr;
-};
-
-/*----------------------------------------------------------------------
- * TixBaseStyle --
- *
- * This is the abstract base class for all display styles. All
- * display items should have the data members defined in the
- * BaseStyle structure. The common members are initialized by
- * tixDiStyle.c
- *
- *----------------------------------------------------------------------
- */
-
-#define STYLE_COMMON_MEMBERS \
- Tcl_Command styleCmd; /* Token for style's command. */ \
- Tcl_HashTable items; /* Ditems affected by this style */ \
- int refCount; /* Number of ditems affected by this style */\
- int flags; /* Various attributes */ \
- Tcl_Interp *interp; /* Interpreter associated with style. */ \
- Tk_Window tkwin; /* Window associated with this style */ \
- Tix_DItemInfo * diTypePtr; \
- Tk_Anchor anchor; /* Anchor information */ \
- char * name; /* Name of this style */ \
- int pad[2] /* paddings */
-
-
-#if 0
- Tix_Relief relief
- /* %bordercolor not used */
- int borderWidth;
- XColor * borderColor; /* color of the border when it is displayed
- * in "flat border" mode
- */
- GC borderGC
-#endif
-
-#define STYLE_COLOR_MEMBERS \
- struct { \
- XColor * bg; \
- XColor * fg; \
- GC foreGC; \
- GC backGC; \
- } colors[4] /* colors and GC's for the four basic modes*/
-
-struct TixBaseStyle {
- STYLE_COMMON_MEMBERS;
-};
-
-#define TIX_STYLE_DELETED 1
-#define TIX_STYLE_DEFAULT 2
-
-/*
- * Abstract type for all styles that have a color element
- */
-struct TixColorStyle {
- STYLE_COMMON_MEMBERS;
- STYLE_COLOR_MEMBERS;
-};
-
-/*----------------------------------------------------------------------
- * ImageTextItem --
- *
- * Display an image together with a text string
- *----------------------------------------------------------------------
- */
-struct TixImageTextItem {
- ITEM_COMMON_MEMBERS;
-
- TixImageTextStyle *stylePtr;
- /*-------------------------*/
- /* Bitmap */
- /*-------------------------*/
- Pixmap bitmap;
- int bitmapW, bitmapH; /* Size of bitmap */
-
- /*-------------------------*/
- /* Image */
- /*-------------------------*/
- char *imageString; /* Name of image to display (malloc'ed), or
- * NULL. If non-NULL, bitmap, text, and
- * textVarName are ignored. */
- Tk_Image image;
- int imageW, imageH; /* Size of image */
-
- /*-------------------------*/
- /* Text */
- /*-------------------------*/
-
- Tcl_Obj * text; /* Show descriptive text */
- size_t numChars; /* Size of text */
- int textW, textH;
- int wrapLength;
- Tk_Justify justify; /* Justification to use for multi-line text. */
- int underline; /* Index of character to underline. < 0 means
- * don't underline anything. */
-
- int showImage, showText;
-};
-
-struct TixImageTextStyle {
- STYLE_COMMON_MEMBERS;
- STYLE_COLOR_MEMBERS;
- int wrapLength;
- Tk_Justify justify; /* Justification to use for multi-line text. */
- TixFont font;
- int gap; /* Gap between text and image */
- Tk_Anchor textanchor; /* Text anchor information */
-};
-
-/*----------------------------------------------------------------------
- * ImageItem --
- *
- * Displays an image
- *----------------------------------------------------------------------
- */
-struct TixImageItem {
- ITEM_COMMON_MEMBERS;
-
- TixImageStyle *stylePtr;
-
- /*-------------------------*/
- /* Image */
- /*-------------------------*/
- char *imageString; /* Name of image to display (malloc'ed), or
- * NULL. If non-NULL, bitmap, text, and
- * textVarName are ignored. */
- Tk_Image image;
- int imageW, imageH; /* Size of image */
-};
-
-struct TixImageStyle {
- STYLE_COMMON_MEMBERS;
- STYLE_COLOR_MEMBERS;
-};
-/*----------------------------------------------------------------------
- * TextItem --
- *
- * Displays a text string.
- *----------------------------------------------------------------------
- */
-struct TixTextItem {
- ITEM_COMMON_MEMBERS;
-
- TixTextStyle *stylePtr;
- /*-------------------------*/
- /* Text */
- /*-------------------------*/
-
- Tcl_Obj * text; /* Show descriptive text */
- size_t numChars; /* Size of text */
- int textW, textH;
- int underline; /* Index of character to underline. < 0 means
- * don't underline anything. */
-};
-
-struct TixTextStyle {
- STYLE_COMMON_MEMBERS;
- STYLE_COLOR_MEMBERS;
- int wrapLength;
- Tk_Justify justify; /* Justification to use for multi-line text. */
- TixFont font;
-};
-
-/*----------------------------------------------------------------------
- * WindowItem --
- *
- * Displays a window.
- *----------------------------------------------------------------------
- */
-struct TixWindowItem {
- ITEM_COMMON_MEMBERS;
- TixWindowStyle *stylePtr;
- Tk_Window tkwin;
- struct TixWindowItem * next;
- int serial;
-};
-
-struct TixWindowStyle {
- STYLE_COMMON_MEMBERS;
-};
-
-/*----------------------------------------------------------------------
- * Tix_DItem and Tix_DItemStyle --
- *
- * These unions just make it easy to address the internals of the
- * structures of the display items and styles. If you create a new
- * display item, you will need to do you type casting yourself.
- *----------------------------------------------------------------------
- */
-union Tix_DItem {
- TixBaseItem base;
- TixImageTextItem imagetext;
- TixTextItem text;
- TixWindowItem window;
- TixImageItem image;
-};
-
-union Tix_DItemStyle {
- TixBaseStyle base;
- TixColorStyle color;
- TixImageTextStyle imagetext;
- TixTextStyle text;
- TixWindowStyle window;
- TixImageStyle image;
-};
-
-#define Tix_DItemType(x) ((x)->base.diTypePtr->type)
-#define Tix_DItemTypeName(x) ((x)->base.diTypePtr->name)
-#define Tix_DItemWidth(x) ((x)->base.size[0])
-#define Tix_DItemHeight(x) ((x)->base.size[1])
-#define Tix_DItemConfigSpecs(x) ((x)->base.diTypePtr->itemConfigSpecs)
-#define Tix_DItemPadX(x) ((x)->base.stylePtr->pad[0])
-#define Tix_DItemPadY(x) ((x)->base.stylePtr->pad[1])
-
-#define TIX_WIDTH 0
-#define TIX_HEIGHT 1
-
-/*----------------------------------------------------------------------
- * Tix_ArgumentList --
- *
- * This data structure is used to split command arguments for
- * the display item types
- *----------------------------------------------------------------------
- */
-#define FIXED_SIZE 4
-typedef struct {
- int argc;
- Tcl_Obj **objv;
-} Tix_Argument;
-
-typedef struct {
- Tix_Argument * arg;
- int numLists;
- Tix_Argument preAlloc[FIXED_SIZE];
-} Tix_ArgumentList;
-
-/*----------------------------------------------------------------------
- * Tix_ScrollInfo --
- *
- * This data structure encapsulates all the necessary operations
- * for scrolling widgets
- *----------------------------------------------------------------------
- */
-#define TIX_SCROLL_INT 1
-#define TIX_SCROLL_DOUBLE 2
-
-/* abstract type */
-typedef struct Tix_ScrollInfo {
- int type; /* TIX_SCROLL_INT or TIX_SCROLL_DOUBLE */
- LangCallback *command;
- /* place holder for actual space - double must be mentioned
- to force alignment for too-clever-by-half compilers
- */
- union {
- int iscroll[4];
- double dscroll[4];
- } info;
-} Tix_ScrollInfo;
-
-typedef struct Tix_IntScrollInfo {
- int type; /* TIX_SCROLL_INT */
- LangCallback *command;
-
- int total; /* total size (width or height) of the widget*/
- int window; /* visible size */
- int offset; /* The top/left side of the scrolled widget */
- int unit; /* How much should we scroll when the user
- * press the arrow on a scrollbar? */
-
-} Tix_IntScrollInfo;
-
-typedef struct Tix_DoubleScrollInfo {
- int type; /* TIX_SCROLL_DOUBLE */
- LangCallback *command;
-
- double total; /* total size (width or height) of the widget*/
- double window; /* visible size */
- double offset; /* The top/left side of the scrolled widget */
- double unit; /* How much should we scroll when the user
- * press the arrow on a scrollbar? */
-} Tix_DoubleScrollInfo;
-
-/*----------------------------------------------------------------------
- *
- * Global variables
- *
- * Should be used only in the Tix library. Some systems don't support
- * exporting of global variables from shared libraries.
- *
- *----------------------------------------------------------------------
- */
-EXTERN Tk_Uid tixNormalUid;
-EXTERN Tk_Uid tixDisabledUid;
-EXTERN Tk_Uid tixCellUid;
-EXTERN Tk_Uid tixRowUid;
-EXTERN Tk_Uid tixColumnUid;
-
-#define FLAG_READONLY 0
-#define FLAG_STATIC 1
-#define FLAG_FORCECALL 2
-
-/*----------------------------------------------------------------------
- *
- *
- * MEGA-WIDGET CONFIG HANDLING
- *
- *
- *----------------------------------------------------------------------
- */
-typedef struct _TixConfigSpec TixConfigSpec;
-typedef struct _TixConfigAlias TixConfigAlias;
-typedef struct _TixClassRecord TixClassRecord;
-
-struct _TixConfigSpec {
- unsigned int isAlias : 1;
- unsigned int readOnly : 1;
- unsigned int isStatic : 1;
- unsigned int forceCall : 1;
-
- char * argvName;
- char * defValue;
-
- char * dbName; /* The additional parts of a */
- char * dbClass; /* TixWidgetConfigSpec structure */
-
- char *verifyCmd;
-
- TixConfigSpec * realPtr; /* valid only if this option is an alias */
-};
-
-/*
- * Controls the access of root widget and subwidget commands and options
- */
-typedef struct _Tix_ExportSpec {
- Tix_LinkList exportCmds;
- Tix_LinkList restrictCmds;
- Tix_LinkList exportOpts;
- Tix_LinkList restrictOpts;
-} Tix_ExportSpec;
-
-typedef struct _Tix_SubWidgetSpec {
- struct _Tix_SubWidgetSpec * next;
- char * name;
- Tix_ExportSpec export;
-} Tix_SubWidgetSpec;
-
-typedef struct _Tix_StringLink {
- struct _Tix_StringLink *next;
- char * string;
-} Tix_StringLink;
-
-typedef struct _Tix_SubwidgetDef {
- struct _TixSubwidgetDef * next;
- char * spec;
- char * value;
-} Tix_SubwidgetDef;
-
-typedef struct _TixClassParseStruct {
- char * alias;
- char * ClassName;
- char * configSpec;
- char * def;
- char * flag;
- char * forceCall;
- char * method;
- char * readOnly;
- char * isStatic;
- char * superClass;
- char * subWidget;
- char * isVirtual;
-
- int optArgc;
- char ** optArgv;
-} TixClassParseStruct;
-
-struct _TixClassRecord {
- TixClassRecord * next; /* Chains to the next class record in
- * a superClass's unInitSubCls list */
- TixClassRecord * superClass; /* The superclass of this class. Is
- * NULL if this class does not have
- * a superclass. */
- unsigned int isWidget; /* TRUE iff this class is created by
- * the "tixWidgetClass" command */
- char * className; /* Instiantiation command */
- char * ClassName; /* used in TK option database */
-
- int nSpecs;
- TixConfigSpec ** specs;
- int nMethods;
- char ** methods;
- Tk_Window mainWindow; /* This variable is essentially
- * a cached variable so that
- * we can advoid calling
- * Tk_MainWindow() */
- int isVirtual; /* is this a virtual base class
- * (shouldn't be instantiated)*/
- TixClassParseStruct*parsePtr; /* Information supplied by the
- * tixClass or tixWidgetClass
- * commands */
- Tix_LinkList unInitSubCls; /* The subclasses that have not been
- * initialized. */
- int initialized; /* Is this class initialized? A class
- * is not initialized if it has been
- * defined but some its superclass
- * is not initialized.
- */
- Tix_LinkList subWDefs; /* the -defaults option */
-#if USE_ACCESS_CONTROL
- Tix_LinkList subWidgets;
- Tix_ExportSpec exportSpec; /* controls the export status
- * of the commands and options
- * of the root widget */
-#endif
-};
-
-typedef struct _TixInterpState {
- char * result;
- char * errorInfo;
- char * errorCode;
-} TixInterpState;
-
-/*----------------------------------------------------------------------
- *
- * Internal procedures
- *
- *----------------------------------------------------------------------
- */
-
-EXTERN int Tix_CallConfigMethod _ANSI_ARGS_((
- Tcl_Interp *interp, TixClassRecord *cPtr,
- char * widRec, TixConfigSpec *spec, char * value));
-EXTERN int Tix_CallMethod _ANSI_ARGS_((Tcl_Interp *interp,
- char *context, char *widRec, char *method,
- int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tix_ChangeOneOption _ANSI_ARGS_((
- Tcl_Interp *interp, TixClassRecord *cPtr,
- char * widRec, TixConfigSpec *spec, char * value,
- int isDefault, int isInit));
-EXTERN int Tix_ChangeOptions _ANSI_ARGS_((
- Tcl_Interp *interp, TixClassRecord *cPtr,
- char * widRec, int argc, Tcl_Obj *CONST *objv));
-EXTERN TixConfigSpec * Tix_FindConfigSpecByName _ANSI_ARGS_((
- Tcl_Interp * interp,
- TixClassRecord * cPtr, char * name));
-EXTERN char * Tix_FindMethod _ANSI_ARGS_((Tcl_Interp *interp,
- char *context, char *method));
-EXTERN char * Tix_FindPublicMethod _ANSI_ARGS_((
- Tcl_Interp *interp, TixClassRecord * cPtr,
- char * method));
-EXTERN int Tix_GetChars _ANSI_ARGS_((Tcl_Interp *interp,
- char *string, double *doublePtr));
-EXTERN char * Tix_GetConfigSpecFullName _ANSI_ARGS_((char *clasRec,
- char *flag));
-EXTERN char * Tix_GetContext _ANSI_ARGS_((
- Tcl_Interp * interp, char * widRec));
-EXTERN char * Tix_GetMethodFullName _ANSI_ARGS_((char *context,
- char *method));
-EXTERN void Tix_GetPublicMethods _ANSI_ARGS_((Tcl_Interp *interp,
- char *widRec, int *numMethods,
- char *** validMethods));
-EXTERN int Tix_GetWidgetOption _ANSI_ARGS_((
- Tcl_Interp *interp, Tk_Window tkwin,
- char *argvName, char *dbName, char *dbClass,
- char *defValue, int argc, Tcl_Obj *CONST *objv,
- int type, char *ptr));
-EXTERN int Tix_GetVar _ANSI_ARGS_((
- Tcl_Interp *interp, TixClassRecord *cPtr,
- char * widRec, char * flag));
-EXTERN int Tix_QueryAllOptions _ANSI_ARGS_((
- Tcl_Interp *interp, TixClassRecord * cPtr,
- char *widRec));
-EXTERN int Tix_QueryOneOption _ANSI_ARGS_((
- Tcl_Interp *interp, TixClassRecord *cPtr,
- char *widRec, char *flag));
-EXTERN int Tix_SuperClass _ANSI_ARGS_((Tcl_Interp *interp,
- char *widClass, char ** superClass_ret));
-EXTERN int Tix_UnknownPublicMethodError _ANSI_ARGS_((
- Tcl_Interp *interp, TixClassRecord * cPtr,
- char * widRec, char * method));
-EXTERN int Tix_ValueMissingError _ANSI_ARGS_((Tcl_Interp *interp,
- char *spec));
-EXTERN void Tix_AddDItemType _ANSI_ARGS_((
- Tix_DItemInfo * diTypePtr));
-EXTERN int Tix_ConfigureInfo2 _ANSI_ARGS_((
- Tcl_Interp *interp, Tk_Window tkwin,
- char *entRec, Tk_ConfigSpec *entConfigSpecs,
- Tix_DItem * iPtr, char *argvName, int flags));
-EXTERN int Tix_ConfigureValue2 _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Window tkwin, char * entRec,
- Tk_ConfigSpec *entConfigSpecs, Tix_DItem * iPtr,
- char *argvName, int flags));
-EXTERN void Tix_DItemCalculateSize _ANSI_ARGS_((
- Tix_DItem * iPtr));
-EXTERN char * Tix_DItemComponent _ANSI_ARGS_((Tix_DItem * diPtr,
- int x, int y));
-EXTERN int Tix_DItemConfigure _ANSI_ARGS_((
- Tix_DItem * diPtr, int argc,
- Tcl_Obj *CONST *objv, int flags));
-EXTERN Tix_DItem * Tix_DItemCreate _ANSI_ARGS_((Tix_DispData * ddPtr,
- char * type));
-EXTERN void Tix_DItemDrawBackground _ANSI_ARGS_((
- Pixmap pixmap, GC gc, Tix_DItem * iPtr,
- int x, int y, int width, int height, int flags));
-EXTERN void Tix_DItemDisplay _ANSI_ARGS_((
- Pixmap pixmap, GC gc, Tix_DItem * iPtr,
- int x, int y, int width, int height, int flag));
-EXTERN void Tix_DItemFree _ANSI_ARGS_((
- Tix_DItem * iPtr));
-EXTERN void TixDItemStyleChanged _ANSI_ARGS_((
- Tix_DItemInfo * diTypePtr,
- Tix_DItemStyle * stylePtr));
-EXTERN void TixDItemStyleFree _ANSI_ARGS_((Tix_DItem *iPtr,
- Tix_DItemStyle * stylePtr));
-EXTERN void TixDItemGetAnchor _ANSI_ARGS_((Tk_Anchor anchor,
- int x, int y, int cav_w, int cav_h,
- int width, int height, int * x_ret, int * y_ret));
-EXTERN void Tix_FreeArgumentList _ANSI_ARGS_((
- Tix_ArgumentList *argListPtr));
-EXTERN void TixGetColorDItemGC _ANSI_ARGS_((
- Tix_DItem * iPtr, GC * backGC_ret,
- GC * foreGC_ret, int flags));
-EXTERN Tix_DItemStyle* TixGetDefaultDItemStyle _ANSI_ARGS_((
- Tix_DispData * ddPtr, Tix_DItemInfo * diTypePtr,
- Tix_DItem *iPtr, Tix_DItemStyle* oldStylePtr));
-EXTERN Tix_DItemInfo * Tix_GetDItemType _ANSI_ARGS_((
- Tcl_Interp * interp, char *type));
-EXTERN void Tix_GetScrollFractions _ANSI_ARGS_((
- Tix_ScrollInfo * siPtr,
- double * first_ret, double * last_ret));
-EXTERN void Tix_InitScrollInfo _ANSI_ARGS_((
- Tix_ScrollInfo * siPtr, int type));
-EXTERN int Tix_MultiConfigureInfo _ANSI_ARGS_((
- Tcl_Interp * interp,
- Tk_Window tkwin, Tk_ConfigSpec **specsList,
- int numLists, char **widgRecList, char *argvName,
- int flags, int request));
-EXTERN void Tix_SetDefaultStyleTemplate _ANSI_ARGS_((
- Tk_Window tkwin, Tix_StyleTemplate * tmplPtr));
-EXTERN int Tix_SetScrollBarView _ANSI_ARGS_((
- Tcl_Interp *interp, Tix_ScrollInfo * siPtr,
- int argc, Tcl_Obj *CONST *objv, int compat));
-EXTERN void Tix_SetWindowItemSerial _ANSI_ARGS_((
- Tix_LinkList * lPtr, Tix_DItem * iPtr,
- int serial));
-EXTERN int Tix_SplitConfig _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_ConfigSpec ** specsList,
- int numLists, int argc, Tcl_Obj *CONST *objv,
- Tix_ArgumentList * argListPtr));
-EXTERN void Tix_UnmapInvisibleWindowItems _ANSI_ARGS_((
- Tix_LinkList * lPtr, int serial));
-EXTERN void Tix_UpdateScrollBar _ANSI_ARGS_((
- Tcl_Interp *interp, Tix_ScrollInfo * siPtr));
-EXTERN int Tix_WidgetConfigure2 _ANSI_ARGS_((
- Tcl_Interp *interp, Tk_Window tkwin, char * entRec,
- Tk_ConfigSpec *entConfigSpecs,
- Tix_DItem * iPtr, int argc, Tcl_Obj *CONST *objv,
- int flags, int forced, int * sizeChanged_ret));
-EXTERN void Tix_WindowItemListRemove _ANSI_ARGS_((
- Tix_LinkList * lPtr, Tix_DItem * iPtr));
-
-typedef struct _TixpSubRegion TixpSubRegion;
-
-struct _TixpSubRegion {
- Pixmap pixmap;
- int origX, origY;
- int x, y;
- int width, height;
-};
-
-/*
- * Functions that should be used by Tix only. Functions prefixed by "Tix"
- * are generic functions that has one implementation for all platforms.
- * Functions prefixed with "Tixp" requires one implementation on each
- * platform.
- */
-
-extern int TixInitSam _ANSI_ARGS_((Tcl_Interp * interp));
-extern int TixLoadLibrary _ANSI_ARGS_((Tcl_Interp * interp));
-extern void TixRestoreInterpState _ANSI_ARGS_((
- Tcl_Interp * interp, TixInterpState * statePtr));
-extern void TixSaveInterpState _ANSI_ARGS_((Tcl_Interp * interp,
- TixInterpState * statePtr));
-
-extern void TixpDrawAnchorLines _ANSI_ARGS_((Display *display,
- Drawable drawable, GC gc, int x, int y,
- int w, int h));
-extern void TixpDrawTmpLine _ANSI_ARGS_((int x1, int y1,
- int x2, int y2, Tk_Window tkwin));
-extern void TixpEndSubRegionDraw _ANSI_ARGS_((Display *display,
- Drawable drawable, GC gc,
- TixpSubRegion * subRegPtr));
-extern int TixpSetWindowParent _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_Window newParent,
- int parentId));
-extern void TixpStartSubRegionDraw _ANSI_ARGS_((Tix_DispData *ddPtr,
- Drawable drawable, GC gc,
- TixpSubRegion * subRegPtr, int origX,
- int origY, int x, int y, int width, int height,
- int needWidth, int needHeight));
-extern void TixpSubRegDisplayText _ANSI_ARGS_((Display *display,
- Drawable drawable, GC gc,
- TixpSubRegion * subRegPtr,
- TixFont font, char *string,
- int numChars, int x, int y, int length,
- Tk_Justify justify, int underline));
-extern void TixpSubRegDrawBitmap _ANSI_ARGS_((Display *display,
- Drawable drawable, GC gc,
- TixpSubRegion * subRegPtr, Pixmap bitmap,
- int src_x, int src_y, int width, int height,
- int dest_x, int dest_y, unsigned long plane));
-extern void TixpSubRegDrawImage _ANSI_ARGS_((
- TixpSubRegion * subRegPtr, Tk_Image image,
- int imageX, int imageY, int width, int height,
- Drawable drawable, int drawableX, int drawableY));
-extern void TixpSubRegFillRectangle _ANSI_ARGS_((Display *display,
- Drawable drawable, GC gc,
- TixpSubRegion * subRegPtr, int x, int y,
- int width, int height));
-
-/* These functions are also, and originaly declared in tixPort.h but
- * that would mean even more Vtables
- */
-
-EXTERN void TixComputeTextGeometry _ANSI_ARGS_((
- TixFont fontStructPtr, char *string,
- int numChars, int wrapLength, int *widthPtr,
- int *heightPtr));
-EXTERN void TixDisplayText _ANSI_ARGS_((Display *display,
- Drawable drawable, TixFont font,
- char *string, int numChars, int x, int y,
- int length, Tk_Justify justify, int underline,
- GC gc));
-EXTERN Tcl_HashTable * TixGetHashTable _ANSI_ARGS_((Tcl_Interp * interp,
- char * name, Tcl_InterpDeleteProc *deleteProc));
-
-/*
- * built-in strdup is not compatible with the tcl memory allocator. We
- * replace all strdup calls with tixStrDup.
- */
-#define NO_STRDUP 1
-extern char *tixStrDup _ANSI_ARGS_(( CONST char * s));
-
-/*
- * Console Stuff
- * (these are declared with the EXTERN in win/winMain.c but without it
- * in generic/tkConsole.c)
- */
-EXTERN void TkConsoleCreate _ANSI_ARGS_((void));
-EXTERN int TkConsoleInit _ANSI_ARGS_((Tcl_Interp *interp));
-
-#define TixConsoleCreate(x) TkConsoleCreate()
-#define TixConsoleInit(x) TkConsoleInit(x)
-
-#endif /* _TIXINT */
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixInt.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tixInt.m
deleted file mode 100644
index 3c953cbf032..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixInt.m
+++ /dev/null
@@ -1,171 +0,0 @@
-#ifndef _TIXINT_VM
-#define _TIXINT_VM
-#include "tixInt_f.h"
-#ifndef NO_VTABLES
-#define tixCellUid (*TixintVptr->V_tixCellUid)
-#define tixColumnUid (*TixintVptr->V_tixColumnUid)
-#define tixDisabledUid (*TixintVptr->V_tixDisabledUid)
-#define tixNormalUid (*TixintVptr->V_tixNormalUid)
-#define tixRowUid (*TixintVptr->V_tixRowUid)
-#ifndef TixComputeTextGeometry
-# define TixComputeTextGeometry (*TixintVptr->V_TixComputeTextGeometry)
-#endif
-
-#ifndef TixDItemGetAnchor
-# define TixDItemGetAnchor (*TixintVptr->V_TixDItemGetAnchor)
-#endif
-
-#ifndef TixDItemStyleChanged
-# define TixDItemStyleChanged (*TixintVptr->V_TixDItemStyleChanged)
-#endif
-
-#ifndef TixDItemStyleFree
-# define TixDItemStyleFree (*TixintVptr->V_TixDItemStyleFree)
-#endif
-
-#ifndef TixDisplayText
-# define TixDisplayText (*TixintVptr->V_TixDisplayText)
-#endif
-
-#ifndef TixGetColorDItemGC
-# define TixGetColorDItemGC (*TixintVptr->V_TixGetColorDItemGC)
-#endif
-
-#ifndef TixGetDefaultDItemStyle
-# define TixGetDefaultDItemStyle (*TixintVptr->V_TixGetDefaultDItemStyle)
-#endif
-
-#ifndef TixGetHashTable
-# define TixGetHashTable (*TixintVptr->V_TixGetHashTable)
-#endif
-
-#ifndef Tix_AddDItemType
-# define Tix_AddDItemType (*TixintVptr->V_Tix_AddDItemType)
-#endif
-
-#ifndef Tix_ConfigureInfo2
-# define Tix_ConfigureInfo2 (*TixintVptr->V_Tix_ConfigureInfo2)
-#endif
-
-#ifndef Tix_ConfigureValue2
-# define Tix_ConfigureValue2 (*TixintVptr->V_Tix_ConfigureValue2)
-#endif
-
-#ifndef Tix_DItemCalculateSize
-# define Tix_DItemCalculateSize (*TixintVptr->V_Tix_DItemCalculateSize)
-#endif
-
-#ifndef Tix_DItemComponent
-# define Tix_DItemComponent (*TixintVptr->V_Tix_DItemComponent)
-#endif
-
-#ifndef Tix_DItemConfigure
-# define Tix_DItemConfigure (*TixintVptr->V_Tix_DItemConfigure)
-#endif
-
-#ifndef Tix_DItemCreate
-# define Tix_DItemCreate (*TixintVptr->V_Tix_DItemCreate)
-#endif
-
-#ifndef Tix_DItemDisplay
-# define Tix_DItemDisplay (*TixintVptr->V_Tix_DItemDisplay)
-#endif
-
-#ifndef Tix_DItemDrawBackground
-# define Tix_DItemDrawBackground (*TixintVptr->V_Tix_DItemDrawBackground)
-#endif
-
-#ifndef Tix_DItemFree
-# define Tix_DItemFree (*TixintVptr->V_Tix_DItemFree)
-#endif
-
-#ifndef Tix_FreeArgumentList
-# define Tix_FreeArgumentList (*TixintVptr->V_Tix_FreeArgumentList)
-#endif
-
-#ifndef Tix_GetDItemType
-# define Tix_GetDItemType (*TixintVptr->V_Tix_GetDItemType)
-#endif
-
-#ifndef Tix_GetScrollFractions
-# define Tix_GetScrollFractions (*TixintVptr->V_Tix_GetScrollFractions)
-#endif
-
-#ifndef Tix_InitScrollInfo
-# define Tix_InitScrollInfo (*TixintVptr->V_Tix_InitScrollInfo)
-#endif
-
-#ifndef Tix_MultiConfigureInfo
-# define Tix_MultiConfigureInfo (*TixintVptr->V_Tix_MultiConfigureInfo)
-#endif
-
-#ifndef Tix_SetDefaultStyleTemplate
-# define Tix_SetDefaultStyleTemplate (*TixintVptr->V_Tix_SetDefaultStyleTemplate)
-#endif
-
-#ifndef Tix_SetScrollBarView
-# define Tix_SetScrollBarView (*TixintVptr->V_Tix_SetScrollBarView)
-#endif
-
-#ifndef Tix_SetWindowItemSerial
-# define Tix_SetWindowItemSerial (*TixintVptr->V_Tix_SetWindowItemSerial)
-#endif
-
-#ifndef Tix_SplitConfig
-# define Tix_SplitConfig (*TixintVptr->V_Tix_SplitConfig)
-#endif
-
-#ifndef Tix_UnmapInvisibleWindowItems
-# define Tix_UnmapInvisibleWindowItems (*TixintVptr->V_Tix_UnmapInvisibleWindowItems)
-#endif
-
-#ifndef Tix_UpdateScrollBar
-# define Tix_UpdateScrollBar (*TixintVptr->V_Tix_UpdateScrollBar)
-#endif
-
-#ifndef Tix_WidgetConfigure2
-# define Tix_WidgetConfigure2 (*TixintVptr->V_Tix_WidgetConfigure2)
-#endif
-
-#ifndef Tix_WindowItemListRemove
-# define Tix_WindowItemListRemove (*TixintVptr->V_Tix_WindowItemListRemove)
-#endif
-
-#ifndef TixpDrawAnchorLines
-# define TixpDrawAnchorLines (*TixintVptr->V_TixpDrawAnchorLines)
-#endif
-
-#ifndef TixpDrawTmpLine
-# define TixpDrawTmpLine (*TixintVptr->V_TixpDrawTmpLine)
-#endif
-
-#ifndef TixpEndSubRegionDraw
-# define TixpEndSubRegionDraw (*TixintVptr->V_TixpEndSubRegionDraw)
-#endif
-
-#ifndef TixpStartSubRegionDraw
-# define TixpStartSubRegionDraw (*TixintVptr->V_TixpStartSubRegionDraw)
-#endif
-
-#ifndef TixpSubRegDisplayText
-# define TixpSubRegDisplayText (*TixintVptr->V_TixpSubRegDisplayText)
-#endif
-
-#ifndef TixpSubRegDrawBitmap
-# define TixpSubRegDrawBitmap (*TixintVptr->V_TixpSubRegDrawBitmap)
-#endif
-
-#ifndef TixpSubRegDrawImage
-# define TixpSubRegDrawImage (*TixintVptr->V_TixpSubRegDrawImage)
-#endif
-
-#ifndef TixpSubRegFillRectangle
-# define TixpSubRegFillRectangle (*TixintVptr->V_TixpSubRegFillRectangle)
-#endif
-
-#ifndef tixStrDup
-# define tixStrDup (*TixintVptr->V_tixStrDup)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TIXINT_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixInt.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tixInt.t
deleted file mode 100644
index 07e593d2337..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixInt.t
+++ /dev/null
@@ -1,249 +0,0 @@
-#ifdef _TIXINT
-VVAR(Tk_Uid,tixCellUid,V_tixCellUid)
-VVAR(Tk_Uid,tixColumnUid,V_tixColumnUid)
-VVAR(Tk_Uid,tixDisabledUid,V_tixDisabledUid)
-VVAR(Tk_Uid,tixNormalUid,V_tixNormalUid)
-VVAR(Tk_Uid,tixRowUid,V_tixRowUid)
-#ifndef TixComputeTextGeometry
-VFUNC(void,TixComputeTextGeometry,V_TixComputeTextGeometry,_ANSI_ARGS_((
- TixFont fontStructPtr, char *string,
- int numChars, int wrapLength, int *widthPtr,
- int *heightPtr)))
-#endif /* #ifndef TixComputeTextGeometry */
-
-#ifndef TixDItemGetAnchor
-VFUNC(void,TixDItemGetAnchor,V_TixDItemGetAnchor,_ANSI_ARGS_((Tk_Anchor anchor,
- int x, int y, int cav_w, int cav_h,
- int width, int height, int * x_ret, int * y_ret)))
-#endif /* #ifndef TixDItemGetAnchor */
-
-#ifndef TixDItemStyleChanged
-VFUNC(void,TixDItemStyleChanged,V_TixDItemStyleChanged,_ANSI_ARGS_((
- Tix_DItemInfo * diTypePtr,
- Tix_DItemStyle * stylePtr)))
-#endif /* #ifndef TixDItemStyleChanged */
-
-#ifndef TixDItemStyleFree
-VFUNC(void,TixDItemStyleFree,V_TixDItemStyleFree,_ANSI_ARGS_((Tix_DItem *iPtr,
- Tix_DItemStyle * stylePtr)))
-#endif /* #ifndef TixDItemStyleFree */
-
-#ifndef TixDisplayText
-VFUNC(void,TixDisplayText,V_TixDisplayText,_ANSI_ARGS_((Display *display,
- Drawable drawable, TixFont font,
- char *string, int numChars, int x, int y,
- int length, Tk_Justify justify, int underline,
- GC gc)))
-#endif /* #ifndef TixDisplayText */
-
-#ifndef TixGetColorDItemGC
-VFUNC(void,TixGetColorDItemGC,V_TixGetColorDItemGC,_ANSI_ARGS_((
- Tix_DItem * iPtr, GC * backGC_ret,
- GC * foreGC_ret, int flags)))
-#endif /* #ifndef TixGetColorDItemGC */
-
-#ifndef TixGetDefaultDItemStyle
-VFUNC(Tix_DItemStyle*,TixGetDefaultDItemStyle,V_TixGetDefaultDItemStyle,_ANSI_ARGS_((
- Tix_DispData * ddPtr, Tix_DItemInfo * diTypePtr,
- Tix_DItem *iPtr, Tix_DItemStyle* oldStylePtr)))
-#endif /* #ifndef TixGetDefaultDItemStyle */
-
-#ifndef TixGetHashTable
-VFUNC(Tcl_HashTable *,TixGetHashTable,V_TixGetHashTable,_ANSI_ARGS_((Tcl_Interp * interp,
- char * name, Tcl_InterpDeleteProc *deleteProc)))
-#endif /* #ifndef TixGetHashTable */
-
-#ifndef Tix_AddDItemType
-VFUNC(void,Tix_AddDItemType,V_Tix_AddDItemType,_ANSI_ARGS_((
- Tix_DItemInfo * diTypePtr)))
-#endif /* #ifndef Tix_AddDItemType */
-
-#ifndef Tix_ConfigureInfo2
-VFUNC(int,Tix_ConfigureInfo2,V_Tix_ConfigureInfo2,_ANSI_ARGS_((
- Tcl_Interp *interp, Tk_Window tkwin,
- char *entRec, Tk_ConfigSpec *entConfigSpecs,
- Tix_DItem * iPtr, char *argvName, int flags)))
-#endif /* #ifndef Tix_ConfigureInfo2 */
-
-#ifndef Tix_ConfigureValue2
-VFUNC(int,Tix_ConfigureValue2,V_Tix_ConfigureValue2,_ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Window tkwin, char * entRec,
- Tk_ConfigSpec *entConfigSpecs, Tix_DItem * iPtr,
- char *argvName, int flags)))
-#endif /* #ifndef Tix_ConfigureValue2 */
-
-#ifndef Tix_DItemCalculateSize
-VFUNC(void,Tix_DItemCalculateSize,V_Tix_DItemCalculateSize,_ANSI_ARGS_((
- Tix_DItem * iPtr)))
-#endif /* #ifndef Tix_DItemCalculateSize */
-
-#ifndef Tix_DItemComponent
-VFUNC(char *,Tix_DItemComponent,V_Tix_DItemComponent,_ANSI_ARGS_((Tix_DItem * diPtr,
- int x, int y)))
-#endif /* #ifndef Tix_DItemComponent */
-
-#ifndef Tix_DItemConfigure
-VFUNC(int,Tix_DItemConfigure,V_Tix_DItemConfigure,_ANSI_ARGS_((
- Tix_DItem * diPtr, int argc,
- Tcl_Obj *CONST *objv, int flags)))
-#endif /* #ifndef Tix_DItemConfigure */
-
-#ifndef Tix_DItemCreate
-VFUNC(Tix_DItem *,Tix_DItemCreate,V_Tix_DItemCreate,_ANSI_ARGS_((Tix_DispData * ddPtr,
- char * type)))
-#endif /* #ifndef Tix_DItemCreate */
-
-#ifndef Tix_DItemDisplay
-VFUNC(void,Tix_DItemDisplay,V_Tix_DItemDisplay,_ANSI_ARGS_((
- Pixmap pixmap, GC gc, Tix_DItem * iPtr,
- int x, int y, int width, int height, int flag)))
-#endif /* #ifndef Tix_DItemDisplay */
-
-#ifndef Tix_DItemDrawBackground
-VFUNC(void,Tix_DItemDrawBackground,V_Tix_DItemDrawBackground,_ANSI_ARGS_((
- Pixmap pixmap, GC gc, Tix_DItem * iPtr,
- int x, int y, int width, int height, int flags)))
-#endif /* #ifndef Tix_DItemDrawBackground */
-
-#ifndef Tix_DItemFree
-VFUNC(void,Tix_DItemFree,V_Tix_DItemFree,_ANSI_ARGS_((
- Tix_DItem * iPtr)))
-#endif /* #ifndef Tix_DItemFree */
-
-#ifndef Tix_FreeArgumentList
-VFUNC(void,Tix_FreeArgumentList,V_Tix_FreeArgumentList,_ANSI_ARGS_((
- Tix_ArgumentList *argListPtr)))
-#endif /* #ifndef Tix_FreeArgumentList */
-
-#ifndef Tix_GetDItemType
-VFUNC(Tix_DItemInfo *,Tix_GetDItemType,V_Tix_GetDItemType,_ANSI_ARGS_((
- Tcl_Interp * interp, char *type)))
-#endif /* #ifndef Tix_GetDItemType */
-
-#ifndef Tix_GetScrollFractions
-VFUNC(void,Tix_GetScrollFractions,V_Tix_GetScrollFractions,_ANSI_ARGS_((
- Tix_ScrollInfo * siPtr,
- double * first_ret, double * last_ret)))
-#endif /* #ifndef Tix_GetScrollFractions */
-
-#ifndef Tix_InitScrollInfo
-VFUNC(void,Tix_InitScrollInfo,V_Tix_InitScrollInfo,_ANSI_ARGS_((
- Tix_ScrollInfo * siPtr, int type)))
-#endif /* #ifndef Tix_InitScrollInfo */
-
-#ifndef Tix_MultiConfigureInfo
-VFUNC(int,Tix_MultiConfigureInfo,V_Tix_MultiConfigureInfo,_ANSI_ARGS_((
- Tcl_Interp * interp,
- Tk_Window tkwin, Tk_ConfigSpec **specsList,
- int numLists, char **widgRecList, char *argvName,
- int flags, int request)))
-#endif /* #ifndef Tix_MultiConfigureInfo */
-
-#ifndef Tix_SetDefaultStyleTemplate
-VFUNC(void,Tix_SetDefaultStyleTemplate,V_Tix_SetDefaultStyleTemplate,_ANSI_ARGS_((
- Tk_Window tkwin, Tix_StyleTemplate * tmplPtr)))
-#endif /* #ifndef Tix_SetDefaultStyleTemplate */
-
-#ifndef Tix_SetScrollBarView
-VFUNC(int,Tix_SetScrollBarView,V_Tix_SetScrollBarView,_ANSI_ARGS_((
- Tcl_Interp *interp, Tix_ScrollInfo * siPtr,
- int argc, Tcl_Obj *CONST *objv, int compat)))
-#endif /* #ifndef Tix_SetScrollBarView */
-
-#ifndef Tix_SetWindowItemSerial
-VFUNC(void,Tix_SetWindowItemSerial,V_Tix_SetWindowItemSerial,_ANSI_ARGS_((
- Tix_LinkList * lPtr, Tix_DItem * iPtr,
- int serial)))
-#endif /* #ifndef Tix_SetWindowItemSerial */
-
-#ifndef Tix_SplitConfig
-VFUNC(int,Tix_SplitConfig,V_Tix_SplitConfig,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_ConfigSpec ** specsList,
- int numLists, int argc, Tcl_Obj *CONST *objv,
- Tix_ArgumentList * argListPtr)))
-#endif /* #ifndef Tix_SplitConfig */
-
-#ifndef Tix_UnmapInvisibleWindowItems
-VFUNC(void,Tix_UnmapInvisibleWindowItems,V_Tix_UnmapInvisibleWindowItems,_ANSI_ARGS_((
- Tix_LinkList * lPtr, int serial)))
-#endif /* #ifndef Tix_UnmapInvisibleWindowItems */
-
-#ifndef Tix_UpdateScrollBar
-VFUNC(void,Tix_UpdateScrollBar,V_Tix_UpdateScrollBar,_ANSI_ARGS_((
- Tcl_Interp *interp, Tix_ScrollInfo * siPtr)))
-#endif /* #ifndef Tix_UpdateScrollBar */
-
-#ifndef Tix_WidgetConfigure2
-VFUNC(int,Tix_WidgetConfigure2,V_Tix_WidgetConfigure2,_ANSI_ARGS_((
- Tcl_Interp *interp, Tk_Window tkwin, char * entRec,
- Tk_ConfigSpec *entConfigSpecs,
- Tix_DItem * iPtr, int argc, Tcl_Obj *CONST *objv,
- int flags, int forced, int * sizeChanged_ret)))
-#endif /* #ifndef Tix_WidgetConfigure2 */
-
-#ifndef Tix_WindowItemListRemove
-VFUNC(void,Tix_WindowItemListRemove,V_Tix_WindowItemListRemove,_ANSI_ARGS_((
- Tix_LinkList * lPtr, Tix_DItem * iPtr)))
-#endif /* #ifndef Tix_WindowItemListRemove */
-
-#ifndef TixpDrawAnchorLines
-VFUNC(void,TixpDrawAnchorLines,V_TixpDrawAnchorLines,_ANSI_ARGS_((Display *display,
- Drawable drawable, GC gc, int x, int y,
- int w, int h)))
-#endif /* #ifndef TixpDrawAnchorLines */
-
-#ifndef TixpDrawTmpLine
-VFUNC(void,TixpDrawTmpLine,V_TixpDrawTmpLine,_ANSI_ARGS_((int x1, int y1,
- int x2, int y2, Tk_Window tkwin)))
-#endif /* #ifndef TixpDrawTmpLine */
-
-#ifndef TixpEndSubRegionDraw
-VFUNC(void,TixpEndSubRegionDraw,V_TixpEndSubRegionDraw,_ANSI_ARGS_((Display *display,
- Drawable drawable, GC gc,
- TixpSubRegion * subRegPtr)))
-#endif /* #ifndef TixpEndSubRegionDraw */
-
-#ifndef TixpStartSubRegionDraw
-VFUNC(void,TixpStartSubRegionDraw,V_TixpStartSubRegionDraw,_ANSI_ARGS_((Tix_DispData *ddPtr,
- Drawable drawable, GC gc,
- TixpSubRegion * subRegPtr, int origX,
- int origY, int x, int y, int width, int height,
- int needWidth, int needHeight)))
-#endif /* #ifndef TixpStartSubRegionDraw */
-
-#ifndef TixpSubRegDisplayText
-VFUNC(void,TixpSubRegDisplayText,V_TixpSubRegDisplayText,_ANSI_ARGS_((Display *display,
- Drawable drawable, GC gc,
- TixpSubRegion * subRegPtr,
- TixFont font, char *string,
- int numChars, int x, int y, int length,
- Tk_Justify justify, int underline)))
-#endif /* #ifndef TixpSubRegDisplayText */
-
-#ifndef TixpSubRegDrawBitmap
-VFUNC(void,TixpSubRegDrawBitmap,V_TixpSubRegDrawBitmap,_ANSI_ARGS_((Display *display,
- Drawable drawable, GC gc,
- TixpSubRegion * subRegPtr, Pixmap bitmap,
- int src_x, int src_y, int width, int height,
- int dest_x, int dest_y, unsigned long plane)))
-#endif /* #ifndef TixpSubRegDrawBitmap */
-
-#ifndef TixpSubRegDrawImage
-VFUNC(void,TixpSubRegDrawImage,V_TixpSubRegDrawImage,_ANSI_ARGS_((
- TixpSubRegion * subRegPtr, Tk_Image image,
- int imageX, int imageY, int width, int height,
- Drawable drawable, int drawableX, int drawableY)))
-#endif /* #ifndef TixpSubRegDrawImage */
-
-#ifndef TixpSubRegFillRectangle
-VFUNC(void,TixpSubRegFillRectangle,V_TixpSubRegFillRectangle,_ANSI_ARGS_((Display *display,
- Drawable drawable, GC gc,
- TixpSubRegion * subRegPtr, int x, int y,
- int width, int height)))
-#endif /* #ifndef TixpSubRegFillRectangle */
-
-#ifndef tixStrDup
-VFUNC(char *,tixStrDup,V_tixStrDup,_ANSI_ARGS_(( CONST char * s)))
-#endif /* #ifndef tixStrDup */
-
-#endif /* _TIXINT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixInt_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixInt_f.h
deleted file mode 100644
index f085e2778fc..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixInt_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TIXINT_VT
-#define TIXINT_VT
-typedef struct TixintVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tixInt.t"
-#undef VFUNC
-#undef VVAR
-} TixintVtab;
-extern TixintVtab *TixintVptr;
-extern TixintVtab *TixintVGet(void);
-#endif /* TIXINT_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixPort.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixPort.h
deleted file mode 100644
index 56bffaf4869..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixPort.h
+++ /dev/null
@@ -1,110 +0,0 @@
-
-/* $Id: tixPort.h,v 1.1.1.1 2000/05/17 11:08:42 idiscovery Exp $ */
-
-/*
- * tixPort.h --
- *
- * This header file handles porting issues that occur because of
- * differences between systems. It reads in platform specific
- * portability files.
- *
- * Copyright (c) 1996, Expert Interface Technologies
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- */
-#ifndef _TIX_PORT_H_
-#define _TIX_PORT_H_
-
-#ifndef _TKPORT
-#include "tkPort.h"
-#endif
-
-#ifndef _LANG
-#include "Lang.h"
-#endif
-
-#ifndef _TK
-#include "tk.h"
-#endif
-
-#if (!defined(__WIN32__)) && (!defined(_WIN32)) && (!defined(MAC_TCL)) && (!defined(__PM__))
- /*
- * The Tcl/Tk porting stuff is needed only in Unix.
- */
-#if !defined(_TCLPORT) && !defined(_TKPORT)
-# if defined(_TKINT) || defined(_LANG)
-# include "tkPort.h"
-# else
-# include "tclPort.h"
-# endif
-#endif
-#endif
-
-
-#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__PM__)
-# include "tixWinPort.h"
-#else
-# if defined(MAC_TCL)
-# include "tixMacPort.h"
-# else
-# include "tixUnixPort.h"
-# endif
-#endif
-
-
-EXTERN Tcl_HashTable * TixGetHashTable _ANSI_ARGS_((Tcl_Interp * interp,
- char * name, Tcl_InterpDeleteProc *deleteProc));
-#define _TixGetHashTable(i,n,p) TixGetHashTable(i,n,p)
-
-#if (TK_MAJOR_VERSION > 4)
-
-/*
- * The font handling is changed in Tk 8.0 and later
- */
-
-typedef Tk_Font TixFont;
-#define TixFontId(font) Tk_FontId(font)
-
-EXTERN void TixComputeTextGeometry _ANSI_ARGS_((
- TixFont fontStructPtr, char *string,
- int numChars, int wrapLength, int *widthPtr,
- int *heightPtr));
-EXTERN void TixDisplayText _ANSI_ARGS_((Display *display,
- Drawable drawable, TixFont font,
- char *string, int numChars, int x, int y,
- int length, Tk_Justify justify, int underline,
- GC gc));
-
-#define TixFreeFont Tk_FreeFont
-#define TixNameOfFont Tk_NameOfFont
-#define TixGetFont Tk_GetFont
-
-#else
-
-typedef XFontStruct* TixFont;
-#define TixFontId(font) ((font)->fid)
-#define TixComputeTextGeometry TkComputeTextGeometry
-#define TixDisplayText TkDisplayText
-#define TixFreeFont Tk_FreeFontStruct
-#define TixNameOfFont Tk_NameOfFontStruct
-#define TixGetFont Tk_GetFontStruct
-
-#ifndef TkDisplayText
-EXTERN void TkDisplayText _ANSI_ARGS_((Display *display,
- Drawable drawable, XFontStruct *fontStructPtr,
- char *string, int numChars, int x, int y,
- int length, Tk_Justify justify, int underline,
- GC gc));
-#endif
-#ifndef TkComputeTextGeometry
-EXTERN void TkComputeTextGeometry _ANSI_ARGS_((
- XFontStruct *fontStructPtr, char *string,
- int numChars, int wrapLength, int *widthPtr,
- int *heightPtr));
-#endif
-
-#endif
-
-#endif /* _TIX_PORT_H_ */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixTList.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixTList.h
deleted file mode 100644
index 314b4ec4c6c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixTList.h
+++ /dev/null
@@ -1,148 +0,0 @@
-
-/* $Id: tixTList.h,v 1.1.1.1 2000/05/17 11:08:42 idiscovery Exp $ */
-
-/*
- * tixTList.h --
- *
- * This header file defines the data structures used by the tixTList
- * widget.
- *
- * Copyright (c) 1996, Expert Interface Technologies
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- */
-
-#ifndef _TIX_TLIST_H_
-#define _TIX_TLIST_H_
-
-#ifndef _TIX_INT_H_
-#include "tixInt.h"
-#endif
-
-#include "tkVMacro.h"
-
-#define TIX_X 0
-#define TIX_Y 1
-
-typedef struct ListEntry {
- struct ListEntry * next;
- Tix_DItem * iPtr;
- Tk_Uid state;
- Tcl_Obj * data; /* user data field */
- int size[2];
- unsigned int selected : 1;
-} ListEntry;
-
-typedef struct ListRow {
- ListEntry * chPtr;
- int size[2];
- int numEnt;
-} ListRow;
-
-/*
- * A data structure of the following type is kept for each
- * widget managed by this file:
- */
-typedef struct ListStruct {
- Tix_DispData dispData;
-
- Tcl_Command widgetCmd; /* Token for button's widget command. */
-
- /*
- * Information used when displaying widget:
- */
- int width, height; /* For app programmer to request size */
-
- /*
- * Information used when displaying widget:
- */
-
- /* Border and general drawing */
- int borderWidth; /* Width of 3-D borders. */
- int selBorderWidth; /* Width of 3-D borders for selected items */
- int relief; /* Indicates whether window as a whole is
- * raised, sunken, or flat. */
- Tk_3DBorder border; /* Used for drawing the 3d border. */
- Tk_3DBorder selectBorder; /* Used for selected background. */
- XColor *normalFg; /* Normal foreground for text. */
- XColor *normalBg; /* Normal background for text. */
- XColor *selectFg; /* Color for drawing selected text. */
-
- /* GC and stuff */
- GC backgroundGC; /* GC for drawing background. */
- GC selectGC; /* GC for drawing selected background. */
- GC anchorGC; /* GC for drawing dotted anchor highlight. */
- TixFont font; /* Default font used by the DItems. */
-
- /* Text drawing */
- Tk_Cursor cursor; /* Current cursor for window, or None. */
-
- /* For highlights */
- int highlightWidth; /* Width in pixels of highlight to draw
- * around widget when it has the focus.
- * <= 0 means don't draw a highlight. */
- XColor *highlightColorPtr; /* Color for drawing traversal highlight. */
- GC highlightGC; /* For drawing traversal highlight. */
-
- /* default pad and gap values */
- int padX, padY;
-
- Tk_Uid selectMode; /* Selection style: single, browse, multiple,
- * or extended. This value isn't used in C
- * code, but the Tcl bindings use it. */
- Tk_Uid state; /* State can only be normal or disabled. */
- Tix_LinkList entList;
-
- int numRowAllocd;
- int numRow;
- ListRow * rows;
-
- ListEntry * seeElemPtr; /* The current item to "see" */
- ListEntry * anchor; /* The current anchor item */
- ListEntry * active; /* The current active item */
- ListEntry * dropSite; /* The current drop site */
- ListEntry * dragSite; /* The current drop site */
-
- /*
- * Commands
- */
- LangCallback *command; /* The command when user double-clicks */
- LangCallback *browseCmd; /* The command to call when the selection
- * changes. */
- LangCallback *sizeCmd; /* The command to call when the size of
- * the listbox changes. E.g., when the user
- * add/deletes elements. Useful for
- * auto-scrollbar geometry managers */
-
- /* These options control how the items are arranged on the list */
- Tk_Uid orientUid; /* Can be "vertical" or "horizontal" */
- int packMode[2]; /* is row and column packed */
- int numMajor[2]; /* num of rows and columns */
- int itemSize[2]; /* horizontal and vertical size of items, -1
- * means natural size */
-
- /* Info for laying out */
- int maxSize[2]; /* max size of all elements in X and Y, (they
- * do not need to be the same element, may be
- * invalid according to mode */
- char *takeFocus; /* Value of -takefocus option; not used in
- * the C code, but used by keyboard traversal
- * scripts. Malloc'ed, but may be NULL. */
-
- int serial; /* this number is incremented before each time
- * the widget is redisplayed */
-
- Tix_DItemInfo * diTypePtr; /* Default item type */
- Tix_IntScrollInfo scrollInfo[2];
- unsigned int redrawing : 1;
- unsigned int resizing : 1;
- unsigned int hasFocus : 1;
- unsigned int isVertical : 1;
-} TixTListWidget;
-
-typedef TixTListWidget WidgetRecord;
-typedef TixTListWidget * WidgetPtr;
-
-#endif /* _TIX_TLIST_H_ */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixWinInt.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixWinInt.h
deleted file mode 100644
index 092cfddb9fe..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixWinInt.h
+++ /dev/null
@@ -1,23 +0,0 @@
-
-/* $Id: tixWinInt.h,v 1.1.1.1 2000/05/17 11:08:55 idiscovery Exp $ */
-
-/*
- * tixWinInt.h
- *
- * Internal header file for Tix on the Windows platform.
- *
- * Copyright (c) 1996, Expert Interface Technologies
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- */
-
-#ifndef _TIX_WIN_INT_H_
-#define _TIX_WIN_INT_H_
-
-#ifndef _TIX_INT_H_
-#include "tixInt.h"
-#endif
-
-#endif /* _TIX_WIN_INT_H_ */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixWinPort.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixWinPort.h
deleted file mode 100644
index 6c71160c756..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tixWinPort.h
+++ /dev/null
@@ -1,40 +0,0 @@
-
-/* $Id: tixWinPort.h,v 1.1.1.1 2000/05/17 11:08:55 idiscovery Exp $ */
-
-/*
- * tixWinPort.h --
- *
- * This header file handles porting issues that occur because of
- * differences between systems. It reads in platform specific
- * portability files.
- *
- * Copyright (c) 1996, Expert Interface Technologies
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- */
-
-#ifndef _TIX_WINPORT_H_
-#define _TIX_WINPORT_H_
-
-#include <stdio.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/timeb.h>
-#include <time.h>
-#include <io.h>
-#include <fcntl.h>
-
-#define WIN32_LEAN_AND_MEAN
-# ifndef __PM__
-# include <windows.h>
-# endif
-#undef WIN32_LEAN_AND_MEAN
-
-typedef unsigned char UNSIGNED_CHAR;
-
-#endif /* _TIX_WINPORT_H_ */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tix_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tix_f.h
deleted file mode 100644
index 0289ee3f7a3..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tix_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TIX_VT
-#define TIX_VT
-typedef struct TixVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tix.t"
-#undef VFUNC
-#undef VVAR
-} TixVtab;
-extern TixVtab *TixVptr;
-extern TixVtab *TixVGet(void);
-#endif /* TIX_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tk.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tk.h
deleted file mode 100644
index 7d0082e27dc..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tk.h
+++ /dev/null
@@ -1,1857 +0,0 @@
-/*
- * tk.h --
- *
- * Declarations for Tk-related things that are visible
- * outside of the Tk module itself.
- *
- * Copyright (c) 1989-1994 The Regents of the University of California.
- * Copyright (c) 1994 The Australian National University.
- * Copyright (c) 1994-1998 Sun Microsystems, Inc.
- * Copyright (c) 1998-2000 Ajuba Solutions.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tk.h,v 1.74.2.3 2003/10/03 16:32:39 dgp Exp $
- */
-
-#ifndef _TK
-#define _TK
-
-/*
- * For C++ compilers, use extern "C"
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * When version numbers change here, you must also go into the following files
- * and update the version numbers:
- *
- * library/tk.tcl (only if Major.minor changes, not patchlevel)
- * unix/configure.in (2 LOC Major, 2 LOC minor, 1 LOC patch)
- * win/configure.in (as above)
- * win/makefile.vc (not patchlevel)
- * README (sections 0 and 1)
- * mac/README (not patchlevel)
- * macosx/Wish.pbproj/project.pbxproj
- * (14 LOC total, 4 LOC patch)
- * win/README (not patchlevel)
- * unix/README (not patchlevel)
- * unix/tk.spec (3 LOC Major/Minor, 2 LOC patch)
- * win/tcl.m4 (not patchlevel)
- *
- * You may also need to update some of these files when the numbers change
- * for the version of Tcl that this release of Tk is compiled against.
- */
-
-#define TK_MAJOR_VERSION 8
-#define TK_MINOR_VERSION 4
-#define TK_RELEASE_LEVEL TCL_FINAL_RELEASE
-#define TK_RELEASE_SERIAL 5
-
-#define TK_VERSION "8.4"
-#define TK_PATCH_LEVEL "8.4.5"
-
-/*
- * The following definitions set up the proper options for Macintosh
- * compilers. We use this method because there is no autoconf equivalent.
- */
-
-#if defined(MAC_TCL) || defined(MAC_OSX_TK)
-# ifndef REDO_KEYSYM_LOOKUP
-# define REDO_KEYSYM_LOOKUP
-# endif
-#endif
-
-
-/*
- * A special definition used to allow this header file to be included
- * from windows or mac resource files so that they can obtain version
- * information. RC_INVOKED is defined by default by the windows RC tool
- * and manually set for macintosh.
- *
- * Resource compilers don't like all the C stuff, like typedefs and
- * procedure declarations, that occur below, so block them out.
- */
-
-#ifdef RC_INVOKED
-#include "Lang.h"
-#endif
-
-#ifndef RC_INVOKED
-
-#ifndef _TKPORT
-#include "tkPort.h"
-#endif
-
-#ifndef _XLIB_H
-# if defined (MAC_TCL)
-# include <Xlib.h>
-# include <X.h>
-# elif defined(MAC_OSX_TK)
-# include <X11/Xlib.h>
-# include <X11/X.h>
-# else
-# include <X11/Xlib.h>
-# endif
-#if !defined(_XLIB_H)
-#define _XLIB_H
-#endif
-#endif
-
-
-#ifdef __STDC__
-# include <stddef.h>
-#endif
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * Decide whether or not to use input methods.
- */
-
-#ifdef XNQueryInputStyle
-#define TK_USE_INPUT_METHODS
-#endif
-
-/*
- * Dummy types that are used by clients:
- */
-
-typedef struct Tk_BindingTable_ *Tk_BindingTable;
-typedef struct Tk_Canvas_ *Tk_Canvas;
-typedef struct Tk_Cursor_ *Tk_Cursor;
-typedef struct Tk_ErrorHandler_ *Tk_ErrorHandler;
-typedef struct Tk_Font_ *Tk_Font;
-typedef struct Tk_Image__ *Tk_Image;
-typedef struct Tk_ImageMaster_ *Tk_ImageMaster;
-typedef struct Tk_OptionTable_ *Tk_OptionTable;
-typedef struct Tk_PostscriptInfo_ *Tk_PostscriptInfo;
-typedef struct Tk_TextLayout_ *Tk_TextLayout;
-typedef struct Tk_Window_ *Tk_Window;
-typedef struct Tk_3DBorder_ *Tk_3DBorder;
-typedef struct Tk_Style_ *Tk_Style;
-typedef struct Tk_StyleEngine_ *Tk_StyleEngine;
-typedef struct Tk_StyledElement_ *Tk_StyledElement;
-
-/*
- * Additional types exported to clients.
- */
-
-typedef CONST char *Tk_Uid;
-
-/*
- * The enum below defines the valid types for Tk configuration options
- * as implemented by Tk_InitOptions, Tk_SetOptions, etc.
- */
-
-typedef enum {
- TK_OPTION_BOOLEAN,
- TK_OPTION_INT,
- TK_OPTION_DOUBLE,
- TK_OPTION_STRING,
- TK_OPTION_STRING_TABLE,
- TK_OPTION_COLOR,
- TK_OPTION_FONT,
- TK_OPTION_BITMAP,
- TK_OPTION_BORDER,
- TK_OPTION_RELIEF,
- TK_OPTION_CURSOR,
- TK_OPTION_JUSTIFY,
- TK_OPTION_ANCHOR,
- TK_OPTION_SYNONYM,
- TK_OPTION_PIXELS,
- TK_OPTION_WINDOW,
- TK_OPTION_END,
- TK_OPTION_CUSTOM,
- TK_OPTION_STYLE,
- TK_OPTION_OBJ,
- TK_OPTION_CALLBACK,
- TK_OPTION_SCALARVAR,
- TK_OPTION_HASHVAR,
- TK_OPTION_ARRAYVAR
-} Tk_OptionType;
-
-/*
- * Structures of the following type are used by widgets to specify
- * their configuration options. Typically each widget has a static
- * array of these structures, where each element of the array describes
- * a single configuration option. The array is passed to
- * Tk_CreateOptionTable.
- */
-
-typedef struct Tk_OptionSpec {
- Tk_OptionType type; /* Type of option, such as TK_OPTION_COLOR;
- * see definitions above. Last option in
- * table must have type TK_OPTION_END. */
- char *optionName; /* Name used to specify option in Tcl
- * commands. */
- char *dbName; /* Name for option in option database. */
- char *dbClass; /* Class for option in database. */
- char *defValue; /* Default value for option if not specified
- * in command line, the option database,
- * or the system. */
- int objOffset; /* Where in record to store a Tcl_Obj * that
- * holds the value of this option, specified
- * as an offset in bytes from the start of
- * the record. Use the Tk_Offset macro to
- * generate values for this. -1 means don't
- * store the Tcl_Obj in the record. */
- int internalOffset; /* Where in record to store the internal
- * representation of the value of this option,
- * such as an int or XColor *. This field
- * is specified as an offset in bytes
- * from the start of the record. Use the
- * Tk_Offset macro to generate values for it.
- * -1 means don't store the internal
- * representation in the record. */
- int flags; /* Any combination of the values defined
- * below. */
- ClientData clientData; /* An alternate place to put option-specific
- * data. Used for the monochrome default value
- * for colors, etc. */
- int typeMask; /* An arbitrary bit mask defined by the
- * class manager; typically bits correspond
- * to certain kinds of options such as all
- * those that require a redisplay when they
- * change. Tk_SetOptions returns the bit-wise
- * OR of the typeMasks of all options that
- * were changed. */
-} Tk_OptionSpec;
-
-/*
- * Flag values for Tk_OptionSpec structures. These flags are shared by
- * Tk_ConfigSpec structures, so be sure to coordinate any changes
- * carefully.
- */
-
-#define TK_OPTION_NULL_OK (1 << 0)
-#define TK_OPTION_DONT_SET_DEFAULT (1 << 3)
-
-/*
- * The following structure and function types are used by TK_OPTION_CUSTOM
- * options; the structure holds pointers to the functions needed by the Tk
- * option config code to handle a custom option.
- */
-
-typedef int (Tk_CustomOptionSetProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj **value, char *widgRec,
- int offset, char *saveInternalPtr, int flags));
-typedef Tcl_Obj *(Tk_CustomOptionGetProc) _ANSI_ARGS_((ClientData clientData,
- Tk_Window tkwin, char *widgRec, int offset));
-typedef void (Tk_CustomOptionRestoreProc) _ANSI_ARGS_((ClientData clientData,
- Tk_Window tkwin, char *internalPtr, char *saveInternalPtr));
-typedef void (Tk_CustomOptionFreeProc) _ANSI_ARGS_((ClientData clientData,
- Tk_Window tkwin, char *internalPtr));
-
-typedef struct Tk_ObjCustomOption {
- char *name; /* Name of the custom option. */
- Tk_CustomOptionSetProc *setProc; /* Function to use to set a record's
- * option value from a Tcl_Obj */
- Tk_CustomOptionGetProc *getProc; /* Function to use to get a Tcl_Obj
- * representation from an internal
- * representation of an option. */
- Tk_CustomOptionRestoreProc *restoreProc; /* Function to use to restore a
- * saved value for the internal
- * representation. */
- Tk_CustomOptionFreeProc *freeProc; /* Function to use to free the internal
- * representation of an option. */
- ClientData clientData; /* Arbitrary one-word value passed to
- * the handling procs. */
-} Tk_ObjCustomOption;
-
-
-/*
- * Macro to use to fill in "offset" fields of the Tk_OptionSpec.
- * struct. Computes number of bytes from beginning of structure
- * to a given field.
- */
-
-#ifdef offsetof
-#define Tk_Offset(type, field) ((int) offsetof(type, field))
-#else
-#define Tk_Offset(type, field) ((int) ((char *) &((type *) 0)->field))
-#endif
-
-/*
- * The following two structures are used for error handling. When
- * configuration options are being modified, the old values are
- * saved in a Tk_SavedOptions structure. If an error occurs, then the
- * contents of the structure can be used to restore all of the old
- * values. The contents of this structure are for the private use
- * Tk. No-one outside Tk should ever read or write any of the fields
- * of these structures.
- */
-
-typedef struct Tk_SavedOption {
- struct TkOption *optionPtr; /* Points to information that describes
- * the option. */
- Tcl_Obj *valuePtr; /* The old value of the option, in
- * the form of a Tcl object; may be
- * NULL if the value wasn't saved as
- * an object. */
- double internalForm; /* The old value of the option, in
- * some internal representation such
- * as an int or (XColor *). Valid
- * only if optionPtr->specPtr->objOffset
- * is < 0. The space must be large
- * enough to accommodate a double, a
- * long, or a pointer; right now it
- * looks like a double is big
- * enough. Also, using a double
- * guarantees that the field is
- * properly aligned for storing large
- * values. */
-} Tk_SavedOption;
-
-#ifdef TCL_MEM_DEBUG
-# define TK_NUM_SAVED_OPTIONS 2
-#else
-# define TK_NUM_SAVED_OPTIONS 20
-#endif
-
-typedef struct Tk_SavedOptions {
- char *recordPtr; /* The data structure in which to
- * restore configuration options. */
- Tk_Window tkwin; /* Window associated with recordPtr;
- * needed to restore certain options. */
- int numItems; /* The number of valid items in
- * items field. */
- Tk_SavedOption items[TK_NUM_SAVED_OPTIONS];
- /* Items used to hold old values. */
- struct Tk_SavedOptions *nextPtr; /* Points to next structure in list;
- * needed if too many options changed
- * to hold all the old values in a
- * single structure. NULL means no
- * more structures. */
-} Tk_SavedOptions;
-
-/*
- * Structure used to describe application-specific configuration
- * options: indicates procedures to call to parse an option and
- * to return a text string describing an option. THESE ARE
- * DEPRECATED; PLEASE USE THE NEW STRUCTURES LISTED ABOVE.
- */
-
-/*
- * This is a temporary flag used while tkObjConfig and new widgets
- * are in development.
- */
-
-#ifndef __NO_OLD_CONFIG
-
-typedef int (Tk_OptionParseProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj *value, char *widgRec,
- int offset));
-typedef Tcl_Obj *(Tk_OptionPrintProc) _ANSI_ARGS_((ClientData clientData,
- Tk_Window tkwin, char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-
-typedef struct Tk_CustomOption {
- Tk_OptionParseProc *parseProc; /* Procedure to call to parse an
- * option and store it in converted
- * form. */
- Tk_OptionPrintProc *printProc; /* Procedure to return a printable
- * string describing an existing
- * option. */
- ClientData clientData; /* Arbitrary one-word value used by
- * option parser: passed to
- * parseProc and printProc. */
-} Tk_CustomOption;
-
-/*
- * Structure used to specify information for Tk_ConfigureWidget. Each
- * structure gives complete information for one option, including
- * how the option is specified on the command line, where it appears
- * in the option database, etc.
- */
-
-typedef struct Tk_ConfigSpec {
- int type; /* Type of option, such as TK_CONFIG_COLOR;
- * see definitions below. Last option in
- * table must have type TK_CONFIG_END. */
- char *argvName; /* Switch used to specify option in objv.
- * NULL means this spec is part of a group. */
- Tk_Uid dbName; /* Name for option in option database. */
- Tk_Uid dbClass; /* Class for option in database. */
- Tk_Uid defValue; /* Default value for option if not
- * specified in command line or database. */
- int offset; /* Where in widget record to store value;
- * use Tk_Offset macro to generate values
- * for this. */
- int specFlags; /* Any combination of the values defined
- * below; other bits are used internally
- * by tkConfig.c. */
- Tk_CustomOption *customPtr; /* If type is TK_CONFIG_CUSTOM then this is
- * a pointer to info about how to parse and
- * print the option. Otherwise it is
- * irrelevant. */
-} Tk_ConfigSpec;
-
-/*
- * Type values for Tk_ConfigSpec structures. See the user
- * documentation for details.
- */
-
-
-/*
- * Macro to use to fill in "offset" fields of Tk_ConfigInfos.
- * Computes number of bytes from beginning of structure to a
- * given field.
- */
-
-#ifdef offsetof
-#define Tk_Offset(type, field) ((int) offsetof(type, field))
-#else
-#define Tk_Offset(type, field) ((int) ((char *) &((type *) 0)->field))
-#endif
-
-typedef enum {
- TK_CONFIG_BOOLEAN, TK_CONFIG_INT, TK_CONFIG_DOUBLE, TK_CONFIG_STRING,
- TK_CONFIG_UID, TK_CONFIG_COLOR, TK_CONFIG_FONT, TK_CONFIG_BITMAP,
- TK_CONFIG_BORDER, TK_CONFIG_RELIEF, TK_CONFIG_CURSOR,
- TK_CONFIG_ACTIVE_CURSOR, TK_CONFIG_JUSTIFY, TK_CONFIG_ANCHOR,
- TK_CONFIG_SYNONYM, TK_CONFIG_CAP_STYLE, TK_CONFIG_JOIN_STYLE,
- TK_CONFIG_PIXELS, TK_CONFIG_MM, TK_CONFIG_WINDOW, TK_CONFIG_CUSTOM,
- TK_CONFIG_CALLBACK, TK_CONFIG_LANGARG, TK_CONFIG_SCALARVAR,
- TK_CONFIG_HASHVAR, TK_CONFIG_ARRAYVAR, TK_CONFIG_OBJECT,
- TK_CONFIG_END
-} Tk_ConfigTypes;
-
-/*
- * Possible values for flags argument to Tk_ConfigureWidget:
- */
-
-#define TK_CONFIG_ARGV_ONLY 1
-#define TK_CONFIG_OBJS 0x80
-
-/*
- * Possible flag values for Tk_ConfigSpec structures. Any bits at
- * or above TK_CONFIG_USER_BIT may be used by clients for selecting
- * certain entries. Before changing any values here, coordinate with
- * tkOldConfig.c (internal-use-only flags are defined there).
- */
-
-#define TK_CONFIG_NULL_OK (1 << 0)
-#define TK_CONFIG_COLOR_ONLY (1 << 1)
-#define TK_CONFIG_MONO_ONLY (1 << 2)
-#define TK_CONFIG_DONT_SET_DEFAULT (1 << 3)
-#define TK_CONFIG_OPTION_SPECIFIED (1 << 4)
-#define TK_CONFIG_USER_BIT 0x100
-#endif /* __NO_OLD_CONFIG */
-
-/*
- * Structure used to specify how to handle argv options.
- */
-
-typedef struct {
- char *key; /* The key string that flags the option in the
- * objv array. */
- int type; /* Indicates option type; see below. */
- char *src; /* Value to be used in setting dst; usage
- * depends on type. */
- char *dst; /* Address of value to be modified; usage
- * depends on type. */
- char *help; /* Documentation message describing this option. */
-} Tk_ArgvInfo;
-
-/*
- * Legal values for the type field of a Tk_ArgvInfo: see the user
- * documentation for details.
- */
-
-#define TK_ARGV_CONSTANT 15
-#define TK_ARGV_INT 16
-#define TK_ARGV_STRING 17
-#define TK_ARGV_UID 18
-#define TK_ARGV_REST 19
-#define TK_ARGV_FLOAT 20
-#define TK_ARGV_FUNC 21
-#define TK_ARGV_GENFUNC 22
-#define TK_ARGV_HELP 23
-#define TK_ARGV_CONST_OPTION 24
-#define TK_ARGV_OPTION_VALUE 25
-#define TK_ARGV_OPTION_NAME_VALUE 26
-#define TK_ARGV_END 27
-
-/*
- * Flag bits for passing to Tk_ParseArgv:
- */
-
-#define TK_ARGV_NO_DEFAULTS 0x1
-#define TK_ARGV_NO_LEFTOVERS 0x2
-#define TK_ARGV_NO_ABBREV 0x4
-#define TK_ARGV_DONT_SKIP_FIRST_ARG 0x8
-
-/*
- * Enumerated type for describing actions to be taken in response
- * to a restrictProc established by Tk_RestrictEvents.
- */
-
-typedef enum {
- TK_DEFER_EVENT, TK_PROCESS_EVENT, TK_DISCARD_EVENT
-} Tk_RestrictAction;
-
-/*
- * Priority levels to pass to Tk_AddOption:
- */
-
-#define TK_WIDGET_DEFAULT_PRIO 20
-#define TK_STARTUP_FILE_PRIO 40
-#define TK_USER_DEFAULT_PRIO 60
-#define TK_INTERACTIVE_PRIO 80
-#define TK_MAX_PRIO 100
-
-/*
- * Relief values returned by Tk_GetRelief:
- */
-
-#define TK_RELIEF_NULL -1
-#define TK_RELIEF_FLAT 0
-#define TK_RELIEF_GROOVE 1
-#define TK_RELIEF_RAISED 2
-#define TK_RELIEF_RIDGE 3
-#define TK_RELIEF_SOLID 4
-#define TK_RELIEF_SUNKEN 5
-
-/*
- * "Which" argument values for Tk_3DBorderGC:
- */
-
-#define TK_3D_FLAT_GC 1
-#define TK_3D_LIGHT_GC 2
-#define TK_3D_DARK_GC 3
-
-/*
- * Special EnterNotify/LeaveNotify "mode" for use in events
- * generated by tkShare.c. Pick a high enough value that it's
- * unlikely to conflict with existing values (like NotifyNormal)
- * or any new values defined in the future.
- */
-
-#define TK_NOTIFY_SHARE 20
-
-/*
- * Enumerated type for describing a point by which to anchor something:
- */
-
-typedef enum {
- TK_ANCHOR_N, TK_ANCHOR_NE, TK_ANCHOR_E, TK_ANCHOR_SE,
- TK_ANCHOR_S, TK_ANCHOR_SW, TK_ANCHOR_W, TK_ANCHOR_NW,
- TK_ANCHOR_CENTER
-} Tk_Anchor;
-
-/*
- * Enumerated type for describing a style of justification:
- */
-
-typedef enum {
- TK_JUSTIFY_LEFT, TK_JUSTIFY_RIGHT, TK_JUSTIFY_CENTER
-} Tk_Justify;
-
-/*
- * The following structure is used by Tk_GetFontMetrics() to return
- * information about the properties of a Tk_Font.
- */
-
-typedef struct Tk_FontMetrics {
- int ascent; /* The amount in pixels that the tallest
- * letter sticks up above the baseline, plus
- * any extra blank space added by the designer
- * of the font. */
- int descent; /* The largest amount in pixels that any
- * letter sticks below the baseline, plus any
- * extra blank space added by the designer of
- * the font. */
- int linespace; /* The sum of the ascent and descent. How
- * far apart two lines of text in the same
- * font should be placed so that none of the
- * characters in one line overlap any of the
- * characters in the other line. */
-} Tk_FontMetrics;
-
-/*
- * Flags passed to Tk_MeasureChars:
- */
-
-#define TK_WHOLE_WORDS 1
-#define TK_AT_LEAST_ONE 2
-#define TK_PARTIAL_OK 4
-
-/*
- * Flags passed to Tk_ComputeTextLayout:
- */
-
-#define TK_IGNORE_TABS 8
-#define TK_IGNORE_NEWLINES 16
-
-/*
- * Widget class procedures used to implement platform specific widget
- * behavior.
- */
-
-typedef Window (Tk_ClassCreateProc) _ANSI_ARGS_((Tk_Window tkwin,
- Window parent, ClientData instanceData));
-typedef void (Tk_ClassWorldChangedProc) _ANSI_ARGS_((ClientData instanceData));
-typedef void (Tk_ClassModalProc) _ANSI_ARGS_((Tk_Window tkwin,
- XEvent *eventPtr));
-
-typedef struct Tk_ClassProcs {
- unsigned int size;
- Tk_ClassWorldChangedProc *worldChangedProc;
- /* Procedure to invoke when the widget needs to
- * respond in some way to a change in the
- * world (font changes, etc.) */
- Tk_ClassCreateProc *createProc;
- /* Procedure to invoke when the
- * platform-dependent window needs to be
- * created. */
- Tk_ClassModalProc *modalProc;
- /* Procedure to invoke after all bindings on a
- * widget have been triggered in order to
- * handle a modal loop. */
-} Tk_ClassProcs;
-
-/*
- * Simple accessor for Tk_ClassProcs structure. Checks that the structure
- * is not NULL, then checks the size field and returns either the requested
- * field, if present, or NULL if the structure is too small to have the field
- * (or NULL if the structure is NULL).
- *
- * A more general version of this function may be useful if other
- * size-versioned structure pop up in the future:
- *
- * #define Tk_GetField(name, who, which) \
- * (((who) == NULL) ? NULL :
- * (((who)->size <= Tk_Offset(name, which)) ? NULL :(name)->which))
- */
-
-#define Tk_GetClassProc(procs, which) \
- (((procs) == NULL) ? NULL : \
- (((procs)->size <= Tk_Offset(Tk_ClassProcs, which)) ? NULL:(procs)->which))
-
-/*
- * Each geometry manager (the packer, the placer, etc.) is represented
- * by a structure of the following form, which indicates procedures
- * to invoke in the geometry manager to carry out certain functions.
- */
-
-typedef void (Tk_GeomRequestProc) _ANSI_ARGS_((ClientData clientData,
- Tk_Window tkwin));
-typedef void (Tk_GeomLostSlaveProc) _ANSI_ARGS_((ClientData clientData,
- Tk_Window tkwin));
-
-typedef struct Tk_GeomMgr {
- char *name; /* Name of the geometry manager (command
- * used to invoke it, or name of widget
- * class that allows embedded widgets). */
- Tk_GeomRequestProc *requestProc;
- /* Procedure to invoke when a slave's
- * requested geometry changes. */
- Tk_GeomLostSlaveProc *lostSlaveProc;
- /* Procedure to invoke when a slave is
- * taken away from one geometry manager
- * by another. NULL means geometry manager
- * doesn't care when slaves are lost. */
-} Tk_GeomMgr;
-
-/*
- * Result values returned by Tk_GetScrollInfo:
- */
-
-#define TK_SCROLL_MOVETO 1
-#define TK_SCROLL_PAGES 2
-#define TK_SCROLL_UNITS 3
-#define TK_SCROLL_ERROR 4
-
-/*
- *---------------------------------------------------------------------------
- *
- * Extensions to the X event set
- *
- *---------------------------------------------------------------------------
- */
-#define VirtualEvent (MappingNotify + 1)
-#define ActivateNotify (MappingNotify + 2)
-#define DeactivateNotify (MappingNotify + 3)
-#define MouseWheelEvent (MappingNotify + 4)
-#define TK_LASTEVENT (MappingNotify + 5)
-
-#define MouseWheelMask (1L << 28)
-#define ActivateMask (1L << 29)
-#define VirtualEventMask (1L << 30)
-
-
-/*
- * A virtual event shares most of its fields with the XKeyEvent and
- * XButtonEvent structures. 99% of the time a virtual event will be
- * an abstraction of a key or button event, so this structure provides
- * the most information to the user. The only difference is the changing
- * of the detail field for a virtual event so that it holds the name of the
- * virtual event being triggered.
- */
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* True if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event; /* Window on which event was requested. */
- Window root; /* root window that the event occured on */
- Window subwindow; /* child window */
- Time time; /* milliseconds */
- int x, y; /* pointer x, y coordinates in event window */
- int x_root, y_root; /* coordinates relative to root */
- unsigned int state; /* key or button mask */
- Tk_Uid name; /* Name of virtual event. */
- Bool same_screen; /* same screen flag */
-} XVirtualEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* True if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* Window in which event occurred. */
-} XActivateDeactivateEvent;
-typedef XActivateDeactivateEvent XActivateEvent;
-typedef XActivateDeactivateEvent XDeactivateEvent;
-
-/*
- *--------------------------------------------------------------
- *
- * Macros for querying Tk_Window structures. See the
- * manual entries for documentation.
- *
- *--------------------------------------------------------------
- */
-
-#define Tk_Display(tkwin) (((Tk_FakeWin *) (tkwin))->display)
-#define Tk_ScreenNumber(tkwin) (((Tk_FakeWin *) (tkwin))->screenNum)
-#define Tk_Screen(tkwin) (ScreenOfDisplay(Tk_Display(tkwin), \
- Tk_ScreenNumber(tkwin)))
-#define Tk_Depth(tkwin) (((Tk_FakeWin *) (tkwin))->depth)
-#define Tk_Visual(tkwin) (((Tk_FakeWin *) (tkwin))->visual)
-#define Tk_WindowId(tkwin) (((Tk_FakeWin *) (tkwin))->window)
-#define Tk_PathName(tkwin) (((Tk_FakeWin *) (tkwin))->pathName)
-#define Tk_Name(tkwin) (((Tk_FakeWin *) (tkwin))->nameUid)
-#define Tk_Class(tkwin) (((Tk_FakeWin *) (tkwin))->classUid)
-#define Tk_X(tkwin) (((Tk_FakeWin *) (tkwin))->changes.x)
-#define Tk_Y(tkwin) (((Tk_FakeWin *) (tkwin))->changes.y)
-#define Tk_Width(tkwin) (((Tk_FakeWin *) (tkwin))->changes.width)
-#define Tk_Height(tkwin) \
- (((Tk_FakeWin *) (tkwin))->changes.height)
-#define Tk_Changes(tkwin) (&((Tk_FakeWin *) (tkwin))->changes)
-#define Tk_Attributes(tkwin) (&((Tk_FakeWin *) (tkwin))->atts)
-#define Tk_IsEmbedded(tkwin) \
- (((Tk_FakeWin *) (tkwin))->flags & TK_EMBEDDED)
-#define Tk_IsContainer(tkwin) \
- (((Tk_FakeWin *) (tkwin))->flags & TK_CONTAINER)
-#define Tk_IsMapped(tkwin) \
- (((Tk_FakeWin *) (tkwin))->flags & TK_MAPPED)
-#define Tk_IsTopLevel(tkwin) \
- (((Tk_FakeWin *) (tkwin))->flags & TK_TOP_LEVEL)
-#define Tk_HasWrapper(tkwin) \
- (((Tk_FakeWin *) (tkwin))->flags & TK_HAS_WRAPPER)
-#define Tk_WinManaged(tkwin) \
- (((Tk_FakeWin *) (tkwin))->flags & TK_WIN_MANAGED)
-#define Tk_TopWinHierarchy(tkwin) \
- (((Tk_FakeWin *) (tkwin))->flags & TK_TOP_HIERARCHY)
-#define Tk_ReqWidth(tkwin) (((Tk_FakeWin *) (tkwin))->reqWidth)
-#define Tk_ReqHeight(tkwin) (((Tk_FakeWin *) (tkwin))->reqHeight)
-/* Tk_InternalBorderWidth is deprecated */
-#define Tk_InternalBorderWidth(tkwin) \
- (((Tk_FakeWin *) (tkwin))->internalBorderLeft)
-#define Tk_InternalBorderLeft(tkwin) \
- (((Tk_FakeWin *) (tkwin))->internalBorderLeft)
-#define Tk_InternalBorderRight(tkwin) \
- (((Tk_FakeWin *) (tkwin))->internalBorderRight)
-#define Tk_InternalBorderTop(tkwin) \
- (((Tk_FakeWin *) (tkwin))->internalBorderTop)
-#define Tk_InternalBorderBottom(tkwin) \
- (((Tk_FakeWin *) (tkwin))->internalBorderBottom)
-#define Tk_MinReqWidth(tkwin) (((Tk_FakeWin *) (tkwin))->minReqWidth)
-#define Tk_MinReqHeight(tkwin) (((Tk_FakeWin *) (tkwin))->minReqHeight)
-#define Tk_Parent(tkwin) (((Tk_FakeWin *) (tkwin))->parentPtr)
-#define Tk_Colormap(tkwin) (((Tk_FakeWin *) (tkwin))->atts.colormap)
-
-/*
- * The structure below is needed by the macros above so that they can
- * access the fields of a Tk_Window. The fields not needed by the macros
- * are declared as "dummyX". The structure has its own type in order to
- * prevent applications from accessing Tk_Window fields except using
- * official macros. WARNING!! The structure definition must be kept
- * consistent with the TkWindow structure in tkInt.h. If you change one,
- * then change the other. See the declaration in tkInt.h for
- * documentation on what the fields are used for internally.
- */
-
-typedef struct Tk_FakeWin {
- Display *display;
- char *dummy1; /* dispPtr */
- int screenNum;
- Visual *visual;
- int depth;
- Window window;
- char *dummy2; /* childList */
- char *dummy3; /* lastChildPtr */
- Tk_Window parentPtr; /* parentPtr */
- char *dummy4; /* nextPtr */
- char *dummy5; /* mainPtr */
- char *pathName;
- Tk_Uid nameUid;
- Tk_Uid classUid;
- XWindowChanges changes;
- unsigned int dummy6; /* dirtyChanges */
- XSetWindowAttributes atts;
- unsigned long dummy7; /* dirtyAtts */
- unsigned int flags;
- char *dummy8; /* handlerList */
-#ifdef TK_USE_INPUT_METHODS
- XIC dummy9; /* inputContext */
-#endif /* TK_USE_INPUT_METHODS */
- ClientData *dummy10; /* tagPtr */
- int dummy11; /* numTags */
- int dummy12; /* optionLevel */
- char *dummy13; /* selHandlerList */
- char *dummy14; /* geomMgrPtr */
- ClientData dummy15; /* geomData */
- int reqWidth, reqHeight;
- int internalBorderLeft;
- char *dummy16; /* wmInfoPtr */
- char *dummy17; /* classProcPtr */
- ClientData dummy18; /* instanceData */
- char *dummy19; /* privatePtr */
- int internalBorderRight;
- int internalBorderTop;
- int internalBorderBottom;
- int minReqWidth;
- int minReqHeight;
-} Tk_FakeWin;
-
-/*
- * Flag values for TkWindow (and Tk_FakeWin) structures are:
- *
- * TK_MAPPED: 1 means window is currently mapped,
- * 0 means unmapped.
- * TK_TOP_LEVEL: 1 means this is a top-level widget.
- * TK_ALREADY_DEAD: 1 means the window is in the process of
- * being destroyed already.
- * TK_NEED_CONFIG_NOTIFY: 1 means that the window has been reconfigured
- * before it was made to exist. At the time of
- * making it exist a ConfigureNotify event needs
- * to be generated.
- * TK_GRAB_FLAG: Used to manage grabs. See tkGrab.c for
- * details.
- * TK_CHECKED_IC: 1 means we've already tried to get an input
- * context for this window; if the ic field
- * is NULL it means that there isn't a context
- * for the field.
- * TK_DONT_DESTROY_WINDOW: 1 means that Tk_DestroyWindow should not
- * invoke XDestroyWindow to destroy this widget's
- * X window. The flag is set when the window
- * has already been destroyed elsewhere (e.g.
- * by another application) or when it will be
- * destroyed later (e.g. by destroying its
- * parent).
- * TK_WM_COLORMAP_WINDOW: 1 means that this window has at some time
- * appeared in the WM_COLORMAP_WINDOWS property
- * for its toplevel, so we have to remove it
- * from that property if the window is
- * deleted and the toplevel isn't.
- * TK_EMBEDDED: 1 means that this window (which must be a
- * toplevel) is not a free-standing window but
- * rather is embedded in some other application.
- * TK_CONTAINER: 1 means that this window is a container, and
- * that some other application (either in
- * this process or elsewhere) may be
- * embedding itself inside the window.
- * TK_BOTH_HALVES: 1 means that this window is used for
- * application embedding (either as
- * container or embedded application), and
- * both the containing and embedded halves
- * are associated with windows in this
- * particular process.
- * TK_DEFER_MODAL: 1 means that this window has deferred a modal
- * loop until all of the bindings for the current
- * event have been invoked.
- * TK_WRAPPER: 1 means that this window is the extra
- * wrapper window created around a toplevel
- * to hold the menubar under Unix. See
- * tkUnixWm.c for more information.
- * TK_REPARENTED: 1 means that this window has been reparented
- * so that as far as the window system is
- * concerned it isn't a child of its Tk
- * parent. Initially this is used only for
- * special Unix menubar windows.
- * TK_ANONYMOUS_WINDOW: 1 means that this window has no name, and is
- * thus not accessible from Tk.
- * TK_HAS_WRAPPER 1 means that this window has a wrapper window
- * TK_WIN_MANAGED 1 means that this window is a child of the
- * root window, and is managed by the window
- * manager.
- * TK_TOP_HIERARCHY 1 means this window is at the top of a
- * physical window hierarchy within this
- * process, i.e. the window's parent
- * either doesn't exist or is not owned by
- * this Tk application.
- * TK_PROP_PROPCHANGE 1 means that PropertyNotify events in
- * this window's children should propagate
- * up to this window.
- */
-
-
-#define TK_MAPPED 1
-#define TK_TOP_LEVEL 2
-#define TK_ALREADY_DEAD 4
-#define TK_NEED_CONFIG_NOTIFY 8
-#define TK_GRAB_FLAG 0x10
-#define TK_CHECKED_IC 0x20
-#define TK_DONT_DESTROY_WINDOW 0x40
-#define TK_WM_COLORMAP_WINDOW 0x80
-#define TK_EMBEDDED 0x100
-#define TK_CONTAINER 0x200
-#define TK_BOTH_HALVES 0x400
-#define TK_DEFER_MODAL 0x800
-#define TK_WRAPPER 0x1000
-#define TK_REPARENTED 0x2000
-#define TK_ANONYMOUS_WINDOW 0x4000
-#define TK_HAS_WRAPPER 0x8000
-#define TK_WIN_MANAGED 0x10000
-#define TK_TOP_HIERARCHY 0x20000
-#define TK_PROP_PROPCHANGE 0x40000
-
-/*
- *--------------------------------------------------------------
- *
- * Procedure prototypes and structures used for defining new canvas
- * items:
- *
- *--------------------------------------------------------------
- */
-
-typedef enum {
- TK_STATE_NULL = -1, TK_STATE_ACTIVE, TK_STATE_DISABLED,
- TK_STATE_NORMAL, TK_STATE_HIDDEN
-} Tk_State;
-
-typedef struct Tk_SmoothMethod {
- char *name;
- int (*coordProc) _ANSI_ARGS_((Tk_Canvas canvas,
- double *pointPtr, int numPoints, int numSteps,
- XPoint xPoints[], double dblPoints[]));
- void (*postscriptProc) _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, double *coordPtr,
- int numPoints, int numSteps));
-} Tk_SmoothMethod;
-
-/*
- * For each item in a canvas widget there exists one record with
- * the following structure. Each actual item is represented by
- * a record with the following stuff at its beginning, plus additional
- * type-specific stuff after that.
- */
-
-#define TK_TAG_SPACE 3
-
-typedef struct Tk_Item {
- int id; /* Unique identifier for this item
- * (also serves as first tag for
- * item). */
- struct Tk_Item *nextPtr; /* Next in display list of all
- * items in this canvas. Later items
- * in list are drawn on top of earlier
- * ones. */
- Tk_Uid staticTagSpace[TK_TAG_SPACE];/* Built-in space for limited # of
- * tags. */
- Tk_Uid *tagPtr; /* Pointer to array of tags. Usually
- * points to staticTagSpace, but
- * may point to malloc-ed space if
- * there are lots of tags. */
- int tagSpace; /* Total amount of tag space available
- * at tagPtr. */
- int numTags; /* Number of tag slots actually used
- * at *tagPtr. */
- struct Tk_ItemType *typePtr; /* Table of procedures that implement
- * this type of item. */
- int x1, y1, x2, y2; /* Bounding box for item, in integer
- * canvas units. Set by item-specific
- * code and guaranteed to contain every
- * pixel drawn in item. Item area
- * includes x1 and y1 but not x2
- * and y2. */
- struct Tk_Item *prevPtr; /* Previous in display list of all
- * items in this canvas. Later items
- * in list are drawn just below earlier
- * ones. */
- Tk_State state; /* state of item */
- LangCallback *updateCmd; /* for "-updatecommand" option */
- int redraw_flags; /* some flags used in the canvas */
- struct Tk_Item *group; /* group item managing this one */
-
- /*
- *------------------------------------------------------------------
- * Starting here is additional type-specific stuff; see the
- * declarations for individual types to see what is part of
- * each type. The actual space below is determined by the
- * "itemInfoSize" of the type's Tk_ItemType record.
- *------------------------------------------------------------------
- */
-} Tk_Item;
-
-/*
- * Flag bits for canvases (redraw_flags):
- *
- * TK_ITEM_STATE_DEPENDANT - 1 means that object needs to be
- * redrawn if the canvas state changes.
- * TK_ITEM_DONT_REDRAW - 1 means that the object redraw is already
- * been prepared, so the general canvas code
- * doesn't need to do that any more.
- */
-
-#define TK_ITEM_STATE_DEPENDANT 1
-#define TK_ITEM_DONT_REDRAW 2
-
-/*
- * Structures used for implementing visitors.
- */
-
-typedef ClientData Tk_VisitorStartProc _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, int argc, Tcl_Obj *CONST *objv));
-typedef int Tk_VisitorItemProc _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, ClientData clientData,
- Tk_Item *itemPtr));
-typedef int Tk_VisitorEndProc _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, ClientData clientData));
-
-typedef struct Tk_VisitorType {
- char *name;
- int typeSize; /* should be sizeof(Tk_VisitorType) */
- int flags; /* If this flag is non-zero then
- * the item needs to be redrawn. */
- Tk_VisitorStartProc *startProc;
- Tk_VisitorEndProc *endProc;
- Tk_VisitorItemProc *visitArc; /* The Arc visitor procedure. */
- Tk_VisitorItemProc *visitBitmap; /* The Bitmap visitor procedure. */
- Tk_VisitorItemProc *visitImage; /* The Image visitor procedure. */
- Tk_VisitorItemProc *visitLine; /* The Line visitor procedure. */
- Tk_VisitorItemProc *visitOval; /* The Oval visitor procedure. */
- Tk_VisitorItemProc *visitPolygon; /* The Polygon visitor procedure. */
- Tk_VisitorItemProc *visitRectangle; /* The Rectangle visitor procedure. */
- Tk_VisitorItemProc *visitText; /* The Text visitor procedure. */
- Tk_VisitorItemProc *visitWindow; /* The Window visitor procedure. */
- Tk_VisitorItemProc *visitSticker; /* The Sticker visitor procedure.
- * from tkSticker*/
- Tk_VisitorItemProc *visitViewport; /* The Viewport visitor procedure.
- * from TkSM */
- Tk_VisitorItemProc *visitBarchart; /* The Barchart visitor procedure.
- * from Scotty */
- Tk_VisitorItemProc *visitStripchart;/* The Stripchart visitor procedure.
- * from Scotty */
-
- /* ptk extensions */
- Tk_VisitorItemProc *visitGroup; /* The Group visitor procedure. */
- Tk_VisitorItemProc *visitGrid; /* The Grid visitor procedure. */
-
- /*
- *------------------------------------------------------------------
- * Starting here is additional item-extension stuff;
- * you can add extra item types after this plus other information.
- *------------------------------------------------------------------
- */
-} Tk_VisitorType;
-
-/*
- * Records of the following type are used to describe a type of
- * item (e.g. lines, circles, etc.) that can form part of a
- * canvas widget.
- */
-
-#ifdef USE_OLD_CANVAS
-typedef int Tk_ItemCreateProc _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
- Tcl_Obj *CONST *objv));
-typedef int Tk_ItemConfigureProc _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
- Tcl_Obj *CONST *objv, int flags));
-typedef int Tk_ItemCoordProc _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
- Tcl_Obj *CONST *objv));
-#else
-typedef int Tk_ItemCreateProc _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
- Tcl_Obj *CONST objv[]));
-typedef int Tk_ItemConfigureProc _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
- CONST84 Tcl_Obj *CONST objv[], int flags));
-typedef int Tk_ItemCoordProc _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
- Tcl_Obj *CONST objv[]));
-#endif
-typedef void Tk_ItemDeleteProc _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *itemPtr, Display *display));
-typedef void Tk_ItemDisplayProc _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *itemPtr, Display *display, Drawable dst,
- int x, int y, int width, int height));
-typedef double Tk_ItemPointProc _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *itemPtr, double *pointPtr));
-typedef int Tk_ItemAreaProc _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *itemPtr, double *rectPtr));
-typedef int Tk_ItemPostscriptProc _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, Tk_Item *itemPtr, int prepass));
-typedef void Tk_ItemScaleProc _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *itemPtr, double originX, double originY,
- double scaleX, double scaleY));
-typedef void Tk_ItemTranslateProc _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *itemPtr, double deltaX, double deltaY));
-typedef int Tk_ItemIndexProc _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, Tk_Item *itemPtr, Tcl_Obj *indexString,
- int *indexPtr));
-typedef void Tk_ItemCursorProc _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *itemPtr, int index));
-typedef int Tk_ItemSelectionProc _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *itemPtr, int offset, char *buffer,
- int maxBytes));
-typedef void Tk_ItemInsertProc _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *itemPtr, int beforeThis, Tcl_Obj *string));
-typedef void Tk_ItemDCharsProc _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *itemPtr, int first, int last));
-typedef void Tk_ItemBboxProc _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *itemPtr));
-typedef int Tk_ItemGetCoordProc _ANSI_ARGS_((Tk_Item *itemPtr,
- double **coordsPtr, Tcl_FreeProc *freeProc));
-typedef int Tk_ItemSetCoordProc _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *itemPtr, int num, double *coords));
-
-/*
- * Some flag values that can be used in the "flags" field in Tk_ItemType.
- */
-
-#define TK_ITEM_ALWAYS_REDRAW 1
-#define TK_ITEM_VISITOR_SUPPORT 2
-
-/*
- * Structures used for implementing visitors.
- */
-#ifndef __NO_OLD_CONFIG
-
-typedef struct Tk_ItemType {
- char *name; /* The name of this type of item, such
- * as "line". */
- int itemSize; /* Total amount of space needed for
- * item's record. */
- Tk_ItemCreateProc *createProc; /* Procedure to create a new item of
- * this type. */
- Tk_ConfigSpec *configSpecs; /* Pointer to array of configuration
- * specs for this type. Used for
- * returning configuration info. */
- Tk_ItemConfigureProc *configProc; /* Procedure to call to change
- * configuration options. */
- Tk_ItemCoordProc *coordProc; /* Procedure to call to get and set
- * the item's coordinates. */
- Tk_ItemDeleteProc *deleteProc; /* Procedure to delete existing item of
- * this type. */
- Tk_ItemDisplayProc *displayProc; /* Procedure to display items of
- * this type. */
- int alwaysRedraw; /* Non-zero means displayProc should
- * be called even when the item has
- * been moved off-screen. */
- Tk_ItemPointProc *pointProc; /* Computes distance from item to
- * a given point. */
- Tk_ItemAreaProc *areaProc; /* Computes whether item is inside,
- * outside, or overlapping an area. */
- Tk_ItemPostscriptProc *postscriptProc;
- /* Procedure to write a Postscript
- * description for items of this
- * type. */
- Tk_ItemScaleProc *scaleProc; /* Procedure to rescale items of
- * this type. */
- Tk_ItemTranslateProc *translateProc;/* Procedure to translate items of
- * this type. */
- Tk_ItemIndexProc *indexProc; /* Procedure to determine index of
- * indicated character. NULL if
- * item doesn't support indexing. */
- Tk_ItemCursorProc *icursorProc; /* Procedure to set insert cursor pos.
- * to just before a given position. */
- Tk_ItemSelectionProc *selectionProc;/* Procedure to return selection (in
- * STRING format) when it is in this
- * item. */
- Tk_ItemInsertProc *insertProc; /* Procedure to insert something into
- * an item. */
- Tk_ItemDCharsProc *dCharsProc; /* Procedure to delete characters
- * from an item. */
- struct Tk_ItemType *nextPtr; /* Used to link types together into
- * a list. */
- Tk_ItemBboxProc *bboxProc; /* Reserved for future extension. */
- int reserved2; /* Carefully compatible with */
- char *reserved3; /* Jan Nijtmans dash patch */
- char *reserved4;
-} Tk_ItemType;
-
-#endif
-
-/*
- * The following structure provides information about the selection and
- * the insertion cursor. It is needed by only a few items, such as
- * those that display text. It is shared by the generic canvas code
- * and the item-specific code, but most of the fields should be written
- * only by the canvas generic code.
- */
-
-typedef struct Tk_CanvasTextInfo {
- Tk_3DBorder selBorder; /* Border and background for selected
- * characters. Read-only to items.*/
- int selBorderWidth; /* Width of border around selection.
- * Read-only to items. */
- XColor *selFgColorPtr; /* Foreground color for selected text.
- * Read-only to items. */
- Tk_Item *selItemPtr; /* Pointer to selected item. NULL means
- * selection isn't in this canvas.
- * Writable by items. */
- int selectFirst; /* Character index of first selected
- * character. Writable by items. */
- int selectLast; /* Character index of last selected
- * character. Writable by items. */
- Tk_Item *anchorItemPtr; /* Item corresponding to "selectAnchor":
- * not necessarily selItemPtr. Read-only
- * to items. */
- int selectAnchor; /* Character index of fixed end of
- * selection (i.e. "select to" operation will
- * use this as one end of the selection).
- * Writable by items. */
- Tk_3DBorder insertBorder; /* Used to draw vertical bar for insertion
- * cursor. Read-only to items. */
- int insertWidth; /* Total width of insertion cursor. Read-only
- * to items. */
- int insertBorderWidth; /* Width of 3-D border around insert cursor.
- * Read-only to items. */
- Tk_Item *focusItemPtr; /* Item that currently has the input focus,
- * or NULL if no such item. Read-only to
- * items. */
- int gotFocus; /* Non-zero means that the canvas widget has
- * the input focus. Read-only to items.*/
- int cursorOn; /* Non-zero means that an insertion cursor
- * should be displayed in focusItemPtr.
- * Read-only to items.*/
-} Tk_CanvasTextInfo;
-
-/*
- * Structures used for Dashing and Outline.
- */
-
-typedef struct Tk_Dash {
- int number;
- union {
- char *pt;
- char array[sizeof(char *)];
- } pattern;
-} Tk_Dash;
-
-typedef struct Tk_TSOffset {
- int flags; /* flags; see below for possible values */
- int xoffset; /* x offset */
- int yoffset; /* y offset */
-} Tk_TSOffset;
-
-/*
- * Bit fields in Tk_Offset->flags:
- */
-
-#define TK_OFFSET_INDEX 1
-#define TK_OFFSET_RELATIVE 2
-#define TK_OFFSET_LEFT 4
-#define TK_OFFSET_CENTER 8
-#define TK_OFFSET_RIGHT 16
-#define TK_OFFSET_TOP 32
-#define TK_OFFSET_MIDDLE 64
-#define TK_OFFSET_BOTTOM 128
-
-typedef struct Tk_Tile_ *Tk_Tile; /* Opaque type for tiles */
-
-typedef struct Tk_Outline {
- GC gc; /* Graphics context. */
- double width; /* Width of outline. */
- double activeWidth; /* Width of outline. */
- double disabledWidth; /* Width of outline. */
- int offset; /* Dash offset */
- Tk_Dash dash; /* Dash pattern */
- Tk_Dash activeDash; /* Dash pattern if state is active*/
- Tk_Dash disabledDash; /* Dash pattern if state is disabled*/
- VOID *reserved1; /* reserved for future expansion */
- VOID *reserved2;
- VOID *reserved3;
- Tk_TSOffset tsoffset; /* stipple offset for outline*/
- XColor *color; /* Outline color. */
- XColor *activeColor; /* Outline color if state is active. */
- XColor *disabledColor; /* Outline color if state is disabled. */
- Pixmap stipple; /* Outline Stipple pattern. */
- Pixmap activeStipple; /* Outline Stipple pattern if state is active. */
- Pixmap disabledStipple; /* Outline Stipple pattern if state is disabled. */
- Tk_Tile tile;
-} Tk_Outline;
-
-
-/*
- * Some functions handy for Dashing and Outlines (in tkCanvUtil.c).
- */
-
-EXTERN void Tk_CreateOutline _ANSI_ARGS_((Tk_Outline *outline));
-EXTERN void Tk_DeleteOutline _ANSI_ARGS_((Display *display,
- Tk_Outline *outline));
-EXTERN int Tk_ConfigOutlineGC _ANSI_ARGS_((XGCValues *gcValues,
- Tk_Canvas canvas ,Tk_Item *item,
- Tk_Outline *outline));
-EXTERN int Tk_ChangeOutlineGC _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *item, Tk_Outline *outline));
-EXTERN int Tk_ResetOutlineGC _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *item, Tk_Outline *outline));
-EXTERN int Tk_CanvasPsOutline _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item *item, Tk_Outline *outline));
-
-/*
- * Some functions handy for Tiling and Stipple/Tile offset.
- */
-
-typedef void (Tk_TileChangedProc) _ANSI_ARGS_((ClientData clientData,
- Tk_Tile tile));
-EXTERN Tk_Tile Tk_GetTile _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
- CONST char *imageName));
-EXTERN void Tk_FreeTile _ANSI_ARGS_((Tk_Tile tile));
-EXTERN CONST char * Tk_NameOfTile _ANSI_ARGS_((Tk_Tile tile));
-EXTERN void Tk_SetTileChangedProc _ANSI_ARGS_((Tk_Tile tile,
- Tk_TileChangedProc * changeProc, ClientData clientData));
-EXTERN Pixmap Tk_PixmapOfTile _ANSI_ARGS_((Tk_Tile tile));
-EXTERN int Tk_PixelParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value, char *widgRec,
- int offset));
-EXTERN Tcl_Obj *Tk_PixelPrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN void Tk_SizeOfTile _ANSI_ARGS_((Tk_Tile tile, int *widthPtr,
- int *heightPtr));
-EXTERN int Tk_TileParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value, char *widgRec,
- int offset));
-EXTERN Tcl_Obj *Tk_TilePrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN int Tk_OffsetParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value, char *widgRec,
- int offset));
-EXTERN Tcl_Obj *Tk_OffsetPrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN int Tk_OrientParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value, char *widgRec,
- int offset));
-EXTERN Tcl_Obj *Tk_OrientPrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-
-
-/*
- *--------------------------------------------------------------
- *
- * Procedure prototypes and structures used for managing images:
- *
- *--------------------------------------------------------------
- */
-
-typedef struct Tk_ImageType Tk_ImageType;
-#ifdef USE_OLD_IMAGE
-typedef int (Tk_ImageCreateProc) _ANSI_ARGS_((Tcl_Interp *interp,
- char *name, int argc, Tcl_Obj *CONST *objv, Tk_ImageType *typePtr,
- Tk_ImageMaster master, ClientData *masterDataPtr));
-#else
-typedef int (Tk_ImageCreateProc) _ANSI_ARGS_((Tcl_Interp *interp,
- char *name, int objc, Tcl_Obj *CONST objv[], Tk_ImageType *typePtr,
- Tk_ImageMaster master, ClientData *masterDataPtr));
-#endif
-typedef ClientData (Tk_ImageGetProc) _ANSI_ARGS_((Tk_Window tkwin,
- ClientData masterData));
-typedef void (Tk_ImageDisplayProc) _ANSI_ARGS_((ClientData instanceData,
- Display *display, Drawable drawable, int imageX, int imageY,
- int width, int height, int drawableX, int drawableY));
-typedef void (Tk_ImageFreeProc) _ANSI_ARGS_((ClientData instanceData,
- Display *display));
-typedef void (Tk_ImageDeleteProc) _ANSI_ARGS_((ClientData masterData));
-typedef void (Tk_ImageChangedProc) _ANSI_ARGS_((ClientData clientData,
- int x, int y, int width, int height, int imageWidth,
- int imageHeight));
-typedef int (Tk_ImagePostscriptProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, Tk_Window tkwin, Tk_PostscriptInfo psinfo,
- int x, int y, int width, int height, int prepass));
-
-/*
- * The following structure represents a particular type of image
- * (bitmap, xpm image, etc.). It provides information common to
- * all images of that type, such as the type name and a collection
- * of procedures in the image manager that respond to various
- * events. Each image manager is represented by one of these
- * structures.
- */
-
-struct Tk_ImageType {
- char *name; /* Name of image type. */
- Tk_ImageCreateProc *createProc;
- /* Procedure to call to create a new image
- * of this type. */
- Tk_ImageGetProc *getProc; /* Procedure to call the first time
- * Tk_GetImage is called in a new way
- * (new visual or screen). */
- Tk_ImageDisplayProc *displayProc;
- /* Call to draw image, in response to
- * Tk_RedrawImage calls. */
- Tk_ImageFreeProc *freeProc; /* Procedure to call whenever Tk_FreeImage
- * is called to release an instance of an
- * image. */
- Tk_ImageDeleteProc *deleteProc;
- /* Procedure to call to delete image. It
- * will not be called until after freeProc
- * has been called for each instance of the
- * image. */
- Tk_ImagePostscriptProc *postscriptProc;
- /* Procedure to call to produce postscript
- * output for the image. */
- struct Tk_ImageType *nextPtr;
- /* Next in list of all image types currently
- * known. Filled in by Tk, not by image
- * manager. */
- char *reserved; /* reserved for future expansion */
-};
-
-/*
- *--------------------------------------------------------------
- *
- * Additional definitions used to manage images of type "photo".
- *
- *--------------------------------------------------------------
- */
-
-/*
- * The following type is used to identify a particular photo image
- * to be manipulated:
- */
-
-typedef void *Tk_PhotoHandle;
-
-/*
- * The following structure describes a block of pixels in memory:
- */
-
-typedef struct Tk_PhotoImageBlock {
- unsigned char *pixelPtr; /* Pointer to the first pixel. */
- int width; /* Width of block, in pixels. */
- int height; /* Height of block, in pixels. */
- int pitch; /* Address difference between corresponding
- * pixels in successive lines. */
- int pixelSize; /* Address difference between successive
- * pixels in the same line. */
- int offset[4]; /* Address differences between the red, green
- * and blue components of the pixel and the
- * pixel as a whole. */
- int reserved; /* Reserved for extensions (dash patch) */
-} Tk_PhotoImageBlock;
-
-/*
- * The following values control how blocks are combined into photo
- * images when the alpha component of a pixel is not 255, a.k.a. the
- * compositing rule.
- */
-
-#define TK_PHOTO_COMPOSITE_OVERLAY 0
-#define TK_PHOTO_COMPOSITE_SET 1
-
-/*
- * Procedure prototypes and structures used in reading and
- * writing photo images:
- */
-
-typedef struct Tk_PhotoImageFormat Tk_PhotoImageFormat;
-#ifdef USE_OLD_IMAGE
-typedef int (Tk_ImageFileMatchProc) _ANSI_ARGS_((Tcl_Channel chan,
- char *fileName, char *formatString, int *widthPtr, int *heightPtr));
-typedef int (Tk_ImageStringMatchProc) _ANSI_ARGS_((char *string,
- char *formatString, int *widthPtr, int *heightPtr));
-typedef int (Tk_ImageFileReadProc) _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Channel chan, char *fileName, char *formatString,
- Tk_PhotoHandle imageHandle, int destX, int destY,
- int width, int height, int srcX, int srcY));
-typedef int (Tk_ImageStringReadProc) _ANSI_ARGS_((Tcl_Interp *interp,
- char *string, char *formatString, Tk_PhotoHandle imageHandle,
- int destX, int destY, int width, int height, int srcX, int srcY));
-typedef int (Tk_ImageFileWriteProc) _ANSI_ARGS_((Tcl_Interp *interp,
- char *fileName, char *formatString, Tk_PhotoImageBlock *blockPtr));
-typedef int (Tk_ImageStringWriteProc) _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_DString *dataPtr, char *formatString,
- Tk_PhotoImageBlock *blockPtr));
-#else
-typedef int (Tk_ImageFileMatchProc) _ANSI_ARGS_((Tcl_Channel chan,
- Tcl_Obj *fileName, Tcl_Obj *format, int *widthPtr,
- int *heightPtr,Tcl_Interp *interp));
-typedef int (Tk_ImageStringMatchProc) _ANSI_ARGS_((Tcl_Obj *dataObj,
- Tcl_Obj *format, int *widthPtr, int *heightPt, Tcl_Interp *interp));
-typedef int (Tk_ImageFileReadProc) _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Channel chan, Tcl_Obj *fileName, Tcl_Obj *format,
- Tk_PhotoHandle imageHandle, int destX, int destY,
- int width, int height, int srcX, int srcY));
-typedef int (Tk_ImageStringReadProc) _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Obj *dataObj, Tcl_Obj *format, Tk_PhotoHandle imageHandle,
- int destX, int destY, int width, int height, int srcX, int srcY));
-typedef int (Tk_ImageFileWriteProc) _ANSI_ARGS_((Tcl_Interp *interp,
- char *fileName, Tcl_Obj *format, Tk_PhotoImageBlock *blockPtr));
-typedef int (Tk_ImageStringWriteProc) _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Obj *format, Tk_PhotoImageBlock *blockPtr));
-#endif
-
-/*
- * The following structure represents a particular file format for
- * storing images (e.g., PPM, GIF, JPEG, etc.). It provides information
- * to allow image files of that format to be recognized and read into
- * a photo image.
- */
-
-struct Tk_PhotoImageFormat {
- char *name; /* Name of image file format */
- Tk_ImageFileMatchProc *fileMatchProc;
- /* Procedure to call to determine whether
- * an image file matches this format. */
- Tk_ImageStringMatchProc *stringMatchProc;
- /* Procedure to call to determine whether
- * the data in a string matches this format. */
- Tk_ImageFileReadProc *fileReadProc;
- /* Procedure to call to read data from
- * an image file into a photo image. */
- Tk_ImageStringReadProc *stringReadProc;
- /* Procedure to call to read data from
- * a string into a photo image. */
- Tk_ImageFileWriteProc *fileWriteProc;
- /* Procedure to call to write data from
- * a photo image to a file. */
- Tk_ImageStringWriteProc *stringWriteProc;
- /* Procedure to call to obtain a string
- * representation of the data in a photo
- * image.*/
- struct Tk_PhotoImageFormat *nextPtr;
- /* Next in list of all photo image formats
- * currently known. Filled in by Tk, not
- * by image format handler. */
-};
-
-EXTERN void Tk_CreateOldImageType _ANSI_ARGS_((
- Tk_ImageType *typePtr));
-EXTERN void Tk_CreateOldPhotoImageFormat _ANSI_ARGS_((
- Tk_PhotoImageFormat *formatPtr));
-
-#if !defined(USE_TK_STUBS) && defined(USE_OLD_IMAGE)
-#define Tk_CreateImageType Tk_CreateOldImageType
-#define Tk_CreatePhotoImageFormat Tk_CreateOldPhotoImageFormat
-#endif
-
-
-/*
- *--------------------------------------------------------------
- *
- * Procedure prototypes and structures used for managing styles:
- *
- *--------------------------------------------------------------
- */
-
-/*
- * Style support version tag.
- */
-#define TK_STYLE_VERSION_1 0x1
-#define TK_STYLE_VERSION TK_STYLE_VERSION_1
-
-/*
- * The following structures and prototypes are used as static templates to
- * declare widget elements.
- */
-
-typedef void (Tk_GetElementSizeProc) _ANSI_ARGS_((ClientData clientData,
- char *recordPtr, CONST Tk_OptionSpec **optionsPtr, Tk_Window tkwin,
- int width, int height, int inner, int *widthPtr, int *heightPtr));
-typedef void (Tk_GetElementBoxProc) _ANSI_ARGS_((ClientData clientData,
- char *recordPtr, CONST Tk_OptionSpec **optionsPtr, Tk_Window tkwin,
- int x, int y, int width, int height, int inner, int *xPtr, int *yPtr,
- int *widthPtr, int *heightPtr));
-typedef int (Tk_GetElementBorderWidthProc) _ANSI_ARGS_((ClientData clientData,
- char *recordPtr, CONST Tk_OptionSpec **optionsPtr, Tk_Window tkwin));
-typedef void (Tk_DrawElementProc) _ANSI_ARGS_((ClientData clientData,
- char *recordPtr, CONST Tk_OptionSpec **optionsPtr, Tk_Window tkwin,
- Drawable d, int x, int y, int width, int height, int state));
-
-typedef struct Tk_ElementOptionSpec {
- char *name; /* Name of the required option. */
- Tk_OptionType type; /* Accepted option type. TK_OPTION_END means
- * any. */
-} Tk_ElementOptionSpec;
-
-typedef struct Tk_ElementSpec {
- int version; /* Version of the style support. */
- char *name; /* Name of element. */
- Tk_ElementOptionSpec *options;
- /* List of required options. Last one's name
- * must be NULL. */
-
- /*
- * Hooks
- */
-
- Tk_GetElementSizeProc *getSize;
- /* Compute the external (resp. internal) size of
- * the element from its desired internal (resp.
- * external) size. */
- Tk_GetElementBoxProc *getBox;
- /* Compute the inscribed or bounding boxes
- * within a given area. */
- Tk_GetElementBorderWidthProc *getBorderWidth;
- /* Return the element's internal border width.
- * Mostly useful for widgets. */
- Tk_DrawElementProc *draw; /* Draw the element in the given bounding box.*/
-} Tk_ElementSpec;
-
-/*
- * Element state flags. Can be OR'ed.
- */
-
-#define TK_ELEMENT_STATE_ACTIVE 1<<0
-#define TK_ELEMENT_STATE_DISABLED 1<<1
-#define TK_ELEMENT_STATE_FOCUS 1<<2
-#define TK_ELEMENT_STATE_PRESSED 1<<3
-
-/*
- *--------------------------------------------------------------
- *
- * The definitions below provide backward compatibility for
- * functions and types related to event handling that used to
- * be in Tk but have moved to Tcl.
- *
- *--------------------------------------------------------------
- */
-
-#if 0
-
-#define TK_READABLE TCL_READABLE
-#define TK_WRITABLE TCL_WRITABLE
-#define TK_EXCEPTION TCL_EXCEPTION
-
-#define TK_DONT_WAIT TCL_DONT_WAIT
-#define TK_X_EVENTS TCL_WINDOW_EVENTS
-#define TK_WINDOW_EVENTS TCL_WINDOW_EVENTS
-#define TK_FILE_EVENTS TCL_FILE_EVENTS
-#define TK_TIMER_EVENTS TCL_TIMER_EVENTS
-#define TK_IDLE_EVENTS TCL_IDLE_EVENTS
-#define TK_ALL_EVENTS TCL_ALL_EVENTS
-
-#define Tk_IdleProc Tcl_IdleProc
-#define Tk_FileProc Tcl_FileProc
-#define Tk_TimerProc Tcl_TimerProc
-#define Tk_TimerToken Tcl_TimerToken
-
-#define Tk_BackgroundError Tcl_BackgroundError
-#define Tk_CancelIdleCall Tcl_CancelIdleCall
-#define Tk_CreateFileHandler Tcl_CreateFileHandler
-#define Tk_CreateTimerHandler Tcl_CreateTimerHandler
-#define Tk_DeleteFileHandler Tcl_DeleteFileHandler
-#define Tk_DeleteTimerHandler Tcl_DeleteTimerHandler
-#define Tk_DoOneEvent Tcl_DoOneEvent
-#define Tk_DoWhenIdle Tcl_DoWhenIdle
-#define Tk_Sleep Tcl_Sleep
-
-/* Additional stuff that has moved to Tcl: */
-
-#define Tk_EventuallyFree Tcl_EventuallyFree
-#define Tk_FreeProc Tcl_FreeProc
-#define Tk_Preserve Tcl_Preserve
-#define Tk_Release Tcl_Release
-#define Tk_FileeventCmd Tcl_FileEventCmd
-
-#endif
-
-
-/* Removed Tk_Main, use macro instead */
-#define Tk_Main(argc, argv, proc) \
- Tk_MainEx(argc, argv, proc, Tcl_CreateInterp())
-
-extern CONST char *Tk_InitStubs _ANSI_ARGS_((Tcl_Interp *interp, char *version, int exact));
-
-#ifndef USE_TK_STUBS
-
-#define Tk_InitStubs(interp, version, exact) \
- Tcl_PkgRequire(interp, "Tk", version, exact)
-
-#endif
-
-extern void Tk_InitImageArgs _ANSI_ARGS_((Tcl_Interp *interp, int argc, char ***objv));
-
-#if !defined(USE_TK_STUBS) || !defined(USE_OLD_IMAGE)
-
-#define Tk_InitImageArgs(interp, argc, argv) /**/
-
-#endif
-
-
-/*
- *--------------------------------------------------------------
- *
- * Additional procedure types defined by Tk.
- *
- *--------------------------------------------------------------
- */
-
-#define TK_EVENTTYPE_NONE 0
-#define TK_EVENTTYPE_STRING 1
-#define TK_EVENTTYPE_NUMBER 2
-#define TK_EVENTTYPE_WINDOW 3
-#define TK_EVENTTYPE_ATOM 4
-#define TK_EVENTTYPE_DISPLAY 5
-#define TK_EVENTTYPE_DATA 6
-
-typedef int (Tk_ErrorProc) _ANSI_ARGS_((ClientData clientData,
- XErrorEvent *errEventPtr));
-typedef void (Tk_EventProc) _ANSI_ARGS_((ClientData clientData,
- XEvent *eventPtr));
-typedef int (Tk_GenericProc) _ANSI_ARGS_((ClientData clientData,
- XEvent *eventPtr));
-typedef int (Tk_ClientMessageProc) _ANSI_ARGS_((Tk_Window tkwin,
- XEvent *eventPtr));
-typedef int (Tk_GetSelProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, char *portion));
-typedef int (Tk_GetXSelProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, long *portion, int numValues,
- int format, Atom type, Tk_Window tkwin));
-typedef void (Tk_LostSelProc) _ANSI_ARGS_((ClientData clientData));
-typedef Tk_RestrictAction (Tk_RestrictProc) _ANSI_ARGS_((
- ClientData clientData, XEvent *eventPtr));
-typedef int (Tk_SelectionProc) _ANSI_ARGS_((ClientData clientData,
- int offset, char *buffer, int maxBytes));
-
-typedef int (Tk_XSelectionProc) _ANSI_ARGS_((ClientData clientData,
- int offset, long *buffer, int maxBytes,
- Atom type, Tk_Window tkwin));
-
-
-typedef struct {
- char *name; /* Name of command. */
- int (*cmdProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp,
- int argc, Tcl_Obj *CONST *objv));
- /* Command procedure. */
-} Tk_Cmd;
-
-/*
- *--------------------------------------------------------------
- *
- * Platform independant exported procedures and variables.
- *
- *--------------------------------------------------------------
- */
-
-#include "tkDecls.h"
-
-/*
- * Allow users to say that they don't want to alter their source to
- * add the extra argument to Tk_PhotoPutBlock(); DO NOT DEFINE THIS
- * WHEN BUILDING TK.
- *
- * This goes after the inclusion of the stubbed-decls so that the
- * declarations of what is actually there can be correct.
- */
-
-#ifdef USE_COMPOSITELESS_PHOTO_PUT_BLOCK
-# ifdef Tk_PhotoPutBlock
-# undef Tk_PhotoPutBlock
-# endif
-# define Tk_PhotoPutBlock Tk_PhotoPutBlock_NoComposite
-# ifdef Tk_PhotoPutZoomedBlock
-# undef Tk_PhotoPutZoomedBlock
-# endif
-# define Tk_PhotoPutZoomedBlock Tk_PhotoPutZoomedBlock_NoComposite
-#endif /* USE_COMPOSITELESS_PHOTO_PUT_BLOCK */
-
-/*
- * Tcl commands exported by Tk:
- */
-
-EXTERN Tcl_Command Lang_CreateWidget _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Window, Tcl_ObjCmdProc *proc,
- ClientData clientData,
- Tcl_CmdDeleteProc *deleteProc));
-
-EXTERN Tcl_Command Lang_CreateImage _ANSI_ARGS_((Tcl_Interp *interp,
- char *cmdName, Tcl_ObjCmdProc *proc,
- ClientData clientData,
- Tcl_CmdDeleteProc *deleteProc,
- Tk_ImageType *typePtr));
-
-EXTERN void Lang_DeleteWidget _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Command cmd));
-
-EXTERN void Tk_ChangeScreen _ANSI_ARGS_((Tcl_Interp *interp,
- char *dispName, int screenIndex));
-
-EXTERN Var LangFindVar _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window, CONST char *name));
-
-EXTERN Tcl_Obj * LangWidgetObj _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window));
-EXTERN Tcl_Obj * LangFontObj _ANSI_ARGS_((Tcl_Interp *interp, Tk_Font font, char *name));
-EXTERN Tcl_Obj * LangObjectObj _ANSI_ARGS_((Tcl_Interp *interp, char *));
-
-#define LangWidgetArg(interp,win) LangObjArg(LangWidgetObj(interp,win),__FILE__,__LINE__)
-#define LangFontArg(interp,font,name) LangObjArg(LangFontObj(interp,font,name),__FILE__,__LINE__)
-#define LangObjectArg(interp,name) LangObjArg(LangObjectObj(interp,name),__FILE__,__LINE__)
-
-
-#ifndef NO_EXTERN
-EXTERN void Lang_DeadMainWindow _ANSI_ARGS_((Tcl_Interp *, Tk_Window));
-EXTERN void Lang_NewMainWindow _ANSI_ARGS_((Tcl_Interp *, Tk_Window));
-EXTERN void LangDeadWindow _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window));
-EXTERN void LangClientMessage _ANSI_ARGS_((Tcl_Interp *interp,Tk_Window, XEvent *));
-EXTERN void LangSelectHook _ANSI_ARGS_((CONST char *what, Tk_Window tkwin,
- Atom selection, Atom target, Atom type));
-#endif
-
-EXTERN int LangEventCallback _ANSI_ARGS_((ClientData, Tcl_Interp *,XEvent *,Tk_Window,KeySym));
-EXTERN int Tk_GetXSelection _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Window tkwin, Atom selection, Atom target,
- Tk_GetXSelProc *proc, ClientData clientData));
-EXTERN Tk_Window Tk_EventWindow _ANSI_ARGS_((XEvent *eventPtr));
-EXTERN char * Tk_EventInfo _ANSI_ARGS_((int letter, Tk_Window tkwin, XEvent *eventPtr,
- KeySym keySym, int *numPtr, int *isNum, int *type,
- int num_size, char *numStorage));
-
-extern void LangCheckDC _ANSI_ARGS_((const char *file, int line));
-
-
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* RC_INVOKED */
-
-/*
- * end block for C++
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _TK */
-
-
-
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tk.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tk.m
deleted file mode 100644
index 202863eeef7..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tk.m
+++ /dev/null
@@ -1,94 +0,0 @@
-#ifndef _TK_VM
-#define _TK_VM
-#include "tk_f.h"
-#ifndef NO_VTABLES
-#ifndef LangCheckDC
-# define LangCheckDC (*TkVptr->V_LangCheckDC)
-#endif
-
-#ifndef LangEventCallback
-# define LangEventCallback (*TkVptr->V_LangEventCallback)
-#endif
-
-#ifndef LangFindVar
-# define LangFindVar (*TkVptr->V_LangFindVar)
-#endif
-
-#ifndef LangFontObj
-# define LangFontObj (*TkVptr->V_LangFontObj)
-#endif
-
-#ifndef LangObjectObj
-# define LangObjectObj (*TkVptr->V_LangObjectObj)
-#endif
-
-#ifndef LangSelectHook
-# define LangSelectHook (*TkVptr->V_LangSelectHook)
-#endif
-
-#ifndef LangWidgetObj
-# define LangWidgetObj (*TkVptr->V_LangWidgetObj)
-#endif
-
-#ifndef Lang_CreateImage
-# define Lang_CreateImage (*TkVptr->V_Lang_CreateImage)
-#endif
-
-#ifndef Lang_CreateWidget
-# define Lang_CreateWidget (*TkVptr->V_Lang_CreateWidget)
-#endif
-
-#ifndef Lang_DeleteWidget
-# define Lang_DeleteWidget (*TkVptr->V_Lang_DeleteWidget)
-#endif
-
-#ifndef Tk_ChangeScreen
-# define Tk_ChangeScreen (*TkVptr->V_Tk_ChangeScreen)
-#endif
-
-#ifndef Tk_CreateOldImageType
-# define Tk_CreateOldImageType (*TkVptr->V_Tk_CreateOldImageType)
-#endif
-
-#ifndef Tk_EventInfo
-# define Tk_EventInfo (*TkVptr->V_Tk_EventInfo)
-#endif
-
-#ifndef Tk_EventWindow
-# define Tk_EventWindow (*TkVptr->V_Tk_EventWindow)
-#endif
-
-#ifndef Tk_FreeTile
-# define Tk_FreeTile (*TkVptr->V_Tk_FreeTile)
-#endif
-
-#ifndef Tk_GetTile
-# define Tk_GetTile (*TkVptr->V_Tk_GetTile)
-#endif
-
-#ifndef Tk_GetXSelection
-# define Tk_GetXSelection (*TkVptr->V_Tk_GetXSelection)
-#endif
-
-#ifndef Tk_InitImageArgs
-# define Tk_InitImageArgs (*TkVptr->V_Tk_InitImageArgs)
-#endif
-
-#ifndef Tk_NameOfTile
-# define Tk_NameOfTile (*TkVptr->V_Tk_NameOfTile)
-#endif
-
-#ifndef Tk_PixmapOfTile
-# define Tk_PixmapOfTile (*TkVptr->V_Tk_PixmapOfTile)
-#endif
-
-#ifndef Tk_SetTileChangedProc
-# define Tk_SetTileChangedProc (*TkVptr->V_Tk_SetTileChangedProc)
-#endif
-
-#ifndef Tk_SizeOfTile
-# define Tk_SizeOfTile (*TkVptr->V_Tk_SizeOfTile)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TK_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tk.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tk.t
deleted file mode 100644
index 18c40ef81c5..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tk.t
+++ /dev/null
@@ -1,151 +0,0 @@
-#ifdef _TK
-#ifndef LangCheckDC
-#ifndef RC_INVOKED
-VFUNC(void,LangCheckDC,V_LangCheckDC,_ANSI_ARGS_((const char *file, int line)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef LangCheckDC */
-
-#ifndef LangEventCallback
-#ifndef RC_INVOKED
-VFUNC(int,LangEventCallback,V_LangEventCallback,_ANSI_ARGS_((ClientData, Tcl_Interp *,XEvent *,Tk_Window,KeySym)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef LangEventCallback */
-
-#ifndef LangFindVar
-#ifndef RC_INVOKED
-VFUNC(Var,LangFindVar,V_LangFindVar,_ANSI_ARGS_((Tcl_Interp * interp, Tk_Window, CONST char *name)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef LangFindVar */
-
-#ifndef LangFontObj
-#ifndef RC_INVOKED
-VFUNC(Tcl_Obj *,LangFontObj,V_LangFontObj,_ANSI_ARGS_((Tcl_Interp *interp, Tk_Font font, char *name)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef LangFontObj */
-
-#ifndef LangObjectObj
-#ifndef RC_INVOKED
-VFUNC(Tcl_Obj *,LangObjectObj,V_LangObjectObj,_ANSI_ARGS_((Tcl_Interp *interp, char *)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef LangObjectObj */
-
-#ifndef LangSelectHook
-#ifndef NO_EXTERN
-VFUNC(void,LangSelectHook,V_LangSelectHook,_ANSI_ARGS_((CONST char *what, Tk_Window tkwin,
- Atom selection, Atom target, Atom type)))
-#endif /* #ifndef NO_EXTERN */
-#endif /* #ifndef LangSelectHook */
-
-#ifndef LangWidgetObj
-#ifndef RC_INVOKED
-VFUNC(Tcl_Obj *,LangWidgetObj,V_LangWidgetObj,_ANSI_ARGS_((Tcl_Interp *interp, Tk_Window)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef LangWidgetObj */
-
-#ifndef Lang_CreateImage
-#ifndef RC_INVOKED
-VFUNC(Tcl_Command,Lang_CreateImage,V_Lang_CreateImage,_ANSI_ARGS_((Tcl_Interp *interp,
- char *cmdName, Tcl_ObjCmdProc *proc,
- ClientData clientData,
- Tcl_CmdDeleteProc *deleteProc,
- Tk_ImageType *typePtr)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Lang_CreateImage */
-
-#ifndef Lang_CreateWidget
-#ifndef RC_INVOKED
-VFUNC(Tcl_Command,Lang_CreateWidget,V_Lang_CreateWidget,_ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Window, Tcl_ObjCmdProc *proc,
- ClientData clientData,
- Tcl_CmdDeleteProc *deleteProc)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Lang_CreateWidget */
-
-#ifndef Lang_DeleteWidget
-#ifndef RC_INVOKED
-VFUNC(void,Lang_DeleteWidget,V_Lang_DeleteWidget,_ANSI_ARGS_((Tcl_Interp *interp, Tcl_Command cmd)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Lang_DeleteWidget */
-
-#ifndef Tk_ChangeScreen
-#ifndef RC_INVOKED
-VFUNC(void,Tk_ChangeScreen,V_Tk_ChangeScreen,_ANSI_ARGS_((Tcl_Interp *interp,
- char *dispName, int screenIndex)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Tk_ChangeScreen */
-
-#ifndef Tk_CreateOldImageType
-#ifndef RC_INVOKED
-VFUNC(void,Tk_CreateOldImageType,V_Tk_CreateOldImageType,_ANSI_ARGS_((
- Tk_ImageType *typePtr)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Tk_CreateOldImageType */
-
-#ifndef Tk_EventInfo
-#ifndef RC_INVOKED
-VFUNC(char *,Tk_EventInfo,V_Tk_EventInfo,_ANSI_ARGS_((int letter, Tk_Window tkwin, XEvent *eventPtr,
- KeySym keySym, int *numPtr, int *isNum, int *type,
- int num_size, char *numStorage)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Tk_EventInfo */
-
-#ifndef Tk_EventWindow
-#ifndef RC_INVOKED
-VFUNC(Tk_Window,Tk_EventWindow,V_Tk_EventWindow,_ANSI_ARGS_((XEvent *eventPtr)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Tk_EventWindow */
-
-#ifndef Tk_FreeTile
-#ifndef RC_INVOKED
-VFUNC(void,Tk_FreeTile,V_Tk_FreeTile,_ANSI_ARGS_((Tk_Tile tile)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Tk_FreeTile */
-
-#ifndef Tk_GetTile
-#ifndef RC_INVOKED
-VFUNC(Tk_Tile,Tk_GetTile,V_Tk_GetTile,_ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
- CONST char *imageName)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Tk_GetTile */
-
-#ifndef Tk_GetXSelection
-#ifndef RC_INVOKED
-VFUNC(int,Tk_GetXSelection,V_Tk_GetXSelection,_ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Window tkwin, Atom selection, Atom target,
- Tk_GetXSelProc *proc, ClientData clientData)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Tk_GetXSelection */
-
-#ifndef Tk_InitImageArgs
-#ifndef RC_INVOKED
-VFUNC(void,Tk_InitImageArgs,V_Tk_InitImageArgs,_ANSI_ARGS_((Tcl_Interp *interp, int argc, char ***objv)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Tk_InitImageArgs */
-
-#ifndef Tk_NameOfTile
-#ifndef RC_INVOKED
-VFUNC(CONST char *,Tk_NameOfTile,V_Tk_NameOfTile,_ANSI_ARGS_((Tk_Tile tile)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Tk_NameOfTile */
-
-#ifndef Tk_PixmapOfTile
-#ifndef RC_INVOKED
-VFUNC(Pixmap,Tk_PixmapOfTile,V_Tk_PixmapOfTile,_ANSI_ARGS_((Tk_Tile tile)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Tk_PixmapOfTile */
-
-#ifndef Tk_SetTileChangedProc
-#ifndef RC_INVOKED
-VFUNC(void,Tk_SetTileChangedProc,V_Tk_SetTileChangedProc,_ANSI_ARGS_((Tk_Tile tile,
- Tk_TileChangedProc * changeProc, ClientData clientData)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Tk_SetTileChangedProc */
-
-#ifndef Tk_SizeOfTile
-#ifndef RC_INVOKED
-VFUNC(void,Tk_SizeOfTile,V_Tk_SizeOfTile,_ANSI_ARGS_((Tk_Tile tile, int *widthPtr,
- int *heightPtr)))
-#endif /* #ifndef RC_INVOKED */
-#endif /* #ifndef Tk_SizeOfTile */
-
-#endif /* _TK */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tk3d.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tk3d.h
deleted file mode 100644
index f7b89114068..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tk3d.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * tk3d.h --
- *
- * Declarations of types and functions shared by the 3d border
- * module.
- *
- * Copyright (c) 1996-1997 by Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tk3d.h,v 1.5 1999/04/16 01:51:10 stanton Exp $
- */
-
-#ifndef _TK3D
-#define _TK3D
-
-#include "tkInt.h"
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * One of the following data structures is allocated for each 3-D border
- * currently in use. Structures of this type are indexed by
- * borderTable, so that a single structure can be shared for several
- * uses.
- */
-
-typedef struct TkBorder {
- Screen *screen; /* Screen on which the border will be used. */
- Visual *visual; /* Visual for all windows and pixmaps using
- * the border. */
- int depth; /* Number of bits per pixel of drawables where
- * the border will be used. */
- Colormap colormap; /* Colormap out of which pixels are
- * allocated. */
- int resourceRefCount; /* Number of active uses of this color (each
- * active use corresponds to a call to
- * Tk_Alloc3DBorderFromObj or Tk_Get3DBorder).
- * If this count is 0, then this structure
- * is no longer valid and it isn't present
- * in borderTable: it is being kept around
- * only because there are objects referring
- * to it. The structure is freed when
- * resourceRefCount and objRefCount are
- * both 0. */
- int objRefCount; /* The number of Tcl objects that reference
- * this structure. */
- XColor *bgColorPtr; /* Background color (intensity
- * between lightColorPtr and
- * darkColorPtr). */
- XColor *darkColorPtr; /* Color for darker areas (must free when
- * deleting structure). NULL means shadows
- * haven't been allocated yet.*/
- XColor *lightColorPtr; /* Color used for lighter areas of border
- * (must free this when deleting structure).
- * NULL means shadows haven't been allocated
- * yet. */
- Pixmap shadow; /* Stipple pattern to use for drawing
- * shadows areas. Used for displays with
- * <= 64 colors or where colormap has filled
- * up. */
- GC bgGC; /* Used (if necessary) to draw areas in
- * the background color. */
- GC darkGC; /* Used to draw darker parts of the
- * border. None means the shadow colors
- * haven't been allocated yet.*/
- GC lightGC; /* Used to draw lighter parts of
- * the border. None means the shadow colors
- * haven't been allocated yet. */
- Tcl_HashEntry *hashPtr; /* Entry in borderTable (needed in
- * order to delete structure). */
- struct TkBorder *nextPtr; /* Points to the next TkBorder structure with
- * the same color name. Borders with the
- * same name but different screens or
- * colormaps are chained together off a
- * single entry in borderTable. */
-} TkBorder;
-
-
-/*
- * Maximum intensity for a color:
- */
-
-#define MAX_INTENSITY 65535
-
-/*
- * Declarations for platform specific interfaces used by this module.
- */
-
-EXTERN TkBorder * TkpGetBorder _ANSI_ARGS_((void));
-EXTERN void TkpGetShadows _ANSI_ARGS_((TkBorder *borderPtr,
- Tk_Window tkwin));
-EXTERN void TkpFreeBorder _ANSI_ARGS_((TkBorder *borderPtr));
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TK3D */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkButton.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkButton.h
deleted file mode 100644
index e75742e6beb..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkButton.h
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * tkButton.h --
- *
- * Declarations of types and functions used to implement
- * button-like widgets.
- *
- * Copyright (c) 1996-1998 by Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkButton.h,v 1.9.2.1 2003/04/26 02:53:46 hobbs Exp $
- */
-
-#ifndef _TKBUTTON
-#define _TKBUTTON
-
-#ifndef _TKINT
-#include "tkInt.h"
-#endif
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * Legal values for the "compound" field of TkButton records.
- */
-
-enum compound {
- COMPOUND_BOTTOM, COMPOUND_CENTER, COMPOUND_LEFT, COMPOUND_NONE,
- COMPOUND_RIGHT, COMPOUND_TOP
-};
-
-/*
- * Legal values for the "state" field of TkButton records.
- */
-
-enum state {
- STATE_ACTIVE, STATE_DISABLED, STATE_NORMAL
-};
-
-/*
- * Legal values for the "defaultState" field of TkButton records.
- */
-
-enum defaultState {
- DEFAULT_ACTIVE, DEFAULT_DISABLED, DEFAULT_NORMAL
-};
-
-/*
- * A data structure of the following type is kept for each
- * widget managed by this file:
- */
-
-typedef struct {
- Tk_Window tkwin; /* Window that embodies the button. NULL
- * means that the window has been destroyed. */
- Display *display; /* Display containing widget. Needed to
- * free up resources after tkwin is gone. */
- Tcl_Interp *interp; /* Interpreter associated with button. */
- Tcl_Command widgetCmd; /* Token for button's widget command. */
- int type; /* Type of widget, such as TYPE_LABEL:
- * restricts operations that may be performed
- * on widget. See below for legal values. */
- Tk_OptionTable optionTable; /* Table that defines configuration options
- * available for this widget. */
-
- /*
- * Information about what's in the button.
- */
-
- Tcl_Obj *textPtr; /* Value of -text option: specifies text to
- * display in button. */
- int underline; /* Value of -underline option: specifies
- * index of character to underline. < 0 means
- * don't underline anything. */
- Tcl_Obj *textVarNamePtr; /* Value of -textvariable option: specifies
- * name of variable or NULL. If non-NULL,
- * button displays the contents of this
- * variable. */
- Pixmap bitmap; /* Value of -bitmap option. If not None,
- * specifies bitmap to display and text and
- * textVar are ignored. */
- Tcl_Obj *imagePtr; /* Value of -image option: specifies image
- * to display in window, or NULL if none.
- * If non-NULL, bitmap, text, and textVarName
- * are ignored.*/
- Tk_Image image; /* Derived from imagePtr by calling
- * Tk_GetImage, or NULL if imagePtr is NULL. */
- Tcl_Obj *selectImagePtr; /* Value of -selectimage option: specifies
- * image to display in window when selected,
- * or NULL if none. Ignored if imagePtr is
- * NULL. */
- Tk_Image selectImage; /* Derived from selectImagePtr by calling
- * Tk_GetImage, or NULL if selectImagePtr
- * is NULL. */
-
- /*
- * Information used when displaying widget:
- */
-
- enum state state; /* Value of -state option: specifies
- * state of button for display purposes.*/
- Tk_3DBorder normalBorder; /* Value of -background option: specifies
- * color for background (and border) when
- * window isn't active. */
- Tk_3DBorder activeBorder; /* Value of -activebackground option:
- * this is the color used to draw 3-D border
- * and background when widget is active. */
- Tcl_Obj *borderWidthPtr; /* Value of -borderWidth option: specifies
- * width of border in pixels. */
- int borderWidth; /* Integer value corresponding to
- * borderWidthPtr. Always >= 0. */
- int relief; /* Value of -relief option: specifies 3-d
- * effect for border, such as
- * TK_RELIEF_RAISED. */
- int overRelief; /* Value of -overrelief option: specifies a 3-d
- * effect for the border, such as
- * TK_RELIEF_RAISED, to be used when the mouse
- * is over the button. */
- int offRelief; /* Value of -offrelief option: specifies a 3-d
- * effect for the border, such as
- * TK_RELIEF_RAISED, to be used when a
- * checkbutton or radiobutton without
- * indicator is off */
- Tcl_Obj *highlightWidthPtr; /* Value of -highlightthickness option:
- * specifies width in pixels of highlight to
- * draw around widget when it has the focus.
- * <= 0 means don't draw a highlight. */
- int highlightWidth; /* Integer value corresponding to
- * highlightWidthPtr. Always >= 0. */
- Tk_3DBorder highlightBorder;/* Value of -highlightbackground option:
- * specifies background with which to draw 3-D
- * default ring and focus highlight area when
- * highlight is off. */
- XColor *highlightColorPtr; /* Value of -highlightcolor option:
- * specifies color for drawing traversal
- * highlight. */
- int inset; /* Total width of all borders, including
- * traversal highlight and 3-D border.
- * Indicates how much interior stuff must
- * be offset from outside edges to leave
- * room for borders. */
- Tk_Font tkfont; /* Value of -font option: specifies font
- * to use for display text. */
- XColor *normalFg; /* Value of -font option: specifies foreground
- * color in normal mode. */
- XColor *activeFg; /* Value of -activeforeground option:
- * foreground color in active mode. NULL
- * means use -foreground instead. */
- XColor *disabledFg; /* Value of -disabledforeground option:
- * foreground color when disabled. NULL
- * means use normalFg with a 50% stipple
- * instead. */
- GC normalTextGC; /* GC for drawing text in normal mode. Also
- * used to copy from off-screen pixmap onto
- * screen. */
- GC activeTextGC; /* GC for drawing text in active mode (NULL
- * means use normalTextGC). */
- GC disabledGC; /* Used to produce disabled effect for text
- * and check/radio marks. */
- GC stippleGC; /* Used to produce disabled stipple effect
- * for images when disabled. */
- Pixmap gray; /* Pixmap for displaying disabled text if
- * disabledFg is NULL. */
- GC copyGC; /* Used for copying information from an
- * off-screen pixmap to the screen. */
- Tcl_Obj *widthPtr; /* Value of -width option. */
- int width; /* Integer value corresponding to widthPtr. */
- Tcl_Obj *heightPtr; /* Value of -height option. */
- int height; /* Integer value corresponding to heightPtr. */
- Tcl_Obj *wrapLengthPtr; /* Value of -wraplength option: specifies
- * line length (in pixels) at which to wrap
- * onto next line. <= 0 means don't wrap
- * except at newlines. */
- int wrapLength; /* Integer value corresponding to
- * wrapLengthPtr. */
- Tcl_Obj *padXPtr; /* Value of -padx option: specifies how many
- * pixels of extra space to leave on left and
- * right of text. Ignored for bitmaps and
- * images. */
- int padX; /* Integer value corresponding to padXPtr. */
- Tcl_Obj *padYPtr; /* Value of -padx option: specifies how many
- * pixels of extra space to leave above and
- * below text. Ignored for bitmaps and
- * images. */
- int padY; /* Integer value corresponding to padYPtr. */
- Tk_Anchor anchor; /* Value of -anchor option: specifies where
- * text/bitmap should be displayed inside
- * button region. */
- Tk_Justify justify; /* Value of -justify option: specifies how
- * to align lines of multi-line text. */
- int indicatorOn; /* Value of -indicatoron option: 1 means
- * draw indicator in checkbuttons and
- * radiobuttons, 0 means don't draw it. */
- Tk_3DBorder selectBorder; /* Value of -selectcolor option: specifies
- * color for drawing indicator background, or
- * perhaps widget background, when selected. */
- int textWidth; /* Width needed to display text as requested,
- * in pixels. */
- int textHeight; /* Height needed to display text as requested,
- * in pixels. */
- Tk_TextLayout textLayout; /* Saved text layout information. */
- int indicatorSpace; /* Horizontal space (in pixels) allocated for
- * display of indicator. */
- int indicatorDiameter; /* Diameter of indicator, in pixels. */
- enum defaultState defaultState;
- /* Value of -default option, such as
- * DEFAULT_NORMAL: specifies state
- * of default ring for buttons (normal,
- * active, or disabled). NULL for other
- * classes. */
-
- /*
- * For check and radio buttons, the fields below are used
- * to manage the variable indicating the button's state.
- */
-
- Tcl_Obj *selVarNamePtr; /* Value of -variable option: specifies name
- * of variable used to control selected
- * state of button. */
- Tcl_Obj *onValuePtr; /* Value of -offvalue option: specifies value
- * to store in variable when this button is
- * selected. */
- Tcl_Obj *offValuePtr; /* Value of -offvalue option: specifies value
- * to store in variable when this button
- * isn't selected. Used only by
- * checkbuttons. */
-
- /*
- * Miscellaneous information:
- */
-
- Tk_Cursor cursor; /* Value of -cursor option: if not None,
- * specifies current cursor for window. */
- Tcl_Obj *takeFocusPtr; /* Value of -takefocus option; not used in
- * the C code, but used by keyboard traversal
- * scripts. */
- Tcl_Obj *commandPtr; /* Value of -command option: specifies script
- * to execute when button is invoked. If
- * widget is label or has no command, this
- * is NULL. */
- int compound; /* Value of -compound option; specifies whether
- * the button should show both an image and
- * text, and, if so, how. */
- int repeatDelay; /* Value of -repeatdelay option; specifies
- * the number of ms after which the button will
- * start to auto-repeat its command. */
- int repeatInterval; /* Value of -repeatinterval option; specifies
- * the number of ms between auto-repeat
- * invocataions of the button command. */
- int flags; /* Various flags; see below for
- * definitions. */
-} TkButton;
-
-/*
- * Possible "type" values for buttons. These are the kinds of
- * widgets supported by this file. The ordering of the type
- * numbers is significant: greater means more features and is
- * used in the code.
- */
-
-#define TYPE_LABEL 0
-#define TYPE_BUTTON 1
-#define TYPE_CHECK_BUTTON 2
-#define TYPE_RADIO_BUTTON 3
-
-/*
- * Flag bits for buttons:
- *
- * REDRAW_PENDING: Non-zero means a DoWhenIdle handler
- * has already been queued to redraw
- * this window.
- * SELECTED: Non-zero means this button is selected,
- * so special highlight should be drawn.
- * GOT_FOCUS: Non-zero means this button currently
- * has the input focus.
- * BUTTON_DELETED: Non-zero needs that this button has been
- * deleted, or is in the process of being
- * deleted.
- */
-
-#define REDRAW_PENDING (1 << 0)
-#define SELECTED (1 << 1)
-#define GOT_FOCUS (1 << 2)
-#define BUTTON_DELETED (1 << 3)
-/*
- * Declaration of variables shared between the files in the button module.
- */
-
-extern Tk_ClassProcs tkpButtonProcs;
-
-/*
- * Declaration of procedures used in the implementation of the button
- * widget.
- */
-
-#ifndef TkpButtonSetDefaults
-EXTERN void TkpButtonSetDefaults _ANSI_ARGS_((
- Tk_OptionSpec *specPtr));
-#endif
-EXTERN void TkButtonWorldChanged _ANSI_ARGS_((
- ClientData instanceData));
-EXTERN void TkpComputeButtonGeometry _ANSI_ARGS_((
- TkButton *butPtr));
-EXTERN TkButton * TkpCreateButton _ANSI_ARGS_((Tk_Window tkwin));
-#ifndef TkpDestroyButton
-EXTERN void TkpDestroyButton _ANSI_ARGS_((TkButton *butPtr));
-#endif
-#ifndef TkpDisplayButton
-EXTERN void TkpDisplayButton _ANSI_ARGS_((ClientData clientData));
-#endif
-EXTERN int TkInvokeButton _ANSI_ARGS_((TkButton *butPtr));
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKBUTTON */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkCanvas.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkCanvas.h
deleted file mode 100644
index 6b033bf63fc..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkCanvas.h
+++ /dev/null
@@ -1,334 +0,0 @@
-/*
- * tkCanvas.h --
- *
- * Declarations shared among all the files that implement
- * canvas widgets.
- *
- * Copyright (c) 1991-1994 The Regents of the University of California.
- * Copyright (c) 1994-1995 Sun Microsystems, Inc.
- * Copyright (c) 1998 by Scriptics Corporation.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCanvas.h,v 1.7 2003/01/08 23:02:33 drh Exp $
- */
-
-#ifndef _TKCANVAS
-#define _TKCANVAS
-
-#ifndef _TK
-#include "tk.h"
-#endif
-
-#ifndef USE_OLD_TAG_SEARCH
-typedef struct TagSearchExpr_s TagSearchExpr;
-
-struct TagSearchExpr_s {
- TagSearchExpr *next; /* for linked lists of expressions - used in bindings */
- Tk_Uid uid; /* the uid of the whole expression */
- Tk_Uid *uids; /* expresion compiled to an array of uids */
- int allocated; /* available space for array of uids */
- int length; /* length of expression */
- int index; /* current position in expression evaluation */
- int match; /* this expression matches event's item's tags*/
-};
-#endif /* not USE_OLD_TAG_SEARCH */
-
-/*
- * The record below describes a canvas widget. It is made available
- * to the item procedures so they can access certain shared fields such
- * as the overall displacement and scale factor for the canvas.
- */
-
-typedef struct TkCanvas {
- Tk_Window tkwin; /* Window that embodies the canvas. NULL
- * means that the window has been destroyed
- * but the data structures haven't yet been
- * cleaned up.*/
- Display *display; /* Display containing widget; needed, among
- * other things, to release resources after
- * tkwin has already gone away. */
- Tcl_Interp *interp; /* Interpreter associated with canvas. */
- Tcl_Command widgetCmd; /* Token for canvas's widget command. */
- Tk_Item *firstItemPtr; /* First in list of all items in canvas,
- * or NULL if canvas empty. */
- Tk_Item *lastItemPtr; /* Last in list of all items in canvas,
- * or NULL if canvas empty. */
-
- /*
- * Information used when displaying widget:
- */
-
- int borderWidth; /* Width of 3-D border around window. */
- Tk_3DBorder bgBorder; /* Used for canvas background. */
- int relief; /* Indicates whether window as a whole is
- * raised, sunken, or flat. */
- int highlightWidth; /* Width in pixels of highlight to draw
- * around widget when it has the focus.
- * <= 0 means don't draw a highlight. */
- XColor *highlightBgColorPtr;
- /* Color for drawing traversal highlight
- * area when highlight is off. */
- XColor *highlightColorPtr; /* Color for drawing traversal highlight. */
- int inset; /* Total width of all borders, including
- * traversal highlight and 3-D border.
- * Indicates how much interior stuff must
- * be offset from outside edges to leave
- * room for borders. */
- GC pixmapGC; /* Used to copy bits from a pixmap to the
- * screen and also to clear the pixmap. */
- int width, height; /* Dimensions to request for canvas window,
- * specified in pixels. */
- int redrawX1, redrawY1; /* Upper left corner of area to redraw,
- * in pixel coordinates. Border pixels
- * are included. Only valid if
- * REDRAW_PENDING flag is set. */
- int redrawX2, redrawY2; /* Lower right corner of area to redraw,
- * in integer canvas coordinates. Border
- * pixels will *not* be redrawn. */
- int confine; /* Non-zero means constrain view to keep
- * as much of canvas visible as possible. */
-
- /*
- * Information used to manage the selection and insertion cursor:
- */
-
- Tk_CanvasTextInfo textInfo; /* Contains lots of fields; see tk.h for
- * details. This structure is shared with
- * the code that implements individual items. */
- int insertOnTime; /* Number of milliseconds cursor should spend
- * in "on" state for each blink. */
- int insertOffTime; /* Number of milliseconds cursor should spend
- * in "off" state for each blink. */
- Tcl_TimerToken insertBlinkHandler;
- /* Timer handler used to blink cursor on and
- * off. */
-
- /*
- * Transformation applied to canvas as a whole: to compute screen
- * coordinates (X,Y) from canvas coordinates (x,y), do the following:
- *
- * X = x - xOrigin;
- * Y = y - yOrigin;
- */
-
- int xOrigin, yOrigin; /* Canvas coordinates corresponding to
- * upper-left corner of window, given in
- * canvas pixel units. */
- int drawableXOrigin, drawableYOrigin;
- /* During redisplay, these fields give the
- * canvas coordinates corresponding to
- * the upper-left corner of the drawable
- * where items are actually being drawn
- * (typically a pixmap smaller than the
- * whole window). */
-
- /*
- * Information used for event bindings associated with items.
- */
-
- Tk_BindingTable bindingTable;
- /* Table of all bindings currently defined
- * for this canvas. NULL means that no
- * bindings exist, so the table hasn't been
- * created. Each "object" used for this
- * table is either a Tk_Uid for a tag or
- * the address of an item named by id. */
- Tk_Item *currentItemPtr; /* The item currently containing the mouse
- * pointer, or NULL if none. */
- Tk_Item *newCurrentPtr; /* The item that is about to become the
- * current one, or NULL. This field is
- * used to detect deletions of the new
- * current item pointer that occur during
- * Leave processing of the previous current
- * item. */
- double closeEnough; /* The mouse is assumed to be inside an
- * item if it is this close to it. */
- XEvent pickEvent; /* The event upon which the current choice
- * of currentItem is based. Must be saved
- * so that if the currentItem is deleted,
- * can pick another. */
- int state; /* Last known modifier state. Used to
- * defer picking a new current object
- * while buttons are down. */
-
- /*
- * Information used for managing scrollbars:
- */
-
- LangCallback *xScrollCmd; /* Command prefix for communicating with
- * horizontal scrollbar. NULL means no
- * horizontal scrollbar. Malloc'ed*/
- LangCallback *yScrollCmd; /* Command prefix for communicating with
- * vertical scrollbar. NULL means no
- * vertical scrollbar. Malloc'ed*/
- int scrollX1, scrollY1, scrollX2, scrollY2;
- /* These four coordinates define the region
- * that is the 100% area for scrolling (i.e.
- * these numbers determine the size and
- * location of the sliders on scrollbars).
- * Units are pixels in canvas coords. */
- Tcl_Obj * regionArg; /* The option string from which scrollX1
- * etc. are derived. Malloc'ed. */
- int xScrollIncrement; /* If >0, defines a grid for horizontal
- * scrolling. This is the size of the "unit",
- * and the left edge of the screen will always
- * lie on an even unit boundary. */
- int yScrollIncrement; /* If >0, defines a grid for horizontal
- * scrolling. This is the size of the "unit",
- * and the left edge of the screen will always
- * lie on an even unit boundary. */
-
- /*
- * Information used for scanning:
- */
-
- int scanX; /* X-position at which scan started (e.g.
- * button was pressed here). */
- int scanXOrigin; /* Value of xOrigin field when scan started. */
- int scanY; /* Y-position at which scan started (e.g.
- * button was pressed here). */
- int scanYOrigin; /* Value of yOrigin field when scan started. */
-
- /*
- * Information used to speed up searches by remembering the last item
- * created or found with an item id search.
- */
-
- Tk_Item *hotPtr; /* Pointer to "hot" item (one that's been
- * recently used. NULL means there's no
- * hot item. */
- Tk_Item *hotPrevPtr; /* Pointer to predecessor to hotPtr (NULL
- * means item is first in list). This is
- * only a hint and may not really be hotPtr's
- * predecessor. */
-
- /*
- * Miscellaneous information:
- */
-
- Tk_Cursor cursor; /* Current cursor for window, or None. */
- char *takeFocus; /* Value of -takefocus option; not used in
- * the C code, but used by keyboard traversal
- * scripts. Malloc'ed, but may be NULL. */
- double pixelsPerMM; /* Scale factor between MM and pixels;
- * used when converting coordinates. */
- int flags; /* Various flags; see below for
- * definitions. */
- int nextId; /* Number to use as id for next item
- * created in widget. */
- Tk_PostscriptInfo psInfo;
- /* Pointer to information used for generating
- * Postscript for the canvas. NULL means
- * no Postscript is currently being
- * generated. */
- Tcl_HashTable idTable; /* Table of integer indices. */
- /*
- * Additional information, added by the 'dash'-patch
- */
- Tk_State canvas_state; /* state of canvas */
- Tk_Tile tile;
- Tk_Tile disabledTile;
- Tk_TSOffset tsoffset;
-#ifndef USE_OLD_TAG_SEARCH
- TagSearchExpr *bindTagExprs; /* linked list of tag expressions used in bindings */
-#endif
- /* pTk additions */
- Tk_Item *activeGroup; /* Which group item is active */
- Tcl_Obj *updateCmds;
-} TkCanvas;
-
-/*
- * Flag bits for canvases:
- *
- * REDRAW_PENDING - 1 means a DoWhenIdle handler has already
- * been created to redraw some or all of the
- * canvas.
- * REDRAW_BORDERS - 1 means that the borders need to be redrawn
- * during the next redisplay operation.
- * REPICK_NEEDED - 1 means DisplayCanvas should pick a new
- * current item before redrawing the canvas.
- * GOT_FOCUS - 1 means the focus is currently in this
- * widget, so should draw the insertion cursor
- * and traversal highlight.
- * CURSOR_ON - 1 means the insertion cursor is in the "on"
- * phase of its blink cycle. 0 means either
- * we don't have the focus or the cursor is in
- * the "off" phase of its cycle.
- * UPDATE_SCROLLBARS - 1 means the scrollbars should get updated
- * as part of the next display operation.
- * LEFT_GRABBED_ITEM - 1 means that the mouse left the current
- * item while a grab was in effect, so we
- * didn't change canvasPtr->currentItemPtr.
- * REPICK_IN_PROGRESS - 1 means PickCurrentItem is currently
- * executing. If it should be called recursively,
- * it should simply return immediately.
- * BBOX_NOT_EMPTY - 1 means that the bounding box of the area
- * that should be redrawn is not empty.
- */
-
-#define REDRAW_PENDING 1
-#define REDRAW_BORDERS 2
-#define REPICK_NEEDED 4
-#define GOT_FOCUS 8
-#define CURSOR_ON 0x10
-#define UPDATE_SCROLLBARS 0x20
-#define LEFT_GRABBED_ITEM 0x40
-#define REPICK_IN_PROGRESS 0x100
-#define BBOX_NOT_EMPTY 0x200
-
-/*
- * Flag bits for canvas items (redraw_flags):
- *
- * FORCE_REDRAW - 1 means that the new coordinates of some
- * item are not yet registered using
- * Tk_CanvasEventuallyRedraw(). It should still
- * be done by the general canvas code.
- */
-
-#define FORCE_REDRAW 8
-#define NEEDS_DISPLAY 16
-
-/*
- * Canvas-related procedures that are shared among Tk modules but not
- * exported to the outside world:
- */
-
-extern int TkCanvPostscriptCmd _ANSI_ARGS_((TkCanvas *canvasPtr,
- Tcl_Interp *interp, int argc, CONST84 Tcl_Obj *CONST *objv));
-
-/*
- * Other procedures that are shared among Tk canvas modules but not exported
- * to the outside world:
- */
-extern int TkCanvTranslatePath _ANSI_ARGS_((TkCanvas *canvPtr,
- int numVertex, double *coordPtr, int closed,
- XPoint *outPtr));
-
-
-#define Tk_CanvasActiveGroup(canvas) ((TkCanvas *) (canvas))->activeGroup
-
-#define Tk_CanvasGroupHidden(canvas,itemPtr) ( \
- ( Tk_CanvasActiveGroup(canvas) && \
- (itemPtr)->group != Tk_CanvasActiveGroup(canvas)) || \
- ( (itemPtr)->group && \
- (itemPtr)->group != Tk_CanvasActiveGroup(canvas) && \
- (itemPtr)->group->state != TK_STATE_ACTIVE ))
-
-#define Tk_GetItemState(canvas,itemPtr) \
-( \
- (0 && Tk_CanvasGroupHidden(canvas,itemPtr)) \
- ? TK_STATE_HIDDEN \
- : (((itemPtr)->state == TK_STATE_NULL) \
- ? ((TkCanvas *)(canvas))->canvas_state \
- : (itemPtr)->state \
- ) \
-)
-
-EXTERN void TkGroupRemoveItem _ANSI_ARGS_((Tk_Item *item));
-
-#endif /* _TKCANVAS */
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkCanvases.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkCanvases.h
deleted file mode 100644
index 14d604e6591..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkCanvases.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef _TKCANVASES
-#define _TKCANVASES
-
-#ifndef _TKCANVAS
-#include "tkCanvas.h"
-#endif
-
-EXTERN Tk_CustomOption tk_CanvasTagsOption;
-
-
-EXTERN void Tk_CanvasDrawableCoords _ANSI_ARGS_((Tk_Canvas canvas,
- double x, double y, short *drawableXPtr,
- short *drawableYPtr));
-EXTERN void Tk_CanvasEventuallyRedraw _ANSI_ARGS_((
- Tk_Canvas canvas, int x1, int y1, int x2,
- int y2));
-EXTERN int Tk_CanvasGetCoord _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, CONST char *string,
- double *doublePtr));
-EXTERN Tk_CanvasTextInfo *Tk_CanvasGetTextInfo _ANSI_ARGS_((Tk_Canvas canvas));
-EXTERN int Tk_CanvasPsBitmap _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, Pixmap bitmap, int x, int y,
- int width, int height));
-EXTERN int Tk_CanvasPsColor _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, XColor *colorPtr));
-EXTERN int Tk_CanvasPsFont _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, Tk_Font font));
-EXTERN void Tk_CanvasPsPath _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, double *coordPtr, int numPoints));
-EXTERN int Tk_CanvasPsStipple _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, Pixmap bitmap));
-EXTERN double Tk_CanvasPsY _ANSI_ARGS_((Tk_Canvas canvas, double y));
-EXTERN void Tk_CanvasSetStippleOrigin _ANSI_ARGS_((
- Tk_Canvas canvas, GC gc));
-EXTERN Tk_Window Tk_CanvasTkwin _ANSI_ARGS_((Tk_Canvas canvas));
-EXTERN void Tk_CanvasWindowCoords _ANSI_ARGS_((Tk_Canvas canvas,
- double x, double y, short *screenXPtr,
- short *screenYPtr));
-EXTERN void Tk_CreateItemType _ANSI_ARGS_((Tk_ItemType *typePtr));
-EXTERN Tk_ItemType * Tk_GetItemTypes _ANSI_ARGS_((void));
-
-/* These are from tkInt.h */
-
-extern void TkBezierPoints _ANSI_ARGS_((double control[],
- int numSteps, double *coordPtr));
-extern void TkBezierScreenPoints _ANSI_ARGS_((Tk_Canvas canvas,
- double control[], int numSteps,
- XPoint *xPointPtr));
-extern void TkFillPolygon _ANSI_ARGS_((Tk_Canvas canvas,
- double *coordPtr, int numPoints, Display *display,
- Drawable drawable, GC gc, GC outlineGC));
-extern int TkMakeBezierCurve _ANSI_ARGS_((Tk_Canvas canvas,
- double *pointPtr, int numPoints, int numSteps,
- XPoint xPoints[], double dblPoints[]));
-extern void TkMakeBezierPostscript _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, double *pointPtr,
- int numPoints));
-extern void TkIncludePoint _ANSI_ARGS_((Tk_Item *itemPtr,
- double *pointPtr));
-extern void TkGetButtPoints _ANSI_ARGS_((double p1[], double p2[],
- double width, int project, double m1[],
- double m2[]));
-extern int TkGetMiterPoints _ANSI_ARGS_((double p1[], double p2[],
- double p3[], double width, double m1[],
- double m2[]));
-extern int TkLineToArea _ANSI_ARGS_((double end1Ptr[2],
- double end2Ptr[2], double rectPtr[4]));
-extern double TkLineToPoint _ANSI_ARGS_((double end1Ptr[2],
- double end2Ptr[2], double pointPtr[2]));
-extern int TkOvalToArea _ANSI_ARGS_((double *ovalPtr,
- double *rectPtr));
-extern double TkOvalToPoint _ANSI_ARGS_((double ovalPtr[4],
- double width, int filled, double pointPtr[2]));
-extern int TkPolygonToArea _ANSI_ARGS_((double *polyPtr,
- int numPoints, double *rectPtr));
-extern double TkPolygonToPoint _ANSI_ARGS_((double *polyPtr,
- int numPoints, double *pointPtr));
-
-#include "tkVMacro.h"
-#endif
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkColor.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkColor.h
deleted file mode 100644
index f24df7c8759..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkColor.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * tkColor.h --
- *
- * Declarations of data types and functions used by the
- * Tk color module.
- *
- * Copyright (c) 1996-1997 by Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkColor.h,v 1.6 1999/11/19 22:00:03 hobbs Exp $
- */
-
-#ifndef _TKCOLOR
-#define _TKCOLOR
-
-#include "tkInt.h"
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * One of the following data structures is used to keep track of
- * each color that is being used by the application; typically there
- * is a colormap entry allocated for each of these colors.
- */
-
-#define TK_COLOR_BY_NAME 1
-#define TK_COLOR_BY_VALUE 2
-
-#define COLOR_MAGIC ((unsigned int) 0x46140277)
-
-typedef struct TkColor {
- XColor color; /* Information about this color. */
- unsigned int magic; /* Used for quick integrity check on this
- * structure. Must always have the
- * value COLOR_MAGIC. */
- GC gc; /* Simple gc with this color as foreground
- * color and all other fields defaulted.
- * May be None. */
- Screen *screen; /* Screen where this color is valid. Used
- * to delete it, and to find its display. */
- Colormap colormap; /* Colormap from which this entry was
- * allocated. */
- Visual *visual; /* Visual associated with colormap. */
- int resourceRefCount; /* Number of active uses of this color (each
- * active use corresponds to a call to
- * Tk_AllocColorFromObj or Tk_GetColor).
- * If this count is 0, then this TkColor
- * structure is no longer valid and it isn't
- * present in a hash table: it is being
- * kept around only because there are objects
- * referring to it. The structure is freed
- * when resourceRefCount and objRefCount
- * are both 0. */
- int objRefCount; /* The number of Tcl objects that reference
- * this structure. */
- int type; /* TK_COLOR_BY_NAME or TK_COLOR_BY_VALUE */
- Tcl_HashEntry *hashPtr; /* Pointer to hash table entry for this
- * structure. (for use in deleting entry). */
- struct TkColor *nextPtr; /* Points to the next TkColor structure with
- * the same color name. Colors with the
- * same name but different screens or
- * colormaps are chained together off a
- * single entry in nameTable. For colors in
- * valueTable (those allocated by
- * Tk_GetColorByValue) this field is always
- * NULL. */
-} TkColor;
-
-/*
- * Common APIs exported from all platform-specific implementations.
- */
-
-#ifndef TkpFreeColor
-EXTERN void TkpFreeColor _ANSI_ARGS_((TkColor *tkColPtr));
-#endif
-EXTERN TkColor * TkpGetColor _ANSI_ARGS_((Tk_Window tkwin,
- Tk_Uid name));
-EXTERN TkColor * TkpGetColorByValue _ANSI_ARGS_((Tk_Window tkwin,
- XColor *colorPtr));
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKCOLOR */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkConfig.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkConfig.h
deleted file mode 100644
index fd15066b441..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkConfig.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _TKCONFIG
-#define _TKCONFIG
-#define ANSI_SIGNED_CHAR 1
-#define CAN_COPSTASH_SET_NULL 1
-#define HAS_STDARG 1
-#define HAS_SVIV_NOMG 1
-#define HAS_SVNV_NOMG 1
-#define HAVE_LIMITS_H 1
-#define LSEEK_TYPE long long
-#define SELECT_MASK Perl_fd_set
-#define USE_NEWSTYLE_REGEXP_STRUCT 1
-#define USE_PREGCOMP_31027 1
-#define USE_PROTOTYPE 1
-#define USE_REGEXP_511 1
-#endif
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls.h
deleted file mode 100644
index ff6c2333573..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls.h
+++ /dev/null
@@ -1,2277 +0,0 @@
-/*
- * tkDecls.h --
- *
- * Declarations of functions in the platform independent public Tcl API.
- *
- * Copyright (c) 1998-1999 by Scriptics Corporation.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkDecls.h,v 1.23 2002/08/05 04:30:38 dgp Exp $
- */
-
-#ifndef _TKDECLS
-#define _TKDECLS
-
-#ifdef BUILD_tk
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * WARNING: This file is automatically generated by the tools/genStubs.tcl
- * script. Any modifications to the function declarations below should be made
- * in the generic/tk.decls script.
- */
-
-/* !BEGIN!: Do not edit below this line. */
-
-/*
- * Exported function declarations:
- */
-
-/* 0 */
-EXTERN void Tk_MainLoop _ANSI_ARGS_((void));
-/* 1 */
-EXTERN XColor * Tk_3DBorderColor _ANSI_ARGS_((Tk_3DBorder border));
-/* 2 */
-EXTERN GC Tk_3DBorderGC _ANSI_ARGS_((Tk_Window tkwin,
- Tk_3DBorder border, int which));
-/* 3 */
-EXTERN void Tk_3DHorizontalBevel _ANSI_ARGS_((Tk_Window tkwin,
- Drawable drawable, Tk_3DBorder border, int x,
- int y, int width, int height, int leftIn,
- int rightIn, int topBevel, int relief));
-/* 4 */
-EXTERN void Tk_3DVerticalBevel _ANSI_ARGS_((Tk_Window tkwin,
- Drawable drawable, Tk_3DBorder border, int x,
- int y, int width, int height, int leftBevel,
- int relief));
-/* 5 */
-EXTERN void Tk_AddOption _ANSI_ARGS_((Tk_Window tkwin,
- CONST char * name, CONST char * value,
- int priority));
-/* 6 */
-EXTERN void Tk_BindEvent _ANSI_ARGS_((
- Tk_BindingTable bindingTable,
- XEvent * eventPtr, Tk_Window tkwin,
- int numObjects, ClientData * objectPtr));
-/* 7 */
-EXTERN void Tk_CanvasDrawableCoords _ANSI_ARGS_((
- Tk_Canvas canvas, double x, double y,
- short * drawableXPtr, short * drawableYPtr));
-/* 8 */
-EXTERN void Tk_CanvasEventuallyRedraw _ANSI_ARGS_((
- Tk_Canvas canvas, int x1, int y1, int x2,
- int y2));
-/* 9 */
-EXTERN int Tk_CanvasGetCoord _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Canvas canvas, CONST char * str,
- double * doublePtr));
-/* 10 */
-EXTERN Tk_CanvasTextInfo * Tk_CanvasGetTextInfo _ANSI_ARGS_((
- Tk_Canvas canvas));
-/* 11 */
-EXTERN int Tk_CanvasPsBitmap _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Canvas canvas, Pixmap bitmap, int x,
- int y, int width, int height));
-/* 12 */
-EXTERN int Tk_CanvasPsColor _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Canvas canvas, XColor * colorPtr));
-/* 13 */
-EXTERN int Tk_CanvasPsFont _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Canvas canvas, Tk_Font font));
-/* 14 */
-EXTERN void Tk_CanvasPsPath _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Canvas canvas, double * coordPtr,
- int numPoints));
-/* 15 */
-EXTERN int Tk_CanvasPsStipple _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Canvas canvas, Pixmap bitmap));
-/* 16 */
-EXTERN double Tk_CanvasPsY _ANSI_ARGS_((Tk_Canvas canvas, double y));
-/* 17 */
-EXTERN void Tk_CanvasSetStippleOrigin _ANSI_ARGS_((
- Tk_Canvas canvas, GC gc));
-/* 18 */
-EXTERN int Tk_CanvasTagsParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj *value,
- char * widgRec, int offset));
-/* 19 */
-EXTERN Tcl_Obj * Tk_CanvasTagsPrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char * widgRec, int offset,
- Tcl_FreeProc ** freeProcPtr));
-/* 20 */
-EXTERN Tk_Window Tk_CanvasTkwin _ANSI_ARGS_((Tk_Canvas canvas));
-/* 21 */
-EXTERN void Tk_CanvasWindowCoords _ANSI_ARGS_((Tk_Canvas canvas,
- double x, double y, short * screenXPtr,
- short * screenYPtr));
-/* 22 */
-EXTERN void Tk_ChangeWindowAttributes _ANSI_ARGS_((
- Tk_Window tkwin, unsigned long valueMask,
- XSetWindowAttributes * attsPtr));
-/* 23 */
-EXTERN int Tk_CharBbox _ANSI_ARGS_((Tk_TextLayout layout,
- int index, int * xPtr, int * yPtr,
- int * widthPtr, int * heightPtr));
-/* 24 */
-EXTERN void Tk_ClearSelection _ANSI_ARGS_((Tk_Window tkwin,
- Atom selection));
-/* 25 */
-EXTERN int Tk_ClipboardAppend _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Atom target, Atom format,
- char* buffer));
-/* 26 */
-EXTERN int Tk_ClipboardClear _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin));
-/* 27 */
-EXTERN int Tk_ConfigureInfo _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_ConfigSpec * specs,
- char * widgRec, CONST char * argvName,
- int flags));
-/* 28 */
-EXTERN int Tk_ConfigureValue _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_ConfigSpec * specs,
- char * widgRec, CONST char * argvName,
- int flags));
-/* 29 */
-EXTERN int Tk_ConfigureWidget _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_ConfigSpec * specs,
- int argc, CONST84 Tcl_Obj *CONST *objv,
- char * widgRec, int flags));
-/* 30 */
-EXTERN void Tk_ConfigureWindow _ANSI_ARGS_((Tk_Window tkwin,
- unsigned int valueMask,
- XWindowChanges * valuePtr));
-/* 31 */
-EXTERN Tk_TextLayout Tk_ComputeTextLayout _ANSI_ARGS_((Tk_Font font,
- CONST char * str, int numChars,
- int wrapLength, Tk_Justify justify,
- int flags, int * widthPtr, int * heightPtr));
-/* 32 */
-EXTERN Tk_Window Tk_CoordsToWindow _ANSI_ARGS_((int rootX, int rootY,
- Tk_Window tkwin));
-/* 33 */
-EXTERN unsigned long Tk_CreateBinding _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_BindingTable bindingTable,
- ClientData object, CONST char * eventStr,
- Tcl_Obj *command, int append));
-/* 34 */
-EXTERN Tk_BindingTable Tk_CreateBindingTable _ANSI_ARGS_((
- Tcl_Interp * interp));
-/* 35 */
-EXTERN Tk_ErrorHandler Tk_CreateErrorHandler _ANSI_ARGS_((Display * display,
- int errNum, int request, int minorCode,
- Tk_ErrorProc * errorProc,
- ClientData clientData));
-/* 36 */
-EXTERN void Tk_CreateEventHandler _ANSI_ARGS_((Tk_Window token,
- unsigned long mask, Tk_EventProc * proc,
- ClientData clientData));
-/* 37 */
-EXTERN void Tk_CreateGenericHandler _ANSI_ARGS_((
- Tk_GenericProc * proc, ClientData clientData));
-/* 38 */
-EXTERN void Tk_CreateImageType _ANSI_ARGS_((
- Tk_ImageType * typePtr));
-/* 39 */
-EXTERN void Tk_CreateItemType _ANSI_ARGS_((Tk_ItemType * typePtr));
-/* 40 */
-EXTERN void Tk_CreatePhotoImageFormat _ANSI_ARGS_((
- Tk_PhotoImageFormat * formatPtr));
-/* 41 */
-EXTERN void Tk_CreateSelHandler _ANSI_ARGS_((Tk_Window tkwin,
- Atom selection, Atom target,
- Tk_SelectionProc * proc,
- ClientData clientData, Atom format));
-/* 42 */
-EXTERN Tk_Window Tk_CreateWindow _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window parent, CONST char * name,
- CONST char * screenName));
-/* 43 */
-EXTERN Tk_Window Tk_CreateWindowFromPath _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- CONST char * pathName,
- CONST char * screenName));
-/* 44 */
-EXTERN int Tk_DefineBitmap _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name, CONST char * source,
- int width, int height));
-/* 45 */
-EXTERN void Tk_DefineCursor _ANSI_ARGS_((Tk_Window window,
- Tk_Cursor cursor));
-/* 46 */
-EXTERN void Tk_DeleteAllBindings _ANSI_ARGS_((
- Tk_BindingTable bindingTable,
- ClientData object));
-/* 47 */
-EXTERN int Tk_DeleteBinding _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_BindingTable bindingTable,
- ClientData object, CONST char * eventStr));
-/* 48 */
-EXTERN void Tk_DeleteBindingTable _ANSI_ARGS_((
- Tk_BindingTable bindingTable));
-/* 49 */
-EXTERN void Tk_DeleteErrorHandler _ANSI_ARGS_((
- Tk_ErrorHandler handler));
-/* 50 */
-EXTERN void Tk_DeleteEventHandler _ANSI_ARGS_((Tk_Window token,
- unsigned long mask, Tk_EventProc * proc,
- ClientData clientData));
-/* 51 */
-EXTERN void Tk_DeleteGenericHandler _ANSI_ARGS_((
- Tk_GenericProc * proc, ClientData clientData));
-/* 52 */
-EXTERN void Tk_DeleteImage _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name));
-/* 53 */
-EXTERN void Tk_DeleteSelHandler _ANSI_ARGS_((Tk_Window tkwin,
- Atom selection, Atom target));
-/* 54 */
-EXTERN void Tk_DestroyWindow _ANSI_ARGS_((Tk_Window tkwin));
-/* 55 */
-EXTERN CONST84_RETURN char * Tk_DisplayName _ANSI_ARGS_((Tk_Window tkwin));
-/* 56 */
-EXTERN int Tk_DistanceToTextLayout _ANSI_ARGS_((
- Tk_TextLayout layout, int x, int y));
-/* 57 */
-EXTERN void Tk_Draw3DPolygon _ANSI_ARGS_((Tk_Window tkwin,
- Drawable drawable, Tk_3DBorder border,
- XPoint * pointPtr, int numPoints,
- int borderWidth, int leftRelief));
-/* 58 */
-EXTERN void Tk_Draw3DRectangle _ANSI_ARGS_((Tk_Window tkwin,
- Drawable drawable, Tk_3DBorder border, int x,
- int y, int width, int height,
- int borderWidth, int relief));
-/* 59 */
-EXTERN void Tk_DrawChars _ANSI_ARGS_((Display * display,
- Drawable drawable, GC gc, Tk_Font tkfont,
- CONST char * source, int numBytes, int x,
- int y));
-/* 60 */
-EXTERN void Tk_DrawFocusHighlight _ANSI_ARGS_((Tk_Window tkwin,
- GC gc, int width, Drawable drawable));
-/* 61 */
-EXTERN void Tk_DrawTextLayout _ANSI_ARGS_((Display * display,
- Drawable drawable, GC gc,
- Tk_TextLayout layout, int x, int y,
- int firstChar, int lastChar));
-/* 62 */
-EXTERN void Tk_Fill3DPolygon _ANSI_ARGS_((Tk_Window tkwin,
- Drawable drawable, Tk_3DBorder border,
- XPoint * pointPtr, int numPoints,
- int borderWidth, int leftRelief));
-/* 63 */
-EXTERN void Tk_Fill3DRectangle _ANSI_ARGS_((Tk_Window tkwin,
- Drawable drawable, Tk_3DBorder border, int x,
- int y, int width, int height,
- int borderWidth, int relief));
-/* 64 */
-EXTERN Tk_PhotoHandle Tk_FindPhoto _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * imageName));
-/* 65 */
-EXTERN Font Tk_FontId _ANSI_ARGS_((Tk_Font font));
-/* 66 */
-EXTERN void Tk_Free3DBorder _ANSI_ARGS_((Tk_3DBorder border));
-/* 67 */
-EXTERN void Tk_FreeBitmap _ANSI_ARGS_((Display * display,
- Pixmap bitmap));
-/* 68 */
-EXTERN void Tk_FreeColor _ANSI_ARGS_((XColor * colorPtr));
-/* 69 */
-EXTERN void Tk_FreeColormap _ANSI_ARGS_((Display * display,
- Colormap colormap));
-/* 70 */
-EXTERN void Tk_FreeCursor _ANSI_ARGS_((Display * display,
- Tk_Cursor cursor));
-/* 71 */
-EXTERN void Tk_FreeFont _ANSI_ARGS_((Tk_Font f));
-/* 72 */
-EXTERN void Tk_FreeGC _ANSI_ARGS_((Display * display, GC gc));
-/* 73 */
-EXTERN void Tk_FreeImage _ANSI_ARGS_((Tk_Image image));
-/* 74 */
-EXTERN void Tk_FreeOptions _ANSI_ARGS_((Tk_ConfigSpec * specs,
- char * widgRec, Display * display,
- int needFlags));
-/* 75 */
-EXTERN void Tk_FreePixmap _ANSI_ARGS_((Display * display,
- Pixmap pixmap));
-/* 76 */
-EXTERN void Tk_FreeTextLayout _ANSI_ARGS_((
- Tk_TextLayout textLayout));
-/* 77 */
-EXTERN void Tk_FreeXId _ANSI_ARGS_((Display * display, XID xid));
-/* 78 */
-EXTERN GC Tk_GCForColor _ANSI_ARGS_((XColor * colorPtr,
- Drawable drawable));
-/* 79 */
-EXTERN void Tk_GeometryRequest _ANSI_ARGS_((Tk_Window tkwin,
- int reqWidth, int reqHeight));
-/* 80 */
-EXTERN Tk_3DBorder Tk_Get3DBorder _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_Uid colorName));
-/* 81 */
-EXTERN void Tk_GetAllBindings _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_BindingTable bindingTable,
- ClientData object));
-/* 82 */
-EXTERN int Tk_GetAnchor _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, Tk_Anchor * anchorPtr));
-/* 83 */
-EXTERN CONST84_RETURN char * Tk_GetAtomName _ANSI_ARGS_((Tk_Window tkwin,
- Atom atom));
-/* 84 */
-EXTERN Tcl_Obj * Tk_GetBinding _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_BindingTable bindingTable,
- ClientData object, CONST char * eventStr));
-/* 85 */
-EXTERN Pixmap Tk_GetBitmap _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, CONST char * str));
-/* 86 */
-EXTERN Pixmap Tk_GetBitmapFromData _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- CONST char * source, int width, int height));
-/* 87 */
-EXTERN int Tk_GetCapStyle _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, int * capPtr));
-/* 88 */
-EXTERN XColor * Tk_GetColor _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_Uid name));
-/* 89 */
-EXTERN XColor * Tk_GetColorByValue _ANSI_ARGS_((Tk_Window tkwin,
- XColor * colorPtr));
-/* 90 */
-EXTERN Colormap Tk_GetColormap _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, CONST char * str));
-/* 91 */
-EXTERN Tk_Cursor Tk_GetCursor _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_Uid str));
-/* 92 */
-EXTERN Tk_Cursor Tk_GetCursorFromData _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- CONST char * source, CONST char * mask,
- int width, int height, int xHot, int yHot,
- Tk_Uid fg, Tk_Uid bg));
-/* 93 */
-EXTERN Tk_Font Tk_GetFont _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, CONST char * str));
-/* 94 */
-EXTERN Tk_Font Tk_GetFontFromObj _ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 95 */
-EXTERN void Tk_GetFontMetrics _ANSI_ARGS_((Tk_Font font,
- Tk_FontMetrics * fmPtr));
-/* 96 */
-EXTERN GC Tk_GetGC _ANSI_ARGS_((Tk_Window tkwin,
- unsigned long valueMask,
- XGCValues * valuePtr));
-/* 97 */
-EXTERN Tk_Image Tk_GetImage _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, CONST char * name,
- Tk_ImageChangedProc * changeProc,
- ClientData clientData));
-/* 98 */
-EXTERN ClientData Tk_GetImageMasterData _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * name,
- Tk_ImageType ** typePtrPtr));
-/* 99 */
-EXTERN Tk_ItemType * Tk_GetItemTypes _ANSI_ARGS_((void));
-/* 100 */
-EXTERN int Tk_GetJoinStyle _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, int * joinPtr));
-/* 101 */
-EXTERN int Tk_GetJustify _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, Tk_Justify * justifyPtr));
-/* 102 */
-EXTERN int Tk_GetNumMainWindows _ANSI_ARGS_((void));
-/* 103 */
-EXTERN Tk_Uid Tk_GetOption _ANSI_ARGS_((Tk_Window tkwin,
- CONST char * name, CONST char * className));
-/* 104 */
-EXTERN int Tk_GetPixels _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, CONST char * str,
- int * intPtr));
-/* 105 */
-EXTERN Pixmap Tk_GetPixmap _ANSI_ARGS_((Display * display,
- Drawable d, int width, int height, int depth));
-/* 106 */
-EXTERN int Tk_GetRelief _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name, int * reliefPtr));
-/* 107 */
-EXTERN void Tk_GetRootCoords _ANSI_ARGS_((Tk_Window tkwin,
- int * xPtr, int * yPtr));
-/* 108 */
-EXTERN int Tk_GetScrollInfo _ANSI_ARGS_((Tcl_Interp * interp,
- int argc, CONST84 Tcl_Obj *CONST *objv,
- double * dblPtr, int * intPtr));
-/* 109 */
-EXTERN int Tk_GetScreenMM _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, CONST char * str,
- double * doublePtr));
-/* 110 */
-EXTERN int Tk_GetSelection _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Atom selection, Atom target,
- Tk_GetSelProc * proc, ClientData clientData));
-/* 111 */
-EXTERN Tk_Uid Tk_GetUid _ANSI_ARGS_((CONST char * str));
-/* 112 */
-EXTERN Visual * Tk_GetVisual _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj *str,
- int * depthPtr, Colormap * colormapPtr));
-/* 113 */
-EXTERN void Tk_GetVRootGeometry _ANSI_ARGS_((Tk_Window tkwin,
- int * xPtr, int * yPtr, int * widthPtr,
- int * heightPtr));
-/* 114 */
-EXTERN int Tk_Grab _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, int grabGlobal));
-/* 115 */
-EXTERN void Tk_HandleEvent _ANSI_ARGS_((XEvent * eventPtr));
-/* 116 */
-EXTERN Tk_Window Tk_IdToWindow _ANSI_ARGS_((Display * display,
- Window window));
-/* 117 */
-EXTERN void Tk_ImageChanged _ANSI_ARGS_((Tk_ImageMaster master,
- int x, int y, int width, int height,
- int imageWidth, int imageHeight));
-/* 118 */
-EXTERN int Tk_Init _ANSI_ARGS_((Tcl_Interp * interp));
-/* 119 */
-EXTERN Atom Tk_InternAtom _ANSI_ARGS_((Tk_Window tkwin,
- CONST char * name));
-/* 120 */
-EXTERN int Tk_IntersectTextLayout _ANSI_ARGS_((
- Tk_TextLayout layout, int x, int y,
- int width, int height));
-/* 121 */
-EXTERN void Tk_MaintainGeometry _ANSI_ARGS_((Tk_Window slave,
- Tk_Window master, int x, int y, int width,
- int height));
-/* 122 */
-EXTERN Tk_Window Tk_MainWindow _ANSI_ARGS_((Tcl_Interp * interp));
-/* 123 */
-EXTERN void Tk_MakeWindowExist _ANSI_ARGS_((Tk_Window tkwin));
-/* 124 */
-EXTERN void Tk_ManageGeometry _ANSI_ARGS_((Tk_Window tkwin,
- Tk_GeomMgr * mgrPtr, ClientData clientData));
-/* 125 */
-EXTERN void Tk_MapWindow _ANSI_ARGS_((Tk_Window tkwin));
-/* 126 */
-EXTERN int Tk_MeasureChars _ANSI_ARGS_((Tk_Font tkfont,
- CONST char * source, int numBytes,
- int maxPixels, int flags, int * lengthPtr));
-/* 127 */
-EXTERN void Tk_MoveResizeWindow _ANSI_ARGS_((Tk_Window tkwin,
- int x, int y, int width, int height));
-/* 128 */
-EXTERN void Tk_MoveWindow _ANSI_ARGS_((Tk_Window tkwin, int x,
- int y));
-/* 129 */
-EXTERN void Tk_MoveToplevelWindow _ANSI_ARGS_((Tk_Window tkwin,
- int x, int y));
-/* 130 */
-EXTERN CONST84_RETURN char * Tk_NameOf3DBorder _ANSI_ARGS_((
- Tk_3DBorder border));
-/* 131 */
-EXTERN CONST84_RETURN char * Tk_NameOfAnchor _ANSI_ARGS_((Tk_Anchor anchor));
-/* 132 */
-EXTERN CONST84_RETURN char * Tk_NameOfBitmap _ANSI_ARGS_((Display * display,
- Pixmap bitmap));
-/* 133 */
-EXTERN CONST84_RETURN char * Tk_NameOfCapStyle _ANSI_ARGS_((int cap));
-/* 134 */
-EXTERN CONST84_RETURN char * Tk_NameOfColor _ANSI_ARGS_((XColor * colorPtr));
-/* 135 */
-EXTERN CONST84_RETURN char * Tk_NameOfCursor _ANSI_ARGS_((Display * display,
- Tk_Cursor cursor));
-/* 136 */
-EXTERN CONST84_RETURN char * Tk_NameOfFont _ANSI_ARGS_((Tk_Font font));
-/* 137 */
-EXTERN CONST84_RETURN char * Tk_NameOfImage _ANSI_ARGS_((
- Tk_ImageMaster imageMaster));
-/* 138 */
-EXTERN CONST84_RETURN char * Tk_NameOfJoinStyle _ANSI_ARGS_((int join));
-/* 139 */
-EXTERN CONST84_RETURN char * Tk_NameOfJustify _ANSI_ARGS_((
- Tk_Justify justify));
-/* 140 */
-EXTERN CONST84_RETURN char * Tk_NameOfRelief _ANSI_ARGS_((int relief));
-/* 141 */
-EXTERN Tk_Window Tk_NameToWindow _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * pathName, Tk_Window tkwin));
-/* 142 */
-EXTERN void Tk_OwnSelection _ANSI_ARGS_((Tk_Window tkwin,
- Atom selection, Tk_LostSelProc * proc,
- ClientData clientData));
-/* 143 */
-EXTERN int Tk_ParseArgv _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, int * argcPtr,
- CONST84 Tcl_Obj *CONST *objv, Tk_ArgvInfo * argTable,
- int flags));
-/* 144 */
-EXTERN void Tk_PhotoPutBlock_NoComposite _ANSI_ARGS_((
- Tk_PhotoHandle handle,
- Tk_PhotoImageBlock * blockPtr, int x, int y,
- int width, int height));
-/* 145 */
-EXTERN void Tk_PhotoPutZoomedBlock_NoComposite _ANSI_ARGS_((
- Tk_PhotoHandle handle,
- Tk_PhotoImageBlock * blockPtr, int x, int y,
- int width, int height, int zoomX, int zoomY,
- int subsampleX, int subsampleY));
-/* 146 */
-EXTERN int Tk_PhotoGetImage _ANSI_ARGS_((Tk_PhotoHandle handle,
- Tk_PhotoImageBlock * blockPtr));
-/* 147 */
-EXTERN void Tk_PhotoBlank _ANSI_ARGS_((Tk_PhotoHandle handle));
-/* 148 */
-EXTERN void Tk_PhotoExpand _ANSI_ARGS_((Tk_PhotoHandle handle,
- int width, int height));
-/* 149 */
-EXTERN void Tk_PhotoGetSize _ANSI_ARGS_((Tk_PhotoHandle handle,
- int * widthPtr, int * heightPtr));
-/* 150 */
-EXTERN void Tk_PhotoSetSize _ANSI_ARGS_((Tk_PhotoHandle handle,
- int width, int height));
-/* 151 */
-EXTERN int Tk_PointToChar _ANSI_ARGS_((Tk_TextLayout layout,
- int x, int y));
-/* 152 */
-EXTERN int Tk_PostscriptFontName _ANSI_ARGS_((Tk_Font tkfont,
- Tcl_DString * dsPtr));
-/* 153 */
-EXTERN void Tk_PreserveColormap _ANSI_ARGS_((Display * display,
- Colormap colormap));
-/* 154 */
-EXTERN void Tk_QueueWindowEvent _ANSI_ARGS_((XEvent * eventPtr,
- Tcl_QueuePosition position));
-/* 155 */
-EXTERN void Tk_RedrawImage _ANSI_ARGS_((Tk_Image image,
- int imageX, int imageY, int width,
- int height, Drawable drawable, int drawableX,
- int drawableY));
-/* 156 */
-EXTERN void Tk_ResizeWindow _ANSI_ARGS_((Tk_Window tkwin,
- int width, int height));
-/* 157 */
-EXTERN int Tk_RestackWindow _ANSI_ARGS_((Tk_Window tkwin,
- int aboveBelow, Tk_Window other));
-/* 158 */
-EXTERN Tk_RestrictProc * Tk_RestrictEvents _ANSI_ARGS_((
- Tk_RestrictProc * proc, ClientData arg,
- ClientData * prevArgPtr));
-/* 159 */
-EXTERN int Tk_SafeInit _ANSI_ARGS_((Tcl_Interp * interp));
-/* 160 */
-EXTERN CONST char * Tk_SetAppName _ANSI_ARGS_((Tk_Window tkwin,
- CONST char * name));
-/* 161 */
-EXTERN void Tk_SetBackgroundFromBorder _ANSI_ARGS_((
- Tk_Window tkwin, Tk_3DBorder border));
-/* 162 */
-EXTERN void Tk_SetClass _ANSI_ARGS_((Tk_Window tkwin,
- CONST char * className));
-/* 163 */
-EXTERN void Tk_SetGrid _ANSI_ARGS_((Tk_Window tkwin,
- int reqWidth, int reqHeight, int gridWidth,
- int gridHeight));
-/* 164 */
-EXTERN void Tk_SetInternalBorder _ANSI_ARGS_((Tk_Window tkwin,
- int width));
-/* 165 */
-EXTERN void Tk_SetWindowBackground _ANSI_ARGS_((Tk_Window tkwin,
- unsigned long pixel));
-/* 166 */
-EXTERN void Tk_SetWindowBackgroundPixmap _ANSI_ARGS_((
- Tk_Window tkwin, Pixmap pixmap));
-/* 167 */
-EXTERN void Tk_SetWindowBorder _ANSI_ARGS_((Tk_Window tkwin,
- unsigned long pixel));
-/* 168 */
-EXTERN void Tk_SetWindowBorderWidth _ANSI_ARGS_((Tk_Window tkwin,
- int width));
-/* 169 */
-EXTERN void Tk_SetWindowBorderPixmap _ANSI_ARGS_((
- Tk_Window tkwin, Pixmap pixmap));
-/* 170 */
-EXTERN void Tk_SetWindowColormap _ANSI_ARGS_((Tk_Window tkwin,
- Colormap colormap));
-/* 171 */
-EXTERN int Tk_SetWindowVisual _ANSI_ARGS_((Tk_Window tkwin,
- Visual * visual, int depth,
- Colormap colormap));
-/* 172 */
-EXTERN void Tk_SizeOfBitmap _ANSI_ARGS_((Display * display,
- Pixmap bitmap, int * widthPtr,
- int * heightPtr));
-/* 173 */
-EXTERN void Tk_SizeOfImage _ANSI_ARGS_((Tk_Image image,
- int * widthPtr, int * heightPtr));
-/* 174 */
-EXTERN int Tk_StrictMotif _ANSI_ARGS_((Tk_Window tkwin));
-/* 175 */
-EXTERN void Tk_TextLayoutToPostscript _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_TextLayout layout));
-/* 176 */
-EXTERN int Tk_TextWidth _ANSI_ARGS_((Tk_Font font,
- CONST char * str, int numBytes));
-/* 177 */
-EXTERN void Tk_UndefineCursor _ANSI_ARGS_((Tk_Window window));
-/* 178 */
-EXTERN void Tk_UnderlineChars _ANSI_ARGS_((Display * display,
- Drawable drawable, GC gc, Tk_Font tkfont,
- CONST char * source, int x, int y,
- int firstByte, int lastByte));
-/* 179 */
-EXTERN void Tk_UnderlineTextLayout _ANSI_ARGS_((
- Display * display, Drawable drawable, GC gc,
- Tk_TextLayout layout, int x, int y,
- int underline));
-/* 180 */
-EXTERN void Tk_Ungrab _ANSI_ARGS_((Tk_Window tkwin));
-/* 181 */
-EXTERN void Tk_UnmaintainGeometry _ANSI_ARGS_((Tk_Window slave,
- Tk_Window master));
-/* 182 */
-EXTERN void Tk_UnmapWindow _ANSI_ARGS_((Tk_Window tkwin));
-/* 183 */
-EXTERN void Tk_UnsetGrid _ANSI_ARGS_((Tk_Window tkwin));
-/* 184 */
-EXTERN void Tk_UpdatePointer _ANSI_ARGS_((Tk_Window tkwin, int x,
- int y, int state));
-/* 185 */
-EXTERN Pixmap Tk_AllocBitmapFromObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 186 */
-EXTERN Tk_3DBorder Tk_Alloc3DBorderFromObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 187 */
-EXTERN XColor * Tk_AllocColorFromObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 188 */
-EXTERN Tk_Cursor Tk_AllocCursorFromObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 189 */
-EXTERN Tk_Font Tk_AllocFontFromObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj * objPtr));
-/* 190 */
-EXTERN Tk_OptionTable Tk_CreateOptionTable _ANSI_ARGS_((
- Tcl_Interp * interp,
- CONST Tk_OptionSpec * templatePtr));
-/* 191 */
-EXTERN void Tk_DeleteOptionTable _ANSI_ARGS_((
- Tk_OptionTable optionTable));
-/* 192 */
-EXTERN void Tk_Free3DBorderFromObj _ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 193 */
-EXTERN void Tk_FreeBitmapFromObj _ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 194 */
-EXTERN void Tk_FreeColorFromObj _ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 195 */
-EXTERN void Tk_FreeConfigOptions _ANSI_ARGS_((char * recordPtr,
- Tk_OptionTable optionToken, Tk_Window tkwin));
-/* 196 */
-EXTERN void Tk_FreeSavedOptions _ANSI_ARGS_((
- Tk_SavedOptions * savePtr));
-/* 197 */
-EXTERN void Tk_FreeCursorFromObj _ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 198 */
-EXTERN void Tk_FreeFontFromObj _ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 199 */
-EXTERN Tk_3DBorder Tk_Get3DBorderFromObj _ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 200 */
-EXTERN int Tk_GetAnchorFromObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, Tk_Anchor * anchorPtr));
-/* 201 */
-EXTERN Pixmap Tk_GetBitmapFromObj _ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 202 */
-EXTERN XColor * Tk_GetColorFromObj _ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 203 */
-EXTERN Tk_Cursor Tk_GetCursorFromObj _ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr));
-/* 204 */
-EXTERN Tcl_Obj * Tk_GetOptionInfo _ANSI_ARGS_((Tcl_Interp * interp,
- char * recordPtr, Tk_OptionTable optionTable,
- Tcl_Obj * namePtr, Tk_Window tkwin));
-/* 205 */
-EXTERN Tcl_Obj * Tk_GetOptionValue _ANSI_ARGS_((Tcl_Interp * interp,
- char * recordPtr, Tk_OptionTable optionTable,
- Tcl_Obj * namePtr, Tk_Window tkwin));
-/* 206 */
-EXTERN int Tk_GetJustifyFromObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr,
- Tk_Justify * justifyPtr));
-/* 207 */
-EXTERN int Tk_GetMMFromObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj * objPtr,
- double * doublePtr));
-/* 208 */
-EXTERN int Tk_GetPixelsFromObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj * objPtr,
- int * intPtr));
-/* 209 */
-EXTERN int Tk_GetReliefFromObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, int * resultPtr));
-/* 210 */
-EXTERN int Tk_GetScrollInfoObj _ANSI_ARGS_((Tcl_Interp * interp,
- int objc, Tcl_Obj *CONST objv[],
- double * dblPtr, int * intPtr));
-/* 211 */
-EXTERN int Tk_InitOptions _ANSI_ARGS_((Tcl_Interp * interp,
- char * recordPtr, Tk_OptionTable optionToken,
- Tk_Window tkwin));
-/* 212 */
-EXTERN void Tk_MainEx _ANSI_ARGS_((int argc, Tcl_Obj *CONST *objv,
- Tcl_AppInitProc * appInitProc,
- Tcl_Interp * interp));
-/* 213 */
-EXTERN void Tk_RestoreSavedOptions _ANSI_ARGS_((
- Tk_SavedOptions * savePtr));
-/* 214 */
-EXTERN int Tk_SetOptions _ANSI_ARGS_((Tcl_Interp * interp,
- char * recordPtr, Tk_OptionTable optionTable,
- int objc, Tcl_Obj *CONST objv[],
- Tk_Window tkwin, Tk_SavedOptions * savePtr,
- int * maskPtr));
-/* 215 */
-EXTERN void Tk_InitConsoleChannels _ANSI_ARGS_((
- Tcl_Interp * interp));
-/* 216 */
-EXTERN int Tk_CreateConsoleWindow _ANSI_ARGS_((
- Tcl_Interp * interp));
-/* 217 */
-EXTERN void Tk_CreateSmoothMethod _ANSI_ARGS_((
- Tcl_Interp * interp,
- Tk_SmoothMethod * method));
-/* Slot 218 is reserved */
-/* Slot 219 is reserved */
-/* 220 */
-EXTERN int Tk_GetDash _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj *value, Tk_Dash * dash));
-/* 221 */
-EXTERN void Tk_CreateOutline _ANSI_ARGS_((Tk_Outline * outline));
-/* 222 */
-EXTERN void Tk_DeleteOutline _ANSI_ARGS_((Display * display,
- Tk_Outline * outline));
-/* 223 */
-EXTERN int Tk_ConfigOutlineGC _ANSI_ARGS_((XGCValues * gcValues,
- Tk_Canvas canvas, Tk_Item * item,
- Tk_Outline * outline));
-/* 224 */
-EXTERN int Tk_ChangeOutlineGC _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item * item, Tk_Outline * outline));
-/* 225 */
-EXTERN int Tk_ResetOutlineGC _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item * item, Tk_Outline * outline));
-/* 226 */
-EXTERN int Tk_CanvasPsOutline _ANSI_ARGS_((Tk_Canvas canvas,
- Tk_Item * item, Tk_Outline * outline));
-/* 227 */
-EXTERN void Tk_SetTSOrigin _ANSI_ARGS_((Tk_Window tkwin, GC gc,
- int x, int y));
-/* 228 */
-EXTERN int Tk_CanvasGetCoordFromObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Canvas canvas,
- Tcl_Obj * obj, double * doublePtr));
-/* 229 */
-EXTERN void Tk_CanvasSetOffset _ANSI_ARGS_((Tk_Canvas canvas,
- GC gc, Tk_TSOffset * offset));
-/* 230 */
-EXTERN void Tk_DitherPhoto _ANSI_ARGS_((Tk_PhotoHandle handle,
- int x, int y, int width, int height));
-/* 231 */
-EXTERN int Tk_PostscriptBitmap _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_PostscriptInfo psInfo,
- Pixmap bitmap, int startX, int startY,
- int width, int height));
-/* 232 */
-EXTERN int Tk_PostscriptColor _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_PostscriptInfo psInfo, XColor * colorPtr));
-/* 233 */
-EXTERN int Tk_PostscriptFont _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_PostscriptInfo psInfo, Tk_Font font));
-/* 234 */
-EXTERN int Tk_PostscriptImage _ANSI_ARGS_((Tk_Image image,
- Tcl_Interp * interp, Tk_Window tkwin,
- Tk_PostscriptInfo psinfo, int x, int y,
- int width, int height, int prepass));
-/* 235 */
-EXTERN void Tk_PostscriptPath _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_PostscriptInfo psInfo, double * coordPtr,
- int numPoints));
-/* 236 */
-EXTERN int Tk_PostscriptStipple _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- Tk_PostscriptInfo psInfo, Pixmap bitmap));
-/* 237 */
-EXTERN double Tk_PostscriptY _ANSI_ARGS_((double y,
- Tk_PostscriptInfo psInfo));
-/* 238 */
-EXTERN int Tk_PostscriptPhoto _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_PhotoImageBlock * blockPtr,
- Tk_PostscriptInfo psInfo, int width,
- int height));
-/* 239 */
-EXTERN void Tk_CreateClientMessageHandler _ANSI_ARGS_((
- Tk_ClientMessageProc * proc));
-/* 240 */
-EXTERN void Tk_DeleteClientMessageHandler _ANSI_ARGS_((
- Tk_ClientMessageProc * proc));
-/* 241 */
-EXTERN Tk_Window Tk_CreateAnonymousWindow _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window parent,
- CONST char * screenName));
-/* 242 */
-EXTERN void Tk_SetClassProcs _ANSI_ARGS_((Tk_Window tkwin,
- Tk_ClassProcs * procs,
- ClientData instanceData));
-/* 243 */
-EXTERN void Tk_SetInternalBorderEx _ANSI_ARGS_((Tk_Window tkwin,
- int left, int right, int top, int bottom));
-/* 244 */
-EXTERN void Tk_SetMinimumRequestSize _ANSI_ARGS_((
- Tk_Window tkwin, int minWidth, int minHeight));
-/* 245 */
-EXTERN void Tk_SetCaretPos _ANSI_ARGS_((Tk_Window tkwin, int x,
- int y, int height));
-/* 246 */
-EXTERN void Tk_PhotoPutBlock _ANSI_ARGS_((Tk_PhotoHandle handle,
- Tk_PhotoImageBlock * blockPtr, int x, int y,
- int width, int height, int compRule));
-/* 247 */
-EXTERN void Tk_PhotoPutZoomedBlock _ANSI_ARGS_((
- Tk_PhotoHandle handle,
- Tk_PhotoImageBlock * blockPtr, int x, int y,
- int width, int height, int zoomX, int zoomY,
- int subsampleX, int subsampleY, int compRule));
-/* 248 */
-EXTERN int Tk_CollapseMotionEvents _ANSI_ARGS_((
- Display * display, int collapse));
-/* 249 */
-EXTERN Tk_StyleEngine Tk_RegisterStyleEngine _ANSI_ARGS_((
- CONST char * name, Tk_StyleEngine parent));
-/* 250 */
-EXTERN Tk_StyleEngine Tk_GetStyleEngine _ANSI_ARGS_((CONST char * name));
-/* 251 */
-EXTERN int Tk_RegisterStyledElement _ANSI_ARGS_((
- Tk_StyleEngine engine,
- Tk_ElementSpec * templatePtr));
-/* 252 */
-EXTERN int Tk_GetElementId _ANSI_ARGS_((CONST char * name));
-/* 253 */
-EXTERN Tk_Style Tk_CreateStyle _ANSI_ARGS_((CONST char * name,
- Tk_StyleEngine engine, ClientData clientData));
-/* 254 */
-EXTERN Tk_Style Tk_GetStyle _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name));
-/* 255 */
-EXTERN void Tk_FreeStyle _ANSI_ARGS_((Tk_Style style));
-/* 256 */
-EXTERN CONST char * Tk_NameOfStyle _ANSI_ARGS_((Tk_Style style));
-/* 257 */
-EXTERN Tk_Style Tk_AllocStyleFromObj _ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr));
-/* 258 */
-EXTERN Tk_Style Tk_GetStyleFromObj _ANSI_ARGS_((Tcl_Obj * objPtr));
-/* 259 */
-EXTERN void Tk_FreeStyleFromObj _ANSI_ARGS_((Tcl_Obj * objPtr));
-/* 260 */
-EXTERN Tk_StyledElement Tk_GetStyledElement _ANSI_ARGS_((Tk_Style style,
- int elementId, Tk_OptionTable optionTable));
-/* 261 */
-EXTERN void Tk_GetElementSize _ANSI_ARGS_((Tk_Style style,
- Tk_StyledElement element, char * recordPtr,
- Tk_Window tkwin, int width, int height,
- int inner, int * widthPtr, int * heightPtr));
-/* 262 */
-EXTERN void Tk_GetElementBox _ANSI_ARGS_((Tk_Style style,
- Tk_StyledElement element, char * recordPtr,
- Tk_Window tkwin, int x, int y, int width,
- int height, int inner, int * xPtr,
- int * yPtr, int * widthPtr, int * heightPtr));
-/* 263 */
-EXTERN int Tk_GetElementBorderWidth _ANSI_ARGS_((Tk_Style style,
- Tk_StyledElement element, char * recordPtr,
- Tk_Window tkwin));
-/* 264 */
-EXTERN void Tk_DrawElement _ANSI_ARGS_((Tk_Style style,
- Tk_StyledElement element, char * recordPtr,
- Tk_Window tkwin, Drawable d, int x, int y,
- int width, int height, int state));
-
-typedef struct TkStubHooks {
- struct TkPlatStubs *tkPlatStubs;
- struct TkIntStubs *tkIntStubs;
- struct TkIntPlatStubs *tkIntPlatStubs;
- struct TkIntXlibStubs *tkIntXlibStubs;
-} TkStubHooks;
-
-typedef struct TkStubs {
- int magic;
- struct TkStubHooks *hooks;
-
- void (*tk_MainLoop) _ANSI_ARGS_((void)); /* 0 */
- XColor * (*tk_3DBorderColor) _ANSI_ARGS_((Tk_3DBorder border)); /* 1 */
- GC (*tk_3DBorderGC) _ANSI_ARGS_((Tk_Window tkwin, Tk_3DBorder border, int which)); /* 2 */
- void (*tk_3DHorizontalBevel) _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int leftIn, int rightIn, int topBevel, int relief)); /* 3 */
- void (*tk_3DVerticalBevel) _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int leftBevel, int relief)); /* 4 */
- void (*tk_AddOption) _ANSI_ARGS_((Tk_Window tkwin, CONST char * name, CONST char * value, int priority)); /* 5 */
- void (*tk_BindEvent) _ANSI_ARGS_((Tk_BindingTable bindingTable, XEvent * eventPtr, Tk_Window tkwin, int numObjects, ClientData * objectPtr)); /* 6 */
- void (*tk_CanvasDrawableCoords) _ANSI_ARGS_((Tk_Canvas canvas, double x, double y, short * drawableXPtr, short * drawableYPtr)); /* 7 */
- void (*tk_CanvasEventuallyRedraw) _ANSI_ARGS_((Tk_Canvas canvas, int x1, int y1, int x2, int y2)); /* 8 */
- int (*tk_CanvasGetCoord) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, CONST char * str, double * doublePtr)); /* 9 */
- Tk_CanvasTextInfo * (*tk_CanvasGetTextInfo) _ANSI_ARGS_((Tk_Canvas canvas)); /* 10 */
- int (*tk_CanvasPsBitmap) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, Pixmap bitmap, int x, int y, int width, int height)); /* 11 */
- int (*tk_CanvasPsColor) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, XColor * colorPtr)); /* 12 */
- int (*tk_CanvasPsFont) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, Tk_Font font)); /* 13 */
- void (*tk_CanvasPsPath) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, double * coordPtr, int numPoints)); /* 14 */
- int (*tk_CanvasPsStipple) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, Pixmap bitmap)); /* 15 */
- double (*tk_CanvasPsY) _ANSI_ARGS_((Tk_Canvas canvas, double y)); /* 16 */
- void (*tk_CanvasSetStippleOrigin) _ANSI_ARGS_((Tk_Canvas canvas, GC gc)); /* 17 */
- int (*tk_CanvasTagsParseProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj *value, char * widgRec, int offset)); /* 18 */
- Tcl_Obj * (*tk_CanvasTagsPrintProc) _ANSI_ARGS_((ClientData clientData, Tk_Window tkwin, char * widgRec, int offset, Tcl_FreeProc ** freeProcPtr)); /* 19 */
- Tk_Window (*tk_CanvasTkwin) _ANSI_ARGS_((Tk_Canvas canvas)); /* 20 */
- void (*tk_CanvasWindowCoords) _ANSI_ARGS_((Tk_Canvas canvas, double x, double y, short * screenXPtr, short * screenYPtr)); /* 21 */
- void (*tk_ChangeWindowAttributes) _ANSI_ARGS_((Tk_Window tkwin, unsigned long valueMask, XSetWindowAttributes * attsPtr)); /* 22 */
- int (*tk_CharBbox) _ANSI_ARGS_((Tk_TextLayout layout, int index, int * xPtr, int * yPtr, int * widthPtr, int * heightPtr)); /* 23 */
- void (*tk_ClearSelection) _ANSI_ARGS_((Tk_Window tkwin, Atom selection)); /* 24 */
- int (*tk_ClipboardAppend) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Atom target, Atom format, char* buffer)); /* 25 */
- int (*tk_ClipboardClear) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin)); /* 26 */
- int (*tk_ConfigureInfo) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_ConfigSpec * specs, char * widgRec, CONST char * argvName, int flags)); /* 27 */
- int (*tk_ConfigureValue) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_ConfigSpec * specs, char * widgRec, CONST char * argvName, int flags)); /* 28 */
- int (*tk_ConfigureWidget) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_ConfigSpec * specs, int argc, CONST84 Tcl_Obj *CONST *objv, char * widgRec, int flags)); /* 29 */
- void (*tk_ConfigureWindow) _ANSI_ARGS_((Tk_Window tkwin, unsigned int valueMask, XWindowChanges * valuePtr)); /* 30 */
- Tk_TextLayout (*tk_ComputeTextLayout) _ANSI_ARGS_((Tk_Font font, CONST char * str, int numChars, int wrapLength, Tk_Justify justify, int flags, int * widthPtr, int * heightPtr)); /* 31 */
- Tk_Window (*tk_CoordsToWindow) _ANSI_ARGS_((int rootX, int rootY, Tk_Window tkwin)); /* 32 */
- unsigned long (*tk_CreateBinding) _ANSI_ARGS_((Tcl_Interp * interp, Tk_BindingTable bindingTable, ClientData object, CONST char * eventStr, CONST char * command, int append)); /* 33 */
- Tk_BindingTable (*tk_CreateBindingTable) _ANSI_ARGS_((Tcl_Interp * interp)); /* 34 */
- Tk_ErrorHandler (*tk_CreateErrorHandler) _ANSI_ARGS_((Display * display, int errNum, int request, int minorCode, Tk_ErrorProc * errorProc, ClientData clientData)); /* 35 */
- void (*tk_CreateEventHandler) _ANSI_ARGS_((Tk_Window token, unsigned long mask, Tk_EventProc * proc, ClientData clientData)); /* 36 */
- void (*tk_CreateGenericHandler) _ANSI_ARGS_((Tk_GenericProc * proc, ClientData clientData)); /* 37 */
- void (*tk_CreateImageType) _ANSI_ARGS_((Tk_ImageType * typePtr)); /* 38 */
- void (*tk_CreateItemType) _ANSI_ARGS_((Tk_ItemType * typePtr)); /* 39 */
- void (*tk_CreatePhotoImageFormat) _ANSI_ARGS_((Tk_PhotoImageFormat * formatPtr)); /* 40 */
- void (*tk_CreateSelHandler) _ANSI_ARGS_((Tk_Window tkwin, Atom selection, Atom target, Tk_SelectionProc * proc, ClientData clientData, Atom format)); /* 41 */
- Tk_Window (*tk_CreateWindow) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window parent, CONST char * name, CONST char * screenName)); /* 42 */
- Tk_Window (*tk_CreateWindowFromPath) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * pathName, CONST char * screenName)); /* 43 */
- int (*tk_DefineBitmap) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * source, int width, int height)); /* 44 */
- void (*tk_DefineCursor) _ANSI_ARGS_((Tk_Window window, Tk_Cursor cursor)); /* 45 */
- void (*tk_DeleteAllBindings) _ANSI_ARGS_((Tk_BindingTable bindingTable, ClientData object)); /* 46 */
- int (*tk_DeleteBinding) _ANSI_ARGS_((Tcl_Interp * interp, Tk_BindingTable bindingTable, ClientData object, CONST char * eventStr)); /* 47 */
- void (*tk_DeleteBindingTable) _ANSI_ARGS_((Tk_BindingTable bindingTable)); /* 48 */
- void (*tk_DeleteErrorHandler) _ANSI_ARGS_((Tk_ErrorHandler handler)); /* 49 */
- void (*tk_DeleteEventHandler) _ANSI_ARGS_((Tk_Window token, unsigned long mask, Tk_EventProc * proc, ClientData clientData)); /* 50 */
- void (*tk_DeleteGenericHandler) _ANSI_ARGS_((Tk_GenericProc * proc, ClientData clientData)); /* 51 */
- void (*tk_DeleteImage) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name)); /* 52 */
- void (*tk_DeleteSelHandler) _ANSI_ARGS_((Tk_Window tkwin, Atom selection, Atom target)); /* 53 */
- void (*tk_DestroyWindow) _ANSI_ARGS_((Tk_Window tkwin)); /* 54 */
- CONST84_RETURN char * (*tk_DisplayName) _ANSI_ARGS_((Tk_Window tkwin)); /* 55 */
- int (*tk_DistanceToTextLayout) _ANSI_ARGS_((Tk_TextLayout layout, int x, int y)); /* 56 */
- void (*tk_Draw3DPolygon) _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, XPoint * pointPtr, int numPoints, int borderWidth, int leftRelief)); /* 57 */
- void (*tk_Draw3DRectangle) _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int borderWidth, int relief)); /* 58 */
- void (*tk_DrawChars) _ANSI_ARGS_((Display * display, Drawable drawable, GC gc, Tk_Font tkfont, CONST char * source, int numBytes, int x, int y)); /* 59 */
- void (*tk_DrawFocusHighlight) _ANSI_ARGS_((Tk_Window tkwin, GC gc, int width, Drawable drawable)); /* 60 */
- void (*tk_DrawTextLayout) _ANSI_ARGS_((Display * display, Drawable drawable, GC gc, Tk_TextLayout layout, int x, int y, int firstChar, int lastChar)); /* 61 */
- void (*tk_Fill3DPolygon) _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, XPoint * pointPtr, int numPoints, int borderWidth, int leftRelief)); /* 62 */
- void (*tk_Fill3DRectangle) _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int borderWidth, int relief)); /* 63 */
- Tk_PhotoHandle (*tk_FindPhoto) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * imageName)); /* 64 */
- Font (*tk_FontId) _ANSI_ARGS_((Tk_Font font)); /* 65 */
- void (*tk_Free3DBorder) _ANSI_ARGS_((Tk_3DBorder border)); /* 66 */
- void (*tk_FreeBitmap) _ANSI_ARGS_((Display * display, Pixmap bitmap)); /* 67 */
- void (*tk_FreeColor) _ANSI_ARGS_((XColor * colorPtr)); /* 68 */
- void (*tk_FreeColormap) _ANSI_ARGS_((Display * display, Colormap colormap)); /* 69 */
- void (*tk_FreeCursor) _ANSI_ARGS_((Display * display, Tk_Cursor cursor)); /* 70 */
- void (*tk_FreeFont) _ANSI_ARGS_((Tk_Font f)); /* 71 */
- void (*tk_FreeGC) _ANSI_ARGS_((Display * display, GC gc)); /* 72 */
- void (*tk_FreeImage) _ANSI_ARGS_((Tk_Image image)); /* 73 */
- void (*tk_FreeOptions) _ANSI_ARGS_((Tk_ConfigSpec * specs, char * widgRec, Display * display, int needFlags)); /* 74 */
- void (*tk_FreePixmap) _ANSI_ARGS_((Display * display, Pixmap pixmap)); /* 75 */
- void (*tk_FreeTextLayout) _ANSI_ARGS_((Tk_TextLayout textLayout)); /* 76 */
- void (*tk_FreeXId) _ANSI_ARGS_((Display * display, XID xid)); /* 77 */
- GC (*tk_GCForColor) _ANSI_ARGS_((XColor * colorPtr, Drawable drawable)); /* 78 */
- void (*tk_GeometryRequest) _ANSI_ARGS_((Tk_Window tkwin, int reqWidth, int reqHeight)); /* 79 */
- Tk_3DBorder (*tk_Get3DBorder) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_Uid colorName)); /* 80 */
- void (*tk_GetAllBindings) _ANSI_ARGS_((Tcl_Interp * interp, Tk_BindingTable bindingTable, ClientData object)); /* 81 */
- int (*tk_GetAnchor) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, Tk_Anchor * anchorPtr)); /* 82 */
- CONST84_RETURN char * (*tk_GetAtomName) _ANSI_ARGS_((Tk_Window tkwin, Atom atom)); /* 83 */
- CONST84_RETURN char * (*tk_GetBinding) _ANSI_ARGS_((Tcl_Interp * interp, Tk_BindingTable bindingTable, ClientData object, CONST char * eventStr)); /* 84 */
- Pixmap (*tk_GetBitmap) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * str)); /* 85 */
- Pixmap (*tk_GetBitmapFromData) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * source, int width, int height)); /* 86 */
- int (*tk_GetCapStyle) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int * capPtr)); /* 87 */
- XColor * (*tk_GetColor) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_Uid name)); /* 88 */
- XColor * (*tk_GetColorByValue) _ANSI_ARGS_((Tk_Window tkwin, XColor * colorPtr)); /* 89 */
- Colormap (*tk_GetColormap) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * str)); /* 90 */
- Tk_Cursor (*tk_GetCursor) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_Uid str)); /* 91 */
- Tk_Cursor (*tk_GetCursorFromData) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * source, CONST char * mask, int width, int height, int xHot, int yHot, Tk_Uid fg, Tk_Uid bg)); /* 92 */
- Tk_Font (*tk_GetFont) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * str)); /* 93 */
- Tk_Font (*tk_GetFontFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 94 */
- void (*tk_GetFontMetrics) _ANSI_ARGS_((Tk_Font font, Tk_FontMetrics * fmPtr)); /* 95 */
- GC (*tk_GetGC) _ANSI_ARGS_((Tk_Window tkwin, unsigned long valueMask, XGCValues * valuePtr)); /* 96 */
- Tk_Image (*tk_GetImage) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * name, Tk_ImageChangedProc * changeProc, ClientData clientData)); /* 97 */
- ClientData (*tk_GetImageMasterData) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tk_ImageType ** typePtrPtr)); /* 98 */
- Tk_ItemType * (*tk_GetItemTypes) _ANSI_ARGS_((void)); /* 99 */
- int (*tk_GetJoinStyle) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int * joinPtr)); /* 100 */
- int (*tk_GetJustify) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, Tk_Justify * justifyPtr)); /* 101 */
- int (*tk_GetNumMainWindows) _ANSI_ARGS_((void)); /* 102 */
- Tk_Uid (*tk_GetOption) _ANSI_ARGS_((Tk_Window tkwin, CONST char * name, CONST char * className)); /* 103 */
- int (*tk_GetPixels) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * str, int * intPtr)); /* 104 */
- Pixmap (*tk_GetPixmap) _ANSI_ARGS_((Display * display, Drawable d, int width, int height, int depth)); /* 105 */
- int (*tk_GetRelief) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, int * reliefPtr)); /* 106 */
- void (*tk_GetRootCoords) _ANSI_ARGS_((Tk_Window tkwin, int * xPtr, int * yPtr)); /* 107 */
- int (*tk_GetScrollInfo) _ANSI_ARGS_((Tcl_Interp * interp, int argc, CONST84 Tcl_Obj *CONST *objv, double * dblPtr, int * intPtr)); /* 108 */
- int (*tk_GetScreenMM) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * str, double * doublePtr)); /* 109 */
- int (*tk_GetSelection) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Atom selection, Atom target, Tk_GetSelProc * proc, ClientData clientData)); /* 110 */
- Tk_Uid (*tk_GetUid) _ANSI_ARGS_((CONST char * str)); /* 111 */
- Visual * (*tk_GetVisual) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * str, int * depthPtr, Colormap * colormapPtr)); /* 112 */
- void (*tk_GetVRootGeometry) _ANSI_ARGS_((Tk_Window tkwin, int * xPtr, int * yPtr, int * widthPtr, int * heightPtr)); /* 113 */
- int (*tk_Grab) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, int grabGlobal)); /* 114 */
- void (*tk_HandleEvent) _ANSI_ARGS_((XEvent * eventPtr)); /* 115 */
- Tk_Window (*tk_IdToWindow) _ANSI_ARGS_((Display * display, Window window)); /* 116 */
- void (*tk_ImageChanged) _ANSI_ARGS_((Tk_ImageMaster master, int x, int y, int width, int height, int imageWidth, int imageHeight)); /* 117 */
- int (*tk_Init) _ANSI_ARGS_((Tcl_Interp * interp)); /* 118 */
- Atom (*tk_InternAtom) _ANSI_ARGS_((Tk_Window tkwin, CONST char * name)); /* 119 */
- int (*tk_IntersectTextLayout) _ANSI_ARGS_((Tk_TextLayout layout, int x, int y, int width, int height)); /* 120 */
- void (*tk_MaintainGeometry) _ANSI_ARGS_((Tk_Window slave, Tk_Window master, int x, int y, int width, int height)); /* 121 */
- Tk_Window (*tk_MainWindow) _ANSI_ARGS_((Tcl_Interp * interp)); /* 122 */
- void (*tk_MakeWindowExist) _ANSI_ARGS_((Tk_Window tkwin)); /* 123 */
- void (*tk_ManageGeometry) _ANSI_ARGS_((Tk_Window tkwin, Tk_GeomMgr * mgrPtr, ClientData clientData)); /* 124 */
- void (*tk_MapWindow) _ANSI_ARGS_((Tk_Window tkwin)); /* 125 */
- int (*tk_MeasureChars) _ANSI_ARGS_((Tk_Font tkfont, CONST char * source, int numBytes, int maxPixels, int flags, int * lengthPtr)); /* 126 */
- void (*tk_MoveResizeWindow) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int width, int height)); /* 127 */
- void (*tk_MoveWindow) _ANSI_ARGS_((Tk_Window tkwin, int x, int y)); /* 128 */
- void (*tk_MoveToplevelWindow) _ANSI_ARGS_((Tk_Window tkwin, int x, int y)); /* 129 */
- CONST84_RETURN char * (*tk_NameOf3DBorder) _ANSI_ARGS_((Tk_3DBorder border)); /* 130 */
- CONST84_RETURN char * (*tk_NameOfAnchor) _ANSI_ARGS_((Tk_Anchor anchor)); /* 131 */
- CONST84_RETURN char * (*tk_NameOfBitmap) _ANSI_ARGS_((Display * display, Pixmap bitmap)); /* 132 */
- CONST84_RETURN char * (*tk_NameOfCapStyle) _ANSI_ARGS_((int cap)); /* 133 */
- CONST84_RETURN char * (*tk_NameOfColor) _ANSI_ARGS_((XColor * colorPtr)); /* 134 */
- CONST84_RETURN char * (*tk_NameOfCursor) _ANSI_ARGS_((Display * display, Tk_Cursor cursor)); /* 135 */
- CONST84_RETURN char * (*tk_NameOfFont) _ANSI_ARGS_((Tk_Font font)); /* 136 */
- CONST84_RETURN char * (*tk_NameOfImage) _ANSI_ARGS_((Tk_ImageMaster imageMaster)); /* 137 */
- CONST84_RETURN char * (*tk_NameOfJoinStyle) _ANSI_ARGS_((int join)); /* 138 */
- CONST84_RETURN char * (*tk_NameOfJustify) _ANSI_ARGS_((Tk_Justify justify)); /* 139 */
- CONST84_RETURN char * (*tk_NameOfRelief) _ANSI_ARGS_((int relief)); /* 140 */
- Tk_Window (*tk_NameToWindow) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * pathName, Tk_Window tkwin)); /* 141 */
- void (*tk_OwnSelection) _ANSI_ARGS_((Tk_Window tkwin, Atom selection, Tk_LostSelProc * proc, ClientData clientData)); /* 142 */
- int (*tk_ParseArgv) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, int * argcPtr, CONST84 Tcl_Obj *CONST *objv, Tk_ArgvInfo * argTable, int flags)); /* 143 */
- void (*tk_PhotoPutBlock_NoComposite) _ANSI_ARGS_((Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height)); /* 144 */
- void (*tk_PhotoPutZoomedBlock_NoComposite) _ANSI_ARGS_((Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height, int zoomX, int zoomY, int subsampleX, int subsampleY)); /* 145 */
- int (*tk_PhotoGetImage) _ANSI_ARGS_((Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr)); /* 146 */
- void (*tk_PhotoBlank) _ANSI_ARGS_((Tk_PhotoHandle handle)); /* 147 */
- void (*tk_PhotoExpand) _ANSI_ARGS_((Tk_PhotoHandle handle, int width, int height)); /* 148 */
- void (*tk_PhotoGetSize) _ANSI_ARGS_((Tk_PhotoHandle handle, int * widthPtr, int * heightPtr)); /* 149 */
- void (*tk_PhotoSetSize) _ANSI_ARGS_((Tk_PhotoHandle handle, int width, int height)); /* 150 */
- int (*tk_PointToChar) _ANSI_ARGS_((Tk_TextLayout layout, int x, int y)); /* 151 */
- int (*tk_PostscriptFontName) _ANSI_ARGS_((Tk_Font tkfont, Tcl_DString * dsPtr)); /* 152 */
- void (*tk_PreserveColormap) _ANSI_ARGS_((Display * display, Colormap colormap)); /* 153 */
- void (*tk_QueueWindowEvent) _ANSI_ARGS_((XEvent * eventPtr, Tcl_QueuePosition position)); /* 154 */
- void (*tk_RedrawImage) _ANSI_ARGS_((Tk_Image image, int imageX, int imageY, int width, int height, Drawable drawable, int drawableX, int drawableY)); /* 155 */
- void (*tk_ResizeWindow) _ANSI_ARGS_((Tk_Window tkwin, int width, int height)); /* 156 */
- int (*tk_RestackWindow) _ANSI_ARGS_((Tk_Window tkwin, int aboveBelow, Tk_Window other)); /* 157 */
- Tk_RestrictProc * (*tk_RestrictEvents) _ANSI_ARGS_((Tk_RestrictProc * proc, ClientData arg, ClientData * prevArgPtr)); /* 158 */
- int (*tk_SafeInit) _ANSI_ARGS_((Tcl_Interp * interp)); /* 159 */
- CONST char * (*tk_SetAppName) _ANSI_ARGS_((Tk_Window tkwin, CONST char * name)); /* 160 */
- void (*tk_SetBackgroundFromBorder) _ANSI_ARGS_((Tk_Window tkwin, Tk_3DBorder border)); /* 161 */
- void (*tk_SetClass) _ANSI_ARGS_((Tk_Window tkwin, CONST char * className)); /* 162 */
- void (*tk_SetGrid) _ANSI_ARGS_((Tk_Window tkwin, int reqWidth, int reqHeight, int gridWidth, int gridHeight)); /* 163 */
- void (*tk_SetInternalBorder) _ANSI_ARGS_((Tk_Window tkwin, int width)); /* 164 */
- void (*tk_SetWindowBackground) _ANSI_ARGS_((Tk_Window tkwin, unsigned long pixel)); /* 165 */
- void (*tk_SetWindowBackgroundPixmap) _ANSI_ARGS_((Tk_Window tkwin, Pixmap pixmap)); /* 166 */
- void (*tk_SetWindowBorder) _ANSI_ARGS_((Tk_Window tkwin, unsigned long pixel)); /* 167 */
- void (*tk_SetWindowBorderWidth) _ANSI_ARGS_((Tk_Window tkwin, int width)); /* 168 */
- void (*tk_SetWindowBorderPixmap) _ANSI_ARGS_((Tk_Window tkwin, Pixmap pixmap)); /* 169 */
- void (*tk_SetWindowColormap) _ANSI_ARGS_((Tk_Window tkwin, Colormap colormap)); /* 170 */
- int (*tk_SetWindowVisual) _ANSI_ARGS_((Tk_Window tkwin, Visual * visual, int depth, Colormap colormap)); /* 171 */
- void (*tk_SizeOfBitmap) _ANSI_ARGS_((Display * display, Pixmap bitmap, int * widthPtr, int * heightPtr)); /* 172 */
- void (*tk_SizeOfImage) _ANSI_ARGS_((Tk_Image image, int * widthPtr, int * heightPtr)); /* 173 */
- int (*tk_StrictMotif) _ANSI_ARGS_((Tk_Window tkwin)); /* 174 */
- void (*tk_TextLayoutToPostscript) _ANSI_ARGS_((Tcl_Interp * interp, Tk_TextLayout layout)); /* 175 */
- int (*tk_TextWidth) _ANSI_ARGS_((Tk_Font font, CONST char * str, int numBytes)); /* 176 */
- void (*tk_UndefineCursor) _ANSI_ARGS_((Tk_Window window)); /* 177 */
- void (*tk_UnderlineChars) _ANSI_ARGS_((Display * display, Drawable drawable, GC gc, Tk_Font tkfont, CONST char * source, int x, int y, int firstByte, int lastByte)); /* 178 */
- void (*tk_UnderlineTextLayout) _ANSI_ARGS_((Display * display, Drawable drawable, GC gc, Tk_TextLayout layout, int x, int y, int underline)); /* 179 */
- void (*tk_Ungrab) _ANSI_ARGS_((Tk_Window tkwin)); /* 180 */
- void (*tk_UnmaintainGeometry) _ANSI_ARGS_((Tk_Window slave, Tk_Window master)); /* 181 */
- void (*tk_UnmapWindow) _ANSI_ARGS_((Tk_Window tkwin)); /* 182 */
- void (*tk_UnsetGrid) _ANSI_ARGS_((Tk_Window tkwin)); /* 183 */
- void (*tk_UpdatePointer) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int state)); /* 184 */
- Pixmap (*tk_AllocBitmapFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr)); /* 185 */
- Tk_3DBorder (*tk_Alloc3DBorderFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr)); /* 186 */
- XColor * (*tk_AllocColorFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr)); /* 187 */
- Tk_Cursor (*tk_AllocCursorFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr)); /* 188 */
- Tk_Font (*tk_AllocFontFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr)); /* 189 */
- Tk_OptionTable (*tk_CreateOptionTable) _ANSI_ARGS_((Tcl_Interp * interp, CONST Tk_OptionSpec * templatePtr)); /* 190 */
- void (*tk_DeleteOptionTable) _ANSI_ARGS_((Tk_OptionTable optionTable)); /* 191 */
- void (*tk_Free3DBorderFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 192 */
- void (*tk_FreeBitmapFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 193 */
- void (*tk_FreeColorFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 194 */
- void (*tk_FreeConfigOptions) _ANSI_ARGS_((char * recordPtr, Tk_OptionTable optionToken, Tk_Window tkwin)); /* 195 */
- void (*tk_FreeSavedOptions) _ANSI_ARGS_((Tk_SavedOptions * savePtr)); /* 196 */
- void (*tk_FreeCursorFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 197 */
- void (*tk_FreeFontFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 198 */
- Tk_3DBorder (*tk_Get3DBorderFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 199 */
- int (*tk_GetAnchorFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, Tk_Anchor * anchorPtr)); /* 200 */
- Pixmap (*tk_GetBitmapFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 201 */
- XColor * (*tk_GetColorFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 202 */
- Tk_Cursor (*tk_GetCursorFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 203 */
- Tcl_Obj * (*tk_GetOptionInfo) _ANSI_ARGS_((Tcl_Interp * interp, char * recordPtr, Tk_OptionTable optionTable, Tcl_Obj * namePtr, Tk_Window tkwin)); /* 204 */
- Tcl_Obj * (*tk_GetOptionValue) _ANSI_ARGS_((Tcl_Interp * interp, char * recordPtr, Tk_OptionTable optionTable, Tcl_Obj * namePtr, Tk_Window tkwin)); /* 205 */
- int (*tk_GetJustifyFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, Tk_Justify * justifyPtr)); /* 206 */
- int (*tk_GetMMFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr, double * doublePtr)); /* 207 */
- int (*tk_GetPixelsFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr, int * intPtr)); /* 208 */
- int (*tk_GetReliefFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int * resultPtr)); /* 209 */
- int (*tk_GetScrollInfoObj) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], double * dblPtr, int * intPtr)); /* 210 */
- int (*tk_InitOptions) _ANSI_ARGS_((Tcl_Interp * interp, char * recordPtr, Tk_OptionTable optionToken, Tk_Window tkwin)); /* 211 */
- void (*tk_MainEx) _ANSI_ARGS_((int argc, Tcl_Obj *CONST *objv, Tcl_AppInitProc * appInitProc, Tcl_Interp * interp)); /* 212 */
- void (*tk_RestoreSavedOptions) _ANSI_ARGS_((Tk_SavedOptions * savePtr)); /* 213 */
- int (*tk_SetOptions) _ANSI_ARGS_((Tcl_Interp * interp, char * recordPtr, Tk_OptionTable optionTable, int objc, Tcl_Obj *CONST objv[], Tk_Window tkwin, Tk_SavedOptions * savePtr, int * maskPtr)); /* 214 */
- void (*tk_InitConsoleChannels) _ANSI_ARGS_((Tcl_Interp * interp)); /* 215 */
- int (*tk_CreateConsoleWindow) _ANSI_ARGS_((Tcl_Interp * interp)); /* 216 */
- void (*tk_CreateSmoothMethod) _ANSI_ARGS_((Tcl_Interp * interp, Tk_SmoothMethod * method)); /* 217 */
- void *reserved218;
- void *reserved219;
- int (*tk_GetDash) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * value, Tk_Dash * dash)); /* 220 */
- void (*tk_CreateOutline) _ANSI_ARGS_((Tk_Outline * outline)); /* 221 */
- void (*tk_DeleteOutline) _ANSI_ARGS_((Display * display, Tk_Outline * outline)); /* 222 */
- int (*tk_ConfigOutlineGC) _ANSI_ARGS_((XGCValues * gcValues, Tk_Canvas canvas, Tk_Item * item, Tk_Outline * outline)); /* 223 */
- int (*tk_ChangeOutlineGC) _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item * item, Tk_Outline * outline)); /* 224 */
- int (*tk_ResetOutlineGC) _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item * item, Tk_Outline * outline)); /* 225 */
- int (*tk_CanvasPsOutline) _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item * item, Tk_Outline * outline)); /* 226 */
- void (*tk_SetTSOrigin) _ANSI_ARGS_((Tk_Window tkwin, GC gc, int x, int y)); /* 227 */
- int (*tk_CanvasGetCoordFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, Tcl_Obj * obj, double * doublePtr)); /* 228 */
- void (*tk_CanvasSetOffset) _ANSI_ARGS_((Tk_Canvas canvas, GC gc, Tk_TSOffset * offset)); /* 229 */
- void (*tk_DitherPhoto) _ANSI_ARGS_((Tk_PhotoHandle handle, int x, int y, int width, int height)); /* 230 */
- int (*tk_PostscriptBitmap) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_PostscriptInfo psInfo, Pixmap bitmap, int startX, int startY, int width, int height)); /* 231 */
- int (*tk_PostscriptColor) _ANSI_ARGS_((Tcl_Interp * interp, Tk_PostscriptInfo psInfo, XColor * colorPtr)); /* 232 */
- int (*tk_PostscriptFont) _ANSI_ARGS_((Tcl_Interp * interp, Tk_PostscriptInfo psInfo, Tk_Font font)); /* 233 */
- int (*tk_PostscriptImage) _ANSI_ARGS_((Tk_Image image, Tcl_Interp * interp, Tk_Window tkwin, Tk_PostscriptInfo psinfo, int x, int y, int width, int height, int prepass)); /* 234 */
- void (*tk_PostscriptPath) _ANSI_ARGS_((Tcl_Interp * interp, Tk_PostscriptInfo psInfo, double * coordPtr, int numPoints)); /* 235 */
- int (*tk_PostscriptStipple) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_PostscriptInfo psInfo, Pixmap bitmap)); /* 236 */
- double (*tk_PostscriptY) _ANSI_ARGS_((double y, Tk_PostscriptInfo psInfo)); /* 237 */
- int (*tk_PostscriptPhoto) _ANSI_ARGS_((Tcl_Interp * interp, Tk_PhotoImageBlock * blockPtr, Tk_PostscriptInfo psInfo, int width, int height)); /* 238 */
- void (*tk_CreateClientMessageHandler) _ANSI_ARGS_((Tk_ClientMessageProc * proc)); /* 239 */
- void (*tk_DeleteClientMessageHandler) _ANSI_ARGS_((Tk_ClientMessageProc * proc)); /* 240 */
- Tk_Window (*tk_CreateAnonymousWindow) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window parent, CONST char * screenName)); /* 241 */
- void (*tk_SetClassProcs) _ANSI_ARGS_((Tk_Window tkwin, Tk_ClassProcs * procs, ClientData instanceData)); /* 242 */
- void (*tk_SetInternalBorderEx) _ANSI_ARGS_((Tk_Window tkwin, int left, int right, int top, int bottom)); /* 243 */
- void (*tk_SetMinimumRequestSize) _ANSI_ARGS_((Tk_Window tkwin, int minWidth, int minHeight)); /* 244 */
- void (*tk_SetCaretPos) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int height)); /* 245 */
- void (*tk_PhotoPutBlock) _ANSI_ARGS_((Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height, int compRule)); /* 246 */
- void (*tk_PhotoPutZoomedBlock) _ANSI_ARGS_((Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height, int zoomX, int zoomY, int subsampleX, int subsampleY, int compRule)); /* 247 */
- int (*tk_CollapseMotionEvents) _ANSI_ARGS_((Display * display, int collapse)); /* 248 */
- Tk_StyleEngine (*tk_RegisterStyleEngine) _ANSI_ARGS_((CONST char * name, Tk_StyleEngine parent)); /* 249 */
- Tk_StyleEngine (*tk_GetStyleEngine) _ANSI_ARGS_((CONST char * name)); /* 250 */
- int (*tk_RegisterStyledElement) _ANSI_ARGS_((Tk_StyleEngine engine, Tk_ElementSpec * templatePtr)); /* 251 */
- int (*tk_GetElementId) _ANSI_ARGS_((CONST char * name)); /* 252 */
- Tk_Style (*tk_CreateStyle) _ANSI_ARGS_((CONST char * name, Tk_StyleEngine engine, ClientData clientData)); /* 253 */
- Tk_Style (*tk_GetStyle) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name)); /* 254 */
- void (*tk_FreeStyle) _ANSI_ARGS_((Tk_Style style)); /* 255 */
- CONST char * (*tk_NameOfStyle) _ANSI_ARGS_((Tk_Style style)); /* 256 */
- Tk_Style (*tk_AllocStyleFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr)); /* 257 */
- Tk_Style (*tk_GetStyleFromObj) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 258 */
- void (*tk_FreeStyleFromObj) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 259 */
- Tk_StyledElement (*tk_GetStyledElement) _ANSI_ARGS_((Tk_Style style, int elementId, Tk_OptionTable optionTable)); /* 260 */
- void (*tk_GetElementSize) _ANSI_ARGS_((Tk_Style style, Tk_StyledElement element, char * recordPtr, Tk_Window tkwin, int width, int height, int inner, int * widthPtr, int * heightPtr)); /* 261 */
- void (*tk_GetElementBox) _ANSI_ARGS_((Tk_Style style, Tk_StyledElement element, char * recordPtr, Tk_Window tkwin, int x, int y, int width, int height, int inner, int * xPtr, int * yPtr, int * widthPtr, int * heightPtr)); /* 262 */
- int (*tk_GetElementBorderWidth) _ANSI_ARGS_((Tk_Style style, Tk_StyledElement element, char * recordPtr, Tk_Window tkwin)); /* 263 */
- void (*tk_DrawElement) _ANSI_ARGS_((Tk_Style style, Tk_StyledElement element, char * recordPtr, Tk_Window tkwin, Drawable d, int x, int y, int width, int height, int state)); /* 264 */
-} TkStubs;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern TkStubs *tkStubsPtr;
-#ifdef __cplusplus
-}
-#endif
-
-#if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS)
-
-/*
- * Inline function declarations:
- */
-
-#ifndef Tk_MainLoop
-#define Tk_MainLoop \
- (tkStubsPtr->tk_MainLoop) /* 0 */
-#endif
-#ifndef Tk_3DBorderColor
-#define Tk_3DBorderColor \
- (tkStubsPtr->tk_3DBorderColor) /* 1 */
-#endif
-#ifndef Tk_3DBorderGC
-#define Tk_3DBorderGC \
- (tkStubsPtr->tk_3DBorderGC) /* 2 */
-#endif
-#ifndef Tk_3DHorizontalBevel
-#define Tk_3DHorizontalBevel \
- (tkStubsPtr->tk_3DHorizontalBevel) /* 3 */
-#endif
-#ifndef Tk_3DVerticalBevel
-#define Tk_3DVerticalBevel \
- (tkStubsPtr->tk_3DVerticalBevel) /* 4 */
-#endif
-#ifndef Tk_AddOption
-#define Tk_AddOption \
- (tkStubsPtr->tk_AddOption) /* 5 */
-#endif
-#ifndef Tk_BindEvent
-#define Tk_BindEvent \
- (tkStubsPtr->tk_BindEvent) /* 6 */
-#endif
-#ifndef Tk_CanvasDrawableCoords
-#define Tk_CanvasDrawableCoords \
- (tkStubsPtr->tk_CanvasDrawableCoords) /* 7 */
-#endif
-#ifndef Tk_CanvasEventuallyRedraw
-#define Tk_CanvasEventuallyRedraw \
- (tkStubsPtr->tk_CanvasEventuallyRedraw) /* 8 */
-#endif
-#ifndef Tk_CanvasGetCoord
-#define Tk_CanvasGetCoord \
- (tkStubsPtr->tk_CanvasGetCoord) /* 9 */
-#endif
-#ifndef Tk_CanvasGetTextInfo
-#define Tk_CanvasGetTextInfo \
- (tkStubsPtr->tk_CanvasGetTextInfo) /* 10 */
-#endif
-#ifndef Tk_CanvasPsBitmap
-#define Tk_CanvasPsBitmap \
- (tkStubsPtr->tk_CanvasPsBitmap) /* 11 */
-#endif
-#ifndef Tk_CanvasPsColor
-#define Tk_CanvasPsColor \
- (tkStubsPtr->tk_CanvasPsColor) /* 12 */
-#endif
-#ifndef Tk_CanvasPsFont
-#define Tk_CanvasPsFont \
- (tkStubsPtr->tk_CanvasPsFont) /* 13 */
-#endif
-#ifndef Tk_CanvasPsPath
-#define Tk_CanvasPsPath \
- (tkStubsPtr->tk_CanvasPsPath) /* 14 */
-#endif
-#ifndef Tk_CanvasPsStipple
-#define Tk_CanvasPsStipple \
- (tkStubsPtr->tk_CanvasPsStipple) /* 15 */
-#endif
-#ifndef Tk_CanvasPsY
-#define Tk_CanvasPsY \
- (tkStubsPtr->tk_CanvasPsY) /* 16 */
-#endif
-#ifndef Tk_CanvasSetStippleOrigin
-#define Tk_CanvasSetStippleOrigin \
- (tkStubsPtr->tk_CanvasSetStippleOrigin) /* 17 */
-#endif
-#ifndef Tk_CanvasTagsParseProc
-#define Tk_CanvasTagsParseProc \
- (tkStubsPtr->tk_CanvasTagsParseProc) /* 18 */
-#endif
-#ifndef Tk_CanvasTagsPrintProc
-#define Tk_CanvasTagsPrintProc \
- (tkStubsPtr->tk_CanvasTagsPrintProc) /* 19 */
-#endif
-#ifndef Tk_CanvasTkwin
-#define Tk_CanvasTkwin \
- (tkStubsPtr->tk_CanvasTkwin) /* 20 */
-#endif
-#ifndef Tk_CanvasWindowCoords
-#define Tk_CanvasWindowCoords \
- (tkStubsPtr->tk_CanvasWindowCoords) /* 21 */
-#endif
-#ifndef Tk_ChangeWindowAttributes
-#define Tk_ChangeWindowAttributes \
- (tkStubsPtr->tk_ChangeWindowAttributes) /* 22 */
-#endif
-#ifndef Tk_CharBbox
-#define Tk_CharBbox \
- (tkStubsPtr->tk_CharBbox) /* 23 */
-#endif
-#ifndef Tk_ClearSelection
-#define Tk_ClearSelection \
- (tkStubsPtr->tk_ClearSelection) /* 24 */
-#endif
-#ifndef Tk_ClipboardAppend
-#define Tk_ClipboardAppend \
- (tkStubsPtr->tk_ClipboardAppend) /* 25 */
-#endif
-#ifndef Tk_ClipboardClear
-#define Tk_ClipboardClear \
- (tkStubsPtr->tk_ClipboardClear) /* 26 */
-#endif
-#ifndef Tk_ConfigureInfo
-#define Tk_ConfigureInfo \
- (tkStubsPtr->tk_ConfigureInfo) /* 27 */
-#endif
-#ifndef Tk_ConfigureValue
-#define Tk_ConfigureValue \
- (tkStubsPtr->tk_ConfigureValue) /* 28 */
-#endif
-#ifndef Tk_ConfigureWidget
-#define Tk_ConfigureWidget \
- (tkStubsPtr->tk_ConfigureWidget) /* 29 */
-#endif
-#ifndef Tk_ConfigureWindow
-#define Tk_ConfigureWindow \
- (tkStubsPtr->tk_ConfigureWindow) /* 30 */
-#endif
-#ifndef Tk_ComputeTextLayout
-#define Tk_ComputeTextLayout \
- (tkStubsPtr->tk_ComputeTextLayout) /* 31 */
-#endif
-#ifndef Tk_CoordsToWindow
-#define Tk_CoordsToWindow \
- (tkStubsPtr->tk_CoordsToWindow) /* 32 */
-#endif
-#ifndef Tk_CreateBinding
-#define Tk_CreateBinding \
- (tkStubsPtr->tk_CreateBinding) /* 33 */
-#endif
-#ifndef Tk_CreateBindingTable
-#define Tk_CreateBindingTable \
- (tkStubsPtr->tk_CreateBindingTable) /* 34 */
-#endif
-#ifndef Tk_CreateErrorHandler
-#define Tk_CreateErrorHandler \
- (tkStubsPtr->tk_CreateErrorHandler) /* 35 */
-#endif
-#ifndef Tk_CreateEventHandler
-#define Tk_CreateEventHandler \
- (tkStubsPtr->tk_CreateEventHandler) /* 36 */
-#endif
-#ifndef Tk_CreateGenericHandler
-#define Tk_CreateGenericHandler \
- (tkStubsPtr->tk_CreateGenericHandler) /* 37 */
-#endif
-#ifndef Tk_CreateImageType
-#define Tk_CreateImageType \
- (tkStubsPtr->tk_CreateImageType) /* 38 */
-#endif
-#ifndef Tk_CreateItemType
-#define Tk_CreateItemType \
- (tkStubsPtr->tk_CreateItemType) /* 39 */
-#endif
-#ifndef Tk_CreatePhotoImageFormat
-#define Tk_CreatePhotoImageFormat \
- (tkStubsPtr->tk_CreatePhotoImageFormat) /* 40 */
-#endif
-#ifndef Tk_CreateSelHandler
-#define Tk_CreateSelHandler \
- (tkStubsPtr->tk_CreateSelHandler) /* 41 */
-#endif
-#ifndef Tk_CreateWindow
-#define Tk_CreateWindow \
- (tkStubsPtr->tk_CreateWindow) /* 42 */
-#endif
-#ifndef Tk_CreateWindowFromPath
-#define Tk_CreateWindowFromPath \
- (tkStubsPtr->tk_CreateWindowFromPath) /* 43 */
-#endif
-#ifndef Tk_DefineBitmap
-#define Tk_DefineBitmap \
- (tkStubsPtr->tk_DefineBitmap) /* 44 */
-#endif
-#ifndef Tk_DefineCursor
-#define Tk_DefineCursor \
- (tkStubsPtr->tk_DefineCursor) /* 45 */
-#endif
-#ifndef Tk_DeleteAllBindings
-#define Tk_DeleteAllBindings \
- (tkStubsPtr->tk_DeleteAllBindings) /* 46 */
-#endif
-#ifndef Tk_DeleteBinding
-#define Tk_DeleteBinding \
- (tkStubsPtr->tk_DeleteBinding) /* 47 */
-#endif
-#ifndef Tk_DeleteBindingTable
-#define Tk_DeleteBindingTable \
- (tkStubsPtr->tk_DeleteBindingTable) /* 48 */
-#endif
-#ifndef Tk_DeleteErrorHandler
-#define Tk_DeleteErrorHandler \
- (tkStubsPtr->tk_DeleteErrorHandler) /* 49 */
-#endif
-#ifndef Tk_DeleteEventHandler
-#define Tk_DeleteEventHandler \
- (tkStubsPtr->tk_DeleteEventHandler) /* 50 */
-#endif
-#ifndef Tk_DeleteGenericHandler
-#define Tk_DeleteGenericHandler \
- (tkStubsPtr->tk_DeleteGenericHandler) /* 51 */
-#endif
-#ifndef Tk_DeleteImage
-#define Tk_DeleteImage \
- (tkStubsPtr->tk_DeleteImage) /* 52 */
-#endif
-#ifndef Tk_DeleteSelHandler
-#define Tk_DeleteSelHandler \
- (tkStubsPtr->tk_DeleteSelHandler) /* 53 */
-#endif
-#ifndef Tk_DestroyWindow
-#define Tk_DestroyWindow \
- (tkStubsPtr->tk_DestroyWindow) /* 54 */
-#endif
-#ifndef Tk_DisplayName
-#define Tk_DisplayName \
- (tkStubsPtr->tk_DisplayName) /* 55 */
-#endif
-#ifndef Tk_DistanceToTextLayout
-#define Tk_DistanceToTextLayout \
- (tkStubsPtr->tk_DistanceToTextLayout) /* 56 */
-#endif
-#ifndef Tk_Draw3DPolygon
-#define Tk_Draw3DPolygon \
- (tkStubsPtr->tk_Draw3DPolygon) /* 57 */
-#endif
-#ifndef Tk_Draw3DRectangle
-#define Tk_Draw3DRectangle \
- (tkStubsPtr->tk_Draw3DRectangle) /* 58 */
-#endif
-#ifndef Tk_DrawChars
-#define Tk_DrawChars \
- (tkStubsPtr->tk_DrawChars) /* 59 */
-#endif
-#ifndef Tk_DrawFocusHighlight
-#define Tk_DrawFocusHighlight \
- (tkStubsPtr->tk_DrawFocusHighlight) /* 60 */
-#endif
-#ifndef Tk_DrawTextLayout
-#define Tk_DrawTextLayout \
- (tkStubsPtr->tk_DrawTextLayout) /* 61 */
-#endif
-#ifndef Tk_Fill3DPolygon
-#define Tk_Fill3DPolygon \
- (tkStubsPtr->tk_Fill3DPolygon) /* 62 */
-#endif
-#ifndef Tk_Fill3DRectangle
-#define Tk_Fill3DRectangle \
- (tkStubsPtr->tk_Fill3DRectangle) /* 63 */
-#endif
-#ifndef Tk_FindPhoto
-#define Tk_FindPhoto \
- (tkStubsPtr->tk_FindPhoto) /* 64 */
-#endif
-#ifndef Tk_FontId
-#define Tk_FontId \
- (tkStubsPtr->tk_FontId) /* 65 */
-#endif
-#ifndef Tk_Free3DBorder
-#define Tk_Free3DBorder \
- (tkStubsPtr->tk_Free3DBorder) /* 66 */
-#endif
-#ifndef Tk_FreeBitmap
-#define Tk_FreeBitmap \
- (tkStubsPtr->tk_FreeBitmap) /* 67 */
-#endif
-#ifndef Tk_FreeColor
-#define Tk_FreeColor \
- (tkStubsPtr->tk_FreeColor) /* 68 */
-#endif
-#ifndef Tk_FreeColormap
-#define Tk_FreeColormap \
- (tkStubsPtr->tk_FreeColormap) /* 69 */
-#endif
-#ifndef Tk_FreeCursor
-#define Tk_FreeCursor \
- (tkStubsPtr->tk_FreeCursor) /* 70 */
-#endif
-#ifndef Tk_FreeFont
-#define Tk_FreeFont \
- (tkStubsPtr->tk_FreeFont) /* 71 */
-#endif
-#ifndef Tk_FreeGC
-#define Tk_FreeGC \
- (tkStubsPtr->tk_FreeGC) /* 72 */
-#endif
-#ifndef Tk_FreeImage
-#define Tk_FreeImage \
- (tkStubsPtr->tk_FreeImage) /* 73 */
-#endif
-#ifndef Tk_FreeOptions
-#define Tk_FreeOptions \
- (tkStubsPtr->tk_FreeOptions) /* 74 */
-#endif
-#ifndef Tk_FreePixmap
-#define Tk_FreePixmap \
- (tkStubsPtr->tk_FreePixmap) /* 75 */
-#endif
-#ifndef Tk_FreeTextLayout
-#define Tk_FreeTextLayout \
- (tkStubsPtr->tk_FreeTextLayout) /* 76 */
-#endif
-#ifndef Tk_FreeXId
-#define Tk_FreeXId \
- (tkStubsPtr->tk_FreeXId) /* 77 */
-#endif
-#ifndef Tk_GCForColor
-#define Tk_GCForColor \
- (tkStubsPtr->tk_GCForColor) /* 78 */
-#endif
-#ifndef Tk_GeometryRequest
-#define Tk_GeometryRequest \
- (tkStubsPtr->tk_GeometryRequest) /* 79 */
-#endif
-#ifndef Tk_Get3DBorder
-#define Tk_Get3DBorder \
- (tkStubsPtr->tk_Get3DBorder) /* 80 */
-#endif
-#ifndef Tk_GetAllBindings
-#define Tk_GetAllBindings \
- (tkStubsPtr->tk_GetAllBindings) /* 81 */
-#endif
-#ifndef Tk_GetAnchor
-#define Tk_GetAnchor \
- (tkStubsPtr->tk_GetAnchor) /* 82 */
-#endif
-#ifndef Tk_GetAtomName
-#define Tk_GetAtomName \
- (tkStubsPtr->tk_GetAtomName) /* 83 */
-#endif
-#ifndef Tk_GetBinding
-#define Tk_GetBinding \
- (tkStubsPtr->tk_GetBinding) /* 84 */
-#endif
-#ifndef Tk_GetBitmap
-#define Tk_GetBitmap \
- (tkStubsPtr->tk_GetBitmap) /* 85 */
-#endif
-#ifndef Tk_GetBitmapFromData
-#define Tk_GetBitmapFromData \
- (tkStubsPtr->tk_GetBitmapFromData) /* 86 */
-#endif
-#ifndef Tk_GetCapStyle
-#define Tk_GetCapStyle \
- (tkStubsPtr->tk_GetCapStyle) /* 87 */
-#endif
-#ifndef Tk_GetColor
-#define Tk_GetColor \
- (tkStubsPtr->tk_GetColor) /* 88 */
-#endif
-#ifndef Tk_GetColorByValue
-#define Tk_GetColorByValue \
- (tkStubsPtr->tk_GetColorByValue) /* 89 */
-#endif
-#ifndef Tk_GetColormap
-#define Tk_GetColormap \
- (tkStubsPtr->tk_GetColormap) /* 90 */
-#endif
-#ifndef Tk_GetCursor
-#define Tk_GetCursor \
- (tkStubsPtr->tk_GetCursor) /* 91 */
-#endif
-#ifndef Tk_GetCursorFromData
-#define Tk_GetCursorFromData \
- (tkStubsPtr->tk_GetCursorFromData) /* 92 */
-#endif
-#ifndef Tk_GetFont
-#define Tk_GetFont \
- (tkStubsPtr->tk_GetFont) /* 93 */
-#endif
-#ifndef Tk_GetFontFromObj
-#define Tk_GetFontFromObj \
- (tkStubsPtr->tk_GetFontFromObj) /* 94 */
-#endif
-#ifndef Tk_GetFontMetrics
-#define Tk_GetFontMetrics \
- (tkStubsPtr->tk_GetFontMetrics) /* 95 */
-#endif
-#ifndef Tk_GetGC
-#define Tk_GetGC \
- (tkStubsPtr->tk_GetGC) /* 96 */
-#endif
-#ifndef Tk_GetImage
-#define Tk_GetImage \
- (tkStubsPtr->tk_GetImage) /* 97 */
-#endif
-#ifndef Tk_GetImageMasterData
-#define Tk_GetImageMasterData \
- (tkStubsPtr->tk_GetImageMasterData) /* 98 */
-#endif
-#ifndef Tk_GetItemTypes
-#define Tk_GetItemTypes \
- (tkStubsPtr->tk_GetItemTypes) /* 99 */
-#endif
-#ifndef Tk_GetJoinStyle
-#define Tk_GetJoinStyle \
- (tkStubsPtr->tk_GetJoinStyle) /* 100 */
-#endif
-#ifndef Tk_GetJustify
-#define Tk_GetJustify \
- (tkStubsPtr->tk_GetJustify) /* 101 */
-#endif
-#ifndef Tk_GetNumMainWindows
-#define Tk_GetNumMainWindows \
- (tkStubsPtr->tk_GetNumMainWindows) /* 102 */
-#endif
-#ifndef Tk_GetOption
-#define Tk_GetOption \
- (tkStubsPtr->tk_GetOption) /* 103 */
-#endif
-#ifndef Tk_GetPixels
-#define Tk_GetPixels \
- (tkStubsPtr->tk_GetPixels) /* 104 */
-#endif
-#ifndef Tk_GetPixmap
-#define Tk_GetPixmap \
- (tkStubsPtr->tk_GetPixmap) /* 105 */
-#endif
-#ifndef Tk_GetRelief
-#define Tk_GetRelief \
- (tkStubsPtr->tk_GetRelief) /* 106 */
-#endif
-#ifndef Tk_GetRootCoords
-#define Tk_GetRootCoords \
- (tkStubsPtr->tk_GetRootCoords) /* 107 */
-#endif
-#ifndef Tk_GetScrollInfo
-#define Tk_GetScrollInfo \
- (tkStubsPtr->tk_GetScrollInfo) /* 108 */
-#endif
-#ifndef Tk_GetScreenMM
-#define Tk_GetScreenMM \
- (tkStubsPtr->tk_GetScreenMM) /* 109 */
-#endif
-#ifndef Tk_GetSelection
-#define Tk_GetSelection \
- (tkStubsPtr->tk_GetSelection) /* 110 */
-#endif
-#ifndef Tk_GetUid
-#define Tk_GetUid \
- (tkStubsPtr->tk_GetUid) /* 111 */
-#endif
-#ifndef Tk_GetVisual
-#define Tk_GetVisual \
- (tkStubsPtr->tk_GetVisual) /* 112 */
-#endif
-#ifndef Tk_GetVRootGeometry
-#define Tk_GetVRootGeometry \
- (tkStubsPtr->tk_GetVRootGeometry) /* 113 */
-#endif
-#ifndef Tk_Grab
-#define Tk_Grab \
- (tkStubsPtr->tk_Grab) /* 114 */
-#endif
-#ifndef Tk_HandleEvent
-#define Tk_HandleEvent \
- (tkStubsPtr->tk_HandleEvent) /* 115 */
-#endif
-#ifndef Tk_IdToWindow
-#define Tk_IdToWindow \
- (tkStubsPtr->tk_IdToWindow) /* 116 */
-#endif
-#ifndef Tk_ImageChanged
-#define Tk_ImageChanged \
- (tkStubsPtr->tk_ImageChanged) /* 117 */
-#endif
-#ifndef Tk_Init
-#define Tk_Init \
- (tkStubsPtr->tk_Init) /* 118 */
-#endif
-#ifndef Tk_InternAtom
-#define Tk_InternAtom \
- (tkStubsPtr->tk_InternAtom) /* 119 */
-#endif
-#ifndef Tk_IntersectTextLayout
-#define Tk_IntersectTextLayout \
- (tkStubsPtr->tk_IntersectTextLayout) /* 120 */
-#endif
-#ifndef Tk_MaintainGeometry
-#define Tk_MaintainGeometry \
- (tkStubsPtr->tk_MaintainGeometry) /* 121 */
-#endif
-#ifndef Tk_MainWindow
-#define Tk_MainWindow \
- (tkStubsPtr->tk_MainWindow) /* 122 */
-#endif
-#ifndef Tk_MakeWindowExist
-#define Tk_MakeWindowExist \
- (tkStubsPtr->tk_MakeWindowExist) /* 123 */
-#endif
-#ifndef Tk_ManageGeometry
-#define Tk_ManageGeometry \
- (tkStubsPtr->tk_ManageGeometry) /* 124 */
-#endif
-#ifndef Tk_MapWindow
-#define Tk_MapWindow \
- (tkStubsPtr->tk_MapWindow) /* 125 */
-#endif
-#ifndef Tk_MeasureChars
-#define Tk_MeasureChars \
- (tkStubsPtr->tk_MeasureChars) /* 126 */
-#endif
-#ifndef Tk_MoveResizeWindow
-#define Tk_MoveResizeWindow \
- (tkStubsPtr->tk_MoveResizeWindow) /* 127 */
-#endif
-#ifndef Tk_MoveWindow
-#define Tk_MoveWindow \
- (tkStubsPtr->tk_MoveWindow) /* 128 */
-#endif
-#ifndef Tk_MoveToplevelWindow
-#define Tk_MoveToplevelWindow \
- (tkStubsPtr->tk_MoveToplevelWindow) /* 129 */
-#endif
-#ifndef Tk_NameOf3DBorder
-#define Tk_NameOf3DBorder \
- (tkStubsPtr->tk_NameOf3DBorder) /* 130 */
-#endif
-#ifndef Tk_NameOfAnchor
-#define Tk_NameOfAnchor \
- (tkStubsPtr->tk_NameOfAnchor) /* 131 */
-#endif
-#ifndef Tk_NameOfBitmap
-#define Tk_NameOfBitmap \
- (tkStubsPtr->tk_NameOfBitmap) /* 132 */
-#endif
-#ifndef Tk_NameOfCapStyle
-#define Tk_NameOfCapStyle \
- (tkStubsPtr->tk_NameOfCapStyle) /* 133 */
-#endif
-#ifndef Tk_NameOfColor
-#define Tk_NameOfColor \
- (tkStubsPtr->tk_NameOfColor) /* 134 */
-#endif
-#ifndef Tk_NameOfCursor
-#define Tk_NameOfCursor \
- (tkStubsPtr->tk_NameOfCursor) /* 135 */
-#endif
-#ifndef Tk_NameOfFont
-#define Tk_NameOfFont \
- (tkStubsPtr->tk_NameOfFont) /* 136 */
-#endif
-#ifndef Tk_NameOfImage
-#define Tk_NameOfImage \
- (tkStubsPtr->tk_NameOfImage) /* 137 */
-#endif
-#ifndef Tk_NameOfJoinStyle
-#define Tk_NameOfJoinStyle \
- (tkStubsPtr->tk_NameOfJoinStyle) /* 138 */
-#endif
-#ifndef Tk_NameOfJustify
-#define Tk_NameOfJustify \
- (tkStubsPtr->tk_NameOfJustify) /* 139 */
-#endif
-#ifndef Tk_NameOfRelief
-#define Tk_NameOfRelief \
- (tkStubsPtr->tk_NameOfRelief) /* 140 */
-#endif
-#ifndef Tk_NameToWindow
-#define Tk_NameToWindow \
- (tkStubsPtr->tk_NameToWindow) /* 141 */
-#endif
-#ifndef Tk_OwnSelection
-#define Tk_OwnSelection \
- (tkStubsPtr->tk_OwnSelection) /* 142 */
-#endif
-#ifndef Tk_ParseArgv
-#define Tk_ParseArgv \
- (tkStubsPtr->tk_ParseArgv) /* 143 */
-#endif
-#ifndef Tk_PhotoPutBlock_NoComposite
-#define Tk_PhotoPutBlock_NoComposite \
- (tkStubsPtr->tk_PhotoPutBlock_NoComposite) /* 144 */
-#endif
-#ifndef Tk_PhotoPutZoomedBlock_NoComposite
-#define Tk_PhotoPutZoomedBlock_NoComposite \
- (tkStubsPtr->tk_PhotoPutZoomedBlock_NoComposite) /* 145 */
-#endif
-#ifndef Tk_PhotoGetImage
-#define Tk_PhotoGetImage \
- (tkStubsPtr->tk_PhotoGetImage) /* 146 */
-#endif
-#ifndef Tk_PhotoBlank
-#define Tk_PhotoBlank \
- (tkStubsPtr->tk_PhotoBlank) /* 147 */
-#endif
-#ifndef Tk_PhotoExpand
-#define Tk_PhotoExpand \
- (tkStubsPtr->tk_PhotoExpand) /* 148 */
-#endif
-#ifndef Tk_PhotoGetSize
-#define Tk_PhotoGetSize \
- (tkStubsPtr->tk_PhotoGetSize) /* 149 */
-#endif
-#ifndef Tk_PhotoSetSize
-#define Tk_PhotoSetSize \
- (tkStubsPtr->tk_PhotoSetSize) /* 150 */
-#endif
-#ifndef Tk_PointToChar
-#define Tk_PointToChar \
- (tkStubsPtr->tk_PointToChar) /* 151 */
-#endif
-#ifndef Tk_PostscriptFontName
-#define Tk_PostscriptFontName \
- (tkStubsPtr->tk_PostscriptFontName) /* 152 */
-#endif
-#ifndef Tk_PreserveColormap
-#define Tk_PreserveColormap \
- (tkStubsPtr->tk_PreserveColormap) /* 153 */
-#endif
-#ifndef Tk_QueueWindowEvent
-#define Tk_QueueWindowEvent \
- (tkStubsPtr->tk_QueueWindowEvent) /* 154 */
-#endif
-#ifndef Tk_RedrawImage
-#define Tk_RedrawImage \
- (tkStubsPtr->tk_RedrawImage) /* 155 */
-#endif
-#ifndef Tk_ResizeWindow
-#define Tk_ResizeWindow \
- (tkStubsPtr->tk_ResizeWindow) /* 156 */
-#endif
-#ifndef Tk_RestackWindow
-#define Tk_RestackWindow \
- (tkStubsPtr->tk_RestackWindow) /* 157 */
-#endif
-#ifndef Tk_RestrictEvents
-#define Tk_RestrictEvents \
- (tkStubsPtr->tk_RestrictEvents) /* 158 */
-#endif
-#ifndef Tk_SafeInit
-#define Tk_SafeInit \
- (tkStubsPtr->tk_SafeInit) /* 159 */
-#endif
-#ifndef Tk_SetAppName
-#define Tk_SetAppName \
- (tkStubsPtr->tk_SetAppName) /* 160 */
-#endif
-#ifndef Tk_SetBackgroundFromBorder
-#define Tk_SetBackgroundFromBorder \
- (tkStubsPtr->tk_SetBackgroundFromBorder) /* 161 */
-#endif
-#ifndef Tk_SetClass
-#define Tk_SetClass \
- (tkStubsPtr->tk_SetClass) /* 162 */
-#endif
-#ifndef Tk_SetGrid
-#define Tk_SetGrid \
- (tkStubsPtr->tk_SetGrid) /* 163 */
-#endif
-#ifndef Tk_SetInternalBorder
-#define Tk_SetInternalBorder \
- (tkStubsPtr->tk_SetInternalBorder) /* 164 */
-#endif
-#ifndef Tk_SetWindowBackground
-#define Tk_SetWindowBackground \
- (tkStubsPtr->tk_SetWindowBackground) /* 165 */
-#endif
-#ifndef Tk_SetWindowBackgroundPixmap
-#define Tk_SetWindowBackgroundPixmap \
- (tkStubsPtr->tk_SetWindowBackgroundPixmap) /* 166 */
-#endif
-#ifndef Tk_SetWindowBorder
-#define Tk_SetWindowBorder \
- (tkStubsPtr->tk_SetWindowBorder) /* 167 */
-#endif
-#ifndef Tk_SetWindowBorderWidth
-#define Tk_SetWindowBorderWidth \
- (tkStubsPtr->tk_SetWindowBorderWidth) /* 168 */
-#endif
-#ifndef Tk_SetWindowBorderPixmap
-#define Tk_SetWindowBorderPixmap \
- (tkStubsPtr->tk_SetWindowBorderPixmap) /* 169 */
-#endif
-#ifndef Tk_SetWindowColormap
-#define Tk_SetWindowColormap \
- (tkStubsPtr->tk_SetWindowColormap) /* 170 */
-#endif
-#ifndef Tk_SetWindowVisual
-#define Tk_SetWindowVisual \
- (tkStubsPtr->tk_SetWindowVisual) /* 171 */
-#endif
-#ifndef Tk_SizeOfBitmap
-#define Tk_SizeOfBitmap \
- (tkStubsPtr->tk_SizeOfBitmap) /* 172 */
-#endif
-#ifndef Tk_SizeOfImage
-#define Tk_SizeOfImage \
- (tkStubsPtr->tk_SizeOfImage) /* 173 */
-#endif
-#ifndef Tk_StrictMotif
-#define Tk_StrictMotif \
- (tkStubsPtr->tk_StrictMotif) /* 174 */
-#endif
-#ifndef Tk_TextLayoutToPostscript
-#define Tk_TextLayoutToPostscript \
- (tkStubsPtr->tk_TextLayoutToPostscript) /* 175 */
-#endif
-#ifndef Tk_TextWidth
-#define Tk_TextWidth \
- (tkStubsPtr->tk_TextWidth) /* 176 */
-#endif
-#ifndef Tk_UndefineCursor
-#define Tk_UndefineCursor \
- (tkStubsPtr->tk_UndefineCursor) /* 177 */
-#endif
-#ifndef Tk_UnderlineChars
-#define Tk_UnderlineChars \
- (tkStubsPtr->tk_UnderlineChars) /* 178 */
-#endif
-#ifndef Tk_UnderlineTextLayout
-#define Tk_UnderlineTextLayout \
- (tkStubsPtr->tk_UnderlineTextLayout) /* 179 */
-#endif
-#ifndef Tk_Ungrab
-#define Tk_Ungrab \
- (tkStubsPtr->tk_Ungrab) /* 180 */
-#endif
-#ifndef Tk_UnmaintainGeometry
-#define Tk_UnmaintainGeometry \
- (tkStubsPtr->tk_UnmaintainGeometry) /* 181 */
-#endif
-#ifndef Tk_UnmapWindow
-#define Tk_UnmapWindow \
- (tkStubsPtr->tk_UnmapWindow) /* 182 */
-#endif
-#ifndef Tk_UnsetGrid
-#define Tk_UnsetGrid \
- (tkStubsPtr->tk_UnsetGrid) /* 183 */
-#endif
-#ifndef Tk_UpdatePointer
-#define Tk_UpdatePointer \
- (tkStubsPtr->tk_UpdatePointer) /* 184 */
-#endif
-#ifndef Tk_AllocBitmapFromObj
-#define Tk_AllocBitmapFromObj \
- (tkStubsPtr->tk_AllocBitmapFromObj) /* 185 */
-#endif
-#ifndef Tk_Alloc3DBorderFromObj
-#define Tk_Alloc3DBorderFromObj \
- (tkStubsPtr->tk_Alloc3DBorderFromObj) /* 186 */
-#endif
-#ifndef Tk_AllocColorFromObj
-#define Tk_AllocColorFromObj \
- (tkStubsPtr->tk_AllocColorFromObj) /* 187 */
-#endif
-#ifndef Tk_AllocCursorFromObj
-#define Tk_AllocCursorFromObj \
- (tkStubsPtr->tk_AllocCursorFromObj) /* 188 */
-#endif
-#ifndef Tk_AllocFontFromObj
-#define Tk_AllocFontFromObj \
- (tkStubsPtr->tk_AllocFontFromObj) /* 189 */
-#endif
-#ifndef Tk_CreateOptionTable
-#define Tk_CreateOptionTable \
- (tkStubsPtr->tk_CreateOptionTable) /* 190 */
-#endif
-#ifndef Tk_DeleteOptionTable
-#define Tk_DeleteOptionTable \
- (tkStubsPtr->tk_DeleteOptionTable) /* 191 */
-#endif
-#ifndef Tk_Free3DBorderFromObj
-#define Tk_Free3DBorderFromObj \
- (tkStubsPtr->tk_Free3DBorderFromObj) /* 192 */
-#endif
-#ifndef Tk_FreeBitmapFromObj
-#define Tk_FreeBitmapFromObj \
- (tkStubsPtr->tk_FreeBitmapFromObj) /* 193 */
-#endif
-#ifndef Tk_FreeColorFromObj
-#define Tk_FreeColorFromObj \
- (tkStubsPtr->tk_FreeColorFromObj) /* 194 */
-#endif
-#ifndef Tk_FreeConfigOptions
-#define Tk_FreeConfigOptions \
- (tkStubsPtr->tk_FreeConfigOptions) /* 195 */
-#endif
-#ifndef Tk_FreeSavedOptions
-#define Tk_FreeSavedOptions \
- (tkStubsPtr->tk_FreeSavedOptions) /* 196 */
-#endif
-#ifndef Tk_FreeCursorFromObj
-#define Tk_FreeCursorFromObj \
- (tkStubsPtr->tk_FreeCursorFromObj) /* 197 */
-#endif
-#ifndef Tk_FreeFontFromObj
-#define Tk_FreeFontFromObj \
- (tkStubsPtr->tk_FreeFontFromObj) /* 198 */
-#endif
-#ifndef Tk_Get3DBorderFromObj
-#define Tk_Get3DBorderFromObj \
- (tkStubsPtr->tk_Get3DBorderFromObj) /* 199 */
-#endif
-#ifndef Tk_GetAnchorFromObj
-#define Tk_GetAnchorFromObj \
- (tkStubsPtr->tk_GetAnchorFromObj) /* 200 */
-#endif
-#ifndef Tk_GetBitmapFromObj
-#define Tk_GetBitmapFromObj \
- (tkStubsPtr->tk_GetBitmapFromObj) /* 201 */
-#endif
-#ifndef Tk_GetColorFromObj
-#define Tk_GetColorFromObj \
- (tkStubsPtr->tk_GetColorFromObj) /* 202 */
-#endif
-#ifndef Tk_GetCursorFromObj
-#define Tk_GetCursorFromObj \
- (tkStubsPtr->tk_GetCursorFromObj) /* 203 */
-#endif
-#ifndef Tk_GetOptionInfo
-#define Tk_GetOptionInfo \
- (tkStubsPtr->tk_GetOptionInfo) /* 204 */
-#endif
-#ifndef Tk_GetOptionValue
-#define Tk_GetOptionValue \
- (tkStubsPtr->tk_GetOptionValue) /* 205 */
-#endif
-#ifndef Tk_GetJustifyFromObj
-#define Tk_GetJustifyFromObj \
- (tkStubsPtr->tk_GetJustifyFromObj) /* 206 */
-#endif
-#ifndef Tk_GetMMFromObj
-#define Tk_GetMMFromObj \
- (tkStubsPtr->tk_GetMMFromObj) /* 207 */
-#endif
-#ifndef Tk_GetPixelsFromObj
-#define Tk_GetPixelsFromObj \
- (tkStubsPtr->tk_GetPixelsFromObj) /* 208 */
-#endif
-#ifndef Tk_GetReliefFromObj
-#define Tk_GetReliefFromObj \
- (tkStubsPtr->tk_GetReliefFromObj) /* 209 */
-#endif
-#ifndef Tk_GetScrollInfoObj
-#define Tk_GetScrollInfoObj \
- (tkStubsPtr->tk_GetScrollInfoObj) /* 210 */
-#endif
-#ifndef Tk_InitOptions
-#define Tk_InitOptions \
- (tkStubsPtr->tk_InitOptions) /* 211 */
-#endif
-#ifndef Tk_MainEx
-#define Tk_MainEx \
- (tkStubsPtr->tk_MainEx) /* 212 */
-#endif
-#ifndef Tk_RestoreSavedOptions
-#define Tk_RestoreSavedOptions \
- (tkStubsPtr->tk_RestoreSavedOptions) /* 213 */
-#endif
-#ifndef Tk_SetOptions
-#define Tk_SetOptions \
- (tkStubsPtr->tk_SetOptions) /* 214 */
-#endif
-#ifndef Tk_InitConsoleChannels
-#define Tk_InitConsoleChannels \
- (tkStubsPtr->tk_InitConsoleChannels) /* 215 */
-#endif
-#ifndef Tk_CreateConsoleWindow
-#define Tk_CreateConsoleWindow \
- (tkStubsPtr->tk_CreateConsoleWindow) /* 216 */
-#endif
-#ifndef Tk_CreateSmoothMethod
-#define Tk_CreateSmoothMethod \
- (tkStubsPtr->tk_CreateSmoothMethod) /* 217 */
-#endif
-/* Slot 218 is reserved */
-/* Slot 219 is reserved */
-#ifndef Tk_GetDash
-#define Tk_GetDash \
- (tkStubsPtr->tk_GetDash) /* 220 */
-#endif
-#ifndef Tk_CreateOutline
-#define Tk_CreateOutline \
- (tkStubsPtr->tk_CreateOutline) /* 221 */
-#endif
-#ifndef Tk_DeleteOutline
-#define Tk_DeleteOutline \
- (tkStubsPtr->tk_DeleteOutline) /* 222 */
-#endif
-#ifndef Tk_ConfigOutlineGC
-#define Tk_ConfigOutlineGC \
- (tkStubsPtr->tk_ConfigOutlineGC) /* 223 */
-#endif
-#ifndef Tk_ChangeOutlineGC
-#define Tk_ChangeOutlineGC \
- (tkStubsPtr->tk_ChangeOutlineGC) /* 224 */
-#endif
-#ifndef Tk_ResetOutlineGC
-#define Tk_ResetOutlineGC \
- (tkStubsPtr->tk_ResetOutlineGC) /* 225 */
-#endif
-#ifndef Tk_CanvasPsOutline
-#define Tk_CanvasPsOutline \
- (tkStubsPtr->tk_CanvasPsOutline) /* 226 */
-#endif
-#ifndef Tk_SetTSOrigin
-#define Tk_SetTSOrigin \
- (tkStubsPtr->tk_SetTSOrigin) /* 227 */
-#endif
-#ifndef Tk_CanvasGetCoordFromObj
-#define Tk_CanvasGetCoordFromObj \
- (tkStubsPtr->tk_CanvasGetCoordFromObj) /* 228 */
-#endif
-#ifndef Tk_CanvasSetOffset
-#define Tk_CanvasSetOffset \
- (tkStubsPtr->tk_CanvasSetOffset) /* 229 */
-#endif
-#ifndef Tk_DitherPhoto
-#define Tk_DitherPhoto \
- (tkStubsPtr->tk_DitherPhoto) /* 230 */
-#endif
-#ifndef Tk_PostscriptBitmap
-#define Tk_PostscriptBitmap \
- (tkStubsPtr->tk_PostscriptBitmap) /* 231 */
-#endif
-#ifndef Tk_PostscriptColor
-#define Tk_PostscriptColor \
- (tkStubsPtr->tk_PostscriptColor) /* 232 */
-#endif
-#ifndef Tk_PostscriptFont
-#define Tk_PostscriptFont \
- (tkStubsPtr->tk_PostscriptFont) /* 233 */
-#endif
-#ifndef Tk_PostscriptImage
-#define Tk_PostscriptImage \
- (tkStubsPtr->tk_PostscriptImage) /* 234 */
-#endif
-#ifndef Tk_PostscriptPath
-#define Tk_PostscriptPath \
- (tkStubsPtr->tk_PostscriptPath) /* 235 */
-#endif
-#ifndef Tk_PostscriptStipple
-#define Tk_PostscriptStipple \
- (tkStubsPtr->tk_PostscriptStipple) /* 236 */
-#endif
-#ifndef Tk_PostscriptY
-#define Tk_PostscriptY \
- (tkStubsPtr->tk_PostscriptY) /* 237 */
-#endif
-#ifndef Tk_PostscriptPhoto
-#define Tk_PostscriptPhoto \
- (tkStubsPtr->tk_PostscriptPhoto) /* 238 */
-#endif
-#ifndef Tk_CreateClientMessageHandler
-#define Tk_CreateClientMessageHandler \
- (tkStubsPtr->tk_CreateClientMessageHandler) /* 239 */
-#endif
-#ifndef Tk_DeleteClientMessageHandler
-#define Tk_DeleteClientMessageHandler \
- (tkStubsPtr->tk_DeleteClientMessageHandler) /* 240 */
-#endif
-#ifndef Tk_CreateAnonymousWindow
-#define Tk_CreateAnonymousWindow \
- (tkStubsPtr->tk_CreateAnonymousWindow) /* 241 */
-#endif
-#ifndef Tk_SetClassProcs
-#define Tk_SetClassProcs \
- (tkStubsPtr->tk_SetClassProcs) /* 242 */
-#endif
-#ifndef Tk_SetInternalBorderEx
-#define Tk_SetInternalBorderEx \
- (tkStubsPtr->tk_SetInternalBorderEx) /* 243 */
-#endif
-#ifndef Tk_SetMinimumRequestSize
-#define Tk_SetMinimumRequestSize \
- (tkStubsPtr->tk_SetMinimumRequestSize) /* 244 */
-#endif
-#ifndef Tk_SetCaretPos
-#define Tk_SetCaretPos \
- (tkStubsPtr->tk_SetCaretPos) /* 245 */
-#endif
-#ifndef Tk_PhotoPutBlock
-#define Tk_PhotoPutBlock \
- (tkStubsPtr->tk_PhotoPutBlock) /* 246 */
-#endif
-#ifndef Tk_PhotoPutZoomedBlock
-#define Tk_PhotoPutZoomedBlock \
- (tkStubsPtr->tk_PhotoPutZoomedBlock) /* 247 */
-#endif
-#ifndef Tk_CollapseMotionEvents
-#define Tk_CollapseMotionEvents \
- (tkStubsPtr->tk_CollapseMotionEvents) /* 248 */
-#endif
-#ifndef Tk_RegisterStyleEngine
-#define Tk_RegisterStyleEngine \
- (tkStubsPtr->tk_RegisterStyleEngine) /* 249 */
-#endif
-#ifndef Tk_GetStyleEngine
-#define Tk_GetStyleEngine \
- (tkStubsPtr->tk_GetStyleEngine) /* 250 */
-#endif
-#ifndef Tk_RegisterStyledElement
-#define Tk_RegisterStyledElement \
- (tkStubsPtr->tk_RegisterStyledElement) /* 251 */
-#endif
-#ifndef Tk_GetElementId
-#define Tk_GetElementId \
- (tkStubsPtr->tk_GetElementId) /* 252 */
-#endif
-#ifndef Tk_CreateStyle
-#define Tk_CreateStyle \
- (tkStubsPtr->tk_CreateStyle) /* 253 */
-#endif
-#ifndef Tk_GetStyle
-#define Tk_GetStyle \
- (tkStubsPtr->tk_GetStyle) /* 254 */
-#endif
-#ifndef Tk_FreeStyle
-#define Tk_FreeStyle \
- (tkStubsPtr->tk_FreeStyle) /* 255 */
-#endif
-#ifndef Tk_NameOfStyle
-#define Tk_NameOfStyle \
- (tkStubsPtr->tk_NameOfStyle) /* 256 */
-#endif
-#ifndef Tk_AllocStyleFromObj
-#define Tk_AllocStyleFromObj \
- (tkStubsPtr->tk_AllocStyleFromObj) /* 257 */
-#endif
-#ifndef Tk_GetStyleFromObj
-#define Tk_GetStyleFromObj \
- (tkStubsPtr->tk_GetStyleFromObj) /* 258 */
-#endif
-#ifndef Tk_FreeStyleFromObj
-#define Tk_FreeStyleFromObj \
- (tkStubsPtr->tk_FreeStyleFromObj) /* 259 */
-#endif
-#ifndef Tk_GetStyledElement
-#define Tk_GetStyledElement \
- (tkStubsPtr->tk_GetStyledElement) /* 260 */
-#endif
-#ifndef Tk_GetElementSize
-#define Tk_GetElementSize \
- (tkStubsPtr->tk_GetElementSize) /* 261 */
-#endif
-#ifndef Tk_GetElementBox
-#define Tk_GetElementBox \
- (tkStubsPtr->tk_GetElementBox) /* 262 */
-#endif
-#ifndef Tk_GetElementBorderWidth
-#define Tk_GetElementBorderWidth \
- (tkStubsPtr->tk_GetElementBorderWidth) /* 263 */
-#endif
-#ifndef Tk_DrawElement
-#define Tk_DrawElement \
- (tkStubsPtr->tk_DrawElement) /* 264 */
-#endif
-
-#endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */
-
-/* !END!: Do not edit above this line. */
-
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKDECLS */
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls.m
deleted file mode 100644
index 02da549ab28..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls.m
+++ /dev/null
@@ -1,870 +0,0 @@
-#ifndef _TKDECLS_VM
-#define _TKDECLS_VM
-#include "tkDecls_f.h"
-#ifndef NO_VTABLES
-#ifndef Tk_3DBorderColor
-# define Tk_3DBorderColor (*TkdeclsVptr->V_Tk_3DBorderColor)
-#endif
-
-#ifndef Tk_3DBorderGC
-# define Tk_3DBorderGC (*TkdeclsVptr->V_Tk_3DBorderGC)
-#endif
-
-#ifndef Tk_3DHorizontalBevel
-# define Tk_3DHorizontalBevel (*TkdeclsVptr->V_Tk_3DHorizontalBevel)
-#endif
-
-#ifndef Tk_3DVerticalBevel
-# define Tk_3DVerticalBevel (*TkdeclsVptr->V_Tk_3DVerticalBevel)
-#endif
-
-#ifndef Tk_Alloc3DBorderFromObj
-# define Tk_Alloc3DBorderFromObj (*TkdeclsVptr->V_Tk_Alloc3DBorderFromObj)
-#endif
-
-#ifndef Tk_AllocBitmapFromObj
-# define Tk_AllocBitmapFromObj (*TkdeclsVptr->V_Tk_AllocBitmapFromObj)
-#endif
-
-#ifndef Tk_AllocColorFromObj
-# define Tk_AllocColorFromObj (*TkdeclsVptr->V_Tk_AllocColorFromObj)
-#endif
-
-#ifndef Tk_AllocCursorFromObj
-# define Tk_AllocCursorFromObj (*TkdeclsVptr->V_Tk_AllocCursorFromObj)
-#endif
-
-#ifndef Tk_AllocFontFromObj
-# define Tk_AllocFontFromObj (*TkdeclsVptr->V_Tk_AllocFontFromObj)
-#endif
-
-#ifndef Tk_AllocStyleFromObj
-# define Tk_AllocStyleFromObj (*TkdeclsVptr->V_Tk_AllocStyleFromObj)
-#endif
-
-#ifndef Tk_BindEvent
-# define Tk_BindEvent (*TkdeclsVptr->V_Tk_BindEvent)
-#endif
-
-#ifndef Tk_ChangeWindowAttributes
-# define Tk_ChangeWindowAttributes (*TkdeclsVptr->V_Tk_ChangeWindowAttributes)
-#endif
-
-#ifndef Tk_CharBbox
-# define Tk_CharBbox (*TkdeclsVptr->V_Tk_CharBbox)
-#endif
-
-#ifndef Tk_ClearSelection
-# define Tk_ClearSelection (*TkdeclsVptr->V_Tk_ClearSelection)
-#endif
-
-#ifndef Tk_ClipboardAppend
-# define Tk_ClipboardAppend (*TkdeclsVptr->V_Tk_ClipboardAppend)
-#endif
-
-#ifndef Tk_ClipboardClear
-# define Tk_ClipboardClear (*TkdeclsVptr->V_Tk_ClipboardClear)
-#endif
-
-#ifndef Tk_CollapseMotionEvents
-# define Tk_CollapseMotionEvents (*TkdeclsVptr->V_Tk_CollapseMotionEvents)
-#endif
-
-#ifndef Tk_ComputeTextLayout
-# define Tk_ComputeTextLayout (*TkdeclsVptr->V_Tk_ComputeTextLayout)
-#endif
-
-#ifndef Tk_ConfigureInfo
-# define Tk_ConfigureInfo (*TkdeclsVptr->V_Tk_ConfigureInfo)
-#endif
-
-#ifndef Tk_ConfigureValue
-# define Tk_ConfigureValue (*TkdeclsVptr->V_Tk_ConfigureValue)
-#endif
-
-#ifndef Tk_ConfigureWidget
-# define Tk_ConfigureWidget (*TkdeclsVptr->V_Tk_ConfigureWidget)
-#endif
-
-#ifndef Tk_ConfigureWindow
-# define Tk_ConfigureWindow (*TkdeclsVptr->V_Tk_ConfigureWindow)
-#endif
-
-#ifndef Tk_CoordsToWindow
-# define Tk_CoordsToWindow (*TkdeclsVptr->V_Tk_CoordsToWindow)
-#endif
-
-#ifndef Tk_CreateAnonymousWindow
-# define Tk_CreateAnonymousWindow (*TkdeclsVptr->V_Tk_CreateAnonymousWindow)
-#endif
-
-#ifndef Tk_CreateBinding
-# define Tk_CreateBinding (*TkdeclsVptr->V_Tk_CreateBinding)
-#endif
-
-#ifndef Tk_CreateBindingTable
-# define Tk_CreateBindingTable (*TkdeclsVptr->V_Tk_CreateBindingTable)
-#endif
-
-#ifndef Tk_CreateClientMessageHandler
-# define Tk_CreateClientMessageHandler (*TkdeclsVptr->V_Tk_CreateClientMessageHandler)
-#endif
-
-#ifndef Tk_CreateErrorHandler
-# define Tk_CreateErrorHandler (*TkdeclsVptr->V_Tk_CreateErrorHandler)
-#endif
-
-#ifndef Tk_CreateEventHandler
-# define Tk_CreateEventHandler (*TkdeclsVptr->V_Tk_CreateEventHandler)
-#endif
-
-#ifndef Tk_CreateGenericHandler
-# define Tk_CreateGenericHandler (*TkdeclsVptr->V_Tk_CreateGenericHandler)
-#endif
-
-#ifndef Tk_CreateImageType
-# define Tk_CreateImageType (*TkdeclsVptr->V_Tk_CreateImageType)
-#endif
-
-#ifndef Tk_CreateOptionTable
-# define Tk_CreateOptionTable (*TkdeclsVptr->V_Tk_CreateOptionTable)
-#endif
-
-#ifndef Tk_CreateSelHandler
-# define Tk_CreateSelHandler (*TkdeclsVptr->V_Tk_CreateSelHandler)
-#endif
-
-#ifndef Tk_CreateStyle
-# define Tk_CreateStyle (*TkdeclsVptr->V_Tk_CreateStyle)
-#endif
-
-#ifndef Tk_CreateWindow
-# define Tk_CreateWindow (*TkdeclsVptr->V_Tk_CreateWindow)
-#endif
-
-#ifndef Tk_CreateWindowFromPath
-# define Tk_CreateWindowFromPath (*TkdeclsVptr->V_Tk_CreateWindowFromPath)
-#endif
-
-#ifndef Tk_DefineBitmap
-# define Tk_DefineBitmap (*TkdeclsVptr->V_Tk_DefineBitmap)
-#endif
-
-#ifndef Tk_DefineCursor
-# define Tk_DefineCursor (*TkdeclsVptr->V_Tk_DefineCursor)
-#endif
-
-#ifndef Tk_DeleteAllBindings
-# define Tk_DeleteAllBindings (*TkdeclsVptr->V_Tk_DeleteAllBindings)
-#endif
-
-#ifndef Tk_DeleteBinding
-# define Tk_DeleteBinding (*TkdeclsVptr->V_Tk_DeleteBinding)
-#endif
-
-#ifndef Tk_DeleteBindingTable
-# define Tk_DeleteBindingTable (*TkdeclsVptr->V_Tk_DeleteBindingTable)
-#endif
-
-#ifndef Tk_DeleteClientMessageHandler
-# define Tk_DeleteClientMessageHandler (*TkdeclsVptr->V_Tk_DeleteClientMessageHandler)
-#endif
-
-#ifndef Tk_DeleteErrorHandler
-# define Tk_DeleteErrorHandler (*TkdeclsVptr->V_Tk_DeleteErrorHandler)
-#endif
-
-#ifndef Tk_DeleteEventHandler
-# define Tk_DeleteEventHandler (*TkdeclsVptr->V_Tk_DeleteEventHandler)
-#endif
-
-#ifndef Tk_DeleteGenericHandler
-# define Tk_DeleteGenericHandler (*TkdeclsVptr->V_Tk_DeleteGenericHandler)
-#endif
-
-#ifndef Tk_DeleteImage
-# define Tk_DeleteImage (*TkdeclsVptr->V_Tk_DeleteImage)
-#endif
-
-#ifndef Tk_DeleteOptionTable
-# define Tk_DeleteOptionTable (*TkdeclsVptr->V_Tk_DeleteOptionTable)
-#endif
-
-#ifndef Tk_DeleteSelHandler
-# define Tk_DeleteSelHandler (*TkdeclsVptr->V_Tk_DeleteSelHandler)
-#endif
-
-#ifndef Tk_DestroyWindow
-# define Tk_DestroyWindow (*TkdeclsVptr->V_Tk_DestroyWindow)
-#endif
-
-#ifndef Tk_DisplayName
-# define Tk_DisplayName (*TkdeclsVptr->V_Tk_DisplayName)
-#endif
-
-#ifndef Tk_DistanceToTextLayout
-# define Tk_DistanceToTextLayout (*TkdeclsVptr->V_Tk_DistanceToTextLayout)
-#endif
-
-#ifndef Tk_Draw3DPolygon
-# define Tk_Draw3DPolygon (*TkdeclsVptr->V_Tk_Draw3DPolygon)
-#endif
-
-#ifndef Tk_Draw3DRectangle
-# define Tk_Draw3DRectangle (*TkdeclsVptr->V_Tk_Draw3DRectangle)
-#endif
-
-#ifndef Tk_DrawChars
-# define Tk_DrawChars (*TkdeclsVptr->V_Tk_DrawChars)
-#endif
-
-#ifndef Tk_DrawElement
-# define Tk_DrawElement (*TkdeclsVptr->V_Tk_DrawElement)
-#endif
-
-#ifndef Tk_DrawFocusHighlight
-# define Tk_DrawFocusHighlight (*TkdeclsVptr->V_Tk_DrawFocusHighlight)
-#endif
-
-#ifndef Tk_DrawTextLayout
-# define Tk_DrawTextLayout (*TkdeclsVptr->V_Tk_DrawTextLayout)
-#endif
-
-#ifndef Tk_Fill3DPolygon
-# define Tk_Fill3DPolygon (*TkdeclsVptr->V_Tk_Fill3DPolygon)
-#endif
-
-#ifndef Tk_Fill3DRectangle
-# define Tk_Fill3DRectangle (*TkdeclsVptr->V_Tk_Fill3DRectangle)
-#endif
-
-#ifndef Tk_FontId
-# define Tk_FontId (*TkdeclsVptr->V_Tk_FontId)
-#endif
-
-#ifndef Tk_Free3DBorder
-# define Tk_Free3DBorder (*TkdeclsVptr->V_Tk_Free3DBorder)
-#endif
-
-#ifndef Tk_Free3DBorderFromObj
-# define Tk_Free3DBorderFromObj (*TkdeclsVptr->V_Tk_Free3DBorderFromObj)
-#endif
-
-#ifndef Tk_FreeBitmap
-# define Tk_FreeBitmap (*TkdeclsVptr->V_Tk_FreeBitmap)
-#endif
-
-#ifndef Tk_FreeBitmapFromObj
-# define Tk_FreeBitmapFromObj (*TkdeclsVptr->V_Tk_FreeBitmapFromObj)
-#endif
-
-#ifndef Tk_FreeColor
-# define Tk_FreeColor (*TkdeclsVptr->V_Tk_FreeColor)
-#endif
-
-#ifndef Tk_FreeColorFromObj
-# define Tk_FreeColorFromObj (*TkdeclsVptr->V_Tk_FreeColorFromObj)
-#endif
-
-#ifndef Tk_FreeColormap
-# define Tk_FreeColormap (*TkdeclsVptr->V_Tk_FreeColormap)
-#endif
-
-#ifndef Tk_FreeConfigOptions
-# define Tk_FreeConfigOptions (*TkdeclsVptr->V_Tk_FreeConfigOptions)
-#endif
-
-#ifndef Tk_FreeCursor
-# define Tk_FreeCursor (*TkdeclsVptr->V_Tk_FreeCursor)
-#endif
-
-#ifndef Tk_FreeCursorFromObj
-# define Tk_FreeCursorFromObj (*TkdeclsVptr->V_Tk_FreeCursorFromObj)
-#endif
-
-#ifndef Tk_FreeFont
-# define Tk_FreeFont (*TkdeclsVptr->V_Tk_FreeFont)
-#endif
-
-#ifndef Tk_FreeFontFromObj
-# define Tk_FreeFontFromObj (*TkdeclsVptr->V_Tk_FreeFontFromObj)
-#endif
-
-#ifndef Tk_FreeGC
-# define Tk_FreeGC (*TkdeclsVptr->V_Tk_FreeGC)
-#endif
-
-#ifndef Tk_FreeImage
-# define Tk_FreeImage (*TkdeclsVptr->V_Tk_FreeImage)
-#endif
-
-#ifndef Tk_FreeOptions
-# define Tk_FreeOptions (*TkdeclsVptr->V_Tk_FreeOptions)
-#endif
-
-#ifndef Tk_FreePixmap
-# define Tk_FreePixmap (*TkdeclsVptr->V_Tk_FreePixmap)
-#endif
-
-#ifndef Tk_FreeSavedOptions
-# define Tk_FreeSavedOptions (*TkdeclsVptr->V_Tk_FreeSavedOptions)
-#endif
-
-#ifndef Tk_FreeStyle
-# define Tk_FreeStyle (*TkdeclsVptr->V_Tk_FreeStyle)
-#endif
-
-#ifndef Tk_FreeStyleFromObj
-# define Tk_FreeStyleFromObj (*TkdeclsVptr->V_Tk_FreeStyleFromObj)
-#endif
-
-#ifndef Tk_FreeTextLayout
-# define Tk_FreeTextLayout (*TkdeclsVptr->V_Tk_FreeTextLayout)
-#endif
-
-#ifndef Tk_FreeXId
-# define Tk_FreeXId (*TkdeclsVptr->V_Tk_FreeXId)
-#endif
-
-#ifndef Tk_GCForColor
-# define Tk_GCForColor (*TkdeclsVptr->V_Tk_GCForColor)
-#endif
-
-#ifndef Tk_GeometryRequest
-# define Tk_GeometryRequest (*TkdeclsVptr->V_Tk_GeometryRequest)
-#endif
-
-#ifndef Tk_Get3DBorder
-# define Tk_Get3DBorder (*TkdeclsVptr->V_Tk_Get3DBorder)
-#endif
-
-#ifndef Tk_Get3DBorderFromObj
-# define Tk_Get3DBorderFromObj (*TkdeclsVptr->V_Tk_Get3DBorderFromObj)
-#endif
-
-#ifndef Tk_GetAllBindings
-# define Tk_GetAllBindings (*TkdeclsVptr->V_Tk_GetAllBindings)
-#endif
-
-#ifndef Tk_GetAnchor
-# define Tk_GetAnchor (*TkdeclsVptr->V_Tk_GetAnchor)
-#endif
-
-#ifndef Tk_GetAnchorFromObj
-# define Tk_GetAnchorFromObj (*TkdeclsVptr->V_Tk_GetAnchorFromObj)
-#endif
-
-#ifndef Tk_GetAtomName
-# define Tk_GetAtomName (*TkdeclsVptr->V_Tk_GetAtomName)
-#endif
-
-#ifndef Tk_GetBinding
-# define Tk_GetBinding (*TkdeclsVptr->V_Tk_GetBinding)
-#endif
-
-#ifndef Tk_GetBitmap
-# define Tk_GetBitmap (*TkdeclsVptr->V_Tk_GetBitmap)
-#endif
-
-#ifndef Tk_GetBitmapFromData
-# define Tk_GetBitmapFromData (*TkdeclsVptr->V_Tk_GetBitmapFromData)
-#endif
-
-#ifndef Tk_GetBitmapFromObj
-# define Tk_GetBitmapFromObj (*TkdeclsVptr->V_Tk_GetBitmapFromObj)
-#endif
-
-#ifndef Tk_GetCapStyle
-# define Tk_GetCapStyle (*TkdeclsVptr->V_Tk_GetCapStyle)
-#endif
-
-#ifndef Tk_GetColor
-# define Tk_GetColor (*TkdeclsVptr->V_Tk_GetColor)
-#endif
-
-#ifndef Tk_GetColorByValue
-# define Tk_GetColorByValue (*TkdeclsVptr->V_Tk_GetColorByValue)
-#endif
-
-#ifndef Tk_GetColorFromObj
-# define Tk_GetColorFromObj (*TkdeclsVptr->V_Tk_GetColorFromObj)
-#endif
-
-#ifndef Tk_GetColormap
-# define Tk_GetColormap (*TkdeclsVptr->V_Tk_GetColormap)
-#endif
-
-#ifndef Tk_GetCursor
-# define Tk_GetCursor (*TkdeclsVptr->V_Tk_GetCursor)
-#endif
-
-#ifndef Tk_GetCursorFromData
-# define Tk_GetCursorFromData (*TkdeclsVptr->V_Tk_GetCursorFromData)
-#endif
-
-#ifndef Tk_GetCursorFromObj
-# define Tk_GetCursorFromObj (*TkdeclsVptr->V_Tk_GetCursorFromObj)
-#endif
-
-#ifndef Tk_GetElementBorderWidth
-# define Tk_GetElementBorderWidth (*TkdeclsVptr->V_Tk_GetElementBorderWidth)
-#endif
-
-#ifndef Tk_GetElementBox
-# define Tk_GetElementBox (*TkdeclsVptr->V_Tk_GetElementBox)
-#endif
-
-#ifndef Tk_GetElementId
-# define Tk_GetElementId (*TkdeclsVptr->V_Tk_GetElementId)
-#endif
-
-#ifndef Tk_GetElementSize
-# define Tk_GetElementSize (*TkdeclsVptr->V_Tk_GetElementSize)
-#endif
-
-#ifndef Tk_GetFont
-# define Tk_GetFont (*TkdeclsVptr->V_Tk_GetFont)
-#endif
-
-#ifndef Tk_GetFontFromObj
-# define Tk_GetFontFromObj (*TkdeclsVptr->V_Tk_GetFontFromObj)
-#endif
-
-#ifndef Tk_GetFontMetrics
-# define Tk_GetFontMetrics (*TkdeclsVptr->V_Tk_GetFontMetrics)
-#endif
-
-#ifndef Tk_GetGC
-# define Tk_GetGC (*TkdeclsVptr->V_Tk_GetGC)
-#endif
-
-#ifndef Tk_GetImage
-# define Tk_GetImage (*TkdeclsVptr->V_Tk_GetImage)
-#endif
-
-#ifndef Tk_GetImageMasterData
-# define Tk_GetImageMasterData (*TkdeclsVptr->V_Tk_GetImageMasterData)
-#endif
-
-#ifndef Tk_GetJoinStyle
-# define Tk_GetJoinStyle (*TkdeclsVptr->V_Tk_GetJoinStyle)
-#endif
-
-#ifndef Tk_GetJustify
-# define Tk_GetJustify (*TkdeclsVptr->V_Tk_GetJustify)
-#endif
-
-#ifndef Tk_GetJustifyFromObj
-# define Tk_GetJustifyFromObj (*TkdeclsVptr->V_Tk_GetJustifyFromObj)
-#endif
-
-#ifndef Tk_GetMMFromObj
-# define Tk_GetMMFromObj (*TkdeclsVptr->V_Tk_GetMMFromObj)
-#endif
-
-#ifndef Tk_GetNumMainWindows
-# define Tk_GetNumMainWindows (*TkdeclsVptr->V_Tk_GetNumMainWindows)
-#endif
-
-#ifndef Tk_GetOptionInfo
-# define Tk_GetOptionInfo (*TkdeclsVptr->V_Tk_GetOptionInfo)
-#endif
-
-#ifndef Tk_GetOptionValue
-# define Tk_GetOptionValue (*TkdeclsVptr->V_Tk_GetOptionValue)
-#endif
-
-#ifndef Tk_GetPixels
-# define Tk_GetPixels (*TkdeclsVptr->V_Tk_GetPixels)
-#endif
-
-#ifndef Tk_GetPixelsFromObj
-# define Tk_GetPixelsFromObj (*TkdeclsVptr->V_Tk_GetPixelsFromObj)
-#endif
-
-#ifndef Tk_GetPixmap
-# define Tk_GetPixmap (*TkdeclsVptr->V_Tk_GetPixmap)
-#endif
-
-#ifndef Tk_GetRelief
-# define Tk_GetRelief (*TkdeclsVptr->V_Tk_GetRelief)
-#endif
-
-#ifndef Tk_GetReliefFromObj
-# define Tk_GetReliefFromObj (*TkdeclsVptr->V_Tk_GetReliefFromObj)
-#endif
-
-#ifndef Tk_GetRootCoords
-# define Tk_GetRootCoords (*TkdeclsVptr->V_Tk_GetRootCoords)
-#endif
-
-#ifndef Tk_GetScreenMM
-# define Tk_GetScreenMM (*TkdeclsVptr->V_Tk_GetScreenMM)
-#endif
-
-#ifndef Tk_GetScrollInfo
-# define Tk_GetScrollInfo (*TkdeclsVptr->V_Tk_GetScrollInfo)
-#endif
-
-#ifndef Tk_GetScrollInfoObj
-# define Tk_GetScrollInfoObj (*TkdeclsVptr->V_Tk_GetScrollInfoObj)
-#endif
-
-#ifndef Tk_GetSelection
-# define Tk_GetSelection (*TkdeclsVptr->V_Tk_GetSelection)
-#endif
-
-#ifndef Tk_GetStyle
-# define Tk_GetStyle (*TkdeclsVptr->V_Tk_GetStyle)
-#endif
-
-#ifndef Tk_GetStyleEngine
-# define Tk_GetStyleEngine (*TkdeclsVptr->V_Tk_GetStyleEngine)
-#endif
-
-#ifndef Tk_GetStyleFromObj
-# define Tk_GetStyleFromObj (*TkdeclsVptr->V_Tk_GetStyleFromObj)
-#endif
-
-#ifndef Tk_GetStyledElement
-# define Tk_GetStyledElement (*TkdeclsVptr->V_Tk_GetStyledElement)
-#endif
-
-#ifndef Tk_GetUid
-# define Tk_GetUid (*TkdeclsVptr->V_Tk_GetUid)
-#endif
-
-#ifndef Tk_GetVRootGeometry
-# define Tk_GetVRootGeometry (*TkdeclsVptr->V_Tk_GetVRootGeometry)
-#endif
-
-#ifndef Tk_GetVisual
-# define Tk_GetVisual (*TkdeclsVptr->V_Tk_GetVisual)
-#endif
-
-#ifndef Tk_Grab
-# define Tk_Grab (*TkdeclsVptr->V_Tk_Grab)
-#endif
-
-#ifndef Tk_HandleEvent
-# define Tk_HandleEvent (*TkdeclsVptr->V_Tk_HandleEvent)
-#endif
-
-#ifndef Tk_IdToWindow
-# define Tk_IdToWindow (*TkdeclsVptr->V_Tk_IdToWindow)
-#endif
-
-#ifndef Tk_ImageChanged
-# define Tk_ImageChanged (*TkdeclsVptr->V_Tk_ImageChanged)
-#endif
-
-#ifndef Tk_InitOptions
-# define Tk_InitOptions (*TkdeclsVptr->V_Tk_InitOptions)
-#endif
-
-#ifndef Tk_InternAtom
-# define Tk_InternAtom (*TkdeclsVptr->V_Tk_InternAtom)
-#endif
-
-#ifndef Tk_IntersectTextLayout
-# define Tk_IntersectTextLayout (*TkdeclsVptr->V_Tk_IntersectTextLayout)
-#endif
-
-#ifndef Tk_MainLoop
-# define Tk_MainLoop (*TkdeclsVptr->V_Tk_MainLoop)
-#endif
-
-#ifndef Tk_MainWindow
-# define Tk_MainWindow (*TkdeclsVptr->V_Tk_MainWindow)
-#endif
-
-#ifndef Tk_MaintainGeometry
-# define Tk_MaintainGeometry (*TkdeclsVptr->V_Tk_MaintainGeometry)
-#endif
-
-#ifndef Tk_MakeWindowExist
-# define Tk_MakeWindowExist (*TkdeclsVptr->V_Tk_MakeWindowExist)
-#endif
-
-#ifndef Tk_ManageGeometry
-# define Tk_ManageGeometry (*TkdeclsVptr->V_Tk_ManageGeometry)
-#endif
-
-#ifndef Tk_MapWindow
-# define Tk_MapWindow (*TkdeclsVptr->V_Tk_MapWindow)
-#endif
-
-#ifndef Tk_MeasureChars
-# define Tk_MeasureChars (*TkdeclsVptr->V_Tk_MeasureChars)
-#endif
-
-#ifndef Tk_MoveResizeWindow
-# define Tk_MoveResizeWindow (*TkdeclsVptr->V_Tk_MoveResizeWindow)
-#endif
-
-#ifndef Tk_MoveToplevelWindow
-# define Tk_MoveToplevelWindow (*TkdeclsVptr->V_Tk_MoveToplevelWindow)
-#endif
-
-#ifndef Tk_MoveWindow
-# define Tk_MoveWindow (*TkdeclsVptr->V_Tk_MoveWindow)
-#endif
-
-#ifndef Tk_NameOf3DBorder
-# define Tk_NameOf3DBorder (*TkdeclsVptr->V_Tk_NameOf3DBorder)
-#endif
-
-#ifndef Tk_NameOfAnchor
-# define Tk_NameOfAnchor (*TkdeclsVptr->V_Tk_NameOfAnchor)
-#endif
-
-#ifndef Tk_NameOfBitmap
-# define Tk_NameOfBitmap (*TkdeclsVptr->V_Tk_NameOfBitmap)
-#endif
-
-#ifndef Tk_NameOfCapStyle
-# define Tk_NameOfCapStyle (*TkdeclsVptr->V_Tk_NameOfCapStyle)
-#endif
-
-#ifndef Tk_NameOfColor
-# define Tk_NameOfColor (*TkdeclsVptr->V_Tk_NameOfColor)
-#endif
-
-#ifndef Tk_NameOfCursor
-# define Tk_NameOfCursor (*TkdeclsVptr->V_Tk_NameOfCursor)
-#endif
-
-#ifndef Tk_NameOfFont
-# define Tk_NameOfFont (*TkdeclsVptr->V_Tk_NameOfFont)
-#endif
-
-#ifndef Tk_NameOfImage
-# define Tk_NameOfImage (*TkdeclsVptr->V_Tk_NameOfImage)
-#endif
-
-#ifndef Tk_NameOfJoinStyle
-# define Tk_NameOfJoinStyle (*TkdeclsVptr->V_Tk_NameOfJoinStyle)
-#endif
-
-#ifndef Tk_NameOfJustify
-# define Tk_NameOfJustify (*TkdeclsVptr->V_Tk_NameOfJustify)
-#endif
-
-#ifndef Tk_NameOfRelief
-# define Tk_NameOfRelief (*TkdeclsVptr->V_Tk_NameOfRelief)
-#endif
-
-#ifndef Tk_NameOfStyle
-# define Tk_NameOfStyle (*TkdeclsVptr->V_Tk_NameOfStyle)
-#endif
-
-#ifndef Tk_NameToWindow
-# define Tk_NameToWindow (*TkdeclsVptr->V_Tk_NameToWindow)
-#endif
-
-#ifndef Tk_OwnSelection
-# define Tk_OwnSelection (*TkdeclsVptr->V_Tk_OwnSelection)
-#endif
-
-#ifndef Tk_PointToChar
-# define Tk_PointToChar (*TkdeclsVptr->V_Tk_PointToChar)
-#endif
-
-#ifndef Tk_PostscriptBitmap
-# define Tk_PostscriptBitmap (*TkdeclsVptr->V_Tk_PostscriptBitmap)
-#endif
-
-#ifndef Tk_PostscriptColor
-# define Tk_PostscriptColor (*TkdeclsVptr->V_Tk_PostscriptColor)
-#endif
-
-#ifndef Tk_PostscriptFont
-# define Tk_PostscriptFont (*TkdeclsVptr->V_Tk_PostscriptFont)
-#endif
-
-#ifndef Tk_PostscriptFontName
-# define Tk_PostscriptFontName (*TkdeclsVptr->V_Tk_PostscriptFontName)
-#endif
-
-#ifndef Tk_PostscriptImage
-# define Tk_PostscriptImage (*TkdeclsVptr->V_Tk_PostscriptImage)
-#endif
-
-#ifndef Tk_PostscriptPath
-# define Tk_PostscriptPath (*TkdeclsVptr->V_Tk_PostscriptPath)
-#endif
-
-#ifndef Tk_PostscriptPhoto
-# define Tk_PostscriptPhoto (*TkdeclsVptr->V_Tk_PostscriptPhoto)
-#endif
-
-#ifndef Tk_PostscriptStipple
-# define Tk_PostscriptStipple (*TkdeclsVptr->V_Tk_PostscriptStipple)
-#endif
-
-#ifndef Tk_PostscriptY
-# define Tk_PostscriptY (*TkdeclsVptr->V_Tk_PostscriptY)
-#endif
-
-#ifndef Tk_PreserveColormap
-# define Tk_PreserveColormap (*TkdeclsVptr->V_Tk_PreserveColormap)
-#endif
-
-#ifndef Tk_QueueWindowEvent
-# define Tk_QueueWindowEvent (*TkdeclsVptr->V_Tk_QueueWindowEvent)
-#endif
-
-#ifndef Tk_RedrawImage
-# define Tk_RedrawImage (*TkdeclsVptr->V_Tk_RedrawImage)
-#endif
-
-#ifndef Tk_RegisterStyleEngine
-# define Tk_RegisterStyleEngine (*TkdeclsVptr->V_Tk_RegisterStyleEngine)
-#endif
-
-#ifndef Tk_RegisterStyledElement
-# define Tk_RegisterStyledElement (*TkdeclsVptr->V_Tk_RegisterStyledElement)
-#endif
-
-#ifndef Tk_ResizeWindow
-# define Tk_ResizeWindow (*TkdeclsVptr->V_Tk_ResizeWindow)
-#endif
-
-#ifndef Tk_RestackWindow
-# define Tk_RestackWindow (*TkdeclsVptr->V_Tk_RestackWindow)
-#endif
-
-#ifndef Tk_RestoreSavedOptions
-# define Tk_RestoreSavedOptions (*TkdeclsVptr->V_Tk_RestoreSavedOptions)
-#endif
-
-#ifndef Tk_RestrictEvents
-# define Tk_RestrictEvents (*TkdeclsVptr->V_Tk_RestrictEvents)
-#endif
-
-#ifndef Tk_SetAppName
-# define Tk_SetAppName (*TkdeclsVptr->V_Tk_SetAppName)
-#endif
-
-#ifndef Tk_SetBackgroundFromBorder
-# define Tk_SetBackgroundFromBorder (*TkdeclsVptr->V_Tk_SetBackgroundFromBorder)
-#endif
-
-#ifndef Tk_SetCaretPos
-# define Tk_SetCaretPos (*TkdeclsVptr->V_Tk_SetCaretPos)
-#endif
-
-#ifndef Tk_SetClass
-# define Tk_SetClass (*TkdeclsVptr->V_Tk_SetClass)
-#endif
-
-#ifndef Tk_SetClassProcs
-# define Tk_SetClassProcs (*TkdeclsVptr->V_Tk_SetClassProcs)
-#endif
-
-#ifndef Tk_SetGrid
-# define Tk_SetGrid (*TkdeclsVptr->V_Tk_SetGrid)
-#endif
-
-#ifndef Tk_SetInternalBorder
-# define Tk_SetInternalBorder (*TkdeclsVptr->V_Tk_SetInternalBorder)
-#endif
-
-#ifndef Tk_SetInternalBorderEx
-# define Tk_SetInternalBorderEx (*TkdeclsVptr->V_Tk_SetInternalBorderEx)
-#endif
-
-#ifndef Tk_SetMinimumRequestSize
-# define Tk_SetMinimumRequestSize (*TkdeclsVptr->V_Tk_SetMinimumRequestSize)
-#endif
-
-#ifndef Tk_SetOptions
-# define Tk_SetOptions (*TkdeclsVptr->V_Tk_SetOptions)
-#endif
-
-#ifndef Tk_SetTSOrigin
-# define Tk_SetTSOrigin (*TkdeclsVptr->V_Tk_SetTSOrigin)
-#endif
-
-#ifndef Tk_SetWindowBackground
-# define Tk_SetWindowBackground (*TkdeclsVptr->V_Tk_SetWindowBackground)
-#endif
-
-#ifndef Tk_SetWindowBackgroundPixmap
-# define Tk_SetWindowBackgroundPixmap (*TkdeclsVptr->V_Tk_SetWindowBackgroundPixmap)
-#endif
-
-#ifndef Tk_SetWindowBorder
-# define Tk_SetWindowBorder (*TkdeclsVptr->V_Tk_SetWindowBorder)
-#endif
-
-#ifndef Tk_SetWindowBorderPixmap
-# define Tk_SetWindowBorderPixmap (*TkdeclsVptr->V_Tk_SetWindowBorderPixmap)
-#endif
-
-#ifndef Tk_SetWindowBorderWidth
-# define Tk_SetWindowBorderWidth (*TkdeclsVptr->V_Tk_SetWindowBorderWidth)
-#endif
-
-#ifndef Tk_SetWindowColormap
-# define Tk_SetWindowColormap (*TkdeclsVptr->V_Tk_SetWindowColormap)
-#endif
-
-#ifndef Tk_SetWindowVisual
-# define Tk_SetWindowVisual (*TkdeclsVptr->V_Tk_SetWindowVisual)
-#endif
-
-#ifndef Tk_SizeOfBitmap
-# define Tk_SizeOfBitmap (*TkdeclsVptr->V_Tk_SizeOfBitmap)
-#endif
-
-#ifndef Tk_SizeOfImage
-# define Tk_SizeOfImage (*TkdeclsVptr->V_Tk_SizeOfImage)
-#endif
-
-#ifndef Tk_StrictMotif
-# define Tk_StrictMotif (*TkdeclsVptr->V_Tk_StrictMotif)
-#endif
-
-#ifndef Tk_TextLayoutToPostscript
-# define Tk_TextLayoutToPostscript (*TkdeclsVptr->V_Tk_TextLayoutToPostscript)
-#endif
-
-#ifndef Tk_TextWidth
-# define Tk_TextWidth (*TkdeclsVptr->V_Tk_TextWidth)
-#endif
-
-#ifndef Tk_UndefineCursor
-# define Tk_UndefineCursor (*TkdeclsVptr->V_Tk_UndefineCursor)
-#endif
-
-#ifndef Tk_UnderlineChars
-# define Tk_UnderlineChars (*TkdeclsVptr->V_Tk_UnderlineChars)
-#endif
-
-#ifndef Tk_UnderlineTextLayout
-# define Tk_UnderlineTextLayout (*TkdeclsVptr->V_Tk_UnderlineTextLayout)
-#endif
-
-#ifndef Tk_Ungrab
-# define Tk_Ungrab (*TkdeclsVptr->V_Tk_Ungrab)
-#endif
-
-#ifndef Tk_UnmaintainGeometry
-# define Tk_UnmaintainGeometry (*TkdeclsVptr->V_Tk_UnmaintainGeometry)
-#endif
-
-#ifndef Tk_UnmapWindow
-# define Tk_UnmapWindow (*TkdeclsVptr->V_Tk_UnmapWindow)
-#endif
-
-#ifndef Tk_UnsetGrid
-# define Tk_UnsetGrid (*TkdeclsVptr->V_Tk_UnsetGrid)
-#endif
-
-#ifndef Tk_UpdatePointer
-# define Tk_UpdatePointer (*TkdeclsVptr->V_Tk_UpdatePointer)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TKDECLS_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls.t
deleted file mode 100644
index f112ff449de..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls.t
+++ /dev/null
@@ -1,1158 +0,0 @@
-#ifdef _TKDECLS
-#ifndef Tk_3DBorderColor
-VFUNC(XColor *,Tk_3DBorderColor,V_Tk_3DBorderColor,_ANSI_ARGS_((Tk_3DBorder border)))
-#endif /* #ifndef Tk_3DBorderColor */
-
-#ifndef Tk_3DBorderGC
-VFUNC(GC,Tk_3DBorderGC,V_Tk_3DBorderGC,_ANSI_ARGS_((Tk_Window tkwin,
- Tk_3DBorder border, int which)))
-#endif /* #ifndef Tk_3DBorderGC */
-
-#ifndef Tk_3DHorizontalBevel
-VFUNC(void,Tk_3DHorizontalBevel,V_Tk_3DHorizontalBevel,_ANSI_ARGS_((Tk_Window tkwin,
- Drawable drawable, Tk_3DBorder border, int x,
- int y, int width, int height, int leftIn,
- int rightIn, int topBevel, int relief)))
-#endif /* #ifndef Tk_3DHorizontalBevel */
-
-#ifndef Tk_3DVerticalBevel
-VFUNC(void,Tk_3DVerticalBevel,V_Tk_3DVerticalBevel,_ANSI_ARGS_((Tk_Window tkwin,
- Drawable drawable, Tk_3DBorder border, int x,
- int y, int width, int height, int leftBevel,
- int relief)))
-#endif /* #ifndef Tk_3DVerticalBevel */
-
-#ifndef Tk_Alloc3DBorderFromObj
-VFUNC(Tk_3DBorder,Tk_Alloc3DBorderFromObj,V_Tk_Alloc3DBorderFromObj,_ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_Alloc3DBorderFromObj */
-
-#ifndef Tk_AllocBitmapFromObj
-VFUNC(Pixmap,Tk_AllocBitmapFromObj,V_Tk_AllocBitmapFromObj,_ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_AllocBitmapFromObj */
-
-#ifndef Tk_AllocColorFromObj
-VFUNC(XColor *,Tk_AllocColorFromObj,V_Tk_AllocColorFromObj,_ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_AllocColorFromObj */
-
-#ifndef Tk_AllocCursorFromObj
-VFUNC(Tk_Cursor,Tk_AllocCursorFromObj,V_Tk_AllocCursorFromObj,_ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_AllocCursorFromObj */
-
-#ifndef Tk_AllocFontFromObj
-VFUNC(Tk_Font,Tk_AllocFontFromObj,V_Tk_AllocFontFromObj,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_AllocFontFromObj */
-
-#ifndef Tk_AllocStyleFromObj
-VFUNC(Tk_Style,Tk_AllocStyleFromObj,V_Tk_AllocStyleFromObj,_ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_AllocStyleFromObj */
-
-#ifndef Tk_BindEvent
-VFUNC(void,Tk_BindEvent,V_Tk_BindEvent,_ANSI_ARGS_((
- Tk_BindingTable bindingTable,
- XEvent * eventPtr, Tk_Window tkwin,
- int numObjects, ClientData * objectPtr)))
-#endif /* #ifndef Tk_BindEvent */
-
-#ifndef Tk_ChangeWindowAttributes
-VFUNC(void,Tk_ChangeWindowAttributes,V_Tk_ChangeWindowAttributes,_ANSI_ARGS_((
- Tk_Window tkwin, unsigned long valueMask,
- XSetWindowAttributes * attsPtr)))
-#endif /* #ifndef Tk_ChangeWindowAttributes */
-
-#ifndef Tk_CharBbox
-VFUNC(int,Tk_CharBbox,V_Tk_CharBbox,_ANSI_ARGS_((Tk_TextLayout layout,
- int index, int * xPtr, int * yPtr,
- int * widthPtr, int * heightPtr)))
-#endif /* #ifndef Tk_CharBbox */
-
-#ifndef Tk_ClearSelection
-VFUNC(void,Tk_ClearSelection,V_Tk_ClearSelection,_ANSI_ARGS_((Tk_Window tkwin,
- Atom selection)))
-#endif /* #ifndef Tk_ClearSelection */
-
-#ifndef Tk_ClipboardAppend
-VFUNC(int,Tk_ClipboardAppend,V_Tk_ClipboardAppend,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Atom target, Atom format,
- char* buffer)))
-#endif /* #ifndef Tk_ClipboardAppend */
-
-#ifndef Tk_ClipboardClear
-VFUNC(int,Tk_ClipboardClear,V_Tk_ClipboardClear,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin)))
-#endif /* #ifndef Tk_ClipboardClear */
-
-#ifndef Tk_CollapseMotionEvents
-VFUNC(int,Tk_CollapseMotionEvents,V_Tk_CollapseMotionEvents,_ANSI_ARGS_((
- Display * display, int collapse)))
-#endif /* #ifndef Tk_CollapseMotionEvents */
-
-#ifndef Tk_ComputeTextLayout
-VFUNC(Tk_TextLayout,Tk_ComputeTextLayout,V_Tk_ComputeTextLayout,_ANSI_ARGS_((Tk_Font font,
- CONST char * str, int numChars,
- int wrapLength, Tk_Justify justify,
- int flags, int * widthPtr, int * heightPtr)))
-#endif /* #ifndef Tk_ComputeTextLayout */
-
-#ifndef Tk_ConfigureInfo
-VFUNC(int,Tk_ConfigureInfo,V_Tk_ConfigureInfo,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_ConfigSpec * specs,
- char * widgRec, CONST char * argvName,
- int flags)))
-#endif /* #ifndef Tk_ConfigureInfo */
-
-#ifndef Tk_ConfigureValue
-VFUNC(int,Tk_ConfigureValue,V_Tk_ConfigureValue,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_ConfigSpec * specs,
- char * widgRec, CONST char * argvName,
- int flags)))
-#endif /* #ifndef Tk_ConfigureValue */
-
-#ifndef Tk_ConfigureWidget
-VFUNC(int,Tk_ConfigureWidget,V_Tk_ConfigureWidget,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_ConfigSpec * specs,
- int argc, CONST84 Tcl_Obj *CONST *objv,
- char * widgRec, int flags)))
-#endif /* #ifndef Tk_ConfigureWidget */
-
-#ifndef Tk_ConfigureWindow
-VFUNC(void,Tk_ConfigureWindow,V_Tk_ConfigureWindow,_ANSI_ARGS_((Tk_Window tkwin,
- unsigned int valueMask,
- XWindowChanges * valuePtr)))
-#endif /* #ifndef Tk_ConfigureWindow */
-
-#ifndef Tk_CoordsToWindow
-VFUNC(Tk_Window,Tk_CoordsToWindow,V_Tk_CoordsToWindow,_ANSI_ARGS_((int rootX, int rootY,
- Tk_Window tkwin)))
-#endif /* #ifndef Tk_CoordsToWindow */
-
-#ifndef Tk_CreateAnonymousWindow
-VFUNC(Tk_Window,Tk_CreateAnonymousWindow,V_Tk_CreateAnonymousWindow,_ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window parent,
- CONST char * screenName)))
-#endif /* #ifndef Tk_CreateAnonymousWindow */
-
-#ifndef Tk_CreateBinding
-VFUNC(unsigned long,Tk_CreateBinding,V_Tk_CreateBinding,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_BindingTable bindingTable,
- ClientData object, CONST char * eventStr,
- Tcl_Obj *command, int append)))
-#endif /* #ifndef Tk_CreateBinding */
-
-#ifndef Tk_CreateBindingTable
-VFUNC(Tk_BindingTable,Tk_CreateBindingTable,V_Tk_CreateBindingTable,_ANSI_ARGS_((
- Tcl_Interp * interp)))
-#endif /* #ifndef Tk_CreateBindingTable */
-
-#ifndef Tk_CreateClientMessageHandler
-VFUNC(void,Tk_CreateClientMessageHandler,V_Tk_CreateClientMessageHandler,_ANSI_ARGS_((
- Tk_ClientMessageProc * proc)))
-#endif /* #ifndef Tk_CreateClientMessageHandler */
-
-#ifndef Tk_CreateErrorHandler
-VFUNC(Tk_ErrorHandler,Tk_CreateErrorHandler,V_Tk_CreateErrorHandler,_ANSI_ARGS_((Display * display,
- int errNum, int request, int minorCode,
- Tk_ErrorProc * errorProc,
- ClientData clientData)))
-#endif /* #ifndef Tk_CreateErrorHandler */
-
-#ifndef Tk_CreateEventHandler
-VFUNC(void,Tk_CreateEventHandler,V_Tk_CreateEventHandler,_ANSI_ARGS_((Tk_Window token,
- unsigned long mask, Tk_EventProc * proc,
- ClientData clientData)))
-#endif /* #ifndef Tk_CreateEventHandler */
-
-#ifndef Tk_CreateGenericHandler
-VFUNC(void,Tk_CreateGenericHandler,V_Tk_CreateGenericHandler,_ANSI_ARGS_((
- Tk_GenericProc * proc, ClientData clientData)))
-#endif /* #ifndef Tk_CreateGenericHandler */
-
-#ifndef Tk_CreateImageType
-VFUNC(void,Tk_CreateImageType,V_Tk_CreateImageType,_ANSI_ARGS_((
- Tk_ImageType * typePtr)))
-#endif /* #ifndef Tk_CreateImageType */
-
-#ifndef Tk_CreateOptionTable
-VFUNC(Tk_OptionTable,Tk_CreateOptionTable,V_Tk_CreateOptionTable,_ANSI_ARGS_((
- Tcl_Interp * interp,
- CONST Tk_OptionSpec * templatePtr)))
-#endif /* #ifndef Tk_CreateOptionTable */
-
-#ifndef Tk_CreateSelHandler
-VFUNC(void,Tk_CreateSelHandler,V_Tk_CreateSelHandler,_ANSI_ARGS_((Tk_Window tkwin,
- Atom selection, Atom target,
- Tk_SelectionProc * proc,
- ClientData clientData, Atom format)))
-#endif /* #ifndef Tk_CreateSelHandler */
-
-#ifndef Tk_CreateStyle
-VFUNC(Tk_Style,Tk_CreateStyle,V_Tk_CreateStyle,_ANSI_ARGS_((CONST char * name,
- Tk_StyleEngine engine, ClientData clientData)))
-#endif /* #ifndef Tk_CreateStyle */
-
-#ifndef Tk_CreateWindow
-VFUNC(Tk_Window,Tk_CreateWindow,V_Tk_CreateWindow,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window parent, CONST char * name,
- CONST char * screenName)))
-#endif /* #ifndef Tk_CreateWindow */
-
-#ifndef Tk_CreateWindowFromPath
-VFUNC(Tk_Window,Tk_CreateWindowFromPath,V_Tk_CreateWindowFromPath,_ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- CONST char * pathName,
- CONST char * screenName)))
-#endif /* #ifndef Tk_CreateWindowFromPath */
-
-#ifndef Tk_DefineBitmap
-VFUNC(int,Tk_DefineBitmap,V_Tk_DefineBitmap,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name, CONST char * source,
- int width, int height)))
-#endif /* #ifndef Tk_DefineBitmap */
-
-#ifndef Tk_DefineCursor
-VFUNC(void,Tk_DefineCursor,V_Tk_DefineCursor,_ANSI_ARGS_((Tk_Window window,
- Tk_Cursor cursor)))
-#endif /* #ifndef Tk_DefineCursor */
-
-#ifndef Tk_DeleteAllBindings
-VFUNC(void,Tk_DeleteAllBindings,V_Tk_DeleteAllBindings,_ANSI_ARGS_((
- Tk_BindingTable bindingTable,
- ClientData object)))
-#endif /* #ifndef Tk_DeleteAllBindings */
-
-#ifndef Tk_DeleteBinding
-VFUNC(int,Tk_DeleteBinding,V_Tk_DeleteBinding,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_BindingTable bindingTable,
- ClientData object, CONST char * eventStr)))
-#endif /* #ifndef Tk_DeleteBinding */
-
-#ifndef Tk_DeleteBindingTable
-VFUNC(void,Tk_DeleteBindingTable,V_Tk_DeleteBindingTable,_ANSI_ARGS_((
- Tk_BindingTable bindingTable)))
-#endif /* #ifndef Tk_DeleteBindingTable */
-
-#ifndef Tk_DeleteClientMessageHandler
-VFUNC(void,Tk_DeleteClientMessageHandler,V_Tk_DeleteClientMessageHandler,_ANSI_ARGS_((
- Tk_ClientMessageProc * proc)))
-#endif /* #ifndef Tk_DeleteClientMessageHandler */
-
-#ifndef Tk_DeleteErrorHandler
-VFUNC(void,Tk_DeleteErrorHandler,V_Tk_DeleteErrorHandler,_ANSI_ARGS_((
- Tk_ErrorHandler handler)))
-#endif /* #ifndef Tk_DeleteErrorHandler */
-
-#ifndef Tk_DeleteEventHandler
-VFUNC(void,Tk_DeleteEventHandler,V_Tk_DeleteEventHandler,_ANSI_ARGS_((Tk_Window token,
- unsigned long mask, Tk_EventProc * proc,
- ClientData clientData)))
-#endif /* #ifndef Tk_DeleteEventHandler */
-
-#ifndef Tk_DeleteGenericHandler
-VFUNC(void,Tk_DeleteGenericHandler,V_Tk_DeleteGenericHandler,_ANSI_ARGS_((
- Tk_GenericProc * proc, ClientData clientData)))
-#endif /* #ifndef Tk_DeleteGenericHandler */
-
-#ifndef Tk_DeleteImage
-VFUNC(void,Tk_DeleteImage,V_Tk_DeleteImage,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name)))
-#endif /* #ifndef Tk_DeleteImage */
-
-#ifndef Tk_DeleteOptionTable
-VFUNC(void,Tk_DeleteOptionTable,V_Tk_DeleteOptionTable,_ANSI_ARGS_((
- Tk_OptionTable optionTable)))
-#endif /* #ifndef Tk_DeleteOptionTable */
-
-#ifndef Tk_DeleteSelHandler
-VFUNC(void,Tk_DeleteSelHandler,V_Tk_DeleteSelHandler,_ANSI_ARGS_((Tk_Window tkwin,
- Atom selection, Atom target)))
-#endif /* #ifndef Tk_DeleteSelHandler */
-
-#ifndef Tk_DestroyWindow
-VFUNC(void,Tk_DestroyWindow,V_Tk_DestroyWindow,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifndef Tk_DestroyWindow */
-
-#ifndef Tk_DisplayName
-VFUNC(CONST84_RETURN char *,Tk_DisplayName,V_Tk_DisplayName,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifndef Tk_DisplayName */
-
-#ifndef Tk_DistanceToTextLayout
-VFUNC(int,Tk_DistanceToTextLayout,V_Tk_DistanceToTextLayout,_ANSI_ARGS_((
- Tk_TextLayout layout, int x, int y)))
-#endif /* #ifndef Tk_DistanceToTextLayout */
-
-#ifndef Tk_Draw3DPolygon
-VFUNC(void,Tk_Draw3DPolygon,V_Tk_Draw3DPolygon,_ANSI_ARGS_((Tk_Window tkwin,
- Drawable drawable, Tk_3DBorder border,
- XPoint * pointPtr, int numPoints,
- int borderWidth, int leftRelief)))
-#endif /* #ifndef Tk_Draw3DPolygon */
-
-#ifndef Tk_Draw3DRectangle
-VFUNC(void,Tk_Draw3DRectangle,V_Tk_Draw3DRectangle,_ANSI_ARGS_((Tk_Window tkwin,
- Drawable drawable, Tk_3DBorder border, int x,
- int y, int width, int height,
- int borderWidth, int relief)))
-#endif /* #ifndef Tk_Draw3DRectangle */
-
-#ifndef Tk_DrawChars
-VFUNC(void,Tk_DrawChars,V_Tk_DrawChars,_ANSI_ARGS_((Display * display,
- Drawable drawable, GC gc, Tk_Font tkfont,
- CONST char * source, int numBytes, int x,
- int y)))
-#endif /* #ifndef Tk_DrawChars */
-
-#ifndef Tk_DrawElement
-VFUNC(void,Tk_DrawElement,V_Tk_DrawElement,_ANSI_ARGS_((Tk_Style style,
- Tk_StyledElement element, char * recordPtr,
- Tk_Window tkwin, Drawable d, int x, int y,
- int width, int height, int state)))
-#endif /* #ifndef Tk_DrawElement */
-
-#ifndef Tk_DrawFocusHighlight
-VFUNC(void,Tk_DrawFocusHighlight,V_Tk_DrawFocusHighlight,_ANSI_ARGS_((Tk_Window tkwin,
- GC gc, int width, Drawable drawable)))
-#endif /* #ifndef Tk_DrawFocusHighlight */
-
-#ifndef Tk_DrawTextLayout
-VFUNC(void,Tk_DrawTextLayout,V_Tk_DrawTextLayout,_ANSI_ARGS_((Display * display,
- Drawable drawable, GC gc,
- Tk_TextLayout layout, int x, int y,
- int firstChar, int lastChar)))
-#endif /* #ifndef Tk_DrawTextLayout */
-
-#ifndef Tk_Fill3DPolygon
-VFUNC(void,Tk_Fill3DPolygon,V_Tk_Fill3DPolygon,_ANSI_ARGS_((Tk_Window tkwin,
- Drawable drawable, Tk_3DBorder border,
- XPoint * pointPtr, int numPoints,
- int borderWidth, int leftRelief)))
-#endif /* #ifndef Tk_Fill3DPolygon */
-
-#ifndef Tk_Fill3DRectangle
-VFUNC(void,Tk_Fill3DRectangle,V_Tk_Fill3DRectangle,_ANSI_ARGS_((Tk_Window tkwin,
- Drawable drawable, Tk_3DBorder border, int x,
- int y, int width, int height,
- int borderWidth, int relief)))
-#endif /* #ifndef Tk_Fill3DRectangle */
-
-#ifndef Tk_FontId
-VFUNC(Font,Tk_FontId,V_Tk_FontId,_ANSI_ARGS_((Tk_Font font)))
-#endif /* #ifndef Tk_FontId */
-
-#ifndef Tk_Free3DBorder
-VFUNC(void,Tk_Free3DBorder,V_Tk_Free3DBorder,_ANSI_ARGS_((Tk_3DBorder border)))
-#endif /* #ifndef Tk_Free3DBorder */
-
-#ifndef Tk_Free3DBorderFromObj
-VFUNC(void,Tk_Free3DBorderFromObj,V_Tk_Free3DBorderFromObj,_ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_Free3DBorderFromObj */
-
-#ifndef Tk_FreeBitmap
-VFUNC(void,Tk_FreeBitmap,V_Tk_FreeBitmap,_ANSI_ARGS_((Display * display,
- Pixmap bitmap)))
-#endif /* #ifndef Tk_FreeBitmap */
-
-#ifndef Tk_FreeBitmapFromObj
-VFUNC(void,Tk_FreeBitmapFromObj,V_Tk_FreeBitmapFromObj,_ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_FreeBitmapFromObj */
-
-#ifndef Tk_FreeColor
-VFUNC(void,Tk_FreeColor,V_Tk_FreeColor,_ANSI_ARGS_((XColor * colorPtr)))
-#endif /* #ifndef Tk_FreeColor */
-
-#ifndef Tk_FreeColorFromObj
-VFUNC(void,Tk_FreeColorFromObj,V_Tk_FreeColorFromObj,_ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_FreeColorFromObj */
-
-#ifndef Tk_FreeColormap
-VFUNC(void,Tk_FreeColormap,V_Tk_FreeColormap,_ANSI_ARGS_((Display * display,
- Colormap colormap)))
-#endif /* #ifndef Tk_FreeColormap */
-
-#ifndef Tk_FreeConfigOptions
-VFUNC(void,Tk_FreeConfigOptions,V_Tk_FreeConfigOptions,_ANSI_ARGS_((char * recordPtr,
- Tk_OptionTable optionToken, Tk_Window tkwin)))
-#endif /* #ifndef Tk_FreeConfigOptions */
-
-#ifndef Tk_FreeCursor
-VFUNC(void,Tk_FreeCursor,V_Tk_FreeCursor,_ANSI_ARGS_((Display * display,
- Tk_Cursor cursor)))
-#endif /* #ifndef Tk_FreeCursor */
-
-#ifndef Tk_FreeCursorFromObj
-VFUNC(void,Tk_FreeCursorFromObj,V_Tk_FreeCursorFromObj,_ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_FreeCursorFromObj */
-
-#ifndef Tk_FreeFont
-VFUNC(void,Tk_FreeFont,V_Tk_FreeFont,_ANSI_ARGS_((Tk_Font f)))
-#endif /* #ifndef Tk_FreeFont */
-
-#ifndef Tk_FreeFontFromObj
-VFUNC(void,Tk_FreeFontFromObj,V_Tk_FreeFontFromObj,_ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_FreeFontFromObj */
-
-#ifndef Tk_FreeGC
-VFUNC(void,Tk_FreeGC,V_Tk_FreeGC,_ANSI_ARGS_((Display * display, GC gc)))
-#endif /* #ifndef Tk_FreeGC */
-
-#ifndef Tk_FreeImage
-VFUNC(void,Tk_FreeImage,V_Tk_FreeImage,_ANSI_ARGS_((Tk_Image image)))
-#endif /* #ifndef Tk_FreeImage */
-
-#ifndef Tk_FreeOptions
-VFUNC(void,Tk_FreeOptions,V_Tk_FreeOptions,_ANSI_ARGS_((Tk_ConfigSpec * specs,
- char * widgRec, Display * display,
- int needFlags)))
-#endif /* #ifndef Tk_FreeOptions */
-
-#ifndef Tk_FreePixmap
-VFUNC(void,Tk_FreePixmap,V_Tk_FreePixmap,_ANSI_ARGS_((Display * display,
- Pixmap pixmap)))
-#endif /* #ifndef Tk_FreePixmap */
-
-#ifndef Tk_FreeSavedOptions
-VFUNC(void,Tk_FreeSavedOptions,V_Tk_FreeSavedOptions,_ANSI_ARGS_((
- Tk_SavedOptions * savePtr)))
-#endif /* #ifndef Tk_FreeSavedOptions */
-
-#ifndef Tk_FreeStyle
-VFUNC(void,Tk_FreeStyle,V_Tk_FreeStyle,_ANSI_ARGS_((Tk_Style style)))
-#endif /* #ifndef Tk_FreeStyle */
-
-#ifndef Tk_FreeStyleFromObj
-VFUNC(void,Tk_FreeStyleFromObj,V_Tk_FreeStyleFromObj,_ANSI_ARGS_((Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_FreeStyleFromObj */
-
-#ifndef Tk_FreeTextLayout
-VFUNC(void,Tk_FreeTextLayout,V_Tk_FreeTextLayout,_ANSI_ARGS_((
- Tk_TextLayout textLayout)))
-#endif /* #ifndef Tk_FreeTextLayout */
-
-#ifndef Tk_FreeXId
-VFUNC(void,Tk_FreeXId,V_Tk_FreeXId,_ANSI_ARGS_((Display * display, XID xid)))
-#endif /* #ifndef Tk_FreeXId */
-
-#ifndef Tk_GCForColor
-VFUNC(GC,Tk_GCForColor,V_Tk_GCForColor,_ANSI_ARGS_((XColor * colorPtr,
- Drawable drawable)))
-#endif /* #ifndef Tk_GCForColor */
-
-#ifndef Tk_GeometryRequest
-VFUNC(void,Tk_GeometryRequest,V_Tk_GeometryRequest,_ANSI_ARGS_((Tk_Window tkwin,
- int reqWidth, int reqHeight)))
-#endif /* #ifndef Tk_GeometryRequest */
-
-#ifndef Tk_Get3DBorder
-VFUNC(Tk_3DBorder,Tk_Get3DBorder,V_Tk_Get3DBorder,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_Uid colorName)))
-#endif /* #ifndef Tk_Get3DBorder */
-
-#ifndef Tk_Get3DBorderFromObj
-VFUNC(Tk_3DBorder,Tk_Get3DBorderFromObj,V_Tk_Get3DBorderFromObj,_ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_Get3DBorderFromObj */
-
-#ifndef Tk_GetAllBindings
-VFUNC(void,Tk_GetAllBindings,V_Tk_GetAllBindings,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_BindingTable bindingTable,
- ClientData object)))
-#endif /* #ifndef Tk_GetAllBindings */
-
-#ifndef Tk_GetAnchor
-VFUNC(int,Tk_GetAnchor,V_Tk_GetAnchor,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, Tk_Anchor * anchorPtr)))
-#endif /* #ifndef Tk_GetAnchor */
-
-#ifndef Tk_GetAnchorFromObj
-VFUNC(int,Tk_GetAnchorFromObj,V_Tk_GetAnchorFromObj,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, Tk_Anchor * anchorPtr)))
-#endif /* #ifndef Tk_GetAnchorFromObj */
-
-#ifndef Tk_GetAtomName
-VFUNC(CONST84_RETURN char *,Tk_GetAtomName,V_Tk_GetAtomName,_ANSI_ARGS_((Tk_Window tkwin,
- Atom atom)))
-#endif /* #ifndef Tk_GetAtomName */
-
-#ifndef Tk_GetBinding
-VFUNC(Tcl_Obj *,Tk_GetBinding,V_Tk_GetBinding,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_BindingTable bindingTable,
- ClientData object, CONST char * eventStr)))
-#endif /* #ifndef Tk_GetBinding */
-
-#ifndef Tk_GetBitmap
-VFUNC(Pixmap,Tk_GetBitmap,V_Tk_GetBitmap,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, CONST char * str)))
-#endif /* #ifndef Tk_GetBitmap */
-
-#ifndef Tk_GetBitmapFromData
-VFUNC(Pixmap,Tk_GetBitmapFromData,V_Tk_GetBitmapFromData,_ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- CONST char * source, int width, int height)))
-#endif /* #ifndef Tk_GetBitmapFromData */
-
-#ifndef Tk_GetBitmapFromObj
-VFUNC(Pixmap,Tk_GetBitmapFromObj,V_Tk_GetBitmapFromObj,_ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_GetBitmapFromObj */
-
-#ifndef Tk_GetCapStyle
-VFUNC(int,Tk_GetCapStyle,V_Tk_GetCapStyle,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, int * capPtr)))
-#endif /* #ifndef Tk_GetCapStyle */
-
-#ifndef Tk_GetColor
-VFUNC(XColor *,Tk_GetColor,V_Tk_GetColor,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_Uid name)))
-#endif /* #ifndef Tk_GetColor */
-
-#ifndef Tk_GetColorByValue
-VFUNC(XColor *,Tk_GetColorByValue,V_Tk_GetColorByValue,_ANSI_ARGS_((Tk_Window tkwin,
- XColor * colorPtr)))
-#endif /* #ifndef Tk_GetColorByValue */
-
-#ifndef Tk_GetColorFromObj
-VFUNC(XColor *,Tk_GetColorFromObj,V_Tk_GetColorFromObj,_ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_GetColorFromObj */
-
-#ifndef Tk_GetColormap
-VFUNC(Colormap,Tk_GetColormap,V_Tk_GetColormap,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, CONST char * str)))
-#endif /* #ifndef Tk_GetColormap */
-
-#ifndef Tk_GetCursor
-VFUNC(Tk_Cursor,Tk_GetCursor,V_Tk_GetCursor,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_Uid str)))
-#endif /* #ifndef Tk_GetCursor */
-
-#ifndef Tk_GetCursorFromData
-VFUNC(Tk_Cursor,Tk_GetCursorFromData,V_Tk_GetCursorFromData,_ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- CONST char * source, CONST char * mask,
- int width, int height, int xHot, int yHot,
- Tk_Uid fg, Tk_Uid bg)))
-#endif /* #ifndef Tk_GetCursorFromData */
-
-#ifndef Tk_GetCursorFromObj
-VFUNC(Tk_Cursor,Tk_GetCursorFromObj,V_Tk_GetCursorFromObj,_ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_GetCursorFromObj */
-
-#ifndef Tk_GetElementBorderWidth
-VFUNC(int,Tk_GetElementBorderWidth,V_Tk_GetElementBorderWidth,_ANSI_ARGS_((Tk_Style style,
- Tk_StyledElement element, char * recordPtr,
- Tk_Window tkwin)))
-#endif /* #ifndef Tk_GetElementBorderWidth */
-
-#ifndef Tk_GetElementBox
-VFUNC(void,Tk_GetElementBox,V_Tk_GetElementBox,_ANSI_ARGS_((Tk_Style style,
- Tk_StyledElement element, char * recordPtr,
- Tk_Window tkwin, int x, int y, int width,
- int height, int inner, int * xPtr,
- int * yPtr, int * widthPtr, int * heightPtr)))
-#endif /* #ifndef Tk_GetElementBox */
-
-#ifndef Tk_GetElementId
-VFUNC(int,Tk_GetElementId,V_Tk_GetElementId,_ANSI_ARGS_((CONST char * name)))
-#endif /* #ifndef Tk_GetElementId */
-
-#ifndef Tk_GetElementSize
-VFUNC(void,Tk_GetElementSize,V_Tk_GetElementSize,_ANSI_ARGS_((Tk_Style style,
- Tk_StyledElement element, char * recordPtr,
- Tk_Window tkwin, int width, int height,
- int inner, int * widthPtr, int * heightPtr)))
-#endif /* #ifndef Tk_GetElementSize */
-
-#ifndef Tk_GetFont
-VFUNC(Tk_Font,Tk_GetFont,V_Tk_GetFont,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, CONST char * str)))
-#endif /* #ifndef Tk_GetFont */
-
-#ifndef Tk_GetFontFromObj
-VFUNC(Tk_Font,Tk_GetFontFromObj,V_Tk_GetFontFromObj,_ANSI_ARGS_((Tk_Window tkwin,
- Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_GetFontFromObj */
-
-#ifndef Tk_GetFontMetrics
-VFUNC(void,Tk_GetFontMetrics,V_Tk_GetFontMetrics,_ANSI_ARGS_((Tk_Font font,
- Tk_FontMetrics * fmPtr)))
-#endif /* #ifndef Tk_GetFontMetrics */
-
-#ifndef Tk_GetGC
-VFUNC(GC,Tk_GetGC,V_Tk_GetGC,_ANSI_ARGS_((Tk_Window tkwin,
- unsigned long valueMask,
- XGCValues * valuePtr)))
-#endif /* #ifndef Tk_GetGC */
-
-#ifndef Tk_GetImage
-VFUNC(Tk_Image,Tk_GetImage,V_Tk_GetImage,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, CONST char * name,
- Tk_ImageChangedProc * changeProc,
- ClientData clientData)))
-#endif /* #ifndef Tk_GetImage */
-
-#ifndef Tk_GetImageMasterData
-VFUNC(ClientData,Tk_GetImageMasterData,V_Tk_GetImageMasterData,_ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * name,
- Tk_ImageType ** typePtrPtr)))
-#endif /* #ifndef Tk_GetImageMasterData */
-
-#ifndef Tk_GetJoinStyle
-VFUNC(int,Tk_GetJoinStyle,V_Tk_GetJoinStyle,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, int * joinPtr)))
-#endif /* #ifndef Tk_GetJoinStyle */
-
-#ifndef Tk_GetJustify
-VFUNC(int,Tk_GetJustify,V_Tk_GetJustify,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * str, Tk_Justify * justifyPtr)))
-#endif /* #ifndef Tk_GetJustify */
-
-#ifndef Tk_GetJustifyFromObj
-VFUNC(int,Tk_GetJustifyFromObj,V_Tk_GetJustifyFromObj,_ANSI_ARGS_((
- Tcl_Interp * interp, Tcl_Obj * objPtr,
- Tk_Justify * justifyPtr)))
-#endif /* #ifndef Tk_GetJustifyFromObj */
-
-#ifndef Tk_GetMMFromObj
-VFUNC(int,Tk_GetMMFromObj,V_Tk_GetMMFromObj,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj * objPtr,
- double * doublePtr)))
-#endif /* #ifndef Tk_GetMMFromObj */
-
-#ifndef Tk_GetNumMainWindows
-VFUNC(int,Tk_GetNumMainWindows,V_Tk_GetNumMainWindows,_ANSI_ARGS_((void)))
-#endif /* #ifndef Tk_GetNumMainWindows */
-
-#ifndef Tk_GetOptionInfo
-VFUNC(Tcl_Obj *,Tk_GetOptionInfo,V_Tk_GetOptionInfo,_ANSI_ARGS_((Tcl_Interp * interp,
- char * recordPtr, Tk_OptionTable optionTable,
- Tcl_Obj * namePtr, Tk_Window tkwin)))
-#endif /* #ifndef Tk_GetOptionInfo */
-
-#ifndef Tk_GetOptionValue
-VFUNC(Tcl_Obj *,Tk_GetOptionValue,V_Tk_GetOptionValue,_ANSI_ARGS_((Tcl_Interp * interp,
- char * recordPtr, Tk_OptionTable optionTable,
- Tcl_Obj * namePtr, Tk_Window tkwin)))
-#endif /* #ifndef Tk_GetOptionValue */
-
-#ifndef Tk_GetPixels
-VFUNC(int,Tk_GetPixels,V_Tk_GetPixels,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, CONST char * str,
- int * intPtr)))
-#endif /* #ifndef Tk_GetPixels */
-
-#ifndef Tk_GetPixelsFromObj
-VFUNC(int,Tk_GetPixelsFromObj,V_Tk_GetPixelsFromObj,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj * objPtr,
- int * intPtr)))
-#endif /* #ifndef Tk_GetPixelsFromObj */
-
-#ifndef Tk_GetPixmap
-VFUNC(Pixmap,Tk_GetPixmap,V_Tk_GetPixmap,_ANSI_ARGS_((Display * display,
- Drawable d, int width, int height, int depth)))
-#endif /* #ifndef Tk_GetPixmap */
-
-#ifndef Tk_GetRelief
-VFUNC(int,Tk_GetRelief,V_Tk_GetRelief,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name, int * reliefPtr)))
-#endif /* #ifndef Tk_GetRelief */
-
-#ifndef Tk_GetReliefFromObj
-VFUNC(int,Tk_GetReliefFromObj,V_Tk_GetReliefFromObj,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * objPtr, int * resultPtr)))
-#endif /* #ifndef Tk_GetReliefFromObj */
-
-#ifndef Tk_GetRootCoords
-VFUNC(void,Tk_GetRootCoords,V_Tk_GetRootCoords,_ANSI_ARGS_((Tk_Window tkwin,
- int * xPtr, int * yPtr)))
-#endif /* #ifndef Tk_GetRootCoords */
-
-#ifndef Tk_GetScreenMM
-VFUNC(int,Tk_GetScreenMM,V_Tk_GetScreenMM,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, CONST char * str,
- double * doublePtr)))
-#endif /* #ifndef Tk_GetScreenMM */
-
-#ifndef Tk_GetScrollInfo
-VFUNC(int,Tk_GetScrollInfo,V_Tk_GetScrollInfo,_ANSI_ARGS_((Tcl_Interp * interp,
- int argc, CONST84 Tcl_Obj *CONST *objv,
- double * dblPtr, int * intPtr)))
-#endif /* #ifndef Tk_GetScrollInfo */
-
-#ifndef Tk_GetScrollInfoObj
-VFUNC(int,Tk_GetScrollInfoObj,V_Tk_GetScrollInfoObj,_ANSI_ARGS_((Tcl_Interp * interp,
- int objc, Tcl_Obj *CONST objv[],
- double * dblPtr, int * intPtr)))
-#endif /* #ifndef Tk_GetScrollInfoObj */
-
-#ifndef Tk_GetSelection
-VFUNC(int,Tk_GetSelection,V_Tk_GetSelection,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Atom selection, Atom target,
- Tk_GetSelProc * proc, ClientData clientData)))
-#endif /* #ifndef Tk_GetSelection */
-
-#ifndef Tk_GetStyle
-VFUNC(Tk_Style,Tk_GetStyle,V_Tk_GetStyle,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * name)))
-#endif /* #ifndef Tk_GetStyle */
-
-#ifndef Tk_GetStyleEngine
-VFUNC(Tk_StyleEngine,Tk_GetStyleEngine,V_Tk_GetStyleEngine,_ANSI_ARGS_((CONST char * name)))
-#endif /* #ifndef Tk_GetStyleEngine */
-
-#ifndef Tk_GetStyleFromObj
-VFUNC(Tk_Style,Tk_GetStyleFromObj,V_Tk_GetStyleFromObj,_ANSI_ARGS_((Tcl_Obj * objPtr)))
-#endif /* #ifndef Tk_GetStyleFromObj */
-
-#ifndef Tk_GetStyledElement
-VFUNC(Tk_StyledElement,Tk_GetStyledElement,V_Tk_GetStyledElement,_ANSI_ARGS_((Tk_Style style,
- int elementId, Tk_OptionTable optionTable)))
-#endif /* #ifndef Tk_GetStyledElement */
-
-#ifndef Tk_GetUid
-VFUNC(Tk_Uid,Tk_GetUid,V_Tk_GetUid,_ANSI_ARGS_((CONST char * str)))
-#endif /* #ifndef Tk_GetUid */
-
-#ifndef Tk_GetVRootGeometry
-VFUNC(void,Tk_GetVRootGeometry,V_Tk_GetVRootGeometry,_ANSI_ARGS_((Tk_Window tkwin,
- int * xPtr, int * yPtr, int * widthPtr,
- int * heightPtr)))
-#endif /* #ifndef Tk_GetVRootGeometry */
-
-#ifndef Tk_GetVisual
-VFUNC(Visual *,Tk_GetVisual,V_Tk_GetVisual,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj *str,
- int * depthPtr, Colormap * colormapPtr)))
-#endif /* #ifndef Tk_GetVisual */
-
-#ifndef Tk_Grab
-VFUNC(int,Tk_Grab,V_Tk_Grab,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, int grabGlobal)))
-#endif /* #ifndef Tk_Grab */
-
-#ifndef Tk_HandleEvent
-VFUNC(void,Tk_HandleEvent,V_Tk_HandleEvent,_ANSI_ARGS_((XEvent * eventPtr)))
-#endif /* #ifndef Tk_HandleEvent */
-
-#ifndef Tk_IdToWindow
-VFUNC(Tk_Window,Tk_IdToWindow,V_Tk_IdToWindow,_ANSI_ARGS_((Display * display,
- Window window)))
-#endif /* #ifndef Tk_IdToWindow */
-
-#ifndef Tk_ImageChanged
-VFUNC(void,Tk_ImageChanged,V_Tk_ImageChanged,_ANSI_ARGS_((Tk_ImageMaster master,
- int x, int y, int width, int height,
- int imageWidth, int imageHeight)))
-#endif /* #ifndef Tk_ImageChanged */
-
-#ifndef Tk_InitOptions
-VFUNC(int,Tk_InitOptions,V_Tk_InitOptions,_ANSI_ARGS_((Tcl_Interp * interp,
- char * recordPtr, Tk_OptionTable optionToken,
- Tk_Window tkwin)))
-#endif /* #ifndef Tk_InitOptions */
-
-#ifndef Tk_InternAtom
-VFUNC(Atom,Tk_InternAtom,V_Tk_InternAtom,_ANSI_ARGS_((Tk_Window tkwin,
- CONST char * name)))
-#endif /* #ifndef Tk_InternAtom */
-
-#ifndef Tk_IntersectTextLayout
-VFUNC(int,Tk_IntersectTextLayout,V_Tk_IntersectTextLayout,_ANSI_ARGS_((
- Tk_TextLayout layout, int x, int y,
- int width, int height)))
-#endif /* #ifndef Tk_IntersectTextLayout */
-
-#ifndef Tk_MainLoop
-VFUNC(void,Tk_MainLoop,V_Tk_MainLoop,_ANSI_ARGS_((void)))
-#endif /* #ifndef Tk_MainLoop */
-
-#ifndef Tk_MainWindow
-VFUNC(Tk_Window,Tk_MainWindow,V_Tk_MainWindow,_ANSI_ARGS_((Tcl_Interp * interp)))
-#endif /* #ifndef Tk_MainWindow */
-
-#ifndef Tk_MaintainGeometry
-VFUNC(void,Tk_MaintainGeometry,V_Tk_MaintainGeometry,_ANSI_ARGS_((Tk_Window slave,
- Tk_Window master, int x, int y, int width,
- int height)))
-#endif /* #ifndef Tk_MaintainGeometry */
-
-#ifndef Tk_MakeWindowExist
-VFUNC(void,Tk_MakeWindowExist,V_Tk_MakeWindowExist,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifndef Tk_MakeWindowExist */
-
-#ifndef Tk_ManageGeometry
-VFUNC(void,Tk_ManageGeometry,V_Tk_ManageGeometry,_ANSI_ARGS_((Tk_Window tkwin,
- Tk_GeomMgr * mgrPtr, ClientData clientData)))
-#endif /* #ifndef Tk_ManageGeometry */
-
-#ifndef Tk_MapWindow
-VFUNC(void,Tk_MapWindow,V_Tk_MapWindow,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifndef Tk_MapWindow */
-
-#ifndef Tk_MeasureChars
-VFUNC(int,Tk_MeasureChars,V_Tk_MeasureChars,_ANSI_ARGS_((Tk_Font tkfont,
- CONST char * source, int numBytes,
- int maxPixels, int flags, int * lengthPtr)))
-#endif /* #ifndef Tk_MeasureChars */
-
-#ifndef Tk_MoveResizeWindow
-VFUNC(void,Tk_MoveResizeWindow,V_Tk_MoveResizeWindow,_ANSI_ARGS_((Tk_Window tkwin,
- int x, int y, int width, int height)))
-#endif /* #ifndef Tk_MoveResizeWindow */
-
-#ifndef Tk_MoveToplevelWindow
-VFUNC(void,Tk_MoveToplevelWindow,V_Tk_MoveToplevelWindow,_ANSI_ARGS_((Tk_Window tkwin,
- int x, int y)))
-#endif /* #ifndef Tk_MoveToplevelWindow */
-
-#ifndef Tk_MoveWindow
-VFUNC(void,Tk_MoveWindow,V_Tk_MoveWindow,_ANSI_ARGS_((Tk_Window tkwin, int x,
- int y)))
-#endif /* #ifndef Tk_MoveWindow */
-
-#ifndef Tk_NameOf3DBorder
-VFUNC(CONST84_RETURN char *,Tk_NameOf3DBorder,V_Tk_NameOf3DBorder,_ANSI_ARGS_((
- Tk_3DBorder border)))
-#endif /* #ifndef Tk_NameOf3DBorder */
-
-#ifndef Tk_NameOfAnchor
-VFUNC(CONST84_RETURN char *,Tk_NameOfAnchor,V_Tk_NameOfAnchor,_ANSI_ARGS_((Tk_Anchor anchor)))
-#endif /* #ifndef Tk_NameOfAnchor */
-
-#ifndef Tk_NameOfBitmap
-VFUNC(CONST84_RETURN char *,Tk_NameOfBitmap,V_Tk_NameOfBitmap,_ANSI_ARGS_((Display * display,
- Pixmap bitmap)))
-#endif /* #ifndef Tk_NameOfBitmap */
-
-#ifndef Tk_NameOfCapStyle
-VFUNC(CONST84_RETURN char *,Tk_NameOfCapStyle,V_Tk_NameOfCapStyle,_ANSI_ARGS_((int cap)))
-#endif /* #ifndef Tk_NameOfCapStyle */
-
-#ifndef Tk_NameOfColor
-VFUNC(CONST84_RETURN char *,Tk_NameOfColor,V_Tk_NameOfColor,_ANSI_ARGS_((XColor * colorPtr)))
-#endif /* #ifndef Tk_NameOfColor */
-
-#ifndef Tk_NameOfCursor
-VFUNC(CONST84_RETURN char *,Tk_NameOfCursor,V_Tk_NameOfCursor,_ANSI_ARGS_((Display * display,
- Tk_Cursor cursor)))
-#endif /* #ifndef Tk_NameOfCursor */
-
-#ifndef Tk_NameOfFont
-VFUNC(CONST84_RETURN char *,Tk_NameOfFont,V_Tk_NameOfFont,_ANSI_ARGS_((Tk_Font font)))
-#endif /* #ifndef Tk_NameOfFont */
-
-#ifndef Tk_NameOfImage
-VFUNC(CONST84_RETURN char *,Tk_NameOfImage,V_Tk_NameOfImage,_ANSI_ARGS_((
- Tk_ImageMaster imageMaster)))
-#endif /* #ifndef Tk_NameOfImage */
-
-#ifndef Tk_NameOfJoinStyle
-VFUNC(CONST84_RETURN char *,Tk_NameOfJoinStyle,V_Tk_NameOfJoinStyle,_ANSI_ARGS_((int join)))
-#endif /* #ifndef Tk_NameOfJoinStyle */
-
-#ifndef Tk_NameOfJustify
-VFUNC(CONST84_RETURN char *,Tk_NameOfJustify,V_Tk_NameOfJustify,_ANSI_ARGS_((
- Tk_Justify justify)))
-#endif /* #ifndef Tk_NameOfJustify */
-
-#ifndef Tk_NameOfRelief
-VFUNC(CONST84_RETURN char *,Tk_NameOfRelief,V_Tk_NameOfRelief,_ANSI_ARGS_((int relief)))
-#endif /* #ifndef Tk_NameOfRelief */
-
-#ifndef Tk_NameOfStyle
-VFUNC(CONST char *,Tk_NameOfStyle,V_Tk_NameOfStyle,_ANSI_ARGS_((Tk_Style style)))
-#endif /* #ifndef Tk_NameOfStyle */
-
-#ifndef Tk_NameToWindow
-VFUNC(Tk_Window,Tk_NameToWindow,V_Tk_NameToWindow,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * pathName, Tk_Window tkwin)))
-#endif /* #ifndef Tk_NameToWindow */
-
-#ifndef Tk_OwnSelection
-VFUNC(void,Tk_OwnSelection,V_Tk_OwnSelection,_ANSI_ARGS_((Tk_Window tkwin,
- Atom selection, Tk_LostSelProc * proc,
- ClientData clientData)))
-#endif /* #ifndef Tk_OwnSelection */
-
-#ifndef Tk_PointToChar
-VFUNC(int,Tk_PointToChar,V_Tk_PointToChar,_ANSI_ARGS_((Tk_TextLayout layout,
- int x, int y)))
-#endif /* #ifndef Tk_PointToChar */
-
-#ifndef Tk_PostscriptBitmap
-VFUNC(int,Tk_PostscriptBitmap,V_Tk_PostscriptBitmap,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_PostscriptInfo psInfo,
- Pixmap bitmap, int startX, int startY,
- int width, int height)))
-#endif /* #ifndef Tk_PostscriptBitmap */
-
-#ifndef Tk_PostscriptColor
-VFUNC(int,Tk_PostscriptColor,V_Tk_PostscriptColor,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_PostscriptInfo psInfo, XColor * colorPtr)))
-#endif /* #ifndef Tk_PostscriptColor */
-
-#ifndef Tk_PostscriptFont
-VFUNC(int,Tk_PostscriptFont,V_Tk_PostscriptFont,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_PostscriptInfo psInfo, Tk_Font font)))
-#endif /* #ifndef Tk_PostscriptFont */
-
-#ifndef Tk_PostscriptFontName
-VFUNC(int,Tk_PostscriptFontName,V_Tk_PostscriptFontName,_ANSI_ARGS_((Tk_Font tkfont,
- Tcl_DString * dsPtr)))
-#endif /* #ifndef Tk_PostscriptFontName */
-
-#ifndef Tk_PostscriptImage
-VFUNC(int,Tk_PostscriptImage,V_Tk_PostscriptImage,_ANSI_ARGS_((Tk_Image image,
- Tcl_Interp * interp, Tk_Window tkwin,
- Tk_PostscriptInfo psinfo, int x, int y,
- int width, int height, int prepass)))
-#endif /* #ifndef Tk_PostscriptImage */
-
-#ifndef Tk_PostscriptPath
-VFUNC(void,Tk_PostscriptPath,V_Tk_PostscriptPath,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_PostscriptInfo psInfo, double * coordPtr,
- int numPoints)))
-#endif /* #ifndef Tk_PostscriptPath */
-
-#ifndef Tk_PostscriptPhoto
-VFUNC(int,Tk_PostscriptPhoto,V_Tk_PostscriptPhoto,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_PhotoImageBlock * blockPtr,
- Tk_PostscriptInfo psInfo, int width,
- int height)))
-#endif /* #ifndef Tk_PostscriptPhoto */
-
-#ifndef Tk_PostscriptStipple
-VFUNC(int,Tk_PostscriptStipple,V_Tk_PostscriptStipple,_ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Window tkwin,
- Tk_PostscriptInfo psInfo, Pixmap bitmap)))
-#endif /* #ifndef Tk_PostscriptStipple */
-
-#ifndef Tk_PostscriptY
-VFUNC(double,Tk_PostscriptY,V_Tk_PostscriptY,_ANSI_ARGS_((double y,
- Tk_PostscriptInfo psInfo)))
-#endif /* #ifndef Tk_PostscriptY */
-
-#ifndef Tk_PreserveColormap
-VFUNC(void,Tk_PreserveColormap,V_Tk_PreserveColormap,_ANSI_ARGS_((Display * display,
- Colormap colormap)))
-#endif /* #ifndef Tk_PreserveColormap */
-
-#ifndef Tk_QueueWindowEvent
-VFUNC(void,Tk_QueueWindowEvent,V_Tk_QueueWindowEvent,_ANSI_ARGS_((XEvent * eventPtr,
- Tcl_QueuePosition position)))
-#endif /* #ifndef Tk_QueueWindowEvent */
-
-#ifndef Tk_RedrawImage
-VFUNC(void,Tk_RedrawImage,V_Tk_RedrawImage,_ANSI_ARGS_((Tk_Image image,
- int imageX, int imageY, int width,
- int height, Drawable drawable, int drawableX,
- int drawableY)))
-#endif /* #ifndef Tk_RedrawImage */
-
-#ifndef Tk_RegisterStyleEngine
-VFUNC(Tk_StyleEngine,Tk_RegisterStyleEngine,V_Tk_RegisterStyleEngine,_ANSI_ARGS_((
- CONST char * name, Tk_StyleEngine parent)))
-#endif /* #ifndef Tk_RegisterStyleEngine */
-
-#ifndef Tk_RegisterStyledElement
-VFUNC(int,Tk_RegisterStyledElement,V_Tk_RegisterStyledElement,_ANSI_ARGS_((
- Tk_StyleEngine engine,
- Tk_ElementSpec * templatePtr)))
-#endif /* #ifndef Tk_RegisterStyledElement */
-
-#ifndef Tk_ResizeWindow
-VFUNC(void,Tk_ResizeWindow,V_Tk_ResizeWindow,_ANSI_ARGS_((Tk_Window tkwin,
- int width, int height)))
-#endif /* #ifndef Tk_ResizeWindow */
-
-#ifndef Tk_RestackWindow
-VFUNC(int,Tk_RestackWindow,V_Tk_RestackWindow,_ANSI_ARGS_((Tk_Window tkwin,
- int aboveBelow, Tk_Window other)))
-#endif /* #ifndef Tk_RestackWindow */
-
-#ifndef Tk_RestoreSavedOptions
-VFUNC(void,Tk_RestoreSavedOptions,V_Tk_RestoreSavedOptions,_ANSI_ARGS_((
- Tk_SavedOptions * savePtr)))
-#endif /* #ifndef Tk_RestoreSavedOptions */
-
-#ifndef Tk_RestrictEvents
-VFUNC(Tk_RestrictProc *,Tk_RestrictEvents,V_Tk_RestrictEvents,_ANSI_ARGS_((
- Tk_RestrictProc * proc, ClientData arg,
- ClientData * prevArgPtr)))
-#endif /* #ifndef Tk_RestrictEvents */
-
-#ifndef Tk_SetAppName
-VFUNC(CONST char *,Tk_SetAppName,V_Tk_SetAppName,_ANSI_ARGS_((Tk_Window tkwin,
- CONST char * name)))
-#endif /* #ifndef Tk_SetAppName */
-
-#ifndef Tk_SetBackgroundFromBorder
-VFUNC(void,Tk_SetBackgroundFromBorder,V_Tk_SetBackgroundFromBorder,_ANSI_ARGS_((
- Tk_Window tkwin, Tk_3DBorder border)))
-#endif /* #ifndef Tk_SetBackgroundFromBorder */
-
-#ifndef Tk_SetCaretPos
-VFUNC(void,Tk_SetCaretPos,V_Tk_SetCaretPos,_ANSI_ARGS_((Tk_Window tkwin, int x,
- int y, int height)))
-#endif /* #ifndef Tk_SetCaretPos */
-
-#ifndef Tk_SetClass
-VFUNC(void,Tk_SetClass,V_Tk_SetClass,_ANSI_ARGS_((Tk_Window tkwin,
- CONST char * className)))
-#endif /* #ifndef Tk_SetClass */
-
-#ifndef Tk_SetClassProcs
-VFUNC(void,Tk_SetClassProcs,V_Tk_SetClassProcs,_ANSI_ARGS_((Tk_Window tkwin,
- Tk_ClassProcs * procs,
- ClientData instanceData)))
-#endif /* #ifndef Tk_SetClassProcs */
-
-#ifndef Tk_SetGrid
-VFUNC(void,Tk_SetGrid,V_Tk_SetGrid,_ANSI_ARGS_((Tk_Window tkwin,
- int reqWidth, int reqHeight, int gridWidth,
- int gridHeight)))
-#endif /* #ifndef Tk_SetGrid */
-
-#ifndef Tk_SetInternalBorder
-VFUNC(void,Tk_SetInternalBorder,V_Tk_SetInternalBorder,_ANSI_ARGS_((Tk_Window tkwin,
- int width)))
-#endif /* #ifndef Tk_SetInternalBorder */
-
-#ifndef Tk_SetInternalBorderEx
-VFUNC(void,Tk_SetInternalBorderEx,V_Tk_SetInternalBorderEx,_ANSI_ARGS_((Tk_Window tkwin,
- int left, int right, int top, int bottom)))
-#endif /* #ifndef Tk_SetInternalBorderEx */
-
-#ifndef Tk_SetMinimumRequestSize
-VFUNC(void,Tk_SetMinimumRequestSize,V_Tk_SetMinimumRequestSize,_ANSI_ARGS_((
- Tk_Window tkwin, int minWidth, int minHeight)))
-#endif /* #ifndef Tk_SetMinimumRequestSize */
-
-#ifndef Tk_SetOptions
-VFUNC(int,Tk_SetOptions,V_Tk_SetOptions,_ANSI_ARGS_((Tcl_Interp * interp,
- char * recordPtr, Tk_OptionTable optionTable,
- int objc, Tcl_Obj *CONST objv[],
- Tk_Window tkwin, Tk_SavedOptions * savePtr,
- int * maskPtr)))
-#endif /* #ifndef Tk_SetOptions */
-
-#ifndef Tk_SetTSOrigin
-VFUNC(void,Tk_SetTSOrigin,V_Tk_SetTSOrigin,_ANSI_ARGS_((Tk_Window tkwin, GC gc,
- int x, int y)))
-#endif /* #ifndef Tk_SetTSOrigin */
-
-#ifndef Tk_SetWindowBackground
-VFUNC(void,Tk_SetWindowBackground,V_Tk_SetWindowBackground,_ANSI_ARGS_((Tk_Window tkwin,
- unsigned long pixel)))
-#endif /* #ifndef Tk_SetWindowBackground */
-
-#ifndef Tk_SetWindowBackgroundPixmap
-VFUNC(void,Tk_SetWindowBackgroundPixmap,V_Tk_SetWindowBackgroundPixmap,_ANSI_ARGS_((
- Tk_Window tkwin, Pixmap pixmap)))
-#endif /* #ifndef Tk_SetWindowBackgroundPixmap */
-
-#ifndef Tk_SetWindowBorder
-VFUNC(void,Tk_SetWindowBorder,V_Tk_SetWindowBorder,_ANSI_ARGS_((Tk_Window tkwin,
- unsigned long pixel)))
-#endif /* #ifndef Tk_SetWindowBorder */
-
-#ifndef Tk_SetWindowBorderPixmap
-VFUNC(void,Tk_SetWindowBorderPixmap,V_Tk_SetWindowBorderPixmap,_ANSI_ARGS_((
- Tk_Window tkwin, Pixmap pixmap)))
-#endif /* #ifndef Tk_SetWindowBorderPixmap */
-
-#ifndef Tk_SetWindowBorderWidth
-VFUNC(void,Tk_SetWindowBorderWidth,V_Tk_SetWindowBorderWidth,_ANSI_ARGS_((Tk_Window tkwin,
- int width)))
-#endif /* #ifndef Tk_SetWindowBorderWidth */
-
-#ifndef Tk_SetWindowColormap
-VFUNC(void,Tk_SetWindowColormap,V_Tk_SetWindowColormap,_ANSI_ARGS_((Tk_Window tkwin,
- Colormap colormap)))
-#endif /* #ifndef Tk_SetWindowColormap */
-
-#ifndef Tk_SetWindowVisual
-VFUNC(int,Tk_SetWindowVisual,V_Tk_SetWindowVisual,_ANSI_ARGS_((Tk_Window tkwin,
- Visual * visual, int depth,
- Colormap colormap)))
-#endif /* #ifndef Tk_SetWindowVisual */
-
-#ifndef Tk_SizeOfBitmap
-VFUNC(void,Tk_SizeOfBitmap,V_Tk_SizeOfBitmap,_ANSI_ARGS_((Display * display,
- Pixmap bitmap, int * widthPtr,
- int * heightPtr)))
-#endif /* #ifndef Tk_SizeOfBitmap */
-
-#ifndef Tk_SizeOfImage
-VFUNC(void,Tk_SizeOfImage,V_Tk_SizeOfImage,_ANSI_ARGS_((Tk_Image image,
- int * widthPtr, int * heightPtr)))
-#endif /* #ifndef Tk_SizeOfImage */
-
-#ifndef Tk_StrictMotif
-VFUNC(int,Tk_StrictMotif,V_Tk_StrictMotif,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifndef Tk_StrictMotif */
-
-#ifndef Tk_TextLayoutToPostscript
-VFUNC(void,Tk_TextLayoutToPostscript,V_Tk_TextLayoutToPostscript,_ANSI_ARGS_((
- Tcl_Interp * interp, Tk_TextLayout layout)))
-#endif /* #ifndef Tk_TextLayoutToPostscript */
-
-#ifndef Tk_TextWidth
-VFUNC(int,Tk_TextWidth,V_Tk_TextWidth,_ANSI_ARGS_((Tk_Font font,
- CONST char * str, int numBytes)))
-#endif /* #ifndef Tk_TextWidth */
-
-#ifndef Tk_UndefineCursor
-VFUNC(void,Tk_UndefineCursor,V_Tk_UndefineCursor,_ANSI_ARGS_((Tk_Window window)))
-#endif /* #ifndef Tk_UndefineCursor */
-
-#ifndef Tk_UnderlineChars
-VFUNC(void,Tk_UnderlineChars,V_Tk_UnderlineChars,_ANSI_ARGS_((Display * display,
- Drawable drawable, GC gc, Tk_Font tkfont,
- CONST char * source, int x, int y,
- int firstByte, int lastByte)))
-#endif /* #ifndef Tk_UnderlineChars */
-
-#ifndef Tk_UnderlineTextLayout
-VFUNC(void,Tk_UnderlineTextLayout,V_Tk_UnderlineTextLayout,_ANSI_ARGS_((
- Display * display, Drawable drawable, GC gc,
- Tk_TextLayout layout, int x, int y,
- int underline)))
-#endif /* #ifndef Tk_UnderlineTextLayout */
-
-#ifndef Tk_Ungrab
-VFUNC(void,Tk_Ungrab,V_Tk_Ungrab,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifndef Tk_Ungrab */
-
-#ifndef Tk_UnmaintainGeometry
-VFUNC(void,Tk_UnmaintainGeometry,V_Tk_UnmaintainGeometry,_ANSI_ARGS_((Tk_Window slave,
- Tk_Window master)))
-#endif /* #ifndef Tk_UnmaintainGeometry */
-
-#ifndef Tk_UnmapWindow
-VFUNC(void,Tk_UnmapWindow,V_Tk_UnmapWindow,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifndef Tk_UnmapWindow */
-
-#ifndef Tk_UnsetGrid
-VFUNC(void,Tk_UnsetGrid,V_Tk_UnsetGrid,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifndef Tk_UnsetGrid */
-
-#ifndef Tk_UpdatePointer
-VFUNC(void,Tk_UpdatePointer,V_Tk_UpdatePointer,_ANSI_ARGS_((Tk_Window tkwin, int x,
- int y, int state)))
-#endif /* #ifndef Tk_UpdatePointer */
-
-#endif /* _TKDECLS */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls_f.h
deleted file mode 100644
index 262cacb519d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkDecls_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TKDECLS_VT
-#define TKDECLS_VT
-typedef struct TkdeclsVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tkDecls.t"
-#undef VFUNC
-#undef VVAR
-} TkdeclsVtab;
-extern TkdeclsVtab *TkdeclsVptr;
-extern TkdeclsVtab *TkdeclsVGet(void);
-#endif /* TKDECLS_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent.h
deleted file mode 100644
index 9787af4425e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent.h
+++ /dev/null
@@ -1,122 +0,0 @@
-#ifndef _TKEVENT
-#define _TKEVENT
-
-#define LangCallbackArg(x) LangOldCallbackArg(x,__FILE__,__LINE__)
-
-EXTERN int LangCallCallback _ANSI_ARGS_((LangCallback *cb, int flags));
-EXTERN Tcl_Obj * LangCallbackObj _ANSI_ARGS_((LangCallback *));
-EXTERN int LangCmpCallback _ANSI_ARGS_((LangCallback *a,Tcl_Obj * b));
-EXTERN LangCallback * LangCopyCallback _ANSI_ARGS_((LangCallback *));
-EXTERN void LangDebug _ANSI_ARGS_((CONST char *fmt,...));
-EXTERN void LangAsyncCheck _ANSI_ARGS_((void));
-EXTERN void LangFreeCallback _ANSI_ARGS_((LangCallback *));
-EXTERN LangCallback * LangMakeCallback _ANSI_ARGS_((Tcl_Obj *));
-EXTERN Tcl_Obj * LangOldCallbackArg _ANSI_ARGS_((LangCallback *,char *,int));
-EXTERN void LangPushCallbackArgs _ANSI_ARGS_((LangCallback **svp));
-EXTERN long Lang_OSHandle _ANSI_ARGS_((int fd));
-EXTERN void Tcl_AlertNotifier _ANSI_ARGS_((ClientData clientData));
-EXTERN char * Tcl_Alloc _ANSI_ARGS_((unsigned int size));
-EXTERN Tcl_AsyncHandler Tcl_AsyncCreate _ANSI_ARGS_((Tcl_AsyncProc * proc,
- ClientData clientData));
-EXTERN void Tcl_AsyncDelete _ANSI_ARGS_((Tcl_AsyncHandler async));
-EXTERN int Tcl_AsyncInvoke _ANSI_ARGS_((Tcl_Interp * interp,
- int code));
-EXTERN void Tcl_AsyncMark _ANSI_ARGS_((Tcl_AsyncHandler async));
-EXTERN int Tcl_AsyncReady _ANSI_ARGS_((void));
-EXTERN void Tcl_CancelIdleCall _ANSI_ARGS_((Tcl_IdleProc *idleProc,
- ClientData clientData));
-EXTERN void Tcl_CreateEventSource _ANSI_ARGS_((
- Tcl_EventSetupProc *setupProc,
- Tcl_EventCheckProc *checkProc,
- ClientData clientData));
-EXTERN void Tcl_CreateExitHandler _ANSI_ARGS_((Tcl_ExitProc *proc,
- ClientData clientData));
-EXTERN void Tcl_CreateFileHandler _ANSI_ARGS_((
- int fd, int mask, Tcl_FileProc *proc,
- ClientData clientData));
-EXTERN void Tcl_CreateThreadExitHandler _ANSI_ARGS_((
- Tcl_ExitProc * proc, ClientData clientData));
-EXTERN Tcl_TimerToken Tcl_CreateTimerHandler _ANSI_ARGS_((int milliseconds,
- Tcl_TimerProc *proc, ClientData clientData));
-EXTERN char * Tcl_DbCkalloc _ANSI_ARGS_((unsigned int size,CONST char *file,int line));
-EXTERN int Tcl_DbCkfree _ANSI_ARGS_((char * ptr, CONST char * file,
- int line));
-EXTERN char * Tcl_DbCkrealloc _ANSI_ARGS_((char *ptr,
- unsigned int size, CONST char *file,int line));
-EXTERN void Tcl_DeleteEventSource _ANSI_ARGS_((
- Tcl_EventSetupProc *setupProc,
- Tcl_EventCheckProc *checkProc,
- ClientData clientData));
-EXTERN void Tcl_DeleteEvents _ANSI_ARGS_((
- Tcl_EventDeleteProc * proc,
- ClientData clientData));
-EXTERN void Tcl_DeleteExitHandler _ANSI_ARGS_((
- Tcl_ExitProc * proc, ClientData clientData));
-EXTERN void Tcl_DeleteFileHandler _ANSI_ARGS_((int fd));
-EXTERN void Tcl_DeleteThreadExitHandler _ANSI_ARGS_((
- Tcl_ExitProc * proc, ClientData clientData));
-EXTERN void Tcl_DeleteTimerHandler _ANSI_ARGS_((
- Tcl_TimerToken token));
-EXTERN int Tcl_DoOneEvent _ANSI_ARGS_((int flags));
-EXTERN void Tcl_DoWhenIdle _ANSI_ARGS_((Tcl_IdleProc *proc,
- ClientData clientData));
-EXTERN int Tcl_DumpActiveMemory _ANSI_ARGS_((CONST char * fileName));
-EXTERN void Tcl_Exit _ANSI_ARGS_((int status));
-EXTERN void Tcl_Finalize _ANSI_ARGS_((void));
-EXTERN void Tcl_FinalizeNotifier _ANSI_ARGS_((
- ClientData clientData));
-EXTERN void Tcl_FinalizeThread _ANSI_ARGS_((void));
-EXTERN void Tcl_Free _ANSI_ARGS_((char *ptr));
-EXTERN Tcl_ThreadId Tcl_GetCurrentThread _ANSI_ARGS_((void));
-EXTERN int Tcl_GetServiceMode _ANSI_ARGS_((void));
-EXTERN VOID * Tcl_GetThreadData _ANSI_ARGS_((
- Tcl_ThreadDataKey * keyPtr, int size));
-EXTERN ClientData Tcl_InitNotifier _ANSI_ARGS_((void));
-EXTERN void Tcl_Panic _ANSI_ARGS_((CONST char *,...));
-EXTERN void Tcl_QueueEvent _ANSI_ARGS_((Tcl_Event *evPtr,
- Tcl_QueuePosition position));
-EXTERN void Tcl_QueueProcEvent _ANSI_ARGS_((Tcl_EventProc *proc,
- Tcl_Event *evPtr,
- Tcl_QueuePosition position));
-EXTERN char * Tcl_Realloc _ANSI_ARGS_((char *ptr,
- unsigned int size));
-EXTERN int Tcl_ServiceAll _ANSI_ARGS_((void));
-EXTERN int Tcl_ServiceEvent _ANSI_ARGS_((int flags));
-EXTERN void Tcl_ServiceModeHook _ANSI_ARGS_((int mode));
-EXTERN void Tcl_SetMaxBlockTime _ANSI_ARGS_((Tcl_Time *timePtr));
-EXTERN void Tcl_SetNotifier _ANSI_ARGS_((
- Tcl_NotifierProcs * notifierProcPtr));
-EXTERN int Tcl_SetServiceMode _ANSI_ARGS_((int mode));
-EXTERN void Tcl_SetTimer _ANSI_ARGS_((Tcl_Time * timePtr));
-EXTERN void Tcl_Sleep _ANSI_ARGS_((int ms));
-EXTERN void Tcl_ThreadAlert _ANSI_ARGS_((Tcl_ThreadId threadId));
-EXTERN void Tcl_ThreadQueueEvent _ANSI_ARGS_((
- Tcl_ThreadId threadId, Tcl_Event* evPtr,
- Tcl_QueuePosition position));
-EXTERN void Tcl_ValidateAllMemory _ANSI_ARGS_((CONST char * file,
- int line));
-EXTERN int Tcl_WaitForEvent _ANSI_ARGS_((Tcl_Time * timePtr));
-EXTERN void TclpAsyncMark _ANSI_ARGS_((Tcl_AsyncHandler async));
-EXTERN void Tcl_GetTime _ANSI_ARGS_((Tcl_Time *time));
-EXTERN void * TkInitTimer _ANSI_ARGS_((void));
-EXTERN void Lang_NoteOwner _ANSI_ARGS_((void *owner,void *packet,
- CONST char *file, int line));
-EXTERN char * Tcl_AttemptDbCkalloc _ANSI_ARGS_((unsigned int size,
- CONST char * file, int line));
-EXTERN void TclpExit _ANSI_ARGS_((int status));
-
-#ifdef TCL_MEM_DEBUG
-#define LangNoteOwner(owner,packet) Lang_NoteOwner(owner,packet,__FILE__,__LINE__)
-#else
-#define LangNoteOwner(owner,packet)
-#endif
-
-#ifndef TCL_TSD_INIT
-#define TCL_TSD_INIT(keyPtr) (ThreadSpecificData *)Tcl_GetThreadData((keyPtr), sizeof(ThreadSpecificData))
-#endif
-
-
-#endif /* _TKEVENT */
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent.m
deleted file mode 100644
index 75219487d2f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent.m
+++ /dev/null
@@ -1,274 +0,0 @@
-#ifndef _TKEVENT_VM
-#define _TKEVENT_VM
-#include "tkEvent_f.h"
-#ifndef NO_VTABLES
-#ifndef LangAsyncCheck
-# define LangAsyncCheck (*TkeventVptr->V_LangAsyncCheck)
-#endif
-
-#ifndef LangCallCallback
-# define LangCallCallback (*TkeventVptr->V_LangCallCallback)
-#endif
-
-#ifndef LangCallbackObj
-# define LangCallbackObj (*TkeventVptr->V_LangCallbackObj)
-#endif
-
-#ifndef LangCmpCallback
-# define LangCmpCallback (*TkeventVptr->V_LangCmpCallback)
-#endif
-
-#ifndef LangCopyCallback
-# define LangCopyCallback (*TkeventVptr->V_LangCopyCallback)
-#endif
-
-#ifndef LangDebug
-# define LangDebug (*TkeventVptr->V_LangDebug)
-#endif
-
-#ifndef LangFreeCallback
-# define LangFreeCallback (*TkeventVptr->V_LangFreeCallback)
-#endif
-
-#ifndef LangMakeCallback
-# define LangMakeCallback (*TkeventVptr->V_LangMakeCallback)
-#endif
-
-#ifndef LangOldCallbackArg
-# define LangOldCallbackArg (*TkeventVptr->V_LangOldCallbackArg)
-#endif
-
-#ifndef LangPushCallbackArgs
-# define LangPushCallbackArgs (*TkeventVptr->V_LangPushCallbackArgs)
-#endif
-
-#ifndef Lang_NoteOwner
-# define Lang_NoteOwner (*TkeventVptr->V_Lang_NoteOwner)
-#endif
-
-#ifndef Lang_OSHandle
-# define Lang_OSHandle (*TkeventVptr->V_Lang_OSHandle)
-#endif
-
-#ifndef Tcl_AlertNotifier
-# define Tcl_AlertNotifier (*TkeventVptr->V_Tcl_AlertNotifier)
-#endif
-
-#ifndef Tcl_Alloc
-# define Tcl_Alloc (*TkeventVptr->V_Tcl_Alloc)
-#endif
-
-#ifndef Tcl_AsyncCreate
-# define Tcl_AsyncCreate (*TkeventVptr->V_Tcl_AsyncCreate)
-#endif
-
-#ifndef Tcl_AsyncDelete
-# define Tcl_AsyncDelete (*TkeventVptr->V_Tcl_AsyncDelete)
-#endif
-
-#ifndef Tcl_AsyncInvoke
-# define Tcl_AsyncInvoke (*TkeventVptr->V_Tcl_AsyncInvoke)
-#endif
-
-#ifndef Tcl_AsyncMark
-# define Tcl_AsyncMark (*TkeventVptr->V_Tcl_AsyncMark)
-#endif
-
-#ifndef Tcl_AsyncReady
-# define Tcl_AsyncReady (*TkeventVptr->V_Tcl_AsyncReady)
-#endif
-
-#ifndef Tcl_AttemptDbCkalloc
-# define Tcl_AttemptDbCkalloc (*TkeventVptr->V_Tcl_AttemptDbCkalloc)
-#endif
-
-#ifndef Tcl_CancelIdleCall
-# define Tcl_CancelIdleCall (*TkeventVptr->V_Tcl_CancelIdleCall)
-#endif
-
-#ifndef Tcl_CreateEventSource
-# define Tcl_CreateEventSource (*TkeventVptr->V_Tcl_CreateEventSource)
-#endif
-
-#ifndef Tcl_CreateExitHandler
-# define Tcl_CreateExitHandler (*TkeventVptr->V_Tcl_CreateExitHandler)
-#endif
-
-#ifndef Tcl_CreateFileHandler
-# define Tcl_CreateFileHandler (*TkeventVptr->V_Tcl_CreateFileHandler)
-#endif
-
-#ifndef Tcl_CreateThreadExitHandler
-# define Tcl_CreateThreadExitHandler (*TkeventVptr->V_Tcl_CreateThreadExitHandler)
-#endif
-
-#ifndef Tcl_CreateTimerHandler
-# define Tcl_CreateTimerHandler (*TkeventVptr->V_Tcl_CreateTimerHandler)
-#endif
-
-#ifndef Tcl_DbCkalloc
-# define Tcl_DbCkalloc (*TkeventVptr->V_Tcl_DbCkalloc)
-#endif
-
-#ifndef Tcl_DbCkfree
-# define Tcl_DbCkfree (*TkeventVptr->V_Tcl_DbCkfree)
-#endif
-
-#ifndef Tcl_DbCkrealloc
-# define Tcl_DbCkrealloc (*TkeventVptr->V_Tcl_DbCkrealloc)
-#endif
-
-#ifndef Tcl_DeleteEventSource
-# define Tcl_DeleteEventSource (*TkeventVptr->V_Tcl_DeleteEventSource)
-#endif
-
-#ifndef Tcl_DeleteEvents
-# define Tcl_DeleteEvents (*TkeventVptr->V_Tcl_DeleteEvents)
-#endif
-
-#ifndef Tcl_DeleteExitHandler
-# define Tcl_DeleteExitHandler (*TkeventVptr->V_Tcl_DeleteExitHandler)
-#endif
-
-#ifndef Tcl_DeleteFileHandler
-# define Tcl_DeleteFileHandler (*TkeventVptr->V_Tcl_DeleteFileHandler)
-#endif
-
-#ifndef Tcl_DeleteThreadExitHandler
-# define Tcl_DeleteThreadExitHandler (*TkeventVptr->V_Tcl_DeleteThreadExitHandler)
-#endif
-
-#ifndef Tcl_DeleteTimerHandler
-# define Tcl_DeleteTimerHandler (*TkeventVptr->V_Tcl_DeleteTimerHandler)
-#endif
-
-#ifndef Tcl_DoOneEvent
-# define Tcl_DoOneEvent (*TkeventVptr->V_Tcl_DoOneEvent)
-#endif
-
-#ifndef Tcl_DoWhenIdle
-# define Tcl_DoWhenIdle (*TkeventVptr->V_Tcl_DoWhenIdle)
-#endif
-
-#ifndef Tcl_DumpActiveMemory
-# define Tcl_DumpActiveMemory (*TkeventVptr->V_Tcl_DumpActiveMemory)
-#endif
-
-#ifndef Tcl_Exit
-# define Tcl_Exit (*TkeventVptr->V_Tcl_Exit)
-#endif
-
-#ifndef Tcl_Finalize
-# define Tcl_Finalize (*TkeventVptr->V_Tcl_Finalize)
-#endif
-
-#ifndef Tcl_FinalizeNotifier
-# define Tcl_FinalizeNotifier (*TkeventVptr->V_Tcl_FinalizeNotifier)
-#endif
-
-#ifndef Tcl_FinalizeThread
-# define Tcl_FinalizeThread (*TkeventVptr->V_Tcl_FinalizeThread)
-#endif
-
-#ifndef Tcl_Free
-# define Tcl_Free (*TkeventVptr->V_Tcl_Free)
-#endif
-
-#ifndef Tcl_GetCurrentThread
-# define Tcl_GetCurrentThread (*TkeventVptr->V_Tcl_GetCurrentThread)
-#endif
-
-#ifndef Tcl_GetServiceMode
-# define Tcl_GetServiceMode (*TkeventVptr->V_Tcl_GetServiceMode)
-#endif
-
-#ifndef Tcl_GetThreadData
-# define Tcl_GetThreadData (*TkeventVptr->V_Tcl_GetThreadData)
-#endif
-
-#ifndef Tcl_GetTime
-# define Tcl_GetTime (*TkeventVptr->V_Tcl_GetTime)
-#endif
-
-#ifndef Tcl_InitNotifier
-# define Tcl_InitNotifier (*TkeventVptr->V_Tcl_InitNotifier)
-#endif
-
-#ifndef Tcl_Panic
-# define Tcl_Panic (*TkeventVptr->V_Tcl_Panic)
-#endif
-
-#ifndef Tcl_QueueEvent
-# define Tcl_QueueEvent (*TkeventVptr->V_Tcl_QueueEvent)
-#endif
-
-#ifndef Tcl_QueueProcEvent
-# define Tcl_QueueProcEvent (*TkeventVptr->V_Tcl_QueueProcEvent)
-#endif
-
-#ifndef Tcl_Realloc
-# define Tcl_Realloc (*TkeventVptr->V_Tcl_Realloc)
-#endif
-
-#ifndef Tcl_ServiceAll
-# define Tcl_ServiceAll (*TkeventVptr->V_Tcl_ServiceAll)
-#endif
-
-#ifndef Tcl_ServiceEvent
-# define Tcl_ServiceEvent (*TkeventVptr->V_Tcl_ServiceEvent)
-#endif
-
-#ifndef Tcl_ServiceModeHook
-# define Tcl_ServiceModeHook (*TkeventVptr->V_Tcl_ServiceModeHook)
-#endif
-
-#ifndef Tcl_SetMaxBlockTime
-# define Tcl_SetMaxBlockTime (*TkeventVptr->V_Tcl_SetMaxBlockTime)
-#endif
-
-#ifndef Tcl_SetNotifier
-# define Tcl_SetNotifier (*TkeventVptr->V_Tcl_SetNotifier)
-#endif
-
-#ifndef Tcl_SetServiceMode
-# define Tcl_SetServiceMode (*TkeventVptr->V_Tcl_SetServiceMode)
-#endif
-
-#ifndef Tcl_SetTimer
-# define Tcl_SetTimer (*TkeventVptr->V_Tcl_SetTimer)
-#endif
-
-#ifndef Tcl_Sleep
-# define Tcl_Sleep (*TkeventVptr->V_Tcl_Sleep)
-#endif
-
-#ifndef Tcl_ThreadAlert
-# define Tcl_ThreadAlert (*TkeventVptr->V_Tcl_ThreadAlert)
-#endif
-
-#ifndef Tcl_ThreadQueueEvent
-# define Tcl_ThreadQueueEvent (*TkeventVptr->V_Tcl_ThreadQueueEvent)
-#endif
-
-#ifndef Tcl_ValidateAllMemory
-# define Tcl_ValidateAllMemory (*TkeventVptr->V_Tcl_ValidateAllMemory)
-#endif
-
-#ifndef Tcl_WaitForEvent
-# define Tcl_WaitForEvent (*TkeventVptr->V_Tcl_WaitForEvent)
-#endif
-
-#ifndef TclpAsyncMark
-# define TclpAsyncMark (*TkeventVptr->V_TclpAsyncMark)
-#endif
-
-#ifndef TclpExit
-# define TclpExit (*TkeventVptr->V_TclpExit)
-#endif
-
-#ifndef TkInitTimer
-# define TkInitTimer (*TkeventVptr->V_TkInitTimer)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TKEVENT_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent.t
deleted file mode 100644
index c09210729f5..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent.t
+++ /dev/null
@@ -1,304 +0,0 @@
-#ifdef _TKEVENT
-#ifndef LangAsyncCheck
-VFUNC(void,LangAsyncCheck,V_LangAsyncCheck,_ANSI_ARGS_((void)))
-#endif /* #ifndef LangAsyncCheck */
-
-#ifndef LangCallCallback
-VFUNC(int,LangCallCallback,V_LangCallCallback,_ANSI_ARGS_((LangCallback *cb, int flags)))
-#endif /* #ifndef LangCallCallback */
-
-#ifndef LangCallbackObj
-VFUNC(Tcl_Obj *,LangCallbackObj,V_LangCallbackObj,_ANSI_ARGS_((LangCallback *)))
-#endif /* #ifndef LangCallbackObj */
-
-#ifndef LangCmpCallback
-VFUNC(int,LangCmpCallback,V_LangCmpCallback,_ANSI_ARGS_((LangCallback *a,Tcl_Obj * b)))
-#endif /* #ifndef LangCmpCallback */
-
-#ifndef LangCopyCallback
-VFUNC(LangCallback *,LangCopyCallback,V_LangCopyCallback,_ANSI_ARGS_((LangCallback *)))
-#endif /* #ifndef LangCopyCallback */
-
-#ifndef LangDebug
-VFUNC(void,LangDebug,V_LangDebug,_ANSI_ARGS_((CONST char *fmt,...)))
-#endif /* #ifndef LangDebug */
-
-#ifndef LangFreeCallback
-VFUNC(void,LangFreeCallback,V_LangFreeCallback,_ANSI_ARGS_((LangCallback *)))
-#endif /* #ifndef LangFreeCallback */
-
-#ifndef LangMakeCallback
-VFUNC(LangCallback *,LangMakeCallback,V_LangMakeCallback,_ANSI_ARGS_((Tcl_Obj *)))
-#endif /* #ifndef LangMakeCallback */
-
-#ifndef LangOldCallbackArg
-VFUNC(Tcl_Obj *,LangOldCallbackArg,V_LangOldCallbackArg,_ANSI_ARGS_((LangCallback *,char *,int)))
-#endif /* #ifndef LangOldCallbackArg */
-
-#ifndef LangPushCallbackArgs
-VFUNC(void,LangPushCallbackArgs,V_LangPushCallbackArgs,_ANSI_ARGS_((LangCallback **svp)))
-#endif /* #ifndef LangPushCallbackArgs */
-
-#ifndef Lang_NoteOwner
-VFUNC(void,Lang_NoteOwner,V_Lang_NoteOwner,_ANSI_ARGS_((void *owner,void *packet,
- CONST char *file, int line)))
-#endif /* #ifndef Lang_NoteOwner */
-
-#ifndef Lang_OSHandle
-VFUNC(long,Lang_OSHandle,V_Lang_OSHandle,_ANSI_ARGS_((int fd)))
-#endif /* #ifndef Lang_OSHandle */
-
-#ifndef Tcl_AlertNotifier
-VFUNC(void,Tcl_AlertNotifier,V_Tcl_AlertNotifier,_ANSI_ARGS_((ClientData clientData)))
-#endif /* #ifndef Tcl_AlertNotifier */
-
-#ifndef Tcl_Alloc
-VFUNC(char *,Tcl_Alloc,V_Tcl_Alloc,_ANSI_ARGS_((unsigned int size)))
-#endif /* #ifndef Tcl_Alloc */
-
-#ifndef Tcl_AsyncCreate
-VFUNC(Tcl_AsyncHandler,Tcl_AsyncCreate,V_Tcl_AsyncCreate,_ANSI_ARGS_((Tcl_AsyncProc * proc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_AsyncCreate */
-
-#ifndef Tcl_AsyncDelete
-VFUNC(void,Tcl_AsyncDelete,V_Tcl_AsyncDelete,_ANSI_ARGS_((Tcl_AsyncHandler async)))
-#endif /* #ifndef Tcl_AsyncDelete */
-
-#ifndef Tcl_AsyncInvoke
-VFUNC(int,Tcl_AsyncInvoke,V_Tcl_AsyncInvoke,_ANSI_ARGS_((Tcl_Interp * interp,
- int code)))
-#endif /* #ifndef Tcl_AsyncInvoke */
-
-#ifndef Tcl_AsyncMark
-VFUNC(void,Tcl_AsyncMark,V_Tcl_AsyncMark,_ANSI_ARGS_((Tcl_AsyncHandler async)))
-#endif /* #ifndef Tcl_AsyncMark */
-
-#ifndef Tcl_AsyncReady
-VFUNC(int,Tcl_AsyncReady,V_Tcl_AsyncReady,_ANSI_ARGS_((void)))
-#endif /* #ifndef Tcl_AsyncReady */
-
-#ifndef Tcl_AttemptDbCkalloc
-VFUNC(char *,Tcl_AttemptDbCkalloc,V_Tcl_AttemptDbCkalloc,_ANSI_ARGS_((unsigned int size,
- CONST char * file, int line)))
-#endif /* #ifndef Tcl_AttemptDbCkalloc */
-
-#ifndef Tcl_CancelIdleCall
-VFUNC(void,Tcl_CancelIdleCall,V_Tcl_CancelIdleCall,_ANSI_ARGS_((Tcl_IdleProc *idleProc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_CancelIdleCall */
-
-#ifndef Tcl_CreateEventSource
-VFUNC(void,Tcl_CreateEventSource,V_Tcl_CreateEventSource,_ANSI_ARGS_((
- Tcl_EventSetupProc *setupProc,
- Tcl_EventCheckProc *checkProc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_CreateEventSource */
-
-#ifndef Tcl_CreateExitHandler
-VFUNC(void,Tcl_CreateExitHandler,V_Tcl_CreateExitHandler,_ANSI_ARGS_((Tcl_ExitProc *proc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_CreateExitHandler */
-
-#ifndef Tcl_CreateFileHandler
-VFUNC(void,Tcl_CreateFileHandler,V_Tcl_CreateFileHandler,_ANSI_ARGS_((
- int fd, int mask, Tcl_FileProc *proc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_CreateFileHandler */
-
-#ifndef Tcl_CreateThreadExitHandler
-VFUNC(void,Tcl_CreateThreadExitHandler,V_Tcl_CreateThreadExitHandler,_ANSI_ARGS_((
- Tcl_ExitProc * proc, ClientData clientData)))
-#endif /* #ifndef Tcl_CreateThreadExitHandler */
-
-#ifndef Tcl_CreateTimerHandler
-VFUNC(Tcl_TimerToken,Tcl_CreateTimerHandler,V_Tcl_CreateTimerHandler,_ANSI_ARGS_((int milliseconds,
- Tcl_TimerProc *proc, ClientData clientData)))
-#endif /* #ifndef Tcl_CreateTimerHandler */
-
-#ifndef Tcl_DbCkalloc
-VFUNC(char *,Tcl_DbCkalloc,V_Tcl_DbCkalloc,_ANSI_ARGS_((unsigned int size,CONST char *file,int line)))
-#endif /* #ifndef Tcl_DbCkalloc */
-
-#ifndef Tcl_DbCkfree
-VFUNC(int,Tcl_DbCkfree,V_Tcl_DbCkfree,_ANSI_ARGS_((char * ptr, CONST char * file,
- int line)))
-#endif /* #ifndef Tcl_DbCkfree */
-
-#ifndef Tcl_DbCkrealloc
-VFUNC(char *,Tcl_DbCkrealloc,V_Tcl_DbCkrealloc,_ANSI_ARGS_((char *ptr,
- unsigned int size, CONST char *file,int line)))
-#endif /* #ifndef Tcl_DbCkrealloc */
-
-#ifndef Tcl_DeleteEventSource
-VFUNC(void,Tcl_DeleteEventSource,V_Tcl_DeleteEventSource,_ANSI_ARGS_((
- Tcl_EventSetupProc *setupProc,
- Tcl_EventCheckProc *checkProc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_DeleteEventSource */
-
-#ifndef Tcl_DeleteEvents
-VFUNC(void,Tcl_DeleteEvents,V_Tcl_DeleteEvents,_ANSI_ARGS_((
- Tcl_EventDeleteProc * proc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_DeleteEvents */
-
-#ifndef Tcl_DeleteExitHandler
-VFUNC(void,Tcl_DeleteExitHandler,V_Tcl_DeleteExitHandler,_ANSI_ARGS_((
- Tcl_ExitProc * proc, ClientData clientData)))
-#endif /* #ifndef Tcl_DeleteExitHandler */
-
-#ifndef Tcl_DeleteFileHandler
-VFUNC(void,Tcl_DeleteFileHandler,V_Tcl_DeleteFileHandler,_ANSI_ARGS_((int fd)))
-#endif /* #ifndef Tcl_DeleteFileHandler */
-
-#ifndef Tcl_DeleteThreadExitHandler
-VFUNC(void,Tcl_DeleteThreadExitHandler,V_Tcl_DeleteThreadExitHandler,_ANSI_ARGS_((
- Tcl_ExitProc * proc, ClientData clientData)))
-#endif /* #ifndef Tcl_DeleteThreadExitHandler */
-
-#ifndef Tcl_DeleteTimerHandler
-VFUNC(void,Tcl_DeleteTimerHandler,V_Tcl_DeleteTimerHandler,_ANSI_ARGS_((
- Tcl_TimerToken token)))
-#endif /* #ifndef Tcl_DeleteTimerHandler */
-
-#ifndef Tcl_DoOneEvent
-VFUNC(int,Tcl_DoOneEvent,V_Tcl_DoOneEvent,_ANSI_ARGS_((int flags)))
-#endif /* #ifndef Tcl_DoOneEvent */
-
-#ifndef Tcl_DoWhenIdle
-VFUNC(void,Tcl_DoWhenIdle,V_Tcl_DoWhenIdle,_ANSI_ARGS_((Tcl_IdleProc *proc,
- ClientData clientData)))
-#endif /* #ifndef Tcl_DoWhenIdle */
-
-#ifndef Tcl_DumpActiveMemory
-VFUNC(int,Tcl_DumpActiveMemory,V_Tcl_DumpActiveMemory,_ANSI_ARGS_((CONST char * fileName)))
-#endif /* #ifndef Tcl_DumpActiveMemory */
-
-#ifndef Tcl_Exit
-VFUNC(void,Tcl_Exit,V_Tcl_Exit,_ANSI_ARGS_((int status)))
-#endif /* #ifndef Tcl_Exit */
-
-#ifndef Tcl_Finalize
-VFUNC(void,Tcl_Finalize,V_Tcl_Finalize,_ANSI_ARGS_((void)))
-#endif /* #ifndef Tcl_Finalize */
-
-#ifndef Tcl_FinalizeNotifier
-VFUNC(void,Tcl_FinalizeNotifier,V_Tcl_FinalizeNotifier,_ANSI_ARGS_((
- ClientData clientData)))
-#endif /* #ifndef Tcl_FinalizeNotifier */
-
-#ifndef Tcl_FinalizeThread
-VFUNC(void,Tcl_FinalizeThread,V_Tcl_FinalizeThread,_ANSI_ARGS_((void)))
-#endif /* #ifndef Tcl_FinalizeThread */
-
-#ifndef Tcl_Free
-VFUNC(void,Tcl_Free,V_Tcl_Free,_ANSI_ARGS_((char *ptr)))
-#endif /* #ifndef Tcl_Free */
-
-#ifndef Tcl_GetCurrentThread
-VFUNC(Tcl_ThreadId,Tcl_GetCurrentThread,V_Tcl_GetCurrentThread,_ANSI_ARGS_((void)))
-#endif /* #ifndef Tcl_GetCurrentThread */
-
-#ifndef Tcl_GetServiceMode
-VFUNC(int,Tcl_GetServiceMode,V_Tcl_GetServiceMode,_ANSI_ARGS_((void)))
-#endif /* #ifndef Tcl_GetServiceMode */
-
-#ifndef Tcl_GetThreadData
-VFUNC(VOID *,Tcl_GetThreadData,V_Tcl_GetThreadData,_ANSI_ARGS_((
- Tcl_ThreadDataKey * keyPtr, int size)))
-#endif /* #ifndef Tcl_GetThreadData */
-
-#ifndef Tcl_GetTime
-VFUNC(void,Tcl_GetTime,V_Tcl_GetTime,_ANSI_ARGS_((Tcl_Time *time)))
-#endif /* #ifndef Tcl_GetTime */
-
-#ifndef Tcl_InitNotifier
-VFUNC(ClientData,Tcl_InitNotifier,V_Tcl_InitNotifier,_ANSI_ARGS_((void)))
-#endif /* #ifndef Tcl_InitNotifier */
-
-#ifndef Tcl_Panic
-VFUNC(void,Tcl_Panic,V_Tcl_Panic,_ANSI_ARGS_((CONST char *,...)))
-#endif /* #ifndef Tcl_Panic */
-
-#ifndef Tcl_QueueEvent
-VFUNC(void,Tcl_QueueEvent,V_Tcl_QueueEvent,_ANSI_ARGS_((Tcl_Event *evPtr,
- Tcl_QueuePosition position)))
-#endif /* #ifndef Tcl_QueueEvent */
-
-#ifndef Tcl_QueueProcEvent
-VFUNC(void,Tcl_QueueProcEvent,V_Tcl_QueueProcEvent,_ANSI_ARGS_((Tcl_EventProc *proc,
- Tcl_Event *evPtr,
- Tcl_QueuePosition position)))
-#endif /* #ifndef Tcl_QueueProcEvent */
-
-#ifndef Tcl_Realloc
-VFUNC(char *,Tcl_Realloc,V_Tcl_Realloc,_ANSI_ARGS_((char *ptr,
- unsigned int size)))
-#endif /* #ifndef Tcl_Realloc */
-
-#ifndef Tcl_ServiceAll
-VFUNC(int,Tcl_ServiceAll,V_Tcl_ServiceAll,_ANSI_ARGS_((void)))
-#endif /* #ifndef Tcl_ServiceAll */
-
-#ifndef Tcl_ServiceEvent
-VFUNC(int,Tcl_ServiceEvent,V_Tcl_ServiceEvent,_ANSI_ARGS_((int flags)))
-#endif /* #ifndef Tcl_ServiceEvent */
-
-#ifndef Tcl_ServiceModeHook
-VFUNC(void,Tcl_ServiceModeHook,V_Tcl_ServiceModeHook,_ANSI_ARGS_((int mode)))
-#endif /* #ifndef Tcl_ServiceModeHook */
-
-#ifndef Tcl_SetMaxBlockTime
-VFUNC(void,Tcl_SetMaxBlockTime,V_Tcl_SetMaxBlockTime,_ANSI_ARGS_((Tcl_Time *timePtr)))
-#endif /* #ifndef Tcl_SetMaxBlockTime */
-
-#ifndef Tcl_SetNotifier
-VFUNC(void,Tcl_SetNotifier,V_Tcl_SetNotifier,_ANSI_ARGS_((
- Tcl_NotifierProcs * notifierProcPtr)))
-#endif /* #ifndef Tcl_SetNotifier */
-
-#ifndef Tcl_SetServiceMode
-VFUNC(int,Tcl_SetServiceMode,V_Tcl_SetServiceMode,_ANSI_ARGS_((int mode)))
-#endif /* #ifndef Tcl_SetServiceMode */
-
-#ifndef Tcl_SetTimer
-VFUNC(void,Tcl_SetTimer,V_Tcl_SetTimer,_ANSI_ARGS_((Tcl_Time * timePtr)))
-#endif /* #ifndef Tcl_SetTimer */
-
-#ifndef Tcl_Sleep
-VFUNC(void,Tcl_Sleep,V_Tcl_Sleep,_ANSI_ARGS_((int ms)))
-#endif /* #ifndef Tcl_Sleep */
-
-#ifndef Tcl_ThreadAlert
-VFUNC(void,Tcl_ThreadAlert,V_Tcl_ThreadAlert,_ANSI_ARGS_((Tcl_ThreadId threadId)))
-#endif /* #ifndef Tcl_ThreadAlert */
-
-#ifndef Tcl_ThreadQueueEvent
-VFUNC(void,Tcl_ThreadQueueEvent,V_Tcl_ThreadQueueEvent,_ANSI_ARGS_((
- Tcl_ThreadId threadId, Tcl_Event* evPtr,
- Tcl_QueuePosition position)))
-#endif /* #ifndef Tcl_ThreadQueueEvent */
-
-#ifndef Tcl_ValidateAllMemory
-VFUNC(void,Tcl_ValidateAllMemory,V_Tcl_ValidateAllMemory,_ANSI_ARGS_((CONST char * file,
- int line)))
-#endif /* #ifndef Tcl_ValidateAllMemory */
-
-#ifndef Tcl_WaitForEvent
-VFUNC(int,Tcl_WaitForEvent,V_Tcl_WaitForEvent,_ANSI_ARGS_((Tcl_Time * timePtr)))
-#endif /* #ifndef Tcl_WaitForEvent */
-
-#ifndef TclpAsyncMark
-VFUNC(void,TclpAsyncMark,V_TclpAsyncMark,_ANSI_ARGS_((Tcl_AsyncHandler async)))
-#endif /* #ifndef TclpAsyncMark */
-
-#ifndef TclpExit
-VFUNC(void,TclpExit,V_TclpExit,_ANSI_ARGS_((int status)))
-#endif /* #ifndef TclpExit */
-
-#ifndef TkInitTimer
-VFUNC(void *,TkInitTimer,V_TkInitTimer,_ANSI_ARGS_((void)))
-#endif /* #ifndef TkInitTimer */
-
-#endif /* _TKEVENT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent_f.h
deleted file mode 100644
index f00d4002b13..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkEvent_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TKEVENT_VT
-#define TKEVENT_VT
-typedef struct TkeventVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tkEvent.t"
-#undef VFUNC
-#undef VVAR
-} TkeventVtab;
-extern TkeventVtab *TkeventVptr;
-extern TkeventVtab *TkeventVGet(void);
-#endif /* TKEVENT_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkFileFilter.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkFileFilter.h
deleted file mode 100644
index 886f1426cf3..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkFileFilter.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * tkFileFilter.h --
- *
- * Declarations for the file filter processing routines needed by
- * the file selection dialogs.
- *
- * Copyright (c) 1996 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkFileFilter.h,v 1.4 1998/09/14 18:23:10 stanton Exp $
- *
- */
-
-#ifndef _TK_FILE_FILTER
-#define _TK_FILE_FILTER
-
-#ifdef MAC_TCL
-#include <StandardFile.h>
-#else
-#define OSType long
-#endif
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-typedef struct GlobPattern {
- struct GlobPattern * next; /* Chains to the next glob pattern
- * in a glob pattern list */
- char * pattern; /* String value of the pattern, such
- * as "*.txt" or "*.*"
- */
-} GlobPattern;
-
-typedef struct MacFileType {
- struct MacFileType * next; /* Chains to the next mac file type
- * in a mac file type list */
- OSType type; /* Mac file type, such as 'TEXT' or
- * 'GIFF' */
-} MacFileType;
-
-typedef struct FileFilterClause {
- struct FileFilterClause * next; /* Chains to the next clause in
- * a clause list */
- GlobPattern * patterns; /* Head of glob pattern type list */
- GlobPattern * patternsTail; /* Tail of glob pattern type list */
- MacFileType * macTypes; /* Head of mac file type list */
- MacFileType * macTypesTail; /* Tail of mac file type list */
-} FileFilterClause;
-
-typedef struct FileFilter {
- struct FileFilter * next; /* Chains to the next filter
- * in a filter list */
- char * name; /* Name of the file filter,
- * such as "Text Documents" */
- FileFilterClause * clauses; /* Head of the clauses list */
- FileFilterClause * clausesTail; /* Tail of the clauses list */
-} FileFilter;
-
-/*----------------------------------------------------------------------
- * FileFilterList --
- *
- * The routine TkGetFileFilters() translates the string value of the
- * -filefilters option into a FileFilterList structure, which consists
- * of a list of file filters.
- *
- * Each file filter consists of one or more clauses. Each clause has
- * one or more glob patterns and/or one or more Mac file types
- *----------------------------------------------------------------------
- */
-
-typedef struct FileFilterList {
- FileFilter * filters; /* Head of the filter list */
- FileFilter * filtersTail; /* Tail of the filter list */
- int numFilters; /* number of filters in the list */
-} FileFilterList;
-
-EXTERN void TkFreeFileFilters _ANSI_ARGS_((
- FileFilterList * flistPtr));
-EXTERN void TkInitFileFilters _ANSI_ARGS_((
- FileFilterList * flistPtr));
-EXTERN int TkGetFileFilters _ANSI_ARGS_ ((Tcl_Interp *interp,
- FileFilterList * flistPtr, Tcl_Obj * arg,
- int isWindows));
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkFont.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkFont.h
deleted file mode 100644
index fe633a1d87a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkFont.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * tkFont.h --
- *
- * Declarations for interfaces between the generic and platform-
- * specific parts of the font package. This information is not
- * visible outside of the font package.
- *
- * Copyright (c) 1996-1997 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkFont.h,v 1.5 1999/04/16 01:51:14 stanton Exp $
- */
-
-#ifndef _TKFONT
-#define _TKFONT
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * The following structure keeps track of the attributes of a font. It can
- * be used to keep track of either the desired attributes or the actual
- * attributes gotten when the font was instantiated.
- */
-
-typedef struct TkFontAttributes {
- Tk_Uid family; /* Font family, or NULL to represent
- * plaform-specific default system font. */
- int size; /* Pointsize of font, 0 for default size, or
- * negative number meaning pixel size. */
- int weight; /* Weight flag; see below for def'n. */
- int slant; /* Slant flag; see below for def'n. */
- int underline; /* Non-zero for underline font. */
- int overstrike; /* Non-zero for overstrike font. */
-} TkFontAttributes;
-
-/*
- * Possible values for the "weight" field in a TkFontAttributes structure.
- * Weight is a subjective term and depends on what the company that created
- * the font considers bold.
- */
-
-#define TK_FW_NORMAL 0
-#define TK_FW_BOLD 1
-
-#define TK_FW_UNKNOWN -1 /* Unknown weight. This value is used for
- * error checking and is never actually stored
- * in the weight field. */
-
-/*
- * Possible values for the "slant" field in a TkFontAttributes structure.
- */
-
-#define TK_FS_ROMAN 0
-#define TK_FS_ITALIC 1
-#define TK_FS_OBLIQUE 2 /* This value is only used when parsing X
- * font names to determine the closest
- * match. It is only stored in the
- * XLFDAttributes structure, never in the
- * slant field of the TkFontAttributes. */
-
-#define TK_FS_UNKNOWN -1 /* Unknown slant. This value is used for
- * error checking and is never actually stored
- * in the slant field. */
-
-/*
- * The following structure keeps track of the metrics for an instantiated
- * font. The metrics are the physical properties of the font itself.
- */
-
-typedef struct TkFontMetrics {
- int ascent; /* From baseline to top of font. */
- int descent; /* From baseline to bottom of font. */
- int maxWidth; /* Width of widest character in font. */
- int fixed; /* Non-zero if this is a fixed-width font,
- * 0 otherwise. */
-} TkFontMetrics;
-
-/*
- * The following structure is used to keep track of the generic information
- * about a font. Each platform-specific font is represented by a structure
- * with the following structure at its beginning, plus any platform-
- * specific stuff after that.
- */
-
-typedef struct TkFont {
- /*
- * Fields used and maintained exclusively by generic code.
- */
-
- int resourceRefCount; /* Number of active uses of this font (each
- * active use corresponds to a call to
- * Tk_AllocFontFromTable or Tk_GetFont).
- * If this count is 0, then this TkFont
- * structure is no longer valid and it isn't
- * present in a hash table: it is being
- * kept around only because there are objects
- * referring to it. The structure is freed
- * when resourceRefCount and objRefCount
- * are both 0. */
- int objRefCount; /* The number of Tcl objects that reference
- * this structure. */
- Tcl_HashEntry *cacheHashPtr;/* Entry in font cache for this structure,
- * used when deleting it. */
- Tcl_HashEntry *namedHashPtr;/* Pointer to hash table entry that
- * corresponds to the named font that the
- * tkfont was based on, or NULL if the tkfont
- * was not based on a named font. */
- Screen *screen; /* The screen where this font is valid. */
- int tabWidth; /* Width of tabs in this font (pixels). */
- int underlinePos; /* Offset from baseline to origin of
- * underline bar (used for drawing underlines
- * on a non-underlined font). */
- int underlineHeight; /* Height of underline bar (used for drawing
- * underlines on a non-underlined font). */
-
- /*
- * Fields used in the generic code that are filled in by
- * platform-specific code.
- */
-
- Font fid; /* For backwards compatibility with XGCValues
- * structures. Remove when TkGCValues is
- * implemented. */
- TkFontAttributes fa; /* Actual font attributes obtained when the
- * the font was created, as opposed to the
- * desired attributes passed in to
- * TkpGetFontFromAttributes(). The desired
- * metrics can be determined from the string
- * that was used to create this font. */
- TkFontMetrics fm; /* Font metrics determined when font was
- * created. */
- struct TkFont *nextPtr; /* Points to the next TkFont structure with
- * the same name. All fonts with the
- * same name (but different displays) are
- * chained together off a single entry in
- * a hash table. */
-} TkFont;
-
-/*
- * The following structure is used to return attributes when parsing an
- * XLFD. The extra information is of interest to the Unix-specific code
- * when attempting to find the closest matching font.
- */
-
-typedef struct TkXLFDAttributes {
- Tk_Uid foundry; /* The foundry of the font. */
- int slant; /* The tristate value for the slant, which
- * is significant under X. */
- int setwidth; /* The proportionate width, see below for
- * definition. */
- Tk_Uid charset; /* The actual charset string. */
-} TkXLFDAttributes;
-
-/*
- * Possible values for the "setwidth" field in a TkXLFDAttributes structure.
- * The setwidth is whether characters are considered wider or narrower than
- * normal.
- */
-
-#define TK_SW_NORMAL 0
-#define TK_SW_CONDENSE 1
-#define TK_SW_EXPAND 2
-#define TK_SW_UNKNOWN 3 /* Unknown setwidth. This value may be
- * stored in the setwidth field. */
-
-/*
- * The following defines specify the meaning of the fields in a fully
- * qualified XLFD.
- */
-
-#define XLFD_FOUNDRY 0
-#define XLFD_FAMILY 1
-#define XLFD_WEIGHT 2
-#define XLFD_SLANT 3
-#define XLFD_SETWIDTH 4
-#define XLFD_ADD_STYLE 5
-#define XLFD_PIXEL_SIZE 6
-#define XLFD_POINT_SIZE 7
-#define XLFD_RESOLUTION_X 8
-#define XLFD_RESOLUTION_Y 9
-#define XLFD_SPACING 10
-#define XLFD_AVERAGE_WIDTH 11
-#define XLFD_CHARSET 12
-#define XLFD_NUMFIELDS 13 /* Number of fields in XLFD. */
-
-/*
- * Low-level API exported by generic code to platform-specific code.
- */
-
-#define TkInitFontAttributes(fa) memset((fa), 0, sizeof(TkFontAttributes));
-#define TkInitXLFDAttributes(xa) memset((xa), 0, sizeof(TkXLFDAttributes));
-
-EXTERN int TkFontParseXLFD _ANSI_ARGS_((CONST char *string,
- TkFontAttributes *faPtr, TkXLFDAttributes *xaPtr));
-EXTERN char ** TkFontGetAliasList _ANSI_ARGS_((CONST char *faceName));
-EXTERN char *** TkFontGetFallbacks _ANSI_ARGS_((void));
-EXTERN int TkFontGetPixels _ANSI_ARGS_((Screen *screen,
- int size));
-EXTERN int TkFontGetPoints _ANSI_ARGS_((Screen *screen,
- int size));
-EXTERN char ** TkFontGetGlobalClass _ANSI_ARGS_((void));
-EXTERN char ** TkFontGetSymbolClass _ANSI_ARGS_((void));
-
-/*
- * Low-level API exported by platform-specific code to generic code.
- */
-
-EXTERN void TkpDeleteFont _ANSI_ARGS_((TkFont *tkFontPtr));
-EXTERN void TkpFontPkgInit _ANSI_ARGS_((TkMainInfo *mainPtr));
-EXTERN TkFont * TkpGetFontFromAttributes _ANSI_ARGS_((
- TkFont *tkFontPtr, Tk_Window tkwin,
- CONST TkFontAttributes *faPtr));
-EXTERN void TkpGetFontFamilies _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Window tkwin));
-EXTERN TkFont * TkpGetNativeFont _ANSI_ARGS_((Tk_Window tkwin,
- CONST char *name));
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKFONT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto.h
deleted file mode 100644
index bb744a46421..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _TKIMGPHOTO
-#define _TKIMGPHOTO
-
-
-EXTERN void Tk_CreateOldPhotoImageFormat _ANSI_ARGS_((
- Tk_PhotoImageFormat *formatPtr));
-EXTERN void Tk_CreatePhotoImageFormat _ANSI_ARGS_((
- Tk_PhotoImageFormat *formatPtr));
-EXTERN void Tk_DitherPhoto _ANSI_ARGS_((Tk_PhotoHandle handle,
- int x, int y, int width, int height));
-EXTERN Tk_PhotoHandle Tk_FindPhoto _ANSI_ARGS_((Tcl_Interp *interp,
- CONST char *imageName));
-EXTERN void Tk_PhotoBlank _ANSI_ARGS_((Tk_PhotoHandle handle));
-EXTERN void Tk_PhotoExpand _ANSI_ARGS_((Tk_PhotoHandle handle,
- int width, int height ));
-EXTERN char * Tk_PhotoFormatName _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Obj *formatString));
-EXTERN int Tk_PhotoGetImage _ANSI_ARGS_((Tk_PhotoHandle handle,
- Tk_PhotoImageBlock *blockPtr));
-EXTERN void Tk_PhotoGetSize _ANSI_ARGS_((Tk_PhotoHandle handle,
- int *widthPtr, int *heightPtr));
-EXTERN void Tk_PhotoPutBlock _ANSI_ARGS_((Tk_PhotoHandle handle,
- Tk_PhotoImageBlock *blockPtr, int x, int y,
- int width, int height, int compRule));
-EXTERN void Tk_PhotoPutZoomedBlock _ANSI_ARGS_((
- Tk_PhotoHandle handle,
- Tk_PhotoImageBlock *blockPtr, int x, int y,
- int width, int height, int zoomX, int zoomY,
- int subsampleX, int subsampleY, int compRule));
-EXTERN void Tk_PhotoSetSize _ANSI_ARGS_((Tk_PhotoHandle handle,
- int width, int height));
-extern Tk_PhotoImageFormat tkImgFmtGIF;
-extern Tk_PhotoImageFormat tkImgFmtPPM;
-#endif /* _TKIMGPHOTO */
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto.m
deleted file mode 100644
index 1e1e302a6c6..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto.m
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef _TKIMGPHOTO_VM
-#define _TKIMGPHOTO_VM
-#include "tkImgPhoto_f.h"
-#ifndef NO_VTABLES
-#define tkImgFmtPPM (*TkimgphotoVptr->V_tkImgFmtPPM)
-#ifndef Tk_CreateOldPhotoImageFormat
-# define Tk_CreateOldPhotoImageFormat (*TkimgphotoVptr->V_Tk_CreateOldPhotoImageFormat)
-#endif
-
-#ifndef Tk_CreatePhotoImageFormat
-# define Tk_CreatePhotoImageFormat (*TkimgphotoVptr->V_Tk_CreatePhotoImageFormat)
-#endif
-
-#ifndef Tk_DitherPhoto
-# define Tk_DitherPhoto (*TkimgphotoVptr->V_Tk_DitherPhoto)
-#endif
-
-#ifndef Tk_FindPhoto
-# define Tk_FindPhoto (*TkimgphotoVptr->V_Tk_FindPhoto)
-#endif
-
-#ifndef Tk_PhotoBlank
-# define Tk_PhotoBlank (*TkimgphotoVptr->V_Tk_PhotoBlank)
-#endif
-
-#ifndef Tk_PhotoExpand
-# define Tk_PhotoExpand (*TkimgphotoVptr->V_Tk_PhotoExpand)
-#endif
-
-#ifndef Tk_PhotoFormatName
-# define Tk_PhotoFormatName (*TkimgphotoVptr->V_Tk_PhotoFormatName)
-#endif
-
-#ifndef Tk_PhotoGetImage
-# define Tk_PhotoGetImage (*TkimgphotoVptr->V_Tk_PhotoGetImage)
-#endif
-
-#ifndef Tk_PhotoGetSize
-# define Tk_PhotoGetSize (*TkimgphotoVptr->V_Tk_PhotoGetSize)
-#endif
-
-#ifndef Tk_PhotoPutBlock
-# define Tk_PhotoPutBlock (*TkimgphotoVptr->V_Tk_PhotoPutBlock)
-#endif
-
-#ifndef Tk_PhotoPutZoomedBlock
-# define Tk_PhotoPutZoomedBlock (*TkimgphotoVptr->V_Tk_PhotoPutZoomedBlock)
-#endif
-
-#ifndef Tk_PhotoSetSize
-# define Tk_PhotoSetSize (*TkimgphotoVptr->V_Tk_PhotoSetSize)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TKIMGPHOTO_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto.t
deleted file mode 100644
index 02bd1b3807e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto.t
+++ /dev/null
@@ -1,66 +0,0 @@
-#ifdef _TKIMGPHOTO
-VVAR(Tk_PhotoImageFormat,tkImgFmtPPM,V_tkImgFmtPPM)
-#ifndef Tk_CreateOldPhotoImageFormat
-VFUNC(void,Tk_CreateOldPhotoImageFormat,V_Tk_CreateOldPhotoImageFormat,_ANSI_ARGS_((
- Tk_PhotoImageFormat *formatPtr)))
-#endif /* #ifndef Tk_CreateOldPhotoImageFormat */
-
-#ifndef Tk_CreatePhotoImageFormat
-VFUNC(void,Tk_CreatePhotoImageFormat,V_Tk_CreatePhotoImageFormat,_ANSI_ARGS_((
- Tk_PhotoImageFormat *formatPtr)))
-#endif /* #ifndef Tk_CreatePhotoImageFormat */
-
-#ifndef Tk_DitherPhoto
-VFUNC(void,Tk_DitherPhoto,V_Tk_DitherPhoto,_ANSI_ARGS_((Tk_PhotoHandle handle,
- int x, int y, int width, int height)))
-#endif /* #ifndef Tk_DitherPhoto */
-
-#ifndef Tk_FindPhoto
-VFUNC(Tk_PhotoHandle,Tk_FindPhoto,V_Tk_FindPhoto,_ANSI_ARGS_((Tcl_Interp *interp,
- CONST char *imageName)))
-#endif /* #ifndef Tk_FindPhoto */
-
-#ifndef Tk_PhotoBlank
-VFUNC(void,Tk_PhotoBlank,V_Tk_PhotoBlank,_ANSI_ARGS_((Tk_PhotoHandle handle)))
-#endif /* #ifndef Tk_PhotoBlank */
-
-#ifndef Tk_PhotoExpand
-VFUNC(void,Tk_PhotoExpand,V_Tk_PhotoExpand,_ANSI_ARGS_((Tk_PhotoHandle handle,
- int width, int height )))
-#endif /* #ifndef Tk_PhotoExpand */
-
-#ifndef Tk_PhotoFormatName
-VFUNC(char *,Tk_PhotoFormatName,V_Tk_PhotoFormatName,_ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Obj *formatString)))
-#endif /* #ifndef Tk_PhotoFormatName */
-
-#ifndef Tk_PhotoGetImage
-VFUNC(int,Tk_PhotoGetImage,V_Tk_PhotoGetImage,_ANSI_ARGS_((Tk_PhotoHandle handle,
- Tk_PhotoImageBlock *blockPtr)))
-#endif /* #ifndef Tk_PhotoGetImage */
-
-#ifndef Tk_PhotoGetSize
-VFUNC(void,Tk_PhotoGetSize,V_Tk_PhotoGetSize,_ANSI_ARGS_((Tk_PhotoHandle handle,
- int *widthPtr, int *heightPtr)))
-#endif /* #ifndef Tk_PhotoGetSize */
-
-#ifndef Tk_PhotoPutBlock
-VFUNC(void,Tk_PhotoPutBlock,V_Tk_PhotoPutBlock,_ANSI_ARGS_((Tk_PhotoHandle handle,
- Tk_PhotoImageBlock *blockPtr, int x, int y,
- int width, int height, int compRule)))
-#endif /* #ifndef Tk_PhotoPutBlock */
-
-#ifndef Tk_PhotoPutZoomedBlock
-VFUNC(void,Tk_PhotoPutZoomedBlock,V_Tk_PhotoPutZoomedBlock,_ANSI_ARGS_((
- Tk_PhotoHandle handle,
- Tk_PhotoImageBlock *blockPtr, int x, int y,
- int width, int height, int zoomX, int zoomY,
- int subsampleX, int subsampleY, int compRule)))
-#endif /* #ifndef Tk_PhotoPutZoomedBlock */
-
-#ifndef Tk_PhotoSetSize
-VFUNC(void,Tk_PhotoSetSize,V_Tk_PhotoSetSize,_ANSI_ARGS_((Tk_PhotoHandle handle,
- int width, int height)))
-#endif /* #ifndef Tk_PhotoSetSize */
-
-#endif /* _TKIMGPHOTO */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto_f.h
deleted file mode 100644
index 594cebf81b6..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkImgPhoto_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TKIMGPHOTO_VT
-#define TKIMGPHOTO_VT
-typedef struct TkimgphotoVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tkImgPhoto.t"
-#undef VFUNC
-#undef VVAR
-} TkimgphotoVtab;
-extern TkimgphotoVtab *TkimgphotoVptr;
-extern TkimgphotoVtab *TkimgphotoVGet(void);
-#endif /* TKIMGPHOTO_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkInitScript.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkInitScript.h
deleted file mode 100644
index 2e2b2343c32..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkInitScript.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * tkInitScript.h --
- *
- * This file contains Unix & Windows common init script
- * It is not used on the Mac. (the mac init script is in tkMacInit.c)
- *
- * Copyright (c) 1997 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkInitScript.h,v 1.8 1999/04/16 01:51:15 stanton Exp $
- */
-
-
-
-/*
- * In order to find tk.tcl during initialization, the following script
- * is invoked by Tk_Init(). It looks in several different directories:
- *
- * $tk_library - can specify a primary location, if set
- * no other locations will be checked
- *
- * $env(TK_LIBRARY) - highest priority so user can always override
- * the search path unless the application has
- * specified an exact directory above
- *
- * $tcl_library/../tk$tk_version
- * - look relative to init.tcl in an installed
- * lib directory (e.g. /usr/local)
- *
- * <executable directory>/../lib/tk$tk_version
- * - look for a lib/tk<ver> in a sibling of
- * the bin directory (e.g. /usr/local)
- *
- * <executable directory>/../library
- * - look in Tk build directory
- *
- * <executable directory>/../../tk$tk_patchLevel/library
- * - look for Tk build directory relative
- * to a parallel build directory
- *
- * The first directory on this path that contains a valid tk.tcl script
- * will be set ast the value of tk_library.
- *
- * Note that this entire search mechanism can be bypassed by defining an
- * alternate tkInit procedure before calling Tk_Init().
- */
-
-static char initScript[] = "if {[info proc tkInit]==\"\"} {\n\
- proc tkInit {} {\n\
- global tk_library tk_version tk_patchLevel\n\
- rename tkInit {}\n\
- tcl_findLibrary tk $tk_version $tk_patchLevel tk.tcl TK_LIBRARY tk_library\n\
- }\n\
-}\n\
-tkInit";
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkInt.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkInt.h
deleted file mode 100644
index a1925bdda5d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkInt.h
+++ /dev/null
@@ -1,1200 +0,0 @@
-/*
- * tkInt.h --
- *
- * Declarations for things used internally by the Tk
- * procedures but not exported outside the module.
- *
- * Copyright (c) 1990-1994 The Regents of the University of California.
- * Copyright (c) 1994-1997 Sun Microsystems, Inc.
- * Copyright (c) 1998 by Scriptics Corporation.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: $Id: tkInt.h,v 1.56.2.1 2003/10/13 03:30:05 hobbs Exp $
- */
-
-#ifndef _TKINT
-#define _TKINT
-
-#ifndef _TK
-#include "tk.h"
-#endif
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * Opaque type declarations:
- */
-
-typedef struct TkColormap TkColormap;
-typedef struct TkGrabEvent TkGrabEvent;
-typedef struct TkpCursor_ *TkpCursor;
-typedef struct TkRegion_ *TkRegion;
-typedef struct TkStressedCmap TkStressedCmap;
-typedef struct TkBindInfo_ *TkBindInfo;
-
-/*
- * Procedure types.
- */
-
-typedef int (TkBindEvalProc) _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, XEvent *eventPtr, Tk_Window tkwin,
- KeySym keySym));
-typedef void (TkBindFreeProc) _ANSI_ARGS_((ClientData clientData));
-
-/*
- * One of the following structures is maintained for each cursor in
- * use in the system. This structure is used by tkCursor.c and the
- * various system specific cursor files.
- */
-
-typedef struct TkCursor {
- Tk_Cursor cursor; /* System specific identifier for cursor. */
- Display *display; /* Display containing cursor. Needed for
- * disposal and retrieval of cursors. */
- int resourceRefCount; /* Number of active uses of this cursor (each
- * active use corresponds to a call to
- * Tk_AllocPreserveFromObj or Tk_Preserve).
- * If this count is 0, then this structure
- * is no longer valid and it isn't present
- * in a hash table: it is being kept around
- * only because there are objects referring
- * to it. The structure is freed when
- * resourceRefCount and objRefCount are
- * both 0. */
- int objRefCount; /* Number of Tcl objects that reference
- * this structure.. */
- Tcl_HashTable *otherTable; /* Second table (other than idTable) used
- * to index this entry. */
- Tcl_HashEntry *hashPtr; /* Entry in otherTable for this structure
- * (needed when deleting). */
- Tcl_HashEntry *idHashPtr; /* Entry in idTable for this structure
- * (needed when deleting). */
- struct TkCursor *nextPtr; /* Points to the next TkCursor structure with
- * the same name. Cursors with the same
- * name but different displays are chained
- * together off a single hash table entry. */
-} TkCursor;
-
-/*
- * This defines whether we should try to use XIM over-the-spot style
- * input. Allow users to override it. It is a much more elegant use
- * of XIM, but uses a bit more memory.
- */
-
-#ifndef TK_XIM_SPOT
-# define TK_XIM_SPOT 1
-#endif
-
-/*
- * The following structure is kept one-per-TkDisplay to maintain information
- * about the caret (cursor location) on this display. This is used to
- * dictate global focus location (Windows Accessibility guidelines) and to
- * position the IME or XIM over-the-spot window.
- */
-
-typedef struct TkCaret {
- struct TkWindow *winPtr; /* the window on which we requested caret
- * placement */
- int x; /* relative x coord of the caret */
- int y; /* relative y coord of the caret */
- int height; /* specified height of the window */
-} TkCaret;
-
-/*
- * One of the following structures is maintained for each display
- * containing a window managed by Tk. In part, the structure is
- * used to store thread-specific data, since each thread will have
- * its own TkDisplay structure.
- */
-
-typedef struct TkDisplay {
- Display *display; /* Xlib's info about display. */
- struct TkDisplay *nextPtr; /* Next in list of all displays. */
- char *name; /* Name of display (with any screen
- * identifier removed). Malloc-ed. */
- Time lastEventTime; /* Time of last event received for this
- * display. */
-
- /*
- * Information used primarily by tk3d.c:
- */
-
- int borderInit; /* 0 means borderTable needs initializing. */
- Tcl_HashTable borderTable; /* Maps from color name to TkBorder
- * structure. */
-
- /*
- * Information used by tkAtom.c only:
- */
-
- int atomInit; /* 0 means stuff below hasn't been
- * initialized yet. */
- Tcl_HashTable nameTable; /* Maps from names to Atom's. */
- Tcl_HashTable atomTable; /* Maps from Atom's back to names. */
-
- /*
- * Information used primarily by tkBind.c:
- */
-
- int bindInfoStale; /* Non-zero means the variables in this
- * part of the structure are potentially
- * incorrect and should be recomputed. */
- unsigned int modeModMask; /* Has one bit set to indicate the modifier
- * corresponding to "mode shift". If no
- * such modifier, than this is zero. */
- unsigned int metaModMask; /* Has one bit set to indicate the modifier
- * corresponding to the "Meta" key. If no
- * such modifier, then this is zero. */
- unsigned int altModMask; /* Has one bit set to indicate the modifier
- * corresponding to the "Meta" key. If no
- * such modifier, then this is zero. */
- enum {LU_IGNORE, LU_CAPS, LU_SHIFT} lockUsage;
- /* Indicates how to interpret lock modifier. */
- int numModKeyCodes; /* Number of entries in modKeyCodes array
- * below. */
- KeyCode *modKeyCodes; /* Pointer to an array giving keycodes for
- * all of the keys that have modifiers
- * associated with them. Malloc'ed, but
- * may be NULL. */
-
- /*
- * Information used by tkBitmap.c only:
- */
-
- int bitmapInit; /* 0 means tables above need initializing. */
- int bitmapAutoNumber; /* Used to number bitmaps. */
- Tcl_HashTable bitmapNameTable;
- /* Maps from name of bitmap to the first
- * TkBitmap record for that name. */
- Tcl_HashTable bitmapIdTable;/* Maps from bitmap id to the TkBitmap
- * structure for the bitmap. */
- Tcl_HashTable bitmapDataTable;
- /* Used by Tk_GetBitmapFromData to map from
- * a collection of in-core data about a
- * bitmap to a reference giving an auto-
- * matically-generated name for the bitmap. */
-
- /*
- * Information used by tkCanvas.c only:
- */
-
- int numIdSearches;
- int numSlowSearches;
-
- /*
- * Used by tkColor.c only:
- */
-
- int colorInit; /* 0 means color module needs initializing. */
- TkStressedCmap *stressPtr; /* First in list of colormaps that have
- * filled up, so we have to pick an
- * approximate color. */
- Tcl_HashTable colorNameTable;
- /* Maps from color name to TkColor structure
- * for that color. */
- Tcl_HashTable colorValueTable;
- /* Maps from integer RGB values to TkColor
- * structures. */
-
- /*
- * Used by tkCursor.c only:
- */
-
- int cursorInit; /* 0 means cursor module need initializing. */
- Tcl_HashTable cursorNameTable;
- /* Maps from a string name to a cursor to the
- * TkCursor record for the cursor. */
- Tcl_HashTable cursorDataTable;
- /* Maps from a collection of in-core data
- * about a cursor to a TkCursor structure. */
- Tcl_HashTable cursorIdTable;
- /* Maps from a cursor id to the TkCursor
- * structure for the cursor. */
- char cursorString[20]; /* Used to store a cursor id string. */
- Font cursorFont; /* Font to use for standard cursors.
- * None means font not loaded yet. */
-
- /*
- * Information used by tkError.c only:
- */
-
- struct TkErrorHandler *errorPtr;
- /* First in list of error handlers
- * for this display. NULL means
- * no handlers exist at present. */
- int deleteCount; /* Counts # of handlers deleted since
- * last time inactive handlers were
- * garbage-collected. When this number
- * gets big, handlers get cleaned up. */
-
- /*
- * Used by tkEvent.c only:
- */
-
- struct TkWindowEvent *delayedMotionPtr;
- /* Points to a malloc-ed motion event
- * whose processing has been delayed in
- * the hopes that another motion event
- * will come along right away and we can
- * merge the two of them together. NULL
- * means that there is no delayed motion
- * event. */
-
- /*
- * Information used by tkFocus.c only:
- */
-
- int focusDebug; /* 1 means collect focus debugging
- * statistics. */
- struct TkWindow *implicitWinPtr;
- /* If the focus arrived at a toplevel window
- * implicitly via an Enter event (rather
- * than via a FocusIn event), this points
- * to the toplevel window. Otherwise it is
- * NULL. */
- struct TkWindow *focusPtr; /* Points to the window on this display that
- * should be receiving keyboard events. When
- * multiple applications on the display have
- * the focus, this will refer to the
- * innermost window in the innermost
- * application. This information isn't used
- * under Unix or Windows, but it's needed on
- * the Macintosh. */
-
- /*
- * Information used by tkGC.c only:
- */
-
- Tcl_HashTable gcValueTable; /* Maps from a GC's values to a TkGC structure
- * describing a GC with those values. */
- Tcl_HashTable gcIdTable; /* Maps from a GC to a TkGC. */
- int gcInit; /* 0 means the tables below need
- * initializing. */
-
- /*
- * Information used by tkGeometry.c only:
- */
-
- Tcl_HashTable maintainHashTable;
- /* Hash table that maps from a master's
- * Tk_Window token to a list of slaves
- * managed by that master. */
- int geomInit;
-
- /*
- * Information used by tkGet.c only:
- */
-
- Tcl_HashTable uidTable; /* Stores all Tk_Uid used in a thread. */
- int uidInit; /* 0 means uidTable needs initializing. */
-
- /*
- * Information used by tkGrab.c only:
- */
-
- struct TkWindow *grabWinPtr;
- /* Window in which the pointer is currently
- * grabbed, or NULL if none. */
- struct TkWindow *eventualGrabWinPtr;
- /* Value that grabWinPtr will have once the
- * grab event queue (below) has been
- * completely emptied. */
- struct TkWindow *buttonWinPtr;
- /* Window in which first mouse button was
- * pressed while grab was in effect, or NULL
- * if no such press in effect. */
- struct TkWindow *serverWinPtr;
- /* If no application contains the pointer then
- * this is NULL. Otherwise it contains the
- * last window for which we've gotten an
- * Enter or Leave event from the server (i.e.
- * the last window known to have contained
- * the pointer). Doesn't reflect events
- * that were synthesized in tkGrab.c. */
- TkGrabEvent *firstGrabEventPtr;
- /* First in list of enter/leave events
- * synthesized by grab code. These events
- * must be processed in order before any other
- * events are processed. NULL means no such
- * events. */
- TkGrabEvent *lastGrabEventPtr;
- /* Last in list of synthesized events, or NULL
- * if list is empty. */
- int grabFlags; /* Miscellaneous flag values. See definitions
- * in tkGrab.c. */
-
- /*
- * Information used by tkGrid.c only:
- */
-
- int gridInit; /* 0 means table below needs initializing. */
- Tcl_HashTable gridHashTable;/* Maps from Tk_Window tokens to
- * corresponding Grid structures. */
-
- /*
- * Information used by tkImage.c only:
- */
-
- int imageId; /* Value used to number image ids. */
-
- /*
- * Information used by tkMacWinMenu.c only:
- */
-
- int postCommandGeneration;
-
- /*
- * Information used by tkOption.c only.
- */
-
-
-
- /*
- * Information used by tkPack.c only.
- */
-
- int packInit; /* 0 means table below needs initializing. */
- Tcl_HashTable packerHashTable;
- /* Maps from Tk_Window tokens to
- * corresponding Packer structures. */
-
-
- /*
- * Information used by tkPlace.c only.
- */
-
- int placeInit; /* 0 means tables below need initializing. */
- Tcl_HashTable masterTable; /* Maps from Tk_Window toke to the Master
- * structure for the window, if it exists. */
- Tcl_HashTable slaveTable; /* Maps from Tk_Window toke to the Slave
- * structure for the window, if it exists. */
-
- /*
- * Information used by tkSelect.c and tkClipboard.c only:
- */
-
- struct TkSelectionInfo *selectionInfoPtr;
- /* First in list of selection information
- * records. Each entry contains information
- * about the current owner of a particular
- * selection on this display. */
- Atom multipleAtom; /* Atom for MULTIPLE. None means
- * selection stuff isn't initialized. */
- Atom incrAtom; /* Atom for INCR. */
- Atom targetsAtom; /* Atom for TARGETS. */
- Atom timestampAtom; /* Atom for TIMESTAMP. */
- Atom textAtom; /* Atom for TEXT. */
- Atom compoundTextAtom; /* Atom for COMPOUND_TEXT. */
- Atom applicationAtom; /* Atom for TK_APPLICATION. */
- Atom windowAtom; /* Atom for TK_WINDOW. */
- Atom clipboardAtom; /* Atom for CLIPBOARD. */
- Atom utf8Atom; /* Atom for UTF8_STRING. */
-
- Tk_Window clipWindow; /* Window used for clipboard ownership and to
- * retrieve selections between processes. NULL
- * means clipboard info hasn't been
- * initialized. */
- int clipboardActive; /* 1 means we currently own the clipboard
- * selection, 0 means we don't. */
- struct TkMainInfo *clipboardAppPtr;
- /* Last application that owned clipboard. */
- struct TkClipboardTarget *clipTargetPtr;
- /* First in list of clipboard type information
- * records. Each entry contains information
- * about the buffers for a given selection
- * target. */
-
- /*
- * Information used by tkSend.c only:
- */
-
- Tk_Window commTkwin; /* Window used for communication
- * between interpreters during "send"
- * commands. NULL means send info hasn't
- * been initialized yet. */
- Atom commProperty; /* X's name for comm property. */
- Atom registryProperty; /* X's name for property containing
- * registry of interpreter names. */
- Atom appNameProperty; /* X's name for property used to hold the
- * application name on each comm window. */
-
- /*
- * Information used by tkXId.c only:
- */
-
- struct TkIdStack *idStackPtr;
- /* First in list of chunks of free resource
- * identifiers, or NULL if there are no free
- * resources. */
- XID (*defaultAllocProc) _ANSI_ARGS_((Display *display));
- /* Default resource allocator for display. */
- struct TkIdStack *windowStackPtr;
- /* First in list of chunks of window
- * identifers that can't be reused right
- * now. */
- Tcl_TimerToken idCleanupScheduled;
- /* If set, it means a call to WindowIdCleanup
- * has already been scheduled, 0 means it
- * hasn't. */
-
- /*
- * Information used by tkUnixWm.c and tkWinWm.c only:
- */
-
- struct TkWmInfo *firstWmPtr; /* Points to first top-level window. */
- struct TkWmInfo *foregroundWmPtr;
- /* Points to the foreground window. */
-
- /*
- * Information maintained by tkWindow.c for use later on by tkXId.c:
- */
-
-
- int destroyCount; /* Number of Tk_DestroyWindow operations
- * in progress. */
- unsigned long lastDestroyRequest;
- /* Id of most recent XDestroyWindow request;
- * can re-use ids in windowStackPtr when
- * server has seen this request and event
- * queue is empty. */
-
- /*
- * Information used by tkVisual.c only:
- */
-
- TkColormap *cmapPtr; /* First in list of all non-default colormaps
- * allocated for this display. */
-
- /*
- * Miscellaneous information:
- */
-
-#ifdef TK_USE_INPUT_METHODS
- XIM inputMethod; /* Input method for this display */
-#if TK_XIM_SPOT
- XFontSet inputXfs; /* XFontSet cached for over-the-spot XIM. */
-#endif
-#endif /* TK_USE_INPUT_METHODS */
- Tcl_HashTable winTable; /* Maps from X window ids to TkWindow ptrs. */
-
- int refCount; /* Reference count of how many Tk applications
- * are using this display. Used to clean up
- * the display when we no longer have any
- * Tk applications using it.
- */
- /*
- * The following field were all added for Tk8.3
- */
- int mouseButtonState; /* current mouse button state for this
- * display */
- Window mouseButtonWindow; /* Window the button state was set in,
- * added in Tk 8.4. */
- Window warpWindow;
- int warpX;
- int warpY;
-
- /*
- * The following field(s) were all added for Tk8.4
- */
- unsigned int flags; /* Various flag values: these are all
- * defined in below. */
- TkCaret caret; /* information about the caret for this
- * display. This is not a pointer. */
- int iconDataSize; /* Size of default iconphoto image data */
- unsigned char *iconDataPtr; /* Default iconphoto image data, if set */
-} TkDisplay;
-
-/*
- * Flag values for TkDisplay flags.
- * TK_DISPLAY_COLLAPSE_MOTION_EVENTS: (default on)
- * Indicates that we should collapse motion events on this display
- * TK_DISPLAY_USE_IM: (default on, set via tk.tcl)
- * Whether to use input methods for this display
- * TK_DISPLAY_XIM_SPOT: (default off)
- * Indicates that we should use over-the-spot XIM on this display
- * TK_DISPLAY_WM_TRACING: (default off)
- * Whether we should do wm tracing on this display.
- * TK_DISPLAY_IN_WARP: (default off)
- * Indicates that we are in a pointer warp
- */
-
-#define TK_DISPLAY_COLLAPSE_MOTION_EVENTS (1 << 0)
-#define TK_DISPLAY_USE_IM (1 << 1)
-#define TK_DISPLAY_XIM_SPOT (1 << 2)
-#define TK_DISPLAY_WM_TRACING (1 << 3)
-#define TK_DISPLAY_IN_WARP (1 << 4)
-
-/*
- * One of the following structures exists for each error handler
- * created by a call to Tk_CreateErrorHandler. The structure
- * is managed by tkError.c.
- */
-
-typedef struct TkErrorHandler {
- TkDisplay *dispPtr; /* Display to which handler applies. */
- unsigned long firstRequest; /* Only errors with serial numbers
- * >= to this are considered. */
- unsigned long lastRequest; /* Only errors with serial numbers
- * <= to this are considered. This
- * field is filled in when XUnhandle
- * is called. -1 means XUnhandle
- * hasn't been called yet. */
- int error; /* Consider only errors with this
- * error_code (-1 means consider
- * all errors). */
- int request; /* Consider only errors with this
- * major request code (-1 means
- * consider all major codes). */
- int minorCode; /* Consider only errors with this
- * minor request code (-1 means
- * consider all minor codes). */
- Tk_ErrorProc *errorProc; /* Procedure to invoke when a matching
- * error occurs. NULL means just ignore
- * errors. */
- ClientData clientData; /* Arbitrary value to pass to
- * errorProc. */
- struct TkErrorHandler *nextPtr;
- /* Pointer to next older handler for
- * this display, or NULL for end of
- * list. */
-} TkErrorHandler;
-
-
-/*
- * One of the following structures exists for each event handler
- * created by calling Tk_CreateEventHandler. This information
- * is used by tkEvent.c only.
- */
-
-typedef struct TkEventHandler {
- unsigned long mask; /* Events for which to invoke
- * proc. */
- Tk_EventProc *proc; /* Procedure to invoke when an event
- * in mask occurs. */
- ClientData clientData; /* Argument to pass to proc. */
- struct TkEventHandler *nextPtr;
- /* Next in list of handlers
- * associated with window (NULL means
- * end of list). */
-} TkEventHandler;
-
-/*
- * Tk keeps one of the following data structures for each main
- * window (created by a call to TkCreateMainWindow). It stores
- * information that is shared by all of the windows associated
- * with a particular main window.
- */
-
-typedef struct TkMainInfo {
- int refCount; /* Number of windows whose "mainPtr" fields
- * point here. When this becomes zero, can
- * free up the structure (the reference
- * count is zero because windows can get
- * deleted in almost any order; the main
- * window isn't necessarily the last one
- * deleted). */
- struct TkWindow *winPtr; /* Pointer to main window. */
- Tcl_Interp *interp; /* Interpreter associated with application. */
- Tcl_HashTable nameTable; /* Hash table mapping path names to TkWindow
- * structs for all windows related to this
- * main window. Managed by tkWindow.c. */
- long deletionEpoch; /* Incremented by window deletions */
- Tk_BindingTable bindingTable;
- /* Used in conjunction with "bind" command
- * to bind events to Tcl commands. */
- TkBindInfo bindInfo; /* Information used by tkBind.c on a per
- * application basis. */
- struct TkFontInfo *fontInfoPtr;
- /* Information used by tkFont.c on a per
- * application basis. */
-
- /*
- * Information used only by tkFocus.c and tk*Embed.c:
- */
-
- struct TkToplevelFocusInfo *tlFocusPtr;
- /* First in list of records containing focus
- * information for each top-level in the
- * application. Used only by tkFocus.c. */
- struct TkDisplayFocusInfo *displayFocusPtr;
- /* First in list of records containing focus
- * information for each display that this
- * application has ever used. Used only
- * by tkFocus.c. */
-
- struct ElArray *optionRootPtr;
- /* Top level of option hierarchy for this
- * main window. NULL means uninitialized.
- * Managed by tkOption.c. */
- Tcl_HashTable imageTable; /* Maps from image names to Tk_ImageMaster
- * structures. Managed by tkImage.c. */
- int strictMotif; /* This is linked to the tk_strictMotif
- * global variable. */
- struct TkMainInfo *nextPtr; /* Next in list of all main windows managed by
- * this process. */
-} TkMainInfo;
-
-/*
- * Tk keeps the following data structure for each of it's builtin
- * bitmaps. This structure is only used by tkBitmap.c and other
- * platform specific bitmap files.
- */
-
-typedef struct {
- CONST char *source; /* Bits for bitmap. */
- int width, height; /* Dimensions of bitmap. */
- int native; /* 0 means generic (X style) bitmap,
- * 1 means native style bitmap. */
-} TkPredefBitmap;
-
-/*
- * Tk keeps one of the following structures for each window.
- * Some of the information (like size and location) is a shadow
- * of information managed by the X server, and some is special
- * information used here, such as event and geometry management
- * information. This information is (mostly) managed by tkWindow.c.
- * WARNING: the declaration below must be kept consistent with the
- * Tk_FakeWin structure in tk.h. If you change one, be sure to
- * change the other!!
- */
-
-typedef struct TkWindow {
-
- /*
- * Structural information:
- */
-
- Display *display; /* Display containing window. */
- TkDisplay *dispPtr; /* Tk's information about display
- * for window. */
- int screenNum; /* Index of screen for window, among all
- * those for dispPtr. */
- Visual *visual; /* Visual to use for window. If not default,
- * MUST be set before X window is created. */
- int depth; /* Number of bits/pixel. */
- Window window; /* X's id for window. NULL means window
- * hasn't actually been created yet, or it's
- * been deleted. */
- struct TkWindow *childList; /* First in list of child windows,
- * or NULL if no children. List is in
- * stacking order, lowest window first.*/
- struct TkWindow *lastChildPtr;
- /* Last in list of child windows (highest
- * in stacking order), or NULL if no
- * children. */
- struct TkWindow *parentPtr; /* Pointer to parent window (logical
- * parent, not necessarily X parent). NULL
- * means either this is the main window, or
- * the window's parent has already been
- * deleted. */
- struct TkWindow *nextPtr; /* Next higher sibling (in stacking order)
- * in list of children with same parent. NULL
- * means end of list. */
- TkMainInfo *mainPtr; /* Information shared by all windows
- * associated with a particular main
- * window. NULL means this window is
- * a rogue that isn't associated with
- * any application (at present, this
- * only happens for the dummy windows
- * used for "send" communication). */
-
- /*
- * Name and type information for the window:
- */
-
- char *pathName; /* Path name of window (concatenation
- * of all names between this window and
- * its top-level ancestor). This is a
- * pointer into an entry in
- * mainPtr->nameTable. NULL means that
- * the window hasn't been completely
- * created yet. */
- Tk_Uid nameUid; /* Name of the window within its parent
- * (unique within the parent). */
- Tk_Uid classUid; /* Class of the window. NULL means window
- * hasn't been given a class yet. */
-
- /*
- * Geometry and other attributes of window. This information
- * may not be updated on the server immediately; stuff that
- * hasn't been reflected in the server yet is called "dirty".
- * At present, information can be dirty only if the window
- * hasn't yet been created.
- */
-
- XWindowChanges changes; /* Geometry and other info about
- * window. */
- unsigned int dirtyChanges; /* Bits indicate fields of "changes"
- * that are dirty. */
- XSetWindowAttributes atts; /* Current attributes of window. */
- unsigned long dirtyAtts; /* Bits indicate fields of "atts"
- * that are dirty. */
-
- unsigned int flags; /* Various flag values: these are all
- * defined in tk.h (confusing, but they're
- * needed there for some query macros). */
-
- /*
- * Information kept by the event manager (tkEvent.c):
- */
-
- TkEventHandler *handlerList;/* First in list of event handlers
- * declared for this window, or
- * NULL if none. */
-#ifdef TK_USE_INPUT_METHODS
- XIC inputContext; /* XIM input context. */
-#endif /* TK_USE_INPUT_METHODS */
-
- /*
- * Information used for event bindings (see "bind" and "bindtags"
- * commands in tkCmds.c):
- */
-
- ClientData *tagPtr; /* Points to array of tags used for bindings
- * on this window. Each tag is a Tk_Uid.
- * Malloc'ed. NULL means no tags. */
- int numTags; /* Number of tags at *tagPtr. */
-
- /*
- * Information used by tkOption.c to manage options for the
- * window.
- */
-
- int optionLevel; /* -1 means no option information is
- * currently cached for this window.
- * Otherwise this gives the level in
- * the option stack at which info is
- * cached. */
- /*
- * Information used by tkSelect.c to manage the selection.
- */
-
- struct TkSelHandler *selHandlerList;
- /* First in list of handlers for
- * returning the selection in various
- * forms. */
-
- /*
- * Information used by tkGeometry.c for geometry management.
- */
-
- Tk_GeomMgr *geomMgrPtr; /* Information about geometry manager for
- * this window. */
- ClientData geomData; /* Argument for geometry manager procedures. */
- int reqWidth, reqHeight; /* Arguments from last call to
- * Tk_GeometryRequest, or 0's if
- * Tk_GeometryRequest hasn't been
- * called. */
- int internalBorderLeft; /* Width of internal border of window
- * (0 means no internal border). Geometry
- * managers should not normally place children
- * on top of the border.
- * Fields for the other three sides are found
- * below. */
-
- /*
- * Information maintained by tkWm.c for window manager communication.
- */
-
- struct TkWmInfo *wmInfoPtr; /* For top-level windows (and also
- * for special Unix menubar and wrapper
- * windows), points to structure with
- * wm-related info (see tkWm.c). For
- * other windows, this is NULL. */
-
- /*
- * Information used by widget classes.
- */
-
- Tk_ClassProcs *classProcsPtr;
- ClientData instanceData;
-
- /*
- * Platform specific information private to each port.
- */
-
- struct TkWindowPrivate *privatePtr;
-
- /*
- * More information used by tkGeometry.c for geometry management.
- */
-
- /* The remaining fields of internal border. */
- int internalBorderRight;
- int internalBorderTop;
- int internalBorderBottom;
-
- int minReqWidth; /* Minimum requested width. */
- int minReqHeight; /* Minimum requested height. */
-} TkWindow;
-
-/*
- * The following structure is used as a two way map between integers
- * and strings, usually to map between an internal C representation
- * and the strings used in Tcl.
- */
-
-typedef struct TkStateMap {
- int numKey; /* Integer representation of a value. */
- char *strKey; /* String representation of a value. */
-} TkStateMap;
-
-/*
- * This structure is used by the Mac and Window porting layers as
- * the internal representation of a clip_mask in a GC.
- */
-
-typedef struct TkpClipMask {
- int type; /* One of TKP_CLIP_PIXMAP or TKP_CLIP_REGION */
- union {
- Pixmap pixmap;
- TkRegion region;
- } value;
-} TkpClipMask;
-
-#define TKP_CLIP_PIXMAP 0
-#define TKP_CLIP_REGION 1
-
-/*
- * Pointer to first entry in list of all displays currently known.
- */
-
-extern TkDisplay *tkDisplayList;
-
-/*
- * Return values from TkGrabState:
- */
-
-#define TK_GRAB_NONE 0
-#define TK_GRAB_IN_TREE 1
-#define TK_GRAB_ANCESTOR 2
-#define TK_GRAB_EXCLUDED 3
-
-/*
- * The macro below is used to modify a "char" value (e.g. by casting
- * it to an unsigned character) so that it can be used safely with
- * macros such as isspace.
- */
-
-#define UCHAR(c) ((unsigned char) (c))
-
-/*
- * The following symbol is used in the mode field of FocusIn events
- * generated by an embedded application to request the input focus from
- * its container.
- */
-
-#define EMBEDDED_APP_WANTS_FOCUS (NotifyNormal + 20)
-
-/*
- * The following special modifier mask bits are defined, to indicate
- * logical modifiers such as Meta and Alt that may float among the
- * actual modifier bits.
- */
-
-#define META_MASK (AnyModifier<<1)
-#define ALT_MASK (AnyModifier<<2)
-
-/*
- * Object types not declared in tkObj.c need to be mentioned here so
- * they can be properly registered with Tcl:
- */
-
-extern Tcl_ObjType tkBorderObjType;
-extern Tcl_ObjType tkBitmapObjType;
-extern Tcl_ObjType tkColorObjType;
-extern Tcl_ObjType tkCursorObjType;
-extern Tcl_ObjType tkFontObjType;
-extern Tcl_ObjType tkOptionObjType;
-extern Tcl_ObjType tkStateKeyObjType;
-
-/*
- * Miscellaneous variables shared among Tk modules but not exported
- * to the outside world:
- */
-typedef void TkDelayedEventProc _ANSI_ARGS_((void));
-typedef void tkHandleEventProc_t _ANSI_ARGS_((XEvent* eventPtr));
-
-extern Tk_SmoothMethod tkBezierSmoothMethod;
-extern Tk_ImageType tkBitmapImageType;
-extern Tk_PhotoImageFormat tkImgFmtGIF;
-extern void (*tkHandleEventProc) _ANSI_ARGS_((
- XEvent* eventPtr));
-extern Tk_PhotoImageFormat tkImgFmtPPM;
-extern TkMainInfo *tkMainWindowList;
-extern Tk_ImageType tkPhotoImageType;
-extern Tcl_HashTable tkPredefBitmapTable;
-extern int tkSendSerial;
-
-#include "tkIntDecls.h"
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * Internal procedures shared among Tk modules but not exported
- * to the outside world:
- */
-
-EXTERN int Tk_BellObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_BindObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_BindtagsObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_ButtonObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_CanvasObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_CheckbuttonObjCmd _ANSI_ARGS_((
- ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_ClipboardObjCmd _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Tk_ChooseColorObjCmd _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Tk_ChooseDirectoryObjCmd _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Tk_ChooseFontObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_DestroyObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_EntryObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_EventObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_FileeventCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_FrameObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_FocusObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_FontObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_GetOpenFileObjCmd _ANSI_ARGS_((
- ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_GetSaveFileObjCmd _ANSI_ARGS_((
- ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_GrabObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_GridObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_ImageObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_LabelObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_LabelframeObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_ListboxObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_LowerObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_MenubuttonObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_MessageBoxObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_MessageObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_PanedWindowObjCmd _ANSI_ARGS_((
- ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_OptionObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_PackObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_PlaceObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_RadiobuttonObjCmd _ANSI_ARGS_((
- ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_RaiseObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_ScaleObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_ScrollbarCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST objv[]));
-EXTERN int Tk_SelectionObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_SendCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_SendObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_SpinboxObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_TextCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int Tk_TkObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_TkwaitObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_ToplevelObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_UpdateObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_WinfoObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN int Tk_WmObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-
-EXTERN void TkConsolePrint _ANSI_ARGS_((Tcl_Interp *interp,
- int devId, CONST char *buffer, long size));
-
-EXTERN void TkEventInit _ANSI_ARGS_((void));
-
-EXTERN void TkRegisterObjTypes _ANSI_ARGS_((void));
-
-EXTERN int TkCreateMenuCmd _ANSI_ARGS_((Tcl_Interp *interp));
-EXTERN int TkDeadAppCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-
-EXTERN int TkpTestembedCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int TkCanvasGetCoordObj _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Canvas canvas, Tcl_Obj *obj,
- double *doublePtr));
-EXTERN int TkCanvasDashParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value, char *widgRec,
- int offset));
-EXTERN Tcl_Obj * TkCanvasDashPrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN int TkGetDoublePixels _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Window tkwin, CONST char *string,
- double *doublePtr));
-EXTERN int TkOffsetParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value, char *widgRec,
- int offset));
-EXTERN Tcl_Obj * TkOffsetPrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN int TkOrientParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value,
- char *widgRec, int offset));
-EXTERN Tcl_Obj * TkOrientPrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN int TkPixelParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value, char *widgRec,
- int offset));
-EXTERN Tcl_Obj * TkPixelPrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN int TkPostscriptImage _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Window tkwin, Tk_PostscriptInfo psInfo,
- XImage *ximage, int x, int y, int width,
- int height));
-EXTERN int TkSmoothParseProc _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, Tk_Window tkwin,
- Tcl_Obj *value, char *recordPtr, int offset));
-EXTERN Tcl_Obj * TkSmoothPrintProc _ANSI_ARGS_((ClientData clientData,
- Tk_Window tkwin, char *recordPtr, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN int TkStateParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value,
- char *widgRec, int offset));
-EXTERN Tcl_Obj * TkStatePrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN int Tk_StateParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value,
- char *widgRec, int offset));
-EXTERN Tcl_Obj * Tk_StatePrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-EXTERN int TkTileParseProc _ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value, char *widgRec,
- int offset));
-EXTERN Tcl_Obj * TkTilePrintProc _ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr));
-
-/*
- * Unsupported commands.
- */
-EXTERN int TkUnsupported1Cmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-
-/*
- * Canvas-related procedures that are shared among Tk modules but not
- * exported to the outside world:
- */
-
-struct TkCanvas;
-extern int TkCanvPostscriptCmd _ANSI_ARGS_((struct TkCanvas *canvasPtr,
- Tcl_Interp *interp, int argc, CONST84 Tcl_Obj *CONST *objv));
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKINT */
-
-
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkInt.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tkInt.m
deleted file mode 100644
index 4713524528e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkInt.m
+++ /dev/null
@@ -1,125 +0,0 @@
-#ifndef _TKINT_VM
-#define _TKINT_VM
-#include "tkInt_f.h"
-#ifndef NO_VTABLES
-#define tkBitmapObjType (*TkintVptr->V_tkBitmapObjType)
-#define tkBorderObjType (*TkintVptr->V_tkBorderObjType)
-#define tkColorObjType (*TkintVptr->V_tkColorObjType)
-#define tkCursorObjType (*TkintVptr->V_tkCursorObjType)
-#define tkFontObjType (*TkintVptr->V_tkFontObjType)
-#define tkOptionObjType (*TkintVptr->V_tkOptionObjType)
-#define tkStateKeyObjType (*TkintVptr->V_tkStateKeyObjType)
-#ifndef TkCanvPostscriptCmd
-# define TkCanvPostscriptCmd (*TkintVptr->V_TkCanvPostscriptCmd)
-#endif
-
-#ifndef TkCreateMenuCmd
-# define TkCreateMenuCmd (*TkintVptr->V_TkCreateMenuCmd)
-#endif
-
-#ifndef TkEventInit
-# define TkEventInit (*TkintVptr->V_TkEventInit)
-#endif
-
-#ifndef TkGetDoublePixels
-# define TkGetDoublePixels (*TkintVptr->V_TkGetDoublePixels)
-#endif
-
-#ifndef TkOffsetParseProc
-# define TkOffsetParseProc (*TkintVptr->V_TkOffsetParseProc)
-#endif
-
-#ifndef TkOffsetPrintProc
-# define TkOffsetPrintProc (*TkintVptr->V_TkOffsetPrintProc)
-#endif
-
-#ifndef TkOrientParseProc
-# define TkOrientParseProc (*TkintVptr->V_TkOrientParseProc)
-#endif
-
-#ifndef TkOrientPrintProc
-# define TkOrientPrintProc (*TkintVptr->V_TkOrientPrintProc)
-#endif
-
-#ifndef TkPixelParseProc
-# define TkPixelParseProc (*TkintVptr->V_TkPixelParseProc)
-#endif
-
-#ifndef TkPixelPrintProc
-# define TkPixelPrintProc (*TkintVptr->V_TkPixelPrintProc)
-#endif
-
-#ifndef TkPostscriptImage
-# define TkPostscriptImage (*TkintVptr->V_TkPostscriptImage)
-#endif
-
-#ifndef TkRegisterObjTypes
-# define TkRegisterObjTypes (*TkintVptr->V_TkRegisterObjTypes)
-#endif
-
-#ifndef TkTileParseProc
-# define TkTileParseProc (*TkintVptr->V_TkTileParseProc)
-#endif
-
-#ifndef TkTilePrintProc
-# define TkTilePrintProc (*TkintVptr->V_TkTilePrintProc)
-#endif
-
-#ifndef Tk_BindObjCmd
-# define Tk_BindObjCmd (*TkintVptr->V_Tk_BindObjCmd)
-#endif
-
-#ifndef Tk_BindtagsObjCmd
-# define Tk_BindtagsObjCmd (*TkintVptr->V_Tk_BindtagsObjCmd)
-#endif
-
-#ifndef Tk_ClipboardObjCmd
-# define Tk_ClipboardObjCmd (*TkintVptr->V_Tk_ClipboardObjCmd)
-#endif
-
-#ifndef Tk_GrabObjCmd
-# define Tk_GrabObjCmd (*TkintVptr->V_Tk_GrabObjCmd)
-#endif
-
-#ifndef Tk_GridObjCmd
-# define Tk_GridObjCmd (*TkintVptr->V_Tk_GridObjCmd)
-#endif
-
-#ifndef Tk_LabelframeObjCmd
-# define Tk_LabelframeObjCmd (*TkintVptr->V_Tk_LabelframeObjCmd)
-#endif
-
-#ifndef Tk_PackObjCmd
-# define Tk_PackObjCmd (*TkintVptr->V_Tk_PackObjCmd)
-#endif
-
-#ifndef Tk_PanedWindowObjCmd
-# define Tk_PanedWindowObjCmd (*TkintVptr->V_Tk_PanedWindowObjCmd)
-#endif
-
-#ifndef Tk_PlaceObjCmd
-# define Tk_PlaceObjCmd (*TkintVptr->V_Tk_PlaceObjCmd)
-#endif
-
-#ifndef Tk_SelectionObjCmd
-# define Tk_SelectionObjCmd (*TkintVptr->V_Tk_SelectionObjCmd)
-#endif
-
-#ifndef Tk_StateParseProc
-# define Tk_StateParseProc (*TkintVptr->V_Tk_StateParseProc)
-#endif
-
-#ifndef Tk_StatePrintProc
-# define Tk_StatePrintProc (*TkintVptr->V_Tk_StatePrintProc)
-#endif
-
-#ifndef Tk_TkwaitObjCmd
-# define Tk_TkwaitObjCmd (*TkintVptr->V_Tk_TkwaitObjCmd)
-#endif
-
-#ifndef Tk_WmObjCmd
-# define Tk_WmObjCmd (*TkintVptr->V_Tk_WmObjCmd)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TKINT_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkInt.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tkInt.t
deleted file mode 100644
index 6e2c9d44089..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkInt.t
+++ /dev/null
@@ -1,182 +0,0 @@
-#ifdef _TKINT
-VVAR(Tcl_ObjType,tkBitmapObjType,V_tkBitmapObjType)
-VVAR(Tcl_ObjType,tkBorderObjType,V_tkBorderObjType)
-VVAR(Tcl_ObjType,tkColorObjType,V_tkColorObjType)
-VVAR(Tcl_ObjType,tkCursorObjType,V_tkCursorObjType)
-VVAR(Tcl_ObjType,tkFontObjType,V_tkFontObjType)
-VVAR(Tcl_ObjType,tkOptionObjType,V_tkOptionObjType)
-VVAR(Tcl_ObjType,tkStateKeyObjType,V_tkStateKeyObjType)
-#ifndef TkCanvPostscriptCmd
-VFUNC(int,TkCanvPostscriptCmd,V_TkCanvPostscriptCmd,_ANSI_ARGS_((struct TkCanvas *canvasPtr,
- Tcl_Interp *interp, int argc, CONST84 Tcl_Obj *CONST *objv)))
-#endif /* #ifndef TkCanvPostscriptCmd */
-
-#ifndef TkCreateMenuCmd
-VFUNC(int,TkCreateMenuCmd,V_TkCreateMenuCmd,_ANSI_ARGS_((Tcl_Interp *interp)))
-#endif /* #ifndef TkCreateMenuCmd */
-
-#ifndef TkEventInit
-VFUNC(void,TkEventInit,V_TkEventInit,_ANSI_ARGS_((void)))
-#endif /* #ifndef TkEventInit */
-
-#ifndef TkGetDoublePixels
-VFUNC(int,TkGetDoublePixels,V_TkGetDoublePixels,_ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Window tkwin, CONST char *string,
- double *doublePtr)))
-#endif /* #ifndef TkGetDoublePixels */
-
-#ifndef TkOffsetParseProc
-VFUNC(int,TkOffsetParseProc,V_TkOffsetParseProc,_ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value, char *widgRec,
- int offset)))
-#endif /* #ifndef TkOffsetParseProc */
-
-#ifndef TkOffsetPrintProc
-VFUNC(Tcl_Obj *,TkOffsetPrintProc,V_TkOffsetPrintProc,_ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr)))
-#endif /* #ifndef TkOffsetPrintProc */
-
-#ifndef TkOrientParseProc
-VFUNC(int,TkOrientParseProc,V_TkOrientParseProc,_ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value,
- char *widgRec, int offset)))
-#endif /* #ifndef TkOrientParseProc */
-
-#ifndef TkOrientPrintProc
-VFUNC(Tcl_Obj *,TkOrientPrintProc,V_TkOrientPrintProc,_ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr)))
-#endif /* #ifndef TkOrientPrintProc */
-
-#ifndef TkPixelParseProc
-VFUNC(int,TkPixelParseProc,V_TkPixelParseProc,_ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value, char *widgRec,
- int offset)))
-#endif /* #ifndef TkPixelParseProc */
-
-#ifndef TkPixelPrintProc
-VFUNC(Tcl_Obj *,TkPixelPrintProc,V_TkPixelPrintProc,_ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr)))
-#endif /* #ifndef TkPixelPrintProc */
-
-#ifndef TkPostscriptImage
-VFUNC(int,TkPostscriptImage,V_TkPostscriptImage,_ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Window tkwin, Tk_PostscriptInfo psInfo,
- XImage *ximage, int x, int y, int width,
- int height)))
-#endif /* #ifndef TkPostscriptImage */
-
-#ifndef TkRegisterObjTypes
-VFUNC(void,TkRegisterObjTypes,V_TkRegisterObjTypes,_ANSI_ARGS_((void)))
-#endif /* #ifndef TkRegisterObjTypes */
-
-#ifndef TkTileParseProc
-VFUNC(int,TkTileParseProc,V_TkTileParseProc,_ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value, char *widgRec,
- int offset)))
-#endif /* #ifndef TkTileParseProc */
-
-#ifndef TkTilePrintProc
-VFUNC(Tcl_Obj *,TkTilePrintProc,V_TkTilePrintProc,_ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr)))
-#endif /* #ifndef TkTilePrintProc */
-
-#ifndef Tk_BindObjCmd
-VFUNC(int,Tk_BindObjCmd,V_Tk_BindObjCmd,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tk_BindObjCmd */
-
-#ifndef Tk_BindtagsObjCmd
-VFUNC(int,Tk_BindtagsObjCmd,V_Tk_BindtagsObjCmd,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tk_BindtagsObjCmd */
-
-#ifndef Tk_ClipboardObjCmd
-VFUNC(int,Tk_ClipboardObjCmd,V_Tk_ClipboardObjCmd,_ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tk_ClipboardObjCmd */
-
-#ifndef Tk_GrabObjCmd
-VFUNC(int,Tk_GrabObjCmd,V_Tk_GrabObjCmd,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tk_GrabObjCmd */
-
-#ifndef Tk_GridObjCmd
-VFUNC(int,Tk_GridObjCmd,V_Tk_GridObjCmd,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tk_GridObjCmd */
-
-#ifndef Tk_LabelframeObjCmd
-VFUNC(int,Tk_LabelframeObjCmd,V_Tk_LabelframeObjCmd,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tk_LabelframeObjCmd */
-
-#ifndef Tk_PackObjCmd
-VFUNC(int,Tk_PackObjCmd,V_Tk_PackObjCmd,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tk_PackObjCmd */
-
-#ifndef Tk_PanedWindowObjCmd
-VFUNC(int,Tk_PanedWindowObjCmd,V_Tk_PanedWindowObjCmd,_ANSI_ARGS_((
- ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tk_PanedWindowObjCmd */
-
-#ifndef Tk_PlaceObjCmd
-VFUNC(int,Tk_PlaceObjCmd,V_Tk_PlaceObjCmd,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tk_PlaceObjCmd */
-
-#ifndef Tk_SelectionObjCmd
-VFUNC(int,Tk_SelectionObjCmd,V_Tk_SelectionObjCmd,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tk_SelectionObjCmd */
-
-#ifndef Tk_StateParseProc
-VFUNC(int,Tk_StateParseProc,V_Tk_StateParseProc,_ANSI_ARGS_((
- ClientData clientData, Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *value,
- char *widgRec, int offset)))
-#endif /* #ifndef Tk_StateParseProc */
-
-#ifndef Tk_StatePrintProc
-VFUNC(Tcl_Obj *,Tk_StatePrintProc,V_Tk_StatePrintProc,_ANSI_ARGS_((
- ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset,
- Tcl_FreeProc **freeProcPtr)))
-#endif /* #ifndef Tk_StatePrintProc */
-
-#ifndef Tk_TkwaitObjCmd
-VFUNC(int,Tk_TkwaitObjCmd,V_Tk_TkwaitObjCmd,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tk_TkwaitObjCmd */
-
-#ifndef Tk_WmObjCmd
-VFUNC(int,Tk_WmObjCmd,V_Tk_WmObjCmd,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])))
-#endif /* #ifndef Tk_WmObjCmd */
-
-#endif /* _TKINT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls.h
deleted file mode 100644
index 4116b2174f1..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls.h
+++ /dev/null
@@ -1,1572 +0,0 @@
-/*
- * tkIntDecls.h --
- *
- * This file contains the declarations for all unsupported
- * functions that are exported by the Tk library. These
- * interfaces are not guaranteed to remain the same between
- * versions. Use at your own risk.
- *
- * Copyright (c) 1998-1999 by Scriptics Corporation.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkIntDecls.h,v 1.22.2.1 2003/10/13 03:30:05 hobbs Exp $
- */
-
-#ifndef _TKINTDECLS
-#define _TKINTDECLS
-
-#ifdef BUILD_tk
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * WARNING: This file is automatically generated by the tools/genStubs.tcl
- * script. Any modifications to the function declarations below should be made
- * in the generic/tkInt.decls script.
- */
-
-/* !BEGIN!: Do not edit below this line. */
-
-/*
- * Exported function declarations:
- */
-
-/* 0 */
-EXTERN TkWindow * TkAllocWindow _ANSI_ARGS_((TkDisplay * dispPtr,
- int screenNum, TkWindow * parentPtr));
-/* 1 */
-EXTERN void TkBezierPoints _ANSI_ARGS_((double control[],
- int numSteps, double * coordPtr));
-/* 2 */
-EXTERN void TkBezierScreenPoints _ANSI_ARGS_((Tk_Canvas canvas,
- double control[], int numSteps,
- XPoint * xPointPtr));
-/* 3 */
-EXTERN void TkBindDeadWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 4 */
-EXTERN void TkBindEventProc _ANSI_ARGS_((TkWindow * winPtr,
- XEvent * eventPtr));
-/* 5 */
-EXTERN void TkBindFree _ANSI_ARGS_((TkMainInfo * mainPtr));
-/* 6 */
-EXTERN void TkBindInit _ANSI_ARGS_((TkMainInfo * mainPtr));
-/* 7 */
-EXTERN void TkChangeEventWindow _ANSI_ARGS_((XEvent * eventPtr,
- TkWindow * winPtr));
-/* 8 */
-EXTERN int TkClipInit _ANSI_ARGS_((Tcl_Interp * interp,
- TkDisplay * dispPtr));
-/* 9 */
-EXTERN void TkComputeAnchor _ANSI_ARGS_((Tk_Anchor anchor,
- Tk_Window tkwin, int padX, int padY,
- int innerWidth, int innerHeight, int * xPtr,
- int * yPtr));
-/* 10 */
-EXTERN int TkCopyAndGlobalEval _ANSI_ARGS_((Tcl_Interp * interp,
- char * script));
-/* 11 */
-EXTERN unsigned long TkCreateBindingProcedure _ANSI_ARGS_((
- Tcl_Interp * interp,
- Tk_BindingTable bindingTable,
- ClientData object, CONST char * eventString,
- TkBindEvalProc * evalProc,
- TkBindFreeProc * freeProc,
- ClientData clientData));
-/* 12 */
-EXTERN TkCursor * TkCreateCursorFromData _ANSI_ARGS_((Tk_Window tkwin,
- CONST char * source, CONST char * mask,
- int width, int height, int xHot, int yHot,
- XColor fg, XColor bg));
-/* 13 */
-EXTERN int TkCreateFrame _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp * interp, int argc, Tcl_Obj *CONST *objv,
- int toplevel, char * appName));
-/* 14 */
-EXTERN Tk_Window TkCreateMainWindow _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * screenName, char * baseName));
-/* 15 */
-EXTERN Time TkCurrentTime _ANSI_ARGS_((TkDisplay * dispPtr,
- int fallbackCurrent));
-/* 16 */
-EXTERN void TkDeleteAllImages _ANSI_ARGS_((TkMainInfo * mainPtr));
-/* 17 */
-EXTERN void TkDoConfigureNotify _ANSI_ARGS_((TkWindow * winPtr));
-/* 18 */
-EXTERN void TkDrawInsetFocusHighlight _ANSI_ARGS_((
- Tk_Window tkwin, GC gc, int width,
- Drawable drawable, int padding));
-/* 19 */
-EXTERN void TkEventDeadWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 20 */
-EXTERN void TkFillPolygon _ANSI_ARGS_((Tk_Canvas canvas,
- double * coordPtr, int numPoints,
- Display * display, Drawable drawable, GC gc,
- GC outlineGC));
-/* 21 */
-EXTERN int TkFindStateNum _ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * option,
- CONST TkStateMap * mapPtr,
- CONST char * strKey));
-/* 22 */
-EXTERN char * TkFindStateString _ANSI_ARGS_((
- CONST TkStateMap * mapPtr, int numKey));
-/* 23 */
-EXTERN void TkFocusDeadWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 24 */
-EXTERN int TkFocusFilterEvent _ANSI_ARGS_((TkWindow * winPtr,
- XEvent * eventPtr));
-/* 25 */
-EXTERN TkWindow * TkFocusKeyEvent _ANSI_ARGS_((TkWindow * winPtr,
- XEvent * eventPtr));
-/* 26 */
-EXTERN void TkFontPkgInit _ANSI_ARGS_((TkMainInfo * mainPtr));
-/* 27 */
-EXTERN void TkFontPkgFree _ANSI_ARGS_((TkMainInfo * mainPtr));
-/* 28 */
-EXTERN void TkFreeBindingTags _ANSI_ARGS_((TkWindow * winPtr));
-/* 29 */
-EXTERN void TkpFreeCursor _ANSI_ARGS_((TkCursor * cursorPtr));
-/* 30 */
-EXTERN char * TkGetBitmapData _ANSI_ARGS_((Tcl_Interp * interp,
- char * string, char * fileName,
- int * widthPtr, int * heightPtr,
- int * hotXPtr, int * hotYPtr));
-/* 31 */
-EXTERN void TkGetButtPoints _ANSI_ARGS_((double p1[],
- double p2[], double width, int project,
- double m1[], double m2[]));
-/* 32 */
-EXTERN TkCursor * TkGetCursorByName _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_Uid string));
-/* 33 */
-EXTERN CONST84_RETURN char * TkGetDefaultScreenName _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * screenName));
-/* 34 */
-EXTERN TkDisplay * TkGetDisplay _ANSI_ARGS_((Display * display));
-/* 35 */
-EXTERN int TkGetDisplayOf _ANSI_ARGS_((Tcl_Interp * interp,
- int objc, Tcl_Obj *CONST objv[],
- Tk_Window * tkwinPtr));
-/* 36 */
-EXTERN TkWindow * TkGetFocusWin _ANSI_ARGS_((TkWindow * winPtr));
-/* 37 */
-EXTERN int TkGetInterpNames _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin));
-/* 38 */
-EXTERN int TkGetMiterPoints _ANSI_ARGS_((double p1[],
- double p2[], double p3[], double width,
- double m1[], double m2[]));
-/* 39 */
-EXTERN void TkGetPointerCoords _ANSI_ARGS_((Tk_Window tkwin,
- int * xPtr, int * yPtr));
-/* 40 */
-EXTERN void TkGetServerInfo _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin));
-/* 41 */
-EXTERN void TkGrabDeadWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 42 */
-EXTERN int TkGrabState _ANSI_ARGS_((TkWindow * winPtr));
-/* 43 */
-EXTERN void TkIncludePoint _ANSI_ARGS_((Tk_Item * itemPtr,
- double * pointPtr));
-/* 44 */
-EXTERN void TkInOutEvents _ANSI_ARGS_((XEvent * eventPtr,
- TkWindow * sourcePtr, TkWindow * destPtr,
- int leaveType, int enterType,
- Tcl_QueuePosition position));
-/* 45 */
-EXTERN void TkInstallFrameMenu _ANSI_ARGS_((Tk_Window tkwin));
-/* 46 */
-EXTERN char * TkKeysymToString _ANSI_ARGS_((KeySym keysym));
-/* 47 */
-EXTERN int TkLineToArea _ANSI_ARGS_((double end1Ptr[],
- double end2Ptr[], double rectPtr[]));
-/* 48 */
-EXTERN double TkLineToPoint _ANSI_ARGS_((double end1Ptr[],
- double end2Ptr[], double pointPtr[]));
-/* 49 */
-EXTERN int TkMakeBezierCurve _ANSI_ARGS_((Tk_Canvas canvas,
- double * pointPtr, int numPoints,
- int numSteps, XPoint xPoints[],
- double dblPoints[]));
-/* 50 */
-EXTERN void TkMakeBezierPostscript _ANSI_ARGS_((
- Tcl_Interp * interp, Tk_Canvas canvas,
- double * pointPtr, int numPoints));
-/* 51 */
-#ifndef TkOptionClassChanged
-EXTERN void TkOptionClassChanged _ANSI_ARGS_((TkWindow * winPtr));
-#endif
-/* 52 */
-#ifndef TkOptionDeadWindow
-EXTERN void TkOptionDeadWindow _ANSI_ARGS_((TkWindow * winPtr));
-#endif
-/* 53 */
-EXTERN int TkOvalToArea _ANSI_ARGS_((double * ovalPtr,
- double * rectPtr));
-/* 54 */
-EXTERN double TkOvalToPoint _ANSI_ARGS_((double ovalPtr[],
- double width, int filled, double pointPtr[]));
-/* 55 */
-EXTERN int TkpChangeFocus _ANSI_ARGS_((TkWindow * winPtr,
- int force));
-/* 56 */
-EXTERN void TkpCloseDisplay _ANSI_ARGS_((TkDisplay * dispPtr));
-/* 57 */
-EXTERN void TkpClaimFocus _ANSI_ARGS_((TkWindow * topLevelPtr,
- int force));
-/* 58 */
-EXTERN void TkpDisplayWarning _ANSI_ARGS_((CONST char * msg,
- CONST char * title));
-/* 59 */
-EXTERN void TkpGetAppName _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_DString * name));
-/* 60 */
-EXTERN TkWindow * TkpGetOtherWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 61 */
-EXTERN TkWindow * TkpGetWrapperWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 62 */
-EXTERN int TkpInit _ANSI_ARGS_((Tcl_Interp * interp));
-/* 63 */
-EXTERN void TkpInitializeMenuBindings _ANSI_ARGS_((
- Tcl_Interp * interp,
- Tk_BindingTable bindingTable));
-/* 64 */
-EXTERN void TkpMakeContainer _ANSI_ARGS_((Tk_Window tkwin));
-/* 65 */
-EXTERN void TkpMakeMenuWindow _ANSI_ARGS_((Tk_Window tkwin,
- int transient));
-/* 66 */
-EXTERN Window TkpMakeWindow _ANSI_ARGS_((TkWindow * winPtr,
- Window parent));
-/* 67 */
-EXTERN void TkpMenuNotifyToplevelCreate _ANSI_ARGS_((
- Tcl_Interp * interp1, char * menuName));
-/* 68 */
-EXTERN TkDisplay * TkpOpenDisplay _ANSI_ARGS_((
- CONST char * display_name));
-/* 69 */
-EXTERN int TkPointerEvent _ANSI_ARGS_((XEvent * eventPtr,
- TkWindow * winPtr));
-/* 70 */
-EXTERN int TkPolygonToArea _ANSI_ARGS_((double * polyPtr,
- int numPoints, double * rectPtr));
-/* 71 */
-EXTERN double TkPolygonToPoint _ANSI_ARGS_((double * polyPtr,
- int numPoints, double * pointPtr));
-/* 72 */
-EXTERN int TkPositionInTree _ANSI_ARGS_((TkWindow * winPtr,
- TkWindow * treePtr));
-/* 73 */
-EXTERN void TkpRedirectKeyEvent _ANSI_ARGS_((TkWindow * winPtr,
- XEvent * eventPtr));
-/* 74 */
-EXTERN void TkpSetMainMenubar _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, char * menuName));
-/* 75 */
-EXTERN int TkpUseWindow _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj *string));
-/* 76 */
-EXTERN int TkpWindowWasRecentlyDeleted _ANSI_ARGS_((Window win,
- TkDisplay * dispPtr));
-/* 77 */
-EXTERN void TkQueueEventForAllChildren _ANSI_ARGS_((
- TkWindow * winPtr, XEvent * eventPtr));
-/* 78 */
-EXTERN int TkReadBitmapFile _ANSI_ARGS_((Tcl_Interp * interp,
- Display* display,
- Drawable d, CONST char* filename,
- unsigned int* width_return,
- unsigned int* height_return,
- Pixmap* bitmap_return, int* x_hot_return,
- int* y_hot_return));
-/* 79 */
-EXTERN int TkScrollWindow _ANSI_ARGS_((Tk_Window tkwin, GC gc,
- int x, int y, int width, int height, int dx,
- int dy, TkRegion damageRgn));
-/* 80 */
-EXTERN void TkSelDeadWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 81 */
-EXTERN void TkSelEventProc _ANSI_ARGS_((Tk_Window tkwin,
- XEvent * eventPtr));
-/* 82 */
-EXTERN void TkSelInit _ANSI_ARGS_((Tk_Window tkwin));
-/* 83 */
-EXTERN void TkSelPropProc _ANSI_ARGS_((XEvent * eventPtr));
-/* Slot 84 is reserved */
-/* 85 */
-EXTERN void TkSetWindowMenuBar _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj *oldMenuName,
- Tcl_Obj *menuName));
-/* 86 */
-EXTERN KeySym TkStringToKeysym _ANSI_ARGS_((char * name));
-/* 87 */
-EXTERN int TkThickPolyLineToArea _ANSI_ARGS_((double * coordPtr,
- int numPoints, double width, int capStyle,
- int joinStyle, double * rectPtr));
-/* 88 */
-EXTERN void TkWmAddToColormapWindows _ANSI_ARGS_((
- TkWindow * winPtr));
-/* 89 */
-EXTERN void TkWmDeadWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 90 */
-EXTERN TkWindow * TkWmFocusToplevel _ANSI_ARGS_((TkWindow * winPtr));
-/* 91 */
-EXTERN void TkWmMapWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 92 */
-EXTERN void TkWmNewWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 93 */
-EXTERN void TkWmProtocolEventProc _ANSI_ARGS_((TkWindow * winPtr,
- XEvent * evenvPtr));
-/* 94 */
-EXTERN void TkWmRemoveFromColormapWindows _ANSI_ARGS_((
- TkWindow * winPtr));
-/* 95 */
-EXTERN void TkWmRestackToplevel _ANSI_ARGS_((TkWindow * winPtr,
- int aboveBelow, TkWindow * otherPtr));
-/* 96 */
-EXTERN void TkWmSetClass _ANSI_ARGS_((TkWindow * winPtr));
-/* 97 */
-EXTERN void TkWmUnmapWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 98 */
-EXTERN Tcl_Obj * TkDebugBitmap _ANSI_ARGS_((Tk_Window tkwin,
- char * name));
-/* 99 */
-EXTERN Tcl_Obj * TkDebugBorder _ANSI_ARGS_((Tk_Window tkwin,
- char * name));
-/* 100 */
-EXTERN Tcl_Obj * TkDebugCursor _ANSI_ARGS_((Tk_Window tkwin,
- char * name));
-/* 101 */
-EXTERN Tcl_Obj * TkDebugColor _ANSI_ARGS_((Tk_Window tkwin,
- char * name));
-/* 102 */
-EXTERN Tcl_Obj * TkDebugConfig _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_OptionTable table));
-/* 103 */
-EXTERN Tcl_Obj * TkDebugFont _ANSI_ARGS_((Tk_Window tkwin,
- char * name));
-/* 104 */
-EXTERN int TkFindStateNumObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * optionPtr,
- CONST TkStateMap * mapPtr, Tcl_Obj * keyPtr));
-/* 105 */
-EXTERN Tcl_HashTable * TkGetBitmapPredefTable _ANSI_ARGS_((void));
-/* 106 */
-EXTERN TkDisplay * TkGetDisplayList _ANSI_ARGS_((void));
-/* 107 */
-EXTERN TkMainInfo * TkGetMainInfoList _ANSI_ARGS_((void));
-/* 108 */
-EXTERN int TkGetWindowFromObj _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj * objPtr,
- Tk_Window * windowPtr));
-/* 109 */
-EXTERN char * TkpGetString _ANSI_ARGS_((TkWindow * winPtr,
- XEvent * eventPtr, Tcl_DString * dsPtr));
-/* 110 */
-EXTERN void TkpGetSubFonts _ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Font tkfont));
-/* 111 */
-EXTERN Tcl_Obj * TkpGetSystemDefault _ANSI_ARGS_((Tk_Window tkwin,
- CONST char * dbName, CONST char * className));
-/* 112 */
-EXTERN void TkpMenuThreadInit _ANSI_ARGS_((void));
-#ifdef __WIN32__
-/* 113 */
-EXTERN void TkClipBox _ANSI_ARGS_((TkRegion rgn,
- XRectangle* rect_return));
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-/* 113 */
-EXTERN void TkClipBox _ANSI_ARGS_((TkRegion rgn,
- XRectangle* rect_return));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 113 */
-EXTERN void TkClipBox _ANSI_ARGS_((TkRegion rgn,
- XRectangle* rect_return));
-#endif /* MAC_OSX_TK */
-#ifdef __WIN32__
-/* 114 */
-EXTERN TkRegion TkCreateRegion _ANSI_ARGS_((void));
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-/* 114 */
-EXTERN TkRegion TkCreateRegion _ANSI_ARGS_((void));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 114 */
-EXTERN TkRegion TkCreateRegion _ANSI_ARGS_((void));
-#endif /* MAC_OSX_TK */
-#ifdef __WIN32__
-/* 115 */
-EXTERN void TkDestroyRegion _ANSI_ARGS_((TkRegion rgn));
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-/* 115 */
-EXTERN void TkDestroyRegion _ANSI_ARGS_((TkRegion rgn));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 115 */
-EXTERN void TkDestroyRegion _ANSI_ARGS_((TkRegion rgn));
-#endif /* MAC_OSX_TK */
-#ifdef __WIN32__
-/* 116 */
-EXTERN void TkIntersectRegion _ANSI_ARGS_((TkRegion sra,
- TkRegion srcb, TkRegion dr_return));
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-/* 116 */
-EXTERN void TkIntersectRegion _ANSI_ARGS_((TkRegion sra,
- TkRegion srcb, TkRegion dr_return));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 116 */
-EXTERN void TkIntersectRegion _ANSI_ARGS_((TkRegion sra,
- TkRegion srcb, TkRegion dr_return));
-#endif /* MAC_OSX_TK */
-#ifdef __WIN32__
-/* 117 */
-EXTERN int TkRectInRegion _ANSI_ARGS_((TkRegion rgn, int x,
- int y, unsigned int width,
- unsigned int height));
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-/* 117 */
-EXTERN int TkRectInRegion _ANSI_ARGS_((TkRegion rgn, int x,
- int y, unsigned int width,
- unsigned int height));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 117 */
-EXTERN int TkRectInRegion _ANSI_ARGS_((TkRegion rgn, int x,
- int y, unsigned int width,
- unsigned int height));
-#endif /* MAC_OSX_TK */
-#ifdef __WIN32__
-/* 118 */
-EXTERN void TkSetRegion _ANSI_ARGS_((Display* display, GC gc,
- TkRegion rgn));
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-/* 118 */
-EXTERN void TkSetRegion _ANSI_ARGS_((Display* display, GC gc,
- TkRegion rgn));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 118 */
-EXTERN void TkSetRegion _ANSI_ARGS_((Display* display, GC gc,
- TkRegion rgn));
-#endif /* MAC_OSX_TK */
-#ifdef __WIN32__
-/* 119 */
-EXTERN void TkUnionRectWithRegion _ANSI_ARGS_((XRectangle* rect,
- TkRegion src, TkRegion dr_return));
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-/* 119 */
-EXTERN void TkUnionRectWithRegion _ANSI_ARGS_((XRectangle* rect,
- TkRegion src, TkRegion dr_return));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 119 */
-EXTERN void TkUnionRectWithRegion _ANSI_ARGS_((XRectangle* rect,
- TkRegion src, TkRegion dr_return));
-#endif /* MAC_OSX_TK */
-/* Slot 120 is reserved */
-#ifdef MAC_TCL
-/* 121 */
-EXTERN Pixmap TkpCreateNativeBitmap _ANSI_ARGS_((Display * display,
- CONST char * source));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 121 */
-EXTERN Pixmap TkpCreateNativeBitmap _ANSI_ARGS_((Display * display,
- CONST char * source));
-#endif /* MAC_OSX_TK */
-#ifdef MAC_TCL
-/* 122 */
-EXTERN void TkpDefineNativeBitmaps _ANSI_ARGS_((void));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 122 */
-EXTERN void TkpDefineNativeBitmaps _ANSI_ARGS_((void));
-#endif /* MAC_OSX_TK */
-/* Slot 123 is reserved */
-#ifdef MAC_TCL
-/* 124 */
-EXTERN Pixmap TkpGetNativeAppBitmap _ANSI_ARGS_((Display * display,
- CONST char * name, int * width, int * height));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 124 */
-EXTERN Pixmap TkpGetNativeAppBitmap _ANSI_ARGS_((Display * display,
- CONST char * name, int * width, int * height));
-#endif /* MAC_OSX_TK */
-/* Slot 125 is reserved */
-/* Slot 126 is reserved */
-/* Slot 127 is reserved */
-/* Slot 128 is reserved */
-/* Slot 129 is reserved */
-/* Slot 130 is reserved */
-/* Slot 131 is reserved */
-/* Slot 132 is reserved */
-/* Slot 133 is reserved */
-/* Slot 134 is reserved */
-/* 135 */
-EXTERN void TkpDrawHighlightBorder _ANSI_ARGS_((Tk_Window tkwin,
- GC fgGC, GC bgGC, int highlightWidth,
- Drawable drawable));
-/* 136 */
-EXTERN void TkSetFocusWin _ANSI_ARGS_((TkWindow * winPtr,
- int force));
-/* 137 */
-EXTERN void TkpSetKeycodeAndState _ANSI_ARGS_((Tk_Window tkwin,
- KeySym keySym, XEvent * eventPtr));
-/* 138 */
-EXTERN KeySym TkpGetKeySym _ANSI_ARGS_((TkDisplay * dispPtr,
- XEvent * eventPtr));
-/* 139 */
-EXTERN void TkpInitKeymapInfo _ANSI_ARGS_((TkDisplay * dispPtr));
-/* 140 */
-EXTERN TkRegion TkPhotoGetValidRegion _ANSI_ARGS_((
- Tk_PhotoHandle handle));
-/* 141 */
-EXTERN TkWindow ** TkWmStackorderToplevel _ANSI_ARGS_((
- TkWindow * parentPtr));
-/* 142 */
-EXTERN void TkFocusFree _ANSI_ARGS_((TkMainInfo * mainPtr));
-/* 143 */
-EXTERN void TkClipCleanup _ANSI_ARGS_((TkDisplay * dispPtr));
-/* 144 */
-EXTERN void TkGCCleanup _ANSI_ARGS_((TkDisplay * dispPtr));
-#ifdef __WIN32__
-/* 145 */
-EXTERN void TkSubtractRegion _ANSI_ARGS_((TkRegion sra,
- TkRegion srcb, TkRegion dr_return));
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-/* 145 */
-EXTERN void TkSubtractRegion _ANSI_ARGS_((TkRegion sra,
- TkRegion srcb, TkRegion dr_return));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 145 */
-EXTERN void TkSubtractRegion _ANSI_ARGS_((TkRegion sra,
- TkRegion srcb, TkRegion dr_return));
-#endif /* MAC_OSX_TK */
-/* 146 */
-EXTERN void TkStylePkgInit _ANSI_ARGS_((TkMainInfo * mainPtr));
-/* 147 */
-EXTERN void TkStylePkgFree _ANSI_ARGS_((TkMainInfo * mainPtr));
-/* 148 */
-EXTERN Tk_Window TkToplevelWindowForCommand _ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * cmdName));
-/* 149 */
-EXTERN CONST Tk_OptionSpec * TkGetOptionSpec _ANSI_ARGS_((CONST char * name,
- Tk_OptionTable optionTable));
-
-typedef struct TkIntStubs {
- int magic;
- struct TkIntStubHooks *hooks;
-
- TkWindow * (*tkAllocWindow) _ANSI_ARGS_((TkDisplay * dispPtr, int screenNum, TkWindow * parentPtr)); /* 0 */
- void (*tkBezierPoints) _ANSI_ARGS_((double control[], int numSteps, double * coordPtr)); /* 1 */
- void (*tkBezierScreenPoints) _ANSI_ARGS_((Tk_Canvas canvas, double control[], int numSteps, XPoint * xPointPtr)); /* 2 */
- void (*tkBindDeadWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 3 */
- void (*tkBindEventProc) _ANSI_ARGS_((TkWindow * winPtr, XEvent * eventPtr)); /* 4 */
- void (*tkBindFree) _ANSI_ARGS_((TkMainInfo * mainPtr)); /* 5 */
- void (*tkBindInit) _ANSI_ARGS_((TkMainInfo * mainPtr)); /* 6 */
- void (*tkChangeEventWindow) _ANSI_ARGS_((XEvent * eventPtr, TkWindow * winPtr)); /* 7 */
- int (*tkClipInit) _ANSI_ARGS_((Tcl_Interp * interp, TkDisplay * dispPtr)); /* 8 */
- void (*tkComputeAnchor) _ANSI_ARGS_((Tk_Anchor anchor, Tk_Window tkwin, int padX, int padY, int innerWidth, int innerHeight, int * xPtr, int * yPtr)); /* 9 */
- int (*tkCopyAndGlobalEval) _ANSI_ARGS_((Tcl_Interp * interp, char * script)); /* 10 */
- unsigned long (*tkCreateBindingProcedure) _ANSI_ARGS_((Tcl_Interp * interp, Tk_BindingTable bindingTable, ClientData object, CONST char * eventString, TkBindEvalProc * evalProc, TkBindFreeProc * freeProc, ClientData clientData)); /* 11 */
- TkCursor * (*tkCreateCursorFromData) _ANSI_ARGS_((Tk_Window tkwin, CONST char * source, CONST char * mask, int width, int height, int xHot, int yHot, XColor fg, XColor bg)); /* 12 */
- int (*tkCreateFrame) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int argc, Tcl_Obj *CONST *objv, int toplevel, char * appName)); /* 13 */
- Tk_Window (*tkCreateMainWindow) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * screenName, char * baseName)); /* 14 */
- Time (*tkCurrentTime) _ANSI_ARGS_((TkDisplay * dispPtr)); /* 15 */
- void (*tkDeleteAllImages) _ANSI_ARGS_((TkMainInfo * mainPtr)); /* 16 */
- void (*tkDoConfigureNotify) _ANSI_ARGS_((TkWindow * winPtr)); /* 17 */
- void (*tkDrawInsetFocusHighlight) _ANSI_ARGS_((Tk_Window tkwin, GC gc, int width, Drawable drawable, int padding)); /* 18 */
- void (*tkEventDeadWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 19 */
- void (*tkFillPolygon) _ANSI_ARGS_((Tk_Canvas canvas, double * coordPtr, int numPoints, Display * display, Drawable drawable, GC gc, GC outlineGC)); /* 20 */
- int (*tkFindStateNum) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * option, CONST TkStateMap * mapPtr, CONST char * strKey)); /* 21 */
- char * (*tkFindStateString) _ANSI_ARGS_((CONST TkStateMap * mapPtr, int numKey)); /* 22 */
- void (*tkFocusDeadWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 23 */
- int (*tkFocusFilterEvent) _ANSI_ARGS_((TkWindow * winPtr, XEvent * eventPtr)); /* 24 */
- TkWindow * (*tkFocusKeyEvent) _ANSI_ARGS_((TkWindow * winPtr, XEvent * eventPtr)); /* 25 */
- void (*tkFontPkgInit) _ANSI_ARGS_((TkMainInfo * mainPtr)); /* 26 */
- void (*tkFontPkgFree) _ANSI_ARGS_((TkMainInfo * mainPtr)); /* 27 */
- void (*tkFreeBindingTags) _ANSI_ARGS_((TkWindow * winPtr)); /* 28 */
- void (*tkpFreeCursor) _ANSI_ARGS_((TkCursor * cursorPtr)); /* 29 */
- char * (*tkGetBitmapData) _ANSI_ARGS_((Tcl_Interp * interp, char * string, char * fileName, int * widthPtr, int * heightPtr, int * hotXPtr, int * hotYPtr)); /* 30 */
- void (*tkGetButtPoints) _ANSI_ARGS_((double p1[], double p2[], double width, int project, double m1[], double m2[])); /* 31 */
- TkCursor * (*tkGetCursorByName) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_Uid string)); /* 32 */
- CONST84_RETURN char * (*tkGetDefaultScreenName) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * screenName)); /* 33 */
- TkDisplay * (*tkGetDisplay) _ANSI_ARGS_((Display * display)); /* 34 */
- int (*tkGetDisplayOf) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], Tk_Window * tkwinPtr)); /* 35 */
- TkWindow * (*tkGetFocusWin) _ANSI_ARGS_((TkWindow * winPtr)); /* 36 */
- int (*tkGetInterpNames) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin)); /* 37 */
- int (*tkGetMiterPoints) _ANSI_ARGS_((double p1[], double p2[], double p3[], double width, double m1[], double m2[])); /* 38 */
- void (*tkGetPointerCoords) _ANSI_ARGS_((Tk_Window tkwin, int * xPtr, int * yPtr)); /* 39 */
- void (*tkGetServerInfo) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin)); /* 40 */
- void (*tkGrabDeadWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 41 */
- int (*tkGrabState) _ANSI_ARGS_((TkWindow * winPtr)); /* 42 */
- void (*tkIncludePoint) _ANSI_ARGS_((Tk_Item * itemPtr, double * pointPtr)); /* 43 */
- void (*tkInOutEvents) _ANSI_ARGS_((XEvent * eventPtr, TkWindow * sourcePtr, TkWindow * destPtr, int leaveType, int enterType, Tcl_QueuePosition position)); /* 44 */
- void (*tkInstallFrameMenu) _ANSI_ARGS_((Tk_Window tkwin)); /* 45 */
- char * (*tkKeysymToString) _ANSI_ARGS_((KeySym keysym)); /* 46 */
- int (*tkLineToArea) _ANSI_ARGS_((double end1Ptr[], double end2Ptr[], double rectPtr[])); /* 47 */
- double (*tkLineToPoint) _ANSI_ARGS_((double end1Ptr[], double end2Ptr[], double pointPtr[])); /* 48 */
- int (*tkMakeBezierCurve) _ANSI_ARGS_((Tk_Canvas canvas, double * pointPtr, int numPoints, int numSteps, XPoint xPoints[], double dblPoints[])); /* 49 */
- void (*tkMakeBezierPostscript) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, double * pointPtr, int numPoints)); /* 50 */
- void (*tkOptionClassChanged) _ANSI_ARGS_((TkWindow * winPtr)); /* 51 */
- void (*tkOptionDeadWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 52 */
- int (*tkOvalToArea) _ANSI_ARGS_((double * ovalPtr, double * rectPtr)); /* 53 */
- double (*tkOvalToPoint) _ANSI_ARGS_((double ovalPtr[], double width, int filled, double pointPtr[])); /* 54 */
- int (*tkpChangeFocus) _ANSI_ARGS_((TkWindow * winPtr, int force)); /* 55 */
- void (*tkpCloseDisplay) _ANSI_ARGS_((TkDisplay * dispPtr)); /* 56 */
- void (*tkpClaimFocus) _ANSI_ARGS_((TkWindow * topLevelPtr, int force)); /* 57 */
- void (*tkpDisplayWarning) _ANSI_ARGS_((CONST char * msg, CONST char * title)); /* 58 */
- void (*tkpGetAppName) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_DString * name)); /* 59 */
- TkWindow * (*tkpGetOtherWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 60 */
- TkWindow * (*tkpGetWrapperWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 61 */
- int (*tkpInit) _ANSI_ARGS_((Tcl_Interp * interp)); /* 62 */
- void (*tkpInitializeMenuBindings) _ANSI_ARGS_((Tcl_Interp * interp, Tk_BindingTable bindingTable)); /* 63 */
- void (*tkpMakeContainer) _ANSI_ARGS_((Tk_Window tkwin)); /* 64 */
- void (*tkpMakeMenuWindow) _ANSI_ARGS_((Tk_Window tkwin, int transient)); /* 65 */
- Window (*tkpMakeWindow) _ANSI_ARGS_((TkWindow * winPtr, Window parent)); /* 66 */
- void (*tkpMenuNotifyToplevelCreate) _ANSI_ARGS_((Tcl_Interp * interp1, char * menuName)); /* 67 */
- TkDisplay * (*tkpOpenDisplay) _ANSI_ARGS_((CONST char * display_name)); /* 68 */
- int (*tkPointerEvent) _ANSI_ARGS_((XEvent * eventPtr, TkWindow * winPtr)); /* 69 */
- int (*tkPolygonToArea) _ANSI_ARGS_((double * polyPtr, int numPoints, double * rectPtr)); /* 70 */
- double (*tkPolygonToPoint) _ANSI_ARGS_((double * polyPtr, int numPoints, double * pointPtr)); /* 71 */
- int (*tkPositionInTree) _ANSI_ARGS_((TkWindow * winPtr, TkWindow * treePtr)); /* 72 */
- void (*tkpRedirectKeyEvent) _ANSI_ARGS_((TkWindow * winPtr, XEvent * eventPtr)); /* 73 */
- void (*tkpSetMainMenubar) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, char * menuName)); /* 74 */
- int (*tkpUseWindow) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * string)); /* 75 */
- int (*tkpWindowWasRecentlyDeleted) _ANSI_ARGS_((Window win, TkDisplay * dispPtr)); /* 76 */
- void (*tkQueueEventForAllChildren) _ANSI_ARGS_((TkWindow * winPtr, XEvent * eventPtr)); /* 77 */
- int (*tkReadBitmapFile) _ANSI_ARGS_((Display* display, Drawable d, CONST char* filename, unsigned int* width_return, unsigned int* height_return, Pixmap* bitmap_return, int* x_hot_return, int* y_hot_return)); /* 78 */
- int (*tkScrollWindow) _ANSI_ARGS_((Tk_Window tkwin, GC gc, int x, int y, int width, int height, int dx, int dy, TkRegion damageRgn)); /* 79 */
- void (*tkSelDeadWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 80 */
- void (*tkSelEventProc) _ANSI_ARGS_((Tk_Window tkwin, XEvent * eventPtr)); /* 81 */
- void (*tkSelInit) _ANSI_ARGS_((Tk_Window tkwin)); /* 82 */
- void (*tkSelPropProc) _ANSI_ARGS_((XEvent * eventPtr)); /* 83 */
- void *reserved84;
- void (*tkSetWindowMenuBar) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, char * oldMenuName, char * menuName)); /* 85 */
- KeySym (*tkStringToKeysym) _ANSI_ARGS_((char * name)); /* 86 */
- int (*tkThickPolyLineToArea) _ANSI_ARGS_((double * coordPtr, int numPoints, double width, int capStyle, int joinStyle, double * rectPtr)); /* 87 */
- void (*tkWmAddToColormapWindows) _ANSI_ARGS_((TkWindow * winPtr)); /* 88 */
- void (*tkWmDeadWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 89 */
- TkWindow * (*tkWmFocusToplevel) _ANSI_ARGS_((TkWindow * winPtr)); /* 90 */
- void (*tkWmMapWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 91 */
- void (*tkWmNewWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 92 */
- void (*tkWmProtocolEventProc) _ANSI_ARGS_((TkWindow * winPtr, XEvent * evenvPtr)); /* 93 */
- void (*tkWmRemoveFromColormapWindows) _ANSI_ARGS_((TkWindow * winPtr)); /* 94 */
- void (*tkWmRestackToplevel) _ANSI_ARGS_((TkWindow * winPtr, int aboveBelow, TkWindow * otherPtr)); /* 95 */
- void (*tkWmSetClass) _ANSI_ARGS_((TkWindow * winPtr)); /* 96 */
- void (*tkWmUnmapWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 97 */
- Tcl_Obj * (*tkDebugBitmap) _ANSI_ARGS_((Tk_Window tkwin, char * name)); /* 98 */
- Tcl_Obj * (*tkDebugBorder) _ANSI_ARGS_((Tk_Window tkwin, char * name)); /* 99 */
- Tcl_Obj * (*tkDebugCursor) _ANSI_ARGS_((Tk_Window tkwin, char * name)); /* 100 */
- Tcl_Obj * (*tkDebugColor) _ANSI_ARGS_((Tk_Window tkwin, char * name)); /* 101 */
- Tcl_Obj * (*tkDebugConfig) _ANSI_ARGS_((Tcl_Interp * interp, Tk_OptionTable table)); /* 102 */
- Tcl_Obj * (*tkDebugFont) _ANSI_ARGS_((Tk_Window tkwin, char * name)); /* 103 */
- int (*tkFindStateNumObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * optionPtr, CONST TkStateMap * mapPtr, Tcl_Obj * keyPtr)); /* 104 */
- Tcl_HashTable * (*tkGetBitmapPredefTable) _ANSI_ARGS_((void)); /* 105 */
- TkDisplay * (*tkGetDisplayList) _ANSI_ARGS_((void)); /* 106 */
- TkMainInfo * (*tkGetMainInfoList) _ANSI_ARGS_((void)); /* 107 */
- int (*tkGetWindowFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr, Tk_Window * windowPtr)); /* 108 */
- char * (*tkpGetString) _ANSI_ARGS_((TkWindow * winPtr, XEvent * eventPtr, Tcl_DString * dsPtr)); /* 109 */
- void (*tkpGetSubFonts) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Font tkfont)); /* 110 */
- Tcl_Obj * (*tkpGetSystemDefault) _ANSI_ARGS_((Tk_Window tkwin, CONST char * dbName, CONST char * className)); /* 111 */
- void (*tkpMenuThreadInit) _ANSI_ARGS_((void)); /* 112 */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void *reserved113;
-#endif /* UNIX */
-#ifdef __WIN32__
- void (*tkClipBox) _ANSI_ARGS_((TkRegion rgn, XRectangle* rect_return)); /* 113 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void (*tkClipBox) _ANSI_ARGS_((TkRegion rgn, XRectangle* rect_return)); /* 113 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- void (*tkClipBox) _ANSI_ARGS_((TkRegion rgn, XRectangle* rect_return)); /* 113 */
-#endif /* MAC_OSX_TK */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void *reserved114;
-#endif /* UNIX */
-#ifdef __WIN32__
- TkRegion (*tkCreateRegion) _ANSI_ARGS_((void)); /* 114 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- TkRegion (*tkCreateRegion) _ANSI_ARGS_((void)); /* 114 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- TkRegion (*tkCreateRegion) _ANSI_ARGS_((void)); /* 114 */
-#endif /* MAC_OSX_TK */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void *reserved115;
-#endif /* UNIX */
-#ifdef __WIN32__
- void (*tkDestroyRegion) _ANSI_ARGS_((TkRegion rgn)); /* 115 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void (*tkDestroyRegion) _ANSI_ARGS_((TkRegion rgn)); /* 115 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- void (*tkDestroyRegion) _ANSI_ARGS_((TkRegion rgn)); /* 115 */
-#endif /* MAC_OSX_TK */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void *reserved116;
-#endif /* UNIX */
-#ifdef __WIN32__
- void (*tkIntersectRegion) _ANSI_ARGS_((TkRegion sra, TkRegion srcb, TkRegion dr_return)); /* 116 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void (*tkIntersectRegion) _ANSI_ARGS_((TkRegion sra, TkRegion srcb, TkRegion dr_return)); /* 116 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- void (*tkIntersectRegion) _ANSI_ARGS_((TkRegion sra, TkRegion srcb, TkRegion dr_return)); /* 116 */
-#endif /* MAC_OSX_TK */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void *reserved117;
-#endif /* UNIX */
-#ifdef __WIN32__
- int (*tkRectInRegion) _ANSI_ARGS_((TkRegion rgn, int x, int y, unsigned int width, unsigned int height)); /* 117 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- int (*tkRectInRegion) _ANSI_ARGS_((TkRegion rgn, int x, int y, unsigned int width, unsigned int height)); /* 117 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- int (*tkRectInRegion) _ANSI_ARGS_((TkRegion rgn, int x, int y, unsigned int width, unsigned int height)); /* 117 */
-#endif /* MAC_OSX_TK */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void *reserved118;
-#endif /* UNIX */
-#ifdef __WIN32__
- void (*tkSetRegion) _ANSI_ARGS_((Display* display, GC gc, TkRegion rgn)); /* 118 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void (*tkSetRegion) _ANSI_ARGS_((Display* display, GC gc, TkRegion rgn)); /* 118 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- void (*tkSetRegion) _ANSI_ARGS_((Display* display, GC gc, TkRegion rgn)); /* 118 */
-#endif /* MAC_OSX_TK */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void *reserved119;
-#endif /* UNIX */
-#ifdef __WIN32__
- void (*tkUnionRectWithRegion) _ANSI_ARGS_((XRectangle* rect, TkRegion src, TkRegion dr_return)); /* 119 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void (*tkUnionRectWithRegion) _ANSI_ARGS_((XRectangle* rect, TkRegion src, TkRegion dr_return)); /* 119 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- void (*tkUnionRectWithRegion) _ANSI_ARGS_((XRectangle* rect, TkRegion src, TkRegion dr_return)); /* 119 */
-#endif /* MAC_OSX_TK */
- void *reserved120;
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void *reserved121;
-#endif /* UNIX */
-#ifdef __WIN32__
- void *reserved121;
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- Pixmap (*tkpCreateNativeBitmap) _ANSI_ARGS_((Display * display, CONST char * source)); /* 121 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- Pixmap (*tkpCreateNativeBitmap) _ANSI_ARGS_((Display * display, CONST char * source)); /* 121 */
-#endif /* MAC_OSX_TK */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void *reserved122;
-#endif /* UNIX */
-#ifdef __WIN32__
- void *reserved122;
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void (*tkpDefineNativeBitmaps) _ANSI_ARGS_((void)); /* 122 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- void (*tkpDefineNativeBitmaps) _ANSI_ARGS_((void)); /* 122 */
-#endif /* MAC_OSX_TK */
- void *reserved123;
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void *reserved124;
-#endif /* UNIX */
-#ifdef __WIN32__
- void *reserved124;
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- Pixmap (*tkpGetNativeAppBitmap) _ANSI_ARGS_((Display * display, CONST char * name, int * width, int * height)); /* 124 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- Pixmap (*tkpGetNativeAppBitmap) _ANSI_ARGS_((Display * display, CONST char * name, int * width, int * height)); /* 124 */
-#endif /* MAC_OSX_TK */
- void *reserved125;
- void *reserved126;
- void *reserved127;
- void *reserved128;
- void *reserved129;
- void *reserved130;
- void *reserved131;
- void *reserved132;
- void *reserved133;
- void *reserved134;
- void (*tkpDrawHighlightBorder) _ANSI_ARGS_((Tk_Window tkwin, GC fgGC, GC bgGC, int highlightWidth, Drawable drawable)); /* 135 */
- void (*tkSetFocusWin) _ANSI_ARGS_((TkWindow * winPtr, int force)); /* 136 */
- void (*tkpSetKeycodeAndState) _ANSI_ARGS_((Tk_Window tkwin, KeySym keySym, XEvent * eventPtr)); /* 137 */
- KeySym (*tkpGetKeySym) _ANSI_ARGS_((TkDisplay * dispPtr, XEvent * eventPtr)); /* 138 */
- void (*tkpInitKeymapInfo) _ANSI_ARGS_((TkDisplay * dispPtr)); /* 139 */
- TkRegion (*tkPhotoGetValidRegion) _ANSI_ARGS_((Tk_PhotoHandle handle)); /* 140 */
- TkWindow ** (*tkWmStackorderToplevel) _ANSI_ARGS_((TkWindow * parentPtr)); /* 141 */
- void (*tkFocusFree) _ANSI_ARGS_((TkMainInfo * mainPtr)); /* 142 */
- void (*tkClipCleanup) _ANSI_ARGS_((TkDisplay * dispPtr)); /* 143 */
- void (*tkGCCleanup) _ANSI_ARGS_((TkDisplay * dispPtr)); /* 144 */
-#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
- void *reserved145;
-#endif /* UNIX */
-#ifdef __WIN32__
- void (*tkSubtractRegion) _ANSI_ARGS_((TkRegion sra, TkRegion srcb, TkRegion dr_return)); /* 145 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void (*tkSubtractRegion) _ANSI_ARGS_((TkRegion sra, TkRegion srcb, TkRegion dr_return)); /* 145 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- void (*tkSubtractRegion) _ANSI_ARGS_((TkRegion sra, TkRegion srcb, TkRegion dr_return)); /* 145 */
-#endif /* MAC_OSX_TK */
- void (*tkStylePkgInit) _ANSI_ARGS_((TkMainInfo * mainPtr)); /* 146 */
- void (*tkStylePkgFree) _ANSI_ARGS_((TkMainInfo * mainPtr)); /* 147 */
- Tk_Window (*tkToplevelWindowForCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName)); /* 148 */
- CONST Tk_OptionSpec * (*tkGetOptionSpec) _ANSI_ARGS_((CONST char * name, Tk_OptionTable optionTable)); /* 149 */
-} TkIntStubs;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern TkIntStubs *tkIntStubsPtr;
-#ifdef __cplusplus
-}
-#endif
-
-#if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS)
-
-/*
- * Inline function declarations:
- */
-
-#ifndef TkAllocWindow
-#define TkAllocWindow \
- (tkIntStubsPtr->tkAllocWindow) /* 0 */
-#endif
-#ifndef TkBezierPoints
-#define TkBezierPoints \
- (tkIntStubsPtr->tkBezierPoints) /* 1 */
-#endif
-#ifndef TkBezierScreenPoints
-#define TkBezierScreenPoints \
- (tkIntStubsPtr->tkBezierScreenPoints) /* 2 */
-#endif
-#ifndef TkBindDeadWindow
-#define TkBindDeadWindow \
- (tkIntStubsPtr->tkBindDeadWindow) /* 3 */
-#endif
-#ifndef TkBindEventProc
-#define TkBindEventProc \
- (tkIntStubsPtr->tkBindEventProc) /* 4 */
-#endif
-#ifndef TkBindFree
-#define TkBindFree \
- (tkIntStubsPtr->tkBindFree) /* 5 */
-#endif
-#ifndef TkBindInit
-#define TkBindInit \
- (tkIntStubsPtr->tkBindInit) /* 6 */
-#endif
-#ifndef TkChangeEventWindow
-#define TkChangeEventWindow \
- (tkIntStubsPtr->tkChangeEventWindow) /* 7 */
-#endif
-#ifndef TkClipInit
-#define TkClipInit \
- (tkIntStubsPtr->tkClipInit) /* 8 */
-#endif
-#ifndef TkComputeAnchor
-#define TkComputeAnchor \
- (tkIntStubsPtr->tkComputeAnchor) /* 9 */
-#endif
-#ifndef TkCopyAndGlobalEval
-#define TkCopyAndGlobalEval \
- (tkIntStubsPtr->tkCopyAndGlobalEval) /* 10 */
-#endif
-#ifndef TkCreateBindingProcedure
-#define TkCreateBindingProcedure \
- (tkIntStubsPtr->tkCreateBindingProcedure) /* 11 */
-#endif
-#ifndef TkCreateCursorFromData
-#define TkCreateCursorFromData \
- (tkIntStubsPtr->tkCreateCursorFromData) /* 12 */
-#endif
-#ifndef TkCreateFrame
-#define TkCreateFrame \
- (tkIntStubsPtr->tkCreateFrame) /* 13 */
-#endif
-#ifndef TkCreateMainWindow
-#define TkCreateMainWindow \
- (tkIntStubsPtr->tkCreateMainWindow) /* 14 */
-#endif
-#ifndef TkCurrentTime
-#define TkCurrentTime \
- (tkIntStubsPtr->tkCurrentTime) /* 15 */
-#endif
-#ifndef TkDeleteAllImages
-#define TkDeleteAllImages \
- (tkIntStubsPtr->tkDeleteAllImages) /* 16 */
-#endif
-#ifndef TkDoConfigureNotify
-#define TkDoConfigureNotify \
- (tkIntStubsPtr->tkDoConfigureNotify) /* 17 */
-#endif
-#ifndef TkDrawInsetFocusHighlight
-#define TkDrawInsetFocusHighlight \
- (tkIntStubsPtr->tkDrawInsetFocusHighlight) /* 18 */
-#endif
-#ifndef TkEventDeadWindow
-#define TkEventDeadWindow \
- (tkIntStubsPtr->tkEventDeadWindow) /* 19 */
-#endif
-#ifndef TkFillPolygon
-#define TkFillPolygon \
- (tkIntStubsPtr->tkFillPolygon) /* 20 */
-#endif
-#ifndef TkFindStateNum
-#define TkFindStateNum \
- (tkIntStubsPtr->tkFindStateNum) /* 21 */
-#endif
-#ifndef TkFindStateString
-#define TkFindStateString \
- (tkIntStubsPtr->tkFindStateString) /* 22 */
-#endif
-#ifndef TkFocusDeadWindow
-#define TkFocusDeadWindow \
- (tkIntStubsPtr->tkFocusDeadWindow) /* 23 */
-#endif
-#ifndef TkFocusFilterEvent
-#define TkFocusFilterEvent \
- (tkIntStubsPtr->tkFocusFilterEvent) /* 24 */
-#endif
-#ifndef TkFocusKeyEvent
-#define TkFocusKeyEvent \
- (tkIntStubsPtr->tkFocusKeyEvent) /* 25 */
-#endif
-#ifndef TkFontPkgInit
-#define TkFontPkgInit \
- (tkIntStubsPtr->tkFontPkgInit) /* 26 */
-#endif
-#ifndef TkFontPkgFree
-#define TkFontPkgFree \
- (tkIntStubsPtr->tkFontPkgFree) /* 27 */
-#endif
-#ifndef TkFreeBindingTags
-#define TkFreeBindingTags \
- (tkIntStubsPtr->tkFreeBindingTags) /* 28 */
-#endif
-#ifndef TkpFreeCursor
-#define TkpFreeCursor \
- (tkIntStubsPtr->tkpFreeCursor) /* 29 */
-#endif
-#ifndef TkGetBitmapData
-#define TkGetBitmapData \
- (tkIntStubsPtr->tkGetBitmapData) /* 30 */
-#endif
-#ifndef TkGetButtPoints
-#define TkGetButtPoints \
- (tkIntStubsPtr->tkGetButtPoints) /* 31 */
-#endif
-#ifndef TkGetCursorByName
-#define TkGetCursorByName \
- (tkIntStubsPtr->tkGetCursorByName) /* 32 */
-#endif
-#ifndef TkGetDefaultScreenName
-#define TkGetDefaultScreenName \
- (tkIntStubsPtr->tkGetDefaultScreenName) /* 33 */
-#endif
-#ifndef TkGetDisplay
-#define TkGetDisplay \
- (tkIntStubsPtr->tkGetDisplay) /* 34 */
-#endif
-#ifndef TkGetDisplayOf
-#define TkGetDisplayOf \
- (tkIntStubsPtr->tkGetDisplayOf) /* 35 */
-#endif
-#ifndef TkGetFocusWin
-#define TkGetFocusWin \
- (tkIntStubsPtr->tkGetFocusWin) /* 36 */
-#endif
-#ifndef TkGetInterpNames
-#define TkGetInterpNames \
- (tkIntStubsPtr->tkGetInterpNames) /* 37 */
-#endif
-#ifndef TkGetMiterPoints
-#define TkGetMiterPoints \
- (tkIntStubsPtr->tkGetMiterPoints) /* 38 */
-#endif
-#ifndef TkGetPointerCoords
-#define TkGetPointerCoords \
- (tkIntStubsPtr->tkGetPointerCoords) /* 39 */
-#endif
-#ifndef TkGetServerInfo
-#define TkGetServerInfo \
- (tkIntStubsPtr->tkGetServerInfo) /* 40 */
-#endif
-#ifndef TkGrabDeadWindow
-#define TkGrabDeadWindow \
- (tkIntStubsPtr->tkGrabDeadWindow) /* 41 */
-#endif
-#ifndef TkGrabState
-#define TkGrabState \
- (tkIntStubsPtr->tkGrabState) /* 42 */
-#endif
-#ifndef TkIncludePoint
-#define TkIncludePoint \
- (tkIntStubsPtr->tkIncludePoint) /* 43 */
-#endif
-#ifndef TkInOutEvents
-#define TkInOutEvents \
- (tkIntStubsPtr->tkInOutEvents) /* 44 */
-#endif
-#ifndef TkInstallFrameMenu
-#define TkInstallFrameMenu \
- (tkIntStubsPtr->tkInstallFrameMenu) /* 45 */
-#endif
-#ifndef TkKeysymToString
-#define TkKeysymToString \
- (tkIntStubsPtr->tkKeysymToString) /* 46 */
-#endif
-#ifndef TkLineToArea
-#define TkLineToArea \
- (tkIntStubsPtr->tkLineToArea) /* 47 */
-#endif
-#ifndef TkLineToPoint
-#define TkLineToPoint \
- (tkIntStubsPtr->tkLineToPoint) /* 48 */
-#endif
-#ifndef TkMakeBezierCurve
-#define TkMakeBezierCurve \
- (tkIntStubsPtr->tkMakeBezierCurve) /* 49 */
-#endif
-#ifndef TkMakeBezierPostscript
-#define TkMakeBezierPostscript \
- (tkIntStubsPtr->tkMakeBezierPostscript) /* 50 */
-#endif
-#ifndef TkOptionClassChanged
-#define TkOptionClassChanged \
- (tkIntStubsPtr->tkOptionClassChanged) /* 51 */
-#endif
-#ifndef TkOptionDeadWindow
-#define TkOptionDeadWindow \
- (tkIntStubsPtr->tkOptionDeadWindow) /* 52 */
-#endif
-#ifndef TkOvalToArea
-#define TkOvalToArea \
- (tkIntStubsPtr->tkOvalToArea) /* 53 */
-#endif
-#ifndef TkOvalToPoint
-#define TkOvalToPoint \
- (tkIntStubsPtr->tkOvalToPoint) /* 54 */
-#endif
-#ifndef TkpChangeFocus
-#define TkpChangeFocus \
- (tkIntStubsPtr->tkpChangeFocus) /* 55 */
-#endif
-#ifndef TkpCloseDisplay
-#define TkpCloseDisplay \
- (tkIntStubsPtr->tkpCloseDisplay) /* 56 */
-#endif
-#ifndef TkpClaimFocus
-#define TkpClaimFocus \
- (tkIntStubsPtr->tkpClaimFocus) /* 57 */
-#endif
-#ifndef TkpDisplayWarning
-#define TkpDisplayWarning \
- (tkIntStubsPtr->tkpDisplayWarning) /* 58 */
-#endif
-#ifndef TkpGetAppName
-#define TkpGetAppName \
- (tkIntStubsPtr->tkpGetAppName) /* 59 */
-#endif
-#ifndef TkpGetOtherWindow
-#define TkpGetOtherWindow \
- (tkIntStubsPtr->tkpGetOtherWindow) /* 60 */
-#endif
-#ifndef TkpGetWrapperWindow
-#define TkpGetWrapperWindow \
- (tkIntStubsPtr->tkpGetWrapperWindow) /* 61 */
-#endif
-#ifndef TkpInit
-#define TkpInit \
- (tkIntStubsPtr->tkpInit) /* 62 */
-#endif
-#ifndef TkpInitializeMenuBindings
-#define TkpInitializeMenuBindings \
- (tkIntStubsPtr->tkpInitializeMenuBindings) /* 63 */
-#endif
-#ifndef TkpMakeContainer
-#define TkpMakeContainer \
- (tkIntStubsPtr->tkpMakeContainer) /* 64 */
-#endif
-#ifndef TkpMakeMenuWindow
-#define TkpMakeMenuWindow \
- (tkIntStubsPtr->tkpMakeMenuWindow) /* 65 */
-#endif
-#ifndef TkpMakeWindow
-#define TkpMakeWindow \
- (tkIntStubsPtr->tkpMakeWindow) /* 66 */
-#endif
-#ifndef TkpMenuNotifyToplevelCreate
-#define TkpMenuNotifyToplevelCreate \
- (tkIntStubsPtr->tkpMenuNotifyToplevelCreate) /* 67 */
-#endif
-#ifndef TkpOpenDisplay
-#define TkpOpenDisplay \
- (tkIntStubsPtr->tkpOpenDisplay) /* 68 */
-#endif
-#ifndef TkPointerEvent
-#define TkPointerEvent \
- (tkIntStubsPtr->tkPointerEvent) /* 69 */
-#endif
-#ifndef TkPolygonToArea
-#define TkPolygonToArea \
- (tkIntStubsPtr->tkPolygonToArea) /* 70 */
-#endif
-#ifndef TkPolygonToPoint
-#define TkPolygonToPoint \
- (tkIntStubsPtr->tkPolygonToPoint) /* 71 */
-#endif
-#ifndef TkPositionInTree
-#define TkPositionInTree \
- (tkIntStubsPtr->tkPositionInTree) /* 72 */
-#endif
-#ifndef TkpRedirectKeyEvent
-#define TkpRedirectKeyEvent \
- (tkIntStubsPtr->tkpRedirectKeyEvent) /* 73 */
-#endif
-#ifndef TkpSetMainMenubar
-#define TkpSetMainMenubar \
- (tkIntStubsPtr->tkpSetMainMenubar) /* 74 */
-#endif
-#ifndef TkpUseWindow
-#define TkpUseWindow \
- (tkIntStubsPtr->tkpUseWindow) /* 75 */
-#endif
-#ifndef TkpWindowWasRecentlyDeleted
-#define TkpWindowWasRecentlyDeleted \
- (tkIntStubsPtr->tkpWindowWasRecentlyDeleted) /* 76 */
-#endif
-#ifndef TkQueueEventForAllChildren
-#define TkQueueEventForAllChildren \
- (tkIntStubsPtr->tkQueueEventForAllChildren) /* 77 */
-#endif
-#ifndef TkReadBitmapFile
-#define TkReadBitmapFile \
- (tkIntStubsPtr->tkReadBitmapFile) /* 78 */
-#endif
-#ifndef TkScrollWindow
-#define TkScrollWindow \
- (tkIntStubsPtr->tkScrollWindow) /* 79 */
-#endif
-#ifndef TkSelDeadWindow
-#define TkSelDeadWindow \
- (tkIntStubsPtr->tkSelDeadWindow) /* 80 */
-#endif
-#ifndef TkSelEventProc
-#define TkSelEventProc \
- (tkIntStubsPtr->tkSelEventProc) /* 81 */
-#endif
-#ifndef TkSelInit
-#define TkSelInit \
- (tkIntStubsPtr->tkSelInit) /* 82 */
-#endif
-#ifndef TkSelPropProc
-#define TkSelPropProc \
- (tkIntStubsPtr->tkSelPropProc) /* 83 */
-#endif
-/* Slot 84 is reserved */
-#ifndef TkSetWindowMenuBar
-#define TkSetWindowMenuBar \
- (tkIntStubsPtr->tkSetWindowMenuBar) /* 85 */
-#endif
-#ifndef TkStringToKeysym
-#define TkStringToKeysym \
- (tkIntStubsPtr->tkStringToKeysym) /* 86 */
-#endif
-#ifndef TkThickPolyLineToArea
-#define TkThickPolyLineToArea \
- (tkIntStubsPtr->tkThickPolyLineToArea) /* 87 */
-#endif
-#ifndef TkWmAddToColormapWindows
-#define TkWmAddToColormapWindows \
- (tkIntStubsPtr->tkWmAddToColormapWindows) /* 88 */
-#endif
-#ifndef TkWmDeadWindow
-#define TkWmDeadWindow \
- (tkIntStubsPtr->tkWmDeadWindow) /* 89 */
-#endif
-#ifndef TkWmFocusToplevel
-#define TkWmFocusToplevel \
- (tkIntStubsPtr->tkWmFocusToplevel) /* 90 */
-#endif
-#ifndef TkWmMapWindow
-#define TkWmMapWindow \
- (tkIntStubsPtr->tkWmMapWindow) /* 91 */
-#endif
-#ifndef TkWmNewWindow
-#define TkWmNewWindow \
- (tkIntStubsPtr->tkWmNewWindow) /* 92 */
-#endif
-#ifndef TkWmProtocolEventProc
-#define TkWmProtocolEventProc \
- (tkIntStubsPtr->tkWmProtocolEventProc) /* 93 */
-#endif
-#ifndef TkWmRemoveFromColormapWindows
-#define TkWmRemoveFromColormapWindows \
- (tkIntStubsPtr->tkWmRemoveFromColormapWindows) /* 94 */
-#endif
-#ifndef TkWmRestackToplevel
-#define TkWmRestackToplevel \
- (tkIntStubsPtr->tkWmRestackToplevel) /* 95 */
-#endif
-#ifndef TkWmSetClass
-#define TkWmSetClass \
- (tkIntStubsPtr->tkWmSetClass) /* 96 */
-#endif
-#ifndef TkWmUnmapWindow
-#define TkWmUnmapWindow \
- (tkIntStubsPtr->tkWmUnmapWindow) /* 97 */
-#endif
-#ifndef TkDebugBitmap
-#define TkDebugBitmap \
- (tkIntStubsPtr->tkDebugBitmap) /* 98 */
-#endif
-#ifndef TkDebugBorder
-#define TkDebugBorder \
- (tkIntStubsPtr->tkDebugBorder) /* 99 */
-#endif
-#ifndef TkDebugCursor
-#define TkDebugCursor \
- (tkIntStubsPtr->tkDebugCursor) /* 100 */
-#endif
-#ifndef TkDebugColor
-#define TkDebugColor \
- (tkIntStubsPtr->tkDebugColor) /* 101 */
-#endif
-#ifndef TkDebugConfig
-#define TkDebugConfig \
- (tkIntStubsPtr->tkDebugConfig) /* 102 */
-#endif
-#ifndef TkDebugFont
-#define TkDebugFont \
- (tkIntStubsPtr->tkDebugFont) /* 103 */
-#endif
-#ifndef TkFindStateNumObj
-#define TkFindStateNumObj \
- (tkIntStubsPtr->tkFindStateNumObj) /* 104 */
-#endif
-#ifndef TkGetBitmapPredefTable
-#define TkGetBitmapPredefTable \
- (tkIntStubsPtr->tkGetBitmapPredefTable) /* 105 */
-#endif
-#ifndef TkGetDisplayList
-#define TkGetDisplayList \
- (tkIntStubsPtr->tkGetDisplayList) /* 106 */
-#endif
-#ifndef TkGetMainInfoList
-#define TkGetMainInfoList \
- (tkIntStubsPtr->tkGetMainInfoList) /* 107 */
-#endif
-#ifndef TkGetWindowFromObj
-#define TkGetWindowFromObj \
- (tkIntStubsPtr->tkGetWindowFromObj) /* 108 */
-#endif
-#ifndef TkpGetString
-#define TkpGetString \
- (tkIntStubsPtr->tkpGetString) /* 109 */
-#endif
-#ifndef TkpGetSubFonts
-#define TkpGetSubFonts \
- (tkIntStubsPtr->tkpGetSubFonts) /* 110 */
-#endif
-#ifndef TkpGetSystemDefault
-#define TkpGetSystemDefault \
- (tkIntStubsPtr->tkpGetSystemDefault) /* 111 */
-#endif
-#ifndef TkpMenuThreadInit
-#define TkpMenuThreadInit \
- (tkIntStubsPtr->tkpMenuThreadInit) /* 112 */
-#endif
-#ifdef __WIN32__
-#ifndef TkClipBox
-#define TkClipBox \
- (tkIntStubsPtr->tkClipBox) /* 113 */
-#endif
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-#ifndef TkClipBox
-#define TkClipBox \
- (tkIntStubsPtr->tkClipBox) /* 113 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef TkClipBox
-#define TkClipBox \
- (tkIntStubsPtr->tkClipBox) /* 113 */
-#endif
-#endif /* MAC_OSX_TK */
-#ifdef __WIN32__
-#ifndef TkCreateRegion
-#define TkCreateRegion \
- (tkIntStubsPtr->tkCreateRegion) /* 114 */
-#endif
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-#ifndef TkCreateRegion
-#define TkCreateRegion \
- (tkIntStubsPtr->tkCreateRegion) /* 114 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef TkCreateRegion
-#define TkCreateRegion \
- (tkIntStubsPtr->tkCreateRegion) /* 114 */
-#endif
-#endif /* MAC_OSX_TK */
-#ifdef __WIN32__
-#ifndef TkDestroyRegion
-#define TkDestroyRegion \
- (tkIntStubsPtr->tkDestroyRegion) /* 115 */
-#endif
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-#ifndef TkDestroyRegion
-#define TkDestroyRegion \
- (tkIntStubsPtr->tkDestroyRegion) /* 115 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef TkDestroyRegion
-#define TkDestroyRegion \
- (tkIntStubsPtr->tkDestroyRegion) /* 115 */
-#endif
-#endif /* MAC_OSX_TK */
-#ifdef __WIN32__
-#ifndef TkIntersectRegion
-#define TkIntersectRegion \
- (tkIntStubsPtr->tkIntersectRegion) /* 116 */
-#endif
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-#ifndef TkIntersectRegion
-#define TkIntersectRegion \
- (tkIntStubsPtr->tkIntersectRegion) /* 116 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef TkIntersectRegion
-#define TkIntersectRegion \
- (tkIntStubsPtr->tkIntersectRegion) /* 116 */
-#endif
-#endif /* MAC_OSX_TK */
-#ifdef __WIN32__
-#ifndef TkRectInRegion
-#define TkRectInRegion \
- (tkIntStubsPtr->tkRectInRegion) /* 117 */
-#endif
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-#ifndef TkRectInRegion
-#define TkRectInRegion \
- (tkIntStubsPtr->tkRectInRegion) /* 117 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef TkRectInRegion
-#define TkRectInRegion \
- (tkIntStubsPtr->tkRectInRegion) /* 117 */
-#endif
-#endif /* MAC_OSX_TK */
-#ifdef __WIN32__
-#ifndef TkSetRegion
-#define TkSetRegion \
- (tkIntStubsPtr->tkSetRegion) /* 118 */
-#endif
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-#ifndef TkSetRegion
-#define TkSetRegion \
- (tkIntStubsPtr->tkSetRegion) /* 118 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef TkSetRegion
-#define TkSetRegion \
- (tkIntStubsPtr->tkSetRegion) /* 118 */
-#endif
-#endif /* MAC_OSX_TK */
-#ifdef __WIN32__
-#ifndef TkUnionRectWithRegion
-#define TkUnionRectWithRegion \
- (tkIntStubsPtr->tkUnionRectWithRegion) /* 119 */
-#endif
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-#ifndef TkUnionRectWithRegion
-#define TkUnionRectWithRegion \
- (tkIntStubsPtr->tkUnionRectWithRegion) /* 119 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef TkUnionRectWithRegion
-#define TkUnionRectWithRegion \
- (tkIntStubsPtr->tkUnionRectWithRegion) /* 119 */
-#endif
-#endif /* MAC_OSX_TK */
-/* Slot 120 is reserved */
-#ifdef MAC_TCL
-#ifndef TkpCreateNativeBitmap
-#define TkpCreateNativeBitmap \
- (tkIntStubsPtr->tkpCreateNativeBitmap) /* 121 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef TkpCreateNativeBitmap
-#define TkpCreateNativeBitmap \
- (tkIntStubsPtr->tkpCreateNativeBitmap) /* 121 */
-#endif
-#endif /* MAC_OSX_TK */
-#ifdef MAC_TCL
-#ifndef TkpDefineNativeBitmaps
-#define TkpDefineNativeBitmaps \
- (tkIntStubsPtr->tkpDefineNativeBitmaps) /* 122 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef TkpDefineNativeBitmaps
-#define TkpDefineNativeBitmaps \
- (tkIntStubsPtr->tkpDefineNativeBitmaps) /* 122 */
-#endif
-#endif /* MAC_OSX_TK */
-/* Slot 123 is reserved */
-#ifdef MAC_TCL
-#ifndef TkpGetNativeAppBitmap
-#define TkpGetNativeAppBitmap \
- (tkIntStubsPtr->tkpGetNativeAppBitmap) /* 124 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef TkpGetNativeAppBitmap
-#define TkpGetNativeAppBitmap \
- (tkIntStubsPtr->tkpGetNativeAppBitmap) /* 124 */
-#endif
-#endif /* MAC_OSX_TK */
-/* Slot 125 is reserved */
-/* Slot 126 is reserved */
-/* Slot 127 is reserved */
-/* Slot 128 is reserved */
-/* Slot 129 is reserved */
-/* Slot 130 is reserved */
-/* Slot 131 is reserved */
-/* Slot 132 is reserved */
-/* Slot 133 is reserved */
-/* Slot 134 is reserved */
-#ifndef TkpDrawHighlightBorder
-#define TkpDrawHighlightBorder \
- (tkIntStubsPtr->tkpDrawHighlightBorder) /* 135 */
-#endif
-#ifndef TkSetFocusWin
-#define TkSetFocusWin \
- (tkIntStubsPtr->tkSetFocusWin) /* 136 */
-#endif
-#ifndef TkpSetKeycodeAndState
-#define TkpSetKeycodeAndState \
- (tkIntStubsPtr->tkpSetKeycodeAndState) /* 137 */
-#endif
-#ifndef TkpGetKeySym
-#define TkpGetKeySym \
- (tkIntStubsPtr->tkpGetKeySym) /* 138 */
-#endif
-#ifndef TkpInitKeymapInfo
-#define TkpInitKeymapInfo \
- (tkIntStubsPtr->tkpInitKeymapInfo) /* 139 */
-#endif
-#ifndef TkPhotoGetValidRegion
-#define TkPhotoGetValidRegion \
- (tkIntStubsPtr->tkPhotoGetValidRegion) /* 140 */
-#endif
-#ifndef TkWmStackorderToplevel
-#define TkWmStackorderToplevel \
- (tkIntStubsPtr->tkWmStackorderToplevel) /* 141 */
-#endif
-#ifndef TkFocusFree
-#define TkFocusFree \
- (tkIntStubsPtr->tkFocusFree) /* 142 */
-#endif
-#ifndef TkClipCleanup
-#define TkClipCleanup \
- (tkIntStubsPtr->tkClipCleanup) /* 143 */
-#endif
-#ifndef TkGCCleanup
-#define TkGCCleanup \
- (tkIntStubsPtr->tkGCCleanup) /* 144 */
-#endif
-#ifdef __WIN32__
-#ifndef TkSubtractRegion
-#define TkSubtractRegion \
- (tkIntStubsPtr->tkSubtractRegion) /* 145 */
-#endif
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-#ifndef TkSubtractRegion
-#define TkSubtractRegion \
- (tkIntStubsPtr->tkSubtractRegion) /* 145 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef TkSubtractRegion
-#define TkSubtractRegion \
- (tkIntStubsPtr->tkSubtractRegion) /* 145 */
-#endif
-#endif /* MAC_OSX_TK */
-#ifndef TkStylePkgInit
-#define TkStylePkgInit \
- (tkIntStubsPtr->tkStylePkgInit) /* 146 */
-#endif
-#ifndef TkStylePkgFree
-#define TkStylePkgFree \
- (tkIntStubsPtr->tkStylePkgFree) /* 147 */
-#endif
-#ifndef TkToplevelWindowForCommand
-#define TkToplevelWindowForCommand \
- (tkIntStubsPtr->tkToplevelWindowForCommand) /* 148 */
-#endif
-#ifndef TkGetOptionSpec
-#define TkGetOptionSpec \
- (tkIntStubsPtr->tkGetOptionSpec) /* 149 */
-#endif
-
-#endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */
-
-/* !END!: Do not edit above this line. */
-
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKINTDECLS */
-
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls.m
deleted file mode 100644
index 61e31a2f65b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls.m
+++ /dev/null
@@ -1,466 +0,0 @@
-#ifndef _TKINTDECLS_VM
-#define _TKINTDECLS_VM
-#include "tkIntDecls_f.h"
-#ifndef NO_VTABLES
-#ifndef TkAllocWindow
-# define TkAllocWindow (*TkintdeclsVptr->V_TkAllocWindow)
-#endif
-
-#ifndef TkBindDeadWindow
-# define TkBindDeadWindow (*TkintdeclsVptr->V_TkBindDeadWindow)
-#endif
-
-#ifndef TkBindEventProc
-# define TkBindEventProc (*TkintdeclsVptr->V_TkBindEventProc)
-#endif
-
-#ifndef TkBindFree
-# define TkBindFree (*TkintdeclsVptr->V_TkBindFree)
-#endif
-
-#ifndef TkBindInit
-# define TkBindInit (*TkintdeclsVptr->V_TkBindInit)
-#endif
-
-#ifndef TkChangeEventWindow
-# define TkChangeEventWindow (*TkintdeclsVptr->V_TkChangeEventWindow)
-#endif
-
-#ifndef TkClipBox
-# define TkClipBox (*TkintdeclsVptr->V_TkClipBox)
-#endif
-
-#ifndef TkClipCleanup
-# define TkClipCleanup (*TkintdeclsVptr->V_TkClipCleanup)
-#endif
-
-#ifndef TkClipInit
-# define TkClipInit (*TkintdeclsVptr->V_TkClipInit)
-#endif
-
-#ifndef TkComputeAnchor
-# define TkComputeAnchor (*TkintdeclsVptr->V_TkComputeAnchor)
-#endif
-
-#ifndef TkCopyAndGlobalEval
-# define TkCopyAndGlobalEval (*TkintdeclsVptr->V_TkCopyAndGlobalEval)
-#endif
-
-#ifndef TkCreateBindingProcedure
-# define TkCreateBindingProcedure (*TkintdeclsVptr->V_TkCreateBindingProcedure)
-#endif
-
-#ifndef TkCreateCursorFromData
-# define TkCreateCursorFromData (*TkintdeclsVptr->V_TkCreateCursorFromData)
-#endif
-
-#ifndef TkCreateFrame
-# define TkCreateFrame (*TkintdeclsVptr->V_TkCreateFrame)
-#endif
-
-#ifndef TkCreateMainWindow
-# define TkCreateMainWindow (*TkintdeclsVptr->V_TkCreateMainWindow)
-#endif
-
-#ifndef TkCreateRegion
-# define TkCreateRegion (*TkintdeclsVptr->V_TkCreateRegion)
-#endif
-
-#ifndef TkCurrentTime
-# define TkCurrentTime (*TkintdeclsVptr->V_TkCurrentTime)
-#endif
-
-#ifndef TkDebugBitmap
-# define TkDebugBitmap (*TkintdeclsVptr->V_TkDebugBitmap)
-#endif
-
-#ifndef TkDebugBorder
-# define TkDebugBorder (*TkintdeclsVptr->V_TkDebugBorder)
-#endif
-
-#ifndef TkDebugColor
-# define TkDebugColor (*TkintdeclsVptr->V_TkDebugColor)
-#endif
-
-#ifndef TkDebugConfig
-# define TkDebugConfig (*TkintdeclsVptr->V_TkDebugConfig)
-#endif
-
-#ifndef TkDebugCursor
-# define TkDebugCursor (*TkintdeclsVptr->V_TkDebugCursor)
-#endif
-
-#ifndef TkDebugFont
-# define TkDebugFont (*TkintdeclsVptr->V_TkDebugFont)
-#endif
-
-#ifndef TkDeleteAllImages
-# define TkDeleteAllImages (*TkintdeclsVptr->V_TkDeleteAllImages)
-#endif
-
-#ifndef TkDestroyRegion
-# define TkDestroyRegion (*TkintdeclsVptr->V_TkDestroyRegion)
-#endif
-
-#ifndef TkDoConfigureNotify
-# define TkDoConfigureNotify (*TkintdeclsVptr->V_TkDoConfigureNotify)
-#endif
-
-#ifndef TkDrawInsetFocusHighlight
-# define TkDrawInsetFocusHighlight (*TkintdeclsVptr->V_TkDrawInsetFocusHighlight)
-#endif
-
-#ifndef TkEventDeadWindow
-# define TkEventDeadWindow (*TkintdeclsVptr->V_TkEventDeadWindow)
-#endif
-
-#ifndef TkFindStateNum
-# define TkFindStateNum (*TkintdeclsVptr->V_TkFindStateNum)
-#endif
-
-#ifndef TkFindStateNumObj
-# define TkFindStateNumObj (*TkintdeclsVptr->V_TkFindStateNumObj)
-#endif
-
-#ifndef TkFindStateString
-# define TkFindStateString (*TkintdeclsVptr->V_TkFindStateString)
-#endif
-
-#ifndef TkFocusDeadWindow
-# define TkFocusDeadWindow (*TkintdeclsVptr->V_TkFocusDeadWindow)
-#endif
-
-#ifndef TkFocusFilterEvent
-# define TkFocusFilterEvent (*TkintdeclsVptr->V_TkFocusFilterEvent)
-#endif
-
-#ifndef TkFocusFree
-# define TkFocusFree (*TkintdeclsVptr->V_TkFocusFree)
-#endif
-
-#ifndef TkFocusKeyEvent
-# define TkFocusKeyEvent (*TkintdeclsVptr->V_TkFocusKeyEvent)
-#endif
-
-#ifndef TkFontPkgFree
-# define TkFontPkgFree (*TkintdeclsVptr->V_TkFontPkgFree)
-#endif
-
-#ifndef TkFontPkgInit
-# define TkFontPkgInit (*TkintdeclsVptr->V_TkFontPkgInit)
-#endif
-
-#ifndef TkFreeBindingTags
-# define TkFreeBindingTags (*TkintdeclsVptr->V_TkFreeBindingTags)
-#endif
-
-#ifndef TkGCCleanup
-# define TkGCCleanup (*TkintdeclsVptr->V_TkGCCleanup)
-#endif
-
-#ifndef TkGetBitmapData
-# define TkGetBitmapData (*TkintdeclsVptr->V_TkGetBitmapData)
-#endif
-
-#ifndef TkGetBitmapPredefTable
-# define TkGetBitmapPredefTable (*TkintdeclsVptr->V_TkGetBitmapPredefTable)
-#endif
-
-#ifndef TkGetCursorByName
-# define TkGetCursorByName (*TkintdeclsVptr->V_TkGetCursorByName)
-#endif
-
-#ifndef TkGetDefaultScreenName
-# define TkGetDefaultScreenName (*TkintdeclsVptr->V_TkGetDefaultScreenName)
-#endif
-
-#ifndef TkGetDisplay
-# define TkGetDisplay (*TkintdeclsVptr->V_TkGetDisplay)
-#endif
-
-#ifndef TkGetDisplayList
-# define TkGetDisplayList (*TkintdeclsVptr->V_TkGetDisplayList)
-#endif
-
-#ifndef TkGetDisplayOf
-# define TkGetDisplayOf (*TkintdeclsVptr->V_TkGetDisplayOf)
-#endif
-
-#ifndef TkGetFocusWin
-# define TkGetFocusWin (*TkintdeclsVptr->V_TkGetFocusWin)
-#endif
-
-#ifndef TkGetInterpNames
-# define TkGetInterpNames (*TkintdeclsVptr->V_TkGetInterpNames)
-#endif
-
-#ifndef TkGetMainInfoList
-# define TkGetMainInfoList (*TkintdeclsVptr->V_TkGetMainInfoList)
-#endif
-
-#ifndef TkGetOptionSpec
-# define TkGetOptionSpec (*TkintdeclsVptr->V_TkGetOptionSpec)
-#endif
-
-#ifndef TkGetPointerCoords
-# define TkGetPointerCoords (*TkintdeclsVptr->V_TkGetPointerCoords)
-#endif
-
-#ifndef TkGetServerInfo
-# define TkGetServerInfo (*TkintdeclsVptr->V_TkGetServerInfo)
-#endif
-
-#ifndef TkGetWindowFromObj
-# define TkGetWindowFromObj (*TkintdeclsVptr->V_TkGetWindowFromObj)
-#endif
-
-#ifndef TkGrabDeadWindow
-# define TkGrabDeadWindow (*TkintdeclsVptr->V_TkGrabDeadWindow)
-#endif
-
-#ifndef TkGrabState
-# define TkGrabState (*TkintdeclsVptr->V_TkGrabState)
-#endif
-
-#ifndef TkInOutEvents
-# define TkInOutEvents (*TkintdeclsVptr->V_TkInOutEvents)
-#endif
-
-#ifndef TkInstallFrameMenu
-# define TkInstallFrameMenu (*TkintdeclsVptr->V_TkInstallFrameMenu)
-#endif
-
-#ifndef TkIntersectRegion
-# define TkIntersectRegion (*TkintdeclsVptr->V_TkIntersectRegion)
-#endif
-
-#ifndef TkKeysymToString
-# define TkKeysymToString (*TkintdeclsVptr->V_TkKeysymToString)
-#endif
-
-#ifndef TkPhotoGetValidRegion
-# define TkPhotoGetValidRegion (*TkintdeclsVptr->V_TkPhotoGetValidRegion)
-#endif
-
-#ifndef TkPointerEvent
-# define TkPointerEvent (*TkintdeclsVptr->V_TkPointerEvent)
-#endif
-
-#ifndef TkPositionInTree
-# define TkPositionInTree (*TkintdeclsVptr->V_TkPositionInTree)
-#endif
-
-#ifndef TkQueueEventForAllChildren
-# define TkQueueEventForAllChildren (*TkintdeclsVptr->V_TkQueueEventForAllChildren)
-#endif
-
-#ifndef TkReadBitmapFile
-# define TkReadBitmapFile (*TkintdeclsVptr->V_TkReadBitmapFile)
-#endif
-
-#ifndef TkRectInRegion
-# define TkRectInRegion (*TkintdeclsVptr->V_TkRectInRegion)
-#endif
-
-#ifndef TkScrollWindow
-# define TkScrollWindow (*TkintdeclsVptr->V_TkScrollWindow)
-#endif
-
-#ifndef TkSelDeadWindow
-# define TkSelDeadWindow (*TkintdeclsVptr->V_TkSelDeadWindow)
-#endif
-
-#ifndef TkSelEventProc
-# define TkSelEventProc (*TkintdeclsVptr->V_TkSelEventProc)
-#endif
-
-#ifndef TkSelInit
-# define TkSelInit (*TkintdeclsVptr->V_TkSelInit)
-#endif
-
-#ifndef TkSelPropProc
-# define TkSelPropProc (*TkintdeclsVptr->V_TkSelPropProc)
-#endif
-
-#ifndef TkSetFocusWin
-# define TkSetFocusWin (*TkintdeclsVptr->V_TkSetFocusWin)
-#endif
-
-#ifndef TkSetRegion
-# define TkSetRegion (*TkintdeclsVptr->V_TkSetRegion)
-#endif
-
-#ifndef TkSetWindowMenuBar
-# define TkSetWindowMenuBar (*TkintdeclsVptr->V_TkSetWindowMenuBar)
-#endif
-
-#ifndef TkStringToKeysym
-# define TkStringToKeysym (*TkintdeclsVptr->V_TkStringToKeysym)
-#endif
-
-#ifndef TkStylePkgFree
-# define TkStylePkgFree (*TkintdeclsVptr->V_TkStylePkgFree)
-#endif
-
-#ifndef TkStylePkgInit
-# define TkStylePkgInit (*TkintdeclsVptr->V_TkStylePkgInit)
-#endif
-
-#ifndef TkSubtractRegion
-# define TkSubtractRegion (*TkintdeclsVptr->V_TkSubtractRegion)
-#endif
-
-#ifndef TkToplevelWindowForCommand
-# define TkToplevelWindowForCommand (*TkintdeclsVptr->V_TkToplevelWindowForCommand)
-#endif
-
-#ifndef TkUnionRectWithRegion
-# define TkUnionRectWithRegion (*TkintdeclsVptr->V_TkUnionRectWithRegion)
-#endif
-
-#ifndef TkWmAddToColormapWindows
-# define TkWmAddToColormapWindows (*TkintdeclsVptr->V_TkWmAddToColormapWindows)
-#endif
-
-#ifndef TkWmDeadWindow
-# define TkWmDeadWindow (*TkintdeclsVptr->V_TkWmDeadWindow)
-#endif
-
-#ifndef TkWmFocusToplevel
-# define TkWmFocusToplevel (*TkintdeclsVptr->V_TkWmFocusToplevel)
-#endif
-
-#ifndef TkWmMapWindow
-# define TkWmMapWindow (*TkintdeclsVptr->V_TkWmMapWindow)
-#endif
-
-#ifndef TkWmNewWindow
-# define TkWmNewWindow (*TkintdeclsVptr->V_TkWmNewWindow)
-#endif
-
-#ifndef TkWmProtocolEventProc
-# define TkWmProtocolEventProc (*TkintdeclsVptr->V_TkWmProtocolEventProc)
-#endif
-
-#ifndef TkWmRemoveFromColormapWindows
-# define TkWmRemoveFromColormapWindows (*TkintdeclsVptr->V_TkWmRemoveFromColormapWindows)
-#endif
-
-#ifndef TkWmRestackToplevel
-# define TkWmRestackToplevel (*TkintdeclsVptr->V_TkWmRestackToplevel)
-#endif
-
-#ifndef TkWmSetClass
-# define TkWmSetClass (*TkintdeclsVptr->V_TkWmSetClass)
-#endif
-
-#ifndef TkWmStackorderToplevel
-# define TkWmStackorderToplevel (*TkintdeclsVptr->V_TkWmStackorderToplevel)
-#endif
-
-#ifndef TkWmUnmapWindow
-# define TkWmUnmapWindow (*TkintdeclsVptr->V_TkWmUnmapWindow)
-#endif
-
-#ifndef TkpChangeFocus
-# define TkpChangeFocus (*TkintdeclsVptr->V_TkpChangeFocus)
-#endif
-
-#ifndef TkpClaimFocus
-# define TkpClaimFocus (*TkintdeclsVptr->V_TkpClaimFocus)
-#endif
-
-#ifndef TkpCloseDisplay
-# define TkpCloseDisplay (*TkintdeclsVptr->V_TkpCloseDisplay)
-#endif
-
-#ifndef TkpDisplayWarning
-# define TkpDisplayWarning (*TkintdeclsVptr->V_TkpDisplayWarning)
-#endif
-
-#ifndef TkpDrawHighlightBorder
-# define TkpDrawHighlightBorder (*TkintdeclsVptr->V_TkpDrawHighlightBorder)
-#endif
-
-#ifndef TkpFreeCursor
-# define TkpFreeCursor (*TkintdeclsVptr->V_TkpFreeCursor)
-#endif
-
-#ifndef TkpGetKeySym
-# define TkpGetKeySym (*TkintdeclsVptr->V_TkpGetKeySym)
-#endif
-
-#ifndef TkpGetOtherWindow
-# define TkpGetOtherWindow (*TkintdeclsVptr->V_TkpGetOtherWindow)
-#endif
-
-#ifndef TkpGetString
-# define TkpGetString (*TkintdeclsVptr->V_TkpGetString)
-#endif
-
-#ifndef TkpGetSubFonts
-# define TkpGetSubFonts (*TkintdeclsVptr->V_TkpGetSubFonts)
-#endif
-
-#ifndef TkpGetSystemDefault
-# define TkpGetSystemDefault (*TkintdeclsVptr->V_TkpGetSystemDefault)
-#endif
-
-#ifndef TkpGetWrapperWindow
-# define TkpGetWrapperWindow (*TkintdeclsVptr->V_TkpGetWrapperWindow)
-#endif
-
-#ifndef TkpInitKeymapInfo
-# define TkpInitKeymapInfo (*TkintdeclsVptr->V_TkpInitKeymapInfo)
-#endif
-
-#ifndef TkpInitializeMenuBindings
-# define TkpInitializeMenuBindings (*TkintdeclsVptr->V_TkpInitializeMenuBindings)
-#endif
-
-#ifndef TkpMakeContainer
-# define TkpMakeContainer (*TkintdeclsVptr->V_TkpMakeContainer)
-#endif
-
-#ifndef TkpMakeMenuWindow
-# define TkpMakeMenuWindow (*TkintdeclsVptr->V_TkpMakeMenuWindow)
-#endif
-
-#ifndef TkpMakeWindow
-# define TkpMakeWindow (*TkintdeclsVptr->V_TkpMakeWindow)
-#endif
-
-#ifndef TkpMenuNotifyToplevelCreate
-# define TkpMenuNotifyToplevelCreate (*TkintdeclsVptr->V_TkpMenuNotifyToplevelCreate)
-#endif
-
-#ifndef TkpMenuThreadInit
-# define TkpMenuThreadInit (*TkintdeclsVptr->V_TkpMenuThreadInit)
-#endif
-
-#ifndef TkpOpenDisplay
-# define TkpOpenDisplay (*TkintdeclsVptr->V_TkpOpenDisplay)
-#endif
-
-#ifndef TkpRedirectKeyEvent
-# define TkpRedirectKeyEvent (*TkintdeclsVptr->V_TkpRedirectKeyEvent)
-#endif
-
-#ifndef TkpSetKeycodeAndState
-# define TkpSetKeycodeAndState (*TkintdeclsVptr->V_TkpSetKeycodeAndState)
-#endif
-
-#ifndef TkpSetMainMenubar
-# define TkpSetMainMenubar (*TkintdeclsVptr->V_TkpSetMainMenubar)
-#endif
-
-#ifndef TkpUseWindow
-# define TkpUseWindow (*TkintdeclsVptr->V_TkpUseWindow)
-#endif
-
-#ifndef TkpWindowWasRecentlyDeleted
-# define TkpWindowWasRecentlyDeleted (*TkintdeclsVptr->V_TkpWindowWasRecentlyDeleted)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TKINTDECLS_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls.t
deleted file mode 100644
index b2a83a8f4fb..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls.t
+++ /dev/null
@@ -1,642 +0,0 @@
-#ifdef _TKINTDECLS
-#ifndef TkAllocWindow
-VFUNC(TkWindow *,TkAllocWindow,V_TkAllocWindow,_ANSI_ARGS_((TkDisplay * dispPtr,
- int screenNum, TkWindow * parentPtr)))
-#endif /* #ifndef TkAllocWindow */
-
-#ifndef TkBindDeadWindow
-VFUNC(void,TkBindDeadWindow,V_TkBindDeadWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkBindDeadWindow */
-
-#ifndef TkBindEventProc
-VFUNC(void,TkBindEventProc,V_TkBindEventProc,_ANSI_ARGS_((TkWindow * winPtr,
- XEvent * eventPtr)))
-#endif /* #ifndef TkBindEventProc */
-
-#ifndef TkBindFree
-VFUNC(void,TkBindFree,V_TkBindFree,_ANSI_ARGS_((TkMainInfo * mainPtr)))
-#endif /* #ifndef TkBindFree */
-
-#ifndef TkBindInit
-VFUNC(void,TkBindInit,V_TkBindInit,_ANSI_ARGS_((TkMainInfo * mainPtr)))
-#endif /* #ifndef TkBindInit */
-
-#ifndef TkChangeEventWindow
-VFUNC(void,TkChangeEventWindow,V_TkChangeEventWindow,_ANSI_ARGS_((XEvent * eventPtr,
- TkWindow * winPtr)))
-#endif /* #ifndef TkChangeEventWindow */
-
-#ifndef TkClipBox
-#ifdef MAC_OSX_TK
-VFUNC(void,TkClipBox,V_TkClipBox,_ANSI_ARGS_((TkRegion rgn,
- XRectangle* rect_return)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkClipBox,V_TkClipBox,_ANSI_ARGS_((TkRegion rgn,
- XRectangle* rect_return)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,TkClipBox,V_TkClipBox,_ANSI_ARGS_((TkRegion rgn,
- XRectangle* rect_return)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkClipBox */
-
-#ifndef TkClipCleanup
-VFUNC(void,TkClipCleanup,V_TkClipCleanup,_ANSI_ARGS_((TkDisplay * dispPtr)))
-#endif /* #ifndef TkClipCleanup */
-
-#ifndef TkClipInit
-VFUNC(int,TkClipInit,V_TkClipInit,_ANSI_ARGS_((Tcl_Interp * interp,
- TkDisplay * dispPtr)))
-#endif /* #ifndef TkClipInit */
-
-#ifndef TkComputeAnchor
-VFUNC(void,TkComputeAnchor,V_TkComputeAnchor,_ANSI_ARGS_((Tk_Anchor anchor,
- Tk_Window tkwin, int padX, int padY,
- int innerWidth, int innerHeight, int * xPtr,
- int * yPtr)))
-#endif /* #ifndef TkComputeAnchor */
-
-#ifndef TkCopyAndGlobalEval
-VFUNC(int,TkCopyAndGlobalEval,V_TkCopyAndGlobalEval,_ANSI_ARGS_((Tcl_Interp * interp,
- char * script)))
-#endif /* #ifndef TkCopyAndGlobalEval */
-
-#ifndef TkCreateBindingProcedure
-VFUNC(unsigned long,TkCreateBindingProcedure,V_TkCreateBindingProcedure,_ANSI_ARGS_((
- Tcl_Interp * interp,
- Tk_BindingTable bindingTable,
- ClientData object, CONST char * eventString,
- TkBindEvalProc * evalProc,
- TkBindFreeProc * freeProc,
- ClientData clientData)))
-#endif /* #ifndef TkCreateBindingProcedure */
-
-#ifndef TkCreateCursorFromData
-VFUNC(TkCursor *,TkCreateCursorFromData,V_TkCreateCursorFromData,_ANSI_ARGS_((Tk_Window tkwin,
- CONST char * source, CONST char * mask,
- int width, int height, int xHot, int yHot,
- XColor fg, XColor bg)))
-#endif /* #ifndef TkCreateCursorFromData */
-
-#ifndef TkCreateFrame
-VFUNC(int,TkCreateFrame,V_TkCreateFrame,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp * interp, int argc, Tcl_Obj *CONST *objv,
- int toplevel, char * appName)))
-#endif /* #ifndef TkCreateFrame */
-
-#ifndef TkCreateMainWindow
-VFUNC(Tk_Window,TkCreateMainWindow,V_TkCreateMainWindow,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * screenName, char * baseName)))
-#endif /* #ifndef TkCreateMainWindow */
-
-#ifndef TkCreateRegion
-#ifdef MAC_OSX_TK
-VFUNC(TkRegion,TkCreateRegion,V_TkCreateRegion,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(TkRegion,TkCreateRegion,V_TkCreateRegion,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(TkRegion,TkCreateRegion,V_TkCreateRegion,_ANSI_ARGS_((void)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkCreateRegion */
-
-#ifndef TkCurrentTime
-VFUNC(Time,TkCurrentTime,V_TkCurrentTime,_ANSI_ARGS_((TkDisplay * dispPtr,
- int fallbackCurrent)))
-#endif /* #ifndef TkCurrentTime */
-
-#ifndef TkDebugBitmap
-VFUNC(Tcl_Obj *,TkDebugBitmap,V_TkDebugBitmap,_ANSI_ARGS_((Tk_Window tkwin,
- char * name)))
-#endif /* #ifndef TkDebugBitmap */
-
-#ifndef TkDebugBorder
-VFUNC(Tcl_Obj *,TkDebugBorder,V_TkDebugBorder,_ANSI_ARGS_((Tk_Window tkwin,
- char * name)))
-#endif /* #ifndef TkDebugBorder */
-
-#ifndef TkDebugColor
-VFUNC(Tcl_Obj *,TkDebugColor,V_TkDebugColor,_ANSI_ARGS_((Tk_Window tkwin,
- char * name)))
-#endif /* #ifndef TkDebugColor */
-
-#ifndef TkDebugConfig
-VFUNC(Tcl_Obj *,TkDebugConfig,V_TkDebugConfig,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_OptionTable table)))
-#endif /* #ifndef TkDebugConfig */
-
-#ifndef TkDebugCursor
-VFUNC(Tcl_Obj *,TkDebugCursor,V_TkDebugCursor,_ANSI_ARGS_((Tk_Window tkwin,
- char * name)))
-#endif /* #ifndef TkDebugCursor */
-
-#ifndef TkDebugFont
-VFUNC(Tcl_Obj *,TkDebugFont,V_TkDebugFont,_ANSI_ARGS_((Tk_Window tkwin,
- char * name)))
-#endif /* #ifndef TkDebugFont */
-
-#ifndef TkDeleteAllImages
-VFUNC(void,TkDeleteAllImages,V_TkDeleteAllImages,_ANSI_ARGS_((TkMainInfo * mainPtr)))
-#endif /* #ifndef TkDeleteAllImages */
-
-#ifndef TkDestroyRegion
-#ifdef MAC_OSX_TK
-VFUNC(void,TkDestroyRegion,V_TkDestroyRegion,_ANSI_ARGS_((TkRegion rgn)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkDestroyRegion,V_TkDestroyRegion,_ANSI_ARGS_((TkRegion rgn)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,TkDestroyRegion,V_TkDestroyRegion,_ANSI_ARGS_((TkRegion rgn)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkDestroyRegion */
-
-#ifndef TkDoConfigureNotify
-VFUNC(void,TkDoConfigureNotify,V_TkDoConfigureNotify,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkDoConfigureNotify */
-
-#ifndef TkDrawInsetFocusHighlight
-VFUNC(void,TkDrawInsetFocusHighlight,V_TkDrawInsetFocusHighlight,_ANSI_ARGS_((
- Tk_Window tkwin, GC gc, int width,
- Drawable drawable, int padding)))
-#endif /* #ifndef TkDrawInsetFocusHighlight */
-
-#ifndef TkEventDeadWindow
-VFUNC(void,TkEventDeadWindow,V_TkEventDeadWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkEventDeadWindow */
-
-#ifndef TkFindStateNum
-VFUNC(int,TkFindStateNum,V_TkFindStateNum,_ANSI_ARGS_((Tcl_Interp * interp,
- CONST char * option,
- CONST TkStateMap * mapPtr,
- CONST char * strKey)))
-#endif /* #ifndef TkFindStateNum */
-
-#ifndef TkFindStateNumObj
-VFUNC(int,TkFindStateNumObj,V_TkFindStateNumObj,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * optionPtr,
- CONST TkStateMap * mapPtr, Tcl_Obj * keyPtr)))
-#endif /* #ifndef TkFindStateNumObj */
-
-#ifndef TkFindStateString
-VFUNC(char *,TkFindStateString,V_TkFindStateString,_ANSI_ARGS_((
- CONST TkStateMap * mapPtr, int numKey)))
-#endif /* #ifndef TkFindStateString */
-
-#ifndef TkFocusDeadWindow
-VFUNC(void,TkFocusDeadWindow,V_TkFocusDeadWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkFocusDeadWindow */
-
-#ifndef TkFocusFilterEvent
-VFUNC(int,TkFocusFilterEvent,V_TkFocusFilterEvent,_ANSI_ARGS_((TkWindow * winPtr,
- XEvent * eventPtr)))
-#endif /* #ifndef TkFocusFilterEvent */
-
-#ifndef TkFocusFree
-VFUNC(void,TkFocusFree,V_TkFocusFree,_ANSI_ARGS_((TkMainInfo * mainPtr)))
-#endif /* #ifndef TkFocusFree */
-
-#ifndef TkFocusKeyEvent
-VFUNC(TkWindow *,TkFocusKeyEvent,V_TkFocusKeyEvent,_ANSI_ARGS_((TkWindow * winPtr,
- XEvent * eventPtr)))
-#endif /* #ifndef TkFocusKeyEvent */
-
-#ifndef TkFontPkgFree
-VFUNC(void,TkFontPkgFree,V_TkFontPkgFree,_ANSI_ARGS_((TkMainInfo * mainPtr)))
-#endif /* #ifndef TkFontPkgFree */
-
-#ifndef TkFontPkgInit
-VFUNC(void,TkFontPkgInit,V_TkFontPkgInit,_ANSI_ARGS_((TkMainInfo * mainPtr)))
-#endif /* #ifndef TkFontPkgInit */
-
-#ifndef TkFreeBindingTags
-VFUNC(void,TkFreeBindingTags,V_TkFreeBindingTags,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkFreeBindingTags */
-
-#ifndef TkGCCleanup
-VFUNC(void,TkGCCleanup,V_TkGCCleanup,_ANSI_ARGS_((TkDisplay * dispPtr)))
-#endif /* #ifndef TkGCCleanup */
-
-#ifndef TkGetBitmapData
-VFUNC(char *,TkGetBitmapData,V_TkGetBitmapData,_ANSI_ARGS_((Tcl_Interp * interp,
- char * string, char * fileName,
- int * widthPtr, int * heightPtr,
- int * hotXPtr, int * hotYPtr)))
-#endif /* #ifndef TkGetBitmapData */
-
-#ifndef TkGetBitmapPredefTable
-VFUNC(Tcl_HashTable *,TkGetBitmapPredefTable,V_TkGetBitmapPredefTable,_ANSI_ARGS_((void)))
-#endif /* #ifndef TkGetBitmapPredefTable */
-
-#ifndef TkGetCursorByName
-VFUNC(TkCursor *,TkGetCursorByName,V_TkGetCursorByName,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tk_Uid string)))
-#endif /* #ifndef TkGetCursorByName */
-
-#ifndef TkGetDefaultScreenName
-VFUNC(CONST84_RETURN char *,TkGetDefaultScreenName,V_TkGetDefaultScreenName,_ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * screenName)))
-#endif /* #ifndef TkGetDefaultScreenName */
-
-#ifndef TkGetDisplay
-VFUNC(TkDisplay *,TkGetDisplay,V_TkGetDisplay,_ANSI_ARGS_((Display * display)))
-#endif /* #ifndef TkGetDisplay */
-
-#ifndef TkGetDisplayList
-VFUNC(TkDisplay *,TkGetDisplayList,V_TkGetDisplayList,_ANSI_ARGS_((void)))
-#endif /* #ifndef TkGetDisplayList */
-
-#ifndef TkGetDisplayOf
-VFUNC(int,TkGetDisplayOf,V_TkGetDisplayOf,_ANSI_ARGS_((Tcl_Interp * interp,
- int objc, Tcl_Obj *CONST objv[],
- Tk_Window * tkwinPtr)))
-#endif /* #ifndef TkGetDisplayOf */
-
-#ifndef TkGetFocusWin
-VFUNC(TkWindow *,TkGetFocusWin,V_TkGetFocusWin,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkGetFocusWin */
-
-#ifndef TkGetInterpNames
-VFUNC(int,TkGetInterpNames,V_TkGetInterpNames,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin)))
-#endif /* #ifndef TkGetInterpNames */
-
-#ifndef TkGetMainInfoList
-VFUNC(TkMainInfo *,TkGetMainInfoList,V_TkGetMainInfoList,_ANSI_ARGS_((void)))
-#endif /* #ifndef TkGetMainInfoList */
-
-#ifndef TkGetOptionSpec
-VFUNC(CONST Tk_OptionSpec *,TkGetOptionSpec,V_TkGetOptionSpec,_ANSI_ARGS_((CONST char * name,
- Tk_OptionTable optionTable)))
-#endif /* #ifndef TkGetOptionSpec */
-
-#ifndef TkGetPointerCoords
-VFUNC(void,TkGetPointerCoords,V_TkGetPointerCoords,_ANSI_ARGS_((Tk_Window tkwin,
- int * xPtr, int * yPtr)))
-#endif /* #ifndef TkGetPointerCoords */
-
-#ifndef TkGetServerInfo
-VFUNC(void,TkGetServerInfo,V_TkGetServerInfo,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin)))
-#endif /* #ifndef TkGetServerInfo */
-
-#ifndef TkGetWindowFromObj
-VFUNC(int,TkGetWindowFromObj,V_TkGetWindowFromObj,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj * objPtr,
- Tk_Window * windowPtr)))
-#endif /* #ifndef TkGetWindowFromObj */
-
-#ifndef TkGrabDeadWindow
-VFUNC(void,TkGrabDeadWindow,V_TkGrabDeadWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkGrabDeadWindow */
-
-#ifndef TkGrabState
-VFUNC(int,TkGrabState,V_TkGrabState,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkGrabState */
-
-#ifndef TkInOutEvents
-VFUNC(void,TkInOutEvents,V_TkInOutEvents,_ANSI_ARGS_((XEvent * eventPtr,
- TkWindow * sourcePtr, TkWindow * destPtr,
- int leaveType, int enterType,
- Tcl_QueuePosition position)))
-#endif /* #ifndef TkInOutEvents */
-
-#ifndef TkInstallFrameMenu
-VFUNC(void,TkInstallFrameMenu,V_TkInstallFrameMenu,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifndef TkInstallFrameMenu */
-
-#ifndef TkIntersectRegion
-#ifdef MAC_OSX_TK
-VFUNC(void,TkIntersectRegion,V_TkIntersectRegion,_ANSI_ARGS_((TkRegion sra,
- TkRegion srcb, TkRegion dr_return)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkIntersectRegion,V_TkIntersectRegion,_ANSI_ARGS_((TkRegion sra,
- TkRegion srcb, TkRegion dr_return)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,TkIntersectRegion,V_TkIntersectRegion,_ANSI_ARGS_((TkRegion sra,
- TkRegion srcb, TkRegion dr_return)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkIntersectRegion */
-
-#ifndef TkKeysymToString
-VFUNC(char *,TkKeysymToString,V_TkKeysymToString,_ANSI_ARGS_((KeySym keysym)))
-#endif /* #ifndef TkKeysymToString */
-
-#ifndef TkPhotoGetValidRegion
-VFUNC(TkRegion,TkPhotoGetValidRegion,V_TkPhotoGetValidRegion,_ANSI_ARGS_((
- Tk_PhotoHandle handle)))
-#endif /* #ifndef TkPhotoGetValidRegion */
-
-#ifndef TkPointerEvent
-VFUNC(int,TkPointerEvent,V_TkPointerEvent,_ANSI_ARGS_((XEvent * eventPtr,
- TkWindow * winPtr)))
-#endif /* #ifndef TkPointerEvent */
-
-#ifndef TkPositionInTree
-VFUNC(int,TkPositionInTree,V_TkPositionInTree,_ANSI_ARGS_((TkWindow * winPtr,
- TkWindow * treePtr)))
-#endif /* #ifndef TkPositionInTree */
-
-#ifndef TkQueueEventForAllChildren
-VFUNC(void,TkQueueEventForAllChildren,V_TkQueueEventForAllChildren,_ANSI_ARGS_((
- TkWindow * winPtr, XEvent * eventPtr)))
-#endif /* #ifndef TkQueueEventForAllChildren */
-
-#ifndef TkReadBitmapFile
-VFUNC(int,TkReadBitmapFile,V_TkReadBitmapFile,_ANSI_ARGS_((Tcl_Interp * interp,
- Display* display,
- Drawable d, CONST char* filename,
- unsigned int* width_return,
- unsigned int* height_return,
- Pixmap* bitmap_return, int* x_hot_return,
- int* y_hot_return)))
-#endif /* #ifndef TkReadBitmapFile */
-
-#ifndef TkRectInRegion
-#ifdef MAC_OSX_TK
-VFUNC(int,TkRectInRegion,V_TkRectInRegion,_ANSI_ARGS_((TkRegion rgn, int x,
- int y, unsigned int width,
- unsigned int height)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(int,TkRectInRegion,V_TkRectInRegion,_ANSI_ARGS_((TkRegion rgn, int x,
- int y, unsigned int width,
- unsigned int height)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(int,TkRectInRegion,V_TkRectInRegion,_ANSI_ARGS_((TkRegion rgn, int x,
- int y, unsigned int width,
- unsigned int height)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkRectInRegion */
-
-#ifndef TkScrollWindow
-VFUNC(int,TkScrollWindow,V_TkScrollWindow,_ANSI_ARGS_((Tk_Window tkwin, GC gc,
- int x, int y, int width, int height, int dx,
- int dy, TkRegion damageRgn)))
-#endif /* #ifndef TkScrollWindow */
-
-#ifndef TkSelDeadWindow
-VFUNC(void,TkSelDeadWindow,V_TkSelDeadWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkSelDeadWindow */
-
-#ifndef TkSelEventProc
-VFUNC(void,TkSelEventProc,V_TkSelEventProc,_ANSI_ARGS_((Tk_Window tkwin,
- XEvent * eventPtr)))
-#endif /* #ifndef TkSelEventProc */
-
-#ifndef TkSelInit
-VFUNC(void,TkSelInit,V_TkSelInit,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifndef TkSelInit */
-
-#ifndef TkSelPropProc
-VFUNC(void,TkSelPropProc,V_TkSelPropProc,_ANSI_ARGS_((XEvent * eventPtr)))
-#endif /* #ifndef TkSelPropProc */
-
-#ifndef TkSetFocusWin
-VFUNC(void,TkSetFocusWin,V_TkSetFocusWin,_ANSI_ARGS_((TkWindow * winPtr,
- int force)))
-#endif /* #ifndef TkSetFocusWin */
-
-#ifndef TkSetRegion
-#ifdef MAC_OSX_TK
-VFUNC(void,TkSetRegion,V_TkSetRegion,_ANSI_ARGS_((Display* display, GC gc,
- TkRegion rgn)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkSetRegion,V_TkSetRegion,_ANSI_ARGS_((Display* display, GC gc,
- TkRegion rgn)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,TkSetRegion,V_TkSetRegion,_ANSI_ARGS_((Display* display, GC gc,
- TkRegion rgn)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkSetRegion */
-
-#ifndef TkSetWindowMenuBar
-VFUNC(void,TkSetWindowMenuBar,V_TkSetWindowMenuBar,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj *oldMenuName,
- Tcl_Obj *menuName)))
-#endif /* #ifndef TkSetWindowMenuBar */
-
-#ifndef TkStringToKeysym
-VFUNC(KeySym,TkStringToKeysym,V_TkStringToKeysym,_ANSI_ARGS_((char * name)))
-#endif /* #ifndef TkStringToKeysym */
-
-#ifndef TkStylePkgFree
-VFUNC(void,TkStylePkgFree,V_TkStylePkgFree,_ANSI_ARGS_((TkMainInfo * mainPtr)))
-#endif /* #ifndef TkStylePkgFree */
-
-#ifndef TkStylePkgInit
-VFUNC(void,TkStylePkgInit,V_TkStylePkgInit,_ANSI_ARGS_((TkMainInfo * mainPtr)))
-#endif /* #ifndef TkStylePkgInit */
-
-#ifndef TkSubtractRegion
-#ifdef MAC_OSX_TK
-VFUNC(void,TkSubtractRegion,V_TkSubtractRegion,_ANSI_ARGS_((TkRegion sra,
- TkRegion srcb, TkRegion dr_return)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkSubtractRegion,V_TkSubtractRegion,_ANSI_ARGS_((TkRegion sra,
- TkRegion srcb, TkRegion dr_return)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,TkSubtractRegion,V_TkSubtractRegion,_ANSI_ARGS_((TkRegion sra,
- TkRegion srcb, TkRegion dr_return)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkSubtractRegion */
-
-#ifndef TkToplevelWindowForCommand
-VFUNC(Tk_Window,TkToplevelWindowForCommand,V_TkToplevelWindowForCommand,_ANSI_ARGS_((
- Tcl_Interp * interp, CONST char * cmdName)))
-#endif /* #ifndef TkToplevelWindowForCommand */
-
-#ifndef TkUnionRectWithRegion
-#ifdef MAC_OSX_TK
-VFUNC(void,TkUnionRectWithRegion,V_TkUnionRectWithRegion,_ANSI_ARGS_((XRectangle* rect,
- TkRegion src, TkRegion dr_return)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkUnionRectWithRegion,V_TkUnionRectWithRegion,_ANSI_ARGS_((XRectangle* rect,
- TkRegion src, TkRegion dr_return)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,TkUnionRectWithRegion,V_TkUnionRectWithRegion,_ANSI_ARGS_((XRectangle* rect,
- TkRegion src, TkRegion dr_return)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkUnionRectWithRegion */
-
-#ifndef TkWmAddToColormapWindows
-VFUNC(void,TkWmAddToColormapWindows,V_TkWmAddToColormapWindows,_ANSI_ARGS_((
- TkWindow * winPtr)))
-#endif /* #ifndef TkWmAddToColormapWindows */
-
-#ifndef TkWmDeadWindow
-VFUNC(void,TkWmDeadWindow,V_TkWmDeadWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkWmDeadWindow */
-
-#ifndef TkWmFocusToplevel
-VFUNC(TkWindow *,TkWmFocusToplevel,V_TkWmFocusToplevel,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkWmFocusToplevel */
-
-#ifndef TkWmMapWindow
-VFUNC(void,TkWmMapWindow,V_TkWmMapWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkWmMapWindow */
-
-#ifndef TkWmNewWindow
-VFUNC(void,TkWmNewWindow,V_TkWmNewWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkWmNewWindow */
-
-#ifndef TkWmProtocolEventProc
-VFUNC(void,TkWmProtocolEventProc,V_TkWmProtocolEventProc,_ANSI_ARGS_((TkWindow * winPtr,
- XEvent * evenvPtr)))
-#endif /* #ifndef TkWmProtocolEventProc */
-
-#ifndef TkWmRemoveFromColormapWindows
-VFUNC(void,TkWmRemoveFromColormapWindows,V_TkWmRemoveFromColormapWindows,_ANSI_ARGS_((
- TkWindow * winPtr)))
-#endif /* #ifndef TkWmRemoveFromColormapWindows */
-
-#ifndef TkWmRestackToplevel
-VFUNC(void,TkWmRestackToplevel,V_TkWmRestackToplevel,_ANSI_ARGS_((TkWindow * winPtr,
- int aboveBelow, TkWindow * otherPtr)))
-#endif /* #ifndef TkWmRestackToplevel */
-
-#ifndef TkWmSetClass
-VFUNC(void,TkWmSetClass,V_TkWmSetClass,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkWmSetClass */
-
-#ifndef TkWmStackorderToplevel
-VFUNC(TkWindow **,TkWmStackorderToplevel,V_TkWmStackorderToplevel,_ANSI_ARGS_((
- TkWindow * parentPtr)))
-#endif /* #ifndef TkWmStackorderToplevel */
-
-#ifndef TkWmUnmapWindow
-VFUNC(void,TkWmUnmapWindow,V_TkWmUnmapWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkWmUnmapWindow */
-
-#ifndef TkpChangeFocus
-VFUNC(int,TkpChangeFocus,V_TkpChangeFocus,_ANSI_ARGS_((TkWindow * winPtr,
- int force)))
-#endif /* #ifndef TkpChangeFocus */
-
-#ifndef TkpClaimFocus
-VFUNC(void,TkpClaimFocus,V_TkpClaimFocus,_ANSI_ARGS_((TkWindow * topLevelPtr,
- int force)))
-#endif /* #ifndef TkpClaimFocus */
-
-#ifndef TkpCloseDisplay
-VFUNC(void,TkpCloseDisplay,V_TkpCloseDisplay,_ANSI_ARGS_((TkDisplay * dispPtr)))
-#endif /* #ifndef TkpCloseDisplay */
-
-#ifndef TkpDisplayWarning
-VFUNC(void,TkpDisplayWarning,V_TkpDisplayWarning,_ANSI_ARGS_((CONST char * msg,
- CONST char * title)))
-#endif /* #ifndef TkpDisplayWarning */
-
-#ifndef TkpDrawHighlightBorder
-VFUNC(void,TkpDrawHighlightBorder,V_TkpDrawHighlightBorder,_ANSI_ARGS_((Tk_Window tkwin,
- GC fgGC, GC bgGC, int highlightWidth,
- Drawable drawable)))
-#endif /* #ifndef TkpDrawHighlightBorder */
-
-#ifndef TkpFreeCursor
-VFUNC(void,TkpFreeCursor,V_TkpFreeCursor,_ANSI_ARGS_((TkCursor * cursorPtr)))
-#endif /* #ifndef TkpFreeCursor */
-
-#ifndef TkpGetKeySym
-VFUNC(KeySym,TkpGetKeySym,V_TkpGetKeySym,_ANSI_ARGS_((TkDisplay * dispPtr,
- XEvent * eventPtr)))
-#endif /* #ifndef TkpGetKeySym */
-
-#ifndef TkpGetOtherWindow
-VFUNC(TkWindow *,TkpGetOtherWindow,V_TkpGetOtherWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkpGetOtherWindow */
-
-#ifndef TkpGetString
-VFUNC(char *,TkpGetString,V_TkpGetString,_ANSI_ARGS_((TkWindow * winPtr,
- XEvent * eventPtr, Tcl_DString * dsPtr)))
-#endif /* #ifndef TkpGetString */
-
-#ifndef TkpGetSubFonts
-VFUNC(void,TkpGetSubFonts,V_TkpGetSubFonts,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Font tkfont)))
-#endif /* #ifndef TkpGetSubFonts */
-
-#ifndef TkpGetSystemDefault
-VFUNC(Tcl_Obj *,TkpGetSystemDefault,V_TkpGetSystemDefault,_ANSI_ARGS_((Tk_Window tkwin,
- CONST char * dbName, CONST char * className)))
-#endif /* #ifndef TkpGetSystemDefault */
-
-#ifndef TkpGetWrapperWindow
-VFUNC(TkWindow *,TkpGetWrapperWindow,V_TkpGetWrapperWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifndef TkpGetWrapperWindow */
-
-#ifndef TkpInitKeymapInfo
-VFUNC(void,TkpInitKeymapInfo,V_TkpInitKeymapInfo,_ANSI_ARGS_((TkDisplay * dispPtr)))
-#endif /* #ifndef TkpInitKeymapInfo */
-
-#ifndef TkpInitializeMenuBindings
-VFUNC(void,TkpInitializeMenuBindings,V_TkpInitializeMenuBindings,_ANSI_ARGS_((
- Tcl_Interp * interp,
- Tk_BindingTable bindingTable)))
-#endif /* #ifndef TkpInitializeMenuBindings */
-
-#ifndef TkpMakeContainer
-VFUNC(void,TkpMakeContainer,V_TkpMakeContainer,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifndef TkpMakeContainer */
-
-#ifndef TkpMakeMenuWindow
-VFUNC(void,TkpMakeMenuWindow,V_TkpMakeMenuWindow,_ANSI_ARGS_((Tk_Window tkwin,
- int transient)))
-#endif /* #ifndef TkpMakeMenuWindow */
-
-#ifndef TkpMakeWindow
-VFUNC(Window,TkpMakeWindow,V_TkpMakeWindow,_ANSI_ARGS_((TkWindow * winPtr,
- Window parent)))
-#endif /* #ifndef TkpMakeWindow */
-
-#ifndef TkpMenuNotifyToplevelCreate
-VFUNC(void,TkpMenuNotifyToplevelCreate,V_TkpMenuNotifyToplevelCreate,_ANSI_ARGS_((
- Tcl_Interp * interp1, char * menuName)))
-#endif /* #ifndef TkpMenuNotifyToplevelCreate */
-
-#ifndef TkpMenuThreadInit
-VFUNC(void,TkpMenuThreadInit,V_TkpMenuThreadInit,_ANSI_ARGS_((void)))
-#endif /* #ifndef TkpMenuThreadInit */
-
-#ifndef TkpOpenDisplay
-VFUNC(TkDisplay *,TkpOpenDisplay,V_TkpOpenDisplay,_ANSI_ARGS_((
- CONST char * display_name)))
-#endif /* #ifndef TkpOpenDisplay */
-
-#ifndef TkpRedirectKeyEvent
-VFUNC(void,TkpRedirectKeyEvent,V_TkpRedirectKeyEvent,_ANSI_ARGS_((TkWindow * winPtr,
- XEvent * eventPtr)))
-#endif /* #ifndef TkpRedirectKeyEvent */
-
-#ifndef TkpSetKeycodeAndState
-VFUNC(void,TkpSetKeycodeAndState,V_TkpSetKeycodeAndState,_ANSI_ARGS_((Tk_Window tkwin,
- KeySym keySym, XEvent * eventPtr)))
-#endif /* #ifndef TkpSetKeycodeAndState */
-
-#ifndef TkpSetMainMenubar
-VFUNC(void,TkpSetMainMenubar,V_TkpSetMainMenubar,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, char * menuName)))
-#endif /* #ifndef TkpSetMainMenubar */
-
-#ifndef TkpUseWindow
-VFUNC(int,TkpUseWindow,V_TkpUseWindow,_ANSI_ARGS_((Tcl_Interp * interp,
- Tk_Window tkwin, Tcl_Obj *string)))
-#endif /* #ifndef TkpUseWindow */
-
-#ifndef TkpWindowWasRecentlyDeleted
-VFUNC(int,TkpWindowWasRecentlyDeleted,V_TkpWindowWasRecentlyDeleted,_ANSI_ARGS_((Window win,
- TkDisplay * dispPtr)))
-#endif /* #ifndef TkpWindowWasRecentlyDeleted */
-
-#endif /* _TKINTDECLS */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls_f.h
deleted file mode 100644
index 3300cb56427..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntDecls_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TKINTDECLS_VT
-#define TKINTDECLS_VT
-typedef struct TkintdeclsVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tkIntDecls.t"
-#undef VFUNC
-#undef VVAR
-} TkintdeclsVtab;
-extern TkintdeclsVtab *TkintdeclsVptr;
-extern TkintdeclsVtab *TkintdeclsVGet(void);
-#endif /* TKINTDECLS_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls.h
deleted file mode 100644
index 9636f05867b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls.h
+++ /dev/null
@@ -1,1227 +0,0 @@
-/*
- * tkIntPlatDecls.h --
- *
- * This file contains the declarations for all platform dependent
- * unsupported functions that are exported by the Tk library. These
- * interfaces are not guaranteed to remain the same between
- * versions. Use at your own risk.
- *
- * Copyright (c) 1998-1999 by Scriptics Corporation.
- * All rights reserved.
- *
- * RCS: @(#) $Id: tkIntPlatDecls.h,v 1.15 2002/12/08 00:46:51 hobbs Exp $
- */
-
-#ifndef _TKINTPLATDECLS
-#define _TKINTPLATDECLS
-
-#ifdef BUILD_tk
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * WARNING: This file is automatically generated by the tools/genStubs.tcl
- * script. Any modifications to the function declarations below should be made
- * in the generic/tkInt.decls script.
- */
-
-/* !BEGIN!: Do not edit below this line. */
-
-/*
- * Exported function declarations:
- */
-
-#ifdef __WIN32__
-/* 0 */
-EXTERN char * TkAlignImageData _ANSI_ARGS_((XImage * image,
- int alignment, int bitOrder));
-/* Slot 1 is reserved */
-/* 2 */
-EXTERN void TkGenerateActivateEvents _ANSI_ARGS_((
- TkWindow * winPtr, int active));
-/* 3 */
-EXTERN unsigned long TkpGetMS _ANSI_ARGS_((void));
-/* 4 */
-EXTERN void TkPointerDeadWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 5 */
-EXTERN void TkpPrintWindowId _ANSI_ARGS_((char * buf,
- Window window));
-/* 6 */
-EXTERN int TkpScanWindowId _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * string, Window * idPtr));
-/* 7 */
-EXTERN void TkpSetCapture _ANSI_ARGS_((TkWindow * winPtr));
-/* 8 */
-EXTERN void TkpSetCursor _ANSI_ARGS_((TkpCursor cursor));
-/* 9 */
-EXTERN void TkpWmSetState _ANSI_ARGS_((TkWindow * winPtr,
- int state));
-/* 10 */
-EXTERN void TkSetPixmapColormap _ANSI_ARGS_((Pixmap pixmap,
- Colormap colormap));
-/* 11 */
-EXTERN void TkWinCancelMouseTimer _ANSI_ARGS_((void));
-/* 12 */
-EXTERN void TkWinClipboardRender _ANSI_ARGS_((
- TkDisplay * dispPtr, UINT format));
-/* 13 */
-EXTERN LRESULT TkWinEmbeddedEventProc _ANSI_ARGS_((HWND hwnd,
- UINT message, WPARAM wParam, LPARAM lParam));
-/* 14 */
-EXTERN void TkWinFillRect _ANSI_ARGS_((HDC dc, int x, int y,
- int width, int height, int pixel));
-/* 15 */
-EXTERN COLORREF TkWinGetBorderPixels _ANSI_ARGS_((Tk_Window tkwin,
- Tk_3DBorder border, int which));
-/* 16 */
-EXTERN HDC TkWinGetDrawableDC _ANSI_ARGS_((Display * display,
- Drawable d, TkWinDCState* state));
-/* 17 */
-EXTERN int TkWinGetModifierState _ANSI_ARGS_((void));
-/* 18 */
-EXTERN HPALETTE TkWinGetSystemPalette _ANSI_ARGS_((void));
-/* 19 */
-EXTERN HWND TkWinGetWrapperWindow _ANSI_ARGS_((Tk_Window tkwin));
-/* 20 */
-EXTERN int TkWinHandleMenuEvent _ANSI_ARGS_((HWND * phwnd,
- UINT * pMessage, WPARAM * pwParam,
- LPARAM * plParam, LRESULT * plResult));
-/* 21 */
-EXTERN int TkWinIndexOfColor _ANSI_ARGS_((XColor * colorPtr));
-/* 22 */
-EXTERN void TkWinReleaseDrawableDC _ANSI_ARGS_((Drawable d,
- HDC hdc, TkWinDCState* state));
-/* 23 */
-EXTERN LRESULT TkWinResendEvent _ANSI_ARGS_((WNDPROC wndproc,
- HWND hwnd, XEvent * eventPtr));
-/* 24 */
-EXTERN HPALETTE TkWinSelectPalette _ANSI_ARGS_((HDC dc,
- Colormap colormap));
-/* 25 */
-EXTERN void TkWinSetMenu _ANSI_ARGS_((Tk_Window tkwin,
- HMENU hMenu));
-/* 26 */
-EXTERN void TkWinSetWindowPos _ANSI_ARGS_((HWND hwnd,
- HWND siblingHwnd, int pos));
-/* 27 */
-EXTERN void TkWinWmCleanup _ANSI_ARGS_((HINSTANCE hInstance));
-/* 28 */
-EXTERN void TkWinXCleanup _ANSI_ARGS_((HINSTANCE hInstance));
-/* 29 */
-EXTERN void TkWinXInit _ANSI_ARGS_((HINSTANCE hInstance));
-/* 30 */
-EXTERN void TkWinSetForegroundWindow _ANSI_ARGS_((
- TkWindow * winPtr));
-/* 31 */
-EXTERN void TkWinDialogDebug _ANSI_ARGS_((int debug));
-/* 32 */
-EXTERN Tcl_Obj * TkWinGetMenuSystemDefault _ANSI_ARGS_((
- Tk_Window tkwin, CONST char * dbName,
- CONST char * className));
-/* 33 */
-EXTERN int TkWinGetPlatformId _ANSI_ARGS_((void));
-/* 34 */
-EXTERN void TkWinSetHINSTANCE _ANSI_ARGS_((HINSTANCE hInstance));
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-/* 0 */
-EXTERN void TkGenerateActivateEvents _ANSI_ARGS_((
- TkWindow * winPtr, int active));
-/* Slot 1 is reserved */
-/* Slot 2 is reserved */
-/* 3 */
-EXTERN unsigned long TkpGetMS _ANSI_ARGS_((void));
-/* Slot 4 is reserved */
-/* 5 */
-EXTERN void TkPointerDeadWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 6 */
-EXTERN void TkpSetCapture _ANSI_ARGS_((TkWindow * winPtr));
-/* 7 */
-EXTERN void TkpSetCursor _ANSI_ARGS_((TkpCursor cursor));
-/* 8 */
-EXTERN void TkpWmSetState _ANSI_ARGS_((TkWindow * winPtr,
- int state));
-/* Slot 9 is reserved */
-/* 10 */
-EXTERN void TkAboutDlg _ANSI_ARGS_((void));
-/* Slot 11 is reserved */
-/* Slot 12 is reserved */
-/* 13 */
-EXTERN Window TkGetTransientMaster _ANSI_ARGS_((TkWindow * winPtr));
-/* 14 */
-EXTERN int TkGenerateButtonEvent _ANSI_ARGS_((int x, int y,
- Window window, unsigned int state));
-/* Slot 15 is reserved */
-/* 16 */
-EXTERN void TkGenWMDestroyEvent _ANSI_ARGS_((Tk_Window tkwin));
-/* Slot 17 is reserved */
-/* 18 */
-EXTERN unsigned int TkMacButtonKeyState _ANSI_ARGS_((void));
-/* 19 */
-EXTERN void TkMacClearMenubarActive _ANSI_ARGS_((void));
-/* Slot 20 is reserved */
-/* 21 */
-EXTERN int TkMacDispatchMenuEvent _ANSI_ARGS_((int menuID,
- int index));
-/* 22 */
-EXTERN void TkMacInstallCursor _ANSI_ARGS_((int resizeOverride));
-/* Slot 23 is reserved */
-/* 24 */
-EXTERN void TkMacHandleTearoffMenu _ANSI_ARGS_((void));
-/* Slot 25 is reserved */
-/* Slot 26 is reserved */
-/* 27 */
-EXTERN void TkMacDoHLEvent _ANSI_ARGS_((EventRecord * theEvent));
-/* Slot 28 is reserved */
-/* 29 */
-EXTERN Time TkMacGenerateTime _ANSI_ARGS_((void));
-/* Slot 30 is reserved */
-/* 31 */
-EXTERN TkWindow * TkMacGetScrollbarGrowWindow _ANSI_ARGS_((
- TkWindow * winPtr));
-/* 32 */
-EXTERN Window TkMacGetXWindow _ANSI_ARGS_((WindowRef macWinPtr));
-/* 33 */
-EXTERN int TkMacGrowToplevel _ANSI_ARGS_((WindowRef whichWindow,
- Point start));
-/* 34 */
-EXTERN void TkMacHandleMenuSelect _ANSI_ARGS_((long mResult,
- int optionKeyPressed));
-/* Slot 35 is reserved */
-/* Slot 36 is reserved */
-/* Slot 37 is reserved */
-/* 38 */
-EXTERN void TkMacInvalidateWindow _ANSI_ARGS_((
- MacDrawable * macWin, int flag));
-/* 39 */
-EXTERN int TkMacIsCharacterMissing _ANSI_ARGS_((Tk_Font tkfont,
- unsigned int searchChar));
-/* 40 */
-EXTERN void TkMacMakeRealWindowExist _ANSI_ARGS_((
- TkWindow * winPtr));
-/* 41 */
-EXTERN BitMapPtr TkMacMakeStippleMap _ANSI_ARGS_((Drawable d1,
- Drawable d2));
-/* 42 */
-EXTERN void TkMacMenuClick _ANSI_ARGS_((void));
-/* 43 */
-EXTERN void TkMacRegisterOffScreenWindow _ANSI_ARGS_((
- Window window, GWorldPtr portPtr));
-/* 44 */
-EXTERN int TkMacResizable _ANSI_ARGS_((TkWindow * winPtr));
-/* Slot 45 is reserved */
-/* 46 */
-EXTERN void TkMacSetHelpMenuItemCount _ANSI_ARGS_((void));
-/* 47 */
-EXTERN void TkMacSetScrollbarGrow _ANSI_ARGS_((TkWindow * winPtr,
- int flag));
-/* 48 */
-EXTERN void TkMacSetUpClippingRgn _ANSI_ARGS_((Drawable drawable));
-/* 49 */
-EXTERN void TkMacSetUpGraphicsPort _ANSI_ARGS_((GC gc));
-/* 50 */
-EXTERN void TkMacUpdateClipRgn _ANSI_ARGS_((TkWindow * winPtr));
-/* 51 */
-EXTERN void TkMacUnregisterMacWindow _ANSI_ARGS_((
- GWorldPtr portPtr));
-/* 52 */
-EXTERN int TkMacUseMenuID _ANSI_ARGS_((short macID));
-/* 53 */
-EXTERN RgnHandle TkMacVisableClipRgn _ANSI_ARGS_((TkWindow * winPtr));
-/* 54 */
-EXTERN void TkMacWinBounds _ANSI_ARGS_((TkWindow * winPtr,
- Rect * geometry));
-/* 55 */
-EXTERN void TkMacWindowOffset _ANSI_ARGS_((WindowRef wRef,
- int * xOffset, int * yOffset));
-/* Slot 56 is reserved */
-/* 57 */
-EXTERN int TkSetMacColor _ANSI_ARGS_((unsigned long pixel,
- RGBColor * macColor));
-/* 58 */
-EXTERN void TkSetWMName _ANSI_ARGS_((TkWindow * winPtr,
- Tk_Uid titleUid));
-/* 59 */
-EXTERN void TkSuspendClipboard _ANSI_ARGS_((void));
-/* Slot 60 is reserved */
-/* 61 */
-EXTERN int TkMacZoomToplevel _ANSI_ARGS_((WindowPtr whichWindow,
- Point where, short zoomPart));
-/* 62 */
-EXTERN Tk_Window Tk_TopCoordsToWindow _ANSI_ARGS_((Tk_Window tkwin,
- int rootX, int rootY, int * newX, int * newY));
-/* 63 */
-EXTERN MacDrawable * TkMacContainerId _ANSI_ARGS_((TkWindow * winPtr));
-/* 64 */
-EXTERN MacDrawable * TkMacGetHostToplevel _ANSI_ARGS_((TkWindow * winPtr));
-/* 65 */
-EXTERN void TkMacPreprocessMenu _ANSI_ARGS_((void));
-/* 66 */
-EXTERN int TkpIsWindowFloating _ANSI_ARGS_((WindowRef window));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 0 */
-EXTERN void TkGenerateActivateEvents _ANSI_ARGS_((
- TkWindow * winPtr, int active));
-/* Slot 1 is reserved */
-/* Slot 2 is reserved */
-/* 3 */
-EXTERN void TkPointerDeadWindow _ANSI_ARGS_((TkWindow * winPtr));
-/* 4 */
-EXTERN void TkpSetCapture _ANSI_ARGS_((TkWindow * winPtr));
-/* 5 */
-EXTERN void TkpSetCursor _ANSI_ARGS_((TkpCursor cursor));
-/* 6 */
-EXTERN void TkpWmSetState _ANSI_ARGS_((TkWindow * winPtr,
- int state));
-/* 7 */
-EXTERN void TkAboutDlg _ANSI_ARGS_((void));
-/* 8 */
-EXTERN unsigned int TkMacOSXButtonKeyState _ANSI_ARGS_((void));
-/* 9 */
-EXTERN void TkMacOSXClearMenubarActive _ANSI_ARGS_((void));
-/* 10 */
-EXTERN int TkMacOSXDispatchMenuEvent _ANSI_ARGS_((int menuID,
- int index));
-/* 11 */
-EXTERN void TkMacOSXInstallCursor _ANSI_ARGS_((
- int resizeOverride));
-/* 12 */
-EXTERN void TkMacOSXHandleTearoffMenu _ANSI_ARGS_((void));
-/* Slot 13 is reserved */
-/* 14 */
-EXTERN int TkMacOSXDoHLEvent _ANSI_ARGS_((
- EventRecord * theEvent));
-/* Slot 15 is reserved */
-/* 16 */
-EXTERN Window TkMacOSXGetXWindow _ANSI_ARGS_((WindowRef macWinPtr));
-/* 17 */
-EXTERN int TkMacOSXGrowToplevel _ANSI_ARGS_((
- WindowRef whichWindow, Point start));
-/* 18 */
-EXTERN void TkMacOSXHandleMenuSelect _ANSI_ARGS_((long mResult,
- int optionKeyPressed));
-/* Slot 19 is reserved */
-/* Slot 20 is reserved */
-/* 21 */
-EXTERN void TkMacOSXInvalidateWindow _ANSI_ARGS_((
- MacDrawable * macWin, int flag));
-/* 22 */
-EXTERN int TkMacOSXIsCharacterMissing _ANSI_ARGS_((
- Tk_Font tkfont, unsigned int searchChar));
-/* 23 */
-EXTERN void TkMacOSXMakeRealWindowExist _ANSI_ARGS_((
- TkWindow * winPtr));
-/* 24 */
-EXTERN BitMapPtr TkMacOSXMakeStippleMap _ANSI_ARGS_((Drawable d1,
- Drawable d2));
-/* 25 */
-EXTERN void TkMacOSXMenuClick _ANSI_ARGS_((void));
-/* 26 */
-EXTERN void TkMacOSXRegisterOffScreenWindow _ANSI_ARGS_((
- Window window, GWorldPtr portPtr));
-/* 27 */
-EXTERN int TkMacOSXResizable _ANSI_ARGS_((TkWindow * winPtr));
-/* 28 */
-EXTERN void TkMacOSXSetHelpMenuItemCount _ANSI_ARGS_((void));
-/* 29 */
-EXTERN void TkMacOSXSetScrollbarGrow _ANSI_ARGS_((
- TkWindow * winPtr, int flag));
-/* 30 */
-EXTERN void TkMacOSXSetUpClippingRgn _ANSI_ARGS_((
- Drawable drawable));
-/* 31 */
-EXTERN void TkMacOSXSetUpGraphicsPort _ANSI_ARGS_((GC gc,
- GWorldPtr destPort));
-/* 32 */
-EXTERN void TkMacOSXUpdateClipRgn _ANSI_ARGS_((TkWindow * winPtr));
-/* 33 */
-EXTERN void TkMacOSXUnregisterMacWindow _ANSI_ARGS_((
- WindowRef portPtr));
-/* 34 */
-EXTERN int TkMacOSXUseMenuID _ANSI_ARGS_((short macID));
-/* 35 */
-EXTERN RgnHandle TkMacOSXVisableClipRgn _ANSI_ARGS_((
- TkWindow * winPtr));
-/* 36 */
-EXTERN void TkMacOSXWinBounds _ANSI_ARGS_((TkWindow * winPtr,
- Rect * geometry));
-/* 37 */
-EXTERN void TkMacOSXWindowOffset _ANSI_ARGS_((WindowRef wRef,
- int * xOffset, int * yOffset));
-/* 38 */
-EXTERN int TkSetMacColor _ANSI_ARGS_((unsigned long pixel,
- RGBColor * macColor));
-/* 39 */
-EXTERN void TkSetWMName _ANSI_ARGS_((TkWindow * winPtr,
- Tk_Uid titleUid));
-/* 40 */
-EXTERN void TkSuspendClipboard _ANSI_ARGS_((void));
-/* 41 */
-EXTERN int TkMacOSXZoomToplevel _ANSI_ARGS_((
- WindowPtr whichWindow, Point where,
- short zoomPart));
-/* 42 */
-EXTERN Tk_Window Tk_TopCoordsToWindow _ANSI_ARGS_((Tk_Window tkwin,
- int rootX, int rootY, int * newX, int * newY));
-/* 43 */
-EXTERN MacDrawable * TkMacOSXContainerId _ANSI_ARGS_((TkWindow * winPtr));
-/* 44 */
-EXTERN MacDrawable * TkMacOSXGetHostToplevel _ANSI_ARGS_((
- TkWindow * winPtr));
-/* 45 */
-EXTERN void TkMacOSXPreprocessMenu _ANSI_ARGS_((void));
-/* 46 */
-EXTERN int TkpIsWindowFloating _ANSI_ARGS_((WindowRef window));
-/* 47 */
-EXTERN Tk_Window TkMacOSXGetCapture _ANSI_ARGS_((void));
-/* Slot 48 is reserved */
-/* 49 */
-EXTERN Window TkGetTransientMaster _ANSI_ARGS_((TkWindow * winPtr));
-/* 50 */
-EXTERN int TkGenerateButtonEvent _ANSI_ARGS_((int x, int y,
- Window window, unsigned int state));
-/* 51 */
-EXTERN void TkGenWMDestroyEvent _ANSI_ARGS_((Tk_Window tkwin));
-/* Slot 52 is reserved */
-/* 53 */
-EXTERN unsigned long TkpGetMS _ANSI_ARGS_((void));
-#endif /* MAC_OSX_TK */
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) /* X11 */
-/* 0 */
-EXTERN void TkCreateXEventSource _ANSI_ARGS_((void));
-/* 1 */
-EXTERN void TkFreeWindowId _ANSI_ARGS_((TkDisplay * dispPtr,
- Window w));
-/* 2 */
-EXTERN void TkInitXId _ANSI_ARGS_((TkDisplay * dispPtr));
-/* 3 */
-EXTERN int TkpCmapStressed _ANSI_ARGS_((Tk_Window tkwin,
- Colormap colormap));
-/* 4 */
-EXTERN void TkpSync _ANSI_ARGS_((Display * display));
-/* 5 */
-EXTERN Window TkUnixContainerId _ANSI_ARGS_((TkWindow * winPtr));
-/* 6 */
-EXTERN int TkUnixDoOneXEvent _ANSI_ARGS_((Tcl_Time * timePtr));
-/* 7 */
-EXTERN void TkUnixSetMenubar _ANSI_ARGS_((Tk_Window tkwin,
- Tk_Window menubar));
-/* 8 */
-EXTERN int TkpScanWindowId _ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj *string, Window * idPtr));
-/* 9 */
-EXTERN void TkWmCleanup _ANSI_ARGS_((TkDisplay * dispPtr));
-/* 10 */
-EXTERN void TkSendCleanup _ANSI_ARGS_((TkDisplay * dispPtr));
-/* 11 */
-EXTERN void TkFreeXId _ANSI_ARGS_((TkDisplay * dispPtr));
-/* 12 */
-EXTERN int TkpWmSetState _ANSI_ARGS_((TkWindow * winPtr,
- int state));
-#endif /* X11 */
-
-typedef struct TkIntPlatStubs {
- int magic;
- struct TkIntPlatStubHooks *hooks;
-
-#ifdef __WIN32__
- char * (*tkAlignImageData) _ANSI_ARGS_((XImage * image, int alignment, int bitOrder)); /* 0 */
- void *reserved1;
- void (*tkGenerateActivateEvents) _ANSI_ARGS_((TkWindow * winPtr, int active)); /* 2 */
- unsigned long (*tkpGetMS) _ANSI_ARGS_((void)); /* 3 */
- void (*tkPointerDeadWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 4 */
- void (*tkpPrintWindowId) _ANSI_ARGS_((char * buf, Window window)); /* 5 */
- int (*tkpScanWindowId) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string, Window * idPtr)); /* 6 */
- void (*tkpSetCapture) _ANSI_ARGS_((TkWindow * winPtr)); /* 7 */
- void (*tkpSetCursor) _ANSI_ARGS_((TkpCursor cursor)); /* 8 */
- void (*tkpWmSetState) _ANSI_ARGS_((TkWindow * winPtr, int state)); /* 9 */
- void (*tkSetPixmapColormap) _ANSI_ARGS_((Pixmap pixmap, Colormap colormap)); /* 10 */
- void (*tkWinCancelMouseTimer) _ANSI_ARGS_((void)); /* 11 */
- void (*tkWinClipboardRender) _ANSI_ARGS_((TkDisplay * dispPtr, UINT format)); /* 12 */
- LRESULT (*tkWinEmbeddedEventProc) _ANSI_ARGS_((HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)); /* 13 */
- void (*tkWinFillRect) _ANSI_ARGS_((HDC dc, int x, int y, int width, int height, int pixel)); /* 14 */
- COLORREF (*tkWinGetBorderPixels) _ANSI_ARGS_((Tk_Window tkwin, Tk_3DBorder border, int which)); /* 15 */
- HDC (*tkWinGetDrawableDC) _ANSI_ARGS_((Display * display, Drawable d, TkWinDCState* state)); /* 16 */
- int (*tkWinGetModifierState) _ANSI_ARGS_((void)); /* 17 */
- HPALETTE (*tkWinGetSystemPalette) _ANSI_ARGS_((void)); /* 18 */
- HWND (*tkWinGetWrapperWindow) _ANSI_ARGS_((Tk_Window tkwin)); /* 19 */
- int (*tkWinHandleMenuEvent) _ANSI_ARGS_((HWND * phwnd, UINT * pMessage, WPARAM * pwParam, LPARAM * plParam, LRESULT * plResult)); /* 20 */
- int (*tkWinIndexOfColor) _ANSI_ARGS_((XColor * colorPtr)); /* 21 */
- void (*tkWinReleaseDrawableDC) _ANSI_ARGS_((Drawable d, HDC hdc, TkWinDCState* state)); /* 22 */
- LRESULT (*tkWinResendEvent) _ANSI_ARGS_((WNDPROC wndproc, HWND hwnd, XEvent * eventPtr)); /* 23 */
- HPALETTE (*tkWinSelectPalette) _ANSI_ARGS_((HDC dc, Colormap colormap)); /* 24 */
- void (*tkWinSetMenu) _ANSI_ARGS_((Tk_Window tkwin, HMENU hMenu)); /* 25 */
- void (*tkWinSetWindowPos) _ANSI_ARGS_((HWND hwnd, HWND siblingHwnd, int pos)); /* 26 */
- void (*tkWinWmCleanup) _ANSI_ARGS_((HINSTANCE hInstance)); /* 27 */
- void (*tkWinXCleanup) _ANSI_ARGS_((HINSTANCE hInstance)); /* 28 */
- void (*tkWinXInit) _ANSI_ARGS_((HINSTANCE hInstance)); /* 29 */
- void (*tkWinSetForegroundWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 30 */
- void (*tkWinDialogDebug) _ANSI_ARGS_((int debug)); /* 31 */
- Tcl_Obj * (*tkWinGetMenuSystemDefault) _ANSI_ARGS_((Tk_Window tkwin, CONST char * dbName, CONST char * className)); /* 32 */
- int (*tkWinGetPlatformId) _ANSI_ARGS_((void)); /* 33 */
- void (*tkWinSetHINSTANCE) _ANSI_ARGS_((HINSTANCE hInstance)); /* 34 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void (*tkGenerateActivateEvents) _ANSI_ARGS_((TkWindow * winPtr, int active)); /* 0 */
- void *reserved1;
- void *reserved2;
- unsigned long (*tkpGetMS) _ANSI_ARGS_((void)); /* 3 */
- void *reserved4;
- void (*tkPointerDeadWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 5 */
- void (*tkpSetCapture) _ANSI_ARGS_((TkWindow * winPtr)); /* 6 */
- void (*tkpSetCursor) _ANSI_ARGS_((TkpCursor cursor)); /* 7 */
- void (*tkpWmSetState) _ANSI_ARGS_((TkWindow * winPtr, int state)); /* 8 */
- void *reserved9;
- void (*tkAboutDlg) _ANSI_ARGS_((void)); /* 10 */
- void *reserved11;
- void *reserved12;
- Window (*tkGetTransientMaster) _ANSI_ARGS_((TkWindow * winPtr)); /* 13 */
- int (*tkGenerateButtonEvent) _ANSI_ARGS_((int x, int y, Window window, unsigned int state)); /* 14 */
- void *reserved15;
- void (*tkGenWMDestroyEvent) _ANSI_ARGS_((Tk_Window tkwin)); /* 16 */
- void *reserved17;
- unsigned int (*tkMacButtonKeyState) _ANSI_ARGS_((void)); /* 18 */
- void (*tkMacClearMenubarActive) _ANSI_ARGS_((void)); /* 19 */
- void *reserved20;
- int (*tkMacDispatchMenuEvent) _ANSI_ARGS_((int menuID, int index)); /* 21 */
- void (*tkMacInstallCursor) _ANSI_ARGS_((int resizeOverride)); /* 22 */
- void *reserved23;
- void (*tkMacHandleTearoffMenu) _ANSI_ARGS_((void)); /* 24 */
- void *reserved25;
- void *reserved26;
- void (*tkMacDoHLEvent) _ANSI_ARGS_((EventRecord * theEvent)); /* 27 */
- void *reserved28;
- Time (*tkMacGenerateTime) _ANSI_ARGS_((void)); /* 29 */
- void *reserved30;
- TkWindow * (*tkMacGetScrollbarGrowWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 31 */
- Window (*tkMacGetXWindow) _ANSI_ARGS_((WindowRef macWinPtr)); /* 32 */
- int (*tkMacGrowToplevel) _ANSI_ARGS_((WindowRef whichWindow, Point start)); /* 33 */
- void (*tkMacHandleMenuSelect) _ANSI_ARGS_((long mResult, int optionKeyPressed)); /* 34 */
- void *reserved35;
- void *reserved36;
- void *reserved37;
- void (*tkMacInvalidateWindow) _ANSI_ARGS_((MacDrawable * macWin, int flag)); /* 38 */
- int (*tkMacIsCharacterMissing) _ANSI_ARGS_((Tk_Font tkfont, unsigned int searchChar)); /* 39 */
- void (*tkMacMakeRealWindowExist) _ANSI_ARGS_((TkWindow * winPtr)); /* 40 */
- BitMapPtr (*tkMacMakeStippleMap) _ANSI_ARGS_((Drawable d1, Drawable d2)); /* 41 */
- void (*tkMacMenuClick) _ANSI_ARGS_((void)); /* 42 */
- void (*tkMacRegisterOffScreenWindow) _ANSI_ARGS_((Window window, GWorldPtr portPtr)); /* 43 */
- int (*tkMacResizable) _ANSI_ARGS_((TkWindow * winPtr)); /* 44 */
- void *reserved45;
- void (*tkMacSetHelpMenuItemCount) _ANSI_ARGS_((void)); /* 46 */
- void (*tkMacSetScrollbarGrow) _ANSI_ARGS_((TkWindow * winPtr, int flag)); /* 47 */
- void (*tkMacSetUpClippingRgn) _ANSI_ARGS_((Drawable drawable)); /* 48 */
- void (*tkMacSetUpGraphicsPort) _ANSI_ARGS_((GC gc)); /* 49 */
- void (*tkMacUpdateClipRgn) _ANSI_ARGS_((TkWindow * winPtr)); /* 50 */
- void (*tkMacUnregisterMacWindow) _ANSI_ARGS_((GWorldPtr portPtr)); /* 51 */
- int (*tkMacUseMenuID) _ANSI_ARGS_((short macID)); /* 52 */
- RgnHandle (*tkMacVisableClipRgn) _ANSI_ARGS_((TkWindow * winPtr)); /* 53 */
- void (*tkMacWinBounds) _ANSI_ARGS_((TkWindow * winPtr, Rect * geometry)); /* 54 */
- void (*tkMacWindowOffset) _ANSI_ARGS_((WindowRef wRef, int * xOffset, int * yOffset)); /* 55 */
- void *reserved56;
- int (*tkSetMacColor) _ANSI_ARGS_((unsigned long pixel, RGBColor * macColor)); /* 57 */
- void (*tkSetWMName) _ANSI_ARGS_((TkWindow * winPtr, Tk_Uid titleUid)); /* 58 */
- void (*tkSuspendClipboard) _ANSI_ARGS_((void)); /* 59 */
- void *reserved60;
- int (*tkMacZoomToplevel) _ANSI_ARGS_((WindowPtr whichWindow, Point where, short zoomPart)); /* 61 */
- Tk_Window (*tk_TopCoordsToWindow) _ANSI_ARGS_((Tk_Window tkwin, int rootX, int rootY, int * newX, int * newY)); /* 62 */
- MacDrawable * (*tkMacContainerId) _ANSI_ARGS_((TkWindow * winPtr)); /* 63 */
- MacDrawable * (*tkMacGetHostToplevel) _ANSI_ARGS_((TkWindow * winPtr)); /* 64 */
- void (*tkMacPreprocessMenu) _ANSI_ARGS_((void)); /* 65 */
- int (*tkpIsWindowFloating) _ANSI_ARGS_((WindowRef window)); /* 66 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- void (*tkGenerateActivateEvents) _ANSI_ARGS_((TkWindow * winPtr, int active)); /* 0 */
- void *reserved1;
- void *reserved2;
- void (*tkPointerDeadWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 3 */
- void (*tkpSetCapture) _ANSI_ARGS_((TkWindow * winPtr)); /* 4 */
- void (*tkpSetCursor) _ANSI_ARGS_((TkpCursor cursor)); /* 5 */
- void (*tkpWmSetState) _ANSI_ARGS_((TkWindow * winPtr, int state)); /* 6 */
- void (*tkAboutDlg) _ANSI_ARGS_((void)); /* 7 */
- unsigned int (*tkMacOSXButtonKeyState) _ANSI_ARGS_((void)); /* 8 */
- void (*tkMacOSXClearMenubarActive) _ANSI_ARGS_((void)); /* 9 */
- int (*tkMacOSXDispatchMenuEvent) _ANSI_ARGS_((int menuID, int index)); /* 10 */
- void (*tkMacOSXInstallCursor) _ANSI_ARGS_((int resizeOverride)); /* 11 */
- void (*tkMacOSXHandleTearoffMenu) _ANSI_ARGS_((void)); /* 12 */
- void *reserved13;
- int (*tkMacOSXDoHLEvent) _ANSI_ARGS_((EventRecord * theEvent)); /* 14 */
- void *reserved15;
- Window (*tkMacOSXGetXWindow) _ANSI_ARGS_((WindowRef macWinPtr)); /* 16 */
- int (*tkMacOSXGrowToplevel) _ANSI_ARGS_((WindowRef whichWindow, Point start)); /* 17 */
- void (*tkMacOSXHandleMenuSelect) _ANSI_ARGS_((long mResult, int optionKeyPressed)); /* 18 */
- void *reserved19;
- void *reserved20;
- void (*tkMacOSXInvalidateWindow) _ANSI_ARGS_((MacDrawable * macWin, int flag)); /* 21 */
- int (*tkMacOSXIsCharacterMissing) _ANSI_ARGS_((Tk_Font tkfont, unsigned int searchChar)); /* 22 */
- void (*tkMacOSXMakeRealWindowExist) _ANSI_ARGS_((TkWindow * winPtr)); /* 23 */
- BitMapPtr (*tkMacOSXMakeStippleMap) _ANSI_ARGS_((Drawable d1, Drawable d2)); /* 24 */
- void (*tkMacOSXMenuClick) _ANSI_ARGS_((void)); /* 25 */
- void (*tkMacOSXRegisterOffScreenWindow) _ANSI_ARGS_((Window window, GWorldPtr portPtr)); /* 26 */
- int (*tkMacOSXResizable) _ANSI_ARGS_((TkWindow * winPtr)); /* 27 */
- void (*tkMacOSXSetHelpMenuItemCount) _ANSI_ARGS_((void)); /* 28 */
- void (*tkMacOSXSetScrollbarGrow) _ANSI_ARGS_((TkWindow * winPtr, int flag)); /* 29 */
- void (*tkMacOSXSetUpClippingRgn) _ANSI_ARGS_((Drawable drawable)); /* 30 */
- void (*tkMacOSXSetUpGraphicsPort) _ANSI_ARGS_((GC gc, GWorldPtr destPort)); /* 31 */
- void (*tkMacOSXUpdateClipRgn) _ANSI_ARGS_((TkWindow * winPtr)); /* 32 */
- void (*tkMacOSXUnregisterMacWindow) _ANSI_ARGS_((WindowRef portPtr)); /* 33 */
- int (*tkMacOSXUseMenuID) _ANSI_ARGS_((short macID)); /* 34 */
- RgnHandle (*tkMacOSXVisableClipRgn) _ANSI_ARGS_((TkWindow * winPtr)); /* 35 */
- void (*tkMacOSXWinBounds) _ANSI_ARGS_((TkWindow * winPtr, Rect * geometry)); /* 36 */
- void (*tkMacOSXWindowOffset) _ANSI_ARGS_((WindowRef wRef, int * xOffset, int * yOffset)); /* 37 */
- int (*tkSetMacColor) _ANSI_ARGS_((unsigned long pixel, RGBColor * macColor)); /* 38 */
- void (*tkSetWMName) _ANSI_ARGS_((TkWindow * winPtr, Tk_Uid titleUid)); /* 39 */
- void (*tkSuspendClipboard) _ANSI_ARGS_((void)); /* 40 */
- int (*tkMacOSXZoomToplevel) _ANSI_ARGS_((WindowPtr whichWindow, Point where, short zoomPart)); /* 41 */
- Tk_Window (*tk_TopCoordsToWindow) _ANSI_ARGS_((Tk_Window tkwin, int rootX, int rootY, int * newX, int * newY)); /* 42 */
- MacDrawable * (*tkMacOSXContainerId) _ANSI_ARGS_((TkWindow * winPtr)); /* 43 */
- MacDrawable * (*tkMacOSXGetHostToplevel) _ANSI_ARGS_((TkWindow * winPtr)); /* 44 */
- void (*tkMacOSXPreprocessMenu) _ANSI_ARGS_((void)); /* 45 */
- int (*tkpIsWindowFloating) _ANSI_ARGS_((WindowRef window)); /* 46 */
- Tk_Window (*tkMacOSXGetCapture) _ANSI_ARGS_((void)); /* 47 */
- void *reserved48;
- Window (*tkGetTransientMaster) _ANSI_ARGS_((TkWindow * winPtr)); /* 49 */
- int (*tkGenerateButtonEvent) _ANSI_ARGS_((int x, int y, Window window, unsigned int state)); /* 50 */
- void (*tkGenWMDestroyEvent) _ANSI_ARGS_((Tk_Window tkwin)); /* 51 */
- void *reserved52;
- unsigned long (*tkpGetMS) _ANSI_ARGS_((void)); /* 53 */
-#endif /* MAC_OSX_TK */
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) /* X11 */
- void (*tkCreateXEventSource) _ANSI_ARGS_((void)); /* 0 */
- void (*tkFreeWindowId) _ANSI_ARGS_((TkDisplay * dispPtr, Window w)); /* 1 */
- void (*tkInitXId) _ANSI_ARGS_((TkDisplay * dispPtr)); /* 2 */
- int (*tkpCmapStressed) _ANSI_ARGS_((Tk_Window tkwin, Colormap colormap)); /* 3 */
- void (*tkpSync) _ANSI_ARGS_((Display * display)); /* 4 */
- Window (*tkUnixContainerId) _ANSI_ARGS_((TkWindow * winPtr)); /* 5 */
- int (*tkUnixDoOneXEvent) _ANSI_ARGS_((Tcl_Time * timePtr)); /* 6 */
- void (*tkUnixSetMenubar) _ANSI_ARGS_((Tk_Window tkwin, Tk_Window menubar)); /* 7 */
- int (*tkpScanWindowId) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string, Window * idPtr)); /* 8 */
- void (*tkWmCleanup) _ANSI_ARGS_((TkDisplay * dispPtr)); /* 9 */
- void (*tkSendCleanup) _ANSI_ARGS_((TkDisplay * dispPtr)); /* 10 */
- void (*tkFreeXId) _ANSI_ARGS_((TkDisplay * dispPtr)); /* 11 */
- int (*tkpWmSetState) _ANSI_ARGS_((TkWindow * winPtr, int state)); /* 12 */
-#endif /* X11 */
-} TkIntPlatStubs;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern TkIntPlatStubs *tkIntPlatStubsPtr;
-#ifdef __cplusplus
-}
-#endif
-
-#if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS)
-
-/*
- * Inline function declarations:
- */
-
-#ifdef __WIN32__
-#ifndef TkAlignImageData
-#define TkAlignImageData \
- (tkIntPlatStubsPtr->tkAlignImageData) /* 0 */
-#endif
-/* Slot 1 is reserved */
-#ifndef TkGenerateActivateEvents
-#define TkGenerateActivateEvents \
- (tkIntPlatStubsPtr->tkGenerateActivateEvents) /* 2 */
-#endif
-#ifndef TkpGetMS
-#define TkpGetMS \
- (tkIntPlatStubsPtr->tkpGetMS) /* 3 */
-#endif
-#ifndef TkPointerDeadWindow
-#define TkPointerDeadWindow \
- (tkIntPlatStubsPtr->tkPointerDeadWindow) /* 4 */
-#endif
-#ifndef TkpPrintWindowId
-#define TkpPrintWindowId \
- (tkIntPlatStubsPtr->tkpPrintWindowId) /* 5 */
-#endif
-#ifndef TkpScanWindowId
-#define TkpScanWindowId \
- (tkIntPlatStubsPtr->tkpScanWindowId) /* 6 */
-#endif
-#ifndef TkpSetCapture
-#define TkpSetCapture \
- (tkIntPlatStubsPtr->tkpSetCapture) /* 7 */
-#endif
-#ifndef TkpSetCursor
-#define TkpSetCursor \
- (tkIntPlatStubsPtr->tkpSetCursor) /* 8 */
-#endif
-#ifndef TkpWmSetState
-#define TkpWmSetState \
- (tkIntPlatStubsPtr->tkpWmSetState) /* 9 */
-#endif
-#ifndef TkSetPixmapColormap
-#define TkSetPixmapColormap \
- (tkIntPlatStubsPtr->tkSetPixmapColormap) /* 10 */
-#endif
-#ifndef TkWinCancelMouseTimer
-#define TkWinCancelMouseTimer \
- (tkIntPlatStubsPtr->tkWinCancelMouseTimer) /* 11 */
-#endif
-#ifndef TkWinClipboardRender
-#define TkWinClipboardRender \
- (tkIntPlatStubsPtr->tkWinClipboardRender) /* 12 */
-#endif
-#ifndef TkWinEmbeddedEventProc
-#define TkWinEmbeddedEventProc \
- (tkIntPlatStubsPtr->tkWinEmbeddedEventProc) /* 13 */
-#endif
-#ifndef TkWinFillRect
-#define TkWinFillRect \
- (tkIntPlatStubsPtr->tkWinFillRect) /* 14 */
-#endif
-#ifndef TkWinGetBorderPixels
-#define TkWinGetBorderPixels \
- (tkIntPlatStubsPtr->tkWinGetBorderPixels) /* 15 */
-#endif
-#ifndef TkWinGetDrawableDC
-#define TkWinGetDrawableDC \
- (tkIntPlatStubsPtr->tkWinGetDrawableDC) /* 16 */
-#endif
-#ifndef TkWinGetModifierState
-#define TkWinGetModifierState \
- (tkIntPlatStubsPtr->tkWinGetModifierState) /* 17 */
-#endif
-#ifndef TkWinGetSystemPalette
-#define TkWinGetSystemPalette \
- (tkIntPlatStubsPtr->tkWinGetSystemPalette) /* 18 */
-#endif
-#ifndef TkWinGetWrapperWindow
-#define TkWinGetWrapperWindow \
- (tkIntPlatStubsPtr->tkWinGetWrapperWindow) /* 19 */
-#endif
-#ifndef TkWinHandleMenuEvent
-#define TkWinHandleMenuEvent \
- (tkIntPlatStubsPtr->tkWinHandleMenuEvent) /* 20 */
-#endif
-#ifndef TkWinIndexOfColor
-#define TkWinIndexOfColor \
- (tkIntPlatStubsPtr->tkWinIndexOfColor) /* 21 */
-#endif
-#ifndef TkWinReleaseDrawableDC
-#define TkWinReleaseDrawableDC \
- (tkIntPlatStubsPtr->tkWinReleaseDrawableDC) /* 22 */
-#endif
-#ifndef TkWinResendEvent
-#define TkWinResendEvent \
- (tkIntPlatStubsPtr->tkWinResendEvent) /* 23 */
-#endif
-#ifndef TkWinSelectPalette
-#define TkWinSelectPalette \
- (tkIntPlatStubsPtr->tkWinSelectPalette) /* 24 */
-#endif
-#ifndef TkWinSetMenu
-#define TkWinSetMenu \
- (tkIntPlatStubsPtr->tkWinSetMenu) /* 25 */
-#endif
-#ifndef TkWinSetWindowPos
-#define TkWinSetWindowPos \
- (tkIntPlatStubsPtr->tkWinSetWindowPos) /* 26 */
-#endif
-#ifndef TkWinWmCleanup
-#define TkWinWmCleanup \
- (tkIntPlatStubsPtr->tkWinWmCleanup) /* 27 */
-#endif
-#ifndef TkWinXCleanup
-#define TkWinXCleanup \
- (tkIntPlatStubsPtr->tkWinXCleanup) /* 28 */
-#endif
-#ifndef TkWinXInit
-#define TkWinXInit \
- (tkIntPlatStubsPtr->tkWinXInit) /* 29 */
-#endif
-#ifndef TkWinSetForegroundWindow
-#define TkWinSetForegroundWindow \
- (tkIntPlatStubsPtr->tkWinSetForegroundWindow) /* 30 */
-#endif
-#ifndef TkWinDialogDebug
-#define TkWinDialogDebug \
- (tkIntPlatStubsPtr->tkWinDialogDebug) /* 31 */
-#endif
-#ifndef TkWinGetMenuSystemDefault
-#define TkWinGetMenuSystemDefault \
- (tkIntPlatStubsPtr->tkWinGetMenuSystemDefault) /* 32 */
-#endif
-#ifndef TkWinGetPlatformId
-#define TkWinGetPlatformId \
- (tkIntPlatStubsPtr->tkWinGetPlatformId) /* 33 */
-#endif
-#ifndef TkWinSetHINSTANCE
-#define TkWinSetHINSTANCE \
- (tkIntPlatStubsPtr->tkWinSetHINSTANCE) /* 34 */
-#endif
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-#ifndef TkGenerateActivateEvents
-#define TkGenerateActivateEvents \
- (tkIntPlatStubsPtr->tkGenerateActivateEvents) /* 0 */
-#endif
-/* Slot 1 is reserved */
-/* Slot 2 is reserved */
-#ifndef TkpGetMS
-#define TkpGetMS \
- (tkIntPlatStubsPtr->tkpGetMS) /* 3 */
-#endif
-/* Slot 4 is reserved */
-#ifndef TkPointerDeadWindow
-#define TkPointerDeadWindow \
- (tkIntPlatStubsPtr->tkPointerDeadWindow) /* 5 */
-#endif
-#ifndef TkpSetCapture
-#define TkpSetCapture \
- (tkIntPlatStubsPtr->tkpSetCapture) /* 6 */
-#endif
-#ifndef TkpSetCursor
-#define TkpSetCursor \
- (tkIntPlatStubsPtr->tkpSetCursor) /* 7 */
-#endif
-#ifndef TkpWmSetState
-#define TkpWmSetState \
- (tkIntPlatStubsPtr->tkpWmSetState) /* 8 */
-#endif
-/* Slot 9 is reserved */
-#ifndef TkAboutDlg
-#define TkAboutDlg \
- (tkIntPlatStubsPtr->tkAboutDlg) /* 10 */
-#endif
-/* Slot 11 is reserved */
-/* Slot 12 is reserved */
-#ifndef TkGetTransientMaster
-#define TkGetTransientMaster \
- (tkIntPlatStubsPtr->tkGetTransientMaster) /* 13 */
-#endif
-#ifndef TkGenerateButtonEvent
-#define TkGenerateButtonEvent \
- (tkIntPlatStubsPtr->tkGenerateButtonEvent) /* 14 */
-#endif
-/* Slot 15 is reserved */
-#ifndef TkGenWMDestroyEvent
-#define TkGenWMDestroyEvent \
- (tkIntPlatStubsPtr->tkGenWMDestroyEvent) /* 16 */
-#endif
-/* Slot 17 is reserved */
-#ifndef TkMacButtonKeyState
-#define TkMacButtonKeyState \
- (tkIntPlatStubsPtr->tkMacButtonKeyState) /* 18 */
-#endif
-#ifndef TkMacClearMenubarActive
-#define TkMacClearMenubarActive \
- (tkIntPlatStubsPtr->tkMacClearMenubarActive) /* 19 */
-#endif
-/* Slot 20 is reserved */
-#ifndef TkMacDispatchMenuEvent
-#define TkMacDispatchMenuEvent \
- (tkIntPlatStubsPtr->tkMacDispatchMenuEvent) /* 21 */
-#endif
-#ifndef TkMacInstallCursor
-#define TkMacInstallCursor \
- (tkIntPlatStubsPtr->tkMacInstallCursor) /* 22 */
-#endif
-/* Slot 23 is reserved */
-#ifndef TkMacHandleTearoffMenu
-#define TkMacHandleTearoffMenu \
- (tkIntPlatStubsPtr->tkMacHandleTearoffMenu) /* 24 */
-#endif
-/* Slot 25 is reserved */
-/* Slot 26 is reserved */
-#ifndef TkMacDoHLEvent
-#define TkMacDoHLEvent \
- (tkIntPlatStubsPtr->tkMacDoHLEvent) /* 27 */
-#endif
-/* Slot 28 is reserved */
-#ifndef TkMacGenerateTime
-#define TkMacGenerateTime \
- (tkIntPlatStubsPtr->tkMacGenerateTime) /* 29 */
-#endif
-/* Slot 30 is reserved */
-#ifndef TkMacGetScrollbarGrowWindow
-#define TkMacGetScrollbarGrowWindow \
- (tkIntPlatStubsPtr->tkMacGetScrollbarGrowWindow) /* 31 */
-#endif
-#ifndef TkMacGetXWindow
-#define TkMacGetXWindow \
- (tkIntPlatStubsPtr->tkMacGetXWindow) /* 32 */
-#endif
-#ifndef TkMacGrowToplevel
-#define TkMacGrowToplevel \
- (tkIntPlatStubsPtr->tkMacGrowToplevel) /* 33 */
-#endif
-#ifndef TkMacHandleMenuSelect
-#define TkMacHandleMenuSelect \
- (tkIntPlatStubsPtr->tkMacHandleMenuSelect) /* 34 */
-#endif
-/* Slot 35 is reserved */
-/* Slot 36 is reserved */
-/* Slot 37 is reserved */
-#ifndef TkMacInvalidateWindow
-#define TkMacInvalidateWindow \
- (tkIntPlatStubsPtr->tkMacInvalidateWindow) /* 38 */
-#endif
-#ifndef TkMacIsCharacterMissing
-#define TkMacIsCharacterMissing \
- (tkIntPlatStubsPtr->tkMacIsCharacterMissing) /* 39 */
-#endif
-#ifndef TkMacMakeRealWindowExist
-#define TkMacMakeRealWindowExist \
- (tkIntPlatStubsPtr->tkMacMakeRealWindowExist) /* 40 */
-#endif
-#ifndef TkMacMakeStippleMap
-#define TkMacMakeStippleMap \
- (tkIntPlatStubsPtr->tkMacMakeStippleMap) /* 41 */
-#endif
-#ifndef TkMacMenuClick
-#define TkMacMenuClick \
- (tkIntPlatStubsPtr->tkMacMenuClick) /* 42 */
-#endif
-#ifndef TkMacRegisterOffScreenWindow
-#define TkMacRegisterOffScreenWindow \
- (tkIntPlatStubsPtr->tkMacRegisterOffScreenWindow) /* 43 */
-#endif
-#ifndef TkMacResizable
-#define TkMacResizable \
- (tkIntPlatStubsPtr->tkMacResizable) /* 44 */
-#endif
-/* Slot 45 is reserved */
-#ifndef TkMacSetHelpMenuItemCount
-#define TkMacSetHelpMenuItemCount \
- (tkIntPlatStubsPtr->tkMacSetHelpMenuItemCount) /* 46 */
-#endif
-#ifndef TkMacSetScrollbarGrow
-#define TkMacSetScrollbarGrow \
- (tkIntPlatStubsPtr->tkMacSetScrollbarGrow) /* 47 */
-#endif
-#ifndef TkMacSetUpClippingRgn
-#define TkMacSetUpClippingRgn \
- (tkIntPlatStubsPtr->tkMacSetUpClippingRgn) /* 48 */
-#endif
-#ifndef TkMacSetUpGraphicsPort
-#define TkMacSetUpGraphicsPort \
- (tkIntPlatStubsPtr->tkMacSetUpGraphicsPort) /* 49 */
-#endif
-#ifndef TkMacUpdateClipRgn
-#define TkMacUpdateClipRgn \
- (tkIntPlatStubsPtr->tkMacUpdateClipRgn) /* 50 */
-#endif
-#ifndef TkMacUnregisterMacWindow
-#define TkMacUnregisterMacWindow \
- (tkIntPlatStubsPtr->tkMacUnregisterMacWindow) /* 51 */
-#endif
-#ifndef TkMacUseMenuID
-#define TkMacUseMenuID \
- (tkIntPlatStubsPtr->tkMacUseMenuID) /* 52 */
-#endif
-#ifndef TkMacVisableClipRgn
-#define TkMacVisableClipRgn \
- (tkIntPlatStubsPtr->tkMacVisableClipRgn) /* 53 */
-#endif
-#ifndef TkMacWinBounds
-#define TkMacWinBounds \
- (tkIntPlatStubsPtr->tkMacWinBounds) /* 54 */
-#endif
-#ifndef TkMacWindowOffset
-#define TkMacWindowOffset \
- (tkIntPlatStubsPtr->tkMacWindowOffset) /* 55 */
-#endif
-/* Slot 56 is reserved */
-#ifndef TkSetMacColor
-#define TkSetMacColor \
- (tkIntPlatStubsPtr->tkSetMacColor) /* 57 */
-#endif
-#ifndef TkSetWMName
-#define TkSetWMName \
- (tkIntPlatStubsPtr->tkSetWMName) /* 58 */
-#endif
-#ifndef TkSuspendClipboard
-#define TkSuspendClipboard \
- (tkIntPlatStubsPtr->tkSuspendClipboard) /* 59 */
-#endif
-/* Slot 60 is reserved */
-#ifndef TkMacZoomToplevel
-#define TkMacZoomToplevel \
- (tkIntPlatStubsPtr->tkMacZoomToplevel) /* 61 */
-#endif
-#ifndef Tk_TopCoordsToWindow
-#define Tk_TopCoordsToWindow \
- (tkIntPlatStubsPtr->tk_TopCoordsToWindow) /* 62 */
-#endif
-#ifndef TkMacContainerId
-#define TkMacContainerId \
- (tkIntPlatStubsPtr->tkMacContainerId) /* 63 */
-#endif
-#ifndef TkMacGetHostToplevel
-#define TkMacGetHostToplevel \
- (tkIntPlatStubsPtr->tkMacGetHostToplevel) /* 64 */
-#endif
-#ifndef TkMacPreprocessMenu
-#define TkMacPreprocessMenu \
- (tkIntPlatStubsPtr->tkMacPreprocessMenu) /* 65 */
-#endif
-#ifndef TkpIsWindowFloating
-#define TkpIsWindowFloating \
- (tkIntPlatStubsPtr->tkpIsWindowFloating) /* 66 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef TkGenerateActivateEvents
-#define TkGenerateActivateEvents \
- (tkIntPlatStubsPtr->tkGenerateActivateEvents) /* 0 */
-#endif
-/* Slot 1 is reserved */
-/* Slot 2 is reserved */
-#ifndef TkPointerDeadWindow
-#define TkPointerDeadWindow \
- (tkIntPlatStubsPtr->tkPointerDeadWindow) /* 3 */
-#endif
-#ifndef TkpSetCapture
-#define TkpSetCapture \
- (tkIntPlatStubsPtr->tkpSetCapture) /* 4 */
-#endif
-#ifndef TkpSetCursor
-#define TkpSetCursor \
- (tkIntPlatStubsPtr->tkpSetCursor) /* 5 */
-#endif
-#ifndef TkpWmSetState
-#define TkpWmSetState \
- (tkIntPlatStubsPtr->tkpWmSetState) /* 6 */
-#endif
-#ifndef TkAboutDlg
-#define TkAboutDlg \
- (tkIntPlatStubsPtr->tkAboutDlg) /* 7 */
-#endif
-#ifndef TkMacOSXButtonKeyState
-#define TkMacOSXButtonKeyState \
- (tkIntPlatStubsPtr->tkMacOSXButtonKeyState) /* 8 */
-#endif
-#ifndef TkMacOSXClearMenubarActive
-#define TkMacOSXClearMenubarActive \
- (tkIntPlatStubsPtr->tkMacOSXClearMenubarActive) /* 9 */
-#endif
-#ifndef TkMacOSXDispatchMenuEvent
-#define TkMacOSXDispatchMenuEvent \
- (tkIntPlatStubsPtr->tkMacOSXDispatchMenuEvent) /* 10 */
-#endif
-#ifndef TkMacOSXInstallCursor
-#define TkMacOSXInstallCursor \
- (tkIntPlatStubsPtr->tkMacOSXInstallCursor) /* 11 */
-#endif
-#ifndef TkMacOSXHandleTearoffMenu
-#define TkMacOSXHandleTearoffMenu \
- (tkIntPlatStubsPtr->tkMacOSXHandleTearoffMenu) /* 12 */
-#endif
-/* Slot 13 is reserved */
-#ifndef TkMacOSXDoHLEvent
-#define TkMacOSXDoHLEvent \
- (tkIntPlatStubsPtr->tkMacOSXDoHLEvent) /* 14 */
-#endif
-/* Slot 15 is reserved */
-#ifndef TkMacOSXGetXWindow
-#define TkMacOSXGetXWindow \
- (tkIntPlatStubsPtr->tkMacOSXGetXWindow) /* 16 */
-#endif
-#ifndef TkMacOSXGrowToplevel
-#define TkMacOSXGrowToplevel \
- (tkIntPlatStubsPtr->tkMacOSXGrowToplevel) /* 17 */
-#endif
-#ifndef TkMacOSXHandleMenuSelect
-#define TkMacOSXHandleMenuSelect \
- (tkIntPlatStubsPtr->tkMacOSXHandleMenuSelect) /* 18 */
-#endif
-/* Slot 19 is reserved */
-/* Slot 20 is reserved */
-#ifndef TkMacOSXInvalidateWindow
-#define TkMacOSXInvalidateWindow \
- (tkIntPlatStubsPtr->tkMacOSXInvalidateWindow) /* 21 */
-#endif
-#ifndef TkMacOSXIsCharacterMissing
-#define TkMacOSXIsCharacterMissing \
- (tkIntPlatStubsPtr->tkMacOSXIsCharacterMissing) /* 22 */
-#endif
-#ifndef TkMacOSXMakeRealWindowExist
-#define TkMacOSXMakeRealWindowExist \
- (tkIntPlatStubsPtr->tkMacOSXMakeRealWindowExist) /* 23 */
-#endif
-#ifndef TkMacOSXMakeStippleMap
-#define TkMacOSXMakeStippleMap \
- (tkIntPlatStubsPtr->tkMacOSXMakeStippleMap) /* 24 */
-#endif
-#ifndef TkMacOSXMenuClick
-#define TkMacOSXMenuClick \
- (tkIntPlatStubsPtr->tkMacOSXMenuClick) /* 25 */
-#endif
-#ifndef TkMacOSXRegisterOffScreenWindow
-#define TkMacOSXRegisterOffScreenWindow \
- (tkIntPlatStubsPtr->tkMacOSXRegisterOffScreenWindow) /* 26 */
-#endif
-#ifndef TkMacOSXResizable
-#define TkMacOSXResizable \
- (tkIntPlatStubsPtr->tkMacOSXResizable) /* 27 */
-#endif
-#ifndef TkMacOSXSetHelpMenuItemCount
-#define TkMacOSXSetHelpMenuItemCount \
- (tkIntPlatStubsPtr->tkMacOSXSetHelpMenuItemCount) /* 28 */
-#endif
-#ifndef TkMacOSXSetScrollbarGrow
-#define TkMacOSXSetScrollbarGrow \
- (tkIntPlatStubsPtr->tkMacOSXSetScrollbarGrow) /* 29 */
-#endif
-#ifndef TkMacOSXSetUpClippingRgn
-#define TkMacOSXSetUpClippingRgn \
- (tkIntPlatStubsPtr->tkMacOSXSetUpClippingRgn) /* 30 */
-#endif
-#ifndef TkMacOSXSetUpGraphicsPort
-#define TkMacOSXSetUpGraphicsPort \
- (tkIntPlatStubsPtr->tkMacOSXSetUpGraphicsPort) /* 31 */
-#endif
-#ifndef TkMacOSXUpdateClipRgn
-#define TkMacOSXUpdateClipRgn \
- (tkIntPlatStubsPtr->tkMacOSXUpdateClipRgn) /* 32 */
-#endif
-#ifndef TkMacOSXUnregisterMacWindow
-#define TkMacOSXUnregisterMacWindow \
- (tkIntPlatStubsPtr->tkMacOSXUnregisterMacWindow) /* 33 */
-#endif
-#ifndef TkMacOSXUseMenuID
-#define TkMacOSXUseMenuID \
- (tkIntPlatStubsPtr->tkMacOSXUseMenuID) /* 34 */
-#endif
-#ifndef TkMacOSXVisableClipRgn
-#define TkMacOSXVisableClipRgn \
- (tkIntPlatStubsPtr->tkMacOSXVisableClipRgn) /* 35 */
-#endif
-#ifndef TkMacOSXWinBounds
-#define TkMacOSXWinBounds \
- (tkIntPlatStubsPtr->tkMacOSXWinBounds) /* 36 */
-#endif
-#ifndef TkMacOSXWindowOffset
-#define TkMacOSXWindowOffset \
- (tkIntPlatStubsPtr->tkMacOSXWindowOffset) /* 37 */
-#endif
-#ifndef TkSetMacColor
-#define TkSetMacColor \
- (tkIntPlatStubsPtr->tkSetMacColor) /* 38 */
-#endif
-#ifndef TkSetWMName
-#define TkSetWMName \
- (tkIntPlatStubsPtr->tkSetWMName) /* 39 */
-#endif
-#ifndef TkSuspendClipboard
-#define TkSuspendClipboard \
- (tkIntPlatStubsPtr->tkSuspendClipboard) /* 40 */
-#endif
-#ifndef TkMacOSXZoomToplevel
-#define TkMacOSXZoomToplevel \
- (tkIntPlatStubsPtr->tkMacOSXZoomToplevel) /* 41 */
-#endif
-#ifndef Tk_TopCoordsToWindow
-#define Tk_TopCoordsToWindow \
- (tkIntPlatStubsPtr->tk_TopCoordsToWindow) /* 42 */
-#endif
-#ifndef TkMacOSXContainerId
-#define TkMacOSXContainerId \
- (tkIntPlatStubsPtr->tkMacOSXContainerId) /* 43 */
-#endif
-#ifndef TkMacOSXGetHostToplevel
-#define TkMacOSXGetHostToplevel \
- (tkIntPlatStubsPtr->tkMacOSXGetHostToplevel) /* 44 */
-#endif
-#ifndef TkMacOSXPreprocessMenu
-#define TkMacOSXPreprocessMenu \
- (tkIntPlatStubsPtr->tkMacOSXPreprocessMenu) /* 45 */
-#endif
-#ifndef TkpIsWindowFloating
-#define TkpIsWindowFloating \
- (tkIntPlatStubsPtr->tkpIsWindowFloating) /* 46 */
-#endif
-#ifndef TkMacOSXGetCapture
-#define TkMacOSXGetCapture \
- (tkIntPlatStubsPtr->tkMacOSXGetCapture) /* 47 */
-#endif
-/* Slot 48 is reserved */
-#ifndef TkGetTransientMaster
-#define TkGetTransientMaster \
- (tkIntPlatStubsPtr->tkGetTransientMaster) /* 49 */
-#endif
-#ifndef TkGenerateButtonEvent
-#define TkGenerateButtonEvent \
- (tkIntPlatStubsPtr->tkGenerateButtonEvent) /* 50 */
-#endif
-#ifndef TkGenWMDestroyEvent
-#define TkGenWMDestroyEvent \
- (tkIntPlatStubsPtr->tkGenWMDestroyEvent) /* 51 */
-#endif
-/* Slot 52 is reserved */
-#ifndef TkpGetMS
-#define TkpGetMS \
- (tkIntPlatStubsPtr->tkpGetMS) /* 53 */
-#endif
-#endif /* MAC_OSX_TK */
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) /* X11 */
-#ifndef TkCreateXEventSource
-#define TkCreateXEventSource \
- (tkIntPlatStubsPtr->tkCreateXEventSource) /* 0 */
-#endif
-#ifndef TkFreeWindowId
-#define TkFreeWindowId \
- (tkIntPlatStubsPtr->tkFreeWindowId) /* 1 */
-#endif
-#ifndef TkInitXId
-#define TkInitXId \
- (tkIntPlatStubsPtr->tkInitXId) /* 2 */
-#endif
-#ifndef TkpCmapStressed
-#define TkpCmapStressed \
- (tkIntPlatStubsPtr->tkpCmapStressed) /* 3 */
-#endif
-#ifndef TkpSync
-#define TkpSync \
- (tkIntPlatStubsPtr->tkpSync) /* 4 */
-#endif
-#ifndef TkUnixContainerId
-#define TkUnixContainerId \
- (tkIntPlatStubsPtr->tkUnixContainerId) /* 5 */
-#endif
-#ifndef TkUnixDoOneXEvent
-#define TkUnixDoOneXEvent \
- (tkIntPlatStubsPtr->tkUnixDoOneXEvent) /* 6 */
-#endif
-#ifndef TkUnixSetMenubar
-#define TkUnixSetMenubar \
- (tkIntPlatStubsPtr->tkUnixSetMenubar) /* 7 */
-#endif
-#ifndef TkpScanWindowId
-#define TkpScanWindowId \
- (tkIntPlatStubsPtr->tkpScanWindowId) /* 8 */
-#endif
-#ifndef TkWmCleanup
-#define TkWmCleanup \
- (tkIntPlatStubsPtr->tkWmCleanup) /* 9 */
-#endif
-#ifndef TkSendCleanup
-#define TkSendCleanup \
- (tkIntPlatStubsPtr->tkSendCleanup) /* 10 */
-#endif
-#ifndef TkFreeXId
-#define TkFreeXId \
- (tkIntPlatStubsPtr->tkFreeXId) /* 11 */
-#endif
-#ifndef TkpWmSetState
-#define TkpWmSetState \
- (tkIntPlatStubsPtr->tkpWmSetState) /* 12 */
-#endif
-#endif /* X11 */
-
-#endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */
-
-/* !END!: Do not edit above this line. */
-
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKINTPLATDECLS */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls.m
deleted file mode 100644
index 203f4d83724..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls.m
+++ /dev/null
@@ -1,474 +0,0 @@
-#ifndef _TKINTPLATDECLS_VM
-#define _TKINTPLATDECLS_VM
-#include "tkIntPlatDecls_f.h"
-#ifndef NO_VTABLES
-#ifndef TkAboutDlg
-# define TkAboutDlg (*TkintplatdeclsVptr->V_TkAboutDlg)
-#endif
-
-#ifndef TkAlignImageData
-# define TkAlignImageData (*TkintplatdeclsVptr->V_TkAlignImageData)
-#endif
-
-#ifndef TkCreateXEventSource
-# define TkCreateXEventSource (*TkintplatdeclsVptr->V_TkCreateXEventSource)
-#endif
-
-#ifndef TkFreeWindowId
-# define TkFreeWindowId (*TkintplatdeclsVptr->V_TkFreeWindowId)
-#endif
-
-#ifndef TkFreeXId
-# define TkFreeXId (*TkintplatdeclsVptr->V_TkFreeXId)
-#endif
-
-#ifndef TkGenWMDestroyEvent
-# define TkGenWMDestroyEvent (*TkintplatdeclsVptr->V_TkGenWMDestroyEvent)
-#endif
-
-#ifndef TkGenerateActivateEvents
-# define TkGenerateActivateEvents (*TkintplatdeclsVptr->V_TkGenerateActivateEvents)
-#endif
-
-#ifndef TkGenerateButtonEvent
-# define TkGenerateButtonEvent (*TkintplatdeclsVptr->V_TkGenerateButtonEvent)
-#endif
-
-#ifndef TkGetTransientMaster
-# define TkGetTransientMaster (*TkintplatdeclsVptr->V_TkGetTransientMaster)
-#endif
-
-#ifndef TkInitXId
-# define TkInitXId (*TkintplatdeclsVptr->V_TkInitXId)
-#endif
-
-#ifndef TkMacButtonKeyState
-# define TkMacButtonKeyState (*TkintplatdeclsVptr->V_TkMacButtonKeyState)
-#endif
-
-#ifndef TkMacClearMenubarActive
-# define TkMacClearMenubarActive (*TkintplatdeclsVptr->V_TkMacClearMenubarActive)
-#endif
-
-#ifndef TkMacContainerId
-# define TkMacContainerId (*TkintplatdeclsVptr->V_TkMacContainerId)
-#endif
-
-#ifndef TkMacDispatchMenuEvent
-# define TkMacDispatchMenuEvent (*TkintplatdeclsVptr->V_TkMacDispatchMenuEvent)
-#endif
-
-#ifndef TkMacDoHLEvent
-# define TkMacDoHLEvent (*TkintplatdeclsVptr->V_TkMacDoHLEvent)
-#endif
-
-#ifndef TkMacGenerateTime
-# define TkMacGenerateTime (*TkintplatdeclsVptr->V_TkMacGenerateTime)
-#endif
-
-#ifndef TkMacGetHostToplevel
-# define TkMacGetHostToplevel (*TkintplatdeclsVptr->V_TkMacGetHostToplevel)
-#endif
-
-#ifndef TkMacGetScrollbarGrowWindow
-# define TkMacGetScrollbarGrowWindow (*TkintplatdeclsVptr->V_TkMacGetScrollbarGrowWindow)
-#endif
-
-#ifndef TkMacGetXWindow
-# define TkMacGetXWindow (*TkintplatdeclsVptr->V_TkMacGetXWindow)
-#endif
-
-#ifndef TkMacGrowToplevel
-# define TkMacGrowToplevel (*TkintplatdeclsVptr->V_TkMacGrowToplevel)
-#endif
-
-#ifndef TkMacHandleMenuSelect
-# define TkMacHandleMenuSelect (*TkintplatdeclsVptr->V_TkMacHandleMenuSelect)
-#endif
-
-#ifndef TkMacHandleTearoffMenu
-# define TkMacHandleTearoffMenu (*TkintplatdeclsVptr->V_TkMacHandleTearoffMenu)
-#endif
-
-#ifndef TkMacInstallCursor
-# define TkMacInstallCursor (*TkintplatdeclsVptr->V_TkMacInstallCursor)
-#endif
-
-#ifndef TkMacInvalidateWindow
-# define TkMacInvalidateWindow (*TkintplatdeclsVptr->V_TkMacInvalidateWindow)
-#endif
-
-#ifndef TkMacIsCharacterMissing
-# define TkMacIsCharacterMissing (*TkintplatdeclsVptr->V_TkMacIsCharacterMissing)
-#endif
-
-#ifndef TkMacMakeRealWindowExist
-# define TkMacMakeRealWindowExist (*TkintplatdeclsVptr->V_TkMacMakeRealWindowExist)
-#endif
-
-#ifndef TkMacMakeStippleMap
-# define TkMacMakeStippleMap (*TkintplatdeclsVptr->V_TkMacMakeStippleMap)
-#endif
-
-#ifndef TkMacMenuClick
-# define TkMacMenuClick (*TkintplatdeclsVptr->V_TkMacMenuClick)
-#endif
-
-#ifndef TkMacOSXButtonKeyState
-# define TkMacOSXButtonKeyState (*TkintplatdeclsVptr->V_TkMacOSXButtonKeyState)
-#endif
-
-#ifndef TkMacOSXClearMenubarActive
-# define TkMacOSXClearMenubarActive (*TkintplatdeclsVptr->V_TkMacOSXClearMenubarActive)
-#endif
-
-#ifndef TkMacOSXContainerId
-# define TkMacOSXContainerId (*TkintplatdeclsVptr->V_TkMacOSXContainerId)
-#endif
-
-#ifndef TkMacOSXDispatchMenuEvent
-# define TkMacOSXDispatchMenuEvent (*TkintplatdeclsVptr->V_TkMacOSXDispatchMenuEvent)
-#endif
-
-#ifndef TkMacOSXDoHLEvent
-# define TkMacOSXDoHLEvent (*TkintplatdeclsVptr->V_TkMacOSXDoHLEvent)
-#endif
-
-#ifndef TkMacOSXGetCapture
-# define TkMacOSXGetCapture (*TkintplatdeclsVptr->V_TkMacOSXGetCapture)
-#endif
-
-#ifndef TkMacOSXGetHostToplevel
-# define TkMacOSXGetHostToplevel (*TkintplatdeclsVptr->V_TkMacOSXGetHostToplevel)
-#endif
-
-#ifndef TkMacOSXGetXWindow
-# define TkMacOSXGetXWindow (*TkintplatdeclsVptr->V_TkMacOSXGetXWindow)
-#endif
-
-#ifndef TkMacOSXGrowToplevel
-# define TkMacOSXGrowToplevel (*TkintplatdeclsVptr->V_TkMacOSXGrowToplevel)
-#endif
-
-#ifndef TkMacOSXHandleMenuSelect
-# define TkMacOSXHandleMenuSelect (*TkintplatdeclsVptr->V_TkMacOSXHandleMenuSelect)
-#endif
-
-#ifndef TkMacOSXHandleTearoffMenu
-# define TkMacOSXHandleTearoffMenu (*TkintplatdeclsVptr->V_TkMacOSXHandleTearoffMenu)
-#endif
-
-#ifndef TkMacOSXInstallCursor
-# define TkMacOSXInstallCursor (*TkintplatdeclsVptr->V_TkMacOSXInstallCursor)
-#endif
-
-#ifndef TkMacOSXInvalidateWindow
-# define TkMacOSXInvalidateWindow (*TkintplatdeclsVptr->V_TkMacOSXInvalidateWindow)
-#endif
-
-#ifndef TkMacOSXIsCharacterMissing
-# define TkMacOSXIsCharacterMissing (*TkintplatdeclsVptr->V_TkMacOSXIsCharacterMissing)
-#endif
-
-#ifndef TkMacOSXMakeRealWindowExist
-# define TkMacOSXMakeRealWindowExist (*TkintplatdeclsVptr->V_TkMacOSXMakeRealWindowExist)
-#endif
-
-#ifndef TkMacOSXMakeStippleMap
-# define TkMacOSXMakeStippleMap (*TkintplatdeclsVptr->V_TkMacOSXMakeStippleMap)
-#endif
-
-#ifndef TkMacOSXMenuClick
-# define TkMacOSXMenuClick (*TkintplatdeclsVptr->V_TkMacOSXMenuClick)
-#endif
-
-#ifndef TkMacOSXPreprocessMenu
-# define TkMacOSXPreprocessMenu (*TkintplatdeclsVptr->V_TkMacOSXPreprocessMenu)
-#endif
-
-#ifndef TkMacOSXRegisterOffScreenWindow
-# define TkMacOSXRegisterOffScreenWindow (*TkintplatdeclsVptr->V_TkMacOSXRegisterOffScreenWindow)
-#endif
-
-#ifndef TkMacOSXResizable
-# define TkMacOSXResizable (*TkintplatdeclsVptr->V_TkMacOSXResizable)
-#endif
-
-#ifndef TkMacOSXSetHelpMenuItemCount
-# define TkMacOSXSetHelpMenuItemCount (*TkintplatdeclsVptr->V_TkMacOSXSetHelpMenuItemCount)
-#endif
-
-#ifndef TkMacOSXSetScrollbarGrow
-# define TkMacOSXSetScrollbarGrow (*TkintplatdeclsVptr->V_TkMacOSXSetScrollbarGrow)
-#endif
-
-#ifndef TkMacOSXSetUpClippingRgn
-# define TkMacOSXSetUpClippingRgn (*TkintplatdeclsVptr->V_TkMacOSXSetUpClippingRgn)
-#endif
-
-#ifndef TkMacOSXSetUpGraphicsPort
-# define TkMacOSXSetUpGraphicsPort (*TkintplatdeclsVptr->V_TkMacOSXSetUpGraphicsPort)
-#endif
-
-#ifndef TkMacOSXUnregisterMacWindow
-# define TkMacOSXUnregisterMacWindow (*TkintplatdeclsVptr->V_TkMacOSXUnregisterMacWindow)
-#endif
-
-#ifndef TkMacOSXUpdateClipRgn
-# define TkMacOSXUpdateClipRgn (*TkintplatdeclsVptr->V_TkMacOSXUpdateClipRgn)
-#endif
-
-#ifndef TkMacOSXUseMenuID
-# define TkMacOSXUseMenuID (*TkintplatdeclsVptr->V_TkMacOSXUseMenuID)
-#endif
-
-#ifndef TkMacOSXVisableClipRgn
-# define TkMacOSXVisableClipRgn (*TkintplatdeclsVptr->V_TkMacOSXVisableClipRgn)
-#endif
-
-#ifndef TkMacOSXWinBounds
-# define TkMacOSXWinBounds (*TkintplatdeclsVptr->V_TkMacOSXWinBounds)
-#endif
-
-#ifndef TkMacOSXWindowOffset
-# define TkMacOSXWindowOffset (*TkintplatdeclsVptr->V_TkMacOSXWindowOffset)
-#endif
-
-#ifndef TkMacOSXZoomToplevel
-# define TkMacOSXZoomToplevel (*TkintplatdeclsVptr->V_TkMacOSXZoomToplevel)
-#endif
-
-#ifndef TkMacPreprocessMenu
-# define TkMacPreprocessMenu (*TkintplatdeclsVptr->V_TkMacPreprocessMenu)
-#endif
-
-#ifndef TkMacRegisterOffScreenWindow
-# define TkMacRegisterOffScreenWindow (*TkintplatdeclsVptr->V_TkMacRegisterOffScreenWindow)
-#endif
-
-#ifndef TkMacResizable
-# define TkMacResizable (*TkintplatdeclsVptr->V_TkMacResizable)
-#endif
-
-#ifndef TkMacSetHelpMenuItemCount
-# define TkMacSetHelpMenuItemCount (*TkintplatdeclsVptr->V_TkMacSetHelpMenuItemCount)
-#endif
-
-#ifndef TkMacSetScrollbarGrow
-# define TkMacSetScrollbarGrow (*TkintplatdeclsVptr->V_TkMacSetScrollbarGrow)
-#endif
-
-#ifndef TkMacSetUpClippingRgn
-# define TkMacSetUpClippingRgn (*TkintplatdeclsVptr->V_TkMacSetUpClippingRgn)
-#endif
-
-#ifndef TkMacSetUpGraphicsPort
-# define TkMacSetUpGraphicsPort (*TkintplatdeclsVptr->V_TkMacSetUpGraphicsPort)
-#endif
-
-#ifndef TkMacUnregisterMacWindow
-# define TkMacUnregisterMacWindow (*TkintplatdeclsVptr->V_TkMacUnregisterMacWindow)
-#endif
-
-#ifndef TkMacUpdateClipRgn
-# define TkMacUpdateClipRgn (*TkintplatdeclsVptr->V_TkMacUpdateClipRgn)
-#endif
-
-#ifndef TkMacUseMenuID
-# define TkMacUseMenuID (*TkintplatdeclsVptr->V_TkMacUseMenuID)
-#endif
-
-#ifndef TkMacVisableClipRgn
-# define TkMacVisableClipRgn (*TkintplatdeclsVptr->V_TkMacVisableClipRgn)
-#endif
-
-#ifndef TkMacWinBounds
-# define TkMacWinBounds (*TkintplatdeclsVptr->V_TkMacWinBounds)
-#endif
-
-#ifndef TkMacWindowOffset
-# define TkMacWindowOffset (*TkintplatdeclsVptr->V_TkMacWindowOffset)
-#endif
-
-#ifndef TkMacZoomToplevel
-# define TkMacZoomToplevel (*TkintplatdeclsVptr->V_TkMacZoomToplevel)
-#endif
-
-#ifndef TkPointerDeadWindow
-# define TkPointerDeadWindow (*TkintplatdeclsVptr->V_TkPointerDeadWindow)
-#endif
-
-#ifndef TkSendCleanup
-# define TkSendCleanup (*TkintplatdeclsVptr->V_TkSendCleanup)
-#endif
-
-#ifndef TkSetMacColor
-# define TkSetMacColor (*TkintplatdeclsVptr->V_TkSetMacColor)
-#endif
-
-#ifndef TkSetPixmapColormap
-# define TkSetPixmapColormap (*TkintplatdeclsVptr->V_TkSetPixmapColormap)
-#endif
-
-#ifndef TkSetWMName
-# define TkSetWMName (*TkintplatdeclsVptr->V_TkSetWMName)
-#endif
-
-#ifndef TkSuspendClipboard
-# define TkSuspendClipboard (*TkintplatdeclsVptr->V_TkSuspendClipboard)
-#endif
-
-#ifndef TkUnixContainerId
-# define TkUnixContainerId (*TkintplatdeclsVptr->V_TkUnixContainerId)
-#endif
-
-#ifndef TkUnixDoOneXEvent
-# define TkUnixDoOneXEvent (*TkintplatdeclsVptr->V_TkUnixDoOneXEvent)
-#endif
-
-#ifndef TkUnixSetMenubar
-# define TkUnixSetMenubar (*TkintplatdeclsVptr->V_TkUnixSetMenubar)
-#endif
-
-#ifndef TkWinCancelMouseTimer
-# define TkWinCancelMouseTimer (*TkintplatdeclsVptr->V_TkWinCancelMouseTimer)
-#endif
-
-#ifndef TkWinClipboardRender
-# define TkWinClipboardRender (*TkintplatdeclsVptr->V_TkWinClipboardRender)
-#endif
-
-#ifndef TkWinDialogDebug
-# define TkWinDialogDebug (*TkintplatdeclsVptr->V_TkWinDialogDebug)
-#endif
-
-#ifndef TkWinEmbeddedEventProc
-# define TkWinEmbeddedEventProc (*TkintplatdeclsVptr->V_TkWinEmbeddedEventProc)
-#endif
-
-#ifndef TkWinFillRect
-# define TkWinFillRect (*TkintplatdeclsVptr->V_TkWinFillRect)
-#endif
-
-#ifndef TkWinGetBorderPixels
-# define TkWinGetBorderPixels (*TkintplatdeclsVptr->V_TkWinGetBorderPixels)
-#endif
-
-#ifndef TkWinGetDrawableDC
-# define TkWinGetDrawableDC (*TkintplatdeclsVptr->V_TkWinGetDrawableDC)
-#endif
-
-#ifndef TkWinGetMenuSystemDefault
-# define TkWinGetMenuSystemDefault (*TkintplatdeclsVptr->V_TkWinGetMenuSystemDefault)
-#endif
-
-#ifndef TkWinGetModifierState
-# define TkWinGetModifierState (*TkintplatdeclsVptr->V_TkWinGetModifierState)
-#endif
-
-#ifndef TkWinGetPlatformId
-# define TkWinGetPlatformId (*TkintplatdeclsVptr->V_TkWinGetPlatformId)
-#endif
-
-#ifndef TkWinGetSystemPalette
-# define TkWinGetSystemPalette (*TkintplatdeclsVptr->V_TkWinGetSystemPalette)
-#endif
-
-#ifndef TkWinGetWrapperWindow
-# define TkWinGetWrapperWindow (*TkintplatdeclsVptr->V_TkWinGetWrapperWindow)
-#endif
-
-#ifndef TkWinHandleMenuEvent
-# define TkWinHandleMenuEvent (*TkintplatdeclsVptr->V_TkWinHandleMenuEvent)
-#endif
-
-#ifndef TkWinIndexOfColor
-# define TkWinIndexOfColor (*TkintplatdeclsVptr->V_TkWinIndexOfColor)
-#endif
-
-#ifndef TkWinReleaseDrawableDC
-# define TkWinReleaseDrawableDC (*TkintplatdeclsVptr->V_TkWinReleaseDrawableDC)
-#endif
-
-#ifndef TkWinResendEvent
-# define TkWinResendEvent (*TkintplatdeclsVptr->V_TkWinResendEvent)
-#endif
-
-#ifndef TkWinSelectPalette
-# define TkWinSelectPalette (*TkintplatdeclsVptr->V_TkWinSelectPalette)
-#endif
-
-#ifndef TkWinSetForegroundWindow
-# define TkWinSetForegroundWindow (*TkintplatdeclsVptr->V_TkWinSetForegroundWindow)
-#endif
-
-#ifndef TkWinSetHINSTANCE
-# define TkWinSetHINSTANCE (*TkintplatdeclsVptr->V_TkWinSetHINSTANCE)
-#endif
-
-#ifndef TkWinSetMenu
-# define TkWinSetMenu (*TkintplatdeclsVptr->V_TkWinSetMenu)
-#endif
-
-#ifndef TkWinSetWindowPos
-# define TkWinSetWindowPos (*TkintplatdeclsVptr->V_TkWinSetWindowPos)
-#endif
-
-#ifndef TkWinWmCleanup
-# define TkWinWmCleanup (*TkintplatdeclsVptr->V_TkWinWmCleanup)
-#endif
-
-#ifndef TkWinXCleanup
-# define TkWinXCleanup (*TkintplatdeclsVptr->V_TkWinXCleanup)
-#endif
-
-#ifndef TkWinXInit
-# define TkWinXInit (*TkintplatdeclsVptr->V_TkWinXInit)
-#endif
-
-#ifndef TkWmCleanup
-# define TkWmCleanup (*TkintplatdeclsVptr->V_TkWmCleanup)
-#endif
-
-#ifndef Tk_TopCoordsToWindow
-# define Tk_TopCoordsToWindow (*TkintplatdeclsVptr->V_Tk_TopCoordsToWindow)
-#endif
-
-#ifndef TkpCmapStressed
-# define TkpCmapStressed (*TkintplatdeclsVptr->V_TkpCmapStressed)
-#endif
-
-#ifndef TkpGetMS
-# define TkpGetMS (*TkintplatdeclsVptr->V_TkpGetMS)
-#endif
-
-#ifndef TkpIsWindowFloating
-# define TkpIsWindowFloating (*TkintplatdeclsVptr->V_TkpIsWindowFloating)
-#endif
-
-#ifndef TkpPrintWindowId
-# define TkpPrintWindowId (*TkintplatdeclsVptr->V_TkpPrintWindowId)
-#endif
-
-#ifndef TkpScanWindowId
-# define TkpScanWindowId (*TkintplatdeclsVptr->V_TkpScanWindowId)
-#endif
-
-#ifndef TkpSetCapture
-# define TkpSetCapture (*TkintplatdeclsVptr->V_TkpSetCapture)
-#endif
-
-#ifndef TkpSetCursor
-# define TkpSetCursor (*TkintplatdeclsVptr->V_TkpSetCursor)
-#endif
-
-#ifndef TkpSync
-# define TkpSync (*TkintplatdeclsVptr->V_TkpSync)
-#endif
-
-#ifndef TkpWmSetState
-# define TkpWmSetState (*TkintplatdeclsVptr->V_TkpWmSetState)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TKINTPLATDECLS_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls.t
deleted file mode 100644
index 72bcbc0977e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls.t
+++ /dev/null
@@ -1,845 +0,0 @@
-#ifdef _TKINTPLATDECLS
-#ifndef TkAboutDlg
-#ifdef MAC_OSX_TK
-VFUNC(void,TkAboutDlg,V_TkAboutDlg,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkAboutDlg,V_TkAboutDlg,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkAboutDlg */
-
-#ifndef TkAlignImageData
-#ifdef __WIN32__
-VFUNC(char *,TkAlignImageData,V_TkAlignImageData,_ANSI_ARGS_((XImage * image,
- int alignment, int bitOrder)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkAlignImageData */
-
-#ifndef TkCreateXEventSource
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK))
-VFUNC(void,TkCreateXEventSource,V_TkCreateXEventSource,_ANSI_ARGS_((void)))
-#endif /* #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) */
-#endif /* #ifndef TkCreateXEventSource */
-
-#ifndef TkFreeWindowId
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK))
-VFUNC(void,TkFreeWindowId,V_TkFreeWindowId,_ANSI_ARGS_((TkDisplay * dispPtr,
- Window w)))
-#endif /* #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) */
-#endif /* #ifndef TkFreeWindowId */
-
-#ifndef TkFreeXId
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK))
-VFUNC(void,TkFreeXId,V_TkFreeXId,_ANSI_ARGS_((TkDisplay * dispPtr)))
-#endif /* #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) */
-#endif /* #ifndef TkFreeXId */
-
-#ifndef TkGenWMDestroyEvent
-#ifdef MAC_OSX_TK
-VFUNC(void,TkGenWMDestroyEvent,V_TkGenWMDestroyEvent,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkGenWMDestroyEvent,V_TkGenWMDestroyEvent,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkGenWMDestroyEvent */
-
-#ifndef TkGenerateActivateEvents
-#ifdef MAC_OSX_TK
-VFUNC(void,TkGenerateActivateEvents,V_TkGenerateActivateEvents,_ANSI_ARGS_((
- TkWindow * winPtr, int active)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkGenerateActivateEvents,V_TkGenerateActivateEvents,_ANSI_ARGS_((
- TkWindow * winPtr, int active)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,TkGenerateActivateEvents,V_TkGenerateActivateEvents,_ANSI_ARGS_((
- TkWindow * winPtr, int active)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkGenerateActivateEvents */
-
-#ifndef TkGenerateButtonEvent
-#ifdef MAC_OSX_TK
-VFUNC(int,TkGenerateButtonEvent,V_TkGenerateButtonEvent,_ANSI_ARGS_((int x, int y,
- Window window, unsigned int state)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(int,TkGenerateButtonEvent,V_TkGenerateButtonEvent,_ANSI_ARGS_((int x, int y,
- Window window, unsigned int state)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkGenerateButtonEvent */
-
-#ifndef TkGetTransientMaster
-#ifdef MAC_OSX_TK
-VFUNC(Window,TkGetTransientMaster,V_TkGetTransientMaster,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(Window,TkGetTransientMaster,V_TkGetTransientMaster,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkGetTransientMaster */
-
-#ifndef TkInitXId
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK))
-VFUNC(void,TkInitXId,V_TkInitXId,_ANSI_ARGS_((TkDisplay * dispPtr)))
-#endif /* #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) */
-#endif /* #ifndef TkInitXId */
-
-#ifndef TkMacButtonKeyState
-#ifdef MAC_TCL
-VFUNC(unsigned int,TkMacButtonKeyState,V_TkMacButtonKeyState,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacButtonKeyState */
-
-#ifndef TkMacClearMenubarActive
-#ifdef MAC_TCL
-VFUNC(void,TkMacClearMenubarActive,V_TkMacClearMenubarActive,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacClearMenubarActive */
-
-#ifndef TkMacContainerId
-#ifdef MAC_TCL
-VFUNC(MacDrawable *,TkMacContainerId,V_TkMacContainerId,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacContainerId */
-
-#ifndef TkMacDispatchMenuEvent
-#ifdef MAC_TCL
-VFUNC(int,TkMacDispatchMenuEvent,V_TkMacDispatchMenuEvent,_ANSI_ARGS_((int menuID,
- int index)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacDispatchMenuEvent */
-
-#ifndef TkMacDoHLEvent
-#ifdef MAC_TCL
-VFUNC(void,TkMacDoHLEvent,V_TkMacDoHLEvent,_ANSI_ARGS_((EventRecord * theEvent)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacDoHLEvent */
-
-#ifndef TkMacGenerateTime
-#ifdef MAC_TCL
-VFUNC(Time,TkMacGenerateTime,V_TkMacGenerateTime,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacGenerateTime */
-
-#ifndef TkMacGetHostToplevel
-#ifdef MAC_TCL
-VFUNC(MacDrawable *,TkMacGetHostToplevel,V_TkMacGetHostToplevel,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacGetHostToplevel */
-
-#ifndef TkMacGetScrollbarGrowWindow
-#ifdef MAC_TCL
-VFUNC(TkWindow *,TkMacGetScrollbarGrowWindow,V_TkMacGetScrollbarGrowWindow,_ANSI_ARGS_((
- TkWindow * winPtr)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacGetScrollbarGrowWindow */
-
-#ifndef TkMacGetXWindow
-#ifdef MAC_TCL
-VFUNC(Window,TkMacGetXWindow,V_TkMacGetXWindow,_ANSI_ARGS_((WindowRef macWinPtr)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacGetXWindow */
-
-#ifndef TkMacGrowToplevel
-#ifdef MAC_TCL
-VFUNC(int,TkMacGrowToplevel,V_TkMacGrowToplevel,_ANSI_ARGS_((WindowRef whichWindow,
- Point start)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacGrowToplevel */
-
-#ifndef TkMacHandleMenuSelect
-#ifdef MAC_TCL
-VFUNC(void,TkMacHandleMenuSelect,V_TkMacHandleMenuSelect,_ANSI_ARGS_((long mResult,
- int optionKeyPressed)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacHandleMenuSelect */
-
-#ifndef TkMacHandleTearoffMenu
-#ifdef MAC_TCL
-VFUNC(void,TkMacHandleTearoffMenu,V_TkMacHandleTearoffMenu,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacHandleTearoffMenu */
-
-#ifndef TkMacInstallCursor
-#ifdef MAC_TCL
-VFUNC(void,TkMacInstallCursor,V_TkMacInstallCursor,_ANSI_ARGS_((int resizeOverride)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacInstallCursor */
-
-#ifndef TkMacInvalidateWindow
-#ifdef MAC_TCL
-VFUNC(void,TkMacInvalidateWindow,V_TkMacInvalidateWindow,_ANSI_ARGS_((
- MacDrawable * macWin, int flag)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacInvalidateWindow */
-
-#ifndef TkMacIsCharacterMissing
-#ifdef MAC_TCL
-VFUNC(int,TkMacIsCharacterMissing,V_TkMacIsCharacterMissing,_ANSI_ARGS_((Tk_Font tkfont,
- unsigned int searchChar)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacIsCharacterMissing */
-
-#ifndef TkMacMakeRealWindowExist
-#ifdef MAC_TCL
-VFUNC(void,TkMacMakeRealWindowExist,V_TkMacMakeRealWindowExist,_ANSI_ARGS_((
- TkWindow * winPtr)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacMakeRealWindowExist */
-
-#ifndef TkMacMakeStippleMap
-#ifdef MAC_TCL
-VFUNC(BitMapPtr,TkMacMakeStippleMap,V_TkMacMakeStippleMap,_ANSI_ARGS_((Drawable d1,
- Drawable d2)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacMakeStippleMap */
-
-#ifndef TkMacMenuClick
-#ifdef MAC_TCL
-VFUNC(void,TkMacMenuClick,V_TkMacMenuClick,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacMenuClick */
-
-#ifndef TkMacOSXButtonKeyState
-#ifdef MAC_OSX_TK
-VFUNC(unsigned int,TkMacOSXButtonKeyState,V_TkMacOSXButtonKeyState,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXButtonKeyState */
-
-#ifndef TkMacOSXClearMenubarActive
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXClearMenubarActive,V_TkMacOSXClearMenubarActive,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXClearMenubarActive */
-
-#ifndef TkMacOSXContainerId
-#ifdef MAC_OSX_TK
-VFUNC(MacDrawable *,TkMacOSXContainerId,V_TkMacOSXContainerId,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXContainerId */
-
-#ifndef TkMacOSXDispatchMenuEvent
-#ifdef MAC_OSX_TK
-VFUNC(int,TkMacOSXDispatchMenuEvent,V_TkMacOSXDispatchMenuEvent,_ANSI_ARGS_((int menuID,
- int index)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXDispatchMenuEvent */
-
-#ifndef TkMacOSXDoHLEvent
-#ifdef MAC_OSX_TK
-VFUNC(int,TkMacOSXDoHLEvent,V_TkMacOSXDoHLEvent,_ANSI_ARGS_((
- EventRecord * theEvent)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXDoHLEvent */
-
-#ifndef TkMacOSXGetCapture
-#ifdef MAC_OSX_TK
-VFUNC(Tk_Window,TkMacOSXGetCapture,V_TkMacOSXGetCapture,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXGetCapture */
-
-#ifndef TkMacOSXGetHostToplevel
-#ifdef MAC_OSX_TK
-VFUNC(MacDrawable *,TkMacOSXGetHostToplevel,V_TkMacOSXGetHostToplevel,_ANSI_ARGS_((
- TkWindow * winPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXGetHostToplevel */
-
-#ifndef TkMacOSXGetXWindow
-#ifdef MAC_OSX_TK
-VFUNC(Window,TkMacOSXGetXWindow,V_TkMacOSXGetXWindow,_ANSI_ARGS_((WindowRef macWinPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXGetXWindow */
-
-#ifndef TkMacOSXGrowToplevel
-#ifdef MAC_OSX_TK
-VFUNC(int,TkMacOSXGrowToplevel,V_TkMacOSXGrowToplevel,_ANSI_ARGS_((
- WindowRef whichWindow, Point start)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXGrowToplevel */
-
-#ifndef TkMacOSXHandleMenuSelect
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXHandleMenuSelect,V_TkMacOSXHandleMenuSelect,_ANSI_ARGS_((long mResult,
- int optionKeyPressed)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXHandleMenuSelect */
-
-#ifndef TkMacOSXHandleTearoffMenu
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXHandleTearoffMenu,V_TkMacOSXHandleTearoffMenu,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXHandleTearoffMenu */
-
-#ifndef TkMacOSXInstallCursor
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXInstallCursor,V_TkMacOSXInstallCursor,_ANSI_ARGS_((
- int resizeOverride)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXInstallCursor */
-
-#ifndef TkMacOSXInvalidateWindow
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXInvalidateWindow,V_TkMacOSXInvalidateWindow,_ANSI_ARGS_((
- MacDrawable * macWin, int flag)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXInvalidateWindow */
-
-#ifndef TkMacOSXIsCharacterMissing
-#ifdef MAC_OSX_TK
-VFUNC(int,TkMacOSXIsCharacterMissing,V_TkMacOSXIsCharacterMissing,_ANSI_ARGS_((
- Tk_Font tkfont, unsigned int searchChar)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXIsCharacterMissing */
-
-#ifndef TkMacOSXMakeRealWindowExist
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXMakeRealWindowExist,V_TkMacOSXMakeRealWindowExist,_ANSI_ARGS_((
- TkWindow * winPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXMakeRealWindowExist */
-
-#ifndef TkMacOSXMakeStippleMap
-#ifdef MAC_OSX_TK
-VFUNC(BitMapPtr,TkMacOSXMakeStippleMap,V_TkMacOSXMakeStippleMap,_ANSI_ARGS_((Drawable d1,
- Drawable d2)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXMakeStippleMap */
-
-#ifndef TkMacOSXMenuClick
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXMenuClick,V_TkMacOSXMenuClick,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXMenuClick */
-
-#ifndef TkMacOSXPreprocessMenu
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXPreprocessMenu,V_TkMacOSXPreprocessMenu,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXPreprocessMenu */
-
-#ifndef TkMacOSXRegisterOffScreenWindow
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXRegisterOffScreenWindow,V_TkMacOSXRegisterOffScreenWindow,_ANSI_ARGS_((
- Window window, GWorldPtr portPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXRegisterOffScreenWindow */
-
-#ifndef TkMacOSXResizable
-#ifdef MAC_OSX_TK
-VFUNC(int,TkMacOSXResizable,V_TkMacOSXResizable,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXResizable */
-
-#ifndef TkMacOSXSetHelpMenuItemCount
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXSetHelpMenuItemCount,V_TkMacOSXSetHelpMenuItemCount,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXSetHelpMenuItemCount */
-
-#ifndef TkMacOSXSetScrollbarGrow
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXSetScrollbarGrow,V_TkMacOSXSetScrollbarGrow,_ANSI_ARGS_((
- TkWindow * winPtr, int flag)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXSetScrollbarGrow */
-
-#ifndef TkMacOSXSetUpClippingRgn
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXSetUpClippingRgn,V_TkMacOSXSetUpClippingRgn,_ANSI_ARGS_((
- Drawable drawable)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXSetUpClippingRgn */
-
-#ifndef TkMacOSXSetUpGraphicsPort
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXSetUpGraphicsPort,V_TkMacOSXSetUpGraphicsPort,_ANSI_ARGS_((GC gc,
- GWorldPtr destPort)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXSetUpGraphicsPort */
-
-#ifndef TkMacOSXUnregisterMacWindow
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXUnregisterMacWindow,V_TkMacOSXUnregisterMacWindow,_ANSI_ARGS_((
- WindowRef portPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXUnregisterMacWindow */
-
-#ifndef TkMacOSXUpdateClipRgn
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXUpdateClipRgn,V_TkMacOSXUpdateClipRgn,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXUpdateClipRgn */
-
-#ifndef TkMacOSXUseMenuID
-#ifdef MAC_OSX_TK
-VFUNC(int,TkMacOSXUseMenuID,V_TkMacOSXUseMenuID,_ANSI_ARGS_((short macID)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXUseMenuID */
-
-#ifndef TkMacOSXVisableClipRgn
-#ifdef MAC_OSX_TK
-VFUNC(RgnHandle,TkMacOSXVisableClipRgn,V_TkMacOSXVisableClipRgn,_ANSI_ARGS_((
- TkWindow * winPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXVisableClipRgn */
-
-#ifndef TkMacOSXWinBounds
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXWinBounds,V_TkMacOSXWinBounds,_ANSI_ARGS_((TkWindow * winPtr,
- Rect * geometry)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXWinBounds */
-
-#ifndef TkMacOSXWindowOffset
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXWindowOffset,V_TkMacOSXWindowOffset,_ANSI_ARGS_((WindowRef wRef,
- int * xOffset, int * yOffset)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXWindowOffset */
-
-#ifndef TkMacOSXZoomToplevel
-#ifdef MAC_OSX_TK
-VFUNC(int,TkMacOSXZoomToplevel,V_TkMacOSXZoomToplevel,_ANSI_ARGS_((
- WindowPtr whichWindow, Point where,
- short zoomPart)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXZoomToplevel */
-
-#ifndef TkMacPreprocessMenu
-#ifdef MAC_TCL
-VFUNC(void,TkMacPreprocessMenu,V_TkMacPreprocessMenu,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacPreprocessMenu */
-
-#ifndef TkMacRegisterOffScreenWindow
-#ifdef MAC_TCL
-VFUNC(void,TkMacRegisterOffScreenWindow,V_TkMacRegisterOffScreenWindow,_ANSI_ARGS_((
- Window window, GWorldPtr portPtr)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacRegisterOffScreenWindow */
-
-#ifndef TkMacResizable
-#ifdef MAC_TCL
-VFUNC(int,TkMacResizable,V_TkMacResizable,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacResizable */
-
-#ifndef TkMacSetHelpMenuItemCount
-#ifdef MAC_TCL
-VFUNC(void,TkMacSetHelpMenuItemCount,V_TkMacSetHelpMenuItemCount,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacSetHelpMenuItemCount */
-
-#ifndef TkMacSetScrollbarGrow
-#ifdef MAC_TCL
-VFUNC(void,TkMacSetScrollbarGrow,V_TkMacSetScrollbarGrow,_ANSI_ARGS_((TkWindow * winPtr,
- int flag)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacSetScrollbarGrow */
-
-#ifndef TkMacSetUpClippingRgn
-#ifdef MAC_TCL
-VFUNC(void,TkMacSetUpClippingRgn,V_TkMacSetUpClippingRgn,_ANSI_ARGS_((Drawable drawable)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacSetUpClippingRgn */
-
-#ifndef TkMacSetUpGraphicsPort
-#ifdef MAC_TCL
-VFUNC(void,TkMacSetUpGraphicsPort,V_TkMacSetUpGraphicsPort,_ANSI_ARGS_((GC gc)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacSetUpGraphicsPort */
-
-#ifndef TkMacUnregisterMacWindow
-#ifdef MAC_TCL
-VFUNC(void,TkMacUnregisterMacWindow,V_TkMacUnregisterMacWindow,_ANSI_ARGS_((
- GWorldPtr portPtr)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacUnregisterMacWindow */
-
-#ifndef TkMacUpdateClipRgn
-#ifdef MAC_TCL
-VFUNC(void,TkMacUpdateClipRgn,V_TkMacUpdateClipRgn,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacUpdateClipRgn */
-
-#ifndef TkMacUseMenuID
-#ifdef MAC_TCL
-VFUNC(int,TkMacUseMenuID,V_TkMacUseMenuID,_ANSI_ARGS_((short macID)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacUseMenuID */
-
-#ifndef TkMacVisableClipRgn
-#ifdef MAC_TCL
-VFUNC(RgnHandle,TkMacVisableClipRgn,V_TkMacVisableClipRgn,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacVisableClipRgn */
-
-#ifndef TkMacWinBounds
-#ifdef MAC_TCL
-VFUNC(void,TkMacWinBounds,V_TkMacWinBounds,_ANSI_ARGS_((TkWindow * winPtr,
- Rect * geometry)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacWinBounds */
-
-#ifndef TkMacWindowOffset
-#ifdef MAC_TCL
-VFUNC(void,TkMacWindowOffset,V_TkMacWindowOffset,_ANSI_ARGS_((WindowRef wRef,
- int * xOffset, int * yOffset)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacWindowOffset */
-
-#ifndef TkMacZoomToplevel
-#ifdef MAC_TCL
-VFUNC(int,TkMacZoomToplevel,V_TkMacZoomToplevel,_ANSI_ARGS_((WindowPtr whichWindow,
- Point where, short zoomPart)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacZoomToplevel */
-
-#ifndef TkPointerDeadWindow
-#ifdef MAC_OSX_TK
-VFUNC(void,TkPointerDeadWindow,V_TkPointerDeadWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkPointerDeadWindow,V_TkPointerDeadWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,TkPointerDeadWindow,V_TkPointerDeadWindow,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkPointerDeadWindow */
-
-#ifndef TkSendCleanup
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK))
-VFUNC(void,TkSendCleanup,V_TkSendCleanup,_ANSI_ARGS_((TkDisplay * dispPtr)))
-#endif /* #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) */
-#endif /* #ifndef TkSendCleanup */
-
-#ifndef TkSetMacColor
-#ifdef MAC_OSX_TK
-VFUNC(int,TkSetMacColor,V_TkSetMacColor,_ANSI_ARGS_((unsigned long pixel,
- RGBColor * macColor)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(int,TkSetMacColor,V_TkSetMacColor,_ANSI_ARGS_((unsigned long pixel,
- RGBColor * macColor)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkSetMacColor */
-
-#ifndef TkSetPixmapColormap
-#ifdef __WIN32__
-VFUNC(void,TkSetPixmapColormap,V_TkSetPixmapColormap,_ANSI_ARGS_((Pixmap pixmap,
- Colormap colormap)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkSetPixmapColormap */
-
-#ifndef TkSetWMName
-#ifdef MAC_OSX_TK
-VFUNC(void,TkSetWMName,V_TkSetWMName,_ANSI_ARGS_((TkWindow * winPtr,
- Tk_Uid titleUid)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkSetWMName,V_TkSetWMName,_ANSI_ARGS_((TkWindow * winPtr,
- Tk_Uid titleUid)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkSetWMName */
-
-#ifndef TkSuspendClipboard
-#ifdef MAC_OSX_TK
-VFUNC(void,TkSuspendClipboard,V_TkSuspendClipboard,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkSuspendClipboard,V_TkSuspendClipboard,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkSuspendClipboard */
-
-#ifndef TkUnixContainerId
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK))
-VFUNC(Window,TkUnixContainerId,V_TkUnixContainerId,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) */
-#endif /* #ifndef TkUnixContainerId */
-
-#ifndef TkUnixDoOneXEvent
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK))
-VFUNC(int,TkUnixDoOneXEvent,V_TkUnixDoOneXEvent,_ANSI_ARGS_((Tcl_Time * timePtr)))
-#endif /* #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) */
-#endif /* #ifndef TkUnixDoOneXEvent */
-
-#ifndef TkUnixSetMenubar
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK))
-VFUNC(void,TkUnixSetMenubar,V_TkUnixSetMenubar,_ANSI_ARGS_((Tk_Window tkwin,
- Tk_Window menubar)))
-#endif /* #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) */
-#endif /* #ifndef TkUnixSetMenubar */
-
-#ifndef TkWinCancelMouseTimer
-#ifdef __WIN32__
-VFUNC(void,TkWinCancelMouseTimer,V_TkWinCancelMouseTimer,_ANSI_ARGS_((void)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinCancelMouseTimer */
-
-#ifndef TkWinClipboardRender
-#ifdef __WIN32__
-VFUNC(void,TkWinClipboardRender,V_TkWinClipboardRender,_ANSI_ARGS_((
- TkDisplay * dispPtr, UINT format)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinClipboardRender */
-
-#ifndef TkWinDialogDebug
-#ifdef __WIN32__
-VFUNC(void,TkWinDialogDebug,V_TkWinDialogDebug,_ANSI_ARGS_((int debug)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinDialogDebug */
-
-#ifndef TkWinEmbeddedEventProc
-#ifdef __WIN32__
-VFUNC(LRESULT,TkWinEmbeddedEventProc,V_TkWinEmbeddedEventProc,_ANSI_ARGS_((HWND hwnd,
- UINT message, WPARAM wParam, LPARAM lParam)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinEmbeddedEventProc */
-
-#ifndef TkWinFillRect
-#ifdef __WIN32__
-VFUNC(void,TkWinFillRect,V_TkWinFillRect,_ANSI_ARGS_((HDC dc, int x, int y,
- int width, int height, int pixel)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinFillRect */
-
-#ifndef TkWinGetBorderPixels
-#ifdef __WIN32__
-VFUNC(COLORREF,TkWinGetBorderPixels,V_TkWinGetBorderPixels,_ANSI_ARGS_((Tk_Window tkwin,
- Tk_3DBorder border, int which)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinGetBorderPixels */
-
-#ifndef TkWinGetDrawableDC
-#ifdef __WIN32__
-VFUNC(HDC,TkWinGetDrawableDC,V_TkWinGetDrawableDC,_ANSI_ARGS_((Display * display,
- Drawable d, TkWinDCState* state)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinGetDrawableDC */
-
-#ifndef TkWinGetMenuSystemDefault
-#ifdef __WIN32__
-VFUNC(Tcl_Obj *,TkWinGetMenuSystemDefault,V_TkWinGetMenuSystemDefault,_ANSI_ARGS_((
- Tk_Window tkwin, CONST char * dbName,
- CONST char * className)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinGetMenuSystemDefault */
-
-#ifndef TkWinGetModifierState
-#ifdef __WIN32__
-VFUNC(int,TkWinGetModifierState,V_TkWinGetModifierState,_ANSI_ARGS_((void)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinGetModifierState */
-
-#ifndef TkWinGetPlatformId
-#ifdef __WIN32__
-VFUNC(int,TkWinGetPlatformId,V_TkWinGetPlatformId,_ANSI_ARGS_((void)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinGetPlatformId */
-
-#ifndef TkWinGetSystemPalette
-#ifdef __WIN32__
-VFUNC(HPALETTE,TkWinGetSystemPalette,V_TkWinGetSystemPalette,_ANSI_ARGS_((void)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinGetSystemPalette */
-
-#ifndef TkWinGetWrapperWindow
-#ifdef __WIN32__
-VFUNC(HWND,TkWinGetWrapperWindow,V_TkWinGetWrapperWindow,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinGetWrapperWindow */
-
-#ifndef TkWinHandleMenuEvent
-#ifdef __WIN32__
-VFUNC(int,TkWinHandleMenuEvent,V_TkWinHandleMenuEvent,_ANSI_ARGS_((HWND * phwnd,
- UINT * pMessage, WPARAM * pwParam,
- LPARAM * plParam, LRESULT * plResult)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinHandleMenuEvent */
-
-#ifndef TkWinIndexOfColor
-#ifdef __WIN32__
-VFUNC(int,TkWinIndexOfColor,V_TkWinIndexOfColor,_ANSI_ARGS_((XColor * colorPtr)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinIndexOfColor */
-
-#ifndef TkWinReleaseDrawableDC
-#ifdef __WIN32__
-VFUNC(void,TkWinReleaseDrawableDC,V_TkWinReleaseDrawableDC,_ANSI_ARGS_((Drawable d,
- HDC hdc, TkWinDCState* state)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinReleaseDrawableDC */
-
-#ifndef TkWinResendEvent
-#ifdef __WIN32__
-VFUNC(LRESULT,TkWinResendEvent,V_TkWinResendEvent,_ANSI_ARGS_((WNDPROC wndproc,
- HWND hwnd, XEvent * eventPtr)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinResendEvent */
-
-#ifndef TkWinSelectPalette
-#ifdef __WIN32__
-VFUNC(HPALETTE,TkWinSelectPalette,V_TkWinSelectPalette,_ANSI_ARGS_((HDC dc,
- Colormap colormap)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinSelectPalette */
-
-#ifndef TkWinSetForegroundWindow
-#ifdef __WIN32__
-VFUNC(void,TkWinSetForegroundWindow,V_TkWinSetForegroundWindow,_ANSI_ARGS_((
- TkWindow * winPtr)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinSetForegroundWindow */
-
-#ifndef TkWinSetHINSTANCE
-#ifdef __WIN32__
-VFUNC(void,TkWinSetHINSTANCE,V_TkWinSetHINSTANCE,_ANSI_ARGS_((HINSTANCE hInstance)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinSetHINSTANCE */
-
-#ifndef TkWinSetMenu
-#ifdef __WIN32__
-VFUNC(void,TkWinSetMenu,V_TkWinSetMenu,_ANSI_ARGS_((Tk_Window tkwin,
- HMENU hMenu)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinSetMenu */
-
-#ifndef TkWinSetWindowPos
-#ifdef __WIN32__
-VFUNC(void,TkWinSetWindowPos,V_TkWinSetWindowPos,_ANSI_ARGS_((HWND hwnd,
- HWND siblingHwnd, int pos)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinSetWindowPos */
-
-#ifndef TkWinWmCleanup
-#ifdef __WIN32__
-VFUNC(void,TkWinWmCleanup,V_TkWinWmCleanup,_ANSI_ARGS_((HINSTANCE hInstance)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinWmCleanup */
-
-#ifndef TkWinXCleanup
-#ifdef __WIN32__
-VFUNC(void,TkWinXCleanup,V_TkWinXCleanup,_ANSI_ARGS_((HINSTANCE hInstance)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinXCleanup */
-
-#ifndef TkWinXInit
-#ifdef __WIN32__
-VFUNC(void,TkWinXInit,V_TkWinXInit,_ANSI_ARGS_((HINSTANCE hInstance)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkWinXInit */
-
-#ifndef TkWmCleanup
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK))
-VFUNC(void,TkWmCleanup,V_TkWmCleanup,_ANSI_ARGS_((TkDisplay * dispPtr)))
-#endif /* #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) */
-#endif /* #ifndef TkWmCleanup */
-
-#ifndef Tk_TopCoordsToWindow
-#ifdef MAC_OSX_TK
-VFUNC(Tk_Window,Tk_TopCoordsToWindow,V_Tk_TopCoordsToWindow,_ANSI_ARGS_((Tk_Window tkwin,
- int rootX, int rootY, int * newX, int * newY)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(Tk_Window,Tk_TopCoordsToWindow,V_Tk_TopCoordsToWindow,_ANSI_ARGS_((Tk_Window tkwin,
- int rootX, int rootY, int * newX, int * newY)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef Tk_TopCoordsToWindow */
-
-#ifndef TkpCmapStressed
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK))
-VFUNC(int,TkpCmapStressed,V_TkpCmapStressed,_ANSI_ARGS_((Tk_Window tkwin,
- Colormap colormap)))
-#endif /* #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) */
-#endif /* #ifndef TkpCmapStressed */
-
-#ifndef TkpGetMS
-#ifdef MAC_OSX_TK
-VFUNC(unsigned long,TkpGetMS,V_TkpGetMS,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(unsigned long,TkpGetMS,V_TkpGetMS,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(unsigned long,TkpGetMS,V_TkpGetMS,_ANSI_ARGS_((void)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkpGetMS */
-
-#ifndef TkpIsWindowFloating
-#ifdef MAC_OSX_TK
-VFUNC(int,TkpIsWindowFloating,V_TkpIsWindowFloating,_ANSI_ARGS_((WindowRef window)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(int,TkpIsWindowFloating,V_TkpIsWindowFloating,_ANSI_ARGS_((WindowRef window)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkpIsWindowFloating */
-
-#ifndef TkpPrintWindowId
-#ifdef __WIN32__
-VFUNC(void,TkpPrintWindowId,V_TkpPrintWindowId,_ANSI_ARGS_((char * buf,
- Window window)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkpPrintWindowId */
-
-#ifndef TkpScanWindowId
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK))
-VFUNC(int,TkpScanWindowId,V_TkpScanWindowId,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj *string, Window * idPtr)))
-#endif /* #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) */
-#ifdef __WIN32__
-VFUNC(int,TkpScanWindowId,V_TkpScanWindowId,_ANSI_ARGS_((Tcl_Interp * interp,
- Tcl_Obj * string, Window * idPtr)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkpScanWindowId */
-
-#ifndef TkpSetCapture
-#ifdef MAC_OSX_TK
-VFUNC(void,TkpSetCapture,V_TkpSetCapture,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkpSetCapture,V_TkpSetCapture,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,TkpSetCapture,V_TkpSetCapture,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkpSetCapture */
-
-#ifndef TkpSetCursor
-#ifdef MAC_OSX_TK
-VFUNC(void,TkpSetCursor,V_TkpSetCursor,_ANSI_ARGS_((TkpCursor cursor)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkpSetCursor,V_TkpSetCursor,_ANSI_ARGS_((TkpCursor cursor)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,TkpSetCursor,V_TkpSetCursor,_ANSI_ARGS_((TkpCursor cursor)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkpSetCursor */
-
-#ifndef TkpSync
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK))
-VFUNC(void,TkpSync,V_TkpSync,_ANSI_ARGS_((Display * display)))
-#endif /* #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) */
-#endif /* #ifndef TkpSync */
-
-#ifndef TkpWmSetState
-#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK))
-VFUNC(int,TkpWmSetState,V_TkpWmSetState,_ANSI_ARGS_((TkWindow * winPtr,
- int state)))
-#endif /* #if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) */
-#ifdef MAC_OSX_TK
-VFUNC(void,TkpWmSetState,V_TkpWmSetState,_ANSI_ARGS_((TkWindow * winPtr,
- int state)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkpWmSetState,V_TkpWmSetState,_ANSI_ARGS_((TkWindow * winPtr,
- int state)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,TkpWmSetState,V_TkpWmSetState,_ANSI_ARGS_((TkWindow * winPtr,
- int state)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkpWmSetState */
-
-#endif /* _TKINTPLATDECLS */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls_f.h
deleted file mode 100644
index 8eef38bdcb1..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntPlatDecls_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TKINTPLATDECLS_VT
-#define TKINTPLATDECLS_VT
-typedef struct TkintplatdeclsVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tkIntPlatDecls.t"
-#undef VFUNC
-#undef VVAR
-} TkintplatdeclsVtab;
-extern TkintplatdeclsVtab *TkintplatdeclsVptr;
-extern TkintplatdeclsVtab *TkintplatdeclsVGet(void);
-#endif /* TKINTPLATDECLS_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls.h
deleted file mode 100644
index 052c5ba9737..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls.h
+++ /dev/null
@@ -1,2436 +0,0 @@
-/*
- * tkIntXlibDecls.h --
- *
- * This file contains the declarations for all platform dependent
- * unsupported functions that are exported by the Tk library. These
- * interfaces are not guaranteed to remain the same between
- * versions. Use at your own risk.
- *
- * Copyright (c) 1998-1999 by Scriptics Corporation.
- * All rights reserved.
- *
- * RCS: @(#) $Id: tkIntXlibDecls.h,v 1.16 2002/10/09 11:56:33 das Exp $
- */
-
-#ifndef _TKINTXLIBDECLS
-#define _TKINTXLIBDECLS
-
-#include <X11/Xlib.h>
-
-#ifdef MAC_TCL
-#include "Xutil.h"
-#else
-#include "X11/Xutil.h"
-#endif
-
-#include "Lang.h"
-
-#ifdef BUILD_tk
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * WARNING: This file is automatically generated by the tools/genStubs.tcl
- * script. Any modifications to the function declarations below should be made
- * in the generic/tkInt.decls script.
- */
-
-/* !BEGIN!: Do not edit below this line. */
-
-/*
- * Exported function declarations:
- */
-
-#ifdef __WIN32__
-/* 0 */
-EXTERN void XSetDashes _ANSI_ARGS_((Display* display, GC gc,
- int dash_offset, _Xconst char* dash_list,
- int n));
-/* 1 */
-EXTERN XModifierKeymap* XGetModifierMapping _ANSI_ARGS_((Display* d));
-/* 2 */
-EXTERN XImage * XCreateImage _ANSI_ARGS_((Display* d, Visual* v,
- unsigned int ui1, int i1, int i2, char* cp,
- unsigned int ui2, unsigned int ui3, int i3,
- int i4));
-/* 3 */
-EXTERN XImage * XGetImage _ANSI_ARGS_((Display* d, Drawable dr,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, unsigned long ul, int i3));
-/* 4 */
-EXTERN char * XGetAtomName _ANSI_ARGS_((Display* d, Atom a));
-/* 5 */
-EXTERN char * XKeysymToString _ANSI_ARGS_((KeySym k));
-/* 6 */
-EXTERN Colormap XCreateColormap _ANSI_ARGS_((Display* d, Window w,
- Visual* v, int i));
-/* 7 */
-EXTERN Cursor XCreatePixmapCursor _ANSI_ARGS_((Display* d,
- Pixmap p1, Pixmap p2, XColor* x1, XColor* x2,
- unsigned int ui1, unsigned int ui2));
-/* 8 */
-EXTERN Cursor XCreateGlyphCursor _ANSI_ARGS_((Display* d, Font f1,
- Font f2, unsigned int ui1, unsigned int ui2,
- XColor* x1, XColor* x2));
-/* 9 */
-EXTERN GContext XGContextFromGC _ANSI_ARGS_((GC g));
-/* 10 */
-EXTERN XHostAddress * XListHosts _ANSI_ARGS_((Display* d, int* i, Bool* b));
-/* 11 */
-EXTERN KeySym XKeycodeToKeysym _ANSI_ARGS_((Display* d,
- unsigned int k, int i));
-/* 12 */
-EXTERN KeySym XStringToKeysym _ANSI_ARGS_((_Xconst char* c));
-/* 13 */
-EXTERN Window XRootWindow _ANSI_ARGS_((Display* d, int i));
-/* 14 */
-EXTERN XErrorHandler XSetErrorHandler _ANSI_ARGS_((XErrorHandler x));
-/* 15 */
-EXTERN Status XIconifyWindow _ANSI_ARGS_((Display* d, Window w,
- int i));
-/* 16 */
-EXTERN Status XWithdrawWindow _ANSI_ARGS_((Display* d, Window w,
- int i));
-/* 17 */
-EXTERN Status XGetWMColormapWindows _ANSI_ARGS_((Display* d,
- Window w, Window** wpp, int* ip));
-/* 18 */
-EXTERN Status XAllocColor _ANSI_ARGS_((Display* d, Colormap c,
- XColor* xp));
-/* 19 */
-EXTERN void XBell _ANSI_ARGS_((Display* d, int i));
-/* 20 */
-EXTERN void XChangeProperty _ANSI_ARGS_((Display* d, Window w,
- Atom a1, Atom a2, int i1, int i2,
- _Xconst unsigned char* c, int i3));
-/* 21 */
-EXTERN void XChangeWindowAttributes _ANSI_ARGS_((Display* d,
- Window w, unsigned long ul,
- XSetWindowAttributes* x));
-/* 22 */
-EXTERN void XClearWindow _ANSI_ARGS_((Display* d, Window w));
-/* 23 */
-EXTERN void XConfigureWindow _ANSI_ARGS_((Display* d, Window w,
- unsigned int i, XWindowChanges* x));
-/* 24 */
-EXTERN void XCopyArea _ANSI_ARGS_((Display* d, Drawable dr1,
- Drawable dr2, GC g, int i1, int i2,
- unsigned int ui1, unsigned int ui2, int i3,
- int i4));
-/* 25 */
-EXTERN void XCopyPlane _ANSI_ARGS_((Display* d, Drawable dr1,
- Drawable dr2, GC g, int i1, int i2,
- unsigned int ui1, unsigned int ui2, int i3,
- int i4, unsigned long ul));
-/* 26 */
-EXTERN Pixmap XCreateBitmapFromData _ANSI_ARGS_((Display* display,
- Drawable d, _Xconst char* data,
- unsigned int width, unsigned int height));
-/* 27 */
-EXTERN void XDefineCursor _ANSI_ARGS_((Display* d, Window w,
- Cursor c));
-/* 28 */
-EXTERN void XDeleteProperty _ANSI_ARGS_((Display* d, Window w,
- Atom a));
-/* 29 */
-EXTERN void XDestroyWindow _ANSI_ARGS_((Display* d, Window w));
-/* 30 */
-EXTERN void XDrawArc _ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, int i3, int i4));
-/* 31 */
-EXTERN void XDrawLines _ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XPoint* x, int i1, int i2));
-/* 32 */
-EXTERN void XDrawRectangle _ANSI_ARGS_((Display* d, Drawable dr,
- GC g, int i1, int i2, unsigned int ui1,
- unsigned int ui2));
-/* 33 */
-EXTERN void XFillArc _ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, int i3, int i4));
-/* 34 */
-EXTERN void XFillPolygon _ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XPoint* x, int i1, int i2, int i3));
-/* 35 */
-EXTERN void XFillRectangles _ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XRectangle* x, int i));
-/* 36 */
-EXTERN void XForceScreenSaver _ANSI_ARGS_((Display* d, int i));
-/* 37 */
-EXTERN void XFreeColormap _ANSI_ARGS_((Display* d, Colormap c));
-/* 38 */
-EXTERN void XFreeColors _ANSI_ARGS_((Display* d, Colormap c,
- unsigned long* ulp, int i, unsigned long ul));
-/* 39 */
-EXTERN void XFreeCursor _ANSI_ARGS_((Display* d, Cursor c));
-/* 40 */
-EXTERN void XFreeModifiermap _ANSI_ARGS_((XModifierKeymap* x));
-/* 41 */
-EXTERN Status XGetGeometry _ANSI_ARGS_((Display* d, Drawable dr,
- Window* w, int* i1, int* i2,
- unsigned int* ui1, unsigned int* ui2,
- unsigned int* ui3, unsigned int* ui4));
-/* 42 */
-EXTERN void XGetInputFocus _ANSI_ARGS_((Display* d, Window* w,
- int* i));
-/* 43 */
-EXTERN int XGetWindowProperty _ANSI_ARGS_((Display* d, Window w,
- Atom a1, long l1, long l2, Bool b, Atom a2,
- Atom* ap, int* ip, unsigned long* ulp1,
- unsigned long* ulp2, unsigned char** cpp));
-/* 44 */
-EXTERN Status XGetWindowAttributes _ANSI_ARGS_((Display* d,
- Window w, XWindowAttributes* x));
-/* 45 */
-EXTERN int XGrabKeyboard _ANSI_ARGS_((Display* d, Window w,
- Bool b, int i1, int i2, Time t));
-/* 46 */
-EXTERN int XGrabPointer _ANSI_ARGS_((Display* d, Window w1,
- Bool b, unsigned int ui, int i1, int i2,
- Window w2, Cursor c, Time t));
-/* 47 */
-EXTERN KeyCode XKeysymToKeycode _ANSI_ARGS_((Display* d, KeySym k));
-/* 48 */
-EXTERN Status XLookupColor _ANSI_ARGS_((Display* d, Colormap c1,
- _Xconst char* c2, XColor* x1, XColor* x2));
-/* 49 */
-EXTERN void XMapWindow _ANSI_ARGS_((Display* d, Window w));
-/* 50 */
-EXTERN void XMoveResizeWindow _ANSI_ARGS_((Display* d, Window w,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2));
-/* 51 */
-EXTERN void XMoveWindow _ANSI_ARGS_((Display* d, Window w,
- int i1, int i2));
-/* 52 */
-EXTERN void XNextEvent _ANSI_ARGS_((Display* d, XEvent* x));
-/* 53 */
-EXTERN void XPutBackEvent _ANSI_ARGS_((Display* d, XEvent* x));
-/* 54 */
-EXTERN void XQueryColors _ANSI_ARGS_((Display* d, Colormap c,
- XColor* x, int i));
-/* 55 */
-EXTERN Bool XQueryPointer _ANSI_ARGS_((Display* d, Window w1,
- Window* w2, Window* w3, int* i1, int* i2,
- int* i3, int* i4, unsigned int* ui));
-/* 56 */
-EXTERN Status XQueryTree _ANSI_ARGS_((Display* d, Window w1,
- Window* w2, Window* w3, Window** w4,
- unsigned int* ui));
-/* 57 */
-EXTERN void XRaiseWindow _ANSI_ARGS_((Display* d, Window w));
-/* 58 */
-EXTERN void XRefreshKeyboardMapping _ANSI_ARGS_((
- XMappingEvent* x));
-/* 59 */
-EXTERN void XResizeWindow _ANSI_ARGS_((Display* d, Window w,
- unsigned int ui1, unsigned int ui2));
-/* 60 */
-EXTERN void XSelectInput _ANSI_ARGS_((Display* d, Window w,
- long l));
-/* 61 */
-EXTERN Status XSendEvent _ANSI_ARGS_((Display* d, Window w, Bool b,
- long l, XEvent* x));
-/* 62 */
-EXTERN void XSetCommand _ANSI_ARGS_((Display* d, Window w,
- CONST char** c, int i));
-/* 63 */
-EXTERN void XSetIconName _ANSI_ARGS_((Display* d, Window w,
- _Xconst char* c));
-/* 64 */
-EXTERN void XSetInputFocus _ANSI_ARGS_((Display* d, Window w,
- int i, Time t));
-/* 65 */
-EXTERN void XSetSelectionOwner _ANSI_ARGS_((Display* d, Atom a,
- Window w, Time t));
-/* 66 */
-EXTERN void XSetWindowBackground _ANSI_ARGS_((Display* d,
- Window w, unsigned long ul));
-/* 67 */
-EXTERN void XSetWindowBackgroundPixmap _ANSI_ARGS_((Display* d,
- Window w, Pixmap p));
-/* 68 */
-EXTERN void XSetWindowBorder _ANSI_ARGS_((Display* d, Window w,
- unsigned long ul));
-/* 69 */
-EXTERN void XSetWindowBorderPixmap _ANSI_ARGS_((Display* d,
- Window w, Pixmap p));
-/* 70 */
-EXTERN void XSetWindowBorderWidth _ANSI_ARGS_((Display* d,
- Window w, unsigned int ui));
-/* 71 */
-EXTERN void XSetWindowColormap _ANSI_ARGS_((Display* d, Window w,
- Colormap c));
-/* 72 */
-EXTERN Bool XTranslateCoordinates _ANSI_ARGS_((Display* d,
- Window w1, Window w2, int i1, int i2,
- int* i3, int* i4, Window* w3));
-/* 73 */
-EXTERN void XUngrabKeyboard _ANSI_ARGS_((Display* d, Time t));
-/* 74 */
-EXTERN void XUngrabPointer _ANSI_ARGS_((Display* d, Time t));
-/* 75 */
-EXTERN void XUnmapWindow _ANSI_ARGS_((Display* d, Window w));
-/* 76 */
-EXTERN void XWindowEvent _ANSI_ARGS_((Display* d, Window w,
- long l, XEvent* x));
-/* 77 */
-EXTERN void XDestroyIC _ANSI_ARGS_((XIC x));
-/* 78 */
-EXTERN Bool XFilterEvent _ANSI_ARGS_((XEvent* x, Window w));
-/* 79 */
-EXTERN int XmbLookupString _ANSI_ARGS_((XIC xi,
- XKeyPressedEvent* xk, char* c, int i,
- KeySym* k, Status* s));
-/* 80 */
-EXTERN void TkPutImage _ANSI_ARGS_((unsigned long * colors,
- int ncolors, Display* display, Drawable d,
- GC gc, XImage* image, int src_x, int src_y,
- int dest_x, int dest_y, unsigned int width,
- unsigned int height));
-/* Slot 81 is reserved */
-/* 82 */
-EXTERN Status XParseColor _ANSI_ARGS_((Display * display,
- Colormap map, _Xconst char* spec,
- XColor * colorPtr));
-/* 83 */
-EXTERN GC XCreateGC _ANSI_ARGS_((Display* display, Drawable d,
- unsigned long valuemask, XGCValues* values));
-/* 84 */
-EXTERN void XFreeGC _ANSI_ARGS_((Display* display, GC gc));
-/* 85 */
-EXTERN Atom XInternAtom _ANSI_ARGS_((Display* display,
- _Xconst char* atom_name, Bool only_if_exists));
-/* 86 */
-EXTERN void XSetBackground _ANSI_ARGS_((Display* display, GC gc,
- unsigned long foreground));
-/* 87 */
-EXTERN void XSetForeground _ANSI_ARGS_((Display* display, GC gc,
- unsigned long foreground));
-/* 88 */
-EXTERN void XSetClipMask _ANSI_ARGS_((Display* display, GC gc,
- Pixmap pixmap));
-/* 89 */
-EXTERN void XSetClipOrigin _ANSI_ARGS_((Display* display, GC gc,
- int clip_x_origin, int clip_y_origin));
-/* 90 */
-EXTERN void XSetTSOrigin _ANSI_ARGS_((Display* display, GC gc,
- int ts_x_origin, int ts_y_origin));
-/* 91 */
-EXTERN void XChangeGC _ANSI_ARGS_((Display * d, GC gc,
- unsigned long mask, XGCValues * values));
-/* 92 */
-EXTERN void XSetFont _ANSI_ARGS_((Display * display, GC gc,
- Font font));
-/* 93 */
-EXTERN void XSetArcMode _ANSI_ARGS_((Display * display, GC gc,
- int arc_mode));
-/* 94 */
-EXTERN void XSetStipple _ANSI_ARGS_((Display * display, GC gc,
- Pixmap stipple));
-/* 95 */
-EXTERN void XSetFillRule _ANSI_ARGS_((Display * display, GC gc,
- int fill_rule));
-/* 96 */
-EXTERN void XSetFillStyle _ANSI_ARGS_((Display * display, GC gc,
- int fill_style));
-/* 97 */
-EXTERN void XSetFunction _ANSI_ARGS_((Display * display, GC gc,
- int function));
-/* 98 */
-EXTERN void XSetLineAttributes _ANSI_ARGS_((Display * display,
- GC gc, unsigned int line_width,
- int line_style, int cap_style,
- int join_style));
-/* 99 */
-EXTERN int _XInitImageFuncPtrs _ANSI_ARGS_((XImage * image));
-/* 100 */
-EXTERN XIC XCreateIC _ANSI_ARGS_((void));
-/* 101 */
-EXTERN XVisualInfo * XGetVisualInfo _ANSI_ARGS_((Display* display,
- long vinfo_mask, XVisualInfo* vinfo_template,
- int* nitems_return));
-/* 102 */
-EXTERN void XSetWMClientMachine _ANSI_ARGS_((Display* display,
- Window w, XTextProperty* text_prop));
-/* 103 */
-EXTERN Status XStringListToTextProperty _ANSI_ARGS_((char** list,
- int count, XTextProperty* text_prop_return));
-/* 104 */
-EXTERN void XDrawLine _ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int x1, int y1, int x2, int y2));
-/* 105 */
-EXTERN void XWarpPointer _ANSI_ARGS_((Display* d, Window s,
- Window dw, int sx, int sy, unsigned int sw,
- unsigned int sh, int dx, int dy));
-/* 106 */
-EXTERN void XFillRectangle _ANSI_ARGS_((Display* display,
- Drawable d, GC gc, int x, int y,
- unsigned int width, unsigned int height));
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-/* 0 */
-EXTERN void XSetDashes _ANSI_ARGS_((Display* display, GC gc,
- int dash_offset, _Xconst char* dash_list,
- int n));
-/* 1 */
-EXTERN XModifierKeymap* XGetModifierMapping _ANSI_ARGS_((Display* d));
-/* 2 */
-EXTERN XImage * XCreateImage _ANSI_ARGS_((Display* d, Visual* v,
- unsigned int ui1, int i1, int i2, char* cp,
- unsigned int ui2, unsigned int ui3, int i3,
- int i4));
-/* 3 */
-EXTERN XImage * XGetImage _ANSI_ARGS_((Display* d, Drawable dr,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, unsigned long ul, int i3));
-/* 4 */
-EXTERN char * XGetAtomName _ANSI_ARGS_((Display* d, Atom a));
-/* 5 */
-EXTERN char * XKeysymToString _ANSI_ARGS_((KeySym k));
-/* 6 */
-EXTERN Colormap XCreateColormap _ANSI_ARGS_((Display* d, Window w,
- Visual* v, int i));
-/* 7 */
-EXTERN GContext XGContextFromGC _ANSI_ARGS_((GC g));
-/* 8 */
-EXTERN KeySym XKeycodeToKeysym _ANSI_ARGS_((Display* d, KeyCode k,
- int i));
-/* 9 */
-EXTERN KeySym XStringToKeysym _ANSI_ARGS_((_Xconst char* c));
-/* 10 */
-EXTERN Window XRootWindow _ANSI_ARGS_((Display* d, int i));
-/* 11 */
-EXTERN XErrorHandler XSetErrorHandler _ANSI_ARGS_((XErrorHandler x));
-/* 12 */
-EXTERN Status XAllocColor _ANSI_ARGS_((Display* d, Colormap c,
- XColor* xp));
-/* 13 */
-EXTERN void XBell _ANSI_ARGS_((Display* d, int i));
-/* 14 */
-EXTERN void XChangeProperty _ANSI_ARGS_((Display* d, Window w,
- Atom a1, Atom a2, int i1, int i2,
- _Xconst unsigned char* c, int i3));
-/* 15 */
-EXTERN void XChangeWindowAttributes _ANSI_ARGS_((Display* d,
- Window w, unsigned long ul,
- XSetWindowAttributes* x));
-/* 16 */
-EXTERN void XConfigureWindow _ANSI_ARGS_((Display* d, Window w,
- unsigned int i, XWindowChanges* x));
-/* 17 */
-EXTERN void XCopyArea _ANSI_ARGS_((Display* d, Drawable dr1,
- Drawable dr2, GC g, int i1, int i2,
- unsigned int ui1, unsigned int ui2, int i3,
- int i4));
-/* 18 */
-EXTERN void XCopyPlane _ANSI_ARGS_((Display* d, Drawable dr1,
- Drawable dr2, GC g, int i1, int i2,
- unsigned int ui1, unsigned int ui2, int i3,
- int i4, unsigned long ul));
-/* 19 */
-EXTERN Pixmap XCreateBitmapFromData _ANSI_ARGS_((Display* display,
- Drawable d, _Xconst char* data,
- unsigned int width, unsigned int height));
-/* 20 */
-EXTERN void XDefineCursor _ANSI_ARGS_((Display* d, Window w,
- Cursor c));
-/* 21 */
-EXTERN void XDestroyWindow _ANSI_ARGS_((Display* d, Window w));
-/* 22 */
-EXTERN void XDrawArc _ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, int i3, int i4));
-/* 23 */
-EXTERN void XDrawLines _ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XPoint* x, int i1, int i2));
-/* 24 */
-EXTERN void XDrawRectangle _ANSI_ARGS_((Display* d, Drawable dr,
- GC g, int i1, int i2, unsigned int ui1,
- unsigned int ui2));
-/* 25 */
-EXTERN void XFillArc _ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, int i3, int i4));
-/* 26 */
-EXTERN void XFillPolygon _ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XPoint* x, int i1, int i2, int i3));
-/* 27 */
-EXTERN void XFillRectangles _ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XRectangle* x, int i));
-/* 28 */
-EXTERN void XFreeColormap _ANSI_ARGS_((Display* d, Colormap c));
-/* 29 */
-EXTERN void XFreeColors _ANSI_ARGS_((Display* d, Colormap c,
- unsigned long* ulp, int i, unsigned long ul));
-/* 30 */
-EXTERN void XFreeModifiermap _ANSI_ARGS_((XModifierKeymap* x));
-/* 31 */
-EXTERN Status XGetGeometry _ANSI_ARGS_((Display* d, Drawable dr,
- Window* w, int* i1, int* i2,
- unsigned int* ui1, unsigned int* ui2,
- unsigned int* ui3, unsigned int* ui4));
-/* 32 */
-EXTERN int XGetWindowProperty _ANSI_ARGS_((Display* d, Window w,
- Atom a1, long l1, long l2, Bool b, Atom a2,
- Atom* ap, int* ip, unsigned long* ulp1,
- unsigned long* ulp2, unsigned char** cpp));
-/* 33 */
-EXTERN int XGrabKeyboard _ANSI_ARGS_((Display* d, Window w,
- Bool b, int i1, int i2, Time t));
-/* 34 */
-EXTERN int XGrabPointer _ANSI_ARGS_((Display* d, Window w1,
- Bool b, unsigned int ui, int i1, int i2,
- Window w2, Cursor c, Time t));
-/* 35 */
-EXTERN KeyCode XKeysymToKeycode _ANSI_ARGS_((Display* d, KeySym k));
-/* 36 */
-EXTERN void XMapWindow _ANSI_ARGS_((Display* d, Window w));
-/* 37 */
-EXTERN void XMoveResizeWindow _ANSI_ARGS_((Display* d, Window w,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2));
-/* 38 */
-EXTERN void XMoveWindow _ANSI_ARGS_((Display* d, Window w,
- int i1, int i2));
-/* 39 */
-EXTERN Bool XQueryPointer _ANSI_ARGS_((Display* d, Window w1,
- Window* w2, Window* w3, int* i1, int* i2,
- int* i3, int* i4, unsigned int* ui));
-/* 40 */
-EXTERN void XRaiseWindow _ANSI_ARGS_((Display* d, Window w));
-/* 41 */
-EXTERN void XRefreshKeyboardMapping _ANSI_ARGS_((
- XMappingEvent* x));
-/* 42 */
-EXTERN void XResizeWindow _ANSI_ARGS_((Display* d, Window w,
- unsigned int ui1, unsigned int ui2));
-/* 43 */
-EXTERN void XSelectInput _ANSI_ARGS_((Display* d, Window w,
- long l));
-/* 44 */
-EXTERN Status XSendEvent _ANSI_ARGS_((Display* d, Window w, Bool b,
- long l, XEvent* x));
-/* 45 */
-EXTERN void XSetIconName _ANSI_ARGS_((Display* d, Window w,
- _Xconst char* c));
-/* 46 */
-EXTERN void XSetInputFocus _ANSI_ARGS_((Display* d, Window w,
- int i, Time t));
-/* 47 */
-EXTERN void XSetSelectionOwner _ANSI_ARGS_((Display* d, Atom a,
- Window w, Time t));
-/* 48 */
-EXTERN void XSetWindowBackground _ANSI_ARGS_((Display* d,
- Window w, unsigned long ul));
-/* 49 */
-EXTERN void XSetWindowBackgroundPixmap _ANSI_ARGS_((Display* d,
- Window w, Pixmap p));
-/* 50 */
-EXTERN void XSetWindowBorder _ANSI_ARGS_((Display* d, Window w,
- unsigned long ul));
-/* 51 */
-EXTERN void XSetWindowBorderPixmap _ANSI_ARGS_((Display* d,
- Window w, Pixmap p));
-/* 52 */
-EXTERN void XSetWindowBorderWidth _ANSI_ARGS_((Display* d,
- Window w, unsigned int ui));
-/* 53 */
-EXTERN void XSetWindowColormap _ANSI_ARGS_((Display* d, Window w,
- Colormap c));
-/* 54 */
-EXTERN void XUngrabKeyboard _ANSI_ARGS_((Display* d, Time t));
-/* 55 */
-EXTERN void XUngrabPointer _ANSI_ARGS_((Display* d, Time t));
-/* 56 */
-EXTERN void XUnmapWindow _ANSI_ARGS_((Display* d, Window w));
-/* 57 */
-EXTERN void TkPutImage _ANSI_ARGS_((unsigned long * colors,
- int ncolors, Display* display, Drawable d,
- GC gc, XImage* image, int src_x, int src_y,
- int dest_x, int dest_y, unsigned int width,
- unsigned int height));
-/* 58 */
-EXTERN Status XParseColor _ANSI_ARGS_((Display * display,
- Colormap map, _Xconst char* spec,
- XColor * colorPtr));
-/* 59 */
-EXTERN GC XCreateGC _ANSI_ARGS_((Display* display, Drawable d,
- unsigned long valuemask, XGCValues* values));
-/* 60 */
-EXTERN void XFreeGC _ANSI_ARGS_((Display* display, GC gc));
-/* 61 */
-EXTERN Atom XInternAtom _ANSI_ARGS_((Display* display,
- _Xconst char* atom_name, Bool only_if_exists));
-/* 62 */
-EXTERN void XSetBackground _ANSI_ARGS_((Display* display, GC gc,
- unsigned long foreground));
-/* 63 */
-EXTERN void XSetForeground _ANSI_ARGS_((Display* display, GC gc,
- unsigned long foreground));
-/* 64 */
-EXTERN void XSetClipMask _ANSI_ARGS_((Display* display, GC gc,
- Pixmap pixmap));
-/* 65 */
-EXTERN void XSetClipOrigin _ANSI_ARGS_((Display* display, GC gc,
- int clip_x_origin, int clip_y_origin));
-/* 66 */
-EXTERN void XSetTSOrigin _ANSI_ARGS_((Display* display, GC gc,
- int ts_x_origin, int ts_y_origin));
-/* 67 */
-EXTERN void XChangeGC _ANSI_ARGS_((Display * d, GC gc,
- unsigned long mask, XGCValues * values));
-/* 68 */
-EXTERN void XSetFont _ANSI_ARGS_((Display * display, GC gc,
- Font font));
-/* 69 */
-EXTERN void XSetArcMode _ANSI_ARGS_((Display * display, GC gc,
- int arc_mode));
-/* 70 */
-EXTERN void XSetStipple _ANSI_ARGS_((Display * display, GC gc,
- Pixmap stipple));
-/* 71 */
-EXTERN void XSetFillRule _ANSI_ARGS_((Display * display, GC gc,
- int fill_rule));
-/* 72 */
-EXTERN void XSetFillStyle _ANSI_ARGS_((Display * display, GC gc,
- int fill_style));
-/* 73 */
-EXTERN void XSetFunction _ANSI_ARGS_((Display * display, GC gc,
- int function));
-/* 74 */
-EXTERN void XSetLineAttributes _ANSI_ARGS_((Display * display,
- GC gc, unsigned int line_width,
- int line_style, int cap_style,
- int join_style));
-/* 75 */
-EXTERN int _XInitImageFuncPtrs _ANSI_ARGS_((XImage * image));
-/* 76 */
-EXTERN XIC XCreateIC _ANSI_ARGS_((void));
-/* 77 */
-EXTERN XVisualInfo * XGetVisualInfo _ANSI_ARGS_((Display* display,
- long vinfo_mask, XVisualInfo* vinfo_template,
- int* nitems_return));
-/* 78 */
-EXTERN void XSetWMClientMachine _ANSI_ARGS_((Display* display,
- Window w, XTextProperty* text_prop));
-/* 79 */
-EXTERN Status XStringListToTextProperty _ANSI_ARGS_((char** list,
- int count, XTextProperty* text_prop_return));
-/* 80 */
-EXTERN void XDrawSegments _ANSI_ARGS_((Display * display,
- Drawable d, GC gc, XSegment * segments,
- int nsegments));
-/* 81 */
-EXTERN void XForceScreenSaver _ANSI_ARGS_((Display* display,
- int mode));
-/* 82 */
-EXTERN void XDrawLine _ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int x1, int y1, int x2, int y2));
-/* 83 */
-EXTERN void XFillRectangle _ANSI_ARGS_((Display* display,
- Drawable d, GC gc, int x, int y,
- unsigned int width, unsigned int height));
-/* 84 */
-EXTERN void XClearWindow _ANSI_ARGS_((Display* d, Window w));
-/* 85 */
-EXTERN void XDrawPoint _ANSI_ARGS_((Display* display, Drawable d,
- GC gc, int x, int y));
-/* 86 */
-EXTERN void XDrawPoints _ANSI_ARGS_((Display* display,
- Drawable d, GC gc, XPoint * points,
- int npoints, int mode));
-/* 87 */
-EXTERN void XWarpPointer _ANSI_ARGS_((Display* display,
- Window src_w, Window dest_w, int src_x,
- int src_y, unsigned int src_width,
- unsigned int src_height, int dest_x,
- int dest_y));
-/* 88 */
-EXTERN void XQueryColor _ANSI_ARGS_((Display * display,
- Colormap colormap, XColor * def_in_out));
-/* 89 */
-EXTERN void XQueryColors _ANSI_ARGS_((Display * display,
- Colormap colormap, XColor * defs_in_out,
- int ncolors));
-/* 90 */
-EXTERN Status XQueryTree _ANSI_ARGS_((Display* d, Window w1,
- Window* w2, Window* w3, Window** w4,
- unsigned int* ui));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 0 */
-EXTERN void XSetDashes _ANSI_ARGS_((Display* display, GC gc,
- int dash_offset, _Xconst char* dash_list,
- int n));
-/* 1 */
-EXTERN XModifierKeymap* XGetModifierMapping _ANSI_ARGS_((Display* d));
-/* 2 */
-EXTERN XImage * XCreateImage _ANSI_ARGS_((Display* d, Visual* v,
- unsigned int ui1, int i1, int i2, char* cp,
- unsigned int ui2, unsigned int ui3, int i3,
- int i4));
-/* 3 */
-EXTERN XImage * XGetImage _ANSI_ARGS_((Display* d, Drawable dr,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, unsigned long ul, int i3));
-/* 4 */
-EXTERN char * XGetAtomName _ANSI_ARGS_((Display* d, Atom a));
-/* 5 */
-EXTERN char * XKeysymToString _ANSI_ARGS_((KeySym k));
-/* 6 */
-EXTERN Colormap XCreateColormap _ANSI_ARGS_((Display* d, Window w,
- Visual* v, int i));
-/* 7 */
-EXTERN GContext XGContextFromGC _ANSI_ARGS_((GC g));
-/* 8 */
-EXTERN KeySym XKeycodeToKeysym _ANSI_ARGS_((Display* d, KeyCode k,
- int i));
-/* 9 */
-EXTERN KeySym XStringToKeysym _ANSI_ARGS_((_Xconst char* c));
-/* 10 */
-EXTERN Window XRootWindow _ANSI_ARGS_((Display* d, int i));
-/* 11 */
-EXTERN XErrorHandler XSetErrorHandler _ANSI_ARGS_((XErrorHandler x));
-/* 12 */
-EXTERN Status XAllocColor _ANSI_ARGS_((Display* d, Colormap c,
- XColor* xp));
-/* 13 */
-EXTERN void XBell _ANSI_ARGS_((Display* d, int i));
-/* 14 */
-EXTERN void XChangeProperty _ANSI_ARGS_((Display* d, Window w,
- Atom a1, Atom a2, int i1, int i2,
- _Xconst unsigned char* c, int i3));
-/* 15 */
-EXTERN void XChangeWindowAttributes _ANSI_ARGS_((Display* d,
- Window w, unsigned long ul,
- XSetWindowAttributes* x));
-/* 16 */
-EXTERN void XConfigureWindow _ANSI_ARGS_((Display* d, Window w,
- unsigned int i, XWindowChanges* x));
-/* 17 */
-EXTERN void XCopyArea _ANSI_ARGS_((Display* d, Drawable dr1,
- Drawable dr2, GC g, int i1, int i2,
- unsigned int ui1, unsigned int ui2, int i3,
- int i4));
-/* 18 */
-EXTERN void XCopyPlane _ANSI_ARGS_((Display* d, Drawable dr1,
- Drawable dr2, GC g, int i1, int i2,
- unsigned int ui1, unsigned int ui2, int i3,
- int i4, unsigned long ul));
-/* 19 */
-EXTERN Pixmap XCreateBitmapFromData _ANSI_ARGS_((Display* display,
- Drawable d, _Xconst char* data,
- unsigned int width, unsigned int height));
-/* 20 */
-EXTERN void XDefineCursor _ANSI_ARGS_((Display* d, Window w,
- Cursor c));
-/* 21 */
-EXTERN void XDestroyWindow _ANSI_ARGS_((Display* d, Window w));
-/* 22 */
-EXTERN void XDrawArc _ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, int i3, int i4));
-/* 23 */
-EXTERN void XDrawLines _ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XPoint* x, int i1, int i2));
-/* 24 */
-EXTERN void XDrawRectangle _ANSI_ARGS_((Display* d, Drawable dr,
- GC g, int i1, int i2, unsigned int ui1,
- unsigned int ui2));
-/* 25 */
-EXTERN void XFillArc _ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, int i3, int i4));
-/* 26 */
-EXTERN void XFillPolygon _ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XPoint* x, int i1, int i2, int i3));
-/* 27 */
-EXTERN void XFillRectangles _ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XRectangle* x, int i));
-/* 28 */
-EXTERN void XFreeColormap _ANSI_ARGS_((Display* d, Colormap c));
-/* 29 */
-EXTERN void XFreeColors _ANSI_ARGS_((Display* d, Colormap c,
- unsigned long* ulp, int i, unsigned long ul));
-/* 30 */
-EXTERN void XFreeModifiermap _ANSI_ARGS_((XModifierKeymap* x));
-/* 31 */
-EXTERN Status XGetGeometry _ANSI_ARGS_((Display* d, Drawable dr,
- Window* w, int* i1, int* i2,
- unsigned int* ui1, unsigned int* ui2,
- unsigned int* ui3, unsigned int* ui4));
-/* 32 */
-EXTERN int XGetWindowProperty _ANSI_ARGS_((Display* d, Window w,
- Atom a1, long l1, long l2, Bool b, Atom a2,
- Atom* ap, int* ip, unsigned long* ulp1,
- unsigned long* ulp2, unsigned char** cpp));
-/* 33 */
-EXTERN int XGrabKeyboard _ANSI_ARGS_((Display* d, Window w,
- Bool b, int i1, int i2, Time t));
-/* 34 */
-EXTERN int XGrabPointer _ANSI_ARGS_((Display* d, Window w1,
- Bool b, unsigned int ui, int i1, int i2,
- Window w2, Cursor c, Time t));
-/* 35 */
-EXTERN KeyCode XKeysymToKeycode _ANSI_ARGS_((Display* d, KeySym k));
-/* 36 */
-EXTERN void XMapWindow _ANSI_ARGS_((Display* d, Window w));
-/* 37 */
-EXTERN void XMoveResizeWindow _ANSI_ARGS_((Display* d, Window w,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2));
-/* 38 */
-EXTERN void XMoveWindow _ANSI_ARGS_((Display* d, Window w,
- int i1, int i2));
-/* 39 */
-EXTERN Bool XQueryPointer _ANSI_ARGS_((Display* d, Window w1,
- Window* w2, Window* w3, int* i1, int* i2,
- int* i3, int* i4, unsigned int* ui));
-/* 40 */
-EXTERN void XRaiseWindow _ANSI_ARGS_((Display* d, Window w));
-/* 41 */
-EXTERN void XRefreshKeyboardMapping _ANSI_ARGS_((
- XMappingEvent* x));
-/* 42 */
-EXTERN void XResizeWindow _ANSI_ARGS_((Display* d, Window w,
- unsigned int ui1, unsigned int ui2));
-/* 43 */
-EXTERN void XSelectInput _ANSI_ARGS_((Display* d, Window w,
- long l));
-/* 44 */
-EXTERN Status XSendEvent _ANSI_ARGS_((Display* d, Window w, Bool b,
- long l, XEvent* x));
-/* 45 */
-EXTERN void XSetIconName _ANSI_ARGS_((Display* d, Window w,
- _Xconst char* c));
-/* 46 */
-EXTERN void XSetInputFocus _ANSI_ARGS_((Display* d, Window w,
- int i, Time t));
-/* 47 */
-EXTERN void XSetSelectionOwner _ANSI_ARGS_((Display* d, Atom a,
- Window w, Time t));
-/* 48 */
-EXTERN void XSetWindowBackground _ANSI_ARGS_((Display* d,
- Window w, unsigned long ul));
-/* 49 */
-EXTERN void XSetWindowBackgroundPixmap _ANSI_ARGS_((Display* d,
- Window w, Pixmap p));
-/* 50 */
-EXTERN void XSetWindowBorder _ANSI_ARGS_((Display* d, Window w,
- unsigned long ul));
-/* 51 */
-EXTERN void XSetWindowBorderPixmap _ANSI_ARGS_((Display* d,
- Window w, Pixmap p));
-/* 52 */
-EXTERN void XSetWindowBorderWidth _ANSI_ARGS_((Display* d,
- Window w, unsigned int ui));
-/* 53 */
-EXTERN void XSetWindowColormap _ANSI_ARGS_((Display* d, Window w,
- Colormap c));
-/* 54 */
-EXTERN void XUngrabKeyboard _ANSI_ARGS_((Display* d, Time t));
-/* 55 */
-EXTERN void XUngrabPointer _ANSI_ARGS_((Display* d, Time t));
-/* 56 */
-EXTERN void XUnmapWindow _ANSI_ARGS_((Display* d, Window w));
-/* 57 */
-EXTERN void TkPutImage _ANSI_ARGS_((unsigned long * colors,
- int ncolors, Display* display, Drawable d,
- GC gc, XImage* image, int src_x, int src_y,
- int dest_x, int dest_y, unsigned int width,
- unsigned int height));
-/* 58 */
-EXTERN Status XParseColor _ANSI_ARGS_((Display * display,
- Colormap map, _Xconst char* spec,
- XColor * colorPtr));
-/* 59 */
-EXTERN GC XCreateGC _ANSI_ARGS_((Display* display, Drawable d,
- unsigned long valuemask, XGCValues* values));
-/* 60 */
-EXTERN void XFreeGC _ANSI_ARGS_((Display* display, GC gc));
-/* 61 */
-EXTERN Atom XInternAtom _ANSI_ARGS_((Display* display,
- _Xconst char* atom_name, Bool only_if_exists));
-/* 62 */
-EXTERN void XSetBackground _ANSI_ARGS_((Display* display, GC gc,
- unsigned long foreground));
-/* 63 */
-EXTERN void XSetForeground _ANSI_ARGS_((Display* display, GC gc,
- unsigned long foreground));
-/* 64 */
-EXTERN void XSetClipMask _ANSI_ARGS_((Display* display, GC gc,
- Pixmap pixmap));
-/* 65 */
-EXTERN void XSetClipOrigin _ANSI_ARGS_((Display* display, GC gc,
- int clip_x_origin, int clip_y_origin));
-/* 66 */
-EXTERN void XSetTSOrigin _ANSI_ARGS_((Display* display, GC gc,
- int ts_x_origin, int ts_y_origin));
-/* 67 */
-EXTERN void XChangeGC _ANSI_ARGS_((Display * d, GC gc,
- unsigned long mask, XGCValues * values));
-/* 68 */
-EXTERN void XSetFont _ANSI_ARGS_((Display * display, GC gc,
- Font font));
-/* 69 */
-EXTERN void XSetArcMode _ANSI_ARGS_((Display * display, GC gc,
- int arc_mode));
-/* 70 */
-EXTERN void XSetStipple _ANSI_ARGS_((Display * display, GC gc,
- Pixmap stipple));
-/* 71 */
-EXTERN void XSetFillRule _ANSI_ARGS_((Display * display, GC gc,
- int fill_rule));
-/* 72 */
-EXTERN void XSetFillStyle _ANSI_ARGS_((Display * display, GC gc,
- int fill_style));
-/* 73 */
-EXTERN void XSetFunction _ANSI_ARGS_((Display * display, GC gc,
- int function));
-/* 74 */
-EXTERN void XSetLineAttributes _ANSI_ARGS_((Display * display,
- GC gc, unsigned int line_width,
- int line_style, int cap_style,
- int join_style));
-/* 75 */
-EXTERN int _XInitImageFuncPtrs _ANSI_ARGS_((XImage * image));
-/* 76 */
-EXTERN XIC XCreateIC _ANSI_ARGS_((void));
-/* 77 */
-EXTERN XVisualInfo * XGetVisualInfo _ANSI_ARGS_((Display* display,
- long vinfo_mask, XVisualInfo* vinfo_template,
- int* nitems_return));
-/* 78 */
-EXTERN void XSetWMClientMachine _ANSI_ARGS_((Display* display,
- Window w, XTextProperty* text_prop));
-/* 79 */
-EXTERN Status XStringListToTextProperty _ANSI_ARGS_((char** list,
- int count, XTextProperty* text_prop_return));
-/* 80 */
-EXTERN void XDrawSegments _ANSI_ARGS_((Display * display,
- Drawable d, GC gc, XSegment * segments,
- int nsegments));
-/* 81 */
-EXTERN void XForceScreenSaver _ANSI_ARGS_((Display* display,
- int mode));
-/* 82 */
-EXTERN void XDrawLine _ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int x1, int y1, int x2, int y2));
-/* 83 */
-EXTERN void XFillRectangle _ANSI_ARGS_((Display* display,
- Drawable d, GC gc, int x, int y,
- unsigned int width, unsigned int height));
-/* 84 */
-EXTERN void XClearWindow _ANSI_ARGS_((Display* d, Window w));
-/* 85 */
-EXTERN void XDrawPoint _ANSI_ARGS_((Display* display, Drawable d,
- GC gc, int x, int y));
-/* 86 */
-EXTERN void XDrawPoints _ANSI_ARGS_((Display* display,
- Drawable d, GC gc, XPoint * points,
- int npoints, int mode));
-/* 87 */
-EXTERN void XWarpPointer _ANSI_ARGS_((Display* display,
- Window src_w, Window dest_w, int src_x,
- int src_y, unsigned int src_width,
- unsigned int src_height, int dest_x,
- int dest_y));
-/* 88 */
-EXTERN void XQueryColor _ANSI_ARGS_((Display * display,
- Colormap colormap, XColor * def_in_out));
-/* 89 */
-EXTERN void XQueryColors _ANSI_ARGS_((Display * display,
- Colormap colormap, XColor * defs_in_out,
- int ncolors));
-/* 90 */
-EXTERN Status XQueryTree _ANSI_ARGS_((Display* d, Window w1,
- Window* w2, Window* w3, Window** w4,
- unsigned int* ui));
-#endif /* MAC_OSX_TK */
-
-typedef struct TkIntXlibStubs {
- int magic;
- struct TkIntXlibStubHooks *hooks;
-
-#ifdef __WIN32__
- void (*xSetDashes) _ANSI_ARGS_((Display* display, GC gc, int dash_offset, _Xconst char* dash_list, int n)); /* 0 */
- XModifierKeymap* (*xGetModifierMapping) _ANSI_ARGS_((Display* d)); /* 1 */
- XImage * (*xCreateImage) _ANSI_ARGS_((Display* d, Visual* v, unsigned int ui1, int i1, int i2, char* cp, unsigned int ui2, unsigned int ui3, int i3, int i4)); /* 2 */
- XImage * (*xGetImage) _ANSI_ARGS_((Display* d, Drawable dr, int i1, int i2, unsigned int ui1, unsigned int ui2, unsigned long ul, int i3)); /* 3 */
- char * (*xGetAtomName) _ANSI_ARGS_((Display* d, Atom a)); /* 4 */
- char * (*xKeysymToString) _ANSI_ARGS_((KeySym k)); /* 5 */
- Colormap (*xCreateColormap) _ANSI_ARGS_((Display* d, Window w, Visual* v, int i)); /* 6 */
- Cursor (*xCreatePixmapCursor) _ANSI_ARGS_((Display* d, Pixmap p1, Pixmap p2, XColor* x1, XColor* x2, unsigned int ui1, unsigned int ui2)); /* 7 */
- Cursor (*xCreateGlyphCursor) _ANSI_ARGS_((Display* d, Font f1, Font f2, unsigned int ui1, unsigned int ui2, XColor* x1, XColor* x2)); /* 8 */
- GContext (*xGContextFromGC) _ANSI_ARGS_((GC g)); /* 9 */
- XHostAddress * (*xListHosts) _ANSI_ARGS_((Display* d, int* i, Bool* b)); /* 10 */
- KeySym (*xKeycodeToKeysym) _ANSI_ARGS_((Display* d, unsigned int k, int i)); /* 11 */
- KeySym (*xStringToKeysym) _ANSI_ARGS_((_Xconst char* c)); /* 12 */
- Window (*xRootWindow) _ANSI_ARGS_((Display* d, int i)); /* 13 */
- XErrorHandler (*xSetErrorHandler) _ANSI_ARGS_((XErrorHandler x)); /* 14 */
- Status (*xIconifyWindow) _ANSI_ARGS_((Display* d, Window w, int i)); /* 15 */
- Status (*xWithdrawWindow) _ANSI_ARGS_((Display* d, Window w, int i)); /* 16 */
- Status (*xGetWMColormapWindows) _ANSI_ARGS_((Display* d, Window w, Window** wpp, int* ip)); /* 17 */
- Status (*xAllocColor) _ANSI_ARGS_((Display* d, Colormap c, XColor* xp)); /* 18 */
- void (*xBell) _ANSI_ARGS_((Display* d, int i)); /* 19 */
- void (*xChangeProperty) _ANSI_ARGS_((Display* d, Window w, Atom a1, Atom a2, int i1, int i2, _Xconst unsigned char* c, int i3)); /* 20 */
- void (*xChangeWindowAttributes) _ANSI_ARGS_((Display* d, Window w, unsigned long ul, XSetWindowAttributes* x)); /* 21 */
- void (*xClearWindow) _ANSI_ARGS_((Display* d, Window w)); /* 22 */
- void (*xConfigureWindow) _ANSI_ARGS_((Display* d, Window w, unsigned int i, XWindowChanges* x)); /* 23 */
- void (*xCopyArea) _ANSI_ARGS_((Display* d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 24 */
- void (*xCopyPlane) _ANSI_ARGS_((Display* d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4, unsigned long ul)); /* 25 */
- Pixmap (*xCreateBitmapFromData) _ANSI_ARGS_((Display* display, Drawable d, _Xconst char* data, unsigned int width, unsigned int height)); /* 26 */
- void (*xDefineCursor) _ANSI_ARGS_((Display* d, Window w, Cursor c)); /* 27 */
- void (*xDeleteProperty) _ANSI_ARGS_((Display* d, Window w, Atom a)); /* 28 */
- void (*xDestroyWindow) _ANSI_ARGS_((Display* d, Window w)); /* 29 */
- void (*xDrawArc) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 30 */
- void (*xDrawLines) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XPoint* x, int i1, int i2)); /* 31 */
- void (*xDrawRectangle) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2)); /* 32 */
- void (*xFillArc) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 33 */
- void (*xFillPolygon) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XPoint* x, int i1, int i2, int i3)); /* 34 */
- void (*xFillRectangles) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XRectangle* x, int i)); /* 35 */
- void (*xForceScreenSaver) _ANSI_ARGS_((Display* d, int i)); /* 36 */
- void (*xFreeColormap) _ANSI_ARGS_((Display* d, Colormap c)); /* 37 */
- void (*xFreeColors) _ANSI_ARGS_((Display* d, Colormap c, unsigned long* ulp, int i, unsigned long ul)); /* 38 */
- void (*xFreeCursor) _ANSI_ARGS_((Display* d, Cursor c)); /* 39 */
- void (*xFreeModifiermap) _ANSI_ARGS_((XModifierKeymap* x)); /* 40 */
- Status (*xGetGeometry) _ANSI_ARGS_((Display* d, Drawable dr, Window* w, int* i1, int* i2, unsigned int* ui1, unsigned int* ui2, unsigned int* ui3, unsigned int* ui4)); /* 41 */
- void (*xGetInputFocus) _ANSI_ARGS_((Display* d, Window* w, int* i)); /* 42 */
- int (*xGetWindowProperty) _ANSI_ARGS_((Display* d, Window w, Atom a1, long l1, long l2, Bool b, Atom a2, Atom* ap, int* ip, unsigned long* ulp1, unsigned long* ulp2, unsigned char** cpp)); /* 43 */
- Status (*xGetWindowAttributes) _ANSI_ARGS_((Display* d, Window w, XWindowAttributes* x)); /* 44 */
- int (*xGrabKeyboard) _ANSI_ARGS_((Display* d, Window w, Bool b, int i1, int i2, Time t)); /* 45 */
- int (*xGrabPointer) _ANSI_ARGS_((Display* d, Window w1, Bool b, unsigned int ui, int i1, int i2, Window w2, Cursor c, Time t)); /* 46 */
- KeyCode (*xKeysymToKeycode) _ANSI_ARGS_((Display* d, KeySym k)); /* 47 */
- Status (*xLookupColor) _ANSI_ARGS_((Display* d, Colormap c1, _Xconst char* c2, XColor* x1, XColor* x2)); /* 48 */
- void (*xMapWindow) _ANSI_ARGS_((Display* d, Window w)); /* 49 */
- void (*xMoveResizeWindow) _ANSI_ARGS_((Display* d, Window w, int i1, int i2, unsigned int ui1, unsigned int ui2)); /* 50 */
- void (*xMoveWindow) _ANSI_ARGS_((Display* d, Window w, int i1, int i2)); /* 51 */
- void (*xNextEvent) _ANSI_ARGS_((Display* d, XEvent* x)); /* 52 */
- void (*xPutBackEvent) _ANSI_ARGS_((Display* d, XEvent* x)); /* 53 */
- void (*xQueryColors) _ANSI_ARGS_((Display* d, Colormap c, XColor* x, int i)); /* 54 */
- Bool (*xQueryPointer) _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, int* i1, int* i2, int* i3, int* i4, unsigned int* ui)); /* 55 */
- Status (*xQueryTree) _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, Window** w4, unsigned int* ui)); /* 56 */
- void (*xRaiseWindow) _ANSI_ARGS_((Display* d, Window w)); /* 57 */
- void (*xRefreshKeyboardMapping) _ANSI_ARGS_((XMappingEvent* x)); /* 58 */
- void (*xResizeWindow) _ANSI_ARGS_((Display* d, Window w, unsigned int ui1, unsigned int ui2)); /* 59 */
- void (*xSelectInput) _ANSI_ARGS_((Display* d, Window w, long l)); /* 60 */
- Status (*xSendEvent) _ANSI_ARGS_((Display* d, Window w, Bool b, long l, XEvent* x)); /* 61 */
- void (*xSetCommand) _ANSI_ARGS_((Display* d, Window w, CONST char** c, int i)); /* 62 */
- void (*xSetIconName) _ANSI_ARGS_((Display* d, Window w, _Xconst char* c)); /* 63 */
- void (*xSetInputFocus) _ANSI_ARGS_((Display* d, Window w, int i, Time t)); /* 64 */
- void (*xSetSelectionOwner) _ANSI_ARGS_((Display* d, Atom a, Window w, Time t)); /* 65 */
- void (*xSetWindowBackground) _ANSI_ARGS_((Display* d, Window w, unsigned long ul)); /* 66 */
- void (*xSetWindowBackgroundPixmap) _ANSI_ARGS_((Display* d, Window w, Pixmap p)); /* 67 */
- void (*xSetWindowBorder) _ANSI_ARGS_((Display* d, Window w, unsigned long ul)); /* 68 */
- void (*xSetWindowBorderPixmap) _ANSI_ARGS_((Display* d, Window w, Pixmap p)); /* 69 */
- void (*xSetWindowBorderWidth) _ANSI_ARGS_((Display* d, Window w, unsigned int ui)); /* 70 */
- void (*xSetWindowColormap) _ANSI_ARGS_((Display* d, Window w, Colormap c)); /* 71 */
- Bool (*xTranslateCoordinates) _ANSI_ARGS_((Display* d, Window w1, Window w2, int i1, int i2, int* i3, int* i4, Window* w3)); /* 72 */
- void (*xUngrabKeyboard) _ANSI_ARGS_((Display* d, Time t)); /* 73 */
- void (*xUngrabPointer) _ANSI_ARGS_((Display* d, Time t)); /* 74 */
- void (*xUnmapWindow) _ANSI_ARGS_((Display* d, Window w)); /* 75 */
- void (*xWindowEvent) _ANSI_ARGS_((Display* d, Window w, long l, XEvent* x)); /* 76 */
- void (*xDestroyIC) _ANSI_ARGS_((XIC x)); /* 77 */
- Bool (*xFilterEvent) _ANSI_ARGS_((XEvent* x, Window w)); /* 78 */
- int (*xmbLookupString) _ANSI_ARGS_((XIC xi, XKeyPressedEvent* xk, char* c, int i, KeySym* k, Status* s)); /* 79 */
- void (*tkPutImage) _ANSI_ARGS_((unsigned long * colors, int ncolors, Display* display, Drawable d, GC gc, XImage* image, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height)); /* 80 */
- void *reserved81;
- Status (*xParseColor) _ANSI_ARGS_((Display * display, Colormap map, _Xconst char* spec, XColor * colorPtr)); /* 82 */
- GC (*xCreateGC) _ANSI_ARGS_((Display* display, Drawable d, unsigned long valuemask, XGCValues* values)); /* 83 */
- void (*xFreeGC) _ANSI_ARGS_((Display* display, GC gc)); /* 84 */
- Atom (*xInternAtom) _ANSI_ARGS_((Display* display, _Xconst char* atom_name, Bool only_if_exists)); /* 85 */
- void (*xSetBackground) _ANSI_ARGS_((Display* display, GC gc, unsigned long foreground)); /* 86 */
- void (*xSetForeground) _ANSI_ARGS_((Display* display, GC gc, unsigned long foreground)); /* 87 */
- void (*xSetClipMask) _ANSI_ARGS_((Display* display, GC gc, Pixmap pixmap)); /* 88 */
- void (*xSetClipOrigin) _ANSI_ARGS_((Display* display, GC gc, int clip_x_origin, int clip_y_origin)); /* 89 */
- void (*xSetTSOrigin) _ANSI_ARGS_((Display* display, GC gc, int ts_x_origin, int ts_y_origin)); /* 90 */
- void (*xChangeGC) _ANSI_ARGS_((Display * d, GC gc, unsigned long mask, XGCValues * values)); /* 91 */
- void (*xSetFont) _ANSI_ARGS_((Display * display, GC gc, Font font)); /* 92 */
- void (*xSetArcMode) _ANSI_ARGS_((Display * display, GC gc, int arc_mode)); /* 93 */
- void (*xSetStipple) _ANSI_ARGS_((Display * display, GC gc, Pixmap stipple)); /* 94 */
- void (*xSetFillRule) _ANSI_ARGS_((Display * display, GC gc, int fill_rule)); /* 95 */
- void (*xSetFillStyle) _ANSI_ARGS_((Display * display, GC gc, int fill_style)); /* 96 */
- void (*xSetFunction) _ANSI_ARGS_((Display * display, GC gc, int function)); /* 97 */
- void (*xSetLineAttributes) _ANSI_ARGS_((Display * display, GC gc, unsigned int line_width, int line_style, int cap_style, int join_style)); /* 98 */
- int (*_XInitImageFuncPtrs) _ANSI_ARGS_((XImage * image)); /* 99 */
- XIC (*xCreateIC) _ANSI_ARGS_((void)); /* 100 */
- XVisualInfo * (*xGetVisualInfo) _ANSI_ARGS_((Display* display, long vinfo_mask, XVisualInfo* vinfo_template, int* nitems_return)); /* 101 */
- void (*xSetWMClientMachine) _ANSI_ARGS_((Display* display, Window w, XTextProperty* text_prop)); /* 102 */
- Status (*xStringListToTextProperty) _ANSI_ARGS_((char** list, int count, XTextProperty* text_prop_return)); /* 103 */
- void (*xDrawLine) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int x1, int y1, int x2, int y2)); /* 104 */
- void (*xWarpPointer) _ANSI_ARGS_((Display* d, Window s, Window dw, int sx, int sy, unsigned int sw, unsigned int sh, int dx, int dy)); /* 105 */
- void (*xFillRectangle) _ANSI_ARGS_((Display* display, Drawable d, GC gc, int x, int y, unsigned int width, unsigned int height)); /* 106 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void (*xSetDashes) _ANSI_ARGS_((Display* display, GC gc, int dash_offset, _Xconst char* dash_list, int n)); /* 0 */
- XModifierKeymap* (*xGetModifierMapping) _ANSI_ARGS_((Display* d)); /* 1 */
- XImage * (*xCreateImage) _ANSI_ARGS_((Display* d, Visual* v, unsigned int ui1, int i1, int i2, char* cp, unsigned int ui2, unsigned int ui3, int i3, int i4)); /* 2 */
- XImage * (*xGetImage) _ANSI_ARGS_((Display* d, Drawable dr, int i1, int i2, unsigned int ui1, unsigned int ui2, unsigned long ul, int i3)); /* 3 */
- char * (*xGetAtomName) _ANSI_ARGS_((Display* d, Atom a)); /* 4 */
- char * (*xKeysymToString) _ANSI_ARGS_((KeySym k)); /* 5 */
- Colormap (*xCreateColormap) _ANSI_ARGS_((Display* d, Window w, Visual* v, int i)); /* 6 */
- GContext (*xGContextFromGC) _ANSI_ARGS_((GC g)); /* 7 */
- KeySym (*xKeycodeToKeysym) _ANSI_ARGS_((Display* d, KeyCode k, int i)); /* 8 */
- KeySym (*xStringToKeysym) _ANSI_ARGS_((_Xconst char* c)); /* 9 */
- Window (*xRootWindow) _ANSI_ARGS_((Display* d, int i)); /* 10 */
- XErrorHandler (*xSetErrorHandler) _ANSI_ARGS_((XErrorHandler x)); /* 11 */
- Status (*xAllocColor) _ANSI_ARGS_((Display* d, Colormap c, XColor* xp)); /* 12 */
- void (*xBell) _ANSI_ARGS_((Display* d, int i)); /* 13 */
- void (*xChangeProperty) _ANSI_ARGS_((Display* d, Window w, Atom a1, Atom a2, int i1, int i2, _Xconst unsigned char* c, int i3)); /* 14 */
- void (*xChangeWindowAttributes) _ANSI_ARGS_((Display* d, Window w, unsigned long ul, XSetWindowAttributes* x)); /* 15 */
- void (*xConfigureWindow) _ANSI_ARGS_((Display* d, Window w, unsigned int i, XWindowChanges* x)); /* 16 */
- void (*xCopyArea) _ANSI_ARGS_((Display* d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 17 */
- void (*xCopyPlane) _ANSI_ARGS_((Display* d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4, unsigned long ul)); /* 18 */
- Pixmap (*xCreateBitmapFromData) _ANSI_ARGS_((Display* display, Drawable d, _Xconst char* data, unsigned int width, unsigned int height)); /* 19 */
- void (*xDefineCursor) _ANSI_ARGS_((Display* d, Window w, Cursor c)); /* 20 */
- void (*xDestroyWindow) _ANSI_ARGS_((Display* d, Window w)); /* 21 */
- void (*xDrawArc) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 22 */
- void (*xDrawLines) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XPoint* x, int i1, int i2)); /* 23 */
- void (*xDrawRectangle) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2)); /* 24 */
- void (*xFillArc) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 25 */
- void (*xFillPolygon) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XPoint* x, int i1, int i2, int i3)); /* 26 */
- void (*xFillRectangles) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XRectangle* x, int i)); /* 27 */
- void (*xFreeColormap) _ANSI_ARGS_((Display* d, Colormap c)); /* 28 */
- void (*xFreeColors) _ANSI_ARGS_((Display* d, Colormap c, unsigned long* ulp, int i, unsigned long ul)); /* 29 */
- void (*xFreeModifiermap) _ANSI_ARGS_((XModifierKeymap* x)); /* 30 */
- Status (*xGetGeometry) _ANSI_ARGS_((Display* d, Drawable dr, Window* w, int* i1, int* i2, unsigned int* ui1, unsigned int* ui2, unsigned int* ui3, unsigned int* ui4)); /* 31 */
- int (*xGetWindowProperty) _ANSI_ARGS_((Display* d, Window w, Atom a1, long l1, long l2, Bool b, Atom a2, Atom* ap, int* ip, unsigned long* ulp1, unsigned long* ulp2, unsigned char** cpp)); /* 32 */
- int (*xGrabKeyboard) _ANSI_ARGS_((Display* d, Window w, Bool b, int i1, int i2, Time t)); /* 33 */
- int (*xGrabPointer) _ANSI_ARGS_((Display* d, Window w1, Bool b, unsigned int ui, int i1, int i2, Window w2, Cursor c, Time t)); /* 34 */
- KeyCode (*xKeysymToKeycode) _ANSI_ARGS_((Display* d, KeySym k)); /* 35 */
- void (*xMapWindow) _ANSI_ARGS_((Display* d, Window w)); /* 36 */
- void (*xMoveResizeWindow) _ANSI_ARGS_((Display* d, Window w, int i1, int i2, unsigned int ui1, unsigned int ui2)); /* 37 */
- void (*xMoveWindow) _ANSI_ARGS_((Display* d, Window w, int i1, int i2)); /* 38 */
- Bool (*xQueryPointer) _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, int* i1, int* i2, int* i3, int* i4, unsigned int* ui)); /* 39 */
- void (*xRaiseWindow) _ANSI_ARGS_((Display* d, Window w)); /* 40 */
- void (*xRefreshKeyboardMapping) _ANSI_ARGS_((XMappingEvent* x)); /* 41 */
- void (*xResizeWindow) _ANSI_ARGS_((Display* d, Window w, unsigned int ui1, unsigned int ui2)); /* 42 */
- void (*xSelectInput) _ANSI_ARGS_((Display* d, Window w, long l)); /* 43 */
- Status (*xSendEvent) _ANSI_ARGS_((Display* d, Window w, Bool b, long l, XEvent* x)); /* 44 */
- void (*xSetIconName) _ANSI_ARGS_((Display* d, Window w, _Xconst char* c)); /* 45 */
- void (*xSetInputFocus) _ANSI_ARGS_((Display* d, Window w, int i, Time t)); /* 46 */
- void (*xSetSelectionOwner) _ANSI_ARGS_((Display* d, Atom a, Window w, Time t)); /* 47 */
- void (*xSetWindowBackground) _ANSI_ARGS_((Display* d, Window w, unsigned long ul)); /* 48 */
- void (*xSetWindowBackgroundPixmap) _ANSI_ARGS_((Display* d, Window w, Pixmap p)); /* 49 */
- void (*xSetWindowBorder) _ANSI_ARGS_((Display* d, Window w, unsigned long ul)); /* 50 */
- void (*xSetWindowBorderPixmap) _ANSI_ARGS_((Display* d, Window w, Pixmap p)); /* 51 */
- void (*xSetWindowBorderWidth) _ANSI_ARGS_((Display* d, Window w, unsigned int ui)); /* 52 */
- void (*xSetWindowColormap) _ANSI_ARGS_((Display* d, Window w, Colormap c)); /* 53 */
- void (*xUngrabKeyboard) _ANSI_ARGS_((Display* d, Time t)); /* 54 */
- void (*xUngrabPointer) _ANSI_ARGS_((Display* d, Time t)); /* 55 */
- void (*xUnmapWindow) _ANSI_ARGS_((Display* d, Window w)); /* 56 */
- void (*tkPutImage) _ANSI_ARGS_((unsigned long * colors, int ncolors, Display* display, Drawable d, GC gc, XImage* image, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height)); /* 57 */
- Status (*xParseColor) _ANSI_ARGS_((Display * display, Colormap map, _Xconst char* spec, XColor * colorPtr)); /* 58 */
- GC (*xCreateGC) _ANSI_ARGS_((Display* display, Drawable d, unsigned long valuemask, XGCValues* values)); /* 59 */
- void (*xFreeGC) _ANSI_ARGS_((Display* display, GC gc)); /* 60 */
- Atom (*xInternAtom) _ANSI_ARGS_((Display* display, _Xconst char* atom_name, Bool only_if_exists)); /* 61 */
- void (*xSetBackground) _ANSI_ARGS_((Display* display, GC gc, unsigned long foreground)); /* 62 */
- void (*xSetForeground) _ANSI_ARGS_((Display* display, GC gc, unsigned long foreground)); /* 63 */
- void (*xSetClipMask) _ANSI_ARGS_((Display* display, GC gc, Pixmap pixmap)); /* 64 */
- void (*xSetClipOrigin) _ANSI_ARGS_((Display* display, GC gc, int clip_x_origin, int clip_y_origin)); /* 65 */
- void (*xSetTSOrigin) _ANSI_ARGS_((Display* display, GC gc, int ts_x_origin, int ts_y_origin)); /* 66 */
- void (*xChangeGC) _ANSI_ARGS_((Display * d, GC gc, unsigned long mask, XGCValues * values)); /* 67 */
- void (*xSetFont) _ANSI_ARGS_((Display * display, GC gc, Font font)); /* 68 */
- void (*xSetArcMode) _ANSI_ARGS_((Display * display, GC gc, int arc_mode)); /* 69 */
- void (*xSetStipple) _ANSI_ARGS_((Display * display, GC gc, Pixmap stipple)); /* 70 */
- void (*xSetFillRule) _ANSI_ARGS_((Display * display, GC gc, int fill_rule)); /* 71 */
- void (*xSetFillStyle) _ANSI_ARGS_((Display * display, GC gc, int fill_style)); /* 72 */
- void (*xSetFunction) _ANSI_ARGS_((Display * display, GC gc, int function)); /* 73 */
- void (*xSetLineAttributes) _ANSI_ARGS_((Display * display, GC gc, unsigned int line_width, int line_style, int cap_style, int join_style)); /* 74 */
- int (*_XInitImageFuncPtrs) _ANSI_ARGS_((XImage * image)); /* 75 */
- XIC (*xCreateIC) _ANSI_ARGS_((void)); /* 76 */
- XVisualInfo * (*xGetVisualInfo) _ANSI_ARGS_((Display* display, long vinfo_mask, XVisualInfo* vinfo_template, int* nitems_return)); /* 77 */
- void (*xSetWMClientMachine) _ANSI_ARGS_((Display* display, Window w, XTextProperty* text_prop)); /* 78 */
- Status (*xStringListToTextProperty) _ANSI_ARGS_((char** list, int count, XTextProperty* text_prop_return)); /* 79 */
- void (*xDrawSegments) _ANSI_ARGS_((Display * display, Drawable d, GC gc, XSegment * segments, int nsegments)); /* 80 */
- void (*xForceScreenSaver) _ANSI_ARGS_((Display* display, int mode)); /* 81 */
- void (*xDrawLine) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int x1, int y1, int x2, int y2)); /* 82 */
- void (*xFillRectangle) _ANSI_ARGS_((Display* display, Drawable d, GC gc, int x, int y, unsigned int width, unsigned int height)); /* 83 */
- void (*xClearWindow) _ANSI_ARGS_((Display* d, Window w)); /* 84 */
- void (*xDrawPoint) _ANSI_ARGS_((Display* display, Drawable d, GC gc, int x, int y)); /* 85 */
- void (*xDrawPoints) _ANSI_ARGS_((Display* display, Drawable d, GC gc, XPoint * points, int npoints, int mode)); /* 86 */
- void (*xWarpPointer) _ANSI_ARGS_((Display* display, Window src_w, Window dest_w, int src_x, int src_y, unsigned int src_width, unsigned int src_height, int dest_x, int dest_y)); /* 87 */
- void (*xQueryColor) _ANSI_ARGS_((Display * display, Colormap colormap, XColor * def_in_out)); /* 88 */
- void (*xQueryColors) _ANSI_ARGS_((Display * display, Colormap colormap, XColor * defs_in_out, int ncolors)); /* 89 */
- Status (*xQueryTree) _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, Window** w4, unsigned int* ui)); /* 90 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- void (*xSetDashes) _ANSI_ARGS_((Display* display, GC gc, int dash_offset, _Xconst char* dash_list, int n)); /* 0 */
- XModifierKeymap* (*xGetModifierMapping) _ANSI_ARGS_((Display* d)); /* 1 */
- XImage * (*xCreateImage) _ANSI_ARGS_((Display* d, Visual* v, unsigned int ui1, int i1, int i2, char* cp, unsigned int ui2, unsigned int ui3, int i3, int i4)); /* 2 */
- XImage * (*xGetImage) _ANSI_ARGS_((Display* d, Drawable dr, int i1, int i2, unsigned int ui1, unsigned int ui2, unsigned long ul, int i3)); /* 3 */
- char * (*xGetAtomName) _ANSI_ARGS_((Display* d, Atom a)); /* 4 */
- char * (*xKeysymToString) _ANSI_ARGS_((KeySym k)); /* 5 */
- Colormap (*xCreateColormap) _ANSI_ARGS_((Display* d, Window w, Visual* v, int i)); /* 6 */
- GContext (*xGContextFromGC) _ANSI_ARGS_((GC g)); /* 7 */
- KeySym (*xKeycodeToKeysym) _ANSI_ARGS_((Display* d, KeyCode k, int i)); /* 8 */
- KeySym (*xStringToKeysym) _ANSI_ARGS_((_Xconst char* c)); /* 9 */
- Window (*xRootWindow) _ANSI_ARGS_((Display* d, int i)); /* 10 */
- XErrorHandler (*xSetErrorHandler) _ANSI_ARGS_((XErrorHandler x)); /* 11 */
- Status (*xAllocColor) _ANSI_ARGS_((Display* d, Colormap c, XColor* xp)); /* 12 */
- void (*xBell) _ANSI_ARGS_((Display* d, int i)); /* 13 */
- void (*xChangeProperty) _ANSI_ARGS_((Display* d, Window w, Atom a1, Atom a2, int i1, int i2, _Xconst unsigned char* c, int i3)); /* 14 */
- void (*xChangeWindowAttributes) _ANSI_ARGS_((Display* d, Window w, unsigned long ul, XSetWindowAttributes* x)); /* 15 */
- void (*xConfigureWindow) _ANSI_ARGS_((Display* d, Window w, unsigned int i, XWindowChanges* x)); /* 16 */
- void (*xCopyArea) _ANSI_ARGS_((Display* d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 17 */
- void (*xCopyPlane) _ANSI_ARGS_((Display* d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4, unsigned long ul)); /* 18 */
- Pixmap (*xCreateBitmapFromData) _ANSI_ARGS_((Display* display, Drawable d, _Xconst char* data, unsigned int width, unsigned int height)); /* 19 */
- void (*xDefineCursor) _ANSI_ARGS_((Display* d, Window w, Cursor c)); /* 20 */
- void (*xDestroyWindow) _ANSI_ARGS_((Display* d, Window w)); /* 21 */
- void (*xDrawArc) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 22 */
- void (*xDrawLines) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XPoint* x, int i1, int i2)); /* 23 */
- void (*xDrawRectangle) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2)); /* 24 */
- void (*xFillArc) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 25 */
- void (*xFillPolygon) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XPoint* x, int i1, int i2, int i3)); /* 26 */
- void (*xFillRectangles) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XRectangle* x, int i)); /* 27 */
- void (*xFreeColormap) _ANSI_ARGS_((Display* d, Colormap c)); /* 28 */
- void (*xFreeColors) _ANSI_ARGS_((Display* d, Colormap c, unsigned long* ulp, int i, unsigned long ul)); /* 29 */
- void (*xFreeModifiermap) _ANSI_ARGS_((XModifierKeymap* x)); /* 30 */
- Status (*xGetGeometry) _ANSI_ARGS_((Display* d, Drawable dr, Window* w, int* i1, int* i2, unsigned int* ui1, unsigned int* ui2, unsigned int* ui3, unsigned int* ui4)); /* 31 */
- int (*xGetWindowProperty) _ANSI_ARGS_((Display* d, Window w, Atom a1, long l1, long l2, Bool b, Atom a2, Atom* ap, int* ip, unsigned long* ulp1, unsigned long* ulp2, unsigned char** cpp)); /* 32 */
- int (*xGrabKeyboard) _ANSI_ARGS_((Display* d, Window w, Bool b, int i1, int i2, Time t)); /* 33 */
- int (*xGrabPointer) _ANSI_ARGS_((Display* d, Window w1, Bool b, unsigned int ui, int i1, int i2, Window w2, Cursor c, Time t)); /* 34 */
- KeyCode (*xKeysymToKeycode) _ANSI_ARGS_((Display* d, KeySym k)); /* 35 */
- void (*xMapWindow) _ANSI_ARGS_((Display* d, Window w)); /* 36 */
- void (*xMoveResizeWindow) _ANSI_ARGS_((Display* d, Window w, int i1, int i2, unsigned int ui1, unsigned int ui2)); /* 37 */
- void (*xMoveWindow) _ANSI_ARGS_((Display* d, Window w, int i1, int i2)); /* 38 */
- Bool (*xQueryPointer) _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, int* i1, int* i2, int* i3, int* i4, unsigned int* ui)); /* 39 */
- void (*xRaiseWindow) _ANSI_ARGS_((Display* d, Window w)); /* 40 */
- void (*xRefreshKeyboardMapping) _ANSI_ARGS_((XMappingEvent* x)); /* 41 */
- void (*xResizeWindow) _ANSI_ARGS_((Display* d, Window w, unsigned int ui1, unsigned int ui2)); /* 42 */
- void (*xSelectInput) _ANSI_ARGS_((Display* d, Window w, long l)); /* 43 */
- Status (*xSendEvent) _ANSI_ARGS_((Display* d, Window w, Bool b, long l, XEvent* x)); /* 44 */
- void (*xSetIconName) _ANSI_ARGS_((Display* d, Window w, _Xconst char* c)); /* 45 */
- void (*xSetInputFocus) _ANSI_ARGS_((Display* d, Window w, int i, Time t)); /* 46 */
- void (*xSetSelectionOwner) _ANSI_ARGS_((Display* d, Atom a, Window w, Time t)); /* 47 */
- void (*xSetWindowBackground) _ANSI_ARGS_((Display* d, Window w, unsigned long ul)); /* 48 */
- void (*xSetWindowBackgroundPixmap) _ANSI_ARGS_((Display* d, Window w, Pixmap p)); /* 49 */
- void (*xSetWindowBorder) _ANSI_ARGS_((Display* d, Window w, unsigned long ul)); /* 50 */
- void (*xSetWindowBorderPixmap) _ANSI_ARGS_((Display* d, Window w, Pixmap p)); /* 51 */
- void (*xSetWindowBorderWidth) _ANSI_ARGS_((Display* d, Window w, unsigned int ui)); /* 52 */
- void (*xSetWindowColormap) _ANSI_ARGS_((Display* d, Window w, Colormap c)); /* 53 */
- void (*xUngrabKeyboard) _ANSI_ARGS_((Display* d, Time t)); /* 54 */
- void (*xUngrabPointer) _ANSI_ARGS_((Display* d, Time t)); /* 55 */
- void (*xUnmapWindow) _ANSI_ARGS_((Display* d, Window w)); /* 56 */
- void (*tkPutImage) _ANSI_ARGS_((unsigned long * colors, int ncolors, Display* display, Drawable d, GC gc, XImage* image, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height)); /* 57 */
- Status (*xParseColor) _ANSI_ARGS_((Display * display, Colormap map, _Xconst char* spec, XColor * colorPtr)); /* 58 */
- GC (*xCreateGC) _ANSI_ARGS_((Display* display, Drawable d, unsigned long valuemask, XGCValues* values)); /* 59 */
- void (*xFreeGC) _ANSI_ARGS_((Display* display, GC gc)); /* 60 */
- Atom (*xInternAtom) _ANSI_ARGS_((Display* display, _Xconst char* atom_name, Bool only_if_exists)); /* 61 */
- void (*xSetBackground) _ANSI_ARGS_((Display* display, GC gc, unsigned long foreground)); /* 62 */
- void (*xSetForeground) _ANSI_ARGS_((Display* display, GC gc, unsigned long foreground)); /* 63 */
- void (*xSetClipMask) _ANSI_ARGS_((Display* display, GC gc, Pixmap pixmap)); /* 64 */
- void (*xSetClipOrigin) _ANSI_ARGS_((Display* display, GC gc, int clip_x_origin, int clip_y_origin)); /* 65 */
- void (*xSetTSOrigin) _ANSI_ARGS_((Display* display, GC gc, int ts_x_origin, int ts_y_origin)); /* 66 */
- void (*xChangeGC) _ANSI_ARGS_((Display * d, GC gc, unsigned long mask, XGCValues * values)); /* 67 */
- void (*xSetFont) _ANSI_ARGS_((Display * display, GC gc, Font font)); /* 68 */
- void (*xSetArcMode) _ANSI_ARGS_((Display * display, GC gc, int arc_mode)); /* 69 */
- void (*xSetStipple) _ANSI_ARGS_((Display * display, GC gc, Pixmap stipple)); /* 70 */
- void (*xSetFillRule) _ANSI_ARGS_((Display * display, GC gc, int fill_rule)); /* 71 */
- void (*xSetFillStyle) _ANSI_ARGS_((Display * display, GC gc, int fill_style)); /* 72 */
- void (*xSetFunction) _ANSI_ARGS_((Display * display, GC gc, int function)); /* 73 */
- void (*xSetLineAttributes) _ANSI_ARGS_((Display * display, GC gc, unsigned int line_width, int line_style, int cap_style, int join_style)); /* 74 */
- int (*_XInitImageFuncPtrs) _ANSI_ARGS_((XImage * image)); /* 75 */
- XIC (*xCreateIC) _ANSI_ARGS_((void)); /* 76 */
- XVisualInfo * (*xGetVisualInfo) _ANSI_ARGS_((Display* display, long vinfo_mask, XVisualInfo* vinfo_template, int* nitems_return)); /* 77 */
- void (*xSetWMClientMachine) _ANSI_ARGS_((Display* display, Window w, XTextProperty* text_prop)); /* 78 */
- Status (*xStringListToTextProperty) _ANSI_ARGS_((char** list, int count, XTextProperty* text_prop_return)); /* 79 */
- void (*xDrawSegments) _ANSI_ARGS_((Display * display, Drawable d, GC gc, XSegment * segments, int nsegments)); /* 80 */
- void (*xForceScreenSaver) _ANSI_ARGS_((Display* display, int mode)); /* 81 */
- void (*xDrawLine) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int x1, int y1, int x2, int y2)); /* 82 */
- void (*xFillRectangle) _ANSI_ARGS_((Display* display, Drawable d, GC gc, int x, int y, unsigned int width, unsigned int height)); /* 83 */
- void (*xClearWindow) _ANSI_ARGS_((Display* d, Window w)); /* 84 */
- void (*xDrawPoint) _ANSI_ARGS_((Display* display, Drawable d, GC gc, int x, int y)); /* 85 */
- void (*xDrawPoints) _ANSI_ARGS_((Display* display, Drawable d, GC gc, XPoint * points, int npoints, int mode)); /* 86 */
- void (*xWarpPointer) _ANSI_ARGS_((Display* display, Window src_w, Window dest_w, int src_x, int src_y, unsigned int src_width, unsigned int src_height, int dest_x, int dest_y)); /* 87 */
- void (*xQueryColor) _ANSI_ARGS_((Display * display, Colormap colormap, XColor * def_in_out)); /* 88 */
- void (*xQueryColors) _ANSI_ARGS_((Display * display, Colormap colormap, XColor * defs_in_out, int ncolors)); /* 89 */
- Status (*xQueryTree) _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, Window** w4, unsigned int* ui)); /* 90 */
-#endif /* MAC_OSX_TK */
-} TkIntXlibStubs;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern TkIntXlibStubs *tkIntXlibStubsPtr;
-#ifdef __cplusplus
-}
-#endif
-
-#if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS)
-
-/*
- * Inline function declarations:
- */
-
-#ifdef __WIN32__
-#ifndef XSetDashes
-#define XSetDashes \
- (tkIntXlibStubsPtr->xSetDashes) /* 0 */
-#endif
-#ifndef XGetModifierMapping
-#define XGetModifierMapping \
- (tkIntXlibStubsPtr->xGetModifierMapping) /* 1 */
-#endif
-#ifndef XCreateImage
-#define XCreateImage \
- (tkIntXlibStubsPtr->xCreateImage) /* 2 */
-#endif
-#ifndef XGetImage
-#define XGetImage \
- (tkIntXlibStubsPtr->xGetImage) /* 3 */
-#endif
-#ifndef XGetAtomName
-#define XGetAtomName \
- (tkIntXlibStubsPtr->xGetAtomName) /* 4 */
-#endif
-#ifndef XKeysymToString
-#define XKeysymToString \
- (tkIntXlibStubsPtr->xKeysymToString) /* 5 */
-#endif
-#ifndef XCreateColormap
-#define XCreateColormap \
- (tkIntXlibStubsPtr->xCreateColormap) /* 6 */
-#endif
-#ifndef XCreatePixmapCursor
-#define XCreatePixmapCursor \
- (tkIntXlibStubsPtr->xCreatePixmapCursor) /* 7 */
-#endif
-#ifndef XCreateGlyphCursor
-#define XCreateGlyphCursor \
- (tkIntXlibStubsPtr->xCreateGlyphCursor) /* 8 */
-#endif
-#ifndef XGContextFromGC
-#define XGContextFromGC \
- (tkIntXlibStubsPtr->xGContextFromGC) /* 9 */
-#endif
-#ifndef XListHosts
-#define XListHosts \
- (tkIntXlibStubsPtr->xListHosts) /* 10 */
-#endif
-#ifndef XKeycodeToKeysym
-#define XKeycodeToKeysym \
- (tkIntXlibStubsPtr->xKeycodeToKeysym) /* 11 */
-#endif
-#ifndef XStringToKeysym
-#define XStringToKeysym \
- (tkIntXlibStubsPtr->xStringToKeysym) /* 12 */
-#endif
-#ifndef XRootWindow
-#define XRootWindow \
- (tkIntXlibStubsPtr->xRootWindow) /* 13 */
-#endif
-#ifndef XSetErrorHandler
-#define XSetErrorHandler \
- (tkIntXlibStubsPtr->xSetErrorHandler) /* 14 */
-#endif
-#ifndef XIconifyWindow
-#define XIconifyWindow \
- (tkIntXlibStubsPtr->xIconifyWindow) /* 15 */
-#endif
-#ifndef XWithdrawWindow
-#define XWithdrawWindow \
- (tkIntXlibStubsPtr->xWithdrawWindow) /* 16 */
-#endif
-#ifndef XGetWMColormapWindows
-#define XGetWMColormapWindows \
- (tkIntXlibStubsPtr->xGetWMColormapWindows) /* 17 */
-#endif
-#ifndef XAllocColor
-#define XAllocColor \
- (tkIntXlibStubsPtr->xAllocColor) /* 18 */
-#endif
-#ifndef XBell
-#define XBell \
- (tkIntXlibStubsPtr->xBell) /* 19 */
-#endif
-#ifndef XChangeProperty
-#define XChangeProperty \
- (tkIntXlibStubsPtr->xChangeProperty) /* 20 */
-#endif
-#ifndef XChangeWindowAttributes
-#define XChangeWindowAttributes \
- (tkIntXlibStubsPtr->xChangeWindowAttributes) /* 21 */
-#endif
-#ifndef XClearWindow
-#define XClearWindow \
- (tkIntXlibStubsPtr->xClearWindow) /* 22 */
-#endif
-#ifndef XConfigureWindow
-#define XConfigureWindow \
- (tkIntXlibStubsPtr->xConfigureWindow) /* 23 */
-#endif
-#ifndef XCopyArea
-#define XCopyArea \
- (tkIntXlibStubsPtr->xCopyArea) /* 24 */
-#endif
-#ifndef XCopyPlane
-#define XCopyPlane \
- (tkIntXlibStubsPtr->xCopyPlane) /* 25 */
-#endif
-#ifndef XCreateBitmapFromData
-#define XCreateBitmapFromData \
- (tkIntXlibStubsPtr->xCreateBitmapFromData) /* 26 */
-#endif
-#ifndef XDefineCursor
-#define XDefineCursor \
- (tkIntXlibStubsPtr->xDefineCursor) /* 27 */
-#endif
-#ifndef XDeleteProperty
-#define XDeleteProperty \
- (tkIntXlibStubsPtr->xDeleteProperty) /* 28 */
-#endif
-#ifndef XDestroyWindow
-#define XDestroyWindow \
- (tkIntXlibStubsPtr->xDestroyWindow) /* 29 */
-#endif
-#ifndef XDrawArc
-#define XDrawArc \
- (tkIntXlibStubsPtr->xDrawArc) /* 30 */
-#endif
-#ifndef XDrawLines
-#define XDrawLines \
- (tkIntXlibStubsPtr->xDrawLines) /* 31 */
-#endif
-#ifndef XDrawRectangle
-#define XDrawRectangle \
- (tkIntXlibStubsPtr->xDrawRectangle) /* 32 */
-#endif
-#ifndef XFillArc
-#define XFillArc \
- (tkIntXlibStubsPtr->xFillArc) /* 33 */
-#endif
-#ifndef XFillPolygon
-#define XFillPolygon \
- (tkIntXlibStubsPtr->xFillPolygon) /* 34 */
-#endif
-#ifndef XFillRectangles
-#define XFillRectangles \
- (tkIntXlibStubsPtr->xFillRectangles) /* 35 */
-#endif
-#ifndef XForceScreenSaver
-#define XForceScreenSaver \
- (tkIntXlibStubsPtr->xForceScreenSaver) /* 36 */
-#endif
-#ifndef XFreeColormap
-#define XFreeColormap \
- (tkIntXlibStubsPtr->xFreeColormap) /* 37 */
-#endif
-#ifndef XFreeColors
-#define XFreeColors \
- (tkIntXlibStubsPtr->xFreeColors) /* 38 */
-#endif
-#ifndef XFreeCursor
-#define XFreeCursor \
- (tkIntXlibStubsPtr->xFreeCursor) /* 39 */
-#endif
-#ifndef XFreeModifiermap
-#define XFreeModifiermap \
- (tkIntXlibStubsPtr->xFreeModifiermap) /* 40 */
-#endif
-#ifndef XGetGeometry
-#define XGetGeometry \
- (tkIntXlibStubsPtr->xGetGeometry) /* 41 */
-#endif
-#ifndef XGetInputFocus
-#define XGetInputFocus \
- (tkIntXlibStubsPtr->xGetInputFocus) /* 42 */
-#endif
-#ifndef XGetWindowProperty
-#define XGetWindowProperty \
- (tkIntXlibStubsPtr->xGetWindowProperty) /* 43 */
-#endif
-#ifndef XGetWindowAttributes
-#define XGetWindowAttributes \
- (tkIntXlibStubsPtr->xGetWindowAttributes) /* 44 */
-#endif
-#ifndef XGrabKeyboard
-#define XGrabKeyboard \
- (tkIntXlibStubsPtr->xGrabKeyboard) /* 45 */
-#endif
-#ifndef XGrabPointer
-#define XGrabPointer \
- (tkIntXlibStubsPtr->xGrabPointer) /* 46 */
-#endif
-#ifndef XKeysymToKeycode
-#define XKeysymToKeycode \
- (tkIntXlibStubsPtr->xKeysymToKeycode) /* 47 */
-#endif
-#ifndef XLookupColor
-#define XLookupColor \
- (tkIntXlibStubsPtr->xLookupColor) /* 48 */
-#endif
-#ifndef XMapWindow
-#define XMapWindow \
- (tkIntXlibStubsPtr->xMapWindow) /* 49 */
-#endif
-#ifndef XMoveResizeWindow
-#define XMoveResizeWindow \
- (tkIntXlibStubsPtr->xMoveResizeWindow) /* 50 */
-#endif
-#ifndef XMoveWindow
-#define XMoveWindow \
- (tkIntXlibStubsPtr->xMoveWindow) /* 51 */
-#endif
-#ifndef XNextEvent
-#define XNextEvent \
- (tkIntXlibStubsPtr->xNextEvent) /* 52 */
-#endif
-#ifndef XPutBackEvent
-#define XPutBackEvent \
- (tkIntXlibStubsPtr->xPutBackEvent) /* 53 */
-#endif
-#ifndef XQueryColors
-#define XQueryColors \
- (tkIntXlibStubsPtr->xQueryColors) /* 54 */
-#endif
-#ifndef XQueryPointer
-#define XQueryPointer \
- (tkIntXlibStubsPtr->xQueryPointer) /* 55 */
-#endif
-#ifndef XQueryTree
-#define XQueryTree \
- (tkIntXlibStubsPtr->xQueryTree) /* 56 */
-#endif
-#ifndef XRaiseWindow
-#define XRaiseWindow \
- (tkIntXlibStubsPtr->xRaiseWindow) /* 57 */
-#endif
-#ifndef XRefreshKeyboardMapping
-#define XRefreshKeyboardMapping \
- (tkIntXlibStubsPtr->xRefreshKeyboardMapping) /* 58 */
-#endif
-#ifndef XResizeWindow
-#define XResizeWindow \
- (tkIntXlibStubsPtr->xResizeWindow) /* 59 */
-#endif
-#ifndef XSelectInput
-#define XSelectInput \
- (tkIntXlibStubsPtr->xSelectInput) /* 60 */
-#endif
-#ifndef XSendEvent
-#define XSendEvent \
- (tkIntXlibStubsPtr->xSendEvent) /* 61 */
-#endif
-#ifndef XSetCommand
-#define XSetCommand \
- (tkIntXlibStubsPtr->xSetCommand) /* 62 */
-#endif
-#ifndef XSetIconName
-#define XSetIconName \
- (tkIntXlibStubsPtr->xSetIconName) /* 63 */
-#endif
-#ifndef XSetInputFocus
-#define XSetInputFocus \
- (tkIntXlibStubsPtr->xSetInputFocus) /* 64 */
-#endif
-#ifndef XSetSelectionOwner
-#define XSetSelectionOwner \
- (tkIntXlibStubsPtr->xSetSelectionOwner) /* 65 */
-#endif
-#ifndef XSetWindowBackground
-#define XSetWindowBackground \
- (tkIntXlibStubsPtr->xSetWindowBackground) /* 66 */
-#endif
-#ifndef XSetWindowBackgroundPixmap
-#define XSetWindowBackgroundPixmap \
- (tkIntXlibStubsPtr->xSetWindowBackgroundPixmap) /* 67 */
-#endif
-#ifndef XSetWindowBorder
-#define XSetWindowBorder \
- (tkIntXlibStubsPtr->xSetWindowBorder) /* 68 */
-#endif
-#ifndef XSetWindowBorderPixmap
-#define XSetWindowBorderPixmap \
- (tkIntXlibStubsPtr->xSetWindowBorderPixmap) /* 69 */
-#endif
-#ifndef XSetWindowBorderWidth
-#define XSetWindowBorderWidth \
- (tkIntXlibStubsPtr->xSetWindowBorderWidth) /* 70 */
-#endif
-#ifndef XSetWindowColormap
-#define XSetWindowColormap \
- (tkIntXlibStubsPtr->xSetWindowColormap) /* 71 */
-#endif
-#ifndef XTranslateCoordinates
-#define XTranslateCoordinates \
- (tkIntXlibStubsPtr->xTranslateCoordinates) /* 72 */
-#endif
-#ifndef XUngrabKeyboard
-#define XUngrabKeyboard \
- (tkIntXlibStubsPtr->xUngrabKeyboard) /* 73 */
-#endif
-#ifndef XUngrabPointer
-#define XUngrabPointer \
- (tkIntXlibStubsPtr->xUngrabPointer) /* 74 */
-#endif
-#ifndef XUnmapWindow
-#define XUnmapWindow \
- (tkIntXlibStubsPtr->xUnmapWindow) /* 75 */
-#endif
-#ifndef XWindowEvent
-#define XWindowEvent \
- (tkIntXlibStubsPtr->xWindowEvent) /* 76 */
-#endif
-#ifndef XDestroyIC
-#define XDestroyIC \
- (tkIntXlibStubsPtr->xDestroyIC) /* 77 */
-#endif
-#ifndef XFilterEvent
-#define XFilterEvent \
- (tkIntXlibStubsPtr->xFilterEvent) /* 78 */
-#endif
-#ifndef XmbLookupString
-#define XmbLookupString \
- (tkIntXlibStubsPtr->xmbLookupString) /* 79 */
-#endif
-#ifndef TkPutImage
-#define TkPutImage \
- (tkIntXlibStubsPtr->tkPutImage) /* 80 */
-#endif
-/* Slot 81 is reserved */
-#ifndef XParseColor
-#define XParseColor \
- (tkIntXlibStubsPtr->xParseColor) /* 82 */
-#endif
-#ifndef XCreateGC
-#define XCreateGC \
- (tkIntXlibStubsPtr->xCreateGC) /* 83 */
-#endif
-#ifndef XFreeGC
-#define XFreeGC \
- (tkIntXlibStubsPtr->xFreeGC) /* 84 */
-#endif
-#ifndef XInternAtom
-#define XInternAtom \
- (tkIntXlibStubsPtr->xInternAtom) /* 85 */
-#endif
-#ifndef XSetBackground
-#define XSetBackground \
- (tkIntXlibStubsPtr->xSetBackground) /* 86 */
-#endif
-#ifndef XSetForeground
-#define XSetForeground \
- (tkIntXlibStubsPtr->xSetForeground) /* 87 */
-#endif
-#ifndef XSetClipMask
-#define XSetClipMask \
- (tkIntXlibStubsPtr->xSetClipMask) /* 88 */
-#endif
-#ifndef XSetClipOrigin
-#define XSetClipOrigin \
- (tkIntXlibStubsPtr->xSetClipOrigin) /* 89 */
-#endif
-#ifndef XSetTSOrigin
-#define XSetTSOrigin \
- (tkIntXlibStubsPtr->xSetTSOrigin) /* 90 */
-#endif
-#ifndef XChangeGC
-#define XChangeGC \
- (tkIntXlibStubsPtr->xChangeGC) /* 91 */
-#endif
-#ifndef XSetFont
-#define XSetFont \
- (tkIntXlibStubsPtr->xSetFont) /* 92 */
-#endif
-#ifndef XSetArcMode
-#define XSetArcMode \
- (tkIntXlibStubsPtr->xSetArcMode) /* 93 */
-#endif
-#ifndef XSetStipple
-#define XSetStipple \
- (tkIntXlibStubsPtr->xSetStipple) /* 94 */
-#endif
-#ifndef XSetFillRule
-#define XSetFillRule \
- (tkIntXlibStubsPtr->xSetFillRule) /* 95 */
-#endif
-#ifndef XSetFillStyle
-#define XSetFillStyle \
- (tkIntXlibStubsPtr->xSetFillStyle) /* 96 */
-#endif
-#ifndef XSetFunction
-#define XSetFunction \
- (tkIntXlibStubsPtr->xSetFunction) /* 97 */
-#endif
-#ifndef XSetLineAttributes
-#define XSetLineAttributes \
- (tkIntXlibStubsPtr->xSetLineAttributes) /* 98 */
-#endif
-#ifndef _XInitImageFuncPtrs
-#define _XInitImageFuncPtrs \
- (tkIntXlibStubsPtr->_XInitImageFuncPtrs) /* 99 */
-#endif
-#ifndef XCreateIC
-#define XCreateIC \
- (tkIntXlibStubsPtr->xCreateIC) /* 100 */
-#endif
-#ifndef XGetVisualInfo
-#define XGetVisualInfo \
- (tkIntXlibStubsPtr->xGetVisualInfo) /* 101 */
-#endif
-#ifndef XSetWMClientMachine
-#define XSetWMClientMachine \
- (tkIntXlibStubsPtr->xSetWMClientMachine) /* 102 */
-#endif
-#ifndef XStringListToTextProperty
-#define XStringListToTextProperty \
- (tkIntXlibStubsPtr->xStringListToTextProperty) /* 103 */
-#endif
-#ifndef XDrawLine
-#define XDrawLine \
- (tkIntXlibStubsPtr->xDrawLine) /* 104 */
-#endif
-#ifndef XWarpPointer
-#define XWarpPointer \
- (tkIntXlibStubsPtr->xWarpPointer) /* 105 */
-#endif
-#ifndef XFillRectangle
-#define XFillRectangle \
- (tkIntXlibStubsPtr->xFillRectangle) /* 106 */
-#endif
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-#ifndef XSetDashes
-#define XSetDashes \
- (tkIntXlibStubsPtr->xSetDashes) /* 0 */
-#endif
-#ifndef XGetModifierMapping
-#define XGetModifierMapping \
- (tkIntXlibStubsPtr->xGetModifierMapping) /* 1 */
-#endif
-#ifndef XCreateImage
-#define XCreateImage \
- (tkIntXlibStubsPtr->xCreateImage) /* 2 */
-#endif
-#ifndef XGetImage
-#define XGetImage \
- (tkIntXlibStubsPtr->xGetImage) /* 3 */
-#endif
-#ifndef XGetAtomName
-#define XGetAtomName \
- (tkIntXlibStubsPtr->xGetAtomName) /* 4 */
-#endif
-#ifndef XKeysymToString
-#define XKeysymToString \
- (tkIntXlibStubsPtr->xKeysymToString) /* 5 */
-#endif
-#ifndef XCreateColormap
-#define XCreateColormap \
- (tkIntXlibStubsPtr->xCreateColormap) /* 6 */
-#endif
-#ifndef XGContextFromGC
-#define XGContextFromGC \
- (tkIntXlibStubsPtr->xGContextFromGC) /* 7 */
-#endif
-#ifndef XKeycodeToKeysym
-#define XKeycodeToKeysym \
- (tkIntXlibStubsPtr->xKeycodeToKeysym) /* 8 */
-#endif
-#ifndef XStringToKeysym
-#define XStringToKeysym \
- (tkIntXlibStubsPtr->xStringToKeysym) /* 9 */
-#endif
-#ifndef XRootWindow
-#define XRootWindow \
- (tkIntXlibStubsPtr->xRootWindow) /* 10 */
-#endif
-#ifndef XSetErrorHandler
-#define XSetErrorHandler \
- (tkIntXlibStubsPtr->xSetErrorHandler) /* 11 */
-#endif
-#ifndef XAllocColor
-#define XAllocColor \
- (tkIntXlibStubsPtr->xAllocColor) /* 12 */
-#endif
-#ifndef XBell
-#define XBell \
- (tkIntXlibStubsPtr->xBell) /* 13 */
-#endif
-#ifndef XChangeProperty
-#define XChangeProperty \
- (tkIntXlibStubsPtr->xChangeProperty) /* 14 */
-#endif
-#ifndef XChangeWindowAttributes
-#define XChangeWindowAttributes \
- (tkIntXlibStubsPtr->xChangeWindowAttributes) /* 15 */
-#endif
-#ifndef XConfigureWindow
-#define XConfigureWindow \
- (tkIntXlibStubsPtr->xConfigureWindow) /* 16 */
-#endif
-#ifndef XCopyArea
-#define XCopyArea \
- (tkIntXlibStubsPtr->xCopyArea) /* 17 */
-#endif
-#ifndef XCopyPlane
-#define XCopyPlane \
- (tkIntXlibStubsPtr->xCopyPlane) /* 18 */
-#endif
-#ifndef XCreateBitmapFromData
-#define XCreateBitmapFromData \
- (tkIntXlibStubsPtr->xCreateBitmapFromData) /* 19 */
-#endif
-#ifndef XDefineCursor
-#define XDefineCursor \
- (tkIntXlibStubsPtr->xDefineCursor) /* 20 */
-#endif
-#ifndef XDestroyWindow
-#define XDestroyWindow \
- (tkIntXlibStubsPtr->xDestroyWindow) /* 21 */
-#endif
-#ifndef XDrawArc
-#define XDrawArc \
- (tkIntXlibStubsPtr->xDrawArc) /* 22 */
-#endif
-#ifndef XDrawLines
-#define XDrawLines \
- (tkIntXlibStubsPtr->xDrawLines) /* 23 */
-#endif
-#ifndef XDrawRectangle
-#define XDrawRectangle \
- (tkIntXlibStubsPtr->xDrawRectangle) /* 24 */
-#endif
-#ifndef XFillArc
-#define XFillArc \
- (tkIntXlibStubsPtr->xFillArc) /* 25 */
-#endif
-#ifndef XFillPolygon
-#define XFillPolygon \
- (tkIntXlibStubsPtr->xFillPolygon) /* 26 */
-#endif
-#ifndef XFillRectangles
-#define XFillRectangles \
- (tkIntXlibStubsPtr->xFillRectangles) /* 27 */
-#endif
-#ifndef XFreeColormap
-#define XFreeColormap \
- (tkIntXlibStubsPtr->xFreeColormap) /* 28 */
-#endif
-#ifndef XFreeColors
-#define XFreeColors \
- (tkIntXlibStubsPtr->xFreeColors) /* 29 */
-#endif
-#ifndef XFreeModifiermap
-#define XFreeModifiermap \
- (tkIntXlibStubsPtr->xFreeModifiermap) /* 30 */
-#endif
-#ifndef XGetGeometry
-#define XGetGeometry \
- (tkIntXlibStubsPtr->xGetGeometry) /* 31 */
-#endif
-#ifndef XGetWindowProperty
-#define XGetWindowProperty \
- (tkIntXlibStubsPtr->xGetWindowProperty) /* 32 */
-#endif
-#ifndef XGrabKeyboard
-#define XGrabKeyboard \
- (tkIntXlibStubsPtr->xGrabKeyboard) /* 33 */
-#endif
-#ifndef XGrabPointer
-#define XGrabPointer \
- (tkIntXlibStubsPtr->xGrabPointer) /* 34 */
-#endif
-#ifndef XKeysymToKeycode
-#define XKeysymToKeycode \
- (tkIntXlibStubsPtr->xKeysymToKeycode) /* 35 */
-#endif
-#ifndef XMapWindow
-#define XMapWindow \
- (tkIntXlibStubsPtr->xMapWindow) /* 36 */
-#endif
-#ifndef XMoveResizeWindow
-#define XMoveResizeWindow \
- (tkIntXlibStubsPtr->xMoveResizeWindow) /* 37 */
-#endif
-#ifndef XMoveWindow
-#define XMoveWindow \
- (tkIntXlibStubsPtr->xMoveWindow) /* 38 */
-#endif
-#ifndef XQueryPointer
-#define XQueryPointer \
- (tkIntXlibStubsPtr->xQueryPointer) /* 39 */
-#endif
-#ifndef XRaiseWindow
-#define XRaiseWindow \
- (tkIntXlibStubsPtr->xRaiseWindow) /* 40 */
-#endif
-#ifndef XRefreshKeyboardMapping
-#define XRefreshKeyboardMapping \
- (tkIntXlibStubsPtr->xRefreshKeyboardMapping) /* 41 */
-#endif
-#ifndef XResizeWindow
-#define XResizeWindow \
- (tkIntXlibStubsPtr->xResizeWindow) /* 42 */
-#endif
-#ifndef XSelectInput
-#define XSelectInput \
- (tkIntXlibStubsPtr->xSelectInput) /* 43 */
-#endif
-#ifndef XSendEvent
-#define XSendEvent \
- (tkIntXlibStubsPtr->xSendEvent) /* 44 */
-#endif
-#ifndef XSetIconName
-#define XSetIconName \
- (tkIntXlibStubsPtr->xSetIconName) /* 45 */
-#endif
-#ifndef XSetInputFocus
-#define XSetInputFocus \
- (tkIntXlibStubsPtr->xSetInputFocus) /* 46 */
-#endif
-#ifndef XSetSelectionOwner
-#define XSetSelectionOwner \
- (tkIntXlibStubsPtr->xSetSelectionOwner) /* 47 */
-#endif
-#ifndef XSetWindowBackground
-#define XSetWindowBackground \
- (tkIntXlibStubsPtr->xSetWindowBackground) /* 48 */
-#endif
-#ifndef XSetWindowBackgroundPixmap
-#define XSetWindowBackgroundPixmap \
- (tkIntXlibStubsPtr->xSetWindowBackgroundPixmap) /* 49 */
-#endif
-#ifndef XSetWindowBorder
-#define XSetWindowBorder \
- (tkIntXlibStubsPtr->xSetWindowBorder) /* 50 */
-#endif
-#ifndef XSetWindowBorderPixmap
-#define XSetWindowBorderPixmap \
- (tkIntXlibStubsPtr->xSetWindowBorderPixmap) /* 51 */
-#endif
-#ifndef XSetWindowBorderWidth
-#define XSetWindowBorderWidth \
- (tkIntXlibStubsPtr->xSetWindowBorderWidth) /* 52 */
-#endif
-#ifndef XSetWindowColormap
-#define XSetWindowColormap \
- (tkIntXlibStubsPtr->xSetWindowColormap) /* 53 */
-#endif
-#ifndef XUngrabKeyboard
-#define XUngrabKeyboard \
- (tkIntXlibStubsPtr->xUngrabKeyboard) /* 54 */
-#endif
-#ifndef XUngrabPointer
-#define XUngrabPointer \
- (tkIntXlibStubsPtr->xUngrabPointer) /* 55 */
-#endif
-#ifndef XUnmapWindow
-#define XUnmapWindow \
- (tkIntXlibStubsPtr->xUnmapWindow) /* 56 */
-#endif
-#ifndef TkPutImage
-#define TkPutImage \
- (tkIntXlibStubsPtr->tkPutImage) /* 57 */
-#endif
-#ifndef XParseColor
-#define XParseColor \
- (tkIntXlibStubsPtr->xParseColor) /* 58 */
-#endif
-#ifndef XCreateGC
-#define XCreateGC \
- (tkIntXlibStubsPtr->xCreateGC) /* 59 */
-#endif
-#ifndef XFreeGC
-#define XFreeGC \
- (tkIntXlibStubsPtr->xFreeGC) /* 60 */
-#endif
-#ifndef XInternAtom
-#define XInternAtom \
- (tkIntXlibStubsPtr->xInternAtom) /* 61 */
-#endif
-#ifndef XSetBackground
-#define XSetBackground \
- (tkIntXlibStubsPtr->xSetBackground) /* 62 */
-#endif
-#ifndef XSetForeground
-#define XSetForeground \
- (tkIntXlibStubsPtr->xSetForeground) /* 63 */
-#endif
-#ifndef XSetClipMask
-#define XSetClipMask \
- (tkIntXlibStubsPtr->xSetClipMask) /* 64 */
-#endif
-#ifndef XSetClipOrigin
-#define XSetClipOrigin \
- (tkIntXlibStubsPtr->xSetClipOrigin) /* 65 */
-#endif
-#ifndef XSetTSOrigin
-#define XSetTSOrigin \
- (tkIntXlibStubsPtr->xSetTSOrigin) /* 66 */
-#endif
-#ifndef XChangeGC
-#define XChangeGC \
- (tkIntXlibStubsPtr->xChangeGC) /* 67 */
-#endif
-#ifndef XSetFont
-#define XSetFont \
- (tkIntXlibStubsPtr->xSetFont) /* 68 */
-#endif
-#ifndef XSetArcMode
-#define XSetArcMode \
- (tkIntXlibStubsPtr->xSetArcMode) /* 69 */
-#endif
-#ifndef XSetStipple
-#define XSetStipple \
- (tkIntXlibStubsPtr->xSetStipple) /* 70 */
-#endif
-#ifndef XSetFillRule
-#define XSetFillRule \
- (tkIntXlibStubsPtr->xSetFillRule) /* 71 */
-#endif
-#ifndef XSetFillStyle
-#define XSetFillStyle \
- (tkIntXlibStubsPtr->xSetFillStyle) /* 72 */
-#endif
-#ifndef XSetFunction
-#define XSetFunction \
- (tkIntXlibStubsPtr->xSetFunction) /* 73 */
-#endif
-#ifndef XSetLineAttributes
-#define XSetLineAttributes \
- (tkIntXlibStubsPtr->xSetLineAttributes) /* 74 */
-#endif
-#ifndef _XInitImageFuncPtrs
-#define _XInitImageFuncPtrs \
- (tkIntXlibStubsPtr->_XInitImageFuncPtrs) /* 75 */
-#endif
-#ifndef XCreateIC
-#define XCreateIC \
- (tkIntXlibStubsPtr->xCreateIC) /* 76 */
-#endif
-#ifndef XGetVisualInfo
-#define XGetVisualInfo \
- (tkIntXlibStubsPtr->xGetVisualInfo) /* 77 */
-#endif
-#ifndef XSetWMClientMachine
-#define XSetWMClientMachine \
- (tkIntXlibStubsPtr->xSetWMClientMachine) /* 78 */
-#endif
-#ifndef XStringListToTextProperty
-#define XStringListToTextProperty \
- (tkIntXlibStubsPtr->xStringListToTextProperty) /* 79 */
-#endif
-#ifndef XDrawSegments
-#define XDrawSegments \
- (tkIntXlibStubsPtr->xDrawSegments) /* 80 */
-#endif
-#ifndef XForceScreenSaver
-#define XForceScreenSaver \
- (tkIntXlibStubsPtr->xForceScreenSaver) /* 81 */
-#endif
-#ifndef XDrawLine
-#define XDrawLine \
- (tkIntXlibStubsPtr->xDrawLine) /* 82 */
-#endif
-#ifndef XFillRectangle
-#define XFillRectangle \
- (tkIntXlibStubsPtr->xFillRectangle) /* 83 */
-#endif
-#ifndef XClearWindow
-#define XClearWindow \
- (tkIntXlibStubsPtr->xClearWindow) /* 84 */
-#endif
-#ifndef XDrawPoint
-#define XDrawPoint \
- (tkIntXlibStubsPtr->xDrawPoint) /* 85 */
-#endif
-#ifndef XDrawPoints
-#define XDrawPoints \
- (tkIntXlibStubsPtr->xDrawPoints) /* 86 */
-#endif
-#ifndef XWarpPointer
-#define XWarpPointer \
- (tkIntXlibStubsPtr->xWarpPointer) /* 87 */
-#endif
-#ifndef XQueryColor
-#define XQueryColor \
- (tkIntXlibStubsPtr->xQueryColor) /* 88 */
-#endif
-#ifndef XQueryColors
-#define XQueryColors \
- (tkIntXlibStubsPtr->xQueryColors) /* 89 */
-#endif
-#ifndef XQueryTree
-#define XQueryTree \
- (tkIntXlibStubsPtr->xQueryTree) /* 90 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef XSetDashes
-#define XSetDashes \
- (tkIntXlibStubsPtr->xSetDashes) /* 0 */
-#endif
-#ifndef XGetModifierMapping
-#define XGetModifierMapping \
- (tkIntXlibStubsPtr->xGetModifierMapping) /* 1 */
-#endif
-#ifndef XCreateImage
-#define XCreateImage \
- (tkIntXlibStubsPtr->xCreateImage) /* 2 */
-#endif
-#ifndef XGetImage
-#define XGetImage \
- (tkIntXlibStubsPtr->xGetImage) /* 3 */
-#endif
-#ifndef XGetAtomName
-#define XGetAtomName \
- (tkIntXlibStubsPtr->xGetAtomName) /* 4 */
-#endif
-#ifndef XKeysymToString
-#define XKeysymToString \
- (tkIntXlibStubsPtr->xKeysymToString) /* 5 */
-#endif
-#ifndef XCreateColormap
-#define XCreateColormap \
- (tkIntXlibStubsPtr->xCreateColormap) /* 6 */
-#endif
-#ifndef XGContextFromGC
-#define XGContextFromGC \
- (tkIntXlibStubsPtr->xGContextFromGC) /* 7 */
-#endif
-#ifndef XKeycodeToKeysym
-#define XKeycodeToKeysym \
- (tkIntXlibStubsPtr->xKeycodeToKeysym) /* 8 */
-#endif
-#ifndef XStringToKeysym
-#define XStringToKeysym \
- (tkIntXlibStubsPtr->xStringToKeysym) /* 9 */
-#endif
-#ifndef XRootWindow
-#define XRootWindow \
- (tkIntXlibStubsPtr->xRootWindow) /* 10 */
-#endif
-#ifndef XSetErrorHandler
-#define XSetErrorHandler \
- (tkIntXlibStubsPtr->xSetErrorHandler) /* 11 */
-#endif
-#ifndef XAllocColor
-#define XAllocColor \
- (tkIntXlibStubsPtr->xAllocColor) /* 12 */
-#endif
-#ifndef XBell
-#define XBell \
- (tkIntXlibStubsPtr->xBell) /* 13 */
-#endif
-#ifndef XChangeProperty
-#define XChangeProperty \
- (tkIntXlibStubsPtr->xChangeProperty) /* 14 */
-#endif
-#ifndef XChangeWindowAttributes
-#define XChangeWindowAttributes \
- (tkIntXlibStubsPtr->xChangeWindowAttributes) /* 15 */
-#endif
-#ifndef XConfigureWindow
-#define XConfigureWindow \
- (tkIntXlibStubsPtr->xConfigureWindow) /* 16 */
-#endif
-#ifndef XCopyArea
-#define XCopyArea \
- (tkIntXlibStubsPtr->xCopyArea) /* 17 */
-#endif
-#ifndef XCopyPlane
-#define XCopyPlane \
- (tkIntXlibStubsPtr->xCopyPlane) /* 18 */
-#endif
-#ifndef XCreateBitmapFromData
-#define XCreateBitmapFromData \
- (tkIntXlibStubsPtr->xCreateBitmapFromData) /* 19 */
-#endif
-#ifndef XDefineCursor
-#define XDefineCursor \
- (tkIntXlibStubsPtr->xDefineCursor) /* 20 */
-#endif
-#ifndef XDestroyWindow
-#define XDestroyWindow \
- (tkIntXlibStubsPtr->xDestroyWindow) /* 21 */
-#endif
-#ifndef XDrawArc
-#define XDrawArc \
- (tkIntXlibStubsPtr->xDrawArc) /* 22 */
-#endif
-#ifndef XDrawLines
-#define XDrawLines \
- (tkIntXlibStubsPtr->xDrawLines) /* 23 */
-#endif
-#ifndef XDrawRectangle
-#define XDrawRectangle \
- (tkIntXlibStubsPtr->xDrawRectangle) /* 24 */
-#endif
-#ifndef XFillArc
-#define XFillArc \
- (tkIntXlibStubsPtr->xFillArc) /* 25 */
-#endif
-#ifndef XFillPolygon
-#define XFillPolygon \
- (tkIntXlibStubsPtr->xFillPolygon) /* 26 */
-#endif
-#ifndef XFillRectangles
-#define XFillRectangles \
- (tkIntXlibStubsPtr->xFillRectangles) /* 27 */
-#endif
-#ifndef XFreeColormap
-#define XFreeColormap \
- (tkIntXlibStubsPtr->xFreeColormap) /* 28 */
-#endif
-#ifndef XFreeColors
-#define XFreeColors \
- (tkIntXlibStubsPtr->xFreeColors) /* 29 */
-#endif
-#ifndef XFreeModifiermap
-#define XFreeModifiermap \
- (tkIntXlibStubsPtr->xFreeModifiermap) /* 30 */
-#endif
-#ifndef XGetGeometry
-#define XGetGeometry \
- (tkIntXlibStubsPtr->xGetGeometry) /* 31 */
-#endif
-#ifndef XGetWindowProperty
-#define XGetWindowProperty \
- (tkIntXlibStubsPtr->xGetWindowProperty) /* 32 */
-#endif
-#ifndef XGrabKeyboard
-#define XGrabKeyboard \
- (tkIntXlibStubsPtr->xGrabKeyboard) /* 33 */
-#endif
-#ifndef XGrabPointer
-#define XGrabPointer \
- (tkIntXlibStubsPtr->xGrabPointer) /* 34 */
-#endif
-#ifndef XKeysymToKeycode
-#define XKeysymToKeycode \
- (tkIntXlibStubsPtr->xKeysymToKeycode) /* 35 */
-#endif
-#ifndef XMapWindow
-#define XMapWindow \
- (tkIntXlibStubsPtr->xMapWindow) /* 36 */
-#endif
-#ifndef XMoveResizeWindow
-#define XMoveResizeWindow \
- (tkIntXlibStubsPtr->xMoveResizeWindow) /* 37 */
-#endif
-#ifndef XMoveWindow
-#define XMoveWindow \
- (tkIntXlibStubsPtr->xMoveWindow) /* 38 */
-#endif
-#ifndef XQueryPointer
-#define XQueryPointer \
- (tkIntXlibStubsPtr->xQueryPointer) /* 39 */
-#endif
-#ifndef XRaiseWindow
-#define XRaiseWindow \
- (tkIntXlibStubsPtr->xRaiseWindow) /* 40 */
-#endif
-#ifndef XRefreshKeyboardMapping
-#define XRefreshKeyboardMapping \
- (tkIntXlibStubsPtr->xRefreshKeyboardMapping) /* 41 */
-#endif
-#ifndef XResizeWindow
-#define XResizeWindow \
- (tkIntXlibStubsPtr->xResizeWindow) /* 42 */
-#endif
-#ifndef XSelectInput
-#define XSelectInput \
- (tkIntXlibStubsPtr->xSelectInput) /* 43 */
-#endif
-#ifndef XSendEvent
-#define XSendEvent \
- (tkIntXlibStubsPtr->xSendEvent) /* 44 */
-#endif
-#ifndef XSetIconName
-#define XSetIconName \
- (tkIntXlibStubsPtr->xSetIconName) /* 45 */
-#endif
-#ifndef XSetInputFocus
-#define XSetInputFocus \
- (tkIntXlibStubsPtr->xSetInputFocus) /* 46 */
-#endif
-#ifndef XSetSelectionOwner
-#define XSetSelectionOwner \
- (tkIntXlibStubsPtr->xSetSelectionOwner) /* 47 */
-#endif
-#ifndef XSetWindowBackground
-#define XSetWindowBackground \
- (tkIntXlibStubsPtr->xSetWindowBackground) /* 48 */
-#endif
-#ifndef XSetWindowBackgroundPixmap
-#define XSetWindowBackgroundPixmap \
- (tkIntXlibStubsPtr->xSetWindowBackgroundPixmap) /* 49 */
-#endif
-#ifndef XSetWindowBorder
-#define XSetWindowBorder \
- (tkIntXlibStubsPtr->xSetWindowBorder) /* 50 */
-#endif
-#ifndef XSetWindowBorderPixmap
-#define XSetWindowBorderPixmap \
- (tkIntXlibStubsPtr->xSetWindowBorderPixmap) /* 51 */
-#endif
-#ifndef XSetWindowBorderWidth
-#define XSetWindowBorderWidth \
- (tkIntXlibStubsPtr->xSetWindowBorderWidth) /* 52 */
-#endif
-#ifndef XSetWindowColormap
-#define XSetWindowColormap \
- (tkIntXlibStubsPtr->xSetWindowColormap) /* 53 */
-#endif
-#ifndef XUngrabKeyboard
-#define XUngrabKeyboard \
- (tkIntXlibStubsPtr->xUngrabKeyboard) /* 54 */
-#endif
-#ifndef XUngrabPointer
-#define XUngrabPointer \
- (tkIntXlibStubsPtr->xUngrabPointer) /* 55 */
-#endif
-#ifndef XUnmapWindow
-#define XUnmapWindow \
- (tkIntXlibStubsPtr->xUnmapWindow) /* 56 */
-#endif
-#ifndef TkPutImage
-#define TkPutImage \
- (tkIntXlibStubsPtr->tkPutImage) /* 57 */
-#endif
-#ifndef XParseColor
-#define XParseColor \
- (tkIntXlibStubsPtr->xParseColor) /* 58 */
-#endif
-#ifndef XCreateGC
-#define XCreateGC \
- (tkIntXlibStubsPtr->xCreateGC) /* 59 */
-#endif
-#ifndef XFreeGC
-#define XFreeGC \
- (tkIntXlibStubsPtr->xFreeGC) /* 60 */
-#endif
-#ifndef XInternAtom
-#define XInternAtom \
- (tkIntXlibStubsPtr->xInternAtom) /* 61 */
-#endif
-#ifndef XSetBackground
-#define XSetBackground \
- (tkIntXlibStubsPtr->xSetBackground) /* 62 */
-#endif
-#ifndef XSetForeground
-#define XSetForeground \
- (tkIntXlibStubsPtr->xSetForeground) /* 63 */
-#endif
-#ifndef XSetClipMask
-#define XSetClipMask \
- (tkIntXlibStubsPtr->xSetClipMask) /* 64 */
-#endif
-#ifndef XSetClipOrigin
-#define XSetClipOrigin \
- (tkIntXlibStubsPtr->xSetClipOrigin) /* 65 */
-#endif
-#ifndef XSetTSOrigin
-#define XSetTSOrigin \
- (tkIntXlibStubsPtr->xSetTSOrigin) /* 66 */
-#endif
-#ifndef XChangeGC
-#define XChangeGC \
- (tkIntXlibStubsPtr->xChangeGC) /* 67 */
-#endif
-#ifndef XSetFont
-#define XSetFont \
- (tkIntXlibStubsPtr->xSetFont) /* 68 */
-#endif
-#ifndef XSetArcMode
-#define XSetArcMode \
- (tkIntXlibStubsPtr->xSetArcMode) /* 69 */
-#endif
-#ifndef XSetStipple
-#define XSetStipple \
- (tkIntXlibStubsPtr->xSetStipple) /* 70 */
-#endif
-#ifndef XSetFillRule
-#define XSetFillRule \
- (tkIntXlibStubsPtr->xSetFillRule) /* 71 */
-#endif
-#ifndef XSetFillStyle
-#define XSetFillStyle \
- (tkIntXlibStubsPtr->xSetFillStyle) /* 72 */
-#endif
-#ifndef XSetFunction
-#define XSetFunction \
- (tkIntXlibStubsPtr->xSetFunction) /* 73 */
-#endif
-#ifndef XSetLineAttributes
-#define XSetLineAttributes \
- (tkIntXlibStubsPtr->xSetLineAttributes) /* 74 */
-#endif
-#ifndef _XInitImageFuncPtrs
-#define _XInitImageFuncPtrs \
- (tkIntXlibStubsPtr->_XInitImageFuncPtrs) /* 75 */
-#endif
-#ifndef XCreateIC
-#define XCreateIC \
- (tkIntXlibStubsPtr->xCreateIC) /* 76 */
-#endif
-#ifndef XGetVisualInfo
-#define XGetVisualInfo \
- (tkIntXlibStubsPtr->xGetVisualInfo) /* 77 */
-#endif
-#ifndef XSetWMClientMachine
-#define XSetWMClientMachine \
- (tkIntXlibStubsPtr->xSetWMClientMachine) /* 78 */
-#endif
-#ifndef XStringListToTextProperty
-#define XStringListToTextProperty \
- (tkIntXlibStubsPtr->xStringListToTextProperty) /* 79 */
-#endif
-#ifndef XDrawSegments
-#define XDrawSegments \
- (tkIntXlibStubsPtr->xDrawSegments) /* 80 */
-#endif
-#ifndef XForceScreenSaver
-#define XForceScreenSaver \
- (tkIntXlibStubsPtr->xForceScreenSaver) /* 81 */
-#endif
-#ifndef XDrawLine
-#define XDrawLine \
- (tkIntXlibStubsPtr->xDrawLine) /* 82 */
-#endif
-#ifndef XFillRectangle
-#define XFillRectangle \
- (tkIntXlibStubsPtr->xFillRectangle) /* 83 */
-#endif
-#ifndef XClearWindow
-#define XClearWindow \
- (tkIntXlibStubsPtr->xClearWindow) /* 84 */
-#endif
-#ifndef XDrawPoint
-#define XDrawPoint \
- (tkIntXlibStubsPtr->xDrawPoint) /* 85 */
-#endif
-#ifndef XDrawPoints
-#define XDrawPoints \
- (tkIntXlibStubsPtr->xDrawPoints) /* 86 */
-#endif
-#ifndef XWarpPointer
-#define XWarpPointer \
- (tkIntXlibStubsPtr->xWarpPointer) /* 87 */
-#endif
-#ifndef XQueryColor
-#define XQueryColor \
- (tkIntXlibStubsPtr->xQueryColor) /* 88 */
-#endif
-#ifndef XQueryColors
-#define XQueryColors \
- (tkIntXlibStubsPtr->xQueryColors) /* 89 */
-#endif
-#ifndef XQueryTree
-#define XQueryTree \
- (tkIntXlibStubsPtr->xQueryTree) /* 90 */
-#endif
-#endif /* MAC_OSX_TK */
-
-#endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */
-
-/* !END!: Do not edit above this line. */
-
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKINTXLIBDECLS */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls.m
deleted file mode 100644
index 8671ce54721..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls.m
+++ /dev/null
@@ -1,446 +0,0 @@
-#ifndef _TKINTXLIBDECLS_VM
-#define _TKINTXLIBDECLS_VM
-#include "tkIntXlibDecls_f.h"
-#ifndef NO_VTABLES
-#ifndef TkPutImage
-# define TkPutImage (*TkintxlibdeclsVptr->V_TkPutImage)
-#endif
-
-#ifndef XAllocColor
-# define XAllocColor (*TkintxlibdeclsVptr->V_XAllocColor)
-#endif
-
-#ifndef XBell
-# define XBell (*TkintxlibdeclsVptr->V_XBell)
-#endif
-
-#ifndef XChangeGC
-# define XChangeGC (*TkintxlibdeclsVptr->V_XChangeGC)
-#endif
-
-#ifndef XChangeProperty
-# define XChangeProperty (*TkintxlibdeclsVptr->V_XChangeProperty)
-#endif
-
-#ifndef XChangeWindowAttributes
-# define XChangeWindowAttributes (*TkintxlibdeclsVptr->V_XChangeWindowAttributes)
-#endif
-
-#ifndef XClearWindow
-# define XClearWindow (*TkintxlibdeclsVptr->V_XClearWindow)
-#endif
-
-#ifndef XConfigureWindow
-# define XConfigureWindow (*TkintxlibdeclsVptr->V_XConfigureWindow)
-#endif
-
-#ifndef XCopyArea
-# define XCopyArea (*TkintxlibdeclsVptr->V_XCopyArea)
-#endif
-
-#ifndef XCopyPlane
-# define XCopyPlane (*TkintxlibdeclsVptr->V_XCopyPlane)
-#endif
-
-#ifndef XCreateBitmapFromData
-# define XCreateBitmapFromData (*TkintxlibdeclsVptr->V_XCreateBitmapFromData)
-#endif
-
-#ifndef XCreateColormap
-# define XCreateColormap (*TkintxlibdeclsVptr->V_XCreateColormap)
-#endif
-
-#ifndef XCreateGC
-# define XCreateGC (*TkintxlibdeclsVptr->V_XCreateGC)
-#endif
-
-#ifndef XCreateGlyphCursor
-# define XCreateGlyphCursor (*TkintxlibdeclsVptr->V_XCreateGlyphCursor)
-#endif
-
-#ifndef XCreateIC
-# define XCreateIC (*TkintxlibdeclsVptr->V_XCreateIC)
-#endif
-
-#ifndef XCreateImage
-# define XCreateImage (*TkintxlibdeclsVptr->V_XCreateImage)
-#endif
-
-#ifndef XCreatePixmapCursor
-# define XCreatePixmapCursor (*TkintxlibdeclsVptr->V_XCreatePixmapCursor)
-#endif
-
-#ifndef XDefineCursor
-# define XDefineCursor (*TkintxlibdeclsVptr->V_XDefineCursor)
-#endif
-
-#ifndef XDeleteProperty
-# define XDeleteProperty (*TkintxlibdeclsVptr->V_XDeleteProperty)
-#endif
-
-#ifndef XDestroyIC
-# define XDestroyIC (*TkintxlibdeclsVptr->V_XDestroyIC)
-#endif
-
-#ifndef XDestroyWindow
-# define XDestroyWindow (*TkintxlibdeclsVptr->V_XDestroyWindow)
-#endif
-
-#ifndef XDrawArc
-# define XDrawArc (*TkintxlibdeclsVptr->V_XDrawArc)
-#endif
-
-#ifndef XDrawLine
-# define XDrawLine (*TkintxlibdeclsVptr->V_XDrawLine)
-#endif
-
-#ifndef XDrawLines
-# define XDrawLines (*TkintxlibdeclsVptr->V_XDrawLines)
-#endif
-
-#ifndef XDrawPoint
-# define XDrawPoint (*TkintxlibdeclsVptr->V_XDrawPoint)
-#endif
-
-#ifndef XDrawPoints
-# define XDrawPoints (*TkintxlibdeclsVptr->V_XDrawPoints)
-#endif
-
-#ifndef XDrawRectangle
-# define XDrawRectangle (*TkintxlibdeclsVptr->V_XDrawRectangle)
-#endif
-
-#ifndef XDrawSegments
-# define XDrawSegments (*TkintxlibdeclsVptr->V_XDrawSegments)
-#endif
-
-#ifndef XFillArc
-# define XFillArc (*TkintxlibdeclsVptr->V_XFillArc)
-#endif
-
-#ifndef XFillPolygon
-# define XFillPolygon (*TkintxlibdeclsVptr->V_XFillPolygon)
-#endif
-
-#ifndef XFillRectangle
-# define XFillRectangle (*TkintxlibdeclsVptr->V_XFillRectangle)
-#endif
-
-#ifndef XFillRectangles
-# define XFillRectangles (*TkintxlibdeclsVptr->V_XFillRectangles)
-#endif
-
-#ifndef XFilterEvent
-# define XFilterEvent (*TkintxlibdeclsVptr->V_XFilterEvent)
-#endif
-
-#ifndef XForceScreenSaver
-# define XForceScreenSaver (*TkintxlibdeclsVptr->V_XForceScreenSaver)
-#endif
-
-#ifndef XFreeColormap
-# define XFreeColormap (*TkintxlibdeclsVptr->V_XFreeColormap)
-#endif
-
-#ifndef XFreeColors
-# define XFreeColors (*TkintxlibdeclsVptr->V_XFreeColors)
-#endif
-
-#ifndef XFreeCursor
-# define XFreeCursor (*TkintxlibdeclsVptr->V_XFreeCursor)
-#endif
-
-#ifndef XFreeGC
-# define XFreeGC (*TkintxlibdeclsVptr->V_XFreeGC)
-#endif
-
-#ifndef XFreeModifiermap
-# define XFreeModifiermap (*TkintxlibdeclsVptr->V_XFreeModifiermap)
-#endif
-
-#ifndef XGContextFromGC
-# define XGContextFromGC (*TkintxlibdeclsVptr->V_XGContextFromGC)
-#endif
-
-#ifndef XGetAtomName
-# define XGetAtomName (*TkintxlibdeclsVptr->V_XGetAtomName)
-#endif
-
-#ifndef XGetGeometry
-# define XGetGeometry (*TkintxlibdeclsVptr->V_XGetGeometry)
-#endif
-
-#ifndef XGetImage
-# define XGetImage (*TkintxlibdeclsVptr->V_XGetImage)
-#endif
-
-#ifndef XGetInputFocus
-# define XGetInputFocus (*TkintxlibdeclsVptr->V_XGetInputFocus)
-#endif
-
-#ifndef XGetModifierMapping
-# define XGetModifierMapping (*TkintxlibdeclsVptr->V_XGetModifierMapping)
-#endif
-
-#ifndef XGetVisualInfo
-# define XGetVisualInfo (*TkintxlibdeclsVptr->V_XGetVisualInfo)
-#endif
-
-#ifndef XGetWMColormapWindows
-# define XGetWMColormapWindows (*TkintxlibdeclsVptr->V_XGetWMColormapWindows)
-#endif
-
-#ifndef XGetWindowAttributes
-# define XGetWindowAttributes (*TkintxlibdeclsVptr->V_XGetWindowAttributes)
-#endif
-
-#ifndef XGetWindowProperty
-# define XGetWindowProperty (*TkintxlibdeclsVptr->V_XGetWindowProperty)
-#endif
-
-#ifndef XGrabKeyboard
-# define XGrabKeyboard (*TkintxlibdeclsVptr->V_XGrabKeyboard)
-#endif
-
-#ifndef XGrabPointer
-# define XGrabPointer (*TkintxlibdeclsVptr->V_XGrabPointer)
-#endif
-
-#ifndef XIconifyWindow
-# define XIconifyWindow (*TkintxlibdeclsVptr->V_XIconifyWindow)
-#endif
-
-#ifndef XInternAtom
-# define XInternAtom (*TkintxlibdeclsVptr->V_XInternAtom)
-#endif
-
-#ifndef XKeycodeToKeysym
-# define XKeycodeToKeysym (*TkintxlibdeclsVptr->V_XKeycodeToKeysym)
-#endif
-
-#ifndef XKeysymToKeycode
-# define XKeysymToKeycode (*TkintxlibdeclsVptr->V_XKeysymToKeycode)
-#endif
-
-#ifndef XKeysymToString
-# define XKeysymToString (*TkintxlibdeclsVptr->V_XKeysymToString)
-#endif
-
-#ifndef XListHosts
-# define XListHosts (*TkintxlibdeclsVptr->V_XListHosts)
-#endif
-
-#ifndef XLookupColor
-# define XLookupColor (*TkintxlibdeclsVptr->V_XLookupColor)
-#endif
-
-#ifndef XMapWindow
-# define XMapWindow (*TkintxlibdeclsVptr->V_XMapWindow)
-#endif
-
-#ifndef XMoveResizeWindow
-# define XMoveResizeWindow (*TkintxlibdeclsVptr->V_XMoveResizeWindow)
-#endif
-
-#ifndef XMoveWindow
-# define XMoveWindow (*TkintxlibdeclsVptr->V_XMoveWindow)
-#endif
-
-#ifndef XNextEvent
-# define XNextEvent (*TkintxlibdeclsVptr->V_XNextEvent)
-#endif
-
-#ifndef XParseColor
-# define XParseColor (*TkintxlibdeclsVptr->V_XParseColor)
-#endif
-
-#ifndef XPutBackEvent
-# define XPutBackEvent (*TkintxlibdeclsVptr->V_XPutBackEvent)
-#endif
-
-#ifndef XQueryColor
-# define XQueryColor (*TkintxlibdeclsVptr->V_XQueryColor)
-#endif
-
-#ifndef XQueryColors
-# define XQueryColors (*TkintxlibdeclsVptr->V_XQueryColors)
-#endif
-
-#ifndef XQueryPointer
-# define XQueryPointer (*TkintxlibdeclsVptr->V_XQueryPointer)
-#endif
-
-#ifndef XQueryTree
-# define XQueryTree (*TkintxlibdeclsVptr->V_XQueryTree)
-#endif
-
-#ifndef XRaiseWindow
-# define XRaiseWindow (*TkintxlibdeclsVptr->V_XRaiseWindow)
-#endif
-
-#ifndef XRefreshKeyboardMapping
-# define XRefreshKeyboardMapping (*TkintxlibdeclsVptr->V_XRefreshKeyboardMapping)
-#endif
-
-#ifndef XResizeWindow
-# define XResizeWindow (*TkintxlibdeclsVptr->V_XResizeWindow)
-#endif
-
-#ifndef XRootWindow
-# define XRootWindow (*TkintxlibdeclsVptr->V_XRootWindow)
-#endif
-
-#ifndef XSelectInput
-# define XSelectInput (*TkintxlibdeclsVptr->V_XSelectInput)
-#endif
-
-#ifndef XSendEvent
-# define XSendEvent (*TkintxlibdeclsVptr->V_XSendEvent)
-#endif
-
-#ifndef XSetArcMode
-# define XSetArcMode (*TkintxlibdeclsVptr->V_XSetArcMode)
-#endif
-
-#ifndef XSetBackground
-# define XSetBackground (*TkintxlibdeclsVptr->V_XSetBackground)
-#endif
-
-#ifndef XSetClipMask
-# define XSetClipMask (*TkintxlibdeclsVptr->V_XSetClipMask)
-#endif
-
-#ifndef XSetClipOrigin
-# define XSetClipOrigin (*TkintxlibdeclsVptr->V_XSetClipOrigin)
-#endif
-
-#ifndef XSetCommand
-# define XSetCommand (*TkintxlibdeclsVptr->V_XSetCommand)
-#endif
-
-#ifndef XSetDashes
-# define XSetDashes (*TkintxlibdeclsVptr->V_XSetDashes)
-#endif
-
-#ifndef XSetErrorHandler
-# define XSetErrorHandler (*TkintxlibdeclsVptr->V_XSetErrorHandler)
-#endif
-
-#ifndef XSetFillRule
-# define XSetFillRule (*TkintxlibdeclsVptr->V_XSetFillRule)
-#endif
-
-#ifndef XSetFillStyle
-# define XSetFillStyle (*TkintxlibdeclsVptr->V_XSetFillStyle)
-#endif
-
-#ifndef XSetFont
-# define XSetFont (*TkintxlibdeclsVptr->V_XSetFont)
-#endif
-
-#ifndef XSetForeground
-# define XSetForeground (*TkintxlibdeclsVptr->V_XSetForeground)
-#endif
-
-#ifndef XSetFunction
-# define XSetFunction (*TkintxlibdeclsVptr->V_XSetFunction)
-#endif
-
-#ifndef XSetIconName
-# define XSetIconName (*TkintxlibdeclsVptr->V_XSetIconName)
-#endif
-
-#ifndef XSetInputFocus
-# define XSetInputFocus (*TkintxlibdeclsVptr->V_XSetInputFocus)
-#endif
-
-#ifndef XSetLineAttributes
-# define XSetLineAttributes (*TkintxlibdeclsVptr->V_XSetLineAttributes)
-#endif
-
-#ifndef XSetSelectionOwner
-# define XSetSelectionOwner (*TkintxlibdeclsVptr->V_XSetSelectionOwner)
-#endif
-
-#ifndef XSetStipple
-# define XSetStipple (*TkintxlibdeclsVptr->V_XSetStipple)
-#endif
-
-#ifndef XSetTSOrigin
-# define XSetTSOrigin (*TkintxlibdeclsVptr->V_XSetTSOrigin)
-#endif
-
-#ifndef XSetWMClientMachine
-# define XSetWMClientMachine (*TkintxlibdeclsVptr->V_XSetWMClientMachine)
-#endif
-
-#ifndef XSetWindowBackground
-# define XSetWindowBackground (*TkintxlibdeclsVptr->V_XSetWindowBackground)
-#endif
-
-#ifndef XSetWindowBackgroundPixmap
-# define XSetWindowBackgroundPixmap (*TkintxlibdeclsVptr->V_XSetWindowBackgroundPixmap)
-#endif
-
-#ifndef XSetWindowBorder
-# define XSetWindowBorder (*TkintxlibdeclsVptr->V_XSetWindowBorder)
-#endif
-
-#ifndef XSetWindowBorderPixmap
-# define XSetWindowBorderPixmap (*TkintxlibdeclsVptr->V_XSetWindowBorderPixmap)
-#endif
-
-#ifndef XSetWindowBorderWidth
-# define XSetWindowBorderWidth (*TkintxlibdeclsVptr->V_XSetWindowBorderWidth)
-#endif
-
-#ifndef XSetWindowColormap
-# define XSetWindowColormap (*TkintxlibdeclsVptr->V_XSetWindowColormap)
-#endif
-
-#ifndef XStringListToTextProperty
-# define XStringListToTextProperty (*TkintxlibdeclsVptr->V_XStringListToTextProperty)
-#endif
-
-#ifndef XStringToKeysym
-# define XStringToKeysym (*TkintxlibdeclsVptr->V_XStringToKeysym)
-#endif
-
-#ifndef XTranslateCoordinates
-# define XTranslateCoordinates (*TkintxlibdeclsVptr->V_XTranslateCoordinates)
-#endif
-
-#ifndef XUngrabKeyboard
-# define XUngrabKeyboard (*TkintxlibdeclsVptr->V_XUngrabKeyboard)
-#endif
-
-#ifndef XUngrabPointer
-# define XUngrabPointer (*TkintxlibdeclsVptr->V_XUngrabPointer)
-#endif
-
-#ifndef XUnmapWindow
-# define XUnmapWindow (*TkintxlibdeclsVptr->V_XUnmapWindow)
-#endif
-
-#ifndef XWarpPointer
-# define XWarpPointer (*TkintxlibdeclsVptr->V_XWarpPointer)
-#endif
-
-#ifndef XWindowEvent
-# define XWindowEvent (*TkintxlibdeclsVptr->V_XWindowEvent)
-#endif
-
-#ifndef XWithdrawWindow
-# define XWithdrawWindow (*TkintxlibdeclsVptr->V_XWithdrawWindow)
-#endif
-
-#ifndef XmbLookupString
-# define XmbLookupString (*TkintxlibdeclsVptr->V_XmbLookupString)
-#endif
-
-#ifndef _XInitImageFuncPtrs
-# define _XInitImageFuncPtrs (*TkintxlibdeclsVptr->V__XInitImageFuncPtrs)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TKINTXLIBDECLS_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls.t
deleted file mode 100644
index fe7722315d0..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls.t
+++ /dev/null
@@ -1,1521 +0,0 @@
-#ifdef _TKINTXLIBDECLS
-#ifndef TkPutImage
-#ifdef MAC_OSX_TK
-VFUNC(void,TkPutImage,V_TkPutImage,_ANSI_ARGS_((unsigned long * colors,
- int ncolors, Display* display, Drawable d,
- GC gc, XImage* image, int src_x, int src_y,
- int dest_x, int dest_y, unsigned int width,
- unsigned int height)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkPutImage,V_TkPutImage,_ANSI_ARGS_((unsigned long * colors,
- int ncolors, Display* display, Drawable d,
- GC gc, XImage* image, int src_x, int src_y,
- int dest_x, int dest_y, unsigned int width,
- unsigned int height)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,TkPutImage,V_TkPutImage,_ANSI_ARGS_((unsigned long * colors,
- int ncolors, Display* display, Drawable d,
- GC gc, XImage* image, int src_x, int src_y,
- int dest_x, int dest_y, unsigned int width,
- unsigned int height)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef TkPutImage */
-
-#ifndef XAllocColor
-#ifdef MAC_OSX_TK
-VFUNC(Status,XAllocColor,V_XAllocColor,_ANSI_ARGS_((Display* d, Colormap c,
- XColor* xp)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(Status,XAllocColor,V_XAllocColor,_ANSI_ARGS_((Display* d, Colormap c,
- XColor* xp)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(Status,XAllocColor,V_XAllocColor,_ANSI_ARGS_((Display* d, Colormap c,
- XColor* xp)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XAllocColor */
-
-#ifndef XBell
-#ifdef MAC_OSX_TK
-VFUNC(void,XBell,V_XBell,_ANSI_ARGS_((Display* d, int i)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XBell,V_XBell,_ANSI_ARGS_((Display* d, int i)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XBell,V_XBell,_ANSI_ARGS_((Display* d, int i)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XBell */
-
-#ifndef XChangeGC
-#ifdef MAC_OSX_TK
-VFUNC(void,XChangeGC,V_XChangeGC,_ANSI_ARGS_((Display * d, GC gc,
- unsigned long mask, XGCValues * values)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XChangeGC,V_XChangeGC,_ANSI_ARGS_((Display * d, GC gc,
- unsigned long mask, XGCValues * values)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XChangeGC,V_XChangeGC,_ANSI_ARGS_((Display * d, GC gc,
- unsigned long mask, XGCValues * values)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XChangeGC */
-
-#ifndef XChangeProperty
-#ifdef MAC_OSX_TK
-VFUNC(void,XChangeProperty,V_XChangeProperty,_ANSI_ARGS_((Display* d, Window w,
- Atom a1, Atom a2, int i1, int i2,
- _Xconst unsigned char* c, int i3)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XChangeProperty,V_XChangeProperty,_ANSI_ARGS_((Display* d, Window w,
- Atom a1, Atom a2, int i1, int i2,
- _Xconst unsigned char* c, int i3)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XChangeProperty,V_XChangeProperty,_ANSI_ARGS_((Display* d, Window w,
- Atom a1, Atom a2, int i1, int i2,
- _Xconst unsigned char* c, int i3)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XChangeProperty */
-
-#ifndef XChangeWindowAttributes
-#ifdef MAC_OSX_TK
-VFUNC(void,XChangeWindowAttributes,V_XChangeWindowAttributes,_ANSI_ARGS_((Display* d,
- Window w, unsigned long ul,
- XSetWindowAttributes* x)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XChangeWindowAttributes,V_XChangeWindowAttributes,_ANSI_ARGS_((Display* d,
- Window w, unsigned long ul,
- XSetWindowAttributes* x)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XChangeWindowAttributes,V_XChangeWindowAttributes,_ANSI_ARGS_((Display* d,
- Window w, unsigned long ul,
- XSetWindowAttributes* x)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XChangeWindowAttributes */
-
-#ifndef XClearWindow
-#ifdef MAC_OSX_TK
-VFUNC(void,XClearWindow,V_XClearWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XClearWindow,V_XClearWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XClearWindow,V_XClearWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XClearWindow */
-
-#ifndef XConfigureWindow
-#ifdef MAC_OSX_TK
-VFUNC(void,XConfigureWindow,V_XConfigureWindow,_ANSI_ARGS_((Display* d, Window w,
- unsigned int i, XWindowChanges* x)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XConfigureWindow,V_XConfigureWindow,_ANSI_ARGS_((Display* d, Window w,
- unsigned int i, XWindowChanges* x)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XConfigureWindow,V_XConfigureWindow,_ANSI_ARGS_((Display* d, Window w,
- unsigned int i, XWindowChanges* x)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XConfigureWindow */
-
-#ifndef XCopyArea
-#ifdef MAC_OSX_TK
-VFUNC(void,XCopyArea,V_XCopyArea,_ANSI_ARGS_((Display* d, Drawable dr1,
- Drawable dr2, GC g, int i1, int i2,
- unsigned int ui1, unsigned int ui2, int i3,
- int i4)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XCopyArea,V_XCopyArea,_ANSI_ARGS_((Display* d, Drawable dr1,
- Drawable dr2, GC g, int i1, int i2,
- unsigned int ui1, unsigned int ui2, int i3,
- int i4)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XCopyArea,V_XCopyArea,_ANSI_ARGS_((Display* d, Drawable dr1,
- Drawable dr2, GC g, int i1, int i2,
- unsigned int ui1, unsigned int ui2, int i3,
- int i4)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XCopyArea */
-
-#ifndef XCopyPlane
-#ifdef MAC_OSX_TK
-VFUNC(void,XCopyPlane,V_XCopyPlane,_ANSI_ARGS_((Display* d, Drawable dr1,
- Drawable dr2, GC g, int i1, int i2,
- unsigned int ui1, unsigned int ui2, int i3,
- int i4, unsigned long ul)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XCopyPlane,V_XCopyPlane,_ANSI_ARGS_((Display* d, Drawable dr1,
- Drawable dr2, GC g, int i1, int i2,
- unsigned int ui1, unsigned int ui2, int i3,
- int i4, unsigned long ul)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XCopyPlane,V_XCopyPlane,_ANSI_ARGS_((Display* d, Drawable dr1,
- Drawable dr2, GC g, int i1, int i2,
- unsigned int ui1, unsigned int ui2, int i3,
- int i4, unsigned long ul)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XCopyPlane */
-
-#ifndef XCreateBitmapFromData
-#ifdef MAC_OSX_TK
-VFUNC(Pixmap,XCreateBitmapFromData,V_XCreateBitmapFromData,_ANSI_ARGS_((Display* display,
- Drawable d, _Xconst char* data,
- unsigned int width, unsigned int height)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(Pixmap,XCreateBitmapFromData,V_XCreateBitmapFromData,_ANSI_ARGS_((Display* display,
- Drawable d, _Xconst char* data,
- unsigned int width, unsigned int height)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(Pixmap,XCreateBitmapFromData,V_XCreateBitmapFromData,_ANSI_ARGS_((Display* display,
- Drawable d, _Xconst char* data,
- unsigned int width, unsigned int height)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XCreateBitmapFromData */
-
-#ifndef XCreateColormap
-#ifdef MAC_OSX_TK
-VFUNC(Colormap,XCreateColormap,V_XCreateColormap,_ANSI_ARGS_((Display* d, Window w,
- Visual* v, int i)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(Colormap,XCreateColormap,V_XCreateColormap,_ANSI_ARGS_((Display* d, Window w,
- Visual* v, int i)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(Colormap,XCreateColormap,V_XCreateColormap,_ANSI_ARGS_((Display* d, Window w,
- Visual* v, int i)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XCreateColormap */
-
-#ifndef XCreateGC
-#ifdef MAC_OSX_TK
-VFUNC(GC,XCreateGC,V_XCreateGC,_ANSI_ARGS_((Display* display, Drawable d,
- unsigned long valuemask, XGCValues* values)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(GC,XCreateGC,V_XCreateGC,_ANSI_ARGS_((Display* display, Drawable d,
- unsigned long valuemask, XGCValues* values)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(GC,XCreateGC,V_XCreateGC,_ANSI_ARGS_((Display* display, Drawable d,
- unsigned long valuemask, XGCValues* values)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XCreateGC */
-
-#ifndef XCreateGlyphCursor
-#ifdef __WIN32__
-VFUNC(Cursor,XCreateGlyphCursor,V_XCreateGlyphCursor,_ANSI_ARGS_((Display* d, Font f1,
- Font f2, unsigned int ui1, unsigned int ui2,
- XColor* x1, XColor* x2)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XCreateGlyphCursor */
-
-#ifndef XCreateIC
-#ifdef MAC_OSX_TK
-VFUNC(XIC,XCreateIC,V_XCreateIC,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(XIC,XCreateIC,V_XCreateIC,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(XIC,XCreateIC,V_XCreateIC,_ANSI_ARGS_((void)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XCreateIC */
-
-#ifndef XCreateImage
-#ifdef MAC_OSX_TK
-VFUNC(XImage *,XCreateImage,V_XCreateImage,_ANSI_ARGS_((Display* d, Visual* v,
- unsigned int ui1, int i1, int i2, char* cp,
- unsigned int ui2, unsigned int ui3, int i3,
- int i4)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(XImage *,XCreateImage,V_XCreateImage,_ANSI_ARGS_((Display* d, Visual* v,
- unsigned int ui1, int i1, int i2, char* cp,
- unsigned int ui2, unsigned int ui3, int i3,
- int i4)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(XImage *,XCreateImage,V_XCreateImage,_ANSI_ARGS_((Display* d, Visual* v,
- unsigned int ui1, int i1, int i2, char* cp,
- unsigned int ui2, unsigned int ui3, int i3,
- int i4)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XCreateImage */
-
-#ifndef XCreatePixmapCursor
-#ifdef __WIN32__
-VFUNC(Cursor,XCreatePixmapCursor,V_XCreatePixmapCursor,_ANSI_ARGS_((Display* d,
- Pixmap p1, Pixmap p2, XColor* x1, XColor* x2,
- unsigned int ui1, unsigned int ui2)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XCreatePixmapCursor */
-
-#ifndef XDefineCursor
-#ifdef MAC_OSX_TK
-VFUNC(void,XDefineCursor,V_XDefineCursor,_ANSI_ARGS_((Display* d, Window w,
- Cursor c)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XDefineCursor,V_XDefineCursor,_ANSI_ARGS_((Display* d, Window w,
- Cursor c)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XDefineCursor,V_XDefineCursor,_ANSI_ARGS_((Display* d, Window w,
- Cursor c)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XDefineCursor */
-
-#ifndef XDeleteProperty
-#ifdef __WIN32__
-VFUNC(void,XDeleteProperty,V_XDeleteProperty,_ANSI_ARGS_((Display* d, Window w,
- Atom a)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XDeleteProperty */
-
-#ifndef XDestroyIC
-#ifdef __WIN32__
-VFUNC(void,XDestroyIC,V_XDestroyIC,_ANSI_ARGS_((XIC x)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XDestroyIC */
-
-#ifndef XDestroyWindow
-#ifdef MAC_OSX_TK
-VFUNC(void,XDestroyWindow,V_XDestroyWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XDestroyWindow,V_XDestroyWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XDestroyWindow,V_XDestroyWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XDestroyWindow */
-
-#ifndef XDrawArc
-#ifdef MAC_OSX_TK
-VFUNC(void,XDrawArc,V_XDrawArc,_ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, int i3, int i4)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XDrawArc,V_XDrawArc,_ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, int i3, int i4)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XDrawArc,V_XDrawArc,_ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, int i3, int i4)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XDrawArc */
-
-#ifndef XDrawLine
-#ifdef MAC_OSX_TK
-VFUNC(void,XDrawLine,V_XDrawLine,_ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int x1, int y1, int x2, int y2)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XDrawLine,V_XDrawLine,_ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int x1, int y1, int x2, int y2)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XDrawLine,V_XDrawLine,_ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int x1, int y1, int x2, int y2)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XDrawLine */
-
-#ifndef XDrawLines
-#ifdef MAC_OSX_TK
-VFUNC(void,XDrawLines,V_XDrawLines,_ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XPoint* x, int i1, int i2)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XDrawLines,V_XDrawLines,_ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XPoint* x, int i1, int i2)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XDrawLines,V_XDrawLines,_ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XPoint* x, int i1, int i2)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XDrawLines */
-
-#ifndef XDrawPoint
-#ifdef MAC_OSX_TK
-VFUNC(void,XDrawPoint,V_XDrawPoint,_ANSI_ARGS_((Display* display, Drawable d,
- GC gc, int x, int y)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XDrawPoint,V_XDrawPoint,_ANSI_ARGS_((Display* display, Drawable d,
- GC gc, int x, int y)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef XDrawPoint */
-
-#ifndef XDrawPoints
-#ifdef MAC_OSX_TK
-VFUNC(void,XDrawPoints,V_XDrawPoints,_ANSI_ARGS_((Display* display,
- Drawable d, GC gc, XPoint * points,
- int npoints, int mode)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XDrawPoints,V_XDrawPoints,_ANSI_ARGS_((Display* display,
- Drawable d, GC gc, XPoint * points,
- int npoints, int mode)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef XDrawPoints */
-
-#ifndef XDrawRectangle
-#ifdef MAC_OSX_TK
-VFUNC(void,XDrawRectangle,V_XDrawRectangle,_ANSI_ARGS_((Display* d, Drawable dr,
- GC g, int i1, int i2, unsigned int ui1,
- unsigned int ui2)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XDrawRectangle,V_XDrawRectangle,_ANSI_ARGS_((Display* d, Drawable dr,
- GC g, int i1, int i2, unsigned int ui1,
- unsigned int ui2)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XDrawRectangle,V_XDrawRectangle,_ANSI_ARGS_((Display* d, Drawable dr,
- GC g, int i1, int i2, unsigned int ui1,
- unsigned int ui2)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XDrawRectangle */
-
-#ifndef XDrawSegments
-#ifdef MAC_OSX_TK
-VFUNC(void,XDrawSegments,V_XDrawSegments,_ANSI_ARGS_((Display * display,
- Drawable d, GC gc, XSegment * segments,
- int nsegments)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XDrawSegments,V_XDrawSegments,_ANSI_ARGS_((Display * display,
- Drawable d, GC gc, XSegment * segments,
- int nsegments)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef XDrawSegments */
-
-#ifndef XFillArc
-#ifdef MAC_OSX_TK
-VFUNC(void,XFillArc,V_XFillArc,_ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, int i3, int i4)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XFillArc,V_XFillArc,_ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, int i3, int i4)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XFillArc,V_XFillArc,_ANSI_ARGS_((Display* d, Drawable dr, GC g,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, int i3, int i4)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XFillArc */
-
-#ifndef XFillPolygon
-#ifdef MAC_OSX_TK
-VFUNC(void,XFillPolygon,V_XFillPolygon,_ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XPoint* x, int i1, int i2, int i3)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XFillPolygon,V_XFillPolygon,_ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XPoint* x, int i1, int i2, int i3)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XFillPolygon,V_XFillPolygon,_ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XPoint* x, int i1, int i2, int i3)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XFillPolygon */
-
-#ifndef XFillRectangle
-#ifdef MAC_OSX_TK
-VFUNC(void,XFillRectangle,V_XFillRectangle,_ANSI_ARGS_((Display* display,
- Drawable d, GC gc, int x, int y,
- unsigned int width, unsigned int height)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XFillRectangle,V_XFillRectangle,_ANSI_ARGS_((Display* display,
- Drawable d, GC gc, int x, int y,
- unsigned int width, unsigned int height)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XFillRectangle,V_XFillRectangle,_ANSI_ARGS_((Display* display,
- Drawable d, GC gc, int x, int y,
- unsigned int width, unsigned int height)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XFillRectangle */
-
-#ifndef XFillRectangles
-#ifdef MAC_OSX_TK
-VFUNC(void,XFillRectangles,V_XFillRectangles,_ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XRectangle* x, int i)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XFillRectangles,V_XFillRectangles,_ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XRectangle* x, int i)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XFillRectangles,V_XFillRectangles,_ANSI_ARGS_((Display* d, Drawable dr,
- GC g, XRectangle* x, int i)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XFillRectangles */
-
-#ifndef XFilterEvent
-#ifdef __WIN32__
-VFUNC(Bool,XFilterEvent,V_XFilterEvent,_ANSI_ARGS_((XEvent* x, Window w)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XFilterEvent */
-
-#ifndef XForceScreenSaver
-#ifdef MAC_OSX_TK
-VFUNC(void,XForceScreenSaver,V_XForceScreenSaver,_ANSI_ARGS_((Display* display,
- int mode)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XForceScreenSaver,V_XForceScreenSaver,_ANSI_ARGS_((Display* display,
- int mode)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XForceScreenSaver,V_XForceScreenSaver,_ANSI_ARGS_((Display* d, int i)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XForceScreenSaver */
-
-#ifndef XFreeColormap
-#ifdef MAC_OSX_TK
-VFUNC(void,XFreeColormap,V_XFreeColormap,_ANSI_ARGS_((Display* d, Colormap c)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XFreeColormap,V_XFreeColormap,_ANSI_ARGS_((Display* d, Colormap c)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XFreeColormap,V_XFreeColormap,_ANSI_ARGS_((Display* d, Colormap c)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XFreeColormap */
-
-#ifndef XFreeColors
-#ifdef MAC_OSX_TK
-VFUNC(void,XFreeColors,V_XFreeColors,_ANSI_ARGS_((Display* d, Colormap c,
- unsigned long* ulp, int i, unsigned long ul)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XFreeColors,V_XFreeColors,_ANSI_ARGS_((Display* d, Colormap c,
- unsigned long* ulp, int i, unsigned long ul)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XFreeColors,V_XFreeColors,_ANSI_ARGS_((Display* d, Colormap c,
- unsigned long* ulp, int i, unsigned long ul)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XFreeColors */
-
-#ifndef XFreeCursor
-#ifdef __WIN32__
-VFUNC(void,XFreeCursor,V_XFreeCursor,_ANSI_ARGS_((Display* d, Cursor c)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XFreeCursor */
-
-#ifndef XFreeGC
-#ifdef MAC_OSX_TK
-VFUNC(void,XFreeGC,V_XFreeGC,_ANSI_ARGS_((Display* display, GC gc)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XFreeGC,V_XFreeGC,_ANSI_ARGS_((Display* display, GC gc)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XFreeGC,V_XFreeGC,_ANSI_ARGS_((Display* display, GC gc)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XFreeGC */
-
-#ifndef XFreeModifiermap
-#ifdef MAC_OSX_TK
-VFUNC(void,XFreeModifiermap,V_XFreeModifiermap,_ANSI_ARGS_((XModifierKeymap* x)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XFreeModifiermap,V_XFreeModifiermap,_ANSI_ARGS_((XModifierKeymap* x)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XFreeModifiermap,V_XFreeModifiermap,_ANSI_ARGS_((XModifierKeymap* x)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XFreeModifiermap */
-
-#ifndef XGContextFromGC
-#ifdef MAC_OSX_TK
-VFUNC(GContext,XGContextFromGC,V_XGContextFromGC,_ANSI_ARGS_((GC g)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(GContext,XGContextFromGC,V_XGContextFromGC,_ANSI_ARGS_((GC g)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(GContext,XGContextFromGC,V_XGContextFromGC,_ANSI_ARGS_((GC g)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XGContextFromGC */
-
-#ifndef XGetAtomName
-#ifdef MAC_OSX_TK
-VFUNC(char *,XGetAtomName,V_XGetAtomName,_ANSI_ARGS_((Display* d, Atom a)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(char *,XGetAtomName,V_XGetAtomName,_ANSI_ARGS_((Display* d, Atom a)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(char *,XGetAtomName,V_XGetAtomName,_ANSI_ARGS_((Display* d, Atom a)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XGetAtomName */
-
-#ifndef XGetGeometry
-#ifdef MAC_OSX_TK
-VFUNC(Status,XGetGeometry,V_XGetGeometry,_ANSI_ARGS_((Display* d, Drawable dr,
- Window* w, int* i1, int* i2,
- unsigned int* ui1, unsigned int* ui2,
- unsigned int* ui3, unsigned int* ui4)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(Status,XGetGeometry,V_XGetGeometry,_ANSI_ARGS_((Display* d, Drawable dr,
- Window* w, int* i1, int* i2,
- unsigned int* ui1, unsigned int* ui2,
- unsigned int* ui3, unsigned int* ui4)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(Status,XGetGeometry,V_XGetGeometry,_ANSI_ARGS_((Display* d, Drawable dr,
- Window* w, int* i1, int* i2,
- unsigned int* ui1, unsigned int* ui2,
- unsigned int* ui3, unsigned int* ui4)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XGetGeometry */
-
-#ifndef XGetImage
-#ifdef MAC_OSX_TK
-VFUNC(XImage *,XGetImage,V_XGetImage,_ANSI_ARGS_((Display* d, Drawable dr,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, unsigned long ul, int i3)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(XImage *,XGetImage,V_XGetImage,_ANSI_ARGS_((Display* d, Drawable dr,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, unsigned long ul, int i3)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(XImage *,XGetImage,V_XGetImage,_ANSI_ARGS_((Display* d, Drawable dr,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2, unsigned long ul, int i3)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XGetImage */
-
-#ifndef XGetInputFocus
-#ifdef __WIN32__
-VFUNC(void,XGetInputFocus,V_XGetInputFocus,_ANSI_ARGS_((Display* d, Window* w,
- int* i)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XGetInputFocus */
-
-#ifndef XGetModifierMapping
-#ifdef MAC_OSX_TK
-VFUNC(XModifierKeymap*,XGetModifierMapping,V_XGetModifierMapping,_ANSI_ARGS_((Display* d)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(XModifierKeymap*,XGetModifierMapping,V_XGetModifierMapping,_ANSI_ARGS_((Display* d)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(XModifierKeymap*,XGetModifierMapping,V_XGetModifierMapping,_ANSI_ARGS_((Display* d)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XGetModifierMapping */
-
-#ifndef XGetVisualInfo
-#ifdef MAC_OSX_TK
-VFUNC(XVisualInfo *,XGetVisualInfo,V_XGetVisualInfo,_ANSI_ARGS_((Display* display,
- long vinfo_mask, XVisualInfo* vinfo_template,
- int* nitems_return)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(XVisualInfo *,XGetVisualInfo,V_XGetVisualInfo,_ANSI_ARGS_((Display* display,
- long vinfo_mask, XVisualInfo* vinfo_template,
- int* nitems_return)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(XVisualInfo *,XGetVisualInfo,V_XGetVisualInfo,_ANSI_ARGS_((Display* display,
- long vinfo_mask, XVisualInfo* vinfo_template,
- int* nitems_return)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XGetVisualInfo */
-
-#ifndef XGetWMColormapWindows
-#ifdef __WIN32__
-VFUNC(Status,XGetWMColormapWindows,V_XGetWMColormapWindows,_ANSI_ARGS_((Display* d,
- Window w, Window** wpp, int* ip)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XGetWMColormapWindows */
-
-#ifndef XGetWindowAttributes
-#ifdef __WIN32__
-VFUNC(Status,XGetWindowAttributes,V_XGetWindowAttributes,_ANSI_ARGS_((Display* d,
- Window w, XWindowAttributes* x)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XGetWindowAttributes */
-
-#ifndef XGetWindowProperty
-#ifdef MAC_OSX_TK
-VFUNC(int,XGetWindowProperty,V_XGetWindowProperty,_ANSI_ARGS_((Display* d, Window w,
- Atom a1, long l1, long l2, Bool b, Atom a2,
- Atom* ap, int* ip, unsigned long* ulp1,
- unsigned long* ulp2, unsigned char** cpp)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(int,XGetWindowProperty,V_XGetWindowProperty,_ANSI_ARGS_((Display* d, Window w,
- Atom a1, long l1, long l2, Bool b, Atom a2,
- Atom* ap, int* ip, unsigned long* ulp1,
- unsigned long* ulp2, unsigned char** cpp)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(int,XGetWindowProperty,V_XGetWindowProperty,_ANSI_ARGS_((Display* d, Window w,
- Atom a1, long l1, long l2, Bool b, Atom a2,
- Atom* ap, int* ip, unsigned long* ulp1,
- unsigned long* ulp2, unsigned char** cpp)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XGetWindowProperty */
-
-#ifndef XGrabKeyboard
-#ifdef MAC_OSX_TK
-VFUNC(int,XGrabKeyboard,V_XGrabKeyboard,_ANSI_ARGS_((Display* d, Window w,
- Bool b, int i1, int i2, Time t)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(int,XGrabKeyboard,V_XGrabKeyboard,_ANSI_ARGS_((Display* d, Window w,
- Bool b, int i1, int i2, Time t)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(int,XGrabKeyboard,V_XGrabKeyboard,_ANSI_ARGS_((Display* d, Window w,
- Bool b, int i1, int i2, Time t)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XGrabKeyboard */
-
-#ifndef XGrabPointer
-#ifdef MAC_OSX_TK
-VFUNC(int,XGrabPointer,V_XGrabPointer,_ANSI_ARGS_((Display* d, Window w1,
- Bool b, unsigned int ui, int i1, int i2,
- Window w2, Cursor c, Time t)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(int,XGrabPointer,V_XGrabPointer,_ANSI_ARGS_((Display* d, Window w1,
- Bool b, unsigned int ui, int i1, int i2,
- Window w2, Cursor c, Time t)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(int,XGrabPointer,V_XGrabPointer,_ANSI_ARGS_((Display* d, Window w1,
- Bool b, unsigned int ui, int i1, int i2,
- Window w2, Cursor c, Time t)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XGrabPointer */
-
-#ifndef XIconifyWindow
-#ifdef __WIN32__
-VFUNC(Status,XIconifyWindow,V_XIconifyWindow,_ANSI_ARGS_((Display* d, Window w,
- int i)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XIconifyWindow */
-
-#ifndef XInternAtom
-#ifdef MAC_OSX_TK
-VFUNC(Atom,XInternAtom,V_XInternAtom,_ANSI_ARGS_((Display* display,
- _Xconst char* atom_name, Bool only_if_exists)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(Atom,XInternAtom,V_XInternAtom,_ANSI_ARGS_((Display* display,
- _Xconst char* atom_name, Bool only_if_exists)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(Atom,XInternAtom,V_XInternAtom,_ANSI_ARGS_((Display* display,
- _Xconst char* atom_name, Bool only_if_exists)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XInternAtom */
-
-#ifndef XKeycodeToKeysym
-#ifdef MAC_OSX_TK
-VFUNC(KeySym,XKeycodeToKeysym,V_XKeycodeToKeysym,_ANSI_ARGS_((Display* d, KeyCode k,
- int i)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(KeySym,XKeycodeToKeysym,V_XKeycodeToKeysym,_ANSI_ARGS_((Display* d, KeyCode k,
- int i)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(KeySym,XKeycodeToKeysym,V_XKeycodeToKeysym,_ANSI_ARGS_((Display* d,
- unsigned int k, int i)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XKeycodeToKeysym */
-
-#ifndef XKeysymToKeycode
-#ifdef MAC_OSX_TK
-VFUNC(KeyCode,XKeysymToKeycode,V_XKeysymToKeycode,_ANSI_ARGS_((Display* d, KeySym k)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(KeyCode,XKeysymToKeycode,V_XKeysymToKeycode,_ANSI_ARGS_((Display* d, KeySym k)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(KeyCode,XKeysymToKeycode,V_XKeysymToKeycode,_ANSI_ARGS_((Display* d, KeySym k)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XKeysymToKeycode */
-
-#ifndef XKeysymToString
-#ifdef MAC_OSX_TK
-VFUNC(char *,XKeysymToString,V_XKeysymToString,_ANSI_ARGS_((KeySym k)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(char *,XKeysymToString,V_XKeysymToString,_ANSI_ARGS_((KeySym k)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(char *,XKeysymToString,V_XKeysymToString,_ANSI_ARGS_((KeySym k)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XKeysymToString */
-
-#ifndef XListHosts
-#ifdef __WIN32__
-VFUNC(XHostAddress *,XListHosts,V_XListHosts,_ANSI_ARGS_((Display* d, int* i, Bool* b)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XListHosts */
-
-#ifndef XLookupColor
-#ifdef __WIN32__
-VFUNC(Status,XLookupColor,V_XLookupColor,_ANSI_ARGS_((Display* d, Colormap c1,
- _Xconst char* c2, XColor* x1, XColor* x2)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XLookupColor */
-
-#ifndef XMapWindow
-#ifdef MAC_OSX_TK
-VFUNC(void,XMapWindow,V_XMapWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XMapWindow,V_XMapWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XMapWindow,V_XMapWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XMapWindow */
-
-#ifndef XMoveResizeWindow
-#ifdef MAC_OSX_TK
-VFUNC(void,XMoveResizeWindow,V_XMoveResizeWindow,_ANSI_ARGS_((Display* d, Window w,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XMoveResizeWindow,V_XMoveResizeWindow,_ANSI_ARGS_((Display* d, Window w,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XMoveResizeWindow,V_XMoveResizeWindow,_ANSI_ARGS_((Display* d, Window w,
- int i1, int i2, unsigned int ui1,
- unsigned int ui2)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XMoveResizeWindow */
-
-#ifndef XMoveWindow
-#ifdef MAC_OSX_TK
-VFUNC(void,XMoveWindow,V_XMoveWindow,_ANSI_ARGS_((Display* d, Window w,
- int i1, int i2)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XMoveWindow,V_XMoveWindow,_ANSI_ARGS_((Display* d, Window w,
- int i1, int i2)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XMoveWindow,V_XMoveWindow,_ANSI_ARGS_((Display* d, Window w,
- int i1, int i2)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XMoveWindow */
-
-#ifndef XNextEvent
-#ifdef __WIN32__
-VFUNC(void,XNextEvent,V_XNextEvent,_ANSI_ARGS_((Display* d, XEvent* x)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XNextEvent */
-
-#ifndef XParseColor
-#ifdef MAC_OSX_TK
-VFUNC(Status,XParseColor,V_XParseColor,_ANSI_ARGS_((Display * display,
- Colormap map, _Xconst char* spec,
- XColor * colorPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(Status,XParseColor,V_XParseColor,_ANSI_ARGS_((Display * display,
- Colormap map, _Xconst char* spec,
- XColor * colorPtr)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(Status,XParseColor,V_XParseColor,_ANSI_ARGS_((Display * display,
- Colormap map, _Xconst char* spec,
- XColor * colorPtr)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XParseColor */
-
-#ifndef XPutBackEvent
-#ifdef __WIN32__
-VFUNC(void,XPutBackEvent,V_XPutBackEvent,_ANSI_ARGS_((Display* d, XEvent* x)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XPutBackEvent */
-
-#ifndef XQueryColor
-#ifdef MAC_OSX_TK
-VFUNC(void,XQueryColor,V_XQueryColor,_ANSI_ARGS_((Display * display,
- Colormap colormap, XColor * def_in_out)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XQueryColor,V_XQueryColor,_ANSI_ARGS_((Display * display,
- Colormap colormap, XColor * def_in_out)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef XQueryColor */
-
-#ifndef XQueryColors
-#ifdef MAC_OSX_TK
-VFUNC(void,XQueryColors,V_XQueryColors,_ANSI_ARGS_((Display * display,
- Colormap colormap, XColor * defs_in_out,
- int ncolors)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XQueryColors,V_XQueryColors,_ANSI_ARGS_((Display * display,
- Colormap colormap, XColor * defs_in_out,
- int ncolors)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XQueryColors,V_XQueryColors,_ANSI_ARGS_((Display* d, Colormap c,
- XColor* x, int i)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XQueryColors */
-
-#ifndef XQueryPointer
-#ifdef MAC_OSX_TK
-VFUNC(Bool,XQueryPointer,V_XQueryPointer,_ANSI_ARGS_((Display* d, Window w1,
- Window* w2, Window* w3, int* i1, int* i2,
- int* i3, int* i4, unsigned int* ui)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(Bool,XQueryPointer,V_XQueryPointer,_ANSI_ARGS_((Display* d, Window w1,
- Window* w2, Window* w3, int* i1, int* i2,
- int* i3, int* i4, unsigned int* ui)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(Bool,XQueryPointer,V_XQueryPointer,_ANSI_ARGS_((Display* d, Window w1,
- Window* w2, Window* w3, int* i1, int* i2,
- int* i3, int* i4, unsigned int* ui)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XQueryPointer */
-
-#ifndef XQueryTree
-#ifdef MAC_OSX_TK
-VFUNC(Status,XQueryTree,V_XQueryTree,_ANSI_ARGS_((Display* d, Window w1,
- Window* w2, Window* w3, Window** w4,
- unsigned int* ui)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(Status,XQueryTree,V_XQueryTree,_ANSI_ARGS_((Display* d, Window w1,
- Window* w2, Window* w3, Window** w4,
- unsigned int* ui)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(Status,XQueryTree,V_XQueryTree,_ANSI_ARGS_((Display* d, Window w1,
- Window* w2, Window* w3, Window** w4,
- unsigned int* ui)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XQueryTree */
-
-#ifndef XRaiseWindow
-#ifdef MAC_OSX_TK
-VFUNC(void,XRaiseWindow,V_XRaiseWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XRaiseWindow,V_XRaiseWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XRaiseWindow,V_XRaiseWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XRaiseWindow */
-
-#ifndef XRefreshKeyboardMapping
-#ifdef MAC_OSX_TK
-VFUNC(void,XRefreshKeyboardMapping,V_XRefreshKeyboardMapping,_ANSI_ARGS_((
- XMappingEvent* x)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XRefreshKeyboardMapping,V_XRefreshKeyboardMapping,_ANSI_ARGS_((
- XMappingEvent* x)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XRefreshKeyboardMapping,V_XRefreshKeyboardMapping,_ANSI_ARGS_((
- XMappingEvent* x)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XRefreshKeyboardMapping */
-
-#ifndef XResizeWindow
-#ifdef MAC_OSX_TK
-VFUNC(void,XResizeWindow,V_XResizeWindow,_ANSI_ARGS_((Display* d, Window w,
- unsigned int ui1, unsigned int ui2)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XResizeWindow,V_XResizeWindow,_ANSI_ARGS_((Display* d, Window w,
- unsigned int ui1, unsigned int ui2)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XResizeWindow,V_XResizeWindow,_ANSI_ARGS_((Display* d, Window w,
- unsigned int ui1, unsigned int ui2)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XResizeWindow */
-
-#ifndef XRootWindow
-#ifdef MAC_OSX_TK
-VFUNC(Window,XRootWindow,V_XRootWindow,_ANSI_ARGS_((Display* d, int i)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(Window,XRootWindow,V_XRootWindow,_ANSI_ARGS_((Display* d, int i)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(Window,XRootWindow,V_XRootWindow,_ANSI_ARGS_((Display* d, int i)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XRootWindow */
-
-#ifndef XSelectInput
-#ifdef MAC_OSX_TK
-VFUNC(void,XSelectInput,V_XSelectInput,_ANSI_ARGS_((Display* d, Window w,
- long l)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSelectInput,V_XSelectInput,_ANSI_ARGS_((Display* d, Window w,
- long l)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSelectInput,V_XSelectInput,_ANSI_ARGS_((Display* d, Window w,
- long l)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSelectInput */
-
-#ifndef XSendEvent
-#ifdef MAC_OSX_TK
-VFUNC(Status,XSendEvent,V_XSendEvent,_ANSI_ARGS_((Display* d, Window w, Bool b,
- long l, XEvent* x)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(Status,XSendEvent,V_XSendEvent,_ANSI_ARGS_((Display* d, Window w, Bool b,
- long l, XEvent* x)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(Status,XSendEvent,V_XSendEvent,_ANSI_ARGS_((Display* d, Window w, Bool b,
- long l, XEvent* x)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSendEvent */
-
-#ifndef XSetArcMode
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetArcMode,V_XSetArcMode,_ANSI_ARGS_((Display * display, GC gc,
- int arc_mode)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetArcMode,V_XSetArcMode,_ANSI_ARGS_((Display * display, GC gc,
- int arc_mode)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetArcMode,V_XSetArcMode,_ANSI_ARGS_((Display * display, GC gc,
- int arc_mode)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetArcMode */
-
-#ifndef XSetBackground
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetBackground,V_XSetBackground,_ANSI_ARGS_((Display* display, GC gc,
- unsigned long foreground)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetBackground,V_XSetBackground,_ANSI_ARGS_((Display* display, GC gc,
- unsigned long foreground)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetBackground,V_XSetBackground,_ANSI_ARGS_((Display* display, GC gc,
- unsigned long foreground)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetBackground */
-
-#ifndef XSetClipMask
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetClipMask,V_XSetClipMask,_ANSI_ARGS_((Display* display, GC gc,
- Pixmap pixmap)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetClipMask,V_XSetClipMask,_ANSI_ARGS_((Display* display, GC gc,
- Pixmap pixmap)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetClipMask,V_XSetClipMask,_ANSI_ARGS_((Display* display, GC gc,
- Pixmap pixmap)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetClipMask */
-
-#ifndef XSetClipOrigin
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetClipOrigin,V_XSetClipOrigin,_ANSI_ARGS_((Display* display, GC gc,
- int clip_x_origin, int clip_y_origin)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetClipOrigin,V_XSetClipOrigin,_ANSI_ARGS_((Display* display, GC gc,
- int clip_x_origin, int clip_y_origin)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetClipOrigin,V_XSetClipOrigin,_ANSI_ARGS_((Display* display, GC gc,
- int clip_x_origin, int clip_y_origin)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetClipOrigin */
-
-#ifndef XSetCommand
-#ifdef __WIN32__
-VFUNC(void,XSetCommand,V_XSetCommand,_ANSI_ARGS_((Display* d, Window w,
- CONST char** c, int i)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetCommand */
-
-#ifndef XSetDashes
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetDashes,V_XSetDashes,_ANSI_ARGS_((Display* display, GC gc,
- int dash_offset, _Xconst char* dash_list,
- int n)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetDashes,V_XSetDashes,_ANSI_ARGS_((Display* display, GC gc,
- int dash_offset, _Xconst char* dash_list,
- int n)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetDashes,V_XSetDashes,_ANSI_ARGS_((Display* display, GC gc,
- int dash_offset, _Xconst char* dash_list,
- int n)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetDashes */
-
-#ifndef XSetErrorHandler
-#ifdef MAC_OSX_TK
-VFUNC(XErrorHandler,XSetErrorHandler,V_XSetErrorHandler,_ANSI_ARGS_((XErrorHandler x)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(XErrorHandler,XSetErrorHandler,V_XSetErrorHandler,_ANSI_ARGS_((XErrorHandler x)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(XErrorHandler,XSetErrorHandler,V_XSetErrorHandler,_ANSI_ARGS_((XErrorHandler x)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetErrorHandler */
-
-#ifndef XSetFillRule
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetFillRule,V_XSetFillRule,_ANSI_ARGS_((Display * display, GC gc,
- int fill_rule)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetFillRule,V_XSetFillRule,_ANSI_ARGS_((Display * display, GC gc,
- int fill_rule)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetFillRule,V_XSetFillRule,_ANSI_ARGS_((Display * display, GC gc,
- int fill_rule)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetFillRule */
-
-#ifndef XSetFillStyle
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetFillStyle,V_XSetFillStyle,_ANSI_ARGS_((Display * display, GC gc,
- int fill_style)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetFillStyle,V_XSetFillStyle,_ANSI_ARGS_((Display * display, GC gc,
- int fill_style)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetFillStyle,V_XSetFillStyle,_ANSI_ARGS_((Display * display, GC gc,
- int fill_style)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetFillStyle */
-
-#ifndef XSetFont
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetFont,V_XSetFont,_ANSI_ARGS_((Display * display, GC gc,
- Font font)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetFont,V_XSetFont,_ANSI_ARGS_((Display * display, GC gc,
- Font font)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetFont,V_XSetFont,_ANSI_ARGS_((Display * display, GC gc,
- Font font)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetFont */
-
-#ifndef XSetForeground
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetForeground,V_XSetForeground,_ANSI_ARGS_((Display* display, GC gc,
- unsigned long foreground)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetForeground,V_XSetForeground,_ANSI_ARGS_((Display* display, GC gc,
- unsigned long foreground)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetForeground,V_XSetForeground,_ANSI_ARGS_((Display* display, GC gc,
- unsigned long foreground)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetForeground */
-
-#ifndef XSetFunction
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetFunction,V_XSetFunction,_ANSI_ARGS_((Display * display, GC gc,
- int function)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetFunction,V_XSetFunction,_ANSI_ARGS_((Display * display, GC gc,
- int function)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetFunction,V_XSetFunction,_ANSI_ARGS_((Display * display, GC gc,
- int function)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetFunction */
-
-#ifndef XSetIconName
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetIconName,V_XSetIconName,_ANSI_ARGS_((Display* d, Window w,
- _Xconst char* c)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetIconName,V_XSetIconName,_ANSI_ARGS_((Display* d, Window w,
- _Xconst char* c)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetIconName,V_XSetIconName,_ANSI_ARGS_((Display* d, Window w,
- _Xconst char* c)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetIconName */
-
-#ifndef XSetInputFocus
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetInputFocus,V_XSetInputFocus,_ANSI_ARGS_((Display* d, Window w,
- int i, Time t)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetInputFocus,V_XSetInputFocus,_ANSI_ARGS_((Display* d, Window w,
- int i, Time t)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetInputFocus,V_XSetInputFocus,_ANSI_ARGS_((Display* d, Window w,
- int i, Time t)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetInputFocus */
-
-#ifndef XSetLineAttributes
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetLineAttributes,V_XSetLineAttributes,_ANSI_ARGS_((Display * display,
- GC gc, unsigned int line_width,
- int line_style, int cap_style,
- int join_style)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetLineAttributes,V_XSetLineAttributes,_ANSI_ARGS_((Display * display,
- GC gc, unsigned int line_width,
- int line_style, int cap_style,
- int join_style)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetLineAttributes,V_XSetLineAttributes,_ANSI_ARGS_((Display * display,
- GC gc, unsigned int line_width,
- int line_style, int cap_style,
- int join_style)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetLineAttributes */
-
-#ifndef XSetSelectionOwner
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetSelectionOwner,V_XSetSelectionOwner,_ANSI_ARGS_((Display* d, Atom a,
- Window w, Time t)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetSelectionOwner,V_XSetSelectionOwner,_ANSI_ARGS_((Display* d, Atom a,
- Window w, Time t)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetSelectionOwner,V_XSetSelectionOwner,_ANSI_ARGS_((Display* d, Atom a,
- Window w, Time t)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetSelectionOwner */
-
-#ifndef XSetStipple
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetStipple,V_XSetStipple,_ANSI_ARGS_((Display * display, GC gc,
- Pixmap stipple)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetStipple,V_XSetStipple,_ANSI_ARGS_((Display * display, GC gc,
- Pixmap stipple)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetStipple,V_XSetStipple,_ANSI_ARGS_((Display * display, GC gc,
- Pixmap stipple)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetStipple */
-
-#ifndef XSetTSOrigin
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetTSOrigin,V_XSetTSOrigin,_ANSI_ARGS_((Display* display, GC gc,
- int ts_x_origin, int ts_y_origin)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetTSOrigin,V_XSetTSOrigin,_ANSI_ARGS_((Display* display, GC gc,
- int ts_x_origin, int ts_y_origin)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetTSOrigin,V_XSetTSOrigin,_ANSI_ARGS_((Display* display, GC gc,
- int ts_x_origin, int ts_y_origin)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetTSOrigin */
-
-#ifndef XSetWMClientMachine
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetWMClientMachine,V_XSetWMClientMachine,_ANSI_ARGS_((Display* display,
- Window w, XTextProperty* text_prop)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetWMClientMachine,V_XSetWMClientMachine,_ANSI_ARGS_((Display* display,
- Window w, XTextProperty* text_prop)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetWMClientMachine,V_XSetWMClientMachine,_ANSI_ARGS_((Display* display,
- Window w, XTextProperty* text_prop)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetWMClientMachine */
-
-#ifndef XSetWindowBackground
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetWindowBackground,V_XSetWindowBackground,_ANSI_ARGS_((Display* d,
- Window w, unsigned long ul)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetWindowBackground,V_XSetWindowBackground,_ANSI_ARGS_((Display* d,
- Window w, unsigned long ul)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetWindowBackground,V_XSetWindowBackground,_ANSI_ARGS_((Display* d,
- Window w, unsigned long ul)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetWindowBackground */
-
-#ifndef XSetWindowBackgroundPixmap
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetWindowBackgroundPixmap,V_XSetWindowBackgroundPixmap,_ANSI_ARGS_((Display* d,
- Window w, Pixmap p)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetWindowBackgroundPixmap,V_XSetWindowBackgroundPixmap,_ANSI_ARGS_((Display* d,
- Window w, Pixmap p)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetWindowBackgroundPixmap,V_XSetWindowBackgroundPixmap,_ANSI_ARGS_((Display* d,
- Window w, Pixmap p)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetWindowBackgroundPixmap */
-
-#ifndef XSetWindowBorder
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetWindowBorder,V_XSetWindowBorder,_ANSI_ARGS_((Display* d, Window w,
- unsigned long ul)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetWindowBorder,V_XSetWindowBorder,_ANSI_ARGS_((Display* d, Window w,
- unsigned long ul)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetWindowBorder,V_XSetWindowBorder,_ANSI_ARGS_((Display* d, Window w,
- unsigned long ul)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetWindowBorder */
-
-#ifndef XSetWindowBorderPixmap
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetWindowBorderPixmap,V_XSetWindowBorderPixmap,_ANSI_ARGS_((Display* d,
- Window w, Pixmap p)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetWindowBorderPixmap,V_XSetWindowBorderPixmap,_ANSI_ARGS_((Display* d,
- Window w, Pixmap p)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetWindowBorderPixmap,V_XSetWindowBorderPixmap,_ANSI_ARGS_((Display* d,
- Window w, Pixmap p)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetWindowBorderPixmap */
-
-#ifndef XSetWindowBorderWidth
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetWindowBorderWidth,V_XSetWindowBorderWidth,_ANSI_ARGS_((Display* d,
- Window w, unsigned int ui)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetWindowBorderWidth,V_XSetWindowBorderWidth,_ANSI_ARGS_((Display* d,
- Window w, unsigned int ui)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetWindowBorderWidth,V_XSetWindowBorderWidth,_ANSI_ARGS_((Display* d,
- Window w, unsigned int ui)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetWindowBorderWidth */
-
-#ifndef XSetWindowColormap
-#ifdef MAC_OSX_TK
-VFUNC(void,XSetWindowColormap,V_XSetWindowColormap,_ANSI_ARGS_((Display* d, Window w,
- Colormap c)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XSetWindowColormap,V_XSetWindowColormap,_ANSI_ARGS_((Display* d, Window w,
- Colormap c)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XSetWindowColormap,V_XSetWindowColormap,_ANSI_ARGS_((Display* d, Window w,
- Colormap c)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XSetWindowColormap */
-
-#ifndef XStringListToTextProperty
-#ifdef MAC_OSX_TK
-VFUNC(Status,XStringListToTextProperty,V_XStringListToTextProperty,_ANSI_ARGS_((char** list,
- int count, XTextProperty* text_prop_return)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(Status,XStringListToTextProperty,V_XStringListToTextProperty,_ANSI_ARGS_((char** list,
- int count, XTextProperty* text_prop_return)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(Status,XStringListToTextProperty,V_XStringListToTextProperty,_ANSI_ARGS_((char** list,
- int count, XTextProperty* text_prop_return)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XStringListToTextProperty */
-
-#ifndef XStringToKeysym
-#ifdef MAC_OSX_TK
-VFUNC(KeySym,XStringToKeysym,V_XStringToKeysym,_ANSI_ARGS_((_Xconst char* c)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(KeySym,XStringToKeysym,V_XStringToKeysym,_ANSI_ARGS_((_Xconst char* c)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(KeySym,XStringToKeysym,V_XStringToKeysym,_ANSI_ARGS_((_Xconst char* c)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XStringToKeysym */
-
-#ifndef XTranslateCoordinates
-#ifdef __WIN32__
-VFUNC(Bool,XTranslateCoordinates,V_XTranslateCoordinates,_ANSI_ARGS_((Display* d,
- Window w1, Window w2, int i1, int i2,
- int* i3, int* i4, Window* w3)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XTranslateCoordinates */
-
-#ifndef XUngrabKeyboard
-#ifdef MAC_OSX_TK
-VFUNC(void,XUngrabKeyboard,V_XUngrabKeyboard,_ANSI_ARGS_((Display* d, Time t)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XUngrabKeyboard,V_XUngrabKeyboard,_ANSI_ARGS_((Display* d, Time t)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XUngrabKeyboard,V_XUngrabKeyboard,_ANSI_ARGS_((Display* d, Time t)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XUngrabKeyboard */
-
-#ifndef XUngrabPointer
-#ifdef MAC_OSX_TK
-VFUNC(void,XUngrabPointer,V_XUngrabPointer,_ANSI_ARGS_((Display* d, Time t)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XUngrabPointer,V_XUngrabPointer,_ANSI_ARGS_((Display* d, Time t)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XUngrabPointer,V_XUngrabPointer,_ANSI_ARGS_((Display* d, Time t)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XUngrabPointer */
-
-#ifndef XUnmapWindow
-#ifdef MAC_OSX_TK
-VFUNC(void,XUnmapWindow,V_XUnmapWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XUnmapWindow,V_XUnmapWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XUnmapWindow,V_XUnmapWindow,_ANSI_ARGS_((Display* d, Window w)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XUnmapWindow */
-
-#ifndef XWarpPointer
-#ifdef MAC_OSX_TK
-VFUNC(void,XWarpPointer,V_XWarpPointer,_ANSI_ARGS_((Display* display,
- Window src_w, Window dest_w, int src_x,
- int src_y, unsigned int src_width,
- unsigned int src_height, int dest_x,
- int dest_y)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,XWarpPointer,V_XWarpPointer,_ANSI_ARGS_((Display* display,
- Window src_w, Window dest_w, int src_x,
- int src_y, unsigned int src_width,
- unsigned int src_height, int dest_x,
- int dest_y)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(void,XWarpPointer,V_XWarpPointer,_ANSI_ARGS_((Display* d, Window s,
- Window dw, int sx, int sy, unsigned int sw,
- unsigned int sh, int dx, int dy)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XWarpPointer */
-
-#ifndef XWindowEvent
-#ifdef __WIN32__
-VFUNC(void,XWindowEvent,V_XWindowEvent,_ANSI_ARGS_((Display* d, Window w,
- long l, XEvent* x)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XWindowEvent */
-
-#ifndef XWithdrawWindow
-#ifdef __WIN32__
-VFUNC(Status,XWithdrawWindow,V_XWithdrawWindow,_ANSI_ARGS_((Display* d, Window w,
- int i)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XWithdrawWindow */
-
-#ifndef XmbLookupString
-#ifdef __WIN32__
-VFUNC(int,XmbLookupString,V_XmbLookupString,_ANSI_ARGS_((XIC xi,
- XKeyPressedEvent* xk, char* c, int i,
- KeySym* k, Status* s)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef XmbLookupString */
-
-#ifndef _XInitImageFuncPtrs
-#ifdef MAC_OSX_TK
-VFUNC(int,_XInitImageFuncPtrs,V__XInitImageFuncPtrs,_ANSI_ARGS_((XImage * image)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(int,_XInitImageFuncPtrs,V__XInitImageFuncPtrs,_ANSI_ARGS_((XImage * image)))
-#endif /* #ifdef MAC_TCL */
-#ifdef __WIN32__
-VFUNC(int,_XInitImageFuncPtrs,V__XInitImageFuncPtrs,_ANSI_ARGS_((XImage * image)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef _XInitImageFuncPtrs */
-
-#endif /* _TKINTXLIBDECLS */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls_f.h
deleted file mode 100644
index cf6fe23a3eb..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkIntXlibDecls_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TKINTXLIBDECLS_VT
-#define TKINTXLIBDECLS_VT
-typedef struct TkintxlibdeclsVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tkIntXlibDecls.t"
-#undef VFUNC
-#undef VVAR
-} TkintxlibdeclsVtab;
-extern TkintxlibdeclsVtab *TkintxlibdeclsVptr;
-extern TkintxlibdeclsVtab *TkintxlibdeclsVGet(void);
-#endif /* TKINTXLIBDECLS_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkInt_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkInt_f.h
deleted file mode 100644
index b8da3f6470e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkInt_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TKINT_VT
-#define TKINT_VT
-typedef struct TkintVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tkInt.t"
-#undef VFUNC
-#undef VVAR
-} TkintVtab;
-extern TkintVtab *TkintVptr;
-extern TkintVtab *TkintVGet(void);
-#endif /* TKINT_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkMenu.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkMenu.h
deleted file mode 100644
index 0b341acd87b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkMenu.h
+++ /dev/null
@@ -1,588 +0,0 @@
-/*
- * tkMenu.h --
- *
- * Declarations shared among all of the files that implement menu widgets.
- *
- * Copyright (c) 1996-1998 by Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkMenu.h,v 1.6.4.1 2003/07/15 13:59:06 vincentdarley Exp $
- */
-
-#ifndef _TKMENU
-#define _TKMENU
-
-#ifndef _TK
-#include "tk.h"
-#endif
-
-#ifndef _TKINT
-#include "tkInt.h"
-#endif
-
-#ifndef _DEFAULT
-#include "default.h"
-#endif
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * Dummy types used by the platform menu code.
- */
-
-typedef struct TkMenuPlatformData_ *TkMenuPlatformData;
-typedef struct TkMenuPlatformEntryData_ *TkMenuPlatformEntryData;
-
-/*
- * Legal values for the "compound" field of TkMenuEntry and TkMenuButton records.
- */
-
-enum compound {
- COMPOUND_BOTTOM, COMPOUND_CENTER, COMPOUND_LEFT, COMPOUND_NONE,
- COMPOUND_RIGHT, COMPOUND_TOP
-};
-
-/*
- * One of the following data structures is kept for each entry of each
- * menu managed by this file:
- */
-
-typedef struct TkMenuEntry {
- int type; /* Type of menu entry; see below for
- * valid types. */
- struct TkMenu *menuPtr; /* Menu with which this entry is associated. */
- Tk_OptionTable optionTable; /* Option table for this menu entry. */
- Tcl_Obj *labelPtr; /* Main text label displayed in entry (NULL
- * if no label). */
- int labelLength; /* Number of non-NULL characters in label. */
- int state; /* State of button for display purposes:
- * normal, active, or disabled. */
- int underline; /* Value of -underline option: specifies index
- * of character to underline (<0 means don't
- * underline anything). */
- Tcl_Obj *underlinePtr; /* Index of character to underline. */
- Tcl_Obj *bitmapPtr; /* Bitmap to display in menu entry, or None.
- * If not None then label is ignored. */
- Tcl_Obj *imagePtr; /* Name of image to display, or
- * NULL. If non-NULL, bitmap, text, and
- * textVarName are ignored. */
- Tk_Image image; /* Image to display in menu entry, or NULL if
- * none. */
- Tcl_Obj *selectImagePtr; /* Name of image to display when selected, or
- * NULL. */
- Tk_Image selectImage; /* Image to display in entry when selected,
- * or NULL if none. Ignored if image is
- * NULL. */
- Tcl_Obj *accelPtr; /* Accelerator string displayed at right
- * of menu entry. NULL means no such
- * accelerator. Malloc'ed. */
- int accelLength; /* Number of non-NULL characters in
- * accelerator. */
- int indicatorOn; /* True means draw indicator, false means
- * don't draw it. This field is ignored unless
- * the entry is a radio or check button. */
- /*
- * Display attributes
- */
-
- Tcl_Obj *borderPtr; /* Structure used to draw background for
- * entry. NULL means use overall border
- * for menu. */
- Tcl_Obj *fgPtr; /* Foreground color to use for entry. NULL
- * means use foreground color from menu. */
- Tcl_Obj *activeBorderPtr; /* Used to draw background and border when
- * element is active. NULL means use
- * activeBorder from menu. */
- Tcl_Obj *activeFgPtr; /* Foreground color to use when entry is
- * active. NULL means use active foreground
- * from menu. */
- Tcl_Obj *indicatorFgPtr; /* Color for indicators in radio and check
- * button entries. NULL means use indicatorFg
- * GC from menu. */
- Tcl_Obj *fontPtr; /* Text font for menu entries. NULL means
- * use overall font for menu. */
- int columnBreak; /* If this is 0, this item appears below
- * the item in front of it. If this is
- * 1, this item starts a new column. This
- * field is always 0 for tearoff and separator
- * entries. */
- int hideMargin; /* If this is 0, then the item has enough
- * margin to accomodate a standard check mark
- * and a default right margin. If this is 1,
- * then the item has no such margins. and
- * checkbuttons and radiobuttons with this set
- * will have a rectangle drawn in the indicator
- * around the item if the item is checked. This
- * is useful for palette menus. This field is
- * ignored for separators and tearoffs. */
- int indicatorSpace; /* The width of the indicator space for this
- * entry. */
- int labelWidth; /* Number of pixels to allow for displaying
- * labels in menu entries. */
- int compound; /* Value of -compound option; specifies whether
- * the entry should show both an image and
- * text, and, if so, how. */
-
- /*
- * Information used to implement this entry's action:
- */
-
- Tcl_Obj *commandPtr; /* Command to invoke when entry is invoked.
- * Malloc'ed. */
- Tcl_Obj *namePtr; /* Name of variable (for check buttons and
- * radio buttons) or menu (for cascade
- * entries). Malloc'ed.*/
- Tcl_Obj *onValuePtr; /* Value to store in variable when selected
- * (only for radio and check buttons).
- * Malloc'ed. */
- Tcl_Obj *offValuePtr; /* Value to store in variable when not
- * selected (only for check buttons).
- * Malloc'ed. */
-
- /*
- * Information used for drawing this menu entry.
- */
-
- int width; /* Number of pixels occupied by entry in
- * horizontal dimension. Not used except
- * in menubars. The width of norma menus
- * is dependent on the rest of the menu. */
- int x; /* X-coordinate of leftmost pixel in entry */
- int height; /* Number of pixels occupied by entry in
- * vertical dimension, including raised
- * border drawn around entry when active. */
- int y; /* Y-coordinate of topmost pixel in entry. */
- GC textGC; /* GC for drawing text in entry. NULL means
- * use overall textGC for menu. */
- GC activeGC; /* GC for drawing text in entry when active.
- * NULL means use overall activeGC for
- * menu. */
- GC disabledGC; /* Used to produce disabled effect for entry.
- * NULL means use overall disabledGC from
- * menu structure. See comments for
- * disabledFg in menu structure for more
- * information. */
- GC indicatorGC; /* For drawing indicators. None means use
- * GC from menu. */
-
- /*
- * Miscellaneous fields.
- */
-
- int entryFlags; /* Various flags. See below for
- definitions. */
- int index; /* Need to know which index we are. This
- * is zero-based. This is the top-left entry
- * of the menu. */
-
- /*
- * Bookeeping for master menus and cascade menus.
- */
-
- struct TkMenuReferences *childMenuRefPtr;
- /* A pointer to the hash table entry for
- * the child menu. Stored here when the menu
- * entry is configured so that a hash lookup
- * is not necessary later.*/
- struct TkMenuEntry *nextCascadePtr;
- /* The next cascade entry that is a parent of
- * this entry's child cascade menu. NULL
- * end of list, this is not a cascade entry,
- * or the menu that this entry point to
- * does not yet exist. */
- TkMenuPlatformEntryData platformEntryData;
- /* The data for the specific type of menu.
- * Depends on platform and menu type what
- * kind of options are in this structure.
- */
-} TkMenuEntry;
-
-/*
- * Flag values defined for menu entries:
- *
- * ENTRY_SELECTED: Non-zero means this is a radio or check
- * button and that it should be drawn in
- * the "selected" state.
- * ENTRY_NEEDS_REDISPLAY: Non-zero means the entry should be redisplayed.
- * ENTRY_LAST_COLUMN: Used by the drawing code. If the entry is in
- * the last column, the space to its right needs
- * to be filled.
- * ENTRY_PLATFORM_FLAG1 - 4 These flags are reserved for use by the
- * platform-dependent implementation of menus
- * and should not be used by anything else.
- */
-
-#define ENTRY_SELECTED 1
-#define ENTRY_NEEDS_REDISPLAY 2
-#define ENTRY_LAST_COLUMN 4
-#define ENTRY_PLATFORM_FLAG1 (1 << 30)
-#define ENTRY_PLATFORM_FLAG2 (1 << 29)
-#define ENTRY_PLATFORM_FLAG3 (1 << 28)
-#define ENTRY_PLATFORM_FLAG4 (1 << 27)
-
-/*
- * Types defined for MenuEntries:
- */
-
-#define CASCADE_ENTRY 0
-#define CHECK_BUTTON_ENTRY 1
-#define COMMAND_ENTRY 2
-#define RADIO_BUTTON_ENTRY 3
-#define SEPARATOR_ENTRY 4
-#define TEAROFF_ENTRY 5
-
-/*
- * Menu states
- */
-
-EXTERN char *tkMenuStateStrings[];
-
-#define ENTRY_ACTIVE 0
-#define ENTRY_NORMAL 1
-#define ENTRY_DISABLED 2
-
-/*
- * A data structure of the following type is kept for each
- * menu widget:
- */
-
-typedef struct TkMenu {
- Tk_Window tkwin; /* Window that embodies the pane. NULL
- * means that the window has been destroyed
- * but the data structures haven't yet been
- * cleaned up.*/
- Display *display; /* Display containing widget. Needed, among
- * other things, so that resources can be
- * freed up even after tkwin has gone away. */
- Tcl_Interp *interp; /* Interpreter associated with menu. */
- Tcl_Command widgetCmd; /* Token for menu's widget command. */
- TkMenuEntry **entries; /* Array of pointers to all the entries
- * in the menu. NULL means no entries. */
- int numEntries; /* Number of elements in entries. */
- int active; /* Index of active entry. -1 means
- * nothing active. */
- int menuType; /* MASTER_MENU, TEAROFF_MENU, or MENUBAR.
- * See below for definitions. */
- Tcl_Obj *menuTypePtr; /* Used to control whether created tkwin
- * is a toplevel or not. "normal", "menubar",
- * or "toplevel" */
-
- /*
- * Information used when displaying widget:
- */
-
- Tcl_Obj *borderPtr; /* Structure used to draw 3-D
- * border and background for menu. */
- Tcl_Obj *borderWidthPtr; /* Width of border around whole menu. */
- Tcl_Obj *activeBorderPtr; /* Used to draw background and border for
- * active element (if any). */
- Tcl_Obj *activeBorderWidthPtr;
- /* Width of border around active element. */
- Tcl_Obj *reliefPtr; /* 3-d effect: TK_RELIEF_RAISED, etc. */
- Tcl_Obj *fontPtr; /* Text font for menu entries. */
- Tcl_Obj *fgPtr; /* Foreground color for entries. */
- Tcl_Obj *disabledFgPtr; /* Foreground color when disabled. NULL
- * means use normalFg with a 50% stipple
- * instead. */
- Tcl_Obj *activeFgPtr; /* Foreground color for active entry. */
- Tcl_Obj *indicatorFgPtr; /* Color for indicators in radio and check
- * button entries. */
- Pixmap gray; /* Bitmap for drawing disabled entries in
- * a stippled fashion. None means not
- * allocated yet. */
- GC textGC; /* GC for drawing text and other features
- * of menu entries. */
- GC disabledGC; /* Used to produce disabled effect. If
- * disabledFg isn't NULL, this GC is used to
- * draw text and icons for disabled entries.
- * Otherwise text and icons are drawn with
- * normalGC and this GC is used to stipple
- * background across them. */
- GC activeGC; /* GC for drawing active entry. */
- GC indicatorGC; /* For drawing indicators. */
- GC disabledImageGC; /* Used for drawing disabled images. They
- * have to be stippled. This is created
- * when the image is about to be drawn the
- * first time. */
-
- /*
- * Information about geometry of menu.
- */
-
- int totalWidth; /* Width of entire menu */
- int totalHeight; /* Height of entire menu */
-
- /*
- * Miscellaneous information:
- */
-
- int tearoff; /* 1 means this menu can be torn off. On some
- * platforms, the user can drag an outline
- * of the menu by just dragging outside of
- * the menu, and the tearoff is created where
- * the mouse is released. On others, an
- * indicator (such as a dashed stripe) is
- * drawn, and when the menu is selected, the
- * tearoff is created. */
- Tcl_Obj *titlePtr; /* The title to use when this menu is torn
- * off. If this is NULL, a default scheme
- * will be used to generate a title for
- * tearoff. */
- Tcl_Obj *tearoffCommandPtr; /* If non-NULL, points to a command to
- * run whenever the menu is torn-off. */
- Tcl_Obj *takeFocusPtr; /* Value of -takefocus option; not used in
- * the C code, but used by keyboard traversal
- * scripts. Malloc'ed, but may be NULL. */
- Tcl_Obj *cursorPtr; /* Current cursor for window, or None. */
- Tcl_Obj *postCommandPtr; /* Used to detect cycles in cascade hierarchy
- * trees when preprocessing postcommands
- * on some platforms. See PostMenu for
- * more details. */
- int postCommandGeneration; /* Need to do pre-invocation post command
- * traversal */
- int menuFlags; /* Flags for use by X; see below for
- definition */
- TkMenuEntry *postedCascade; /* Points to menu entry for cascaded submenu
- * that is currently posted or NULL if no
- * submenu posted. */
- struct TkMenu *nextInstancePtr;
- /* The next instance of this menu in the
- * chain. */
- struct TkMenu *masterMenuPtr;
- /* A pointer to the original menu for this
- * clone chain. Points back to this structure
- * if this menu is a master menu. */
- struct TkMenuOptionTables *optionTablesPtr;
- /* A pointer to the collection of option tables
- * that work with menus and menu entries. */
- Tk_Window parentTopLevelPtr;/* If this menu is a menubar, this is the
- * toplevel that owns the menu. Only applicable
- * for menubar clones.
- */
- struct TkMenuReferences *menuRefPtr;
- /* Each menu is hashed into a table with the
- * name of the menu's window as the key.
- * The information in this hash table includes
- * a pointer to the menu (so that cascades
- * can find this menu), a pointer to the
- * list of toplevel widgets that have this
- * menu as its menubar, and a list of menu
- * entries that have this menu specified
- * as a cascade. */
- TkMenuPlatformData platformData;
- /* The data for the specific type of menu.
- * Depends on platform and menu type what
- * kind of options are in this structure.
- */
- Tk_OptionSpec *extensionPtr;
- /* Needed by the configuration package for
- * this widget to be extended. */
- Tk_SavedOptions *errorStructPtr;
- /* We actually have to allocate these because
- * multiple menus get changed during one
- * ConfigureMenu call. */
-} TkMenu;
-
-/*
- * When the toplevel configure -menu command is executed, the menu may not
- * exist yet. We need to keep a linked list of windows that reference
- * a particular menu.
- */
-
-typedef struct TkMenuTopLevelList {
- struct TkMenuTopLevelList *nextPtr;
- /* The next window in the list */
- Tk_Window tkwin; /* The window that has this menu as its
- * menubar. */
-} TkMenuTopLevelList;
-
-/*
- * The following structure is used to keep track of things which
- * reference a menu. It is created when:
- * - a menu is created.
- * - a cascade entry is added to a menu with a non-null name
- * - the "-menu" configuration option is used on a toplevel widget
- * with a non-null parameter.
- *
- * One of these three fields must be non-NULL, but any of the fields may
- * be NULL. This structure makes it easy to determine whether or not
- * anything like recalculating platform data or geometry is necessary
- * when one of the three actions above is performed.
- */
-
-typedef struct TkMenuReferences {
- struct TkMenu *menuPtr; /* The menu data structure. This is NULL
- * if the menu does not exist. */
- TkMenuTopLevelList *topLevelListPtr;
- /* First in the list of all toplevels that
- * have this menu as its menubar. NULL if no
- * toplevel widgets have this menu as its
- * menubar. */
- TkMenuEntry *parentEntryPtr;/* First in the list of all cascade menu
- * entries that have this menu as their child.
- * NULL means no cascade entries. */
- Tcl_HashEntry *hashEntryPtr;/* This is needed because the pathname of the
- * window (which is what we hash on) may not
- * be around when we are deleting.
- */
-} TkMenuReferences;
-
-/*
- * This structure contains all of the option tables that are needed
- * by menus.
- */
-
-typedef struct TkMenuOptionTables {
- Tk_OptionTable menuOptionTable; /* The option table for menus. */
- Tk_OptionTable entryOptionTables[6];/* The tables for menu entries. */
-} TkMenuOptionTables;
-
-/*
- * Flag bits for menus:
- *
- * REDRAW_PENDING: Non-zero means a DoWhenIdle handler
- * has already been queued to redraw
- * this window.
- * RESIZE_PENDING: Non-zero means a call to ComputeMenuGeometry
- * has already been scheduled.
- * MENU_DELETION_PENDING Non-zero means that we are currently destroying
- * this menu's internal structures. This is useful
- * when we are in the middle of cleaning
- * this master menu's chain of menus up when
- * TkDestroyMenu was called again on this
- * menu (via a destroy binding or somesuch).
- * MENU_WIN_DESTRUCTION_PENDING Non-zero means we are in the middle of
- * destroying this menu's Tk_Window.
- * MENU_PLATFORM_FLAG1... Reserved for use by the platform-specific menu
- * code.
- */
-
-#define REDRAW_PENDING 1
-#define RESIZE_PENDING 2
-#define MENU_DELETION_PENDING 4
-#define MENU_WIN_DESTRUCTION_PENDING 8
-#define MENU_PLATFORM_FLAG1 (1 << 30)
-#define MENU_PLATFORM_FLAG2 (1 << 29)
-#define MENU_PLATFORM_FLAG3 (1 << 28)
-
-/*
- * Each menu created by the user is a MASTER_MENU. When a menu is torn off,
- * a TEAROFF_MENU instance is created. When a menu is assigned to a toplevel
- * as a menu bar, a MENUBAR instance is created. All instances have the same
- * configuration information. If the master instance is deleted, all instances
- * are deleted. If one of the other instances is deleted, only that instance
- * is deleted.
- */
-
-#define UNKNOWN_TYPE -1
-#define MASTER_MENU 0
-#define TEAROFF_MENU 1
-#define MENUBAR 2
-
-/*
- * Various geometry definitions:
- */
-
-#define CASCADE_ARROW_HEIGHT 10
-#define CASCADE_ARROW_WIDTH 8
-#define DECORATION_BORDER_WIDTH 2
-
-/*
- * Menu-related procedures that are shared among Tk modules but not exported
- * to the outside world:
- */
-
-EXTERN int TkActivateMenuEntry _ANSI_ARGS_((TkMenu *menuPtr,
- int index));
-EXTERN void TkBindMenu _ANSI_ARGS_((
- Tk_Window tkwin, TkMenu *menuPtr));
-EXTERN TkMenuReferences *
- TkCreateMenuReferences _ANSI_ARGS_((Tcl_Interp *interp,
- char *name));
-EXTERN void TkDestroyMenu _ANSI_ARGS_((TkMenu *menuPtr));
-EXTERN void TkEventuallyRecomputeMenu _ANSI_ARGS_((
- TkMenu *menuPtr));
-EXTERN void TkEventuallyRedrawMenu _ANSI_ARGS_((
- TkMenu *menuPtr, TkMenuEntry *mePtr));
-EXTERN TkMenuReferences *
- TkFindMenuReferences _ANSI_ARGS_((Tcl_Interp *interp,
- char *name));
-EXTERN TkMenuReferences *
- TkFindMenuReferencesObj _ANSI_ARGS_((
- Tcl_Interp *interp, Tcl_Obj *namePtr));
-EXTERN int TkFreeMenuReferences _ANSI_ARGS_((
- TkMenuReferences *menuRefPtr));
-EXTERN Tcl_HashTable * TkGetMenuHashTable _ANSI_ARGS_((Tcl_Interp *interp));
-EXTERN int TkGetMenuIndex _ANSI_ARGS_((Tcl_Interp *interp,
- TkMenu *menuPtr, Tcl_Obj *objPtr, int lastOK,
- int *indexPtr));
-EXTERN void TkMenuInitializeDrawingFields _ANSI_ARGS_((
- TkMenu *menuPtr));
-EXTERN void TkMenuInitializeEntryDrawingFields _ANSI_ARGS_((
- TkMenuEntry *mePtr));
-EXTERN int TkInvokeMenu _ANSI_ARGS_((Tcl_Interp *interp,
- TkMenu *menuPtr, int index));
-EXTERN void TkMenuConfigureDrawOptions _ANSI_ARGS_((
- TkMenu *menuPtr));
-EXTERN int TkMenuConfigureEntryDrawOptions _ANSI_ARGS_((
- TkMenuEntry *mePtr, int index));
-EXTERN void TkMenuFreeDrawOptions _ANSI_ARGS_((TkMenu *menuPtr));
-EXTERN void TkMenuEntryFreeDrawOptions _ANSI_ARGS_((
- TkMenuEntry *mePtr));
-EXTERN void TkMenuEventProc _ANSI_ARGS_((ClientData clientData,
- XEvent *eventPtr));
-EXTERN void TkMenuImageProc _ANSI_ARGS_((
- ClientData clientData, int x, int y, int width,
- int height, int imgWidth, int imgHeight));
-EXTERN void TkMenuInit _ANSI_ARGS_((void));
-EXTERN void TkMenuSelectImageProc _ANSI_ARGS_
- ((ClientData clientData, int x, int y,
- int width, int height, int imgWidth,
- int imgHeight));
-EXTERN Tcl_Obj * TkNewMenuName _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Obj *parentNamePtr, TkMenu *menuPtr));
-EXTERN int TkPostCommand _ANSI_ARGS_((TkMenu *menuPtr));
-EXTERN int TkPostSubmenu _ANSI_ARGS_((Tcl_Interp *interp,
- TkMenu *menuPtr, TkMenuEntry *mePtr));
-EXTERN int TkPostTearoffMenu _ANSI_ARGS_((Tcl_Interp *interp,
- TkMenu *menuPtr, int x, int y));
-EXTERN int TkPreprocessMenu _ANSI_ARGS_((TkMenu *menuPtr));
-EXTERN void TkRecomputeMenu _ANSI_ARGS_((TkMenu *menuPtr));
-
-/*
- * These routines are the platform-dependent routines called by the
- * common code.
- */
-
-EXTERN void TkpComputeMenubarGeometry _ANSI_ARGS_((
- TkMenu *menuPtr));
-EXTERN void TkpComputeStandardMenuGeometry _ANSI_ARGS_
- ((TkMenu *menuPtr));
-EXTERN int TkpConfigureMenuEntry
- _ANSI_ARGS_((TkMenuEntry *mePtr));
-EXTERN void TkpDestroyMenu _ANSI_ARGS_((TkMenu *menuPtr));
-EXTERN void TkpDestroyMenuEntry
- _ANSI_ARGS_((TkMenuEntry *mEntryPtr));
-EXTERN void TkpDrawMenuEntry _ANSI_ARGS_((TkMenuEntry *mePtr,
- Drawable d, Tk_Font tkfont,
- CONST Tk_FontMetrics *menuMetricsPtr, int x,
- int y, int width, int height, int strictMotif,
- int drawArrow));
-EXTERN void TkpMenuInit _ANSI_ARGS_((void));
-EXTERN int TkpMenuNewEntry _ANSI_ARGS_((TkMenuEntry *mePtr));
-EXTERN int TkpNewMenu _ANSI_ARGS_((TkMenu *menuPtr));
-EXTERN int TkpPostMenu _ANSI_ARGS_((Tcl_Interp *interp,
- TkMenu *menuPtr, int x, int y));
-EXTERN void TkpSetWindowMenuBar _ANSI_ARGS_((Tk_Window tkwin,
- TkMenu *menuPtr));
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKMENU */
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkMenubutton.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkMenubutton.h
deleted file mode 100644
index 30ae1beba58..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkMenubutton.h
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * tkMenubutton.h --
- *
- * Declarations of types and functions used to implement
- * the menubutton widget.
- *
- * Copyright (c) 1996-1997 by Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkMenubutton.h,v 1.8.4.1 2003/11/17 23:29:36 hobbs Exp $
- */
-
-#ifndef _TKMENUBUTTON
-#define _TKMENUBUTTON
-
-#ifndef _TKINT
-#include "tkInt.h"
-#endif
-#include "tkVMacro.h"
-
-#ifndef _TKMENU
-#include "tkMenu.h"
-#endif
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * Legal values for the "orient" field of TkMenubutton records.
- */
-
-enum direction {
- DIRECTION_ABOVE, DIRECTION_BELOW, DIRECTION_FLUSH,
- DIRECTION_LEFT, DIRECTION_RIGHT
-};
-
-/*
- * Legal values for the "state" field of TkMenubutton records.
- */
-
-enum state {
- STATE_ACTIVE, STATE_DISABLED, STATE_NORMAL
-};
-
-/*
- * A data structure of the following type is kept for each
- * widget managed by this file:
- */
-
-typedef struct {
- Tk_Window tkwin; /* Window that embodies the widget. NULL
- * means that the window has been destroyed
- * but the data structures haven't yet been
- * cleaned up.*/
- Display *display; /* Display containing widget. Needed, among
- * other things, so that resources can bee
- * freed up even after tkwin has gone away. */
- Tcl_Interp *interp; /* Interpreter associated with menubutton. */
- Tcl_Command widgetCmd; /* Token for menubutton's widget command. */
- Tk_OptionTable optionTable; /* Table that defines configuration options
- * available for this widget. */
- Tk_Window menuName; /* Name of menu associated with widget.
- * Malloc-ed. */
-
- /*
- * Information about what's displayed in the menu button:
- */
-
- char *text; /* Text to display in button (malloc'ed)
- * or NULL. */
- int underline; /* Index of character to underline. */
- Tcl_Obj *textVarName; /* Name of variable (malloc'ed) or NULL.
- * If non-NULL, button displays the contents
- * of this variable. */
- Pixmap bitmap; /* Bitmap to display or None. If not None
- * then text and textVar and underline
- * are ignored. */
- char *imageString; /* Name of image to display (malloc'ed), or
- * NULL. If non-NULL, bitmap, text, and
- * textVarName are ignored. */
- Tk_Image image; /* Image to display in window, or NULL if
- * none. */
-
- /*
- * Information used when displaying widget:
- */
-
- enum state state; /* State of button for display purposes:
- * normal, active, or disabled. */
- Tk_3DBorder normalBorder; /* Structure used to draw 3-D
- * border and background when window
- * isn't active. NULL means no such
- * border exists. */
- Tk_3DBorder activeBorder; /* Structure used to draw 3-D
- * border and background when window
- * is active. NULL means no such
- * border exists. */
- int borderWidth; /* Width of border. */
- int relief; /* 3-d effect: TK_RELIEF_RAISED, etc. */
- int highlightWidth; /* Width in pixels of highlight to draw
- * around widget when it has the focus.
- * <= 0 means don't draw a highlight. */
- XColor *highlightBgColorPtr;
- /* Color for drawing traversal highlight
- * area when highlight is off. */
- XColor *highlightColorPtr; /* Color for drawing traversal highlight. */
- int inset; /* Total width of all borders, including
- * traversal highlight and 3-D border.
- * Indicates how much interior stuff must
- * be offset from outside edges to leave
- * room for borders. */
- Tk_Font tkfont; /* Information about text font, or NULL. */
- XColor *normalFg; /* Foreground color in normal mode. */
- XColor *activeFg; /* Foreground color in active mode. NULL
- * means use normalFg instead. */
- XColor *disabledFg; /* Foreground color when disabled. NULL
- * means use normalFg with a 50% stipple
- * instead. */
- GC normalTextGC; /* GC for drawing text in normal mode. */
- GC activeTextGC; /* GC for drawing text in active mode (NULL
- * means use normalTextGC). */
- Pixmap gray; /* Pixmap for displaying disabled text/icon if
- * disabledFg is NULL. */
- GC disabledGC; /* Used to produce disabled effect for text. */
- GC stippleGC; /* Used to produce disabled stipple effect
- * for images when disabled. */
- int leftBearing; /* Distance from text origin to leftmost drawn
- * pixel (positive means to right). */
- int rightBearing; /* Amount text sticks right from its origin. */
- Tcl_Obj *widthString; /* Value of -width option. Malloc'ed. */
- Tcl_Obj *heightString; /* Value of -height option. Malloc'ed. */
- int width, height; /* If > 0, these specify dimensions to request
- * for window, in characters for text and in
- * pixels for bitmaps. In this case the actual
- * size of the text string or bitmap is
- * ignored in computing desired window size. */
- int wrapLength; /* Line length (in pixels) at which to wrap
- * onto next line. <= 0 means don't wrap
- * except at newlines. */
- int padX, padY; /* Extra space around text or bitmap (pixels
- * on each side). */
- Tk_Anchor anchor; /* Where text/bitmap should be displayed
- * inside window region. */
- Tk_Justify justify; /* Justification to use for multi-line text. */
- int textWidth; /* Width needed to display text as requested,
- * in pixels. */
- int textHeight; /* Height needed to display text as requested,
- * in pixels. */
- Tk_TextLayout textLayout; /* Saved text layout information. */
- int indicatorOn; /* Non-zero means display indicator; 0 means
- * don't display. */
- int indicatorHeight; /* Height of indicator in pixels. This same
- * amount of extra space is also left on each
- * side of the indicator. 0 if no indicator. */
- int indicatorWidth; /* Width of indicator in pixels, including
- * indicatorHeight in padding on each side.
- * 0 if no indicator. */
-
- /*
- * Miscellaneous information:
- */
-
- int compound; /* Value of -compound option; specifies whether
- * the menubutton should show both an image and
- * text, and, if so, how. */
-
- enum direction direction; /* Direction for where to pop the menu.
- * Valid directions are "above", "below",
- * "left", "right", and "flush". "flush"
- * means that the upper left corner of the
- * menubutton is where the menu pops up.
- * "above" and "below" will attempt to pop
- * the menu compleletly above or below
- * the menu respectively.
- * "left" and "right" will pop the menu
- * left or right, and the active item
- * will be next to the button. */
- Tk_Cursor cursor; /* Current cursor for window, or None. */
- char *takeFocus; /* Value of -takefocus option; not used in
- * the C code, but used by keyboard traversal
- * scripts. Malloc'ed, but may be NULL. */
- int flags; /* Various flags; see below for
- * definitions. */
-} TkMenuButton;
-
-/*
- * Flag bits for buttons:
- *
- * REDRAW_PENDING: Non-zero means a DoWhenIdle handler
- * has already been queued to redraw
- * this window.
- * POSTED: Non-zero means that the menu associated
- * with this button has been posted (typically
- * because of an active button press).
- * GOT_FOCUS: Non-zero means this button currently
- * has the input focus.
- */
-
-#define REDRAW_PENDING 1
-#define POSTED 2
-#define GOT_FOCUS 4
-
-/*
- * The following constants define the dimensions of the cascade indicator,
- * which is displayed if the "-indicatoron" option is true. The units for
- * these options are 1/10 millimeters.
- */
-
-#define INDICATOR_WIDTH 40
-#define INDICATOR_HEIGHT 17
-
-/*
- * Declaration of variables shared between the files in the button module.
- */
-
-extern Tk_ClassProcs tkpMenubuttonClass;
-
-/*
- * Declaration of procedures used in the implementation of the button
- * widget.
- */
-
-EXTERN void TkpComputeMenuButtonGeometry _ANSI_ARGS_((
- TkMenuButton *mbPtr));
-EXTERN TkMenuButton * TkpCreateMenuButton _ANSI_ARGS_((Tk_Window tkwin));
-EXTERN void TkpDisplayMenuButton _ANSI_ARGS_((
- ClientData clientData));
-EXTERN void TkpDestroyMenuButton _ANSI_ARGS_((
- TkMenuButton *mbPtr));
-EXTERN void TkMenuButtonWorldChanged _ANSI_ARGS_((
- ClientData instanceData));
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKMENUBUTTON */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkOption.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkOption.h
deleted file mode 100644
index db21505cf68..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkOption.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef _TKOPTION
-#define _TKOPTION
-EXTERN void Tk_AddOption _ANSI_ARGS_((Tk_Window tkwin,
- CONST char * name, CONST char * value,
- int priority));
-EXTERN Tk_Uid Tk_GetOption _ANSI_ARGS_((Tk_Window tkwin, CONST char *name,
- CONST char *className));
-EXTERN int Tk_OptionObjCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *args));
-#ifndef _TKINT
-struct TkWindow;
-#endif
-EXTERN void TkOptionClassChanged _ANSI_ARGS_((struct TkWindow *winPtr));
-EXTERN void TkOptionDeadWindow _ANSI_ARGS_((struct TkWindow *winPtr));
-#endif /* _TKOPTION */
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkOption.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tkOption.m
deleted file mode 100644
index 9486a5da573..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkOption.m
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _TKOPTION_VM
-#define _TKOPTION_VM
-#include "tkOption_f.h"
-#ifndef NO_VTABLES
-#ifndef TkOptionClassChanged
-# define TkOptionClassChanged (*TkoptionVptr->V_TkOptionClassChanged)
-#endif
-
-#ifndef TkOptionDeadWindow
-# define TkOptionDeadWindow (*TkoptionVptr->V_TkOptionDeadWindow)
-#endif
-
-#ifndef Tk_AddOption
-# define Tk_AddOption (*TkoptionVptr->V_Tk_AddOption)
-#endif
-
-#ifndef Tk_GetOption
-# define Tk_GetOption (*TkoptionVptr->V_Tk_GetOption)
-#endif
-
-#ifndef Tk_OptionObjCmd
-# define Tk_OptionObjCmd (*TkoptionVptr->V_Tk_OptionObjCmd)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TKOPTION_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkOption.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tkOption.t
deleted file mode 100644
index c782fae5cf4..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkOption.t
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifdef _TKOPTION
-#ifndef TkOptionClassChanged
-VFUNC(void,TkOptionClassChanged,V_TkOptionClassChanged,_ANSI_ARGS_((struct TkWindow *winPtr)))
-#endif /* #ifndef TkOptionClassChanged */
-
-#ifndef TkOptionDeadWindow
-VFUNC(void,TkOptionDeadWindow,V_TkOptionDeadWindow,_ANSI_ARGS_((struct TkWindow *winPtr)))
-#endif /* #ifndef TkOptionDeadWindow */
-
-#ifndef Tk_AddOption
-VFUNC(void,Tk_AddOption,V_Tk_AddOption,_ANSI_ARGS_((Tk_Window tkwin,
- CONST char * name, CONST char * value,
- int priority)))
-#endif /* #ifndef Tk_AddOption */
-
-#ifndef Tk_GetOption
-VFUNC(Tk_Uid,Tk_GetOption,V_Tk_GetOption,_ANSI_ARGS_((Tk_Window tkwin, CONST char *name,
- CONST char *className)))
-#endif /* #ifndef Tk_GetOption */
-
-#ifndef Tk_OptionObjCmd
-VFUNC(int,Tk_OptionObjCmd,V_Tk_OptionObjCmd,_ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *args)))
-#endif /* #ifndef Tk_OptionObjCmd */
-
-#endif /* _TKOPTION */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkOption_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkOption_f.h
deleted file mode 100644
index 9a3f10cd919..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkOption_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TKOPTION_VT
-#define TKOPTION_VT
-typedef struct TkoptionVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tkOption.t"
-#undef VFUNC
-#undef VVAR
-} TkoptionVtab;
-extern TkoptionVtab *TkoptionVptr;
-extern TkoptionVtab *TkoptionVGet(void);
-#endif /* TKOPTION_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls.h
deleted file mode 100644
index 1ac6485307b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls.h
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * tkPlatDecls.h --
- *
- * Declarations of functions in the platform-specific public Tcl API.
- *
- * Copyright (c) 1998-1999 by Scriptics Corporation.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkPlatDecls.h,v 1.7 2002/08/31 06:12:23 das Exp $
- */
-
-#ifndef _TKPLATDECLS
-#define _TKPLATDECLS
-
-#ifdef BUILD_tk
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * WARNING: This file is automatically generated by the tools/genStubs.tcl
- * script. Any modifications to the function declarations below should be made
- * in the generic/tk.decls script.
- */
-
-/* !BEGIN!: Do not edit below this line. */
-
-/*
- * Exported function declarations:
- */
-
-#ifdef __WIN32__
-/* 0 */
-EXTERN Window Tk_AttachHWND _ANSI_ARGS_((Tk_Window tkwin,
- HWND hwnd));
-/* 1 */
-EXTERN HINSTANCE Tk_GetHINSTANCE _ANSI_ARGS_((void));
-/* 2 */
-EXTERN HWND Tk_GetHWND _ANSI_ARGS_((Window window));
-/* 3 */
-EXTERN Tk_Window Tk_HWNDToWindow _ANSI_ARGS_((HWND hwnd));
-/* 4 */
-EXTERN void Tk_PointerEvent _ANSI_ARGS_((HWND hwnd, int x, int y));
-/* 5 */
-EXTERN int Tk_TranslateWinEvent _ANSI_ARGS_((HWND hwnd,
- UINT message, WPARAM wParam, LPARAM lParam,
- LRESULT * result));
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-/* 0 */
-EXTERN void Tk_MacSetEmbedHandler _ANSI_ARGS_((
- Tk_MacEmbedRegisterWinProc * registerWinProcPtr,
- Tk_MacEmbedGetGrafPortProc * getPortProcPtr,
- Tk_MacEmbedMakeContainerExistProc * containerExistProcPtr,
- Tk_MacEmbedGetClipProc * getClipProc,
- Tk_MacEmbedGetOffsetInParentProc * getOffsetProc));
-/* 1 */
-EXTERN void Tk_MacTurnOffMenus _ANSI_ARGS_((void));
-/* 2 */
-EXTERN void Tk_MacTkOwnsCursor _ANSI_ARGS_((int tkOwnsIt));
-/* 3 */
-EXTERN void TkMacInitMenus _ANSI_ARGS_((Tcl_Interp * interp));
-/* 4 */
-EXTERN void TkMacInitAppleEvents _ANSI_ARGS_((
- Tcl_Interp * interp));
-/* 5 */
-EXTERN int TkMacConvertEvent _ANSI_ARGS_((
- EventRecord * eventPtr));
-/* 6 */
-EXTERN int TkMacConvertTkEvent _ANSI_ARGS_((
- EventRecord * eventPtr, Window window));
-/* 7 */
-EXTERN void TkGenWMConfigureEvent _ANSI_ARGS_((Tk_Window tkwin,
- int x, int y, int width, int height,
- int flags));
-/* 8 */
-EXTERN void TkMacInvalClipRgns _ANSI_ARGS_((TkWindow * winPtr));
-/* 9 */
-EXTERN int TkMacHaveAppearance _ANSI_ARGS_((void));
-/* 10 */
-EXTERN GWorldPtr TkMacGetDrawablePort _ANSI_ARGS_((Drawable drawable));
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-/* 0 */
-EXTERN void Tk_MacOSXSetEmbedHandler _ANSI_ARGS_((
- Tk_MacOSXEmbedRegisterWinProc * registerWinProcPtr,
- Tk_MacOSXEmbedGetGrafPortProc * getPortProcPtr,
- Tk_MacOSXEmbedMakeContainerExistProc * containerExistProcPtr,
- Tk_MacOSXEmbedGetClipProc * getClipProc,
- Tk_MacOSXEmbedGetOffsetInParentProc * getOffsetProc));
-/* 1 */
-EXTERN void Tk_MacOSXTurnOffMenus _ANSI_ARGS_((void));
-/* 2 */
-EXTERN void Tk_MacOSXTkOwnsCursor _ANSI_ARGS_((int tkOwnsIt));
-/* 3 */
-EXTERN void TkMacOSXInitMenus _ANSI_ARGS_((Tcl_Interp * interp));
-/* 4 */
-EXTERN void TkMacOSXInitAppleEvents _ANSI_ARGS_((
- Tcl_Interp * interp));
-/* 5 */
-EXTERN void TkGenWMConfigureEvent _ANSI_ARGS_((Tk_Window tkwin,
- int x, int y, int width, int height,
- int flags));
-/* 6 */
-EXTERN void TkMacOSXInvalClipRgns _ANSI_ARGS_((TkWindow * winPtr));
-/* 7 */
-EXTERN GWorldPtr TkMacOSXGetDrawablePort _ANSI_ARGS_((
- Drawable drawable));
-/* 8 */
-EXTERN ControlRef TkMacOSXGetRootControl _ANSI_ARGS_((
- Drawable drawable));
-/* 9 */
-EXTERN void Tk_MacOSXSetupTkNotifier _ANSI_ARGS_((void));
-/* 10 */
-EXTERN int Tk_MacOSXIsAppInFront _ANSI_ARGS_((void));
-#endif /* MAC_OSX_TK */
-
-typedef struct TkPlatStubs {
- int magic;
- struct TkPlatStubHooks *hooks;
-
-#ifdef __WIN32__
- Window (*tk_AttachHWND) _ANSI_ARGS_((Tk_Window tkwin, HWND hwnd)); /* 0 */
- HINSTANCE (*tk_GetHINSTANCE) _ANSI_ARGS_((void)); /* 1 */
- HWND (*tk_GetHWND) _ANSI_ARGS_((Window window)); /* 2 */
- Tk_Window (*tk_HWNDToWindow) _ANSI_ARGS_((HWND hwnd)); /* 3 */
- void (*tk_PointerEvent) _ANSI_ARGS_((HWND hwnd, int x, int y)); /* 4 */
- int (*tk_TranslateWinEvent) _ANSI_ARGS_((HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT * result)); /* 5 */
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
- void (*tk_MacSetEmbedHandler) _ANSI_ARGS_((Tk_MacEmbedRegisterWinProc * registerWinProcPtr, Tk_MacEmbedGetGrafPortProc * getPortProcPtr, Tk_MacEmbedMakeContainerExistProc * containerExistProcPtr, Tk_MacEmbedGetClipProc * getClipProc, Tk_MacEmbedGetOffsetInParentProc * getOffsetProc)); /* 0 */
- void (*tk_MacTurnOffMenus) _ANSI_ARGS_((void)); /* 1 */
- void (*tk_MacTkOwnsCursor) _ANSI_ARGS_((int tkOwnsIt)); /* 2 */
- void (*tkMacInitMenus) _ANSI_ARGS_((Tcl_Interp * interp)); /* 3 */
- void (*tkMacInitAppleEvents) _ANSI_ARGS_((Tcl_Interp * interp)); /* 4 */
- int (*tkMacConvertEvent) _ANSI_ARGS_((EventRecord * eventPtr)); /* 5 */
- int (*tkMacConvertTkEvent) _ANSI_ARGS_((EventRecord * eventPtr, Window window)); /* 6 */
- void (*tkGenWMConfigureEvent) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int width, int height, int flags)); /* 7 */
- void (*tkMacInvalClipRgns) _ANSI_ARGS_((TkWindow * winPtr)); /* 8 */
- int (*tkMacHaveAppearance) _ANSI_ARGS_((void)); /* 9 */
- GWorldPtr (*tkMacGetDrawablePort) _ANSI_ARGS_((Drawable drawable)); /* 10 */
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
- void (*tk_MacOSXSetEmbedHandler) _ANSI_ARGS_((Tk_MacOSXEmbedRegisterWinProc * registerWinProcPtr, Tk_MacOSXEmbedGetGrafPortProc * getPortProcPtr, Tk_MacOSXEmbedMakeContainerExistProc * containerExistProcPtr, Tk_MacOSXEmbedGetClipProc * getClipProc, Tk_MacOSXEmbedGetOffsetInParentProc * getOffsetProc)); /* 0 */
- void (*tk_MacOSXTurnOffMenus) _ANSI_ARGS_((void)); /* 1 */
- void (*tk_MacOSXTkOwnsCursor) _ANSI_ARGS_((int tkOwnsIt)); /* 2 */
- void (*tkMacOSXInitMenus) _ANSI_ARGS_((Tcl_Interp * interp)); /* 3 */
- void (*tkMacOSXInitAppleEvents) _ANSI_ARGS_((Tcl_Interp * interp)); /* 4 */
- void (*tkGenWMConfigureEvent) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int width, int height, int flags)); /* 5 */
- void (*tkMacOSXInvalClipRgns) _ANSI_ARGS_((TkWindow * winPtr)); /* 6 */
- GWorldPtr (*tkMacOSXGetDrawablePort) _ANSI_ARGS_((Drawable drawable)); /* 7 */
- ControlRef (*tkMacOSXGetRootControl) _ANSI_ARGS_((Drawable drawable)); /* 8 */
- void (*tk_MacOSXSetupTkNotifier) _ANSI_ARGS_((void)); /* 9 */
- int (*tk_MacOSXIsAppInFront) _ANSI_ARGS_((void)); /* 10 */
-#endif /* MAC_OSX_TK */
-} TkPlatStubs;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern TkPlatStubs *tkPlatStubsPtr;
-#ifdef __cplusplus
-}
-#endif
-
-#if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS)
-
-/*
- * Inline function declarations:
- */
-
-#ifdef __WIN32__
-#ifndef Tk_AttachHWND
-#define Tk_AttachHWND \
- (tkPlatStubsPtr->tk_AttachHWND) /* 0 */
-#endif
-#ifndef Tk_GetHINSTANCE
-#define Tk_GetHINSTANCE \
- (tkPlatStubsPtr->tk_GetHINSTANCE) /* 1 */
-#endif
-#ifndef Tk_GetHWND
-#define Tk_GetHWND \
- (tkPlatStubsPtr->tk_GetHWND) /* 2 */
-#endif
-#ifndef Tk_HWNDToWindow
-#define Tk_HWNDToWindow \
- (tkPlatStubsPtr->tk_HWNDToWindow) /* 3 */
-#endif
-#ifndef Tk_PointerEvent
-#define Tk_PointerEvent \
- (tkPlatStubsPtr->tk_PointerEvent) /* 4 */
-#endif
-#ifndef Tk_TranslateWinEvent
-#define Tk_TranslateWinEvent \
- (tkPlatStubsPtr->tk_TranslateWinEvent) /* 5 */
-#endif
-#endif /* __WIN32__ */
-#ifdef MAC_TCL
-#ifndef Tk_MacSetEmbedHandler
-#define Tk_MacSetEmbedHandler \
- (tkPlatStubsPtr->tk_MacSetEmbedHandler) /* 0 */
-#endif
-#ifndef Tk_MacTurnOffMenus
-#define Tk_MacTurnOffMenus \
- (tkPlatStubsPtr->tk_MacTurnOffMenus) /* 1 */
-#endif
-#ifndef Tk_MacTkOwnsCursor
-#define Tk_MacTkOwnsCursor \
- (tkPlatStubsPtr->tk_MacTkOwnsCursor) /* 2 */
-#endif
-#ifndef TkMacInitMenus
-#define TkMacInitMenus \
- (tkPlatStubsPtr->tkMacInitMenus) /* 3 */
-#endif
-#ifndef TkMacInitAppleEvents
-#define TkMacInitAppleEvents \
- (tkPlatStubsPtr->tkMacInitAppleEvents) /* 4 */
-#endif
-#ifndef TkMacConvertEvent
-#define TkMacConvertEvent \
- (tkPlatStubsPtr->tkMacConvertEvent) /* 5 */
-#endif
-#ifndef TkMacConvertTkEvent
-#define TkMacConvertTkEvent \
- (tkPlatStubsPtr->tkMacConvertTkEvent) /* 6 */
-#endif
-#ifndef TkGenWMConfigureEvent
-#define TkGenWMConfigureEvent \
- (tkPlatStubsPtr->tkGenWMConfigureEvent) /* 7 */
-#endif
-#ifndef TkMacInvalClipRgns
-#define TkMacInvalClipRgns \
- (tkPlatStubsPtr->tkMacInvalClipRgns) /* 8 */
-#endif
-#ifndef TkMacHaveAppearance
-#define TkMacHaveAppearance \
- (tkPlatStubsPtr->tkMacHaveAppearance) /* 9 */
-#endif
-#ifndef TkMacGetDrawablePort
-#define TkMacGetDrawablePort \
- (tkPlatStubsPtr->tkMacGetDrawablePort) /* 10 */
-#endif
-#endif /* MAC_TCL */
-#ifdef MAC_OSX_TK
-#ifndef Tk_MacOSXSetEmbedHandler
-#define Tk_MacOSXSetEmbedHandler \
- (tkPlatStubsPtr->tk_MacOSXSetEmbedHandler) /* 0 */
-#endif
-#ifndef Tk_MacOSXTurnOffMenus
-#define Tk_MacOSXTurnOffMenus \
- (tkPlatStubsPtr->tk_MacOSXTurnOffMenus) /* 1 */
-#endif
-#ifndef Tk_MacOSXTkOwnsCursor
-#define Tk_MacOSXTkOwnsCursor \
- (tkPlatStubsPtr->tk_MacOSXTkOwnsCursor) /* 2 */
-#endif
-#ifndef TkMacOSXInitMenus
-#define TkMacOSXInitMenus \
- (tkPlatStubsPtr->tkMacOSXInitMenus) /* 3 */
-#endif
-#ifndef TkMacOSXInitAppleEvents
-#define TkMacOSXInitAppleEvents \
- (tkPlatStubsPtr->tkMacOSXInitAppleEvents) /* 4 */
-#endif
-#ifndef TkGenWMConfigureEvent
-#define TkGenWMConfigureEvent \
- (tkPlatStubsPtr->tkGenWMConfigureEvent) /* 5 */
-#endif
-#ifndef TkMacOSXInvalClipRgns
-#define TkMacOSXInvalClipRgns \
- (tkPlatStubsPtr->tkMacOSXInvalClipRgns) /* 6 */
-#endif
-#ifndef TkMacOSXGetDrawablePort
-#define TkMacOSXGetDrawablePort \
- (tkPlatStubsPtr->tkMacOSXGetDrawablePort) /* 7 */
-#endif
-#ifndef TkMacOSXGetRootControl
-#define TkMacOSXGetRootControl \
- (tkPlatStubsPtr->tkMacOSXGetRootControl) /* 8 */
-#endif
-#ifndef Tk_MacOSXSetupTkNotifier
-#define Tk_MacOSXSetupTkNotifier \
- (tkPlatStubsPtr->tk_MacOSXSetupTkNotifier) /* 9 */
-#endif
-#ifndef Tk_MacOSXIsAppInFront
-#define Tk_MacOSXIsAppInFront \
- (tkPlatStubsPtr->tk_MacOSXIsAppInFront) /* 10 */
-#endif
-#endif /* MAC_OSX_TK */
-
-#endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */
-
-/* !END!: Do not edit above this line. */
-
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKPLATDECLS */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls.m b/Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls.m
deleted file mode 100644
index 41dfafb4998..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls.m
+++ /dev/null
@@ -1,114 +0,0 @@
-#ifndef _TKPLATDECLS_VM
-#define _TKPLATDECLS_VM
-#include "tkPlatDecls_f.h"
-#ifndef NO_VTABLES
-#ifndef TkGenWMConfigureEvent
-# define TkGenWMConfigureEvent (*TkplatdeclsVptr->V_TkGenWMConfigureEvent)
-#endif
-
-#ifndef TkMacConvertEvent
-# define TkMacConvertEvent (*TkplatdeclsVptr->V_TkMacConvertEvent)
-#endif
-
-#ifndef TkMacConvertTkEvent
-# define TkMacConvertTkEvent (*TkplatdeclsVptr->V_TkMacConvertTkEvent)
-#endif
-
-#ifndef TkMacGetDrawablePort
-# define TkMacGetDrawablePort (*TkplatdeclsVptr->V_TkMacGetDrawablePort)
-#endif
-
-#ifndef TkMacHaveAppearance
-# define TkMacHaveAppearance (*TkplatdeclsVptr->V_TkMacHaveAppearance)
-#endif
-
-#ifndef TkMacInitAppleEvents
-# define TkMacInitAppleEvents (*TkplatdeclsVptr->V_TkMacInitAppleEvents)
-#endif
-
-#ifndef TkMacInitMenus
-# define TkMacInitMenus (*TkplatdeclsVptr->V_TkMacInitMenus)
-#endif
-
-#ifndef TkMacInvalClipRgns
-# define TkMacInvalClipRgns (*TkplatdeclsVptr->V_TkMacInvalClipRgns)
-#endif
-
-#ifndef TkMacOSXGetDrawablePort
-# define TkMacOSXGetDrawablePort (*TkplatdeclsVptr->V_TkMacOSXGetDrawablePort)
-#endif
-
-#ifndef TkMacOSXGetRootControl
-# define TkMacOSXGetRootControl (*TkplatdeclsVptr->V_TkMacOSXGetRootControl)
-#endif
-
-#ifndef TkMacOSXInitAppleEvents
-# define TkMacOSXInitAppleEvents (*TkplatdeclsVptr->V_TkMacOSXInitAppleEvents)
-#endif
-
-#ifndef TkMacOSXInitMenus
-# define TkMacOSXInitMenus (*TkplatdeclsVptr->V_TkMacOSXInitMenus)
-#endif
-
-#ifndef TkMacOSXInvalClipRgns
-# define TkMacOSXInvalClipRgns (*TkplatdeclsVptr->V_TkMacOSXInvalClipRgns)
-#endif
-
-#ifndef Tk_AttachHWND
-# define Tk_AttachHWND (*TkplatdeclsVptr->V_Tk_AttachHWND)
-#endif
-
-#ifndef Tk_GetHINSTANCE
-# define Tk_GetHINSTANCE (*TkplatdeclsVptr->V_Tk_GetHINSTANCE)
-#endif
-
-#ifndef Tk_GetHWND
-# define Tk_GetHWND (*TkplatdeclsVptr->V_Tk_GetHWND)
-#endif
-
-#ifndef Tk_HWNDToWindow
-# define Tk_HWNDToWindow (*TkplatdeclsVptr->V_Tk_HWNDToWindow)
-#endif
-
-#ifndef Tk_MacOSXIsAppInFront
-# define Tk_MacOSXIsAppInFront (*TkplatdeclsVptr->V_Tk_MacOSXIsAppInFront)
-#endif
-
-#ifndef Tk_MacOSXSetEmbedHandler
-# define Tk_MacOSXSetEmbedHandler (*TkplatdeclsVptr->V_Tk_MacOSXSetEmbedHandler)
-#endif
-
-#ifndef Tk_MacOSXSetupTkNotifier
-# define Tk_MacOSXSetupTkNotifier (*TkplatdeclsVptr->V_Tk_MacOSXSetupTkNotifier)
-#endif
-
-#ifndef Tk_MacOSXTkOwnsCursor
-# define Tk_MacOSXTkOwnsCursor (*TkplatdeclsVptr->V_Tk_MacOSXTkOwnsCursor)
-#endif
-
-#ifndef Tk_MacOSXTurnOffMenus
-# define Tk_MacOSXTurnOffMenus (*TkplatdeclsVptr->V_Tk_MacOSXTurnOffMenus)
-#endif
-
-#ifndef Tk_MacSetEmbedHandler
-# define Tk_MacSetEmbedHandler (*TkplatdeclsVptr->V_Tk_MacSetEmbedHandler)
-#endif
-
-#ifndef Tk_MacTkOwnsCursor
-# define Tk_MacTkOwnsCursor (*TkplatdeclsVptr->V_Tk_MacTkOwnsCursor)
-#endif
-
-#ifndef Tk_MacTurnOffMenus
-# define Tk_MacTurnOffMenus (*TkplatdeclsVptr->V_Tk_MacTurnOffMenus)
-#endif
-
-#ifndef Tk_PointerEvent
-# define Tk_PointerEvent (*TkplatdeclsVptr->V_Tk_PointerEvent)
-#endif
-
-#ifndef Tk_TranslateWinEvent
-# define Tk_TranslateWinEvent (*TkplatdeclsVptr->V_Tk_TranslateWinEvent)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TKPLATDECLS_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls.t b/Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls.t
deleted file mode 100644
index 162ddc59545..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls.t
+++ /dev/null
@@ -1,190 +0,0 @@
-#ifdef _TKPLATDECLS
-#ifndef TkGenWMConfigureEvent
-#ifdef MAC_OSX_TK
-VFUNC(void,TkGenWMConfigureEvent,V_TkGenWMConfigureEvent,_ANSI_ARGS_((Tk_Window tkwin,
- int x, int y, int width, int height,
- int flags)))
-#endif /* #ifdef MAC_OSX_TK */
-#ifdef MAC_TCL
-VFUNC(void,TkGenWMConfigureEvent,V_TkGenWMConfigureEvent,_ANSI_ARGS_((Tk_Window tkwin,
- int x, int y, int width, int height,
- int flags)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkGenWMConfigureEvent */
-
-#ifndef TkMacConvertEvent
-#ifdef MAC_TCL
-VFUNC(int,TkMacConvertEvent,V_TkMacConvertEvent,_ANSI_ARGS_((
- EventRecord * eventPtr)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacConvertEvent */
-
-#ifndef TkMacConvertTkEvent
-#ifdef MAC_TCL
-VFUNC(int,TkMacConvertTkEvent,V_TkMacConvertTkEvent,_ANSI_ARGS_((
- EventRecord * eventPtr, Window window)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacConvertTkEvent */
-
-#ifndef TkMacGetDrawablePort
-#ifdef MAC_TCL
-VFUNC(GWorldPtr,TkMacGetDrawablePort,V_TkMacGetDrawablePort,_ANSI_ARGS_((Drawable drawable)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacGetDrawablePort */
-
-#ifndef TkMacHaveAppearance
-#ifdef MAC_TCL
-VFUNC(int,TkMacHaveAppearance,V_TkMacHaveAppearance,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacHaveAppearance */
-
-#ifndef TkMacInitAppleEvents
-#ifdef MAC_TCL
-VFUNC(void,TkMacInitAppleEvents,V_TkMacInitAppleEvents,_ANSI_ARGS_((
- Tcl_Interp * interp)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacInitAppleEvents */
-
-#ifndef TkMacInitMenus
-#ifdef MAC_TCL
-VFUNC(void,TkMacInitMenus,V_TkMacInitMenus,_ANSI_ARGS_((Tcl_Interp * interp)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacInitMenus */
-
-#ifndef TkMacInvalClipRgns
-#ifdef MAC_TCL
-VFUNC(void,TkMacInvalClipRgns,V_TkMacInvalClipRgns,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef TkMacInvalClipRgns */
-
-#ifndef TkMacOSXGetDrawablePort
-#ifdef MAC_OSX_TK
-VFUNC(GWorldPtr,TkMacOSXGetDrawablePort,V_TkMacOSXGetDrawablePort,_ANSI_ARGS_((
- Drawable drawable)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXGetDrawablePort */
-
-#ifndef TkMacOSXGetRootControl
-#ifdef MAC_OSX_TK
-VFUNC(ControlRef,TkMacOSXGetRootControl,V_TkMacOSXGetRootControl,_ANSI_ARGS_((
- Drawable drawable)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXGetRootControl */
-
-#ifndef TkMacOSXInitAppleEvents
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXInitAppleEvents,V_TkMacOSXInitAppleEvents,_ANSI_ARGS_((
- Tcl_Interp * interp)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXInitAppleEvents */
-
-#ifndef TkMacOSXInitMenus
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXInitMenus,V_TkMacOSXInitMenus,_ANSI_ARGS_((Tcl_Interp * interp)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXInitMenus */
-
-#ifndef TkMacOSXInvalClipRgns
-#ifdef MAC_OSX_TK
-VFUNC(void,TkMacOSXInvalClipRgns,V_TkMacOSXInvalClipRgns,_ANSI_ARGS_((TkWindow * winPtr)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef TkMacOSXInvalClipRgns */
-
-#ifndef Tk_AttachHWND
-#ifdef __WIN32__
-VFUNC(Window,Tk_AttachHWND,V_Tk_AttachHWND,_ANSI_ARGS_((Tk_Window tkwin,
- HWND hwnd)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef Tk_AttachHWND */
-
-#ifndef Tk_GetHINSTANCE
-#ifdef __WIN32__
-VFUNC(HINSTANCE,Tk_GetHINSTANCE,V_Tk_GetHINSTANCE,_ANSI_ARGS_((void)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef Tk_GetHINSTANCE */
-
-#ifndef Tk_GetHWND
-#ifdef __WIN32__
-VFUNC(HWND,Tk_GetHWND,V_Tk_GetHWND,_ANSI_ARGS_((Window window)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef Tk_GetHWND */
-
-#ifndef Tk_HWNDToWindow
-#ifdef __WIN32__
-VFUNC(Tk_Window,Tk_HWNDToWindow,V_Tk_HWNDToWindow,_ANSI_ARGS_((HWND hwnd)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef Tk_HWNDToWindow */
-
-#ifndef Tk_MacOSXIsAppInFront
-#ifdef MAC_OSX_TK
-VFUNC(int,Tk_MacOSXIsAppInFront,V_Tk_MacOSXIsAppInFront,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef Tk_MacOSXIsAppInFront */
-
-#ifndef Tk_MacOSXSetEmbedHandler
-#ifdef MAC_OSX_TK
-VFUNC(void,Tk_MacOSXSetEmbedHandler,V_Tk_MacOSXSetEmbedHandler,_ANSI_ARGS_((
- Tk_MacOSXEmbedRegisterWinProc * registerWinProcPtr,
- Tk_MacOSXEmbedGetGrafPortProc * getPortProcPtr,
- Tk_MacOSXEmbedMakeContainerExistProc * containerExistProcPtr,
- Tk_MacOSXEmbedGetClipProc * getClipProc,
- Tk_MacOSXEmbedGetOffsetInParentProc * getOffsetProc)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef Tk_MacOSXSetEmbedHandler */
-
-#ifndef Tk_MacOSXSetupTkNotifier
-#ifdef MAC_OSX_TK
-VFUNC(void,Tk_MacOSXSetupTkNotifier,V_Tk_MacOSXSetupTkNotifier,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef Tk_MacOSXSetupTkNotifier */
-
-#ifndef Tk_MacOSXTkOwnsCursor
-#ifdef MAC_OSX_TK
-VFUNC(void,Tk_MacOSXTkOwnsCursor,V_Tk_MacOSXTkOwnsCursor,_ANSI_ARGS_((int tkOwnsIt)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef Tk_MacOSXTkOwnsCursor */
-
-#ifndef Tk_MacOSXTurnOffMenus
-#ifdef MAC_OSX_TK
-VFUNC(void,Tk_MacOSXTurnOffMenus,V_Tk_MacOSXTurnOffMenus,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_OSX_TK */
-#endif /* #ifndef Tk_MacOSXTurnOffMenus */
-
-#ifndef Tk_MacSetEmbedHandler
-#ifdef MAC_TCL
-VFUNC(void,Tk_MacSetEmbedHandler,V_Tk_MacSetEmbedHandler,_ANSI_ARGS_((
- Tk_MacEmbedRegisterWinProc * registerWinProcPtr,
- Tk_MacEmbedGetGrafPortProc * getPortProcPtr,
- Tk_MacEmbedMakeContainerExistProc * containerExistProcPtr,
- Tk_MacEmbedGetClipProc * getClipProc,
- Tk_MacEmbedGetOffsetInParentProc * getOffsetProc)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef Tk_MacSetEmbedHandler */
-
-#ifndef Tk_MacTkOwnsCursor
-#ifdef MAC_TCL
-VFUNC(void,Tk_MacTkOwnsCursor,V_Tk_MacTkOwnsCursor,_ANSI_ARGS_((int tkOwnsIt)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef Tk_MacTkOwnsCursor */
-
-#ifndef Tk_MacTurnOffMenus
-#ifdef MAC_TCL
-VFUNC(void,Tk_MacTurnOffMenus,V_Tk_MacTurnOffMenus,_ANSI_ARGS_((void)))
-#endif /* #ifdef MAC_TCL */
-#endif /* #ifndef Tk_MacTurnOffMenus */
-
-#ifndef Tk_PointerEvent
-#ifdef __WIN32__
-VFUNC(void,Tk_PointerEvent,V_Tk_PointerEvent,_ANSI_ARGS_((HWND hwnd, int x, int y)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef Tk_PointerEvent */
-
-#ifndef Tk_TranslateWinEvent
-#ifdef __WIN32__
-VFUNC(int,Tk_TranslateWinEvent,V_Tk_TranslateWinEvent,_ANSI_ARGS_((HWND hwnd,
- UINT message, WPARAM wParam, LPARAM lParam,
- LRESULT * result)))
-#endif /* #ifdef __WIN32__ */
-#endif /* #ifndef Tk_TranslateWinEvent */
-
-#endif /* _TKPLATDECLS */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls_f.h
deleted file mode 100644
index 8608bfb276f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkPlatDecls_f.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef TKPLATDECLS_VT
-#define TKPLATDECLS_VT
-#include "tkPlatDecls.h"
-typedef struct TkplatdeclsVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tkPlatDecls.t"
-#undef VFUNC
-#undef VVAR
-} TkplatdeclsVtab;
-extern TkplatdeclsVtab *TkplatdeclsVptr;
-extern TkplatdeclsVtab *TkplatdeclsVGet(void);
-#endif /* TKPLATDECLS_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkPort.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkPort.h
deleted file mode 100644
index acaf7703740..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkPort.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * tkPort.h --
- *
- * This header file handles porting issues that occur because of
- * differences between systems. It reads in platform specific
- * portability files.
- *
- * Copyright (c) 1995 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkPort.h,v 1.3 2002/08/31 06:12:26 das Exp $
- */
-
-#ifndef _TKPORT
-#define _TKPORT
-
-#if defined(__WIN32__) || defined(_WIN32)
-#define NEED_REAL_STDIO
-#endif
-
-#ifndef _Lang
-#include "Lang.h"
-#endif
-
-#if defined(__WIN32__) && !defined(WIN32)
-#define WIN32
-#endif
-
-#if defined(__WIN32__) || defined(_WIN32)
-# include "tkWinPort.h"
-# ifndef strcasecmp
-# define strcasecmp(a,b) stricmp(a,b)
-# endif
-# ifdef __CYGWIN__
-# undef strcasecmp
-# endif
-#else
-# if defined(MAC_TCL)
-# include "tkMacPort.h"
-# elif defined(MAC_OSX_TK)
-# include "../macosx/tkMacOSXPort.h"
-# else
-# ifdef __PM__
-# include "tkOS2Port.h"
-# else
-# include "tkUnixPort.h"
-# endif
-# endif
-#endif
-
-#endif /* _TKPORT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkScale.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkScale.h
deleted file mode 100644
index 7936adfb18c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkScale.h
+++ /dev/null
@@ -1,257 +0,0 @@
-/*
- * tkScale.h --
- *
- * Declarations of types and functions used to implement
- * the scale widget.
- *
- * Copyright (c) 1996 by Sun Microsystems, Inc.
- * Copyright (c) 1999-2000 by Scriptics Corporation.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkScale.h,v 1.8 2000/04/14 08:33:16 hobbs Exp $
- */
-
-#ifndef _TKSCALE
-#define _TKSCALE
-
-#ifndef _TK
-#include "tk.h"
-#endif
-#include "tkVMacro.h"
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * Legal values for the "orient" field of TkScale records.
- */
-
-enum orient {
- ORIENT_HORIZONTAL, ORIENT_VERTICAL
-};
-
-/*
- * Legal values for the "state" field of TkScale records.
- */
-
-enum state {
- STATE_ACTIVE, STATE_DISABLED, STATE_NORMAL
-};
-
-/*
- * A data structure of the following type is kept for each scale
- * widget managed by this file:
- */
-
-typedef struct TkScale {
- Tk_Window tkwin; /* Window that embodies the scale. NULL
- * means that the window has been destroyed
- * but the data structures haven't yet been
- * cleaned up.*/
- Display *display; /* Display containing widget. Used, among
- * other things, so that resources can be
- * freed even after tkwin has gone away. */
- Tcl_Interp *interp; /* Interpreter associated with scale. */
- Tcl_Command widgetCmd; /* Token for scale's widget command. */
- Tk_OptionTable optionTable; /* Table that defines configuration options
- * available for this widget. */
- enum orient orient; /* Orientation for window (vertical or
- * horizontal). */
- int width; /* Desired narrow dimension of scale,
- * in pixels. */
- int length; /* Desired long dimension of scale,
- * in pixels. */
- double value; /* Current value of scale. */
- Tcl_Obj *varNamePtr; /* Name of variable or NULL.
- * If non-NULL, scale's value tracks
- * the contents of this variable and
- * vice versa. */
- double fromValue; /* Value corresponding to left or top of
- * scale. */
- double toValue; /* Value corresponding to right or bottom
- * of scale. */
- double tickInterval; /* Distance between tick marks;
- * 0 means don't display any tick marks. */
- double resolution; /* If > 0, all values are rounded to an
- * even multiple of this value. */
- int digits; /* Number of significant digits to print
- * in values. 0 means we get to choose the
- * number based on resolution and/or the
- * range of the scale. */
- char format[10]; /* Sprintf conversion specifier computed from
- * digits and other information. */
- double bigIncrement; /* Amount to use for large increments to
- * scale value. (0 means we pick a value). */
- Tcl_Obj *command; /* Command prefix to use when invoking Tcl
- * commands because the scale value changed.
- * NULL means don't invoke commands. */
- int repeatDelay; /* How long to wait before auto-repeating
- * on scrolling actions (in ms). */
- int repeatInterval; /* Interval between autorepeats (in ms). */
- char *label; /* Label to display above or to right of
- * scale; NULL means don't display a label. */
- int labelLength; /* Number of non-NULL chars. in label. */
- enum state state; /* Values are active, normal, or disabled.
- * Value of scale cannot be changed when
- * disabled. */
-
- /*
- * Information used when displaying widget:
- */
-
- int borderWidth; /* Width of 3-D border around window. */
- Tk_3DBorder bgBorder; /* Used for drawing slider and other
- * background areas. */
- Tk_3DBorder activeBorder; /* For drawing the slider when active. */
- int sliderRelief; /* Is slider to be drawn raised, sunken,
- * etc. */
- XColor *troughColorPtr; /* Color for drawing trough. */
- GC troughGC; /* For drawing trough. */
- GC copyGC; /* Used for copying from pixmap onto screen. */
- Tk_Font tkfont; /* Information about text font, or NULL. */
- XColor *textColorPtr; /* Color for drawing text. */
- GC textGC; /* GC for drawing text in normal mode. */
- int relief; /* Indicates whether window as a whole is
- * raised, sunken, or flat. */
- int highlightWidth; /* Width in pixels of highlight to draw
- * around widget when it has the focus.
- * <= 0 means don't draw a highlight. */
- Tk_3DBorder highlightBorder;/* Value of -highlightbackground option:
- * specifies background with which to draw 3-D
- * default ring and focus highlight area when
- * highlight is off. */
- XColor *highlightColorPtr; /* Color for drawing traversal highlight. */
- int inset; /* Total width of all borders, including
- * traversal highlight and 3-D border.
- * Indicates how much interior stuff must
- * be offset from outside edges to leave
- * room for borders. */
- int sliderLength; /* Length of slider, measured in pixels along
- * long dimension of scale. */
- int showValue; /* Non-zero means to display the scale value
- * below or to the left of the slider; zero
- * means don't display the value. */
-
- /*
- * Layout information for horizontal scales, assuming that window
- * gets the size it requested:
- */
-
- int horizLabelY; /* Y-coord at which to draw label. */
- int horizValueY; /* Y-coord at which to draw value text. */
- int horizTroughY; /* Y-coord of top of slider trough. */
- int horizTickY; /* Y-coord at which to draw tick text. */
- /*
- * Layout information for vertical scales, assuming that window
- * gets the size it requested:
- */
-
- int vertTickRightX; /* X-location of right side of tick-marks. */
- int vertValueRightX; /* X-location of right side of value string. */
- int vertTroughX; /* X-location of scale's slider trough. */
- int vertLabelX; /* X-location of origin of label. */
-
- /*
- * Miscellaneous information:
- */
-
- int fontHeight; /* Height of scale font. */
- Tk_Cursor cursor; /* Current cursor for window, or None. */
- Tcl_Obj *takeFocusPtr; /* Value of -takefocus option; not used in
- * the C code, but used by keyboard traversal
- * scripts. May be NULL. */
- int flags; /* Various flags; see below for
- * definitions. */
-} TkScale;
-
-/*
- * Flag bits for scales:
- *
- * REDRAW_SLIDER - 1 means slider (and numerical readout) need
- * to be redrawn.
- * REDRAW_OTHER - 1 means other stuff besides slider and value
- * need to be redrawn.
- * REDRAW_ALL - 1 means the entire widget needs to be redrawn.
- * REDRAW_PENDING - 1 means any sort of redraw is pending
- * ACTIVE - 1 means the widget is active (the mouse is
- * in its window).
- * INVOKE_COMMAND - 1 means the scale's command needs to be
- * invoked during the next redisplay (the
- * value of the scale has changed since the
- * last time the command was invoked).
- * SETTING_VAR - 1 means that the associated variable is
- * being set by us, so there's no need for
- * ScaleVarProc to do anything.
- * NEVER_SET - 1 means that the scale's value has never
- * been set before (so must invoke -command and
- * set associated variable even if the value
- * doesn't appear to have changed).
- * GOT_FOCUS - 1 means that the focus is currently in
- * this widget.
- * SCALE_DELETED - 1 means the scale widget is being deleted
- */
-
-#define REDRAW_SLIDER (1<<0)
-#define REDRAW_OTHER (1<<1)
-#define REDRAW_ALL (REDRAW_OTHER|REDRAW_SLIDER)
-#define REDRAW_PENDING (1<<2)
-#define ACTIVE (1<<3)
-#define INVOKE_COMMAND (1<<4)
-#define SETTING_VAR (1<<5)
-#define NEVER_SET (1<<6)
-#define GOT_FOCUS (1<<7)
-#define SCALE_DELETED (1<<8)
-
-/*
- * Symbolic values for the active parts of a slider. These are
- * the values that may be returned by the ScaleElement procedure.
- */
-
-#define OTHER 0
-#define TROUGH1 1
-#define SLIDER 2
-#define TROUGH2 3
-
-/*
- * Space to leave between scale area and text, and between text and
- * edge of window.
- */
-
-#define SPACING 2
-
-/*
- * How many characters of space to provide when formatting the
- * scale's value:
- */
-
-#define PRINT_CHARS 150
-
-/*
- * Declaration of procedures used in the implementation of the scale
- * widget.
- */
-
-EXTERN void TkEventuallyRedrawScale _ANSI_ARGS_((TkScale *scalePtr,
- int what));
-EXTERN double TkRoundToResolution _ANSI_ARGS_((TkScale *scalePtr,
- double value));
-EXTERN TkScale * TkpCreateScale _ANSI_ARGS_((Tk_Window tkwin));
-EXTERN void TkpDestroyScale _ANSI_ARGS_((TkScale *scalePtr));
-EXTERN void TkpDisplayScale _ANSI_ARGS_((ClientData clientData));
-EXTERN int TkpScaleElement _ANSI_ARGS_((TkScale *scalePtr,
- int x, int y));
-EXTERN void TkScaleSetValue _ANSI_ARGS_((TkScale *scalePtr,
- double value, int setVar, int invokeCommand));
-EXTERN double TkScalePixelToValue _ANSI_ARGS_((TkScale *scalePtr,
- int x, int y));
-EXTERN int TkScaleValueToPixel _ANSI_ARGS_((TkScale *scalePtr,
- double value));
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKSCALE */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkScrollbar.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkScrollbar.h
deleted file mode 100644
index bf2472fad06..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkScrollbar.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * tkScrollbar.h --
- *
- * Declarations of types and functions used to implement
- * the scrollbar widget.
- *
- * Copyright (c) 1996 by Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkScrollbar.h,v 1.6 2000/11/22 01:49:38 ericm Exp $
- */
-
-#ifndef _TKSCROLLBAR
-#define _TKSCROLLBAR
-
-#ifndef _TKINT
-#include "tkInt.h"
-#endif
-#include "tkVMacro.h"
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * A data structure of the following type is kept for each scrollbar
- * widget.
- */
-
-typedef struct TkScrollbar {
- Tk_Window tkwin; /* Window that embodies the scrollbar. NULL
- * means that the window has been destroyed
- * but the data structures haven't yet been
- * cleaned up.*/
- Display *display; /* Display containing widget. Used, among
- * other things, so that resources can be
- * freed even after tkwin has gone away. */
- Tcl_Interp *interp; /* Interpreter associated with scrollbar. */
- Tcl_Command widgetCmd; /* Token for scrollbar's widget command. */
- int vertical; /* Non-zero means vertical orientation
- * requested, zero means horizontal. */
- int width; /* Desired narrow dimension of scrollbar,
- * in pixels. */
- LangCallback *command; /* Command prefix to use when invoking
- * scrolling commands. NULL means don't
- * invoke commands. Malloc'ed. */
-#if 0
- int commandSize; /* Number of non-NULL bytes in command. */
-#endif
- int repeatDelay; /* How long to wait before auto-repeating
- * on scrolling actions (in ms). */
- int repeatInterval; /* Interval between autorepeats (in ms). */
- int jump; /* Value of -jump option. */
-
- /*
- * Information used when displaying widget:
- */
-
- int borderWidth; /* Width of 3-D borders. */
- Tk_3DBorder bgBorder; /* Used for drawing background (all flat
- * surfaces except for trough). */
- Tk_3DBorder activeBorder; /* For drawing backgrounds when active (i.e.
- * when mouse is positioned over element). */
- XColor *troughColorPtr; /* Color for drawing trough. */
- int relief; /* Indicates whether window as a whole is
- * raised, sunken, or flat. */
- int highlightWidth; /* Width in pixels of highlight to draw
- * around widget when it has the focus.
- * <= 0 means don't draw a highlight. */
- XColor *highlightBgColorPtr;
- /* Color for drawing traversal highlight
- * area when highlight is off. */
- XColor *highlightColorPtr; /* Color for drawing traversal highlight. */
- int inset; /* Total width of all borders, including
- * traversal highlight and 3-D border.
- * Indicates how much interior stuff must
- * be offset from outside edges to leave
- * room for borders. */
- int elementBorderWidth; /* Width of border to draw around elements
- * inside scrollbar (arrows and slider).
- * -1 means use borderWidth. */
- int arrowLength; /* Length of arrows along long dimension of
- * scrollbar, including space for a small gap
- * between the arrow and the slider.
- * Recomputed on window size changes. */
- int sliderFirst; /* Pixel coordinate of top or left edge
- * of slider area, including border. */
- int sliderLast; /* Coordinate of pixel just after bottom
- * or right edge of slider area, including
- * border. */
- int activeField; /* Names field to be displayed in active
- * colors, such as TOP_ARROW, or 0 for
- * no field. */
- int activeRelief; /* Value of -activeRelief option: relief
- * to use for active element. */
-
- /*
- * Information describing the application related to the scrollbar.
- * This information is provided by the application by invoking the
- * "set" widget command. This information can now be provided in
- * two ways: the "old" form (totalUnits, windowUnits, firstUnit,
- * and lastUnit), or the "new" form (firstFraction and lastFraction).
- * FirstFraction and lastFraction will always be valid, but
- * the old-style information is only valid if the NEW_STYLE_COMMANDS
- * flag is 0.
- */
-
- int totalUnits; /* Total dimension of application, in
- * units. Valid only if the NEW_STYLE_COMMANDS
- * flag isn't set. */
- int windowUnits; /* Maximum number of units that can be
- * displayed in the window at once. Valid
- * only if the NEW_STYLE_COMMANDS flag isn't
- * set. */
- int firstUnit; /* Number of last unit visible in
- * application's window. Valid only if the
- * NEW_STYLE_COMMANDS flag isn't set. */
- int lastUnit; /* Index of last unit visible in window.
- * Valid only if the NEW_STYLE_COMMANDS
- * flag isn't set. */
- double firstFraction; /* Position of first visible thing in window,
- * specified as a fraction between 0 and
- * 1.0. */
- double lastFraction; /* Position of last visible thing in window,
- * specified as a fraction between 0 and
- * 1.0. */
-
- /*
- * Miscellaneous information:
- */
-
- Tk_Cursor cursor; /* Current cursor for window, or None. */
- char *takeFocus; /* Value of -takefocus option; not used in
- * the C code, but used by keyboard traversal
- * scripts. Malloc'ed, but may be NULL. */
- int flags; /* Various flags; see below for
- * definitions. */
-} TkScrollbar;
-
-/*
- * Legal values for "activeField" field of Scrollbar structures. These
- * are also the return values from the ScrollbarPosition procedure.
- */
-
-#define OUTSIDE 0
-#define TOP_ARROW 1
-#define TOP_GAP 2
-#define SLIDER 3
-#define BOTTOM_GAP 4
-#define BOTTOM_ARROW 5
-
-/*
- * Flag bits for scrollbars:
- *
- * REDRAW_PENDING: Non-zero means a DoWhenIdle handler
- * has already been queued to redraw
- * this window.
- * NEW_STYLE_COMMANDS: Non-zero means the new style of commands
- * should be used to communicate with the
- * widget: ".t yview scroll 2 lines", instead
- * of ".t yview 40", for example.
- * GOT_FOCUS: Non-zero means this window has the input
- * focus.
- */
-
-#define REDRAW_PENDING 1
-#define NEW_STYLE_COMMANDS 2
-#define GOT_FOCUS 4
-
-/*
- * Declaration of scrollbar class procedures structure.
- */
-
-extern Tk_ClassProcs tkpScrollbarProcs;
-
-/*
- * Declaration of scrollbar configuration options.
- */
-
-extern Tk_ConfigSpec tkpScrollbarConfigSpecs[];
-
-/*
- * Declaration of procedures used in the implementation of the scrollbar
- * widget.
- */
-
-EXTERN void TkScrollbarEventProc _ANSI_ARGS_((
- ClientData clientData, XEvent *eventPtr));
-EXTERN void TkScrollbarEventuallyRedraw _ANSI_ARGS_((
- TkScrollbar *scrollPtr));
-EXTERN void TkpComputeScrollbarGeometry _ANSI_ARGS_((
- TkScrollbar *scrollPtr));
-EXTERN TkScrollbar * TkpCreateScrollbar _ANSI_ARGS_((Tk_Window tkwin));
-EXTERN void TkpDestroyScrollbar _ANSI_ARGS_((
- TkScrollbar *scrollPtr));
-EXTERN void TkpDisplayScrollbar _ANSI_ARGS_((
- ClientData clientData));
-EXTERN void TkpConfigureScrollbar _ANSI_ARGS_((
- TkScrollbar *scrollPtr));
-EXTERN int TkpScrollbarPosition _ANSI_ARGS_((
- TkScrollbar *scrollPtr, int x, int y));
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKSCROLLBAR */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkSelect.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkSelect.h
deleted file mode 100644
index 7ea06bb84bb..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkSelect.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * tkSelect.h --
- *
- * Declarations of types shared among the files that implement
- * selection support.
- *
- * Copyright (c) 1995 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkSelect.h,v 1.4 1999/05/25 20:40:54 stanton Exp $
- */
-
-#ifndef _TKSELECT
-#define _TKSELECT
-
-/*
- * When a selection is owned by a window on a given display, one of the
- * following structures is present on a list of current selections in the
- * display structure. The structure is used to record the current owner of
- * a selection for use in later retrieval requests. There is a list of
- * such structures because a display can have multiple different selections
- * active at the same time.
- */
-
-typedef struct TkSelectionInfo {
- Atom selection; /* Selection name, e.g. XA_PRIMARY. */
- Tk_Window owner; /* Current owner of this selection. */
- int serial; /* Serial number of last XSelectionSetOwner
- * request made to server for this
- * selection (used to filter out redundant
- * SelectionClear events). */
- Time time; /* Timestamp used to acquire selection. */
- Tk_LostSelProc *clearProc; /* Procedure to call when owner loses
- * selection. */
- ClientData clearData; /* Info to pass to clearProc. */
- struct TkSelectionInfo *nextPtr;
- /* Next in list of current selections on
- * this display. NULL means end of list */
-} TkSelectionInfo;
-
-/*
- * One of the following structures exists for each selection handler
- * created for a window by calling Tk_CreateSelHandler. The handlers
- * are linked in a list rooted in the TkWindow structure.
- */
-
-typedef struct TkSelHandler {
- Atom selection; /* Selection name, e.g. XA_PRIMARY */
- Atom target; /* Target type for selection
- * conversion, such as TARGETS or
- * STRING. */
- Atom format; /* Format in which selection
- * info will be returned, such
- * as STRING or ATOM. */
- Tk_XSelectionProc *proc; /* Procedure to generate selection
- * in this format. */
- ClientData clientData; /* Argument to pass to proc. */
- int size; /* Size of units returned by proc
- * (8 for STRING, 32 for almost
- * anything else). */
- struct TkSelHandler *nextPtr;
- /* Next selection handler associated
- * with same window (NULL for end of
- * list). */
-} TkSelHandler;
-
-/*
- * When the selection is being retrieved, one of the following
- * structures is present on a list of pending selection retrievals.
- * The structure is used to communicate between the background
- * procedure that requests the selection and the foreground
- * event handler that processes the events in which the selection
- * is returned. There is a list of such structures so that there
- * can be multiple simultaneous selection retrievals (e.g. on
- * different displays).
- */
-
-typedef struct TkSelRetrievalInfo {
- Tcl_Interp *interp; /* Interpreter for error reporting. */
- TkWindow *winPtr; /* Window used as requestor for
- * selection. */
- Atom selection; /* Selection being requested. */
- Atom property; /* Property where selection will appear. */
- Atom target; /* Desired form for selection. */
- Tk_GetXSelProc *proc; /* Procedure to call to handle pieces
- * of selection. */
- ClientData clientData; /* Argument for proc. */
- int result; /* Initially -1. Set to a Tcl
- * return value once the selection
- * has been retrieved. */
- Tcl_TimerToken timeout; /* Token for current timeout procedure. */
- int idleTime; /* Number of seconds that have gone by
- * without hearing anything from the
- * selection owner. */
- Tcl_EncodingState encState; /* Holds intermediate state during translations
- * of data that cross buffer boundaries. */
- int encFlags; /* Encoding translation state flags. */
- Tcl_DString buf; /* Buffer to hold translation data. */
- struct TkSelRetrievalInfo *nextPtr;
- /* Next in list of all pending
- * selection retrievals. NULL means
- * end of list. */
-} TkSelRetrievalInfo;
-
-/*
- * The clipboard contains a list of buffers of various types and formats.
- * All of the buffers of a given type will be returned in sequence when the
- * CLIPBOARD selection is retrieved. All buffers of a given type on the
- * same clipboard must have the same format. The TkClipboardTarget structure
- * is used to record the information about a chain of buffers of the same
- * type.
- */
-
-typedef struct TkClipboardBuffer {
- char *buffer; /* Null terminated data buffer. */
- long length; /* Length of string in buffer. */
- struct TkClipboardBuffer *nextPtr; /* Next in list of buffers. NULL
- * means end of list . */
-} TkClipboardBuffer;
-
-typedef struct TkClipboardTarget {
- Atom type; /* Type conversion supported. */
- Atom format; /* Representation used for data. */
- TkClipboardBuffer *firstBufferPtr; /* First in list of data buffers. */
- TkClipboardBuffer *lastBufferPtr; /* Last in list of clipboard buffers.
- * Used to speed up appends. */
- struct TkClipboardTarget *nextPtr; /* Next in list of targets on
- * clipboard. NULL means end of
- * list. */
-} TkClipboardTarget;
-
-/*
- * It is possible for a Tk_SelectionProc to delete the handler that it
- * represents. If this happens, the code that is retrieving the selection
- * needs to know about it so it doesn't use the now-defunct handler
- * structure. One structure of the following form is created for each
- * retrieval in progress, so that the retriever can find out if its
- * handler is deleted. All of the pending retrievals (if there are more
- * than one) are linked into a list.
- */
-
-typedef struct TkSelInProgress {
- TkSelHandler *selPtr; /* Handler being executed. If this handler
- * is deleted, the field is set to NULL. */
- struct TkSelInProgress *nextPtr;
- /* Next higher nested search. */
-} TkSelInProgress;
-
-/*
- * Chunk size for retrieving selection. It's defined both in
- * words and in bytes; the word size is used to allocate
- * buffer space that's guaranteed to be word-aligned and that
- * has an extra character for the terminating NULL.
- */
-
-#define TK_SEL_BYTES_AT_ONCE 4000
-#define TK_SEL_WORDS_AT_ONCE 1001
-
-/*
- * Declarations for procedures that are used by the selection-related files
- * but shouldn't be used anywhere else in Tk (or by Tk clients):
- */
-
-extern TkSelInProgress *
- TkSelGetInProgress _ANSI_ARGS_((void));
-extern void TkSelSetInProgress _ANSI_ARGS_((
- TkSelInProgress *pendingPtr));
-
-extern void TkSelClearSelection _ANSI_ARGS_((Tk_Window tkwin,
- XEvent *eventPtr));
-extern int TkSelDefaultSelection _ANSI_ARGS_((
- TkSelectionInfo *infoPtr, Atom target,
- long *lbuffer, int maxBytes, Atom *typePtr, int *formatPtr));
-extern int TkSelGetSelection _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Window tkwin, Atom selection, Atom target,
- Tk_GetXSelProc *proc, ClientData clientData));
-char * TkSelCvtFromX _ANSI_ARGS_((long *propPtr, int numValues,
- Atom type, Tk_Window tkwin));
-int TkSelCvtToX _ANSI_ARGS_((long *buffer, char *string, Atom type,
- Tk_Window tkwin, int maxBytes));
-#ifndef TkSelUpdateClipboard
-extern void TkSelUpdateClipboard _ANSI_ARGS_((TkWindow *winPtr,
- TkClipboardTarget *targetPtr));
-#endif
-#endif /* _TKSELECT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkText.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkText.h
deleted file mode 100644
index 0c715b6986e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkText.h
+++ /dev/null
@@ -1,927 +0,0 @@
-/*
- * tkText.h --
- *
- * Declarations shared among the files that implement text
- * widgets.
- *
- * Copyright (c) 1992-1994 The Regents of the University of California.
- * Copyright (c) 1994-1995 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkText.h,v 1.13 2002/12/27 23:43:38 davygrvy Exp $
- */
-
-#ifndef _TKTEXT
-#define _TKTEXT
-
-#ifndef _TK
-#include "tk.h"
-#endif
-
-#ifndef _TKUNDO
-#include "tkUndo.h"
-#endif
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * Opaque types for structures whose guts are only needed by a single
- * file:
- */
-
-typedef struct TkTextBTree_ *TkTextBTree;
-
-/*
- * The data structure below defines a single line of text (from newline
- * to newline, not necessarily what appears on one line of the screen).
- */
-
-typedef struct TkTextLine {
- struct Node *parentPtr; /* Pointer to parent node containing
- * line. */
- struct TkTextLine *nextPtr; /* Next in linked list of lines with
- * same parent node in B-tree. NULL
- * means end of list. */
- struct TkTextSegment *segPtr; /* First in ordered list of segments
- * that make up the line. */
-} TkTextLine;
-
-/*
- * -----------------------------------------------------------------------
- * Segments: each line is divided into one or more segments, where each
- * segment is one of several things, such as a group of characters, a
- * tag toggle, a mark, or an embedded widget. Each segment starts with
- * a standard header followed by a body that varies from type to type.
- * -----------------------------------------------------------------------
- */
-
-/*
- * The data structure below defines the body of a segment that represents
- * a tag toggle. There is one of these structures at both the beginning
- * and end of each tagged range.
- */
-
-typedef struct TkTextToggle {
- struct TkTextTag *tagPtr; /* Tag that starts or ends here. */
- int inNodeCounts; /* 1 means this toggle has been
- * accounted for in node toggle
- * counts; 0 means it hasn't, yet. */
-} TkTextToggle;
-
-/*
- * The data structure below defines line segments that represent
- * marks. There is one of these for each mark in the text.
- */
-
-typedef struct TkTextMark {
- struct TkText *textPtr; /* Overall information about text
- * widget. */
- TkTextLine *linePtr; /* Line structure that contains the
- * segment. */
- Tcl_HashEntry *hPtr; /* Pointer to hash table entry for mark
- * (in textPtr->markTable). */
-} TkTextMark;
-
-/*
- * A structure of the following type holds information for each window
- * embedded in a text widget. This information is only used by the
- * file tkTextWind.c
- */
-
-typedef struct TkTextEmbWindow {
- struct TkText *textPtr; /* Information about the overall text
- * widget. */
- TkTextLine *linePtr; /* Line structure that contains this
- * window. */
- Tk_Window tkwin; /* Window for this segment. NULL
- * means that the window hasn't
- * been created yet. */
- LangCallback *create; /* Script to create window on-demand.
- * NULL means no such script.
- * Malloc-ed. */
- int align; /* How to align window in vertical
- * space. See definitions in
- * tkTextWind.c. */
- int padX, padY; /* Padding to leave around each side
- * of window, in pixels. */
- int stretch; /* Should window stretch to fill
- * vertical space of line (except for
- * pady)? 0 or 1. */
- int chunkCount; /* Number of display chunks that
- * refer to this window. */
- int displayed; /* Non-zero means that the window
- * has been displayed on the screen
- * recently. */
-} TkTextEmbWindow;
-
-/*
- * A structure of the following type holds information for each image
- * embedded in a text widget. This information is only used by the
- * file tkTextImage.c
- */
-
-typedef struct TkTextEmbImage {
- struct TkText *textPtr; /* Information about the overall text
- * widget. */
- TkTextLine *linePtr; /* Line structure that contains this
- * image. */
- char *imageString; /* Name of the image for this segment */
- char *imageName; /* Name used by text widget to identify
- * this image. May be unique-ified */
- char *name; /* Name used in the hash table.
- * used by "image names" to identify
- * this instance of the image */
- Tk_Image image; /* Image for this segment. NULL
- * means that the image hasn't
- * been created yet. */
- int align; /* How to align image in vertical
- * space. See definitions in
- * tkTextImage.c. */
- int padX, padY; /* Padding to leave around each side
- * of image, in pixels. */
- int chunkCount; /* Number of display chunks that
- * refer to this image. */
-} TkTextEmbImage;
-
-/*
- * The data structure below defines line segments.
- */
-
-typedef struct TkTextSegment {
- struct Tk_SegType *typePtr; /* Pointer to record describing
- * segment's type. */
- struct TkTextSegment *nextPtr; /* Next in list of segments for this
- * line, or NULL for end of list. */
- int size; /* Size of this segment (# of bytes
- * of index space it occupies). */
- union {
- char chars[4]; /* Characters that make up character
- * info. Actual length varies to
- * hold as many characters as needed.*/
- TkTextToggle toggle; /* Information about tag toggle. */
- TkTextMark mark; /* Information about mark. */
- TkTextEmbWindow ew; /* Information about embedded
- * window. */
- TkTextEmbImage ei; /* Information about embedded
- * image. */
- } body;
-} TkTextSegment;
-
-/*
- * Data structures of the type defined below are used during the
- * execution of Tcl commands to keep track of various interesting
- * places in a text. An index is only valid up until the next
- * modification to the character structure of the b-tree so they
- * can't be retained across Tcl commands. However, mods to marks
- * or tags don't invalidate indices.
- */
-
-typedef struct TkTextIndex {
- TkTextBTree tree; /* Tree containing desired position. */
- TkTextLine *linePtr; /* Pointer to line containing position
- * of interest. */
- int byteIndex; /* Index within line of desired
- * character (0 means first one). */
-} TkTextIndex;
-
-/*
- * Types for procedure pointers stored in TkTextDispChunk strutures:
- */
-
-typedef struct TkTextDispChunk TkTextDispChunk;
-
-typedef void Tk_ChunkDisplayProc _ANSI_ARGS_((
- TkTextDispChunk *chunkPtr, int x, int y,
- int height, int baseline, Display *display,
- Drawable dst, int screenY));
-typedef void Tk_ChunkUndisplayProc _ANSI_ARGS_((
- struct TkText *textPtr,
- TkTextDispChunk *chunkPtr));
-typedef int Tk_ChunkMeasureProc _ANSI_ARGS_((
- TkTextDispChunk *chunkPtr, int x));
-typedef void Tk_ChunkBboxProc _ANSI_ARGS_((
- TkTextDispChunk *chunkPtr, int index, int y,
- int lineHeight, int baseline, int *xPtr,
- int *yPtr, int *widthPtr, int *heightPtr));
-
-/*
- * The structure below represents a chunk of stuff that is displayed
- * together on the screen. This structure is allocated and freed by
- * generic display code but most of its fields are filled in by
- * segment-type-specific code.
- */
-
-struct TkTextDispChunk {
- /*
- * The fields below are set by the type-independent code before
- * calling the segment-type-specific layoutProc. They should not
- * be modified by segment-type-specific code.
- */
-
- int x; /* X position of chunk, in pixels.
- * This position is measured from the
- * left edge of the logical line,
- * not from the left edge of the
- * window (i.e. it doesn't change
- * under horizontal scrolling). */
- struct TkTextDispChunk *nextPtr; /* Next chunk in the display line
- * or NULL for the end of the list. */
- struct TextStyle *stylePtr; /* Display information, known only
- * to tkTextDisp.c. */
-
- /*
- * The fields below are set by the layoutProc that creates the
- * chunk.
- */
-
- Tk_ChunkDisplayProc *displayProc; /* Procedure to invoke to draw this
- * chunk on the display or an
- * off-screen pixmap. */
- Tk_ChunkUndisplayProc *undisplayProc;
- /* Procedure to invoke when segment
- * ceases to be displayed on screen
- * anymore. */
- Tk_ChunkMeasureProc *measureProc; /* Procedure to find character under
- * a given x-location. */
- Tk_ChunkBboxProc *bboxProc; /* Procedure to find bounding box
- * of character in chunk. */
- int numBytes; /* Number of bytes that will be
- * displayed in the chunk. */
- int minAscent; /* Minimum space above the baseline
- * needed by this chunk. */
- int minDescent; /* Minimum space below the baseline
- * needed by this chunk. */
- int minHeight; /* Minimum total line height needed
- * by this chunk. */
- int width; /* Width of this chunk, in pixels.
- * Initially set by chunk-specific
- * code, but may be increased to
- * include tab or extra space at end
- * of line. */
- int breakIndex; /* Index within chunk of last
- * acceptable position for a line
- * (break just before this byte index).
- * <= 0 means don't break during or
- * immediately after this chunk. */
- ClientData clientData; /* Additional information for use
- * of displayProc and undisplayProc. */
-};
-
-/*
- * One data structure of the following type is used for each tag in a
- * text widget. These structures are kept in textPtr->tagTable and
- * referred to in other structures.
- */
-
-typedef enum { TEXT_WRAPMODE_NULL, TEXT_WRAPMODE_NONE,
- TEXT_WRAPMODE_CHAR, TEXT_WRAPMODE_WORD
-} TkWrapMode;
-
-EXTERN Tk_CustomOption textWrapModeOption;
-
-typedef struct TkTextTag {
- char *name; /* Name of this tag. This field is actually
- * a pointer to the key from the entry in
- * textPtr->tagTable, so it needn't be freed
- * explicitly. */
- int priority; /* Priority of this tag within widget. 0
- * means lowest priority. Exactly one tag
- * has each integer value between 0 and
- * numTags-1. */
- struct Node *tagRootPtr; /* Pointer into the B-Tree at the lowest
- * node that completely dominates the ranges
- * of text occupied by the tag. At this
- * node there is no information about the
- * tag. One or more children of the node
- * do contain information about the tag. */
- int toggleCount; /* Total number of tag toggles */
-
- /*
- * Information for displaying text with this tag. The information
- * belows acts as an override on information specified by lower-priority
- * tags. If no value is specified, then the next-lower-priority tag
- * on the text determins the value. The text widget itself provides
- * defaults if no tag specifies an override.
- */
-
- Tk_3DBorder border; /* Used for drawing background. NULL means
- * no value specified here. */
- char *bdString; /* -borderwidth option string (malloc-ed).
- * NULL means option not specified. */
- int borderWidth; /* Width of 3-D border for background. */
- char *reliefString; /* -relief option string (malloc-ed).
- * NULL means option not specified. */
- int relief; /* 3-D relief for background. */
- Pixmap bgStipple; /* Stipple bitmap for background. None
- * means no value specified here. */
- XColor *fgColor; /* Foreground color for text. NULL means
- * no value specified here. */
- Tk_Font tkfont; /* Font for displaying text. NULL means
- * no value specified here. */
- Pixmap fgStipple; /* Stipple bitmap for text and other
- * foreground stuff. None means no value
- * specified here.*/
- char *justifyString; /* -justify option string (malloc-ed).
- * NULL means option not specified. */
- Tk_Justify justify; /* How to justify text: TK_JUSTIFY_LEFT,
- * TK_JUSTIFY_RIGHT, or TK_JUSTIFY_CENTER.
- * Only valid if justifyString is non-NULL. */
- char *lMargin1String; /* -lmargin1 option string (malloc-ed).
- * NULL means option not specified. */
- int lMargin1; /* Left margin for first display line of
- * each text line, in pixels. Only valid
- * if lMargin1String is non-NULL. */
- char *lMargin2String; /* -lmargin2 option string (malloc-ed).
- * NULL means option not specified. */
- int lMargin2; /* Left margin for second and later display
- * lines of each text line, in pixels. Only
- * valid if lMargin2String is non-NULL. */
- char *offsetString; /* -offset option string (malloc-ed).
- * NULL means option not specified. */
- int offset; /* Vertical offset of text's baseline from
- * baseline of line. Used for superscripts
- * and subscripts. Only valid if
- * offsetString is non-NULL. */
- Tcl_Obj * overstrikeString; /* -overstrike option string (malloc-ed).
- * NULL means option not specified. */
- int overstrike; /* Non-zero means draw horizontal line through
- * middle of text. Only valid if
- * overstrikeString is non-NULL. */
- char *rMarginString; /* -rmargin option string (malloc-ed).
- * NULL means option not specified. */
- int rMargin; /* Right margin for text, in pixels. Only
- * valid if rMarginString is non-NULL. */
- char *spacing1String; /* -spacing1 option string (malloc-ed).
- * NULL means option not specified. */
- int spacing1; /* Extra spacing above first display
- * line for text line. Only valid if
- * spacing1String is non-NULL. */
- char *spacing2String; /* -spacing2 option string (malloc-ed).
- * NULL means option not specified. */
- int spacing2; /* Extra spacing between display
- * lines for the same text line. Only valid
- * if spacing2String is non-NULL. */
- char *spacing3String; /* -spacing2 option string (malloc-ed).
- * NULL means option not specified. */
- int spacing3; /* Extra spacing below last display
- * line for text line. Only valid if
- * spacing3String is non-NULL. */
- Tcl_Obj * tabString; /* -tabs option string (malloc-ed).
- * NULL means option not specified. */
- struct TkTextTabArray *tabArrayPtr;
- /* Info about tabs for tag (malloc-ed)
- * or NULL. Corresponds to tabString. */
- Tcl_Obj * underlineString; /* -underline option string (malloc-ed).
- * NULL means option not specified. */
- int underline; /* Non-zero means draw underline underneath
- * text. Only valid if underlineString is
- * non-NULL. */
- TkWrapMode wrapMode; /* How to handle wrap-around for this tag.
- * Must be TEXT_WRAPMODE_CHAR,
- * TEXT_WRAPMODE_NONE, TEXT_WRAPMODE_WORD,
- * or TEXT_WRAPMODE_NULL to use wrapmode for
- * whole widget. */
- Tcl_Obj * elideString; /* -elide option string (malloc-ed).
- * NULL means option not specified. */
- int elide; /* Non-zero means that data under this tag
- * should not be displayed. */
- int affectsDisplay; /* Non-zero means that this tag affects the
- * way information is displayed on the screen
- * (so need to redisplay if tag changes). */
- Tcl_Obj * userData; /* arbitary user data */
-} TkTextTag;
-
-#define TK_TAG_AFFECTS_DISPLAY 0x1
-#define TK_TAG_UNDERLINE 0x2
-#define TK_TAG_JUSTIFY 0x4
-#define TK_TAG_OFFSET 0x10
-
-/*
- * The data structure below is used for searching a B-tree for transitions
- * on a single tag (or for all tag transitions). No code outside of
- * tkTextBTree.c should ever modify any of the fields in these structures,
- * but it's OK to use them for read-only information.
- */
-
-typedef struct TkTextSearch {
- TkTextIndex curIndex; /* Position of last tag transition
- * returned by TkBTreeNextTag, or
- * index of start of segment
- * containing starting position for
- * search if TkBTreeNextTag hasn't
- * been called yet, or same as
- * stopIndex if search is over. */
- TkTextSegment *segPtr; /* Actual tag segment returned by last
- * call to TkBTreeNextTag, or NULL if
- * TkBTreeNextTag hasn't returned
- * anything yet. */
- TkTextSegment *nextPtr; /* Where to resume search in next
- * call to TkBTreeNextTag. */
- TkTextSegment *lastPtr; /* Stop search before just before
- * considering this segment. */
- TkTextTag *tagPtr; /* Tag to search for (or tag found, if
- * allTags is non-zero). */
- int linesLeft; /* Lines left to search (including
- * curIndex and stopIndex). When
- * this becomes <= 0 the search is
- * over. */
- int allTags; /* Non-zero means ignore tag check:
- * search for transitions on all
- * tags. */
-} TkTextSearch;
-
-/*
- * The following data structure describes a single tab stop.
- */
-
-typedef enum {LEFT, RIGHT, CENTER, NUMERIC} TkTextTabAlign;
-
-typedef struct TkTextTab {
- int location; /* Offset in pixels of this tab stop
- * from the left margin (lmargin2) of
- * the text. */
- TkTextTabAlign alignment; /* Where the tab stop appears relative
- * to the text. */
-} TkTextTab;
-
-typedef struct TkTextTabArray {
- int numTabs; /* Number of tab stops. */
- TkTextTab tabs[1]; /* Array of tabs. The actual size
- * will be numTabs. THIS FIELD MUST
- * BE THE LAST IN THE STRUCTURE. */
-} TkTextTabArray;
-
-/* enum definining the edit modes of */
-
-typedef enum {
- TK_TEXT_EDIT_INSERT, /* insert mode */
- TK_TEXT_EDIT_DELETE, /* delete mode */
- TK_TEXT_EDIT_OTHER /* none of the above */
-} TkTextEditMode;
-
-/*
- * A data structure of the following type is kept for each text widget that
- * currently exists for this process:
- */
-
-typedef struct TkText {
- Tk_Window tkwin; /* Window that embodies the text. NULL
- * means that the window has been destroyed
- * but the data structures haven't yet been
- * cleaned up.*/
- Display *display; /* Display for widget. Needed, among other
- * things, to allow resources to be freed
- * even after tkwin has gone away. */
- Tcl_Interp *interp; /* Interpreter associated with widget. Used
- * to delete widget command. */
- Tcl_Command widgetCmd; /* Token for text's widget command. */
- TkTextBTree tree; /* B-tree representation of text and tags for
- * widget. */
- Tcl_HashTable tagTable; /* Hash table that maps from tag names to
- * pointers to TkTextTag structures. */
- int numTags; /* Number of tags currently defined for
- * widget; needed to keep track of
- * priorities. */
- Tcl_HashTable markTable; /* Hash table that maps from mark names to
- * pointers to mark segments. */
- Tcl_HashTable windowTable; /* Hash table that maps from window names
- * to pointers to window segments. If a
- * window segment doesn't yet have an
- * associated window, there is no entry for
- * it here. */
- Tcl_HashTable imageTable; /* Hash table that maps from image names
- * to pointers to image segments. If an
- * image segment doesn't yet have an
- * associated image, there is no entry for
- * it here. */
- int state; /* Either STATE_NORMAL or STATE_DISABLED. A
- * text widget is read-only when disabled. */
-
- /*
- * Default information for displaying (may be overridden by tags
- * applied to ranges of characters).
- */
-
- Tk_3DBorder border; /* Structure used to draw 3-D border and
- * default background. */
- int borderWidth; /* Width of 3-D border to draw around entire
- * widget. */
- int padX, padY; /* Padding between text and window border. */
- int relief; /* 3-d effect for border around entire
- * widget: TK_RELIEF_RAISED etc. */
- int highlightWidth; /* Width in pixels of highlight to draw
- * around widget when it has the focus.
- * <= 0 means don't draw a highlight. */
- XColor *highlightBgColorPtr;
- /* Color for drawing traversal highlight
- * area when highlight is off. */
- XColor *highlightColorPtr; /* Color for drawing traversal highlight. */
- Tk_Cursor cursor; /* Current cursor for window, or None. */
- XColor *fgColor; /* Default foreground color for text. */
- Tk_Font tkfont; /* Default font for displaying text. */
- int charWidth; /* Width of average character in default
- * font. */
- int spacing1; /* Default extra spacing above first display
- * line for each text line. */
- int spacing2; /* Default extra spacing between display lines
- * for the same text line. */
- int spacing3; /* Default extra spacing below last display
- * line for each text line. */
- Tcl_Obj * tabOptionString; /* Value of -tabs option string (malloc'ed). */
- TkTextTabArray *tabArrayPtr;
- /* Information about tab stops (malloc'ed).
- * NULL means perform default tabbing
- * behavior. */
-
- /*
- * Additional information used for displaying:
- */
-
- TkWrapMode wrapMode; /* How to handle wrap-around. Must be
- * TEXT_WRAPMODE_CHAR, TEXT_WRAPMODE_NONE, or
- * TEXT_WRAPMODE_WORD. */
- int width, height; /* Desired dimensions for window, measured
- * in characters. */
- int setGrid; /* Non-zero means pass gridding information
- * to window manager. */
- int prevWidth, prevHeight; /* Last known dimensions of window; used to
- * detect changes in size. */
- TkTextIndex topIndex; /* Identifies first character in top display
- * line of window. */
- struct TextDInfo *dInfoPtr; /* Information maintained by tkTextDisp.c. */
-
- /*
- * Information related to selection.
- */
-
- TkTextTag *selTagPtr; /* Pointer to "sel" tag. Used to tell when
- * a new selection has been made. */
- Tk_3DBorder selBorder; /* Border and background for selected
- * characters. This is a copy of information
- * in *cursorTagPtr, so it shouldn't be
- * explicitly freed. */
- char *selBdString; /* Value of -selectborderwidth option, or NULL
- * if not specified (malloc'ed). */
- XColor *selFgColorPtr; /* Foreground color for selected text.
- * This is a copy of information in
- * *cursorTagPtr, so it shouldn't be
- * explicitly freed. */
- int exportSelection; /* Non-zero means tie "sel" tag to X
- * selection. */
- TkTextIndex selIndex; /* Used during multi-pass selection retrievals.
- * This index identifies the next character
- * to be returned from the selection. */
- int abortSelections; /* Set to 1 whenever the text is modified
- * in a way that interferes with selection
- * retrieval: used to abort incremental
- * selection retrievals. */
- int selOffset; /* Offset in selection corresponding to
- * selLine and selCh. -1 means neither
- * this information nor selIndex is of any
- * use. */
-
- /*
- * Information related to insertion cursor:
- */
-
- TkTextSegment *insertMarkPtr;
- /* Points to segment for "insert" mark. */
- Tk_3DBorder insertBorder; /* Used to draw vertical bar for insertion
- * cursor. */
- int insertWidth; /* Total width of insert cursor. */
- int insertBorderWidth; /* Width of 3-D border around insert cursor. */
- int insertOnTime; /* Number of milliseconds cursor should spend
- * in "on" state for each blink. */
- int insertOffTime; /* Number of milliseconds cursor should spend
- * in "off" state for each blink. */
- Tcl_TimerToken insertBlinkHandler;
- /* Timer handler used to blink cursor on and
- * off. */
-
- /*
- * Information used for event bindings associated with tags:
- */
-
- Tk_BindingTable bindingTable;
- /* Table of all bindings currently defined
- * for this widget. NULL means that no
- * bindings exist, so the table hasn't been
- * created. Each "object" used for this
- * table is the address of a tag. */
- TkTextSegment *currentMarkPtr;
- /* Pointer to segment for "current" mark,
- * or NULL if none. */
- XEvent pickEvent; /* The event from which the current character
- * was chosen. Must be saved so that we
- * can repick after modifications to the
- * text. */
- int numCurTags; /* Number of tags associated with character
- * at current mark. */
- TkTextTag **curTagArrayPtr; /* Pointer to array of tags for current
- * mark, or NULL if none. */
-
- /*
- * Miscellaneous additional information:
- */
-
- char *takeFocus; /* Value of -takeFocus option; not used in
- * the C code, but used by keyboard traversal
- * scripts. Malloc'ed, but may be NULL. */
- LangCallback *xScrollCmd; /* Prefix of command to issue to update
- * horizontal scrollbar when view changes. */
- LangCallback *yScrollCmd; /* Prefix of command to issue to update
- * vertical scrollbar when view changes. */
- int flags; /* Miscellaneous flags; see below for
- * definitions. */
-
- /*
- * Information related to the undo/redo functonality
- */
-
- TkUndoRedoStack * undoStack; /* The undo/redo stack */
-
- int undo; /* non zero means the undo/redo behaviour is
- * enabled */
-
- int maxUndo; /* The maximum depth of the undo stack expressed
- * as the maximum number of compound statements */
-
- int autoSeparators; /* non zero means the separatorss will be
- * inserted automatically */
-
- int modifiedSet; /* Flag indicating that the 'dirtynesss' of
- * the text widget has been expplicitly set.
- */
-
- int isDirty; /* Flag indicating the 'dirtynesss' of the text
- * widget. If the flag is not zero, unsaved
- * modifications have been applied to the
- * text widget */
-
- int isDirtyIncrement; /* Amount with which the isDirty flag is
- * incremented every edit action
- */
-
- TkTextEditMode lastEditMode; /* Keeps track of what the last edit mode was
- */
-
-} TkText;
-
-/*
- * Flag values for TkText records:
- *
- * GOT_SELECTION: Non-zero means we've already claimed the
- * selection.
- * INSERT_ON: Non-zero means insertion cursor should be
- * displayed on screen.
- * GOT_FOCUS: Non-zero means this window has the input
- * focus.
- * BUTTON_DOWN: 1 means that a mouse button is currently
- * down; this is used to implement grabs
- * for the duration of button presses.
- * UPDATE_SCROLLBARS: Non-zero means scrollbar(s) should be updated
- * during next redisplay operation.
- */
-
-#define GOT_SELECTION 1
-#define INSERT_ON 2
-#define GOT_FOCUS 4
-#define BUTTON_DOWN 8
-#define UPDATE_SCROLLBARS 0x10
-#define NEED_REPICK 0x20
-
-/*
- * Records of the following type define segment types in terms of
- * a collection of procedures that may be called to manipulate
- * segments of that type.
- */
-
-typedef TkTextSegment * Tk_SegSplitProc _ANSI_ARGS_((
- struct TkTextSegment *segPtr, int index));
-typedef int Tk_SegDeleteProc _ANSI_ARGS_((
- struct TkTextSegment *segPtr,
- TkTextLine *linePtr, int treeGone));
-typedef TkTextSegment * Tk_SegCleanupProc _ANSI_ARGS_((
- struct TkTextSegment *segPtr, TkTextLine *linePtr));
-typedef void Tk_SegLineChangeProc _ANSI_ARGS_((
- struct TkTextSegment *segPtr, TkTextLine *linePtr));
-typedef int Tk_SegLayoutProc _ANSI_ARGS_((struct TkText *textPtr,
- struct TkTextIndex *indexPtr, TkTextSegment *segPtr,
- int offset, int maxX, int maxChars,
- int noCharsYet, TkWrapMode wrapMode,
- struct TkTextDispChunk *chunkPtr));
-typedef void Tk_SegCheckProc _ANSI_ARGS_((TkTextSegment *segPtr,
- TkTextLine *linePtr));
-
-typedef struct Tk_SegType {
- char *name; /* Name of this kind of segment. */
- int leftGravity; /* If a segment has zero size (e.g. a
- * mark or tag toggle), does it
- * attach to character to its left
- * or right? 1 means left, 0 means
- * right. */
- Tk_SegSplitProc *splitProc; /* Procedure to split large segment
- * into two smaller ones. */
- Tk_SegDeleteProc *deleteProc; /* Procedure to call to delete
- * segment. */
- Tk_SegCleanupProc *cleanupProc; /* After any change to a line, this
- * procedure is invoked for all
- * segments left in the line to
- * perform any cleanup they wish
- * (e.g. joining neighboring
- * segments). */
- Tk_SegLineChangeProc *lineChangeProc;
- /* Invoked when a segment is about
- * to be moved from its current line
- * to an earlier line because of
- * a deletion. The linePtr is that
- * for the segment's old line.
- * CleanupProc will be invoked after
- * the deletion is finished. */
- Tk_SegLayoutProc *layoutProc; /* Returns size information when
- * figuring out what to display in
- * window. */
- Tk_SegCheckProc *checkProc; /* Called during consistency checks
- * to check internal consistency of
- * segment. */
-} Tk_SegType;
-
-/*
- * The constant below is used to specify a line when what is really
- * wanted is the entire text. For now, just use a very big number.
- */
-
-#define TK_END_OF_TEXT 1000000
-
-/*
- * The following definition specifies the maximum number of characters
- * needed in a string to hold a position specifier.
- */
-
-#define TK_POS_CHARS 30
-
-/*
- * Declarations for variables shared among the text-related files:
- */
-
-EXTERN int tkBTreeDebug;
-EXTERN int tkTextDebug;
-EXTERN Tk_SegType tkTextCharType;
-EXTERN Tk_SegType tkTextLeftMarkType;
-EXTERN Tk_SegType tkTextRightMarkType;
-EXTERN Tk_SegType tkTextToggleOnType;
-EXTERN Tk_SegType tkTextToggleOffType;
-
-/*
- * Declarations for procedures that are used by the text-related files
- * but shouldn't be used anywhere else in Tk (or by Tk clients):
- */
-
-EXTERN int TkBTreeCharTagged _ANSI_ARGS_((TkTextIndex *indexPtr,
- TkTextTag *tagPtr));
-EXTERN void TkBTreeCheck _ANSI_ARGS_((TkTextBTree tree));
-EXTERN int TkBTreeCharsInLine _ANSI_ARGS_((TkTextLine *linePtr));
-EXTERN int TkBTreeBytesInLine _ANSI_ARGS_((TkTextLine *linePtr));
-EXTERN TkTextBTree TkBTreeCreate _ANSI_ARGS_((TkText *textPtr));
-EXTERN void TkBTreeDestroy _ANSI_ARGS_((TkTextBTree tree));
-EXTERN void TkBTreeDeleteChars _ANSI_ARGS_((TkTextIndex *index1Ptr,
- TkTextIndex *index2Ptr));
-EXTERN TkTextLine * TkBTreeFindLine _ANSI_ARGS_((TkTextBTree tree,
- int line));
-EXTERN TkTextTag ** TkBTreeGetTags _ANSI_ARGS_((TkTextIndex *indexPtr,
- int *numTagsPtr));
-EXTERN void TkBTreeInsertChars _ANSI_ARGS_((TkTextIndex *indexPtr,
- CONST char *string));
-EXTERN int TkBTreeLineIndex _ANSI_ARGS_((TkTextLine *linePtr));
-EXTERN void TkBTreeLinkSegment _ANSI_ARGS_((TkTextSegment *segPtr,
- TkTextIndex *indexPtr));
-EXTERN TkTextLine * TkBTreeNextLine _ANSI_ARGS_((TkTextLine *linePtr));
-EXTERN int TkBTreeNextTag _ANSI_ARGS_((TkTextSearch *searchPtr));
-EXTERN int TkBTreeNumLines _ANSI_ARGS_((TkTextBTree tree));
-EXTERN TkTextLine * TkBTreePreviousLine _ANSI_ARGS_((TkTextLine *linePtr));
-EXTERN int TkBTreePrevTag _ANSI_ARGS_((TkTextSearch *searchPtr));
-EXTERN void TkBTreeStartSearch _ANSI_ARGS_((TkTextIndex *index1Ptr,
- TkTextIndex *index2Ptr, TkTextTag *tagPtr,
- TkTextSearch *searchPtr));
-EXTERN void TkBTreeStartSearchBack _ANSI_ARGS_((TkTextIndex *index1Ptr,
- TkTextIndex *index2Ptr, TkTextTag *tagPtr,
- TkTextSearch *searchPtr));
-EXTERN void TkBTreeTag _ANSI_ARGS_((TkTextIndex *index1Ptr,
- TkTextIndex *index2Ptr, TkTextTag *tagPtr,
- int add));
-EXTERN void TkBTreeUnlinkSegment _ANSI_ARGS_((TkTextBTree tree,
- TkTextSegment *segPtr, TkTextLine *linePtr));
-EXTERN void TkTextBindProc _ANSI_ARGS_((ClientData clientData,
- XEvent *eventPtr));
-EXTERN void TkTextChanged _ANSI_ARGS_((TkText *textPtr,
- TkTextIndex *index1Ptr, TkTextIndex *index2Ptr));
-EXTERN int TkTextCharBbox _ANSI_ARGS_((TkText *textPtr,
- TkTextIndex *indexPtr, int *xPtr, int *yPtr,
- int *widthPtr, int *heightPtr));
-EXTERN int TkTextCharLayoutProc _ANSI_ARGS_((TkText *textPtr,
- TkTextIndex *indexPtr, TkTextSegment *segPtr,
- int offset, int maxX, int maxChars, int noBreakYet,
- TkWrapMode wrapMode, TkTextDispChunk *chunkPtr));
-EXTERN void TkTextCreateDInfo _ANSI_ARGS_((TkText *textPtr));
-EXTERN int TkTextDLineInfo _ANSI_ARGS_((TkText *textPtr,
- TkTextIndex *indexPtr, int *xPtr, int *yPtr,
- int *widthPtr, int *heightPtr, int *basePtr));
-EXTERN TkTextTag * TkTextCreateTag _ANSI_ARGS_((TkText *textPtr,
- CONST char *tagName));
-EXTERN void TkTextFreeDInfo _ANSI_ARGS_((TkText *textPtr));
-EXTERN void TkTextFreeTag _ANSI_ARGS_((TkText *textPtr,
- TkTextTag *tagPtr));
-EXTERN int TkTextGetIndex _ANSI_ARGS_((Tcl_Interp *interp,
- TkText *textPtr, CONST char *string,
- TkTextIndex *indexPtr));
-EXTERN TkTextTabArray * TkTextGetTabs _ANSI_ARGS_((Tcl_Interp *interp,
- Tk_Window tkwin, Tcl_Obj *string));
-EXTERN void TkTextIndexBackBytes _ANSI_ARGS_((
- CONST TkTextIndex *srcPtr, int count,
- TkTextIndex *dstPtr));
-EXTERN void TkTextIndexBackChars _ANSI_ARGS_((
- CONST TkTextIndex *srcPtr, int count,
- TkTextIndex *dstPtr));
-EXTERN int TkTextIndexCmp _ANSI_ARGS_((
- CONST TkTextIndex *index1Ptr,
- CONST TkTextIndex *index2Ptr));
-EXTERN void TkTextIndexForwBytes _ANSI_ARGS_((
- CONST TkTextIndex *srcPtr, int count,
- TkTextIndex *dstPtr));
-EXTERN void TkTextIndexForwChars _ANSI_ARGS_((
- CONST TkTextIndex *srcPtr, int count,
- TkTextIndex *dstPtr));
-EXTERN TkTextSegment * TkTextIndexToSeg _ANSI_ARGS_((
- CONST TkTextIndex *indexPtr, int *offsetPtr));
-EXTERN void TkTextInsertDisplayProc _ANSI_ARGS_((
- TkTextDispChunk *chunkPtr, int x, int y, int height,
- int baseline, Display *display, Drawable dst,
- int screenY));
-EXTERN void TkTextLostSelection _ANSI_ARGS_((
- ClientData clientData));
-EXTERN TkTextIndex * TkTextMakeCharIndex _ANSI_ARGS_((TkTextBTree tree,
- int lineIndex, int charIndex,
- TkTextIndex *indexPtr));
-EXTERN int TkTextIsElided _ANSI_ARGS_((TkText *textPtr,
- TkTextIndex *indexPtr));
-EXTERN TkTextIndex * TkTextMakeByteIndex _ANSI_ARGS_((TkTextBTree tree,
- int lineIndex, int byteIndex,
- TkTextIndex *indexPtr));
-EXTERN int TkTextMarkCmd _ANSI_ARGS_((TkText *textPtr,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int TkTextMarkNameToIndex _ANSI_ARGS_((TkText *textPtr,
- CONST char *name, TkTextIndex *indexPtr));
-EXTERN void TkTextMarkSegToIndex _ANSI_ARGS_((TkText *textPtr,
- TkTextSegment *markPtr, TkTextIndex *indexPtr));
-EXTERN void TkTextEventuallyRepick _ANSI_ARGS_((TkText *textPtr));
-EXTERN void TkTextPickCurrent _ANSI_ARGS_((TkText *textPtr,
- XEvent *eventPtr));
-EXTERN void TkTextPixelIndex _ANSI_ARGS_((TkText *textPtr,
- int x, int y, TkTextIndex *indexPtr));
-EXTERN void TkTextPrintIndex _ANSI_ARGS_((
- CONST TkTextIndex *indexPtr, char *string));
-EXTERN void TkTextRedrawRegion _ANSI_ARGS_((TkText *textPtr,
- int x, int y, int width, int height));
-EXTERN void TkTextRedrawTag _ANSI_ARGS_((TkText *textPtr,
- TkTextIndex *index1Ptr, TkTextIndex *index2Ptr,
- TkTextTag *tagPtr, int withTag));
-EXTERN void TkTextRelayoutWindow _ANSI_ARGS_((TkText *textPtr));
-EXTERN int TkTextScanCmd _ANSI_ARGS_((TkText *textPtr,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int TkTextSeeCmd _ANSI_ARGS_((TkText *textPtr,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int TkTextSegToOffset _ANSI_ARGS_((
- CONST TkTextSegment *segPtr,
- CONST TkTextLine *linePtr));
-EXTERN TkTextSegment * TkTextSetMark _ANSI_ARGS_((TkText *textPtr,
- CONST char *name, TkTextIndex *indexPtr));
-EXTERN void TkTextSetYView _ANSI_ARGS_((TkText *textPtr,
- TkTextIndex *indexPtr, int pickPlace));
-EXTERN int TkTextTagCmd _ANSI_ARGS_((TkText *textPtr,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int TkTextImageCmd _ANSI_ARGS_((TkText *textPtr,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int TkTextImageIndex _ANSI_ARGS_((TkText *textPtr,
- CONST char *name, TkTextIndex *indexPtr));
-EXTERN int TkTextWindowCmd _ANSI_ARGS_((TkText *textPtr,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int TkTextWindowIndex _ANSI_ARGS_((TkText *textPtr,
- CONST char *name, TkTextIndex *indexPtr));
-EXTERN int TkTextXviewCmd _ANSI_ARGS_((TkText *textPtr,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-EXTERN int TkTextYviewCmd _ANSI_ARGS_((TkText *textPtr,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST *objv));
-
-#include "tkPort.h"
-#include "tkVMacro.h"
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKTEXT */
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkUndo.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkUndo.h
deleted file mode 100644
index 96a0c5bace8..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkUndo.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * tkUndo.h --
- *
- * Declarations shared among the files that implement an undo
- * stack.
- *
- * Copyright (c) 2002 Ludwig Callewaert.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkUndo.h,v 1.1 2002/06/21 23:09:55 hobbs Exp $
- */
-
-#ifndef _TKUNDO
-#define _TKUNDO
-
-#ifndef _TK
-#include "tk.h"
-#endif
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/* enum definining the types used in an undo stack */
-
-typedef enum {
- TK_UNDO_SEPARATOR, /* Marker */
- TK_UNDO_ACTION /* Command */
-} TkUndoAtomType;
-
-/* struct defining the basic undo/redo stack element */
-
-typedef struct TkUndoAtom {
- TkUndoAtomType type; /* The type that will trigger the
- * required action*/
- Tcl_Obj * apply; /* Command to apply the action that was taken */
- Tcl_Obj * revert; /* The command to undo the action */
- struct TkUndoAtom * next; /* Pointer to the next element in the
- * stack */
-} TkUndoAtom;
-
-/* struct defining the basic undo/redo stack element */
-
-typedef struct TkUndoRedoStack {
- TkUndoAtom * undoStack; /* The undo stack */
- TkUndoAtom * redoStack; /* The redo stack */
- Tcl_Interp * interp ; /* The interpreter in which to execute the revert and apply scripts */
- int maxdepth;
- int depth;
-} TkUndoRedoStack;
-
-/* basic functions */
-
-EXTERN void TkUndoPushStack _ANSI_ARGS_((TkUndoAtom ** stack,
- TkUndoAtom * elem));
-
-EXTERN TkUndoAtom * TkUndoPopStack _ANSI_ARGS_((TkUndoAtom ** stack));
-
-EXTERN int TkUndoInsertSeparator _ANSI_ARGS_((TkUndoAtom ** stack));
-
-EXTERN void TkUndoClearStack _ANSI_ARGS_((TkUndoAtom ** stack));
-
-/* functions working on an undo/redo stack */
-
-EXTERN TkUndoRedoStack * TkUndoInitStack _ANSI_ARGS_((Tcl_Interp * interp,
- int maxdepth));
-
-EXTERN void TkUndoSetDepth _ANSI_ARGS_((TkUndoRedoStack * stack,
- int maxdepth));
-
-EXTERN void TkUndoClearStacks _ANSI_ARGS_((TkUndoRedoStack * stack));
-
-EXTERN void TkUndoFreeStack _ANSI_ARGS_((TkUndoRedoStack * stack));
-
-EXTERN void TkUndoInsertUndoSeparator _ANSI_ARGS_((TkUndoRedoStack * stack));
-
-EXTERN void TkUndoPushAction _ANSI_ARGS_((TkUndoRedoStack * stack,
- Tcl_DString * actionScript, Tcl_DString * revertScript));
-
-EXTERN int TkUndoRevert _ANSI_ARGS_((TkUndoRedoStack * stack));
-
-EXTERN int TkUndoApply _ANSI_ARGS_((TkUndoRedoStack * stack));
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKUNDO */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkVMacro.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkVMacro.h
deleted file mode 100644
index 7ba57d8154a..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkVMacro.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifdef _LANG
-#include "Lang.m"
-#endif
-
-#if defined(_TK)
-#include "tk.m"
-#endif
-
-#if defined(_TK) || defined(_XLIB_H_)
-# if !defined(_XLIB) && !defined(_XLIB_H_)
-# include <X11/Xlib.h>
-# endif
-# ifdef _TKINTXLIBDECLS
-# include "tkIntXlibDecls.m"
-# else
-# if defined(_XLIB_H) && !defined(_XLIB)
-# define _XLIB
-# endif
-# include "Xlib.m"
-# endif
-#endif
-
-#ifdef _TKINT
-#include "tkInt.m"
-#endif
-#ifdef _TKIMGPHOTO
-#include "tkImgPhoto.m"
-#endif
-#ifdef _TIX
-#include "tix.m"
-#endif
-#ifdef _TIXINT
-#include "tixInt.m"
-#endif
-#ifdef _TKOPTION
-#include "tkOption.m"
-#endif
-#ifdef _TIXIMGXPM
-#include "tixImgXpm.m"
-#endif
-#ifdef _IMGINT
-#include "imgInt.m"
-#endif
-
-#ifdef _TCLDECLS
-#include "tclDecls.m"
-#endif
-
-#ifdef _TKDECLS
-#include "tkDecls.m"
-#endif
-
-#ifdef _TKPLATDECLS
-#include "tkPlatDecls.m"
-#endif
-
-#ifdef _TKINTDECLS
-#include "tkIntDecls.m"
-#endif
-
-#ifdef _TKINTPLATDECLS
-#include "tkIntPlatDecls.m"
-#endif
-
-#ifdef _TKEVENT
-#include "tkEvent.m"
-#endif
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkWin.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkWin.h
deleted file mode 100644
index ab1046deb33..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkWin.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * tkWin.h --
- *
- * Declarations of public types and interfaces that are only
- * available under Windows.
- *
- * Copyright (c) 1996-1997 by Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkWin.h,v 1.6 1999/04/16 01:51:48 stanton Exp $
- */
-
-#ifndef _TKWIN
-#define _TKWIN
-
-#ifndef _TK
-#include "tk.h"
-#endif
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#undef WIN32_LEAN_AND_MEAN
-
-#ifdef BUILD_tk
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-/*
- * The following messages are use to communicate between a Tk toplevel
- * and its container window.
- */
-
-#define TK_CLAIMFOCUS (WM_USER)
-#define TK_GEOMETRYREQ (WM_USER+1)
-#define TK_ATTACHWINDOW (WM_USER+2)
-#define TK_DETACHWINDOW (WM_USER+3)
-
-
-typedef void Tcl_HandleProc (ClientData, HANDLE);
-
-
-/*
- *--------------------------------------------------------------
- *
- * Exported procedures defined for the Windows platform only.
- *
- *--------------------------------------------------------------
- */
-
-#include "tkPlatDecls.h"
-
-extern HINSTANCE TclWinGetTclInstance _ANSI_ARGS_((void));
-
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLIMPORT
-
-#endif /* _TKWIN */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkWinDefault.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkWinDefault.h
deleted file mode 100644
index c66a8525ed2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkWinDefault.h
+++ /dev/null
@@ -1,525 +0,0 @@
-/*
- * tkWinDefault.h --
- *
- * This file defines the defaults for all options for all of
- * the Tk widgets.
- *
- * Copyright (c) 1995-1997 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkWinDefault.h,v 1.16 2002/06/21 23:09:54 hobbs Exp $
- */
-
-#ifndef _TKWINDEFAULT
-#define _TKWINDEFAULT
-
-/*
- * The definitions below provide symbolic names for the default colors.
- * NORMAL_BG - Normal background color.
- * ACTIVE_BG - Background color when widget is active.
- * SELECT_BG - Background color for selected text.
- * TROUGH - Background color for troughs in scales and scrollbars.
- * INDICATOR - Color for indicator when button is selected.
- * DISABLED - Foreground color when widget is disabled.
- */
-
-#define BLACK "Black"
-#define WHITE "White"
-
-#define CTL_FONT "{MS Sans Serif} 8"
-#define FIXED_FONT "{Courier New} 8"
-#define NORMAL_BG "SystemButtonFace"
-#define NORMAL_FG "SystemButtonText"
-#define ACTIVE_BG NORMAL_BG
-#define TEXT_FG "SystemWindowText"
-#define SELECT_BG "SystemHighlight"
-#define SELECT_FG "SystemHighlightText"
-#define TROUGH "SystemScrollbar"
-#define INDICATOR "SystemWindow"
-#define DISABLED "SystemDisabledText"
-#define MENU_BG "SystemMenu"
-#define MENU_FG "SystemMenuText"
-#define HIGHLIGHT "SystemWindowFrame"
-
-/*
- * Defaults for labels, buttons, checkbuttons, and radiobuttons:
- */
-
-#define DEF_BUTTON_ANCHOR "center"
-#define DEF_BUTTON_ACTIVE_BG_COLOR NORMAL_BG
-#define DEF_BUTTON_ACTIVE_BG_MONO BLACK
-#define DEF_BUTTON_ACTIVE_FG_COLOR NORMAL_FG
-#define DEF_CHKRAD_ACTIVE_FG_COLOR TEXT_FG
-#define DEF_BUTTON_ACTIVE_FG_MONO WHITE
-#define DEF_BUTTON_BG_COLOR NORMAL_BG
-#define DEF_BUTTON_BG_MONO WHITE
-#define DEF_BUTTON_BITMAP ""
-#define DEF_BUTTON_BORDER_WIDTH "2"
-#define DEF_BUTTON_CURSOR ""
-#define DEF_BUTTON_COMMAND ""
-#define DEF_BUTTON_COMPOUND "none"
-#define DEF_BUTTON_DEFAULT "disabled"
-#define DEF_BUTTON_DISABLED_FG_COLOR DISABLED
-#define DEF_BUTTON_DISABLED_FG_MONO ""
-#define DEF_BUTTON_FG NORMAL_FG
-#define DEF_CHKRAD_FG TEXT_FG
-#define DEF_BUTTON_FONT CTL_FONT
-#define DEF_BUTTON_HEIGHT "0"
-#define DEF_BUTTON_HIGHLIGHT_BG_COLOR DEF_BUTTON_BG_COLOR
-#define DEF_BUTTON_HIGHLIGHT_BG_MONO DEF_BUTTON_BG_MONO
-#define DEF_BUTTON_HIGHLIGHT HIGHLIGHT
-#define DEF_LABEL_HIGHLIGHT_WIDTH "0"
-#define DEF_BUTTON_HIGHLIGHT_WIDTH "1"
-#define DEF_BUTTON_IMAGE NULL
-#define DEF_BUTTON_INDICATOR "1"
-#define DEF_BUTTON_JUSTIFY "center"
-#define DEF_BUTTON_OFF_VALUE "0"
-#define DEF_BUTTON_ON_VALUE "1"
-#define DEF_BUTTON_OVER_RELIEF ""
-#define DEF_BUTTON_PADX "1"
-#define DEF_LABCHKRAD_PADX "1"
-#define DEF_BUTTON_PADY "1"
-#define DEF_LABCHKRAD_PADY "1"
-#define DEF_BUTTON_RELIEF "raised"
-#define DEF_LABCHKRAD_RELIEF "flat"
-#define DEF_BUTTON_REPEAT_DELAY "0"
-#define DEF_BUTTON_REPEAT_INTERVAL "0"
-#define DEF_BUTTON_SELECT_COLOR INDICATOR
-#define DEF_BUTTON_SELECT_MONO BLACK
-#define DEF_BUTTON_SELECT_IMAGE NULL
-#define DEF_BUTTON_STATE "normal"
-#define DEF_LABEL_TAKE_FOCUS "0"
-#define DEF_BUTTON_TAKE_FOCUS NULL
-#define DEF_BUTTON_TEXT ""
-#define DEF_BUTTON_TEXT_VARIABLE ""
-#define DEF_BUTTON_UNDERLINE "-1"
-#define DEF_BUTTON_VALUE ""
-#define DEF_BUTTON_WIDTH "0"
-#define DEF_BUTTON_WRAP_LENGTH "0"
-#define DEF_RADIOBUTTON_VARIABLE "selectedButton"
-#define DEF_CHECKBUTTON_VARIABLE ""
-
-/*
- * Defaults for canvases:
- */
-
-#define DEF_CANVAS_BG_COLOR NORMAL_BG
-#define DEF_CANVAS_BG_MONO WHITE
-#define DEF_CANVAS_BORDER_WIDTH "0"
-#define DEF_CANVAS_CLOSE_ENOUGH "1"
-#define DEF_CANVAS_CONFINE "1"
-#define DEF_CANVAS_CURSOR ""
-#define DEF_CANVAS_HEIGHT "7c"
-#define DEF_CANVAS_HIGHLIGHT_BG NORMAL_BG
-#define DEF_CANVAS_HIGHLIGHT HIGHLIGHT
-#define DEF_CANVAS_HIGHLIGHT_WIDTH "2"
-#define DEF_CANVAS_INSERT_BG NORMAL_FG
-#define DEF_CANVAS_INSERT_BD_COLOR "0"
-#define DEF_CANVAS_INSERT_BD_MONO "0"
-#define DEF_CANVAS_INSERT_OFF_TIME "300"
-#define DEF_CANVAS_INSERT_ON_TIME "600"
-#define DEF_CANVAS_INSERT_WIDTH "2"
-#define DEF_CANVAS_RELIEF "flat"
-#define DEF_CANVAS_SCROLL_REGION ""
-#define DEF_CANVAS_SELECT_COLOR SELECT_BG
-#define DEF_CANVAS_SELECT_MONO BLACK
-#define DEF_CANVAS_SELECT_BD_COLOR "1"
-#define DEF_CANVAS_SELECT_BD_MONO "0"
-#define DEF_CANVAS_SELECT_FG_COLOR SELECT_FG
-#define DEF_CANVAS_SELECT_FG_MONO WHITE
-#define DEF_CANVAS_TAKE_FOCUS NULL
-#define DEF_CANVAS_WIDTH "10c"
-#define DEF_CANVAS_X_SCROLL_CMD ""
-#define DEF_CANVAS_X_SCROLL_INCREMENT "0"
-#define DEF_CANVAS_Y_SCROLL_CMD ""
-#define DEF_CANVAS_Y_SCROLL_INCREMENT "0"
-
-/*
- * Defaults for entries:
- */
-
-#define DEF_ENTRY_BG_COLOR "SystemWindow"
-#define DEF_ENTRY_BG_MONO WHITE
-#define DEF_ENTRY_BORDER_WIDTH "2"
-#define DEF_ENTRY_CURSOR "xterm"
-#define DEF_ENTRY_DISABLED_BG_COLOR "SystemButtonFace"
-#define DEF_ENTRY_DISABLED_BG_MONO WHITE
-#define DEF_ENTRY_DISABLED_FG DISABLED
-#define DEF_ENTRY_EXPORT_SELECTION "1"
-#define DEF_ENTRY_FONT CTL_FONT
-#define DEF_ENTRY_FG TEXT_FG
-#define DEF_ENTRY_HIGHLIGHT_BG NORMAL_BG
-#define DEF_ENTRY_HIGHLIGHT HIGHLIGHT
-#define DEF_ENTRY_HIGHLIGHT_WIDTH "0"
-#define DEF_ENTRY_INSERT_BG TEXT_FG
-#define DEF_ENTRY_INSERT_BD_COLOR "0"
-#define DEF_ENTRY_INSERT_BD_MONO "0"
-#define DEF_ENTRY_INSERT_OFF_TIME "300"
-#define DEF_ENTRY_INSERT_ON_TIME "600"
-#define DEF_ENTRY_INSERT_WIDTH "2"
-#define DEF_ENTRY_JUSTIFY "left"
-#define DEF_ENTRY_READONLY_BG_COLOR "SystemButtonFace"
-#define DEF_ENTRY_READONLY_BG_MONO WHITE
-#define DEF_ENTRY_RELIEF "sunken"
-#define DEF_ENTRY_SCROLL_COMMAND ""
-#define DEF_ENTRY_SELECT_COLOR SELECT_BG
-#define DEF_ENTRY_SELECT_MONO BLACK
-#define DEF_ENTRY_SELECT_BD_COLOR "0"
-#define DEF_ENTRY_SELECT_BD_MONO "0"
-#define DEF_ENTRY_SELECT_FG_COLOR SELECT_FG
-#define DEF_ENTRY_SELECT_FG_MONO WHITE
-#define DEF_ENTRY_SHOW NULL
-#define DEF_ENTRY_STATE "normal"
-#define DEF_ENTRY_TAKE_FOCUS NULL
-#define DEF_ENTRY_TEXT_VARIABLE ""
-#define DEF_ENTRY_WIDTH "20"
-
-/*
- * Defaults for frames:
- */
-
-#define DEF_FRAME_BG_COLOR NORMAL_BG
-#define DEF_FRAME_BG_MONO WHITE
-#define DEF_FRAME_BORDER_WIDTH "0"
-#define DEF_FRAME_CLASS "Frame"
-#define DEF_FRAME_COLORMAP ""
-#define DEF_FRAME_CONTAINER "0"
-#define DEF_FRAME_CURSOR ""
-#define DEF_FRAME_HEIGHT "0"
-#define DEF_FRAME_HIGHLIGHT_BG NORMAL_BG
-#define DEF_FRAME_HIGHLIGHT HIGHLIGHT
-#define DEF_FRAME_HIGHLIGHT_WIDTH "0"
-#define DEF_FRAME_PADX "0"
-#define DEF_FRAME_PADY "0"
-#define DEF_FRAME_RELIEF "flat"
-#define DEF_FRAME_TAKE_FOCUS "0"
-#define DEF_FRAME_VISUAL ""
-#define DEF_FRAME_WIDTH "0"
-
-/*
- * Defaults for labelframes:
- */
-
-#define DEF_LABELFRAME_BORDER_WIDTH "2"
-#define DEF_LABELFRAME_CLASS "Labelframe"
-#define DEF_LABELFRAME_RELIEF "groove"
-#define DEF_LABELFRAME_FG NORMAL_FG
-#define DEF_LABELFRAME_FONT CTL_FONT
-#define DEF_LABELFRAME_TEXT ""
-#define DEF_LABELFRAME_LABELANCHOR "nw"
-
-/*
- * Defaults for listboxes:
- */
-
-#define DEF_LISTBOX_ACTIVE_STYLE "underline"
-#define DEF_LISTBOX_BG_COLOR "SystemWindow"
-#define DEF_LISTBOX_BG_MONO WHITE
-#define DEF_LISTBOX_BORDER_WIDTH "2"
-#define DEF_LISTBOX_CURSOR ""
-#define DEF_LISTBOX_DISABLED_FG DISABLED
-#define DEF_LISTBOX_EXPORT_SELECTION "1"
-#define DEF_LISTBOX_FONT CTL_FONT
-#define DEF_LISTBOX_FG NORMAL_FG
-#define DEF_LISTBOX_HEIGHT "10"
-#define DEF_LISTBOX_HIGHLIGHT_BG NORMAL_BG
-#define DEF_LISTBOX_HIGHLIGHT HIGHLIGHT
-#define DEF_LISTBOX_HIGHLIGHT_WIDTH "1"
-#define DEF_LISTBOX_RELIEF "sunken"
-#define DEF_LISTBOX_SCROLL_COMMAND ""
-#define DEF_LISTBOX_LIST_VARIABLE ""
-#define DEF_LISTBOX_SELECT_COLOR SELECT_BG
-#define DEF_LISTBOX_SELECT_MONO BLACK
-#define DEF_LISTBOX_SELECT_BD "0"
-#define DEF_LISTBOX_SELECT_FG_COLOR SELECT_FG
-#define DEF_LISTBOX_SELECT_FG_MONO WHITE
-#define DEF_LISTBOX_SELECT_MODE "browse"
-#define DEF_LISTBOX_SET_GRID "0"
-#define DEF_LISTBOX_STATE "normal"
-#define DEF_LISTBOX_TAKE_FOCUS NULL
-#define DEF_LISTBOX_WIDTH "20"
-
-/*
- * Defaults for individual entries of menus:
- */
-
-#define DEF_MENU_ENTRY_ACTIVE_BG NULL
-#define DEF_MENU_ENTRY_ACTIVE_FG NULL
-#define DEF_MENU_ENTRY_ACCELERATOR NULL
-#define DEF_MENU_ENTRY_BG NULL
-#define DEF_MENU_ENTRY_BITMAP None
-#define DEF_MENU_ENTRY_COLUMN_BREAK "0"
-#define DEF_MENU_ENTRY_COMMAND NULL
-#define DEF_MENU_ENTRY_COMPOUND "none"
-#define DEF_MENU_ENTRY_FG NULL
-#define DEF_MENU_ENTRY_FONT NULL
-#define DEF_MENU_ENTRY_HIDE_MARGIN "0"
-#define DEF_MENU_ENTRY_IMAGE NULL
-#define DEF_MENU_ENTRY_INDICATOR "1"
-#define DEF_MENU_ENTRY_LABEL NULL
-#define DEF_MENU_ENTRY_MENU NULL
-#define DEF_MENU_ENTRY_OFF_VALUE "0"
-#define DEF_MENU_ENTRY_ON_VALUE "1"
-#define DEF_MENU_ENTRY_SELECT_IMAGE NULL
-#define DEF_MENU_ENTRY_STATE "normal"
-#define DEF_MENU_ENTRY_VALUE NULL
-#define DEF_MENU_ENTRY_CHECK_VARIABLE NULL
-#define DEF_MENU_ENTRY_RADIO_VARIABLE "selectedButton"
-#define DEF_MENU_ENTRY_SELECT NULL
-#define DEF_MENU_ENTRY_UNDERLINE "-1"
-
-/*
- * Defaults for menus overall:
- */
-
-#define DEF_MENU_ACTIVE_BG_COLOR SELECT_BG
-#define DEF_MENU_ACTIVE_BG_MONO BLACK
-#define DEF_MENU_ACTIVE_BORDER_WIDTH "0"
-#define DEF_MENU_ACTIVE_FG_COLOR SELECT_FG
-#define DEF_MENU_ACTIVE_FG_MONO WHITE
-#define DEF_MENU_BG_COLOR MENU_BG
-#define DEF_MENU_BG_MONO WHITE
-#define DEF_MENU_BORDER_WIDTH "0"
-#define DEF_MENU_CURSOR "arrow"
-#define DEF_MENU_DISABLED_FG_COLOR DISABLED
-#define DEF_MENU_DISABLED_FG_MONO ""
-#define DEF_MENU_FONT CTL_FONT
-#define DEF_MENU_FG MENU_FG
-#define DEF_MENU_POST_COMMAND ""
-#define DEF_MENU_RELIEF "flat"
-#define DEF_MENU_SELECT_COLOR MENU_FG
-#define DEF_MENU_SELECT_MONO BLACK
-#define DEF_MENU_TAKE_FOCUS "0"
-#define DEF_MENU_TEAROFF "1"
-#define DEF_MENU_TEAROFF_CMD NULL
-#define DEF_MENU_TITLE ""
-#define DEF_MENU_TYPE "normal"
-
-/*
- * Defaults for menubuttons:
- */
-
-#define DEF_MENUBUTTON_ANCHOR "center"
-#define DEF_MENUBUTTON_ACTIVE_BG_COLOR ACTIVE_BG
-#define DEF_MENUBUTTON_ACTIVE_BG_MONO BLACK
-#define DEF_MENUBUTTON_ACTIVE_FG_COLOR NORMAL_FG
-#define DEF_MENUBUTTON_ACTIVE_FG_MONO WHITE
-#define DEF_MENUBUTTON_BG_COLOR NORMAL_BG
-#define DEF_MENUBUTTON_BG_MONO WHITE
-#define DEF_MENUBUTTON_BITMAP ""
-#define DEF_MENUBUTTON_BORDER_WIDTH "2"
-#define DEF_MENUBUTTON_CURSOR ""
-#define DEF_MENUBUTTON_DIRECTION "below"
-#define DEF_MENUBUTTON_DISABLED_FG_COLOR DISABLED
-#define DEF_MENUBUTTON_DISABLED_FG_MONO ""
-#define DEF_MENUBUTTON_FONT CTL_FONT
-#define DEF_MENUBUTTON_FG NORMAL_FG
-#define DEF_MENUBUTTON_HEIGHT "0"
-#define DEF_MENUBUTTON_HIGHLIGHT_BG_COLOR DEF_MENUBUTTON_BG_COLOR
-#define DEF_MENUBUTTON_HIGHLIGHT_BG_MONO DEF_MENUBUTTON_BG_MONO
-#define DEF_MENUBUTTON_HIGHLIGHT HIGHLIGHT
-#define DEF_MENUBUTTON_HIGHLIGHT_WIDTH "0"
-#define DEF_MENUBUTTON_IMAGE NULL
-#define DEF_MENUBUTTON_INDICATOR "0"
-#define DEF_MENUBUTTON_JUSTIFY "center"
-#define DEF_MENUBUTTON_MENU ""
-#define DEF_MENUBUTTON_PADX "4p"
-#define DEF_MENUBUTTON_PADY "3p"
-#define DEF_MENUBUTTON_RELIEF "flat"
-#define DEF_MENUBUTTON_STATE "normal"
-#define DEF_MENUBUTTON_TAKE_FOCUS "0"
-#define DEF_MENUBUTTON_TEXT ""
-#define DEF_MENUBUTTON_TEXT_VARIABLE ""
-#define DEF_MENUBUTTON_UNDERLINE "-1"
-#define DEF_MENUBUTTON_WIDTH "0"
-#define DEF_MENUBUTTON_WRAP_LENGTH "0"
-
-/*
- * Defaults for messages:
- */
-
-#define DEF_MESSAGE_ANCHOR "center"
-#define DEF_MESSAGE_ASPECT "150"
-#define DEF_MESSAGE_BG_COLOR NORMAL_BG
-#define DEF_MESSAGE_BG_MONO WHITE
-#define DEF_MESSAGE_BORDER_WIDTH "2"
-#define DEF_MESSAGE_CURSOR ""
-#define DEF_MESSAGE_FG NORMAL_FG
-#define DEF_MESSAGE_FONT CTL_FONT
-#define DEF_MESSAGE_HIGHLIGHT_BG NORMAL_BG
-#define DEF_MESSAGE_HIGHLIGHT HIGHLIGHT
-#define DEF_MESSAGE_HIGHLIGHT_WIDTH "0"
-#define DEF_MESSAGE_JUSTIFY "left"
-#define DEF_MESSAGE_PADX "-1"
-#define DEF_MESSAGE_PADY "-1"
-#define DEF_MESSAGE_RELIEF "flat"
-#define DEF_MESSAGE_TAKE_FOCUS "0"
-#define DEF_MESSAGE_TEXT ""
-#define DEF_MESSAGE_TEXT_VARIABLE ""
-#define DEF_MESSAGE_WIDTH "0"
-
-/*
- * Defaults for panedwindows
- */
-
-#define DEF_PANEDWINDOW_BG_COLOR NORMAL_BG
-#define DEF_PANEDWINDOW_BG_MONO WHITE
-#define DEF_PANEDWINDOW_BORDERWIDTH "2"
-#define DEF_PANEDWINDOW_CURSOR ""
-#define DEF_PANEDWINDOW_HANDLEPAD "8"
-#define DEF_PANEDWINDOW_HANDLESIZE "8"
-#define DEF_PANEDWINDOW_HEIGHT ""
-#define DEF_PANEDWINDOW_OPAQUERESIZE "0"
-#define DEF_PANEDWINDOW_ORIENT "horizontal"
-#define DEF_PANEDWINDOW_RELIEF "flat"
-#define DEF_PANEDWINDOW_SASHCURSOR ""
-#define DEF_PANEDWINDOW_SASHPAD "2"
-#define DEF_PANEDWINDOW_SASHRELIEF "raised"
-#define DEF_PANEDWINDOW_SASHWIDTH "2"
-#define DEF_PANEDWINDOW_SHOWHANDLE "0"
-#define DEF_PANEDWINDOW_WIDTH ""
-
-/*
- * Defaults for panedwindow panes
- */
-
-#define DEF_PANEDWINDOW_PANE_AFTER ""
-#define DEF_PANEDWINDOW_PANE_BEFORE ""
-#define DEF_PANEDWINDOW_PANE_HEIGHT ""
-#define DEF_PANEDWINDOW_PANE_MINSIZE "0"
-#define DEF_PANEDWINDOW_PANE_PADX "0"
-#define DEF_PANEDWINDOW_PANE_PADY "0"
-#define DEF_PANEDWINDOW_PANE_STICKY "nsew"
-#define DEF_PANEDWINDOW_PANE_WIDTH ""
-
-/*
- * Defaults for scales:
- */
-
-#define DEF_SCALE_ACTIVE_BG_COLOR ACTIVE_BG
-#define DEF_SCALE_ACTIVE_BG_MONO BLACK
-#define DEF_SCALE_BG_COLOR NORMAL_BG
-#define DEF_SCALE_BG_MONO WHITE
-#define DEF_SCALE_BIG_INCREMENT "0"
-#define DEF_SCALE_BORDER_WIDTH "2"
-#define DEF_SCALE_COMMAND ""
-#define DEF_SCALE_CURSOR ""
-#define DEF_SCALE_DIGITS "0"
-#define DEF_SCALE_FONT CTL_FONT
-#define DEF_SCALE_FG_COLOR NORMAL_FG
-#define DEF_SCALE_FG_MONO BLACK
-#define DEF_SCALE_FROM "0"
-#define DEF_SCALE_HIGHLIGHT_BG_COLOR DEF_SCALE_BG_COLOR
-#define DEF_SCALE_HIGHLIGHT_BG_MONO DEF_SCALE_BG_MONO
-#define DEF_SCALE_HIGHLIGHT HIGHLIGHT
-#define DEF_SCALE_HIGHLIGHT_WIDTH "2"
-#define DEF_SCALE_LABEL ""
-#define DEF_SCALE_LENGTH "100"
-#define DEF_SCALE_ORIENT "vertical"
-#define DEF_SCALE_RELIEF "flat"
-#define DEF_SCALE_REPEAT_DELAY "300"
-#define DEF_SCALE_REPEAT_INTERVAL "100"
-#define DEF_SCALE_RESOLUTION "1"
-#define DEF_SCALE_TROUGH_COLOR TROUGH
-#define DEF_SCALE_TROUGH_MONO WHITE
-#define DEF_SCALE_SHOW_VALUE "1"
-#define DEF_SCALE_SLIDER_LENGTH "10m"
-#define DEF_SCALE_SLIDER_RELIEF "raised"
-#define DEF_SCALE_STATE "normal"
-#define DEF_SCALE_TAKE_FOCUS NULL
-#define DEF_SCALE_TICK_INTERVAL "0"
-#define DEF_SCALE_TO "100"
-#define DEF_SCALE_VARIABLE ""
-#define DEF_SCALE_WIDTH "5m"
-
-/*
- * Defaults for scrollbars:
- */
-
-#define DEF_SCROLLBAR_ACTIVE_BG_COLOR ACTIVE_BG
-#define DEF_SCROLLBAR_ACTIVE_BG_MONO BLACK
-#define DEF_SCROLLBAR_ACTIVE_RELIEF "raised"
-#define DEF_SCROLLBAR_BG_COLOR NORMAL_BG
-#define DEF_SCROLLBAR_BG_MONO WHITE
-#define DEF_SCROLLBAR_BORDER_WIDTH "0"
-#define DEF_SCROLLBAR_COMMAND ""
-#define DEF_SCROLLBAR_CURSOR ""
-#define DEF_SCROLLBAR_EL_BORDER_WIDTH "-1"
-#define DEF_SCROLLBAR_HIGHLIGHT_BG NORMAL_BG
-#define DEF_SCROLLBAR_HIGHLIGHT HIGHLIGHT
-#define DEF_SCROLLBAR_HIGHLIGHT_WIDTH "0"
-#define DEF_SCROLLBAR_JUMP "0"
-#define DEF_SCROLLBAR_ORIENT "vertical"
-#define DEF_SCROLLBAR_RELIEF "sunken"
-#define DEF_SCROLLBAR_REPEAT_DELAY "300"
-#define DEF_SCROLLBAR_REPEAT_INTERVAL "100"
-#define DEF_SCROLLBAR_TAKE_FOCUS NULL
-#define DEF_SCROLLBAR_TROUGH_COLOR TROUGH
-#define DEF_SCROLLBAR_TROUGH_MONO WHITE
-#define DEF_SCROLLBAR_WIDTH "4m"
-
-/*
- * Defaults for texts:
- */
-
-#define DEF_TEXT_AUTO_SEPARATORS "1"
-#define DEF_TEXT_BG_COLOR "SystemWindow"
-#define DEF_TEXT_BG_MONO WHITE
-#define DEF_TEXT_BORDER_WIDTH "2"
-#define DEF_TEXT_CURSOR "xterm"
-#define DEF_TEXT_FG TEXT_FG
-#define DEF_TEXT_EXPORT_SELECTION "1"
-#define DEF_TEXT_FONT FIXED_FONT
-#define DEF_TEXT_HEIGHT "24"
-#define DEF_TEXT_HIGHLIGHT_BG NORMAL_BG
-#define DEF_TEXT_HIGHLIGHT HIGHLIGHT
-#define DEF_TEXT_HIGHLIGHT_WIDTH "0"
-#define DEF_TEXT_INSERT_BG TEXT_FG
-#define DEF_TEXT_INSERT_BD_COLOR "0"
-#define DEF_TEXT_INSERT_BD_MONO "0"
-#define DEF_TEXT_INSERT_OFF_TIME "300"
-#define DEF_TEXT_INSERT_ON_TIME "600"
-#define DEF_TEXT_INSERT_WIDTH "2"
-#define DEF_TEXT_MAX_UNDO "0"
-#define DEF_TEXT_PADX "1"
-#define DEF_TEXT_PADY "1"
-#define DEF_TEXT_RELIEF "sunken"
-#define DEF_TEXT_SELECT_COLOR SELECT_BG
-#define DEF_TEXT_SELECT_MONO BLACK
-#define DEF_TEXT_SELECT_BD_COLOR "0"
-#define DEF_TEXT_SELECT_BD_MONO "0"
-#define DEF_TEXT_SELECT_FG_COLOR SELECT_FG
-#define DEF_TEXT_SELECT_FG_MONO WHITE
-#define DEF_TEXT_SELECT_RELIEF "flat"
-#define DEF_TEXT_SET_GRID "0"
-#define DEF_TEXT_SPACING1 "0"
-#define DEF_TEXT_SPACING2 "0"
-#define DEF_TEXT_SPACING3 "0"
-#define DEF_TEXT_STATE "normal"
-#define DEF_TEXT_TABS ""
-#define DEF_TEXT_TAKE_FOCUS NULL
-#define DEF_TEXT_UNDO "0"
-#define DEF_TEXT_WIDTH "80"
-#define DEF_TEXT_WRAP "char"
-#define DEF_TEXT_XSCROLL_COMMAND ""
-#define DEF_TEXT_YSCROLL_COMMAND ""
-
-/*
- * Defaults for canvas text:
- */
-
-#define DEF_CANVTEXT_FONT CTL_FONT
-
-/*
- * Defaults for toplevels (most of the defaults for frames also apply
- * to toplevels):
- */
-
-#define DEF_TOPLEVEL_CLASS "Toplevel"
-#define DEF_TOPLEVEL_MENU ""
-#define DEF_TOPLEVEL_SCREEN ""
-#define DEF_TOPLEVEL_USE ""
-
-#endif /* _TKWINDEFAULT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkWinInt.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkWinInt.h
deleted file mode 100644
index 267cb69f6d4..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkWinInt.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * tkWinInt.h --
- *
- * This file contains declarations that are shared among the
- * Windows-specific parts of Tk, but aren't used by the rest of
- * Tk.
- *
- * Copyright (c) 1995-1997 Sun Microsystems, Inc.
- * Copyright (c) 1998-2000 by Scriptics Corporation.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkWinInt.h,v 1.14 2003/02/26 02:47:05 hobbs Exp $
- */
-
-#ifndef _TKWININT
-#define _TKWININT
-
-/*
- * Include platform specific public interfaces.
- */
-
-#ifndef _TKINT
-#include "tkInt.h"
-#endif
-
-#ifndef _TKWIN
-#include "tkWin.h"
-#endif
-
-#ifndef _TKPORT
-#include "tkPort.h"
-#endif
-
-
-/*
- * Define constants missing from older Win32 SDK header files.
- */
-
-#ifndef WS_EX_TOOLWINDOW
-#define WS_EX_TOOLWINDOW 0x00000080L
-#endif
-
-/*
- * The TkWinDCState is used to save the state of a device context
- * so that it can be restored later.
- */
-
-typedef struct TkWinDCState {
- HPALETTE palette;
- int bkmode;
-} TkWinDCState;
-
-/*
- * The TkWinDrawable is the internal implementation of an X Drawable (either
- * a Window or a Pixmap). The following constants define the valid Drawable
- * types.
- */
-
-#define TWD_BITMAP 1
-#define TWD_WINDOW 2
-#define TWD_WINDC 3
-
-typedef struct {
- int type;
- HWND handle;
- TkWindow *winPtr;
-} TkWinWindow;
-
-typedef struct {
- int type;
- HBITMAP handle;
- Colormap colormap;
- int depth;
-} TkWinBitmap;
-
-typedef struct {
- int type;
- HDC hdc;
-}TkWinDC;
-
-typedef union {
- int type;
- TkWinWindow window;
- TkWinBitmap bitmap;
- TkWinDC winDC;
-} TkWinDrawable;
-
-/*
- * The following macros are used to retrieve internal values from a Drawable.
- */
-
-#define TkWinGetHWND(w) (((TkWinDrawable *) w)->window.handle)
-#define TkWinGetWinPtr(w) (((TkWinDrawable *) w)->window.winPtr)
-#define TkWinGetHBITMAP(w) (((TkWinDrawable *) w)->bitmap.handle)
-#define TkWinGetColormap(w) (((TkWinDrawable *) w)->bitmap.colormap)
-#define TkWinGetHDC(w) (((TkWinDrawable *) w)->winDC.hdc)
-
-/*
- * The following structure is used to encapsulate palette information.
- */
-
-typedef struct {
- HPALETTE palette; /* Palette handle used when drawing. */
- UINT size; /* Number of entries in the palette. */
- int stale; /* 1 if palette needs to be realized,
- * otherwise 0. If the palette is stale,
- * then an idle handler is scheduled to
- * realize the palette. */
- Tcl_HashTable refCounts; /* Hash table of palette entry reference counts
- * indexed by pixel value. */
-} TkWinColormap;
-
-/*
- * The following macro retrieves the Win32 palette from a colormap.
- */
-
-#define TkWinGetPalette(colormap) (((TkWinColormap *) colormap)->palette)
-
-/*
- * The following macros define the class names for Tk Window types.
- */
-
-#define TK_WIN_TOPLEVEL_CLASS_NAME "TkTopLevel"
-#define TK_WIN_CHILD_CLASS_NAME "TkChild"
-#define TK_WIN_OWNDC_CLASS_NAME "TkOwnDC"
-
-/*
- * The following variable is a translation table between X gc functions and
- * Win32 raster and BitBlt op modes.
- */
-
-extern int tkpWinRopModes[];
-extern int tkpWinBltModes[];
-
-/*
- * The following defines are used with TkWinGetBorderPixels to get the
- * extra 2 border colors from a Tk_3DBorder.
- */
-
-#define TK_3D_LIGHT2 TK_3D_DARK_GC+1
-#define TK_3D_DARK2 TK_3D_DARK_GC+2
-
-/*
- * Internal procedures used by more than one source file.
- */
-
-#include "tkIntPlatDecls.h"
-
-/*
- * We need to specially add the TkWinChildProc because of the special
- * prototype it has (doesn't fit into stubs schema)
- */
-#ifdef BUILD_tk
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
-EXTERN LRESULT CALLBACK TkWinChildProc _ANSI_ARGS_((HWND hwnd, UINT message,
- WPARAM wParam, LPARAM lParam));
-
-/*
- * Special proc needed as tsd accessor function between
- * tkWinX.c:GenerateXEvent and tkWinClipboard.c:UpdateClipboard
- */
-EXTERN void TkWinUpdatingClipboard(int mode);
-
-/*
- * The following structure keeps track of whether we are using the
- * multi-byte or the wide-character interfaces to the operating system.
- * System calls should be made through the following function table.
- *
- * While some system calls need to use this A/W jump-table, it is not
- * necessary for all calls to do it, which is why you won't see this
- * used throughout the Tk code, but only in key areas. -- hobbs
- */
-
-typedef struct TkWinProcs {
- int useWide;
- LRESULT (WINAPI *callWindowProc)(WNDPROC lpPrevWndFunc, HWND hWnd,
- UINT Msg, WPARAM wParam, LPARAM lParam);
- LRESULT (WINAPI *defWindowProc)(HWND hWnd, UINT Msg, WPARAM wParam,
- LPARAM lParam);
- ATOM (WINAPI *registerClass)(CONST WNDCLASS *lpWndClass);
- BOOL (WINAPI *setWindowText)(HWND hWnd, LPCTSTR lpString);
- HWND (WINAPI *createWindowEx)(DWORD dwExStyle, LPCTSTR lpClassName,
- LPCTSTR lpWindowName, DWORD dwStyle, int x, int y,
- int nWidth, int nHeight, HWND hWndParent, HMENU hMenu,
- HINSTANCE hInstance, LPVOID lpParam);
- BOOL (WINAPI *insertMenu)(HMENU hMenu, UINT uPosition, UINT uFlags,
- UINT uIDNewItem, LPCTSTR lpNewItem);
-} TkWinProcs;
-
-EXTERN TkWinProcs *tkWinProcs;
-
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLIMPORT
-
-/*
- * The following allows us to cache these encoding for multiple functions.
- */
-
-
-extern Tcl_Encoding TkWinGetKeyInputEncoding _ANSI_ARGS_((void));
-extern Tcl_Encoding TkWinGetUnicodeEncoding _ANSI_ARGS_((void));
-
-extern void LangNoteDC _ANSI_ARGS_((HDC dc,int inc));
-
-#endif /* _TKWININT */
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkWinPort.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkWinPort.h
deleted file mode 100644
index 3c95b5d5d10..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkWinPort.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * tkWinPort.h --
- *
- * This header file handles porting issues that occur because of
- * differences between Windows and Unix. It should be the only
- * file that contains #ifdefs to handle different flavors of OS.
- *
- * Copyright (c) 1995-1996 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkWinPort.h,v 1.9 2002/10/19 02:10:20 hobbs Exp $
- */
-
-#ifndef _WINPORT
-#define _WINPORT
-#define NEED_REAL_STDIO
-#include <X11/Xlib.h>
-#include <X11/cursorfont.h>
-#include <X11/keysym.h>
-#include <X11/Xatom.h>
-#include <X11/Xutil.h>
-
-#include <errno.h>
-#include <ctype.h>
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-#include <fcntl.h>
-#include <io.h>
-#ifdef __EMX__
-# include <sys/types.h>
-#endif
-
-/*
- * Need to block out this include for building extensions with MetroWerks
- * compiler for Win32.
- */
-
-#ifndef __MWERKS__
-#include <sys/stat.h>
-#endif
-
-#include <time.h>
-#ifdef __CYGWIN__
-# define _T(x) L##x
-#else
-# include <tchar.h>
-#endif
-
-#ifdef _MSC_VER
-# define hypot _hypot
-#else /* _MSC_VER */
-# ifdef __EMX__
-# define strncasecmp strnicmp
-# endif
-#endif /* _MSC_VER */
-
-#ifndef __GNUC__
-# define strncasecmp strnicmp
-# define strcasecmp stricmp
-#endif
-
-#define NBBY 8
-
-#ifndef OPEN_MAX
-#define OPEN_MAX 32
-#endif
-
-/*
- * The following define causes Tk to use its internal keysym hash table
- */
-
-#define REDO_KEYSYM_LOOKUP
-
-/*
- * The following macro checks to see whether there is buffered
- * input data available for a stdio FILE.
- */
-
-#ifdef _MSC_VER
-# define TK_READ_DATA_PENDING(f) ((f)->_cnt > 0)
-#else /* _MSC_VER */
-# define TK_READ_DATA_PENDING(f) ((f)->level > 0)
-#endif /* _MSC_VER */
-
-/*
- * The following stubs implement various calls that don't do anything
- * under Windows.
- */
-
-#define TkFreeWindowId(dispPtr,w)
-#define TkInitXId(dispPtr)
-#define TkpCmapStressed(tkwin,colormap) (0)
-#define XFlush(display)
-#define XGrabServer(display)
-#define XUngrabServer(display)
-#define TkpSync(display)
-
-/*
- * The following functions are implemented as macros under Windows.
- */
-
-#define XFree(data) {if ((data) != NULL) ckfree((char *) (data));}
-#define XNoOp(display) {display->request++;}
-#define XSynchronize(display, bool) {display->request++;}
-#define XSync(display, bool) {display->request++;}
-#define XVisualIDFromVisual(visual) (visual->visualid)
-
-/* Additional translations needed for Tk extensions (Pixmap). */
-
-#define XPutImage(display, dr, gc, i, a, b, c, d, e, f) \
- TkPutImage(NULL, 0, display, dr, gc, i, a, b, c, d, e, f)
-#define XDefaultVisual(display, screen) ((screen)->root_visual)
-#define XDefaultScreen(display) ((display)->screens)
-#define XDefaultColormap(display, screen) ((screen)->cmap)
-#define XDefaultDepth(display, screen) ((screen)->root_depth)
-
-/*
- * The following Tk functions are implemented as macros under Windows.
- */
-
-#define TkpGetPixel(p) (((((p)->red >> 8) & 0xff) \
- | ((p)->green & 0xff00) | (((p)->blue << 8) & 0xff0000)) | 0x20000000)
-
-/*
- * These calls implement native bitmaps which are not currently
- * supported under Windows. The macros eliminate the calls.
- */
-
-#define TkpDefineNativeBitmaps()
-#define TkpCreateNativeBitmap(display, source) None
-#define TkpGetNativeAppBitmap(display, name, w, h) None
-
-/*
- * Define timezone for gettimeofday.
- */
-#if 0
-struct timezone {
- int tz_minuteswest;
- int tz_dsttime;
-};
-#else
-#undef timezone
-struct timezone;
-struct timeval;
-#endif
-
-#ifndef _TCLINT
-#include <tclInt.h>
-#endif
-
-
-#endif /* _WINPORT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tkXrm.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tkXrm.h
deleted file mode 100644
index 041d67b400d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tkXrm.h
+++ /dev/null
@@ -1,12 +0,0 @@
-EXTERN void Xrm_AddOption _ANSI_ARGS_((Tk_Window tkwin, CONST char *name,
- CONST char *value, int priority));
-EXTERN Tk_Uid Xrm_GetOption _ANSI_ARGS_((Tk_Window tkwin, CONST char *name,
- CONST char *className));
-EXTERN int Xrm_OptionCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int argc, Tcl_Obj *CONST args[]));
-EXTERN void XrmOptionClassChanged _ANSI_ARGS_((TkWindow *winPtr));
-EXTERN void XrmOptionDeadWindow _ANSI_ARGS_((TkWindow *winPtr));
-EXTERN void Xrm_import _ANSI_ARGS_((char *class));
-
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tk_f.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tk_f.h
deleted file mode 100644
index 603919b64f9..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/tk_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TK_VT
-#define TK_VT
-typedef struct TkVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tk.t"
-#undef VFUNC
-#undef VVAR
-} TkVtab;
-extern TkVtab *TkVptr;
-extern TkVtab *TkVGet(void);
-#endif /* TK_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/xbytes.h b/Master/tlpkg/tlperl/lib/Tk/pTk/xbytes.h
deleted file mode 100644
index 46be124d92d..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pTk/xbytes.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * xbytes.h --
- *
- * Declaration of table to reverse bit order of bytes.
- *
- * Copyright (c) 1995 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: xbytes.h,v 1.2 1998/09/14 18:24:02 stanton Exp $
- */
-
-#ifndef _XBYTES
-#define _XBYTES
-
-/*
- * The bits in a byte can be reversed so the least significant becomes
- * the most significant by indexing xBitReverseTable with the byte
- * to be reversed.
- */
-
-static unsigned char xBitReverseTable[256] = {
- 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
- 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
- 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
- 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
- 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
- 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
- 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
- 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
- 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
- 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
- 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
- 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
- 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
- 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
- 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
- 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
- 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
- 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
- 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
- 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
- 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
- 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
- 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
- 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
- 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
- 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
- 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
- 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
- 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
- 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
- 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
- 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff,
-};
-
-#endif /* _XBYTES */
diff --git a/Master/tlpkg/tlperl/lib/Tk/pack.pod b/Master/tlpkg/tlperl/lib/Tk/pack.pod
deleted file mode 100644
index 0449556265c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/pack.pod
+++ /dev/null
@@ -1,324 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::pack - Geometry manager that packs around edges of cavity
-
-=for category Tk Geometry Management
-
-=head1 SYNOPSIS
-
-S< >I<$widget>-E<gt>B<pack>?(I<args>)?
-
-S< >I<$widget>-E<gt>B<pack>I<Option>?(I<args>)?
-
-=head1 DESCRIPTION
-
-The B<pack> method is used to communicate with the packer,
-a geometry manager that arranges the children of a parent by
-packing them in order around the edges of the parent.
-
-In this B<perl> port of Tk it is normal to pack widgets one-at-a-time
-using the widget object to be packed to invoke a method call.
-This is a slight distortion of underlying Tk interface (which
-can handle lists of windows to one pack method call) but has proven
-effective in practice.
-
-The B<pack> method can have any of several forms, depending
-on I<Option>:
-
-=over 4
-
-=item I<$slave>-E<gt>B<pack>?(I<options>)?
-
-The options consist of pairs of arguments that specify how
-to manage the slave.
-See L<"THE PACKER ALGORITHM"> below for details on how the options
-are used by the packer.
-The following options are supported:
-
-=over 8
-
-=item B<-after> =E<gt> I<$other>
-
-I<$other> must be another window.
-Use its master as the master for the slave, and insert
-the slave just after I<$other> in the packing order.
-
-=item B<-anchor> =E<gt> I<anchor>
-
-I<Anchor> must be a valid anchor position such as B<n>
-or B<sw>; it specifies where to position each slave in its
-parcel.
-Defaults to B<center>.
-
-=item B<-before> =E<gt> I<$other>
-
-I<$other> must be another window.
-Use its master as the master for the slave, and insert
-the slave just before I<$other> in the packing order.
-
-=item B<-expand> =E<gt> I<boolean>
-
-Specifies whether the slave should be expanded to consume
-extra space in their master.
-I<Boolean> may have any proper boolean value, such as B<1>
-or B<no>.
-Defaults to 0.
-
-=item B<-fill> =E<gt> I<style>
-
-If a slave's parcel is larger than its requested dimensions, this
-option may be used to stretch the slave.
-I<Style> must have one of the following values:
-
-=over 12
-
-=item B<none>
-
-Give the slave its requested dimensions plus any internal padding
-requested with B<-ipadx> or B<-ipady>. This is the default.
-
-=item B<x>
-
-Stretch the slave horizontally to fill the entire width of its
-parcel (except leave external padding as specified by B<-padx>).
-
-=item B<y>
-
-Stretch the slave vertically to fill the entire height of its
-parcel (except leave external padding as specified by B<-pady>).
-
-=item B<both>
-
-Stretch the slave both horizontally and vertically.
-
-=back
-
-=item B<-in> =E<gt> I<$master>
-
-Insert the slave(s) at the end of the packing order for the master
-window given by I<$master>.
-
-=item B<-ipadx> =E<gt> I<amount>
-
-I<Amount> specifies how much horizontal internal padding to
-leave on each side of the slave(s).
-I<Amount> must be a valid screen distance, such as B<2> or B<.5c>.
-It defaults to 0.
-
-=item B<-ipady> =E<gt> I<amount>
-
-I<Amount> specifies how much vertical internal padding to
-leave on each side of the slave(s).
-I<Amount> defaults to 0.
-
-=item B<-padx> =E<gt> I<amount>
-
-I<Amount> specifies how much horizontal external padding to
-leave on each side of the slave(s).
-I<Amount> defaults to 0.
-
-=item B<-pady> =E<gt> I<amount>
-
-I<Amount> specifies how much vertical external padding to
-leave on each side of the slave(s).
-I<Amount> defaults to 0.
-
-=item B<-side> =E<gt> I<side>
-
-Specifies which side of the master the slave(s) will be packed against.
-Must be B<left>, B<right>, B<top>, or B<bottom>.
-Defaults to B<top>.
-
-=back
-
-=back
-
-If no B<-in>, B<-after> or B<-before> option is specified
-then slave will be inserted at the end of the packing list
-for its parent unless it is already managed by the packer (in which
-case it will be left where it is).
-If one of these options is specified then slave will be
-inserted at the specified point.
-If the slave are already managed by the geometry manager
-then any unspecified options for them retain their previous values rather
-than receiving default values.
-
-=over 4
-
-=item I<$slave>-E<gt>B<packConfigure>?(I<options>)?
-
-Same as B<pack>.
-
-=item I<$slave>-E<gt>B<packForget>
-
-Removes I<slave> from the packing order for its
-master and unmaps its window.
-The slave will no longer be managed by the packer.
-
-=item I<$slave>-E<gt>B<packInfo>
-
-Returns a list whose elements are the current configuration state of
-the slave given by I<$slave> in the same option-value form that
-might be specified to B<packConfigure>.
-The first two elements of the list are ``B<-in>=E<gt>I<$master>'' where
-I<$master> is the slave's master.
-
-=item I<$master>-E<gt>B<packPropagate>?(I<boolean>)?
-
-If I<boolean> has a true boolean value such as B<1> or B<on>
-then propagation is enabled for I<$master>,
-(see L<"GEOMETRY PROPAGATION"> below).
-If I<boolean> has a false boolean value then propagation is
-disabled for I<$master>.
-In either of these cases an empty string is returned.
-If I<boolean> is omitted then the method returns B<0> or
-B<1> to indicate whether propagation is currently enabled
-for I<$master>.
-Propagation is enabled by default.
-
-=item I<$master>-E<gt>B<packSlaves>
-
-Returns a list of all of the slaves in the packing order for I<$master>.
-The order of the slaves in the list is the same as their order in
-the packing order.
-If I<$master> has no slaves then an empty list/string is returned in
-array/scalar context, respectively
-
-=back
-
-=head1 THE PACKER ALGORITHM
-
-For each master the packer maintains an ordered list of slaves
-called the I<packing list>.
-The B<-in>, B<-after>, and B<-before> configuration
-options are used to specify the master for each slave and the slave's
-position in the packing list.
-If none of these options is given for a slave then the slave
-is added to the end of the packing list for its parent.
-
-The packer arranges the slaves for a master by scanning the
-packing list in order.
-At the time it processes each slave, a rectangular area within
-the master is still unallocated.
-This area is called the I<cavity>; for the first slave it
-is the entire area of the master.
-
-For each slave the packer carries out the following steps:
-
-=over 4
-
-=item [1]
-
-The packer allocates a rectangular I<parcel> for the slave
-along the side of the cavity given by the slave's B<-side> option.
-If the side is top or bottom then the width of the parcel is
-the width of the cavity and its height is the requested height
-of the slave plus the B<-ipady> and B<-pady> options.
-For the left or right side the height of the parcel is
-the height of the cavity and the width is the requested width
-of the slave plus the B<-ipadx> and B<-padx> options.
-The parcel may be enlarged further because of the B<-expand>
-option (see L<"EXPANSION"> below)
-
-=item [2]
-
-The packer chooses the dimensions of the slave.
-The width will normally be the slave's requested width plus
-twice its B<-ipadx> option and the height will normally be
-the slave's requested height plus twice its B<-ipady>
-option.
-However, if the B<-fill> option is B<x> or B<both>
-then the width of the slave is expanded to fill the width of the parcel,
-minus twice the B<-padx> option.
-If the B<-fill> option is B<y> or B<both>
-then the height of the slave is expanded to fill the width of the parcel,
-minus twice the B<-pady> option.
-
-=item [3]
-
-The packer positions the slave over its parcel.
-If the slave is smaller than the parcel then the B<-anchor>
-option determines where in the parcel the slave will be placed.
-If B<-padx> or B<-pady> is non-zero, then the given
-amount of external padding will always be left between the
-slave and the edges of the parcel.
-
-Once a given slave has been packed, the area of its parcel
-is subtracted from the cavity, leaving a smaller rectangular
-cavity for the next slave.
-If a slave doesn't use all of its parcel, the unused space
-in the parcel will not be used by subsequent slaves.
-If the cavity should become too small to meet the needs of
-a slave then the slave will be given whatever space is
-left in the cavity.
-If the cavity shrinks to zero size, then all remaining slaves
-on the packing list will be unmapped from the screen until
-the master window becomes large enough to hold them again.
-
-=back
-
-=head1 EXPANSION
-
-If a master window is so large that there will be extra space
-left over after all of its slaves have been packed, then the
-extra space is distributed uniformly among all of the slaves
-for which the B<-expand> option is set.
-Extra horizontal space is distributed among the expandable
-slaves whose B<-side> is B<left> or B<right>,
-and extra vertical space is distributed among the expandable
-slaves whose B<-side> is B<top> or B<bottom>.
-
-=head1 GEOMETRY PROPAGATION
-
-The packer normally computes how large a master must be to
-just exactly meet the needs of its slaves, and it sets the
-requested width and height of the master to these dimensions.
-This causes geometry information to propagate up through a
-window hierarchy to a top-level window so that the entire
-sub-tree sizes itself to fit the needs of the leaf windows.
-However, the B<packPropagate> method may be used to
-turn off propagation for one or more masters.
-If propagation is disabled then the packer will not set
-the requested width and height of the packer.
-This may be useful if, for example, you wish for a master
-window to have a fixed size that you specify.
-
-=head1 RESTRICTIONS ON MASTER WINDOWS
-
-The master for each slave must either be the slave's parent
-(the default) or a descendant of the slave's parent.
-This restriction is necessary to guarantee that the
-slave can be placed over any part of its master that is
-visible without danger of the slave being clipped by its parent.
-
-=head1 PACKING ORDER
-
-If the master for a slave is not its parent then you must make sure
-that the slave is higher in the stacking order than the master.
-Otherwise the master will obscure the slave and it will appear as
-if the slave hasn't been packed correctly.
-The easiest way to make sure the slave is higher than the master is
-to create the master window first: the most recently created window
-will be highest in the stacking order.
-Or, you can use the B<raise> and B<lower> methods to change
-the stacking order of either the master or the slave.
-
-=head1 SEE ALSO
-
-L<Tk::form|Tk::form>
-L<Tk::grid|Tk::grid>
-L<Tk::place|Tk::place>
-
-=head1 KEYWORDS
-
-geometry manager, location, packer, parcel, propagation, size
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/palette.pod b/Master/tlpkg/tlperl/lib/Tk/palette.pod
deleted file mode 100644
index 35a6ca0a40b..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/palette.pod
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright (c) 1995-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::palette - Modify the Tk color palette
-
-=for category Creating and Configuring Widgets
-
-=head1 SYNOPSIS
-
-I<$widget>-E<gt>B<setPalette>(I<background>)
-
-I<$widget>-E<gt>B<setPalette(>I<name>=E<gt>I<value>?,I<name>=E<gt>I<value ...>?)
-
-I<$widget>-E<gt>B<bisque>
-
-=head1 DESCRIPTION
-
-The B<setPalette> method changes the color scheme for Tk.
-It does this by modifying the colors of existing widgets and by changing
-the option database so that future widgets will use the new color scheme.
-If B<setPalette> is invoked with a single argument, the
-argument is the name of a color to use as the normal background
-color; B<setPalette> will compute a complete color palette
-from this background color.
-Alternatively, the arguments to B<setPalette> may consist of any number
-of I<name>-I<value> pairs, where the first argument of the pair
-is the name of an option in the Tk option database and the second
-argument is the new value to use for that option. The following
-database names are currently supported:
-
- activeBackground foreground selectColor
- activeForeground highlightBackground selectBackground
- background highlightColor selectForeground
- disabledForeground insertBackground troughColor
-
-B<setPalette> tries to compute reasonable defaults for any
-options that you don't specify. You can specify options other
-than the above ones and Tk will change those options on widgets as
-well. This feature may be useful if you are using custom widgets with
-additional color options.
-
-Once it has computed the new value to use for each of the color options,
-B<setPalette> scans the widget hierarchy to modify the options
-of all existing widgets. For each widget, it checks to see if any
-of the above options is defined for the widget. If so, and if the
-option's current value is the default, then the value is changed; if
-the option has a value other than the default, B<setPalette>
-will not change it. The default for an option is the one provided by
-the widget (B<($w-E<gt>configure('option'))[3]>) unless
-B<setPalette> has been run previously, in which case it is the
-value specified in the previous invocation of B<setPalette>.
-
-After modifying all the widgets in the application, B<setPalette>
-adds options to the option database to change the defaults for
-widgets created in the future. The new options are added at
-priority B<widgetDefault>, so they will be overridden by options
-from the .Xdefaults file or options specified on the command-line
-that creates a widget.
-
-The method B<bisque> is provided for backward compatibility:
-it restores the application's colors to the light brown (``bisque'')
-color scheme used in Tk 3.6 and earlier versions.
-
-=head1 BUGS
-
-The use of option database names rather than the configure names is
-understandable given the mechanism (copied from Tcl/Tk), but
-is potentially confusing.
-
-The interpolation of different 'shades' of color used for 3D effects
-in 'RGB' space can lead to undesirable changes in 'hue'.
-Interpolation in 'HSV' (as used in B<Tk::ColorEditor>) would be more
-robust and X11R5's color support probably even more so.
-
-=head1 SEE ALSO
-
-L<Tk::options|Tk::options>
-
-=head1 KEYWORDS
-
-bisque, color, palette
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/place.pod b/Master/tlpkg/tlperl/lib/Tk/place.pod
deleted file mode 100644
index 9f7e74f210f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/place.pod
+++ /dev/null
@@ -1,283 +0,0 @@
-# Copyright (c) 1992 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::place - Geometry manager for fixed or rubber-sheet placement
-
-=for category Tk Geometry Management
-
-=head1 SYNOPSIS
-
-S< >I<$widget>->B<place>?(I<-option>=>I<value>?, I<-option>=>I<value>, ...)?
-
-S< >I<$widget>->B<placeForget>
-
-S< >I<$widget>->B<placeInfo>
-
-S< >I<$master>->B<placeSlaves>
-
-=head1 DESCRIPTION
-
-The placer is a geometry manager for Tk.
-It provides simple fixed placement of windows, where you specify
-the exact size and location of one window, called the I<slave>,
-within another window, called the I<master>.
-The placer also provides rubber-sheet placement, where you specify the
-size and location of the slave in terms of the dimensions of
-the master, so that the slave changes size and location
-in response to changes in the size of the master.
-Lastly, the placer allows you to mix these styles of placement so
-that, for example, the slave has a fixed width and height but is
-centered inside the master.
-
-=over 4
-
-=item I<$slave>->B<place>?(I<-option>=>I<value>?, I<-option>=>I<value>, ...?)?
-
-The B<place> method arranges for the placer
-to manage the geometry of I<$slave>.
-The remaining arguments consist of one or more I<-option>=>I<value>
-pairs that specify the way in which I<$slave>'s
-geometry is managed. I<-option> may have any of the values accepted
-by the L<< placeConfigure|/$slave->placeConfigure >> method.
-
-The B<place> method returns I<$slave>.
-
-=item I<$slave>->B<placeConfigure>?(I<-option>=>I<value>?, I<-option>=>I<value>, ...?)?
-
-Query or modify the geometry options of the I<$slave>. If no option is
-specified, this method returns a list describing the available
-options (see Tk_ConfigureInfo for information on the format of this
-list). If option is specified with no value, then the command returns
-a list describing the one named option (this list will be identical to
-the corresponding sublist of the value returned if no option is
-specified). If one or more option-value pairs are specified, then the
-method modifies the given option(s) to have the given value(s); in
-this case the command returns C<undef>.
-
-The following I<-option>=>I<value> pairs are supported:
-
-=over 8
-
-=item B<-anchor> => I<where>
-
-I<Where> specifies which point of I<$slave> is to be positioned
-at the (x,y) location selected by the B<-x>, B<-y>,
-B<-relx>, and B<-rely> options.
-The anchor point is in terms of the outer area of I<$slave>
-including its border, if any.
-Thus if I<where> is B<se> then the lower-right corner of
-I<$slave>'s border will appear at the given (x,y) location
-in the master.
-The anchor position defaults to B<nw>.
-
-=item B<-bordermode> => I<mode>
-
-I<Mode> determines the degree to which borders within the
-master are used in determining the placement of the slave.
-The default and most common value is B<inside>.
-In this case the placer considers the area of the master to
-be the innermost area of the master, inside any border:
-an option of B<-x>=>B<0> corresponds to an x-coordinate just
-inside the border and an option of B<-relwidth>=>1.0
-means I<$slave> will fill the area inside the master's
-border.
-If I<mode> is B<outside> then the placer considers
-the area of the master to include its border;
-this mode is typically used when placing I<$slave>
-outside its master, as with the options
-B<-x>=>B<0>, B<-y>=>B<0>, B<-anchor>=>B<ne>.
-Lastly, I<mode> may be specified as B<ignore>, in which
-case borders are ignored: the area of the master is considered
-to be its official X area, which includes any internal border but
-no external border. A bordermode of B<ignore> is probably
-not very useful.
-
-=item B<-height> => I<size>
-
-I<Size> specifies the height for I<$slave> in screen units
-(i.e. any of the forms accepted by B<Tk_GetPixels>).
-The height will be the outer dimension of I<$slave> including its
-border, if any.
-If I<size> is an empty string, or if no B<-height> or
-B<-relheight> option is specified, then the height requested
-internally by the window will be used.
-
-=item B<-in> => I<$master>
-
-I<$master> is the reference to the window relative
-to which I<$slave> is to be placed.
-I<$master> must either be I<$slave>'s parent or a descendant
-of I<$slave>'s parent.
-In addition, I<$master> and I<$slave> must both be descendants
-of the same top-level window.
-These restrictions are necessary to guarantee
-that I<$slave> is visible whenever I<$master> is visible.
-If this option isn't specified then the master defaults to
-I<$slave>'s parent.
-
-=item B<-relheight> => I<size>
-
-I<Size> specifies the height for I<$slave>.
-In this case the height is specified as a floating-point number
-relative to the height of the master: 0.5 means I<$slave> will
-be half as high as the master, 1.0 means I<$slave> will have
-the same height as the master, and so on.
-If both B<-height> and B<-relheight> are specified for a slave,
-their values are summed. For example, B<-relheight>=>1.0, B<-height>=>-2
-makes the slave 2 pixels shorter than the master.
-
-=item B<-relwidth> => I<size>
-
-I<Size> specifies the width for I<$slave>.
-In this case the width is specified as a floating-point number
-relative to the width of the master: 0.5 means I<$slave> will
-be half as wide as the master, 1.0 means I<$slave> will have
-the same width as the master, and so on.
-If both B<-width> and B<-relwidth> are specified for a slave,
-their values are summed. For example, B<-relwidth>=>1.0, B<-width>=>5
-makes the slave 5 pixels wider than the master.
-
-=item B<-relx> => I<location>
-
-I<Location> specifies the x-coordinate within the master window
-of the anchor point for I<$slave> widget.
-In this case the location is specified in a relative fashion
-as a floating-point number: 0.0 corresponds to the left edge
-of the master and 1.0 corresponds to the right edge of the master.
-I<Location> need not be in the range 0.0-1.0.
-If both B<-x> and B<-relx> are specified for a slave
-then their values are summed. For example, "B<-relx>=>0.5, B<-x>=-2"
-positions the left edge of the slave 2 pixels to the left of the
-center of its master.
-
-=item B<-rely> => I<location>
-
-I<Location> specifies the y-coordinate within the master window
-of the anchor point for I<$slave> widget.
-In this case the value is specified in a relative fashion
-as a floating-point number: 0.0 corresponds to the top edge
-of the master and 1.0 corresponds to the bottom edge of the master.
-I<Location> need not be in the range 0.0-1.0.
-If both B<-y> and B<-rely> are specified for a slave
-then their values are summed. For example, B<-rely>=>0.5, B<-x>=>3
-positions the top edge of the slave 3 pixels below the
-center of its master.
-
-=item B<-width> => I<size>
-
-I<Size> specifies the width for I<$slave> in screen units
-(i.e. any of the forms accepted by B<Tk_GetPixels>).
-The width will be the outer width of I<$slave> including its
-border, if any.
-If I<size> is an empty string, or if no B<-width>
-or B<-relwidth> option is specified, then the width requested
-internally by the window will be used.
-
-=item B<-x> => I<location>
-
-I<Location> specifies the x-coordinate within the master window
-of the anchor point for I<$slave> widget.
-The location is specified in screen units (i.e. any of the forms
-accepted by B<Tk_GetPixels>) and need not lie within the bounds
-of the master window.
-
-=item B<-y> => I<location>
-
-I<Location> specifies the y-coordinate within the master window
-of the anchor point for I<$slave> widget.
-The location is specified in screen units (i.e. any of the forms
-accepted by B<Tk_GetPixels>) and need not lie within the bounds
-of the master window.
-
-=back
-
-If the same value is specified separately with
-two different options, such as B<-x> and B<-relx>, then
-the most recent option is used and the older one is ignored.
-
-=item I<$slave>->B<placeForget>
-
-The B<placeForget> method causes the placer to stop managing
-the geometry of I<$slave>. As a side effect of this method call
-I<$slave> will be unmapped so that it doesn't appear on the
-screen.
-If I<$slave> isn't currently managed by the placer then the
-method call has no effect.
-B<placeForget> returns an empty string as result.
-
-=item I<$slave>->B<placeInfo>
-
-The B<placeInfo> method returns a list giving the current
-configuration of I<$slave>.
-The list consists of I<-option>=>I<value> pairs in exactly the
-same form as might be specified to the B<place>
-method.
-
-=item I<$slave>->B<placeSlaves>
-
-The B<placeSlaves> method returns a list of all the slave
-windows for which I<$master> is the master.
-If there are no slaves for I<$master> then an empty list is
-returned.
-
-=back
-
-If the configuration of a window has been retrieved with
-B<placeInfo>, that configuration can be restored later by
-first using B<placeForget> to erase any existing information
-for the window and then invoking B<place> with
-the saved information.
-
-=head1 FINE POINTS
-
-It is not necessary for the master window to be the parent
-of the slave window.
-This feature is useful in at least two situations.
-First, for complex window layouts it means you can create a
-hierarchy of subwindows whose only purpose
-is to assist in the layout of the parent.
-The ``I<real children>'' of the parent (i.e. the windows that
-are significant for the application's user interface) can be
-children of the parent yet be placed inside the windows
-of the geometry-management hierarchy.
-This means that the path names of the ``I<real children>''
-don't reflect the geometry-management hierarchy and users
-can specify options for the real children
-without being aware of the structure of the geometry-management
-hierarchy.
-
-A second reason for having a master different than the slave's
-parent is to tie two siblings together.
-For example, the placer can be used to force a window always to
-be positioned centered just below one of its
-siblings by specifying the configuration
-
-S< >B<-in>=>I<$sibling>, B<-relx>=>0.5, B<-rely>=>1.0,
-B<-anchor>=>'n', B<-bordermode>=>'outside'
-
-Whenever the I<$sibling> widget is repositioned in the future, the slave
-will be repositioned as well.
-
-Unlike many other geometry managers (such as the packer)
-the placer does not make any attempt to manipulate the geometry of
-the master windows or the parents of slave windows (i.e. it doesn't
-set their requested sizes).
-To control the sizes of these windows, make them windows like
-frames and canvases that provide configuration options for this purpose.
-
-=head1 SEE ALSO
-
-L<Tk::form>, L<Tk::grid>, L<Tk::pack>
-
-=head1 KEYWORDS
-
-geometry manager, height, location, master, place, rubber sheet, slave, width
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/prolog.ps b/Master/tlpkg/tlperl/lib/Tk/prolog.ps
deleted file mode 100644
index 409e06a65a0..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/prolog.ps
+++ /dev/null
@@ -1,284 +0,0 @@
-%%BeginProlog
-50 dict begin
-
-% This is a standard prolog for Postscript generated by Tk's canvas
-% widget.
-% SCCS: @(#) prolog.ps 1.5 96/02/17 17:45:11
-
-% The definitions below just define all of the variables used in
-% any of the procedures here. This is needed for obscure reasons
-% explained on p. 716 of the Postscript manual (Section H.2.7,
-% "Initializing Variables," in the section on Encapsulated Postscript).
-
-/baseline 0 def
-/stipimage 0 def
-/height 0 def
-/justify 0 def
-/lineLength 0 def
-/spacing 0 def
-/stipple 0 def
-/strings 0 def
-/xoffset 0 def
-/yoffset 0 def
-/tmpstip null def
-
-% Define the array ISOLatin1Encoding (which specifies how characters are
-% encoded for ISO-8859-1 fonts), if it isn't already present (Postscript
-% level 2 is supposed to define it, but level 1 doesn't).
-
-systemdict /ISOLatin1Encoding known not {
- /ISOLatin1Encoding [
- /space /space /space /space /space /space /space /space
- /space /space /space /space /space /space /space /space
- /space /space /space /space /space /space /space /space
- /space /space /space /space /space /space /space /space
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
- /quoteright
- /parenleft /parenright /asterisk /plus /comma /minus /period /slash
- /zero /one /two /three /four /five /six /seven
- /eight /nine /colon /semicolon /less /equal /greater /question
- /at /A /B /C /D /E /F /G
- /H /I /J /K /L /M /N /O
- /P /Q /R /S /T /U /V /W
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
- /quoteleft /a /b /c /d /e /f /g
- /h /i /j /k /l /m /n /o
- /p /q /r /s /t /u /v /w
- /x /y /z /braceleft /bar /braceright /asciitilde /space
- /space /space /space /space /space /space /space /space
- /space /space /space /space /space /space /space /space
- /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent
- /dieresis /space /ring /cedilla /space /hungarumlaut /ogonek /caron
- /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
- /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
- /registered /macron
- /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph
- /periodcentered
- /cedillar /onesuperior /ordmasculine /guillemotright /onequarter
- /onehalf /threequarters /questiondown
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex
- /Idieresis
- /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn
- /germandbls
- /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
- /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex
- /idieresis
- /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn
- /ydieresis
- ] def
-} if
-
-% font ISOEncode font
-% This procedure changes the encoding of a font from the default
-% Postscript encoding to ISOLatin1. It's typically invoked just
-% before invoking "setfont". The body of this procedure comes from
-% Section 5.6.1 of the Postscript book.
-
-/ISOEncode {
- dup length dict begin
- {1 index /FID ne {def} {pop pop} ifelse} forall
- /Encoding ISOLatin1Encoding def
- currentdict
- end
-
- % I'm not sure why it's necessary to use "definefont" on this new
- % font, but it seems to be important; just use the name "Temporary"
- % for the font.
-
- /Temporary exch definefont
-} bind def
-
-% StrokeClip
-%
-% This procedure converts the current path into a clip area under
-% the assumption of stroking. It's a bit tricky because some Postscript
-% interpreters get errors during strokepath for dashed lines. If
-% this happens then turn off dashes and try again.
-
-/StrokeClip {
- {strokepath} stopped {
- (This Postscript printer gets limitcheck overflows when) =
- (stippling dashed lines; lines will be printed solid instead.) =
- [] 0 setdash strokepath} if
- clip
-} bind def
-
-% desiredSize EvenPixels closestSize
-%
-% The procedure below is used for stippling. Given the optimal size
-% of a dot in a stipple pattern in the current user coordinate system,
-% compute the closest size that is an exact multiple of the device's
-% pixel size. This allows stipple patterns to be displayed without
-% aliasing effects.
-
-/EvenPixels {
- % Compute exact number of device pixels per stipple dot.
- dup 0 matrix currentmatrix dtransform
- dup mul exch dup mul add sqrt
-
- % Round to an integer, make sure the number is at least 1, and compute
- % user coord distance corresponding to this.
- dup round dup 1 lt {pop 1} if
- exch div mul
-} bind def
-
-% width height string StippleFill --
-%
-% Given a path already set up and a clipping region generated from
-% it, this procedure will fill the clipping region with a stipple
-% pattern. "String" contains a proper image description of the
-% stipple pattern and "width" and "height" give its dimensions. Each
-% stipple dot is assumed to be about one unit across in the current
-% user coordinate system. This procedure trashes the graphics state.
-
-/StippleFill {
- % The following code is needed to work around a NeWSprint bug.
-
- /tmpstip 1 index def
-
- % Change the scaling so that one user unit in user coordinates
- % corresponds to the size of one stipple dot.
- 1 EvenPixels dup scale
-
- % Compute the bounding box occupied by the path (which is now
- % the clipping region), and round the lower coordinates down
- % to the nearest starting point for the stipple pattern. Be
- % careful about negative numbers, since the rounding works
- % differently on them.
-
- pathbbox
- 4 2 roll
- 5 index div dup 0 lt {1 sub} if cvi 5 index mul 4 1 roll
- 6 index div dup 0 lt {1 sub} if cvi 6 index mul 3 2 roll
-
- % Stack now: width height string y1 y2 x1 x2
- % Below is a doubly-nested for loop to iterate across this area
- % in units of the stipple pattern size, going up columns then
- % across rows, blasting out a stipple-pattern-sized rectangle at
- % each position
-
- 6 index exch {
- 2 index 5 index 3 index {
- % Stack now: width height string y1 y2 x y
-
- gsave
- 1 index exch translate
- 5 index 5 index true matrix tmpstip imagemask
- grestore
- } for
- pop
- } for
- pop pop pop pop pop
-} bind def
-
-% -- AdjustColor --
-% Given a color value already set for output by the caller, adjusts
-% that value to a grayscale or mono value if requested by the CL
-% variable.
-
-/AdjustColor {
- CL 2 lt {
- currentgray
- CL 0 eq {
- .5 lt {0} {1} ifelse
- } if
- setgray
- } if
-} bind def
-
-% x y strings spacing xoffset yoffset justify stipple DrawText --
-% This procedure does all of the real work of drawing text. The
-% color and font must already have been set by the caller, and the
-% following arguments must be on the stack:
-%
-% x, y - Coordinates at which to draw text.
-% strings - An array of strings, one for each line of the text item,
-% in order from top to bottom.
-% spacing - Spacing between lines.
-% xoffset - Horizontal offset for text bbox relative to x and y: 0 for
-% nw/w/sw anchor, -0.5 for n/center/s, and -1.0 for ne/e/se.
-% yoffset - Vertical offset for text bbox relative to x and y: 0 for
-% nw/n/ne anchor, +0.5 for w/center/e, and +1.0 for sw/s/se.
-% justify - 0 for left justification, 0.5 for center, 1 for right justify.
-% stipple - Boolean value indicating whether or not text is to be
-% drawn in stippled fashion. If text is stippled,
-% procedure StippleText must have been defined to call
-% StippleFill in the right way.
-%
-% Also, when this procedure is invoked, the color and font must already
-% have been set for the text.
-
-/DrawText {
- /stipple exch def
- /justify exch def
- /yoffset exch def
- /xoffset exch def
- /spacing exch def
- /strings exch def
-
- % First scan through all of the text to find the widest line.
-
- /lineLength 0 def
- strings {
- stringwidth pop
- dup lineLength gt {/lineLength exch def} {pop} ifelse
- newpath
- } forall
-
- % Compute the baseline offset and the actual font height.
-
- 0 0 moveto (TXygqPZ) false charpath
- pathbbox dup /baseline exch def
- exch pop exch sub /height exch def pop
- newpath
-
- % Translate coordinates first so that the origin is at the upper-left
- % corner of the text's bounding box. Remember that x and y for
- % positioning are still on the stack.
-
- translate
- lineLength xoffset mul
- strings length 1 sub spacing mul height add yoffset mul translate
-
- % Now use the baseline and justification information to translate so
- % that the origin is at the baseline and positioning point for the
- % first line of text.
-
- justify lineLength mul baseline neg translate
-
- % Iterate over each of the lines to output it. For each line,
- % compute its width again so it can be properly justified, then
- % display it.
-
- strings {
- dup stringwidth pop
- justify neg mul 0 moveto
- stipple {
-
- % The text is stippled, so turn it into a path and print
- % by calling StippledText, which in turn calls StippleFill.
- % Unfortunately, many Postscript interpreters will get
- % overflow errors if we try to do the whole string at
- % once, so do it a character at a time.
-
- gsave
- /char (X) def
- {
- char 0 3 -1 roll put
- currentpoint
- gsave
- char true charpath clip StippleText
- grestore
- char stringwidth translate
- moveto
- } forall
- grestore
- } {show} ifelse
- 0 spacing neg translate
- } forall
-} bind def
-
-%%EndProlog
diff --git a/Master/tlpkg/tlperl/lib/Tk/selection.pod b/Master/tlpkg/tlperl/lib/Tk/selection.pod
deleted file mode 100644
index f8a3ce54856..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/selection.pod
+++ /dev/null
@@ -1,159 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::Selection - Manipulate the X selection
-
-=for category User Interaction
-
-=head1 SYNOPSIS
-
-I<$widget>-E<gt>B<Selection>I<Option>?(I<args>)?
-
-=head1 DESCRIPTION
-
-This command provides an interface to the X selection mechanism and
-implements the full selection functionality described in the
-X Inter-Client Communication Conventions Manual (ICCCM).
-
-The widget object used to invoke the methods below determines which
-display is used to access the selection.
-In order to avoid conflicts with B<selection> methods of widget classes
-(e.g. B<Text>) this set of methods uses the prefix B<Selection>.
-The following methods are currently supported:
-
-=over 4
-
-=item I<$widget>-E<gt>B<SelectionClear>?(B<-selection>=E<gt>I<selection>)?
-
-If I<selection> exists anywhere on I<$widget>'s display, clear it
-so that no window owns the selection anymore. I<Selection>
-specifies the X selection that should be cleared, and should be an
-atom name such as PRIMARY or CLIPBOARD; see the Inter-Client
-Communication Conventions Manual for complete details.
-I<Selection> defaults to PRIMARY.
-Returns an empty string.
-
-=item I<$widget>-E<gt>B<SelectionGet>?(?B<-selection>=E<gt>I<selection>?,?B<-type>=E<gt>I<type>?)?
-
-Retrieves the value of I<selection> from I<$widget>'s display and
-returns it as a result. I<Selection> defaults to PRIMARY.
-
-I<Type> specifies the form in which the selection is to be returned
-(the desired ``target'' for conversion, in ICCCM terminology), and
-should be an atom name such as STRING or FILE_NAME; see the
-Inter-Client Communication Conventions Manual for complete details.
-I<Type> defaults to STRING. The selection owner may choose to
-return the selection in any of several different representation
-formats, such as STRING, ATOM, INTEGER, etc. (this format is different
-than the selection type; see the ICCCM for all the confusing details).
-
-If I<format> is not STRING then things get messy, the following
-description is from the Tcl/Tk man page as yet incompetely translated for
-the perl version - it is misleading at best.
-
-If the selection is returned in a non-string format, such as INTEGER
-or ATOM, the B<SelectionGet> converts it to a list of perl
-values: atoms are converted to their
-textual names, and anything else is converted integers.
-
-A goal of the perl port is to provide better handling of different
-formats than Tcl/Tk does, which should be possible given perl's
-wider range of ``types''. Although some thought went into this
-in very early days of perl/Tk what exactly happens is still
-"not quite right" and subject to change.
-
-=item I<$widget>-E<gt>B<SelectionHandle>(?B<-selection>=E<gt>I<selection>?,?B<-type>=E<gt>I<type>?,?B<-format>=E<gt>I<format>? I<callback>)
-
-Creates a handler for selection requests, such that I<callback> will
-be executed whenever I<selection> is owned by I<$widget> and
-someone attempts to retrieve it in the form given by I<type>
-(e.g. I<type> is specified in the B<selection get> command).
-I<Selection> defaults to PRIMARY, I<type> defaults to STRING, and
-I<format> defaults to STRING. If I<callback> is an empty string
-then any existing handler for I<$widget>, I<type>, and
-I<selection> is removed.
-
-When I<selection> is requested, I<$widget> is the selection owner,
-and I<type> is the requested type, I<callback> will be executed
-with two additional arguments.
-The two additional arguments
-are I<offset> and I<maxBytes>: I<offset> specifies a starting
-character position in the selection and I<maxBytes> gives the maximum
-number of bytes to retrieve. The command should return a value consisting
-of at most I<maxBytes> of the selection, starting at position
-I<offset>. For very large selections (larger than I<maxBytes>)
-the selection will be retrieved using several invocations of I<callback>
-with increasing I<offset> values. If I<callback> returns a string
-whose length is less than I<maxBytes>, the return value is assumed to
-include all of the remainder of the selection; if the length of
-I<callback>'s result is equal to I<maxBytes> then
-I<callback> will be invoked again, until it eventually
-returns a result shorter than I<maxBytes>. The value of I<maxBytes>
-will always be relatively large (thousands of bytes).
-
-If I<callback> returns an error (e.g. via B<die>)
-then the selection retrieval is rejected
-just as if the selection didn't exist at all.
-
-The I<format> argument specifies the representation that should be
-used to transmit the selection to the requester (the second column of
-Table 2 of the ICCCM), and defaults to STRING. If I<format> is
-STRING, the selection is transmitted as 8-bit ASCII characters (i.e.
-just in the form returned by I<command>).
-
-If I<format> is not STRING then things get messy, the following
-description is from the Tcl/Tk man page as yet untranslated for
-the perl version - it is misleading at best.
-
-If I<format> is
-ATOM, then the return value from I<command> is divided into fields
-separated by white space; each field is converted to its atom value,
-and the 32-bit atom value is transmitted instead of the atom name.
-For any other I<format>, the return value from I<command> is
-divided into fields separated by white space and each field is
-converted to a 32-bit integer; an array of integers is transmitted
-to the selection requester.
-
-The I<format> argument is needed only for compatibility with
-many selection requesters, except Tcl/Tk. If Tcl/Tk is being
-used to retrieve the selection then the value is converted back to
-a string at the requesting end, so I<format> is
-irrelevant.
-
-A goal of the perl port is to provide better handling of different
-formats than Tcl/Tk does, which should be possible given perl's
-wider range of ``types''. Although some thought went into this
-in very early days of perl/Tk what exactly happens is still
-"not quite right" and subject to change.
-
-=item I<$widget>-E<gt>B<SelectionOwner>?(B<-selection>=E<gt>I<selection>)?
-
-B<SelectionOwner> returns the
-window in this application that owns I<selection> on the display
-containing I<$widget>, or an empty string if no window in this
-application owns the selection. I<Selection> defaults to PRIMARY.
-
-=item I<$widget>-E<gt>B<SelectionOwn>?(?B<-command>=E<gt>I<callback>?,?B<-selection>=E<gt>I<selection>?)?
-
-B<SelectionOwn> causes I<$widget> to become
-the new owner of I<selection> on I<$widget>'s display, returning
-an empty string as result. The existing owner, if any, is notified
-that it has lost the selection.
-If I<callback> is specified, it will be executed when
-some other window claims ownership of the selection away from
-I<$widget>. I<Selection> defaults to PRIMARY.
-
-=back
-
-=head1 KEYWORDS
-
-clear, format, handler, ICCCM, own, selection, target, type
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/send.pod b/Master/tlpkg/tlperl/lib/Tk/send.pod
deleted file mode 100644
index 4a6e41e4c1e..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/send.pod
+++ /dev/null
@@ -1,118 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::send - Execute a command in a different application
-
-=for category Tk Generic Methods
-
-=head1 SYNOPSIS
-
-S< >I<$result> = I<$widget>-E<gt>B<send>(?I<options>,?I<app>=E<gt>I<cmd>?I<arg arg ...>?)
-
-=head1 DESCRIPTION
-
-This method arranges for I<cmd> (and I<arg>s) to be 'sent' to the
-application named by I<app>. It returns the result or
-an error (hence above should probably be 'wrapped' in B<eval{}> and $@ tested).
-I<App> may be the name of any application whose main window is
-on the display containing the sender's main window; it need not
-be within the same process.
-If no I<arg> arguments are present, then the string to be sent
-is contained entirely within the I<cmd> argument. If one or
-more I<arg>s are present, they are concatenated separated by white space to
-form the string to be sent.
-
-If the initial arguments of the call begin with ``-''
-they are treated as options. The following options are
-currently defined:
-
-=over 4
-
-=item B<-async>
-
-Requests asynchronous invocation. In this case the B<send>
-command will complete immediately without waiting for I<cmd>
-to complete in the target application; no result will be available
-and errors in the sent command will be ignored.
-If the target application is in the same process as the sending
-application then the B<-async> option is ignored.
-
-=item B<-->
-
-Serves no purpose except to terminate the list of options. This
-option is needed only if I<app> could contain a leading ``-''
-character.
-
-=back
-
-=head1 APPLICATION NAMES
-
-The name of an application is set initially from the name of the
-program or script that created the application.
-You can query and change the name of an application with the
-B<appname> method.
-
-=head1 WHAT IS A SEND
-
-The B<send> mechanism was designed to allow Tcl/Tk applications
-to send Tcl Scripts to each other. This does not map very well onto perl/Tk.
-Perl/Tk "sends" a string to I<app>, what happens as a result of this
-depends on the receiving application. If the other application is a Tcl/Tk4.*
-application it will be treated as a Tcl Script. If the "other" application is
-perl/Tk application (including sends to self) then the string is
-passed as an argument to a method call of the following form:
-
-I<$mainwindow>-E<gt>B<Receive(>I<string>);
-
-There is a default (AutoLoaded) B<Tk::Receive> which returns an error to the
-sending application. A particular application may define its own
-B<Receive> method in any class in B<MainWindow>'s inheritance tree
-to do whatever it sees fit. For example it could B<eval> the string,
-possibly in a B<Safe> "compartment".
-
-If a Tcl/Tk application "sends" anything to a perl/Tk application
-then the perl/Tk application would have to attempt to interpret the
-incoming string as a Tcl Script. Simple cases are should not be too hard to
-emulate (split on white space and treat first element as "command" and other
-elements as arguments).
-
-=head1 SECURITY
-
-The B<send> command is potentially a serious security loophole,
-since any application that can connect to your X server can send
-scripts to your applications. Hence the default behaviour outlined above.
-(With the availability of B<Safe> it may make sense to relax default behaviour
-a little.)
-
-Unmonitored B<eval>'ing of these incoming "scripts" can cause perl to
-read and write files and invoke subprocesses under your name.
-Host-based access control such as that provided by B<xhost>
-is particularly insecure, since it allows anyone with an account
-on particular hosts to connect to your server, and if disabled it
-allows anyone anywhere to connect to your server.
-In order to provide at least a small amount of
-security, core Tk checks the access control being used by the server
-and rejects incoming sends unless (a) B<xhost>-style access control
-is enabled (i.e. only certain hosts can establish connections) and (b) the
-list of enabled hosts is empty.
-This means that applications cannot connect to your server unless
-they use some other form of authorization
-such as that provide by B<xauth>.
-
-=head1 SEE ALSO
-
-L<perlfunc/eval>, L<Safe>,
-system's administrator/corporate security guidelines etc.
-
-=head1 KEYWORDS
-
-application, name, remote execution, security, send
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/srcfile.xpm b/Master/tlpkg/tlperl/lib/Tk/srcfile.xpm
deleted file mode 100644
index 06a40a96c84..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/srcfile.xpm
+++ /dev/null
@@ -1,18 +0,0 @@
-/* XPM */
-static char * srcfile_xpm[] = {
-"12 12 3 1",
-" s None c None",
-". c #000000000000",
-"X c gray91",
-" ........ ",
-" .XXXXXX. ",
-" .XXXXXX... ",
-" .XXXXXXXX. ",
-" .XX...XXX. ",
-" .X.XXX.XX. ",
-" .X.XXXXXX. ",
-" .X.XXXXXX. ",
-" .XX....XX. ",
-" .XXXXXXXX. ",
-" .XXXXXXXX. ",
-" .......... "};
diff --git a/Master/tlpkg/tlperl/lib/Tk/textfile.xpm b/Master/tlpkg/tlperl/lib/Tk/textfile.xpm
deleted file mode 100644
index 8fa8d2f9032..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/textfile.xpm
+++ /dev/null
@@ -1,18 +0,0 @@
-/* XPM */
-static char * textfile_xpm[] = {
-"12 12 3 1",
-" s None c None",
-". c #000000000000",
-"X c #E0E0FFFFE0E0",
-" ........ ",
-" .XXXXXX. ",
-" .XXXXXX... ",
-" .X....XXX. ",
-" .XXXXXXXX. ",
-" .X...XXXX. ",
-" .XXXXXXXX. ",
-" .X.....XX. ",
-" .XXXXXXXX. ",
-" .X.....XX. ",
-" .XXXXXXXX. ",
-" .......... "};
diff --git a/Master/tlpkg/tlperl/lib/Tk/tixWm.pod b/Master/tlpkg/tlperl/lib/Tk/tixWm.pod
deleted file mode 100644
index 9bdd02d461c..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/tixWm.pod
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-=head1 NAME
-
-Tk::tixWm - Tix's addition to the standard TK wm command.
-
-=for category Tix Extensions
-
-=head1 SYNOPSIS
-
-S< >I<$widget>-E<gt>B<wmCapture>
-
-S< >I<$widget>-E<gt>B<wmRelease>
-
-=head1 DESCRIPTION
-
-The B<wmCapture> and the B<wmRelease> methods change the
-toplevel attribute of Tk widgets.
-
-=head1 METHODS
-
-=over 4
-
-=item I<$widget>-E<gt>B<wmCapture>
-
-Converts the toplevel window specified by I<$widget> into a non-toplevel
-widget. Normally this command is called to convert a L<Toplevel|Tk::Toplevel> widget
-into a L<Frame|Tk::Frame> widget. The newly-converted frame widget is
-un-mapped from the screen. To make it appear inside its parent, you
-must call a geometry manager (e.g. grid or pack) explictly.
-
-=item I<$widget>-E<gt>B<wmRelease>
-
-Makes the non-toplevel window specified by I<$widget> into a toplevel
-widget. Normally this command is called to convert a L<Frame|Tk::Frame> widget
-into a L<Toplevel|Tk::Toplevel> widget, but it can also be used on any
-non-toplevel widget (e.g, label). The newly-converted toplevel window
-is in a B<withdrawn> state. To make it appear on the screen, you must call
-B<deiconify> after calling B<wmRelease>.
-
-Any data associated with I<$widget> via B<wm> methods (icon, protocol,
-command etc.) are released, and must be re-established if window is later
-re-captured.
-
-=back
-
-=head1 BUGS
-
-B<wmCapture> does not exist in the Win32 window manager code.
-
-How these methods interact with perl/Tk's class hierarchy is not yet clear.
-In particular a B<wmRelease>d window will not automatically ``I<inherit>''
-the B<Tk::Wm> methods, however a B<wmCapture>d window still will.
-(A B<release>d B<Label> might make a good candidate for an B<Icon>.)
-
-=head1 AUTHORS
-
-Ioi Kim Lam - ioi@graphics.cis.upenn.edu wrote original Tix version.
-Updated for tk8.0, Win32 and perl by Nick Ing-Simmons.
-
-=head1 SEE ALSO
-
-L<Tk::Wm|Tk::Wm>
-L<Tk::Mwm|Tk::Mwm>
-L<Tk::Frame|Tk::Frame>
-L<Tk::Toplevel|Tk::Toplevel>
-
-=head1 KEYWORDS
-
-window manager, wm, TIX
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/tkGlue.def b/Master/tlpkg/tlperl/lib/Tk/tkGlue.def
deleted file mode 100644
index 2f1662c71c2..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/tkGlue.def
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifdef CAN_PROTOTYPE
-#define XSdec(x) XS(x)
-#else
-#define XSdec(x) void x()
-#endif
-
-#define TKXSRETURN(off) \
- STMT_START { \
- IV ptkAdj = (off); \
- XSRETURN(ptkAdj); \
- } STMT_END
-
-#ifndef PATCHLEVEL
-#include <patchlevel.h>
-#endif
-
-#if defined(PATCHLEVEL) && (PATCHLEVEL < 5)
-#define PL_sv_undef sv_undef
-#define PL_tainting tainting
-#define PL_tainted tainted
-#define PL_stack_base stack_base
-#define PL_stack_sp stack_sp
-#define PL_curcop curcop
-#endif
-
-#ifndef CopSTASH
-#define CopSTASH(c) c->cop_stash
-#define CopSTASH_set(c,h) (CopSTASH(c) = h)
-#endif
-
-#ifndef dTHX
-#define dTHR int maybeTHR
-#endif
-
-#ifndef dTHXs
-#ifdef PERL_IMPLICIT_SYS
-#define dTHXs dTHX
-#else
-#define dTHR int maybeTHR
-#endif
-#endif
-
-#ifndef ERRSV
-#define ERRSV GvSV(errgv)
-#endif
-
-#ifndef aTHX_
-#define aTHX_
-#endif
-
-#ifndef pTHX_
-#define pTHX_
-#endif
-
-#ifdef dirty
-#undef dirty
-#endif
-#ifdef bufptr
-#undef bufptr
-#endif
-#ifdef colors
-#undef colors
-#endif
-#ifdef JOIN
-#undef JOIN
-#endif
-
-#ifdef na
-#if PATCHLEVEL >= 5
-#undef na
-#endif
-#endif
-
-
-#define Tcl_Interp HV
-#define LangCallback SV
-#define Var SV *
-#define LangResultSave AV
-struct Lang_CmdInfo;
-#define Tcl_Command struct Lang_CmdInfo *
-struct WrappedRegExp;
-#define Tcl_RegExp struct WrappedRegExp *
-#define Tcl_Obj SV
-#define Tcl_DString SV *
-
-#ifndef PerlIO
-#define PerlIO FILE
-#define PerlIO_stderr() stderr
-#define PerlIO_printf fprintf
-#define PerlIO_flush(f) Fflush(f)
-#define PerlIO_vprintf(f,fmt,a) vfprintf(f,fmt,a)
-#define PerlIO_putc(f,c) fputc(c,f)
-#define PerlIO_fileno(f) fileno(f)
-
-/* Now our interface to Configure's FILE_xxx macros */
-
-#ifdef USE_STDIO_PTR
-#define PerlIO_has_cntptr(f) 1
-#define PerlIO_get_ptr(f) FILE_ptr(f)
-#define PerlIO_get_cnt(f) FILE_cnt(f)
-
-#ifdef FILE_CNT_LVALUE
-#define PerlIO_canset_cnt(f) 1
-#ifdef FILE_PTR_LVALUE
-#define PerlIO_fast_gets(f) 1
-#endif
-#define PerlIO_set_cnt(f,c) (FILE_cnt(f) = (c))
-#else
-#define PerlIO_canset_cnt(f) 0
-#define PerlIO_set_cnt(f,c) abort()
-#endif
-
-#ifdef FILE_PTR_LVALUE
-#define PerlIO_set_ptrcnt(f,p,c) (FILE_ptr(f) = (p), PerlIO_set_cnt(f,c))
-#else
-#define PerlIO_set_ptrcnt(f,p,c) abort()
-#endif
-
-#else /* USE_STDIO_PTR */
-
-#define PerlIO_has_cntptr(f) 0
-#define PerlIO_get_cnt(f) (abort(),0)
-#define PerlIO_get_ptr(f) (abort(),0)
-#define PerlIO_set_cnt(f,c) abort()
-#define PerlIO_set_ptrcnt(f,p,c) abort()
-
-#endif /* USE_STDIO_PTR */
-
-#endif
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/tkGlue.h b/Master/tlpkg/tlperl/lib/Tk/tkGlue.h
deleted file mode 100644
index 806b3901902..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/tkGlue.h
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef _TKGLUE
-#define _TKGLUE
-
-#ifndef BASEEXT
-#define BASEEXT "Tk"
-#endif
-
-#ifndef _TKOPTION
-#include "pTk/tkOption.h"
-#include "pTk/tkOption_f.h"
-#endif
-
-typedef struct EventAndKeySym
- {XEvent event;
- KeySym keySym;
- Tcl_Interp *interp;
- Tk_Window tkwin;
- SV *window;
- } EventAndKeySym;
-
-typedef struct Lang_CmdInfo
- {Tcl_CmdInfo Tk;
- Tcl_Interp *interp;
- Tk_Window tkwin;
- SV *image;
- Tk_Font tkfont;
- } Lang_CmdInfo;
-
-#include "vtab.def"
-
-
-#define VTABLE_INIT() IMPORT_VTABLES
-
-extern Lang_CmdInfo *WindowCommand _ANSI_ARGS_((SV *win,HV **hptr, int moan));
-extern Tk_Window SVtoWindow _ANSI_ARGS_((SV *win));
-extern Tk_Font SVtoFont _ANSI_ARGS_((SV *win));
-extern int Call_Tk _ANSI_ARGS_((Lang_CmdInfo *info,int argc, SV **args));
-extern HV *InterpHv _ANSI_ARGS_((Tcl_Interp *interp,int fatal));
-extern SV *WidgetRef _ANSI_ARGS_((Tcl_Interp *interp, char *path));
-extern SV *ObjectRef _ANSI_ARGS_((Tcl_Interp *interp, char *path));
-extern SV *TkToWidget _ANSI_ARGS_((Tk_Window tkwin,Tcl_Interp **pinterp));
-extern SV *FindTkVarName _ANSI_ARGS_((CONST char *varName,int flags));
-extern void EnterWidgetMethods _ANSI_ARGS_((char *package, ...));
-extern SV *MakeReference _ANSI_ARGS_((SV * sv));
-extern Tk_Window TkToMainWindow _ANSI_ARGS_((Tk_Window tkwin));
-extern void Lang_TkSubCommand _ANSI_ARGS_ ((char *name, Tcl_ObjCmdProc *proc));
-extern void Lang_TkCommand _ANSI_ARGS_ ((char *name, Tcl_ObjCmdProc *proc));
-extern SV *XEvent_Info _((EventAndKeySym *obj,char *s));
-extern EventAndKeySym *SVtoEventAndKeySym _((SV *arg));
-extern int XSTkCommand _ANSI_ARGS_((CV *cv, int mwcd, Tcl_ObjCmdProc *proc, int items, SV **args));
-
-extern XS(XStoWidget);
-
-EXTERN void ClearErrorInfo _ANSI_ARGS_((SV *interp));
-EXTERN Tk_Window mainWindow;
-EXTERN void DumpStack _ANSI_ARGS_((CONST char *who));
-EXTERN void Boot_Glue (pTHX);
-EXTERN void Boot_Tix (pTHX);
-EXTERN void install_vtab _ANSI_ARGS_((char *name, void *table, size_t size));
-extern SV *TagIt _((SV *sv, char *type));
-extern void Font_DESTROY _((SV *sv));
-struct pTkCheckChain;
-extern void Tk_CheckHash _((SV *sv,struct pTkCheckChain *chain));
-
-extern int has_highbit(CONST char *s,int l);
-extern SV * sv_maybe_utf8(SV *sv);
-extern SV * Lang_SystemEncoding(void);
-
-#ifdef WIN32
-#include "pTk/tkWinInt.h"
-#endif
-
-#ifndef WIN32
-#define HWND void *
-#endif
-EXTERN HWND SVtoHWND _ANSI_ARGS_((SV *win));
-
-#endif
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/tkGlue.m b/Master/tlpkg/tlperl/lib/Tk/tkGlue.m
deleted file mode 100644
index 922d1426a55..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/tkGlue.m
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef _TKGLUE_VM
-#define _TKGLUE_VM
-#include "tkGlue_f.h"
-#ifndef NO_VTABLES
-#ifndef Call_Tk
-# define Call_Tk (*TkglueVptr->V_Call_Tk)
-#endif
-
-#ifndef EnterWidgetMethods
-# define EnterWidgetMethods (*TkglueVptr->V_EnterWidgetMethods)
-#endif
-
-#ifndef FindTkVarName
-# define FindTkVarName (*TkglueVptr->V_FindTkVarName)
-#endif
-
-#ifndef InterpHv
-# define InterpHv (*TkglueVptr->V_InterpHv)
-#endif
-
-#ifndef Lang_TkCommand
-# define Lang_TkCommand (*TkglueVptr->V_Lang_TkCommand)
-#endif
-
-#ifndef Lang_TkSubCommand
-# define Lang_TkSubCommand (*TkglueVptr->V_Lang_TkSubCommand)
-#endif
-
-#ifndef MakeReference
-# define MakeReference (*TkglueVptr->V_MakeReference)
-#endif
-
-#ifndef ObjectRef
-# define ObjectRef (*TkglueVptr->V_ObjectRef)
-#endif
-
-#ifndef SVtoFont
-# define SVtoFont (*TkglueVptr->V_SVtoFont)
-#endif
-
-#ifndef SVtoHWND
-# define SVtoHWND (*TkglueVptr->V_SVtoHWND)
-#endif
-
-#ifndef SVtoWindow
-# define SVtoWindow (*TkglueVptr->V_SVtoWindow)
-#endif
-
-#ifndef TkToMainWindow
-# define TkToMainWindow (*TkglueVptr->V_TkToMainWindow)
-#endif
-
-#ifndef TkToWidget
-# define TkToWidget (*TkglueVptr->V_TkToWidget)
-#endif
-
-#ifndef WidgetRef
-# define WidgetRef (*TkglueVptr->V_WidgetRef)
-#endif
-
-#ifndef WindowCommand
-# define WindowCommand (*TkglueVptr->V_WindowCommand)
-#endif
-
-#ifndef XSTkCommand
-# define XSTkCommand (*TkglueVptr->V_XSTkCommand)
-#endif
-
-#ifndef install_vtab
-# define install_vtab (*TkglueVptr->V_install_vtab)
-#endif
-
-#endif /* NO_VTABLES */
-#endif /* _TKGLUE_VM */
diff --git a/Master/tlpkg/tlperl/lib/Tk/tkGlue.t b/Master/tlpkg/tlperl/lib/Tk/tkGlue.t
deleted file mode 100644
index ff689ff5539..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/tkGlue.t
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifdef _TKGLUE
-#ifndef Call_Tk
-VFUNC(int,Call_Tk,V_Call_Tk,_ANSI_ARGS_((Lang_CmdInfo *info,int argc, SV **args)))
-#endif /* #ifndef Call_Tk */
-
-#ifndef EnterWidgetMethods
-VFUNC(void,EnterWidgetMethods,V_EnterWidgetMethods,_ANSI_ARGS_((char *package, ...)))
-#endif /* #ifndef EnterWidgetMethods */
-
-#ifndef FindTkVarName
-VFUNC(SV *,FindTkVarName,V_FindTkVarName,_ANSI_ARGS_((CONST char *varName,int flags)))
-#endif /* #ifndef FindTkVarName */
-
-#ifndef InterpHv
-VFUNC(HV *,InterpHv,V_InterpHv,_ANSI_ARGS_((Tcl_Interp *interp,int fatal)))
-#endif /* #ifndef InterpHv */
-
-#ifndef Lang_TkCommand
-VFUNC(void,Lang_TkCommand,V_Lang_TkCommand,_ANSI_ARGS_((char *name, Tcl_ObjCmdProc *proc)))
-#endif /* #ifndef Lang_TkCommand */
-
-#ifndef Lang_TkSubCommand
-VFUNC(void,Lang_TkSubCommand,V_Lang_TkSubCommand,_ANSI_ARGS_((char *name, Tcl_ObjCmdProc *proc)))
-#endif /* #ifndef Lang_TkSubCommand */
-
-#ifndef MakeReference
-VFUNC(SV *,MakeReference,V_MakeReference,_ANSI_ARGS_((SV * sv)))
-#endif /* #ifndef MakeReference */
-
-#ifndef ObjectRef
-VFUNC(SV *,ObjectRef,V_ObjectRef,_ANSI_ARGS_((Tcl_Interp *interp, char *path)))
-#endif /* #ifndef ObjectRef */
-
-#ifndef SVtoFont
-VFUNC(Tk_Font,SVtoFont,V_SVtoFont,_ANSI_ARGS_((SV *win)))
-#endif /* #ifndef SVtoFont */
-
-#ifndef SVtoHWND
-VFUNC(HWND,SVtoHWND,V_SVtoHWND,_ANSI_ARGS_((SV *win)))
-#endif /* #ifndef SVtoHWND */
-
-#ifndef SVtoWindow
-VFUNC(Tk_Window,SVtoWindow,V_SVtoWindow,_ANSI_ARGS_((SV *win)))
-#endif /* #ifndef SVtoWindow */
-
-#ifndef TkToMainWindow
-VFUNC(Tk_Window,TkToMainWindow,V_TkToMainWindow,_ANSI_ARGS_((Tk_Window tkwin)))
-#endif /* #ifndef TkToMainWindow */
-
-#ifndef TkToWidget
-VFUNC(SV *,TkToWidget,V_TkToWidget,_ANSI_ARGS_((Tk_Window tkwin,Tcl_Interp **pinterp)))
-#endif /* #ifndef TkToWidget */
-
-#ifndef WidgetRef
-VFUNC(SV *,WidgetRef,V_WidgetRef,_ANSI_ARGS_((Tcl_Interp *interp, char *path)))
-#endif /* #ifndef WidgetRef */
-
-#ifndef WindowCommand
-VFUNC(Lang_CmdInfo *,WindowCommand,V_WindowCommand,_ANSI_ARGS_((SV *win,HV **hptr, int moan)))
-#endif /* #ifndef WindowCommand */
-
-#ifndef XSTkCommand
-VFUNC(int,XSTkCommand,V_XSTkCommand,_ANSI_ARGS_((CV *cv, int mwcd, Tcl_ObjCmdProc *proc, int items, SV **args)))
-#endif /* #ifndef XSTkCommand */
-
-#ifndef install_vtab
-VFUNC(void,install_vtab,V_install_vtab,_ANSI_ARGS_((char *name, void *table, size_t size)))
-#endif /* #ifndef install_vtab */
-
-#endif /* _TKGLUE */
diff --git a/Master/tlpkg/tlperl/lib/Tk/tkGlue_f.h b/Master/tlpkg/tlperl/lib/Tk/tkGlue_f.h
deleted file mode 100644
index 8255c08dc3f..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/tkGlue_f.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TKGLUE_VT
-#define TKGLUE_VT
-typedef struct TkglueVtab
-{
- unsigned (*tabSize)(void);
-#define VFUNC(type,name,mem,args) type (*mem) args;
-#define VVAR(type,name,mem) type (*mem);
-#include "tkGlue.t"
-#undef VFUNC
-#undef VVAR
-} TkglueVtab;
-extern TkglueVtab *TkglueVptr;
-extern TkglueVtab *TkglueVGet(void);
-#endif /* TKGLUE_VT */
diff --git a/Master/tlpkg/tlperl/lib/Tk/tkvars.pod b/Master/tlpkg/tlperl/lib/Tk/tkvars.pod
deleted file mode 100644
index 534fd3cd933..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/tkvars.pod
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright (c) 1990-1994 The Regents of the University of California.
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-#
-
-=head1 NAME
-
-Tk::tkvars - Variables used or set by Tk
-
-=for category Tk Generic Methods
-
-=head1 DESCRIPTION
-
-The following perl variables are either set or used by Tk at various times
-in its execution. (For a list of variables used by perl see L<perlvar>.)
-
-=over 4
-
-=item B<$Tk::library>
-
-This variable holds the file name for a directory containing the modules
-related to Tk. These modules include an initialization
-file that is normally processed whenever a Tk application starts up,
-plus other files containing procedures that implement default behaviors
-for widgets.
-The initial value of B<$Tk::library> is set when Tk is added to
-an interpreter; this is done by searching searching for a directory
-named Tk in the directory where the file F<Tk.pm>, or the first
-directory F<Tk> in C<@INC>.
-
-The B<TK_LIBRARY> environment variable used by Tcl/Tk is not
-supported by perl/Tk. Please use L<@INC|perlvar/@INC> to change where modules
-are searched.
-
-B<Note:> This is Tcl remnant. With perl it makes more sense to
-use C<@INC> and C<%INC>).
-
-=item B<$Tk::patchLevel>
-
-Contains a decimal integer giving the current patch level for Tk.
-The patch level is incremented for each new release or patch, and
-it uniquely identifies an official version of Tk.
-
-B<Note:> this is Tcl remnant. With perl it makes more sense to
-use B<$Tk::VERSION> described below.
-
-=item B<$Tk::strictMotif>
-
-This variable is set to zero by default.
-If an application sets it to one, then Tk attempts to adhere as
-closely as possible to Motif look-and-feel standards.
-For example, active elements such as buttons and scrollbar
-sliders will not change color when the pointer passes over them.
-
-=item B<$Tk::VERSION>
-
-The variable holds the current version number of the perl/Tk
-release in the form I<major>.I<minor>. I<Major> and
-I<minor> are integers.
-
-The I<major> version number shows on which
-Tcl/Tk release perl/Tk is based. E.g., B<402> means based on
-Tcls Tk 4.2. (Patchlevel of Tcls Tk are not incorporated because
-perl/Tk tended to be ``I<ahead>'' of them on some fixes and behind on
-others. The first digest of the major version number increases in
-any Tk release that includes changes that are not backward compatible
-(i.e. whenever existing perl/Tk applications and scripts may have to change to
-work with the new release).
-
-The I<minor> version depends on perl/Tk only. It uses the
-'even'='stable', 'odd'='experimental' scheme that linux uses:
-
- .0xx - inherently 'alpha'
- .1xx - experimental 'beta'
- .2xx - stable
- .3xx - experimental
- .4xx - stable
- ...
-
-The minor version number increases with
-each new release of Tk, except that it resets to zero whenever the
-major version number changes.
-
-=item B<$Tk::version>
-
-The variable holds the current version number of the Tk
-library in the form I<major>.I<minor>. I<Major> and
-I<minor> are integers. The major version number increases in
-any Tk release that includes changes that are not backward compatible
-(i.e. whenever existing Tk applications and scripts may have to change to
-work with the new release). The minor version number increases with
-each new release of Tk, except that it resets to zero whenever the
-major version number changes.
-
-B<Note:> this is Tcl remnant. With perl it makes more sense to
-use B<$Tk::VERSION> described above.
-
-=back
-
-=head1 KEYWORDS
-
-variables, version
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/tranicon.gif b/Master/tlpkg/tlperl/lib/Tk/tranicon.gif
deleted file mode 100644
index dc7d494c572..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/tranicon.gif
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/Tk/typemap b/Master/tlpkg/tlperl/lib/Tk/typemap
deleted file mode 100644
index 29138850ab3..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/typemap
+++ /dev/null
@@ -1,96 +0,0 @@
-TYPEMAP
-Tk_Window T_TK_WINDOW
-Tk_Image T_TK_IMAGE
-TkWindow * T_TKWINDOW
-Display * T_IVOBJ
-Screen * T_IVOBJ
-Visual * T_IVOBJ
-Window T_IVOBJ
-Colormap T_IVOBJ
-GC T_IVOBJ
-Font T_IVOBJ
-Atom T_IV
-HANDLE T_IV
-BOOL T_IV
-HWND T_TK_HWND
-FILE * T_NIO
-hash_ptr * T_PTR
-Tk_3DBorder T_IVOBJ
-Tk_Uid T_TK_UID
-Tcl_Interp * T_TK_INTERP
-Tk_Font T_TK_FONT
-EventAndKeySym * T_TK_XEVENT
-LangCallback * T_TK_CALLBACK
-LangFontInfo * T_PVOBJ
-const char * T_PV
-
-INPUT
-T_PVOBJ
- if (sv_isobject($arg)) {
- STRLEN sz;
- $var = ($type) SvPV((SV*)SvRV($arg),sz);
- if (sz != sizeof(*$var))
- croak(\"$arg too small (%d) for $var $type (%d)\",sz,sizeof(*$var));
- }
- else
- croak(\"$var is not an object\")
-
-T_TK_WINDOW
- $var = SVtoWindow($arg)
-
-T_TK_CALLBACK
- $var = LangMakeCallback($arg)
-
-
-T_TK_HWND
- $var = SVtoHWND($arg)
-
-T_TK_XEVENT
- $var = SVtoEventAndKeySym($arg)
-
-T_TK_FONT
- $var = SVtoFont($arg)
-
-T_TK_IMAGE
- $var = SVtoImage($arg)
-
-T_TKWINDOW
- $var = (TkWindow *) SVtoWindow($arg)
-
-T_TK_INTERP
- $var = WindowCommand($arg,NULL,1)->interp
-
-T_TK_UID
- $var = Tk_GetUid(SvPV($arg,na))
-
-T_IVOBJ
- if (sv_isa($arg, \"${ntype}\")) {
- $var = INT2PTR($type, SvIV(SvRV($arg)));
- }
- else {
- $var = ($type) NULL;
- croak(\"$var is not of type ${ntype}\");
- }
-
-T_NIO
- if (sv_isa($arg, \"${Package}\")) {
- $var = IoIFP(sv_2io(SvRV($arg)));
- }
- else
- croak(\"$var is not of type ${Package}\")
-
-
-OUTPUT
-T_IVOBJ
- sv_setref_iv($arg, \"${ntype}\", PTR2IV($var));
-
-T_TK_UID
- sv_setpv($arg,$var);
-
-T_TK_WINDOW
- SvSetMagicSV($arg,TkToWidget($var,NULL));
-
-T_TKWINDOW
- SvSetMagicSV($arg,TkToWidget((Tk_Window) $var,NULL));
-
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/vtab.def b/Master/tlpkg/tlperl/lib/Tk/vtab.def
deleted file mode 100644
index 7663df7d6f4..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/vtab.def
+++ /dev/null
@@ -1,90 +0,0 @@
-#define IMPORT_VTABLE(ptr,type,name) do { \
- ptr = INT2PTR(type *,SvIV(get_sv(name,GV_ADDWARN|GV_ADD))); \
- if ((*ptr->tabSize)() != sizeof(type)) { \
- Perl_warn(aTHX_ "%s wrong size for %s",name,#type); \
- } \
- } while (0)
-
-#ifdef WIN32
-#define DECLARE_VTABLES \
-LangVtab *LangVptr; \
-TcldeclsVtab *TcldeclsVptr; \
-TkVtab *TkVptr; \
-TkdeclsVtab *TkdeclsVptr; \
-TkeventVtab *TkeventVptr; \
-TkglueVtab *TkglueVptr; \
-TkintVtab *TkintVptr; \
-TkintdeclsVtab *TkintdeclsVptr; \
-TkintplatdeclsVtab *TkintplatdeclsVptr;\
-TkintxlibdeclsVtab *TkintxlibdeclsVptr;\
-TkoptionVtab *TkoptionVptr; \
-TkplatdeclsVtab *TkplatdeclsVptr
-
-#define IMPORT_VTABLES do { \
-IMPORT_VTABLE(LangVptr , LangVtab,"Tk::LangVtab"); \
-IMPORT_VTABLE(TcldeclsVptr , TcldeclsVtab,"Tk::TcldeclsVtab"); \
-IMPORT_VTABLE(TkVptr , TkVtab,"Tk::TkVtab"); \
-IMPORT_VTABLE(TkdeclsVptr , TkdeclsVtab,"Tk::TkdeclsVtab"); \
-IMPORT_VTABLE(TkeventVptr , TkeventVtab,"Tk::TkeventVtab"); \
-IMPORT_VTABLE(TkglueVptr , TkglueVtab,"Tk::TkglueVtab"); \
-IMPORT_VTABLE(TkintVptr , TkintVtab,"Tk::TkintVtab"); \
-IMPORT_VTABLE(TkintdeclsVptr , TkintdeclsVtab,"Tk::TkintdeclsVtab"); \
-IMPORT_VTABLE(TkintplatdeclsVptr,TkintplatdeclsVtab,"Tk::TkintplatdeclsVtab"); \
-IMPORT_VTABLE(TkintxlibdeclsVptr,TkintxlibdeclsVtab,"Tk::TkintxlibdeclsVtab"); \
-IMPORT_VTABLE(TkoptionVptr , TkoptionVtab,"Tk::TkoptionVtab"); \
-IMPORT_VTABLE(TkplatdeclsVptr , TkplatdeclsVtab,"Tk::TkplatdeclsVtab"); \
-} while (0)
-#else
-#define DECLARE_VTABLES \
-LangVtab *LangVptr; \
-TcldeclsVtab *TcldeclsVptr; \
-TkVtab *TkVptr; \
-TkdeclsVtab *TkdeclsVptr; \
-TkeventVtab *TkeventVptr; \
-TkglueVtab *TkglueVptr; \
-TkintVtab *TkintVptr; \
-TkintdeclsVtab *TkintdeclsVptr; \
-TkoptionVtab *TkoptionVptr; \
-XlibVtab *XlibVptr
-
-#define IMPORT_VTABLES do { \
-IMPORT_VTABLE(LangVptr , LangVtab,"Tk::LangVtab"); \
-IMPORT_VTABLE(TcldeclsVptr , TcldeclsVtab,"Tk::TcldeclsVtab"); \
-IMPORT_VTABLE(TkVptr , TkVtab,"Tk::TkVtab"); \
-IMPORT_VTABLE(TkdeclsVptr , TkdeclsVtab,"Tk::TkdeclsVtab"); \
-IMPORT_VTABLE(TkeventVptr , TkeventVtab,"Tk::TkeventVtab"); \
-IMPORT_VTABLE(TkglueVptr , TkglueVtab,"Tk::TkglueVtab"); \
-IMPORT_VTABLE(TkintVptr , TkintVtab,"Tk::TkintVtab"); \
-IMPORT_VTABLE(TkintdeclsVptr , TkintdeclsVtab,"Tk::TkintdeclsVtab"); \
-IMPORT_VTABLE(TkoptionVptr , TkoptionVtab,"Tk::TkoptionVtab"); \
-IMPORT_VTABLE(XlibVptr , XlibVtab,"Tk::XlibVtab"); \
-} while (0)
-#endif
-#define DECLARE_TIX \
-TixVtab *TixVptr; \
-TixintVtab *TixintVptr
-
-#define IMPORT_TIX do { \
-IMPORT_VTABLE(TixVptr , TixVtab,"Tk::TixVtab"); \
-IMPORT_VTABLE(TixintVptr , TixintVtab,"Tk::TixintVtab"); \
-} while (0)
-#define DECLARE_PHOTO \
-ImgintVtab *ImgintVptr; \
-TkimgphotoVtab *TkimgphotoVptr
-
-#define IMPORT_PHOTO do { \
-IMPORT_VTABLE(ImgintVptr , ImgintVtab,"Tk::ImgintVtab"); \
-IMPORT_VTABLE(TkimgphotoVptr , TkimgphotoVtab,"Tk::TkimgphotoVtab"); \
-} while (0)
-#define DECLARE_EVENT \
-TkeventVtab *TkeventVptr
-
-#define IMPORT_EVENT do { \
-IMPORT_VTABLE(TkeventVptr , TkeventVtab,"Tk::TkeventVtab"); \
-} while (0)
-#define DECLARE_TIXXPM \
-TiximgxpmVtab *TiximgxpmVptr
-
-#define IMPORT_TIXXPM do { \
-IMPORT_VTABLE(TiximgxpmVptr , TiximgxpmVtab,"Tk::TiximgxpmVtab"); \
-} while (0)
diff --git a/Master/tlpkg/tlperl/lib/Tk/widgets.pm b/Master/tlpkg/tlperl/lib/Tk/widgets.pm
deleted file mode 100644
index fe1deea12ef..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/widgets.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-package Tk::widgets;
-use Carp;
-
-use vars qw($VERSION);
-$VERSION = '4.005'; # $Id: //depot/Tkutf8/Tk/widgets.pm#4 $
-
-sub import
-{
- my $class = shift;
- foreach (@_)
- {
- local $SIG{__DIE__} = \&Carp::croak;
- # carp "$_ already loaded" if (exists $INC{"Tk/$_.pm"});
- require "Tk/$_.pm";
- }
-}
-
-1;
-__END__
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/widgets.pod b/Master/tlpkg/tlperl/lib/Tk/widgets.pod
deleted file mode 100644
index 114f52505d7..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/widgets.pod
+++ /dev/null
@@ -1,20 +0,0 @@
-
-=head1 NAME
-
-Tk::widgets - preload widget classes
-
-=for pm Tk/widgets.pm
-
-=for category Implementation
-
-=head1 SYNOPSIS
-
- use Tk::widgets qw(Button Label Frame);
-
-=head1 DESCRIPTION
-
-Does a 'require Tk::Foo' for each 'Foo' in the list.
-May speed startup by avoiding AUTOLOADs.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Tk/win.xbm b/Master/tlpkg/tlperl/lib/Tk/win.xbm
deleted file mode 100644
index 13c05e8c2d7..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/win.xbm
+++ /dev/null
@@ -1,6 +0,0 @@
-#define win.xbm_width 16
-#define win.xbm_height 16
-static char win.xbm_bits[] = {
- 0xff, 0xff, 0x0d, 0xb0, 0xff, 0xff, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
- 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
- 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xff, 0xff};
diff --git a/Master/tlpkg/tlperl/lib/Tk/winfolder.xpm b/Master/tlpkg/tlperl/lib/Tk/winfolder.xpm
deleted file mode 100644
index 73fe734c6d0..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/winfolder.xpm
+++ /dev/null
@@ -1,39 +0,0 @@
-/* XPM */
-static char *winfolder[] = {
-/* width height num_colors chars_per_pixel */
-" 17 15 17 1",
-/* colors */
-" c none",
-". c #000000",
-"# c #808080",
-"a c #800000",
-"b c #808000",
-"c c #008000",
-"d c #008080",
-"e c #000080",
-"f c #800080",
-"g c #ffffff",
-"h c #c0c0c0",
-"i c #ff0000",
-"j c #ffff00",
-"k c #00ff00",
-"l c #00ffff",
-"m c #0000ff",
-"n c #ff00ff",
-/* pixels */
-" ",
-" ##### ",
-" #hjhjh# ",
-" #hjhjhjh###### ",
-" #gggggggggggg#. ",
-" #gjhjhjhjhjhj#. ",
-" #ghjhjhjhjhjh#. ",
-" #gjhjhjhjhjhj#. ",
-" #ghjhjhjhjhjh#. ",
-" #gjhjhjhjhjhj#. ",
-" #ghjhjhjhjhjh#. ",
-" #gjhjhjhjhjhj#. ",
-" ##############. ",
-" .............. ",
-" ",
-};
diff --git a/Master/tlpkg/tlperl/lib/Tk/wintext.xpm b/Master/tlpkg/tlperl/lib/Tk/wintext.xpm
deleted file mode 100644
index 50b2d5587dd..00000000000
--- a/Master/tlpkg/tlperl/lib/Tk/wintext.xpm
+++ /dev/null
@@ -1,42 +0,0 @@
-/* XPM */
-static char *wintext[] = {
-/* width height num_colors chars_per_pixel */
-" 15 18 17 1",
-/* colors */
-" c None",
-". c #000000",
-"# c #808080",
-"a c #800000",
-"b c #808000",
-"c c #008000",
-"d c #008080",
-"e c #000080",
-"f c #800080",
-"g c #ffffff",
-"h c #c0c0c0",
-"i c #ff0000",
-"j c #ffff00",
-"k c #00ff00",
-"l c #00ffff",
-"m c #0000ff",
-"n c #ff00ff",
-/* pixels */
-" ",
-" . . . . . ",
-" .g#g#g#g#g. ",
-" #g.g.g.g.g.g. ",
-" #ggggggggggh. ",
-" #ggggggggggh. ",
-" #gg...g..ggh. ",
-" #ggggggggggh. ",
-" #gg......ggh. ",
-" #ggggggggggh. ",
-" #gg......ggh. ",
-" #ggggggggggh. ",
-" #gg......ggh. ",
-" #ggggggggggh. ",
-" #ggggggggggh. ",
-" #hhhhhhhhhhh. ",
-" ........... ",
-" "
-};
diff --git a/Master/tlpkg/tlperl/lib/UNIVERSAL.pm b/Master/tlpkg/tlperl/lib/UNIVERSAL.pm
index 1adf09c2722..2f16cb544ab 100644
--- a/Master/tlpkg/tlperl/lib/UNIVERSAL.pm
+++ b/Master/tlpkg/tlperl/lib/UNIVERSAL.pm
@@ -1,27 +1,18 @@
package UNIVERSAL;
-our $VERSION = '1.11';
+our $VERSION = '1.12';
# UNIVERSAL should not contain any extra subs/methods beyond those
-# that it exists to define. The use of Exporter below is a historical
-# accident that can't be fixed without breaking code. Note that we
-# *don't* set @ISA here, as we don't want all classes/objects inheriting from
-# Exporter. It's bad enough that all classes have a import() method
-# whenever UNIVERSAL.pm is loaded.
-require Exporter;
-@EXPORT_OK = qw(isa can VERSION);
+# that it exists to define. The existence of import() below is a historical
+# accident that can't be fixed without breaking code.
# Make sure that even though the import method is called, it doesn't do
# anything unless called on UNIVERSAL.
sub import {
return unless $_[0] eq __PACKAGE__;
return unless @_ > 1;
- require warnings;
- warnings::warnif(
- 'deprecated',
- 'UNIVERSAL->import is deprecated and will be removed in a future perl',
- );
- goto &Exporter::import;
+ require Carp;
+ Carp::croak("UNIVERSAL does not export anything");
}
1;
@@ -190,13 +181,9 @@ available to your program (and you should not do so).
=head1 EXPORTS
-None by default.
+None.
-You may request the import of three functions (C<isa>, C<can>, and C<VERSION>),
-B<but this feature is deprecated and will be removed>. Please don't do this in
-new code.
-
-For example, previous versions of this documentation suggested using C<isa> as
+Previous versions of this documentation suggested using C<isa> as
a function to determine the type of a reference:
use UNIVERSAL 'isa';
@@ -204,7 +191,7 @@ a function to determine the type of a reference:
$yes = isa $h, "HASH";
$yes = isa "Foo", "Bar";
-The problem is that this code will I<never> call an overridden C<isa> method in
+The problem is that this code would I<never> call an overridden C<isa> method in
any class. Instead, use C<reftype> from L<Scalar::Util> for the first case:
use Scalar::Util 'reftype';
diff --git a/Master/tlpkg/tlperl/lib/URI.pm b/Master/tlpkg/tlperl/lib/URI.pm
deleted file mode 100644
index de118e7e2fb..00000000000
--- a/Master/tlpkg/tlperl/lib/URI.pm
+++ /dev/null
@@ -1,1149 +0,0 @@
-package URI;
-
-use strict;
-use warnings;
-
-our $VERSION = "1.67";
-
-our ($ABS_REMOTE_LEADING_DOTS, $ABS_ALLOW_RELATIVE_SCHEME, $DEFAULT_QUERY_FORM_DELIMITER);
-
-my %implements; # mapping from scheme to implementor class
-
-# Some "official" character classes
-
-our $reserved = q(;/?:@&=+$,[]);
-our $mark = q(-_.!~*'()); #'; emacs
-our $unreserved = "A-Za-z0-9\Q$mark\E";
-our $uric = quotemeta($reserved) . $unreserved . "%";
-
-our $scheme_re = '[a-zA-Z][a-zA-Z0-9.+\-]*';
-
-use Carp ();
-use URI::Escape ();
-
-use overload ('""' => sub { ${$_[0]} },
- '==' => sub { _obj_eq(@_) },
- '!=' => sub { !_obj_eq(@_) },
- fallback => 1,
- );
-
-# Check if two objects are the same object
-sub _obj_eq {
- return overload::StrVal($_[0]) eq overload::StrVal($_[1]);
-}
-
-sub new
-{
- my($class, $uri, $scheme) = @_;
-
- $uri = defined ($uri) ? "$uri" : ""; # stringify
- # Get rid of potential wrapping
- $uri =~ s/^<(?:URL:)?(.*)>$/$1/; #
- $uri =~ s/^"(.*)"$/$1/;
- $uri =~ s/^\s+//;
- $uri =~ s/\s+$//;
-
- my $impclass;
- if ($uri =~ m/^($scheme_re):/so) {
- $scheme = $1;
- }
- else {
- if (($impclass = ref($scheme))) {
- $scheme = $scheme->scheme;
- }
- elsif ($scheme && $scheme =~ m/^($scheme_re)(?::|$)/o) {
- $scheme = $1;
- }
- }
- $impclass ||= implementor($scheme) ||
- do {
- require URI::_foreign;
- $impclass = 'URI::_foreign';
- };
-
- return $impclass->_init($uri, $scheme);
-}
-
-
-sub new_abs
-{
- my($class, $uri, $base) = @_;
- $uri = $class->new($uri, $base);
- $uri->abs($base);
-}
-
-
-sub _init
-{
- my $class = shift;
- my($str, $scheme) = @_;
- # find all funny characters and encode the bytes.
- $str = $class->_uric_escape($str);
- $str = "$scheme:$str" unless $str =~ /^$scheme_re:/o ||
- $class->_no_scheme_ok;
- my $self = bless \$str, $class;
- $self;
-}
-
-
-sub _uric_escape
-{
- my($class, $str) = @_;
- $str =~ s*([^$uric\#])* URI::Escape::escape_char($1) *ego;
- utf8::downgrade($str);
- return $str;
-}
-
-
-sub implementor
-{
- my($scheme, $impclass) = @_;
- if (!$scheme || $scheme !~ /\A$scheme_re\z/o) {
- require URI::_generic;
- return "URI::_generic";
- }
-
- $scheme = lc($scheme);
-
- if ($impclass) {
- # Set the implementor class for a given scheme
- my $old = $implements{$scheme};
- $impclass->_init_implementor($scheme);
- $implements{$scheme} = $impclass;
- return $old;
- }
-
- my $ic = $implements{$scheme};
- return $ic if $ic;
-
- # scheme not yet known, look for internal or
- # preloaded (with 'use') implementation
- $ic = "URI::$scheme"; # default location
-
- # turn scheme into a valid perl identifier by a simple transformation...
- $ic =~ s/\+/_P/g;
- $ic =~ s/\./_O/g;
- $ic =~ s/\-/_/g;
-
- no strict 'refs';
- # check we actually have one for the scheme:
- unless (@{"${ic}::ISA"}) {
- # Try to load it
- eval "require $ic";
- die $@ if $@ && $@ !~ /Can\'t locate.*in \@INC/;
- return undef unless @{"${ic}::ISA"};
- }
-
- $ic->_init_implementor($scheme);
- $implements{$scheme} = $ic;
- $ic;
-}
-
-
-sub _init_implementor
-{
- my($class, $scheme) = @_;
- # Remember that one implementor class may actually
- # serve to implement several URI schemes.
-}
-
-
-sub clone
-{
- my $self = shift;
- my $other = $$self;
- bless \$other, ref $self;
-}
-
-sub TO_JSON { ${$_[0]} }
-
-sub _no_scheme_ok { 0 }
-
-sub _scheme
-{
- my $self = shift;
-
- unless (@_) {
- return undef unless $$self =~ /^($scheme_re):/o;
- return $1;
- }
-
- my $old;
- my $new = shift;
- if (defined($new) && length($new)) {
- Carp::croak("Bad scheme '$new'") unless $new =~ /^$scheme_re$/o;
- $old = $1 if $$self =~ s/^($scheme_re)://o;
- my $newself = URI->new("$new:$$self");
- $$self = $$newself;
- bless $self, ref($newself);
- }
- else {
- if ($self->_no_scheme_ok) {
- $old = $1 if $$self =~ s/^($scheme_re)://o;
- Carp::carp("Oops, opaque part now look like scheme")
- if $^W && $$self =~ m/^$scheme_re:/o
- }
- else {
- $old = $1 if $$self =~ m/^($scheme_re):/o;
- }
- }
-
- return $old;
-}
-
-sub scheme
-{
- my $scheme = shift->_scheme(@_);
- return undef unless defined $scheme;
- lc($scheme);
-}
-
-sub has_recognized_scheme {
- my $self = shift;
- return ref($self) !~ /^URI::_(?:foreign|generic)\z/;
-}
-
-sub opaque
-{
- my $self = shift;
-
- unless (@_) {
- $$self =~ /^(?:$scheme_re:)?([^\#]*)/o or die;
- return $1;
- }
-
- $$self =~ /^($scheme_re:)? # optional scheme
- ([^\#]*) # opaque
- (\#.*)? # optional fragment
- $/sx or die;
-
- my $old_scheme = $1;
- my $old_opaque = $2;
- my $old_frag = $3;
-
- my $new_opaque = shift;
- $new_opaque = "" unless defined $new_opaque;
- $new_opaque =~ s/([^$uric])/ URI::Escape::escape_char($1)/ego;
- utf8::downgrade($new_opaque);
-
- $$self = defined($old_scheme) ? $old_scheme : "";
- $$self .= $new_opaque;
- $$self .= $old_frag if defined $old_frag;
-
- $old_opaque;
-}
-
-sub path { goto &opaque } # alias
-
-
-sub fragment
-{
- my $self = shift;
- unless (@_) {
- return undef unless $$self =~ /\#(.*)/s;
- return $1;
- }
-
- my $old;
- $old = $1 if $$self =~ s/\#(.*)//s;
-
- my $new_frag = shift;
- if (defined $new_frag) {
- $new_frag =~ s/([^$uric])/ URI::Escape::escape_char($1) /ego;
- utf8::downgrade($new_frag);
- $$self .= "#$new_frag";
- }
- $old;
-}
-
-
-sub as_string
-{
- my $self = shift;
- $$self;
-}
-
-
-sub as_iri
-{
- my $self = shift;
- my $str = $$self;
- if ($str =~ s/%([89a-fA-F][0-9a-fA-F])/chr(hex($1))/eg) {
- # All this crap because the more obvious:
- #
- # Encode::decode("UTF-8", $str, sub { sprintf "%%%02X", shift })
- #
- # doesn't work before Encode 2.39. Wait for a standard release
- # to bundle that version.
-
- require Encode;
- my $enc = Encode::find_encoding("UTF-8");
- my $u = "";
- while (length $str) {
- $u .= $enc->decode($str, Encode::FB_QUIET());
- if (length $str) {
- # escape next char
- $u .= URI::Escape::escape_char(substr($str, 0, 1, ""));
- }
- }
- $str = $u;
- }
- return $str;
-}
-
-
-sub canonical
-{
- # Make sure scheme is lowercased, that we don't escape unreserved chars,
- # and that we use upcase escape sequences.
-
- my $self = shift;
- my $scheme = $self->_scheme || "";
- my $uc_scheme = $scheme =~ /[A-Z]/;
- my $esc = $$self =~ /%[a-fA-F0-9]{2}/;
- return $self unless $uc_scheme || $esc;
-
- my $other = $self->clone;
- if ($uc_scheme) {
- $other->_scheme(lc $scheme);
- }
- if ($esc) {
- $$other =~ s{%([0-9a-fA-F]{2})}
- { my $a = chr(hex($1));
- $a =~ /^[$unreserved]\z/o ? $a : "%\U$1"
- }ge;
- }
- return $other;
-}
-
-# Compare two URIs, subclasses will provide a more correct implementation
-sub eq {
- my($self, $other) = @_;
- $self = URI->new($self, $other) unless ref $self;
- $other = URI->new($other, $self) unless ref $other;
- ref($self) eq ref($other) && # same class
- $self->canonical->as_string eq $other->canonical->as_string;
-}
-
-# generic-URI transformation methods
-sub abs { $_[0]; }
-sub rel { $_[0]; }
-
-sub secure { 0 }
-
-# help out Storable
-sub STORABLE_freeze {
- my($self, $cloning) = @_;
- return $$self;
-}
-
-sub STORABLE_thaw {
- my($self, $cloning, $str) = @_;
- $$self = $str;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-URI - Uniform Resource Identifiers (absolute and relative)
-
-=head1 SYNOPSIS
-
- $u1 = URI->new("http://www.perl.com");
- $u2 = URI->new("foo", "http");
- $u3 = $u2->abs($u1);
- $u4 = $u3->clone;
- $u5 = URI->new("HTTP://WWW.perl.com:80")->canonical;
-
- $str = $u->as_string;
- $str = "$u";
-
- $scheme = $u->scheme;
- $opaque = $u->opaque;
- $path = $u->path;
- $frag = $u->fragment;
-
- $u->scheme("ftp");
- $u->host("ftp.perl.com");
- $u->path("cpan/");
-
-=head1 DESCRIPTION
-
-This module implements the C<URI> class. Objects of this class
-represent "Uniform Resource Identifier references" as specified in RFC
-2396 (and updated by RFC 2732).
-
-A Uniform Resource Identifier is a compact string of characters that
-identifies an abstract or physical resource. A Uniform Resource
-Identifier can be further classified as either a Uniform Resource Locator
-(URL) or a Uniform Resource Name (URN). The distinction between URL
-and URN does not matter to the C<URI> class interface. A
-"URI-reference" is a URI that may have additional information attached
-in the form of a fragment identifier.
-
-An absolute URI reference consists of three parts: a I<scheme>, a
-I<scheme-specific part> and a I<fragment> identifier. A subset of URI
-references share a common syntax for hierarchical namespaces. For
-these, the scheme-specific part is further broken down into
-I<authority>, I<path> and I<query> components. These URIs can also
-take the form of relative URI references, where the scheme (and
-usually also the authority) component is missing, but implied by the
-context of the URI reference. The three forms of URI reference
-syntax are summarized as follows:
-
- <scheme>:<scheme-specific-part>#<fragment>
- <scheme>://<authority><path>?<query>#<fragment>
- <path>?<query>#<fragment>
-
-The components into which a URI reference can be divided depend on the
-I<scheme>. The C<URI> class provides methods to get and set the
-individual components. The methods available for a specific
-C<URI> object depend on the scheme.
-
-=head1 CONSTRUCTORS
-
-The following methods construct new C<URI> objects:
-
-=over 4
-
-=item $uri = URI->new( $str )
-
-=item $uri = URI->new( $str, $scheme )
-
-Constructs a new URI object. The string
-representation of a URI is given as argument, together with an optional
-scheme specification. Common URI wrappers like "" and <>, as well as
-leading and trailing white space, are automatically removed from
-the $str argument before it is processed further.
-
-The constructor determines the scheme, maps this to an appropriate
-URI subclass, constructs a new object of that class and returns it.
-
-If the scheme isn't one of those that URI recognizes, you still get
-an URI object back that you can access the generic methods on. The
-C<< $uri->has_recognized_scheme >> method can be used to test for
-this.
-
-The $scheme argument is only used when $str is a
-relative URI. It can be either a simple string that
-denotes the scheme, a string containing an absolute URI reference, or
-an absolute C<URI> object. If no $scheme is specified for a relative
-URI $str, then $str is simply treated as a generic URI (no scheme-specific
-methods available).
-
-The set of characters available for building URI references is
-restricted (see L<URI::Escape>). Characters outside this set are
-automatically escaped by the URI constructor.
-
-=item $uri = URI->new_abs( $str, $base_uri )
-
-Constructs a new absolute URI object. The $str argument can
-denote a relative or absolute URI. If relative, then it is
-absolutized using $base_uri as base. The $base_uri must be an absolute
-URI.
-
-=item $uri = URI::file->new( $filename )
-
-=item $uri = URI::file->new( $filename, $os )
-
-Constructs a new I<file> URI from a file name. See L<URI::file>.
-
-=item $uri = URI::file->new_abs( $filename )
-
-=item $uri = URI::file->new_abs( $filename, $os )
-
-Constructs a new absolute I<file> URI from a file name. See
-L<URI::file>.
-
-=item $uri = URI::file->cwd
-
-Returns the current working directory as a I<file> URI. See
-L<URI::file>.
-
-=item $uri->clone
-
-Returns a copy of the $uri.
-
-=back
-
-=head1 COMMON METHODS
-
-The methods described in this section are available for all C<URI>
-objects.
-
-Methods that give access to components of a URI always return the
-old value of the component. The value returned is C<undef> if the
-component was not present. There is generally a difference between a
-component that is empty (represented as C<"">) and a component that is
-missing (represented as C<undef>). If an accessor method is given an
-argument, it updates the corresponding component in addition to
-returning the old value of the component. Passing an undefined
-argument removes the component (if possible). The description of
-each accessor method indicates whether the component is passed as
-an escaped (percent-encoded) or an unescaped string. A component that can be further
-divided into sub-parts are usually passed escaped, as unescaping might
-change its semantics.
-
-The common methods available for all URI are:
-
-=over 4
-
-=item $uri->scheme
-
-=item $uri->scheme( $new_scheme )
-
-Sets and returns the scheme part of the $uri. If the $uri is
-relative, then $uri->scheme returns C<undef>. If called with an
-argument, it updates the scheme of $uri, possibly changing the
-class of $uri, and returns the old scheme value. The method croaks
-if the new scheme name is illegal; a scheme name must begin with a
-letter and must consist of only US-ASCII letters, numbers, and a few
-special marks: ".", "+", "-". This restriction effectively means
-that the scheme must be passed unescaped. Passing an undefined
-argument to the scheme method makes the URI relative (if possible).
-
-Letter case does not matter for scheme names. The string
-returned by $uri->scheme is always lowercase. If you want the scheme
-just as it was written in the URI in its original case,
-you can use the $uri->_scheme method instead.
-
-=item $uri->has_recognized_scheme
-
-Returns TRUE if the URI scheme is one that URI recognizes.
-
-It will also be TRUE for relative URLs where a recognized
-scheme was provided to the constructor, even if C<< $uri->scheme >>
-returns C<undef> for these.
-
-=item $uri->opaque
-
-=item $uri->opaque( $new_opaque )
-
-Sets and returns the scheme-specific part of the $uri
-(everything between the scheme and the fragment)
-as an escaped string.
-
-=item $uri->path
-
-=item $uri->path( $new_path )
-
-Sets and returns the same value as $uri->opaque unless the URI
-supports the generic syntax for hierarchical namespaces.
-In that case the generic method is overridden to set and return
-the part of the URI between the I<host name> and the I<fragment>.
-
-=item $uri->fragment
-
-=item $uri->fragment( $new_frag )
-
-Returns the fragment identifier of a URI reference
-as an escaped string.
-
-=item $uri->as_string
-
-Returns a URI object to a plain ASCII string. URI objects are
-also converted to plain strings automatically by overloading. This
-means that $uri objects can be used as plain strings in most Perl
-constructs.
-
-=item $uri->as_iri
-
-Returns a Unicode string representing the URI. Escaped UTF-8 sequences
-representing non-ASCII characters are turned into their corresponding Unicode
-code point.
-
-=item $uri->canonical
-
-Returns a normalized version of the URI. The rules
-for normalization are scheme-dependent. They usually involve
-lowercasing the scheme and Internet host name components,
-removing the explicit port specification if it matches the default port,
-uppercasing all escape sequences, and unescaping octets that can be
-better represented as plain characters.
-
-For efficiency reasons, if the $uri is already in normalized form,
-then a reference to it is returned instead of a copy.
-
-=item $uri->eq( $other_uri )
-
-=item URI::eq( $first_uri, $other_uri )
-
-Tests whether two URI references are equal. URI references
-that normalize to the same string are considered equal. The method
-can also be used as a plain function which can also test two string
-arguments.
-
-If you need to test whether two C<URI> object references denote the
-same object, use the '==' operator.
-
-=item $uri->abs( $base_uri )
-
-Returns an absolute URI reference. If $uri is already
-absolute, then a reference to it is simply returned. If the $uri
-is relative, then a new absolute URI is constructed by combining the
-$uri and the $base_uri, and returned.
-
-=item $uri->rel( $base_uri )
-
-Returns a relative URI reference if it is possible to
-make one that denotes the same resource relative to $base_uri.
-If not, then $uri is simply returned.
-
-=item $uri->secure
-
-Returns a TRUE value if the URI is considered to point to a resource on
-a secure channel, such as an SSL or TLS encrypted one.
-
-=back
-
-=head1 GENERIC METHODS
-
-The following methods are available to schemes that use the
-common/generic syntax for hierarchical namespaces. The descriptions of
-schemes below indicate which these are. Unrecognized schemes are
-assumed to support the generic syntax, and therefore the following
-methods:
-
-=over 4
-
-=item $uri->authority
-
-=item $uri->authority( $new_authority )
-
-Sets and returns the escaped authority component
-of the $uri.
-
-=item $uri->path
-
-=item $uri->path( $new_path )
-
-Sets and returns the escaped path component of
-the $uri (the part between the host name and the query or fragment).
-The path can never be undefined, but it can be the empty string.
-
-=item $uri->path_query
-
-=item $uri->path_query( $new_path_query )
-
-Sets and returns the escaped path and query
-components as a single entity. The path and the query are
-separated by a "?" character, but the query can itself contain "?".
-
-=item $uri->path_segments
-
-=item $uri->path_segments( $segment, ... )
-
-Sets and returns the path. In a scalar context, it returns
-the same value as $uri->path. In a list context, it returns the
-unescaped path segments that make up the path. Path segments that
-have parameters are returned as an anonymous array. The first element
-is the unescaped path segment proper; subsequent elements are escaped
-parameter strings. Such an anonymous array uses overloading so it can
-be treated as a string too, but this string does not include the
-parameters.
-
-Note that absolute paths have the empty string as their first
-I<path_segment>, i.e. the I<path> C</foo/bar> have 3
-I<path_segments>; "", "foo" and "bar".
-
-=item $uri->query
-
-=item $uri->query( $new_query )
-
-Sets and returns the escaped query component of
-the $uri.
-
-=item $uri->query_form
-
-=item $uri->query_form( $key1 => $val1, $key2 => $val2, ... )
-
-=item $uri->query_form( $key1 => $val1, $key2 => $val2, ..., $delim )
-
-=item $uri->query_form( \@key_value_pairs )
-
-=item $uri->query_form( \@key_value_pairs, $delim )
-
-=item $uri->query_form( \%hash )
-
-=item $uri->query_form( \%hash, $delim )
-
-Sets and returns query components that use the
-I<application/x-www-form-urlencoded> format. Key/value pairs are
-separated by "&", and the key is separated from the value by a "="
-character.
-
-The form can be set either by passing separate key/value pairs, or via
-an array or hash reference. Passing an empty array or an empty hash
-removes the query component, whereas passing no arguments at all leaves
-the component unchanged. The order of keys is undefined if a hash
-reference is passed. The old value is always returned as a list of
-separate key/value pairs. Assigning this list to a hash is unwise as
-the keys returned might repeat.
-
-The values passed when setting the form can be plain strings or
-references to arrays of strings. Passing an array of values has the
-same effect as passing the key repeatedly with one value at a time.
-All the following statements have the same effect:
-
- $uri->query_form(foo => 1, foo => 2);
- $uri->query_form(foo => [1, 2]);
- $uri->query_form([ foo => 1, foo => 2 ]);
- $uri->query_form([ foo => [1, 2] ]);
- $uri->query_form({ foo => [1, 2] });
-
-The $delim parameter can be passed as ";" to force the key/value pairs
-to be delimited by ";" instead of "&" in the query string. This
-practice is often recommended for URLs embedded in HTML or XML
-documents as this avoids the trouble of escaping the "&" character.
-You might also set the $URI::DEFAULT_QUERY_FORM_DELIMITER variable to
-";" for the same global effect.
-
-The C<URI::QueryParam> module can be loaded to add further methods to
-manipulate the form of a URI. See L<URI::QueryParam> for details.
-
-=item $uri->query_keywords
-
-=item $uri->query_keywords( $keywords, ... )
-
-=item $uri->query_keywords( \@keywords )
-
-Sets and returns query components that use the
-keywords separated by "+" format.
-
-The keywords can be set either by passing separate keywords directly
-or by passing a reference to an array of keywords. Passing an empty
-array removes the query component, whereas passing no arguments at
-all leaves the component unchanged. The old value is always returned
-as a list of separate words.
-
-=back
-
-=head1 SERVER METHODS
-
-For schemes where the I<authority> component denotes an Internet host,
-the following methods are available in addition to the generic
-methods.
-
-=over 4
-
-=item $uri->userinfo
-
-=item $uri->userinfo( $new_userinfo )
-
-Sets and returns the escaped userinfo part of the
-authority component.
-
-For some schemes this is a user name and a password separated by
-a colon. This practice is not recommended. Embedding passwords in
-clear text (such as URI) has proven to be a security risk in almost
-every case where it has been used.
-
-=item $uri->host
-
-=item $uri->host( $new_host )
-
-Sets and returns the unescaped hostname.
-
-If the $new_host string ends with a colon and a number, then this
-number also sets the port.
-
-For IPv6 addresses the brackets around the raw address is removed in the return
-value from $uri->host. When setting the host attribute to an IPv6 address you
-can use a raw address or one enclosed in brackets. The address needs to be
-enclosed in brackets if you want to pass in a new port value as well.
-
-=item $uri->ihost
-
-Returns the host in Unicode form. Any IDNA A-labels are turned into U-labels.
-
-=item $uri->port
-
-=item $uri->port( $new_port )
-
-Sets and returns the port. The port is a simple integer
-that should be greater than 0.
-
-If a port is not specified explicitly in the URI, then the URI scheme's default port
-is returned. If you don't want the default port
-substituted, then you can use the $uri->_port method instead.
-
-=item $uri->host_port
-
-=item $uri->host_port( $new_host_port )
-
-Sets and returns the host and port as a single
-unit. The returned value includes a port, even if it matches the
-default port. The host part and the port part are separated by a
-colon: ":".
-
-For IPv6 addresses the bracketing is preserved; thus
-URI->new("http://[::1]/")->host_port returns "[::1]:80". Contrast this with
-$uri->host which will remove the brackets.
-
-=item $uri->default_port
-
-Returns the default port of the URI scheme to which $uri
-belongs. For I<http> this is the number 80, for I<ftp> this
-is the number 21, etc. The default port for a scheme can not be
-changed.
-
-=back
-
-=head1 SCHEME-SPECIFIC SUPPORT
-
-Scheme-specific support is provided for the following URI schemes. For C<URI>
-objects that do not belong to one of these, you can only use the common and
-generic methods.
-
-=over 4
-
-=item B<data>:
-
-The I<data> URI scheme is specified in RFC 2397. It allows inclusion
-of small data items as "immediate" data, as if it had been included
-externally.
-
-C<URI> objects belonging to the data scheme support the common methods
-and two new methods to access their scheme-specific components:
-$uri->media_type and $uri->data. See L<URI::data> for details.
-
-=item B<file>:
-
-An old specification of the I<file> URI scheme is found in RFC 1738.
-A new RFC 2396 based specification in not available yet, but file URI
-references are in common use.
-
-C<URI> objects belonging to the file scheme support the common and
-generic methods. In addition, they provide two methods for mapping file URIs
-back to local file names; $uri->file and $uri->dir. See L<URI::file>
-for details.
-
-=item B<ftp>:
-
-An old specification of the I<ftp> URI scheme is found in RFC 1738. A
-new RFC 2396 based specification in not available yet, but ftp URI
-references are in common use.
-
-C<URI> objects belonging to the ftp scheme support the common,
-generic and server methods. In addition, they provide two methods for
-accessing the userinfo sub-components: $uri->user and $uri->password.
-
-=item B<gopher>:
-
-The I<gopher> URI scheme is specified in
-<draft-murali-url-gopher-1996-12-04> and will hopefully be available
-as a RFC 2396 based specification.
-
-C<URI> objects belonging to the gopher scheme support the common,
-generic and server methods. In addition, they support some methods for
-accessing gopher-specific path components: $uri->gopher_type,
-$uri->selector, $uri->search, $uri->string.
-
-=item B<http>:
-
-The I<http> URI scheme is specified in RFC 2616.
-The scheme is used to reference resources hosted by HTTP servers.
-
-C<URI> objects belonging to the http scheme support the common,
-generic and server methods.
-
-=item B<https>:
-
-The I<https> URI scheme is a Netscape invention which is commonly
-implemented. The scheme is used to reference HTTP servers through SSL
-connections. Its syntax is the same as http, but the default
-port is different.
-
-=item B<ldap>:
-
-The I<ldap> URI scheme is specified in RFC 2255. LDAP is the
-Lightweight Directory Access Protocol. An ldap URI describes an LDAP
-search operation to perform to retrieve information from an LDAP
-directory.
-
-C<URI> objects belonging to the ldap scheme support the common,
-generic and server methods as well as ldap-specific methods: $uri->dn,
-$uri->attributes, $uri->scope, $uri->filter, $uri->extensions. See
-L<URI::ldap> for details.
-
-=item B<ldapi>:
-
-Like the I<ldap> URI scheme, but uses a UNIX domain socket. The
-server methods are not supported, and the local socket path is
-available as $uri->un_path. The I<ldapi> scheme is used by the
-OpenLDAP package. There is no real specification for it, but it is
-mentioned in various OpenLDAP manual pages.
-
-=item B<ldaps>:
-
-Like the I<ldap> URI scheme, but uses an SSL connection. This
-scheme is deprecated, as the preferred way is to use the I<start_tls>
-mechanism.
-
-=item B<mailto>:
-
-The I<mailto> URI scheme is specified in RFC 2368. The scheme was
-originally used to designate the Internet mailing address of an
-individual or service. It has (in RFC 2368) been extended to allow
-setting of other mail header fields and the message body.
-
-C<URI> objects belonging to the mailto scheme support the common
-methods and the generic query methods. In addition, they support the
-following mailto-specific methods: $uri->to, $uri->headers.
-
-Note that the "foo@example.com" part of a mailto is I<not> the
-C<userinfo> and C<host> but instead the C<path>. This allows a
-mailto URI to contain multiple comma separated email addresses.
-
-=item B<mms>:
-
-The I<mms> URL specification can be found at L<http://sdp.ppona.com/>.
-C<URI> objects belonging to the mms scheme support the common,
-generic, and server methods, with the exception of userinfo and
-query-related sub-components.
-
-=item B<news>:
-
-The I<news>, I<nntp> and I<snews> URI schemes are specified in
-<draft-gilman-news-url-01> and will hopefully be available as an RFC
-2396 based specification soon.
-
-C<URI> objects belonging to the news scheme support the common,
-generic and server methods. In addition, they provide some methods to
-access the path: $uri->group and $uri->message.
-
-=item B<nntp>:
-
-See I<news> scheme.
-
-=item B<pop>:
-
-The I<pop> URI scheme is specified in RFC 2384. The scheme is used to
-reference a POP3 mailbox.
-
-C<URI> objects belonging to the pop scheme support the common, generic
-and server methods. In addition, they provide two methods to access the
-userinfo components: $uri->user and $uri->auth
-
-=item B<rlogin>:
-
-An old specification of the I<rlogin> URI scheme is found in RFC
-1738. C<URI> objects belonging to the rlogin scheme support the
-common, generic and server methods.
-
-=item B<rtsp>:
-
-The I<rtsp> URL specification can be found in section 3.2 of RFC 2326.
-C<URI> objects belonging to the rtsp scheme support the common,
-generic, and server methods, with the exception of userinfo and
-query-related sub-components.
-
-=item B<rtspu>:
-
-The I<rtspu> URI scheme is used to talk to RTSP servers over UDP
-instead of TCP. The syntax is the same as rtsp.
-
-=item B<rsync>:
-
-Information about rsync is available from L<http://rsync.samba.org/>.
-C<URI> objects belonging to the rsync scheme support the common,
-generic and server methods. In addition, they provide methods to
-access the userinfo sub-components: $uri->user and $uri->password.
-
-=item B<sip>:
-
-The I<sip> URI specification is described in sections 19.1 and 25
-of RFC 3261. C<URI> objects belonging to the sip scheme support the
-common, generic, and server methods with the exception of path related
-sub-components. In addition, they provide two methods to get and set
-I<sip> parameters: $uri->params_form and $uri->params.
-
-=item B<sips>:
-
-See I<sip> scheme. Its syntax is the same as sip, but the default
-port is different.
-
-=item B<snews>:
-
-See I<news> scheme. Its syntax is the same as news, but the default
-port is different.
-
-=item B<telnet>:
-
-An old specification of the I<telnet> URI scheme is found in RFC
-1738. C<URI> objects belonging to the telnet scheme support the
-common, generic and server methods.
-
-=item B<tn3270>:
-
-These URIs are used like I<telnet> URIs but for connections to IBM
-mainframes. C<URI> objects belonging to the tn3270 scheme support the
-common, generic and server methods.
-
-=item B<ssh>:
-
-Information about ssh is available at L<http://www.openssh.com/>.
-C<URI> objects belonging to the ssh scheme support the common,
-generic and server methods. In addition, they provide methods to
-access the userinfo sub-components: $uri->user and $uri->password.
-
-=item B<urn>:
-
-The syntax of Uniform Resource Names is specified in RFC 2141. C<URI>
-objects belonging to the urn scheme provide the common methods, and also the
-methods $uri->nid and $uri->nss, which return the Namespace Identifier
-and the Namespace-Specific String respectively.
-
-The Namespace Identifier basically works like the Scheme identifier of
-URIs, and further divides the URN namespace. Namespace Identifier
-assignments are maintained at
-L<http://www.iana.org/assignments/urn-namespaces>.
-
-Letter case is not significant for the Namespace Identifier. It is
-always returned in lower case by the $uri->nid method. The $uri->_nid
-method can be used if you want it in its original case.
-
-=item B<urn>:B<isbn>:
-
-The C<urn:isbn:> namespace contains International Standard Book
-Numbers (ISBNs) and is described in RFC 3187. A C<URI> object belonging
-to this namespace has the following extra methods (if the
-Business::ISBN module is available): $uri->isbn,
-$uri->isbn_publisher_code, $uri->isbn_group_code (formerly isbn_country_code,
-which is still supported by issues a deprecation warning), $uri->isbn_as_ean.
-
-=item B<urn>:B<oid>:
-
-The C<urn:oid:> namespace contains Object Identifiers (OIDs) and is
-described in RFC 3061. An object identifier consists of sequences of digits
-separated by dots. A C<URI> object belonging to this namespace has an
-additional method called $uri->oid that can be used to get/set the oid
-value. In a list context, oid numbers are returned as separate elements.
-
-=back
-
-=head1 CONFIGURATION VARIABLES
-
-The following configuration variables influence how the class and its
-methods behave:
-
-=over 4
-
-=item $URI::ABS_ALLOW_RELATIVE_SCHEME
-
-Some older parsers used to allow the scheme name to be present in the
-relative URL if it was the same as the base URL scheme. RFC 2396 says
-that this should be avoided, but you can enable this old behaviour by
-setting the $URI::ABS_ALLOW_RELATIVE_SCHEME variable to a TRUE value.
-The difference is demonstrated by the following examples:
-
- URI->new("http:foo")->abs("http://host/a/b")
- ==> "http:foo"
-
- local $URI::ABS_ALLOW_RELATIVE_SCHEME = 1;
- URI->new("http:foo")->abs("http://host/a/b")
- ==> "http:/host/a/foo"
-
-
-=item $URI::ABS_REMOTE_LEADING_DOTS
-
-You can also have the abs() method ignore excess ".."
-segments in the relative URI by setting $URI::ABS_REMOTE_LEADING_DOTS
-to a TRUE value. The difference is demonstrated by the following
-examples:
-
- URI->new("../../../foo")->abs("http://host/a/b")
- ==> "http://host/../../foo"
-
- local $URI::ABS_REMOTE_LEADING_DOTS = 1;
- URI->new("../../../foo")->abs("http://host/a/b")
- ==> "http://host/foo"
-
-=item $URI::DEFAULT_QUERY_FORM_DELIMITER
-
-This value can be set to ";" to have the query form C<key=value> pairs
-delimited by ";" instead of "&" which is the default.
-
-=back
-
-=head1 BUGS
-
-There are some things that are not quite right:
-
-=over
-
-=item *
-
-Using regexp variables like $1 directly as arguments to the URI accessor methods
-does not work too well with current perl implementations. I would argue
-that this is actually a bug in perl. The workaround is to quote
-them. Example:
-
- /(...)/ || die;
- $u->query("$1");
-
-
-=item *
-
-The escaping (percent encoding) of chars in the 128 .. 255 range passed to the
-URI constructor or when setting URI parts using the accessor methods depend on
-the state of the internal UTF8 flag (see utf8::is_utf8) of the string passed.
-If the UTF8 flag is set the UTF-8 encoded version of the character is percent
-encoded. If the UTF8 flag isn't set the Latin-1 version (byte) of the
-character is percent encoded. This basically exposes the internal encoding of
-Perl strings.
-
-=back
-
-=head1 PARSING URIs WITH REGEXP
-
-As an alternative to this module, the following (official) regular
-expression can be used to decode a URI:
-
- my($scheme, $authority, $path, $query, $fragment) =
- $uri =~ m|(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?|;
-
-The C<URI::Split> module provides the function uri_split() as a
-readable alternative.
-
-=head1 SEE ALSO
-
-L<URI::file>, L<URI::WithBase>, L<URI::QueryParam>, L<URI::Escape>,
-L<URI::Split>, L<URI::Heuristic>
-
-RFC 2396: "Uniform Resource Identifiers (URI): Generic Syntax",
-Berners-Lee, Fielding, Masinter, August 1998.
-
-L<http://www.iana.org/assignments/uri-schemes>
-
-L<http://www.iana.org/assignments/urn-namespaces>
-
-L<http://www.w3.org/Addressing/>
-
-=head1 COPYRIGHT
-
-Copyright 1995-2009 Gisle Aas.
-
-Copyright 1995 Martijn Koster.
-
-This program is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=head1 AUTHORS / ACKNOWLEDGMENTS
-
-This module is based on the C<URI::URL> module, which in turn was
-(distantly) based on the C<wwwurl.pl> code in the libwww-perl for
-perl4 developed by Roy Fielding, as part of the Arcadia project at the
-University of California, Irvine, with contributions from Brooks
-Cutter.
-
-C<URI::URL> was developed by Gisle Aas, Tim Bunce, Roy Fielding and
-Martijn Koster with input from other people on the libwww-perl mailing
-list.
-
-C<URI> and related subclasses was developed by Gisle Aas.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/URI/Escape.pm b/Master/tlpkg/tlperl/lib/URI/Escape.pm
deleted file mode 100644
index 547535ea801..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/Escape.pm
+++ /dev/null
@@ -1,220 +0,0 @@
-package URI::Escape;
-
-use strict;
-use warnings;
-
-=head1 NAME
-
-URI::Escape - Percent-encode and percent-decode unsafe characters
-
-=head1 SYNOPSIS
-
- use URI::Escape;
- $safe = uri_escape("10% is enough\n");
- $verysafe = uri_escape("foo", "\0-\377");
- $str = uri_unescape($safe);
-
-=head1 DESCRIPTION
-
-This module provides functions to percent-encode and percent-decode URI strings as
-defined by RFC 3986. Percent-encoding URI's is informally called "URI escaping".
-This is the terminology used by this module, which predates the formalization of the
-terms by the RFC by several years.
-
-A URI consists of a restricted set of characters. The restricted set
-of characters consists of digits, letters, and a few graphic symbols
-chosen from those common to most of the character encodings and input
-facilities available to Internet users. They are made up of the
-"unreserved" and "reserved" character sets as defined in RFC 3986.
-
- unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
- reserved = ":" / "/" / "?" / "#" / "[" / "]" / "@"
- "!" / "$" / "&" / "'" / "(" / ")"
- / "*" / "+" / "," / ";" / "="
-
-In addition, any byte (octet) can be represented in a URI by an escape
-sequence: a triplet consisting of the character "%" followed by two
-hexadecimal digits. A byte can also be represented directly by a
-character, using the US-ASCII character for that octet.
-
-Some of the characters are I<reserved> for use as delimiters or as
-part of certain URI components. These must be escaped if they are to
-be treated as ordinary data. Read RFC 3986 for further details.
-
-The functions provided (and exported by default) from this module are:
-
-=over 4
-
-=item uri_escape( $string )
-
-=item uri_escape( $string, $unsafe )
-
-Replaces each unsafe character in the $string with the corresponding
-escape sequence and returns the result. The $string argument should
-be a string of bytes. The uri_escape() function will croak if given a
-characters with code above 255. Use uri_escape_utf8() if you know you
-have such chars or/and want chars in the 128 .. 255 range treated as
-UTF-8.
-
-The uri_escape() function takes an optional second argument that
-overrides the set of characters that are to be escaped. The set is
-specified as a string that can be used in a regular expression
-character class (between [ ]). E.g.:
-
- "\x00-\x1f\x7f-\xff" # all control and hi-bit characters
- "a-z" # all lower case characters
- "^A-Za-z" # everything not a letter
-
-The default set of characters to be escaped is all those which are
-I<not> part of the C<unreserved> character class shown above as well
-as the reserved characters. I.e. the default is:
-
- "^A-Za-z0-9\-\._~"
-
-=item uri_escape_utf8( $string )
-
-=item uri_escape_utf8( $string, $unsafe )
-
-Works like uri_escape(), but will encode chars as UTF-8 before
-escaping them. This makes this function able to deal with characters
-with code above 255 in $string. Note that chars in the 128 .. 255
-range will be escaped differently by this function compared to what
-uri_escape() would. For chars in the 0 .. 127 range there is no
-difference.
-
-Equivalent to:
-
- utf8::encode($string);
- my $uri = uri_escape($string);
-
-Note: JavaScript has a function called escape() that produces the
-sequence "%uXXXX" for chars in the 256 .. 65535 range. This function
-has really nothing to do with URI escaping but some folks got confused
-since it "does the right thing" in the 0 .. 255 range. Because of
-this you sometimes see "URIs" with these kind of escapes. The
-JavaScript encodeURIComponent() function is similar to uri_escape_utf8().
-
-=item uri_unescape($string,...)
-
-Returns a string with each %XX sequence replaced with the actual byte
-(octet).
-
-This does the same as:
-
- $string =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
-
-but does not modify the string in-place as this RE would. Using the
-uri_unescape() function instead of the RE might make the code look
-cleaner and is a few characters less to type.
-
-In a simple benchmark test I did,
-calling the function (instead of the inline RE above) if a few chars
-were unescaped was something like 40% slower, and something like 700% slower if none were. If
-you are going to unescape a lot of times it might be a good idea to
-inline the RE.
-
-If the uri_unescape() function is passed multiple strings, then each
-one is returned unescaped.
-
-=back
-
-The module can also export the C<%escapes> hash, which contains the
-mapping from all 256 bytes to the corresponding escape codes. Lookup
-in this hash is faster than evaluating C<sprintf("%%%02X", ord($byte))>
-each time.
-
-=head1 SEE ALSO
-
-L<URI>
-
-
-=head1 COPYRIGHT
-
-Copyright 1995-2004 Gisle Aas.
-
-This program is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
-use Exporter 'import';
-our %escapes;
-our @EXPORT = qw(uri_escape uri_unescape uri_escape_utf8);
-our @EXPORT_OK = qw(%escapes);
-our $VERSION = "3.31";
-
-use Carp ();
-
-# Build a char->hex map
-for (0..255) {
- $escapes{chr($_)} = sprintf("%%%02X", $_);
-}
-
-my %subst; # compiled patterns
-
-my %Unsafe = (
- RFC2732 => qr/[^A-Za-z0-9\-_.!~*'()]/,
- RFC3986 => qr/[^A-Za-z0-9\-\._~]/,
-);
-
-sub uri_escape {
- my($text, $patn) = @_;
- return undef unless defined $text;
- if (defined $patn){
- unless (exists $subst{$patn}) {
- # Because we can't compile the regex we fake it with a cached sub
- (my $tmp = $patn) =~ s,/,\\/,g;
- eval "\$subst{\$patn} = sub {\$_[0] =~ s/([$tmp])/\$escapes{\$1} || _fail_hi(\$1)/ge; }";
- Carp::croak("uri_escape: $@") if $@;
- }
- &{$subst{$patn}}($text);
- } else {
- $text =~ s/($Unsafe{RFC3986})/$escapes{$1} || _fail_hi($1)/ge;
- }
- $text;
-}
-
-sub _fail_hi {
- my $chr = shift;
- Carp::croak(sprintf "Can't escape \\x{%04X}, try uri_escape_utf8() instead", ord($chr));
-}
-
-sub uri_escape_utf8 {
- my $text = shift;
- utf8::encode($text);
- return uri_escape($text, @_);
-}
-
-sub uri_unescape {
- # Note from RFC1630: "Sequences which start with a percent sign
- # but are not followed by two hexadecimal characters are reserved
- # for future extension"
- my $str = shift;
- if (@_ && wantarray) {
- # not executed for the common case of a single argument
- my @str = ($str, @_); # need to copy
- for (@str) {
- s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
- }
- return @str;
- }
- $str =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg if defined $str;
- $str;
-}
-
-# XXX FIXME escape_char is buggy as it assigns meaning to the string's storage format.
-sub escape_char {
- # Old versions of utf8::is_utf8() didn't properly handle magical vars (e.g. $1).
- # The following forces a fetch to occur beforehand.
- my $dummy = substr($_[0], 0, 0);
-
- if (utf8::is_utf8($_[0])) {
- my $s = shift;
- utf8::encode($s);
- unshift(@_, $s);
- }
-
- return join '', @URI::Escape::escapes{split //, $_[0]};
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/Heuristic.pm b/Master/tlpkg/tlperl/lib/URI/Heuristic.pm
deleted file mode 100644
index 89ec7bd5c33..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/Heuristic.pm
+++ /dev/null
@@ -1,253 +0,0 @@
-package URI::Heuristic;
-
-=head1 NAME
-
-URI::Heuristic - Expand URI using heuristics
-
-=head1 SYNOPSIS
-
- use URI::Heuristic qw(uf_uristr);
- $u = uf_uristr("perl"); # http://www.perl.com
- $u = uf_uristr("www.sol.no/sol"); # http://www.sol.no/sol
- $u = uf_uristr("aas"); # http://www.aas.no
- $u = uf_uristr("ftp.funet.fi"); # ftp://ftp.funet.fi
- $u = uf_uristr("/etc/passwd"); # file:/etc/passwd
-
-=head1 DESCRIPTION
-
-This module provides functions that expand strings into real absolute
-URIs using some built-in heuristics. Strings that already represent
-absolute URIs (i.e. that start with a C<scheme:> part) are never modified
-and are returned unchanged. The main use of these functions is to
-allow abbreviated URIs similar to what many web browsers allow for URIs
-typed in by the user.
-
-The following functions are provided:
-
-=over 4
-
-=item uf_uristr($str)
-
-Tries to make the argument string
-into a proper absolute URI string. The "uf_" prefix stands for "User
-Friendly". Under MacOS, it assumes that any string with a common URL
-scheme (http, ftp, etc.) is a URL rather than a local path. So don't name
-your volumes after common URL schemes and expect uf_uristr() to construct
-valid file: URL's on those volumes for you, because it won't.
-
-=item uf_uri($str)
-
-Works the same way as uf_uristr() but
-returns a C<URI> object.
-
-=back
-
-=head1 ENVIRONMENT
-
-If the hostname portion of a URI does not contain any dots, then
-certain qualified guesses are made. These guesses are governed by
-the following environment variables:
-
-=over 10
-
-=item COUNTRY
-
-The two-letter country code (ISO 3166) for your location. If
-the domain name of your host ends with two letters, then it is taken
-to be the default country. See also L<Locale::Country>.
-
-=item HTTP_ACCEPT_LANGUAGE, LC_ALL, LANG
-
-If COUNTRY is not set, these standard environment variables are
-examined and country (not language) information possibly found in them
-is used as the default country.
-
-=item URL_GUESS_PATTERN
-
-Contains a space-separated list of URL patterns to try. The string
-"ACME" is for some reason used as a placeholder for the host name in
-the URL provided. Example:
-
- URL_GUESS_PATTERN="www.ACME.no www.ACME.se www.ACME.com"
- export URL_GUESS_PATTERN
-
-Specifying URL_GUESS_PATTERN disables any guessing rules based on
-country. An empty URL_GUESS_PATTERN disables any guessing that
-involves host name lookups.
-
-=back
-
-=head1 COPYRIGHT
-
-Copyright 1997-1998, Gisle Aas
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
-
-use strict;
-use warnings;
-
-use Exporter 'import';
-our @EXPORT_OK = qw(uf_uri uf_uristr uf_url uf_urlstr);
-our $VERSION = "4.20";
-
-our ($MY_COUNTRY, $DEBUG);
-
-sub MY_COUNTRY() {
- for ($MY_COUNTRY) {
- return $_ if defined;
-
- # First try the environment.
- $_ = $ENV{COUNTRY};
- return $_ if defined;
-
- # Try the country part of LC_ALL and LANG from environment
- my @srcs = ($ENV{LC_ALL}, $ENV{LANG});
- # ...and HTTP_ACCEPT_LANGUAGE before those if present
- if (my $httplang = $ENV{HTTP_ACCEPT_LANGUAGE}) {
- # TODO: q-value processing/ordering
- for $httplang (split(/\s*,\s*/, $httplang)) {
- if ($httplang =~ /^\s*([a-zA-Z]+)[_-]([a-zA-Z]{2})\s*$/) {
- unshift(@srcs, "${1}_${2}");
- last;
- }
- }
- }
- for (@srcs) {
- next unless defined;
- return lc($1) if /^[a-zA-Z]+_([a-zA-Z]{2})(?:[.@]|$)/;
- }
-
- # Last bit of domain name. This may access the network.
- require Net::Domain;
- my $fqdn = Net::Domain::hostfqdn();
- $_ = lc($1) if $fqdn =~ /\.([a-zA-Z]{2})$/;
- return $_ if defined;
-
- # Give up. Defined but false.
- return ($_ = 0);
- }
-}
-
-our %LOCAL_GUESSING =
-(
- 'us' => [qw(www.ACME.gov www.ACME.mil)],
- 'gb' => [qw(www.ACME.co.uk www.ACME.org.uk www.ACME.ac.uk)],
- 'au' => [qw(www.ACME.com.au www.ACME.org.au www.ACME.edu.au)],
- 'il' => [qw(www.ACME.co.il www.ACME.org.il www.ACME.net.il)],
- # send corrections and new entries to <gisle@aas.no>
-);
-# Backwards compatibility; uk != United Kingdom in ISO 3166
-$LOCAL_GUESSING{uk} = $LOCAL_GUESSING{gb};
-
-
-sub uf_uristr ($)
-{
- local($_) = @_;
- print STDERR "uf_uristr: resolving $_\n" if $DEBUG;
- return unless defined;
-
- s/^\s+//;
- s/\s+$//;
-
- if (/^(www|web|home)[a-z0-9-]*(?:\.|$)/i) {
- $_ = "http://$_";
-
- } elsif (/^(ftp|gopher|news|wais|https|http)[a-z0-9-]*(?:\.|$)/i) {
- $_ = lc($1) . "://$_";
-
- } elsif ($^O ne "MacOS" &&
- (m,^/, || # absolute file name
- m,^\.\.?/, || # relative file name
- m,^[a-zA-Z]:[/\\],) # dosish file name
- )
- {
- $_ = "file:$_";
-
- } elsif ($^O eq "MacOS" && m/:/) {
- # potential MacOS file name
- unless (m/^(ftp|gopher|news|wais|http|https|mailto):/) {
- require URI::file;
- my $a = URI::file->new($_)->as_string;
- $_ = ($a =~ m/^file:/) ? $a : "file:$a";
- }
- } elsif (/^\w+([\.\-]\w+)*\@(\w+\.)+\w{2,3}$/) {
- $_ = "mailto:$_";
-
- } elsif (!/^[a-zA-Z][a-zA-Z0-9.+\-]*:/) { # no scheme specified
- if (s/^([-\w]+(?:\.[-\w]+)*)([\/:\?\#]|$)/$2/) {
- my $host = $1;
-
- my $scheme = "http";
- if (/^:(\d+)\b/) {
- # Some more or less well known ports
- if ($1 =~ /^[56789]?443$/) {
- $scheme = "https";
- } elsif ($1 eq "21") {
- $scheme = "ftp";
- }
- }
-
- if ($host !~ /\./ && $host ne "localhost") {
- my @guess;
- if (exists $ENV{URL_GUESS_PATTERN}) {
- @guess = map { s/\bACME\b/$host/; $_ }
- split(' ', $ENV{URL_GUESS_PATTERN});
- } else {
- if (MY_COUNTRY()) {
- my $special = $LOCAL_GUESSING{MY_COUNTRY()};
- if ($special) {
- my @special = @$special;
- push(@guess, map { s/\bACME\b/$host/; $_ }
- @special);
- } else {
- push(@guess, "www.$host." . MY_COUNTRY());
- }
- }
- push(@guess, map "www.$host.$_",
- "com", "org", "net", "edu", "int");
- }
-
-
- my $guess;
- for $guess (@guess) {
- print STDERR "uf_uristr: gethostbyname('$guess.')..."
- if $DEBUG;
- if (gethostbyname("$guess.")) {
- print STDERR "yes\n" if $DEBUG;
- $host = $guess;
- last;
- }
- print STDERR "no\n" if $DEBUG;
- }
- }
- $_ = "$scheme://$host$_";
-
- } else {
- # pure junk, just return it unchanged...
-
- }
- }
- print STDERR "uf_uristr: ==> $_\n" if $DEBUG;
-
- $_;
-}
-
-sub uf_uri ($)
-{
- require URI;
- URI->new(uf_uristr($_[0]));
-}
-
-# legacy
-*uf_urlstr = \*uf_uristr;
-
-sub uf_url ($)
-{
- require URI::URL;
- URI::URL->new(uf_uristr($_[0]));
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/IRI.pm b/Master/tlpkg/tlperl/lib/URI/IRI.pm
deleted file mode 100644
index 8ce51912cc8..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/IRI.pm
+++ /dev/null
@@ -1,45 +0,0 @@
-package URI::IRI;
-
-# Experimental
-
-use strict;
-use warnings;
-use URI ();
-
-use overload '""' => sub { shift->as_string };
-
-sub new {
- my($class, $uri, $scheme) = @_;
- utf8::upgrade($uri);
- return bless {
- uri => URI->new($uri, $scheme),
- }, $class;
-}
-
-sub clone {
- my $self = shift;
- return bless {
- uri => $self->{uri}->clone,
- }, ref($self);
-}
-
-sub as_string {
- my $self = shift;
- return $self->{uri}->as_iri;
-}
-
-our $AUTOLOAD;
-sub AUTOLOAD
-{
- my $method = substr($AUTOLOAD, rindex($AUTOLOAD, '::')+2);
-
- # We create the function here so that it will not need to be
- # autoloaded the next time.
- no strict 'refs';
- *$method = sub { shift->{uri}->$method(@_) };
- goto &$method;
-}
-
-sub DESTROY {} # avoid AUTOLOADing it
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/QueryParam.pm b/Master/tlpkg/tlperl/lib/URI/QueryParam.pm
deleted file mode 100644
index 187cd2c6396..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/QueryParam.pm
+++ /dev/null
@@ -1,194 +0,0 @@
-package URI::QueryParam;
-
-use strict;
-use warnings;
-
-sub URI::_query::query_param {
- my $self = shift;
- my @old = $self->query_form;
-
- if (@_ == 0) {
- # get keys
- my (%seen, $i);
- return grep !($i++ % 2 || $seen{$_}++), @old;
- }
-
- my $key = shift;
- my @i = grep $_ % 2 == 0 && $old[$_] eq $key, 0 .. $#old;
-
- if (@_) {
- my @new = @old;
- my @new_i = @i;
- my @vals = map { ref($_) eq 'ARRAY' ? @$_ : $_ } @_;
-
- while (@new_i > @vals) {
- splice @new, pop @new_i, 2;
- }
- if (@vals > @new_i) {
- my $i = @new_i ? $new_i[-1] + 2 : @new;
- my @splice = splice @vals, @new_i, @vals - @new_i;
-
- splice @new, $i, 0, map { $key => $_ } @splice;
- }
- if (@vals) {
- #print "SET $new_i[0]\n";
- @new[ map $_ + 1, @new_i ] = @vals;
- }
-
- $self->query_form(\@new);
- }
-
- return wantarray ? @old[map $_+1, @i] : @i ? $old[$i[0]+1] : undef;
-}
-
-sub URI::_query::query_param_append {
- my $self = shift;
- my $key = shift;
- my @vals = map { ref $_ eq 'ARRAY' ? @$_ : $_ } @_;
- $self->query_form($self->query_form, $key => \@vals); # XXX
- return;
-}
-
-sub URI::_query::query_param_delete {
- my $self = shift;
- my $key = shift;
- my @old = $self->query_form;
- my @vals;
-
- for (my $i = @old - 2; $i >= 0; $i -= 2) {
- next if $old[$i] ne $key;
- push(@vals, (splice(@old, $i, 2))[1]);
- }
- $self->query_form(\@old) if @vals;
- return wantarray ? reverse @vals : $vals[-1];
-}
-
-sub URI::_query::query_form_hash {
- my $self = shift;
- my @old = $self->query_form;
- if (@_) {
- $self->query_form(@_ == 1 ? %{shift(@_)} : @_);
- }
- my %hash;
- while (my($k, $v) = splice(@old, 0, 2)) {
- if (exists $hash{$k}) {
- for ($hash{$k}) {
- $_ = [$_] unless ref($_) eq "ARRAY";
- push(@$_, $v);
- }
- }
- else {
- $hash{$k} = $v;
- }
- }
- return \%hash;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-URI::QueryParam - Additional query methods for URIs
-
-=head1 SYNOPSIS
-
- use URI;
- use URI::QueryParam;
-
- $u = URI->new("", "http");
- $u->query_param(foo => 1, 2, 3);
- print $u->query; # prints foo=1&foo=2&foo=3
-
- for my $key ($u->query_param) {
- print "$key: ", join(", ", $u->query_param($key)), "\n";
- }
-
-=head1 DESCRIPTION
-
-Loading the C<URI::QueryParam> module adds some extra methods to
-URIs that support query methods. These methods provide an alternative
-interface to the $u->query_form data.
-
-The query_param_* methods have deliberately been made identical to the
-interface of the corresponding C<CGI.pm> methods.
-
-The following additional methods are made available:
-
-=over
-
-=item @keys = $u->query_param
-
-=item @values = $u->query_param( $key )
-
-=item $first_value = $u->query_param( $key )
-
-=item $u->query_param( $key, $value,... )
-
-If $u->query_param is called with no arguments, it returns all the
-distinct parameter keys of the URI. In a scalar context it returns the
-number of distinct keys.
-
-When a $key argument is given, the method returns the parameter values with the
-given key. In a scalar context, only the first parameter value is
-returned.
-
-If additional arguments are given, they are used to update successive
-parameters with the given key. If any of the values provided are
-array references, then the array is dereferenced to get the actual
-values.
-
-=item $u->query_param_append($key, $value,...)
-
-Adds new parameters with the given
-key without touching any old parameters with the same key. It
-can be explained as a more efficient version of:
-
- $u->query_param($key,
- $u->query_param($key),
- $value,...);
-
-One difference is that this expression would return the old values
-of $key, whereas the query_param_append() method does not.
-
-=item @values = $u->query_param_delete($key)
-
-=item $first_value = $u->query_param_delete($key)
-
-Deletes all key/value pairs with the given key.
-The old values are returned. In a scalar context, only the first value
-is returned.
-
-Using the query_param_delete() method is slightly more efficient than
-the equivalent:
-
- $u->query_param($key, []);
-
-=item $hashref = $u->query_form_hash
-
-=item $u->query_form_hash( \%new_form )
-
-Returns a reference to a hash that represents the
-query form's key/value pairs. If a key occurs multiple times, then the hash
-value becomes an array reference.
-
-Note that sequence information is lost. This means that:
-
- $u->query_form_hash($u->query_form_hash);
-
-is not necessarily a no-op, as it may reorder the key/value pairs.
-The values returned by the query_param() method should stay the same
-though.
-
-=back
-
-=head1 SEE ALSO
-
-L<URI>, L<CGI>
-
-=head1 COPYRIGHT
-
-Copyright 2002 Gisle Aas.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/URI/Split.pm b/Master/tlpkg/tlperl/lib/URI/Split.pm
deleted file mode 100644
index 70ff17ae620..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/Split.pm
+++ /dev/null
@@ -1,95 +0,0 @@
-package URI::Split;
-
-use strict;
-use warnings;
-
-use Exporter 'import';
-our @EXPORT_OK = qw(uri_split uri_join);
-
-use URI::Escape ();
-
-sub uri_split {
- return $_[0] =~ m,(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?,;
-}
-
-sub uri_join {
- my($scheme, $auth, $path, $query, $frag) = @_;
- my $uri = defined($scheme) ? "$scheme:" : "";
- $path = "" unless defined $path;
- if (defined $auth) {
- $auth =~ s,([/?\#]), URI::Escape::escape_char($1),eg;
- $uri .= "//$auth";
- $path = "/$path" if length($path) && $path !~ m,^/,;
- }
- elsif ($path =~ m,^//,) {
- $uri .= "//"; # XXX force empty auth
- }
- unless (length $uri) {
- $path =~ s,(:), URI::Escape::escape_char($1),e while $path =~ m,^[^:/?\#]+:,;
- }
- $path =~ s,([?\#]), URI::Escape::escape_char($1),eg;
- $uri .= $path;
- if (defined $query) {
- $query =~ s,(\#), URI::Escape::escape_char($1),eg;
- $uri .= "?$query";
- }
- $uri .= "#$frag" if defined $frag;
- $uri;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-URI::Split - Parse and compose URI strings
-
-=head1 SYNOPSIS
-
- use URI::Split qw(uri_split uri_join);
- ($scheme, $auth, $path, $query, $frag) = uri_split($uri);
- $uri = uri_join($scheme, $auth, $path, $query, $frag);
-
-=head1 DESCRIPTION
-
-Provides functions to parse and compose URI
-strings. The following functions are provided:
-
-=over
-
-=item ($scheme, $auth, $path, $query, $frag) = uri_split($uri)
-
-Breaks up a URI string into its component
-parts. An C<undef> value is returned for those parts that are not
-present. The $path part is always present (but can be the empty
-string) and is thus never returned as C<undef>.
-
-No sensible value is returned if this function is called in a scalar
-context.
-
-=item $uri = uri_join($scheme, $auth, $path, $query, $frag)
-
-Puts together a URI string from its parts.
-Missing parts are signaled by passing C<undef> for the corresponding
-argument.
-
-Minimal escaping is applied to parts that contain reserved chars
-that would confuse a parser. For instance, any occurrence of '?' or '#'
-in $path is always escaped, as it would otherwise be parsed back
-as a query or fragment.
-
-=back
-
-=head1 SEE ALSO
-
-L<URI>, L<URI::Escape>
-
-=head1 COPYRIGHT
-
-Copyright 2003, Gisle Aas
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/URI/URL.pm b/Master/tlpkg/tlperl/lib/URI/URL.pm
deleted file mode 100644
index 867ac6a9d5d..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/URL.pm
+++ /dev/null
@@ -1,303 +0,0 @@
-package URI::URL;
-
-use strict;
-use warnings;
-
-use parent 'URI::WithBase';
-
-our $VERSION = "5.04";
-
-# Provide as much as possible of the old URI::URL interface for backwards
-# compatibility...
-
-use Exporter 'import';
-our @EXPORT = qw(url);
-
-# Easy to use constructor
-sub url ($;$) { URI::URL->new(@_); }
-
-use URI::Escape qw(uri_unescape);
-
-sub new
-{
- my $class = shift;
- my $self = $class->SUPER::new(@_);
- $self->[0] = $self->[0]->canonical;
- $self;
-}
-
-sub newlocal
-{
- my $class = shift;
- require URI::file;
- bless [URI::file->new_abs(shift)], $class;
-}
-
-{package URI::_foreign;
- sub _init # hope it is not defined
- {
- my $class = shift;
- die "Unknown URI::URL scheme $_[1]:" if $URI::URL::STRICT;
- $class->SUPER::_init(@_);
- }
-}
-
-sub strict
-{
- my $old = $URI::URL::STRICT;
- $URI::URL::STRICT = shift if @_;
- $old;
-}
-
-sub print_on
-{
- my $self = shift;
- require Data::Dumper;
- print STDERR Data::Dumper::Dumper($self);
-}
-
-sub _try
-{
- my $self = shift;
- my $method = shift;
- scalar(eval { $self->$method(@_) });
-}
-
-sub crack
-{
- # should be overridden by subclasses
- my $self = shift;
- (scalar($self->scheme),
- $self->_try("user"),
- $self->_try("password"),
- $self->_try("host"),
- $self->_try("port"),
- $self->_try("path"),
- $self->_try("params"),
- $self->_try("query"),
- scalar($self->fragment),
- )
-}
-
-sub full_path
-{
- my $self = shift;
- my $path = $self->path_query;
- $path = "/" unless length $path;
- $path;
-}
-
-sub netloc
-{
- shift->authority(@_);
-}
-
-sub epath
-{
- my $path = shift->SUPER::path(@_);
- $path =~ s/;.*//;
- $path;
-}
-
-sub eparams
-{
- my $self = shift;
- my @p = $self->path_segments;
- return undef unless ref($p[-1]);
- @p = @{$p[-1]};
- shift @p;
- join(";", @p);
-}
-
-sub params { shift->eparams(@_); }
-
-sub path {
- my $self = shift;
- my $old = $self->epath(@_);
- return unless defined wantarray;
- return '/' if !defined($old) || !length($old);
- Carp::croak("Path components contain '/' (you must call epath)")
- if $old =~ /%2[fF]/ and !@_;
- $old = "/$old" if $old !~ m|^/| && defined $self->netloc;
- return uri_unescape($old);
-}
-
-sub path_components {
- shift->path_segments(@_);
-}
-
-sub query {
- my $self = shift;
- my $old = $self->equery(@_);
- if (defined(wantarray) && defined($old)) {
- if ($old =~ /%(?:26|2[bB]|3[dD])/) { # contains escaped '=' '&' or '+'
- my $mess;
- for ($old) {
- $mess = "Query contains both '+' and '%2B'"
- if /\+/ && /%2[bB]/;
- $mess = "Form query contains escaped '=' or '&'"
- if /=/ && /%(?:3[dD]|26)/;
- }
- if ($mess) {
- Carp::croak("$mess (you must call equery)");
- }
- }
- # Now it should be safe to unescape the string without losing
- # information
- return uri_unescape($old);
- }
- undef;
-
-}
-
-sub abs
-{
- my $self = shift;
- my $base = shift;
- my $allow_scheme = shift;
- $allow_scheme = $URI::URL::ABS_ALLOW_RELATIVE_SCHEME
- unless defined $allow_scheme;
- local $URI::ABS_ALLOW_RELATIVE_SCHEME = $allow_scheme;
- local $URI::ABS_REMOTE_LEADING_DOTS = $URI::URL::ABS_REMOTE_LEADING_DOTS;
- $self->SUPER::abs($base);
-}
-
-sub frag { shift->fragment(@_); }
-sub keywords { shift->query_keywords(@_); }
-
-# file:
-sub local_path { shift->file; }
-sub unix_path { shift->file("unix"); }
-sub dos_path { shift->file("dos"); }
-sub mac_path { shift->file("mac"); }
-sub vms_path { shift->file("vms"); }
-
-# mailto:
-sub address { shift->to(@_); }
-sub encoded822addr { shift->to(@_); }
-sub URI::mailto::authority { shift->to(@_); } # make 'netloc' method work
-
-# news:
-sub groupart { shift->_group(@_); }
-sub article { shift->message(@_); }
-
-1;
-
-__END__
-
-=head1 NAME
-
-URI::URL - Uniform Resource Locators
-
-=head1 SYNOPSIS
-
- $u1 = URI::URL->new($str, $base);
- $u2 = $u1->abs;
-
-=head1 DESCRIPTION
-
-This module is provided for backwards compatibility with modules that
-depend on the interface provided by the C<URI::URL> class that used to
-be distributed with the libwww-perl library.
-
-The following differences exist compared to the C<URI> class interface:
-
-=over 3
-
-=item *
-
-The URI::URL module exports the url() function as an alternate
-constructor interface.
-
-=item *
-
-The constructor takes an optional $base argument. The C<URI::URL>
-class is a subclass of C<URI::WithBase>.
-
-=item *
-
-The URI::URL->newlocal class method is the same as URI::file->new_abs.
-
-=item *
-
-URI::URL::strict(1)
-
-=item *
-
-$url->print_on method
-
-=item *
-
-$url->crack method
-
-=item *
-
-$url->full_path: same as ($uri->abs_path || "/")
-
-=item *
-
-$url->netloc: same as $uri->authority
-
-=item *
-
-$url->epath, $url->equery: same as $uri->path, $uri->query
-
-=item *
-
-$url->path and $url->query pass unescaped strings.
-
-=item *
-
-$url->path_components: same as $uri->path_segments (if you don't
-consider path segment parameters)
-
-=item *
-
-$url->params and $url->eparams methods
-
-=item *
-
-$url->base method. See L<URI::WithBase>.
-
-=item *
-
-$url->abs and $url->rel have an optional $base argument. See
-L<URI::WithBase>.
-
-=item *
-
-$url->frag: same as $uri->fragment
-
-=item *
-
-$url->keywords: same as $uri->query_keywords
-
-=item *
-
-$url->localpath and friends map to $uri->file.
-
-=item *
-
-$url->address and $url->encoded822addr: same as $uri->to for mailto URI
-
-=item *
-
-$url->groupart method for news URI
-
-=item *
-
-$url->article: same as $uri->message
-
-=back
-
-
-
-=head1 SEE ALSO
-
-L<URI>, L<URI::WithBase>
-
-=head1 COPYRIGHT
-
-Copyright 1998-2000 Gisle Aas.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/URI/WithBase.pm b/Master/tlpkg/tlperl/lib/URI/WithBase.pm
deleted file mode 100644
index 943b7b533a7..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/WithBase.pm
+++ /dev/null
@@ -1,174 +0,0 @@
-package URI::WithBase;
-
-use strict;
-use warnings;
-
-use URI;
-use Scalar::Util 'blessed';
-
-our $VERSION = "2.20";
-
-use overload '""' => "as_string", fallback => 1;
-
-sub as_string; # help overload find it
-
-sub new
-{
- my($class, $uri, $base) = @_;
- my $ibase = $base;
- if ($base && blessed($base) && $base->isa(__PACKAGE__)) {
- $base = $base->abs;
- $ibase = $base->[0];
- }
- bless [URI->new($uri, $ibase), $base], $class;
-}
-
-sub new_abs
-{
- my $class = shift;
- my $self = $class->new(@_);
- $self->abs;
-}
-
-sub _init
-{
- my $class = shift;
- my($str, $scheme) = @_;
- bless [URI->new($str, $scheme), undef], $class;
-}
-
-sub eq
-{
- my($self, $other) = @_;
- $other = $other->[0] if blessed($other) and $other->isa(__PACKAGE__);
- $self->[0]->eq($other);
-}
-
-our $AUTOLOAD;
-sub AUTOLOAD
-{
- my $self = shift;
- my $method = substr($AUTOLOAD, rindex($AUTOLOAD, '::')+2);
- return if $method eq "DESTROY";
- $self->[0]->$method(@_);
-}
-
-sub can { # override UNIVERSAL::can
- my $self = shift;
- $self->SUPER::can(@_) || (
- ref($self)
- ? $self->[0]->can(@_)
- : undef
- )
-}
-
-sub base {
- my $self = shift;
- my $base = $self->[1];
-
- if (@_) { # set
- my $new_base = shift;
- # ensure absoluteness
- $new_base = $new_base->abs if ref($new_base) && $new_base->isa(__PACKAGE__);
- $self->[1] = $new_base;
- }
- return unless defined wantarray;
-
- # The base attribute supports 'lazy' conversion from URL strings
- # to URL objects. Strings may be stored but when a string is
- # fetched it will automatically be converted to a URL object.
- # The main benefit is to make it much cheaper to say:
- # URI::WithBase->new($random_url_string, 'http:')
- if (defined($base) && !ref($base)) {
- $base = ref($self)->new($base);
- $self->[1] = $base unless @_;
- }
- $base;
-}
-
-sub clone
-{
- my $self = shift;
- my $base = $self->[1];
- $base = $base->clone if ref($base);
- bless [$self->[0]->clone, $base], ref($self);
-}
-
-sub abs
-{
- my $self = shift;
- my $base = shift || $self->base || return $self->clone;
- $base = $base->as_string if ref($base);
- bless [$self->[0]->abs($base, @_), $base], ref($self);
-}
-
-sub rel
-{
- my $self = shift;
- my $base = shift || $self->base || return $self->clone;
- $base = $base->as_string if ref($base);
- bless [$self->[0]->rel($base, @_), $base], ref($self);
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-URI::WithBase - URIs which remember their base
-
-=head1 SYNOPSIS
-
- $u1 = URI::WithBase->new($str, $base);
- $u2 = $u1->abs;
-
- $base = $u1->base;
- $u1->base( $new_base )
-
-=head1 DESCRIPTION
-
-This module provides the C<URI::WithBase> class. Objects of this class
-are like C<URI> objects, but can keep their base too. The base
-represents the context where this URI was found and can be used to
-absolutize or relativize the URI. All the methods described in L<URI>
-are supported for C<URI::WithBase> objects.
-
-The methods provided in addition to or modified from those of C<URI> are:
-
-=over 4
-
-=item $uri = URI::WithBase->new($str, [$base])
-
-The constructor takes an optional base URI as the second argument.
-If provided, this argument initializes the base attribute.
-
-=item $uri->base( [$new_base] )
-
-Can be used to get or set the value of the base attribute.
-The return value, which is the old value, is a URI object or C<undef>.
-
-=item $uri->abs( [$base_uri] )
-
-The $base_uri argument is now made optional as the object carries its
-base with it. A new object is returned even if $uri is already
-absolute (while plain URI objects simply return themselves in
-that case).
-
-=item $uri->rel( [$base_uri] )
-
-The $base_uri argument is now made optional as the object carries its
-base with it. A new object is always returned.
-
-=back
-
-
-=head1 SEE ALSO
-
-L<URI>
-
-=head1 COPYRIGHT
-
-Copyright 1998-2002 Gisle Aas.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/URI/_foreign.pm b/Master/tlpkg/tlperl/lib/URI/_foreign.pm
deleted file mode 100644
index 0132efeb8f5..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/_foreign.pm
+++ /dev/null
@@ -1,8 +0,0 @@
-package URI::_foreign;
-
-use strict;
-use warnings;
-
-use parent 'URI::_generic';
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/_generic.pm b/Master/tlpkg/tlperl/lib/URI/_generic.pm
deleted file mode 100644
index ce1e03d882d..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/_generic.pm
+++ /dev/null
@@ -1,254 +0,0 @@
-package URI::_generic;
-
-use strict;
-use warnings;
-
-use parent qw(URI URI::_query);
-
-use URI::Escape qw(uri_unescape);
-use Carp ();
-
-my $ACHAR = $URI::uric; $ACHAR =~ s,\\[/?],,g;
-my $PCHAR = $URI::uric; $PCHAR =~ s,\\[?],,g;
-
-sub _no_scheme_ok { 1 }
-
-sub authority
-{
- my $self = shift;
- $$self =~ m,^((?:$URI::scheme_re:)?)(?://([^/?\#]*))?(.*)$,os or die;
-
- if (@_) {
- my $auth = shift;
- $$self = $1;
- my $rest = $3;
- if (defined $auth) {
- $auth =~ s/([^$ACHAR])/ URI::Escape::escape_char($1)/ego;
- utf8::downgrade($auth);
- $$self .= "//$auth";
- }
- _check_path($rest, $$self);
- $$self .= $rest;
- }
- $2;
-}
-
-sub path
-{
- my $self = shift;
- $$self =~ m,^((?:[^:/?\#]+:)?(?://[^/?\#]*)?)([^?\#]*)(.*)$,s or die;
-
- if (@_) {
- $$self = $1;
- my $rest = $3;
- my $new_path = shift;
- $new_path = "" unless defined $new_path;
- $new_path =~ s/([^$PCHAR])/ URI::Escape::escape_char($1)/ego;
- utf8::downgrade($new_path);
- _check_path($new_path, $$self);
- $$self .= $new_path . $rest;
- }
- $2;
-}
-
-sub path_query
-{
- my $self = shift;
- $$self =~ m,^((?:[^:/?\#]+:)?(?://[^/?\#]*)?)([^\#]*)(.*)$,s or die;
-
- if (@_) {
- $$self = $1;
- my $rest = $3;
- my $new_path = shift;
- $new_path = "" unless defined $new_path;
- $new_path =~ s/([^$URI::uric])/ URI::Escape::escape_char($1)/ego;
- utf8::downgrade($new_path);
- _check_path($new_path, $$self);
- $$self .= $new_path . $rest;
- }
- $2;
-}
-
-sub _check_path
-{
- my($path, $pre) = @_;
- my $prefix;
- if ($pre =~ m,/,) { # authority present
- $prefix = "/" if length($path) && $path !~ m,^[/?\#],;
- }
- else {
- if ($path =~ m,^//,) {
- Carp::carp("Path starting with double slash is confusing")
- if $^W;
- }
- elsif (!length($pre) && $path =~ m,^[^:/?\#]+:,) {
- Carp::carp("Path might look like scheme, './' prepended")
- if $^W;
- $prefix = "./";
- }
- }
- substr($_[0], 0, 0) = $prefix if defined $prefix;
-}
-
-sub path_segments
-{
- my $self = shift;
- my $path = $self->path;
- if (@_) {
- my @arg = @_; # make a copy
- for (@arg) {
- if (ref($_)) {
- my @seg = @$_;
- $seg[0] =~ s/%/%25/g;
- for (@seg) { s/;/%3B/g; }
- $_ = join(";", @seg);
- }
- else {
- s/%/%25/g; s/;/%3B/g;
- }
- s,/,%2F,g;
- }
- $self->path(join("/", @arg));
- }
- return $path unless wantarray;
- map {/;/ ? $self->_split_segment($_)
- : uri_unescape($_) }
- split('/', $path, -1);
-}
-
-
-sub _split_segment
-{
- my $self = shift;
- require URI::_segment;
- URI::_segment->new(@_);
-}
-
-
-sub abs
-{
- my $self = shift;
- my $base = shift || Carp::croak("Missing base argument");
-
- if (my $scheme = $self->scheme) {
- return $self unless $URI::ABS_ALLOW_RELATIVE_SCHEME;
- $base = URI->new($base) unless ref $base;
- return $self unless $scheme eq $base->scheme;
- }
-
- $base = URI->new($base) unless ref $base;
- my $abs = $self->clone;
- $abs->scheme($base->scheme);
- return $abs if $$self =~ m,^(?:$URI::scheme_re:)?//,o;
- $abs->authority($base->authority);
-
- my $path = $self->path;
- return $abs if $path =~ m,^/,;
-
- if (!length($path)) {
- my $abs = $base->clone;
- my $query = $self->query;
- $abs->query($query) if defined $query;
- my $fragment = $self->fragment;
- $abs->fragment($fragment) if defined $fragment;
- return $abs;
- }
-
- my $p = $base->path;
- $p =~ s,[^/]+$,,;
- $p .= $path;
- my @p = split('/', $p, -1);
- shift(@p) if @p && !length($p[0]);
- my $i = 1;
- while ($i < @p) {
- #print "$i ", join("/", @p), " ($p[$i])\n";
- if ($p[$i-1] eq ".") {
- splice(@p, $i-1, 1);
- $i-- if $i > 1;
- }
- elsif ($p[$i] eq ".." && $p[$i-1] ne "..") {
- splice(@p, $i-1, 2);
- if ($i > 1) {
- $i--;
- push(@p, "") if $i == @p;
- }
- }
- else {
- $i++;
- }
- }
- $p[-1] = "" if @p && $p[-1] eq "."; # trailing "/."
- if ($URI::ABS_REMOTE_LEADING_DOTS) {
- shift @p while @p && $p[0] =~ /^\.\.?$/;
- }
- $abs->path("/" . join("/", @p));
- $abs;
-}
-
-# The opposite of $url->abs. Return a URI which is as relative as possible
-sub rel {
- my $self = shift;
- my $base = shift || Carp::croak("Missing base argument");
- my $rel = $self->clone;
- $base = URI->new($base) unless ref $base;
-
- #my($scheme, $auth, $path) = @{$rel}{qw(scheme authority path)};
- my $scheme = $rel->scheme;
- my $auth = $rel->canonical->authority;
- my $path = $rel->path;
-
- if (!defined($scheme) && !defined($auth)) {
- # it is already relative
- return $rel;
- }
-
- #my($bscheme, $bauth, $bpath) = @{$base}{qw(scheme authority path)};
- my $bscheme = $base->scheme;
- my $bauth = $base->canonical->authority;
- my $bpath = $base->path;
-
- for ($bscheme, $bauth, $auth) {
- $_ = '' unless defined
- }
-
- unless ($scheme eq $bscheme && $auth eq $bauth) {
- # different location, can't make it relative
- return $rel;
- }
-
- for ($path, $bpath) { $_ = "/$_" unless m,^/,; }
-
- # Make it relative by eliminating scheme and authority
- $rel->scheme(undef);
- $rel->authority(undef);
-
- # This loop is based on code from Nicolai Langfeldt <janl@ifi.uio.no>.
- # First we calculate common initial path components length ($li).
- my $li = 1;
- while (1) {
- my $i = index($path, '/', $li);
- last if $i < 0 ||
- $i != index($bpath, '/', $li) ||
- substr($path,$li,$i-$li) ne substr($bpath,$li,$i-$li);
- $li=$i+1;
- }
- # then we nuke it from both paths
- substr($path, 0,$li) = '';
- substr($bpath,0,$li) = '';
-
- if ($path eq $bpath &&
- defined($rel->fragment) &&
- !defined($rel->query)) {
- $rel->path("");
- }
- else {
- # Add one "../" for each path component left in the base path
- $path = ('../' x $bpath =~ tr|/|/|) . $path;
- $path = "./" if $path eq "";
- $rel->path($path);
- }
-
- $rel;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/_idna.pm b/Master/tlpkg/tlperl/lib/URI/_idna.pm
deleted file mode 100644
index be0cccf16b3..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/_idna.pm
+++ /dev/null
@@ -1,89 +0,0 @@
-package URI::_idna;
-
-# This module implements the RFCs 3490 (IDNA) and 3491 (Nameprep)
-# based on Python-2.6.4/Lib/encodings/idna.py
-
-use strict;
-use warnings;
-
-use URI::_punycode qw(encode_punycode decode_punycode);
-use Carp qw(croak);
-
-BEGIN {
- *URI::_idna::_ENV_::JOIN_LEAKS_UTF8_FLAGS = $] < 5.008_003
- ? sub () { 1 }
- : sub () { 0 }
- ;
-}
-
-my $ASCII = qr/^[\x00-\x7F]*\z/;
-
-sub encode {
- my $idomain = shift;
- my @labels = split(/\./, $idomain, -1);
- my @last_empty;
- push(@last_empty, pop @labels) if @labels > 1 && $labels[-1] eq "";
- for (@labels) {
- $_ = ToASCII($_);
- }
-
- return eval 'join(".", @labels, @last_empty)' if URI::_idna::_ENV_::JOIN_LEAKS_UTF8_FLAGS;
- return join(".", @labels, @last_empty);
-}
-
-sub decode {
- my $domain = shift;
- return join(".", map ToUnicode($_), split(/\./, $domain, -1))
-}
-
-sub nameprep { # XXX real implementation missing
- my $label = shift;
- $label = lc($label);
- return $label;
-}
-
-sub check_size {
- my $label = shift;
- croak "Label empty" if $label eq "";
- croak "Label too long" if length($label) > 63;
- return $label;
-}
-
-sub ToASCII {
- my $label = shift;
- return check_size($label) if $label =~ $ASCII;
-
- # Step 2: nameprep
- $label = nameprep($label);
- # Step 3: UseSTD3ASCIIRules is false
- # Step 4: try ASCII again
- return check_size($label) if $label =~ $ASCII;
-
- # Step 5: Check ACE prefix
- if ($label =~ /^xn--/) {
- croak "Label starts with ACE prefix";
- }
-
- # Step 6: Encode with PUNYCODE
- $label = encode_punycode($label);
-
- # Step 7: Prepend ACE prefix
- $label = "xn--$label";
-
- # Step 8: Check size
- return check_size($label);
-}
-
-sub ToUnicode {
- my $label = shift;
- $label = nameprep($label) unless $label =~ $ASCII;
- return $label unless $label =~ /^xn--/;
- my $result = decode_punycode(substr($label, 4));
- my $label2 = ToASCII($result);
- if (lc($label) ne $label2) {
- croak "IDNA does not round-trip: '\L$label\E' vs '$label2'";
- }
- return $result;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/_ldap.pm b/Master/tlpkg/tlperl/lib/URI/_ldap.pm
deleted file mode 100644
index d273f32d6f3..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/_ldap.pm
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright (c) 1998 Graham Barr <gbarr@pobox.com>. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-package URI::_ldap;
-
-use strict;
-use warnings;
-
-our $VERSION = "1.67";
-
-use URI::Escape qw(uri_unescape);
-
-sub _ldap_elem {
- my $self = shift;
- my $elem = shift;
- my $query = $self->query;
- my @bits = (split(/\?/,defined($query) ? $query : ""),("")x4);
- my $old = $bits[$elem];
-
- if (@_) {
- my $new = shift;
- $new =~ s/\?/%3F/g;
- $bits[$elem] = $new;
- $query = join("?",@bits);
- $query =~ s/\?+$//;
- $query = undef unless length($query);
- $self->query($query);
- }
-
- $old;
-}
-
-sub dn {
- my $old = shift->path(@_);
- $old =~ s:^/::;
- uri_unescape($old);
-}
-
-sub attributes {
- my $self = shift;
- my $old = _ldap_elem($self,0, @_ ? join(",", map { my $tmp = $_; $tmp =~ s/,/%2C/g; $tmp } @_) : ());
- return $old unless wantarray;
- map { uri_unescape($_) } split(/,/,$old);
-}
-
-sub _scope {
- my $self = shift;
- my $old = _ldap_elem($self,1, @_);
- return undef unless defined wantarray && defined $old;
- uri_unescape($old);
-}
-
-sub scope {
- my $old = &_scope;
- $old = "base" unless length $old;
- $old;
-}
-
-sub _filter {
- my $self = shift;
- my $old = _ldap_elem($self,2, @_);
- return undef unless defined wantarray && defined $old;
- uri_unescape($old); # || "(objectClass=*)";
-}
-
-sub filter {
- my $old = &_filter;
- $old = "(objectClass=*)" unless length $old;
- $old;
-}
-
-sub extensions {
- my $self = shift;
- my @ext;
- while (@_) {
- my $key = shift;
- my $value = shift;
- push(@ext, join("=", map { $_="" unless defined; s/,/%2C/g; $_ } $key, $value));
- }
- @ext = join(",", @ext) if @ext;
- my $old = _ldap_elem($self,3, @ext);
- return $old unless wantarray;
- map { uri_unescape($_) } map { /^([^=]+)=(.*)$/ } split(/,/,$old);
-}
-
-sub canonical
-{
- my $self = shift;
- my $other = $self->_nonldap_canonical;
-
- # The stuff below is not as efficient as one might hope...
-
- $other = $other->clone if $other == $self;
-
- $other->dn(_normalize_dn($other->dn));
-
- # Should really know about mixed case "postalAddress", etc...
- $other->attributes(map lc, $other->attributes);
-
- # Lowercase scope, remove default
- my $old_scope = $other->scope;
- my $new_scope = lc($old_scope);
- $new_scope = "" if $new_scope eq "base";
- $other->scope($new_scope) if $new_scope ne $old_scope;
-
- # Remove filter if default
- my $old_filter = $other->filter;
- $other->filter("") if lc($old_filter) eq "(objectclass=*)" ||
- lc($old_filter) eq "objectclass=*";
-
- # Lowercase extensions types and deal with known extension values
- my @ext = $other->extensions;
- for (my $i = 0; $i < @ext; $i += 2) {
- my $etype = $ext[$i] = lc($ext[$i]);
- if ($etype =~ /^!?bindname$/) {
- $ext[$i+1] = _normalize_dn($ext[$i+1]);
- }
- }
- $other->extensions(@ext) if @ext;
-
- $other;
-}
-
-sub _normalize_dn # RFC 2253
-{
- my $dn = shift;
-
- return $dn;
- # The code below will fail if the "+" or "," is embedding in a quoted
- # string or simply escaped...
-
- my @dn = split(/([+,])/, $dn);
- for (@dn) {
- s/^([a-zA-Z]+=)/lc($1)/e;
- }
- join("", @dn);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/_login.pm b/Master/tlpkg/tlperl/lib/URI/_login.pm
deleted file mode 100644
index 83855a835ac..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/_login.pm
+++ /dev/null
@@ -1,11 +0,0 @@
-package URI::_login;
-
-use strict;
-use warnings;
-
-use parent qw(URI::_server URI::_userpass);
-
-# Generic terminal logins. This is used as a base class for 'telnet',
-# 'tn3270', and 'rlogin' URL schemes.
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/_punycode.pm b/Master/tlpkg/tlperl/lib/URI/_punycode.pm
deleted file mode 100644
index bd69fe7377a..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/_punycode.pm
+++ /dev/null
@@ -1,203 +0,0 @@
-package URI::_punycode;
-
-use strict;
-use warnings;
-
-our $VERSION = "1.67";
-
-use Exporter 'import';
-our @EXPORT = qw(encode_punycode decode_punycode);
-
-use integer;
-
-our $DEBUG = 0;
-
-use constant BASE => 36;
-use constant TMIN => 1;
-use constant TMAX => 26;
-use constant SKEW => 38;
-use constant DAMP => 700;
-use constant INITIAL_BIAS => 72;
-use constant INITIAL_N => 128;
-
-my $Delimiter = chr 0x2D;
-my $BasicRE = qr/[\x00-\x7f]/;
-
-sub _croak { require Carp; Carp::croak(@_); }
-
-sub digit_value {
- my $code = shift;
- return ord($code) - ord("A") if $code =~ /[A-Z]/;
- return ord($code) - ord("a") if $code =~ /[a-z]/;
- return ord($code) - ord("0") + 26 if $code =~ /[0-9]/;
- return;
-}
-
-sub code_point {
- my $digit = shift;
- return $digit + ord('a') if 0 <= $digit && $digit <= 25;
- return $digit + ord('0') - 26 if 26 <= $digit && $digit <= 36;
- die 'NOT COME HERE';
-}
-
-sub adapt {
- my($delta, $numpoints, $firsttime) = @_;
- $delta = $firsttime ? $delta / DAMP : $delta / 2;
- $delta += $delta / $numpoints;
- my $k = 0;
- while ($delta > ((BASE - TMIN) * TMAX) / 2) {
- $delta /= BASE - TMIN;
- $k += BASE;
- }
- return $k + (((BASE - TMIN + 1) * $delta) / ($delta + SKEW));
-}
-
-sub decode_punycode {
- my $code = shift;
-
- my $n = INITIAL_N;
- my $i = 0;
- my $bias = INITIAL_BIAS;
- my @output;
-
- if ($code =~ s/(.*)$Delimiter//o) {
- push @output, map ord, split //, $1;
- return _croak('non-basic code point') unless $1 =~ /^$BasicRE*$/o;
- }
-
- while ($code) {
- my $oldi = $i;
- my $w = 1;
- LOOP:
- for (my $k = BASE; 1; $k += BASE) {
- my $cp = substr($code, 0, 1, '');
- my $digit = digit_value($cp);
- defined $digit or return _croak("invalid punycode input");
- $i += $digit * $w;
- my $t = ($k <= $bias) ? TMIN
- : ($k >= $bias + TMAX) ? TMAX : $k - $bias;
- last LOOP if $digit < $t;
- $w *= (BASE - $t);
- }
- $bias = adapt($i - $oldi, @output + 1, $oldi == 0);
- warn "bias becomes $bias" if $DEBUG;
- $n += $i / (@output + 1);
- $i = $i % (@output + 1);
- splice(@output, $i, 0, $n);
- warn join " ", map sprintf('%04x', $_), @output if $DEBUG;
- $i++;
- }
- return join '', map chr, @output;
-}
-
-sub encode_punycode {
- my $input = shift;
- my @input = split //, $input;
-
- my $n = INITIAL_N;
- my $delta = 0;
- my $bias = INITIAL_BIAS;
-
- my @output;
- my @basic = grep /$BasicRE/, @input;
- my $h = my $b = @basic;
- push @output, @basic;
- push @output, $Delimiter if $b && $h < @input;
- warn "basic codepoints: (@output)" if $DEBUG;
-
- while ($h < @input) {
- my $m = min(grep { $_ >= $n } map ord, @input);
- warn sprintf "next code point to insert is %04x", $m if $DEBUG;
- $delta += ($m - $n) * ($h + 1);
- $n = $m;
- for my $i (@input) {
- my $c = ord($i);
- $delta++ if $c < $n;
- if ($c == $n) {
- my $q = $delta;
- LOOP:
- for (my $k = BASE; 1; $k += BASE) {
- my $t = ($k <= $bias) ? TMIN :
- ($k >= $bias + TMAX) ? TMAX : $k - $bias;
- last LOOP if $q < $t;
- my $cp = code_point($t + (($q - $t) % (BASE - $t)));
- push @output, chr($cp);
- $q = ($q - $t) / (BASE - $t);
- }
- push @output, chr(code_point($q));
- $bias = adapt($delta, $h + 1, $h == $b);
- warn "bias becomes $bias" if $DEBUG;
- $delta = 0;
- $h++;
- }
- }
- $delta++;
- $n++;
- }
- return join '', @output;
-}
-
-sub min {
- my $min = shift;
- for (@_) { $min = $_ if $_ <= $min }
- return $min;
-}
-
-1;
-__END__
-
-=head1 NAME
-
-URI::_punycode - encodes Unicode string in Punycode
-
-=head1 SYNOPSIS
-
- use URI::_punycode;
- $punycode = encode_punycode($unicode);
- $unicode = decode_punycode($punycode);
-
-=head1 DESCRIPTION
-
-URI::_punycode is a module to encode / decode Unicode strings into
-Punycode, an efficient encoding of Unicode for use with IDNA.
-
-This module requires Perl 5.6.0 or over to handle UTF8 flagged Unicode
-strings.
-
-=head1 FUNCTIONS
-
-This module exports following functions by default.
-
-=over 4
-
-=item encode_punycode
-
- $punycode = encode_punycode($unicode);
-
-takes Unicode string (UTF8-flagged variable) and returns Punycode
-encoding for it.
-
-=item decode_punycode
-
- $unicode = decode_punycode($punycode)
-
-takes Punycode encoding and returns original Unicode string.
-
-=back
-
-These functions throw exceptions on failure. You can catch 'em via
-C<eval>.
-
-=head1 AUTHOR
-
-Tatsuhiko Miyagawa E<lt>miyagawa@bulknews.netE<gt> is the author of
-IDNA::Punycode v0.02 which was the basis for this module.
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-L<IDNA::Punycode>, RFC 3492
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/URI/_query.pm b/Master/tlpkg/tlperl/lib/URI/_query.pm
deleted file mode 100644
index 93288ca770c..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/_query.pm
+++ /dev/null
@@ -1,95 +0,0 @@
-package URI::_query;
-
-use strict;
-use warnings;
-
-use URI ();
-use URI::Escape qw(uri_unescape);
-
-sub query
-{
- my $self = shift;
- $$self =~ m,^([^?\#]*)(?:\?([^\#]*))?(.*)$,s or die;
-
- if (@_) {
- my $q = shift;
- $$self = $1;
- if (defined $q) {
- $q =~ s/([^$URI::uric])/ URI::Escape::escape_char($1)/ego;
- utf8::downgrade($q);
- $$self .= "?$q";
- }
- $$self .= $3;
- }
- $2;
-}
-
-# Handle ...?foo=bar&bar=foo type of query
-sub query_form {
- my $self = shift;
- my $old = $self->query;
- if (@_) {
- # Try to set query string
- my $delim;
- my $r = $_[0];
- if (ref($r) eq "ARRAY") {
- $delim = $_[1];
- @_ = @$r;
- }
- elsif (ref($r) eq "HASH") {
- $delim = $_[1];
- @_ = %$r;
- }
- $delim = pop if @_ % 2;
-
- my @query;
- while (my($key,$vals) = splice(@_, 0, 2)) {
- $key = '' unless defined $key;
- $key =~ s/([;\/?:@&=+,\$\[\]%])/ URI::Escape::escape_char($1)/eg;
- $key =~ s/ /+/g;
- $vals = [ref($vals) eq "ARRAY" ? @$vals : $vals];
- for my $val (@$vals) {
- $val = '' unless defined $val;
- $val =~ s/([;\/?:@&=+,\$\[\]%])/ URI::Escape::escape_char($1)/eg;
- $val =~ s/ /+/g;
- push(@query, "$key=$val");
- }
- }
- if (@query) {
- unless ($delim) {
- $delim = $1 if $old && $old =~ /([&;])/;
- $delim ||= $URI::DEFAULT_QUERY_FORM_DELIMITER || "&";
- }
- $self->query(join($delim, @query));
- }
- else {
- $self->query(undef);
- }
- }
- return if !defined($old) || !length($old) || !defined(wantarray);
- return unless $old =~ /=/; # not a form
- map { s/\+/ /g; uri_unescape($_) }
- map { /=/ ? split(/=/, $_, 2) : ($_ => '')} split(/[&;]/, $old);
-}
-
-# Handle ...?dog+bones type of query
-sub query_keywords
-{
- my $self = shift;
- my $old = $self->query;
- if (@_) {
- # Try to set query string
- my @copy = @_;
- @copy = @{$copy[0]} if @copy == 1 && ref($copy[0]) eq "ARRAY";
- for (@copy) { s/([;\/?:@&=+,\$\[\]%])/ URI::Escape::escape_char($1)/eg; }
- $self->query(@copy ? join('+', @copy) : undef);
- }
- return if !defined($old) || !defined(wantarray);
- return if $old =~ /=/; # not keywords, but a form
- map { uri_unescape($_) } split(/\+/, $old, -1);
-}
-
-# Some URI::URL compatibility stuff
-sub equery { goto &query }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/_segment.pm b/Master/tlpkg/tlperl/lib/URI/_segment.pm
deleted file mode 100644
index 2c42fc15925..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/_segment.pm
+++ /dev/null
@@ -1,22 +0,0 @@
-package URI::_segment;
-
-# Represents a generic path_segment so that it can be treated as
-# a string too.
-
-use strict;
-use warnings;
-
-use URI::Escape qw(uri_unescape);
-
-use overload '""' => sub { $_[0]->[0] },
- fallback => 1;
-
-sub new
-{
- my $class = shift;
- my @segment = split(';', shift, -1);
- $segment[0] = uri_unescape($segment[0]);
- bless \@segment, $class;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/_server.pm b/Master/tlpkg/tlperl/lib/URI/_server.pm
deleted file mode 100644
index 643d13e1bc9..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/_server.pm
+++ /dev/null
@@ -1,164 +0,0 @@
-package URI::_server;
-
-use strict;
-use warnings;
-
-use parent 'URI::_generic';
-
-use URI::Escape qw(uri_unescape);
-
-sub _uric_escape {
- my($class, $str) = @_;
- if ($str =~ m,^((?:$URI::scheme_re:)?)//([^/?\#]*)(.*)$,os) {
- my($scheme, $host, $rest) = ($1, $2, $3);
- my $ui = $host =~ s/(.*@)// ? $1 : "";
- my $port = $host =~ s/(:\d+)\z// ? $1 : "";
- if (_host_escape($host)) {
- $str = "$scheme//$ui$host$port$rest";
- }
- }
- return $class->SUPER::_uric_escape($str);
-}
-
-sub _host_escape {
- return unless $_[0] =~ /[^$URI::uric]/;
- eval {
- require URI::_idna;
- $_[0] = URI::_idna::encode($_[0]);
- };
- return 0 if $@;
- return 1;
-}
-
-sub as_iri {
- my $self = shift;
- my $str = $self->SUPER::as_iri;
- if ($str =~ /\bxn--/) {
- if ($str =~ m,^((?:$URI::scheme_re:)?)//([^/?\#]*)(.*)$,os) {
- my($scheme, $host, $rest) = ($1, $2, $3);
- my $ui = $host =~ s/(.*@)// ? $1 : "";
- my $port = $host =~ s/(:\d+)\z// ? $1 : "";
- require URI::_idna;
- $host = URI::_idna::decode($host);
- $str = "$scheme//$ui$host$port$rest";
- }
- }
- return $str;
-}
-
-sub userinfo
-{
- my $self = shift;
- my $old = $self->authority;
-
- if (@_) {
- my $new = $old;
- $new = "" unless defined $new;
- $new =~ s/.*@//; # remove old stuff
- my $ui = shift;
- if (defined $ui) {
- $ui =~ s/@/%40/g; # protect @
- $new = "$ui\@$new";
- }
- $self->authority($new);
- }
- return undef if !defined($old) || $old !~ /(.*)@/;
- return $1;
-}
-
-sub host
-{
- my $self = shift;
- my $old = $self->authority;
- if (@_) {
- my $tmp = $old;
- $tmp = "" unless defined $tmp;
- my $ui = ($tmp =~ /(.*@)/) ? $1 : "";
- my $port = ($tmp =~ /(:\d+)$/) ? $1 : "";
- my $new = shift;
- $new = "" unless defined $new;
- if (length $new) {
- $new =~ s/[@]/%40/g; # protect @
- if ($new =~ /^[^:]*:\d*\z/ || $new =~ /]:\d*\z/) {
- $new =~ s/(:\d*)\z// || die "Assert";
- $port = $1;
- }
- $new = "[$new]" if $new =~ /:/ && $new !~ /^\[/; # IPv6 address
- _host_escape($new);
- }
- $self->authority("$ui$new$port");
- }
- return undef unless defined $old;
- $old =~ s/.*@//;
- $old =~ s/:\d+$//; # remove the port
- $old =~ s{^\[(.*)\]$}{$1}; # remove brackets around IPv6 (RFC 3986 3.2.2)
- return uri_unescape($old);
-}
-
-sub ihost
-{
- my $self = shift;
- my $old = $self->host(@_);
- if ($old =~ /(^|\.)xn--/) {
- require URI::_idna;
- $old = URI::_idna::decode($old);
- }
- return $old;
-}
-
-sub _port
-{
- my $self = shift;
- my $old = $self->authority;
- if (@_) {
- my $new = $old;
- $new =~ s/:\d*$//;
- my $port = shift;
- $new .= ":$port" if defined $port;
- $self->authority($new);
- }
- return $1 if defined($old) && $old =~ /:(\d*)$/;
- return;
-}
-
-sub port
-{
- my $self = shift;
- my $port = $self->_port(@_);
- $port = $self->default_port if !defined($port) || $port eq "";
- $port;
-}
-
-sub host_port
-{
- my $self = shift;
- my $old = $self->authority;
- $self->host(shift) if @_;
- return undef unless defined $old;
- $old =~ s/.*@//; # zap userinfo
- $old =~ s/:$//; # empty port should be treated the same a no port
- $old .= ":" . $self->port unless $old =~ /:\d+$/;
- $old;
-}
-
-
-sub default_port { undef }
-
-sub canonical
-{
- my $self = shift;
- my $other = $self->SUPER::canonical;
- my $host = $other->host || "";
- my $port = $other->_port;
- my $uc_host = $host =~ /[A-Z]/;
- my $def_port = defined($port) && ($port eq "" ||
- $port == $self->default_port);
- if ($uc_host || $def_port) {
- $other = $other->clone if $other == $self;
- $other->host(lc $host) if $uc_host;
- $other->port(undef) if $def_port;
- }
- $other;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/_userpass.pm b/Master/tlpkg/tlperl/lib/URI/_userpass.pm
deleted file mode 100644
index db8b53b5262..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/_userpass.pm
+++ /dev/null
@@ -1,53 +0,0 @@
-package URI::_userpass;
-
-use strict;
-use warnings;
-
-use URI::Escape qw(uri_unescape);
-
-sub user
-{
- my $self = shift;
- my $info = $self->userinfo;
- if (@_) {
- my $new = shift;
- my $pass = defined($info) ? $info : "";
- $pass =~ s/^[^:]*//;
-
- if (!defined($new) && !length($pass)) {
- $self->userinfo(undef);
- } else {
- $new = "" unless defined($new);
- $new =~ s/%/%25/g;
- $new =~ s/:/%3A/g;
- $self->userinfo("$new$pass");
- }
- }
- return undef unless defined $info;
- $info =~ s/:.*//;
- uri_unescape($info);
-}
-
-sub password
-{
- my $self = shift;
- my $info = $self->userinfo;
- if (@_) {
- my $new = shift;
- my $user = defined($info) ? $info : "";
- $user =~ s/:.*//;
-
- if (!defined($new) && !length($user)) {
- $self->userinfo(undef);
- } else {
- $new = "" unless defined($new);
- $new =~ s/%/%25/g;
- $self->userinfo("$user:$new");
- }
- }
- return undef unless defined $info;
- return undef unless $info =~ s/^[^:]*://;
- uri_unescape($info);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/data.pm b/Master/tlpkg/tlperl/lib/URI/data.pm
deleted file mode 100644
index 19c390ec03c..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/data.pm
+++ /dev/null
@@ -1,142 +0,0 @@
-package URI::data; # RFC 2397
-
-use strict;
-use warnings;
-
-use parent 'URI';
-
-our $VERSION = '1.67';
-
-use MIME::Base64 qw(encode_base64 decode_base64);
-use URI::Escape qw(uri_unescape);
-
-sub media_type
-{
- my $self = shift;
- my $opaque = $self->opaque;
- $opaque =~ /^([^,]*),?/ or die;
- my $old = $1;
- my $base64;
- $base64 = $1 if $old =~ s/(;base64)$//i;
- if (@_) {
- my $new = shift;
- $new = "" unless defined $new;
- $new =~ s/%/%25/g;
- $new =~ s/,/%2C/g;
- $base64 = "" unless defined $base64;
- $opaque =~ s/^[^,]*,?/$new$base64,/;
- $self->opaque($opaque);
- }
- return uri_unescape($old) if $old; # media_type can't really be "0"
- "text/plain;charset=US-ASCII"; # default type
-}
-
-sub data
-{
- my $self = shift;
- my($enc, $data) = split(",", $self->opaque, 2);
- unless (defined $data) {
- $data = "";
- $enc = "" unless defined $enc;
- }
- my $base64 = ($enc =~ /;base64$/i);
- if (@_) {
- $enc =~ s/;base64$//i if $base64;
- my $new = shift;
- $new = "" unless defined $new;
- my $uric_count = _uric_count($new);
- my $urienc_len = $uric_count + (length($new) - $uric_count) * 3;
- my $base64_len = int((length($new)+2) / 3) * 4;
- $base64_len += 7; # because of ";base64" marker
- if ($base64_len < $urienc_len || $_[0]) {
- $enc .= ";base64";
- $new = encode_base64($new, "");
- } else {
- $new =~ s/%/%25/g;
- }
- $self->opaque("$enc,$new");
- }
- return unless defined wantarray;
- $data = uri_unescape($data);
- return $base64 ? decode_base64($data) : $data;
-}
-
-# I could not find a better way to interpolate the tr/// chars from
-# a variable.
-my $ENC = $URI::uric;
-$ENC =~ s/%//;
-
-eval <<EOT; die $@ if $@;
-sub _uric_count
-{
- \$_[0] =~ tr/$ENC//;
-}
-EOT
-
-1;
-
-__END__
-
-=head1 NAME
-
-URI::data - URI that contains immediate data
-
-=head1 SYNOPSIS
-
- use URI;
-
- $u = URI->new("data:");
- $u->media_type("image/gif");
- $u->data(scalar(`cat camel.gif`));
- print "$u\n";
- open(XV, "|xv -") and print XV $u->data;
-
-=head1 DESCRIPTION
-
-The C<URI::data> class supports C<URI> objects belonging to the I<data>
-URI scheme. The I<data> URI scheme is specified in RFC 2397. It
-allows inclusion of small data items as "immediate" data, as if it had
-been included externally. Examples:
-
- data:,Perl%20is%20good
-
- data:image/gif;base64,R0lGODdhIAAgAIAAAAAAAPj8+CwAAAAAI
- AAgAAAClYyPqcu9AJyCjtIKc5w5xP14xgeO2tlY3nWcajmZZdeJcG
- Kxrmimms1KMTa1Wg8UROx4MNUq1HrycMjHT9b6xKxaFLM6VRKzI+p
- KS9XtXpcbdun6uWVxJXA8pNPkdkkxhxc21LZHFOgD2KMoQXa2KMWI
- JtnE2KizVUkYJVZZ1nczBxXlFopZBtoJ2diXGdNUymmJdFMAADs=
-
-
-
-C<URI> objects belonging to the data scheme support the common methods
-(described in L<URI>) and the following two scheme-specific methods:
-
-=over 4
-
-=item $uri->media_type( [$new_media_type] )
-
-Can be used to get or set the media type specified in the
-URI. If no media type is specified, then the default
-C<"text/plain;charset=US-ASCII"> is returned.
-
-=item $uri->data( [$new_data] )
-
-Can be used to get or set the data contained in the URI.
-The data is passed unescaped (in binary form). The decision about
-whether to base64 encode the data in the URI is taken automatically,
-based on the encoding that produces the shorter URI string.
-
-=back
-
-=head1 SEE ALSO
-
-L<URI>
-
-=head1 COPYRIGHT
-
-Copyright 1995-1998 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/URI/file.pm b/Master/tlpkg/tlperl/lib/URI/file.pm
deleted file mode 100644
index d76ddf2b5e2..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/file.pm
+++ /dev/null
@@ -1,327 +0,0 @@
-package URI::file;
-
-use strict;
-use warnings;
-
-use parent 'URI::_generic';
-our $VERSION = "4.21";
-
-use URI::Escape qw(uri_unescape);
-
-our $DEFAULT_AUTHORITY = "";
-
-# Map from $^O values to implementation classes. The Unix
-# class is the default.
-our %OS_CLASS = (
- os2 => "OS2",
- mac => "Mac",
- MacOS => "Mac",
- MSWin32 => "Win32",
- win32 => "Win32",
- msdos => "FAT",
- dos => "FAT",
- qnx => "QNX",
-);
-
-sub os_class
-{
- my($OS) = shift || $^O;
-
- my $class = "URI::file::" . ($OS_CLASS{$OS} || "Unix");
- no strict 'refs';
- unless (%{"$class\::"}) {
- eval "require $class";
- die $@ if $@;
- }
- $class;
-}
-
-sub host { uri_unescape(shift->authority(@_)) }
-
-sub new
-{
- my($class, $path, $os) = @_;
- os_class($os)->new($path);
-}
-
-sub new_abs
-{
- my $class = shift;
- my $file = $class->new(@_);
- return $file->abs($class->cwd) unless $$file =~ /^file:/;
- $file;
-}
-
-sub cwd
-{
- my $class = shift;
- require Cwd;
- my $cwd = Cwd::cwd();
- $cwd = VMS::Filespec::unixpath($cwd) if $^O eq 'VMS';
- $cwd = $class->new($cwd);
- $cwd .= "/" unless substr($cwd, -1, 1) eq "/";
- $cwd;
-}
-
-sub canonical {
- my $self = shift;
- my $other = $self->SUPER::canonical;
-
- my $scheme = $other->scheme;
- my $auth = $other->authority;
- return $other if !defined($scheme) && !defined($auth); # relative
-
- if (!defined($auth) ||
- $auth eq "" ||
- lc($auth) eq "localhost" ||
- (defined($DEFAULT_AUTHORITY) && lc($auth) eq lc($DEFAULT_AUTHORITY))
- )
- {
- # avoid cloning if $auth already match
- if ((defined($auth) || defined($DEFAULT_AUTHORITY)) &&
- (!defined($auth) || !defined($DEFAULT_AUTHORITY) || $auth ne $DEFAULT_AUTHORITY)
- )
- {
- $other = $other->clone if $self == $other;
- $other->authority($DEFAULT_AUTHORITY);
- }
- }
-
- $other;
-}
-
-sub file
-{
- my($self, $os) = @_;
- os_class($os)->file($self);
-}
-
-sub dir
-{
- my($self, $os) = @_;
- os_class($os)->dir($self);
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-URI::file - URI that maps to local file names
-
-=head1 SYNOPSIS
-
- use URI::file;
-
- $u1 = URI->new("file:/foo/bar");
- $u2 = URI->new("foo/bar", "file");
-
- $u3 = URI::file->new($path);
- $u4 = URI::file->new("c:\\windows\\", "win32");
-
- $u1->file;
- $u1->file("mac");
-
-=head1 DESCRIPTION
-
-The C<URI::file> class supports C<URI> objects belonging to the I<file>
-URI scheme. This scheme allows us to map the conventional file names
-found on various computer systems to the URI name space. An old
-specification of the I<file> URI scheme is found in RFC 1738. Some
-older background information is also in RFC 1630. There are no newer
-specifications as far as I know.
-
-If you simply want to construct I<file> URI objects from URI strings,
-use the normal C<URI> constructor. If you want to construct I<file>
-URI objects from the actual file names used by various systems, then
-use one of the following C<URI::file> constructors:
-
-=over 4
-
-=item $u = URI::file->new( $filename, [$os] )
-
-Maps a file name to the I<file:> URI name space, creates a URI object
-and returns it. The $filename is interpreted as belonging to the
-indicated operating system ($os), which defaults to the value of the
-$^O variable. The $filename can be either absolute or relative, and
-the corresponding type of URI object for $os is returned.
-
-=item $u = URI::file->new_abs( $filename, [$os] )
-
-Same as URI::file->new, but makes sure that the URI returned
-represents an absolute file name. If the $filename argument is
-relative, then the name is resolved relative to the current directory,
-i.e. this constructor is really the same as:
-
- URI::file->new($filename)->abs(URI::file->cwd);
-
-=item $u = URI::file->cwd
-
-Returns a I<file> URI that represents the current working directory.
-See L<Cwd>.
-
-=back
-
-The following methods are supported for I<file> URI (in addition to
-the common and generic methods described in L<URI>):
-
-=over 4
-
-=item $u->file( [$os] )
-
-Returns a file name. It maps from the URI name space
-to the file name space of the indicated operating system.
-
-It might return C<undef> if the name can not be represented in the
-indicated file system.
-
-=item $u->dir( [$os] )
-
-Some systems use a different form for names of directories than for plain
-files. Use this method if you know you want to use the name for
-a directory.
-
-=back
-
-The C<URI::file> module can be used to map generic file names to names
-suitable for the current system. As such, it can work as a nice
-replacement for the C<File::Spec> module. For instance, the following
-code translates the UNIX-style file name F<Foo/Bar.pm> to a name
-suitable for the local system:
-
- $file = URI::file->new("Foo/Bar.pm", "unix")->file;
- die "Can't map filename Foo/Bar.pm for $^O" unless defined $file;
- open(FILE, $file) || die "Can't open '$file': $!";
- # do something with FILE
-
-=head1 MAPPING NOTES
-
-Most computer systems today have hierarchically organized file systems.
-Mapping the names used in these systems to the generic URI syntax
-allows us to work with relative file URIs that behave as they should
-when resolved using the generic algorithm for URIs (specified in RFC
-2396). Mapping a file name to the generic URI syntax involves mapping
-the path separator character to "/" and encoding any reserved
-characters that appear in the path segments of the file name. If
-path segments consisting of the strings "." or ".." have a
-different meaning than what is specified for generic URIs, then these
-must be encoded as well.
-
-If the file system has device, volume or drive specifications as
-the root of the name space, then it makes sense to map them to the
-authority field of the generic URI syntax. This makes sure that
-relative URIs can not be resolved "above" them, i.e. generally how
-relative file names work in those systems.
-
-Another common use of the authority field is to encode the host on which
-this file name is valid. The host name "localhost" is special and
-generally has the same meaning as a missing or empty authority
-field. This use is in conflict with using it as a device
-specification, but can often be resolved for device specifications
-having characters not legal in plain host names.
-
-File name to URI mapping in normally not one-to-one. There are
-usually many URIs that map to any given file name. For instance, an
-authority of "localhost" maps the same as a URI with a missing or empty
-authority.
-
-Example 1: The Mac classic (Mac OS 9 and earlier) used ":" as path separator,
-but not in the same way as a generic URI. ":foo" was a relative name. "foo:bar"
-was an absolute name. Also, path segments could contain the "/" character as well
-as the literal "." or "..". So the mapping looks like this:
-
- Mac classic URI
- ---------- -------------------
- :foo:bar <==> foo/bar
- : <==> ./
- ::foo:bar <==> ../foo/bar
- ::: <==> ../../
- foo:bar <==> file:/foo/bar
- foo:bar: <==> file:/foo/bar/
- .. <==> %2E%2E
- <undef> <== /
- foo/ <== file:/foo%2F
- ./foo.txt <== file:/.%2Ffoo.txt
-
-Note that if you want a relative URL, you *must* begin the path with a :. Any
-path that begins with [^:] is treated as absolute.
-
-Example 2: The UNIX file system is easy to map, as it uses the same path
-separator as URIs, has a single root, and segments of "." and ".."
-have the same meaning. URIs that have the character "\0" or "/" as
-part of any path segment can not be turned into valid UNIX file names.
-
- UNIX URI
- ---------- ------------------
- foo/bar <==> foo/bar
- /foo/bar <==> file:/foo/bar
- /foo/bar <== file://localhost/foo/bar
- file: ==> ./file:
- <undef> <== file:/fo%00/bar
- / <==> file:/
-
-=cut
-
-
-RFC 1630
-
- [...]
-
- There is clearly a danger of confusion that a link made to a local
- file should be followed by someone on a different system, with
- unexpected and possibly harmful results. Therefore, the convention
- is that even a "file" URL is provided with a host part. This allows
- a client on another system to know that it cannot access the file
- system, or perhaps to use some other local mechanism to access the
- file.
-
- The special value "localhost" is used in the host field to indicate
- that the filename should really be used on whatever host one is.
- This for example allows links to be made to files which are
- distributed on many machines, or to "your unix local password file"
- subject of course to consistency across the users of the data.
-
- A void host field is equivalent to "localhost".
-
-=head1 CONFIGURATION VARIABLES
-
-The following configuration variables influence how the class and its
-methods behave:
-
-=over
-
-=item %URI::file::OS_CLASS
-
-This hash maps OS identifiers to implementation classes. You might
-want to add or modify this if you want to plug in your own file
-handler class. Normally the keys should match the $^O values in use.
-
-If there is no mapping then the "Unix" implementation is used.
-
-=item $URI::file::DEFAULT_AUTHORITY
-
-This determine what "authority" string to include in absolute file
-URIs. It defaults to "". If you prefer verbose URIs you might set it
-to be "localhost".
-
-Setting this value to C<undef> force behaviour compatible to URI v1.31
-and earlier. In this mode host names in UNC paths and drive letters
-are mapped to the authority component on Windows, while we produce
-authority-less URIs on Unix.
-
-=back
-
-
-=head1 SEE ALSO
-
-L<URI>, L<File::Spec>, L<perlport>
-
-=head1 COPYRIGHT
-
-Copyright 1995-1998,2004 Gisle Aas.
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/URI/file/Base.pm b/Master/tlpkg/tlperl/lib/URI/file/Base.pm
deleted file mode 100644
index bba1c9dbf6a..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/file/Base.pm
+++ /dev/null
@@ -1,82 +0,0 @@
-package URI::file::Base;
-
-use strict;
-use warnings;
-
-use URI::Escape qw();
-
-sub new
-{
- my $class = shift;
- my $path = shift;
- $path = "" unless defined $path;
-
- my($auth, $escaped_auth, $escaped_path);
-
- ($auth, $escaped_auth) = $class->_file_extract_authority($path);
- ($path, $escaped_path) = $class->_file_extract_path($path);
-
- if (defined $auth) {
- $auth =~ s,%,%25,g unless $escaped_auth;
- $auth =~ s,([/?\#]), URI::Escape::escape_char($1),eg;
- $auth = "//$auth";
- if (defined $path) {
- $path = "/$path" unless substr($path, 0, 1) eq "/";
- } else {
- $path = "";
- }
- } else {
- return undef unless defined $path;
- $auth = "";
- }
-
- $path =~ s,([%;?]), URI::Escape::escape_char($1),eg unless $escaped_path;
- $path =~ s/\#/%23/g;
-
- my $uri = $auth . $path;
- $uri = "file:$uri" if substr($uri, 0, 1) eq "/";
-
- URI->new($uri, "file");
-}
-
-sub _file_extract_authority
-{
- my($class, $path) = @_;
- return undef unless $class->_file_is_absolute($path);
- return $URI::file::DEFAULT_AUTHORITY;
-}
-
-sub _file_extract_path
-{
- return undef;
-}
-
-sub _file_is_absolute
-{
- return 0;
-}
-
-sub _file_is_localhost
-{
- shift; # class
- my $host = lc(shift);
- return 1 if $host eq "localhost";
- eval {
- require Net::Domain;
- lc(Net::Domain::hostfqdn()) eq $host ||
- lc(Net::Domain::hostname()) eq $host;
- };
-}
-
-sub file
-{
- undef;
-}
-
-sub dir
-{
- my $self = shift;
- $self->file(@_);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/file/FAT.pm b/Master/tlpkg/tlperl/lib/URI/file/FAT.pm
deleted file mode 100644
index 212d1abd1a2..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/file/FAT.pm
+++ /dev/null
@@ -1,25 +0,0 @@
-package URI::file::FAT;
-
-use strict;
-use warnings;
-
-use parent 'URI::file::Win32';
-
-sub fix_path
-{
- shift; # class
- for (@_) {
- # turn it into 8.3 names
- my @p = map uc, split(/\./, $_, -1);
- return if @p > 2; # more than 1 dot is not allowed
- @p = ("") unless @p; # split bug? (returns nothing when splitting "")
- $_ = substr($p[0], 0, 8);
- if (@p > 1) {
- my $ext = substr($p[1], 0, 3);
- $_ .= ".$ext" if length $ext;
- }
- }
- 1; # ok
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/file/Mac.pm b/Master/tlpkg/tlperl/lib/URI/file/Mac.pm
deleted file mode 100644
index 1cf08f5d4ad..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/file/Mac.pm
+++ /dev/null
@@ -1,121 +0,0 @@
-package URI::file::Mac;
-
-use strict;
-use warnings;
-
-use parent 'URI::file::Base';
-
-use URI::Escape qw(uri_unescape);
-
-
-
-sub _file_extract_path
-{
- my $class = shift;
- my $path = shift;
-
- my @pre;
- if ($path =~ s/^(:+)//) {
- if (length($1) == 1) {
- @pre = (".") unless length($path);
- } else {
- @pre = ("..") x (length($1) - 1);
- }
- } else { #absolute
- $pre[0] = "";
- }
-
- my $isdir = ($path =~ s/:$//);
- $path =~ s,([%/;]), URI::Escape::escape_char($1),eg;
-
- my @path = split(/:/, $path, -1);
- for (@path) {
- if ($_ eq "." || $_ eq "..") {
- $_ = "%2E" x length($_);
- }
- $_ = ".." unless length($_);
- }
- push (@path,"") if $isdir;
- (join("/", @pre, @path), 1);
-}
-
-
-sub file
-{
- my $class = shift;
- my $uri = shift;
- my @path;
-
- my $auth = $uri->authority;
- if (defined $auth) {
- if (lc($auth) ne "localhost" && $auth ne "") {
- my $u_auth = uri_unescape($auth);
- if (!$class->_file_is_localhost($u_auth)) {
- # some other host (use it as volume name)
- @path = ("", $auth);
- # XXX or just return to make it illegal;
- }
- }
- }
- my @ps = split("/", $uri->path, -1);
- shift @ps if @path;
- push(@path, @ps);
-
- my $pre = "";
- if (!@path) {
- return; # empty path; XXX return ":" instead?
- } elsif ($path[0] eq "") {
- # absolute
- shift(@path);
- if (@path == 1) {
- return if $path[0] eq ""; # not root directory
- push(@path, ""); # volume only, effectively append ":"
- }
- @ps = @path;
- @path = ();
- my $part;
- for (@ps) { #fix up "." and "..", including interior, in relatives
- next if $_ eq ".";
- $part = $_ eq ".." ? "" : $_;
- push(@path,$part);
- }
- if ($ps[-1] eq "..") { #if this happens, we need another :
- push(@path,"");
- }
-
- } else {
- $pre = ":";
- @ps = @path;
- @path = ();
- my $part;
- for (@ps) { #fix up "." and "..", including interior, in relatives
- next if $_ eq ".";
- $part = $_ eq ".." ? "" : $_;
- push(@path,$part);
- }
- if ($ps[-1] eq "..") { #if this happens, we need another :
- push(@path,"");
- }
-
- }
- return unless $pre || @path;
- for (@path) {
- s/;.*//; # get rid of parameters
- #return unless length; # XXX
- $_ = uri_unescape($_);
- return if /\0/;
- return if /:/; # Should we?
- }
- $pre . join(":", @path);
-}
-
-sub dir
-{
- my $class = shift;
- my $path = $class->file(@_);
- return unless defined $path;
- $path .= ":" unless $path =~ /:$/;
- $path;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/file/OS2.pm b/Master/tlpkg/tlperl/lib/URI/file/OS2.pm
deleted file mode 100644
index a301468a68f..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/file/OS2.pm
+++ /dev/null
@@ -1,30 +0,0 @@
-package URI::file::OS2;
-
-use strict;
-use warnings;
-
-use parent 'URI::file::Win32';
-
-# The Win32 version translates k:/foo to file://k:/foo (?!)
-# We add an empty host
-
-sub _file_extract_authority
-{
- my $class = shift;
- return $1 if $_[0] =~ s,^\\\\([^\\]+),,; # UNC
- return $1 if $_[0] =~ s,^//([^/]+),,; # UNC too?
-
- if ($_[0] =~ m#^[a-zA-Z]{1,2}:#) { # allow for ab: drives
- return "";
- }
- return;
-}
-
-sub file {
- my $p = &URI::file::Win32::file;
- return unless defined $p;
- $p =~ s,\\,/,g;
- $p;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/file/QNX.pm b/Master/tlpkg/tlperl/lib/URI/file/QNX.pm
deleted file mode 100644
index ccdb1813598..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/file/QNX.pm
+++ /dev/null
@@ -1,18 +0,0 @@
-package URI::file::QNX;
-
-use strict;
-use warnings;
-
-use parent 'URI::file::Unix';
-
-sub _file_extract_path
-{
- my($class, $path) = @_;
- # tidy path
- $path =~ s,(.)//+,$1/,g; # ^// is correct
- $path =~ s,(/\.)+/,/,g;
- $path = "./$path" if $path =~ m,^[^:/]+:,,; # look like "scheme:"
- $path;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/file/Unix.pm b/Master/tlpkg/tlperl/lib/URI/file/Unix.pm
deleted file mode 100644
index 4315c3ea8b8..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/file/Unix.pm
+++ /dev/null
@@ -1,56 +0,0 @@
-package URI::file::Unix;
-
-use strict;
-use warnings;
-
-use parent 'URI::file::Base';
-
-use URI::Escape qw(uri_unescape);
-
-sub _file_extract_path
-{
- my($class, $path) = @_;
-
- # tidy path
- $path =~ s,//+,/,g;
- $path =~ s,(/\.)+/,/,g;
- $path = "./$path" if $path =~ m,^[^:/]+:,,; # look like "scheme:"
-
- return $path;
-}
-
-sub _file_is_absolute {
- my($class, $path) = @_;
- return $path =~ m,^/,;
-}
-
-sub file
-{
- my $class = shift;
- my $uri = shift;
- my @path;
-
- my $auth = $uri->authority;
- if (defined($auth)) {
- if (lc($auth) ne "localhost" && $auth ne "") {
- $auth = uri_unescape($auth);
- unless ($class->_file_is_localhost($auth)) {
- push(@path, "", "", $auth);
- }
- }
- }
-
- my @ps = $uri->path_segments;
- shift @ps if @path;
- push(@path, @ps);
-
- for (@path) {
- # Unix file/directory names are not allowed to contain '\0' or '/'
- return undef if /\0/;
- return undef if /\//; # should we really?
- }
-
- return join("/", @path);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/file/Win32.pm b/Master/tlpkg/tlperl/lib/URI/file/Win32.pm
deleted file mode 100644
index 7762d2a910b..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/file/Win32.pm
+++ /dev/null
@@ -1,85 +0,0 @@
-package URI::file::Win32;
-
-use strict;
-use warnings;
-
-use parent 'URI::file::Base';
-
-use URI::Escape qw(uri_unescape);
-
-sub _file_extract_authority
-{
- my $class = shift;
-
- return $class->SUPER::_file_extract_authority($_[0])
- if defined $URI::file::DEFAULT_AUTHORITY;
-
- return $1 if $_[0] =~ s,^\\\\([^\\]+),,; # UNC
- return $1 if $_[0] =~ s,^//([^/]+),,; # UNC too?
-
- if ($_[0] =~ s,^([a-zA-Z]:),,) {
- my $auth = $1;
- $auth .= "relative" if $_[0] !~ m,^[\\/],;
- return $auth;
- }
- return undef;
-}
-
-sub _file_extract_path
-{
- my($class, $path) = @_;
- $path =~ s,\\,/,g;
- #$path =~ s,//+,/,g;
- $path =~ s,(/\.)+/,/,g;
-
- if (defined $URI::file::DEFAULT_AUTHORITY) {
- $path =~ s,^([a-zA-Z]:),/$1,;
- }
-
- return $path;
-}
-
-sub _file_is_absolute {
- my($class, $path) = @_;
- return $path =~ m,^[a-zA-Z]:, || $path =~ m,^[/\\],;
-}
-
-sub file
-{
- my $class = shift;
- my $uri = shift;
- my $auth = $uri->authority;
- my $rel; # is filename relative to drive specified in authority
- if (defined $auth) {
- $auth = uri_unescape($auth);
- if ($auth =~ /^([a-zA-Z])[:|](relative)?/) {
- $auth = uc($1) . ":";
- $rel++ if $2;
- } elsif (lc($auth) eq "localhost") {
- $auth = "";
- } elsif (length $auth) {
- $auth = "\\\\" . $auth; # UNC
- }
- } else {
- $auth = "";
- }
-
- my @path = $uri->path_segments;
- for (@path) {
- return undef if /\0/;
- return undef if /\//;
- #return undef if /\\/; # URLs with "\" is not uncommon
- }
- return undef unless $class->fix_path(@path);
-
- my $path = join("\\", @path);
- $path =~ s/^\\// if $rel;
- $path = $auth . $path;
- $path =~ s,^\\([a-zA-Z])[:|],\u$1:,;
-
- return $path;
-}
-
-sub fix_path { 1; }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/ftp.pm b/Master/tlpkg/tlperl/lib/URI/ftp.pm
deleted file mode 100644
index 7a3c8ca79e2..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/ftp.pm
+++ /dev/null
@@ -1,44 +0,0 @@
-package URI::ftp;
-
-use strict;
-use warnings;
-
-use parent qw(URI::_server URI::_userpass);
-
-sub default_port { 21 }
-
-sub path { shift->path_query(@_) } # XXX
-
-sub _user { shift->SUPER::user(@_); }
-sub _password { shift->SUPER::password(@_); }
-
-sub user
-{
- my $self = shift;
- my $user = $self->_user(@_);
- $user = "anonymous" unless defined $user;
- $user;
-}
-
-sub password
-{
- my $self = shift;
- my $pass = $self->_password(@_);
- unless (defined $pass) {
- my $user = $self->user;
- if ($user eq 'anonymous' || $user eq 'ftp') {
- # anonymous ftp login password
- # If there is no ftp anonymous password specified
- # then we'll just use 'anonymous@'
- # We don't try to send the read e-mail address because:
- # - We want to remain anonymous
- # - We want to stop SPAM
- # - We don't want to let ftp sites to discriminate by the user,
- # host, country or ftp client being used.
- $pass = 'anonymous@';
- }
- }
- $pass;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/gopher.pm b/Master/tlpkg/tlperl/lib/URI/gopher.pm
deleted file mode 100644
index 1da0b11f7ee..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/gopher.pm
+++ /dev/null
@@ -1,95 +0,0 @@
-package URI::gopher; # <draft-murali-url-gopher>, Dec 4, 1996
-
-use strict;
-use warnings;
-
-use parent 'URI::_server';
-
-use URI::Escape qw(uri_unescape);
-
-# A Gopher URL follows the common internet scheme syntax as defined in
-# section 4.3 of [RFC-URL-SYNTAX]:
-#
-# gopher://<host>[:<port>]/<gopher-path>
-#
-# where
-#
-# <gopher-path> := <gopher-type><selector> |
-# <gopher-type><selector>%09<search> |
-# <gopher-type><selector>%09<search>%09<gopher+_string>
-#
-# <gopher-type> := '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7'
-# '8' | '9' | '+' | 'I' | 'g' | 'T'
-#
-# <selector> := *pchar Refer to RFC 1808 [4]
-# <search> := *pchar
-# <gopher+_string> := *uchar Refer to RFC 1738 [3]
-#
-# If the optional port is omitted, the port defaults to 70.
-
-sub default_port { 70 }
-
-sub _gopher_type
-{
- my $self = shift;
- my $path = $self->path_query;
- $path =~ s,^/,,;
- my $gtype = $1 if $path =~ s/^(.)//s;
- if (@_) {
- my $new_type = shift;
- if (defined($new_type)) {
- Carp::croak("Bad gopher type '$new_type'")
- unless length($new_type) == 1;
- substr($path, 0, 0) = $new_type;
- $self->path_query($path);
- } else {
- Carp::croak("Can't delete gopher type when selector is present")
- if length($path);
- $self->path_query(undef);
- }
- }
- return $gtype;
-}
-
-sub gopher_type
-{
- my $self = shift;
- my $gtype = $self->_gopher_type(@_);
- $gtype = "1" unless defined $gtype;
- $gtype;
-}
-
-sub gtype { goto &gopher_type } # URI::URL compatibility
-
-sub selector { shift->_gfield(0, @_) }
-sub search { shift->_gfield(1, @_) }
-sub string { shift->_gfield(2, @_) }
-
-sub _gfield
-{
- my $self = shift;
- my $fno = shift;
- my $path = $self->path_query;
-
- # not according to spec., but many popular browsers accept
- # gopher URLs with a '?' before the search string.
- $path =~ s/\?/\t/;
- $path = uri_unescape($path);
- $path =~ s,^/,,;
- my $gtype = $1 if $path =~ s,^(.),,s;
- my @path = split(/\t/, $path, 3);
- if (@_) {
- # modify
- my $new = shift;
- $path[$fno] = $new;
- pop(@path) while @path && !defined($path[-1]);
- for (@path) { $_="" unless defined }
- $path = $gtype;
- $path = "1" unless defined $path;
- $path .= join("\t", @path);
- $self->path_query($path);
- }
- $path[$fno];
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/http.pm b/Master/tlpkg/tlperl/lib/URI/http.pm
deleted file mode 100644
index 57eb01b21a0..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/http.pm
+++ /dev/null
@@ -1,25 +0,0 @@
-package URI::http;
-
-use strict;
-use warnings;
-
-use parent 'URI::_server';
-
-sub default_port { 80 }
-
-sub canonical
-{
- my $self = shift;
- my $other = $self->SUPER::canonical;
-
- my $slash_path = defined($other->authority) &&
- !length($other->path) && !defined($other->query);
-
- if ($slash_path) {
- $other = $other->clone if $other == $self;
- $other->path("/");
- }
- $other;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/https.pm b/Master/tlpkg/tlperl/lib/URI/https.pm
deleted file mode 100644
index 0937018797b..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/https.pm
+++ /dev/null
@@ -1,12 +0,0 @@
-package URI::https;
-
-use strict;
-use warnings;
-
-use parent 'URI::http';
-
-sub default_port { 443 }
-
-sub secure { 1 }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/ldap.pm b/Master/tlpkg/tlperl/lib/URI/ldap.pm
deleted file mode 100644
index b2cf9777511..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/ldap.pm
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright (c) 1998 Graham Barr <gbarr@pobox.com>. All rights reserved.
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
-package URI::ldap;
-
-use strict;
-use warnings;
-
-our $VERSION = "1.67";
-
-use parent qw(URI::_ldap URI::_server);
-
-sub default_port { 389 }
-
-sub _nonldap_canonical {
- my $self = shift;
- $self->URI::_server::canonical(@_);
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-URI::ldap - LDAP Uniform Resource Locators
-
-=head1 SYNOPSIS
-
- use URI;
-
- $uri = URI->new("ldap:$uri_string");
- $dn = $uri->dn;
- $filter = $uri->filter;
- @attr = $uri->attributes;
- $scope = $uri->scope;
- %extn = $uri->extensions;
-
- $uri = URI->new("ldap:"); # start empty
- $uri->host("ldap.itd.umich.edu");
- $uri->dn("o=University of Michigan,c=US");
- $uri->attributes(qw(postalAddress));
- $uri->scope('sub');
- $uri->filter('(cn=Babs Jensen)');
- print $uri->as_string,"\n";
-
-=head1 DESCRIPTION
-
-C<URI::ldap> provides an interface to parse an LDAP URI into its
-constituent parts and also to build a URI as described in
-RFC 2255.
-
-=head1 METHODS
-
-C<URI::ldap> supports all the generic and server methods defined by
-L<URI>, plus the following.
-
-Each of the following methods can be used to set or get the value in
-the URI. The values are passed in unescaped form. None of these
-return undefined values, but elements without a default can be empty.
-If arguments are given, then a new value is set for the given part
-of the URI.
-
-=over 4
-
-=item $uri->dn( [$new_dn] )
-
-Sets or gets the I<Distinguished Name> part of the URI. The DN
-identifies the base object of the LDAP search.
-
-=item $uri->attributes( [@new_attrs] )
-
-Sets or gets the list of attribute names which are
-returned by the search.
-
-=item $uri->scope( [$new_scope] )
-
-Sets or gets the scope to be used by the search. The value can be one of
-C<"base">, C<"one"> or C<"sub">. If none is given in the URI then the
-return value defaults to C<"base">.
-
-=item $uri->_scope( [$new_scope] )
-
-Same as scope(), but does not default to anything.
-
-=item $uri->filter( [$new_filter] )
-
-Sets or gets the filter to be used by the search. If none is given in
-the URI then the return value defaults to C<"(objectClass=*)">.
-
-=item $uri->_filter( [$new_filter] )
-
-Same as filter(), but does not default to anything.
-
-=item $uri->extensions( [$etype => $evalue,...] )
-
-Sets or gets the extensions used for the search. The list passed should
-be in the form etype1 => evalue1, etype2 => evalue2,... This is also
-the form of list that is returned.
-
-=back
-
-=head1 SEE ALSO
-
-L<http://tools.ietf.org/html/rfc2255>
-
-=head1 AUTHOR
-
-Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
-
-Slightly modified by Gisle Aas to fit into the URI distribution.
-
-=head1 COPYRIGHT
-
-Copyright (c) 1998 Graham Barr. All rights reserved. This program is
-free software; you can redistribute it and/or modify it under the same
-terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/URI/ldapi.pm b/Master/tlpkg/tlperl/lib/URI/ldapi.pm
deleted file mode 100644
index d717506f037..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/ldapi.pm
+++ /dev/null
@@ -1,27 +0,0 @@
-package URI::ldapi;
-
-use strict;
-use warnings;
-
-use parent qw(URI::_ldap URI::_generic);
-
-require URI::Escape;
-
-sub un_path {
- my $self = shift;
- my $old = URI::Escape::uri_unescape($self->authority);
- if (@_) {
- my $p = shift;
- $p =~ s/:/%3A/g;
- $p =~ s/\@/%40/g;
- $self->authority($p);
- }
- return $old;
-}
-
-sub _nonldap_canonical {
- my $self = shift;
- $self->URI::_generic::canonical(@_);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/ldaps.pm b/Master/tlpkg/tlperl/lib/URI/ldaps.pm
deleted file mode 100644
index a43d79d6b0c..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/ldaps.pm
+++ /dev/null
@@ -1,12 +0,0 @@
-package URI::ldaps;
-
-use strict;
-use warnings;
-
-use parent 'URI::ldap';
-
-sub default_port { 636 }
-
-sub secure { 1 }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/mailto.pm b/Master/tlpkg/tlperl/lib/URI/mailto.pm
deleted file mode 100644
index 56bbaf8a132..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/mailto.pm
+++ /dev/null
@@ -1,71 +0,0 @@
-package URI::mailto; # RFC 2368
-
-use strict;
-use warnings;
-
-use parent qw(URI URI::_query);
-
-sub to
-{
- my $self = shift;
- my @old = $self->headers;
- if (@_) {
- my @new = @old;
- # get rid of any other to: fields
- for (my $i = 0; $i < @new; $i += 2) {
- if (lc($new[$i] || '') eq "to") {
- splice(@new, $i, 2);
- redo;
- }
- }
-
- my $to = shift;
- $to = "" unless defined $to;
- unshift(@new, "to" => $to);
- $self->headers(@new);
- }
- return unless defined wantarray;
-
- my @to;
- while (@old) {
- my $h = shift @old;
- my $v = shift @old;
- push(@to, $v) if lc($h) eq "to";
- }
- join(",", @to);
-}
-
-
-sub headers
-{
- my $self = shift;
-
- # The trick is to just treat everything as the query string...
- my $opaque = "to=" . $self->opaque;
- $opaque =~ s/\?/&/;
-
- if (@_) {
- my @new = @_;
-
- # strip out any "to" fields
- my @to;
- for (my $i=0; $i < @new; $i += 2) {
- if (lc($new[$i] || '') eq "to") {
- push(@to, (splice(@new, $i, 2))[1]); # remove header
- redo;
- }
- }
-
- my $new = join(",",@to);
- $new =~ s/%/%25/g;
- $new =~ s/\?/%3F/g;
- $self->opaque($new);
- $self->query_form(@new) if @new;
- }
- return unless defined wantarray;
-
- # I am lazy today...
- URI->new("mailto:?$opaque")->query_form;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/mms.pm b/Master/tlpkg/tlperl/lib/URI/mms.pm
deleted file mode 100644
index 3c74a39bb8c..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/mms.pm
+++ /dev/null
@@ -1,10 +0,0 @@
-package URI::mms;
-
-use strict;
-use warnings;
-
-use parent 'URI::http';
-
-sub default_port { 1755 }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/news.pm b/Master/tlpkg/tlperl/lib/URI/news.pm
deleted file mode 100644
index fcecba2c53b..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/news.pm
+++ /dev/null
@@ -1,69 +0,0 @@
-package URI::news; # draft-gilman-news-url-01
-
-use strict;
-use warnings;
-
-use parent 'URI::_server';
-
-use URI::Escape qw(uri_unescape);
-use Carp ();
-
-sub default_port { 119 }
-
-# newsURL = scheme ":" [ news-server ] [ refbygroup | message ]
-# scheme = "news" | "snews" | "nntp"
-# news-server = "//" server "/"
-# refbygroup = group [ "/" messageno [ "-" messageno ] ]
-# message = local-part "@" domain
-
-sub _group
-{
- my $self = shift;
- my $old = $self->path;
- if (@_) {
- my($group,$from,$to) = @_;
- if ($group =~ /\@/) {
- $group =~ s/^<(.*)>$/$1/; # "<" and ">" should not be part of it
- }
- $group =~ s,%,%25,g;
- $group =~ s,/,%2F,g;
- my $path = $group;
- if (defined $from) {
- $path .= "/$from";
- $path .= "-$to" if defined $to;
- }
- $self->path($path);
- }
-
- $old =~ s,^/,,;
- if ($old !~ /\@/ && $old =~ s,/(.*),, && wantarray) {
- my $extra = $1;
- return (uri_unescape($old), split(/-/, $extra));
- }
- uri_unescape($old);
-}
-
-
-sub group
-{
- my $self = shift;
- if (@_) {
- Carp::croak("Group name can't contain '\@'") if $_[0] =~ /\@/;
- }
- my @old = $self->_group(@_);
- return if $old[0] =~ /\@/;
- wantarray ? @old : $old[0];
-}
-
-sub message
-{
- my $self = shift;
- if (@_) {
- Carp::croak("Message must contain '\@'") unless $_[0] =~ /\@/;
- }
- my $old = $self->_group(@_);
- return undef unless $old =~ /\@/;
- return $old;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/nntp.pm b/Master/tlpkg/tlperl/lib/URI/nntp.pm
deleted file mode 100644
index b4fe5d3470b..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/nntp.pm
+++ /dev/null
@@ -1,8 +0,0 @@
-package URI::nntp; # draft-gilman-news-url-01
-
-use strict;
-use warnings;
-
-use parent 'URI::news';
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/pop.pm b/Master/tlpkg/tlperl/lib/URI/pop.pm
deleted file mode 100644
index daac9acd8eb..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/pop.pm
+++ /dev/null
@@ -1,69 +0,0 @@
-package URI::pop; # RFC 2384
-
-use strict;
-use warnings;
-
-use parent 'URI::_server';
-
-use URI::Escape qw(uri_unescape);
-
-sub default_port { 110 }
-
-#pop://<user>;auth=<auth>@<host>:<port>
-
-sub user
-{
- my $self = shift;
- my $old = $self->userinfo;
-
- if (@_) {
- my $new_info = $old;
- $new_info = "" unless defined $new_info;
- $new_info =~ s/^[^;]*//;
-
- my $new = shift;
- if (!defined($new) && !length($new_info)) {
- $self->userinfo(undef);
- } else {
- $new = "" unless defined $new;
- $new =~ s/%/%25/g;
- $new =~ s/;/%3B/g;
- $self->userinfo("$new$new_info");
- }
- }
-
- return undef unless defined $old;
- $old =~ s/;.*//;
- return uri_unescape($old);
-}
-
-sub auth
-{
- my $self = shift;
- my $old = $self->userinfo;
-
- if (@_) {
- my $new = $old;
- $new = "" unless defined $new;
- $new =~ s/(^[^;]*)//;
- my $user = $1;
- $new =~ s/;auth=[^;]*//i;
-
-
- my $auth = shift;
- if (defined $auth) {
- $auth =~ s/%/%25/g;
- $auth =~ s/;/%3B/g;
- $new = ";AUTH=$auth$new";
- }
- $self->userinfo("$user$new");
-
- }
-
- return undef unless defined $old;
- $old =~ s/^[^;]*//;
- return uri_unescape($1) if $old =~ /;auth=(.*)/i;
- return;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/rlogin.pm b/Master/tlpkg/tlperl/lib/URI/rlogin.pm
deleted file mode 100644
index b5664e9408c..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/rlogin.pm
+++ /dev/null
@@ -1,10 +0,0 @@
-package URI::rlogin;
-
-use strict;
-use warnings;
-
-use parent 'URI::_login';
-
-sub default_port { 513 }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/rsync.pm b/Master/tlpkg/tlperl/lib/URI/rsync.pm
deleted file mode 100644
index bde19072fc6..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/rsync.pm
+++ /dev/null
@@ -1,12 +0,0 @@
-package URI::rsync; # http://rsync.samba.org/
-
-# rsync://[USER@]HOST[:PORT]/SRC
-
-use strict;
-use warnings;
-
-use parent qw(URI::_server URI::_userpass);
-
-sub default_port { 873 }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/rtsp.pm b/Master/tlpkg/tlperl/lib/URI/rtsp.pm
deleted file mode 100644
index 6b336f4e5ff..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/rtsp.pm
+++ /dev/null
@@ -1,10 +0,0 @@
-package URI::rtsp;
-
-use strict;
-use warnings;
-
-use parent 'URI::http';
-
-sub default_port { 554 }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/rtspu.pm b/Master/tlpkg/tlperl/lib/URI/rtspu.pm
deleted file mode 100644
index b37454cb63d..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/rtspu.pm
+++ /dev/null
@@ -1,10 +0,0 @@
-package URI::rtspu;
-
-use strict;
-use warnings;
-
-use parent 'URI::rtsp';
-
-sub default_port { 554 }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/sip.pm b/Master/tlpkg/tlperl/lib/URI/sip.pm
deleted file mode 100644
index cee4ea1b953..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/sip.pm
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-# Written by Ryan Kereliuk <ryker@ryker.org>. This file may be
-# distributed under the same terms as Perl itself.
-#
-# The RFC 3261 sip URI is <scheme>:<authority>;<params>?<query>.
-#
-
-package URI::sip;
-
-use strict;
-use warnings;
-
-use parent qw(URI::_server URI::_userpass);
-
-use URI::Escape qw(uri_unescape);
-
-our $VERSION = "1.67";
-
-sub default_port { 5060 }
-
-sub authority
-{
- my $self = shift;
- $$self =~ m,^($URI::scheme_re:)?([^;?]*)(.*)$,os or die;
- my $old = $2;
-
- if (@_) {
- my $auth = shift;
- $$self = defined($1) ? $1 : "";
- my $rest = $3;
- if (defined $auth) {
- $auth =~ s/([^$URI::uric])/ URI::Escape::escape_char($1)/ego;
- $$self .= "$auth";
- }
- $$self .= $rest;
- }
- $old;
-}
-
-sub params_form
-{
- my $self = shift;
- $$self =~ m,^((?:$URI::scheme_re:)?)(?:([^;?]*))?(;[^?]*)?(.*)$,os or die;
- my $paramstr = $3;
-
- if (@_) {
- my @args = @_;
- $$self = $1 . $2;
- my $rest = $4;
- my @new;
- for (my $i=0; $i < @args; $i += 2) {
- push(@new, "$args[$i]=$args[$i+1]");
- }
- $paramstr = join(";", @new);
- $$self .= ";" . $paramstr . $rest;
- }
- $paramstr =~ s/^;//o;
- return split(/[;=]/, $paramstr);
-}
-
-sub params
-{
- my $self = shift;
- $$self =~ m,^((?:$URI::scheme_re:)?)(?:([^;?]*))?(;[^?]*)?(.*)$,os or die;
- my $paramstr = $3;
-
- if (@_) {
- my $new = shift;
- $$self = $1 . $2;
- my $rest = $4;
- $$self .= $paramstr . $rest;
- }
- $paramstr =~ s/^;//o;
- return $paramstr;
-}
-
-# Inherited methods that make no sense for a SIP URI.
-sub path {}
-sub path_query {}
-sub path_segments {}
-sub abs { shift }
-sub rel { shift }
-sub query_keywords {}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/sips.pm b/Master/tlpkg/tlperl/lib/URI/sips.pm
deleted file mode 100644
index 3048e182893..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/sips.pm
+++ /dev/null
@@ -1,12 +0,0 @@
-package URI::sips;
-
-use strict;
-use warnings;
-
-use parent 'URI::sip';
-
-sub default_port { 5061 }
-
-sub secure { 1 }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/snews.pm b/Master/tlpkg/tlperl/lib/URI/snews.pm
deleted file mode 100644
index ccf67b41fc1..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/snews.pm
+++ /dev/null
@@ -1,12 +0,0 @@
-package URI::snews; # draft-gilman-news-url-01
-
-use strict;
-use warnings;
-
-use parent 'URI::news';
-
-sub default_port { 563 }
-
-sub secure { 1 }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/ssh.pm b/Master/tlpkg/tlperl/lib/URI/ssh.pm
deleted file mode 100644
index 122cdcb9828..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/ssh.pm
+++ /dev/null
@@ -1,14 +0,0 @@
-package URI::ssh;
-
-use strict;
-use warnings;
-
-use parent 'URI::_login';
-
-# ssh://[USER@]HOST[:PORT]/SRC
-
-sub default_port { 22 }
-
-sub secure { 1 }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/telnet.pm b/Master/tlpkg/tlperl/lib/URI/telnet.pm
deleted file mode 100644
index 8431a95ac7c..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/telnet.pm
+++ /dev/null
@@ -1,10 +0,0 @@
-package URI::telnet;
-
-use strict;
-use warnings;
-
-use parent 'URI::_login';
-
-sub default_port { 23 }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/tn3270.pm b/Master/tlpkg/tlperl/lib/URI/tn3270.pm
deleted file mode 100644
index b0f6dc8bf96..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/tn3270.pm
+++ /dev/null
@@ -1,10 +0,0 @@
-package URI::tn3270;
-
-use strict;
-use warnings;
-
-use parent 'URI::_login';
-
-sub default_port { 23 }
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/urn.pm b/Master/tlpkg/tlperl/lib/URI/urn.pm
deleted file mode 100644
index 4c594f5b5da..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/urn.pm
+++ /dev/null
@@ -1,98 +0,0 @@
-package URI::urn; # RFC 2141
-
-use strict;
-use warnings;
-
-use parent 'URI';
-
-use Carp qw(carp);
-
-my %implementor;
-
-sub _init {
- my $class = shift;
- my $self = $class->SUPER::_init(@_);
- my $nid = $self->nid;
-
- my $impclass = $implementor{$nid};
- return $impclass->_urn_init($self, $nid) if $impclass;
-
- $impclass = "URI::urn";
- if ($nid =~ /^[A-Za-z\d][A-Za-z\d\-]*\z/) {
- my $id = $nid;
- # make it a legal perl identifier
- $id =~ s/-/_/g;
- $id = "_$id" if $id =~ /^\d/;
-
- $impclass = "URI::urn::$id";
- no strict 'refs';
- unless (@{"${impclass}::ISA"}) {
- # Try to load it
- eval "require $impclass";
- die $@ if $@ && $@ !~ /Can\'t locate.*in \@INC/;
- $impclass = "URI::urn" unless @{"${impclass}::ISA"};
- }
- }
- else {
- carp("Illegal namespace identifier '$nid' for URN '$self'") if $^W;
- }
- $implementor{$nid} = $impclass;
-
- return $impclass->_urn_init($self, $nid);
-}
-
-sub _urn_init {
- my($class, $self, $nid) = @_;
- bless $self, $class;
-}
-
-sub _nid {
- my $self = shift;
- my $opaque = $self->opaque;
- if (@_) {
- my $v = $opaque;
- my $new = shift;
- $v =~ s/[^:]*/$new/;
- $self->opaque($v);
- # XXX possible rebless
- }
- $opaque =~ s/:.*//s;
- return $opaque;
-}
-
-sub nid { # namespace identifier
- my $self = shift;
- my $nid = $self->_nid(@_);
- $nid = lc($nid) if defined($nid);
- return $nid;
-}
-
-sub nss { # namespace specific string
- my $self = shift;
- my $opaque = $self->opaque;
- if (@_) {
- my $v = $opaque;
- my $new = shift;
- if (defined $new) {
- $v =~ s/(:|\z).*/:$new/;
- }
- else {
- $v =~ s/:.*//s;
- }
- $self->opaque($v);
- }
- return undef unless $opaque =~ s/^[^:]*://;
- return $opaque;
-}
-
-sub canonical {
- my $self = shift;
- my $nid = $self->_nid;
- my $new = $self->SUPER::canonical;
- return $new if $nid !~ /[A-Z]/ || $nid =~ /%/;
- $new = $new->clone if $new == $self;
- $new->nid(lc($nid));
- return $new;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/urn/isbn.pm b/Master/tlpkg/tlperl/lib/URI/urn/isbn.pm
deleted file mode 100644
index b335044b885..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/urn/isbn.pm
+++ /dev/null
@@ -1,103 +0,0 @@
-package URI::urn::isbn; # RFC 3187
-
-use strict;
-use warnings;
-
-use parent 'URI::urn';
-
-use Carp qw(carp);
-
-BEGIN {
- require Business::ISBN;
-
- local $^W = 0; # don't warn about dev versions, perl5.004 style
- warn "Using Business::ISBN version " . Business::ISBN->VERSION .
- " which is deprecated.\nUpgrade to Business::ISBN version 2\n"
- if Business::ISBN->VERSION < 2;
- }
-
-sub _isbn {
- my $nss = shift;
- $nss = $nss->nss if ref($nss);
- my $isbn = Business::ISBN->new($nss);
- $isbn = undef if $isbn && !$isbn->is_valid;
- return $isbn;
-}
-
-sub _nss_isbn {
- my $self = shift;
- my $nss = $self->nss(@_);
- my $isbn = _isbn($nss);
- $isbn = $isbn->as_string if $isbn;
- return($nss, $isbn);
-}
-
-sub isbn {
- my $self = shift;
- my $isbn;
- (undef, $isbn) = $self->_nss_isbn(@_);
- return $isbn;
-}
-
-sub isbn_publisher_code {
- my $isbn = shift->_isbn || return undef;
- return $isbn->publisher_code;
-}
-
-BEGIN {
-my $group_method = do {
- local $^W = 0; # don't warn about dev versions, perl5.004 style
- Business::ISBN->VERSION >= 2 ? 'group_code' : 'country_code';
- };
-
-sub isbn_group_code {
- my $isbn = shift->_isbn || return undef;
- return $isbn->$group_method;
-}
-}
-
-sub isbn_country_code {
- my $name = (caller(0))[3]; $name =~ s/.*:://;
- carp "$name is DEPRECATED. Use isbn_group_code instead";
-
- no strict 'refs';
- &isbn_group_code;
-}
-
-BEGIN {
-my $isbn13_method = do {
- local $^W = 0; # don't warn about dev versions, perl5.004 style
- Business::ISBN->VERSION >= 2 ? 'as_isbn13' : 'as_ean';
- };
-
-sub isbn13 {
- my $isbn = shift->_isbn || return undef;
-
- # Business::ISBN 1.x didn't put hyphens in the EAN, and it was just a string
- # Business::ISBN 2.0 doesn't do EAN, but it does ISBN-13 objects
- # and it uses the hyphens, so call as_string with an empty anon array
- # or, adjust the test and features to say that it comes out with hyphens.
- my $thingy = $isbn->$isbn13_method;
- return eval { $thingy->can( 'as_string' ) } ? $thingy->as_string([]) : $thingy;
-}
-}
-
-sub isbn_as_ean {
- my $name = (caller(0))[3]; $name =~ s/.*:://;
- carp "$name is DEPRECATED. Use isbn13 instead";
-
- no strict 'refs';
- &isbn13;
-}
-
-sub canonical {
- my $self = shift;
- my($nss, $isbn) = $self->_nss_isbn;
- my $new = $self->SUPER::canonical;
- return $new unless $nss && $isbn && $nss ne $isbn;
- $new = $new->clone if $new == $self;
- $new->nss($isbn);
- return $new;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/URI/urn/oid.pm b/Master/tlpkg/tlperl/lib/URI/urn/oid.pm
deleted file mode 100644
index cfe7248a315..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/urn/oid.pm
+++ /dev/null
@@ -1,18 +0,0 @@
-package URI::urn::oid; # RFC 2061
-
-use strict;
-use warnings;
-
-use parent 'URI::urn';
-
-sub oid {
- my $self = shift;
- my $old = $self->nss;
- if (@_) {
- $self->nss(join(".", @_));
- }
- return split(/\./, $old) if wantarray;
- return $old;
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate.pm
index 0fd29517265..f939b66d550 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate.pm
@@ -17,7 +17,7 @@ use File::Spec;
no warnings 'utf8';
-our $VERSION = '1.04';
+our $VERSION = '1.12';
our $PACKAGE = __PACKAGE__;
### begin XS only ###
@@ -89,9 +89,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 { "28" }
+sub UCA_Version { "30" }
-sub Base_Unicode_Version { "6.3.0" }
+sub Base_Unicode_Version { "7.0.0" }
######
@@ -99,11 +99,9 @@ sub pack_U {
return pack('U*', @_);
}
-### begin XS only ###
-*unpack_U = exists &Unicode::Collate::bootstrap &&
- $] < 5.008 && \&unpackUfor56 && 0x41 == unpackUfor56('A')
- ? \&unpackUfor56 : sub { return unpack('U*', shift(@_).pack('U*')) };
-### end XS only ###
+sub unpack_U {
+ return unpack('U*', shift(@_).pack('U*'));
+}
######
@@ -117,6 +115,7 @@ our @ChangeOK = qw/
katakana_before_hiragana upper_before_lower ignore_level2
overrideCJK overrideHangul overrideOut preprocess UCA_Version
hangul_terminator variable identical highestFFFF minimalFFFE
+ long_contraction
/;
our @ChangeNG = qw/
@@ -189,6 +188,7 @@ my %DerivCode = (
24 => \&_derivCE_24,
26 => \&_derivCE_24, # 26 == 24
28 => \&_derivCE_24, # 28 == 24
+ 30 => \&_derivCE_24, # 30 == 24
);
sub checkCollator {
@@ -285,6 +285,7 @@ sub new
}
}
+ # only in new(), not in change()
$self->{level} ||= MaxLevel;
$self->{UCA_Version} ||= UCA_Version();
@@ -299,7 +300,10 @@ sub new
if ! exists $self->{rearrange};
$self->{backwards} = $self->{backwardsTable}
if ! exists $self->{backwards};
+ exists $self->{long_contraction} or $self->{long_contraction}
+ = 22 <= $self->{UCA_Version} && $self->{UCA_Version} <= 24;
+ # checkCollator() will be called in change()
$self->checkCollator();
return $self;
@@ -441,12 +445,10 @@ sub parseEntry
$self->{maxlength}{$uv[0]} = @uv;
}
}
- if (@uv > 2) {
- while (@uv) {
- pop @uv;
- my $fake_entry = join(CODE_SEP, @uv); # in JCPS
- $self->{contraction}{$fake_entry} = 1;
- }
+ while (@uv > 2) {
+ pop @uv;
+ my $fake_entry = join(CODE_SEP, @uv); # in JCPS
+ $self->{contraction}{$fake_entry} = 1;
}
}
@@ -486,6 +488,7 @@ sub splitEnt
my $reH = $self->{rearrangeHash};
my $vers = $self->{UCA_Version};
my $ver9 = $vers >= 9 && $vers <= 11;
+ my $long = $self->{long_contraction};
my $uXS = $self->{__useXS}; ### XS only
my @buf;
@@ -566,6 +569,15 @@ sub splitEnt
last unless $curCC;
my $tail = CODE_SEP . $src[$p];
+ if ($preCC != $curCC && $map->{$jcps.$tail}) {
+ $jcps .= $tail;
+ push @out, $p;
+ } else {
+ $preCC = $curCC;
+ }
+
+ next if !$long;
+
if ($preCC_uc != $curCC && ($map->{$jcps_uc.$tail} ||
$cont->{$jcps_uc.$tail})) {
$jcps_uc .= $tail;
@@ -573,16 +585,9 @@ sub splitEnt
} else {
$preCC_uc = $curCC;
}
-
- if ($preCC != $curCC && $map->{$jcps.$tail}) {
- $jcps .= $tail;
- push @out, $p;
- } else {
- $preCC = $curCC;
- }
}
- if ($map->{$jcps_uc}) {
+ if (@out_uc && $map->{$jcps_uc}) {
$jcps = $jcps_uc;
$src[$_] = undef for @out_uc;
} else {
@@ -1068,6 +1073,7 @@ with no parameters, the collator should do the default collation.
ignore_level2 => $bool,
katakana_before_hiragana => $bool,
level => $collationLevel,
+ long_contraction => $bool,
minimalFFFE => $bool,
normalization => $normalization_form,
overrideCJK => \&overrideCJK,
@@ -1091,7 +1097,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 28.
+The following revisions are supported. The default is 30.
UCA Unicode Standard DUCET (@version)
-------------------------------------------------------
@@ -1106,6 +1112,9 @@ The following revisions are supported. The default is 28.
24 6.1.0 6.1.0 (6.1.0)
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)
+
+* See below 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.
@@ -1144,7 +1153,7 @@ forwards at all the levels.
=item entry
--- see 5 Tailoring; 3.6.1 File Format, UTS #10.
+-- see 5 Tailoring; 9.1 Allkeys File Format, UTS #10.
If the same character (or a sequence of characters) exists
in the collation element table through C<table>,
@@ -1261,7 +1270,7 @@ of the string after them (in NFD by default) are used.
=item ignoreName
--- see 3.6.2 Variable Weighting, UTS #10.
+-- see 3.6 Variable Weighting, UTS #10.
Makes the entry in the table completely ignorable;
i.e. as if the weights were zero at all level.
@@ -1322,6 +1331,46 @@ and 'shift-trimmed'), the level 4 may be unreliable.
See also C<identical>.
+=item long_contraction
+
+-- see 3.8.2 Well-Formedness of the DUCET, 4.2 Produce Array, UTS #10.
+
+If the parameter is made true, for a contraction with three or more
+characters (here nicknamed "long contraction"), initial substrings
+will be handled.
+For example, a contraction ABC, where A is a starter, and B and C
+are non-starters (character with non-zero combining character class),
+will be detected even if there is not AB as a contraction.
+
+B<Default:> Usually false.
+If C<UCA_Version> is 22 or 24, and the value of C<long_contraction>
+is not specified in C<new()>, a true value is set implicitly.
+This is a workaround to pass Conformance Tests for Unicode 6.0.0 and 6.1.0.
+
+C<change()> handles C<long_contraction> explicitly only.
+If C<long_contraction> is not specified in C<change()>, even though
+C<UCA_Version> is changed, C<long_contraction> will not be changed.
+
+B<Limitation:> Scanning non-starters is one-way (no back tracking).
+If AB is found but not ABC is not found, other long contraction where
+the first character is A and the second is not B may not be found.
+
+Under C<(normalization =E<gt> undef)>, detection step of discontiguous
+contractions will be skipped.
+
+B<Note:> The following contractions in DUCET are not considered
+in steps S2.1.1 to S2.1.3, where they are discontiguous.
+
+ 0FB2 0F71 0F80 (TIBETAN VOWEL SIGN VOCALIC RR)
+ 0FB3 0F71 0F80 (TIBETAN VOWEL SIGN VOCALIC LL)
+
+For example C<TIBETAN VOWEL SIGN VOCALIC RR> with C<COMBINING TILDE OVERLAY>
+(C<U+0344>) is C<0FB2 0344 0F71 0F80> in NFD.
+In this case C<0FB2 0F80> (C<TIBETAN VOWEL SIGN VOCALIC R>) is detected,
+instead of C<0FB2 0F71 0F80>.
+Inserted C<0344> makes C<0FB2 0F71 0F80> discontiguous and lack of
+contraction C<0FB2 0F71> prohibits C<0FB2 0F71 0F80> from being detected.
+
=item minimalFFFE
-- see 5.14 Collation Elements, UTS #35.
@@ -1615,7 +1664,7 @@ B<NOTE>: Contractions via C<entry> are not be suppressed.
=item table
--- see 3.6 Default Unicode Collation Element Table, UTS #10.
+-- see 3.8 Default Unicode Collation Element Table, UTS #10.
You can use another collation element table if desired.
@@ -1694,7 +1743,7 @@ this parameter doesn't work validly.
=item variable
--- see 3.6.2 Variable Weighting, UTS #10.
+-- see 3.6 Variable Weighting, UTS #10.
This key allows for variable weighting of variable collation elements,
which are marked with an ASTERISK in the table
@@ -2029,7 +2078,7 @@ 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-2013,
+<SADAHIRO@cpan.org>. This module is Copyright(C) 2001-2014,
SADAHIRO Tomoyuki. Japan. All rights reserved.
This module is free software; you can redistribute it and/or
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm
index 2d133fd8b1f..0ea47af2ee7 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm
@@ -2,8 +2,9 @@ package Unicode::Collate::CJK::Big5;
use 5.006;
use strict;
+use warnings;
-our $VERSION = '0.65';
+our $VERSION = '1.12';
my %u2p;
my $wt = 0x8000;
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm
index 18b4cdeff80..8052bfa580c 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm
@@ -2,8 +2,9 @@ package Unicode::Collate::CJK::GB2312;
use 5.006;
use strict;
+use warnings;
-our $VERSION = '0.65';
+our $VERSION = '1.12';
my %u2p;
my $wt = 0x8000;
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm
index 240466ab54c..e8d5f4425d0 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm
@@ -2,8 +2,9 @@ package Unicode::Collate::CJK::JISX0208;
use 5.006;
use strict;
+use warnings;
-our $VERSION = '0.64';
+our $VERSION = '1.12';
my %u2p;
my $wt = 0x8000;
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm
index 9d8e4db61e0..3746d01d4e4 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm
@@ -2,23 +2,24 @@ package Unicode::Collate::CJK::Korean;
use 5.006;
use strict;
+use warnings;
use Unicode::Collate;
-our $VERSION = '1.02';
+our $VERSION = '1.12';
my %jamo2prim = (
- 0x1100, 0x3152, 0x1101, 0x3153, 0x1102, 0x3154, 0x1103, 0x3155,
- 0x1105, 0x3157, 0x1106, 0x3158, 0x1107, 0x3159, 0x1109, 0x315B,
- 0x110A, 0x315C, 0x110B, 0x315D, 0x110C, 0x315E, 0x110E, 0x3160,
- 0x110F, 0x3161, 0x1110, 0x3162, 0x1111, 0x3163, 0x1112, 0x3164,
- 0x1161, 0x31D0, 0x1162, 0x31D1, 0x1163, 0x31D2, 0x1165, 0x31D4,
- 0x1166, 0x31D5, 0x1167, 0x31D6, 0x1168, 0x31D7, 0x1169, 0x31D8,
- 0x116A, 0x31D9, 0x116B, 0x31DA, 0x116C, 0x31DB, 0x116D, 0x31DC,
- 0x116E, 0x31DD, 0x116F, 0x31DE, 0x1170, 0x31DF, 0x1171, 0x31E0,
- 0x1172, 0x31E1, 0x1173, 0x31E2, 0x1174, 0x31E3, 0x1175, 0x31E4,
- 0x11A8, 0x322E, 0x11AB, 0x3231, 0x11AF, 0x3235, 0x11B7, 0x323D,
- 0x11B8, 0x323E, 0x11BC, 0x3242, 0x11BD, 0x3243,
-); # for DUCET v6.3.0
+ 0x1100, 0x376F, 0x1101, 0x3770, 0x1102, 0x3771, 0x1103, 0x3772,
+ 0x1105, 0x3774, 0x1106, 0x3775, 0x1107, 0x3776, 0x1109, 0x3778,
+ 0x110A, 0x3779, 0x110B, 0x377A, 0x110C, 0x377B, 0x110E, 0x377D,
+ 0x110F, 0x377E, 0x1110, 0x377F, 0x1111, 0x3780, 0x1112, 0x3781,
+ 0x1161, 0x37ED, 0x1162, 0x37EE, 0x1163, 0x37EF, 0x1165, 0x37F1,
+ 0x1166, 0x37F2, 0x1167, 0x37F3, 0x1168, 0x37F4, 0x1169, 0x37F5,
+ 0x116A, 0x37F6, 0x116B, 0x37F7, 0x116C, 0x37F8, 0x116D, 0x37F9,
+ 0x116E, 0x37FA, 0x116F, 0x37FB, 0x1170, 0x37FC, 0x1171, 0x37FD,
+ 0x1172, 0x37FE, 0x1173, 0x37FF, 0x1174, 0x3800, 0x1175, 0x3801,
+ 0x11A8, 0x384B, 0x11AB, 0x384E, 0x11AF, 0x3852, 0x11B7, 0x385A,
+ 0x11B8, 0x385B, 0x11BC, 0x385F, 0x11BD, 0x3860,
+); # for DUCET v7.0.0
my(%u2e, $prim, $wt);
while (<DATA>) {
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm
index d3d99412378..b8f3976caa3 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm
@@ -2,8 +2,9 @@ package Unicode::Collate::CJK::Pinyin;
use 5.006;
use strict;
+use warnings;
-our $VERSION = '0.85';
+our $VERSION = '1.12';
my %u2p;
my $wt = 0x8000;
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm
index 7d02623dc7f..a7f7526826e 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm
@@ -2,8 +2,9 @@ package Unicode::Collate::CJK::Stroke;
use 5.006;
use strict;
+use warnings;
-our $VERSION = '0.94';
+our $VERSION = '1.12';
my %u2p;
my $wt = 0x8000;
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm
index f7f288e9935..9e5ced0f9f3 100755
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm
@@ -2,8 +2,9 @@ package Unicode::Collate::CJK::Zhuyin;
use 5.006;
use strict;
+use warnings;
-our $VERSION = '0.94';
+our $VERSION = '1.12';
my %u2p;
my $wt = 0x8000;
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm
index a9d043aba38..184ab6c7da5 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm
@@ -1,10 +1,11 @@
package Unicode::Collate::Locale;
use strict;
+use warnings;
use Carp;
use base qw(Unicode::Collate);
-our $VERSION = '1.02';
+our $VERSION = '1.12';
my $PL_EXT = '.pl';
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl
index 5d75631db3d..f962e61700b 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl
@@ -1,6 +1,6 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0149 ; [.174B.0020.0009] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+ locale_version => 1.12,
+ entry => <<'ENTRY', # for DUCET v7.0.0
+0149 ; [.1A7D.0020.0009] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl
index 2aeedf73211..c5eef3195a2 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl
@@ -1,15 +1,15 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0629 ; [.1CA7.0021.0002] # ARABIC LETTER TEH MARBUTA
-FE94 ; [.1CA7.0021.0019] # ARABIC LETTER TEH MARBUTA FINAL FORM
-FE93 ; [.1CA7.0021.001A] # ARABIC LETTER TEH MARBUTA ISOLATED FORM
-0649 ; [.1D44.0021.0002] # ARABIC LETTER ALEF MAKSURA
-FBE8 ; [.1D44.0021.0017] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
-FBE9 ; [.1D44.0021.0018] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
-FEF0 ; [.1D44.0021.0019] # ARABIC LETTER ALEF MAKSURA FINAL FORM
-FEEF ; [.1D44.0021.001A] # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
-FC90 ; [.1D44.0021.001B] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
-FC5D ; [.1D44.0021.001C] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl
index fa69f99fdcb..a7efd2a033c 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl
@@ -1,13 +1,13 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0982 ; [.2047.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
-0981 ; [.2047.0020.0002][.FFF2.0000.0000] # BENGALI SIGN CANDRABINDU
-0983 ; [.2047.0020.0002][.FFF3.0000.0000] # BENGALI SIGN VISARGA
-0994 ; [.2047.0020.0002][.FFF0.0000.0000] # BENGALI LETTER AU
-09A4 09CD 200D ; [.2056.0020.0002][.FFF1.0000.0000] # <BENGALI LETTER TA, BENGALI SIGN VIRAMA, ZERO WIDTH JOINER>
-09A3 ; [.2056.0020.0002][.FFF0.0000.0000] # BENGALI LETTER NNA
-0995 09CD 09B7 ; [.2069.0020.0002][.FFF1.0000.0000] # <BENGALI LETTER KA, BENGALI SIGN VIRAMA, BENGALI LETTER SSA>
-09B9 ; [.2069.0020.0002][.FFF0.0000.0000] # BENGALI LETTER HA
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl
index 1ff085fac17..09f159b1701 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl
@@ -1,51 +1,51 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
# schwa doesn't require tailoring
- entry => <<'ENTRY', # for DUCET v6.3.0
-00E7 ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
-0063 0327 ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
-00C7 ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-0043 0327 ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-011F ; [.168E.0020.0002] # LATIN SMALL LETTER G WITH BREVE
-0067 0306 ; [.168E.0020.0002] # LATIN SMALL LETTER G WITH BREVE
-011E ; [.168E.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
-0047 0306 ; [.168E.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
-0131 ; [.16C8.0020.0002] # LATIN SMALL LETTER DOTLESS I
-0049 ; [.16C8.0020.0008] # LATIN CAPITAL LETTER I
-00CC ; [.16C8.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
-00CD ; [.16C8.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
-00CE ; [.16C8.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-00CF ; [.16C8.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
-012A ; [.16C8.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
-012C ; [.16C8.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
-012E ; [.16C8.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
-0130 ; [.16C9.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-0049 0307 ; [.16C9.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-00F6 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.176E.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.176E.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-015F ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-0073 0327 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-015E ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-0053 0327 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-00FC ; [.1833.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1833.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1833.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1833.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1833.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1833.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1833.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1833.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1833.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1833.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1833.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1833.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0071 ; [.16FC.0020.0002] # LATIN SMALL LETTER Q
-0051 ; [.16FC.0020.0008] # LATIN CAPITAL LETTER Q
-0078 ; [.16B1.0020.0002] # LATIN SMALL LETTER X
-0058 ; [.16B1.0020.0008] # LATIN CAPITAL LETTER X
+ 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
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl
index 40477b724d0..8c2af06574a 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl
@@ -1,43 +1,43 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
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 v6.3.0
-0451 ; [.19D6.0020.0002] # CYRILLIC SMALL LETTER IO
-0435 0308 ; [.19D6.0020.0002] # CYRILLIC SMALL LETTER IO
-0401 ; [.19D6.0020.0008] # CYRILLIC CAPITAL LETTER IO
-0415 0308 ; [.19D6.0020.0008] # CYRILLIC CAPITAL LETTER IO
-04D1 ; [.198D.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.198D.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.198D.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.198D.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1999.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1999.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.19AD.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.19AD.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.19D5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.19D5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.19E1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.19E1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.19EE.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.19EE.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0457 ; [.1A12.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1A12.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-04E7 ; [.1A73.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1A73.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1A7B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1A7B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1A24.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1A24.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-04F5 ; [.1B08.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1B08.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1B3B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1B3B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1B50.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1B50.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1B86.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1B86.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bg.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bg.pl
index 20160941ea4..645125ce0c6 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bg.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bg.pl
@@ -1,45 +1,45 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
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 v6.3.0
-04D1 ; [.198D.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.198D.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.198D.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.198D.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1999.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1999.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.19AD.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.19AD.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.19D5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.19D5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.19E1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.19E1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.19EE.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.19EE.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0457 ; [.1A12.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1A12.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-04E7 ; [.1A73.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1A73.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1A7B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1A7B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1A24.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1A24.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1AB5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1AB5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1AB5.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1AB5.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1AB5.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1AB5.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1B08.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1B08.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1B3B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1B3B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1B50.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1B50.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1B86.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1B86.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ 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/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl
index cd787241952..a876406ad88 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0982 ; [.2047.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
-0983 ; [.2047.0020.0002][.FFF2.0000.0000] # BENGALI SIGN VISARGA
-0981 ; [.2047.0020.0002][.FFF3.0000.0000] # BENGALI SIGN CANDRABINDU
-0994 ; [.2047.0020.0002][.FFF0.0000.0000] # BENGALI LETTER AU
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl
index 62ae06c4b91..308c68f305f 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl
@@ -1,18 +1,18 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
backwards => 2,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0063 0068 ; [.161A.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0063 0048 ; [.161A.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
-0043 0068 ; [.161A.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.161A.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-006C 006C ; [.170E.0020.0002][.0000.0000.0001] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
-006C 00B7 006C ; [.170E.0020.0002][.0000.0000.0007] # <LATIN SMALL LETTER L, MIDDLE DOT, LATIN SMALL LETTER L>
-006C 004C ; [.170E.0020.0007][.0000.0000.0002][.0000.0000.0001] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L>
-006C 00B7 004C ; [.170E.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER L, MIDDLE DOT, LATIN CAPITAL LETTER L>
-004C 006C ; [.170E.0020.0007][.0000.0000.0008][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
-004C 00B7 006C ; [.170E.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER L, MIDDLE DOT, LATIN SMALL LETTER L>
-004C 004C ; [.170E.0020.0008][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
-004C 00B7 004C ; [.170E.0020.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER L, MIDDLE DOT, LATIN CAPITAL LETTER L>
+ 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>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl
index ea6ae02514c..f75d2668a40 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl
@@ -1,25 +1,25 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-010D ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0063 0068 ; [.16B1.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0063 0048 ; [.16B1.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
-0043 0068 ; [.16B1.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.16B1.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-0159 ; [.17BA.0020.0002] # LATIN SMALL LETTER R WITH CARON
-0072 030C ; [.17BA.0020.0002] # LATIN SMALL LETTER R WITH CARON
-0158 ; [.17BA.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
-0052 030C ; [.17BA.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
-0161 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1892.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1892.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1892.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1892.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl
index c96dc1d4fff..4449bcd641c 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl
@@ -1,29 +1,29 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0063 0068 ; [.161A.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0043 0068 ; [.161A.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.161A.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-0064 0064 ; [.162E.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D>
-0044 0064 ; [.162E.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D>
-0044 0044 ; [.162E.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D>
-0066 0066 ; [.1681.0020.0002] # <LATIN SMALL LETTER F, LATIN SMALL LETTER F>
-0046 0066 ; [.1681.0020.0007] # <LATIN CAPITAL LETTER F, LATIN SMALL LETTER F>
-0046 0046 ; [.1681.0020.0008] # <LATIN CAPITAL LETTER F, LATIN CAPITAL LETTER F>
-006E 0067 ; [.168E.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
-004E 0067 ; [.168E.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
-004E 0047 ; [.168E.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
-006C 006C ; [.170E.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
-004C 006C ; [.170E.0020.0007] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
-004C 004C ; [.170E.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
-0070 0068 ; [.1793.0020.0002] # <LATIN SMALL LETTER P, LATIN SMALL LETTER H>
-0050 0068 ; [.1793.0020.0007] # <LATIN CAPITAL LETTER P, LATIN SMALL LETTER H>
-0050 0048 ; [.1793.0020.0008] # <LATIN CAPITAL LETTER P, LATIN CAPITAL LETTER H>
-0072 0068 ; [.17BA.0020.0002] # <LATIN SMALL LETTER R, LATIN SMALL LETTER H>
-0052 0068 ; [.17BA.0020.0007] # <LATIN CAPITAL LETTER R, LATIN SMALL LETTER H>
-0052 0048 ; [.17BA.0020.0008] # <LATIN CAPITAL LETTER R, LATIN CAPITAL LETTER H>
-0074 0068 ; [.1813.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER H>
-0054 0068 ; [.1813.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER H>
-0054 0048 ; [.1813.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER H>
+ locale_version => 1.12,
+ 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>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl
index d6c5da82f59..2e5097170aa 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl
@@ -1,78 +1,78 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
upper_before_lower => 1,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0111 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.162D.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.162D.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.162D.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1812.0020.0003][.16B0.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1812.0020.0009][.16B0.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.187C.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.187C.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.187C.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.187C.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.187C.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.187C.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.187C.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.187C.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1902.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1902.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1902.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1902.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1902.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1902.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1902.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1902.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1902.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1902.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1902.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1902.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1902.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1902.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1903.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1903.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1903.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1903.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1903.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1903.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1903.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1903.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1903.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1903.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1903.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1903.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1903.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1903.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1903.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1903.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1903.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1903.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1904.0020.0002][.0000.0000.0001] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1904.0020.0002][.0000.0000.0001] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1904.0020.0008][.0000.0000.0001] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1904.0020.0008][.0000.0000.0001] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1904.0020.0008][.0000.0000.0001] # ANGSTROM SIGN
-01FB ; [.1904.0020.0002][.0000.0000.0001][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1904.0020.0008][.0000.0000.0001][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0061 0061 ; [.1904.0020.0002][.0000.0000.0007] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-0041 0061 ; [.1904.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
-0061 0041 ; [.1904.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER A, LATIN CAPITAL LETTER A>
-0041 0041 ; [.1904.0020.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
+ 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
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl
index 0bd202b4e8e..00daa92e097 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl
@@ -1,29 +1,29 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-00E4 ; [.15EB.0021.0002][.1648.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.15EB.0021.0002][.1648.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.15EB.0021.0008][.1648.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.15EB.0021.0008][.1648.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.15EB.0021.0002][.1648.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.15EB.0021.0008][.1648.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00F6 ; [.176D.0021.0002][.1648.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.176D.0021.0002][.1648.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.176D.0021.0008][.1648.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.176D.0021.0008][.1648.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.176D.0021.0002][.1648.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.176D.0021.0008][.1648.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00FC ; [.1832.0021.0002][.1648.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1832.0021.0002][.1648.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1832.0021.0008][.1648.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1832.0021.0008][.1648.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1832.0021.0002][.1648.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1832.0021.0008][.1648.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1832.0021.0002][.1648.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1832.0021.0008][.1648.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1832.0021.0002][.1648.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1832.0021.0008][.1648.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1832.0021.0002][.1648.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1832.0021.0008][.1648.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl
index ed2e548e679..4ac1b91ba01 100755
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl
@@ -1,36 +1,36 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
# d-tail, open-e, f-hook, gamma, eng, open-o, v-hook don't require tailoring
- entry => <<'ENTRY', # for DUCET v6.3.0
+ entry => <<'ENTRY', # for DUCET v7.0.0
0302 ; [.0000.0029.0002] # COMBINING CIRCUMFLEX ACCENT
-00E2 ; [.15EB.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00C2 ; [.15EB.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-00EA ; [.1648.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.1648.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-00EE ; [.16C9.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
-00CE ; [.16C9.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-00F4 ; [.176D.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.176D.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-00FB ; [.1832.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX
-00DB ; [.1832.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-0177 ; [.187C.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER Y WITH CIRCUMFLEX
-0176 ; [.187C.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-0064 007A ; [.162E.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
-0044 007A ; [.162E.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
-0044 005A ; [.162E.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
-0067 0062 ; [.168E.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
-0047 0062 ; [.168E.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
-0047 0042 ; [.168E.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
-0078 ; [.16B1.0020.0002] # LATIN SMALL LETTER X
-0058 ; [.16B1.0020.0008] # LATIN CAPITAL LETTER X
-006B 0070 ; [.16FC.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER P>
-004B 0070 ; [.16FC.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER P>
-004B 0050 ; [.16FC.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER P>
-006E 0079 ; [.174C.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-004E 0079 ; [.174C.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 0059 ; [.174C.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-0074 0073 ; [.1813.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER S>
-0054 0073 ; [.1813.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER S>
-0054 0053 ; [.1813.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER S>
+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>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl
index 857480c7599..bdecddb2c80 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl
@@ -1,29 +1,29 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0109 ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
-0063 0302 ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
-0108 ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-0043 0302 ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-011D ; [.168E.0020.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
-0067 0302 ; [.168E.0020.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
-011C ; [.168E.0020.0008] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-0047 0302 ; [.168E.0020.0008] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-0125 ; [.16B1.0020.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
-0068 0302 ; [.16B1.0020.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
-0124 ; [.16B1.0020.0008] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-0048 0302 ; [.16B1.0020.0008] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-0135 ; [.16E3.0020.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
-006A 0302 ; [.16E3.0020.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
-0134 ; [.16E3.0020.0008] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-004A 0302 ; [.16E3.0020.0008] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-015D ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
-0073 0302 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
-015C ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-0053 0302 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-016D ; [.1833.0020.0002] # LATIN SMALL LETTER U WITH BREVE
-0075 0306 ; [.1833.0020.0002] # LATIN SMALL LETTER U WITH BREVE
-016C ; [.1833.0020.0008] # LATIN CAPITAL LETTER U WITH BREVE
-0055 0306 ; [.1833.0020.0008] # LATIN CAPITAL LETTER U WITH BREVE
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl
index 0d1e1d460a9..c1515723edf 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-00F1 ; [.174C.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-006E 0303 ; [.174C.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.174C.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.174C.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl
index 8c035aa3685..cc1bdfc03aa 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl
@@ -1,15 +1,15 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0063 0068 ; [.161A.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0043 0068 ; [.161A.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.161A.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-006C 006C ; [.170E.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
-004C 006C ; [.170E.0020.0007] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
-004C 004C ; [.170E.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
-00F1 ; [.174C.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-006E 0303 ; [.174C.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.174C.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.174C.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl
index 5814e273612..8611cc5f080 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl
@@ -1,53 +1,53 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0161 ; [.180F.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.180F.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.180F.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.180F.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-007A ; [.1810.0020.0002] # LATIN SMALL LETTER Z
-005A ; [.1810.0020.0008] # LATIN CAPITAL LETTER Z
-017E ; [.1811.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1811.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1811.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1811.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-0077 ; [.185B.0021.0002] # LATIN SMALL LETTER W
-0057 ; [.185B.0021.0008] # LATIN CAPITAL LETTER W
-00F5 ; [.1873.0020.0002] # LATIN SMALL LETTER O WITH TILDE
-006F 0303 ; [.1873.0020.0002] # LATIN SMALL LETTER O WITH TILDE
-00D5 ; [.1873.0020.0008] # LATIN CAPITAL LETTER O WITH TILDE
-004F 0303 ; [.1873.0020.0008] # LATIN CAPITAL LETTER O WITH TILDE
-1E4D ; [.1873.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4C ; [.1873.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-022D ; [.1873.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
-022C ; [.1873.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-1E4F ; [.1873.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E4E ; [.1873.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-1EE1 ; [.1873.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE0 ; [.1873.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-00E4 ; [.1874.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1874.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1874.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1874.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1874.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1874.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00F6 ; [.1875.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1875.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1875.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1875.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1875.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1875.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00FC ; [.1876.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1876.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1876.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1876.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1876.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1876.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1876.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1876.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1876.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1876.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1876.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1876.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl
index 335848f725b..f68dfd9b153 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl
@@ -1,51 +1,51 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
+ locale_version => 1.12,
+ entry => <<'ENTRY', # for DUCET v7.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 ; [.1C97.0020.0002][.FFF1.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
-0627 0653 ; [.1C97.0020.0002][.FFF1.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
-08AC ; [.1C97.0020.0002][.FFF0.0000.0000] # ARABIC LETTER ROHINGYA YEH
-0671 ; [.1C98.0021.0002] # ARABIC LETTER ALEF WASLA
-0621 ; [.1C99.0020.0002][.FFF0.0000.0000] # ARABIC LETTER HAMZA
-0623 ; [.1C99.0021.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0627 0654 ; [.1C99.0021.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0672 ; [.1C99.0022.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
-0625 ; [.1C99.0023.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA BELOW
-0627 0655 ; [.1C99.0023.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA BELOW
-0673 ; [.1C99.0024.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
-0624 ; [.1C99.0025.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
-0648 0654 ; [.1C99.0025.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
-06CC 0654 ; [.1C99.0026.0002][.FFF0.0000.0000] # <ARABIC LETTER FARSI YEH, ARABIC HAMZA ABOVE>
-0649 0654 ; [.1C99.0026.0003][.FFF0.0000.0000] # <ARABIC LETTER ALEF MAKSURA, ARABIC HAMZA ABOVE>
-0626 ; [.1C99.0026.0004][.FFF0.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
-064A 0654 ; [.1C99.0026.0004][.FFF0.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
-066E ; [.1C99.0020.0002][.FFF1.0000.0000] # ARABIC LETTER DOTLESS BEH
-06AA ; [.1D0A.0021.0002] # ARABIC LETTER SWASH KAF
-06AB ; [.1D0A.0022.0002] # ARABIC LETTER KAF WITH RING
-0643 ; [.1D0A.0023.0002] # ARABIC LETTER KAF
-06AC ; [.1D0A.0024.0002] # ARABIC LETTER KAF WITH DOT ABOVE
-06AD ; [.1D0A.0025.0002] # ARABIC LETTER NG
-06AE ; [.1D0A.0026.0002] # ARABIC LETTER KAF WITH THREE DOTS BELOW
-0647 ; [.1D3F.0020.0002][.FFF1.0000.0000] # ARABIC LETTER HEH
-06D5 ; [.1D3F.0021.0002][.FFF1.0000.0000] # ARABIC LETTER AE
-06C1 ; [.1D3F.0022.0002][.FFF1.0000.0000] # ARABIC LETTER HEH GOAL
-06C2 ; [.1D3F.0022.0002][.FFF1.0000.0000][.0000.0083.0002] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-0629 ; [.1D3F.0023.0002][.FFF1.0000.0000] # ARABIC LETTER TEH MARBUTA
-06C3 ; [.1D3F.0024.0002][.FFF1.0000.0000] # ARABIC LETTER TEH MARBUTA GOAL
-06C0 ; [.1D3F.0025.0002][.FFF1.0000.0000] # ARABIC LETTER HEH WITH YEH ABOVE
-06D5 0654 ; [.1D3F.0025.0002][.FFF1.0000.0000] # ARABIC LETTER HEH WITH YEH ABOVE
-06BE ; [.1D3F.0026.0002][.FFF1.0000.0000] # ARABIC LETTER HEH DOACHASHMEE
-06CF ; [.1D3F.0020.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH DOT ABOVE
-0649 ; [.1D45.0021.0002] # ARABIC LETTER ALEF MAKSURA
-06D2 ; [.1D45.0022.0002] # ARABIC LETTER YEH BARREE
-06D3 ; [.1D45.0022.0002][.0000.0083.0002] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-064A ; [.1D45.0023.0002] # ARABIC LETTER YEH
-06D0 ; [.1D45.0024.0002] # ARABIC LETTER E
-06D1 ; [.1D45.0025.0002] # ARABIC LETTER YEH WITH THREE DOTS BELOW
-06CD ; [.1D45.0026.0002] # ARABIC LETTER YEH WITH TAIL
-06CE ; [.1D45.0027.0002] # ARABIC LETTER YEH WITH SMALL V
+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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl
index 8d1a3f6f819..65211cc814a 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl
@@ -1,65 +1,65 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
# in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ?
- entry => <<'ENTRY', # for DUCET v6.3.0
-0111 ; [.162D.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.162D.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
-01E5 ; [.168D.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER G WITH STROKE
-01E4 ; [.168D.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER G WITH STROKE
-014B ; [.174B.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER ENG
-014A ; [.174B.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER ENG
-0167 ; [.1812.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER T WITH STROKE
-0166 ; [.1812.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER T WITH STROKE
-0077 ; [.185B.0021.0002] # LATIN SMALL LETTER W
-0057 ; [.185B.0021.0008] # LATIN CAPITAL LETTER W
-00FC ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.187C.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.187C.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.187C.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.187C.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.187C.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.187C.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.187C.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.187C.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0292 ; [.1891.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER EZH
-01B7 ; [.1891.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER EZH
-01EF ; [.1891.0021.0002][.0000.0039.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
-01EE ; [.1891.0021.0008][.0000.0039.0002][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
-00E5 ; [.1902.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1902.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1902.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1902.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1902.0020.0008] # ANGSTROM SIGN
-01FB ; [.1902.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1902.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.1903.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1903.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1903.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1903.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1903.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1903.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E6 ; [.1903.0021.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1903.0021.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1903.0021.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1903.0021.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1903.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1903.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1903.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1903.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00F6 ; [.1904.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1904.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1904.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1904.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1904.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1904.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1904.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1904.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1904.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1904.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1904.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1904.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+ 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
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl
index 738d95aadb8..aa8335e5047 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl
@@ -1,63 +1,63 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
# in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ?
- entry => <<'ENTRY', # for DUCET v6.3.0
-0111 ; [.162D.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.162D.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
-01E5 ; [.168D.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER G WITH STROKE
-01E4 ; [.168D.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER G WITH STROKE
-014B ; [.174B.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER ENG
-014A ; [.174B.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER ENG
-0167 ; [.1812.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER T WITH STROKE
-0166 ; [.1812.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER T WITH STROKE
-00FC ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.187C.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.187C.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.187C.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.187C.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.187C.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.187C.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.187C.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.187C.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0292 ; [.1891.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER EZH
-01B7 ; [.1891.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER EZH
-01EF ; [.1891.0021.0002][.0000.0039.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
-01EE ; [.1891.0021.0008][.0000.0039.0002][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
-00E5 ; [.1902.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1902.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1902.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1902.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1902.0020.0008] # ANGSTROM SIGN
-01FB ; [.1902.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1902.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.1903.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1903.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1903.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1903.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1903.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1903.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E6 ; [.1903.0021.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1903.0021.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1903.0021.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1903.0021.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1903.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1903.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1903.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1903.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00F6 ; [.1904.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1904.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1904.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1904.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1904.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1904.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1904.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1904.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1904.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1904.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1904.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1904.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+ 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
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl
index 11991c9f311..e0a3bf8adae 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl
@@ -1,12 +1,12 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-00F1 ; [.174C.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-006E 0303 ; [.174C.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.174C.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.174C.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-006E 0067 ; [.174D.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
-004E 0067 ; [.174D.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
-004E 0047 ; [.174D.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
+ locale_version => 1.12,
+ 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>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl
index 38f398c2b0d..0f8e8e09309 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl
@@ -1,77 +1,77 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0111 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.162D.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.162D.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.162D.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1812.0020.0003][.16B0.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1812.0020.0009][.16B0.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.187C.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.187C.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.187C.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.187C.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.187C.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.187C.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.187C.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.187C.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1902.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1902.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1902.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1902.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1902.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1902.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1902.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1902.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1902.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1902.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1902.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1902.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1902.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1902.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1903.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1903.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1903.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1903.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1903.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1903.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1903.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1903.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1903.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1903.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1903.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1903.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1903.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1903.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1903.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1903.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1903.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1903.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1904.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1904.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1904.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1904.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1904.0020.0008] # ANGSTROM SIGN
-01FB ; [.1904.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1904.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0061 0061 ; [.1904.0020.001C][.0000.0000.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-0061 0041 ; [.1904.0020.001C][.0000.0000.0008] # <LATIN SMALL LETTER A, LATIN CAPITAL LETTER A>
-0041 0061 ; [.1904.0020.001D][.0000.0000.0002] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
-0041 0041 ; [.1904.0020.001D][.0000.0000.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
+ locale_version => 1.12,
+ 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>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr.pl
index aa464f8153f..b5083bd6307 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr.pl
@@ -1,4 +1,4 @@
+{
- locale_version => 0.87,
+ locale_version => 1.12,
backwards => 2,
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl
index 63d6eb55ade..6984e21438c 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0A82 ; [.20B3.0020.0002][.FFF1.0000.0000] # GUJARATI SIGN ANUSVARA
-0A81 ; [.20B3.0021.0002][.FFF1.0000.0000] # GUJARATI SIGN CANDRABINDU
-0A83 ; [.20B3.0020.0002][.FFF2.0000.0000] # GUJARATI SIGN VISARGA
-0AD0 ; [.20B3.0020.0002][.FFF0.0000.0000] # GUJARATI OM
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl
index 5adccf413f2..244d693356e 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl
@@ -1,16 +1,16 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
# b-hook, d-hook, k-hook, y-hook don't require tailoring
- entry => <<'ENTRY', # for DUCET v6.3.0
-0073 0068 ; [.17F0.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
-0053 0068 ; [.17F0.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
-0053 0048 ; [.17F0.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
-0074 0073 ; [.1813.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER S>
-0054 0073 ; [.1813.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER S>
-0054 0053 ; [.1813.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER S>
-02BC 0079 ; [.1888.0020.0003] # <MODIFIER LETTER APOSTROPHE, LATIN SMALL LETTER Y>
-02BC 0059 ; [.1888.0020.0009] # <MODIFIER LETTER APOSTROPHE, LATIN CAPITAL LETTER Y>
-0027 0079 ; [.1888.0020.0004] # <APOSTROPHE, LATIN SMALL LETTER Y>
-0027 0059 ; [.1888.0020.000A] # <APOSTROPHE, LATIN CAPITAL LETTER Y>
+ 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
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl
index c2913e96e3c..059b55ff76d 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl
@@ -1,37 +1,37 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0065 ; [.15EC.0020.0002] # LATIN SMALL LETTER E
-0045 ; [.15EC.0020.0008] # LATIN CAPITAL LETTER E
-0069 ; [.15ED.0020.0002] # LATIN SMALL LETTER I
-0049 ; [.15ED.0020.0008] # LATIN CAPITAL LETTER I
-006F ; [.15EE.0020.0002] # LATIN SMALL LETTER O
-004F ; [.15EE.0020.0008] # LATIN CAPITAL LETTER O
-0075 ; [.15EF.0020.0002] # LATIN SMALL LETTER U
-0055 ; [.15EF.0020.0008] # LATIN CAPITAL LETTER U
-0068 ; [.15F0.0020.0002] # LATIN SMALL LETTER H
-0048 ; [.15F0.0020.0008] # LATIN CAPITAL LETTER H
-006B ; [.15F1.0020.0002] # LATIN SMALL LETTER K
-004B ; [.15F1.0020.0008] # LATIN CAPITAL LETTER K
-212A ; [.15F1.0020.0008] # KELVIN SIGN
-006C ; [.15F2.0020.0002] # LATIN SMALL LETTER L
-004C ; [.15F2.0020.0008] # LATIN CAPITAL LETTER L
-006D ; [.15F3.0020.0002] # LATIN SMALL LETTER M
-004D ; [.15F3.0020.0008] # LATIN CAPITAL LETTER M
-006E ; [.15F4.0020.0002] # LATIN SMALL LETTER N
-004E ; [.15F4.0020.0008] # LATIN CAPITAL LETTER N
-0070 ; [.15F5.0020.0002] # LATIN SMALL LETTER P
-0050 ; [.15F5.0020.0008] # LATIN CAPITAL LETTER P
-0077 ; [.15F6.0020.0002] # LATIN SMALL LETTER W
-0057 ; [.15F6.0020.0008] # LATIN CAPITAL LETTER W
-02BB ; [.15F7.0020.0002] # MODIFIER LETTER TURNED COMMA
-0113 ; [.15EC.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.15EC.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER E WITH MACRON
-012B ; [.15ED.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.15ED.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
-014D ; [.15EE.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.15EE.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH MACRON
-016B ; [.15EF.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.15EF.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH MACRON
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl
index bb5ec06e182..0b72a65b271 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0902 ; [.1FD8.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
-0901 ; [.1FD8.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
-0903 ; [.1FD8.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
-0950 ; [.1FD8.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl
index 8c00e2368b9..2a8e8feb516 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl
@@ -1,48 +1,48 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-010D ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0107 ; [.161B.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0063 0301 ; [.161B.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0063 0341 ; [.161B.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0106 ; [.161B.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0043 0301 ; [.161B.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0043 0341 ; [.161B.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0064 017E ; [.162E.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z WITH CARON>
-01C6 ; [.162E.0020.0003] # LATIN SMALL LETTER DZ WITH CARON
-0044 017E ; [.162E.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z WITH CARON>
-01C5 ; [.162E.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-0044 017D ; [.162E.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z WITH CARON>
-01C4 ; [.162E.0020.0009] # LATIN CAPITAL LETTER DZ WITH CARON
-0064 007A 030C ; [.162E.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
-0044 007A 030C ; [.162E.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
-0044 005A 030C ; [.162E.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, COMBINING CARON>
-0111 ; [.162F.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.162F.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.162F.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.162F.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-006C 006A ; [.170E.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER J>
-01C9 ; [.170E.0020.0003] # LATIN SMALL LETTER LJ
-004C 006A ; [.170E.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER J>
-01C8 ; [.170E.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER L WITH SMALL LETTER J
-004C 004A ; [.170E.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER J>
-01C7 ; [.170E.0020.0009] # LATIN CAPITAL LETTER LJ
-006E 006A ; [.174C.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER J>
-01CC ; [.174C.0020.0003] # LATIN SMALL LETTER NJ
-004E 006A ; [.174C.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER J>
-01CB ; [.174C.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER N WITH SMALL LETTER J
-004E 004A ; [.174C.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J>
-01CA ; [.174C.0020.0009] # LATIN CAPITAL LETTER NJ
-0161 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1892.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1892.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1892.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1892.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl
index 085af563560..c5e8ca0e649 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl
@@ -1,151 +1,151 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0063 0073 ; [.161A.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER S>
-0063 0053 ; [.161A.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
-0043 0073 ; [.161A.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
-0043 0053 ; [.161A.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
-0064 007A ; [.162E.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
-0064 005A ; [.162E.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
-0044 007A ; [.162E.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
-0044 005A ; [.162E.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
-0064 007A 0073 ; [.162F.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0064 007A 0053 ; [.162F.0020.0007][.0000.0000.0002][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0064 005A 0073 ; [.162F.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0064 005A 0053 ; [.162F.0020.0007][.0000.0000.0002][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0044 007A 0073 ; [.162F.0020.0007][.0000.0000.0008][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0044 007A 0053 ; [.162F.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0044 005A 0073 ; [.162F.0020.0007][.0000.0000.0008][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0044 005A 0053 ; [.162F.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0067 0079 ; [.168E.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
-0067 0059 ; [.168E.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
-0047 0079 ; [.168E.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
-0047 0059 ; [.168E.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
-006C 0079 ; [.170E.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
-006C 0059 ; [.170E.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
-004C 0079 ; [.170E.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
-004C 0059 ; [.170E.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
-006E 0079 ; [.174C.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-006E 0059 ; [.174C.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
-004E 0079 ; [.174C.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 0059 ; [.174C.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-0073 007A ; [.17F0.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
-0073 005A ; [.17F0.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
-0053 007A ; [.17F0.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
-0053 005A ; [.17F0.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
-0074 0079 ; [.1813.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
-0074 0059 ; [.1813.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
-0054 0079 ; [.1813.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
-0054 0059 ; [.1813.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
-007A 0073 ; [.1892.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-007A 0053 ; [.1892.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-005A 0073 ; [.1892.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-005A 0053 ; [.1892.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-00F6 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.176E.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.176E.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.176E.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.176E.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.176E.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.176E.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-00FC ; [.1833.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1833.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1833.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1833.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1833.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1833.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1833.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1833.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1833.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1833.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1833.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1833.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1833.0021.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1833.0021.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1833.0021.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1833.0021.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0063 0063 0073 ; [.161A.0020.0002][.161A.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER C, LATIN SMALL LETTER S>
-0063 0063 0053 ; [.161A.0020.0002][.161A.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
-0063 0043 0073 ; [.161A.0020.0002][.161A.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
-0063 0043 0053 ; [.161A.0020.0002][.161A.0020.0008] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
-0043 0063 0073 ; [.161A.0020.0008][.161A.0020.0002] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER C, LATIN SMALL LETTER S>
-0043 0063 0053 ; [.161A.0020.0008][.161A.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
-0043 0043 0073 ; [.161A.0020.0008][.161A.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
-0043 0043 0053 ; [.161A.0020.0008][.161A.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
-0064 0064 007A ; [.162E.0020.0002][.162E.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
-0064 0064 005A ; [.162E.0020.0002][.162E.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
-0064 0044 007A ; [.162E.0020.0002][.162E.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
-0064 0044 005A ; [.162E.0020.0002][.162E.0020.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
-0044 0064 007A ; [.162E.0020.0008][.162E.0020.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
-0044 0064 005A ; [.162E.0020.0008][.162E.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
-0044 0044 007A ; [.162E.0020.0008][.162E.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
-0044 0044 005A ; [.162E.0020.0008][.162E.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
-0064 0064 007A 0073 ; [.162F.0020.0002][.162F.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0064 0064 007A 0053 ; [.162F.0020.0002][.162F.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 ; [.162F.0020.0002][.162F.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 ; [.162F.0020.0002][.162F.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 ; [.162F.0020.0002][.162F.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 ; [.162F.0020.0002][.162F.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 ; [.162F.0020.0002][.162F.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 ; [.162F.0020.0002][.162F.0020.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0044 0064 007A 0073 ; [.162F.0020.0008][.162F.0020.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0044 0064 007A 0053 ; [.162F.0020.0008][.162F.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 ; [.162F.0020.0008][.162F.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 ; [.162F.0020.0008][.162F.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 ; [.162F.0020.0008][.162F.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 ; [.162F.0020.0008][.162F.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 ; [.162F.0020.0008][.162F.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 ; [.162F.0020.0008][.162F.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0067 0067 0079 ; [.168E.0020.0002][.168E.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
-0067 0067 0059 ; [.168E.0020.0002][.168E.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
-0067 0047 0079 ; [.168E.0020.0002][.168E.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
-0067 0047 0059 ; [.168E.0020.0002][.168E.0020.0008] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
-0047 0067 0079 ; [.168E.0020.0008][.168E.0020.0002] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
-0047 0067 0059 ; [.168E.0020.0008][.168E.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
-0047 0047 0079 ; [.168E.0020.0008][.168E.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
-0047 0047 0059 ; [.168E.0020.0008][.168E.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
-006C 006C 0079 ; [.170E.0020.0002][.170E.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
-006C 006C 0059 ; [.170E.0020.0002][.170E.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
-006C 004C 0079 ; [.170E.0020.0002][.170E.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
-006C 004C 0059 ; [.170E.0020.0002][.170E.0020.0008] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
-004C 006C 0079 ; [.170E.0020.0008][.170E.0020.0002] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
-004C 006C 0059 ; [.170E.0020.0008][.170E.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
-004C 004C 0079 ; [.170E.0020.0008][.170E.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
-004C 004C 0059 ; [.170E.0020.0008][.170E.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
-006E 006E 0079 ; [.174C.0020.0002][.174C.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-006E 006E 0059 ; [.174C.0020.0002][.174C.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
-006E 004E 0079 ; [.174C.0020.0002][.174C.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-006E 004E 0059 ; [.174C.0020.0002][.174C.0020.0008] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-004E 006E 0079 ; [.174C.0020.0008][.174C.0020.0002] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-004E 006E 0059 ; [.174C.0020.0008][.174C.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
-004E 004E 0079 ; [.174C.0020.0008][.174C.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 004E 0059 ; [.174C.0020.0008][.174C.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-0073 0073 007A ; [.17F0.0020.0002][.17F0.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
-0073 0073 005A ; [.17F0.0020.0002][.17F0.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
-0073 0053 007A ; [.17F0.0020.0002][.17F0.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
-0073 0053 005A ; [.17F0.0020.0002][.17F0.0020.0008] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
-0053 0073 007A ; [.17F0.0020.0008][.17F0.0020.0002] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
-0053 0073 005A ; [.17F0.0020.0008][.17F0.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
-0053 0053 007A ; [.17F0.0020.0008][.17F0.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
-0053 0053 005A ; [.17F0.0020.0008][.17F0.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
-0074 0074 0079 ; [.1813.0020.0002][.1813.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
-0074 0074 0059 ; [.1813.0020.0002][.1813.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
-0074 0054 0079 ; [.1813.0020.0002][.1813.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
-0074 0054 0059 ; [.1813.0020.0002][.1813.0020.0008] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
-0054 0074 0079 ; [.1813.0020.0008][.1813.0020.0002] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
-0054 0074 0059 ; [.1813.0020.0008][.1813.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
-0054 0054 0079 ; [.1813.0020.0008][.1813.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
-0054 0054 0059 ; [.1813.0020.0008][.1813.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
-007A 007A 0073 ; [.1892.0020.0002][.1892.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-007A 007A 0053 ; [.1892.0020.0002][.1892.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-007A 005A 0073 ; [.1892.0020.0002][.1892.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-007A 005A 0053 ; [.1892.0020.0002][.1892.0020.0008] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-005A 007A 0073 ; [.1892.0020.0008][.1892.0020.0002] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-005A 007A 0053 ; [.1892.0020.0008][.1892.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-005A 005A 0073 ; [.1892.0020.0008][.1892.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-005A 005A 0053 ; [.1892.0020.0008][.1892.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+ locale_version => 1.12,
+ 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>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl
index d0ead3336f5..8d02f53622a 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0587 ; [.1C40.0020.0002][.FFF1.0000.0000] # ARMENIAN SMALL LIGATURE ECH YIWN
-0584 ; [.1C40.0020.0002][.FFF0.0000.0000] # ARMENIAN SMALL LETTER KEH
-0535 0582 ; [.1C40.0020.0008][.FFF1.0000.0000] # <ARMENIAN CAPITAL LETTER ECH, ARMENIAN SMALL LETTER YIWN>
-0554 ; [.1C40.0020.0008][.FFF0.0000.0000] # ARMENIAN CAPITAL LETTER KEH
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl
index 21b534c981d..c5a852b9825 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl
@@ -1,54 +1,54 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0063 0068 ; [.1602.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0043 0068 ; [.1602.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.1602.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-0067 0062 ; [.168E.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
-0047 0062 ; [.168E.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
-0047 0042 ; [.168E.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
-0067 0068 ; [.168F.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H>
-0047 0068 ; [.168F.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H>
-0047 0048 ; [.168F.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H>
-0067 0077 ; [.1690.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER W>
-0047 0077 ; [.1690.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER W>
-0047 0057 ; [.1690.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER W>
-1ECB ; [.16CA.0020.0002] # LATIN SMALL LETTER I WITH DOT BELOW
-0069 0323 ; [.16CA.0020.0002] # LATIN SMALL LETTER I WITH DOT BELOW
-1ECA ; [.16CA.0020.0008] # LATIN CAPITAL LETTER I WITH DOT BELOW
-0049 0323 ; [.16CA.0020.0008] # LATIN CAPITAL LETTER I WITH DOT BELOW
-006B 0070 ; [.16FC.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER P>
-004B 0070 ; [.16FC.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER P>
-004B 0050 ; [.16FC.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER P>
-006B 0077 ; [.16FD.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER W>
-004B 0077 ; [.16FD.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER W>
-004B 0057 ; [.16FD.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER W>
-1E45 ; [.174C.0020.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
-006E 0307 ; [.174C.0020.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
-1E44 ; [.174C.0020.0008] # LATIN CAPITAL LETTER N WITH DOT ABOVE
-004E 0307 ; [.174C.0020.0008] # LATIN CAPITAL LETTER N WITH DOT ABOVE
-006E 0077 ; [.174D.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER W>
-004E 0077 ; [.174D.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER W>
-004E 0057 ; [.174D.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER W>
-006E 0079 ; [.174E.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-004E 0079 ; [.174E.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 0059 ; [.174E.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-1ECD ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-006F 0323 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-1ECC ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
-004F 0323 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
-1ED9 ; [.176E.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.176E.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1EE3 ; [.176E.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE2 ; [.176E.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-0073 0068 ; [.17F0.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
-0053 0068 ; [.17F0.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
-0053 0048 ; [.17F0.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
-1EE5 ; [.1833.0020.0002] # LATIN SMALL LETTER U WITH DOT BELOW
-0075 0323 ; [.1833.0020.0002] # LATIN SMALL LETTER U WITH DOT BELOW
-1EE4 ; [.1833.0020.0008] # LATIN CAPITAL LETTER U WITH DOT BELOW
-0055 0323 ; [.1833.0020.0008] # LATIN CAPITAL LETTER U WITH DOT BELOW
-1EF1 ; [.1833.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF0 ; [.1833.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl
index 9571afa3c0f..0c0c06b1e2b 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl
@@ -1,81 +1,81 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-00E1 ; [.1600.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.1600.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.1600.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.1600.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.1600.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.1600.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0111 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.162E.0020.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.162E.0020.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.162E.0020.0008] # LATIN CAPITAL LETTER ETH
-00E9 ; [.167F.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.167F.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.167F.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.167F.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.167F.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.167F.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-00ED ; [.16E1.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.16E1.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.16E1.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.16E1.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.16E1.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.16E1.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-00F3 ; [.1791.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1791.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1791.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1791.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1791.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1791.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-00FA ; [.185A.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.185A.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.185A.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.185A.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.185A.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.185A.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-00FD ; [.1890.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
-0079 0301 ; [.1890.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
-0079 0341 ; [.1890.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
-00DD ; [.1890.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
-0059 0301 ; [.1890.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
-0059 0341 ; [.1890.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
-00E6 ; [.1902.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1902.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1902.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1902.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1902.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1902.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1902.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1902.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1902.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1902.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00F6 ; [.1903.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1903.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1903.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1903.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1903.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1903.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1903.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1903.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1903.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1903.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1903.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1903.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00E5 ; [.1904.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1904.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1904.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1904.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1904.0020.0008] # ANGSTROM SIGN
-01FB ; [.1904.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1904.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl
index c3f022f07c9..a8fa6635db3 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl
@@ -1,1337 +1,1337 @@
use Unicode::Collate::CJK::JISX0208;
+{
- locale_version => 1.01,
+ locale_version => 1.12,
overrideCJK => \&Unicode::Collate::CJK::JISX0208::weightJISX0208,
- entry => <<'ENTRY', # for DUCET v6.3.0
-30A1 ; [.32B7.0020.000F.0002] # KATAKANA LETTER SMALL A
-30A2 ; [.32B7.0020.0011.0002] # KATAKANA LETTER A
-30A3 ; [.32B8.0020.000F.0002] # KATAKANA LETTER SMALL I
-30A4 ; [.32B8.0020.0011.0002] # KATAKANA LETTER I
-30A5 ; [.32B9.0020.000F.0002] # KATAKANA LETTER SMALL U
-30A6 ; [.32B9.0020.0011.0002] # KATAKANA LETTER U
-30A7 ; [.32BB.0020.000F.0002] # KATAKANA LETTER SMALL E
-30A8 ; [.32BB.0020.0011.0002] # KATAKANA LETTER E
-30A9 ; [.32BC.0020.000F.0002] # KATAKANA LETTER SMALL O
-30AA ; [.32BC.0020.0011.0002] # KATAKANA LETTER O
-30AB ; [.32BD.0020.0011.0002] # KATAKANA LETTER KA
-30AC ; [.32BD.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GA
-30AD ; [.32BE.0020.0011.0002] # KATAKANA LETTER KI
-30AE ; [.32BE.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GI
-30AF ; [.32BF.0020.0011.0002] # KATAKANA LETTER KU
-30B0 ; [.32BF.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GU
-30B1 ; [.32C0.0020.0011.0002] # KATAKANA LETTER KE
-30B2 ; [.32C0.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GE
-30B3 ; [.32C1.0020.0011.0002] # KATAKANA LETTER KO
-30B4 ; [.32C1.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GO
-30B5 ; [.32C2.0020.0011.0002] # KATAKANA LETTER SA
-30B6 ; [.32C2.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZA
-30B7 ; [.32C3.0020.0011.0002] # KATAKANA LETTER SI
-30B8 ; [.32C3.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZI
-30B9 ; [.32C4.0020.0011.0002] # KATAKANA LETTER SU
-30BA ; [.32C4.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZU
-30BB ; [.32C5.0020.0011.0002] # KATAKANA LETTER SE
-30BC ; [.32C5.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZE
-30BD ; [.32C6.0020.0011.0002] # KATAKANA LETTER SO
-30BE ; [.32C6.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZO
-30BF ; [.32C7.0020.0011.0002] # KATAKANA LETTER TA
-30C0 ; [.32C7.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DA
-30C1 ; [.32C8.0020.0011.0002] # KATAKANA LETTER TI
-30C2 ; [.32C8.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DI
-30C3 ; [.32C9.0020.000F.0002] # KATAKANA LETTER SMALL TU
-30C4 ; [.32C9.0020.0011.0002] # KATAKANA LETTER TU
-30C5 ; [.32C9.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DU
-30C6 ; [.32CA.0020.0011.0002] # KATAKANA LETTER TE
-30C7 ; [.32CA.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DE
-30C8 ; [.32CB.0020.0011.0002] # KATAKANA LETTER TO
-30C9 ; [.32CB.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DO
-30CA ; [.32CC.0020.0011.0002] # KATAKANA LETTER NA
-30CB ; [.32CD.0020.0011.0002] # KATAKANA LETTER NI
-30CC ; [.32CE.0020.0011.0002] # KATAKANA LETTER NU
-30CD ; [.32CF.0020.0011.0002] # KATAKANA LETTER NE
-30CE ; [.32D0.0020.0011.0002] # KATAKANA LETTER NO
-30CF ; [.32D1.0020.0011.0002] # KATAKANA LETTER HA
-30D0 ; [.32D1.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BA
-30D1 ; [.32D1.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PA
-30D2 ; [.32D2.0020.0011.0002] # KATAKANA LETTER HI
-30D3 ; [.32D2.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BI
-30D4 ; [.32D2.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PI
-30D5 ; [.32D3.0020.0011.0002] # KATAKANA LETTER HU
-30D6 ; [.32D3.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BU
-30D7 ; [.32D3.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PU
-30D8 ; [.32D4.0020.0011.0002] # KATAKANA LETTER HE
-30D9 ; [.32D4.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BE
-30DA ; [.32D4.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PE
-30DB ; [.32D5.0020.0011.0002] # KATAKANA LETTER HO
-30DC ; [.32D5.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BO
-30DD ; [.32D5.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PO
-30DE ; [.32D6.0020.0011.0002] # KATAKANA LETTER MA
-30DF ; [.32D7.0020.0011.0002] # KATAKANA LETTER MI
-30E0 ; [.32D8.0020.0011.0002] # KATAKANA LETTER MU
-30E1 ; [.32D9.0020.0011.0002] # KATAKANA LETTER ME
-30E2 ; [.32DA.0020.0011.0002] # KATAKANA LETTER MO
-30E3 ; [.32DB.0020.000F.0002] # KATAKANA LETTER SMALL YA
-30E4 ; [.32DB.0020.0011.0002] # KATAKANA LETTER YA
-30E5 ; [.32DC.0020.000F.0002] # KATAKANA LETTER SMALL YU
-30E6 ; [.32DC.0020.0011.0002] # KATAKANA LETTER YU
-30E7 ; [.32DE.0020.000F.0002] # KATAKANA LETTER SMALL YO
-30E8 ; [.32DE.0020.0011.0002] # KATAKANA LETTER YO
-30E9 ; [.32DF.0020.0011.0002] # KATAKANA LETTER RA
-30EA ; [.32E0.0020.0011.0002] # KATAKANA LETTER RI
-30EB ; [.32E1.0020.0011.0002] # KATAKANA LETTER RU
-30EC ; [.32E2.0020.0011.0002] # KATAKANA LETTER RE
-30ED ; [.32E3.0020.0011.0002] # KATAKANA LETTER RO
-30EE ; [.32E4.0020.000F.0002] # KATAKANA LETTER SMALL WA
-30EF ; [.32E4.0020.0011.0002] # KATAKANA LETTER WA
-30F0 ; [.32E5.0020.0011.0002] # KATAKANA LETTER WI
-30F1 ; [.32E6.0020.0011.0002] # KATAKANA LETTER WE
-30F2 ; [.32E7.0020.0011.0002] # KATAKANA LETTER WO
-30F3 ; [.32E8.0020.0011.0002] # KATAKANA LETTER N
-30F4 ; [.32B9.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VU
-30F5 ; [.32BD.0020.000F.0002] # KATAKANA LETTER SMALL KA
-30F6 ; [.32C0.0020.000F.0002] # KATAKANA LETTER SMALL KE
-30F7 ; [.32E4.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VA
-30F8 ; [.32E5.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VI
-30F9 ; [.32E6.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VE
-30FA ; [.32E7.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VO
-30FD ; [.15B7.0020.0002.0002] # KATAKANA ITERATION MARK
-30FE ; [.15B7.0020.0002.0002][.0000.0037.0002] # KATAKANA VOICED ITERATION MARK
-3041 ; [.32B7.0020.000F.0001] # HIRAGANA LETTER SMALL A
-3042 ; [.32B7.0020.0011.0001] # HIRAGANA LETTER A
-3043 ; [.32B8.0020.000F.0001] # HIRAGANA LETTER SMALL I
-3044 ; [.32B8.0020.0011.0001] # HIRAGANA LETTER I
-3045 ; [.32B9.0020.000F.0001] # HIRAGANA LETTER SMALL U
-3046 ; [.32B9.0020.0011.0001] # HIRAGANA LETTER U
-3047 ; [.32BB.0020.000F.0001] # HIRAGANA LETTER SMALL E
-3048 ; [.32BB.0020.0011.0001] # HIRAGANA LETTER E
-3049 ; [.32BC.0020.000F.0001] # HIRAGANA LETTER SMALL O
-304A ; [.32BC.0020.0011.0001] # HIRAGANA LETTER O
-304B ; [.32BD.0020.0011.0001] # HIRAGANA LETTER KA
-304C ; [.32BD.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GA
-304D ; [.32BE.0020.0011.0001] # HIRAGANA LETTER KI
-304E ; [.32BE.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GI
-304F ; [.32BF.0020.0011.0001] # HIRAGANA LETTER KU
-3050 ; [.32BF.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GU
-3051 ; [.32C0.0020.0011.0001] # HIRAGANA LETTER KE
-3052 ; [.32C0.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GE
-3053 ; [.32C1.0020.0011.0001] # HIRAGANA LETTER KO
-3054 ; [.32C1.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GO
-3055 ; [.32C2.0020.0011.0001] # HIRAGANA LETTER SA
-3056 ; [.32C2.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZA
-3057 ; [.32C3.0020.0011.0001] # HIRAGANA LETTER SI
-3058 ; [.32C3.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZI
-3059 ; [.32C4.0020.0011.0001] # HIRAGANA LETTER SU
-305A ; [.32C4.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZU
-305B ; [.32C5.0020.0011.0001] # HIRAGANA LETTER SE
-305C ; [.32C5.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZE
-305D ; [.32C6.0020.0011.0001] # HIRAGANA LETTER SO
-305E ; [.32C6.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZO
-305F ; [.32C7.0020.0011.0001] # HIRAGANA LETTER TA
-3060 ; [.32C7.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DA
-3061 ; [.32C8.0020.0011.0001] # HIRAGANA LETTER TI
-3062 ; [.32C8.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DI
-3063 ; [.32C9.0020.000F.0001] # HIRAGANA LETTER SMALL TU
-3064 ; [.32C9.0020.0011.0001] # HIRAGANA LETTER TU
-3065 ; [.32C9.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DU
-3066 ; [.32CA.0020.0011.0001] # HIRAGANA LETTER TE
-3067 ; [.32CA.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DE
-3068 ; [.32CB.0020.0011.0001] # HIRAGANA LETTER TO
-3069 ; [.32CB.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DO
-306A ; [.32CC.0020.0011.0001] # HIRAGANA LETTER NA
-306B ; [.32CD.0020.0011.0001] # HIRAGANA LETTER NI
-306C ; [.32CE.0020.0011.0001] # HIRAGANA LETTER NU
-306D ; [.32CF.0020.0011.0001] # HIRAGANA LETTER NE
-306E ; [.32D0.0020.0011.0001] # HIRAGANA LETTER NO
-306F ; [.32D1.0020.0011.0001] # HIRAGANA LETTER HA
-3070 ; [.32D1.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BA
-3071 ; [.32D1.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PA
-3072 ; [.32D2.0020.0011.0001] # HIRAGANA LETTER HI
-3073 ; [.32D2.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BI
-3074 ; [.32D2.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PI
-3075 ; [.32D3.0020.0011.0001] # HIRAGANA LETTER HU
-3076 ; [.32D3.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BU
-3077 ; [.32D3.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PU
-3078 ; [.32D4.0020.0011.0001] # HIRAGANA LETTER HE
-3079 ; [.32D4.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BE
-307A ; [.32D4.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PE
-307B ; [.32D5.0020.0011.0001] # HIRAGANA LETTER HO
-307C ; [.32D5.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BO
-307D ; [.32D5.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PO
-307E ; [.32D6.0020.0011.0001] # HIRAGANA LETTER MA
-307F ; [.32D7.0020.0011.0001] # HIRAGANA LETTER MI
-3080 ; [.32D8.0020.0011.0001] # HIRAGANA LETTER MU
-3081 ; [.32D9.0020.0011.0001] # HIRAGANA LETTER ME
-3082 ; [.32DA.0020.0011.0001] # HIRAGANA LETTER MO
-3083 ; [.32DB.0020.000F.0001] # HIRAGANA LETTER SMALL YA
-3084 ; [.32DB.0020.0011.0001] # HIRAGANA LETTER YA
-3085 ; [.32DC.0020.000F.0001] # HIRAGANA LETTER SMALL YU
-3086 ; [.32DC.0020.0011.0001] # HIRAGANA LETTER YU
-3087 ; [.32DE.0020.000F.0001] # HIRAGANA LETTER SMALL YO
-3088 ; [.32DE.0020.0011.0001] # HIRAGANA LETTER YO
-3089 ; [.32DF.0020.0011.0001] # HIRAGANA LETTER RA
-308A ; [.32E0.0020.0011.0001] # HIRAGANA LETTER RI
-308B ; [.32E1.0020.0011.0001] # HIRAGANA LETTER RU
-308C ; [.32E2.0020.0011.0001] # HIRAGANA LETTER RE
-308D ; [.32E3.0020.0011.0001] # HIRAGANA LETTER RO
-308E ; [.32E4.0020.000F.0001] # HIRAGANA LETTER SMALL WA
-308F ; [.32E4.0020.0011.0001] # HIRAGANA LETTER WA
-3090 ; [.32E5.0020.0011.0001] # HIRAGANA LETTER WI
-3091 ; [.32E6.0020.0011.0001] # HIRAGANA LETTER WE
-3092 ; [.32E7.0020.0011.0001] # HIRAGANA LETTER WO
-3093 ; [.32E8.0020.0011.0001] # HIRAGANA LETTER N
-3094 ; [.32B9.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER VU
-3095 ; [.32BD.0020.000F.0001] # HIRAGANA LETTER SMALL KA
-3096 ; [.32C0.0020.000F.0001] # HIRAGANA LETTER SMALL KE
-309D ; [.15B7.0020.0002.0001] # HIRAGANA ITERATION MARK
-309E ; [.15B7.0020.0002.0001][.0000.0037.0002] # HIRAGANA VOICED ITERATION MARK
+ 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
3000 ; [*0209.0020.0002] # IDEOGRAPHIC SPACE
-FF01 ; [*025D.0020.0002] # FULLWIDTH EXCLAMATION MARK
-FF02 ; [*02F0.0020.0002] # FULLWIDTH QUOTATION MARK
-FF03 ; [*0379.0020.0002] # FULLWIDTH NUMBER SIGN
-FF04 ; [.15BA.0020.0002] # FULLWIDTH DOLLAR SIGN
-FF05 ; [*037A.0020.0002] # FULLWIDTH PERCENT SIGN
-FF06 ; [*0377.0020.0002] # FULLWIDTH AMPERSAND
-FF07 ; [*02E9.0020.0002] # FULLWIDTH APOSTROPHE
-FF08 ; [*02FA.0020.0002] # FULLWIDTH LEFT PARENTHESIS
-FF09 ; [*02FB.0020.0002] # FULLWIDTH RIGHT PARENTHESIS
-FF0A ; [*0370.0020.0002] # FULLWIDTH ASTERISK
-FF0B ; [*059F.0020.0002] # FULLWIDTH PLUS SIGN
-FF0C ; [*0220.0020.0002] # FULLWIDTH COMMA
+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
FF0D ; [*020D.0020.0002] # FULLWIDTH HYPHEN-MINUS
-FF0E ; [*0272.0020.0002] # FULLWIDTH FULL STOP
-FF0F ; [*0375.0020.0002] # FULLWIDTH SOLIDUS
-FF10 ; [.15E1.0020.0002] # FULLWIDTH DIGIT ZERO
-FF11 ; [.15E2.0020.0002] # FULLWIDTH DIGIT ONE
-FF12 ; [.15E3.0020.0002] # FULLWIDTH DIGIT TWO
-FF13 ; [.15E4.0020.0002] # FULLWIDTH DIGIT THREE
-FF14 ; [.15E5.0020.0002] # FULLWIDTH DIGIT FOUR
-FF15 ; [.15E6.0020.0002] # FULLWIDTH DIGIT FIVE
-FF16 ; [.15E7.0020.0002] # FULLWIDTH DIGIT SIX
-FF17 ; [.15E8.0020.0002] # FULLWIDTH DIGIT SEVEN
-FF18 ; [.15E9.0020.0002] # FULLWIDTH DIGIT EIGHT
-FF19 ; [.15EA.0020.0002] # FULLWIDTH DIGIT NINE
-FF1A ; [*0236.0020.0002] # FULLWIDTH COLON
-FF1B ; [*0231.0020.0002] # FULLWIDTH SEMICOLON
-FF1C ; [*05A3.0020.0002] # FULLWIDTH LESS-THAN SIGN
-FF1D ; [*05A4.0020.0002] # FULLWIDTH EQUALS SIGN
-FF1E ; [*05A5.0020.0002] # FULLWIDTH GREATER-THAN SIGN
-FF1F ; [*0262.0020.0002] # FULLWIDTH QUESTION MARK
-FF20 ; [*036F.0020.0002] # FULLWIDTH COMMERCIAL AT
-FF21 ; [.15EB.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER A
-FF22 ; [.1601.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER B
-FF23 ; [.1619.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER C
-FF24 ; [.162D.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER D
-FF25 ; [.1648.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER E
-FF26 ; [.1680.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER F
-FF27 ; [.168D.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER G
-FF28 ; [.16B0.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER H
-FF29 ; [.16C9.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER I
-FF2A ; [.16E2.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER J
-FF2B ; [.16FB.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER K
-FF2C ; [.170D.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER L
-FF2D ; [.173D.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER M
-FF2E ; [.174B.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER N
-FF2F ; [.176D.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER O
-FF30 ; [.1792.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER P
-FF31 ; [.17A7.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Q
-FF32 ; [.17B9.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER R
-FF33 ; [.17EF.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER S
-FF34 ; [.1812.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER T
-FF35 ; [.1832.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER U
-FF36 ; [.185B.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER V
-FF37 ; [.186D.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER W
-FF38 ; [.1877.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER X
-FF39 ; [.187C.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Y
-FF3A ; [.1891.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Z
-FF3B ; [*02FC.0020.0002] # FULLWIDTH LEFT SQUARE BRACKET
-FF3C ; [*02E9.0020.0002] # FULLWIDTH REVERSE SOLIDUS
-FF3D ; [*02FD.0020.0002] # FULLWIDTH RIGHT SQUARE BRACKET
-FF3E ; [*0415.0020.0002] # FULLWIDTH CIRCUMFLEX ACCENT
+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
FF3F ; [*020B.0020.0002] # FULLWIDTH LOW LINE
-FF40 ; [*0412.0020.0002] # FULLWIDTH GRAVE ACCENT
-FF41 ; [.15EB.0020.0002] # FULLWIDTH LATIN SMALL LETTER A
-FF42 ; [.1601.0020.0002] # FULLWIDTH LATIN SMALL LETTER B
-FF43 ; [.1619.0020.0002] # FULLWIDTH LATIN SMALL LETTER C
-FF44 ; [.162D.0020.0002] # FULLWIDTH LATIN SMALL LETTER D
-FF45 ; [.1648.0020.0002] # FULLWIDTH LATIN SMALL LETTER E
-FF46 ; [.1680.0020.0002] # FULLWIDTH LATIN SMALL LETTER F
-FF47 ; [.168D.0020.0002] # FULLWIDTH LATIN SMALL LETTER G
-FF48 ; [.16B0.0020.0002] # FULLWIDTH LATIN SMALL LETTER H
-FF49 ; [.16C9.0020.0002] # FULLWIDTH LATIN SMALL LETTER I
-FF4A ; [.16E2.0020.0002] # FULLWIDTH LATIN SMALL LETTER J
-FF4B ; [.16FB.0020.0002] # FULLWIDTH LATIN SMALL LETTER K
-FF4C ; [.170D.0020.0002] # FULLWIDTH LATIN SMALL LETTER L
-FF4D ; [.173D.0020.0002] # FULLWIDTH LATIN SMALL LETTER M
-FF4E ; [.174B.0020.0002] # FULLWIDTH LATIN SMALL LETTER N
-FF4F ; [.176D.0020.0002] # FULLWIDTH LATIN SMALL LETTER O
-FF50 ; [.1792.0020.0002] # FULLWIDTH LATIN SMALL LETTER P
-FF51 ; [.17A7.0020.0002] # FULLWIDTH LATIN SMALL LETTER Q
-FF52 ; [.17B9.0020.0002] # FULLWIDTH LATIN SMALL LETTER R
-FF53 ; [.17EF.0020.0002] # FULLWIDTH LATIN SMALL LETTER S
-FF54 ; [.1812.0020.0002] # FULLWIDTH LATIN SMALL LETTER T
-FF55 ; [.1832.0020.0002] # FULLWIDTH LATIN SMALL LETTER U
-FF56 ; [.185B.0020.0002] # FULLWIDTH LATIN SMALL LETTER V
-FF57 ; [.186D.0020.0002] # FULLWIDTH LATIN SMALL LETTER W
-FF58 ; [.1877.0020.0002] # FULLWIDTH LATIN SMALL LETTER X
-FF59 ; [.187C.0020.0002] # FULLWIDTH LATIN SMALL LETTER Y
-FF5A ; [.1891.0020.0002] # FULLWIDTH LATIN SMALL LETTER Z
-FF5B ; [*02FE.0020.0002] # FULLWIDTH LEFT CURLY BRACKET
-FF5C ; [*05A7.0020.0002] # FULLWIDTH VERTICAL LINE
-FF5D ; [*02FF.0020.0002] # FULLWIDTH RIGHT CURLY BRACKET
-FF5E ; [*05A9.0020.0002] # FULLWIDTH TILDE
-FF5F ; [*0310.0020.0002] # FULLWIDTH LEFT WHITE PARENTHESIS
-FF60 ; [*0311.0020.0002] # FULLWIDTH RIGHT WHITE PARENTHESIS
-FF61 ; [*0282.0020.0002] # HALFWIDTH IDEOGRAPHIC FULL STOP
-FF62 ; [*0356.0020.0002] # HALFWIDTH LEFT CORNER BRACKET
-FF63 ; [*0357.0020.0002] # HALFWIDTH RIGHT CORNER BRACKET
-FF64 ; [*022E.0020.0002] # HALFWIDTH IDEOGRAPHIC COMMA
-FF65 ; [*021F.0020.0002] # HALFWIDTH KATAKANA MIDDLE DOT
-FF66 ; [.32E7.0020.0011.0002] # HALFWIDTH KATAKANA LETTER WO
-FF67 ; [.32B7.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL A
-FF68 ; [.32B8.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL I
-FF69 ; [.32B9.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL U
-FF6A ; [.32BB.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL E
-FF6B ; [.32BC.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL O
-FF6C ; [.32DB.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YA
-FF6D ; [.32DC.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YU
-FF6E ; [.32DE.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YO
-FF6F ; [.32C9.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL TU
-FF70 ; [.15B6.0020.0002] # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FF71 ; [.32B7.0020.0011.0002] # HALFWIDTH KATAKANA LETTER A
-FF72 ; [.32B8.0020.0011.0002] # HALFWIDTH KATAKANA LETTER I
-FF73 ; [.32B9.0020.0011.0002] # HALFWIDTH KATAKANA LETTER U
-FF74 ; [.32BB.0020.0011.0002] # HALFWIDTH KATAKANA LETTER E
-FF75 ; [.32BC.0020.0011.0002] # HALFWIDTH KATAKANA LETTER O
-FF76 ; [.32BD.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KA
-FF77 ; [.32BE.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KI
-FF78 ; [.32BF.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KU
-FF79 ; [.32C0.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KE
-FF7A ; [.32C1.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KO
-FF7B ; [.32C2.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SA
-FF7C ; [.32C3.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SI
-FF7D ; [.32C4.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SU
-FF7E ; [.32C5.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SE
-FF7F ; [.32C6.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SO
-FF80 ; [.32C7.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TA
-FF81 ; [.32C8.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TI
-FF82 ; [.32C9.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TU
-FF83 ; [.32CA.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TE
-FF84 ; [.32CB.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TO
-FF85 ; [.32CC.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NA
-FF86 ; [.32CD.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NI
-FF87 ; [.32CE.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NU
-FF88 ; [.32CF.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NE
-FF89 ; [.32D0.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NO
-FF8A ; [.32D1.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HA
-FF8B ; [.32D2.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HI
-FF8C ; [.32D3.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HU
-FF8D ; [.32D4.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HE
-FF8E ; [.32D5.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HO
-FF8F ; [.32D6.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MA
-FF90 ; [.32D7.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MI
-FF91 ; [.32D8.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MU
-FF92 ; [.32D9.0020.0011.0002] # HALFWIDTH KATAKANA LETTER ME
-FF93 ; [.32DA.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MO
-FF94 ; [.32DB.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YA
-FF95 ; [.32DC.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YU
-FF96 ; [.32DE.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YO
-FF97 ; [.32DF.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RA
-FF98 ; [.32E0.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RI
-FF99 ; [.32E1.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RU
-FF9A ; [.32E2.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RE
-FF9B ; [.32E3.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RO
-FF9C ; [.32E4.0020.0011.0002] # HALFWIDTH KATAKANA LETTER WA
-FF9D ; [.32E8.0020.0011.0002] # HALFWIDTH KATAKANA LETTER N
+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
FF9E ; [.0000.0037.0002] # HALFWIDTH KATAKANA VOICED SOUND MARK
FF9F ; [.0000.0038.0002] # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
-FFE0 ; [.15B9.0020.0002] # FULLWIDTH CENT SIGN
-FFE1 ; [.15BB.0020.0002] # FULLWIDTH POUND SIGN
-FFE2 ; [*05A6.0020.0002] # FULLWIDTH NOT SIGN
+FFE0 ; [.18D7.0020.0002] # FULLWIDTH CENT SIGN
+FFE1 ; [.18D9.0020.0002] # FULLWIDTH POUND SIGN
+FFE2 ; [*05DD.0020.0002] # FULLWIDTH NOT SIGN
FFE3 ; [*0209.0020.0002] # FULLWIDTH MACRON
-FFE4 ; [*05A8.0020.0002] # FULLWIDTH BROKEN BAR
-FFE5 ; [.15BC.0020.0002] # FULLWIDTH YEN SIGN
-FFE6 ; [.15CF.0020.0002] # FULLWIDTH WON SIGN
-FFE8 ; [*0798.0020.0002] # HALFWIDTH FORMS LIGHT VERTICAL
-FFE9 ; [*0525.0020.0002] # HALFWIDTH LEFTWARDS ARROW
-FFEA ; [*0527.0020.0002] # HALFWIDTH UPWARDS ARROW
-FFEB ; [*0526.0020.0002] # HALFWIDTH RIGHTWARDS ARROW
-FFEC ; [*0528.0020.0002] # HALFWIDTH DOWNWARDS ARROW
-FFED ; [*0836.0020.0002] # HALFWIDTH BLACK SQUARE
-FFEE ; [*0861.0020.0002] # HALFWIDTH WHITE CIRCLE
-30A1 30FC ; [.32B7.0020.000F.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF67 30FC ; [.32B7.0020.000F.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF67 FF70 ; [.32B7.0020.000F.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3041 30FC ; [.32B7.0020.000F.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A2 30FC ; [.32B7.0020.0011.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF71 30FC ; [.32B7.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF71 FF70 ; [.32B7.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER A, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3042 30FC ; [.32B7.0020.0011.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AB 30FC ; [.32BD.0020.0011.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF76 30FC ; [.32BD.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF76 FF70 ; [.32BD.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304B 30FC ; [.32BD.0020.0011.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AC 30FC ; [.32BD.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER GA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AB 3099 30FC ; [.32BD.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF76 FF9E 30FC ; [.32BD.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF76 FF9E FF70 ; [.32BD.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304C 30FC ; [.32BD.0020.0011.0001][.0000.0037.0002][.32B7.0020.0007.0002] # <HIRAGANA LETTER GA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304B 3099 30FC ; [.32BD.0020.0011.0001][.0000.0037.0002][.32B7.0020.0007.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B5 30FC ; [.32C2.0020.0011.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7B 30FC ; [.32C2.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7B FF70 ; [.32C2.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3055 30FC ; [.32C2.0020.0011.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B6 30FC ; [.32C2.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER ZA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B5 3099 30FC ; [.32C2.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7B FF9E 30FC ; [.32C2.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7B FF9E FF70 ; [.32C2.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3056 30FC ; [.32C2.0020.0011.0001][.0000.0037.0002][.32B7.0020.0007.0002] # <HIRAGANA LETTER ZA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3055 3099 30FC ; [.32C2.0020.0011.0001][.0000.0037.0002][.32B7.0020.0007.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BF 30FC ; [.32C7.0020.0011.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF80 30FC ; [.32C7.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF80 FF70 ; [.32C7.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305F 30FC ; [.32C7.0020.0011.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C0 30FC ; [.32C7.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER DA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BF 3099 30FC ; [.32C7.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF80 FF9E 30FC ; [.32C7.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF80 FF9E FF70 ; [.32C7.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3060 30FC ; [.32C7.0020.0011.0001][.0000.0037.0002][.32B7.0020.0007.0002] # <HIRAGANA LETTER DA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305F 3099 30FC ; [.32C7.0020.0011.0001][.0000.0037.0002][.32B7.0020.0007.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CA 30FC ; [.32CC.0020.0011.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF85 30FC ; [.32CC.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF85 FF70 ; [.32CC.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306A 30FC ; [.32CC.0020.0011.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CF 30FC ; [.32D1.0020.0011.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A 30FC ; [.32D1.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF70 ; [.32D1.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306F 30FC ; [.32D1.0020.0011.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D0 30FC ; [.32D1.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER BA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CF 3099 30FC ; [.32D1.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF9E 30FC ; [.32D1.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF9E FF70 ; [.32D1.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3070 30FC ; [.32D1.0020.0011.0001][.0000.0037.0002][.32B7.0020.0007.0002] # <HIRAGANA LETTER BA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306F 3099 30FC ; [.32D1.0020.0011.0001][.0000.0037.0002][.32B7.0020.0007.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D1 30FC ; [.32D1.0020.0011.0002][.0000.0038.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER PA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CF 309A 30FC ; [.32D1.0020.0011.0002][.0000.0038.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF9F 30FC ; [.32D1.0020.0011.0002][.0000.0038.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF9F FF70 ; [.32D1.0020.0011.0002][.0000.0038.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3071 30FC ; [.32D1.0020.0011.0001][.0000.0038.0002][.32B7.0020.0007.0002] # <HIRAGANA LETTER PA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306F 309A 30FC ; [.32D1.0020.0011.0001][.0000.0038.0002][.32B7.0020.0007.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DE 30FC ; [.32D6.0020.0011.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8F 30FC ; [.32D6.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8F FF70 ; [.32D6.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307E 30FC ; [.32D6.0020.0011.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E3 30FC ; [.32DB.0020.000F.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6C 30FC ; [.32DB.0020.000F.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6C FF70 ; [.32DB.0020.000F.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3083 30FC ; [.32DB.0020.000F.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E4 30FC ; [.32DB.0020.0011.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF94 30FC ; [.32DB.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF94 FF70 ; [.32DB.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3084 30FC ; [.32DB.0020.0011.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E9 30FC ; [.32DF.0020.0011.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF97 30FC ; [.32DF.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF97 FF70 ; [.32DF.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3089 30FC ; [.32DF.0020.0011.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EE 30FC ; [.32E4.0020.000F.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER SMALL WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308E 30FC ; [.32E4.0020.000F.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER SMALL WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EF 30FC ; [.32E4.0020.0011.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9C 30FC ; [.32E4.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9C FF70 ; [.32E4.0020.0011.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308F 30FC ; [.32E4.0020.0011.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F7 30FC ; [.32E4.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER VA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EF 3099 30FC ; [.32E4.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9C FF9E 30FC ; [.32E4.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9C FF9E FF70 ; [.32E4.0020.0011.0002][.0000.0037.0002][.32B7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F5 30FC ; [.32BD.0020.000F.0002][.32B7.0020.0007.0002] # <KATAKANA LETTER SMALL KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3095 30FC ; [.32BD.0020.000F.0001][.32B7.0020.0007.0002] # <HIRAGANA LETTER SMALL KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F5 30FC ; [.32D1.0020.000F][.32B7.0020.0007.0002] # <KATAKANA LETTER SMALL HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FB 30FC ; [.32DF.0020.000F][.32B7.0020.0007.0002] # <KATAKANA LETTER SMALL RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A3 30FC ; [.32B8.0020.000F.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF68 30FC ; [.32B8.0020.000F.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF68 FF70 ; [.32B8.0020.000F.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3043 30FC ; [.32B8.0020.000F.0001][.32B8.0020.0007.0002] # <HIRAGANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A4 30FC ; [.32B8.0020.0011.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF72 30FC ; [.32B8.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF72 FF70 ; [.32B8.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER I, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3044 30FC ; [.32B8.0020.0011.0001][.32B8.0020.0007.0002] # <HIRAGANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AD 30FC ; [.32BE.0020.0011.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF77 30FC ; [.32BE.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF77 FF70 ; [.32BE.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304D 30FC ; [.32BE.0020.0011.0001][.32B8.0020.0007.0002] # <HIRAGANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AE 30FC ; [.32BE.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER GI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AD 3099 30FC ; [.32BE.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF77 FF9E 30FC ; [.32BE.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF77 FF9E FF70 ; [.32BE.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304E 30FC ; [.32BE.0020.0011.0001][.0000.0037.0002][.32B8.0020.0007.0002] # <HIRAGANA LETTER GI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304D 3099 30FC ; [.32BE.0020.0011.0001][.0000.0037.0002][.32B8.0020.0007.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B7 30FC ; [.32C3.0020.0011.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7C 30FC ; [.32C3.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7C FF70 ; [.32C3.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3057 30FC ; [.32C3.0020.0011.0001][.32B8.0020.0007.0002] # <HIRAGANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B8 30FC ; [.32C3.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER ZI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B7 3099 30FC ; [.32C3.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7C FF9E 30FC ; [.32C3.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7C FF9E FF70 ; [.32C3.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3058 30FC ; [.32C3.0020.0011.0001][.0000.0037.0002][.32B8.0020.0007.0002] # <HIRAGANA LETTER ZI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3057 3099 30FC ; [.32C3.0020.0011.0001][.0000.0037.0002][.32B8.0020.0007.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C1 30FC ; [.32C8.0020.0011.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF81 30FC ; [.32C8.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF81 FF70 ; [.32C8.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3061 30FC ; [.32C8.0020.0011.0001][.32B8.0020.0007.0002] # <HIRAGANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C2 30FC ; [.32C8.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER DI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C1 3099 30FC ; [.32C8.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF81 FF9E 30FC ; [.32C8.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF81 FF9E FF70 ; [.32C8.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3062 30FC ; [.32C8.0020.0011.0001][.0000.0037.0002][.32B8.0020.0007.0002] # <HIRAGANA LETTER DI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3061 3099 30FC ; [.32C8.0020.0011.0001][.0000.0037.0002][.32B8.0020.0007.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CB 30FC ; [.32CD.0020.0011.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF86 30FC ; [.32CD.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF86 FF70 ; [.32CD.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306B 30FC ; [.32CD.0020.0011.0001][.32B8.0020.0007.0002] # <HIRAGANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D2 30FC ; [.32D2.0020.0011.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B 30FC ; [.32D2.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF70 ; [.32D2.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3072 30FC ; [.32D2.0020.0011.0001][.32B8.0020.0007.0002] # <HIRAGANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D3 30FC ; [.32D2.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER BI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D2 3099 30FC ; [.32D2.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF9E 30FC ; [.32D2.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF9E FF70 ; [.32D2.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3073 30FC ; [.32D2.0020.0011.0001][.0000.0037.0002][.32B8.0020.0007.0002] # <HIRAGANA LETTER BI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3072 3099 30FC ; [.32D2.0020.0011.0001][.0000.0037.0002][.32B8.0020.0007.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D4 30FC ; [.32D2.0020.0011.0002][.0000.0038.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER PI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D2 309A 30FC ; [.32D2.0020.0011.0002][.0000.0038.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF9F 30FC ; [.32D2.0020.0011.0002][.0000.0038.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF9F FF70 ; [.32D2.0020.0011.0002][.0000.0038.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3074 30FC ; [.32D2.0020.0011.0001][.0000.0038.0002][.32B8.0020.0007.0002] # <HIRAGANA LETTER PI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3072 309A 30FC ; [.32D2.0020.0011.0001][.0000.0038.0002][.32B8.0020.0007.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DF 30FC ; [.32D7.0020.0011.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF90 30FC ; [.32D7.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF90 FF70 ; [.32D7.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307F 30FC ; [.32D7.0020.0011.0001][.32B8.0020.0007.0002] # <HIRAGANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EA 30FC ; [.32E0.0020.0011.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF98 30FC ; [.32E0.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF98 FF70 ; [.32E0.0020.0011.0002][.32B8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308A 30FC ; [.32E0.0020.0011.0001][.32B8.0020.0007.0002] # <HIRAGANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F0 30FC ; [.32E5.0020.0011.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER WI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3090 30FC ; [.32E5.0020.0011.0001][.32B8.0020.0007.0002] # <HIRAGANA LETTER WI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F8 30FC ; [.32E5.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER VI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F0 3099 30FC ; [.32E5.0020.0011.0002][.0000.0037.0002][.32B8.0020.0007.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F1 30FC ; [.32C3.0020.000F][.32B8.0020.0007.0002] # <KATAKANA LETTER SMALL SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F6 30FC ; [.32D2.0020.000F][.32B8.0020.0007.0002] # <KATAKANA LETTER SMALL HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FC 30FC ; [.32E0.0020.000F][.32B8.0020.0007.0002] # <KATAKANA LETTER SMALL RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A5 30FC ; [.32B9.0020.000F.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF69 30FC ; [.32B9.0020.000F.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF69 FF70 ; [.32B9.0020.000F.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3045 30FC ; [.32B9.0020.000F.0001][.32B9.0020.0007.0002] # <HIRAGANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A6 30FC ; [.32B9.0020.0011.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF73 30FC ; [.32B9.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF73 FF70 ; [.32B9.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3046 30FC ; [.32B9.0020.0011.0001][.32B9.0020.0007.0002] # <HIRAGANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AF 30FC ; [.32BF.0020.0011.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF78 30FC ; [.32BF.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF78 FF70 ; [.32BF.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304F 30FC ; [.32BF.0020.0011.0001][.32B9.0020.0007.0002] # <HIRAGANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B0 30FC ; [.32BF.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER GU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AF 3099 30FC ; [.32BF.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF78 FF9E 30FC ; [.32BF.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF78 FF9E FF70 ; [.32BF.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3050 30FC ; [.32BF.0020.0011.0001][.0000.0037.0002][.32B9.0020.0007.0002] # <HIRAGANA LETTER GU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304F 3099 30FC ; [.32BF.0020.0011.0001][.0000.0037.0002][.32B9.0020.0007.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B9 30FC ; [.32C4.0020.0011.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7D 30FC ; [.32C4.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7D FF70 ; [.32C4.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3059 30FC ; [.32C4.0020.0011.0001][.32B9.0020.0007.0002] # <HIRAGANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BA 30FC ; [.32C4.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER ZU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B9 3099 30FC ; [.32C4.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7D FF9E 30FC ; [.32C4.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7D FF9E FF70 ; [.32C4.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305A 30FC ; [.32C4.0020.0011.0001][.0000.0037.0002][.32B9.0020.0007.0002] # <HIRAGANA LETTER ZU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3059 3099 30FC ; [.32C4.0020.0011.0001][.0000.0037.0002][.32B9.0020.0007.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C3 30FC ; [.32C9.0020.000F.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6F 30FC ; [.32C9.0020.000F.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6F FF70 ; [.32C9.0020.000F.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3063 30FC ; [.32C9.0020.000F.0001][.32B9.0020.0007.0002] # <HIRAGANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C4 30FC ; [.32C9.0020.0011.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF82 30FC ; [.32C9.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF82 FF70 ; [.32C9.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3064 30FC ; [.32C9.0020.0011.0001][.32B9.0020.0007.0002] # <HIRAGANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C5 30FC ; [.32C9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER DU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C4 3099 30FC ; [.32C9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF82 FF9E 30FC ; [.32C9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF82 FF9E FF70 ; [.32C9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3065 30FC ; [.32C9.0020.0011.0001][.0000.0037.0002][.32B9.0020.0007.0002] # <HIRAGANA LETTER DU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3064 3099 30FC ; [.32C9.0020.0011.0001][.0000.0037.0002][.32B9.0020.0007.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CC 30FC ; [.32CE.0020.0011.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF87 30FC ; [.32CE.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF87 FF70 ; [.32CE.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306C 30FC ; [.32CE.0020.0011.0001][.32B9.0020.0007.0002] # <HIRAGANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D5 30FC ; [.32D3.0020.0011.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C 30FC ; [.32D3.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF70 ; [.32D3.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3075 30FC ; [.32D3.0020.0011.0001][.32B9.0020.0007.0002] # <HIRAGANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D6 30FC ; [.32D3.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER BU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D5 3099 30FC ; [.32D3.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF9E 30FC ; [.32D3.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF9E FF70 ; [.32D3.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3076 30FC ; [.32D3.0020.0011.0001][.0000.0037.0002][.32B9.0020.0007.0002] # <HIRAGANA LETTER BU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3075 3099 30FC ; [.32D3.0020.0011.0001][.0000.0037.0002][.32B9.0020.0007.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D7 30FC ; [.32D3.0020.0011.0002][.0000.0038.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER PU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D5 309A 30FC ; [.32D3.0020.0011.0002][.0000.0038.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF9F 30FC ; [.32D3.0020.0011.0002][.0000.0038.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF9F FF70 ; [.32D3.0020.0011.0002][.0000.0038.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3077 30FC ; [.32D3.0020.0011.0001][.0000.0038.0002][.32B9.0020.0007.0002] # <HIRAGANA LETTER PU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3075 309A 30FC ; [.32D3.0020.0011.0001][.0000.0038.0002][.32B9.0020.0007.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E0 30FC ; [.32D8.0020.0011.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF91 30FC ; [.32D8.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF91 FF70 ; [.32D8.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3080 30FC ; [.32D8.0020.0011.0001][.32B9.0020.0007.0002] # <HIRAGANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E5 30FC ; [.32DC.0020.000F.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6D 30FC ; [.32DC.0020.000F.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6D FF70 ; [.32DC.0020.000F.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3085 30FC ; [.32DC.0020.000F.0001][.32B9.0020.0007.0002] # <HIRAGANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E6 30FC ; [.32DC.0020.0011.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF95 30FC ; [.32DC.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF95 FF70 ; [.32DC.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3086 30FC ; [.32DC.0020.0011.0001][.32B9.0020.0007.0002] # <HIRAGANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EB 30FC ; [.32E1.0020.0011.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF99 30FC ; [.32E1.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF99 FF70 ; [.32E1.0020.0011.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308B 30FC ; [.32E1.0020.0011.0001][.32B9.0020.0007.0002] # <HIRAGANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F4 30FC ; [.32B9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER VU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A6 3099 30FC ; [.32B9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF73 FF9E 30FC ; [.32B9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF73 FF9E FF70 ; [.32B9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3094 30FC ; [.32B9.0020.0011.0001][.0000.0037.0002][.32B9.0020.0007.0002] # <HIRAGANA LETTER VU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3046 3099 30FC ; [.32B9.0020.0011.0001][.0000.0037.0002][.32B9.0020.0007.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F0 30FC ; [.32BF.0020.000F][.32B9.0020.0007.0002] # <KATAKANA LETTER SMALL KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F2 30FC ; [.32C4.0020.000F][.32B9.0020.0007.0002] # <KATAKANA LETTER SMALL SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F4 30FC ; [.32CE.0020.000F][.32B9.0020.0007.0002] # <KATAKANA LETTER SMALL NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F7 30FC ; [.32D3.0020.000F][.32B9.0020.0007.0002] # <KATAKANA LETTER SMALL HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FA 30FC ; [.32D8.0020.000F][.32B9.0020.0007.0002] # <KATAKANA LETTER SMALL MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FD 30FC ; [.32E1.0020.000F][.32B9.0020.0007.0002] # <KATAKANA LETTER SMALL RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A7 30FC ; [.32BB.0020.000F.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6A 30FC ; [.32BB.0020.000F.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6A FF70 ; [.32BB.0020.000F.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3047 30FC ; [.32BB.0020.000F.0001][.32BB.0020.0007.0002] # <HIRAGANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A8 30FC ; [.32BB.0020.0011.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF74 30FC ; [.32BB.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF74 FF70 ; [.32BB.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER E, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3048 30FC ; [.32BB.0020.0011.0001][.32BB.0020.0007.0002] # <HIRAGANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B1 30FC ; [.32C0.0020.0011.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF79 30FC ; [.32C0.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF79 FF70 ; [.32C0.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3051 30FC ; [.32C0.0020.0011.0001][.32BB.0020.0007.0002] # <HIRAGANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B2 30FC ; [.32C0.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER GE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B1 3099 30FC ; [.32C0.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF79 FF9E 30FC ; [.32C0.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF79 FF9E FF70 ; [.32C0.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3052 30FC ; [.32C0.0020.0011.0001][.0000.0037.0002][.32BB.0020.0007.0002] # <HIRAGANA LETTER GE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3051 3099 30FC ; [.32C0.0020.0011.0001][.0000.0037.0002][.32BB.0020.0007.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BB 30FC ; [.32C5.0020.0011.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7E 30FC ; [.32C5.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7E FF70 ; [.32C5.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305B 30FC ; [.32C5.0020.0011.0001][.32BB.0020.0007.0002] # <HIRAGANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BC 30FC ; [.32C5.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER ZE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BB 3099 30FC ; [.32C5.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7E FF9E 30FC ; [.32C5.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7E FF9E FF70 ; [.32C5.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305C 30FC ; [.32C5.0020.0011.0001][.0000.0037.0002][.32BB.0020.0007.0002] # <HIRAGANA LETTER ZE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305B 3099 30FC ; [.32C5.0020.0011.0001][.0000.0037.0002][.32BB.0020.0007.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C6 30FC ; [.32CA.0020.0011.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF83 30FC ; [.32CA.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF83 FF70 ; [.32CA.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3066 30FC ; [.32CA.0020.0011.0001][.32BB.0020.0007.0002] # <HIRAGANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C7 30FC ; [.32CA.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER DE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C6 3099 30FC ; [.32CA.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF83 FF9E 30FC ; [.32CA.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF83 FF9E FF70 ; [.32CA.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3067 30FC ; [.32CA.0020.0011.0001][.0000.0037.0002][.32BB.0020.0007.0002] # <HIRAGANA LETTER DE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3066 3099 30FC ; [.32CA.0020.0011.0001][.0000.0037.0002][.32BB.0020.0007.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CD 30FC ; [.32CF.0020.0011.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF88 30FC ; [.32CF.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF88 FF70 ; [.32CF.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306D 30FC ; [.32CF.0020.0011.0001][.32BB.0020.0007.0002] # <HIRAGANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D8 30FC ; [.32D4.0020.0011.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D 30FC ; [.32D4.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF70 ; [.32D4.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3078 30FC ; [.32D4.0020.0011.0001][.32BB.0020.0007.0002] # <HIRAGANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D9 30FC ; [.32D4.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER BE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D8 3099 30FC ; [.32D4.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF9E 30FC ; [.32D4.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF9E FF70 ; [.32D4.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3079 30FC ; [.32D4.0020.0011.0001][.0000.0037.0002][.32BB.0020.0007.0002] # <HIRAGANA LETTER BE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3078 3099 30FC ; [.32D4.0020.0011.0001][.0000.0037.0002][.32BB.0020.0007.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DA 30FC ; [.32D4.0020.0011.0002][.0000.0038.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER PE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D8 309A 30FC ; [.32D4.0020.0011.0002][.0000.0038.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF9F 30FC ; [.32D4.0020.0011.0002][.0000.0038.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF9F FF70 ; [.32D4.0020.0011.0002][.0000.0038.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307A 30FC ; [.32D4.0020.0011.0001][.0000.0038.0002][.32BB.0020.0007.0002] # <HIRAGANA LETTER PE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3078 309A 30FC ; [.32D4.0020.0011.0001][.0000.0038.0002][.32BB.0020.0007.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E1 30FC ; [.32D9.0020.0011.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF92 30FC ; [.32D9.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF92 FF70 ; [.32D9.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER ME, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3081 30FC ; [.32D9.0020.0011.0001][.32BB.0020.0007.0002] # <HIRAGANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EC 30FC ; [.32E2.0020.0011.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9A 30FC ; [.32E2.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9A FF70 ; [.32E2.0020.0011.0002][.32BB.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308C 30FC ; [.32E2.0020.0011.0001][.32BB.0020.0007.0002] # <HIRAGANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F1 30FC ; [.32E6.0020.0011.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER WE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3091 30FC ; [.32E6.0020.0011.0001][.32BB.0020.0007.0002] # <HIRAGANA LETTER WE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F9 30FC ; [.32E6.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER VE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F1 3099 30FC ; [.32E6.0020.0011.0002][.0000.0037.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F6 30FC ; [.32C0.0020.000F.0002][.32BB.0020.0007.0002] # <KATAKANA LETTER SMALL KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3096 30FC ; [.32C0.0020.000F.0001][.32BB.0020.0007.0002] # <HIRAGANA LETTER SMALL KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F8 30FC ; [.32D4.0020.000F][.32BB.0020.0007.0002] # <KATAKANA LETTER SMALL HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FE 30FC ; [.32E2.0020.000F][.32BB.0020.0007.0002] # <KATAKANA LETTER SMALL RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A9 30FC ; [.32BC.0020.000F.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6B 30FC ; [.32BC.0020.000F.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6B FF70 ; [.32BC.0020.000F.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3049 30FC ; [.32BC.0020.000F.0001][.32BC.0020.0007.0002] # <HIRAGANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AA 30FC ; [.32BC.0020.0011.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF75 30FC ; [.32BC.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF75 FF70 ; [.32BC.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER O, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304A 30FC ; [.32BC.0020.0011.0001][.32BC.0020.0007.0002] # <HIRAGANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B3 30FC ; [.32C1.0020.0011.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7A 30FC ; [.32C1.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7A FF70 ; [.32C1.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3053 30FC ; [.32C1.0020.0011.0001][.32BC.0020.0007.0002] # <HIRAGANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B4 30FC ; [.32C1.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER GO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B3 3099 30FC ; [.32C1.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7A FF9E 30FC ; [.32C1.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7A FF9E FF70 ; [.32C1.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3054 30FC ; [.32C1.0020.0011.0001][.0000.0037.0002][.32BC.0020.0007.0002] # <HIRAGANA LETTER GO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3053 3099 30FC ; [.32C1.0020.0011.0001][.0000.0037.0002][.32BC.0020.0007.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BD 30FC ; [.32C6.0020.0011.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7F 30FC ; [.32C6.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7F FF70 ; [.32C6.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305D 30FC ; [.32C6.0020.0011.0001][.32BC.0020.0007.0002] # <HIRAGANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BE 30FC ; [.32C6.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER ZO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BD 3099 30FC ; [.32C6.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7F FF9E 30FC ; [.32C6.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7F FF9E FF70 ; [.32C6.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305E 30FC ; [.32C6.0020.0011.0001][.0000.0037.0002][.32BC.0020.0007.0002] # <HIRAGANA LETTER ZO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305D 3099 30FC ; [.32C6.0020.0011.0001][.0000.0037.0002][.32BC.0020.0007.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C8 30FC ; [.32CB.0020.0011.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF84 30FC ; [.32CB.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF84 FF70 ; [.32CB.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3068 30FC ; [.32CB.0020.0011.0001][.32BC.0020.0007.0002] # <HIRAGANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C9 30FC ; [.32CB.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER DO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C8 3099 30FC ; [.32CB.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF84 FF9E 30FC ; [.32CB.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF84 FF9E FF70 ; [.32CB.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3069 30FC ; [.32CB.0020.0011.0001][.0000.0037.0002][.32BC.0020.0007.0002] # <HIRAGANA LETTER DO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3068 3099 30FC ; [.32CB.0020.0011.0001][.0000.0037.0002][.32BC.0020.0007.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CE 30FC ; [.32D0.0020.0011.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF89 30FC ; [.32D0.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF89 FF70 ; [.32D0.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306E 30FC ; [.32D0.0020.0011.0001][.32BC.0020.0007.0002] # <HIRAGANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DB 30FC ; [.32D5.0020.0011.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E 30FC ; [.32D5.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF70 ; [.32D5.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307B 30FC ; [.32D5.0020.0011.0001][.32BC.0020.0007.0002] # <HIRAGANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DC 30FC ; [.32D5.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER BO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DB 3099 30FC ; [.32D5.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF9E 30FC ; [.32D5.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF9E FF70 ; [.32D5.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307C 30FC ; [.32D5.0020.0011.0001][.0000.0037.0002][.32BC.0020.0007.0002] # <HIRAGANA LETTER BO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307B 3099 30FC ; [.32D5.0020.0011.0001][.0000.0037.0002][.32BC.0020.0007.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DD 30FC ; [.32D5.0020.0011.0002][.0000.0038.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER PO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DB 309A 30FC ; [.32D5.0020.0011.0002][.0000.0038.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF9F 30FC ; [.32D5.0020.0011.0002][.0000.0038.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF9F FF70 ; [.32D5.0020.0011.0002][.0000.0038.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307D 30FC ; [.32D5.0020.0011.0001][.0000.0038.0002][.32BC.0020.0007.0002] # <HIRAGANA LETTER PO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307B 309A 30FC ; [.32D5.0020.0011.0001][.0000.0038.0002][.32BC.0020.0007.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E2 30FC ; [.32DA.0020.0011.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF93 30FC ; [.32DA.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF93 FF70 ; [.32DA.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3082 30FC ; [.32DA.0020.0011.0001][.32BC.0020.0007.0002] # <HIRAGANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E7 30FC ; [.32DE.0020.000F.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6E 30FC ; [.32DE.0020.000F.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6E FF70 ; [.32DE.0020.000F.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3087 30FC ; [.32DE.0020.000F.0001][.32BC.0020.0007.0002] # <HIRAGANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E8 30FC ; [.32DE.0020.0011.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF96 30FC ; [.32DE.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF96 FF70 ; [.32DE.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3088 30FC ; [.32DE.0020.0011.0001][.32BC.0020.0007.0002] # <HIRAGANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30ED 30FC ; [.32E3.0020.0011.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9B 30FC ; [.32E3.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9B FF70 ; [.32E3.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308D 30FC ; [.32E3.0020.0011.0001][.32BC.0020.0007.0002] # <HIRAGANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F2 30FC ; [.32E7.0020.0011.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF66 30FC ; [.32E7.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF66 FF70 ; [.32E7.0020.0011.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3092 30FC ; [.32E7.0020.0011.0001][.32BC.0020.0007.0002] # <HIRAGANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30FA 30FC ; [.32E7.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER VO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F2 3099 30FC ; [.32E7.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF66 FF9E 30FC ; [.32E7.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF66 FF9E FF70 ; [.32E7.0020.0011.0002][.0000.0037.0002][.32BC.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F3 30FC ; [.32CB.0020.000F][.32BC.0020.0007.0002] # <KATAKANA LETTER SMALL TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F9 30FC ; [.32D5.0020.000F][.32BC.0020.0007.0002] # <KATAKANA LETTER SMALL HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FF 30FC ; [.32E3.0020.000F][.32BC.0020.0007.0002] # <KATAKANA LETTER SMALL RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A1 30FD ; [.32B7.0020.000F.0002][.32B7.0020.0010.0002] # <KATAKANA LETTER SMALL A, KATAKANA ITERATION MARK>
-FF67 30FD ; [.32B7.0020.000F.0002][.32B7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, KATAKANA ITERATION MARK>
-3041 309D ; [.32B7.0020.000F.0001][.32B7.0020.0010.0002] # <HIRAGANA LETTER SMALL A, HIRAGANA ITERATION MARK>
-30A2 30FD ; [.32B7.0020.0011.0002][.32B7.0020.0010.0002] # <KATAKANA LETTER A, KATAKANA ITERATION MARK>
-FF71 30FD ; [.32B7.0020.0011.0002][.32B7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER A, KATAKANA ITERATION MARK>
-3042 309D ; [.32B7.0020.0011.0001][.32B7.0020.0010.0002] # <HIRAGANA LETTER A, HIRAGANA ITERATION MARK>
-30A3 30FD ; [.32B8.0020.000F.0002][.32B8.0020.0010.0002] # <KATAKANA LETTER SMALL I, KATAKANA ITERATION MARK>
-FF68 30FD ; [.32B8.0020.000F.0002][.32B8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, KATAKANA ITERATION MARK>
-3043 309D ; [.32B8.0020.000F.0001][.32B8.0020.0010.0002] # <HIRAGANA LETTER SMALL I, HIRAGANA ITERATION MARK>
-30A4 30FD ; [.32B8.0020.0011.0002][.32B8.0020.0010.0002] # <KATAKANA LETTER I, KATAKANA ITERATION MARK>
-FF72 30FD ; [.32B8.0020.0011.0002][.32B8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER I, KATAKANA ITERATION MARK>
-3044 309D ; [.32B8.0020.0011.0001][.32B8.0020.0010.0002] # <HIRAGANA LETTER I, HIRAGANA ITERATION MARK>
-30A5 30FD ; [.32B9.0020.000F.0002][.32B9.0020.0010.0002] # <KATAKANA LETTER SMALL U, KATAKANA ITERATION MARK>
-FF69 30FD ; [.32B9.0020.000F.0002][.32B9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA ITERATION MARK>
-3045 309D ; [.32B9.0020.000F.0001][.32B9.0020.0010.0002] # <HIRAGANA LETTER SMALL U, HIRAGANA ITERATION MARK>
-30A5 30FE ; [.32B9.0020.000F.0002][.32B9.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL U, KATAKANA VOICED ITERATION MARK>
-FF69 30FE ; [.32B9.0020.000F.0002][.32B9.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA VOICED ITERATION MARK>
-3045 309E ; [.32B9.0020.000F.0001][.32B9.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL U, HIRAGANA VOICED ITERATION MARK>
-30A6 30FD ; [.32B9.0020.0011.0002][.32B9.0020.0010.0002] # <KATAKANA LETTER U, KATAKANA ITERATION MARK>
-FF73 30FD ; [.32B9.0020.0011.0002][.32B9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA ITERATION MARK>
-3046 309D ; [.32B9.0020.0011.0001][.32B9.0020.0010.0002] # <HIRAGANA LETTER U, HIRAGANA ITERATION MARK>
-30A6 30FE ; [.32B9.0020.0011.0002][.32B9.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER U, KATAKANA VOICED ITERATION MARK>
-FF73 30FE ; [.32B9.0020.0011.0002][.32B9.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA VOICED ITERATION MARK>
-3046 309E ; [.32B9.0020.0011.0001][.32B9.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER U, HIRAGANA VOICED ITERATION MARK>
-30A7 30FD ; [.32BB.0020.000F.0002][.32BB.0020.0010.0002] # <KATAKANA LETTER SMALL E, KATAKANA ITERATION MARK>
-FF6A 30FD ; [.32BB.0020.000F.0002][.32BB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, KATAKANA ITERATION MARK>
-3047 309D ; [.32BB.0020.000F.0001][.32BB.0020.0010.0002] # <HIRAGANA LETTER SMALL E, HIRAGANA ITERATION MARK>
-30A8 30FD ; [.32BB.0020.0011.0002][.32BB.0020.0010.0002] # <KATAKANA LETTER E, KATAKANA ITERATION MARK>
-FF74 30FD ; [.32BB.0020.0011.0002][.32BB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER E, KATAKANA ITERATION MARK>
-3048 309D ; [.32BB.0020.0011.0001][.32BB.0020.0010.0002] # <HIRAGANA LETTER E, HIRAGANA ITERATION MARK>
-30A9 30FD ; [.32BC.0020.000F.0002][.32BC.0020.0010.0002] # <KATAKANA LETTER SMALL O, KATAKANA ITERATION MARK>
-FF6B 30FD ; [.32BC.0020.000F.0002][.32BC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, KATAKANA ITERATION MARK>
-3049 309D ; [.32BC.0020.000F.0001][.32BC.0020.0010.0002] # <HIRAGANA LETTER SMALL O, HIRAGANA ITERATION MARK>
-30AA 30FD ; [.32BC.0020.0011.0002][.32BC.0020.0010.0002] # <KATAKANA LETTER O, KATAKANA ITERATION MARK>
-FF75 30FD ; [.32BC.0020.0011.0002][.32BC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER O, KATAKANA ITERATION MARK>
-304A 309D ; [.32BC.0020.0011.0001][.32BC.0020.0010.0002] # <HIRAGANA LETTER O, HIRAGANA ITERATION MARK>
-30AB 30FD ; [.32BD.0020.0011.0002][.32BD.0020.0010.0002] # <KATAKANA LETTER KA, KATAKANA ITERATION MARK>
-FF76 30FD ; [.32BD.0020.0011.0002][.32BD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA ITERATION MARK>
-304B 309D ; [.32BD.0020.0011.0001][.32BD.0020.0010.0002] # <HIRAGANA LETTER KA, HIRAGANA ITERATION MARK>
-30AB 30FE ; [.32BD.0020.0011.0002][.32BD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KA, KATAKANA VOICED ITERATION MARK>
-FF76 30FE ; [.32BD.0020.0011.0002][.32BD.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA VOICED ITERATION MARK>
-304B 309E ; [.32BD.0020.0011.0001][.32BD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KA, HIRAGANA VOICED ITERATION MARK>
-30AC 30FD ; [.32BD.0020.0011.0002][.0000.0037.0002][.32BD.0020.0010.0002] # <KATAKANA LETTER GA, KATAKANA ITERATION MARK>
-30AB 3099 30FD ; [.32BD.0020.0011.0002][.0000.0037.0002][.32BD.0020.0010.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF76 FF9E 30FD ; [.32BD.0020.0011.0002][.0000.0037.0002][.32BD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-304C 309D ; [.32BD.0020.0011.0001][.0000.0037.0002][.32BD.0020.0010.0002] # <HIRAGANA LETTER GA, HIRAGANA ITERATION MARK>
-304B 3099 309D ; [.32BD.0020.0011.0001][.0000.0037.0002][.32BD.0020.0010.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30AC 30FE ; [.32BD.0020.0011.0002][.0000.0037.0002][.32BD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GA, KATAKANA VOICED ITERATION MARK>
-30AB 3099 30FE ; [.32BD.0020.0011.0002][.0000.0037.0002][.32BD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF76 FF9E 30FE ; [.32BD.0020.0011.0002][.0000.0037.0002][.32BD.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-304C 309E ; [.32BD.0020.0011.0001][.0000.0037.0002][.32BD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GA, HIRAGANA VOICED ITERATION MARK>
-304B 3099 309E ; [.32BD.0020.0011.0001][.0000.0037.0002][.32BD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30AD 30FD ; [.32BE.0020.0011.0002][.32BE.0020.0010.0002] # <KATAKANA LETTER KI, KATAKANA ITERATION MARK>
-FF77 30FD ; [.32BE.0020.0011.0002][.32BE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA ITERATION MARK>
-304D 309D ; [.32BE.0020.0011.0001][.32BE.0020.0010.0002] # <HIRAGANA LETTER KI, HIRAGANA ITERATION MARK>
-30AD 30FE ; [.32BE.0020.0011.0002][.32BE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KI, KATAKANA VOICED ITERATION MARK>
-FF77 30FE ; [.32BE.0020.0011.0002][.32BE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA VOICED ITERATION MARK>
-304D 309E ; [.32BE.0020.0011.0001][.32BE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KI, HIRAGANA VOICED ITERATION MARK>
-30AE 30FD ; [.32BE.0020.0011.0002][.0000.0037.0002][.32BE.0020.0010.0002] # <KATAKANA LETTER GI, KATAKANA ITERATION MARK>
-30AD 3099 30FD ; [.32BE.0020.0011.0002][.0000.0037.0002][.32BE.0020.0010.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF77 FF9E 30FD ; [.32BE.0020.0011.0002][.0000.0037.0002][.32BE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-304E 309D ; [.32BE.0020.0011.0001][.0000.0037.0002][.32BE.0020.0010.0002] # <HIRAGANA LETTER GI, HIRAGANA ITERATION MARK>
-304D 3099 309D ; [.32BE.0020.0011.0001][.0000.0037.0002][.32BE.0020.0010.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30AE 30FE ; [.32BE.0020.0011.0002][.0000.0037.0002][.32BE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GI, KATAKANA VOICED ITERATION MARK>
-30AD 3099 30FE ; [.32BE.0020.0011.0002][.0000.0037.0002][.32BE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF77 FF9E 30FE ; [.32BE.0020.0011.0002][.0000.0037.0002][.32BE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-304E 309E ; [.32BE.0020.0011.0001][.0000.0037.0002][.32BE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GI, HIRAGANA VOICED ITERATION MARK>
-304D 3099 309E ; [.32BE.0020.0011.0001][.0000.0037.0002][.32BE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30AF 30FD ; [.32BF.0020.0011.0002][.32BF.0020.0010.0002] # <KATAKANA LETTER KU, KATAKANA ITERATION MARK>
-FF78 30FD ; [.32BF.0020.0011.0002][.32BF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA ITERATION MARK>
-304F 309D ; [.32BF.0020.0011.0001][.32BF.0020.0010.0002] # <HIRAGANA LETTER KU, HIRAGANA ITERATION MARK>
-30AF 30FE ; [.32BF.0020.0011.0002][.32BF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KU, KATAKANA VOICED ITERATION MARK>
-FF78 30FE ; [.32BF.0020.0011.0002][.32BF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA VOICED ITERATION MARK>
-304F 309E ; [.32BF.0020.0011.0001][.32BF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KU, HIRAGANA VOICED ITERATION MARK>
-30B0 30FD ; [.32BF.0020.0011.0002][.0000.0037.0002][.32BF.0020.0010.0002] # <KATAKANA LETTER GU, KATAKANA ITERATION MARK>
-30AF 3099 30FD ; [.32BF.0020.0011.0002][.0000.0037.0002][.32BF.0020.0010.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF78 FF9E 30FD ; [.32BF.0020.0011.0002][.0000.0037.0002][.32BF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3050 309D ; [.32BF.0020.0011.0001][.0000.0037.0002][.32BF.0020.0010.0002] # <HIRAGANA LETTER GU, HIRAGANA ITERATION MARK>
-304F 3099 309D ; [.32BF.0020.0011.0001][.0000.0037.0002][.32BF.0020.0010.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B0 30FE ; [.32BF.0020.0011.0002][.0000.0037.0002][.32BF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GU, KATAKANA VOICED ITERATION MARK>
-30AF 3099 30FE ; [.32BF.0020.0011.0002][.0000.0037.0002][.32BF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF78 FF9E 30FE ; [.32BF.0020.0011.0002][.0000.0037.0002][.32BF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3050 309E ; [.32BF.0020.0011.0001][.0000.0037.0002][.32BF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GU, HIRAGANA VOICED ITERATION MARK>
-304F 3099 309E ; [.32BF.0020.0011.0001][.0000.0037.0002][.32BF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B1 30FD ; [.32C0.0020.0011.0002][.32C0.0020.0010.0002] # <KATAKANA LETTER KE, KATAKANA ITERATION MARK>
-FF79 30FD ; [.32C0.0020.0011.0002][.32C0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA ITERATION MARK>
-3051 309D ; [.32C0.0020.0011.0001][.32C0.0020.0010.0002] # <HIRAGANA LETTER KE, HIRAGANA ITERATION MARK>
-30B1 30FE ; [.32C0.0020.0011.0002][.32C0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KE, KATAKANA VOICED ITERATION MARK>
-FF79 30FE ; [.32C0.0020.0011.0002][.32C0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA VOICED ITERATION MARK>
-3051 309E ; [.32C0.0020.0011.0001][.32C0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KE, HIRAGANA VOICED ITERATION MARK>
-30B2 30FD ; [.32C0.0020.0011.0002][.0000.0037.0002][.32C0.0020.0010.0002] # <KATAKANA LETTER GE, KATAKANA ITERATION MARK>
-30B1 3099 30FD ; [.32C0.0020.0011.0002][.0000.0037.0002][.32C0.0020.0010.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF79 FF9E 30FD ; [.32C0.0020.0011.0002][.0000.0037.0002][.32C0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3052 309D ; [.32C0.0020.0011.0001][.0000.0037.0002][.32C0.0020.0010.0002] # <HIRAGANA LETTER GE, HIRAGANA ITERATION MARK>
-3051 3099 309D ; [.32C0.0020.0011.0001][.0000.0037.0002][.32C0.0020.0010.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B2 30FE ; [.32C0.0020.0011.0002][.0000.0037.0002][.32C0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GE, KATAKANA VOICED ITERATION MARK>
-30B1 3099 30FE ; [.32C0.0020.0011.0002][.0000.0037.0002][.32C0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF79 FF9E 30FE ; [.32C0.0020.0011.0002][.0000.0037.0002][.32C0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3052 309E ; [.32C0.0020.0011.0001][.0000.0037.0002][.32C0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GE, HIRAGANA VOICED ITERATION MARK>
-3051 3099 309E ; [.32C0.0020.0011.0001][.0000.0037.0002][.32C0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B3 30FD ; [.32C1.0020.0011.0002][.32C1.0020.0010.0002] # <KATAKANA LETTER KO, KATAKANA ITERATION MARK>
-FF7A 30FD ; [.32C1.0020.0011.0002][.32C1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA ITERATION MARK>
-3053 309D ; [.32C1.0020.0011.0001][.32C1.0020.0010.0002] # <HIRAGANA LETTER KO, HIRAGANA ITERATION MARK>
-30B3 30FE ; [.32C1.0020.0011.0002][.32C1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KO, KATAKANA VOICED ITERATION MARK>
-FF7A 30FE ; [.32C1.0020.0011.0002][.32C1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA VOICED ITERATION MARK>
-3053 309E ; [.32C1.0020.0011.0001][.32C1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KO, HIRAGANA VOICED ITERATION MARK>
-30B4 30FD ; [.32C1.0020.0011.0002][.0000.0037.0002][.32C1.0020.0010.0002] # <KATAKANA LETTER GO, KATAKANA ITERATION MARK>
-30B3 3099 30FD ; [.32C1.0020.0011.0002][.0000.0037.0002][.32C1.0020.0010.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7A FF9E 30FD ; [.32C1.0020.0011.0002][.0000.0037.0002][.32C1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3054 309D ; [.32C1.0020.0011.0001][.0000.0037.0002][.32C1.0020.0010.0002] # <HIRAGANA LETTER GO, HIRAGANA ITERATION MARK>
-3053 3099 309D ; [.32C1.0020.0011.0001][.0000.0037.0002][.32C1.0020.0010.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B4 30FE ; [.32C1.0020.0011.0002][.0000.0037.0002][.32C1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GO, KATAKANA VOICED ITERATION MARK>
-30B3 3099 30FE ; [.32C1.0020.0011.0002][.0000.0037.0002][.32C1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7A FF9E 30FE ; [.32C1.0020.0011.0002][.0000.0037.0002][.32C1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3054 309E ; [.32C1.0020.0011.0001][.0000.0037.0002][.32C1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GO, HIRAGANA VOICED ITERATION MARK>
-3053 3099 309E ; [.32C1.0020.0011.0001][.0000.0037.0002][.32C1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B5 30FD ; [.32C2.0020.0011.0002][.32C2.0020.0010.0002] # <KATAKANA LETTER SA, KATAKANA ITERATION MARK>
-FF7B 30FD ; [.32C2.0020.0011.0002][.32C2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA ITERATION MARK>
-3055 309D ; [.32C2.0020.0011.0001][.32C2.0020.0010.0002] # <HIRAGANA LETTER SA, HIRAGANA ITERATION MARK>
-30B5 30FE ; [.32C2.0020.0011.0002][.32C2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SA, KATAKANA VOICED ITERATION MARK>
-FF7B 30FE ; [.32C2.0020.0011.0002][.32C2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA VOICED ITERATION MARK>
-3055 309E ; [.32C2.0020.0011.0001][.32C2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SA, HIRAGANA VOICED ITERATION MARK>
-30B6 30FD ; [.32C2.0020.0011.0002][.0000.0037.0002][.32C2.0020.0010.0002] # <KATAKANA LETTER ZA, KATAKANA ITERATION MARK>
-30B5 3099 30FD ; [.32C2.0020.0011.0002][.0000.0037.0002][.32C2.0020.0010.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7B FF9E 30FD ; [.32C2.0020.0011.0002][.0000.0037.0002][.32C2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3056 309D ; [.32C2.0020.0011.0001][.0000.0037.0002][.32C2.0020.0010.0002] # <HIRAGANA LETTER ZA, HIRAGANA ITERATION MARK>
-3055 3099 309D ; [.32C2.0020.0011.0001][.0000.0037.0002][.32C2.0020.0010.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B6 30FE ; [.32C2.0020.0011.0002][.0000.0037.0002][.32C2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZA, KATAKANA VOICED ITERATION MARK>
-30B5 3099 30FE ; [.32C2.0020.0011.0002][.0000.0037.0002][.32C2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7B FF9E 30FE ; [.32C2.0020.0011.0002][.0000.0037.0002][.32C2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3056 309E ; [.32C2.0020.0011.0001][.0000.0037.0002][.32C2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZA, HIRAGANA VOICED ITERATION MARK>
-3055 3099 309E ; [.32C2.0020.0011.0001][.0000.0037.0002][.32C2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B7 30FD ; [.32C3.0020.0011.0002][.32C3.0020.0010.0002] # <KATAKANA LETTER SI, KATAKANA ITERATION MARK>
-FF7C 30FD ; [.32C3.0020.0011.0002][.32C3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA ITERATION MARK>
-3057 309D ; [.32C3.0020.0011.0001][.32C3.0020.0010.0002] # <HIRAGANA LETTER SI, HIRAGANA ITERATION MARK>
-30B7 30FE ; [.32C3.0020.0011.0002][.32C3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SI, KATAKANA VOICED ITERATION MARK>
-FF7C 30FE ; [.32C3.0020.0011.0002][.32C3.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA VOICED ITERATION MARK>
-3057 309E ; [.32C3.0020.0011.0001][.32C3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SI, HIRAGANA VOICED ITERATION MARK>
-30B8 30FD ; [.32C3.0020.0011.0002][.0000.0037.0002][.32C3.0020.0010.0002] # <KATAKANA LETTER ZI, KATAKANA ITERATION MARK>
-30B7 3099 30FD ; [.32C3.0020.0011.0002][.0000.0037.0002][.32C3.0020.0010.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7C FF9E 30FD ; [.32C3.0020.0011.0002][.0000.0037.0002][.32C3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3058 309D ; [.32C3.0020.0011.0001][.0000.0037.0002][.32C3.0020.0010.0002] # <HIRAGANA LETTER ZI, HIRAGANA ITERATION MARK>
-3057 3099 309D ; [.32C3.0020.0011.0001][.0000.0037.0002][.32C3.0020.0010.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B8 30FE ; [.32C3.0020.0011.0002][.0000.0037.0002][.32C3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZI, KATAKANA VOICED ITERATION MARK>
-30B7 3099 30FE ; [.32C3.0020.0011.0002][.0000.0037.0002][.32C3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7C FF9E 30FE ; [.32C3.0020.0011.0002][.0000.0037.0002][.32C3.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3058 309E ; [.32C3.0020.0011.0001][.0000.0037.0002][.32C3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZI, HIRAGANA VOICED ITERATION MARK>
-3057 3099 309E ; [.32C3.0020.0011.0001][.0000.0037.0002][.32C3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B9 30FD ; [.32C4.0020.0011.0002][.32C4.0020.0010.0002] # <KATAKANA LETTER SU, KATAKANA ITERATION MARK>
-FF7D 30FD ; [.32C4.0020.0011.0002][.32C4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA ITERATION MARK>
-3059 309D ; [.32C4.0020.0011.0001][.32C4.0020.0010.0002] # <HIRAGANA LETTER SU, HIRAGANA ITERATION MARK>
-30B9 30FE ; [.32C4.0020.0011.0002][.32C4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SU, KATAKANA VOICED ITERATION MARK>
-FF7D 30FE ; [.32C4.0020.0011.0002][.32C4.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA VOICED ITERATION MARK>
-3059 309E ; [.32C4.0020.0011.0001][.32C4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SU, HIRAGANA VOICED ITERATION MARK>
-30BA 30FD ; [.32C4.0020.0011.0002][.0000.0037.0002][.32C4.0020.0010.0002] # <KATAKANA LETTER ZU, KATAKANA ITERATION MARK>
-30B9 3099 30FD ; [.32C4.0020.0011.0002][.0000.0037.0002][.32C4.0020.0010.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7D FF9E 30FD ; [.32C4.0020.0011.0002][.0000.0037.0002][.32C4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-305A 309D ; [.32C4.0020.0011.0001][.0000.0037.0002][.32C4.0020.0010.0002] # <HIRAGANA LETTER ZU, HIRAGANA ITERATION MARK>
-3059 3099 309D ; [.32C4.0020.0011.0001][.0000.0037.0002][.32C4.0020.0010.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30BA 30FE ; [.32C4.0020.0011.0002][.0000.0037.0002][.32C4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZU, KATAKANA VOICED ITERATION MARK>
-30B9 3099 30FE ; [.32C4.0020.0011.0002][.0000.0037.0002][.32C4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7D FF9E 30FE ; [.32C4.0020.0011.0002][.0000.0037.0002][.32C4.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-305A 309E ; [.32C4.0020.0011.0001][.0000.0037.0002][.32C4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZU, HIRAGANA VOICED ITERATION MARK>
-3059 3099 309E ; [.32C4.0020.0011.0001][.0000.0037.0002][.32C4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30BB 30FD ; [.32C5.0020.0011.0002][.32C5.0020.0010.0002] # <KATAKANA LETTER SE, KATAKANA ITERATION MARK>
-FF7E 30FD ; [.32C5.0020.0011.0002][.32C5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA ITERATION MARK>
-305B 309D ; [.32C5.0020.0011.0001][.32C5.0020.0010.0002] # <HIRAGANA LETTER SE, HIRAGANA ITERATION MARK>
-30BB 30FE ; [.32C5.0020.0011.0002][.32C5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SE, KATAKANA VOICED ITERATION MARK>
-FF7E 30FE ; [.32C5.0020.0011.0002][.32C5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA VOICED ITERATION MARK>
-305B 309E ; [.32C5.0020.0011.0001][.32C5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SE, HIRAGANA VOICED ITERATION MARK>
-30BC 30FD ; [.32C5.0020.0011.0002][.0000.0037.0002][.32C5.0020.0010.0002] # <KATAKANA LETTER ZE, KATAKANA ITERATION MARK>
-30BB 3099 30FD ; [.32C5.0020.0011.0002][.0000.0037.0002][.32C5.0020.0010.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7E FF9E 30FD ; [.32C5.0020.0011.0002][.0000.0037.0002][.32C5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-305C 309D ; [.32C5.0020.0011.0001][.0000.0037.0002][.32C5.0020.0010.0002] # <HIRAGANA LETTER ZE, HIRAGANA ITERATION MARK>
-305B 3099 309D ; [.32C5.0020.0011.0001][.0000.0037.0002][.32C5.0020.0010.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30BC 30FE ; [.32C5.0020.0011.0002][.0000.0037.0002][.32C5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZE, KATAKANA VOICED ITERATION MARK>
-30BB 3099 30FE ; [.32C5.0020.0011.0002][.0000.0037.0002][.32C5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7E FF9E 30FE ; [.32C5.0020.0011.0002][.0000.0037.0002][.32C5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-305C 309E ; [.32C5.0020.0011.0001][.0000.0037.0002][.32C5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZE, HIRAGANA VOICED ITERATION MARK>
-305B 3099 309E ; [.32C5.0020.0011.0001][.0000.0037.0002][.32C5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30BD 30FD ; [.32C6.0020.0011.0002][.32C6.0020.0010.0002] # <KATAKANA LETTER SO, KATAKANA ITERATION MARK>
-FF7F 30FD ; [.32C6.0020.0011.0002][.32C6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA ITERATION MARK>
-305D 309D ; [.32C6.0020.0011.0001][.32C6.0020.0010.0002] # <HIRAGANA LETTER SO, HIRAGANA ITERATION MARK>
-30BD 30FE ; [.32C6.0020.0011.0002][.32C6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SO, KATAKANA VOICED ITERATION MARK>
-FF7F 30FE ; [.32C6.0020.0011.0002][.32C6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA VOICED ITERATION MARK>
-305D 309E ; [.32C6.0020.0011.0001][.32C6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SO, HIRAGANA VOICED ITERATION MARK>
-30BE 30FD ; [.32C6.0020.0011.0002][.0000.0037.0002][.32C6.0020.0010.0002] # <KATAKANA LETTER ZO, KATAKANA ITERATION MARK>
-30BD 3099 30FD ; [.32C6.0020.0011.0002][.0000.0037.0002][.32C6.0020.0010.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7F FF9E 30FD ; [.32C6.0020.0011.0002][.0000.0037.0002][.32C6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-305E 309D ; [.32C6.0020.0011.0001][.0000.0037.0002][.32C6.0020.0010.0002] # <HIRAGANA LETTER ZO, HIRAGANA ITERATION MARK>
-305D 3099 309D ; [.32C6.0020.0011.0001][.0000.0037.0002][.32C6.0020.0010.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30BE 30FE ; [.32C6.0020.0011.0002][.0000.0037.0002][.32C6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZO, KATAKANA VOICED ITERATION MARK>
-30BD 3099 30FE ; [.32C6.0020.0011.0002][.0000.0037.0002][.32C6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7F FF9E 30FE ; [.32C6.0020.0011.0002][.0000.0037.0002][.32C6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-305E 309E ; [.32C6.0020.0011.0001][.0000.0037.0002][.32C6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZO, HIRAGANA VOICED ITERATION MARK>
-305D 3099 309E ; [.32C6.0020.0011.0001][.0000.0037.0002][.32C6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30BF 30FD ; [.32C7.0020.0011.0002][.32C7.0020.0010.0002] # <KATAKANA LETTER TA, KATAKANA ITERATION MARK>
-FF80 30FD ; [.32C7.0020.0011.0002][.32C7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA ITERATION MARK>
-305F 309D ; [.32C7.0020.0011.0001][.32C7.0020.0010.0002] # <HIRAGANA LETTER TA, HIRAGANA ITERATION MARK>
-30BF 30FE ; [.32C7.0020.0011.0002][.32C7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TA, KATAKANA VOICED ITERATION MARK>
-FF80 30FE ; [.32C7.0020.0011.0002][.32C7.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA VOICED ITERATION MARK>
-305F 309E ; [.32C7.0020.0011.0001][.32C7.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TA, HIRAGANA VOICED ITERATION MARK>
-30C0 30FD ; [.32C7.0020.0011.0002][.0000.0037.0002][.32C7.0020.0010.0002] # <KATAKANA LETTER DA, KATAKANA ITERATION MARK>
-30BF 3099 30FD ; [.32C7.0020.0011.0002][.0000.0037.0002][.32C7.0020.0010.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF80 FF9E 30FD ; [.32C7.0020.0011.0002][.0000.0037.0002][.32C7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3060 309D ; [.32C7.0020.0011.0001][.0000.0037.0002][.32C7.0020.0010.0002] # <HIRAGANA LETTER DA, HIRAGANA ITERATION MARK>
-305F 3099 309D ; [.32C7.0020.0011.0001][.0000.0037.0002][.32C7.0020.0010.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C0 30FE ; [.32C7.0020.0011.0002][.0000.0037.0002][.32C7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DA, KATAKANA VOICED ITERATION MARK>
-30BF 3099 30FE ; [.32C7.0020.0011.0002][.0000.0037.0002][.32C7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF80 FF9E 30FE ; [.32C7.0020.0011.0002][.0000.0037.0002][.32C7.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3060 309E ; [.32C7.0020.0011.0001][.0000.0037.0002][.32C7.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DA, HIRAGANA VOICED ITERATION MARK>
-305F 3099 309E ; [.32C7.0020.0011.0001][.0000.0037.0002][.32C7.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30C1 30FD ; [.32C8.0020.0011.0002][.32C8.0020.0010.0002] # <KATAKANA LETTER TI, KATAKANA ITERATION MARK>
-FF81 30FD ; [.32C8.0020.0011.0002][.32C8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA ITERATION MARK>
-3061 309D ; [.32C8.0020.0011.0001][.32C8.0020.0010.0002] # <HIRAGANA LETTER TI, HIRAGANA ITERATION MARK>
-30C1 30FE ; [.32C8.0020.0011.0002][.32C8.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TI, KATAKANA VOICED ITERATION MARK>
-FF81 30FE ; [.32C8.0020.0011.0002][.32C8.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA VOICED ITERATION MARK>
-3061 309E ; [.32C8.0020.0011.0001][.32C8.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TI, HIRAGANA VOICED ITERATION MARK>
-30C2 30FD ; [.32C8.0020.0011.0002][.0000.0037.0002][.32C8.0020.0010.0002] # <KATAKANA LETTER DI, KATAKANA ITERATION MARK>
-30C1 3099 30FD ; [.32C8.0020.0011.0002][.0000.0037.0002][.32C8.0020.0010.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF81 FF9E 30FD ; [.32C8.0020.0011.0002][.0000.0037.0002][.32C8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3062 309D ; [.32C8.0020.0011.0001][.0000.0037.0002][.32C8.0020.0010.0002] # <HIRAGANA LETTER DI, HIRAGANA ITERATION MARK>
-3061 3099 309D ; [.32C8.0020.0011.0001][.0000.0037.0002][.32C8.0020.0010.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C2 30FE ; [.32C8.0020.0011.0002][.0000.0037.0002][.32C8.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DI, KATAKANA VOICED ITERATION MARK>
-30C1 3099 30FE ; [.32C8.0020.0011.0002][.0000.0037.0002][.32C8.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF81 FF9E 30FE ; [.32C8.0020.0011.0002][.0000.0037.0002][.32C8.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3062 309E ; [.32C8.0020.0011.0001][.0000.0037.0002][.32C8.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DI, HIRAGANA VOICED ITERATION MARK>
-3061 3099 309E ; [.32C8.0020.0011.0001][.0000.0037.0002][.32C8.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30C3 30FD ; [.32C9.0020.000F.0002][.32C9.0020.0010.0002] # <KATAKANA LETTER SMALL TU, KATAKANA ITERATION MARK>
-FF6F 30FD ; [.32C9.0020.000F.0002][.32C9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA ITERATION MARK>
-3063 309D ; [.32C9.0020.000F.0001][.32C9.0020.0010.0002] # <HIRAGANA LETTER SMALL TU, HIRAGANA ITERATION MARK>
-30C3 30FE ; [.32C9.0020.000F.0002][.32C9.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL TU, KATAKANA VOICED ITERATION MARK>
-FF6F 30FE ; [.32C9.0020.000F.0002][.32C9.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA VOICED ITERATION MARK>
-3063 309E ; [.32C9.0020.000F.0001][.32C9.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL TU, HIRAGANA VOICED ITERATION MARK>
-30C4 30FD ; [.32C9.0020.0011.0002][.32C9.0020.0010.0002] # <KATAKANA LETTER TU, KATAKANA ITERATION MARK>
-FF82 30FD ; [.32C9.0020.0011.0002][.32C9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA ITERATION MARK>
-3064 309D ; [.32C9.0020.0011.0001][.32C9.0020.0010.0002] # <HIRAGANA LETTER TU, HIRAGANA ITERATION MARK>
-30C4 30FE ; [.32C9.0020.0011.0002][.32C9.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TU, KATAKANA VOICED ITERATION MARK>
-FF82 30FE ; [.32C9.0020.0011.0002][.32C9.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA VOICED ITERATION MARK>
-3064 309E ; [.32C9.0020.0011.0001][.32C9.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TU, HIRAGANA VOICED ITERATION MARK>
-30C5 30FD ; [.32C9.0020.0011.0002][.0000.0037.0002][.32C9.0020.0010.0002] # <KATAKANA LETTER DU, KATAKANA ITERATION MARK>
-30C4 3099 30FD ; [.32C9.0020.0011.0002][.0000.0037.0002][.32C9.0020.0010.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF82 FF9E 30FD ; [.32C9.0020.0011.0002][.0000.0037.0002][.32C9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3065 309D ; [.32C9.0020.0011.0001][.0000.0037.0002][.32C9.0020.0010.0002] # <HIRAGANA LETTER DU, HIRAGANA ITERATION MARK>
-3064 3099 309D ; [.32C9.0020.0011.0001][.0000.0037.0002][.32C9.0020.0010.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C5 30FE ; [.32C9.0020.0011.0002][.0000.0037.0002][.32C9.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DU, KATAKANA VOICED ITERATION MARK>
-30C4 3099 30FE ; [.32C9.0020.0011.0002][.0000.0037.0002][.32C9.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF82 FF9E 30FE ; [.32C9.0020.0011.0002][.0000.0037.0002][.32C9.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3065 309E ; [.32C9.0020.0011.0001][.0000.0037.0002][.32C9.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DU, HIRAGANA VOICED ITERATION MARK>
-3064 3099 309E ; [.32C9.0020.0011.0001][.0000.0037.0002][.32C9.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30C6 30FD ; [.32CA.0020.0011.0002][.32CA.0020.0010.0002] # <KATAKANA LETTER TE, KATAKANA ITERATION MARK>
-FF83 30FD ; [.32CA.0020.0011.0002][.32CA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA ITERATION MARK>
-3066 309D ; [.32CA.0020.0011.0001][.32CA.0020.0010.0002] # <HIRAGANA LETTER TE, HIRAGANA ITERATION MARK>
-30C6 30FE ; [.32CA.0020.0011.0002][.32CA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TE, KATAKANA VOICED ITERATION MARK>
-FF83 30FE ; [.32CA.0020.0011.0002][.32CA.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA VOICED ITERATION MARK>
-3066 309E ; [.32CA.0020.0011.0001][.32CA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TE, HIRAGANA VOICED ITERATION MARK>
-30C7 30FD ; [.32CA.0020.0011.0002][.0000.0037.0002][.32CA.0020.0010.0002] # <KATAKANA LETTER DE, KATAKANA ITERATION MARK>
-30C6 3099 30FD ; [.32CA.0020.0011.0002][.0000.0037.0002][.32CA.0020.0010.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF83 FF9E 30FD ; [.32CA.0020.0011.0002][.0000.0037.0002][.32CA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3067 309D ; [.32CA.0020.0011.0001][.0000.0037.0002][.32CA.0020.0010.0002] # <HIRAGANA LETTER DE, HIRAGANA ITERATION MARK>
-3066 3099 309D ; [.32CA.0020.0011.0001][.0000.0037.0002][.32CA.0020.0010.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C7 30FE ; [.32CA.0020.0011.0002][.0000.0037.0002][.32CA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DE, KATAKANA VOICED ITERATION MARK>
-30C6 3099 30FE ; [.32CA.0020.0011.0002][.0000.0037.0002][.32CA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF83 FF9E 30FE ; [.32CA.0020.0011.0002][.0000.0037.0002][.32CA.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3067 309E ; [.32CA.0020.0011.0001][.0000.0037.0002][.32CA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DE, HIRAGANA VOICED ITERATION MARK>
-3066 3099 309E ; [.32CA.0020.0011.0001][.0000.0037.0002][.32CA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30C8 30FD ; [.32CB.0020.0011.0002][.32CB.0020.0010.0002] # <KATAKANA LETTER TO, KATAKANA ITERATION MARK>
-FF84 30FD ; [.32CB.0020.0011.0002][.32CB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA ITERATION MARK>
-3068 309D ; [.32CB.0020.0011.0001][.32CB.0020.0010.0002] # <HIRAGANA LETTER TO, HIRAGANA ITERATION MARK>
-30C8 30FE ; [.32CB.0020.0011.0002][.32CB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TO, KATAKANA VOICED ITERATION MARK>
-FF84 30FE ; [.32CB.0020.0011.0002][.32CB.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA VOICED ITERATION MARK>
-3068 309E ; [.32CB.0020.0011.0001][.32CB.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TO, HIRAGANA VOICED ITERATION MARK>
-30C9 30FD ; [.32CB.0020.0011.0002][.0000.0037.0002][.32CB.0020.0010.0002] # <KATAKANA LETTER DO, KATAKANA ITERATION MARK>
-30C8 3099 30FD ; [.32CB.0020.0011.0002][.0000.0037.0002][.32CB.0020.0010.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF84 FF9E 30FD ; [.32CB.0020.0011.0002][.0000.0037.0002][.32CB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3069 309D ; [.32CB.0020.0011.0001][.0000.0037.0002][.32CB.0020.0010.0002] # <HIRAGANA LETTER DO, HIRAGANA ITERATION MARK>
-3068 3099 309D ; [.32CB.0020.0011.0001][.0000.0037.0002][.32CB.0020.0010.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C9 30FE ; [.32CB.0020.0011.0002][.0000.0037.0002][.32CB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DO, KATAKANA VOICED ITERATION MARK>
-30C8 3099 30FE ; [.32CB.0020.0011.0002][.0000.0037.0002][.32CB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF84 FF9E 30FE ; [.32CB.0020.0011.0002][.0000.0037.0002][.32CB.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3069 309E ; [.32CB.0020.0011.0001][.0000.0037.0002][.32CB.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DO, HIRAGANA VOICED ITERATION MARK>
-3068 3099 309E ; [.32CB.0020.0011.0001][.0000.0037.0002][.32CB.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30CA 30FD ; [.32CC.0020.0011.0002][.32CC.0020.0010.0002] # <KATAKANA LETTER NA, KATAKANA ITERATION MARK>
-FF85 30FD ; [.32CC.0020.0011.0002][.32CC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NA, KATAKANA ITERATION MARK>
-306A 309D ; [.32CC.0020.0011.0001][.32CC.0020.0010.0002] # <HIRAGANA LETTER NA, HIRAGANA ITERATION MARK>
-30CB 30FD ; [.32CD.0020.0011.0002][.32CD.0020.0010.0002] # <KATAKANA LETTER NI, KATAKANA ITERATION MARK>
-FF86 30FD ; [.32CD.0020.0011.0002][.32CD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NI, KATAKANA ITERATION MARK>
-306B 309D ; [.32CD.0020.0011.0001][.32CD.0020.0010.0002] # <HIRAGANA LETTER NI, HIRAGANA ITERATION MARK>
-30CC 30FD ; [.32CE.0020.0011.0002][.32CE.0020.0010.0002] # <KATAKANA LETTER NU, KATAKANA ITERATION MARK>
-FF87 30FD ; [.32CE.0020.0011.0002][.32CE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NU, KATAKANA ITERATION MARK>
-306C 309D ; [.32CE.0020.0011.0001][.32CE.0020.0010.0002] # <HIRAGANA LETTER NU, HIRAGANA ITERATION MARK>
-30CD 30FD ; [.32CF.0020.0011.0002][.32CF.0020.0010.0002] # <KATAKANA LETTER NE, KATAKANA ITERATION MARK>
-FF88 30FD ; [.32CF.0020.0011.0002][.32CF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NE, KATAKANA ITERATION MARK>
-306D 309D ; [.32CF.0020.0011.0001][.32CF.0020.0010.0002] # <HIRAGANA LETTER NE, HIRAGANA ITERATION MARK>
-30CE 30FD ; [.32D0.0020.0011.0002][.32D0.0020.0010.0002] # <KATAKANA LETTER NO, KATAKANA ITERATION MARK>
-FF89 30FD ; [.32D0.0020.0011.0002][.32D0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NO, KATAKANA ITERATION MARK>
-306E 309D ; [.32D0.0020.0011.0001][.32D0.0020.0010.0002] # <HIRAGANA LETTER NO, HIRAGANA ITERATION MARK>
-30CF 30FD ; [.32D1.0020.0011.0002][.32D1.0020.0010.0002] # <KATAKANA LETTER HA, KATAKANA ITERATION MARK>
-FF8A 30FD ; [.32D1.0020.0011.0002][.32D1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA ITERATION MARK>
-306F 309D ; [.32D1.0020.0011.0001][.32D1.0020.0010.0002] # <HIRAGANA LETTER HA, HIRAGANA ITERATION MARK>
-30CF 30FE ; [.32D1.0020.0011.0002][.32D1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, KATAKANA VOICED ITERATION MARK>
-FF8A 30FE ; [.32D1.0020.0011.0002][.32D1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA VOICED ITERATION MARK>
-306F 309E ; [.32D1.0020.0011.0001][.32D1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, HIRAGANA VOICED ITERATION MARK>
-30D0 30FD ; [.32D1.0020.0011.0002][.0000.0037.0002][.32D1.0020.0010.0002] # <KATAKANA LETTER BA, KATAKANA ITERATION MARK>
-30CF 3099 30FD ; [.32D1.0020.0011.0002][.0000.0037.0002][.32D1.0020.0010.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8A FF9E 30FD ; [.32D1.0020.0011.0002][.0000.0037.0002][.32D1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3070 309D ; [.32D1.0020.0011.0001][.0000.0037.0002][.32D1.0020.0010.0002] # <HIRAGANA LETTER BA, HIRAGANA ITERATION MARK>
-306F 3099 309D ; [.32D1.0020.0011.0001][.0000.0037.0002][.32D1.0020.0010.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D0 30FE ; [.32D1.0020.0011.0002][.0000.0037.0002][.32D1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BA, KATAKANA VOICED ITERATION MARK>
-30CF 3099 30FE ; [.32D1.0020.0011.0002][.0000.0037.0002][.32D1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8A FF9E 30FE ; [.32D1.0020.0011.0002][.0000.0037.0002][.32D1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3070 309E ; [.32D1.0020.0011.0001][.0000.0037.0002][.32D1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BA, HIRAGANA VOICED ITERATION MARK>
-306F 3099 309E ; [.32D1.0020.0011.0001][.0000.0037.0002][.32D1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D1 30FD ; [.32D1.0020.0011.0002][.0000.0038.0002][.32D1.0020.0010.0002] # <KATAKANA LETTER PA, KATAKANA ITERATION MARK>
-30CF 309A 30FD ; [.32D1.0020.0011.0002][.0000.0038.0002][.32D1.0020.0010.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8A FF9F 30FD ; [.32D1.0020.0011.0002][.0000.0038.0002][.32D1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3071 309D ; [.32D1.0020.0011.0001][.0000.0038.0002][.32D1.0020.0010.0002] # <HIRAGANA LETTER PA, HIRAGANA ITERATION MARK>
-306F 309A 309D ; [.32D1.0020.0011.0001][.0000.0038.0002][.32D1.0020.0010.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D1 30FE ; [.32D1.0020.0011.0002][.0000.0038.0002][.32D1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PA, KATAKANA VOICED ITERATION MARK>
-30CF 309A 30FE ; [.32D1.0020.0011.0002][.0000.0038.0002][.32D1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8A FF9F 30FE ; [.32D1.0020.0011.0002][.0000.0038.0002][.32D1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3071 309E ; [.32D1.0020.0011.0001][.0000.0038.0002][.32D1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PA, HIRAGANA VOICED ITERATION MARK>
-306F 309A 309E ; [.32D1.0020.0011.0001][.0000.0038.0002][.32D1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D2 30FD ; [.32D2.0020.0011.0002][.32D2.0020.0010.0002] # <KATAKANA LETTER HI, KATAKANA ITERATION MARK>
-FF8B 30FD ; [.32D2.0020.0011.0002][.32D2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA ITERATION MARK>
-3072 309D ; [.32D2.0020.0011.0001][.32D2.0020.0010.0002] # <HIRAGANA LETTER HI, HIRAGANA ITERATION MARK>
-30D2 30FE ; [.32D2.0020.0011.0002][.32D2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, KATAKANA VOICED ITERATION MARK>
-FF8B 30FE ; [.32D2.0020.0011.0002][.32D2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA VOICED ITERATION MARK>
-3072 309E ; [.32D2.0020.0011.0001][.32D2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, HIRAGANA VOICED ITERATION MARK>
-30D3 30FD ; [.32D2.0020.0011.0002][.0000.0037.0002][.32D2.0020.0010.0002] # <KATAKANA LETTER BI, KATAKANA ITERATION MARK>
-30D2 3099 30FD ; [.32D2.0020.0011.0002][.0000.0037.0002][.32D2.0020.0010.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8B FF9E 30FD ; [.32D2.0020.0011.0002][.0000.0037.0002][.32D2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3073 309D ; [.32D2.0020.0011.0001][.0000.0037.0002][.32D2.0020.0010.0002] # <HIRAGANA LETTER BI, HIRAGANA ITERATION MARK>
-3072 3099 309D ; [.32D2.0020.0011.0001][.0000.0037.0002][.32D2.0020.0010.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D3 30FE ; [.32D2.0020.0011.0002][.0000.0037.0002][.32D2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BI, KATAKANA VOICED ITERATION MARK>
-30D2 3099 30FE ; [.32D2.0020.0011.0002][.0000.0037.0002][.32D2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8B FF9E 30FE ; [.32D2.0020.0011.0002][.0000.0037.0002][.32D2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3073 309E ; [.32D2.0020.0011.0001][.0000.0037.0002][.32D2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BI, HIRAGANA VOICED ITERATION MARK>
-3072 3099 309E ; [.32D2.0020.0011.0001][.0000.0037.0002][.32D2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D4 30FD ; [.32D2.0020.0011.0002][.0000.0038.0002][.32D2.0020.0010.0002] # <KATAKANA LETTER PI, KATAKANA ITERATION MARK>
-30D2 309A 30FD ; [.32D2.0020.0011.0002][.0000.0038.0002][.32D2.0020.0010.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8B FF9F 30FD ; [.32D2.0020.0011.0002][.0000.0038.0002][.32D2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3074 309D ; [.32D2.0020.0011.0001][.0000.0038.0002][.32D2.0020.0010.0002] # <HIRAGANA LETTER PI, HIRAGANA ITERATION MARK>
-3072 309A 309D ; [.32D2.0020.0011.0001][.0000.0038.0002][.32D2.0020.0010.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D4 30FE ; [.32D2.0020.0011.0002][.0000.0038.0002][.32D2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PI, KATAKANA VOICED ITERATION MARK>
-30D2 309A 30FE ; [.32D2.0020.0011.0002][.0000.0038.0002][.32D2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8B FF9F 30FE ; [.32D2.0020.0011.0002][.0000.0038.0002][.32D2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3074 309E ; [.32D2.0020.0011.0001][.0000.0038.0002][.32D2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PI, HIRAGANA VOICED ITERATION MARK>
-3072 309A 309E ; [.32D2.0020.0011.0001][.0000.0038.0002][.32D2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D5 30FD ; [.32D3.0020.0011.0002][.32D3.0020.0010.0002] # <KATAKANA LETTER HU, KATAKANA ITERATION MARK>
-FF8C 30FD ; [.32D3.0020.0011.0002][.32D3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA ITERATION MARK>
-3075 309D ; [.32D3.0020.0011.0001][.32D3.0020.0010.0002] # <HIRAGANA LETTER HU, HIRAGANA ITERATION MARK>
-30D5 30FE ; [.32D3.0020.0011.0002][.32D3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, KATAKANA VOICED ITERATION MARK>
-FF8C 30FE ; [.32D3.0020.0011.0002][.32D3.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA VOICED ITERATION MARK>
-3075 309E ; [.32D3.0020.0011.0001][.32D3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, HIRAGANA VOICED ITERATION MARK>
-30D6 30FD ; [.32D3.0020.0011.0002][.0000.0037.0002][.32D3.0020.0010.0002] # <KATAKANA LETTER BU, KATAKANA ITERATION MARK>
-30D5 3099 30FD ; [.32D3.0020.0011.0002][.0000.0037.0002][.32D3.0020.0010.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8C FF9E 30FD ; [.32D3.0020.0011.0002][.0000.0037.0002][.32D3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3076 309D ; [.32D3.0020.0011.0001][.0000.0037.0002][.32D3.0020.0010.0002] # <HIRAGANA LETTER BU, HIRAGANA ITERATION MARK>
-3075 3099 309D ; [.32D3.0020.0011.0001][.0000.0037.0002][.32D3.0020.0010.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D6 30FE ; [.32D3.0020.0011.0002][.0000.0037.0002][.32D3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BU, KATAKANA VOICED ITERATION MARK>
-30D5 3099 30FE ; [.32D3.0020.0011.0002][.0000.0037.0002][.32D3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8C FF9E 30FE ; [.32D3.0020.0011.0002][.0000.0037.0002][.32D3.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3076 309E ; [.32D3.0020.0011.0001][.0000.0037.0002][.32D3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BU, HIRAGANA VOICED ITERATION MARK>
-3075 3099 309E ; [.32D3.0020.0011.0001][.0000.0037.0002][.32D3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D7 30FD ; [.32D3.0020.0011.0002][.0000.0038.0002][.32D3.0020.0010.0002] # <KATAKANA LETTER PU, KATAKANA ITERATION MARK>
-30D5 309A 30FD ; [.32D3.0020.0011.0002][.0000.0038.0002][.32D3.0020.0010.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8C FF9F 30FD ; [.32D3.0020.0011.0002][.0000.0038.0002][.32D3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3077 309D ; [.32D3.0020.0011.0001][.0000.0038.0002][.32D3.0020.0010.0002] # <HIRAGANA LETTER PU, HIRAGANA ITERATION MARK>
-3075 309A 309D ; [.32D3.0020.0011.0001][.0000.0038.0002][.32D3.0020.0010.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D7 30FE ; [.32D3.0020.0011.0002][.0000.0038.0002][.32D3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PU, KATAKANA VOICED ITERATION MARK>
-30D5 309A 30FE ; [.32D3.0020.0011.0002][.0000.0038.0002][.32D3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8C FF9F 30FE ; [.32D3.0020.0011.0002][.0000.0038.0002][.32D3.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3077 309E ; [.32D3.0020.0011.0001][.0000.0038.0002][.32D3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PU, HIRAGANA VOICED ITERATION MARK>
-3075 309A 309E ; [.32D3.0020.0011.0001][.0000.0038.0002][.32D3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D8 30FD ; [.32D4.0020.0011.0002][.32D4.0020.0010.0002] # <KATAKANA LETTER HE, KATAKANA ITERATION MARK>
-FF8D 30FD ; [.32D4.0020.0011.0002][.32D4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA ITERATION MARK>
-3078 309D ; [.32D4.0020.0011.0001][.32D4.0020.0010.0002] # <HIRAGANA LETTER HE, HIRAGANA ITERATION MARK>
-30D8 30FE ; [.32D4.0020.0011.0002][.32D4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, KATAKANA VOICED ITERATION MARK>
-FF8D 30FE ; [.32D4.0020.0011.0002][.32D4.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA VOICED ITERATION MARK>
-3078 309E ; [.32D4.0020.0011.0001][.32D4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, HIRAGANA VOICED ITERATION MARK>
-30D9 30FD ; [.32D4.0020.0011.0002][.0000.0037.0002][.32D4.0020.0010.0002] # <KATAKANA LETTER BE, KATAKANA ITERATION MARK>
-30D8 3099 30FD ; [.32D4.0020.0011.0002][.0000.0037.0002][.32D4.0020.0010.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8D FF9E 30FD ; [.32D4.0020.0011.0002][.0000.0037.0002][.32D4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3079 309D ; [.32D4.0020.0011.0001][.0000.0037.0002][.32D4.0020.0010.0002] # <HIRAGANA LETTER BE, HIRAGANA ITERATION MARK>
-3078 3099 309D ; [.32D4.0020.0011.0001][.0000.0037.0002][.32D4.0020.0010.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D9 30FE ; [.32D4.0020.0011.0002][.0000.0037.0002][.32D4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BE, KATAKANA VOICED ITERATION MARK>
-30D8 3099 30FE ; [.32D4.0020.0011.0002][.0000.0037.0002][.32D4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8D FF9E 30FE ; [.32D4.0020.0011.0002][.0000.0037.0002][.32D4.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3079 309E ; [.32D4.0020.0011.0001][.0000.0037.0002][.32D4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BE, HIRAGANA VOICED ITERATION MARK>
-3078 3099 309E ; [.32D4.0020.0011.0001][.0000.0037.0002][.32D4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30DA 30FD ; [.32D4.0020.0011.0002][.0000.0038.0002][.32D4.0020.0010.0002] # <KATAKANA LETTER PE, KATAKANA ITERATION MARK>
-30D8 309A 30FD ; [.32D4.0020.0011.0002][.0000.0038.0002][.32D4.0020.0010.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8D FF9F 30FD ; [.32D4.0020.0011.0002][.0000.0038.0002][.32D4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-307A 309D ; [.32D4.0020.0011.0001][.0000.0038.0002][.32D4.0020.0010.0002] # <HIRAGANA LETTER PE, HIRAGANA ITERATION MARK>
-3078 309A 309D ; [.32D4.0020.0011.0001][.0000.0038.0002][.32D4.0020.0010.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30DA 30FE ; [.32D4.0020.0011.0002][.0000.0038.0002][.32D4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PE, KATAKANA VOICED ITERATION MARK>
-30D8 309A 30FE ; [.32D4.0020.0011.0002][.0000.0038.0002][.32D4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8D FF9F 30FE ; [.32D4.0020.0011.0002][.0000.0038.0002][.32D4.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-307A 309E ; [.32D4.0020.0011.0001][.0000.0038.0002][.32D4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PE, HIRAGANA VOICED ITERATION MARK>
-3078 309A 309E ; [.32D4.0020.0011.0001][.0000.0038.0002][.32D4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30DB 30FD ; [.32D5.0020.0011.0002][.32D5.0020.0010.0002] # <KATAKANA LETTER HO, KATAKANA ITERATION MARK>
-FF8E 30FD ; [.32D5.0020.0011.0002][.32D5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA ITERATION MARK>
-307B 309D ; [.32D5.0020.0011.0001][.32D5.0020.0010.0002] # <HIRAGANA LETTER HO, HIRAGANA ITERATION MARK>
-30DB 30FE ; [.32D5.0020.0011.0002][.32D5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, KATAKANA VOICED ITERATION MARK>
-FF8E 30FE ; [.32D5.0020.0011.0002][.32D5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA VOICED ITERATION MARK>
-307B 309E ; [.32D5.0020.0011.0001][.32D5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, HIRAGANA VOICED ITERATION MARK>
-30DC 30FD ; [.32D5.0020.0011.0002][.0000.0037.0002][.32D5.0020.0010.0002] # <KATAKANA LETTER BO, KATAKANA ITERATION MARK>
-30DB 3099 30FD ; [.32D5.0020.0011.0002][.0000.0037.0002][.32D5.0020.0010.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8E FF9E 30FD ; [.32D5.0020.0011.0002][.0000.0037.0002][.32D5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-307C 309D ; [.32D5.0020.0011.0001][.0000.0037.0002][.32D5.0020.0010.0002] # <HIRAGANA LETTER BO, HIRAGANA ITERATION MARK>
-307B 3099 309D ; [.32D5.0020.0011.0001][.0000.0037.0002][.32D5.0020.0010.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30DC 30FE ; [.32D5.0020.0011.0002][.0000.0037.0002][.32D5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BO, KATAKANA VOICED ITERATION MARK>
-30DB 3099 30FE ; [.32D5.0020.0011.0002][.0000.0037.0002][.32D5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8E FF9E 30FE ; [.32D5.0020.0011.0002][.0000.0037.0002][.32D5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-307C 309E ; [.32D5.0020.0011.0001][.0000.0037.0002][.32D5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BO, HIRAGANA VOICED ITERATION MARK>
-307B 3099 309E ; [.32D5.0020.0011.0001][.0000.0037.0002][.32D5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30DD 30FD ; [.32D5.0020.0011.0002][.0000.0038.0002][.32D5.0020.0010.0002] # <KATAKANA LETTER PO, KATAKANA ITERATION MARK>
-30DB 309A 30FD ; [.32D5.0020.0011.0002][.0000.0038.0002][.32D5.0020.0010.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8E FF9F 30FD ; [.32D5.0020.0011.0002][.0000.0038.0002][.32D5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-307D 309D ; [.32D5.0020.0011.0001][.0000.0038.0002][.32D5.0020.0010.0002] # <HIRAGANA LETTER PO, HIRAGANA ITERATION MARK>
-307B 309A 309D ; [.32D5.0020.0011.0001][.0000.0038.0002][.32D5.0020.0010.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30DD 30FE ; [.32D5.0020.0011.0002][.0000.0038.0002][.32D5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PO, KATAKANA VOICED ITERATION MARK>
-30DB 309A 30FE ; [.32D5.0020.0011.0002][.0000.0038.0002][.32D5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8E FF9F 30FE ; [.32D5.0020.0011.0002][.0000.0038.0002][.32D5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-307D 309E ; [.32D5.0020.0011.0001][.0000.0038.0002][.32D5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PO, HIRAGANA VOICED ITERATION MARK>
-307B 309A 309E ; [.32D5.0020.0011.0001][.0000.0038.0002][.32D5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30DE 30FD ; [.32D6.0020.0011.0002][.32D6.0020.0010.0002] # <KATAKANA LETTER MA, KATAKANA ITERATION MARK>
-FF8F 30FD ; [.32D6.0020.0011.0002][.32D6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MA, KATAKANA ITERATION MARK>
-307E 309D ; [.32D6.0020.0011.0001][.32D6.0020.0010.0002] # <HIRAGANA LETTER MA, HIRAGANA ITERATION MARK>
-30DF 30FD ; [.32D7.0020.0011.0002][.32D7.0020.0010.0002] # <KATAKANA LETTER MI, KATAKANA ITERATION MARK>
-FF90 30FD ; [.32D7.0020.0011.0002][.32D7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MI, KATAKANA ITERATION MARK>
-307F 309D ; [.32D7.0020.0011.0001][.32D7.0020.0010.0002] # <HIRAGANA LETTER MI, HIRAGANA ITERATION MARK>
-30E0 30FD ; [.32D8.0020.0011.0002][.32D8.0020.0010.0002] # <KATAKANA LETTER MU, KATAKANA ITERATION MARK>
-FF91 30FD ; [.32D8.0020.0011.0002][.32D8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MU, KATAKANA ITERATION MARK>
-3080 309D ; [.32D8.0020.0011.0001][.32D8.0020.0010.0002] # <HIRAGANA LETTER MU, HIRAGANA ITERATION MARK>
-30E1 30FD ; [.32D9.0020.0011.0002][.32D9.0020.0010.0002] # <KATAKANA LETTER ME, KATAKANA ITERATION MARK>
-FF92 30FD ; [.32D9.0020.0011.0002][.32D9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER ME, KATAKANA ITERATION MARK>
-3081 309D ; [.32D9.0020.0011.0001][.32D9.0020.0010.0002] # <HIRAGANA LETTER ME, HIRAGANA ITERATION MARK>
-30E2 30FD ; [.32DA.0020.0011.0002][.32DA.0020.0010.0002] # <KATAKANA LETTER MO, KATAKANA ITERATION MARK>
-FF93 30FD ; [.32DA.0020.0011.0002][.32DA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MO, KATAKANA ITERATION MARK>
-3082 309D ; [.32DA.0020.0011.0001][.32DA.0020.0010.0002] # <HIRAGANA LETTER MO, HIRAGANA ITERATION MARK>
-30E3 30FD ; [.32DB.0020.000F.0002][.32DB.0020.0010.0002] # <KATAKANA LETTER SMALL YA, KATAKANA ITERATION MARK>
-FF6C 30FD ; [.32DB.0020.000F.0002][.32DB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, KATAKANA ITERATION MARK>
-3083 309D ; [.32DB.0020.000F.0001][.32DB.0020.0010.0002] # <HIRAGANA LETTER SMALL YA, HIRAGANA ITERATION MARK>
-30E4 30FD ; [.32DB.0020.0011.0002][.32DB.0020.0010.0002] # <KATAKANA LETTER YA, KATAKANA ITERATION MARK>
-FF94 30FD ; [.32DB.0020.0011.0002][.32DB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YA, KATAKANA ITERATION MARK>
-3084 309D ; [.32DB.0020.0011.0001][.32DB.0020.0010.0002] # <HIRAGANA LETTER YA, HIRAGANA ITERATION MARK>
-30E5 30FD ; [.32DC.0020.000F.0002][.32DC.0020.0010.0002] # <KATAKANA LETTER SMALL YU, KATAKANA ITERATION MARK>
-FF6D 30FD ; [.32DC.0020.000F.0002][.32DC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, KATAKANA ITERATION MARK>
-3085 309D ; [.32DC.0020.000F.0001][.32DC.0020.0010.0002] # <HIRAGANA LETTER SMALL YU, HIRAGANA ITERATION MARK>
-30E6 30FD ; [.32DC.0020.0011.0002][.32DC.0020.0010.0002] # <KATAKANA LETTER YU, KATAKANA ITERATION MARK>
-FF95 30FD ; [.32DC.0020.0011.0002][.32DC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YU, KATAKANA ITERATION MARK>
-3086 309D ; [.32DC.0020.0011.0001][.32DC.0020.0010.0002] # <HIRAGANA LETTER YU, HIRAGANA ITERATION MARK>
-30E7 30FD ; [.32DE.0020.000F.0002][.32DE.0020.0010.0002] # <KATAKANA LETTER SMALL YO, KATAKANA ITERATION MARK>
-FF6E 30FD ; [.32DE.0020.000F.0002][.32DE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, KATAKANA ITERATION MARK>
-3087 309D ; [.32DE.0020.000F.0001][.32DE.0020.0010.0002] # <HIRAGANA LETTER SMALL YO, HIRAGANA ITERATION MARK>
-30E8 30FD ; [.32DE.0020.0011.0002][.32DE.0020.0010.0002] # <KATAKANA LETTER YO, KATAKANA ITERATION MARK>
-FF96 30FD ; [.32DE.0020.0011.0002][.32DE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YO, KATAKANA ITERATION MARK>
-3088 309D ; [.32DE.0020.0011.0001][.32DE.0020.0010.0002] # <HIRAGANA LETTER YO, HIRAGANA ITERATION MARK>
-30E9 30FD ; [.32DF.0020.0011.0002][.32DF.0020.0010.0002] # <KATAKANA LETTER RA, KATAKANA ITERATION MARK>
-FF97 30FD ; [.32DF.0020.0011.0002][.32DF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RA, KATAKANA ITERATION MARK>
-3089 309D ; [.32DF.0020.0011.0001][.32DF.0020.0010.0002] # <HIRAGANA LETTER RA, HIRAGANA ITERATION MARK>
-30EA 30FD ; [.32E0.0020.0011.0002][.32E0.0020.0010.0002] # <KATAKANA LETTER RI, KATAKANA ITERATION MARK>
-FF98 30FD ; [.32E0.0020.0011.0002][.32E0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RI, KATAKANA ITERATION MARK>
-308A 309D ; [.32E0.0020.0011.0001][.32E0.0020.0010.0002] # <HIRAGANA LETTER RI, HIRAGANA ITERATION MARK>
-30EB 30FD ; [.32E1.0020.0011.0002][.32E1.0020.0010.0002] # <KATAKANA LETTER RU, KATAKANA ITERATION MARK>
-FF99 30FD ; [.32E1.0020.0011.0002][.32E1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RU, KATAKANA ITERATION MARK>
-308B 309D ; [.32E1.0020.0011.0001][.32E1.0020.0010.0002] # <HIRAGANA LETTER RU, HIRAGANA ITERATION MARK>
-30EC 30FD ; [.32E2.0020.0011.0002][.32E2.0020.0010.0002] # <KATAKANA LETTER RE, KATAKANA ITERATION MARK>
-FF9A 30FD ; [.32E2.0020.0011.0002][.32E2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RE, KATAKANA ITERATION MARK>
-308C 309D ; [.32E2.0020.0011.0001][.32E2.0020.0010.0002] # <HIRAGANA LETTER RE, HIRAGANA ITERATION MARK>
-30ED 30FD ; [.32E3.0020.0011.0002][.32E3.0020.0010.0002] # <KATAKANA LETTER RO, KATAKANA ITERATION MARK>
-FF9B 30FD ; [.32E3.0020.0011.0002][.32E3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RO, KATAKANA ITERATION MARK>
-308D 309D ; [.32E3.0020.0011.0001][.32E3.0020.0010.0002] # <HIRAGANA LETTER RO, HIRAGANA ITERATION MARK>
-30EE 30FD ; [.32E4.0020.000F.0002][.32E4.0020.0010.0002] # <KATAKANA LETTER SMALL WA, KATAKANA ITERATION MARK>
-308E 309D ; [.32E4.0020.000F.0001][.32E4.0020.0010.0002] # <HIRAGANA LETTER SMALL WA, HIRAGANA ITERATION MARK>
-30EE 30FE ; [.32E4.0020.000F.0002][.32E4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL WA, KATAKANA VOICED ITERATION MARK>
-308E 309E ; [.32E4.0020.000F.0001][.32E4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL WA, HIRAGANA VOICED ITERATION MARK>
-30EF 30FD ; [.32E4.0020.0011.0002][.32E4.0020.0010.0002] # <KATAKANA LETTER WA, KATAKANA ITERATION MARK>
-FF9C 30FD ; [.32E4.0020.0011.0002][.32E4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA ITERATION MARK>
-308F 309D ; [.32E4.0020.0011.0001][.32E4.0020.0010.0002] # <HIRAGANA LETTER WA, HIRAGANA ITERATION MARK>
-30EF 30FE ; [.32E4.0020.0011.0002][.32E4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WA, KATAKANA VOICED ITERATION MARK>
-FF9C 30FE ; [.32E4.0020.0011.0002][.32E4.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA VOICED ITERATION MARK>
-308F 309E ; [.32E4.0020.0011.0001][.32E4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WA, HIRAGANA VOICED ITERATION MARK>
-30F0 30FD ; [.32E5.0020.0011.0002][.32E5.0020.0010.0002] # <KATAKANA LETTER WI, KATAKANA ITERATION MARK>
-3090 309D ; [.32E5.0020.0011.0001][.32E5.0020.0010.0002] # <HIRAGANA LETTER WI, HIRAGANA ITERATION MARK>
-30F0 30FE ; [.32E5.0020.0011.0002][.32E5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WI, KATAKANA VOICED ITERATION MARK>
-3090 309E ; [.32E5.0020.0011.0001][.32E5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WI, HIRAGANA VOICED ITERATION MARK>
-30F1 30FD ; [.32E6.0020.0011.0002][.32E6.0020.0010.0002] # <KATAKANA LETTER WE, KATAKANA ITERATION MARK>
-3091 309D ; [.32E6.0020.0011.0001][.32E6.0020.0010.0002] # <HIRAGANA LETTER WE, HIRAGANA ITERATION MARK>
-30F1 30FE ; [.32E6.0020.0011.0002][.32E6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WE, KATAKANA VOICED ITERATION MARK>
-3091 309E ; [.32E6.0020.0011.0001][.32E6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WE, HIRAGANA VOICED ITERATION MARK>
-30F2 30FD ; [.32E7.0020.0011.0002][.32E7.0020.0010.0002] # <KATAKANA LETTER WO, KATAKANA ITERATION MARK>
-FF66 30FD ; [.32E7.0020.0011.0002][.32E7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA ITERATION MARK>
-3092 309D ; [.32E7.0020.0011.0001][.32E7.0020.0010.0002] # <HIRAGANA LETTER WO, HIRAGANA ITERATION MARK>
-30F2 30FE ; [.32E7.0020.0011.0002][.32E7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WO, KATAKANA VOICED ITERATION MARK>
-FF66 30FE ; [.32E7.0020.0011.0002][.32E7.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA VOICED ITERATION MARK>
-3092 309E ; [.32E7.0020.0011.0001][.32E7.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WO, HIRAGANA VOICED ITERATION MARK>
-30F3 30FD ; [.32E8.0020.0011.0002][.32E8.0020.0010.0002] # <KATAKANA LETTER N, KATAKANA ITERATION MARK>
-FF9D 30FD ; [.32E8.0020.0011.0002][.32E8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER N, KATAKANA ITERATION MARK>
-3093 309D ; [.32E8.0020.0011.0001][.32E8.0020.0010.0002] # <HIRAGANA LETTER N, HIRAGANA ITERATION MARK>
-30F4 30FD ; [.32B9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0010.0002] # <KATAKANA LETTER VU, KATAKANA ITERATION MARK>
-30A6 3099 30FD ; [.32B9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0010.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF73 FF9E 30FD ; [.32B9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3094 309D ; [.32B9.0020.0011.0001][.0000.0037.0002][.32B9.0020.0010.0002] # <HIRAGANA LETTER VU, HIRAGANA ITERATION MARK>
-3046 3099 309D ; [.32B9.0020.0011.0001][.0000.0037.0002][.32B9.0020.0010.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30F4 30FE ; [.32B9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VU, KATAKANA VOICED ITERATION MARK>
-30A6 3099 30FE ; [.32B9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF73 FF9E 30FE ; [.32B9.0020.0011.0002][.0000.0037.0002][.32B9.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3094 309E ; [.32B9.0020.0011.0001][.0000.0037.0002][.32B9.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER VU, HIRAGANA VOICED ITERATION MARK>
-3046 3099 309E ; [.32B9.0020.0011.0001][.0000.0037.0002][.32B9.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30F5 30FD ; [.32BD.0020.000F.0002][.32BD.0020.0010.0002] # <KATAKANA LETTER SMALL KA, KATAKANA ITERATION MARK>
-3095 309D ; [.32BD.0020.000F.0001][.32BD.0020.0010.0002] # <HIRAGANA LETTER SMALL KA, HIRAGANA ITERATION MARK>
-30F5 30FE ; [.32BD.0020.000F.0002][.32BD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KA, KATAKANA VOICED ITERATION MARK>
-3095 309E ; [.32BD.0020.000F.0001][.32BD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL KA, HIRAGANA VOICED ITERATION MARK>
-30F6 30FD ; [.32C0.0020.000F.0002][.32C0.0020.0010.0002] # <KATAKANA LETTER SMALL KE, KATAKANA ITERATION MARK>
-3096 309D ; [.32C0.0020.000F.0001][.32C0.0020.0010.0002] # <HIRAGANA LETTER SMALL KE, HIRAGANA ITERATION MARK>
-30F6 30FE ; [.32C0.0020.000F.0002][.32C0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KE, KATAKANA VOICED ITERATION MARK>
-3096 309E ; [.32C0.0020.000F.0001][.32C0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL KE, HIRAGANA VOICED ITERATION MARK>
-30F7 30FD ; [.32E4.0020.0011.0002][.0000.0037.0002][.32E4.0020.0010.0002] # <KATAKANA LETTER VA, KATAKANA ITERATION MARK>
-30EF 3099 30FD ; [.32E4.0020.0011.0002][.0000.0037.0002][.32E4.0020.0010.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF9C FF9E 30FD ; [.32E4.0020.0011.0002][.0000.0037.0002][.32E4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-30F7 30FE ; [.32E4.0020.0011.0002][.0000.0037.0002][.32E4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VA, KATAKANA VOICED ITERATION MARK>
-30EF 3099 30FE ; [.32E4.0020.0011.0002][.0000.0037.0002][.32E4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF9C FF9E 30FE ; [.32E4.0020.0011.0002][.0000.0037.0002][.32E4.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-30F8 30FD ; [.32E5.0020.0011.0002][.0000.0037.0002][.32E5.0020.0010.0002] # <KATAKANA LETTER VI, KATAKANA ITERATION MARK>
-30F0 3099 30FD ; [.32E5.0020.0011.0002][.0000.0037.0002][.32E5.0020.0010.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-30F8 30FE ; [.32E5.0020.0011.0002][.0000.0037.0002][.32E5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VI, KATAKANA VOICED ITERATION MARK>
-30F0 3099 30FE ; [.32E5.0020.0011.0002][.0000.0037.0002][.32E5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-30F9 30FD ; [.32E6.0020.0011.0002][.0000.0037.0002][.32E6.0020.0010.0002] # <KATAKANA LETTER VE, KATAKANA ITERATION MARK>
-30F1 3099 30FD ; [.32E6.0020.0011.0002][.0000.0037.0002][.32E6.0020.0010.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-30F9 30FE ; [.32E6.0020.0011.0002][.0000.0037.0002][.32E6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VE, KATAKANA VOICED ITERATION MARK>
-30F1 3099 30FE ; [.32E6.0020.0011.0002][.0000.0037.0002][.32E6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-30FA 30FD ; [.32E7.0020.0011.0002][.0000.0037.0002][.32E7.0020.0010.0002] # <KATAKANA LETTER VO, KATAKANA ITERATION MARK>
-30F2 3099 30FD ; [.32E7.0020.0011.0002][.0000.0037.0002][.32E7.0020.0010.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF66 FF9E 30FD ; [.32E7.0020.0011.0002][.0000.0037.0002][.32E7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-30FA 30FE ; [.32E7.0020.0011.0002][.0000.0037.0002][.32E7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VO, KATAKANA VOICED ITERATION MARK>
-30F2 3099 30FE ; [.32E7.0020.0011.0002][.0000.0037.0002][.32E7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF66 FF9E 30FE ; [.32E7.0020.0011.0002][.0000.0037.0002][.32E7.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-31F0 30FD ; [.32BF.0020.000F][.32BF.0020.0010.0002] # <KATAKANA LETTER SMALL KU, KATAKANA ITERATION MARK>
-31F0 30FE ; [.32BF.0020.000F][.32BF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KU, KATAKANA VOICED ITERATION MARK>
-31F1 30FD ; [.32C3.0020.000F][.32C3.0020.0010.0002] # <KATAKANA LETTER SMALL SI, KATAKANA ITERATION MARK>
-31F1 30FE ; [.32C3.0020.000F][.32C3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL SI, KATAKANA VOICED ITERATION MARK>
-31F2 30FD ; [.32C4.0020.000F][.32C4.0020.0010.0002] # <KATAKANA LETTER SMALL SU, KATAKANA ITERATION MARK>
-31F2 30FE ; [.32C4.0020.000F][.32C4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL SU, KATAKANA VOICED ITERATION MARK>
-31F3 30FD ; [.32CB.0020.000F][.32CB.0020.0010.0002] # <KATAKANA LETTER SMALL TO, KATAKANA ITERATION MARK>
-31F3 30FE ; [.32CB.0020.000F][.32CB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL TO, KATAKANA VOICED ITERATION MARK>
-31F4 30FD ; [.32CE.0020.000F][.32CE.0020.0010.0002] # <KATAKANA LETTER SMALL NU, KATAKANA ITERATION MARK>
-31F5 30FD ; [.32D1.0020.000F][.32D1.0020.0010.0002] # <KATAKANA LETTER SMALL HA, KATAKANA ITERATION MARK>
-31F5 30FE ; [.32D1.0020.000F][.32D1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HA, KATAKANA VOICED ITERATION MARK>
-31F6 30FD ; [.32D2.0020.000F][.32D2.0020.0010.0002] # <KATAKANA LETTER SMALL HI, KATAKANA ITERATION MARK>
-31F6 30FE ; [.32D2.0020.000F][.32D2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HI, KATAKANA VOICED ITERATION MARK>
-31F7 30FD ; [.32D3.0020.000F][.32D3.0020.0010.0002] # <KATAKANA LETTER SMALL HU, KATAKANA ITERATION MARK>
-31F7 30FE ; [.32D3.0020.000F][.32D3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HU, KATAKANA VOICED ITERATION MARK>
-31F8 30FD ; [.32D4.0020.000F][.32D4.0020.0010.0002] # <KATAKANA LETTER SMALL HE, KATAKANA ITERATION MARK>
-31F8 30FE ; [.32D4.0020.000F][.32D4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HE, KATAKANA VOICED ITERATION MARK>
-31F9 30FD ; [.32D5.0020.000F][.32D5.0020.0010.0002] # <KATAKANA LETTER SMALL HO, KATAKANA ITERATION MARK>
-31F9 30FE ; [.32D5.0020.000F][.32D5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HO, KATAKANA VOICED ITERATION MARK>
-31FA 30FD ; [.32D8.0020.000F][.32D8.0020.0010.0002] # <KATAKANA LETTER SMALL MU, KATAKANA ITERATION MARK>
-31FB 30FD ; [.32DF.0020.000F][.32DF.0020.0010.0002] # <KATAKANA LETTER SMALL RA, KATAKANA ITERATION MARK>
-31FC 30FD ; [.32E0.0020.000F][.32E0.0020.0010.0002] # <KATAKANA LETTER SMALL RI, KATAKANA ITERATION MARK>
-31FD 30FD ; [.32E1.0020.000F][.32E1.0020.0010.0002] # <KATAKANA LETTER SMALL RU, KATAKANA ITERATION MARK>
-31FE 30FD ; [.32E2.0020.000F][.32E2.0020.0010.0002] # <KATAKANA LETTER SMALL RE, KATAKANA ITERATION MARK>
-31FF 30FD ; [.32E3.0020.000F][.32E3.0020.0010.0002] # <KATAKANA LETTER SMALL RO, KATAKANA ITERATION MARK>
+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>
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/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl
index 3473102b220..24e5abbe7e2 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl
@@ -1,53 +1,53 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
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 v6.3.0
-0451 ; [.19D6.0020.0002] # CYRILLIC SMALL LETTER IO
-0435 0308 ; [.19D6.0020.0002] # CYRILLIC SMALL LETTER IO
-0401 ; [.19D6.0020.0008] # CYRILLIC CAPITAL LETTER IO
-0415 0308 ; [.19D6.0020.0008] # CYRILLIC CAPITAL LETTER IO
-04AF ; [.1ACA.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U
-04AE ; [.1ACA.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U
-0456 ; [.1B42.0020.0002] # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-0406 ; [.1B42.0020.0008] # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-04D1 ; [.198D.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.198D.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.198D.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.198D.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1999.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1999.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.19AD.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.19AD.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.19D5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.19D5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.19E1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.19E1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.19EE.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.19EE.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0457 ; [.1B42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1B42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-04E7 ; [.1A73.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1A73.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1A7B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1A7B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1A24.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1A24.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1AB5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1AB5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1AB5.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1AB5.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1AB5.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1AB5.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1B08.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1B08.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1B3B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1B3B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1B50.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1B50.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1B86.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1B86.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl
index 08ac60efdcf..9fcae20b18f 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl
@@ -1,75 +1,75 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0111 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.162D.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.162D.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.162D.0022.0008] # LATIN CAPITAL LETTER ETH
-0138 ; [.17A7.0021.0002] # LATIN SMALL LETTER KRA
-004B 0027 ; [.17A7.0021.0008] # <LATIN CAPITAL LETTER K, APOSTROPHE>
-00FE ; [.1812.0020.0003][.16B0.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1812.0020.0009][.16B0.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.187C.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.187C.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.187C.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.187C.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.187C.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.187C.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.187C.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.187C.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1902.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1902.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1902.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1902.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1902.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1902.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1902.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1902.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1902.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1902.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1902.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1902.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1902.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1902.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1903.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1903.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1903.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1903.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1903.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1903.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1903.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1903.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1903.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1903.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1903.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1903.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1903.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1903.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1903.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1903.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1903.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1903.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1904.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1904.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1904.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1904.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1904.0020.0008] # ANGSTROM SIGN
-01FB ; [.1904.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1904.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl
index 00b0841b2f7..ef846e660e2 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl
@@ -1,10 +1,10 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0C82 ; [.21C3.0020.0002][.FFF1.0000.0000] # KANNADA SIGN ANUSVARA
-0C83 ; [.21C3.0020.0002][.FFF2.0000.0000] # KANNADA SIGN VISARGA
-0CF1 ; [.21C3.0020.0002][.FFF3.0000.0000] # KANNADA SIGN JIHVAMULIYA
-0CF2 ; [.21C3.0020.0002][.FFF4.0000.0000] # KANNADA SIGN UPADHMANIYA
-0C94 ; [.21C3.0020.0002][.FFF0.0000.0000] # KANNADA LETTER AU
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl
index 7e0e5679cb0..e328bf4b55c 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl
@@ -1,647 +1,647 @@
use Unicode::Collate::CJK::Korean;
+{
- locale_version => 1.01,
+ locale_version => 1.12,
overrideCJK => \&Unicode::Collate::CJK::Korean::weightKorean,
- entry => <<'ENTRY', # for DUCET v6.3.0
-F967 ; [.3159.0021.0002.4E0D][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F967
-FA70 ; [.3159.0032.0002.4E26][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA70
-F905 ; [.3152.0021.0002.4E32][.31D8.0020.0002][.3243.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F905
-2F801 ; [.3164.0021.0002.4E38][.31D9.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F801
-F95E ; [.3155.0021.0002.4E39][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95E
-F91B ; [.3157.0021.0002.4E82][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91B
-F9BA ; [.3157.0021.0002.4E86][.31DC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BA
-F977 ; [.3157.0021.0002.4EAE][.31D2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F977
-F9FD ; [.315B.0021.0002.4EC0][.31E4.0020.0002][.323E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FD
-F9A8 ; [.3157.0021.0002.4EE4][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A8
-F92D ; [.3157.0021.0002.4F86][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92D
-F9B5 ; [.3157.0021.0002.4F8B][.31D7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B5
-FA30 ; [.3158.0021.0002.4FAE][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA30
-2F805 ; [.3158.0021.0002.4FAE][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F805
-2F806 ; [.3162.0023.0002.4FBB][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F806
-F965 ; [.3163.0021.0002.4FBF][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F965
-2F807 ; [.3159.0022.0002.5002][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F807
-F9D4 ; [.3157.0022.0002.502B][.31E1.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D4
-2F809 ; [.3159.0022.0002.5099][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F809
-2F80B ; [.315B.0023.0002.50CF][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80B
-F9BB ; [.3157.0022.0002.50DA][.31DC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BB
-FA31 ; [.315B.0023.0002.50E7][.31E2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA31
-2F80A ; [.315B.0023.0002.50E7][.31E2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80A
-FA0C ; [.315D.0021.0002.5140][.31D8.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0C
-FA74 ; [.3160.0021.0002.5145][.31DD.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA74
-FA32 ; [.3158.0021.0002.514D][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA32
-2F80E ; [.3158.0021.0002.514D][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80E
-2F814 ; [.3154.0022.0002.5167][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F814
-FA72 ; [.315E.0024.0002.5168][.31D4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA72
-F978 ; [.3157.0023.0002.5169][.31D2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F978
-F9D1 ; [.3157.0021.0002.516D][.31E1.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D1
-2F811 ; [.3152.0026.0002.5177][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F811
-FA75 ; [.3152.0024.0002.5180][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA75
-2F815 ; [.315E.0021.0002.518D][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F815
-2F8D2 ; [.3158.0022.0002.5192][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D2
-2F8D3 ; [.3158.0022.0002.5195][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D3
-2F817 ; [.315D.0023.0002.5197][.31DC.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F817
-2F818 ; [.315D.003B.0002.51A4][.31DE.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F818
-2F81A ; [.3155.0022.0002.51AC][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F81A
-F92E ; [.3157.0021.0002.51B7][.31D1.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92E
-F979 ; [.3157.0024.0002.51C9][.31D2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F979
-F955 ; [.3157.0021.0002.51CC][.31E2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F955
-F954 ; [.3157.0021.0002.51DC][.31E2.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F954
-FA15 ; [.3164.0022.0002.51DE][.31E3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA15
-2F81E ; [.315D.0023.0002.5203][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F81E
-FA00 ; [.315E.0021.0002.5207][.31D4.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA00
-2F850 ; [.315E.0021.0002.5207][.31D4.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F850
-F99C ; [.3157.0022.0002.5217][.31D6.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99C
-F9DD ; [.3157.0022.0002.5229][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DD
-F9FF ; [.315E.0022.0002.523A][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FF
-2F820 ; [.3152.0021.0002.523B][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F820
-2F822 ; [.3164.0021.0002.5272][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F822
-2F823 ; [.315B.002D.0002.5277][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F823
-F9C7 ; [.3157.0021.0002.5289][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C7
-F98A ; [.3157.0021.0002.529B][.31D6.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98A
-F99D ; [.3157.0023.0002.52A3][.31D6.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99D
-FA76 ; [.315D.0024.0002.52C7][.31DC.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA76
-2F825 ; [.315D.0024.0002.52C7][.31DC.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F825
-FA33 ; [.3158.0023.0002.52C9][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA33
-2F826 ; [.3158.0023.0002.52C9][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F826
-F952 ; [.3157.0021.0002.52D2][.31E2.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F952
-F92F ; [.3157.0021.0002.52DE][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92F
-FA34 ; [.3152.0023.0002.52E4][.31E2.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA34
-2F827 ; [.3152.0023.0002.52E4][.31E2.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F827
-F97F ; [.3157.0023.0002.52F5][.31D6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97F
-FA77 ; [.315E.0022.0002.52FA][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA77
-2F828 ; [.315E.0022.0002.52FA][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F828
-2F829 ; [.3163.0022.0002.5305][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F829
-F963 ; [.3159.0021.0002.5317][.31DD.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F963
-2F82B ; [.3159.0021.0002.5317][.31DD.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82B
-F9EB ; [.3154.0021.0002.533F][.31E4.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EB
-2F82C ; [.3164.0021.0002.5349][.31DF.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82C
-FA35 ; [.3159.0025.0002.5351][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA35
-2F82D ; [.3159.0025.0002.5351][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82D
-2F82E ; [.3159.0022.0002.535A][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82E
-2F82F ; [.315E.0022.0002.5373][.31E2.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82F
-F91C ; [.3157.0022.0002.5375][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91C
-2F830 ; [.315E.0021.0002.537D][.31E2.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F830
-2F831 ; [.3152.0028.0002.537F][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F831
-2F832 ; [.3152.0028.0002.537F][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F832
-2F833 ; [.3152.0028.0002.537F][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F833
-F96B ; [.3160.0022.0002.53C3][.31D0.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96B
-2F836 ; [.3152.0022.0002.53CA][.31E2.0020.0002][.323E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F836
-2F837 ; [.315B.005E.0002.53DF][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F837
-F906 ; [.3152.002A.0002.53E5][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F906
-2F839 ; [.3152.0021.0002.53EB][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F839
-2F83A ; [.315E.0022.0002.53F1][.31E4.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83A
-F9DE ; [.3157.0024.0002.540F][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DE
-F9ED ; [.3157.0021.0002.541D][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9ED
-2F83D ; [.3164.0021.0002.5438][.31E2.0020.0002][.323E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83D
-F980 ; [.3157.0024.0002.5442][.31D6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F980
-2F83E ; [.315E.0026.0002.5448][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83E
-2F83F ; [.315E.0028.0002.5468][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83F
-2F840 ; [.315D.0031.0002.54A2][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F840
-F99E ; [.315D.0025.0002.54BD][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99E
-2F842 ; [.3155.0021.0002.5510][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F842
-2F843 ; [.3152.0022.0002.5553][.31D7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F843
-2F844 ; [.3164.0024.0002.5563][.31D0.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F844
-2F845 ; [.315B.0024.0002.5584][.31D4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F845
-2F846 ; [.315B.0024.0002.5584][.31D4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F846
-F90B ; [.3157.0021.0002.5587][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90B
-FA7A ; [.3164.0022.0002.5599][.31DF.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7A
-2F847 ; [.3164.0022.0002.5599][.31DF.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F847
-FA36 ; [.3152.0022.0002.559D][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA36
-FA78 ; [.3152.0022.0002.559D][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA78
-2F848 ; [.3153.0021.0002.55AB][.31E4.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F848
-FA7B ; [.315D.0022.0002.55E2][.31D8.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7B
-FA37 ; [.3162.0022.0002.5606][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA37
-2F84C ; [.3162.0022.0002.5606][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84C
-FA38 ; [.3152.0026.0002.5668][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA38
-2F84F ; [.3159.0023.0002.5674][.31DD.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84F
-F9A9 ; [.3157.0023.0002.56F9][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A9
-2F84B ; [.3155.0024.0002.5716][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84B
-2F855 ; [.3164.0024.0002.578B][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F855
-2F852 ; [.315B.0021.0002.57CE][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F852
-2F853 ; [.315B.0021.0002.57F4][.31E4.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F853
-2F857 ; [.3159.0023.0002.5831][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F857
-FA39 ; [.3159.0033.0002.5840][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA39
-FA10 ; [.3160.0022.0002.585A][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA10
-FA7C ; [.3160.0022.0002.585A][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7C
-F96C ; [.315B.0021.0002.585E][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96C
-FA3A ; [.3158.0021.0002.58A8][.31DD.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3A
-FA7D ; [.3159.0024.0002.58B3][.31DD.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7D
-F94A ; [.3157.0021.0002.58D8][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94A
-F942 ; [.3157.0021.0002.58DF][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F942
-2F85C ; [.3159.0032.0002.5906][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85C
-2F85D ; [.3155.0021.0002.591A][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85D
-2F85E ; [.3158.0021.0002.5922][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85E
-FA7E ; [.315D.0024.0002.5944][.31D4.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7E
-F90C ; [.3154.0023.0002.5948][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90C
-F909 ; [.3152.0024.0002.5951][.31D7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F909
-FA7F ; [.3159.0025.0002.5954][.31DD.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7F
-2F85F ; [.315B.0030.0002.5962][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85F
-F981 ; [.3154.0021.0002.5973][.31D6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F981
-2F862 ; [.3164.0026.0002.59EC][.31E3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F862
-2F863 ; [.315D.002C.0002.5A1B][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F863
-2F864 ; [.3162.0030.0002.5A27][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F864
-FA80 ; [.3159.0027.0002.5A62][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA80
-2F866 ; [.3159.002B.0002.5A66][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F866
-2F986 ; [.315D.0025.0002.5AB5][.31E4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F986
-2F869 ; [.315D.0041.0002.5B08][.31DC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F869
-FA81 ; [.315E.003C.0002.5B28][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA81
-2F86A ; [.3157.0029.0002.5B3E][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86A
-2F86B ; [.3157.0029.0002.5B3E][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86B
-FA04 ; [.3155.0021.0002.5B85][.31D1.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA04
-2F86D ; [.315D.0029.0002.5BC3][.31DE.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86D
-2F86E ; [.3160.003B.0002.5BD8][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86E
-F95F ; [.3154.0021.0002.5BE7][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95F
-F9AA ; [.3154.0021.0002.5BE7][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AA
-2F86F ; [.3154.0021.0002.5BE7][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86F
-F9BC ; [.3157.0023.0002.5BEE][.31DC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BC
-F9BD ; [.3154.0021.0002.5C3F][.31DC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BD
-2F877 ; [.3155.0028.0002.5C60][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F877
-F94B ; [.3157.0023.0002.5C62][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94B
-FA3B ; [.3160.0021.0002.5C64][.31E2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3B
-F9DF ; [.3157.0026.0002.5C65][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DF
-2F879 ; [.315B.002A.0002.5CC0][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F879
-F9D5 ; [.3157.0023.0002.5D19][.31E1.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D5
-F921 ; [.3157.0021.0002.5D50][.31D0.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F921
-F9AB ; [.3157.0025.0002.5DBA][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AB
-2F881 ; [.315B.0021.0002.5DE1][.31DD.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F881
-2F882 ; [.315B.0027.0002.5DE2][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F882
-2F884 ; [.315B.0022.0002.5DFD][.31D8.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F884
-2F885 ; [.315B.0029.0002.5E28][.31D5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F885
-2F886 ; [.3158.0025.0002.5E3D][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F886
-F98E ; [.3154.0021.0002.5E74][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98E
-FA01 ; [.3155.002B.0002.5EA6][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA01
-2F88C ; [.3159.0052.0002.5EB3][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88C
-2F88D ; [.315B.0025.0002.5EB6][.31D4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88D
-F9A2 ; [.3157.0021.0002.5EC9][.31D6.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A2
-F928 ; [.3157.0021.0002.5ECA][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F928
-2F88E ; [.3157.0021.0002.5ECA][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88E
-FA0B ; [.3152.0021.0002.5ED3][.31D9.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0B
-F982 ; [.3157.0025.0002.5EEC][.31D6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F982
-F943 ; [.3157.0022.0002.5F04][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F943
-2F894 ; [.3155.004B.0002.5F22][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F894
-2F895 ; [.3155.004B.0002.5F22][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F895
-2F899 ; [.3164.0025.0002.5F62][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F899
-FA84 ; [.3160.0025.0002.5F69][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA84
-2F89A ; [.315E.0027.0002.5F6B][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89A
-F9D8 ; [.3157.0021.0002.5F8B][.31E1.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D8
-F966 ; [.3159.0026.0002.5FA9][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F966
-FA85 ; [.315D.0043.0002.5FAD][.31DC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA85
-2F89D ; [.315D.002A.0002.5FCD][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89D
-2F89E ; [.315E.0026.0002.5FD7][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89E
-F9A3 ; [.3154.0021.0002.5FF5][.31D6.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A3
-F960 ; [.3154.0024.0002.6012][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F960
-F9AC ; [.3157.0026.0002.601C][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AC
-2F8A0 ; [.315D.0042.0002.6081][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A0
-FA3D ; [.3164.0026.0002.6094][.31DB.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3D
-2F8A3 ; [.3164.0026.0002.6094][.31DB.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A3
-2F8A5 ; [.3155.0022.0002.60C7][.31D8.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A5
-FA86 ; [.3158.002D.0002.60D8][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA86
-F9B9 ; [.315D.0025.0002.60E1][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B9
-FA88 ; [.315D.002E.0002.6108][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA88
-F9D9 ; [.3157.0022.0002.6144][.31E1.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D9
-2F8A6 ; [.315E.002A.0002.6148][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A6
-2F8A7 ; [.3164.0027.0002.614C][.31D9.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A7
-2F8A9 ; [.3164.0027.0002.614C][.31D9.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A9
-FA8A ; [.315D.0047.0002.6160][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8A
-FA3E ; [.3152.0028.0002.6168][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3E
-2F8AA ; [.3157.0031.0002.617A][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AA
-FA3F ; [.315E.0022.0002.618E][.31E2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3F
-FA89 ; [.315E.0022.0002.618E][.31E2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA89
-2F8AB ; [.315E.0022.0002.618E][.31E2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AB
-F98F ; [.3157.0021.0002.6190][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98F
-2F8AD ; [.3159.0028.0002.61A4][.31DD.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AD
-2F8AE ; [.3160.0030.0002.61AF][.31D0.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AE
-2F8AC ; [.3164.0021.0002.61B2][.31D4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AC
-2F8AF ; [.3158.0025.0002.61DE][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AF
-FA40 ; [.315E.0022.0002.61F2][.31E4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA40
-FA8B ; [.315E.0022.0002.61F2][.31E4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8B
-2F8B0 ; [.315E.0022.0002.61F2][.31E4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B0
-F90D ; [.3157.0022.0002.61F6][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90D
-2F8B1 ; [.3157.0022.0002.61F6][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B1
-F990 ; [.3157.0022.0002.6200][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F990
-2F8B2 ; [.315B.0026.0002.6210][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B2
-F9D2 ; [.3157.0022.0002.622E][.31E1.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D2
-FA8C ; [.3155.0029.0002.6234][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8C
-2F8B5 ; [.3163.002B.0002.62B1][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B5
-F925 ; [.3157.0021.0002.62C9][.31D0.0020.0002][.323E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F925
-F95B ; [.3154.0024.0002.62CF][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95B
-FA02 ; [.3160.0026.0002.62D3][.31D4.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA02
-2F8B6 ; [.3159.0022.0002.62D4][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B6
-F973 ; [.315B.0022.0002.62FE][.31E2.0020.0002][.323E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F973
-2F8B9 ; [.3158.0027.0002.633D][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B9
-2F8B7 ; [.315D.0027.0002.6350][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B7
-2F8BB ; [.315B.0039.0002.6368][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BB
-F9A4 ; [.3154.0024.0002.637B][.31D6.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A4
-2F8BC ; [.315B.0029.0002.6383][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BC
-F975 ; [.3157.0021.0002.63A0][.31D2.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F975
-2F8C1 ; [.315D.0025.0002.63A9][.31D4.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C1
-FA8D ; [.315D.0030.0002.63C4][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8D
-FA8E ; [.315B.0030.0002.641C][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8E
-2F8BF ; [.315E.0025.0002.6422][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BF
-2F8C3 ; [.3158.0021.0002.6469][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C3
-F991 ; [.3154.0022.0002.649A][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F991
-2F8C5 ; [.3164.0029.0002.649D][.31E0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C5
-F930 ; [.3157.0023.0002.64C4][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F930
-FA41 ; [.3158.0025.0002.654F][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA41
-2F8C8 ; [.3158.0025.0002.654F][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C8
-FA90 ; [.315D.0030.0002.6556][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA90
-2F8C9 ; [.3152.0030.0002.656C][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C9
-F969 ; [.315B.0032.0002.6578][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F969
-F9BE ; [.3157.0025.0002.6599][.31DC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BE
-F983 ; [.3157.0028.0002.65C5][.31D6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F983
-2F8CB ; [.3152.0035.0002.65E3][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CB
-F9E0 ; [.315D.0024.0002.6613][.31D6.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E0
-2F8CD ; [.315E.0026.0002.6649][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CD
-FA12 ; [.3160.0022.0002.6674][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA12
-FA91 ; [.3160.0022.0002.6674][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA91
-F9C5 ; [.3164.002A.0002.6688][.31DD.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C5
-FA43 ; [.315B.002B.0002.6691][.31D4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA43
-2F8CF ; [.315B.002B.0002.6691][.31D4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CF
-FA06 ; [.3163.0022.0002.66B4][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA06
-F98B ; [.3157.0022.0002.66C6][.31D6.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98B
-F901 ; [.3152.0033.0002.66F4][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F901
-2F8CC ; [.315B.002D.0002.66F8][.31D4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CC
-2F8D4 ; [.3160.0023.0002.6700][.31DB.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D4
-F929 ; [.3157.0022.0002.6717][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F929
-FA92 ; [.3157.0022.0002.6717][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA92
-2F8D8 ; [.3157.0022.0002.6717][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D8
-FA93 ; [.3158.0025.0002.671B][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA93
-2F8D9 ; [.3158.0025.0002.671B][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D9
-F9E1 ; [.3157.0028.0002.674E][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E1
-2F8DC ; [.3163.0025.0002.6753][.31DC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8DC
-FA94 ; [.315E.002E.0002.6756][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA94
-2F8DB ; [.3152.0038.0002.675E][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8DB
-F9C8 ; [.3154.0021.0002.677B][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C8
-F9F4 ; [.3157.0021.0002.6797][.31E4.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F4
-F9C9 ; [.3157.0023.0002.67F3][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C9
-F9DA ; [.3157.0023.0002.6817][.31E1.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DA
-F97A ; [.3157.0025.0002.6881][.31D2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97A
-FA44 ; [.3158.0027.0002.6885][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA44
-2F8E2 ; [.3158.0027.0002.6885][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8E2
-F9E2 ; [.3157.0029.0002.68A8][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E2
-2F8E8 ; [.315B.0062.0002.6942][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8E8
-2F8EA ; [.3152.002A.0002.69EA][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8EA
-F914 ; [.315D.0028.0002.6A02][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F914
-F95C ; [.315D.0028.0002.6A02][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95C
-F9BF ; [.315D.0028.0002.6A02][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BF
-F94C ; [.3157.0024.0002.6A13][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94C
-F931 ; [.3157.0024.0002.6AD3][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F931
-2F8ED ; [.315E.0021.0002.6ADB][.31E2.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8ED
-F91D ; [.3157.0023.0002.6B04][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91D
-2F8EF ; [.3160.0028.0002.6B21][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8EF
-2F8F1 ; [.3164.0025.0002.6B54][.31D4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F1
-2F8F3 ; [.315B.0023.0002.6B72][.31D5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F3
-F98C ; [.3157.0023.0002.6B77][.31D6.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98C
-F9A5 ; [.3157.0023.0002.6BAE][.31D6.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A5
-F970 ; [.315B.0023.0002.6BBA][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F970
-FA96 ; [.315B.0023.0002.6BBA][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA96
-2F8F5 ; [.315B.0023.0002.6BBA][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F5
-2F8FA ; [.3159.0025.0002.6C4E][.31D4.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8FA
-F972 ; [.3160.0024.0002.6C88][.31E4.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F972
-2F8FC ; [.315D.002B.0002.6CBF][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8FC
-F968 ; [.3163.0024.0002.6CCC][.31E4.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F968
-F9E3 ; [.3154.0022.0002.6CE5][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E3
-F915 ; [.3157.0021.0002.6D1B][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F915
-FA05 ; [.3155.002A.0002.6D1E][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA05
-2F900 ; [.3163.0029.0002.6D3E][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F900
-F9CA ; [.3157.0025.0002.6D41][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CA
-FA97 ; [.3157.0025.0002.6D41][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA97
-2F902 ; [.3157.0025.0002.6D41][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F902
-2F903 ; [.3164.002E.0002.6D69][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F903
-F92A ; [.3157.0023.0002.6D6A][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92A
-FA45 ; [.3164.002A.0002.6D77][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA45
-2F901 ; [.3164.002A.0002.6D77][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F901
-2F904 ; [.3160.0025.0002.6D78][.31E4.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F904
-2F905 ; [.315D.0022.0002.6D85][.31D6.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F905
-F9F5 ; [.3157.0022.0002.6DCB][.31E4.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F5
-F94D ; [.3157.0025.0002.6DDA][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94D
-F9D6 ; [.3157.0024.0002.6DEA][.31E1.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D6
-2F90E ; [.315D.0026.0002.6DF9][.31D4.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90E
-FA46 ; [.315E.002C.0002.6E1A][.31D4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA46
-2F908 ; [.3164.002B.0002.6E2F][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F908
-2F909 ; [.315D.002B.0002.6E6E][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F909
-F9CB ; [.3157.0026.0002.6E9C][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CB
-F9EC ; [.3154.0022.0002.6EBA][.31E4.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EC
-FA99 ; [.315E.002B.0002.6ECB][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA99
-2F90B ; [.315E.002B.0002.6ECB][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90B
-F904 ; [.3164.0022.0002.6ED1][.31D9.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F904
-F94E ; [.3157.0026.0002.6F0F][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94E
-FA47 ; [.3164.0026.0002.6F22][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA47
-FA9A ; [.3164.0026.0002.6F22][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9A
-F992 ; [.3157.0024.0002.6F23][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F992
-2F90F ; [.315E.0033.0002.6F6E][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90F
-2F912 ; [.3159.003C.0002.6FC6][.31DD.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F912
-F922 ; [.3157.0025.0002.6FEB][.31D0.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F922
-F984 ; [.3157.002A.0002.6FFE][.31D6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F984
-2F915 ; [.315D.002D.0002.701B][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F915
-FA9B ; [.315E.003D.0002.701E][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9B
-2F914 ; [.315E.003D.0002.701E][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F914
-2F835 ; [.3164.002D.0002.7070][.31DB.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F835
-2F918 ; [.315E.002B.0002.707D][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F918
-F9FB ; [.315E.002C.0002.7099][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FB
-2F91A ; [.3162.0028.0002.70AD][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F91A
-F99F ; [.3157.0025.0002.70C8][.31D6.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99F
-F916 ; [.3157.0022.0002.70D9][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F916
-F993 ; [.3157.0025.0002.7149][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F993
-FA48 ; [.315E.002D.0002.716E][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA48
-FA9C ; [.315E.002D.0002.716E][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9C
-F9C0 ; [.3157.0026.0002.71CE][.31DC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C0
-F9EE ; [.3157.0023.0002.71D0][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EE
-F932 ; [.3157.0027.0002.7210][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F932
-F91E ; [.3157.0026.0002.721B][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91E
-2F920 ; [.3160.0036.0002.7228][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F920
-FA9E ; [.315E.0028.0002.7235][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9E
-2F921 ; [.315E.0028.0002.7235][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F921
-F946 ; [.3157.0023.0002.7262][.31DB.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F946
-2F924 ; [.315B.0030.0002.7280][.31D4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F924
-FA9F ; [.3159.0027.0002.72AF][.31D4.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9F
-F9FA ; [.315B.0035.0002.72C0][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FA
-F92B ; [.3157.0024.0002.72FC][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92B
-FA16 ; [.315E.002E.0002.732A][.31D4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA16
-FAA0 ; [.315E.002E.0002.732A][.31D4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA0
-F9A7 ; [.3157.0021.0002.7375][.31D6.0020.0002][.323E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A7
-2F928 ; [.3155.0023.0002.737A][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F928
-F961 ; [.315B.0021.0002.7387][.31D8.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F961
-F9DB ; [.315B.0021.0002.7387][.31D8.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DB
-2F929 ; [.315D.0025.0002.738B][.31D9.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F929
-F9AD ; [.3157.0027.0002.73B2][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AD
-F917 ; [.3157.0023.0002.73DE][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F917
-F9E4 ; [.3157.002D.0002.7406][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E4
-F9CC ; [.3157.0028.0002.7409][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CC
-FA4A ; [.3162.002B.0002.7422][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4A
-2F92F ; [.315D.003D.0002.745C][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F92F
-F9AE ; [.3164.002D.0002.7469][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AE
-FAA1 ; [.315E.0057.0002.7471][.31D4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA1
-2F930 ; [.315E.0057.0002.7471][.31D4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F930
-F994 ; [.3157.0026.0002.7489][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F994
-F9EF ; [.3157.0024.0002.7498][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EF
-2F932 ; [.3152.003A.0002.74CA][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F932
-F9CD ; [.3157.002A.0002.7559][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CD
-F976 ; [.3157.0022.0002.7565][.31D2.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F976
-F962 ; [.315D.002C.0002.7570][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F962
-2F938 ; [.315D.002C.0002.7570][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F938
-F9E5 ; [.3157.002F.0002.75E2][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E5
-2F93A ; [.315D.0059.0002.7610][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F93A
-FAA5 ; [.315D.0023.0002.761F][.31D8.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA5
-F9C1 ; [.3157.0027.0002.7642][.31DC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C1
-F90E ; [.3157.0023.0002.7669][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90E
-FA17 ; [.315D.0022.0002.76CA][.31E4.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA17
-FAA6 ; [.315D.0022.0002.76CA][.31E4.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA6
-FAA7 ; [.315B.002B.0002.76DB][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA7
-F933 ; [.3157.0028.0002.76E7][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F933
-FAA8 ; [.315E.0021.0002.76F4][.31E4.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA8
-2F940 ; [.315E.0021.0002.76F4][.31E4.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F940
-F96D ; [.315B.002C.0002.7701][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96D
-2F945 ; [.315E.0033.0002.771E][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F945
-FAAA ; [.3160.0023.0002.7740][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAA
-2F94A ; [.315E.0034.0002.778B][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F94A
-F9CE ; [.3157.002C.0002.786B][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CE
-F93B ; [.3157.0021.0002.788C][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93B
-2F94F ; [.3157.0021.0002.788C][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F94F
-FA4B ; [.3159.0038.0002.7891][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4B
-F947 ; [.3157.0024.0002.78CA][.31DB.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F947
-F964 ; [.3159.0032.0002.78FB][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F964
-F985 ; [.3157.002B.0002.792A][.31D6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F985
-FA4C ; [.315B.0046.0002.793E][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4C
-FA4E ; [.3152.004C.0002.7948][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4E
-FA4D ; [.315E.0035.0002.7949][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4D
-FA4F ; [.315D.0032.0002.7950][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4F
-FA50 ; [.315E.0039.0002.7956][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA50
-2F953 ; [.315E.0039.0002.7956][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F953
-FA51 ; [.3160.0023.0002.795D][.31DD.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA51
-FA19 ; [.315B.002C.0002.795E][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA19
-FA1A ; [.315B.0037.0002.7965][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1A
-F93C ; [.3157.0022.0002.797F][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93C
-FA52 ; [.3164.0027.0002.798D][.31D9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA52
-FA53 ; [.315E.0044.0002.798E][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA53
-FA1B ; [.3159.0028.0002.798F][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1B
-2F956 ; [.3159.0028.0002.798F][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F956
-F9B6 ; [.3157.0023.0002.79AE][.31D7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B6
-F995 ; [.3154.0023.0002.79CA][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F995
-2F957 ; [.3160.0024.0002.79EB][.31DD.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F957
-F956 ; [.3157.0023.0002.7A1C][.31E2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F956
-FA54 ; [.3152.0025.0002.7A40][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA54
-2F959 ; [.3152.0025.0002.7A40][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F959
-FA55 ; [.3155.0022.0002.7A81][.31D8.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA55
-F9F7 ; [.3157.0022.0002.7ACB][.31E4.0020.0002][.323E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F7
-F9F8 ; [.3157.0023.0002.7B20][.31E4.0020.0002][.323E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F8
-FA56 ; [.315E.0027.0002.7BC0][.31D4.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA56
-FAAD ; [.315E.0027.0002.7BC0][.31D4.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAD
-2F962 ; [.315E.003D.0002.7BC6][.31D4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F962
-2F963 ; [.3160.0026.0002.7BC9][.31DD.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F963
-F9A6 ; [.3157.0025.0002.7C3E][.31D6.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A6
-F944 ; [.3157.0026.0002.7C60][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F944
-F9F9 ; [.3157.0024.0002.7C92][.31E4.0020.0002][.323E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F9
-FA1D ; [.315E.0047.0002.7CBE][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1D
-FA03 ; [.3155.0029.0002.7CD6][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA03
-F97B ; [.3157.0029.0002.7CE7][.31D2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97B
-2F96A ; [.3152.004F.0002.7D00][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96A
-F9CF ; [.3154.0022.0002.7D10][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CF
-F96A ; [.315B.0023.0002.7D22][.31D1.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96A
-F94F ; [.3157.0028.0002.7D2F][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94F
-FAAF ; [.315E.0063.0002.7D5B][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAF
-2F96C ; [.3159.0034.0002.7D63][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96C
-F93D ; [.3157.0023.0002.7DA0][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93D
-F957 ; [.3157.0024.0002.7DBE][.31E2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F957
-2F96E ; [.3160.0030.0002.7DC7][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96E
-F996 ; [.3157.0027.0002.7DF4][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F996
-FA57 ; [.3157.0027.0002.7DF4][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA57
-FAB0 ; [.3157.0027.0002.7DF4][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB0
-FA58 ; [.315E.0036.0002.7E09][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA58
-F950 ; [.3157.0029.0002.7E37][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F950
-FA59 ; [.3159.0026.0002.7E41][.31D4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA59
-2F970 ; [.315B.0052.0002.7E45][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F970
-FAB1 ; [.3159.0035.0002.7F3E][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB1
-FA5A ; [.315B.0035.0002.7F72][.31D4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5A
-F9E6 ; [.3157.0031.0002.7F79][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E6
-F90F ; [.3157.0024.0002.7F85][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90F
-F9AF ; [.3157.0029.0002.7F9A][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AF
-FA1E ; [.315D.0036.0002.7FBD][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1E
-2F979 ; [.3152.005A.0002.7FFA][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F979
-F934 ; [.3157.0029.0002.8001][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F934
-FA5B ; [.315E.0033.0002.8005][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5B
-FAB2 ; [.315E.0033.0002.8005][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB2
-2F97A ; [.315E.0033.0002.8005][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F97A
-F9B0 ; [.3157.002B.0002.8046][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B0
-F997 ; [.3157.0028.0002.806F][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F997
-2F97F ; [.3160.0028.0002.8070][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F97F
-F945 ; [.3157.0027.0002.807E][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F945
-F953 ; [.3157.0022.0002.808B][.31E2.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F953
-2F8D6 ; [.3154.0023.0002.80AD][.31DD.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D6
-2F982 ; [.315D.0024.0002.80B2][.31E1.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F982
-2F985 ; [.3159.003F.0002.813E][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F985
-F926 ; [.3157.0022.0002.81D8][.31D0.0020.0002][.323E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F926
-F9F6 ; [.3157.0024.0002.81E8][.31E4.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F6
-FA5C ; [.3160.002A.0002.81ED][.31E0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5C
-2F893 ; [.315D.002E.0002.8201][.31D6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F893
-2F98B ; [.315D.002E.0002.8201][.31D6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F98B
-F97C ; [.3157.002A.0002.826F][.31D2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97C
-2F990 ; [.315D.0037.0002.828B][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F990
-2F991 ; [.315E.003B.0002.829D][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F991
-2F993 ; [.3164.0029.0002.82B1][.31D9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F993
-2F994 ; [.3159.0035.0002.82B3][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F994
-2F995 ; [.315D.0029.0002.82BD][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F995
-F974 ; [.315D.0023.0002.82E5][.31D2.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F974
-2F998 ; [.315D.0023.0002.82E5][.31D2.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F998
-2F996 ; [.3152.003A.0002.82E6][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F996
-2F999 ; [.3160.002E.0002.831D][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F999
-2F99C ; [.315D.004C.0002.8323][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99C
-F9FE ; [.3155.0022.0002.8336][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FE
-FAB3 ; [.3164.0034.0002.8352][.31D9.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB3
-2F99D ; [.3158.002A.0002.83BD][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99D
-F93E ; [.3157.0024.0002.83C9][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93E
-2F9A1 ; [.3152.0023.0002.83CA][.31DD.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A1
-2F9A2 ; [.3152.0025.0002.83CC][.31E1.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A2
-2F9A3 ; [.3160.0029.0002.83DC][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A3
-FAB4 ; [.3164.002A.0002.83EF][.31D9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB4
-F958 ; [.3157.0025.0002.83F1][.31E2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F958
-F918 ; [.3157.0025.0002.843D][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F918
-F96E ; [.315D.0023.0002.8449][.31D6.0020.0002][.323E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96E
-FA5F ; [.315E.0034.0002.8457][.31D4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5F
-2F99F ; [.315E.0034.0002.8457][.31D4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99F
-F999 ; [.3157.0029.0002.84EE][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F999
-2F9A8 ; [.3163.002A.0002.84F1][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A8
-F9C2 ; [.3157.002A.0002.84FC][.31DC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C2
-2F9AC ; [.315D.0062.0002.8564][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9AC
-F923 ; [.3157.0028.0002.85CD][.31D0.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F923
-F9F0 ; [.3157.0025.0002.85FA][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F0
-F935 ; [.3157.002A.0002.8606][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F935
-F91F ; [.3157.0027.0002.862D][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91F
-F910 ; [.3157.0025.0002.863F][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F910
-2F9B3 ; [.3164.0023.0002.8650][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B3
-F936 ; [.3157.002B.0002.865C][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F936
-2F9B4 ; [.3157.002B.0002.865C][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B4
-2F9B5 ; [.3164.0025.0002.8667][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B5
-2F9B7 ; [.3160.0034.0002.86A9][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B7
-2F9BC ; [.315E.0026.0002.8728][.31D4.0020.0002][.323E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9BC
-F911 ; [.3157.0026.0002.87BA][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F911
-F927 ; [.3157.0023.0002.881F][.31D0.0020.0002][.323E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F927
-FA08 ; [.3164.0025.0002.884C][.31D1.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA08
-2F9C4 ; [.315D.0030.0002.8863][.31E3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9C4
-F9A0 ; [.3157.0026.0002.88C2][.31D6.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A0
-F9E7 ; [.3157.0034.0002.88CF][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E7
-F9E8 ; [.3157.0035.0002.88E1][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E8
-F912 ; [.3157.0027.0002.88F8][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F912
-FA60 ; [.3152.0028.0002.8910][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA60
-FAB6 ; [.3152.0034.0002.8941][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB6
-F924 ; [.3157.0029.0002.8964][.31D0.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F924
-FAB7 ; [.3159.002D.0002.8986][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB7
-FA0A ; [.3152.0028.0002.898B][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0A
-FA61 ; [.315B.0037.0002.8996][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA61
-FAB8 ; [.315B.0037.0002.8996][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB8
-2F9CF ; [.315B.0031.0002.8AA0][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9CF
-F96F ; [.315B.002B.0002.8AAA][.31D4.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96F
-F9A1 ; [.315B.002B.0002.8AAA][.31D4.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A1
-FAB9 ; [.315E.0046.0002.8ABF][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB9
-FABB ; [.3160.0026.0002.8ACB][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABB
-F97D ; [.3157.002B.0002.8AD2][.31D2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97D
-F941 ; [.3157.0021.0002.8AD6][.31D8.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F941
-FABE ; [.315D.0046.0002.8AED][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABE
-2F9D0 ; [.315D.0046.0002.8AED][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D0
-FA22 ; [.315E.0030.0002.8AF8][.31D5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA22
-FABA ; [.315E.0030.0002.8AF8][.31D5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABA
-F95D ; [.3154.0021.0002.8AFE][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95D
-FABD ; [.3154.0021.0002.8AFE][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABD
-FA62 ; [.315D.0022.0002.8B01][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA62
-FABC ; [.315D.0022.0002.8B01][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABC
-FA63 ; [.3152.002D.0002.8B39][.31E2.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA63
-FABF ; [.3152.002D.0002.8B39][.31E2.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABF
-F9FC ; [.315B.002C.0002.8B58][.31E4.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FC
-F95A ; [.3155.002A.0002.8B80][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95A
-FAC0 ; [.3159.0023.0002.8B8A][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC0
-2F9D1 ; [.3159.0023.0002.8B8A][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D1
-F900 ; [.3152.0057.0002.8C48][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F900
-2F9D2 ; [.315B.003B.0002.8C55][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D2
-2F9D4 ; [.3152.002E.0002.8CAB][.31D9.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D4
-2F9D5 ; [.3159.0032.0002.8CC1][.31DD.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D5
-F948 ; [.3157.0025.0002.8CC2][.31DB.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F948
-F903 ; [.3152.0039.0002.8CC8][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F903
-FA64 ; [.3159.002D.0002.8CD3][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA64
-FA65 ; [.315E.002B.0002.8D08][.31E2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA65
-FAC1 ; [.315E.002B.0002.8D08][.31E2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC1
-2F9D6 ; [.3152.0039.0002.8D1B][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D6
-2F9D7 ; [.3152.0058.0002.8D77][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D7
-2F9DA ; [.3159.0027.0002.8DCB][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9DA
-F937 ; [.3157.002C.0002.8DEF][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F937
-F902 ; [.3160.002D.0002.8ECA][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F902
-F998 ; [.3157.002A.0002.8F26][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F998
-F9D7 ; [.3157.0026.0002.8F2A][.31E1.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D7
-FAC2 ; [.315B.004F.0002.8F38][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC2
-2F9DF ; [.315B.004F.0002.8F38][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9DF
-FA07 ; [.3159.002F.0002.8F3B][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA07
-F98D ; [.3157.0026.0002.8F62][.31D6.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98D
-F971 ; [.315E.003E.0002.8FB0][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F971
-F99A ; [.3157.002B.0002.9023][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99A
-FA25 ; [.315D.0027.0002.9038][.31E4.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA25
-FA67 ; [.315D.0027.0002.9038][.31E4.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA67
-FAC3 ; [.315E.0041.0002.9072][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC3
-F9C3 ; [.3157.002B.0002.907C][.31DC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C3
-F913 ; [.3157.0028.0002.908F][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F913
-FA2E ; [.3157.0028.0002.90DE][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2E
-FA26 ; [.3155.0045.0002.90FD][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA26
-F919 ; [.3157.0026.0002.916A][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F919
-F9B7 ; [.3157.0024.0002.91B4][.31D7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B7
-F9E9 ; [.3157.0036.0002.91CC][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E9
-F97E ; [.3157.002D.0002.91CF][.31D2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97E
-F90A ; [.3152.0021.0002.91D1][.31E4.0020.0002][.323D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90A
-F9B1 ; [.3157.002D.0002.9234][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B1
-2F9E7 ; [.3159.002F.0002.9238][.31D0.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9E7
-2F9EA ; [.3159.0039.0002.927C][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9EA
-2F9E8 ; [.3164.003F.0002.92D7][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9E8
-F93F ; [.3157.0025.0002.9304][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93F
-F99B ; [.3157.002C.0002.934A][.31D6.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99B
-2F9EE ; [.3152.0033.0002.958B][.31D1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9EE
-F986 ; [.3157.002E.0002.95AD][.31D6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F986
-F9C6 ; [.315D.0031.0002.962E][.31D9.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C6
-F951 ; [.3157.002D.0002.964B][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F951
-FA09 ; [.3152.0037.0002.964D][.31D0.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA09
-F959 ; [.3157.0026.0002.9675][.31E2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F959
-F9D3 ; [.3157.0023.0002.9678][.31E1.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D3
-FAC6 ; [.315E.004E.0002.967C][.31D4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC6
-F9DC ; [.3157.0021.0002.9686][.31E1.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DC
-F9F1 ; [.3157.0027.0002.96A3][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F1
-FA2F ; [.3157.0025.0002.96B7][.31D7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2F
-F9B8 ; [.3157.0026.0002.96B8][.31D7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B8
-F9EA ; [.3157.0038.0002.96E2][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EA
-FA68 ; [.3154.0023.0002.96E3][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA68
-FAC7 ; [.3154.0023.0002.96E3][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC7
-F9B2 ; [.3157.002E.0002.96F6][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B2
-F949 ; [.3157.0028.0002.96F7][.31DB.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F949
-2F9F5 ; [.315D.0031.0002.9723][.31DD.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9F5
-F938 ; [.3157.002E.0002.9732][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F938
-F9B3 ; [.3157.002F.0002.9748][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B3
-FA1C ; [.315E.0054.0002.9756][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1C
-FAC8 ; [.315E.0054.0002.9756][.31D4.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC8
-2F9FA ; [.3163.0034.0002.97E0][.31E4.0020.0002][.3235.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9FA
-FA69 ; [.3164.0026.0002.97FF][.31D2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA69
-FACA ; [.3164.0026.0002.97FF][.31D2.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACA
-F9B4 ; [.3157.0030.0002.9818][.31D6.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B4
-FA6A ; [.3159.002E.0002.983B][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA6A
-FACC ; [.3159.002E.0002.983B][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACC
-F9D0 ; [.3157.002E.0002.985E][.31E1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D0
-2FA02 ; [.3152.005B.0002.98E2][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA02
-FA2A ; [.3159.0039.0002.98EF][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2A
-FA2B ; [.315B.005A.0002.98FC][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2B
-FA2C ; [.3152.0030.0002.9928][.31D9.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2C
-F91A ; [.3157.0027.0002.99F1][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91A
-F987 ; [.3157.0030.0002.9A6A][.31D6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F987
-FACD ; [.315E.004C.0002.9B12][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACD
-2FA0A ; [.315E.004C.0002.9B12][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA0A
-F939 ; [.3157.002F.0002.9B6F][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F939
-F9F2 ; [.3157.0028.0002.9C57][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F2
-FA2D ; [.3164.0025.0002.9DB4][.31D0.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2D
-F93A ; [.3157.0030.0002.9DFA][.31D8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93A
-F920 ; [.3157.0028.0002.9E1E][.31D0.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F920
-F940 ; [.3157.0026.0002.9E7F][.31D8.0020.0002][.322E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F940
-F988 ; [.3157.0031.0002.9E97][.31D6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F988
-F9F3 ; [.3157.0029.0002.9E9F][.31E4.0020.0002][.3231.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F3
-2FA15 ; [.3158.0028.0002.9EBB][.31D0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA15
-F989 ; [.3157.0032.0002.9ECE][.31D6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F989
-2FA1C ; [.3159.004A.0002.9F3B][.31E4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA1C
-F9C4 ; [.3157.0021.0002.9F8D][.31DC.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C4
-FAD9 ; [.3157.002E.0002.9F8E][.31D8.0020.0002][.3242.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAD9
-F907 ; [.3152.0056.0002.9F9C][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F907
-F908 ; [.3152.0056.0002.9F9C][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F908
-FACE ; [.3152.0056.0002.9F9C][.31DD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACE
+ 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
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl
index ca826bb78ba..d2e645acad4 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl
@@ -1,13 +1,13 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0902 ; [.1FD8.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
-0901 ; [.1FD8.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
-0903 ; [.1FD8.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
-0950 ; [.1FD8.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
-0933 ; [.2019.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
-0934 ; [.2019.0020.0002][.FFF1.0000.0000][.0000.00B6.0002] # DEVANAGARI LETTER LLLA
-0915 094D 0937 ; [.2019.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
-0939 ; [.2019.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl
index 0938116ab1a..e461791faeb 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl
@@ -1,12 +1,12 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-025B ; [.1649.0020.0002] # LATIN SMALL LETTER OPEN E
-0190 ; [.1649.0020.0008] # LATIN CAPITAL LETTER OPEN E
-2107 ; [.1649.0020.000A] # EULER CONSTANT
-1D4B ; [.1649.0020.0014] # MODIFIER LETTER SMALL OPEN E
-0254 ; [.176D.0021.0002] # LATIN SMALL LETTER OPEN O
-0186 ; [.176D.0021.0008] # LATIN CAPITAL LETTER OPEN O
-1D53 ; [.176D.0021.0014] # MODIFIER LETTER SMALL OPEN O
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl
index a310d947cff..5782ba22fd6 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl
@@ -1,48 +1,48 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
# in cldr test/lt.xml why I-dot-acute > I-dot though i-dot-acute < i-dot ?
- entry => <<'ENTRY', # for DUCET v6.3.0
-0049 0307 ; [.16C9.0020.0008][.0000.002E.0002] # <LATIN CAPITAL LETTER I, COMBINING DOT ABOVE>
+ entry => <<'ENTRY', # for DUCET v7.0.0
+0049 0307 ; [.19F6.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 ; [.15EB.0021.0002] # LATIN SMALL LETTER A WITH OGONEK
-0061 0328 ; [.15EB.0021.0002] # LATIN SMALL LETTER A WITH OGONEK
-0104 ; [.15EB.0021.0008] # LATIN CAPITAL LETTER A WITH OGONEK
-0041 0328 ; [.15EB.0021.0008] # LATIN CAPITAL LETTER A WITH OGONEK
-010D ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0119 ; [.1648.0021.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1648.0021.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1648.0021.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1648.0021.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0117 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
-0065 0307 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
-0116 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH DOT ABOVE
-0045 0307 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH DOT ABOVE
-012F ; [.16C9.0021.0002] # LATIN SMALL LETTER I WITH OGONEK
-0069 0328 ; [.16C9.0021.0002] # LATIN SMALL LETTER I WITH OGONEK
-012E ; [.16C9.0021.0008] # LATIN CAPITAL LETTER I WITH OGONEK
-0049 0328 ; [.16C9.0021.0008] # LATIN CAPITAL LETTER I WITH OGONEK
-0079 ; [.16C9.0022.0002] # LATIN SMALL LETTER Y
-0059 ; [.16C9.0022.0008] # LATIN CAPITAL LETTER Y
-0161 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0173 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH OGONEK
-0075 0328 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH OGONEK
-0172 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH OGONEK
-0055 0328 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH OGONEK
-016B ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
-017E ; [.1892.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1892.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1892.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1892.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl
index 9ca6704cc41..c490ce38a9f 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl
@@ -1,37 +1,37 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-010D ; [.162C.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.162C.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.162C.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.162C.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0123 ; [.16AF.0020.0002] # LATIN SMALL LETTER G WITH CEDILLA
-0067 0327 ; [.16AF.0020.0002] # LATIN SMALL LETTER G WITH CEDILLA
-0122 ; [.16AF.0020.0008] # LATIN CAPITAL LETTER G WITH CEDILLA
-0047 0327 ; [.16AF.0020.0008] # LATIN CAPITAL LETTER G WITH CEDILLA
-0137 ; [.170C.0020.0002] # LATIN SMALL LETTER K WITH CEDILLA
-006B 0327 ; [.170C.0020.0002] # LATIN SMALL LETTER K WITH CEDILLA
-0136 ; [.170C.0020.0008] # LATIN CAPITAL LETTER K WITH CEDILLA
-004B 0327 ; [.170C.0020.0008] # LATIN CAPITAL LETTER K WITH CEDILLA
-013C ; [.173C.0020.0002] # LATIN SMALL LETTER L WITH CEDILLA
-006C 0327 ; [.173C.0020.0002] # LATIN SMALL LETTER L WITH CEDILLA
-013B ; [.173C.0020.0008] # LATIN CAPITAL LETTER L WITH CEDILLA
-004C 0327 ; [.173C.0020.0008] # LATIN CAPITAL LETTER L WITH CEDILLA
-0146 ; [.176C.0020.0002] # LATIN SMALL LETTER N WITH CEDILLA
-006E 0327 ; [.176C.0020.0002] # LATIN SMALL LETTER N WITH CEDILLA
-0145 ; [.176C.0020.0008] # LATIN CAPITAL LETTER N WITH CEDILLA
-004E 0327 ; [.176C.0020.0008] # LATIN CAPITAL LETTER N WITH CEDILLA
-0157 ; [.17EE.0020.0002] # LATIN SMALL LETTER R WITH CEDILLA
-0072 0327 ; [.17EE.0020.0002] # LATIN SMALL LETTER R WITH CEDILLA
-0156 ; [.17EE.0020.0008] # LATIN CAPITAL LETTER R WITH CEDILLA
-0052 0327 ; [.17EE.0020.0008] # LATIN CAPITAL LETTER R WITH CEDILLA
-0161 ; [.1811.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1811.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1811.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1811.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.18AD.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.18AD.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.18AD.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.18AD.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl
index 0b42047a6bf..8ad888de3cc 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl
@@ -1,45 +1,45 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
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 v6.3.0
-04D1 ; [.198D.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.198D.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.198D.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.198D.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1999.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1999.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04D7 ; [.19D5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.19D5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.19E1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.19E1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.19EE.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.19EE.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04E5 ; [.1A06.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E4 ; [.1A06.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-0457 ; [.1A12.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1A12.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-0439 ; [.1A06.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT I
-0419 ; [.1A06.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT I
-04E7 ; [.1A73.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1A73.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1A7B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1A7B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045E ; [.1AB5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1AB5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1AB5.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1AB5.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1AB5.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1AB5.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1B08.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1B08.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1B3B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1B3B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1B50.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1B50.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1B86.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1B86.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl
index 92446b45931..1cced229346 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl
@@ -1,23 +1,23 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0D3D ; [.0000.00BA.0002] # MALAYALAM SIGN AVAGRAHA
-0D57 ; [.2242.0020.0002] # MALAYALAM AU LENGTH MARK
-0D4C ; [.2242.0020.0003] # MALAYALAM VOWEL SIGN AU
-0D46 0D57 ; [.2242.0020.0003] # MALAYALAM VOWEL SIGN AU
-0D15 0D4D 200D ; [.220D.0020.0002][.2244.0021.0002] # <MALAYALAM LETTER KA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7F ; [.220D.0020.0003][.2244.0021.0002] # MALAYALAM LETTER CHILLU K
-0D23 0D4D 200D ; [.221B.0020.0002][.2244.0021.0002] # <MALAYALAM LETTER NNA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7A ; [.221B.0020.0003][.2244.0021.0002] # MALAYALAM LETTER CHILLU NN
-0D28 0D4D 200D ; [.2220.0020.0002][.2244.0021.0002] # <MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7B ; [.2220.0020.0003][.2244.0021.0002] # MALAYALAM LETTER CHILLU N
-0D30 0D4D 200D ; [.2228.0020.0002][.2244.0021.0002] # <MALAYALAM LETTER RA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7C ; [.2228.0020.0003][.2244.0021.0002] # MALAYALAM LETTER CHILLU RR
-0D32 0D4D 200D ; [.2229.0020.0002][.2244.0021.0002] # <MALAYALAM LETTER LA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7D ; [.2229.0020.0003][.2244.0021.0002] # MALAYALAM LETTER CHILLU L
-0D33 0D4D 200D ; [.222F.0020.0002][.2244.0021.0002] # <MALAYALAM LETTER LLA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7E ; [.222F.0020.0003][.2244.0021.0002] # MALAYALAM LETTER CHILLU LL
-0D02 ; [.2226.0020.0002][.2244.0021.0002] # MALAYALAM SIGN ANUSVARA
-0D7B 0D4D ; [.2220.0020.0002][.2244.0020.0003] # <MALAYALAM LETTER CHILLU N, MALAYALAM SIGN VIRAMA>
+ locale_version => 1.12,
+ 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>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl
index b9a9b9d2a6e..98bc0b174f2 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl
@@ -1,14 +1,14 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0902 ; [.1FD8.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
-0901 ; [.1FD8.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
-0903 ; [.1FD8.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
-0950 ; [.1FD8.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
-0933 ; [.2019.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
-0934 ; [.2019.0020.0002][.FFF1.0000.0000][.0000.00B6.0002] # DEVANAGARI LETTER LLLA
-0915 094D 0937 ; [.2019.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
-091C 094D 091E ; [.2019.0020.0002][.FFF3.0000.0000] # <DEVANAGARI LETTER JA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER NYA>
-0939 ; [.2019.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl
index 1c41e5dadf6..e8cca669ab1 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl
@@ -1,31 +1,31 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
upper_before_lower => 1,
- entry => <<'ENTRY', # for DUCET v6.3.0
-010B ; [.1618.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
-0063 0307 ; [.1618.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
-010A ; [.1618.0020.0008] # LATIN CAPITAL LETTER C WITH DOT ABOVE
-0043 0307 ; [.1618.0020.0008] # LATIN CAPITAL LETTER C WITH DOT ABOVE
-0121 ; [.168C.0020.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
-0067 0307 ; [.168C.0020.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
-0120 ; [.168C.0020.0008] # LATIN CAPITAL LETTER G WITH DOT ABOVE
-0047 0307 ; [.168C.0020.0008] # LATIN CAPITAL LETTER G WITH DOT ABOVE
-0067 0127 ; [.16AF.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H WITH STROKE>
-0067 0126 ; [.16AF.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER H WITH STROKE>
-0047 0127 ; [.16AF.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H WITH STROKE>
-0047 0126 ; [.16AF.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H WITH STROKE>
-0067 0068 0335 ; [.16AF.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY>
-0067 0048 0335 ; [.16AF.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER H, COMBINING SHORT STROKE OVERLAY>
-0047 0068 0335 ; [.16AF.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY>
-0047 0048 0335 ; [.16AF.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H, COMBINING SHORT STROKE OVERLAY>
-0127 ; [.16C8.0020.0002] # LATIN SMALL LETTER H WITH STROKE
-0068 0335 ; [.16C8.0020.0002] # LATIN SMALL LETTER H WITH STROKE
-210F ; [.16C8.0020.0002] # PLANCK CONSTANT OVER TWO PI
-0126 ; [.16C8.0020.0008] # LATIN CAPITAL LETTER H WITH STROKE
-0048 0335 ; [.16C8.0020.0008] # LATIN CAPITAL LETTER H WITH STROKE
-017C ; [.1890.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-007A 0307 ; [.1890.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-017B ; [.1890.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
-005A 0307 ; [.1890.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ 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
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl
index 4cbe9efe88f..749807d7218 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl
@@ -1,76 +1,76 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0111 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.162D.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.162D.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.162D.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1812.0020.0003][.16B0.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1812.0020.0009][.16B0.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.187C.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.187C.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.187C.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.187C.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.187C.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.187C.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.187C.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.187C.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1902.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1902.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1902.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1902.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1902.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1902.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1902.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1902.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1902.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1902.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1902.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1902.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1902.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1902.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1903.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1903.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1903.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1903.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1903.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1903.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1903.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1903.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1903.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1903.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1903.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1903.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1903.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1903.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1903.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1903.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1903.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1903.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1904.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1904.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1904.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1904.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1904.0020.0008] # ANGSTROM SIGN
-01FB ; [.1904.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1904.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0061 0061 ; [.1904.0021.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-0041 0061 ; [.1904.0021.0007] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
-0041 0041 ; [.1904.0021.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
+ locale_version => 1.12,
+ 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>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl
index 4cbe9efe88f..749807d7218 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl
@@ -1,76 +1,76 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0111 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.162D.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.162D.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.162D.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1812.0020.0003][.16B0.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1812.0020.0009][.16B0.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.187C.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.187C.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.187C.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.187C.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.187C.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.187C.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.187C.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.187C.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1902.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1902.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1902.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1902.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1902.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1902.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1902.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1902.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1902.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1902.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1902.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1902.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1902.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1902.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1903.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1903.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1903.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1903.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1903.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1903.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1903.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1903.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1903.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1903.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1903.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1903.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1903.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1903.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1903.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1903.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1903.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1903.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1904.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1904.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1904.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1904.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1904.0020.0008] # ANGSTROM SIGN
-01FB ; [.1904.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1904.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0061 0061 ; [.1904.0021.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-0041 0061 ; [.1904.0021.0007] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
-0041 0041 ; [.1904.0021.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
+ locale_version => 1.12,
+ 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>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl
index 2cd7e54b78e..0a43662ca58 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl
@@ -1,37 +1,37 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-00EA ; [.1649.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.1649.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.1649.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.1649.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC1 ; [.1649.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.1649.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EBF ; [.1649.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.1649.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC5 ; [.1649.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.1649.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.1649.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.1649.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.1649.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.1649.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-00F4 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.176E.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.176E.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.176E.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.176E.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.176E.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.176E.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.176E.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.176E.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.176E.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.176E.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-0161 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl
index 46bae724b19..4c4e9ce6abb 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl
@@ -1,22 +1,22 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0063 0068 ; [.1892.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0043 0068 ; [.1892.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.1892.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-0064 0068 ; [.1893.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER H>
-0044 0068 ; [.1893.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER H>
-0044 0048 ; [.1893.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER H>
-006B 0068 ; [.1894.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER H>
-004B 0068 ; [.1894.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER H>
-004B 0048 ; [.1894.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER H>
-006E 0079 ; [.1895.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-004E 0079 ; [.1895.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 0059 ; [.1895.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-0070 0068 ; [.1896.0020.0002] # <LATIN SMALL LETTER P, LATIN SMALL LETTER H>
-0050 0068 ; [.1896.0020.0007] # <LATIN CAPITAL LETTER P, LATIN SMALL LETTER H>
-0050 0048 ; [.1896.0020.0008] # <LATIN CAPITAL LETTER P, LATIN CAPITAL LETTER H>
-0073 0068 ; [.1897.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
-0053 0068 ; [.1897.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
+ locale_version => 1.12,
+ 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>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl
index 49cb789d606..3af7bfed51d 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl
@@ -1,12 +1,12 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0B01 ; [.2104.0020.0002][.FFF1.0000.0000] # ORIYA SIGN CANDRABINDU
-0B02 ; [.2104.0020.0002][.FFF2.0000.0000] # ORIYA SIGN ANUSVARA
-0B03 ; [.2104.0020.0002][.FFF3.0000.0000] # ORIYA SIGN VISARGA
-0B14 ; [.2104.0020.0002][.FFF0.0000.0000] # ORIYA LETTER AU
-0B15 0B4D 0B37 ; [.2128.0020.0002][.FFF1.0000.0000] # <ORIYA LETTER KA, ORIYA SIGN VIRAMA, ORIYA LETTER SSA>
-0B39 ; [.2128.0020.0002][.FFF0.0000.0000] # ORIYA LETTER HA
-0B5F ; [.211E.0021.0002] # ORIYA LETTER YYA
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl
index c261deaefdc..0db0eca062c 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl
@@ -1,27 +1,27 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0A71 ; [.0000.00B7.0002] # GURMUKHI ADDAK
-0A03 ; [.0000.00B6.0002] # GURMUKHI SIGN VISARGA
-0A70 ; [.0000.00B8.0002] # GURMUKHI TIPPI
-0A02 ; [.0000.00B9.0002] # GURMUKHI SIGN BINDI
-0A01 ; [.0000.00BA.0002] # GURMUKHI SIGN ADAK BINDI
-0A3C ; [.0000.00BB.0002] # GURMUKHI SIGN NUKTA
-0A33 ; [.20A6.0020.0002][.0000.00BB.0002] # GURMUKHI LETTER LLA
-0A36 ; [.2087.0020.0002][.0000.00BB.0002] # GURMUKHI LETTER SHA
-0A59 ; [.208B.0020.0002][.0000.00BB.0002] # GURMUKHI LETTER KHHA
-0A5A ; [.208C.0020.0002][.0000.00BB.0002] # GURMUKHI LETTER GHHA
-0A5B ; [.2091.0020.0002][.0000.00BB.0002] # GURMUKHI LETTER ZA
-0A5E ; [.209F.0020.0002][.0000.00BB.0002] # GURMUKHI LETTER FA
-0A4D ; [.20A9.0020.0002] # GURMUKHI SIGN VIRAMA
-0A3E ; [.20AA.0020.0002] # GURMUKHI VOWEL SIGN AA
-0A3F ; [.20AB.0020.0002] # GURMUKHI VOWEL SIGN I
-0A40 ; [.20AC.0020.0002] # GURMUKHI VOWEL SIGN II
-0A41 ; [.20AD.0020.0002] # GURMUKHI VOWEL SIGN U
-0A42 ; [.20AE.0020.0002] # GURMUKHI VOWEL SIGN UU
-0A47 ; [.20AF.0020.0002] # GURMUKHI VOWEL SIGN EE
-0A48 ; [.20B0.0020.0002] # GURMUKHI VOWEL SIGN AI
-0A4B ; [.20B1.0020.0002] # GURMUKHI VOWEL SIGN OO
-0A4C ; [.20B2.0020.0002] # GURMUKHI VOWEL SIGN AU
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl
index 297acdc16f5..2b155f462bd 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl
@@ -1,51 +1,51 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0105 ; [.15EC.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
-0061 0328 ; [.15EC.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
-0104 ; [.15EC.0020.0008] # LATIN CAPITAL LETTER A WITH OGONEK
-0041 0328 ; [.15EC.0020.0008] # LATIN CAPITAL LETTER A WITH OGONEK
-0107 ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0063 0301 ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0063 0341 ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0106 ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0043 0301 ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0043 0341 ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0119 ; [.1649.0020.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1649.0020.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1649.0020.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1649.0020.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0142 ; [.170E.0020.0002] # LATIN SMALL LETTER L WITH STROKE
-006C 0335 ; [.170E.0020.0002] # LATIN SMALL LETTER L WITH STROKE
-0141 ; [.170E.0020.0008] # LATIN CAPITAL LETTER L WITH STROKE
-004C 0335 ; [.170E.0020.0008] # LATIN CAPITAL LETTER L WITH STROKE
-0144 ; [.174C.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.174C.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.174C.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.174C.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.174C.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.174C.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-00F3 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-015B ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
-0073 0301 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
-0073 0341 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
-015A ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
-0053 0301 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
-0053 0341 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
-017A ; [.1892.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
-007A 0301 ; [.1892.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
-007A 0341 ; [.1892.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
-0179 ; [.1892.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
-005A 0301 ; [.1892.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
-005A 0341 ; [.1892.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
-017C ; [.1893.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-007A 0307 ; [.1893.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-017B ; [.1893.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
-005A 0307 ; [.1893.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl
index bddd3f25bf0..9a59f36a0a1 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl
@@ -1,53 +1,53 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0103 ; [.15EC.0020.0002] # LATIN SMALL LETTER A WITH BREVE
-0061 0306 ; [.15EC.0020.0002] # LATIN SMALL LETTER A WITH BREVE
-0102 ; [.15EC.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
-0041 0306 ; [.15EC.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
-1EB1 ; [.15EC.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB0 ; [.15EC.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EAF ; [.15EC.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EAE ; [.15EC.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EB5 ; [.15EC.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB4 ; [.15EC.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB3 ; [.15EC.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB2 ; [.15EC.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-1EB7 ; [.15EC.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB6 ; [.15EC.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-00E2 ; [.15ED.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-0061 0302 ; [.15ED.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00C2 ; [.15ED.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-0041 0302 ; [.15ED.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-1EA7 ; [.15ED.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA6 ; [.15ED.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA5 ; [.15ED.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA4 ; [.15ED.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EAB ; [.15ED.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAA ; [.15ED.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EA9 ; [.15ED.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA8 ; [.15ED.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EAD ; [.15ED.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAC ; [.15ED.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-00EE ; [.16CA.0020.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
-0069 0302 ; [.16CA.0020.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
-00CE ; [.16CA.0020.0008] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-0049 0302 ; [.16CA.0020.0008] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-015F ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-0073 0327 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-0219 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
-0073 0326 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
-015E ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-0053 0327 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-0218 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH COMMA BELOW
-0053 0326 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH COMMA BELOW
-0163 ; [.1813.0020.0002] # LATIN SMALL LETTER T WITH CEDILLA
-0074 0327 ; [.1813.0020.0002] # LATIN SMALL LETTER T WITH CEDILLA
-021B ; [.1813.0020.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
-0074 0326 ; [.1813.0020.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
-0162 ; [.1813.0020.0008] # LATIN CAPITAL LETTER T WITH CEDILLA
-0054 0327 ; [.1813.0020.0008] # LATIN CAPITAL LETTER T WITH CEDILLA
-021A ; [.1813.0020.0008] # LATIN CAPITAL LETTER T WITH COMMA BELOW
-0054 0326 ; [.1813.0020.0008] # LATIN CAPITAL LETTER T WITH COMMA BELOW
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ru.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ru.pl
index 20160941ea4..645125ce0c6 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ru.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ru.pl
@@ -1,45 +1,45 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
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 v6.3.0
-04D1 ; [.198D.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.198D.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.198D.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.198D.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1999.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1999.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.19AD.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.19AD.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.19D5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.19D5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.19E1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.19E1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.19EE.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.19EE.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0457 ; [.1A12.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1A12.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-04E7 ; [.1A73.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1A73.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1A7B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1A7B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1A24.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1A24.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1AB5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1AB5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1AB5.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1AB5.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1AB5.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1AB5.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1B08.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1B08.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1B3B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1B3B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1B50.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1B50.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1B86.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1B86.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ 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/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl
index b9a9b9d2a6e..98bc0b174f2 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl
@@ -1,14 +1,14 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0902 ; [.1FD8.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
-0901 ; [.1FD8.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
-0903 ; [.1FD8.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
-0950 ; [.1FD8.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
-0933 ; [.2019.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
-0934 ; [.2019.0020.0002][.FFF1.0000.0000][.0000.00B6.0002] # DEVANAGARI LETTER LLLA
-0915 094D 0937 ; [.2019.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
-091C 094D 091E ; [.2019.0020.0002][.FFF3.0000.0000] # <DEVANAGARI LETTER JA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER NYA>
-0939 ; [.2019.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl
index e6e91281e0d..957b896673d 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl
@@ -1,150 +1,150 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
# eng, g-stroke, t-stroke don't require tailoring
- entry => <<'ENTRY', # for DUCET v6.3.0
-00E1 ; [.1600.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.1600.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.1600.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.1600.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.1600.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.1600.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-010D ; [.162A.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.162A.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.162A.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.162A.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0292 ; [.162B.0020.0002] # LATIN SMALL LETTER EZH
-01B7 ; [.162B.0020.0008] # LATIN CAPITAL LETTER EZH
-01EF ; [.162C.0020.0002] # LATIN SMALL LETTER EZH WITH CARON
-0292 030C ; [.162C.0020.0002] # LATIN SMALL LETTER EZH WITH CARON
-01EE ; [.162C.0020.0008] # LATIN CAPITAL LETTER EZH WITH CARON
-01B7 030C ; [.162C.0020.0008] # LATIN CAPITAL LETTER EZH WITH CARON
-0111 ; [.1647.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1647.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1647.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1647.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1647.0021.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1647.0021.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1647.0021.0008] # LATIN CAPITAL LETTER ETH
-01E7 ; [.1698.0020.0002] # LATIN SMALL LETTER G WITH CARON
-0067 030C ; [.1698.0020.0002] # LATIN SMALL LETTER G WITH CARON
-01E6 ; [.1698.0020.0008] # LATIN CAPITAL LETTER G WITH CARON
-0047 030C ; [.1698.0020.0008] # LATIN CAPITAL LETTER G WITH CARON
-01E9 ; [.170C.0020.0002] # LATIN SMALL LETTER K WITH CARON
-006B 030C ; [.170C.0020.0002] # LATIN SMALL LETTER K WITH CARON
-01E8 ; [.170C.0020.0008] # LATIN CAPITAL LETTER K WITH CARON
-004B 030C ; [.170C.0020.0008] # LATIN CAPITAL LETTER K WITH CARON
-0144 ; [.1769.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1769.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1769.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1769.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1769.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1769.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-00F1 ; [.1769.0022.0002] # LATIN SMALL LETTER N WITH TILDE
-006E 0303 ; [.1769.0022.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.1769.0022.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.1769.0022.0008] # LATIN CAPITAL LETTER N WITH TILDE
-0161 ; [.1811.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1811.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1811.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1811.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-00FE ; [.1817.0021.0002] # LATIN SMALL LETTER THORN
-00DE ; [.1817.0021.0008] # LATIN CAPITAL LETTER THORN
-00FC ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.187C.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.187C.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.187C.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.187C.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.187C.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.187C.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.187C.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.187C.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-017E ; [.18FE.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.18FE.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.18FE.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.18FE.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-00F8 ; [.18FF.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.18FF.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.18FF.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.18FF.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.18FF.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.18FF.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-0153 ; [.18FF.0021.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.18FF.0021.0008] # LATIN CAPITAL LIGATURE OE
-00E6 ; [.1900.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1900.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1900.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1900.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1900.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1900.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1900.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1900.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E5 ; [.1902.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1902.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1902.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1902.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1902.0020.0008] # ANGSTROM SIGN
-01FB ; [.1902.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1902.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0227 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
-0061 0307 ; [.1902.0021.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
-0226 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DOT ABOVE
-0041 0307 ; [.1902.0021.0008] # LATIN CAPITAL LETTER A WITH DOT ABOVE
-00E4 ; [.1903.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1903.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1903.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1903.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1903.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1903.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E3 ; [.1903.0021.0002] # LATIN SMALL LETTER A WITH TILDE
-0061 0303 ; [.1903.0021.0002] # LATIN SMALL LETTER A WITH TILDE
-00C3 ; [.1903.0021.0008] # LATIN CAPITAL LETTER A WITH TILDE
-0041 0303 ; [.1903.0021.0008] # LATIN CAPITAL LETTER A WITH TILDE
-00F6 ; [.1904.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1904.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1904.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1904.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1904.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1904.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1904.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1904.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1904.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1904.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-00F5 ; [.1904.0022.0002] # LATIN SMALL LETTER O WITH TILDE
-006F 0303 ; [.1904.0022.0002] # LATIN SMALL LETTER O WITH TILDE
-00D5 ; [.1904.0022.0008] # LATIN CAPITAL LETTER O WITH TILDE
-004F 0303 ; [.1904.0022.0008] # LATIN CAPITAL LETTER O WITH TILDE
-1E4D ; [.1904.0022.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4C ; [.1904.0022.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-022D ; [.1904.0022.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
-022C ; [.1904.0022.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-1E4F ; [.1904.0022.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E4E ; [.1904.0022.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-1EE1 ; [.1904.0022.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE0 ; [.1904.0022.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-00F4 ; [.1904.0023.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1904.0023.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1904.0023.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1904.0023.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1904.0023.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1904.0023.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1904.0023.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1904.0023.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1904.0023.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1904.0023.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1904.0023.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1904.0023.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1904.0023.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1904.0023.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-01EB ; [.1904.0024.0002] # LATIN SMALL LETTER O WITH OGONEK
-006F 0328 ; [.1904.0024.0002] # LATIN SMALL LETTER O WITH OGONEK
-01EA ; [.1904.0024.0008] # LATIN CAPITAL LETTER O WITH OGONEK
-004F 0328 ; [.1904.0024.0008] # LATIN CAPITAL LETTER O WITH OGONEK
+ 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
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl
index c31b5492cf9..5510c730b10 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl
@@ -1,10 +1,10 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0D82 ; [.2256.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
-0D83 ; [.2256.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
-0D96 ; [.2256.0020.0002][.FFF0.0000.0000] # SINHALA LETTER AUYANNA
-0DA5 ; [.2261.0020.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
-0DA4 ; [.2262.0020.0002] # SINHALA LETTER TAALUJA NAASIKYAYA
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl
index 36f82eb69da..7f2a1feb997 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0D82 ; [.2256.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
-0D83 ; [.2256.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
-0D96 ; [.2256.0020.0002][.FFF0.0000.0000] # SINHALA LETTER AUYANNA
-0DA5 ; [.225F.0020.0002][.2291.0020.0002][.2261.0021.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl
index 34186fd8277..ce7eaf098fa 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl
@@ -1,45 +1,45 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-00E4 ; [.15EC.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.15EC.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.15EC.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.15EC.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.15EC.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.15EC.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-010D ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0063 0068 ; [.16B1.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0063 0048 ; [.16B1.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
-0043 0068 ; [.16B1.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.16B1.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-00F4 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.176E.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.176E.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.176E.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.176E.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.176E.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.176E.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.176E.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.176E.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.176E.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.176E.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-0159 ; [.17BA.0020.0002] # LATIN SMALL LETTER R WITH CARON
-0072 030C ; [.17BA.0020.0002] # LATIN SMALL LETTER R WITH CARON
-0158 ; [.17BA.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
-0052 030C ; [.17BA.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
-0161 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1892.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1892.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1892.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1892.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl
index a6657bc3c10..6d5bd70253e 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl
@@ -1,17 +1,17 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-010D ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0161 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1892.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1892.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1892.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1892.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl
index 73a212a901b..deaf1036d89 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl
@@ -1,49 +1,49 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-00E7 ; [.162C.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
-0063 0327 ; [.162C.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
-00C7 ; [.162C.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-0043 0327 ; [.162C.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-0064 0068 ; [.1647.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER H>
-0064 0048 ; [.1647.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER H>
-0044 0068 ; [.1647.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER H>
-0044 0048 ; [.1647.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER H>
-00EB ; [.167F.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-0065 0308 ; [.167F.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-00CB ; [.167F.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
-0045 0308 ; [.167F.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
-0067 006A ; [.16AF.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER J>
-0067 004A ; [.16AF.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER J>
-0047 006A ; [.16AF.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER J>
-0047 004A ; [.16AF.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER J>
-006C 006C ; [.173C.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
-006C 004C ; [.173C.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L>
-004C 006C ; [.173C.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
-004C 004C ; [.173C.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
-006E 006A ; [.176C.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER J>
-006E 004A ; [.176C.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER J>
-004E 006A ; [.176C.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER J>
-004E 004A ; [.176C.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J>
-0072 0072 ; [.17EE.0020.0002] # <LATIN SMALL LETTER R, LATIN SMALL LETTER R>
-0072 0052 ; [.17EE.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER R, LATIN CAPITAL LETTER R>
-0052 0072 ; [.17EE.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER R, LATIN SMALL LETTER R>
-0052 0052 ; [.17EE.0020.0008] # <LATIN CAPITAL LETTER R, LATIN CAPITAL LETTER R>
-0073 0068 ; [.1811.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
-0073 0048 ; [.1811.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER H>
-0053 0068 ; [.1811.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
-0053 0048 ; [.1811.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
-0074 0068 ; [.1831.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER H>
-0074 0048 ; [.1831.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER H>
-0054 0068 ; [.1831.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER H>
-0054 0048 ; [.1831.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER H>
-0078 0068 ; [.187B.0020.0002] # <LATIN SMALL LETTER X, LATIN SMALL LETTER H>
-0078 0048 ; [.187B.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER X, LATIN CAPITAL LETTER H>
-0058 0068 ; [.187B.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER X, LATIN SMALL LETTER H>
-0058 0048 ; [.187B.0020.0008] # <LATIN CAPITAL LETTER X, LATIN CAPITAL LETTER H>
-007A 0068 ; [.18AD.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER H>
-007A 0048 ; [.18AD.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER H>
-005A 0068 ; [.18AD.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER H>
-005A 0048 ; [.18AD.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER H>
+ locale_version => 1.12,
+ 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>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl
index 325531de202..90d5c73b2bc 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl
@@ -1,49 +1,49 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
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 v6.3.0
-04D1 ; [.198D.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.198D.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.198D.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.198D.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1999.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1999.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.19AD.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.19AD.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.19D5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.19D5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.19E1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.19E1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.19EE.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.19EE.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04E5 ; [.1A06.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E4 ; [.1A06.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-0457 ; [.1A12.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1A12.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-0439 ; [.1A06.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT I
-0419 ; [.1A06.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT I
-04E7 ; [.1A73.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1A73.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1A7B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1A7B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1A24.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1A24.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1AB5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1AB5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1AB5.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1AB5.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1AB5.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1AB5.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1B08.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1B08.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1B3B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1B3B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1B50.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1B50.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1B86.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1B86.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl
index a0cd151bd72..7e26b336484 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl
@@ -1,89 +1,89 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0111 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.162D.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.162D.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.162D.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1812.0020.0003][.16B0.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1812.0020.0009][.16B0.0020.0009] # LATIN CAPITAL LETTER THORN
-0077 ; [.185B.0021.0002] # LATIN SMALL LETTER W
-0057 ; [.185B.0021.0008] # LATIN CAPITAL LETTER W
-00FC ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.187C.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.187C.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.187C.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.187C.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.187C.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.187C.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.187C.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.187C.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E5 ; [.1902.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1902.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1902.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1902.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1902.0020.0008] # ANGSTROM SIGN
-01FB ; [.1902.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1902.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.1903.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1903.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1903.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1903.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1903.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1903.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E6 ; [.1903.0021.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1903.0021.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1903.0021.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1903.0021.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1903.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1903.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1903.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1903.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-0119 ; [.1903.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1903.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1903.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1903.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F6 ; [.1904.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1904.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1904.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1904.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1904.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1904.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1904.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1904.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1904.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1904.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1904.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1904.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-0151 ; [.1904.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1904.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1904.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1904.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1904.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1904.0023.0008] # LATIN CAPITAL LIGATURE OE
-00F4 ; [.1904.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1904.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1904.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1904.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1904.0024.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1904.0024.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1904.0024.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1904.0024.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1904.0024.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1904.0024.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1904.0024.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1904.0024.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1904.0024.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1904.0024.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl
index 0dd8eb007b2..9d850b71936 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl
@@ -1,87 +1,87 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0111 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.162D.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.162D.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.162D.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.162D.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.162D.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1812.0020.0003][.16B0.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1812.0020.0009][.16B0.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.187C.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.187C.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.187C.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.187C.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.187C.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.187C.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.187C.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.187C.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.187C.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.187C.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.187C.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.187C.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E5 ; [.1902.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1902.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1902.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1902.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1902.0020.0008] # ANGSTROM SIGN
-01FB ; [.1902.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1902.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.1903.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1903.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1903.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1903.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1903.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1903.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E6 ; [.1903.0021.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1903.0021.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1903.0021.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1903.0021.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1903.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1903.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1903.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1903.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-0119 ; [.1903.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1903.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1903.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1903.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F6 ; [.1904.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1904.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1904.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1904.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1904.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1904.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1904.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1904.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1904.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1904.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1904.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1904.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-0151 ; [.1904.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1904.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1904.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1904.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1904.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1904.0023.0008] # LATIN CAPITAL LIGATURE OE
-00F4 ; [.1904.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1904.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1904.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1904.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1904.0024.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1904.0024.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1904.0024.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1904.0024.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1904.0024.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1904.0024.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1904.0024.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1904.0024.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1904.0024.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1904.0024.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl
index 3ada7ca4a5f..70097121e7e 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl
@@ -1,55 +1,55 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0B82 ; [.2147.0020.0002][.FFF0.0000.0000] # TAMIL SIGN ANUSVARA
-0B83 ; [.2147.0020.0002][.FFF1.0000.0000] # TAMIL SIGN VISARGA
-0B95 0BCD 0BB7 0BCD ; [.215E.0020.0002][.FFF2.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA, TAMIL LETTER SSA, TAMIL SIGN VIRAMA>
-0B95 0BCD 0BB7 ; [.215E.0020.0002][.FFF3.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA, TAMIL LETTER SSA>
-0B95 0BCD ; [.2148.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA>
-0B95 ; [.2148.0020.0002][.FFF1.0000.0000] # TAMIL LETTER KA
-0B99 0BCD ; [.2149.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NGA, TAMIL SIGN VIRAMA>
-0B99 ; [.2149.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NGA
-0B9A 0BCD ; [.214A.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER CA, TAMIL SIGN VIRAMA>
-0B9A ; [.214A.0020.0002][.FFF1.0000.0000] # TAMIL LETTER CA
-0B9E 0BCD ; [.214B.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NYA, TAMIL SIGN VIRAMA>
-0B9E ; [.214B.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NYA
-0B9F 0BCD ; [.214C.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER TTA, TAMIL SIGN VIRAMA>
-0B9F ; [.214C.0020.0002][.FFF1.0000.0000] # TAMIL LETTER TTA
-0BA3 0BCD ; [.214D.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NNA, TAMIL SIGN VIRAMA>
-0BA3 ; [.214D.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NNA
-0BA4 0BCD ; [.214E.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER TA, TAMIL SIGN VIRAMA>
-0BA4 ; [.214E.0020.0002][.FFF1.0000.0000] # TAMIL LETTER TA
-0BA8 0BCD ; [.214F.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NA, TAMIL SIGN VIRAMA>
-0BA8 ; [.214F.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NA
-0BAA 0BCD ; [.2150.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER PA, TAMIL SIGN VIRAMA>
-0BAA ; [.2150.0020.0002][.FFF1.0000.0000] # TAMIL LETTER PA
-0BAE 0BCD ; [.2151.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER MA, TAMIL SIGN VIRAMA>
-0BAE ; [.2151.0020.0002][.FFF1.0000.0000] # TAMIL LETTER MA
-0BAF 0BCD ; [.2152.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER YA, TAMIL SIGN VIRAMA>
-0BAF ; [.2152.0020.0002][.FFF1.0000.0000] # TAMIL LETTER YA
-0BB0 0BCD ; [.2153.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER RA, TAMIL SIGN VIRAMA>
-0BB0 ; [.2153.0020.0002][.FFF1.0000.0000] # TAMIL LETTER RA
-0BB2 0BCD ; [.2154.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LA, TAMIL SIGN VIRAMA>
-0BB2 ; [.2154.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LA
-0BB5 0BCD ; [.2155.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER VA, TAMIL SIGN VIRAMA>
-0BB5 ; [.2155.0020.0002][.FFF1.0000.0000] # TAMIL LETTER VA
-0BB4 0BCD ; [.2156.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LLLA, TAMIL SIGN VIRAMA>
-0BB4 ; [.2156.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LLLA
-0BB3 0BCD ; [.2157.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LLA, TAMIL SIGN VIRAMA>
-0BB3 ; [.2157.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LLA
-0BB1 0BCD ; [.2158.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER RRA, TAMIL SIGN VIRAMA>
-0BB1 ; [.2158.0020.0002][.FFF1.0000.0000] # TAMIL LETTER RRA
-0BA9 0BCD ; [.2159.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NNNA, TAMIL SIGN VIRAMA>
-0BA9 ; [.2159.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NNNA
-0B9C 0BCD ; [.215A.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER JA, TAMIL SIGN VIRAMA>
-0B9C ; [.215A.0020.0002][.FFF1.0000.0000] # TAMIL LETTER JA
-0BB6 0BCD ; [.215B.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SHA, TAMIL SIGN VIRAMA>
-0BB6 ; [.215B.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SHA
-0BB7 0BCD ; [.215C.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SSA, TAMIL SIGN VIRAMA>
-0BB7 ; [.215C.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SSA
-0BB8 0BCD ; [.215D.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SA, TAMIL SIGN VIRAMA>
-0BB8 ; [.215D.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SA
-0BB9 0BCD ; [.215E.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER HA, TAMIL SIGN VIRAMA>
-0BB9 ; [.215E.0020.0002][.FFF1.0000.0000] # TAMIL LETTER HA
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl
index fc8ea205721..22aaffad298 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0C01 ; [.217B.0020.0002][.FFF1.0000.0000] # TELUGU SIGN CANDRABINDU
-0C02 ; [.217B.0020.0002][.FFF2.0000.0000] # TELUGU SIGN ANUSVARA
-0C03 ; [.217B.0020.0002][.FFF3.0000.0000] # TELUGU SIGN VISARGA
-0C14 ; [.217B.0020.0002][.FFF0.0000.0000] # TELUGU LETTER AU
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl
index 6b0230ce4e0..1924027a6be 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl
@@ -1,23 +1,23 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
variable => 'shifted',
alternate => 'shifted',
- entry => <<'ENTRY', # for DUCET v6.3.0
-0E2F ; [*03C1.0020.0002][*FFF0.0000.0000] # THAI CHARACTER PAIYANNOI
-0E5A ; [*03C1.0020.0002][*FFF1.0000.0000] # THAI CHARACTER ANGKHANKHU
-0E46 ; [*03C2.0020.0002][*FFF1.0000.0000] # THAI CHARACTER MAIYAMOK
-0E5B ; [*03C2.0020.0002][*FFF0.0000.0000] # THAI CHARACTER KHOMUT
-0E4C ; [.0000.00C4.0002] # THAI CHARACTER THANTHAKHAT
-0E47 ; [.0000.00C5.0002] # THAI CHARACTER MAITAIKHU
-0E48 ; [.0000.00C6.0002] # THAI CHARACTER MAI EK
-0E49 ; [.0000.00C7.0002] # THAI CHARACTER MAI THO
-0E4A ; [.0000.00C8.0002] # THAI CHARACTER MAI TRI
-0E4B ; [.0000.00C9.0002] # THAI CHARACTER MAI CHATTAWA
-0E4D ; [.24B2.0020.0002] # THAI CHARACTER NIKHAHIT
-0E45 ; [.24B5.0020.0003] # THAI CHARACTER LAKKHANGYAO
-0E4D 0E32 ; [.24B5.0020.0002][.24B2.0020.0003] # THAI CHARACTER SARA AM
-0E33 ; [.24B5.0020.0002][.24B2.0020.0004] # THAI CHARACTER SARA AM
-0E45 0E4D ; [.24B2.0020.0002][.24B5.0020.0004] # <THAI CHARACTER LAKKHANGYAO, THAI CHARACTER NIKHAHIT>
-0E3A ; [.24C3.0020.0002] # THAI CHARACTER PHINTHU
+ 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
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl
index 2cd7e54b78e..0a43662ca58 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl
@@ -1,37 +1,37 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-00EA ; [.1649.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.1649.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.1649.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.1649.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC1 ; [.1649.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.1649.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EBF ; [.1649.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.1649.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC5 ; [.1649.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.1649.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.1649.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.1649.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.1649.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.1649.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-00F4 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.176E.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.176E.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.176E.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.176E.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.176E.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.176E.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.176E.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.176E.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.176E.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.176E.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-0161 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl
index 0e50e4234ea..0125da2dd0e 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl
@@ -1,62 +1,62 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-006E 0067 ; [.174C.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
-004E 0067 ; [.174C.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
-004E 0047 ; [.174C.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
-014B ; [.174C.0020.001C] # LATIN SMALL LETTER ENG
-014A ; [.174C.0020.001D] # LATIN CAPITAL LETTER ENG
-02BB ; [.1892.0020.0002] # MODIFIER LETTER TURNED COMMA
-02BD ; [.1892.0020.0003] # MODIFIER LETTER REVERSED COMMA
-00E1 ; [.15EB.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.15EB.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.15EB.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.15EB.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.15EB.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.15EB.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0101 ; [.15EB.0022.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.15EB.0022.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.15EB.0022.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.15EB.0022.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E9 ; [.1648.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.1648.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.1648.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.1648.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.1648.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.1648.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0113 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00ED ; [.16C9.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.16C9.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.16C9.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.16C9.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.16C9.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.16C9.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-012B ; [.16C9.0022.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.16C9.0022.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.16C9.0022.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.16C9.0022.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00F3 ; [.176D.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.176D.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.176D.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.176D.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.176D.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.176D.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-014D ; [.176D.0022.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.176D.0022.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.176D.0022.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.176D.0022.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00FA ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-016B ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl
index d33496c8994..beaba4f703f 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl
@@ -1,46 +1,46 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-00E7 ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
-0063 0327 ; [.161A.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
-00C7 ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-0043 0327 ; [.161A.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-011F ; [.168E.0020.0002] # LATIN SMALL LETTER G WITH BREVE
-0067 0306 ; [.168E.0020.0002] # LATIN SMALL LETTER G WITH BREVE
-011E ; [.168E.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
-0047 0306 ; [.168E.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
-0131 ; [.16C8.0020.0002] # LATIN SMALL LETTER DOTLESS I
-0049 ; [.16C8.0020.0008] # LATIN CAPITAL LETTER I
-00CC ; [.16C8.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
-00CD ; [.16C8.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
-00CE ; [.16C8.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-00CF ; [.16C8.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
-012A ; [.16C8.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
-012C ; [.16C8.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
-012E ; [.16C8.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
-0130 ; [.16C9.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-0049 0307 ; [.16C9.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-00F6 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.176E.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.176E.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-015F ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-0073 0327 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-015E ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-0053 0327 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-00FC ; [.1833.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1833.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1833.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1833.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1833.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1833.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1833.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1833.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1833.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1833.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1833.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1833.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl
index 15a21968f77..73c1090b5fa 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl
@@ -1,45 +1,45 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
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 v6.3.0
-0491 ; [.19AE.0020.0002] # CYRILLIC SMALL LETTER GHE WITH UPTURN
-0490 ; [.19AE.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-04D1 ; [.198D.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.198D.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.198D.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.198D.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1999.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1999.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.19AD.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.19AD.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.19D5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.19D5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.19E1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.19E1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.19EE.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.19EE.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04E7 ; [.1A73.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1A73.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1A7B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1A7B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1A24.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1A24.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1AB5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1AB5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1AB5.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1AB5.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1AB5.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1AB5.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1B08.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1B08.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1B3B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1B3B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1B50.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1B50.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1B86.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1B86.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl
index b981ac0ede3..53de5d425d7 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl
@@ -1,76 +1,76 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0623 ; [.1C98.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0627 0654 ; [.1C98.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0622 ; [.1C99.0020.0002][.FFC0.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
-0627 0653 ; [.1C99.0020.0002][.FFC0.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
-0628 ; [.1C99.0020.0002][.FFC1.0000.0000] # ARABIC LETTER BEH
-0628 06BE ; [.1C99.0020.0002][.FFC2.0000.0000] # <ARABIC LETTER BEH, ARABIC LETTER HEH DOACHASHMEE>
-067E ; [.1C99.0020.0002][.FFC3.0000.0000] # ARABIC LETTER PEH
-067E 06BE ; [.1C99.0020.0002][.FFC4.0000.0000] # <ARABIC LETTER PEH, ARABIC LETTER HEH DOACHASHMEE>
-062A ; [.1C99.0020.0002][.FFC5.0000.0000] # ARABIC LETTER TEH
-062A 06BE ; [.1C99.0020.0002][.FFC6.0000.0000] # <ARABIC LETTER TEH, ARABIC LETTER HEH DOACHASHMEE>
-0679 ; [.1C99.0020.0002][.FFC7.0000.0000] # ARABIC LETTER TTEH
-0679 06BE ; [.1C99.0020.0002][.FFC8.0000.0000] # <ARABIC LETTER TTEH, ARABIC LETTER HEH DOACHASHMEE>
-062B ; [.1C99.0020.0002][.FFC9.0000.0000] # ARABIC LETTER THEH
-062C ; [.1C99.0020.0002][.FFCA.0000.0000] # ARABIC LETTER JEEM
-062C 06BE ; [.1C99.0020.0002][.FFCB.0000.0000] # <ARABIC LETTER JEEM, ARABIC LETTER HEH DOACHASHMEE>
-0686 ; [.1C99.0020.0002][.FFCC.0000.0000] # ARABIC LETTER TCHEH
-0686 06BE ; [.1C99.0020.0002][.FFCD.0000.0000] # <ARABIC LETTER TCHEH, ARABIC LETTER HEH DOACHASHMEE>
-062D ; [.1C99.0020.0002][.FFCE.0000.0000] # ARABIC LETTER HAH
-062E ; [.1C99.0020.0002][.FFCF.0000.0000] # ARABIC LETTER KHAH
-062F ; [.1C99.0020.0002][.FFD0.0000.0000] # ARABIC LETTER DAL
-062F 06BE ; [.1C99.0020.0002][.FFD1.0000.0000] # <ARABIC LETTER DAL, ARABIC LETTER HEH DOACHASHMEE>
-0688 ; [.1C99.0020.0002][.FFD2.0000.0000] # ARABIC LETTER DDAL
-0688 06BE ; [.1C99.0020.0002][.FFD3.0000.0000] # <ARABIC LETTER DDAL, ARABIC LETTER HEH DOACHASHMEE>
-0630 ; [.1C99.0020.0002][.FFD4.0000.0000] # ARABIC LETTER THAL
-0631 ; [.1C99.0020.0002][.FFD5.0000.0000] # ARABIC LETTER REH
-0631 06BE ; [.1C99.0020.0002][.FFD6.0000.0000] # <ARABIC LETTER REH, ARABIC LETTER HEH DOACHASHMEE>
-0691 ; [.1C99.0020.0002][.FFD7.0000.0000] # ARABIC LETTER RREH
-0691 06BE ; [.1C99.0020.0002][.FFD8.0000.0000] # <ARABIC LETTER RREH, ARABIC LETTER HEH DOACHASHMEE>
-0632 ; [.1C99.0020.0002][.FFD9.0000.0000] # ARABIC LETTER ZAIN
-0698 ; [.1C99.0020.0002][.FFDA.0000.0000] # ARABIC LETTER JEH
-0633 ; [.1C99.0020.0002][.FFDB.0000.0000] # ARABIC LETTER SEEN
-0634 ; [.1C99.0020.0002][.FFDC.0000.0000] # ARABIC LETTER SHEEN
-0635 ; [.1C99.0020.0002][.FFDD.0000.0000] # ARABIC LETTER SAD
-0636 ; [.1C99.0020.0002][.FFDE.0000.0000] # ARABIC LETTER DAD
-0637 ; [.1C99.0020.0002][.FFDF.0000.0000] # ARABIC LETTER TAH
-0638 ; [.1C99.0020.0002][.FFE0.0000.0000] # ARABIC LETTER ZAH
-0639 ; [.1C99.0020.0002][.FFE1.0000.0000] # ARABIC LETTER AIN
-063A ; [.1C99.0020.0002][.FFE2.0000.0000] # ARABIC LETTER GHAIN
-0641 ; [.1C99.0020.0002][.FFE3.0000.0000] # ARABIC LETTER FEH
-0642 ; [.1C99.0020.0002][.FFE4.0000.0000] # ARABIC LETTER QAF
-06A9 ; [.1C99.0020.0002][.FFE5.0000.0000] # ARABIC LETTER KEHEH
-06A9 06BE ; [.1C99.0020.0002][.FFE6.0000.0000] # <ARABIC LETTER KEHEH, ARABIC LETTER HEH DOACHASHMEE>
-06AF ; [.1C99.0020.0002][.FFE7.0000.0000] # ARABIC LETTER GAF
-06AF 06BE ; [.1C99.0020.0002][.FFE8.0000.0000] # <ARABIC LETTER GAF, ARABIC LETTER HEH DOACHASHMEE>
-0644 ; [.1C99.0020.0002][.FFE9.0000.0000] # ARABIC LETTER LAM
-0644 06BE ; [.1C99.0020.0002][.FFEA.0000.0000] # <ARABIC LETTER LAM, ARABIC LETTER HEH DOACHASHMEE>
-0645 ; [.1C99.0020.0002][.FFEB.0000.0000] # ARABIC LETTER MEEM
-0645 06BE ; [.1C99.0020.0002][.FFEC.0000.0000] # <ARABIC LETTER MEEM, ARABIC LETTER HEH DOACHASHMEE>
-0646 ; [.1C99.0020.0002][.FFED.0000.0000] # ARABIC LETTER NOON
-0646 06BE ; [.1C99.0020.0002][.FFEE.0000.0000] # <ARABIC LETTER NOON, ARABIC LETTER HEH DOACHASHMEE>
-06BA ; [.1C99.0020.0002][.FFEF.0000.0000] # ARABIC LETTER NOON GHUNNA
-06BA 06BE ; [.1C99.0020.0002][.FFF0.0000.0000] # <ARABIC LETTER NOON GHUNNA, ARABIC LETTER HEH DOACHASHMEE>
-0648 ; [.1C99.0020.0002][.FFF1.0000.0000] # ARABIC LETTER WAW
-0624 ; [.1C99.0021.0002][.FFF1.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
-0648 0654 ; [.1C99.0021.0002][.FFF1.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
-0648 06BE ; [.1C99.0020.0002][.FFF2.0000.0000] # <ARABIC LETTER WAW, ARABIC LETTER HEH DOACHASHMEE>
-06C1 ; [.1C99.0020.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL
-06C2 ; [.1C99.0021.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06C1 0654 ; [.1C99.0021.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06BE ; [.1C99.0020.0002][.FFF4.0000.0000] # ARABIC LETTER HEH DOACHASHMEE
-06C3 ; [.1C99.0020.0002][.FFF5.0000.0000] # ARABIC LETTER TEH MARBUTA GOAL
-0621 ; [.1C99.0020.0002][.FFF6.0000.0000] # ARABIC LETTER HAMZA
-06CC ; [.1C99.0020.0002][.FFF7.0000.0000] # ARABIC LETTER FARSI YEH
-0626 ; [.1C99.0021.0002][.FFF7.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
-064A 0654 ; [.1C99.0021.0002][.FFF7.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
-06CC 06BE ; [.1C99.0020.0002][.FFF8.0000.0000] # <ARABIC LETTER FARSI YEH, ARABIC LETTER HEH DOACHASHMEE>
-06D2 ; [.1C99.0020.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE
-06D3 ; [.1C99.0021.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-06D2 0654 ; [.1C99.0021.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-066E ; [.1C99.0020.0002][.FFFA.0000.0000] # ARABIC LETTER DOTLESS BEH
+ locale_version => 1.12,
+ 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
0652 ; [.0000.0074.0002] # ARABIC SUKUN
064E ; [.0000.0075.0002] # ARABIC FATHA
0650 ; [.0000.0076.0002] # ARABIC KASRA
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl
index b0aabcaac4f..c03a83956d4 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl
@@ -1,220 +1,220 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
# 0306 is not a Vietnamese tone, just to avoid \x{306} eq. to something.
- entry => <<'ENTRY', # for DUCET v6.3.0
+ entry => <<'ENTRY', # for DUCET v7.0.0
0309 ; [.0000.0026.0002][.0000.00F0.0000] # COMBINING HOOK ABOVE
-1EA3 ; [.15EB.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH HOOK ABOVE
-1EA2 ; [.15EB.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH HOOK ABOVE
-1EBB ; [.1648.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER E WITH HOOK ABOVE
-1EBA ; [.1648.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER E WITH HOOK ABOVE
-1EC9 ; [.16C9.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER I WITH HOOK ABOVE
-1EC8 ; [.16C9.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER I WITH HOOK ABOVE
-1ECF ; [.176D.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH HOOK ABOVE
-1ECE ; [.176D.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH HOOK ABOVE
-1EE7 ; [.1832.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER U WITH HOOK ABOVE
-1EE6 ; [.1832.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER U WITH HOOK ABOVE
-1EF7 ; [.187C.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER Y WITH HOOK ABOVE
-1EF6 ; [.187C.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER Y WITH 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
0303 ; [.0000.0026.0002][.0000.00F1.0000] # COMBINING TILDE
-00E3 ; [.15EB.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH TILDE
-00C3 ; [.15EB.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH TILDE
-1EBD ; [.1648.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER E WITH TILDE
-1EBC ; [.1648.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER E WITH TILDE
-0129 ; [.16C9.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER I WITH TILDE
-0128 ; [.16C9.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER I WITH TILDE
-00F5 ; [.176D.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH TILDE
-00D5 ; [.176D.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH TILDE
-0169 ; [.1832.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER U WITH TILDE
-0168 ; [.1832.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER U WITH TILDE
-1EF9 ; [.187C.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER Y WITH TILDE
-1EF8 ; [.187C.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER Y WITH 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
0301 ; [.0000.0026.0002][.0000.00F2.0000] # COMBINING ACUTE ACCENT
-00E1 ; [.15EB.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.15EB.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH ACUTE
-00E9 ; [.1648.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.1648.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER E WITH ACUTE
-00ED ; [.16C9.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.16C9.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER I WITH ACUTE
-00F3 ; [.176D.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.176D.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH ACUTE
-00FA ; [.1832.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1832.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER U WITH ACUTE
-00FD ; [.187C.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER Y WITH ACUTE
-00DD ; [.187C.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER Y WITH ACUTE
+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
0341 ; [.0000.0026.0002][.0000.00F2.0000] # COMBINING ACUTE TONE MARK
0323 ; [.0000.0026.0002][.0000.00F3.0000] # COMBINING DOT BELOW
-1EA1 ; [.15EB.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH DOT BELOW
-1EA0 ; [.15EB.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH DOT BELOW
-1EB9 ; [.1648.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER E WITH DOT BELOW
-1EB8 ; [.1648.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER E WITH DOT BELOW
-1ECB ; [.16C9.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER I WITH DOT BELOW
-1ECA ; [.16C9.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER I WITH DOT BELOW
-1ECD ; [.176D.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH DOT BELOW
-1ECC ; [.176D.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH DOT BELOW
-1EE5 ; [.1832.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER U WITH DOT BELOW
-1EE4 ; [.1832.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER U WITH DOT BELOW
-1EF5 ; [.187C.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER Y WITH DOT BELOW
-1EF4 ; [.187C.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER Y WITH 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
0306 ; [.0000.0026.0002][.0000.00F4.0000] # COMBINING BREVE
-0115 ; [.1648.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER E WITH BREVE
-0114 ; [.1648.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER E WITH BREVE
-012D ; [.16C9.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER I WITH BREVE
-012C ; [.16C9.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER I WITH BREVE
-014F ; [.176D.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER O WITH BREVE
-014E ; [.176D.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER O WITH BREVE
-016D ; [.1832.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER U WITH BREVE
-016C ; [.1832.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER U WITH BREVE
-0103 ; [.15EC.0020.0002] # LATIN SMALL LETTER A WITH BREVE
-0061 0306 ; [.15EC.0020.0002] # LATIN SMALL LETTER A WITH BREVE
-0102 ; [.15EC.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
-0041 0306 ; [.15EC.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
-1EB1 ; [.15EC.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB0 ; [.15EC.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EAF ; [.15EC.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EAE ; [.15EC.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EB5 ; [.15EC.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB4 ; [.15EC.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB3 ; [.15EC.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB2 ; [.15EC.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-1EB7 ; [.15EC.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB6 ; [.15EC.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-00E2 ; [.15ED.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-0061 0302 ; [.15ED.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00C2 ; [.15ED.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-0041 0302 ; [.15ED.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-1EA7 ; [.15ED.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA6 ; [.15ED.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA5 ; [.15ED.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA4 ; [.15ED.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EAB ; [.15ED.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAA ; [.15ED.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EA9 ; [.15ED.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA8 ; [.15ED.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EAD ; [.15ED.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAC ; [.15ED.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-0111 ; [.162E.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.162E.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.162E.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.162E.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00EA ; [.1649.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.1649.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.1649.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.1649.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC1 ; [.1649.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.1649.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EBF ; [.1649.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.1649.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC5 ; [.1649.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.1649.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.1649.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.1649.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.1649.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.1649.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-00F4 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.176E.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.176E.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.176E.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.176E.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.176E.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.176E.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.176E.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.176E.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.176E.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.176E.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-01A1 ; [.176F.0020.0002] # LATIN SMALL LETTER O WITH HORN
-006F 031B ; [.176F.0020.0002] # LATIN SMALL LETTER O WITH HORN
-01A0 ; [.176F.0020.0008] # LATIN CAPITAL LETTER O WITH HORN
-004F 031B ; [.176F.0020.0008] # LATIN CAPITAL LETTER O WITH HORN
-1EDD ; [.176F.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH HORN AND GRAVE
-1EDC ; [.176F.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-1EDB ; [.176F.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH HORN AND ACUTE
-1EDA ; [.176F.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-1EE1 ; [.176F.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE0 ; [.176F.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-1EDF ; [.176F.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-1EDE ; [.176F.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-1EE3 ; [.176F.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE2 ; [.176F.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-01B0 ; [.1833.0020.0002] # LATIN SMALL LETTER U WITH HORN
-0075 031B ; [.1833.0020.0002] # LATIN SMALL LETTER U WITH HORN
-01AF ; [.1833.0020.0008] # LATIN CAPITAL LETTER U WITH HORN
-0055 031B ; [.1833.0020.0008] # LATIN CAPITAL LETTER U WITH HORN
-1EEB ; [.1833.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH HORN AND GRAVE
-1EEA ; [.1833.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-1EE9 ; [.1833.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER U WITH HORN AND ACUTE
-1EE8 ; [.1833.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-1EEF ; [.1833.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER U WITH HORN AND TILDE
-1EEE ; [.1833.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER U WITH HORN AND TILDE
-1EED ; [.1833.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-1EEC ; [.1833.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-1EF1 ; [.1833.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF0 ; [.1833.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-1EA1 0306 ; [.15EC.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A WITH DOT BELOW, COMBINING BREVE>
-1EA0 0306 ; [.15EC.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A WITH DOT BELOW, COMBINING BREVE>
-1EA1 0302 ; [.15ED.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1EA0 0302 ; [.15ED.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1EB9 0302 ; [.1649.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER E WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1EB8 0302 ; [.1649.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER E WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1ECD 0302 ; [.176E.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1ECC 0302 ; [.176E.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-00F2 031B ; [.176F.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O WITH GRAVE, COMBINING HORN>
-1ECF 031B ; [.176F.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER O WITH HOOK ABOVE, COMBINING HORN>
-00F5 031B ; [.176F.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER O WITH TILDE, COMBINING HORN>
-00F3 031B ; [.176F.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O WITH ACUTE, COMBINING HORN>
-1ECD 031B ; [.176F.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O WITH DOT BELOW, COMBINING HORN>
-00D2 031B ; [.176F.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O WITH GRAVE, COMBINING HORN>
-1ECE 031B ; [.176F.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER O WITH HOOK ABOVE, COMBINING HORN>
-00D5 031B ; [.176F.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER O WITH TILDE, COMBINING HORN>
-00D3 031B ; [.176F.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O WITH ACUTE, COMBINING HORN>
-1ECC 031B ; [.176F.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O WITH DOT BELOW, COMBINING HORN>
-00F9 031B ; [.1833.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U WITH GRAVE, COMBINING HORN>
-1EE7 031B ; [.1833.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER U WITH HOOK ABOVE, COMBINING HORN>
-0169 031B ; [.1833.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER U WITH TILDE, COMBINING HORN>
-00FA 031B ; [.1833.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U WITH ACUTE, COMBINING HORN>
-1EE5 031B ; [.1833.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER U WITH DOT BELOW, COMBINING HORN>
-00D9 031B ; [.1833.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U WITH GRAVE, COMBINING HORN>
-1EE6 031B ; [.1833.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER U WITH HOOK ABOVE, COMBINING HORN>
-0168 031B ; [.1833.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER U WITH TILDE, COMBINING HORN>
-00DA 031B ; [.1833.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U WITH ACUTE, COMBINING HORN>
-1EE4 031B ; [.1833.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER U WITH DOT BELOW, COMBINING HORN>
-0061 0323 0306 ; [.15EC.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A, COMBINING DOT BELOW, COMBINING BREVE>
-0041 0323 0306 ; [.15EC.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A, COMBINING DOT BELOW, COMBINING BREVE>
-0061 0323 0302 ; [.15ED.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-0041 0323 0302 ; [.15ED.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-0065 0323 0302 ; [.1649.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER E, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-0045 0323 0302 ; [.1649.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER E, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-006F 0323 0302 ; [.176E.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-004F 0323 0302 ; [.176E.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-006F 0300 031B ; [.176F.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O, COMBINING GRAVE ACCENT, COMBINING HORN>
-006F 0340 031B ; [.176F.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O, COMBINING GRAVE TONE MARK, COMBINING HORN>
-006F 0309 031B ; [.176F.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER O, COMBINING HOOK ABOVE, COMBINING HORN>
-006F 0303 031B ; [.176F.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER O, COMBINING TILDE, COMBINING HORN>
-006F 0301 031B ; [.176F.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O, COMBINING ACUTE ACCENT, COMBINING HORN>
-006F 0341 031B ; [.176F.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O, COMBINING ACUTE TONE MARK, COMBINING HORN>
-006F 0323 031B ; [.176F.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O, COMBINING DOT BELOW, COMBINING HORN>
-004F 0300 031B ; [.176F.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O, COMBINING GRAVE ACCENT, COMBINING HORN>
-004F 0340 031B ; [.176F.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O, COMBINING GRAVE TONE MARK, COMBINING HORN>
-004F 0309 031B ; [.176F.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER O, COMBINING HOOK ABOVE, COMBINING HORN>
-004F 0303 031B ; [.176F.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER O, COMBINING TILDE, COMBINING HORN>
-004F 0301 031B ; [.176F.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O, COMBINING ACUTE ACCENT, COMBINING HORN>
-004F 0341 031B ; [.176F.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O, COMBINING ACUTE TONE MARK, COMBINING HORN>
-004F 0323 031B ; [.176F.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O, COMBINING DOT BELOW, COMBINING HORN>
-0075 0300 031B ; [.1833.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U, COMBINING GRAVE ACCENT, COMBINING HORN>
-0075 0340 031B ; [.1833.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U, COMBINING GRAVE TONE MARK, COMBINING HORN>
-0075 0309 031B ; [.1833.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER U, COMBINING HOOK ABOVE, COMBINING HORN>
-0075 0303 031B ; [.1833.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER U, COMBINING TILDE, COMBINING HORN>
-0075 0301 031B ; [.1833.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U, COMBINING ACUTE ACCENT, COMBINING HORN>
-0075 0341 031B ; [.1833.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U, COMBINING ACUTE TONE MARK, COMBINING HORN>
-0075 0323 031B ; [.1833.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER U, COMBINING DOT BELOW, COMBINING HORN>
-0055 0300 031B ; [.1833.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U, COMBINING GRAVE ACCENT, COMBINING HORN>
-0055 0340 031B ; [.1833.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U, COMBINING GRAVE TONE MARK, COMBINING HORN>
-0055 0309 031B ; [.1833.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER U, COMBINING HOOK ABOVE, COMBINING HORN>
-0055 0303 031B ; [.1833.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER U, COMBINING TILDE, COMBINING HORN>
-0055 0301 031B ; [.1833.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U, COMBINING ACUTE ACCENT, COMBINING HORN>
-0055 0341 031B ; [.1833.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U, COMBINING ACUTE TONE MARK, COMBINING HORN>
-0055 0323 031B ; [.1833.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER U, COMBINING DOT BELOW, COMBINING HORN>
+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>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl
index 306efe44774..84815663a49 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl
@@ -1,24 +1,24 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0061 0061 ; [.15EB.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-00E4 00E4 ; [.15EB.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER A WITH DIAERESIS>
-00E4 0061 0308 ; [.15EB.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER A, COMBINING DIAERESIS>
-0061 0308 00E4 ; [.15EB.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A, COMBINING DIAERESIS, LATIN SMALL LETTER A WITH DIAERESIS>
-0061 0308 0061 0308 ; [.15EB.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A, COMBINING DIAERESIS, LATIN SMALL LETTER A, COMBINING DIAERESIS>
-0065 0065 ; [.1648.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER E, LATIN SMALL LETTER E>
-0069 0069 ; [.16C9.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER I, LATIN SMALL LETTER I>
-006F 006F ; [.176D.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER O, LATIN SMALL LETTER O>
-00F6 00F6 ; [.176D.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O WITH DIAERESIS, LATIN SMALL LETTER O WITH DIAERESIS>
-00F6 006F 0308 ; [.176D.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O WITH DIAERESIS, LATIN SMALL LETTER O, COMBINING DIAERESIS>
-006F 0308 00F6 ; [.176D.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O, COMBINING DIAERESIS, LATIN SMALL LETTER O WITH DIAERESIS>
-006F 0308 006F 0308 ; [.176D.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O, COMBINING DIAERESIS, LATIN SMALL LETTER O, COMBINING DIAERESIS>
-0063 0068 ; [.1619.0020.0002][.0000.0028.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0073 0063 0068 ; [.17EF.0020.0002][.0000.0028.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0075 0075 ; [.1832.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER U, LATIN SMALL LETTER U>
-00FC 00FC ; [.1832.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, LATIN SMALL LETTER U WITH DIAERESIS>
-00FC 0075 0308 ; [.1832.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, LATIN SMALL LETTER U, COMBINING DIAERESIS>
-0075 0308 00FC ; [.1832.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U, COMBINING DIAERESIS, LATIN SMALL LETTER U WITH DIAERESIS>
-0075 0308 0075 0308 ; [.1832.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U, COMBINING DIAERESIS, LATIN SMALL LETTER U, COMBINING DIAERESIS>
+ locale_version => 1.12,
+ 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>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl
index f0aee187e98..3d78de32a3b 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl
@@ -1,32 +1,32 @@
+{
- locale_version => 1.01,
+ locale_version => 1.12,
# eng doesn't require tailoring
- entry => <<'ENTRY', # for DUCET v6.3.0
-00E0 ; [.15EC.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.15EC.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.15EC.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.15EC.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.15EC.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.15EC.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-00E9 ; [.1649.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.1649.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.1649.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.1649.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.1649.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.1649.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-00EB ; [.164A.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-0065 0308 ; [.164A.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-00CB ; [.164A.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
-0045 0308 ; [.164A.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
-00F1 ; [.174C.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-006E 0303 ; [.174C.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.174C.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.174C.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-00F3 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+ 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
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl
index f74bbda279d..5cffcd1222f 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl
@@ -1,26 +1,26 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-1EB9 ; [.1649.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
-0065 0323 ; [.1649.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
-1EB8 ; [.1649.0020.0008] # LATIN CAPITAL LETTER E WITH DOT BELOW
-0045 0323 ; [.1649.0020.0008] # LATIN CAPITAL LETTER E WITH DOT BELOW
-1EC7 ; [.1649.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.1649.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-0067 0062 ; [.168E.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
-0047 0062 ; [.168E.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
-0047 0042 ; [.168E.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
-1ECD ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-006F 0323 ; [.176E.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-1ECC ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
-004F 0323 ; [.176E.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
-1ED9 ; [.176E.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.176E.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1EE3 ; [.176E.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE2 ; [.176E.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-1E63 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH DOT BELOW
-0073 0323 ; [.17F0.0020.0002] # LATIN SMALL LETTER S WITH DOT BELOW
-1E62 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH DOT BELOW
-0053 0323 ; [.17F0.0020.0008] # LATIN CAPITAL LETTER S WITH DOT BELOW
+ locale_version => 1.12,
+ 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
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl
index f5380682d65..ec4296ffb6b 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl
@@ -1,211 +1,211 @@
+{
- locale_version => 1.01,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0101 ; [.15EB.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.15EB.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.15EB.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.15EB.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.15EB.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.15EB.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.15EB.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.15EB.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.1648.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.1648.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.1648.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.1648.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.1648.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.1648.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.1648.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.1648.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.1648.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.1648.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.1648.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.1648.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.1648.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.1648.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.1648.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.1648.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.1648.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.1648.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.1648.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.1648.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.1648.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.1648.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.1648.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.1648.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.1648.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.1648.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.1648.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.1648.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.1648.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.1648.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.1648.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.1648.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.1648.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.1648.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.16C9.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.16C9.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.16C9.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.16C9.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.16C9.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.16C9.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.16C9.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.16C9.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.173D.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.173D.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.173D.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.173D.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.173D.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.173D.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.173D.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.173D.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.174B.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.174B.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.174B.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.174B.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.174B.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.174B.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.176D.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.176D.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.176D.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.176D.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.176D.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.176D.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.176D.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.176D.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1832.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1832.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1832.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1832.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1832.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1832.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1832.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1832.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1832.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1832.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1832.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1832.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1832.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1832.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1832.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1832.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1832.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1832.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1832.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1832.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1832.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1832.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1832.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1832.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1832.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1832.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1832.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1832.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ locale_version => 1.12,
+ 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
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl
index fbc462ca2b1..d8929ef259a 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl
@@ -1,214 +1,214 @@
use Unicode::Collate::CJK::Big5;
+{
- locale_version => 1.01,
+ locale_version => 1.12,
overrideCJK => \&Unicode::Collate::CJK::Big5::weightBig5,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0101 ; [.15EB.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.15EB.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.15EB.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.15EB.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.15EB.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.15EB.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.15EB.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.15EB.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.1648.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.1648.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.1648.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.1648.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.1648.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.1648.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.1648.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.1648.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.1648.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.1648.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.1648.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.1648.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.1648.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.1648.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.1648.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.1648.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.1648.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.1648.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.1648.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.1648.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.1648.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.1648.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.1648.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.1648.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.1648.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.1648.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.1648.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.1648.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.1648.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.1648.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.1648.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.1648.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.1648.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.1648.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.16C9.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.16C9.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.16C9.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.16C9.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.16C9.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.16C9.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.16C9.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.16C9.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.173D.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.173D.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.173D.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.173D.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.173D.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.173D.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.173D.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.173D.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.174B.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.174B.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.174B.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.174B.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.174B.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.174B.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.176D.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.176D.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.176D.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.176D.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.176D.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.176D.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.176D.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.176D.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1832.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1832.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1832.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1832.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1832.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1832.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1832.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1832.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1832.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1832.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1832.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1832.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1832.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1832.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1832.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1832.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1832.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1832.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1832.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1832.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1832.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1832.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1832.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1832.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1832.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1832.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1832.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1832.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ 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
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/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl
index e39c2e089b0..ad117218d74 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl
@@ -1,214 +1,214 @@
use Unicode::Collate::CJK::GB2312;
+{
- locale_version => 1.01,
+ locale_version => 1.12,
overrideCJK => \&Unicode::Collate::CJK::GB2312::weightGB2312,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0101 ; [.15EB.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.15EB.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.15EB.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.15EB.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.15EB.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.15EB.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.15EB.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.15EB.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.1648.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.1648.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.1648.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.1648.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.1648.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.1648.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.1648.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.1648.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.1648.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.1648.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.1648.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.1648.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.1648.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.1648.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.1648.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.1648.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.1648.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.1648.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.1648.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.1648.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.1648.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.1648.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.1648.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.1648.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.1648.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.1648.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.1648.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.1648.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.1648.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.1648.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.1648.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.1648.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.1648.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.1648.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.16C9.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.16C9.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.16C9.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.16C9.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.16C9.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.16C9.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.16C9.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.16C9.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.173D.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.173D.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.173D.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.173D.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.173D.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.173D.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.173D.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.173D.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.174B.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.174B.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.174B.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.174B.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.174B.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.174B.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.176D.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.176D.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.176D.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.176D.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.176D.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.176D.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.176D.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.176D.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1832.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1832.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1832.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1832.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1832.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1832.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1832.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1832.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1832.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1832.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1832.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1832.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1832.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1832.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1832.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1832.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1832.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1832.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1832.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1832.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1832.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1832.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1832.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1832.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1832.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1832.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1832.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1832.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ 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
E2D8 ; [.8EAB.0020.0002] # <unknown>
E2D9 ; [.8EAC.0020.0002] # <unknown>
E2DA ; [.8EAD.0020.0002] # <unknown>
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl
index 013704b0366..37a7b315f20 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl
@@ -1,214 +1,214 @@
use Unicode::Collate::CJK::Pinyin;
+{
- locale_version => 1.01,
+ locale_version => 1.12,
overrideCJK => \&Unicode::Collate::CJK::Pinyin::weightPinyin,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0101 ; [.15EB.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.15EB.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.15EB.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.15EB.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.15EB.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.15EB.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.15EB.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.15EB.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.1648.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.1648.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.1648.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.1648.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.1648.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.1648.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.1648.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.1648.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.1648.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.1648.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.1648.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.1648.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.1648.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.1648.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.1648.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.1648.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.1648.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.1648.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.1648.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.1648.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.1648.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.1648.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.1648.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.1648.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.1648.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.1648.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.1648.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.1648.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.1648.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.1648.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.1648.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.1648.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.1648.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.1648.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.16C9.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.16C9.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.16C9.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.16C9.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.16C9.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.16C9.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.16C9.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.16C9.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.173D.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.173D.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.173D.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.173D.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.173D.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.173D.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.173D.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.173D.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.174B.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.174B.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.174B.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.174B.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.174B.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.174B.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.176D.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.176D.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.176D.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.176D.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.176D.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.176D.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.176D.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.176D.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1832.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1832.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1832.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1832.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1832.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1832.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1832.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1832.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1832.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1832.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1832.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1832.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1832.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1832.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1832.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1832.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1832.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1832.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1832.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1832.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1832.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1832.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1832.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1832.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1832.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1832.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1832.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1832.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ 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
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 ; [*02FA.0020.0004][.C5CF.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
-3226 ; [*02FA.0020.0004][.AE03.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
-3222 ; [*02FA.0020.0004][.B35F.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
-3228 ; [*02FA.0020.0004][.9C92.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
-3221 ; [*02FA.0020.0004][.8E0E.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
-3224 ; [*02FA.0020.0004][.BDF1.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
-3239 ; [*02FA.0020.0004][.89B6.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
-323D ; [*02FA.0020.0004][.AE82.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
-3241 ; [*02FA.0020.0004][.C1F9.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH REST
-3227 ; [*02FA.0020.0004][.80C6.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
-3225 ; [*02FA.0020.0004][.A49F.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
-3238 ; [*02FA.0020.0004][.A132.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
-3229 ; [*02FA.0020.0004][.B57B.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
-323F ; [*02FA.0020.0004][.C10A.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
-3234 ; [*02FA.0020.0004][.A8EB.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
-323A ; [*02FA.0020.0004][.9589.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
-3223 ; [*02FA.0020.0004][.B715.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
-322F ; [*02FA.0020.0004][.BB2D.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
-323B ; [*02FA.0020.0004][.C304.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
-3230 ; [*02FA.0020.0004][.B272.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
-322A ; [*02FA.0020.0004][.CA96.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
-3232 ; [*02FA.0020.0004][.C8D2.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
-322D ; [*02FA.0020.0004][.A98A.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
-3231 ; [*02FA.0020.0004][.CF58.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
-322C ; [*02FA.0020.0004][.B6BA.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
-322B ; [*02FA.0020.0004][.97BC.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
-3235 ; [*02FA.0020.0004][.B980.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
-323C ; [*02FA.0020.0004][.999B.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
-3233 ; [*02FA.0020.0004][.B4AC.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
-3237 ; [*02FA.0020.0004][.CFAD.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
-3240 ; [*02FA.0020.0004][.98D6.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
-3242 ; [*02FA.0020.0004][.D0D4.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
-3243 ; [*02FA.0020.0004][.CE51.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
-3236 ; [*02FA.0020.0004][.844F.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
-323E ; [*02FA.0020.0004][.D0A3.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
-322E ; [*02FA.0020.0004][.9B96.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
-3358 ; [.15E1.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-33E9 ; [.15E2.0020.0004][.15E1.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-32C9 ; [.15E2.0020.0004][.15E1.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-3362 ; [.15E2.0020.0004][.15E1.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-33EA ; [.15E2.0020.0004][.15E2.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-32CA ; [.15E2.0020.0004][.15E2.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-3363 ; [.15E2.0020.0004][.15E2.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-33EB ; [.15E2.0020.0004][.15E3.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-32CB ; [.15E2.0020.0004][.15E3.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-3364 ; [.15E2.0020.0004][.15E3.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-33EC ; [.15E2.0020.0004][.15E4.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-3365 ; [.15E2.0020.0004][.15E4.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-33ED ; [.15E2.0020.0004][.15E5.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-3366 ; [.15E2.0020.0004][.15E5.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-33EE ; [.15E2.0020.0004][.15E6.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-3367 ; [.15E2.0020.0004][.15E6.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-33EF ; [.15E2.0020.0004][.15E7.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-3368 ; [.15E2.0020.0004][.15E7.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-33F0 ; [.15E2.0020.0004][.15E8.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-3369 ; [.15E2.0020.0004][.15E8.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-33F1 ; [.15E2.0020.0004][.15E9.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-336A ; [.15E2.0020.0004][.15E9.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-33F2 ; [.15E2.0020.0004][.15EA.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-336B ; [.15E2.0020.0004][.15EA.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-33E0 ; [.15E2.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-32C0 ; [.15E2.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-3359 ; [.15E2.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-33F3 ; [.15E3.0020.0004][.15E1.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-336C ; [.15E3.0020.0004][.15E1.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-33F4 ; [.15E3.0020.0004][.15E2.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-336D ; [.15E3.0020.0004][.15E2.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-33F5 ; [.15E3.0020.0004][.15E3.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-336E ; [.15E3.0020.0004][.15E3.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-33F6 ; [.15E3.0020.0004][.15E4.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-336F ; [.15E3.0020.0004][.15E4.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-33F7 ; [.15E3.0020.0004][.15E5.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-3370 ; [.15E3.0020.0004][.15E5.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-33F8 ; [.15E3.0020.0004][.15E6.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-33F9 ; [.15E3.0020.0004][.15E7.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-33FA ; [.15E3.0020.0004][.15E8.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-33FB ; [.15E3.0020.0004][.15E9.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-33FC ; [.15E3.0020.0004][.15EA.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33E1 ; [.15E3.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-32C1 ; [.15E3.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-335A ; [.15E3.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-33FD ; [.15E4.0020.0004][.15E1.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-33FE ; [.15E4.0020.0004][.15E2.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-33E2 ; [.15E4.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-32C2 ; [.15E4.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-335B ; [.15E4.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-33E3 ; [.15E5.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-32C3 ; [.15E5.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-335C ; [.15E5.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-33E4 ; [.15E6.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-32C4 ; [.15E6.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-335D ; [.15E6.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-33E5 ; [.15E7.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-32C5 ; [.15E7.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-335E ; [.15E7.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-33E6 ; [.15E8.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-32C6 ; [.15E8.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-335F ; [.15E8.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-33E7 ; [.15E9.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-32C7 ; [.15E9.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-3360 ; [.15E9.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-33E8 ; [.15EA.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-32C8 ; [.15EA.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-3361 ; [.15EA.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-1F241 ; [*035C.0020.0004][.B35F.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
-1F242 ; [*035C.0020.0004][.8E0E.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
-1F247 ; [*035C.0020.0004][.B548.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
-1F243 ; [*035C.0020.0004][.8049.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
-1F245 ; [*035C.0020.0004][.89A6.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
-1F248 ; [*035C.0020.0004][.811B.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F240 ; [*035C.0020.0004][.81FC.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
-1F244 ; [*035C.0020.0004][.8B60.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
-1F246 ; [*035C.0020.0004][.8A91.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+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
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/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl
index 3b0b099be89..dc88d0468cb 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl
@@ -1,214 +1,214 @@
use Unicode::Collate::CJK::Stroke;
+{
- locale_version => 1.01,
+ locale_version => 1.12,
overrideCJK => \&Unicode::Collate::CJK::Stroke::weightStroke,
- entry => <<'ENTRY', # for DUCET v6.3.0
-0101 ; [.15EB.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.15EB.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.15EB.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.15EB.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.15EB.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.15EB.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.15EB.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.15EB.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.1648.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.1648.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.1648.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.1648.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.1648.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.1648.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.1648.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.1648.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.1648.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.1648.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.1648.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.1648.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.1648.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.1648.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.1648.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.1648.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.1648.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.1648.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.1648.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.1648.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.1648.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.1648.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.1648.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.1648.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.1648.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.1648.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.1648.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.1648.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.1648.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.1648.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.1648.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.1648.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.1648.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.1648.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.16C9.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.16C9.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.16C9.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.16C9.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.16C9.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.16C9.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.16C9.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.16C9.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.173D.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.173D.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.173D.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.173D.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.173D.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.173D.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.173D.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.173D.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.174B.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.174B.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.174B.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.174B.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.174B.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.174B.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.176D.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.176D.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.176D.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.176D.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.176D.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.176D.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.176D.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.176D.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1832.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1832.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1832.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1832.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1832.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1832.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1832.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1832.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1832.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1832.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1832.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1832.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1832.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1832.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1832.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1832.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1832.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1832.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1832.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1832.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1832.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1832.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1832.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1832.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1832.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1832.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1832.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1832.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ 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
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 ; [*02FA.0020.0004][.8001.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
-3226 ; [*02FA.0020.0004][.801A.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
-3222 ; [*02FA.0020.0004][.8054.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
-3228 ; [*02FA.0020.0004][.8027.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
-3221 ; [*02FA.0020.0004][.802A.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
-3224 ; [*02FA.0020.0004][.80D7.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
-3239 ; [*02FA.0020.0004][.81C2.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
-323D ; [*02FA.0020.0004][.831C.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
-3241 ; [*02FA.0020.0004][.832C.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH REST
-3227 ; [*02FA.0020.0004][.8030.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
-3225 ; [*02FA.0020.0004][.80F5.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
-3238 ; [*02FA.0020.0004][.85A8.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
-3229 ; [*02FA.0020.0004][.8041.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
-323F ; [*02FA.0020.0004][.899D.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
-3234 ; [*02FA.0020.0004][.839D.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
-323A ; [*02FA.0020.0004][.89D5.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
-3223 ; [*02FA.0020.0004][.822D.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
-322F ; [*02FA.0020.0004][.8081.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
-323B ; [*02FA.0020.0004][.8A8D.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
-3230 ; [*02FA.0020.0004][.815C.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
-322A ; [*02FA.0020.0004][.815F.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
-3232 ; [*02FA.0020.0004][.845A.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
-322D ; [*02FA.0020.0004][.8160.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
-3231 ; [*02FA.0020.0004][.979F.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
-322C ; [*02FA.0020.0004][.816D.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
-322B ; [*02FA.0020.0004][.816E.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
-3235 ; [*02FA.0020.0004][.9895.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
-323C ; [*02FA.0020.0004][.B79A.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
-3233 ; [*02FA.0020.0004][.8D2E.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
-3237 ; [*02FA.0020.0004][.9970.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
-3240 ; [*02FA.0020.0004][.A100.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
-3242 ; [*02FA.0020.0004][.84D8.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
-3243 ; [*02FA.0020.0004][.84D9.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
-3236 ; [*02FA.0020.0004][.9B3B.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
-323E ; [*02FA.0020.0004][.B2A5.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
-322E ; [*02FA.0020.0004][.8E33.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
-3358 ; [.15E1.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-33E9 ; [.15E2.0020.0004][.15E1.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-32C9 ; [.15E2.0020.0004][.15E1.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-3362 ; [.15E2.0020.0004][.15E1.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-33EA ; [.15E2.0020.0004][.15E2.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-32CA ; [.15E2.0020.0004][.15E2.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-3363 ; [.15E2.0020.0004][.15E2.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-33EB ; [.15E2.0020.0004][.15E3.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-32CB ; [.15E2.0020.0004][.15E3.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-3364 ; [.15E2.0020.0004][.15E3.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-33EC ; [.15E2.0020.0004][.15E4.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-3365 ; [.15E2.0020.0004][.15E4.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-33ED ; [.15E2.0020.0004][.15E5.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-3366 ; [.15E2.0020.0004][.15E5.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-33EE ; [.15E2.0020.0004][.15E6.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-3367 ; [.15E2.0020.0004][.15E6.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-33EF ; [.15E2.0020.0004][.15E7.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-3368 ; [.15E2.0020.0004][.15E7.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-33F0 ; [.15E2.0020.0004][.15E8.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-3369 ; [.15E2.0020.0004][.15E8.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-33F1 ; [.15E2.0020.0004][.15E9.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-336A ; [.15E2.0020.0004][.15E9.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-33F2 ; [.15E2.0020.0004][.15EA.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-336B ; [.15E2.0020.0004][.15EA.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-33E0 ; [.15E2.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-32C0 ; [.15E2.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-3359 ; [.15E2.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-33F3 ; [.15E3.0020.0004][.15E1.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-336C ; [.15E3.0020.0004][.15E1.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-33F4 ; [.15E3.0020.0004][.15E2.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-336D ; [.15E3.0020.0004][.15E2.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-33F5 ; [.15E3.0020.0004][.15E3.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-336E ; [.15E3.0020.0004][.15E3.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-33F6 ; [.15E3.0020.0004][.15E4.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-336F ; [.15E3.0020.0004][.15E4.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-33F7 ; [.15E3.0020.0004][.15E5.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-3370 ; [.15E3.0020.0004][.15E5.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-33F8 ; [.15E3.0020.0004][.15E6.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-33F9 ; [.15E3.0020.0004][.15E7.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-33FA ; [.15E3.0020.0004][.15E8.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-33FB ; [.15E3.0020.0004][.15E9.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-33FC ; [.15E3.0020.0004][.15EA.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33E1 ; [.15E3.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-32C1 ; [.15E3.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-335A ; [.15E3.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-33FD ; [.15E4.0020.0004][.15E1.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-33FE ; [.15E4.0020.0004][.15E2.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-33E2 ; [.15E4.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-32C2 ; [.15E4.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-335B ; [.15E4.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-33E3 ; [.15E5.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-32C3 ; [.15E5.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-335C ; [.15E5.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-33E4 ; [.15E6.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-32C4 ; [.15E6.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-335D ; [.15E6.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-33E5 ; [.15E7.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-32C5 ; [.15E7.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-335E ; [.15E7.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-33E6 ; [.15E8.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-32C6 ; [.15E8.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-335F ; [.15E8.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-33E7 ; [.15E9.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-32C7 ; [.15E9.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-3360 ; [.15E9.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-33E8 ; [.15EA.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-32C8 ; [.15EA.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-3361 ; [.15EA.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-1F241 ; [*035C.0020.0004][.8054.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
-1F242 ; [*035C.0020.0004][.802A.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
-1F247 ; [*035C.0020.0004][.A465.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
-1F243 ; [*035C.0020.0004][.83F0.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
-1F245 ; [*035C.0020.0004][.8277.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
-1F248 ; [*035C.0020.0004][.9EDA.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F240 ; [*035C.0020.0004][.8283.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
-1F244 ; [*035C.0020.0004][.9216.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
-1F246 ; [*035C.0020.0004][.A0BD.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+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
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/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl
index f4bf5750813..1463055e347 100755
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl
@@ -1,8 +1,8 @@
use Unicode::Collate::CJK::Zhuyin;
+{
- locale_version => 1.01,
+ locale_version => 1.12,
overrideCJK => \&Unicode::Collate::CJK::Zhuyin::weightZhuyin,
- entry => <<'ENTRY', # for DUCET v6.3.0
+ entry => <<'ENTRY', # for DUCET v7.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 ; [.15EB.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.15EB.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.15EB.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.15EB.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.15EB.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.15EB.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.15EB.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.15EB.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.15EB.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.15EB.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.15EB.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.15EB.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.1648.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.1648.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.1648.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.1648.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.1648.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.1648.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.1648.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.1648.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.1648.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.1648.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.1648.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.1648.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.1648.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.1648.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.1648.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.1648.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.1648.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.1648.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.1648.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.1648.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.1648.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.1648.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.1648.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.1648.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.1648.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.1648.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.1648.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.1648.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.1648.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.1648.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.1648.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.1648.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.1648.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.1648.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.1648.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.1648.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.1648.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.1648.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.1648.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.1648.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.1648.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.1648.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.16C9.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.16C9.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.16C9.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.16C9.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.16C9.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.16C9.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.16C9.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.16C9.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.16C9.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.16C9.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.16C9.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.16C9.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.173D.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.173D.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.173D.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.173D.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.173D.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.173D.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.173D.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.173D.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.173D.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.173D.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.174B.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.174B.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.174B.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.174B.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.174B.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.174B.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.174B.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.174B.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.174B.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.174B.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.176D.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.176D.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.176D.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.176D.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.176D.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.176D.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.176D.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.176D.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.176D.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.176D.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.176D.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.176D.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1832.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1832.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1832.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1832.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1832.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1832.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1832.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1832.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1832.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1832.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1832.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1832.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1832.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1832.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1832.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1832.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1832.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1832.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1832.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1832.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1832.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1832.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1832.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1832.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1832.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1832.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1832.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1832.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1832.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1832.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1832.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1832.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1832.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1832.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1832.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1832.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1832.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1832.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+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
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 ; [*02FA.0020.0004][.CBDC.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
-3226 ; [*02FA.0020.0004][.AD39.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
-3222 ; [*02FA.0020.0004][.C8DF.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
-3228 ; [*02FA.0020.0004][.A95D.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
-3221 ; [*02FA.0020.0004][.CBCD.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
-3224 ; [*02FA.0020.0004][.D1A9.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
-3239 ; [*02FA.0020.0004][.8C57.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
-323D ; [*02FA.0020.0004][.ADC1.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
-3241 ; [*02FA.0020.0004][.B3A8.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH REST
-3227 ; [*02FA.0020.0004][.8001.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
-3225 ; [*02FA.0020.0004][.9953.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
-3238 ; [*02FA.0020.0004][.969E.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
-3229 ; [*02FA.0020.0004][.BF85.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
-323F ; [*02FA.0020.0004][.B2BC.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
-3234 ; [*02FA.0020.0004][.892A.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
-323A ; [*02FA.0020.0004][.A3B5.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
-3223 ; [*02FA.0020.0004][.C82E.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
-322F ; [*02FA.0020.0004][.92EA.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
-323B ; [*02FA.0020.0004][.B5F0.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
-3230 ; [*02FA.0020.0004][.C2A4.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
-322A ; [*02FA.0020.0004][.D53C.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
-3232 ; [*02FA.0020.0004][.CEC7.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
-322D ; [*02FA.0020.0004][.895F.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
-3231 ; [*02FA.0020.0004][.BA36.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
-322C ; [*02FA.0020.0004][.C26E.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
-322B ; [*02FA.0020.0004][.A48C.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
-3235 ; [*02FA.0020.0004][.9060.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
-323C ; [*02FA.0020.0004][.A9B3.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
-3233 ; [*02FA.0020.0004][.C05E.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
-3237 ; [*02FA.0020.0004][.BA90.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
-3240 ; [*02FA.0020.0004][.A78C.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
-3242 ; [*02FA.0020.0004][.C457.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
-3243 ; [*02FA.0020.0004][.B766.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
-3236 ; [*02FA.0020.0004][.C69F.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
-323E ; [*02FA.0020.0004][.C421.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
-322E ; [*02FA.0020.0004][.AA72.0020.0004][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
-3358 ; [.15E1.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-33E9 ; [.15E2.0020.0004][.15E1.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-32C9 ; [.15E2.0020.0004][.15E1.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-3362 ; [.15E2.0020.0004][.15E1.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-33EA ; [.15E2.0020.0004][.15E2.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-32CA ; [.15E2.0020.0004][.15E2.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-3363 ; [.15E2.0020.0004][.15E2.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-33EB ; [.15E2.0020.0004][.15E3.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-32CB ; [.15E2.0020.0004][.15E3.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-3364 ; [.15E2.0020.0004][.15E3.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-33EC ; [.15E2.0020.0004][.15E4.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-3365 ; [.15E2.0020.0004][.15E4.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-33ED ; [.15E2.0020.0004][.15E5.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-3366 ; [.15E2.0020.0004][.15E5.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-33EE ; [.15E2.0020.0004][.15E6.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-3367 ; [.15E2.0020.0004][.15E6.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-33EF ; [.15E2.0020.0004][.15E7.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-3368 ; [.15E2.0020.0004][.15E7.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-33F0 ; [.15E2.0020.0004][.15E8.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-3369 ; [.15E2.0020.0004][.15E8.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-33F1 ; [.15E2.0020.0004][.15E9.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-336A ; [.15E2.0020.0004][.15E9.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-33F2 ; [.15E2.0020.0004][.15EA.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-336B ; [.15E2.0020.0004][.15EA.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-33E0 ; [.15E2.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-32C0 ; [.15E2.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-3359 ; [.15E2.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-33F3 ; [.15E3.0020.0004][.15E1.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-336C ; [.15E3.0020.0004][.15E1.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-33F4 ; [.15E3.0020.0004][.15E2.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-336D ; [.15E3.0020.0004][.15E2.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-33F5 ; [.15E3.0020.0004][.15E3.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-336E ; [.15E3.0020.0004][.15E3.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-33F6 ; [.15E3.0020.0004][.15E4.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-336F ; [.15E3.0020.0004][.15E4.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-33F7 ; [.15E3.0020.0004][.15E5.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-3370 ; [.15E3.0020.0004][.15E5.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-33F8 ; [.15E3.0020.0004][.15E6.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-33F9 ; [.15E3.0020.0004][.15E7.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-33FA ; [.15E3.0020.0004][.15E8.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-33FB ; [.15E3.0020.0004][.15E9.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-33FC ; [.15E3.0020.0004][.15EA.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33E1 ; [.15E3.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-32C1 ; [.15E3.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-335A ; [.15E3.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-33FD ; [.15E4.0020.0004][.15E1.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-33FE ; [.15E4.0020.0004][.15E2.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-33E2 ; [.15E4.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-32C2 ; [.15E4.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-335B ; [.15E4.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-33E3 ; [.15E5.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-32C3 ; [.15E5.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-335C ; [.15E5.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-33E4 ; [.15E6.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-32C4 ; [.15E6.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-335D ; [.15E6.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-33E5 ; [.15E7.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-32C5 ; [.15E7.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-335E ; [.15E7.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-33E6 ; [.15E8.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-32C6 ; [.15E8.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-335F ; [.15E8.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-33E7 ; [.15E9.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-32C7 ; [.15E9.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-3360 ; [.15E9.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-33E8 ; [.15EA.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-32C8 ; [.15EA.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-3361 ; [.15EA.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-1F241 ; [*035C.0020.0004][.C8DF.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
-1F242 ; [*035C.0020.0004][.CBCD.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
-1F247 ; [*035C.0020.0004][.C1CC.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
-1F243 ; [*035C.0020.0004][.CB52.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
-1F245 ; [*035C.0020.0004][.8C38.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
-1F248 ; [*035C.0020.0004][.80CD.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F240 ; [*035C.0020.0004][.819A.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
-1F244 ; [*035C.0020.0004][.8E99.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
-1F246 ; [*035C.0020.0004][.8CA9.0020.0004][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+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
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/Master/tlpkg/tlperl/lib/Unicode/Collate/allkeys.txt b/Master/tlpkg/tlperl/lib/Unicode/Collate/allkeys.txt
index 9ecd872fb91..6c8f02ed5b5 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/allkeys.txt
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/allkeys.txt
@@ -1,607 +1,613 @@
-# unidata-6.3.0.txt
-# Date: 2013-05-22, 16:45:00 GMT [KW]
+# unidata-7.0.0.txt
+# Date: 2014-04-07, 19:21:08 GMT [KW]
#
# This file defines the Default Unicode Collation Element Table
# (DUCET) for the Unicode Collation Algorithm
#
-# Copyright (c) 2001-2012 Unicode, Inc.
+# 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..4326 (16679)
-# Secondary weight range: 0020..0100 (225)
-# Variant secondaries: 00FC..0100 (5)
+# Primary weight range: 0200..4CFC (19197)
+# Secondary weight range: 0020..010C (237)
+# Variant secondaries: 0108..010C (5)
# Tertiary weight range: 0002..001F (30)
#
-@version 6.3.0
+@version 7.0.0
-0000 ; [.0000.0000.0000] # [0000] NULL (in 6429)
-0001 ; [.0000.0000.0000] # [0001] START OF HEADING (in 6429)
-0002 ; [.0000.0000.0000] # [0002] START OF TEXT (in 6429)
-0003 ; [.0000.0000.0000] # [0003] END OF TEXT (in 6429)
-0004 ; [.0000.0000.0000] # [0004] END OF TRANSMISSION (in 6429)
-0005 ; [.0000.0000.0000] # [0005] ENQUIRY (in 6429)
-0006 ; [.0000.0000.0000] # [0006] ACKNOWLEDGE (in 6429)
-0007 ; [.0000.0000.0000] # [0007] BELL (in 6429)
-0008 ; [.0000.0000.0000] # [0008] BACKSPACE (in 6429)
-000E ; [.0000.0000.0000] # [000E] SHIFT OUT (in 6429)
-000F ; [.0000.0000.0000] # [000F] SHIFT IN (in 6429)
-0010 ; [.0000.0000.0000] # [0010] DATA LINK ESCAPE (in 6429)
-0011 ; [.0000.0000.0000] # [0011] DEVICE CONTROL ONE (in 6429)
-0012 ; [.0000.0000.0000] # [0012] DEVICE CONTROL TWO (in 6429)
-0013 ; [.0000.0000.0000] # [0013] DEVICE CONTROL THREE (in 6429)
-0014 ; [.0000.0000.0000] # [0014] DEVICE CONTROL FOUR (in 6429)
-0015 ; [.0000.0000.0000] # [0015] NEGATIVE ACKNOWLEDGE (in 6429)
-0016 ; [.0000.0000.0000] # [0016] SYNCHRONOUS IDLE (in 6429)
-0017 ; [.0000.0000.0000] # [0017] END OF TRANSMISSION BLOCK (in 6429)
-0018 ; [.0000.0000.0000] # [0018] CANCEL (in 6429)
-0019 ; [.0000.0000.0000] # [0019] END OF MEDIUM (in 6429)
-001A ; [.0000.0000.0000] # [001A] SUBSTITUTE (in 6429)
-001B ; [.0000.0000.0000] # [001B] ESCAPE (in 6429)
-001C ; [.0000.0000.0000] # [001C] FILE SEPARATOR (in 6429)
-001D ; [.0000.0000.0000] # [001D] GROUP SEPARATOR (in 6429)
-001E ; [.0000.0000.0000] # [001E] RECORD SEPARATOR (in 6429)
-001F ; [.0000.0000.0000] # [001F] UNIT SEPARATOR (in 6429)
-007F ; [.0000.0000.0000] # [007F] DELETE (in 6429)
-0080 ; [.0000.0000.0000] # [0080] <control>
-0081 ; [.0000.0000.0000] # [0081] <control>
-0082 ; [.0000.0000.0000] # [0082] BREAK PERMITTED HERE (in 6429)
-0083 ; [.0000.0000.0000] # [0083] NO BREAK HERE (in 6429)
-0084 ; [.0000.0000.0000] # [0084] <control>
-0086 ; [.0000.0000.0000] # [0086] START OF SELECTED AREA (in 6429)
-0087 ; [.0000.0000.0000] # [0087] END OF SELECTED AREA (in 6429)
-0088 ; [.0000.0000.0000] # [0088] CHARACTER TABULATION SET (in 6429)
-0089 ; [.0000.0000.0000] # [0089] CHARACTER TABULATION WITH JUSTIFICATION (in 6429)
-008A ; [.0000.0000.0000] # [008A] LINE TABULATION SET (in 6429)
-008B ; [.0000.0000.0000] # [008B] PARTIAL LINE FORWARD (in 6429)
-008C ; [.0000.0000.0000] # [008C] PARTIAL LINE BACKWARD (in 6429)
-008D ; [.0000.0000.0000] # [008D] PARTIAL LINE FEED (in 6429)
-008E ; [.0000.0000.0000] # [008E] SINGLE SHIFT TWO (in 6429)
-008F ; [.0000.0000.0000] # [008F] SINGLE SHIFT THREE (in 6429)
-0090 ; [.0000.0000.0000] # [0090] DEVICE CONTROL STRING (in 6429)
-0091 ; [.0000.0000.0000] # [0091] PRIVATE USE ONE (in 6429)
-0092 ; [.0000.0000.0000] # [0092] PRIVATE USE TWO (in 6429)
-0093 ; [.0000.0000.0000] # [0093] SET TRANSMIT STATE (in 6429)
-0094 ; [.0000.0000.0000] # [0094] CANCEL CHARACTER (in 6429)
-0095 ; [.0000.0000.0000] # [0095] MESSAGE WAITING (in 6429)
-0096 ; [.0000.0000.0000] # [0096] START OF GUARDED AREA (in 6429)
-0097 ; [.0000.0000.0000] # [0097] END OF GUARDED AREA (in 6429)
-0098 ; [.0000.0000.0000] # [0098] START OF STRING (in 6429)
-0099 ; [.0000.0000.0000] # [0099] <control>
-009A ; [.0000.0000.0000] # [009A] SINGLE CHARACTER INTRODUCER (in 6429)
-009B ; [.0000.0000.0000] # [009B] CONTROL SEQUENCE INTRODUCER (in 6429)
-009C ; [.0000.0000.0000] # [009C] STRING TERMINATOR (in 6429)
-009D ; [.0000.0000.0000] # [009D] OPERATING SYSTEM COMMAND (in 6429)
-009E ; [.0000.0000.0000] # [009E] PRIVACY MESSAGE (in 6429)
-009F ; [.0000.0000.0000] # [009F] APPLICATION PROGRAM COMMAND (in 6429)
-00AD ; [.0000.0000.0000] # [00AD] SOFT HYPHEN
-061C ; [.0000.0000.0000] # [061C] ARABIC LETTER MARK
-070F ; [.0000.0000.0000] # [070F] SYRIAC ABBREVIATION MARK
-180B ; [.0000.0000.0000] # [180B] MONGOLIAN FREE VARIATION SELECTOR ONE
-180C ; [.0000.0000.0000] # [180C] MONGOLIAN FREE VARIATION SELECTOR TWO
-180D ; [.0000.0000.0000] # [180D] MONGOLIAN FREE VARIATION SELECTOR THREE
-180E ; [.0000.0000.0000] # [180E] MONGOLIAN VOWEL SEPARATOR
-200B ; [.0000.0000.0000] # [200B] ZERO WIDTH SPACE
-200C ; [.0000.0000.0000] # [200C] ZERO WIDTH NON-JOINER
-200D ; [.0000.0000.0000] # [200D] ZERO WIDTH JOINER
-200E ; [.0000.0000.0000] # [200E] LEFT-TO-RIGHT MARK
-200F ; [.0000.0000.0000] # [200F] RIGHT-TO-LEFT MARK
-202A ; [.0000.0000.0000] # [202A] LEFT-TO-RIGHT EMBEDDING
-202B ; [.0000.0000.0000] # [202B] RIGHT-TO-LEFT EMBEDDING
-202C ; [.0000.0000.0000] # [202C] POP DIRECTIONAL FORMATTING
-202D ; [.0000.0000.0000] # [202D] LEFT-TO-RIGHT OVERRIDE
-202E ; [.0000.0000.0000] # [202E] RIGHT-TO-LEFT OVERRIDE
-2060 ; [.0000.0000.0000] # [2060] WORD JOINER
-2066 ; [.0000.0000.0000] # [2066] LEFT-TO-RIGHT ISOLATE
-2067 ; [.0000.0000.0000] # [2067] RIGHT-TO-LEFT ISOLATE
-2068 ; [.0000.0000.0000] # [2068] FIRST STRONG ISOLATE
-2069 ; [.0000.0000.0000] # [2069] POP DIRECTIONAL ISOLATE
-206A ; [.0000.0000.0000] # [206A] INHIBIT SYMMETRIC SWAPPING
-206B ; [.0000.0000.0000] # [206B] ACTIVATE SYMMETRIC SWAPPING
-206C ; [.0000.0000.0000] # [206C] INHIBIT ARABIC FORM SHAPING
-206D ; [.0000.0000.0000] # [206D] ACTIVATE ARABIC FORM SHAPING
-206E ; [.0000.0000.0000] # [206E] NATIONAL DIGIT SHAPES
-206F ; [.0000.0000.0000] # [206F] NOMINAL DIGIT SHAPES
-FE00 ; [.0000.0000.0000] # [FE00] VARIATION SELECTOR-1
-FE01 ; [.0000.0000.0000] # [FE01] VARIATION SELECTOR-2
-FE02 ; [.0000.0000.0000] # [FE02] VARIATION SELECTOR-3
-FE03 ; [.0000.0000.0000] # [FE03] VARIATION SELECTOR-4
-FE04 ; [.0000.0000.0000] # [FE04] VARIATION SELECTOR-5
-FE05 ; [.0000.0000.0000] # [FE05] VARIATION SELECTOR-6
-FE06 ; [.0000.0000.0000] # [FE06] VARIATION SELECTOR-7
-FE07 ; [.0000.0000.0000] # [FE07] VARIATION SELECTOR-8
-FE08 ; [.0000.0000.0000] # [FE08] VARIATION SELECTOR-9
-FE09 ; [.0000.0000.0000] # [FE09] VARIATION SELECTOR-10
-FE0A ; [.0000.0000.0000] # [FE0A] VARIATION SELECTOR-11
-FE0B ; [.0000.0000.0000] # [FE0B] VARIATION SELECTOR-12
-FE0C ; [.0000.0000.0000] # [FE0C] VARIATION SELECTOR-13
-FE0D ; [.0000.0000.0000] # [FE0D] VARIATION SELECTOR-14
-FE0E ; [.0000.0000.0000] # [FE0E] VARIATION SELECTOR-15
-FE0F ; [.0000.0000.0000] # [FE0F] VARIATION SELECTOR-16
-FEFF ; [.0000.0000.0000] # [FEFF] ZERO WIDTH NO-BREAK SPACE
-FFF9 ; [.0000.0000.0000] # [FFF9] INTERLINEAR ANNOTATION ANCHOR
-FFFA ; [.0000.0000.0000] # [FFFA] INTERLINEAR ANNOTATION SEPARATOR
-FFFB ; [.0000.0000.0000] # [FFFB] INTERLINEAR ANNOTATION TERMINATOR
-1D173 ; [.0000.0000.0000] # [1D173] MUSICAL SYMBOL BEGIN BEAM
-1D174 ; [.0000.0000.0000] # [1D174] MUSICAL SYMBOL END BEAM
-1D175 ; [.0000.0000.0000] # [1D175] MUSICAL SYMBOL BEGIN TIE
-1D176 ; [.0000.0000.0000] # [1D176] MUSICAL SYMBOL END TIE
-1D177 ; [.0000.0000.0000] # [1D177] MUSICAL SYMBOL BEGIN SLUR
-1D178 ; [.0000.0000.0000] # [1D178] MUSICAL SYMBOL END SLUR
-1D179 ; [.0000.0000.0000] # [1D179] MUSICAL SYMBOL BEGIN PHRASE
-1D17A ; [.0000.0000.0000] # [1D17A] MUSICAL SYMBOL END PHRASE
-E0001 ; [.0000.0000.0000] # [E0001] LANGUAGE TAG
-E0020 ; [.0000.0000.0000] # [E0020] TAG SPACE
-E0021 ; [.0000.0000.0000] # [E0021] TAG EXCLAMATION MARK
-E0022 ; [.0000.0000.0000] # [E0022] TAG QUOTATION MARK
-E0023 ; [.0000.0000.0000] # [E0023] TAG NUMBER SIGN
-E0024 ; [.0000.0000.0000] # [E0024] TAG DOLLAR SIGN
-E0025 ; [.0000.0000.0000] # [E0025] TAG PERCENT SIGN
-E0026 ; [.0000.0000.0000] # [E0026] TAG AMPERSAND
-E0027 ; [.0000.0000.0000] # [E0027] TAG APOSTROPHE
-E0028 ; [.0000.0000.0000] # [E0028] TAG LEFT PARENTHESIS
-E0029 ; [.0000.0000.0000] # [E0029] TAG RIGHT PARENTHESIS
-E002A ; [.0000.0000.0000] # [E002A] TAG ASTERISK
-E002B ; [.0000.0000.0000] # [E002B] TAG PLUS SIGN
-E002C ; [.0000.0000.0000] # [E002C] TAG COMMA
-E002D ; [.0000.0000.0000] # [E002D] TAG HYPHEN-MINUS
-E002E ; [.0000.0000.0000] # [E002E] TAG FULL STOP
-E002F ; [.0000.0000.0000] # [E002F] TAG SOLIDUS
-E0030 ; [.0000.0000.0000] # [E0030] TAG DIGIT ZERO
-E0031 ; [.0000.0000.0000] # [E0031] TAG DIGIT ONE
-E0032 ; [.0000.0000.0000] # [E0032] TAG DIGIT TWO
-E0033 ; [.0000.0000.0000] # [E0033] TAG DIGIT THREE
-E0034 ; [.0000.0000.0000] # [E0034] TAG DIGIT FOUR
-E0035 ; [.0000.0000.0000] # [E0035] TAG DIGIT FIVE
-E0036 ; [.0000.0000.0000] # [E0036] TAG DIGIT SIX
-E0037 ; [.0000.0000.0000] # [E0037] TAG DIGIT SEVEN
-E0038 ; [.0000.0000.0000] # [E0038] TAG DIGIT EIGHT
-E0039 ; [.0000.0000.0000] # [E0039] TAG DIGIT NINE
-E003A ; [.0000.0000.0000] # [E003A] TAG COLON
-E003B ; [.0000.0000.0000] # [E003B] TAG SEMICOLON
-E003C ; [.0000.0000.0000] # [E003C] TAG LESS-THAN SIGN
-E003D ; [.0000.0000.0000] # [E003D] TAG EQUALS SIGN
-E003E ; [.0000.0000.0000] # [E003E] TAG GREATER-THAN SIGN
-E003F ; [.0000.0000.0000] # [E003F] TAG QUESTION MARK
-E0040 ; [.0000.0000.0000] # [E0040] TAG COMMERCIAL AT
-E0041 ; [.0000.0000.0000] # [E0041] TAG LATIN CAPITAL LETTER A
-E0042 ; [.0000.0000.0000] # [E0042] TAG LATIN CAPITAL LETTER B
-E0043 ; [.0000.0000.0000] # [E0043] TAG LATIN CAPITAL LETTER C
-E0044 ; [.0000.0000.0000] # [E0044] TAG LATIN CAPITAL LETTER D
-E0045 ; [.0000.0000.0000] # [E0045] TAG LATIN CAPITAL LETTER E
-E0046 ; [.0000.0000.0000] # [E0046] TAG LATIN CAPITAL LETTER F
-E0047 ; [.0000.0000.0000] # [E0047] TAG LATIN CAPITAL LETTER G
-E0048 ; [.0000.0000.0000] # [E0048] TAG LATIN CAPITAL LETTER H
-E0049 ; [.0000.0000.0000] # [E0049] TAG LATIN CAPITAL LETTER I
-E004A ; [.0000.0000.0000] # [E004A] TAG LATIN CAPITAL LETTER J
-E004B ; [.0000.0000.0000] # [E004B] TAG LATIN CAPITAL LETTER K
-E004C ; [.0000.0000.0000] # [E004C] TAG LATIN CAPITAL LETTER L
-E004D ; [.0000.0000.0000] # [E004D] TAG LATIN CAPITAL LETTER M
-E004E ; [.0000.0000.0000] # [E004E] TAG LATIN CAPITAL LETTER N
-E004F ; [.0000.0000.0000] # [E004F] TAG LATIN CAPITAL LETTER O
-E0050 ; [.0000.0000.0000] # [E0050] TAG LATIN CAPITAL LETTER P
-E0051 ; [.0000.0000.0000] # [E0051] TAG LATIN CAPITAL LETTER Q
-E0052 ; [.0000.0000.0000] # [E0052] TAG LATIN CAPITAL LETTER R
-E0053 ; [.0000.0000.0000] # [E0053] TAG LATIN CAPITAL LETTER S
-E0054 ; [.0000.0000.0000] # [E0054] TAG LATIN CAPITAL LETTER T
-E0055 ; [.0000.0000.0000] # [E0055] TAG LATIN CAPITAL LETTER U
-E0056 ; [.0000.0000.0000] # [E0056] TAG LATIN CAPITAL LETTER V
-E0057 ; [.0000.0000.0000] # [E0057] TAG LATIN CAPITAL LETTER W
-E0058 ; [.0000.0000.0000] # [E0058] TAG LATIN CAPITAL LETTER X
-E0059 ; [.0000.0000.0000] # [E0059] TAG LATIN CAPITAL LETTER Y
-E005A ; [.0000.0000.0000] # [E005A] TAG LATIN CAPITAL LETTER Z
-E005B ; [.0000.0000.0000] # [E005B] TAG LEFT SQUARE BRACKET
-E005C ; [.0000.0000.0000] # [E005C] TAG REVERSE SOLIDUS
-E005D ; [.0000.0000.0000] # [E005D] TAG RIGHT SQUARE BRACKET
-E005E ; [.0000.0000.0000] # [E005E] TAG CIRCUMFLEX ACCENT
-E005F ; [.0000.0000.0000] # [E005F] TAG LOW LINE
-E0060 ; [.0000.0000.0000] # [E0060] TAG GRAVE ACCENT
-E0061 ; [.0000.0000.0000] # [E0061] TAG LATIN SMALL LETTER A
-E0062 ; [.0000.0000.0000] # [E0062] TAG LATIN SMALL LETTER B
-E0063 ; [.0000.0000.0000] # [E0063] TAG LATIN SMALL LETTER C
-E0064 ; [.0000.0000.0000] # [E0064] TAG LATIN SMALL LETTER D
-E0065 ; [.0000.0000.0000] # [E0065] TAG LATIN SMALL LETTER E
-E0066 ; [.0000.0000.0000] # [E0066] TAG LATIN SMALL LETTER F
-E0067 ; [.0000.0000.0000] # [E0067] TAG LATIN SMALL LETTER G
-E0068 ; [.0000.0000.0000] # [E0068] TAG LATIN SMALL LETTER H
-E0069 ; [.0000.0000.0000] # [E0069] TAG LATIN SMALL LETTER I
-E006A ; [.0000.0000.0000] # [E006A] TAG LATIN SMALL LETTER J
-E006B ; [.0000.0000.0000] # [E006B] TAG LATIN SMALL LETTER K
-E006C ; [.0000.0000.0000] # [E006C] TAG LATIN SMALL LETTER L
-E006D ; [.0000.0000.0000] # [E006D] TAG LATIN SMALL LETTER M
-E006E ; [.0000.0000.0000] # [E006E] TAG LATIN SMALL LETTER N
-E006F ; [.0000.0000.0000] # [E006F] TAG LATIN SMALL LETTER O
-E0070 ; [.0000.0000.0000] # [E0070] TAG LATIN SMALL LETTER P
-E0071 ; [.0000.0000.0000] # [E0071] TAG LATIN SMALL LETTER Q
-E0072 ; [.0000.0000.0000] # [E0072] TAG LATIN SMALL LETTER R
-E0073 ; [.0000.0000.0000] # [E0073] TAG LATIN SMALL LETTER S
-E0074 ; [.0000.0000.0000] # [E0074] TAG LATIN SMALL LETTER T
-E0075 ; [.0000.0000.0000] # [E0075] TAG LATIN SMALL LETTER U
-E0076 ; [.0000.0000.0000] # [E0076] TAG LATIN SMALL LETTER V
-E0077 ; [.0000.0000.0000] # [E0077] TAG LATIN SMALL LETTER W
-E0078 ; [.0000.0000.0000] # [E0078] TAG LATIN SMALL LETTER X
-E0079 ; [.0000.0000.0000] # [E0079] TAG LATIN SMALL LETTER Y
-E007A ; [.0000.0000.0000] # [E007A] TAG LATIN SMALL LETTER Z
-E007B ; [.0000.0000.0000] # [E007B] TAG LEFT CURLY BRACKET
-E007C ; [.0000.0000.0000] # [E007C] TAG VERTICAL LINE
-E007D ; [.0000.0000.0000] # [E007D] TAG RIGHT CURLY BRACKET
-E007E ; [.0000.0000.0000] # [E007E] TAG TILDE
-E007F ; [.0000.0000.0000] # [E007F] CANCEL TAG
-E0100 ; [.0000.0000.0000] # [E0100] VARIATION SELECTOR-17
-E0101 ; [.0000.0000.0000] # [E0101] VARIATION SELECTOR-18
-E0102 ; [.0000.0000.0000] # [E0102] VARIATION SELECTOR-19
-E0103 ; [.0000.0000.0000] # [E0103] VARIATION SELECTOR-20
-E0104 ; [.0000.0000.0000] # [E0104] VARIATION SELECTOR-21
-E0105 ; [.0000.0000.0000] # [E0105] VARIATION SELECTOR-22
-E0106 ; [.0000.0000.0000] # [E0106] VARIATION SELECTOR-23
-E0107 ; [.0000.0000.0000] # [E0107] VARIATION SELECTOR-24
-E0108 ; [.0000.0000.0000] # [E0108] VARIATION SELECTOR-25
-E0109 ; [.0000.0000.0000] # [E0109] VARIATION SELECTOR-26
-E010A ; [.0000.0000.0000] # [E010A] VARIATION SELECTOR-27
-E010B ; [.0000.0000.0000] # [E010B] VARIATION SELECTOR-28
-E010C ; [.0000.0000.0000] # [E010C] VARIATION SELECTOR-29
-E010D ; [.0000.0000.0000] # [E010D] VARIATION SELECTOR-30
-E010E ; [.0000.0000.0000] # [E010E] VARIATION SELECTOR-31
-E010F ; [.0000.0000.0000] # [E010F] VARIATION SELECTOR-32
-E0110 ; [.0000.0000.0000] # [E0110] VARIATION SELECTOR-33
-E0111 ; [.0000.0000.0000] # [E0111] VARIATION SELECTOR-34
-E0112 ; [.0000.0000.0000] # [E0112] VARIATION SELECTOR-35
-E0113 ; [.0000.0000.0000] # [E0113] VARIATION SELECTOR-36
-E0114 ; [.0000.0000.0000] # [E0114] VARIATION SELECTOR-37
-E0115 ; [.0000.0000.0000] # [E0115] VARIATION SELECTOR-38
-E0116 ; [.0000.0000.0000] # [E0116] VARIATION SELECTOR-39
-E0117 ; [.0000.0000.0000] # [E0117] VARIATION SELECTOR-40
-E0118 ; [.0000.0000.0000] # [E0118] VARIATION SELECTOR-41
-E0119 ; [.0000.0000.0000] # [E0119] VARIATION SELECTOR-42
-E011A ; [.0000.0000.0000] # [E011A] VARIATION SELECTOR-43
-E011B ; [.0000.0000.0000] # [E011B] VARIATION SELECTOR-44
-E011C ; [.0000.0000.0000] # [E011C] VARIATION SELECTOR-45
-E011D ; [.0000.0000.0000] # [E011D] VARIATION SELECTOR-46
-E011E ; [.0000.0000.0000] # [E011E] VARIATION SELECTOR-47
-E011F ; [.0000.0000.0000] # [E011F] VARIATION SELECTOR-48
-E0120 ; [.0000.0000.0000] # [E0120] VARIATION SELECTOR-49
-E0121 ; [.0000.0000.0000] # [E0121] VARIATION SELECTOR-50
-E0122 ; [.0000.0000.0000] # [E0122] VARIATION SELECTOR-51
-E0123 ; [.0000.0000.0000] # [E0123] VARIATION SELECTOR-52
-E0124 ; [.0000.0000.0000] # [E0124] VARIATION SELECTOR-53
-E0125 ; [.0000.0000.0000] # [E0125] VARIATION SELECTOR-54
-E0126 ; [.0000.0000.0000] # [E0126] VARIATION SELECTOR-55
-E0127 ; [.0000.0000.0000] # [E0127] VARIATION SELECTOR-56
-E0128 ; [.0000.0000.0000] # [E0128] VARIATION SELECTOR-57
-E0129 ; [.0000.0000.0000] # [E0129] VARIATION SELECTOR-58
-E012A ; [.0000.0000.0000] # [E012A] VARIATION SELECTOR-59
-E012B ; [.0000.0000.0000] # [E012B] VARIATION SELECTOR-60
-E012C ; [.0000.0000.0000] # [E012C] VARIATION SELECTOR-61
-E012D ; [.0000.0000.0000] # [E012D] VARIATION SELECTOR-62
-E012E ; [.0000.0000.0000] # [E012E] VARIATION SELECTOR-63
-E012F ; [.0000.0000.0000] # [E012F] VARIATION SELECTOR-64
-E0130 ; [.0000.0000.0000] # [E0130] VARIATION SELECTOR-65
-E0131 ; [.0000.0000.0000] # [E0131] VARIATION SELECTOR-66
-E0132 ; [.0000.0000.0000] # [E0132] VARIATION SELECTOR-67
-E0133 ; [.0000.0000.0000] # [E0133] VARIATION SELECTOR-68
-E0134 ; [.0000.0000.0000] # [E0134] VARIATION SELECTOR-69
-E0135 ; [.0000.0000.0000] # [E0135] VARIATION SELECTOR-70
-E0136 ; [.0000.0000.0000] # [E0136] VARIATION SELECTOR-71
-E0137 ; [.0000.0000.0000] # [E0137] VARIATION SELECTOR-72
-E0138 ; [.0000.0000.0000] # [E0138] VARIATION SELECTOR-73
-E0139 ; [.0000.0000.0000] # [E0139] VARIATION SELECTOR-74
-E013A ; [.0000.0000.0000] # [E013A] VARIATION SELECTOR-75
-E013B ; [.0000.0000.0000] # [E013B] VARIATION SELECTOR-76
-E013C ; [.0000.0000.0000] # [E013C] VARIATION SELECTOR-77
-E013D ; [.0000.0000.0000] # [E013D] VARIATION SELECTOR-78
-E013E ; [.0000.0000.0000] # [E013E] VARIATION SELECTOR-79
-E013F ; [.0000.0000.0000] # [E013F] VARIATION SELECTOR-80
-E0140 ; [.0000.0000.0000] # [E0140] VARIATION SELECTOR-81
-E0141 ; [.0000.0000.0000] # [E0141] VARIATION SELECTOR-82
-E0142 ; [.0000.0000.0000] # [E0142] VARIATION SELECTOR-83
-E0143 ; [.0000.0000.0000] # [E0143] VARIATION SELECTOR-84
-E0144 ; [.0000.0000.0000] # [E0144] VARIATION SELECTOR-85
-E0145 ; [.0000.0000.0000] # [E0145] VARIATION SELECTOR-86
-E0146 ; [.0000.0000.0000] # [E0146] VARIATION SELECTOR-87
-E0147 ; [.0000.0000.0000] # [E0147] VARIATION SELECTOR-88
-E0148 ; [.0000.0000.0000] # [E0148] VARIATION SELECTOR-89
-E0149 ; [.0000.0000.0000] # [E0149] VARIATION SELECTOR-90
-E014A ; [.0000.0000.0000] # [E014A] VARIATION SELECTOR-91
-E014B ; [.0000.0000.0000] # [E014B] VARIATION SELECTOR-92
-E014C ; [.0000.0000.0000] # [E014C] VARIATION SELECTOR-93
-E014D ; [.0000.0000.0000] # [E014D] VARIATION SELECTOR-94
-E014E ; [.0000.0000.0000] # [E014E] VARIATION SELECTOR-95
-E014F ; [.0000.0000.0000] # [E014F] VARIATION SELECTOR-96
-E0150 ; [.0000.0000.0000] # [E0150] VARIATION SELECTOR-97
-E0151 ; [.0000.0000.0000] # [E0151] VARIATION SELECTOR-98
-E0152 ; [.0000.0000.0000] # [E0152] VARIATION SELECTOR-99
-E0153 ; [.0000.0000.0000] # [E0153] VARIATION SELECTOR-100
-E0154 ; [.0000.0000.0000] # [E0154] VARIATION SELECTOR-101
-E0155 ; [.0000.0000.0000] # [E0155] VARIATION SELECTOR-102
-E0156 ; [.0000.0000.0000] # [E0156] VARIATION SELECTOR-103
-E0157 ; [.0000.0000.0000] # [E0157] VARIATION SELECTOR-104
-E0158 ; [.0000.0000.0000] # [E0158] VARIATION SELECTOR-105
-E0159 ; [.0000.0000.0000] # [E0159] VARIATION SELECTOR-106
-E015A ; [.0000.0000.0000] # [E015A] VARIATION SELECTOR-107
-E015B ; [.0000.0000.0000] # [E015B] VARIATION SELECTOR-108
-E015C ; [.0000.0000.0000] # [E015C] VARIATION SELECTOR-109
-E015D ; [.0000.0000.0000] # [E015D] VARIATION SELECTOR-110
-E015E ; [.0000.0000.0000] # [E015E] VARIATION SELECTOR-111
-E015F ; [.0000.0000.0000] # [E015F] VARIATION SELECTOR-112
-E0160 ; [.0000.0000.0000] # [E0160] VARIATION SELECTOR-113
-E0161 ; [.0000.0000.0000] # [E0161] VARIATION SELECTOR-114
-E0162 ; [.0000.0000.0000] # [E0162] VARIATION SELECTOR-115
-E0163 ; [.0000.0000.0000] # [E0163] VARIATION SELECTOR-116
-E0164 ; [.0000.0000.0000] # [E0164] VARIATION SELECTOR-117
-E0165 ; [.0000.0000.0000] # [E0165] VARIATION SELECTOR-118
-E0166 ; [.0000.0000.0000] # [E0166] VARIATION SELECTOR-119
-E0167 ; [.0000.0000.0000] # [E0167] VARIATION SELECTOR-120
-E0168 ; [.0000.0000.0000] # [E0168] VARIATION SELECTOR-121
-E0169 ; [.0000.0000.0000] # [E0169] VARIATION SELECTOR-122
-E016A ; [.0000.0000.0000] # [E016A] VARIATION SELECTOR-123
-E016B ; [.0000.0000.0000] # [E016B] VARIATION SELECTOR-124
-E016C ; [.0000.0000.0000] # [E016C] VARIATION SELECTOR-125
-E016D ; [.0000.0000.0000] # [E016D] VARIATION SELECTOR-126
-E016E ; [.0000.0000.0000] # [E016E] VARIATION SELECTOR-127
-E016F ; [.0000.0000.0000] # [E016F] VARIATION SELECTOR-128
-E0170 ; [.0000.0000.0000] # [E0170] VARIATION SELECTOR-129
-E0171 ; [.0000.0000.0000] # [E0171] VARIATION SELECTOR-130
-E0172 ; [.0000.0000.0000] # [E0172] VARIATION SELECTOR-131
-E0173 ; [.0000.0000.0000] # [E0173] VARIATION SELECTOR-132
-E0174 ; [.0000.0000.0000] # [E0174] VARIATION SELECTOR-133
-E0175 ; [.0000.0000.0000] # [E0175] VARIATION SELECTOR-134
-E0176 ; [.0000.0000.0000] # [E0176] VARIATION SELECTOR-135
-E0177 ; [.0000.0000.0000] # [E0177] VARIATION SELECTOR-136
-E0178 ; [.0000.0000.0000] # [E0178] VARIATION SELECTOR-137
-E0179 ; [.0000.0000.0000] # [E0179] VARIATION SELECTOR-138
-E017A ; [.0000.0000.0000] # [E017A] VARIATION SELECTOR-139
-E017B ; [.0000.0000.0000] # [E017B] VARIATION SELECTOR-140
-E017C ; [.0000.0000.0000] # [E017C] VARIATION SELECTOR-141
-E017D ; [.0000.0000.0000] # [E017D] VARIATION SELECTOR-142
-E017E ; [.0000.0000.0000] # [E017E] VARIATION SELECTOR-143
-E017F ; [.0000.0000.0000] # [E017F] VARIATION SELECTOR-144
-E0180 ; [.0000.0000.0000] # [E0180] VARIATION SELECTOR-145
-E0181 ; [.0000.0000.0000] # [E0181] VARIATION SELECTOR-146
-E0182 ; [.0000.0000.0000] # [E0182] VARIATION SELECTOR-147
-E0183 ; [.0000.0000.0000] # [E0183] VARIATION SELECTOR-148
-E0184 ; [.0000.0000.0000] # [E0184] VARIATION SELECTOR-149
-E0185 ; [.0000.0000.0000] # [E0185] VARIATION SELECTOR-150
-E0186 ; [.0000.0000.0000] # [E0186] VARIATION SELECTOR-151
-E0187 ; [.0000.0000.0000] # [E0187] VARIATION SELECTOR-152
-E0188 ; [.0000.0000.0000] # [E0188] VARIATION SELECTOR-153
-E0189 ; [.0000.0000.0000] # [E0189] VARIATION SELECTOR-154
-E018A ; [.0000.0000.0000] # [E018A] VARIATION SELECTOR-155
-E018B ; [.0000.0000.0000] # [E018B] VARIATION SELECTOR-156
-E018C ; [.0000.0000.0000] # [E018C] VARIATION SELECTOR-157
-E018D ; [.0000.0000.0000] # [E018D] VARIATION SELECTOR-158
-E018E ; [.0000.0000.0000] # [E018E] VARIATION SELECTOR-159
-E018F ; [.0000.0000.0000] # [E018F] VARIATION SELECTOR-160
-E0190 ; [.0000.0000.0000] # [E0190] VARIATION SELECTOR-161
-E0191 ; [.0000.0000.0000] # [E0191] VARIATION SELECTOR-162
-E0192 ; [.0000.0000.0000] # [E0192] VARIATION SELECTOR-163
-E0193 ; [.0000.0000.0000] # [E0193] VARIATION SELECTOR-164
-E0194 ; [.0000.0000.0000] # [E0194] VARIATION SELECTOR-165
-E0195 ; [.0000.0000.0000] # [E0195] VARIATION SELECTOR-166
-E0196 ; [.0000.0000.0000] # [E0196] VARIATION SELECTOR-167
-E0197 ; [.0000.0000.0000] # [E0197] VARIATION SELECTOR-168
-E0198 ; [.0000.0000.0000] # [E0198] VARIATION SELECTOR-169
-E0199 ; [.0000.0000.0000] # [E0199] VARIATION SELECTOR-170
-E019A ; [.0000.0000.0000] # [E019A] VARIATION SELECTOR-171
-E019B ; [.0000.0000.0000] # [E019B] VARIATION SELECTOR-172
-E019C ; [.0000.0000.0000] # [E019C] VARIATION SELECTOR-173
-E019D ; [.0000.0000.0000] # [E019D] VARIATION SELECTOR-174
-E019E ; [.0000.0000.0000] # [E019E] VARIATION SELECTOR-175
-E019F ; [.0000.0000.0000] # [E019F] VARIATION SELECTOR-176
-E01A0 ; [.0000.0000.0000] # [E01A0] VARIATION SELECTOR-177
-E01A1 ; [.0000.0000.0000] # [E01A1] VARIATION SELECTOR-178
-E01A2 ; [.0000.0000.0000] # [E01A2] VARIATION SELECTOR-179
-E01A3 ; [.0000.0000.0000] # [E01A3] VARIATION SELECTOR-180
-E01A4 ; [.0000.0000.0000] # [E01A4] VARIATION SELECTOR-181
-E01A5 ; [.0000.0000.0000] # [E01A5] VARIATION SELECTOR-182
-E01A6 ; [.0000.0000.0000] # [E01A6] VARIATION SELECTOR-183
-E01A7 ; [.0000.0000.0000] # [E01A7] VARIATION SELECTOR-184
-E01A8 ; [.0000.0000.0000] # [E01A8] VARIATION SELECTOR-185
-E01A9 ; [.0000.0000.0000] # [E01A9] VARIATION SELECTOR-186
-E01AA ; [.0000.0000.0000] # [E01AA] VARIATION SELECTOR-187
-E01AB ; [.0000.0000.0000] # [E01AB] VARIATION SELECTOR-188
-E01AC ; [.0000.0000.0000] # [E01AC] VARIATION SELECTOR-189
-E01AD ; [.0000.0000.0000] # [E01AD] VARIATION SELECTOR-190
-E01AE ; [.0000.0000.0000] # [E01AE] VARIATION SELECTOR-191
-E01AF ; [.0000.0000.0000] # [E01AF] VARIATION SELECTOR-192
-E01B0 ; [.0000.0000.0000] # [E01B0] VARIATION SELECTOR-193
-E01B1 ; [.0000.0000.0000] # [E01B1] VARIATION SELECTOR-194
-E01B2 ; [.0000.0000.0000] # [E01B2] VARIATION SELECTOR-195
-E01B3 ; [.0000.0000.0000] # [E01B3] VARIATION SELECTOR-196
-E01B4 ; [.0000.0000.0000] # [E01B4] VARIATION SELECTOR-197
-E01B5 ; [.0000.0000.0000] # [E01B5] VARIATION SELECTOR-198
-E01B6 ; [.0000.0000.0000] # [E01B6] VARIATION SELECTOR-199
-E01B7 ; [.0000.0000.0000] # [E01B7] VARIATION SELECTOR-200
-E01B8 ; [.0000.0000.0000] # [E01B8] VARIATION SELECTOR-201
-E01B9 ; [.0000.0000.0000] # [E01B9] VARIATION SELECTOR-202
-E01BA ; [.0000.0000.0000] # [E01BA] VARIATION SELECTOR-203
-E01BB ; [.0000.0000.0000] # [E01BB] VARIATION SELECTOR-204
-E01BC ; [.0000.0000.0000] # [E01BC] VARIATION SELECTOR-205
-E01BD ; [.0000.0000.0000] # [E01BD] VARIATION SELECTOR-206
-E01BE ; [.0000.0000.0000] # [E01BE] VARIATION SELECTOR-207
-E01BF ; [.0000.0000.0000] # [E01BF] VARIATION SELECTOR-208
-E01C0 ; [.0000.0000.0000] # [E01C0] VARIATION SELECTOR-209
-E01C1 ; [.0000.0000.0000] # [E01C1] VARIATION SELECTOR-210
-E01C2 ; [.0000.0000.0000] # [E01C2] VARIATION SELECTOR-211
-E01C3 ; [.0000.0000.0000] # [E01C3] VARIATION SELECTOR-212
-E01C4 ; [.0000.0000.0000] # [E01C4] VARIATION SELECTOR-213
-E01C5 ; [.0000.0000.0000] # [E01C5] VARIATION SELECTOR-214
-E01C6 ; [.0000.0000.0000] # [E01C6] VARIATION SELECTOR-215
-E01C7 ; [.0000.0000.0000] # [E01C7] VARIATION SELECTOR-216
-E01C8 ; [.0000.0000.0000] # [E01C8] VARIATION SELECTOR-217
-E01C9 ; [.0000.0000.0000] # [E01C9] VARIATION SELECTOR-218
-E01CA ; [.0000.0000.0000] # [E01CA] VARIATION SELECTOR-219
-E01CB ; [.0000.0000.0000] # [E01CB] VARIATION SELECTOR-220
-E01CC ; [.0000.0000.0000] # [E01CC] VARIATION SELECTOR-221
-E01CD ; [.0000.0000.0000] # [E01CD] VARIATION SELECTOR-222
-E01CE ; [.0000.0000.0000] # [E01CE] VARIATION SELECTOR-223
-E01CF ; [.0000.0000.0000] # [E01CF] VARIATION SELECTOR-224
-E01D0 ; [.0000.0000.0000] # [E01D0] VARIATION SELECTOR-225
-E01D1 ; [.0000.0000.0000] # [E01D1] VARIATION SELECTOR-226
-E01D2 ; [.0000.0000.0000] # [E01D2] VARIATION SELECTOR-227
-E01D3 ; [.0000.0000.0000] # [E01D3] VARIATION SELECTOR-228
-E01D4 ; [.0000.0000.0000] # [E01D4] VARIATION SELECTOR-229
-E01D5 ; [.0000.0000.0000] # [E01D5] VARIATION SELECTOR-230
-E01D6 ; [.0000.0000.0000] # [E01D6] VARIATION SELECTOR-231
-E01D7 ; [.0000.0000.0000] # [E01D7] VARIATION SELECTOR-232
-E01D8 ; [.0000.0000.0000] # [E01D8] VARIATION SELECTOR-233
-E01D9 ; [.0000.0000.0000] # [E01D9] VARIATION SELECTOR-234
-E01DA ; [.0000.0000.0000] # [E01DA] VARIATION SELECTOR-235
-E01DB ; [.0000.0000.0000] # [E01DB] VARIATION SELECTOR-236
-E01DC ; [.0000.0000.0000] # [E01DC] VARIATION SELECTOR-237
-E01DD ; [.0000.0000.0000] # [E01DD] VARIATION SELECTOR-238
-E01DE ; [.0000.0000.0000] # [E01DE] VARIATION SELECTOR-239
-E01DF ; [.0000.0000.0000] # [E01DF] VARIATION SELECTOR-240
-E01E0 ; [.0000.0000.0000] # [E01E0] VARIATION SELECTOR-241
-E01E1 ; [.0000.0000.0000] # [E01E1] VARIATION SELECTOR-242
-E01E2 ; [.0000.0000.0000] # [E01E2] VARIATION SELECTOR-243
-E01E3 ; [.0000.0000.0000] # [E01E3] VARIATION SELECTOR-244
-E01E4 ; [.0000.0000.0000] # [E01E4] VARIATION SELECTOR-245
-E01E5 ; [.0000.0000.0000] # [E01E5] VARIATION SELECTOR-246
-E01E6 ; [.0000.0000.0000] # [E01E6] VARIATION SELECTOR-247
-E01E7 ; [.0000.0000.0000] # [E01E7] VARIATION SELECTOR-248
-E01E8 ; [.0000.0000.0000] # [E01E8] VARIATION SELECTOR-249
-E01E9 ; [.0000.0000.0000] # [E01E9] VARIATION SELECTOR-250
-E01EA ; [.0000.0000.0000] # [E01EA] VARIATION SELECTOR-251
-E01EB ; [.0000.0000.0000] # [E01EB] VARIATION SELECTOR-252
-E01EC ; [.0000.0000.0000] # [E01EC] VARIATION SELECTOR-253
-E01ED ; [.0000.0000.0000] # [E01ED] VARIATION SELECTOR-254
-E01EE ; [.0000.0000.0000] # [E01EE] VARIATION SELECTOR-255
-E01EF ; [.0000.0000.0000] # [E01EF] VARIATION SELECTOR-256
+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)
+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)
+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)
+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)
+00AD ; [.0000.0000.0000] # SOFT HYPHEN
+061C ; [.0000.0000.0000] # ARABIC LETTER MARK
+070F ; [.0000.0000.0000] # SYRIAC ABBREVIATION MARK
+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
+180E ; [.0000.0000.0000] # MONGOLIAN VOWEL SEPARATOR
+200B ; [.0000.0000.0000] # ZERO WIDTH SPACE
+200C ; [.0000.0000.0000] # ZERO WIDTH NON-JOINER
+200D ; [.0000.0000.0000] # ZERO WIDTH JOINER
+200E ; [.0000.0000.0000] # LEFT-TO-RIGHT MARK
+200F ; [.0000.0000.0000] # RIGHT-TO-LEFT MARK
+202A ; [.0000.0000.0000] # LEFT-TO-RIGHT EMBEDDING
+202B ; [.0000.0000.0000] # RIGHT-TO-LEFT EMBEDDING
+202C ; [.0000.0000.0000] # POP DIRECTIONAL FORMATTING
+202D ; [.0000.0000.0000] # LEFT-TO-RIGHT OVERRIDE
+202E ; [.0000.0000.0000] # RIGHT-TO-LEFT OVERRIDE
+2060 ; [.0000.0000.0000] # WORD JOINER
+2066 ; [.0000.0000.0000] # LEFT-TO-RIGHT ISOLATE
+2067 ; [.0000.0000.0000] # RIGHT-TO-LEFT ISOLATE
+2068 ; [.0000.0000.0000] # FIRST STRONG ISOLATE
+2069 ; [.0000.0000.0000] # POP DIRECTIONAL ISOLATE
+206A ; [.0000.0000.0000] # INHIBIT SYMMETRIC SWAPPING
+206B ; [.0000.0000.0000] # ACTIVATE SYMMETRIC SWAPPING
+206C ; [.0000.0000.0000] # INHIBIT ARABIC FORM SHAPING
+206D ; [.0000.0000.0000] # ACTIVATE ARABIC FORM SHAPING
+206E ; [.0000.0000.0000] # NATIONAL DIGIT SHAPES
+206F ; [.0000.0000.0000] # NOMINAL DIGIT SHAPES
+FE00 ; [.0000.0000.0000] # VARIATION SELECTOR-1
+FE01 ; [.0000.0000.0000] # VARIATION SELECTOR-2
+FE02 ; [.0000.0000.0000] # VARIATION SELECTOR-3
+FE03 ; [.0000.0000.0000] # VARIATION SELECTOR-4
+FE04 ; [.0000.0000.0000] # VARIATION SELECTOR-5
+FE05 ; [.0000.0000.0000] # VARIATION SELECTOR-6
+FE06 ; [.0000.0000.0000] # VARIATION SELECTOR-7
+FE07 ; [.0000.0000.0000] # VARIATION SELECTOR-8
+FE08 ; [.0000.0000.0000] # VARIATION SELECTOR-9
+FE09 ; [.0000.0000.0000] # VARIATION SELECTOR-10
+FE0A ; [.0000.0000.0000] # VARIATION SELECTOR-11
+FE0B ; [.0000.0000.0000] # VARIATION SELECTOR-12
+FE0C ; [.0000.0000.0000] # VARIATION SELECTOR-13
+FE0D ; [.0000.0000.0000] # VARIATION SELECTOR-14
+FE0E ; [.0000.0000.0000] # VARIATION SELECTOR-15
+FE0F ; [.0000.0000.0000] # VARIATION SELECTOR-16
+FEFF ; [.0000.0000.0000] # ZERO WIDTH NO-BREAK SPACE
+FFF9 ; [.0000.0000.0000] # INTERLINEAR ANNOTATION ANCHOR
+FFFA ; [.0000.0000.0000] # INTERLINEAR ANNOTATION SEPARATOR
+FFFB ; [.0000.0000.0000] # INTERLINEAR ANNOTATION TERMINATOR
+1BCA0 ; [.0000.0000.0000] # SHORTHAND FORMAT LETTER OVERLAP
+1BCA1 ; [.0000.0000.0000] # SHORTHAND FORMAT CONTINUING OVERLAP
+1BCA2 ; [.0000.0000.0000] # SHORTHAND FORMAT DOWN STEP
+1BCA3 ; [.0000.0000.0000] # SHORTHAND FORMAT UP STEP
+1D173 ; [.0000.0000.0000] # MUSICAL SYMBOL BEGIN BEAM
+1D174 ; [.0000.0000.0000] # MUSICAL SYMBOL END BEAM
+1D175 ; [.0000.0000.0000] # MUSICAL SYMBOL BEGIN TIE
+1D176 ; [.0000.0000.0000] # MUSICAL SYMBOL END TIE
+1D177 ; [.0000.0000.0000] # MUSICAL SYMBOL BEGIN SLUR
+1D178 ; [.0000.0000.0000] # MUSICAL SYMBOL END SLUR
+1D179 ; [.0000.0000.0000] # MUSICAL SYMBOL BEGIN PHRASE
+1D17A ; [.0000.0000.0000] # MUSICAL SYMBOL END PHRASE
+E0001 ; [.0000.0000.0000] # LANGUAGE TAG
+E0020 ; [.0000.0000.0000] # TAG SPACE
+E0021 ; [.0000.0000.0000] # TAG EXCLAMATION MARK
+E0022 ; [.0000.0000.0000] # TAG QUOTATION MARK
+E0023 ; [.0000.0000.0000] # TAG NUMBER SIGN
+E0024 ; [.0000.0000.0000] # TAG DOLLAR SIGN
+E0025 ; [.0000.0000.0000] # TAG PERCENT SIGN
+E0026 ; [.0000.0000.0000] # TAG AMPERSAND
+E0027 ; [.0000.0000.0000] # TAG APOSTROPHE
+E0028 ; [.0000.0000.0000] # TAG LEFT PARENTHESIS
+E0029 ; [.0000.0000.0000] # TAG RIGHT PARENTHESIS
+E002A ; [.0000.0000.0000] # TAG ASTERISK
+E002B ; [.0000.0000.0000] # TAG PLUS SIGN
+E002C ; [.0000.0000.0000] # TAG COMMA
+E002D ; [.0000.0000.0000] # TAG HYPHEN-MINUS
+E002E ; [.0000.0000.0000] # TAG FULL STOP
+E002F ; [.0000.0000.0000] # TAG SOLIDUS
+E0030 ; [.0000.0000.0000] # TAG DIGIT ZERO
+E0031 ; [.0000.0000.0000] # TAG DIGIT ONE
+E0032 ; [.0000.0000.0000] # TAG DIGIT TWO
+E0033 ; [.0000.0000.0000] # TAG DIGIT THREE
+E0034 ; [.0000.0000.0000] # TAG DIGIT FOUR
+E0035 ; [.0000.0000.0000] # TAG DIGIT FIVE
+E0036 ; [.0000.0000.0000] # TAG DIGIT SIX
+E0037 ; [.0000.0000.0000] # TAG DIGIT SEVEN
+E0038 ; [.0000.0000.0000] # TAG DIGIT EIGHT
+E0039 ; [.0000.0000.0000] # TAG DIGIT NINE
+E003A ; [.0000.0000.0000] # TAG COLON
+E003B ; [.0000.0000.0000] # TAG SEMICOLON
+E003C ; [.0000.0000.0000] # TAG LESS-THAN SIGN
+E003D ; [.0000.0000.0000] # TAG EQUALS SIGN
+E003E ; [.0000.0000.0000] # TAG GREATER-THAN SIGN
+E003F ; [.0000.0000.0000] # TAG QUESTION MARK
+E0040 ; [.0000.0000.0000] # TAG COMMERCIAL AT
+E0041 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER A
+E0042 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER B
+E0043 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER C
+E0044 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER D
+E0045 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER E
+E0046 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER F
+E0047 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER G
+E0048 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER H
+E0049 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER I
+E004A ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER J
+E004B ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER K
+E004C ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER L
+E004D ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER M
+E004E ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER N
+E004F ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER O
+E0050 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER P
+E0051 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER Q
+E0052 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER R
+E0053 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER S
+E0054 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER T
+E0055 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER U
+E0056 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER V
+E0057 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER W
+E0058 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER X
+E0059 ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER Y
+E005A ; [.0000.0000.0000] # TAG LATIN CAPITAL LETTER Z
+E005B ; [.0000.0000.0000] # TAG LEFT SQUARE BRACKET
+E005C ; [.0000.0000.0000] # TAG REVERSE SOLIDUS
+E005D ; [.0000.0000.0000] # TAG RIGHT SQUARE BRACKET
+E005E ; [.0000.0000.0000] # TAG CIRCUMFLEX ACCENT
+E005F ; [.0000.0000.0000] # TAG LOW LINE
+E0060 ; [.0000.0000.0000] # TAG GRAVE ACCENT
+E0061 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER A
+E0062 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER B
+E0063 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER C
+E0064 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER D
+E0065 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER E
+E0066 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER F
+E0067 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER G
+E0068 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER H
+E0069 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER I
+E006A ; [.0000.0000.0000] # TAG LATIN SMALL LETTER J
+E006B ; [.0000.0000.0000] # TAG LATIN SMALL LETTER K
+E006C ; [.0000.0000.0000] # TAG LATIN SMALL LETTER L
+E006D ; [.0000.0000.0000] # TAG LATIN SMALL LETTER M
+E006E ; [.0000.0000.0000] # TAG LATIN SMALL LETTER N
+E006F ; [.0000.0000.0000] # TAG LATIN SMALL LETTER O
+E0070 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER P
+E0071 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER Q
+E0072 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER R
+E0073 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER S
+E0074 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER T
+E0075 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER U
+E0076 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER V
+E0077 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER W
+E0078 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER X
+E0079 ; [.0000.0000.0000] # TAG LATIN SMALL LETTER Y
+E007A ; [.0000.0000.0000] # TAG LATIN SMALL LETTER Z
+E007B ; [.0000.0000.0000] # TAG LEFT CURLY BRACKET
+E007C ; [.0000.0000.0000] # TAG VERTICAL LINE
+E007D ; [.0000.0000.0000] # TAG RIGHT CURLY BRACKET
+E007E ; [.0000.0000.0000] # TAG TILDE
+E007F ; [.0000.0000.0000] # CANCEL TAG
+E0100 ; [.0000.0000.0000] # VARIATION SELECTOR-17
+E0101 ; [.0000.0000.0000] # VARIATION SELECTOR-18
+E0102 ; [.0000.0000.0000] # VARIATION SELECTOR-19
+E0103 ; [.0000.0000.0000] # VARIATION SELECTOR-20
+E0104 ; [.0000.0000.0000] # VARIATION SELECTOR-21
+E0105 ; [.0000.0000.0000] # VARIATION SELECTOR-22
+E0106 ; [.0000.0000.0000] # VARIATION SELECTOR-23
+E0107 ; [.0000.0000.0000] # VARIATION SELECTOR-24
+E0108 ; [.0000.0000.0000] # VARIATION SELECTOR-25
+E0109 ; [.0000.0000.0000] # VARIATION SELECTOR-26
+E010A ; [.0000.0000.0000] # VARIATION SELECTOR-27
+E010B ; [.0000.0000.0000] # VARIATION SELECTOR-28
+E010C ; [.0000.0000.0000] # VARIATION SELECTOR-29
+E010D ; [.0000.0000.0000] # VARIATION SELECTOR-30
+E010E ; [.0000.0000.0000] # VARIATION SELECTOR-31
+E010F ; [.0000.0000.0000] # VARIATION SELECTOR-32
+E0110 ; [.0000.0000.0000] # VARIATION SELECTOR-33
+E0111 ; [.0000.0000.0000] # VARIATION SELECTOR-34
+E0112 ; [.0000.0000.0000] # VARIATION SELECTOR-35
+E0113 ; [.0000.0000.0000] # VARIATION SELECTOR-36
+E0114 ; [.0000.0000.0000] # VARIATION SELECTOR-37
+E0115 ; [.0000.0000.0000] # VARIATION SELECTOR-38
+E0116 ; [.0000.0000.0000] # VARIATION SELECTOR-39
+E0117 ; [.0000.0000.0000] # VARIATION SELECTOR-40
+E0118 ; [.0000.0000.0000] # VARIATION SELECTOR-41
+E0119 ; [.0000.0000.0000] # VARIATION SELECTOR-42
+E011A ; [.0000.0000.0000] # VARIATION SELECTOR-43
+E011B ; [.0000.0000.0000] # VARIATION SELECTOR-44
+E011C ; [.0000.0000.0000] # VARIATION SELECTOR-45
+E011D ; [.0000.0000.0000] # VARIATION SELECTOR-46
+E011E ; [.0000.0000.0000] # VARIATION SELECTOR-47
+E011F ; [.0000.0000.0000] # VARIATION SELECTOR-48
+E0120 ; [.0000.0000.0000] # VARIATION SELECTOR-49
+E0121 ; [.0000.0000.0000] # VARIATION SELECTOR-50
+E0122 ; [.0000.0000.0000] # VARIATION SELECTOR-51
+E0123 ; [.0000.0000.0000] # VARIATION SELECTOR-52
+E0124 ; [.0000.0000.0000] # VARIATION SELECTOR-53
+E0125 ; [.0000.0000.0000] # VARIATION SELECTOR-54
+E0126 ; [.0000.0000.0000] # VARIATION SELECTOR-55
+E0127 ; [.0000.0000.0000] # VARIATION SELECTOR-56
+E0128 ; [.0000.0000.0000] # VARIATION SELECTOR-57
+E0129 ; [.0000.0000.0000] # VARIATION SELECTOR-58
+E012A ; [.0000.0000.0000] # VARIATION SELECTOR-59
+E012B ; [.0000.0000.0000] # VARIATION SELECTOR-60
+E012C ; [.0000.0000.0000] # VARIATION SELECTOR-61
+E012D ; [.0000.0000.0000] # VARIATION SELECTOR-62
+E012E ; [.0000.0000.0000] # VARIATION SELECTOR-63
+E012F ; [.0000.0000.0000] # VARIATION SELECTOR-64
+E0130 ; [.0000.0000.0000] # VARIATION SELECTOR-65
+E0131 ; [.0000.0000.0000] # VARIATION SELECTOR-66
+E0132 ; [.0000.0000.0000] # VARIATION SELECTOR-67
+E0133 ; [.0000.0000.0000] # VARIATION SELECTOR-68
+E0134 ; [.0000.0000.0000] # VARIATION SELECTOR-69
+E0135 ; [.0000.0000.0000] # VARIATION SELECTOR-70
+E0136 ; [.0000.0000.0000] # VARIATION SELECTOR-71
+E0137 ; [.0000.0000.0000] # VARIATION SELECTOR-72
+E0138 ; [.0000.0000.0000] # VARIATION SELECTOR-73
+E0139 ; [.0000.0000.0000] # VARIATION SELECTOR-74
+E013A ; [.0000.0000.0000] # VARIATION SELECTOR-75
+E013B ; [.0000.0000.0000] # VARIATION SELECTOR-76
+E013C ; [.0000.0000.0000] # VARIATION SELECTOR-77
+E013D ; [.0000.0000.0000] # VARIATION SELECTOR-78
+E013E ; [.0000.0000.0000] # VARIATION SELECTOR-79
+E013F ; [.0000.0000.0000] # VARIATION SELECTOR-80
+E0140 ; [.0000.0000.0000] # VARIATION SELECTOR-81
+E0141 ; [.0000.0000.0000] # VARIATION SELECTOR-82
+E0142 ; [.0000.0000.0000] # VARIATION SELECTOR-83
+E0143 ; [.0000.0000.0000] # VARIATION SELECTOR-84
+E0144 ; [.0000.0000.0000] # VARIATION SELECTOR-85
+E0145 ; [.0000.0000.0000] # VARIATION SELECTOR-86
+E0146 ; [.0000.0000.0000] # VARIATION SELECTOR-87
+E0147 ; [.0000.0000.0000] # VARIATION SELECTOR-88
+E0148 ; [.0000.0000.0000] # VARIATION SELECTOR-89
+E0149 ; [.0000.0000.0000] # VARIATION SELECTOR-90
+E014A ; [.0000.0000.0000] # VARIATION SELECTOR-91
+E014B ; [.0000.0000.0000] # VARIATION SELECTOR-92
+E014C ; [.0000.0000.0000] # VARIATION SELECTOR-93
+E014D ; [.0000.0000.0000] # VARIATION SELECTOR-94
+E014E ; [.0000.0000.0000] # VARIATION SELECTOR-95
+E014F ; [.0000.0000.0000] # VARIATION SELECTOR-96
+E0150 ; [.0000.0000.0000] # VARIATION SELECTOR-97
+E0151 ; [.0000.0000.0000] # VARIATION SELECTOR-98
+E0152 ; [.0000.0000.0000] # VARIATION SELECTOR-99
+E0153 ; [.0000.0000.0000] # VARIATION SELECTOR-100
+E0154 ; [.0000.0000.0000] # VARIATION SELECTOR-101
+E0155 ; [.0000.0000.0000] # VARIATION SELECTOR-102
+E0156 ; [.0000.0000.0000] # VARIATION SELECTOR-103
+E0157 ; [.0000.0000.0000] # VARIATION SELECTOR-104
+E0158 ; [.0000.0000.0000] # VARIATION SELECTOR-105
+E0159 ; [.0000.0000.0000] # VARIATION SELECTOR-106
+E015A ; [.0000.0000.0000] # VARIATION SELECTOR-107
+E015B ; [.0000.0000.0000] # VARIATION SELECTOR-108
+E015C ; [.0000.0000.0000] # VARIATION SELECTOR-109
+E015D ; [.0000.0000.0000] # VARIATION SELECTOR-110
+E015E ; [.0000.0000.0000] # VARIATION SELECTOR-111
+E015F ; [.0000.0000.0000] # VARIATION SELECTOR-112
+E0160 ; [.0000.0000.0000] # VARIATION SELECTOR-113
+E0161 ; [.0000.0000.0000] # VARIATION SELECTOR-114
+E0162 ; [.0000.0000.0000] # VARIATION SELECTOR-115
+E0163 ; [.0000.0000.0000] # VARIATION SELECTOR-116
+E0164 ; [.0000.0000.0000] # VARIATION SELECTOR-117
+E0165 ; [.0000.0000.0000] # VARIATION SELECTOR-118
+E0166 ; [.0000.0000.0000] # VARIATION SELECTOR-119
+E0167 ; [.0000.0000.0000] # VARIATION SELECTOR-120
+E0168 ; [.0000.0000.0000] # VARIATION SELECTOR-121
+E0169 ; [.0000.0000.0000] # VARIATION SELECTOR-122
+E016A ; [.0000.0000.0000] # VARIATION SELECTOR-123
+E016B ; [.0000.0000.0000] # VARIATION SELECTOR-124
+E016C ; [.0000.0000.0000] # VARIATION SELECTOR-125
+E016D ; [.0000.0000.0000] # VARIATION SELECTOR-126
+E016E ; [.0000.0000.0000] # VARIATION SELECTOR-127
+E016F ; [.0000.0000.0000] # VARIATION SELECTOR-128
+E0170 ; [.0000.0000.0000] # VARIATION SELECTOR-129
+E0171 ; [.0000.0000.0000] # VARIATION SELECTOR-130
+E0172 ; [.0000.0000.0000] # VARIATION SELECTOR-131
+E0173 ; [.0000.0000.0000] # VARIATION SELECTOR-132
+E0174 ; [.0000.0000.0000] # VARIATION SELECTOR-133
+E0175 ; [.0000.0000.0000] # VARIATION SELECTOR-134
+E0176 ; [.0000.0000.0000] # VARIATION SELECTOR-135
+E0177 ; [.0000.0000.0000] # VARIATION SELECTOR-136
+E0178 ; [.0000.0000.0000] # VARIATION SELECTOR-137
+E0179 ; [.0000.0000.0000] # VARIATION SELECTOR-138
+E017A ; [.0000.0000.0000] # VARIATION SELECTOR-139
+E017B ; [.0000.0000.0000] # VARIATION SELECTOR-140
+E017C ; [.0000.0000.0000] # VARIATION SELECTOR-141
+E017D ; [.0000.0000.0000] # VARIATION SELECTOR-142
+E017E ; [.0000.0000.0000] # VARIATION SELECTOR-143
+E017F ; [.0000.0000.0000] # VARIATION SELECTOR-144
+E0180 ; [.0000.0000.0000] # VARIATION SELECTOR-145
+E0181 ; [.0000.0000.0000] # VARIATION SELECTOR-146
+E0182 ; [.0000.0000.0000] # VARIATION SELECTOR-147
+E0183 ; [.0000.0000.0000] # VARIATION SELECTOR-148
+E0184 ; [.0000.0000.0000] # VARIATION SELECTOR-149
+E0185 ; [.0000.0000.0000] # VARIATION SELECTOR-150
+E0186 ; [.0000.0000.0000] # VARIATION SELECTOR-151
+E0187 ; [.0000.0000.0000] # VARIATION SELECTOR-152
+E0188 ; [.0000.0000.0000] # VARIATION SELECTOR-153
+E0189 ; [.0000.0000.0000] # VARIATION SELECTOR-154
+E018A ; [.0000.0000.0000] # VARIATION SELECTOR-155
+E018B ; [.0000.0000.0000] # VARIATION SELECTOR-156
+E018C ; [.0000.0000.0000] # VARIATION SELECTOR-157
+E018D ; [.0000.0000.0000] # VARIATION SELECTOR-158
+E018E ; [.0000.0000.0000] # VARIATION SELECTOR-159
+E018F ; [.0000.0000.0000] # VARIATION SELECTOR-160
+E0190 ; [.0000.0000.0000] # VARIATION SELECTOR-161
+E0191 ; [.0000.0000.0000] # VARIATION SELECTOR-162
+E0192 ; [.0000.0000.0000] # VARIATION SELECTOR-163
+E0193 ; [.0000.0000.0000] # VARIATION SELECTOR-164
+E0194 ; [.0000.0000.0000] # VARIATION SELECTOR-165
+E0195 ; [.0000.0000.0000] # VARIATION SELECTOR-166
+E0196 ; [.0000.0000.0000] # VARIATION SELECTOR-167
+E0197 ; [.0000.0000.0000] # VARIATION SELECTOR-168
+E0198 ; [.0000.0000.0000] # VARIATION SELECTOR-169
+E0199 ; [.0000.0000.0000] # VARIATION SELECTOR-170
+E019A ; [.0000.0000.0000] # VARIATION SELECTOR-171
+E019B ; [.0000.0000.0000] # VARIATION SELECTOR-172
+E019C ; [.0000.0000.0000] # VARIATION SELECTOR-173
+E019D ; [.0000.0000.0000] # VARIATION SELECTOR-174
+E019E ; [.0000.0000.0000] # VARIATION SELECTOR-175
+E019F ; [.0000.0000.0000] # VARIATION SELECTOR-176
+E01A0 ; [.0000.0000.0000] # VARIATION SELECTOR-177
+E01A1 ; [.0000.0000.0000] # VARIATION SELECTOR-178
+E01A2 ; [.0000.0000.0000] # VARIATION SELECTOR-179
+E01A3 ; [.0000.0000.0000] # VARIATION SELECTOR-180
+E01A4 ; [.0000.0000.0000] # VARIATION SELECTOR-181
+E01A5 ; [.0000.0000.0000] # VARIATION SELECTOR-182
+E01A6 ; [.0000.0000.0000] # VARIATION SELECTOR-183
+E01A7 ; [.0000.0000.0000] # VARIATION SELECTOR-184
+E01A8 ; [.0000.0000.0000] # VARIATION SELECTOR-185
+E01A9 ; [.0000.0000.0000] # VARIATION SELECTOR-186
+E01AA ; [.0000.0000.0000] # VARIATION SELECTOR-187
+E01AB ; [.0000.0000.0000] # VARIATION SELECTOR-188
+E01AC ; [.0000.0000.0000] # VARIATION SELECTOR-189
+E01AD ; [.0000.0000.0000] # VARIATION SELECTOR-190
+E01AE ; [.0000.0000.0000] # VARIATION SELECTOR-191
+E01AF ; [.0000.0000.0000] # VARIATION SELECTOR-192
+E01B0 ; [.0000.0000.0000] # VARIATION SELECTOR-193
+E01B1 ; [.0000.0000.0000] # VARIATION SELECTOR-194
+E01B2 ; [.0000.0000.0000] # VARIATION SELECTOR-195
+E01B3 ; [.0000.0000.0000] # VARIATION SELECTOR-196
+E01B4 ; [.0000.0000.0000] # VARIATION SELECTOR-197
+E01B5 ; [.0000.0000.0000] # VARIATION SELECTOR-198
+E01B6 ; [.0000.0000.0000] # VARIATION SELECTOR-199
+E01B7 ; [.0000.0000.0000] # VARIATION SELECTOR-200
+E01B8 ; [.0000.0000.0000] # VARIATION SELECTOR-201
+E01B9 ; [.0000.0000.0000] # VARIATION SELECTOR-202
+E01BA ; [.0000.0000.0000] # VARIATION SELECTOR-203
+E01BB ; [.0000.0000.0000] # VARIATION SELECTOR-204
+E01BC ; [.0000.0000.0000] # VARIATION SELECTOR-205
+E01BD ; [.0000.0000.0000] # VARIATION SELECTOR-206
+E01BE ; [.0000.0000.0000] # VARIATION SELECTOR-207
+E01BF ; [.0000.0000.0000] # VARIATION SELECTOR-208
+E01C0 ; [.0000.0000.0000] # VARIATION SELECTOR-209
+E01C1 ; [.0000.0000.0000] # VARIATION SELECTOR-210
+E01C2 ; [.0000.0000.0000] # VARIATION SELECTOR-211
+E01C3 ; [.0000.0000.0000] # VARIATION SELECTOR-212
+E01C4 ; [.0000.0000.0000] # VARIATION SELECTOR-213
+E01C5 ; [.0000.0000.0000] # VARIATION SELECTOR-214
+E01C6 ; [.0000.0000.0000] # VARIATION SELECTOR-215
+E01C7 ; [.0000.0000.0000] # VARIATION SELECTOR-216
+E01C8 ; [.0000.0000.0000] # VARIATION SELECTOR-217
+E01C9 ; [.0000.0000.0000] # VARIATION SELECTOR-218
+E01CA ; [.0000.0000.0000] # VARIATION SELECTOR-219
+E01CB ; [.0000.0000.0000] # VARIATION SELECTOR-220
+E01CC ; [.0000.0000.0000] # VARIATION SELECTOR-221
+E01CD ; [.0000.0000.0000] # VARIATION SELECTOR-222
+E01CE ; [.0000.0000.0000] # VARIATION SELECTOR-223
+E01CF ; [.0000.0000.0000] # VARIATION SELECTOR-224
+E01D0 ; [.0000.0000.0000] # VARIATION SELECTOR-225
+E01D1 ; [.0000.0000.0000] # VARIATION SELECTOR-226
+E01D2 ; [.0000.0000.0000] # VARIATION SELECTOR-227
+E01D3 ; [.0000.0000.0000] # VARIATION SELECTOR-228
+E01D4 ; [.0000.0000.0000] # VARIATION SELECTOR-229
+E01D5 ; [.0000.0000.0000] # VARIATION SELECTOR-230
+E01D6 ; [.0000.0000.0000] # VARIATION SELECTOR-231
+E01D7 ; [.0000.0000.0000] # VARIATION SELECTOR-232
+E01D8 ; [.0000.0000.0000] # VARIATION SELECTOR-233
+E01D9 ; [.0000.0000.0000] # VARIATION SELECTOR-234
+E01DA ; [.0000.0000.0000] # VARIATION SELECTOR-235
+E01DB ; [.0000.0000.0000] # VARIATION SELECTOR-236
+E01DC ; [.0000.0000.0000] # VARIATION SELECTOR-237
+E01DD ; [.0000.0000.0000] # VARIATION SELECTOR-238
+E01DE ; [.0000.0000.0000] # VARIATION SELECTOR-239
+E01DF ; [.0000.0000.0000] # VARIATION SELECTOR-240
+E01E0 ; [.0000.0000.0000] # VARIATION SELECTOR-241
+E01E1 ; [.0000.0000.0000] # VARIATION SELECTOR-242
+E01E2 ; [.0000.0000.0000] # VARIATION SELECTOR-243
+E01E3 ; [.0000.0000.0000] # VARIATION SELECTOR-244
+E01E4 ; [.0000.0000.0000] # VARIATION SELECTOR-245
+E01E5 ; [.0000.0000.0000] # VARIATION SELECTOR-246
+E01E6 ; [.0000.0000.0000] # VARIATION SELECTOR-247
+E01E7 ; [.0000.0000.0000] # VARIATION SELECTOR-248
+E01E8 ; [.0000.0000.0000] # VARIATION SELECTOR-249
+E01E9 ; [.0000.0000.0000] # VARIATION SELECTOR-250
+E01EA ; [.0000.0000.0000] # VARIATION SELECTOR-251
+E01EB ; [.0000.0000.0000] # VARIATION SELECTOR-252
+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)
0020 ; [*0209.0020.0002] # SPACE
-0021 ; [*025D.0020.0002] # EXCLAMATION MARK
-0022 ; [*02F0.0020.0002] # QUOTATION MARK
-0023 ; [*0379.0020.0002] # NUMBER SIGN
-0025 ; [*037A.0020.0002] # PERCENT SIGN
-0026 ; [*0377.0020.0002] # AMPERSAND
-0027 ; [*02E9.0020.0002] # APOSTROPHE
-0028 ; [*02FA.0020.0002] # LEFT PARENTHESIS
-0029 ; [*02FB.0020.0002] # RIGHT PARENTHESIS
-002A ; [*0370.0020.0002] # ASTERISK
-002B ; [*059F.0020.0002] # PLUS SIGN
-002C ; [*0220.0020.0002] # COMMA
+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
002D ; [*020D.0020.0002] # HYPHEN-MINUS
-002E ; [*0272.0020.0002] # FULL STOP
-002F ; [*0375.0020.0002] # SOLIDUS
-003A ; [*0236.0020.0002] # COLON
-003B ; [*0231.0020.0002] # SEMICOLON
-003C ; [*05A3.0020.0002] # LESS-THAN SIGN
-003D ; [*05A4.0020.0002] # EQUALS SIGN
-003E ; [*05A5.0020.0002] # GREATER-THAN SIGN
-003F ; [*0262.0020.0002] # QUESTION MARK
-0040 ; [*036F.0020.0002] # COMMERCIAL AT
-005B ; [*02FC.0020.0002] # LEFT SQUARE BRACKET
-005C ; [*0376.0020.0002] # REVERSE SOLIDUS
-005D ; [*02FD.0020.0002] # RIGHT SQUARE BRACKET
-005E ; [*0415.0020.0002] # CIRCUMFLEX ACCENT
+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
005F ; [*020B.0020.0002] # LOW LINE
-0060 ; [*0412.0020.0002] # GRAVE ACCENT
-007B ; [*02FE.0020.0002] # LEFT CURLY BRACKET
-007C ; [*05A7.0020.0002] # VERTICAL LINE
-007D ; [*02FF.0020.0002] # RIGHT CURLY BRACKET
-007E ; [*05A9.0020.0002] # TILDE
+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)
00A0 ; [*0209.0020.001B] # NO-BREAK SPACE
-00A1 ; [*025E.0020.0002] # INVERTED EXCLAMATION MARK
-00A6 ; [*05A8.0020.0002] # BROKEN BAR
-00A7 ; [*036B.0020.0002] # SECTION SIGN
-00A8 ; [*0419.0020.0002] # DIAERESIS
-00A9 ; [*050F.0020.0002] # COPYRIGHT SIGN
-00AB ; [*02F8.0020.0002] # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-00AC ; [*05A6.0020.0002] # NOT SIGN
-00AE ; [*0510.0020.0002] # REGISTERED SIGN
-00AF ; [*0416.0020.0002] # MACRON
-00B0 ; [*0485.0020.0002] # DEGREE SIGN
-00B1 ; [*05A0.0020.0002] # PLUS-MINUS SIGN
-00B4 ; [*0413.0020.0002] # ACUTE ACCENT
-00B6 ; [*036D.0020.0002] # PILCROW SIGN
-00B7 ; [*0283.0020.0002] # MIDDLE DOT
-00B8 ; [*041C.0020.0002] # CEDILLA
-00BB ; [*02F9.0020.0002] # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-00BF ; [*0263.0020.0002] # INVERTED QUESTION MARK
-00D7 ; [*05A2.0020.0002] # MULTIPLICATION SIGN
-00F7 ; [*05A1.0020.0002] # DIVISION SIGN
-02B9 ; [*0423.0020.0002] # MODIFIER LETTER PRIME
-02BA ; [*0425.0020.0002] # MODIFIER LETTER DOUBLE PRIME
-02C2 ; [*0426.0020.0002] # MODIFIER LETTER LEFT ARROWHEAD
-02C3 ; [*0427.0020.0002] # MODIFIER LETTER RIGHT ARROWHEAD
-02C4 ; [*0428.0020.0002] # MODIFIER LETTER UP ARROWHEAD
-02C5 ; [*0429.0020.0002] # MODIFIER LETTER DOWN ARROWHEAD
-02C6 ; [*042A.0020.0002] # MODIFIER LETTER CIRCUMFLEX ACCENT
-02C7 ; [*042B.0020.0002] # CARON
-02C8 ; [*042C.0020.0002] # MODIFIER LETTER VERTICAL LINE
-02C9 ; [*042D.0020.0002] # MODIFIER LETTER MACRON
-02CA ; [*042E.0020.0002] # MODIFIER LETTER ACUTE ACCENT
-02CB ; [*042F.0020.0002] # MODIFIER LETTER GRAVE ACCENT
-02CC ; [*0430.0020.0002] # MODIFIER LETTER LOW VERTICAL LINE
-02CD ; [*0431.0020.0002] # MODIFIER LETTER LOW MACRON
-02CE ; [*0432.0020.0002] # MODIFIER LETTER LOW GRAVE ACCENT
-02CF ; [*0433.0020.0002] # MODIFIER LETTER LOW ACUTE ACCENT
-02D2 ; [*0434.0020.0002] # MODIFIER LETTER CENTRED RIGHT HALF RING
-02D3 ; [*0435.0020.0002] # MODIFIER LETTER CENTRED LEFT HALF RING
-02D4 ; [*0436.0020.0002] # MODIFIER LETTER UP TACK
-02D5 ; [*0437.0020.0002] # MODIFIER LETTER DOWN TACK
-02D6 ; [*0438.0020.0002] # MODIFIER LETTER PLUS SIGN
-02D7 ; [*0439.0020.0002] # MODIFIER LETTER MINUS SIGN
-02D8 ; [*0417.0020.0002] # BREVE
-02D9 ; [*0418.0020.0002] # DOT ABOVE
-02DA ; [*041A.0020.0002] # RING ABOVE
-02DB ; [*041D.0020.0002] # OGONEK
-02DC ; [*0414.0020.0002] # SMALL TILDE
-02DD ; [*041B.0020.0002] # DOUBLE ACUTE ACCENT
-02DE ; [*043A.0020.0002] # MODIFIER LETTER RHOTIC HOOK
-02DF ; [*043B.0020.0002] # MODIFIER LETTER CROSS ACCENT
-02E5 ; [*043C.0020.0002] # MODIFIER LETTER EXTRA-HIGH TONE BAR
-02E6 ; [*043D.0020.0002] # MODIFIER LETTER HIGH TONE BAR
-02E7 ; [*043E.0020.0002] # MODIFIER LETTER MID TONE BAR
-02E8 ; [*043F.0020.0002] # MODIFIER LETTER LOW TONE BAR
-02E9 ; [*0440.0020.0002] # MODIFIER LETTER EXTRA-LOW TONE BAR
-02EA ; [*0441.0020.0002] # MODIFIER LETTER YIN DEPARTING TONE MARK
-02EB ; [*0442.0020.0002] # MODIFIER LETTER YANG DEPARTING TONE MARK
-02EC ; [*0443.0020.0002] # MODIFIER LETTER VOICING
-02ED ; [*0444.0020.0002] # MODIFIER LETTER UNASPIRATED
-02EF ; [*0445.0020.0002] # MODIFIER LETTER LOW DOWN ARROWHEAD
-02F0 ; [*0446.0020.0002] # MODIFIER LETTER LOW UP ARROWHEAD
-02F1 ; [*0447.0020.0002] # MODIFIER LETTER LOW LEFT ARROWHEAD
-02F2 ; [*0448.0020.0002] # MODIFIER LETTER LOW RIGHT ARROWHEAD
-02F3 ; [*0449.0020.0002] # MODIFIER LETTER LOW RING
-02F4 ; [*044A.0020.0002] # MODIFIER LETTER MIDDLE GRAVE ACCENT
-02F5 ; [*044B.0020.0002] # MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT
-02F6 ; [*044C.0020.0002] # MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT
-02F7 ; [*044D.0020.0002] # MODIFIER LETTER LOW TILDE
-02F8 ; [*044E.0020.0002] # MODIFIER LETTER RAISED COLON
-02F9 ; [*044F.0020.0002] # MODIFIER LETTER BEGIN HIGH TONE
-02FA ; [*0450.0020.0002] # MODIFIER LETTER END HIGH TONE
-02FB ; [*0451.0020.0002] # MODIFIER LETTER BEGIN LOW TONE
-02FC ; [*0452.0020.0002] # MODIFIER LETTER END LOW TONE
-02FD ; [*0453.0020.0002] # MODIFIER LETTER SHELF
-02FE ; [*0454.0020.0002] # MODIFIER LETTER OPEN SHELF
-02FF ; [*0455.0020.0002] # MODIFIER LETTER LOW LEFT ARROW
+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
034F ; [.0000.0000.0000] # COMBINING GRAPHEME JOINER
-0374 ; [*0423.0020.0002] # GREEK NUMERAL SIGN
-0375 ; [*0424.0020.0002] # GREEK LOWER NUMERAL SIGN
-037E ; [*0231.0020.0002] # GREEK QUESTION MARK
-0384 ; [*0413.0020.0002] # GREEK TONOS
-0385 ; [*0419.0020.0002][.0000.0024.0002] # GREEK DIALYTIKA TONOS
-0387 ; [*0283.0020.0002] # GREEK ANO TELEIA
-03F6 ; [*059A.0020.0002] # GREEK REVERSED LUNATE EPSILON SYMBOL
-0482 ; [*0486.0020.0002] # CYRILLIC THOUSANDS SIGN
+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
0488 ; [.0000.0000.0000] # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN
0489 ; [.0000.0000.0000] # COMBINING CYRILLIC MILLIONS SIGN
-055A ; [*03AB.0020.0002] # ARMENIAN APOSTROPHE
-055B ; [*03AC.0020.0002] # ARMENIAN EMPHASIS MARK
-055C ; [*025F.0020.0002] # ARMENIAN EXCLAMATION MARK
-055D ; [*0223.0020.0002] # ARMENIAN COMMA
-055E ; [*0265.0020.0002] # ARMENIAN QUESTION MARK
-055F ; [*03AD.0020.0002] # ARMENIAN ABBREVIATION MARK
-0589 ; [*0237.0020.0002] # ARMENIAN FULL STOP
+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
058A ; [*020E.0020.0002] # ARMENIAN HYPHEN
+058D ; [*04BC.0020.0002] # RIGHT-FACING ARMENIAN ETERNITY SIGN
+058E ; [*04BD.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
@@ -634,48 +640,49 @@ E01EF ; [.0000.0000.0000] # [E01EF] 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 ; [*03AE.0020.0002] # HEBREW PUNCTUATION MAQAF
-05C0 ; [*03AF.0020.0002] # HEBREW PUNCTUATION PASEQ
-05C3 ; [*03B0.0020.0002] # HEBREW PUNCTUATION SOF PASUQ
+05BE ; [*03C0.0020.0002] # HEBREW PUNCTUATION MAQAF
+05C0 ; [*03C1.0020.0002] # HEBREW PUNCTUATION PASEQ
+05C3 ; [*03C2.0020.0002] # HEBREW PUNCTUATION SOF PASUQ
05C4 ; [.0000.0000.0000] # HEBREW MARK UPPER DOT
05C5 ; [.0000.0000.0000] # HEBREW MARK LOWER DOT
-05C6 ; [*03B1.0020.0002] # HEBREW PUNCTUATION NUN HAFUKHA
-05F3 ; [*03B2.0020.0002] # HEBREW PUNCTUATION GERESH
-05F4 ; [*03B3.0020.0002] # HEBREW PUNCTUATION GERSHAYIM
+05C6 ; [*03C3.0020.0002] # HEBREW PUNCTUATION NUN HAFUKHA
+05F3 ; [*03C4.0020.0002] # HEBREW PUNCTUATION GERESH
+05F4 ; [*03C5.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
-0606 ; [*05B6.0020.0002] # ARABIC-INDIC CUBE ROOT
-0607 ; [*05B8.0020.0002] # ARABIC-INDIC FOURTH ROOT
-0608 ; [*0487.0020.0002] # ARABIC RAY
-0609 ; [*037D.0020.0002] # ARABIC-INDIC PER MILLE SIGN
-060A ; [*037F.0020.0002] # ARABIC-INDIC PER TEN THOUSAND SIGN
-060C ; [*0224.0020.0002] # ARABIC COMMA
-060D ; [*0225.0020.0002] # ARABIC DATE SEPARATOR
-060E ; [*048A.0020.0002] # ARABIC POETIC VERSE SIGN
-060F ; [*048B.0020.0002] # ARABIC SIGN MISRA
+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
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
0613 ; [.0000.0000.0000] # ARABIC SIGN RADI ALLAHOU ANHU
0614 ; [.0000.0000.0000] # ARABIC SIGN TAKHALLUS
-0615 ; [.0000.0000.0000] # ARABIC SMALL HIGH TAH
+0615 ; [.0000.0000.0000] # ARABIC SMALL HIGH TAH
0616 ; [.0000.0000.0000] # ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH
0617 ; [.0000.0000.0000] # ARABIC SMALL HIGH ZAIN
0618 ; [.0000.0000.0000] # ARABIC SMALL FATHA
0619 ; [.0000.0000.0000] # ARABIC SMALL DAMMA
061A ; [.0000.0000.0000] # ARABIC SMALL KASRA
-061B ; [*0232.0020.0002] # ARABIC SEMICOLON
-061E ; [*0238.0020.0002] # ARABIC TRIPLE DOT PUNCTUATION MARK
-061F ; [*0266.0020.0002] # ARABIC QUESTION MARK
+061B ; [*0234.0020.0002] # ARABIC SEMICOLON
+061E ; [*023A.0020.0002] # ARABIC TRIPLE DOT PUNCTUATION MARK
+061F ; [*0268.0020.0002] # ARABIC QUESTION MARK
0640 ; [.0000.0000.0000] # ARABIC TATWEEL
-066A ; [*037B.0020.0002] # ARABIC PERCENT SIGN
-066B ; [*0226.0020.0002] # ARABIC DECIMAL SEPARATOR
-066C ; [*0227.0020.0002] # ARABIC THOUSANDS SEPARATOR
-066D ; [*0373.0020.0002] # ARABIC FIVE POINTED STAR
-06D4 ; [*0274.0020.0002] # ARABIC FULL STOP
+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
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
@@ -684,7 +691,7 @@ E01EF ; [.0000.0000.0000] # [E01EF] 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 ; [*048C.0020.0002] # ARABIC START OF RUB EL HIZB
+06DE ; [*04C3.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
@@ -693,25 +700,25 @@ E01EF ; [.0000.0000.0000] # [E01EF] 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 ; [*048D.0020.0002] # ARABIC PLACE OF SAJDAH
+06E9 ; [*04C4.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 ; [*02AE.0020.0002] # SYRIAC END OF PARAGRAPH
-0701 ; [*0275.0020.0002] # SYRIAC SUPRALINEAR FULL STOP
-0702 ; [*0276.0020.0002] # SYRIAC SUBLINEAR FULL STOP
-0703 ; [*0239.0020.0002] # SYRIAC SUPRALINEAR COLON
-0704 ; [*023A.0020.0002] # SYRIAC SUBLINEAR COLON
-0705 ; [*023B.0020.0002] # SYRIAC HORIZONTAL COLON
-0706 ; [*023C.0020.0002] # SYRIAC COLON SKEWED LEFT
-0707 ; [*023D.0020.0002] # SYRIAC COLON SKEWED RIGHT
-0708 ; [*023E.0020.0002] # SYRIAC SUPRALINEAR COLON SKEWED LEFT
-0709 ; [*0267.0020.0002] # SYRIAC SUBLINEAR COLON SKEWED RIGHT
-070A ; [*03B4.0020.0002] # SYRIAC CONTRACTION
-070B ; [*03B5.0020.0002] # SYRIAC HARKLEAN OBELUS
-070C ; [*03B6.0020.0002] # SYRIAC HARKLEAN METOBELUS
-070D ; [*03B7.0020.0002] # SYRIAC HARKLEAN ASTERISCUS
+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
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
@@ -719,27 +726,27 @@ E01EF ; [.0000.0000.0000] # [E01EF] VARIATION SELECTOR-256
0748 ; [.0000.0000.0000] # SYRIAC OBLIQUE LINE BELOW
0749 ; [.0000.0000.0000] # SYRIAC MUSIC
074A ; [.0000.0000.0000] # SYRIAC BARREKH
-07F6 ; [*049F.0020.0002] # NKO SYMBOL OO DENNEN
-07F7 ; [*02AF.0020.0002] # NKO SYMBOL GBAKURUNEN
-07F8 ; [*0228.0020.0002] # NKO COMMA
-07F9 ; [*0260.0020.0002] # NKO EXCLAMATION MARK
+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
07FA ; [.0000.0000.0000] # NKO LAJANYALAN
-0830 ; [*023F.0020.0002] # SAMARITAN PUNCTUATION NEQUDAA
-0831 ; [*0240.0020.0002] # SAMARITAN PUNCTUATION AFSAAQ
-0832 ; [*0241.0020.0002] # SAMARITAN PUNCTUATION ANGED
-0833 ; [*0242.0020.0002] # SAMARITAN PUNCTUATION BAU
-0834 ; [*0243.0020.0002] # SAMARITAN PUNCTUATION ATMAAU
-0835 ; [*0244.0020.0002] # SAMARITAN PUNCTUATION SHIYYAALAA
-0836 ; [*0245.0020.0002] # SAMARITAN ABBREVIATION MARK
-0837 ; [*0246.0020.0002] # SAMARITAN PUNCTUATION MELODIC QITSA
-0838 ; [*0247.0020.0002] # SAMARITAN PUNCTUATION ZIQAA
-0839 ; [*0248.0020.0002] # SAMARITAN PUNCTUATION QITSA
-083A ; [*0249.0020.0002] # SAMARITAN PUNCTUATION ZAEF
-083B ; [*024A.0020.0002] # SAMARITAN PUNCTUATION TURU
-083C ; [*024B.0020.0002] # SAMARITAN PUNCTUATION ARKAANU
-083D ; [*024C.0020.0002] # SAMARITAN PUNCTUATION SOF MASHFAAT
-083E ; [*024D.0020.0002] # SAMARITAN PUNCTUATION ANNAAU
-085E ; [*03B8.0020.0002] # MANDAIC PUNCTUATION
+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
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
@@ -749,259 +756,259 @@ E01EF ; [.0000.0000.0000] # [E01EF] 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 ; [*0286.0020.0002] # DEVANAGARI DANDA
-0965 ; [*0287.0020.0002] # DEVANAGARI DOUBLE DANDA
-0970 ; [*03BA.0020.0002] # DEVANAGARI ABBREVIATION SIGN
-09F4 ; [*14D7.0020.0002] # BENGALI CURRENCY NUMERATOR ONE
-09F5 ; [*14D8.0020.0002] # BENGALI CURRENCY NUMERATOR TWO
-09F6 ; [*14D9.0020.0002] # BENGALI CURRENCY NUMERATOR THREE
-09F7 ; [*14DA.0020.0002] # BENGALI CURRENCY NUMERATOR FOUR
-09F8 ; [*14DB.0020.0002] # BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-09F9 ; [*14DC.0020.0002] # BENGALI CURRENCY DENOMINATOR SIXTEEN
-09FA ; [*04A0.0020.0002] # BENGALI ISSHAR
-0AF0 ; [*03BE.0020.0002] # GUJARATI ABBREVIATION SIGN
-0B70 ; [*04A1.0020.0002] # ORIYA ISSHAR
-0B72 ; [*14DD.0020.0002] # ORIYA FRACTION ONE QUARTER
-0B73 ; [*14DE.0020.0002] # ORIYA FRACTION ONE HALF
-0B74 ; [*14DF.0020.0002] # ORIYA FRACTION THREE QUARTERS
-0B75 ; [*14E0.0020.0002] # ORIYA FRACTION ONE SIXTEENTH
-0B76 ; [*14E1.0020.0002] # ORIYA FRACTION ONE EIGHTH
-0B77 ; [*14E2.0020.0002] # ORIYA FRACTION THREE SIXTEENTHS
-0BF0 ; [*14E9.0020.0002] # TAMIL NUMBER TEN
-0BF1 ; [*14EA.0020.0002] # TAMIL NUMBER ONE HUNDRED
-0BF2 ; [*14EB.0020.0002] # TAMIL NUMBER ONE THOUSAND
-0BF3 ; [*04A2.0020.0002] # TAMIL DAY SIGN
-0BF4 ; [*04A3.0020.0002] # TAMIL MONTH SIGN
-0BF5 ; [*04A4.0020.0002] # TAMIL YEAR SIGN
-0BF6 ; [*04A5.0020.0002] # TAMIL DEBIT SIGN
-0BF7 ; [*04A6.0020.0002] # TAMIL CREDIT SIGN
-0BF8 ; [*04A7.0020.0002] # TAMIL AS ABOVE SIGN
-0BFA ; [*04A8.0020.0002] # TAMIL NUMBER SIGN
-0C7F ; [*04A9.0020.0002] # TELUGU SIGN TUUMU
-0D70 ; [*14EC.0020.0002] # MALAYALAM NUMBER TEN
-0D71 ; [*14ED.0020.0002] # MALAYALAM NUMBER ONE HUNDRED
-0D72 ; [*14EE.0020.0002] # MALAYALAM NUMBER ONE THOUSAND
-0D73 ; [*14EF.0020.0002] # MALAYALAM FRACTION ONE QUARTER
-0D74 ; [*14F0.0020.0002] # MALAYALAM FRACTION ONE HALF
-0D75 ; [*14F1.0020.0002] # MALAYALAM FRACTION THREE QUARTERS
-0D79 ; [*04AA.0020.0002] # MALAYALAM DATE MARK
-0DF4 ; [*03BF.0020.0002] # SINHALA PUNCTUATION KUNDDALIYA
-0E4F ; [*03C0.0020.0002] # THAI CHARACTER FONGMAN
-0E5A ; [*03C1.0020.0002] # THAI CHARACTER ANGKHANKHU
-0E5B ; [*03C2.0020.0002] # THAI CHARACTER KHOMUT
-0F01 ; [*04B2.0020.0002] # TIBETAN MARK GTER YIG MGO TRUNCATED A
-0F02 ; [*04B3.0020.0002] # TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA
-0F03 ; [*04B4.0020.0002] # TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
-0F04 ; [*03C5.0020.0002] # TIBETAN MARK INITIAL YIG MGO MDUN MA
-0F05 ; [*03C6.0020.0002] # TIBETAN MARK CLOSING YIG MGO SGAB MA
-0F06 ; [*03C7.0020.0002] # TIBETAN MARK CARET YIG MGO PHUR SHAD MA
-0F07 ; [*03C8.0020.0002] # TIBETAN MARK YIG MGO TSHEG SHAD MA
-0F08 ; [*03C9.0020.0002] # TIBETAN MARK SBRUL SHAD
-0F09 ; [*03CA.0020.0002] # TIBETAN MARK BSKUR YIG MGO
-0F0A ; [*03CB.0020.0002] # TIBETAN MARK BKA- SHOG YIG MGO
-0F0B ; [*03CE.0020.0002] # TIBETAN MARK INTERSYLLABIC TSHEG
-0F0C ; [*03CE.0020.001B] # TIBETAN MARK DELIMITER TSHEG BSTAR
-0F0D ; [*03CF.0020.0002] # TIBETAN MARK SHAD
-0F0E ; [*03D0.0020.0002] # TIBETAN MARK NYIS SHAD
-0F0F ; [*03D1.0020.0002] # TIBETAN MARK TSHEG SHAD
-0F10 ; [*03D2.0020.0002] # TIBETAN MARK NYIS TSHEG SHAD
-0F11 ; [*03D3.0020.0002] # TIBETAN MARK RIN CHEN SPUNGS SHAD
-0F12 ; [*03D4.0020.0002] # TIBETAN MARK RGYA GRAM SHAD
-0F13 ; [*04B5.0020.0002] # TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
-0F14 ; [*0255.0020.0002] # TIBETAN MARK GTER TSHEG
-0F15 ; [*04B6.0020.0002] # TIBETAN LOGOTYPE SIGN CHAD RTAGS
-0F16 ; [*04B7.0020.0002] # TIBETAN LOGOTYPE SIGN LHAG RTAGS
-0F17 ; [*04B8.0020.0002] # TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+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
0F18 ; [.0000.0000.0000] # TIBETAN ASTROLOGICAL SIGN -KHYUD PA
0F19 ; [.0000.0000.0000] # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-0F1A ; [*04B9.0020.0002] # TIBETAN SIGN RDEL DKAR GCIG
-0F1B ; [*04BA.0020.0002] # TIBETAN SIGN RDEL DKAR GNYIS
-0F1C ; [*04BB.0020.0002] # TIBETAN SIGN RDEL DKAR GSUM
-0F1D ; [*04BC.0020.0002] # TIBETAN SIGN RDEL NAG GCIG
-0F1E ; [*04BD.0020.0002] # TIBETAN SIGN RDEL NAG GNYIS
-0F1F ; [*04BE.0020.0002] # TIBETAN SIGN RDEL DKAR RDEL NAG
-0F34 ; [*04BF.0020.0002] # TIBETAN MARK BSDUS RTAGS
+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
0F35 ; [.0000.0000.0000] # TIBETAN MARK NGAS BZUNG NYI ZLA
-0F36 ; [*04C0.0020.0002] # TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F36 ; [*04F7.0020.0002] # TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
0F37 ; [.0000.0000.0000] # TIBETAN MARK NGAS BZUNG SGOR RTAGS
-0F38 ; [*04C1.0020.0002] # TIBETAN MARK CHE MGO
-0F3A ; [*0300.0020.0002] # TIBETAN MARK GUG RTAGS GYON
-0F3B ; [*0301.0020.0002] # TIBETAN MARK GUG RTAGS GYAS
-0F3C ; [*0302.0020.0002] # TIBETAN MARK ANG KHANG GYON
-0F3D ; [*0303.0020.0002] # TIBETAN MARK ANG KHANG GYAS
+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
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 ; [*03D5.0020.0002] # TIBETAN MARK PALUTA
+0F85 ; [*03E7.0020.0002] # TIBETAN MARK PALUTA
0F86 ; [.0000.0000.0000] # TIBETAN SIGN LCI RTAGS
0F87 ; [.0000.0000.0000] # TIBETAN SIGN YANG RTAGS
-0FBE ; [*04C2.0020.0002] # TIBETAN KU RU KHA
-0FBF ; [*04C3.0020.0002] # TIBETAN KU RU KHA BZHI MIG CAN
-0FC0 ; [*04C4.0020.0002] # TIBETAN CANTILLATION SIGN HEAVY BEAT
-0FC1 ; [*04C5.0020.0002] # TIBETAN CANTILLATION SIGN LIGHT BEAT
-0FC2 ; [*04C6.0020.0002] # TIBETAN CANTILLATION SIGN CANG TE-U
-0FC3 ; [*04C7.0020.0002] # TIBETAN CANTILLATION SIGN SBUB -CHAL
-0FC4 ; [*04C8.0020.0002] # TIBETAN SYMBOL DRIL BU
-0FC5 ; [*04C9.0020.0002] # TIBETAN SYMBOL RDO RJE
+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
0FC6 ; [.0000.0000.0000] # TIBETAN SYMBOL PADMA GDAN
-0FC7 ; [*04CA.0020.0002] # TIBETAN SYMBOL RDO RJE RGYA GRAM
-0FC8 ; [*04CB.0020.0002] # TIBETAN SYMBOL PHUR PA
-0FC9 ; [*04CC.0020.0002] # TIBETAN SYMBOL NOR BU
-0FCA ; [*04CD.0020.0002] # TIBETAN SYMBOL NOR BU NYIS -KHYIL
-0FCB ; [*04CE.0020.0002] # TIBETAN SYMBOL NOR BU GSUM -KHYIL
-0FCC ; [*04CF.0020.0002] # TIBETAN SYMBOL NOR BU BZHI -KHYIL
-0FCE ; [*04D0.0020.0002] # TIBETAN SIGN RDEL NAG RDEL DKAR
-0FCF ; [*04D1.0020.0002] # TIBETAN SIGN RDEL NAG GSUM
-0FD0 ; [*03CC.0020.0002] # TIBETAN MARK BSKA- SHOG GI MGO RGYAN
-0FD1 ; [*03CD.0020.0002] # TIBETAN MARK MNYAM YIG GI MGO RGYAN
-0FD2 ; [*03D6.0020.0002] # TIBETAN MARK NYIS TSHEG
-0FD3 ; [*03D7.0020.0002] # TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
-0FD4 ; [*03D8.0020.0002] # TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
-0FD5 ; [*04D2.0020.0002] # RIGHT-FACING SVASTI SIGN
-0FD6 ; [*04D3.0020.0002] # LEFT-FACING SVASTI SIGN
-0FD7 ; [*04D4.0020.0002] # RIGHT-FACING SVASTI SIGN WITH DOTS
-0FD8 ; [*04D5.0020.0002] # LEFT-FACING SVASTI SIGN WITH DOTS
-0FD9 ; [*03D9.0020.0002] # TIBETAN MARK LEADING MCHAN RTAGS
-0FDA ; [*03DA.0020.0002] # TIBETAN MARK TRAILING MCHAN RTAGS
-104A ; [*0291.0020.0002] # MYANMAR SIGN LITTLE SECTION
-104B ; [*0292.0020.0002] # MYANMAR SIGN SECTION
-104C ; [*03DE.0020.0002] # MYANMAR SYMBOL LOCATIVE
-104D ; [*03DF.0020.0002] # MYANMAR SYMBOL COMPLETED
-104E ; [*03E0.0020.0002] # MYANMAR SYMBOL AFOREMENTIONED
-104F ; [*03E1.0020.0002] # MYANMAR SYMBOL GENITIVE
-109E ; [*04D7.0020.0002] # MYANMAR SYMBOL SHAN ONE
-109F ; [*04D8.0020.0002] # MYANMAR SYMBOL SHAN EXCLAMATION
-10FB ; [*02B0.0020.0002] # GEORGIAN PARAGRAPH SEPARATOR
-1360 ; [*02B1.0020.0002] # ETHIOPIC SECTION MARK
-1361 ; [*024E.0020.0002] # ETHIOPIC WORDSPACE
-1362 ; [*0277.0020.0002] # ETHIOPIC FULL STOP
-1363 ; [*024F.0020.0002] # ETHIOPIC COMMA
-1364 ; [*0250.0020.0002] # ETHIOPIC SEMICOLON
-1365 ; [*0251.0020.0002] # ETHIOPIC COLON
-1366 ; [*0252.0020.0002] # ETHIOPIC PREFACE COLON
-1367 ; [*0268.0020.0002] # ETHIOPIC QUESTION MARK
-1368 ; [*02B2.0020.0002] # ETHIOPIC PARAGRAPH SEPARATOR
-1372 ; [*14F2.0020.0002] # ETHIOPIC NUMBER TEN
-1373 ; [*14F3.0020.0002] # ETHIOPIC NUMBER TWENTY
-1374 ; [*14F4.0020.0002] # ETHIOPIC NUMBER THIRTY
-1375 ; [*14F5.0020.0002] # ETHIOPIC NUMBER FORTY
-1376 ; [*14F6.0020.0002] # ETHIOPIC NUMBER FIFTY
-1377 ; [*14F7.0020.0002] # ETHIOPIC NUMBER SIXTY
-1378 ; [*14F8.0020.0002] # ETHIOPIC NUMBER SEVENTY
-1379 ; [*14F9.0020.0002] # ETHIOPIC NUMBER EIGHTY
-137A ; [*14FA.0020.0002] # ETHIOPIC NUMBER NINETY
-137B ; [*14FB.0020.0002] # ETHIOPIC NUMBER HUNDRED
-137C ; [*14FC.0020.0002] # ETHIOPIC NUMBER TEN THOUSAND
-1390 ; [*0456.0020.0002] # ETHIOPIC TONAL MARK YIZET
-1391 ; [*0457.0020.0002] # ETHIOPIC TONAL MARK DERET
-1392 ; [*0458.0020.0002] # ETHIOPIC TONAL MARK RIKRIK
-1393 ; [*0459.0020.0002] # ETHIOPIC TONAL MARK SHORT RIKRIK
-1394 ; [*045A.0020.0002] # ETHIOPIC TONAL MARK DIFAT
-1395 ; [*045B.0020.0002] # ETHIOPIC TONAL MARK KENAT
-1396 ; [*045C.0020.0002] # ETHIOPIC TONAL MARK CHIRET
-1397 ; [*045D.0020.0002] # ETHIOPIC TONAL MARK HIDET
-1398 ; [*045E.0020.0002] # ETHIOPIC TONAL MARK DERET-HIDET
-1399 ; [*045F.0020.0002] # ETHIOPIC TONAL MARK KURT
+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
1400 ; [*020F.0020.0002] # CANADIAN SYLLABICS HYPHEN
-166D ; [*03EE.0020.0002] # CANADIAN SYLLABICS CHI SIGN
-166E ; [*027A.0020.0002] # CANADIAN SYLLABICS FULL STOP
+166D ; [*0400.0020.0002] # CANADIAN SYLLABICS CHI SIGN
+166E ; [*027C.0020.0002] # CANADIAN SYLLABICS FULL STOP
1680 ; [*0209.0020.0004] # OGHAM SPACE MARK
-169B ; [*0304.0020.0002] # OGHAM FEATHER MARK
-169C ; [*0305.0020.0002] # OGHAM REVERSED FEATHER MARK
-16EB ; [*0259.0020.0002] # RUNIC SINGLE PUNCTUATION
-16EC ; [*025A.0020.0002] # RUNIC MULTIPLE PUNCTUATION
-16ED ; [*025B.0020.0002] # RUNIC CROSS PUNCTUATION
-1735 ; [*028E.0020.0002] # PHILIPPINE SINGLE PUNCTUATION
-1736 ; [*028F.0020.0002] # PHILIPPINE DOUBLE PUNCTUATION
+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
17B4 ; [.0000.0000.0000] # KHMER VOWEL INHERENT AQ
17B5 ; [.0000.0000.0000] # KHMER VOWEL INHERENT AA
17D3 ; [.0000.0000.0000] # KHMER SIGN BATHAMASAT
-17D4 ; [*0293.0020.0002] # KHMER SIGN KHAN
-17D5 ; [*0294.0020.0002] # KHMER SIGN BARIYOOSAN
-17D6 ; [*0256.0020.0002] # KHMER SIGN CAMNUC PII KUUH
-17D8 ; [*03E2.0020.0002] # KHMER SIGN BEYYAL
-17D9 ; [*03E3.0020.0002] # KHMER SIGN PHNAEK MUAN
-17DA ; [*03E4.0020.0002] # KHMER SIGN KOOMUUT
-1800 ; [*03B9.0020.0002] # MONGOLIAN BIRGA
-1801 ; [*0273.0020.0002] # MONGOLIAN ELLIPSIS
-1802 ; [*0229.0020.0002] # MONGOLIAN COMMA
-1803 ; [*0278.0020.0002] # MONGOLIAN FULL STOP
-1804 ; [*0253.0020.0002] # MONGOLIAN COLON
-1805 ; [*0254.0020.0002] # MONGOLIAN FOUR DOTS
+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
1806 ; [*0211.0020.0002] # MONGOLIAN TODO SOFT HYPHEN
1807 ; [*0212.0020.0002] # MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
-1808 ; [*022A.0020.0002] # MONGOLIAN MANCHU COMMA
-1809 ; [*0279.0020.0002] # MONGOLIAN MANCHU FULL STOP
+1808 ; [*022C.0020.0002] # MONGOLIAN MANCHU COMMA
+1809 ; [*027B.0020.0002] # MONGOLIAN MANCHU FULL STOP
180A ; [.0000.0000.0000] # MONGOLIAN NIRUGU
-1940 ; [*04D6.0020.0002] # LIMBU SIGN LOO
-1944 ; [*0261.0020.0002] # LIMBU EXCLAMATION MARK
-1945 ; [*0269.0020.0002] # LIMBU QUESTION MARK
-19E0 ; [*04DC.0020.0002] # KHMER SYMBOL PATHAMASAT
-19E1 ; [*04DD.0020.0002] # KHMER SYMBOL MUOY KOET
-19E2 ; [*04DE.0020.0002] # KHMER SYMBOL PII KOET
-19E3 ; [*04DF.0020.0002] # KHMER SYMBOL BEI KOET
-19E4 ; [*04E0.0020.0002] # KHMER SYMBOL BUON KOET
-19E5 ; [*04E1.0020.0002] # KHMER SYMBOL PRAM KOET
-19E6 ; [*04E2.0020.0002] # KHMER SYMBOL PRAM-MUOY KOET
-19E7 ; [*04E3.0020.0002] # KHMER SYMBOL PRAM-PII KOET
-19E8 ; [*04E4.0020.0002] # KHMER SYMBOL PRAM-BEI KOET
-19E9 ; [*04E5.0020.0002] # KHMER SYMBOL PRAM-BUON KOET
-19EA ; [*04E6.0020.0002] # KHMER SYMBOL DAP KOET
-19EB ; [*04E7.0020.0002] # KHMER SYMBOL DAP-MUOY KOET
-19EC ; [*04E8.0020.0002] # KHMER SYMBOL DAP-PII KOET
-19ED ; [*04E9.0020.0002] # KHMER SYMBOL DAP-BEI KOET
-19EE ; [*04EA.0020.0002] # KHMER SYMBOL DAP-BUON KOET
-19EF ; [*04EB.0020.0002] # KHMER SYMBOL DAP-PRAM KOET
-19F0 ; [*04EC.0020.0002] # KHMER SYMBOL TUTEYASAT
-19F1 ; [*04ED.0020.0002] # KHMER SYMBOL MUOY ROC
-19F2 ; [*04EE.0020.0002] # KHMER SYMBOL PII ROC
-19F3 ; [*04EF.0020.0002] # KHMER SYMBOL BEI ROC
-19F4 ; [*04F0.0020.0002] # KHMER SYMBOL BUON ROC
-19F5 ; [*04F1.0020.0002] # KHMER SYMBOL PRAM ROC
-19F6 ; [*04F2.0020.0002] # KHMER SYMBOL PRAM-MUOY ROC
-19F7 ; [*04F3.0020.0002] # KHMER SYMBOL PRAM-PII ROC
-19F8 ; [*04F4.0020.0002] # KHMER SYMBOL PRAM-BEI ROC
-19F9 ; [*04F5.0020.0002] # KHMER SYMBOL PRAM-BUON ROC
-19FA ; [*04F6.0020.0002] # KHMER SYMBOL DAP ROC
-19FB ; [*04F7.0020.0002] # KHMER SYMBOL DAP-MUOY ROC
-19FC ; [*04F8.0020.0002] # KHMER SYMBOL DAP-PII ROC
-19FD ; [*04F9.0020.0002] # KHMER SYMBOL DAP-BEI ROC
-19FE ; [*04FA.0020.0002] # KHMER SYMBOL DAP-BUON ROC
-19FF ; [*04FB.0020.0002] # KHMER SYMBOL DAP-PRAM ROC
-1A1E ; [*02B3.0020.0002] # BUGINESE PALLAWA
-1A1F ; [*02B4.0020.0002] # BUGINESE END OF SECTION
+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
1A7F ; [.0000.0000.0000] # TAI THAM COMBINING CRYPTOGRAMMIC DOT
-1AA0 ; [*03E5.0020.0002] # TAI THAM SIGN WIANG
-1AA1 ; [*03E6.0020.0002] # TAI THAM SIGN WIANGWAAK
-1AA2 ; [*03E7.0020.0002] # TAI THAM SIGN SAWAN
-1AA3 ; [*03E8.0020.0002] # TAI THAM SIGN KEOW
-1AA4 ; [*03E9.0020.0002] # TAI THAM SIGN HOY
-1AA5 ; [*03EA.0020.0002] # TAI THAM SIGN DOKMAI
-1AA6 ; [*03EB.0020.0002] # TAI THAM SIGN REVERSED ROTATED RANA
-1AA8 ; [*0295.0020.0002] # TAI THAM SIGN KAAN
-1AA9 ; [*0296.0020.0002] # TAI THAM SIGN KAANKUU
-1AAA ; [*0297.0020.0002] # TAI THAM SIGN SATKAAN
-1AAB ; [*0298.0020.0002] # TAI THAM SIGN SATKAANKUU
-1AAC ; [*03EC.0020.0002] # TAI THAM SIGN HANG
-1AAD ; [*03ED.0020.0002] # TAI THAM SIGN CAANG
-1B5A ; [*02B5.0020.0002] # BALINESE PANTI
-1B5B ; [*02B6.0020.0002] # BALINESE PAMADA
-1B5C ; [*027B.0020.0002] # BALINESE WINDU
-1B5D ; [*0257.0020.0002] # BALINESE CARIK PAMUNGKAH
-1B5E ; [*0299.0020.0002] # BALINESE CARIK SIKI
-1B5F ; [*029A.0020.0002] # BALINESE CARIK PAREREN
+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
1B60 ; [*0210.0020.0002] # BALINESE PAMENENG
-1B61 ; [*04FC.0020.0002] # BALINESE MUSICAL SYMBOL DONG
-1B62 ; [*04FD.0020.0002] # BALINESE MUSICAL SYMBOL DENG
-1B63 ; [*04FE.0020.0002] # BALINESE MUSICAL SYMBOL DUNG
-1B64 ; [*04FF.0020.0002] # BALINESE MUSICAL SYMBOL DANG
-1B65 ; [*0500.0020.0002] # BALINESE MUSICAL SYMBOL DANG SURANG
-1B66 ; [*0501.0020.0002] # BALINESE MUSICAL SYMBOL DING
-1B67 ; [*0502.0020.0002] # BALINESE MUSICAL SYMBOL DAENG
-1B68 ; [*0503.0020.0002] # BALINESE MUSICAL SYMBOL DEUNG
-1B69 ; [*0504.0020.0002] # BALINESE MUSICAL SYMBOL DAING
-1B6A ; [*0505.0020.0002] # BALINESE MUSICAL SYMBOL DANG GEDE
+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
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
@@ -1011,34 +1018,34 @@ E01EF ; [.0000.0000.0000] # [E01EF] 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 ; [*0506.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG
-1B75 ; [*0507.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG
-1B76 ; [*0508.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK
-1B77 ; [*0509.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK
-1B78 ; [*050A.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG
-1B79 ; [*050B.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG
-1B7A ; [*050C.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK
-1B7B ; [*050D.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK
-1B7C ; [*050E.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
-1BFC ; [*03FA.0020.0002] # BATAK SYMBOL BINDU NA METEK
-1BFD ; [*03FB.0020.0002] # BATAK SYMBOL BINDU PINARBORAS
-1BFE ; [*03FC.0020.0002] # BATAK SYMBOL BINDU JUDUL
-1BFF ; [*03FD.0020.0002] # BATAK SYMBOL BINDU PANGOLAT
-1C3B ; [*028A.0020.0002] # LEPCHA PUNCTUATION TA-ROL
-1C3C ; [*028B.0020.0002] # LEPCHA PUNCTUATION NYET THYOOM TA-ROL
-1C3D ; [*03DB.0020.0002] # LEPCHA PUNCTUATION CER-WA
-1C3E ; [*03DC.0020.0002] # LEPCHA PUNCTUATION TSHOOK CER-WA
-1C3F ; [*03DD.0020.0002] # LEPCHA PUNCTUATION TSHOOK
-1C7E ; [*02AC.0020.0002] # OL CHIKI PUNCTUATION MUCAAD
-1C7F ; [*02AD.0020.0002] # OL CHIKI PUNCTUATION DOUBLE MUCAAD
-1CC0 ; [*03EF.0020.0002] # SUNDANESE PUNCTUATION BINDU SURYA
-1CC1 ; [*03F0.0020.0002] # SUNDANESE PUNCTUATION BINDU PANGLONG
-1CC2 ; [*03F1.0020.0002] # SUNDANESE PUNCTUATION BINDU PURNAMA
-1CC3 ; [*03F2.0020.0002] # SUNDANESE PUNCTUATION BINDU CAKRA
-1CC4 ; [*03F3.0020.0002] # SUNDANESE PUNCTUATION BINDU LEU SATANGA
-1CC5 ; [*03F4.0020.0002] # SUNDANESE PUNCTUATION BINDU KA SATANGA
-1CC6 ; [*03F5.0020.0002] # SUNDANESE PUNCTUATION BINDU DA SATANGA
-1CC7 ; [*03F6.0020.0002] # SUNDANESE PUNCTUATION BINDU BA SATANGA
+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
1CD0 ; [.0000.0000.0000] # VEDIC TONE KARSHANA
1CD1 ; [.0000.0000.0000] # VEDIC TONE SHARA
1CD2 ; [.0000.0000.0000] # VEDIC TONE PRENKHA
@@ -1065,21 +1072,23 @@ E01EF ; [.0000.0000.0000] # [E01EF] VARIATION SELECTOR-256
1CE7 ; [.0000.0000.0000] # VEDIC SIGN VISARGA UDATTA WITH TAIL
1CE8 ; [.0000.0000.0000] # VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CF4 ; [.0000.0000.0000] # VEDIC TONE CANDRA ABOVE
-1FBD ; [*041E.0020.0002] # GREEK KORONIS
-1FBF ; [*041E.0020.0002] # GREEK PSILI
-1FC0 ; [*0420.0020.0002] # GREEK PERISPOMENI
-1FC1 ; [*0419.0020.0002][.0000.002A.0002] # GREEK DIALYTIKA AND PERISPOMENI
-1FCD ; [*041E.0020.0002][.0000.0025.0002] # GREEK PSILI AND VARIA
-1FCE ; [*041E.0020.0002][.0000.0024.0002] # GREEK PSILI AND OXIA
-1FCF ; [*041E.0020.0002][.0000.002A.0002] # GREEK PSILI AND PERISPOMENI
-1FDD ; [*041F.0020.0002][.0000.0025.0002] # GREEK DASIA AND VARIA
-1FDE ; [*041F.0020.0002][.0000.0024.0002] # GREEK DASIA AND OXIA
-1FDF ; [*041F.0020.0002][.0000.002A.0002] # GREEK DASIA AND PERISPOMENI
-1FED ; [*0419.0020.0002][.0000.0025.0002] # GREEK DIALYTIKA AND VARIA
-1FEE ; [*0419.0020.0002][.0000.0024.0002] # GREEK DIALYTIKA AND OXIA
-1FEF ; [*0412.0020.0002] # GREEK VARIA
-1FFD ; [*0413.0020.0002] # GREEK OXIA
-1FFE ; [*041F.0020.0002] # GREEK DASIA
+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
2000 ; [*0209.0020.0004] # EN QUAD
2001 ; [*0209.0020.0004] # EM QUAD
2002 ; [*0209.0020.0004] # EN SPACE
@@ -1097,2727 +1106,2857 @@ E01EF ; [.0000.0000.0000] # [E01EF] VARIATION SELECTOR-256
2013 ; [*0215.0020.0002] # EN DASH
2014 ; [*0216.0020.0002] # EM DASH
2015 ; [*0217.0020.0002] # HORIZONTAL BAR
-2016 ; [*0366.0020.0002] # DOUBLE VERTICAL LINE
+2016 ; [*0376.0020.0002] # DOUBLE VERTICAL LINE
2017 ; [*020C.0020.0002] # DOUBLE LOW LINE
-2018 ; [*02EA.0020.0002] # LEFT SINGLE QUOTATION MARK
-2019 ; [*02EB.0020.0002] # RIGHT SINGLE QUOTATION MARK
-201A ; [*02EC.0020.0002] # SINGLE LOW-9 QUOTATION MARK
-201B ; [*02ED.0020.0002] # SINGLE HIGH-REVERSED-9 QUOTATION MARK
-201C ; [*02F1.0020.0002] # LEFT DOUBLE QUOTATION MARK
-201D ; [*02F2.0020.0002] # RIGHT DOUBLE QUOTATION MARK
-201E ; [*02F3.0020.0002] # DOUBLE LOW-9 QUOTATION MARK
-201F ; [*02F4.0020.0002] # DOUBLE HIGH-REVERSED-9 QUOTATION MARK
-2020 ; [*0380.0020.0002] # DAGGER
-2021 ; [*0381.0020.0002] # DOUBLE DAGGER
-2022 ; [*0385.0020.0002] # BULLET
-2023 ; [*0386.0020.0002] # TRIANGULAR BULLET
-2024 ; [*0272.0020.0004] # ONE DOT LEADER
-2025 ; [*0272.0020.0004][*0272.0020.0004] # TWO DOT LEADER
-2026 ; [*0272.0020.0004][*0272.0020.0004][*0272.0020.0004] # HORIZONTAL ELLIPSIS
-2027 ; [*0387.0020.0002] # HYPHENATION POINT
+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
2028 ; [*0207.0020.0002] # LINE SEPARATOR
2029 ; [*0208.0020.0002] # PARAGRAPH SEPARATOR
202F ; [*0209.0020.001B] # NARROW NO-BREAK SPACE
-2030 ; [*037C.0020.0002] # PER MILLE SIGN
-2031 ; [*037E.0020.0002] # PER TEN THOUSAND SIGN
-2032 ; [*038B.0020.0002] # PRIME
-2033 ; [*038B.0020.0004][*038B.0020.0004] # DOUBLE PRIME
-2034 ; [*038B.0020.0004][*038B.0020.0004][*038B.0020.0004] # TRIPLE PRIME
-2035 ; [*038C.0020.0002] # REVERSED PRIME
-2036 ; [*038C.0020.0004][*038C.0020.0004] # REVERSED DOUBLE PRIME
-2037 ; [*038C.0020.0004][*038C.0020.0004][*038C.0020.0004] # REVERSED TRIPLE PRIME
-2038 ; [*038F.0020.0002] # CARET
-2039 ; [*02EE.0020.0002] # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-203A ; [*02EF.0020.0002] # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-203B ; [*0390.0020.0002] # REFERENCE MARK
-203C ; [*025D.0020.0004][*025D.0020.0004] # DOUBLE EXCLAMATION MARK
-203D ; [*0270.0020.0002] # INTERROBANG
+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
203E ; [*020A.0020.0002] # OVERLINE
-203F ; [*0391.0020.0002] # UNDERTIE
-2040 ; [*0393.0020.0002] # CHARACTER TIE
-2041 ; [*0395.0020.0002] # CARET INSERTION POINT
-2042 ; [*0396.0020.0002] # ASTERISM
-2043 ; [*0388.0020.0002] # HYPHEN BULLET
-2044 ; [*05AF.0020.0002] # FRACTION SLASH
-2045 ; [*0306.0020.0002] # LEFT SQUARE BRACKET WITH QUILL
-2046 ; [*0307.0020.0002] # RIGHT SQUARE BRACKET WITH QUILL
-2047 ; [*0262.0020.0004][*0262.0020.0004] # DOUBLE QUESTION MARK
-2048 ; [*0262.0020.0004][*025D.0020.0004] # QUESTION EXCLAMATION MARK
-2049 ; [*025D.0020.0004][*0262.0020.0004] # EXCLAMATION QUESTION MARK
-204A ; [*0378.0020.0002] # TIRONIAN SIGN ET
-204B ; [*036E.0020.0002] # REVERSED PILCROW SIGN
-204C ; [*0389.0020.0002] # BLACK LEFTWARDS BULLET
-204D ; [*038A.0020.0002] # BLACK RIGHTWARDS BULLET
-204E ; [*0371.0020.0002] # LOW ASTERISK
-204F ; [*0233.0020.0002] # REVERSED SEMICOLON
-2050 ; [*0394.0020.0002] # CLOSE UP
-2051 ; [*0372.0020.0002] # TWO ASTERISKS ALIGNED VERTICALLY
-2052 ; [*05AB.0020.0002] # COMMERCIAL MINUS SIGN
+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
2053 ; [*021A.0020.0002] # SWUNG DASH
-2054 ; [*0392.0020.0002] # INVERTED UNDERTIE
-2055 ; [*02CE.0020.0002] # FLOWER PUNCTUATION MARK
-2056 ; [*02CF.0020.0002] # THREE DOT PUNCTUATION
-2057 ; [*038B.0020.0004][*038B.0020.0004][*038B.0020.0004][*038B.0020.0004] # QUADRUPLE PRIME
-2058 ; [*02D0.0020.0002] # FOUR DOT PUNCTUATION
-2059 ; [*02D1.0020.0002] # FIVE DOT PUNCTUATION
-205A ; [*02D2.0020.0002] # TWO DOT PUNCTUATION
-205B ; [*02D3.0020.0002] # FOUR DOT MARK
-205C ; [*02D4.0020.0002] # DOTTED CROSS
-205D ; [*02D5.0020.0002] # TRICOLON
-205E ; [*02D6.0020.0002] # VERTICAL FOUR DOTS
+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
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 ; [*059F.0020.0014] # SUPERSCRIPT PLUS SIGN
-207B ; [*05AA.0020.0014] # SUPERSCRIPT MINUS
-207C ; [*05A4.0020.0014] # SUPERSCRIPT EQUALS SIGN
-207D ; [*02FA.0020.0014] # SUPERSCRIPT LEFT PARENTHESIS
-207E ; [*02FB.0020.0014] # SUPERSCRIPT RIGHT PARENTHESIS
-208A ; [*059F.0020.0015] # SUBSCRIPT PLUS SIGN
-208B ; [*05AA.0020.0015] # SUBSCRIPT MINUS
-208C ; [*05A4.0020.0015] # SUBSCRIPT EQUALS SIGN
-208D ; [*02FA.0020.0015] # SUBSCRIPT LEFT PARENTHESIS
-208E ; [*02FB.0020.0015] # SUBSCRIPT RIGHT PARENTHESIS
-2104 ; [*0511.0020.0002] # CENTRE LINE SYMBOL
-2108 ; [*0512.0020.0002] # SCRUPLE
-2114 ; [*0513.0020.0002] # L B BAR SYMBOL
-2117 ; [*0514.0020.0002] # SOUND RECORDING COPYRIGHT
-2118 ; [*0515.0020.0002] # SCRIPT CAPITAL P
-211E ; [*0516.0020.0002] # PRESCRIPTION TAKE
-211F ; [*0517.0020.0002] # RESPONSE
-2123 ; [*0518.0020.0002] # VERSICLE
-2125 ; [*0519.0020.0002] # OUNCE SIGN
-2127 ; [*051A.0020.0002] # INVERTED OHM SIGN
-2129 ; [*051B.0020.0002] # TURNED GREEK SMALL LETTER IOTA
-212E ; [*051C.0020.0002] # ESTIMATED SYMBOL
-213A ; [*051D.0020.0002] # ROTATED CAPITAL Q
-2140 ; [*059E.0020.0005] # DOUBLE-STRUCK N-ARY SUMMATION
-2141 ; [*051E.0020.0002] # TURNED SANS-SERIF CAPITAL G
-2142 ; [*051F.0020.0002] # TURNED SANS-SERIF CAPITAL L
-2143 ; [*0520.0020.0002] # REVERSED SANS-SERIF CAPITAL L
-2144 ; [*0521.0020.0002] # TURNED SANS-SERIF CAPITAL Y
-214A ; [*0522.0020.0002] # PROPERTY LINE
-214B ; [*063A.0020.0002] # TURNED AMPERSAND
-214C ; [*0523.0020.0002] # PER SIGN
-214F ; [*0524.0020.0002] # SYMBOL FOR SAMARITAN SOURCE
-2180 ; [*14FD.0020.0002] # ROMAN NUMERAL ONE THOUSAND C D
-2181 ; [*14FE.0020.0002] # ROMAN NUMERAL FIVE THOUSAND
-2182 ; [*14FF.0020.0002] # ROMAN NUMERAL TEN THOUSAND
-2186 ; [*1500.0020.0002] # ROMAN NUMERAL FIFTY EARLY FORM
-2187 ; [*1501.0020.0002] # ROMAN NUMERAL FIFTY THOUSAND
-2188 ; [*1502.0020.0002] # ROMAN NUMERAL ONE HUNDRED THOUSAND
-2190 ; [*0525.0020.0002] # LEFTWARDS ARROW
-2191 ; [*0527.0020.0002] # UPWARDS ARROW
-2192 ; [*0526.0020.0002] # RIGHTWARDS ARROW
-2193 ; [*0528.0020.0002] # DOWNWARDS ARROW
-2194 ; [*0529.0020.0002] # LEFT RIGHT ARROW
-2195 ; [*052A.0020.0002] # UP DOWN ARROW
-2196 ; [*052B.0020.0002] # NORTH WEST ARROW
-2197 ; [*052C.0020.0002] # NORTH EAST ARROW
-2198 ; [*052D.0020.0002] # SOUTH EAST ARROW
-2199 ; [*052E.0020.0002] # SOUTH WEST ARROW
-219A ; [*0525.0020.0002][.0000.002F.0002] # LEFTWARDS ARROW WITH STROKE
-219B ; [*0526.0020.0002][.0000.002F.0002] # RIGHTWARDS ARROW WITH STROKE
-219C ; [*052F.0020.0002] # LEFTWARDS WAVE ARROW
-219D ; [*0530.0020.0002] # RIGHTWARDS WAVE ARROW
-219E ; [*0531.0020.0002] # LEFTWARDS TWO HEADED ARROW
-219F ; [*0532.0020.0002] # UPWARDS TWO HEADED ARROW
-21A0 ; [*0533.0020.0002] # RIGHTWARDS TWO HEADED ARROW
-21A1 ; [*0534.0020.0002] # DOWNWARDS TWO HEADED ARROW
-21A2 ; [*0535.0020.0002] # LEFTWARDS ARROW WITH TAIL
-21A3 ; [*0536.0020.0002] # RIGHTWARDS ARROW WITH TAIL
-21A4 ; [*0537.0020.0002] # LEFTWARDS ARROW FROM BAR
-21A5 ; [*0538.0020.0002] # UPWARDS ARROW FROM BAR
-21A6 ; [*0539.0020.0002] # RIGHTWARDS ARROW FROM BAR
-21A7 ; [*053A.0020.0002] # DOWNWARDS ARROW FROM BAR
-21A8 ; [*053B.0020.0002] # UP DOWN ARROW WITH BASE
-21A9 ; [*053C.0020.0002] # LEFTWARDS ARROW WITH HOOK
-21AA ; [*053D.0020.0002] # RIGHTWARDS ARROW WITH HOOK
-21AB ; [*053E.0020.0002] # LEFTWARDS ARROW WITH LOOP
-21AC ; [*053F.0020.0002] # RIGHTWARDS ARROW WITH LOOP
-21AD ; [*0540.0020.0002] # LEFT RIGHT WAVE ARROW
-21AE ; [*0529.0020.0002][.0000.002F.0002] # LEFT RIGHT ARROW WITH STROKE
-21AF ; [*0541.0020.0002] # DOWNWARDS ZIGZAG ARROW
-21B0 ; [*0542.0020.0002] # UPWARDS ARROW WITH TIP LEFTWARDS
-21B1 ; [*0543.0020.0002] # UPWARDS ARROW WITH TIP RIGHTWARDS
-21B2 ; [*0544.0020.0002] # DOWNWARDS ARROW WITH TIP LEFTWARDS
-21B3 ; [*0545.0020.0002] # DOWNWARDS ARROW WITH TIP RIGHTWARDS
-21B4 ; [*0546.0020.0002] # RIGHTWARDS ARROW WITH CORNER DOWNWARDS
-21B5 ; [*0547.0020.0002] # DOWNWARDS ARROW WITH CORNER LEFTWARDS
-21B6 ; [*0548.0020.0002] # ANTICLOCKWISE TOP SEMICIRCLE ARROW
-21B7 ; [*0549.0020.0002] # CLOCKWISE TOP SEMICIRCLE ARROW
-21B8 ; [*054A.0020.0002] # NORTH WEST ARROW TO LONG BAR
-21B9 ; [*054B.0020.0002] # LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
-21BA ; [*054C.0020.0002] # ANTICLOCKWISE OPEN CIRCLE ARROW
-21BB ; [*054D.0020.0002] # CLOCKWISE OPEN CIRCLE ARROW
-21BC ; [*054E.0020.0002] # LEFTWARDS HARPOON WITH BARB UPWARDS
-21BD ; [*054F.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWNWARDS
-21BE ; [*0550.0020.0002] # UPWARDS HARPOON WITH BARB RIGHTWARDS
-21BF ; [*0551.0020.0002] # UPWARDS HARPOON WITH BARB LEFTWARDS
-21C0 ; [*0552.0020.0002] # RIGHTWARDS HARPOON WITH BARB UPWARDS
-21C1 ; [*0553.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWNWARDS
-21C2 ; [*0554.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHTWARDS
-21C3 ; [*0555.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFTWARDS
-21C4 ; [*0556.0020.0002] # RIGHTWARDS ARROW OVER LEFTWARDS ARROW
-21C5 ; [*0557.0020.0002] # UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
-21C6 ; [*0558.0020.0002] # LEFTWARDS ARROW OVER RIGHTWARDS ARROW
-21C7 ; [*0559.0020.0002] # LEFTWARDS PAIRED ARROWS
-21C8 ; [*055A.0020.0002] # UPWARDS PAIRED ARROWS
-21C9 ; [*055B.0020.0002] # RIGHTWARDS PAIRED ARROWS
-21CA ; [*055C.0020.0002] # DOWNWARDS PAIRED ARROWS
-21CB ; [*055D.0020.0002] # LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
-21CC ; [*055E.0020.0002] # RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
-21CD ; [*055F.0020.0002][.0000.002F.0002] # LEFTWARDS DOUBLE ARROW WITH STROKE
-21CE ; [*0563.0020.0002][.0000.002F.0002] # LEFT RIGHT DOUBLE ARROW WITH STROKE
-21CF ; [*0561.0020.0002][.0000.002F.0002] # RIGHTWARDS DOUBLE ARROW WITH STROKE
-21D0 ; [*055F.0020.0002] # LEFTWARDS DOUBLE ARROW
-21D1 ; [*0560.0020.0002] # UPWARDS DOUBLE ARROW
-21D2 ; [*0561.0020.0002] # RIGHTWARDS DOUBLE ARROW
-21D3 ; [*0562.0020.0002] # DOWNWARDS DOUBLE ARROW
-21D4 ; [*0563.0020.0002] # LEFT RIGHT DOUBLE ARROW
-21D5 ; [*0564.0020.0002] # UP DOWN DOUBLE ARROW
-21D6 ; [*0565.0020.0002] # NORTH WEST DOUBLE ARROW
-21D7 ; [*0566.0020.0002] # NORTH EAST DOUBLE ARROW
-21D8 ; [*0567.0020.0002] # SOUTH EAST DOUBLE ARROW
-21D9 ; [*0568.0020.0002] # SOUTH WEST DOUBLE ARROW
-21DA ; [*0569.0020.0002] # LEFTWARDS TRIPLE ARROW
-21DB ; [*056A.0020.0002] # RIGHTWARDS TRIPLE ARROW
-21DC ; [*056B.0020.0002] # LEFTWARDS SQUIGGLE ARROW
-21DD ; [*056C.0020.0002] # RIGHTWARDS SQUIGGLE ARROW
-21DE ; [*056D.0020.0002] # UPWARDS ARROW WITH DOUBLE STROKE
-21DF ; [*056E.0020.0002] # DOWNWARDS ARROW WITH DOUBLE STROKE
-21E0 ; [*056F.0020.0002] # LEFTWARDS DASHED ARROW
-21E1 ; [*0570.0020.0002] # UPWARDS DASHED ARROW
-21E2 ; [*0571.0020.0002] # RIGHTWARDS DASHED ARROW
-21E3 ; [*0572.0020.0002] # DOWNWARDS DASHED ARROW
-21E4 ; [*0573.0020.0002] # LEFTWARDS ARROW TO BAR
-21E5 ; [*0574.0020.0002] # RIGHTWARDS ARROW TO BAR
-21E6 ; [*0575.0020.0002] # LEFTWARDS WHITE ARROW
-21E7 ; [*0576.0020.0002] # UPWARDS WHITE ARROW
-21E8 ; [*0577.0020.0002] # RIGHTWARDS WHITE ARROW
-21E9 ; [*0578.0020.0002] # DOWNWARDS WHITE ARROW
-21EA ; [*0579.0020.0002] # UPWARDS WHITE ARROW FROM BAR
-21EB ; [*057A.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL
-21EC ; [*057B.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
-21ED ; [*057C.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
-21EE ; [*057D.0020.0002] # UPWARDS WHITE DOUBLE ARROW
-21EF ; [*057E.0020.0002] # UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
-21F0 ; [*057F.0020.0002] # RIGHTWARDS WHITE ARROW FROM WALL
-21F1 ; [*0580.0020.0002] # NORTH WEST ARROW TO CORNER
-21F2 ; [*0581.0020.0002] # SOUTH EAST ARROW TO CORNER
-21F3 ; [*0582.0020.0002] # UP DOWN WHITE ARROW
-21F4 ; [*0583.0020.0002] # RIGHT ARROW WITH SMALL CIRCLE
-21F5 ; [*0584.0020.0002] # DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
-21F6 ; [*0585.0020.0002] # THREE RIGHTWARDS ARROWS
-21F7 ; [*0586.0020.0002] # LEFTWARDS ARROW WITH VERTICAL STROKE
-21F8 ; [*0587.0020.0002] # RIGHTWARDS ARROW WITH VERTICAL STROKE
-21F9 ; [*0588.0020.0002] # LEFT RIGHT ARROW WITH VERTICAL STROKE
-21FA ; [*0589.0020.0002] # LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FB ; [*058A.0020.0002] # RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FC ; [*058B.0020.0002] # LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
-21FD ; [*058C.0020.0002] # LEFTWARDS OPEN-HEADED ARROW
-21FE ; [*058D.0020.0002] # RIGHTWARDS OPEN-HEADED ARROW
-21FF ; [*058E.0020.0002] # LEFT RIGHT OPEN-HEADED ARROW
-2200 ; [*058F.0020.0002] # FOR ALL
-2201 ; [*0590.0020.0002] # COMPLEMENT
-2202 ; [*0591.0020.0002] # PARTIAL DIFFERENTIAL
-2203 ; [*0592.0020.0002] # THERE EXISTS
-2204 ; [*0592.0020.0002][.0000.002F.0002] # THERE DOES NOT EXIST
-2205 ; [*0593.0020.0002] # EMPTY SET
-2206 ; [*0594.0020.0002] # INCREMENT
-2207 ; [*0595.0020.0002] # NABLA
-2208 ; [*0596.0020.0002] # ELEMENT OF
-2209 ; [*0596.0020.0002][.0000.002F.0002] # NOT AN ELEMENT OF
-220A ; [*0597.0020.0002] # SMALL ELEMENT OF
-220B ; [*0598.0020.0002] # CONTAINS AS MEMBER
-220C ; [*0598.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS MEMBER
-220D ; [*0599.0020.0002] # SMALL CONTAINS AS MEMBER
-220E ; [*059B.0020.0002] # END OF PROOF
-220F ; [*059C.0020.0002] # N-ARY PRODUCT
-2210 ; [*059D.0020.0002] # N-ARY COPRODUCT
-2211 ; [*059E.0020.0002] # N-ARY SUMMATION
-2212 ; [*05AA.0020.0002] # MINUS SIGN
-2213 ; [*05AC.0020.0002] # MINUS-OR-PLUS SIGN
-2214 ; [*05AD.0020.0002] # DOT PLUS
-2215 ; [*05AE.0020.0002] # DIVISION SLASH
-2216 ; [*05B0.0020.0002] # SET MINUS
-2217 ; [*05B1.0020.0002] # ASTERISK OPERATOR
-2218 ; [*05B2.0020.0002] # RING OPERATOR
-2219 ; [*05B3.0020.0002] # BULLET OPERATOR
-221A ; [*05B4.0020.0002] # SQUARE ROOT
-221B ; [*05B5.0020.0002] # CUBE ROOT
-221C ; [*05B7.0020.0002] # FOURTH ROOT
-221D ; [*05B9.0020.0002] # PROPORTIONAL TO
-221E ; [*05BA.0020.0002] # INFINITY
-221F ; [*05BB.0020.0002] # RIGHT ANGLE
-2220 ; [*05BC.0020.0002] # ANGLE
-2221 ; [*05BD.0020.0002] # MEASURED ANGLE
-2222 ; [*05BE.0020.0002] # SPHERICAL ANGLE
-2223 ; [*05BF.0020.0002] # DIVIDES
-2224 ; [*05BF.0020.0002][.0000.002F.0002] # DOES NOT DIVIDE
-2225 ; [*05C0.0020.0002] # PARALLEL TO
-2226 ; [*05C0.0020.0002][.0000.002F.0002] # NOT PARALLEL TO
-2227 ; [*05C1.0020.0002] # LOGICAL AND
-2228 ; [*05C2.0020.0002] # LOGICAL OR
-2229 ; [*05C3.0020.0002] # INTERSECTION
-222A ; [*05C4.0020.0002] # UNION
-222B ; [*05C5.0020.0002] # INTEGRAL
-222C ; [*05C5.0020.0004][*05C5.0020.0004] # DOUBLE INTEGRAL
-222D ; [*05C5.0020.0004][*05C5.0020.0004][*05C5.0020.0004] # TRIPLE INTEGRAL
-222E ; [*05C6.0020.0002] # CONTOUR INTEGRAL
-222F ; [*05C6.0020.0004][*05C6.0020.0004] # SURFACE INTEGRAL
-2230 ; [*05C6.0020.0004][*05C6.0020.0004][*05C6.0020.0004] # VOLUME INTEGRAL
-2231 ; [*05C7.0020.0002] # CLOCKWISE INTEGRAL
-2232 ; [*05C8.0020.0002] # CLOCKWISE CONTOUR INTEGRAL
-2233 ; [*05C9.0020.0002] # ANTICLOCKWISE CONTOUR INTEGRAL
-2234 ; [*05CA.0020.0002] # THEREFORE
-2235 ; [*05CB.0020.0002] # BECAUSE
-2236 ; [*05CC.0020.0002] # RATIO
-2237 ; [*05CD.0020.0002] # PROPORTION
-2238 ; [*05CE.0020.0002] # DOT MINUS
-2239 ; [*05CF.0020.0002] # EXCESS
-223A ; [*05D0.0020.0002] # GEOMETRIC PROPORTION
-223B ; [*05D1.0020.0002] # HOMOTHETIC
-223C ; [*05D2.0020.0002] # TILDE OPERATOR
-223D ; [*05D3.0020.0002] # REVERSED TILDE
-223E ; [*05D4.0020.0002] # INVERTED LAZY S
-223F ; [*05D5.0020.0002] # SINE WAVE
-2240 ; [*05D6.0020.0002] # WREATH PRODUCT
-2241 ; [*05D2.0020.0002][.0000.002F.0002] # NOT TILDE
-2242 ; [*05D7.0020.0002] # MINUS TILDE
-2243 ; [*05D8.0020.0002] # ASYMPTOTICALLY EQUAL TO
-2244 ; [*05D8.0020.0002][.0000.002F.0002] # NOT ASYMPTOTICALLY EQUAL TO
-2245 ; [*05D9.0020.0002] # APPROXIMATELY EQUAL TO
-2246 ; [*05DA.0020.0002] # APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
-2247 ; [*05D9.0020.0002][.0000.002F.0002] # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
-2248 ; [*05DB.0020.0002] # ALMOST EQUAL TO
-2249 ; [*05DB.0020.0002][.0000.002F.0002] # NOT ALMOST EQUAL TO
-224A ; [*05DC.0020.0002] # ALMOST EQUAL OR EQUAL TO
-224B ; [*05DD.0020.0002] # TRIPLE TILDE
-224C ; [*05DE.0020.0002] # ALL EQUAL TO
-224D ; [*05DF.0020.0002] # EQUIVALENT TO
-224E ; [*05E0.0020.0002] # GEOMETRICALLY EQUIVALENT TO
-224F ; [*05E1.0020.0002] # DIFFERENCE BETWEEN
-2250 ; [*05E2.0020.0002] # APPROACHES THE LIMIT
-2251 ; [*05E3.0020.0002] # GEOMETRICALLY EQUAL TO
-2252 ; [*05E4.0020.0002] # APPROXIMATELY EQUAL TO OR THE IMAGE OF
-2253 ; [*05E5.0020.0002] # IMAGE OF OR APPROXIMATELY EQUAL TO
-2254 ; [*05E6.0020.0002] # COLON EQUALS
-2255 ; [*05E7.0020.0002] # EQUALS COLON
-2256 ; [*05E8.0020.0002] # RING IN EQUAL TO
-2257 ; [*05E9.0020.0002] # RING EQUAL TO
-2258 ; [*05EA.0020.0002] # CORRESPONDS TO
-2259 ; [*05EB.0020.0002] # ESTIMATES
-225A ; [*05EC.0020.0002] # EQUIANGULAR TO
-225B ; [*05ED.0020.0002] # STAR EQUALS
-225C ; [*05EE.0020.0002] # DELTA EQUAL TO
-225D ; [*05EF.0020.0002] # EQUAL TO BY DEFINITION
-225E ; [*05F0.0020.0002] # MEASURED BY
-225F ; [*05F1.0020.0002] # QUESTIONED EQUAL TO
-2260 ; [*05A4.0020.0002][.0000.002F.0002] # NOT EQUAL TO
-2261 ; [*05F2.0020.0002] # IDENTICAL TO
-2262 ; [*05F2.0020.0002][.0000.002F.0002] # NOT IDENTICAL TO
-2263 ; [*05F3.0020.0002] # STRICTLY EQUIVALENT TO
-2264 ; [*05F4.0020.0002] # LESS-THAN OR EQUAL TO
-2265 ; [*05F5.0020.0002] # GREATER-THAN OR EQUAL TO
-2266 ; [*05F6.0020.0002] # LESS-THAN OVER EQUAL TO
-2267 ; [*05F7.0020.0002] # GREATER-THAN OVER EQUAL TO
-2268 ; [*05F8.0020.0002] # LESS-THAN BUT NOT EQUAL TO
-2269 ; [*05F9.0020.0002] # GREATER-THAN BUT NOT EQUAL TO
-226A ; [*05FA.0020.0002] # MUCH LESS-THAN
-226B ; [*05FB.0020.0002] # MUCH GREATER-THAN
-226C ; [*05FC.0020.0002] # BETWEEN
-226D ; [*05DF.0020.0002][.0000.002F.0002] # NOT EQUIVALENT TO
-226E ; [*05A3.0020.0002][.0000.002F.0002] # NOT LESS-THAN
-226F ; [*05A5.0020.0002][.0000.002F.0002] # NOT GREATER-THAN
-2270 ; [*05F4.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR EQUAL TO
-2271 ; [*05F5.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR EQUAL TO
-2272 ; [*05FD.0020.0002] # LESS-THAN OR EQUIVALENT TO
-2273 ; [*05FE.0020.0002] # GREATER-THAN OR EQUIVALENT TO
-2274 ; [*05FD.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR EQUIVALENT TO
-2275 ; [*05FE.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR EQUIVALENT TO
-2276 ; [*05FF.0020.0002] # LESS-THAN OR GREATER-THAN
-2277 ; [*0600.0020.0002] # GREATER-THAN OR LESS-THAN
-2278 ; [*05FF.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR GREATER-THAN
-2279 ; [*0600.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR LESS-THAN
-227A ; [*0601.0020.0002] # PRECEDES
-227B ; [*0602.0020.0002] # SUCCEEDS
-227C ; [*0603.0020.0002] # PRECEDES OR EQUAL TO
-227D ; [*0604.0020.0002] # SUCCEEDS OR EQUAL TO
-227E ; [*0605.0020.0002] # PRECEDES OR EQUIVALENT TO
-227F ; [*0606.0020.0002] # SUCCEEDS OR EQUIVALENT TO
-2280 ; [*0601.0020.0002][.0000.002F.0002] # DOES NOT PRECEDE
-2281 ; [*0602.0020.0002][.0000.002F.0002] # DOES NOT SUCCEED
-2282 ; [*0607.0020.0002] # SUBSET OF
-2283 ; [*0608.0020.0002] # SUPERSET OF
-2284 ; [*0607.0020.0002][.0000.002F.0002] # NOT A SUBSET OF
-2285 ; [*0608.0020.0002][.0000.002F.0002] # NOT A SUPERSET OF
-2286 ; [*0609.0020.0002] # SUBSET OF OR EQUAL TO
-2287 ; [*060A.0020.0002] # SUPERSET OF OR EQUAL TO
-2288 ; [*0609.0020.0002][.0000.002F.0002] # NEITHER A SUBSET OF NOR EQUAL TO
-2289 ; [*060A.0020.0002][.0000.002F.0002] # NEITHER A SUPERSET OF NOR EQUAL TO
-228A ; [*060B.0020.0002] # SUBSET OF WITH NOT EQUAL TO
-228B ; [*060C.0020.0002] # SUPERSET OF WITH NOT EQUAL TO
-228C ; [*060D.0020.0002] # MULTISET
-228D ; [*060E.0020.0002] # MULTISET MULTIPLICATION
-228E ; [*060F.0020.0002] # MULTISET UNION
-228F ; [*0610.0020.0002] # SQUARE IMAGE OF
-2290 ; [*0611.0020.0002] # SQUARE ORIGINAL OF
-2291 ; [*0612.0020.0002] # SQUARE IMAGE OF OR EQUAL TO
-2292 ; [*0613.0020.0002] # SQUARE ORIGINAL OF OR EQUAL TO
-2293 ; [*0614.0020.0002] # SQUARE CAP
-2294 ; [*0615.0020.0002] # SQUARE CUP
-2295 ; [*0616.0020.0002] # CIRCLED PLUS
-2296 ; [*0617.0020.0002] # CIRCLED MINUS
-2297 ; [*0618.0020.0002] # CIRCLED TIMES
-2298 ; [*0619.0020.0002] # CIRCLED DIVISION SLASH
-2299 ; [*061A.0020.0002] # CIRCLED DOT OPERATOR
-229A ; [*061B.0020.0002] # CIRCLED RING OPERATOR
-229B ; [*061C.0020.0002] # CIRCLED ASTERISK OPERATOR
-229C ; [*061D.0020.0002] # CIRCLED EQUALS
-229D ; [*061E.0020.0002] # CIRCLED DASH
-229E ; [*061F.0020.0002] # SQUARED PLUS
-229F ; [*0620.0020.0002] # SQUARED MINUS
-22A0 ; [*0621.0020.0002] # SQUARED TIMES
-22A1 ; [*0622.0020.0002] # SQUARED DOT OPERATOR
-22A2 ; [*0623.0020.0002] # RIGHT TACK
-22A3 ; [*0624.0020.0002] # LEFT TACK
-22A4 ; [*0625.0020.0002] # DOWN TACK
-22A5 ; [*0626.0020.0002] # UP TACK
-22A6 ; [*0627.0020.0002] # ASSERTION
-22A7 ; [*0628.0020.0002] # MODELS
-22A8 ; [*0629.0020.0002] # TRUE
-22A9 ; [*062A.0020.0002] # FORCES
-22AA ; [*062B.0020.0002] # TRIPLE VERTICAL BAR RIGHT TURNSTILE
-22AB ; [*062C.0020.0002] # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22AC ; [*0623.0020.0002][.0000.002F.0002] # DOES NOT PROVE
-22AD ; [*0629.0020.0002][.0000.002F.0002] # NOT TRUE
-22AE ; [*062A.0020.0002][.0000.002F.0002] # DOES NOT FORCE
-22AF ; [*062C.0020.0002][.0000.002F.0002] # NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22B0 ; [*062D.0020.0002] # PRECEDES UNDER RELATION
-22B1 ; [*062E.0020.0002] # SUCCEEDS UNDER RELATION
-22B2 ; [*062F.0020.0002] # NORMAL SUBGROUP OF
-22B3 ; [*0630.0020.0002] # CONTAINS AS NORMAL SUBGROUP
-22B4 ; [*0631.0020.0002] # NORMAL SUBGROUP OF OR EQUAL TO
-22B5 ; [*0632.0020.0002] # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
-22B6 ; [*0633.0020.0002] # ORIGINAL OF
-22B7 ; [*0634.0020.0002] # IMAGE OF
-22B8 ; [*0635.0020.0002] # MULTIMAP
-22B9 ; [*0636.0020.0002] # HERMITIAN CONJUGATE MATRIX
-22BA ; [*0637.0020.0002] # INTERCALATE
-22BB ; [*0638.0020.0002] # XOR
-22BC ; [*0639.0020.0002] # NAND
-22BD ; [*063B.0020.0002] # NOR
-22BE ; [*063C.0020.0002] # RIGHT ANGLE WITH ARC
-22BF ; [*063D.0020.0002] # RIGHT TRIANGLE
-22C0 ; [*063E.0020.0002] # N-ARY LOGICAL AND
-22C1 ; [*063F.0020.0002] # N-ARY LOGICAL OR
-22C2 ; [*0640.0020.0002] # N-ARY INTERSECTION
-22C3 ; [*0641.0020.0002] # N-ARY UNION
-22C4 ; [*0642.0020.0002] # DIAMOND OPERATOR
-22C5 ; [*0643.0020.0002] # DOT OPERATOR
-22C6 ; [*0644.0020.0002] # STAR OPERATOR
-22C7 ; [*0645.0020.0002] # DIVISION TIMES
-22C8 ; [*0646.0020.0002] # BOWTIE
-22C9 ; [*0647.0020.0002] # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CA ; [*0648.0020.0002] # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CB ; [*0649.0020.0002] # LEFT SEMIDIRECT PRODUCT
-22CC ; [*064A.0020.0002] # RIGHT SEMIDIRECT PRODUCT
-22CD ; [*064B.0020.0002] # REVERSED TILDE EQUALS
-22CE ; [*064C.0020.0002] # CURLY LOGICAL OR
-22CF ; [*064D.0020.0002] # CURLY LOGICAL AND
-22D0 ; [*064E.0020.0002] # DOUBLE SUBSET
-22D1 ; [*064F.0020.0002] # DOUBLE SUPERSET
-22D2 ; [*0650.0020.0002] # DOUBLE INTERSECTION
-22D3 ; [*0651.0020.0002] # DOUBLE UNION
-22D4 ; [*0652.0020.0002] # PITCHFORK
-22D5 ; [*0653.0020.0002] # EQUAL AND PARALLEL TO
-22D6 ; [*0654.0020.0002] # LESS-THAN WITH DOT
-22D7 ; [*0655.0020.0002] # GREATER-THAN WITH DOT
-22D8 ; [*0656.0020.0002] # VERY MUCH LESS-THAN
-22D9 ; [*0657.0020.0002] # VERY MUCH GREATER-THAN
-22DA ; [*0658.0020.0002] # LESS-THAN EQUAL TO OR GREATER-THAN
-22DB ; [*0659.0020.0002] # GREATER-THAN EQUAL TO OR LESS-THAN
-22DC ; [*065A.0020.0002] # EQUAL TO OR LESS-THAN
-22DD ; [*065B.0020.0002] # EQUAL TO OR GREATER-THAN
-22DE ; [*065C.0020.0002] # EQUAL TO OR PRECEDES
-22DF ; [*065D.0020.0002] # EQUAL TO OR SUCCEEDS
-22E0 ; [*0603.0020.0002][.0000.002F.0002] # DOES NOT PRECEDE OR EQUAL
-22E1 ; [*0604.0020.0002][.0000.002F.0002] # DOES NOT SUCCEED OR EQUAL
-22E2 ; [*0612.0020.0002][.0000.002F.0002] # NOT SQUARE IMAGE OF OR EQUAL TO
-22E3 ; [*0613.0020.0002][.0000.002F.0002] # NOT SQUARE ORIGINAL OF OR EQUAL TO
-22E4 ; [*065E.0020.0002] # SQUARE IMAGE OF OR NOT EQUAL TO
-22E5 ; [*065F.0020.0002] # SQUARE ORIGINAL OF OR NOT EQUAL TO
-22E6 ; [*0660.0020.0002] # LESS-THAN BUT NOT EQUIVALENT TO
-22E7 ; [*0661.0020.0002] # GREATER-THAN BUT NOT EQUIVALENT TO
-22E8 ; [*0662.0020.0002] # PRECEDES BUT NOT EQUIVALENT TO
-22E9 ; [*0663.0020.0002] # SUCCEEDS BUT NOT EQUIVALENT TO
-22EA ; [*062F.0020.0002][.0000.002F.0002] # NOT NORMAL SUBGROUP OF
-22EB ; [*0630.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS NORMAL SUBGROUP
-22EC ; [*0631.0020.0002][.0000.002F.0002] # NOT NORMAL SUBGROUP OF OR EQUAL TO
-22ED ; [*0632.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
-22EE ; [*0664.0020.0002] # VERTICAL ELLIPSIS
-22EF ; [*0665.0020.0002] # MIDLINE HORIZONTAL ELLIPSIS
-22F0 ; [*0666.0020.0002] # UP RIGHT DIAGONAL ELLIPSIS
-22F1 ; [*0667.0020.0002] # DOWN RIGHT DIAGONAL ELLIPSIS
-22F2 ; [*0668.0020.0002] # ELEMENT OF WITH LONG HORIZONTAL STROKE
-22F3 ; [*0669.0020.0002] # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F4 ; [*066A.0020.0002] # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F5 ; [*066B.0020.0002] # ELEMENT OF WITH DOT ABOVE
-22F6 ; [*066C.0020.0002] # ELEMENT OF WITH OVERBAR
-22F7 ; [*066D.0020.0002] # SMALL ELEMENT OF WITH OVERBAR
-22F8 ; [*066E.0020.0002] # ELEMENT OF WITH UNDERBAR
-22F9 ; [*066F.0020.0002] # ELEMENT OF WITH TWO HORIZONTAL STROKES
-22FA ; [*0670.0020.0002] # CONTAINS WITH LONG HORIZONTAL STROKE
-22FB ; [*0671.0020.0002] # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FC ; [*0672.0020.0002] # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FD ; [*0673.0020.0002] # CONTAINS WITH OVERBAR
-22FE ; [*0674.0020.0002] # SMALL CONTAINS WITH OVERBAR
-22FF ; [*0675.0020.0002] # Z NOTATION BAG MEMBERSHIP
-2300 ; [*0676.0020.0002] # DIAMETER SIGN
-2301 ; [*0677.0020.0002] # ELECTRIC ARROW
-2302 ; [*0678.0020.0002] # HOUSE
-2303 ; [*0679.0020.0002] # UP ARROWHEAD
-2304 ; [*067A.0020.0002] # DOWN ARROWHEAD
-2305 ; [*067B.0020.0002] # PROJECTIVE
-2306 ; [*067C.0020.0002] # PERSPECTIVE
-2307 ; [*067D.0020.0002] # WAVY LINE
-2308 ; [*0308.0020.0002] # LEFT CEILING
-2309 ; [*0309.0020.0002] # RIGHT CEILING
-230A ; [*030A.0020.0002] # LEFT FLOOR
-230B ; [*030B.0020.0002] # RIGHT FLOOR
-230C ; [*067E.0020.0002] # BOTTOM RIGHT CROP
-230D ; [*067F.0020.0002] # BOTTOM LEFT CROP
-230E ; [*0680.0020.0002] # TOP RIGHT CROP
-230F ; [*0681.0020.0002] # TOP LEFT CROP
-2310 ; [*0682.0020.0002] # REVERSED NOT SIGN
-2311 ; [*0683.0020.0002] # SQUARE LOZENGE
-2312 ; [*0684.0020.0002] # ARC
-2313 ; [*0685.0020.0002] # SEGMENT
-2314 ; [*0686.0020.0002] # SECTOR
-2315 ; [*0687.0020.0002] # TELEPHONE RECORDER
-2316 ; [*0688.0020.0002] # POSITION INDICATOR
-2317 ; [*0689.0020.0002] # VIEWDATA SQUARE
-2318 ; [*068A.0020.0002] # PLACE OF INTEREST SIGN
-2319 ; [*068B.0020.0002] # TURNED NOT SIGN
-231A ; [*068C.0020.0002] # WATCH
-231B ; [*068D.0020.0002] # HOURGLASS
-231C ; [*068E.0020.0002] # TOP LEFT CORNER
-231D ; [*068F.0020.0002] # TOP RIGHT CORNER
-231E ; [*0690.0020.0002] # BOTTOM LEFT CORNER
-231F ; [*0691.0020.0002] # BOTTOM RIGHT CORNER
-2320 ; [*0692.0020.0002] # TOP HALF INTEGRAL
-2321 ; [*0693.0020.0002] # BOTTOM HALF INTEGRAL
-2322 ; [*0694.0020.0002] # FROWN
-2323 ; [*0695.0020.0002] # SMILE
-2324 ; [*0696.0020.0002] # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
-2325 ; [*0697.0020.0002] # OPTION KEY
-2326 ; [*0698.0020.0002] # ERASE TO THE RIGHT
-2327 ; [*0699.0020.0002] # X IN A RECTANGLE BOX
-2328 ; [*069A.0020.0002] # KEYBOARD
-2329 ; [*0352.0020.0002] # LEFT-POINTING ANGLE BRACKET
-232A ; [*0353.0020.0002] # RIGHT-POINTING ANGLE BRACKET
-232B ; [*069B.0020.0002] # ERASE TO THE LEFT
-232C ; [*069C.0020.0002] # BENZENE RING
-232D ; [*069D.0020.0002] # CYLINDRICITY
-232E ; [*069E.0020.0002] # ALL AROUND-PROFILE
-232F ; [*069F.0020.0002] # SYMMETRY
-2330 ; [*06A0.0020.0002] # TOTAL RUNOUT
-2331 ; [*06A1.0020.0002] # DIMENSION ORIGIN
-2332 ; [*06A2.0020.0002] # CONICAL TAPER
-2333 ; [*06A3.0020.0002] # SLOPE
-2334 ; [*06A4.0020.0002] # COUNTERBORE
-2335 ; [*06A5.0020.0002] # COUNTERSINK
-2336 ; [*06A6.0020.0002] # APL FUNCTIONAL SYMBOL I-BEAM
-2337 ; [*06A7.0020.0002] # APL FUNCTIONAL SYMBOL SQUISH QUAD
-2338 ; [*06A8.0020.0002] # APL FUNCTIONAL SYMBOL QUAD EQUAL
-2339 ; [*06A9.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DIVIDE
-233A ; [*06AA.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DIAMOND
-233B ; [*06AB.0020.0002] # APL FUNCTIONAL SYMBOL QUAD JOT
-233C ; [*06AC.0020.0002] # APL FUNCTIONAL SYMBOL QUAD CIRCLE
-233D ; [*06AD.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE STILE
-233E ; [*06AE.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE JOT
-233F ; [*06AF.0020.0002] # APL FUNCTIONAL SYMBOL SLASH BAR
-2340 ; [*06B0.0020.0002] # APL FUNCTIONAL SYMBOL BACKSLASH BAR
-2341 ; [*06B1.0020.0002] # APL FUNCTIONAL SYMBOL QUAD SLASH
-2342 ; [*06B2.0020.0002] # APL FUNCTIONAL SYMBOL QUAD BACKSLASH
-2343 ; [*06B3.0020.0002] # APL FUNCTIONAL SYMBOL QUAD LESS-THAN
-2344 ; [*06B4.0020.0002] # APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
-2345 ; [*06B5.0020.0002] # APL FUNCTIONAL SYMBOL LEFTWARDS VANE
-2346 ; [*06B6.0020.0002] # APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
-2347 ; [*06B7.0020.0002] # APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
-2348 ; [*06B8.0020.0002] # APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
-2349 ; [*06B9.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
-234A ; [*06BA.0020.0002] # APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
-234B ; [*06BB.0020.0002] # APL FUNCTIONAL SYMBOL DELTA STILE
-234C ; [*06BC.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DOWN CARET
-234D ; [*06BD.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DELTA
-234E ; [*06BE.0020.0002] # APL FUNCTIONAL SYMBOL DOWN TACK JOT
-234F ; [*06BF.0020.0002] # APL FUNCTIONAL SYMBOL UPWARDS VANE
-2350 ; [*06C0.0020.0002] # APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
-2351 ; [*06C1.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK OVERBAR
-2352 ; [*06C2.0020.0002] # APL FUNCTIONAL SYMBOL DEL STILE
-2353 ; [*06C3.0020.0002] # APL FUNCTIONAL SYMBOL QUAD UP CARET
-2354 ; [*06C4.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DEL
-2355 ; [*06C5.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK JOT
-2356 ; [*06C6.0020.0002] # APL FUNCTIONAL SYMBOL DOWNWARDS VANE
-2357 ; [*06C7.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
-2358 ; [*06C8.0020.0002] # APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
-2359 ; [*06C9.0020.0002] # APL FUNCTIONAL SYMBOL DELTA UNDERBAR
-235A ; [*06CA.0020.0002] # APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
-235B ; [*06CB.0020.0002] # APL FUNCTIONAL SYMBOL JOT UNDERBAR
-235C ; [*06CC.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
-235D ; [*06CD.0020.0002] # APL FUNCTIONAL SYMBOL UP SHOE JOT
-235E ; [*06CE.0020.0002] # APL FUNCTIONAL SYMBOL QUOTE QUAD
-235F ; [*06CF.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE STAR
-2360 ; [*06D0.0020.0002] # APL FUNCTIONAL SYMBOL QUAD COLON
-2361 ; [*06D1.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
-2362 ; [*06D2.0020.0002] # APL FUNCTIONAL SYMBOL DEL DIAERESIS
-2363 ; [*06D3.0020.0002] # APL FUNCTIONAL SYMBOL STAR DIAERESIS
-2364 ; [*06D4.0020.0002] # APL FUNCTIONAL SYMBOL JOT DIAERESIS
-2365 ; [*06D5.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
-2366 ; [*06D6.0020.0002] # APL FUNCTIONAL SYMBOL DOWN SHOE STILE
-2367 ; [*06D7.0020.0002] # APL FUNCTIONAL SYMBOL LEFT SHOE STILE
-2368 ; [*06D8.0020.0002] # APL FUNCTIONAL SYMBOL TILDE DIAERESIS
-2369 ; [*06D9.0020.0002] # APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
-236A ; [*06DA.0020.0002] # APL FUNCTIONAL SYMBOL COMMA BAR
-236B ; [*06DB.0020.0002] # APL FUNCTIONAL SYMBOL DEL TILDE
-236C ; [*06DC.0020.0002] # APL FUNCTIONAL SYMBOL ZILDE
-236D ; [*06DD.0020.0002] # APL FUNCTIONAL SYMBOL STILE TILDE
-236E ; [*06DE.0020.0002] # APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
-236F ; [*06DF.0020.0002] # APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
-2370 ; [*06E0.0020.0002] # APL FUNCTIONAL SYMBOL QUAD QUESTION
-2371 ; [*06E1.0020.0002] # APL FUNCTIONAL SYMBOL DOWN CARET TILDE
-2372 ; [*06E2.0020.0002] # APL FUNCTIONAL SYMBOL UP CARET TILDE
-2373 ; [*06E3.0020.0002] # APL FUNCTIONAL SYMBOL IOTA
-2374 ; [*06E4.0020.0002] # APL FUNCTIONAL SYMBOL RHO
-2375 ; [*06E5.0020.0002] # APL FUNCTIONAL SYMBOL OMEGA
-2376 ; [*06E6.0020.0002] # APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
-2377 ; [*06E7.0020.0002] # APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
-2378 ; [*06E8.0020.0002] # APL FUNCTIONAL SYMBOL IOTA UNDERBAR
-2379 ; [*06E9.0020.0002] # APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
-237A ; [*06EA.0020.0002] # APL FUNCTIONAL SYMBOL ALPHA
-237B ; [*06EB.0020.0002] # NOT CHECK MARK
-237C ; [*06EC.0020.0002] # RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
-237D ; [*06ED.0020.0002] # SHOULDERED OPEN BOX
-237E ; [*06EE.0020.0002] # BELL SYMBOL
-237F ; [*06EF.0020.0002] # VERTICAL LINE WITH MIDDLE DOT
-2380 ; [*06F0.0020.0002] # INSERTION SYMBOL
-2381 ; [*06F1.0020.0002] # CONTINUOUS UNDERLINE SYMBOL
-2382 ; [*06F2.0020.0002] # DISCONTINUOUS UNDERLINE SYMBOL
-2383 ; [*06F3.0020.0002] # EMPHASIS SYMBOL
-2384 ; [*06F4.0020.0002] # COMPOSITION SYMBOL
-2385 ; [*06F5.0020.0002] # WHITE SQUARE WITH CENTRE VERTICAL LINE
-2386 ; [*06F6.0020.0002] # ENTER SYMBOL
-2387 ; [*06F7.0020.0002] # ALTERNATIVE KEY SYMBOL
-2388 ; [*06F8.0020.0002] # HELM SYMBOL
-2389 ; [*06F9.0020.0002] # CIRCLED HORIZONTAL BAR WITH NOTCH
-238A ; [*06FA.0020.0002] # CIRCLED TRIANGLE DOWN
-238B ; [*06FB.0020.0002] # BROKEN CIRCLE WITH NORTHWEST ARROW
-238C ; [*06FC.0020.0002] # UNDO SYMBOL
-238D ; [*06FD.0020.0002] # MONOSTABLE SYMBOL
-238E ; [*06FE.0020.0002] # HYSTERESIS SYMBOL
-238F ; [*06FF.0020.0002] # OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL
-2390 ; [*0700.0020.0002] # OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL
-2391 ; [*0701.0020.0002] # PASSIVE-PULL-DOWN-OUTPUT SYMBOL
-2392 ; [*0702.0020.0002] # PASSIVE-PULL-UP-OUTPUT SYMBOL
-2393 ; [*0703.0020.0002] # DIRECT CURRENT SYMBOL FORM TWO
-2394 ; [*0704.0020.0002] # SOFTWARE-FUNCTION SYMBOL
-2395 ; [*0705.0020.0002] # APL FUNCTIONAL SYMBOL QUAD
-2396 ; [*0706.0020.0002] # DECIMAL SEPARATOR KEY SYMBOL
-2397 ; [*0707.0020.0002] # PREVIOUS PAGE
-2398 ; [*0708.0020.0002] # NEXT PAGE
-2399 ; [*0709.0020.0002] # PRINT SCREEN SYMBOL
-239A ; [*070A.0020.0002] # CLEAR SCREEN SYMBOL
-239B ; [*070B.0020.0002] # LEFT PARENTHESIS UPPER HOOK
-239C ; [*070C.0020.0002] # LEFT PARENTHESIS EXTENSION
-239D ; [*070D.0020.0002] # LEFT PARENTHESIS LOWER HOOK
-239E ; [*070E.0020.0002] # RIGHT PARENTHESIS UPPER HOOK
-239F ; [*070F.0020.0002] # RIGHT PARENTHESIS EXTENSION
-23A0 ; [*0710.0020.0002] # RIGHT PARENTHESIS LOWER HOOK
-23A1 ; [*0711.0020.0002] # LEFT SQUARE BRACKET UPPER CORNER
-23A2 ; [*0712.0020.0002] # LEFT SQUARE BRACKET EXTENSION
-23A3 ; [*0713.0020.0002] # LEFT SQUARE BRACKET LOWER CORNER
-23A4 ; [*0714.0020.0002] # RIGHT SQUARE BRACKET UPPER CORNER
-23A5 ; [*0715.0020.0002] # RIGHT SQUARE BRACKET EXTENSION
-23A6 ; [*0716.0020.0002] # RIGHT SQUARE BRACKET LOWER CORNER
-23A7 ; [*0717.0020.0002] # LEFT CURLY BRACKET UPPER HOOK
-23A8 ; [*0718.0020.0002] # LEFT CURLY BRACKET MIDDLE PIECE
-23A9 ; [*0719.0020.0002] # LEFT CURLY BRACKET LOWER HOOK
-23AA ; [*071A.0020.0002] # CURLY BRACKET EXTENSION
-23AB ; [*071B.0020.0002] # RIGHT CURLY BRACKET UPPER HOOK
-23AC ; [*071C.0020.0002] # RIGHT CURLY BRACKET MIDDLE PIECE
-23AD ; [*071D.0020.0002] # RIGHT CURLY BRACKET LOWER HOOK
-23AE ; [*071E.0020.0002] # INTEGRAL EXTENSION
-23AF ; [*071F.0020.0002] # HORIZONTAL LINE EXTENSION
-23B0 ; [*0720.0020.0002] # UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
-23B1 ; [*0721.0020.0002] # UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
-23B2 ; [*0722.0020.0002] # SUMMATION TOP
-23B3 ; [*0723.0020.0002] # SUMMATION BOTTOM
-23B4 ; [*0724.0020.0002] # TOP SQUARE BRACKET
-23B5 ; [*0725.0020.0002] # BOTTOM SQUARE BRACKET
-23B6 ; [*0726.0020.0002] # BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
-23B7 ; [*0727.0020.0002] # RADICAL SYMBOL BOTTOM
-23B8 ; [*0728.0020.0002] # LEFT VERTICAL BOX LINE
-23B9 ; [*0729.0020.0002] # RIGHT VERTICAL BOX LINE
-23BA ; [*072A.0020.0002] # HORIZONTAL SCAN LINE-1
-23BB ; [*072B.0020.0002] # HORIZONTAL SCAN LINE-3
-23BC ; [*072C.0020.0002] # HORIZONTAL SCAN LINE-7
-23BD ; [*072D.0020.0002] # HORIZONTAL SCAN LINE-9
-23BE ; [*072E.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT
-23BF ; [*072F.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT
-23C0 ; [*0730.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE
-23C1 ; [*0731.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE
-23C2 ; [*0732.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE
-23C3 ; [*0733.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE
-23C4 ; [*0734.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE
-23C5 ; [*0735.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE
-23C6 ; [*0736.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE
-23C7 ; [*0737.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE
-23C8 ; [*0738.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE
-23C9 ; [*0739.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL
-23CA ; [*073A.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL
-23CB ; [*073B.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT
-23CC ; [*073C.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT
-23CD ; [*073D.0020.0002] # SQUARE FOOT
-23CE ; [*073E.0020.0002] # RETURN SYMBOL
-23CF ; [*073F.0020.0002] # EJECT SYMBOL
-23D0 ; [*0740.0020.0002] # VERTICAL LINE EXTENSION
-23D1 ; [*0741.0020.0002] # METRICAL BREVE
-23D2 ; [*0742.0020.0002] # METRICAL LONG OVER SHORT
-23D3 ; [*0743.0020.0002] # METRICAL SHORT OVER LONG
-23D4 ; [*0744.0020.0002] # METRICAL LONG OVER TWO SHORTS
-23D5 ; [*0745.0020.0002] # METRICAL TWO SHORTS OVER LONG
-23D6 ; [*0746.0020.0002] # METRICAL TWO SHORTS JOINED
-23D7 ; [*0747.0020.0002] # METRICAL TRISEME
-23D8 ; [*0748.0020.0002] # METRICAL TETRASEME
-23D9 ; [*0749.0020.0002] # METRICAL PENTASEME
-23DA ; [*074A.0020.0002] # EARTH GROUND
-23DB ; [*074B.0020.0002] # FUSE
-23DC ; [*074C.0020.0002] # TOP PARENTHESIS
-23DD ; [*074D.0020.0002] # BOTTOM PARENTHESIS
-23DE ; [*074E.0020.0002] # TOP CURLY BRACKET
-23DF ; [*074F.0020.0002] # BOTTOM CURLY BRACKET
-23E0 ; [*0750.0020.0002] # TOP TORTOISE SHELL BRACKET
-23E1 ; [*0751.0020.0002] # BOTTOM TORTOISE SHELL BRACKET
-23E2 ; [*0752.0020.0002] # WHITE TRAPEZIUM
-23E3 ; [*0753.0020.0002] # BENZENE RING WITH CIRCLE
-23E4 ; [*0754.0020.0002] # STRAIGHTNESS
-23E5 ; [*0755.0020.0002] # FLATNESS
-23E6 ; [*0756.0020.0002] # AC CURRENT
-23E7 ; [*0757.0020.0002] # ELECTRICAL INTERSECTION
-23E8 ; [*0758.0020.0002] # DECIMAL EXPONENT SYMBOL
-23E9 ; [*0759.0020.0002] # BLACK RIGHT-POINTING DOUBLE TRIANGLE
-23EA ; [*075A.0020.0002] # BLACK LEFT-POINTING DOUBLE TRIANGLE
-23EB ; [*075B.0020.0002] # BLACK UP-POINTING DOUBLE TRIANGLE
-23EC ; [*075C.0020.0002] # BLACK DOWN-POINTING DOUBLE TRIANGLE
-23ED ; [*075D.0020.0002] # BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EE ; [*075E.0020.0002] # BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EF ; [*075F.0020.0002] # BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
-23F0 ; [*0760.0020.0002] # ALARM CLOCK
-23F1 ; [*0761.0020.0002] # STOPWATCH
-23F2 ; [*0762.0020.0002] # TIMER CLOCK
-23F3 ; [*0763.0020.0002] # HOURGLASS WITH FLOWING SAND
-2400 ; [*0764.0020.0002] # SYMBOL FOR NULL
-2401 ; [*0765.0020.0002] # SYMBOL FOR START OF HEADING
-2402 ; [*0766.0020.0002] # SYMBOL FOR START OF TEXT
-2403 ; [*0767.0020.0002] # SYMBOL FOR END OF TEXT
-2404 ; [*0768.0020.0002] # SYMBOL FOR END OF TRANSMISSION
-2405 ; [*0769.0020.0002] # SYMBOL FOR ENQUIRY
-2406 ; [*076A.0020.0002] # SYMBOL FOR ACKNOWLEDGE
-2407 ; [*076B.0020.0002] # SYMBOL FOR BELL
-2408 ; [*076C.0020.0002] # SYMBOL FOR BACKSPACE
-2409 ; [*076D.0020.0002] # SYMBOL FOR HORIZONTAL TABULATION
-240A ; [*076E.0020.0002] # SYMBOL FOR LINE FEED
-240B ; [*076F.0020.0002] # SYMBOL FOR VERTICAL TABULATION
-240C ; [*0770.0020.0002] # SYMBOL FOR FORM FEED
-240D ; [*0771.0020.0002] # SYMBOL FOR CARRIAGE RETURN
-240E ; [*0772.0020.0002] # SYMBOL FOR SHIFT OUT
-240F ; [*0773.0020.0002] # SYMBOL FOR SHIFT IN
-2410 ; [*0774.0020.0002] # SYMBOL FOR DATA LINK ESCAPE
-2411 ; [*0775.0020.0002] # SYMBOL FOR DEVICE CONTROL ONE
-2412 ; [*0776.0020.0002] # SYMBOL FOR DEVICE CONTROL TWO
-2413 ; [*0777.0020.0002] # SYMBOL FOR DEVICE CONTROL THREE
-2414 ; [*0778.0020.0002] # SYMBOL FOR DEVICE CONTROL FOUR
-2415 ; [*0779.0020.0002] # SYMBOL FOR NEGATIVE ACKNOWLEDGE
-2416 ; [*077A.0020.0002] # SYMBOL FOR SYNCHRONOUS IDLE
-2417 ; [*077B.0020.0002] # SYMBOL FOR END OF TRANSMISSION BLOCK
-2418 ; [*077C.0020.0002] # SYMBOL FOR CANCEL
-2419 ; [*077D.0020.0002] # SYMBOL FOR END OF MEDIUM
-241A ; [*077E.0020.0002] # SYMBOL FOR SUBSTITUTE
-241B ; [*077F.0020.0002] # SYMBOL FOR ESCAPE
-241C ; [*0780.0020.0002] # SYMBOL FOR FILE SEPARATOR
-241D ; [*0781.0020.0002] # SYMBOL FOR GROUP SEPARATOR
-241E ; [*0782.0020.0002] # SYMBOL FOR RECORD SEPARATOR
-241F ; [*0783.0020.0002] # SYMBOL FOR UNIT SEPARATOR
-2420 ; [*0784.0020.0002] # SYMBOL FOR SPACE
-2421 ; [*0785.0020.0002] # SYMBOL FOR DELETE
-2422 ; [*0786.0020.0002] # BLANK SYMBOL
-2423 ; [*0787.0020.0002] # OPEN BOX
-2424 ; [*0788.0020.0002] # SYMBOL FOR NEWLINE
-2425 ; [*0789.0020.0002] # SYMBOL FOR DELETE FORM TWO
-2426 ; [*078A.0020.0002] # SYMBOL FOR SUBSTITUTE FORM TWO
-2440 ; [*078B.0020.0002] # OCR HOOK
-2441 ; [*078C.0020.0002] # OCR CHAIR
-2442 ; [*078D.0020.0002] # OCR FORK
-2443 ; [*078E.0020.0002] # OCR INVERTED FORK
-2444 ; [*078F.0020.0002] # OCR BELT BUCKLE
-2445 ; [*0790.0020.0002] # OCR BOW TIE
-2446 ; [*0791.0020.0002] # OCR BRANCH BANK IDENTIFICATION
-2447 ; [*0792.0020.0002] # OCR AMOUNT OF CHECK
-2448 ; [*0793.0020.0002] # OCR DASH
-2449 ; [*0794.0020.0002] # OCR CUSTOMER ACCOUNT NUMBER
-244A ; [*0795.0020.0002] # OCR DOUBLE BACKSLASH
-2500 ; [*0796.0020.0002] # BOX DRAWINGS LIGHT HORIZONTAL
-2501 ; [*0797.0020.0002] # BOX DRAWINGS HEAVY HORIZONTAL
-2502 ; [*0798.0020.0002] # BOX DRAWINGS LIGHT VERTICAL
-2503 ; [*0799.0020.0002] # BOX DRAWINGS HEAVY VERTICAL
-2504 ; [*079A.0020.0002] # BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
-2505 ; [*079B.0020.0002] # BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
-2506 ; [*079C.0020.0002] # BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
-2507 ; [*079D.0020.0002] # BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
-2508 ; [*079E.0020.0002] # BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
-2509 ; [*079F.0020.0002] # BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
-250A ; [*07A0.0020.0002] # BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
-250B ; [*07A1.0020.0002] # BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
-250C ; [*07A2.0020.0002] # BOX DRAWINGS LIGHT DOWN AND RIGHT
-250D ; [*07A3.0020.0002] # BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
-250E ; [*07A4.0020.0002] # BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
-250F ; [*07A5.0020.0002] # BOX DRAWINGS HEAVY DOWN AND RIGHT
-2510 ; [*07A6.0020.0002] # BOX DRAWINGS LIGHT DOWN AND LEFT
-2511 ; [*07A7.0020.0002] # BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
-2512 ; [*07A8.0020.0002] # BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
-2513 ; [*07A9.0020.0002] # BOX DRAWINGS HEAVY DOWN AND LEFT
-2514 ; [*07AA.0020.0002] # BOX DRAWINGS LIGHT UP AND RIGHT
-2515 ; [*07AB.0020.0002] # BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
-2516 ; [*07AC.0020.0002] # BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
-2517 ; [*07AD.0020.0002] # BOX DRAWINGS HEAVY UP AND RIGHT
-2518 ; [*07AE.0020.0002] # BOX DRAWINGS LIGHT UP AND LEFT
-2519 ; [*07AF.0020.0002] # BOX DRAWINGS UP LIGHT AND LEFT HEAVY
-251A ; [*07B0.0020.0002] # BOX DRAWINGS UP HEAVY AND LEFT LIGHT
-251B ; [*07B1.0020.0002] # BOX DRAWINGS HEAVY UP AND LEFT
-251C ; [*07B2.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-251D ; [*07B3.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
-251E ; [*07B4.0020.0002] # BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
-251F ; [*07B5.0020.0002] # BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
-2520 ; [*07B6.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
-2521 ; [*07B7.0020.0002] # BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
-2522 ; [*07B8.0020.0002] # BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
-2523 ; [*07B9.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND RIGHT
-2524 ; [*07BA.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND LEFT
-2525 ; [*07BB.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
-2526 ; [*07BC.0020.0002] # BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
-2527 ; [*07BD.0020.0002] # BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
-2528 ; [*07BE.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
-2529 ; [*07BF.0020.0002] # BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
-252A ; [*07C0.0020.0002] # BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
-252B ; [*07C1.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND LEFT
-252C ; [*07C2.0020.0002] # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-252D ; [*07C3.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
-252E ; [*07C4.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
-252F ; [*07C5.0020.0002] # BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
-2530 ; [*07C6.0020.0002] # BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
-2531 ; [*07C7.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
-2532 ; [*07C8.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
-2533 ; [*07C9.0020.0002] # BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
-2534 ; [*07CA.0020.0002] # BOX DRAWINGS LIGHT UP AND HORIZONTAL
-2535 ; [*07CB.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
-2536 ; [*07CC.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
-2537 ; [*07CD.0020.0002] # BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
-2538 ; [*07CE.0020.0002] # BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
-2539 ; [*07CF.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
-253A ; [*07D0.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
-253B ; [*07D1.0020.0002] # BOX DRAWINGS HEAVY UP AND HORIZONTAL
-253C ; [*07D2.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-253D ; [*07D3.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
-253E ; [*07D4.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
-253F ; [*07D5.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
-2540 ; [*07D6.0020.0002] # BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
-2541 ; [*07D7.0020.0002] # BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
-2542 ; [*07D8.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
-2543 ; [*07D9.0020.0002] # BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
-2544 ; [*07DA.0020.0002] # BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
-2545 ; [*07DB.0020.0002] # BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
-2546 ; [*07DC.0020.0002] # BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
-2547 ; [*07DD.0020.0002] # BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
-2548 ; [*07DE.0020.0002] # BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
-2549 ; [*07DF.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
-254A ; [*07E0.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
-254B ; [*07E1.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
-254C ; [*07E2.0020.0002] # BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
-254D ; [*07E3.0020.0002] # BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
-254E ; [*07E4.0020.0002] # BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
-254F ; [*07E5.0020.0002] # BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
-2550 ; [*07E6.0020.0002] # BOX DRAWINGS DOUBLE HORIZONTAL
-2551 ; [*07E7.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL
-2552 ; [*07E8.0020.0002] # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-2553 ; [*07E9.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-2554 ; [*07EA.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND RIGHT
-2555 ; [*07EB.0020.0002] # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-2556 ; [*07EC.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-2557 ; [*07ED.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND LEFT
-2558 ; [*07EE.0020.0002] # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-2559 ; [*07EF.0020.0002] # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-255A ; [*07F0.0020.0002] # BOX DRAWINGS DOUBLE UP AND RIGHT
-255B ; [*07F1.0020.0002] # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-255C ; [*07F2.0020.0002] # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-255D ; [*07F3.0020.0002] # BOX DRAWINGS DOUBLE UP AND LEFT
-255E ; [*07F4.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-255F ; [*07F5.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-2560 ; [*07F6.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-2561 ; [*07F7.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-2562 ; [*07F8.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-2563 ; [*07F9.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-2564 ; [*07FA.0020.0002] # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-2565 ; [*07FB.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-2566 ; [*07FC.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-2567 ; [*07FD.0020.0002] # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-2568 ; [*07FE.0020.0002] # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-2569 ; [*07FF.0020.0002] # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-256A ; [*0800.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-256B ; [*0801.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-256C ; [*0802.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-256D ; [*0803.0020.0002] # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
-256E ; [*0804.0020.0002] # BOX DRAWINGS LIGHT ARC DOWN AND LEFT
-256F ; [*0805.0020.0002] # BOX DRAWINGS LIGHT ARC UP AND LEFT
-2570 ; [*0806.0020.0002] # BOX DRAWINGS LIGHT ARC UP AND RIGHT
-2571 ; [*0807.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
-2572 ; [*0808.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
-2573 ; [*0809.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL CROSS
-2574 ; [*080A.0020.0002] # BOX DRAWINGS LIGHT LEFT
-2575 ; [*080B.0020.0002] # BOX DRAWINGS LIGHT UP
-2576 ; [*080C.0020.0002] # BOX DRAWINGS LIGHT RIGHT
-2577 ; [*080D.0020.0002] # BOX DRAWINGS LIGHT DOWN
-2578 ; [*080E.0020.0002] # BOX DRAWINGS HEAVY LEFT
-2579 ; [*080F.0020.0002] # BOX DRAWINGS HEAVY UP
-257A ; [*0810.0020.0002] # BOX DRAWINGS HEAVY RIGHT
-257B ; [*0811.0020.0002] # BOX DRAWINGS HEAVY DOWN
-257C ; [*0812.0020.0002] # BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
-257D ; [*0813.0020.0002] # BOX DRAWINGS LIGHT UP AND HEAVY DOWN
-257E ; [*0814.0020.0002] # BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
-257F ; [*0815.0020.0002] # BOX DRAWINGS HEAVY UP AND LIGHT DOWN
-2580 ; [*0816.0020.0002] # UPPER HALF BLOCK
-2581 ; [*0817.0020.0002] # LOWER ONE EIGHTH BLOCK
-2582 ; [*0818.0020.0002] # LOWER ONE QUARTER BLOCK
-2583 ; [*0819.0020.0002] # LOWER THREE EIGHTHS BLOCK
-2584 ; [*081A.0020.0002] # LOWER HALF BLOCK
-2585 ; [*081B.0020.0002] # LOWER FIVE EIGHTHS BLOCK
-2586 ; [*081C.0020.0002] # LOWER THREE QUARTERS BLOCK
-2587 ; [*081D.0020.0002] # LOWER SEVEN EIGHTHS BLOCK
-2588 ; [*081E.0020.0002] # FULL BLOCK
-2589 ; [*081F.0020.0002] # LEFT SEVEN EIGHTHS BLOCK
-258A ; [*0820.0020.0002] # LEFT THREE QUARTERS BLOCK
-258B ; [*0821.0020.0002] # LEFT FIVE EIGHTHS BLOCK
-258C ; [*0822.0020.0002] # LEFT HALF BLOCK
-258D ; [*0823.0020.0002] # LEFT THREE EIGHTHS BLOCK
-258E ; [*0824.0020.0002] # LEFT ONE QUARTER BLOCK
-258F ; [*0825.0020.0002] # LEFT ONE EIGHTH BLOCK
-2590 ; [*0826.0020.0002] # RIGHT HALF BLOCK
-2591 ; [*0827.0020.0002] # LIGHT SHADE
-2592 ; [*0828.0020.0002] # MEDIUM SHADE
-2593 ; [*0829.0020.0002] # DARK SHADE
-2594 ; [*082A.0020.0002] # UPPER ONE EIGHTH BLOCK
-2595 ; [*082B.0020.0002] # RIGHT ONE EIGHTH BLOCK
-2596 ; [*082C.0020.0002] # QUADRANT LOWER LEFT
-2597 ; [*082D.0020.0002] # QUADRANT LOWER RIGHT
-2598 ; [*082E.0020.0002] # QUADRANT UPPER LEFT
-2599 ; [*082F.0020.0002] # QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT
-259A ; [*0830.0020.0002] # QUADRANT UPPER LEFT AND LOWER RIGHT
-259B ; [*0831.0020.0002] # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT
-259C ; [*0832.0020.0002] # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT
-259D ; [*0833.0020.0002] # QUADRANT UPPER RIGHT
-259E ; [*0834.0020.0002] # QUADRANT UPPER RIGHT AND LOWER LEFT
-259F ; [*0835.0020.0002] # QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
-25A0 ; [*0836.0020.0002] # BLACK SQUARE
-25A1 ; [*0837.0020.0002] # WHITE SQUARE
-25A2 ; [*0838.0020.0002] # WHITE SQUARE WITH ROUNDED CORNERS
-25A3 ; [*0839.0020.0002] # WHITE SQUARE CONTAINING BLACK SMALL SQUARE
-25A4 ; [*083A.0020.0002] # SQUARE WITH HORIZONTAL FILL
-25A5 ; [*083B.0020.0002] # SQUARE WITH VERTICAL FILL
-25A6 ; [*083C.0020.0002] # SQUARE WITH ORTHOGONAL CROSSHATCH FILL
-25A7 ; [*083D.0020.0002] # SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
-25A8 ; [*083E.0020.0002] # SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
-25A9 ; [*083F.0020.0002] # SQUARE WITH DIAGONAL CROSSHATCH FILL
-25AA ; [*0840.0020.0002] # BLACK SMALL SQUARE
-25AB ; [*0841.0020.0002] # WHITE SMALL SQUARE
-25AC ; [*0842.0020.0002] # BLACK RECTANGLE
-25AD ; [*0843.0020.0002] # WHITE RECTANGLE
-25AE ; [*0844.0020.0002] # BLACK VERTICAL RECTANGLE
-25AF ; [*0845.0020.0002] # WHITE VERTICAL RECTANGLE
-25B0 ; [*0846.0020.0002] # BLACK PARALLELOGRAM
-25B1 ; [*0847.0020.0002] # WHITE PARALLELOGRAM
-25B2 ; [*0848.0020.0002] # BLACK UP-POINTING TRIANGLE
-25B3 ; [*0849.0020.0002] # WHITE UP-POINTING TRIANGLE
-25B4 ; [*084A.0020.0002] # BLACK UP-POINTING SMALL TRIANGLE
-25B5 ; [*084B.0020.0002] # WHITE UP-POINTING SMALL TRIANGLE
-25B6 ; [*084C.0020.0002] # BLACK RIGHT-POINTING TRIANGLE
-25B7 ; [*084D.0020.0002] # WHITE RIGHT-POINTING TRIANGLE
-25B8 ; [*084E.0020.0002] # BLACK RIGHT-POINTING SMALL TRIANGLE
-25B9 ; [*084F.0020.0002] # WHITE RIGHT-POINTING SMALL TRIANGLE
-25BA ; [*0850.0020.0002] # BLACK RIGHT-POINTING POINTER
-25BB ; [*0851.0020.0002] # WHITE RIGHT-POINTING POINTER
-25BC ; [*0852.0020.0002] # BLACK DOWN-POINTING TRIANGLE
-25BD ; [*0853.0020.0002] # WHITE DOWN-POINTING TRIANGLE
-25BE ; [*0854.0020.0002] # BLACK DOWN-POINTING SMALL TRIANGLE
-25BF ; [*0855.0020.0002] # WHITE DOWN-POINTING SMALL TRIANGLE
-25C0 ; [*0856.0020.0002] # BLACK LEFT-POINTING TRIANGLE
-25C1 ; [*0857.0020.0002] # WHITE LEFT-POINTING TRIANGLE
-25C2 ; [*0858.0020.0002] # BLACK LEFT-POINTING SMALL TRIANGLE
-25C3 ; [*0859.0020.0002] # WHITE LEFT-POINTING SMALL TRIANGLE
-25C4 ; [*085A.0020.0002] # BLACK LEFT-POINTING POINTER
-25C5 ; [*085B.0020.0002] # WHITE LEFT-POINTING POINTER
-25C6 ; [*085C.0020.0002] # BLACK DIAMOND
-25C7 ; [*085D.0020.0002] # WHITE DIAMOND
-25C8 ; [*085E.0020.0002] # WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
-25C9 ; [*085F.0020.0002] # FISHEYE
-25CA ; [*0860.0020.0002] # LOZENGE
-25CB ; [*0861.0020.0002] # WHITE CIRCLE
-25CC ; [*0862.0020.0002] # DOTTED CIRCLE
-25CD ; [*0863.0020.0002] # CIRCLE WITH VERTICAL FILL
-25CE ; [*0864.0020.0002] # BULLSEYE
-25CF ; [*0865.0020.0002] # BLACK CIRCLE
-25D0 ; [*0866.0020.0002] # CIRCLE WITH LEFT HALF BLACK
-25D1 ; [*0867.0020.0002] # CIRCLE WITH RIGHT HALF BLACK
-25D2 ; [*0868.0020.0002] # CIRCLE WITH LOWER HALF BLACK
-25D3 ; [*0869.0020.0002] # CIRCLE WITH UPPER HALF BLACK
-25D4 ; [*086A.0020.0002] # CIRCLE WITH UPPER RIGHT QUADRANT BLACK
-25D5 ; [*086B.0020.0002] # CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
-25D6 ; [*086C.0020.0002] # LEFT HALF BLACK CIRCLE
-25D7 ; [*086D.0020.0002] # RIGHT HALF BLACK CIRCLE
-25D8 ; [*086E.0020.0002] # INVERSE BULLET
-25D9 ; [*086F.0020.0002] # INVERSE WHITE CIRCLE
-25DA ; [*0870.0020.0002] # UPPER HALF INVERSE WHITE CIRCLE
-25DB ; [*0871.0020.0002] # LOWER HALF INVERSE WHITE CIRCLE
-25DC ; [*0872.0020.0002] # UPPER LEFT QUADRANT CIRCULAR ARC
-25DD ; [*0873.0020.0002] # UPPER RIGHT QUADRANT CIRCULAR ARC
-25DE ; [*0874.0020.0002] # LOWER RIGHT QUADRANT CIRCULAR ARC
-25DF ; [*0875.0020.0002] # LOWER LEFT QUADRANT CIRCULAR ARC
-25E0 ; [*0876.0020.0002] # UPPER HALF CIRCLE
-25E1 ; [*0877.0020.0002] # LOWER HALF CIRCLE
-25E2 ; [*0878.0020.0002] # BLACK LOWER RIGHT TRIANGLE
-25E3 ; [*0879.0020.0002] # BLACK LOWER LEFT TRIANGLE
-25E4 ; [*087A.0020.0002] # BLACK UPPER LEFT TRIANGLE
-25E5 ; [*087B.0020.0002] # BLACK UPPER RIGHT TRIANGLE
-25E6 ; [*087C.0020.0002] # WHITE BULLET
-25E7 ; [*087D.0020.0002] # SQUARE WITH LEFT HALF BLACK
-25E8 ; [*087E.0020.0002] # SQUARE WITH RIGHT HALF BLACK
-25E9 ; [*087F.0020.0002] # SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
-25EA ; [*0880.0020.0002] # SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
-25EB ; [*0881.0020.0002] # WHITE SQUARE WITH VERTICAL BISECTING LINE
-25EC ; [*0882.0020.0002] # WHITE UP-POINTING TRIANGLE WITH DOT
-25ED ; [*0883.0020.0002] # UP-POINTING TRIANGLE WITH LEFT HALF BLACK
-25EE ; [*0884.0020.0002] # UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
-25EF ; [*0885.0020.0002] # LARGE CIRCLE
-25F0 ; [*0886.0020.0002] # WHITE SQUARE WITH UPPER LEFT QUADRANT
-25F1 ; [*0887.0020.0002] # WHITE SQUARE WITH LOWER LEFT QUADRANT
-25F2 ; [*0888.0020.0002] # WHITE SQUARE WITH LOWER RIGHT QUADRANT
-25F3 ; [*0889.0020.0002] # WHITE SQUARE WITH UPPER RIGHT QUADRANT
-25F4 ; [*088A.0020.0002] # WHITE CIRCLE WITH UPPER LEFT QUADRANT
-25F5 ; [*088B.0020.0002] # WHITE CIRCLE WITH LOWER LEFT QUADRANT
-25F6 ; [*088C.0020.0002] # WHITE CIRCLE WITH LOWER RIGHT QUADRANT
-25F7 ; [*088D.0020.0002] # WHITE CIRCLE WITH UPPER RIGHT QUADRANT
-25F8 ; [*088E.0020.0002] # UPPER LEFT TRIANGLE
-25F9 ; [*088F.0020.0002] # UPPER RIGHT TRIANGLE
-25FA ; [*0890.0020.0002] # LOWER LEFT TRIANGLE
-25FB ; [*0891.0020.0002] # WHITE MEDIUM SQUARE
-25FC ; [*0892.0020.0002] # BLACK MEDIUM SQUARE
-25FD ; [*0893.0020.0002] # WHITE MEDIUM SMALL SQUARE
-25FE ; [*0894.0020.0002] # BLACK MEDIUM SMALL SQUARE
-25FF ; [*0895.0020.0002] # LOWER RIGHT TRIANGLE
-2600 ; [*0896.0020.0002] # BLACK SUN WITH RAYS
-2601 ; [*0897.0020.0002] # CLOUD
-2602 ; [*0898.0020.0002] # UMBRELLA
-2603 ; [*0899.0020.0002] # SNOWMAN
-2604 ; [*089A.0020.0002] # COMET
-2605 ; [*089B.0020.0002] # BLACK STAR
-2606 ; [*089C.0020.0002] # WHITE STAR
-2607 ; [*089D.0020.0002] # LIGHTNING
-2608 ; [*089E.0020.0002] # THUNDERSTORM
-2609 ; [*089F.0020.0002] # SUN
-260A ; [*08A0.0020.0002] # ASCENDING NODE
-260B ; [*08A1.0020.0002] # DESCENDING NODE
-260C ; [*08A2.0020.0002] # CONJUNCTION
-260D ; [*08A3.0020.0002] # OPPOSITION
-260E ; [*08A4.0020.0002] # BLACK TELEPHONE
-260F ; [*08A5.0020.0002] # WHITE TELEPHONE
-2610 ; [*08A6.0020.0002] # BALLOT BOX
-2611 ; [*08A7.0020.0002] # BALLOT BOX WITH CHECK
-2612 ; [*08A8.0020.0002] # BALLOT BOX WITH X
-2613 ; [*08A9.0020.0002] # SALTIRE
-2614 ; [*08AA.0020.0002] # UMBRELLA WITH RAIN DROPS
-2615 ; [*08AB.0020.0002] # HOT BEVERAGE
-2616 ; [*08AC.0020.0002] # WHITE SHOGI PIECE
-2617 ; [*08AD.0020.0002] # BLACK SHOGI PIECE
-2618 ; [*08AE.0020.0002] # SHAMROCK
-2619 ; [*08AF.0020.0002] # REVERSED ROTATED FLORAL HEART BULLET
-261A ; [*08B0.0020.0002] # BLACK LEFT POINTING INDEX
-261B ; [*08B1.0020.0002] # BLACK RIGHT POINTING INDEX
-261C ; [*08B2.0020.0002] # WHITE LEFT POINTING INDEX
-261D ; [*08B3.0020.0002] # WHITE UP POINTING INDEX
-261E ; [*08B4.0020.0002] # WHITE RIGHT POINTING INDEX
-261F ; [*08B5.0020.0002] # WHITE DOWN POINTING INDEX
-2620 ; [*08B6.0020.0002] # SKULL AND CROSSBONES
-2621 ; [*08B7.0020.0002] # CAUTION SIGN
-2622 ; [*08B8.0020.0002] # RADIOACTIVE SIGN
-2623 ; [*08B9.0020.0002] # BIOHAZARD SIGN
-2624 ; [*08BA.0020.0002] # CADUCEUS
-2625 ; [*08BB.0020.0002] # ANKH
-2626 ; [*08BC.0020.0002] # ORTHODOX CROSS
-2627 ; [*08BD.0020.0002] # CHI RHO
-2628 ; [*08BE.0020.0002] # CROSS OF LORRAINE
-2629 ; [*08BF.0020.0002] # CROSS OF JERUSALEM
-262A ; [*08C0.0020.0002] # STAR AND CRESCENT
-262B ; [*08C1.0020.0002] # FARSI SYMBOL
-262C ; [*08C2.0020.0002] # ADI SHAKTI
-262D ; [*08C3.0020.0002] # HAMMER AND SICKLE
-262E ; [*08C4.0020.0002] # PEACE SYMBOL
-262F ; [*08C5.0020.0002] # YIN YANG
-2630 ; [*0DA8.0020.0002] # TRIGRAM FOR HEAVEN
-2631 ; [*0DA9.0020.0002] # TRIGRAM FOR LAKE
-2632 ; [*0DAA.0020.0002] # TRIGRAM FOR FIRE
-2633 ; [*0DAB.0020.0002] # TRIGRAM FOR THUNDER
-2634 ; [*0DAC.0020.0002] # TRIGRAM FOR WIND
-2635 ; [*0DAD.0020.0002] # TRIGRAM FOR WATER
-2636 ; [*0DAE.0020.0002] # TRIGRAM FOR MOUNTAIN
-2637 ; [*0DAF.0020.0002] # TRIGRAM FOR EARTH
-2638 ; [*08C6.0020.0002] # WHEEL OF DHARMA
-2639 ; [*08C7.0020.0002] # WHITE FROWNING FACE
-263A ; [*08C8.0020.0002] # WHITE SMILING FACE
-263B ; [*08C9.0020.0002] # BLACK SMILING FACE
-263C ; [*08CA.0020.0002] # WHITE SUN WITH RAYS
-263D ; [*08CB.0020.0002] # FIRST QUARTER MOON
-263E ; [*08CC.0020.0002] # LAST QUARTER MOON
-263F ; [*08CD.0020.0002] # MERCURY
-2640 ; [*08CE.0020.0002] # FEMALE SIGN
-2641 ; [*08CF.0020.0002] # EARTH
-2642 ; [*08D0.0020.0002] # MALE SIGN
-2643 ; [*08D1.0020.0002] # JUPITER
-2644 ; [*08D2.0020.0002] # SATURN
-2645 ; [*08D3.0020.0002] # URANUS
-2646 ; [*08D4.0020.0002] # NEPTUNE
-2647 ; [*08D5.0020.0002] # PLUTO
-2648 ; [*08D6.0020.0002] # ARIES
-2649 ; [*08D7.0020.0002] # TAURUS
-264A ; [*08D8.0020.0002] # GEMINI
-264B ; [*08D9.0020.0002] # CANCER
-264C ; [*08DA.0020.0002] # LEO
-264D ; [*08DB.0020.0002] # VIRGO
-264E ; [*08DC.0020.0002] # LIBRA
-264F ; [*08DD.0020.0002] # SCORPIUS
-2650 ; [*08DE.0020.0002] # SAGITTARIUS
-2651 ; [*08DF.0020.0002] # CAPRICORN
-2652 ; [*08E0.0020.0002] # AQUARIUS
-2653 ; [*08E1.0020.0002] # PISCES
-2654 ; [*08E2.0020.0002] # WHITE CHESS KING
-2655 ; [*08E3.0020.0002] # WHITE CHESS QUEEN
-2656 ; [*08E4.0020.0002] # WHITE CHESS ROOK
-2657 ; [*08E5.0020.0002] # WHITE CHESS BISHOP
-2658 ; [*08E6.0020.0002] # WHITE CHESS KNIGHT
-2659 ; [*08E7.0020.0002] # WHITE CHESS PAWN
-265A ; [*08E8.0020.0002] # BLACK CHESS KING
-265B ; [*08E9.0020.0002] # BLACK CHESS QUEEN
-265C ; [*08EA.0020.0002] # BLACK CHESS ROOK
-265D ; [*08EB.0020.0002] # BLACK CHESS BISHOP
-265E ; [*08EC.0020.0002] # BLACK CHESS KNIGHT
-265F ; [*08ED.0020.0002] # BLACK CHESS PAWN
-2660 ; [*08EE.0020.0002] # BLACK SPADE SUIT
-2661 ; [*08EF.0020.0002] # WHITE HEART SUIT
-2662 ; [*08F0.0020.0002] # WHITE DIAMOND SUIT
-2663 ; [*08F1.0020.0002] # BLACK CLUB SUIT
-2664 ; [*08F2.0020.0002] # WHITE SPADE SUIT
-2665 ; [*08F3.0020.0002] # BLACK HEART SUIT
-2666 ; [*08F4.0020.0002] # BLACK DIAMOND SUIT
-2667 ; [*08F5.0020.0002] # WHITE CLUB SUIT
-2668 ; [*08F6.0020.0002] # HOT SPRINGS
-2669 ; [*08F7.0020.0002] # QUARTER NOTE
-266A ; [*08F8.0020.0002] # EIGHTH NOTE
-266B ; [*08F9.0020.0002] # BEAMED EIGHTH NOTES
-266C ; [*08FA.0020.0002] # BEAMED SIXTEENTH NOTES
-266D ; [*0FEE.0020.0002] # MUSIC FLAT SIGN
-266E ; [*0FEF.0020.0002] # MUSIC NATURAL SIGN
-266F ; [*0FF0.0020.0002] # MUSIC SHARP SIGN
-2670 ; [*08FB.0020.0002] # WEST SYRIAC CROSS
-2671 ; [*08FC.0020.0002] # EAST SYRIAC CROSS
-2672 ; [*08FD.0020.0002] # UNIVERSAL RECYCLING SYMBOL
-2673 ; [*08FE.0020.0002] # RECYCLING SYMBOL FOR TYPE-1 PLASTICS
-2674 ; [*08FF.0020.0002] # RECYCLING SYMBOL FOR TYPE-2 PLASTICS
-2675 ; [*0900.0020.0002] # RECYCLING SYMBOL FOR TYPE-3 PLASTICS
-2676 ; [*0901.0020.0002] # RECYCLING SYMBOL FOR TYPE-4 PLASTICS
-2677 ; [*0902.0020.0002] # RECYCLING SYMBOL FOR TYPE-5 PLASTICS
-2678 ; [*0903.0020.0002] # RECYCLING SYMBOL FOR TYPE-6 PLASTICS
-2679 ; [*0904.0020.0002] # RECYCLING SYMBOL FOR TYPE-7 PLASTICS
-267A ; [*0905.0020.0002] # RECYCLING SYMBOL FOR GENERIC MATERIALS
-267B ; [*0906.0020.0002] # BLACK UNIVERSAL RECYCLING SYMBOL
-267C ; [*0907.0020.0002] # RECYCLED PAPER SYMBOL
-267D ; [*0908.0020.0002] # PARTIALLY-RECYCLED PAPER SYMBOL
-267E ; [*0909.0020.0002] # PERMANENT PAPER SIGN
-267F ; [*090A.0020.0002] # WHEELCHAIR SYMBOL
-2680 ; [*090B.0020.0002] # DIE FACE-1
-2681 ; [*090C.0020.0002] # DIE FACE-2
-2682 ; [*090D.0020.0002] # DIE FACE-3
-2683 ; [*090E.0020.0002] # DIE FACE-4
-2684 ; [*090F.0020.0002] # DIE FACE-5
-2685 ; [*0910.0020.0002] # DIE FACE-6
-2686 ; [*0911.0020.0002] # WHITE CIRCLE WITH DOT RIGHT
-2687 ; [*0912.0020.0002] # WHITE CIRCLE WITH TWO DOTS
-2688 ; [*0913.0020.0002] # BLACK CIRCLE WITH WHITE DOT RIGHT
-2689 ; [*0914.0020.0002] # BLACK CIRCLE WITH TWO WHITE DOTS
-268A ; [*0DA2.0020.0002] # MONOGRAM FOR YANG
-268B ; [*0DA3.0020.0002] # MONOGRAM FOR YIN
-268C ; [*0DA4.0020.0002] # DIGRAM FOR GREATER YANG
-268D ; [*0DA5.0020.0002] # DIGRAM FOR LESSER YIN
-268E ; [*0DA6.0020.0002] # DIGRAM FOR LESSER YANG
-268F ; [*0DA7.0020.0002] # DIGRAM FOR GREATER YIN
-2690 ; [*0915.0020.0002] # WHITE FLAG
-2691 ; [*0916.0020.0002] # BLACK FLAG
-2692 ; [*0917.0020.0002] # HAMMER AND PICK
-2693 ; [*0918.0020.0002] # ANCHOR
-2694 ; [*0919.0020.0002] # CROSSED SWORDS
-2695 ; [*091A.0020.0002] # STAFF OF AESCULAPIUS
-2696 ; [*091B.0020.0002] # SCALES
-2697 ; [*091C.0020.0002] # ALEMBIC
-2698 ; [*091D.0020.0002] # FLOWER
-2699 ; [*091E.0020.0002] # GEAR
-269A ; [*091F.0020.0002] # STAFF OF HERMES
-269B ; [*0920.0020.0002] # ATOM SYMBOL
-269C ; [*0921.0020.0002] # FLEUR-DE-LIS
-269D ; [*0922.0020.0002] # OUTLINED WHITE STAR
-269E ; [*0923.0020.0002] # THREE LINES CONVERGING RIGHT
-269F ; [*0924.0020.0002] # THREE LINES CONVERGING LEFT
-26A0 ; [*0925.0020.0002] # WARNING SIGN
-26A1 ; [*0926.0020.0002] # HIGH VOLTAGE SIGN
-26A2 ; [*0927.0020.0002] # DOUBLED FEMALE SIGN
-26A3 ; [*0928.0020.0002] # DOUBLED MALE SIGN
-26A4 ; [*0929.0020.0002] # INTERLOCKED FEMALE AND MALE SIGN
-26A5 ; [*092A.0020.0002] # MALE AND FEMALE SIGN
-26A6 ; [*092B.0020.0002] # MALE WITH STROKE SIGN
-26A7 ; [*092C.0020.0002] # MALE WITH STROKE AND MALE AND FEMALE SIGN
-26A8 ; [*092D.0020.0002] # VERTICAL MALE WITH STROKE SIGN
-26A9 ; [*092E.0020.0002] # HORIZONTAL MALE WITH STROKE SIGN
-26AA ; [*092F.0020.0002] # MEDIUM WHITE CIRCLE
-26AB ; [*0930.0020.0002] # MEDIUM BLACK CIRCLE
-26AC ; [*0931.0020.0002] # MEDIUM SMALL WHITE CIRCLE
-26AD ; [*0932.0020.0002] # MARRIAGE SYMBOL
-26AE ; [*0933.0020.0002] # DIVORCE SYMBOL
-26AF ; [*0934.0020.0002] # UNMARRIED PARTNERSHIP SYMBOL
-26B0 ; [*0935.0020.0002] # COFFIN
-26B1 ; [*0936.0020.0002] # FUNERAL URN
-26B2 ; [*0937.0020.0002] # NEUTER
-26B3 ; [*0938.0020.0002] # CERES
-26B4 ; [*0939.0020.0002] # PALLAS
-26B5 ; [*093A.0020.0002] # JUNO
-26B6 ; [*093B.0020.0002] # VESTA
-26B7 ; [*093C.0020.0002] # CHIRON
-26B8 ; [*093D.0020.0002] # BLACK MOON LILITH
-26B9 ; [*093E.0020.0002] # SEXTILE
-26BA ; [*093F.0020.0002] # SEMISEXTILE
-26BB ; [*0940.0020.0002] # QUINCUNX
-26BC ; [*0941.0020.0002] # SESQUIQUADRATE
-26BD ; [*0942.0020.0002] # SOCCER BALL
-26BE ; [*0943.0020.0002] # BASEBALL
-26BF ; [*0944.0020.0002] # SQUARED KEY
-26C0 ; [*0945.0020.0002] # WHITE DRAUGHTS MAN
-26C1 ; [*0946.0020.0002] # WHITE DRAUGHTS KING
-26C2 ; [*0947.0020.0002] # BLACK DRAUGHTS MAN
-26C3 ; [*0948.0020.0002] # BLACK DRAUGHTS KING
-26C4 ; [*0949.0020.0002] # SNOWMAN WITHOUT SNOW
-26C5 ; [*094A.0020.0002] # SUN BEHIND CLOUD
-26C6 ; [*094B.0020.0002] # RAIN
-26C7 ; [*094C.0020.0002] # BLACK SNOWMAN
-26C8 ; [*094D.0020.0002] # THUNDER CLOUD AND RAIN
-26C9 ; [*094E.0020.0002] # TURNED WHITE SHOGI PIECE
-26CA ; [*094F.0020.0002] # TURNED BLACK SHOGI PIECE
-26CB ; [*0950.0020.0002] # WHITE DIAMOND IN SQUARE
-26CC ; [*0951.0020.0002] # CROSSING LANES
-26CD ; [*0952.0020.0002] # DISABLED CAR
-26CE ; [*0953.0020.0002] # OPHIUCHUS
-26CF ; [*0954.0020.0002] # PICK
-26D0 ; [*0955.0020.0002] # CAR SLIDING
-26D1 ; [*0956.0020.0002] # HELMET WITH WHITE CROSS
-26D2 ; [*0957.0020.0002] # CIRCLED CROSSING LANES
-26D3 ; [*0958.0020.0002] # CHAINS
-26D4 ; [*0959.0020.0002] # NO ENTRY
-26D5 ; [*095A.0020.0002] # ALTERNATE ONE-WAY LEFT WAY TRAFFIC
-26D6 ; [*095B.0020.0002] # BLACK TWO-WAY LEFT WAY TRAFFIC
-26D7 ; [*095C.0020.0002] # WHITE TWO-WAY LEFT WAY TRAFFIC
-26D8 ; [*095D.0020.0002] # BLACK LEFT LANE MERGE
-26D9 ; [*095E.0020.0002] # WHITE LEFT LANE MERGE
-26DA ; [*095F.0020.0002] # DRIVE SLOW SIGN
-26DB ; [*0960.0020.0002] # HEAVY WHITE DOWN-POINTING TRIANGLE
-26DC ; [*0961.0020.0002] # LEFT CLOSED ENTRY
-26DD ; [*0962.0020.0002] # SQUARED SALTIRE
-26DE ; [*0963.0020.0002] # FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
-26DF ; [*0964.0020.0002] # BLACK TRUCK
-26E0 ; [*0965.0020.0002] # RESTRICTED LEFT ENTRY-1
-26E1 ; [*0966.0020.0002] # RESTRICTED LEFT ENTRY-2
-26E2 ; [*0967.0020.0002] # ASTRONOMICAL SYMBOL FOR URANUS
-26E3 ; [*0968.0020.0002] # HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
-26E4 ; [*0969.0020.0002] # PENTAGRAM
-26E5 ; [*096A.0020.0002] # RIGHT-HANDED INTERLACED PENTAGRAM
-26E6 ; [*096B.0020.0002] # LEFT-HANDED INTERLACED PENTAGRAM
-26E7 ; [*096C.0020.0002] # INVERTED PENTAGRAM
-26E8 ; [*096D.0020.0002] # BLACK CROSS ON SHIELD
-26E9 ; [*096E.0020.0002] # SHINTO SHRINE
-26EA ; [*096F.0020.0002] # CHURCH
-26EB ; [*0970.0020.0002] # CASTLE
-26EC ; [*0971.0020.0002] # HISTORIC SITE
-26ED ; [*0972.0020.0002] # GEAR WITHOUT HUB
-26EE ; [*0973.0020.0002] # GEAR WITH HANDLES
-26EF ; [*0974.0020.0002] # MAP SYMBOL FOR LIGHTHOUSE
-26F0 ; [*0975.0020.0002] # MOUNTAIN
-26F1 ; [*0976.0020.0002] # UMBRELLA ON GROUND
-26F2 ; [*0977.0020.0002] # FOUNTAIN
-26F3 ; [*0978.0020.0002] # FLAG IN HOLE
-26F4 ; [*0979.0020.0002] # FERRY
-26F5 ; [*097A.0020.0002] # SAILBOAT
-26F6 ; [*097B.0020.0002] # SQUARE FOUR CORNERS
-26F7 ; [*097C.0020.0002] # SKIER
-26F8 ; [*097D.0020.0002] # ICE SKATE
-26F9 ; [*097E.0020.0002] # PERSON WITH BALL
-26FA ; [*097F.0020.0002] # TENT
-26FB ; [*0980.0020.0002] # JAPANESE BANK SYMBOL
-26FC ; [*0981.0020.0002] # HEADSTONE GRAVEYARD SYMBOL
-26FD ; [*0982.0020.0002] # FUEL PUMP
-26FE ; [*0983.0020.0002] # CUP ON BLACK SQUARE
-26FF ; [*0984.0020.0002] # WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2701 ; [*099F.0020.0002] # UPPER BLADE SCISSORS
-2702 ; [*09A0.0020.0002] # BLACK SCISSORS
-2703 ; [*09A1.0020.0002] # LOWER BLADE SCISSORS
-2704 ; [*09A2.0020.0002] # WHITE SCISSORS
-2705 ; [*09A3.0020.0002] # WHITE HEAVY CHECK MARK
-2706 ; [*09A4.0020.0002] # TELEPHONE LOCATION SIGN
-2707 ; [*09A5.0020.0002] # TAPE DRIVE
-2708 ; [*09A6.0020.0002] # AIRPLANE
-2709 ; [*09A7.0020.0002] # ENVELOPE
-270A ; [*09A8.0020.0002] # RAISED FIST
-270B ; [*09A9.0020.0002] # RAISED HAND
-270C ; [*09AA.0020.0002] # VICTORY HAND
-270D ; [*09AB.0020.0002] # WRITING HAND
-270E ; [*09AC.0020.0002] # LOWER RIGHT PENCIL
-270F ; [*09AD.0020.0002] # PENCIL
-2710 ; [*09AE.0020.0002] # UPPER RIGHT PENCIL
-2711 ; [*09AF.0020.0002] # WHITE NIB
-2712 ; [*09B0.0020.0002] # BLACK NIB
-2713 ; [*09B1.0020.0002] # CHECK MARK
-2714 ; [*09B2.0020.0002] # HEAVY CHECK MARK
-2715 ; [*09B3.0020.0002] # MULTIPLICATION X
-2716 ; [*09B4.0020.0002] # HEAVY MULTIPLICATION X
-2717 ; [*09B5.0020.0002] # BALLOT X
-2718 ; [*09B6.0020.0002] # HEAVY BALLOT X
-2719 ; [*09B7.0020.0002] # OUTLINED GREEK CROSS
-271A ; [*09B8.0020.0002] # HEAVY GREEK CROSS
-271B ; [*09B9.0020.0002] # OPEN CENTRE CROSS
-271C ; [*09BA.0020.0002] # HEAVY OPEN CENTRE CROSS
-271D ; [*09BB.0020.0002] # LATIN CROSS
-271E ; [*09BC.0020.0002] # SHADOWED WHITE LATIN CROSS
-271F ; [*09BD.0020.0002] # OUTLINED LATIN CROSS
-2720 ; [*09BE.0020.0002] # MALTESE CROSS
-2721 ; [*09BF.0020.0002] # STAR OF DAVID
-2722 ; [*09C0.0020.0002] # FOUR TEARDROP-SPOKED ASTERISK
-2723 ; [*09C1.0020.0002] # FOUR BALLOON-SPOKED ASTERISK
-2724 ; [*09C2.0020.0002] # HEAVY FOUR BALLOON-SPOKED ASTERISK
-2725 ; [*09C3.0020.0002] # FOUR CLUB-SPOKED ASTERISK
-2726 ; [*09C4.0020.0002] # BLACK FOUR POINTED STAR
-2727 ; [*09C5.0020.0002] # WHITE FOUR POINTED STAR
-2728 ; [*09C6.0020.0002] # SPARKLES
-2729 ; [*09C7.0020.0002] # STRESS OUTLINED WHITE STAR
-272A ; [*09C8.0020.0002] # CIRCLED WHITE STAR
-272B ; [*09C9.0020.0002] # OPEN CENTRE BLACK STAR
-272C ; [*09CA.0020.0002] # BLACK CENTRE WHITE STAR
-272D ; [*09CB.0020.0002] # OUTLINED BLACK STAR
-272E ; [*09CC.0020.0002] # HEAVY OUTLINED BLACK STAR
-272F ; [*09CD.0020.0002] # PINWHEEL STAR
-2730 ; [*09CE.0020.0002] # SHADOWED WHITE STAR
-2731 ; [*09CF.0020.0002] # HEAVY ASTERISK
-2732 ; [*09D0.0020.0002] # OPEN CENTRE ASTERISK
-2733 ; [*09D1.0020.0002] # EIGHT SPOKED ASTERISK
-2734 ; [*09D2.0020.0002] # EIGHT POINTED BLACK STAR
-2735 ; [*09D3.0020.0002] # EIGHT POINTED PINWHEEL STAR
-2736 ; [*09D4.0020.0002] # SIX POINTED BLACK STAR
-2737 ; [*09D5.0020.0002] # EIGHT POINTED RECTILINEAR BLACK STAR
-2738 ; [*09D6.0020.0002] # HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
-2739 ; [*09D7.0020.0002] # TWELVE POINTED BLACK STAR
-273A ; [*09D8.0020.0002] # SIXTEEN POINTED ASTERISK
-273B ; [*09D9.0020.0002] # TEARDROP-SPOKED ASTERISK
-273C ; [*09DA.0020.0002] # OPEN CENTRE TEARDROP-SPOKED ASTERISK
-273D ; [*09DB.0020.0002] # HEAVY TEARDROP-SPOKED ASTERISK
-273E ; [*09DC.0020.0002] # SIX PETALLED BLACK AND WHITE FLORETTE
-273F ; [*09DD.0020.0002] # BLACK FLORETTE
-2740 ; [*09DE.0020.0002] # WHITE FLORETTE
-2741 ; [*09DF.0020.0002] # EIGHT PETALLED OUTLINED BLACK FLORETTE
-2742 ; [*09E0.0020.0002] # CIRCLED OPEN CENTRE EIGHT POINTED STAR
-2743 ; [*09E1.0020.0002] # HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
-2744 ; [*09E2.0020.0002] # SNOWFLAKE
-2745 ; [*09E3.0020.0002] # TIGHT TRIFOLIATE SNOWFLAKE
-2746 ; [*09E4.0020.0002] # HEAVY CHEVRON SNOWFLAKE
-2747 ; [*09E5.0020.0002] # SPARKLE
-2748 ; [*09E6.0020.0002] # HEAVY SPARKLE
-2749 ; [*09E7.0020.0002] # BALLOON-SPOKED ASTERISK
-274A ; [*09E8.0020.0002] # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274B ; [*09E9.0020.0002] # HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274C ; [*09EA.0020.0002] # CROSS MARK
-274D ; [*09EB.0020.0002] # SHADOWED WHITE CIRCLE
-274E ; [*09EC.0020.0002] # NEGATIVE SQUARED CROSS MARK
-274F ; [*09ED.0020.0002] # LOWER RIGHT DROP-SHADOWED WHITE SQUARE
-2750 ; [*09EE.0020.0002] # UPPER RIGHT DROP-SHADOWED WHITE SQUARE
-2751 ; [*09EF.0020.0002] # LOWER RIGHT SHADOWED WHITE SQUARE
-2752 ; [*09F0.0020.0002] # UPPER RIGHT SHADOWED WHITE SQUARE
-2753 ; [*09F1.0020.0002] # BLACK QUESTION MARK ORNAMENT
-2754 ; [*09F2.0020.0002] # WHITE QUESTION MARK ORNAMENT
-2755 ; [*09F3.0020.0002] # WHITE EXCLAMATION MARK ORNAMENT
-2756 ; [*09F4.0020.0002] # BLACK DIAMOND MINUS WHITE X
-2757 ; [*09F5.0020.0002] # HEAVY EXCLAMATION MARK SYMBOL
-2758 ; [*09F6.0020.0002] # LIGHT VERTICAL BAR
-2759 ; [*09F7.0020.0002] # MEDIUM VERTICAL BAR
-275A ; [*09F8.0020.0002] # HEAVY VERTICAL BAR
-275B ; [*09F9.0020.0002] # HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
-275C ; [*09FA.0020.0002] # HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
-275D ; [*09FB.0020.0002] # HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
-275E ; [*09FC.0020.0002] # HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
-275F ; [*09FD.0020.0002] # HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT
-2760 ; [*09FE.0020.0002] # HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
-2761 ; [*09FF.0020.0002] # CURVED STEM PARAGRAPH SIGN ORNAMENT
-2762 ; [*0A00.0020.0002] # HEAVY EXCLAMATION MARK ORNAMENT
-2763 ; [*0A01.0020.0002] # HEAVY HEART EXCLAMATION MARK ORNAMENT
-2764 ; [*0A02.0020.0002] # HEAVY BLACK HEART
-2765 ; [*0A03.0020.0002] # ROTATED HEAVY BLACK HEART BULLET
-2766 ; [*0A04.0020.0002] # FLORAL HEART
-2767 ; [*0A05.0020.0002] # ROTATED FLORAL HEART BULLET
-2768 ; [*0330.0020.0002] # MEDIUM LEFT PARENTHESIS ORNAMENT
-2769 ; [*0331.0020.0002] # MEDIUM RIGHT PARENTHESIS ORNAMENT
-276A ; [*0332.0020.0002] # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
-276B ; [*0333.0020.0002] # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
-276C ; [*0334.0020.0002] # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
-276D ; [*0335.0020.0002] # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
-276E ; [*0336.0020.0002] # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
-276F ; [*0337.0020.0002] # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
-2770 ; [*0338.0020.0002] # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
-2771 ; [*0339.0020.0002] # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
-2772 ; [*033A.0020.0002] # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
-2773 ; [*033B.0020.0002] # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
-2774 ; [*033C.0020.0002] # MEDIUM LEFT CURLY BRACKET ORNAMENT
-2775 ; [*033D.0020.0002] # MEDIUM RIGHT CURLY BRACKET ORNAMENT
-2794 ; [*0A06.0020.0002] # HEAVY WIDE-HEADED RIGHTWARDS ARROW
-2795 ; [*0A07.0020.0002] # HEAVY PLUS SIGN
-2796 ; [*0A08.0020.0002] # HEAVY MINUS SIGN
-2797 ; [*0A09.0020.0002] # HEAVY DIVISION SIGN
-2798 ; [*0A0A.0020.0002] # HEAVY SOUTH EAST ARROW
-2799 ; [*0A0B.0020.0002] # HEAVY RIGHTWARDS ARROW
-279A ; [*0A0C.0020.0002] # HEAVY NORTH EAST ARROW
-279B ; [*0A0D.0020.0002] # DRAFTING POINT RIGHTWARDS ARROW
-279C ; [*0A0E.0020.0002] # HEAVY ROUND-TIPPED RIGHTWARDS ARROW
-279D ; [*0A0F.0020.0002] # TRIANGLE-HEADED RIGHTWARDS ARROW
-279E ; [*0A10.0020.0002] # HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
-279F ; [*0A11.0020.0002] # DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A0 ; [*0A12.0020.0002] # HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A1 ; [*0A13.0020.0002] # BLACK RIGHTWARDS ARROW
-27A2 ; [*0A14.0020.0002] # THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
-27A3 ; [*0A15.0020.0002] # THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
-27A4 ; [*0A16.0020.0002] # BLACK RIGHTWARDS ARROWHEAD
-27A5 ; [*0A17.0020.0002] # HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
-27A6 ; [*0A18.0020.0002] # HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
-27A7 ; [*0A19.0020.0002] # SQUAT BLACK RIGHTWARDS ARROW
-27A8 ; [*0A1A.0020.0002] # HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
-27A9 ; [*0A1B.0020.0002] # RIGHT-SHADED WHITE RIGHTWARDS ARROW
-27AA ; [*0A1C.0020.0002] # LEFT-SHADED WHITE RIGHTWARDS ARROW
-27AB ; [*0A1D.0020.0002] # BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AC ; [*0A1E.0020.0002] # FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AD ; [*0A1F.0020.0002] # HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AE ; [*0A20.0020.0002] # HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AF ; [*0A21.0020.0002] # NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B0 ; [*0A22.0020.0002] # CURLY LOOP
-27B1 ; [*0A23.0020.0002] # NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B2 ; [*0A24.0020.0002] # CIRCLED HEAVY WHITE RIGHTWARDS ARROW
-27B3 ; [*0A25.0020.0002] # WHITE-FEATHERED RIGHTWARDS ARROW
-27B4 ; [*0A26.0020.0002] # BLACK-FEATHERED SOUTH EAST ARROW
-27B5 ; [*0A27.0020.0002] # BLACK-FEATHERED RIGHTWARDS ARROW
-27B6 ; [*0A28.0020.0002] # BLACK-FEATHERED NORTH EAST ARROW
-27B7 ; [*0A29.0020.0002] # HEAVY BLACK-FEATHERED SOUTH EAST ARROW
-27B8 ; [*0A2A.0020.0002] # HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
-27B9 ; [*0A2B.0020.0002] # HEAVY BLACK-FEATHERED NORTH EAST ARROW
-27BA ; [*0A2C.0020.0002] # TEARDROP-BARBED RIGHTWARDS ARROW
-27BB ; [*0A2D.0020.0002] # HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
-27BC ; [*0A2E.0020.0002] # WEDGE-TAILED RIGHTWARDS ARROW
-27BD ; [*0A2F.0020.0002] # HEAVY WEDGE-TAILED RIGHTWARDS ARROW
-27BE ; [*0A30.0020.0002] # OPEN-OUTLINED RIGHTWARDS ARROW
-27BF ; [*0A31.0020.0002] # DOUBLE CURLY LOOP
-27C0 ; [*0A32.0020.0002] # THREE DIMENSIONAL ANGLE
-27C1 ; [*0A33.0020.0002] # WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
-27C2 ; [*0A34.0020.0002] # PERPENDICULAR
-27C3 ; [*0A35.0020.0002] # OPEN SUBSET
-27C4 ; [*0A36.0020.0002] # OPEN SUPERSET
-27C5 ; [*0324.0020.0002] # LEFT S-SHAPED BAG DELIMITER
-27C6 ; [*0325.0020.0002] # RIGHT S-SHAPED BAG DELIMITER
-27C7 ; [*0A37.0020.0002] # OR WITH DOT INSIDE
-27C8 ; [*0A38.0020.0002] # REVERSE SOLIDUS PRECEDING SUBSET
-27C9 ; [*0A39.0020.0002] # SUPERSET PRECEDING SOLIDUS
-27CA ; [*0A3A.0020.0002] # VERTICAL BAR WITH HORIZONTAL STROKE
-27CB ; [*0A3B.0020.0002] # MATHEMATICAL RISING DIAGONAL
-27CC ; [*0A3C.0020.0002] # LONG DIVISION
-27CD ; [*0A3D.0020.0002] # MATHEMATICAL FALLING DIAGONAL
-27CE ; [*0A3E.0020.0002] # SQUARED LOGICAL AND
-27CF ; [*0A3F.0020.0002] # SQUARED LOGICAL OR
-27D0 ; [*0A40.0020.0002] # WHITE DIAMOND WITH CENTRED DOT
-27D1 ; [*0A41.0020.0002] # AND WITH DOT
-27D2 ; [*0A42.0020.0002] # ELEMENT OF OPENING UPWARDS
-27D3 ; [*0A43.0020.0002] # LOWER RIGHT CORNER WITH DOT
-27D4 ; [*0A44.0020.0002] # UPPER LEFT CORNER WITH DOT
-27D5 ; [*0A45.0020.0002] # LEFT OUTER JOIN
-27D6 ; [*0A46.0020.0002] # RIGHT OUTER JOIN
-27D7 ; [*0A47.0020.0002] # FULL OUTER JOIN
-27D8 ; [*0A48.0020.0002] # LARGE UP TACK
-27D9 ; [*0A49.0020.0002] # LARGE DOWN TACK
-27DA ; [*0A4A.0020.0002] # LEFT AND RIGHT DOUBLE TURNSTILE
-27DB ; [*0A4B.0020.0002] # LEFT AND RIGHT TACK
-27DC ; [*0A4C.0020.0002] # LEFT MULTIMAP
-27DD ; [*0A4D.0020.0002] # LONG RIGHT TACK
-27DE ; [*0A4E.0020.0002] # LONG LEFT TACK
-27DF ; [*0A4F.0020.0002] # UP TACK WITH CIRCLE ABOVE
-27E0 ; [*0A50.0020.0002] # LOZENGE DIVIDED BY HORIZONTAL RULE
-27E1 ; [*0A51.0020.0002] # WHITE CONCAVE-SIDED DIAMOND
-27E2 ; [*0A52.0020.0002] # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
-27E3 ; [*0A53.0020.0002] # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
-27E4 ; [*0A54.0020.0002] # WHITE SQUARE WITH LEFTWARDS TICK
-27E5 ; [*0A55.0020.0002] # WHITE SQUARE WITH RIGHTWARDS TICK
-27E6 ; [*0326.0020.0002] # MATHEMATICAL LEFT WHITE SQUARE BRACKET
-27E7 ; [*0327.0020.0002] # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
-27E8 ; [*0328.0020.0002] # MATHEMATICAL LEFT ANGLE BRACKET
-27E9 ; [*0329.0020.0002] # MATHEMATICAL RIGHT ANGLE BRACKET
-27EA ; [*032A.0020.0002] # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
-27EB ; [*032B.0020.0002] # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
-27EC ; [*032C.0020.0002] # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
-27ED ; [*032D.0020.0002] # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
-27EE ; [*032E.0020.0002] # MATHEMATICAL LEFT FLATTENED PARENTHESIS
-27EF ; [*032F.0020.0002] # MATHEMATICAL RIGHT FLATTENED PARENTHESIS
-27F0 ; [*0A56.0020.0002] # UPWARDS QUADRUPLE ARROW
-27F1 ; [*0A57.0020.0002] # DOWNWARDS QUADRUPLE ARROW
-27F2 ; [*0A58.0020.0002] # ANTICLOCKWISE GAPPED CIRCLE ARROW
-27F3 ; [*0A59.0020.0002] # CLOCKWISE GAPPED CIRCLE ARROW
-27F4 ; [*0A5A.0020.0002] # RIGHT ARROW WITH CIRCLED PLUS
-27F5 ; [*0A5B.0020.0002] # LONG LEFTWARDS ARROW
-27F6 ; [*0A5C.0020.0002] # LONG RIGHTWARDS ARROW
-27F7 ; [*0A5D.0020.0002] # LONG LEFT RIGHT ARROW
-27F8 ; [*0A5E.0020.0002] # LONG LEFTWARDS DOUBLE ARROW
-27F9 ; [*0A5F.0020.0002] # LONG RIGHTWARDS DOUBLE ARROW
-27FA ; [*0A60.0020.0002] # LONG LEFT RIGHT DOUBLE ARROW
-27FB ; [*0A61.0020.0002] # LONG LEFTWARDS ARROW FROM BAR
-27FC ; [*0A62.0020.0002] # LONG RIGHTWARDS ARROW FROM BAR
-27FD ; [*0A63.0020.0002] # LONG LEFTWARDS DOUBLE ARROW FROM BAR
-27FE ; [*0A64.0020.0002] # LONG RIGHTWARDS DOUBLE ARROW FROM BAR
-27FF ; [*0A65.0020.0002] # LONG RIGHTWARDS SQUIGGLE ARROW
-2800 ; [*0CA2.0020.0002] # BRAILLE PATTERN BLANK
-2801 ; [*0CA3.0020.0002] # BRAILLE PATTERN DOTS-1
-2802 ; [*0CA4.0020.0002] # BRAILLE PATTERN DOTS-2
-2803 ; [*0CA5.0020.0002] # BRAILLE PATTERN DOTS-12
-2804 ; [*0CA6.0020.0002] # BRAILLE PATTERN DOTS-3
-2805 ; [*0CA7.0020.0002] # BRAILLE PATTERN DOTS-13
-2806 ; [*0CA8.0020.0002] # BRAILLE PATTERN DOTS-23
-2807 ; [*0CA9.0020.0002] # BRAILLE PATTERN DOTS-123
-2808 ; [*0CAA.0020.0002] # BRAILLE PATTERN DOTS-4
-2809 ; [*0CAB.0020.0002] # BRAILLE PATTERN DOTS-14
-280A ; [*0CAC.0020.0002] # BRAILLE PATTERN DOTS-24
-280B ; [*0CAD.0020.0002] # BRAILLE PATTERN DOTS-124
-280C ; [*0CAE.0020.0002] # BRAILLE PATTERN DOTS-34
-280D ; [*0CAF.0020.0002] # BRAILLE PATTERN DOTS-134
-280E ; [*0CB0.0020.0002] # BRAILLE PATTERN DOTS-234
-280F ; [*0CB1.0020.0002] # BRAILLE PATTERN DOTS-1234
-2810 ; [*0CB2.0020.0002] # BRAILLE PATTERN DOTS-5
-2811 ; [*0CB3.0020.0002] # BRAILLE PATTERN DOTS-15
-2812 ; [*0CB4.0020.0002] # BRAILLE PATTERN DOTS-25
-2813 ; [*0CB5.0020.0002] # BRAILLE PATTERN DOTS-125
-2814 ; [*0CB6.0020.0002] # BRAILLE PATTERN DOTS-35
-2815 ; [*0CB7.0020.0002] # BRAILLE PATTERN DOTS-135
-2816 ; [*0CB8.0020.0002] # BRAILLE PATTERN DOTS-235
-2817 ; [*0CB9.0020.0002] # BRAILLE PATTERN DOTS-1235
-2818 ; [*0CBA.0020.0002] # BRAILLE PATTERN DOTS-45
-2819 ; [*0CBB.0020.0002] # BRAILLE PATTERN DOTS-145
-281A ; [*0CBC.0020.0002] # BRAILLE PATTERN DOTS-245
-281B ; [*0CBD.0020.0002] # BRAILLE PATTERN DOTS-1245
-281C ; [*0CBE.0020.0002] # BRAILLE PATTERN DOTS-345
-281D ; [*0CBF.0020.0002] # BRAILLE PATTERN DOTS-1345
-281E ; [*0CC0.0020.0002] # BRAILLE PATTERN DOTS-2345
-281F ; [*0CC1.0020.0002] # BRAILLE PATTERN DOTS-12345
-2820 ; [*0CC2.0020.0002] # BRAILLE PATTERN DOTS-6
-2821 ; [*0CC3.0020.0002] # BRAILLE PATTERN DOTS-16
-2822 ; [*0CC4.0020.0002] # BRAILLE PATTERN DOTS-26
-2823 ; [*0CC5.0020.0002] # BRAILLE PATTERN DOTS-126
-2824 ; [*0CC6.0020.0002] # BRAILLE PATTERN DOTS-36
-2825 ; [*0CC7.0020.0002] # BRAILLE PATTERN DOTS-136
-2826 ; [*0CC8.0020.0002] # BRAILLE PATTERN DOTS-236
-2827 ; [*0CC9.0020.0002] # BRAILLE PATTERN DOTS-1236
-2828 ; [*0CCA.0020.0002] # BRAILLE PATTERN DOTS-46
-2829 ; [*0CCB.0020.0002] # BRAILLE PATTERN DOTS-146
-282A ; [*0CCC.0020.0002] # BRAILLE PATTERN DOTS-246
-282B ; [*0CCD.0020.0002] # BRAILLE PATTERN DOTS-1246
-282C ; [*0CCE.0020.0002] # BRAILLE PATTERN DOTS-346
-282D ; [*0CCF.0020.0002] # BRAILLE PATTERN DOTS-1346
-282E ; [*0CD0.0020.0002] # BRAILLE PATTERN DOTS-2346
-282F ; [*0CD1.0020.0002] # BRAILLE PATTERN DOTS-12346
-2830 ; [*0CD2.0020.0002] # BRAILLE PATTERN DOTS-56
-2831 ; [*0CD3.0020.0002] # BRAILLE PATTERN DOTS-156
-2832 ; [*0CD4.0020.0002] # BRAILLE PATTERN DOTS-256
-2833 ; [*0CD5.0020.0002] # BRAILLE PATTERN DOTS-1256
-2834 ; [*0CD6.0020.0002] # BRAILLE PATTERN DOTS-356
-2835 ; [*0CD7.0020.0002] # BRAILLE PATTERN DOTS-1356
-2836 ; [*0CD8.0020.0002] # BRAILLE PATTERN DOTS-2356
-2837 ; [*0CD9.0020.0002] # BRAILLE PATTERN DOTS-12356
-2838 ; [*0CDA.0020.0002] # BRAILLE PATTERN DOTS-456
-2839 ; [*0CDB.0020.0002] # BRAILLE PATTERN DOTS-1456
-283A ; [*0CDC.0020.0002] # BRAILLE PATTERN DOTS-2456
-283B ; [*0CDD.0020.0002] # BRAILLE PATTERN DOTS-12456
-283C ; [*0CDE.0020.0002] # BRAILLE PATTERN DOTS-3456
-283D ; [*0CDF.0020.0002] # BRAILLE PATTERN DOTS-13456
-283E ; [*0CE0.0020.0002] # BRAILLE PATTERN DOTS-23456
-283F ; [*0CE1.0020.0002] # BRAILLE PATTERN DOTS-123456
-2840 ; [*0CE2.0020.0002] # BRAILLE PATTERN DOTS-7
-2841 ; [*0CE3.0020.0002] # BRAILLE PATTERN DOTS-17
-2842 ; [*0CE4.0020.0002] # BRAILLE PATTERN DOTS-27
-2843 ; [*0CE5.0020.0002] # BRAILLE PATTERN DOTS-127
-2844 ; [*0CE6.0020.0002] # BRAILLE PATTERN DOTS-37
-2845 ; [*0CE7.0020.0002] # BRAILLE PATTERN DOTS-137
-2846 ; [*0CE8.0020.0002] # BRAILLE PATTERN DOTS-237
-2847 ; [*0CE9.0020.0002] # BRAILLE PATTERN DOTS-1237
-2848 ; [*0CEA.0020.0002] # BRAILLE PATTERN DOTS-47
-2849 ; [*0CEB.0020.0002] # BRAILLE PATTERN DOTS-147
-284A ; [*0CEC.0020.0002] # BRAILLE PATTERN DOTS-247
-284B ; [*0CED.0020.0002] # BRAILLE PATTERN DOTS-1247
-284C ; [*0CEE.0020.0002] # BRAILLE PATTERN DOTS-347
-284D ; [*0CEF.0020.0002] # BRAILLE PATTERN DOTS-1347
-284E ; [*0CF0.0020.0002] # BRAILLE PATTERN DOTS-2347
-284F ; [*0CF1.0020.0002] # BRAILLE PATTERN DOTS-12347
-2850 ; [*0CF2.0020.0002] # BRAILLE PATTERN DOTS-57
-2851 ; [*0CF3.0020.0002] # BRAILLE PATTERN DOTS-157
-2852 ; [*0CF4.0020.0002] # BRAILLE PATTERN DOTS-257
-2853 ; [*0CF5.0020.0002] # BRAILLE PATTERN DOTS-1257
-2854 ; [*0CF6.0020.0002] # BRAILLE PATTERN DOTS-357
-2855 ; [*0CF7.0020.0002] # BRAILLE PATTERN DOTS-1357
-2856 ; [*0CF8.0020.0002] # BRAILLE PATTERN DOTS-2357
-2857 ; [*0CF9.0020.0002] # BRAILLE PATTERN DOTS-12357
-2858 ; [*0CFA.0020.0002] # BRAILLE PATTERN DOTS-457
-2859 ; [*0CFB.0020.0002] # BRAILLE PATTERN DOTS-1457
-285A ; [*0CFC.0020.0002] # BRAILLE PATTERN DOTS-2457
-285B ; [*0CFD.0020.0002] # BRAILLE PATTERN DOTS-12457
-285C ; [*0CFE.0020.0002] # BRAILLE PATTERN DOTS-3457
-285D ; [*0CFF.0020.0002] # BRAILLE PATTERN DOTS-13457
-285E ; [*0D00.0020.0002] # BRAILLE PATTERN DOTS-23457
-285F ; [*0D01.0020.0002] # BRAILLE PATTERN DOTS-123457
-2860 ; [*0D02.0020.0002] # BRAILLE PATTERN DOTS-67
-2861 ; [*0D03.0020.0002] # BRAILLE PATTERN DOTS-167
-2862 ; [*0D04.0020.0002] # BRAILLE PATTERN DOTS-267
-2863 ; [*0D05.0020.0002] # BRAILLE PATTERN DOTS-1267
-2864 ; [*0D06.0020.0002] # BRAILLE PATTERN DOTS-367
-2865 ; [*0D07.0020.0002] # BRAILLE PATTERN DOTS-1367
-2866 ; [*0D08.0020.0002] # BRAILLE PATTERN DOTS-2367
-2867 ; [*0D09.0020.0002] # BRAILLE PATTERN DOTS-12367
-2868 ; [*0D0A.0020.0002] # BRAILLE PATTERN DOTS-467
-2869 ; [*0D0B.0020.0002] # BRAILLE PATTERN DOTS-1467
-286A ; [*0D0C.0020.0002] # BRAILLE PATTERN DOTS-2467
-286B ; [*0D0D.0020.0002] # BRAILLE PATTERN DOTS-12467
-286C ; [*0D0E.0020.0002] # BRAILLE PATTERN DOTS-3467
-286D ; [*0D0F.0020.0002] # BRAILLE PATTERN DOTS-13467
-286E ; [*0D10.0020.0002] # BRAILLE PATTERN DOTS-23467
-286F ; [*0D11.0020.0002] # BRAILLE PATTERN DOTS-123467
-2870 ; [*0D12.0020.0002] # BRAILLE PATTERN DOTS-567
-2871 ; [*0D13.0020.0002] # BRAILLE PATTERN DOTS-1567
-2872 ; [*0D14.0020.0002] # BRAILLE PATTERN DOTS-2567
-2873 ; [*0D15.0020.0002] # BRAILLE PATTERN DOTS-12567
-2874 ; [*0D16.0020.0002] # BRAILLE PATTERN DOTS-3567
-2875 ; [*0D17.0020.0002] # BRAILLE PATTERN DOTS-13567
-2876 ; [*0D18.0020.0002] # BRAILLE PATTERN DOTS-23567
-2877 ; [*0D19.0020.0002] # BRAILLE PATTERN DOTS-123567
-2878 ; [*0D1A.0020.0002] # BRAILLE PATTERN DOTS-4567
-2879 ; [*0D1B.0020.0002] # BRAILLE PATTERN DOTS-14567
-287A ; [*0D1C.0020.0002] # BRAILLE PATTERN DOTS-24567
-287B ; [*0D1D.0020.0002] # BRAILLE PATTERN DOTS-124567
-287C ; [*0D1E.0020.0002] # BRAILLE PATTERN DOTS-34567
-287D ; [*0D1F.0020.0002] # BRAILLE PATTERN DOTS-134567
-287E ; [*0D20.0020.0002] # BRAILLE PATTERN DOTS-234567
-287F ; [*0D21.0020.0002] # BRAILLE PATTERN DOTS-1234567
-2880 ; [*0D22.0020.0002] # BRAILLE PATTERN DOTS-8
-2881 ; [*0D23.0020.0002] # BRAILLE PATTERN DOTS-18
-2882 ; [*0D24.0020.0002] # BRAILLE PATTERN DOTS-28
-2883 ; [*0D25.0020.0002] # BRAILLE PATTERN DOTS-128
-2884 ; [*0D26.0020.0002] # BRAILLE PATTERN DOTS-38
-2885 ; [*0D27.0020.0002] # BRAILLE PATTERN DOTS-138
-2886 ; [*0D28.0020.0002] # BRAILLE PATTERN DOTS-238
-2887 ; [*0D29.0020.0002] # BRAILLE PATTERN DOTS-1238
-2888 ; [*0D2A.0020.0002] # BRAILLE PATTERN DOTS-48
-2889 ; [*0D2B.0020.0002] # BRAILLE PATTERN DOTS-148
-288A ; [*0D2C.0020.0002] # BRAILLE PATTERN DOTS-248
-288B ; [*0D2D.0020.0002] # BRAILLE PATTERN DOTS-1248
-288C ; [*0D2E.0020.0002] # BRAILLE PATTERN DOTS-348
-288D ; [*0D2F.0020.0002] # BRAILLE PATTERN DOTS-1348
-288E ; [*0D30.0020.0002] # BRAILLE PATTERN DOTS-2348
-288F ; [*0D31.0020.0002] # BRAILLE PATTERN DOTS-12348
-2890 ; [*0D32.0020.0002] # BRAILLE PATTERN DOTS-58
-2891 ; [*0D33.0020.0002] # BRAILLE PATTERN DOTS-158
-2892 ; [*0D34.0020.0002] # BRAILLE PATTERN DOTS-258
-2893 ; [*0D35.0020.0002] # BRAILLE PATTERN DOTS-1258
-2894 ; [*0D36.0020.0002] # BRAILLE PATTERN DOTS-358
-2895 ; [*0D37.0020.0002] # BRAILLE PATTERN DOTS-1358
-2896 ; [*0D38.0020.0002] # BRAILLE PATTERN DOTS-2358
-2897 ; [*0D39.0020.0002] # BRAILLE PATTERN DOTS-12358
-2898 ; [*0D3A.0020.0002] # BRAILLE PATTERN DOTS-458
-2899 ; [*0D3B.0020.0002] # BRAILLE PATTERN DOTS-1458
-289A ; [*0D3C.0020.0002] # BRAILLE PATTERN DOTS-2458
-289B ; [*0D3D.0020.0002] # BRAILLE PATTERN DOTS-12458
-289C ; [*0D3E.0020.0002] # BRAILLE PATTERN DOTS-3458
-289D ; [*0D3F.0020.0002] # BRAILLE PATTERN DOTS-13458
-289E ; [*0D40.0020.0002] # BRAILLE PATTERN DOTS-23458
-289F ; [*0D41.0020.0002] # BRAILLE PATTERN DOTS-123458
-28A0 ; [*0D42.0020.0002] # BRAILLE PATTERN DOTS-68
-28A1 ; [*0D43.0020.0002] # BRAILLE PATTERN DOTS-168
-28A2 ; [*0D44.0020.0002] # BRAILLE PATTERN DOTS-268
-28A3 ; [*0D45.0020.0002] # BRAILLE PATTERN DOTS-1268
-28A4 ; [*0D46.0020.0002] # BRAILLE PATTERN DOTS-368
-28A5 ; [*0D47.0020.0002] # BRAILLE PATTERN DOTS-1368
-28A6 ; [*0D48.0020.0002] # BRAILLE PATTERN DOTS-2368
-28A7 ; [*0D49.0020.0002] # BRAILLE PATTERN DOTS-12368
-28A8 ; [*0D4A.0020.0002] # BRAILLE PATTERN DOTS-468
-28A9 ; [*0D4B.0020.0002] # BRAILLE PATTERN DOTS-1468
-28AA ; [*0D4C.0020.0002] # BRAILLE PATTERN DOTS-2468
-28AB ; [*0D4D.0020.0002] # BRAILLE PATTERN DOTS-12468
-28AC ; [*0D4E.0020.0002] # BRAILLE PATTERN DOTS-3468
-28AD ; [*0D4F.0020.0002] # BRAILLE PATTERN DOTS-13468
-28AE ; [*0D50.0020.0002] # BRAILLE PATTERN DOTS-23468
-28AF ; [*0D51.0020.0002] # BRAILLE PATTERN DOTS-123468
-28B0 ; [*0D52.0020.0002] # BRAILLE PATTERN DOTS-568
-28B1 ; [*0D53.0020.0002] # BRAILLE PATTERN DOTS-1568
-28B2 ; [*0D54.0020.0002] # BRAILLE PATTERN DOTS-2568
-28B3 ; [*0D55.0020.0002] # BRAILLE PATTERN DOTS-12568
-28B4 ; [*0D56.0020.0002] # BRAILLE PATTERN DOTS-3568
-28B5 ; [*0D57.0020.0002] # BRAILLE PATTERN DOTS-13568
-28B6 ; [*0D58.0020.0002] # BRAILLE PATTERN DOTS-23568
-28B7 ; [*0D59.0020.0002] # BRAILLE PATTERN DOTS-123568
-28B8 ; [*0D5A.0020.0002] # BRAILLE PATTERN DOTS-4568
-28B9 ; [*0D5B.0020.0002] # BRAILLE PATTERN DOTS-14568
-28BA ; [*0D5C.0020.0002] # BRAILLE PATTERN DOTS-24568
-28BB ; [*0D5D.0020.0002] # BRAILLE PATTERN DOTS-124568
-28BC ; [*0D5E.0020.0002] # BRAILLE PATTERN DOTS-34568
-28BD ; [*0D5F.0020.0002] # BRAILLE PATTERN DOTS-134568
-28BE ; [*0D60.0020.0002] # BRAILLE PATTERN DOTS-234568
-28BF ; [*0D61.0020.0002] # BRAILLE PATTERN DOTS-1234568
-28C0 ; [*0D62.0020.0002] # BRAILLE PATTERN DOTS-78
-28C1 ; [*0D63.0020.0002] # BRAILLE PATTERN DOTS-178
-28C2 ; [*0D64.0020.0002] # BRAILLE PATTERN DOTS-278
-28C3 ; [*0D65.0020.0002] # BRAILLE PATTERN DOTS-1278
-28C4 ; [*0D66.0020.0002] # BRAILLE PATTERN DOTS-378
-28C5 ; [*0D67.0020.0002] # BRAILLE PATTERN DOTS-1378
-28C6 ; [*0D68.0020.0002] # BRAILLE PATTERN DOTS-2378
-28C7 ; [*0D69.0020.0002] # BRAILLE PATTERN DOTS-12378
-28C8 ; [*0D6A.0020.0002] # BRAILLE PATTERN DOTS-478
-28C9 ; [*0D6B.0020.0002] # BRAILLE PATTERN DOTS-1478
-28CA ; [*0D6C.0020.0002] # BRAILLE PATTERN DOTS-2478
-28CB ; [*0D6D.0020.0002] # BRAILLE PATTERN DOTS-12478
-28CC ; [*0D6E.0020.0002] # BRAILLE PATTERN DOTS-3478
-28CD ; [*0D6F.0020.0002] # BRAILLE PATTERN DOTS-13478
-28CE ; [*0D70.0020.0002] # BRAILLE PATTERN DOTS-23478
-28CF ; [*0D71.0020.0002] # BRAILLE PATTERN DOTS-123478
-28D0 ; [*0D72.0020.0002] # BRAILLE PATTERN DOTS-578
-28D1 ; [*0D73.0020.0002] # BRAILLE PATTERN DOTS-1578
-28D2 ; [*0D74.0020.0002] # BRAILLE PATTERN DOTS-2578
-28D3 ; [*0D75.0020.0002] # BRAILLE PATTERN DOTS-12578
-28D4 ; [*0D76.0020.0002] # BRAILLE PATTERN DOTS-3578
-28D5 ; [*0D77.0020.0002] # BRAILLE PATTERN DOTS-13578
-28D6 ; [*0D78.0020.0002] # BRAILLE PATTERN DOTS-23578
-28D7 ; [*0D79.0020.0002] # BRAILLE PATTERN DOTS-123578
-28D8 ; [*0D7A.0020.0002] # BRAILLE PATTERN DOTS-4578
-28D9 ; [*0D7B.0020.0002] # BRAILLE PATTERN DOTS-14578
-28DA ; [*0D7C.0020.0002] # BRAILLE PATTERN DOTS-24578
-28DB ; [*0D7D.0020.0002] # BRAILLE PATTERN DOTS-124578
-28DC ; [*0D7E.0020.0002] # BRAILLE PATTERN DOTS-34578
-28DD ; [*0D7F.0020.0002] # BRAILLE PATTERN DOTS-134578
-28DE ; [*0D80.0020.0002] # BRAILLE PATTERN DOTS-234578
-28DF ; [*0D81.0020.0002] # BRAILLE PATTERN DOTS-1234578
-28E0 ; [*0D82.0020.0002] # BRAILLE PATTERN DOTS-678
-28E1 ; [*0D83.0020.0002] # BRAILLE PATTERN DOTS-1678
-28E2 ; [*0D84.0020.0002] # BRAILLE PATTERN DOTS-2678
-28E3 ; [*0D85.0020.0002] # BRAILLE PATTERN DOTS-12678
-28E4 ; [*0D86.0020.0002] # BRAILLE PATTERN DOTS-3678
-28E5 ; [*0D87.0020.0002] # BRAILLE PATTERN DOTS-13678
-28E6 ; [*0D88.0020.0002] # BRAILLE PATTERN DOTS-23678
-28E7 ; [*0D89.0020.0002] # BRAILLE PATTERN DOTS-123678
-28E8 ; [*0D8A.0020.0002] # BRAILLE PATTERN DOTS-4678
-28E9 ; [*0D8B.0020.0002] # BRAILLE PATTERN DOTS-14678
-28EA ; [*0D8C.0020.0002] # BRAILLE PATTERN DOTS-24678
-28EB ; [*0D8D.0020.0002] # BRAILLE PATTERN DOTS-124678
-28EC ; [*0D8E.0020.0002] # BRAILLE PATTERN DOTS-34678
-28ED ; [*0D8F.0020.0002] # BRAILLE PATTERN DOTS-134678
-28EE ; [*0D90.0020.0002] # BRAILLE PATTERN DOTS-234678
-28EF ; [*0D91.0020.0002] # BRAILLE PATTERN DOTS-1234678
-28F0 ; [*0D92.0020.0002] # BRAILLE PATTERN DOTS-5678
-28F1 ; [*0D93.0020.0002] # BRAILLE PATTERN DOTS-15678
-28F2 ; [*0D94.0020.0002] # BRAILLE PATTERN DOTS-25678
-28F3 ; [*0D95.0020.0002] # BRAILLE PATTERN DOTS-125678
-28F4 ; [*0D96.0020.0002] # BRAILLE PATTERN DOTS-35678
-28F5 ; [*0D97.0020.0002] # BRAILLE PATTERN DOTS-135678
-28F6 ; [*0D98.0020.0002] # BRAILLE PATTERN DOTS-235678
-28F7 ; [*0D99.0020.0002] # BRAILLE PATTERN DOTS-1235678
-28F8 ; [*0D9A.0020.0002] # BRAILLE PATTERN DOTS-45678
-28F9 ; [*0D9B.0020.0002] # BRAILLE PATTERN DOTS-145678
-28FA ; [*0D9C.0020.0002] # BRAILLE PATTERN DOTS-245678
-28FB ; [*0D9D.0020.0002] # BRAILLE PATTERN DOTS-1245678
-28FC ; [*0D9E.0020.0002] # BRAILLE PATTERN DOTS-345678
-28FD ; [*0D9F.0020.0002] # BRAILLE PATTERN DOTS-1345678
-28FE ; [*0DA0.0020.0002] # BRAILLE PATTERN DOTS-2345678
-28FF ; [*0DA1.0020.0002] # BRAILLE PATTERN DOTS-12345678
-2900 ; [*0A66.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
-2901 ; [*0A67.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
-2902 ; [*0A68.0020.0002] # LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2903 ; [*0A69.0020.0002] # RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2904 ; [*0A6A.0020.0002] # LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
-2905 ; [*0A6B.0020.0002] # RIGHTWARDS TWO-HEADED ARROW FROM BAR
-2906 ; [*0A6C.0020.0002] # LEFTWARDS DOUBLE ARROW FROM BAR
-2907 ; [*0A6D.0020.0002] # RIGHTWARDS DOUBLE ARROW FROM BAR
-2908 ; [*0A6E.0020.0002] # DOWNWARDS ARROW WITH HORIZONTAL STROKE
-2909 ; [*0A6F.0020.0002] # UPWARDS ARROW WITH HORIZONTAL STROKE
-290A ; [*0A70.0020.0002] # UPWARDS TRIPLE ARROW
-290B ; [*0A71.0020.0002] # DOWNWARDS TRIPLE ARROW
-290C ; [*0A72.0020.0002] # LEFTWARDS DOUBLE DASH ARROW
-290D ; [*0A73.0020.0002] # RIGHTWARDS DOUBLE DASH ARROW
-290E ; [*0A74.0020.0002] # LEFTWARDS TRIPLE DASH ARROW
-290F ; [*0A75.0020.0002] # RIGHTWARDS TRIPLE DASH ARROW
-2910 ; [*0A76.0020.0002] # RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
-2911 ; [*0A77.0020.0002] # RIGHTWARDS ARROW WITH DOTTED STEM
-2912 ; [*0A78.0020.0002] # UPWARDS ARROW TO BAR
-2913 ; [*0A79.0020.0002] # DOWNWARDS ARROW TO BAR
-2914 ; [*0A7A.0020.0002] # RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
-2915 ; [*0A7B.0020.0002] # RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2916 ; [*0A7C.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL
-2917 ; [*0A7D.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
-2918 ; [*0A7E.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2919 ; [*0A7F.0020.0002] # LEFTWARDS ARROW-TAIL
-291A ; [*0A80.0020.0002] # RIGHTWARDS ARROW-TAIL
-291B ; [*0A81.0020.0002] # LEFTWARDS DOUBLE ARROW-TAIL
-291C ; [*0A82.0020.0002] # RIGHTWARDS DOUBLE ARROW-TAIL
-291D ; [*0A83.0020.0002] # LEFTWARDS ARROW TO BLACK DIAMOND
-291E ; [*0A84.0020.0002] # RIGHTWARDS ARROW TO BLACK DIAMOND
-291F ; [*0A85.0020.0002] # LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2920 ; [*0A86.0020.0002] # RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2921 ; [*0A87.0020.0002] # NORTH WEST AND SOUTH EAST ARROW
-2922 ; [*0A88.0020.0002] # NORTH EAST AND SOUTH WEST ARROW
-2923 ; [*0A89.0020.0002] # NORTH WEST ARROW WITH HOOK
-2924 ; [*0A8A.0020.0002] # NORTH EAST ARROW WITH HOOK
-2925 ; [*0A8B.0020.0002] # SOUTH EAST ARROW WITH HOOK
-2926 ; [*0A8C.0020.0002] # SOUTH WEST ARROW WITH HOOK
-2927 ; [*0A8D.0020.0002] # NORTH WEST ARROW AND NORTH EAST ARROW
-2928 ; [*0A8E.0020.0002] # NORTH EAST ARROW AND SOUTH EAST ARROW
-2929 ; [*0A8F.0020.0002] # SOUTH EAST ARROW AND SOUTH WEST ARROW
-292A ; [*0A90.0020.0002] # SOUTH WEST ARROW AND NORTH WEST ARROW
-292B ; [*0A91.0020.0002] # RISING DIAGONAL CROSSING FALLING DIAGONAL
-292C ; [*0A92.0020.0002] # FALLING DIAGONAL CROSSING RISING DIAGONAL
-292D ; [*0A93.0020.0002] # SOUTH EAST ARROW CROSSING NORTH EAST ARROW
-292E ; [*0A94.0020.0002] # NORTH EAST ARROW CROSSING SOUTH EAST ARROW
-292F ; [*0A95.0020.0002] # FALLING DIAGONAL CROSSING NORTH EAST ARROW
-2930 ; [*0A96.0020.0002] # RISING DIAGONAL CROSSING SOUTH EAST ARROW
-2931 ; [*0A97.0020.0002] # NORTH EAST ARROW CROSSING NORTH WEST ARROW
-2932 ; [*0A98.0020.0002] # NORTH WEST ARROW CROSSING NORTH EAST ARROW
-2933 ; [*0A99.0020.0002] # WAVE ARROW POINTING DIRECTLY RIGHT
-2934 ; [*0A9A.0020.0002] # ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
-2935 ; [*0A9B.0020.0002] # ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
-2936 ; [*0A9C.0020.0002] # ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
-2937 ; [*0A9D.0020.0002] # ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
-2938 ; [*0A9E.0020.0002] # RIGHT-SIDE ARC CLOCKWISE ARROW
-2939 ; [*0A9F.0020.0002] # LEFT-SIDE ARC ANTICLOCKWISE ARROW
-293A ; [*0AA0.0020.0002] # TOP ARC ANTICLOCKWISE ARROW
-293B ; [*0AA1.0020.0002] # BOTTOM ARC ANTICLOCKWISE ARROW
-293C ; [*0AA2.0020.0002] # TOP ARC CLOCKWISE ARROW WITH MINUS
-293D ; [*0AA3.0020.0002] # TOP ARC ANTICLOCKWISE ARROW WITH PLUS
-293E ; [*0AA4.0020.0002] # LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW
-293F ; [*0AA5.0020.0002] # LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW
-2940 ; [*0AA6.0020.0002] # ANTICLOCKWISE CLOSED CIRCLE ARROW
-2941 ; [*0AA7.0020.0002] # CLOCKWISE CLOSED CIRCLE ARROW
-2942 ; [*0AA8.0020.0002] # RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW
-2943 ; [*0AA9.0020.0002] # LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW
-2944 ; [*0AAA.0020.0002] # SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW
-2945 ; [*0AAB.0020.0002] # RIGHTWARDS ARROW WITH PLUS BELOW
-2946 ; [*0AAC.0020.0002] # LEFTWARDS ARROW WITH PLUS BELOW
-2947 ; [*0AAD.0020.0002] # RIGHTWARDS ARROW THROUGH X
-2948 ; [*0AAE.0020.0002] # LEFT RIGHT ARROW THROUGH SMALL CIRCLE
-2949 ; [*0AAF.0020.0002] # UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
-294A ; [*0AB0.0020.0002] # LEFT BARB UP RIGHT BARB DOWN HARPOON
-294B ; [*0AB1.0020.0002] # LEFT BARB DOWN RIGHT BARB UP HARPOON
-294C ; [*0AB2.0020.0002] # UP BARB RIGHT DOWN BARB LEFT HARPOON
-294D ; [*0AB3.0020.0002] # UP BARB LEFT DOWN BARB RIGHT HARPOON
-294E ; [*0AB4.0020.0002] # LEFT BARB UP RIGHT BARB UP HARPOON
-294F ; [*0AB5.0020.0002] # UP BARB RIGHT DOWN BARB RIGHT HARPOON
-2950 ; [*0AB6.0020.0002] # LEFT BARB DOWN RIGHT BARB DOWN HARPOON
-2951 ; [*0AB7.0020.0002] # UP BARB LEFT DOWN BARB LEFT HARPOON
-2952 ; [*0AB8.0020.0002] # LEFTWARDS HARPOON WITH BARB UP TO BAR
-2953 ; [*0AB9.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP TO BAR
-2954 ; [*0ABA.0020.0002] # UPWARDS HARPOON WITH BARB RIGHT TO BAR
-2955 ; [*0ABB.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
-2956 ; [*0ABC.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN TO BAR
-2957 ; [*0ABD.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
-2958 ; [*0ABE.0020.0002] # UPWARDS HARPOON WITH BARB LEFT TO BAR
-2959 ; [*0ABF.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT TO BAR
-295A ; [*0AC0.0020.0002] # LEFTWARDS HARPOON WITH BARB UP FROM BAR
-295B ; [*0AC1.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP FROM BAR
-295C ; [*0AC2.0020.0002] # UPWARDS HARPOON WITH BARB RIGHT FROM BAR
-295D ; [*0AC3.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
-295E ; [*0AC4.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
-295F ; [*0AC5.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
-2960 ; [*0AC6.0020.0002] # UPWARDS HARPOON WITH BARB LEFT FROM BAR
-2961 ; [*0AC7.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
-2962 ; [*0AC8.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-2963 ; [*0AC9.0020.0002] # UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2964 ; [*0ACA.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2965 ; [*0ACB.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-2966 ; [*0ACC.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
-2967 ; [*0ACD.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2968 ; [*0ACE.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
-2969 ; [*0ACF.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-296A ; [*0AD0.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296B ; [*0AD1.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296C ; [*0AD2.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296D ; [*0AD3.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296E ; [*0AD4.0020.0002] # UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-296F ; [*0AD5.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2970 ; [*0AD6.0020.0002] # RIGHT DOUBLE ARROW WITH ROUNDED HEAD
-2971 ; [*0AD7.0020.0002] # EQUALS SIGN ABOVE RIGHTWARDS ARROW
-2972 ; [*0AD8.0020.0002] # TILDE OPERATOR ABOVE RIGHTWARDS ARROW
-2973 ; [*0AD9.0020.0002] # LEFTWARDS ARROW ABOVE TILDE OPERATOR
-2974 ; [*0ADA.0020.0002] # RIGHTWARDS ARROW ABOVE TILDE OPERATOR
-2975 ; [*0ADB.0020.0002] # RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO
-2976 ; [*0ADC.0020.0002] # LESS-THAN ABOVE LEFTWARDS ARROW
-2977 ; [*0ADD.0020.0002] # LEFTWARDS ARROW THROUGH LESS-THAN
-2978 ; [*0ADE.0020.0002] # GREATER-THAN ABOVE RIGHTWARDS ARROW
-2979 ; [*0ADF.0020.0002] # SUBSET ABOVE RIGHTWARDS ARROW
-297A ; [*0AE0.0020.0002] # LEFTWARDS ARROW THROUGH SUBSET
-297B ; [*0AE1.0020.0002] # SUPERSET ABOVE LEFTWARDS ARROW
-297C ; [*0AE2.0020.0002] # LEFT FISH TAIL
-297D ; [*0AE3.0020.0002] # RIGHT FISH TAIL
-297E ; [*0AE4.0020.0002] # UP FISH TAIL
-297F ; [*0AE5.0020.0002] # DOWN FISH TAIL
-2980 ; [*0AE6.0020.0002] # TRIPLE VERTICAL BAR DELIMITER
-2981 ; [*0AE7.0020.0002] # Z NOTATION SPOT
-2982 ; [*0AE8.0020.0002] # Z NOTATION TYPE COLON
-2983 ; [*030E.0020.0002] # LEFT WHITE CURLY BRACKET
-2984 ; [*030F.0020.0002] # RIGHT WHITE CURLY BRACKET
-2985 ; [*0310.0020.0002] # LEFT WHITE PARENTHESIS
-2986 ; [*0311.0020.0002] # RIGHT WHITE PARENTHESIS
-2987 ; [*0312.0020.0002] # Z NOTATION LEFT IMAGE BRACKET
-2988 ; [*0313.0020.0002] # Z NOTATION RIGHT IMAGE BRACKET
-2989 ; [*0314.0020.0002] # Z NOTATION LEFT BINDING BRACKET
-298A ; [*0315.0020.0002] # Z NOTATION RIGHT BINDING BRACKET
-298B ; [*0316.0020.0002] # LEFT SQUARE BRACKET WITH UNDERBAR
-298C ; [*0317.0020.0002] # RIGHT SQUARE BRACKET WITH UNDERBAR
-298D ; [*0318.0020.0002] # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
-298E ; [*0319.0020.0002] # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-298F ; [*031A.0020.0002] # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-2990 ; [*031B.0020.0002] # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
-2991 ; [*031C.0020.0002] # LEFT ANGLE BRACKET WITH DOT
-2992 ; [*031D.0020.0002] # RIGHT ANGLE BRACKET WITH DOT
-2993 ; [*031E.0020.0002] # LEFT ARC LESS-THAN BRACKET
-2994 ; [*031F.0020.0002] # RIGHT ARC GREATER-THAN BRACKET
-2995 ; [*0320.0020.0002] # DOUBLE LEFT ARC GREATER-THAN BRACKET
-2996 ; [*0321.0020.0002] # DOUBLE RIGHT ARC LESS-THAN BRACKET
-2997 ; [*0322.0020.0002] # LEFT BLACK TORTOISE SHELL BRACKET
-2998 ; [*0323.0020.0002] # RIGHT BLACK TORTOISE SHELL BRACKET
-2999 ; [*0AE9.0020.0002] # DOTTED FENCE
-299A ; [*0AEA.0020.0002] # VERTICAL ZIGZAG LINE
-299B ; [*0AEB.0020.0002] # MEASURED ANGLE OPENING LEFT
-299C ; [*0AEC.0020.0002] # RIGHT ANGLE VARIANT WITH SQUARE
-299D ; [*0AED.0020.0002] # MEASURED RIGHT ANGLE WITH DOT
-299E ; [*0AEE.0020.0002] # ANGLE WITH S INSIDE
-299F ; [*0AEF.0020.0002] # ACUTE ANGLE
-29A0 ; [*0AF0.0020.0002] # SPHERICAL ANGLE OPENING LEFT
-29A1 ; [*0AF1.0020.0002] # SPHERICAL ANGLE OPENING UP
-29A2 ; [*0AF2.0020.0002] # TURNED ANGLE
-29A3 ; [*0AF3.0020.0002] # REVERSED ANGLE
-29A4 ; [*0AF4.0020.0002] # ANGLE WITH UNDERBAR
-29A5 ; [*0AF5.0020.0002] # REVERSED ANGLE WITH UNDERBAR
-29A6 ; [*0AF6.0020.0002] # OBLIQUE ANGLE OPENING UP
-29A7 ; [*0AF7.0020.0002] # OBLIQUE ANGLE OPENING DOWN
-29A8 ; [*0AF8.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
-29A9 ; [*0AF9.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
-29AA ; [*0AFA.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
-29AB ; [*0AFB.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
-29AC ; [*0AFC.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
-29AD ; [*0AFD.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
-29AE ; [*0AFE.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
-29AF ; [*0AFF.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
-29B0 ; [*0B00.0020.0002] # REVERSED EMPTY SET
-29B1 ; [*0B01.0020.0002] # EMPTY SET WITH OVERBAR
-29B2 ; [*0B02.0020.0002] # EMPTY SET WITH SMALL CIRCLE ABOVE
-29B3 ; [*0B03.0020.0002] # EMPTY SET WITH RIGHT ARROW ABOVE
-29B4 ; [*0B04.0020.0002] # EMPTY SET WITH LEFT ARROW ABOVE
-29B5 ; [*0B05.0020.0002] # CIRCLE WITH HORIZONTAL BAR
-29B6 ; [*0B06.0020.0002] # CIRCLED VERTICAL BAR
-29B7 ; [*0B07.0020.0002] # CIRCLED PARALLEL
-29B8 ; [*0B08.0020.0002] # CIRCLED REVERSE SOLIDUS
-29B9 ; [*0B09.0020.0002] # CIRCLED PERPENDICULAR
-29BA ; [*0B0A.0020.0002] # CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR
-29BB ; [*0B0B.0020.0002] # CIRCLE WITH SUPERIMPOSED X
-29BC ; [*0B0C.0020.0002] # CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
-29BD ; [*0B0D.0020.0002] # UP ARROW THROUGH CIRCLE
-29BE ; [*0B0E.0020.0002] # CIRCLED WHITE BULLET
-29BF ; [*0B0F.0020.0002] # CIRCLED BULLET
-29C0 ; [*0B10.0020.0002] # CIRCLED LESS-THAN
-29C1 ; [*0B11.0020.0002] # CIRCLED GREATER-THAN
-29C2 ; [*0B12.0020.0002] # CIRCLE WITH SMALL CIRCLE TO THE RIGHT
-29C3 ; [*0B13.0020.0002] # CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
-29C4 ; [*0B14.0020.0002] # SQUARED RISING DIAGONAL SLASH
-29C5 ; [*0B15.0020.0002] # SQUARED FALLING DIAGONAL SLASH
-29C6 ; [*0B16.0020.0002] # SQUARED ASTERISK
-29C7 ; [*0B17.0020.0002] # SQUARED SMALL CIRCLE
-29C8 ; [*0B18.0020.0002] # SQUARED SQUARE
-29C9 ; [*0B19.0020.0002] # TWO JOINED SQUARES
-29CA ; [*0B1A.0020.0002] # TRIANGLE WITH DOT ABOVE
-29CB ; [*0B1B.0020.0002] # TRIANGLE WITH UNDERBAR
-29CC ; [*0B1C.0020.0002] # S IN TRIANGLE
-29CD ; [*0B1D.0020.0002] # TRIANGLE WITH SERIFS AT BOTTOM
-29CE ; [*0B1E.0020.0002] # RIGHT TRIANGLE ABOVE LEFT TRIANGLE
-29CF ; [*0B1F.0020.0002] # LEFT TRIANGLE BESIDE VERTICAL BAR
-29D0 ; [*0B20.0020.0002] # VERTICAL BAR BESIDE RIGHT TRIANGLE
-29D1 ; [*0B21.0020.0002] # BOWTIE WITH LEFT HALF BLACK
-29D2 ; [*0B22.0020.0002] # BOWTIE WITH RIGHT HALF BLACK
-29D3 ; [*0B23.0020.0002] # BLACK BOWTIE
-29D4 ; [*0B24.0020.0002] # TIMES WITH LEFT HALF BLACK
-29D5 ; [*0B25.0020.0002] # TIMES WITH RIGHT HALF BLACK
-29D6 ; [*0B26.0020.0002] # WHITE HOURGLASS
-29D7 ; [*0B27.0020.0002] # BLACK HOURGLASS
-29D8 ; [*0367.0020.0002] # LEFT WIGGLY FENCE
-29D9 ; [*0368.0020.0002] # RIGHT WIGGLY FENCE
-29DA ; [*0369.0020.0002] # LEFT DOUBLE WIGGLY FENCE
-29DB ; [*036A.0020.0002] # RIGHT DOUBLE WIGGLY FENCE
-29DC ; [*0B28.0020.0002] # INCOMPLETE INFINITY
-29DD ; [*0B29.0020.0002] # TIE OVER INFINITY
-29DE ; [*0B2A.0020.0002] # INFINITY NEGATED WITH VERTICAL BAR
-29DF ; [*0B2B.0020.0002] # DOUBLE-ENDED MULTIMAP
-29E0 ; [*0B2C.0020.0002] # SQUARE WITH CONTOURED OUTLINE
-29E1 ; [*0B2D.0020.0002] # INCREASES AS
-29E2 ; [*0B2E.0020.0002] # SHUFFLE PRODUCT
-29E3 ; [*0B2F.0020.0002] # EQUALS SIGN AND SLANTED PARALLEL
-29E4 ; [*0B30.0020.0002] # EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
-29E5 ; [*0B31.0020.0002] # IDENTICAL TO AND SLANTED PARALLEL
-29E6 ; [*0B32.0020.0002] # GLEICH STARK
-29E7 ; [*0B33.0020.0002] # THERMODYNAMIC
-29E8 ; [*0B34.0020.0002] # DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
-29E9 ; [*0B35.0020.0002] # DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
-29EA ; [*0B36.0020.0002] # BLACK DIAMOND WITH DOWN ARROW
-29EB ; [*0B37.0020.0002] # BLACK LOZENGE
-29EC ; [*0B38.0020.0002] # WHITE CIRCLE WITH DOWN ARROW
-29ED ; [*0B39.0020.0002] # BLACK CIRCLE WITH DOWN ARROW
-29EE ; [*0B3A.0020.0002] # ERROR-BARRED WHITE SQUARE
-29EF ; [*0B3B.0020.0002] # ERROR-BARRED BLACK SQUARE
-29F0 ; [*0B3C.0020.0002] # ERROR-BARRED WHITE DIAMOND
-29F1 ; [*0B3D.0020.0002] # ERROR-BARRED BLACK DIAMOND
-29F2 ; [*0B3E.0020.0002] # ERROR-BARRED WHITE CIRCLE
-29F3 ; [*0B3F.0020.0002] # ERROR-BARRED BLACK CIRCLE
-29F4 ; [*0B40.0020.0002] # RULE-DELAYED
-29F5 ; [*0B41.0020.0002] # REVERSE SOLIDUS OPERATOR
-29F6 ; [*0B42.0020.0002] # SOLIDUS WITH OVERBAR
-29F7 ; [*0B43.0020.0002] # REVERSE SOLIDUS WITH HORIZONTAL STROKE
-29F8 ; [*0B44.0020.0002] # BIG SOLIDUS
-29F9 ; [*0B45.0020.0002] # BIG REVERSE SOLIDUS
-29FA ; [*0B46.0020.0002] # DOUBLE PLUS
-29FB ; [*0B47.0020.0002] # TRIPLE PLUS
-29FC ; [*030C.0020.0002] # LEFT-POINTING CURVED ANGLE BRACKET
-29FD ; [*030D.0020.0002] # RIGHT-POINTING CURVED ANGLE BRACKET
-29FE ; [*0B48.0020.0002] # TINY
-29FF ; [*0B49.0020.0002] # MINY
-2A00 ; [*0B4A.0020.0002] # N-ARY CIRCLED DOT OPERATOR
-2A01 ; [*0B4B.0020.0002] # N-ARY CIRCLED PLUS OPERATOR
-2A02 ; [*0B4C.0020.0002] # N-ARY CIRCLED TIMES OPERATOR
-2A03 ; [*0B4D.0020.0002] # N-ARY UNION OPERATOR WITH DOT
-2A04 ; [*0B4E.0020.0002] # N-ARY UNION OPERATOR WITH PLUS
-2A05 ; [*0B4F.0020.0002] # N-ARY SQUARE INTERSECTION OPERATOR
-2A06 ; [*0B50.0020.0002] # N-ARY SQUARE UNION OPERATOR
-2A07 ; [*0B51.0020.0002] # TWO LOGICAL AND OPERATOR
-2A08 ; [*0B52.0020.0002] # TWO LOGICAL OR OPERATOR
-2A09 ; [*0B53.0020.0002] # N-ARY TIMES OPERATOR
-2A0A ; [*0B54.0020.0002] # MODULO TWO SUM
-2A0B ; [*0B55.0020.0002] # SUMMATION WITH INTEGRAL
-2A0C ; [*05C5.0020.0004][*05C5.0020.0004][*05C5.0020.0004][*05C5.0020.0004] # QUADRUPLE INTEGRAL OPERATOR
-2A0D ; [*0B56.0020.0002] # FINITE PART INTEGRAL
-2A0E ; [*0B57.0020.0002] # INTEGRAL WITH DOUBLE STROKE
-2A0F ; [*0B58.0020.0002] # INTEGRAL AVERAGE WITH SLASH
-2A10 ; [*0B59.0020.0002] # CIRCULATION FUNCTION
-2A11 ; [*0B5A.0020.0002] # ANTICLOCKWISE INTEGRATION
-2A12 ; [*0B5B.0020.0002] # LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
-2A13 ; [*0B5C.0020.0002] # LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
-2A14 ; [*0B5D.0020.0002] # LINE INTEGRATION NOT INCLUDING THE POLE
-2A15 ; [*0B5E.0020.0002] # INTEGRAL AROUND A POINT OPERATOR
-2A16 ; [*0B5F.0020.0002] # QUATERNION INTEGRAL OPERATOR
-2A17 ; [*0B60.0020.0002] # INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
-2A18 ; [*0B61.0020.0002] # INTEGRAL WITH TIMES SIGN
-2A19 ; [*0B62.0020.0002] # INTEGRAL WITH INTERSECTION
-2A1A ; [*0B63.0020.0002] # INTEGRAL WITH UNION
-2A1B ; [*0B64.0020.0002] # INTEGRAL WITH OVERBAR
-2A1C ; [*0B65.0020.0002] # INTEGRAL WITH UNDERBAR
-2A1D ; [*0B66.0020.0002] # JOIN
-2A1E ; [*0B67.0020.0002] # LARGE LEFT TRIANGLE OPERATOR
-2A1F ; [*0B68.0020.0002] # Z NOTATION SCHEMA COMPOSITION
-2A20 ; [*0B69.0020.0002] # Z NOTATION SCHEMA PIPING
-2A21 ; [*0B6A.0020.0002] # Z NOTATION SCHEMA PROJECTION
-2A22 ; [*0B6B.0020.0002] # PLUS SIGN WITH SMALL CIRCLE ABOVE
-2A23 ; [*0B6C.0020.0002] # PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
-2A24 ; [*0B6D.0020.0002] # PLUS SIGN WITH TILDE ABOVE
-2A25 ; [*0B6E.0020.0002] # PLUS SIGN WITH DOT BELOW
-2A26 ; [*0B6F.0020.0002] # PLUS SIGN WITH TILDE BELOW
-2A27 ; [*0B70.0020.0002] # PLUS SIGN WITH SUBSCRIPT TWO
-2A28 ; [*0B71.0020.0002] # PLUS SIGN WITH BLACK TRIANGLE
-2A29 ; [*0B72.0020.0002] # MINUS SIGN WITH COMMA ABOVE
-2A2A ; [*0B73.0020.0002] # MINUS SIGN WITH DOT BELOW
-2A2B ; [*0B74.0020.0002] # MINUS SIGN WITH FALLING DOTS
-2A2C ; [*0B75.0020.0002] # MINUS SIGN WITH RISING DOTS
-2A2D ; [*0B76.0020.0002] # PLUS SIGN IN LEFT HALF CIRCLE
-2A2E ; [*0B77.0020.0002] # PLUS SIGN IN RIGHT HALF CIRCLE
-2A2F ; [*0B78.0020.0002] # VECTOR OR CROSS PRODUCT
-2A30 ; [*0B79.0020.0002] # MULTIPLICATION SIGN WITH DOT ABOVE
-2A31 ; [*0B7A.0020.0002] # MULTIPLICATION SIGN WITH UNDERBAR
-2A32 ; [*0B7B.0020.0002] # SEMIDIRECT PRODUCT WITH BOTTOM CLOSED
-2A33 ; [*0B7C.0020.0002] # SMASH PRODUCT
-2A34 ; [*0B7D.0020.0002] # MULTIPLICATION SIGN IN LEFT HALF CIRCLE
-2A35 ; [*0B7E.0020.0002] # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
-2A36 ; [*0B7F.0020.0002] # CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
-2A37 ; [*0B80.0020.0002] # MULTIPLICATION SIGN IN DOUBLE CIRCLE
-2A38 ; [*0B81.0020.0002] # CIRCLED DIVISION SIGN
-2A39 ; [*0B82.0020.0002] # PLUS SIGN IN TRIANGLE
-2A3A ; [*0B83.0020.0002] # MINUS SIGN IN TRIANGLE
-2A3B ; [*0B84.0020.0002] # MULTIPLICATION SIGN IN TRIANGLE
-2A3C ; [*0B85.0020.0002] # INTERIOR PRODUCT
-2A3D ; [*0B86.0020.0002] # RIGHTHAND INTERIOR PRODUCT
-2A3E ; [*0B87.0020.0002] # Z NOTATION RELATIONAL COMPOSITION
-2A3F ; [*0B88.0020.0002] # AMALGAMATION OR COPRODUCT
-2A40 ; [*0B89.0020.0002] # INTERSECTION WITH DOT
-2A41 ; [*0B8A.0020.0002] # UNION WITH MINUS SIGN
-2A42 ; [*0B8B.0020.0002] # UNION WITH OVERBAR
-2A43 ; [*0B8C.0020.0002] # INTERSECTION WITH OVERBAR
-2A44 ; [*0B8D.0020.0002] # INTERSECTION WITH LOGICAL AND
-2A45 ; [*0B8E.0020.0002] # UNION WITH LOGICAL OR
-2A46 ; [*0B8F.0020.0002] # UNION ABOVE INTERSECTION
-2A47 ; [*0B90.0020.0002] # INTERSECTION ABOVE UNION
-2A48 ; [*0B91.0020.0002] # UNION ABOVE BAR ABOVE INTERSECTION
-2A49 ; [*0B92.0020.0002] # INTERSECTION ABOVE BAR ABOVE UNION
-2A4A ; [*0B93.0020.0002] # UNION BESIDE AND JOINED WITH UNION
-2A4B ; [*0B94.0020.0002] # INTERSECTION BESIDE AND JOINED WITH INTERSECTION
-2A4C ; [*0B95.0020.0002] # CLOSED UNION WITH SERIFS
-2A4D ; [*0B96.0020.0002] # CLOSED INTERSECTION WITH SERIFS
-2A4E ; [*0B97.0020.0002] # DOUBLE SQUARE INTERSECTION
-2A4F ; [*0B98.0020.0002] # DOUBLE SQUARE UNION
-2A50 ; [*0B99.0020.0002] # CLOSED UNION WITH SERIFS AND SMASH PRODUCT
-2A51 ; [*0B9A.0020.0002] # LOGICAL AND WITH DOT ABOVE
-2A52 ; [*0B9B.0020.0002] # LOGICAL OR WITH DOT ABOVE
-2A53 ; [*0B9C.0020.0002] # DOUBLE LOGICAL AND
-2A54 ; [*0B9D.0020.0002] # DOUBLE LOGICAL OR
-2A55 ; [*0B9E.0020.0002] # TWO INTERSECTING LOGICAL AND
-2A56 ; [*0B9F.0020.0002] # TWO INTERSECTING LOGICAL OR
-2A57 ; [*0BA0.0020.0002] # SLOPING LARGE OR
-2A58 ; [*0BA1.0020.0002] # SLOPING LARGE AND
-2A59 ; [*0BA2.0020.0002] # LOGICAL OR OVERLAPPING LOGICAL AND
-2A5A ; [*0BA3.0020.0002] # LOGICAL AND WITH MIDDLE STEM
-2A5B ; [*0BA4.0020.0002] # LOGICAL OR WITH MIDDLE STEM
-2A5C ; [*0BA5.0020.0002] # LOGICAL AND WITH HORIZONTAL DASH
-2A5D ; [*0BA6.0020.0002] # LOGICAL OR WITH HORIZONTAL DASH
-2A5E ; [*0BA7.0020.0002] # LOGICAL AND WITH DOUBLE OVERBAR
-2A5F ; [*0BA8.0020.0002] # LOGICAL AND WITH UNDERBAR
-2A60 ; [*0BA9.0020.0002] # LOGICAL AND WITH DOUBLE UNDERBAR
-2A61 ; [*0BAA.0020.0002] # SMALL VEE WITH UNDERBAR
-2A62 ; [*0BAB.0020.0002] # LOGICAL OR WITH DOUBLE OVERBAR
-2A63 ; [*0BAC.0020.0002] # LOGICAL OR WITH DOUBLE UNDERBAR
-2A64 ; [*0BAD.0020.0002] # Z NOTATION DOMAIN ANTIRESTRICTION
-2A65 ; [*0BAE.0020.0002] # Z NOTATION RANGE ANTIRESTRICTION
-2A66 ; [*0BAF.0020.0002] # EQUALS SIGN WITH DOT BELOW
-2A67 ; [*0BB0.0020.0002] # IDENTICAL WITH DOT ABOVE
-2A68 ; [*0BB1.0020.0002] # TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE
-2A69 ; [*0BB2.0020.0002] # TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE
-2A6A ; [*0BB3.0020.0002] # TILDE OPERATOR WITH DOT ABOVE
-2A6B ; [*0BB4.0020.0002] # TILDE OPERATOR WITH RISING DOTS
-2A6C ; [*0BB5.0020.0002] # SIMILAR MINUS SIMILAR
-2A6D ; [*0BB6.0020.0002] # CONGRUENT WITH DOT ABOVE
-2A6E ; [*0BB7.0020.0002] # EQUALS WITH ASTERISK
-2A6F ; [*0BB8.0020.0002] # ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
-2A70 ; [*0BB9.0020.0002] # APPROXIMATELY EQUAL OR EQUAL TO
-2A71 ; [*0BBA.0020.0002] # EQUALS SIGN ABOVE PLUS SIGN
-2A72 ; [*0BBB.0020.0002] # PLUS SIGN ABOVE EQUALS SIGN
-2A73 ; [*0BBC.0020.0002] # EQUALS SIGN ABOVE TILDE OPERATOR
-2A74 ; [*0236.0020.0004][*0236.0020.0004][*05A4.0020.0004] # DOUBLE COLON EQUAL
-2A75 ; [*05A4.0020.0004][*05A4.0020.0004] # TWO CONSECUTIVE EQUALS SIGNS
-2A76 ; [*05A4.0020.0004][*05A4.0020.0004][*05A4.0020.0004] # THREE CONSECUTIVE EQUALS SIGNS
-2A77 ; [*0BBD.0020.0002] # EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
-2A78 ; [*0BBE.0020.0002] # EQUIVALENT WITH FOUR DOTS ABOVE
-2A79 ; [*0BBF.0020.0002] # LESS-THAN WITH CIRCLE INSIDE
-2A7A ; [*0BC0.0020.0002] # GREATER-THAN WITH CIRCLE INSIDE
-2A7B ; [*0BC1.0020.0002] # LESS-THAN WITH QUESTION MARK ABOVE
-2A7C ; [*0BC2.0020.0002] # GREATER-THAN WITH QUESTION MARK ABOVE
-2A7D ; [*0BC3.0020.0002] # LESS-THAN OR SLANTED EQUAL TO
-2A7E ; [*0BC4.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO
-2A7F ; [*0BC5.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A80 ; [*0BC6.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A81 ; [*0BC7.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A82 ; [*0BC8.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A83 ; [*0BC9.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
-2A84 ; [*0BCA.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
-2A85 ; [*0BCB.0020.0002] # LESS-THAN OR APPROXIMATE
-2A86 ; [*0BCC.0020.0002] # GREATER-THAN OR APPROXIMATE
-2A87 ; [*0BCD.0020.0002] # LESS-THAN AND SINGLE-LINE NOT EQUAL TO
-2A88 ; [*0BCE.0020.0002] # GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
-2A89 ; [*0BCF.0020.0002] # LESS-THAN AND NOT APPROXIMATE
-2A8A ; [*0BD0.0020.0002] # GREATER-THAN AND NOT APPROXIMATE
-2A8B ; [*0BD1.0020.0002] # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
-2A8C ; [*0BD2.0020.0002] # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
-2A8D ; [*0BD3.0020.0002] # LESS-THAN ABOVE SIMILAR OR EQUAL
-2A8E ; [*0BD4.0020.0002] # GREATER-THAN ABOVE SIMILAR OR EQUAL
-2A8F ; [*0BD5.0020.0002] # LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
-2A90 ; [*0BD6.0020.0002] # GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
-2A91 ; [*0BD7.0020.0002] # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
-2A92 ; [*0BD8.0020.0002] # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
-2A93 ; [*0BD9.0020.0002] # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
-2A94 ; [*0BDA.0020.0002] # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
-2A95 ; [*0BDB.0020.0002] # SLANTED EQUAL TO OR LESS-THAN
-2A96 ; [*0BDC.0020.0002] # SLANTED EQUAL TO OR GREATER-THAN
-2A97 ; [*0BDD.0020.0002] # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
-2A98 ; [*0BDE.0020.0002] # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
-2A99 ; [*0BDF.0020.0002] # DOUBLE-LINE EQUAL TO OR LESS-THAN
-2A9A ; [*0BE0.0020.0002] # DOUBLE-LINE EQUAL TO OR GREATER-THAN
-2A9B ; [*0BE1.0020.0002] # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
-2A9C ; [*0BE2.0020.0002] # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
-2A9D ; [*0BE3.0020.0002] # SIMILAR OR LESS-THAN
-2A9E ; [*0BE4.0020.0002] # SIMILAR OR GREATER-THAN
-2A9F ; [*0BE5.0020.0002] # SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
-2AA0 ; [*0BE6.0020.0002] # SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
-2AA1 ; [*0BE7.0020.0002] # DOUBLE NESTED LESS-THAN
-2AA2 ; [*0BE8.0020.0002] # DOUBLE NESTED GREATER-THAN
-2AA3 ; [*0BE9.0020.0002] # DOUBLE NESTED LESS-THAN WITH UNDERBAR
-2AA4 ; [*0BEA.0020.0002] # GREATER-THAN OVERLAPPING LESS-THAN
-2AA5 ; [*0BEB.0020.0002] # GREATER-THAN BESIDE LESS-THAN
-2AA6 ; [*0BEC.0020.0002] # LESS-THAN CLOSED BY CURVE
-2AA7 ; [*0BED.0020.0002] # GREATER-THAN CLOSED BY CURVE
-2AA8 ; [*0BEE.0020.0002] # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AA9 ; [*0BEF.0020.0002] # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AAA ; [*0BF0.0020.0002] # SMALLER THAN
-2AAB ; [*0BF1.0020.0002] # LARGER THAN
-2AAC ; [*0BF2.0020.0002] # SMALLER THAN OR EQUAL TO
-2AAD ; [*0BF3.0020.0002] # LARGER THAN OR EQUAL TO
-2AAE ; [*0BF4.0020.0002] # EQUALS SIGN WITH BUMPY ABOVE
-2AAF ; [*0BF5.0020.0002] # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
-2AB0 ; [*0BF6.0020.0002] # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
-2AB1 ; [*0BF7.0020.0002] # PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
-2AB2 ; [*0BF8.0020.0002] # SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
-2AB3 ; [*0BF9.0020.0002] # PRECEDES ABOVE EQUALS SIGN
-2AB4 ; [*0BFA.0020.0002] # SUCCEEDS ABOVE EQUALS SIGN
-2AB5 ; [*0BFB.0020.0002] # PRECEDES ABOVE NOT EQUAL TO
-2AB6 ; [*0BFC.0020.0002] # SUCCEEDS ABOVE NOT EQUAL TO
-2AB7 ; [*0BFD.0020.0002] # PRECEDES ABOVE ALMOST EQUAL TO
-2AB8 ; [*0BFE.0020.0002] # SUCCEEDS ABOVE ALMOST EQUAL TO
-2AB9 ; [*0BFF.0020.0002] # PRECEDES ABOVE NOT ALMOST EQUAL TO
-2ABA ; [*0C00.0020.0002] # SUCCEEDS ABOVE NOT ALMOST EQUAL TO
-2ABB ; [*0C01.0020.0002] # DOUBLE PRECEDES
-2ABC ; [*0C02.0020.0002] # DOUBLE SUCCEEDS
-2ABD ; [*0C03.0020.0002] # SUBSET WITH DOT
-2ABE ; [*0C04.0020.0002] # SUPERSET WITH DOT
-2ABF ; [*0C05.0020.0002] # SUBSET WITH PLUS SIGN BELOW
-2AC0 ; [*0C06.0020.0002] # SUPERSET WITH PLUS SIGN BELOW
-2AC1 ; [*0C07.0020.0002] # SUBSET WITH MULTIPLICATION SIGN BELOW
-2AC2 ; [*0C08.0020.0002] # SUPERSET WITH MULTIPLICATION SIGN BELOW
-2AC3 ; [*0C09.0020.0002] # SUBSET OF OR EQUAL TO WITH DOT ABOVE
-2AC4 ; [*0C0A.0020.0002] # SUPERSET OF OR EQUAL TO WITH DOT ABOVE
-2AC5 ; [*0C0B.0020.0002] # SUBSET OF ABOVE EQUALS SIGN
-2AC6 ; [*0C0C.0020.0002] # SUPERSET OF ABOVE EQUALS SIGN
-2AC7 ; [*0C0D.0020.0002] # SUBSET OF ABOVE TILDE OPERATOR
-2AC8 ; [*0C0E.0020.0002] # SUPERSET OF ABOVE TILDE OPERATOR
-2AC9 ; [*0C0F.0020.0002] # SUBSET OF ABOVE ALMOST EQUAL TO
-2ACA ; [*0C10.0020.0002] # SUPERSET OF ABOVE ALMOST EQUAL TO
-2ACB ; [*0C11.0020.0002] # SUBSET OF ABOVE NOT EQUAL TO
-2ACC ; [*0C12.0020.0002] # SUPERSET OF ABOVE NOT EQUAL TO
-2ACD ; [*0C13.0020.0002] # SQUARE LEFT OPEN BOX OPERATOR
-2ACE ; [*0C14.0020.0002] # SQUARE RIGHT OPEN BOX OPERATOR
-2ACF ; [*0C15.0020.0002] # CLOSED SUBSET
-2AD0 ; [*0C16.0020.0002] # CLOSED SUPERSET
-2AD1 ; [*0C17.0020.0002] # CLOSED SUBSET OR EQUAL TO
-2AD2 ; [*0C18.0020.0002] # CLOSED SUPERSET OR EQUAL TO
-2AD3 ; [*0C19.0020.0002] # SUBSET ABOVE SUPERSET
-2AD4 ; [*0C1A.0020.0002] # SUPERSET ABOVE SUBSET
-2AD5 ; [*0C1B.0020.0002] # SUBSET ABOVE SUBSET
-2AD6 ; [*0C1C.0020.0002] # SUPERSET ABOVE SUPERSET
-2AD7 ; [*0C1D.0020.0002] # SUPERSET BESIDE SUBSET
-2AD8 ; [*0C1E.0020.0002] # SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
-2AD9 ; [*0C1F.0020.0002] # ELEMENT OF OPENING DOWNWARDS
-2ADA ; [*0C20.0020.0002] # PITCHFORK WITH TEE TOP
-2ADB ; [*0C21.0020.0002] # TRANSVERSAL INTERSECTION
-2ADC ; [*0C22.0020.0002][.0000.002F.0002] # FORKING
-2ADD ; [*0C22.0020.0002] # NONFORKING
-2ADE ; [*0C23.0020.0002] # SHORT LEFT TACK
-2ADF ; [*0C24.0020.0002] # SHORT DOWN TACK
-2AE0 ; [*0C25.0020.0002] # SHORT UP TACK
-2AE1 ; [*0C26.0020.0002] # PERPENDICULAR WITH S
-2AE2 ; [*0C27.0020.0002] # VERTICAL BAR TRIPLE RIGHT TURNSTILE
-2AE3 ; [*0C28.0020.0002] # DOUBLE VERTICAL BAR LEFT TURNSTILE
-2AE4 ; [*0C29.0020.0002] # VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE5 ; [*0C2A.0020.0002] # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE6 ; [*0C2B.0020.0002] # LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
-2AE7 ; [*0C2C.0020.0002] # SHORT DOWN TACK WITH OVERBAR
-2AE8 ; [*0C2D.0020.0002] # SHORT UP TACK WITH UNDERBAR
-2AE9 ; [*0C2E.0020.0002] # SHORT UP TACK ABOVE SHORT DOWN TACK
-2AEA ; [*0C2F.0020.0002] # DOUBLE DOWN TACK
-2AEB ; [*0C30.0020.0002] # DOUBLE UP TACK
-2AEC ; [*0C31.0020.0002] # DOUBLE STROKE NOT SIGN
-2AED ; [*0C32.0020.0002] # REVERSED DOUBLE STROKE NOT SIGN
-2AEE ; [*0C33.0020.0002] # DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
-2AEF ; [*0C34.0020.0002] # VERTICAL LINE WITH CIRCLE ABOVE
-2AF0 ; [*0C35.0020.0002] # VERTICAL LINE WITH CIRCLE BELOW
-2AF1 ; [*0C36.0020.0002] # DOWN TACK WITH CIRCLE BELOW
-2AF2 ; [*0C37.0020.0002] # PARALLEL WITH HORIZONTAL STROKE
-2AF3 ; [*0C38.0020.0002] # PARALLEL WITH TILDE OPERATOR
-2AF4 ; [*0C39.0020.0002] # TRIPLE VERTICAL BAR BINARY RELATION
-2AF5 ; [*0C3A.0020.0002] # TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE
-2AF6 ; [*0C3B.0020.0002] # TRIPLE COLON OPERATOR
-2AF7 ; [*0C3C.0020.0002] # TRIPLE NESTED LESS-THAN
-2AF8 ; [*0C3D.0020.0002] # TRIPLE NESTED GREATER-THAN
-2AF9 ; [*0C3E.0020.0002] # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
-2AFA ; [*0C3F.0020.0002] # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
-2AFB ; [*0C40.0020.0002] # TRIPLE SOLIDUS BINARY RELATION
-2AFC ; [*0C41.0020.0002] # LARGE TRIPLE VERTICAL BAR OPERATOR
-2AFD ; [*0C42.0020.0002] # DOUBLE SOLIDUS OPERATOR
-2AFE ; [*0C43.0020.0002] # WHITE VERTICAL BAR
-2AFF ; [*0C44.0020.0002] # N-ARY WHITE VERTICAL BAR
-2B00 ; [*0C45.0020.0002] # NORTH EAST WHITE ARROW
-2B01 ; [*0C46.0020.0002] # NORTH WEST WHITE ARROW
-2B02 ; [*0C47.0020.0002] # SOUTH EAST WHITE ARROW
-2B03 ; [*0C48.0020.0002] # SOUTH WEST WHITE ARROW
-2B04 ; [*0C49.0020.0002] # LEFT RIGHT WHITE ARROW
-2B05 ; [*0C4A.0020.0002] # LEFTWARDS BLACK ARROW
-2B06 ; [*0C4B.0020.0002] # UPWARDS BLACK ARROW
-2B07 ; [*0C4C.0020.0002] # DOWNWARDS BLACK ARROW
-2B08 ; [*0C4D.0020.0002] # NORTH EAST BLACK ARROW
-2B09 ; [*0C4E.0020.0002] # NORTH WEST BLACK ARROW
-2B0A ; [*0C4F.0020.0002] # SOUTH EAST BLACK ARROW
-2B0B ; [*0C50.0020.0002] # SOUTH WEST BLACK ARROW
-2B0C ; [*0C51.0020.0002] # LEFT RIGHT BLACK ARROW
-2B0D ; [*0C52.0020.0002] # UP DOWN BLACK ARROW
-2B0E ; [*0C53.0020.0002] # RIGHTWARDS ARROW WITH TIP DOWNWARDS
-2B0F ; [*0C54.0020.0002] # RIGHTWARDS ARROW WITH TIP UPWARDS
-2B10 ; [*0C55.0020.0002] # LEFTWARDS ARROW WITH TIP DOWNWARDS
-2B11 ; [*0C56.0020.0002] # LEFTWARDS ARROW WITH TIP UPWARDS
-2B12 ; [*0C57.0020.0002] # SQUARE WITH TOP HALF BLACK
-2B13 ; [*0C58.0020.0002] # SQUARE WITH BOTTOM HALF BLACK
-2B14 ; [*0C59.0020.0002] # SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK
-2B15 ; [*0C5A.0020.0002] # SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK
-2B16 ; [*0C5B.0020.0002] # DIAMOND WITH LEFT HALF BLACK
-2B17 ; [*0C5C.0020.0002] # DIAMOND WITH RIGHT HALF BLACK
-2B18 ; [*0C5D.0020.0002] # DIAMOND WITH TOP HALF BLACK
-2B19 ; [*0C5E.0020.0002] # DIAMOND WITH BOTTOM HALF BLACK
-2B1A ; [*0C5F.0020.0002] # DOTTED SQUARE
-2B1B ; [*0C60.0020.0002] # BLACK LARGE SQUARE
-2B1C ; [*0C61.0020.0002] # WHITE LARGE SQUARE
-2B1D ; [*0C62.0020.0002] # BLACK VERY SMALL SQUARE
-2B1E ; [*0C63.0020.0002] # WHITE VERY SMALL SQUARE
-2B1F ; [*0C64.0020.0002] # BLACK PENTAGON
-2B20 ; [*0C65.0020.0002] # WHITE PENTAGON
-2B21 ; [*0C66.0020.0002] # WHITE HEXAGON
-2B22 ; [*0C67.0020.0002] # BLACK HEXAGON
-2B23 ; [*0C68.0020.0002] # HORIZONTAL BLACK HEXAGON
-2B24 ; [*0C69.0020.0002] # BLACK LARGE CIRCLE
-2B25 ; [*0C6A.0020.0002] # BLACK MEDIUM DIAMOND
-2B26 ; [*0C6B.0020.0002] # WHITE MEDIUM DIAMOND
-2B27 ; [*0C6C.0020.0002] # BLACK MEDIUM LOZENGE
-2B28 ; [*0C6D.0020.0002] # WHITE MEDIUM LOZENGE
-2B29 ; [*0C6E.0020.0002] # BLACK SMALL DIAMOND
-2B2A ; [*0C6F.0020.0002] # BLACK SMALL LOZENGE
-2B2B ; [*0C70.0020.0002] # WHITE SMALL LOZENGE
-2B2C ; [*0C71.0020.0002] # BLACK HORIZONTAL ELLIPSE
-2B2D ; [*0C72.0020.0002] # WHITE HORIZONTAL ELLIPSE
-2B2E ; [*0C73.0020.0002] # BLACK VERTICAL ELLIPSE
-2B2F ; [*0C74.0020.0002] # WHITE VERTICAL ELLIPSE
-2B30 ; [*0C75.0020.0002] # LEFT ARROW WITH SMALL CIRCLE
-2B31 ; [*0C76.0020.0002] # THREE LEFTWARDS ARROWS
-2B32 ; [*0C77.0020.0002] # LEFT ARROW WITH CIRCLED PLUS
-2B33 ; [*0C78.0020.0002] # LONG LEFTWARDS SQUIGGLE ARROW
-2B34 ; [*0C79.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
-2B35 ; [*0C7A.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
-2B36 ; [*0C7B.0020.0002] # LEFTWARDS TWO-HEADED ARROW FROM BAR
-2B37 ; [*0C7C.0020.0002] # LEFTWARDS TWO-HEADED TRIPLE DASH ARROW
-2B38 ; [*0C7D.0020.0002] # LEFTWARDS ARROW WITH DOTTED STEM
-2B39 ; [*0C7E.0020.0002] # LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
-2B3A ; [*0C7F.0020.0002] # LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2B3B ; [*0C80.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL
-2B3C ; [*0C81.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
-2B3D ; [*0C82.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2B3E ; [*0C83.0020.0002] # LEFTWARDS ARROW THROUGH X
-2B3F ; [*0C84.0020.0002] # WAVE ARROW POINTING DIRECTLY LEFT
-2B40 ; [*0C85.0020.0002] # EQUALS SIGN ABOVE LEFTWARDS ARROW
-2B41 ; [*0C86.0020.0002] # REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW
-2B42 ; [*0C87.0020.0002] # LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
-2B43 ; [*0C88.0020.0002] # RIGHTWARDS ARROW THROUGH GREATER-THAN
-2B44 ; [*0C89.0020.0002] # RIGHTWARDS ARROW THROUGH SUPERSET
-2B45 ; [*0C8A.0020.0002] # LEFTWARDS QUADRUPLE ARROW
-2B46 ; [*0C8B.0020.0002] # RIGHTWARDS QUADRUPLE ARROW
-2B47 ; [*0C8C.0020.0002] # REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW
-2B48 ; [*0C8D.0020.0002] # RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
-2B49 ; [*0C8E.0020.0002] # TILDE OPERATOR ABOVE LEFTWARDS ARROW
-2B4A ; [*0C8F.0020.0002] # LEFTWARDS ARROW ABOVE ALMOST EQUAL TO
-2B4B ; [*0C90.0020.0002] # LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B4C ; [*0C91.0020.0002] # RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B50 ; [*0C92.0020.0002] # WHITE MEDIUM STAR
-2B51 ; [*0C93.0020.0002] # BLACK SMALL STAR
-2B52 ; [*0C94.0020.0002] # WHITE SMALL STAR
-2B53 ; [*0C95.0020.0002] # BLACK RIGHT-POINTING PENTAGON
-2B54 ; [*0C96.0020.0002] # WHITE RIGHT-POINTING PENTAGON
-2B55 ; [*0C97.0020.0002] # HEAVY LARGE CIRCLE
-2B56 ; [*0C98.0020.0002] # HEAVY OVAL WITH OVAL INSIDE
-2B57 ; [*0C99.0020.0002] # HEAVY CIRCLE WITH CIRCLE INSIDE
-2B58 ; [*0C9A.0020.0002] # HEAVY CIRCLE
-2B59 ; [*0C9B.0020.0002] # HEAVY CIRCLED SALTIRE
-2CE5 ; [*0C9C.0020.0002] # COPTIC SYMBOL MI RO
-2CE6 ; [*0C9D.0020.0002] # COPTIC SYMBOL PI RO
-2CE7 ; [*0C9E.0020.0002] # COPTIC SYMBOL STAUROS
-2CE8 ; [*0C9F.0020.0002] # COPTIC SYMBOL TAU RO
-2CE9 ; [*0CA0.0020.0002] # COPTIC SYMBOL KHI RO
-2CEA ; [*0CA1.0020.0002] # COPTIC SYMBOL SHIMA SIMA
-2CF9 ; [*027C.0020.0002] # COPTIC OLD NUBIAN FULL STOP
-2CFA ; [*026A.0020.0002] # COPTIC OLD NUBIAN DIRECT QUESTION MARK
-2CFB ; [*026B.0020.0002] # COPTIC OLD NUBIAN INDIRECT QUESTION MARK
-2CFC ; [*02DB.0020.0002] # COPTIC OLD NUBIAN VERSE DIVIDER
-2CFD ; [*1519.0020.0002] # COPTIC FRACTION ONE HALF
-2CFE ; [*027D.0020.0002] # COPTIC FULL STOP
-2CFF ; [*02DC.0020.0002] # COPTIC MORPHOLOGICAL DIVIDER
-2D70 ; [*03F7.0020.0002] # TIFINAGH SEPARATOR MARK
+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
2D7F ; [.0000.0000.0000] # TIFINAGH CONSONANT JOINER
-2E00 ; [*0397.0020.0002] # RIGHT ANGLE SUBSTITUTION MARKER
-2E01 ; [*0398.0020.0002] # RIGHT ANGLE DOTTED SUBSTITUTION MARKER
-2E02 ; [*033E.0020.0002] # LEFT SUBSTITUTION BRACKET
-2E03 ; [*033F.0020.0002] # RIGHT SUBSTITUTION BRACKET
-2E04 ; [*0340.0020.0002] # LEFT DOTTED SUBSTITUTION BRACKET
-2E05 ; [*0341.0020.0002] # RIGHT DOTTED SUBSTITUTION BRACKET
-2E06 ; [*0399.0020.0002] # RAISED INTERPOLATION MARKER
-2E07 ; [*039A.0020.0002] # RAISED DOTTED INTERPOLATION MARKER
-2E08 ; [*039B.0020.0002] # DOTTED TRANSPOSITION MARKER
-2E09 ; [*0342.0020.0002] # LEFT TRANSPOSITION BRACKET
-2E0A ; [*0343.0020.0002] # RIGHT TRANSPOSITION BRACKET
-2E0B ; [*039C.0020.0002] # RAISED SQUARE
-2E0C ; [*0344.0020.0002] # LEFT RAISED OMISSION BRACKET
-2E0D ; [*0345.0020.0002] # RIGHT RAISED OMISSION BRACKET
-2E0E ; [*039D.0020.0002] # EDITORIAL CORONIS
-2E0F ; [*039E.0020.0002] # PARAGRAPHOS
-2E10 ; [*039F.0020.0002] # FORKED PARAGRAPHOS
-2E11 ; [*03A0.0020.0002] # REVERSED FORKED PARAGRAPHOS
-2E12 ; [*03A1.0020.0002] # HYPODIASTOLE
-2E13 ; [*03A2.0020.0002] # DOTTED OBELOS
-2E14 ; [*03A3.0020.0002] # DOWNWARDS ANCORA
-2E15 ; [*03A4.0020.0002] # UPWARDS ANCORA
-2E16 ; [*03A5.0020.0002] # DOTTED RIGHT-POINTING ANGLE
+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 ; [*0271.0020.0002] # INVERTED INTERROBANG
-2E19 ; [*02DD.0020.0002] # PALM BRANCH
-2E1A ; [*03A6.0020.0002] # HYPHEN WITH DIAERESIS
-2E1B ; [*03A7.0020.0002] # TILDE WITH RING ABOVE
-2E1C ; [*0346.0020.0002] # LEFT LOW PARAPHRASE BRACKET
-2E1D ; [*0347.0020.0002] # RIGHT LOW PARAPHRASE BRACKET
-2E1E ; [*03A8.0020.0002] # TILDE WITH DOT ABOVE
-2E1F ; [*03A9.0020.0002] # TILDE WITH DOT BELOW
-2E20 ; [*0348.0020.0002] # LEFT VERTICAL BAR WITH QUILL
-2E21 ; [*0349.0020.0002] # RIGHT VERTICAL BAR WITH QUILL
-2E22 ; [*034A.0020.0002] # TOP LEFT HALF BRACKET
-2E23 ; [*034B.0020.0002] # TOP RIGHT HALF BRACKET
-2E24 ; [*034C.0020.0002] # BOTTOM LEFT HALF BRACKET
-2E25 ; [*034D.0020.0002] # BOTTOM RIGHT HALF BRACKET
-2E26 ; [*034E.0020.0002] # LEFT SIDEWAYS U BRACKET
-2E27 ; [*034F.0020.0002] # RIGHT SIDEWAYS U BRACKET
-2E28 ; [*0350.0020.0002] # LEFT DOUBLE PARENTHESIS
-2E29 ; [*0351.0020.0002] # RIGHT DOUBLE PARENTHESIS
-2E2A ; [*02D7.0020.0002] # TWO DOTS OVER ONE DOT PUNCTUATION
-2E2B ; [*02D8.0020.0002] # ONE DOT OVER TWO DOTS PUNCTUATION
-2E2C ; [*02D9.0020.0002] # SQUARED FOUR DOT PUNCTUATION
-2E2D ; [*02DA.0020.0002] # FIVE DOT MARK
-2E2E ; [*0264.0020.0002] # REVERSED QUESTION MARK
-2E30 ; [*027E.0020.0002] # RING POINT
-2E31 ; [*0284.0020.0002] # WORD SEPARATOR MIDDLE DOT
-2E32 ; [*0222.0020.0002] # TURNED COMMA
-2E33 ; [*0285.0020.0002] # RAISED DOT
-2E34 ; [*0221.0020.0002] # RAISED COMMA
-2E35 ; [*0234.0020.0002] # TURNED SEMICOLON
-2E36 ; [*0382.0020.0002] # DAGGER WITH LEFT GUARD
-2E37 ; [*0383.0020.0002] # DAGGER WITH RIGHT GUARD
-2E38 ; [*0384.0020.0002] # TURNED DAGGER
-2E39 ; [*036C.0020.0002] # TOP HALF SECTION SIGN
+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
2E3A ; [*0218.0020.0002] # TWO-EM DASH
2E3B ; [*0219.0020.0002] # THREE-EM DASH
-2FF0 ; [*149C.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
-2FF1 ; [*149D.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
-2FF2 ; [*149E.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
-2FF3 ; [*149F.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
-2FF4 ; [*14A0.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
-2FF5 ; [*14A1.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
-2FF6 ; [*14A2.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
-2FF7 ; [*14A3.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
-2FF8 ; [*14A4.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
-2FF9 ; [*14A5.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
-2FFA ; [*14A6.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
-2FFB ; [*14A7.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+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
3000 ; [*0209.0020.0003] # IDEOGRAPHIC SPACE
-3001 ; [*022E.0020.0002] # IDEOGRAPHIC COMMA
-3002 ; [*0282.0020.0002] # IDEOGRAPHIC FULL STOP
-3003 ; [*038D.0020.0002] # DITTO MARK
-3004 ; [*14CC.0020.0002] # JAPANESE INDUSTRIAL STANDARD SYMBOL
-3008 ; [*0352.0020.0002] # LEFT ANGLE BRACKET
-3009 ; [*0353.0020.0002] # RIGHT ANGLE BRACKET
-300A ; [*0354.0020.0002] # LEFT DOUBLE ANGLE BRACKET
-300B ; [*0355.0020.0002] # RIGHT DOUBLE ANGLE BRACKET
-300C ; [*0356.0020.0002] # LEFT CORNER BRACKET
-300D ; [*0357.0020.0002] # RIGHT CORNER BRACKET
-300E ; [*0358.0020.0002] # LEFT WHITE CORNER BRACKET
-300F ; [*0359.0020.0002] # RIGHT WHITE CORNER BRACKET
-3010 ; [*035A.0020.0002] # LEFT BLACK LENTICULAR BRACKET
-3011 ; [*035B.0020.0002] # RIGHT BLACK LENTICULAR BRACKET
-3012 ; [*14CD.0020.0002] # POSTAL MARK
-3013 ; [*14CE.0020.0002] # GETA MARK
-3014 ; [*035C.0020.0002] # LEFT TORTOISE SHELL BRACKET
-3015 ; [*035D.0020.0002] # RIGHT TORTOISE SHELL BRACKET
-3016 ; [*035E.0020.0002] # LEFT WHITE LENTICULAR BRACKET
-3017 ; [*035F.0020.0002] # RIGHT WHITE LENTICULAR BRACKET
-3018 ; [*0360.0020.0002] # LEFT WHITE TORTOISE SHELL BRACKET
-3019 ; [*0361.0020.0002] # RIGHT WHITE TORTOISE SHELL BRACKET
-301A ; [*0362.0020.0002] # LEFT WHITE SQUARE BRACKET
-301B ; [*0363.0020.0002] # RIGHT WHITE SQUARE BRACKET
-301C ; [*021C.0020.0002] # WAVE DASH
-301D ; [*02F5.0020.0002] # REVERSED DOUBLE PRIME QUOTATION MARK
-301E ; [*02F6.0020.0002] # DOUBLE PRIME QUOTATION MARK
-301F ; [*02F7.0020.0002] # LOW DOUBLE PRIME QUOTATION MARK
-3020 ; [*14CF.0020.0002] # POSTAL MARK FACE
-3030 ; [*021D.0020.0002] # WAVY DASH
-3036 ; [*14CD.0020.0004] # CIRCLED POSTAL MARK
-3037 ; [*14D0.0020.0002] # IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
-303D ; [*038E.0020.0002] # PART ALTERNATION MARK
-303E ; [*14D1.0020.0002] # IDEOGRAPHIC VARIATION INDICATOR
-303F ; [*14D2.0020.0002] # IDEOGRAPHIC HALF FILL SPACE
-309B ; [*0421.0020.0002] # KATAKANA-HIRAGANA VOICED SOUND MARK
-309C ; [*0422.0020.0002] # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-30A0 ; [*021E.0020.0002] # KATAKANA-HIRAGANA DOUBLE HYPHEN
-30FB ; [*021F.0020.0002] # KATAKANA MIDDLE DOT
-3190 ; [*14D3.0020.0002] # IDEOGRAPHIC ANNOTATION LINKING MARK
-3191 ; [*14D4.0020.0002] # IDEOGRAPHIC ANNOTATION REVERSE MARK
-31C0 ; [*14A8.0020.0002] # CJK STROKE T
-31C1 ; [*14A9.0020.0002] # CJK STROKE WG
-31C2 ; [*14AA.0020.0002] # CJK STROKE XG
-31C3 ; [*14AB.0020.0002] # CJK STROKE BXG
-31C4 ; [*14AC.0020.0002] # CJK STROKE SW
-31C5 ; [*14AD.0020.0002] # CJK STROKE HZZ
-31C6 ; [*14AE.0020.0002] # CJK STROKE HZG
-31C7 ; [*14AF.0020.0002] # CJK STROKE HP
-31C8 ; [*14B0.0020.0002] # CJK STROKE HZWG
-31C9 ; [*14B1.0020.0002] # CJK STROKE SZWG
-31CA ; [*14B2.0020.0002] # CJK STROKE HZT
-31CB ; [*14B3.0020.0002] # CJK STROKE HZZP
-31CC ; [*14B4.0020.0002] # CJK STROKE HPWG
-31CD ; [*14B5.0020.0002] # CJK STROKE HZW
-31CE ; [*14B6.0020.0002] # CJK STROKE HZZZ
-31CF ; [*14B7.0020.0002] # CJK STROKE N
-31D0 ; [*14B8.0020.0002] # CJK STROKE H
-31D1 ; [*14B9.0020.0002] # CJK STROKE S
-31D2 ; [*14BA.0020.0002] # CJK STROKE P
-31D3 ; [*14BB.0020.0002] # CJK STROKE SP
-31D4 ; [*14BC.0020.0002] # CJK STROKE D
-31D5 ; [*14BD.0020.0002] # CJK STROKE HZ
-31D6 ; [*14BE.0020.0002] # CJK STROKE HG
-31D7 ; [*14BF.0020.0002] # CJK STROKE SZ
-31D8 ; [*14C0.0020.0002] # CJK STROKE SWZ
-31D9 ; [*14C1.0020.0002] # CJK STROKE ST
-31DA ; [*14C2.0020.0002] # CJK STROKE SG
-31DB ; [*14C3.0020.0002] # CJK STROKE PD
-31DC ; [*14C4.0020.0002] # CJK STROKE PZ
-31DD ; [*14C5.0020.0002] # CJK STROKE TN
-31DE ; [*14C6.0020.0002] # CJK STROKE SZZ
-31DF ; [*14C7.0020.0002] # CJK STROKE SWG
-31E0 ; [*14C8.0020.0002] # CJK STROKE HXWG
-31E1 ; [*14C9.0020.0002] # CJK STROKE HZZZG
-31E2 ; [*14CA.0020.0002] # CJK STROKE PG
-31E3 ; [*14CB.0020.0002] # CJK STROKE Q
-327F ; [*14D5.0020.0002] # KOREAN STANDARD SYMBOL
-4DC0 ; [*0DB0.0020.0002] # HEXAGRAM FOR THE CREATIVE HEAVEN
-4DC1 ; [*0DB1.0020.0002] # HEXAGRAM FOR THE RECEPTIVE EARTH
-4DC2 ; [*0DB2.0020.0002] # HEXAGRAM FOR DIFFICULTY AT THE BEGINNING
-4DC3 ; [*0DB3.0020.0002] # HEXAGRAM FOR YOUTHFUL FOLLY
-4DC4 ; [*0DB4.0020.0002] # HEXAGRAM FOR WAITING
-4DC5 ; [*0DB5.0020.0002] # HEXAGRAM FOR CONFLICT
-4DC6 ; [*0DB6.0020.0002] # HEXAGRAM FOR THE ARMY
-4DC7 ; [*0DB7.0020.0002] # HEXAGRAM FOR HOLDING TOGETHER
-4DC8 ; [*0DB8.0020.0002] # HEXAGRAM FOR SMALL TAMING
-4DC9 ; [*0DB9.0020.0002] # HEXAGRAM FOR TREADING
-4DCA ; [*0DBA.0020.0002] # HEXAGRAM FOR PEACE
-4DCB ; [*0DBB.0020.0002] # HEXAGRAM FOR STANDSTILL
-4DCC ; [*0DBC.0020.0002] # HEXAGRAM FOR FELLOWSHIP
-4DCD ; [*0DBD.0020.0002] # HEXAGRAM FOR GREAT POSSESSION
-4DCE ; [*0DBE.0020.0002] # HEXAGRAM FOR MODESTY
-4DCF ; [*0DBF.0020.0002] # HEXAGRAM FOR ENTHUSIASM
-4DD0 ; [*0DC0.0020.0002] # HEXAGRAM FOR FOLLOWING
-4DD1 ; [*0DC1.0020.0002] # HEXAGRAM FOR WORK ON THE DECAYED
-4DD2 ; [*0DC2.0020.0002] # HEXAGRAM FOR APPROACH
-4DD3 ; [*0DC3.0020.0002] # HEXAGRAM FOR CONTEMPLATION
-4DD4 ; [*0DC4.0020.0002] # HEXAGRAM FOR BITING THROUGH
-4DD5 ; [*0DC5.0020.0002] # HEXAGRAM FOR GRACE
-4DD6 ; [*0DC6.0020.0002] # HEXAGRAM FOR SPLITTING APART
-4DD7 ; [*0DC7.0020.0002] # HEXAGRAM FOR RETURN
-4DD8 ; [*0DC8.0020.0002] # HEXAGRAM FOR INNOCENCE
-4DD9 ; [*0DC9.0020.0002] # HEXAGRAM FOR GREAT TAMING
-4DDA ; [*0DCA.0020.0002] # HEXAGRAM FOR MOUTH CORNERS
-4DDB ; [*0DCB.0020.0002] # HEXAGRAM FOR GREAT PREPONDERANCE
-4DDC ; [*0DCC.0020.0002] # HEXAGRAM FOR THE ABYSMAL WATER
-4DDD ; [*0DCD.0020.0002] # HEXAGRAM FOR THE CLINGING FIRE
-4DDE ; [*0DCE.0020.0002] # HEXAGRAM FOR INFLUENCE
-4DDF ; [*0DCF.0020.0002] # HEXAGRAM FOR DURATION
-4DE0 ; [*0DD0.0020.0002] # HEXAGRAM FOR RETREAT
-4DE1 ; [*0DD1.0020.0002] # HEXAGRAM FOR GREAT POWER
-4DE2 ; [*0DD2.0020.0002] # HEXAGRAM FOR PROGRESS
-4DE3 ; [*0DD3.0020.0002] # HEXAGRAM FOR DARKENING OF THE LIGHT
-4DE4 ; [*0DD4.0020.0002] # HEXAGRAM FOR THE FAMILY
-4DE5 ; [*0DD5.0020.0002] # HEXAGRAM FOR OPPOSITION
-4DE6 ; [*0DD6.0020.0002] # HEXAGRAM FOR OBSTRUCTION
-4DE7 ; [*0DD7.0020.0002] # HEXAGRAM FOR DELIVERANCE
-4DE8 ; [*0DD8.0020.0002] # HEXAGRAM FOR DECREASE
-4DE9 ; [*0DD9.0020.0002] # HEXAGRAM FOR INCREASE
-4DEA ; [*0DDA.0020.0002] # HEXAGRAM FOR BREAKTHROUGH
-4DEB ; [*0DDB.0020.0002] # HEXAGRAM FOR COMING TO MEET
-4DEC ; [*0DDC.0020.0002] # HEXAGRAM FOR GATHERING TOGETHER
-4DED ; [*0DDD.0020.0002] # HEXAGRAM FOR PUSHING UPWARD
-4DEE ; [*0DDE.0020.0002] # HEXAGRAM FOR OPPRESSION
-4DEF ; [*0DDF.0020.0002] # HEXAGRAM FOR THE WELL
-4DF0 ; [*0DE0.0020.0002] # HEXAGRAM FOR REVOLUTION
-4DF1 ; [*0DE1.0020.0002] # HEXAGRAM FOR THE CAULDRON
-4DF2 ; [*0DE2.0020.0002] # HEXAGRAM FOR THE AROUSING THUNDER
-4DF3 ; [*0DE3.0020.0002] # HEXAGRAM FOR THE KEEPING STILL MOUNTAIN
-4DF4 ; [*0DE4.0020.0002] # HEXAGRAM FOR DEVELOPMENT
-4DF5 ; [*0DE5.0020.0002] # HEXAGRAM FOR THE MARRYING MAIDEN
-4DF6 ; [*0DE6.0020.0002] # HEXAGRAM FOR ABUNDANCE
-4DF7 ; [*0DE7.0020.0002] # HEXAGRAM FOR THE WANDERER
-4DF8 ; [*0DE8.0020.0002] # HEXAGRAM FOR THE GENTLE WIND
-4DF9 ; [*0DE9.0020.0002] # HEXAGRAM FOR THE JOYOUS LAKE
-4DFA ; [*0DEA.0020.0002] # HEXAGRAM FOR DISPERSION
-4DFB ; [*0DEB.0020.0002] # HEXAGRAM FOR LIMITATION
-4DFC ; [*0DEC.0020.0002] # HEXAGRAM FOR INNER TRUTH
-4DFD ; [*0DED.0020.0002] # HEXAGRAM FOR SMALL PREPONDERANCE
-4DFE ; [*0DEE.0020.0002] # HEXAGRAM FOR AFTER COMPLETION
-4DFF ; [*0DEF.0020.0002] # HEXAGRAM FOR BEFORE COMPLETION
-A490 ; [*0E47.0020.0002] # YI RADICAL QOT
-A491 ; [*0E48.0020.0002] # YI RADICAL LI
-A492 ; [*0E49.0020.0002] # YI RADICAL KIT
-A493 ; [*0E4A.0020.0002] # YI RADICAL NYIP
-A494 ; [*0E4B.0020.0002] # YI RADICAL CYP
-A495 ; [*0E4C.0020.0002] # YI RADICAL SSI
-A496 ; [*0E4D.0020.0002] # YI RADICAL GGOP
-A497 ; [*0E4E.0020.0002] # YI RADICAL GEP
-A498 ; [*0E4F.0020.0002] # YI RADICAL MI
-A499 ; [*0E50.0020.0002] # YI RADICAL HXIT
-A49A ; [*0E51.0020.0002] # YI RADICAL LYR
-A49B ; [*0E52.0020.0002] # YI RADICAL BBUT
-A49C ; [*0E53.0020.0002] # YI RADICAL MOP
-A49D ; [*0E54.0020.0002] # YI RADICAL YO
-A49E ; [*0E55.0020.0002] # YI RADICAL PUT
-A49F ; [*0E56.0020.0002] # YI RADICAL HXUO
-A4A0 ; [*0E57.0020.0002] # YI RADICAL TAT
-A4A1 ; [*0E58.0020.0002] # YI RADICAL GA
-A4A2 ; [*0E59.0020.0002] # YI RADICAL ZUP
-A4A3 ; [*0E5A.0020.0002] # YI RADICAL CYT
-A4A4 ; [*0E5B.0020.0002] # YI RADICAL DDUR
-A4A5 ; [*0E5C.0020.0002] # YI RADICAL BUR
-A4A6 ; [*0E5D.0020.0002] # YI RADICAL GGUO
-A4A7 ; [*0E5E.0020.0002] # YI RADICAL NYOP
-A4A8 ; [*0E5F.0020.0002] # YI RADICAL TU
-A4A9 ; [*0E60.0020.0002] # YI RADICAL OP
-A4AA ; [*0E61.0020.0002] # YI RADICAL JJUT
-A4AB ; [*0E62.0020.0002] # YI RADICAL ZOT
-A4AC ; [*0E63.0020.0002] # YI RADICAL PYT
-A4AD ; [*0E64.0020.0002] # YI RADICAL HMO
-A4AE ; [*0E65.0020.0002] # YI RADICAL YIT
-A4AF ; [*0E66.0020.0002] # YI RADICAL VUR
-A4B0 ; [*0E67.0020.0002] # YI RADICAL SHY
-A4B1 ; [*0E68.0020.0002] # YI RADICAL VEP
-A4B2 ; [*0E69.0020.0002] # YI RADICAL ZA
-A4B3 ; [*0E6A.0020.0002] # YI RADICAL JO
-A4B4 ; [*0E6B.0020.0002] # YI RADICAL NZUP
-A4B5 ; [*0E6C.0020.0002] # YI RADICAL JJY
-A4B6 ; [*0E6D.0020.0002] # YI RADICAL GOT
-A4B7 ; [*0E6E.0020.0002] # YI RADICAL JJIE
-A4B8 ; [*0E6F.0020.0002] # YI RADICAL WO
-A4B9 ; [*0E70.0020.0002] # YI RADICAL DU
-A4BA ; [*0E71.0020.0002] # YI RADICAL SHUR
-A4BB ; [*0E72.0020.0002] # YI RADICAL LIE
-A4BC ; [*0E73.0020.0002] # YI RADICAL CY
-A4BD ; [*0E74.0020.0002] # YI RADICAL CUOP
-A4BE ; [*0E75.0020.0002] # YI RADICAL CIP
-A4BF ; [*0E76.0020.0002] # YI RADICAL HXOP
-A4C0 ; [*0E77.0020.0002] # YI RADICAL SHAT
-A4C1 ; [*0E78.0020.0002] # YI RADICAL ZUR
-A4C2 ; [*0E79.0020.0002] # YI RADICAL SHOP
-A4C3 ; [*0E7A.0020.0002] # YI RADICAL CHE
-A4C4 ; [*0E7B.0020.0002] # YI RADICAL ZZIET
-A4C5 ; [*0E7C.0020.0002] # YI RADICAL NBIE
-A4C6 ; [*0E7D.0020.0002] # YI RADICAL KE
-A4FE ; [*022B.0020.0002] # LISU PUNCTUATION COMMA
-A4FF ; [*027F.0020.0002] # LISU PUNCTUATION FULL STOP
-A60D ; [*022C.0020.0002] # VAI COMMA
-A60E ; [*0280.0020.0002] # VAI FULL STOP
-A60F ; [*026C.0020.0002] # VAI QUESTION MARK
+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
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 ; [*0374.0020.0002] # SLAVONIC ASTERISK
-A67E ; [*03AA.0020.0002] # CYRILLIC KAVYKA
-A6F2 ; [*02C1.0020.0002] # BAMUM NJAEMLI
-A6F3 ; [*0281.0020.0002] # BAMUM FULL STOP
-A6F4 ; [*025C.0020.0002] # BAMUM COLON
-A6F5 ; [*022D.0020.0002] # BAMUM COMMA
-A6F6 ; [*0235.0020.0002] # BAMUM SEMICOLON
-A6F7 ; [*026D.0020.0002] # BAMUM QUESTION MARK
-A700 ; [*0460.0020.0002] # MODIFIER LETTER CHINESE TONE YIN PING
-A701 ; [*0461.0020.0002] # MODIFIER LETTER CHINESE TONE YANG PING
-A702 ; [*0462.0020.0002] # MODIFIER LETTER CHINESE TONE YIN SHANG
-A703 ; [*0463.0020.0002] # MODIFIER LETTER CHINESE TONE YANG SHANG
-A704 ; [*0464.0020.0002] # MODIFIER LETTER CHINESE TONE YIN QU
-A705 ; [*0465.0020.0002] # MODIFIER LETTER CHINESE TONE YANG QU
-A706 ; [*0466.0020.0002] # MODIFIER LETTER CHINESE TONE YIN RU
-A707 ; [*0467.0020.0002] # MODIFIER LETTER CHINESE TONE YANG RU
-A708 ; [*0468.0020.0002] # MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR
-A709 ; [*0469.0020.0002] # MODIFIER LETTER HIGH DOTTED TONE BAR
-A70A ; [*046A.0020.0002] # MODIFIER LETTER MID DOTTED TONE BAR
-A70B ; [*046B.0020.0002] # MODIFIER LETTER LOW DOTTED TONE BAR
-A70C ; [*046C.0020.0002] # MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR
-A70D ; [*046D.0020.0002] # MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR
-A70E ; [*046E.0020.0002] # MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR
-A70F ; [*046F.0020.0002] # MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR
-A710 ; [*0470.0020.0002] # MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR
-A711 ; [*0471.0020.0002] # MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR
-A712 ; [*0472.0020.0002] # MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR
-A713 ; [*0473.0020.0002] # MODIFIER LETTER HIGH LEFT-STEM TONE BAR
-A714 ; [*0474.0020.0002] # MODIFIER LETTER MID LEFT-STEM TONE BAR
-A715 ; [*0475.0020.0002] # MODIFIER LETTER LOW LEFT-STEM TONE BAR
-A716 ; [*0476.0020.0002] # MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
-A717 ; [*0477.0020.0002] # MODIFIER LETTER DOT VERTICAL BAR
-A718 ; [*0478.0020.0002] # MODIFIER LETTER DOT SLASH
-A719 ; [*0479.0020.0002] # MODIFIER LETTER DOT HORIZONTAL BAR
-A71A ; [*047A.0020.0002] # MODIFIER LETTER LOWER RIGHT CORNER ANGLE
-A71B ; [*047B.0020.0002] # MODIFIER LETTER RAISED UP ARROW
-A71C ; [*047C.0020.0002] # MODIFIER LETTER RAISED DOWN ARROW
-A71D ; [*047D.0020.0002] # MODIFIER LETTER RAISED EXCLAMATION MARK
-A71E ; [*047E.0020.0002] # MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK
-A71F ; [*047F.0020.0002] # MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
-A720 ; [*0480.0020.0002] # MODIFIER LETTER STRESS AND HIGH TONE
-A721 ; [*0481.0020.0002] # MODIFIER LETTER STRESS AND LOW TONE
-A788 ; [*0482.0020.0002] # MODIFIER LETTER LOW CIRCUMFLEX ACCENT
-A789 ; [*0483.0020.0002] # MODIFIER LETTER COLON
-A78A ; [*0484.0020.0002] # MODIFIER LETTER SHORT EQUALS SIGN
-A828 ; [*04AB.0020.0002] # SYLOTI NAGRI POETRY MARK-1
-A829 ; [*04AC.0020.0002] # SYLOTI NAGRI POETRY MARK-2
-A82A ; [*04AD.0020.0002] # SYLOTI NAGRI POETRY MARK-3
-A82B ; [*04AE.0020.0002] # SYLOTI NAGRI POETRY MARK-4
-A830 ; [*14E3.0020.0002] # NORTH INDIC FRACTION ONE QUARTER
-A831 ; [*14E4.0020.0002] # NORTH INDIC FRACTION ONE HALF
-A832 ; [*14E5.0020.0002] # NORTH INDIC FRACTION THREE QUARTERS
-A833 ; [*14E6.0020.0002] # NORTH INDIC FRACTION ONE SIXTEENTH
-A834 ; [*14E7.0020.0002] # NORTH INDIC FRACTION ONE EIGHTH
-A835 ; [*14E8.0020.0002] # NORTH INDIC FRACTION THREE SIXTEENTHS
-A836 ; [*04AF.0020.0002] # NORTH INDIC QUARTER MARK
-A837 ; [*04B0.0020.0002] # NORTH INDIC PLACEHOLDER MARK
-A839 ; [*04B1.0020.0002] # NORTH INDIC QUANTITY MARK
-A874 ; [*03F8.0020.0002] # PHAGS-PA SINGLE HEAD MARK
-A875 ; [*03F9.0020.0002] # PHAGS-PA DOUBLE HEAD MARK
-A876 ; [*028C.0020.0002] # PHAGS-PA MARK SHAD
-A877 ; [*028D.0020.0002] # PHAGS-PA MARK DOUBLE SHAD
-A8CE ; [*0288.0020.0002] # SAURASHTRA DANDA
-A8CF ; [*0289.0020.0002] # SAURASHTRA DOUBLE DANDA
+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
A8E0 ; [.0000.0000.0000] # COMBINING DEVANAGARI DIGIT ZERO
A8E1 ; [.0000.0000.0000] # COMBINING DEVANAGARI DIGIT ONE
A8E2 ; [.0000.0000.0000] # COMBINING DEVANAGARI DIGIT TWO
@@ -3836,99 +3975,105 @@ 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 ; [*03BB.0020.0002] # DEVANAGARI SIGN PUSHPIKA
-A8F9 ; [*03BC.0020.0002] # DEVANAGARI GAP FILLER
-A8FA ; [*03BD.0020.0002] # DEVANAGARI CARET
-A92E ; [*03FE.0020.0002] # KAYAH LI SIGN CWI
-A92F ; [*0290.0020.0002] # KAYAH LI SIGN SHYA
-A95F ; [*02C2.0020.0002] # REJANG SECTION MARK
-A9C1 ; [*02B7.0020.0002] # JAVANESE LEFT RERENGGAN
-A9C2 ; [*02B8.0020.0002] # JAVANESE RIGHT RERENGGAN
-A9C3 ; [*02B9.0020.0002] # JAVANESE PADA ANDAP
-A9C4 ; [*02BA.0020.0002] # JAVANESE PADA MADYA
-A9C5 ; [*02BB.0020.0002] # JAVANESE PADA LUHUR
-A9C6 ; [*02BC.0020.0002] # JAVANESE PADA WINDU
-A9C7 ; [*0258.0020.0002] # JAVANESE PADA PANGKAT
-A9C8 ; [*029B.0020.0002] # JAVANESE PADA LINGSA
-A9C9 ; [*029C.0020.0002] # JAVANESE PADA LUNGSI
-A9CA ; [*02BD.0020.0002] # JAVANESE PADA ADEG
-A9CB ; [*02BE.0020.0002] # JAVANESE PADA ADEG ADEG
-A9CC ; [*02BF.0020.0002] # JAVANESE PADA PISELEH
-A9CD ; [*02C0.0020.0002] # JAVANESE TURNED PADA PISELEH
-A9DE ; [*03FF.0020.0002] # JAVANESE PADA TIRTA TUMETES
-A9DF ; [*0400.0020.0002] # JAVANESE PADA ISEN-ISEN
-AA5C ; [*0401.0020.0002] # CHAM PUNCTUATION SPIRAL
-AA5D ; [*029D.0020.0002] # CHAM PUNCTUATION DANDA
-AA5E ; [*029E.0020.0002] # CHAM PUNCTUATION DOUBLE DANDA
-AA5F ; [*029F.0020.0002] # CHAM PUNCTUATION TRIPLE DANDA
-AA77 ; [*04D9.0020.0002] # MYANMAR SYMBOL AITON EXCLAMATION
-AA78 ; [*04DA.0020.0002] # MYANMAR SYMBOL AITON ONE
-AA79 ; [*04DB.0020.0002] # MYANMAR SYMBOL AITON TWO
-AADE ; [*03C3.0020.0002] # TAI VIET SYMBOL HO HOI
-AADF ; [*03C4.0020.0002] # TAI VIET SYMBOL KOI KOI
-AAF0 ; [*02A0.0020.0002] # MEETEI MAYEK CHEIKHAN
-AAF1 ; [*026E.0020.0002] # MEETEI MAYEK AHANG KHUDAM
-ABEB ; [*02A1.0020.0002] # MEETEI MAYEK CHEIKHEI
-FB29 ; [*059F.0020.0005] # HEBREW LETTER ALTERNATIVE PLUS SIGN
-FBB2 ; [*048F.0020.0002] # ARABIC SYMBOL DOT ABOVE
-FBB3 ; [*0490.0020.0002] # ARABIC SYMBOL DOT BELOW
-FBB4 ; [*0491.0020.0002] # ARABIC SYMBOL TWO DOTS ABOVE
-FBB5 ; [*0492.0020.0002] # ARABIC SYMBOL TWO DOTS BELOW
-FBB6 ; [*0493.0020.0002] # ARABIC SYMBOL THREE DOTS ABOVE
-FBB7 ; [*0494.0020.0002] # ARABIC SYMBOL THREE DOTS BELOW
-FBB8 ; [*0495.0020.0002] # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE
-FBB9 ; [*0496.0020.0002] # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW
-FBBA ; [*0497.0020.0002] # ARABIC SYMBOL FOUR DOTS ABOVE
-FBBB ; [*0498.0020.0002] # ARABIC SYMBOL FOUR DOTS BELOW
-FBBC ; [*0499.0020.0002] # ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW
-FBBD ; [*049A.0020.0002] # ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE
-FBBE ; [*049B.0020.0002] # ARABIC SYMBOL TWO DOTS VERTICALLY BELOW
-FBBF ; [*049C.0020.0002] # ARABIC SYMBOL RING
-FBC0 ; [*049D.0020.0002] # ARABIC SYMBOL SMALL TAH ABOVE
-FBC1 ; [*049E.0020.0002] # ARABIC SYMBOL SMALL TAH BELOW
-FD3E ; [*0364.0020.0002] # ORNATE LEFT PARENTHESIS
-FD3F ; [*0365.0020.0002] # ORNATE RIGHT PARENTHESIS
-FDFD ; [*048E.0020.0002] # ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
-FE10 ; [*0220.0020.0016] # PRESENTATION FORM FOR VERTICAL COMMA
-FE11 ; [*022E.0020.0016] # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
-FE12 ; [*0282.0020.0016] # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
-FE13 ; [*0236.0020.0016] # PRESENTATION FORM FOR VERTICAL COLON
-FE14 ; [*0231.0020.0016] # PRESENTATION FORM FOR VERTICAL SEMICOLON
-FE15 ; [*025D.0020.0016] # PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
-FE16 ; [*0262.0020.0016] # PRESENTATION FORM FOR VERTICAL QUESTION MARK
-FE17 ; [*035E.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
-FE18 ; [*035F.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
-FE19 ; [*0272.0020.0016][*0272.0020.0016][*0272.0020.0016] # PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+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
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
FE25 ; [.0000.0000.0000] # COMBINING MACRON RIGHT HALF
FE26 ; [.0000.0000.0000] # COMBINING CONJOINING MACRON
-FE30 ; [*0272.0020.0016][*0272.0020.0016] # PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE28 ; [.0000.0000.0000] # COMBINING LIGATURE RIGHT HALF BELOW
+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
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 ; [*02FA.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
-FE36 ; [*02FB.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
-FE37 ; [*02FE.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
-FE38 ; [*02FF.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
-FE39 ; [*035C.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
-FE3A ; [*035D.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
-FE3B ; [*035A.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
-FE3C ; [*035B.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
-FE3D ; [*0354.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
-FE3E ; [*0355.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
-FE3F ; [*0352.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
-FE40 ; [*0353.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
-FE41 ; [*0356.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
-FE42 ; [*0357.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
-FE43 ; [*0358.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
-FE44 ; [*0359.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
-FE45 ; [*022F.0020.0002] # SESAME DOT
-FE46 ; [*0230.0020.0002] # WHITE SESAME DOT
-FE47 ; [*02FC.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
-FE48 ; [*02FD.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+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
FE49 ; [*020A.0020.0004] # DASHED OVERLINE
FE4A ; [*020A.0020.0004] # CENTRELINE OVERLINE
FE4B ; [*020A.0020.0004] # WAVY OVERLINE
@@ -3936,718 +4081,851 @@ 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 ; [*0220.0020.000F] # SMALL COMMA
-FE51 ; [*022E.0020.000F] # SMALL IDEOGRAPHIC COMMA
-FE52 ; [*0272.0020.000F] # SMALL FULL STOP
-FE54 ; [*0231.0020.000F] # SMALL SEMICOLON
-FE55 ; [*0236.0020.000F] # SMALL COLON
-FE56 ; [*0262.0020.000F] # SMALL QUESTION MARK
-FE57 ; [*025D.0020.000F] # SMALL EXCLAMATION MARK
+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
FE58 ; [*0216.0020.000F] # SMALL EM DASH
-FE59 ; [*02FA.0020.000F] # SMALL LEFT PARENTHESIS
-FE5A ; [*02FB.0020.000F] # SMALL RIGHT PARENTHESIS
-FE5B ; [*02FE.0020.000F] # SMALL LEFT CURLY BRACKET
-FE5C ; [*02FF.0020.000F] # SMALL RIGHT CURLY BRACKET
-FE5D ; [*035C.0020.000F] # SMALL LEFT TORTOISE SHELL BRACKET
-FE5E ; [*035D.0020.000F] # SMALL RIGHT TORTOISE SHELL BRACKET
-FE5F ; [*0379.0020.000F] # SMALL NUMBER SIGN
-FE60 ; [*0377.0020.000F] # SMALL AMPERSAND
-FE61 ; [*0370.0020.000F] # SMALL ASTERISK
-FE62 ; [*059F.0020.000F] # SMALL PLUS SIGN
+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
FE63 ; [*020D.0020.000F] # SMALL HYPHEN-MINUS
-FE64 ; [*05A3.0020.000F] # SMALL LESS-THAN SIGN
-FE65 ; [*05A5.0020.000F] # SMALL GREATER-THAN SIGN
-FE66 ; [*05A4.0020.000F] # SMALL EQUALS SIGN
-FE68 ; [*0376.0020.000F] # SMALL REVERSE SOLIDUS
-FE6A ; [*037A.0020.000F] # SMALL PERCENT SIGN
-FE6B ; [*036F.0020.000F] # SMALL COMMERCIAL AT
+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
FE73 ; [.0000.0000.0000] # ARABIC TAIL FRAGMENT
-FF01 ; [*025D.0020.0003] # FULLWIDTH EXCLAMATION MARK
-FF02 ; [*02F0.0020.0003] # FULLWIDTH QUOTATION MARK
-FF03 ; [*0379.0020.0003] # FULLWIDTH NUMBER SIGN
-FF05 ; [*037A.0020.0003] # FULLWIDTH PERCENT SIGN
-FF06 ; [*0377.0020.0003] # FULLWIDTH AMPERSAND
-FF07 ; [*02E9.0020.0003] # FULLWIDTH APOSTROPHE
-FF08 ; [*02FA.0020.0003] # FULLWIDTH LEFT PARENTHESIS
-FF09 ; [*02FB.0020.0003] # FULLWIDTH RIGHT PARENTHESIS
-FF0A ; [*0370.0020.0003] # FULLWIDTH ASTERISK
-FF0B ; [*059F.0020.0003] # FULLWIDTH PLUS SIGN
-FF0C ; [*0220.0020.0003] # FULLWIDTH COMMA
+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
FF0D ; [*020D.0020.0003] # FULLWIDTH HYPHEN-MINUS
-FF0E ; [*0272.0020.0003] # FULLWIDTH FULL STOP
-FF0F ; [*0375.0020.0003] # FULLWIDTH SOLIDUS
-FF1A ; [*0236.0020.0003] # FULLWIDTH COLON
-FF1B ; [*0231.0020.0003] # FULLWIDTH SEMICOLON
-FF1C ; [*05A3.0020.0003] # FULLWIDTH LESS-THAN SIGN
-FF1D ; [*05A4.0020.0003] # FULLWIDTH EQUALS SIGN
-FF1E ; [*05A5.0020.0003] # FULLWIDTH GREATER-THAN SIGN
-FF1F ; [*0262.0020.0003] # FULLWIDTH QUESTION MARK
-FF20 ; [*036F.0020.0003] # FULLWIDTH COMMERCIAL AT
-FF3B ; [*02FC.0020.0003] # FULLWIDTH LEFT SQUARE BRACKET
-FF3C ; [*0376.0020.0003] # FULLWIDTH REVERSE SOLIDUS
-FF3D ; [*02FD.0020.0003] # FULLWIDTH RIGHT SQUARE BRACKET
-FF3E ; [*0415.0020.0003] # FULLWIDTH CIRCUMFLEX ACCENT
+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
FF3F ; [*020B.0020.0003] # FULLWIDTH LOW LINE
-FF40 ; [*0412.0020.0003] # FULLWIDTH GRAVE ACCENT
-FF5B ; [*02FE.0020.0003] # FULLWIDTH LEFT CURLY BRACKET
-FF5C ; [*05A7.0020.0003] # FULLWIDTH VERTICAL LINE
-FF5D ; [*02FF.0020.0003] # FULLWIDTH RIGHT CURLY BRACKET
-FF5E ; [*05A9.0020.0003] # FULLWIDTH TILDE
-FF5F ; [*0310.0020.0003] # FULLWIDTH LEFT WHITE PARENTHESIS
-FF60 ; [*0311.0020.0003] # FULLWIDTH RIGHT WHITE PARENTHESIS
-FF61 ; [*0282.0020.0012] # HALFWIDTH IDEOGRAPHIC FULL STOP
-FF62 ; [*0356.0020.0012] # HALFWIDTH LEFT CORNER BRACKET
-FF63 ; [*0357.0020.0012] # HALFWIDTH RIGHT CORNER BRACKET
-FF64 ; [*022E.0020.0012] # HALFWIDTH IDEOGRAPHIC COMMA
-FF65 ; [*021F.0020.0012] # HALFWIDTH KATAKANA MIDDLE DOT
-FFE2 ; [*05A6.0020.0003] # FULLWIDTH NOT SIGN
-FFE3 ; [*0416.0020.0003] # FULLWIDTH MACRON
-FFE4 ; [*05A8.0020.0003] # FULLWIDTH BROKEN BAR
-FFE8 ; [*0798.0020.0012] # HALFWIDTH FORMS LIGHT VERTICAL
-FFE9 ; [*0525.0020.0012] # HALFWIDTH LEFTWARDS ARROW
-FFEA ; [*0527.0020.0012] # HALFWIDTH UPWARDS ARROW
-FFEB ; [*0526.0020.0012] # HALFWIDTH RIGHTWARDS ARROW
-FFEC ; [*0528.0020.0012] # HALFWIDTH DOWNWARDS ARROW
-FFED ; [*0836.0020.0012] # HALFWIDTH BLACK SQUARE
-FFEE ; [*0861.0020.0012] # HALFWIDTH WHITE CIRCLE
-FFFC ; [*14D6.0020.0002] # OBJECT REPLACEMENT CHARACTER
-10100 ; [*02DF.0020.0002] # AEGEAN WORD SEPARATOR LINE
-10101 ; [*02E0.0020.0002] # AEGEAN WORD SEPARATOR DOT
-10102 ; [*02E1.0020.0002] # AEGEAN CHECK MARK
-10110 ; [*151C.0020.0002] # AEGEAN NUMBER TEN
-10111 ; [*151D.0020.0002] # AEGEAN NUMBER TWENTY
-10112 ; [*151E.0020.0002] # AEGEAN NUMBER THIRTY
-10113 ; [*151F.0020.0002] # AEGEAN NUMBER FORTY
-10114 ; [*1520.0020.0002] # AEGEAN NUMBER FIFTY
-10115 ; [*1521.0020.0002] # AEGEAN NUMBER SIXTY
-10116 ; [*1522.0020.0002] # AEGEAN NUMBER SEVENTY
-10117 ; [*1523.0020.0002] # AEGEAN NUMBER EIGHTY
-10118 ; [*1524.0020.0002] # AEGEAN NUMBER NINETY
-10119 ; [*1525.0020.0002] # AEGEAN NUMBER ONE HUNDRED
-1011A ; [*1526.0020.0002] # AEGEAN NUMBER TWO HUNDRED
-1011B ; [*1527.0020.0002] # AEGEAN NUMBER THREE HUNDRED
-1011C ; [*1528.0020.0002] # AEGEAN NUMBER FOUR HUNDRED
-1011D ; [*1529.0020.0002] # AEGEAN NUMBER FIVE HUNDRED
-1011E ; [*152A.0020.0002] # AEGEAN NUMBER SIX HUNDRED
-1011F ; [*152B.0020.0002] # AEGEAN NUMBER SEVEN HUNDRED
-10120 ; [*152C.0020.0002] # AEGEAN NUMBER EIGHT HUNDRED
-10121 ; [*152D.0020.0002] # AEGEAN NUMBER NINE HUNDRED
-10122 ; [*152E.0020.0002] # AEGEAN NUMBER ONE THOUSAND
-10123 ; [*152F.0020.0002] # AEGEAN NUMBER TWO THOUSAND
-10124 ; [*1530.0020.0002] # AEGEAN NUMBER THREE THOUSAND
-10125 ; [*1531.0020.0002] # AEGEAN NUMBER FOUR THOUSAND
-10126 ; [*1532.0020.0002] # AEGEAN NUMBER FIVE THOUSAND
-10127 ; [*1533.0020.0002] # AEGEAN NUMBER SIX THOUSAND
-10128 ; [*1534.0020.0002] # AEGEAN NUMBER SEVEN THOUSAND
-10129 ; [*1535.0020.0002] # AEGEAN NUMBER EIGHT THOUSAND
-1012A ; [*1536.0020.0002] # AEGEAN NUMBER NINE THOUSAND
-1012B ; [*1537.0020.0002] # AEGEAN NUMBER TEN THOUSAND
-1012C ; [*1538.0020.0002] # AEGEAN NUMBER TWENTY THOUSAND
-1012D ; [*1539.0020.0002] # AEGEAN NUMBER THIRTY THOUSAND
-1012E ; [*153A.0020.0002] # AEGEAN NUMBER FORTY THOUSAND
-1012F ; [*153B.0020.0002] # AEGEAN NUMBER FIFTY THOUSAND
-10130 ; [*153C.0020.0002] # AEGEAN NUMBER SIXTY THOUSAND
-10131 ; [*153D.0020.0002] # AEGEAN NUMBER SEVENTY THOUSAND
-10132 ; [*153E.0020.0002] # AEGEAN NUMBER EIGHTY THOUSAND
-10133 ; [*153F.0020.0002] # AEGEAN NUMBER NINETY THOUSAND
-10137 ; [*0E7E.0020.0002] # AEGEAN WEIGHT BASE UNIT
-10138 ; [*0E7F.0020.0002] # AEGEAN WEIGHT FIRST SUBUNIT
-10139 ; [*0E80.0020.0002] # AEGEAN WEIGHT SECOND SUBUNIT
-1013A ; [*0E81.0020.0002] # AEGEAN WEIGHT THIRD SUBUNIT
-1013B ; [*0E82.0020.0002] # AEGEAN WEIGHT FOURTH SUBUNIT
-1013C ; [*0E83.0020.0002] # AEGEAN DRY MEASURE FIRST SUBUNIT
-1013D ; [*0E84.0020.0002] # AEGEAN LIQUID MEASURE FIRST SUBUNIT
-1013E ; [*0E85.0020.0002] # AEGEAN MEASURE SECOND SUBUNIT
-1013F ; [*0E86.0020.0002] # AEGEAN MEASURE THIRD SUBUNIT
-10140 ; [*1540.0020.0002] # GREEK ACROPHONIC ATTIC ONE QUARTER
-10141 ; [*1541.0020.0002] # GREEK ACROPHONIC ATTIC ONE HALF
-10144 ; [*1542.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY
-10145 ; [*1543.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED
-10146 ; [*1544.0020.0002] # GREEK ACROPHONIC ATTIC FIVE THOUSAND
-10147 ; [*1545.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY THOUSAND
-10149 ; [*1546.0020.0002] # GREEK ACROPHONIC ATTIC TEN TALENTS
-1014A ; [*1547.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY TALENTS
-1014B ; [*1548.0020.0002] # GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS
-1014C ; [*1549.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS
-1014D ; [*154A.0020.0002] # GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS
-1014E ; [*154B.0020.0002] # GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS
-10150 ; [*154C.0020.0002] # GREEK ACROPHONIC ATTIC TEN STATERS
-10151 ; [*154D.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY STATERS
-10152 ; [*154E.0020.0002] # GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS
-10153 ; [*154F.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS
-10154 ; [*1550.0020.0002] # GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS
-10155 ; [*1551.0020.0002] # GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS
-10156 ; [*1552.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS
-10157 ; [*1553.0020.0002] # GREEK ACROPHONIC ATTIC TEN MNAS
-10160 ; [*1554.0020.0002] # GREEK ACROPHONIC TROEZENIAN TEN
-10161 ; [*1555.0020.0002] # GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM
-10162 ; [*1556.0020.0002] # GREEK ACROPHONIC HERMIONIAN TEN
-10163 ; [*1557.0020.0002] # GREEK ACROPHONIC MESSENIAN TEN
-10164 ; [*1558.0020.0002] # GREEK ACROPHONIC THESPIAN TEN
-10165 ; [*1559.0020.0002] # GREEK ACROPHONIC THESPIAN THIRTY
-10166 ; [*155A.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIFTY
-10167 ; [*155B.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM
-10168 ; [*155C.0020.0002] # GREEK ACROPHONIC HERMIONIAN FIFTY
-10169 ; [*155D.0020.0002] # GREEK ACROPHONIC THESPIAN FIFTY
-1016A ; [*155E.0020.0002] # GREEK ACROPHONIC THESPIAN ONE HUNDRED
-1016B ; [*155F.0020.0002] # GREEK ACROPHONIC THESPIAN THREE HUNDRED
-1016C ; [*1560.0020.0002] # GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED
-1016D ; [*1561.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED
-1016E ; [*1562.0020.0002] # GREEK ACROPHONIC THESPIAN FIVE HUNDRED
-1016F ; [*1563.0020.0002] # GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED
-10170 ; [*1564.0020.0002] # GREEK ACROPHONIC NAXIAN FIVE HUNDRED
-10171 ; [*1565.0020.0002] # GREEK ACROPHONIC THESPIAN ONE THOUSAND
-10172 ; [*1566.0020.0002] # GREEK ACROPHONIC THESPIAN FIVE THOUSAND
-10174 ; [*1567.0020.0002] # GREEK ACROPHONIC STRATIAN FIFTY MNAS
-10175 ; [*1568.0020.0002] # GREEK ONE HALF SIGN
-10176 ; [*1569.0020.0002] # GREEK ONE HALF SIGN ALTERNATE FORM
-10177 ; [*156A.0020.0002] # GREEK TWO THIRDS SIGN
-10178 ; [*156B.0020.0002] # GREEK THREE QUARTERS SIGN
-10179 ; [*0E87.0020.0002] # GREEK YEAR SIGN
-1017A ; [*0E88.0020.0002] # GREEK TALENT SIGN
-1017B ; [*0E89.0020.0002] # GREEK DRACHMA SIGN
-1017C ; [*0E8A.0020.0002] # GREEK OBOL SIGN
-1017D ; [*0E8B.0020.0002] # GREEK TWO OBOLS SIGN
-1017E ; [*0E8C.0020.0002] # GREEK THREE OBOLS SIGN
-1017F ; [*0E8D.0020.0002] # GREEK FOUR OBOLS SIGN
-10180 ; [*0E8E.0020.0002] # GREEK FIVE OBOLS SIGN
-10181 ; [*0E8F.0020.0002] # GREEK METRETES SIGN
-10182 ; [*0E90.0020.0002] # GREEK KYATHOS BASE SIGN
-10183 ; [*0E91.0020.0002] # GREEK LITRA SIGN
-10184 ; [*0E92.0020.0002] # GREEK OUNKIA SIGN
-10185 ; [*0E93.0020.0002] # GREEK XESTES SIGN
-10186 ; [*0E94.0020.0002] # GREEK ARTABE SIGN
-10187 ; [*0E95.0020.0002] # GREEK AROURA SIGN
-10188 ; [*0E96.0020.0002] # GREEK GRAMMA SIGN
-10189 ; [*0E97.0020.0002] # GREEK TRYBLION BASE SIGN
-10190 ; [*0E98.0020.0002] # ROMAN SEXTANS SIGN
-10191 ; [*0E99.0020.0002] # ROMAN UNCIA SIGN
-10192 ; [*0E9A.0020.0002] # ROMAN SEMUNCIA SIGN
-10193 ; [*0E9B.0020.0002] # ROMAN SEXTULA SIGN
-10194 ; [*0E9C.0020.0002] # ROMAN DIMIDIA SEXTULA SIGN
-10195 ; [*0E9D.0020.0002] # ROMAN SILIQUA SIGN
-10196 ; [*0E9E.0020.0002] # ROMAN DENARIUS SIGN
-10197 ; [*0E9F.0020.0002] # ROMAN QUINARIUS SIGN
-10198 ; [*0EA0.0020.0002] # ROMAN SESTERTIUS SIGN
-10199 ; [*0EA1.0020.0002] # ROMAN DUPONDIUS SIGN
-1019A ; [*0EA2.0020.0002] # ROMAN AS SIGN
-1019B ; [*0EA3.0020.0002] # ROMAN CENTURIAL SIGN
-101D0 ; [*0EA4.0020.0002] # PHAISTOS DISC SIGN PEDESTRIAN
-101D1 ; [*0EA5.0020.0002] # PHAISTOS DISC SIGN PLUMED HEAD
-101D2 ; [*0EA6.0020.0002] # PHAISTOS DISC SIGN TATTOOED HEAD
-101D3 ; [*0EA7.0020.0002] # PHAISTOS DISC SIGN CAPTIVE
-101D4 ; [*0EA8.0020.0002] # PHAISTOS DISC SIGN CHILD
-101D5 ; [*0EA9.0020.0002] # PHAISTOS DISC SIGN WOMAN
-101D6 ; [*0EAA.0020.0002] # PHAISTOS DISC SIGN HELMET
-101D7 ; [*0EAB.0020.0002] # PHAISTOS DISC SIGN GAUNTLET
-101D8 ; [*0EAC.0020.0002] # PHAISTOS DISC SIGN TIARA
-101D9 ; [*0EAD.0020.0002] # PHAISTOS DISC SIGN ARROW
-101DA ; [*0EAE.0020.0002] # PHAISTOS DISC SIGN BOW
-101DB ; [*0EAF.0020.0002] # PHAISTOS DISC SIGN SHIELD
-101DC ; [*0EB0.0020.0002] # PHAISTOS DISC SIGN CLUB
-101DD ; [*0EB1.0020.0002] # PHAISTOS DISC SIGN MANACLES
-101DE ; [*0EB2.0020.0002] # PHAISTOS DISC SIGN MATTOCK
-101DF ; [*0EB3.0020.0002] # PHAISTOS DISC SIGN SAW
-101E0 ; [*0EB4.0020.0002] # PHAISTOS DISC SIGN LID
-101E1 ; [*0EB5.0020.0002] # PHAISTOS DISC SIGN BOOMERANG
-101E2 ; [*0EB6.0020.0002] # PHAISTOS DISC SIGN CARPENTRY PLANE
-101E3 ; [*0EB7.0020.0002] # PHAISTOS DISC SIGN DOLIUM
-101E4 ; [*0EB8.0020.0002] # PHAISTOS DISC SIGN COMB
-101E5 ; [*0EB9.0020.0002] # PHAISTOS DISC SIGN SLING
-101E6 ; [*0EBA.0020.0002] # PHAISTOS DISC SIGN COLUMN
-101E7 ; [*0EBB.0020.0002] # PHAISTOS DISC SIGN BEEHIVE
-101E8 ; [*0EBC.0020.0002] # PHAISTOS DISC SIGN SHIP
-101E9 ; [*0EBD.0020.0002] # PHAISTOS DISC SIGN HORN
-101EA ; [*0EBE.0020.0002] # PHAISTOS DISC SIGN HIDE
-101EB ; [*0EBF.0020.0002] # PHAISTOS DISC SIGN BULLS LEG
-101EC ; [*0EC0.0020.0002] # PHAISTOS DISC SIGN CAT
-101ED ; [*0EC1.0020.0002] # PHAISTOS DISC SIGN RAM
-101EE ; [*0EC2.0020.0002] # PHAISTOS DISC SIGN EAGLE
-101EF ; [*0EC3.0020.0002] # PHAISTOS DISC SIGN DOVE
-101F0 ; [*0EC4.0020.0002] # PHAISTOS DISC SIGN TUNNY
-101F1 ; [*0EC5.0020.0002] # PHAISTOS DISC SIGN BEE
-101F2 ; [*0EC6.0020.0002] # PHAISTOS DISC SIGN PLANE TREE
-101F3 ; [*0EC7.0020.0002] # PHAISTOS DISC SIGN VINE
-101F4 ; [*0EC8.0020.0002] # PHAISTOS DISC SIGN PAPYRUS
-101F5 ; [*0EC9.0020.0002] # PHAISTOS DISC SIGN ROSETTE
-101F6 ; [*0ECA.0020.0002] # PHAISTOS DISC SIGN LILY
-101F7 ; [*0ECB.0020.0002] # PHAISTOS DISC SIGN OX BACK
-101F8 ; [*0ECC.0020.0002] # PHAISTOS DISC SIGN FLUTE
-101F9 ; [*0ECD.0020.0002] # PHAISTOS DISC SIGN GRATER
-101FA ; [*0ECE.0020.0002] # PHAISTOS DISC SIGN STRAINER
-101FB ; [*0ECF.0020.0002] # PHAISTOS DISC SIGN SMALL AXE
-101FC ; [*0ED0.0020.0002] # PHAISTOS DISC SIGN WAVY BAND
-10322 ; [*151A.0020.0002] # OLD ITALIC NUMERAL TEN
-10323 ; [*151B.0020.0002] # OLD ITALIC NUMERAL FIFTY
-1039F ; [*02E2.0020.0002] # UGARITIC WORD DIVIDER
-103D0 ; [*02E3.0020.0002] # OLD PERSIAN WORD DIVIDER
-103D3 ; [*156C.0020.0002] # OLD PERSIAN NUMBER TEN
-103D4 ; [*156D.0020.0002] # OLD PERSIAN NUMBER TWENTY
-103D5 ; [*156E.0020.0002] # OLD PERSIAN NUMBER HUNDRED
-10857 ; [*02C3.0020.0002] # IMPERIAL ARAMAIC SECTION SIGN
-1085B ; [*1574.0020.0002] # IMPERIAL ARAMAIC NUMBER TEN
-1085C ; [*1575.0020.0002] # IMPERIAL ARAMAIC NUMBER TWENTY
-1085D ; [*1576.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE HUNDRED
-1085E ; [*1577.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE THOUSAND
-1085F ; [*1578.0020.0002] # IMPERIAL ARAMAIC NUMBER TEN THOUSAND
-10917 ; [*1571.0020.0002] # PHOENICIAN NUMBER TEN
-10918 ; [*1572.0020.0002] # PHOENICIAN NUMBER TWENTY
-10919 ; [*1573.0020.0002] # PHOENICIAN NUMBER ONE HUNDRED
-1091F ; [*02E4.0020.0002] # PHOENICIAN WORD SEPARATOR
-1093F ; [*02DE.0020.0002] # LYDIAN TRIANGULAR MARK
-10A44 ; [*158C.0020.0002] # KHAROSHTHI NUMBER TEN
-10A45 ; [*158D.0020.0002] # KHAROSHTHI NUMBER TWENTY
-10A46 ; [*158E.0020.0002] # KHAROSHTHI NUMBER ONE HUNDRED
-10A47 ; [*158F.0020.0002] # KHAROSHTHI NUMBER ONE THOUSAND
-10A50 ; [*0407.0020.0002] # KHAROSHTHI PUNCTUATION DOT
-10A51 ; [*0408.0020.0002] # KHAROSHTHI PUNCTUATION SMALL CIRCLE
-10A52 ; [*0409.0020.0002] # KHAROSHTHI PUNCTUATION CIRCLE
-10A53 ; [*040A.0020.0002] # KHAROSHTHI PUNCTUATION CRESCENT BAR
-10A54 ; [*040B.0020.0002] # KHAROSHTHI PUNCTUATION MANGALAM
-10A55 ; [*040C.0020.0002] # KHAROSHTHI PUNCTUATION LOTUS
-10A56 ; [*02A2.0020.0002] # KHAROSHTHI PUNCTUATION DANDA
-10A57 ; [*02A3.0020.0002] # KHAROSHTHI PUNCTUATION DOUBLE DANDA
-10A58 ; [*040D.0020.0002] # KHAROSHTHI PUNCTUATION LINES
-10A7E ; [*156F.0020.0002] # OLD SOUTH ARABIAN NUMBER FIFTY
-10A7F ; [*1570.0020.0002] # OLD SOUTH ARABIAN NUMERIC INDICATOR
-10B39 ; [*040E.0020.0002] # AVESTAN ABBREVIATION MARK
-10B3A ; [*02C4.0020.0002] # TINY TWO DOTS OVER ONE DOT PUNCTUATION
-10B3B ; [*02C5.0020.0002] # SMALL TWO DOTS OVER ONE DOT PUNCTUATION
-10B3C ; [*02C6.0020.0002] # LARGE TWO DOTS OVER ONE DOT PUNCTUATION
-10B3D ; [*02C7.0020.0002] # LARGE ONE DOT OVER TWO DOTS PUNCTUATION
-10B3E ; [*02C8.0020.0002] # LARGE TWO RINGS OVER ONE RING PUNCTUATION
-10B3F ; [*02C9.0020.0002] # LARGE ONE RING OVER TWO RINGS PUNCTUATION
-10B5C ; [*1579.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TEN
-10B5D ; [*157A.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TWENTY
-10B5E ; [*157B.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED
-10B5F ; [*157C.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
-10B7C ; [*157D.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TEN
-10B7D ; [*157E.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TWENTY
-10B7E ; [*157F.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
-10B7F ; [*1580.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
-10E69 ; [*1503.0020.0002] # RUMI NUMBER TEN
-10E6A ; [*1504.0020.0002] # RUMI NUMBER TWENTY
-10E6B ; [*1505.0020.0002] # RUMI NUMBER THIRTY
-10E6C ; [*1506.0020.0002] # RUMI NUMBER FORTY
-10E6D ; [*1507.0020.0002] # RUMI NUMBER FIFTY
-10E6E ; [*1508.0020.0002] # RUMI NUMBER SIXTY
-10E6F ; [*1509.0020.0002] # RUMI NUMBER SEVENTY
-10E70 ; [*150A.0020.0002] # RUMI NUMBER EIGHTY
-10E71 ; [*150B.0020.0002] # RUMI NUMBER NINETY
-10E72 ; [*150C.0020.0002] # RUMI NUMBER ONE HUNDRED
-10E73 ; [*150D.0020.0002] # RUMI NUMBER TWO HUNDRED
-10E74 ; [*150E.0020.0002] # RUMI NUMBER THREE HUNDRED
-10E75 ; [*150F.0020.0002] # RUMI NUMBER FOUR HUNDRED
-10E76 ; [*1510.0020.0002] # RUMI NUMBER FIVE HUNDRED
-10E77 ; [*1511.0020.0002] # RUMI NUMBER SIX HUNDRED
-10E78 ; [*1512.0020.0002] # RUMI NUMBER SEVEN HUNDRED
-10E79 ; [*1513.0020.0002] # RUMI NUMBER EIGHT HUNDRED
-10E7A ; [*1514.0020.0002] # RUMI NUMBER NINE HUNDRED
-10E7B ; [*1515.0020.0002] # RUMI FRACTION ONE HALF
-10E7C ; [*1516.0020.0002] # RUMI FRACTION ONE QUARTER
-10E7D ; [*1517.0020.0002] # RUMI FRACTION ONE THIRD
-10E7E ; [*1518.0020.0002] # RUMI FRACTION TWO THIRDS
-11047 ; [*02A4.0020.0002] # BRAHMI DANDA
-11048 ; [*02A5.0020.0002] # BRAHMI DOUBLE DANDA
-11049 ; [*0402.0020.0002] # BRAHMI PUNCTUATION DOT
-1104A ; [*0403.0020.0002] # BRAHMI PUNCTUATION DOUBLE DOT
-1104B ; [*0404.0020.0002] # BRAHMI PUNCTUATION LINE
-1104C ; [*0405.0020.0002] # BRAHMI PUNCTUATION CRESCENT BAR
-1104D ; [*0406.0020.0002] # BRAHMI PUNCTUATION LOTUS
-1105B ; [*1581.0020.0002] # BRAHMI NUMBER TEN
-1105C ; [*1582.0020.0002] # BRAHMI NUMBER TWENTY
-1105D ; [*1583.0020.0002] # BRAHMI NUMBER THIRTY
-1105E ; [*1584.0020.0002] # BRAHMI NUMBER FORTY
-1105F ; [*1585.0020.0002] # BRAHMI NUMBER FIFTY
-11060 ; [*1586.0020.0002] # BRAHMI NUMBER SIXTY
-11061 ; [*1587.0020.0002] # BRAHMI NUMBER SEVENTY
-11062 ; [*1588.0020.0002] # BRAHMI NUMBER EIGHTY
-11063 ; [*1589.0020.0002] # BRAHMI NUMBER NINETY
-11064 ; [*158A.0020.0002] # BRAHMI NUMBER ONE HUNDRED
-11065 ; [*158B.0020.0002] # BRAHMI NUMBER ONE THOUSAND
-110BB ; [*040F.0020.0002] # KAITHI ABBREVIATION SIGN
-110BC ; [*0410.0020.0002] # KAITHI ENUMERATION SIGN
+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
+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
110BD ; [.0000.0000.0000] # KAITHI NUMBER SIGN
-110BE ; [*02CA.0020.0002] # KAITHI SECTION MARK
-110BF ; [*02CB.0020.0002] # KAITHI DOUBLE SECTION MARK
-110C0 ; [*02A6.0020.0002] # KAITHI DANDA
-110C1 ; [*02A7.0020.0002] # KAITHI DOUBLE DANDA
-11140 ; [*02CC.0020.0002] # CHAKMA SECTION MARK
-11141 ; [*02A8.0020.0002] # CHAKMA DANDA
-11142 ; [*02A9.0020.0002] # CHAKMA DOUBLE DANDA
-11143 ; [*026F.0020.0002] # CHAKMA QUESTION MARK
-111C5 ; [*02AA.0020.0002] # SHARADA DANDA
-111C6 ; [*02AB.0020.0002] # SHARADA DOUBLE DANDA
-111C7 ; [*0411.0020.0002] # SHARADA ABBREVIATION SIGN
-111C8 ; [*02CD.0020.0002] # SHARADA SEPARATOR
-12432 ; [*1590.0020.0002] # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH
-12433 ; [*1591.0020.0002] # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN
-1245A ; [*1592.0020.0002] # CUNEIFORM NUMERIC SIGN ONE THIRD DISH
-1245B ; [*1593.0020.0002] # CUNEIFORM NUMERIC SIGN TWO THIRDS DISH
-1245C ; [*1594.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH
-1245D ; [*1595.0020.0002] # CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A
-1245E ; [*1596.0020.0002] # CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A
-1245F ; [*1597.0020.0002] # CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH
-12460 ; [*1598.0020.0002] # CUNEIFORM NUMERIC SIGN ONE QUARTER ASH
-12461 ; [*1599.0020.0002] # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH
-12462 ; [*159A.0020.0002] # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-12470 ; [*02E5.0020.0002] # CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER
-12471 ; [*02E6.0020.0002] # CUNEIFORM PUNCTUATION SIGN VERTICAL COLON
-12472 ; [*02E7.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON
-12473 ; [*02E8.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
-1D000 ; [*0ED1.0020.0002] # BYZANTINE MUSICAL SYMBOL PSILI
-1D001 ; [*0ED2.0020.0002] # BYZANTINE MUSICAL SYMBOL DASEIA
-1D002 ; [*0ED3.0020.0002] # BYZANTINE MUSICAL SYMBOL PERISPOMENI
-1D003 ; [*0ED4.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON
-1D004 ; [*0ED5.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA DIPLI
-1D005 ; [*0ED6.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON
-1D006 ; [*0ED7.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA DIPLI
-1D007 ; [*0ED8.0020.0002] # BYZANTINE MUSICAL SYMBOL KATHISTI
-1D008 ; [*0ED9.0020.0002] # BYZANTINE MUSICAL SYMBOL SYRMATIKI
-1D009 ; [*0EDA.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI
-1D00A ; [*0EDB.0020.0002] # BYZANTINE MUSICAL SYMBOL YPOKRISIS
-1D00B ; [*0EDC.0020.0002] # BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI
-1D00C ; [*0EDD.0020.0002] # BYZANTINE MUSICAL SYMBOL KREMASTI
-1D00D ; [*0EDE.0020.0002] # BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON
-1D00E ; [*0EDF.0020.0002] # BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON
-1D00F ; [*0EE0.0020.0002] # BYZANTINE MUSICAL SYMBOL TELEIA
-1D010 ; [*0EE1.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA
-1D011 ; [*0EE2.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS
-1D012 ; [*0EE3.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI
-1D013 ; [*0EE4.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNEVMA
-1D014 ; [*0EE5.0020.0002] # BYZANTINE MUSICAL SYMBOL THITA
-1D015 ; [*0EE6.0020.0002] # BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION
-1D016 ; [*0EE7.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON ARCHAION
-1D017 ; [*0EE8.0020.0002] # BYZANTINE MUSICAL SYMBOL PSILON
-1D018 ; [*0EE9.0020.0002] # BYZANTINE MUSICAL SYMBOL CHAMILON
-1D019 ; [*0EEA.0020.0002] # BYZANTINE MUSICAL SYMBOL VATHY
-1D01A ; [*0EEB.0020.0002] # BYZANTINE MUSICAL SYMBOL ISON ARCHAION
-1D01B ; [*0EEC.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION
-1D01C ; [*0EED.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION
-1D01D ; [*0EEE.0020.0002] # BYZANTINE MUSICAL SYMBOL SAXIMATA
-1D01E ; [*0EEF.0020.0002] # BYZANTINE MUSICAL SYMBOL PARICHON
-1D01F ; [*0EF0.0020.0002] # BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA
-1D020 ; [*0EF1.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION
-1D021 ; [*0EF2.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION
-1D022 ; [*0EF3.0020.0002] # BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION
-1D023 ; [*0EF4.0020.0002] # BYZANTINE MUSICAL SYMBOL APOTHEMA
-1D024 ; [*0EF5.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA
-1D025 ; [*0EF6.0020.0002] # BYZANTINE MUSICAL SYMBOL REVMA
-1D026 ; [*0EF7.0020.0002] # BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION
-1D027 ; [*0EF8.0020.0002] # BYZANTINE MUSICAL SYMBOL TINAGMA
-1D028 ; [*0EF9.0020.0002] # BYZANTINE MUSICAL SYMBOL ANATRICHISMA
-1D029 ; [*0EFA.0020.0002] # BYZANTINE MUSICAL SYMBOL SEISMA
-1D02A ; [*0EFB.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION
-1D02B ; [*0EFC.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU
-1D02C ; [*0EFD.0020.0002] # BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION
-1D02D ; [*0EFE.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMA
-1D02E ; [*0EFF.0020.0002] # BYZANTINE MUSICAL SYMBOL LEMOI
-1D02F ; [*0F00.0020.0002] # BYZANTINE MUSICAL SYMBOL DYO
-1D030 ; [*0F01.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIA
-1D031 ; [*0F02.0020.0002] # BYZANTINE MUSICAL SYMBOL TESSERA
-1D032 ; [*0F03.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMATA
-1D033 ; [*0F04.0020.0002] # BYZANTINE MUSICAL SYMBOL APESO EXO NEO
-1D034 ; [*0F05.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION
-1D035 ; [*0F06.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFTHORA
-1D036 ; [*0F07.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION
-1D037 ; [*0F08.0020.0002] # BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON
-1D038 ; [*0F09.0020.0002] # BYZANTINE MUSICAL SYMBOL PELASTON
-1D039 ; [*0F0A.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTON
-1D03A ; [*0F0B.0020.0002] # BYZANTINE MUSICAL SYMBOL KONTEVMA
-1D03B ; [*0F0C.0020.0002] # BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION
-1D03C ; [*0F0D.0020.0002] # BYZANTINE MUSICAL SYMBOL RAPISMA
-1D03D ; [*0F0E.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION
-1D03E ; [*0F0F.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION
-1D03F ; [*0F10.0020.0002] # BYZANTINE MUSICAL SYMBOL ICHADIN
-1D040 ; [*0F11.0020.0002] # BYZANTINE MUSICAL SYMBOL NANA
-1D041 ; [*0F12.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASMA
-1D042 ; [*0F13.0020.0002] # BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO
-1D043 ; [*0F14.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON ALLO
-1D044 ; [*0F15.0020.0002] # BYZANTINE MUSICAL SYMBOL STRAGGISMATA
-1D045 ; [*0F16.0020.0002] # BYZANTINE MUSICAL SYMBOL GRONTHISMATA
-1D046 ; [*0F17.0020.0002] # BYZANTINE MUSICAL SYMBOL ISON NEO
-1D047 ; [*0F18.0020.0002] # BYZANTINE MUSICAL SYMBOL OLIGON NEO
-1D048 ; [*0F19.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA NEO
-1D049 ; [*0F1A.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASTI
-1D04A ; [*0F1B.0020.0002] # BYZANTINE MUSICAL SYMBOL KOUFISMA
-1D04B ; [*0F1C.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA
-1D04C ; [*0F1D.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA
-1D04D ; [*0F1E.0020.0002] # BYZANTINE MUSICAL SYMBOL PELASTON NEO
-1D04E ; [*0F1F.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO
-1D04F ; [*0F20.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO
-1D050 ; [*0F21.0020.0002] # BYZANTINE MUSICAL SYMBOL YPSILI
-1D051 ; [*0F22.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO
-1D052 ; [*0F23.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO
-1D053 ; [*0F24.0020.0002] # BYZANTINE MUSICAL SYMBOL YPORROI
-1D054 ; [*0F25.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON
-1D055 ; [*0F26.0020.0002] # BYZANTINE MUSICAL SYMBOL ELAFRON
-1D056 ; [*0F27.0020.0002] # BYZANTINE MUSICAL SYMBOL CHAMILI
-1D057 ; [*0F28.0020.0002] # BYZANTINE MUSICAL SYMBOL MIKRON ISON
-1D058 ; [*0F29.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA NEO
-1D059 ; [*0F2A.0020.0002] # BYZANTINE MUSICAL SYMBOL PIASMA NEO
-1D05A ; [*0F2B.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTON NEO
-1D05B ; [*0F2C.0020.0002] # BYZANTINE MUSICAL SYMBOL OMALON
-1D05C ; [*0F2D.0020.0002] # BYZANTINE MUSICAL SYMBOL ANTIKENOMA
-1D05D ; [*0F2E.0020.0002] # BYZANTINE MUSICAL SYMBOL LYGISMA
-1D05E ; [*0F2F.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO
-1D05F ; [*0F30.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO
-1D060 ; [*0F31.0020.0002] # BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA
-1D061 ; [*0F32.0020.0002] # BYZANTINE MUSICAL SYMBOL KYLISMA
-1D062 ; [*0F33.0020.0002] # BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA
-1D063 ; [*0F34.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON NEO
-1D064 ; [*0F35.0020.0002] # BYZANTINE MUSICAL SYMBOL EKSTREPTON
-1D065 ; [*0F36.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA NEO
-1D066 ; [*0F37.0020.0002] # BYZANTINE MUSICAL SYMBOL SYRMA
-1D067 ; [*0F38.0020.0002] # BYZANTINE MUSICAL SYMBOL CHOREVMA NEO
-1D068 ; [*0F39.0020.0002] # BYZANTINE MUSICAL SYMBOL EPEGERMA
-1D069 ; [*0F3A.0020.0002] # BYZANTINE MUSICAL SYMBOL SEISMA NEO
-1D06A ; [*0F3B.0020.0002] # BYZANTINE MUSICAL SYMBOL XIRON KLASMA
-1D06B ; [*0F3C.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON
-1D06C ; [*0F3D.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA
-1D06D ; [*0F3E.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA
-1D06E ; [*0F3F.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA
-1D06F ; [*0F40.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA
-1D070 ; [*0F41.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA
-1D071 ; [*0F42.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA
-1D072 ; [*0F43.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON
-1D073 ; [*0F44.0020.0002] # BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON
-1D074 ; [*0F45.0020.0002] # BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON
-1D075 ; [*0F46.0020.0002] # BYZANTINE MUSICAL SYMBOL OYRANISMA NEO
-1D076 ; [*0F47.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO
-1D077 ; [*0F48.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO
-1D078 ; [*0F49.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMA APLOUN
-1D079 ; [*0F4A.0020.0002] # BYZANTINE MUSICAL SYMBOL THES KAI APOTHES
-1D07A ; [*0F4B.0020.0002] # BYZANTINE MUSICAL SYMBOL KATAVASMA
-1D07B ; [*0F4C.0020.0002] # BYZANTINE MUSICAL SYMBOL ENDOFONON
-1D07C ; [*0F4D.0020.0002] # BYZANTINE MUSICAL SYMBOL YFEN KATO
-1D07D ; [*0F4E.0020.0002] # BYZANTINE MUSICAL SYMBOL YFEN ANO
-1D07E ; [*0F4F.0020.0002] # BYZANTINE MUSICAL SYMBOL STAVROS
-1D07F ; [*0F50.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA ANO
-1D080 ; [*0F51.0020.0002] # BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION
-1D081 ; [*0F52.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION
-1D082 ; [*0F53.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA ALLO
-1D083 ; [*0F54.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA NEO
-1D084 ; [*0F55.0020.0002] # BYZANTINE MUSICAL SYMBOL APODERMA NEO
-1D085 ; [*0F56.0020.0002] # BYZANTINE MUSICAL SYMBOL APLI
-1D086 ; [*0F57.0020.0002] # BYZANTINE MUSICAL SYMBOL DIPLI
-1D087 ; [*0F58.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIPLI
-1D088 ; [*0F59.0020.0002] # BYZANTINE MUSICAL SYMBOL TETRAPLI
-1D089 ; [*0F5A.0020.0002] # BYZANTINE MUSICAL SYMBOL KORONIS
-1D08A ; [*0F5B.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU
-1D08B ; [*0F5C.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON
-1D08C ; [*0F5D.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON
-1D08D ; [*0F5E.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON
-1D08E ; [*0F5F.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU
-1D08F ; [*0F60.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON NEO ANO
-1D090 ; [*0F61.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA
-1D091 ; [*0F62.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA
-1D092 ; [*0F63.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON
-1D093 ; [*0F64.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO
-1D094 ; [*0F65.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO
-1D095 ; [*0F66.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA
-1D096 ; [*0F67.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIGORGON
-1D097 ; [*0F68.0020.0002] # BYZANTINE MUSICAL SYMBOL ARGON
-1D098 ; [*0F69.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIDIARGON
-1D099 ; [*0F6A.0020.0002] # BYZANTINE MUSICAL SYMBOL DIARGON
-1D09A ; [*0F6B.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI
-1D09B ; [*0F6C.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI
-1D09C ; [*0F6D.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI ARGI
-1D09D ; [*0F6E.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI METRIA
-1D09E ; [*0F6F.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI MESI
-1D09F ; [*0F70.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI GORGI
-1D0A0 ; [*0F71.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI
-1D0A1 ; [*0F72.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI
-1D0A2 ; [*0F73.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS
-1D0A3 ; [*0F74.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS
-1D0A4 ; [*0F75.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS
-1D0A5 ; [*0F76.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS
-1D0A6 ; [*0F77.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS
-1D0A7 ; [*0F78.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS
-1D0A8 ; [*0F79.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS
-1D0A9 ; [*0F7A.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS
-1D0AA ; [*0F7B.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS
-1D0AB ; [*0F7C.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS
-1D0AC ; [*0F7D.0020.0002] # BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS
-1D0AD ; [*0F7E.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS
-1D0AE ; [*0F7F.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS
-1D0AF ; [*0F80.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS
-1D0B0 ; [*0F81.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS
-1D0B1 ; [*0F82.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS
-1D0B2 ; [*0F83.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS
-1D0B3 ; [*0F84.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS
-1D0B4 ; [*0F85.0020.0002] # BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN
-1D0B5 ; [*0F86.0020.0002] # BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN
-1D0B6 ; [*0F87.0020.0002] # BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU
-1D0B7 ; [*0F88.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFONON
-1D0B8 ; [*0F89.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFTHORON
-1D0B9 ; [*0F8A.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU
-1D0BA ; [*0F8B.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA
-1D0BB ; [*0F8C.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA
-1D0BC ; [*0F8D.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS
-1D0BD ; [*0F8E.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI
-1D0BE ; [*0F8F.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI
-1D0BF ; [*0F90.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE
-1D0C0 ; [*0F91.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO
-1D0C1 ; [*0F92.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO
-1D0C2 ; [*0F93.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO
-1D0C3 ; [*0F94.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS
-1D0C4 ; [*0F95.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS
-1D0C5 ; [*0F96.0020.0002] # BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS
-1D0C6 ; [*0F97.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI
-1D0C7 ; [*0F98.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA NENANO
-1D0C8 ; [*0F99.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA ZYGOS
-1D0C9 ; [*0F9A.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA KLITON
-1D0CA ; [*0F9B.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA SPATHI
-1D0CB ; [*0F9C.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION
-1D0CC ; [*0F9D.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA
-1D0CD ; [*0F9E.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION
-1D0CE ; [*0F9F.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION
-1D0CF ; [*0FA0.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION
-1D0D0 ; [*0FA1.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA
-1D0D1 ; [*0FA2.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D2 ; [*0FA3.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA
-1D0D3 ; [*0FA4.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA
-1D0D4 ; [*0FA5.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA
-1D0D5 ; [*0FA6.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D6 ; [*0FA7.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA
-1D0D7 ; [*0FA8.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA
-1D0D8 ; [*0FA9.0020.0002] # BYZANTINE MUSICAL SYMBOL GENIKI DIESIS
-1D0D9 ; [*0FAA.0020.0002] # BYZANTINE MUSICAL SYMBOL GENIKI YFESIS
-1D0DA ; [*0FAB.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI
-1D0DB ; [*0FAC.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI
-1D0DC ; [*0FAD.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI
-1D0DD ; [*0FAE.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS
-1D0DE ; [*0FAF.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS
-1D0DF ; [*0FB0.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU
-1D0E0 ; [*0FB1.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU
-1D0E1 ; [*0FB2.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU
-1D0E2 ; [*0FB3.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS
-1D0E3 ; [*0FB4.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU
-1D0E4 ; [*0FB5.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU
-1D0E5 ; [*0FB6.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU
-1D0E6 ; [*0FB7.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGRAMMA GG
-1D0E7 ; [*0FB8.0020.0002] # BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU
-1D0E8 ; [*0FB9.0020.0002] # BYZANTINE MUSICAL SYMBOL STIGMA
-1D0E9 ; [*0FBA.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO PA
-1D0EA ; [*0FBB.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO VOU
-1D0EB ; [*0FBC.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO GA
-1D0EC ; [*0FBD.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO DI
-1D0ED ; [*0FBE.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO KE
-1D0EE ; [*0FBF.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO ZO
-1D0EF ; [*0FC0.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO NI
-1D0F0 ; [*0FC1.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO
-1D0F1 ; [*0FC2.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO
-1D0F2 ; [*0FC3.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO
-1D0F3 ; [*0FC4.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO
-1D0F4 ; [*0FC5.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA KATO
-1D0F5 ; [*0FC6.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
-1D100 ; [*0FC7.0020.0002] # MUSICAL SYMBOL SINGLE BARLINE
-1D101 ; [*0FC8.0020.0002] # MUSICAL SYMBOL DOUBLE BARLINE
-1D102 ; [*0FC9.0020.0002] # MUSICAL SYMBOL FINAL BARLINE
-1D103 ; [*0FCA.0020.0002] # MUSICAL SYMBOL REVERSE FINAL BARLINE
-1D104 ; [*0FCB.0020.0002] # MUSICAL SYMBOL DASHED BARLINE
-1D105 ; [*0FCC.0020.0002] # MUSICAL SYMBOL SHORT BARLINE
-1D106 ; [*0FCD.0020.0002] # MUSICAL SYMBOL LEFT REPEAT SIGN
-1D107 ; [*0FCE.0020.0002] # MUSICAL SYMBOL RIGHT REPEAT SIGN
-1D108 ; [*0FCF.0020.0002] # MUSICAL SYMBOL REPEAT DOTS
-1D109 ; [*0FD0.0020.0002] # MUSICAL SYMBOL DAL SEGNO
-1D10A ; [*0FD1.0020.0002] # MUSICAL SYMBOL DA CAPO
-1D10B ; [*0FD2.0020.0002] # MUSICAL SYMBOL SEGNO
-1D10C ; [*0FD3.0020.0002] # MUSICAL SYMBOL CODA
-1D10D ; [*0FD4.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-1
-1D10E ; [*0FD5.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-2
-1D10F ; [*0FD6.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-3
-1D110 ; [*0FD7.0020.0002] # MUSICAL SYMBOL FERMATA
-1D111 ; [*0FD8.0020.0002] # MUSICAL SYMBOL FERMATA BELOW
-1D112 ; [*0FD9.0020.0002] # MUSICAL SYMBOL BREATH MARK
-1D113 ; [*0FDA.0020.0002] # MUSICAL SYMBOL CAESURA
-1D114 ; [*0FDB.0020.0002] # MUSICAL SYMBOL BRACE
-1D115 ; [*0FDC.0020.0002] # MUSICAL SYMBOL BRACKET
-1D116 ; [*0FDD.0020.0002] # MUSICAL SYMBOL ONE-LINE STAFF
-1D117 ; [*0FDE.0020.0002] # MUSICAL SYMBOL TWO-LINE STAFF
-1D118 ; [*0FDF.0020.0002] # MUSICAL SYMBOL THREE-LINE STAFF
-1D119 ; [*0FE0.0020.0002] # MUSICAL SYMBOL FOUR-LINE STAFF
-1D11A ; [*0FE1.0020.0002] # MUSICAL SYMBOL FIVE-LINE STAFF
-1D11B ; [*0FE2.0020.0002] # MUSICAL SYMBOL SIX-LINE STAFF
-1D11C ; [*0FE3.0020.0002] # MUSICAL SYMBOL SIX-STRING FRETBOARD
-1D11D ; [*0FE4.0020.0002] # MUSICAL SYMBOL FOUR-STRING FRETBOARD
-1D11E ; [*0FE5.0020.0002] # MUSICAL SYMBOL G CLEF
-1D11F ; [*0FE6.0020.0002] # MUSICAL SYMBOL G CLEF OTTAVA ALTA
-1D120 ; [*0FE7.0020.0002] # MUSICAL SYMBOL G CLEF OTTAVA BASSA
-1D121 ; [*0FE8.0020.0002] # MUSICAL SYMBOL C CLEF
-1D122 ; [*0FE9.0020.0002] # MUSICAL SYMBOL F CLEF
-1D123 ; [*0FEA.0020.0002] # MUSICAL SYMBOL F CLEF OTTAVA ALTA
-1D124 ; [*0FEB.0020.0002] # MUSICAL SYMBOL F CLEF OTTAVA BASSA
-1D125 ; [*0FEC.0020.0002] # MUSICAL SYMBOL DRUM CLEF-1
-1D126 ; [*0FED.0020.0002] # MUSICAL SYMBOL DRUM CLEF-2
-1D129 ; [*1001.0020.0002] # MUSICAL SYMBOL MULTIPLE MEASURE REST
-1D12A ; [*0FF1.0020.0002] # MUSICAL SYMBOL DOUBLE SHARP
-1D12B ; [*0FF2.0020.0002] # MUSICAL SYMBOL DOUBLE FLAT
-1D12C ; [*0FF3.0020.0002] # MUSICAL SYMBOL FLAT UP
-1D12D ; [*0FF4.0020.0002] # MUSICAL SYMBOL FLAT DOWN
-1D12E ; [*0FF5.0020.0002] # MUSICAL SYMBOL NATURAL UP
-1D12F ; [*0FF6.0020.0002] # MUSICAL SYMBOL NATURAL DOWN
-1D130 ; [*0FF7.0020.0002] # MUSICAL SYMBOL SHARP UP
-1D131 ; [*0FF8.0020.0002] # MUSICAL SYMBOL SHARP DOWN
-1D132 ; [*0FF9.0020.0002] # MUSICAL SYMBOL QUARTER TONE SHARP
-1D133 ; [*0FFA.0020.0002] # MUSICAL SYMBOL QUARTER TONE FLAT
-1D134 ; [*0FFB.0020.0002] # MUSICAL SYMBOL COMMON TIME
-1D135 ; [*0FFC.0020.0002] # MUSICAL SYMBOL CUT TIME
-1D136 ; [*0FFD.0020.0002] # MUSICAL SYMBOL OTTAVA ALTA
-1D137 ; [*0FFE.0020.0002] # MUSICAL SYMBOL OTTAVA BASSA
-1D138 ; [*0FFF.0020.0002] # MUSICAL SYMBOL QUINDICESIMA ALTA
-1D139 ; [*1000.0020.0002] # MUSICAL SYMBOL QUINDICESIMA BASSA
-1D13A ; [*1002.0020.0002] # MUSICAL SYMBOL MULTI REST
-1D13B ; [*1003.0020.0002] # MUSICAL SYMBOL WHOLE REST
-1D13C ; [*1004.0020.0002] # MUSICAL SYMBOL HALF REST
-1D13D ; [*1005.0020.0002] # MUSICAL SYMBOL QUARTER REST
-1D13E ; [*1006.0020.0002] # MUSICAL SYMBOL EIGHTH REST
-1D13F ; [*1007.0020.0002] # MUSICAL SYMBOL SIXTEENTH REST
-1D140 ; [*1008.0020.0002] # MUSICAL SYMBOL THIRTY-SECOND REST
-1D141 ; [*1009.0020.0002] # MUSICAL SYMBOL SIXTY-FOURTH REST
-1D142 ; [*100A.0020.0002] # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST
-1D143 ; [*100B.0020.0002] # MUSICAL SYMBOL X NOTEHEAD
-1D144 ; [*100C.0020.0002] # MUSICAL SYMBOL PLUS NOTEHEAD
-1D145 ; [*100D.0020.0002] # MUSICAL SYMBOL CIRCLE X NOTEHEAD
-1D146 ; [*100E.0020.0002] # MUSICAL SYMBOL SQUARE NOTEHEAD WHITE
-1D147 ; [*100F.0020.0002] # MUSICAL SYMBOL SQUARE NOTEHEAD BLACK
-1D148 ; [*1010.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE
-1D149 ; [*1011.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK
-1D14A ; [*1012.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE
-1D14B ; [*1013.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK
-1D14C ; [*1014.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE
-1D14D ; [*1015.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK
-1D14E ; [*1016.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE
-1D14F ; [*1017.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK
-1D150 ; [*1018.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE
-1D151 ; [*1019.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK
-1D152 ; [*101A.0020.0002] # MUSICAL SYMBOL MOON NOTEHEAD WHITE
-1D153 ; [*101B.0020.0002] # MUSICAL SYMBOL MOON NOTEHEAD BLACK
-1D154 ; [*101C.0020.0002] # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE
-1D155 ; [*101D.0020.0002] # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK
-1D156 ; [*101E.0020.0002] # MUSICAL SYMBOL PARENTHESIS NOTEHEAD
-1D157 ; [*101F.0020.0002] # MUSICAL SYMBOL VOID NOTEHEAD
-1D158 ; [*1020.0020.0002] # MUSICAL SYMBOL NOTEHEAD BLACK
-1D159 ; [*1021.0020.0002] # MUSICAL SYMBOL NULL NOTEHEAD
-1D15A ; [*1022.0020.0002] # MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE
-1D15B ; [*1023.0020.0002] # MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK
-1D15C ; [*1024.0020.0002] # MUSICAL SYMBOL BREVE
-1D15D ; [*1025.0020.0002] # MUSICAL SYMBOL WHOLE NOTE
-1D15E ; [*101F.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL HALF NOTE
-1D15F ; [*1020.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL QUARTER NOTE
-1D160 ; [*1020.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL EIGHTH NOTE
-1D161 ; [*1020.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SIXTEENTH NOTE
-1D162 ; [*1020.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL THIRTY-SECOND NOTE
-1D163 ; [*1020.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SIXTY-FOURTH NOTE
-1D164 ; [*1020.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+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
+11366 ; [.0000.0000.0000] # COMBINING GRANTHA DIGIT ZERO
+11367 ; [.0000.0000.0000] # COMBINING GRANTHA DIGIT ONE
+11368 ; [.0000.0000.0000] # COMBINING GRANTHA DIGIT TWO
+11369 ; [.0000.0000.0000] # COMBINING GRANTHA DIGIT THREE
+1136A ; [.0000.0000.0000] # COMBINING GRANTHA DIGIT FOUR
+1136B ; [.0000.0000.0000] # COMBINING GRANTHA DIGIT FIVE
+1136C ; [.0000.0000.0000] # COMBINING GRANTHA DIGIT SIX
+11370 ; [.0000.0000.0000] # COMBINING GRANTHA LETTER A
+11371 ; [.0000.0000.0000] # COMBINING GRANTHA LETTER KA
+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
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 ; [*1026.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-1
-1D16B ; [*1027.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-2
-1D16C ; [*1028.0020.0002] # MUSICAL SYMBOL FINGERED 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
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
@@ -4662,8 +4940,8 @@ FFFC ; [*14D6.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 ; [*1029.0020.0002] # MUSICAL SYMBOL ARPEGGIATO UP
-1D184 ; [*102A.0020.0002] # MUSICAL SYMBOL ARPEGGIATO DOWN
+1D183 ; [*10E4.0020.0002] # MUSICAL SYMBOL ARPEGGIATO UP
+1D184 ; [*10E5.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
@@ -4671,1290 +4949,1839 @@ FFFC ; [*14D6.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 ; [*102B.0020.0002] # MUSICAL SYMBOL RINFORZANDO
-1D18D ; [*102C.0020.0002] # MUSICAL SYMBOL SUBITO
-1D18E ; [*102D.0020.0002] # MUSICAL SYMBOL Z
-1D18F ; [*102E.0020.0002] # MUSICAL SYMBOL PIANO
-1D190 ; [*102F.0020.0002] # MUSICAL SYMBOL MEZZO
-1D191 ; [*1030.0020.0002] # MUSICAL SYMBOL FORTE
-1D192 ; [*1031.0020.0002] # MUSICAL SYMBOL CRESCENDO
-1D193 ; [*1032.0020.0002] # MUSICAL SYMBOL DECRESCENDO
-1D194 ; [*1033.0020.0002] # MUSICAL SYMBOL GRACE NOTE SLASH
-1D195 ; [*1034.0020.0002] # MUSICAL SYMBOL GRACE NOTE NO SLASH
-1D196 ; [*1035.0020.0002] # MUSICAL SYMBOL TR
-1D197 ; [*1036.0020.0002] # MUSICAL SYMBOL TURN
-1D198 ; [*1037.0020.0002] # MUSICAL SYMBOL INVERTED TURN
-1D199 ; [*1038.0020.0002] # MUSICAL SYMBOL TURN SLASH
-1D19A ; [*1039.0020.0002] # MUSICAL SYMBOL TURN UP
-1D19B ; [*103A.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-1
-1D19C ; [*103B.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-2
-1D19D ; [*103C.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-3
-1D19E ; [*103D.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-4
-1D19F ; [*103E.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-5
-1D1A0 ; [*103F.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-6
-1D1A1 ; [*1040.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-7
-1D1A2 ; [*1041.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-8
-1D1A3 ; [*1042.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-9
-1D1A4 ; [*1043.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-10
-1D1A5 ; [*1044.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-11
-1D1A6 ; [*1045.0020.0002] # MUSICAL SYMBOL HAUPTSTIMME
-1D1A7 ; [*1046.0020.0002] # MUSICAL SYMBOL NEBENSTIMME
-1D1A8 ; [*1047.0020.0002] # MUSICAL SYMBOL END OF STIMME
-1D1A9 ; [*1048.0020.0002] # MUSICAL SYMBOL DEGREE SLASH
+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
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 ; [*1049.0020.0002] # MUSICAL SYMBOL PEDAL MARK
-1D1AF ; [*104A.0020.0002] # MUSICAL SYMBOL PEDAL UP MARK
-1D1B0 ; [*104B.0020.0002] # MUSICAL SYMBOL HALF PEDAL MARK
-1D1B1 ; [*104C.0020.0002] # MUSICAL SYMBOL GLISSANDO UP
-1D1B2 ; [*104D.0020.0002] # MUSICAL SYMBOL GLISSANDO DOWN
-1D1B3 ; [*104E.0020.0002] # MUSICAL SYMBOL WITH FINGERNAILS
-1D1B4 ; [*104F.0020.0002] # MUSICAL SYMBOL DAMP
-1D1B5 ; [*1050.0020.0002] # MUSICAL SYMBOL DAMP ALL
-1D1B6 ; [*1051.0020.0002] # MUSICAL SYMBOL MAXIMA
-1D1B7 ; [*1052.0020.0002] # MUSICAL SYMBOL LONGA
-1D1B8 ; [*1053.0020.0002] # MUSICAL SYMBOL BREVIS
-1D1B9 ; [*1054.0020.0002] # MUSICAL SYMBOL SEMIBREVIS WHITE
-1D1BA ; [*1055.0020.0002] # MUSICAL SYMBOL SEMIBREVIS BLACK
-1D1BB ; [*1054.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL MINIMA
-1D1BC ; [*1055.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL MINIMA BLACK
-1D1BD ; [*1054.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SEMIMINIMA WHITE
-1D1BE ; [*1055.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SEMIMINIMA BLACK
-1D1BF ; [*1054.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL FUSA WHITE
-1D1C0 ; [*1055.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL FUSA BLACK
-1D1C1 ; [*1056.0020.0002] # MUSICAL SYMBOL LONGA PERFECTA REST
-1D1C2 ; [*1057.0020.0002] # MUSICAL SYMBOL LONGA IMPERFECTA REST
-1D1C3 ; [*1058.0020.0002] # MUSICAL SYMBOL BREVIS REST
-1D1C4 ; [*1059.0020.0002] # MUSICAL SYMBOL SEMIBREVIS REST
-1D1C5 ; [*105A.0020.0002] # MUSICAL SYMBOL MINIMA REST
-1D1C6 ; [*105B.0020.0002] # MUSICAL SYMBOL SEMIMINIMA REST
-1D1C7 ; [*105C.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA
-1D1C8 ; [*105D.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA
-1D1C9 ; [*105E.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1
-1D1CA ; [*105F.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA
-1D1CB ; [*1060.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA
-1D1CC ; [*1061.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1
-1D1CD ; [*1062.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2
-1D1CE ; [*1063.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3
-1D1CF ; [*1064.0020.0002] # MUSICAL SYMBOL CROIX
-1D1D0 ; [*1065.0020.0002] # MUSICAL SYMBOL GREGORIAN C CLEF
-1D1D1 ; [*1066.0020.0002] # MUSICAL SYMBOL GREGORIAN F CLEF
-1D1D2 ; [*1067.0020.0002] # MUSICAL SYMBOL SQUARE B
-1D1D3 ; [*1068.0020.0002] # MUSICAL SYMBOL VIRGA
-1D1D4 ; [*1069.0020.0002] # MUSICAL SYMBOL PODATUS
-1D1D5 ; [*106A.0020.0002] # MUSICAL SYMBOL CLIVIS
-1D1D6 ; [*106B.0020.0002] # MUSICAL SYMBOL SCANDICUS
-1D1D7 ; [*106C.0020.0002] # MUSICAL SYMBOL CLIMACUS
-1D1D8 ; [*106D.0020.0002] # MUSICAL SYMBOL TORCULUS
-1D1D9 ; [*106E.0020.0002] # MUSICAL SYMBOL PORRECTUS
-1D1DA ; [*106F.0020.0002] # MUSICAL SYMBOL PORRECTUS FLEXUS
-1D1DB ; [*1070.0020.0002] # MUSICAL SYMBOL SCANDICUS FLEXUS
-1D1DC ; [*1071.0020.0002] # MUSICAL SYMBOL TORCULUS RESUPINUS
-1D1DD ; [*1072.0020.0002] # MUSICAL SYMBOL PES SUBPUNCTIS
-1D200 ; [*1073.0020.0002] # GREEK VOCAL NOTATION SYMBOL-1
-1D201 ; [*1074.0020.0002] # GREEK VOCAL NOTATION SYMBOL-2
-1D202 ; [*1075.0020.0002] # GREEK VOCAL NOTATION SYMBOL-3
-1D203 ; [*1076.0020.0002] # GREEK VOCAL NOTATION SYMBOL-4
-1D204 ; [*1077.0020.0002] # GREEK VOCAL NOTATION SYMBOL-5
-1D205 ; [*1078.0020.0002] # GREEK VOCAL NOTATION SYMBOL-6
-1D206 ; [*1079.0020.0002] # GREEK VOCAL NOTATION SYMBOL-7
-1D207 ; [*107A.0020.0002] # GREEK VOCAL NOTATION SYMBOL-8
-1D208 ; [*107B.0020.0002] # GREEK VOCAL NOTATION SYMBOL-9
-1D209 ; [*107C.0020.0002] # GREEK VOCAL NOTATION SYMBOL-10
-1D20A ; [*107D.0020.0002] # GREEK VOCAL NOTATION SYMBOL-11
-1D20B ; [*107E.0020.0002] # GREEK VOCAL NOTATION SYMBOL-12
-1D20C ; [*107F.0020.0002] # GREEK VOCAL NOTATION SYMBOL-13
-1D20D ; [*1080.0020.0002] # GREEK VOCAL NOTATION SYMBOL-14
-1D20E ; [*1081.0020.0002] # GREEK VOCAL NOTATION SYMBOL-15
-1D20F ; [*1082.0020.0002] # GREEK VOCAL NOTATION SYMBOL-16
-1D210 ; [*1083.0020.0002] # GREEK VOCAL NOTATION SYMBOL-17
-1D211 ; [*1084.0020.0002] # GREEK VOCAL NOTATION SYMBOL-18
-1D212 ; [*1085.0020.0002] # GREEK VOCAL NOTATION SYMBOL-19
-1D213 ; [*1086.0020.0002] # GREEK VOCAL NOTATION SYMBOL-20
-1D214 ; [*1087.0020.0002] # GREEK VOCAL NOTATION SYMBOL-21
-1D215 ; [*1088.0020.0002] # GREEK VOCAL NOTATION SYMBOL-22
-1D216 ; [*1089.0020.0002] # GREEK VOCAL NOTATION SYMBOL-23
-1D217 ; [*108A.0020.0002] # GREEK VOCAL NOTATION SYMBOL-24
-1D218 ; [*108B.0020.0002] # GREEK VOCAL NOTATION SYMBOL-50
-1D219 ; [*108C.0020.0002] # GREEK VOCAL NOTATION SYMBOL-51
-1D21A ; [*108D.0020.0002] # GREEK VOCAL NOTATION SYMBOL-52
-1D21B ; [*108E.0020.0002] # GREEK VOCAL NOTATION SYMBOL-53
-1D21C ; [*108F.0020.0002] # GREEK VOCAL NOTATION SYMBOL-54
-1D21D ; [*1090.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-1
-1D21E ; [*1091.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-2
-1D21F ; [*1092.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-4
-1D220 ; [*1093.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-5
-1D221 ; [*1094.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-7
-1D222 ; [*1095.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-8
-1D223 ; [*1096.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-11
-1D224 ; [*1097.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-12
-1D225 ; [*1098.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-13
-1D226 ; [*1099.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-14
-1D227 ; [*109A.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-17
-1D228 ; [*109B.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-18
-1D229 ; [*109C.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-19
-1D22A ; [*109D.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-23
-1D22B ; [*109E.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-24
-1D22C ; [*109F.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-25
-1D22D ; [*10A0.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-26
-1D22E ; [*10A1.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-27
-1D22F ; [*10A2.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-29
-1D230 ; [*10A3.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-30
-1D231 ; [*10A4.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-32
-1D232 ; [*10A5.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-36
-1D233 ; [*10A6.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-37
-1D234 ; [*10A7.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-38
-1D235 ; [*10A8.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-39
-1D236 ; [*10A9.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-40
-1D237 ; [*10AA.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-42
-1D238 ; [*10AB.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-43
-1D239 ; [*10AC.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-45
-1D23A ; [*10AD.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-47
-1D23B ; [*10AE.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-48
-1D23C ; [*10AF.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-49
-1D23D ; [*10B0.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-50
-1D23E ; [*10B1.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-51
-1D23F ; [*10B2.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-52
-1D240 ; [*10B3.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-53
-1D241 ; [*10B4.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-54
+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
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 ; [*10B5.0020.0002] # GREEK MUSICAL LEIMMA
-1D300 ; [*0DF0.0020.0002] # MONOGRAM FOR EARTH
-1D301 ; [*0DF1.0020.0002] # DIGRAM FOR HEAVENLY EARTH
-1D302 ; [*0DF2.0020.0002] # DIGRAM FOR HUMAN EARTH
-1D303 ; [*0DF3.0020.0002] # DIGRAM FOR EARTHLY HEAVEN
-1D304 ; [*0DF4.0020.0002] # DIGRAM FOR EARTHLY HUMAN
-1D305 ; [*0DF5.0020.0002] # DIGRAM FOR EARTH
-1D306 ; [*0DF6.0020.0002] # TETRAGRAM FOR CENTRE
-1D307 ; [*0DF7.0020.0002] # TETRAGRAM FOR FULL CIRCLE
-1D308 ; [*0DF8.0020.0002] # TETRAGRAM FOR MIRED
-1D309 ; [*0DF9.0020.0002] # TETRAGRAM FOR BARRIER
-1D30A ; [*0DFA.0020.0002] # TETRAGRAM FOR KEEPING SMALL
-1D30B ; [*0DFB.0020.0002] # TETRAGRAM FOR CONTRARIETY
-1D30C ; [*0DFC.0020.0002] # TETRAGRAM FOR ASCENT
-1D30D ; [*0DFD.0020.0002] # TETRAGRAM FOR OPPOSITION
-1D30E ; [*0DFE.0020.0002] # TETRAGRAM FOR BRANCHING OUT
-1D30F ; [*0DFF.0020.0002] # TETRAGRAM FOR DEFECTIVENESS OR DISTORTION
-1D310 ; [*0E00.0020.0002] # TETRAGRAM FOR DIVERGENCE
-1D311 ; [*0E01.0020.0002] # TETRAGRAM FOR YOUTHFULNESS
-1D312 ; [*0E02.0020.0002] # TETRAGRAM FOR INCREASE
-1D313 ; [*0E03.0020.0002] # TETRAGRAM FOR PENETRATION
-1D314 ; [*0E04.0020.0002] # TETRAGRAM FOR REACH
-1D315 ; [*0E05.0020.0002] # TETRAGRAM FOR CONTACT
-1D316 ; [*0E06.0020.0002] # TETRAGRAM FOR HOLDING BACK
-1D317 ; [*0E07.0020.0002] # TETRAGRAM FOR WAITING
-1D318 ; [*0E08.0020.0002] # TETRAGRAM FOR FOLLOWING
-1D319 ; [*0E09.0020.0002] # TETRAGRAM FOR ADVANCE
-1D31A ; [*0E0A.0020.0002] # TETRAGRAM FOR RELEASE
-1D31B ; [*0E0B.0020.0002] # TETRAGRAM FOR RESISTANCE
-1D31C ; [*0E0C.0020.0002] # TETRAGRAM FOR EASE
-1D31D ; [*0E0D.0020.0002] # TETRAGRAM FOR JOY
-1D31E ; [*0E0E.0020.0002] # TETRAGRAM FOR CONTENTION
-1D31F ; [*0E0F.0020.0002] # TETRAGRAM FOR ENDEAVOUR
-1D320 ; [*0E10.0020.0002] # TETRAGRAM FOR DUTIES
-1D321 ; [*0E11.0020.0002] # TETRAGRAM FOR CHANGE
-1D322 ; [*0E12.0020.0002] # TETRAGRAM FOR DECISIVENESS
-1D323 ; [*0E13.0020.0002] # TETRAGRAM FOR BOLD RESOLUTION
-1D324 ; [*0E14.0020.0002] # TETRAGRAM FOR PACKING
-1D325 ; [*0E15.0020.0002] # TETRAGRAM FOR LEGION
-1D326 ; [*0E16.0020.0002] # TETRAGRAM FOR CLOSENESS
-1D327 ; [*0E17.0020.0002] # TETRAGRAM FOR KINSHIP
-1D328 ; [*0E18.0020.0002] # TETRAGRAM FOR GATHERING
-1D329 ; [*0E19.0020.0002] # TETRAGRAM FOR STRENGTH
-1D32A ; [*0E1A.0020.0002] # TETRAGRAM FOR PURITY
-1D32B ; [*0E1B.0020.0002] # TETRAGRAM FOR FULLNESS
-1D32C ; [*0E1C.0020.0002] # TETRAGRAM FOR RESIDENCE
-1D32D ; [*0E1D.0020.0002] # TETRAGRAM FOR LAW OR MODEL
-1D32E ; [*0E1E.0020.0002] # TETRAGRAM FOR RESPONSE
-1D32F ; [*0E1F.0020.0002] # TETRAGRAM FOR GOING TO MEET
-1D330 ; [*0E20.0020.0002] # TETRAGRAM FOR ENCOUNTERS
-1D331 ; [*0E21.0020.0002] # TETRAGRAM FOR STOVE
-1D332 ; [*0E22.0020.0002] # TETRAGRAM FOR GREATNESS
-1D333 ; [*0E23.0020.0002] # TETRAGRAM FOR ENLARGEMENT
-1D334 ; [*0E24.0020.0002] # TETRAGRAM FOR PATTERN
-1D335 ; [*0E25.0020.0002] # TETRAGRAM FOR RITUAL
-1D336 ; [*0E26.0020.0002] # TETRAGRAM FOR FLIGHT
-1D337 ; [*0E27.0020.0002] # TETRAGRAM FOR VASTNESS OR WASTING
-1D338 ; [*0E28.0020.0002] # TETRAGRAM FOR CONSTANCY
-1D339 ; [*0E29.0020.0002] # TETRAGRAM FOR MEASURE
-1D33A ; [*0E2A.0020.0002] # TETRAGRAM FOR ETERNITY
-1D33B ; [*0E2B.0020.0002] # TETRAGRAM FOR UNITY
-1D33C ; [*0E2C.0020.0002] # TETRAGRAM FOR DIMINISHMENT
-1D33D ; [*0E2D.0020.0002] # TETRAGRAM FOR CLOSED MOUTH
-1D33E ; [*0E2E.0020.0002] # TETRAGRAM FOR GUARDEDNESS
-1D33F ; [*0E2F.0020.0002] # TETRAGRAM FOR GATHERING IN
-1D340 ; [*0E30.0020.0002] # TETRAGRAM FOR MASSING
-1D341 ; [*0E31.0020.0002] # TETRAGRAM FOR ACCUMULATION
-1D342 ; [*0E32.0020.0002] # TETRAGRAM FOR EMBELLISHMENT
-1D343 ; [*0E33.0020.0002] # TETRAGRAM FOR DOUBT
-1D344 ; [*0E34.0020.0002] # TETRAGRAM FOR WATCH
-1D345 ; [*0E35.0020.0002] # TETRAGRAM FOR SINKING
-1D346 ; [*0E36.0020.0002] # TETRAGRAM FOR INNER
-1D347 ; [*0E37.0020.0002] # TETRAGRAM FOR DEPARTURE
-1D348 ; [*0E38.0020.0002] # TETRAGRAM FOR DARKENING
-1D349 ; [*0E39.0020.0002] # TETRAGRAM FOR DIMMING
-1D34A ; [*0E3A.0020.0002] # TETRAGRAM FOR EXHAUSTION
-1D34B ; [*0E3B.0020.0002] # TETRAGRAM FOR SEVERANCE
-1D34C ; [*0E3C.0020.0002] # TETRAGRAM FOR STOPPAGE
-1D34D ; [*0E3D.0020.0002] # TETRAGRAM FOR HARDNESS
-1D34E ; [*0E3E.0020.0002] # TETRAGRAM FOR COMPLETION
-1D34F ; [*0E3F.0020.0002] # TETRAGRAM FOR CLOSURE
-1D350 ; [*0E40.0020.0002] # TETRAGRAM FOR FAILURE
-1D351 ; [*0E41.0020.0002] # TETRAGRAM FOR AGGRAVATION
-1D352 ; [*0E42.0020.0002] # TETRAGRAM FOR COMPLIANCE
-1D353 ; [*0E43.0020.0002] # TETRAGRAM FOR ON THE VERGE
-1D354 ; [*0E44.0020.0002] # TETRAGRAM FOR DIFFICULTIES
-1D355 ; [*0E45.0020.0002] # TETRAGRAM FOR LABOURING
-1D356 ; [*0E46.0020.0002] # TETRAGRAM FOR FOSTERING
-1D369 ; [*159B.0020.0002] # COUNTING ROD TENS DIGIT ONE
-1D36A ; [*159C.0020.0002] # COUNTING ROD TENS DIGIT TWO
-1D36B ; [*159D.0020.0002] # COUNTING ROD TENS DIGIT THREE
-1D36C ; [*159E.0020.0002] # COUNTING ROD TENS DIGIT FOUR
-1D36D ; [*159F.0020.0002] # COUNTING ROD TENS DIGIT FIVE
-1D36E ; [*15A0.0020.0002] # COUNTING ROD TENS DIGIT SIX
-1D36F ; [*15A1.0020.0002] # COUNTING ROD TENS DIGIT SEVEN
-1D370 ; [*15A2.0020.0002] # COUNTING ROD TENS DIGIT EIGHT
-1D371 ; [*15A3.0020.0002] # COUNTING ROD TENS DIGIT NINE
-1D6C1 ; [*0595.0020.0005] # MATHEMATICAL BOLD NABLA
-1D6DB ; [*0591.0020.0005] # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
-1D6FB ; [*0595.0020.0005] # MATHEMATICAL ITALIC NABLA
-1D715 ; [*0591.0020.0005] # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
-1D735 ; [*0595.0020.0005] # MATHEMATICAL BOLD ITALIC NABLA
-1D74F ; [*0591.0020.0005] # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
-1D76F ; [*0595.0020.0005] # MATHEMATICAL SANS-SERIF BOLD NABLA
-1D789 ; [*0591.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
-1D7A9 ; [*0595.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
-1D7C3 ; [*0591.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
-1EEF0 ; [*0488.0020.0002] # ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL
-1EEF1 ; [*0489.0020.0002] # ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
-1F000 ; [*10B6.0020.0002] # MAHJONG TILE EAST WIND
-1F001 ; [*10B7.0020.0002] # MAHJONG TILE SOUTH WIND
-1F002 ; [*10B8.0020.0002] # MAHJONG TILE WEST WIND
-1F003 ; [*10B9.0020.0002] # MAHJONG TILE NORTH WIND
-1F004 ; [*10BA.0020.0002] # MAHJONG TILE RED DRAGON
-1F005 ; [*10BB.0020.0002] # MAHJONG TILE GREEN DRAGON
-1F006 ; [*10BC.0020.0002] # MAHJONG TILE WHITE DRAGON
-1F007 ; [*10BD.0020.0002] # MAHJONG TILE ONE OF CHARACTERS
-1F008 ; [*10BE.0020.0002] # MAHJONG TILE TWO OF CHARACTERS
-1F009 ; [*10BF.0020.0002] # MAHJONG TILE THREE OF CHARACTERS
-1F00A ; [*10C0.0020.0002] # MAHJONG TILE FOUR OF CHARACTERS
-1F00B ; [*10C1.0020.0002] # MAHJONG TILE FIVE OF CHARACTERS
-1F00C ; [*10C2.0020.0002] # MAHJONG TILE SIX OF CHARACTERS
-1F00D ; [*10C3.0020.0002] # MAHJONG TILE SEVEN OF CHARACTERS
-1F00E ; [*10C4.0020.0002] # MAHJONG TILE EIGHT OF CHARACTERS
-1F00F ; [*10C5.0020.0002] # MAHJONG TILE NINE OF CHARACTERS
-1F010 ; [*10C6.0020.0002] # MAHJONG TILE ONE OF BAMBOOS
-1F011 ; [*10C7.0020.0002] # MAHJONG TILE TWO OF BAMBOOS
-1F012 ; [*10C8.0020.0002] # MAHJONG TILE THREE OF BAMBOOS
-1F013 ; [*10C9.0020.0002] # MAHJONG TILE FOUR OF BAMBOOS
-1F014 ; [*10CA.0020.0002] # MAHJONG TILE FIVE OF BAMBOOS
-1F015 ; [*10CB.0020.0002] # MAHJONG TILE SIX OF BAMBOOS
-1F016 ; [*10CC.0020.0002] # MAHJONG TILE SEVEN OF BAMBOOS
-1F017 ; [*10CD.0020.0002] # MAHJONG TILE EIGHT OF BAMBOOS
-1F018 ; [*10CE.0020.0002] # MAHJONG TILE NINE OF BAMBOOS
-1F019 ; [*10CF.0020.0002] # MAHJONG TILE ONE OF CIRCLES
-1F01A ; [*10D0.0020.0002] # MAHJONG TILE TWO OF CIRCLES
-1F01B ; [*10D1.0020.0002] # MAHJONG TILE THREE OF CIRCLES
-1F01C ; [*10D2.0020.0002] # MAHJONG TILE FOUR OF CIRCLES
-1F01D ; [*10D3.0020.0002] # MAHJONG TILE FIVE OF CIRCLES
-1F01E ; [*10D4.0020.0002] # MAHJONG TILE SIX OF CIRCLES
-1F01F ; [*10D5.0020.0002] # MAHJONG TILE SEVEN OF CIRCLES
-1F020 ; [*10D6.0020.0002] # MAHJONG TILE EIGHT OF CIRCLES
-1F021 ; [*10D7.0020.0002] # MAHJONG TILE NINE OF CIRCLES
-1F022 ; [*10D8.0020.0002] # MAHJONG TILE PLUM
-1F023 ; [*10D9.0020.0002] # MAHJONG TILE ORCHID
-1F024 ; [*10DA.0020.0002] # MAHJONG TILE BAMBOO
-1F025 ; [*10DB.0020.0002] # MAHJONG TILE CHRYSANTHEMUM
-1F026 ; [*10DC.0020.0002] # MAHJONG TILE SPRING
-1F027 ; [*10DD.0020.0002] # MAHJONG TILE SUMMER
-1F028 ; [*10DE.0020.0002] # MAHJONG TILE AUTUMN
-1F029 ; [*10DF.0020.0002] # MAHJONG TILE WINTER
-1F02A ; [*10E0.0020.0002] # MAHJONG TILE JOKER
-1F02B ; [*10E1.0020.0002] # MAHJONG TILE BACK
-1F030 ; [*10E2.0020.0002] # DOMINO TILE HORIZONTAL BACK
-1F031 ; [*10E3.0020.0002] # DOMINO TILE HORIZONTAL-00-00
-1F032 ; [*10E4.0020.0002] # DOMINO TILE HORIZONTAL-00-01
-1F033 ; [*10E5.0020.0002] # DOMINO TILE HORIZONTAL-00-02
-1F034 ; [*10E6.0020.0002] # DOMINO TILE HORIZONTAL-00-03
-1F035 ; [*10E7.0020.0002] # DOMINO TILE HORIZONTAL-00-04
-1F036 ; [*10E8.0020.0002] # DOMINO TILE HORIZONTAL-00-05
-1F037 ; [*10E9.0020.0002] # DOMINO TILE HORIZONTAL-00-06
-1F038 ; [*10EA.0020.0002] # DOMINO TILE HORIZONTAL-01-00
-1F039 ; [*10EB.0020.0002] # DOMINO TILE HORIZONTAL-01-01
-1F03A ; [*10EC.0020.0002] # DOMINO TILE HORIZONTAL-01-02
-1F03B ; [*10ED.0020.0002] # DOMINO TILE HORIZONTAL-01-03
-1F03C ; [*10EE.0020.0002] # DOMINO TILE HORIZONTAL-01-04
-1F03D ; [*10EF.0020.0002] # DOMINO TILE HORIZONTAL-01-05
-1F03E ; [*10F0.0020.0002] # DOMINO TILE HORIZONTAL-01-06
-1F03F ; [*10F1.0020.0002] # DOMINO TILE HORIZONTAL-02-00
-1F040 ; [*10F2.0020.0002] # DOMINO TILE HORIZONTAL-02-01
-1F041 ; [*10F3.0020.0002] # DOMINO TILE HORIZONTAL-02-02
-1F042 ; [*10F4.0020.0002] # DOMINO TILE HORIZONTAL-02-03
-1F043 ; [*10F5.0020.0002] # DOMINO TILE HORIZONTAL-02-04
-1F044 ; [*10F6.0020.0002] # DOMINO TILE HORIZONTAL-02-05
-1F045 ; [*10F7.0020.0002] # DOMINO TILE HORIZONTAL-02-06
-1F046 ; [*10F8.0020.0002] # DOMINO TILE HORIZONTAL-03-00
-1F047 ; [*10F9.0020.0002] # DOMINO TILE HORIZONTAL-03-01
-1F048 ; [*10FA.0020.0002] # DOMINO TILE HORIZONTAL-03-02
-1F049 ; [*10FB.0020.0002] # DOMINO TILE HORIZONTAL-03-03
-1F04A ; [*10FC.0020.0002] # DOMINO TILE HORIZONTAL-03-04
-1F04B ; [*10FD.0020.0002] # DOMINO TILE HORIZONTAL-03-05
-1F04C ; [*10FE.0020.0002] # DOMINO TILE HORIZONTAL-03-06
-1F04D ; [*10FF.0020.0002] # DOMINO TILE HORIZONTAL-04-00
-1F04E ; [*1100.0020.0002] # DOMINO TILE HORIZONTAL-04-01
-1F04F ; [*1101.0020.0002] # DOMINO TILE HORIZONTAL-04-02
-1F050 ; [*1102.0020.0002] # DOMINO TILE HORIZONTAL-04-03
-1F051 ; [*1103.0020.0002] # DOMINO TILE HORIZONTAL-04-04
-1F052 ; [*1104.0020.0002] # DOMINO TILE HORIZONTAL-04-05
-1F053 ; [*1105.0020.0002] # DOMINO TILE HORIZONTAL-04-06
-1F054 ; [*1106.0020.0002] # DOMINO TILE HORIZONTAL-05-00
-1F055 ; [*1107.0020.0002] # DOMINO TILE HORIZONTAL-05-01
-1F056 ; [*1108.0020.0002] # DOMINO TILE HORIZONTAL-05-02
-1F057 ; [*1109.0020.0002] # DOMINO TILE HORIZONTAL-05-03
-1F058 ; [*110A.0020.0002] # DOMINO TILE HORIZONTAL-05-04
-1F059 ; [*110B.0020.0002] # DOMINO TILE HORIZONTAL-05-05
-1F05A ; [*110C.0020.0002] # DOMINO TILE HORIZONTAL-05-06
-1F05B ; [*110D.0020.0002] # DOMINO TILE HORIZONTAL-06-00
-1F05C ; [*110E.0020.0002] # DOMINO TILE HORIZONTAL-06-01
-1F05D ; [*110F.0020.0002] # DOMINO TILE HORIZONTAL-06-02
-1F05E ; [*1110.0020.0002] # DOMINO TILE HORIZONTAL-06-03
-1F05F ; [*1111.0020.0002] # DOMINO TILE HORIZONTAL-06-04
-1F060 ; [*1112.0020.0002] # DOMINO TILE HORIZONTAL-06-05
-1F061 ; [*1113.0020.0002] # DOMINO TILE HORIZONTAL-06-06
-1F062 ; [*1114.0020.0002] # DOMINO TILE VERTICAL BACK
-1F063 ; [*1115.0020.0002] # DOMINO TILE VERTICAL-00-00
-1F064 ; [*1116.0020.0002] # DOMINO TILE VERTICAL-00-01
-1F065 ; [*1117.0020.0002] # DOMINO TILE VERTICAL-00-02
-1F066 ; [*1118.0020.0002] # DOMINO TILE VERTICAL-00-03
-1F067 ; [*1119.0020.0002] # DOMINO TILE VERTICAL-00-04
-1F068 ; [*111A.0020.0002] # DOMINO TILE VERTICAL-00-05
-1F069 ; [*111B.0020.0002] # DOMINO TILE VERTICAL-00-06
-1F06A ; [*111C.0020.0002] # DOMINO TILE VERTICAL-01-00
-1F06B ; [*111D.0020.0002] # DOMINO TILE VERTICAL-01-01
-1F06C ; [*111E.0020.0002] # DOMINO TILE VERTICAL-01-02
-1F06D ; [*111F.0020.0002] # DOMINO TILE VERTICAL-01-03
-1F06E ; [*1120.0020.0002] # DOMINO TILE VERTICAL-01-04
-1F06F ; [*1121.0020.0002] # DOMINO TILE VERTICAL-01-05
-1F070 ; [*1122.0020.0002] # DOMINO TILE VERTICAL-01-06
-1F071 ; [*1123.0020.0002] # DOMINO TILE VERTICAL-02-00
-1F072 ; [*1124.0020.0002] # DOMINO TILE VERTICAL-02-01
-1F073 ; [*1125.0020.0002] # DOMINO TILE VERTICAL-02-02
-1F074 ; [*1126.0020.0002] # DOMINO TILE VERTICAL-02-03
-1F075 ; [*1127.0020.0002] # DOMINO TILE VERTICAL-02-04
-1F076 ; [*1128.0020.0002] # DOMINO TILE VERTICAL-02-05
-1F077 ; [*1129.0020.0002] # DOMINO TILE VERTICAL-02-06
-1F078 ; [*112A.0020.0002] # DOMINO TILE VERTICAL-03-00
-1F079 ; [*112B.0020.0002] # DOMINO TILE VERTICAL-03-01
-1F07A ; [*112C.0020.0002] # DOMINO TILE VERTICAL-03-02
-1F07B ; [*112D.0020.0002] # DOMINO TILE VERTICAL-03-03
-1F07C ; [*112E.0020.0002] # DOMINO TILE VERTICAL-03-04
-1F07D ; [*112F.0020.0002] # DOMINO TILE VERTICAL-03-05
-1F07E ; [*1130.0020.0002] # DOMINO TILE VERTICAL-03-06
-1F07F ; [*1131.0020.0002] # DOMINO TILE VERTICAL-04-00
-1F080 ; [*1132.0020.0002] # DOMINO TILE VERTICAL-04-01
-1F081 ; [*1133.0020.0002] # DOMINO TILE VERTICAL-04-02
-1F082 ; [*1134.0020.0002] # DOMINO TILE VERTICAL-04-03
-1F083 ; [*1135.0020.0002] # DOMINO TILE VERTICAL-04-04
-1F084 ; [*1136.0020.0002] # DOMINO TILE VERTICAL-04-05
-1F085 ; [*1137.0020.0002] # DOMINO TILE VERTICAL-04-06
-1F086 ; [*1138.0020.0002] # DOMINO TILE VERTICAL-05-00
-1F087 ; [*1139.0020.0002] # DOMINO TILE VERTICAL-05-01
-1F088 ; [*113A.0020.0002] # DOMINO TILE VERTICAL-05-02
-1F089 ; [*113B.0020.0002] # DOMINO TILE VERTICAL-05-03
-1F08A ; [*113C.0020.0002] # DOMINO TILE VERTICAL-05-04
-1F08B ; [*113D.0020.0002] # DOMINO TILE VERTICAL-05-05
-1F08C ; [*113E.0020.0002] # DOMINO TILE VERTICAL-05-06
-1F08D ; [*113F.0020.0002] # DOMINO TILE VERTICAL-06-00
-1F08E ; [*1140.0020.0002] # DOMINO TILE VERTICAL-06-01
-1F08F ; [*1141.0020.0002] # DOMINO TILE VERTICAL-06-02
-1F090 ; [*1142.0020.0002] # DOMINO TILE VERTICAL-06-03
-1F091 ; [*1143.0020.0002] # DOMINO TILE VERTICAL-06-04
-1F092 ; [*1144.0020.0002] # DOMINO TILE VERTICAL-06-05
-1F093 ; [*1145.0020.0002] # DOMINO TILE VERTICAL-06-06
-1F0A0 ; [*1146.0020.0002] # PLAYING CARD BACK
-1F0A1 ; [*1147.0020.0002] # PLAYING CARD ACE OF SPADES
-1F0A2 ; [*1148.0020.0002] # PLAYING CARD TWO OF SPADES
-1F0A3 ; [*1149.0020.0002] # PLAYING CARD THREE OF SPADES
-1F0A4 ; [*114A.0020.0002] # PLAYING CARD FOUR OF SPADES
-1F0A5 ; [*114B.0020.0002] # PLAYING CARD FIVE OF SPADES
-1F0A6 ; [*114C.0020.0002] # PLAYING CARD SIX OF SPADES
-1F0A7 ; [*114D.0020.0002] # PLAYING CARD SEVEN OF SPADES
-1F0A8 ; [*114E.0020.0002] # PLAYING CARD EIGHT OF SPADES
-1F0A9 ; [*114F.0020.0002] # PLAYING CARD NINE OF SPADES
-1F0AA ; [*1150.0020.0002] # PLAYING CARD TEN OF SPADES
-1F0AB ; [*1151.0020.0002] # PLAYING CARD JACK OF SPADES
-1F0AC ; [*1152.0020.0002] # PLAYING CARD KNIGHT OF SPADES
-1F0AD ; [*1153.0020.0002] # PLAYING CARD QUEEN OF SPADES
-1F0AE ; [*1154.0020.0002] # PLAYING CARD KING OF SPADES
-1F0B1 ; [*1155.0020.0002] # PLAYING CARD ACE OF HEARTS
-1F0B2 ; [*1156.0020.0002] # PLAYING CARD TWO OF HEARTS
-1F0B3 ; [*1157.0020.0002] # PLAYING CARD THREE OF HEARTS
-1F0B4 ; [*1158.0020.0002] # PLAYING CARD FOUR OF HEARTS
-1F0B5 ; [*1159.0020.0002] # PLAYING CARD FIVE OF HEARTS
-1F0B6 ; [*115A.0020.0002] # PLAYING CARD SIX OF HEARTS
-1F0B7 ; [*115B.0020.0002] # PLAYING CARD SEVEN OF HEARTS
-1F0B8 ; [*115C.0020.0002] # PLAYING CARD EIGHT OF HEARTS
-1F0B9 ; [*115D.0020.0002] # PLAYING CARD NINE OF HEARTS
-1F0BA ; [*115E.0020.0002] # PLAYING CARD TEN OF HEARTS
-1F0BB ; [*115F.0020.0002] # PLAYING CARD JACK OF HEARTS
-1F0BC ; [*1160.0020.0002] # PLAYING CARD KNIGHT OF HEARTS
-1F0BD ; [*1161.0020.0002] # PLAYING CARD QUEEN OF HEARTS
-1F0BE ; [*1162.0020.0002] # PLAYING CARD KING OF HEARTS
-1F0C1 ; [*1163.0020.0002] # PLAYING CARD ACE OF DIAMONDS
-1F0C2 ; [*1164.0020.0002] # PLAYING CARD TWO OF DIAMONDS
-1F0C3 ; [*1165.0020.0002] # PLAYING CARD THREE OF DIAMONDS
-1F0C4 ; [*1166.0020.0002] # PLAYING CARD FOUR OF DIAMONDS
-1F0C5 ; [*1167.0020.0002] # PLAYING CARD FIVE OF DIAMONDS
-1F0C6 ; [*1168.0020.0002] # PLAYING CARD SIX OF DIAMONDS
-1F0C7 ; [*1169.0020.0002] # PLAYING CARD SEVEN OF DIAMONDS
-1F0C8 ; [*116A.0020.0002] # PLAYING CARD EIGHT OF DIAMONDS
-1F0C9 ; [*116B.0020.0002] # PLAYING CARD NINE OF DIAMONDS
-1F0CA ; [*116C.0020.0002] # PLAYING CARD TEN OF DIAMONDS
-1F0CB ; [*116D.0020.0002] # PLAYING CARD JACK OF DIAMONDS
-1F0CC ; [*116E.0020.0002] # PLAYING CARD KNIGHT OF DIAMONDS
-1F0CD ; [*116F.0020.0002] # PLAYING CARD QUEEN OF DIAMONDS
-1F0CE ; [*1170.0020.0002] # PLAYING CARD KING OF DIAMONDS
-1F0CF ; [*1171.0020.0002] # PLAYING CARD BLACK JOKER
-1F0D1 ; [*1172.0020.0002] # PLAYING CARD ACE OF CLUBS
-1F0D2 ; [*1173.0020.0002] # PLAYING CARD TWO OF CLUBS
-1F0D3 ; [*1174.0020.0002] # PLAYING CARD THREE OF CLUBS
-1F0D4 ; [*1175.0020.0002] # PLAYING CARD FOUR OF CLUBS
-1F0D5 ; [*1176.0020.0002] # PLAYING CARD FIVE OF CLUBS
-1F0D6 ; [*1177.0020.0002] # PLAYING CARD SIX OF CLUBS
-1F0D7 ; [*1178.0020.0002] # PLAYING CARD SEVEN OF CLUBS
-1F0D8 ; [*1179.0020.0002] # PLAYING CARD EIGHT OF CLUBS
-1F0D9 ; [*117A.0020.0002] # PLAYING CARD NINE OF CLUBS
-1F0DA ; [*117B.0020.0002] # PLAYING CARD TEN OF CLUBS
-1F0DB ; [*117C.0020.0002] # PLAYING CARD JACK OF CLUBS
-1F0DC ; [*117D.0020.0002] # PLAYING CARD KNIGHT OF CLUBS
-1F0DD ; [*117E.0020.0002] # PLAYING CARD QUEEN OF CLUBS
-1F0DE ; [*117F.0020.0002] # PLAYING CARD KING OF CLUBS
-1F0DF ; [*1180.0020.0002] # PLAYING CARD WHITE JOKER
-1F1E6 ; [*0985.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER A
-1F1E7 ; [*0986.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER B
-1F1E8 ; [*0987.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER C
-1F1E9 ; [*0988.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER D
-1F1EA ; [*0989.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER E
-1F1EB ; [*098A.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER F
-1F1EC ; [*098B.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER G
-1F1ED ; [*098C.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER H
-1F1EE ; [*098D.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER I
-1F1EF ; [*098E.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER J
-1F1F0 ; [*098F.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER K
-1F1F1 ; [*0990.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER L
-1F1F2 ; [*0991.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER M
-1F1F3 ; [*0992.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER N
-1F1F4 ; [*0993.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER O
-1F1F5 ; [*0994.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER P
-1F1F6 ; [*0995.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Q
-1F1F7 ; [*0996.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER R
-1F1F8 ; [*0997.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER S
-1F1F9 ; [*0998.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER T
-1F1FA ; [*0999.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER U
-1F1FB ; [*099A.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER V
-1F1FC ; [*099B.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER W
-1F1FD ; [*099C.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER X
-1F1FE ; [*099D.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Y
-1F1FF ; [*099E.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Z
-1F300 ; [*1181.0020.0002] # CYCLONE
-1F301 ; [*1182.0020.0002] # FOGGY
-1F302 ; [*1183.0020.0002] # CLOSED UMBRELLA
-1F303 ; [*1184.0020.0002] # NIGHT WITH STARS
-1F304 ; [*1185.0020.0002] # SUNRISE OVER MOUNTAINS
-1F305 ; [*1186.0020.0002] # SUNRISE
-1F306 ; [*1187.0020.0002] # CITYSCAPE AT DUSK
-1F307 ; [*1188.0020.0002] # SUNSET OVER BUILDINGS
-1F308 ; [*1189.0020.0002] # RAINBOW
-1F309 ; [*118A.0020.0002] # BRIDGE AT NIGHT
-1F30A ; [*118B.0020.0002] # WATER WAVE
-1F30B ; [*118C.0020.0002] # VOLCANO
-1F30C ; [*118D.0020.0002] # MILKY WAY
-1F30D ; [*118E.0020.0002] # EARTH GLOBE EUROPE-AFRICA
-1F30E ; [*118F.0020.0002] # EARTH GLOBE AMERICAS
-1F30F ; [*1190.0020.0002] # EARTH GLOBE ASIA-AUSTRALIA
-1F310 ; [*1191.0020.0002] # GLOBE WITH MERIDIANS
-1F311 ; [*1192.0020.0002] # NEW MOON SYMBOL
-1F312 ; [*1193.0020.0002] # WAXING CRESCENT MOON SYMBOL
-1F313 ; [*1194.0020.0002] # FIRST QUARTER MOON SYMBOL
-1F314 ; [*1195.0020.0002] # WAXING GIBBOUS MOON SYMBOL
-1F315 ; [*1196.0020.0002] # FULL MOON SYMBOL
-1F316 ; [*1197.0020.0002] # WANING GIBBOUS MOON SYMBOL
-1F317 ; [*1198.0020.0002] # LAST QUARTER MOON SYMBOL
-1F318 ; [*1199.0020.0002] # WANING CRESCENT MOON SYMBOL
-1F319 ; [*119A.0020.0002] # CRESCENT MOON
-1F31A ; [*119B.0020.0002] # NEW MOON WITH FACE
-1F31B ; [*119C.0020.0002] # FIRST QUARTER MOON WITH FACE
-1F31C ; [*119D.0020.0002] # LAST QUARTER MOON WITH FACE
-1F31D ; [*119E.0020.0002] # FULL MOON WITH FACE
-1F31E ; [*119F.0020.0002] # SUN WITH FACE
-1F31F ; [*11A0.0020.0002] # GLOWING STAR
-1F320 ; [*11A1.0020.0002] # SHOOTING STAR
-1F330 ; [*11A2.0020.0002] # CHESTNUT
-1F331 ; [*11A3.0020.0002] # SEEDLING
-1F332 ; [*11A4.0020.0002] # EVERGREEN TREE
-1F333 ; [*11A5.0020.0002] # DECIDUOUS TREE
-1F334 ; [*11A6.0020.0002] # PALM TREE
-1F335 ; [*11A7.0020.0002] # CACTUS
-1F337 ; [*11A8.0020.0002] # TULIP
-1F338 ; [*11A9.0020.0002] # CHERRY BLOSSOM
-1F339 ; [*11AA.0020.0002] # ROSE
-1F33A ; [*11AB.0020.0002] # HIBISCUS
-1F33B ; [*11AC.0020.0002] # SUNFLOWER
-1F33C ; [*11AD.0020.0002] # BLOSSOM
-1F33D ; [*11AE.0020.0002] # EAR OF MAIZE
-1F33E ; [*11AF.0020.0002] # EAR OF RICE
-1F33F ; [*11B0.0020.0002] # HERB
-1F340 ; [*11B1.0020.0002] # FOUR LEAF CLOVER
-1F341 ; [*11B2.0020.0002] # MAPLE LEAF
-1F342 ; [*11B3.0020.0002] # FALLEN LEAF
-1F343 ; [*11B4.0020.0002] # LEAF FLUTTERING IN WIND
-1F344 ; [*11B5.0020.0002] # MUSHROOM
-1F345 ; [*11B6.0020.0002] # TOMATO
-1F346 ; [*11B7.0020.0002] # AUBERGINE
-1F347 ; [*11B8.0020.0002] # GRAPES
-1F348 ; [*11B9.0020.0002] # MELON
-1F349 ; [*11BA.0020.0002] # WATERMELON
-1F34A ; [*11BB.0020.0002] # TANGERINE
-1F34B ; [*11BC.0020.0002] # LEMON
-1F34C ; [*11BD.0020.0002] # BANANA
-1F34D ; [*11BE.0020.0002] # PINEAPPLE
-1F34E ; [*11BF.0020.0002] # RED APPLE
-1F34F ; [*11C0.0020.0002] # GREEN APPLE
-1F350 ; [*11C1.0020.0002] # PEAR
-1F351 ; [*11C2.0020.0002] # PEACH
-1F352 ; [*11C3.0020.0002] # CHERRIES
-1F353 ; [*11C4.0020.0002] # STRAWBERRY
-1F354 ; [*11C5.0020.0002] # HAMBURGER
-1F355 ; [*11C6.0020.0002] # SLICE OF PIZZA
-1F356 ; [*11C7.0020.0002] # MEAT ON BONE
-1F357 ; [*11C8.0020.0002] # POULTRY LEG
-1F358 ; [*11C9.0020.0002] # RICE CRACKER
-1F359 ; [*11CA.0020.0002] # RICE BALL
-1F35A ; [*11CB.0020.0002] # COOKED RICE
-1F35B ; [*11CC.0020.0002] # CURRY AND RICE
-1F35C ; [*11CD.0020.0002] # STEAMING BOWL
-1F35D ; [*11CE.0020.0002] # SPAGHETTI
-1F35E ; [*11CF.0020.0002] # BREAD
-1F35F ; [*11D0.0020.0002] # FRENCH FRIES
-1F360 ; [*11D1.0020.0002] # ROASTED SWEET POTATO
-1F361 ; [*11D2.0020.0002] # DANGO
-1F362 ; [*11D3.0020.0002] # ODEN
-1F363 ; [*11D4.0020.0002] # SUSHI
-1F364 ; [*11D5.0020.0002] # FRIED SHRIMP
-1F365 ; [*11D6.0020.0002] # FISH CAKE WITH SWIRL DESIGN
-1F366 ; [*11D7.0020.0002] # SOFT ICE CREAM
-1F367 ; [*11D8.0020.0002] # SHAVED ICE
-1F368 ; [*11D9.0020.0002] # ICE CREAM
-1F369 ; [*11DA.0020.0002] # DOUGHNUT
-1F36A ; [*11DB.0020.0002] # COOKIE
-1F36B ; [*11DC.0020.0002] # CHOCOLATE BAR
-1F36C ; [*11DD.0020.0002] # CANDY
-1F36D ; [*11DE.0020.0002] # LOLLIPOP
-1F36E ; [*11DF.0020.0002] # CUSTARD
-1F36F ; [*11E0.0020.0002] # HONEY POT
-1F370 ; [*11E1.0020.0002] # SHORTCAKE
-1F371 ; [*11E2.0020.0002] # BENTO BOX
-1F372 ; [*11E3.0020.0002] # POT OF FOOD
-1F373 ; [*11E4.0020.0002] # COOKING
-1F374 ; [*11E5.0020.0002] # FORK AND KNIFE
-1F375 ; [*11E6.0020.0002] # TEACUP WITHOUT HANDLE
-1F376 ; [*11E7.0020.0002] # SAKE BOTTLE AND CUP
-1F377 ; [*11E8.0020.0002] # WINE GLASS
-1F378 ; [*11E9.0020.0002] # COCKTAIL GLASS
-1F379 ; [*11EA.0020.0002] # TROPICAL DRINK
-1F37A ; [*11EB.0020.0002] # BEER MUG
-1F37B ; [*11EC.0020.0002] # CLINKING BEER MUGS
-1F37C ; [*11ED.0020.0002] # BABY BOTTLE
-1F380 ; [*11EE.0020.0002] # RIBBON
-1F381 ; [*11EF.0020.0002] # WRAPPED PRESENT
-1F382 ; [*11F0.0020.0002] # BIRTHDAY CAKE
-1F383 ; [*11F1.0020.0002] # JACK-O-LANTERN
-1F384 ; [*11F2.0020.0002] # CHRISTMAS TREE
-1F385 ; [*11F3.0020.0002] # FATHER CHRISTMAS
-1F386 ; [*11F4.0020.0002] # FIREWORKS
-1F387 ; [*11F5.0020.0002] # FIREWORK SPARKLER
-1F388 ; [*11F6.0020.0002] # BALLOON
-1F389 ; [*11F7.0020.0002] # PARTY POPPER
-1F38A ; [*11F8.0020.0002] # CONFETTI BALL
-1F38B ; [*11F9.0020.0002] # TANABATA TREE
-1F38C ; [*11FA.0020.0002] # CROSSED FLAGS
-1F38D ; [*11FB.0020.0002] # PINE DECORATION
-1F38E ; [*11FC.0020.0002] # JAPANESE DOLLS
-1F38F ; [*11FD.0020.0002] # CARP STREAMER
-1F390 ; [*11FE.0020.0002] # WIND CHIME
-1F391 ; [*11FF.0020.0002] # MOON VIEWING CEREMONY
-1F392 ; [*1200.0020.0002] # SCHOOL SATCHEL
-1F393 ; [*1201.0020.0002] # GRADUATION CAP
-1F3A0 ; [*1202.0020.0002] # CAROUSEL HORSE
-1F3A1 ; [*1203.0020.0002] # FERRIS WHEEL
-1F3A2 ; [*1204.0020.0002] # ROLLER COASTER
-1F3A3 ; [*1205.0020.0002] # FISHING POLE AND FISH
-1F3A4 ; [*1206.0020.0002] # MICROPHONE
-1F3A5 ; [*1207.0020.0002] # MOVIE CAMERA
-1F3A6 ; [*1208.0020.0002] # CINEMA
-1F3A7 ; [*1209.0020.0002] # HEADPHONE
-1F3A8 ; [*120A.0020.0002] # ARTIST PALETTE
-1F3A9 ; [*120B.0020.0002] # TOP HAT
-1F3AA ; [*120C.0020.0002] # CIRCUS TENT
-1F3AB ; [*120D.0020.0002] # TICKET
-1F3AC ; [*120E.0020.0002] # CLAPPER BOARD
-1F3AD ; [*120F.0020.0002] # PERFORMING ARTS
-1F3AE ; [*1210.0020.0002] # VIDEO GAME
-1F3AF ; [*1211.0020.0002] # DIRECT HIT
-1F3B0 ; [*1212.0020.0002] # SLOT MACHINE
-1F3B1 ; [*1213.0020.0002] # BILLIARDS
-1F3B2 ; [*1214.0020.0002] # GAME DIE
-1F3B3 ; [*1215.0020.0002] # BOWLING
-1F3B4 ; [*1216.0020.0002] # FLOWER PLAYING CARDS
-1F3B5 ; [*1217.0020.0002] # MUSICAL NOTE
-1F3B6 ; [*1218.0020.0002] # MULTIPLE MUSICAL NOTES
-1F3B7 ; [*1219.0020.0002] # SAXOPHONE
-1F3B8 ; [*121A.0020.0002] # GUITAR
-1F3B9 ; [*121B.0020.0002] # MUSICAL KEYBOARD
-1F3BA ; [*121C.0020.0002] # TRUMPET
-1F3BB ; [*121D.0020.0002] # VIOLIN
-1F3BC ; [*121E.0020.0002] # MUSICAL SCORE
-1F3BD ; [*121F.0020.0002] # RUNNING SHIRT WITH SASH
-1F3BE ; [*1220.0020.0002] # TENNIS RACQUET AND BALL
-1F3BF ; [*1221.0020.0002] # SKI AND SKI BOOT
-1F3C0 ; [*1222.0020.0002] # BASKETBALL AND HOOP
-1F3C1 ; [*1223.0020.0002] # CHEQUERED FLAG
-1F3C2 ; [*1224.0020.0002] # SNOWBOARDER
-1F3C3 ; [*1225.0020.0002] # RUNNER
-1F3C4 ; [*1226.0020.0002] # SURFER
-1F3C6 ; [*1227.0020.0002] # TROPHY
-1F3C7 ; [*1228.0020.0002] # HORSE RACING
-1F3C8 ; [*1229.0020.0002] # AMERICAN FOOTBALL
-1F3C9 ; [*122A.0020.0002] # RUGBY FOOTBALL
-1F3CA ; [*122B.0020.0002] # SWIMMER
-1F3E0 ; [*122C.0020.0002] # HOUSE BUILDING
-1F3E1 ; [*122D.0020.0002] # HOUSE WITH GARDEN
-1F3E2 ; [*122E.0020.0002] # OFFICE BUILDING
-1F3E3 ; [*122F.0020.0002] # JAPANESE POST OFFICE
-1F3E4 ; [*1230.0020.0002] # EUROPEAN POST OFFICE
-1F3E5 ; [*1231.0020.0002] # HOSPITAL
-1F3E6 ; [*1232.0020.0002] # BANK
-1F3E7 ; [*1233.0020.0002] # AUTOMATED TELLER MACHINE
-1F3E8 ; [*1234.0020.0002] # HOTEL
-1F3E9 ; [*1235.0020.0002] # LOVE HOTEL
-1F3EA ; [*1236.0020.0002] # CONVENIENCE STORE
-1F3EB ; [*1237.0020.0002] # SCHOOL
-1F3EC ; [*1238.0020.0002] # DEPARTMENT STORE
-1F3ED ; [*1239.0020.0002] # FACTORY
-1F3EE ; [*123A.0020.0002] # IZAKAYA LANTERN
-1F3EF ; [*123B.0020.0002] # JAPANESE CASTLE
-1F3F0 ; [*123C.0020.0002] # EUROPEAN CASTLE
-1F400 ; [*123D.0020.0002] # RAT
-1F401 ; [*123E.0020.0002] # MOUSE
-1F402 ; [*123F.0020.0002] # OX
-1F403 ; [*1240.0020.0002] # WATER BUFFALO
-1F404 ; [*1241.0020.0002] # COW
-1F405 ; [*1242.0020.0002] # TIGER
-1F406 ; [*1243.0020.0002] # LEOPARD
-1F407 ; [*1244.0020.0002] # RABBIT
-1F408 ; [*1245.0020.0002] # CAT
-1F409 ; [*1246.0020.0002] # DRAGON
-1F40A ; [*1247.0020.0002] # CROCODILE
-1F40B ; [*1248.0020.0002] # WHALE
-1F40C ; [*1249.0020.0002] # SNAIL
-1F40D ; [*124A.0020.0002] # SNAKE
-1F40E ; [*124B.0020.0002] # HORSE
-1F40F ; [*124C.0020.0002] # RAM
-1F410 ; [*124D.0020.0002] # GOAT
-1F411 ; [*124E.0020.0002] # SHEEP
-1F412 ; [*124F.0020.0002] # MONKEY
-1F413 ; [*1250.0020.0002] # ROOSTER
-1F414 ; [*1251.0020.0002] # CHICKEN
-1F415 ; [*1252.0020.0002] # DOG
-1F416 ; [*1253.0020.0002] # PIG
-1F417 ; [*1254.0020.0002] # BOAR
-1F418 ; [*1255.0020.0002] # ELEPHANT
-1F419 ; [*1256.0020.0002] # OCTOPUS
-1F41A ; [*1257.0020.0002] # SPIRAL SHELL
-1F41B ; [*1258.0020.0002] # BUG
-1F41C ; [*1259.0020.0002] # ANT
-1F41D ; [*125A.0020.0002] # HONEYBEE
-1F41E ; [*125B.0020.0002] # LADY BEETLE
-1F41F ; [*125C.0020.0002] # FISH
-1F420 ; [*125D.0020.0002] # TROPICAL FISH
-1F421 ; [*125E.0020.0002] # BLOWFISH
-1F422 ; [*125F.0020.0002] # TURTLE
-1F423 ; [*1260.0020.0002] # HATCHING CHICK
-1F424 ; [*1261.0020.0002] # BABY CHICK
-1F425 ; [*1262.0020.0002] # FRONT-FACING BABY CHICK
-1F426 ; [*1263.0020.0002] # BIRD
-1F427 ; [*1264.0020.0002] # PENGUIN
-1F428 ; [*1265.0020.0002] # KOALA
-1F429 ; [*1266.0020.0002] # POODLE
-1F42A ; [*1267.0020.0002] # DROMEDARY CAMEL
-1F42B ; [*1268.0020.0002] # BACTRIAN CAMEL
-1F42C ; [*1269.0020.0002] # DOLPHIN
-1F42D ; [*126A.0020.0002] # MOUSE FACE
-1F42E ; [*126B.0020.0002] # COW FACE
-1F42F ; [*126C.0020.0002] # TIGER FACE
-1F430 ; [*126D.0020.0002] # RABBIT FACE
-1F431 ; [*126E.0020.0002] # CAT FACE
-1F432 ; [*126F.0020.0002] # DRAGON FACE
-1F433 ; [*1270.0020.0002] # SPOUTING WHALE
-1F434 ; [*1271.0020.0002] # HORSE FACE
-1F435 ; [*1272.0020.0002] # MONKEY FACE
-1F436 ; [*1273.0020.0002] # DOG FACE
-1F437 ; [*1274.0020.0002] # PIG FACE
-1F438 ; [*1275.0020.0002] # FROG FACE
-1F439 ; [*1276.0020.0002] # HAMSTER FACE
-1F43A ; [*1277.0020.0002] # WOLF FACE
-1F43B ; [*1278.0020.0002] # BEAR FACE
-1F43C ; [*1279.0020.0002] # PANDA FACE
-1F43D ; [*127A.0020.0002] # PIG NOSE
-1F43E ; [*127B.0020.0002] # PAW PRINTS
-1F440 ; [*127C.0020.0002] # EYES
-1F442 ; [*127D.0020.0002] # EAR
-1F443 ; [*127E.0020.0002] # NOSE
-1F444 ; [*127F.0020.0002] # MOUTH
-1F445 ; [*1280.0020.0002] # TONGUE
-1F446 ; [*1281.0020.0002] # WHITE UP POINTING BACKHAND INDEX
-1F447 ; [*1282.0020.0002] # WHITE DOWN POINTING BACKHAND INDEX
-1F448 ; [*1283.0020.0002] # WHITE LEFT POINTING BACKHAND INDEX
-1F449 ; [*1284.0020.0002] # WHITE RIGHT POINTING BACKHAND INDEX
-1F44A ; [*1285.0020.0002] # FISTED HAND SIGN
-1F44B ; [*1286.0020.0002] # WAVING HAND SIGN
-1F44C ; [*1287.0020.0002] # OK HAND SIGN
-1F44D ; [*1288.0020.0002] # THUMBS UP SIGN
-1F44E ; [*1289.0020.0002] # THUMBS DOWN SIGN
-1F44F ; [*128A.0020.0002] # CLAPPING HANDS SIGN
-1F450 ; [*128B.0020.0002] # OPEN HANDS SIGN
-1F451 ; [*128C.0020.0002] # CROWN
-1F452 ; [*128D.0020.0002] # WOMANS HAT
-1F453 ; [*128E.0020.0002] # EYEGLASSES
-1F454 ; [*128F.0020.0002] # NECKTIE
-1F455 ; [*1290.0020.0002] # T-SHIRT
-1F456 ; [*1291.0020.0002] # JEANS
-1F457 ; [*1292.0020.0002] # DRESS
-1F458 ; [*1293.0020.0002] # KIMONO
-1F459 ; [*1294.0020.0002] # BIKINI
-1F45A ; [*1295.0020.0002] # WOMANS CLOTHES
-1F45B ; [*1296.0020.0002] # PURSE
-1F45C ; [*1297.0020.0002] # HANDBAG
-1F45D ; [*1298.0020.0002] # POUCH
-1F45E ; [*1299.0020.0002] # MANS SHOE
-1F45F ; [*129A.0020.0002] # ATHLETIC SHOE
-1F460 ; [*129B.0020.0002] # HIGH-HEELED SHOE
-1F461 ; [*129C.0020.0002] # WOMANS SANDAL
-1F462 ; [*129D.0020.0002] # WOMANS BOOTS
-1F463 ; [*129E.0020.0002] # FOOTPRINTS
-1F464 ; [*129F.0020.0002] # BUST IN SILHOUETTE
-1F465 ; [*12A0.0020.0002] # BUSTS IN SILHOUETTE
-1F466 ; [*12A1.0020.0002] # BOY
-1F467 ; [*12A2.0020.0002] # GIRL
-1F468 ; [*12A3.0020.0002] # MAN
-1F469 ; [*12A4.0020.0002] # WOMAN
-1F46A ; [*12A5.0020.0002] # FAMILY
-1F46B ; [*12A6.0020.0002] # MAN AND WOMAN HOLDING HANDS
-1F46C ; [*12A7.0020.0002] # TWO MEN HOLDING HANDS
-1F46D ; [*12A8.0020.0002] # TWO WOMEN HOLDING HANDS
-1F46E ; [*12A9.0020.0002] # POLICE OFFICER
-1F46F ; [*12AA.0020.0002] # WOMAN WITH BUNNY EARS
-1F470 ; [*12AB.0020.0002] # BRIDE WITH VEIL
-1F471 ; [*12AC.0020.0002] # PERSON WITH BLOND HAIR
-1F472 ; [*12AD.0020.0002] # MAN WITH GUA PI MAO
-1F473 ; [*12AE.0020.0002] # MAN WITH TURBAN
-1F474 ; [*12AF.0020.0002] # OLDER MAN
-1F475 ; [*12B0.0020.0002] # OLDER WOMAN
-1F476 ; [*12B1.0020.0002] # BABY
-1F477 ; [*12B2.0020.0002] # CONSTRUCTION WORKER
-1F478 ; [*12B3.0020.0002] # PRINCESS
-1F479 ; [*12B4.0020.0002] # JAPANESE OGRE
-1F47A ; [*12B5.0020.0002] # JAPANESE GOBLIN
-1F47B ; [*12B6.0020.0002] # GHOST
-1F47C ; [*12B7.0020.0002] # BABY ANGEL
-1F47D ; [*12B8.0020.0002] # EXTRATERRESTRIAL ALIEN
-1F47E ; [*12B9.0020.0002] # ALIEN MONSTER
-1F47F ; [*12BA.0020.0002] # IMP
-1F480 ; [*12BB.0020.0002] # SKULL
-1F481 ; [*12BC.0020.0002] # INFORMATION DESK PERSON
-1F482 ; [*12BD.0020.0002] # GUARDSMAN
-1F483 ; [*12BE.0020.0002] # DANCER
-1F484 ; [*12BF.0020.0002] # LIPSTICK
-1F485 ; [*12C0.0020.0002] # NAIL POLISH
-1F486 ; [*12C1.0020.0002] # FACE MASSAGE
-1F487 ; [*12C2.0020.0002] # HAIRCUT
-1F488 ; [*12C3.0020.0002] # BARBER POLE
-1F489 ; [*12C4.0020.0002] # SYRINGE
-1F48A ; [*12C5.0020.0002] # PILL
-1F48B ; [*12C6.0020.0002] # KISS MARK
-1F48C ; [*12C7.0020.0002] # LOVE LETTER
-1F48D ; [*12C8.0020.0002] # RING
-1F48E ; [*12C9.0020.0002] # GEM STONE
-1F48F ; [*12CA.0020.0002] # KISS
-1F490 ; [*12CB.0020.0002] # BOUQUET
-1F491 ; [*12CC.0020.0002] # COUPLE WITH HEART
-1F492 ; [*12CD.0020.0002] # WEDDING
-1F493 ; [*12CE.0020.0002] # BEATING HEART
-1F494 ; [*12CF.0020.0002] # BROKEN HEART
-1F495 ; [*12D0.0020.0002] # TWO HEARTS
-1F496 ; [*12D1.0020.0002] # SPARKLING HEART
-1F497 ; [*12D2.0020.0002] # GROWING HEART
-1F498 ; [*12D3.0020.0002] # HEART WITH ARROW
-1F499 ; [*12D4.0020.0002] # BLUE HEART
-1F49A ; [*12D5.0020.0002] # GREEN HEART
-1F49B ; [*12D6.0020.0002] # YELLOW HEART
-1F49C ; [*12D7.0020.0002] # PURPLE HEART
-1F49D ; [*12D8.0020.0002] # HEART WITH RIBBON
-1F49E ; [*12D9.0020.0002] # REVOLVING HEARTS
-1F49F ; [*12DA.0020.0002] # HEART DECORATION
-1F4A0 ; [*12DB.0020.0002] # DIAMOND SHAPE WITH A DOT INSIDE
-1F4A1 ; [*12DC.0020.0002] # ELECTRIC LIGHT BULB
-1F4A2 ; [*12DD.0020.0002] # ANGER SYMBOL
-1F4A3 ; [*12DE.0020.0002] # BOMB
-1F4A4 ; [*12DF.0020.0002] # SLEEPING SYMBOL
-1F4A5 ; [*12E0.0020.0002] # COLLISION SYMBOL
-1F4A6 ; [*12E1.0020.0002] # SPLASHING SWEAT SYMBOL
-1F4A7 ; [*12E2.0020.0002] # DROPLET
-1F4A8 ; [*12E3.0020.0002] # DASH SYMBOL
-1F4A9 ; [*12E4.0020.0002] # PILE OF POO
-1F4AA ; [*12E5.0020.0002] # FLEXED BICEPS
-1F4AB ; [*12E6.0020.0002] # DIZZY SYMBOL
-1F4AC ; [*12E7.0020.0002] # SPEECH BALLOON
-1F4AD ; [*12E8.0020.0002] # THOUGHT BALLOON
-1F4AE ; [*12E9.0020.0002] # WHITE FLOWER
-1F4AF ; [*12EA.0020.0002] # HUNDRED POINTS SYMBOL
-1F4B0 ; [*12EB.0020.0002] # MONEY BAG
-1F4B1 ; [*12EC.0020.0002] # CURRENCY EXCHANGE
-1F4B2 ; [*12ED.0020.0002] # HEAVY DOLLAR SIGN
-1F4B3 ; [*12EE.0020.0002] # CREDIT CARD
-1F4B4 ; [*12EF.0020.0002] # BANKNOTE WITH YEN SIGN
-1F4B5 ; [*12F0.0020.0002] # BANKNOTE WITH DOLLAR SIGN
-1F4B6 ; [*12F1.0020.0002] # BANKNOTE WITH EURO SIGN
-1F4B7 ; [*12F2.0020.0002] # BANKNOTE WITH POUND SIGN
-1F4B8 ; [*12F3.0020.0002] # MONEY WITH WINGS
-1F4B9 ; [*12F4.0020.0002] # CHART WITH UPWARDS TREND AND YEN SIGN
-1F4BA ; [*12F5.0020.0002] # SEAT
-1F4BB ; [*12F6.0020.0002] # PERSONAL COMPUTER
-1F4BC ; [*12F7.0020.0002] # BRIEFCASE
-1F4BD ; [*12F8.0020.0002] # MINIDISC
-1F4BE ; [*12F9.0020.0002] # FLOPPY DISK
-1F4BF ; [*12FA.0020.0002] # OPTICAL DISC
-1F4C0 ; [*12FB.0020.0002] # DVD
-1F4C1 ; [*12FC.0020.0002] # FILE FOLDER
-1F4C2 ; [*12FD.0020.0002] # OPEN FILE FOLDER
-1F4C3 ; [*12FE.0020.0002] # PAGE WITH CURL
-1F4C4 ; [*12FF.0020.0002] # PAGE FACING UP
-1F4C5 ; [*1300.0020.0002] # CALENDAR
-1F4C6 ; [*1301.0020.0002] # TEAR-OFF CALENDAR
-1F4C7 ; [*1302.0020.0002] # CARD INDEX
-1F4C8 ; [*1303.0020.0002] # CHART WITH UPWARDS TREND
-1F4C9 ; [*1304.0020.0002] # CHART WITH DOWNWARDS TREND
-1F4CA ; [*1305.0020.0002] # BAR CHART
-1F4CB ; [*1306.0020.0002] # CLIPBOARD
-1F4CC ; [*1307.0020.0002] # PUSHPIN
-1F4CD ; [*1308.0020.0002] # ROUND PUSHPIN
-1F4CE ; [*1309.0020.0002] # PAPERCLIP
-1F4CF ; [*130A.0020.0002] # STRAIGHT RULER
-1F4D0 ; [*130B.0020.0002] # TRIANGULAR RULER
-1F4D1 ; [*130C.0020.0002] # BOOKMARK TABS
-1F4D2 ; [*130D.0020.0002] # LEDGER
-1F4D3 ; [*130E.0020.0002] # NOTEBOOK
-1F4D4 ; [*130F.0020.0002] # NOTEBOOK WITH DECORATIVE COVER
-1F4D5 ; [*1310.0020.0002] # CLOSED BOOK
-1F4D6 ; [*1311.0020.0002] # OPEN BOOK
-1F4D7 ; [*1312.0020.0002] # GREEN BOOK
-1F4D8 ; [*1313.0020.0002] # BLUE BOOK
-1F4D9 ; [*1314.0020.0002] # ORANGE BOOK
-1F4DA ; [*1315.0020.0002] # BOOKS
-1F4DB ; [*1316.0020.0002] # NAME BADGE
-1F4DC ; [*1317.0020.0002] # SCROLL
-1F4DD ; [*1318.0020.0002] # MEMO
-1F4DE ; [*1319.0020.0002] # TELEPHONE RECEIVER
-1F4DF ; [*131A.0020.0002] # PAGER
-1F4E0 ; [*131B.0020.0002] # FAX MACHINE
-1F4E1 ; [*131C.0020.0002] # SATELLITE ANTENNA
-1F4E2 ; [*131D.0020.0002] # PUBLIC ADDRESS LOUDSPEAKER
-1F4E3 ; [*131E.0020.0002] # CHEERING MEGAPHONE
-1F4E4 ; [*131F.0020.0002] # OUTBOX TRAY
-1F4E5 ; [*1320.0020.0002] # INBOX TRAY
-1F4E6 ; [*1321.0020.0002] # PACKAGE
-1F4E7 ; [*1322.0020.0002] # E-MAIL SYMBOL
-1F4E8 ; [*1323.0020.0002] # INCOMING ENVELOPE
-1F4E9 ; [*1324.0020.0002] # ENVELOPE WITH DOWNWARDS ARROW ABOVE
-1F4EA ; [*1325.0020.0002] # CLOSED MAILBOX WITH LOWERED FLAG
-1F4EB ; [*1326.0020.0002] # CLOSED MAILBOX WITH RAISED FLAG
-1F4EC ; [*1327.0020.0002] # OPEN MAILBOX WITH RAISED FLAG
-1F4ED ; [*1328.0020.0002] # OPEN MAILBOX WITH LOWERED FLAG
-1F4EE ; [*1329.0020.0002] # POSTBOX
-1F4EF ; [*132A.0020.0002] # POSTAL HORN
-1F4F0 ; [*132B.0020.0002] # NEWSPAPER
-1F4F1 ; [*132C.0020.0002] # MOBILE PHONE
-1F4F2 ; [*132D.0020.0002] # MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
-1F4F3 ; [*132E.0020.0002] # VIBRATION MODE
-1F4F4 ; [*132F.0020.0002] # MOBILE PHONE OFF
-1F4F5 ; [*1330.0020.0002] # NO MOBILE PHONES
-1F4F6 ; [*1331.0020.0002] # ANTENNA WITH BARS
-1F4F7 ; [*1332.0020.0002] # CAMERA
-1F4F9 ; [*1333.0020.0002] # VIDEO CAMERA
-1F4FA ; [*1334.0020.0002] # TELEVISION
-1F4FB ; [*1335.0020.0002] # RADIO
-1F4FC ; [*1336.0020.0002] # VIDEOCASSETTE
-1F500 ; [*1337.0020.0002] # TWISTED RIGHTWARDS ARROWS
-1F501 ; [*1338.0020.0002] # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS
-1F502 ; [*1339.0020.0002] # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
-1F503 ; [*133A.0020.0002] # CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
-1F504 ; [*133B.0020.0002] # ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
-1F505 ; [*133C.0020.0002] # LOW BRIGHTNESS SYMBOL
-1F506 ; [*133D.0020.0002] # HIGH BRIGHTNESS SYMBOL
-1F507 ; [*133E.0020.0002] # SPEAKER WITH CANCELLATION STROKE
-1F508 ; [*133F.0020.0002] # SPEAKER
-1F509 ; [*1340.0020.0002] # SPEAKER WITH ONE SOUND WAVE
-1F50A ; [*1341.0020.0002] # SPEAKER WITH THREE SOUND WAVES
-1F50B ; [*1342.0020.0002] # BATTERY
-1F50C ; [*1343.0020.0002] # ELECTRIC PLUG
-1F50D ; [*1344.0020.0002] # LEFT-POINTING MAGNIFYING GLASS
-1F50E ; [*1345.0020.0002] # RIGHT-POINTING MAGNIFYING GLASS
-1F50F ; [*1346.0020.0002] # LOCK WITH INK PEN
-1F510 ; [*1347.0020.0002] # CLOSED LOCK WITH KEY
-1F511 ; [*1348.0020.0002] # KEY
-1F512 ; [*1349.0020.0002] # LOCK
-1F513 ; [*134A.0020.0002] # OPEN LOCK
-1F514 ; [*134B.0020.0002] # BELL
-1F515 ; [*134C.0020.0002] # BELL WITH CANCELLATION STROKE
-1F516 ; [*134D.0020.0002] # BOOKMARK
-1F517 ; [*134E.0020.0002] # LINK SYMBOL
-1F518 ; [*134F.0020.0002] # RADIO BUTTON
-1F519 ; [*1350.0020.0002] # BACK WITH LEFTWARDS ARROW ABOVE
-1F51A ; [*1351.0020.0002] # END WITH LEFTWARDS ARROW ABOVE
-1F51B ; [*1352.0020.0002] # ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE
-1F51C ; [*1353.0020.0002] # SOON WITH RIGHTWARDS ARROW ABOVE
-1F51D ; [*1354.0020.0002] # TOP WITH UPWARDS ARROW ABOVE
-1F51E ; [*1355.0020.0002] # NO ONE UNDER EIGHTEEN SYMBOL
-1F51F ; [*1356.0020.0002] # KEYCAP TEN
-1F520 ; [*1357.0020.0002] # INPUT SYMBOL FOR LATIN CAPITAL LETTERS
-1F521 ; [*1358.0020.0002] # INPUT SYMBOL FOR LATIN SMALL LETTERS
-1F522 ; [*1359.0020.0002] # INPUT SYMBOL FOR NUMBERS
-1F523 ; [*135A.0020.0002] # INPUT SYMBOL FOR SYMBOLS
-1F524 ; [*135B.0020.0002] # INPUT SYMBOL FOR LATIN LETTERS
-1F525 ; [*135C.0020.0002] # FIRE
-1F526 ; [*135D.0020.0002] # ELECTRIC TORCH
-1F527 ; [*135E.0020.0002] # WRENCH
-1F528 ; [*135F.0020.0002] # HAMMER
-1F529 ; [*1360.0020.0002] # NUT AND BOLT
-1F52A ; [*1361.0020.0002] # HOCHO
-1F52B ; [*1362.0020.0002] # PISTOL
-1F52C ; [*1363.0020.0002] # MICROSCOPE
-1F52D ; [*1364.0020.0002] # TELESCOPE
-1F52E ; [*1365.0020.0002] # CRYSTAL BALL
-1F52F ; [*1366.0020.0002] # SIX POINTED STAR WITH MIDDLE DOT
-1F530 ; [*1367.0020.0002] # JAPANESE SYMBOL FOR BEGINNER
-1F531 ; [*1368.0020.0002] # TRIDENT EMBLEM
-1F532 ; [*1369.0020.0002] # BLACK SQUARE BUTTON
-1F533 ; [*136A.0020.0002] # WHITE SQUARE BUTTON
-1F534 ; [*136B.0020.0002] # LARGE RED CIRCLE
-1F535 ; [*136C.0020.0002] # LARGE BLUE CIRCLE
-1F536 ; [*136D.0020.0002] # LARGE ORANGE DIAMOND
-1F537 ; [*136E.0020.0002] # LARGE BLUE DIAMOND
-1F538 ; [*136F.0020.0002] # SMALL ORANGE DIAMOND
-1F539 ; [*1370.0020.0002] # SMALL BLUE DIAMOND
-1F53A ; [*1371.0020.0002] # UP-POINTING RED TRIANGLE
-1F53B ; [*1372.0020.0002] # DOWN-POINTING RED TRIANGLE
-1F53C ; [*1373.0020.0002] # UP-POINTING SMALL RED TRIANGLE
-1F53D ; [*1374.0020.0002] # DOWN-POINTING SMALL RED TRIANGLE
-1F540 ; [*1375.0020.0002] # CIRCLED CROSS POMMEE
-1F541 ; [*1376.0020.0002] # CROSS POMMEE WITH HALF-CIRCLE BELOW
-1F542 ; [*1377.0020.0002] # CROSS POMMEE
-1F543 ; [*1378.0020.0002] # NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-1F550 ; [*1379.0020.0002] # CLOCK FACE ONE OCLOCK
-1F551 ; [*137A.0020.0002] # CLOCK FACE TWO OCLOCK
-1F552 ; [*137B.0020.0002] # CLOCK FACE THREE OCLOCK
-1F553 ; [*137C.0020.0002] # CLOCK FACE FOUR OCLOCK
-1F554 ; [*137D.0020.0002] # CLOCK FACE FIVE OCLOCK
-1F555 ; [*137E.0020.0002] # CLOCK FACE SIX OCLOCK
-1F556 ; [*137F.0020.0002] # CLOCK FACE SEVEN OCLOCK
-1F557 ; [*1380.0020.0002] # CLOCK FACE EIGHT OCLOCK
-1F558 ; [*1381.0020.0002] # CLOCK FACE NINE OCLOCK
-1F559 ; [*1382.0020.0002] # CLOCK FACE TEN OCLOCK
-1F55A ; [*1383.0020.0002] # CLOCK FACE ELEVEN OCLOCK
-1F55B ; [*1384.0020.0002] # CLOCK FACE TWELVE OCLOCK
-1F55C ; [*1385.0020.0002] # CLOCK FACE ONE-THIRTY
-1F55D ; [*1386.0020.0002] # CLOCK FACE TWO-THIRTY
-1F55E ; [*1387.0020.0002] # CLOCK FACE THREE-THIRTY
-1F55F ; [*1388.0020.0002] # CLOCK FACE FOUR-THIRTY
-1F560 ; [*1389.0020.0002] # CLOCK FACE FIVE-THIRTY
-1F561 ; [*138A.0020.0002] # CLOCK FACE SIX-THIRTY
-1F562 ; [*138B.0020.0002] # CLOCK FACE SEVEN-THIRTY
-1F563 ; [*138C.0020.0002] # CLOCK FACE EIGHT-THIRTY
-1F564 ; [*138D.0020.0002] # CLOCK FACE NINE-THIRTY
-1F565 ; [*138E.0020.0002] # CLOCK FACE TEN-THIRTY
-1F566 ; [*138F.0020.0002] # CLOCK FACE ELEVEN-THIRTY
-1F567 ; [*1390.0020.0002] # CLOCK FACE TWELVE-THIRTY
-1F5FB ; [*1391.0020.0002] # MOUNT FUJI
-1F5FC ; [*1392.0020.0002] # TOKYO TOWER
-1F5FD ; [*1393.0020.0002] # STATUE OF LIBERTY
-1F5FE ; [*1394.0020.0002] # SILHOUETTE OF JAPAN
-1F5FF ; [*1395.0020.0002] # MOYAI
-1F600 ; [*1396.0020.0002] # GRINNING FACE
-1F601 ; [*1397.0020.0002] # GRINNING FACE WITH SMILING EYES
-1F602 ; [*1398.0020.0002] # FACE WITH TEARS OF JOY
-1F603 ; [*1399.0020.0002] # SMILING FACE WITH OPEN MOUTH
-1F604 ; [*139A.0020.0002] # SMILING FACE WITH OPEN MOUTH AND SMILING EYES
-1F605 ; [*139B.0020.0002] # SMILING FACE WITH OPEN MOUTH AND COLD SWEAT
-1F606 ; [*139C.0020.0002] # SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
-1F607 ; [*139D.0020.0002] # SMILING FACE WITH HALO
-1F608 ; [*139E.0020.0002] # SMILING FACE WITH HORNS
-1F609 ; [*139F.0020.0002] # WINKING FACE
-1F60A ; [*13A0.0020.0002] # SMILING FACE WITH SMILING EYES
-1F60B ; [*13A1.0020.0002] # FACE SAVOURING DELICIOUS FOOD
-1F60C ; [*13A2.0020.0002] # RELIEVED FACE
-1F60D ; [*13A3.0020.0002] # SMILING FACE WITH HEART-SHAPED EYES
-1F60E ; [*13A4.0020.0002] # SMILING FACE WITH SUNGLASSES
-1F60F ; [*13A5.0020.0002] # SMIRKING FACE
-1F610 ; [*13A6.0020.0002] # NEUTRAL FACE
-1F611 ; [*13A7.0020.0002] # EXPRESSIONLESS FACE
-1F612 ; [*13A8.0020.0002] # UNAMUSED FACE
-1F613 ; [*13A9.0020.0002] # FACE WITH COLD SWEAT
-1F614 ; [*13AA.0020.0002] # PENSIVE FACE
-1F615 ; [*13AB.0020.0002] # CONFUSED FACE
-1F616 ; [*13AC.0020.0002] # CONFOUNDED FACE
-1F617 ; [*13AD.0020.0002] # KISSING FACE
-1F618 ; [*13AE.0020.0002] # FACE THROWING A KISS
-1F619 ; [*13AF.0020.0002] # KISSING FACE WITH SMILING EYES
-1F61A ; [*13B0.0020.0002] # KISSING FACE WITH CLOSED EYES
-1F61B ; [*13B1.0020.0002] # FACE WITH STUCK-OUT TONGUE
-1F61C ; [*13B2.0020.0002] # FACE WITH STUCK-OUT TONGUE AND WINKING EYE
-1F61D ; [*13B3.0020.0002] # FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES
-1F61E ; [*13B4.0020.0002] # DISAPPOINTED FACE
-1F61F ; [*13B5.0020.0002] # WORRIED FACE
-1F620 ; [*13B6.0020.0002] # ANGRY FACE
-1F621 ; [*13B7.0020.0002] # POUTING FACE
-1F622 ; [*13B8.0020.0002] # CRYING FACE
-1F623 ; [*13B9.0020.0002] # PERSEVERING FACE
-1F624 ; [*13BA.0020.0002] # FACE WITH LOOK OF TRIUMPH
-1F625 ; [*13BB.0020.0002] # DISAPPOINTED BUT RELIEVED FACE
-1F626 ; [*13BC.0020.0002] # FROWNING FACE WITH OPEN MOUTH
-1F627 ; [*13BD.0020.0002] # ANGUISHED FACE
-1F628 ; [*13BE.0020.0002] # FEARFUL FACE
-1F629 ; [*13BF.0020.0002] # WEARY FACE
-1F62A ; [*13C0.0020.0002] # SLEEPY FACE
-1F62B ; [*13C1.0020.0002] # TIRED FACE
-1F62C ; [*13C2.0020.0002] # GRIMACING FACE
-1F62D ; [*13C3.0020.0002] # LOUDLY CRYING FACE
-1F62E ; [*13C4.0020.0002] # FACE WITH OPEN MOUTH
-1F62F ; [*13C5.0020.0002] # HUSHED FACE
-1F630 ; [*13C6.0020.0002] # FACE WITH OPEN MOUTH AND COLD SWEAT
-1F631 ; [*13C7.0020.0002] # FACE SCREAMING IN FEAR
-1F632 ; [*13C8.0020.0002] # ASTONISHED FACE
-1F633 ; [*13C9.0020.0002] # FLUSHED FACE
-1F634 ; [*13CA.0020.0002] # SLEEPING FACE
-1F635 ; [*13CB.0020.0002] # DIZZY FACE
-1F636 ; [*13CC.0020.0002] # FACE WITHOUT MOUTH
-1F637 ; [*13CD.0020.0002] # FACE WITH MEDICAL MASK
-1F638 ; [*13CE.0020.0002] # GRINNING CAT FACE WITH SMILING EYES
-1F639 ; [*13CF.0020.0002] # CAT FACE WITH TEARS OF JOY
-1F63A ; [*13D0.0020.0002] # SMILING CAT FACE WITH OPEN MOUTH
-1F63B ; [*13D1.0020.0002] # SMILING CAT FACE WITH HEART-SHAPED EYES
-1F63C ; [*13D2.0020.0002] # CAT FACE WITH WRY SMILE
-1F63D ; [*13D3.0020.0002] # KISSING CAT FACE WITH CLOSED EYES
-1F63E ; [*13D4.0020.0002] # POUTING CAT FACE
-1F63F ; [*13D5.0020.0002] # CRYING CAT FACE
-1F640 ; [*13D6.0020.0002] # WEARY CAT FACE
-1F645 ; [*13D7.0020.0002] # FACE WITH NO GOOD GESTURE
-1F646 ; [*13D8.0020.0002] # FACE WITH OK GESTURE
-1F647 ; [*13D9.0020.0002] # PERSON BOWING DEEPLY
-1F648 ; [*13DA.0020.0002] # SEE-NO-EVIL MONKEY
-1F649 ; [*13DB.0020.0002] # HEAR-NO-EVIL MONKEY
-1F64A ; [*13DC.0020.0002] # SPEAK-NO-EVIL MONKEY
-1F64B ; [*13DD.0020.0002] # HAPPY PERSON RAISING ONE HAND
-1F64C ; [*13DE.0020.0002] # PERSON RAISING BOTH HANDS IN CELEBRATION
-1F64D ; [*13DF.0020.0002] # PERSON FROWNING
-1F64E ; [*13E0.0020.0002] # PERSON WITH POUTING FACE
-1F64F ; [*13E1.0020.0002] # PERSON WITH FOLDED HANDS
-1F680 ; [*13E2.0020.0002] # ROCKET
-1F681 ; [*13E3.0020.0002] # HELICOPTER
-1F682 ; [*13E4.0020.0002] # STEAM LOCOMOTIVE
-1F683 ; [*13E5.0020.0002] # RAILWAY CAR
-1F684 ; [*13E6.0020.0002] # HIGH-SPEED TRAIN
-1F685 ; [*13E7.0020.0002] # HIGH-SPEED TRAIN WITH BULLET NOSE
-1F686 ; [*13E8.0020.0002] # TRAIN
-1F687 ; [*13E9.0020.0002] # METRO
-1F688 ; [*13EA.0020.0002] # LIGHT RAIL
-1F689 ; [*13EB.0020.0002] # STATION
-1F68A ; [*13EC.0020.0002] # TRAM
-1F68B ; [*13ED.0020.0002] # TRAM CAR
-1F68C ; [*13EE.0020.0002] # BUS
-1F68D ; [*13EF.0020.0002] # ONCOMING BUS
-1F68E ; [*13F0.0020.0002] # TROLLEYBUS
-1F68F ; [*13F1.0020.0002] # BUS STOP
-1F690 ; [*13F2.0020.0002] # MINIBUS
-1F691 ; [*13F3.0020.0002] # AMBULANCE
-1F692 ; [*13F4.0020.0002] # FIRE ENGINE
-1F693 ; [*13F5.0020.0002] # POLICE CAR
-1F694 ; [*13F6.0020.0002] # ONCOMING POLICE CAR
-1F695 ; [*13F7.0020.0002] # TAXI
-1F696 ; [*13F8.0020.0002] # ONCOMING TAXI
-1F697 ; [*13F9.0020.0002] # AUTOMOBILE
-1F698 ; [*13FA.0020.0002] # ONCOMING AUTOMOBILE
-1F699 ; [*13FB.0020.0002] # RECREATIONAL VEHICLE
-1F69A ; [*13FC.0020.0002] # DELIVERY TRUCK
-1F69B ; [*13FD.0020.0002] # ARTICULATED LORRY
-1F69C ; [*13FE.0020.0002] # TRACTOR
-1F69D ; [*13FF.0020.0002] # MONORAIL
-1F69E ; [*1400.0020.0002] # MOUNTAIN RAILWAY
-1F69F ; [*1401.0020.0002] # SUSPENSION RAILWAY
-1F6A0 ; [*1402.0020.0002] # MOUNTAIN CABLEWAY
-1F6A1 ; [*1403.0020.0002] # AERIAL TRAMWAY
-1F6A2 ; [*1404.0020.0002] # SHIP
-1F6A3 ; [*1405.0020.0002] # ROWBOAT
-1F6A4 ; [*1406.0020.0002] # SPEEDBOAT
-1F6A5 ; [*1407.0020.0002] # HORIZONTAL TRAFFIC LIGHT
-1F6A6 ; [*1408.0020.0002] # VERTICAL TRAFFIC LIGHT
-1F6A7 ; [*1409.0020.0002] # CONSTRUCTION SIGN
-1F6A8 ; [*140A.0020.0002] # POLICE CARS REVOLVING LIGHT
-1F6A9 ; [*140B.0020.0002] # TRIANGULAR FLAG ON POST
-1F6AA ; [*140C.0020.0002] # DOOR
-1F6AB ; [*140D.0020.0002] # NO ENTRY SIGN
-1F6AC ; [*140E.0020.0002] # SMOKING SYMBOL
-1F6AD ; [*140F.0020.0002] # NO SMOKING SYMBOL
-1F6AE ; [*1410.0020.0002] # PUT LITTER IN ITS PLACE SYMBOL
-1F6AF ; [*1411.0020.0002] # DO NOT LITTER SYMBOL
-1F6B0 ; [*1412.0020.0002] # POTABLE WATER SYMBOL
-1F6B1 ; [*1413.0020.0002] # NON-POTABLE WATER SYMBOL
-1F6B2 ; [*1414.0020.0002] # BICYCLE
-1F6B3 ; [*1415.0020.0002] # NO BICYCLES
-1F6B4 ; [*1416.0020.0002] # BICYCLIST
-1F6B5 ; [*1417.0020.0002] # MOUNTAIN BICYCLIST
-1F6B6 ; [*1418.0020.0002] # PEDESTRIAN
-1F6B7 ; [*1419.0020.0002] # NO PEDESTRIANS
-1F6B8 ; [*141A.0020.0002] # CHILDREN CROSSING
-1F6B9 ; [*141B.0020.0002] # MENS SYMBOL
-1F6BA ; [*141C.0020.0002] # WOMENS SYMBOL
-1F6BB ; [*141D.0020.0002] # RESTROOM
-1F6BC ; [*141E.0020.0002] # BABY SYMBOL
-1F6BD ; [*141F.0020.0002] # TOILET
-1F6BE ; [*1420.0020.0002] # WATER CLOSET
-1F6BF ; [*1421.0020.0002] # SHOWER
-1F6C0 ; [*1422.0020.0002] # BATH
-1F6C1 ; [*1423.0020.0002] # BATHTUB
-1F6C2 ; [*1424.0020.0002] # PASSPORT CONTROL
-1F6C3 ; [*1425.0020.0002] # CUSTOMS
-1F6C4 ; [*1426.0020.0002] # BAGGAGE CLAIM
-1F6C5 ; [*1427.0020.0002] # LEFT LUGGAGE
-1F700 ; [*1428.0020.0002] # ALCHEMICAL SYMBOL FOR QUINTESSENCE
-1F701 ; [*1429.0020.0002] # ALCHEMICAL SYMBOL FOR AIR
-1F702 ; [*142A.0020.0002] # ALCHEMICAL SYMBOL FOR FIRE
-1F703 ; [*142B.0020.0002] # ALCHEMICAL SYMBOL FOR EARTH
-1F704 ; [*142C.0020.0002] # ALCHEMICAL SYMBOL FOR WATER
-1F705 ; [*142D.0020.0002] # ALCHEMICAL SYMBOL FOR AQUAFORTIS
-1F706 ; [*142E.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA REGIA
-1F707 ; [*142F.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA REGIA-2
-1F708 ; [*1430.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA VITAE
-1F709 ; [*1431.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA VITAE-2
-1F70A ; [*1432.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR
-1F70B ; [*1433.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR-2
-1F70C ; [*1434.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR-3
-1F70D ; [*1435.0020.0002] # ALCHEMICAL SYMBOL FOR SULFUR
-1F70E ; [*1436.0020.0002] # ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR
-1F70F ; [*1437.0020.0002] # ALCHEMICAL SYMBOL FOR BLACK SULFUR
-1F710 ; [*1438.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE
-1F711 ; [*1439.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2
-1F712 ; [*143A.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3
-1F713 ; [*143B.0020.0002] # ALCHEMICAL SYMBOL FOR CINNABAR
-1F714 ; [*143C.0020.0002] # ALCHEMICAL SYMBOL FOR SALT
-1F715 ; [*143D.0020.0002] # ALCHEMICAL SYMBOL FOR NITRE
-1F716 ; [*143E.0020.0002] # ALCHEMICAL SYMBOL FOR VITRIOL
-1F717 ; [*143F.0020.0002] # ALCHEMICAL SYMBOL FOR VITRIOL-2
-1F718 ; [*1440.0020.0002] # ALCHEMICAL SYMBOL FOR ROCK SALT
-1F719 ; [*1441.0020.0002] # ALCHEMICAL SYMBOL FOR ROCK SALT-2
-1F71A ; [*1442.0020.0002] # ALCHEMICAL SYMBOL FOR GOLD
-1F71B ; [*1443.0020.0002] # ALCHEMICAL SYMBOL FOR SILVER
-1F71C ; [*1444.0020.0002] # ALCHEMICAL SYMBOL FOR IRON ORE
-1F71D ; [*1445.0020.0002] # ALCHEMICAL SYMBOL FOR IRON ORE-2
-1F71E ; [*1446.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF IRON
-1F71F ; [*1447.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF IRON
-1F720 ; [*1448.0020.0002] # ALCHEMICAL SYMBOL FOR COPPER ORE
-1F721 ; [*1449.0020.0002] # ALCHEMICAL SYMBOL FOR IRON-COPPER ORE
-1F722 ; [*144A.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER
-1F723 ; [*144B.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER
-1F724 ; [*144C.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2
-1F725 ; [*144D.0020.0002] # ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE
-1F726 ; [*144E.0020.0002] # ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE
-1F727 ; [*144F.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER
-1F728 ; [*1450.0020.0002] # ALCHEMICAL SYMBOL FOR VERDIGRIS
-1F729 ; [*1451.0020.0002] # ALCHEMICAL SYMBOL FOR TIN ORE
-1F72A ; [*1452.0020.0002] # ALCHEMICAL SYMBOL FOR LEAD ORE
-1F72B ; [*1453.0020.0002] # ALCHEMICAL SYMBOL FOR ANTIMONY ORE
-1F72C ; [*1454.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY
-1F72D ; [*1455.0020.0002] # ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY
-1F72E ; [*1456.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY
-1F72F ; [*1457.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY
-1F730 ; [*1458.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY
-1F731 ; [*1459.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2
-1F732 ; [*145A.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS
-1F733 ; [*145B.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-2
-1F734 ; [*145C.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-3
-1F735 ; [*145D.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-4
-1F736 ; [*145E.0020.0002] # ALCHEMICAL SYMBOL FOR ALKALI
-1F737 ; [*145F.0020.0002] # ALCHEMICAL SYMBOL FOR ALKALI-2
-1F738 ; [*1460.0020.0002] # ALCHEMICAL SYMBOL FOR MARCASITE
-1F739 ; [*1461.0020.0002] # ALCHEMICAL SYMBOL FOR SAL-AMMONIAC
-1F73A ; [*1462.0020.0002] # ALCHEMICAL SYMBOL FOR ARSENIC
-1F73B ; [*1463.0020.0002] # ALCHEMICAL SYMBOL FOR REALGAR
-1F73C ; [*1464.0020.0002] # ALCHEMICAL SYMBOL FOR REALGAR-2
-1F73D ; [*1465.0020.0002] # ALCHEMICAL SYMBOL FOR AURIPIGMENT
-1F73E ; [*1466.0020.0002] # ALCHEMICAL SYMBOL FOR BISMUTH ORE
-1F73F ; [*1467.0020.0002] # ALCHEMICAL SYMBOL FOR TARTAR
-1F740 ; [*1468.0020.0002] # ALCHEMICAL SYMBOL FOR TARTAR-2
-1F741 ; [*1469.0020.0002] # ALCHEMICAL SYMBOL FOR QUICK LIME
-1F742 ; [*146A.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX
-1F743 ; [*146B.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX-2
-1F744 ; [*146C.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX-3
-1F745 ; [*146D.0020.0002] # ALCHEMICAL SYMBOL FOR ALUM
-1F746 ; [*146E.0020.0002] # ALCHEMICAL SYMBOL FOR OIL
-1F747 ; [*146F.0020.0002] # ALCHEMICAL SYMBOL FOR SPIRIT
-1F748 ; [*1470.0020.0002] # ALCHEMICAL SYMBOL FOR TINCTURE
-1F749 ; [*1471.0020.0002] # ALCHEMICAL SYMBOL FOR GUM
-1F74A ; [*1472.0020.0002] # ALCHEMICAL SYMBOL FOR WAX
-1F74B ; [*1473.0020.0002] # ALCHEMICAL SYMBOL FOR POWDER
-1F74C ; [*1474.0020.0002] # ALCHEMICAL SYMBOL FOR CALX
-1F74D ; [*1475.0020.0002] # ALCHEMICAL SYMBOL FOR TUTTY
-1F74E ; [*1476.0020.0002] # ALCHEMICAL SYMBOL FOR CAPUT MORTUUM
-1F74F ; [*1477.0020.0002] # ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE
-1F750 ; [*1478.0020.0002] # ALCHEMICAL SYMBOL FOR CADUCEUS
-1F751 ; [*1479.0020.0002] # ALCHEMICAL SYMBOL FOR TRIDENT
-1F752 ; [*147A.0020.0002] # ALCHEMICAL SYMBOL FOR STARRED TRIDENT
-1F753 ; [*147B.0020.0002] # ALCHEMICAL SYMBOL FOR LODESTONE
-1F754 ; [*147C.0020.0002] # ALCHEMICAL SYMBOL FOR SOAP
-1F755 ; [*147D.0020.0002] # ALCHEMICAL SYMBOL FOR URINE
-1F756 ; [*147E.0020.0002] # ALCHEMICAL SYMBOL FOR HORSE DUNG
-1F757 ; [*147F.0020.0002] # ALCHEMICAL SYMBOL FOR ASHES
-1F758 ; [*1480.0020.0002] # ALCHEMICAL SYMBOL FOR POT ASHES
-1F759 ; [*1481.0020.0002] # ALCHEMICAL SYMBOL FOR BRICK
-1F75A ; [*1482.0020.0002] # ALCHEMICAL SYMBOL FOR POWDERED BRICK
-1F75B ; [*1483.0020.0002] # ALCHEMICAL SYMBOL FOR AMALGAM
-1F75C ; [*1484.0020.0002] # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM
-1F75D ; [*1485.0020.0002] # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2
-1F75E ; [*1486.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATION
-1F75F ; [*1487.0020.0002] # ALCHEMICAL SYMBOL FOR PRECIPITATE
-1F760 ; [*1488.0020.0002] # ALCHEMICAL SYMBOL FOR DISTILL
-1F761 ; [*1489.0020.0002] # ALCHEMICAL SYMBOL FOR DISSOLVE
-1F762 ; [*148A.0020.0002] # ALCHEMICAL SYMBOL FOR DISSOLVE-2
-1F763 ; [*148B.0020.0002] # ALCHEMICAL SYMBOL FOR PURIFY
-1F764 ; [*148C.0020.0002] # ALCHEMICAL SYMBOL FOR PUTREFACTION
-1F765 ; [*148D.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE
-1F766 ; [*148E.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-2
-1F767 ; [*148F.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-3
-1F768 ; [*1490.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-4
-1F769 ; [*1491.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-5
-1F76A ; [*1492.0020.0002] # ALCHEMICAL SYMBOL FOR ALEMBIC
-1F76B ; [*1493.0020.0002] # ALCHEMICAL SYMBOL FOR BATH OF MARY
-1F76C ; [*1494.0020.0002] # ALCHEMICAL SYMBOL FOR BATH OF VAPOURS
-1F76D ; [*1495.0020.0002] # ALCHEMICAL SYMBOL FOR RETORT
-1F76E ; [*1496.0020.0002] # ALCHEMICAL SYMBOL FOR HOUR
-1F76F ; [*1497.0020.0002] # ALCHEMICAL SYMBOL FOR NIGHT
-1F770 ; [*1498.0020.0002] # ALCHEMICAL SYMBOL FOR DAY-NIGHT
-1F771 ; [*1499.0020.0002] # ALCHEMICAL SYMBOL FOR MONTH
-1F772 ; [*149A.0020.0002] # ALCHEMICAL SYMBOL FOR HALF DRAM
-1F773 ; [*149B.0020.0002] # ALCHEMICAL SYMBOL FOR HALF OUNCE
+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
+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
+1E8D3 ; [.0000.0000.0000] # MENDE KIKAKUI COMBINING NUMBER THOUSANDS
+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
0332 ; [.0000.0021.0002] # COMBINING LOW LINE
0313 ; [.0000.0022.0002] # COMBINING COMMA ABOVE
0343 ; [.0000.0022.0002] # COMBINING GREEK KORONIS
@@ -6014,6 +6841,13 @@ FFFC ; [*14D6.0020.0002] # OBJECT REPLACEMENT CHARACTER
17D0 ; [.0000.0033.0002] # KHMER SIGN SAMYOK SANNYA
17D1 ; [.0000.0033.0002] # KHMER SIGN VIRIAM
17DD ; [.0000.0033.0002] # KHMER SIGN ATTHACAN
+1AB0 ; [.0000.0033.0002] # COMBINING DOUBLED CIRCUMFLEX ACCENT
+1AB1 ; [.0000.0033.0002] # COMBINING DIAERESIS-RING
+1AB2 ; [.0000.0033.0002] # COMBINING INFINITY
+1AB3 ; [.0000.0033.0002] # COMBINING DOWNWARDS ARROW
+1AB4 ; [.0000.0033.0002] # COMBINING TRIPLE DOT
+1ABB ; [.0000.0033.0002] # COMBINING PARENTHESES ABOVE
+1ABC ; [.0000.0033.0002] # COMBINING DOUBLE PARENTHESES ABOVE
1DC0 ; [.0000.0033.0002] # COMBINING DOTTED GRAVE ACCENT
1DC1 ; [.0000.0033.0002] # COMBINING DOTTED ACUTE ACCENT
1DC3 ; [.0000.0033.0002] # COMBINING SUSPENSION MARK
@@ -6028,11 +6862,14 @@ FFFC ; [*14D6.0020.0002] # OBJECT REPLACEMENT CHARACTER
1DCD ; [.0000.0033.0002] # COMBINING DOUBLE CIRCUMFLEX ABOVE
1DCE ; [.0000.0033.0002] # COMBINING OGONEK ABOVE
1DD1 ; [.0000.0033.0002] # COMBINING UR ABOVE
+1DF5 ; [.0000.0033.0002] # COMBINING UP TACK ABOVE
1DFE ; [.0000.0033.0002] # COMBINING LEFT ARROWHEAD ABOVE
20F0 ; [.0000.0033.0002] # COMBINING ASTERISK ABOVE
2CEF ; [.0000.0033.0002] # COPTIC COMBINING NI ABOVE
A67C ; [.0000.0033.0002] # COMBINING CYRILLIC KAVYKA
A67D ; [.0000.0033.0002] # COMBINING CYRILLIC PAYEROK
+10AE5 ; [.0000.0033.0002] # MANICHAEAN ABBREVIATION MARK ABOVE
+1BC9D ; [.0000.0033.0002] # DUPLOYAN THICK LETTER SELECTOR
0316 ; [.0000.0034.0002] # COMBINING GRAVE ACCENT BELOW
0317 ; [.0000.0034.0002] # COMBINING ACUTE ACCENT BELOW
0318 ; [.0000.0034.0002] # COMBINING LEFT TACK BELOW
@@ -6070,6 +6907,13 @@ A67D ; [.0000.0033.0002] # COMBINING CYRILLIC PAYEROK
0859 ; [.0000.0034.0002] # MANDAIC AFFRICATION MARK
085A ; [.0000.0034.0002] # MANDAIC VOCALIZATION MARK
085B ; [.0000.0034.0002] # MANDAIC GEMINATION MARK
+1AB5 ; [.0000.0034.0002] # COMBINING X-X BELOW
+1AB6 ; [.0000.0034.0002] # COMBINING WIGGLY LINE BELOW
+1AB7 ; [.0000.0034.0002] # COMBINING OPEN MARK BELOW
+1AB8 ; [.0000.0034.0002] # COMBINING DOUBLE OPEN MARK BELOW
+1AB9 ; [.0000.0034.0002] # COMBINING LIGHT CENTRALIZATION STROKE BELOW
+1ABA ; [.0000.0034.0002] # COMBINING STRONG CENTRALIZATION STROKE BELOW
+1ABD ; [.0000.0034.0002] # COMBINING PARENTHESES BELOW
1DC2 ; [.0000.0034.0002] # COMBINING SNAKE BELOW
1DCF ; [.0000.0034.0002] # COMBINING ZIGZAG BELOW
1DD0 ; [.0000.0034.0002] # COMBINING IS BELOW
@@ -6080,7 +6924,9 @@ A67D ; [.0000.0033.0002] # COMBINING CYRILLIC PAYEROK
20ED ; [.0000.0034.0002] # COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS
20EE ; [.0000.0034.0002] # COMBINING LEFT ARROW BELOW
20EF ; [.0000.0034.0002] # COMBINING RIGHT ARROW BELOW
+FE27 ; [.0000.0034.0002] # COMBINING LIGATURE LEFT HALF BELOW
10A0D ; [.0000.0034.0002] # KHAROSHTHI SIGN DOUBLE RING BELOW
+10AE6 ; [.0000.0034.0002] # MANICHAEAN ABBREVIATION MARK BELOW
0336 ; [.0000.0035.0002] # COMBINING LONG STROKE OVERLAY
0337 ; [.0000.0035.0002] # COMBINING SHORT SOLIDUS OVERLAY
20D8 ; [.0000.0035.0002] # COMBINING RING OVERLAY
@@ -6089,6 +6935,8 @@ A67D ; [.0000.0033.0002] # COMBINING CYRILLIC PAYEROK
20E5 ; [.0000.0035.0002] # COMBINING REVERSE SOLIDUS OVERLAY
20EA ; [.0000.0035.0002] # COMBINING LEFTWARDS ARROW OVERLAY
20EB ; [.0000.0035.0002] # COMBINING LONG DOUBLE SOLIDUS OVERLAY
+1BC9E ; [.0000.0035.0002] # DUPLOYAN DOUBLE MARK
+1ABE ; [.0000.0036.0002] # COMBINING PARENTHESES OVERLAY
20DD ; [.0000.0036.0002] # COMBINING ENCLOSING CIRCLE
20DE ; [.0000.0036.0002] # COMBINING ENCLOSING SQUARE
20DF ; [.0000.0036.0002] # COMBINING ENCLOSING DIAMOND
@@ -6123,6 +6971,7 @@ FF9F ; [.0000.0038.0012] # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
0358 ; [.0000.004D.0002] # COMBINING DOT ABOVE RIGHT
0360 ; [.0000.004E.0002] # COMBINING DOUBLE TILDE
FE22 ; [.0000.004E.0002] # COMBINING DOUBLE TILDE LEFT HALF
+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
@@ -6203,9 +7052,10 @@ FC62 ; [.0000.007D.001A][.0000.0080.001A] # ARABIC LIGATURE SHADDA WITH KASRA I
08E6 ; [.0000.007E.0002] # ARABIC CURLY KASRA
08F6 ; [.0000.007F.0002] # ARABIC KASRA WITH DOT BELOW
0651 ; [.0000.0080.0002] # ARABIC SHADDA
+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.0096.001A] # ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC63 ; [.0000.0080.001A][.0000.0097.001A] # ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
0652 ; [.0000.0081.0002] # ARABIC SUKUN
FE7F ; [.0000.0081.0018] # ARABIC SUKUN MEDIAL FORM
FE7E ; [.0000.0081.001A] # ARABIC SUKUN ISOLATED FORM
@@ -6216,17446 +7066,19437 @@ FE7E ; [.0000.0081.001A] # ARABIC SUKUN ISOLATED FORM
0656 ; [.0000.0086.0002] # ARABIC SUBSCRIPT ALEF
0657 ; [.0000.0087.0002] # ARABIC INVERTED DAMMA
0658 ; [.0000.0088.0002] # ARABIC MARK NOON GHUNNA
-0659 ; [.0000.0089.0002] # ARABIC ZWARAKAY
-065A ; [.0000.008A.0002] # ARABIC VOWEL SIGN SMALL V ABOVE
-065B ; [.0000.008B.0002] # ARABIC VOWEL SIGN INVERTED SMALL V ABOVE
-065C ; [.0000.008C.0002] # ARABIC VOWEL SIGN DOT BELOW
-065D ; [.0000.008D.0002] # ARABIC REVERSED DAMMA
-065E ; [.0000.008E.0002] # ARABIC FATHA WITH TWO DOTS
-08F7 ; [.0000.008F.0002] # ARABIC LEFT ARROWHEAD ABOVE
-08F8 ; [.0000.0090.0002] # ARABIC RIGHT ARROWHEAD ABOVE
-08FD ; [.0000.0091.0002] # ARABIC RIGHT ARROWHEAD ABOVE WITH DOT
-08FB ; [.0000.0092.0002] # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE
-08FC ; [.0000.0093.0002] # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT
-08F9 ; [.0000.0094.0002] # ARABIC LEFT ARROWHEAD BELOW
-08FA ; [.0000.0095.0002] # ARABIC RIGHT ARROWHEAD BELOW
-0670 ; [.0000.0096.0002] # ARABIC LETTER SUPERSCRIPT ALEF
-0711 ; [.0000.0097.0002] # SYRIAC LETTER SUPERSCRIPT ALAPH
-0730 ; [.0000.0098.0002] # SYRIAC PTHAHA ABOVE
-0731 ; [.0000.0099.0002] # SYRIAC PTHAHA BELOW
-0732 ; [.0000.009A.0002] # SYRIAC PTHAHA DOTTED
-0733 ; [.0000.009B.0002] # SYRIAC ZQAPHA ABOVE
-0734 ; [.0000.009C.0002] # SYRIAC ZQAPHA BELOW
-0735 ; [.0000.009D.0002] # SYRIAC ZQAPHA DOTTED
-0736 ; [.0000.009E.0002] # SYRIAC RBASA ABOVE
-0737 ; [.0000.009F.0002] # SYRIAC RBASA BELOW
-0738 ; [.0000.00A0.0002] # SYRIAC DOTTED ZLAMA HORIZONTAL
-0739 ; [.0000.00A1.0002] # SYRIAC DOTTED ZLAMA ANGULAR
-073A ; [.0000.00A2.0002] # SYRIAC HBASA ABOVE
-073B ; [.0000.00A3.0002] # SYRIAC HBASA BELOW
-073C ; [.0000.00A4.0002] # SYRIAC HBASA-ESASA DOTTED
-073D ; [.0000.00A5.0002] # SYRIAC ESASA ABOVE
-073E ; [.0000.00A6.0002] # SYRIAC ESASA BELOW
-073F ; [.0000.00A7.0002] # SYRIAC RWAHA
-07EB ; [.0000.00A8.0002] # NKO COMBINING SHORT HIGH TONE
-07EC ; [.0000.00A9.0002] # NKO COMBINING SHORT LOW TONE
-07ED ; [.0000.00AA.0002] # NKO COMBINING SHORT RISING TONE
-07EE ; [.0000.00AB.0002] # NKO COMBINING LONG DESCENDING TONE
-07EF ; [.0000.00AC.0002] # NKO COMBINING LONG HIGH TONE
-07F0 ; [.0000.00AD.0002] # NKO COMBINING LONG LOW TONE
-07F1 ; [.0000.00AE.0002] # NKO COMBINING LONG RISING TONE
-07F2 ; [.0000.00AF.0002] # NKO COMBINING NASALIZATION MARK
-07F3 ; [.0000.00B0.0002] # NKO COMBINING DOUBLE DOT ABOVE
-135F ; [.0000.00B1.0002] # ETHIOPIC COMBINING GEMINATION MARK
-135E ; [.0000.00B2.0002] # ETHIOPIC COMBINING VOWEL LENGTH MARK
-135D ; [.0000.00B3.0002] # ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK
-A6F0 ; [.0000.00B4.0002] # BAMUM COMBINING MARK KOQNDON
-A6F1 ; [.0000.00B5.0002] # BAMUM COMBINING MARK TUKWENTIS
-093C ; [.0000.00B6.0002] # DEVANAGARI SIGN NUKTA
-09BC ; [.0000.00B6.0002] # BENGALI SIGN NUKTA
-0A3C ; [.0000.00B6.0002] # GURMUKHI SIGN NUKTA
-0ABC ; [.0000.00B6.0002] # GUJARATI SIGN NUKTA
-0B3C ; [.0000.00B6.0002] # ORIYA SIGN NUKTA
-0CBC ; [.0000.00B6.0002] # KANNADA SIGN NUKTA
-1B34 ; [.0000.00B6.0002] # BALINESE SIGN REREKAN
-1BE6 ; [.0000.00B6.0002] # BATAK SIGN TOMPI
-1C37 ; [.0000.00B6.0002] # LEPCHA SIGN NUKTA
-A9B3 ; [.0000.00B6.0002] # JAVANESE SIGN CECAK TELU
-110BA ; [.0000.00B6.0002] # KAITHI SIGN NUKTA
-116B7 ; [.0000.00B6.0002] # TAKRI SIGN NUKTA
-0900 ; [.0000.00B7.0002] # DEVANAGARI SIGN INVERTED CANDRABINDU
-0901 ; [.0000.00B7.0002] # DEVANAGARI SIGN CANDRABINDU
-0981 ; [.0000.00B7.0002] # BENGALI SIGN CANDRABINDU
-0A01 ; [.0000.00B7.0002] # GURMUKHI SIGN ADAK BINDI
-0A81 ; [.0000.00B7.0002] # GUJARATI SIGN CANDRABINDU
-0B01 ; [.0000.00B7.0002] # ORIYA SIGN CANDRABINDU
-0C01 ; [.0000.00B7.0002] # TELUGU SIGN CANDRABINDU
-1B00 ; [.0000.00B7.0002] # BALINESE SIGN ULU RICEM
-1B01 ; [.0000.00B7.0002] # BALINESE SIGN ULU CANDRA
-A980 ; [.0000.00B7.0002] # JAVANESE SIGN PANYANGGA
-11000 ; [.0000.00B7.0002] # BRAHMI SIGN CANDRABINDU
-11080 ; [.0000.00B7.0002] # KAITHI SIGN CANDRABINDU
-11100 ; [.0000.00B7.0002] # CHAKMA SIGN CANDRABINDU
-11180 ; [.0000.00B7.0002] # SHARADA SIGN CANDRABINDU
-0902 ; [.0000.00B8.0002] # DEVANAGARI SIGN ANUSVARA
-0982 ; [.0000.00B8.0002] # BENGALI SIGN ANUSVARA
-0A02 ; [.0000.00B8.0002] # GURMUKHI SIGN BINDI
-0A82 ; [.0000.00B8.0002] # GUJARATI SIGN ANUSVARA
-0B02 ; [.0000.00B8.0002] # ORIYA SIGN ANUSVARA
-0B82 ; [.0000.00B8.0002] # TAMIL SIGN ANUSVARA
-0C02 ; [.0000.00B8.0002] # TELUGU SIGN ANUSVARA
-0C82 ; [.0000.00B8.0002] # KANNADA SIGN ANUSVARA
-0D02 ; [.0000.00B8.0002] # MALAYALAM SIGN ANUSVARA
-0D82 ; [.0000.00B8.0002] # SINHALA SIGN ANUSVARAYA
-0F7E ; [.0000.00B8.0002] # TIBETAN SIGN RJES SU NGA RO
-1036 ; [.0000.00B8.0002] # MYANMAR SIGN ANUSVARA
-17C6 ; [.0000.00B8.0002] # KHMER SIGN NIKAHIT
-1A74 ; [.0000.00B8.0002] # TAI THAM SIGN MAI KANG
-1B02 ; [.0000.00B8.0002] # BALINESE SIGN CECEK
-1B80 ; [.0000.00B8.0002] # SUNDANESE SIGN PANYECEK
-1CED ; [.0000.00B8.0002] # VEDIC SIGN TIRYAK
-A80B ; [.0000.00B8.0002] # SYLOTI NAGRI SIGN ANUSVARA
-A880 ; [.0000.00B8.0002] # SAURASHTRA SIGN ANUSVARA
-A981 ; [.0000.00B8.0002] # JAVANESE SIGN CECAK
-10A0E ; [.0000.00B8.0002] # KHAROSHTHI SIGN ANUSVARA
-11001 ; [.0000.00B8.0002] # BRAHMI SIGN ANUSVARA
-11081 ; [.0000.00B8.0002] # KAITHI SIGN ANUSVARA
-11101 ; [.0000.00B8.0002] # CHAKMA SIGN ANUSVARA
-11181 ; [.0000.00B8.0002] # SHARADA SIGN ANUSVARA
-116AB ; [.0000.00B8.0002] # TAKRI SIGN ANUSVARA
-0903 ; [.0000.00B9.0002] # DEVANAGARI SIGN VISARGA
-0983 ; [.0000.00B9.0002] # BENGALI SIGN VISARGA
-0A03 ; [.0000.00B9.0002] # GURMUKHI SIGN VISARGA
-0A83 ; [.0000.00B9.0002] # GUJARATI SIGN VISARGA
-0B03 ; [.0000.00B9.0002] # ORIYA SIGN VISARGA
-0C03 ; [.0000.00B9.0002] # TELUGU SIGN VISARGA
-0C83 ; [.0000.00B9.0002] # KANNADA SIGN VISARGA
-0D03 ; [.0000.00B9.0002] # MALAYALAM SIGN VISARGA
-0D83 ; [.0000.00B9.0002] # SINHALA SIGN VISARGAYA
-0F7F ; [.0000.00B9.0002] # TIBETAN SIGN RNAM BCAD
-1038 ; [.0000.00B9.0002] # MYANMAR SIGN VISARGA
-17C7 ; [.0000.00B9.0002] # KHMER SIGN REAHMUK
-1B04 ; [.0000.00B9.0002] # BALINESE SIGN BISAH
-1B82 ; [.0000.00B9.0002] # SUNDANESE SIGN PANGWISAD
-1CF2 ; [.0000.00B9.0002] # VEDIC SIGN ARDHAVISARGA
-1CF3 ; [.0000.00B9.0002] # VEDIC SIGN ROTATED ARDHAVISARGA
-A881 ; [.0000.00B9.0002] # SAURASHTRA SIGN VISARGA
-A983 ; [.0000.00B9.0002] # JAVANESE SIGN WIGNYAN
-10A0F ; [.0000.00B9.0002] # KHAROSHTHI SIGN VISARGA
-11002 ; [.0000.00B9.0002] # BRAHMI SIGN VISARGA
-11082 ; [.0000.00B9.0002] # KAITHI SIGN VISARGA
-11102 ; [.0000.00B9.0002] # CHAKMA SIGN VISARGA
-11182 ; [.0000.00B9.0002] # SHARADA SIGN VISARGA
-116AC ; [.0000.00B9.0002] # TAKRI SIGN VISARGA
-0A70 ; [.0000.00BA.0002] # GURMUKHI TIPPI
-0A71 ; [.0000.00BB.0002] # GURMUKHI ADDAK
-1B03 ; [.0000.00BC.0002] # BALINESE SIGN SURANG
-A982 ; [.0000.00BD.0002] # JAVANESE SIGN LAYAR
-1B81 ; [.0000.00BE.0002] # SUNDANESE SIGN PANGLAYAR
-ABEC ; [.0000.00BF.0002] # MEETEI MAYEK LUM IYEK
-10A38 ; [.0000.00C0.0002] # KHAROSHTHI SIGN BAR ABOVE
-10A39 ; [.0000.00C1.0002] # KHAROSHTHI SIGN CAUDA
-10A3A ; [.0000.00C2.0002] # KHAROSHTHI SIGN DOT BELOW
-0E4E ; [.0000.00C3.0002] # THAI CHARACTER YAMAKKAN
-0E47 ; [.0000.00C4.0002] # THAI CHARACTER MAITAIKHU
-0E48 ; [.0000.00C5.0002] # THAI CHARACTER MAI EK
-0E49 ; [.0000.00C6.0002] # THAI CHARACTER MAI THO
-0E4A ; [.0000.00C7.0002] # THAI CHARACTER MAI TRI
-0E4B ; [.0000.00C8.0002] # THAI CHARACTER MAI CHATTAWA
-0E4C ; [.0000.00C9.0002] # THAI CHARACTER THANTHAKHAT
-0E4D ; [.0000.00CA.0002] # THAI CHARACTER NIKHAHIT
-0EC8 ; [.0000.00CB.0002] # LAO TONE MAI EK
-0EC9 ; [.0000.00CC.0002] # LAO TONE MAI THO
-0ECA ; [.0000.00CD.0002] # LAO TONE MAI TI
-0ECB ; [.0000.00CE.0002] # LAO TONE MAI CATAWA
-0ECC ; [.0000.00CF.0002] # LAO CANCELLATION MARK
-0ECD ; [.0000.00D0.0002] # LAO NIGGAHITA
-AABF ; [.0000.00D1.0002] # TAI VIET TONE MAI EK
-AAC1 ; [.0000.00D2.0002] # TAI VIET TONE MAI THO
-0F39 ; [.0000.00D3.0002] # TIBETAN MARK TSA -PHRU
-A92B ; [.0000.00D4.0002] # KAYAH LI TONE PLOPHU
-A92C ; [.0000.00D5.0002] # KAYAH LI TONE CALYA
-A92D ; [.0000.00D6.0002] # KAYAH LI TONE CALYA PLOPHU
-1037 ; [.0000.00D7.0002] # MYANMAR SIGN DOT BELOW
-108D ; [.0000.00D8.0002] # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
-17C8 ; [.0000.00D9.0002] # KHMER SIGN YUUKALEAPINTU
-17C9 ; [.0000.00DA.0002] # KHMER SIGN MUUSIKATOAN
-17CA ; [.0000.00DB.0002] # KHMER SIGN TRIISAP
-1A75 ; [.0000.00DC.0002] # TAI THAM SIGN TONE-1
-1A76 ; [.0000.00DD.0002] # TAI THAM SIGN TONE-2
-1A77 ; [.0000.00DE.0002] # TAI THAM SIGN KHUEN TONE-3
-1A78 ; [.0000.00DF.0002] # TAI THAM SIGN KHUEN TONE-4
-1A79 ; [.0000.00E0.0002] # TAI THAM SIGN KHUEN TONE-5
-1A7A ; [.0000.00E1.0002] # TAI THAM SIGN RA HAAM
-1A7B ; [.0000.00E2.0002] # TAI THAM SIGN MAI SAM
-1A7C ; [.0000.00E3.0002] # TAI THAM SIGN KHUEN-LUE KARAN
-1939 ; [.0000.00E4.0002] # LIMBU SIGN MUKPHRENG
-193A ; [.0000.00E5.0002] # LIMBU SIGN KEMPHRENG
-193B ; [.0000.00E6.0002] # LIMBU SIGN SA-I
-302A ; [.0000.00E7.0002] # IDEOGRAPHIC LEVEL TONE MARK
-302B ; [.0000.00E8.0002] # IDEOGRAPHIC RISING TONE MARK
-302C ; [.0000.00E9.0002] # IDEOGRAPHIC DEPARTING TONE MARK
-302D ; [.0000.00EA.0002] # IDEOGRAPHIC ENTERING TONE MARK
-302E ; [.0000.00EB.0002] # HANGUL SINGLE DOT TONE MARK
-302F ; [.0000.00EC.0002] # HANGUL DOUBLE DOT TONE MARK
-20D0 ; [.0000.00ED.0002] # COMBINING LEFT HARPOON ABOVE
-20D1 ; [.0000.00EE.0002] # COMBINING RIGHT HARPOON ABOVE
-20D2 ; [.0000.00EF.0002] # COMBINING LONG VERTICAL LINE OVERLAY
-20D3 ; [.0000.00EF.0002] # COMBINING SHORT VERTICAL LINE OVERLAY
-20D4 ; [.0000.00F0.0002] # COMBINING ANTICLOCKWISE ARROW ABOVE
-20D5 ; [.0000.00F1.0002] # COMBINING CLOCKWISE ARROW ABOVE
-20D6 ; [.0000.00F2.0002] # COMBINING LEFT ARROW ABOVE
-20D7 ; [.0000.00F3.0002] # COMBINING RIGHT ARROW ABOVE
-20DB ; [.0000.00F4.0002] # COMBINING THREE DOTS ABOVE
-20DC ; [.0000.00F5.0002] # COMBINING FOUR DOTS ABOVE
-20E1 ; [.0000.00F6.0002] # COMBINING LEFT RIGHT ARROW ABOVE
-20E6 ; [.0000.00F7.0002] # COMBINING DOUBLE VERTICAL STROKE OVERLAY
-20E7 ; [.0000.00F8.0002] # COMBINING ANNUITY SYMBOL
-20E8 ; [.0000.00F9.0002] # COMBINING TRIPLE UNDERDOT
-20E9 ; [.0000.00FA.0002] # COMBINING WIDE BRIDGE ABOVE
-101FD ; [.0000.00FB.0002] # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
-02D0 ; [.15A4.0020.0002] # MODIFIER LETTER TRIANGULAR COLON
-02D1 ; [.15A5.0020.0002] # MODIFIER LETTER HALF TRIANGULAR COLON
-0971 ; [.15A6.0020.0002] # DEVANAGARI SIGN HIGH SPACING DOT
-0E46 ; [.15A7.0020.0002] # THAI CHARACTER MAIYAMOK
-0EC6 ; [.15A8.0020.0002] # LAO KO LA
-17D7 ; [.15A9.0020.0002] # KHMER SIGN LEK TOO
-1AA7 ; [.15AA.0020.0002] # TAI THAM SIGN MAI YAMOK
-A9CF ; [.15AB.0020.0002] # JAVANESE PANGRANGKEP
-AA70 ; [.15AC.0020.0002] # MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
-AADD ; [.15AD.0020.0002] # TAI VIET SYMBOL SAM
-AAF3 ; [.15AE.0020.0002] # MEETEI MAYEK SYLLABLE REPETITION MARK
-AAF4 ; [.15AF.0020.0002] # MEETEI MAYEK WORD REPETITION MARK
-3005 ; [.15B0.0020.0002] # IDEOGRAPHIC ITERATION MARK
-303B ; [.15B1.0020.0002] # VERTICAL IDEOGRAPHIC ITERATION MARK
-3031 ; [.15B2.0020.0002] # VERTICAL KANA REPEAT MARK
-3032 ; [.15B2.0020.0002][.0000.0037.0002] # VERTICAL KANA REPEAT WITH VOICED SOUND MARK
-3033 ; [.15B3.0020.0002] # VERTICAL KANA REPEAT MARK UPPER HALF
-3034 ; [.15B3.0020.0002][.0000.0037.0002] # VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
-3035 ; [.15B4.0020.0002] # VERTICAL KANA REPEAT MARK LOWER HALF
-309D ; [.15B5.0020.0002] # HIRAGANA ITERATION MARK
-309E ; [.15B5.0020.0002][.0000.0037.0002] # HIRAGANA VOICED ITERATION MARK
-30FC ; [.15B6.0020.0002] # KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FF70 ; [.15B6.0020.0012] # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-30FD ; [.15B7.0020.0002] # KATAKANA ITERATION MARK
-30FE ; [.15B7.0020.0002][.0000.0037.0002] # KATAKANA VOICED ITERATION MARK
-00A4 ; [.15B8.0020.0002] # CURRENCY SIGN
-00A2 ; [.15B9.0020.0002] # CENT SIGN
-FFE0 ; [.15B9.0020.0003] # FULLWIDTH CENT SIGN
-0024 ; [.15BA.0020.0002] # DOLLAR SIGN
-FF04 ; [.15BA.0020.0003] # FULLWIDTH DOLLAR SIGN
-FE69 ; [.15BA.0020.000F] # SMALL DOLLAR SIGN
-00A3 ; [.15BB.0020.0002] # POUND SIGN
-FFE1 ; [.15BB.0020.0003] # FULLWIDTH POUND SIGN
-00A5 ; [.15BC.0020.0002] # YEN SIGN
-FFE5 ; [.15BC.0020.0003] # FULLWIDTH YEN SIGN
-058F ; [.15BD.0020.0002] # ARMENIAN DRAM SIGN
-060B ; [.15BE.0020.0002] # AFGHANI SIGN
-09F2 ; [.15BF.0020.0002] # BENGALI RUPEE MARK
-09F3 ; [.15C0.0020.0002] # BENGALI RUPEE SIGN
-09FB ; [.15C1.0020.0002] # BENGALI GANDA MARK
-0AF1 ; [.15C2.0020.0002] # GUJARATI RUPEE SIGN
-A838 ; [.15C3.0020.0002] # NORTH INDIC RUPEE MARK
-0BF9 ; [.15C4.0020.0002] # TAMIL RUPEE SIGN
-0E3F ; [.15C5.0020.0002] # THAI CURRENCY SYMBOL BAHT
-17DB ; [.15C6.0020.0002] # KHMER CURRENCY SYMBOL RIEL
-20A0 ; [.15C7.0020.0002] # EURO-CURRENCY SIGN
-20A1 ; [.15C8.0020.0002] # COLON SIGN
-20A2 ; [.15C9.0020.0002] # CRUZEIRO SIGN
-20A3 ; [.15CA.0020.0002] # FRENCH FRANC SIGN
-20A4 ; [.15CB.0020.0002] # LIRA SIGN
-20A5 ; [.15CC.0020.0002] # MILL SIGN
-20A6 ; [.15CD.0020.0002] # NAIRA SIGN
-20A7 ; [.15CE.0020.0002] # PESETA SIGN
-20A9 ; [.15CF.0020.0002] # WON SIGN
-FFE6 ; [.15CF.0020.0003] # FULLWIDTH WON SIGN
-20AA ; [.15D0.0020.0002] # NEW SHEQEL SIGN
-20AB ; [.15D1.0020.0002] # DONG SIGN
-20AC ; [.15D2.0020.0002] # EURO SIGN
-20AD ; [.15D3.0020.0002] # KIP SIGN
-20AE ; [.15D4.0020.0002] # TUGRIK SIGN
-20AF ; [.15D5.0020.0002] # DRACHMA SIGN
-20B0 ; [.15D6.0020.0002] # GERMAN PENNY SIGN
-20B1 ; [.15D7.0020.0002] # PESO SIGN
-20B2 ; [.15D8.0020.0002] # GUARANI SIGN
-20B3 ; [.15D9.0020.0002] # AUSTRAL SIGN
-20B4 ; [.15DA.0020.0002] # HRYVNIA SIGN
-20B5 ; [.15DB.0020.0002] # CEDI SIGN
-20B6 ; [.15DC.0020.0002] # LIVRE TOURNOIS SIGN
-20B7 ; [.15DD.0020.0002] # SPESMILO SIGN
-20B8 ; [.15DE.0020.0002] # TENGE SIGN
-20B9 ; [.15DF.0020.0002] # INDIAN RUPEE SIGN
-20BA ; [.15E0.0020.0002] # TURKISH LIRA SIGN
-0030 ; [.15E1.0020.0002] # DIGIT ZERO
-0660 ; [.15E1.0020.0002] # ARABIC-INDIC DIGIT ZERO
-06F0 ; [.15E1.0020.0002] # EXTENDED ARABIC-INDIC DIGIT ZERO
-07C0 ; [.15E1.0020.0002] # NKO DIGIT ZERO
-0966 ; [.15E1.0020.0002] # DEVANAGARI DIGIT ZERO
-09E6 ; [.15E1.0020.0002] # BENGALI DIGIT ZERO
-0A66 ; [.15E1.0020.0002] # GURMUKHI DIGIT ZERO
-0AE6 ; [.15E1.0020.0002] # GUJARATI DIGIT ZERO
-0B66 ; [.15E1.0020.0002] # ORIYA DIGIT ZERO
-0BE6 ; [.15E1.0020.0002] # TAMIL DIGIT ZERO
-0C66 ; [.15E1.0020.0002] # TELUGU DIGIT ZERO
-0C78 ; [.15E1.0020.0002] # TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR
-0CE6 ; [.15E1.0020.0002] # KANNADA DIGIT ZERO
-0D66 ; [.15E1.0020.0002] # MALAYALAM DIGIT ZERO
-0E50 ; [.15E1.0020.0002] # THAI DIGIT ZERO
-0ED0 ; [.15E1.0020.0002] # LAO DIGIT ZERO
-0F20 ; [.15E1.0020.0002] # TIBETAN DIGIT ZERO
-1040 ; [.15E1.0020.0002] # MYANMAR DIGIT ZERO
-1090 ; [.15E1.0020.0002] # MYANMAR SHAN DIGIT ZERO
-17E0 ; [.15E1.0020.0002] # KHMER DIGIT ZERO
-17F0 ; [.15E1.0020.0002] # KHMER SYMBOL LEK ATTAK SON
-1810 ; [.15E1.0020.0002] # MONGOLIAN DIGIT ZERO
-1946 ; [.15E1.0020.0002] # LIMBU DIGIT ZERO
-19D0 ; [.15E1.0020.0002] # NEW TAI LUE DIGIT ZERO
-1A80 ; [.15E1.0020.0002] # TAI THAM HORA DIGIT ZERO
-1A90 ; [.15E1.0020.0002] # TAI THAM THAM DIGIT ZERO
-1B50 ; [.15E1.0020.0002] # BALINESE DIGIT ZERO
-1BB0 ; [.15E1.0020.0002] # SUNDANESE DIGIT ZERO
-1C40 ; [.15E1.0020.0002] # LEPCHA DIGIT ZERO
-1C50 ; [.15E1.0020.0002] # OL CHIKI DIGIT ZERO
-3007 ; [.15E1.0020.0002] # IDEOGRAPHIC NUMBER ZERO
-A620 ; [.15E1.0020.0002] # VAI DIGIT ZERO
-A8D0 ; [.15E1.0020.0002] # SAURASHTRA DIGIT ZERO
-A900 ; [.15E1.0020.0002] # KAYAH LI DIGIT ZERO
-A9D0 ; [.15E1.0020.0002] # JAVANESE DIGIT ZERO
-AA50 ; [.15E1.0020.0002] # CHAM DIGIT ZERO
-ABF0 ; [.15E1.0020.0002] # MEETEI MAYEK DIGIT ZERO
-1018A ; [.15E1.0020.0002] # GREEK ZERO SIGN
-104A0 ; [.15E1.0020.0002] # OSMANYA DIGIT ZERO
-11066 ; [.15E1.0020.0002] # BRAHMI DIGIT ZERO
-110F0 ; [.15E1.0020.0002] # SORA SOMPENG DIGIT ZERO
-11136 ; [.15E1.0020.0002] # CHAKMA DIGIT ZERO
-111D0 ; [.15E1.0020.0002] # SHARADA DIGIT ZERO
-116C0 ; [.15E1.0020.0002] # TAKRI DIGIT ZERO
-FF10 ; [.15E1.0020.0003] # FULLWIDTH DIGIT ZERO
-0F33 ; [.15E1.0020.0004] # TIBETAN DIGIT HALF ZERO
-1F100 ; [.15E1.0020.0004][*0272.0020.0004] # DIGIT ZERO FULL STOP
-1F101 ; [.15E1.0020.0004][*0220.0020.0004] # DIGIT ZERO COMMA
-1D7CE ; [.15E1.0020.0005] # MATHEMATICAL BOLD DIGIT ZERO
-1D7D8 ; [.15E1.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
-1D7E2 ; [.15E1.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT ZERO
-1D7EC ; [.15E1.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
-1D7F6 ; [.15E1.0020.0005] # MATHEMATICAL MONOSPACE DIGIT ZERO
-24EA ; [.15E1.0020.0006] # CIRCLED DIGIT ZERO
-24FF ; [.15E1.0020.0006] # NEGATIVE CIRCLED DIGIT ZERO
-2070 ; [.15E1.0020.0014] # SUPERSCRIPT ZERO
-2080 ; [.15E1.0020.0015] # SUBSCRIPT ZERO
-2189 ; [.15E1.0020.001E][*05AF.0020.001E][.15E4.0020.001E] # VULGAR FRACTION ZERO THIRDS
-3358 ; [.15E1.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-0031 ; [.15E2.0020.0002] # DIGIT ONE
-0661 ; [.15E2.0020.0002] # ARABIC-INDIC DIGIT ONE
-06F1 ; [.15E2.0020.0002] # EXTENDED ARABIC-INDIC DIGIT ONE
-07C1 ; [.15E2.0020.0002] # NKO DIGIT ONE
-0967 ; [.15E2.0020.0002] # DEVANAGARI DIGIT ONE
-09E7 ; [.15E2.0020.0002] # BENGALI DIGIT ONE
-0A67 ; [.15E2.0020.0002] # GURMUKHI DIGIT ONE
-0AE7 ; [.15E2.0020.0002] # GUJARATI DIGIT ONE
-0B67 ; [.15E2.0020.0002] # ORIYA DIGIT ONE
-0BE7 ; [.15E2.0020.0002] # TAMIL DIGIT ONE
-0C67 ; [.15E2.0020.0002] # TELUGU DIGIT ONE
-0C79 ; [.15E2.0020.0002] # TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR
-0C7C ; [.15E2.0020.0002] # TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR
-0CE7 ; [.15E2.0020.0002] # KANNADA DIGIT ONE
-0D67 ; [.15E2.0020.0002] # MALAYALAM DIGIT ONE
-0E51 ; [.15E2.0020.0002] # THAI DIGIT ONE
-0ED1 ; [.15E2.0020.0002] # LAO DIGIT ONE
-0F21 ; [.15E2.0020.0002] # TIBETAN DIGIT ONE
-1041 ; [.15E2.0020.0002] # MYANMAR DIGIT ONE
-1091 ; [.15E2.0020.0002] # MYANMAR SHAN DIGIT ONE
-1369 ; [.15E2.0020.0002] # ETHIOPIC DIGIT ONE
-17E1 ; [.15E2.0020.0002] # KHMER DIGIT ONE
-17F1 ; [.15E2.0020.0002] # KHMER SYMBOL LEK ATTAK MUOY
-1811 ; [.15E2.0020.0002] # MONGOLIAN DIGIT ONE
-1947 ; [.15E2.0020.0002] # LIMBU DIGIT ONE
-19D1 ; [.15E2.0020.0002] # NEW TAI LUE DIGIT ONE
-19DA ; [.15E2.0020.0002] # NEW TAI LUE THAM DIGIT ONE
-1A81 ; [.15E2.0020.0002] # TAI THAM HORA DIGIT ONE
-1A91 ; [.15E2.0020.0002] # TAI THAM THAM DIGIT ONE
-1B51 ; [.15E2.0020.0002] # BALINESE DIGIT ONE
-1BB1 ; [.15E2.0020.0002] # SUNDANESE DIGIT ONE
-1C41 ; [.15E2.0020.0002] # LEPCHA DIGIT ONE
-1C51 ; [.15E2.0020.0002] # OL CHIKI DIGIT ONE
-3021 ; [.15E2.0020.0002] # HANGZHOU NUMERAL ONE
-A621 ; [.15E2.0020.0002] # VAI DIGIT ONE
-A8D1 ; [.15E2.0020.0002] # SAURASHTRA DIGIT ONE
-A901 ; [.15E2.0020.0002] # KAYAH LI DIGIT ONE
-A9D1 ; [.15E2.0020.0002] # JAVANESE DIGIT ONE
-AA51 ; [.15E2.0020.0002] # CHAM DIGIT ONE
-ABF1 ; [.15E2.0020.0002] # MEETEI MAYEK DIGIT ONE
-10107 ; [.15E2.0020.0002] # AEGEAN NUMBER ONE
-10142 ; [.15E2.0020.0002] # GREEK ACROPHONIC ATTIC ONE DRACHMA
-10158 ; [.15E2.0020.0002] # GREEK ACROPHONIC HERAEUM ONE PLETHRON
-10159 ; [.15E2.0020.0002] # GREEK ACROPHONIC THESPIAN ONE
-1015A ; [.15E2.0020.0002] # GREEK ACROPHONIC HERMIONIAN ONE
-10320 ; [.15E2.0020.0002] # OLD ITALIC NUMERAL ONE
-103D1 ; [.15E2.0020.0002] # OLD PERSIAN NUMBER ONE
-104A1 ; [.15E2.0020.0002] # OSMANYA DIGIT ONE
-10858 ; [.15E2.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE
-10916 ; [.15E2.0020.0002] # PHOENICIAN NUMBER ONE
-10A40 ; [.15E2.0020.0002] # KHAROSHTHI DIGIT ONE
-10A7D ; [.15E2.0020.0002] # OLD SOUTH ARABIAN NUMBER ONE
-10B58 ; [.15E2.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE
-10B78 ; [.15E2.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE
-10E60 ; [.15E2.0020.0002] # RUMI DIGIT ONE
-11052 ; [.15E2.0020.0002] # BRAHMI NUMBER ONE
-11067 ; [.15E2.0020.0002] # BRAHMI DIGIT ONE
-110F1 ; [.15E2.0020.0002] # SORA SOMPENG DIGIT ONE
-11137 ; [.15E2.0020.0002] # CHAKMA DIGIT ONE
-111D1 ; [.15E2.0020.0002] # SHARADA DIGIT ONE
-116C1 ; [.15E2.0020.0002] # TAKRI DIGIT ONE
-12415 ; [.15E2.0020.0002] # CUNEIFORM NUMERIC SIGN ONE GESH2
-1241E ; [.15E2.0020.0002] # CUNEIFORM NUMERIC SIGN ONE GESHU
-1242C ; [.15E2.0020.0002] # CUNEIFORM NUMERIC SIGN ONE SHARU
-12434 ; [.15E2.0020.0002] # CUNEIFORM NUMERIC SIGN ONE BURU
-1244F ; [.15E2.0020.0002] # CUNEIFORM NUMERIC SIGN ONE BAN2
-12458 ; [.15E2.0020.0002] # CUNEIFORM NUMERIC SIGN ONE ESHE3
-1D360 ; [.15E2.0020.0002] # COUNTING ROD UNIT DIGIT ONE
-FF11 ; [.15E2.0020.0003] # FULLWIDTH DIGIT ONE
-0F2A ; [.15E2.0020.0004] # TIBETAN DIGIT HALF ONE
-2474 ; [*02FA.0020.0004][.15E2.0020.0004][*02FB.0020.0004] # PARENTHESIZED DIGIT ONE
-2488 ; [.15E2.0020.0004][*0272.0020.0004] # DIGIT ONE FULL STOP
-1F102 ; [.15E2.0020.0004][*0220.0020.0004] # DIGIT ONE COMMA
-1D7CF ; [.15E2.0020.0005] # MATHEMATICAL BOLD DIGIT ONE
-1D7D9 ; [.15E2.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
-1D7E3 ; [.15E2.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT ONE
-1D7ED ; [.15E2.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
-1D7F7 ; [.15E2.0020.0005] # MATHEMATICAL MONOSPACE DIGIT ONE
-2460 ; [.15E2.0020.0006] # CIRCLED DIGIT ONE
-24F5 ; [.15E2.0020.0006] # DOUBLE CIRCLED DIGIT ONE
-2776 ; [.15E2.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT ONE
-2780 ; [.15E2.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT ONE
-278A ; [.15E2.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
-00B9 ; [.15E2.0020.0014] # SUPERSCRIPT ONE
-2081 ; [.15E2.0020.0015] # SUBSCRIPT ONE
-215F ; [.15E2.0020.001E][*05AF.0020.001E] # FRACTION NUMERATOR ONE
-247D ; [*02FA.0020.0004][.15E2.0020.0004][.15E1.0020.0004][*02FB.0020.0004] # PARENTHESIZED NUMBER TEN
-2491 ; [.15E2.0020.0004][.15E1.0020.0004][*0272.0020.0004] # NUMBER TEN FULL STOP
-2469 ; [.15E2.0020.0006][.15E1.0020.0006] # CIRCLED NUMBER TEN
-24FE ; [.15E2.0020.0006][.15E1.0020.0006] # DOUBLE CIRCLED NUMBER TEN
-277F ; [.15E2.0020.0006][.15E1.0020.0006] # DINGBAT NEGATIVE CIRCLED NUMBER TEN
-2789 ; [.15E2.0020.0006][.15E1.0020.0006] # DINGBAT CIRCLED SANS-SERIF NUMBER TEN
-2793 ; [.15E2.0020.0006][.15E1.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
-3248 ; [.15E2.0020.0006][.15E1.0020.0006] # CIRCLED NUMBER TEN ON BLACK SQUARE
-33E9 ; [.15E2.0020.0004][.15E1.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-32C9 ; [.15E2.0020.0004][.15E1.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-3362 ; [.15E2.0020.0004][.15E1.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-247E ; [*02FA.0020.0004][.15E2.0020.0004][.15E2.0020.0004][*02FB.0020.0004] # PARENTHESIZED NUMBER ELEVEN
-2492 ; [.15E2.0020.0004][.15E2.0020.0004][*0272.0020.0004] # NUMBER ELEVEN FULL STOP
-246A ; [.15E2.0020.0006][.15E2.0020.0006] # CIRCLED NUMBER ELEVEN
-24EB ; [.15E2.0020.0006][.15E2.0020.0006] # NEGATIVE CIRCLED NUMBER ELEVEN
-2152 ; [.15E2.0020.001E][*05AF.0020.001E][.15E2.0020.001E][.15E1.0020.001E] # VULGAR FRACTION ONE TENTH
-33EA ; [.15E2.0020.0004][.15E2.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-32CA ; [.15E2.0020.0004][.15E2.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-3363 ; [.15E2.0020.0004][.15E2.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-247F ; [*02FA.0020.0004][.15E2.0020.0004][.15E3.0020.0004][*02FB.0020.0004] # PARENTHESIZED NUMBER TWELVE
-2493 ; [.15E2.0020.0004][.15E3.0020.0004][*0272.0020.0004] # NUMBER TWELVE FULL STOP
-246B ; [.15E2.0020.0006][.15E3.0020.0006] # CIRCLED NUMBER TWELVE
-24EC ; [.15E2.0020.0006][.15E3.0020.0006] # NEGATIVE CIRCLED NUMBER TWELVE
-00BD ; [.15E2.0020.001E][*05AF.0020.001E][.15E3.0020.001E] # VULGAR FRACTION ONE HALF
-33EB ; [.15E2.0020.0004][.15E3.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-32CB ; [.15E2.0020.0004][.15E3.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-3364 ; [.15E2.0020.0004][.15E3.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-2480 ; [*02FA.0020.0004][.15E2.0020.0004][.15E4.0020.0004][*02FB.0020.0004] # PARENTHESIZED NUMBER THIRTEEN
-2494 ; [.15E2.0020.0004][.15E4.0020.0004][*0272.0020.0004] # NUMBER THIRTEEN FULL STOP
-246C ; [.15E2.0020.0006][.15E4.0020.0006] # CIRCLED NUMBER THIRTEEN
-24ED ; [.15E2.0020.0006][.15E4.0020.0006] # NEGATIVE CIRCLED NUMBER THIRTEEN
-2153 ; [.15E2.0020.001E][*05AF.0020.001E][.15E4.0020.001E] # VULGAR FRACTION ONE THIRD
-33EC ; [.15E2.0020.0004][.15E4.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-3365 ; [.15E2.0020.0004][.15E4.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-2481 ; [*02FA.0020.0004][.15E2.0020.0004][.15E5.0020.0004][*02FB.0020.0004] # PARENTHESIZED NUMBER FOURTEEN
-2495 ; [.15E2.0020.0004][.15E5.0020.0004][*0272.0020.0004] # NUMBER FOURTEEN FULL STOP
-246D ; [.15E2.0020.0006][.15E5.0020.0006] # CIRCLED NUMBER FOURTEEN
-24EE ; [.15E2.0020.0006][.15E5.0020.0006] # NEGATIVE CIRCLED NUMBER FOURTEEN
-00BC ; [.15E2.0020.001E][*05AF.0020.001E][.15E5.0020.001E] # VULGAR FRACTION ONE QUARTER
-33ED ; [.15E2.0020.0004][.15E5.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-3366 ; [.15E2.0020.0004][.15E5.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-2482 ; [*02FA.0020.0004][.15E2.0020.0004][.15E6.0020.0004][*02FB.0020.0004] # PARENTHESIZED NUMBER FIFTEEN
-2496 ; [.15E2.0020.0004][.15E6.0020.0004][*0272.0020.0004] # NUMBER FIFTEEN FULL STOP
-246E ; [.15E2.0020.0006][.15E6.0020.0006] # CIRCLED NUMBER FIFTEEN
-24EF ; [.15E2.0020.0006][.15E6.0020.0006] # NEGATIVE CIRCLED NUMBER FIFTEEN
-2155 ; [.15E2.0020.001E][*05AF.0020.001E][.15E6.0020.001E] # VULGAR FRACTION ONE FIFTH
-33EE ; [.15E2.0020.0004][.15E6.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-3367 ; [.15E2.0020.0004][.15E6.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-2483 ; [*02FA.0020.0004][.15E2.0020.0004][.15E7.0020.0004][*02FB.0020.0004] # PARENTHESIZED NUMBER SIXTEEN
-2497 ; [.15E2.0020.0004][.15E7.0020.0004][*0272.0020.0004] # NUMBER SIXTEEN FULL STOP
-246F ; [.15E2.0020.0006][.15E7.0020.0006] # CIRCLED NUMBER SIXTEEN
-24F0 ; [.15E2.0020.0006][.15E7.0020.0006] # NEGATIVE CIRCLED NUMBER SIXTEEN
-2159 ; [.15E2.0020.001E][*05AF.0020.001E][.15E7.0020.001E] # VULGAR FRACTION ONE SIXTH
-33EF ; [.15E2.0020.0004][.15E7.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-3368 ; [.15E2.0020.0004][.15E7.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-2484 ; [*02FA.0020.0004][.15E2.0020.0004][.15E8.0020.0004][*02FB.0020.0004] # PARENTHESIZED NUMBER SEVENTEEN
-2498 ; [.15E2.0020.0004][.15E8.0020.0004][*0272.0020.0004] # NUMBER SEVENTEEN FULL STOP
-2470 ; [.15E2.0020.0006][.15E8.0020.0006] # CIRCLED NUMBER SEVENTEEN
-24F1 ; [.15E2.0020.0006][.15E8.0020.0006] # NEGATIVE CIRCLED NUMBER SEVENTEEN
-2150 ; [.15E2.0020.001E][*05AF.0020.001E][.15E8.0020.001E] # VULGAR FRACTION ONE SEVENTH
-33F0 ; [.15E2.0020.0004][.15E8.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-3369 ; [.15E2.0020.0004][.15E8.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-2485 ; [*02FA.0020.0004][.15E2.0020.0004][.15E9.0020.0004][*02FB.0020.0004] # PARENTHESIZED NUMBER EIGHTEEN
-2499 ; [.15E2.0020.0004][.15E9.0020.0004][*0272.0020.0004] # NUMBER EIGHTEEN FULL STOP
-2471 ; [.15E2.0020.0006][.15E9.0020.0006] # CIRCLED NUMBER EIGHTEEN
-24F2 ; [.15E2.0020.0006][.15E9.0020.0006] # NEGATIVE CIRCLED NUMBER EIGHTEEN
-215B ; [.15E2.0020.001E][*05AF.0020.001E][.15E9.0020.001E] # VULGAR FRACTION ONE EIGHTH
-33F1 ; [.15E2.0020.0004][.15E9.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-336A ; [.15E2.0020.0004][.15E9.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-2486 ; [*02FA.0020.0004][.15E2.0020.0004][.15EA.0020.0004][*02FB.0020.0004] # PARENTHESIZED NUMBER NINETEEN
-249A ; [.15E2.0020.0004][.15EA.0020.0004][*0272.0020.0004] # NUMBER NINETEEN FULL STOP
-2472 ; [.15E2.0020.0006][.15EA.0020.0006] # CIRCLED NUMBER NINETEEN
-24F3 ; [.15E2.0020.0006][.15EA.0020.0006] # NEGATIVE CIRCLED NUMBER NINETEEN
-2151 ; [.15E2.0020.001E][*05AF.0020.001E][.15EA.0020.001E] # VULGAR FRACTION ONE NINTH
-33F2 ; [.15E2.0020.0004][.15EA.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-336B ; [.15E2.0020.0004][.15EA.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-33E0 ; [.15E2.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-32C0 ; [.15E2.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-3359 ; [.15E2.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-0032 ; [.15E3.0020.0002] # DIGIT TWO
-0662 ; [.15E3.0020.0002] # ARABIC-INDIC DIGIT TWO
-06F2 ; [.15E3.0020.0002] # EXTENDED ARABIC-INDIC DIGIT TWO
-07C2 ; [.15E3.0020.0002] # NKO DIGIT TWO
-0968 ; [.15E3.0020.0002] # DEVANAGARI DIGIT TWO
-09E8 ; [.15E3.0020.0002] # BENGALI DIGIT TWO
-0A68 ; [.15E3.0020.0002] # GURMUKHI DIGIT TWO
-0AE8 ; [.15E3.0020.0002] # GUJARATI DIGIT TWO
-0B68 ; [.15E3.0020.0002] # ORIYA DIGIT TWO
-0BE8 ; [.15E3.0020.0002] # TAMIL DIGIT TWO
-0C68 ; [.15E3.0020.0002] # TELUGU DIGIT TWO
-0C7A ; [.15E3.0020.0002] # TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR
-0C7D ; [.15E3.0020.0002] # TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR
-0CE8 ; [.15E3.0020.0002] # KANNADA DIGIT TWO
-0D68 ; [.15E3.0020.0002] # MALAYALAM DIGIT TWO
-0E52 ; [.15E3.0020.0002] # THAI DIGIT TWO
-0ED2 ; [.15E3.0020.0002] # LAO DIGIT TWO
-0F22 ; [.15E3.0020.0002] # TIBETAN DIGIT TWO
-1042 ; [.15E3.0020.0002] # MYANMAR DIGIT TWO
-1092 ; [.15E3.0020.0002] # MYANMAR SHAN DIGIT TWO
-136A ; [.15E3.0020.0002] # ETHIOPIC DIGIT TWO
-17E2 ; [.15E3.0020.0002] # KHMER DIGIT TWO
-17F2 ; [.15E3.0020.0002] # KHMER SYMBOL LEK ATTAK PII
-1812 ; [.15E3.0020.0002] # MONGOLIAN DIGIT TWO
-1948 ; [.15E3.0020.0002] # LIMBU DIGIT TWO
-19D2 ; [.15E3.0020.0002] # NEW TAI LUE DIGIT TWO
-1A82 ; [.15E3.0020.0002] # TAI THAM HORA DIGIT TWO
-1A92 ; [.15E3.0020.0002] # TAI THAM THAM DIGIT TWO
-1B52 ; [.15E3.0020.0002] # BALINESE DIGIT TWO
-1BB2 ; [.15E3.0020.0002] # SUNDANESE DIGIT TWO
-1C42 ; [.15E3.0020.0002] # LEPCHA DIGIT TWO
-1C52 ; [.15E3.0020.0002] # OL CHIKI DIGIT TWO
-3022 ; [.15E3.0020.0002] # HANGZHOU NUMERAL TWO
-A622 ; [.15E3.0020.0002] # VAI DIGIT TWO
-A8D2 ; [.15E3.0020.0002] # SAURASHTRA DIGIT TWO
-A902 ; [.15E3.0020.0002] # KAYAH LI DIGIT TWO
-A9D2 ; [.15E3.0020.0002] # JAVANESE DIGIT TWO
-AA52 ; [.15E3.0020.0002] # CHAM DIGIT TWO
-ABF2 ; [.15E3.0020.0002] # MEETEI MAYEK DIGIT TWO
-10108 ; [.15E3.0020.0002] # AEGEAN NUMBER TWO
-1015B ; [.15E3.0020.0002] # GREEK ACROPHONIC EPIDAUREAN TWO
-1015C ; [.15E3.0020.0002] # GREEK ACROPHONIC THESPIAN TWO
-1015D ; [.15E3.0020.0002] # GREEK ACROPHONIC CYRENAIC TWO DRACHMAS
-1015E ; [.15E3.0020.0002] # GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS
-103D2 ; [.15E3.0020.0002] # OLD PERSIAN NUMBER TWO
-104A2 ; [.15E3.0020.0002] # OSMANYA DIGIT TWO
-10859 ; [.15E3.0020.0002] # IMPERIAL ARAMAIC NUMBER TWO
-1091A ; [.15E3.0020.0002] # PHOENICIAN NUMBER TWO
-10A41 ; [.15E3.0020.0002] # KHAROSHTHI DIGIT TWO
-10B59 ; [.15E3.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TWO
-10B79 ; [.15E3.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TWO
-10E61 ; [.15E3.0020.0002] # RUMI DIGIT TWO
-11053 ; [.15E3.0020.0002] # BRAHMI NUMBER TWO
-11068 ; [.15E3.0020.0002] # BRAHMI DIGIT TWO
-110F2 ; [.15E3.0020.0002] # SORA SOMPENG DIGIT TWO
-11138 ; [.15E3.0020.0002] # CHAKMA DIGIT TWO
-111D2 ; [.15E3.0020.0002] # SHARADA DIGIT TWO
-116C2 ; [.15E3.0020.0002] # TAKRI DIGIT TWO
-12400 ; [.15E3.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ASH
-12416 ; [.15E3.0020.0002] # CUNEIFORM NUMERIC SIGN TWO GESH2
-1241F ; [.15E3.0020.0002] # CUNEIFORM NUMERIC SIGN TWO GESHU
-12423 ; [.15E3.0020.0002] # CUNEIFORM NUMERIC SIGN TWO SHAR2
-1242D ; [.15E3.0020.0002] # CUNEIFORM NUMERIC SIGN TWO SHARU
-12435 ; [.15E3.0020.0002] # CUNEIFORM NUMERIC SIGN TWO BURU
-1244A ; [.15E3.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ASH TENU
-12450 ; [.15E3.0020.0002] # CUNEIFORM NUMERIC SIGN TWO BAN2
-12456 ; [.15E3.0020.0002] # CUNEIFORM NUMERIC SIGN NIGIDAMIN
-12459 ; [.15E3.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ESHE3
-1D361 ; [.15E3.0020.0002] # COUNTING ROD UNIT DIGIT TWO
-FF12 ; [.15E3.0020.0003] # FULLWIDTH DIGIT TWO
-0F2B ; [.15E3.0020.0004] # TIBETAN DIGIT HALF TWO
-2475 ; [*02FA.0020.0004][.15E3.0020.0004][*02FB.0020.0004] # PARENTHESIZED DIGIT TWO
-2489 ; [.15E3.0020.0004][*0272.0020.0004] # DIGIT TWO FULL STOP
-1F103 ; [.15E3.0020.0004][*0220.0020.0004] # DIGIT TWO COMMA
-1D7D0 ; [.15E3.0020.0005] # MATHEMATICAL BOLD DIGIT TWO
-1D7DA ; [.15E3.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
-1D7E4 ; [.15E3.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT TWO
-1D7EE ; [.15E3.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
-1D7F8 ; [.15E3.0020.0005] # MATHEMATICAL MONOSPACE DIGIT TWO
-2461 ; [.15E3.0020.0006] # CIRCLED DIGIT TWO
-24F6 ; [.15E3.0020.0006] # DOUBLE CIRCLED DIGIT TWO
-2777 ; [.15E3.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT TWO
-2781 ; [.15E3.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT TWO
-278B ; [.15E3.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
-00B2 ; [.15E3.0020.0014] # SUPERSCRIPT TWO
-2082 ; [.15E3.0020.0015] # SUBSCRIPT TWO
-2487 ; [*02FA.0020.0004][.15E3.0020.0004][.15E1.0020.0004][*02FB.0020.0004] # PARENTHESIZED NUMBER TWENTY
-249B ; [.15E3.0020.0004][.15E1.0020.0004][*0272.0020.0004] # NUMBER TWENTY FULL STOP
-2473 ; [.15E3.0020.0006][.15E1.0020.0006] # CIRCLED NUMBER TWENTY
-24F4 ; [.15E3.0020.0006][.15E1.0020.0006] # NEGATIVE CIRCLED NUMBER TWENTY
-3249 ; [.15E3.0020.0006][.15E1.0020.0006] # CIRCLED NUMBER TWENTY ON BLACK SQUARE
-33F3 ; [.15E3.0020.0004][.15E1.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-336C ; [.15E3.0020.0004][.15E1.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-3251 ; [.15E3.0020.0006][.15E2.0020.0006] # CIRCLED NUMBER TWENTY ONE
-33F4 ; [.15E3.0020.0004][.15E2.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-336D ; [.15E3.0020.0004][.15E2.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-3252 ; [.15E3.0020.0006][.15E3.0020.0006] # CIRCLED NUMBER TWENTY TWO
-33F5 ; [.15E3.0020.0004][.15E3.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-336E ; [.15E3.0020.0004][.15E3.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-3253 ; [.15E3.0020.0006][.15E4.0020.0006] # CIRCLED NUMBER TWENTY THREE
-2154 ; [.15E3.0020.001E][*05AF.0020.001E][.15E4.0020.001E] # VULGAR FRACTION TWO THIRDS
-33F6 ; [.15E3.0020.0004][.15E4.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-336F ; [.15E3.0020.0004][.15E4.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-3254 ; [.15E3.0020.0006][.15E5.0020.0006] # CIRCLED NUMBER TWENTY FOUR
-33F7 ; [.15E3.0020.0004][.15E5.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-3370 ; [.15E3.0020.0004][.15E5.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-3255 ; [.15E3.0020.0006][.15E6.0020.0006] # CIRCLED NUMBER TWENTY FIVE
-2156 ; [.15E3.0020.001E][*05AF.0020.001E][.15E6.0020.001E] # VULGAR FRACTION TWO FIFTHS
-33F8 ; [.15E3.0020.0004][.15E6.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-3256 ; [.15E3.0020.0006][.15E7.0020.0006] # CIRCLED NUMBER TWENTY SIX
-33F9 ; [.15E3.0020.0004][.15E7.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-3257 ; [.15E3.0020.0006][.15E8.0020.0006] # CIRCLED NUMBER TWENTY SEVEN
-33FA ; [.15E3.0020.0004][.15E8.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-3258 ; [.15E3.0020.0006][.15E9.0020.0006] # CIRCLED NUMBER TWENTY EIGHT
-33FB ; [.15E3.0020.0004][.15E9.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-3259 ; [.15E3.0020.0006][.15EA.0020.0006] # CIRCLED NUMBER TWENTY NINE
-33FC ; [.15E3.0020.0004][.15EA.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33E1 ; [.15E3.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-32C1 ; [.15E3.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-335A ; [.15E3.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-0033 ; [.15E4.0020.0002] # DIGIT THREE
-0663 ; [.15E4.0020.0002] # ARABIC-INDIC DIGIT THREE
-06F3 ; [.15E4.0020.0002] # EXTENDED ARABIC-INDIC DIGIT THREE
-07C3 ; [.15E4.0020.0002] # NKO DIGIT THREE
-0969 ; [.15E4.0020.0002] # DEVANAGARI DIGIT THREE
-09E9 ; [.15E4.0020.0002] # BENGALI DIGIT THREE
-0A69 ; [.15E4.0020.0002] # GURMUKHI DIGIT THREE
-0AE9 ; [.15E4.0020.0002] # GUJARATI DIGIT THREE
-0B69 ; [.15E4.0020.0002] # ORIYA DIGIT THREE
-0BE9 ; [.15E4.0020.0002] # TAMIL DIGIT THREE
-0C69 ; [.15E4.0020.0002] # TELUGU DIGIT THREE
-0C7B ; [.15E4.0020.0002] # TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR
-0C7E ; [.15E4.0020.0002] # TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
-0CE9 ; [.15E4.0020.0002] # KANNADA DIGIT THREE
-0D69 ; [.15E4.0020.0002] # MALAYALAM DIGIT THREE
-0E53 ; [.15E4.0020.0002] # THAI DIGIT THREE
-0ED3 ; [.15E4.0020.0002] # LAO DIGIT THREE
-0F23 ; [.15E4.0020.0002] # TIBETAN DIGIT THREE
-1043 ; [.15E4.0020.0002] # MYANMAR DIGIT THREE
-1093 ; [.15E4.0020.0002] # MYANMAR SHAN DIGIT THREE
-136B ; [.15E4.0020.0002] # ETHIOPIC DIGIT THREE
-17E3 ; [.15E4.0020.0002] # KHMER DIGIT THREE
-17F3 ; [.15E4.0020.0002] # KHMER SYMBOL LEK ATTAK BEI
-1813 ; [.15E4.0020.0002] # MONGOLIAN DIGIT THREE
-1949 ; [.15E4.0020.0002] # LIMBU DIGIT THREE
-19D3 ; [.15E4.0020.0002] # NEW TAI LUE DIGIT THREE
-1A83 ; [.15E4.0020.0002] # TAI THAM HORA DIGIT THREE
-1A93 ; [.15E4.0020.0002] # TAI THAM THAM DIGIT THREE
-1B53 ; [.15E4.0020.0002] # BALINESE DIGIT THREE
-1BB3 ; [.15E4.0020.0002] # SUNDANESE DIGIT THREE
-1C43 ; [.15E4.0020.0002] # LEPCHA DIGIT THREE
-1C53 ; [.15E4.0020.0002] # OL CHIKI DIGIT THREE
-3023 ; [.15E4.0020.0002] # HANGZHOU NUMERAL THREE
-A623 ; [.15E4.0020.0002] # VAI DIGIT THREE
-A8D3 ; [.15E4.0020.0002] # SAURASHTRA DIGIT THREE
-A903 ; [.15E4.0020.0002] # KAYAH LI DIGIT THREE
-A9D3 ; [.15E4.0020.0002] # JAVANESE DIGIT THREE
-AA53 ; [.15E4.0020.0002] # CHAM DIGIT THREE
-ABF3 ; [.15E4.0020.0002] # MEETEI MAYEK DIGIT THREE
-10109 ; [.15E4.0020.0002] # AEGEAN NUMBER THREE
-104A3 ; [.15E4.0020.0002] # OSMANYA DIGIT THREE
-1085A ; [.15E4.0020.0002] # IMPERIAL ARAMAIC NUMBER THREE
-1091B ; [.15E4.0020.0002] # PHOENICIAN NUMBER THREE
-10A42 ; [.15E4.0020.0002] # KHAROSHTHI DIGIT THREE
-10B5A ; [.15E4.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER THREE
-10B7A ; [.15E4.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER THREE
-10E62 ; [.15E4.0020.0002] # RUMI DIGIT THREE
-11054 ; [.15E4.0020.0002] # BRAHMI NUMBER THREE
-11069 ; [.15E4.0020.0002] # BRAHMI DIGIT THREE
-110F3 ; [.15E4.0020.0002] # SORA SOMPENG DIGIT THREE
-11139 ; [.15E4.0020.0002] # CHAKMA DIGIT THREE
-111D3 ; [.15E4.0020.0002] # SHARADA DIGIT THREE
-116C3 ; [.15E4.0020.0002] # TAKRI DIGIT THREE
-12401 ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE ASH
-12408 ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE DISH
-12417 ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE GESH2
-12420 ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE GESHU
-12424 ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHAR2
-12425 ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM
-1242E ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHARU
-1242F ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM
-12436 ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BURU
-12437 ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM
-1243A ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16
-1243B ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21
-1244B ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE ASH TENU
-12451 ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BAN2
-12457 ; [.15E4.0020.0002] # CUNEIFORM NUMERIC SIGN NIGIDAESH
-1D362 ; [.15E4.0020.0002] # COUNTING ROD UNIT DIGIT THREE
-FF13 ; [.15E4.0020.0003] # FULLWIDTH DIGIT THREE
-0F2C ; [.15E4.0020.0004] # TIBETAN DIGIT HALF THREE
-2476 ; [*02FA.0020.0004][.15E4.0020.0004][*02FB.0020.0004] # PARENTHESIZED DIGIT THREE
-248A ; [.15E4.0020.0004][*0272.0020.0004] # DIGIT THREE FULL STOP
-1F104 ; [.15E4.0020.0004][*0220.0020.0004] # DIGIT THREE COMMA
-1D7D1 ; [.15E4.0020.0005] # MATHEMATICAL BOLD DIGIT THREE
-1D7DB ; [.15E4.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
-1D7E5 ; [.15E4.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT THREE
-1D7EF ; [.15E4.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
-1D7F9 ; [.15E4.0020.0005] # MATHEMATICAL MONOSPACE DIGIT THREE
-2462 ; [.15E4.0020.0006] # CIRCLED DIGIT THREE
-24F7 ; [.15E4.0020.0006] # DOUBLE CIRCLED DIGIT THREE
-2778 ; [.15E4.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT THREE
-2782 ; [.15E4.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT THREE
-278C ; [.15E4.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
-00B3 ; [.15E4.0020.0014] # SUPERSCRIPT THREE
-2083 ; [.15E4.0020.0015] # SUBSCRIPT THREE
-324A ; [.15E4.0020.0006][.15E1.0020.0006] # CIRCLED NUMBER THIRTY ON BLACK SQUARE
-325A ; [.15E4.0020.0006][.15E1.0020.0006] # CIRCLED NUMBER THIRTY
-33FD ; [.15E4.0020.0004][.15E1.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-325B ; [.15E4.0020.0006][.15E2.0020.0006] # CIRCLED NUMBER THIRTY ONE
-33FE ; [.15E4.0020.0004][.15E2.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-325C ; [.15E4.0020.0006][.15E3.0020.0006] # CIRCLED NUMBER THIRTY TWO
-325D ; [.15E4.0020.0006][.15E4.0020.0006] # CIRCLED NUMBER THIRTY THREE
-325E ; [.15E4.0020.0006][.15E5.0020.0006] # CIRCLED NUMBER THIRTY FOUR
-00BE ; [.15E4.0020.001E][*05AF.0020.001E][.15E5.0020.001E] # VULGAR FRACTION THREE QUARTERS
-325F ; [.15E4.0020.0006][.15E6.0020.0006] # CIRCLED NUMBER THIRTY FIVE
-2157 ; [.15E4.0020.001E][*05AF.0020.001E][.15E6.0020.001E] # VULGAR FRACTION THREE FIFTHS
-32B1 ; [.15E4.0020.0006][.15E7.0020.0006] # CIRCLED NUMBER THIRTY SIX
-32B2 ; [.15E4.0020.0006][.15E8.0020.0006] # CIRCLED NUMBER THIRTY SEVEN
-32B3 ; [.15E4.0020.0006][.15E9.0020.0006] # CIRCLED NUMBER THIRTY EIGHT
-215C ; [.15E4.0020.001E][*05AF.0020.001E][.15E9.0020.001E] # VULGAR FRACTION THREE EIGHTHS
-32B4 ; [.15E4.0020.0006][.15EA.0020.0006] # CIRCLED NUMBER THIRTY NINE
-33E2 ; [.15E4.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-32C2 ; [.15E4.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-335B ; [.15E4.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-0034 ; [.15E5.0020.0002] # DIGIT FOUR
-0664 ; [.15E5.0020.0002] # ARABIC-INDIC DIGIT FOUR
-06F4 ; [.15E5.0020.0002] # EXTENDED ARABIC-INDIC DIGIT FOUR
-07C4 ; [.15E5.0020.0002] # NKO DIGIT FOUR
-096A ; [.15E5.0020.0002] # DEVANAGARI DIGIT FOUR
-09EA ; [.15E5.0020.0002] # BENGALI DIGIT FOUR
-0A6A ; [.15E5.0020.0002] # GURMUKHI DIGIT FOUR
-0AEA ; [.15E5.0020.0002] # GUJARATI DIGIT FOUR
-0B6A ; [.15E5.0020.0002] # ORIYA DIGIT FOUR
-0BEA ; [.15E5.0020.0002] # TAMIL DIGIT FOUR
-0C6A ; [.15E5.0020.0002] # TELUGU DIGIT FOUR
-0CEA ; [.15E5.0020.0002] # KANNADA DIGIT FOUR
-0D6A ; [.15E5.0020.0002] # MALAYALAM DIGIT FOUR
-0E54 ; [.15E5.0020.0002] # THAI DIGIT FOUR
-0ED4 ; [.15E5.0020.0002] # LAO DIGIT FOUR
-0F24 ; [.15E5.0020.0002] # TIBETAN DIGIT FOUR
-1044 ; [.15E5.0020.0002] # MYANMAR DIGIT FOUR
-1094 ; [.15E5.0020.0002] # MYANMAR SHAN DIGIT FOUR
-136C ; [.15E5.0020.0002] # ETHIOPIC DIGIT FOUR
-17E4 ; [.15E5.0020.0002] # KHMER DIGIT FOUR
-17F4 ; [.15E5.0020.0002] # KHMER SYMBOL LEK ATTAK BUON
-1814 ; [.15E5.0020.0002] # MONGOLIAN DIGIT FOUR
-194A ; [.15E5.0020.0002] # LIMBU DIGIT FOUR
-19D4 ; [.15E5.0020.0002] # NEW TAI LUE DIGIT FOUR
-1A84 ; [.15E5.0020.0002] # TAI THAM HORA DIGIT FOUR
-1A94 ; [.15E5.0020.0002] # TAI THAM THAM DIGIT FOUR
-1B54 ; [.15E5.0020.0002] # BALINESE DIGIT FOUR
-1BB4 ; [.15E5.0020.0002] # SUNDANESE DIGIT FOUR
-1C44 ; [.15E5.0020.0002] # LEPCHA DIGIT FOUR
-1C54 ; [.15E5.0020.0002] # OL CHIKI DIGIT FOUR
-3024 ; [.15E5.0020.0002] # HANGZHOU NUMERAL FOUR
-A624 ; [.15E5.0020.0002] # VAI DIGIT FOUR
-A8D4 ; [.15E5.0020.0002] # SAURASHTRA DIGIT FOUR
-A904 ; [.15E5.0020.0002] # KAYAH LI DIGIT FOUR
-A9D4 ; [.15E5.0020.0002] # JAVANESE DIGIT FOUR
-AA54 ; [.15E5.0020.0002] # CHAM DIGIT FOUR
-ABF4 ; [.15E5.0020.0002] # MEETEI MAYEK DIGIT FOUR
-1010A ; [.15E5.0020.0002] # AEGEAN NUMBER FOUR
-104A4 ; [.15E5.0020.0002] # OSMANYA DIGIT FOUR
-10A43 ; [.15E5.0020.0002] # KHAROSHTHI DIGIT FOUR
-10B5B ; [.15E5.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER FOUR
-10B7B ; [.15E5.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER FOUR
-10E63 ; [.15E5.0020.0002] # RUMI DIGIT FOUR
-11055 ; [.15E5.0020.0002] # BRAHMI NUMBER FOUR
-1106A ; [.15E5.0020.0002] # BRAHMI DIGIT FOUR
-110F4 ; [.15E5.0020.0002] # SORA SOMPENG DIGIT FOUR
-1113A ; [.15E5.0020.0002] # CHAKMA DIGIT FOUR
-111D4 ; [.15E5.0020.0002] # SHARADA DIGIT FOUR
-116C4 ; [.15E5.0020.0002] # TAKRI DIGIT FOUR
-12402 ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR ASH
-12409 ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR DISH
-1240F ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR U
-12418 ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR GESH2
-12421 ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR GESHU
-12426 ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR SHAR2
-12430 ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR SHARU
-12438 ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BURU
-1243C ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU
-1243D ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4
-1243E ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A
-1243F ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B
-1244C ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR ASH TENU
-12452 ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BAN2
-12453 ; [.15E5.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM
-1D363 ; [.15E5.0020.0002] # COUNTING ROD UNIT DIGIT FOUR
-FF14 ; [.15E5.0020.0003] # FULLWIDTH DIGIT FOUR
-0F2D ; [.15E5.0020.0004] # TIBETAN DIGIT HALF FOUR
-2477 ; [*02FA.0020.0004][.15E5.0020.0004][*02FB.0020.0004] # PARENTHESIZED DIGIT FOUR
-248B ; [.15E5.0020.0004][*0272.0020.0004] # DIGIT FOUR FULL STOP
-1F105 ; [.15E5.0020.0004][*0220.0020.0004] # DIGIT FOUR COMMA
-1D7D2 ; [.15E5.0020.0005] # MATHEMATICAL BOLD DIGIT FOUR
-1D7DC ; [.15E5.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
-1D7E6 ; [.15E5.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT FOUR
-1D7F0 ; [.15E5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
-1D7FA ; [.15E5.0020.0005] # MATHEMATICAL MONOSPACE DIGIT FOUR
-2463 ; [.15E5.0020.0006] # CIRCLED DIGIT FOUR
-24F8 ; [.15E5.0020.0006] # DOUBLE CIRCLED DIGIT FOUR
-2779 ; [.15E5.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT FOUR
-2783 ; [.15E5.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
-278D ; [.15E5.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
-2074 ; [.15E5.0020.0014] # SUPERSCRIPT FOUR
-2084 ; [.15E5.0020.0015] # SUBSCRIPT FOUR
-324B ; [.15E5.0020.0006][.15E1.0020.0006] # CIRCLED NUMBER FORTY ON BLACK SQUARE
-32B5 ; [.15E5.0020.0006][.15E1.0020.0006] # CIRCLED NUMBER FORTY
-32B6 ; [.15E5.0020.0006][.15E2.0020.0006] # CIRCLED NUMBER FORTY ONE
-32B7 ; [.15E5.0020.0006][.15E3.0020.0006] # CIRCLED NUMBER FORTY TWO
-32B8 ; [.15E5.0020.0006][.15E4.0020.0006] # CIRCLED NUMBER FORTY THREE
-32B9 ; [.15E5.0020.0006][.15E5.0020.0006] # CIRCLED NUMBER FORTY FOUR
-32BA ; [.15E5.0020.0006][.15E6.0020.0006] # CIRCLED NUMBER FORTY FIVE
-2158 ; [.15E5.0020.001E][*05AF.0020.001E][.15E6.0020.001E] # VULGAR FRACTION FOUR FIFTHS
-32BB ; [.15E5.0020.0006][.15E7.0020.0006] # CIRCLED NUMBER FORTY SIX
-32BC ; [.15E5.0020.0006][.15E8.0020.0006] # CIRCLED NUMBER FORTY SEVEN
-32BD ; [.15E5.0020.0006][.15E9.0020.0006] # CIRCLED NUMBER FORTY EIGHT
-32BE ; [.15E5.0020.0006][.15EA.0020.0006] # CIRCLED NUMBER FORTY NINE
-33E3 ; [.15E5.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-32C3 ; [.15E5.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-335C ; [.15E5.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-0035 ; [.15E6.0020.0002] # DIGIT FIVE
-0665 ; [.15E6.0020.0002] # ARABIC-INDIC DIGIT FIVE
-06F5 ; [.15E6.0020.0002] # EXTENDED ARABIC-INDIC DIGIT FIVE
-07C5 ; [.15E6.0020.0002] # NKO DIGIT FIVE
-096B ; [.15E6.0020.0002] # DEVANAGARI DIGIT FIVE
-09EB ; [.15E6.0020.0002] # BENGALI DIGIT FIVE
-0A6B ; [.15E6.0020.0002] # GURMUKHI DIGIT FIVE
-0AEB ; [.15E6.0020.0002] # GUJARATI DIGIT FIVE
-0B6B ; [.15E6.0020.0002] # ORIYA DIGIT FIVE
-0BEB ; [.15E6.0020.0002] # TAMIL DIGIT FIVE
-0C6B ; [.15E6.0020.0002] # TELUGU DIGIT FIVE
-0CEB ; [.15E6.0020.0002] # KANNADA DIGIT FIVE
-0D6B ; [.15E6.0020.0002] # MALAYALAM DIGIT FIVE
-0E55 ; [.15E6.0020.0002] # THAI DIGIT FIVE
-0ED5 ; [.15E6.0020.0002] # LAO DIGIT FIVE
-0F25 ; [.15E6.0020.0002] # TIBETAN DIGIT FIVE
-1045 ; [.15E6.0020.0002] # MYANMAR DIGIT FIVE
-1095 ; [.15E6.0020.0002] # MYANMAR SHAN DIGIT FIVE
-136D ; [.15E6.0020.0002] # ETHIOPIC DIGIT FIVE
-17E5 ; [.15E6.0020.0002] # KHMER DIGIT FIVE
-17F5 ; [.15E6.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM
-1815 ; [.15E6.0020.0002] # MONGOLIAN DIGIT FIVE
-194B ; [.15E6.0020.0002] # LIMBU DIGIT FIVE
-19D5 ; [.15E6.0020.0002] # NEW TAI LUE DIGIT FIVE
-1A85 ; [.15E6.0020.0002] # TAI THAM HORA DIGIT FIVE
-1A95 ; [.15E6.0020.0002] # TAI THAM THAM DIGIT FIVE
-1B55 ; [.15E6.0020.0002] # BALINESE DIGIT FIVE
-1BB5 ; [.15E6.0020.0002] # SUNDANESE DIGIT FIVE
-1C45 ; [.15E6.0020.0002] # LEPCHA DIGIT FIVE
-1C55 ; [.15E6.0020.0002] # OL CHIKI DIGIT FIVE
-3025 ; [.15E6.0020.0002] # HANGZHOU NUMERAL FIVE
-A625 ; [.15E6.0020.0002] # VAI DIGIT FIVE
-A8D5 ; [.15E6.0020.0002] # SAURASHTRA DIGIT FIVE
-A905 ; [.15E6.0020.0002] # KAYAH LI DIGIT FIVE
-A9D5 ; [.15E6.0020.0002] # JAVANESE DIGIT FIVE
-AA55 ; [.15E6.0020.0002] # CHAM DIGIT FIVE
-ABF5 ; [.15E6.0020.0002] # MEETEI MAYEK DIGIT FIVE
-1010B ; [.15E6.0020.0002] # AEGEAN NUMBER FIVE
-10143 ; [.15E6.0020.0002] # GREEK ACROPHONIC ATTIC FIVE
-10148 ; [.15E6.0020.0002] # GREEK ACROPHONIC ATTIC FIVE TALENTS
-1014F ; [.15E6.0020.0002] # GREEK ACROPHONIC ATTIC FIVE STATERS
-1015F ; [.15E6.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIVE
-10173 ; [.15E6.0020.0002] # GREEK ACROPHONIC DELPHIC FIVE MNAS
-10321 ; [.15E6.0020.0002] # OLD ITALIC NUMERAL FIVE
-104A5 ; [.15E6.0020.0002] # OSMANYA DIGIT FIVE
-10E64 ; [.15E6.0020.0002] # RUMI DIGIT FIVE
-11056 ; [.15E6.0020.0002] # BRAHMI NUMBER FIVE
-1106B ; [.15E6.0020.0002] # BRAHMI DIGIT FIVE
-110F5 ; [.15E6.0020.0002] # SORA SOMPENG DIGIT FIVE
-1113B ; [.15E6.0020.0002] # CHAKMA DIGIT FIVE
-111D5 ; [.15E6.0020.0002] # SHARADA DIGIT FIVE
-116C5 ; [.15E6.0020.0002] # TAKRI DIGIT FIVE
-12403 ; [.15E6.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE ASH
-1240A ; [.15E6.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE DISH
-12410 ; [.15E6.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE U
-12419 ; [.15E6.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE GESH2
-12422 ; [.15E6.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE GESHU
-12427 ; [.15E6.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SHAR2
-12431 ; [.15E6.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SHARU
-12439 ; [.15E6.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BURU
-1244D ; [.15E6.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE ASH TENU
-12454 ; [.15E6.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BAN2
-12455 ; [.15E6.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM
-1D364 ; [.15E6.0020.0002] # COUNTING ROD UNIT DIGIT FIVE
-FF15 ; [.15E6.0020.0003] # FULLWIDTH DIGIT FIVE
-0F2E ; [.15E6.0020.0004] # TIBETAN DIGIT HALF FIVE
-2478 ; [*02FA.0020.0004][.15E6.0020.0004][*02FB.0020.0004] # PARENTHESIZED DIGIT FIVE
-248C ; [.15E6.0020.0004][*0272.0020.0004] # DIGIT FIVE FULL STOP
-1F106 ; [.15E6.0020.0004][*0220.0020.0004] # DIGIT FIVE COMMA
-1D7D3 ; [.15E6.0020.0005] # MATHEMATICAL BOLD DIGIT FIVE
-1D7DD ; [.15E6.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
-1D7E7 ; [.15E6.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT FIVE
-1D7F1 ; [.15E6.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
-1D7FB ; [.15E6.0020.0005] # MATHEMATICAL MONOSPACE DIGIT FIVE
-2464 ; [.15E6.0020.0006] # CIRCLED DIGIT FIVE
-24F9 ; [.15E6.0020.0006] # DOUBLE CIRCLED DIGIT FIVE
-277A ; [.15E6.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT FIVE
-2784 ; [.15E6.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
-278E ; [.15E6.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
-2075 ; [.15E6.0020.0014] # SUPERSCRIPT FIVE
-2085 ; [.15E6.0020.0015] # SUBSCRIPT FIVE
-324C ; [.15E6.0020.0006][.15E1.0020.0006] # CIRCLED NUMBER FIFTY ON BLACK SQUARE
-32BF ; [.15E6.0020.0006][.15E1.0020.0006] # CIRCLED NUMBER FIFTY
-215A ; [.15E6.0020.001E][*05AF.0020.001E][.15E7.0020.001E] # VULGAR FRACTION FIVE SIXTHS
-215D ; [.15E6.0020.001E][*05AF.0020.001E][.15E9.0020.001E] # VULGAR FRACTION FIVE EIGHTHS
-33E4 ; [.15E6.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-32C4 ; [.15E6.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-335D ; [.15E6.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-0036 ; [.15E7.0020.0002] # DIGIT SIX
-0666 ; [.15E7.0020.0002] # ARABIC-INDIC DIGIT SIX
-06F6 ; [.15E7.0020.0002] # EXTENDED ARABIC-INDIC DIGIT SIX
-07C6 ; [.15E7.0020.0002] # NKO DIGIT SIX
-096C ; [.15E7.0020.0002] # DEVANAGARI DIGIT SIX
-09EC ; [.15E7.0020.0002] # BENGALI DIGIT SIX
-0A6C ; [.15E7.0020.0002] # GURMUKHI DIGIT SIX
-0AEC ; [.15E7.0020.0002] # GUJARATI DIGIT SIX
-0B6C ; [.15E7.0020.0002] # ORIYA DIGIT SIX
-0BEC ; [.15E7.0020.0002] # TAMIL DIGIT SIX
-0C6C ; [.15E7.0020.0002] # TELUGU DIGIT SIX
-0CEC ; [.15E7.0020.0002] # KANNADA DIGIT SIX
-0D6C ; [.15E7.0020.0002] # MALAYALAM DIGIT SIX
-0E56 ; [.15E7.0020.0002] # THAI DIGIT SIX
-0ED6 ; [.15E7.0020.0002] # LAO DIGIT SIX
-0F26 ; [.15E7.0020.0002] # TIBETAN DIGIT SIX
-1046 ; [.15E7.0020.0002] # MYANMAR DIGIT SIX
-1096 ; [.15E7.0020.0002] # MYANMAR SHAN DIGIT SIX
-136E ; [.15E7.0020.0002] # ETHIOPIC DIGIT SIX
-17E6 ; [.15E7.0020.0002] # KHMER DIGIT SIX
-17F6 ; [.15E7.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-MUOY
-1816 ; [.15E7.0020.0002] # MONGOLIAN DIGIT SIX
-194C ; [.15E7.0020.0002] # LIMBU DIGIT SIX
-19D6 ; [.15E7.0020.0002] # NEW TAI LUE DIGIT SIX
-1A86 ; [.15E7.0020.0002] # TAI THAM HORA DIGIT SIX
-1A96 ; [.15E7.0020.0002] # TAI THAM THAM DIGIT SIX
-1B56 ; [.15E7.0020.0002] # BALINESE DIGIT SIX
-1BB6 ; [.15E7.0020.0002] # SUNDANESE DIGIT SIX
-1C46 ; [.15E7.0020.0002] # LEPCHA DIGIT SIX
-1C56 ; [.15E7.0020.0002] # OL CHIKI DIGIT SIX
-2185 ; [.15E7.0020.0002] # ROMAN NUMERAL SIX LATE FORM
-3026 ; [.15E7.0020.0002] # HANGZHOU NUMERAL SIX
-A626 ; [.15E7.0020.0002] # VAI DIGIT SIX
-A8D6 ; [.15E7.0020.0002] # SAURASHTRA DIGIT SIX
-A906 ; [.15E7.0020.0002] # KAYAH LI DIGIT SIX
-A9D6 ; [.15E7.0020.0002] # JAVANESE DIGIT SIX
-AA56 ; [.15E7.0020.0002] # CHAM DIGIT SIX
-ABF6 ; [.15E7.0020.0002] # MEETEI MAYEK DIGIT SIX
-1010C ; [.15E7.0020.0002] # AEGEAN NUMBER SIX
-104A6 ; [.15E7.0020.0002] # OSMANYA DIGIT SIX
-10E65 ; [.15E7.0020.0002] # RUMI DIGIT SIX
-11057 ; [.15E7.0020.0002] # BRAHMI NUMBER SIX
-1106C ; [.15E7.0020.0002] # BRAHMI DIGIT SIX
-110F6 ; [.15E7.0020.0002] # SORA SOMPENG DIGIT SIX
-1113C ; [.15E7.0020.0002] # CHAKMA DIGIT SIX
-111D6 ; [.15E7.0020.0002] # SHARADA DIGIT SIX
-116C6 ; [.15E7.0020.0002] # TAKRI DIGIT SIX
-12404 ; [.15E7.0020.0002] # CUNEIFORM NUMERIC SIGN SIX ASH
-1240B ; [.15E7.0020.0002] # CUNEIFORM NUMERIC SIGN SIX DISH
-12411 ; [.15E7.0020.0002] # CUNEIFORM NUMERIC SIGN SIX U
-1241A ; [.15E7.0020.0002] # CUNEIFORM NUMERIC SIGN SIX GESH2
-12428 ; [.15E7.0020.0002] # CUNEIFORM NUMERIC SIGN SIX SHAR2
-12440 ; [.15E7.0020.0002] # CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9
-1244E ; [.15E7.0020.0002] # CUNEIFORM NUMERIC SIGN SIX ASH TENU
-1D365 ; [.15E7.0020.0002] # COUNTING ROD UNIT DIGIT SIX
-FF16 ; [.15E7.0020.0003] # FULLWIDTH DIGIT SIX
-0F2F ; [.15E7.0020.0004] # TIBETAN DIGIT HALF SIX
-2479 ; [*02FA.0020.0004][.15E7.0020.0004][*02FB.0020.0004] # PARENTHESIZED DIGIT SIX
-248D ; [.15E7.0020.0004][*0272.0020.0004] # DIGIT SIX FULL STOP
-1F107 ; [.15E7.0020.0004][*0220.0020.0004] # DIGIT SIX COMMA
-1D7D4 ; [.15E7.0020.0005] # MATHEMATICAL BOLD DIGIT SIX
-1D7DE ; [.15E7.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
-1D7E8 ; [.15E7.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT SIX
-1D7F2 ; [.15E7.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
-1D7FC ; [.15E7.0020.0005] # MATHEMATICAL MONOSPACE DIGIT SIX
-2465 ; [.15E7.0020.0006] # CIRCLED DIGIT SIX
-24FA ; [.15E7.0020.0006] # DOUBLE CIRCLED DIGIT SIX
-277B ; [.15E7.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT SIX
-2785 ; [.15E7.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT SIX
-278F ; [.15E7.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
-2076 ; [.15E7.0020.0014] # SUPERSCRIPT SIX
-2086 ; [.15E7.0020.0015] # SUBSCRIPT SIX
-324D ; [.15E7.0020.0006][.15E1.0020.0006] # CIRCLED NUMBER SIXTY ON BLACK SQUARE
-33E5 ; [.15E7.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-32C5 ; [.15E7.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-335E ; [.15E7.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-0037 ; [.15E8.0020.0002] # DIGIT SEVEN
-0667 ; [.15E8.0020.0002] # ARABIC-INDIC DIGIT SEVEN
-06F7 ; [.15E8.0020.0002] # EXTENDED ARABIC-INDIC DIGIT SEVEN
-07C7 ; [.15E8.0020.0002] # NKO DIGIT SEVEN
-096D ; [.15E8.0020.0002] # DEVANAGARI DIGIT SEVEN
-09ED ; [.15E8.0020.0002] # BENGALI DIGIT SEVEN
-0A6D ; [.15E8.0020.0002] # GURMUKHI DIGIT SEVEN
-0AED ; [.15E8.0020.0002] # GUJARATI DIGIT SEVEN
-0B6D ; [.15E8.0020.0002] # ORIYA DIGIT SEVEN
-0BED ; [.15E8.0020.0002] # TAMIL DIGIT SEVEN
-0C6D ; [.15E8.0020.0002] # TELUGU DIGIT SEVEN
-0CED ; [.15E8.0020.0002] # KANNADA DIGIT SEVEN
-0D6D ; [.15E8.0020.0002] # MALAYALAM DIGIT SEVEN
-0E57 ; [.15E8.0020.0002] # THAI DIGIT SEVEN
-0ED7 ; [.15E8.0020.0002] # LAO DIGIT SEVEN
-0F27 ; [.15E8.0020.0002] # TIBETAN DIGIT SEVEN
-1047 ; [.15E8.0020.0002] # MYANMAR DIGIT SEVEN
-1097 ; [.15E8.0020.0002] # MYANMAR SHAN DIGIT SEVEN
-136F ; [.15E8.0020.0002] # ETHIOPIC DIGIT SEVEN
-17E7 ; [.15E8.0020.0002] # KHMER DIGIT SEVEN
-17F7 ; [.15E8.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-PII
-1817 ; [.15E8.0020.0002] # MONGOLIAN DIGIT SEVEN
-194D ; [.15E8.0020.0002] # LIMBU DIGIT SEVEN
-19D7 ; [.15E8.0020.0002] # NEW TAI LUE DIGIT SEVEN
-1A87 ; [.15E8.0020.0002] # TAI THAM HORA DIGIT SEVEN
-1A97 ; [.15E8.0020.0002] # TAI THAM THAM DIGIT SEVEN
-1B57 ; [.15E8.0020.0002] # BALINESE DIGIT SEVEN
-1BB7 ; [.15E8.0020.0002] # SUNDANESE DIGIT SEVEN
-1C47 ; [.15E8.0020.0002] # LEPCHA DIGIT SEVEN
-1C57 ; [.15E8.0020.0002] # OL CHIKI DIGIT SEVEN
-3027 ; [.15E8.0020.0002] # HANGZHOU NUMERAL SEVEN
-A627 ; [.15E8.0020.0002] # VAI DIGIT SEVEN
-A8D7 ; [.15E8.0020.0002] # SAURASHTRA DIGIT SEVEN
-A907 ; [.15E8.0020.0002] # KAYAH LI DIGIT SEVEN
-A9D7 ; [.15E8.0020.0002] # JAVANESE DIGIT SEVEN
-AA57 ; [.15E8.0020.0002] # CHAM DIGIT SEVEN
-ABF7 ; [.15E8.0020.0002] # MEETEI MAYEK DIGIT SEVEN
-1010D ; [.15E8.0020.0002] # AEGEAN NUMBER SEVEN
-104A7 ; [.15E8.0020.0002] # OSMANYA DIGIT SEVEN
-10E66 ; [.15E8.0020.0002] # RUMI DIGIT SEVEN
-11058 ; [.15E8.0020.0002] # BRAHMI NUMBER SEVEN
-1106D ; [.15E8.0020.0002] # BRAHMI DIGIT SEVEN
-110F7 ; [.15E8.0020.0002] # SORA SOMPENG DIGIT SEVEN
-1113D ; [.15E8.0020.0002] # CHAKMA DIGIT SEVEN
-111D7 ; [.15E8.0020.0002] # SHARADA DIGIT SEVEN
-116C7 ; [.15E8.0020.0002] # TAKRI DIGIT SEVEN
-12405 ; [.15E8.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN ASH
-1240C ; [.15E8.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN DISH
-12412 ; [.15E8.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN U
-1241B ; [.15E8.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN GESH2
-12429 ; [.15E8.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN SHAR2
-12441 ; [.15E8.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3
-12442 ; [.15E8.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A
-12443 ; [.15E8.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B
-1D366 ; [.15E8.0020.0002] # COUNTING ROD UNIT DIGIT SEVEN
-FF17 ; [.15E8.0020.0003] # FULLWIDTH DIGIT SEVEN
-0F30 ; [.15E8.0020.0004] # TIBETAN DIGIT HALF SEVEN
-247A ; [*02FA.0020.0004][.15E8.0020.0004][*02FB.0020.0004] # PARENTHESIZED DIGIT SEVEN
-248E ; [.15E8.0020.0004][*0272.0020.0004] # DIGIT SEVEN FULL STOP
-1F108 ; [.15E8.0020.0004][*0220.0020.0004] # DIGIT SEVEN COMMA
-1D7D5 ; [.15E8.0020.0005] # MATHEMATICAL BOLD DIGIT SEVEN
-1D7DF ; [.15E8.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
-1D7E9 ; [.15E8.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT SEVEN
-1D7F3 ; [.15E8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
-1D7FD ; [.15E8.0020.0005] # MATHEMATICAL MONOSPACE DIGIT SEVEN
-2466 ; [.15E8.0020.0006] # CIRCLED DIGIT SEVEN
-24FB ; [.15E8.0020.0006] # DOUBLE CIRCLED DIGIT SEVEN
-277C ; [.15E8.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
-2786 ; [.15E8.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
-2790 ; [.15E8.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
-2077 ; [.15E8.0020.0014] # SUPERSCRIPT SEVEN
-2087 ; [.15E8.0020.0015] # SUBSCRIPT SEVEN
-324E ; [.15E8.0020.0006][.15E1.0020.0006] # CIRCLED NUMBER SEVENTY ON BLACK SQUARE
-215E ; [.15E8.0020.001E][*05AF.0020.001E][.15E9.0020.001E] # VULGAR FRACTION SEVEN EIGHTHS
-33E6 ; [.15E8.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-32C6 ; [.15E8.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-335F ; [.15E8.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-0038 ; [.15E9.0020.0002] # DIGIT EIGHT
-0668 ; [.15E9.0020.0002] # ARABIC-INDIC DIGIT EIGHT
-06F8 ; [.15E9.0020.0002] # EXTENDED ARABIC-INDIC DIGIT EIGHT
-07C8 ; [.15E9.0020.0002] # NKO DIGIT EIGHT
-096E ; [.15E9.0020.0002] # DEVANAGARI DIGIT EIGHT
-09EE ; [.15E9.0020.0002] # BENGALI DIGIT EIGHT
-0A6E ; [.15E9.0020.0002] # GURMUKHI DIGIT EIGHT
-0AEE ; [.15E9.0020.0002] # GUJARATI DIGIT EIGHT
-0B6E ; [.15E9.0020.0002] # ORIYA DIGIT EIGHT
-0BEE ; [.15E9.0020.0002] # TAMIL DIGIT EIGHT
-0C6E ; [.15E9.0020.0002] # TELUGU DIGIT EIGHT
-0CEE ; [.15E9.0020.0002] # KANNADA DIGIT EIGHT
-0D6E ; [.15E9.0020.0002] # MALAYALAM DIGIT EIGHT
-0E58 ; [.15E9.0020.0002] # THAI DIGIT EIGHT
-0ED8 ; [.15E9.0020.0002] # LAO DIGIT EIGHT
-0F28 ; [.15E9.0020.0002] # TIBETAN DIGIT EIGHT
-1048 ; [.15E9.0020.0002] # MYANMAR DIGIT EIGHT
-1098 ; [.15E9.0020.0002] # MYANMAR SHAN DIGIT EIGHT
-1370 ; [.15E9.0020.0002] # ETHIOPIC DIGIT EIGHT
-17E8 ; [.15E9.0020.0002] # KHMER DIGIT EIGHT
-17F8 ; [.15E9.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-BEI
-1818 ; [.15E9.0020.0002] # MONGOLIAN DIGIT EIGHT
-194E ; [.15E9.0020.0002] # LIMBU DIGIT EIGHT
-19D8 ; [.15E9.0020.0002] # NEW TAI LUE DIGIT EIGHT
-1A88 ; [.15E9.0020.0002] # TAI THAM HORA DIGIT EIGHT
-1A98 ; [.15E9.0020.0002] # TAI THAM THAM DIGIT EIGHT
-1B58 ; [.15E9.0020.0002] # BALINESE DIGIT EIGHT
-1BB8 ; [.15E9.0020.0002] # SUNDANESE DIGIT EIGHT
-1C48 ; [.15E9.0020.0002] # LEPCHA DIGIT EIGHT
-1C58 ; [.15E9.0020.0002] # OL CHIKI DIGIT EIGHT
-3028 ; [.15E9.0020.0002] # HANGZHOU NUMERAL EIGHT
-A628 ; [.15E9.0020.0002] # VAI DIGIT EIGHT
-A8D8 ; [.15E9.0020.0002] # SAURASHTRA DIGIT EIGHT
-A908 ; [.15E9.0020.0002] # KAYAH LI DIGIT EIGHT
-A9D8 ; [.15E9.0020.0002] # JAVANESE DIGIT EIGHT
-AA58 ; [.15E9.0020.0002] # CHAM DIGIT EIGHT
-ABF8 ; [.15E9.0020.0002] # MEETEI MAYEK DIGIT EIGHT
-1010E ; [.15E9.0020.0002] # AEGEAN NUMBER EIGHT
-104A8 ; [.15E9.0020.0002] # OSMANYA DIGIT EIGHT
-10E67 ; [.15E9.0020.0002] # RUMI DIGIT EIGHT
-11059 ; [.15E9.0020.0002] # BRAHMI NUMBER EIGHT
-1106E ; [.15E9.0020.0002] # BRAHMI DIGIT EIGHT
-110F8 ; [.15E9.0020.0002] # SORA SOMPENG DIGIT EIGHT
-1113E ; [.15E9.0020.0002] # CHAKMA DIGIT EIGHT
-111D8 ; [.15E9.0020.0002] # SHARADA DIGIT EIGHT
-116C8 ; [.15E9.0020.0002] # TAKRI DIGIT EIGHT
-12406 ; [.15E9.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT ASH
-1240D ; [.15E9.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT DISH
-12413 ; [.15E9.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT U
-1241C ; [.15E9.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT GESH2
-1242A ; [.15E9.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT SHAR2
-12444 ; [.15E9.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU
-12445 ; [.15E9.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3
-1D367 ; [.15E9.0020.0002] # COUNTING ROD UNIT DIGIT EIGHT
-FF18 ; [.15E9.0020.0003] # FULLWIDTH DIGIT EIGHT
-0F31 ; [.15E9.0020.0004] # TIBETAN DIGIT HALF EIGHT
-247B ; [*02FA.0020.0004][.15E9.0020.0004][*02FB.0020.0004] # PARENTHESIZED DIGIT EIGHT
-248F ; [.15E9.0020.0004][*0272.0020.0004] # DIGIT EIGHT FULL STOP
-1F109 ; [.15E9.0020.0004][*0220.0020.0004] # DIGIT EIGHT COMMA
-1D7D6 ; [.15E9.0020.0005] # MATHEMATICAL BOLD DIGIT EIGHT
-1D7E0 ; [.15E9.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
-1D7EA ; [.15E9.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT EIGHT
-1D7F4 ; [.15E9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
-1D7FE ; [.15E9.0020.0005] # MATHEMATICAL MONOSPACE DIGIT EIGHT
-2467 ; [.15E9.0020.0006] # CIRCLED DIGIT EIGHT
-24FC ; [.15E9.0020.0006] # DOUBLE CIRCLED DIGIT EIGHT
-277D ; [.15E9.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
-2787 ; [.15E9.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
-2791 ; [.15E9.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
-2078 ; [.15E9.0020.0014] # SUPERSCRIPT EIGHT
-2088 ; [.15E9.0020.0015] # SUBSCRIPT EIGHT
-324F ; [.15E9.0020.0006][.15E1.0020.0006] # CIRCLED NUMBER EIGHTY ON BLACK SQUARE
-33E7 ; [.15E9.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-32C7 ; [.15E9.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-3360 ; [.15E9.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-0039 ; [.15EA.0020.0002] # DIGIT NINE
-0669 ; [.15EA.0020.0002] # ARABIC-INDIC DIGIT NINE
-06F9 ; [.15EA.0020.0002] # EXTENDED ARABIC-INDIC DIGIT NINE
-07C9 ; [.15EA.0020.0002] # NKO DIGIT NINE
-096F ; [.15EA.0020.0002] # DEVANAGARI DIGIT NINE
-09EF ; [.15EA.0020.0002] # BENGALI DIGIT NINE
-0A6F ; [.15EA.0020.0002] # GURMUKHI DIGIT NINE
-0AEF ; [.15EA.0020.0002] # GUJARATI DIGIT NINE
-0B6F ; [.15EA.0020.0002] # ORIYA DIGIT NINE
-0BEF ; [.15EA.0020.0002] # TAMIL DIGIT NINE
-0C6F ; [.15EA.0020.0002] # TELUGU DIGIT NINE
-0CEF ; [.15EA.0020.0002] # KANNADA DIGIT NINE
-0D6F ; [.15EA.0020.0002] # MALAYALAM DIGIT NINE
-0E59 ; [.15EA.0020.0002] # THAI DIGIT NINE
-0ED9 ; [.15EA.0020.0002] # LAO DIGIT NINE
-0F29 ; [.15EA.0020.0002] # TIBETAN DIGIT NINE
-1049 ; [.15EA.0020.0002] # MYANMAR DIGIT NINE
-1099 ; [.15EA.0020.0002] # MYANMAR SHAN DIGIT NINE
-1371 ; [.15EA.0020.0002] # ETHIOPIC DIGIT NINE
-17E9 ; [.15EA.0020.0002] # KHMER DIGIT NINE
-17F9 ; [.15EA.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-BUON
-1819 ; [.15EA.0020.0002] # MONGOLIAN DIGIT NINE
-194F ; [.15EA.0020.0002] # LIMBU DIGIT NINE
-19D9 ; [.15EA.0020.0002] # NEW TAI LUE DIGIT NINE
-1A89 ; [.15EA.0020.0002] # TAI THAM HORA DIGIT NINE
-1A99 ; [.15EA.0020.0002] # TAI THAM THAM DIGIT NINE
-1B59 ; [.15EA.0020.0002] # BALINESE DIGIT NINE
-1BB9 ; [.15EA.0020.0002] # SUNDANESE DIGIT NINE
-1C49 ; [.15EA.0020.0002] # LEPCHA DIGIT NINE
-1C59 ; [.15EA.0020.0002] # OL CHIKI DIGIT NINE
-3029 ; [.15EA.0020.0002] # HANGZHOU NUMERAL NINE
-A629 ; [.15EA.0020.0002] # VAI DIGIT NINE
-A8D9 ; [.15EA.0020.0002] # SAURASHTRA DIGIT NINE
-A909 ; [.15EA.0020.0002] # KAYAH LI DIGIT NINE
-A9D9 ; [.15EA.0020.0002] # JAVANESE DIGIT NINE
-AA59 ; [.15EA.0020.0002] # CHAM DIGIT NINE
-ABF9 ; [.15EA.0020.0002] # MEETEI MAYEK DIGIT NINE
-1010F ; [.15EA.0020.0002] # AEGEAN NUMBER NINE
-104A9 ; [.15EA.0020.0002] # OSMANYA DIGIT NINE
-10E68 ; [.15EA.0020.0002] # RUMI DIGIT NINE
-1105A ; [.15EA.0020.0002] # BRAHMI NUMBER NINE
-1106F ; [.15EA.0020.0002] # BRAHMI DIGIT NINE
-110F9 ; [.15EA.0020.0002] # SORA SOMPENG DIGIT NINE
-1113F ; [.15EA.0020.0002] # CHAKMA DIGIT NINE
-111D9 ; [.15EA.0020.0002] # SHARADA DIGIT NINE
-116C9 ; [.15EA.0020.0002] # TAKRI DIGIT NINE
-12407 ; [.15EA.0020.0002] # CUNEIFORM NUMERIC SIGN NINE ASH
-1240E ; [.15EA.0020.0002] # CUNEIFORM NUMERIC SIGN NINE DISH
-12414 ; [.15EA.0020.0002] # CUNEIFORM NUMERIC SIGN NINE U
-1241D ; [.15EA.0020.0002] # CUNEIFORM NUMERIC SIGN NINE GESH2
-1242B ; [.15EA.0020.0002] # CUNEIFORM NUMERIC SIGN NINE SHAR2
-12446 ; [.15EA.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU
-12447 ; [.15EA.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3
-12448 ; [.15EA.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4
-12449 ; [.15EA.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A
-1D368 ; [.15EA.0020.0002] # COUNTING ROD UNIT DIGIT NINE
-FF19 ; [.15EA.0020.0003] # FULLWIDTH DIGIT NINE
-0F32 ; [.15EA.0020.0004] # TIBETAN DIGIT HALF NINE
-247C ; [*02FA.0020.0004][.15EA.0020.0004][*02FB.0020.0004] # PARENTHESIZED DIGIT NINE
-2490 ; [.15EA.0020.0004][*0272.0020.0004] # DIGIT NINE FULL STOP
-1F10A ; [.15EA.0020.0004][*0220.0020.0004] # DIGIT NINE COMMA
-1D7D7 ; [.15EA.0020.0005] # MATHEMATICAL BOLD DIGIT NINE
-1D7E1 ; [.15EA.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
-1D7EB ; [.15EA.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT NINE
-1D7F5 ; [.15EA.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
-1D7FF ; [.15EA.0020.0005] # MATHEMATICAL MONOSPACE DIGIT NINE
-2468 ; [.15EA.0020.0006] # CIRCLED DIGIT NINE
-24FD ; [.15EA.0020.0006] # DOUBLE CIRCLED DIGIT NINE
-277E ; [.15EA.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT NINE
-2788 ; [.15EA.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT NINE
-2792 ; [.15EA.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
-2079 ; [.15EA.0020.0014] # SUPERSCRIPT NINE
-2089 ; [.15EA.0020.0015] # SUBSCRIPT NINE
-33E8 ; [.15EA.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-32C8 ; [.15EA.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-3361 ; [.15EA.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-0061 ; [.15EB.0020.0002] # LATIN SMALL LETTER A
-FF41 ; [.15EB.0020.0003] # FULLWIDTH LATIN SMALL LETTER A
-0363 ; [.15EB.0020.0004] # COMBINING LATIN SMALL LETTER A
-249C ; [*02FA.0020.0004][.15EB.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER A
-1D41A ; [.15EB.0020.0005] # MATHEMATICAL BOLD SMALL A
-1D44E ; [.15EB.0020.0005] # MATHEMATICAL ITALIC SMALL A
-1D482 ; [.15EB.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL A
-1D4B6 ; [.15EB.0020.0005] # MATHEMATICAL SCRIPT SMALL A
-1D4EA ; [.15EB.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL A
-1D51E ; [.15EB.0020.0005] # MATHEMATICAL FRAKTUR SMALL A
-1D552 ; [.15EB.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL A
-1D586 ; [.15EB.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL A
-1D5BA ; [.15EB.0020.0005] # MATHEMATICAL SANS-SERIF SMALL A
-1D5EE ; [.15EB.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL A
-1D622 ; [.15EB.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL A
-1D656 ; [.15EB.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
-1D68A ; [.15EB.0020.0005] # MATHEMATICAL MONOSPACE SMALL A
-24D0 ; [.15EB.0020.0006] # CIRCLED LATIN SMALL LETTER A
-0041 ; [.15EB.0020.0008] # LATIN CAPITAL LETTER A
-FF21 ; [.15EB.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER A
-1F110 ; [*02FA.0020.0004][.15EB.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER A
-1D400 ; [.15EB.0020.000B] # MATHEMATICAL BOLD CAPITAL A
-1D434 ; [.15EB.0020.000B] # MATHEMATICAL ITALIC CAPITAL A
-1D468 ; [.15EB.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL A
-1D49C ; [.15EB.0020.000B] # MATHEMATICAL SCRIPT CAPITAL A
-1D4D0 ; [.15EB.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL A
-1D504 ; [.15EB.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL A
-1D538 ; [.15EB.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL A
-1D56C ; [.15EB.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL A
-1D5A0 ; [.15EB.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL A
-1D5D4 ; [.15EB.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL A
-1D608 ; [.15EB.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
-1D63C ; [.15EB.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
-1D670 ; [.15EB.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL A
-24B6 ; [.15EB.0020.000C] # CIRCLED LATIN CAPITAL LETTER A
-1F150 ; [.15EB.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER A
-00AA ; [.15EB.0020.0014] # FEMININE ORDINAL INDICATOR
-1D43 ; [.15EB.0020.0014] # MODIFIER LETTER SMALL A
-2090 ; [.15EB.0020.0015] # LATIN SUBSCRIPT SMALL LETTER A
-1D2C ; [.15EB.0020.001D] # MODIFIER LETTER CAPITAL A
-1F130 ; [.15EB.0020.001D] # SQUARED LATIN CAPITAL LETTER A
-1F170 ; [.15EB.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER A
-00E1 ; [.15EB.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.15EB.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH ACUTE
-00E0 ; [.15EB.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.15EB.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH GRAVE
-0103 ; [.15EB.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER A WITH BREVE
-0102 ; [.15EB.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER A WITH BREVE
-1EAF ; [.15EB.0020.0002][.0000.0026.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EAE ; [.15EB.0020.0008][.0000.0026.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EB1 ; [.15EB.0020.0002][.0000.0026.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB0 ; [.15EB.0020.0008][.0000.0026.0002][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EB5 ; [.15EB.0020.0002][.0000.0026.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB4 ; [.15EB.0020.0008][.0000.0026.0002][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB3 ; [.15EB.0020.0002][.0000.0026.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB2 ; [.15EB.0020.0008][.0000.0026.0002][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-00E2 ; [.15EB.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00C2 ; [.15EB.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-1EA5 ; [.15EB.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA4 ; [.15EB.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA7 ; [.15EB.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA6 ; [.15EB.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EAB ; [.15EB.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAA ; [.15EB.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EA9 ; [.15EB.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA8 ; [.15EB.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-01CE ; [.15EB.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.15EB.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER A WITH CARON
-00E5 ; [.15EB.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.15EB.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.15EB.0020.0008][.0000.0029.0002] # ANGSTROM SIGN
-01FB ; [.15EB.0020.0002][.0000.0029.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.15EB.0020.0008][.0000.0029.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.15EB.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.15EB.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.15EB.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.15EB.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E3 ; [.15EB.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH TILDE
-00C3 ; [.15EB.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH TILDE
-0227 ; [.15EB.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
-0226 ; [.15EB.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER A WITH DOT ABOVE
-01E1 ; [.15EB.0020.0002][.0000.002E.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
-01E0 ; [.15EB.0020.0008][.0000.002E.0002][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
-0105 ; [.15EB.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER A WITH OGONEK
-0104 ; [.15EB.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER A WITH OGONEK
-0101 ; [.15EB.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.15EB.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH MACRON
-1EA3 ; [.15EB.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH HOOK ABOVE
-1EA2 ; [.15EB.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH HOOK ABOVE
-0201 ; [.15EB.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER A WITH DOUBLE GRAVE
-0200 ; [.15EB.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
-0203 ; [.15EB.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER A WITH INVERTED BREVE
-0202 ; [.15EB.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER A WITH INVERTED BREVE
-1EA1 ; [.15EB.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH DOT BELOW
-1EA0 ; [.15EB.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH DOT BELOW
-1EB7 ; [.15EB.0020.0002][.0000.0042.0002][.0000.0026.0002] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB6 ; [.15EB.0020.0008][.0000.0042.0002][.0000.0026.0002] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-1EAD ; [.15EB.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAC ; [.15EB.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1E01 ; [.15EB.0020.0002][.0000.0044.0002] # LATIN SMALL LETTER A WITH RING BELOW
-1E00 ; [.15EB.0020.0008][.0000.0044.0002] # LATIN CAPITAL LETTER A WITH RING BELOW
-1DD3 ; [.15EB.0020.0004][.0000.00FC.0004] # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE
-A733 ; [.15EB.0020.0004][.15EB.0020.0004] # LATIN SMALL LETTER AA
-A732 ; [.15EB.0020.000A][.15EB.0020.000A] # LATIN CAPITAL LETTER AA
-1F18E ; [.15EB.0020.001D][.1601.0020.001D] # NEGATIVE SQUARED AB
-2100 ; [.15EB.0020.0004][*0375.0020.0004][.1619.0020.0004] # ACCOUNT OF
-00E6 ; [.15EB.0020.0004][.0000.00FC.0004][.1648.0020.0004] # LATIN SMALL LETTER AE
-1DD4 ; [.15EB.0020.0004][.0000.00FC.0004][.1648.0020.0004] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.15EB.0020.000A][.0000.00FC.0004][.1648.0020.000A] # LATIN CAPITAL LETTER AE
-1D2D ; [.15EB.0020.0014][.0000.00FC.0014][.1648.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.15EB.0020.0004][.0000.00FC.0004][.1648.0020.0004][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.15EB.0020.000A][.0000.00FC.0004][.1648.0020.000A][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.15EB.0020.0004][.0000.00FC.0004][.1648.0020.0004][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.15EB.0020.000A][.0000.00FC.0004][.1648.0020.000A][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-33C2 ; [.15EB.0020.001C][*0272.0020.001C][.173D.0020.001C][*0272.0020.001C] # SQUARE AM
-33DF ; [.15EB.0020.001D][*05AE.0020.001C][.173D.0020.001C] # SQUARE A OVER M
-1DD5 ; [.15EB.0020.0004][.176D.0020.0004] # COMBINING LATIN SMALL LETTER AO
-A735 ; [.15EB.0020.0004][.176D.0020.0004] # LATIN SMALL LETTER AO
-A734 ; [.15EB.0020.000A][.176D.0020.000A] # LATIN CAPITAL LETTER AO
-2101 ; [.15EB.0020.0004][*0375.0020.0004][.17EF.0020.0004] # ADDRESSED TO THE SUBJECT
-214D ; [.15EB.0020.000A][*0375.0020.0004][.17EF.0020.000A] # AKTIESELSKAB
-A737 ; [.15EB.0020.0004][.1832.0020.0004] # LATIN SMALL LETTER AU
-A736 ; [.15EB.0020.000A][.1832.0020.000A] # LATIN CAPITAL LETTER AU
-3373 ; [.15EB.0020.001D][.1832.0020.001D] # SQUARE AU
-1DD6 ; [.15EB.0020.0004][.185B.0020.0004] # COMBINING LATIN SMALL LETTER AV
-A739 ; [.15EB.0020.0004][.185B.0020.0004] # LATIN SMALL LETTER AV
-A738 ; [.15EB.0020.000A][.185B.0020.000A] # LATIN CAPITAL LETTER AV
-A73B ; [.15EB.0020.0004][.0000.00FC.0004][.185B.0020.0004] # LATIN SMALL LETTER AV WITH HORIZONTAL BAR
-A73A ; [.15EB.0020.000A][.0000.00FC.0004][.185B.0020.000A] # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
-A73D ; [.15EB.0020.0004][.187C.0020.0004] # LATIN SMALL LETTER AY
-A73C ; [.15EB.0020.000A][.187C.0020.000A] # LATIN CAPITAL LETTER AY
-1E9A ; [.15EB.0020.0004][.18ED.0020.0004] # LATIN SMALL LETTER A WITH RIGHT HALF RING
-1D00 ; [.15EF.0020.0002] # LATIN LETTER SMALL CAPITAL A
-2C65 ; [.15F0.0020.0002] # LATIN SMALL LETTER A WITH STROKE
-023A ; [.15F0.0020.0008] # LATIN CAPITAL LETTER A WITH STROKE
-1D8F ; [.15F1.0020.0002] # LATIN SMALL LETTER A WITH RETROFLEX HOOK
-1D01 ; [.15F2.0020.0002] # LATIN LETTER SMALL CAPITAL AE
-1D02 ; [.15F3.0020.0002] # LATIN SMALL LETTER TURNED AE
-1D46 ; [.15F3.0020.0014] # MODIFIER LETTER SMALL TURNED AE
-0250 ; [.15F4.0020.0002] # LATIN SMALL LETTER TURNED A
-2C6F ; [.15F4.0020.0008] # LATIN CAPITAL LETTER TURNED A
-1D44 ; [.15F4.0020.0014] # MODIFIER LETTER SMALL TURNED A
-0251 ; [.15F8.0020.0002] # LATIN SMALL LETTER ALPHA
-2C6D ; [.15F8.0020.0008] # LATIN CAPITAL LETTER ALPHA
-1D45 ; [.15F8.0020.0014] # MODIFIER LETTER SMALL ALPHA
-1D90 ; [.15FC.0020.0002] # LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK
-0252 ; [.15FD.0020.0002] # LATIN SMALL LETTER TURNED ALPHA
-2C70 ; [.15FD.0020.0008] # LATIN CAPITAL LETTER TURNED ALPHA
-1D9B ; [.15FD.0020.0014] # MODIFIER LETTER SMALL TURNED ALPHA
-0062 ; [.1601.0020.0002] # LATIN SMALL LETTER B
-FF42 ; [.1601.0020.0003] # FULLWIDTH LATIN SMALL LETTER B
-249D ; [*02FA.0020.0004][.1601.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER B
-1D41B ; [.1601.0020.0005] # MATHEMATICAL BOLD SMALL B
-1D44F ; [.1601.0020.0005] # MATHEMATICAL ITALIC SMALL B
-1D483 ; [.1601.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL B
-1D4B7 ; [.1601.0020.0005] # MATHEMATICAL SCRIPT SMALL B
-1D4EB ; [.1601.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL B
-1D51F ; [.1601.0020.0005] # MATHEMATICAL FRAKTUR SMALL B
-1D553 ; [.1601.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL B
-1D587 ; [.1601.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL B
-1D5BB ; [.1601.0020.0005] # MATHEMATICAL SANS-SERIF SMALL B
-1D5EF ; [.1601.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL B
-1D623 ; [.1601.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL B
-1D657 ; [.1601.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
-1D68B ; [.1601.0020.0005] # MATHEMATICAL MONOSPACE SMALL B
-24D1 ; [.1601.0020.0006] # CIRCLED LATIN SMALL LETTER B
-0042 ; [.1601.0020.0008] # LATIN CAPITAL LETTER B
-FF22 ; [.1601.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER B
-1F111 ; [*02FA.0020.0004][.1601.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER B
-212C ; [.1601.0020.000B] # SCRIPT CAPITAL B
-1D401 ; [.1601.0020.000B] # MATHEMATICAL BOLD CAPITAL B
-1D435 ; [.1601.0020.000B] # MATHEMATICAL ITALIC CAPITAL B
-1D469 ; [.1601.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL B
-1D4D1 ; [.1601.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL B
-1D505 ; [.1601.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL B
-1D539 ; [.1601.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL B
-1D56D ; [.1601.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL B
-1D5A1 ; [.1601.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL B
-1D5D5 ; [.1601.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL B
-1D609 ; [.1601.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
-1D63D ; [.1601.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
-1D671 ; [.1601.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL B
-24B7 ; [.1601.0020.000C] # CIRCLED LATIN CAPITAL LETTER B
-1F151 ; [.1601.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER B
-1D47 ; [.1601.0020.0014] # MODIFIER LETTER SMALL B
-1D2E ; [.1601.0020.001D] # MODIFIER LETTER CAPITAL B
-1F131 ; [.1601.0020.001D] # SQUARED LATIN CAPITAL LETTER B
-1F171 ; [.1601.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER B
-1E03 ; [.1601.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER B WITH DOT ABOVE
-1E02 ; [.1601.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER B WITH DOT ABOVE
-1E05 ; [.1601.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER B WITH DOT BELOW
-1E04 ; [.1601.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER B WITH DOT BELOW
-1E07 ; [.1601.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER B WITH LINE BELOW
-1E06 ; [.1601.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER B WITH LINE BELOW
-3374 ; [.1601.0020.001C][.15EB.0020.001C][.17B9.0020.001C] # SQUARE BAR
-33C3 ; [.1601.0020.001D][.17A7.0020.001C] # SQUARE BQ
-0299 ; [.1605.0020.0002] # LATIN LETTER SMALL CAPITAL B
-0180 ; [.1609.0020.0002] # LATIN SMALL LETTER B WITH STROKE
-0243 ; [.1609.0020.0008] # LATIN CAPITAL LETTER B WITH STROKE
-1D2F ; [.160D.0020.0002] # MODIFIER LETTER CAPITAL BARRED B
-1D03 ; [.160E.0020.0002] # LATIN LETTER SMALL CAPITAL BARRED B
-1D6C ; [.160F.0020.0002] # LATIN SMALL LETTER B WITH MIDDLE TILDE
-1D80 ; [.1610.0020.0002] # LATIN SMALL LETTER B WITH PALATAL HOOK
-0253 ; [.1611.0020.0002] # LATIN SMALL LETTER B WITH HOOK
-0181 ; [.1611.0020.0008] # LATIN CAPITAL LETTER B WITH HOOK
-0183 ; [.1615.0020.0002] # LATIN SMALL LETTER B WITH TOPBAR
-0182 ; [.1615.0020.0008] # LATIN CAPITAL LETTER B WITH TOPBAR
-0063 ; [.1619.0020.0002] # LATIN SMALL LETTER C
-FF43 ; [.1619.0020.0003] # FULLWIDTH LATIN SMALL LETTER C
-0368 ; [.1619.0020.0004] # COMBINING LATIN SMALL LETTER C
-217D ; [.1619.0020.0004] # SMALL ROMAN NUMERAL ONE HUNDRED
-249E ; [*02FA.0020.0004][.1619.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER C
-1D41C ; [.1619.0020.0005] # MATHEMATICAL BOLD SMALL C
-1D450 ; [.1619.0020.0005] # MATHEMATICAL ITALIC SMALL C
-1D484 ; [.1619.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL C
-1D4B8 ; [.1619.0020.0005] # MATHEMATICAL SCRIPT SMALL C
-1D4EC ; [.1619.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL C
-1D520 ; [.1619.0020.0005] # MATHEMATICAL FRAKTUR SMALL C
-1D554 ; [.1619.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL C
-1D588 ; [.1619.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL C
-1D5BC ; [.1619.0020.0005] # MATHEMATICAL SANS-SERIF SMALL C
-1D5F0 ; [.1619.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL C
-1D624 ; [.1619.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL C
-1D658 ; [.1619.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
-1D68C ; [.1619.0020.0005] # MATHEMATICAL MONOSPACE SMALL C
-24D2 ; [.1619.0020.0006] # CIRCLED LATIN SMALL LETTER C
-0043 ; [.1619.0020.0008] # LATIN CAPITAL LETTER C
-FF23 ; [.1619.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER C
-2103 ; [*0485.0020.0004][.1619.0020.000A] # DEGREE CELSIUS
-216D ; [.1619.0020.000A] # ROMAN NUMERAL ONE HUNDRED
-1F112 ; [*02FA.0020.0004][.1619.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER C
-2102 ; [.1619.0020.000B] # DOUBLE-STRUCK CAPITAL C
-212D ; [.1619.0020.000B] # BLACK-LETTER CAPITAL C
-1D402 ; [.1619.0020.000B] # MATHEMATICAL BOLD CAPITAL C
-1D436 ; [.1619.0020.000B] # MATHEMATICAL ITALIC CAPITAL C
-1D46A ; [.1619.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL C
-1D49E ; [.1619.0020.000B] # MATHEMATICAL SCRIPT CAPITAL C
-1D4D2 ; [.1619.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL C
-1D56E ; [.1619.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL C
-1D5A2 ; [.1619.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL C
-1D5D6 ; [.1619.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL C
-1D60A ; [.1619.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
-1D63E ; [.1619.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
-1D672 ; [.1619.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL C
-24B8 ; [.1619.0020.000C] # CIRCLED LATIN CAPITAL LETTER C
-1F12B ; [.1619.0020.000C] # CIRCLED ITALIC LATIN CAPITAL LETTER C
-1F152 ; [.1619.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER C
-1D9C ; [.1619.0020.0014] # MODIFIER LETTER SMALL C
-1F132 ; [.1619.0020.001D] # SQUARED LATIN CAPITAL LETTER C
-1F172 ; [.1619.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER C
-0107 ; [.1619.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER C WITH ACUTE
-0106 ; [.1619.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER C WITH ACUTE
-0109 ; [.1619.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
-0108 ; [.1619.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-010D ; [.1619.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.1619.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER C WITH CARON
-010B ; [.1619.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
-010A ; [.1619.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER C WITH DOT ABOVE
-00E7 ; [.1619.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER C WITH CEDILLA
-1DD7 ; [.1619.0020.0004][.0000.0030.0004] # COMBINING LATIN SMALL LETTER C CEDILLA
-00C7 ; [.1619.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER C WITH CEDILLA
-1E09 ; [.1619.0020.0002][.0000.0030.0002][.0000.0024.0002] # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
-1E08 ; [.1619.0020.0008][.0000.0030.0002][.0000.0024.0002] # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
-3388 ; [.1619.0020.001C][.15EB.0020.001C][.170D.0020.001C] # SQUARE CAL
-33C4 ; [.1619.0020.001C][.1619.0020.001C] # SQUARE CC
-1F12D ; [.1619.0020.000C][.162D.0020.000C] # CIRCLED CD
-33C5 ; [.1619.0020.001C][.162D.0020.001C] # SQUARE CD
-33C6 ; [.1619.0020.001D][*05AE.0020.001C][.16FB.0020.001C][.168D.0020.001C] # SQUARE C OVER KG
-1F191 ; [.1619.0020.001D][.170D.0020.001D] # SQUARED CL
-339D ; [.1619.0020.001C][.173D.0020.001C] # SQUARE CM
-33A0 ; [.1619.0020.001C][.173D.0020.001C][.15E3.0020.001C] # SQUARE CM SQUARED
-33A4 ; [.1619.0020.001C][.173D.0020.001C][.15E4.0020.001C] # SQUARE CM CUBED
-2105 ; [.1619.0020.0004][*0375.0020.0004][.176D.0020.0004] # CARE OF
-33C7 ; [.1619.0020.001D][.176D.0020.001C][*0272.0020.001C] # SQUARE CO
-1F192 ; [.1619.0020.001D][.176D.0020.001D][.176D.0020.001D][.170D.0020.001D] # SQUARED COOL
-2106 ; [.1619.0020.0004][*0375.0020.0004][.1832.0020.0004] # CADA UNA
-1D04 ; [.161D.0020.0002] # LATIN LETTER SMALL CAPITAL C
-023C ; [.161E.0020.0002] # LATIN SMALL LETTER C WITH STROKE
-023B ; [.161E.0020.0008] # LATIN CAPITAL LETTER C WITH STROKE
-A793 ; [.1622.0020.0002] # LATIN SMALL LETTER C WITH BAR
-A792 ; [.1622.0020.0008] # LATIN CAPITAL LETTER C WITH BAR
-0188 ; [.1623.0020.0002] # LATIN SMALL LETTER C WITH HOOK
-0187 ; [.1623.0020.0008] # LATIN CAPITAL LETTER C WITH HOOK
-0255 ; [.1627.0020.0002] # LATIN SMALL LETTER C WITH CURL
-1D9D ; [.1627.0020.0014] # MODIFIER LETTER SMALL C WITH CURL
-2184 ; [.162B.0020.0002] # LATIN SMALL LETTER REVERSED C
-2183 ; [.162B.0020.0008] # ROMAN NUMERAL REVERSED ONE HUNDRED
-A73F ; [.162C.0020.0002] # LATIN SMALL LETTER REVERSED C WITH DOT
-A73E ; [.162C.0020.0008] # LATIN CAPITAL LETTER REVERSED C WITH DOT
-0064 ; [.162D.0020.0002] # LATIN SMALL LETTER D
-FF44 ; [.162D.0020.0003] # FULLWIDTH LATIN SMALL LETTER D
-0369 ; [.162D.0020.0004] # COMBINING LATIN SMALL LETTER D
-217E ; [.162D.0020.0004] # SMALL ROMAN NUMERAL FIVE HUNDRED
-249F ; [*02FA.0020.0004][.162D.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER D
-2146 ; [.162D.0020.0005] # DOUBLE-STRUCK ITALIC SMALL D
-1D41D ; [.162D.0020.0005] # MATHEMATICAL BOLD SMALL D
-1D451 ; [.162D.0020.0005] # MATHEMATICAL ITALIC SMALL D
-1D485 ; [.162D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL D
-1D4B9 ; [.162D.0020.0005] # MATHEMATICAL SCRIPT SMALL D
-1D4ED ; [.162D.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL D
-1D521 ; [.162D.0020.0005] # MATHEMATICAL FRAKTUR SMALL D
-1D555 ; [.162D.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL D
-1D589 ; [.162D.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL D
-1D5BD ; [.162D.0020.0005] # MATHEMATICAL SANS-SERIF SMALL D
-1D5F1 ; [.162D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL D
-1D625 ; [.162D.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL D
-1D659 ; [.162D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
-1D68D ; [.162D.0020.0005] # MATHEMATICAL MONOSPACE SMALL D
-24D3 ; [.162D.0020.0006] # CIRCLED LATIN SMALL LETTER D
-0044 ; [.162D.0020.0008] # LATIN CAPITAL LETTER D
-FF24 ; [.162D.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER D
-216E ; [.162D.0020.000A] # ROMAN NUMERAL FIVE HUNDRED
-1F113 ; [*02FA.0020.0004][.162D.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER D
-2145 ; [.162D.0020.000B] # DOUBLE-STRUCK ITALIC CAPITAL D
-1D403 ; [.162D.0020.000B] # MATHEMATICAL BOLD CAPITAL D
-1D437 ; [.162D.0020.000B] # MATHEMATICAL ITALIC CAPITAL D
-1D46B ; [.162D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL D
-1D49F ; [.162D.0020.000B] # MATHEMATICAL SCRIPT CAPITAL D
-1D4D3 ; [.162D.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL D
-1D507 ; [.162D.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL D
-1D53B ; [.162D.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL D
-1D56F ; [.162D.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL D
-1D5A3 ; [.162D.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL D
-1D5D7 ; [.162D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL D
-1D60B ; [.162D.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
-1D63F ; [.162D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
-1D673 ; [.162D.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL D
-24B9 ; [.162D.0020.000C] # CIRCLED LATIN CAPITAL LETTER D
-1F153 ; [.162D.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER D
-1D48 ; [.162D.0020.0014] # MODIFIER LETTER SMALL D
-1D30 ; [.162D.0020.001D] # MODIFIER LETTER CAPITAL D
-1F133 ; [.162D.0020.001D] # SQUARED LATIN CAPITAL LETTER D
-1F173 ; [.162D.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER D
-010F ; [.162D.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER D WITH CARON
-010E ; [.162D.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER D WITH CARON
-1E0B ; [.162D.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER D WITH DOT ABOVE
-1E0A ; [.162D.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER D WITH DOT ABOVE
-1E11 ; [.162D.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER D WITH CEDILLA
-1E10 ; [.162D.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER D WITH CEDILLA
-0111 ; [.162D.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.162D.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
-1E0D ; [.162D.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER D WITH DOT BELOW
-1E0C ; [.162D.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER D WITH DOT BELOW
-1E13 ; [.162D.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
-1E12 ; [.162D.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
-1E0F ; [.162D.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER D WITH LINE BELOW
-1E0E ; [.162D.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER D WITH LINE BELOW
-00F0 ; [.162D.0020.0004][.0000.00FC.0004] # LATIN SMALL LETTER ETH
-1DD9 ; [.162D.0020.0004][.0000.00FC.0004] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.162D.0020.000A][.0000.00FC.0004] # LATIN CAPITAL LETTER ETH
-1D9E ; [.162D.0020.0014][.0000.00FC.0014] # MODIFIER LETTER SMALL ETH
-1DD8 ; [.162D.0020.0004][.0000.00FD.0004] # COMBINING LATIN SMALL LETTER INSULAR D
-A77A ; [.162D.0020.0004][.0000.00FD.0004] # LATIN SMALL LETTER INSULAR D
-A779 ; [.162D.0020.000A][.0000.00FD.0004] # LATIN CAPITAL LETTER INSULAR D
-3372 ; [.162D.0020.001C][.15EB.0020.001C] # SQUARE DA
-0238 ; [.162D.0020.0004][.1601.0020.0004] # LATIN SMALL LETTER DB DIGRAPH
-33C8 ; [.162D.0020.001C][.1601.0020.001D] # SQUARE DB
-1F190 ; [.162D.0020.001D][.16E2.0020.001D] # SQUARE DJ
-3397 ; [.162D.0020.001C][.170D.0020.001C] # SQUARE DL
-3377 ; [.162D.0020.001C][.173D.0020.001C] # SQUARE DM
-3378 ; [.162D.0020.001C][.173D.0020.001C][.15E3.0020.001C] # SQUARE DM SQUARED
-3379 ; [.162D.0020.001C][.173D.0020.001C][.15E4.0020.001C] # SQUARE DM CUBED
-01F3 ; [.162D.0020.0004][.1891.0020.0004] # LATIN SMALL LETTER DZ
-02A3 ; [.162D.0020.0004][.1891.0020.0004] # LATIN SMALL LETTER DZ DIGRAPH
-01F2 ; [.162D.0020.000A][.1891.0020.0004] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z
-01F1 ; [.162D.0020.000A][.1891.0020.000A] # LATIN CAPITAL LETTER DZ
-01C6 ; [.162D.0020.0004][.1891.0020.0004][.0000.0028.0004] # LATIN SMALL LETTER DZ WITH CARON
-01C5 ; [.162D.0020.000A][.1891.0020.0004][.0000.0028.0004] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-01C4 ; [.162D.0020.000A][.1891.0020.000A][.0000.0028.0004] # LATIN CAPITAL LETTER DZ WITH CARON
-02A5 ; [.162D.0020.0004][.18A4.0020.0004] # LATIN SMALL LETTER DZ DIGRAPH WITH CURL
-02A4 ; [.162D.0020.0004][.18AE.0020.0004] # LATIN SMALL LETTER DEZH DIGRAPH
-1D05 ; [.1631.0020.0002] # LATIN LETTER SMALL CAPITAL D
-1D06 ; [.1632.0020.0002] # LATIN LETTER SMALL CAPITAL ETH
-1D6D ; [.1633.0020.0002] # LATIN SMALL LETTER D WITH MIDDLE TILDE
-1D81 ; [.1634.0020.0002] # LATIN SMALL LETTER D WITH PALATAL HOOK
-0256 ; [.1635.0020.0002] # LATIN SMALL LETTER D WITH TAIL
-0189 ; [.1635.0020.0008] # LATIN CAPITAL LETTER AFRICAN D
-0257 ; [.1639.0020.0002] # LATIN SMALL LETTER D WITH HOOK
-018A ; [.1639.0020.0008] # LATIN CAPITAL LETTER D WITH HOOK
-1D91 ; [.163D.0020.0002] # LATIN SMALL LETTER D WITH HOOK AND TAIL
-018C ; [.163E.0020.0002] # LATIN SMALL LETTER D WITH TOPBAR
-018B ; [.163E.0020.0008] # LATIN CAPITAL LETTER D WITH TOPBAR
-0221 ; [.1642.0020.0002] # LATIN SMALL LETTER D WITH CURL
-A771 ; [.1646.0020.0002] # LATIN SMALL LETTER DUM
-1E9F ; [.1647.0020.0002] # LATIN SMALL LETTER DELTA
-0065 ; [.1648.0020.0002] # LATIN SMALL LETTER E
-FF45 ; [.1648.0020.0003] # FULLWIDTH LATIN SMALL LETTER E
-0364 ; [.1648.0020.0004] # COMBINING LATIN SMALL LETTER E
-24A0 ; [*02FA.0020.0004][.1648.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER E
-212F ; [.1648.0020.0005] # SCRIPT SMALL E
-2147 ; [.1648.0020.0005] # DOUBLE-STRUCK ITALIC SMALL E
-1D41E ; [.1648.0020.0005] # MATHEMATICAL BOLD SMALL E
-1D452 ; [.1648.0020.0005] # MATHEMATICAL ITALIC SMALL E
-1D486 ; [.1648.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL E
-1D4EE ; [.1648.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL E
-1D522 ; [.1648.0020.0005] # MATHEMATICAL FRAKTUR SMALL E
-1D556 ; [.1648.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL E
-1D58A ; [.1648.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL E
-1D5BE ; [.1648.0020.0005] # MATHEMATICAL SANS-SERIF SMALL E
-1D5F2 ; [.1648.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL E
-1D626 ; [.1648.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL E
-1D65A ; [.1648.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
-1D68E ; [.1648.0020.0005] # MATHEMATICAL MONOSPACE SMALL E
-24D4 ; [.1648.0020.0006] # CIRCLED LATIN SMALL LETTER E
-0045 ; [.1648.0020.0008] # LATIN CAPITAL LETTER E
-FF25 ; [.1648.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER E
-1F114 ; [*02FA.0020.0004][.1648.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER E
-2130 ; [.1648.0020.000B] # SCRIPT CAPITAL E
-1D404 ; [.1648.0020.000B] # MATHEMATICAL BOLD CAPITAL E
-1D438 ; [.1648.0020.000B] # MATHEMATICAL ITALIC CAPITAL E
-1D46C ; [.1648.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL E
-1D4D4 ; [.1648.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL E
-1D508 ; [.1648.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL E
-1D53C ; [.1648.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL E
-1D570 ; [.1648.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL E
-1D5A4 ; [.1648.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL E
-1D5D8 ; [.1648.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL E
-1D60C ; [.1648.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
-1D640 ; [.1648.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
-1D674 ; [.1648.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL E
-24BA ; [.1648.0020.000C] # CIRCLED LATIN CAPITAL LETTER E
-1F154 ; [.1648.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER E
-1D49 ; [.1648.0020.0014] # MODIFIER LETTER SMALL E
-2091 ; [.1648.0020.0015] # LATIN SUBSCRIPT SMALL LETTER E
-1D31 ; [.1648.0020.001D] # MODIFIER LETTER CAPITAL E
-1F134 ; [.1648.0020.001D] # SQUARED LATIN CAPITAL LETTER E
-1F174 ; [.1648.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER E
-00E9 ; [.1648.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.1648.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH ACUTE
-00E8 ; [.1648.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.1648.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH GRAVE
-0115 ; [.1648.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER E WITH BREVE
-0114 ; [.1648.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER E WITH BREVE
-00EA ; [.1648.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.1648.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EBF ; [.1648.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.1648.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC1 ; [.1648.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.1648.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC5 ; [.1648.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.1648.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.1648.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.1648.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-011B ; [.1648.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.1648.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER E WITH CARON
-00EB ; [.1648.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-00CB ; [.1648.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER E WITH DIAERESIS
-1EBD ; [.1648.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH TILDE
-1EBC ; [.1648.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH TILDE
-0117 ; [.1648.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
-0116 ; [.1648.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER E WITH DOT ABOVE
-0229 ; [.1648.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER E WITH CEDILLA
-0228 ; [.1648.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER E WITH CEDILLA
-1E1D ; [.1648.0020.0002][.0000.0030.0002][.0000.0026.0002] # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
-1E1C ; [.1648.0020.0008][.0000.0030.0002][.0000.0026.0002] # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
-0119 ; [.1648.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1648.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER E WITH OGONEK
-0113 ; [.1648.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.1648.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER E WITH MACRON
-1E17 ; [.1648.0020.0002][.0000.0032.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH MACRON AND ACUTE
-1E16 ; [.1648.0020.0008][.0000.0032.0002][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
-1E15 ; [.1648.0020.0002][.0000.0032.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH MACRON AND GRAVE
-1E14 ; [.1648.0020.0008][.0000.0032.0002][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
-1EBB ; [.1648.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH HOOK ABOVE
-1EBA ; [.1648.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH HOOK ABOVE
-0205 ; [.1648.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER E WITH DOUBLE GRAVE
-0204 ; [.1648.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
-0207 ; [.1648.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER E WITH INVERTED BREVE
-0206 ; [.1648.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER E WITH INVERTED BREVE
-1EB9 ; [.1648.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH DOT BELOW
-1EB8 ; [.1648.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH DOT BELOW
-1EC7 ; [.1648.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.1648.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1E19 ; [.1648.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
-1E18 ; [.1648.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
-1E1B ; [.1648.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER E WITH TILDE BELOW
-1E1A ; [.1648.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER E WITH TILDE BELOW
-32CD ; [.1648.0020.001C][.17B9.0020.001C][.168D.0020.001C] # SQUARE ERG
-32CE ; [.1648.0020.001C][.185B.0020.001D] # SQUARE EV
-1D07 ; [.164C.0020.0002] # LATIN LETTER SMALL CAPITAL E
-0247 ; [.164D.0020.0002] # LATIN SMALL LETTER E WITH STROKE
-0246 ; [.164D.0020.0008] # LATIN CAPITAL LETTER E WITH STROKE
-1D92 ; [.1651.0020.0002] # LATIN SMALL LETTER E WITH RETROFLEX HOOK
-2C78 ; [.1652.0020.0002] # LATIN SMALL LETTER E WITH NOTCH
-01DD ; [.1653.0020.0002] # LATIN SMALL LETTER TURNED E
-018E ; [.1653.0020.0008] # LATIN CAPITAL LETTER REVERSED E
-1D32 ; [.1653.0020.001D] # MODIFIER LETTER CAPITAL REVERSED E
-2C7B ; [.1657.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED E
-0259 ; [.1658.0020.0002] # LATIN SMALL LETTER SCHWA
-018F ; [.1658.0020.0008] # LATIN CAPITAL LETTER SCHWA
-1D4A ; [.1658.0020.0014] # MODIFIER LETTER SMALL SCHWA
-2094 ; [.1658.0020.0015] # LATIN SUBSCRIPT SMALL LETTER SCHWA
-1D95 ; [.165C.0020.0002] # LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK
-025B ; [.165D.0020.0002] # LATIN SMALL LETTER OPEN E
-0190 ; [.165D.0020.0008] # LATIN CAPITAL LETTER OPEN E
-2107 ; [.165D.0020.000A] # EULER CONSTANT
-1D4B ; [.165D.0020.0014] # MODIFIER LETTER SMALL OPEN E
-1D93 ; [.1661.0020.0002] # LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK
-0258 ; [.1662.0020.0002] # LATIN SMALL LETTER REVERSED E
-025A ; [.1666.0020.0002] # LATIN SMALL LETTER SCHWA WITH HOOK
-025C ; [.166A.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E
-1D9F ; [.166A.0020.0014] # MODIFIER LETTER SMALL REVERSED OPEN E
-1D94 ; [.166E.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK
-1D08 ; [.166F.0020.0002] # LATIN SMALL LETTER TURNED OPEN E
-1D4C ; [.166F.0020.0014] # MODIFIER LETTER SMALL TURNED OPEN E
-025D ; [.1670.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
-025E ; [.1674.0020.0002] # LATIN SMALL LETTER CLOSED REVERSED OPEN E
-029A ; [.1678.0020.0002] # LATIN SMALL LETTER CLOSED OPEN E
-0264 ; [.167C.0020.0002] # LATIN SMALL LETTER RAMS HORN
-0066 ; [.1680.0020.0002] # LATIN SMALL LETTER F
-FF46 ; [.1680.0020.0003] # FULLWIDTH LATIN SMALL LETTER F
-24A1 ; [*02FA.0020.0004][.1680.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER F
-1D41F ; [.1680.0020.0005] # MATHEMATICAL BOLD SMALL F
-1D453 ; [.1680.0020.0005] # MATHEMATICAL ITALIC SMALL F
-1D487 ; [.1680.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL F
-1D4BB ; [.1680.0020.0005] # MATHEMATICAL SCRIPT SMALL F
-1D4EF ; [.1680.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL F
-1D523 ; [.1680.0020.0005] # MATHEMATICAL FRAKTUR SMALL F
-1D557 ; [.1680.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL F
-1D58B ; [.1680.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL F
-1D5BF ; [.1680.0020.0005] # MATHEMATICAL SANS-SERIF SMALL F
-1D5F3 ; [.1680.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL F
-1D627 ; [.1680.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL F
-1D65B ; [.1680.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
-1D68F ; [.1680.0020.0005] # MATHEMATICAL MONOSPACE SMALL F
-24D5 ; [.1680.0020.0006] # CIRCLED LATIN SMALL LETTER F
-0046 ; [.1680.0020.0008] # LATIN CAPITAL LETTER F
-FF26 ; [.1680.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER F
-2109 ; [*0485.0020.0004][.1680.0020.000A] # DEGREE FAHRENHEIT
-1F115 ; [*02FA.0020.0004][.1680.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER F
-2131 ; [.1680.0020.000B] # SCRIPT CAPITAL F
-1D405 ; [.1680.0020.000B] # MATHEMATICAL BOLD CAPITAL F
-1D439 ; [.1680.0020.000B] # MATHEMATICAL ITALIC CAPITAL F
-1D46D ; [.1680.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL F
-1D4D5 ; [.1680.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL F
-1D509 ; [.1680.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL F
-1D53D ; [.1680.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL F
-1D571 ; [.1680.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL F
-1D5A5 ; [.1680.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL F
-1D5D9 ; [.1680.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL F
-1D60D ; [.1680.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
-1D641 ; [.1680.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
-1D675 ; [.1680.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL F
-24BB ; [.1680.0020.000C] # CIRCLED LATIN CAPITAL LETTER F
-1F155 ; [.1680.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER F
-1DA0 ; [.1680.0020.0014] # MODIFIER LETTER SMALL F
-1F135 ; [.1680.0020.001D] # SQUARED LATIN CAPITAL LETTER F
-1F175 ; [.1680.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER F
-1E1F ; [.1680.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER F WITH DOT ABOVE
-1E1E ; [.1680.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER F WITH DOT ABOVE
-A77C ; [.1680.0020.0004][.0000.00FD.0004] # LATIN SMALL LETTER INSULAR F
-A77B ; [.1680.0020.000A][.0000.00FD.0004] # LATIN CAPITAL LETTER INSULAR F
-213B ; [.1680.0020.000A][.15EB.0020.000A][.1877.0020.000A] # FACSIMILE SIGN
-FB00 ; [.1680.0020.0004][.1680.0020.0004] # LATIN SMALL LIGATURE FF
-FB03 ; [.1680.0020.0004][.1680.0020.0004][.16C9.0020.0004] # LATIN SMALL LIGATURE FFI
-FB04 ; [.1680.0020.0004][.1680.0020.0004][.170D.0020.0004] # LATIN SMALL LIGATURE FFL
-FB01 ; [.1680.0020.0004][.16C9.0020.0004] # LATIN SMALL LIGATURE FI
-FB02 ; [.1680.0020.0004][.170D.0020.0004] # LATIN SMALL LIGATURE FL
-3399 ; [.1680.0020.001C][.173D.0020.001C] # SQUARE FM
-02A9 ; [.1680.0020.0004][.1769.0020.0004] # LATIN SMALL LETTER FENG DIGRAPH
-1F193 ; [.1680.0020.001D][.17B9.0020.001D][.1648.0020.001D][.1648.0020.001D] # SQUARED FREE
-A730 ; [.1684.0020.0002] # LATIN LETTER SMALL CAPITAL F
-1D6E ; [.1685.0020.0002] # LATIN SMALL LETTER F WITH MIDDLE TILDE
-1D82 ; [.1686.0020.0002] # LATIN SMALL LETTER F WITH PALATAL HOOK
-0192 ; [.1687.0020.0002] # LATIN SMALL LETTER F WITH HOOK
-0191 ; [.1687.0020.0008] # LATIN CAPITAL LETTER F WITH HOOK
-214E ; [.168B.0020.0002] # TURNED SMALL F
-2132 ; [.168B.0020.0008] # TURNED CAPITAL F
-A7FB ; [.168C.0020.0002] # LATIN EPIGRAPHIC LETTER REVERSED F
-0067 ; [.168D.0020.0002] # LATIN SMALL LETTER G
-FF47 ; [.168D.0020.0003] # FULLWIDTH LATIN SMALL LETTER G
-1DDA ; [.168D.0020.0004] # COMBINING LATIN SMALL LETTER G
-24A2 ; [*02FA.0020.0004][.168D.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER G
-210A ; [.168D.0020.0005] # SCRIPT SMALL G
-1D420 ; [.168D.0020.0005] # MATHEMATICAL BOLD SMALL G
-1D454 ; [.168D.0020.0005] # MATHEMATICAL ITALIC SMALL G
-1D488 ; [.168D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL G
-1D4F0 ; [.168D.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL G
-1D524 ; [.168D.0020.0005] # MATHEMATICAL FRAKTUR SMALL G
-1D558 ; [.168D.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL G
-1D58C ; [.168D.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL G
-1D5C0 ; [.168D.0020.0005] # MATHEMATICAL SANS-SERIF SMALL G
-1D5F4 ; [.168D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL G
-1D628 ; [.168D.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL G
-1D65C ; [.168D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
-1D690 ; [.168D.0020.0005] # MATHEMATICAL MONOSPACE SMALL G
-24D6 ; [.168D.0020.0006] # CIRCLED LATIN SMALL LETTER G
-0047 ; [.168D.0020.0008] # LATIN CAPITAL LETTER G
-FF27 ; [.168D.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER G
-1F116 ; [*02FA.0020.0004][.168D.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER G
-1D406 ; [.168D.0020.000B] # MATHEMATICAL BOLD CAPITAL G
-1D43A ; [.168D.0020.000B] # MATHEMATICAL ITALIC CAPITAL G
-1D46E ; [.168D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL G
-1D4A2 ; [.168D.0020.000B] # MATHEMATICAL SCRIPT CAPITAL G
-1D4D6 ; [.168D.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL G
-1D50A ; [.168D.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL G
-1D53E ; [.168D.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL G
-1D572 ; [.168D.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL G
-1D5A6 ; [.168D.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL G
-1D5DA ; [.168D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL G
-1D60E ; [.168D.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
-1D642 ; [.168D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
-1D676 ; [.168D.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL G
-24BC ; [.168D.0020.000C] # CIRCLED LATIN CAPITAL LETTER G
-1F156 ; [.168D.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER G
-1D4D ; [.168D.0020.0014] # MODIFIER LETTER SMALL G
-1D33 ; [.168D.0020.001D] # MODIFIER LETTER CAPITAL G
-1F136 ; [.168D.0020.001D] # SQUARED LATIN CAPITAL LETTER G
-1F176 ; [.168D.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER G
-01F5 ; [.168D.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER G WITH ACUTE
-01F4 ; [.168D.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER G WITH ACUTE
-011F ; [.168D.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER G WITH BREVE
-011E ; [.168D.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER G WITH BREVE
-011D ; [.168D.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
-011C ; [.168D.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-01E7 ; [.168D.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER G WITH CARON
-01E6 ; [.168D.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER G WITH CARON
-0121 ; [.168D.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
-0120 ; [.168D.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER G WITH DOT ABOVE
-0123 ; [.168D.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER G WITH CEDILLA
-0122 ; [.168D.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER G WITH CEDILLA
-1E21 ; [.168D.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER G WITH MACRON
-1E20 ; [.168D.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER G WITH MACRON
-A7A1 ; [.168D.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER G WITH OBLIQUE STROKE
-A7A0 ; [.168D.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
-1D79 ; [.168D.0020.0004][.0000.00FD.0004] # LATIN SMALL LETTER INSULAR G
-A77D ; [.168D.0020.000A][.0000.00FD.0004] # LATIN CAPITAL LETTER INSULAR G
-33FF ; [.168D.0020.001C][.15EB.0020.001C][.170D.0020.001C] # SQUARE GAL
-3387 ; [.168D.0020.001D][.1601.0020.001D] # SQUARE GB
-3393 ; [.168D.0020.001D][.16B0.0020.001D][.1891.0020.001C] # SQUARE GHZ
-33AC ; [.168D.0020.001D][.1792.0020.001D][.15EB.0020.001C] # SQUARE GPA
-33C9 ; [.168D.0020.001D][.187C.0020.001C] # SQUARE GY
-0261 ; [.1691.0020.0002] # LATIN SMALL LETTER SCRIPT G
-1DA2 ; [.1691.0020.0014] # MODIFIER LETTER SMALL SCRIPT G
-0262 ; [.1695.0020.0002] # LATIN LETTER SMALL CAPITAL G
-1DDB ; [.1695.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL G
-01E5 ; [.1699.0020.0002] # LATIN SMALL LETTER G WITH STROKE
-01E4 ; [.1699.0020.0008] # LATIN CAPITAL LETTER G WITH STROKE
-1D83 ; [.169D.0020.0002] # LATIN SMALL LETTER G WITH PALATAL HOOK
-0260 ; [.169E.0020.0002] # LATIN SMALL LETTER G WITH HOOK
-0193 ; [.169E.0020.0008] # LATIN CAPITAL LETTER G WITH HOOK
-029B ; [.16A2.0020.0002] # LATIN LETTER SMALL CAPITAL G WITH HOOK
-1D77 ; [.16A6.0020.0002] # LATIN SMALL LETTER TURNED G
-A77F ; [.16A7.0020.0002] # LATIN SMALL LETTER TURNED INSULAR G
-A77E ; [.16A7.0020.0008] # LATIN CAPITAL LETTER TURNED INSULAR G
-0263 ; [.16A8.0020.0002] # LATIN SMALL LETTER GAMMA
-0194 ; [.16A8.0020.0008] # LATIN CAPITAL LETTER GAMMA
-02E0 ; [.16A8.0020.0014] # MODIFIER LETTER SMALL GAMMA
-01A3 ; [.16AC.0020.0002] # LATIN SMALL LETTER OI
-01A2 ; [.16AC.0020.0008] # LATIN CAPITAL LETTER OI
-0068 ; [.16B0.0020.0002] # LATIN SMALL LETTER H
-FF48 ; [.16B0.0020.0003] # FULLWIDTH LATIN SMALL LETTER H
-036A ; [.16B0.0020.0004] # COMBINING LATIN SMALL LETTER H
-24A3 ; [*02FA.0020.0004][.16B0.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER H
-210E ; [.16B0.0020.0005] # PLANCK CONSTANT
-1D421 ; [.16B0.0020.0005] # MATHEMATICAL BOLD SMALL H
-1D489 ; [.16B0.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL H
-1D4BD ; [.16B0.0020.0005] # MATHEMATICAL SCRIPT SMALL H
-1D4F1 ; [.16B0.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL H
-1D525 ; [.16B0.0020.0005] # MATHEMATICAL FRAKTUR SMALL H
-1D559 ; [.16B0.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL H
-1D58D ; [.16B0.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL H
-1D5C1 ; [.16B0.0020.0005] # MATHEMATICAL SANS-SERIF SMALL H
-1D5F5 ; [.16B0.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL H
-1D629 ; [.16B0.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL H
-1D65D ; [.16B0.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
-1D691 ; [.16B0.0020.0005] # MATHEMATICAL MONOSPACE SMALL H
-24D7 ; [.16B0.0020.0006] # CIRCLED LATIN SMALL LETTER H
-0048 ; [.16B0.0020.0008] # LATIN CAPITAL LETTER H
-FF28 ; [.16B0.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER H
-1F117 ; [*02FA.0020.0004][.16B0.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER H
-210B ; [.16B0.0020.000B] # SCRIPT CAPITAL H
-210C ; [.16B0.0020.000B] # BLACK-LETTER CAPITAL H
-210D ; [.16B0.0020.000B] # DOUBLE-STRUCK CAPITAL H
-1D407 ; [.16B0.0020.000B] # MATHEMATICAL BOLD CAPITAL H
-1D43B ; [.16B0.0020.000B] # MATHEMATICAL ITALIC CAPITAL H
-1D46F ; [.16B0.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL H
-1D4D7 ; [.16B0.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL H
-1D573 ; [.16B0.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL H
-1D5A7 ; [.16B0.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL H
-1D5DB ; [.16B0.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL H
-1D60F ; [.16B0.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
-1D643 ; [.16B0.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
-1D677 ; [.16B0.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL H
-24BD ; [.16B0.0020.000C] # CIRCLED LATIN CAPITAL LETTER H
-1F157 ; [.16B0.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER H
-02B0 ; [.16B0.0020.0014] # MODIFIER LETTER SMALL H
-2095 ; [.16B0.0020.0015] # LATIN SUBSCRIPT SMALL LETTER H
-1D34 ; [.16B0.0020.001D] # MODIFIER LETTER CAPITAL H
-1F137 ; [.16B0.0020.001D] # SQUARED LATIN CAPITAL LETTER H
-1F177 ; [.16B0.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER H
-0125 ; [.16B0.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
-0124 ; [.16B0.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-021F ; [.16B0.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER H WITH CARON
-021E ; [.16B0.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER H WITH CARON
-1E27 ; [.16B0.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER H WITH DIAERESIS
-1E26 ; [.16B0.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER H WITH DIAERESIS
-1E23 ; [.16B0.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER H WITH DOT ABOVE
-1E22 ; [.16B0.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER H WITH DOT ABOVE
-1E29 ; [.16B0.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER H WITH CEDILLA
-1E28 ; [.16B0.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER H WITH CEDILLA
-0127 ; [.16B0.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER H WITH STROKE
-210F ; [.16B0.0020.0002][.0000.0039.0002] # PLANCK CONSTANT OVER TWO PI
-0126 ; [.16B0.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER H WITH STROKE
-A7F8 ; [.16B0.0020.0014][.0000.0039.0014] # MODIFIER LETTER CAPITAL H WITH STROKE
-1E25 ; [.16B0.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER H WITH DOT BELOW
-1E24 ; [.16B0.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER H WITH DOT BELOW
-1E2B ; [.16B0.0020.0002][.0000.0047.0002] # LATIN SMALL LETTER H WITH BREVE BELOW
-1E2A ; [.16B0.0020.0008][.0000.0047.0002] # LATIN CAPITAL LETTER H WITH BREVE BELOW
-1E96 ; [.16B0.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER H WITH LINE BELOW
-33CA ; [.16B0.0020.001C][.15EB.0020.001C] # SQUARE HA
-32CC ; [.16B0.0020.001D][.168D.0020.001C] # SQUARE HG
-33CB ; [.16B0.0020.001D][.1792.0020.001D] # SQUARE HP
-3371 ; [.16B0.0020.001C][.1792.0020.001D][.15EB.0020.001C] # SQUARE HPA
-1F14A ; [.16B0.0020.001D][.185B.0020.001D] # SQUARED HV
-3390 ; [.16B0.0020.001D][.1891.0020.001C] # SQUARE HZ
-029C ; [.16B4.0020.0002] # LATIN LETTER SMALL CAPITAL H
-0195 ; [.16B8.0020.0002] # LATIN SMALL LETTER HV
-01F6 ; [.16B8.0020.0008] # LATIN CAPITAL LETTER HWAIR
-0266 ; [.16BC.0020.0002] # LATIN SMALL LETTER H WITH HOOK
-A7AA ; [.16BC.0020.0008] # LATIN CAPITAL LETTER H WITH HOOK
-02B1 ; [.16BC.0020.0014] # MODIFIER LETTER SMALL H WITH HOOK
-2C68 ; [.16C0.0020.0002] # LATIN SMALL LETTER H WITH DESCENDER
-2C67 ; [.16C0.0020.0008] # LATIN CAPITAL LETTER H WITH DESCENDER
-2C76 ; [.16C1.0020.0002] # LATIN SMALL LETTER HALF H
-2C75 ; [.16C1.0020.0008] # LATIN CAPITAL LETTER HALF H
-A727 ; [.16C2.0020.0002] # LATIN SMALL LETTER HENG
-A726 ; [.16C2.0020.0008] # LATIN CAPITAL LETTER HENG
-0267 ; [.16C3.0020.0002] # LATIN SMALL LETTER HENG WITH HOOK
-02BB ; [.16C7.0020.0002] # MODIFIER LETTER TURNED COMMA
-02BD ; [.16C8.0020.0002] # MODIFIER LETTER REVERSED COMMA
-0069 ; [.16C9.0020.0002] # LATIN SMALL LETTER I
-FF49 ; [.16C9.0020.0003] # FULLWIDTH LATIN SMALL LETTER I
-0365 ; [.16C9.0020.0004] # COMBINING LATIN SMALL LETTER I
-2170 ; [.16C9.0020.0004] # SMALL ROMAN NUMERAL ONE
-24A4 ; [*02FA.0020.0004][.16C9.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER I
-2139 ; [.16C9.0020.0005] # INFORMATION SOURCE
-2148 ; [.16C9.0020.0005] # DOUBLE-STRUCK ITALIC SMALL I
-1D422 ; [.16C9.0020.0005] # MATHEMATICAL BOLD SMALL I
-1D456 ; [.16C9.0020.0005] # MATHEMATICAL ITALIC SMALL I
-1D48A ; [.16C9.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL I
-1D4BE ; [.16C9.0020.0005] # MATHEMATICAL SCRIPT SMALL I
-1D4F2 ; [.16C9.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL I
-1D526 ; [.16C9.0020.0005] # MATHEMATICAL FRAKTUR SMALL I
-1D55A ; [.16C9.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL I
-1D58E ; [.16C9.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL I
-1D5C2 ; [.16C9.0020.0005] # MATHEMATICAL SANS-SERIF SMALL I
-1D5F6 ; [.16C9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL I
-1D62A ; [.16C9.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL I
-1D65E ; [.16C9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
-1D692 ; [.16C9.0020.0005] # MATHEMATICAL MONOSPACE SMALL I
-24D8 ; [.16C9.0020.0006] # CIRCLED LATIN SMALL LETTER I
-0049 ; [.16C9.0020.0008] # LATIN CAPITAL LETTER I
-FF29 ; [.16C9.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER I
-2160 ; [.16C9.0020.000A] # ROMAN NUMERAL ONE
-1F118 ; [*02FA.0020.0004][.16C9.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER I
-2110 ; [.16C9.0020.000B] # SCRIPT CAPITAL I
-2111 ; [.16C9.0020.000B] # BLACK-LETTER CAPITAL I
-1D408 ; [.16C9.0020.000B] # MATHEMATICAL BOLD CAPITAL I
-1D43C ; [.16C9.0020.000B] # MATHEMATICAL ITALIC CAPITAL I
-1D470 ; [.16C9.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL I
-1D4D8 ; [.16C9.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL I
-1D540 ; [.16C9.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL I
-1D574 ; [.16C9.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL I
-1D5A8 ; [.16C9.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL I
-1D5DC ; [.16C9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL I
-1D610 ; [.16C9.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
-1D644 ; [.16C9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
-1D678 ; [.16C9.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL I
-24BE ; [.16C9.0020.000C] # CIRCLED LATIN CAPITAL LETTER I
-1F158 ; [.16C9.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER I
-2071 ; [.16C9.0020.0014] # SUPERSCRIPT LATIN SMALL LETTER I
-1D62 ; [.16C9.0020.0015] # LATIN SUBSCRIPT SMALL LETTER I
-1D35 ; [.16C9.0020.001D] # MODIFIER LETTER CAPITAL I
-1F138 ; [.16C9.0020.001D] # SQUARED LATIN CAPITAL LETTER I
-1F178 ; [.16C9.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER I
-00ED ; [.16C9.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.16C9.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
-00EC ; [.16C9.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.16C9.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
-012D ; [.16C9.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER I WITH BREVE
-012C ; [.16C9.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
-00EE ; [.16C9.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
-00CE ; [.16C9.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-01D0 ; [.16C9.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.16C9.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER I WITH CARON
-00EF ; [.16C9.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER I WITH DIAERESIS
-00CF ; [.16C9.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
-1E2F ; [.16C9.0020.0002][.0000.002B.0002][.0000.0024.0002] # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
-1E2E ; [.16C9.0020.0008][.0000.002B.0002][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
-0129 ; [.16C9.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER I WITH TILDE
-0128 ; [.16C9.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER I WITH TILDE
-0130 ; [.16C9.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-012F ; [.16C9.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER I WITH OGONEK
-012E ; [.16C9.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
-012B ; [.16C9.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.16C9.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
-1EC9 ; [.16C9.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER I WITH HOOK ABOVE
-1EC8 ; [.16C9.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER I WITH HOOK ABOVE
-0209 ; [.16C9.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER I WITH DOUBLE GRAVE
-0208 ; [.16C9.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
-020B ; [.16C9.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER I WITH INVERTED BREVE
-020A ; [.16C9.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER I WITH INVERTED BREVE
-1ECB ; [.16C9.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER I WITH DOT BELOW
-1ECA ; [.16C9.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER I WITH DOT BELOW
-1E2D ; [.16C9.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER I WITH TILDE BELOW
-1E2C ; [.16C9.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER I WITH TILDE BELOW
-1F18B ; [.16C9.0020.001D][.1619.0020.001D] # NEGATIVE SQUARED IC
-1F194 ; [.16C9.0020.001D][.162D.0020.001D] # SQUARED ID
-2171 ; [.16C9.0020.0004][.16C9.0020.0004] # SMALL ROMAN NUMERAL TWO
-2161 ; [.16C9.0020.000A][.16C9.0020.000A] # ROMAN NUMERAL TWO
-2172 ; [.16C9.0020.0004][.16C9.0020.0004][.16C9.0020.0004] # SMALL ROMAN NUMERAL THREE
-2162 ; [.16C9.0020.000A][.16C9.0020.000A][.16C9.0020.000A] # ROMAN NUMERAL THREE
-0133 ; [.16C9.0020.0004][.16E2.0020.0004] # LATIN SMALL LIGATURE IJ
-0132 ; [.16C9.0020.000A][.16E2.0020.000A] # LATIN CAPITAL LIGATURE IJ
-33CC ; [.16C9.0020.001C][.174B.0020.001C] # SQUARE IN
-337A ; [.16C9.0020.001D][.1832.0020.001D] # SQUARE IU
-2173 ; [.16C9.0020.0004][.185B.0020.0004] # SMALL ROMAN NUMERAL FOUR
-2163 ; [.16C9.0020.000A][.185B.0020.000A] # ROMAN NUMERAL FOUR
-2178 ; [.16C9.0020.0004][.1877.0020.0004] # SMALL ROMAN NUMERAL NINE
-2168 ; [.16C9.0020.000A][.1877.0020.000A] # ROMAN NUMERAL NINE
-0131 ; [.16CD.0020.0002] # LATIN SMALL LETTER DOTLESS I
-1D6A4 ; [.16CD.0020.0005] # MATHEMATICAL ITALIC SMALL DOTLESS I
-026A ; [.16D1.0020.0002] # LATIN LETTER SMALL CAPITAL I
-1DA6 ; [.16D1.0020.0014] # MODIFIER LETTER SMALL CAPITAL I
-A7FE ; [.16D5.0020.0002] # LATIN EPIGRAPHIC LETTER I LONGA
-1D09 ; [.16D6.0020.0002] # LATIN SMALL LETTER TURNED I
-1D4E ; [.16D6.0020.0014] # MODIFIER LETTER SMALL TURNED I
-0268 ; [.16D7.0020.0002] # LATIN SMALL LETTER I WITH STROKE
-0197 ; [.16D7.0020.0008] # LATIN CAPITAL LETTER I WITH STROKE
-1DA4 ; [.16D7.0020.0014] # MODIFIER LETTER SMALL I WITH STROKE
-1D7B ; [.16DB.0020.0002] # LATIN SMALL CAPITAL LETTER I WITH STROKE
-1DA7 ; [.16DB.0020.0014] # MODIFIER LETTER SMALL CAPITAL I WITH STROKE
-1D96 ; [.16DC.0020.0002] # LATIN SMALL LETTER I WITH RETROFLEX HOOK
-0269 ; [.16DD.0020.0002] # LATIN SMALL LETTER IOTA
-0196 ; [.16DD.0020.0008] # LATIN CAPITAL LETTER IOTA
-1DA5 ; [.16DD.0020.0014] # MODIFIER LETTER SMALL IOTA
-1D7C ; [.16E1.0020.0002] # LATIN SMALL LETTER IOTA WITH STROKE
-006A ; [.16E2.0020.0002] # LATIN SMALL LETTER J
-FF4A ; [.16E2.0020.0003] # FULLWIDTH LATIN SMALL LETTER J
-24A5 ; [*02FA.0020.0004][.16E2.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER J
-2149 ; [.16E2.0020.0005] # DOUBLE-STRUCK ITALIC SMALL J
-1D423 ; [.16E2.0020.0005] # MATHEMATICAL BOLD SMALL J
-1D457 ; [.16E2.0020.0005] # MATHEMATICAL ITALIC SMALL J
-1D48B ; [.16E2.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL J
-1D4BF ; [.16E2.0020.0005] # MATHEMATICAL SCRIPT SMALL J
-1D4F3 ; [.16E2.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL J
-1D527 ; [.16E2.0020.0005] # MATHEMATICAL FRAKTUR SMALL J
-1D55B ; [.16E2.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL J
-1D58F ; [.16E2.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL J
-1D5C3 ; [.16E2.0020.0005] # MATHEMATICAL SANS-SERIF SMALL J
-1D5F7 ; [.16E2.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL J
-1D62B ; [.16E2.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL J
-1D65F ; [.16E2.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
-1D693 ; [.16E2.0020.0005] # MATHEMATICAL MONOSPACE SMALL J
-24D9 ; [.16E2.0020.0006] # CIRCLED LATIN SMALL LETTER J
-004A ; [.16E2.0020.0008] # LATIN CAPITAL LETTER J
-FF2A ; [.16E2.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER J
-1F119 ; [*02FA.0020.0004][.16E2.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER J
-1D409 ; [.16E2.0020.000B] # MATHEMATICAL BOLD CAPITAL J
-1D43D ; [.16E2.0020.000B] # MATHEMATICAL ITALIC CAPITAL J
-1D471 ; [.16E2.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL J
-1D4A5 ; [.16E2.0020.000B] # MATHEMATICAL SCRIPT CAPITAL J
-1D4D9 ; [.16E2.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL J
-1D50D ; [.16E2.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL J
-1D541 ; [.16E2.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL J
-1D575 ; [.16E2.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL J
-1D5A9 ; [.16E2.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL J
-1D5DD ; [.16E2.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL J
-1D611 ; [.16E2.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
-1D645 ; [.16E2.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
-1D679 ; [.16E2.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL J
-24BF ; [.16E2.0020.000C] # CIRCLED LATIN CAPITAL LETTER J
-1F159 ; [.16E2.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER J
-02B2 ; [.16E2.0020.0014] # MODIFIER LETTER SMALL J
-2C7C ; [.16E2.0020.0015] # LATIN SUBSCRIPT SMALL LETTER J
-1D36 ; [.16E2.0020.001D] # MODIFIER LETTER CAPITAL J
-1F139 ; [.16E2.0020.001D] # SQUARED LATIN CAPITAL LETTER J
-1F179 ; [.16E2.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER J
-0135 ; [.16E2.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
-0134 ; [.16E2.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-01F0 ; [.16E2.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER J WITH CARON
-0237 ; [.16E6.0020.0002] # LATIN SMALL LETTER DOTLESS J
-1D6A5 ; [.16E6.0020.0005] # MATHEMATICAL ITALIC SMALL DOTLESS J
-1D0A ; [.16EA.0020.0002] # LATIN LETTER SMALL CAPITAL J
-0249 ; [.16EB.0020.0002] # LATIN SMALL LETTER J WITH STROKE
-0248 ; [.16EB.0020.0008] # LATIN CAPITAL LETTER J WITH STROKE
-029D ; [.16EF.0020.0002] # LATIN SMALL LETTER J WITH CROSSED-TAIL
-1DA8 ; [.16EF.0020.0014] # MODIFIER LETTER SMALL J WITH CROSSED-TAIL
-025F ; [.16F3.0020.0002] # LATIN SMALL LETTER DOTLESS J WITH STROKE
-1DA1 ; [.16F3.0020.0014] # MODIFIER LETTER SMALL DOTLESS J WITH STROKE
-0284 ; [.16F7.0020.0002] # LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
-006B ; [.16FB.0020.0002] # LATIN SMALL LETTER K
-FF4B ; [.16FB.0020.0003] # FULLWIDTH LATIN SMALL LETTER K
-1DDC ; [.16FB.0020.0004] # COMBINING LATIN SMALL LETTER K
-24A6 ; [*02FA.0020.0004][.16FB.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER K
-1D424 ; [.16FB.0020.0005] # MATHEMATICAL BOLD SMALL K
-1D458 ; [.16FB.0020.0005] # MATHEMATICAL ITALIC SMALL K
-1D48C ; [.16FB.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL K
-1D4C0 ; [.16FB.0020.0005] # MATHEMATICAL SCRIPT SMALL K
-1D4F4 ; [.16FB.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL K
-1D528 ; [.16FB.0020.0005] # MATHEMATICAL FRAKTUR SMALL K
-1D55C ; [.16FB.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL K
-1D590 ; [.16FB.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL K
-1D5C4 ; [.16FB.0020.0005] # MATHEMATICAL SANS-SERIF SMALL K
-1D5F8 ; [.16FB.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL K
-1D62C ; [.16FB.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL K
-1D660 ; [.16FB.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
-1D694 ; [.16FB.0020.0005] # MATHEMATICAL MONOSPACE SMALL K
-24DA ; [.16FB.0020.0006] # CIRCLED LATIN SMALL LETTER K
-004B ; [.16FB.0020.0008] # LATIN CAPITAL LETTER K
-212A ; [.16FB.0020.0008] # KELVIN SIGN
-FF2B ; [.16FB.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER K
-1F11A ; [*02FA.0020.0004][.16FB.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER K
-1D40A ; [.16FB.0020.000B] # MATHEMATICAL BOLD CAPITAL K
-1D43E ; [.16FB.0020.000B] # MATHEMATICAL ITALIC CAPITAL K
-1D472 ; [.16FB.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL K
-1D4A6 ; [.16FB.0020.000B] # MATHEMATICAL SCRIPT CAPITAL K
-1D4DA ; [.16FB.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL K
-1D50E ; [.16FB.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL K
-1D542 ; [.16FB.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL K
-1D576 ; [.16FB.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL K
-1D5AA ; [.16FB.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL K
-1D5DE ; [.16FB.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL K
-1D612 ; [.16FB.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
-1D646 ; [.16FB.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
-1D67A ; [.16FB.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL K
-24C0 ; [.16FB.0020.000C] # CIRCLED LATIN CAPITAL LETTER K
-1F15A ; [.16FB.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER K
-1D4F ; [.16FB.0020.0014] # MODIFIER LETTER SMALL K
-2096 ; [.16FB.0020.0015] # LATIN SUBSCRIPT SMALL LETTER K
-1D37 ; [.16FB.0020.001D] # MODIFIER LETTER CAPITAL K
-1F13A ; [.16FB.0020.001D] # SQUARED LATIN CAPITAL LETTER K
-1F17A ; [.16FB.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER K
-1E31 ; [.16FB.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER K WITH ACUTE
-1E30 ; [.16FB.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER K WITH ACUTE
-01E9 ; [.16FB.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER K WITH CARON
-01E8 ; [.16FB.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER K WITH CARON
-0137 ; [.16FB.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER K WITH CEDILLA
-0136 ; [.16FB.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER K WITH CEDILLA
-A7A3 ; [.16FB.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER K WITH OBLIQUE STROKE
-A7A2 ; [.16FB.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
-1E33 ; [.16FB.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER K WITH DOT BELOW
-1E32 ; [.16FB.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER K WITH DOT BELOW
-1E35 ; [.16FB.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER K WITH LINE BELOW
-1E34 ; [.16FB.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER K WITH LINE BELOW
-3384 ; [.16FB.0020.001C][.15EB.0020.001D] # SQUARE KA
-3385 ; [.16FB.0020.001D][.1601.0020.001D] # SQUARE KB
-3389 ; [.16FB.0020.001C][.1619.0020.001C][.15EB.0020.001C][.170D.0020.001C] # SQUARE KCAL
-338F ; [.16FB.0020.001C][.168D.0020.001C] # SQUARE KG
-3391 ; [.16FB.0020.001C][.16B0.0020.001D][.1891.0020.001C] # SQUARE KHZ
-33CD ; [.16FB.0020.001D][.16FB.0020.001D] # SQUARE KK
-3398 ; [.16FB.0020.001C][.170D.0020.001C] # SQUARE KL
-339E ; [.16FB.0020.001C][.173D.0020.001C] # SQUARE KM
-33CE ; [.16FB.0020.001D][.173D.0020.001D] # SQUARE KM CAPITAL
-33A2 ; [.16FB.0020.001C][.173D.0020.001C][.15E3.0020.001C] # SQUARE KM SQUARED
-33A6 ; [.16FB.0020.001C][.173D.0020.001C][.15E4.0020.001C] # SQUARE KM CUBED
-33AA ; [.16FB.0020.001C][.1792.0020.001D][.15EB.0020.001C] # SQUARE KPA
-33CF ; [.16FB.0020.001C][.1812.0020.001C] # SQUARE KT
-33B8 ; [.16FB.0020.001C][.185B.0020.001D] # SQUARE KV
-33BE ; [.16FB.0020.001C][.186D.0020.001D] # SQUARE KW
-33C0 ; [.16FB.0020.001C][.194D.0020.001D] # SQUARE K OHM
-1D0B ; [.16FF.0020.0002] # LATIN LETTER SMALL CAPITAL K
-1D84 ; [.1700.0020.0002] # LATIN SMALL LETTER K WITH PALATAL HOOK
-0199 ; [.1701.0020.0002] # LATIN SMALL LETTER K WITH HOOK
-0198 ; [.1701.0020.0008] # LATIN CAPITAL LETTER K WITH HOOK
-2C6A ; [.1705.0020.0002] # LATIN SMALL LETTER K WITH DESCENDER
-2C69 ; [.1705.0020.0008] # LATIN CAPITAL LETTER K WITH DESCENDER
-A741 ; [.1706.0020.0002] # LATIN SMALL LETTER K WITH STROKE
-A740 ; [.1706.0020.0008] # LATIN CAPITAL LETTER K WITH STROKE
-A743 ; [.1707.0020.0002] # LATIN SMALL LETTER K WITH DIAGONAL STROKE
-A742 ; [.1707.0020.0008] # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
-A745 ; [.1708.0020.0002] # LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
-A744 ; [.1708.0020.0008] # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
-029E ; [.1709.0020.0002] # LATIN SMALL LETTER TURNED K
-006C ; [.170D.0020.0002] # LATIN SMALL LETTER L
-FF4C ; [.170D.0020.0003] # FULLWIDTH LATIN SMALL LETTER L
-1DDD ; [.170D.0020.0004] # COMBINING LATIN SMALL LETTER L
-217C ; [.170D.0020.0004] # SMALL ROMAN NUMERAL FIFTY
-24A7 ; [*02FA.0020.0004][.170D.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER L
-2113 ; [.170D.0020.0005] # SCRIPT SMALL L
-1D425 ; [.170D.0020.0005] # MATHEMATICAL BOLD SMALL L
-1D459 ; [.170D.0020.0005] # MATHEMATICAL ITALIC SMALL L
-1D48D ; [.170D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL L
-1D4C1 ; [.170D.0020.0005] # MATHEMATICAL SCRIPT SMALL L
-1D4F5 ; [.170D.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL L
-1D529 ; [.170D.0020.0005] # MATHEMATICAL FRAKTUR SMALL L
-1D55D ; [.170D.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL L
-1D591 ; [.170D.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL L
-1D5C5 ; [.170D.0020.0005] # MATHEMATICAL SANS-SERIF SMALL L
-1D5F9 ; [.170D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL L
-1D62D ; [.170D.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL L
-1D661 ; [.170D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
-1D695 ; [.170D.0020.0005] # MATHEMATICAL MONOSPACE SMALL L
-24DB ; [.170D.0020.0006] # CIRCLED LATIN SMALL LETTER L
-004C ; [.170D.0020.0008] # LATIN CAPITAL LETTER L
-FF2C ; [.170D.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER L
-216C ; [.170D.0020.000A] # ROMAN NUMERAL FIFTY
-1F11B ; [*02FA.0020.0004][.170D.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER L
-2112 ; [.170D.0020.000B] # SCRIPT CAPITAL L
-1D40B ; [.170D.0020.000B] # MATHEMATICAL BOLD CAPITAL L
-1D43F ; [.170D.0020.000B] # MATHEMATICAL ITALIC CAPITAL L
-1D473 ; [.170D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL L
-1D4DB ; [.170D.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL L
-1D50F ; [.170D.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL L
-1D543 ; [.170D.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL L
-1D577 ; [.170D.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL L
-1D5AB ; [.170D.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL L
-1D5DF ; [.170D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL L
-1D613 ; [.170D.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
-1D647 ; [.170D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
-1D67B ; [.170D.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL L
-24C1 ; [.170D.0020.000C] # CIRCLED LATIN CAPITAL LETTER L
-1F15B ; [.170D.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER L
-02E1 ; [.170D.0020.0014] # MODIFIER LETTER SMALL L
-2097 ; [.170D.0020.0015] # LATIN SUBSCRIPT SMALL LETTER L
-1D38 ; [.170D.0020.001D] # MODIFIER LETTER CAPITAL L
-1F13B ; [.170D.0020.001D] # SQUARED LATIN CAPITAL LETTER L
-1F17B ; [.170D.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER L
-013A ; [.170D.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER L WITH ACUTE
-0139 ; [.170D.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER L WITH ACUTE
-013E ; [.170D.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER L WITH CARON
-013D ; [.170D.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER L WITH CARON
-013C ; [.170D.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER L WITH CEDILLA
-013B ; [.170D.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER L WITH CEDILLA
-0142 ; [.170D.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER L WITH STROKE
-0141 ; [.170D.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER L WITH STROKE
-1E37 ; [.170D.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER L WITH DOT BELOW
-1E36 ; [.170D.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER L WITH DOT BELOW
-1E39 ; [.170D.0020.0002][.0000.0042.0002][.0000.0032.0002] # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
-1E38 ; [.170D.0020.0008][.0000.0042.0002][.0000.0032.0002] # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
-1E3D ; [.170D.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
-1E3C ; [.170D.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
-1E3B ; [.170D.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER L WITH LINE BELOW
-1E3A ; [.170D.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER L WITH LINE BELOW
-0140 ; [.170D.0020.0002][.0000.00FC.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
-006C 00B7 ; [.170D.0020.0002][.0000.00FC.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
-006C 0387 ; [.170D.0020.0002][.0000.00FC.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
-013F ; [.170D.0020.0008][.0000.00FC.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
-004C 00B7 ; [.170D.0020.0008][.0000.00FC.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
-004C 0387 ; [.170D.0020.0008][.0000.00FC.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
-01C9 ; [.170D.0020.0004][.16E2.0020.0004] # LATIN SMALL LETTER LJ
-01C8 ; [.170D.0020.000A][.16E2.0020.0004] # LATIN CAPITAL LETTER L WITH SMALL LETTER J
-01C7 ; [.170D.0020.000A][.16E2.0020.000A] # LATIN CAPITAL LETTER LJ
-1EFB ; [.170D.0020.0004][.170D.0020.0004] # LATIN SMALL LETTER MIDDLE-WELSH LL
-1EFA ; [.170D.0020.000A][.170D.0020.000A] # LATIN CAPITAL LETTER MIDDLE-WELSH LL
-33D0 ; [.170D.0020.001C][.173D.0020.001C] # SQUARE LM
-33D1 ; [.170D.0020.001C][.174B.0020.001C] # SQUARE LN
-33D2 ; [.170D.0020.001C][.176D.0020.001C][.168D.0020.001C] # SQUARE LOG
-02AA ; [.170D.0020.0004][.17EF.0020.0004] # LATIN SMALL LETTER LS DIGRAPH
-32CF ; [.170D.0020.001D][.1812.0020.001D][.162D.0020.001D] # LIMITED LIABILITY SIGN
-33D3 ; [.170D.0020.001C][.1877.0020.001C] # SQUARE LX
-02AB ; [.170D.0020.0004][.1891.0020.0004] # LATIN SMALL LETTER LZ DIGRAPH
-029F ; [.1711.0020.0002] # LATIN LETTER SMALL CAPITAL L
-1DDE ; [.1711.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL L
-1DAB ; [.1711.0020.0014] # MODIFIER LETTER SMALL CAPITAL L
-A747 ; [.1715.0020.0002] # LATIN SMALL LETTER BROKEN L
-A746 ; [.1715.0020.0008] # LATIN CAPITAL LETTER BROKEN L
-1D0C ; [.1716.0020.0002] # LATIN LETTER SMALL CAPITAL L WITH STROKE
-A749 ; [.1717.0020.0002] # LATIN SMALL LETTER L WITH HIGH STROKE
-A748 ; [.1717.0020.0008] # LATIN CAPITAL LETTER L WITH HIGH STROKE
-019A ; [.1718.0020.0002] # LATIN SMALL LETTER L WITH BAR
-023D ; [.1718.0020.0008] # LATIN CAPITAL LETTER L WITH BAR
-2C61 ; [.171C.0020.0002] # LATIN SMALL LETTER L WITH DOUBLE BAR
-2C60 ; [.171C.0020.0008] # LATIN CAPITAL LETTER L WITH DOUBLE BAR
-026B ; [.171D.0020.0002] # LATIN SMALL LETTER L WITH MIDDLE TILDE
-2C62 ; [.171D.0020.0008] # LATIN CAPITAL LETTER L WITH MIDDLE TILDE
-026C ; [.1721.0020.0002] # LATIN SMALL LETTER L WITH BELT
-1D85 ; [.1725.0020.0002] # LATIN SMALL LETTER L WITH PALATAL HOOK
-1DAA ; [.1725.0020.0014] # MODIFIER LETTER SMALL L WITH PALATAL HOOK
-026D ; [.1726.0020.0002] # LATIN SMALL LETTER L WITH RETROFLEX HOOK
-1DA9 ; [.1726.0020.0014] # MODIFIER LETTER SMALL L WITH RETROFLEX HOOK
-A78E ; [.172A.0020.0002] # LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-0234 ; [.172B.0020.0002] # LATIN SMALL LETTER L WITH CURL
-A772 ; [.172F.0020.0002] # LATIN SMALL LETTER LUM
-026E ; [.1730.0020.0002] # LATIN SMALL LETTER LEZH
-A781 ; [.1734.0020.0002] # LATIN SMALL LETTER TURNED L
-A780 ; [.1734.0020.0008] # LATIN CAPITAL LETTER TURNED L
-019B ; [.1735.0020.0002] # LATIN SMALL LETTER LAMBDA WITH STROKE
-028E ; [.1739.0020.0002] # LATIN SMALL LETTER TURNED Y
-006D ; [.173D.0020.0002] # LATIN SMALL LETTER M
-FF4D ; [.173D.0020.0003] # FULLWIDTH LATIN SMALL LETTER M
-036B ; [.173D.0020.0004] # COMBINING LATIN SMALL LETTER M
-217F ; [.173D.0020.0004] # SMALL ROMAN NUMERAL ONE THOUSAND
-24A8 ; [*02FA.0020.0004][.173D.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER M
-1D426 ; [.173D.0020.0005] # MATHEMATICAL BOLD SMALL M
-1D45A ; [.173D.0020.0005] # MATHEMATICAL ITALIC SMALL M
-1D48E ; [.173D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL M
-1D4C2 ; [.173D.0020.0005] # MATHEMATICAL SCRIPT SMALL M
-1D4F6 ; [.173D.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL M
-1D52A ; [.173D.0020.0005] # MATHEMATICAL FRAKTUR SMALL M
-1D55E ; [.173D.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL M
-1D592 ; [.173D.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL M
-1D5C6 ; [.173D.0020.0005] # MATHEMATICAL SANS-SERIF SMALL M
-1D5FA ; [.173D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL M
-1D62E ; [.173D.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL M
-1D662 ; [.173D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
-1D696 ; [.173D.0020.0005] # MATHEMATICAL MONOSPACE SMALL M
-24DC ; [.173D.0020.0006] # CIRCLED LATIN SMALL LETTER M
-004D ; [.173D.0020.0008] # LATIN CAPITAL LETTER M
-FF2D ; [.173D.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER M
-216F ; [.173D.0020.000A] # ROMAN NUMERAL ONE THOUSAND
-1F11C ; [*02FA.0020.0004][.173D.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER M
-2133 ; [.173D.0020.000B] # SCRIPT CAPITAL M
-1D40C ; [.173D.0020.000B] # MATHEMATICAL BOLD CAPITAL M
-1D440 ; [.173D.0020.000B] # MATHEMATICAL ITALIC CAPITAL M
-1D474 ; [.173D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL M
-1D4DC ; [.173D.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL M
-1D510 ; [.173D.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL M
-1D544 ; [.173D.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL M
-1D578 ; [.173D.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL M
-1D5AC ; [.173D.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL M
-1D5E0 ; [.173D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL M
-1D614 ; [.173D.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
-1D648 ; [.173D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
-1D67C ; [.173D.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL M
-24C2 ; [.173D.0020.000C] # CIRCLED LATIN CAPITAL LETTER M
-1F15C ; [.173D.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER M
-1D50 ; [.173D.0020.0014] # MODIFIER LETTER SMALL M
-2098 ; [.173D.0020.0015] # LATIN SUBSCRIPT SMALL LETTER M
-1D39 ; [.173D.0020.001D] # MODIFIER LETTER CAPITAL M
-1F13C ; [.173D.0020.001D] # SQUARED LATIN CAPITAL LETTER M
-1F17C ; [.173D.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER M
-1E3F ; [.173D.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.173D.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER M WITH ACUTE
-1E41 ; [.173D.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER M WITH DOT ABOVE
-1E40 ; [.173D.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER M WITH DOT ABOVE
-1E43 ; [.173D.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER M WITH DOT BELOW
-1E42 ; [.173D.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER M WITH DOT BELOW
-33A1 ; [.173D.0020.001C][.15E3.0020.001C] # SQUARE M SQUARED
-33A5 ; [.173D.0020.001C][.15E4.0020.001C] # SQUARE M CUBED
-3383 ; [.173D.0020.001C][.15EB.0020.001D] # SQUARE MA
-33D4 ; [.173D.0020.001C][.1601.0020.001C] # SQUARE MB SMALL
-3386 ; [.173D.0020.001D][.1601.0020.001D] # SQUARE MB
-1F16A ; [.173D.0020.0014][.1619.0020.0014] # RAISED MC SIGN
-1F16B ; [.173D.0020.0014][.162D.0020.0014] # RAISED MD SIGN
-338E ; [.173D.0020.001C][.168D.0020.001C] # SQUARE MG
-3392 ; [.173D.0020.001D][.16B0.0020.001D][.1891.0020.001C] # SQUARE MHZ
-33D5 ; [.173D.0020.001C][.16C9.0020.001C][.170D.0020.001C] # SQUARE MIL
-3396 ; [.173D.0020.001C][.170D.0020.001C] # SQUARE ML
-339C ; [.173D.0020.001C][.173D.0020.001C] # SQUARE MM
-339F ; [.173D.0020.001C][.173D.0020.001C][.15E3.0020.001C] # SQUARE MM SQUARED
-33A3 ; [.173D.0020.001C][.173D.0020.001C][.15E4.0020.001C] # SQUARE MM CUBED
-33D6 ; [.173D.0020.001C][.176D.0020.001C][.170D.0020.001C] # SQUARE MOL
-33AB ; [.173D.0020.001D][.1792.0020.001D][.15EB.0020.001C] # SQUARE MPA
-33A7 ; [.173D.0020.001C][*05AE.0020.001C][.17EF.0020.001C] # SQUARE M OVER S
-33B3 ; [.173D.0020.001C][.17EF.0020.001C] # SQUARE MS
-33A8 ; [.173D.0020.001C][*05AE.0020.001C][.17EF.0020.001C][.15E3.0020.001C] # SQUARE M OVER S SQUARED
-33B7 ; [.173D.0020.001C][.185B.0020.001D] # SQUARE MV
-33B9 ; [.173D.0020.001D][.185B.0020.001D] # SQUARE MV MEGA
-1F14B ; [.173D.0020.001D][.185B.0020.001D] # SQUARED MV
-33BD ; [.173D.0020.001C][.186D.0020.001D] # SQUARE MW
-33BF ; [.173D.0020.001D][.186D.0020.001D] # SQUARE MW MEGA
-33C1 ; [.173D.0020.001D][.194D.0020.001D] # SQUARE M OHM
-1D0D ; [.1741.0020.0002] # LATIN LETTER SMALL CAPITAL M
-1DDF ; [.1741.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL M
-1D6F ; [.1742.0020.0002] # LATIN SMALL LETTER M WITH MIDDLE TILDE
-1D86 ; [.1743.0020.0002] # LATIN SMALL LETTER M WITH PALATAL HOOK
-0271 ; [.1744.0020.0002] # LATIN SMALL LETTER M WITH HOOK
-2C6E ; [.1744.0020.0008] # LATIN CAPITAL LETTER M WITH HOOK
-1DAC ; [.1744.0020.0014] # MODIFIER LETTER SMALL M WITH HOOK
-A7FD ; [.1748.0020.0002] # LATIN EPIGRAPHIC LETTER INVERTED M
-A7FF ; [.1749.0020.0002] # LATIN EPIGRAPHIC LETTER ARCHAIC M
-A773 ; [.174A.0020.0002] # LATIN SMALL LETTER MUM
-006E ; [.174B.0020.0002] # LATIN SMALL LETTER N
-FF4E ; [.174B.0020.0003] # FULLWIDTH LATIN SMALL LETTER N
-1DE0 ; [.174B.0020.0004] # COMBINING LATIN SMALL LETTER N
-24A9 ; [*02FA.0020.0004][.174B.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER N
-1D427 ; [.174B.0020.0005] # MATHEMATICAL BOLD SMALL N
-1D45B ; [.174B.0020.0005] # MATHEMATICAL ITALIC SMALL N
-1D48F ; [.174B.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL N
-1D4C3 ; [.174B.0020.0005] # MATHEMATICAL SCRIPT SMALL N
-1D4F7 ; [.174B.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL N
-1D52B ; [.174B.0020.0005] # MATHEMATICAL FRAKTUR SMALL N
-1D55F ; [.174B.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL N
-1D593 ; [.174B.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL N
-1D5C7 ; [.174B.0020.0005] # MATHEMATICAL SANS-SERIF SMALL N
-1D5FB ; [.174B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL N
-1D62F ; [.174B.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL N
-1D663 ; [.174B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
-1D697 ; [.174B.0020.0005] # MATHEMATICAL MONOSPACE SMALL N
-24DD ; [.174B.0020.0006] # CIRCLED LATIN SMALL LETTER N
-004E ; [.174B.0020.0008] # LATIN CAPITAL LETTER N
-FF2E ; [.174B.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER N
-1F11D ; [*02FA.0020.0004][.174B.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER N
-2115 ; [.174B.0020.000B] # DOUBLE-STRUCK CAPITAL N
-1D40D ; [.174B.0020.000B] # MATHEMATICAL BOLD CAPITAL N
-1D441 ; [.174B.0020.000B] # MATHEMATICAL ITALIC CAPITAL N
-1D475 ; [.174B.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL N
-1D4A9 ; [.174B.0020.000B] # MATHEMATICAL SCRIPT CAPITAL N
-1D4DD ; [.174B.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL N
-1D511 ; [.174B.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL N
-1D579 ; [.174B.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL N
-1D5AD ; [.174B.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL N
-1D5E1 ; [.174B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL N
-1D615 ; [.174B.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
-1D649 ; [.174B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
-1D67D ; [.174B.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL N
-24C3 ; [.174B.0020.000C] # CIRCLED LATIN CAPITAL LETTER N
-1F15D ; [.174B.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER N
-207F ; [.174B.0020.0014] # SUPERSCRIPT LATIN SMALL LETTER N
-2099 ; [.174B.0020.0015] # LATIN SUBSCRIPT SMALL LETTER N
-1D3A ; [.174B.0020.001D] # MODIFIER LETTER CAPITAL N
-1F13D ; [.174B.0020.001D] # SQUARED LATIN CAPITAL LETTER N
-1F17D ; [.174B.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER N
-0144 ; [.174B.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.174B.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER N WITH ACUTE
-01F9 ; [.174B.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.174B.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER N WITH GRAVE
-0148 ; [.174B.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.174B.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER N WITH CARON
-00F1 ; [.174B.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.174B.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER N WITH TILDE
-1E45 ; [.174B.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
-1E44 ; [.174B.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER N WITH DOT ABOVE
-0146 ; [.174B.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER N WITH CEDILLA
-0145 ; [.174B.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER N WITH CEDILLA
-A7A5 ; [.174B.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER N WITH OBLIQUE STROKE
-A7A4 ; [.174B.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
-1E47 ; [.174B.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER N WITH DOT BELOW
-1E46 ; [.174B.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER N WITH DOT BELOW
-1E4B ; [.174B.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
-1E4A ; [.174B.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
-1E49 ; [.174B.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER N WITH LINE BELOW
-1E48 ; [.174B.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER N WITH LINE BELOW
-3381 ; [.174B.0020.001C][.15EB.0020.001D] # SQUARE NA
-1F195 ; [.174B.0020.001D][.1648.0020.001D][.186D.0020.001D] # SQUARED NEW
-338B ; [.174B.0020.001C][.1680.0020.001D] # SQUARE NF
-1F196 ; [.174B.0020.001D][.168D.0020.001D] # SQUARED NG
-01CC ; [.174B.0020.0004][.16E2.0020.0004] # LATIN SMALL LETTER NJ
-01CB ; [.174B.0020.000A][.16E2.0020.0004] # LATIN CAPITAL LETTER N WITH SMALL LETTER J
-01CA ; [.174B.0020.000A][.16E2.0020.000A] # LATIN CAPITAL LETTER NJ
-339A ; [.174B.0020.001C][.173D.0020.001C] # SQUARE NM
-2116 ; [.174B.0020.000A][.176D.0020.0004] # NUMERO SIGN
-33B1 ; [.174B.0020.001C][.17EF.0020.001C] # SQUARE NS
-33B5 ; [.174B.0020.001C][.185B.0020.001D] # SQUARE NV
-33BB ; [.174B.0020.001C][.186D.0020.001D] # SQUARE NW
-0274 ; [.174F.0020.0002] # LATIN LETTER SMALL CAPITAL N
-1DE1 ; [.174F.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL N
-1DB0 ; [.174F.0020.0014] # MODIFIER LETTER SMALL CAPITAL N
-1D3B ; [.1753.0020.0002] # MODIFIER LETTER CAPITAL REVERSED N
-1D0E ; [.1754.0020.0002] # LATIN LETTER SMALL CAPITAL REVERSED N
-1D70 ; [.1755.0020.0002] # LATIN SMALL LETTER N WITH MIDDLE TILDE
-0272 ; [.1756.0020.0002] # LATIN SMALL LETTER N WITH LEFT HOOK
-019D ; [.1756.0020.0008] # LATIN CAPITAL LETTER N WITH LEFT HOOK
-1DAE ; [.1756.0020.0014] # MODIFIER LETTER SMALL N WITH LEFT HOOK
-019E ; [.175A.0020.0002] # LATIN SMALL LETTER N WITH LONG RIGHT LEG
-0220 ; [.175A.0020.0008] # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
-A791 ; [.175E.0020.0002] # LATIN SMALL LETTER N WITH DESCENDER
-A790 ; [.175E.0020.0008] # LATIN CAPITAL LETTER N WITH DESCENDER
-1D87 ; [.175F.0020.0002] # LATIN SMALL LETTER N WITH PALATAL HOOK
-0273 ; [.1760.0020.0002] # LATIN SMALL LETTER N WITH RETROFLEX HOOK
-1DAF ; [.1760.0020.0014] # MODIFIER LETTER SMALL N WITH RETROFLEX HOOK
-0235 ; [.1764.0020.0002] # LATIN SMALL LETTER N WITH CURL
-A774 ; [.1768.0020.0002] # LATIN SMALL LETTER NUM
-014B ; [.1769.0020.0002] # LATIN SMALL LETTER ENG
-014A ; [.1769.0020.0008] # LATIN CAPITAL LETTER ENG
-1D51 ; [.1769.0020.0014] # MODIFIER LETTER SMALL ENG
-006F ; [.176D.0020.0002] # LATIN SMALL LETTER O
-FF4F ; [.176D.0020.0003] # FULLWIDTH LATIN SMALL LETTER O
-0366 ; [.176D.0020.0004] # COMBINING LATIN SMALL LETTER O
-24AA ; [*02FA.0020.0004][.176D.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER O
-2134 ; [.176D.0020.0005] # SCRIPT SMALL O
-1D428 ; [.176D.0020.0005] # MATHEMATICAL BOLD SMALL O
-1D45C ; [.176D.0020.0005] # MATHEMATICAL ITALIC SMALL O
-1D490 ; [.176D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL O
-1D4F8 ; [.176D.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL O
-1D52C ; [.176D.0020.0005] # MATHEMATICAL FRAKTUR SMALL O
-1D560 ; [.176D.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL O
-1D594 ; [.176D.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL O
-1D5C8 ; [.176D.0020.0005] # MATHEMATICAL SANS-SERIF SMALL O
-1D5FC ; [.176D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL O
-1D630 ; [.176D.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL O
-1D664 ; [.176D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
-1D698 ; [.176D.0020.0005] # MATHEMATICAL MONOSPACE SMALL O
-24DE ; [.176D.0020.0006] # CIRCLED LATIN SMALL LETTER O
-004F ; [.176D.0020.0008] # LATIN CAPITAL LETTER O
-FF2F ; [.176D.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER O
-1F11E ; [*02FA.0020.0004][.176D.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER O
-1D40E ; [.176D.0020.000B] # MATHEMATICAL BOLD CAPITAL O
-1D442 ; [.176D.0020.000B] # MATHEMATICAL ITALIC CAPITAL O
-1D476 ; [.176D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL O
-1D4AA ; [.176D.0020.000B] # MATHEMATICAL SCRIPT CAPITAL O
-1D4DE ; [.176D.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL O
-1D512 ; [.176D.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL O
-1D546 ; [.176D.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL O
-1D57A ; [.176D.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL O
-1D5AE ; [.176D.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL O
-1D5E2 ; [.176D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL O
-1D616 ; [.176D.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
-1D64A ; [.176D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
-1D67E ; [.176D.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL O
-24C4 ; [.176D.0020.000C] # CIRCLED LATIN CAPITAL LETTER O
-1F15E ; [.176D.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER O
-00BA ; [.176D.0020.0014] # MASCULINE ORDINAL INDICATOR
-1D52 ; [.176D.0020.0014] # MODIFIER LETTER SMALL O
-2092 ; [.176D.0020.0015] # LATIN SUBSCRIPT SMALL LETTER O
-1D3C ; [.176D.0020.001D] # MODIFIER LETTER CAPITAL O
-1F13E ; [.176D.0020.001D] # SQUARED LATIN CAPITAL LETTER O
-1F17E ; [.176D.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER O
-00F3 ; [.176D.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.176D.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH ACUTE
-00F2 ; [.176D.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.176D.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH GRAVE
-014F ; [.176D.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER O WITH BREVE
-014E ; [.176D.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER O WITH BREVE
-00F4 ; [.176D.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.176D.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED1 ; [.176D.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.176D.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED3 ; [.176D.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.176D.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED7 ; [.176D.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.176D.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.176D.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.176D.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-01D2 ; [.176D.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.176D.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER O WITH CARON
-00F6 ; [.176D.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.176D.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.176D.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.176D.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.176D.0020.0002][.0000.002C.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.176D.0020.0008][.0000.002C.0002] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-00F5 ; [.176D.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH TILDE
-00D5 ; [.176D.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH TILDE
-1E4D ; [.176D.0020.0002][.0000.002D.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4C ; [.176D.0020.0008][.0000.002D.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-1E4F ; [.176D.0020.0002][.0000.002D.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E4E ; [.176D.0020.0008][.0000.002D.0002][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-022D ; [.176D.0020.0002][.0000.002D.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
-022C ; [.176D.0020.0008][.0000.002D.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-022F ; [.176D.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER O WITH DOT ABOVE
-022E ; [.176D.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER O WITH DOT ABOVE
-0231 ; [.176D.0020.0002][.0000.002E.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
-0230 ; [.176D.0020.0008][.0000.002E.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
-00F8 ; [.176D.0020.0002][.0000.002F.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.176D.0020.0008][.0000.002F.0002] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.176D.0020.0002][.0000.002F.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.176D.0020.0008][.0000.002F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-01EB ; [.176D.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER O WITH OGONEK
-01EA ; [.176D.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER O WITH OGONEK
-01ED ; [.176D.0020.0002][.0000.0031.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH OGONEK AND MACRON
-01EC ; [.176D.0020.0008][.0000.0031.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
-014D ; [.176D.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.176D.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH MACRON
-1E53 ; [.176D.0020.0002][.0000.0032.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH MACRON AND ACUTE
-1E52 ; [.176D.0020.0008][.0000.0032.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
-1E51 ; [.176D.0020.0002][.0000.0032.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH MACRON AND GRAVE
-1E50 ; [.176D.0020.0008][.0000.0032.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
-1ECF ; [.176D.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH HOOK ABOVE
-1ECE ; [.176D.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH HOOK ABOVE
-020D ; [.176D.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER O WITH DOUBLE GRAVE
-020C ; [.176D.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
-020F ; [.176D.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER O WITH INVERTED BREVE
-020E ; [.176D.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER O WITH INVERTED BREVE
-01A1 ; [.176D.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN
-01A0 ; [.176D.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN
-1EDB ; [.176D.0020.0002][.0000.003F.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH HORN AND ACUTE
-1EDA ; [.176D.0020.0008][.0000.003F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-1EDD ; [.176D.0020.0002][.0000.003F.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH HORN AND GRAVE
-1EDC ; [.176D.0020.0008][.0000.003F.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-1EE1 ; [.176D.0020.0002][.0000.003F.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE0 ; [.176D.0020.0008][.0000.003F.0002][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-1EDF ; [.176D.0020.0002][.0000.003F.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-1EDE ; [.176D.0020.0008][.0000.003F.0002][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-1EE3 ; [.176D.0020.0002][.0000.003F.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE2 ; [.176D.0020.0008][.0000.003F.0002][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-1ECD ; [.176D.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-1ECC ; [.176D.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH DOT BELOW
-1ED9 ; [.176D.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.176D.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-0153 ; [.176D.0020.0004][.0000.00FC.0004][.1648.0020.0004] # LATIN SMALL LIGATURE OE
-0152 ; [.176D.0020.000A][.0000.00FC.0004][.1648.0020.000A] # LATIN CAPITAL LIGATURE OE
-A7F9 ; [.176D.0020.0014][.0000.00FC.0014][.1648.0020.0014] # MODIFIER LETTER SMALL LIGATURE OE
-1F197 ; [.176D.0020.001D][.16FB.0020.001D] # SQUARED OK
-A74F ; [.176D.0020.0004][.176D.0020.0004] # LATIN SMALL LETTER OO
-A74E ; [.176D.0020.000A][.176D.0020.000A] # LATIN CAPITAL LETTER OO
-3375 ; [.176D.0020.001C][.185B.0020.001D] # SQUARE OV
-1D0F ; [.1771.0020.0002] # LATIN LETTER SMALL CAPITAL O
-1D11 ; [.1772.0020.0002] # LATIN SMALL LETTER SIDEWAYS O
-0276 ; [.1773.0020.0002] # LATIN LETTER SMALL CAPITAL OE
-1D14 ; [.1777.0020.0002] # LATIN SMALL LETTER TURNED OE
-1D13 ; [.1778.0020.0002] # LATIN SMALL LETTER SIDEWAYS O WITH STROKE
-0254 ; [.1779.0020.0002] # LATIN SMALL LETTER OPEN O
-0186 ; [.1779.0020.0008] # LATIN CAPITAL LETTER OPEN O
-1D53 ; [.1779.0020.0014] # MODIFIER LETTER SMALL OPEN O
-1D10 ; [.177D.0020.0002] # LATIN LETTER SMALL CAPITAL OPEN O
-1D12 ; [.177E.0020.0002] # LATIN SMALL LETTER SIDEWAYS OPEN O
-1D97 ; [.177F.0020.0002] # LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK
-A74D ; [.1780.0020.0002] # LATIN SMALL LETTER O WITH LOOP
-A74C ; [.1780.0020.0008] # LATIN CAPITAL LETTER O WITH LOOP
-1D16 ; [.1781.0020.0002] # LATIN SMALL LETTER TOP HALF O
-1D54 ; [.1781.0020.0014] # MODIFIER LETTER SMALL TOP HALF O
-1D17 ; [.1782.0020.0002] # LATIN SMALL LETTER BOTTOM HALF O
-1D55 ; [.1782.0020.0014] # MODIFIER LETTER SMALL BOTTOM HALF O
-2C7A ; [.1783.0020.0002] # LATIN SMALL LETTER O WITH LOW RING INSIDE
-0275 ; [.1784.0020.0002] # LATIN SMALL LETTER BARRED O
-019F ; [.1784.0020.0008] # LATIN CAPITAL LETTER O WITH MIDDLE TILDE
-1DB1 ; [.1784.0020.0014] # MODIFIER LETTER SMALL BARRED O
-A74B ; [.1788.0020.0002] # LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
-A74A ; [.1788.0020.0008] # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
-0277 ; [.1789.0020.0002] # LATIN SMALL LETTER CLOSED OMEGA
-0223 ; [.178D.0020.0002] # LATIN SMALL LETTER OU
-0222 ; [.178D.0020.0008] # LATIN CAPITAL LETTER OU
-1D3D ; [.178D.0020.001D] # MODIFIER LETTER CAPITAL OU
-1D15 ; [.1791.0020.0002] # LATIN LETTER SMALL CAPITAL OU
-0070 ; [.1792.0020.0002] # LATIN SMALL LETTER P
-FF50 ; [.1792.0020.0003] # FULLWIDTH LATIN SMALL LETTER P
-24AB ; [*02FA.0020.0004][.1792.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER P
-1D429 ; [.1792.0020.0005] # MATHEMATICAL BOLD SMALL P
-1D45D ; [.1792.0020.0005] # MATHEMATICAL ITALIC SMALL P
-1D491 ; [.1792.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL P
-1D4C5 ; [.1792.0020.0005] # MATHEMATICAL SCRIPT SMALL P
-1D4F9 ; [.1792.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL P
-1D52D ; [.1792.0020.0005] # MATHEMATICAL FRAKTUR SMALL P
-1D561 ; [.1792.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL P
-1D595 ; [.1792.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL P
-1D5C9 ; [.1792.0020.0005] # MATHEMATICAL SANS-SERIF SMALL P
-1D5FD ; [.1792.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL P
-1D631 ; [.1792.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL P
-1D665 ; [.1792.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
-1D699 ; [.1792.0020.0005] # MATHEMATICAL MONOSPACE SMALL P
-24DF ; [.1792.0020.0006] # CIRCLED LATIN SMALL LETTER P
-0050 ; [.1792.0020.0008] # LATIN CAPITAL LETTER P
-FF30 ; [.1792.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER P
-1F11F ; [*02FA.0020.0004][.1792.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER P
-2119 ; [.1792.0020.000B] # DOUBLE-STRUCK CAPITAL P
-1D40F ; [.1792.0020.000B] # MATHEMATICAL BOLD CAPITAL P
-1D443 ; [.1792.0020.000B] # MATHEMATICAL ITALIC CAPITAL P
-1D477 ; [.1792.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL P
-1D4AB ; [.1792.0020.000B] # MATHEMATICAL SCRIPT CAPITAL P
-1D4DF ; [.1792.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL P
-1D513 ; [.1792.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL P
-1D57B ; [.1792.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL P
-1D5AF ; [.1792.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL P
-1D5E3 ; [.1792.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL P
-1D617 ; [.1792.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
-1D64B ; [.1792.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
-1D67F ; [.1792.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL P
-24C5 ; [.1792.0020.000C] # CIRCLED LATIN CAPITAL LETTER P
-1F15F ; [.1792.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER P
-1D56 ; [.1792.0020.0014] # MODIFIER LETTER SMALL P
-209A ; [.1792.0020.0015] # LATIN SUBSCRIPT SMALL LETTER P
-1D3E ; [.1792.0020.001D] # MODIFIER LETTER CAPITAL P
-1F13F ; [.1792.0020.001D] # SQUARED LATIN CAPITAL LETTER P
-1F17F ; [.1792.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1F18A ; [.1792.0020.001D] # CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1E55 ; [.1792.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER P WITH ACUTE
-1E54 ; [.1792.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER P WITH ACUTE
-1E57 ; [.1792.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER P WITH DOT ABOVE
-1E56 ; [.1792.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER P WITH DOT ABOVE
-3380 ; [.1792.0020.001C][.15EB.0020.001D] # SQUARE PA AMPS
-33A9 ; [.1792.0020.001D][.15EB.0020.001C] # SQUARE PA
-1F18C ; [.1792.0020.001D][.15EB.0020.001D] # NEGATIVE SQUARED PA
-3376 ; [.1792.0020.001C][.1619.0020.001C] # SQUARE PC
-338A ; [.1792.0020.001C][.1680.0020.001D] # SQUARE PF
-33D7 ; [.1792.0020.001D][.16B0.0020.001D] # SQUARE PH
-33D8 ; [.1792.0020.001C][*0272.0020.001C][.173D.0020.001C][*0272.0020.001C] # SQUARE PM
-33D9 ; [.1792.0020.001D][.1792.0020.001D][.173D.0020.001D] # SQUARE PPM
-1F14E ; [.1792.0020.001D][.1792.0020.001D][.185B.0020.001D] # SQUARED PPV
-33DA ; [.1792.0020.001D][.17B9.0020.001D] # SQUARE PR
-33B0 ; [.1792.0020.001C][.17EF.0020.001C] # SQUARE PS
-3250 ; [.1792.0020.001D][.1812.0020.001D][.1648.0020.001D] # PARTNERSHIP SIGN
-33B4 ; [.1792.0020.001C][.185B.0020.001D] # SQUARE PV
-33BA ; [.1792.0020.001C][.186D.0020.001D] # SQUARE PW
-1D18 ; [.1796.0020.0002] # LATIN LETTER SMALL CAPITAL P
-1D7D ; [.1797.0020.0002] # LATIN SMALL LETTER P WITH STROKE
-2C63 ; [.1797.0020.0008] # LATIN CAPITAL LETTER P WITH STROKE
-A751 ; [.1798.0020.0002] # LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
-A750 ; [.1798.0020.0008] # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
-1D71 ; [.1799.0020.0002] # LATIN SMALL LETTER P WITH MIDDLE TILDE
-1D88 ; [.179A.0020.0002] # LATIN SMALL LETTER P WITH PALATAL HOOK
-01A5 ; [.179B.0020.0002] # LATIN SMALL LETTER P WITH HOOK
-01A4 ; [.179B.0020.0008] # LATIN CAPITAL LETTER P WITH HOOK
-A753 ; [.179F.0020.0002] # LATIN SMALL LETTER P WITH FLOURISH
-A752 ; [.179F.0020.0008] # LATIN CAPITAL LETTER P WITH FLOURISH
-A755 ; [.17A0.0020.0002] # LATIN SMALL LETTER P WITH SQUIRREL TAIL
-A754 ; [.17A0.0020.0008] # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
-A7FC ; [.17A1.0020.0002] # LATIN EPIGRAPHIC LETTER REVERSED P
-0278 ; [.17A2.0020.0002] # LATIN SMALL LETTER PHI
-1DB2 ; [.17A2.0020.0014] # MODIFIER LETTER SMALL PHI
-2C77 ; [.17A6.0020.0002] # LATIN SMALL LETTER TAILLESS PHI
-0071 ; [.17A7.0020.0002] # LATIN SMALL LETTER Q
-FF51 ; [.17A7.0020.0003] # FULLWIDTH LATIN SMALL LETTER Q
-24AC ; [*02FA.0020.0004][.17A7.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Q
-1D42A ; [.17A7.0020.0005] # MATHEMATICAL BOLD SMALL Q
-1D45E ; [.17A7.0020.0005] # MATHEMATICAL ITALIC SMALL Q
-1D492 ; [.17A7.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Q
-1D4C6 ; [.17A7.0020.0005] # MATHEMATICAL SCRIPT SMALL Q
-1D4FA ; [.17A7.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Q
-1D52E ; [.17A7.0020.0005] # MATHEMATICAL FRAKTUR SMALL Q
-1D562 ; [.17A7.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Q
-1D596 ; [.17A7.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Q
-1D5CA ; [.17A7.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Q
-1D5FE ; [.17A7.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Q
-1D632 ; [.17A7.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Q
-1D666 ; [.17A7.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
-1D69A ; [.17A7.0020.0005] # MATHEMATICAL MONOSPACE SMALL Q
-24E0 ; [.17A7.0020.0006] # CIRCLED LATIN SMALL LETTER Q
-0051 ; [.17A7.0020.0008] # LATIN CAPITAL LETTER Q
-FF31 ; [.17A7.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Q
-1F120 ; [*02FA.0020.0004][.17A7.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Q
-211A ; [.17A7.0020.000B] # DOUBLE-STRUCK CAPITAL Q
-1D410 ; [.17A7.0020.000B] # MATHEMATICAL BOLD CAPITAL Q
-1D444 ; [.17A7.0020.000B] # MATHEMATICAL ITALIC CAPITAL Q
-1D478 ; [.17A7.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Q
-1D4AC ; [.17A7.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Q
-1D4E0 ; [.17A7.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Q
-1D514 ; [.17A7.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL Q
-1D57C ; [.17A7.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Q
-1D5B0 ; [.17A7.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Q
-1D5E4 ; [.17A7.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
-1D618 ; [.17A7.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
-1D64C ; [.17A7.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
-1D680 ; [.17A7.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Q
-24C6 ; [.17A7.0020.000C] # CIRCLED LATIN CAPITAL LETTER Q
-1F160 ; [.17A7.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Q
-1F140 ; [.17A7.0020.001D] # SQUARED LATIN CAPITAL LETTER Q
-1F180 ; [.17A7.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Q
-0239 ; [.17A7.0020.0004][.1792.0020.0004] # LATIN SMALL LETTER QP DIGRAPH
-A757 ; [.17AB.0020.0002] # LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
-A756 ; [.17AB.0020.0008] # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
-A759 ; [.17AC.0020.0002] # LATIN SMALL LETTER Q WITH DIAGONAL STROKE
-A758 ; [.17AC.0020.0008] # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
-02A0 ; [.17AD.0020.0002] # LATIN SMALL LETTER Q WITH HOOK
-024B ; [.17B1.0020.0002] # LATIN SMALL LETTER Q WITH HOOK TAIL
-024A ; [.17B1.0020.0008] # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
-0138 ; [.17B5.0020.0002] # LATIN SMALL LETTER KRA
-0072 ; [.17B9.0020.0002] # LATIN SMALL LETTER R
-FF52 ; [.17B9.0020.0003] # FULLWIDTH LATIN SMALL LETTER R
-036C ; [.17B9.0020.0004] # COMBINING LATIN SMALL LETTER R
-1DCA ; [.17B9.0020.0004] # COMBINING LATIN SMALL LETTER R BELOW
-24AD ; [*02FA.0020.0004][.17B9.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER R
-1D42B ; [.17B9.0020.0005] # MATHEMATICAL BOLD SMALL R
-1D45F ; [.17B9.0020.0005] # MATHEMATICAL ITALIC SMALL R
-1D493 ; [.17B9.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL R
-1D4C7 ; [.17B9.0020.0005] # MATHEMATICAL SCRIPT SMALL R
-1D4FB ; [.17B9.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL R
-1D52F ; [.17B9.0020.0005] # MATHEMATICAL FRAKTUR SMALL R
-1D563 ; [.17B9.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL R
-1D597 ; [.17B9.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL R
-1D5CB ; [.17B9.0020.0005] # MATHEMATICAL SANS-SERIF SMALL R
-1D5FF ; [.17B9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL R
-1D633 ; [.17B9.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL R
-1D667 ; [.17B9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
-1D69B ; [.17B9.0020.0005] # MATHEMATICAL MONOSPACE SMALL R
-24E1 ; [.17B9.0020.0006] # CIRCLED LATIN SMALL LETTER R
-0052 ; [.17B9.0020.0008] # LATIN CAPITAL LETTER R
-FF32 ; [.17B9.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER R
-1F121 ; [*02FA.0020.0004][.17B9.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER R
-211B ; [.17B9.0020.000B] # SCRIPT CAPITAL R
-211C ; [.17B9.0020.000B] # BLACK-LETTER CAPITAL R
-211D ; [.17B9.0020.000B] # DOUBLE-STRUCK CAPITAL R
-1D411 ; [.17B9.0020.000B] # MATHEMATICAL BOLD CAPITAL R
-1D445 ; [.17B9.0020.000B] # MATHEMATICAL ITALIC CAPITAL R
-1D479 ; [.17B9.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL R
-1D4E1 ; [.17B9.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL R
-1D57D ; [.17B9.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL R
-1D5B1 ; [.17B9.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL R
-1D5E5 ; [.17B9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL R
-1D619 ; [.17B9.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
-1D64D ; [.17B9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
-1D681 ; [.17B9.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL R
-24C7 ; [.17B9.0020.000C] # CIRCLED LATIN CAPITAL LETTER R
-1F12C ; [.17B9.0020.000C] # CIRCLED ITALIC LATIN CAPITAL LETTER R
-1F161 ; [.17B9.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER R
-02B3 ; [.17B9.0020.0014] # MODIFIER LETTER SMALL R
-1D63 ; [.17B9.0020.0015] # LATIN SUBSCRIPT SMALL LETTER R
-1D3F ; [.17B9.0020.001D] # MODIFIER LETTER CAPITAL R
-1F141 ; [.17B9.0020.001D] # SQUARED LATIN CAPITAL LETTER R
-1F181 ; [.17B9.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER R
-0155 ; [.17B9.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER R WITH ACUTE
-0154 ; [.17B9.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER R WITH ACUTE
-0159 ; [.17B9.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER R WITH CARON
-0158 ; [.17B9.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER R WITH CARON
-1E59 ; [.17B9.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER R WITH DOT ABOVE
-1E58 ; [.17B9.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER R WITH DOT ABOVE
-0157 ; [.17B9.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER R WITH CEDILLA
-0156 ; [.17B9.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER R WITH CEDILLA
-A7A7 ; [.17B9.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER R WITH OBLIQUE STROKE
-A7A6 ; [.17B9.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
-0211 ; [.17B9.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER R WITH DOUBLE GRAVE
-0210 ; [.17B9.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
-0213 ; [.17B9.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER R WITH INVERTED BREVE
-0212 ; [.17B9.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER R WITH INVERTED BREVE
-1E5B ; [.17B9.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER R WITH DOT BELOW
-1E5A ; [.17B9.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER R WITH DOT BELOW
-1E5D ; [.17B9.0020.0002][.0000.0042.0002][.0000.0032.0002] # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
-1E5C ; [.17B9.0020.0008][.0000.0042.0002][.0000.0032.0002] # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
-1E5F ; [.17B9.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER R WITH LINE BELOW
-1E5E ; [.17B9.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER R WITH LINE BELOW
-A783 ; [.17B9.0020.0004][.0000.00FD.0004] # LATIN SMALL LETTER INSULAR R
-A782 ; [.17B9.0020.000A][.0000.00FD.0004] # LATIN CAPITAL LETTER INSULAR R
-33AD ; [.17B9.0020.001C][.15EB.0020.001C][.162D.0020.001C] # SQUARE RAD
-33AE ; [.17B9.0020.001C][.15EB.0020.001C][.162D.0020.001C][*05AE.0020.001C][.17EF.0020.001C] # SQUARE RAD OVER S
-33AF ; [.17B9.0020.001C][.15EB.0020.001C][.162D.0020.001C][*05AE.0020.001C][.17EF.0020.001C][.15E3.0020.001C] # SQUARE RAD OVER S SQUARED
-20A8 ; [.17B9.0020.000A][.17EF.0020.0004] # RUPEE SIGN
-0280 ; [.17BD.0020.0002] # LATIN LETTER SMALL CAPITAL R
-1DE2 ; [.17BD.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL R
-01A6 ; [.17BD.0020.0008] # LATIN LETTER YR
-A75B ; [.17C1.0020.0002] # LATIN SMALL LETTER R ROTUNDA
-1DE3 ; [.17C1.0020.0004] # COMBINING LATIN SMALL LETTER R ROTUNDA
-A75A ; [.17C1.0020.0008] # LATIN CAPITAL LETTER R ROTUNDA
-1D19 ; [.17C2.0020.0002] # LATIN LETTER SMALL CAPITAL REVERSED R
-024D ; [.17C3.0020.0002] # LATIN SMALL LETTER R WITH STROKE
-024C ; [.17C3.0020.0008] # LATIN CAPITAL LETTER R WITH STROKE
-1D72 ; [.17C7.0020.0002] # LATIN SMALL LETTER R WITH MIDDLE TILDE
-0279 ; [.17C8.0020.0002] # LATIN SMALL LETTER TURNED R
-02B4 ; [.17C8.0020.0014] # MODIFIER LETTER SMALL TURNED R
-1D1A ; [.17CC.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED R
-027A ; [.17CD.0020.0002] # LATIN SMALL LETTER TURNED R WITH LONG LEG
-1D89 ; [.17D1.0020.0002] # LATIN SMALL LETTER R WITH PALATAL HOOK
-027B ; [.17D2.0020.0002] # LATIN SMALL LETTER TURNED R WITH HOOK
-02B5 ; [.17D2.0020.0014] # MODIFIER LETTER SMALL TURNED R WITH HOOK
-2C79 ; [.17D6.0020.0002] # LATIN SMALL LETTER TURNED R WITH TAIL
-027C ; [.17D7.0020.0002] # LATIN SMALL LETTER R WITH LONG LEG
-027D ; [.17DB.0020.0002] # LATIN SMALL LETTER R WITH TAIL
-2C64 ; [.17DB.0020.0008] # LATIN CAPITAL LETTER R WITH TAIL
-027E ; [.17DF.0020.0002] # LATIN SMALL LETTER R WITH FISHHOOK
-1D73 ; [.17E3.0020.0002] # LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE
-027F ; [.17E4.0020.0002] # LATIN SMALL LETTER REVERSED R WITH FISHHOOK
-0281 ; [.17E8.0020.0002] # LATIN LETTER SMALL CAPITAL INVERTED R
-02B6 ; [.17E8.0020.0014] # MODIFIER LETTER SMALL CAPITAL INVERTED R
-A775 ; [.17EC.0020.0002] # LATIN SMALL LETTER RUM
-A776 ; [.17ED.0020.0002] # LATIN LETTER SMALL CAPITAL RUM
-A75D ; [.17EE.0020.0002] # LATIN SMALL LETTER RUM ROTUNDA
-A75C ; [.17EE.0020.0008] # LATIN CAPITAL LETTER RUM ROTUNDA
-0073 ; [.17EF.0020.0002] # LATIN SMALL LETTER S
-FF53 ; [.17EF.0020.0003] # FULLWIDTH LATIN SMALL LETTER S
-1DE4 ; [.17EF.0020.0004] # COMBINING LATIN SMALL LETTER S
-24AE ; [*02FA.0020.0004][.17EF.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER S
-1D42C ; [.17EF.0020.0005] # MATHEMATICAL BOLD SMALL S
-1D460 ; [.17EF.0020.0005] # MATHEMATICAL ITALIC SMALL S
-1D494 ; [.17EF.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL S
-1D4C8 ; [.17EF.0020.0005] # MATHEMATICAL SCRIPT SMALL S
-1D4FC ; [.17EF.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL S
-1D530 ; [.17EF.0020.0005] # MATHEMATICAL FRAKTUR SMALL S
-1D564 ; [.17EF.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL S
-1D598 ; [.17EF.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL S
-1D5CC ; [.17EF.0020.0005] # MATHEMATICAL SANS-SERIF SMALL S
-1D600 ; [.17EF.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL S
-1D634 ; [.17EF.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL S
-1D668 ; [.17EF.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
-1D69C ; [.17EF.0020.0005] # MATHEMATICAL MONOSPACE SMALL S
-24E2 ; [.17EF.0020.0006] # CIRCLED LATIN SMALL LETTER S
-0053 ; [.17EF.0020.0008] # LATIN CAPITAL LETTER S
-FF33 ; [.17EF.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER S
-1F122 ; [*02FA.0020.0004][.17EF.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER S
-1F12A ; [*035C.0020.0004][.17EF.0020.000A][*035D.0020.0004] # TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
-1D412 ; [.17EF.0020.000B] # MATHEMATICAL BOLD CAPITAL S
-1D446 ; [.17EF.0020.000B] # MATHEMATICAL ITALIC CAPITAL S
-1D47A ; [.17EF.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL S
-1D4AE ; [.17EF.0020.000B] # MATHEMATICAL SCRIPT CAPITAL S
-1D4E2 ; [.17EF.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL S
-1D516 ; [.17EF.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL S
-1D54A ; [.17EF.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL S
-1D57E ; [.17EF.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL S
-1D5B2 ; [.17EF.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL S
-1D5E6 ; [.17EF.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL S
-1D61A ; [.17EF.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
-1D64E ; [.17EF.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
-1D682 ; [.17EF.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL S
-24C8 ; [.17EF.0020.000C] # CIRCLED LATIN CAPITAL LETTER S
-1F162 ; [.17EF.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER S
-02E2 ; [.17EF.0020.0014] # MODIFIER LETTER SMALL S
-209B ; [.17EF.0020.0015] # LATIN SUBSCRIPT SMALL LETTER S
-1F142 ; [.17EF.0020.001D] # SQUARED LATIN CAPITAL LETTER S
-1F182 ; [.17EF.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER S
-015B ; [.17EF.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER S WITH ACUTE
-015A ; [.17EF.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER S WITH ACUTE
-1E65 ; [.17EF.0020.0002][.0000.0024.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
-1E64 ; [.17EF.0020.0008][.0000.0024.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
-015D ; [.17EF.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
-015C ; [.17EF.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-0161 ; [.17EF.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.17EF.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER S WITH CARON
-1E67 ; [.17EF.0020.0002][.0000.0028.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
-1E66 ; [.17EF.0020.0008][.0000.0028.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
-1E61 ; [.17EF.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH DOT ABOVE
-1E60 ; [.17EF.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH DOT ABOVE
-015F ; [.17EF.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER S WITH CEDILLA
-015E ; [.17EF.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER S WITH CEDILLA
-A7A9 ; [.17EF.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER S WITH OBLIQUE STROKE
-A7A8 ; [.17EF.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-1E63 ; [.17EF.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER S WITH DOT BELOW
-1E62 ; [.17EF.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER S WITH DOT BELOW
-1E69 ; [.17EF.0020.0002][.0000.0042.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E68 ; [.17EF.0020.0008][.0000.0042.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
-0219 ; [.17EF.0020.0002][.0000.0045.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
-0218 ; [.17EF.0020.0008][.0000.0045.0002] # LATIN CAPITAL LETTER S WITH COMMA BELOW
-017F ; [.17EF.0020.0004][.0000.00FD.0004] # LATIN SMALL LETTER LONG S
-1DE5 ; [.17EF.0020.0004][.0000.00FD.0004] # COMBINING LATIN SMALL LETTER LONG S
-A785 ; [.17EF.0020.0004][.0000.00FD.0004] # LATIN SMALL LETTER INSULAR S
-A784 ; [.17EF.0020.000A][.0000.00FD.0004] # LATIN CAPITAL LETTER INSULAR S
-1E9B ; [.17EF.0020.0004][.0000.00FD.0004][.0000.002E.0002] # LATIN SMALL LETTER LONG S WITH DOT ABOVE
-1F18D ; [.17EF.0020.001D][.15EB.0020.001D] # NEGATIVE SQUARED SA
-1F14C ; [.17EF.0020.001D][.162D.0020.001D] # SQUARED SD
-2120 ; [.17EF.0020.0014][.173D.0020.0014] # SERVICE MARK
-1F198 ; [.17EF.0020.001D][.176D.0020.001D][.17EF.0020.001D] # SQUARED SOS
-33DB ; [.17EF.0020.001C][.17B9.0020.001C] # SQUARE SR
-1F14D ; [.17EF.0020.001D][.17EF.0020.001D] # SQUARED SS
-00DF ; [.17EF.0020.0004][.0000.00FC.0004][.17EF.0020.0004] # LATIN SMALL LETTER SHARP S
-1E9E ; [.17EF.0020.000A][.0000.00FC.0004][.17EF.0020.000A] # LATIN CAPITAL LETTER SHARP S
-FB06 ; [.17EF.0020.0004][.1812.0020.0004] # LATIN SMALL LIGATURE ST
-FB05 ; [.17EF.0020.0004][.0000.00FD.0004][.1812.0020.0004] # LATIN SMALL LIGATURE LONG S T
-33DC ; [.17EF.0020.001D][.185B.0020.001C] # SQUARE SV
-A731 ; [.17F3.0020.0002] # LATIN LETTER SMALL CAPITAL S
-1D74 ; [.17F4.0020.0002] # LATIN SMALL LETTER S WITH MIDDLE TILDE
-1D8A ; [.17F5.0020.0002] # LATIN SMALL LETTER S WITH PALATAL HOOK
-0282 ; [.17F6.0020.0002] # LATIN SMALL LETTER S WITH HOOK
-1DB3 ; [.17F6.0020.0014] # MODIFIER LETTER SMALL S WITH HOOK
-023F ; [.17FA.0020.0002] # LATIN SMALL LETTER S WITH SWASH TAIL
-2C7E ; [.17FA.0020.0008] # LATIN CAPITAL LETTER S WITH SWASH TAIL
-1E9C ; [.17FE.0020.0002] # LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE
-1E9D ; [.17FF.0020.0002] # LATIN SMALL LETTER LONG S WITH HIGH STROKE
-0283 ; [.1800.0020.0002] # LATIN SMALL LETTER ESH
-01A9 ; [.1800.0020.0008] # LATIN CAPITAL LETTER ESH
-1DB4 ; [.1800.0020.0014] # MODIFIER LETTER SMALL ESH
-1D8B ; [.1804.0020.0002] # LATIN SMALL LETTER ESH WITH PALATAL HOOK
-01AA ; [.1805.0020.0002] # LATIN LETTER REVERSED ESH LOOP
-0285 ; [.1809.0020.0002] # LATIN SMALL LETTER SQUAT REVERSED ESH
-1D98 ; [.180D.0020.0002] # LATIN SMALL LETTER ESH WITH RETROFLEX HOOK
-0286 ; [.180E.0020.0002] # LATIN SMALL LETTER ESH WITH CURL
-0074 ; [.1812.0020.0002] # LATIN SMALL LETTER T
-FF54 ; [.1812.0020.0003] # FULLWIDTH LATIN SMALL LETTER T
-036D ; [.1812.0020.0004] # COMBINING LATIN SMALL LETTER T
-24AF ; [*02FA.0020.0004][.1812.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER T
-1D42D ; [.1812.0020.0005] # MATHEMATICAL BOLD SMALL T
-1D461 ; [.1812.0020.0005] # MATHEMATICAL ITALIC SMALL T
-1D495 ; [.1812.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL T
-1D4C9 ; [.1812.0020.0005] # MATHEMATICAL SCRIPT SMALL T
-1D4FD ; [.1812.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL T
-1D531 ; [.1812.0020.0005] # MATHEMATICAL FRAKTUR SMALL T
-1D565 ; [.1812.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL T
-1D599 ; [.1812.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL T
-1D5CD ; [.1812.0020.0005] # MATHEMATICAL SANS-SERIF SMALL T
-1D601 ; [.1812.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL T
-1D635 ; [.1812.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL T
-1D669 ; [.1812.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
-1D69D ; [.1812.0020.0005] # MATHEMATICAL MONOSPACE SMALL T
-24E3 ; [.1812.0020.0006] # CIRCLED LATIN SMALL LETTER T
-0054 ; [.1812.0020.0008] # LATIN CAPITAL LETTER T
-FF34 ; [.1812.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER T
-1F123 ; [*02FA.0020.0004][.1812.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER T
-1D413 ; [.1812.0020.000B] # MATHEMATICAL BOLD CAPITAL T
-1D447 ; [.1812.0020.000B] # MATHEMATICAL ITALIC CAPITAL T
-1D47B ; [.1812.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL T
-1D4AF ; [.1812.0020.000B] # MATHEMATICAL SCRIPT CAPITAL T
-1D4E3 ; [.1812.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL T
-1D517 ; [.1812.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL T
-1D54B ; [.1812.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL T
-1D57F ; [.1812.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL T
-1D5B3 ; [.1812.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL T
-1D5E7 ; [.1812.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL T
-1D61B ; [.1812.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
-1D64F ; [.1812.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
-1D683 ; [.1812.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL T
-24C9 ; [.1812.0020.000C] # CIRCLED LATIN CAPITAL LETTER T
-1F163 ; [.1812.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER T
-1D57 ; [.1812.0020.0014] # MODIFIER LETTER SMALL T
-209C ; [.1812.0020.0015] # LATIN SUBSCRIPT SMALL LETTER T
-1D40 ; [.1812.0020.001D] # MODIFIER LETTER CAPITAL T
-1F143 ; [.1812.0020.001D] # SQUARED LATIN CAPITAL LETTER T
-1F183 ; [.1812.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER T
-0165 ; [.1812.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER T WITH CARON
-0164 ; [.1812.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER T WITH CARON
-1E97 ; [.1812.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER T WITH DIAERESIS
-1E6B ; [.1812.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER T WITH DOT ABOVE
-1E6A ; [.1812.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER T WITH DOT ABOVE
-0163 ; [.1812.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER T WITH CEDILLA
-0162 ; [.1812.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER T WITH CEDILLA
-1E6D ; [.1812.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER T WITH DOT BELOW
-1E6C ; [.1812.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER T WITH DOT BELOW
-021B ; [.1812.0020.0002][.0000.0045.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
-021A ; [.1812.0020.0008][.0000.0045.0002] # LATIN CAPITAL LETTER T WITH COMMA BELOW
-1E71 ; [.1812.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
-1E70 ; [.1812.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
-1E6F ; [.1812.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER T WITH LINE BELOW
-1E6E ; [.1812.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER T WITH LINE BELOW
-A787 ; [.1812.0020.0004][.0000.00FD.0004] # LATIN SMALL LETTER INSULAR T
-A786 ; [.1812.0020.000A][.0000.00FD.0004] # LATIN CAPITAL LETTER INSULAR T
-02A8 ; [.1812.0020.0004][.1627.0020.0004] # LATIN SMALL LETTER TC DIGRAPH WITH CURL
-2121 ; [.1812.0020.000A][.1648.0020.000A][.170D.0020.000A] # TELEPHONE SIGN
-1D7A ; [.1812.0020.0004][.0000.00FC.0004][.16B0.0020.0004] # LATIN SMALL LETTER TH WITH STRIKETHROUGH
-3394 ; [.1812.0020.001D][.16B0.0020.001D][.1891.0020.001C] # SQUARE THZ
-2122 ; [.1812.0020.0014][.173D.0020.0014] # TRADE MARK SIGN
-01BE ; [.1812.0020.0004][.17EF.0020.0004] # LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
-02A6 ; [.1812.0020.0004][.17EF.0020.0004] # LATIN SMALL LETTER TS DIGRAPH
-02A7 ; [.1812.0020.0004][.1800.0020.0004] # LATIN SMALL LETTER TESH DIGRAPH
-A729 ; [.1812.0020.0004][.1891.0020.0004] # LATIN SMALL LETTER TZ
-A728 ; [.1812.0020.000A][.1891.0020.0004] # LATIN CAPITAL LETTER TZ
-1D1B ; [.1816.0020.0002] # LATIN LETTER SMALL CAPITAL T
-0167 ; [.1817.0020.0002] # LATIN SMALL LETTER T WITH STROKE
-0166 ; [.1817.0020.0008] # LATIN CAPITAL LETTER T WITH STROKE
-2C66 ; [.181B.0020.0002] # LATIN SMALL LETTER T WITH DIAGONAL STROKE
-023E ; [.181B.0020.0008] # LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
-1D75 ; [.181C.0020.0002] # LATIN SMALL LETTER T WITH MIDDLE TILDE
-01AB ; [.181D.0020.0002] # LATIN SMALL LETTER T WITH PALATAL HOOK
-1DB5 ; [.181D.0020.0014] # MODIFIER LETTER SMALL T WITH PALATAL HOOK
-01AD ; [.1821.0020.0002] # LATIN SMALL LETTER T WITH HOOK
-01AC ; [.1821.0020.0008] # LATIN CAPITAL LETTER T WITH HOOK
-0288 ; [.1825.0020.0002] # LATIN SMALL LETTER T WITH RETROFLEX HOOK
-01AE ; [.1825.0020.0008] # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
-0236 ; [.1829.0020.0002] # LATIN SMALL LETTER T WITH CURL
-A777 ; [.182D.0020.0002] # LATIN SMALL LETTER TUM
-0287 ; [.182E.0020.0002] # LATIN SMALL LETTER TURNED T
-0075 ; [.1832.0020.0002] # LATIN SMALL LETTER U
-FF55 ; [.1832.0020.0003] # FULLWIDTH LATIN SMALL LETTER U
-0367 ; [.1832.0020.0004] # COMBINING LATIN SMALL LETTER U
-24B0 ; [*02FA.0020.0004][.1832.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER U
-1D42E ; [.1832.0020.0005] # MATHEMATICAL BOLD SMALL U
-1D462 ; [.1832.0020.0005] # MATHEMATICAL ITALIC SMALL U
-1D496 ; [.1832.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL U
-1D4CA ; [.1832.0020.0005] # MATHEMATICAL SCRIPT SMALL U
-1D4FE ; [.1832.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL U
-1D532 ; [.1832.0020.0005] # MATHEMATICAL FRAKTUR SMALL U
-1D566 ; [.1832.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL U
-1D59A ; [.1832.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL U
-1D5CE ; [.1832.0020.0005] # MATHEMATICAL SANS-SERIF SMALL U
-1D602 ; [.1832.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL U
-1D636 ; [.1832.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL U
-1D66A ; [.1832.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
-1D69E ; [.1832.0020.0005] # MATHEMATICAL MONOSPACE SMALL U
-24E4 ; [.1832.0020.0006] # CIRCLED LATIN SMALL LETTER U
-0055 ; [.1832.0020.0008] # LATIN CAPITAL LETTER U
-FF35 ; [.1832.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER U
-1F124 ; [*02FA.0020.0004][.1832.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER U
-1D414 ; [.1832.0020.000B] # MATHEMATICAL BOLD CAPITAL U
-1D448 ; [.1832.0020.000B] # MATHEMATICAL ITALIC CAPITAL U
-1D47C ; [.1832.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL U
-1D4B0 ; [.1832.0020.000B] # MATHEMATICAL SCRIPT CAPITAL U
-1D4E4 ; [.1832.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL U
-1D518 ; [.1832.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL U
-1D54C ; [.1832.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL U
-1D580 ; [.1832.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL U
-1D5B4 ; [.1832.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL U
-1D5E8 ; [.1832.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL U
-1D61C ; [.1832.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
-1D650 ; [.1832.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
-1D684 ; [.1832.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL U
-24CA ; [.1832.0020.000C] # CIRCLED LATIN CAPITAL LETTER U
-1F164 ; [.1832.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER U
-1D58 ; [.1832.0020.0014] # MODIFIER LETTER SMALL U
-1D64 ; [.1832.0020.0015] # LATIN SUBSCRIPT SMALL LETTER U
-1D41 ; [.1832.0020.001D] # MODIFIER LETTER CAPITAL U
-1F144 ; [.1832.0020.001D] # SQUARED LATIN CAPITAL LETTER U
-1F184 ; [.1832.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER U
-00FA ; [.1832.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1832.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH ACUTE
-00F9 ; [.1832.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1832.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH GRAVE
-016D ; [.1832.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER U WITH BREVE
-016C ; [.1832.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER U WITH BREVE
-00FB ; [.1832.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX
-00DB ; [.1832.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-01D4 ; [.1832.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1832.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH CARON
-016F ; [.1832.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER U WITH RING ABOVE
-016E ; [.1832.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER U WITH RING ABOVE
-00FC ; [.1832.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1832.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01D8 ; [.1832.0020.0002][.0000.002B.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1832.0020.0008][.0000.002B.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01DC ; [.1832.0020.0002][.0000.002B.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1832.0020.0008][.0000.002B.0002][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01DA ; [.1832.0020.0002][.0000.002B.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1832.0020.0008][.0000.002B.0002][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-01D6 ; [.1832.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1832.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0171 ; [.1832.0020.0002][.0000.002C.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1832.0020.0008][.0000.002C.0002] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0169 ; [.1832.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER U WITH TILDE
-0168 ; [.1832.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER U WITH TILDE
-1E79 ; [.1832.0020.0002][.0000.002D.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH TILDE AND ACUTE
-1E78 ; [.1832.0020.0008][.0000.002D.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
-0173 ; [.1832.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER U WITH OGONEK
-0172 ; [.1832.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER U WITH OGONEK
-016B ; [.1832.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1832.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH MACRON
-1E7B ; [.1832.0020.0002][.0000.0032.0002][.0000.002B.0002] # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
-1E7A ; [.1832.0020.0008][.0000.0032.0002][.0000.002B.0002] # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
-1EE7 ; [.1832.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER U WITH HOOK ABOVE
-1EE6 ; [.1832.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER U WITH HOOK ABOVE
-0215 ; [.1832.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER U WITH DOUBLE GRAVE
-0214 ; [.1832.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
-0217 ; [.1832.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER U WITH INVERTED BREVE
-0216 ; [.1832.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER U WITH INVERTED BREVE
-01B0 ; [.1832.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER U WITH HORN
-01AF ; [.1832.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER U WITH HORN
-1EE9 ; [.1832.0020.0002][.0000.003F.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH HORN AND ACUTE
-1EE8 ; [.1832.0020.0008][.0000.003F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-1EEB ; [.1832.0020.0002][.0000.003F.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH HORN AND GRAVE
-1EEA ; [.1832.0020.0008][.0000.003F.0002][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-1EEF ; [.1832.0020.0002][.0000.003F.0002][.0000.002D.0002] # LATIN SMALL LETTER U WITH HORN AND TILDE
-1EEE ; [.1832.0020.0008][.0000.003F.0002][.0000.002D.0002] # LATIN CAPITAL LETTER U WITH HORN AND TILDE
-1EED ; [.1832.0020.0002][.0000.003F.0002][.0000.003B.0002] # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-1EEC ; [.1832.0020.0008][.0000.003F.0002][.0000.003B.0002] # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-1EF1 ; [.1832.0020.0002][.0000.003F.0002][.0000.0042.0002] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF0 ; [.1832.0020.0008][.0000.003F.0002][.0000.0042.0002] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-1EE5 ; [.1832.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER U WITH DOT BELOW
-1EE4 ; [.1832.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER U WITH DOT BELOW
-1E73 ; [.1832.0020.0002][.0000.0043.0002] # LATIN SMALL LETTER U WITH DIAERESIS BELOW
-1E72 ; [.1832.0020.0008][.0000.0043.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
-1E77 ; [.1832.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
-1E76 ; [.1832.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
-1E75 ; [.1832.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER U WITH TILDE BELOW
-1E74 ; [.1832.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER U WITH TILDE BELOW
-1F199 ; [.1832.0020.001D][.1792.0020.001D][*025D.0020.001C] # SQUARED UP WITH EXCLAMATION MARK
-1D1C ; [.1836.0020.0002] # LATIN LETTER SMALL CAPITAL U
-1DB8 ; [.1836.0020.0014] # MODIFIER LETTER SMALL CAPITAL U
-1D1D ; [.1837.0020.0002] # LATIN SMALL LETTER SIDEWAYS U
-1D59 ; [.1837.0020.0014] # MODIFIER LETTER SMALL SIDEWAYS U
-1D1E ; [.1838.0020.0002] # LATIN SMALL LETTER SIDEWAYS DIAERESIZED U
-1D6B ; [.1839.0020.0002] # LATIN SMALL LETTER UE
-0289 ; [.183A.0020.0002] # LATIN SMALL LETTER U BAR
-0244 ; [.183A.0020.0008] # LATIN CAPITAL LETTER U BAR
-1DB6 ; [.183A.0020.0014] # MODIFIER LETTER SMALL U BAR
-1D7E ; [.183E.0020.0002] # LATIN SMALL CAPITAL LETTER U WITH STROKE
-1D99 ; [.183F.0020.0002] # LATIN SMALL LETTER U WITH RETROFLEX HOOK
-0265 ; [.1840.0020.0002] # LATIN SMALL LETTER TURNED H
-A78D ; [.1840.0020.0008] # LATIN CAPITAL LETTER TURNED H
-1DA3 ; [.1840.0020.0014] # MODIFIER LETTER SMALL TURNED H
-02AE ; [.1844.0020.0002] # LATIN SMALL LETTER TURNED H WITH FISHHOOK
-02AF ; [.1848.0020.0002] # LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
-026F ; [.184C.0020.0002] # LATIN SMALL LETTER TURNED M
-019C ; [.184C.0020.0008] # LATIN CAPITAL LETTER TURNED M
-1D5A ; [.184C.0020.0014] # MODIFIER LETTER SMALL TURNED M
-A7FA ; [.1850.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED M
-1D1F ; [.1851.0020.0002] # LATIN SMALL LETTER SIDEWAYS TURNED M
-0270 ; [.1852.0020.0002] # LATIN SMALL LETTER TURNED M WITH LONG LEG
-1DAD ; [.1852.0020.0014] # MODIFIER LETTER SMALL TURNED M WITH LONG LEG
-028A ; [.1856.0020.0002] # LATIN SMALL LETTER UPSILON
-01B1 ; [.1856.0020.0008] # LATIN CAPITAL LETTER UPSILON
-1DB7 ; [.1856.0020.0014] # MODIFIER LETTER SMALL UPSILON
-1D7F ; [.185A.0020.0002] # LATIN SMALL LETTER UPSILON WITH STROKE
-0076 ; [.185B.0020.0002] # LATIN SMALL LETTER V
-FF56 ; [.185B.0020.0003] # FULLWIDTH LATIN SMALL LETTER V
-036E ; [.185B.0020.0004] # COMBINING LATIN SMALL LETTER V
-2174 ; [.185B.0020.0004] # SMALL ROMAN NUMERAL FIVE
-24B1 ; [*02FA.0020.0004][.185B.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER V
-1D42F ; [.185B.0020.0005] # MATHEMATICAL BOLD SMALL V
-1D463 ; [.185B.0020.0005] # MATHEMATICAL ITALIC SMALL V
-1D497 ; [.185B.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL V
-1D4CB ; [.185B.0020.0005] # MATHEMATICAL SCRIPT SMALL V
-1D4FF ; [.185B.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL V
-1D533 ; [.185B.0020.0005] # MATHEMATICAL FRAKTUR SMALL V
-1D567 ; [.185B.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL V
-1D59B ; [.185B.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL V
-1D5CF ; [.185B.0020.0005] # MATHEMATICAL SANS-SERIF SMALL V
-1D603 ; [.185B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL V
-1D637 ; [.185B.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL V
-1D66B ; [.185B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
-1D69F ; [.185B.0020.0005] # MATHEMATICAL MONOSPACE SMALL V
-24E5 ; [.185B.0020.0006] # CIRCLED LATIN SMALL LETTER V
-0056 ; [.185B.0020.0008] # LATIN CAPITAL LETTER V
-FF36 ; [.185B.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER V
-2164 ; [.185B.0020.000A] # ROMAN NUMERAL FIVE
-1F125 ; [*02FA.0020.0004][.185B.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER V
-1D415 ; [.185B.0020.000B] # MATHEMATICAL BOLD CAPITAL V
-1D449 ; [.185B.0020.000B] # MATHEMATICAL ITALIC CAPITAL V
-1D47D ; [.185B.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL V
-1D4B1 ; [.185B.0020.000B] # MATHEMATICAL SCRIPT CAPITAL V
-1D4E5 ; [.185B.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL V
-1D519 ; [.185B.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL V
-1D54D ; [.185B.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL V
-1D581 ; [.185B.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL V
-1D5B5 ; [.185B.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL V
-1D5E9 ; [.185B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL V
-1D61D ; [.185B.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
-1D651 ; [.185B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
-1D685 ; [.185B.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL V
-24CB ; [.185B.0020.000C] # CIRCLED LATIN CAPITAL LETTER V
-1F165 ; [.185B.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER V
-1D5B ; [.185B.0020.0014] # MODIFIER LETTER SMALL V
-1D65 ; [.185B.0020.0015] # LATIN SUBSCRIPT SMALL LETTER V
-2C7D ; [.185B.0020.001D] # MODIFIER LETTER CAPITAL V
-1F145 ; [.185B.0020.001D] # SQUARED LATIN CAPITAL LETTER V
-1F185 ; [.185B.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER V
-1E7D ; [.185B.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER V WITH TILDE
-1E7C ; [.185B.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER V WITH TILDE
-1E7F ; [.185B.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER V WITH DOT BELOW
-1E7E ; [.185B.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER V WITH DOT BELOW
-2175 ; [.185B.0020.0004][.16C9.0020.0004] # SMALL ROMAN NUMERAL SIX
-2165 ; [.185B.0020.000A][.16C9.0020.000A] # ROMAN NUMERAL SIX
-2176 ; [.185B.0020.0004][.16C9.0020.0004][.16C9.0020.0004] # SMALL ROMAN NUMERAL SEVEN
-2166 ; [.185B.0020.000A][.16C9.0020.000A][.16C9.0020.000A] # ROMAN NUMERAL SEVEN
-2177 ; [.185B.0020.0004][.16C9.0020.0004][.16C9.0020.0004][.16C9.0020.0004] # SMALL ROMAN NUMERAL EIGHT
-2167 ; [.185B.0020.000A][.16C9.0020.000A][.16C9.0020.000A][.16C9.0020.000A] # ROMAN NUMERAL EIGHT
-33DE ; [.185B.0020.001D][*05AE.0020.001C][.173D.0020.001C] # SQUARE V OVER M
-1F19A ; [.185B.0020.001D][.17EF.0020.001D] # SQUARED VS
-A761 ; [.185B.0020.0004][.187C.0020.0004] # LATIN SMALL LETTER VY
-A760 ; [.185B.0020.000A][.187C.0020.000A] # LATIN CAPITAL LETTER VY
-1D20 ; [.185F.0020.0002] # LATIN LETTER SMALL CAPITAL V
-A75F ; [.1860.0020.0002] # LATIN SMALL LETTER V WITH DIAGONAL STROKE
-A75E ; [.1860.0020.0008] # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
-1D8C ; [.1861.0020.0002] # LATIN SMALL LETTER V WITH PALATAL HOOK
-028B ; [.1862.0020.0002] # LATIN SMALL LETTER V WITH HOOK
-01B2 ; [.1862.0020.0008] # LATIN CAPITAL LETTER V WITH HOOK
-1DB9 ; [.1862.0020.0014] # MODIFIER LETTER SMALL V WITH HOOK
-2C71 ; [.1866.0020.0002] # LATIN SMALL LETTER V WITH RIGHT HOOK
-2C74 ; [.1867.0020.0002] # LATIN SMALL LETTER V WITH CURL
-1EFD ; [.1868.0020.0002] # LATIN SMALL LETTER MIDDLE-WELSH V
-1EFC ; [.1868.0020.0008] # LATIN CAPITAL LETTER MIDDLE-WELSH V
-028C ; [.1869.0020.0002] # LATIN SMALL LETTER TURNED V
-0245 ; [.1869.0020.0008] # LATIN CAPITAL LETTER TURNED V
-1DBA ; [.1869.0020.0014] # MODIFIER LETTER SMALL TURNED V
-0077 ; [.186D.0020.0002] # LATIN SMALL LETTER W
-FF57 ; [.186D.0020.0003] # FULLWIDTH LATIN SMALL LETTER W
-24B2 ; [*02FA.0020.0004][.186D.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER W
-1D430 ; [.186D.0020.0005] # MATHEMATICAL BOLD SMALL W
-1D464 ; [.186D.0020.0005] # MATHEMATICAL ITALIC SMALL W
-1D498 ; [.186D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL W
-1D4CC ; [.186D.0020.0005] # MATHEMATICAL SCRIPT SMALL W
-1D500 ; [.186D.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL W
-1D534 ; [.186D.0020.0005] # MATHEMATICAL FRAKTUR SMALL W
-1D568 ; [.186D.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL W
-1D59C ; [.186D.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL W
-1D5D0 ; [.186D.0020.0005] # MATHEMATICAL SANS-SERIF SMALL W
-1D604 ; [.186D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL W
-1D638 ; [.186D.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL W
-1D66C ; [.186D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
-1D6A0 ; [.186D.0020.0005] # MATHEMATICAL MONOSPACE SMALL W
-24E6 ; [.186D.0020.0006] # CIRCLED LATIN SMALL LETTER W
-0057 ; [.186D.0020.0008] # LATIN CAPITAL LETTER W
-FF37 ; [.186D.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER W
-1F126 ; [*02FA.0020.0004][.186D.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER W
-1D416 ; [.186D.0020.000B] # MATHEMATICAL BOLD CAPITAL W
-1D44A ; [.186D.0020.000B] # MATHEMATICAL ITALIC CAPITAL W
-1D47E ; [.186D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL W
-1D4B2 ; [.186D.0020.000B] # MATHEMATICAL SCRIPT CAPITAL W
-1D4E6 ; [.186D.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL W
-1D51A ; [.186D.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL W
-1D54E ; [.186D.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL W
-1D582 ; [.186D.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL W
-1D5B6 ; [.186D.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL W
-1D5EA ; [.186D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL W
-1D61E ; [.186D.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
-1D652 ; [.186D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
-1D686 ; [.186D.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL W
-24CC ; [.186D.0020.000C] # CIRCLED LATIN CAPITAL LETTER W
-1F166 ; [.186D.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER W
-02B7 ; [.186D.0020.0014] # MODIFIER LETTER SMALL W
-1D42 ; [.186D.0020.001D] # MODIFIER LETTER CAPITAL W
-1F146 ; [.186D.0020.001D] # SQUARED LATIN CAPITAL LETTER W
-1F186 ; [.186D.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER W
-1E83 ; [.186D.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER W WITH ACUTE
-1E82 ; [.186D.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER W WITH ACUTE
-1E81 ; [.186D.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER W WITH GRAVE
-1E80 ; [.186D.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER W WITH GRAVE
-0175 ; [.186D.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER W WITH CIRCUMFLEX
-0174 ; [.186D.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-1E98 ; [.186D.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER W WITH RING ABOVE
-1E85 ; [.186D.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER W WITH DIAERESIS
-1E84 ; [.186D.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER W WITH DIAERESIS
-1E87 ; [.186D.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER W WITH DOT ABOVE
-1E86 ; [.186D.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER W WITH DOT ABOVE
-1E89 ; [.186D.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER W WITH DOT BELOW
-1E88 ; [.186D.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER W WITH DOT BELOW
-33DD ; [.186D.0020.001D][.1601.0020.001C] # SQUARE WB
-1F14F ; [.186D.0020.001D][.1619.0020.001D] # SQUARED WC
-1F18F ; [.186D.0020.001D][.1619.0020.001D] # NEGATIVE SQUARED WC
-1F12E ; [.186D.0020.000C][.1891.0020.000C] # CIRCLED WZ
-1D21 ; [.1871.0020.0002] # LATIN LETTER SMALL CAPITAL W
-2C73 ; [.1872.0020.0002] # LATIN SMALL LETTER W WITH HOOK
-2C72 ; [.1872.0020.0008] # LATIN CAPITAL LETTER W WITH HOOK
-028D ; [.1873.0020.0002] # LATIN SMALL LETTER TURNED W
-0078 ; [.1877.0020.0002] # LATIN SMALL LETTER X
-FF58 ; [.1877.0020.0003] # FULLWIDTH LATIN SMALL LETTER X
-036F ; [.1877.0020.0004] # COMBINING LATIN SMALL LETTER X
-2179 ; [.1877.0020.0004] # SMALL ROMAN NUMERAL TEN
-24B3 ; [*02FA.0020.0004][.1877.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER X
-1D431 ; [.1877.0020.0005] # MATHEMATICAL BOLD SMALL X
-1D465 ; [.1877.0020.0005] # MATHEMATICAL ITALIC SMALL X
-1D499 ; [.1877.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL X
-1D4CD ; [.1877.0020.0005] # MATHEMATICAL SCRIPT SMALL X
-1D501 ; [.1877.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL X
-1D535 ; [.1877.0020.0005] # MATHEMATICAL FRAKTUR SMALL X
-1D569 ; [.1877.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL X
-1D59D ; [.1877.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL X
-1D5D1 ; [.1877.0020.0005] # MATHEMATICAL SANS-SERIF SMALL X
-1D605 ; [.1877.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL X
-1D639 ; [.1877.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL X
-1D66D ; [.1877.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
-1D6A1 ; [.1877.0020.0005] # MATHEMATICAL MONOSPACE SMALL X
-24E7 ; [.1877.0020.0006] # CIRCLED LATIN SMALL LETTER X
-0058 ; [.1877.0020.0008] # LATIN CAPITAL LETTER X
-FF38 ; [.1877.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER X
-2169 ; [.1877.0020.000A] # ROMAN NUMERAL TEN
-1F127 ; [*02FA.0020.0004][.1877.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER X
-1D417 ; [.1877.0020.000B] # MATHEMATICAL BOLD CAPITAL X
-1D44B ; [.1877.0020.000B] # MATHEMATICAL ITALIC CAPITAL X
-1D47F ; [.1877.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL X
-1D4B3 ; [.1877.0020.000B] # MATHEMATICAL SCRIPT CAPITAL X
-1D4E7 ; [.1877.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL X
-1D51B ; [.1877.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL X
-1D54F ; [.1877.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL X
-1D583 ; [.1877.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL X
-1D5B7 ; [.1877.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL X
-1D5EB ; [.1877.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL X
-1D61F ; [.1877.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
-1D653 ; [.1877.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
-1D687 ; [.1877.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL X
-24CD ; [.1877.0020.000C] # CIRCLED LATIN CAPITAL LETTER X
-1F167 ; [.1877.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER X
-02E3 ; [.1877.0020.0014] # MODIFIER LETTER SMALL X
-2093 ; [.1877.0020.0015] # LATIN SUBSCRIPT SMALL LETTER X
-1F147 ; [.1877.0020.001D] # SQUARED LATIN CAPITAL LETTER X
-1F187 ; [.1877.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER X
-1E8D ; [.1877.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER X WITH DIAERESIS
-1E8C ; [.1877.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER X WITH DIAERESIS
-1E8B ; [.1877.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER X WITH DOT ABOVE
-1E8A ; [.1877.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER X WITH DOT ABOVE
-217A ; [.1877.0020.0004][.16C9.0020.0004] # SMALL ROMAN NUMERAL ELEVEN
-216A ; [.1877.0020.000A][.16C9.0020.000A] # ROMAN NUMERAL ELEVEN
-217B ; [.1877.0020.0004][.16C9.0020.0004][.16C9.0020.0004] # SMALL ROMAN NUMERAL TWELVE
-216B ; [.1877.0020.000A][.16C9.0020.000A][.16C9.0020.000A] # ROMAN NUMERAL TWELVE
-1D8D ; [.187B.0020.0002] # LATIN SMALL LETTER X WITH PALATAL HOOK
-0079 ; [.187C.0020.0002] # LATIN SMALL LETTER Y
-FF59 ; [.187C.0020.0003] # FULLWIDTH LATIN SMALL LETTER Y
-24B4 ; [*02FA.0020.0004][.187C.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Y
-1D432 ; [.187C.0020.0005] # MATHEMATICAL BOLD SMALL Y
-1D466 ; [.187C.0020.0005] # MATHEMATICAL ITALIC SMALL Y
-1D49A ; [.187C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Y
-1D4CE ; [.187C.0020.0005] # MATHEMATICAL SCRIPT SMALL Y
-1D502 ; [.187C.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Y
-1D536 ; [.187C.0020.0005] # MATHEMATICAL FRAKTUR SMALL Y
-1D56A ; [.187C.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Y
-1D59E ; [.187C.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Y
-1D5D2 ; [.187C.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Y
-1D606 ; [.187C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Y
-1D63A ; [.187C.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Y
-1D66E ; [.187C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
-1D6A2 ; [.187C.0020.0005] # MATHEMATICAL MONOSPACE SMALL Y
-24E8 ; [.187C.0020.0006] # CIRCLED LATIN SMALL LETTER Y
-0059 ; [.187C.0020.0008] # LATIN CAPITAL LETTER Y
-FF39 ; [.187C.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Y
-1F128 ; [*02FA.0020.0004][.187C.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Y
-1D418 ; [.187C.0020.000B] # MATHEMATICAL BOLD CAPITAL Y
-1D44C ; [.187C.0020.000B] # MATHEMATICAL ITALIC CAPITAL Y
-1D480 ; [.187C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Y
-1D4B4 ; [.187C.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Y
-1D4E8 ; [.187C.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Y
-1D51C ; [.187C.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL Y
-1D550 ; [.187C.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
-1D584 ; [.187C.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Y
-1D5B8 ; [.187C.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Y
-1D5EC ; [.187C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
-1D620 ; [.187C.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
-1D654 ; [.187C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
-1D688 ; [.187C.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Y
-24CE ; [.187C.0020.000C] # CIRCLED LATIN CAPITAL LETTER Y
-1F168 ; [.187C.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Y
-02B8 ; [.187C.0020.0014] # MODIFIER LETTER SMALL Y
-1F148 ; [.187C.0020.001D] # SQUARED LATIN CAPITAL LETTER Y
-1F188 ; [.187C.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Y
-00FD ; [.187C.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER Y WITH ACUTE
-00DD ; [.187C.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER Y WITH ACUTE
-1EF3 ; [.187C.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER Y WITH GRAVE
-1EF2 ; [.187C.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER Y WITH GRAVE
-0177 ; [.187C.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER Y WITH CIRCUMFLEX
-0176 ; [.187C.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-1E99 ; [.187C.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER Y WITH RING ABOVE
-00FF ; [.187C.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER Y WITH DIAERESIS
-0178 ; [.187C.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER Y WITH DIAERESIS
-1EF9 ; [.187C.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER Y WITH TILDE
-1EF8 ; [.187C.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER Y WITH TILDE
-1E8F ; [.187C.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER Y WITH DOT ABOVE
-1E8E ; [.187C.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER Y WITH DOT ABOVE
-0233 ; [.187C.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER Y WITH MACRON
-0232 ; [.187C.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER Y WITH MACRON
-1EF7 ; [.187C.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER Y WITH HOOK ABOVE
-1EF6 ; [.187C.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
-1EF5 ; [.187C.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER Y WITH DOT BELOW
-1EF4 ; [.187C.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER Y WITH DOT BELOW
-028F ; [.1880.0020.0002] # LATIN LETTER SMALL CAPITAL Y
-024F ; [.1884.0020.0002] # LATIN SMALL LETTER Y WITH STROKE
-024E ; [.1884.0020.0008] # LATIN CAPITAL LETTER Y WITH STROKE
-01B4 ; [.1888.0020.0002] # LATIN SMALL LETTER Y WITH HOOK
-01B3 ; [.1888.0020.0008] # LATIN CAPITAL LETTER Y WITH HOOK
-1EFF ; [.188C.0020.0002] # LATIN SMALL LETTER Y WITH LOOP
-1EFE ; [.188C.0020.0008] # LATIN CAPITAL LETTER Y WITH LOOP
-021D ; [.188D.0020.0002] # LATIN SMALL LETTER YOGH
-021C ; [.188D.0020.0008] # LATIN CAPITAL LETTER YOGH
-007A ; [.1891.0020.0002] # LATIN SMALL LETTER Z
-FF5A ; [.1891.0020.0003] # FULLWIDTH LATIN SMALL LETTER Z
-1DE6 ; [.1891.0020.0004] # COMBINING LATIN SMALL LETTER Z
-24B5 ; [*02FA.0020.0004][.1891.0020.0004][*02FB.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Z
-1D433 ; [.1891.0020.0005] # MATHEMATICAL BOLD SMALL Z
-1D467 ; [.1891.0020.0005] # MATHEMATICAL ITALIC SMALL Z
-1D49B ; [.1891.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Z
-1D4CF ; [.1891.0020.0005] # MATHEMATICAL SCRIPT SMALL Z
-1D503 ; [.1891.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Z
-1D537 ; [.1891.0020.0005] # MATHEMATICAL FRAKTUR SMALL Z
-1D56B ; [.1891.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Z
-1D59F ; [.1891.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Z
-1D5D3 ; [.1891.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Z
-1D607 ; [.1891.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Z
-1D63B ; [.1891.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Z
-1D66F ; [.1891.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
-1D6A3 ; [.1891.0020.0005] # MATHEMATICAL MONOSPACE SMALL Z
-24E9 ; [.1891.0020.0006] # CIRCLED LATIN SMALL LETTER Z
-005A ; [.1891.0020.0008] # LATIN CAPITAL LETTER Z
-FF3A ; [.1891.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Z
-1F129 ; [*02FA.0020.0004][.1891.0020.000A][*02FB.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Z
-2124 ; [.1891.0020.000B] # DOUBLE-STRUCK CAPITAL Z
-2128 ; [.1891.0020.000B] # BLACK-LETTER CAPITAL Z
-1D419 ; [.1891.0020.000B] # MATHEMATICAL BOLD CAPITAL Z
-1D44D ; [.1891.0020.000B] # MATHEMATICAL ITALIC CAPITAL Z
-1D481 ; [.1891.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Z
-1D4B5 ; [.1891.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Z
-1D4E9 ; [.1891.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Z
-1D585 ; [.1891.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Z
-1D5B9 ; [.1891.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Z
-1D5ED ; [.1891.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
-1D621 ; [.1891.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
-1D655 ; [.1891.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
-1D689 ; [.1891.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Z
-24CF ; [.1891.0020.000C] # CIRCLED LATIN CAPITAL LETTER Z
-1F169 ; [.1891.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
-1DBB ; [.1891.0020.0014] # MODIFIER LETTER SMALL Z
-1F149 ; [.1891.0020.001D] # SQUARED LATIN CAPITAL LETTER Z
-1F189 ; [.1891.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-017A ; [.1891.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER Z WITH ACUTE
-0179 ; [.1891.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER Z WITH ACUTE
-1E91 ; [.1891.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER Z WITH CIRCUMFLEX
-1E90 ; [.1891.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
-017E ; [.1891.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1891.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER Z WITH CARON
-017C ; [.1891.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-017B ; [.1891.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
-1E93 ; [.1891.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER Z WITH DOT BELOW
-1E92 ; [.1891.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER Z WITH DOT BELOW
-1E95 ; [.1891.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER Z WITH LINE BELOW
-1E94 ; [.1891.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER Z WITH LINE BELOW
-018D ; [.1891.0020.0004][.186D.0020.0004] # LATIN SMALL LETTER TURNED DELTA
-1D22 ; [.1895.0020.0002] # LATIN LETTER SMALL CAPITAL Z
-01B6 ; [.1896.0020.0002] # LATIN SMALL LETTER Z WITH STROKE
-01B5 ; [.1896.0020.0008] # LATIN CAPITAL LETTER Z WITH STROKE
-1D76 ; [.189A.0020.0002] # LATIN SMALL LETTER Z WITH MIDDLE TILDE
-1D8E ; [.189B.0020.0002] # LATIN SMALL LETTER Z WITH PALATAL HOOK
-0225 ; [.189C.0020.0002] # LATIN SMALL LETTER Z WITH HOOK
-0224 ; [.189C.0020.0008] # LATIN CAPITAL LETTER Z WITH HOOK
-0290 ; [.18A0.0020.0002] # LATIN SMALL LETTER Z WITH RETROFLEX HOOK
-1DBC ; [.18A0.0020.0014] # MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
-0291 ; [.18A4.0020.0002] # LATIN SMALL LETTER Z WITH CURL
-1DBD ; [.18A4.0020.0014] # MODIFIER LETTER SMALL Z WITH CURL
-0240 ; [.18A8.0020.0002] # LATIN SMALL LETTER Z WITH SWASH TAIL
-2C7F ; [.18A8.0020.0008] # LATIN CAPITAL LETTER Z WITH SWASH TAIL
-2C6C ; [.18AC.0020.0002] # LATIN SMALL LETTER Z WITH DESCENDER
-2C6B ; [.18AC.0020.0008] # LATIN CAPITAL LETTER Z WITH DESCENDER
-A763 ; [.18AD.0020.0002] # LATIN SMALL LETTER VISIGOTHIC Z
-A762 ; [.18AD.0020.0008] # LATIN CAPITAL LETTER VISIGOTHIC Z
-0292 ; [.18AE.0020.0002] # LATIN SMALL LETTER EZH
-01B7 ; [.18AE.0020.0008] # LATIN CAPITAL LETTER EZH
-1DBE ; [.18AE.0020.0014] # MODIFIER LETTER SMALL EZH
-01EF ; [.18AE.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
-01EE ; [.18AE.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
-1D23 ; [.18B2.0020.0002] # LATIN LETTER SMALL CAPITAL EZH
-01B9 ; [.18B3.0020.0002] # LATIN SMALL LETTER EZH REVERSED
-01B8 ; [.18B3.0020.0008] # LATIN CAPITAL LETTER EZH REVERSED
-1D9A ; [.18B7.0020.0002] # LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
-01BA ; [.18B8.0020.0002] # LATIN SMALL LETTER EZH WITH TAIL
-0293 ; [.18BC.0020.0002] # LATIN SMALL LETTER EZH WITH CURL
-00FE ; [.18C0.0020.0002] # LATIN SMALL LETTER THORN
-00DE ; [.18C0.0020.0008] # LATIN CAPITAL LETTER THORN
-A765 ; [.18C4.0020.0002] # LATIN SMALL LETTER THORN WITH STROKE
-A764 ; [.18C4.0020.0008] # LATIN CAPITAL LETTER THORN WITH STROKE
-A767 ; [.18C5.0020.0002] # LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
-A766 ; [.18C5.0020.0008] # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
-01BF ; [.18C6.0020.0002] # LATIN LETTER WYNN
-01F7 ; [.18C6.0020.0008] # LATIN CAPITAL LETTER WYNN
-A769 ; [.18CA.0020.0002] # LATIN SMALL LETTER VEND
-A768 ; [.18CA.0020.0008] # LATIN CAPITAL LETTER VEND
-A76B ; [.18CB.0020.0002] # LATIN SMALL LETTER ET
-A76A ; [.18CB.0020.0008] # LATIN CAPITAL LETTER ET
-A76D ; [.18CC.0020.0002] # LATIN SMALL LETTER IS
-A76C ; [.18CC.0020.0008] # LATIN CAPITAL LETTER IS
-A76F ; [.18CD.0020.0002] # LATIN SMALL LETTER CON
-1DD2 ; [.18CD.0020.0004] # COMBINING US ABOVE
-A76E ; [.18CD.0020.0008] # LATIN CAPITAL LETTER CON
-A770 ; [.18CD.0020.0014] # MODIFIER LETTER US
-A778 ; [.18CE.0020.0002] # LATIN SMALL LETTER UM
-01BB ; [.18CF.0020.0002] # LATIN LETTER TWO WITH STROKE
-A72B ; [.18D3.0020.0002] # LATIN SMALL LETTER TRESILLO
-A72A ; [.18D3.0020.0008] # LATIN CAPITAL LETTER TRESILLO
-A72D ; [.18D4.0020.0002] # LATIN SMALL LETTER CUATRILLO
-A72C ; [.18D4.0020.0008] # LATIN CAPITAL LETTER CUATRILLO
-A72F ; [.18D5.0020.0002] # LATIN SMALL LETTER CUATRILLO WITH COMMA
-A72E ; [.18D5.0020.0008] # LATIN CAPITAL LETTER CUATRILLO WITH COMMA
-01A8 ; [.18D6.0020.0002] # LATIN SMALL LETTER TONE TWO
-01A7 ; [.18D6.0020.0008] # LATIN CAPITAL LETTER TONE TWO
-01BD ; [.18DA.0020.0002] # LATIN SMALL LETTER TONE FIVE
-01BC ; [.18DA.0020.0008] # LATIN CAPITAL LETTER TONE FIVE
-0185 ; [.18DE.0020.0002] # LATIN SMALL LETTER TONE SIX
-0184 ; [.18DE.0020.0008] # LATIN CAPITAL LETTER TONE SIX
-0294 ; [.18E2.0020.0002] # LATIN LETTER GLOTTAL STOP
-0242 ; [.18E6.0020.0002] # LATIN SMALL LETTER GLOTTAL STOP
-0241 ; [.18E6.0020.0008] # LATIN CAPITAL LETTER GLOTTAL STOP
-02C0 ; [.18EA.0020.0002] # MODIFIER LETTER GLOTTAL STOP
-02BC ; [.18EB.0020.0002] # MODIFIER LETTER APOSTROPHE
-0149 ; [.18EB.0020.0004][.174B.0020.0004] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
-02EE ; [.18EC.0020.0002] # MODIFIER LETTER DOUBLE APOSTROPHE
-02BE ; [.18ED.0020.0002] # MODIFIER LETTER RIGHT HALF RING
-A723 ; [.18EE.0020.0002] # LATIN SMALL LETTER EGYPTOLOGICAL ALEF
-A722 ; [.18EE.0020.0008] # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
-A78C ; [.18EF.0020.0002] # LATIN SMALL LETTER SALTILLO
-A78B ; [.18EF.0020.0008] # LATIN CAPITAL LETTER SALTILLO
-0295 ; [.18F0.0020.0002] # LATIN LETTER PHARYNGEAL VOICED FRICATIVE
-02E4 ; [.18F0.0020.0014] # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
-02BF ; [.18F4.0020.0002] # MODIFIER LETTER LEFT HALF RING
-02C1 ; [.18F5.0020.0002] # MODIFIER LETTER REVERSED GLOTTAL STOP
-1D24 ; [.18F6.0020.0002] # LATIN LETTER VOICED LARYNGEAL SPIRANT
-1D25 ; [.18F7.0020.0002] # LATIN LETTER AIN
-1D5C ; [.18F7.0020.0014] # MODIFIER LETTER SMALL AIN
-A725 ; [.18F8.0020.0002] # LATIN SMALL LETTER EGYPTOLOGICAL AIN
-A724 ; [.18F8.0020.0008] # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
-02A1 ; [.18F9.0020.0002] # LATIN LETTER GLOTTAL STOP WITH STROKE
-02A2 ; [.18FD.0020.0002] # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
-0296 ; [.1901.0020.0002] # LATIN LETTER INVERTED GLOTTAL STOP
-01C0 ; [.1905.0020.0002] # LATIN LETTER DENTAL CLICK
-01C1 ; [.1909.0020.0002] # LATIN LETTER LATERAL CLICK
-01C2 ; [.190D.0020.0002] # LATIN LETTER ALVEOLAR CLICK
-01C3 ; [.1911.0020.0002] # LATIN LETTER RETROFLEX CLICK
-0297 ; [.1915.0020.0002] # LATIN LETTER STRETCHED C
-0298 ; [.1919.0020.0002] # LATIN LETTER BILABIAL CLICK
-02AC ; [.191D.0020.0002] # LATIN LETTER BILABIAL PERCUSSIVE
-02AD ; [.1921.0020.0002] # LATIN LETTER BIDENTAL PERCUSSIVE
-03B1 ; [.1925.0020.0002] # GREEK SMALL LETTER ALPHA
-1D6C2 ; [.1925.0020.0005] # MATHEMATICAL BOLD SMALL ALPHA
-1D6FC ; [.1925.0020.0005] # MATHEMATICAL ITALIC SMALL ALPHA
-1D736 ; [.1925.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ALPHA
-1D770 ; [.1925.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
-1D7AA ; [.1925.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
-0391 ; [.1925.0020.0008] # GREEK CAPITAL LETTER ALPHA
-1D6A8 ; [.1925.0020.000B] # MATHEMATICAL BOLD CAPITAL ALPHA
-1D6E2 ; [.1925.0020.000B] # MATHEMATICAL ITALIC CAPITAL ALPHA
-1D71C ; [.1925.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
-1D756 ; [.1925.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
-1D790 ; [.1925.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
-1F00 ; [.1925.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER ALPHA WITH PSILI
-1F08 ; [.1925.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI
-1F04 ; [.1925.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
-1F0C ; [.1925.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
-1F84 ; [.1925.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F8C ; [.1925.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F02 ; [.1925.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
-1F0A ; [.1925.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
-1F82 ; [.1925.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F8A ; [.1925.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F06 ; [.1925.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F0E ; [.1925.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F86 ; [.1925.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F8E ; [.1925.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F80 ; [.1925.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
-1F88 ; [.1925.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
-1F01 ; [.1925.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER ALPHA WITH DASIA
-1F09 ; [.1925.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA
-1F05 ; [.1925.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
-1F0D ; [.1925.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
-1F85 ; [.1925.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F8D ; [.1925.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F03 ; [.1925.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
-1F0B ; [.1925.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
-1F83 ; [.1925.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F8B ; [.1925.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F07 ; [.1925.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F0F ; [.1925.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F87 ; [.1925.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F8F ; [.1925.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1F81 ; [.1925.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
-1F89 ; [.1925.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
-03AC ; [.1925.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH TONOS
-1F71 ; [.1925.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH OXIA
-0386 ; [.1925.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH TONOS
-1FBB ; [.1925.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH OXIA
-1FB4 ; [.1925.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
-1F70 ; [.1925.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH VARIA
-1FBA ; [.1925.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH VARIA
-1FB2 ; [.1925.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
-1FB0 ; [.1925.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER ALPHA WITH VRACHY
-1FB8 ; [.1925.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER ALPHA WITH VRACHY
-1FB6 ; [.1925.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
-1FB7 ; [.1925.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FB1 ; [.1925.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER ALPHA WITH MACRON
-1FB9 ; [.1925.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER ALPHA WITH MACRON
-1FB3 ; [.1925.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
-1FBC ; [.1925.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
-03B2 ; [.1926.0020.0002] # GREEK SMALL LETTER BETA
-03D0 ; [.1926.0020.0004] # GREEK BETA SYMBOL
-1D6C3 ; [.1926.0020.0005] # MATHEMATICAL BOLD SMALL BETA
-1D6FD ; [.1926.0020.0005] # MATHEMATICAL ITALIC SMALL BETA
-1D737 ; [.1926.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL BETA
-1D771 ; [.1926.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL BETA
-1D7AB ; [.1926.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
-0392 ; [.1926.0020.0008] # GREEK CAPITAL LETTER BETA
-1D6A9 ; [.1926.0020.000B] # MATHEMATICAL BOLD CAPITAL BETA
-1D6E3 ; [.1926.0020.000B] # MATHEMATICAL ITALIC CAPITAL BETA
-1D71D ; [.1926.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL BETA
-1D757 ; [.1926.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
-1D791 ; [.1926.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
-1D5D ; [.1926.0020.0014] # MODIFIER LETTER SMALL BETA
-1D66 ; [.1926.0020.0015] # GREEK SUBSCRIPT SMALL LETTER BETA
-03B3 ; [.1927.0020.0002] # GREEK SMALL LETTER GAMMA
-213D ; [.1927.0020.0005] # DOUBLE-STRUCK SMALL GAMMA
-1D6C4 ; [.1927.0020.0005] # MATHEMATICAL BOLD SMALL GAMMA
-1D6FE ; [.1927.0020.0005] # MATHEMATICAL ITALIC SMALL GAMMA
-1D738 ; [.1927.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL GAMMA
-1D772 ; [.1927.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
-1D7AC ; [.1927.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
-0393 ; [.1927.0020.0008] # GREEK CAPITAL LETTER GAMMA
-213E ; [.1927.0020.000B] # DOUBLE-STRUCK CAPITAL GAMMA
-1D6AA ; [.1927.0020.000B] # MATHEMATICAL BOLD CAPITAL GAMMA
-1D6E4 ; [.1927.0020.000B] # MATHEMATICAL ITALIC CAPITAL GAMMA
-1D71E ; [.1927.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
-1D758 ; [.1927.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
-1D792 ; [.1927.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
-1D5E ; [.1927.0020.0014] # MODIFIER LETTER SMALL GREEK GAMMA
-1D67 ; [.1927.0020.0015] # GREEK SUBSCRIPT SMALL LETTER GAMMA
-1D26 ; [.1928.0020.0002] # GREEK LETTER SMALL CAPITAL GAMMA
-03B4 ; [.1929.0020.0002] # GREEK SMALL LETTER DELTA
-1D6C5 ; [.1929.0020.0005] # MATHEMATICAL BOLD SMALL DELTA
-1D6FF ; [.1929.0020.0005] # MATHEMATICAL ITALIC SMALL DELTA
-1D739 ; [.1929.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL DELTA
-1D773 ; [.1929.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
-1D7AD ; [.1929.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
-0394 ; [.1929.0020.0008] # GREEK CAPITAL LETTER DELTA
-1D6AB ; [.1929.0020.000B] # MATHEMATICAL BOLD CAPITAL DELTA
-1D6E5 ; [.1929.0020.000B] # MATHEMATICAL ITALIC CAPITAL DELTA
-1D71F ; [.1929.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL DELTA
-1D759 ; [.1929.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
-1D793 ; [.1929.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
-1D5F ; [.1929.0020.0014] # MODIFIER LETTER SMALL DELTA
-03B5 ; [.192A.0020.0002] # GREEK SMALL LETTER EPSILON
-03F5 ; [.192A.0020.0004] # GREEK LUNATE EPSILON SYMBOL
-1D6C6 ; [.192A.0020.0005] # MATHEMATICAL BOLD SMALL EPSILON
-1D6DC ; [.192A.0020.0005] # MATHEMATICAL BOLD EPSILON SYMBOL
-1D700 ; [.192A.0020.0005] # MATHEMATICAL ITALIC SMALL EPSILON
-1D716 ; [.192A.0020.0005] # MATHEMATICAL ITALIC EPSILON SYMBOL
-1D73A ; [.192A.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL EPSILON
-1D750 ; [.192A.0020.0005] # MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
-1D774 ; [.192A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
-1D78A ; [.192A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
-1D7AE ; [.192A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
-1D7C4 ; [.192A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
-0395 ; [.192A.0020.0008] # GREEK CAPITAL LETTER EPSILON
-1D6AC ; [.192A.0020.000B] # MATHEMATICAL BOLD CAPITAL EPSILON
-1D6E6 ; [.192A.0020.000B] # MATHEMATICAL ITALIC CAPITAL EPSILON
-1D720 ; [.192A.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
-1D75A ; [.192A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
-1D794 ; [.192A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
-1F10 ; [.192A.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER EPSILON WITH PSILI
-1F18 ; [.192A.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI
-1F14 ; [.192A.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
-1F1C ; [.192A.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
-1F12 ; [.192A.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
-1F1A ; [.192A.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
-1F11 ; [.192A.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER EPSILON WITH DASIA
-1F19 ; [.192A.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA
-1F15 ; [.192A.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
-1F1D ; [.192A.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
-1F13 ; [.192A.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
-1F1B ; [.192A.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
-03AD ; [.192A.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH TONOS
-1F73 ; [.192A.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH OXIA
-0388 ; [.192A.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH TONOS
-1FC9 ; [.192A.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH OXIA
-1F72 ; [.192A.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH VARIA
-1FC8 ; [.192A.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH VARIA
-03DD ; [.192B.0020.0002] # GREEK SMALL LETTER DIGAMMA
-1D7CB ; [.192B.0020.0005] # MATHEMATICAL BOLD SMALL DIGAMMA
-03DC ; [.192B.0020.0008] # GREEK LETTER DIGAMMA
-1D7CA ; [.192B.0020.000B] # MATHEMATICAL BOLD CAPITAL DIGAMMA
-0377 ; [.192C.0020.0002] # GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
-0376 ; [.192C.0020.0008] # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
-03DB ; [.192D.0020.0002] # GREEK SMALL LETTER STIGMA
-03DA ; [.192D.0020.0008] # GREEK LETTER STIGMA
-03B6 ; [.192E.0020.0002] # GREEK SMALL LETTER ZETA
-1D6C7 ; [.192E.0020.0005] # MATHEMATICAL BOLD SMALL ZETA
-1D701 ; [.192E.0020.0005] # MATHEMATICAL ITALIC SMALL ZETA
-1D73B ; [.192E.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ZETA
-1D775 ; [.192E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
-1D7AF ; [.192E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
-0396 ; [.192E.0020.0008] # GREEK CAPITAL LETTER ZETA
-1D6AD ; [.192E.0020.000B] # MATHEMATICAL BOLD CAPITAL ZETA
-1D6E7 ; [.192E.0020.000B] # MATHEMATICAL ITALIC CAPITAL ZETA
-1D721 ; [.192E.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ZETA
-1D75B ; [.192E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
-1D795 ; [.192E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
-0371 ; [.192F.0020.0002] # GREEK SMALL LETTER HETA
-0370 ; [.192F.0020.0008] # GREEK CAPITAL LETTER HETA
-03B7 ; [.1930.0020.0002] # GREEK SMALL LETTER ETA
-1D6C8 ; [.1930.0020.0005] # MATHEMATICAL BOLD SMALL ETA
-1D702 ; [.1930.0020.0005] # MATHEMATICAL ITALIC SMALL ETA
-1D73C ; [.1930.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ETA
-1D776 ; [.1930.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ETA
-1D7B0 ; [.1930.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
-0397 ; [.1930.0020.0008] # GREEK CAPITAL LETTER ETA
-1D6AE ; [.1930.0020.000B] # MATHEMATICAL BOLD CAPITAL ETA
-1D6E8 ; [.1930.0020.000B] # MATHEMATICAL ITALIC CAPITAL ETA
-1D722 ; [.1930.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ETA
-1D75C ; [.1930.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
-1D796 ; [.1930.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
-1F20 ; [.1930.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER ETA WITH PSILI
-1F28 ; [.1930.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER ETA WITH PSILI
-1F24 ; [.1930.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
-1F2C ; [.1930.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
-1F94 ; [.1930.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F9C ; [.1930.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F22 ; [.1930.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
-1F2A ; [.1930.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
-1F92 ; [.1930.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F9A ; [.1930.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F26 ; [.1930.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
-1F2E ; [.1930.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
-1F96 ; [.1930.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F9E ; [.1930.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F90 ; [.1930.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
-1F98 ; [.1930.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
-1F21 ; [.1930.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER ETA WITH DASIA
-1F29 ; [.1930.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER ETA WITH DASIA
-1F25 ; [.1930.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
-1F2D ; [.1930.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
-1F95 ; [.1930.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F9D ; [.1930.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F23 ; [.1930.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
-1F2B ; [.1930.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
-1F93 ; [.1930.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F9B ; [.1930.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F27 ; [.1930.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
-1F2F ; [.1930.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
-1F97 ; [.1930.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F9F ; [.1930.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1F91 ; [.1930.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
-1F99 ; [.1930.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
-03AE ; [.1930.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH TONOS
-1F75 ; [.1930.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH OXIA
-0389 ; [.1930.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH TONOS
-1FCB ; [.1930.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH OXIA
-1FC4 ; [.1930.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
-1F74 ; [.1930.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH VARIA
-1FCA ; [.1930.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH VARIA
-1FC2 ; [.1930.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
-1FC6 ; [.1930.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH PERISPOMENI
-1FC7 ; [.1930.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FC3 ; [.1930.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
-1FCC ; [.1930.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
-03B8 ; [.1931.0020.0002] # GREEK SMALL LETTER THETA
-03D1 ; [.1931.0020.0004] # GREEK THETA SYMBOL
-1D6C9 ; [.1931.0020.0005] # MATHEMATICAL BOLD SMALL THETA
-1D6DD ; [.1931.0020.0005] # MATHEMATICAL BOLD THETA SYMBOL
-1D703 ; [.1931.0020.0005] # MATHEMATICAL ITALIC SMALL THETA
-1D717 ; [.1931.0020.0005] # MATHEMATICAL ITALIC THETA SYMBOL
-1D73D ; [.1931.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL THETA
-1D751 ; [.1931.0020.0005] # MATHEMATICAL BOLD ITALIC THETA SYMBOL
-1D777 ; [.1931.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL THETA
-1D78B ; [.1931.0020.0005] # MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
-1D7B1 ; [.1931.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
-1D7C5 ; [.1931.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
-0398 ; [.1931.0020.0008] # GREEK CAPITAL LETTER THETA
-03F4 ; [.1931.0020.000A] # GREEK CAPITAL THETA SYMBOL
-1D6AF ; [.1931.0020.000B] # MATHEMATICAL BOLD CAPITAL THETA
-1D6B9 ; [.1931.0020.000B] # MATHEMATICAL BOLD CAPITAL THETA SYMBOL
-1D6E9 ; [.1931.0020.000B] # MATHEMATICAL ITALIC CAPITAL THETA
-1D6F3 ; [.1931.0020.000B] # MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
-1D723 ; [.1931.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL THETA
-1D72D ; [.1931.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
-1D75D ; [.1931.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
-1D767 ; [.1931.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
-1D797 ; [.1931.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
-1D7A1 ; [.1931.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
-1DBF ; [.1931.0020.0014] # MODIFIER LETTER SMALL THETA
-03B9 ; [.1932.0020.0002] # GREEK SMALL LETTER IOTA
-1FBE ; [.1932.0020.0002] # GREEK PROSGEGRAMMENI
-037A ; [.1932.0020.0004] # GREEK YPOGEGRAMMENI
-1D6CA ; [.1932.0020.0005] # MATHEMATICAL BOLD SMALL IOTA
-1D704 ; [.1932.0020.0005] # MATHEMATICAL ITALIC SMALL IOTA
-1D73E ; [.1932.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL IOTA
-1D778 ; [.1932.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
-1D7B2 ; [.1932.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
-0399 ; [.1932.0020.0008] # GREEK CAPITAL LETTER IOTA
-1D6B0 ; [.1932.0020.000B] # MATHEMATICAL BOLD CAPITAL IOTA
-1D6EA ; [.1932.0020.000B] # MATHEMATICAL ITALIC CAPITAL IOTA
-1D724 ; [.1932.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL IOTA
-1D75E ; [.1932.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
-1D798 ; [.1932.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
-1F30 ; [.1932.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER IOTA WITH PSILI
-1F38 ; [.1932.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI
-1F34 ; [.1932.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
-1F3C ; [.1932.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
-1F32 ; [.1932.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
-1F3A ; [.1932.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
-1F36 ; [.1932.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F3E ; [.1932.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F31 ; [.1932.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER IOTA WITH DASIA
-1F39 ; [.1932.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA
-1F35 ; [.1932.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
-1F3D ; [.1932.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
-1F33 ; [.1932.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
-1F3B ; [.1932.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
-1F37 ; [.1932.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
-1F3F ; [.1932.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
-03AF ; [.1932.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH TONOS
-1F77 ; [.1932.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH OXIA
-038A ; [.1932.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH TONOS
-1FDB ; [.1932.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH OXIA
-1F76 ; [.1932.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH VARIA
-1FDA ; [.1932.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH VARIA
-1FD0 ; [.1932.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER IOTA WITH VRACHY
-1FD8 ; [.1932.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER IOTA WITH VRACHY
-1FD6 ; [.1932.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH PERISPOMENI
-03CA ; [.1932.0020.0002][.0000.002B.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA
-03AA ; [.1932.0020.0008][.0000.002B.0002] # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-0390 ; [.1932.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-1FD3 ; [.1932.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
-1FD2 ; [.1932.0020.0002][.0000.002B.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
-1FD7 ; [.1932.0020.0002][.0000.002B.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
-1FD1 ; [.1932.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER IOTA WITH MACRON
-1FD9 ; [.1932.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER IOTA WITH MACRON
-03F3 ; [.1933.0020.0002] # GREEK LETTER YOT
-03BA ; [.1934.0020.0002] # GREEK SMALL LETTER KAPPA
-03F0 ; [.1934.0020.0004] # GREEK KAPPA SYMBOL
-1D6CB ; [.1934.0020.0005] # MATHEMATICAL BOLD SMALL KAPPA
-1D6DE ; [.1934.0020.0005] # MATHEMATICAL BOLD KAPPA SYMBOL
-1D705 ; [.1934.0020.0005] # MATHEMATICAL ITALIC SMALL KAPPA
-1D718 ; [.1934.0020.0005] # MATHEMATICAL ITALIC KAPPA SYMBOL
-1D73F ; [.1934.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL KAPPA
-1D752 ; [.1934.0020.0005] # MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
-1D779 ; [.1934.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
-1D78C ; [.1934.0020.0005] # MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
-1D7B3 ; [.1934.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
-1D7C6 ; [.1934.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
-039A ; [.1934.0020.0008] # GREEK CAPITAL LETTER KAPPA
-1D6B1 ; [.1934.0020.000B] # MATHEMATICAL BOLD CAPITAL KAPPA
-1D6EB ; [.1934.0020.000B] # MATHEMATICAL ITALIC CAPITAL KAPPA
-1D725 ; [.1934.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
-1D75F ; [.1934.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
-1D799 ; [.1934.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
-03D7 ; [.1934.0020.0004][.1925.0020.0004][.1932.0020.0004] # GREEK KAI SYMBOL
-03CF ; [.1934.0020.000A][.1925.0020.0004][.1932.0020.0004] # GREEK CAPITAL KAI SYMBOL
-03BB ; [.1935.0020.0002] # GREEK SMALL LETTER LAMDA
-1D6CC ; [.1935.0020.0005] # MATHEMATICAL BOLD SMALL LAMDA
-1D706 ; [.1935.0020.0005] # MATHEMATICAL ITALIC SMALL LAMDA
-1D740 ; [.1935.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL LAMDA
-1D77A ; [.1935.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
-1D7B4 ; [.1935.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
-039B ; [.1935.0020.0008] # GREEK CAPITAL LETTER LAMDA
-1D6B2 ; [.1935.0020.000B] # MATHEMATICAL BOLD CAPITAL LAMDA
-1D6EC ; [.1935.0020.000B] # MATHEMATICAL ITALIC CAPITAL LAMDA
-1D726 ; [.1935.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
-1D760 ; [.1935.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
-1D79A ; [.1935.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
-1D27 ; [.1936.0020.0002] # GREEK LETTER SMALL CAPITAL LAMDA
-03BC ; [.1937.0020.0002] # GREEK SMALL LETTER MU
-00B5 ; [.1937.0020.0004] # MICRO SIGN
-1D6CD ; [.1937.0020.0005] # MATHEMATICAL BOLD SMALL MU
-1D707 ; [.1937.0020.0005] # MATHEMATICAL ITALIC SMALL MU
-1D741 ; [.1937.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL MU
-1D77B ; [.1937.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL MU
-1D7B5 ; [.1937.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
-039C ; [.1937.0020.0008] # GREEK CAPITAL LETTER MU
-1D6B3 ; [.1937.0020.000B] # MATHEMATICAL BOLD CAPITAL MU
-1D6ED ; [.1937.0020.000B] # MATHEMATICAL ITALIC CAPITAL MU
-1D727 ; [.1937.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL MU
-1D761 ; [.1937.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
-1D79B ; [.1937.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
-3382 ; [.1937.0020.001C][.15EB.0020.001D] # SQUARE MU A
-338C ; [.1937.0020.001C][.1680.0020.001D] # SQUARE MU F
-338D ; [.1937.0020.001C][.168D.0020.001C] # SQUARE MU G
-3395 ; [.1937.0020.001C][.170D.0020.001C] # SQUARE MU L
-339B ; [.1937.0020.001C][.173D.0020.001C] # SQUARE MU M
-33B2 ; [.1937.0020.001C][.17EF.0020.001C] # SQUARE MU S
-33B6 ; [.1937.0020.001C][.185B.0020.001D] # SQUARE MU V
-33BC ; [.1937.0020.001C][.186D.0020.001D] # SQUARE MU W
-03BD ; [.1938.0020.0002] # GREEK SMALL LETTER NU
-1D6CE ; [.1938.0020.0005] # MATHEMATICAL BOLD SMALL NU
-1D708 ; [.1938.0020.0005] # MATHEMATICAL ITALIC SMALL NU
-1D742 ; [.1938.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL NU
-1D77C ; [.1938.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL NU
-1D7B6 ; [.1938.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
-039D ; [.1938.0020.0008] # GREEK CAPITAL LETTER NU
-1D6B4 ; [.1938.0020.000B] # MATHEMATICAL BOLD CAPITAL NU
-1D6EE ; [.1938.0020.000B] # MATHEMATICAL ITALIC CAPITAL NU
-1D728 ; [.1938.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL NU
-1D762 ; [.1938.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
-1D79C ; [.1938.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
-03BE ; [.1939.0020.0002] # GREEK SMALL LETTER XI
-1D6CF ; [.1939.0020.0005] # MATHEMATICAL BOLD SMALL XI
-1D709 ; [.1939.0020.0005] # MATHEMATICAL ITALIC SMALL XI
-1D743 ; [.1939.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL XI
-1D77D ; [.1939.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL XI
-1D7B7 ; [.1939.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
-039E ; [.1939.0020.0008] # GREEK CAPITAL LETTER XI
-1D6B5 ; [.1939.0020.000B] # MATHEMATICAL BOLD CAPITAL XI
-1D6EF ; [.1939.0020.000B] # MATHEMATICAL ITALIC CAPITAL XI
-1D729 ; [.1939.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL XI
-1D763 ; [.1939.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
-1D79D ; [.1939.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
-03BF ; [.193A.0020.0002] # GREEK SMALL LETTER OMICRON
-1D6D0 ; [.193A.0020.0005] # MATHEMATICAL BOLD SMALL OMICRON
-1D70A ; [.193A.0020.0005] # MATHEMATICAL ITALIC SMALL OMICRON
-1D744 ; [.193A.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL OMICRON
-1D77E ; [.193A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
-1D7B8 ; [.193A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
-039F ; [.193A.0020.0008] # GREEK CAPITAL LETTER OMICRON
-1D6B6 ; [.193A.0020.000B] # MATHEMATICAL BOLD CAPITAL OMICRON
-1D6F0 ; [.193A.0020.000B] # MATHEMATICAL ITALIC CAPITAL OMICRON
-1D72A ; [.193A.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
-1D764 ; [.193A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
-1D79E ; [.193A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
-1F40 ; [.193A.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER OMICRON WITH PSILI
-1F48 ; [.193A.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI
-1F44 ; [.193A.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
-1F4C ; [.193A.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
-1F42 ; [.193A.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
-1F4A ; [.193A.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
-1F41 ; [.193A.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER OMICRON WITH DASIA
-1F49 ; [.193A.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA
-1F45 ; [.193A.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
-1F4D ; [.193A.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
-1F43 ; [.193A.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
-1F4B ; [.193A.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
-03CC ; [.193A.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH TONOS
-1F79 ; [.193A.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH OXIA
-038C ; [.193A.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH TONOS
-1FF9 ; [.193A.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH OXIA
-1F78 ; [.193A.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH VARIA
-1FF8 ; [.193A.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH VARIA
-03C0 ; [.193B.0020.0002] # GREEK SMALL LETTER PI
-03D6 ; [.193B.0020.0004] # GREEK PI SYMBOL
-213C ; [.193B.0020.0005] # DOUBLE-STRUCK SMALL PI
-1D6D1 ; [.193B.0020.0005] # MATHEMATICAL BOLD SMALL PI
-1D6E1 ; [.193B.0020.0005] # MATHEMATICAL BOLD PI SYMBOL
-1D70B ; [.193B.0020.0005] # MATHEMATICAL ITALIC SMALL PI
-1D71B ; [.193B.0020.0005] # MATHEMATICAL ITALIC PI SYMBOL
-1D745 ; [.193B.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PI
-1D755 ; [.193B.0020.0005] # MATHEMATICAL BOLD ITALIC PI SYMBOL
-1D77F ; [.193B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PI
-1D78F ; [.193B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
-1D7B9 ; [.193B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
-1D7C9 ; [.193B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
-03A0 ; [.193B.0020.0008] # GREEK CAPITAL LETTER PI
-213F ; [.193B.0020.000B] # DOUBLE-STRUCK CAPITAL PI
-1D6B7 ; [.193B.0020.000B] # MATHEMATICAL BOLD CAPITAL PI
-1D6F1 ; [.193B.0020.000B] # MATHEMATICAL ITALIC CAPITAL PI
-1D72B ; [.193B.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PI
-1D765 ; [.193B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
-1D79F ; [.193B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
-1D28 ; [.193C.0020.0002] # GREEK LETTER SMALL CAPITAL PI
-03FB ; [.193D.0020.0002] # GREEK SMALL LETTER SAN
-03FA ; [.193D.0020.0008] # GREEK CAPITAL LETTER SAN
-03DF ; [.193E.0020.0002] # GREEK SMALL LETTER KOPPA
-03DE ; [.193E.0020.0008] # GREEK LETTER KOPPA
-03D9 ; [.193F.0020.0002] # GREEK SMALL LETTER ARCHAIC KOPPA
-03D8 ; [.193F.0020.0008] # GREEK LETTER ARCHAIC KOPPA
-03C1 ; [.1940.0020.0002] # GREEK SMALL LETTER RHO
-03F1 ; [.1940.0020.0004] # GREEK RHO SYMBOL
-1D6D2 ; [.1940.0020.0005] # MATHEMATICAL BOLD SMALL RHO
-1D6E0 ; [.1940.0020.0005] # MATHEMATICAL BOLD RHO SYMBOL
-1D70C ; [.1940.0020.0005] # MATHEMATICAL ITALIC SMALL RHO
-1D71A ; [.1940.0020.0005] # MATHEMATICAL ITALIC RHO SYMBOL
-1D746 ; [.1940.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL RHO
-1D754 ; [.1940.0020.0005] # MATHEMATICAL BOLD ITALIC RHO SYMBOL
-1D780 ; [.1940.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL RHO
-1D78E ; [.1940.0020.0005] # MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
-1D7BA ; [.1940.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
-1D7C8 ; [.1940.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
-03A1 ; [.1940.0020.0008] # GREEK CAPITAL LETTER RHO
-1D6B8 ; [.1940.0020.000B] # MATHEMATICAL BOLD CAPITAL RHO
-1D6F2 ; [.1940.0020.000B] # MATHEMATICAL ITALIC CAPITAL RHO
-1D72C ; [.1940.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL RHO
-1D766 ; [.1940.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
-1D7A0 ; [.1940.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
-1D68 ; [.1940.0020.0015] # GREEK SUBSCRIPT SMALL LETTER RHO
-1FE4 ; [.1940.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER RHO WITH PSILI
-1FE5 ; [.1940.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER RHO WITH DASIA
-1FEC ; [.1940.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER RHO WITH DASIA
-1D29 ; [.1941.0020.0002] # GREEK LETTER SMALL CAPITAL RHO
-03FC ; [.1942.0020.0002] # GREEK RHO WITH STROKE SYMBOL
-03C3 ; [.1943.0020.0002] # GREEK SMALL LETTER SIGMA
-03F2 ; [.1943.0020.0004] # GREEK LUNATE SIGMA SYMBOL
-1D6D3 ; [.1943.0020.0005] # MATHEMATICAL BOLD SMALL FINAL SIGMA
-1D6D4 ; [.1943.0020.0005] # MATHEMATICAL BOLD SMALL SIGMA
-1D70D ; [.1943.0020.0005] # MATHEMATICAL ITALIC SMALL FINAL SIGMA
-1D70E ; [.1943.0020.0005] # MATHEMATICAL ITALIC SMALL SIGMA
-1D747 ; [.1943.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA
-1D748 ; [.1943.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL SIGMA
-1D781 ; [.1943.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA
-1D782 ; [.1943.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
-1D7BB ; [.1943.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA
-1D7BC ; [.1943.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
-03A3 ; [.1943.0020.0008] # GREEK CAPITAL LETTER SIGMA
-03F9 ; [.1943.0020.000A] # GREEK CAPITAL LUNATE SIGMA SYMBOL
-1D6BA ; [.1943.0020.000B] # MATHEMATICAL BOLD CAPITAL SIGMA
-1D6F4 ; [.1943.0020.000B] # MATHEMATICAL ITALIC CAPITAL SIGMA
-1D72E ; [.1943.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
-1D768 ; [.1943.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
-1D7A2 ; [.1943.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
-03C2 ; [.1943.0020.0019] # GREEK SMALL LETTER FINAL SIGMA
-037C ; [.1944.0020.0002] # GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
-03FE ; [.1944.0020.0008] # GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
-037B ; [.1945.0020.0002] # GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
-03FD ; [.1945.0020.0008] # GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
-037D ; [.1946.0020.0002] # GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
-03FF ; [.1946.0020.0008] # GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
-03C4 ; [.1947.0020.0002] # GREEK SMALL LETTER TAU
-1D6D5 ; [.1947.0020.0005] # MATHEMATICAL BOLD SMALL TAU
-1D70F ; [.1947.0020.0005] # MATHEMATICAL ITALIC SMALL TAU
-1D749 ; [.1947.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL TAU
-1D783 ; [.1947.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL TAU
-1D7BD ; [.1947.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
-03A4 ; [.1947.0020.0008] # GREEK CAPITAL LETTER TAU
-1D6BB ; [.1947.0020.000B] # MATHEMATICAL BOLD CAPITAL TAU
-1D6F5 ; [.1947.0020.000B] # MATHEMATICAL ITALIC CAPITAL TAU
-1D72F ; [.1947.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL TAU
-1D769 ; [.1947.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
-1D7A3 ; [.1947.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
-03C5 ; [.1948.0020.0002] # GREEK SMALL LETTER UPSILON
-1D6D6 ; [.1948.0020.0005] # MATHEMATICAL BOLD SMALL UPSILON
-1D710 ; [.1948.0020.0005] # MATHEMATICAL ITALIC SMALL UPSILON
-1D74A ; [.1948.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL UPSILON
-1D784 ; [.1948.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
-1D7BE ; [.1948.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
-03A5 ; [.1948.0020.0008] # GREEK CAPITAL LETTER UPSILON
-03D2 ; [.1948.0020.000A] # GREEK UPSILON WITH HOOK SYMBOL
-1D6BC ; [.1948.0020.000B] # MATHEMATICAL BOLD CAPITAL UPSILON
-1D6F6 ; [.1948.0020.000B] # MATHEMATICAL ITALIC CAPITAL UPSILON
-1D730 ; [.1948.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
-1D76A ; [.1948.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
-1D7A4 ; [.1948.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
-1F50 ; [.1948.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER UPSILON WITH PSILI
-1F54 ; [.1948.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
-1F52 ; [.1948.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
-1F56 ; [.1948.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
-1F51 ; [.1948.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER UPSILON WITH DASIA
-1F59 ; [.1948.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA
-1F55 ; [.1948.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
-1F5D ; [.1948.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
-1F53 ; [.1948.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
-1F5B ; [.1948.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
-1F57 ; [.1948.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F5F ; [.1948.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
-03CD ; [.1948.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH TONOS
-1F7B ; [.1948.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH OXIA
-038E ; [.1948.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH TONOS
-1FEB ; [.1948.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH OXIA
-03D3 ; [.1948.0020.000A][.0000.0024.0002] # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
-1F7A ; [.1948.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH VARIA
-1FEA ; [.1948.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER UPSILON WITH VARIA
-1FE0 ; [.1948.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER UPSILON WITH VRACHY
-1FE8 ; [.1948.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER UPSILON WITH VRACHY
-1FE6 ; [.1948.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
-03CB ; [.1948.0020.0002][.0000.002B.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-03AB ; [.1948.0020.0008][.0000.002B.0002] # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-03D4 ; [.1948.0020.000A][.0000.002B.0002] # GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
-03B0 ; [.1948.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-1FE3 ; [.1948.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
-1FE2 ; [.1948.0020.0002][.0000.002B.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
-1FE7 ; [.1948.0020.0002][.0000.002B.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
-1FE1 ; [.1948.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER UPSILON WITH MACRON
-1FE9 ; [.1948.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER UPSILON WITH MACRON
-03C6 ; [.1949.0020.0002] # GREEK SMALL LETTER PHI
-03D5 ; [.1949.0020.0004] # GREEK PHI SYMBOL
-1D6D7 ; [.1949.0020.0005] # MATHEMATICAL BOLD SMALL PHI
-1D6DF ; [.1949.0020.0005] # MATHEMATICAL BOLD PHI SYMBOL
-1D711 ; [.1949.0020.0005] # MATHEMATICAL ITALIC SMALL PHI
-1D719 ; [.1949.0020.0005] # MATHEMATICAL ITALIC PHI SYMBOL
-1D74B ; [.1949.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PHI
-1D753 ; [.1949.0020.0005] # MATHEMATICAL BOLD ITALIC PHI SYMBOL
-1D785 ; [.1949.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PHI
-1D78D ; [.1949.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
-1D7BF ; [.1949.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
-1D7C7 ; [.1949.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
-03A6 ; [.1949.0020.0008] # GREEK CAPITAL LETTER PHI
-1D6BD ; [.1949.0020.000B] # MATHEMATICAL BOLD CAPITAL PHI
-1D6F7 ; [.1949.0020.000B] # MATHEMATICAL ITALIC CAPITAL PHI
-1D731 ; [.1949.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PHI
-1D76B ; [.1949.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
-1D7A5 ; [.1949.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
-1D60 ; [.1949.0020.0014] # MODIFIER LETTER SMALL GREEK PHI
-1D69 ; [.1949.0020.0015] # GREEK SUBSCRIPT SMALL LETTER PHI
-03C7 ; [.194A.0020.0002] # GREEK SMALL LETTER CHI
-1D6D8 ; [.194A.0020.0005] # MATHEMATICAL BOLD SMALL CHI
-1D712 ; [.194A.0020.0005] # MATHEMATICAL ITALIC SMALL CHI
-1D74C ; [.194A.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL CHI
-1D786 ; [.194A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL CHI
-1D7C0 ; [.194A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
-03A7 ; [.194A.0020.0008] # GREEK CAPITAL LETTER CHI
-1D6BE ; [.194A.0020.000B] # MATHEMATICAL BOLD CAPITAL CHI
-1D6F8 ; [.194A.0020.000B] # MATHEMATICAL ITALIC CAPITAL CHI
-1D732 ; [.194A.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL CHI
-1D76C ; [.194A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
-1D7A6 ; [.194A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
-1D61 ; [.194A.0020.0014] # MODIFIER LETTER SMALL CHI
-1D6A ; [.194A.0020.0015] # GREEK SUBSCRIPT SMALL LETTER CHI
-03C8 ; [.194B.0020.0002] # GREEK SMALL LETTER PSI
-1D6D9 ; [.194B.0020.0005] # MATHEMATICAL BOLD SMALL PSI
-1D713 ; [.194B.0020.0005] # MATHEMATICAL ITALIC SMALL PSI
-1D74D ; [.194B.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PSI
-1D787 ; [.194B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PSI
-1D7C1 ; [.194B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
-03A8 ; [.194B.0020.0008] # GREEK CAPITAL LETTER PSI
-1D6BF ; [.194B.0020.000B] # MATHEMATICAL BOLD CAPITAL PSI
-1D6F9 ; [.194B.0020.000B] # MATHEMATICAL ITALIC CAPITAL PSI
-1D733 ; [.194B.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PSI
-1D76D ; [.194B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
-1D7A7 ; [.194B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
-1D2A ; [.194C.0020.0002] # GREEK LETTER SMALL CAPITAL PSI
-03C9 ; [.194D.0020.0002] # GREEK SMALL LETTER OMEGA
-1D6DA ; [.194D.0020.0005] # MATHEMATICAL BOLD SMALL OMEGA
-1D714 ; [.194D.0020.0005] # MATHEMATICAL ITALIC SMALL OMEGA
-1D74E ; [.194D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL OMEGA
-1D788 ; [.194D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
-1D7C2 ; [.194D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
-03A9 ; [.194D.0020.0008] # GREEK CAPITAL LETTER OMEGA
-2126 ; [.194D.0020.0008] # OHM SIGN
-1D6C0 ; [.194D.0020.000B] # MATHEMATICAL BOLD CAPITAL OMEGA
-1D6FA ; [.194D.0020.000B] # MATHEMATICAL ITALIC CAPITAL OMEGA
-1D734 ; [.194D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
-1D76E ; [.194D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
-1D7A8 ; [.194D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
-1F60 ; [.194D.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER OMEGA WITH PSILI
-1F68 ; [.194D.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI
-1F64 ; [.194D.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
-1F6C ; [.194D.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
-1FA4 ; [.194D.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1FAC ; [.194D.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F62 ; [.194D.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
-1F6A ; [.194D.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
-1FA2 ; [.194D.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1FAA ; [.194D.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F66 ; [.194D.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1F6E ; [.194D.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1FA6 ; [.194D.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1FAE ; [.194D.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1FA0 ; [.194D.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
-1FA8 ; [.194D.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
-1F61 ; [.194D.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER OMEGA WITH DASIA
-1F69 ; [.194D.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA
-1F65 ; [.194D.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
-1F6D ; [.194D.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
-1FA5 ; [.194D.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1FAD ; [.194D.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F63 ; [.194D.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
-1F6B ; [.194D.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
-1FA3 ; [.194D.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1FAB ; [.194D.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F67 ; [.194D.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1F6F ; [.194D.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1FA7 ; [.194D.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1FAF ; [.194D.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1FA1 ; [.194D.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
-1FA9 ; [.194D.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
-03CE ; [.194D.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH TONOS
-1F7D ; [.194D.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH OXIA
-038F ; [.194D.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH TONOS
-1FFB ; [.194D.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH OXIA
-1FF4 ; [.194D.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
-1F7C ; [.194D.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH VARIA
-1FFA ; [.194D.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH VARIA
-1FF2 ; [.194D.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
-1FF6 ; [.194D.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
-1FF7 ; [.194D.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FF3 ; [.194D.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
-1FFC ; [.194D.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
-03E1 ; [.194E.0020.0002] # GREEK SMALL LETTER SAMPI
-03E0 ; [.194E.0020.0008] # GREEK LETTER SAMPI
-0373 ; [.194F.0020.0002] # GREEK SMALL LETTER ARCHAIC SAMPI
-0372 ; [.194F.0020.0008] # GREEK CAPITAL LETTER ARCHAIC SAMPI
-03F8 ; [.1950.0020.0002] # GREEK SMALL LETTER SHO
-03F7 ; [.1950.0020.0008] # GREEK CAPITAL LETTER SHO
-2C81 ; [.1951.0020.0002] # COPTIC SMALL LETTER ALFA
-2C80 ; [.1951.0020.0008] # COPTIC CAPITAL LETTER ALFA
-2C83 ; [.1952.0020.0002] # COPTIC SMALL LETTER VIDA
-2C82 ; [.1952.0020.0008] # COPTIC CAPITAL LETTER VIDA
-2C85 ; [.1953.0020.0002] # COPTIC SMALL LETTER GAMMA
-2C84 ; [.1953.0020.0008] # COPTIC CAPITAL LETTER GAMMA
-2C87 ; [.1954.0020.0002] # COPTIC SMALL LETTER DALDA
-2C86 ; [.1954.0020.0008] # COPTIC CAPITAL LETTER DALDA
-2C89 ; [.1955.0020.0002] # COPTIC SMALL LETTER EIE
-2C88 ; [.1955.0020.0008] # COPTIC CAPITAL LETTER EIE
-2CB7 ; [.1956.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
-2CB6 ; [.1956.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
-2C8B ; [.1957.0020.0002] # COPTIC SMALL LETTER SOU
-2C8A ; [.1957.0020.0008] # COPTIC CAPITAL LETTER SOU
-2C8D ; [.1958.0020.0002] # COPTIC SMALL LETTER ZATA
-2C8C ; [.1958.0020.0008] # COPTIC CAPITAL LETTER ZATA
-2C8F ; [.1959.0020.0002] # COPTIC SMALL LETTER HATE
-2C8E ; [.1959.0020.0008] # COPTIC CAPITAL LETTER HATE
-2C91 ; [.195A.0020.0002] # COPTIC SMALL LETTER THETHE
-2C90 ; [.195A.0020.0008] # COPTIC CAPITAL LETTER THETHE
-2C93 ; [.195B.0020.0002] # COPTIC SMALL LETTER IAUDA
-2C92 ; [.195B.0020.0008] # COPTIC CAPITAL LETTER IAUDA
-2C95 ; [.195C.0020.0002] # COPTIC SMALL LETTER KAPA
-2C94 ; [.195C.0020.0008] # COPTIC CAPITAL LETTER KAPA
-2CE4 ; [.195C.0020.0004][.1951.0020.0004][.195B.0020.0004] # COPTIC SYMBOL KAI
-2CB9 ; [.195D.0020.0002] # COPTIC SMALL LETTER DIALECT-P KAPA
-2CB8 ; [.195D.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P KAPA
-2C97 ; [.195E.0020.0002] # COPTIC SMALL LETTER LAULA
-2C96 ; [.195E.0020.0008] # COPTIC CAPITAL LETTER LAULA
-2C99 ; [.195F.0020.0002] # COPTIC SMALL LETTER MI
-2C98 ; [.195F.0020.0008] # COPTIC CAPITAL LETTER MI
-2C9B ; [.1960.0020.0002] # COPTIC SMALL LETTER NI
-2C9A ; [.1960.0020.0008] # COPTIC CAPITAL LETTER NI
-2CBB ; [.1961.0020.0002] # COPTIC SMALL LETTER DIALECT-P NI
-2CBA ; [.1961.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P NI
-2CBD ; [.1962.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC NI
-2CBC ; [.1962.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
-2C9D ; [.1963.0020.0002] # COPTIC SMALL LETTER KSI
-2C9C ; [.1963.0020.0008] # COPTIC CAPITAL LETTER KSI
-2C9F ; [.1964.0020.0002] # COPTIC SMALL LETTER O
-2C9E ; [.1964.0020.0008] # COPTIC CAPITAL LETTER O
-2CA1 ; [.1965.0020.0002] # COPTIC SMALL LETTER PI
-2CA0 ; [.1965.0020.0008] # COPTIC CAPITAL LETTER PI
-2CA3 ; [.1966.0020.0002] # COPTIC SMALL LETTER RO
-2CA2 ; [.1966.0020.0008] # COPTIC CAPITAL LETTER RO
-2CA5 ; [.1967.0020.0002] # COPTIC SMALL LETTER SIMA
-2CA4 ; [.1967.0020.0008] # COPTIC CAPITAL LETTER SIMA
-2CA7 ; [.1968.0020.0002] # COPTIC SMALL LETTER TAU
-2CA6 ; [.1968.0020.0008] # COPTIC CAPITAL LETTER TAU
-2CA9 ; [.1969.0020.0002] # COPTIC SMALL LETTER UA
-2CA8 ; [.1969.0020.0008] # COPTIC CAPITAL LETTER UA
-2CAB ; [.196A.0020.0002] # COPTIC SMALL LETTER FI
-2CAA ; [.196A.0020.0008] # COPTIC CAPITAL LETTER FI
-2CAD ; [.196B.0020.0002] # COPTIC SMALL LETTER KHI
-2CAC ; [.196B.0020.0008] # COPTIC CAPITAL LETTER KHI
-2CAF ; [.196C.0020.0002] # COPTIC SMALL LETTER PSI
-2CAE ; [.196C.0020.0008] # COPTIC CAPITAL LETTER PSI
-2CB1 ; [.196D.0020.0002] # COPTIC SMALL LETTER OOU
-2CB0 ; [.196D.0020.0008] # COPTIC CAPITAL LETTER OOU
-2CBF ; [.196E.0020.0002] # COPTIC SMALL LETTER OLD COPTIC OOU
-2CBE ; [.196E.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC OOU
-2CC1 ; [.196F.0020.0002] # COPTIC SMALL LETTER SAMPI
-2CC0 ; [.196F.0020.0008] # COPTIC CAPITAL LETTER SAMPI
-03E3 ; [.1970.0020.0002] # COPTIC SMALL LETTER SHEI
-03E2 ; [.1970.0020.0008] # COPTIC CAPITAL LETTER SHEI
-2CEC ; [.1971.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
-2CEB ; [.1971.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
-2CC3 ; [.1972.0020.0002] # COPTIC SMALL LETTER CROSSED SHEI
-2CC2 ; [.1972.0020.0008] # COPTIC CAPITAL LETTER CROSSED SHEI
-2CC5 ; [.1973.0020.0002] # COPTIC SMALL LETTER OLD COPTIC SHEI
-2CC4 ; [.1973.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC SHEI
-2CC7 ; [.1974.0020.0002] # COPTIC SMALL LETTER OLD COPTIC ESH
-2CC6 ; [.1974.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC ESH
-03E5 ; [.1975.0020.0002] # COPTIC SMALL LETTER FEI
-03E4 ; [.1975.0020.0008] # COPTIC CAPITAL LETTER FEI
-03E7 ; [.1976.0020.0002] # COPTIC SMALL LETTER KHEI
-03E6 ; [.1976.0020.0008] # COPTIC CAPITAL LETTER KHEI
-2CF3 ; [.1977.0020.0002] # COPTIC SMALL LETTER BOHAIRIC KHEI
-2CF2 ; [.1977.0020.0008] # COPTIC CAPITAL LETTER BOHAIRIC KHEI
-2CC9 ; [.1978.0020.0002] # COPTIC SMALL LETTER AKHMIMIC KHEI
-2CC8 ; [.1978.0020.0008] # COPTIC CAPITAL LETTER AKHMIMIC KHEI
-03E9 ; [.1979.0020.0002] # COPTIC SMALL LETTER HORI
-03E8 ; [.1979.0020.0008] # COPTIC CAPITAL LETTER HORI
-2CCB ; [.197A.0020.0002] # COPTIC SMALL LETTER DIALECT-P HORI
-2CCA ; [.197A.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P HORI
-2CCD ; [.197B.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HORI
-2CCC ; [.197B.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HORI
-2CCF ; [.197C.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HA
-2CCE ; [.197C.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HA
-2CD1 ; [.197D.0020.0002] # COPTIC SMALL LETTER L-SHAPED HA
-2CD0 ; [.197D.0020.0008] # COPTIC CAPITAL LETTER L-SHAPED HA
-2CD3 ; [.197E.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HEI
-2CD2 ; [.197E.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HEI
-2CD5 ; [.197F.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HAT
-2CD4 ; [.197F.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HAT
-03EB ; [.1980.0020.0002] # COPTIC SMALL LETTER GANGIA
-03EA ; [.1980.0020.0008] # COPTIC CAPITAL LETTER GANGIA
-2CEE ; [.1981.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
-2CED ; [.1981.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
-2CD7 ; [.1982.0020.0002] # COPTIC SMALL LETTER OLD COPTIC GANGIA
-2CD6 ; [.1982.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC GANGIA
-03ED ; [.1983.0020.0002] # COPTIC SMALL LETTER SHIMA
-03EC ; [.1983.0020.0008] # COPTIC CAPITAL LETTER SHIMA
-2CD9 ; [.1984.0020.0002] # COPTIC SMALL LETTER OLD COPTIC DJA
-2CD8 ; [.1984.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC DJA
-2CDB ; [.1985.0020.0002] # COPTIC SMALL LETTER OLD COPTIC SHIMA
-2CDA ; [.1985.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC SHIMA
-2CDD ; [.1986.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN SHIMA
-2CDC ; [.1986.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
-03EF ; [.1987.0020.0002] # COPTIC SMALL LETTER DEI
-03EE ; [.1987.0020.0008] # COPTIC CAPITAL LETTER DEI
-2CB3 ; [.1988.0020.0002] # COPTIC SMALL LETTER DIALECT-P ALEF
-2CB2 ; [.1988.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P ALEF
-2CB5 ; [.1989.0020.0002] # COPTIC SMALL LETTER OLD COPTIC AIN
-2CB4 ; [.1989.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC AIN
-2CDF ; [.198A.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN NGI
-2CDE ; [.198A.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN NGI
-2CE1 ; [.198B.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN NYI
-2CE0 ; [.198B.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN NYI
-2CE3 ; [.198C.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN WAU
-2CE2 ; [.198C.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN WAU
-0430 ; [.198D.0020.0002] # CYRILLIC SMALL LETTER A
-2DF6 ; [.198D.0020.0004] # COMBINING CYRILLIC LETTER A
-0410 ; [.198D.0020.0008] # CYRILLIC CAPITAL LETTER A
-04D1 ; [.1991.0020.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-0430 0306 ; [.1991.0020.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1991.0020.0008] # CYRILLIC CAPITAL LETTER A WITH BREVE
-0410 0306 ; [.1991.0020.0008] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1995.0020.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-0430 0308 ; [.1995.0020.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1995.0020.0008] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-0410 0308 ; [.1995.0020.0008] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04D9 ; [.1999.0020.0002] # CYRILLIC SMALL LETTER SCHWA
-04D8 ; [.1999.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA
-04DB ; [.199D.0020.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04D9 0308 ; [.199D.0020.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.199D.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04D8 0308 ; [.199D.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04D5 ; [.19A1.0020.0002] # CYRILLIC SMALL LIGATURE A IE
-04D4 ; [.19A1.0020.0008] # CYRILLIC CAPITAL LIGATURE A IE
-0431 ; [.19A5.0020.0002] # CYRILLIC SMALL LETTER BE
-2DE0 ; [.19A5.0020.0004] # COMBINING CYRILLIC LETTER BE
-0411 ; [.19A5.0020.0008] # CYRILLIC CAPITAL LETTER BE
-0432 ; [.19A9.0020.0002] # CYRILLIC SMALL LETTER VE
-2DE1 ; [.19A9.0020.0004] # COMBINING CYRILLIC LETTER VE
-0412 ; [.19A9.0020.0008] # CYRILLIC CAPITAL LETTER VE
-0433 ; [.19AD.0020.0002] # CYRILLIC SMALL LETTER GHE
-2DE2 ; [.19AD.0020.0004] # COMBINING CYRILLIC LETTER GHE
-0413 ; [.19AD.0020.0008] # CYRILLIC CAPITAL LETTER GHE
-0491 ; [.19AD.0020.0004][.0000.00FD.0004] # CYRILLIC SMALL LETTER GHE WITH UPTURN
-0490 ; [.19AD.0020.000A][.0000.00FD.0004] # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-0493 ; [.19B1.0020.0002] # CYRILLIC SMALL LETTER GHE WITH STROKE
-0492 ; [.19B1.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH STROKE
-04FB ; [.19B5.0020.0002] # CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
-04FA ; [.19B5.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
-0495 ; [.19B9.0020.0002] # CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
-0494 ; [.19B9.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
-04F7 ; [.19BD.0020.0002] # CYRILLIC SMALL LETTER GHE WITH DESCENDER
-04F6 ; [.19BD.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
-0434 ; [.19C1.0020.0002] # CYRILLIC SMALL LETTER DE
-2DE3 ; [.19C1.0020.0004] # COMBINING CYRILLIC LETTER DE
-0414 ; [.19C1.0020.0008] # CYRILLIC CAPITAL LETTER DE
-0501 ; [.19C5.0020.0002] # CYRILLIC SMALL LETTER KOMI DE
-0500 ; [.19C5.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DE
-A681 ; [.19C6.0020.0002] # CYRILLIC SMALL LETTER DWE
-A680 ; [.19C6.0020.0008] # CYRILLIC CAPITAL LETTER DWE
-0452 ; [.19C7.0020.0002] # CYRILLIC SMALL LETTER DJE
-0402 ; [.19C7.0020.0008] # CYRILLIC CAPITAL LETTER DJE
-A663 ; [.19CB.0020.0002] # CYRILLIC SMALL LETTER SOFT DE
-A662 ; [.19CB.0020.0008] # CYRILLIC CAPITAL LETTER SOFT DE
-0503 ; [.19CC.0020.0002] # CYRILLIC SMALL LETTER KOMI DJE
-0502 ; [.19CC.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DJE
-0453 ; [.19CD.0020.0002] # CYRILLIC SMALL LETTER GJE
-0433 0301 ; [.19CD.0020.0002] # CYRILLIC SMALL LETTER GJE
-0433 0341 ; [.19CD.0020.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.19CD.0020.0008] # CYRILLIC CAPITAL LETTER GJE
-0413 0301 ; [.19CD.0020.0008] # CYRILLIC CAPITAL LETTER GJE
-0413 0341 ; [.19CD.0020.0008] # CYRILLIC CAPITAL LETTER GJE
-0499 ; [.19D1.0020.0002] # CYRILLIC SMALL LETTER ZE WITH DESCENDER
-0498 ; [.19D1.0020.0008] # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
-0435 ; [.19D5.0020.0002] # CYRILLIC SMALL LETTER IE
-2DF7 ; [.19D5.0020.0004] # COMBINING CYRILLIC LETTER IE
-0415 ; [.19D5.0020.0008] # CYRILLIC CAPITAL LETTER IE
-0450 ; [.19D5.0020.0002][.0000.0025.0002] # CYRILLIC SMALL LETTER IE WITH GRAVE
-0400 ; [.19D5.0020.0008][.0000.0025.0002] # CYRILLIC CAPITAL LETTER IE WITH GRAVE
-0451 ; [.19D5.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER IO
-0401 ; [.19D5.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER IO
-04D7 ; [.19D9.0020.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-0435 0306 ; [.19D9.0020.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.19D9.0020.0008] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-0415 0306 ; [.19D9.0020.0008] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-0454 ; [.19DD.0020.0002] # CYRILLIC SMALL LETTER UKRAINIAN IE
-A674 ; [.19DD.0020.0004] # COMBINING CYRILLIC LETTER UKRAINIAN IE
-0404 ; [.19DD.0020.0008] # CYRILLIC CAPITAL LETTER UKRAINIAN IE
-0436 ; [.19E1.0020.0002] # CYRILLIC SMALL LETTER ZHE
-2DE4 ; [.19E1.0020.0004] # COMBINING CYRILLIC LETTER ZHE
-0416 ; [.19E1.0020.0008] # CYRILLIC CAPITAL LETTER ZHE
-04C2 ; [.19E1.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER ZHE WITH BREVE
-04C1 ; [.19E1.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
-A685 ; [.19E5.0020.0002] # CYRILLIC SMALL LETTER ZHWE
-A684 ; [.19E5.0020.0008] # CYRILLIC CAPITAL LETTER ZHWE
-04DD ; [.19E6.0020.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-0436 0308 ; [.19E6.0020.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.19E6.0020.0008] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-0416 0308 ; [.19E6.0020.0008] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-0497 ; [.19EA.0020.0002] # CYRILLIC SMALL LETTER ZHE WITH DESCENDER
-0496 ; [.19EA.0020.0008] # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
-0437 ; [.19EE.0020.0002] # CYRILLIC SMALL LETTER ZE
-2DE5 ; [.19EE.0020.0004] # COMBINING CYRILLIC LETTER ZE
-0417 ; [.19EE.0020.0008] # CYRILLIC CAPITAL LETTER ZE
-A641 ; [.19F2.0020.0002] # CYRILLIC SMALL LETTER ZEMLYA
-A640 ; [.19F2.0020.0008] # CYRILLIC CAPITAL LETTER ZEMLYA
-0505 ; [.19F3.0020.0002] # CYRILLIC SMALL LETTER KOMI ZJE
-0504 ; [.19F3.0020.0008] # CYRILLIC CAPITAL LETTER KOMI ZJE
-0511 ; [.19F4.0020.0002] # CYRILLIC SMALL LETTER REVERSED ZE
-0510 ; [.19F4.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED ZE
-04DF ; [.19F5.0020.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-0437 0308 ; [.19F5.0020.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.19F5.0020.0008] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0417 0308 ; [.19F5.0020.0008] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-A643 ; [.19F9.0020.0002] # CYRILLIC SMALL LETTER DZELO
-A642 ; [.19F9.0020.0008] # CYRILLIC CAPITAL LETTER DZELO
-0455 ; [.19FA.0020.0002] # CYRILLIC SMALL LETTER DZE
-0405 ; [.19FA.0020.0008] # CYRILLIC CAPITAL LETTER DZE
-A645 ; [.19FE.0020.0002] # CYRILLIC SMALL LETTER REVERSED DZE
-A644 ; [.19FE.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED DZE
-04E1 ; [.19FF.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN DZE
-04E0 ; [.19FF.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN DZE
-A689 ; [.1A03.0020.0002] # CYRILLIC SMALL LETTER DZZE
-A688 ; [.1A03.0020.0008] # CYRILLIC CAPITAL LETTER DZZE
-0507 ; [.1A04.0020.0002] # CYRILLIC SMALL LETTER KOMI DZJE
-0506 ; [.1A04.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DZJE
-A683 ; [.1A05.0020.0002] # CYRILLIC SMALL LETTER DZWE
-A682 ; [.1A05.0020.0008] # CYRILLIC CAPITAL LETTER DZWE
-0438 ; [.1A06.0020.0002] # CYRILLIC SMALL LETTER I
-A675 ; [.1A06.0020.0004] # COMBINING CYRILLIC LETTER I
-0418 ; [.1A06.0020.0008] # CYRILLIC CAPITAL LETTER I
-045D ; [.1A06.0020.0002][.0000.0025.0002] # CYRILLIC SMALL LETTER I WITH GRAVE
-040D ; [.1A06.0020.0008][.0000.0025.0002] # CYRILLIC CAPITAL LETTER I WITH GRAVE
-04E3 ; [.1A06.0020.0002][.0000.0032.0002] # CYRILLIC SMALL LETTER I WITH MACRON
-04E2 ; [.1A06.0020.0008][.0000.0032.0002] # CYRILLIC CAPITAL LETTER I WITH MACRON
-048B ; [.1A0A.0020.0002] # CYRILLIC SMALL LETTER SHORT I WITH TAIL
-048A ; [.1A0A.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
-04E5 ; [.1A0E.0020.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
-0438 0308 ; [.1A0E.0020.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E4 ; [.1A0E.0020.0008] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-0418 0308 ; [.1A0E.0020.0008] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-0456 ; [.1A12.0020.0002] # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-0406 ; [.1A12.0020.0008] # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-A647 ; [.1A16.0020.0002] # CYRILLIC SMALL LETTER IOTA
-A646 ; [.1A16.0020.0008] # CYRILLIC CAPITAL LETTER IOTA
-0457 ; [.1A17.0020.0002] # CYRILLIC SMALL LETTER YI
-0456 0308 ; [.1A17.0020.0002] # CYRILLIC SMALL LETTER YI
-A676 ; [.1A17.0020.0004] # COMBINING CYRILLIC LETTER YI
-0407 ; [.1A17.0020.0008] # CYRILLIC CAPITAL LETTER YI
-0406 0308 ; [.1A17.0020.0008] # CYRILLIC CAPITAL LETTER YI
-0439 ; [.1A1B.0020.0002] # CYRILLIC SMALL LETTER SHORT I
-0438 0306 ; [.1A1B.0020.0002] # CYRILLIC SMALL LETTER SHORT I
-0419 ; [.1A1B.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I
-0418 0306 ; [.1A1B.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I
-0458 ; [.1A1F.0020.0002] # CYRILLIC SMALL LETTER JE
-0408 ; [.1A1F.0020.0008] # CYRILLIC CAPITAL LETTER JE
-A649 ; [.1A23.0020.0002] # CYRILLIC SMALL LETTER DJERV
-2DF8 ; [.1A23.0020.0004] # COMBINING CYRILLIC LETTER DJERV
-A648 ; [.1A23.0020.0008] # CYRILLIC CAPITAL LETTER DJERV
-043A ; [.1A24.0020.0002] # CYRILLIC SMALL LETTER KA
-2DE6 ; [.1A24.0020.0004] # COMBINING CYRILLIC LETTER KA
-041A ; [.1A24.0020.0008] # CYRILLIC CAPITAL LETTER KA
-049B ; [.1A28.0020.0002] # CYRILLIC SMALL LETTER KA WITH DESCENDER
-049A ; [.1A28.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
-04C4 ; [.1A2C.0020.0002] # CYRILLIC SMALL LETTER KA WITH HOOK
-04C3 ; [.1A2C.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH HOOK
-04A1 ; [.1A30.0020.0002] # CYRILLIC SMALL LETTER BASHKIR KA
-04A0 ; [.1A30.0020.0008] # CYRILLIC CAPITAL LETTER BASHKIR KA
-049F ; [.1A34.0020.0002] # CYRILLIC SMALL LETTER KA WITH STROKE
-049E ; [.1A34.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH STROKE
-049D ; [.1A38.0020.0002] # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-049C ; [.1A38.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
-051F ; [.1A3C.0020.0002] # CYRILLIC SMALL LETTER ALEUT KA
-051E ; [.1A3C.0020.0008] # CYRILLIC CAPITAL LETTER ALEUT KA
-051B ; [.1A3D.0020.0002] # CYRILLIC SMALL LETTER QA
-051A ; [.1A3D.0020.0008] # CYRILLIC CAPITAL LETTER QA
-043B ; [.1A3E.0020.0002] # CYRILLIC SMALL LETTER EL
-2DE7 ; [.1A3E.0020.0004] # COMBINING CYRILLIC LETTER EL
-041B ; [.1A3E.0020.0008] # CYRILLIC CAPITAL LETTER EL
-1D2B ; [.1A42.0020.0002] # CYRILLIC LETTER SMALL CAPITAL EL
-04C6 ; [.1A43.0020.0002] # CYRILLIC SMALL LETTER EL WITH TAIL
-04C5 ; [.1A43.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH TAIL
-0513 ; [.1A47.0020.0002] # CYRILLIC SMALL LETTER EL WITH HOOK
-0512 ; [.1A47.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH HOOK
-0521 ; [.1A48.0020.0002] # CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
-0520 ; [.1A48.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
-0459 ; [.1A49.0020.0002] # CYRILLIC SMALL LETTER LJE
-0409 ; [.1A49.0020.0008] # CYRILLIC CAPITAL LETTER LJE
-A665 ; [.1A4D.0020.0002] # CYRILLIC SMALL LETTER SOFT EL
-A664 ; [.1A4D.0020.0008] # CYRILLIC CAPITAL LETTER SOFT EL
-0509 ; [.1A4E.0020.0002] # CYRILLIC SMALL LETTER KOMI LJE
-0508 ; [.1A4E.0020.0008] # CYRILLIC CAPITAL LETTER KOMI LJE
-0515 ; [.1A4F.0020.0002] # CYRILLIC SMALL LETTER LHA
-0514 ; [.1A4F.0020.0008] # CYRILLIC CAPITAL LETTER LHA
-043C ; [.1A50.0020.0002] # CYRILLIC SMALL LETTER EM
-2DE8 ; [.1A50.0020.0004] # COMBINING CYRILLIC LETTER EM
-041C ; [.1A50.0020.0008] # CYRILLIC CAPITAL LETTER EM
-04CE ; [.1A54.0020.0002] # CYRILLIC SMALL LETTER EM WITH TAIL
-04CD ; [.1A54.0020.0008] # CYRILLIC CAPITAL LETTER EM WITH TAIL
-A667 ; [.1A58.0020.0002] # CYRILLIC SMALL LETTER SOFT EM
-A666 ; [.1A58.0020.0008] # CYRILLIC CAPITAL LETTER SOFT EM
-043D ; [.1A59.0020.0002] # CYRILLIC SMALL LETTER EN
-2DE9 ; [.1A59.0020.0004] # COMBINING CYRILLIC LETTER EN
-041D ; [.1A59.0020.0008] # CYRILLIC CAPITAL LETTER EN
-1D78 ; [.1A59.0020.0014] # MODIFIER LETTER CYRILLIC EN
-04CA ; [.1A5D.0020.0002] # CYRILLIC SMALL LETTER EN WITH TAIL
-04C9 ; [.1A5D.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH TAIL
-04A3 ; [.1A61.0020.0002] # CYRILLIC SMALL LETTER EN WITH DESCENDER
-04A2 ; [.1A61.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH DESCENDER
-04C8 ; [.1A65.0020.0002] # CYRILLIC SMALL LETTER EN WITH HOOK
-04C7 ; [.1A65.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH HOOK
-0523 ; [.1A69.0020.0002] # CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
-0522 ; [.1A69.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
-04A5 ; [.1A6A.0020.0002] # CYRILLIC SMALL LIGATURE EN GHE
-04A4 ; [.1A6A.0020.0008] # CYRILLIC CAPITAL LIGATURE EN GHE
-045A ; [.1A6E.0020.0002] # CYRILLIC SMALL LETTER NJE
-040A ; [.1A6E.0020.0008] # CYRILLIC CAPITAL LETTER NJE
-050B ; [.1A72.0020.0002] # CYRILLIC SMALL LETTER KOMI NJE
-050A ; [.1A72.0020.0008] # CYRILLIC CAPITAL LETTER KOMI NJE
-043E ; [.1A73.0020.0002] # CYRILLIC SMALL LETTER O
-2DEA ; [.1A73.0020.0004] # COMBINING CYRILLIC LETTER O
-A669 ; [.1A73.0020.0004] # CYRILLIC SMALL LETTER MONOCULAR O
-A66B ; [.1A73.0020.0004] # CYRILLIC SMALL LETTER BINOCULAR O
-A66D ; [.1A73.0020.0004] # CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
-A66E ; [.1A73.0020.0004] # CYRILLIC LETTER MULTIOCULAR O
-041E ; [.1A73.0020.0008] # CYRILLIC CAPITAL LETTER O
-A668 ; [.1A73.0020.000A] # CYRILLIC CAPITAL LETTER MONOCULAR O
-A66A ; [.1A73.0020.000A] # CYRILLIC CAPITAL LETTER BINOCULAR O
-A66C ; [.1A73.0020.000A] # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
-04E7 ; [.1A77.0020.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-043E 0308 ; [.1A77.0020.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1A77.0020.0008] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-041E 0308 ; [.1A77.0020.0008] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04E9 ; [.1A7B.0020.0002] # CYRILLIC SMALL LETTER BARRED O
-04E8 ; [.1A7B.0020.0008] # CYRILLIC CAPITAL LETTER BARRED O
-04EB ; [.1A7F.0020.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04E9 0308 ; [.1A7F.0020.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1A7F.0020.0008] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-04E8 0308 ; [.1A7F.0020.0008] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-043F ; [.1A83.0020.0002] # CYRILLIC SMALL LETTER PE
-2DEB ; [.1A83.0020.0004] # COMBINING CYRILLIC LETTER PE
-041F ; [.1A83.0020.0008] # CYRILLIC CAPITAL LETTER PE
-0525 ; [.1A87.0020.0002] # CYRILLIC SMALL LETTER PE WITH DESCENDER
-0524 ; [.1A87.0020.0008] # CYRILLIC CAPITAL LETTER PE WITH DESCENDER
-04A7 ; [.1A88.0020.0002] # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
-04A6 ; [.1A88.0020.0008] # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
-0481 ; [.1A8C.0020.0002] # CYRILLIC SMALL LETTER KOPPA
-0480 ; [.1A8C.0020.0008] # CYRILLIC CAPITAL LETTER KOPPA
-0440 ; [.1A90.0020.0002] # CYRILLIC SMALL LETTER ER
-2DEC ; [.1A90.0020.0004] # COMBINING CYRILLIC LETTER ER
-0420 ; [.1A90.0020.0008] # CYRILLIC CAPITAL LETTER ER
-048F ; [.1A94.0020.0002] # CYRILLIC SMALL LETTER ER WITH TICK
-048E ; [.1A94.0020.0008] # CYRILLIC CAPITAL LETTER ER WITH TICK
-0517 ; [.1A98.0020.0002] # CYRILLIC SMALL LETTER RHA
-0516 ; [.1A98.0020.0008] # CYRILLIC CAPITAL LETTER RHA
-0441 ; [.1A99.0020.0002] # CYRILLIC SMALL LETTER ES
-2DED ; [.1A99.0020.0004] # COMBINING CYRILLIC LETTER ES
-0421 ; [.1A99.0020.0008] # CYRILLIC CAPITAL LETTER ES
-2DF5 ; [.1A99.0020.0004][.1AA2.0020.0004] # COMBINING CYRILLIC LETTER ES-TE
-050D ; [.1A9D.0020.0002] # CYRILLIC SMALL LETTER KOMI SJE
-050C ; [.1A9D.0020.0008] # CYRILLIC CAPITAL LETTER KOMI SJE
-04AB ; [.1A9E.0020.0002] # CYRILLIC SMALL LETTER ES WITH DESCENDER
-04AA ; [.1A9E.0020.0008] # CYRILLIC CAPITAL LETTER ES WITH DESCENDER
-0442 ; [.1AA2.0020.0002] # CYRILLIC SMALL LETTER TE
-2DEE ; [.1AA2.0020.0004] # COMBINING CYRILLIC LETTER TE
-0422 ; [.1AA2.0020.0008] # CYRILLIC CAPITAL LETTER TE
-A68D ; [.1AA6.0020.0002] # CYRILLIC SMALL LETTER TWE
-A68C ; [.1AA6.0020.0008] # CYRILLIC CAPITAL LETTER TWE
-050F ; [.1AA7.0020.0002] # CYRILLIC SMALL LETTER KOMI TJE
-050E ; [.1AA7.0020.0008] # CYRILLIC CAPITAL LETTER KOMI TJE
-04AD ; [.1AA8.0020.0002] # CYRILLIC SMALL LETTER TE WITH DESCENDER
-04AC ; [.1AA8.0020.0008] # CYRILLIC CAPITAL LETTER TE WITH DESCENDER
-A68B ; [.1AAC.0020.0002] # CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
-A68A ; [.1AAC.0020.0008] # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
-045B ; [.1AAD.0020.0002] # CYRILLIC SMALL LETTER TSHE
-040B ; [.1AAD.0020.0008] # CYRILLIC CAPITAL LETTER TSHE
-045C ; [.1AB1.0020.0002] # CYRILLIC SMALL LETTER KJE
-043A 0301 ; [.1AB1.0020.0002] # CYRILLIC SMALL LETTER KJE
-043A 0341 ; [.1AB1.0020.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1AB1.0020.0008] # CYRILLIC CAPITAL LETTER KJE
-041A 0301 ; [.1AB1.0020.0008] # CYRILLIC CAPITAL LETTER KJE
-041A 0341 ; [.1AB1.0020.0008] # CYRILLIC CAPITAL LETTER KJE
-0443 ; [.1AB5.0020.0002] # CYRILLIC SMALL LETTER U
-A677 ; [.1AB5.0020.0004] # COMBINING CYRILLIC LETTER U
-0423 ; [.1AB5.0020.0008] # CYRILLIC CAPITAL LETTER U
-04EF ; [.1AB5.0020.0002][.0000.0032.0002] # CYRILLIC SMALL LETTER U WITH MACRON
-04EE ; [.1AB5.0020.0008][.0000.0032.0002] # CYRILLIC CAPITAL LETTER U WITH MACRON
-045E ; [.1AB9.0020.0002] # CYRILLIC SMALL LETTER SHORT U
-0443 0306 ; [.1AB9.0020.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1AB9.0020.0008] # CYRILLIC CAPITAL LETTER SHORT U
-0423 0306 ; [.1AB9.0020.0008] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1ABD.0020.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-0443 0308 ; [.1ABD.0020.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1ABD.0020.0008] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-0423 0308 ; [.1ABD.0020.0008] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1AC1.0020.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-0443 030B ; [.1AC1.0020.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1AC1.0020.0008] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-0423 030B ; [.1AC1.0020.0008] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04AF ; [.1AC5.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U
-04AE ; [.1AC5.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U
-04B1 ; [.1AC9.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
-04B0 ; [.1AC9.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
-A64B ; [.1ACD.0020.0002] # CYRILLIC SMALL LETTER MONOGRAPH UK
-2DF9 ; [.1ACD.0020.0004] # COMBINING CYRILLIC LETTER MONOGRAPH UK
-A64A ; [.1ACD.0020.0008] # CYRILLIC CAPITAL LETTER MONOGRAPH UK
-0479 ; [.1ACE.0020.0002] # CYRILLIC SMALL LETTER UK
-0478 ; [.1ACE.0020.0008] # CYRILLIC CAPITAL LETTER UK
-0444 ; [.1AD2.0020.0002] # CYRILLIC SMALL LETTER EF
-0424 ; [.1AD2.0020.0008] # CYRILLIC CAPITAL LETTER EF
-0445 ; [.1AD6.0020.0002] # CYRILLIC SMALL LETTER HA
-2DEF ; [.1AD6.0020.0004] # COMBINING CYRILLIC LETTER HA
-0425 ; [.1AD6.0020.0008] # CYRILLIC CAPITAL LETTER HA
-04FD ; [.1ADA.0020.0002] # CYRILLIC SMALL LETTER HA WITH HOOK
-04FC ; [.1ADA.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH HOOK
-04FF ; [.1ADE.0020.0002] # CYRILLIC SMALL LETTER HA WITH STROKE
-04FE ; [.1ADE.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH STROKE
-04B3 ; [.1AE2.0020.0002] # CYRILLIC SMALL LETTER HA WITH DESCENDER
-04B2 ; [.1AE2.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH DESCENDER
-04BB ; [.1AE6.0020.0002] # CYRILLIC SMALL LETTER SHHA
-04BA ; [.1AE6.0020.0008] # CYRILLIC CAPITAL LETTER SHHA
-0527 ; [.1AEA.0020.0002] # CYRILLIC SMALL LETTER SHHA WITH DESCENDER
-0526 ; [.1AEA.0020.0008] # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
-A695 ; [.1AEB.0020.0002] # CYRILLIC SMALL LETTER HWE
-A694 ; [.1AEB.0020.0008] # CYRILLIC CAPITAL LETTER HWE
-0461 ; [.1AEC.0020.0002] # CYRILLIC SMALL LETTER OMEGA
-A67B ; [.1AEC.0020.0004] # COMBINING CYRILLIC LETTER OMEGA
-0460 ; [.1AEC.0020.0008] # CYRILLIC CAPITAL LETTER OMEGA
-047F ; [.1AF0.0020.0002] # CYRILLIC SMALL LETTER OT
-047E ; [.1AF0.0020.0008] # CYRILLIC CAPITAL LETTER OT
-A64D ; [.1AF4.0020.0002] # CYRILLIC SMALL LETTER BROAD OMEGA
-A64C ; [.1AF4.0020.0008] # CYRILLIC CAPITAL LETTER BROAD OMEGA
-047D ; [.1AF5.0020.0002] # CYRILLIC SMALL LETTER OMEGA WITH TITLO
-047C ; [.1AF5.0020.0008] # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
-047B ; [.1AF9.0020.0002] # CYRILLIC SMALL LETTER ROUND OMEGA
-047A ; [.1AF9.0020.0008] # CYRILLIC CAPITAL LETTER ROUND OMEGA
-0446 ; [.1AFD.0020.0002] # CYRILLIC SMALL LETTER TSE
-2DF0 ; [.1AFD.0020.0004] # COMBINING CYRILLIC LETTER TSE
-0426 ; [.1AFD.0020.0008] # CYRILLIC CAPITAL LETTER TSE
-A661 ; [.1B01.0020.0002] # CYRILLIC SMALL LETTER REVERSED TSE
-A660 ; [.1B01.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED TSE
-A68F ; [.1B02.0020.0002] # CYRILLIC SMALL LETTER TSWE
-A68E ; [.1B02.0020.0008] # CYRILLIC CAPITAL LETTER TSWE
-04B5 ; [.1B03.0020.0002] # CYRILLIC SMALL LIGATURE TE TSE
-04B4 ; [.1B03.0020.0008] # CYRILLIC CAPITAL LIGATURE TE TSE
-A691 ; [.1B07.0020.0002] # CYRILLIC SMALL LETTER TSSE
-A690 ; [.1B07.0020.0008] # CYRILLIC CAPITAL LETTER TSSE
-0447 ; [.1B08.0020.0002] # CYRILLIC SMALL LETTER CHE
-2DF1 ; [.1B08.0020.0004] # COMBINING CYRILLIC LETTER CHE
-0427 ; [.1B08.0020.0008] # CYRILLIC CAPITAL LETTER CHE
-A693 ; [.1B0C.0020.0002] # CYRILLIC SMALL LETTER TCHE
-A692 ; [.1B0C.0020.0008] # CYRILLIC CAPITAL LETTER TCHE
-04F5 ; [.1B0D.0020.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-0447 0308 ; [.1B0D.0020.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1B0D.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-0427 0308 ; [.1B0D.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04B7 ; [.1B11.0020.0002] # CYRILLIC SMALL LETTER CHE WITH DESCENDER
-04B6 ; [.1B11.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
-04CC ; [.1B15.0020.0002] # CYRILLIC SMALL LETTER KHAKASSIAN CHE
-04CB ; [.1B15.0020.0008] # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
-04B9 ; [.1B19.0020.0002] # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-04B8 ; [.1B19.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-A687 ; [.1B1D.0020.0002] # CYRILLIC SMALL LETTER CCHE
-A686 ; [.1B1D.0020.0008] # CYRILLIC CAPITAL LETTER CCHE
-04BD ; [.1B1E.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN CHE
-04BC ; [.1B1E.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN CHE
-04BF ; [.1B22.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
-04BE ; [.1B22.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
-045F ; [.1B26.0020.0002] # CYRILLIC SMALL LETTER DZHE
-040F ; [.1B26.0020.0008] # CYRILLIC CAPITAL LETTER DZHE
-0448 ; [.1B2A.0020.0002] # CYRILLIC SMALL LETTER SHA
-2DF2 ; [.1B2A.0020.0004] # COMBINING CYRILLIC LETTER SHA
-0428 ; [.1B2A.0020.0008] # CYRILLIC CAPITAL LETTER SHA
-A697 ; [.1B2E.0020.0002] # CYRILLIC SMALL LETTER SHWE
-A696 ; [.1B2E.0020.0008] # CYRILLIC CAPITAL LETTER SHWE
-0449 ; [.1B2F.0020.0002] # CYRILLIC SMALL LETTER SHCHA
-2DF3 ; [.1B2F.0020.0004] # COMBINING CYRILLIC LETTER SHCHA
-0429 ; [.1B2F.0020.0008] # CYRILLIC CAPITAL LETTER SHCHA
-A64F ; [.1B33.0020.0002] # CYRILLIC SMALL LETTER NEUTRAL YER
-A64E ; [.1B33.0020.0008] # CYRILLIC CAPITAL LETTER NEUTRAL YER
-2E2F ; [.1B34.0020.0002] # VERTICAL TILDE
-A67F ; [.1B35.0020.0002] # CYRILLIC PAYEROK
-044A ; [.1B36.0020.0002] # CYRILLIC SMALL LETTER HARD SIGN
-A678 ; [.1B36.0020.0004] # COMBINING CYRILLIC LETTER HARD SIGN
-042A ; [.1B36.0020.0008] # CYRILLIC CAPITAL LETTER HARD SIGN
-A651 ; [.1B3A.0020.0002] # CYRILLIC SMALL LETTER YERU WITH BACK YER
-A650 ; [.1B3A.0020.0008] # CYRILLIC CAPITAL LETTER YERU WITH BACK YER
-044B ; [.1B3B.0020.0002] # CYRILLIC SMALL LETTER YERU
-A679 ; [.1B3B.0020.0004] # COMBINING CYRILLIC LETTER YERU
-042B ; [.1B3B.0020.0008] # CYRILLIC CAPITAL LETTER YERU
-04F9 ; [.1B3F.0020.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-044B 0308 ; [.1B3F.0020.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1B3F.0020.0008] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-042B 0308 ; [.1B3F.0020.0008] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-044C ; [.1B43.0020.0002] # CYRILLIC SMALL LETTER SOFT SIGN
-A67A ; [.1B43.0020.0004] # COMBINING CYRILLIC LETTER SOFT SIGN
-042C ; [.1B43.0020.0008] # CYRILLIC CAPITAL LETTER SOFT SIGN
-048D ; [.1B47.0020.0002] # CYRILLIC SMALL LETTER SEMISOFT SIGN
-048C ; [.1B47.0020.0008] # CYRILLIC CAPITAL LETTER SEMISOFT SIGN
-0463 ; [.1B4B.0020.0002] # CYRILLIC SMALL LETTER YAT
-2DFA ; [.1B4B.0020.0004] # COMBINING CYRILLIC LETTER YAT
-0462 ; [.1B4B.0020.0008] # CYRILLIC CAPITAL LETTER YAT
-A653 ; [.1B4F.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED YAT
-A652 ; [.1B4F.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED YAT
-044D ; [.1B50.0020.0002] # CYRILLIC SMALL LETTER E
-042D ; [.1B50.0020.0008] # CYRILLIC CAPITAL LETTER E
-04ED ; [.1B54.0020.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-044D 0308 ; [.1B54.0020.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1B54.0020.0008] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-042D 0308 ; [.1B54.0020.0008] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-044E ; [.1B58.0020.0002] # CYRILLIC SMALL LETTER YU
-2DFB ; [.1B58.0020.0004] # COMBINING CYRILLIC LETTER YU
-042E ; [.1B58.0020.0008] # CYRILLIC CAPITAL LETTER YU
-A655 ; [.1B5C.0020.0002] # CYRILLIC SMALL LETTER REVERSED YU
-A654 ; [.1B5C.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED YU
-A657 ; [.1B5D.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED A
-2DFC ; [.1B5D.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED A
-A656 ; [.1B5D.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED A
-044F ; [.1B5E.0020.0002] # CYRILLIC SMALL LETTER YA
-042F ; [.1B5E.0020.0008] # CYRILLIC CAPITAL LETTER YA
-0519 ; [.1B62.0020.0002] # CYRILLIC SMALL LETTER YAE
-0518 ; [.1B62.0020.0008] # CYRILLIC CAPITAL LETTER YAE
-0465 ; [.1B63.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED E
-A69F ; [.1B63.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED E
-0464 ; [.1B63.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED E
-0467 ; [.1B67.0020.0002] # CYRILLIC SMALL LETTER LITTLE YUS
-2DFD ; [.1B67.0020.0004] # COMBINING CYRILLIC LETTER LITTLE YUS
-0466 ; [.1B67.0020.0008] # CYRILLIC CAPITAL LETTER LITTLE YUS
-A659 ; [.1B6B.0020.0002] # CYRILLIC SMALL LETTER CLOSED LITTLE YUS
-A658 ; [.1B6B.0020.0008] # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
-046B ; [.1B6C.0020.0002] # CYRILLIC SMALL LETTER BIG YUS
-2DFE ; [.1B6C.0020.0004] # COMBINING CYRILLIC LETTER BIG YUS
-046A ; [.1B6C.0020.0008] # CYRILLIC CAPITAL LETTER BIG YUS
-A65B ; [.1B70.0020.0002] # CYRILLIC SMALL LETTER BLENDED YUS
-A65A ; [.1B70.0020.0008] # CYRILLIC CAPITAL LETTER BLENDED YUS
-0469 ; [.1B71.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
-0468 ; [.1B71.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
-A65D ; [.1B75.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
-A65C ; [.1B75.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
-046D ; [.1B76.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED BIG YUS
-2DFF ; [.1B76.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
-046C ; [.1B76.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
-046F ; [.1B7A.0020.0002] # CYRILLIC SMALL LETTER KSI
-046E ; [.1B7A.0020.0008] # CYRILLIC CAPITAL LETTER KSI
-0471 ; [.1B7E.0020.0002] # CYRILLIC SMALL LETTER PSI
-0470 ; [.1B7E.0020.0008] # CYRILLIC CAPITAL LETTER PSI
-0473 ; [.1B82.0020.0002] # CYRILLIC SMALL LETTER FITA
-2DF4 ; [.1B82.0020.0004] # COMBINING CYRILLIC LETTER FITA
-0472 ; [.1B82.0020.0008] # CYRILLIC CAPITAL LETTER FITA
-0475 ; [.1B86.0020.0002] # CYRILLIC SMALL LETTER IZHITSA
-0474 ; [.1B86.0020.0008] # CYRILLIC CAPITAL LETTER IZHITSA
-0477 ; [.1B8A.0020.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0475 030F ; [.1B8A.0020.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1B8A.0020.0008] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0474 030F ; [.1B8A.0020.0008] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-A65F ; [.1B8E.0020.0002] # CYRILLIC SMALL LETTER YN
-A65E ; [.1B8E.0020.0008] # CYRILLIC CAPITAL LETTER YN
-04A9 ; [.1B8F.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN HA
-04A8 ; [.1B8F.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN HA
-051D ; [.1B93.0020.0002] # CYRILLIC SMALL LETTER WE
-051C ; [.1B93.0020.0008] # CYRILLIC CAPITAL LETTER WE
-04CF ; [.1B94.0020.0002] # CYRILLIC SMALL LETTER PALOCHKA
-04C0 ; [.1B94.0020.0008] # CYRILLIC LETTER PALOCHKA
-2C30 ; [.1B98.0020.0002] # GLAGOLITIC SMALL LETTER AZU
-2C00 ; [.1B98.0020.0008] # GLAGOLITIC CAPITAL LETTER AZU
-2C31 ; [.1B99.0020.0002] # GLAGOLITIC SMALL LETTER BUKY
-2C01 ; [.1B99.0020.0008] # GLAGOLITIC CAPITAL LETTER BUKY
-2C32 ; [.1B9A.0020.0002] # GLAGOLITIC SMALL LETTER VEDE
-2C02 ; [.1B9A.0020.0008] # GLAGOLITIC CAPITAL LETTER VEDE
-2C33 ; [.1B9B.0020.0002] # GLAGOLITIC SMALL LETTER GLAGOLI
-2C03 ; [.1B9B.0020.0008] # GLAGOLITIC CAPITAL LETTER GLAGOLI
-2C34 ; [.1B9C.0020.0002] # GLAGOLITIC SMALL LETTER DOBRO
-2C04 ; [.1B9C.0020.0008] # GLAGOLITIC CAPITAL LETTER DOBRO
-2C35 ; [.1B9D.0020.0002] # GLAGOLITIC SMALL LETTER YESTU
-2C05 ; [.1B9D.0020.0008] # GLAGOLITIC CAPITAL LETTER YESTU
-2C36 ; [.1B9E.0020.0002] # GLAGOLITIC SMALL LETTER ZHIVETE
-2C06 ; [.1B9E.0020.0008] # GLAGOLITIC CAPITAL LETTER ZHIVETE
-2C37 ; [.1B9F.0020.0002] # GLAGOLITIC SMALL LETTER DZELO
-2C07 ; [.1B9F.0020.0008] # GLAGOLITIC CAPITAL LETTER DZELO
-2C38 ; [.1BA0.0020.0002] # GLAGOLITIC SMALL LETTER ZEMLJA
-2C08 ; [.1BA0.0020.0008] # GLAGOLITIC CAPITAL LETTER ZEMLJA
-2C39 ; [.1BA1.0020.0002] # GLAGOLITIC SMALL LETTER IZHE
-2C09 ; [.1BA1.0020.0008] # GLAGOLITIC CAPITAL LETTER IZHE
-2C3A ; [.1BA2.0020.0002] # GLAGOLITIC SMALL LETTER INITIAL IZHE
-2C0A ; [.1BA2.0020.0008] # GLAGOLITIC CAPITAL LETTER INITIAL IZHE
-2C3B ; [.1BA3.0020.0002] # GLAGOLITIC SMALL LETTER I
-2C0B ; [.1BA3.0020.0008] # GLAGOLITIC CAPITAL LETTER I
-2C3C ; [.1BA4.0020.0002] # GLAGOLITIC SMALL LETTER DJERVI
-2C0C ; [.1BA4.0020.0008] # GLAGOLITIC CAPITAL LETTER DJERVI
-2C3D ; [.1BA5.0020.0002] # GLAGOLITIC SMALL LETTER KAKO
-2C0D ; [.1BA5.0020.0008] # GLAGOLITIC CAPITAL LETTER KAKO
-2C3E ; [.1BA6.0020.0002] # GLAGOLITIC SMALL LETTER LJUDIJE
-2C0E ; [.1BA6.0020.0008] # GLAGOLITIC CAPITAL LETTER LJUDIJE
-2C3F ; [.1BA7.0020.0002] # GLAGOLITIC SMALL LETTER MYSLITE
-2C0F ; [.1BA7.0020.0008] # GLAGOLITIC CAPITAL LETTER MYSLITE
-2C40 ; [.1BA8.0020.0002] # GLAGOLITIC SMALL LETTER NASHI
-2C10 ; [.1BA8.0020.0008] # GLAGOLITIC CAPITAL LETTER NASHI
-2C41 ; [.1BA9.0020.0002] # GLAGOLITIC SMALL LETTER ONU
-2C11 ; [.1BA9.0020.0008] # GLAGOLITIC CAPITAL LETTER ONU
-2C42 ; [.1BAA.0020.0002] # GLAGOLITIC SMALL LETTER POKOJI
-2C12 ; [.1BAA.0020.0008] # GLAGOLITIC CAPITAL LETTER POKOJI
-2C43 ; [.1BAB.0020.0002] # GLAGOLITIC SMALL LETTER RITSI
-2C13 ; [.1BAB.0020.0008] # GLAGOLITIC CAPITAL LETTER RITSI
-2C44 ; [.1BAC.0020.0002] # GLAGOLITIC SMALL LETTER SLOVO
-2C14 ; [.1BAC.0020.0008] # GLAGOLITIC CAPITAL LETTER SLOVO
-2C45 ; [.1BAD.0020.0002] # GLAGOLITIC SMALL LETTER TVRIDO
-2C15 ; [.1BAD.0020.0008] # GLAGOLITIC CAPITAL LETTER TVRIDO
-2C46 ; [.1BAE.0020.0002] # GLAGOLITIC SMALL LETTER UKU
-2C16 ; [.1BAE.0020.0008] # GLAGOLITIC CAPITAL LETTER UKU
-2C47 ; [.1BAF.0020.0002] # GLAGOLITIC SMALL LETTER FRITU
-2C17 ; [.1BAF.0020.0008] # GLAGOLITIC CAPITAL LETTER FRITU
-2C48 ; [.1BB0.0020.0002] # GLAGOLITIC SMALL LETTER HERU
-2C18 ; [.1BB0.0020.0008] # GLAGOLITIC CAPITAL LETTER HERU
-2C49 ; [.1BB1.0020.0002] # GLAGOLITIC SMALL LETTER OTU
-2C19 ; [.1BB1.0020.0008] # GLAGOLITIC CAPITAL LETTER OTU
-2C4A ; [.1BB2.0020.0002] # GLAGOLITIC SMALL LETTER PE
-2C1A ; [.1BB2.0020.0008] # GLAGOLITIC CAPITAL LETTER PE
-2C4B ; [.1BB3.0020.0002] # GLAGOLITIC SMALL LETTER SHTA
-2C1B ; [.1BB3.0020.0008] # GLAGOLITIC CAPITAL LETTER SHTA
-2C4C ; [.1BB4.0020.0002] # GLAGOLITIC SMALL LETTER TSI
-2C1C ; [.1BB4.0020.0008] # GLAGOLITIC CAPITAL LETTER TSI
-2C4D ; [.1BB5.0020.0002] # GLAGOLITIC SMALL LETTER CHRIVI
-2C1D ; [.1BB5.0020.0008] # GLAGOLITIC CAPITAL LETTER CHRIVI
-2C4E ; [.1BB6.0020.0002] # GLAGOLITIC SMALL LETTER SHA
-2C1E ; [.1BB6.0020.0008] # GLAGOLITIC CAPITAL LETTER SHA
-2C4F ; [.1BB7.0020.0002] # GLAGOLITIC SMALL LETTER YERU
-2C1F ; [.1BB7.0020.0008] # GLAGOLITIC CAPITAL LETTER YERU
-2C50 ; [.1BB8.0020.0002] # GLAGOLITIC SMALL LETTER YERI
-2C20 ; [.1BB8.0020.0008] # GLAGOLITIC CAPITAL LETTER YERI
-2C51 ; [.1BB9.0020.0002] # GLAGOLITIC SMALL LETTER YATI
-2C21 ; [.1BB9.0020.0008] # GLAGOLITIC CAPITAL LETTER YATI
-2C52 ; [.1BBA.0020.0002] # GLAGOLITIC SMALL LETTER SPIDERY HA
-2C22 ; [.1BBA.0020.0008] # GLAGOLITIC CAPITAL LETTER SPIDERY HA
-2C53 ; [.1BBB.0020.0002] # GLAGOLITIC SMALL LETTER YU
-2C23 ; [.1BBB.0020.0008] # GLAGOLITIC CAPITAL LETTER YU
-2C54 ; [.1BBC.0020.0002] # GLAGOLITIC SMALL LETTER SMALL YUS
-2C24 ; [.1BBC.0020.0008] # GLAGOLITIC CAPITAL LETTER SMALL YUS
-2C55 ; [.1BBD.0020.0002] # GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL
-2C25 ; [.1BBD.0020.0008] # GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
-2C56 ; [.1BBE.0020.0002] # GLAGOLITIC SMALL LETTER YO
-2C26 ; [.1BBE.0020.0008] # GLAGOLITIC CAPITAL LETTER YO
-2C57 ; [.1BBF.0020.0002] # GLAGOLITIC SMALL LETTER IOTATED SMALL YUS
-2C27 ; [.1BBF.0020.0008] # GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
-2C58 ; [.1BC0.0020.0002] # GLAGOLITIC SMALL LETTER BIG YUS
-2C28 ; [.1BC0.0020.0008] # GLAGOLITIC CAPITAL LETTER BIG YUS
-2C59 ; [.1BC1.0020.0002] # GLAGOLITIC SMALL LETTER IOTATED BIG YUS
-2C29 ; [.1BC1.0020.0008] # GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
-2C5A ; [.1BC2.0020.0002] # GLAGOLITIC SMALL LETTER FITA
-2C2A ; [.1BC2.0020.0008] # GLAGOLITIC CAPITAL LETTER FITA
-2C5B ; [.1BC3.0020.0002] # GLAGOLITIC SMALL LETTER IZHITSA
-2C2B ; [.1BC3.0020.0008] # GLAGOLITIC CAPITAL LETTER IZHITSA
-2C5C ; [.1BC4.0020.0002] # GLAGOLITIC SMALL LETTER SHTAPIC
-2C2C ; [.1BC4.0020.0008] # GLAGOLITIC CAPITAL LETTER SHTAPIC
-2C5D ; [.1BC5.0020.0002] # GLAGOLITIC SMALL LETTER TROKUTASTI A
-2C2D ; [.1BC5.0020.0008] # GLAGOLITIC CAPITAL LETTER TROKUTASTI A
-2C5E ; [.1BC6.0020.0002] # GLAGOLITIC SMALL LETTER LATINATE MYSLITE
-2C2E ; [.1BC6.0020.0008] # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
-10D0 ; [.1BC7.0020.0002] # GEORGIAN LETTER AN
-2D00 ; [.1BC8.0020.0002] # GEORGIAN SMALL LETTER AN
-10A0 ; [.1BC8.0020.0008] # GEORGIAN CAPITAL LETTER AN
-10D1 ; [.1BC9.0020.0002] # GEORGIAN LETTER BAN
-2D01 ; [.1BCA.0020.0002] # GEORGIAN SMALL LETTER BAN
-10A1 ; [.1BCA.0020.0008] # GEORGIAN CAPITAL LETTER BAN
-10D2 ; [.1BCB.0020.0002] # GEORGIAN LETTER GAN
-2D02 ; [.1BCC.0020.0002] # GEORGIAN SMALL LETTER GAN
-10A2 ; [.1BCC.0020.0008] # GEORGIAN CAPITAL LETTER GAN
-10D3 ; [.1BCD.0020.0002] # GEORGIAN LETTER DON
-2D03 ; [.1BCE.0020.0002] # GEORGIAN SMALL LETTER DON
-10A3 ; [.1BCE.0020.0008] # GEORGIAN CAPITAL LETTER DON
-10D4 ; [.1BCF.0020.0002] # GEORGIAN LETTER EN
-2D04 ; [.1BD0.0020.0002] # GEORGIAN SMALL LETTER EN
-10A4 ; [.1BD0.0020.0008] # GEORGIAN CAPITAL LETTER EN
-10D5 ; [.1BD1.0020.0002] # GEORGIAN LETTER VIN
-2D05 ; [.1BD2.0020.0002] # GEORGIAN SMALL LETTER VIN
-10A5 ; [.1BD2.0020.0008] # GEORGIAN CAPITAL LETTER VIN
-10D6 ; [.1BD3.0020.0002] # GEORGIAN LETTER ZEN
-2D06 ; [.1BD4.0020.0002] # GEORGIAN SMALL LETTER ZEN
-10A6 ; [.1BD4.0020.0008] # GEORGIAN CAPITAL LETTER ZEN
-10F1 ; [.1BD5.0020.0002] # GEORGIAN LETTER HE
-2D21 ; [.1BD6.0020.0002] # GEORGIAN SMALL LETTER HE
-10C1 ; [.1BD6.0020.0008] # GEORGIAN CAPITAL LETTER HE
-10D7 ; [.1BD7.0020.0002] # GEORGIAN LETTER TAN
-2D07 ; [.1BD8.0020.0002] # GEORGIAN SMALL LETTER TAN
-10A7 ; [.1BD8.0020.0008] # GEORGIAN CAPITAL LETTER TAN
-10D8 ; [.1BD9.0020.0002] # GEORGIAN LETTER IN
-2D08 ; [.1BDA.0020.0002] # GEORGIAN SMALL LETTER IN
-10A8 ; [.1BDA.0020.0008] # GEORGIAN CAPITAL LETTER IN
-10D9 ; [.1BDB.0020.0002] # GEORGIAN LETTER KAN
-2D09 ; [.1BDC.0020.0002] # GEORGIAN SMALL LETTER KAN
-10A9 ; [.1BDC.0020.0008] # GEORGIAN CAPITAL LETTER KAN
-10DA ; [.1BDD.0020.0002] # GEORGIAN LETTER LAS
-2D0A ; [.1BDE.0020.0002] # GEORGIAN SMALL LETTER LAS
-10AA ; [.1BDE.0020.0008] # GEORGIAN CAPITAL LETTER LAS
-10DB ; [.1BDF.0020.0002] # GEORGIAN LETTER MAN
-2D0B ; [.1BE0.0020.0002] # GEORGIAN SMALL LETTER MAN
-10AB ; [.1BE0.0020.0008] # GEORGIAN CAPITAL LETTER MAN
-10DC ; [.1BE1.0020.0002] # GEORGIAN LETTER NAR
-10FC ; [.1BE1.0020.0014] # MODIFIER LETTER GEORGIAN NAR
-2D0C ; [.1BE2.0020.0002] # GEORGIAN SMALL LETTER NAR
-10AC ; [.1BE2.0020.0008] # GEORGIAN CAPITAL LETTER NAR
-10F2 ; [.1BE3.0020.0002] # GEORGIAN LETTER HIE
-2D22 ; [.1BE4.0020.0002] # GEORGIAN SMALL LETTER HIE
-10C2 ; [.1BE4.0020.0008] # GEORGIAN CAPITAL LETTER HIE
-10DD ; [.1BE5.0020.0002] # GEORGIAN LETTER ON
-2D0D ; [.1BE6.0020.0002] # GEORGIAN SMALL LETTER ON
-10AD ; [.1BE6.0020.0008] # GEORGIAN CAPITAL LETTER ON
-10DE ; [.1BE7.0020.0002] # GEORGIAN LETTER PAR
-2D0E ; [.1BE8.0020.0002] # GEORGIAN SMALL LETTER PAR
-10AE ; [.1BE8.0020.0008] # GEORGIAN CAPITAL LETTER PAR
-10DF ; [.1BE9.0020.0002] # GEORGIAN LETTER ZHAR
-2D0F ; [.1BEA.0020.0002] # GEORGIAN SMALL LETTER ZHAR
-10AF ; [.1BEA.0020.0008] # GEORGIAN CAPITAL LETTER ZHAR
-10E0 ; [.1BEB.0020.0002] # GEORGIAN LETTER RAE
-2D10 ; [.1BEC.0020.0002] # GEORGIAN SMALL LETTER RAE
-10B0 ; [.1BEC.0020.0008] # GEORGIAN CAPITAL LETTER RAE
-10E1 ; [.1BED.0020.0002] # GEORGIAN LETTER SAN
-2D11 ; [.1BEE.0020.0002] # GEORGIAN SMALL LETTER SAN
-10B1 ; [.1BEE.0020.0008] # GEORGIAN CAPITAL LETTER SAN
-10E2 ; [.1BEF.0020.0002] # GEORGIAN LETTER TAR
-2D12 ; [.1BF0.0020.0002] # GEORGIAN SMALL LETTER TAR
-10B2 ; [.1BF0.0020.0008] # GEORGIAN CAPITAL LETTER TAR
-10F3 ; [.1BF1.0020.0002] # GEORGIAN LETTER WE
-2D23 ; [.1BF2.0020.0002] # GEORGIAN SMALL LETTER WE
-10C3 ; [.1BF2.0020.0008] # GEORGIAN CAPITAL LETTER WE
-10E3 ; [.1BF3.0020.0002] # GEORGIAN LETTER UN
-2D13 ; [.1BF4.0020.0002] # GEORGIAN SMALL LETTER UN
-10B3 ; [.1BF4.0020.0008] # GEORGIAN CAPITAL LETTER UN
-10E4 ; [.1BF5.0020.0002] # GEORGIAN LETTER PHAR
-2D14 ; [.1BF6.0020.0002] # GEORGIAN SMALL LETTER PHAR
-10B4 ; [.1BF6.0020.0008] # GEORGIAN CAPITAL LETTER PHAR
-10E5 ; [.1BF7.0020.0002] # GEORGIAN LETTER KHAR
-2D15 ; [.1BF8.0020.0002] # GEORGIAN SMALL LETTER KHAR
-10B5 ; [.1BF8.0020.0008] # GEORGIAN CAPITAL LETTER KHAR
-10E6 ; [.1BF9.0020.0002] # GEORGIAN LETTER GHAN
-2D16 ; [.1BFA.0020.0002] # GEORGIAN SMALL LETTER GHAN
-10B6 ; [.1BFA.0020.0008] # GEORGIAN CAPITAL LETTER GHAN
-10E7 ; [.1BFB.0020.0002] # GEORGIAN LETTER QAR
-2D17 ; [.1BFC.0020.0002] # GEORGIAN SMALL LETTER QAR
-10B7 ; [.1BFC.0020.0008] # GEORGIAN CAPITAL LETTER QAR
-10E8 ; [.1BFD.0020.0002] # GEORGIAN LETTER SHIN
-2D18 ; [.1BFE.0020.0002] # GEORGIAN SMALL LETTER SHIN
-10B8 ; [.1BFE.0020.0008] # GEORGIAN CAPITAL LETTER SHIN
-10E9 ; [.1BFF.0020.0002] # GEORGIAN LETTER CHIN
-2D19 ; [.1C00.0020.0002] # GEORGIAN SMALL LETTER CHIN
-10B9 ; [.1C00.0020.0008] # GEORGIAN CAPITAL LETTER CHIN
-10EA ; [.1C01.0020.0002] # GEORGIAN LETTER CAN
-2D1A ; [.1C02.0020.0002] # GEORGIAN SMALL LETTER CAN
-10BA ; [.1C02.0020.0008] # GEORGIAN CAPITAL LETTER CAN
-10EB ; [.1C03.0020.0002] # GEORGIAN LETTER JIL
-2D1B ; [.1C04.0020.0002] # GEORGIAN SMALL LETTER JIL
-10BB ; [.1C04.0020.0008] # GEORGIAN CAPITAL LETTER JIL
-10EC ; [.1C05.0020.0002] # GEORGIAN LETTER CIL
-2D1C ; [.1C06.0020.0002] # GEORGIAN SMALL LETTER CIL
-10BC ; [.1C06.0020.0008] # GEORGIAN CAPITAL LETTER CIL
-10ED ; [.1C07.0020.0002] # GEORGIAN LETTER CHAR
-2D1D ; [.1C08.0020.0002] # GEORGIAN SMALL LETTER CHAR
-10BD ; [.1C08.0020.0008] # GEORGIAN CAPITAL LETTER CHAR
-10EE ; [.1C09.0020.0002] # GEORGIAN LETTER XAN
-2D1E ; [.1C0A.0020.0002] # GEORGIAN SMALL LETTER XAN
-10BE ; [.1C0A.0020.0008] # GEORGIAN CAPITAL LETTER XAN
-10F4 ; [.1C0B.0020.0002] # GEORGIAN LETTER HAR
-2D24 ; [.1C0C.0020.0002] # GEORGIAN SMALL LETTER HAR
-10C4 ; [.1C0C.0020.0008] # GEORGIAN CAPITAL LETTER HAR
-10EF ; [.1C0D.0020.0002] # GEORGIAN LETTER JHAN
-2D1F ; [.1C0E.0020.0002] # GEORGIAN SMALL LETTER JHAN
-10BF ; [.1C0E.0020.0008] # GEORGIAN CAPITAL LETTER JHAN
-10F0 ; [.1C0F.0020.0002] # GEORGIAN LETTER HAE
-2D20 ; [.1C10.0020.0002] # GEORGIAN SMALL LETTER HAE
-10C0 ; [.1C10.0020.0008] # GEORGIAN CAPITAL LETTER HAE
-10F5 ; [.1C11.0020.0002] # GEORGIAN LETTER HOE
-2D25 ; [.1C12.0020.0002] # GEORGIAN SMALL LETTER HOE
-10C5 ; [.1C12.0020.0008] # GEORGIAN CAPITAL LETTER HOE
-10F6 ; [.1C13.0020.0002] # GEORGIAN LETTER FI
-10F7 ; [.1C14.0020.0002] # GEORGIAN LETTER YN
-2D27 ; [.1C15.0020.0002] # GEORGIAN SMALL LETTER YN
-10C7 ; [.1C15.0020.0008] # GEORGIAN CAPITAL LETTER YN
-10F8 ; [.1C16.0020.0002] # GEORGIAN LETTER ELIFI
-10F9 ; [.1C17.0020.0002] # GEORGIAN LETTER TURNED GAN
-10FA ; [.1C18.0020.0002] # GEORGIAN LETTER AIN
-10FD ; [.1C19.0020.0002] # GEORGIAN LETTER AEN
-2D2D ; [.1C1A.0020.0002] # GEORGIAN SMALL LETTER AEN
-10CD ; [.1C1A.0020.0008] # GEORGIAN CAPITAL LETTER AEN
-10FE ; [.1C1B.0020.0002] # GEORGIAN LETTER HARD SIGN
-10FF ; [.1C1C.0020.0002] # GEORGIAN LETTER LABIAL SIGN
-0561 ; [.1C1D.0020.0002] # ARMENIAN SMALL LETTER AYB
-0531 ; [.1C1D.0020.0008] # ARMENIAN CAPITAL LETTER AYB
-0562 ; [.1C1E.0020.0002] # ARMENIAN SMALL LETTER BEN
-0532 ; [.1C1E.0020.0008] # ARMENIAN CAPITAL LETTER BEN
-0563 ; [.1C1F.0020.0002] # ARMENIAN SMALL LETTER GIM
-0533 ; [.1C1F.0020.0008] # ARMENIAN CAPITAL LETTER GIM
-0564 ; [.1C20.0020.0002] # ARMENIAN SMALL LETTER DA
-0534 ; [.1C20.0020.0008] # ARMENIAN CAPITAL LETTER DA
-0565 ; [.1C21.0020.0002] # ARMENIAN SMALL LETTER ECH
-0535 ; [.1C21.0020.0008] # ARMENIAN CAPITAL LETTER ECH
-0587 ; [.1C21.0020.0004][.1C3E.0020.0004] # ARMENIAN SMALL LIGATURE ECH YIWN
-0566 ; [.1C22.0020.0002] # ARMENIAN SMALL LETTER ZA
-0536 ; [.1C22.0020.0008] # ARMENIAN CAPITAL LETTER ZA
-0567 ; [.1C23.0020.0002] # ARMENIAN SMALL LETTER EH
-0537 ; [.1C23.0020.0008] # ARMENIAN CAPITAL LETTER EH
-0568 ; [.1C24.0020.0002] # ARMENIAN SMALL LETTER ET
-0538 ; [.1C24.0020.0008] # ARMENIAN CAPITAL LETTER ET
-0569 ; [.1C25.0020.0002] # ARMENIAN SMALL LETTER TO
-0539 ; [.1C25.0020.0008] # ARMENIAN CAPITAL LETTER TO
-056A ; [.1C26.0020.0002] # ARMENIAN SMALL LETTER ZHE
-053A ; [.1C26.0020.0008] # ARMENIAN CAPITAL LETTER ZHE
-056B ; [.1C27.0020.0002] # ARMENIAN SMALL LETTER INI
-053B ; [.1C27.0020.0008] # ARMENIAN CAPITAL LETTER INI
-056C ; [.1C28.0020.0002] # ARMENIAN SMALL LETTER LIWN
-053C ; [.1C28.0020.0008] # ARMENIAN CAPITAL LETTER LIWN
-056D ; [.1C29.0020.0002] # ARMENIAN SMALL LETTER XEH
-053D ; [.1C29.0020.0008] # ARMENIAN CAPITAL LETTER XEH
-056E ; [.1C2A.0020.0002] # ARMENIAN SMALL LETTER CA
-053E ; [.1C2A.0020.0008] # ARMENIAN CAPITAL LETTER CA
-056F ; [.1C2B.0020.0002] # ARMENIAN SMALL LETTER KEN
-053F ; [.1C2B.0020.0008] # ARMENIAN CAPITAL LETTER KEN
-0570 ; [.1C2C.0020.0002] # ARMENIAN SMALL LETTER HO
-0540 ; [.1C2C.0020.0008] # ARMENIAN CAPITAL LETTER HO
-0571 ; [.1C2D.0020.0002] # ARMENIAN SMALL LETTER JA
-0541 ; [.1C2D.0020.0008] # ARMENIAN CAPITAL LETTER JA
-0572 ; [.1C2E.0020.0002] # ARMENIAN SMALL LETTER GHAD
-0542 ; [.1C2E.0020.0008] # ARMENIAN CAPITAL LETTER GHAD
-0573 ; [.1C2F.0020.0002] # ARMENIAN SMALL LETTER CHEH
-0543 ; [.1C2F.0020.0008] # ARMENIAN CAPITAL LETTER CHEH
-0574 ; [.1C30.0020.0002] # ARMENIAN SMALL LETTER MEN
-0544 ; [.1C30.0020.0008] # ARMENIAN CAPITAL LETTER MEN
-FB14 ; [.1C30.0020.0004][.1C21.0020.0004] # ARMENIAN SMALL LIGATURE MEN ECH
-FB15 ; [.1C30.0020.0004][.1C27.0020.0004] # ARMENIAN SMALL LIGATURE MEN INI
-FB17 ; [.1C30.0020.0004][.1C29.0020.0004] # ARMENIAN SMALL LIGATURE MEN XEH
-FB13 ; [.1C30.0020.0004][.1C32.0020.0004] # ARMENIAN SMALL LIGATURE MEN NOW
-0575 ; [.1C31.0020.0002] # ARMENIAN SMALL LETTER YI
-0545 ; [.1C31.0020.0008] # ARMENIAN CAPITAL LETTER YI
-0576 ; [.1C32.0020.0002] # ARMENIAN SMALL LETTER NOW
-0546 ; [.1C32.0020.0008] # ARMENIAN CAPITAL LETTER NOW
-0577 ; [.1C33.0020.0002] # ARMENIAN SMALL LETTER SHA
-0547 ; [.1C33.0020.0008] # ARMENIAN CAPITAL LETTER SHA
-0578 ; [.1C34.0020.0002] # ARMENIAN SMALL LETTER VO
-0548 ; [.1C34.0020.0008] # ARMENIAN CAPITAL LETTER VO
-0579 ; [.1C35.0020.0002] # ARMENIAN SMALL LETTER CHA
-0549 ; [.1C35.0020.0008] # ARMENIAN CAPITAL LETTER CHA
-057A ; [.1C36.0020.0002] # ARMENIAN SMALL LETTER PEH
-054A ; [.1C36.0020.0008] # ARMENIAN CAPITAL LETTER PEH
-057B ; [.1C37.0020.0002] # ARMENIAN SMALL LETTER JHEH
-054B ; [.1C37.0020.0008] # ARMENIAN CAPITAL LETTER JHEH
-057C ; [.1C38.0020.0002] # ARMENIAN SMALL LETTER RA
-054C ; [.1C38.0020.0008] # ARMENIAN CAPITAL LETTER RA
-057D ; [.1C39.0020.0002] # ARMENIAN SMALL LETTER SEH
-054D ; [.1C39.0020.0008] # ARMENIAN CAPITAL LETTER SEH
-057E ; [.1C3A.0020.0002] # ARMENIAN SMALL LETTER VEW
-054E ; [.1C3A.0020.0008] # ARMENIAN CAPITAL LETTER VEW
-FB16 ; [.1C3A.0020.0004][.1C32.0020.0004] # ARMENIAN SMALL LIGATURE VEW NOW
-057F ; [.1C3B.0020.0002] # ARMENIAN SMALL LETTER TIWN
-054F ; [.1C3B.0020.0008] # ARMENIAN CAPITAL LETTER TIWN
-0580 ; [.1C3C.0020.0002] # ARMENIAN SMALL LETTER REH
-0550 ; [.1C3C.0020.0008] # ARMENIAN CAPITAL LETTER REH
-0581 ; [.1C3D.0020.0002] # ARMENIAN SMALL LETTER CO
-0551 ; [.1C3D.0020.0008] # ARMENIAN CAPITAL LETTER CO
-0582 ; [.1C3E.0020.0002] # ARMENIAN SMALL LETTER YIWN
-0552 ; [.1C3E.0020.0008] # ARMENIAN CAPITAL LETTER YIWN
-0583 ; [.1C3F.0020.0002] # ARMENIAN SMALL LETTER PIWR
-0553 ; [.1C3F.0020.0008] # ARMENIAN CAPITAL LETTER PIWR
-0584 ; [.1C40.0020.0002] # ARMENIAN SMALL LETTER KEH
-0554 ; [.1C40.0020.0008] # ARMENIAN CAPITAL LETTER KEH
-0585 ; [.1C41.0020.0002] # ARMENIAN SMALL LETTER OH
-0555 ; [.1C41.0020.0008] # ARMENIAN CAPITAL LETTER OH
-0586 ; [.1C42.0020.0002] # ARMENIAN SMALL LETTER FEH
-0556 ; [.1C42.0020.0008] # ARMENIAN CAPITAL LETTER FEH
-0559 ; [.1C43.0020.0002] # ARMENIAN MODIFIER LETTER LEFT HALF RING
-05D0 ; [.1C44.0020.0002] # HEBREW LETTER ALEF
-2135 ; [.1C44.0020.0004] # ALEF SYMBOL
-FB21 ; [.1C44.0020.0005] # HEBREW LETTER WIDE ALEF
-FB2E ; [.1C44.0020.0002][.0000.0059.0002] # HEBREW LETTER ALEF WITH PATAH
-FB2F ; [.1C44.0020.0002][.0000.005A.0002] # HEBREW LETTER ALEF WITH QAMATS
-FB30 ; [.1C44.0020.0002][.0000.005F.0002] # HEBREW LETTER ALEF WITH MAPIQ
-FB4F ; [.1C44.0020.0004][.1C4F.0020.0004] # HEBREW LIGATURE ALEF LAMED
-05D1 ; [.1C45.0020.0002] # HEBREW LETTER BET
-2136 ; [.1C45.0020.0004] # BET SYMBOL
-FB31 ; [.1C45.0020.0002][.0000.005F.0002] # HEBREW LETTER BET WITH DAGESH
-FB4C ; [.1C45.0020.0002][.0000.0060.0002] # HEBREW LETTER BET WITH RAFE
-05D2 ; [.1C46.0020.0002] # HEBREW LETTER GIMEL
-2137 ; [.1C46.0020.0004] # GIMEL SYMBOL
-FB32 ; [.1C46.0020.0002][.0000.005F.0002] # HEBREW LETTER GIMEL WITH DAGESH
-05D3 ; [.1C47.0020.0002] # HEBREW LETTER DALET
-2138 ; [.1C47.0020.0004] # DALET SYMBOL
-FB22 ; [.1C47.0020.0005] # HEBREW LETTER WIDE DALET
-FB33 ; [.1C47.0020.0002][.0000.005F.0002] # HEBREW LETTER DALET WITH DAGESH
-05D4 ; [.1C48.0020.0002] # HEBREW LETTER HE
-FB23 ; [.1C48.0020.0005] # HEBREW LETTER WIDE HE
-FB34 ; [.1C48.0020.0002][.0000.005F.0002] # HEBREW LETTER HE WITH MAPIQ
-05D5 ; [.1C49.0020.0002] # HEBREW LETTER VAV
-FB4B ; [.1C49.0020.0002][.0000.005B.0002] # HEBREW LETTER VAV WITH HOLAM
-FB35 ; [.1C49.0020.0002][.0000.005F.0002] # HEBREW LETTER VAV WITH DAGESH
-05F0 ; [.1C49.0020.0004][.1C49.0020.0004] # HEBREW LIGATURE YIDDISH DOUBLE VAV
-05F1 ; [.1C49.0020.0004][.1C4D.0020.0004] # HEBREW LIGATURE YIDDISH VAV YOD
-05D6 ; [.1C4A.0020.0002] # HEBREW LETTER ZAYIN
-FB36 ; [.1C4A.0020.0002][.0000.005F.0002] # HEBREW LETTER ZAYIN WITH DAGESH
-05D7 ; [.1C4B.0020.0002] # HEBREW LETTER HET
-05D8 ; [.1C4C.0020.0002] # HEBREW LETTER TET
-FB38 ; [.1C4C.0020.0002][.0000.005F.0002] # HEBREW LETTER TET WITH DAGESH
-05D9 ; [.1C4D.0020.0002] # HEBREW LETTER YOD
-FB1D ; [.1C4D.0020.0002][.0000.0056.0002] # HEBREW LETTER YOD WITH HIRIQ
-FB39 ; [.1C4D.0020.0002][.0000.005F.0002] # HEBREW LETTER YOD WITH DAGESH
-05F2 ; [.1C4D.0020.0004][.1C4D.0020.0004] # HEBREW LIGATURE YIDDISH DOUBLE YOD
-FB1F ; [.1C4D.0020.0004][.1C4D.0020.0004][.0000.0059.0002] # HEBREW LIGATURE YIDDISH YOD YOD PATAH
-05DB ; [.1C4E.0020.0002] # HEBREW LETTER KAF
-FB24 ; [.1C4E.0020.0005] # HEBREW LETTER WIDE KAF
-05DA ; [.1C4E.0020.0019] # HEBREW LETTER FINAL KAF
-FB3B ; [.1C4E.0020.0002][.0000.005F.0002] # HEBREW LETTER KAF WITH DAGESH
-FB3A ; [.1C4E.0020.0019][.0000.005F.0002] # HEBREW LETTER FINAL KAF WITH DAGESH
-FB4D ; [.1C4E.0020.0002][.0000.0060.0002] # HEBREW LETTER KAF WITH RAFE
-05DC ; [.1C4F.0020.0002] # HEBREW LETTER LAMED
-FB25 ; [.1C4F.0020.0005] # HEBREW LETTER WIDE LAMED
-FB3C ; [.1C4F.0020.0002][.0000.005F.0002] # HEBREW LETTER LAMED WITH DAGESH
-05DE ; [.1C50.0020.0002] # HEBREW LETTER MEM
-FB26 ; [.1C50.0020.0005] # HEBREW LETTER WIDE FINAL MEM
-05DD ; [.1C50.0020.0019] # HEBREW LETTER FINAL MEM
-FB3E ; [.1C50.0020.0002][.0000.005F.0002] # HEBREW LETTER MEM WITH DAGESH
-05E0 ; [.1C51.0020.0002] # HEBREW LETTER NUN
-05DF ; [.1C51.0020.0019] # HEBREW LETTER FINAL NUN
-FB40 ; [.1C51.0020.0002][.0000.005F.0002] # HEBREW LETTER NUN WITH DAGESH
-05E1 ; [.1C52.0020.0002] # HEBREW LETTER SAMEKH
-FB41 ; [.1C52.0020.0002][.0000.005F.0002] # HEBREW LETTER SAMEKH WITH DAGESH
-05E2 ; [.1C53.0020.0002] # HEBREW LETTER AYIN
-FB20 ; [.1C53.0020.0005] # HEBREW LETTER ALTERNATIVE AYIN
-05E4 ; [.1C54.0020.0002] # HEBREW LETTER PE
-05E3 ; [.1C54.0020.0019] # HEBREW LETTER FINAL PE
-FB44 ; [.1C54.0020.0002][.0000.005F.0002] # HEBREW LETTER PE WITH DAGESH
-FB43 ; [.1C54.0020.0019][.0000.005F.0002] # HEBREW LETTER FINAL PE WITH DAGESH
-FB4E ; [.1C54.0020.0002][.0000.0060.0002] # HEBREW LETTER PE WITH RAFE
-05E6 ; [.1C55.0020.0002] # HEBREW LETTER TSADI
-05E5 ; [.1C55.0020.0019] # HEBREW LETTER FINAL TSADI
-FB46 ; [.1C55.0020.0002][.0000.005F.0002] # HEBREW LETTER TSADI WITH DAGESH
-05E7 ; [.1C56.0020.0002] # HEBREW LETTER QOF
-FB47 ; [.1C56.0020.0002][.0000.005F.0002] # HEBREW LETTER QOF WITH DAGESH
-05E8 ; [.1C57.0020.0002] # HEBREW LETTER RESH
-FB27 ; [.1C57.0020.0005] # HEBREW LETTER WIDE RESH
-FB48 ; [.1C57.0020.0002][.0000.005F.0002] # HEBREW LETTER RESH WITH DAGESH
-05E9 ; [.1C58.0020.0002] # HEBREW LETTER SHIN
-FB2B ; [.1C58.0020.0002][.0000.005D.0002] # HEBREW LETTER SHIN WITH SIN DOT
-FB2A ; [.1C58.0020.0002][.0000.005E.0002] # HEBREW LETTER SHIN WITH SHIN DOT
-FB49 ; [.1C58.0020.0002][.0000.005F.0002] # HEBREW LETTER SHIN WITH DAGESH
-FB2D ; [.1C58.0020.0002][.0000.005F.0002][.0000.005D.0002] # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
-FB2C ; [.1C58.0020.0002][.0000.005F.0002][.0000.005E.0002] # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
-05EA ; [.1C59.0020.0002] # HEBREW LETTER TAV
-FB28 ; [.1C59.0020.0005] # HEBREW LETTER WIDE TAV
-FB4A ; [.1C59.0020.0002][.0000.005F.0002] # HEBREW LETTER TAV WITH DAGESH
-10900 ; [.1C5A.0020.0002] # PHOENICIAN LETTER ALF
-10901 ; [.1C5B.0020.0002] # PHOENICIAN LETTER BET
-10902 ; [.1C5C.0020.0002] # PHOENICIAN LETTER GAML
-10903 ; [.1C5D.0020.0002] # PHOENICIAN LETTER DELT
-10904 ; [.1C5E.0020.0002] # PHOENICIAN LETTER HE
-10905 ; [.1C5F.0020.0002] # PHOENICIAN LETTER WAU
-10906 ; [.1C60.0020.0002] # PHOENICIAN LETTER ZAI
-10907 ; [.1C61.0020.0002] # PHOENICIAN LETTER HET
-10908 ; [.1C62.0020.0002] # PHOENICIAN LETTER TET
-10909 ; [.1C63.0020.0002] # PHOENICIAN LETTER YOD
-1090A ; [.1C64.0020.0002] # PHOENICIAN LETTER KAF
-1090B ; [.1C65.0020.0002] # PHOENICIAN LETTER LAMD
-1090C ; [.1C66.0020.0002] # PHOENICIAN LETTER MEM
-1090D ; [.1C67.0020.0002] # PHOENICIAN LETTER NUN
-1090E ; [.1C68.0020.0002] # PHOENICIAN LETTER SEMK
-1090F ; [.1C69.0020.0002] # PHOENICIAN LETTER AIN
-10910 ; [.1C6A.0020.0002] # PHOENICIAN LETTER PE
-10911 ; [.1C6B.0020.0002] # PHOENICIAN LETTER SADE
-10912 ; [.1C6C.0020.0002] # PHOENICIAN LETTER QOF
-10913 ; [.1C6D.0020.0002] # PHOENICIAN LETTER ROSH
-10914 ; [.1C6E.0020.0002] # PHOENICIAN LETTER SHIN
-10915 ; [.1C6F.0020.0002] # PHOENICIAN LETTER TAU
-0800 ; [.1C70.0020.0002] # SAMARITAN LETTER ALAF
-0801 ; [.1C71.0020.0002] # SAMARITAN LETTER BIT
-0802 ; [.1C72.0020.0002] # SAMARITAN LETTER GAMAN
-0803 ; [.1C73.0020.0002] # SAMARITAN LETTER DALAT
-0804 ; [.1C74.0020.0002] # SAMARITAN LETTER IY
-0805 ; [.1C75.0020.0002] # SAMARITAN LETTER BAA
-0806 ; [.1C76.0020.0002] # SAMARITAN LETTER ZEN
-0807 ; [.1C77.0020.0002] # SAMARITAN LETTER IT
-0808 ; [.1C78.0020.0002] # SAMARITAN LETTER TIT
-0809 ; [.1C79.0020.0002] # SAMARITAN LETTER YUT
-080A ; [.1C7A.0020.0002] # SAMARITAN LETTER KAAF
-080B ; [.1C7B.0020.0002] # SAMARITAN LETTER LABAT
-080C ; [.1C7C.0020.0002] # SAMARITAN LETTER MIM
-080D ; [.1C7D.0020.0002] # SAMARITAN LETTER NUN
-080E ; [.1C7E.0020.0002] # SAMARITAN LETTER SINGAAT
-080F ; [.1C7F.0020.0002] # SAMARITAN LETTER IN
-0810 ; [.1C80.0020.0002] # SAMARITAN LETTER FI
-0811 ; [.1C81.0020.0002] # SAMARITAN LETTER TSAADIY
-0812 ; [.1C82.0020.0002] # SAMARITAN LETTER QUF
-0813 ; [.1C83.0020.0002] # SAMARITAN LETTER RISH
-0814 ; [.1C84.0020.0002] # SAMARITAN LETTER SHAN
-0815 ; [.1C85.0020.0002] # SAMARITAN LETTER TAAF
-0816 ; [.1C86.0020.0002] # SAMARITAN MARK IN
-0817 ; [.1C87.0020.0002] # SAMARITAN MARK IN-ALAF
-081A ; [.1C88.0020.0002] # SAMARITAN MODIFIER LETTER EPENTHETIC YUT
-081B ; [.1C89.0020.0002] # SAMARITAN MARK EPENTHETIC YUT
-0621 ; [.1C8A.0020.0002] # ARABIC LETTER HAMZA
-0674 ; [.1C8A.0020.0004] # ARABIC LETTER HIGH HAMZA
-FE80 ; [.1C8A.0020.001A] # ARABIC LETTER HAMZA ISOLATED FORM
-06FD ; [.1C8A.0020.0004][.0000.00FD.0004] # ARABIC SIGN SINDHI AMPERSAND
-0622 ; [.1C8B.0020.0002] # ARABIC LETTER ALEF WITH MADDA ABOVE
-0627 0653 ; [.1C8B.0020.0002] # ARABIC LETTER ALEF WITH MADDA ABOVE
-FE82 ; [.1C8B.0020.0019] # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
-FE81 ; [.1C8B.0020.001A] # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
-0623 ; [.1C8C.0020.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0627 0654 ; [.1C8C.0020.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-FE84 ; [.1C8C.0020.0019] # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
-FE83 ; [.1C8C.0020.001A] # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
-0672 ; [.1C8D.0020.0002] # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
-0671 ; [.1C8E.0020.0002] # ARABIC LETTER ALEF WASLA
-FB51 ; [.1C8E.0020.0019] # ARABIC LETTER ALEF WASLA FINAL FORM
-FB50 ; [.1C8E.0020.001A] # ARABIC LETTER ALEF WASLA ISOLATED FORM
-0624 ; [.1C8F.0020.0002] # ARABIC LETTER WAW WITH HAMZA ABOVE
-0648 0654 ; [.1C8F.0020.0002] # ARABIC LETTER WAW WITH HAMZA ABOVE
-FE86 ; [.1C8F.0020.0019] # ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
-FE85 ; [.1C8F.0020.001A] # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
-0625 ; [.1C90.0020.0002] # ARABIC LETTER ALEF WITH HAMZA BELOW
-0627 0655 ; [.1C90.0020.0002] # ARABIC LETTER ALEF WITH HAMZA BELOW
-FE88 ; [.1C90.0020.0019] # ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
-FE87 ; [.1C90.0020.001A] # ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
-0673 ; [.1C91.0020.0002] # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
-0773 ; [.1C92.0020.0002] # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0774 ; [.1C93.0020.0002] # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0626 ; [.1C94.0020.0002] # ARABIC LETTER YEH WITH HAMZA ABOVE
-064A 0654 ; [.1C94.0020.0002] # ARABIC LETTER YEH WITH HAMZA ABOVE
-FE8B ; [.1C94.0020.0017] # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
-FE8C ; [.1C94.0020.0018] # ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
-FE8A ; [.1C94.0020.0019] # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
-FE89 ; [.1C94.0020.001A] # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
-FBEB ; [.1C94.0020.0019][.1C98.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
-FBEA ; [.1C94.0020.001A][.1C98.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
-FC97 ; [.1C94.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
-FC00 ; [.1C94.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
-FC98 ; [.1C94.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
-FC01 ; [.1C94.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
-FC99 ; [.1C94.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
-FC64 ; [.1C94.0020.0019][.1CCE.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
-FC65 ; [.1C94.0020.0019][.1CCF.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
-FC9A ; [.1C94.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
-FCDF ; [.1C94.0020.0018][.1D23.0020.0018] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
-FC66 ; [.1C94.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
-FC02 ; [.1C94.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
-FC67 ; [.1C94.0020.0019][.1D27.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
-FC9B ; [.1C94.0020.0017][.1D30.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
-FCE0 ; [.1C94.0020.0018][.1D30.0020.0018] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
-FBED ; [.1C94.0020.0019][.1D35.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
-FBEC ; [.1C94.0020.001A][.1D35.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
-FBEF ; [.1C94.0020.0019][.1D36.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
-FBEE ; [.1C94.0020.001A][.1D36.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
-FBF3 ; [.1C94.0020.0019][.1D39.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
-FBF2 ; [.1C94.0020.001A][.1D39.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
-FBF1 ; [.1C94.0020.0019][.1D3A.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
-FBF0 ; [.1C94.0020.001A][.1D3A.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
-FBF5 ; [.1C94.0020.0019][.1D3B.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
-FBF4 ; [.1C94.0020.001A][.1D3B.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
-FBFB ; [.1C94.0020.0017][.1D43.0020.0017] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
-FBFA ; [.1C94.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FC68 ; [.1C94.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FBF9 ; [.1C94.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FC03 ; [.1C94.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FC69 ; [.1C94.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
-FC04 ; [.1C94.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
-FBF8 ; [.1C94.0020.0017][.1D48.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
-FBF7 ; [.1C94.0020.0019][.1D48.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
-FBF6 ; [.1C94.0020.001A][.1D48.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
-08A8 ; [.1C95.0020.0002] # ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE
-08A9 ; [.1C96.0020.0002] # ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE
-08AC ; [.1C97.0020.0002] # ARABIC LETTER ROHINGYA YEH
-0627 ; [.1C98.0020.0002] # ARABIC LETTER ALEF
-1EE00 ; [.1C98.0020.0005] # ARABIC MATHEMATICAL ALEF
-1EE80 ; [.1C98.0020.0005] # ARABIC MATHEMATICAL LOOPED ALEF
-FE8E ; [.1C98.0020.0019] # ARABIC LETTER ALEF FINAL FORM
-FE8D ; [.1C98.0020.001A] # ARABIC LETTER ALEF ISOLATED FORM
-FD3C ; [.1C98.0020.0019][.0000.006D.0019] # ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
-FD3D ; [.1C98.0020.001A][.0000.006D.001A] # ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
-0675 ; [.1C98.0020.0004][.1C8A.0020.0004] # ARABIC LETTER HIGH HAMZA ALEF
-FDF3 ; [.1C98.0020.001A][.1D09.0020.001A][.1C9A.0020.001A][.1CCE.0020.001A] # ARABIC LIGATURE AKBAR ISOLATED FORM
-FDF2 ; [.1C98.0020.001A][.1D1C.0020.001A][.1D1C.0020.001A][.1D30.0020.001A] # ARABIC LIGATURE ALLAH ISOLATED FORM
-066E ; [.1C99.0020.0002] # ARABIC LETTER DOTLESS BEH
-1EE1C ; [.1C99.0020.0005] # ARABIC MATHEMATICAL DOTLESS BEH
-1EE7C ; [.1C99.0020.0005] # ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
-0628 ; [.1C9A.0020.0002] # ARABIC LETTER BEH
-1EE01 ; [.1C9A.0020.0005] # ARABIC MATHEMATICAL BEH
-1EE21 ; [.1C9A.0020.0005] # ARABIC MATHEMATICAL INITIAL BEH
-1EE61 ; [.1C9A.0020.0005] # ARABIC MATHEMATICAL STRETCHED BEH
-1EE81 ; [.1C9A.0020.0005] # ARABIC MATHEMATICAL LOOPED BEH
-1EEA1 ; [.1C9A.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK BEH
-FE91 ; [.1C9A.0020.0017] # ARABIC LETTER BEH INITIAL FORM
-FE92 ; [.1C9A.0020.0018] # ARABIC LETTER BEH MEDIAL FORM
-FE90 ; [.1C9A.0020.0019] # ARABIC LETTER BEH FINAL FORM
-FE8F ; [.1C9A.0020.001A] # ARABIC LETTER BEH ISOLATED FORM
-FC9C ; [.1C9A.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
-FC05 ; [.1C9A.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
-FC9D ; [.1C9A.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE BEH WITH HAH INITIAL FORM
-FC06 ; [.1C9A.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
-FDC2 ; [.1C9A.0020.0019][.1CB5.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
-FC9E ; [.1C9A.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
-FC07 ; [.1C9A.0020.001A][.1CB6.0020.001A] # ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
-FD9E ; [.1C9A.0020.0019][.1CB6.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
-FC6A ; [.1C9A.0020.0019][.1CCE.0020.0019] # ARABIC LIGATURE BEH WITH REH FINAL FORM
-FC6B ; [.1C9A.0020.0019][.1CCF.0020.0019] # ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
-FC9F ; [.1C9A.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
-FCE1 ; [.1C9A.0020.0018][.1D23.0020.0018] # ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
-FC6C ; [.1C9A.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE BEH WITH MEEM FINAL FORM
-FC08 ; [.1C9A.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
-FC6D ; [.1C9A.0020.0019][.1D27.0020.0019] # ARABIC LIGATURE BEH WITH NOON FINAL FORM
-FCA0 ; [.1C9A.0020.0017][.1D30.0020.0017] # ARABIC LIGATURE BEH WITH HEH INITIAL FORM
-FCE2 ; [.1C9A.0020.0018][.1D30.0020.0018] # ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
-FC6E ; [.1C9A.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
-FC09 ; [.1C9A.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
-FC6F ; [.1C9A.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE BEH WITH YEH FINAL FORM
-FC0A ; [.1C9A.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
-067B ; [.1C9B.0020.0002] # ARABIC LETTER BEEH
-FB54 ; [.1C9B.0020.0017] # ARABIC LETTER BEEH INITIAL FORM
-FB55 ; [.1C9B.0020.0018] # ARABIC LETTER BEEH MEDIAL FORM
-FB53 ; [.1C9B.0020.0019] # ARABIC LETTER BEEH FINAL FORM
-FB52 ; [.1C9B.0020.001A] # ARABIC LETTER BEEH ISOLATED FORM
-067E ; [.1C9C.0020.0002] # ARABIC LETTER PEH
-FB58 ; [.1C9C.0020.0017] # ARABIC LETTER PEH INITIAL FORM
-FB59 ; [.1C9C.0020.0018] # ARABIC LETTER PEH MEDIAL FORM
-FB57 ; [.1C9C.0020.0019] # ARABIC LETTER PEH FINAL FORM
-FB56 ; [.1C9C.0020.001A] # ARABIC LETTER PEH ISOLATED FORM
-0680 ; [.1C9D.0020.0002] # ARABIC LETTER BEHEH
-FB5C ; [.1C9D.0020.0017] # ARABIC LETTER BEHEH INITIAL FORM
-FB5D ; [.1C9D.0020.0018] # ARABIC LETTER BEHEH MEDIAL FORM
-FB5B ; [.1C9D.0020.0019] # ARABIC LETTER BEHEH FINAL FORM
-FB5A ; [.1C9D.0020.001A] # ARABIC LETTER BEHEH ISOLATED FORM
-0750 ; [.1C9E.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW
-0751 ; [.1C9F.0020.0002] # ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE
-0752 ; [.1CA0.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW
-0753 ; [.1CA1.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE
-0754 ; [.1CA2.0020.0002] # ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE
-0755 ; [.1CA3.0020.0002] # ARABIC LETTER BEH WITH INVERTED SMALL V BELOW
-08A0 ; [.1CA4.0020.0002] # ARABIC LETTER BEH WITH SMALL V BELOW
-0756 ; [.1CA5.0020.0002] # ARABIC LETTER BEH WITH SMALL V
-0629 ; [.1CA6.0020.0002] # ARABIC LETTER TEH MARBUTA
-FE94 ; [.1CA6.0020.0019] # ARABIC LETTER TEH MARBUTA FINAL FORM
-FE93 ; [.1CA6.0020.001A] # ARABIC LETTER TEH MARBUTA ISOLATED FORM
-062A ; [.1CA7.0020.0002] # ARABIC LETTER TEH
-1EE15 ; [.1CA7.0020.0005] # ARABIC MATHEMATICAL TEH
-1EE35 ; [.1CA7.0020.0005] # ARABIC MATHEMATICAL INITIAL TEH
-1EE75 ; [.1CA7.0020.0005] # ARABIC MATHEMATICAL STRETCHED TEH
-1EE95 ; [.1CA7.0020.0005] # ARABIC MATHEMATICAL LOOPED TEH
-1EEB5 ; [.1CA7.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK TEH
-FE97 ; [.1CA7.0020.0017] # ARABIC LETTER TEH INITIAL FORM
-FE98 ; [.1CA7.0020.0018] # ARABIC LETTER TEH MEDIAL FORM
-FE96 ; [.1CA7.0020.0019] # ARABIC LETTER TEH FINAL FORM
-FE95 ; [.1CA7.0020.001A] # ARABIC LETTER TEH ISOLATED FORM
-FCA1 ; [.1CA7.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
-FC0B ; [.1CA7.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
-FD50 ; [.1CA7.0020.0017][.1CAE.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
-FDA0 ; [.1CA7.0020.0019][.1CAE.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FD9F ; [.1CA7.0020.0019][.1CAE.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
-FCA2 ; [.1CA7.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE TEH WITH HAH INITIAL FORM
-FC0C ; [.1CA7.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
-FD52 ; [.1CA7.0020.0017][.1CB5.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
-FD51 ; [.1CA7.0020.0019][.1CB5.0020.0019][.1CAE.0020.0019] # ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
-FD53 ; [.1CA7.0020.0017][.1CB5.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
-FCA3 ; [.1CA7.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
-FC0D ; [.1CA7.0020.001A][.1CB6.0020.001A] # ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
-FD54 ; [.1CA7.0020.0017][.1CB6.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
-FDA2 ; [.1CA7.0020.0019][.1CB6.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDA1 ; [.1CA7.0020.0019][.1CB6.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
-FC70 ; [.1CA7.0020.0019][.1CCE.0020.0019] # ARABIC LIGATURE TEH WITH REH FINAL FORM
-FC71 ; [.1CA7.0020.0019][.1CCF.0020.0019] # ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
-FCA4 ; [.1CA7.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
-FCE3 ; [.1CA7.0020.0018][.1D23.0020.0018] # ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
-FC72 ; [.1CA7.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE TEH WITH MEEM FINAL FORM
-FC0E ; [.1CA7.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
-FD55 ; [.1CA7.0020.0017][.1D23.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
-FD56 ; [.1CA7.0020.0017][.1D23.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
-FD57 ; [.1CA7.0020.0017][.1D23.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
-FDA4 ; [.1CA7.0020.0019][.1D23.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA3 ; [.1CA7.0020.0019][.1D23.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
-FC73 ; [.1CA7.0020.0019][.1D27.0020.0019] # ARABIC LIGATURE TEH WITH NOON FINAL FORM
-FCA5 ; [.1CA7.0020.0017][.1D30.0020.0017] # ARABIC LIGATURE TEH WITH HEH INITIAL FORM
-FCE4 ; [.1CA7.0020.0018][.1D30.0020.0018] # ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
-FC74 ; [.1CA7.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
-FC0F ; [.1CA7.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
-FC75 ; [.1CA7.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE TEH WITH YEH FINAL FORM
-FC10 ; [.1CA7.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
-062B ; [.1CA8.0020.0002] # ARABIC LETTER THEH
-1EE16 ; [.1CA8.0020.0005] # ARABIC MATHEMATICAL THEH
-1EE36 ; [.1CA8.0020.0005] # ARABIC MATHEMATICAL INITIAL THEH
-1EE76 ; [.1CA8.0020.0005] # ARABIC MATHEMATICAL STRETCHED THEH
-1EE96 ; [.1CA8.0020.0005] # ARABIC MATHEMATICAL LOOPED THEH
-1EEB6 ; [.1CA8.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK THEH
-FE9B ; [.1CA8.0020.0017] # ARABIC LETTER THEH INITIAL FORM
-FE9C ; [.1CA8.0020.0018] # ARABIC LETTER THEH MEDIAL FORM
-FE9A ; [.1CA8.0020.0019] # ARABIC LETTER THEH FINAL FORM
-FE99 ; [.1CA8.0020.001A] # ARABIC LETTER THEH ISOLATED FORM
-FC11 ; [.1CA8.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
-FC76 ; [.1CA8.0020.0019][.1CCE.0020.0019] # ARABIC LIGATURE THEH WITH REH FINAL FORM
-FC77 ; [.1CA8.0020.0019][.1CCF.0020.0019] # ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
-FCA6 ; [.1CA8.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
-FCE5 ; [.1CA8.0020.0018][.1D23.0020.0018] # ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
-FC78 ; [.1CA8.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE THEH WITH MEEM FINAL FORM
-FC12 ; [.1CA8.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
-FC79 ; [.1CA8.0020.0019][.1D27.0020.0019] # ARABIC LIGATURE THEH WITH NOON FINAL FORM
-FCE6 ; [.1CA8.0020.0018][.1D30.0020.0018] # ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
-FC7A ; [.1CA8.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
-FC13 ; [.1CA8.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
-FC7B ; [.1CA8.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE THEH WITH YEH FINAL FORM
-FC14 ; [.1CA8.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
-0679 ; [.1CA9.0020.0002] # ARABIC LETTER TTEH
-FB68 ; [.1CA9.0020.0017] # ARABIC LETTER TTEH INITIAL FORM
-FB69 ; [.1CA9.0020.0018] # ARABIC LETTER TTEH MEDIAL FORM
-FB67 ; [.1CA9.0020.0019] # ARABIC LETTER TTEH FINAL FORM
-FB66 ; [.1CA9.0020.001A] # ARABIC LETTER TTEH ISOLATED FORM
-067A ; [.1CAA.0020.0002] # ARABIC LETTER TTEHEH
-FB60 ; [.1CAA.0020.0017] # ARABIC LETTER TTEHEH INITIAL FORM
-FB61 ; [.1CAA.0020.0018] # ARABIC LETTER TTEHEH MEDIAL FORM
-FB5F ; [.1CAA.0020.0019] # ARABIC LETTER TTEHEH FINAL FORM
-FB5E ; [.1CAA.0020.001A] # ARABIC LETTER TTEHEH ISOLATED FORM
-067C ; [.1CAB.0020.0002] # ARABIC LETTER TEH WITH RING
-067D ; [.1CAC.0020.0002] # ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS
-067F ; [.1CAD.0020.0002] # ARABIC LETTER TEHEH
-FB64 ; [.1CAD.0020.0017] # ARABIC LETTER TEHEH INITIAL FORM
-FB65 ; [.1CAD.0020.0018] # ARABIC LETTER TEHEH MEDIAL FORM
-FB63 ; [.1CAD.0020.0019] # ARABIC LETTER TEHEH FINAL FORM
-FB62 ; [.1CAD.0020.001A] # ARABIC LETTER TEHEH ISOLATED FORM
-062C ; [.1CAE.0020.0002] # ARABIC LETTER JEEM
-1EE02 ; [.1CAE.0020.0005] # ARABIC MATHEMATICAL JEEM
-1EE22 ; [.1CAE.0020.0005] # ARABIC MATHEMATICAL INITIAL JEEM
-1EE42 ; [.1CAE.0020.0005] # ARABIC MATHEMATICAL TAILED JEEM
-1EE62 ; [.1CAE.0020.0005] # ARABIC MATHEMATICAL STRETCHED JEEM
-1EE82 ; [.1CAE.0020.0005] # ARABIC MATHEMATICAL LOOPED JEEM
-1EEA2 ; [.1CAE.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM
-FE9F ; [.1CAE.0020.0017] # ARABIC LETTER JEEM INITIAL FORM
-FEA0 ; [.1CAE.0020.0018] # ARABIC LETTER JEEM MEDIAL FORM
-FE9E ; [.1CAE.0020.0019] # ARABIC LETTER JEEM FINAL FORM
-FE9D ; [.1CAE.0020.001A] # ARABIC LETTER JEEM ISOLATED FORM
-FCA7 ; [.1CAE.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
-FC15 ; [.1CAE.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
-FDA6 ; [.1CAE.0020.0019][.1CB5.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FDBE ; [.1CAE.0020.0019][.1CB5.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
-FDFB ; [.1CAE.0020.001A][.1D1C.0020.001A][*0209.0020.001A][.1CAE.0020.001A][.1D1C.0020.001A][.1C98.0020.001A][.1D1C.0020.001A][.1D30.0020.001A] # ARABIC LIGATURE JALLAJALALOUHOU
-FCA8 ; [.1CAE.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
-FC16 ; [.1CAE.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
-FD59 ; [.1CAE.0020.0017][.1D23.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
-FD58 ; [.1CAE.0020.0019][.1D23.0020.0019][.1CB5.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
-FDA7 ; [.1CAE.0020.0019][.1D23.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA5 ; [.1CAE.0020.0019][.1D23.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
-FD1D ; [.1CAE.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
-FD01 ; [.1CAE.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
-FD1E ; [.1CAE.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE JEEM WITH YEH FINAL FORM
-FD02 ; [.1CAE.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
-0683 ; [.1CAF.0020.0002] # ARABIC LETTER NYEH
-FB78 ; [.1CAF.0020.0017] # ARABIC LETTER NYEH INITIAL FORM
-FB79 ; [.1CAF.0020.0018] # ARABIC LETTER NYEH MEDIAL FORM
-FB77 ; [.1CAF.0020.0019] # ARABIC LETTER NYEH FINAL FORM
-FB76 ; [.1CAF.0020.001A] # ARABIC LETTER NYEH ISOLATED FORM
-0684 ; [.1CB0.0020.0002] # ARABIC LETTER DYEH
-FB74 ; [.1CB0.0020.0017] # ARABIC LETTER DYEH INITIAL FORM
-FB75 ; [.1CB0.0020.0018] # ARABIC LETTER DYEH MEDIAL FORM
-FB73 ; [.1CB0.0020.0019] # ARABIC LETTER DYEH FINAL FORM
-FB72 ; [.1CB0.0020.001A] # ARABIC LETTER DYEH ISOLATED FORM
-0686 ; [.1CB1.0020.0002] # ARABIC LETTER TCHEH
-FB7C ; [.1CB1.0020.0017] # ARABIC LETTER TCHEH INITIAL FORM
-FB7D ; [.1CB1.0020.0018] # ARABIC LETTER TCHEH MEDIAL FORM
-FB7B ; [.1CB1.0020.0019] # ARABIC LETTER TCHEH FINAL FORM
-FB7A ; [.1CB1.0020.001A] # ARABIC LETTER TCHEH ISOLATED FORM
-06BF ; [.1CB2.0020.0002] # ARABIC LETTER TCHEH WITH DOT ABOVE
-0687 ; [.1CB3.0020.0002] # ARABIC LETTER TCHEHEH
-FB80 ; [.1CB3.0020.0017] # ARABIC LETTER TCHEHEH INITIAL FORM
-FB81 ; [.1CB3.0020.0018] # ARABIC LETTER TCHEHEH MEDIAL FORM
-FB7F ; [.1CB3.0020.0019] # ARABIC LETTER TCHEHEH FINAL FORM
-FB7E ; [.1CB3.0020.001A] # ARABIC LETTER TCHEHEH ISOLATED FORM
-08A2 ; [.1CB4.0020.0002] # ARABIC LETTER JEEM WITH TWO DOTS ABOVE
-062D ; [.1CB5.0020.0002] # ARABIC LETTER HAH
-1EE07 ; [.1CB5.0020.0005] # ARABIC MATHEMATICAL HAH
-1EE27 ; [.1CB5.0020.0005] # ARABIC MATHEMATICAL INITIAL HAH
-1EE47 ; [.1CB5.0020.0005] # ARABIC MATHEMATICAL TAILED HAH
-1EE67 ; [.1CB5.0020.0005] # ARABIC MATHEMATICAL STRETCHED HAH
-1EE87 ; [.1CB5.0020.0005] # ARABIC MATHEMATICAL LOOPED HAH
-1EEA7 ; [.1CB5.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK HAH
-FEA3 ; [.1CB5.0020.0017] # ARABIC LETTER HAH INITIAL FORM
-FEA4 ; [.1CB5.0020.0018] # ARABIC LETTER HAH MEDIAL FORM
-FEA2 ; [.1CB5.0020.0019] # ARABIC LETTER HAH FINAL FORM
-FEA1 ; [.1CB5.0020.001A] # ARABIC LETTER HAH ISOLATED FORM
-FCA9 ; [.1CB5.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
-FC17 ; [.1CB5.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
-FDBF ; [.1CB5.0020.0019][.1CAE.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
-FCAA ; [.1CB5.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
-FC18 ; [.1CB5.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
-FD5B ; [.1CB5.0020.0019][.1D23.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD5A ; [.1CB5.0020.0019][.1D23.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
-FD1B ; [.1CB5.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
-FCFF ; [.1CB5.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
-FD1C ; [.1CB5.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE HAH WITH YEH FINAL FORM
-FD00 ; [.1CB5.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
-062E ; [.1CB6.0020.0002] # ARABIC LETTER KHAH
-1EE17 ; [.1CB6.0020.0005] # ARABIC MATHEMATICAL KHAH
-1EE37 ; [.1CB6.0020.0005] # ARABIC MATHEMATICAL INITIAL KHAH
-1EE57 ; [.1CB6.0020.0005] # ARABIC MATHEMATICAL TAILED KHAH
-1EE77 ; [.1CB6.0020.0005] # ARABIC MATHEMATICAL STRETCHED KHAH
-1EE97 ; [.1CB6.0020.0005] # ARABIC MATHEMATICAL LOOPED KHAH
-1EEB7 ; [.1CB6.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH
-FEA7 ; [.1CB6.0020.0017] # ARABIC LETTER KHAH INITIAL FORM
-FEA8 ; [.1CB6.0020.0018] # ARABIC LETTER KHAH MEDIAL FORM
-FEA6 ; [.1CB6.0020.0019] # ARABIC LETTER KHAH FINAL FORM
-FEA5 ; [.1CB6.0020.001A] # ARABIC LETTER KHAH ISOLATED FORM
-FCAB ; [.1CB6.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
-FC19 ; [.1CB6.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
-FC1A ; [.1CB6.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
-FCAC ; [.1CB6.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
-FC1B ; [.1CB6.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
-FD1F ; [.1CB6.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
-FD03 ; [.1CB6.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
-FD20 ; [.1CB6.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE KHAH WITH YEH FINAL FORM
-FD04 ; [.1CB6.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
-0681 ; [.1CB7.0020.0002] # ARABIC LETTER HAH WITH HAMZA ABOVE
-0682 ; [.1CB8.0020.0002] # ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE
-0685 ; [.1CB9.0020.0002] # ARABIC LETTER HAH WITH THREE DOTS ABOVE
-0757 ; [.1CBA.0020.0002] # ARABIC LETTER HAH WITH TWO DOTS ABOVE
-0758 ; [.1CBB.0020.0002] # ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
-076E ; [.1CBC.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW
-076F ; [.1CBD.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0772 ; [.1CBE.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE
-077C ; [.1CBF.0020.0002] # ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
-062F ; [.1CC0.0020.0002] # ARABIC LETTER DAL
-1EE03 ; [.1CC0.0020.0005] # ARABIC MATHEMATICAL DAL
-1EE83 ; [.1CC0.0020.0005] # ARABIC MATHEMATICAL LOOPED DAL
-1EEA3 ; [.1CC0.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
-FEAA ; [.1CC0.0020.0019] # ARABIC LETTER DAL FINAL FORM
-FEA9 ; [.1CC0.0020.001A] # ARABIC LETTER DAL ISOLATED FORM
-0630 ; [.1CC1.0020.0002] # ARABIC LETTER THAL
-1EE18 ; [.1CC1.0020.0005] # ARABIC MATHEMATICAL THAL
-1EE98 ; [.1CC1.0020.0005] # ARABIC MATHEMATICAL LOOPED THAL
-1EEB8 ; [.1CC1.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK THAL
-FEAC ; [.1CC1.0020.0019] # ARABIC LETTER THAL FINAL FORM
-FEAB ; [.1CC1.0020.001A] # ARABIC LETTER THAL ISOLATED FORM
-FC5B ; [.1CC1.0020.001A][.0000.0096.001A] # ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
-0688 ; [.1CC2.0020.0002] # ARABIC LETTER DDAL
-FB89 ; [.1CC2.0020.0019] # ARABIC LETTER DDAL FINAL FORM
-FB88 ; [.1CC2.0020.001A] # ARABIC LETTER DDAL ISOLATED FORM
-0689 ; [.1CC3.0020.0002] # ARABIC LETTER DAL WITH RING
-068A ; [.1CC4.0020.0002] # ARABIC LETTER DAL WITH DOT BELOW
-068B ; [.1CC5.0020.0002] # ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH
-068C ; [.1CC6.0020.0002] # ARABIC LETTER DAHAL
-FB85 ; [.1CC6.0020.0019] # ARABIC LETTER DAHAL FINAL FORM
-FB84 ; [.1CC6.0020.001A] # ARABIC LETTER DAHAL ISOLATED FORM
-068D ; [.1CC7.0020.0002] # ARABIC LETTER DDAHAL
-FB83 ; [.1CC7.0020.0019] # ARABIC LETTER DDAHAL FINAL FORM
-FB82 ; [.1CC7.0020.001A] # ARABIC LETTER DDAHAL ISOLATED FORM
-068E ; [.1CC8.0020.0002] # ARABIC LETTER DUL
-FB87 ; [.1CC8.0020.0019] # ARABIC LETTER DUL FINAL FORM
-FB86 ; [.1CC8.0020.001A] # ARABIC LETTER DUL ISOLATED FORM
-068F ; [.1CC9.0020.0002] # ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS
-0690 ; [.1CCA.0020.0002] # ARABIC LETTER DAL WITH FOUR DOTS ABOVE
-06EE ; [.1CCB.0020.0002] # ARABIC LETTER DAL WITH INVERTED V
-0759 ; [.1CCC.0020.0002] # ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH
-075A ; [.1CCD.0020.0002] # ARABIC LETTER DAL WITH INVERTED SMALL V BELOW
-0631 ; [.1CCE.0020.0002] # ARABIC LETTER REH
-1EE13 ; [.1CCE.0020.0005] # ARABIC MATHEMATICAL REH
-1EE93 ; [.1CCE.0020.0005] # ARABIC MATHEMATICAL LOOPED REH
-1EEB3 ; [.1CCE.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK REH
-FEAE ; [.1CCE.0020.0019] # ARABIC LETTER REH FINAL FORM
-FEAD ; [.1CCE.0020.001A] # ARABIC LETTER REH ISOLATED FORM
-FC5C ; [.1CCE.0020.001A][.0000.0096.001A] # ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
-FDF6 ; [.1CCE.0020.001A][.1CDF.0020.001A][.1D36.0020.001A][.1D1C.0020.001A] # ARABIC LIGATURE RASOUL ISOLATED FORM
-FDFC ; [.1CCE.0020.001A][.1D45.0020.001A][.1C98.0020.001A][.1D1C.0020.001A] # RIAL SIGN
-0632 ; [.1CCF.0020.0002] # ARABIC LETTER ZAIN
-1EE06 ; [.1CCF.0020.0005] # ARABIC MATHEMATICAL ZAIN
-1EE86 ; [.1CCF.0020.0005] # ARABIC MATHEMATICAL LOOPED ZAIN
-1EEA6 ; [.1CCF.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN
-FEB0 ; [.1CCF.0020.0019] # ARABIC LETTER ZAIN FINAL FORM
-FEAF ; [.1CCF.0020.001A] # ARABIC LETTER ZAIN ISOLATED FORM
-0691 ; [.1CD0.0020.0002] # ARABIC LETTER RREH
-FB8D ; [.1CD0.0020.0019] # ARABIC LETTER RREH FINAL FORM
-FB8C ; [.1CD0.0020.001A] # ARABIC LETTER RREH ISOLATED FORM
-0692 ; [.1CD1.0020.0002] # ARABIC LETTER REH WITH SMALL V
-0693 ; [.1CD2.0020.0002] # ARABIC LETTER REH WITH RING
-0694 ; [.1CD3.0020.0002] # ARABIC LETTER REH WITH DOT BELOW
-0695 ; [.1CD4.0020.0002] # ARABIC LETTER REH WITH SMALL V BELOW
-0696 ; [.1CD5.0020.0002] # ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE
-0697 ; [.1CD6.0020.0002] # ARABIC LETTER REH WITH TWO DOTS ABOVE
-0698 ; [.1CD7.0020.0002] # ARABIC LETTER JEH
-FB8B ; [.1CD7.0020.0019] # ARABIC LETTER JEH FINAL FORM
-FB8A ; [.1CD7.0020.001A] # ARABIC LETTER JEH ISOLATED FORM
-0699 ; [.1CD8.0020.0002] # ARABIC LETTER REH WITH FOUR DOTS ABOVE
-06EF ; [.1CD9.0020.0002] # ARABIC LETTER REH WITH INVERTED V
-075B ; [.1CDA.0020.0002] # ARABIC LETTER REH WITH STROKE
-076B ; [.1CDB.0020.0002] # ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE
-076C ; [.1CDC.0020.0002] # ARABIC LETTER REH WITH HAMZA ABOVE
-0771 ; [.1CDD.0020.0002] # ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-08AA ; [.1CDE.0020.0002] # ARABIC LETTER REH WITH LOOP
-0633 ; [.1CDF.0020.0002] # ARABIC LETTER SEEN
-1EE0E ; [.1CDF.0020.0005] # ARABIC MATHEMATICAL SEEN
-1EE2E ; [.1CDF.0020.0005] # ARABIC MATHEMATICAL INITIAL SEEN
-1EE4E ; [.1CDF.0020.0005] # ARABIC MATHEMATICAL TAILED SEEN
-1EE6E ; [.1CDF.0020.0005] # ARABIC MATHEMATICAL STRETCHED SEEN
-1EE8E ; [.1CDF.0020.0005] # ARABIC MATHEMATICAL LOOPED SEEN
-1EEAE ; [.1CDF.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN
-FEB3 ; [.1CDF.0020.0017] # ARABIC LETTER SEEN INITIAL FORM
-FEB4 ; [.1CDF.0020.0018] # ARABIC LETTER SEEN MEDIAL FORM
-FEB2 ; [.1CDF.0020.0019] # ARABIC LETTER SEEN FINAL FORM
-FEB1 ; [.1CDF.0020.001A] # ARABIC LETTER SEEN ISOLATED FORM
-FCAD ; [.1CDF.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
-FD34 ; [.1CDF.0020.0018][.1CAE.0020.0018] # ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
-FC1C ; [.1CDF.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
-FD5D ; [.1CDF.0020.0017][.1CAE.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
-FD5E ; [.1CDF.0020.0019][.1CAE.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FCAE ; [.1CDF.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
-FD35 ; [.1CDF.0020.0018][.1CB5.0020.0018] # ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
-FC1D ; [.1CDF.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
-FD5C ; [.1CDF.0020.0017][.1CB5.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
-FCAF ; [.1CDF.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
-FD36 ; [.1CDF.0020.0018][.1CB6.0020.0018] # ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
-FC1E ; [.1CDF.0020.001A][.1CB6.0020.001A] # ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
-FDA8 ; [.1CDF.0020.0019][.1CB6.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDC6 ; [.1CDF.0020.0019][.1CB6.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
-FD2A ; [.1CDF.0020.0019][.1CCE.0020.0019] # ARABIC LIGATURE SEEN WITH REH FINAL FORM
-FD0E ; [.1CDF.0020.001A][.1CCE.0020.001A] # ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
-FCB0 ; [.1CDF.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
-FCE7 ; [.1CDF.0020.0018][.1D23.0020.0018] # ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
-FC1F ; [.1CDF.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
-FD61 ; [.1CDF.0020.0017][.1D23.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
-FD60 ; [.1CDF.0020.0017][.1D23.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
-FD5F ; [.1CDF.0020.0019][.1D23.0020.0019][.1CB5.0020.0019] # ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
-FD63 ; [.1CDF.0020.0017][.1D23.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
-FD62 ; [.1CDF.0020.0019][.1D23.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
-FD31 ; [.1CDF.0020.0017][.1D30.0020.0017] # ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
-FCE8 ; [.1CDF.0020.0018][.1D30.0020.0018] # ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
-FD17 ; [.1CDF.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
-FCFB ; [.1CDF.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
-FD18 ; [.1CDF.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE SEEN WITH YEH FINAL FORM
-FCFC ; [.1CDF.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
-0634 ; [.1CE0.0020.0002] # ARABIC LETTER SHEEN
-1EE14 ; [.1CE0.0020.0005] # ARABIC MATHEMATICAL SHEEN
-1EE34 ; [.1CE0.0020.0005] # ARABIC MATHEMATICAL INITIAL SHEEN
-1EE54 ; [.1CE0.0020.0005] # ARABIC MATHEMATICAL TAILED SHEEN
-1EE74 ; [.1CE0.0020.0005] # ARABIC MATHEMATICAL STRETCHED SHEEN
-1EE94 ; [.1CE0.0020.0005] # ARABIC MATHEMATICAL LOOPED SHEEN
-1EEB4 ; [.1CE0.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN
-FEB7 ; [.1CE0.0020.0017] # ARABIC LETTER SHEEN INITIAL FORM
-FEB8 ; [.1CE0.0020.0018] # ARABIC LETTER SHEEN MEDIAL FORM
-FEB6 ; [.1CE0.0020.0019] # ARABIC LETTER SHEEN FINAL FORM
-FEB5 ; [.1CE0.0020.001A] # ARABIC LETTER SHEEN ISOLATED FORM
-FD2D ; [.1CE0.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
-FD37 ; [.1CE0.0020.0018][.1CAE.0020.0018] # ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
-FD25 ; [.1CE0.0020.0019][.1CAE.0020.0019] # ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
-FD09 ; [.1CE0.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
-FD69 ; [.1CE0.0020.0019][.1CAE.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
-FD2E ; [.1CE0.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
-FD38 ; [.1CE0.0020.0018][.1CB5.0020.0018] # ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
-FD26 ; [.1CE0.0020.0019][.1CB5.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
-FD0A ; [.1CE0.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
-FD68 ; [.1CE0.0020.0017][.1CB5.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
-FD67 ; [.1CE0.0020.0019][.1CB5.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
-FDAA ; [.1CE0.0020.0019][.1CB5.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
-FD2F ; [.1CE0.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
-FD39 ; [.1CE0.0020.0018][.1CB6.0020.0018] # ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
-FD27 ; [.1CE0.0020.0019][.1CB6.0020.0019] # ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
-FD0B ; [.1CE0.0020.001A][.1CB6.0020.001A] # ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
-FD29 ; [.1CE0.0020.0019][.1CCE.0020.0019] # ARABIC LIGATURE SHEEN WITH REH FINAL FORM
-FD0D ; [.1CE0.0020.001A][.1CCE.0020.001A] # ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
-FD30 ; [.1CE0.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
-FCE9 ; [.1CE0.0020.0018][.1D23.0020.0018] # ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
-FD28 ; [.1CE0.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
-FD0C ; [.1CE0.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
-FD6B ; [.1CE0.0020.0017][.1D23.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
-FD6A ; [.1CE0.0020.0019][.1D23.0020.0019][.1CB6.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
-FD6D ; [.1CE0.0020.0017][.1D23.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
-FD6C ; [.1CE0.0020.0019][.1D23.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
-FD32 ; [.1CE0.0020.0017][.1D30.0020.0017] # ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
-FCEA ; [.1CE0.0020.0018][.1D30.0020.0018] # ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
-FD19 ; [.1CE0.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
-FCFD ; [.1CE0.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
-FD1A ; [.1CE0.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
-FCFE ; [.1CE0.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
-069A ; [.1CE1.0020.0002] # ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE
-069B ; [.1CE2.0020.0002] # ARABIC LETTER SEEN WITH THREE DOTS BELOW
-069C ; [.1CE3.0020.0002] # ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE
-06FA ; [.1CE4.0020.0002] # ARABIC LETTER SHEEN WITH DOT BELOW
-075C ; [.1CE5.0020.0002] # ARABIC LETTER SEEN WITH FOUR DOTS ABOVE
-076D ; [.1CE6.0020.0002] # ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
-0770 ; [.1CE7.0020.0002] # ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-077D ; [.1CE8.0020.0002] # ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE
-077E ; [.1CE9.0020.0002] # ARABIC LETTER SEEN WITH INVERTED V
-0635 ; [.1CEA.0020.0002] # ARABIC LETTER SAD
-1EE11 ; [.1CEA.0020.0005] # ARABIC MATHEMATICAL SAD
-1EE31 ; [.1CEA.0020.0005] # ARABIC MATHEMATICAL INITIAL SAD
-1EE51 ; [.1CEA.0020.0005] # ARABIC MATHEMATICAL TAILED SAD
-1EE71 ; [.1CEA.0020.0005] # ARABIC MATHEMATICAL STRETCHED SAD
-1EE91 ; [.1CEA.0020.0005] # ARABIC MATHEMATICAL LOOPED SAD
-1EEB1 ; [.1CEA.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SAD
-FEBB ; [.1CEA.0020.0017] # ARABIC LETTER SAD INITIAL FORM
-FEBC ; [.1CEA.0020.0018] # ARABIC LETTER SAD MEDIAL FORM
-FEBA ; [.1CEA.0020.0019] # ARABIC LETTER SAD FINAL FORM
-FEB9 ; [.1CEA.0020.001A] # ARABIC LETTER SAD ISOLATED FORM
-FCB1 ; [.1CEA.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE SAD WITH HAH INITIAL FORM
-FC20 ; [.1CEA.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
-FD65 ; [.1CEA.0020.0017][.1CB5.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
-FD64 ; [.1CEA.0020.0019][.1CB5.0020.0019][.1CB5.0020.0019] # ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
-FDA9 ; [.1CEA.0020.0019][.1CB5.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
-FCB2 ; [.1CEA.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
-FD2B ; [.1CEA.0020.0019][.1CCE.0020.0019] # ARABIC LIGATURE SAD WITH REH FINAL FORM
-FD0F ; [.1CEA.0020.001A][.1CCE.0020.001A] # ARABIC LIGATURE SAD WITH REH ISOLATED FORM
-FDF5 ; [.1CEA.0020.001A][.1D1C.0020.001A][.1CF3.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE SALAM ISOLATED FORM
-FDF9 ; [.1CEA.0020.001A][.1D1C.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE SALLA ISOLATED FORM
-FDFA ; [.1CEA.0020.001A][.1D1C.0020.001A][.1D43.0020.001A][*0209.0020.001A][.1C98.0020.001A][.1D1C.0020.001A][.1D1C.0020.001A][.1D30.0020.001A][*0209.0020.001A][.1CF3.0020.001A][.1D1C.0020.001A][.1D44.0020.001A][.1D30.0020.001A][*0209.0020.001A][.1D36.0020.001A][.1CDF.0020.001A][.1D1C.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
-FDF0 ; [.1CEA.0020.001A][.1D1C.0020.001A][.1D51.0020.001A] # ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
-FCB3 ; [.1CEA.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
-FC21 ; [.1CEA.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
-FDC5 ; [.1CEA.0020.0017][.1D23.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
-FD66 ; [.1CEA.0020.0019][.1D23.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
-FD21 ; [.1CEA.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
-FD05 ; [.1CEA.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
-FD22 ; [.1CEA.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE SAD WITH YEH FINAL FORM
-FD06 ; [.1CEA.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
-0636 ; [.1CEB.0020.0002] # ARABIC LETTER DAD
-1EE19 ; [.1CEB.0020.0005] # ARABIC MATHEMATICAL DAD
-1EE39 ; [.1CEB.0020.0005] # ARABIC MATHEMATICAL INITIAL DAD
-1EE59 ; [.1CEB.0020.0005] # ARABIC MATHEMATICAL TAILED DAD
-1EE79 ; [.1CEB.0020.0005] # ARABIC MATHEMATICAL STRETCHED DAD
-1EE99 ; [.1CEB.0020.0005] # ARABIC MATHEMATICAL LOOPED DAD
-1EEB9 ; [.1CEB.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK DAD
-FEBF ; [.1CEB.0020.0017] # ARABIC LETTER DAD INITIAL FORM
-FEC0 ; [.1CEB.0020.0018] # ARABIC LETTER DAD MEDIAL FORM
-FEBE ; [.1CEB.0020.0019] # ARABIC LETTER DAD FINAL FORM
-FEBD ; [.1CEB.0020.001A] # ARABIC LETTER DAD ISOLATED FORM
-FCB4 ; [.1CEB.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
-FC22 ; [.1CEB.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
-FCB5 ; [.1CEB.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE DAD WITH HAH INITIAL FORM
-FC23 ; [.1CEB.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
-FD6E ; [.1CEB.0020.0019][.1CB5.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
-FDAB ; [.1CEB.0020.0019][.1CB5.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
-FCB6 ; [.1CEB.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
-FC24 ; [.1CEB.0020.001A][.1CB6.0020.001A] # ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
-FD70 ; [.1CEB.0020.0017][.1CB6.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
-FD6F ; [.1CEB.0020.0019][.1CB6.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
-FD2C ; [.1CEB.0020.0019][.1CCE.0020.0019] # ARABIC LIGATURE DAD WITH REH FINAL FORM
-FD10 ; [.1CEB.0020.001A][.1CCE.0020.001A] # ARABIC LIGATURE DAD WITH REH ISOLATED FORM
-FCB7 ; [.1CEB.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
-FC25 ; [.1CEB.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
-FD23 ; [.1CEB.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
-FD07 ; [.1CEB.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
-FD24 ; [.1CEB.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE DAD WITH YEH FINAL FORM
-FD08 ; [.1CEB.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
-069D ; [.1CEC.0020.0002] # ARABIC LETTER SAD WITH TWO DOTS BELOW
-069E ; [.1CED.0020.0002] # ARABIC LETTER SAD WITH THREE DOTS ABOVE
-06FB ; [.1CEE.0020.0002] # ARABIC LETTER DAD WITH DOT BELOW
-0637 ; [.1CEF.0020.0002] # ARABIC LETTER TAH
-1EE08 ; [.1CEF.0020.0005] # ARABIC MATHEMATICAL TAH
-1EE68 ; [.1CEF.0020.0005] # ARABIC MATHEMATICAL STRETCHED TAH
-1EE88 ; [.1CEF.0020.0005] # ARABIC MATHEMATICAL LOOPED TAH
-1EEA8 ; [.1CEF.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK TAH
-FEC3 ; [.1CEF.0020.0017] # ARABIC LETTER TAH INITIAL FORM
-FEC4 ; [.1CEF.0020.0018] # ARABIC LETTER TAH MEDIAL FORM
-FEC2 ; [.1CEF.0020.0019] # ARABIC LETTER TAH FINAL FORM
-FEC1 ; [.1CEF.0020.001A] # ARABIC LETTER TAH ISOLATED FORM
-FCB8 ; [.1CEF.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE TAH WITH HAH INITIAL FORM
-FC26 ; [.1CEF.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
-FD33 ; [.1CEF.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
-FD3A ; [.1CEF.0020.0018][.1D23.0020.0018] # ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
-FC27 ; [.1CEF.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
-FD72 ; [.1CEF.0020.0017][.1D23.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
-FD71 ; [.1CEF.0020.0019][.1D23.0020.0019][.1CB5.0020.0019] # ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
-FD73 ; [.1CEF.0020.0017][.1D23.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
-FD74 ; [.1CEF.0020.0019][.1D23.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
-FD11 ; [.1CEF.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
-FCF5 ; [.1CEF.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
-FD12 ; [.1CEF.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE TAH WITH YEH FINAL FORM
-FCF6 ; [.1CEF.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
-0638 ; [.1CF0.0020.0002] # ARABIC LETTER ZAH
-1EE1A ; [.1CF0.0020.0005] # ARABIC MATHEMATICAL ZAH
-1EE7A ; [.1CF0.0020.0005] # ARABIC MATHEMATICAL STRETCHED ZAH
-1EE9A ; [.1CF0.0020.0005] # ARABIC MATHEMATICAL LOOPED ZAH
-1EEBA ; [.1CF0.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH
-FEC7 ; [.1CF0.0020.0017] # ARABIC LETTER ZAH INITIAL FORM
-FEC8 ; [.1CF0.0020.0018] # ARABIC LETTER ZAH MEDIAL FORM
-FEC6 ; [.1CF0.0020.0019] # ARABIC LETTER ZAH FINAL FORM
-FEC5 ; [.1CF0.0020.001A] # ARABIC LETTER ZAH ISOLATED FORM
-FCB9 ; [.1CF0.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
-FD3B ; [.1CF0.0020.0018][.1D23.0020.0018] # ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
-FC28 ; [.1CF0.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
-069F ; [.1CF1.0020.0002] # ARABIC LETTER TAH WITH THREE DOTS ABOVE
-08A3 ; [.1CF2.0020.0002] # ARABIC LETTER TAH WITH TWO DOTS ABOVE
-0639 ; [.1CF3.0020.0002] # ARABIC LETTER AIN
-1EE0F ; [.1CF3.0020.0005] # ARABIC MATHEMATICAL AIN
-1EE2F ; [.1CF3.0020.0005] # ARABIC MATHEMATICAL INITIAL AIN
-1EE4F ; [.1CF3.0020.0005] # ARABIC MATHEMATICAL TAILED AIN
-1EE6F ; [.1CF3.0020.0005] # ARABIC MATHEMATICAL STRETCHED AIN
-1EE8F ; [.1CF3.0020.0005] # ARABIC MATHEMATICAL LOOPED AIN
-1EEAF ; [.1CF3.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK AIN
-FECB ; [.1CF3.0020.0017] # ARABIC LETTER AIN INITIAL FORM
-FECC ; [.1CF3.0020.0018] # ARABIC LETTER AIN MEDIAL FORM
-FECA ; [.1CF3.0020.0019] # ARABIC LETTER AIN FINAL FORM
-FEC9 ; [.1CF3.0020.001A] # ARABIC LETTER AIN ISOLATED FORM
-FCBA ; [.1CF3.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
-FC29 ; [.1CF3.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
-FDC4 ; [.1CF3.0020.0017][.1CAE.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
-FD75 ; [.1CF3.0020.0019][.1CAE.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
-FDF7 ; [.1CF3.0020.001A][.1D1C.0020.001A][.1D44.0020.001A][.1D30.0020.001A] # ARABIC LIGATURE ALAYHE ISOLATED FORM
-FCBB ; [.1CF3.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
-FC2A ; [.1CF3.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
-FD77 ; [.1CF3.0020.0017][.1D23.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
-FD76 ; [.1CF3.0020.0019][.1D23.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
-FD78 ; [.1CF3.0020.0019][.1D23.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDB6 ; [.1CF3.0020.0019][.1D23.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
-FD13 ; [.1CF3.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
-FCF7 ; [.1CF3.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
-FD14 ; [.1CF3.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE AIN WITH YEH FINAL FORM
-FCF8 ; [.1CF3.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
-063A ; [.1CF4.0020.0002] # ARABIC LETTER GHAIN
-1EE1B ; [.1CF4.0020.0005] # ARABIC MATHEMATICAL GHAIN
-1EE3B ; [.1CF4.0020.0005] # ARABIC MATHEMATICAL INITIAL GHAIN
-1EE5B ; [.1CF4.0020.0005] # ARABIC MATHEMATICAL TAILED GHAIN
-1EE7B ; [.1CF4.0020.0005] # ARABIC MATHEMATICAL STRETCHED GHAIN
-1EE9B ; [.1CF4.0020.0005] # ARABIC MATHEMATICAL LOOPED GHAIN
-1EEBB ; [.1CF4.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
-FECF ; [.1CF4.0020.0017] # ARABIC LETTER GHAIN INITIAL FORM
-FED0 ; [.1CF4.0020.0018] # ARABIC LETTER GHAIN MEDIAL FORM
-FECE ; [.1CF4.0020.0019] # ARABIC LETTER GHAIN FINAL FORM
-FECD ; [.1CF4.0020.001A] # ARABIC LETTER GHAIN ISOLATED FORM
-FCBC ; [.1CF4.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
-FC2B ; [.1CF4.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
-FCBD ; [.1CF4.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
-FC2C ; [.1CF4.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
-FD79 ; [.1CF4.0020.0019][.1D23.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
-FD7B ; [.1CF4.0020.0019][.1D23.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD7A ; [.1CF4.0020.0019][.1D23.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
-FD15 ; [.1CF4.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
-FCF9 ; [.1CF4.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
-FD16 ; [.1CF4.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
-FCFA ; [.1CF4.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
-06A0 ; [.1CF5.0020.0002] # ARABIC LETTER AIN WITH THREE DOTS ABOVE
-06FC ; [.1CF6.0020.0002] # ARABIC LETTER GHAIN WITH DOT BELOW
-075D ; [.1CF7.0020.0002] # ARABIC LETTER AIN WITH TWO DOTS ABOVE
-075E ; [.1CF8.0020.0002] # ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE
-075F ; [.1CF9.0020.0002] # ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE
-0641 ; [.1CFA.0020.0002] # ARABIC LETTER FEH
-1EE10 ; [.1CFA.0020.0005] # ARABIC MATHEMATICAL FEH
-1EE30 ; [.1CFA.0020.0005] # ARABIC MATHEMATICAL INITIAL FEH
-1EE70 ; [.1CFA.0020.0005] # ARABIC MATHEMATICAL STRETCHED FEH
-1EE90 ; [.1CFA.0020.0005] # ARABIC MATHEMATICAL LOOPED FEH
-1EEB0 ; [.1CFA.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK FEH
-FED3 ; [.1CFA.0020.0017] # ARABIC LETTER FEH INITIAL FORM
-FED4 ; [.1CFA.0020.0018] # ARABIC LETTER FEH MEDIAL FORM
-FED2 ; [.1CFA.0020.0019] # ARABIC LETTER FEH FINAL FORM
-FED1 ; [.1CFA.0020.001A] # ARABIC LETTER FEH ISOLATED FORM
-FCBE ; [.1CFA.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
-FC2D ; [.1CFA.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
-FCBF ; [.1CFA.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE FEH WITH HAH INITIAL FORM
-FC2E ; [.1CFA.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
-FCC0 ; [.1CFA.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
-FC2F ; [.1CFA.0020.001A][.1CB6.0020.001A] # ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
-FD7D ; [.1CFA.0020.0017][.1CB6.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
-FD7C ; [.1CFA.0020.0019][.1CB6.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
-FCC1 ; [.1CFA.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
-FC30 ; [.1CFA.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
-FDC1 ; [.1CFA.0020.0019][.1D23.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
-FC7C ; [.1CFA.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
-FC31 ; [.1CFA.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
-FC7D ; [.1CFA.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE FEH WITH YEH FINAL FORM
-FC32 ; [.1CFA.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
-06A1 ; [.1CFB.0020.0002] # ARABIC LETTER DOTLESS FEH
-1EE1E ; [.1CFB.0020.0005] # ARABIC MATHEMATICAL DOTLESS FEH
-1EE7E ; [.1CFB.0020.0005] # ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
-06A2 ; [.1CFC.0020.0002] # ARABIC LETTER FEH WITH DOT MOVED BELOW
-06A3 ; [.1CFD.0020.0002] # ARABIC LETTER FEH WITH DOT BELOW
-06A4 ; [.1CFE.0020.0002] # ARABIC LETTER VEH
-FB6C ; [.1CFE.0020.0017] # ARABIC LETTER VEH INITIAL FORM
-FB6D ; [.1CFE.0020.0018] # ARABIC LETTER VEH MEDIAL FORM
-FB6B ; [.1CFE.0020.0019] # ARABIC LETTER VEH FINAL FORM
-FB6A ; [.1CFE.0020.001A] # ARABIC LETTER VEH ISOLATED FORM
-08A4 ; [.1CFF.0020.0002] # ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE
-06A5 ; [.1D00.0020.0002] # ARABIC LETTER FEH WITH THREE DOTS BELOW
-06A6 ; [.1D01.0020.0002] # ARABIC LETTER PEHEH
-FB70 ; [.1D01.0020.0017] # ARABIC LETTER PEHEH INITIAL FORM
-FB71 ; [.1D01.0020.0018] # ARABIC LETTER PEHEH MEDIAL FORM
-FB6F ; [.1D01.0020.0019] # ARABIC LETTER PEHEH FINAL FORM
-FB6E ; [.1D01.0020.001A] # ARABIC LETTER PEHEH ISOLATED FORM
-0760 ; [.1D02.0020.0002] # ARABIC LETTER FEH WITH TWO DOTS BELOW
-0761 ; [.1D03.0020.0002] # ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW
-066F ; [.1D04.0020.0002] # ARABIC LETTER DOTLESS QAF
-1EE1F ; [.1D04.0020.0005] # ARABIC MATHEMATICAL DOTLESS QAF
-1EE5F ; [.1D04.0020.0005] # ARABIC MATHEMATICAL TAILED DOTLESS QAF
-0642 ; [.1D05.0020.0002] # ARABIC LETTER QAF
-1EE12 ; [.1D05.0020.0005] # ARABIC MATHEMATICAL QAF
-1EE32 ; [.1D05.0020.0005] # ARABIC MATHEMATICAL INITIAL QAF
-1EE52 ; [.1D05.0020.0005] # ARABIC MATHEMATICAL TAILED QAF
-1EE72 ; [.1D05.0020.0005] # ARABIC MATHEMATICAL STRETCHED QAF
-1EE92 ; [.1D05.0020.0005] # ARABIC MATHEMATICAL LOOPED QAF
-1EEB2 ; [.1D05.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK QAF
-FED7 ; [.1D05.0020.0017] # ARABIC LETTER QAF INITIAL FORM
-FED8 ; [.1D05.0020.0018] # ARABIC LETTER QAF MEDIAL FORM
-FED6 ; [.1D05.0020.0019] # ARABIC LETTER QAF FINAL FORM
-FED5 ; [.1D05.0020.001A] # ARABIC LETTER QAF ISOLATED FORM
-FCC2 ; [.1D05.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE QAF WITH HAH INITIAL FORM
-FC33 ; [.1D05.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
-FDF1 ; [.1D05.0020.001A][.1D1C.0020.001A][.1D51.0020.001A] # ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
-FCC3 ; [.1D05.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
-FC34 ; [.1D05.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
-FDB4 ; [.1D05.0020.0017][.1D23.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
-FD7E ; [.1D05.0020.0019][.1D23.0020.0019][.1CB5.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
-FD7F ; [.1D05.0020.0019][.1D23.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
-FDB2 ; [.1D05.0020.0019][.1D23.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
-FC7E ; [.1D05.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
-FC35 ; [.1D05.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
-FC7F ; [.1D05.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE QAF WITH YEH FINAL FORM
-FC36 ; [.1D05.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
-06A7 ; [.1D06.0020.0002] # ARABIC LETTER QAF WITH DOT ABOVE
-06A8 ; [.1D07.0020.0002] # ARABIC LETTER QAF WITH THREE DOTS ABOVE
-08A5 ; [.1D08.0020.0002] # ARABIC LETTER QAF WITH DOT BELOW
-0643 ; [.1D09.0020.0002] # ARABIC LETTER KAF
-1EE0A ; [.1D09.0020.0005] # ARABIC MATHEMATICAL KAF
-1EE2A ; [.1D09.0020.0005] # ARABIC MATHEMATICAL INITIAL KAF
-1EE6A ; [.1D09.0020.0005] # ARABIC MATHEMATICAL STRETCHED KAF
-FEDB ; [.1D09.0020.0017] # ARABIC LETTER KAF INITIAL FORM
-FEDC ; [.1D09.0020.0018] # ARABIC LETTER KAF MEDIAL FORM
-FEDA ; [.1D09.0020.0019] # ARABIC LETTER KAF FINAL FORM
-FED9 ; [.1D09.0020.001A] # ARABIC LETTER KAF ISOLATED FORM
-FC80 ; [.1D09.0020.0019][.1C98.0020.0019] # ARABIC LIGATURE KAF WITH ALEF FINAL FORM
-FC37 ; [.1D09.0020.001A][.1C98.0020.001A] # ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
-FCC4 ; [.1D09.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
-FC38 ; [.1D09.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
-FCC5 ; [.1D09.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE KAF WITH HAH INITIAL FORM
-FC39 ; [.1D09.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
-FCC6 ; [.1D09.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
-FC3A ; [.1D09.0020.001A][.1CB6.0020.001A] # ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
-FCC7 ; [.1D09.0020.0017][.1D1C.0020.0017] # ARABIC LIGATURE KAF WITH LAM INITIAL FORM
-FCEB ; [.1D09.0020.0018][.1D1C.0020.0018] # ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
-FC81 ; [.1D09.0020.0019][.1D1C.0020.0019] # ARABIC LIGATURE KAF WITH LAM FINAL FORM
-FC3B ; [.1D09.0020.001A][.1D1C.0020.001A] # ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
-FCC8 ; [.1D09.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
-FCEC ; [.1D09.0020.0018][.1D23.0020.0018] # ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
-FC82 ; [.1D09.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE KAF WITH MEEM FINAL FORM
-FC3C ; [.1D09.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
-FDC3 ; [.1D09.0020.0017][.1D23.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
-FDBB ; [.1D09.0020.0019][.1D23.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
-FDB7 ; [.1D09.0020.0019][.1D23.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
-FC83 ; [.1D09.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
-FC3D ; [.1D09.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
-FC84 ; [.1D09.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE KAF WITH YEH FINAL FORM
-FC3E ; [.1D09.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
-06A9 ; [.1D0A.0020.0002] # ARABIC LETTER KEHEH
-FB90 ; [.1D0A.0020.0017] # ARABIC LETTER KEHEH INITIAL FORM
-FB91 ; [.1D0A.0020.0018] # ARABIC LETTER KEHEH MEDIAL FORM
-FB8F ; [.1D0A.0020.0019] # ARABIC LETTER KEHEH FINAL FORM
-FB8E ; [.1D0A.0020.001A] # ARABIC LETTER KEHEH ISOLATED FORM
-06AA ; [.1D0B.0020.0002] # ARABIC LETTER SWASH KAF
-06AB ; [.1D0C.0020.0002] # ARABIC LETTER KAF WITH RING
-06AC ; [.1D0D.0020.0002] # ARABIC LETTER KAF WITH DOT ABOVE
-077F ; [.1D0E.0020.0002] # ARABIC LETTER KAF WITH TWO DOTS ABOVE
-06AD ; [.1D0F.0020.0002] # ARABIC LETTER NG
-FBD5 ; [.1D0F.0020.0017] # ARABIC LETTER NG INITIAL FORM
-FBD6 ; [.1D0F.0020.0018] # ARABIC LETTER NG MEDIAL FORM
-FBD4 ; [.1D0F.0020.0019] # ARABIC LETTER NG FINAL FORM
-FBD3 ; [.1D0F.0020.001A] # ARABIC LETTER NG ISOLATED FORM
-06AE ; [.1D10.0020.0002] # ARABIC LETTER KAF WITH THREE DOTS BELOW
-06AF ; [.1D11.0020.0002] # ARABIC LETTER GAF
-FB94 ; [.1D11.0020.0017] # ARABIC LETTER GAF INITIAL FORM
-FB95 ; [.1D11.0020.0018] # ARABIC LETTER GAF MEDIAL FORM
-FB93 ; [.1D11.0020.0019] # ARABIC LETTER GAF FINAL FORM
-FB92 ; [.1D11.0020.001A] # ARABIC LETTER GAF ISOLATED FORM
-06B0 ; [.1D12.0020.0002] # ARABIC LETTER GAF WITH RING
-06B1 ; [.1D13.0020.0002] # ARABIC LETTER NGOEH
-FB9C ; [.1D13.0020.0017] # ARABIC LETTER NGOEH INITIAL FORM
-FB9D ; [.1D13.0020.0018] # ARABIC LETTER NGOEH MEDIAL FORM
-FB9B ; [.1D13.0020.0019] # ARABIC LETTER NGOEH FINAL FORM
-FB9A ; [.1D13.0020.001A] # ARABIC LETTER NGOEH ISOLATED FORM
-06B2 ; [.1D14.0020.0002] # ARABIC LETTER GAF WITH TWO DOTS BELOW
-06B3 ; [.1D15.0020.0002] # ARABIC LETTER GUEH
-FB98 ; [.1D15.0020.0017] # ARABIC LETTER GUEH INITIAL FORM
-FB99 ; [.1D15.0020.0018] # ARABIC LETTER GUEH MEDIAL FORM
-FB97 ; [.1D15.0020.0019] # ARABIC LETTER GUEH FINAL FORM
-FB96 ; [.1D15.0020.001A] # ARABIC LETTER GUEH ISOLATED FORM
-06B4 ; [.1D16.0020.0002] # ARABIC LETTER GAF WITH THREE DOTS ABOVE
-0762 ; [.1D17.0020.0002] # ARABIC LETTER KEHEH WITH DOT ABOVE
-063B ; [.1D18.0020.0002] # ARABIC LETTER KEHEH WITH TWO DOTS ABOVE
-063C ; [.1D19.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS BELOW
-0763 ; [.1D1A.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS ABOVE
-0764 ; [.1D1B.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW
-0644 ; [.1D1C.0020.0002] # ARABIC LETTER LAM
-1EE0B ; [.1D1C.0020.0005] # ARABIC MATHEMATICAL LAM
-1EE2B ; [.1D1C.0020.0005] # ARABIC MATHEMATICAL INITIAL LAM
-1EE4B ; [.1D1C.0020.0005] # ARABIC MATHEMATICAL TAILED LAM
-1EE8B ; [.1D1C.0020.0005] # ARABIC MATHEMATICAL LOOPED LAM
-1EEAB ; [.1D1C.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK LAM
-FEDF ; [.1D1C.0020.0017] # ARABIC LETTER LAM INITIAL FORM
-FEE0 ; [.1D1C.0020.0018] # ARABIC LETTER LAM MEDIAL FORM
-FEDE ; [.1D1C.0020.0019] # ARABIC LETTER LAM FINAL FORM
-FEDD ; [.1D1C.0020.001A] # ARABIC LETTER LAM ISOLATED FORM
-FEF6 ; [.1D1C.0020.0019][.1C8B.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
-FEF5 ; [.1D1C.0020.001A][.1C8B.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
-FEF8 ; [.1D1C.0020.0019][.1C8C.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
-FEF7 ; [.1D1C.0020.001A][.1C8C.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
-FEFA ; [.1D1C.0020.0019][.1C90.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
-FEF9 ; [.1D1C.0020.001A][.1C90.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
-FEFC ; [.1D1C.0020.0019][.1C98.0020.0019] # ARABIC LIGATURE LAM WITH ALEF FINAL FORM
-FEFB ; [.1D1C.0020.001A][.1C98.0020.001A] # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
-FCC9 ; [.1D1C.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
-FC3F ; [.1D1C.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
-FD83 ; [.1D1C.0020.0017][.1CAE.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
-FD84 ; [.1D1C.0020.0019][.1CAE.0020.0019][.1CAE.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
-FDBA ; [.1D1C.0020.0017][.1CAE.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
-FDBC ; [.1D1C.0020.0019][.1CAE.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
-FDAC ; [.1D1C.0020.0019][.1CAE.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
-FCCA ; [.1D1C.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE LAM WITH HAH INITIAL FORM
-FC40 ; [.1D1C.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
-FDB5 ; [.1D1C.0020.0017][.1CB5.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
-FD80 ; [.1D1C.0020.0019][.1CB5.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
-FD82 ; [.1D1C.0020.0019][.1CB5.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD81 ; [.1D1C.0020.0019][.1CB5.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
-FCCB ; [.1D1C.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
-FC41 ; [.1D1C.0020.001A][.1CB6.0020.001A] # ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
-FD86 ; [.1D1C.0020.0017][.1CB6.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
-FD85 ; [.1D1C.0020.0019][.1CB6.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
-FCCC ; [.1D1C.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
-FCED ; [.1D1C.0020.0018][.1D23.0020.0018] # ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
-FC85 ; [.1D1C.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE LAM WITH MEEM FINAL FORM
-FC42 ; [.1D1C.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
-FD88 ; [.1D1C.0020.0017][.1D23.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
-FD87 ; [.1D1C.0020.0019][.1D23.0020.0019][.1CB5.0020.0019] # ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
-FDAD ; [.1D1C.0020.0019][.1D23.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
-FCCD ; [.1D1C.0020.0017][.1D30.0020.0017] # ARABIC LIGATURE LAM WITH HEH INITIAL FORM
-FC86 ; [.1D1C.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
-FC43 ; [.1D1C.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
-FC87 ; [.1D1C.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE LAM WITH YEH FINAL FORM
-FC44 ; [.1D1C.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
-06B5 ; [.1D1D.0020.0002] # ARABIC LETTER LAM WITH SMALL V
-06B6 ; [.1D1E.0020.0002] # ARABIC LETTER LAM WITH DOT ABOVE
-06B7 ; [.1D1F.0020.0002] # ARABIC LETTER LAM WITH THREE DOTS ABOVE
-06B8 ; [.1D20.0020.0002] # ARABIC LETTER LAM WITH THREE DOTS BELOW
-076A ; [.1D21.0020.0002] # ARABIC LETTER LAM WITH BAR
-08A6 ; [.1D22.0020.0002] # ARABIC LETTER LAM WITH DOUBLE BAR
-0645 ; [.1D23.0020.0002] # ARABIC LETTER MEEM
-1EE0C ; [.1D23.0020.0005] # ARABIC MATHEMATICAL MEEM
-1EE2C ; [.1D23.0020.0005] # ARABIC MATHEMATICAL INITIAL MEEM
-1EE6C ; [.1D23.0020.0005] # ARABIC MATHEMATICAL STRETCHED MEEM
-1EE8C ; [.1D23.0020.0005] # ARABIC MATHEMATICAL LOOPED MEEM
-1EEAC ; [.1D23.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM
-FEE3 ; [.1D23.0020.0017] # ARABIC LETTER MEEM INITIAL FORM
-FEE4 ; [.1D23.0020.0018] # ARABIC LETTER MEEM MEDIAL FORM
-FEE2 ; [.1D23.0020.0019] # ARABIC LETTER MEEM FINAL FORM
-FEE1 ; [.1D23.0020.001A] # ARABIC LETTER MEEM ISOLATED FORM
-06FE ; [.1D23.0020.0004][.0000.00FD.0004] # ARABIC SIGN SINDHI POSTPOSITION MEN
-FC88 ; [.1D23.0020.0019][.1C98.0020.0019] # ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
-FCCE ; [.1D23.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
-FC45 ; [.1D23.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
-FD8C ; [.1D23.0020.0017][.1CAE.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
-FD92 ; [.1D23.0020.0017][.1CAE.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
-FD8D ; [.1D23.0020.0017][.1CAE.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
-FDC0 ; [.1D23.0020.0019][.1CAE.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
-FCCF ; [.1D23.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
-FC46 ; [.1D23.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
-FD89 ; [.1D23.0020.0017][.1CB5.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
-FD8A ; [.1D23.0020.0017][.1CB5.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
-FDF4 ; [.1D23.0020.001A][.1CB5.0020.001A][.1D23.0020.001A][.1CC0.0020.001A] # ARABIC LIGATURE MOHAMMAD ISOLATED FORM
-FD8B ; [.1D23.0020.0019][.1CB5.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
-FCD0 ; [.1D23.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
-FC47 ; [.1D23.0020.001A][.1CB6.0020.001A] # ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
-FD8E ; [.1D23.0020.0017][.1CB6.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
-FD8F ; [.1D23.0020.0017][.1CB6.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
-FDB9 ; [.1D23.0020.0019][.1CB6.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
-FCD1 ; [.1D23.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
-FC89 ; [.1D23.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
-FC48 ; [.1D23.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
-FDB1 ; [.1D23.0020.0019][.1D23.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
-FC49 ; [.1D23.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
-FC4A ; [.1D23.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
-0765 ; [.1D24.0020.0002] # ARABIC LETTER MEEM WITH DOT ABOVE
-0766 ; [.1D25.0020.0002] # ARABIC LETTER MEEM WITH DOT BELOW
-08A7 ; [.1D26.0020.0002] # ARABIC LETTER MEEM WITH THREE DOTS ABOVE
-0646 ; [.1D27.0020.0002] # ARABIC LETTER NOON
-1EE0D ; [.1D27.0020.0005] # ARABIC MATHEMATICAL NOON
-1EE2D ; [.1D27.0020.0005] # ARABIC MATHEMATICAL INITIAL NOON
-1EE4D ; [.1D27.0020.0005] # ARABIC MATHEMATICAL TAILED NOON
-1EE6D ; [.1D27.0020.0005] # ARABIC MATHEMATICAL STRETCHED NOON
-1EE8D ; [.1D27.0020.0005] # ARABIC MATHEMATICAL LOOPED NOON
-1EEAD ; [.1D27.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK NOON
-FEE7 ; [.1D27.0020.0017] # ARABIC LETTER NOON INITIAL FORM
-FEE8 ; [.1D27.0020.0018] # ARABIC LETTER NOON MEDIAL FORM
-FEE6 ; [.1D27.0020.0019] # ARABIC LETTER NOON FINAL FORM
-FEE5 ; [.1D27.0020.001A] # ARABIC LETTER NOON ISOLATED FORM
-FCD2 ; [.1D27.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
-FC4B ; [.1D27.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
-FDB8 ; [.1D27.0020.0017][.1CAE.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
-FDBD ; [.1D27.0020.0019][.1CAE.0020.0019][.1CB5.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
-FD98 ; [.1D27.0020.0017][.1CAE.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
-FD97 ; [.1D27.0020.0019][.1CAE.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
-FD99 ; [.1D27.0020.0019][.1CAE.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FDC7 ; [.1D27.0020.0019][.1CAE.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
-FCD3 ; [.1D27.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE NOON WITH HAH INITIAL FORM
-FC4C ; [.1D27.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
-FD95 ; [.1D27.0020.0017][.1CB5.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
-FD96 ; [.1D27.0020.0019][.1CB5.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
-FDB3 ; [.1D27.0020.0019][.1CB5.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
-FCD4 ; [.1D27.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
-FC4D ; [.1D27.0020.001A][.1CB6.0020.001A] # ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
-FC8A ; [.1D27.0020.0019][.1CCE.0020.0019] # ARABIC LIGATURE NOON WITH REH FINAL FORM
-FC8B ; [.1D27.0020.0019][.1CCF.0020.0019] # ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
-FCD5 ; [.1D27.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
-FCEE ; [.1D27.0020.0018][.1D23.0020.0018] # ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
-FC8C ; [.1D27.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE NOON WITH MEEM FINAL FORM
-FC4E ; [.1D27.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
-FD9B ; [.1D27.0020.0019][.1D23.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD9A ; [.1D27.0020.0019][.1D23.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
-FC8D ; [.1D27.0020.0019][.1D27.0020.0019] # ARABIC LIGATURE NOON WITH NOON FINAL FORM
-FCD6 ; [.1D27.0020.0017][.1D30.0020.0017] # ARABIC LIGATURE NOON WITH HEH INITIAL FORM
-FCEF ; [.1D27.0020.0018][.1D30.0020.0018] # ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
-FC8E ; [.1D27.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
-FC4F ; [.1D27.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
-FC8F ; [.1D27.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE NOON WITH YEH FINAL FORM
-FC50 ; [.1D27.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
-06BA ; [.1D28.0020.0002] # ARABIC LETTER NOON GHUNNA
-1EE1D ; [.1D28.0020.0005] # ARABIC MATHEMATICAL DOTLESS NOON
-1EE5D ; [.1D28.0020.0005] # ARABIC MATHEMATICAL TAILED DOTLESS NOON
-FB9F ; [.1D28.0020.0019] # ARABIC LETTER NOON GHUNNA FINAL FORM
-FB9E ; [.1D28.0020.001A] # ARABIC LETTER NOON GHUNNA ISOLATED FORM
-06BB ; [.1D29.0020.0002] # ARABIC LETTER RNOON
-FBA2 ; [.1D29.0020.0017] # ARABIC LETTER RNOON INITIAL FORM
-FBA3 ; [.1D29.0020.0018] # ARABIC LETTER RNOON MEDIAL FORM
-FBA1 ; [.1D29.0020.0019] # ARABIC LETTER RNOON FINAL FORM
-FBA0 ; [.1D29.0020.001A] # ARABIC LETTER RNOON ISOLATED FORM
-06BC ; [.1D2A.0020.0002] # ARABIC LETTER NOON WITH RING
-06BD ; [.1D2B.0020.0002] # ARABIC LETTER NOON WITH THREE DOTS ABOVE
-06B9 ; [.1D2C.0020.0002] # ARABIC LETTER NOON WITH DOT BELOW
-0767 ; [.1D2D.0020.0002] # ARABIC LETTER NOON WITH TWO DOTS BELOW
-0768 ; [.1D2E.0020.0002] # ARABIC LETTER NOON WITH SMALL TAH
-0769 ; [.1D2F.0020.0002] # ARABIC LETTER NOON WITH SMALL V
-0647 ; [.1D30.0020.0002] # ARABIC LETTER HEH
-1EE24 ; [.1D30.0020.0005] # ARABIC MATHEMATICAL INITIAL HEH
-1EE64 ; [.1D30.0020.0005] # ARABIC MATHEMATICAL STRETCHED HEH
-1EE84 ; [.1D30.0020.0005] # ARABIC MATHEMATICAL LOOPED HEH
-FEEB ; [.1D30.0020.0017] # ARABIC LETTER HEH INITIAL FORM
-FEEC ; [.1D30.0020.0018] # ARABIC LETTER HEH MEDIAL FORM
-FEEA ; [.1D30.0020.0019] # ARABIC LETTER HEH FINAL FORM
-FEE9 ; [.1D30.0020.001A] # ARABIC LETTER HEH ISOLATED FORM
-FCD9 ; [.1D30.0020.0017][.0000.0096.0017] # ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
-FCD7 ; [.1D30.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
-FC51 ; [.1D30.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
-FCD8 ; [.1D30.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
-FC52 ; [.1D30.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
-FD93 ; [.1D30.0020.0017][.1D23.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
-FD94 ; [.1D30.0020.0017][.1D23.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
-FC53 ; [.1D30.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
-FC54 ; [.1D30.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
-06BE ; [.1D31.0020.0002] # ARABIC LETTER HEH DOACHASHMEE
-FBAC ; [.1D31.0020.0017] # ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
-FBAD ; [.1D31.0020.0018] # ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
-FBAB ; [.1D31.0020.0019] # ARABIC LETTER HEH DOACHASHMEE FINAL FORM
-FBAA ; [.1D31.0020.001A] # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
-06C1 ; [.1D32.0020.0002] # ARABIC LETTER HEH GOAL
-FBA8 ; [.1D32.0020.0017] # ARABIC LETTER HEH GOAL INITIAL FORM
-FBA9 ; [.1D32.0020.0018] # ARABIC LETTER HEH GOAL MEDIAL FORM
-FBA7 ; [.1D32.0020.0019] # ARABIC LETTER HEH GOAL FINAL FORM
-FBA6 ; [.1D32.0020.001A] # ARABIC LETTER HEH GOAL ISOLATED FORM
-06C2 ; [.1D32.0020.0002][.0000.0083.0002] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06C3 ; [.1D33.0020.0002] # ARABIC LETTER TEH MARBUTA GOAL
-06FF ; [.1D34.0020.0002] # ARABIC LETTER HEH WITH INVERTED V
-06D5 ; [.1D35.0020.0002] # ARABIC LETTER AE
-06C0 ; [.1D35.0020.0002][.0000.0083.0002] # ARABIC LETTER HEH WITH YEH ABOVE
-FBA5 ; [.1D35.0020.0019][.0000.0083.0019] # ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
-FBA4 ; [.1D35.0020.001A][.0000.0083.001A] # ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
-0648 ; [.1D36.0020.0002] # ARABIC LETTER WAW
-06E5 ; [.1D36.0020.0004] # ARABIC SMALL WAW
-1EE05 ; [.1D36.0020.0005] # ARABIC MATHEMATICAL WAW
-1EE85 ; [.1D36.0020.0005] # ARABIC MATHEMATICAL LOOPED WAW
-1EEA5 ; [.1D36.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK WAW
-FEEE ; [.1D36.0020.0019] # ARABIC LETTER WAW FINAL FORM
-FEED ; [.1D36.0020.001A] # ARABIC LETTER WAW ISOLATED FORM
-0676 ; [.1D36.0020.0004][.1C8A.0020.0004] # ARABIC LETTER HIGH HAMZA WAW
-FDF8 ; [.1D36.0020.001A][.1CDF.0020.001A][.1D1C.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE WASALLAM ISOLATED FORM
-06C4 ; [.1D37.0020.0002] # ARABIC LETTER WAW WITH RING
-06C5 ; [.1D38.0020.0002] # ARABIC LETTER KIRGHIZ OE
-FBE1 ; [.1D38.0020.0019] # ARABIC LETTER KIRGHIZ OE FINAL FORM
-FBE0 ; [.1D38.0020.001A] # ARABIC LETTER KIRGHIZ OE ISOLATED FORM
-06C6 ; [.1D39.0020.0002] # ARABIC LETTER OE
-FBDA ; [.1D39.0020.0019] # ARABIC LETTER OE FINAL FORM
-FBD9 ; [.1D39.0020.001A] # ARABIC LETTER OE ISOLATED FORM
-06C7 ; [.1D3A.0020.0002] # ARABIC LETTER U
-FBD8 ; [.1D3A.0020.0019] # ARABIC LETTER U FINAL FORM
-FBD7 ; [.1D3A.0020.001A] # ARABIC LETTER U ISOLATED FORM
-0677 ; [.1D3A.0020.0004][.1C8A.0020.0004] # ARABIC LETTER U WITH HAMZA ABOVE
-FBDD ; [.1D3A.0020.001A][.1C8A.0020.001A] # ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
-06C8 ; [.1D3B.0020.0002] # ARABIC LETTER YU
-FBDC ; [.1D3B.0020.0019] # ARABIC LETTER YU FINAL FORM
-FBDB ; [.1D3B.0020.001A] # ARABIC LETTER YU ISOLATED FORM
-06C9 ; [.1D3C.0020.0002] # ARABIC LETTER KIRGHIZ YU
-FBE3 ; [.1D3C.0020.0019] # ARABIC LETTER KIRGHIZ YU FINAL FORM
-FBE2 ; [.1D3C.0020.001A] # ARABIC LETTER KIRGHIZ YU ISOLATED FORM
-06CA ; [.1D3D.0020.0002] # ARABIC LETTER WAW WITH TWO DOTS ABOVE
-06CB ; [.1D3E.0020.0002] # ARABIC LETTER VE
-FBDF ; [.1D3E.0020.0019] # ARABIC LETTER VE FINAL FORM
-FBDE ; [.1D3E.0020.001A] # ARABIC LETTER VE ISOLATED FORM
-06CF ; [.1D3F.0020.0002] # ARABIC LETTER WAW WITH DOT ABOVE
-0778 ; [.1D40.0020.0002] # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0779 ; [.1D41.0020.0002] # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-08AB ; [.1D42.0020.0002] # ARABIC LETTER WAW WITH DOT WITHIN
-0649 ; [.1D43.0020.0002] # ARABIC LETTER ALEF MAKSURA
-FBE8 ; [.1D43.0020.0017] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
-FBE9 ; [.1D43.0020.0018] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
-FEF0 ; [.1D43.0020.0019] # ARABIC LETTER ALEF MAKSURA FINAL FORM
-FEEF ; [.1D43.0020.001A] # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
-FC90 ; [.1D43.0020.0019][.0000.0096.0019] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
-FC5D ; [.1D43.0020.001A][.0000.0096.001A] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
-064A ; [.1D44.0020.0002] # ARABIC LETTER YEH
-06E6 ; [.1D44.0020.0004] # ARABIC SMALL YEH
-1EE09 ; [.1D44.0020.0005] # ARABIC MATHEMATICAL YEH
-1EE29 ; [.1D44.0020.0005] # ARABIC MATHEMATICAL INITIAL YEH
-1EE49 ; [.1D44.0020.0005] # ARABIC MATHEMATICAL TAILED YEH
-1EE69 ; [.1D44.0020.0005] # ARABIC MATHEMATICAL STRETCHED YEH
-1EE89 ; [.1D44.0020.0005] # ARABIC MATHEMATICAL LOOPED YEH
-1EEA9 ; [.1D44.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
-FEF3 ; [.1D44.0020.0017] # ARABIC LETTER YEH INITIAL FORM
-FEF4 ; [.1D44.0020.0018] # ARABIC LETTER YEH MEDIAL FORM
-FEF2 ; [.1D44.0020.0019] # ARABIC LETTER YEH FINAL FORM
-FEF1 ; [.1D44.0020.001A] # ARABIC LETTER YEH ISOLATED FORM
-0678 ; [.1D44.0020.0004][.1C8A.0020.0004] # ARABIC LETTER HIGH HAMZA YEH
-FCDA ; [.1D44.0020.0017][.1CAE.0020.0017] # ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
-FC55 ; [.1D44.0020.001A][.1CAE.0020.001A] # ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
-FDAF ; [.1D44.0020.0019][.1CAE.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
-FCDB ; [.1D44.0020.0017][.1CB5.0020.0017] # ARABIC LIGATURE YEH WITH HAH INITIAL FORM
-FC56 ; [.1D44.0020.001A][.1CB5.0020.001A] # ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
-FDAE ; [.1D44.0020.0019][.1CB5.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
-FCDC ; [.1D44.0020.0017][.1CB6.0020.0017] # ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
-FC57 ; [.1D44.0020.001A][.1CB6.0020.001A] # ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
-FC91 ; [.1D44.0020.0019][.1CCE.0020.0019] # ARABIC LIGATURE YEH WITH REH FINAL FORM
-FC92 ; [.1D44.0020.0019][.1CCF.0020.0019] # ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
-FCDD ; [.1D44.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
-FCF0 ; [.1D44.0020.0018][.1D23.0020.0018] # ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
-FC93 ; [.1D44.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE YEH WITH MEEM FINAL FORM
-FC58 ; [.1D44.0020.001A][.1D23.0020.001A] # ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
-FD9D ; [.1D44.0020.0017][.1D23.0020.0017][.1D23.0020.0017] # ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
-FD9C ; [.1D44.0020.0019][.1D23.0020.0019][.1D23.0020.0019] # ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
-FDB0 ; [.1D44.0020.0019][.1D23.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
-FC94 ; [.1D44.0020.0019][.1D27.0020.0019] # ARABIC LIGATURE YEH WITH NOON FINAL FORM
-FCDE ; [.1D44.0020.0017][.1D30.0020.0017] # ARABIC LIGATURE YEH WITH HEH INITIAL FORM
-FCF1 ; [.1D44.0020.0018][.1D30.0020.0018] # ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
-FC95 ; [.1D44.0020.0019][.1D43.0020.0019] # ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
-FC59 ; [.1D44.0020.001A][.1D43.0020.001A] # ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
-FC96 ; [.1D44.0020.0019][.1D44.0020.0019] # ARABIC LIGATURE YEH WITH YEH FINAL FORM
-FC5A ; [.1D44.0020.001A][.1D44.0020.001A] # ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
-06CC ; [.1D45.0020.0002] # ARABIC LETTER FARSI YEH
-FBFE ; [.1D45.0020.0017] # ARABIC LETTER FARSI YEH INITIAL FORM
-FBFF ; [.1D45.0020.0018] # ARABIC LETTER FARSI YEH MEDIAL FORM
-FBFD ; [.1D45.0020.0019] # ARABIC LETTER FARSI YEH FINAL FORM
-FBFC ; [.1D45.0020.001A] # ARABIC LETTER FARSI YEH ISOLATED FORM
-06CD ; [.1D46.0020.0002] # ARABIC LETTER YEH WITH TAIL
-06CE ; [.1D47.0020.0002] # ARABIC LETTER YEH WITH SMALL V
-06D0 ; [.1D48.0020.0002] # ARABIC LETTER E
-FBE6 ; [.1D48.0020.0017] # ARABIC LETTER E INITIAL FORM
-FBE7 ; [.1D48.0020.0018] # ARABIC LETTER E MEDIAL FORM
-FBE5 ; [.1D48.0020.0019] # ARABIC LETTER E FINAL FORM
-FBE4 ; [.1D48.0020.001A] # ARABIC LETTER E ISOLATED FORM
-06D1 ; [.1D49.0020.0002] # ARABIC LETTER YEH WITH THREE DOTS BELOW
-063D ; [.1D4A.0020.0002] # ARABIC LETTER FARSI YEH WITH INVERTED V
-063E ; [.1D4B.0020.0002] # ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE
-063F ; [.1D4C.0020.0002] # ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
-0620 ; [.1D4D.0020.0002] # ARABIC LETTER KASHMIRI YEH
-0775 ; [.1D4E.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0776 ; [.1D4F.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0777 ; [.1D50.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
-06D2 ; [.1D51.0020.0002] # ARABIC LETTER YEH BARREE
-FBAF ; [.1D51.0020.0019] # ARABIC LETTER YEH BARREE FINAL FORM
-FBAE ; [.1D51.0020.001A] # ARABIC LETTER YEH BARREE ISOLATED FORM
-06D3 ; [.1D51.0020.0002][.0000.0083.0002] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-FBB1 ; [.1D51.0020.0019][.0000.0083.0019] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
-FBB0 ; [.1D51.0020.001A][.0000.0083.001A] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
-077A ; [.1D52.0020.0002] # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-077B ; [.1D53.0020.0002] # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0710 ; [.1D54.0020.0002] # SYRIAC LETTER ALAPH
-0712 ; [.1D55.0020.0002] # SYRIAC LETTER BETH
-072D ; [.1D55.0020.0004][.0000.00FE.0004] # SYRIAC LETTER PERSIAN BHETH
-0713 ; [.1D56.0020.0002] # SYRIAC LETTER GAMAL
-0714 ; [.1D56.0020.0004][.0000.00FD.0004] # SYRIAC LETTER GAMAL GARSHUNI
-072E ; [.1D56.0020.0004][.0000.00FE.0004] # SYRIAC LETTER PERSIAN GHAMAL
-0716 ; [.1D57.0020.0002] # SYRIAC LETTER DOTLESS DALATH RISH
-0715 ; [.1D58.0020.0002] # SYRIAC LETTER DALATH
-072F ; [.1D58.0020.0004][.0000.00FE.0004] # SYRIAC LETTER PERSIAN DHALATH
-0717 ; [.1D59.0020.0002] # SYRIAC LETTER HE
-0718 ; [.1D5A.0020.0002] # SYRIAC LETTER WAW
-0719 ; [.1D5B.0020.0002] # SYRIAC LETTER ZAIN
-074D ; [.1D5C.0020.0002] # SYRIAC LETTER SOGDIAN ZHAIN
-071A ; [.1D5D.0020.0002] # SYRIAC LETTER HETH
-071B ; [.1D5E.0020.0002] # SYRIAC LETTER TETH
-071C ; [.1D5E.0020.0004][.0000.00FD.0004] # SYRIAC LETTER TETH GARSHUNI
-071D ; [.1D5F.0020.0002] # SYRIAC LETTER YUDH
-071E ; [.1D60.0020.0002] # SYRIAC LETTER YUDH HE
-071F ; [.1D61.0020.0002] # SYRIAC LETTER KAPH
-074E ; [.1D62.0020.0002] # SYRIAC LETTER SOGDIAN KHAPH
-0720 ; [.1D63.0020.0002] # SYRIAC LETTER LAMADH
-0721 ; [.1D64.0020.0002] # SYRIAC LETTER MIM
-0722 ; [.1D65.0020.0002] # SYRIAC LETTER NUN
-0723 ; [.1D66.0020.0002] # SYRIAC LETTER SEMKATH
-0724 ; [.1D66.0020.0019] # SYRIAC LETTER FINAL SEMKATH
-0725 ; [.1D67.0020.0002] # SYRIAC LETTER E
-0726 ; [.1D68.0020.0002] # SYRIAC LETTER PE
-0727 ; [.1D68.0020.0004][.0000.00FD.0004] # SYRIAC LETTER REVERSED PE
-074F ; [.1D69.0020.0002] # SYRIAC LETTER SOGDIAN FE
-0728 ; [.1D6A.0020.0002] # SYRIAC LETTER SADHE
-0729 ; [.1D6B.0020.0002] # SYRIAC LETTER QAPH
-072A ; [.1D6C.0020.0002] # SYRIAC LETTER RISH
-072B ; [.1D6D.0020.0002] # SYRIAC LETTER SHIN
-072C ; [.1D6E.0020.0002] # SYRIAC LETTER TAW
-0840 ; [.1D6F.0020.0002] # MANDAIC LETTER HALQA
-0841 ; [.1D70.0020.0002] # MANDAIC LETTER AB
-0842 ; [.1D71.0020.0002] # MANDAIC LETTER AG
-0843 ; [.1D72.0020.0002] # MANDAIC LETTER AD
-0844 ; [.1D73.0020.0002] # MANDAIC LETTER AH
-0845 ; [.1D74.0020.0002] # MANDAIC LETTER USHENNA
-0846 ; [.1D75.0020.0002] # MANDAIC LETTER AZ
-0847 ; [.1D76.0020.0002] # MANDAIC LETTER IT
-0848 ; [.1D77.0020.0002] # MANDAIC LETTER ATT
-0849 ; [.1D78.0020.0002] # MANDAIC LETTER AKSA
-084A ; [.1D79.0020.0002] # MANDAIC LETTER AK
-084B ; [.1D7A.0020.0002] # MANDAIC LETTER AL
-084C ; [.1D7B.0020.0002] # MANDAIC LETTER AM
-084D ; [.1D7C.0020.0002] # MANDAIC LETTER AN
-084E ; [.1D7D.0020.0002] # MANDAIC LETTER AS
-084F ; [.1D7E.0020.0002] # MANDAIC LETTER IN
-0850 ; [.1D7F.0020.0002] # MANDAIC LETTER AP
-0851 ; [.1D80.0020.0002] # MANDAIC LETTER ASZ
-0852 ; [.1D81.0020.0002] # MANDAIC LETTER AQ
-0853 ; [.1D82.0020.0002] # MANDAIC LETTER AR
-0854 ; [.1D83.0020.0002] # MANDAIC LETTER ASH
-0855 ; [.1D84.0020.0002] # MANDAIC LETTER AT
-0856 ; [.1D85.0020.0002] # MANDAIC LETTER DUSHENNA
-0857 ; [.1D86.0020.0002] # MANDAIC LETTER KAD
-0858 ; [.1D87.0020.0002] # MANDAIC LETTER AIN
-0780 ; [.1D88.0020.0002] # THAANA LETTER HAA
-0799 ; [.1D89.0020.0002] # THAANA LETTER HHAA
-079A ; [.1D8A.0020.0002] # THAANA LETTER KHAA
-0781 ; [.1D8B.0020.0002] # THAANA LETTER SHAVIYANI
-0782 ; [.1D8C.0020.0002] # THAANA LETTER NOONU
-0783 ; [.1D8D.0020.0002] # THAANA LETTER RAA
-079C ; [.1D8E.0020.0002] # THAANA LETTER ZAA
-0784 ; [.1D8F.0020.0002] # THAANA LETTER BAA
-0785 ; [.1D90.0020.0002] # THAANA LETTER LHAVIYANI
-0786 ; [.1D91.0020.0002] # THAANA LETTER KAAFU
-0787 ; [.1D92.0020.0002] # THAANA LETTER ALIFU
-07A2 ; [.1D93.0020.0002] # THAANA LETTER AINU
-07A3 ; [.1D94.0020.0002] # THAANA LETTER GHAINU
-0788 ; [.1D95.0020.0002] # THAANA LETTER VAAVU
-07A5 ; [.1D96.0020.0002] # THAANA LETTER WAAVU
-0789 ; [.1D97.0020.0002] # THAANA LETTER MEEMU
-078A ; [.1D98.0020.0002] # THAANA LETTER FAAFU
-078B ; [.1D99.0020.0002] # THAANA LETTER DHAALU
-079B ; [.1D9A.0020.0002] # THAANA LETTER THAALU
-078C ; [.1D9B.0020.0002] # THAANA LETTER THAA
-0798 ; [.1D9C.0020.0002] # THAANA LETTER TTAA
-07A0 ; [.1D9D.0020.0002] # THAANA LETTER TO
-07A1 ; [.1D9E.0020.0002] # THAANA LETTER ZO
-078D ; [.1D9F.0020.0002] # THAANA LETTER LAAMU
-078E ; [.1DA0.0020.0002] # THAANA LETTER GAAFU
-07A4 ; [.1DA1.0020.0002] # THAANA LETTER QAAFU
-078F ; [.1DA2.0020.0002] # THAANA LETTER GNAVIYANI
-0790 ; [.1DA3.0020.0002] # THAANA LETTER SEENU
-079D ; [.1DA4.0020.0002] # THAANA LETTER SHEENU
-079E ; [.1DA5.0020.0002] # THAANA LETTER SAADHU
-079F ; [.1DA6.0020.0002] # THAANA LETTER DAADHU
-0791 ; [.1DA7.0020.0002] # THAANA LETTER DAVIYANI
-0792 ; [.1DA8.0020.0002] # THAANA LETTER ZAVIYANI
-0793 ; [.1DA9.0020.0002] # THAANA LETTER TAVIYANI
-0794 ; [.1DAA.0020.0002] # THAANA LETTER YAA
-0795 ; [.1DAB.0020.0002] # THAANA LETTER PAVIYANI
-0796 ; [.1DAC.0020.0002] # THAANA LETTER JAVIYANI
-0797 ; [.1DAD.0020.0002] # THAANA LETTER CHAVIYANI
-07B1 ; [.1DAE.0020.0002] # THAANA LETTER NAA
-07A6 ; [.1DAF.0020.0002] # THAANA ABAFILI
-07A7 ; [.1DB0.0020.0002] # THAANA AABAAFILI
-07A8 ; [.1DB1.0020.0002] # THAANA IBIFILI
-07A9 ; [.1DB2.0020.0002] # THAANA EEBEEFILI
-07AA ; [.1DB3.0020.0002] # THAANA UBUFILI
-07AB ; [.1DB4.0020.0002] # THAANA OOBOOFILI
-07AC ; [.1DB5.0020.0002] # THAANA EBEFILI
-07AD ; [.1DB6.0020.0002] # THAANA EYBEYFILI
-07AE ; [.1DB7.0020.0002] # THAANA OBOFILI
-07AF ; [.1DB8.0020.0002] # THAANA OABOAFILI
-07B0 ; [.1DB9.0020.0002] # THAANA SUKUN
-07CA ; [.1DBA.0020.0002] # NKO LETTER A
-07CB ; [.1DBB.0020.0002] # NKO LETTER EE
-07CC ; [.1DBC.0020.0002] # NKO LETTER I
-07CD ; [.1DBD.0020.0002] # NKO LETTER E
-07CE ; [.1DBE.0020.0002] # NKO LETTER U
-07CF ; [.1DBF.0020.0002] # NKO LETTER OO
-07D0 ; [.1DC0.0020.0002] # NKO LETTER O
-07D1 ; [.1DC1.0020.0002] # NKO LETTER DAGBASINNA
-07D2 ; [.1DC2.0020.0002] # NKO LETTER N
-07D3 ; [.1DC3.0020.0002] # NKO LETTER BA
-07D4 ; [.1DC4.0020.0002] # NKO LETTER PA
-07D5 ; [.1DC5.0020.0002] # NKO LETTER TA
-07D6 ; [.1DC6.0020.0002] # NKO LETTER JA
-07E8 ; [.1DC6.0020.0004][.0000.00FC.0004] # NKO LETTER JONA JA
-07D7 ; [.1DC7.0020.0002] # NKO LETTER CHA
-07E9 ; [.1DC7.0020.0004][.0000.00FC.0004] # NKO LETTER JONA CHA
-07D8 ; [.1DC8.0020.0002] # NKO LETTER DA
-07D9 ; [.1DC9.0020.0002] # NKO LETTER RA
-07EA ; [.1DC9.0020.0004][.0000.00FC.0004] # NKO LETTER JONA RA
-07DA ; [.1DCA.0020.0002] # NKO LETTER RRA
-07DB ; [.1DCB.0020.0002] # NKO LETTER SA
-07DC ; [.1DCC.0020.0002] # NKO LETTER GBA
-07DD ; [.1DCD.0020.0002] # NKO LETTER FA
-07DE ; [.1DCE.0020.0002] # NKO LETTER KA
-07DF ; [.1DCF.0020.0002] # NKO LETTER LA
-07E0 ; [.1DD0.0020.0002] # NKO LETTER NA WOLOSO
-07E1 ; [.1DD1.0020.0002] # NKO LETTER MA
-07E2 ; [.1DD2.0020.0002] # NKO LETTER NYA
-07E3 ; [.1DD3.0020.0002] # NKO LETTER NA
-07E4 ; [.1DD4.0020.0002] # NKO LETTER HA
-07E5 ; [.1DD5.0020.0002] # NKO LETTER WA
-07E6 ; [.1DD6.0020.0002] # NKO LETTER YA
-07E7 ; [.1DD7.0020.0002] # NKO LETTER NYA WOLOSO
-07F4 ; [.1DD8.0020.0002] # NKO HIGH TONE APOSTROPHE
-07F5 ; [.1DD9.0020.0002] # NKO LOW TONE APOSTROPHE
-2D30 ; [.1DDA.0020.0002] # TIFINAGH LETTER YA
-2D31 ; [.1DDB.0020.0002] # TIFINAGH LETTER YAB
-2D32 ; [.1DDC.0020.0002] # TIFINAGH LETTER YABH
-2D33 ; [.1DDD.0020.0002] # TIFINAGH LETTER YAG
-2D34 ; [.1DDE.0020.0002] # TIFINAGH LETTER YAGHH
-2D35 ; [.1DDF.0020.0002] # TIFINAGH LETTER BERBER ACADEMY YAJ
-2D36 ; [.1DE0.0020.0002] # TIFINAGH LETTER YAJ
-2D37 ; [.1DE1.0020.0002] # TIFINAGH LETTER YAD
-2D38 ; [.1DE2.0020.0002] # TIFINAGH LETTER YADH
-2D39 ; [.1DE3.0020.0002] # TIFINAGH LETTER YADD
-2D3A ; [.1DE4.0020.0002] # TIFINAGH LETTER YADDH
-2D3B ; [.1DE5.0020.0002] # TIFINAGH LETTER YEY
-2D66 ; [.1DE6.0020.0002] # TIFINAGH LETTER YE
-2D3C ; [.1DE7.0020.0002] # TIFINAGH LETTER YAF
-2D3D ; [.1DE8.0020.0002] # TIFINAGH LETTER YAK
-2D3E ; [.1DE9.0020.0002] # TIFINAGH LETTER TUAREG YAK
-2D3F ; [.1DEA.0020.0002] # TIFINAGH LETTER YAKHH
-2D40 ; [.1DEB.0020.0002] # TIFINAGH LETTER YAH
-2D41 ; [.1DEC.0020.0002] # TIFINAGH LETTER BERBER ACADEMY YAH
-2D42 ; [.1DED.0020.0002] # TIFINAGH LETTER TUAREG YAH
-2D43 ; [.1DEE.0020.0002] # TIFINAGH LETTER YAHH
-2D44 ; [.1DEF.0020.0002] # TIFINAGH LETTER YAA
-2D45 ; [.1DF0.0020.0002] # TIFINAGH LETTER YAKH
-2D46 ; [.1DF1.0020.0002] # TIFINAGH LETTER TUAREG YAKH
-2D47 ; [.1DF2.0020.0002] # TIFINAGH LETTER YAQ
-2D48 ; [.1DF3.0020.0002] # TIFINAGH LETTER TUAREG YAQ
-2D49 ; [.1DF4.0020.0002] # TIFINAGH LETTER YI
-2D4A ; [.1DF5.0020.0002] # TIFINAGH LETTER YAZH
-2D4B ; [.1DF6.0020.0002] # TIFINAGH LETTER AHAGGAR YAZH
-2D4C ; [.1DF7.0020.0002] # TIFINAGH LETTER TUAREG YAZH
-2D4D ; [.1DF8.0020.0002] # TIFINAGH LETTER YAL
-2D4E ; [.1DF9.0020.0002] # TIFINAGH LETTER YAM
-2D4F ; [.1DFA.0020.0002] # TIFINAGH LETTER YAN
-2D50 ; [.1DFB.0020.0002] # TIFINAGH LETTER TUAREG YAGN
-2D51 ; [.1DFC.0020.0002] # TIFINAGH LETTER TUAREG YANG
-2D52 ; [.1DFD.0020.0002] # TIFINAGH LETTER YAP
-2D53 ; [.1DFE.0020.0002] # TIFINAGH LETTER YU
-2D67 ; [.1DFF.0020.0002] # TIFINAGH LETTER YO
-2D54 ; [.1E00.0020.0002] # TIFINAGH LETTER YAR
-2D55 ; [.1E01.0020.0002] # TIFINAGH LETTER YARR
-2D56 ; [.1E02.0020.0002] # TIFINAGH LETTER YAGH
-2D57 ; [.1E03.0020.0002] # TIFINAGH LETTER TUAREG YAGH
-2D58 ; [.1E04.0020.0002] # TIFINAGH LETTER AYER YAGH
-2D59 ; [.1E05.0020.0002] # TIFINAGH LETTER YAS
-2D5A ; [.1E06.0020.0002] # TIFINAGH LETTER YASS
-2D5B ; [.1E07.0020.0002] # TIFINAGH LETTER YASH
-2D5C ; [.1E08.0020.0002] # TIFINAGH LETTER YAT
-2D5D ; [.1E09.0020.0002] # TIFINAGH LETTER YATH
-2D5E ; [.1E0A.0020.0002] # TIFINAGH LETTER YACH
-2D5F ; [.1E0B.0020.0002] # TIFINAGH LETTER YATT
-2D60 ; [.1E0C.0020.0002] # TIFINAGH LETTER YAV
-2D61 ; [.1E0D.0020.0002] # TIFINAGH LETTER YAW
-2D62 ; [.1E0E.0020.0002] # TIFINAGH LETTER YAY
-2D63 ; [.1E0F.0020.0002] # TIFINAGH LETTER YAZ
-2D64 ; [.1E10.0020.0002] # TIFINAGH LETTER TAWELLEMET YAZ
-2D65 ; [.1E11.0020.0002] # TIFINAGH LETTER YAZZ
-2D6F ; [.1E12.0020.0002] # TIFINAGH MODIFIER LETTER LABIALIZATION MARK
-1200 ; [.1E13.0020.0002] # ETHIOPIC SYLLABLE HA
-1201 ; [.1E14.0020.0002] # ETHIOPIC SYLLABLE HU
-1202 ; [.1E15.0020.0002] # ETHIOPIC SYLLABLE HI
-1203 ; [.1E16.0020.0002] # ETHIOPIC SYLLABLE HAA
-1204 ; [.1E17.0020.0002] # ETHIOPIC SYLLABLE HEE
-1205 ; [.1E18.0020.0002] # ETHIOPIC SYLLABLE HE
-1206 ; [.1E19.0020.0002] # ETHIOPIC SYLLABLE HO
-1207 ; [.1E1A.0020.0002] # ETHIOPIC SYLLABLE HOA
-1208 ; [.1E1B.0020.0002] # ETHIOPIC SYLLABLE LA
-1209 ; [.1E1C.0020.0002] # ETHIOPIC SYLLABLE LU
-120A ; [.1E1D.0020.0002] # ETHIOPIC SYLLABLE LI
-120B ; [.1E1E.0020.0002] # ETHIOPIC SYLLABLE LAA
-120C ; [.1E1F.0020.0002] # ETHIOPIC SYLLABLE LEE
-120D ; [.1E20.0020.0002] # ETHIOPIC SYLLABLE LE
-120E ; [.1E21.0020.0002] # ETHIOPIC SYLLABLE LO
-120F ; [.1E22.0020.0002] # ETHIOPIC SYLLABLE LWA
-2D80 ; [.1E23.0020.0002] # ETHIOPIC SYLLABLE LOA
-1210 ; [.1E24.0020.0002] # ETHIOPIC SYLLABLE HHA
-1211 ; [.1E25.0020.0002] # ETHIOPIC SYLLABLE HHU
-1212 ; [.1E26.0020.0002] # ETHIOPIC SYLLABLE HHI
-1213 ; [.1E27.0020.0002] # ETHIOPIC SYLLABLE HHAA
-1214 ; [.1E28.0020.0002] # ETHIOPIC SYLLABLE HHEE
-1215 ; [.1E29.0020.0002] # ETHIOPIC SYLLABLE HHE
-1216 ; [.1E2A.0020.0002] # ETHIOPIC SYLLABLE HHO
-1217 ; [.1E2B.0020.0002] # ETHIOPIC SYLLABLE HHWA
-1218 ; [.1E2C.0020.0002] # ETHIOPIC SYLLABLE MA
-1219 ; [.1E2D.0020.0002] # ETHIOPIC SYLLABLE MU
-121A ; [.1E2E.0020.0002] # ETHIOPIC SYLLABLE MI
-121B ; [.1E2F.0020.0002] # ETHIOPIC SYLLABLE MAA
-121C ; [.1E30.0020.0002] # ETHIOPIC SYLLABLE MEE
-121D ; [.1E31.0020.0002] # ETHIOPIC SYLLABLE ME
-121E ; [.1E32.0020.0002] # ETHIOPIC SYLLABLE MO
-121F ; [.1E33.0020.0002] # ETHIOPIC SYLLABLE MWA
-1380 ; [.1E34.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT MWA
-1381 ; [.1E35.0020.0002] # ETHIOPIC SYLLABLE MWI
-1382 ; [.1E36.0020.0002] # ETHIOPIC SYLLABLE MWEE
-1383 ; [.1E37.0020.0002] # ETHIOPIC SYLLABLE MWE
-2D81 ; [.1E38.0020.0002] # ETHIOPIC SYLLABLE MOA
-1220 ; [.1E39.0020.0002] # ETHIOPIC SYLLABLE SZA
-1221 ; [.1E3A.0020.0002] # ETHIOPIC SYLLABLE SZU
-1222 ; [.1E3B.0020.0002] # ETHIOPIC SYLLABLE SZI
-1223 ; [.1E3C.0020.0002] # ETHIOPIC SYLLABLE SZAA
-1224 ; [.1E3D.0020.0002] # ETHIOPIC SYLLABLE SZEE
-1225 ; [.1E3E.0020.0002] # ETHIOPIC SYLLABLE SZE
-1226 ; [.1E3F.0020.0002] # ETHIOPIC SYLLABLE SZO
-1227 ; [.1E40.0020.0002] # ETHIOPIC SYLLABLE SZWA
-1228 ; [.1E41.0020.0002] # ETHIOPIC SYLLABLE RA
-1229 ; [.1E42.0020.0002] # ETHIOPIC SYLLABLE RU
-122A ; [.1E43.0020.0002] # ETHIOPIC SYLLABLE RI
-122B ; [.1E44.0020.0002] # ETHIOPIC SYLLABLE RAA
-122C ; [.1E45.0020.0002] # ETHIOPIC SYLLABLE REE
-122D ; [.1E46.0020.0002] # ETHIOPIC SYLLABLE RE
-122E ; [.1E47.0020.0002] # ETHIOPIC SYLLABLE RO
-122F ; [.1E48.0020.0002] # ETHIOPIC SYLLABLE RWA
-2D82 ; [.1E49.0020.0002] # ETHIOPIC SYLLABLE ROA
-1230 ; [.1E4A.0020.0002] # ETHIOPIC SYLLABLE SA
-1231 ; [.1E4B.0020.0002] # ETHIOPIC SYLLABLE SU
-1232 ; [.1E4C.0020.0002] # ETHIOPIC SYLLABLE SI
-1233 ; [.1E4D.0020.0002] # ETHIOPIC SYLLABLE SAA
-1234 ; [.1E4E.0020.0002] # ETHIOPIC SYLLABLE SEE
-1235 ; [.1E4F.0020.0002] # ETHIOPIC SYLLABLE SE
-1236 ; [.1E50.0020.0002] # ETHIOPIC SYLLABLE SO
-1237 ; [.1E51.0020.0002] # ETHIOPIC SYLLABLE SWA
-2D83 ; [.1E52.0020.0002] # ETHIOPIC SYLLABLE SOA
-AB01 ; [.1E53.0020.0002] # ETHIOPIC SYLLABLE TTHU
-AB02 ; [.1E54.0020.0002] # ETHIOPIC SYLLABLE TTHI
-AB03 ; [.1E55.0020.0002] # ETHIOPIC SYLLABLE TTHAA
-AB04 ; [.1E56.0020.0002] # ETHIOPIC SYLLABLE TTHEE
-AB05 ; [.1E57.0020.0002] # ETHIOPIC SYLLABLE TTHE
-AB06 ; [.1E58.0020.0002] # ETHIOPIC SYLLABLE TTHO
-1238 ; [.1E59.0020.0002] # ETHIOPIC SYLLABLE SHA
-1239 ; [.1E5A.0020.0002] # ETHIOPIC SYLLABLE SHU
-123A ; [.1E5B.0020.0002] # ETHIOPIC SYLLABLE SHI
-123B ; [.1E5C.0020.0002] # ETHIOPIC SYLLABLE SHAA
-123C ; [.1E5D.0020.0002] # ETHIOPIC SYLLABLE SHEE
-123D ; [.1E5E.0020.0002] # ETHIOPIC SYLLABLE SHE
-123E ; [.1E5F.0020.0002] # ETHIOPIC SYLLABLE SHO
-123F ; [.1E60.0020.0002] # ETHIOPIC SYLLABLE SHWA
-2D84 ; [.1E61.0020.0002] # ETHIOPIC SYLLABLE SHOA
-1240 ; [.1E62.0020.0002] # ETHIOPIC SYLLABLE QA
-1241 ; [.1E63.0020.0002] # ETHIOPIC SYLLABLE QU
-1242 ; [.1E64.0020.0002] # ETHIOPIC SYLLABLE QI
-1243 ; [.1E65.0020.0002] # ETHIOPIC SYLLABLE QAA
-1244 ; [.1E66.0020.0002] # ETHIOPIC SYLLABLE QEE
-1245 ; [.1E67.0020.0002] # ETHIOPIC SYLLABLE QE
-1246 ; [.1E68.0020.0002] # ETHIOPIC SYLLABLE QO
-1247 ; [.1E69.0020.0002] # ETHIOPIC SYLLABLE QOA
-1248 ; [.1E6A.0020.0002] # ETHIOPIC SYLLABLE QWA
-124A ; [.1E6B.0020.0002] # ETHIOPIC SYLLABLE QWI
-124B ; [.1E6C.0020.0002] # ETHIOPIC SYLLABLE QWAA
-124C ; [.1E6D.0020.0002] # ETHIOPIC SYLLABLE QWEE
-124D ; [.1E6E.0020.0002] # ETHIOPIC SYLLABLE QWE
-1250 ; [.1E6F.0020.0002] # ETHIOPIC SYLLABLE QHA
-1251 ; [.1E70.0020.0002] # ETHIOPIC SYLLABLE QHU
-1252 ; [.1E71.0020.0002] # ETHIOPIC SYLLABLE QHI
-1253 ; [.1E72.0020.0002] # ETHIOPIC SYLLABLE QHAA
-1254 ; [.1E73.0020.0002] # ETHIOPIC SYLLABLE QHEE
-1255 ; [.1E74.0020.0002] # ETHIOPIC SYLLABLE QHE
-1256 ; [.1E75.0020.0002] # ETHIOPIC SYLLABLE QHO
-1258 ; [.1E76.0020.0002] # ETHIOPIC SYLLABLE QHWA
-125A ; [.1E77.0020.0002] # ETHIOPIC SYLLABLE QHWI
-125B ; [.1E78.0020.0002] # ETHIOPIC SYLLABLE QHWAA
-125C ; [.1E79.0020.0002] # ETHIOPIC SYLLABLE QHWEE
-125D ; [.1E7A.0020.0002] # ETHIOPIC SYLLABLE QHWE
-1260 ; [.1E7B.0020.0002] # ETHIOPIC SYLLABLE BA
-1261 ; [.1E7C.0020.0002] # ETHIOPIC SYLLABLE BU
-1262 ; [.1E7D.0020.0002] # ETHIOPIC SYLLABLE BI
-1263 ; [.1E7E.0020.0002] # ETHIOPIC SYLLABLE BAA
-1264 ; [.1E7F.0020.0002] # ETHIOPIC SYLLABLE BEE
-1265 ; [.1E80.0020.0002] # ETHIOPIC SYLLABLE BE
-1266 ; [.1E81.0020.0002] # ETHIOPIC SYLLABLE BO
-1267 ; [.1E82.0020.0002] # ETHIOPIC SYLLABLE BWA
-1384 ; [.1E83.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT BWA
-1385 ; [.1E84.0020.0002] # ETHIOPIC SYLLABLE BWI
-1386 ; [.1E85.0020.0002] # ETHIOPIC SYLLABLE BWEE
-1387 ; [.1E86.0020.0002] # ETHIOPIC SYLLABLE BWE
-2D85 ; [.1E87.0020.0002] # ETHIOPIC SYLLABLE BOA
-1268 ; [.1E88.0020.0002] # ETHIOPIC SYLLABLE VA
-1269 ; [.1E89.0020.0002] # ETHIOPIC SYLLABLE VU
-126A ; [.1E8A.0020.0002] # ETHIOPIC SYLLABLE VI
-126B ; [.1E8B.0020.0002] # ETHIOPIC SYLLABLE VAA
-126C ; [.1E8C.0020.0002] # ETHIOPIC SYLLABLE VEE
-126D ; [.1E8D.0020.0002] # ETHIOPIC SYLLABLE VE
-126E ; [.1E8E.0020.0002] # ETHIOPIC SYLLABLE VO
-126F ; [.1E8F.0020.0002] # ETHIOPIC SYLLABLE VWA
-1270 ; [.1E90.0020.0002] # ETHIOPIC SYLLABLE TA
-1271 ; [.1E91.0020.0002] # ETHIOPIC SYLLABLE TU
-1272 ; [.1E92.0020.0002] # ETHIOPIC SYLLABLE TI
-1273 ; [.1E93.0020.0002] # ETHIOPIC SYLLABLE TAA
-1274 ; [.1E94.0020.0002] # ETHIOPIC SYLLABLE TEE
-1275 ; [.1E95.0020.0002] # ETHIOPIC SYLLABLE TE
-1276 ; [.1E96.0020.0002] # ETHIOPIC SYLLABLE TO
-1277 ; [.1E97.0020.0002] # ETHIOPIC SYLLABLE TWA
-2D86 ; [.1E98.0020.0002] # ETHIOPIC SYLLABLE TOA
-1278 ; [.1E99.0020.0002] # ETHIOPIC SYLLABLE CA
-1279 ; [.1E9A.0020.0002] # ETHIOPIC SYLLABLE CU
-127A ; [.1E9B.0020.0002] # ETHIOPIC SYLLABLE CI
-127B ; [.1E9C.0020.0002] # ETHIOPIC SYLLABLE CAA
-127C ; [.1E9D.0020.0002] # ETHIOPIC SYLLABLE CEE
-127D ; [.1E9E.0020.0002] # ETHIOPIC SYLLABLE CE
-127E ; [.1E9F.0020.0002] # ETHIOPIC SYLLABLE CO
-127F ; [.1EA0.0020.0002] # ETHIOPIC SYLLABLE CWA
-2D87 ; [.1EA1.0020.0002] # ETHIOPIC SYLLABLE COA
-1280 ; [.1EA2.0020.0002] # ETHIOPIC SYLLABLE XA
-1281 ; [.1EA3.0020.0002] # ETHIOPIC SYLLABLE XU
-1282 ; [.1EA4.0020.0002] # ETHIOPIC SYLLABLE XI
-1283 ; [.1EA5.0020.0002] # ETHIOPIC SYLLABLE XAA
-1284 ; [.1EA6.0020.0002] # ETHIOPIC SYLLABLE XEE
-1285 ; [.1EA7.0020.0002] # ETHIOPIC SYLLABLE XE
-1286 ; [.1EA8.0020.0002] # ETHIOPIC SYLLABLE XO
-1287 ; [.1EA9.0020.0002] # ETHIOPIC SYLLABLE XOA
-1288 ; [.1EAA.0020.0002] # ETHIOPIC SYLLABLE XWA
-128A ; [.1EAB.0020.0002] # ETHIOPIC SYLLABLE XWI
-128B ; [.1EAC.0020.0002] # ETHIOPIC SYLLABLE XWAA
-128C ; [.1EAD.0020.0002] # ETHIOPIC SYLLABLE XWEE
-128D ; [.1EAE.0020.0002] # ETHIOPIC SYLLABLE XWE
-1290 ; [.1EAF.0020.0002] # ETHIOPIC SYLLABLE NA
-1291 ; [.1EB0.0020.0002] # ETHIOPIC SYLLABLE NU
-1292 ; [.1EB1.0020.0002] # ETHIOPIC SYLLABLE NI
-1293 ; [.1EB2.0020.0002] # ETHIOPIC SYLLABLE NAA
-1294 ; [.1EB3.0020.0002] # ETHIOPIC SYLLABLE NEE
-1295 ; [.1EB4.0020.0002] # ETHIOPIC SYLLABLE NE
-1296 ; [.1EB5.0020.0002] # ETHIOPIC SYLLABLE NO
-1297 ; [.1EB6.0020.0002] # ETHIOPIC SYLLABLE NWA
-2D88 ; [.1EB7.0020.0002] # ETHIOPIC SYLLABLE NOA
-1298 ; [.1EB8.0020.0002] # ETHIOPIC SYLLABLE NYA
-1299 ; [.1EB9.0020.0002] # ETHIOPIC SYLLABLE NYU
-129A ; [.1EBA.0020.0002] # ETHIOPIC SYLLABLE NYI
-129B ; [.1EBB.0020.0002] # ETHIOPIC SYLLABLE NYAA
-129C ; [.1EBC.0020.0002] # ETHIOPIC SYLLABLE NYEE
-129D ; [.1EBD.0020.0002] # ETHIOPIC SYLLABLE NYE
-129E ; [.1EBE.0020.0002] # ETHIOPIC SYLLABLE NYO
-129F ; [.1EBF.0020.0002] # ETHIOPIC SYLLABLE NYWA
-2D89 ; [.1EC0.0020.0002] # ETHIOPIC SYLLABLE NYOA
-12A0 ; [.1EC1.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL A
-12A1 ; [.1EC2.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL U
-12A2 ; [.1EC3.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL I
-12A3 ; [.1EC4.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL AA
-12A4 ; [.1EC5.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL EE
-12A5 ; [.1EC6.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL E
-12A6 ; [.1EC7.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL O
-12A7 ; [.1EC8.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL WA
-2D8A ; [.1EC9.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL OA
-12A8 ; [.1ECA.0020.0002] # ETHIOPIC SYLLABLE KA
-12A9 ; [.1ECB.0020.0002] # ETHIOPIC SYLLABLE KU
-12AA ; [.1ECC.0020.0002] # ETHIOPIC SYLLABLE KI
-12AB ; [.1ECD.0020.0002] # ETHIOPIC SYLLABLE KAA
-12AC ; [.1ECE.0020.0002] # ETHIOPIC SYLLABLE KEE
-12AD ; [.1ECF.0020.0002] # ETHIOPIC SYLLABLE KE
-12AE ; [.1ED0.0020.0002] # ETHIOPIC SYLLABLE KO
-12AF ; [.1ED1.0020.0002] # ETHIOPIC SYLLABLE KOA
-12B0 ; [.1ED2.0020.0002] # ETHIOPIC SYLLABLE KWA
-12B2 ; [.1ED3.0020.0002] # ETHIOPIC SYLLABLE KWI
-12B3 ; [.1ED4.0020.0002] # ETHIOPIC SYLLABLE KWAA
-12B4 ; [.1ED5.0020.0002] # ETHIOPIC SYLLABLE KWEE
-12B5 ; [.1ED6.0020.0002] # ETHIOPIC SYLLABLE KWE
-12B8 ; [.1ED7.0020.0002] # ETHIOPIC SYLLABLE KXA
-12B9 ; [.1ED8.0020.0002] # ETHIOPIC SYLLABLE KXU
-12BA ; [.1ED9.0020.0002] # ETHIOPIC SYLLABLE KXI
-12BB ; [.1EDA.0020.0002] # ETHIOPIC SYLLABLE KXAA
-12BC ; [.1EDB.0020.0002] # ETHIOPIC SYLLABLE KXEE
-12BD ; [.1EDC.0020.0002] # ETHIOPIC SYLLABLE KXE
-12BE ; [.1EDD.0020.0002] # ETHIOPIC SYLLABLE KXO
-12C0 ; [.1EDE.0020.0002] # ETHIOPIC SYLLABLE KXWA
-12C2 ; [.1EDF.0020.0002] # ETHIOPIC SYLLABLE KXWI
-12C3 ; [.1EE0.0020.0002] # ETHIOPIC SYLLABLE KXWAA
-12C4 ; [.1EE1.0020.0002] # ETHIOPIC SYLLABLE KXWEE
-12C5 ; [.1EE2.0020.0002] # ETHIOPIC SYLLABLE KXWE
-12C8 ; [.1EE3.0020.0002] # ETHIOPIC SYLLABLE WA
-12C9 ; [.1EE4.0020.0002] # ETHIOPIC SYLLABLE WU
-12CA ; [.1EE5.0020.0002] # ETHIOPIC SYLLABLE WI
-12CB ; [.1EE6.0020.0002] # ETHIOPIC SYLLABLE WAA
-12CC ; [.1EE7.0020.0002] # ETHIOPIC SYLLABLE WEE
-12CD ; [.1EE8.0020.0002] # ETHIOPIC SYLLABLE WE
-12CE ; [.1EE9.0020.0002] # ETHIOPIC SYLLABLE WO
-12CF ; [.1EEA.0020.0002] # ETHIOPIC SYLLABLE WOA
-12D0 ; [.1EEB.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL A
-12D1 ; [.1EEC.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL U
-12D2 ; [.1EED.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL I
-12D3 ; [.1EEE.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL AA
-12D4 ; [.1EEF.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL EE
-12D5 ; [.1EF0.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL E
-12D6 ; [.1EF1.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL O
-12D8 ; [.1EF2.0020.0002] # ETHIOPIC SYLLABLE ZA
-12D9 ; [.1EF3.0020.0002] # ETHIOPIC SYLLABLE ZU
-12DA ; [.1EF4.0020.0002] # ETHIOPIC SYLLABLE ZI
-12DB ; [.1EF5.0020.0002] # ETHIOPIC SYLLABLE ZAA
-12DC ; [.1EF6.0020.0002] # ETHIOPIC SYLLABLE ZEE
-12DD ; [.1EF7.0020.0002] # ETHIOPIC SYLLABLE ZE
-12DE ; [.1EF8.0020.0002] # ETHIOPIC SYLLABLE ZO
-12DF ; [.1EF9.0020.0002] # ETHIOPIC SYLLABLE ZWA
-2D8B ; [.1EFA.0020.0002] # ETHIOPIC SYLLABLE ZOA
-AB11 ; [.1EFB.0020.0002] # ETHIOPIC SYLLABLE DZU
-AB12 ; [.1EFC.0020.0002] # ETHIOPIC SYLLABLE DZI
-AB13 ; [.1EFD.0020.0002] # ETHIOPIC SYLLABLE DZAA
-AB14 ; [.1EFE.0020.0002] # ETHIOPIC SYLLABLE DZEE
-AB15 ; [.1EFF.0020.0002] # ETHIOPIC SYLLABLE DZE
-AB16 ; [.1F00.0020.0002] # ETHIOPIC SYLLABLE DZO
-12E0 ; [.1F01.0020.0002] # ETHIOPIC SYLLABLE ZHA
-12E1 ; [.1F02.0020.0002] # ETHIOPIC SYLLABLE ZHU
-12E2 ; [.1F03.0020.0002] # ETHIOPIC SYLLABLE ZHI
-12E3 ; [.1F04.0020.0002] # ETHIOPIC SYLLABLE ZHAA
-12E4 ; [.1F05.0020.0002] # ETHIOPIC SYLLABLE ZHEE
-12E5 ; [.1F06.0020.0002] # ETHIOPIC SYLLABLE ZHE
-12E6 ; [.1F07.0020.0002] # ETHIOPIC SYLLABLE ZHO
-12E7 ; [.1F08.0020.0002] # ETHIOPIC SYLLABLE ZHWA
-12E8 ; [.1F09.0020.0002] # ETHIOPIC SYLLABLE YA
-12E9 ; [.1F0A.0020.0002] # ETHIOPIC SYLLABLE YU
-12EA ; [.1F0B.0020.0002] # ETHIOPIC SYLLABLE YI
-12EB ; [.1F0C.0020.0002] # ETHIOPIC SYLLABLE YAA
-12EC ; [.1F0D.0020.0002] # ETHIOPIC SYLLABLE YEE
-12ED ; [.1F0E.0020.0002] # ETHIOPIC SYLLABLE YE
-12EE ; [.1F0F.0020.0002] # ETHIOPIC SYLLABLE YO
-12EF ; [.1F10.0020.0002] # ETHIOPIC SYLLABLE YOA
-12F0 ; [.1F11.0020.0002] # ETHIOPIC SYLLABLE DA
-12F1 ; [.1F12.0020.0002] # ETHIOPIC SYLLABLE DU
-12F2 ; [.1F13.0020.0002] # ETHIOPIC SYLLABLE DI
-12F3 ; [.1F14.0020.0002] # ETHIOPIC SYLLABLE DAA
-12F4 ; [.1F15.0020.0002] # ETHIOPIC SYLLABLE DEE
-12F5 ; [.1F16.0020.0002] # ETHIOPIC SYLLABLE DE
-12F6 ; [.1F17.0020.0002] # ETHIOPIC SYLLABLE DO
-12F7 ; [.1F18.0020.0002] # ETHIOPIC SYLLABLE DWA
-2D8C ; [.1F19.0020.0002] # ETHIOPIC SYLLABLE DOA
-AB09 ; [.1F1A.0020.0002] # ETHIOPIC SYLLABLE DDHU
-AB0A ; [.1F1B.0020.0002] # ETHIOPIC SYLLABLE DDHI
-AB0B ; [.1F1C.0020.0002] # ETHIOPIC SYLLABLE DDHAA
-AB0C ; [.1F1D.0020.0002] # ETHIOPIC SYLLABLE DDHEE
-AB0D ; [.1F1E.0020.0002] # ETHIOPIC SYLLABLE DDHE
-AB0E ; [.1F1F.0020.0002] # ETHIOPIC SYLLABLE DDHO
-12F8 ; [.1F20.0020.0002] # ETHIOPIC SYLLABLE DDA
-12F9 ; [.1F21.0020.0002] # ETHIOPIC SYLLABLE DDU
-12FA ; [.1F22.0020.0002] # ETHIOPIC SYLLABLE DDI
-12FB ; [.1F23.0020.0002] # ETHIOPIC SYLLABLE DDAA
-12FC ; [.1F24.0020.0002] # ETHIOPIC SYLLABLE DDEE
-12FD ; [.1F25.0020.0002] # ETHIOPIC SYLLABLE DDE
-12FE ; [.1F26.0020.0002] # ETHIOPIC SYLLABLE DDO
-12FF ; [.1F27.0020.0002] # ETHIOPIC SYLLABLE DDWA
-2D8D ; [.1F28.0020.0002] # ETHIOPIC SYLLABLE DDOA
-1300 ; [.1F29.0020.0002] # ETHIOPIC SYLLABLE JA
-1301 ; [.1F2A.0020.0002] # ETHIOPIC SYLLABLE JU
-1302 ; [.1F2B.0020.0002] # ETHIOPIC SYLLABLE JI
-1303 ; [.1F2C.0020.0002] # ETHIOPIC SYLLABLE JAA
-1304 ; [.1F2D.0020.0002] # ETHIOPIC SYLLABLE JEE
-1305 ; [.1F2E.0020.0002] # ETHIOPIC SYLLABLE JE
-1306 ; [.1F2F.0020.0002] # ETHIOPIC SYLLABLE JO
-1307 ; [.1F30.0020.0002] # ETHIOPIC SYLLABLE JWA
-2D8E ; [.1F31.0020.0002] # ETHIOPIC SYLLABLE JOA
-1308 ; [.1F32.0020.0002] # ETHIOPIC SYLLABLE GA
-1309 ; [.1F33.0020.0002] # ETHIOPIC SYLLABLE GU
-130A ; [.1F34.0020.0002] # ETHIOPIC SYLLABLE GI
-130B ; [.1F35.0020.0002] # ETHIOPIC SYLLABLE GAA
-130C ; [.1F36.0020.0002] # ETHIOPIC SYLLABLE GEE
-130D ; [.1F37.0020.0002] # ETHIOPIC SYLLABLE GE
-130E ; [.1F38.0020.0002] # ETHIOPIC SYLLABLE GO
-130F ; [.1F39.0020.0002] # ETHIOPIC SYLLABLE GOA
-1310 ; [.1F3A.0020.0002] # ETHIOPIC SYLLABLE GWA
-1312 ; [.1F3B.0020.0002] # ETHIOPIC SYLLABLE GWI
-1313 ; [.1F3C.0020.0002] # ETHIOPIC SYLLABLE GWAA
-1314 ; [.1F3D.0020.0002] # ETHIOPIC SYLLABLE GWEE
-1315 ; [.1F3E.0020.0002] # ETHIOPIC SYLLABLE GWE
-1318 ; [.1F3F.0020.0002] # ETHIOPIC SYLLABLE GGA
-1319 ; [.1F40.0020.0002] # ETHIOPIC SYLLABLE GGU
-131A ; [.1F41.0020.0002] # ETHIOPIC SYLLABLE GGI
-131B ; [.1F42.0020.0002] # ETHIOPIC SYLLABLE GGAA
-131C ; [.1F43.0020.0002] # ETHIOPIC SYLLABLE GGEE
-131D ; [.1F44.0020.0002] # ETHIOPIC SYLLABLE GGE
-131E ; [.1F45.0020.0002] # ETHIOPIC SYLLABLE GGO
-131F ; [.1F46.0020.0002] # ETHIOPIC SYLLABLE GGWAA
-2D93 ; [.1F47.0020.0002] # ETHIOPIC SYLLABLE GGWA
-2D94 ; [.1F48.0020.0002] # ETHIOPIC SYLLABLE GGWI
-2D95 ; [.1F49.0020.0002] # ETHIOPIC SYLLABLE GGWEE
-2D96 ; [.1F4A.0020.0002] # ETHIOPIC SYLLABLE GGWE
-1320 ; [.1F4B.0020.0002] # ETHIOPIC SYLLABLE THA
-1321 ; [.1F4C.0020.0002] # ETHIOPIC SYLLABLE THU
-1322 ; [.1F4D.0020.0002] # ETHIOPIC SYLLABLE THI
-1323 ; [.1F4E.0020.0002] # ETHIOPIC SYLLABLE THAA
-1324 ; [.1F4F.0020.0002] # ETHIOPIC SYLLABLE THEE
-1325 ; [.1F50.0020.0002] # ETHIOPIC SYLLABLE THE
-1326 ; [.1F51.0020.0002] # ETHIOPIC SYLLABLE THO
-1327 ; [.1F52.0020.0002] # ETHIOPIC SYLLABLE THWA
-2D8F ; [.1F53.0020.0002] # ETHIOPIC SYLLABLE THOA
-1328 ; [.1F54.0020.0002] # ETHIOPIC SYLLABLE CHA
-1329 ; [.1F55.0020.0002] # ETHIOPIC SYLLABLE CHU
-132A ; [.1F56.0020.0002] # ETHIOPIC SYLLABLE CHI
-132B ; [.1F57.0020.0002] # ETHIOPIC SYLLABLE CHAA
-132C ; [.1F58.0020.0002] # ETHIOPIC SYLLABLE CHEE
-132D ; [.1F59.0020.0002] # ETHIOPIC SYLLABLE CHE
-132E ; [.1F5A.0020.0002] # ETHIOPIC SYLLABLE CHO
-132F ; [.1F5B.0020.0002] # ETHIOPIC SYLLABLE CHWA
-2D90 ; [.1F5C.0020.0002] # ETHIOPIC SYLLABLE CHOA
-AB20 ; [.1F5D.0020.0002] # ETHIOPIC SYLLABLE CCHHA
-AB21 ; [.1F5E.0020.0002] # ETHIOPIC SYLLABLE CCHHU
-AB22 ; [.1F5F.0020.0002] # ETHIOPIC SYLLABLE CCHHI
-AB23 ; [.1F60.0020.0002] # ETHIOPIC SYLLABLE CCHHAA
-AB24 ; [.1F61.0020.0002] # ETHIOPIC SYLLABLE CCHHEE
-AB25 ; [.1F62.0020.0002] # ETHIOPIC SYLLABLE CCHHE
-AB26 ; [.1F63.0020.0002] # ETHIOPIC SYLLABLE CCHHO
-1330 ; [.1F64.0020.0002] # ETHIOPIC SYLLABLE PHA
-1331 ; [.1F65.0020.0002] # ETHIOPIC SYLLABLE PHU
-1332 ; [.1F66.0020.0002] # ETHIOPIC SYLLABLE PHI
-1333 ; [.1F67.0020.0002] # ETHIOPIC SYLLABLE PHAA
-1334 ; [.1F68.0020.0002] # ETHIOPIC SYLLABLE PHEE
-1335 ; [.1F69.0020.0002] # ETHIOPIC SYLLABLE PHE
-1336 ; [.1F6A.0020.0002] # ETHIOPIC SYLLABLE PHO
-1337 ; [.1F6B.0020.0002] # ETHIOPIC SYLLABLE PHWA
-2D91 ; [.1F6C.0020.0002] # ETHIOPIC SYLLABLE PHOA
-1338 ; [.1F6D.0020.0002] # ETHIOPIC SYLLABLE TSA
-1339 ; [.1F6E.0020.0002] # ETHIOPIC SYLLABLE TSU
-133A ; [.1F6F.0020.0002] # ETHIOPIC SYLLABLE TSI
-133B ; [.1F70.0020.0002] # ETHIOPIC SYLLABLE TSAA
-133C ; [.1F71.0020.0002] # ETHIOPIC SYLLABLE TSEE
-133D ; [.1F72.0020.0002] # ETHIOPIC SYLLABLE TSE
-133E ; [.1F73.0020.0002] # ETHIOPIC SYLLABLE TSO
-133F ; [.1F74.0020.0002] # ETHIOPIC SYLLABLE TSWA
-AB28 ; [.1F75.0020.0002] # ETHIOPIC SYLLABLE BBA
-AB29 ; [.1F76.0020.0002] # ETHIOPIC SYLLABLE BBU
-AB2A ; [.1F77.0020.0002] # ETHIOPIC SYLLABLE BBI
-AB2B ; [.1F78.0020.0002] # ETHIOPIC SYLLABLE BBAA
-AB2C ; [.1F79.0020.0002] # ETHIOPIC SYLLABLE BBEE
-AB2D ; [.1F7A.0020.0002] # ETHIOPIC SYLLABLE BBE
-AB2E ; [.1F7B.0020.0002] # ETHIOPIC SYLLABLE BBO
-1340 ; [.1F7C.0020.0002] # ETHIOPIC SYLLABLE TZA
-1341 ; [.1F7D.0020.0002] # ETHIOPIC SYLLABLE TZU
-1342 ; [.1F7E.0020.0002] # ETHIOPIC SYLLABLE TZI
-1343 ; [.1F7F.0020.0002] # ETHIOPIC SYLLABLE TZAA
-1344 ; [.1F80.0020.0002] # ETHIOPIC SYLLABLE TZEE
-1345 ; [.1F81.0020.0002] # ETHIOPIC SYLLABLE TZE
-1346 ; [.1F82.0020.0002] # ETHIOPIC SYLLABLE TZO
-1347 ; [.1F83.0020.0002] # ETHIOPIC SYLLABLE TZOA
-1348 ; [.1F84.0020.0002] # ETHIOPIC SYLLABLE FA
-1349 ; [.1F85.0020.0002] # ETHIOPIC SYLLABLE FU
-134A ; [.1F86.0020.0002] # ETHIOPIC SYLLABLE FI
-134B ; [.1F87.0020.0002] # ETHIOPIC SYLLABLE FAA
-134C ; [.1F88.0020.0002] # ETHIOPIC SYLLABLE FEE
-134D ; [.1F89.0020.0002] # ETHIOPIC SYLLABLE FE
-134E ; [.1F8A.0020.0002] # ETHIOPIC SYLLABLE FO
-134F ; [.1F8B.0020.0002] # ETHIOPIC SYLLABLE FWA
-1388 ; [.1F8C.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT FWA
-1389 ; [.1F8D.0020.0002] # ETHIOPIC SYLLABLE FWI
-138A ; [.1F8E.0020.0002] # ETHIOPIC SYLLABLE FWEE
-138B ; [.1F8F.0020.0002] # ETHIOPIC SYLLABLE FWE
-1350 ; [.1F90.0020.0002] # ETHIOPIC SYLLABLE PA
-1351 ; [.1F91.0020.0002] # ETHIOPIC SYLLABLE PU
-1352 ; [.1F92.0020.0002] # ETHIOPIC SYLLABLE PI
-1353 ; [.1F93.0020.0002] # ETHIOPIC SYLLABLE PAA
-1354 ; [.1F94.0020.0002] # ETHIOPIC SYLLABLE PEE
-1355 ; [.1F95.0020.0002] # ETHIOPIC SYLLABLE PE
-1356 ; [.1F96.0020.0002] # ETHIOPIC SYLLABLE PO
-1357 ; [.1F97.0020.0002] # ETHIOPIC SYLLABLE PWA
-138C ; [.1F98.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT PWA
-138D ; [.1F99.0020.0002] # ETHIOPIC SYLLABLE PWI
-138E ; [.1F9A.0020.0002] # ETHIOPIC SYLLABLE PWEE
-138F ; [.1F9B.0020.0002] # ETHIOPIC SYLLABLE PWE
-2D92 ; [.1F9C.0020.0002] # ETHIOPIC SYLLABLE POA
-1358 ; [.1F9D.0020.0002] # ETHIOPIC SYLLABLE RYA
-1359 ; [.1F9E.0020.0002] # ETHIOPIC SYLLABLE MYA
-135A ; [.1F9F.0020.0002] # ETHIOPIC SYLLABLE FYA
-2DA0 ; [.1FA0.0020.0002] # ETHIOPIC SYLLABLE SSA
-2DA1 ; [.1FA1.0020.0002] # ETHIOPIC SYLLABLE SSU
-2DA2 ; [.1FA2.0020.0002] # ETHIOPIC SYLLABLE SSI
-2DA3 ; [.1FA3.0020.0002] # ETHIOPIC SYLLABLE SSAA
-2DA4 ; [.1FA4.0020.0002] # ETHIOPIC SYLLABLE SSEE
-2DA5 ; [.1FA5.0020.0002] # ETHIOPIC SYLLABLE SSE
-2DA6 ; [.1FA6.0020.0002] # ETHIOPIC SYLLABLE SSO
-2DA8 ; [.1FA7.0020.0002] # ETHIOPIC SYLLABLE CCA
-2DA9 ; [.1FA8.0020.0002] # ETHIOPIC SYLLABLE CCU
-2DAA ; [.1FA9.0020.0002] # ETHIOPIC SYLLABLE CCI
-2DAB ; [.1FAA.0020.0002] # ETHIOPIC SYLLABLE CCAA
-2DAC ; [.1FAB.0020.0002] # ETHIOPIC SYLLABLE CCEE
-2DAD ; [.1FAC.0020.0002] # ETHIOPIC SYLLABLE CCE
-2DAE ; [.1FAD.0020.0002] # ETHIOPIC SYLLABLE CCO
-2DB0 ; [.1FAE.0020.0002] # ETHIOPIC SYLLABLE ZZA
-2DB1 ; [.1FAF.0020.0002] # ETHIOPIC SYLLABLE ZZU
-2DB2 ; [.1FB0.0020.0002] # ETHIOPIC SYLLABLE ZZI
-2DB3 ; [.1FB1.0020.0002] # ETHIOPIC SYLLABLE ZZAA
-2DB4 ; [.1FB2.0020.0002] # ETHIOPIC SYLLABLE ZZEE
-2DB5 ; [.1FB3.0020.0002] # ETHIOPIC SYLLABLE ZZE
-2DB6 ; [.1FB4.0020.0002] # ETHIOPIC SYLLABLE ZZO
-2DB8 ; [.1FB5.0020.0002] # ETHIOPIC SYLLABLE CCHA
-2DB9 ; [.1FB6.0020.0002] # ETHIOPIC SYLLABLE CCHU
-2DBA ; [.1FB7.0020.0002] # ETHIOPIC SYLLABLE CCHI
-2DBB ; [.1FB8.0020.0002] # ETHIOPIC SYLLABLE CCHAA
-2DBC ; [.1FB9.0020.0002] # ETHIOPIC SYLLABLE CCHEE
-2DBD ; [.1FBA.0020.0002] # ETHIOPIC SYLLABLE CCHE
-2DBE ; [.1FBB.0020.0002] # ETHIOPIC SYLLABLE CCHO
-2DC0 ; [.1FBC.0020.0002] # ETHIOPIC SYLLABLE QYA
-2DC1 ; [.1FBD.0020.0002] # ETHIOPIC SYLLABLE QYU
-2DC2 ; [.1FBE.0020.0002] # ETHIOPIC SYLLABLE QYI
-2DC3 ; [.1FBF.0020.0002] # ETHIOPIC SYLLABLE QYAA
-2DC4 ; [.1FC0.0020.0002] # ETHIOPIC SYLLABLE QYEE
-2DC5 ; [.1FC1.0020.0002] # ETHIOPIC SYLLABLE QYE
-2DC6 ; [.1FC2.0020.0002] # ETHIOPIC SYLLABLE QYO
-2DC8 ; [.1FC3.0020.0002] # ETHIOPIC SYLLABLE KYA
-2DC9 ; [.1FC4.0020.0002] # ETHIOPIC SYLLABLE KYU
-2DCA ; [.1FC5.0020.0002] # ETHIOPIC SYLLABLE KYI
-2DCB ; [.1FC6.0020.0002] # ETHIOPIC SYLLABLE KYAA
-2DCC ; [.1FC7.0020.0002] # ETHIOPIC SYLLABLE KYEE
-2DCD ; [.1FC8.0020.0002] # ETHIOPIC SYLLABLE KYE
-2DCE ; [.1FC9.0020.0002] # ETHIOPIC SYLLABLE KYO
-2DD0 ; [.1FCA.0020.0002] # ETHIOPIC SYLLABLE XYA
-2DD1 ; [.1FCB.0020.0002] # ETHIOPIC SYLLABLE XYU
-2DD2 ; [.1FCC.0020.0002] # ETHIOPIC SYLLABLE XYI
-2DD3 ; [.1FCD.0020.0002] # ETHIOPIC SYLLABLE XYAA
-2DD4 ; [.1FCE.0020.0002] # ETHIOPIC SYLLABLE XYEE
-2DD5 ; [.1FCF.0020.0002] # ETHIOPIC SYLLABLE XYE
-2DD6 ; [.1FD0.0020.0002] # ETHIOPIC SYLLABLE XYO
-2DD8 ; [.1FD1.0020.0002] # ETHIOPIC SYLLABLE GYA
-2DD9 ; [.1FD2.0020.0002] # ETHIOPIC SYLLABLE GYU
-2DDA ; [.1FD3.0020.0002] # ETHIOPIC SYLLABLE GYI
-2DDB ; [.1FD4.0020.0002] # ETHIOPIC SYLLABLE GYAA
-2DDC ; [.1FD5.0020.0002] # ETHIOPIC SYLLABLE GYEE
-2DDD ; [.1FD6.0020.0002] # ETHIOPIC SYLLABLE GYE
-2DDE ; [.1FD7.0020.0002] # ETHIOPIC SYLLABLE GYO
-0950 ; [.1FD8.0020.0002] # DEVANAGARI OM
-0972 ; [.1FD9.0020.0002] # DEVANAGARI LETTER CANDRA A
-0904 ; [.1FDA.0020.0002] # DEVANAGARI LETTER SHORT A
-0905 ; [.1FDB.0020.0002] # DEVANAGARI LETTER A
-0906 ; [.1FDC.0020.0002] # DEVANAGARI LETTER AA
-0973 ; [.1FDD.0020.0002] # DEVANAGARI LETTER OE
-0974 ; [.1FDE.0020.0002] # DEVANAGARI LETTER OOE
-0975 ; [.1FDF.0020.0002] # DEVANAGARI LETTER AW
-0976 ; [.1FE0.0020.0002] # DEVANAGARI LETTER UE
-0977 ; [.1FE1.0020.0002] # DEVANAGARI LETTER UUE
-0907 ; [.1FE2.0020.0002] # DEVANAGARI LETTER I
-0908 ; [.1FE3.0020.0002] # DEVANAGARI LETTER II
-0909 ; [.1FE4.0020.0002] # DEVANAGARI LETTER U
-090A ; [.1FE5.0020.0002] # DEVANAGARI LETTER UU
-090B ; [.1FE6.0020.0002] # DEVANAGARI LETTER VOCALIC R
-0960 ; [.1FE7.0020.0002] # DEVANAGARI LETTER VOCALIC RR
-090C ; [.1FE8.0020.0002] # DEVANAGARI LETTER VOCALIC L
-0961 ; [.1FE9.0020.0002] # DEVANAGARI LETTER VOCALIC LL
-090D ; [.1FEA.0020.0002] # DEVANAGARI LETTER CANDRA E
-090E ; [.1FEB.0020.0002] # DEVANAGARI LETTER SHORT E
-090F ; [.1FEC.0020.0002] # DEVANAGARI LETTER E
-0910 ; [.1FED.0020.0002] # DEVANAGARI LETTER AI
-0911 ; [.1FEE.0020.0002] # DEVANAGARI LETTER CANDRA O
-0912 ; [.1FEF.0020.0002] # DEVANAGARI LETTER SHORT O
-0913 ; [.1FF0.0020.0002] # DEVANAGARI LETTER O
-0914 ; [.1FF1.0020.0002] # DEVANAGARI LETTER AU
-0915 ; [.1FF2.0020.0002] # DEVANAGARI LETTER KA
-0958 ; [.1FF2.0020.0002][.0000.00B6.0002] # DEVANAGARI LETTER QA
-0916 ; [.1FF3.0020.0002] # DEVANAGARI LETTER KHA
-0959 ; [.1FF3.0020.0002][.0000.00B6.0002] # DEVANAGARI LETTER KHHA
-0917 ; [.1FF4.0020.0002] # DEVANAGARI LETTER GA
-095A ; [.1FF4.0020.0002][.0000.00B6.0002] # DEVANAGARI LETTER GHHA
-097B ; [.1FF5.0020.0002] # DEVANAGARI LETTER GGA
-0918 ; [.1FF6.0020.0002] # DEVANAGARI LETTER GHA
-0919 ; [.1FF7.0020.0002] # DEVANAGARI LETTER NGA
-091A ; [.1FF8.0020.0002] # DEVANAGARI LETTER CA
-091B ; [.1FF9.0020.0002] # DEVANAGARI LETTER CHA
-091C ; [.1FFA.0020.0002] # DEVANAGARI LETTER JA
-095B ; [.1FFA.0020.0002][.0000.00B6.0002] # DEVANAGARI LETTER ZA
-0979 ; [.1FFB.0020.0002] # DEVANAGARI LETTER ZHA
-097C ; [.1FFC.0020.0002] # DEVANAGARI LETTER JJA
-091D ; [.1FFD.0020.0002] # DEVANAGARI LETTER JHA
-091E ; [.1FFE.0020.0002] # DEVANAGARI LETTER NYA
-091F ; [.1FFF.0020.0002] # DEVANAGARI LETTER TTA
-0920 ; [.2000.0020.0002] # DEVANAGARI LETTER TTHA
-0921 ; [.2001.0020.0002] # DEVANAGARI LETTER DDA
-095C ; [.2001.0020.0002][.0000.00B6.0002] # DEVANAGARI LETTER DDDHA
-097E ; [.2002.0020.0002] # DEVANAGARI LETTER DDDA
-0922 ; [.2003.0020.0002] # DEVANAGARI LETTER DDHA
-095D ; [.2003.0020.0002][.0000.00B6.0002] # DEVANAGARI LETTER RHA
-0923 ; [.2004.0020.0002] # DEVANAGARI LETTER NNA
-0924 ; [.2005.0020.0002] # DEVANAGARI LETTER TA
-0925 ; [.2006.0020.0002] # DEVANAGARI LETTER THA
-0926 ; [.2007.0020.0002] # DEVANAGARI LETTER DA
-0927 ; [.2008.0020.0002] # DEVANAGARI LETTER DHA
-0928 ; [.2009.0020.0002] # DEVANAGARI LETTER NA
-0929 ; [.2009.0020.0002][.0000.00B6.0002] # DEVANAGARI LETTER NNNA
-092A ; [.200A.0020.0002] # DEVANAGARI LETTER PA
-092B ; [.200B.0020.0002] # DEVANAGARI LETTER PHA
-095E ; [.200B.0020.0002][.0000.00B6.0002] # DEVANAGARI LETTER FA
-092C ; [.200C.0020.0002] # DEVANAGARI LETTER BA
-097F ; [.200D.0020.0002] # DEVANAGARI LETTER BBA
-092D ; [.200E.0020.0002] # DEVANAGARI LETTER BHA
-092E ; [.200F.0020.0002] # DEVANAGARI LETTER MA
-092F ; [.2010.0020.0002] # DEVANAGARI LETTER YA
-095F ; [.2010.0020.0002][.0000.00B6.0002] # DEVANAGARI LETTER YYA
-097A ; [.2011.0020.0002] # DEVANAGARI LETTER HEAVY YA
-0930 ; [.2012.0020.0002] # DEVANAGARI LETTER RA
-0931 ; [.2012.0020.0002][.0000.00B6.0002] # DEVANAGARI LETTER RRA
-0932 ; [.2013.0020.0002] # DEVANAGARI LETTER LA
-0933 ; [.2014.0020.0002] # DEVANAGARI LETTER LLA
-0934 ; [.2014.0020.0002][.0000.00B6.0002] # DEVANAGARI LETTER LLLA
-0935 ; [.2015.0020.0002] # DEVANAGARI LETTER VA
-0936 ; [.2016.0020.0002] # DEVANAGARI LETTER SHA
-0937 ; [.2017.0020.0002] # DEVANAGARI LETTER SSA
-0938 ; [.2018.0020.0002] # DEVANAGARI LETTER SA
-0939 ; [.2019.0020.0002] # DEVANAGARI LETTER HA
-093D ; [.201A.0020.0002] # DEVANAGARI SIGN AVAGRAHA
-097D ; [.201B.0020.0002] # DEVANAGARI LETTER GLOTTAL STOP
-1CE9 ; [.201C.0020.0002] # VEDIC SIGN ANUSVARA ANTARGOMUKHA
-1CEA ; [.201C.0020.0004] # VEDIC SIGN ANUSVARA BAHIRGOMUKHA
-1CEB ; [.201C.0020.0004] # VEDIC SIGN ANUSVARA VAMAGOMUKHA
-1CEC ; [.201C.0020.0004] # VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
-1CEE ; [.201C.0020.0004] # VEDIC SIGN HEXIFORM LONG ANUSVARA
-1CEF ; [.201C.0020.0004] # VEDIC SIGN LONG ANUSVARA
-1CF0 ; [.201C.0020.0004] # VEDIC SIGN RTHANG LONG ANUSVARA
-1CF1 ; [.201C.0020.0004] # VEDIC SIGN ANUSVARA UBHAYATO MUKHA
-1CF5 ; [.201D.0020.0002] # VEDIC SIGN JIHVAMULIYA
-1CF6 ; [.201E.0020.0002] # VEDIC SIGN UPADHMANIYA
-A8F2 ; [.201F.0020.0002] # DEVANAGARI SIGN SPACING CANDRABINDU
-A8F3 ; [.201F.0020.0004] # DEVANAGARI SIGN CANDRABINDU VIRAMA
-A8F4 ; [.201F.0020.0004] # DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA
-A8F5 ; [.201F.0020.0004] # DEVANAGARI SIGN CANDRABINDU TWO
-A8F6 ; [.201F.0020.0004] # DEVANAGARI SIGN CANDRABINDU THREE
-A8F7 ; [.201F.0020.0004] # DEVANAGARI SIGN CANDRABINDU AVAGRAHA
-A8FB ; [.2020.0020.0002] # DEVANAGARI HEADSTROKE
-093E ; [.2021.0020.0002] # DEVANAGARI VOWEL SIGN AA
-093A ; [.2022.0020.0002] # DEVANAGARI VOWEL SIGN OE
-093B ; [.2023.0020.0002] # DEVANAGARI VOWEL SIGN OOE
-094F ; [.2024.0020.0002] # DEVANAGARI VOWEL SIGN AW
-0956 ; [.2025.0020.0002] # DEVANAGARI VOWEL SIGN UE
-0957 ; [.2026.0020.0002] # DEVANAGARI VOWEL SIGN UUE
-093F ; [.2027.0020.0002] # DEVANAGARI VOWEL SIGN I
-0940 ; [.2028.0020.0002] # DEVANAGARI VOWEL SIGN II
-0941 ; [.2029.0020.0002] # DEVANAGARI VOWEL SIGN U
-0942 ; [.202A.0020.0002] # DEVANAGARI VOWEL SIGN UU
-0943 ; [.202B.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC R
-0944 ; [.202C.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC RR
-0962 ; [.202D.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC L
-0963 ; [.202E.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC LL
-0945 ; [.202F.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA E
-0955 ; [.2030.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA LONG E
-0946 ; [.2031.0020.0002] # DEVANAGARI VOWEL SIGN SHORT E
-0947 ; [.2032.0020.0002] # DEVANAGARI VOWEL SIGN E
-094E ; [.2033.0020.0002] # DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
-0948 ; [.2034.0020.0002] # DEVANAGARI VOWEL SIGN AI
-0949 ; [.2035.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA O
-094A ; [.2036.0020.0002] # DEVANAGARI VOWEL SIGN SHORT O
-094B ; [.2037.0020.0002] # DEVANAGARI VOWEL SIGN O
-094C ; [.2038.0020.0002] # DEVANAGARI VOWEL SIGN AU
-094D ; [.2039.0020.0002] # DEVANAGARI SIGN VIRAMA
-0985 ; [.203A.0020.0002] # BENGALI LETTER A
-0986 ; [.203B.0020.0002] # BENGALI LETTER AA
-0987 ; [.203C.0020.0002] # BENGALI LETTER I
-0988 ; [.203D.0020.0002] # BENGALI LETTER II
-0989 ; [.203E.0020.0002] # BENGALI LETTER U
-098A ; [.203F.0020.0002] # BENGALI LETTER UU
-098B ; [.2040.0020.0002] # BENGALI LETTER VOCALIC R
-09E0 ; [.2041.0020.0002] # BENGALI LETTER VOCALIC RR
-098C ; [.2042.0020.0002] # BENGALI LETTER VOCALIC L
-09E1 ; [.2043.0020.0002] # BENGALI LETTER VOCALIC LL
-098F ; [.2044.0020.0002] # BENGALI LETTER E
-0990 ; [.2045.0020.0002] # BENGALI LETTER AI
-0993 ; [.2046.0020.0002] # BENGALI LETTER O
-0994 ; [.2047.0020.0002] # BENGALI LETTER AU
-0995 ; [.2048.0020.0002] # BENGALI LETTER KA
-0996 ; [.2049.0020.0002] # BENGALI LETTER KHA
-0997 ; [.204A.0020.0002] # BENGALI LETTER GA
-0998 ; [.204B.0020.0002] # BENGALI LETTER GHA
-0999 ; [.204C.0020.0002] # BENGALI LETTER NGA
-099A ; [.204D.0020.0002] # BENGALI LETTER CA
-099B ; [.204E.0020.0002] # BENGALI LETTER CHA
-099C ; [.204F.0020.0002] # BENGALI LETTER JA
-099D ; [.2050.0020.0002] # BENGALI LETTER JHA
-099E ; [.2051.0020.0002] # BENGALI LETTER NYA
-099F ; [.2052.0020.0002] # BENGALI LETTER TTA
-09A0 ; [.2053.0020.0002] # BENGALI LETTER TTHA
-09A1 ; [.2054.0020.0002] # BENGALI LETTER DDA
-09DC ; [.2054.0020.0002][.0000.00B6.0002] # BENGALI LETTER RRA
-09A2 ; [.2055.0020.0002] # BENGALI LETTER DDHA
-09DD ; [.2055.0020.0002][.0000.00B6.0002] # BENGALI LETTER RHA
-09A3 ; [.2056.0020.0002] # BENGALI LETTER NNA
-09A4 ; [.2057.0020.0002] # BENGALI LETTER TA
-09CE ; [.2057.0020.0004][.2078.0020.0004] # BENGALI LETTER KHANDA TA
-09A5 ; [.2058.0020.0002] # BENGALI LETTER THA
-09A6 ; [.2059.0020.0002] # BENGALI LETTER DA
-09A7 ; [.205A.0020.0002] # BENGALI LETTER DHA
-09A8 ; [.205B.0020.0002] # BENGALI LETTER NA
-09AA ; [.205C.0020.0002] # BENGALI LETTER PA
-09AB ; [.205D.0020.0002] # BENGALI LETTER PHA
-09AC ; [.205E.0020.0002] # BENGALI LETTER BA
-09AD ; [.205F.0020.0002] # BENGALI LETTER BHA
-09AE ; [.2060.0020.0002] # BENGALI LETTER MA
-09AF ; [.2061.0020.0002] # BENGALI LETTER YA
-09DF ; [.2061.0020.0002][.0000.00B6.0002] # BENGALI LETTER YYA
-09B0 ; [.2062.0020.0002] # BENGALI LETTER RA
-09F0 ; [.2063.0020.0002] # BENGALI LETTER RA WITH MIDDLE DIAGONAL
-09B2 ; [.2064.0020.0002] # BENGALI LETTER LA
-09F1 ; [.2065.0020.0002] # BENGALI LETTER RA WITH LOWER DIAGONAL
-09B6 ; [.2066.0020.0002] # BENGALI LETTER SHA
-09B7 ; [.2067.0020.0002] # BENGALI LETTER SSA
-09B8 ; [.2068.0020.0002] # BENGALI LETTER SA
-09B9 ; [.2069.0020.0002] # BENGALI LETTER HA
-09BD ; [.206A.0020.0002] # BENGALI SIGN AVAGRAHA
-09BE ; [.206B.0020.0002] # BENGALI VOWEL SIGN AA
-09BF ; [.206C.0020.0002] # BENGALI VOWEL SIGN I
-09C0 ; [.206D.0020.0002] # BENGALI VOWEL SIGN II
-09C1 ; [.206E.0020.0002] # BENGALI VOWEL SIGN U
-09C2 ; [.206F.0020.0002] # BENGALI VOWEL SIGN UU
-09C3 ; [.2070.0020.0002] # BENGALI VOWEL SIGN VOCALIC R
-09C4 ; [.2071.0020.0002] # BENGALI VOWEL SIGN VOCALIC RR
-09E2 ; [.2072.0020.0002] # BENGALI VOWEL SIGN VOCALIC L
-09E3 ; [.2073.0020.0002] # BENGALI VOWEL SIGN VOCALIC LL
-09C7 ; [.2074.0020.0002] # BENGALI VOWEL SIGN E
-09C8 ; [.2075.0020.0002] # BENGALI VOWEL SIGN AI
-09CB ; [.2076.0020.0002] # BENGALI VOWEL SIGN O
-09C7 09BE ; [.2076.0020.0002] # BENGALI VOWEL SIGN O
-09CC ; [.2077.0020.0002] # BENGALI VOWEL SIGN AU
-09C7 09D7 ; [.2077.0020.0002] # BENGALI VOWEL SIGN AU
-09CD ; [.2078.0020.0002] # BENGALI SIGN VIRAMA
-09D7 ; [.2079.0020.0002] # BENGALI AU LENGTH MARK
-0A74 ; [.207A.0020.0002] # GURMUKHI EK ONKAR
-0A73 ; [.207B.0020.0002] # GURMUKHI URA
-0A09 ; [.207C.0020.0002] # GURMUKHI LETTER U
-0A0A ; [.207D.0020.0002] # GURMUKHI LETTER UU
-0A13 ; [.207E.0020.0002] # GURMUKHI LETTER OO
-0A05 ; [.207F.0020.0002] # GURMUKHI LETTER A
-0A06 ; [.2080.0020.0002] # GURMUKHI LETTER AA
-0A10 ; [.2081.0020.0002] # GURMUKHI LETTER AI
-0A14 ; [.2082.0020.0002] # GURMUKHI LETTER AU
-0A72 ; [.2083.0020.0002] # GURMUKHI IRI
-0A07 ; [.2084.0020.0002] # GURMUKHI LETTER I
-0A08 ; [.2085.0020.0002] # GURMUKHI LETTER II
-0A0F ; [.2086.0020.0002] # GURMUKHI LETTER EE
-0A38 ; [.2087.0020.0002] # GURMUKHI LETTER SA
-0A36 ; [.2087.0020.0002][.0000.00B6.0002] # GURMUKHI LETTER SHA
-0A39 ; [.2088.0020.0002] # GURMUKHI LETTER HA
-0A51 ; [.2089.0020.0002] # GURMUKHI SIGN UDAAT
-0A15 ; [.208A.0020.0002] # GURMUKHI LETTER KA
-0A16 ; [.208B.0020.0002] # GURMUKHI LETTER KHA
-0A59 ; [.208B.0020.0002][.0000.00B6.0002] # GURMUKHI LETTER KHHA
-0A17 ; [.208C.0020.0002] # GURMUKHI LETTER GA
-0A5A ; [.208C.0020.0002][.0000.00B6.0002] # GURMUKHI LETTER GHHA
-0A18 ; [.208D.0020.0002] # GURMUKHI LETTER GHA
-0A19 ; [.208E.0020.0002] # GURMUKHI LETTER NGA
-0A1A ; [.208F.0020.0002] # GURMUKHI LETTER CA
-0A1B ; [.2090.0020.0002] # GURMUKHI LETTER CHA
-0A1C ; [.2091.0020.0002] # GURMUKHI LETTER JA
-0A5B ; [.2091.0020.0002][.0000.00B6.0002] # GURMUKHI LETTER ZA
-0A1D ; [.2092.0020.0002] # GURMUKHI LETTER JHA
-0A1E ; [.2093.0020.0002] # GURMUKHI LETTER NYA
-0A1F ; [.2094.0020.0002] # GURMUKHI LETTER TTA
-0A20 ; [.2095.0020.0002] # GURMUKHI LETTER TTHA
-0A21 ; [.2096.0020.0002] # GURMUKHI LETTER DDA
-0A22 ; [.2097.0020.0002] # GURMUKHI LETTER DDHA
-0A23 ; [.2098.0020.0002] # GURMUKHI LETTER NNA
-0A24 ; [.2099.0020.0002] # GURMUKHI LETTER TA
-0A25 ; [.209A.0020.0002] # GURMUKHI LETTER THA
-0A26 ; [.209B.0020.0002] # GURMUKHI LETTER DA
-0A27 ; [.209C.0020.0002] # GURMUKHI LETTER DHA
-0A28 ; [.209D.0020.0002] # GURMUKHI LETTER NA
-0A2A ; [.209E.0020.0002] # GURMUKHI LETTER PA
-0A2B ; [.209F.0020.0002] # GURMUKHI LETTER PHA
-0A5E ; [.209F.0020.0002][.0000.00B6.0002] # GURMUKHI LETTER FA
-0A2C ; [.20A0.0020.0002] # GURMUKHI LETTER BA
-0A2D ; [.20A1.0020.0002] # GURMUKHI LETTER BHA
-0A2E ; [.20A2.0020.0002] # GURMUKHI LETTER MA
-0A2F ; [.20A3.0020.0002] # GURMUKHI LETTER YA
-0A75 ; [.20A4.0020.0002] # GURMUKHI SIGN YAKASH
-0A30 ; [.20A5.0020.0002] # GURMUKHI LETTER RA
-0A32 ; [.20A6.0020.0002] # GURMUKHI LETTER LA
-0A33 ; [.20A6.0020.0002][.0000.00B6.0002] # GURMUKHI LETTER LLA
-0A35 ; [.20A7.0020.0002] # GURMUKHI LETTER VA
-0A5C ; [.20A8.0020.0002] # GURMUKHI LETTER RRA
-0A3E ; [.20A9.0020.0002] # GURMUKHI VOWEL SIGN AA
-0A3F ; [.20AA.0020.0002] # GURMUKHI VOWEL SIGN I
-0A40 ; [.20AB.0020.0002] # GURMUKHI VOWEL SIGN II
-0A41 ; [.20AC.0020.0002] # GURMUKHI VOWEL SIGN U
-0A42 ; [.20AD.0020.0002] # GURMUKHI VOWEL SIGN UU
-0A47 ; [.20AE.0020.0002] # GURMUKHI VOWEL SIGN EE
-0A48 ; [.20AF.0020.0002] # GURMUKHI VOWEL SIGN AI
-0A4B ; [.20B0.0020.0002] # GURMUKHI VOWEL SIGN OO
-0A4C ; [.20B1.0020.0002] # GURMUKHI VOWEL SIGN AU
-0A4D ; [.20B2.0020.0002] # GURMUKHI SIGN VIRAMA
-0AD0 ; [.20B3.0020.0002] # GUJARATI OM
-0A85 ; [.20B4.0020.0002] # GUJARATI LETTER A
-0A86 ; [.20B5.0020.0002] # GUJARATI LETTER AA
-0A87 ; [.20B6.0020.0002] # GUJARATI LETTER I
-0A88 ; [.20B7.0020.0002] # GUJARATI LETTER II
-0A89 ; [.20B8.0020.0002] # GUJARATI LETTER U
-0A8A ; [.20B9.0020.0002] # GUJARATI LETTER UU
-0A8B ; [.20BA.0020.0002] # GUJARATI LETTER VOCALIC R
-0AE0 ; [.20BB.0020.0002] # GUJARATI LETTER VOCALIC RR
-0A8C ; [.20BC.0020.0002] # GUJARATI LETTER VOCALIC L
-0AE1 ; [.20BD.0020.0002] # GUJARATI LETTER VOCALIC LL
-0A8D ; [.20BE.0020.0002] # GUJARATI VOWEL CANDRA E
-0A8F ; [.20BF.0020.0002] # GUJARATI LETTER E
-0A90 ; [.20C0.0020.0002] # GUJARATI LETTER AI
-0A91 ; [.20C1.0020.0002] # GUJARATI VOWEL CANDRA O
-0A93 ; [.20C2.0020.0002] # GUJARATI LETTER O
-0A94 ; [.20C3.0020.0002] # GUJARATI LETTER AU
-0A95 ; [.20C4.0020.0002] # GUJARATI LETTER KA
-0A96 ; [.20C5.0020.0002] # GUJARATI LETTER KHA
-0A97 ; [.20C6.0020.0002] # GUJARATI LETTER GA
-0A98 ; [.20C7.0020.0002] # GUJARATI LETTER GHA
-0A99 ; [.20C8.0020.0002] # GUJARATI LETTER NGA
-0A9A ; [.20C9.0020.0002] # GUJARATI LETTER CA
-0A9B ; [.20CA.0020.0002] # GUJARATI LETTER CHA
-0A9C ; [.20CB.0020.0002] # GUJARATI LETTER JA
-0A9D ; [.20CC.0020.0002] # GUJARATI LETTER JHA
-0A9E ; [.20CD.0020.0002] # GUJARATI LETTER NYA
-0A9F ; [.20CE.0020.0002] # GUJARATI LETTER TTA
-0AA0 ; [.20CF.0020.0002] # GUJARATI LETTER TTHA
-0AA1 ; [.20D0.0020.0002] # GUJARATI LETTER DDA
-0AA2 ; [.20D1.0020.0002] # GUJARATI LETTER DDHA
-0AA3 ; [.20D2.0020.0002] # GUJARATI LETTER NNA
-0AA4 ; [.20D3.0020.0002] # GUJARATI LETTER TA
-0AA5 ; [.20D4.0020.0002] # GUJARATI LETTER THA
-0AA6 ; [.20D5.0020.0002] # GUJARATI LETTER DA
-0AA7 ; [.20D6.0020.0002] # GUJARATI LETTER DHA
-0AA8 ; [.20D7.0020.0002] # GUJARATI LETTER NA
-0AAA ; [.20D8.0020.0002] # GUJARATI LETTER PA
-0AAB ; [.20D9.0020.0002] # GUJARATI LETTER PHA
-0AAC ; [.20DA.0020.0002] # GUJARATI LETTER BA
-0AAD ; [.20DB.0020.0002] # GUJARATI LETTER BHA
-0AAE ; [.20DC.0020.0002] # GUJARATI LETTER MA
-0AAF ; [.20DD.0020.0002] # GUJARATI LETTER YA
-0AB0 ; [.20DE.0020.0002] # GUJARATI LETTER RA
-0AB2 ; [.20DF.0020.0002] # GUJARATI LETTER LA
-0AB5 ; [.20E0.0020.0002] # GUJARATI LETTER VA
-0AB6 ; [.20E1.0020.0002] # GUJARATI LETTER SHA
-0AB7 ; [.20E2.0020.0002] # GUJARATI LETTER SSA
-0AB8 ; [.20E3.0020.0002] # GUJARATI LETTER SA
-0AB9 ; [.20E4.0020.0002] # GUJARATI LETTER HA
-0AB3 ; [.20E5.0020.0002] # GUJARATI LETTER LLA
-0ABD ; [.20E6.0020.0002] # GUJARATI SIGN AVAGRAHA
-0ABE ; [.20E7.0020.0002] # GUJARATI VOWEL SIGN AA
-0ABF ; [.20E8.0020.0002] # GUJARATI VOWEL SIGN I
-0AC0 ; [.20E9.0020.0002] # GUJARATI VOWEL SIGN II
-0AC1 ; [.20EA.0020.0002] # GUJARATI VOWEL SIGN U
-0AC2 ; [.20EB.0020.0002] # GUJARATI VOWEL SIGN UU
-0AC3 ; [.20EC.0020.0002] # GUJARATI VOWEL SIGN VOCALIC R
-0AC4 ; [.20ED.0020.0002] # GUJARATI VOWEL SIGN VOCALIC RR
-0AE2 ; [.20EE.0020.0002] # GUJARATI VOWEL SIGN VOCALIC L
-0AE3 ; [.20EF.0020.0002] # GUJARATI VOWEL SIGN VOCALIC LL
-0AC5 ; [.20F0.0020.0002] # GUJARATI VOWEL SIGN CANDRA E
-0AC7 ; [.20F1.0020.0002] # GUJARATI VOWEL SIGN E
-0AC8 ; [.20F2.0020.0002] # GUJARATI VOWEL SIGN AI
-0AC9 ; [.20F3.0020.0002] # GUJARATI VOWEL SIGN CANDRA O
-0ACB ; [.20F4.0020.0002] # GUJARATI VOWEL SIGN O
-0ACC ; [.20F5.0020.0002] # GUJARATI VOWEL SIGN AU
-0ACD ; [.20F6.0020.0002] # GUJARATI SIGN VIRAMA
-0B05 ; [.20F7.0020.0002] # ORIYA LETTER A
-0B06 ; [.20F8.0020.0002] # ORIYA LETTER AA
-0B07 ; [.20F9.0020.0002] # ORIYA LETTER I
-0B08 ; [.20FA.0020.0002] # ORIYA LETTER II
-0B09 ; [.20FB.0020.0002] # ORIYA LETTER U
-0B0A ; [.20FC.0020.0002] # ORIYA LETTER UU
-0B0B ; [.20FD.0020.0002] # ORIYA LETTER VOCALIC R
-0B60 ; [.20FE.0020.0002] # ORIYA LETTER VOCALIC RR
-0B0C ; [.20FF.0020.0002] # ORIYA LETTER VOCALIC L
-0B61 ; [.2100.0020.0002] # ORIYA LETTER VOCALIC LL
-0B0F ; [.2101.0020.0002] # ORIYA LETTER E
-0B10 ; [.2102.0020.0002] # ORIYA LETTER AI
-0B13 ; [.2103.0020.0002] # ORIYA LETTER O
-0B14 ; [.2104.0020.0002] # ORIYA LETTER AU
-0B15 ; [.2105.0020.0002] # ORIYA LETTER KA
-0B16 ; [.2106.0020.0002] # ORIYA LETTER KHA
-0B17 ; [.2107.0020.0002] # ORIYA LETTER GA
-0B18 ; [.2108.0020.0002] # ORIYA LETTER GHA
-0B19 ; [.2109.0020.0002] # ORIYA LETTER NGA
-0B1A ; [.210A.0020.0002] # ORIYA LETTER CA
-0B1B ; [.210B.0020.0002] # ORIYA LETTER CHA
-0B1C ; [.210C.0020.0002] # ORIYA LETTER JA
-0B1D ; [.210D.0020.0002] # ORIYA LETTER JHA
-0B1E ; [.210E.0020.0002] # ORIYA LETTER NYA
-0B1F ; [.210F.0020.0002] # ORIYA LETTER TTA
-0B20 ; [.2110.0020.0002] # ORIYA LETTER TTHA
-0B21 ; [.2111.0020.0002] # ORIYA LETTER DDA
-0B5C ; [.2111.0020.0002][.0000.00B6.0002] # ORIYA LETTER RRA
-0B22 ; [.2112.0020.0002] # ORIYA LETTER DDHA
-0B5D ; [.2112.0020.0002][.0000.00B6.0002] # ORIYA LETTER RHA
-0B23 ; [.2113.0020.0002] # ORIYA LETTER NNA
-0B24 ; [.2114.0020.0002] # ORIYA LETTER TA
-0B25 ; [.2115.0020.0002] # ORIYA LETTER THA
-0B26 ; [.2116.0020.0002] # ORIYA LETTER DA
-0B27 ; [.2117.0020.0002] # ORIYA LETTER DHA
-0B28 ; [.2118.0020.0002] # ORIYA LETTER NA
-0B2A ; [.2119.0020.0002] # ORIYA LETTER PA
-0B2B ; [.211A.0020.0002] # ORIYA LETTER PHA
-0B2C ; [.211B.0020.0002] # ORIYA LETTER BA
-0B2D ; [.211C.0020.0002] # ORIYA LETTER BHA
-0B2E ; [.211D.0020.0002] # ORIYA LETTER MA
-0B2F ; [.211E.0020.0002] # ORIYA LETTER YA
-0B5F ; [.211F.0020.0002] # ORIYA LETTER YYA
-0B30 ; [.2120.0020.0002] # ORIYA LETTER RA
-0B32 ; [.2121.0020.0002] # ORIYA LETTER LA
-0B33 ; [.2122.0020.0002] # ORIYA LETTER LLA
-0B35 ; [.2123.0020.0002] # ORIYA LETTER VA
-0B71 ; [.2124.0020.0002] # ORIYA LETTER WA
-0B36 ; [.2125.0020.0002] # ORIYA LETTER SHA
-0B37 ; [.2126.0020.0002] # ORIYA LETTER SSA
-0B38 ; [.2127.0020.0002] # ORIYA LETTER SA
-0B39 ; [.2128.0020.0002] # ORIYA LETTER HA
-0B3D ; [.2129.0020.0002] # ORIYA SIGN AVAGRAHA
-0B3E ; [.212A.0020.0002] # ORIYA VOWEL SIGN AA
-0B3F ; [.212B.0020.0002] # ORIYA VOWEL SIGN I
-0B40 ; [.212C.0020.0002] # ORIYA VOWEL SIGN II
-0B41 ; [.212D.0020.0002] # ORIYA VOWEL SIGN U
-0B42 ; [.212E.0020.0002] # ORIYA VOWEL SIGN UU
-0B43 ; [.212F.0020.0002] # ORIYA VOWEL SIGN VOCALIC R
-0B44 ; [.2130.0020.0002] # ORIYA VOWEL SIGN VOCALIC RR
-0B62 ; [.2131.0020.0002] # ORIYA VOWEL SIGN VOCALIC L
-0B63 ; [.2132.0020.0002] # ORIYA VOWEL SIGN VOCALIC LL
-0B47 ; [.2133.0020.0002] # ORIYA VOWEL SIGN E
-0B48 ; [.2134.0020.0002] # ORIYA VOWEL SIGN AI
-0B47 0B56 ; [.2134.0020.0002] # ORIYA VOWEL SIGN AI
-0B4B ; [.2135.0020.0002] # ORIYA VOWEL SIGN O
-0B47 0B3E ; [.2135.0020.0002] # ORIYA VOWEL SIGN O
-0B4C ; [.2136.0020.0002] # ORIYA VOWEL SIGN AU
-0B47 0B57 ; [.2136.0020.0002] # ORIYA VOWEL SIGN AU
-0B4D ; [.2137.0020.0002] # ORIYA SIGN VIRAMA
-0B56 ; [.2138.0020.0002] # ORIYA AI LENGTH MARK
-0B57 ; [.2139.0020.0002] # ORIYA AU LENGTH MARK
-0BD0 ; [.213A.0020.0002] # TAMIL OM
-0B85 ; [.213B.0020.0002] # TAMIL LETTER A
-0B86 ; [.213C.0020.0002] # TAMIL LETTER AA
-0B87 ; [.213D.0020.0002] # TAMIL LETTER I
-0B88 ; [.213E.0020.0002] # TAMIL LETTER II
-0B89 ; [.213F.0020.0002] # TAMIL LETTER U
-0B8A ; [.2140.0020.0002] # TAMIL LETTER UU
-0B8E ; [.2141.0020.0002] # TAMIL LETTER E
-0B8F ; [.2142.0020.0002] # TAMIL LETTER EE
-0B90 ; [.2143.0020.0002] # TAMIL LETTER AI
-0B92 ; [.2144.0020.0002] # TAMIL LETTER O
-0B93 ; [.2145.0020.0002] # TAMIL LETTER OO
-0B94 ; [.2146.0020.0002] # TAMIL LETTER AU
-0B92 0BD7 ; [.2146.0020.0002] # TAMIL LETTER AU
-0B83 ; [.2147.0020.0002] # TAMIL SIGN VISARGA
-0B95 ; [.2148.0020.0002] # TAMIL LETTER KA
-0B99 ; [.2149.0020.0002] # TAMIL LETTER NGA
-0B9A ; [.214A.0020.0002] # TAMIL LETTER CA
-0B9E ; [.214B.0020.0002] # TAMIL LETTER NYA
-0B9F ; [.214C.0020.0002] # TAMIL LETTER TTA
-0BA3 ; [.214D.0020.0002] # TAMIL LETTER NNA
-0BA4 ; [.214E.0020.0002] # TAMIL LETTER TA
-0BA8 ; [.214F.0020.0002] # TAMIL LETTER NA
-0BAA ; [.2150.0020.0002] # TAMIL LETTER PA
-0BAE ; [.2151.0020.0002] # TAMIL LETTER MA
-0BAF ; [.2152.0020.0002] # TAMIL LETTER YA
-0BB0 ; [.2153.0020.0002] # TAMIL LETTER RA
-0BB2 ; [.2154.0020.0002] # TAMIL LETTER LA
-0BB5 ; [.2155.0020.0002] # TAMIL LETTER VA
-0BB4 ; [.2156.0020.0002] # TAMIL LETTER LLLA
-0BB3 ; [.2157.0020.0002] # TAMIL LETTER LLA
-0BB1 ; [.2158.0020.0002] # TAMIL LETTER RRA
-0BA9 ; [.2159.0020.0002] # TAMIL LETTER NNNA
-0B9C ; [.215A.0020.0002] # TAMIL LETTER JA
-0BB6 ; [.215B.0020.0002] # TAMIL LETTER SHA
-0BB7 ; [.215C.0020.0002] # TAMIL LETTER SSA
-0BB8 ; [.215D.0020.0002] # TAMIL LETTER SA
-0BB9 ; [.215E.0020.0002] # TAMIL LETTER HA
-0BBE ; [.215F.0020.0002] # TAMIL VOWEL SIGN AA
-0BBF ; [.2160.0020.0002] # TAMIL VOWEL SIGN I
-0BC0 ; [.2161.0020.0002] # TAMIL VOWEL SIGN II
-0BC1 ; [.2162.0020.0002] # TAMIL VOWEL SIGN U
-0BC2 ; [.2163.0020.0002] # TAMIL VOWEL SIGN UU
-0BC6 ; [.2164.0020.0002] # TAMIL VOWEL SIGN E
-0BC7 ; [.2165.0020.0002] # TAMIL VOWEL SIGN EE
-0BC8 ; [.2166.0020.0002] # TAMIL VOWEL SIGN AI
-0BCA ; [.2167.0020.0002] # TAMIL VOWEL SIGN O
-0BC6 0BBE ; [.2167.0020.0002] # TAMIL VOWEL SIGN O
-0BCB ; [.2168.0020.0002] # TAMIL VOWEL SIGN OO
-0BC7 0BBE ; [.2168.0020.0002] # TAMIL VOWEL SIGN OO
-0BCC ; [.2169.0020.0002] # TAMIL VOWEL SIGN AU
-0BC6 0BD7 ; [.2169.0020.0002] # TAMIL VOWEL SIGN AU
-0BCD ; [.216A.0020.0002] # TAMIL SIGN VIRAMA
-0BD7 ; [.216B.0020.0002] # TAMIL AU LENGTH MARK
-0C05 ; [.216C.0020.0002] # TELUGU LETTER A
-0C06 ; [.216D.0020.0002] # TELUGU LETTER AA
-0C07 ; [.216E.0020.0002] # TELUGU LETTER I
-0C08 ; [.216F.0020.0002] # TELUGU LETTER II
-0C09 ; [.2170.0020.0002] # TELUGU LETTER U
-0C0A ; [.2171.0020.0002] # TELUGU LETTER UU
-0C0B ; [.2172.0020.0002] # TELUGU LETTER VOCALIC R
-0C60 ; [.2173.0020.0002] # TELUGU LETTER VOCALIC RR
-0C0C ; [.2174.0020.0002] # TELUGU LETTER VOCALIC L
-0C61 ; [.2175.0020.0002] # TELUGU LETTER VOCALIC LL
-0C0E ; [.2176.0020.0002] # TELUGU LETTER E
-0C0F ; [.2177.0020.0002] # TELUGU LETTER EE
-0C10 ; [.2178.0020.0002] # TELUGU LETTER AI
-0C12 ; [.2179.0020.0002] # TELUGU LETTER O
-0C13 ; [.217A.0020.0002] # TELUGU LETTER OO
-0C14 ; [.217B.0020.0002] # TELUGU LETTER AU
-0C15 ; [.217C.0020.0002] # TELUGU LETTER KA
-0C16 ; [.217D.0020.0002] # TELUGU LETTER KHA
-0C17 ; [.217E.0020.0002] # TELUGU LETTER GA
-0C18 ; [.217F.0020.0002] # TELUGU LETTER GHA
-0C19 ; [.2180.0020.0002] # TELUGU LETTER NGA
-0C1A ; [.2181.0020.0002] # TELUGU LETTER CA
-0C58 ; [.2182.0020.0002] # TELUGU LETTER TSA
-0C1B ; [.2183.0020.0002] # TELUGU LETTER CHA
-0C1C ; [.2184.0020.0002] # TELUGU LETTER JA
-0C59 ; [.2185.0020.0002] # TELUGU LETTER DZA
-0C1D ; [.2186.0020.0002] # TELUGU LETTER JHA
-0C1E ; [.2187.0020.0002] # TELUGU LETTER NYA
-0C1F ; [.2188.0020.0002] # TELUGU LETTER TTA
-0C20 ; [.2189.0020.0002] # TELUGU LETTER TTHA
-0C21 ; [.218A.0020.0002] # TELUGU LETTER DDA
-0C22 ; [.218B.0020.0002] # TELUGU LETTER DDHA
-0C23 ; [.218C.0020.0002] # TELUGU LETTER NNA
-0C24 ; [.218D.0020.0002] # TELUGU LETTER TA
-0C25 ; [.218E.0020.0002] # TELUGU LETTER THA
-0C26 ; [.218F.0020.0002] # TELUGU LETTER DA
-0C27 ; [.2190.0020.0002] # TELUGU LETTER DHA
-0C28 ; [.2191.0020.0002] # TELUGU LETTER NA
-0C2A ; [.2192.0020.0002] # TELUGU LETTER PA
-0C2B ; [.2193.0020.0002] # TELUGU LETTER PHA
-0C2C ; [.2194.0020.0002] # TELUGU LETTER BA
-0C2D ; [.2195.0020.0002] # TELUGU LETTER BHA
-0C2E ; [.2196.0020.0002] # TELUGU LETTER MA
-0C2F ; [.2197.0020.0002] # TELUGU LETTER YA
-0C30 ; [.2198.0020.0002] # TELUGU LETTER RA
-0C31 ; [.2199.0020.0002] # TELUGU LETTER RRA
-0C32 ; [.219A.0020.0002] # TELUGU LETTER LA
-0C35 ; [.219B.0020.0002] # TELUGU LETTER VA
-0C36 ; [.219C.0020.0002] # TELUGU LETTER SHA
-0C37 ; [.219D.0020.0002] # TELUGU LETTER SSA
-0C38 ; [.219E.0020.0002] # TELUGU LETTER SA
-0C39 ; [.219F.0020.0002] # TELUGU LETTER HA
-0C33 ; [.21A0.0020.0002] # TELUGU LETTER LLA
-0C3D ; [.21A1.0020.0002] # TELUGU SIGN AVAGRAHA
-0C3E ; [.21A2.0020.0002] # TELUGU VOWEL SIGN AA
-0C3F ; [.21A3.0020.0002] # TELUGU VOWEL SIGN I
-0C40 ; [.21A4.0020.0002] # TELUGU VOWEL SIGN II
-0C41 ; [.21A5.0020.0002] # TELUGU VOWEL SIGN U
-0C42 ; [.21A6.0020.0002] # TELUGU VOWEL SIGN UU
-0C43 ; [.21A7.0020.0002] # TELUGU VOWEL SIGN VOCALIC R
-0C44 ; [.21A8.0020.0002] # TELUGU VOWEL SIGN VOCALIC RR
-0C62 ; [.21A9.0020.0002] # TELUGU VOWEL SIGN VOCALIC L
-0C63 ; [.21AA.0020.0002] # TELUGU VOWEL SIGN VOCALIC LL
-0C46 ; [.21AB.0020.0002] # TELUGU VOWEL SIGN E
-0C47 ; [.21AC.0020.0002] # TELUGU VOWEL SIGN EE
-0C48 ; [.21AD.0020.0002] # TELUGU VOWEL SIGN AI
-0C46 0C56 ; [.21AD.0020.0002] # TELUGU VOWEL SIGN AI
-0C4A ; [.21AE.0020.0002] # TELUGU VOWEL SIGN O
-0C4B ; [.21AF.0020.0002] # TELUGU VOWEL SIGN OO
-0C4C ; [.21B0.0020.0002] # TELUGU VOWEL SIGN AU
-0C4D ; [.21B1.0020.0002] # TELUGU SIGN VIRAMA
-0C55 ; [.21B2.0020.0002] # TELUGU LENGTH MARK
-0C56 ; [.21B3.0020.0002] # TELUGU AI LENGTH MARK
-0C85 ; [.21B4.0020.0002] # KANNADA LETTER A
-0C86 ; [.21B5.0020.0002] # KANNADA LETTER AA
-0C87 ; [.21B6.0020.0002] # KANNADA LETTER I
-0C88 ; [.21B7.0020.0002] # KANNADA LETTER II
-0C89 ; [.21B8.0020.0002] # KANNADA LETTER U
-0C8A ; [.21B9.0020.0002] # KANNADA LETTER UU
-0C8B ; [.21BA.0020.0002] # KANNADA LETTER VOCALIC R
-0CE0 ; [.21BB.0020.0002] # KANNADA LETTER VOCALIC RR
-0C8C ; [.21BC.0020.0002] # KANNADA LETTER VOCALIC L
-0CE1 ; [.21BD.0020.0002] # KANNADA LETTER VOCALIC LL
-0C8E ; [.21BE.0020.0002] # KANNADA LETTER E
-0C8F ; [.21BF.0020.0002] # KANNADA LETTER EE
-0C90 ; [.21C0.0020.0002] # KANNADA LETTER AI
-0C92 ; [.21C1.0020.0002] # KANNADA LETTER O
-0C93 ; [.21C2.0020.0002] # KANNADA LETTER OO
-0C94 ; [.21C3.0020.0002] # KANNADA LETTER AU
-0C95 ; [.21C4.0020.0002] # KANNADA LETTER KA
-0C96 ; [.21C5.0020.0002] # KANNADA LETTER KHA
-0C97 ; [.21C6.0020.0002] # KANNADA LETTER GA
-0C98 ; [.21C7.0020.0002] # KANNADA LETTER GHA
-0C99 ; [.21C8.0020.0002] # KANNADA LETTER NGA
-0C9A ; [.21C9.0020.0002] # KANNADA LETTER CA
-0C9B ; [.21CA.0020.0002] # KANNADA LETTER CHA
-0C9C ; [.21CB.0020.0002] # KANNADA LETTER JA
-0C9D ; [.21CC.0020.0002] # KANNADA LETTER JHA
-0C9E ; [.21CD.0020.0002] # KANNADA LETTER NYA
-0C9F ; [.21CE.0020.0002] # KANNADA LETTER TTA
-0CA0 ; [.21CF.0020.0002] # KANNADA LETTER TTHA
-0CA1 ; [.21D0.0020.0002] # KANNADA LETTER DDA
-0CA2 ; [.21D1.0020.0002] # KANNADA LETTER DDHA
-0CA3 ; [.21D2.0020.0002] # KANNADA LETTER NNA
-0CA4 ; [.21D3.0020.0002] # KANNADA LETTER TA
-0CA5 ; [.21D4.0020.0002] # KANNADA LETTER THA
-0CA6 ; [.21D5.0020.0002] # KANNADA LETTER DA
-0CA7 ; [.21D6.0020.0002] # KANNADA LETTER DHA
-0CA8 ; [.21D7.0020.0002] # KANNADA LETTER NA
-0CAA ; [.21D8.0020.0002] # KANNADA LETTER PA
-0CAB ; [.21D9.0020.0002] # KANNADA LETTER PHA
-0CAC ; [.21DA.0020.0002] # KANNADA LETTER BA
-0CAD ; [.21DB.0020.0002] # KANNADA LETTER BHA
-0CAE ; [.21DC.0020.0002] # KANNADA LETTER MA
-0CAF ; [.21DD.0020.0002] # KANNADA LETTER YA
-0CB0 ; [.21DE.0020.0002] # KANNADA LETTER RA
-0CB1 ; [.21DF.0020.0002] # KANNADA LETTER RRA
-0CB2 ; [.21E0.0020.0002] # KANNADA LETTER LA
-0CB5 ; [.21E1.0020.0002] # KANNADA LETTER VA
-0CB6 ; [.21E2.0020.0002] # KANNADA LETTER SHA
-0CB7 ; [.21E3.0020.0002] # KANNADA LETTER SSA
-0CB8 ; [.21E4.0020.0002] # KANNADA LETTER SA
-0CB9 ; [.21E5.0020.0002] # KANNADA LETTER HA
-0CB3 ; [.21E6.0020.0002] # KANNADA LETTER LLA
-0CDE ; [.21E7.0020.0002] # KANNADA LETTER FA
-0CBD ; [.21E8.0020.0002] # KANNADA SIGN AVAGRAHA
-0CF1 ; [.21E9.0020.0002] # KANNADA SIGN JIHVAMULIYA
-0CF2 ; [.21EA.0020.0002] # KANNADA SIGN UPADHMANIYA
-0CBE ; [.21EB.0020.0002] # KANNADA VOWEL SIGN AA
-0CBF ; [.21EC.0020.0002] # KANNADA VOWEL SIGN I
-0CC0 ; [.21ED.0020.0002] # KANNADA VOWEL SIGN II
-0CBF 0CD5 ; [.21ED.0020.0002] # KANNADA VOWEL SIGN II
-0CC1 ; [.21EE.0020.0002] # KANNADA VOWEL SIGN U
-0CC2 ; [.21EF.0020.0002] # KANNADA VOWEL SIGN UU
-0CC3 ; [.21F0.0020.0002] # KANNADA VOWEL SIGN VOCALIC R
-0CC4 ; [.21F1.0020.0002] # KANNADA VOWEL SIGN VOCALIC RR
-0CE2 ; [.21F2.0020.0002] # KANNADA VOWEL SIGN VOCALIC L
-0CE3 ; [.21F3.0020.0002] # KANNADA VOWEL SIGN VOCALIC LL
-0CC6 ; [.21F4.0020.0002] # KANNADA VOWEL SIGN E
-0CC7 ; [.21F5.0020.0002] # KANNADA VOWEL SIGN EE
-0CC6 0CD5 ; [.21F5.0020.0002] # KANNADA VOWEL SIGN EE
-0CC8 ; [.21F6.0020.0002] # KANNADA VOWEL SIGN AI
-0CC6 0CD6 ; [.21F6.0020.0002] # KANNADA VOWEL SIGN AI
-0CCA ; [.21F7.0020.0002] # KANNADA VOWEL SIGN O
-0CC6 0CC2 ; [.21F7.0020.0002] # KANNADA VOWEL SIGN O
-0CCB ; [.21F8.0020.0002] # KANNADA VOWEL SIGN OO
-0CC6 0CC2 0CD5 ; [.21F8.0020.0002] # KANNADA VOWEL SIGN OO
-0CCA 0CD5 ; [.21F8.0020.0002] # KANNADA VOWEL SIGN OO
-0CCC ; [.21F9.0020.0002] # KANNADA VOWEL SIGN AU
-0CCD ; [.21FA.0020.0002] # KANNADA SIGN VIRAMA
-0CD5 ; [.21FB.0020.0002] # KANNADA LENGTH MARK
-0CD6 ; [.21FC.0020.0002] # KANNADA AI LENGTH MARK
-0D05 ; [.21FD.0020.0002] # MALAYALAM LETTER A
-0D06 ; [.21FE.0020.0002] # MALAYALAM LETTER AA
-0D07 ; [.21FF.0020.0002] # MALAYALAM LETTER I
-0D08 ; [.2200.0020.0002] # MALAYALAM LETTER II
-0D09 ; [.2201.0020.0002] # MALAYALAM LETTER U
-0D0A ; [.2202.0020.0002] # MALAYALAM LETTER UU
-0D0B ; [.2203.0020.0002] # MALAYALAM LETTER VOCALIC R
-0D60 ; [.2204.0020.0002] # MALAYALAM LETTER VOCALIC RR
-0D0C ; [.2205.0020.0002] # MALAYALAM LETTER VOCALIC L
-0D61 ; [.2206.0020.0002] # MALAYALAM LETTER VOCALIC LL
-0D0E ; [.2207.0020.0002] # MALAYALAM LETTER E
-0D0F ; [.2208.0020.0002] # MALAYALAM LETTER EE
-0D10 ; [.2209.0020.0002] # MALAYALAM LETTER AI
-0D12 ; [.220A.0020.0002] # MALAYALAM LETTER O
-0D13 ; [.220B.0020.0002] # MALAYALAM LETTER OO
-0D14 ; [.220C.0020.0002] # MALAYALAM LETTER AU
-0D15 ; [.220D.0020.0002] # MALAYALAM LETTER KA
-0D7F ; [.220D.0020.0004][.2244.0020.0004] # MALAYALAM LETTER CHILLU K
-0D16 ; [.220E.0020.0002] # MALAYALAM LETTER KHA
-0D17 ; [.220F.0020.0002] # MALAYALAM LETTER GA
-0D18 ; [.2210.0020.0002] # MALAYALAM LETTER GHA
-0D19 ; [.2211.0020.0002] # MALAYALAM LETTER NGA
-0D1A ; [.2212.0020.0002] # MALAYALAM LETTER CA
-0D1B ; [.2213.0020.0002] # MALAYALAM LETTER CHA
-0D1C ; [.2214.0020.0002] # MALAYALAM LETTER JA
-0D1D ; [.2215.0020.0002] # MALAYALAM LETTER JHA
-0D1E ; [.2216.0020.0002] # MALAYALAM LETTER NYA
-0D1F ; [.2217.0020.0002] # MALAYALAM LETTER TTA
-0D20 ; [.2218.0020.0002] # MALAYALAM LETTER TTHA
-0D21 ; [.2219.0020.0002] # MALAYALAM LETTER DDA
-0D22 ; [.221A.0020.0002] # MALAYALAM LETTER DDHA
-0D23 ; [.221B.0020.0002] # MALAYALAM LETTER NNA
-0D7A ; [.221B.0020.0004][.2244.0020.0004] # MALAYALAM LETTER CHILLU NN
-0D24 ; [.221C.0020.0002] # MALAYALAM LETTER TA
-0D25 ; [.221D.0020.0002] # MALAYALAM LETTER THA
-0D26 ; [.221E.0020.0002] # MALAYALAM LETTER DA
-0D27 ; [.221F.0020.0002] # MALAYALAM LETTER DHA
-0D28 ; [.2220.0020.0002] # MALAYALAM LETTER NA
-0D7B ; [.2220.0020.0004][.2244.0020.0004] # MALAYALAM LETTER CHILLU N
-0D29 ; [.2221.0020.0002] # MALAYALAM LETTER NNNA
-0D2A ; [.2222.0020.0002] # MALAYALAM LETTER PA
-0D2B ; [.2223.0020.0002] # MALAYALAM LETTER PHA
-0D2C ; [.2224.0020.0002] # MALAYALAM LETTER BA
-0D2D ; [.2225.0020.0002] # MALAYALAM LETTER BHA
-0D2E ; [.2226.0020.0002] # MALAYALAM LETTER MA
-0D2F ; [.2227.0020.0002] # MALAYALAM LETTER YA
-0D30 ; [.2228.0020.0002] # MALAYALAM LETTER RA
-0D4E ; [.2228.0020.0004][.2244.0020.0004] # MALAYALAM LETTER DOT REPH
-0D7C ; [.2228.0020.0004][.2244.0020.0004] # MALAYALAM LETTER CHILLU RR
-0D32 ; [.2229.0020.0002] # MALAYALAM LETTER LA
-0D7D ; [.2229.0020.0004][.2244.0020.0004] # MALAYALAM LETTER CHILLU L
-0D35 ; [.222A.0020.0002] # MALAYALAM LETTER VA
-0D36 ; [.222B.0020.0002] # MALAYALAM LETTER SHA
-0D37 ; [.222C.0020.0002] # MALAYALAM LETTER SSA
-0D38 ; [.222D.0020.0002] # MALAYALAM LETTER SA
-0D39 ; [.222E.0020.0002] # MALAYALAM LETTER HA
-0D33 ; [.222F.0020.0002] # MALAYALAM LETTER LLA
-0D7E ; [.222F.0020.0004][.2244.0020.0004] # MALAYALAM LETTER CHILLU LL
-0D34 ; [.2230.0020.0002] # MALAYALAM LETTER LLLA
-0D31 ; [.2231.0020.0002] # MALAYALAM LETTER RRA
-0D3A ; [.2232.0020.0002] # MALAYALAM LETTER TTTA
-0D3D ; [.2233.0020.0002] # MALAYALAM SIGN AVAGRAHA
-0D3E ; [.2234.0020.0002] # MALAYALAM VOWEL SIGN AA
-0D3F ; [.2235.0020.0002] # MALAYALAM VOWEL SIGN I
-0D40 ; [.2236.0020.0002] # MALAYALAM VOWEL SIGN II
-0D41 ; [.2237.0020.0002] # MALAYALAM VOWEL SIGN U
-0D42 ; [.2238.0020.0002] # MALAYALAM VOWEL SIGN UU
-0D43 ; [.2239.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC R
-0D44 ; [.223A.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC RR
-0D62 ; [.223B.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC L
-0D63 ; [.223C.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC LL
-0D46 ; [.223D.0020.0002] # MALAYALAM VOWEL SIGN E
-0D47 ; [.223E.0020.0002] # MALAYALAM VOWEL SIGN EE
-0D48 ; [.223F.0020.0002] # MALAYALAM VOWEL SIGN AI
-0D4A ; [.2240.0020.0002] # MALAYALAM VOWEL SIGN O
-0D46 0D3E ; [.2240.0020.0002] # MALAYALAM VOWEL SIGN O
-0D4B ; [.2241.0020.0002] # MALAYALAM VOWEL SIGN OO
-0D47 0D3E ; [.2241.0020.0002] # MALAYALAM VOWEL SIGN OO
-0D4C ; [.2242.0020.0002] # MALAYALAM VOWEL SIGN AU
-0D46 0D57 ; [.2242.0020.0002] # MALAYALAM VOWEL SIGN AU
-0D57 ; [.2243.0020.0002] # MALAYALAM AU LENGTH MARK
-0D4D ; [.2244.0020.0002] # MALAYALAM SIGN VIRAMA
-0D85 ; [.2245.0020.0002] # SINHALA LETTER AYANNA
-0D86 ; [.2246.0020.0002] # SINHALA LETTER AAYANNA
-0D87 ; [.2247.0020.0002] # SINHALA LETTER AEYANNA
-0D88 ; [.2248.0020.0002] # SINHALA LETTER AEEYANNA
-0D89 ; [.2249.0020.0002] # SINHALA LETTER IYANNA
-0D8A ; [.224A.0020.0002] # SINHALA LETTER IIYANNA
-0D8B ; [.224B.0020.0002] # SINHALA LETTER UYANNA
-0D8C ; [.224C.0020.0002] # SINHALA LETTER UUYANNA
-0D8D ; [.224D.0020.0002] # SINHALA LETTER IRUYANNA
-0D8E ; [.224E.0020.0002] # SINHALA LETTER IRUUYANNA
-0D8F ; [.224F.0020.0002] # SINHALA LETTER ILUYANNA
-0D90 ; [.2250.0020.0002] # SINHALA LETTER ILUUYANNA
-0D91 ; [.2251.0020.0002] # SINHALA LETTER EYANNA
-0D92 ; [.2252.0020.0002] # SINHALA LETTER EEYANNA
-0D93 ; [.2253.0020.0002] # SINHALA LETTER AIYANNA
-0D94 ; [.2254.0020.0002] # SINHALA LETTER OYANNA
-0D95 ; [.2255.0020.0002] # SINHALA LETTER OOYANNA
-0D96 ; [.2256.0020.0002] # SINHALA LETTER AUYANNA
-0D9A ; [.2257.0020.0002] # SINHALA LETTER ALPAPRAANA KAYANNA
-0D9B ; [.2258.0020.0002] # SINHALA LETTER MAHAAPRAANA KAYANNA
-0D9C ; [.2259.0020.0002] # SINHALA LETTER ALPAPRAANA GAYANNA
-0D9D ; [.225A.0020.0002] # SINHALA LETTER MAHAAPRAANA GAYANNA
-0D9E ; [.225B.0020.0002] # SINHALA LETTER KANTAJA NAASIKYAYA
-0D9F ; [.225C.0020.0002] # SINHALA LETTER SANYAKA GAYANNA
-0DA0 ; [.225D.0020.0002] # SINHALA LETTER ALPAPRAANA CAYANNA
-0DA1 ; [.225E.0020.0002] # SINHALA LETTER MAHAAPRAANA CAYANNA
-0DA2 ; [.225F.0020.0002] # SINHALA LETTER ALPAPRAANA JAYANNA
-0DA3 ; [.2260.0020.0002] # SINHALA LETTER MAHAAPRAANA JAYANNA
-0DA4 ; [.2261.0020.0002] # SINHALA LETTER TAALUJA NAASIKYAYA
-0DA5 ; [.2262.0020.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
-0DA6 ; [.2263.0020.0002] # SINHALA LETTER SANYAKA JAYANNA
-0DA7 ; [.2264.0020.0002] # SINHALA LETTER ALPAPRAANA TTAYANNA
-0DA8 ; [.2265.0020.0002] # SINHALA LETTER MAHAAPRAANA TTAYANNA
-0DA9 ; [.2266.0020.0002] # SINHALA LETTER ALPAPRAANA DDAYANNA
-0DAA ; [.2267.0020.0002] # SINHALA LETTER MAHAAPRAANA DDAYANNA
-0DAB ; [.2268.0020.0002] # SINHALA LETTER MUURDHAJA NAYANNA
-0DAC ; [.2269.0020.0002] # SINHALA LETTER SANYAKA DDAYANNA
-0DAD ; [.226A.0020.0002] # SINHALA LETTER ALPAPRAANA TAYANNA
-0DAE ; [.226B.0020.0002] # SINHALA LETTER MAHAAPRAANA TAYANNA
-0DAF ; [.226C.0020.0002] # SINHALA LETTER ALPAPRAANA DAYANNA
-0DB0 ; [.226D.0020.0002] # SINHALA LETTER MAHAAPRAANA DAYANNA
-0DB1 ; [.226E.0020.0002] # SINHALA LETTER DANTAJA NAYANNA
-0DB3 ; [.226F.0020.0002] # SINHALA LETTER SANYAKA DAYANNA
-0DB4 ; [.2270.0020.0002] # SINHALA LETTER ALPAPRAANA PAYANNA
-0DB5 ; [.2271.0020.0002] # SINHALA LETTER MAHAAPRAANA PAYANNA
-0DB6 ; [.2272.0020.0002] # SINHALA LETTER ALPAPRAANA BAYANNA
-0DB7 ; [.2273.0020.0002] # SINHALA LETTER MAHAAPRAANA BAYANNA
-0DB8 ; [.2274.0020.0002] # SINHALA LETTER MAYANNA
-0DB9 ; [.2275.0020.0002] # SINHALA LETTER AMBA BAYANNA
-0DBA ; [.2276.0020.0002] # SINHALA LETTER YAYANNA
-0DBB ; [.2277.0020.0002] # SINHALA LETTER RAYANNA
-0DBD ; [.2278.0020.0002] # SINHALA LETTER DANTAJA LAYANNA
-0DC0 ; [.2279.0020.0002] # SINHALA LETTER VAYANNA
-0DC1 ; [.227A.0020.0002] # SINHALA LETTER TAALUJA SAYANNA
-0DC2 ; [.227B.0020.0002] # SINHALA LETTER MUURDHAJA SAYANNA
-0DC3 ; [.227C.0020.0002] # SINHALA LETTER DANTAJA SAYANNA
-0DC4 ; [.227D.0020.0002] # SINHALA LETTER HAYANNA
-0DC5 ; [.227E.0020.0002] # SINHALA LETTER MUURDHAJA LAYANNA
-0DC6 ; [.227F.0020.0002] # SINHALA LETTER FAYANNA
-0DCF ; [.2280.0020.0002] # SINHALA VOWEL SIGN AELA-PILLA
-0DD0 ; [.2281.0020.0002] # SINHALA VOWEL SIGN KETTI AEDA-PILLA
-0DD1 ; [.2282.0020.0002] # SINHALA VOWEL SIGN DIGA AEDA-PILLA
-0DD2 ; [.2283.0020.0002] # SINHALA VOWEL SIGN KETTI IS-PILLA
-0DD3 ; [.2284.0020.0002] # SINHALA VOWEL SIGN DIGA IS-PILLA
-0DD4 ; [.2285.0020.0002] # SINHALA VOWEL SIGN KETTI PAA-PILLA
-0DD6 ; [.2286.0020.0002] # SINHALA VOWEL SIGN DIGA PAA-PILLA
-0DD8 ; [.2287.0020.0002] # SINHALA VOWEL SIGN GAETTA-PILLA
-0DF2 ; [.2288.0020.0002] # SINHALA VOWEL SIGN DIGA GAETTA-PILLA
-0DDF ; [.2289.0020.0002] # SINHALA VOWEL SIGN GAYANUKITTA
-0DF3 ; [.228A.0020.0002] # SINHALA VOWEL SIGN DIGA GAYANUKITTA
-0DD9 ; [.228B.0020.0002] # SINHALA VOWEL SIGN KOMBUVA
-0DDA ; [.228C.0020.0002] # SINHALA VOWEL SIGN DIGA KOMBUVA
-0DD9 0DCA ; [.228C.0020.0002] # SINHALA VOWEL SIGN DIGA KOMBUVA
-0DDB ; [.228D.0020.0002] # SINHALA VOWEL SIGN KOMBU DEKA
-0DDC ; [.228E.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
-0DD9 0DCF ; [.228E.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
-0DDD ; [.228F.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
-0DD9 0DCF 0DCA ; [.228F.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
-0DDC 0DCA ; [.228F.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
-0DDE ; [.2290.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
-0DD9 0DDF ; [.2290.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
-0DCA ; [.2291.0020.0002] # SINHALA SIGN AL-LAKUNA
-AAF2 ; [.2292.0020.0002] # MEETEI MAYEK ANJI
-ABC0 ; [.2293.0020.0002] # MEETEI MAYEK LETTER KOK
-ABC1 ; [.2294.0020.0002] # MEETEI MAYEK LETTER SAM
-ABC2 ; [.2295.0020.0002] # MEETEI MAYEK LETTER LAI
-ABC3 ; [.2296.0020.0002] # MEETEI MAYEK LETTER MIT
-ABC4 ; [.2297.0020.0002] # MEETEI MAYEK LETTER PA
-ABC5 ; [.2298.0020.0002] # MEETEI MAYEK LETTER NA
-ABC6 ; [.2299.0020.0002] # MEETEI MAYEK LETTER CHIL
-ABC7 ; [.229A.0020.0002] # MEETEI MAYEK LETTER TIL
-ABC8 ; [.229B.0020.0002] # MEETEI MAYEK LETTER KHOU
-ABC9 ; [.229C.0020.0002] # MEETEI MAYEK LETTER NGOU
-ABCA ; [.229D.0020.0002] # MEETEI MAYEK LETTER THOU
-ABCB ; [.229E.0020.0002] # MEETEI MAYEK LETTER WAI
-ABCC ; [.229F.0020.0002] # MEETEI MAYEK LETTER YANG
-ABCD ; [.22A0.0020.0002] # MEETEI MAYEK LETTER HUK
-ABCE ; [.22A1.0020.0002] # MEETEI MAYEK LETTER UN
-ABCF ; [.22A2.0020.0002] # MEETEI MAYEK LETTER I
-ABD0 ; [.22A3.0020.0002] # MEETEI MAYEK LETTER PHAM
-ABD1 ; [.22A4.0020.0002] # MEETEI MAYEK LETTER ATIYA
-ABD2 ; [.22A5.0020.0002] # MEETEI MAYEK LETTER GOK
-ABD3 ; [.22A6.0020.0002] # MEETEI MAYEK LETTER JHAM
-ABD4 ; [.22A7.0020.0002] # MEETEI MAYEK LETTER RAI
-ABD5 ; [.22A8.0020.0002] # MEETEI MAYEK LETTER BA
-ABD6 ; [.22A9.0020.0002] # MEETEI MAYEK LETTER JIL
-ABD7 ; [.22AA.0020.0002] # MEETEI MAYEK LETTER DIL
-ABD8 ; [.22AB.0020.0002] # MEETEI MAYEK LETTER GHOU
-ABD9 ; [.22AC.0020.0002] # MEETEI MAYEK LETTER DHOU
-ABDA ; [.22AD.0020.0002] # MEETEI MAYEK LETTER BHAM
-AAE0 ; [.22AE.0020.0002] # MEETEI MAYEK LETTER E
-AAE1 ; [.22AF.0020.0002] # MEETEI MAYEK LETTER O
-AAE2 ; [.22B0.0020.0002] # MEETEI MAYEK LETTER CHA
-AAE3 ; [.22B1.0020.0002] # MEETEI MAYEK LETTER NYA
-AAE4 ; [.22B2.0020.0002] # MEETEI MAYEK LETTER TTA
-AAE5 ; [.22B3.0020.0002] # MEETEI MAYEK LETTER TTHA
-AAE6 ; [.22B4.0020.0002] # MEETEI MAYEK LETTER DDA
-AAE7 ; [.22B5.0020.0002] # MEETEI MAYEK LETTER DDHA
-AAE8 ; [.22B6.0020.0002] # MEETEI MAYEK LETTER NNA
-AAE9 ; [.22B7.0020.0002] # MEETEI MAYEK LETTER SHA
-AAEA ; [.22B8.0020.0002] # MEETEI MAYEK LETTER SSA
-ABE3 ; [.22B9.0020.0002] # MEETEI MAYEK VOWEL SIGN ONAP
-ABE4 ; [.22BA.0020.0002] # MEETEI MAYEK VOWEL SIGN INAP
-ABE5 ; [.22BB.0020.0002] # MEETEI MAYEK VOWEL SIGN ANAP
-ABE6 ; [.22BC.0020.0002] # MEETEI MAYEK VOWEL SIGN YENAP
-ABE7 ; [.22BD.0020.0002] # MEETEI MAYEK VOWEL SIGN SOUNAP
-ABE8 ; [.22BE.0020.0002] # MEETEI MAYEK VOWEL SIGN UNAP
-ABE9 ; [.22BF.0020.0002] # MEETEI MAYEK VOWEL SIGN CHEINAP
-ABEA ; [.22C0.0020.0002] # MEETEI MAYEK VOWEL SIGN NUNG
-AAEB ; [.22C1.0020.0002] # MEETEI MAYEK VOWEL SIGN II
-AAEC ; [.22C2.0020.0002] # MEETEI MAYEK VOWEL SIGN UU
-AAED ; [.22C3.0020.0002] # MEETEI MAYEK VOWEL SIGN AAI
-AAEE ; [.22C4.0020.0002] # MEETEI MAYEK VOWEL SIGN AU
-AAEF ; [.22C5.0020.0002] # MEETEI MAYEK VOWEL SIGN AAU
-AAF5 ; [.22C6.0020.0002] # MEETEI MAYEK VOWEL SIGN VISARGA
-ABDB ; [.22C7.0020.0002] # MEETEI MAYEK LETTER KOK LONSUM
-ABDC ; [.22C8.0020.0002] # MEETEI MAYEK LETTER LAI LONSUM
-ABDD ; [.22C9.0020.0002] # MEETEI MAYEK LETTER MIT LONSUM
-ABDE ; [.22CA.0020.0002] # MEETEI MAYEK LETTER PA LONSUM
-ABDF ; [.22CB.0020.0002] # MEETEI MAYEK LETTER NA LONSUM
-ABE0 ; [.22CC.0020.0002] # MEETEI MAYEK LETTER TIL LONSUM
-ABE1 ; [.22CD.0020.0002] # MEETEI MAYEK LETTER NGOU LONSUM
-ABE2 ; [.22CE.0020.0002] # MEETEI MAYEK LETTER I LONSUM
-ABED ; [.22CF.0020.0002] # MEETEI MAYEK APUN IYEK
-AAF6 ; [.22D0.0020.0002] # MEETEI MAYEK VIRAMA
-A800 ; [.22D1.0020.0002] # SYLOTI NAGRI LETTER A
-A801 ; [.22D2.0020.0002] # SYLOTI NAGRI LETTER I
-A802 ; [.22D3.0020.0002] # SYLOTI NAGRI SIGN DVISVARA
-A803 ; [.22D4.0020.0002] # SYLOTI NAGRI LETTER U
-A804 ; [.22D5.0020.0002] # SYLOTI NAGRI LETTER E
-A805 ; [.22D6.0020.0002] # SYLOTI NAGRI LETTER O
-A806 ; [.22D7.0020.0002] # SYLOTI NAGRI SIGN HASANTA
-A807 ; [.22D8.0020.0002] # SYLOTI NAGRI LETTER KO
-A808 ; [.22D9.0020.0002] # SYLOTI NAGRI LETTER KHO
-A809 ; [.22DA.0020.0002] # SYLOTI NAGRI LETTER GO
-A80A ; [.22DB.0020.0002] # SYLOTI NAGRI LETTER GHO
-A80C ; [.22DC.0020.0002] # SYLOTI NAGRI LETTER CO
-A80D ; [.22DD.0020.0002] # SYLOTI NAGRI LETTER CHO
-A80E ; [.22DE.0020.0002] # SYLOTI NAGRI LETTER JO
-A80F ; [.22DF.0020.0002] # SYLOTI NAGRI LETTER JHO
-A810 ; [.22E0.0020.0002] # SYLOTI NAGRI LETTER TTO
-A811 ; [.22E1.0020.0002] # SYLOTI NAGRI LETTER TTHO
-A812 ; [.22E2.0020.0002] # SYLOTI NAGRI LETTER DDO
-A813 ; [.22E3.0020.0002] # SYLOTI NAGRI LETTER DDHO
-A814 ; [.22E4.0020.0002] # SYLOTI NAGRI LETTER TO
-A815 ; [.22E5.0020.0002] # SYLOTI NAGRI LETTER THO
-A816 ; [.22E6.0020.0002] # SYLOTI NAGRI LETTER DO
-A817 ; [.22E7.0020.0002] # SYLOTI NAGRI LETTER DHO
-A818 ; [.22E8.0020.0002] # SYLOTI NAGRI LETTER NO
-A819 ; [.22E9.0020.0002] # SYLOTI NAGRI LETTER PO
-A81A ; [.22EA.0020.0002] # SYLOTI NAGRI LETTER PHO
-A81B ; [.22EB.0020.0002] # SYLOTI NAGRI LETTER BO
-A81C ; [.22EC.0020.0002] # SYLOTI NAGRI LETTER BHO
-A81D ; [.22ED.0020.0002] # SYLOTI NAGRI LETTER MO
-A81E ; [.22EE.0020.0002] # SYLOTI NAGRI LETTER RO
-A81F ; [.22EF.0020.0002] # SYLOTI NAGRI LETTER LO
-A820 ; [.22F0.0020.0002] # SYLOTI NAGRI LETTER RRO
-A821 ; [.22F1.0020.0002] # SYLOTI NAGRI LETTER SO
-A822 ; [.22F2.0020.0002] # SYLOTI NAGRI LETTER HO
-A823 ; [.22F3.0020.0002] # SYLOTI NAGRI VOWEL SIGN A
-A824 ; [.22F4.0020.0002] # SYLOTI NAGRI VOWEL SIGN I
-A825 ; [.22F5.0020.0002] # SYLOTI NAGRI VOWEL SIGN U
-A826 ; [.22F6.0020.0002] # SYLOTI NAGRI VOWEL SIGN E
-A827 ; [.22F7.0020.0002] # SYLOTI NAGRI VOWEL SIGN OO
-A882 ; [.22F8.0020.0002] # SAURASHTRA LETTER A
-A883 ; [.22F9.0020.0002] # SAURASHTRA LETTER AA
-A884 ; [.22FA.0020.0002] # SAURASHTRA LETTER I
-A885 ; [.22FB.0020.0002] # SAURASHTRA LETTER II
-A886 ; [.22FC.0020.0002] # SAURASHTRA LETTER U
-A887 ; [.22FD.0020.0002] # SAURASHTRA LETTER UU
-A888 ; [.22FE.0020.0002] # SAURASHTRA LETTER VOCALIC R
-A889 ; [.22FF.0020.0002] # SAURASHTRA LETTER VOCALIC RR
-A88A ; [.2300.0020.0002] # SAURASHTRA LETTER VOCALIC L
-A88B ; [.2301.0020.0002] # SAURASHTRA LETTER VOCALIC LL
-A88C ; [.2302.0020.0002] # SAURASHTRA LETTER E
-A88D ; [.2303.0020.0002] # SAURASHTRA LETTER EE
-A88E ; [.2304.0020.0002] # SAURASHTRA LETTER AI
-A88F ; [.2305.0020.0002] # SAURASHTRA LETTER O
-A890 ; [.2306.0020.0002] # SAURASHTRA LETTER OO
-A891 ; [.2307.0020.0002] # SAURASHTRA LETTER AU
-A892 ; [.2308.0020.0002] # SAURASHTRA LETTER KA
-A893 ; [.2309.0020.0002] # SAURASHTRA LETTER KHA
-A894 ; [.230A.0020.0002] # SAURASHTRA LETTER GA
-A895 ; [.230B.0020.0002] # SAURASHTRA LETTER GHA
-A896 ; [.230C.0020.0002] # SAURASHTRA LETTER NGA
-A897 ; [.230D.0020.0002] # SAURASHTRA LETTER CA
-A898 ; [.230E.0020.0002] # SAURASHTRA LETTER CHA
-A899 ; [.230F.0020.0002] # SAURASHTRA LETTER JA
-A89A ; [.2310.0020.0002] # SAURASHTRA LETTER JHA
-A89B ; [.2311.0020.0002] # SAURASHTRA LETTER NYA
-A89C ; [.2312.0020.0002] # SAURASHTRA LETTER TTA
-A89D ; [.2313.0020.0002] # SAURASHTRA LETTER TTHA
-A89E ; [.2314.0020.0002] # SAURASHTRA LETTER DDA
-A89F ; [.2315.0020.0002] # SAURASHTRA LETTER DDHA
-A8A0 ; [.2316.0020.0002] # SAURASHTRA LETTER NNA
-A8A1 ; [.2317.0020.0002] # SAURASHTRA LETTER TA
-A8A2 ; [.2318.0020.0002] # SAURASHTRA LETTER THA
-A8A3 ; [.2319.0020.0002] # SAURASHTRA LETTER DA
-A8A4 ; [.231A.0020.0002] # SAURASHTRA LETTER DHA
-A8A5 ; [.231B.0020.0002] # SAURASHTRA LETTER NA
-A8A6 ; [.231C.0020.0002] # SAURASHTRA LETTER PA
-A8A7 ; [.231D.0020.0002] # SAURASHTRA LETTER PHA
-A8A8 ; [.231E.0020.0002] # SAURASHTRA LETTER BA
-A8A9 ; [.231F.0020.0002] # SAURASHTRA LETTER BHA
-A8AA ; [.2320.0020.0002] # SAURASHTRA LETTER MA
-A8AB ; [.2321.0020.0002] # SAURASHTRA LETTER YA
-A8AC ; [.2322.0020.0002] # SAURASHTRA LETTER RA
-A8AD ; [.2323.0020.0002] # SAURASHTRA LETTER LA
-A8AE ; [.2324.0020.0002] # SAURASHTRA LETTER VA
-A8AF ; [.2325.0020.0002] # SAURASHTRA LETTER SHA
-A8B0 ; [.2326.0020.0002] # SAURASHTRA LETTER SSA
-A8B1 ; [.2327.0020.0002] # SAURASHTRA LETTER SA
-A8B2 ; [.2328.0020.0002] # SAURASHTRA LETTER HA
-A8B3 ; [.2329.0020.0002] # SAURASHTRA LETTER LLA
-A8B4 ; [.232A.0020.0002] # SAURASHTRA CONSONANT SIGN HAARU
-A8B5 ; [.232B.0020.0002] # SAURASHTRA VOWEL SIGN AA
-A8B6 ; [.232C.0020.0002] # SAURASHTRA VOWEL SIGN I
-A8B7 ; [.232D.0020.0002] # SAURASHTRA VOWEL SIGN II
-A8B8 ; [.232E.0020.0002] # SAURASHTRA VOWEL SIGN U
-A8B9 ; [.232F.0020.0002] # SAURASHTRA VOWEL SIGN UU
-A8BA ; [.2330.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC R
-A8BB ; [.2331.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC RR
-A8BC ; [.2332.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC L
-A8BD ; [.2333.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC LL
-A8BE ; [.2334.0020.0002] # SAURASHTRA VOWEL SIGN E
-A8BF ; [.2335.0020.0002] # SAURASHTRA VOWEL SIGN EE
-A8C0 ; [.2336.0020.0002] # SAURASHTRA VOWEL SIGN AI
-A8C1 ; [.2337.0020.0002] # SAURASHTRA VOWEL SIGN O
-A8C2 ; [.2338.0020.0002] # SAURASHTRA VOWEL SIGN OO
-A8C3 ; [.2339.0020.0002] # SAURASHTRA VOWEL SIGN AU
-A8C4 ; [.233A.0020.0002] # SAURASHTRA SIGN VIRAMA
-11083 ; [.233B.0020.0002] # KAITHI LETTER A
-11084 ; [.233C.0020.0002] # KAITHI LETTER AA
-11085 ; [.233D.0020.0002] # KAITHI LETTER I
-11086 ; [.233E.0020.0002] # KAITHI LETTER II
-11087 ; [.233F.0020.0002] # KAITHI LETTER U
-11088 ; [.2340.0020.0002] # KAITHI LETTER UU
-11089 ; [.2341.0020.0002] # KAITHI LETTER E
-1108A ; [.2342.0020.0002] # KAITHI LETTER AI
-1108B ; [.2343.0020.0002] # KAITHI LETTER O
-1108C ; [.2344.0020.0002] # KAITHI LETTER AU
-1108D ; [.2345.0020.0002] # KAITHI LETTER KA
-1108E ; [.2346.0020.0002] # KAITHI LETTER KHA
-1108F ; [.2347.0020.0002] # KAITHI LETTER GA
-11090 ; [.2348.0020.0002] # KAITHI LETTER GHA
-11091 ; [.2349.0020.0002] # KAITHI LETTER NGA
-11092 ; [.234A.0020.0002] # KAITHI LETTER CA
-11093 ; [.234B.0020.0002] # KAITHI LETTER CHA
-11094 ; [.234C.0020.0002] # KAITHI LETTER JA
-11095 ; [.234D.0020.0002] # KAITHI LETTER JHA
-11096 ; [.234E.0020.0002] # KAITHI LETTER NYA
-11097 ; [.234F.0020.0002] # KAITHI LETTER TTA
-11098 ; [.2350.0020.0002] # KAITHI LETTER TTHA
-11099 ; [.2351.0020.0002] # KAITHI LETTER DDA
-1109A ; [.2351.0020.0002][.0000.00B6.0002] # KAITHI LETTER DDDHA
-1109B ; [.2352.0020.0002] # KAITHI LETTER DDHA
-1109C ; [.2352.0020.0002][.0000.00B6.0002] # KAITHI LETTER RHA
-1109D ; [.2353.0020.0002] # KAITHI LETTER NNA
-1109E ; [.2354.0020.0002] # KAITHI LETTER TA
-1109F ; [.2355.0020.0002] # KAITHI LETTER THA
-110A0 ; [.2356.0020.0002] # KAITHI LETTER DA
-110A1 ; [.2357.0020.0002] # KAITHI LETTER DHA
-110A2 ; [.2358.0020.0002] # KAITHI LETTER NA
-110A3 ; [.2359.0020.0002] # KAITHI LETTER PA
-110A4 ; [.235A.0020.0002] # KAITHI LETTER PHA
-110A5 ; [.235B.0020.0002] # KAITHI LETTER BA
-110AB ; [.235B.0020.0002][.0000.00B6.0002] # KAITHI LETTER VA
-110A6 ; [.235C.0020.0002] # KAITHI LETTER BHA
-110A7 ; [.235D.0020.0002] # KAITHI LETTER MA
-110A8 ; [.235E.0020.0002] # KAITHI LETTER YA
-110A9 ; [.235F.0020.0002] # KAITHI LETTER RA
-110AA ; [.2360.0020.0002] # KAITHI LETTER LA
-110AC ; [.2361.0020.0002] # KAITHI LETTER SHA
-110AD ; [.2362.0020.0002] # KAITHI LETTER SSA
-110AE ; [.2363.0020.0002] # KAITHI LETTER SA
-110AF ; [.2364.0020.0002] # KAITHI LETTER HA
-110B0 ; [.2365.0020.0002] # KAITHI VOWEL SIGN AA
-110B1 ; [.2366.0020.0002] # KAITHI VOWEL SIGN I
-110B2 ; [.2367.0020.0002] # KAITHI VOWEL SIGN II
-110B3 ; [.2368.0020.0002] # KAITHI VOWEL SIGN U
-110B4 ; [.2369.0020.0002] # KAITHI VOWEL SIGN UU
-110B5 ; [.236A.0020.0002] # KAITHI VOWEL SIGN E
-110B6 ; [.236B.0020.0002] # KAITHI VOWEL SIGN AI
-110B7 ; [.236C.0020.0002] # KAITHI VOWEL SIGN O
-110B8 ; [.236D.0020.0002] # KAITHI VOWEL SIGN AU
-110B9 ; [.236E.0020.0002] # KAITHI SIGN VIRAMA
-111C4 ; [.236F.0020.0002] # SHARADA OM
-11183 ; [.2370.0020.0002] # SHARADA LETTER A
-11184 ; [.2371.0020.0002] # SHARADA LETTER AA
-11185 ; [.2372.0020.0002] # SHARADA LETTER I
-11186 ; [.2373.0020.0002] # SHARADA LETTER II
-11187 ; [.2374.0020.0002] # SHARADA LETTER U
-11188 ; [.2375.0020.0002] # SHARADA LETTER UU
-11189 ; [.2376.0020.0002] # SHARADA LETTER VOCALIC R
-1118A ; [.2377.0020.0002] # SHARADA LETTER VOCALIC RR
-1118B ; [.2378.0020.0002] # SHARADA LETTER VOCALIC L
-1118C ; [.2379.0020.0002] # SHARADA LETTER VOCALIC LL
-1118D ; [.237A.0020.0002] # SHARADA LETTER E
-1118E ; [.237B.0020.0002] # SHARADA LETTER AI
-1118F ; [.237C.0020.0002] # SHARADA LETTER O
-11190 ; [.237D.0020.0002] # SHARADA LETTER AU
-11191 ; [.237E.0020.0002] # SHARADA LETTER KA
-11192 ; [.237F.0020.0002] # SHARADA LETTER KHA
-11193 ; [.2380.0020.0002] # SHARADA LETTER GA
-11194 ; [.2381.0020.0002] # SHARADA LETTER GHA
-11195 ; [.2382.0020.0002] # SHARADA LETTER NGA
-11196 ; [.2383.0020.0002] # SHARADA LETTER CA
-11197 ; [.2384.0020.0002] # SHARADA LETTER CHA
-11198 ; [.2385.0020.0002] # SHARADA LETTER JA
-11199 ; [.2386.0020.0002] # SHARADA LETTER JHA
-1119A ; [.2387.0020.0002] # SHARADA LETTER NYA
-1119B ; [.2388.0020.0002] # SHARADA LETTER TTA
-1119C ; [.2389.0020.0002] # SHARADA LETTER TTHA
-1119D ; [.238A.0020.0002] # SHARADA LETTER DDA
-1119E ; [.238B.0020.0002] # SHARADA LETTER DDHA
-1119F ; [.238C.0020.0002] # SHARADA LETTER NNA
-111A0 ; [.238D.0020.0002] # SHARADA LETTER TA
-111A1 ; [.238E.0020.0002] # SHARADA LETTER THA
-111A2 ; [.238F.0020.0002] # SHARADA LETTER DA
-111A3 ; [.2390.0020.0002] # SHARADA LETTER DHA
-111A4 ; [.2391.0020.0002] # SHARADA LETTER NA
-111A5 ; [.2392.0020.0002] # SHARADA LETTER PA
-111A6 ; [.2393.0020.0002] # SHARADA LETTER PHA
-111A7 ; [.2394.0020.0002] # SHARADA LETTER BA
-111A8 ; [.2395.0020.0002] # SHARADA LETTER BHA
-111A9 ; [.2396.0020.0002] # SHARADA LETTER MA
-111AA ; [.2397.0020.0002] # SHARADA LETTER YA
-111AB ; [.2398.0020.0002] # SHARADA LETTER RA
-111AC ; [.2399.0020.0002] # SHARADA LETTER LA
-111AD ; [.239A.0020.0002] # SHARADA LETTER LLA
-111AE ; [.239B.0020.0002] # SHARADA LETTER VA
-111AF ; [.239C.0020.0002] # SHARADA LETTER SHA
-111B0 ; [.239D.0020.0002] # SHARADA LETTER SSA
-111B1 ; [.239E.0020.0002] # SHARADA LETTER SA
-111B2 ; [.239F.0020.0002] # SHARADA LETTER HA
-111B3 ; [.23A0.0020.0002] # SHARADA VOWEL SIGN AA
-111B4 ; [.23A1.0020.0002] # SHARADA VOWEL SIGN I
-111B5 ; [.23A2.0020.0002] # SHARADA VOWEL SIGN II
-111B6 ; [.23A3.0020.0002] # SHARADA VOWEL SIGN U
-111B7 ; [.23A4.0020.0002] # SHARADA VOWEL SIGN UU
-111B8 ; [.23A5.0020.0002] # SHARADA VOWEL SIGN VOCALIC R
-111B9 ; [.23A6.0020.0002] # SHARADA VOWEL SIGN VOCALIC RR
-111BA ; [.23A7.0020.0002] # SHARADA VOWEL SIGN VOCALIC L
-111BB ; [.23A8.0020.0002] # SHARADA VOWEL SIGN VOCALIC LL
-111BC ; [.23A9.0020.0002] # SHARADA VOWEL SIGN E
-111BD ; [.23AA.0020.0002] # SHARADA VOWEL SIGN AI
-111BE ; [.23AB.0020.0002] # SHARADA VOWEL SIGN O
-111BF ; [.23AC.0020.0002] # SHARADA VOWEL SIGN AU
-111C0 ; [.23AD.0020.0002] # SHARADA SIGN VIRAMA
-111C1 ; [.23AE.0020.0002] # SHARADA SIGN AVAGRAHA
-111C2 ; [.23AF.0020.0002] # SHARADA SIGN JIHVAMULIYA
-111C3 ; [.23B0.0020.0002] # SHARADA SIGN UPADHMANIYA
-11680 ; [.23B1.0020.0002] # TAKRI LETTER A
-11681 ; [.23B2.0020.0002] # TAKRI LETTER AA
-11682 ; [.23B3.0020.0002] # TAKRI LETTER I
-11683 ; [.23B4.0020.0002] # TAKRI LETTER II
-11684 ; [.23B5.0020.0002] # TAKRI LETTER U
-11685 ; [.23B6.0020.0002] # TAKRI LETTER UU
-11686 ; [.23B7.0020.0002] # TAKRI LETTER E
-11687 ; [.23B8.0020.0002] # TAKRI LETTER AI
-11688 ; [.23B9.0020.0002] # TAKRI LETTER O
-11689 ; [.23BA.0020.0002] # TAKRI LETTER AU
-116A8 ; [.23BB.0020.0002] # TAKRI LETTER SA
-116A7 ; [.23BC.0020.0002] # TAKRI LETTER SHA
-116A9 ; [.23BD.0020.0002] # TAKRI LETTER HA
-1168A ; [.23BE.0020.0002] # TAKRI LETTER KA
-1168B ; [.23BF.0020.0002] # TAKRI LETTER KHA
-1168C ; [.23C0.0020.0002] # TAKRI LETTER GA
-1168D ; [.23C1.0020.0002] # TAKRI LETTER GHA
-1168E ; [.23C2.0020.0002] # TAKRI LETTER NGA
-1168F ; [.23C3.0020.0002] # TAKRI LETTER CA
-11690 ; [.23C4.0020.0002] # TAKRI LETTER CHA
-11691 ; [.23C5.0020.0002] # TAKRI LETTER JA
-11692 ; [.23C6.0020.0002] # TAKRI LETTER JHA
-11693 ; [.23C7.0020.0002] # TAKRI LETTER NYA
-11694 ; [.23C8.0020.0002] # TAKRI LETTER TTA
-11695 ; [.23C9.0020.0002] # TAKRI LETTER TTHA
-11696 ; [.23CA.0020.0002] # TAKRI LETTER DDA
-11697 ; [.23CB.0020.0002] # TAKRI LETTER DDHA
-11698 ; [.23CC.0020.0002] # TAKRI LETTER NNA
-11699 ; [.23CD.0020.0002] # TAKRI LETTER TA
-1169A ; [.23CE.0020.0002] # TAKRI LETTER THA
-1169B ; [.23CF.0020.0002] # TAKRI LETTER DA
-1169C ; [.23D0.0020.0002] # TAKRI LETTER DHA
-1169D ; [.23D1.0020.0002] # TAKRI LETTER NA
-1169E ; [.23D2.0020.0002] # TAKRI LETTER PA
-1169F ; [.23D3.0020.0002] # TAKRI LETTER PHA
-116A0 ; [.23D4.0020.0002] # TAKRI LETTER BA
-116A1 ; [.23D5.0020.0002] # TAKRI LETTER BHA
-116A2 ; [.23D6.0020.0002] # TAKRI LETTER MA
-116A3 ; [.23D7.0020.0002] # TAKRI LETTER YA
-116A4 ; [.23D8.0020.0002] # TAKRI LETTER RA
-116A5 ; [.23D9.0020.0002] # TAKRI LETTER LA
-116A6 ; [.23DA.0020.0002] # TAKRI LETTER VA
-116AA ; [.23DB.0020.0002] # TAKRI LETTER RRA
-116AD ; [.23DC.0020.0002] # TAKRI VOWEL SIGN AA
-116AE ; [.23DD.0020.0002] # TAKRI VOWEL SIGN I
-116AF ; [.23DE.0020.0002] # TAKRI VOWEL SIGN II
-116B0 ; [.23DF.0020.0002] # TAKRI VOWEL SIGN U
-116B1 ; [.23E0.0020.0002] # TAKRI VOWEL SIGN UU
-116B2 ; [.23E1.0020.0002] # TAKRI VOWEL SIGN E
-116B3 ; [.23E2.0020.0002] # TAKRI VOWEL SIGN AI
-116B4 ; [.23E3.0020.0002] # TAKRI VOWEL SIGN O
-116B5 ; [.23E4.0020.0002] # TAKRI VOWEL SIGN AU
-116B6 ; [.23E5.0020.0002] # TAKRI SIGN VIRAMA
-1B83 ; [.23E6.0020.0002] # SUNDANESE LETTER A
-1BBA ; [.23E6.0020.0004] # SUNDANESE AVAGRAHA
-1B84 ; [.23E7.0020.0002] # SUNDANESE LETTER I
-1B85 ; [.23E8.0020.0002] # SUNDANESE LETTER U
-1B86 ; [.23E9.0020.0002] # SUNDANESE LETTER AE
-1B87 ; [.23EA.0020.0002] # SUNDANESE LETTER O
-1B88 ; [.23EB.0020.0002] # SUNDANESE LETTER E
-1B89 ; [.23EC.0020.0002] # SUNDANESE LETTER EU
-1B8A ; [.23ED.0020.0002] # SUNDANESE LETTER KA
-1BBE ; [.23ED.0020.0019] # SUNDANESE LETTER FINAL K
-1BAE ; [.23EE.0020.0002] # SUNDANESE LETTER KHA
-1B8B ; [.23EF.0020.0002] # SUNDANESE LETTER QA
-1B8C ; [.23F0.0020.0002] # SUNDANESE LETTER GA
-1B8D ; [.23F1.0020.0002] # SUNDANESE LETTER NGA
-1B8E ; [.23F2.0020.0002] # SUNDANESE LETTER CA
-1B8F ; [.23F3.0020.0002] # SUNDANESE LETTER JA
-1B90 ; [.23F4.0020.0002] # SUNDANESE LETTER ZA
-1B91 ; [.23F5.0020.0002] # SUNDANESE LETTER NYA
-1B92 ; [.23F6.0020.0002] # SUNDANESE LETTER TA
-1B93 ; [.23F7.0020.0002] # SUNDANESE LETTER DA
-1B94 ; [.23F8.0020.0002] # SUNDANESE LETTER NA
-1B95 ; [.23F9.0020.0002] # SUNDANESE LETTER PA
-1B96 ; [.23FA.0020.0002] # SUNDANESE LETTER FA
-1B97 ; [.23FB.0020.0002] # SUNDANESE LETTER VA
-1B98 ; [.23FC.0020.0002] # SUNDANESE LETTER BA
-1BBD ; [.23FD.0020.0002] # SUNDANESE LETTER BHA
-1B99 ; [.23FE.0020.0002] # SUNDANESE LETTER MA
-1BBF ; [.23FE.0020.0019] # SUNDANESE LETTER FINAL M
-1BAC ; [.23FF.0020.0002] # SUNDANESE CONSONANT SIGN PASANGAN MA
-1B9A ; [.2400.0020.0002] # SUNDANESE LETTER YA
-1BA1 ; [.2401.0020.0002] # SUNDANESE CONSONANT SIGN PAMINGKAL
-1B9B ; [.2402.0020.0002] # SUNDANESE LETTER RA
-1BA2 ; [.2403.0020.0002] # SUNDANESE CONSONANT SIGN PANYAKRA
-1BBB ; [.2404.0020.0002] # SUNDANESE LETTER REU
-1B9C ; [.2405.0020.0002] # SUNDANESE LETTER LA
-1BA3 ; [.2406.0020.0002] # SUNDANESE CONSONANT SIGN PANYIKU
-1BBC ; [.2407.0020.0002] # SUNDANESE LETTER LEU
-1B9D ; [.2408.0020.0002] # SUNDANESE LETTER WA
-1BAD ; [.2409.0020.0002] # SUNDANESE CONSONANT SIGN PASANGAN WA
-1B9E ; [.240A.0020.0002] # SUNDANESE LETTER SA
-1B9F ; [.240B.0020.0002] # SUNDANESE LETTER XA
-1BAF ; [.240C.0020.0002] # SUNDANESE LETTER SYA
-1BA0 ; [.240D.0020.0002] # SUNDANESE LETTER HA
-1BA4 ; [.240E.0020.0002] # SUNDANESE VOWEL SIGN PANGHULU
-1BA5 ; [.240F.0020.0002] # SUNDANESE VOWEL SIGN PANYUKU
-1BA6 ; [.2410.0020.0002] # SUNDANESE VOWEL SIGN PANAELAENG
-1BA7 ; [.2411.0020.0002] # SUNDANESE VOWEL SIGN PANOLONG
-1BA8 ; [.2412.0020.0002] # SUNDANESE VOWEL SIGN PAMEPET
-1BA9 ; [.2413.0020.0002] # SUNDANESE VOWEL SIGN PANEULEUNG
-1BAA ; [.2414.0020.0002] # SUNDANESE SIGN PAMAAEH
-1BAB ; [.2415.0020.0002] # SUNDANESE SIGN VIRAMA
-11005 ; [.2416.0020.0002] # BRAHMI LETTER A
-11006 ; [.2417.0020.0002] # BRAHMI LETTER AA
-11007 ; [.2418.0020.0002] # BRAHMI LETTER I
-11008 ; [.2419.0020.0002] # BRAHMI LETTER II
-11009 ; [.241A.0020.0002] # BRAHMI LETTER U
-1100A ; [.241B.0020.0002] # BRAHMI LETTER UU
-1100B ; [.241C.0020.0002] # BRAHMI LETTER VOCALIC R
-1100C ; [.241D.0020.0002] # BRAHMI LETTER VOCALIC RR
-1100D ; [.241E.0020.0002] # BRAHMI LETTER VOCALIC L
-1100E ; [.241F.0020.0002] # BRAHMI LETTER VOCALIC LL
-1100F ; [.2420.0020.0002] # BRAHMI LETTER E
-11010 ; [.2421.0020.0002] # BRAHMI LETTER AI
-11011 ; [.2422.0020.0002] # BRAHMI LETTER O
-11012 ; [.2423.0020.0002] # BRAHMI LETTER AU
-11013 ; [.2424.0020.0002] # BRAHMI LETTER KA
-11014 ; [.2425.0020.0002] # BRAHMI LETTER KHA
-11015 ; [.2426.0020.0002] # BRAHMI LETTER GA
-11016 ; [.2427.0020.0002] # BRAHMI LETTER GHA
-11017 ; [.2428.0020.0002] # BRAHMI LETTER NGA
-11018 ; [.2429.0020.0002] # BRAHMI LETTER CA
-11019 ; [.242A.0020.0002] # BRAHMI LETTER CHA
-1101A ; [.242B.0020.0002] # BRAHMI LETTER JA
-1101B ; [.242C.0020.0002] # BRAHMI LETTER JHA
-1101C ; [.242D.0020.0002] # BRAHMI LETTER NYA
-1101D ; [.242E.0020.0002] # BRAHMI LETTER TTA
-1101E ; [.242F.0020.0002] # BRAHMI LETTER TTHA
-1101F ; [.2430.0020.0002] # BRAHMI LETTER DDA
-11020 ; [.2431.0020.0002] # BRAHMI LETTER DDHA
-11021 ; [.2432.0020.0002] # BRAHMI LETTER NNA
-11022 ; [.2433.0020.0002] # BRAHMI LETTER TA
-11023 ; [.2434.0020.0002] # BRAHMI LETTER THA
-11024 ; [.2435.0020.0002] # BRAHMI LETTER DA
-11025 ; [.2436.0020.0002] # BRAHMI LETTER DHA
-11026 ; [.2437.0020.0002] # BRAHMI LETTER NA
-11027 ; [.2438.0020.0002] # BRAHMI LETTER PA
-11028 ; [.2439.0020.0002] # BRAHMI LETTER PHA
-11029 ; [.243A.0020.0002] # BRAHMI LETTER BA
-1102A ; [.243B.0020.0002] # BRAHMI LETTER BHA
-1102B ; [.243C.0020.0002] # BRAHMI LETTER MA
-1102C ; [.243D.0020.0002] # BRAHMI LETTER YA
-1102D ; [.243E.0020.0002] # BRAHMI LETTER RA
-1102E ; [.243F.0020.0002] # BRAHMI LETTER LA
-1102F ; [.2440.0020.0002] # BRAHMI LETTER VA
-11030 ; [.2441.0020.0002] # BRAHMI LETTER SHA
-11031 ; [.2442.0020.0002] # BRAHMI LETTER SSA
-11032 ; [.2443.0020.0002] # BRAHMI LETTER SA
-11033 ; [.2444.0020.0002] # BRAHMI LETTER HA
-11003 ; [.2445.0020.0002] # BRAHMI SIGN JIHVAMULIYA
-11004 ; [.2446.0020.0002] # BRAHMI SIGN UPADHMANIYA
-11034 ; [.2447.0020.0002] # BRAHMI LETTER LLA
-11035 ; [.2448.0020.0002] # BRAHMI LETTER OLD TAMIL LLLA
-11036 ; [.2449.0020.0002] # BRAHMI LETTER OLD TAMIL RRA
-11037 ; [.244A.0020.0002] # BRAHMI LETTER OLD TAMIL NNNA
-11038 ; [.244B.0020.0002] # BRAHMI VOWEL SIGN AA
-11039 ; [.244C.0020.0002] # BRAHMI VOWEL SIGN BHATTIPROLU AA
-1103A ; [.244D.0020.0002] # BRAHMI VOWEL SIGN I
-1103B ; [.244E.0020.0002] # BRAHMI VOWEL SIGN II
-1103C ; [.244F.0020.0002] # BRAHMI VOWEL SIGN U
-1103D ; [.2450.0020.0002] # BRAHMI VOWEL SIGN UU
-1103E ; [.2451.0020.0002] # BRAHMI VOWEL SIGN VOCALIC R
-1103F ; [.2452.0020.0002] # BRAHMI VOWEL SIGN VOCALIC RR
-11040 ; [.2453.0020.0002] # BRAHMI VOWEL SIGN VOCALIC L
-11041 ; [.2454.0020.0002] # BRAHMI VOWEL SIGN VOCALIC LL
-11042 ; [.2455.0020.0002] # BRAHMI VOWEL SIGN E
-11043 ; [.2456.0020.0002] # BRAHMI VOWEL SIGN AI
-11044 ; [.2457.0020.0002] # BRAHMI VOWEL SIGN O
-11045 ; [.2458.0020.0002] # BRAHMI VOWEL SIGN AU
-11046 ; [.2459.0020.0002] # BRAHMI VIRAMA
-10A00 ; [.245A.0020.0002] # KHAROSHTHI LETTER A
-10A01 ; [.245B.0020.0002] # KHAROSHTHI VOWEL SIGN I
-10A02 ; [.245C.0020.0002] # KHAROSHTHI VOWEL SIGN U
-10A03 ; [.245D.0020.0002] # KHAROSHTHI VOWEL SIGN VOCALIC R
-10A05 ; [.245E.0020.0002] # KHAROSHTHI VOWEL SIGN E
-10A06 ; [.245F.0020.0002] # KHAROSHTHI VOWEL SIGN O
-10A0C ; [.2460.0020.0002] # KHAROSHTHI VOWEL LENGTH MARK
-10A10 ; [.2461.0020.0002] # KHAROSHTHI LETTER KA
-10A11 ; [.2462.0020.0002] # KHAROSHTHI LETTER KHA
-10A12 ; [.2463.0020.0002] # KHAROSHTHI LETTER GA
-10A13 ; [.2464.0020.0002] # KHAROSHTHI LETTER GHA
-10A15 ; [.2465.0020.0002] # KHAROSHTHI LETTER CA
-10A16 ; [.2466.0020.0002] # KHAROSHTHI LETTER CHA
-10A17 ; [.2467.0020.0002] # KHAROSHTHI LETTER JA
-10A19 ; [.2468.0020.0002] # KHAROSHTHI LETTER NYA
-10A1A ; [.2469.0020.0002] # KHAROSHTHI LETTER TTA
-10A1B ; [.246A.0020.0002] # KHAROSHTHI LETTER TTHA
-10A1C ; [.246B.0020.0002] # KHAROSHTHI LETTER DDA
-10A1D ; [.246C.0020.0002] # KHAROSHTHI LETTER DDHA
-10A1E ; [.246D.0020.0002] # KHAROSHTHI LETTER NNA
-10A1F ; [.246E.0020.0002] # KHAROSHTHI LETTER TA
-10A20 ; [.246F.0020.0002] # KHAROSHTHI LETTER THA
-10A21 ; [.2470.0020.0002] # KHAROSHTHI LETTER DA
-10A22 ; [.2471.0020.0002] # KHAROSHTHI LETTER DHA
-10A23 ; [.2472.0020.0002] # KHAROSHTHI LETTER NA
-10A24 ; [.2473.0020.0002] # KHAROSHTHI LETTER PA
-10A25 ; [.2474.0020.0002] # KHAROSHTHI LETTER PHA
-10A26 ; [.2475.0020.0002] # KHAROSHTHI LETTER BA
-10A27 ; [.2476.0020.0002] # KHAROSHTHI LETTER BHA
-10A28 ; [.2477.0020.0002] # KHAROSHTHI LETTER MA
-10A29 ; [.2478.0020.0002] # KHAROSHTHI LETTER YA
-10A2A ; [.2479.0020.0002] # KHAROSHTHI LETTER RA
-10A2B ; [.247A.0020.0002] # KHAROSHTHI LETTER LA
-10A2C ; [.247B.0020.0002] # KHAROSHTHI LETTER VA
-10A2D ; [.247C.0020.0002] # KHAROSHTHI LETTER SHA
-10A2E ; [.247D.0020.0002] # KHAROSHTHI LETTER SSA
-10A2F ; [.247E.0020.0002] # KHAROSHTHI LETTER SA
-10A30 ; [.247F.0020.0002] # KHAROSHTHI LETTER ZA
-10A31 ; [.2480.0020.0002] # KHAROSHTHI LETTER HA
-10A32 ; [.2481.0020.0002] # KHAROSHTHI LETTER KKA
-10A33 ; [.2482.0020.0002] # KHAROSHTHI LETTER TTTHA
-10A3F ; [.2483.0020.0002] # KHAROSHTHI VIRAMA
-0E01 ; [.2484.0020.0002] # THAI CHARACTER KO KAI
-0E40 0E01 ; [.2484.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KO KAI>
-0E41 0E01 ; [.2484.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KO KAI>
-0E42 0E01 ; [.2484.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KO KAI>
-0E43 0E01 ; [.2484.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KO KAI>
-0E44 0E01 ; [.2484.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KO KAI>
-0E02 ; [.2485.0020.0002] # THAI CHARACTER KHO KHAI
-0E40 0E02 ; [.2485.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHAI>
-0E41 0E02 ; [.2485.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHAI>
-0E42 0E02 ; [.2485.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHAI>
-0E43 0E02 ; [.2485.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHAI>
-0E44 0E02 ; [.2485.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHAI>
-0E03 ; [.2486.0020.0002] # THAI CHARACTER KHO KHUAT
-0E40 0E03 ; [.2486.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHUAT>
-0E41 0E03 ; [.2486.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHUAT>
-0E42 0E03 ; [.2486.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHUAT>
-0E43 0E03 ; [.2486.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHUAT>
-0E44 0E03 ; [.2486.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHUAT>
-0E04 ; [.2487.0020.0002] # THAI CHARACTER KHO KHWAI
-0E40 0E04 ; [.2487.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHWAI>
-0E41 0E04 ; [.2487.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHWAI>
-0E42 0E04 ; [.2487.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHWAI>
-0E43 0E04 ; [.2487.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHWAI>
-0E44 0E04 ; [.2487.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHWAI>
-0E05 ; [.2488.0020.0002] # THAI CHARACTER KHO KHON
-0E40 0E05 ; [.2488.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHON>
-0E41 0E05 ; [.2488.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHON>
-0E42 0E05 ; [.2488.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHON>
-0E43 0E05 ; [.2488.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHON>
-0E44 0E05 ; [.2488.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHON>
-0E06 ; [.2489.0020.0002] # THAI CHARACTER KHO RAKHANG
-0E40 0E06 ; [.2489.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO RAKHANG>
-0E41 0E06 ; [.2489.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO RAKHANG>
-0E42 0E06 ; [.2489.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO RAKHANG>
-0E43 0E06 ; [.2489.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO RAKHANG>
-0E44 0E06 ; [.2489.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO RAKHANG>
-0E07 ; [.248A.0020.0002] # THAI CHARACTER NGO NGU
-0E40 0E07 ; [.248A.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NGO NGU>
-0E41 0E07 ; [.248A.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NGO NGU>
-0E42 0E07 ; [.248A.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NGO NGU>
-0E43 0E07 ; [.248A.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NGO NGU>
-0E44 0E07 ; [.248A.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NGO NGU>
-0E08 ; [.248B.0020.0002] # THAI CHARACTER CHO CHAN
-0E40 0E08 ; [.248B.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHAN>
-0E41 0E08 ; [.248B.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHAN>
-0E42 0E08 ; [.248B.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHAN>
-0E43 0E08 ; [.248B.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHAN>
-0E44 0E08 ; [.248B.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHAN>
-0E09 ; [.248C.0020.0002] # THAI CHARACTER CHO CHING
-0E40 0E09 ; [.248C.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHING>
-0E41 0E09 ; [.248C.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHING>
-0E42 0E09 ; [.248C.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHING>
-0E43 0E09 ; [.248C.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHING>
-0E44 0E09 ; [.248C.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHING>
-0E0A ; [.248D.0020.0002] # THAI CHARACTER CHO CHANG
-0E40 0E0A ; [.248D.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHANG>
-0E41 0E0A ; [.248D.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHANG>
-0E42 0E0A ; [.248D.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHANG>
-0E43 0E0A ; [.248D.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHANG>
-0E44 0E0A ; [.248D.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHANG>
-0E0B ; [.248E.0020.0002] # THAI CHARACTER SO SO
-0E40 0E0B ; [.248E.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SO>
-0E41 0E0B ; [.248E.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SO>
-0E42 0E0B ; [.248E.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SO>
-0E43 0E0B ; [.248E.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SO>
-0E44 0E0B ; [.248E.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SO>
-0E0C ; [.248F.0020.0002] # THAI CHARACTER CHO CHOE
-0E40 0E0C ; [.248F.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHOE>
-0E41 0E0C ; [.248F.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHOE>
-0E42 0E0C ; [.248F.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHOE>
-0E43 0E0C ; [.248F.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHOE>
-0E44 0E0C ; [.248F.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHOE>
-0E0D ; [.2490.0020.0002] # THAI CHARACTER YO YING
-0E40 0E0D ; [.2490.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER YO YING>
-0E41 0E0D ; [.2490.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER YO YING>
-0E42 0E0D ; [.2490.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER YO YING>
-0E43 0E0D ; [.2490.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER YO YING>
-0E44 0E0D ; [.2490.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER YO YING>
-0E0E ; [.2491.0020.0002] # THAI CHARACTER DO CHADA
-0E40 0E0E ; [.2491.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER DO CHADA>
-0E41 0E0E ; [.2491.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER DO CHADA>
-0E42 0E0E ; [.2491.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER DO CHADA>
-0E43 0E0E ; [.2491.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER DO CHADA>
-0E44 0E0E ; [.2491.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER DO CHADA>
-0E0F ; [.2492.0020.0002] # THAI CHARACTER TO PATAK
-0E40 0E0F ; [.2492.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER TO PATAK>
-0E41 0E0F ; [.2492.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER TO PATAK>
-0E42 0E0F ; [.2492.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER TO PATAK>
-0E43 0E0F ; [.2492.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER TO PATAK>
-0E44 0E0F ; [.2492.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER TO PATAK>
-0E10 ; [.2493.0020.0002] # THAI CHARACTER THO THAN
-0E40 0E10 ; [.2493.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THAN>
-0E41 0E10 ; [.2493.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THAN>
-0E42 0E10 ; [.2493.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THAN>
-0E43 0E10 ; [.2493.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THAN>
-0E44 0E10 ; [.2493.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THAN>
-0E11 ; [.2494.0020.0002] # THAI CHARACTER THO NANGMONTHO
-0E40 0E11 ; [.2494.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO NANGMONTHO>
-0E41 0E11 ; [.2494.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO NANGMONTHO>
-0E42 0E11 ; [.2494.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO NANGMONTHO>
-0E43 0E11 ; [.2494.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO NANGMONTHO>
-0E44 0E11 ; [.2494.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO NANGMONTHO>
-0E12 ; [.2495.0020.0002] # THAI CHARACTER THO PHUTHAO
-0E40 0E12 ; [.2495.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO PHUTHAO>
-0E41 0E12 ; [.2495.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO PHUTHAO>
-0E42 0E12 ; [.2495.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO PHUTHAO>
-0E43 0E12 ; [.2495.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO PHUTHAO>
-0E44 0E12 ; [.2495.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO PHUTHAO>
-0E13 ; [.2496.0020.0002] # THAI CHARACTER NO NEN
-0E40 0E13 ; [.2496.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NO NEN>
-0E41 0E13 ; [.2496.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NO NEN>
-0E42 0E13 ; [.2496.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NO NEN>
-0E43 0E13 ; [.2496.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NO NEN>
-0E44 0E13 ; [.2496.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NO NEN>
-0E14 ; [.2497.0020.0002] # THAI CHARACTER DO DEK
-0E40 0E14 ; [.2497.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER DO DEK>
-0E41 0E14 ; [.2497.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER DO DEK>
-0E42 0E14 ; [.2497.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER DO DEK>
-0E43 0E14 ; [.2497.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER DO DEK>
-0E44 0E14 ; [.2497.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER DO DEK>
-0E15 ; [.2498.0020.0002] # THAI CHARACTER TO TAO
-0E40 0E15 ; [.2498.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER TO TAO>
-0E41 0E15 ; [.2498.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER TO TAO>
-0E42 0E15 ; [.2498.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER TO TAO>
-0E43 0E15 ; [.2498.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER TO TAO>
-0E44 0E15 ; [.2498.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER TO TAO>
-0E16 ; [.2499.0020.0002] # THAI CHARACTER THO THUNG
-0E40 0E16 ; [.2499.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THUNG>
-0E41 0E16 ; [.2499.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THUNG>
-0E42 0E16 ; [.2499.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THUNG>
-0E43 0E16 ; [.2499.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THUNG>
-0E44 0E16 ; [.2499.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THUNG>
-0E17 ; [.249A.0020.0002] # THAI CHARACTER THO THAHAN
-0E40 0E17 ; [.249A.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THAHAN>
-0E41 0E17 ; [.249A.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THAHAN>
-0E42 0E17 ; [.249A.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THAHAN>
-0E43 0E17 ; [.249A.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THAHAN>
-0E44 0E17 ; [.249A.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THAHAN>
-0E18 ; [.249B.0020.0002] # THAI CHARACTER THO THONG
-0E40 0E18 ; [.249B.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THONG>
-0E41 0E18 ; [.249B.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THONG>
-0E42 0E18 ; [.249B.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THONG>
-0E43 0E18 ; [.249B.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THONG>
-0E44 0E18 ; [.249B.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THONG>
-0E19 ; [.249C.0020.0002] # THAI CHARACTER NO NU
-0E40 0E19 ; [.249C.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NO NU>
-0E41 0E19 ; [.249C.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NO NU>
-0E42 0E19 ; [.249C.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NO NU>
-0E43 0E19 ; [.249C.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NO NU>
-0E44 0E19 ; [.249C.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NO NU>
-0E1A ; [.249D.0020.0002] # THAI CHARACTER BO BAIMAI
-0E40 0E1A ; [.249D.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER BO BAIMAI>
-0E41 0E1A ; [.249D.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER BO BAIMAI>
-0E42 0E1A ; [.249D.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER BO BAIMAI>
-0E43 0E1A ; [.249D.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER BO BAIMAI>
-0E44 0E1A ; [.249D.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER BO BAIMAI>
-0E1B ; [.249E.0020.0002] # THAI CHARACTER PO PLA
-0E40 0E1B ; [.249E.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PO PLA>
-0E41 0E1B ; [.249E.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PO PLA>
-0E42 0E1B ; [.249E.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PO PLA>
-0E43 0E1B ; [.249E.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PO PLA>
-0E44 0E1B ; [.249E.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PO PLA>
-0E1C ; [.249F.0020.0002] # THAI CHARACTER PHO PHUNG
-0E40 0E1C ; [.249F.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO PHUNG>
-0E41 0E1C ; [.249F.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO PHUNG>
-0E42 0E1C ; [.249F.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO PHUNG>
-0E43 0E1C ; [.249F.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO PHUNG>
-0E44 0E1C ; [.249F.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO PHUNG>
-0E1D ; [.24A0.0020.0002] # THAI CHARACTER FO FA
-0E40 0E1D ; [.24A0.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER FO FA>
-0E41 0E1D ; [.24A0.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER FO FA>
-0E42 0E1D ; [.24A0.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER FO FA>
-0E43 0E1D ; [.24A0.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER FO FA>
-0E44 0E1D ; [.24A0.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER FO FA>
-0E1E ; [.24A1.0020.0002] # THAI CHARACTER PHO PHAN
-0E40 0E1E ; [.24A1.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO PHAN>
-0E41 0E1E ; [.24A1.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO PHAN>
-0E42 0E1E ; [.24A1.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO PHAN>
-0E43 0E1E ; [.24A1.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO PHAN>
-0E44 0E1E ; [.24A1.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO PHAN>
-0E1F ; [.24A2.0020.0002] # THAI CHARACTER FO FAN
-0E40 0E1F ; [.24A2.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER FO FAN>
-0E41 0E1F ; [.24A2.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER FO FAN>
-0E42 0E1F ; [.24A2.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER FO FAN>
-0E43 0E1F ; [.24A2.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER FO FAN>
-0E44 0E1F ; [.24A2.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER FO FAN>
-0E20 ; [.24A3.0020.0002] # THAI CHARACTER PHO SAMPHAO
-0E40 0E20 ; [.24A3.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO SAMPHAO>
-0E41 0E20 ; [.24A3.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO SAMPHAO>
-0E42 0E20 ; [.24A3.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO SAMPHAO>
-0E43 0E20 ; [.24A3.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO SAMPHAO>
-0E44 0E20 ; [.24A3.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO SAMPHAO>
-0E21 ; [.24A4.0020.0002] # THAI CHARACTER MO MA
-0E40 0E21 ; [.24A4.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER MO MA>
-0E41 0E21 ; [.24A4.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER MO MA>
-0E42 0E21 ; [.24A4.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER MO MA>
-0E43 0E21 ; [.24A4.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER MO MA>
-0E44 0E21 ; [.24A4.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER MO MA>
-0E22 ; [.24A5.0020.0002] # THAI CHARACTER YO YAK
-0E40 0E22 ; [.24A5.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER YO YAK>
-0E41 0E22 ; [.24A5.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER YO YAK>
-0E42 0E22 ; [.24A5.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER YO YAK>
-0E43 0E22 ; [.24A5.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER YO YAK>
-0E44 0E22 ; [.24A5.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER YO YAK>
-0E23 ; [.24A6.0020.0002] # THAI CHARACTER RO RUA
-0E40 0E23 ; [.24A6.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER RO RUA>
-0E41 0E23 ; [.24A6.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER RO RUA>
-0E42 0E23 ; [.24A6.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER RO RUA>
-0E43 0E23 ; [.24A6.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER RO RUA>
-0E44 0E23 ; [.24A6.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER RO RUA>
-0E24 ; [.24A7.0020.0002] # THAI CHARACTER RU
-0E40 0E24 ; [.24A7.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER RU>
-0E41 0E24 ; [.24A7.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER RU>
-0E42 0E24 ; [.24A7.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER RU>
-0E43 0E24 ; [.24A7.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER RU>
-0E44 0E24 ; [.24A7.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER RU>
-0E25 ; [.24A8.0020.0002] # THAI CHARACTER LO LING
-0E40 0E25 ; [.24A8.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LO LING>
-0E41 0E25 ; [.24A8.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LO LING>
-0E42 0E25 ; [.24A8.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LO LING>
-0E43 0E25 ; [.24A8.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LO LING>
-0E44 0E25 ; [.24A8.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LO LING>
-0E26 ; [.24A9.0020.0002] # THAI CHARACTER LU
-0E40 0E26 ; [.24A9.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LU>
-0E41 0E26 ; [.24A9.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LU>
-0E42 0E26 ; [.24A9.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LU>
-0E43 0E26 ; [.24A9.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LU>
-0E44 0E26 ; [.24A9.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LU>
-0E27 ; [.24AA.0020.0002] # THAI CHARACTER WO WAEN
-0E40 0E27 ; [.24AA.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER WO WAEN>
-0E41 0E27 ; [.24AA.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER WO WAEN>
-0E42 0E27 ; [.24AA.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER WO WAEN>
-0E43 0E27 ; [.24AA.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER WO WAEN>
-0E44 0E27 ; [.24AA.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER WO WAEN>
-0E28 ; [.24AB.0020.0002] # THAI CHARACTER SO SALA
-0E40 0E28 ; [.24AB.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SALA>
-0E41 0E28 ; [.24AB.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SALA>
-0E42 0E28 ; [.24AB.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SALA>
-0E43 0E28 ; [.24AB.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SALA>
-0E44 0E28 ; [.24AB.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SALA>
-0E29 ; [.24AC.0020.0002] # THAI CHARACTER SO RUSI
-0E40 0E29 ; [.24AC.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO RUSI>
-0E41 0E29 ; [.24AC.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO RUSI>
-0E42 0E29 ; [.24AC.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO RUSI>
-0E43 0E29 ; [.24AC.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO RUSI>
-0E44 0E29 ; [.24AC.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO RUSI>
-0E2A ; [.24AD.0020.0002] # THAI CHARACTER SO SUA
-0E40 0E2A ; [.24AD.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SUA>
-0E41 0E2A ; [.24AD.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SUA>
-0E42 0E2A ; [.24AD.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SUA>
-0E43 0E2A ; [.24AD.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SUA>
-0E44 0E2A ; [.24AD.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SUA>
-0E2B ; [.24AE.0020.0002] # THAI CHARACTER HO HIP
-0E40 0E2B ; [.24AE.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER HO HIP>
-0E41 0E2B ; [.24AE.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER HO HIP>
-0E42 0E2B ; [.24AE.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER HO HIP>
-0E43 0E2B ; [.24AE.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER HO HIP>
-0E44 0E2B ; [.24AE.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER HO HIP>
-0E2C ; [.24AF.0020.0002] # THAI CHARACTER LO CHULA
-0E40 0E2C ; [.24AF.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LO CHULA>
-0E41 0E2C ; [.24AF.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LO CHULA>
-0E42 0E2C ; [.24AF.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LO CHULA>
-0E43 0E2C ; [.24AF.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LO CHULA>
-0E44 0E2C ; [.24AF.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LO CHULA>
-0E2D ; [.24B0.0020.0002] # THAI CHARACTER O ANG
-0E40 0E2D ; [.24B0.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER O ANG>
-0E41 0E2D ; [.24B0.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER O ANG>
-0E42 0E2D ; [.24B0.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER O ANG>
-0E43 0E2D ; [.24B0.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER O ANG>
-0E44 0E2D ; [.24B0.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER O ANG>
-0E2E ; [.24B1.0020.0002] # THAI CHARACTER HO NOKHUK
-0E40 0E2E ; [.24B1.0020.0002][.24BE.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER HO NOKHUK>
-0E41 0E2E ; [.24B1.0020.0002][.24BF.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER HO NOKHUK>
-0E42 0E2E ; [.24B1.0020.0002][.24C0.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER HO NOKHUK>
-0E43 0E2E ; [.24B1.0020.0002][.24C1.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER HO NOKHUK>
-0E44 0E2E ; [.24B1.0020.0002][.24C2.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER HO NOKHUK>
-0E2F ; [.24B2.0020.0002] # THAI CHARACTER PAIYANNOI
-0E30 ; [.24B3.0020.0002] # THAI CHARACTER SARA A
-0E31 ; [.24B4.0020.0002] # THAI CHARACTER MAI HAN-AKAT
-0E32 ; [.24B5.0020.0002] # THAI CHARACTER SARA AA
-0E33 ; [.24B6.0020.0002] # THAI CHARACTER SARA AM
-0E4D 0E32 ; [.24B6.0020.0002] # THAI CHARACTER SARA AM
-0E34 ; [.24B7.0020.0002] # THAI CHARACTER SARA I
-0E35 ; [.24B8.0020.0002] # THAI CHARACTER SARA II
-0E36 ; [.24B9.0020.0002] # THAI CHARACTER SARA UE
-0E37 ; [.24BA.0020.0002] # THAI CHARACTER SARA UEE
-0E38 ; [.24BB.0020.0002] # THAI CHARACTER SARA U
-0E39 ; [.24BC.0020.0002] # THAI CHARACTER SARA UU
-0E3A ; [.24BD.0020.0002] # THAI CHARACTER PHINTHU
-0E40 ; [.24BE.0020.0002] # THAI CHARACTER SARA E
-0E41 ; [.24BF.0020.0002] # THAI CHARACTER SARA AE
-0E42 ; [.24C0.0020.0002] # THAI CHARACTER SARA O
-0E43 ; [.24C1.0020.0002] # THAI CHARACTER SARA AI MAIMUAN
-0E44 ; [.24C2.0020.0002] # THAI CHARACTER SARA AI MAIMALAI
-0E45 ; [.24C3.0020.0002] # THAI CHARACTER LAKKHANGYAO
-0EDE ; [.24C4.0020.0002] # LAO LETTER KHMU GO
-0EC0 0EDE ; [.24C4.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHMU GO>
-0EC1 0EDE ; [.24C4.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHMU GO>
-0EC2 0EDE ; [.24C4.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHMU GO>
-0EC3 0EDE ; [.24C4.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHMU GO>
-0EC4 0EDE ; [.24C4.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHMU GO>
-0E81 ; [.24C5.0020.0002] # LAO LETTER KO
-0EC0 0E81 ; [.24C5.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KO>
-0EC1 0E81 ; [.24C5.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KO>
-0EC2 0E81 ; [.24C5.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KO>
-0EC3 0E81 ; [.24C5.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KO>
-0EC4 0E81 ; [.24C5.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KO>
-0E82 ; [.24C6.0020.0002] # LAO LETTER KHO SUNG
-0EC0 0E82 ; [.24C6.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHO SUNG>
-0EC1 0E82 ; [.24C6.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHO SUNG>
-0EC2 0E82 ; [.24C6.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHO SUNG>
-0EC3 0E82 ; [.24C6.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHO SUNG>
-0EC4 0E82 ; [.24C6.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHO SUNG>
-0E84 ; [.24C7.0020.0002] # LAO LETTER KHO TAM
-0EC0 0E84 ; [.24C7.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHO TAM>
-0EC1 0E84 ; [.24C7.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHO TAM>
-0EC2 0E84 ; [.24C7.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHO TAM>
-0EC3 0E84 ; [.24C7.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHO TAM>
-0EC4 0E84 ; [.24C7.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHO TAM>
-0E87 ; [.24C8.0020.0002] # LAO LETTER NGO
-0EC0 0E87 ; [.24C8.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NGO>
-0EC1 0E87 ; [.24C8.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NGO>
-0EC2 0E87 ; [.24C8.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NGO>
-0EC3 0E87 ; [.24C8.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NGO>
-0EC4 0E87 ; [.24C8.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NGO>
-0E88 ; [.24C9.0020.0002] # LAO LETTER CO
-0EC0 0E88 ; [.24C9.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER CO>
-0EC1 0E88 ; [.24C9.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER CO>
-0EC2 0E88 ; [.24C9.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER CO>
-0EC3 0E88 ; [.24C9.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER CO>
-0EC4 0E88 ; [.24C9.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER CO>
-0EAA ; [.24CA.0020.0002] # LAO LETTER SO SUNG
-0EC0 0EAA ; [.24CA.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER SO SUNG>
-0EC1 0EAA ; [.24CA.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER SO SUNG>
-0EC2 0EAA ; [.24CA.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER SO SUNG>
-0EC3 0EAA ; [.24CA.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER SO SUNG>
-0EC4 0EAA ; [.24CA.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER SO SUNG>
-0E8A ; [.24CB.0020.0002] # LAO LETTER SO TAM
-0EC0 0E8A ; [.24CB.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER SO TAM>
-0EC1 0E8A ; [.24CB.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER SO TAM>
-0EC2 0E8A ; [.24CB.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER SO TAM>
-0EC3 0E8A ; [.24CB.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER SO TAM>
-0EC4 0E8A ; [.24CB.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER SO TAM>
-0EDF ; [.24CC.0020.0002] # LAO LETTER KHMU NYO
-0EC0 0EDF ; [.24CC.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHMU NYO>
-0EC1 0EDF ; [.24CC.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHMU NYO>
-0EC2 0EDF ; [.24CC.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHMU NYO>
-0EC3 0EDF ; [.24CC.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHMU NYO>
-0EC4 0EDF ; [.24CC.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHMU NYO>
-0E8D ; [.24CD.0020.0002] # LAO LETTER NYO
-0EC0 0E8D ; [.24CD.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NYO>
-0EC1 0E8D ; [.24CD.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NYO>
-0EC2 0E8D ; [.24CD.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NYO>
-0EC3 0E8D ; [.24CD.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NYO>
-0EC4 0E8D ; [.24CD.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NYO>
-0E94 ; [.24CE.0020.0002] # LAO LETTER DO
-0EC0 0E94 ; [.24CE.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER DO>
-0EC1 0E94 ; [.24CE.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER DO>
-0EC2 0E94 ; [.24CE.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER DO>
-0EC3 0E94 ; [.24CE.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER DO>
-0EC4 0E94 ; [.24CE.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER DO>
-0E95 ; [.24CF.0020.0002] # LAO LETTER TO
-0EC0 0E95 ; [.24CF.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER TO>
-0EC1 0E95 ; [.24CF.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER TO>
-0EC2 0E95 ; [.24CF.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER TO>
-0EC3 0E95 ; [.24CF.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER TO>
-0EC4 0E95 ; [.24CF.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER TO>
-0E96 ; [.24D0.0020.0002] # LAO LETTER THO SUNG
-0EC0 0E96 ; [.24D0.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER THO SUNG>
-0EC1 0E96 ; [.24D0.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER THO SUNG>
-0EC2 0E96 ; [.24D0.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER THO SUNG>
-0EC3 0E96 ; [.24D0.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER THO SUNG>
-0EC4 0E96 ; [.24D0.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER THO SUNG>
-0E97 ; [.24D1.0020.0002] # LAO LETTER THO TAM
-0EC0 0E97 ; [.24D1.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER THO TAM>
-0EC1 0E97 ; [.24D1.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER THO TAM>
-0EC2 0E97 ; [.24D1.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER THO TAM>
-0EC3 0E97 ; [.24D1.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER THO TAM>
-0EC4 0E97 ; [.24D1.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER THO TAM>
-0E99 ; [.24D2.0020.0002] # LAO LETTER NO
-0EC0 0E99 ; [.24D2.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NO>
-0EC1 0E99 ; [.24D2.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NO>
-0EC2 0E99 ; [.24D2.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NO>
-0EC3 0E99 ; [.24D2.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NO>
-0EC4 0E99 ; [.24D2.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NO>
-0E9A ; [.24D3.0020.0002] # LAO LETTER BO
-0EC0 0E9A ; [.24D3.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER BO>
-0EC1 0E9A ; [.24D3.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER BO>
-0EC2 0E9A ; [.24D3.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER BO>
-0EC3 0E9A ; [.24D3.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER BO>
-0EC4 0E9A ; [.24D3.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER BO>
-0E9B ; [.24D4.0020.0002] # LAO LETTER PO
-0EC0 0E9B ; [.24D4.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PO>
-0EC1 0E9B ; [.24D4.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PO>
-0EC2 0E9B ; [.24D4.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PO>
-0EC3 0E9B ; [.24D4.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PO>
-0EC4 0E9B ; [.24D4.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PO>
-0E9C ; [.24D5.0020.0002] # LAO LETTER PHO SUNG
-0EC0 0E9C ; [.24D5.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PHO SUNG>
-0EC1 0E9C ; [.24D5.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PHO SUNG>
-0EC2 0E9C ; [.24D5.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PHO SUNG>
-0EC3 0E9C ; [.24D5.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PHO SUNG>
-0EC4 0E9C ; [.24D5.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PHO SUNG>
-0E9D ; [.24D6.0020.0002] # LAO LETTER FO TAM
-0EC0 0E9D ; [.24D6.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER FO TAM>
-0EC1 0E9D ; [.24D6.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER FO TAM>
-0EC2 0E9D ; [.24D6.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER FO TAM>
-0EC3 0E9D ; [.24D6.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER FO TAM>
-0EC4 0E9D ; [.24D6.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER FO TAM>
-0E9E ; [.24D7.0020.0002] # LAO LETTER PHO TAM
-0EC0 0E9E ; [.24D7.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PHO TAM>
-0EC1 0E9E ; [.24D7.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PHO TAM>
-0EC2 0E9E ; [.24D7.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PHO TAM>
-0EC3 0E9E ; [.24D7.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PHO TAM>
-0EC4 0E9E ; [.24D7.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PHO TAM>
-0E9F ; [.24D8.0020.0002] # LAO LETTER FO SUNG
-0EC0 0E9F ; [.24D8.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER FO SUNG>
-0EC1 0E9F ; [.24D8.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER FO SUNG>
-0EC2 0E9F ; [.24D8.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER FO SUNG>
-0EC3 0E9F ; [.24D8.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER FO SUNG>
-0EC4 0E9F ; [.24D8.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER FO SUNG>
-0EA1 ; [.24D9.0020.0002] # LAO LETTER MO
-0EC0 0EA1 ; [.24D9.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER MO>
-0EC1 0EA1 ; [.24D9.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER MO>
-0EC2 0EA1 ; [.24D9.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER MO>
-0EC3 0EA1 ; [.24D9.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER MO>
-0EC4 0EA1 ; [.24D9.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER MO>
-0EA2 ; [.24DA.0020.0002] # LAO LETTER YO
-0EC0 0EA2 ; [.24DA.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER YO>
-0EC1 0EA2 ; [.24DA.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER YO>
-0EC2 0EA2 ; [.24DA.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER YO>
-0EC3 0EA2 ; [.24DA.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER YO>
-0EC4 0EA2 ; [.24DA.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER YO>
-0EA3 ; [.24DB.0020.0002] # LAO LETTER LO LING
-0EC0 0EA3 ; [.24DB.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER LO LING>
-0EC1 0EA3 ; [.24DB.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER LO LING>
-0EC2 0EA3 ; [.24DB.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER LO LING>
-0EC3 0EA3 ; [.24DB.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER LO LING>
-0EC4 0EA3 ; [.24DB.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER LO LING>
-0EA5 ; [.24DC.0020.0002] # LAO LETTER LO LOOT
-0EC0 0EA5 ; [.24DC.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER LO LOOT>
-0EC1 0EA5 ; [.24DC.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER LO LOOT>
-0EC2 0EA5 ; [.24DC.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER LO LOOT>
-0EC3 0EA5 ; [.24DC.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER LO LOOT>
-0EC4 0EA5 ; [.24DC.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER LO LOOT>
-0EA7 ; [.24DD.0020.0002] # LAO LETTER WO
-0EC0 0EA7 ; [.24DD.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER WO>
-0EC1 0EA7 ; [.24DD.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER WO>
-0EC2 0EA7 ; [.24DD.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER WO>
-0EC3 0EA7 ; [.24DD.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER WO>
-0EC4 0EA7 ; [.24DD.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER WO>
-0EAB ; [.24DE.0020.0002] # LAO LETTER HO SUNG
-0EDC ; [.24DE.0020.0004][.24D2.0020.0004] # LAO HO NO
-0EC0 0EDC ; [.24DE.0020.0004][.24D2.0020.0004][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO HO NO>
-0EC1 0EDC ; [.24DE.0020.0004][.24D2.0020.0004][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO HO NO>
-0EC2 0EDC ; [.24DE.0020.0004][.24D2.0020.0004][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO HO NO>
-0EC3 0EDC ; [.24DE.0020.0004][.24D2.0020.0004][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO HO NO>
-0EC4 0EDC ; [.24DE.0020.0004][.24D2.0020.0004][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO HO NO>
-0EDD ; [.24DE.0020.0004][.24D9.0020.0004] # LAO HO MO
-0EC0 0EDD ; [.24DE.0020.0004][.24D9.0020.0004][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO HO MO>
-0EC1 0EDD ; [.24DE.0020.0004][.24D9.0020.0004][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO HO MO>
-0EC2 0EDD ; [.24DE.0020.0004][.24D9.0020.0004][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO HO MO>
-0EC3 0EDD ; [.24DE.0020.0004][.24D9.0020.0004][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO HO MO>
-0EC4 0EDD ; [.24DE.0020.0004][.24D9.0020.0004][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO HO MO>
-0EC0 0EAB ; [.24DE.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER HO SUNG>
-0EC1 0EAB ; [.24DE.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER HO SUNG>
-0EC2 0EAB ; [.24DE.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER HO SUNG>
-0EC3 0EAB ; [.24DE.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER HO SUNG>
-0EC4 0EAB ; [.24DE.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER HO SUNG>
-0EAD ; [.24DF.0020.0002] # LAO LETTER O
-0EC0 0EAD ; [.24DF.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER O>
-0EC1 0EAD ; [.24DF.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER O>
-0EC2 0EAD ; [.24DF.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER O>
-0EC3 0EAD ; [.24DF.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER O>
-0EC4 0EAD ; [.24DF.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER O>
-0EAE ; [.24E0.0020.0002] # LAO LETTER HO TAM
-0EC0 0EAE ; [.24E0.0020.0002][.24EF.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER HO TAM>
-0EC1 0EAE ; [.24E0.0020.0002][.24F0.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER HO TAM>
-0EC2 0EAE ; [.24E0.0020.0002][.24F1.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER HO TAM>
-0EC3 0EAE ; [.24E0.0020.0002][.24F2.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER HO TAM>
-0EC4 0EAE ; [.24E0.0020.0002][.24F3.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER HO TAM>
-0EAF ; [.24E1.0020.0002] # LAO ELLIPSIS
-0EB0 ; [.24E2.0020.0002] # LAO VOWEL SIGN A
-0EB1 ; [.24E3.0020.0002] # LAO VOWEL SIGN MAI KAN
-0EB2 ; [.24E4.0020.0002] # LAO VOWEL SIGN AA
-0EB3 ; [.24E5.0020.0002] # LAO VOWEL SIGN AM
-0ECD 0EB2 ; [.24E5.0020.0002] # LAO VOWEL SIGN AM
-0EB4 ; [.24E6.0020.0002] # LAO VOWEL SIGN I
-0EB5 ; [.24E7.0020.0002] # LAO VOWEL SIGN II
-0EB6 ; [.24E8.0020.0002] # LAO VOWEL SIGN Y
-0EB7 ; [.24E9.0020.0002] # LAO VOWEL SIGN YY
-0EB8 ; [.24EA.0020.0002] # LAO VOWEL SIGN U
-0EB9 ; [.24EB.0020.0002] # LAO VOWEL SIGN UU
-0EBB ; [.24EC.0020.0002] # LAO VOWEL SIGN MAI KON
-0EBC ; [.24ED.0020.0002] # LAO SEMIVOWEL SIGN LO
-0EBD ; [.24EE.0020.0002] # LAO SEMIVOWEL SIGN NYO
-0EC0 ; [.24EF.0020.0002] # LAO VOWEL SIGN E
-0EC1 ; [.24F0.0020.0002] # LAO VOWEL SIGN EI
-0EC2 ; [.24F1.0020.0002] # LAO VOWEL SIGN O
-0EC3 ; [.24F2.0020.0002] # LAO VOWEL SIGN AY
-0EC4 ; [.24F3.0020.0002] # LAO VOWEL SIGN AI
-AA80 ; [.24F4.0020.0002] # TAI VIET LETTER LOW KO
-AAB5 AA80 ; [.24F4.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KO>
-AAB6 AA80 ; [.24F4.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KO>
-AAB9 AA80 ; [.24F4.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KO>
-AABB AA80 ; [.24F4.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KO>
-AABC AA80 ; [.24F4.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KO>
-AA81 ; [.24F5.0020.0002] # TAI VIET LETTER HIGH KO
-AAB5 AA81 ; [.24F5.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KO>
-AAB6 AA81 ; [.24F5.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KO>
-AAB9 AA81 ; [.24F5.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KO>
-AABB AA81 ; [.24F5.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KO>
-AABC AA81 ; [.24F5.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KO>
-AA82 ; [.24F6.0020.0002] # TAI VIET LETTER LOW KHO
-AAB5 AA82 ; [.24F6.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KHO>
-AAB6 AA82 ; [.24F6.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KHO>
-AAB9 AA82 ; [.24F6.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KHO>
-AABB AA82 ; [.24F6.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KHO>
-AABC AA82 ; [.24F6.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KHO>
-AA83 ; [.24F7.0020.0002] # TAI VIET LETTER HIGH KHO
-AAB5 AA83 ; [.24F7.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KHO>
-AAB6 AA83 ; [.24F7.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KHO>
-AAB9 AA83 ; [.24F7.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KHO>
-AABB AA83 ; [.24F7.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KHO>
-AABC AA83 ; [.24F7.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KHO>
-AA84 ; [.24F8.0020.0002] # TAI VIET LETTER LOW KHHO
-AAB5 AA84 ; [.24F8.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KHHO>
-AAB6 AA84 ; [.24F8.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KHHO>
-AAB9 AA84 ; [.24F8.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KHHO>
-AABB AA84 ; [.24F8.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KHHO>
-AABC AA84 ; [.24F8.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KHHO>
-AA85 ; [.24F9.0020.0002] # TAI VIET LETTER HIGH KHHO
-AAB5 AA85 ; [.24F9.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KHHO>
-AAB6 AA85 ; [.24F9.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KHHO>
-AAB9 AA85 ; [.24F9.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KHHO>
-AABB AA85 ; [.24F9.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KHHO>
-AABC AA85 ; [.24F9.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KHHO>
-AA86 ; [.24FA.0020.0002] # TAI VIET LETTER LOW GO
-AAB5 AA86 ; [.24FA.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW GO>
-AAB6 AA86 ; [.24FA.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW GO>
-AAB9 AA86 ; [.24FA.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW GO>
-AABB AA86 ; [.24FA.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW GO>
-AABC AA86 ; [.24FA.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW GO>
-AA87 ; [.24FB.0020.0002] # TAI VIET LETTER HIGH GO
-AAB5 AA87 ; [.24FB.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH GO>
-AAB6 AA87 ; [.24FB.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH GO>
-AAB9 AA87 ; [.24FB.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH GO>
-AABB AA87 ; [.24FB.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH GO>
-AABC AA87 ; [.24FB.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH GO>
-AA88 ; [.24FC.0020.0002] # TAI VIET LETTER LOW NGO
-AAB5 AA88 ; [.24FC.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NGO>
-AAB6 AA88 ; [.24FC.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NGO>
-AAB9 AA88 ; [.24FC.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NGO>
-AABB AA88 ; [.24FC.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NGO>
-AABC AA88 ; [.24FC.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NGO>
-AA89 ; [.24FD.0020.0002] # TAI VIET LETTER HIGH NGO
-AAB5 AA89 ; [.24FD.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NGO>
-AAB6 AA89 ; [.24FD.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NGO>
-AAB9 AA89 ; [.24FD.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NGO>
-AABB AA89 ; [.24FD.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NGO>
-AABC AA89 ; [.24FD.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NGO>
-AA8A ; [.24FE.0020.0002] # TAI VIET LETTER LOW CO
-AAB5 AA8A ; [.24FE.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW CO>
-AAB6 AA8A ; [.24FE.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW CO>
-AAB9 AA8A ; [.24FE.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW CO>
-AABB AA8A ; [.24FE.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW CO>
-AABC AA8A ; [.24FE.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW CO>
-AA8B ; [.24FF.0020.0002] # TAI VIET LETTER HIGH CO
-AAB5 AA8B ; [.24FF.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH CO>
-AAB6 AA8B ; [.24FF.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH CO>
-AAB9 AA8B ; [.24FF.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH CO>
-AABB AA8B ; [.24FF.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH CO>
-AABC AA8B ; [.24FF.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH CO>
-AA8C ; [.2500.0020.0002] # TAI VIET LETTER LOW CHO
-AAB5 AA8C ; [.2500.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW CHO>
-AAB6 AA8C ; [.2500.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW CHO>
-AAB9 AA8C ; [.2500.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW CHO>
-AABB AA8C ; [.2500.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW CHO>
-AABC AA8C ; [.2500.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW CHO>
-AA8D ; [.2501.0020.0002] # TAI VIET LETTER HIGH CHO
-AAB5 AA8D ; [.2501.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH CHO>
-AAB6 AA8D ; [.2501.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH CHO>
-AAB9 AA8D ; [.2501.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH CHO>
-AABB AA8D ; [.2501.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH CHO>
-AABC AA8D ; [.2501.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH CHO>
-AA8E ; [.2502.0020.0002] # TAI VIET LETTER LOW SO
-AAB5 AA8E ; [.2502.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW SO>
-AAB6 AA8E ; [.2502.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW SO>
-AAB9 AA8E ; [.2502.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW SO>
-AABB AA8E ; [.2502.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW SO>
-AABC AA8E ; [.2502.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW SO>
-AA8F ; [.2503.0020.0002] # TAI VIET LETTER HIGH SO
-AAB5 AA8F ; [.2503.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH SO>
-AAB6 AA8F ; [.2503.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH SO>
-AAB9 AA8F ; [.2503.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH SO>
-AABB AA8F ; [.2503.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH SO>
-AABC AA8F ; [.2503.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH SO>
-AA90 ; [.2504.0020.0002] # TAI VIET LETTER LOW NYO
-AAB5 AA90 ; [.2504.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NYO>
-AAB6 AA90 ; [.2504.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NYO>
-AAB9 AA90 ; [.2504.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NYO>
-AABB AA90 ; [.2504.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NYO>
-AABC AA90 ; [.2504.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NYO>
-AA91 ; [.2505.0020.0002] # TAI VIET LETTER HIGH NYO
-AAB5 AA91 ; [.2505.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NYO>
-AAB6 AA91 ; [.2505.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NYO>
-AAB9 AA91 ; [.2505.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NYO>
-AABB AA91 ; [.2505.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NYO>
-AABC AA91 ; [.2505.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NYO>
-AA92 ; [.2506.0020.0002] # TAI VIET LETTER LOW DO
-AAB5 AA92 ; [.2506.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW DO>
-AAB6 AA92 ; [.2506.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW DO>
-AAB9 AA92 ; [.2506.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW DO>
-AABB AA92 ; [.2506.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW DO>
-AABC AA92 ; [.2506.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW DO>
-AA93 ; [.2507.0020.0002] # TAI VIET LETTER HIGH DO
-AAB5 AA93 ; [.2507.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH DO>
-AAB6 AA93 ; [.2507.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH DO>
-AAB9 AA93 ; [.2507.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH DO>
-AABB AA93 ; [.2507.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH DO>
-AABC AA93 ; [.2507.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH DO>
-AA94 ; [.2508.0020.0002] # TAI VIET LETTER LOW TO
-AAB5 AA94 ; [.2508.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW TO>
-AAB6 AA94 ; [.2508.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW TO>
-AAB9 AA94 ; [.2508.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW TO>
-AABB AA94 ; [.2508.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW TO>
-AABC AA94 ; [.2508.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW TO>
-AA95 ; [.2509.0020.0002] # TAI VIET LETTER HIGH TO
-AAB5 AA95 ; [.2509.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH TO>
-AAB6 AA95 ; [.2509.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH TO>
-AAB9 AA95 ; [.2509.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH TO>
-AABB AA95 ; [.2509.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH TO>
-AABC AA95 ; [.2509.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH TO>
-AA96 ; [.250A.0020.0002] # TAI VIET LETTER LOW THO
-AAB5 AA96 ; [.250A.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW THO>
-AAB6 AA96 ; [.250A.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW THO>
-AAB9 AA96 ; [.250A.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW THO>
-AABB AA96 ; [.250A.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW THO>
-AABC AA96 ; [.250A.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW THO>
-AA97 ; [.250B.0020.0002] # TAI VIET LETTER HIGH THO
-AAB5 AA97 ; [.250B.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH THO>
-AAB6 AA97 ; [.250B.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH THO>
-AAB9 AA97 ; [.250B.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH THO>
-AABB AA97 ; [.250B.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH THO>
-AABC AA97 ; [.250B.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH THO>
-AA98 ; [.250C.0020.0002] # TAI VIET LETTER LOW NO
-AAB5 AA98 ; [.250C.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NO>
-AAB6 AA98 ; [.250C.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NO>
-AAB9 AA98 ; [.250C.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NO>
-AABB AA98 ; [.250C.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NO>
-AABC AA98 ; [.250C.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NO>
-AA99 ; [.250D.0020.0002] # TAI VIET LETTER HIGH NO
-AAB5 AA99 ; [.250D.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NO>
-AAB6 AA99 ; [.250D.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NO>
-AAB9 AA99 ; [.250D.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NO>
-AABB AA99 ; [.250D.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NO>
-AABC AA99 ; [.250D.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NO>
-AA9A ; [.250E.0020.0002] # TAI VIET LETTER LOW BO
-AAB5 AA9A ; [.250E.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW BO>
-AAB6 AA9A ; [.250E.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW BO>
-AAB9 AA9A ; [.250E.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW BO>
-AABB AA9A ; [.250E.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW BO>
-AABC AA9A ; [.250E.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW BO>
-AA9B ; [.250F.0020.0002] # TAI VIET LETTER HIGH BO
-AAB5 AA9B ; [.250F.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH BO>
-AAB6 AA9B ; [.250F.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH BO>
-AAB9 AA9B ; [.250F.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH BO>
-AABB AA9B ; [.250F.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH BO>
-AABC AA9B ; [.250F.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH BO>
-AA9C ; [.2510.0020.0002] # TAI VIET LETTER LOW PO
-AAB5 AA9C ; [.2510.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW PO>
-AAB6 AA9C ; [.2510.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW PO>
-AAB9 AA9C ; [.2510.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW PO>
-AABB AA9C ; [.2510.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW PO>
-AABC AA9C ; [.2510.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW PO>
-AA9D ; [.2511.0020.0002] # TAI VIET LETTER HIGH PO
-AAB5 AA9D ; [.2511.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH PO>
-AAB6 AA9D ; [.2511.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH PO>
-AAB9 AA9D ; [.2511.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH PO>
-AABB AA9D ; [.2511.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH PO>
-AABC AA9D ; [.2511.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH PO>
-AA9E ; [.2512.0020.0002] # TAI VIET LETTER LOW PHO
-AAB5 AA9E ; [.2512.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW PHO>
-AAB6 AA9E ; [.2512.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW PHO>
-AAB9 AA9E ; [.2512.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW PHO>
-AABB AA9E ; [.2512.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW PHO>
-AABC AA9E ; [.2512.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW PHO>
-AA9F ; [.2513.0020.0002] # TAI VIET LETTER HIGH PHO
-AAB5 AA9F ; [.2513.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH PHO>
-AAB6 AA9F ; [.2513.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH PHO>
-AAB9 AA9F ; [.2513.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH PHO>
-AABB AA9F ; [.2513.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH PHO>
-AABC AA9F ; [.2513.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH PHO>
-AAA0 ; [.2514.0020.0002] # TAI VIET LETTER LOW FO
-AAB5 AAA0 ; [.2514.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW FO>
-AAB6 AAA0 ; [.2514.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW FO>
-AAB9 AAA0 ; [.2514.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW FO>
-AABB AAA0 ; [.2514.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW FO>
-AABC AAA0 ; [.2514.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW FO>
-AAA1 ; [.2515.0020.0002] # TAI VIET LETTER HIGH FO
-AAB5 AAA1 ; [.2515.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH FO>
-AAB6 AAA1 ; [.2515.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH FO>
-AAB9 AAA1 ; [.2515.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH FO>
-AABB AAA1 ; [.2515.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH FO>
-AABC AAA1 ; [.2515.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH FO>
-AAA2 ; [.2516.0020.0002] # TAI VIET LETTER LOW MO
-AAB5 AAA2 ; [.2516.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW MO>
-AAB6 AAA2 ; [.2516.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW MO>
-AAB9 AAA2 ; [.2516.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW MO>
-AABB AAA2 ; [.2516.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW MO>
-AABC AAA2 ; [.2516.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW MO>
-AAA3 ; [.2517.0020.0002] # TAI VIET LETTER HIGH MO
-AAB5 AAA3 ; [.2517.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH MO>
-AAB6 AAA3 ; [.2517.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH MO>
-AAB9 AAA3 ; [.2517.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH MO>
-AABB AAA3 ; [.2517.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH MO>
-AABC AAA3 ; [.2517.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH MO>
-AAA4 ; [.2518.0020.0002] # TAI VIET LETTER LOW YO
-AAB5 AAA4 ; [.2518.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW YO>
-AAB6 AAA4 ; [.2518.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW YO>
-AAB9 AAA4 ; [.2518.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW YO>
-AABB AAA4 ; [.2518.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW YO>
-AABC AAA4 ; [.2518.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW YO>
-AAA5 ; [.2519.0020.0002] # TAI VIET LETTER HIGH YO
-AAB5 AAA5 ; [.2519.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH YO>
-AAB6 AAA5 ; [.2519.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH YO>
-AAB9 AAA5 ; [.2519.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH YO>
-AABB AAA5 ; [.2519.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH YO>
-AABC AAA5 ; [.2519.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH YO>
-AAA6 ; [.251A.0020.0002] # TAI VIET LETTER LOW RO
-AAB5 AAA6 ; [.251A.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW RO>
-AAB6 AAA6 ; [.251A.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW RO>
-AAB9 AAA6 ; [.251A.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW RO>
-AABB AAA6 ; [.251A.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW RO>
-AABC AAA6 ; [.251A.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW RO>
-AAA7 ; [.251B.0020.0002] # TAI VIET LETTER HIGH RO
-AAB5 AAA7 ; [.251B.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH RO>
-AAB6 AAA7 ; [.251B.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH RO>
-AAB9 AAA7 ; [.251B.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH RO>
-AABB AAA7 ; [.251B.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH RO>
-AABC AAA7 ; [.251B.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH RO>
-AAA8 ; [.251C.0020.0002] # TAI VIET LETTER LOW LO
-AAB5 AAA8 ; [.251C.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW LO>
-AAB6 AAA8 ; [.251C.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW LO>
-AAB9 AAA8 ; [.251C.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW LO>
-AABB AAA8 ; [.251C.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW LO>
-AABC AAA8 ; [.251C.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW LO>
-AAA9 ; [.251D.0020.0002] # TAI VIET LETTER HIGH LO
-AAB5 AAA9 ; [.251D.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH LO>
-AAB6 AAA9 ; [.251D.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH LO>
-AAB9 AAA9 ; [.251D.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH LO>
-AABB AAA9 ; [.251D.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH LO>
-AABC AAA9 ; [.251D.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH LO>
-AAAA ; [.251E.0020.0002] # TAI VIET LETTER LOW VO
-AAB5 AAAA ; [.251E.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW VO>
-AAB6 AAAA ; [.251E.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW VO>
-AAB9 AAAA ; [.251E.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW VO>
-AABB AAAA ; [.251E.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW VO>
-AABC AAAA ; [.251E.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW VO>
-AAAB ; [.251F.0020.0002] # TAI VIET LETTER HIGH VO
-AAB5 AAAB ; [.251F.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH VO>
-AAB6 AAAB ; [.251F.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH VO>
-AAB9 AAAB ; [.251F.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH VO>
-AABB AAAB ; [.251F.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH VO>
-AABC AAAB ; [.251F.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH VO>
-AAAC ; [.2520.0020.0002] # TAI VIET LETTER LOW HO
-AAB5 AAAC ; [.2520.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW HO>
-AAB6 AAAC ; [.2520.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW HO>
-AAB9 AAAC ; [.2520.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW HO>
-AABB AAAC ; [.2520.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW HO>
-AABC AAAC ; [.2520.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW HO>
-AAAD ; [.2521.0020.0002] # TAI VIET LETTER HIGH HO
-AAB5 AAAD ; [.2521.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH HO>
-AAB6 AAAD ; [.2521.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH HO>
-AAB9 AAAD ; [.2521.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH HO>
-AABB AAAD ; [.2521.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH HO>
-AABC AAAD ; [.2521.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH HO>
-AAAE ; [.2522.0020.0002] # TAI VIET LETTER LOW O
-AAB5 AAAE ; [.2522.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW O>
-AAB6 AAAE ; [.2522.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW O>
-AAB9 AAAE ; [.2522.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW O>
-AABB AAAE ; [.2522.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW O>
-AABC AAAE ; [.2522.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW O>
-AAAF ; [.2523.0020.0002] # TAI VIET LETTER HIGH O
-AAB5 AAAF ; [.2523.0020.0002][.2529.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH O>
-AAB6 AAAF ; [.2523.0020.0002][.252A.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH O>
-AAB9 AAAF ; [.2523.0020.0002][.252D.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH O>
-AABB AAAF ; [.2523.0020.0002][.252F.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH O>
-AABC AAAF ; [.2523.0020.0002][.2530.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH O>
-AAB0 ; [.2524.0020.0002] # TAI VIET MAI KANG
-AAB1 ; [.2525.0020.0002] # TAI VIET VOWEL AA
-AAB2 ; [.2526.0020.0002] # TAI VIET VOWEL I
-AAB3 ; [.2527.0020.0002] # TAI VIET VOWEL UE
-AAB4 ; [.2528.0020.0002] # TAI VIET VOWEL U
-AAB5 ; [.2529.0020.0002] # TAI VIET VOWEL E
-AAB6 ; [.252A.0020.0002] # TAI VIET VOWEL O
-AAB7 ; [.252B.0020.0002] # TAI VIET MAY KHIT
-AAB8 ; [.252C.0020.0002] # TAI VIET VOWEL IA
-AAB9 ; [.252D.0020.0002] # TAI VIET VOWEL UEA
-AABA ; [.252E.0020.0002] # TAI VIET VOWEL UA
-AABB ; [.252F.0020.0002] # TAI VIET VOWEL AUE
-AABC ; [.2530.0020.0002] # TAI VIET VOWEL AY
-AABD ; [.2531.0020.0002] # TAI VIET VOWEL AN
-AABE ; [.2532.0020.0002] # TAI VIET VOWEL AM
-AAC0 ; [.2533.0020.0002] # TAI VIET TONE MAI NUENG
-AAC2 ; [.2534.0020.0002] # TAI VIET TONE MAI SONG
-AADB ; [.2535.0020.0002] # TAI VIET SYMBOL KON
-AADC ; [.2536.0020.0002] # TAI VIET SYMBOL NUENG
-0F40 ; [.2537.0020.0002] # TIBETAN LETTER KA
-0F69 ; [.2537.0020.0002][.2578.0020.0002] # TIBETAN LETTER KSSA
-0F90 ; [.2538.0020.0002] # TIBETAN SUBJOINED LETTER KA
-0FB9 ; [.2538.0020.0002][.2578.0020.0002] # TIBETAN SUBJOINED LETTER KSSA
-0F6B ; [.2539.0020.0002] # TIBETAN LETTER KKA
-0F41 ; [.253A.0020.0002] # TIBETAN LETTER KHA
-0F91 ; [.253B.0020.0002] # TIBETAN SUBJOINED LETTER KHA
-0F42 ; [.253C.0020.0002] # TIBETAN LETTER GA
-0F43 ; [.253C.0020.0002][.257C.0020.0002] # TIBETAN LETTER GHA
-0F92 ; [.253D.0020.0002] # TIBETAN SUBJOINED LETTER GA
-0F93 ; [.253D.0020.0002][.257C.0020.0002] # TIBETAN SUBJOINED LETTER GHA
-0F44 ; [.253E.0020.0002] # TIBETAN LETTER NGA
-0F94 ; [.253F.0020.0002] # TIBETAN SUBJOINED LETTER NGA
-0F45 ; [.2540.0020.0002] # TIBETAN LETTER CA
-0F95 ; [.2541.0020.0002] # TIBETAN SUBJOINED LETTER CA
-0F46 ; [.2542.0020.0002] # TIBETAN LETTER CHA
-0F96 ; [.2543.0020.0002] # TIBETAN SUBJOINED LETTER CHA
-0F47 ; [.2544.0020.0002] # TIBETAN LETTER JA
-0F97 ; [.2545.0020.0002] # TIBETAN SUBJOINED LETTER JA
-0F49 ; [.2546.0020.0002] # TIBETAN LETTER NYA
-0F99 ; [.2547.0020.0002] # TIBETAN SUBJOINED LETTER NYA
-0F4A ; [.2548.0020.0002] # TIBETAN LETTER TTA
-0F9A ; [.2549.0020.0002] # TIBETAN SUBJOINED LETTER TTA
-0F4B ; [.254A.0020.0002] # TIBETAN LETTER TTHA
-0F9B ; [.254B.0020.0002] # TIBETAN SUBJOINED LETTER TTHA
-0F4C ; [.254C.0020.0002] # TIBETAN LETTER DDA
-0F4D ; [.254C.0020.0002][.257C.0020.0002] # TIBETAN LETTER DDHA
-0F9C ; [.254D.0020.0002] # TIBETAN SUBJOINED LETTER DDA
-0F9D ; [.254D.0020.0002][.257C.0020.0002] # TIBETAN SUBJOINED LETTER DDHA
-0F4E ; [.254E.0020.0002] # TIBETAN LETTER NNA
-0F9E ; [.254F.0020.0002] # TIBETAN SUBJOINED LETTER NNA
-0F4F ; [.2550.0020.0002] # TIBETAN LETTER TA
-0F9F ; [.2551.0020.0002] # TIBETAN SUBJOINED LETTER TA
-0F50 ; [.2552.0020.0002] # TIBETAN LETTER THA
-0FA0 ; [.2553.0020.0002] # TIBETAN SUBJOINED LETTER THA
-0F51 ; [.2554.0020.0002] # TIBETAN LETTER DA
-0F52 ; [.2554.0020.0002][.257C.0020.0002] # TIBETAN LETTER DHA
-0FA1 ; [.2555.0020.0002] # TIBETAN SUBJOINED LETTER DA
-0FA2 ; [.2555.0020.0002][.257C.0020.0002] # TIBETAN SUBJOINED LETTER DHA
-0F53 ; [.2556.0020.0002] # TIBETAN LETTER NA
-0FA3 ; [.2557.0020.0002] # TIBETAN SUBJOINED LETTER NA
-0F54 ; [.2558.0020.0002] # TIBETAN LETTER PA
-0FA4 ; [.2559.0020.0002] # TIBETAN SUBJOINED LETTER PA
-0F55 ; [.255A.0020.0002] # TIBETAN LETTER PHA
-0FA5 ; [.255B.0020.0002] # TIBETAN SUBJOINED LETTER PHA
-0F56 ; [.255C.0020.0002] # TIBETAN LETTER BA
-0F57 ; [.255C.0020.0002][.257C.0020.0002] # TIBETAN LETTER BHA
-0FA6 ; [.255D.0020.0002] # TIBETAN SUBJOINED LETTER BA
-0FA7 ; [.255D.0020.0002][.257C.0020.0002] # TIBETAN SUBJOINED LETTER BHA
-0F58 ; [.255E.0020.0002] # TIBETAN LETTER MA
-0FA8 ; [.255F.0020.0002] # TIBETAN SUBJOINED LETTER MA
-0F59 ; [.2560.0020.0002] # TIBETAN LETTER TSA
-0FA9 ; [.2561.0020.0002] # TIBETAN SUBJOINED LETTER TSA
-0F5A ; [.2562.0020.0002] # TIBETAN LETTER TSHA
-0FAA ; [.2563.0020.0002] # TIBETAN SUBJOINED LETTER TSHA
-0F5B ; [.2564.0020.0002] # TIBETAN LETTER DZA
-0F5C ; [.2564.0020.0002][.257C.0020.0002] # TIBETAN LETTER DZHA
-0FAB ; [.2565.0020.0002] # TIBETAN SUBJOINED LETTER DZA
-0FAC ; [.2565.0020.0002][.257C.0020.0002] # TIBETAN SUBJOINED LETTER DZHA
-0F5D ; [.2566.0020.0002] # TIBETAN LETTER WA
-0FAD ; [.2567.0020.0002] # TIBETAN SUBJOINED LETTER WA
-0FBA ; [.2567.0020.0004][.0000.00FD.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM WA
-0F5E ; [.2568.0020.0002] # TIBETAN LETTER ZHA
-0FAE ; [.2569.0020.0002] # TIBETAN SUBJOINED LETTER ZHA
-0F5F ; [.256A.0020.0002] # TIBETAN LETTER ZA
-0FAF ; [.256B.0020.0002] # TIBETAN SUBJOINED LETTER ZA
-0F60 ; [.256C.0020.0002] # TIBETAN LETTER -A
-0FB0 ; [.256D.0020.0002] # TIBETAN SUBJOINED LETTER -A
-0F61 ; [.256E.0020.0002] # TIBETAN LETTER YA
-0FB1 ; [.256F.0020.0002] # TIBETAN SUBJOINED LETTER YA
-0FBB ; [.256F.0020.0004][.0000.00FD.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM YA
-0F62 ; [.2570.0020.0002] # TIBETAN LETTER RA
-0F6A ; [.2570.0020.0004][.0000.00FD.0004] # TIBETAN LETTER FIXED-FORM RA
-0FB2 ; [.2571.0020.0002] # TIBETAN SUBJOINED LETTER RA
-0FBC ; [.2571.0020.0004][.0000.00FD.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM RA
-0F6C ; [.2572.0020.0002] # TIBETAN LETTER RRA
-0F63 ; [.2573.0020.0002] # TIBETAN LETTER LA
-0FB3 ; [.2574.0020.0002] # TIBETAN SUBJOINED LETTER LA
-0F64 ; [.2575.0020.0002] # TIBETAN LETTER SHA
-0FB4 ; [.2576.0020.0002] # TIBETAN SUBJOINED LETTER SHA
-0F65 ; [.2577.0020.0002] # TIBETAN LETTER SSA
-0FB5 ; [.2578.0020.0002] # TIBETAN SUBJOINED LETTER SSA
-0F66 ; [.2579.0020.0002] # TIBETAN LETTER SA
-0FB6 ; [.257A.0020.0002] # TIBETAN SUBJOINED LETTER SA
-0F67 ; [.257B.0020.0002] # TIBETAN LETTER HA
-0FB7 ; [.257C.0020.0002] # TIBETAN SUBJOINED LETTER HA
-0F68 ; [.257D.0020.0002] # TIBETAN LETTER A
-0F00 ; [.257D.0020.0004][.2594.0020.0004][.0000.00B8.0004] # TIBETAN SYLLABLE OM
-0FB8 ; [.257E.0020.0002] # TIBETAN SUBJOINED LETTER A
-0F88 ; [.257F.0020.0002] # TIBETAN SIGN LCE TSA CAN
-0F8D ; [.2580.0020.0002] # TIBETAN SUBJOINED SIGN LCE TSA CAN
-0F89 ; [.2581.0020.0002] # TIBETAN SIGN MCHU CAN
-0F8E ; [.2582.0020.0002] # TIBETAN SUBJOINED SIGN MCHU CAN
-0F8C ; [.2583.0020.0002] # TIBETAN SIGN INVERTED MCHU CAN
-0F8F ; [.2584.0020.0002] # TIBETAN SUBJOINED SIGN INVERTED MCHU CAN
-0F8A ; [.2585.0020.0002] # TIBETAN SIGN GRU CAN RGYINGS
-0F8B ; [.2586.0020.0002] # TIBETAN SIGN GRU MED RGYINGS
-0F71 ; [.2587.0020.0002] # TIBETAN VOWEL SIGN AA
-0F72 ; [.2588.0020.0002] # TIBETAN VOWEL SIGN I
-0F73 ; [.2589.0020.0002] # TIBETAN VOWEL SIGN II
-0F71 0F72 ; [.2589.0020.0002] # TIBETAN VOWEL SIGN II
-0F80 ; [.258A.0020.0002] # TIBETAN VOWEL SIGN REVERSED I
-0F81 ; [.258B.0020.0002] # TIBETAN VOWEL SIGN REVERSED II
-0F71 0F80 ; [.258B.0020.0002] # TIBETAN VOWEL SIGN REVERSED II
-0F74 ; [.258C.0020.0002] # TIBETAN VOWEL SIGN U
-0F75 ; [.258D.0020.0002] # TIBETAN VOWEL SIGN UU
-0F71 0F74 ; [.258D.0020.0002] # TIBETAN VOWEL SIGN UU
-0F76 ; [.258E.0020.0002] # TIBETAN VOWEL SIGN VOCALIC R
-0FB2 0F80 ; [.258E.0020.0002] # TIBETAN VOWEL SIGN VOCALIC R
-0F77 ; [.258F.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
-0FB2 0F71 0F80 ; [.258F.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
-0FB2 0F81 ; [.258F.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
-0F78 ; [.2590.0020.0002] # TIBETAN VOWEL SIGN VOCALIC L
-0FB3 0F80 ; [.2590.0020.0002] # TIBETAN VOWEL SIGN VOCALIC L
-0F79 ; [.2591.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
-0FB3 0F71 0F80 ; [.2591.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
-0FB3 0F81 ; [.2591.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
-0F7A ; [.2592.0020.0002] # TIBETAN VOWEL SIGN E
-0F7B ; [.2593.0020.0002] # TIBETAN VOWEL SIGN EE
-0F7C ; [.2594.0020.0002] # TIBETAN VOWEL SIGN O
-0F7D ; [.2595.0020.0002] # TIBETAN VOWEL SIGN OO
-0F84 ; [.2596.0020.0002] # TIBETAN MARK HALANTA
-1C00 ; [.2597.0020.0002] # LEPCHA LETTER KA
-1C01 ; [.2598.0020.0002] # LEPCHA LETTER KLA
-1C02 ; [.2599.0020.0002] # LEPCHA LETTER KHA
-1C03 ; [.259A.0020.0002] # LEPCHA LETTER GA
-1C04 ; [.259B.0020.0002] # LEPCHA LETTER GLA
-1C05 ; [.259C.0020.0002] # LEPCHA LETTER NGA
-1C06 ; [.259D.0020.0002] # LEPCHA LETTER CA
-1C07 ; [.259E.0020.0002] # LEPCHA LETTER CHA
-1C08 ; [.259F.0020.0002] # LEPCHA LETTER JA
-1C09 ; [.25A0.0020.0002] # LEPCHA LETTER NYA
-1C4D ; [.25A1.0020.0002] # LEPCHA LETTER TTA
-1C4E ; [.25A2.0020.0002] # LEPCHA LETTER TTHA
-1C4F ; [.25A3.0020.0002] # LEPCHA LETTER DDA
-1C0A ; [.25A4.0020.0002] # LEPCHA LETTER TA
-1C0B ; [.25A5.0020.0002] # LEPCHA LETTER THA
-1C0C ; [.25A6.0020.0002] # LEPCHA LETTER DA
-1C0D ; [.25A7.0020.0002] # LEPCHA LETTER NA
-1C0E ; [.25A8.0020.0002] # LEPCHA LETTER PA
-1C0F ; [.25A9.0020.0002] # LEPCHA LETTER PLA
-1C10 ; [.25AA.0020.0002] # LEPCHA LETTER PHA
-1C11 ; [.25AB.0020.0002] # LEPCHA LETTER FA
-1C12 ; [.25AC.0020.0002] # LEPCHA LETTER FLA
-1C13 ; [.25AD.0020.0002] # LEPCHA LETTER BA
-1C14 ; [.25AE.0020.0002] # LEPCHA LETTER BLA
-1C15 ; [.25AF.0020.0002] # LEPCHA LETTER MA
-1C16 ; [.25B0.0020.0002] # LEPCHA LETTER MLA
-1C17 ; [.25B1.0020.0002] # LEPCHA LETTER TSA
-1C18 ; [.25B2.0020.0002] # LEPCHA LETTER TSHA
-1C19 ; [.25B3.0020.0002] # LEPCHA LETTER DZA
-1C1A ; [.25B4.0020.0002] # LEPCHA LETTER YA
-1C24 ; [.25B5.0020.0002] # LEPCHA SUBJOINED LETTER YA
-1C1B ; [.25B6.0020.0002] # LEPCHA LETTER RA
-1C25 ; [.25B7.0020.0002] # LEPCHA SUBJOINED LETTER RA
-1C1C ; [.25B8.0020.0002] # LEPCHA LETTER LA
-1C1D ; [.25B9.0020.0002] # LEPCHA LETTER HA
-1C1E ; [.25BA.0020.0002] # LEPCHA LETTER HLA
-1C1F ; [.25BB.0020.0002] # LEPCHA LETTER VA
-1C20 ; [.25BC.0020.0002] # LEPCHA LETTER SA
-1C21 ; [.25BD.0020.0002] # LEPCHA LETTER SHA
-1C22 ; [.25BE.0020.0002] # LEPCHA LETTER WA
-1C23 ; [.25BF.0020.0002] # LEPCHA LETTER A
-1C36 ; [.25C0.0020.0002] # LEPCHA SIGN RAN
-1C26 ; [.25C1.0020.0002] # LEPCHA VOWEL SIGN AA
-1C27 ; [.25C2.0020.0002] # LEPCHA VOWEL SIGN I
-1C28 ; [.25C3.0020.0002] # LEPCHA VOWEL SIGN O
-1C29 ; [.25C4.0020.0002] # LEPCHA VOWEL SIGN OO
-1C2A ; [.25C5.0020.0002] # LEPCHA VOWEL SIGN U
-1C2B ; [.25C6.0020.0002] # LEPCHA VOWEL SIGN UU
-1C2C ; [.25C7.0020.0002] # LEPCHA VOWEL SIGN E
-1C2D ; [.25C8.0020.0002] # LEPCHA CONSONANT SIGN K
-1C2E ; [.25C9.0020.0002] # LEPCHA CONSONANT SIGN M
-1C2F ; [.25CA.0020.0002] # LEPCHA CONSONANT SIGN L
-1C30 ; [.25CB.0020.0002] # LEPCHA CONSONANT SIGN N
-1C31 ; [.25CC.0020.0002] # LEPCHA CONSONANT SIGN P
-1C32 ; [.25CD.0020.0002] # LEPCHA CONSONANT SIGN R
-1C33 ; [.25CE.0020.0002] # LEPCHA CONSONANT SIGN T
-1C34 ; [.25CF.0020.0002] # LEPCHA CONSONANT SIGN NYIN-DO
-1C35 ; [.25D0.0020.0002] # LEPCHA CONSONANT SIGN KANG
-A840 ; [.25D1.0020.0002] # PHAGS-PA LETTER KA
-A841 ; [.25D2.0020.0002] # PHAGS-PA LETTER KHA
-A842 ; [.25D3.0020.0002] # PHAGS-PA LETTER GA
-A843 ; [.25D4.0020.0002] # PHAGS-PA LETTER NGA
-A844 ; [.25D5.0020.0002] # PHAGS-PA LETTER CA
-A845 ; [.25D6.0020.0002] # PHAGS-PA LETTER CHA
-A846 ; [.25D7.0020.0002] # PHAGS-PA LETTER JA
-A847 ; [.25D8.0020.0002] # PHAGS-PA LETTER NYA
-A869 ; [.25D9.0020.0002] # PHAGS-PA LETTER TTA
-A86A ; [.25DA.0020.0002] # PHAGS-PA LETTER TTHA
-A86B ; [.25DB.0020.0002] # PHAGS-PA LETTER DDA
-A86C ; [.25DC.0020.0002] # PHAGS-PA LETTER NNA
-A848 ; [.25DD.0020.0002] # PHAGS-PA LETTER TA
-A849 ; [.25DE.0020.0002] # PHAGS-PA LETTER THA
-A84A ; [.25DF.0020.0002] # PHAGS-PA LETTER DA
-A84B ; [.25E0.0020.0002] # PHAGS-PA LETTER NA
-A84C ; [.25E1.0020.0002] # PHAGS-PA LETTER PA
-A84D ; [.25E2.0020.0002] # PHAGS-PA LETTER PHA
-A84E ; [.25E3.0020.0002] # PHAGS-PA LETTER BA
-A84F ; [.25E4.0020.0002] # PHAGS-PA LETTER MA
-A850 ; [.25E5.0020.0002] # PHAGS-PA LETTER TSA
-A851 ; [.25E6.0020.0002] # PHAGS-PA LETTER TSHA
-A852 ; [.25E7.0020.0002] # PHAGS-PA LETTER DZA
-A853 ; [.25E8.0020.0002] # PHAGS-PA LETTER WA
-A867 ; [.25E9.0020.0002] # PHAGS-PA SUBJOINED LETTER WA
-A854 ; [.25EA.0020.0002] # PHAGS-PA LETTER ZHA
-A855 ; [.25EB.0020.0002] # PHAGS-PA LETTER ZA
-A856 ; [.25EC.0020.0002] # PHAGS-PA LETTER SMALL A
-A857 ; [.25ED.0020.0002] # PHAGS-PA LETTER YA
-A868 ; [.25EE.0020.0002] # PHAGS-PA SUBJOINED LETTER YA
-A86D ; [.25EF.0020.0002] # PHAGS-PA LETTER ALTERNATE YA
-A858 ; [.25F0.0020.0002] # PHAGS-PA LETTER RA
-A871 ; [.25F1.0020.0002] # PHAGS-PA SUBJOINED LETTER RA
-A872 ; [.25F2.0020.0002] # PHAGS-PA SUPERFIXED LETTER RA
-A859 ; [.25F3.0020.0002] # PHAGS-PA LETTER LA
-A85A ; [.25F4.0020.0002] # PHAGS-PA LETTER SHA
-A86E ; [.25F5.0020.0002] # PHAGS-PA LETTER VOICELESS SHA
-A85B ; [.25F6.0020.0002] # PHAGS-PA LETTER SA
-A85C ; [.25F7.0020.0002] # PHAGS-PA LETTER HA
-A86F ; [.25F8.0020.0002] # PHAGS-PA LETTER VOICED HA
-A870 ; [.25F9.0020.0002] # PHAGS-PA LETTER ASPIRATED FA
-A85D ; [.25FA.0020.0002] # PHAGS-PA LETTER A
-A862 ; [.25FB.0020.0002] # PHAGS-PA LETTER QA
-A863 ; [.25FC.0020.0002] # PHAGS-PA LETTER XA
-A864 ; [.25FD.0020.0002] # PHAGS-PA LETTER FA
-A865 ; [.25FE.0020.0002] # PHAGS-PA LETTER GGA
-A85E ; [.25FF.0020.0002] # PHAGS-PA LETTER I
-A85F ; [.2600.0020.0002] # PHAGS-PA LETTER U
-A860 ; [.2601.0020.0002] # PHAGS-PA LETTER E
-A861 ; [.2602.0020.0002] # PHAGS-PA LETTER O
-A866 ; [.2603.0020.0002] # PHAGS-PA LETTER EE
-A873 ; [.2604.0020.0002] # PHAGS-PA LETTER CANDRABINDU
-1900 ; [.2605.0020.0002] # LIMBU VOWEL-CARRIER LETTER
-1901 ; [.2606.0020.0002] # LIMBU LETTER KA
-1902 ; [.2607.0020.0002] # LIMBU LETTER KHA
-1903 ; [.2608.0020.0002] # LIMBU LETTER GA
-1904 ; [.2609.0020.0002] # LIMBU LETTER GHA
-1905 ; [.260A.0020.0002] # LIMBU LETTER NGA
-1906 ; [.260B.0020.0002] # LIMBU LETTER CA
-1907 ; [.260C.0020.0002] # LIMBU LETTER CHA
-1908 ; [.260D.0020.0002] # LIMBU LETTER JA
-1909 ; [.260E.0020.0002] # LIMBU LETTER JHA
-190A ; [.260F.0020.0002] # LIMBU LETTER YAN
-190B ; [.2610.0020.0002] # LIMBU LETTER TA
-190C ; [.2611.0020.0002] # LIMBU LETTER THA
-190D ; [.2612.0020.0002] # LIMBU LETTER DA
-190E ; [.2613.0020.0002] # LIMBU LETTER DHA
-190F ; [.2614.0020.0002] # LIMBU LETTER NA
-1910 ; [.2615.0020.0002] # LIMBU LETTER PA
-1911 ; [.2616.0020.0002] # LIMBU LETTER PHA
-1912 ; [.2617.0020.0002] # LIMBU LETTER BA
-1913 ; [.2618.0020.0002] # LIMBU LETTER BHA
-1914 ; [.2619.0020.0002] # LIMBU LETTER MA
-1915 ; [.261A.0020.0002] # LIMBU LETTER YA
-1916 ; [.261B.0020.0002] # LIMBU LETTER RA
-1917 ; [.261C.0020.0002] # LIMBU LETTER LA
-1918 ; [.261D.0020.0002] # LIMBU LETTER WA
-1919 ; [.261E.0020.0002] # LIMBU LETTER SHA
-191A ; [.261F.0020.0002] # LIMBU LETTER SSA
-191B ; [.2620.0020.0002] # LIMBU LETTER SA
-191C ; [.2621.0020.0002] # LIMBU LETTER HA
-1920 ; [.2622.0020.0002] # LIMBU VOWEL SIGN A
-1921 ; [.2623.0020.0002] # LIMBU VOWEL SIGN I
-1922 ; [.2624.0020.0002] # LIMBU VOWEL SIGN U
-1923 ; [.2625.0020.0002] # LIMBU VOWEL SIGN EE
-1924 ; [.2626.0020.0002] # LIMBU VOWEL SIGN AI
-1925 ; [.2627.0020.0002] # LIMBU VOWEL SIGN OO
-1926 ; [.2628.0020.0002] # LIMBU VOWEL SIGN AU
-1927 ; [.2629.0020.0002] # LIMBU VOWEL SIGN E
-1928 ; [.262A.0020.0002] # LIMBU VOWEL SIGN O
-1929 ; [.262B.0020.0002] # LIMBU SUBJOINED LETTER YA
-192A ; [.262C.0020.0002] # LIMBU SUBJOINED LETTER RA
-192B ; [.262D.0020.0002] # LIMBU SUBJOINED LETTER WA
-1930 ; [.262E.0020.0002] # LIMBU SMALL LETTER KA
-1931 ; [.262F.0020.0002] # LIMBU SMALL LETTER NGA
-1932 ; [.2630.0020.0002] # LIMBU SMALL LETTER ANUSVARA
-1933 ; [.2631.0020.0002] # LIMBU SMALL LETTER TA
-1934 ; [.2632.0020.0002] # LIMBU SMALL LETTER NA
-1935 ; [.2633.0020.0002] # LIMBU SMALL LETTER PA
-1936 ; [.2634.0020.0002] # LIMBU SMALL LETTER MA
-1937 ; [.2635.0020.0002] # LIMBU SMALL LETTER RA
-1938 ; [.2636.0020.0002] # LIMBU SMALL LETTER LA
-1700 ; [.2637.0020.0002] # TAGALOG LETTER A
-1701 ; [.2638.0020.0002] # TAGALOG LETTER I
-1702 ; [.2639.0020.0002] # TAGALOG LETTER U
-1703 ; [.263A.0020.0002] # TAGALOG LETTER KA
-1704 ; [.263B.0020.0002] # TAGALOG LETTER GA
-1705 ; [.263C.0020.0002] # TAGALOG LETTER NGA
-1706 ; [.263D.0020.0002] # TAGALOG LETTER TA
-1707 ; [.263E.0020.0002] # TAGALOG LETTER DA
-1708 ; [.263F.0020.0002] # TAGALOG LETTER NA
-1709 ; [.2640.0020.0002] # TAGALOG LETTER PA
-170A ; [.2641.0020.0002] # TAGALOG LETTER BA
-170B ; [.2642.0020.0002] # TAGALOG LETTER MA
-170C ; [.2643.0020.0002] # TAGALOG LETTER YA
-170E ; [.2644.0020.0002] # TAGALOG LETTER LA
-170F ; [.2645.0020.0002] # TAGALOG LETTER WA
-1710 ; [.2646.0020.0002] # TAGALOG LETTER SA
-1711 ; [.2647.0020.0002] # TAGALOG LETTER HA
-1712 ; [.2648.0020.0002] # TAGALOG VOWEL SIGN I
-1713 ; [.2649.0020.0002] # TAGALOG VOWEL SIGN U
-1714 ; [.264A.0020.0002] # TAGALOG SIGN VIRAMA
-1720 ; [.264B.0020.0002] # HANUNOO LETTER A
-1721 ; [.264C.0020.0002] # HANUNOO LETTER I
-1722 ; [.264D.0020.0002] # HANUNOO LETTER U
-1723 ; [.264E.0020.0002] # HANUNOO LETTER KA
-1724 ; [.264F.0020.0002] # HANUNOO LETTER GA
-1725 ; [.2650.0020.0002] # HANUNOO LETTER NGA
-1726 ; [.2651.0020.0002] # HANUNOO LETTER TA
-1727 ; [.2652.0020.0002] # HANUNOO LETTER DA
-1728 ; [.2653.0020.0002] # HANUNOO LETTER NA
-1729 ; [.2654.0020.0002] # HANUNOO LETTER PA
-172A ; [.2655.0020.0002] # HANUNOO LETTER BA
-172B ; [.2656.0020.0002] # HANUNOO LETTER MA
-172C ; [.2657.0020.0002] # HANUNOO LETTER YA
-172D ; [.2658.0020.0002] # HANUNOO LETTER RA
-172E ; [.2659.0020.0002] # HANUNOO LETTER LA
-172F ; [.265A.0020.0002] # HANUNOO LETTER WA
-1730 ; [.265B.0020.0002] # HANUNOO LETTER SA
-1731 ; [.265C.0020.0002] # HANUNOO LETTER HA
-1732 ; [.265D.0020.0002] # HANUNOO VOWEL SIGN I
-1733 ; [.265E.0020.0002] # HANUNOO VOWEL SIGN U
-1734 ; [.265F.0020.0002] # HANUNOO SIGN PAMUDPOD
-1740 ; [.2660.0020.0002] # BUHID LETTER A
-1741 ; [.2661.0020.0002] # BUHID LETTER I
-1742 ; [.2662.0020.0002] # BUHID LETTER U
-1743 ; [.2663.0020.0002] # BUHID LETTER KA
-1744 ; [.2664.0020.0002] # BUHID LETTER GA
-1745 ; [.2665.0020.0002] # BUHID LETTER NGA
-1746 ; [.2666.0020.0002] # BUHID LETTER TA
-1747 ; [.2667.0020.0002] # BUHID LETTER DA
-1748 ; [.2668.0020.0002] # BUHID LETTER NA
-1749 ; [.2669.0020.0002] # BUHID LETTER PA
-174A ; [.266A.0020.0002] # BUHID LETTER BA
-174B ; [.266B.0020.0002] # BUHID LETTER MA
-174C ; [.266C.0020.0002] # BUHID LETTER YA
-174D ; [.266D.0020.0002] # BUHID LETTER RA
-174E ; [.266E.0020.0002] # BUHID LETTER LA
-174F ; [.266F.0020.0002] # BUHID LETTER WA
-1750 ; [.2670.0020.0002] # BUHID LETTER SA
-1751 ; [.2671.0020.0002] # BUHID LETTER HA
-1752 ; [.2672.0020.0002] # BUHID VOWEL SIGN I
-1753 ; [.2673.0020.0002] # BUHID VOWEL SIGN U
-1760 ; [.2674.0020.0002] # TAGBANWA LETTER A
-1761 ; [.2675.0020.0002] # TAGBANWA LETTER I
-1762 ; [.2676.0020.0002] # TAGBANWA LETTER U
-1763 ; [.2677.0020.0002] # TAGBANWA LETTER KA
-1764 ; [.2678.0020.0002] # TAGBANWA LETTER GA
-1765 ; [.2679.0020.0002] # TAGBANWA LETTER NGA
-1766 ; [.267A.0020.0002] # TAGBANWA LETTER TA
-1767 ; [.267B.0020.0002] # TAGBANWA LETTER DA
-1768 ; [.267C.0020.0002] # TAGBANWA LETTER NA
-1769 ; [.267D.0020.0002] # TAGBANWA LETTER PA
-176A ; [.267E.0020.0002] # TAGBANWA LETTER BA
-176B ; [.267F.0020.0002] # TAGBANWA LETTER MA
-176C ; [.2680.0020.0002] # TAGBANWA LETTER YA
-176E ; [.2681.0020.0002] # TAGBANWA LETTER LA
-176F ; [.2682.0020.0002] # TAGBANWA LETTER WA
-1770 ; [.2683.0020.0002] # TAGBANWA LETTER SA
-1772 ; [.2684.0020.0002] # TAGBANWA VOWEL SIGN I
-1773 ; [.2685.0020.0002] # TAGBANWA VOWEL SIGN U
-1A00 ; [.2686.0020.0002] # BUGINESE LETTER KA
-1A01 ; [.2687.0020.0002] # BUGINESE LETTER GA
-1A02 ; [.2688.0020.0002] # BUGINESE LETTER NGA
-1A03 ; [.2689.0020.0002] # BUGINESE LETTER NGKA
-1A04 ; [.268A.0020.0002] # BUGINESE LETTER PA
-1A05 ; [.268B.0020.0002] # BUGINESE LETTER BA
-1A06 ; [.268C.0020.0002] # BUGINESE LETTER MA
-1A07 ; [.268D.0020.0002] # BUGINESE LETTER MPA
-1A08 ; [.268E.0020.0002] # BUGINESE LETTER TA
-1A09 ; [.268F.0020.0002] # BUGINESE LETTER DA
-1A0A ; [.2690.0020.0002] # BUGINESE LETTER NA
-1A0B ; [.2691.0020.0002] # BUGINESE LETTER NRA
-1A0C ; [.2692.0020.0002] # BUGINESE LETTER CA
-1A0D ; [.2693.0020.0002] # BUGINESE LETTER JA
-1A0E ; [.2694.0020.0002] # BUGINESE LETTER NYA
-1A0F ; [.2695.0020.0002] # BUGINESE LETTER NYCA
-1A10 ; [.2696.0020.0002] # BUGINESE LETTER YA
-1A11 ; [.2697.0020.0002] # BUGINESE LETTER RA
-1A12 ; [.2698.0020.0002] # BUGINESE LETTER LA
-1A13 ; [.2699.0020.0002] # BUGINESE LETTER VA
-1A14 ; [.269A.0020.0002] # BUGINESE LETTER SA
-1A15 ; [.269B.0020.0002] # BUGINESE LETTER A
-1A16 ; [.269C.0020.0002] # BUGINESE LETTER HA
-1A17 ; [.269D.0020.0002] # BUGINESE VOWEL SIGN I
-1A18 ; [.269E.0020.0002] # BUGINESE VOWEL SIGN U
-1A19 ; [.269F.0020.0002] # BUGINESE VOWEL SIGN E
-1A1A ; [.26A0.0020.0002] # BUGINESE VOWEL SIGN O
-1A1B ; [.26A1.0020.0002] # BUGINESE VOWEL SIGN AE
-1BC0 ; [.26A2.0020.0002] # BATAK LETTER A
-1BC1 ; [.26A2.0020.0004] # BATAK LETTER SIMALUNGUN A
-1BC2 ; [.26A3.0020.0002] # BATAK LETTER HA
-1BC3 ; [.26A3.0020.0004] # BATAK LETTER SIMALUNGUN HA
-1BC4 ; [.26A3.0020.0004] # BATAK LETTER MANDAILING HA
-1BC5 ; [.26A4.0020.0002] # BATAK LETTER BA
-1BC6 ; [.26A4.0020.0004] # BATAK LETTER KARO BA
-1BC7 ; [.26A5.0020.0002] # BATAK LETTER PA
-1BC8 ; [.26A5.0020.0004] # BATAK LETTER SIMALUNGUN PA
-1BC9 ; [.26A6.0020.0002] # BATAK LETTER NA
-1BCA ; [.26A6.0020.0004] # BATAK LETTER MANDAILING NA
-1BCB ; [.26A7.0020.0002] # BATAK LETTER WA
-1BCC ; [.26A7.0020.0004] # BATAK LETTER SIMALUNGUN WA
-1BCD ; [.26A7.0020.0004] # BATAK LETTER PAKPAK WA
-1BCE ; [.26A8.0020.0002] # BATAK LETTER GA
-1BCF ; [.26A8.0020.0004] # BATAK LETTER SIMALUNGUN GA
-1BD0 ; [.26A9.0020.0002] # BATAK LETTER JA
-1BD1 ; [.26AA.0020.0002] # BATAK LETTER DA
-1BD2 ; [.26AB.0020.0002] # BATAK LETTER RA
-1BD3 ; [.26AB.0020.0004] # BATAK LETTER SIMALUNGUN RA
-1BD4 ; [.26AC.0020.0002] # BATAK LETTER MA
-1BD5 ; [.26AC.0020.0004] # BATAK LETTER SIMALUNGUN MA
-1BD6 ; [.26AD.0020.0002] # BATAK LETTER SOUTHERN TA
-1BD7 ; [.26AD.0020.0004] # BATAK LETTER NORTHERN TA
-1BD8 ; [.26AE.0020.0002] # BATAK LETTER SA
-1BD9 ; [.26AE.0020.0004] # BATAK LETTER SIMALUNGUN SA
-1BDA ; [.26AE.0020.0004] # BATAK LETTER MANDAILING SA
-1BDB ; [.26AF.0020.0002] # BATAK LETTER YA
-1BDC ; [.26AF.0020.0004] # BATAK LETTER SIMALUNGUN YA
-1BDD ; [.26B0.0020.0002] # BATAK LETTER NGA
-1BDE ; [.26B1.0020.0002] # BATAK LETTER LA
-1BDF ; [.26B1.0020.0004] # BATAK LETTER SIMALUNGUN LA
-1BE0 ; [.26B2.0020.0002] # BATAK LETTER NYA
-1BE1 ; [.26B3.0020.0002] # BATAK LETTER CA
-1BE2 ; [.26B4.0020.0002] # BATAK LETTER NDA
-1BE3 ; [.26B5.0020.0002] # BATAK LETTER MBA
-1BE4 ; [.26B6.0020.0002] # BATAK LETTER I
-1BE5 ; [.26B7.0020.0002] # BATAK LETTER U
-1BE7 ; [.26B8.0020.0002] # BATAK VOWEL SIGN E
-1BE8 ; [.26B8.0020.0004] # BATAK VOWEL SIGN PAKPAK E
-1BE9 ; [.26B9.0020.0002] # BATAK VOWEL SIGN EE
-1BEA ; [.26BA.0020.0002] # BATAK VOWEL SIGN I
-1BEB ; [.26BA.0020.0004] # BATAK VOWEL SIGN KARO I
-1BEC ; [.26BB.0020.0002] # BATAK VOWEL SIGN O
-1BED ; [.26BB.0020.0004] # BATAK VOWEL SIGN KARO O
-1BEE ; [.26BC.0020.0002] # BATAK VOWEL SIGN U
-1BEF ; [.26BC.0020.0004] # BATAK VOWEL SIGN U FOR SIMALUNGUN SA
-1BF0 ; [.26BD.0020.0002] # BATAK CONSONANT SIGN NG
-1BF1 ; [.26BE.0020.0002] # BATAK CONSONANT SIGN H
-1BF2 ; [.26BF.0020.0002] # BATAK PANGOLAT
-1BF3 ; [.26C0.0020.0002] # BATAK PANONGONAN
-A930 ; [.26C1.0020.0002] # REJANG LETTER KA
-A931 ; [.26C2.0020.0002] # REJANG LETTER GA
-A932 ; [.26C3.0020.0002] # REJANG LETTER NGA
-A933 ; [.26C4.0020.0002] # REJANG LETTER TA
-A934 ; [.26C5.0020.0002] # REJANG LETTER DA
-A935 ; [.26C6.0020.0002] # REJANG LETTER NA
-A936 ; [.26C7.0020.0002] # REJANG LETTER PA
-A937 ; [.26C8.0020.0002] # REJANG LETTER BA
-A938 ; [.26C9.0020.0002] # REJANG LETTER MA
-A939 ; [.26CA.0020.0002] # REJANG LETTER CA
-A93A ; [.26CB.0020.0002] # REJANG LETTER JA
-A93B ; [.26CC.0020.0002] # REJANG LETTER NYA
-A93C ; [.26CD.0020.0002] # REJANG LETTER SA
-A93D ; [.26CE.0020.0002] # REJANG LETTER RA
-A93E ; [.26CF.0020.0002] # REJANG LETTER LA
-A93F ; [.26D0.0020.0002] # REJANG LETTER YA
-A940 ; [.26D1.0020.0002] # REJANG LETTER WA
-A941 ; [.26D2.0020.0002] # REJANG LETTER HA
-A942 ; [.26D3.0020.0002] # REJANG LETTER MBA
-A943 ; [.26D4.0020.0002] # REJANG LETTER NGGA
-A944 ; [.26D5.0020.0002] # REJANG LETTER NDA
-A945 ; [.26D6.0020.0002] # REJANG LETTER NYJA
-A946 ; [.26D7.0020.0002] # REJANG LETTER A
-A947 ; [.26D8.0020.0002] # REJANG VOWEL SIGN I
-A948 ; [.26D9.0020.0002] # REJANG VOWEL SIGN U
-A949 ; [.26DA.0020.0002] # REJANG VOWEL SIGN E
-A94A ; [.26DB.0020.0002] # REJANG VOWEL SIGN AI
-A94B ; [.26DC.0020.0002] # REJANG VOWEL SIGN O
-A94C ; [.26DD.0020.0002] # REJANG VOWEL SIGN AU
-A94D ; [.26DE.0020.0002] # REJANG VOWEL SIGN EU
-A94E ; [.26DF.0020.0002] # REJANG VOWEL SIGN EA
-A94F ; [.26E0.0020.0002] # REJANG CONSONANT SIGN NG
-A950 ; [.26E1.0020.0002] # REJANG CONSONANT SIGN N
-A951 ; [.26E2.0020.0002] # REJANG CONSONANT SIGN R
-A952 ; [.26E3.0020.0002] # REJANG CONSONANT SIGN H
-A953 ; [.26E4.0020.0002] # REJANG VIRAMA
-A90A ; [.26E5.0020.0002] # KAYAH LI LETTER KA
-A90B ; [.26E6.0020.0002] # KAYAH LI LETTER KHA
-A90C ; [.26E7.0020.0002] # KAYAH LI LETTER GA
-A90D ; [.26E8.0020.0002] # KAYAH LI LETTER NGA
-A90E ; [.26E9.0020.0002] # KAYAH LI LETTER SA
-A90F ; [.26EA.0020.0002] # KAYAH LI LETTER SHA
-A910 ; [.26EB.0020.0002] # KAYAH LI LETTER ZA
-A911 ; [.26EC.0020.0002] # KAYAH LI LETTER NYA
-A912 ; [.26ED.0020.0002] # KAYAH LI LETTER TA
-A913 ; [.26EE.0020.0002] # KAYAH LI LETTER HTA
-A914 ; [.26EF.0020.0002] # KAYAH LI LETTER NA
-A915 ; [.26F0.0020.0002] # KAYAH LI LETTER PA
-A916 ; [.26F1.0020.0002] # KAYAH LI LETTER PHA
-A917 ; [.26F2.0020.0002] # KAYAH LI LETTER MA
-A918 ; [.26F3.0020.0002] # KAYAH LI LETTER DA
-A919 ; [.26F4.0020.0002] # KAYAH LI LETTER BA
-A91A ; [.26F5.0020.0002] # KAYAH LI LETTER RA
-A91B ; [.26F6.0020.0002] # KAYAH LI LETTER YA
-A91C ; [.26F7.0020.0002] # KAYAH LI LETTER LA
-A91D ; [.26F8.0020.0002] # KAYAH LI LETTER WA
-A91E ; [.26F9.0020.0002] # KAYAH LI LETTER THA
-A91F ; [.26FA.0020.0002] # KAYAH LI LETTER HA
-A920 ; [.26FB.0020.0002] # KAYAH LI LETTER VA
-A921 ; [.26FC.0020.0002] # KAYAH LI LETTER CA
-A922 ; [.26FD.0020.0002] # KAYAH LI LETTER A
-A923 ; [.26FE.0020.0002] # KAYAH LI LETTER OE
-A924 ; [.26FF.0020.0002] # KAYAH LI LETTER I
-A925 ; [.2700.0020.0002] # KAYAH LI LETTER OO
-A926 ; [.2701.0020.0002] # KAYAH LI VOWEL UE
-A927 ; [.2702.0020.0002] # KAYAH LI VOWEL E
-A928 ; [.2703.0020.0002] # KAYAH LI VOWEL U
-A929 ; [.2704.0020.0002] # KAYAH LI VOWEL EE
-A92A ; [.2705.0020.0002] # KAYAH LI VOWEL O
-1000 ; [.2706.0020.0002] # MYANMAR LETTER KA
-1075 ; [.2707.0020.0002] # MYANMAR LETTER SHAN KA
-1001 ; [.2708.0020.0002] # MYANMAR LETTER KHA
-1076 ; [.2709.0020.0002] # MYANMAR LETTER SHAN KHA
-1002 ; [.270A.0020.0002] # MYANMAR LETTER GA
-1077 ; [.270B.0020.0002] # MYANMAR LETTER SHAN GA
-AA60 ; [.270C.0020.0002] # MYANMAR LETTER KHAMTI GA
-1003 ; [.270D.0020.0002] # MYANMAR LETTER GHA
-1004 ; [.270E.0020.0002] # MYANMAR LETTER NGA
-105A ; [.270F.0020.0002] # MYANMAR LETTER MON NGA
-1005 ; [.2710.0020.0002] # MYANMAR LETTER CA
-1078 ; [.2711.0020.0002] # MYANMAR LETTER SHAN CA
-AA61 ; [.2712.0020.0002] # MYANMAR LETTER KHAMTI CA
-1006 ; [.2713.0020.0002] # MYANMAR LETTER CHA
-AA62 ; [.2714.0020.0002] # MYANMAR LETTER KHAMTI CHA
-1007 ; [.2715.0020.0002] # MYANMAR LETTER JA
-AA63 ; [.2716.0020.0002] # MYANMAR LETTER KHAMTI JA
-1079 ; [.2717.0020.0002] # MYANMAR LETTER SHAN ZA
-AA72 ; [.2718.0020.0002] # MYANMAR LETTER KHAMTI ZA
-1008 ; [.2719.0020.0002] # MYANMAR LETTER JHA
-105B ; [.271A.0020.0002] # MYANMAR LETTER MON JHA
-AA64 ; [.271B.0020.0002] # MYANMAR LETTER KHAMTI JHA
-1061 ; [.271C.0020.0002] # MYANMAR LETTER SGAW KAREN SHA
-1009 ; [.271D.0020.0002] # MYANMAR LETTER NYA
-107A ; [.271E.0020.0002] # MYANMAR LETTER SHAN NYA
-AA65 ; [.271F.0020.0002] # MYANMAR LETTER KHAMTI NYA
-100A ; [.2720.0020.0002] # MYANMAR LETTER NNYA
-100B ; [.2721.0020.0002] # MYANMAR LETTER TTA
-AA66 ; [.2722.0020.0002] # MYANMAR LETTER KHAMTI TTA
-100C ; [.2723.0020.0002] # MYANMAR LETTER TTHA
-AA67 ; [.2724.0020.0002] # MYANMAR LETTER KHAMTI TTHA
-100D ; [.2725.0020.0002] # MYANMAR LETTER DDA
-AA68 ; [.2726.0020.0002] # MYANMAR LETTER KHAMTI DDA
-100E ; [.2727.0020.0002] # MYANMAR LETTER DDHA
-AA69 ; [.2728.0020.0002] # MYANMAR LETTER KHAMTI DDHA
-100F ; [.2729.0020.0002] # MYANMAR LETTER NNA
-106E ; [.272A.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN NNA
-1010 ; [.272B.0020.0002] # MYANMAR LETTER TA
-1011 ; [.272C.0020.0002] # MYANMAR LETTER THA
-1012 ; [.272D.0020.0002] # MYANMAR LETTER DA
-107B ; [.272E.0020.0002] # MYANMAR LETTER SHAN DA
-1013 ; [.272F.0020.0002] # MYANMAR LETTER DHA
-AA6A ; [.2730.0020.0002] # MYANMAR LETTER KHAMTI DHA
-1014 ; [.2731.0020.0002] # MYANMAR LETTER NA
-107C ; [.2732.0020.0002] # MYANMAR LETTER SHAN NA
-AA6B ; [.2733.0020.0002] # MYANMAR LETTER KHAMTI NA
-105E ; [.2734.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL NA
-1015 ; [.2735.0020.0002] # MYANMAR LETTER PA
-1016 ; [.2736.0020.0002] # MYANMAR LETTER PHA
-107D ; [.2737.0020.0002] # MYANMAR LETTER SHAN PHA
-107E ; [.2738.0020.0002] # MYANMAR LETTER SHAN FA
-AA6F ; [.2739.0020.0002] # MYANMAR LETTER KHAMTI FA
-108E ; [.273A.0020.0002] # MYANMAR LETTER RUMAI PALAUNG FA
-1017 ; [.273B.0020.0002] # MYANMAR LETTER BA
-107F ; [.273C.0020.0002] # MYANMAR LETTER SHAN BA
-1018 ; [.273D.0020.0002] # MYANMAR LETTER BHA
-1019 ; [.273E.0020.0002] # MYANMAR LETTER MA
-105F ; [.273F.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL MA
-101A ; [.2740.0020.0002] # MYANMAR LETTER YA
-103B ; [.2741.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL YA
-101B ; [.2742.0020.0002] # MYANMAR LETTER RA
-AA73 ; [.2743.0020.0002] # MYANMAR LETTER KHAMTI RA
-AA7A ; [.2744.0020.0002] # MYANMAR LETTER AITON RA
-103C ; [.2745.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL RA
-101C ; [.2746.0020.0002] # MYANMAR LETTER LA
-1060 ; [.2747.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL LA
-101D ; [.2748.0020.0002] # MYANMAR LETTER WA
-103D ; [.2749.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL WA
-1082 ; [.274A.0020.0002] # MYANMAR CONSONANT SIGN SHAN MEDIAL WA
-1080 ; [.274B.0020.0002] # MYANMAR LETTER SHAN THA
-1050 ; [.274C.0020.0002] # MYANMAR LETTER SHA
-1051 ; [.274D.0020.0002] # MYANMAR LETTER SSA
-1065 ; [.274E.0020.0002] # MYANMAR LETTER WESTERN PWO KAREN THA
-101E ; [.274F.0020.0002] # MYANMAR LETTER SA
-103F ; [.274F.0020.0004][.2786.0020.0004][.274F.0020.0004] # MYANMAR LETTER GREAT SA
-AA6C ; [.2750.0020.0002] # MYANMAR LETTER KHAMTI SA
-101F ; [.2751.0020.0002] # MYANMAR LETTER HA
-1081 ; [.2752.0020.0002] # MYANMAR LETTER SHAN HA
-AA6D ; [.2753.0020.0002] # MYANMAR LETTER KHAMTI HA
-103E ; [.2754.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL HA
-AA6E ; [.2755.0020.0002] # MYANMAR LETTER KHAMTI HHA
-AA71 ; [.2756.0020.0002] # MYANMAR LETTER KHAMTI XA
-1020 ; [.2757.0020.0002] # MYANMAR LETTER LLA
-105C ; [.2758.0020.0002] # MYANMAR LETTER MON BBA
-105D ; [.2759.0020.0002] # MYANMAR LETTER MON BBE
-106F ; [.275A.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN YWA
-1070 ; [.275B.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN GHWA
-1066 ; [.275C.0020.0002] # MYANMAR LETTER WESTERN PWO KAREN PWA
-1021 ; [.275D.0020.0002] # MYANMAR LETTER A
-1022 ; [.275E.0020.0002] # MYANMAR LETTER SHAN A
-1023 ; [.275F.0020.0002] # MYANMAR LETTER I
-1024 ; [.2760.0020.0002] # MYANMAR LETTER II
-1025 ; [.2761.0020.0002] # MYANMAR LETTER U
-1026 ; [.2762.0020.0002] # MYANMAR LETTER UU
-1025 102E ; [.2762.0020.0002] # MYANMAR LETTER UU
-1052 ; [.2763.0020.0002] # MYANMAR LETTER VOCALIC R
-1053 ; [.2764.0020.0002] # MYANMAR LETTER VOCALIC RR
-1054 ; [.2765.0020.0002] # MYANMAR LETTER VOCALIC L
-1055 ; [.2766.0020.0002] # MYANMAR LETTER VOCALIC LL
-1027 ; [.2767.0020.0002] # MYANMAR LETTER E
-1028 ; [.2768.0020.0002] # MYANMAR LETTER MON E
-1029 ; [.2769.0020.0002] # MYANMAR LETTER O
-102A ; [.276A.0020.0002] # MYANMAR LETTER AU
-102C ; [.276B.0020.0002] # MYANMAR VOWEL SIGN AA
-102B ; [.276B.0020.0004] # MYANMAR VOWEL SIGN TALL AA
-1083 ; [.276C.0020.0002] # MYANMAR VOWEL SIGN SHAN AA
-1072 ; [.276D.0020.0002] # MYANMAR VOWEL SIGN KAYAH OE
-109C ; [.276E.0020.0002] # MYANMAR VOWEL SIGN AITON A
-102D ; [.276F.0020.0002] # MYANMAR VOWEL SIGN I
-1071 ; [.2770.0020.0002] # MYANMAR VOWEL SIGN GEBA KAREN I
-102E ; [.2771.0020.0002] # MYANMAR VOWEL SIGN II
-1033 ; [.2772.0020.0002] # MYANMAR VOWEL SIGN MON II
-102F ; [.2773.0020.0002] # MYANMAR VOWEL SIGN U
-1073 ; [.2774.0020.0002] # MYANMAR VOWEL SIGN KAYAH U
-1074 ; [.2775.0020.0002] # MYANMAR VOWEL SIGN KAYAH EE
-1030 ; [.2776.0020.0002] # MYANMAR VOWEL SIGN UU
-1056 ; [.2777.0020.0002] # MYANMAR VOWEL SIGN VOCALIC R
-1057 ; [.2778.0020.0002] # MYANMAR VOWEL SIGN VOCALIC RR
-1058 ; [.2779.0020.0002] # MYANMAR VOWEL SIGN VOCALIC L
-1059 ; [.277A.0020.0002] # MYANMAR VOWEL SIGN VOCALIC LL
-1031 ; [.277B.0020.0002] # MYANMAR VOWEL SIGN E
-1084 ; [.277C.0020.0002] # MYANMAR VOWEL SIGN SHAN E
-1035 ; [.277D.0020.0002] # MYANMAR VOWEL SIGN E ABOVE
-1085 ; [.277E.0020.0002] # MYANMAR VOWEL SIGN SHAN E ABOVE
-1032 ; [.277F.0020.0002] # MYANMAR VOWEL SIGN AI
-109D ; [.2780.0020.0002] # MYANMAR VOWEL SIGN AITON AI
-1034 ; [.2781.0020.0002] # MYANMAR VOWEL SIGN MON O
-1062 ; [.2782.0020.0002] # MYANMAR VOWEL SIGN SGAW KAREN EU
-1067 ; [.2783.0020.0002] # MYANMAR VOWEL SIGN WESTERN PWO KAREN EU
-1068 ; [.2784.0020.0002] # MYANMAR VOWEL SIGN WESTERN PWO KAREN UE
-1086 ; [.2785.0020.0002] # MYANMAR VOWEL SIGN SHAN FINAL Y
-1039 ; [.2786.0020.0002] # MYANMAR SIGN VIRAMA
-103A ; [.2787.0020.0002] # MYANMAR SIGN ASAT
-1063 ; [.2788.0020.0002] # MYANMAR TONE MARK SGAW KAREN HATHI
-1064 ; [.2789.0020.0002] # MYANMAR TONE MARK SGAW KAREN KE PHO
-1069 ; [.278A.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-1
-106A ; [.278B.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-2
-106B ; [.278C.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-3
-106C ; [.278D.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-4
-106D ; [.278E.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-5
-1087 ; [.278F.0020.0002] # MYANMAR SIGN SHAN TONE-2
-108B ; [.2790.0020.0002] # MYANMAR SIGN SHAN COUNCIL TONE-2
-1088 ; [.2791.0020.0002] # MYANMAR SIGN SHAN TONE-3
-108C ; [.2792.0020.0002] # MYANMAR SIGN SHAN COUNCIL TONE-3
-1089 ; [.2793.0020.0002] # MYANMAR SIGN SHAN TONE-5
-108A ; [.2794.0020.0002] # MYANMAR SIGN SHAN TONE-6
-108F ; [.2795.0020.0002] # MYANMAR SIGN RUMAI PALAUNG TONE-5
-109A ; [.2796.0020.0002] # MYANMAR SIGN KHAMTI TONE-1
-109B ; [.2797.0020.0002] # MYANMAR SIGN KHAMTI TONE-3
-AA7B ; [.2798.0020.0002] # MYANMAR SIGN PAO KAREN TONE
-AA74 ; [.2799.0020.0002] # MYANMAR LOGOGRAM KHAMTI OAY
-AA75 ; [.279A.0020.0002] # MYANMAR LOGOGRAM KHAMTI QN
-AA76 ; [.279B.0020.0002] # MYANMAR LOGOGRAM KHAMTI HM
-11103 ; [.279C.0020.0002] # CHAKMA LETTER AA
-11104 ; [.279D.0020.0002] # CHAKMA LETTER I
-11105 ; [.279E.0020.0002] # CHAKMA LETTER U
-11106 ; [.279F.0020.0002] # CHAKMA LETTER E
-11107 ; [.27A0.0020.0002] # CHAKMA LETTER KAA
-11108 ; [.27A1.0020.0002] # CHAKMA LETTER KHAA
-11109 ; [.27A2.0020.0002] # CHAKMA LETTER GAA
-1110A ; [.27A3.0020.0002] # CHAKMA LETTER GHAA
-1110B ; [.27A4.0020.0002] # CHAKMA LETTER NGAA
-1110C ; [.27A5.0020.0002] # CHAKMA LETTER CAA
-1110D ; [.27A6.0020.0002] # CHAKMA LETTER CHAA
-1110E ; [.27A7.0020.0002] # CHAKMA LETTER JAA
-1110F ; [.27A8.0020.0002] # CHAKMA LETTER JHAA
-11110 ; [.27A9.0020.0002] # CHAKMA LETTER NYAA
-11111 ; [.27AA.0020.0002] # CHAKMA LETTER TTAA
-11112 ; [.27AB.0020.0002] # CHAKMA LETTER TTHAA
-11113 ; [.27AC.0020.0002] # CHAKMA LETTER DDAA
-11114 ; [.27AD.0020.0002] # CHAKMA LETTER DDHAA
-11115 ; [.27AE.0020.0002] # CHAKMA LETTER NNAA
-11116 ; [.27AF.0020.0002] # CHAKMA LETTER TAA
-11117 ; [.27B0.0020.0002] # CHAKMA LETTER THAA
-11118 ; [.27B1.0020.0002] # CHAKMA LETTER DAA
-11119 ; [.27B2.0020.0002] # CHAKMA LETTER DHAA
-1111A ; [.27B3.0020.0002] # CHAKMA LETTER NAA
-1111B ; [.27B4.0020.0002] # CHAKMA LETTER PAA
-1111C ; [.27B5.0020.0002] # CHAKMA LETTER PHAA
-1111D ; [.27B6.0020.0002] # CHAKMA LETTER BAA
-1111E ; [.27B7.0020.0002] # CHAKMA LETTER BHAA
-1111F ; [.27B8.0020.0002] # CHAKMA LETTER MAA
-11120 ; [.27B9.0020.0002] # CHAKMA LETTER YYAA
-11121 ; [.27BA.0020.0002] # CHAKMA LETTER YAA
-11122 ; [.27BB.0020.0002] # CHAKMA LETTER RAA
-11123 ; [.27BC.0020.0002] # CHAKMA LETTER LAA
-11124 ; [.27BD.0020.0002] # CHAKMA LETTER WAA
-11125 ; [.27BE.0020.0002] # CHAKMA LETTER SAA
-11126 ; [.27BF.0020.0002] # CHAKMA LETTER HAA
-11127 ; [.27C0.0020.0002] # CHAKMA VOWEL SIGN A
-11128 ; [.27C1.0020.0002] # CHAKMA VOWEL SIGN I
-11129 ; [.27C2.0020.0002] # CHAKMA VOWEL SIGN II
-1112A ; [.27C3.0020.0002] # CHAKMA VOWEL SIGN U
-1112B ; [.27C4.0020.0002] # CHAKMA VOWEL SIGN UU
-1112C ; [.27C5.0020.0002] # CHAKMA VOWEL SIGN E
-1112D ; [.27C6.0020.0002] # CHAKMA VOWEL SIGN AI
-1112E ; [.27C7.0020.0002] # CHAKMA VOWEL SIGN O
-11131 11127 ; [.27C7.0020.0002] # CHAKMA VOWEL SIGN O
-1112F ; [.27C8.0020.0002] # CHAKMA VOWEL SIGN AU
-11132 11127 ; [.27C8.0020.0002] # CHAKMA VOWEL SIGN AU
-11130 ; [.27C9.0020.0002] # CHAKMA VOWEL SIGN OI
-11131 ; [.27CA.0020.0002] # CHAKMA O MARK
-11132 ; [.27CB.0020.0002] # CHAKMA AU MARK
-11133 ; [.27CC.0020.0002] # CHAKMA VIRAMA
-11134 ; [.27CD.0020.0002] # CHAKMA MAAYYAA
-1780 ; [.27CE.0020.0002] # KHMER LETTER KA
-1781 ; [.27CF.0020.0002] # KHMER LETTER KHA
-1782 ; [.27D0.0020.0002] # KHMER LETTER KO
-1783 ; [.27D1.0020.0002] # KHMER LETTER KHO
-1784 ; [.27D2.0020.0002] # KHMER LETTER NGO
-1785 ; [.27D3.0020.0002] # KHMER LETTER CA
-1786 ; [.27D4.0020.0002] # KHMER LETTER CHA
-1787 ; [.27D5.0020.0002] # KHMER LETTER CO
-1788 ; [.27D6.0020.0002] # KHMER LETTER CHO
-1789 ; [.27D7.0020.0002] # KHMER LETTER NYO
-178A ; [.27D8.0020.0002] # KHMER LETTER DA
-178B ; [.27D9.0020.0002] # KHMER LETTER TTHA
-178C ; [.27DA.0020.0002] # KHMER LETTER DO
-178D ; [.27DB.0020.0002] # KHMER LETTER TTHO
-178E ; [.27DC.0020.0002] # KHMER LETTER NNO
-178F ; [.27DD.0020.0002] # KHMER LETTER TA
-1790 ; [.27DE.0020.0002] # KHMER LETTER THA
-1791 ; [.27DF.0020.0002] # KHMER LETTER TO
-1792 ; [.27E0.0020.0002] # KHMER LETTER THO
-1793 ; [.27E1.0020.0002] # KHMER LETTER NO
-1794 ; [.27E2.0020.0002] # KHMER LETTER BA
-1795 ; [.27E3.0020.0002] # KHMER LETTER PHA
-1796 ; [.27E4.0020.0002] # KHMER LETTER PO
-1797 ; [.27E5.0020.0002] # KHMER LETTER PHO
-1798 ; [.27E6.0020.0002] # KHMER LETTER MO
-1799 ; [.27E7.0020.0002] # KHMER LETTER YO
-179A ; [.27E8.0020.0002] # KHMER LETTER RO
-179B ; [.27E9.0020.0002] # KHMER LETTER LO
-179C ; [.27EA.0020.0002] # KHMER LETTER VO
-179D ; [.27EB.0020.0002] # KHMER LETTER SHA
-179E ; [.27EC.0020.0002] # KHMER LETTER SSO
-179F ; [.27ED.0020.0002] # KHMER LETTER SA
-17A0 ; [.27EE.0020.0002] # KHMER LETTER HA
-17A1 ; [.27EF.0020.0002] # KHMER LETTER LA
-17A2 ; [.27F0.0020.0002] # KHMER LETTER QA
-17DC ; [.27F1.0020.0002] # KHMER SIGN AVAKRAHASANYA
-17A3 ; [.27F2.0020.0002] # KHMER INDEPENDENT VOWEL QAQ
-17A4 ; [.27F3.0020.0002] # KHMER INDEPENDENT VOWEL QAA
-17A5 ; [.27F4.0020.0002] # KHMER INDEPENDENT VOWEL QI
-17A6 ; [.27F5.0020.0002] # KHMER INDEPENDENT VOWEL QII
-17A7 ; [.27F6.0020.0002] # KHMER INDEPENDENT VOWEL QU
-17A8 ; [.27F7.0020.0002] # KHMER INDEPENDENT VOWEL QUK
-17A9 ; [.27F8.0020.0002] # KHMER INDEPENDENT VOWEL QUU
-17AA ; [.27F9.0020.0002] # KHMER INDEPENDENT VOWEL QUUV
-17AB ; [.27FA.0020.0002] # KHMER INDEPENDENT VOWEL RY
-17AC ; [.27FB.0020.0002] # KHMER INDEPENDENT VOWEL RYY
-17AD ; [.27FC.0020.0002] # KHMER INDEPENDENT VOWEL LY
-17AE ; [.27FD.0020.0002] # KHMER INDEPENDENT VOWEL LYY
-17AF ; [.27FE.0020.0002] # KHMER INDEPENDENT VOWEL QE
-17B0 ; [.27FF.0020.0002] # KHMER INDEPENDENT VOWEL QAI
-17B1 ; [.2800.0020.0002] # KHMER INDEPENDENT VOWEL QOO TYPE ONE
-17B2 ; [.2801.0020.0002] # KHMER INDEPENDENT VOWEL QOO TYPE TWO
-17B3 ; [.2802.0020.0002] # KHMER INDEPENDENT VOWEL QAU
-17B6 ; [.2803.0020.0002] # KHMER VOWEL SIGN AA
-17B7 ; [.2804.0020.0002] # KHMER VOWEL SIGN I
-17B8 ; [.2805.0020.0002] # KHMER VOWEL SIGN II
-17B9 ; [.2806.0020.0002] # KHMER VOWEL SIGN Y
-17BA ; [.2807.0020.0002] # KHMER VOWEL SIGN YY
-17BB ; [.2808.0020.0002] # KHMER VOWEL SIGN U
-17BC ; [.2809.0020.0002] # KHMER VOWEL SIGN UU
-17BD ; [.280A.0020.0002] # KHMER VOWEL SIGN UA
-17BE ; [.280B.0020.0002] # KHMER VOWEL SIGN OE
-17BF ; [.280C.0020.0002] # KHMER VOWEL SIGN YA
-17C0 ; [.280D.0020.0002] # KHMER VOWEL SIGN IE
-17C1 ; [.280E.0020.0002] # KHMER VOWEL SIGN E
-17C2 ; [.280F.0020.0002] # KHMER VOWEL SIGN AE
-17C3 ; [.2810.0020.0002] # KHMER VOWEL SIGN AI
-17C4 ; [.2811.0020.0002] # KHMER VOWEL SIGN OO
-17C5 ; [.2812.0020.0002] # KHMER VOWEL SIGN AU
-17D2 ; [.2813.0020.0002] # KHMER SIGN COENG
-1950 ; [.2814.0020.0002] # TAI LE LETTER KA
-1951 ; [.2815.0020.0002] # TAI LE LETTER XA
-1952 ; [.2816.0020.0002] # TAI LE LETTER NGA
-1953 ; [.2817.0020.0002] # TAI LE LETTER TSA
-1954 ; [.2818.0020.0002] # TAI LE LETTER SA
-1955 ; [.2819.0020.0002] # TAI LE LETTER YA
-1956 ; [.281A.0020.0002] # TAI LE LETTER TA
-1957 ; [.281B.0020.0002] # TAI LE LETTER THA
-1958 ; [.281C.0020.0002] # TAI LE LETTER LA
-1959 ; [.281D.0020.0002] # TAI LE LETTER PA
-195A ; [.281E.0020.0002] # TAI LE LETTER PHA
-195B ; [.281F.0020.0002] # TAI LE LETTER MA
-195C ; [.2820.0020.0002] # TAI LE LETTER FA
-195D ; [.2821.0020.0002] # TAI LE LETTER VA
-195E ; [.2822.0020.0002] # TAI LE LETTER HA
-195F ; [.2823.0020.0002] # TAI LE LETTER QA
-1960 ; [.2824.0020.0002] # TAI LE LETTER KHA
-1961 ; [.2825.0020.0002] # TAI LE LETTER TSHA
-1962 ; [.2826.0020.0002] # TAI LE LETTER NA
-1963 ; [.2827.0020.0002] # TAI LE LETTER A
-1964 ; [.2828.0020.0002] # TAI LE LETTER I
-1965 ; [.2829.0020.0002] # TAI LE LETTER EE
-1966 ; [.282A.0020.0002] # TAI LE LETTER EH
-1967 ; [.282B.0020.0002] # TAI LE LETTER U
-1968 ; [.282C.0020.0002] # TAI LE LETTER OO
-1969 ; [.282D.0020.0002] # TAI LE LETTER O
-196A ; [.282E.0020.0002] # TAI LE LETTER UE
-196B ; [.282F.0020.0002] # TAI LE LETTER E
-196C ; [.2830.0020.0002] # TAI LE LETTER AUE
-196D ; [.2831.0020.0002] # TAI LE LETTER AI
-1970 ; [.2832.0020.0002] # TAI LE LETTER TONE-2
-1971 ; [.2833.0020.0002] # TAI LE LETTER TONE-3
-1972 ; [.2834.0020.0002] # TAI LE LETTER TONE-4
-1973 ; [.2835.0020.0002] # TAI LE LETTER TONE-5
-1974 ; [.2836.0020.0002] # TAI LE LETTER TONE-6
-1980 ; [.2837.0020.0002] # NEW TAI LUE LETTER HIGH QA
-1981 ; [.2838.0020.0002] # NEW TAI LUE LETTER LOW QA
-1982 ; [.2839.0020.0002] # NEW TAI LUE LETTER HIGH KA
-1983 ; [.283A.0020.0002] # NEW TAI LUE LETTER HIGH XA
-1984 ; [.283B.0020.0002] # NEW TAI LUE LETTER HIGH NGA
-1985 ; [.283C.0020.0002] # NEW TAI LUE LETTER LOW KA
-1986 ; [.283D.0020.0002] # NEW TAI LUE LETTER LOW XA
-1987 ; [.283E.0020.0002] # NEW TAI LUE LETTER LOW NGA
-1988 ; [.283F.0020.0002] # NEW TAI LUE LETTER HIGH TSA
-1989 ; [.2840.0020.0002] # NEW TAI LUE LETTER HIGH SA
-198A ; [.2841.0020.0002] # NEW TAI LUE LETTER HIGH YA
-198B ; [.2842.0020.0002] # NEW TAI LUE LETTER LOW TSA
-198C ; [.2843.0020.0002] # NEW TAI LUE LETTER LOW SA
-198D ; [.2844.0020.0002] # NEW TAI LUE LETTER LOW YA
-198E ; [.2845.0020.0002] # NEW TAI LUE LETTER HIGH TA
-198F ; [.2846.0020.0002] # NEW TAI LUE LETTER HIGH THA
-1990 ; [.2847.0020.0002] # NEW TAI LUE LETTER HIGH NA
-1991 ; [.2848.0020.0002] # NEW TAI LUE LETTER LOW TA
-1992 ; [.2849.0020.0002] # NEW TAI LUE LETTER LOW THA
-1993 ; [.284A.0020.0002] # NEW TAI LUE LETTER LOW NA
-1994 ; [.284B.0020.0002] # NEW TAI LUE LETTER HIGH PA
-1995 ; [.284C.0020.0002] # NEW TAI LUE LETTER HIGH PHA
-1996 ; [.284D.0020.0002] # NEW TAI LUE LETTER HIGH MA
-1997 ; [.284E.0020.0002] # NEW TAI LUE LETTER LOW PA
-1998 ; [.284F.0020.0002] # NEW TAI LUE LETTER LOW PHA
-1999 ; [.2850.0020.0002] # NEW TAI LUE LETTER LOW MA
-199A ; [.2851.0020.0002] # NEW TAI LUE LETTER HIGH FA
-199B ; [.2852.0020.0002] # NEW TAI LUE LETTER HIGH VA
-199C ; [.2853.0020.0002] # NEW TAI LUE LETTER HIGH LA
-19DE ; [.2853.0020.0004][.2869.0020.0004] # NEW TAI LUE SIGN LAE
-19DF ; [.2853.0020.0004][.2869.0020.0004][.2874.0020.0004] # NEW TAI LUE SIGN LAEV
-199D ; [.2854.0020.0002] # NEW TAI LUE LETTER LOW FA
-199E ; [.2855.0020.0002] # NEW TAI LUE LETTER LOW VA
-199F ; [.2856.0020.0002] # NEW TAI LUE LETTER LOW LA
-19A0 ; [.2857.0020.0002] # NEW TAI LUE LETTER HIGH HA
-19A1 ; [.2858.0020.0002] # NEW TAI LUE LETTER HIGH DA
-19A2 ; [.2859.0020.0002] # NEW TAI LUE LETTER HIGH BA
-19A3 ; [.285A.0020.0002] # NEW TAI LUE LETTER LOW HA
-19A4 ; [.285B.0020.0002] # NEW TAI LUE LETTER LOW DA
-19A5 ; [.285C.0020.0002] # NEW TAI LUE LETTER LOW BA
-19A6 ; [.285D.0020.0002] # NEW TAI LUE LETTER HIGH KVA
-19A7 ; [.285E.0020.0002] # NEW TAI LUE LETTER HIGH XVA
-19A8 ; [.285F.0020.0002] # NEW TAI LUE LETTER LOW KVA
-19A9 ; [.2860.0020.0002] # NEW TAI LUE LETTER LOW XVA
-19AA ; [.2861.0020.0002] # NEW TAI LUE LETTER HIGH SUA
-19AB ; [.2862.0020.0002] # NEW TAI LUE LETTER LOW SUA
-19B0 ; [.2863.0020.0002] # NEW TAI LUE VOWEL SIGN VOWEL SHORTENER
-19B1 ; [.2864.0020.0002] # NEW TAI LUE VOWEL SIGN AA
-19B2 ; [.2865.0020.0002] # NEW TAI LUE VOWEL SIGN II
-19B3 ; [.2866.0020.0002] # NEW TAI LUE VOWEL SIGN U
-19B4 ; [.2867.0020.0002] # NEW TAI LUE VOWEL SIGN UU
-19B5 ; [.2868.0020.0002] # NEW TAI LUE VOWEL SIGN E
-19B6 ; [.2869.0020.0002] # NEW TAI LUE VOWEL SIGN AE
-19B7 ; [.286A.0020.0002] # NEW TAI LUE VOWEL SIGN O
-19B8 ; [.286B.0020.0002] # NEW TAI LUE VOWEL SIGN OA
-19B9 ; [.286C.0020.0002] # NEW TAI LUE VOWEL SIGN UE
-19BA ; [.286D.0020.0002] # NEW TAI LUE VOWEL SIGN AY
-19BB ; [.286E.0020.0002] # NEW TAI LUE VOWEL SIGN AAY
-19BC ; [.286F.0020.0002] # NEW TAI LUE VOWEL SIGN UY
-19BD ; [.2870.0020.0002] # NEW TAI LUE VOWEL SIGN OY
-19BE ; [.2871.0020.0002] # NEW TAI LUE VOWEL SIGN OAY
-19BF ; [.2872.0020.0002] # NEW TAI LUE VOWEL SIGN UEY
-19C0 ; [.2873.0020.0002] # NEW TAI LUE VOWEL SIGN IY
-19C1 ; [.2874.0020.0002] # NEW TAI LUE LETTER FINAL V
-19C2 ; [.2875.0020.0002] # NEW TAI LUE LETTER FINAL NG
-19C3 ; [.2876.0020.0002] # NEW TAI LUE LETTER FINAL N
-19C4 ; [.2877.0020.0002] # NEW TAI LUE LETTER FINAL M
-19C5 ; [.2878.0020.0002] # NEW TAI LUE LETTER FINAL K
-19C6 ; [.2879.0020.0002] # NEW TAI LUE LETTER FINAL D
-19C7 ; [.287A.0020.0002] # NEW TAI LUE LETTER FINAL B
-19C8 ; [.287B.0020.0002] # NEW TAI LUE TONE MARK-1
-19C9 ; [.287C.0020.0002] # NEW TAI LUE TONE MARK-2
-1A20 ; [.287D.0020.0002] # TAI THAM LETTER HIGH KA
-1A21 ; [.287E.0020.0002] # TAI THAM LETTER HIGH KHA
-1A22 ; [.287F.0020.0002] # TAI THAM LETTER HIGH KXA
-1A23 ; [.2880.0020.0002] # TAI THAM LETTER LOW KA
-1A24 ; [.2881.0020.0002] # TAI THAM LETTER LOW KXA
-1A25 ; [.2882.0020.0002] # TAI THAM LETTER LOW KHA
-1A26 ; [.2883.0020.0002] # TAI THAM LETTER NGA
-1A58 ; [.2883.0020.0004] # TAI THAM SIGN MAI KANG LAI
-1A59 ; [.2883.0020.0004] # TAI THAM CONSONANT SIGN FINAL NGA
-1A27 ; [.2884.0020.0002] # TAI THAM LETTER HIGH CA
-1A28 ; [.2885.0020.0002] # TAI THAM LETTER HIGH CHA
-1A29 ; [.2886.0020.0002] # TAI THAM LETTER LOW CA
-1A2A ; [.2887.0020.0002] # TAI THAM LETTER LOW SA
-1A2B ; [.2888.0020.0002] # TAI THAM LETTER LOW CHA
-1A2C ; [.2889.0020.0002] # TAI THAM LETTER NYA
-1A2D ; [.288A.0020.0002] # TAI THAM LETTER RATA
-1A2E ; [.288B.0020.0002] # TAI THAM LETTER HIGH RATHA
-1A2F ; [.288C.0020.0002] # TAI THAM LETTER DA
-1A30 ; [.288D.0020.0002] # TAI THAM LETTER LOW RATHA
-1A31 ; [.288E.0020.0002] # TAI THAM LETTER RANA
-1A32 ; [.288F.0020.0002] # TAI THAM LETTER HIGH TA
-1A33 ; [.2890.0020.0002] # TAI THAM LETTER HIGH THA
-1A34 ; [.2891.0020.0002] # TAI THAM LETTER LOW TA
-1A35 ; [.2892.0020.0002] # TAI THAM LETTER LOW THA
-1A36 ; [.2893.0020.0002] # TAI THAM LETTER NA
-1A37 ; [.2894.0020.0002] # TAI THAM LETTER BA
-1A38 ; [.2895.0020.0002] # TAI THAM LETTER HIGH PA
-1A39 ; [.2896.0020.0002] # TAI THAM LETTER HIGH PHA
-1A3A ; [.2897.0020.0002] # TAI THAM LETTER HIGH FA
-1A3B ; [.2898.0020.0002] # TAI THAM LETTER LOW PA
-1A5A ; [.2898.0020.0004] # TAI THAM CONSONANT SIGN LOW PA
-1A5B ; [.2898.0020.0004] # TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA
-1A3C ; [.2899.0020.0002] # TAI THAM LETTER LOW FA
-1A3D ; [.289A.0020.0002] # TAI THAM LETTER LOW PHA
-1A3E ; [.289B.0020.0002] # TAI THAM LETTER MA
-1A3F ; [.289C.0020.0002] # TAI THAM LETTER LOW YA
-1A40 ; [.289D.0020.0002] # TAI THAM LETTER HIGH YA
-1A41 ; [.289E.0020.0002] # TAI THAM LETTER RA
-1A42 ; [.289F.0020.0002] # TAI THAM LETTER RUE
-1A43 ; [.28A0.0020.0002] # TAI THAM LETTER LA
-1A44 ; [.28A1.0020.0002] # TAI THAM LETTER LUE
-1A45 ; [.28A2.0020.0002] # TAI THAM LETTER WA
-1A46 ; [.28A3.0020.0002] # TAI THAM LETTER HIGH SHA
-1A54 ; [.28A3.0020.0004][.28C9.0020.0004][.28A3.0020.0004] # TAI THAM LETTER GREAT SA
-1A47 ; [.28A4.0020.0002] # TAI THAM LETTER HIGH SSA
-1A48 ; [.28A5.0020.0002] # TAI THAM LETTER HIGH SA
-1A49 ; [.28A6.0020.0002] # TAI THAM LETTER HIGH HA
-1A4A ; [.28A7.0020.0002] # TAI THAM LETTER LLA
-1A4B ; [.28A8.0020.0002] # TAI THAM LETTER A
-1A4C ; [.28A9.0020.0002] # TAI THAM LETTER LOW HA
-1A53 ; [.28AA.0020.0002] # TAI THAM LETTER LAE
-1A6B ; [.28AB.0020.0002] # TAI THAM VOWEL SIGN O
-1A55 ; [.28AC.0020.0002] # TAI THAM CONSONANT SIGN MEDIAL RA
-1A56 ; [.28AD.0020.0002] # TAI THAM CONSONANT SIGN MEDIAL LA
-1A57 ; [.28AE.0020.0002] # TAI THAM CONSONANT SIGN LA TANG LAI
-1A5C ; [.28AF.0020.0002] # TAI THAM CONSONANT SIGN MA
-1A5D ; [.28B0.0020.0002] # TAI THAM CONSONANT SIGN BA
-1A5E ; [.28B1.0020.0002] # TAI THAM CONSONANT SIGN SA
-1A4D ; [.28B2.0020.0002] # TAI THAM LETTER I
-1A4E ; [.28B3.0020.0002] # TAI THAM LETTER II
-1A4F ; [.28B4.0020.0002] # TAI THAM LETTER U
-1A50 ; [.28B5.0020.0002] # TAI THAM LETTER UU
-1A51 ; [.28B6.0020.0002] # TAI THAM LETTER EE
-1A52 ; [.28B7.0020.0002] # TAI THAM LETTER OO
-1A61 ; [.28B8.0020.0002] # TAI THAM VOWEL SIGN A
-1A6C ; [.28B9.0020.0002] # TAI THAM VOWEL SIGN OA BELOW
-1A62 ; [.28BA.0020.0002] # TAI THAM VOWEL SIGN MAI SAT
-1A63 ; [.28BB.0020.0002] # TAI THAM VOWEL SIGN AA
-1A64 ; [.28BB.0020.0004] # TAI THAM VOWEL SIGN TALL AA
-1A65 ; [.28BC.0020.0002] # TAI THAM VOWEL SIGN I
-1A66 ; [.28BD.0020.0002] # TAI THAM VOWEL SIGN II
-1A67 ; [.28BE.0020.0002] # TAI THAM VOWEL SIGN UE
-1A68 ; [.28BF.0020.0002] # TAI THAM VOWEL SIGN UUE
-1A69 ; [.28C0.0020.0002] # TAI THAM VOWEL SIGN U
-1A6A ; [.28C1.0020.0002] # TAI THAM VOWEL SIGN UU
-1A6E ; [.28C2.0020.0002] # TAI THAM VOWEL SIGN E
-1A6F ; [.28C3.0020.0002] # TAI THAM VOWEL SIGN AE
-1A73 ; [.28C4.0020.0002] # TAI THAM VOWEL SIGN OA ABOVE
-1A70 ; [.28C5.0020.0002] # TAI THAM VOWEL SIGN OO
-1A71 ; [.28C6.0020.0002] # TAI THAM VOWEL SIGN AI
-1A72 ; [.28C7.0020.0002] # TAI THAM VOWEL SIGN THAM AI
-1A6D ; [.28C8.0020.0002] # TAI THAM VOWEL SIGN OY
-1A60 ; [.28C9.0020.0002] # TAI THAM SIGN SAKOT
-AA00 ; [.28CA.0020.0002] # CHAM LETTER A
-AA01 ; [.28CB.0020.0002] # CHAM LETTER I
-AA02 ; [.28CC.0020.0002] # CHAM LETTER U
-AA03 ; [.28CD.0020.0002] # CHAM LETTER E
-AA04 ; [.28CE.0020.0002] # CHAM LETTER AI
-AA05 ; [.28CF.0020.0002] # CHAM LETTER O
-AA06 ; [.28D0.0020.0002] # CHAM LETTER KA
-AA07 ; [.28D1.0020.0002] # CHAM LETTER KHA
-AA08 ; [.28D2.0020.0002] # CHAM LETTER GA
-AA09 ; [.28D3.0020.0002] # CHAM LETTER GHA
-AA0A ; [.28D4.0020.0002] # CHAM LETTER NGUE
-AA0B ; [.28D5.0020.0002] # CHAM LETTER NGA
-AA0C ; [.28D6.0020.0002] # CHAM LETTER CHA
-AA0D ; [.28D7.0020.0002] # CHAM LETTER CHHA
-AA0E ; [.28D8.0020.0002] # CHAM LETTER JA
-AA0F ; [.28D9.0020.0002] # CHAM LETTER JHA
-AA10 ; [.28DA.0020.0002] # CHAM LETTER NHUE
-AA11 ; [.28DB.0020.0002] # CHAM LETTER NHA
-AA12 ; [.28DC.0020.0002] # CHAM LETTER NHJA
-AA13 ; [.28DD.0020.0002] # CHAM LETTER TA
-AA14 ; [.28DE.0020.0002] # CHAM LETTER THA
-AA15 ; [.28DF.0020.0002] # CHAM LETTER DA
-AA16 ; [.28E0.0020.0002] # CHAM LETTER DHA
-AA17 ; [.28E1.0020.0002] # CHAM LETTER NUE
-AA18 ; [.28E2.0020.0002] # CHAM LETTER NA
-AA19 ; [.28E3.0020.0002] # CHAM LETTER DDA
-AA1A ; [.28E4.0020.0002] # CHAM LETTER PA
-AA1B ; [.28E5.0020.0002] # CHAM LETTER PPA
-AA1C ; [.28E6.0020.0002] # CHAM LETTER PHA
-AA1D ; [.28E7.0020.0002] # CHAM LETTER BA
-AA1E ; [.28E8.0020.0002] # CHAM LETTER BHA
-AA1F ; [.28E9.0020.0002] # CHAM LETTER MUE
-AA20 ; [.28EA.0020.0002] # CHAM LETTER MA
-AA21 ; [.28EB.0020.0002] # CHAM LETTER BBA
-AA22 ; [.28EC.0020.0002] # CHAM LETTER YA
-AA23 ; [.28ED.0020.0002] # CHAM LETTER RA
-AA24 ; [.28EE.0020.0002] # CHAM LETTER LA
-AA25 ; [.28EF.0020.0002] # CHAM LETTER VA
-AA26 ; [.28F0.0020.0002] # CHAM LETTER SSA
-AA27 ; [.28F1.0020.0002] # CHAM LETTER SA
-AA28 ; [.28F2.0020.0002] # CHAM LETTER HA
-AA33 ; [.28F3.0020.0002] # CHAM CONSONANT SIGN YA
-AA34 ; [.28F4.0020.0002] # CHAM CONSONANT SIGN RA
-AA35 ; [.28F5.0020.0002] # CHAM CONSONANT SIGN LA
-AA36 ; [.28F6.0020.0002] # CHAM CONSONANT SIGN WA
-AA29 ; [.28F7.0020.0002] # CHAM VOWEL SIGN AA
-AA2A ; [.28F8.0020.0002] # CHAM VOWEL SIGN I
-AA2B ; [.28F9.0020.0002] # CHAM VOWEL SIGN II
-AA2C ; [.28FA.0020.0002] # CHAM VOWEL SIGN EI
-AA2D ; [.28FB.0020.0002] # CHAM VOWEL SIGN U
-AA2E ; [.28FC.0020.0002] # CHAM VOWEL SIGN OE
-AA2F ; [.28FD.0020.0002] # CHAM VOWEL SIGN O
-AA30 ; [.28FE.0020.0002] # CHAM VOWEL SIGN AI
-AA31 ; [.28FF.0020.0002] # CHAM VOWEL SIGN AU
-AA32 ; [.2900.0020.0002] # CHAM VOWEL SIGN UE
-AA40 ; [.2901.0020.0002] # CHAM LETTER FINAL K
-AA41 ; [.2902.0020.0002] # CHAM LETTER FINAL G
-AA42 ; [.2903.0020.0002] # CHAM LETTER FINAL NG
-AA43 ; [.2904.0020.0002] # CHAM CONSONANT SIGN FINAL NG
-AA44 ; [.2905.0020.0002] # CHAM LETTER FINAL CH
-AA45 ; [.2906.0020.0002] # CHAM LETTER FINAL T
-AA46 ; [.2907.0020.0002] # CHAM LETTER FINAL N
-AA47 ; [.2908.0020.0002] # CHAM LETTER FINAL P
-AA48 ; [.2909.0020.0002] # CHAM LETTER FINAL Y
-AA49 ; [.290A.0020.0002] # CHAM LETTER FINAL R
-AA4A ; [.290B.0020.0002] # CHAM LETTER FINAL L
-AA4B ; [.290C.0020.0002] # CHAM LETTER FINAL SS
-AA4C ; [.290D.0020.0002] # CHAM CONSONANT SIGN FINAL M
-AA4D ; [.290E.0020.0002] # CHAM CONSONANT SIGN FINAL H
-1B05 ; [.290F.0020.0002] # BALINESE LETTER AKARA
-1B06 ; [.2910.0020.0002] # BALINESE LETTER AKARA TEDUNG
-1B05 1B35 ; [.2910.0020.0002] # BALINESE LETTER AKARA TEDUNG
-1B07 ; [.2911.0020.0002] # BALINESE LETTER IKARA
-1B08 ; [.2912.0020.0002] # BALINESE LETTER IKARA TEDUNG
-1B07 1B35 ; [.2912.0020.0002] # BALINESE LETTER IKARA TEDUNG
-1B09 ; [.2913.0020.0002] # BALINESE LETTER UKARA
-1B0A ; [.2914.0020.0002] # BALINESE LETTER UKARA TEDUNG
-1B09 1B35 ; [.2914.0020.0002] # BALINESE LETTER UKARA TEDUNG
-1B0B ; [.2915.0020.0002] # BALINESE LETTER RA REPA
-1B0C ; [.2916.0020.0002] # BALINESE LETTER RA REPA TEDUNG
-1B0B 1B35 ; [.2916.0020.0002] # BALINESE LETTER RA REPA TEDUNG
-1B0D ; [.2917.0020.0002] # BALINESE LETTER LA LENGA
-1B0E ; [.2918.0020.0002] # BALINESE LETTER LA LENGA TEDUNG
-1B0D 1B35 ; [.2918.0020.0002] # BALINESE LETTER LA LENGA TEDUNG
-1B0F ; [.2919.0020.0002] # BALINESE LETTER EKARA
-1B10 ; [.291A.0020.0002] # BALINESE LETTER AIKARA
-1B11 ; [.291B.0020.0002] # BALINESE LETTER OKARA
-1B12 ; [.291C.0020.0002] # BALINESE LETTER OKARA TEDUNG
-1B11 1B35 ; [.291C.0020.0002] # BALINESE LETTER OKARA TEDUNG
-1B13 ; [.291D.0020.0002] # BALINESE LETTER KA
-1B45 ; [.291E.0020.0002] # BALINESE LETTER KAF SASAK
-1B46 ; [.291F.0020.0002] # BALINESE LETTER KHOT SASAK
-1B14 ; [.2920.0020.0002] # BALINESE LETTER KA MAHAPRANA
-1B15 ; [.2921.0020.0002] # BALINESE LETTER GA
-1B16 ; [.2922.0020.0002] # BALINESE LETTER GA GORA
-1B17 ; [.2923.0020.0002] # BALINESE LETTER NGA
-1B18 ; [.2924.0020.0002] # BALINESE LETTER CA
-1B19 ; [.2925.0020.0002] # BALINESE LETTER CA LACA
-1B1A ; [.2926.0020.0002] # BALINESE LETTER JA
-1B1B ; [.2927.0020.0002] # BALINESE LETTER JA JERA
-1B1C ; [.2928.0020.0002] # BALINESE LETTER NYA
-1B1D ; [.2929.0020.0002] # BALINESE LETTER TA LATIK
-1B1E ; [.292A.0020.0002] # BALINESE LETTER TA MURDA MAHAPRANA
-1B1F ; [.292B.0020.0002] # BALINESE LETTER DA MURDA ALPAPRANA
-1B20 ; [.292C.0020.0002] # BALINESE LETTER DA MURDA MAHAPRANA
-1B21 ; [.292D.0020.0002] # BALINESE LETTER NA RAMBAT
-1B22 ; [.292E.0020.0002] # BALINESE LETTER TA
-1B47 ; [.292F.0020.0002] # BALINESE LETTER TZIR SASAK
-1B23 ; [.2930.0020.0002] # BALINESE LETTER TA TAWA
-1B24 ; [.2931.0020.0002] # BALINESE LETTER DA
-1B25 ; [.2932.0020.0002] # BALINESE LETTER DA MADU
-1B26 ; [.2933.0020.0002] # BALINESE LETTER NA
-1B27 ; [.2934.0020.0002] # BALINESE LETTER PA
-1B48 ; [.2935.0020.0002] # BALINESE LETTER EF SASAK
-1B28 ; [.2936.0020.0002] # BALINESE LETTER PA KAPAL
-1B29 ; [.2937.0020.0002] # BALINESE LETTER BA
-1B2A ; [.2938.0020.0002] # BALINESE LETTER BA KEMBANG
-1B2B ; [.2939.0020.0002] # BALINESE LETTER MA
-1B2C ; [.293A.0020.0002] # BALINESE LETTER YA
-1B2D ; [.293B.0020.0002] # BALINESE LETTER RA
-1B2E ; [.293C.0020.0002] # BALINESE LETTER LA
-1B2F ; [.293D.0020.0002] # BALINESE LETTER WA
-1B49 ; [.293E.0020.0002] # BALINESE LETTER VE SASAK
-1B30 ; [.293F.0020.0002] # BALINESE LETTER SA SAGA
-1B31 ; [.2940.0020.0002] # BALINESE LETTER SA SAPA
-1B32 ; [.2941.0020.0002] # BALINESE LETTER SA
-1B4A ; [.2942.0020.0002] # BALINESE LETTER ZAL SASAK
-1B4B ; [.2943.0020.0002] # BALINESE LETTER ASYURA SASAK
-1B33 ; [.2944.0020.0002] # BALINESE LETTER HA
-1B35 ; [.2945.0020.0002] # BALINESE VOWEL SIGN TEDUNG
-1B36 ; [.2946.0020.0002] # BALINESE VOWEL SIGN ULU
-1B37 ; [.2947.0020.0002] # BALINESE VOWEL SIGN ULU SARI
-1B38 ; [.2948.0020.0002] # BALINESE VOWEL SIGN SUKU
-1B39 ; [.2949.0020.0002] # BALINESE VOWEL SIGN SUKU ILUT
-1B3A ; [.294A.0020.0002] # BALINESE VOWEL SIGN RA REPA
-1B3B ; [.294B.0020.0002] # BALINESE VOWEL SIGN RA REPA TEDUNG
-1B3A 1B35 ; [.294B.0020.0002] # BALINESE VOWEL SIGN RA REPA TEDUNG
-1B3C ; [.294C.0020.0002] # BALINESE VOWEL SIGN LA LENGA
-1B3D ; [.294D.0020.0002] # BALINESE VOWEL SIGN LA LENGA TEDUNG
-1B3C 1B35 ; [.294D.0020.0002] # BALINESE VOWEL SIGN LA LENGA TEDUNG
-1B3E ; [.294E.0020.0002] # BALINESE VOWEL SIGN TALING
-1B3F ; [.294F.0020.0002] # BALINESE VOWEL SIGN TALING REPA
-1B40 ; [.2950.0020.0002] # BALINESE VOWEL SIGN TALING TEDUNG
-1B3E 1B35 ; [.2950.0020.0002] # BALINESE VOWEL SIGN TALING TEDUNG
-1B41 ; [.2951.0020.0002] # BALINESE VOWEL SIGN TALING REPA TEDUNG
-1B3F 1B35 ; [.2951.0020.0002] # BALINESE VOWEL SIGN TALING REPA TEDUNG
-1B42 ; [.2952.0020.0002] # BALINESE VOWEL SIGN PEPET
-1B43 ; [.2953.0020.0002] # BALINESE VOWEL SIGN PEPET TEDUNG
-1B42 1B35 ; [.2953.0020.0002] # BALINESE VOWEL SIGN PEPET TEDUNG
-1B44 ; [.2954.0020.0002] # BALINESE ADEG ADEG
-A984 ; [.2955.0020.0002] # JAVANESE LETTER A
-A985 ; [.2956.0020.0002] # JAVANESE LETTER I KAWI
-A986 ; [.2957.0020.0002] # JAVANESE LETTER I
-A987 ; [.2958.0020.0002] # JAVANESE LETTER II
-A988 ; [.2959.0020.0002] # JAVANESE LETTER U
-A989 ; [.295A.0020.0002] # JAVANESE LETTER PA CEREK
-A98A ; [.295B.0020.0002] # JAVANESE LETTER NGA LELET
-A98B ; [.295C.0020.0002] # JAVANESE LETTER NGA LELET RASWADI
-A98C ; [.295D.0020.0002] # JAVANESE LETTER E
-A98D ; [.295E.0020.0002] # JAVANESE LETTER AI
-A98E ; [.295F.0020.0002] # JAVANESE LETTER O
-A98F ; [.2960.0020.0002] # JAVANESE LETTER KA
-A990 ; [.2961.0020.0002] # JAVANESE LETTER KA SASAK
-A991 ; [.2962.0020.0002] # JAVANESE LETTER KA MURDA
-A992 ; [.2963.0020.0002] # JAVANESE LETTER GA
-A993 ; [.2964.0020.0002] # JAVANESE LETTER GA MURDA
-A994 ; [.2965.0020.0002] # JAVANESE LETTER NGA
-A995 ; [.2966.0020.0002] # JAVANESE LETTER CA
-A996 ; [.2967.0020.0002] # JAVANESE LETTER CA MURDA
-A997 ; [.2968.0020.0002] # JAVANESE LETTER JA
-A998 ; [.2969.0020.0002] # JAVANESE LETTER NYA MURDA
-A999 ; [.296A.0020.0002] # JAVANESE LETTER JA MAHAPRANA
-A99A ; [.296B.0020.0002] # JAVANESE LETTER NYA
-A99B ; [.296C.0020.0002] # JAVANESE LETTER TTA
-A99C ; [.296D.0020.0002] # JAVANESE LETTER TTA MAHAPRANA
-A99D ; [.296E.0020.0002] # JAVANESE LETTER DDA
-A99E ; [.296F.0020.0002] # JAVANESE LETTER DDA MAHAPRANA
-A99F ; [.2970.0020.0002] # JAVANESE LETTER NA MURDA
-A9A0 ; [.2971.0020.0002] # JAVANESE LETTER TA
-A9A1 ; [.2972.0020.0002] # JAVANESE LETTER TA MURDA
-A9A2 ; [.2973.0020.0002] # JAVANESE LETTER DA
-A9A3 ; [.2974.0020.0002] # JAVANESE LETTER DA MAHAPRANA
-A9A4 ; [.2975.0020.0002] # JAVANESE LETTER NA
-A9A5 ; [.2976.0020.0002] # JAVANESE LETTER PA
-A9A6 ; [.2977.0020.0002] # JAVANESE LETTER PA MURDA
-A9A7 ; [.2978.0020.0002] # JAVANESE LETTER BA
-A9A8 ; [.2979.0020.0002] # JAVANESE LETTER BA MURDA
-A9A9 ; [.297A.0020.0002] # JAVANESE LETTER MA
-A9AA ; [.297B.0020.0002] # JAVANESE LETTER YA
-A9BE ; [.297C.0020.0002] # JAVANESE CONSONANT SIGN PENGKAL
-A9AB ; [.297D.0020.0002] # JAVANESE LETTER RA
-A9AC ; [.297D.0020.0004] # JAVANESE LETTER RA AGUNG
-A9BF ; [.297E.0020.0002] # JAVANESE CONSONANT SIGN CAKRA
-A9AD ; [.297F.0020.0002] # JAVANESE LETTER LA
-A9AE ; [.2980.0020.0002] # JAVANESE LETTER WA
-A9AF ; [.2981.0020.0002] # JAVANESE LETTER SA MURDA
-A9B0 ; [.2982.0020.0002] # JAVANESE LETTER SA MAHAPRANA
-A9B1 ; [.2983.0020.0002] # JAVANESE LETTER SA
-A9B2 ; [.2984.0020.0002] # JAVANESE LETTER HA
-A9B4 ; [.2985.0020.0002] # JAVANESE VOWEL SIGN TARUNG
-A9BC ; [.2986.0020.0002] # JAVANESE VOWEL SIGN PEPET
-A9B6 ; [.2987.0020.0002] # JAVANESE VOWEL SIGN WULU
-A9B7 ; [.2988.0020.0002] # JAVANESE VOWEL SIGN WULU MELIK
-A9B8 ; [.2989.0020.0002] # JAVANESE VOWEL SIGN SUKU
-A9B9 ; [.298A.0020.0002] # JAVANESE VOWEL SIGN SUKU MENDUT
-A9BD ; [.298B.0020.0002] # JAVANESE CONSONANT SIGN KERET
-A9BA ; [.298C.0020.0002] # JAVANESE VOWEL SIGN TALING
-A9BB ; [.298D.0020.0002] # JAVANESE VOWEL SIGN DIRGA MURE
-A9B5 ; [.298E.0020.0002] # JAVANESE VOWEL SIGN TOLONG
-A9C0 ; [.298F.0020.0002] # JAVANESE PANGKON
-1880 ; [.2990.0020.0002] # MONGOLIAN LETTER ALI GALI ANUSVARA ONE
-1881 ; [.2991.0020.0002] # MONGOLIAN LETTER ALI GALI VISARGA ONE
-1882 ; [.2992.0020.0002] # MONGOLIAN LETTER ALI GALI DAMARU
-1883 ; [.2993.0020.0002] # MONGOLIAN LETTER ALI GALI UBADAMA
-1884 ; [.2994.0020.0002] # MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
-1885 ; [.2995.0020.0002] # MONGOLIAN LETTER ALI GALI BALUDA
-1886 ; [.2996.0020.0002] # MONGOLIAN LETTER ALI GALI THREE BALUDA
-1843 ; [.2997.0020.0002] # MONGOLIAN LETTER TODO LONG VOWEL SIGN
-1820 ; [.2998.0020.0002] # MONGOLIAN LETTER A
-1887 ; [.2999.0020.0002] # MONGOLIAN LETTER ALI GALI A
-1821 ; [.299A.0020.0002] # MONGOLIAN LETTER E
-1844 ; [.299B.0020.0002] # MONGOLIAN LETTER TODO E
-185D ; [.299C.0020.0002] # MONGOLIAN LETTER SIBE E
-1822 ; [.299D.0020.0002] # MONGOLIAN LETTER I
-1845 ; [.299E.0020.0002] # MONGOLIAN LETTER TODO I
-185E ; [.299F.0020.0002] # MONGOLIAN LETTER SIBE I
-1873 ; [.29A0.0020.0002] # MONGOLIAN LETTER MANCHU I
-1888 ; [.29A1.0020.0002] # MONGOLIAN LETTER ALI GALI I
-185F ; [.29A2.0020.0002] # MONGOLIAN LETTER SIBE IY
-1823 ; [.29A3.0020.0002] # MONGOLIAN LETTER O
-1846 ; [.29A4.0020.0002] # MONGOLIAN LETTER TODO O
-1824 ; [.29A5.0020.0002] # MONGOLIAN LETTER U
-1847 ; [.29A6.0020.0002] # MONGOLIAN LETTER TODO U
-1861 ; [.29A7.0020.0002] # MONGOLIAN LETTER SIBE U
-1825 ; [.29A8.0020.0002] # MONGOLIAN LETTER OE
-1848 ; [.29A9.0020.0002] # MONGOLIAN LETTER TODO OE
-1826 ; [.29AA.0020.0002] # MONGOLIAN LETTER UE
-1849 ; [.29AB.0020.0002] # MONGOLIAN LETTER TODO UE
-1860 ; [.29AC.0020.0002] # MONGOLIAN LETTER SIBE UE
-1827 ; [.29AD.0020.0002] # MONGOLIAN LETTER EE
-1828 ; [.29AE.0020.0002] # MONGOLIAN LETTER NA
-1829 ; [.29AF.0020.0002] # MONGOLIAN LETTER ANG
-184A ; [.29B0.0020.0002] # MONGOLIAN LETTER TODO ANG
-1862 ; [.29B1.0020.0002] # MONGOLIAN LETTER SIBE ANG
-188A ; [.29B2.0020.0002] # MONGOLIAN LETTER ALI GALI NGA
-189B ; [.29B3.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI NGA
-182A ; [.29B4.0020.0002] # MONGOLIAN LETTER BA
-184B ; [.29B5.0020.0002] # MONGOLIAN LETTER TODO BA
-182B ; [.29B6.0020.0002] # MONGOLIAN LETTER PA
-184C ; [.29B7.0020.0002] # MONGOLIAN LETTER TODO PA
-1866 ; [.29B8.0020.0002] # MONGOLIAN LETTER SIBE PA
-182C ; [.29B9.0020.0002] # MONGOLIAN LETTER QA
-184D ; [.29BA.0020.0002] # MONGOLIAN LETTER TODO QA
-182D ; [.29BB.0020.0002] # MONGOLIAN LETTER GA
-184E ; [.29BC.0020.0002] # MONGOLIAN LETTER TODO GA
-1864 ; [.29BD.0020.0002] # MONGOLIAN LETTER SIBE GA
-189A ; [.29BE.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI GHA
-1865 ; [.29BF.0020.0002] # MONGOLIAN LETTER SIBE HA
-182E ; [.29C0.0020.0002] # MONGOLIAN LETTER MA
-184F ; [.29C1.0020.0002] # MONGOLIAN LETTER TODO MA
-182F ; [.29C2.0020.0002] # MONGOLIAN LETTER LA
-1830 ; [.29C3.0020.0002] # MONGOLIAN LETTER SA
-1831 ; [.29C4.0020.0002] # MONGOLIAN LETTER SHA
-1867 ; [.29C5.0020.0002] # MONGOLIAN LETTER SIBE SHA
-189C ; [.29C6.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI CA
-189D ; [.29C7.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI JHA
-18A2 ; [.29C8.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI SSA
-18A4 ; [.29C9.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI ZHA
-18A5 ; [.29CA.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI ZA
-1832 ; [.29CB.0020.0002] # MONGOLIAN LETTER TA
-1850 ; [.29CC.0020.0002] # MONGOLIAN LETTER TODO TA
-1868 ; [.29CD.0020.0002] # MONGOLIAN LETTER SIBE TA
-1833 ; [.29CE.0020.0002] # MONGOLIAN LETTER DA
-1851 ; [.29CF.0020.0002] # MONGOLIAN LETTER TODO DA
-1869 ; [.29D0.0020.0002] # MONGOLIAN LETTER SIBE DA
-1834 ; [.29D1.0020.0002] # MONGOLIAN LETTER CHA
-1852 ; [.29D2.0020.0002] # MONGOLIAN LETTER TODO CHA
-1871 ; [.29D3.0020.0002] # MONGOLIAN LETTER SIBE CHA
-185C ; [.29D4.0020.0002] # MONGOLIAN LETTER TODO DZA
-188B ; [.29D5.0020.0002] # MONGOLIAN LETTER ALI GALI CA
-1835 ; [.29D6.0020.0002] # MONGOLIAN LETTER JA
-1853 ; [.29D7.0020.0002] # MONGOLIAN LETTER TODO JA
-186A ; [.29D8.0020.0002] # MONGOLIAN LETTER SIBE JA
-1877 ; [.29D9.0020.0002] # MONGOLIAN LETTER MANCHU ZHA
-1836 ; [.29DA.0020.0002] # MONGOLIAN LETTER YA
-1855 ; [.29DB.0020.0002] # MONGOLIAN LETTER TODO YA
-1872 ; [.29DC.0020.0002] # MONGOLIAN LETTER SIBE ZHA
-1837 ; [.29DD.0020.0002] # MONGOLIAN LETTER RA
-1875 ; [.29DE.0020.0002] # MONGOLIAN LETTER MANCHU RA
-1838 ; [.29DF.0020.0002] # MONGOLIAN LETTER WA
-1856 ; [.29E0.0020.0002] # MONGOLIAN LETTER TODO WA
-1839 ; [.29E1.0020.0002] # MONGOLIAN LETTER FA
-186B ; [.29E2.0020.0002] # MONGOLIAN LETTER SIBE FA
-1876 ; [.29E3.0020.0002] # MONGOLIAN LETTER MANCHU FA
-183A ; [.29E4.0020.0002] # MONGOLIAN LETTER KA
-1857 ; [.29E5.0020.0002] # MONGOLIAN LETTER TODO KA
-1863 ; [.29E6.0020.0002] # MONGOLIAN LETTER SIBE KA
-1874 ; [.29E7.0020.0002] # MONGOLIAN LETTER MANCHU KA
-1889 ; [.29E8.0020.0002] # MONGOLIAN LETTER ALI GALI KA
-183B ; [.29E9.0020.0002] # MONGOLIAN LETTER KHA
-183C ; [.29EA.0020.0002] # MONGOLIAN LETTER TSA
-1854 ; [.29EB.0020.0002] # MONGOLIAN LETTER TODO TSA
-186E ; [.29EC.0020.0002] # MONGOLIAN LETTER SIBE TSA
-183D ; [.29ED.0020.0002] # MONGOLIAN LETTER ZA
-186F ; [.29EE.0020.0002] # MONGOLIAN LETTER SIBE ZA
-1858 ; [.29EF.0020.0002] # MONGOLIAN LETTER TODO GAA
-186C ; [.29F0.0020.0002] # MONGOLIAN LETTER SIBE GAA
-183E ; [.29F1.0020.0002] # MONGOLIAN LETTER HAA
-1859 ; [.29F2.0020.0002] # MONGOLIAN LETTER TODO HAA
-186D ; [.29F3.0020.0002] # MONGOLIAN LETTER SIBE HAA
-183F ; [.29F4.0020.0002] # MONGOLIAN LETTER ZRA
-1840 ; [.29F5.0020.0002] # MONGOLIAN LETTER LHA
-1841 ; [.29F6.0020.0002] # MONGOLIAN LETTER ZHI
-1842 ; [.29F7.0020.0002] # MONGOLIAN LETTER CHI
-185A ; [.29F8.0020.0002] # MONGOLIAN LETTER TODO JIA
-185B ; [.29F9.0020.0002] # MONGOLIAN LETTER TODO NIA
-1870 ; [.29FA.0020.0002] # MONGOLIAN LETTER SIBE RAA
-188C ; [.29FB.0020.0002] # MONGOLIAN LETTER ALI GALI TTA
-189E ; [.29FC.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI TTA
-188D ; [.29FD.0020.0002] # MONGOLIAN LETTER ALI GALI TTHA
-188E ; [.29FE.0020.0002] # MONGOLIAN LETTER ALI GALI DDA
-189F ; [.29FF.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI DDHA
-188F ; [.2A00.0020.0002] # MONGOLIAN LETTER ALI GALI NNA
-1890 ; [.2A01.0020.0002] # MONGOLIAN LETTER ALI GALI TA
-1898 ; [.2A02.0020.0002] # MONGOLIAN LETTER TODO ALI GALI TA
-18A0 ; [.2A03.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI TA
-1891 ; [.2A04.0020.0002] # MONGOLIAN LETTER ALI GALI DA
-18A1 ; [.2A05.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI DHA
-1892 ; [.2A06.0020.0002] # MONGOLIAN LETTER ALI GALI PA
-1893 ; [.2A07.0020.0002] # MONGOLIAN LETTER ALI GALI PHA
-18A8 ; [.2A08.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI BHA
-1894 ; [.2A09.0020.0002] # MONGOLIAN LETTER ALI GALI SSA
-18A3 ; [.2A0A.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI CYA
-1895 ; [.2A0B.0020.0002] # MONGOLIAN LETTER ALI GALI ZHA
-1899 ; [.2A0C.0020.0002] # MONGOLIAN LETTER TODO ALI GALI ZHA
-1896 ; [.2A0D.0020.0002] # MONGOLIAN LETTER ALI GALI ZA
-1897 ; [.2A0E.0020.0002] # MONGOLIAN LETTER ALI GALI AH
-18A6 ; [.2A0F.0020.0002] # MONGOLIAN LETTER ALI GALI HALF U
-18A7 ; [.2A10.0020.0002] # MONGOLIAN LETTER ALI GALI HALF YA
-18AA ; [.2A11.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI LHA
-18A9 ; [.2A12.0020.0002] # MONGOLIAN LETTER ALI GALI DAGALGA
-1C5A ; [.2A13.0020.0002] # OL CHIKI LETTER LA
-1C5B ; [.2A14.0020.0002] # OL CHIKI LETTER AT
-1C5C ; [.2A15.0020.0002] # OL CHIKI LETTER AG
-1C5D ; [.2A16.0020.0002] # OL CHIKI LETTER ANG
-1C5E ; [.2A17.0020.0002] # OL CHIKI LETTER AL
-1C5F ; [.2A18.0020.0002] # OL CHIKI LETTER LAA
-1C60 ; [.2A19.0020.0002] # OL CHIKI LETTER AAK
-1C61 ; [.2A1A.0020.0002] # OL CHIKI LETTER AAJ
-1C62 ; [.2A1B.0020.0002] # OL CHIKI LETTER AAM
-1C63 ; [.2A1C.0020.0002] # OL CHIKI LETTER AAW
-1C64 ; [.2A1D.0020.0002] # OL CHIKI LETTER LI
-1C65 ; [.2A1E.0020.0002] # OL CHIKI LETTER IS
-1C66 ; [.2A1F.0020.0002] # OL CHIKI LETTER IH
-1C67 ; [.2A20.0020.0002] # OL CHIKI LETTER INY
-1C68 ; [.2A21.0020.0002] # OL CHIKI LETTER IR
-1C69 ; [.2A22.0020.0002] # OL CHIKI LETTER LU
-1C6A ; [.2A23.0020.0002] # OL CHIKI LETTER UC
-1C6B ; [.2A24.0020.0002] # OL CHIKI LETTER UD
-1C6C ; [.2A25.0020.0002] # OL CHIKI LETTER UNN
-1C6D ; [.2A26.0020.0002] # OL CHIKI LETTER UY
-1C6E ; [.2A27.0020.0002] # OL CHIKI LETTER LE
-1C6F ; [.2A28.0020.0002] # OL CHIKI LETTER EP
-1C70 ; [.2A29.0020.0002] # OL CHIKI LETTER EDD
-1C71 ; [.2A2A.0020.0002] # OL CHIKI LETTER EN
-1C72 ; [.2A2B.0020.0002] # OL CHIKI LETTER ERR
-1C73 ; [.2A2C.0020.0002] # OL CHIKI LETTER LO
-1C74 ; [.2A2D.0020.0002] # OL CHIKI LETTER OTT
-1C75 ; [.2A2E.0020.0002] # OL CHIKI LETTER OB
-1C76 ; [.2A2F.0020.0002] # OL CHIKI LETTER OV
-1C77 ; [.2A30.0020.0002] # OL CHIKI LETTER OH
-1C78 ; [.2A31.0020.0002] # OL CHIKI MU TTUDDAG
-1C79 ; [.2A32.0020.0002] # OL CHIKI GAAHLAA TTUDDAAG
-1C7A ; [.2A33.0020.0002] # OL CHIKI MU-GAAHLAA TTUDDAAG
-1C7B ; [.2A34.0020.0002] # OL CHIKI RELAA
-1C7C ; [.2A35.0020.0002] # OL CHIKI PHAARKAA
-1C7D ; [.2A36.0020.0002] # OL CHIKI AHAD
-13A0 ; [.2A37.0020.0002] # CHEROKEE LETTER A
-13A1 ; [.2A38.0020.0002] # CHEROKEE LETTER E
-13A2 ; [.2A39.0020.0002] # CHEROKEE LETTER I
-13A3 ; [.2A3A.0020.0002] # CHEROKEE LETTER O
-13A4 ; [.2A3B.0020.0002] # CHEROKEE LETTER U
-13A5 ; [.2A3C.0020.0002] # CHEROKEE LETTER V
-13A6 ; [.2A3D.0020.0002] # CHEROKEE LETTER GA
-13A7 ; [.2A3E.0020.0002] # CHEROKEE LETTER KA
-13A8 ; [.2A3F.0020.0002] # CHEROKEE LETTER GE
-13A9 ; [.2A40.0020.0002] # CHEROKEE LETTER GI
-13AA ; [.2A41.0020.0002] # CHEROKEE LETTER GO
-13AB ; [.2A42.0020.0002] # CHEROKEE LETTER GU
-13AC ; [.2A43.0020.0002] # CHEROKEE LETTER GV
-13AD ; [.2A44.0020.0002] # CHEROKEE LETTER HA
-13AE ; [.2A45.0020.0002] # CHEROKEE LETTER HE
-13AF ; [.2A46.0020.0002] # CHEROKEE LETTER HI
-13B0 ; [.2A47.0020.0002] # CHEROKEE LETTER HO
-13B1 ; [.2A48.0020.0002] # CHEROKEE LETTER HU
-13B2 ; [.2A49.0020.0002] # CHEROKEE LETTER HV
-13B3 ; [.2A4A.0020.0002] # CHEROKEE LETTER LA
-13B4 ; [.2A4B.0020.0002] # CHEROKEE LETTER LE
-13B5 ; [.2A4C.0020.0002] # CHEROKEE LETTER LI
-13B6 ; [.2A4D.0020.0002] # CHEROKEE LETTER LO
-13B7 ; [.2A4E.0020.0002] # CHEROKEE LETTER LU
-13B8 ; [.2A4F.0020.0002] # CHEROKEE LETTER LV
-13B9 ; [.2A50.0020.0002] # CHEROKEE LETTER MA
-13BA ; [.2A51.0020.0002] # CHEROKEE LETTER ME
-13BB ; [.2A52.0020.0002] # CHEROKEE LETTER MI
-13BC ; [.2A53.0020.0002] # CHEROKEE LETTER MO
-13BD ; [.2A54.0020.0002] # CHEROKEE LETTER MU
-13BE ; [.2A55.0020.0002] # CHEROKEE LETTER NA
-13BF ; [.2A56.0020.0002] # CHEROKEE LETTER HNA
-13C0 ; [.2A57.0020.0002] # CHEROKEE LETTER NAH
-13C1 ; [.2A58.0020.0002] # CHEROKEE LETTER NE
-13C2 ; [.2A59.0020.0002] # CHEROKEE LETTER NI
-13C3 ; [.2A5A.0020.0002] # CHEROKEE LETTER NO
-13C4 ; [.2A5B.0020.0002] # CHEROKEE LETTER NU
-13C5 ; [.2A5C.0020.0002] # CHEROKEE LETTER NV
-13C6 ; [.2A5D.0020.0002] # CHEROKEE LETTER QUA
-13C7 ; [.2A5E.0020.0002] # CHEROKEE LETTER QUE
-13C8 ; [.2A5F.0020.0002] # CHEROKEE LETTER QUI
-13C9 ; [.2A60.0020.0002] # CHEROKEE LETTER QUO
-13CA ; [.2A61.0020.0002] # CHEROKEE LETTER QUU
-13CB ; [.2A62.0020.0002] # CHEROKEE LETTER QUV
-13CC ; [.2A63.0020.0002] # CHEROKEE LETTER SA
-13CD ; [.2A64.0020.0002] # CHEROKEE LETTER S
-13CE ; [.2A65.0020.0002] # CHEROKEE LETTER SE
-13CF ; [.2A66.0020.0002] # CHEROKEE LETTER SI
-13D0 ; [.2A67.0020.0002] # CHEROKEE LETTER SO
-13D1 ; [.2A68.0020.0002] # CHEROKEE LETTER SU
-13D2 ; [.2A69.0020.0002] # CHEROKEE LETTER SV
-13D3 ; [.2A6A.0020.0002] # CHEROKEE LETTER DA
-13D4 ; [.2A6B.0020.0002] # CHEROKEE LETTER TA
-13D5 ; [.2A6C.0020.0002] # CHEROKEE LETTER DE
-13D6 ; [.2A6D.0020.0002] # CHEROKEE LETTER TE
-13D7 ; [.2A6E.0020.0002] # CHEROKEE LETTER DI
-13D8 ; [.2A6F.0020.0002] # CHEROKEE LETTER TI
-13D9 ; [.2A70.0020.0002] # CHEROKEE LETTER DO
-13DA ; [.2A71.0020.0002] # CHEROKEE LETTER DU
-13DB ; [.2A72.0020.0002] # CHEROKEE LETTER DV
-13DC ; [.2A73.0020.0002] # CHEROKEE LETTER DLA
-13DD ; [.2A74.0020.0002] # CHEROKEE LETTER TLA
-13DE ; [.2A75.0020.0002] # CHEROKEE LETTER TLE
-13DF ; [.2A76.0020.0002] # CHEROKEE LETTER TLI
-13E0 ; [.2A77.0020.0002] # CHEROKEE LETTER TLO
-13E1 ; [.2A78.0020.0002] # CHEROKEE LETTER TLU
-13E2 ; [.2A79.0020.0002] # CHEROKEE LETTER TLV
-13E3 ; [.2A7A.0020.0002] # CHEROKEE LETTER TSA
-13E4 ; [.2A7B.0020.0002] # CHEROKEE LETTER TSE
-13E5 ; [.2A7C.0020.0002] # CHEROKEE LETTER TSI
-13E6 ; [.2A7D.0020.0002] # CHEROKEE LETTER TSO
-13E7 ; [.2A7E.0020.0002] # CHEROKEE LETTER TSU
-13E8 ; [.2A7F.0020.0002] # CHEROKEE LETTER TSV
-13E9 ; [.2A80.0020.0002] # CHEROKEE LETTER WA
-13EA ; [.2A81.0020.0002] # CHEROKEE LETTER WE
-13EB ; [.2A82.0020.0002] # CHEROKEE LETTER WI
-13EC ; [.2A83.0020.0002] # CHEROKEE LETTER WO
-13ED ; [.2A84.0020.0002] # CHEROKEE LETTER WU
-13EE ; [.2A85.0020.0002] # CHEROKEE LETTER WV
-13EF ; [.2A86.0020.0002] # CHEROKEE LETTER YA
-13F0 ; [.2A87.0020.0002] # CHEROKEE LETTER YE
-13F1 ; [.2A88.0020.0002] # CHEROKEE LETTER YI
-13F2 ; [.2A89.0020.0002] # CHEROKEE LETTER YO
-13F3 ; [.2A8A.0020.0002] # CHEROKEE LETTER YU
-13F4 ; [.2A8B.0020.0002] # CHEROKEE LETTER YV
-1401 ; [.2A8C.0020.0002] # CANADIAN SYLLABICS E
-1402 ; [.2A8D.0020.0002] # CANADIAN SYLLABICS AAI
-1403 ; [.2A8E.0020.0002] # CANADIAN SYLLABICS I
-1404 ; [.2A8F.0020.0002] # CANADIAN SYLLABICS II
-1405 ; [.2A90.0020.0002] # CANADIAN SYLLABICS O
-1406 ; [.2A91.0020.0002] # CANADIAN SYLLABICS OO
-1407 ; [.2A92.0020.0002] # CANADIAN SYLLABICS Y-CREE OO
-1408 ; [.2A93.0020.0002] # CANADIAN SYLLABICS CARRIER EE
-1409 ; [.2A94.0020.0002] # CANADIAN SYLLABICS CARRIER I
-140A ; [.2A95.0020.0002] # CANADIAN SYLLABICS A
-140B ; [.2A96.0020.0002] # CANADIAN SYLLABICS AA
-140C ; [.2A97.0020.0002] # CANADIAN SYLLABICS WE
-140D ; [.2A98.0020.0002] # CANADIAN SYLLABICS WEST-CREE WE
-140E ; [.2A99.0020.0002] # CANADIAN SYLLABICS WI
-140F ; [.2A9A.0020.0002] # CANADIAN SYLLABICS WEST-CREE WI
-1410 ; [.2A9B.0020.0002] # CANADIAN SYLLABICS WII
-1411 ; [.2A9C.0020.0002] # CANADIAN SYLLABICS WEST-CREE WII
-1412 ; [.2A9D.0020.0002] # CANADIAN SYLLABICS WO
-1413 ; [.2A9E.0020.0002] # CANADIAN SYLLABICS WEST-CREE WO
-1414 ; [.2A9F.0020.0002] # CANADIAN SYLLABICS WOO
-1415 ; [.2AA0.0020.0002] # CANADIAN SYLLABICS WEST-CREE WOO
-1416 ; [.2AA1.0020.0002] # CANADIAN SYLLABICS NASKAPI WOO
-1417 ; [.2AA2.0020.0002] # CANADIAN SYLLABICS WA
-1418 ; [.2AA3.0020.0002] # CANADIAN SYLLABICS WEST-CREE WA
-1419 ; [.2AA4.0020.0002] # CANADIAN SYLLABICS WAA
-141A ; [.2AA5.0020.0002] # CANADIAN SYLLABICS WEST-CREE WAA
-141B ; [.2AA6.0020.0002] # CANADIAN SYLLABICS NASKAPI WAA
-141C ; [.2AA7.0020.0002] # CANADIAN SYLLABICS AI
-141D ; [.2AA8.0020.0002] # CANADIAN SYLLABICS Y-CREE W
-141E ; [.2AA9.0020.0002] # CANADIAN SYLLABICS GLOTTAL STOP
-141F ; [.2AAA.0020.0002] # CANADIAN SYLLABICS FINAL ACUTE
-1420 ; [.2AAB.0020.0002] # CANADIAN SYLLABICS FINAL GRAVE
-1421 ; [.2AAC.0020.0002] # CANADIAN SYLLABICS FINAL BOTTOM HALF RING
-1422 ; [.2AAD.0020.0002] # CANADIAN SYLLABICS FINAL TOP HALF RING
-1423 ; [.2AAE.0020.0002] # CANADIAN SYLLABICS FINAL RIGHT HALF RING
-1424 ; [.2AAF.0020.0002] # CANADIAN SYLLABICS FINAL RING
-1425 ; [.2AB0.0020.0002] # CANADIAN SYLLABICS FINAL DOUBLE ACUTE
-1426 ; [.2AB1.0020.0002] # CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES
-1427 ; [.2AB2.0020.0002] # CANADIAN SYLLABICS FINAL MIDDLE DOT
-1428 ; [.2AB3.0020.0002] # CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE
-1429 ; [.2AB4.0020.0002] # CANADIAN SYLLABICS FINAL PLUS
-142A ; [.2AB5.0020.0002] # CANADIAN SYLLABICS FINAL DOWN TACK
-142B ; [.2AB6.0020.0002] # CANADIAN SYLLABICS EN
-142C ; [.2AB7.0020.0002] # CANADIAN SYLLABICS IN
-142D ; [.2AB8.0020.0002] # CANADIAN SYLLABICS ON
-142E ; [.2AB9.0020.0002] # CANADIAN SYLLABICS AN
-142F ; [.2ABA.0020.0002] # CANADIAN SYLLABICS PE
-1430 ; [.2ABB.0020.0002] # CANADIAN SYLLABICS PAAI
-1431 ; [.2ABC.0020.0002] # CANADIAN SYLLABICS PI
-1432 ; [.2ABD.0020.0002] # CANADIAN SYLLABICS PII
-1433 ; [.2ABE.0020.0002] # CANADIAN SYLLABICS PO
-1434 ; [.2ABF.0020.0002] # CANADIAN SYLLABICS POO
-1435 ; [.2AC0.0020.0002] # CANADIAN SYLLABICS Y-CREE POO
-1436 ; [.2AC1.0020.0002] # CANADIAN SYLLABICS CARRIER HEE
-1437 ; [.2AC2.0020.0002] # CANADIAN SYLLABICS CARRIER HI
-1438 ; [.2AC3.0020.0002] # CANADIAN SYLLABICS PA
-1439 ; [.2AC4.0020.0002] # CANADIAN SYLLABICS PAA
-143A ; [.2AC5.0020.0002] # CANADIAN SYLLABICS PWE
-143B ; [.2AC6.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWE
-143C ; [.2AC7.0020.0002] # CANADIAN SYLLABICS PWI
-143D ; [.2AC8.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWI
-143E ; [.2AC9.0020.0002] # CANADIAN SYLLABICS PWII
-143F ; [.2ACA.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWII
-1440 ; [.2ACB.0020.0002] # CANADIAN SYLLABICS PWO
-1441 ; [.2ACC.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWO
-1442 ; [.2ACD.0020.0002] # CANADIAN SYLLABICS PWOO
-1443 ; [.2ACE.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWOO
-1444 ; [.2ACF.0020.0002] # CANADIAN SYLLABICS PWA
-1445 ; [.2AD0.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWA
-1446 ; [.2AD1.0020.0002] # CANADIAN SYLLABICS PWAA
-1447 ; [.2AD2.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWAA
-1448 ; [.2AD3.0020.0002] # CANADIAN SYLLABICS Y-CREE PWAA
-1449 ; [.2AD4.0020.0002] # CANADIAN SYLLABICS P
-144A ; [.2AD5.0020.0002] # CANADIAN SYLLABICS WEST-CREE P
-144B ; [.2AD6.0020.0002] # CANADIAN SYLLABICS CARRIER H
-144C ; [.2AD7.0020.0002] # CANADIAN SYLLABICS TE
-144D ; [.2AD8.0020.0002] # CANADIAN SYLLABICS TAAI
-144E ; [.2AD9.0020.0002] # CANADIAN SYLLABICS TI
-144F ; [.2ADA.0020.0002] # CANADIAN SYLLABICS TII
-1450 ; [.2ADB.0020.0002] # CANADIAN SYLLABICS TO
-1451 ; [.2ADC.0020.0002] # CANADIAN SYLLABICS TOO
-1452 ; [.2ADD.0020.0002] # CANADIAN SYLLABICS Y-CREE TOO
-1453 ; [.2ADE.0020.0002] # CANADIAN SYLLABICS CARRIER DEE
-1454 ; [.2ADF.0020.0002] # CANADIAN SYLLABICS CARRIER DI
-1455 ; [.2AE0.0020.0002] # CANADIAN SYLLABICS TA
-1456 ; [.2AE1.0020.0002] # CANADIAN SYLLABICS TAA
-1457 ; [.2AE2.0020.0002] # CANADIAN SYLLABICS TWE
-1458 ; [.2AE3.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWE
-1459 ; [.2AE4.0020.0002] # CANADIAN SYLLABICS TWI
-145A ; [.2AE5.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWI
-145B ; [.2AE6.0020.0002] # CANADIAN SYLLABICS TWII
-145C ; [.2AE7.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWII
-145D ; [.2AE8.0020.0002] # CANADIAN SYLLABICS TWO
-145E ; [.2AE9.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWO
-145F ; [.2AEA.0020.0002] # CANADIAN SYLLABICS TWOO
-1460 ; [.2AEB.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWOO
-1461 ; [.2AEC.0020.0002] # CANADIAN SYLLABICS TWA
-1462 ; [.2AED.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWA
-1463 ; [.2AEE.0020.0002] # CANADIAN SYLLABICS TWAA
-1464 ; [.2AEF.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWAA
-1465 ; [.2AF0.0020.0002] # CANADIAN SYLLABICS NASKAPI TWAA
-1466 ; [.2AF1.0020.0002] # CANADIAN SYLLABICS T
-1467 ; [.2AF2.0020.0002] # CANADIAN SYLLABICS TTE
-1468 ; [.2AF3.0020.0002] # CANADIAN SYLLABICS TTI
-1469 ; [.2AF4.0020.0002] # CANADIAN SYLLABICS TTO
-146A ; [.2AF5.0020.0002] # CANADIAN SYLLABICS TTA
-146B ; [.2AF6.0020.0002] # CANADIAN SYLLABICS KE
-146C ; [.2AF7.0020.0002] # CANADIAN SYLLABICS KAAI
-146D ; [.2AF8.0020.0002] # CANADIAN SYLLABICS KI
-146E ; [.2AF9.0020.0002] # CANADIAN SYLLABICS KII
-146F ; [.2AFA.0020.0002] # CANADIAN SYLLABICS KO
-1470 ; [.2AFB.0020.0002] # CANADIAN SYLLABICS KOO
-1471 ; [.2AFC.0020.0002] # CANADIAN SYLLABICS Y-CREE KOO
-1472 ; [.2AFD.0020.0002] # CANADIAN SYLLABICS KA
-1473 ; [.2AFE.0020.0002] # CANADIAN SYLLABICS KAA
-1474 ; [.2AFF.0020.0002] # CANADIAN SYLLABICS KWE
-1475 ; [.2B00.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWE
-1476 ; [.2B01.0020.0002] # CANADIAN SYLLABICS KWI
-1477 ; [.2B02.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWI
-1478 ; [.2B03.0020.0002] # CANADIAN SYLLABICS KWII
-1479 ; [.2B04.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWII
-147A ; [.2B05.0020.0002] # CANADIAN SYLLABICS KWO
-147B ; [.2B06.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWO
-147C ; [.2B07.0020.0002] # CANADIAN SYLLABICS KWOO
-147D ; [.2B08.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWOO
-147E ; [.2B09.0020.0002] # CANADIAN SYLLABICS KWA
-147F ; [.2B0A.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWA
-1480 ; [.2B0B.0020.0002] # CANADIAN SYLLABICS KWAA
-1481 ; [.2B0C.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWAA
-1482 ; [.2B0D.0020.0002] # CANADIAN SYLLABICS NASKAPI KWAA
-1483 ; [.2B0E.0020.0002] # CANADIAN SYLLABICS K
-1484 ; [.2B0F.0020.0002] # CANADIAN SYLLABICS KW
-1485 ; [.2B10.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KEH
-1486 ; [.2B11.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KIH
-1487 ; [.2B12.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KOH
-1488 ; [.2B13.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KAH
-1489 ; [.2B14.0020.0002] # CANADIAN SYLLABICS CE
-148A ; [.2B15.0020.0002] # CANADIAN SYLLABICS CAAI
-148B ; [.2B16.0020.0002] # CANADIAN SYLLABICS CI
-148C ; [.2B17.0020.0002] # CANADIAN SYLLABICS CII
-148D ; [.2B18.0020.0002] # CANADIAN SYLLABICS CO
-148E ; [.2B19.0020.0002] # CANADIAN SYLLABICS COO
-148F ; [.2B1A.0020.0002] # CANADIAN SYLLABICS Y-CREE COO
-1490 ; [.2B1B.0020.0002] # CANADIAN SYLLABICS CA
-1491 ; [.2B1C.0020.0002] # CANADIAN SYLLABICS CAA
-1492 ; [.2B1D.0020.0002] # CANADIAN SYLLABICS CWE
-1493 ; [.2B1E.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWE
-1494 ; [.2B1F.0020.0002] # CANADIAN SYLLABICS CWI
-1495 ; [.2B20.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWI
-1496 ; [.2B21.0020.0002] # CANADIAN SYLLABICS CWII
-1497 ; [.2B22.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWII
-1498 ; [.2B23.0020.0002] # CANADIAN SYLLABICS CWO
-1499 ; [.2B24.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWO
-149A ; [.2B25.0020.0002] # CANADIAN SYLLABICS CWOO
-149B ; [.2B26.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWOO
-149C ; [.2B27.0020.0002] # CANADIAN SYLLABICS CWA
-149D ; [.2B28.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWA
-149E ; [.2B29.0020.0002] # CANADIAN SYLLABICS CWAA
-149F ; [.2B2A.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWAA
-14A0 ; [.2B2B.0020.0002] # CANADIAN SYLLABICS NASKAPI CWAA
-14A1 ; [.2B2C.0020.0002] # CANADIAN SYLLABICS C
-14A2 ; [.2B2D.0020.0002] # CANADIAN SYLLABICS SAYISI TH
-14A3 ; [.2B2E.0020.0002] # CANADIAN SYLLABICS ME
-14A4 ; [.2B2F.0020.0002] # CANADIAN SYLLABICS MAAI
-14A5 ; [.2B30.0020.0002] # CANADIAN SYLLABICS MI
-14A6 ; [.2B31.0020.0002] # CANADIAN SYLLABICS MII
-14A7 ; [.2B32.0020.0002] # CANADIAN SYLLABICS MO
-14A8 ; [.2B33.0020.0002] # CANADIAN SYLLABICS MOO
-14A9 ; [.2B34.0020.0002] # CANADIAN SYLLABICS Y-CREE MOO
-14AA ; [.2B35.0020.0002] # CANADIAN SYLLABICS MA
-14AB ; [.2B36.0020.0002] # CANADIAN SYLLABICS MAA
-14AC ; [.2B37.0020.0002] # CANADIAN SYLLABICS MWE
-14AD ; [.2B38.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWE
-14AE ; [.2B39.0020.0002] # CANADIAN SYLLABICS MWI
-14AF ; [.2B3A.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWI
-14B0 ; [.2B3B.0020.0002] # CANADIAN SYLLABICS MWII
-14B1 ; [.2B3C.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWII
-14B2 ; [.2B3D.0020.0002] # CANADIAN SYLLABICS MWO
-14B3 ; [.2B3E.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWO
-14B4 ; [.2B3F.0020.0002] # CANADIAN SYLLABICS MWOO
-14B5 ; [.2B40.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWOO
-14B6 ; [.2B41.0020.0002] # CANADIAN SYLLABICS MWA
-14B7 ; [.2B42.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWA
-14B8 ; [.2B43.0020.0002] # CANADIAN SYLLABICS MWAA
-14B9 ; [.2B44.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWAA
-14BA ; [.2B45.0020.0002] # CANADIAN SYLLABICS NASKAPI MWAA
-14BB ; [.2B46.0020.0002] # CANADIAN SYLLABICS M
-14BC ; [.2B47.0020.0002] # CANADIAN SYLLABICS WEST-CREE M
-14BD ; [.2B48.0020.0002] # CANADIAN SYLLABICS MH
-14BE ; [.2B49.0020.0002] # CANADIAN SYLLABICS ATHAPASCAN M
-14BF ; [.2B4A.0020.0002] # CANADIAN SYLLABICS SAYISI M
-14C0 ; [.2B4B.0020.0002] # CANADIAN SYLLABICS NE
-14C1 ; [.2B4C.0020.0002] # CANADIAN SYLLABICS NAAI
-14C2 ; [.2B4D.0020.0002] # CANADIAN SYLLABICS NI
-14C3 ; [.2B4E.0020.0002] # CANADIAN SYLLABICS NII
-14C4 ; [.2B4F.0020.0002] # CANADIAN SYLLABICS NO
-14C5 ; [.2B50.0020.0002] # CANADIAN SYLLABICS NOO
-14C6 ; [.2B51.0020.0002] # CANADIAN SYLLABICS Y-CREE NOO
-14C7 ; [.2B52.0020.0002] # CANADIAN SYLLABICS NA
-14C8 ; [.2B53.0020.0002] # CANADIAN SYLLABICS NAA
-14C9 ; [.2B54.0020.0002] # CANADIAN SYLLABICS NWE
-14CA ; [.2B55.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWE
-14CB ; [.2B56.0020.0002] # CANADIAN SYLLABICS NWA
-14CC ; [.2B57.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWA
-14CD ; [.2B58.0020.0002] # CANADIAN SYLLABICS NWAA
-14CE ; [.2B59.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWAA
-14CF ; [.2B5A.0020.0002] # CANADIAN SYLLABICS NASKAPI NWAA
-14D0 ; [.2B5B.0020.0002] # CANADIAN SYLLABICS N
-14D1 ; [.2B5C.0020.0002] # CANADIAN SYLLABICS CARRIER NG
-14D2 ; [.2B5D.0020.0002] # CANADIAN SYLLABICS NH
-14D3 ; [.2B5E.0020.0002] # CANADIAN SYLLABICS LE
-14D4 ; [.2B5F.0020.0002] # CANADIAN SYLLABICS LAAI
-14D5 ; [.2B60.0020.0002] # CANADIAN SYLLABICS LI
-14D6 ; [.2B61.0020.0002] # CANADIAN SYLLABICS LII
-14D7 ; [.2B62.0020.0002] # CANADIAN SYLLABICS LO
-14D8 ; [.2B63.0020.0002] # CANADIAN SYLLABICS LOO
-14D9 ; [.2B64.0020.0002] # CANADIAN SYLLABICS Y-CREE LOO
-14DA ; [.2B65.0020.0002] # CANADIAN SYLLABICS LA
-14DB ; [.2B66.0020.0002] # CANADIAN SYLLABICS LAA
-14DC ; [.2B67.0020.0002] # CANADIAN SYLLABICS LWE
-14DD ; [.2B68.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWE
-14DE ; [.2B69.0020.0002] # CANADIAN SYLLABICS LWI
-14DF ; [.2B6A.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWI
-14E0 ; [.2B6B.0020.0002] # CANADIAN SYLLABICS LWII
-14E1 ; [.2B6C.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWII
-14E2 ; [.2B6D.0020.0002] # CANADIAN SYLLABICS LWO
-14E3 ; [.2B6E.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWO
-14E4 ; [.2B6F.0020.0002] # CANADIAN SYLLABICS LWOO
-14E5 ; [.2B70.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWOO
-14E6 ; [.2B71.0020.0002] # CANADIAN SYLLABICS LWA
-14E7 ; [.2B72.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWA
-14E8 ; [.2B73.0020.0002] # CANADIAN SYLLABICS LWAA
-14E9 ; [.2B74.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWAA
-14EA ; [.2B75.0020.0002] # CANADIAN SYLLABICS L
-14EB ; [.2B76.0020.0002] # CANADIAN SYLLABICS WEST-CREE L
-14EC ; [.2B77.0020.0002] # CANADIAN SYLLABICS MEDIAL L
-14ED ; [.2B78.0020.0002] # CANADIAN SYLLABICS SE
-14EE ; [.2B79.0020.0002] # CANADIAN SYLLABICS SAAI
-14EF ; [.2B7A.0020.0002] # CANADIAN SYLLABICS SI
-14F0 ; [.2B7B.0020.0002] # CANADIAN SYLLABICS SII
-14F1 ; [.2B7C.0020.0002] # CANADIAN SYLLABICS SO
-14F2 ; [.2B7D.0020.0002] # CANADIAN SYLLABICS SOO
-14F3 ; [.2B7E.0020.0002] # CANADIAN SYLLABICS Y-CREE SOO
-14F4 ; [.2B7F.0020.0002] # CANADIAN SYLLABICS SA
-14F5 ; [.2B80.0020.0002] # CANADIAN SYLLABICS SAA
-14F6 ; [.2B81.0020.0002] # CANADIAN SYLLABICS SWE
-14F7 ; [.2B82.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWE
-14F8 ; [.2B83.0020.0002] # CANADIAN SYLLABICS SWI
-14F9 ; [.2B84.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWI
-14FA ; [.2B85.0020.0002] # CANADIAN SYLLABICS SWII
-14FB ; [.2B86.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWII
-14FC ; [.2B87.0020.0002] # CANADIAN SYLLABICS SWO
-14FD ; [.2B88.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWO
-14FE ; [.2B89.0020.0002] # CANADIAN SYLLABICS SWOO
-14FF ; [.2B8A.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWOO
-1500 ; [.2B8B.0020.0002] # CANADIAN SYLLABICS SWA
-1501 ; [.2B8C.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWA
-1502 ; [.2B8D.0020.0002] # CANADIAN SYLLABICS SWAA
-1503 ; [.2B8E.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWAA
-1504 ; [.2B8F.0020.0002] # CANADIAN SYLLABICS NASKAPI SWAA
-1505 ; [.2B90.0020.0002] # CANADIAN SYLLABICS S
-1506 ; [.2B91.0020.0002] # CANADIAN SYLLABICS ATHAPASCAN S
-1507 ; [.2B92.0020.0002] # CANADIAN SYLLABICS SW
-1508 ; [.2B93.0020.0002] # CANADIAN SYLLABICS BLACKFOOT S
-1509 ; [.2B94.0020.0002] # CANADIAN SYLLABICS MOOSE-CREE SK
-150A ; [.2B95.0020.0002] # CANADIAN SYLLABICS NASKAPI SKW
-150B ; [.2B96.0020.0002] # CANADIAN SYLLABICS NASKAPI S-W
-150C ; [.2B97.0020.0002] # CANADIAN SYLLABICS NASKAPI SPWA
-150D ; [.2B98.0020.0002] # CANADIAN SYLLABICS NASKAPI STWA
-150E ; [.2B99.0020.0002] # CANADIAN SYLLABICS NASKAPI SKWA
-150F ; [.2B9A.0020.0002] # CANADIAN SYLLABICS NASKAPI SCWA
-1510 ; [.2B9B.0020.0002] # CANADIAN SYLLABICS SHE
-1511 ; [.2B9C.0020.0002] # CANADIAN SYLLABICS SHI
-1512 ; [.2B9D.0020.0002] # CANADIAN SYLLABICS SHII
-1513 ; [.2B9E.0020.0002] # CANADIAN SYLLABICS SHO
-1514 ; [.2B9F.0020.0002] # CANADIAN SYLLABICS SHOO
-1515 ; [.2BA0.0020.0002] # CANADIAN SYLLABICS SHA
-1516 ; [.2BA1.0020.0002] # CANADIAN SYLLABICS SHAA
-1517 ; [.2BA2.0020.0002] # CANADIAN SYLLABICS SHWE
-1518 ; [.2BA3.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWE
-1519 ; [.2BA4.0020.0002] # CANADIAN SYLLABICS SHWI
-151A ; [.2BA5.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWI
-151B ; [.2BA6.0020.0002] # CANADIAN SYLLABICS SHWII
-151C ; [.2BA7.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWII
-151D ; [.2BA8.0020.0002] # CANADIAN SYLLABICS SHWO
-151E ; [.2BA9.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWO
-151F ; [.2BAA.0020.0002] # CANADIAN SYLLABICS SHWOO
-1520 ; [.2BAB.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWOO
-1521 ; [.2BAC.0020.0002] # CANADIAN SYLLABICS SHWA
-1522 ; [.2BAD.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWA
-1523 ; [.2BAE.0020.0002] # CANADIAN SYLLABICS SHWAA
-1524 ; [.2BAF.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWAA
-1525 ; [.2BB0.0020.0002] # CANADIAN SYLLABICS SH
-1526 ; [.2BB1.0020.0002] # CANADIAN SYLLABICS YE
-1527 ; [.2BB2.0020.0002] # CANADIAN SYLLABICS YAAI
-1528 ; [.2BB3.0020.0002] # CANADIAN SYLLABICS YI
-1529 ; [.2BB4.0020.0002] # CANADIAN SYLLABICS YII
-152A ; [.2BB5.0020.0002] # CANADIAN SYLLABICS YO
-152B ; [.2BB6.0020.0002] # CANADIAN SYLLABICS YOO
-152C ; [.2BB7.0020.0002] # CANADIAN SYLLABICS Y-CREE YOO
-152D ; [.2BB8.0020.0002] # CANADIAN SYLLABICS YA
-152E ; [.2BB9.0020.0002] # CANADIAN SYLLABICS YAA
-152F ; [.2BBA.0020.0002] # CANADIAN SYLLABICS YWE
-1530 ; [.2BBB.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWE
-1531 ; [.2BBC.0020.0002] # CANADIAN SYLLABICS YWI
-1532 ; [.2BBD.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWI
-1533 ; [.2BBE.0020.0002] # CANADIAN SYLLABICS YWII
-1534 ; [.2BBF.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWII
-1535 ; [.2BC0.0020.0002] # CANADIAN SYLLABICS YWO
-1536 ; [.2BC1.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWO
-1537 ; [.2BC2.0020.0002] # CANADIAN SYLLABICS YWOO
-1538 ; [.2BC3.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWOO
-1539 ; [.2BC4.0020.0002] # CANADIAN SYLLABICS YWA
-153A ; [.2BC5.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWA
-153B ; [.2BC6.0020.0002] # CANADIAN SYLLABICS YWAA
-153C ; [.2BC7.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWAA
-153D ; [.2BC8.0020.0002] # CANADIAN SYLLABICS NASKAPI YWAA
-153E ; [.2BC9.0020.0002] # CANADIAN SYLLABICS Y
-153F ; [.2BCA.0020.0002] # CANADIAN SYLLABICS BIBLE-CREE Y
-1540 ; [.2BCB.0020.0002] # CANADIAN SYLLABICS WEST-CREE Y
-1541 ; [.2BCC.0020.0002] # CANADIAN SYLLABICS SAYISI YI
-1542 ; [.2BCD.0020.0002] # CANADIAN SYLLABICS RE
-1543 ; [.2BCE.0020.0002] # CANADIAN SYLLABICS R-CREE RE
-1544 ; [.2BCF.0020.0002] # CANADIAN SYLLABICS WEST-CREE LE
-1545 ; [.2BD0.0020.0002] # CANADIAN SYLLABICS RAAI
-1546 ; [.2BD1.0020.0002] # CANADIAN SYLLABICS RI
-1547 ; [.2BD2.0020.0002] # CANADIAN SYLLABICS RII
-1548 ; [.2BD3.0020.0002] # CANADIAN SYLLABICS RO
-1549 ; [.2BD4.0020.0002] # CANADIAN SYLLABICS ROO
-154A ; [.2BD5.0020.0002] # CANADIAN SYLLABICS WEST-CREE LO
-154B ; [.2BD6.0020.0002] # CANADIAN SYLLABICS RA
-154C ; [.2BD7.0020.0002] # CANADIAN SYLLABICS RAA
-154D ; [.2BD8.0020.0002] # CANADIAN SYLLABICS WEST-CREE LA
-154E ; [.2BD9.0020.0002] # CANADIAN SYLLABICS RWAA
-154F ; [.2BDA.0020.0002] # CANADIAN SYLLABICS WEST-CREE RWAA
-1550 ; [.2BDB.0020.0002] # CANADIAN SYLLABICS R
-1551 ; [.2BDC.0020.0002] # CANADIAN SYLLABICS WEST-CREE R
-1552 ; [.2BDD.0020.0002] # CANADIAN SYLLABICS MEDIAL R
-1553 ; [.2BDE.0020.0002] # CANADIAN SYLLABICS FE
-1554 ; [.2BDF.0020.0002] # CANADIAN SYLLABICS FAAI
-1555 ; [.2BE0.0020.0002] # CANADIAN SYLLABICS FI
-1556 ; [.2BE1.0020.0002] # CANADIAN SYLLABICS FII
-1557 ; [.2BE2.0020.0002] # CANADIAN SYLLABICS FO
-1558 ; [.2BE3.0020.0002] # CANADIAN SYLLABICS FOO
-1559 ; [.2BE4.0020.0002] # CANADIAN SYLLABICS FA
-155A ; [.2BE5.0020.0002] # CANADIAN SYLLABICS FAA
-155B ; [.2BE6.0020.0002] # CANADIAN SYLLABICS FWAA
-155C ; [.2BE7.0020.0002] # CANADIAN SYLLABICS WEST-CREE FWAA
-155D ; [.2BE8.0020.0002] # CANADIAN SYLLABICS F
-155E ; [.2BE9.0020.0002] # CANADIAN SYLLABICS THE
-155F ; [.2BEA.0020.0002] # CANADIAN SYLLABICS N-CREE THE
-1560 ; [.2BEB.0020.0002] # CANADIAN SYLLABICS THI
-1561 ; [.2BEC.0020.0002] # CANADIAN SYLLABICS N-CREE THI
-1562 ; [.2BED.0020.0002] # CANADIAN SYLLABICS THII
-1563 ; [.2BEE.0020.0002] # CANADIAN SYLLABICS N-CREE THII
-1564 ; [.2BEF.0020.0002] # CANADIAN SYLLABICS THO
-1565 ; [.2BF0.0020.0002] # CANADIAN SYLLABICS THOO
-1566 ; [.2BF1.0020.0002] # CANADIAN SYLLABICS THA
-1567 ; [.2BF2.0020.0002] # CANADIAN SYLLABICS THAA
-1568 ; [.2BF3.0020.0002] # CANADIAN SYLLABICS THWAA
-1569 ; [.2BF4.0020.0002] # CANADIAN SYLLABICS WEST-CREE THWAA
-156A ; [.2BF5.0020.0002] # CANADIAN SYLLABICS TH
-156B ; [.2BF6.0020.0002] # CANADIAN SYLLABICS TTHE
-156C ; [.2BF7.0020.0002] # CANADIAN SYLLABICS TTHI
-156D ; [.2BF8.0020.0002] # CANADIAN SYLLABICS TTHO
-156E ; [.2BF9.0020.0002] # CANADIAN SYLLABICS TTHA
-156F ; [.2BFA.0020.0002] # CANADIAN SYLLABICS TTH
-1570 ; [.2BFB.0020.0002] # CANADIAN SYLLABICS TYE
-1571 ; [.2BFC.0020.0002] # CANADIAN SYLLABICS TYI
-1572 ; [.2BFD.0020.0002] # CANADIAN SYLLABICS TYO
-1573 ; [.2BFE.0020.0002] # CANADIAN SYLLABICS TYA
-1574 ; [.2BFF.0020.0002] # CANADIAN SYLLABICS NUNAVIK HE
-1575 ; [.2C00.0020.0002] # CANADIAN SYLLABICS NUNAVIK HI
-1576 ; [.2C01.0020.0002] # CANADIAN SYLLABICS NUNAVIK HII
-1577 ; [.2C02.0020.0002] # CANADIAN SYLLABICS NUNAVIK HO
-1578 ; [.2C03.0020.0002] # CANADIAN SYLLABICS NUNAVIK HOO
-1579 ; [.2C04.0020.0002] # CANADIAN SYLLABICS NUNAVIK HA
-157A ; [.2C05.0020.0002] # CANADIAN SYLLABICS NUNAVIK HAA
-157B ; [.2C06.0020.0002] # CANADIAN SYLLABICS NUNAVIK H
-157D ; [.2C07.0020.0002] # CANADIAN SYLLABICS HK
-166F ; [.2C08.0020.0002] # CANADIAN SYLLABICS QAI
-157E ; [.2C09.0020.0002] # CANADIAN SYLLABICS QAAI
-157F ; [.2C0A.0020.0002] # CANADIAN SYLLABICS QI
-1580 ; [.2C0B.0020.0002] # CANADIAN SYLLABICS QII
-1581 ; [.2C0C.0020.0002] # CANADIAN SYLLABICS QO
-1582 ; [.2C0D.0020.0002] # CANADIAN SYLLABICS QOO
-1583 ; [.2C0E.0020.0002] # CANADIAN SYLLABICS QA
-1584 ; [.2C0F.0020.0002] # CANADIAN SYLLABICS QAA
-1585 ; [.2C10.0020.0002] # CANADIAN SYLLABICS Q
-1586 ; [.2C11.0020.0002] # CANADIAN SYLLABICS TLHE
-1587 ; [.2C12.0020.0002] # CANADIAN SYLLABICS TLHI
-1588 ; [.2C13.0020.0002] # CANADIAN SYLLABICS TLHO
-1589 ; [.2C14.0020.0002] # CANADIAN SYLLABICS TLHA
-158A ; [.2C15.0020.0002] # CANADIAN SYLLABICS WEST-CREE RE
-158B ; [.2C16.0020.0002] # CANADIAN SYLLABICS WEST-CREE RI
-158C ; [.2C17.0020.0002] # CANADIAN SYLLABICS WEST-CREE RO
-158D ; [.2C18.0020.0002] # CANADIAN SYLLABICS WEST-CREE RA
-1670 ; [.2C19.0020.0002] # CANADIAN SYLLABICS NGAI
-158E ; [.2C1A.0020.0002] # CANADIAN SYLLABICS NGAAI
-158F ; [.2C1B.0020.0002] # CANADIAN SYLLABICS NGI
-1590 ; [.2C1C.0020.0002] # CANADIAN SYLLABICS NGII
-1591 ; [.2C1D.0020.0002] # CANADIAN SYLLABICS NGO
-1592 ; [.2C1E.0020.0002] # CANADIAN SYLLABICS NGOO
-1593 ; [.2C1F.0020.0002] # CANADIAN SYLLABICS NGA
-1594 ; [.2C20.0020.0002] # CANADIAN SYLLABICS NGAA
-1595 ; [.2C21.0020.0002] # CANADIAN SYLLABICS NG
-1671 ; [.2C22.0020.0002] # CANADIAN SYLLABICS NNGI
-1672 ; [.2C23.0020.0002] # CANADIAN SYLLABICS NNGII
-1673 ; [.2C24.0020.0002] # CANADIAN SYLLABICS NNGO
-1674 ; [.2C25.0020.0002] # CANADIAN SYLLABICS NNGOO
-1675 ; [.2C26.0020.0002] # CANADIAN SYLLABICS NNGA
-1676 ; [.2C27.0020.0002] # CANADIAN SYLLABICS NNGAA
-1596 ; [.2C28.0020.0002] # CANADIAN SYLLABICS NNG
-1597 ; [.2C29.0020.0002] # CANADIAN SYLLABICS SAYISI SHE
-1598 ; [.2C2A.0020.0002] # CANADIAN SYLLABICS SAYISI SHI
-1599 ; [.2C2B.0020.0002] # CANADIAN SYLLABICS SAYISI SHO
-159A ; [.2C2C.0020.0002] # CANADIAN SYLLABICS SAYISI SHA
-159B ; [.2C2D.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THE
-159C ; [.2C2E.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THI
-159D ; [.2C2F.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THO
-159E ; [.2C30.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THA
-159F ; [.2C31.0020.0002] # CANADIAN SYLLABICS WOODS-CREE TH
-15A0 ; [.2C32.0020.0002] # CANADIAN SYLLABICS LHI
-15A1 ; [.2C33.0020.0002] # CANADIAN SYLLABICS LHII
-15A2 ; [.2C34.0020.0002] # CANADIAN SYLLABICS LHO
-15A3 ; [.2C35.0020.0002] # CANADIAN SYLLABICS LHOO
-15A4 ; [.2C36.0020.0002] # CANADIAN SYLLABICS LHA
-15A5 ; [.2C37.0020.0002] # CANADIAN SYLLABICS LHAA
-15A6 ; [.2C38.0020.0002] # CANADIAN SYLLABICS LH
-157C ; [.2C39.0020.0002] # CANADIAN SYLLABICS NUNAVUT H
-15A7 ; [.2C3A.0020.0002] # CANADIAN SYLLABICS TH-CREE THE
-15A8 ; [.2C3B.0020.0002] # CANADIAN SYLLABICS TH-CREE THI
-15A9 ; [.2C3C.0020.0002] # CANADIAN SYLLABICS TH-CREE THII
-15AA ; [.2C3D.0020.0002] # CANADIAN SYLLABICS TH-CREE THO
-15AB ; [.2C3E.0020.0002] # CANADIAN SYLLABICS TH-CREE THOO
-15AC ; [.2C3F.0020.0002] # CANADIAN SYLLABICS TH-CREE THA
-15AD ; [.2C40.0020.0002] # CANADIAN SYLLABICS TH-CREE THAA
-15AE ; [.2C41.0020.0002] # CANADIAN SYLLABICS TH-CREE TH
-15AF ; [.2C42.0020.0002] # CANADIAN SYLLABICS AIVILIK B
-15B0 ; [.2C43.0020.0002] # CANADIAN SYLLABICS BLACKFOOT E
-15B1 ; [.2C44.0020.0002] # CANADIAN SYLLABICS BLACKFOOT I
-15B2 ; [.2C45.0020.0002] # CANADIAN SYLLABICS BLACKFOOT O
-15B3 ; [.2C46.0020.0002] # CANADIAN SYLLABICS BLACKFOOT A
-15B4 ; [.2C47.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WE
-15B5 ; [.2C48.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WI
-15B6 ; [.2C49.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WO
-15B7 ; [.2C4A.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WA
-15B8 ; [.2C4B.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NE
-15B9 ; [.2C4C.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NI
-15BA ; [.2C4D.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NO
-15BB ; [.2C4E.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NA
-15BC ; [.2C4F.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KE
-15BD ; [.2C50.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KI
-15BE ; [.2C51.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KO
-15BF ; [.2C52.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KA
-15C0 ; [.2C53.0020.0002] # CANADIAN SYLLABICS SAYISI HE
-15C1 ; [.2C54.0020.0002] # CANADIAN SYLLABICS SAYISI HI
-15C2 ; [.2C55.0020.0002] # CANADIAN SYLLABICS SAYISI HO
-15C3 ; [.2C56.0020.0002] # CANADIAN SYLLABICS SAYISI HA
-15C4 ; [.2C57.0020.0002] # CANADIAN SYLLABICS CARRIER GHU
-15C5 ; [.2C58.0020.0002] # CANADIAN SYLLABICS CARRIER GHO
-15C6 ; [.2C59.0020.0002] # CANADIAN SYLLABICS CARRIER GHE
-15C7 ; [.2C5A.0020.0002] # CANADIAN SYLLABICS CARRIER GHEE
-15C8 ; [.2C5B.0020.0002] # CANADIAN SYLLABICS CARRIER GHI
-15C9 ; [.2C5C.0020.0002] # CANADIAN SYLLABICS CARRIER GHA
-15CA ; [.2C5D.0020.0002] # CANADIAN SYLLABICS CARRIER RU
-15CB ; [.2C5E.0020.0002] # CANADIAN SYLLABICS CARRIER RO
-15CC ; [.2C5F.0020.0002] # CANADIAN SYLLABICS CARRIER RE
-15CD ; [.2C60.0020.0002] # CANADIAN SYLLABICS CARRIER REE
-15CE ; [.2C61.0020.0002] # CANADIAN SYLLABICS CARRIER RI
-15CF ; [.2C62.0020.0002] # CANADIAN SYLLABICS CARRIER RA
-15D0 ; [.2C63.0020.0002] # CANADIAN SYLLABICS CARRIER WU
-15D1 ; [.2C64.0020.0002] # CANADIAN SYLLABICS CARRIER WO
-15D2 ; [.2C65.0020.0002] # CANADIAN SYLLABICS CARRIER WE
-15D3 ; [.2C66.0020.0002] # CANADIAN SYLLABICS CARRIER WEE
-15D4 ; [.2C67.0020.0002] # CANADIAN SYLLABICS CARRIER WI
-15D5 ; [.2C68.0020.0002] # CANADIAN SYLLABICS CARRIER WA
-15D6 ; [.2C69.0020.0002] # CANADIAN SYLLABICS CARRIER HWU
-15D7 ; [.2C6A.0020.0002] # CANADIAN SYLLABICS CARRIER HWO
-15D8 ; [.2C6B.0020.0002] # CANADIAN SYLLABICS CARRIER HWE
-15D9 ; [.2C6C.0020.0002] # CANADIAN SYLLABICS CARRIER HWEE
-15DA ; [.2C6D.0020.0002] # CANADIAN SYLLABICS CARRIER HWI
-15DB ; [.2C6E.0020.0002] # CANADIAN SYLLABICS CARRIER HWA
-15DC ; [.2C6F.0020.0002] # CANADIAN SYLLABICS CARRIER THU
-15DD ; [.2C70.0020.0002] # CANADIAN SYLLABICS CARRIER THO
-15DE ; [.2C71.0020.0002] # CANADIAN SYLLABICS CARRIER THE
-15DF ; [.2C72.0020.0002] # CANADIAN SYLLABICS CARRIER THEE
-15E0 ; [.2C73.0020.0002] # CANADIAN SYLLABICS CARRIER THI
-15E1 ; [.2C74.0020.0002] # CANADIAN SYLLABICS CARRIER THA
-15E2 ; [.2C75.0020.0002] # CANADIAN SYLLABICS CARRIER TTU
-15E3 ; [.2C76.0020.0002] # CANADIAN SYLLABICS CARRIER TTO
-15E4 ; [.2C77.0020.0002] # CANADIAN SYLLABICS CARRIER TTE
-15E5 ; [.2C78.0020.0002] # CANADIAN SYLLABICS CARRIER TTEE
-15E6 ; [.2C79.0020.0002] # CANADIAN SYLLABICS CARRIER TTI
-15E7 ; [.2C7A.0020.0002] # CANADIAN SYLLABICS CARRIER TTA
-15E8 ; [.2C7B.0020.0002] # CANADIAN SYLLABICS CARRIER PU
-15E9 ; [.2C7C.0020.0002] # CANADIAN SYLLABICS CARRIER PO
-15EA ; [.2C7D.0020.0002] # CANADIAN SYLLABICS CARRIER PE
-15EB ; [.2C7E.0020.0002] # CANADIAN SYLLABICS CARRIER PEE
-15EC ; [.2C7F.0020.0002] # CANADIAN SYLLABICS CARRIER PI
-15ED ; [.2C80.0020.0002] # CANADIAN SYLLABICS CARRIER PA
-15EE ; [.2C81.0020.0002] # CANADIAN SYLLABICS CARRIER P
-15EF ; [.2C82.0020.0002] # CANADIAN SYLLABICS CARRIER GU
-15F0 ; [.2C83.0020.0002] # CANADIAN SYLLABICS CARRIER GO
-15F1 ; [.2C84.0020.0002] # CANADIAN SYLLABICS CARRIER GE
-15F2 ; [.2C85.0020.0002] # CANADIAN SYLLABICS CARRIER GEE
-15F3 ; [.2C86.0020.0002] # CANADIAN SYLLABICS CARRIER GI
-15F4 ; [.2C87.0020.0002] # CANADIAN SYLLABICS CARRIER GA
-15F5 ; [.2C88.0020.0002] # CANADIAN SYLLABICS CARRIER KHU
-15F6 ; [.2C89.0020.0002] # CANADIAN SYLLABICS CARRIER KHO
-15F7 ; [.2C8A.0020.0002] # CANADIAN SYLLABICS CARRIER KHE
-15F8 ; [.2C8B.0020.0002] # CANADIAN SYLLABICS CARRIER KHEE
-15F9 ; [.2C8C.0020.0002] # CANADIAN SYLLABICS CARRIER KHI
-15FA ; [.2C8D.0020.0002] # CANADIAN SYLLABICS CARRIER KHA
-15FB ; [.2C8E.0020.0002] # CANADIAN SYLLABICS CARRIER KKU
-15FC ; [.2C8F.0020.0002] # CANADIAN SYLLABICS CARRIER KKO
-15FD ; [.2C90.0020.0002] # CANADIAN SYLLABICS CARRIER KKE
-15FE ; [.2C91.0020.0002] # CANADIAN SYLLABICS CARRIER KKEE
-15FF ; [.2C92.0020.0002] # CANADIAN SYLLABICS CARRIER KKI
-1600 ; [.2C93.0020.0002] # CANADIAN SYLLABICS CARRIER KKA
-1601 ; [.2C94.0020.0002] # CANADIAN SYLLABICS CARRIER KK
-1602 ; [.2C95.0020.0002] # CANADIAN SYLLABICS CARRIER NU
-1603 ; [.2C96.0020.0002] # CANADIAN SYLLABICS CARRIER NO
-1604 ; [.2C97.0020.0002] # CANADIAN SYLLABICS CARRIER NE
-1605 ; [.2C98.0020.0002] # CANADIAN SYLLABICS CARRIER NEE
-1606 ; [.2C99.0020.0002] # CANADIAN SYLLABICS CARRIER NI
-1607 ; [.2C9A.0020.0002] # CANADIAN SYLLABICS CARRIER NA
-1608 ; [.2C9B.0020.0002] # CANADIAN SYLLABICS CARRIER MU
-1609 ; [.2C9C.0020.0002] # CANADIAN SYLLABICS CARRIER MO
-160A ; [.2C9D.0020.0002] # CANADIAN SYLLABICS CARRIER ME
-160B ; [.2C9E.0020.0002] # CANADIAN SYLLABICS CARRIER MEE
-160C ; [.2C9F.0020.0002] # CANADIAN SYLLABICS CARRIER MI
-160D ; [.2CA0.0020.0002] # CANADIAN SYLLABICS CARRIER MA
-160E ; [.2CA1.0020.0002] # CANADIAN SYLLABICS CARRIER YU
-160F ; [.2CA2.0020.0002] # CANADIAN SYLLABICS CARRIER YO
-1610 ; [.2CA3.0020.0002] # CANADIAN SYLLABICS CARRIER YE
-1611 ; [.2CA4.0020.0002] # CANADIAN SYLLABICS CARRIER YEE
-1612 ; [.2CA5.0020.0002] # CANADIAN SYLLABICS CARRIER YI
-1613 ; [.2CA6.0020.0002] # CANADIAN SYLLABICS CARRIER YA
-1614 ; [.2CA7.0020.0002] # CANADIAN SYLLABICS CARRIER JU
-1615 ; [.2CA8.0020.0002] # CANADIAN SYLLABICS SAYISI JU
-1616 ; [.2CA9.0020.0002] # CANADIAN SYLLABICS CARRIER JO
-1617 ; [.2CAA.0020.0002] # CANADIAN SYLLABICS CARRIER JE
-1618 ; [.2CAB.0020.0002] # CANADIAN SYLLABICS CARRIER JEE
-1619 ; [.2CAC.0020.0002] # CANADIAN SYLLABICS CARRIER JI
-161A ; [.2CAD.0020.0002] # CANADIAN SYLLABICS SAYISI JI
-161B ; [.2CAE.0020.0002] # CANADIAN SYLLABICS CARRIER JA
-161C ; [.2CAF.0020.0002] # CANADIAN SYLLABICS CARRIER JJU
-161D ; [.2CB0.0020.0002] # CANADIAN SYLLABICS CARRIER JJO
-161E ; [.2CB1.0020.0002] # CANADIAN SYLLABICS CARRIER JJE
-161F ; [.2CB2.0020.0002] # CANADIAN SYLLABICS CARRIER JJEE
-1620 ; [.2CB3.0020.0002] # CANADIAN SYLLABICS CARRIER JJI
-1621 ; [.2CB4.0020.0002] # CANADIAN SYLLABICS CARRIER JJA
-1622 ; [.2CB5.0020.0002] # CANADIAN SYLLABICS CARRIER LU
-1623 ; [.2CB6.0020.0002] # CANADIAN SYLLABICS CARRIER LO
-1624 ; [.2CB7.0020.0002] # CANADIAN SYLLABICS CARRIER LE
-1625 ; [.2CB8.0020.0002] # CANADIAN SYLLABICS CARRIER LEE
-1626 ; [.2CB9.0020.0002] # CANADIAN SYLLABICS CARRIER LI
-1627 ; [.2CBA.0020.0002] # CANADIAN SYLLABICS CARRIER LA
-1628 ; [.2CBB.0020.0002] # CANADIAN SYLLABICS CARRIER DLU
-1629 ; [.2CBC.0020.0002] # CANADIAN SYLLABICS CARRIER DLO
-162A ; [.2CBD.0020.0002] # CANADIAN SYLLABICS CARRIER DLE
-162B ; [.2CBE.0020.0002] # CANADIAN SYLLABICS CARRIER DLEE
-162C ; [.2CBF.0020.0002] # CANADIAN SYLLABICS CARRIER DLI
-162D ; [.2CC0.0020.0002] # CANADIAN SYLLABICS CARRIER DLA
-162E ; [.2CC1.0020.0002] # CANADIAN SYLLABICS CARRIER LHU
-162F ; [.2CC2.0020.0002] # CANADIAN SYLLABICS CARRIER LHO
-1630 ; [.2CC3.0020.0002] # CANADIAN SYLLABICS CARRIER LHE
-1631 ; [.2CC4.0020.0002] # CANADIAN SYLLABICS CARRIER LHEE
-1632 ; [.2CC5.0020.0002] # CANADIAN SYLLABICS CARRIER LHI
-1633 ; [.2CC6.0020.0002] # CANADIAN SYLLABICS CARRIER LHA
-1634 ; [.2CC7.0020.0002] # CANADIAN SYLLABICS CARRIER TLHU
-1635 ; [.2CC8.0020.0002] # CANADIAN SYLLABICS CARRIER TLHO
-1636 ; [.2CC9.0020.0002] # CANADIAN SYLLABICS CARRIER TLHE
-1637 ; [.2CCA.0020.0002] # CANADIAN SYLLABICS CARRIER TLHEE
-1638 ; [.2CCB.0020.0002] # CANADIAN SYLLABICS CARRIER TLHI
-1639 ; [.2CCC.0020.0002] # CANADIAN SYLLABICS CARRIER TLHA
-163A ; [.2CCD.0020.0002] # CANADIAN SYLLABICS CARRIER TLU
-163B ; [.2CCE.0020.0002] # CANADIAN SYLLABICS CARRIER TLO
-163C ; [.2CCF.0020.0002] # CANADIAN SYLLABICS CARRIER TLE
-163D ; [.2CD0.0020.0002] # CANADIAN SYLLABICS CARRIER TLEE
-163E ; [.2CD1.0020.0002] # CANADIAN SYLLABICS CARRIER TLI
-163F ; [.2CD2.0020.0002] # CANADIAN SYLLABICS CARRIER TLA
-1640 ; [.2CD3.0020.0002] # CANADIAN SYLLABICS CARRIER ZU
-1641 ; [.2CD4.0020.0002] # CANADIAN SYLLABICS CARRIER ZO
-1642 ; [.2CD5.0020.0002] # CANADIAN SYLLABICS CARRIER ZE
-1643 ; [.2CD6.0020.0002] # CANADIAN SYLLABICS CARRIER ZEE
-1644 ; [.2CD7.0020.0002] # CANADIAN SYLLABICS CARRIER ZI
-1645 ; [.2CD8.0020.0002] # CANADIAN SYLLABICS CARRIER ZA
-1646 ; [.2CD9.0020.0002] # CANADIAN SYLLABICS CARRIER Z
-1647 ; [.2CDA.0020.0002] # CANADIAN SYLLABICS CARRIER INITIAL Z
-1648 ; [.2CDB.0020.0002] # CANADIAN SYLLABICS CARRIER DZU
-1649 ; [.2CDC.0020.0002] # CANADIAN SYLLABICS CARRIER DZO
-164A ; [.2CDD.0020.0002] # CANADIAN SYLLABICS CARRIER DZE
-164B ; [.2CDE.0020.0002] # CANADIAN SYLLABICS CARRIER DZEE
-164C ; [.2CDF.0020.0002] # CANADIAN SYLLABICS CARRIER DZI
-164D ; [.2CE0.0020.0002] # CANADIAN SYLLABICS CARRIER DZA
-164E ; [.2CE1.0020.0002] # CANADIAN SYLLABICS CARRIER SU
-164F ; [.2CE2.0020.0002] # CANADIAN SYLLABICS CARRIER SO
-1650 ; [.2CE3.0020.0002] # CANADIAN SYLLABICS CARRIER SE
-1651 ; [.2CE4.0020.0002] # CANADIAN SYLLABICS CARRIER SEE
-1652 ; [.2CE5.0020.0002] # CANADIAN SYLLABICS CARRIER SI
-1653 ; [.2CE6.0020.0002] # CANADIAN SYLLABICS CARRIER SA
-1654 ; [.2CE7.0020.0002] # CANADIAN SYLLABICS CARRIER SHU
-1655 ; [.2CE8.0020.0002] # CANADIAN SYLLABICS CARRIER SHO
-1656 ; [.2CE9.0020.0002] # CANADIAN SYLLABICS CARRIER SHE
-1657 ; [.2CEA.0020.0002] # CANADIAN SYLLABICS CARRIER SHEE
-1658 ; [.2CEB.0020.0002] # CANADIAN SYLLABICS CARRIER SHI
-1659 ; [.2CEC.0020.0002] # CANADIAN SYLLABICS CARRIER SHA
-165A ; [.2CED.0020.0002] # CANADIAN SYLLABICS CARRIER SH
-165B ; [.2CEE.0020.0002] # CANADIAN SYLLABICS CARRIER TSU
-165C ; [.2CEF.0020.0002] # CANADIAN SYLLABICS CARRIER TSO
-165D ; [.2CF0.0020.0002] # CANADIAN SYLLABICS CARRIER TSE
-165E ; [.2CF1.0020.0002] # CANADIAN SYLLABICS CARRIER TSEE
-165F ; [.2CF2.0020.0002] # CANADIAN SYLLABICS CARRIER TSI
-1660 ; [.2CF3.0020.0002] # CANADIAN SYLLABICS CARRIER TSA
-1661 ; [.2CF4.0020.0002] # CANADIAN SYLLABICS CARRIER CHU
-1662 ; [.2CF5.0020.0002] # CANADIAN SYLLABICS CARRIER CHO
-1663 ; [.2CF6.0020.0002] # CANADIAN SYLLABICS CARRIER CHE
-1664 ; [.2CF7.0020.0002] # CANADIAN SYLLABICS CARRIER CHEE
-1665 ; [.2CF8.0020.0002] # CANADIAN SYLLABICS CARRIER CHI
-1666 ; [.2CF9.0020.0002] # CANADIAN SYLLABICS CARRIER CHA
-1667 ; [.2CFA.0020.0002] # CANADIAN SYLLABICS CARRIER TTSU
-1668 ; [.2CFB.0020.0002] # CANADIAN SYLLABICS CARRIER TTSO
-1669 ; [.2CFC.0020.0002] # CANADIAN SYLLABICS CARRIER TTSE
-166A ; [.2CFD.0020.0002] # CANADIAN SYLLABICS CARRIER TTSEE
-166B ; [.2CFE.0020.0002] # CANADIAN SYLLABICS CARRIER TTSI
-166C ; [.2CFF.0020.0002] # CANADIAN SYLLABICS CARRIER TTSA
-1677 ; [.2D00.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWEE
-1678 ; [.2D01.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWI
-1679 ; [.2D02.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWII
-167A ; [.2D03.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWO
-167B ; [.2D04.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWOO
-167C ; [.2D05.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWA
-167D ; [.2D06.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWAA
-167E ; [.2D07.0020.0002] # CANADIAN SYLLABICS WOODS-CREE FINAL TH
-167F ; [.2D08.0020.0002] # CANADIAN SYLLABICS BLACKFOOT W
-18B0 ; [.2D09.0020.0002] # CANADIAN SYLLABICS OY
-18B1 ; [.2D0A.0020.0002] # CANADIAN SYLLABICS AY
-18B2 ; [.2D0B.0020.0002] # CANADIAN SYLLABICS AAY
-18B3 ; [.2D0C.0020.0002] # CANADIAN SYLLABICS WAY
-18B4 ; [.2D0D.0020.0002] # CANADIAN SYLLABICS POY
-18B5 ; [.2D0E.0020.0002] # CANADIAN SYLLABICS PAY
-18B6 ; [.2D0F.0020.0002] # CANADIAN SYLLABICS PWOY
-18B7 ; [.2D10.0020.0002] # CANADIAN SYLLABICS TAY
-18B8 ; [.2D11.0020.0002] # CANADIAN SYLLABICS KAY
-18B9 ; [.2D12.0020.0002] # CANADIAN SYLLABICS KWAY
-18BA ; [.2D13.0020.0002] # CANADIAN SYLLABICS MAY
-18BB ; [.2D14.0020.0002] # CANADIAN SYLLABICS NOY
-18BC ; [.2D15.0020.0002] # CANADIAN SYLLABICS NAY
-18BD ; [.2D16.0020.0002] # CANADIAN SYLLABICS LAY
-18BE ; [.2D17.0020.0002] # CANADIAN SYLLABICS SOY
-18BF ; [.2D18.0020.0002] # CANADIAN SYLLABICS SAY
-18C0 ; [.2D19.0020.0002] # CANADIAN SYLLABICS SHOY
-18C1 ; [.2D1A.0020.0002] # CANADIAN SYLLABICS SHAY
-18C2 ; [.2D1B.0020.0002] # CANADIAN SYLLABICS SHWOY
-18C3 ; [.2D1C.0020.0002] # CANADIAN SYLLABICS YOY
-18C4 ; [.2D1D.0020.0002] # CANADIAN SYLLABICS YAY
-18C5 ; [.2D1E.0020.0002] # CANADIAN SYLLABICS RAY
-18C6 ; [.2D1F.0020.0002] # CANADIAN SYLLABICS NWI
-18C7 ; [.2D20.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWI
-18C8 ; [.2D21.0020.0002] # CANADIAN SYLLABICS NWII
-18C9 ; [.2D22.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWII
-18CA ; [.2D23.0020.0002] # CANADIAN SYLLABICS NWO
-18CB ; [.2D24.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWO
-18CC ; [.2D25.0020.0002] # CANADIAN SYLLABICS NWOO
-18CD ; [.2D26.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWOO
-18CE ; [.2D27.0020.0002] # CANADIAN SYLLABICS RWEE
-18CF ; [.2D28.0020.0002] # CANADIAN SYLLABICS RWI
-18D0 ; [.2D29.0020.0002] # CANADIAN SYLLABICS RWII
-18D1 ; [.2D2A.0020.0002] # CANADIAN SYLLABICS RWO
-18D2 ; [.2D2B.0020.0002] # CANADIAN SYLLABICS RWOO
-18D3 ; [.2D2C.0020.0002] # CANADIAN SYLLABICS RWA
-18D4 ; [.2D2D.0020.0002] # CANADIAN SYLLABICS OJIBWAY P
-18D5 ; [.2D2E.0020.0002] # CANADIAN SYLLABICS OJIBWAY T
-18D6 ; [.2D2F.0020.0002] # CANADIAN SYLLABICS OJIBWAY K
-18D7 ; [.2D30.0020.0002] # CANADIAN SYLLABICS OJIBWAY C
-18D8 ; [.2D31.0020.0002] # CANADIAN SYLLABICS OJIBWAY M
-18D9 ; [.2D32.0020.0002] # CANADIAN SYLLABICS OJIBWAY N
-18DA ; [.2D33.0020.0002] # CANADIAN SYLLABICS OJIBWAY S
-18DB ; [.2D34.0020.0002] # CANADIAN SYLLABICS OJIBWAY SH
-18DC ; [.2D35.0020.0002] # CANADIAN SYLLABICS EASTERN W
-18DD ; [.2D36.0020.0002] # CANADIAN SYLLABICS WESTERN W
-18DE ; [.2D37.0020.0002] # CANADIAN SYLLABICS FINAL SMALL RING
-18DF ; [.2D38.0020.0002] # CANADIAN SYLLABICS FINAL RAISED DOT
-18E0 ; [.2D39.0020.0002] # CANADIAN SYLLABICS R-CREE RWE
-18E1 ; [.2D3A.0020.0002] # CANADIAN SYLLABICS WEST-CREE LOO
-18E2 ; [.2D3B.0020.0002] # CANADIAN SYLLABICS WEST-CREE LAA
-18E3 ; [.2D3C.0020.0002] # CANADIAN SYLLABICS THWE
-18E4 ; [.2D3D.0020.0002] # CANADIAN SYLLABICS THWA
-18E5 ; [.2D3E.0020.0002] # CANADIAN SYLLABICS TTHWE
-18E6 ; [.2D3F.0020.0002] # CANADIAN SYLLABICS TTHOO
-18E7 ; [.2D40.0020.0002] # CANADIAN SYLLABICS TTHAA
-18E8 ; [.2D41.0020.0002] # CANADIAN SYLLABICS TLHWE
-18E9 ; [.2D42.0020.0002] # CANADIAN SYLLABICS TLHOO
-18EA ; [.2D43.0020.0002] # CANADIAN SYLLABICS SAYISI SHWE
-18EB ; [.2D44.0020.0002] # CANADIAN SYLLABICS SAYISI SHOO
-18EC ; [.2D45.0020.0002] # CANADIAN SYLLABICS SAYISI HOO
-18ED ; [.2D46.0020.0002] # CANADIAN SYLLABICS CARRIER GWU
-18EE ; [.2D47.0020.0002] # CANADIAN SYLLABICS CARRIER DENE GEE
-18EF ; [.2D48.0020.0002] # CANADIAN SYLLABICS CARRIER GAA
-18F0 ; [.2D49.0020.0002] # CANADIAN SYLLABICS CARRIER GWA
-18F1 ; [.2D4A.0020.0002] # CANADIAN SYLLABICS SAYISI JUU
-18F2 ; [.2D4B.0020.0002] # CANADIAN SYLLABICS CARRIER JWA
-18F3 ; [.2D4C.0020.0002] # CANADIAN SYLLABICS BEAVER DENE L
-18F4 ; [.2D4D.0020.0002] # CANADIAN SYLLABICS BEAVER DENE R
-18F5 ; [.2D4E.0020.0002] # CANADIAN SYLLABICS CARRIER DENTAL S
-1681 ; [.2D4F.0020.0002] # OGHAM LETTER BEITH
-1682 ; [.2D50.0020.0002] # OGHAM LETTER LUIS
-1683 ; [.2D51.0020.0002] # OGHAM LETTER FEARN
-1684 ; [.2D52.0020.0002] # OGHAM LETTER SAIL
-1685 ; [.2D53.0020.0002] # OGHAM LETTER NION
-1686 ; [.2D54.0020.0002] # OGHAM LETTER UATH
-1687 ; [.2D55.0020.0002] # OGHAM LETTER DAIR
-1688 ; [.2D56.0020.0002] # OGHAM LETTER TINNE
-1689 ; [.2D57.0020.0002] # OGHAM LETTER COLL
-168A ; [.2D58.0020.0002] # OGHAM LETTER CEIRT
-168B ; [.2D59.0020.0002] # OGHAM LETTER MUIN
-168C ; [.2D5A.0020.0002] # OGHAM LETTER GORT
-168D ; [.2D5B.0020.0002] # OGHAM LETTER NGEADAL
-168E ; [.2D5C.0020.0002] # OGHAM LETTER STRAIF
-168F ; [.2D5D.0020.0002] # OGHAM LETTER RUIS
-1690 ; [.2D5E.0020.0002] # OGHAM LETTER AILM
-1691 ; [.2D5F.0020.0002] # OGHAM LETTER ONN
-1692 ; [.2D60.0020.0002] # OGHAM LETTER UR
-1693 ; [.2D61.0020.0002] # OGHAM LETTER EADHADH
-1694 ; [.2D62.0020.0002] # OGHAM LETTER IODHADH
-1695 ; [.2D63.0020.0002] # OGHAM LETTER EABHADH
-1696 ; [.2D64.0020.0002] # OGHAM LETTER OR
-1697 ; [.2D65.0020.0002] # OGHAM LETTER UILLEANN
-1698 ; [.2D66.0020.0002] # OGHAM LETTER IFIN
-1699 ; [.2D67.0020.0002] # OGHAM LETTER EAMHANCHOLL
-169A ; [.2D68.0020.0002] # OGHAM LETTER PEITH
-16A0 ; [.2D69.0020.0002] # RUNIC LETTER FEHU FEOH FE F
-16A1 ; [.2D69.0020.0004][.0000.00FC.0004] # RUNIC LETTER V
-16A2 ; [.2D6A.0020.0002] # RUNIC LETTER URUZ UR U
-16A4 ; [.2D6A.0020.0004][.0000.00FC.0004] # RUNIC LETTER Y
-16A5 ; [.2D6A.0020.0004][.0000.00FD.0004] # RUNIC LETTER W
-16A6 ; [.2D6B.0020.0002] # RUNIC LETTER THURISAZ THURS THORN
-16A7 ; [.2D6B.0020.0004][.0000.00FC.0004] # RUNIC LETTER ETH
-16F0 ; [.2D6B.0020.0004][.2D6B.0020.0004] # RUNIC BELGTHOR SYMBOL
-16A8 ; [.2D6C.0020.0002] # RUNIC LETTER ANSUZ A
-16A9 ; [.2D6C.0020.0004][.0000.00FC.0004] # RUNIC LETTER OS O
-16AC ; [.2D6C.0020.0004][.0000.00FD.0004] # RUNIC LETTER LONG-BRANCH-OSS O
-16AD ; [.2D6C.0020.0004][.0000.00FE.0004] # RUNIC LETTER SHORT-TWIG-OSS O
-16AE ; [.2D6C.0020.0004][.0000.00FF.0004] # RUNIC LETTER O
-16AF ; [.2D6D.0020.0002] # RUNIC LETTER OE
-16B0 ; [.2D6E.0020.0002] # RUNIC LETTER ON
-16B1 ; [.2D6F.0020.0002] # RUNIC LETTER RAIDO RAD REID R
-16B2 ; [.2D70.0020.0002] # RUNIC LETTER KAUNA
-16B3 ; [.2D70.0020.0004][.0000.00FC.0004] # RUNIC LETTER CEN
-16B4 ; [.2D70.0020.0004][.0000.00FD.0004] # RUNIC LETTER KAUN K
-16B5 ; [.2D70.0020.0004][.0000.00FE.0004] # RUNIC LETTER G
-16B6 ; [.2D70.0020.0004][.0000.00FF.0004] # RUNIC LETTER ENG
-16B7 ; [.2D71.0020.0002] # RUNIC LETTER GEBO GYFU G
-16B9 ; [.2D72.0020.0002] # RUNIC LETTER WUNJO WYNN W
-16E9 ; [.2D72.0020.0004][.0000.00FC.0004] # RUNIC LETTER Q
-16BA ; [.2D73.0020.0002] # RUNIC LETTER HAGLAZ H
-16BB ; [.2D73.0020.0004][.0000.00FC.0004] # RUNIC LETTER HAEGL H
-16BC ; [.2D73.0020.0004][.0000.00FD.0004] # RUNIC LETTER LONG-BRANCH-HAGALL H
-16BD ; [.2D73.0020.0004][.0000.00FE.0004] # RUNIC LETTER SHORT-TWIG-HAGALL H
-16BE ; [.2D74.0020.0002] # RUNIC LETTER NAUDIZ NYD NAUD N
-16BF ; [.2D74.0020.0004][.0000.00FC.0004] # RUNIC LETTER SHORT-TWIG-NAUD N
-16C0 ; [.2D74.0020.0004][.0000.00FD.0004] # RUNIC LETTER DOTTED-N
-16C1 ; [.2D75.0020.0002] # RUNIC LETTER ISAZ IS ISS I
-16C2 ; [.2D75.0020.0004][.0000.00FC.0004] # RUNIC LETTER E
-16C3 ; [.2D76.0020.0002] # RUNIC LETTER JERAN J
-16C4 ; [.2D76.0020.0004][.0000.00FC.0004] # RUNIC LETTER GER
-16C5 ; [.2D77.0020.0002] # RUNIC LETTER LONG-BRANCH-AR AE
-16C6 ; [.2D77.0020.0004][.0000.00FC.0004] # RUNIC LETTER SHORT-TWIG-AR A
-16EE ; [.2D77.0020.0004][.2D80.0020.0004] # RUNIC ARLAUG SYMBOL
-16C7 ; [.2D78.0020.0002] # RUNIC LETTER IWAZ EOH
-16C8 ; [.2D79.0020.0002] # RUNIC LETTER PERTHO PEORTH P
-16D5 ; [.2D79.0020.0004][.0000.00FC.0004] # RUNIC LETTER OPEN-P
-16C9 ; [.2D7A.0020.0002] # RUNIC LETTER ALGIZ EOLHX
-16CA ; [.2D7B.0020.0002] # RUNIC LETTER SOWILO S
-16CB ; [.2D7B.0020.0004][.0000.00FC.0004] # RUNIC LETTER SIGEL LONG-BRANCH-SOL S
-16EA ; [.2D7B.0020.0004][.0000.00FD.0004] # RUNIC LETTER X
-16CC ; [.2D7B.0020.0004][.0000.00FE.0004] # RUNIC LETTER SHORT-TWIG-SOL S
-16CD ; [.2D7B.0020.0004][.0000.00FF.0004] # RUNIC LETTER C
-16CE ; [.2D7B.0020.0004][.0000.0100.0004] # RUNIC LETTER Z
-16CF ; [.2D7C.0020.0002] # RUNIC LETTER TIWAZ TIR TYR T
-16D0 ; [.2D7C.0020.0004][.0000.00FC.0004] # RUNIC LETTER SHORT-TWIG-TYR T
-16D1 ; [.2D7C.0020.0004][.0000.00FD.0004] # RUNIC LETTER D
-16D2 ; [.2D7D.0020.0002] # RUNIC LETTER BERKANAN BEORC BJARKAN B
-16D3 ; [.2D7D.0020.0004][.0000.00FC.0004] # RUNIC LETTER SHORT-TWIG-BJARKAN B
-16D4 ; [.2D7D.0020.0004][.0000.00FD.0004] # RUNIC LETTER DOTTED-P
-16D6 ; [.2D7E.0020.0002] # RUNIC LETTER EHWAZ EH E
-16D7 ; [.2D7F.0020.0002] # RUNIC LETTER MANNAZ MAN M
-16D8 ; [.2D7F.0020.0004][.0000.00FC.0004] # RUNIC LETTER LONG-BRANCH-MADR M
-16D9 ; [.2D7F.0020.0004][.0000.00FD.0004] # RUNIC LETTER SHORT-TWIG-MADR M
-16EF ; [.2D7F.0020.0004][.0000.00FC.0004][.2D7F.0020.0004][.0000.00FC.0004] # RUNIC TVIMADUR SYMBOL
-16DA ; [.2D80.0020.0002] # RUNIC LETTER LAUKAZ LAGU LOGR L
-16DB ; [.2D80.0020.0004][.0000.00FC.0004] # RUNIC LETTER DOTTED-L
-16DC ; [.2D81.0020.0002] # RUNIC LETTER INGWAZ
-16DD ; [.2D81.0020.0004][.0000.00FC.0004] # RUNIC LETTER ING
-16DE ; [.2D82.0020.0002] # RUNIC LETTER DAGAZ DAEG D
-16DF ; [.2D83.0020.0002] # RUNIC LETTER OTHALAN ETHEL O
-16AA ; [.2D84.0020.0002] # RUNIC LETTER AC A
-16AB ; [.2D85.0020.0002] # RUNIC LETTER AESC
-16A3 ; [.2D86.0020.0002] # RUNIC LETTER YR
-16E0 ; [.2D87.0020.0002] # RUNIC LETTER EAR
-16E3 ; [.2D88.0020.0002] # RUNIC LETTER CALC
-16B8 ; [.2D89.0020.0002] # RUNIC LETTER GAR
-16E4 ; [.2D8A.0020.0002] # RUNIC LETTER CEALC
-16E1 ; [.2D8B.0020.0002] # RUNIC LETTER IOR
-16E2 ; [.2D8C.0020.0002] # RUNIC LETTER CWEORTH
-16E5 ; [.2D8D.0020.0002] # RUNIC LETTER STAN
-16E6 ; [.2D8E.0020.0002] # RUNIC LETTER LONG-BRANCH-YR
-16E7 ; [.2D8E.0020.0004][.0000.00FC.0004] # RUNIC LETTER SHORT-TWIG-YR
-16E8 ; [.2D8E.0020.0004][.0000.00FD.0004] # RUNIC LETTER ICELANDIC-YR
-10C00 ; [.2D8F.0020.0002] # OLD TURKIC LETTER ORKHON A
-10C01 ; [.2D8F.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI A
-10C02 ; [.2D90.0020.0002] # OLD TURKIC LETTER YENISEI AE
-10C03 ; [.2D91.0020.0002] # OLD TURKIC LETTER ORKHON I
-10C04 ; [.2D91.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI I
-10C05 ; [.2D92.0020.0002] # OLD TURKIC LETTER YENISEI E
-10C06 ; [.2D93.0020.0002] # OLD TURKIC LETTER ORKHON O
-10C07 ; [.2D94.0020.0002] # OLD TURKIC LETTER ORKHON OE
-10C08 ; [.2D94.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI OE
-10C09 ; [.2D95.0020.0002] # OLD TURKIC LETTER ORKHON AB
-10C0A ; [.2D95.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AB
-10C0B ; [.2D96.0020.0002] # OLD TURKIC LETTER ORKHON AEB
-10C0C ; [.2D96.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AEB
-10C0D ; [.2D97.0020.0002] # OLD TURKIC LETTER ORKHON AG
-10C0E ; [.2D97.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AG
-10C0F ; [.2D98.0020.0002] # OLD TURKIC LETTER ORKHON AEG
-10C10 ; [.2D98.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AEG
-10C11 ; [.2D99.0020.0002] # OLD TURKIC LETTER ORKHON AD
-10C12 ; [.2D99.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AD
-10C13 ; [.2D9A.0020.0002] # OLD TURKIC LETTER ORKHON AED
-10C14 ; [.2D9B.0020.0002] # OLD TURKIC LETTER ORKHON EZ
-10C15 ; [.2D9B.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI EZ
-10C16 ; [.2D9C.0020.0002] # OLD TURKIC LETTER ORKHON AY
-10C17 ; [.2D9C.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AY
-10C18 ; [.2D9D.0020.0002] # OLD TURKIC LETTER ORKHON AEY
-10C19 ; [.2D9D.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AEY
-10C1A ; [.2D9E.0020.0002] # OLD TURKIC LETTER ORKHON AEK
-10C1B ; [.2D9E.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AEK
-10C1C ; [.2D9F.0020.0002] # OLD TURKIC LETTER ORKHON OEK
-10C1D ; [.2D9F.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI OEK
-10C1E ; [.2DA0.0020.0002] # OLD TURKIC LETTER ORKHON AL
-10C1F ; [.2DA0.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AL
-10C20 ; [.2DA1.0020.0002] # OLD TURKIC LETTER ORKHON AEL
-10C21 ; [.2DA2.0020.0002] # OLD TURKIC LETTER ORKHON ELT
-10C22 ; [.2DA3.0020.0002] # OLD TURKIC LETTER ORKHON EM
-10C23 ; [.2DA4.0020.0002] # OLD TURKIC LETTER ORKHON AN
-10C24 ; [.2DA5.0020.0002] # OLD TURKIC LETTER ORKHON AEN
-10C25 ; [.2DA5.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AEN
-10C26 ; [.2DA6.0020.0002] # OLD TURKIC LETTER ORKHON ENT
-10C27 ; [.2DA6.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI ENT
-10C28 ; [.2DA7.0020.0002] # OLD TURKIC LETTER ORKHON ENC
-10C29 ; [.2DA7.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI ENC
-10C2A ; [.2DA8.0020.0002] # OLD TURKIC LETTER ORKHON ENY
-10C2B ; [.2DA8.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI ENY
-10C2C ; [.2DA9.0020.0002] # OLD TURKIC LETTER YENISEI ANG
-10C2D ; [.2DAA.0020.0002] # OLD TURKIC LETTER ORKHON ENG
-10C2E ; [.2DAA.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AENG
-10C2F ; [.2DAB.0020.0002] # OLD TURKIC LETTER ORKHON EP
-10C30 ; [.2DAC.0020.0002] # OLD TURKIC LETTER ORKHON OP
-10C31 ; [.2DAD.0020.0002] # OLD TURKIC LETTER ORKHON IC
-10C32 ; [.2DAE.0020.0002] # OLD TURKIC LETTER ORKHON EC
-10C33 ; [.2DAE.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI EC
-10C34 ; [.2DAF.0020.0002] # OLD TURKIC LETTER ORKHON AQ
-10C35 ; [.2DAF.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AQ
-10C36 ; [.2DB0.0020.0002] # OLD TURKIC LETTER ORKHON IQ
-10C37 ; [.2DB0.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI IQ
-10C38 ; [.2DB1.0020.0002] # OLD TURKIC LETTER ORKHON OQ
-10C39 ; [.2DB1.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI OQ
-10C3A ; [.2DB2.0020.0002] # OLD TURKIC LETTER ORKHON AR
-10C3B ; [.2DB2.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AR
-10C3C ; [.2DB3.0020.0002] # OLD TURKIC LETTER ORKHON AER
-10C3D ; [.2DB4.0020.0002] # OLD TURKIC LETTER ORKHON AS
-10C3E ; [.2DB5.0020.0002] # OLD TURKIC LETTER ORKHON AES
-10C3F ; [.2DB6.0020.0002] # OLD TURKIC LETTER ORKHON ASH
-10C40 ; [.2DB6.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI ASH
-10C41 ; [.2DB7.0020.0002] # OLD TURKIC LETTER ORKHON ESH
-10C42 ; [.2DB7.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI ESH
-10C43 ; [.2DB8.0020.0002] # OLD TURKIC LETTER ORKHON AT
-10C44 ; [.2DB8.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AT
-10C45 ; [.2DB9.0020.0002] # OLD TURKIC LETTER ORKHON AET
-10C46 ; [.2DB9.0020.0004][.0000.00FC.0004] # OLD TURKIC LETTER YENISEI AET
-10C47 ; [.2DBA.0020.0002] # OLD TURKIC LETTER ORKHON OT
-10C48 ; [.2DBB.0020.0002] # OLD TURKIC LETTER ORKHON BASH
-A500 ; [.2DBC.0020.0002] # VAI SYLLABLE EE
-A501 ; [.2DBD.0020.0002] # VAI SYLLABLE EEN
-A502 ; [.2DBE.0020.0002] # VAI SYLLABLE HEE
-A503 ; [.2DBF.0020.0002] # VAI SYLLABLE WEE
-A504 ; [.2DC0.0020.0002] # VAI SYLLABLE WEEN
-A505 ; [.2DC1.0020.0002] # VAI SYLLABLE PEE
-A506 ; [.2DC2.0020.0002] # VAI SYLLABLE BHEE
-A507 ; [.2DC3.0020.0002] # VAI SYLLABLE BEE
-A508 ; [.2DC4.0020.0002] # VAI SYLLABLE MBEE
-A509 ; [.2DC5.0020.0002] # VAI SYLLABLE KPEE
-A50A ; [.2DC6.0020.0002] # VAI SYLLABLE MGBEE
-A50B ; [.2DC7.0020.0002] # VAI SYLLABLE GBEE
-A50C ; [.2DC8.0020.0002] # VAI SYLLABLE FEE
-A613 ; [.2DC8.0020.0004][.2EC7.0020.0004] # VAI SYMBOL FEENG
-A50D ; [.2DC9.0020.0002] # VAI SYLLABLE VEE
-A50E ; [.2DCA.0020.0002] # VAI SYLLABLE TEE
-A50F ; [.2DCB.0020.0002] # VAI SYLLABLE THEE
-A510 ; [.2DCC.0020.0002] # VAI SYLLABLE DHEE
-A511 ; [.2DCD.0020.0002] # VAI SYLLABLE DHHEE
-A512 ; [.2DCE.0020.0002] # VAI SYLLABLE LEE
-A513 ; [.2DCF.0020.0002] # VAI SYLLABLE REE
-A514 ; [.2DD0.0020.0002] # VAI SYLLABLE DEE
-A515 ; [.2DD1.0020.0002] # VAI SYLLABLE NDEE
-A516 ; [.2DD2.0020.0002] # VAI SYLLABLE SEE
-A517 ; [.2DD3.0020.0002] # VAI SYLLABLE SHEE
-A518 ; [.2DD4.0020.0002] # VAI SYLLABLE ZEE
-A519 ; [.2DD5.0020.0002] # VAI SYLLABLE ZHEE
-A51A ; [.2DD6.0020.0002] # VAI SYLLABLE CEE
-A51B ; [.2DD7.0020.0002] # VAI SYLLABLE JEE
-A51C ; [.2DD8.0020.0002] # VAI SYLLABLE NJEE
-A51D ; [.2DD9.0020.0002] # VAI SYLLABLE YEE
-A51E ; [.2DDA.0020.0002] # VAI SYLLABLE KEE
-A614 ; [.2DDA.0020.0004][.2EC7.0020.0004] # VAI SYMBOL KEENG
-A51F ; [.2DDB.0020.0002] # VAI SYLLABLE NGGEE
-A520 ; [.2DDC.0020.0002] # VAI SYLLABLE GEE
-A521 ; [.2DDD.0020.0002] # VAI SYLLABLE MEE
-A522 ; [.2DDE.0020.0002] # VAI SYLLABLE NEE
-A523 ; [.2DDF.0020.0002] # VAI SYLLABLE NYEE
-A524 ; [.2DE0.0020.0002] # VAI SYLLABLE I
-A525 ; [.2DE1.0020.0002] # VAI SYLLABLE IN
-A526 ; [.2DE2.0020.0002] # VAI SYLLABLE HI
-A527 ; [.2DE3.0020.0002] # VAI SYLLABLE HIN
-A528 ; [.2DE4.0020.0002] # VAI SYLLABLE WI
-A529 ; [.2DE5.0020.0002] # VAI SYLLABLE WIN
-A52A ; [.2DE6.0020.0002] # VAI SYLLABLE PI
-A52B ; [.2DE7.0020.0002] # VAI SYLLABLE BHI
-A52C ; [.2DE8.0020.0002] # VAI SYLLABLE BI
-A52D ; [.2DE9.0020.0002] # VAI SYLLABLE MBI
-A52E ; [.2DEA.0020.0002] # VAI SYLLABLE KPI
-A52F ; [.2DEB.0020.0002] # VAI SYLLABLE MGBI
-A530 ; [.2DEC.0020.0002] # VAI SYLLABLE GBI
-A531 ; [.2DED.0020.0002] # VAI SYLLABLE FI
-A532 ; [.2DEE.0020.0002] # VAI SYLLABLE VI
-A533 ; [.2DEF.0020.0002] # VAI SYLLABLE TI
-A615 ; [.2DEF.0020.0004][.2EC7.0020.0004] # VAI SYMBOL TING
-A534 ; [.2DF0.0020.0002] # VAI SYLLABLE THI
-A535 ; [.2DF1.0020.0002] # VAI SYLLABLE DHI
-A536 ; [.2DF2.0020.0002] # VAI SYLLABLE DHHI
-A537 ; [.2DF3.0020.0002] # VAI SYLLABLE LI
-A538 ; [.2DF4.0020.0002] # VAI SYLLABLE RI
-A539 ; [.2DF5.0020.0002] # VAI SYLLABLE DI
-A53A ; [.2DF6.0020.0002] # VAI SYLLABLE NDI
-A53B ; [.2DF7.0020.0002] # VAI SYLLABLE SI
-A53C ; [.2DF8.0020.0002] # VAI SYLLABLE SHI
-A53D ; [.2DF9.0020.0002] # VAI SYLLABLE ZI
-A53E ; [.2DFA.0020.0002] # VAI SYLLABLE ZHI
-A53F ; [.2DFB.0020.0002] # VAI SYLLABLE CI
-A540 ; [.2DFC.0020.0002] # VAI SYLLABLE JI
-A541 ; [.2DFD.0020.0002] # VAI SYLLABLE NJI
-A542 ; [.2DFE.0020.0002] # VAI SYLLABLE YI
-A543 ; [.2DFF.0020.0002] # VAI SYLLABLE KI
-A544 ; [.2E00.0020.0002] # VAI SYLLABLE NGGI
-A545 ; [.2E01.0020.0002] # VAI SYLLABLE GI
-A546 ; [.2E02.0020.0002] # VAI SYLLABLE MI
-A547 ; [.2E03.0020.0002] # VAI SYLLABLE NI
-A616 ; [.2E03.0020.0004][.2EC8.0020.0004] # VAI SYMBOL NII
-A548 ; [.2E04.0020.0002] # VAI SYLLABLE NYI
-A549 ; [.2E05.0020.0002] # VAI SYLLABLE A
-A54A ; [.2E06.0020.0002] # VAI SYLLABLE AN
-A54B ; [.2E07.0020.0002] # VAI SYLLABLE NGAN
-A54C ; [.2E08.0020.0002] # VAI SYLLABLE HA
-A54D ; [.2E09.0020.0002] # VAI SYLLABLE HAN
-A54E ; [.2E0A.0020.0002] # VAI SYLLABLE WA
-A54F ; [.2E0B.0020.0002] # VAI SYLLABLE WAN
-A550 ; [.2E0C.0020.0002] # VAI SYLLABLE PA
-A551 ; [.2E0D.0020.0002] # VAI SYLLABLE BHA
-A552 ; [.2E0E.0020.0002] # VAI SYLLABLE BA
-A617 ; [.2E0E.0020.0004][.2EC7.0020.0004] # VAI SYMBOL BANG
-A553 ; [.2E0F.0020.0002] # VAI SYLLABLE MBA
-A554 ; [.2E10.0020.0002] # VAI SYLLABLE KPA
-A555 ; [.2E11.0020.0002] # VAI SYLLABLE KPAN
-A556 ; [.2E12.0020.0002] # VAI SYLLABLE MGBA
-A557 ; [.2E13.0020.0002] # VAI SYLLABLE GBA
-A558 ; [.2E14.0020.0002] # VAI SYLLABLE FA
-A610 ; [.2E14.0020.0004] # VAI SYLLABLE NDOLE FA
-A618 ; [.2E14.0020.0004][.2EC8.0020.0004] # VAI SYMBOL FAA
-A559 ; [.2E15.0020.0002] # VAI SYLLABLE VA
-A55A ; [.2E16.0020.0002] # VAI SYLLABLE TA
-A619 ; [.2E16.0020.0004][.2EC8.0020.0004] # VAI SYMBOL TAA
-A55B ; [.2E17.0020.0002] # VAI SYLLABLE THA
-A55C ; [.2E18.0020.0002] # VAI SYLLABLE DHA
-A55D ; [.2E19.0020.0002] # VAI SYLLABLE DHHA
-A55E ; [.2E1A.0020.0002] # VAI SYLLABLE LA
-A55F ; [.2E1B.0020.0002] # VAI SYLLABLE RA
-A560 ; [.2E1C.0020.0002] # VAI SYLLABLE DA
-A61A ; [.2E1C.0020.0004][.2EC7.0020.0004] # VAI SYMBOL DANG
-A561 ; [.2E1D.0020.0002] # VAI SYLLABLE NDA
-A562 ; [.2E1E.0020.0002] # VAI SYLLABLE SA
-A563 ; [.2E1F.0020.0002] # VAI SYLLABLE SHA
-A564 ; [.2E20.0020.0002] # VAI SYLLABLE ZA
-A565 ; [.2E21.0020.0002] # VAI SYLLABLE ZHA
-A566 ; [.2E22.0020.0002] # VAI SYLLABLE CA
-A567 ; [.2E23.0020.0002] # VAI SYLLABLE JA
-A568 ; [.2E24.0020.0002] # VAI SYLLABLE NJA
-A569 ; [.2E25.0020.0002] # VAI SYLLABLE YA
-A56A ; [.2E26.0020.0002] # VAI SYLLABLE KA
-A611 ; [.2E26.0020.0004] # VAI SYLLABLE NDOLE KA
-A56B ; [.2E27.0020.0002] # VAI SYLLABLE KAN
-A56C ; [.2E28.0020.0002] # VAI SYLLABLE NGGA
-A56D ; [.2E29.0020.0002] # VAI SYLLABLE GA
-A56E ; [.2E2A.0020.0002] # VAI SYLLABLE MA
-A62A ; [.2E2A.0020.0004] # VAI SYLLABLE NDOLE MA
-A56F ; [.2E2B.0020.0002] # VAI SYLLABLE NA
-A570 ; [.2E2C.0020.0002] # VAI SYLLABLE NYA
-A571 ; [.2E2D.0020.0002] # VAI SYLLABLE OO
-A572 ; [.2E2E.0020.0002] # VAI SYLLABLE OON
-A573 ; [.2E2F.0020.0002] # VAI SYLLABLE HOO
-A574 ; [.2E30.0020.0002] # VAI SYLLABLE WOO
-A575 ; [.2E31.0020.0002] # VAI SYLLABLE WOON
-A576 ; [.2E32.0020.0002] # VAI SYLLABLE POO
-A577 ; [.2E33.0020.0002] # VAI SYLLABLE BHOO
-A578 ; [.2E34.0020.0002] # VAI SYLLABLE BOO
-A579 ; [.2E35.0020.0002] # VAI SYLLABLE MBOO
-A57A ; [.2E36.0020.0002] # VAI SYLLABLE KPOO
-A57B ; [.2E37.0020.0002] # VAI SYLLABLE MGBOO
-A57C ; [.2E38.0020.0002] # VAI SYLLABLE GBOO
-A57D ; [.2E39.0020.0002] # VAI SYLLABLE FOO
-A57E ; [.2E3A.0020.0002] # VAI SYLLABLE VOO
-A57F ; [.2E3B.0020.0002] # VAI SYLLABLE TOO
-A580 ; [.2E3C.0020.0002] # VAI SYLLABLE THOO
-A581 ; [.2E3D.0020.0002] # VAI SYLLABLE DHOO
-A582 ; [.2E3E.0020.0002] # VAI SYLLABLE DHHOO
-A583 ; [.2E3F.0020.0002] # VAI SYLLABLE LOO
-A584 ; [.2E40.0020.0002] # VAI SYLLABLE ROO
-A585 ; [.2E41.0020.0002] # VAI SYLLABLE DOO
-A61B ; [.2E41.0020.0004][.2EC7.0020.0004] # VAI SYMBOL DOONG
-A586 ; [.2E42.0020.0002] # VAI SYLLABLE NDOO
-A587 ; [.2E43.0020.0002] # VAI SYLLABLE SOO
-A612 ; [.2E43.0020.0004] # VAI SYLLABLE NDOLE SOO
-A588 ; [.2E44.0020.0002] # VAI SYLLABLE SHOO
-A589 ; [.2E45.0020.0002] # VAI SYLLABLE ZOO
-A58A ; [.2E46.0020.0002] # VAI SYLLABLE ZHOO
-A58B ; [.2E47.0020.0002] # VAI SYLLABLE COO
-A58C ; [.2E48.0020.0002] # VAI SYLLABLE JOO
-A58D ; [.2E49.0020.0002] # VAI SYLLABLE NJOO
-A58E ; [.2E4A.0020.0002] # VAI SYLLABLE YOO
-A58F ; [.2E4B.0020.0002] # VAI SYLLABLE KOO
-A590 ; [.2E4C.0020.0002] # VAI SYLLABLE NGGOO
-A591 ; [.2E4D.0020.0002] # VAI SYLLABLE GOO
-A592 ; [.2E4E.0020.0002] # VAI SYLLABLE MOO
-A593 ; [.2E4F.0020.0002] # VAI SYLLABLE NOO
-A594 ; [.2E50.0020.0002] # VAI SYLLABLE NYOO
-A595 ; [.2E51.0020.0002] # VAI SYLLABLE U
-A596 ; [.2E52.0020.0002] # VAI SYLLABLE UN
-A597 ; [.2E53.0020.0002] # VAI SYLLABLE HU
-A598 ; [.2E54.0020.0002] # VAI SYLLABLE HUN
-A599 ; [.2E55.0020.0002] # VAI SYLLABLE WU
-A59A ; [.2E56.0020.0002] # VAI SYLLABLE WUN
-A59B ; [.2E57.0020.0002] # VAI SYLLABLE PU
-A59C ; [.2E58.0020.0002] # VAI SYLLABLE BHU
-A59D ; [.2E59.0020.0002] # VAI SYLLABLE BU
-A59E ; [.2E5A.0020.0002] # VAI SYLLABLE MBU
-A59F ; [.2E5B.0020.0002] # VAI SYLLABLE KPU
-A5A0 ; [.2E5C.0020.0002] # VAI SYLLABLE MGBU
-A5A1 ; [.2E5D.0020.0002] # VAI SYLLABLE GBU
-A5A2 ; [.2E5E.0020.0002] # VAI SYLLABLE FU
-A5A3 ; [.2E5F.0020.0002] # VAI SYLLABLE VU
-A5A4 ; [.2E60.0020.0002] # VAI SYLLABLE TU
-A5A5 ; [.2E61.0020.0002] # VAI SYLLABLE THU
-A5A6 ; [.2E62.0020.0002] # VAI SYLLABLE DHU
-A5A7 ; [.2E63.0020.0002] # VAI SYLLABLE DHHU
-A5A8 ; [.2E64.0020.0002] # VAI SYLLABLE LU
-A5A9 ; [.2E65.0020.0002] # VAI SYLLABLE RU
-A5AA ; [.2E66.0020.0002] # VAI SYLLABLE DU
-A5AB ; [.2E67.0020.0002] # VAI SYLLABLE NDU
-A5AC ; [.2E68.0020.0002] # VAI SYLLABLE SU
-A5AD ; [.2E69.0020.0002] # VAI SYLLABLE SHU
-A5AE ; [.2E6A.0020.0002] # VAI SYLLABLE ZU
-A5AF ; [.2E6B.0020.0002] # VAI SYLLABLE ZHU
-A5B0 ; [.2E6C.0020.0002] # VAI SYLLABLE CU
-A5B1 ; [.2E6D.0020.0002] # VAI SYLLABLE JU
-A5B2 ; [.2E6E.0020.0002] # VAI SYLLABLE NJU
-A5B3 ; [.2E6F.0020.0002] # VAI SYLLABLE YU
-A5B4 ; [.2E70.0020.0002] # VAI SYLLABLE KU
-A61C ; [.2E70.0020.0004][.2EC7.0020.0004] # VAI SYMBOL KUNG
-A5B5 ; [.2E71.0020.0002] # VAI SYLLABLE NGGU
-A5B6 ; [.2E72.0020.0002] # VAI SYLLABLE GU
-A5B7 ; [.2E73.0020.0002] # VAI SYLLABLE MU
-A5B8 ; [.2E74.0020.0002] # VAI SYLLABLE NU
-A5B9 ; [.2E75.0020.0002] # VAI SYLLABLE NYU
-A5BA ; [.2E76.0020.0002] # VAI SYLLABLE O
-A5BB ; [.2E77.0020.0002] # VAI SYLLABLE ON
-A5BC ; [.2E78.0020.0002] # VAI SYLLABLE NGON
-A5BD ; [.2E79.0020.0002] # VAI SYLLABLE HO
-A5BE ; [.2E7A.0020.0002] # VAI SYLLABLE HON
-A5BF ; [.2E7B.0020.0002] # VAI SYLLABLE WO
-A5C0 ; [.2E7C.0020.0002] # VAI SYLLABLE WON
-A5C1 ; [.2E7D.0020.0002] # VAI SYLLABLE PO
-A5C2 ; [.2E7E.0020.0002] # VAI SYLLABLE BHO
-A5C3 ; [.2E7F.0020.0002] # VAI SYLLABLE BO
-A5C4 ; [.2E80.0020.0002] # VAI SYLLABLE MBO
-A5C5 ; [.2E81.0020.0002] # VAI SYLLABLE KPO
-A5C6 ; [.2E82.0020.0002] # VAI SYLLABLE MGBO
-A5C7 ; [.2E83.0020.0002] # VAI SYLLABLE GBO
-A5C8 ; [.2E84.0020.0002] # VAI SYLLABLE GBON
-A5C9 ; [.2E85.0020.0002] # VAI SYLLABLE FO
-A5CA ; [.2E86.0020.0002] # VAI SYLLABLE VO
-A5CB ; [.2E87.0020.0002] # VAI SYLLABLE TO
-A61D ; [.2E87.0020.0004][.2EC7.0020.0004] # VAI SYMBOL TONG
-A5CC ; [.2E88.0020.0002] # VAI SYLLABLE THO
-A5CD ; [.2E89.0020.0002] # VAI SYLLABLE DHO
-A5CE ; [.2E8A.0020.0002] # VAI SYLLABLE DHHO
-A5CF ; [.2E8B.0020.0002] # VAI SYLLABLE LO
-A5D0 ; [.2E8C.0020.0002] # VAI SYLLABLE RO
-A5D1 ; [.2E8D.0020.0002] # VAI SYLLABLE DO
-A62B ; [.2E8D.0020.0004] # VAI SYLLABLE NDOLE DO
-A61E ; [.2E8D.0020.0004][.2EC8.0020.0004] # VAI SYMBOL DO-O
-A5D2 ; [.2E8E.0020.0002] # VAI SYLLABLE NDO
-A5D3 ; [.2E8F.0020.0002] # VAI SYLLABLE SO
-A5D4 ; [.2E90.0020.0002] # VAI SYLLABLE SHO
-A5D5 ; [.2E91.0020.0002] # VAI SYLLABLE ZO
-A5D6 ; [.2E92.0020.0002] # VAI SYLLABLE ZHO
-A5D7 ; [.2E93.0020.0002] # VAI SYLLABLE CO
-A5D8 ; [.2E94.0020.0002] # VAI SYLLABLE JO
-A61F ; [.2E94.0020.0004][.2EC7.0020.0004] # VAI SYMBOL JONG
-A5D9 ; [.2E95.0020.0002] # VAI SYLLABLE NJO
-A5DA ; [.2E96.0020.0002] # VAI SYLLABLE YO
-A5DB ; [.2E97.0020.0002] # VAI SYLLABLE KO
-A5DC ; [.2E98.0020.0002] # VAI SYLLABLE NGGO
-A5DD ; [.2E99.0020.0002] # VAI SYLLABLE GO
-A5DE ; [.2E9A.0020.0002] # VAI SYLLABLE MO
-A5DF ; [.2E9B.0020.0002] # VAI SYLLABLE NO
-A5E0 ; [.2E9C.0020.0002] # VAI SYLLABLE NYO
-A5E1 ; [.2E9D.0020.0002] # VAI SYLLABLE E
-A5E2 ; [.2E9E.0020.0002] # VAI SYLLABLE EN
-A5E3 ; [.2E9F.0020.0002] # VAI SYLLABLE NGEN
-A5E4 ; [.2EA0.0020.0002] # VAI SYLLABLE HE
-A5E5 ; [.2EA1.0020.0002] # VAI SYLLABLE HEN
-A5E6 ; [.2EA2.0020.0002] # VAI SYLLABLE WE
-A5E7 ; [.2EA3.0020.0002] # VAI SYLLABLE WEN
-A5E8 ; [.2EA4.0020.0002] # VAI SYLLABLE PE
-A5E9 ; [.2EA5.0020.0002] # VAI SYLLABLE BHE
-A5EA ; [.2EA6.0020.0002] # VAI SYLLABLE BE
-A5EB ; [.2EA7.0020.0002] # VAI SYLLABLE MBE
-A5EC ; [.2EA8.0020.0002] # VAI SYLLABLE KPE
-A5ED ; [.2EA9.0020.0002] # VAI SYLLABLE KPEN
-A5EE ; [.2EAA.0020.0002] # VAI SYLLABLE MGBE
-A5EF ; [.2EAB.0020.0002] # VAI SYLLABLE GBE
-A5F0 ; [.2EAC.0020.0002] # VAI SYLLABLE GBEN
-A5F1 ; [.2EAD.0020.0002] # VAI SYLLABLE FE
-A5F2 ; [.2EAE.0020.0002] # VAI SYLLABLE VE
-A5F3 ; [.2EAF.0020.0002] # VAI SYLLABLE TE
-A5F4 ; [.2EB0.0020.0002] # VAI SYLLABLE THE
-A5F5 ; [.2EB1.0020.0002] # VAI SYLLABLE DHE
-A5F6 ; [.2EB2.0020.0002] # VAI SYLLABLE DHHE
-A5F7 ; [.2EB3.0020.0002] # VAI SYLLABLE LE
-A5F8 ; [.2EB4.0020.0002] # VAI SYLLABLE RE
-A5F9 ; [.2EB5.0020.0002] # VAI SYLLABLE DE
-A5FA ; [.2EB6.0020.0002] # VAI SYLLABLE NDE
-A5FB ; [.2EB7.0020.0002] # VAI SYLLABLE SE
-A5FC ; [.2EB8.0020.0002] # VAI SYLLABLE SHE
-A5FD ; [.2EB9.0020.0002] # VAI SYLLABLE ZE
-A5FE ; [.2EBA.0020.0002] # VAI SYLLABLE ZHE
-A5FF ; [.2EBB.0020.0002] # VAI SYLLABLE CE
-A600 ; [.2EBC.0020.0002] # VAI SYLLABLE JE
-A601 ; [.2EBD.0020.0002] # VAI SYLLABLE NJE
-A602 ; [.2EBE.0020.0002] # VAI SYLLABLE YE
-A603 ; [.2EBF.0020.0002] # VAI SYLLABLE KE
-A604 ; [.2EC0.0020.0002] # VAI SYLLABLE NGGE
-A605 ; [.2EC1.0020.0002] # VAI SYLLABLE NGGEN
-A606 ; [.2EC2.0020.0002] # VAI SYLLABLE GE
-A607 ; [.2EC3.0020.0002] # VAI SYLLABLE GEN
-A608 ; [.2EC4.0020.0002] # VAI SYLLABLE ME
-A609 ; [.2EC5.0020.0002] # VAI SYLLABLE NE
-A60A ; [.2EC6.0020.0002] # VAI SYLLABLE NYE
-A60B ; [.2EC7.0020.0002] # VAI SYLLABLE NG
-A60C ; [.2EC8.0020.0002] # VAI SYLLABLE LENGTHENER
-A6A0 ; [.2EC9.0020.0002] # BAMUM LETTER A
-A6A1 ; [.2ECA.0020.0002] # BAMUM LETTER KA
-A6A2 ; [.2ECB.0020.0002] # BAMUM LETTER U
-A6A3 ; [.2ECC.0020.0002] # BAMUM LETTER KU
-A6A4 ; [.2ECD.0020.0002] # BAMUM LETTER EE
-A6A5 ; [.2ECE.0020.0002] # BAMUM LETTER REE
-A6A6 ; [.2ECF.0020.0002] # BAMUM LETTER TAE
-A6A7 ; [.2ED0.0020.0002] # BAMUM LETTER O
-A6A8 ; [.2ED1.0020.0002] # BAMUM LETTER NYI
-A6A9 ; [.2ED2.0020.0002] # BAMUM LETTER I
-A6AA ; [.2ED3.0020.0002] # BAMUM LETTER LA
-A6AB ; [.2ED4.0020.0002] # BAMUM LETTER PA
-A6AC ; [.2ED5.0020.0002] # BAMUM LETTER RII
-A6AD ; [.2ED6.0020.0002] # BAMUM LETTER RIEE
-A6AE ; [.2ED7.0020.0002] # BAMUM LETTER LEEEE
-A6AF ; [.2ED8.0020.0002] # BAMUM LETTER MEEEE
-A6B0 ; [.2ED9.0020.0002] # BAMUM LETTER TAA
-A6B1 ; [.2EDA.0020.0002] # BAMUM LETTER NDAA
-A6B2 ; [.2EDB.0020.0002] # BAMUM LETTER NJAEM
-A6B3 ; [.2EDC.0020.0002] # BAMUM LETTER M
-A6B4 ; [.2EDD.0020.0002] # BAMUM LETTER SUU
-A6B5 ; [.2EDE.0020.0002] # BAMUM LETTER MU
-A6B6 ; [.2EDF.0020.0002] # BAMUM LETTER SHII
-A6B7 ; [.2EE0.0020.0002] # BAMUM LETTER SI
-A6B8 ; [.2EE1.0020.0002] # BAMUM LETTER SHEUX
-A6B9 ; [.2EE2.0020.0002] # BAMUM LETTER SEUX
-A6BA ; [.2EE3.0020.0002] # BAMUM LETTER KYEE
-A6BB ; [.2EE4.0020.0002] # BAMUM LETTER KET
-A6BC ; [.2EE5.0020.0002] # BAMUM LETTER NUAE
-A6BD ; [.2EE6.0020.0002] # BAMUM LETTER NU
-A6BE ; [.2EE7.0020.0002] # BAMUM LETTER NJUAE
-A6BF ; [.2EE8.0020.0002] # BAMUM LETTER YOQ
-A6C0 ; [.2EE9.0020.0002] # BAMUM LETTER SHU
-A6C1 ; [.2EEA.0020.0002] # BAMUM LETTER YUQ
-A6C2 ; [.2EEB.0020.0002] # BAMUM LETTER YA
-A6C3 ; [.2EEC.0020.0002] # BAMUM LETTER NSHA
-A6C4 ; [.2EED.0020.0002] # BAMUM LETTER KEUX
-A6C5 ; [.2EEE.0020.0002] # BAMUM LETTER PEUX
-A6C6 ; [.2EEF.0020.0002] # BAMUM LETTER NJEE
-A6C7 ; [.2EF0.0020.0002] # BAMUM LETTER NTEE
-A6C8 ; [.2EF1.0020.0002] # BAMUM LETTER PUE
-A6C9 ; [.2EF2.0020.0002] # BAMUM LETTER WUE
-A6CA ; [.2EF3.0020.0002] # BAMUM LETTER PEE
-A6CB ; [.2EF4.0020.0002] # BAMUM LETTER FEE
-A6CC ; [.2EF5.0020.0002] # BAMUM LETTER RU
-A6CD ; [.2EF6.0020.0002] # BAMUM LETTER LU
-A6CE ; [.2EF7.0020.0002] # BAMUM LETTER MI
-A6CF ; [.2EF8.0020.0002] # BAMUM LETTER NI
-A6D0 ; [.2EF9.0020.0002] # BAMUM LETTER REUX
-A6D1 ; [.2EFA.0020.0002] # BAMUM LETTER RAE
-A6D2 ; [.2EFB.0020.0002] # BAMUM LETTER KEN
-A6D3 ; [.2EFC.0020.0002] # BAMUM LETTER NGKWAEN
-A6D4 ; [.2EFD.0020.0002] # BAMUM LETTER NGGA
-A6D5 ; [.2EFE.0020.0002] # BAMUM LETTER NGA
-A6D6 ; [.2EFF.0020.0002] # BAMUM LETTER SHO
-A6D7 ; [.2F00.0020.0002] # BAMUM LETTER PUAE
-A6D8 ; [.2F01.0020.0002] # BAMUM LETTER FU
-A6D9 ; [.2F02.0020.0002] # BAMUM LETTER FOM
-A6DA ; [.2F03.0020.0002] # BAMUM LETTER WA
-A6DB ; [.2F04.0020.0002] # BAMUM LETTER NA
-A6DC ; [.2F05.0020.0002] # BAMUM LETTER LI
-A6DD ; [.2F06.0020.0002] # BAMUM LETTER PI
-A6DE ; [.2F07.0020.0002] # BAMUM LETTER LOQ
-A6DF ; [.2F08.0020.0002] # BAMUM LETTER KO
-A6E0 ; [.2F09.0020.0002] # BAMUM LETTER MBEN
-A6E1 ; [.2F0A.0020.0002] # BAMUM LETTER REN
-A6E2 ; [.2F0B.0020.0002] # BAMUM LETTER MEN
-A6E3 ; [.2F0C.0020.0002] # BAMUM LETTER MA
-A6E4 ; [.2F0D.0020.0002] # BAMUM LETTER TI
-A6E5 ; [.2F0E.0020.0002] # BAMUM LETTER KI
-A6E6 ; [.2F0F.0020.0002] # BAMUM LETTER MO
-A6E7 ; [.2F10.0020.0002] # BAMUM LETTER MBAA
-A6E8 ; [.2F11.0020.0002] # BAMUM LETTER TET
-A6E9 ; [.2F12.0020.0002] # BAMUM LETTER KPA
-A6EA ; [.2F13.0020.0002] # BAMUM LETTER TEN
-A6EB ; [.2F14.0020.0002] # BAMUM LETTER NTUU
-A6EC ; [.2F15.0020.0002] # BAMUM LETTER SAMBA
-A6ED ; [.2F16.0020.0002] # BAMUM LETTER FAAMAE
-A6EE ; [.2F17.0020.0002] # BAMUM LETTER KOVUU
-A6EF ; [.2F18.0020.0002] # BAMUM LETTER KOGHOM
-16800 ; [.2F19.0020.0002] # BAMUM LETTER PHASE-A NGKUE MFON
-16801 ; [.2F1A.0020.0002] # BAMUM LETTER PHASE-A GBIEE FON
-16802 ; [.2F1B.0020.0002] # BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE
-16803 ; [.2F1C.0020.0002] # BAMUM LETTER PHASE-A PON MFON PIPAEMBA
-16804 ; [.2F1D.0020.0002] # BAMUM LETTER PHASE-A NAA MFON
-16805 ; [.2F1E.0020.0002] # BAMUM LETTER PHASE-A SHUENSHUET
-16806 ; [.2F1F.0020.0002] # BAMUM LETTER PHASE-A TITA MFON
-16807 ; [.2F20.0020.0002] # BAMUM LETTER PHASE-A NZA MFON
-16808 ; [.2F21.0020.0002] # BAMUM LETTER PHASE-A SHINDA PA NJI
-16809 ; [.2F22.0020.0002] # BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE
-1680A ; [.2F23.0020.0002] # BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA
-1680B ; [.2F24.0020.0002] # BAMUM LETTER PHASE-A MAEMBGBIEE
-1680C ; [.2F25.0020.0002] # BAMUM LETTER PHASE-A TU MAEMBA
-1680D ; [.2F26.0020.0002] # BAMUM LETTER PHASE-A NGANGU
-1680E ; [.2F27.0020.0002] # BAMUM LETTER PHASE-A MAEMVEUX
-1680F ; [.2F28.0020.0002] # BAMUM LETTER PHASE-A MANSUAE
-16810 ; [.2F29.0020.0002] # BAMUM LETTER PHASE-A MVEUAENGAM
-16811 ; [.2F2A.0020.0002] # BAMUM LETTER PHASE-A SEUNYAM
-16812 ; [.2F2B.0020.0002] # BAMUM LETTER PHASE-A NTOQPEN
-16813 ; [.2F2C.0020.0002] # BAMUM LETTER PHASE-A KEUKEUTNDA
-16814 ; [.2F2D.0020.0002] # BAMUM LETTER PHASE-A NKINDI
-16815 ; [.2F2E.0020.0002] # BAMUM LETTER PHASE-A SUU
-16816 ; [.2F2F.0020.0002] # BAMUM LETTER PHASE-A NGKUENZEUM
-16817 ; [.2F30.0020.0002] # BAMUM LETTER PHASE-A LAPAQ
-16818 ; [.2F31.0020.0002] # BAMUM LETTER PHASE-A LET KUT
-16819 ; [.2F32.0020.0002] # BAMUM LETTER PHASE-A NTAP MFAA
-1681A ; [.2F33.0020.0002] # BAMUM LETTER PHASE-A MAEKEUP
-1681B ; [.2F34.0020.0002] # BAMUM LETTER PHASE-A PASHAE
-1681C ; [.2F35.0020.0002] # BAMUM LETTER PHASE-A GHEUAERAE
-1681D ; [.2F36.0020.0002] # BAMUM LETTER PHASE-A PAMSHAE
-1681E ; [.2F37.0020.0002] # BAMUM LETTER PHASE-A MON NGGEUAET
-1681F ; [.2F38.0020.0002] # BAMUM LETTER PHASE-A NZUN MEUT
-16820 ; [.2F39.0020.0002] # BAMUM LETTER PHASE-A U YUQ NAE
-16821 ; [.2F3A.0020.0002] # BAMUM LETTER PHASE-A GHEUAEGHEUAE
-16822 ; [.2F3B.0020.0002] # BAMUM LETTER PHASE-A NTAP NTAA
-16823 ; [.2F3C.0020.0002] # BAMUM LETTER PHASE-A SISA
-16824 ; [.2F3D.0020.0002] # BAMUM LETTER PHASE-A MGBASA
-16825 ; [.2F3E.0020.0002] # BAMUM LETTER PHASE-A MEUNJOMNDEUQ
-16826 ; [.2F3F.0020.0002] # BAMUM LETTER PHASE-A MOOMPUQ
-16827 ; [.2F40.0020.0002] # BAMUM LETTER PHASE-A KAFA
-16828 ; [.2F41.0020.0002] # BAMUM LETTER PHASE-A PA LEERAEWA
-16829 ; [.2F42.0020.0002] # BAMUM LETTER PHASE-A NDA LEERAEWA
-1682A ; [.2F43.0020.0002] # BAMUM LETTER PHASE-A PET
-1682B ; [.2F44.0020.0002] # BAMUM LETTER PHASE-A MAEMKPEN
-1682C ; [.2F45.0020.0002] # BAMUM LETTER PHASE-A NIKA
-1682D ; [.2F46.0020.0002] # BAMUM LETTER PHASE-A PUP
-1682E ; [.2F47.0020.0002] # BAMUM LETTER PHASE-A TUAEP
-1682F ; [.2F48.0020.0002] # BAMUM LETTER PHASE-A LUAEP
-16830 ; [.2F49.0020.0002] # BAMUM LETTER PHASE-A SONJAM
-16831 ; [.2F4A.0020.0002] # BAMUM LETTER PHASE-A TEUTEUWEN
-16832 ; [.2F4B.0020.0002] # BAMUM LETTER PHASE-A MAENYI
-16833 ; [.2F4C.0020.0002] # BAMUM LETTER PHASE-A KET
-16834 ; [.2F4D.0020.0002] # BAMUM LETTER PHASE-A NDAANGGEUAET
-16835 ; [.2F4E.0020.0002] # BAMUM LETTER PHASE-A KUOQ
-16836 ; [.2F4F.0020.0002] # BAMUM LETTER PHASE-A MOOMEUT
-16837 ; [.2F50.0020.0002] # BAMUM LETTER PHASE-A SHUM
-16838 ; [.2F51.0020.0002] # BAMUM LETTER PHASE-A LOMMAE
-16839 ; [.2F52.0020.0002] # BAMUM LETTER PHASE-A FIRI
-1683A ; [.2F53.0020.0002] # BAMUM LETTER PHASE-A ROM
-1683B ; [.2F54.0020.0002] # BAMUM LETTER PHASE-A KPOQ
-1683C ; [.2F55.0020.0002] # BAMUM LETTER PHASE-A SOQ
-1683D ; [.2F56.0020.0002] # BAMUM LETTER PHASE-A MAP PIEET
-1683E ; [.2F57.0020.0002] # BAMUM LETTER PHASE-A SHIRAE
-1683F ; [.2F58.0020.0002] # BAMUM LETTER PHASE-A NTAP
-16840 ; [.2F59.0020.0002] # BAMUM LETTER PHASE-A SHOQ NSHUT YUM
-16841 ; [.2F5A.0020.0002] # BAMUM LETTER PHASE-A NYIT MONGKEUAEQ
-16842 ; [.2F5B.0020.0002] # BAMUM LETTER PHASE-A PAARAE
-16843 ; [.2F5C.0020.0002] # BAMUM LETTER PHASE-A NKAARAE
-16844 ; [.2F5D.0020.0002] # BAMUM LETTER PHASE-A UNKNOWN
-16845 ; [.2F5E.0020.0002] # BAMUM LETTER PHASE-A NGGEN
-16846 ; [.2F5F.0020.0002] # BAMUM LETTER PHASE-A MAESI
-16847 ; [.2F60.0020.0002] # BAMUM LETTER PHASE-A NJAM
-16848 ; [.2F61.0020.0002] # BAMUM LETTER PHASE-A MBANYI
-16849 ; [.2F62.0020.0002] # BAMUM LETTER PHASE-A NYET
-1684A ; [.2F63.0020.0002] # BAMUM LETTER PHASE-A TEUAEN
-1684B ; [.2F64.0020.0002] # BAMUM LETTER PHASE-A SOT
-1684C ; [.2F65.0020.0002] # BAMUM LETTER PHASE-A PAAM
-1684D ; [.2F66.0020.0002] # BAMUM LETTER PHASE-A NSHIEE
-1684E ; [.2F67.0020.0002] # BAMUM LETTER PHASE-A MAEM
-1684F ; [.2F68.0020.0002] # BAMUM LETTER PHASE-A NYI
-16850 ; [.2F69.0020.0002] # BAMUM LETTER PHASE-A KAQ
-16851 ; [.2F6A.0020.0002] # BAMUM LETTER PHASE-A NSHA
-16852 ; [.2F6B.0020.0002] # BAMUM LETTER PHASE-A VEE
-16853 ; [.2F6C.0020.0002] # BAMUM LETTER PHASE-A LU
-16854 ; [.2F6D.0020.0002] # BAMUM LETTER PHASE-A NEN
-16855 ; [.2F6E.0020.0002] # BAMUM LETTER PHASE-A NAQ
-16856 ; [.2F6F.0020.0002] # BAMUM LETTER PHASE-A MBAQ
-16857 ; [.2F70.0020.0002] # BAMUM LETTER PHASE-B NSHUET
-16858 ; [.2F71.0020.0002] # BAMUM LETTER PHASE-B TU MAEMGBIEE
-16859 ; [.2F72.0020.0002] # BAMUM LETTER PHASE-B SIEE
-1685A ; [.2F73.0020.0002] # BAMUM LETTER PHASE-B SET TU
-1685B ; [.2F74.0020.0002] # BAMUM LETTER PHASE-B LOM NTEUM
-1685C ; [.2F75.0020.0002] # BAMUM LETTER PHASE-B MBA MAELEE
-1685D ; [.2F76.0020.0002] # BAMUM LETTER PHASE-B KIEEM
-1685E ; [.2F77.0020.0002] # BAMUM LETTER PHASE-B YEURAE
-1685F ; [.2F78.0020.0002] # BAMUM LETTER PHASE-B MBAARAE
-16860 ; [.2F79.0020.0002] # BAMUM LETTER PHASE-B KAM
-16861 ; [.2F7A.0020.0002] # BAMUM LETTER PHASE-B PEESHI
-16862 ; [.2F7B.0020.0002] # BAMUM LETTER PHASE-B YAFU LEERAEWA
-16863 ; [.2F7C.0020.0002] # BAMUM LETTER PHASE-B LAM NSHUT NYAM
-16864 ; [.2F7D.0020.0002] # BAMUM LETTER PHASE-B NTIEE SHEUOQ
-16865 ; [.2F7E.0020.0002] # BAMUM LETTER PHASE-B NDU NJAA
-16866 ; [.2F7F.0020.0002] # BAMUM LETTER PHASE-B GHEUGHEUAEM
-16867 ; [.2F80.0020.0002] # BAMUM LETTER PHASE-B PIT
-16868 ; [.2F81.0020.0002] # BAMUM LETTER PHASE-B TU NSIEE
-16869 ; [.2F82.0020.0002] # BAMUM LETTER PHASE-B SHET NJAQ
-1686A ; [.2F83.0020.0002] # BAMUM LETTER PHASE-B SHEUAEQTU
-1686B ; [.2F84.0020.0002] # BAMUM LETTER PHASE-B MFON TEUAEQ
-1686C ; [.2F85.0020.0002] # BAMUM LETTER PHASE-B MBIT MBAAKET
-1686D ; [.2F86.0020.0002] # BAMUM LETTER PHASE-B NYI NTEUM
-1686E ; [.2F87.0020.0002] # BAMUM LETTER PHASE-B KEUPUQ
-1686F ; [.2F88.0020.0002] # BAMUM LETTER PHASE-B GHEUGHEN
-16870 ; [.2F89.0020.0002] # BAMUM LETTER PHASE-B KEUYEUX
-16871 ; [.2F8A.0020.0002] # BAMUM LETTER PHASE-B LAANAE
-16872 ; [.2F8B.0020.0002] # BAMUM LETTER PHASE-B PARUM
-16873 ; [.2F8C.0020.0002] # BAMUM LETTER PHASE-B VEUM
-16874 ; [.2F8D.0020.0002] # BAMUM LETTER PHASE-B NGKINDI MVOP
-16875 ; [.2F8E.0020.0002] # BAMUM LETTER PHASE-B NGGEU MBU
-16876 ; [.2F8F.0020.0002] # BAMUM LETTER PHASE-B WUAET
-16877 ; [.2F90.0020.0002] # BAMUM LETTER PHASE-B SAKEUAE
-16878 ; [.2F91.0020.0002] # BAMUM LETTER PHASE-B TAAM
-16879 ; [.2F92.0020.0002] # BAMUM LETTER PHASE-B MEUQ
-1687A ; [.2F93.0020.0002] # BAMUM LETTER PHASE-B NGGUOQ
-1687B ; [.2F94.0020.0002] # BAMUM LETTER PHASE-B NGGUOQ LARGE
-1687C ; [.2F95.0020.0002] # BAMUM LETTER PHASE-B MFIYAQ
-1687D ; [.2F96.0020.0002] # BAMUM LETTER PHASE-B SUE
-1687E ; [.2F97.0020.0002] # BAMUM LETTER PHASE-B MBEURI
-1687F ; [.2F98.0020.0002] # BAMUM LETTER PHASE-B MONTIEEN
-16880 ; [.2F99.0020.0002] # BAMUM LETTER PHASE-B NYAEMAE
-16881 ; [.2F9A.0020.0002] # BAMUM LETTER PHASE-B PUNGAAM
-16882 ; [.2F9B.0020.0002] # BAMUM LETTER PHASE-B MEUT NGGEET
-16883 ; [.2F9C.0020.0002] # BAMUM LETTER PHASE-B FEUX
-16884 ; [.2F9D.0020.0002] # BAMUM LETTER PHASE-B MBUOQ
-16885 ; [.2F9E.0020.0002] # BAMUM LETTER PHASE-B FEE
-16886 ; [.2F9F.0020.0002] # BAMUM LETTER PHASE-B KEUAEM
-16887 ; [.2FA0.0020.0002] # BAMUM LETTER PHASE-B MA NJEUAENA
-16888 ; [.2FA1.0020.0002] # BAMUM LETTER PHASE-B MA NJUQA
-16889 ; [.2FA2.0020.0002] # BAMUM LETTER PHASE-B LET
-1688A ; [.2FA3.0020.0002] # BAMUM LETTER PHASE-B NGGAAM
-1688B ; [.2FA4.0020.0002] # BAMUM LETTER PHASE-B NSEN
-1688C ; [.2FA5.0020.0002] # BAMUM LETTER PHASE-B MA
-1688D ; [.2FA6.0020.0002] # BAMUM LETTER PHASE-B KIQ
-1688E ; [.2FA7.0020.0002] # BAMUM LETTER PHASE-B NGOM
-1688F ; [.2FA8.0020.0002] # BAMUM LETTER PHASE-C NGKUE MAEMBA
-16890 ; [.2FA9.0020.0002] # BAMUM LETTER PHASE-C NZA
-16891 ; [.2FAA.0020.0002] # BAMUM LETTER PHASE-C YUM
-16892 ; [.2FAB.0020.0002] # BAMUM LETTER PHASE-C WANGKUOQ
-16893 ; [.2FAC.0020.0002] # BAMUM LETTER PHASE-C NGGEN
-16894 ; [.2FAD.0020.0002] # BAMUM LETTER PHASE-C NDEUAEREE
-16895 ; [.2FAE.0020.0002] # BAMUM LETTER PHASE-C NGKAQ
-16896 ; [.2FAF.0020.0002] # BAMUM LETTER PHASE-C GHARAE
-16897 ; [.2FB0.0020.0002] # BAMUM LETTER PHASE-C MBEEKEET
-16898 ; [.2FB1.0020.0002] # BAMUM LETTER PHASE-C GBAYI
-16899 ; [.2FB2.0020.0002] # BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN
-1689A ; [.2FB3.0020.0002] # BAMUM LETTER PHASE-C NTU MBIT
-1689B ; [.2FB4.0020.0002] # BAMUM LETTER PHASE-C MBEUM
-1689C ; [.2FB5.0020.0002] # BAMUM LETTER PHASE-C PIRIEEN
-1689D ; [.2FB6.0020.0002] # BAMUM LETTER PHASE-C NDOMBU
-1689E ; [.2FB7.0020.0002] # BAMUM LETTER PHASE-C MBAA CABBAGE-TREE
-1689F ; [.2FB8.0020.0002] # BAMUM LETTER PHASE-C KEUSHEUAEP
-168A0 ; [.2FB9.0020.0002] # BAMUM LETTER PHASE-C GHAP
-168A1 ; [.2FBA.0020.0002] # BAMUM LETTER PHASE-C KEUKAQ
-168A2 ; [.2FBB.0020.0002] # BAMUM LETTER PHASE-C YU MUOMAE
-168A3 ; [.2FBC.0020.0002] # BAMUM LETTER PHASE-C NZEUM
-168A4 ; [.2FBD.0020.0002] # BAMUM LETTER PHASE-C MBUE
-168A5 ; [.2FBE.0020.0002] # BAMUM LETTER PHASE-C NSEUAEN
-168A6 ; [.2FBF.0020.0002] # BAMUM LETTER PHASE-C MBIT
-168A7 ; [.2FC0.0020.0002] # BAMUM LETTER PHASE-C YEUQ
-168A8 ; [.2FC1.0020.0002] # BAMUM LETTER PHASE-C KPARAQ
-168A9 ; [.2FC2.0020.0002] # BAMUM LETTER PHASE-C KAA
-168AA ; [.2FC3.0020.0002] # BAMUM LETTER PHASE-C SEUX
-168AB ; [.2FC4.0020.0002] # BAMUM LETTER PHASE-C NDIDA
-168AC ; [.2FC5.0020.0002] # BAMUM LETTER PHASE-C TAASHAE
-168AD ; [.2FC6.0020.0002] # BAMUM LETTER PHASE-C NJUEQ
-168AE ; [.2FC7.0020.0002] # BAMUM LETTER PHASE-C TITA YUE
-168AF ; [.2FC8.0020.0002] # BAMUM LETTER PHASE-C SUAET
-168B0 ; [.2FC9.0020.0002] # BAMUM LETTER PHASE-C NGGUAEN NYAM
-168B1 ; [.2FCA.0020.0002] # BAMUM LETTER PHASE-C VEUX
-168B2 ; [.2FCB.0020.0002] # BAMUM LETTER PHASE-C NANSANAQ
-168B3 ; [.2FCC.0020.0002] # BAMUM LETTER PHASE-C MA KEUAERI
-168B4 ; [.2FCD.0020.0002] # BAMUM LETTER PHASE-C NTAA
-168B5 ; [.2FCE.0020.0002] # BAMUM LETTER PHASE-C NGGUON
-168B6 ; [.2FCF.0020.0002] # BAMUM LETTER PHASE-C LAP
-168B7 ; [.2FD0.0020.0002] # BAMUM LETTER PHASE-C MBIRIEEN
-168B8 ; [.2FD1.0020.0002] # BAMUM LETTER PHASE-C MGBASAQ
-168B9 ; [.2FD2.0020.0002] # BAMUM LETTER PHASE-C NTEUNGBA
-168BA ; [.2FD3.0020.0002] # BAMUM LETTER PHASE-C TEUTEUX
-168BB ; [.2FD4.0020.0002] # BAMUM LETTER PHASE-C NGGUM
-168BC ; [.2FD5.0020.0002] # BAMUM LETTER PHASE-C FUE
-168BD ; [.2FD6.0020.0002] # BAMUM LETTER PHASE-C NDEUT
-168BE ; [.2FD7.0020.0002] # BAMUM LETTER PHASE-C NSA
-168BF ; [.2FD8.0020.0002] # BAMUM LETTER PHASE-C NSHAQ
-168C0 ; [.2FD9.0020.0002] # BAMUM LETTER PHASE-C BUNG
-168C1 ; [.2FDA.0020.0002] # BAMUM LETTER PHASE-C VEUAEPEN
-168C2 ; [.2FDB.0020.0002] # BAMUM LETTER PHASE-C MBERAE
-168C3 ; [.2FDC.0020.0002] # BAMUM LETTER PHASE-C RU
-168C4 ; [.2FDD.0020.0002] # BAMUM LETTER PHASE-C NJAEM
-168C5 ; [.2FDE.0020.0002] # BAMUM LETTER PHASE-C LAM
-168C6 ; [.2FDF.0020.0002] # BAMUM LETTER PHASE-C TITUAEP
-168C7 ; [.2FE0.0020.0002] # BAMUM LETTER PHASE-C NSUOT NGOM
-168C8 ; [.2FE1.0020.0002] # BAMUM LETTER PHASE-C NJEEEE
-168C9 ; [.2FE2.0020.0002] # BAMUM LETTER PHASE-C KET
-168CA ; [.2FE3.0020.0002] # BAMUM LETTER PHASE-C NGGU
-168CB ; [.2FE4.0020.0002] # BAMUM LETTER PHASE-C MAESI
-168CC ; [.2FE5.0020.0002] # BAMUM LETTER PHASE-C MBUAEM
-168CD ; [.2FE6.0020.0002] # BAMUM LETTER PHASE-C LU
-168CE ; [.2FE7.0020.0002] # BAMUM LETTER PHASE-C KUT
-168CF ; [.2FE8.0020.0002] # BAMUM LETTER PHASE-C NJAM
-168D0 ; [.2FE9.0020.0002] # BAMUM LETTER PHASE-C NGOM
-168D1 ; [.2FEA.0020.0002] # BAMUM LETTER PHASE-C WUP
-168D2 ; [.2FEB.0020.0002] # BAMUM LETTER PHASE-C NGGUEET
-168D3 ; [.2FEC.0020.0002] # BAMUM LETTER PHASE-C NSOM
-168D4 ; [.2FED.0020.0002] # BAMUM LETTER PHASE-C NTEN
-168D5 ; [.2FEE.0020.0002] # BAMUM LETTER PHASE-C KUOP NKAARAE
-168D6 ; [.2FEF.0020.0002] # BAMUM LETTER PHASE-C NSUN
-168D7 ; [.2FF0.0020.0002] # BAMUM LETTER PHASE-C NDAM
-168D8 ; [.2FF1.0020.0002] # BAMUM LETTER PHASE-C MA NSIEE
-168D9 ; [.2FF2.0020.0002] # BAMUM LETTER PHASE-C YAA
-168DA ; [.2FF3.0020.0002] # BAMUM LETTER PHASE-C NDAP
-168DB ; [.2FF4.0020.0002] # BAMUM LETTER PHASE-C SHUEQ
-168DC ; [.2FF5.0020.0002] # BAMUM LETTER PHASE-C SETFON
-168DD ; [.2FF6.0020.0002] # BAMUM LETTER PHASE-C MBI
-168DE ; [.2FF7.0020.0002] # BAMUM LETTER PHASE-C MAEMBA
-168DF ; [.2FF8.0020.0002] # BAMUM LETTER PHASE-C MBANYI
-168E0 ; [.2FF9.0020.0002] # BAMUM LETTER PHASE-C KEUSEUX
-168E1 ; [.2FFA.0020.0002] # BAMUM LETTER PHASE-C MBEUX
-168E2 ; [.2FFB.0020.0002] # BAMUM LETTER PHASE-C KEUM
-168E3 ; [.2FFC.0020.0002] # BAMUM LETTER PHASE-C MBAA PICKET
-168E4 ; [.2FFD.0020.0002] # BAMUM LETTER PHASE-C YUWOQ
-168E5 ; [.2FFE.0020.0002] # BAMUM LETTER PHASE-C NJEUX
-168E6 ; [.2FFF.0020.0002] # BAMUM LETTER PHASE-C MIEE
-168E7 ; [.3000.0020.0002] # BAMUM LETTER PHASE-C MUAE
-168E8 ; [.3001.0020.0002] # BAMUM LETTER PHASE-C SHIQ
-168E9 ; [.3002.0020.0002] # BAMUM LETTER PHASE-C KEN LAW
-168EA ; [.3003.0020.0002] # BAMUM LETTER PHASE-C KEN FATIGUE
-168EB ; [.3004.0020.0002] # BAMUM LETTER PHASE-C NGAQ
-168EC ; [.3005.0020.0002] # BAMUM LETTER PHASE-C NAQ
-168ED ; [.3006.0020.0002] # BAMUM LETTER PHASE-C LIQ
-168EE ; [.3007.0020.0002] # BAMUM LETTER PHASE-C PIN
-168EF ; [.3008.0020.0002] # BAMUM LETTER PHASE-C PEN
-168F0 ; [.3009.0020.0002] # BAMUM LETTER PHASE-C TET
-168F1 ; [.300A.0020.0002] # BAMUM LETTER PHASE-D MBUO
-168F2 ; [.300B.0020.0002] # BAMUM LETTER PHASE-D WAP
-168F3 ; [.300C.0020.0002] # BAMUM LETTER PHASE-D NJI
-168F4 ; [.300D.0020.0002] # BAMUM LETTER PHASE-D MFON
-168F5 ; [.300E.0020.0002] # BAMUM LETTER PHASE-D NJIEE
-168F6 ; [.300F.0020.0002] # BAMUM LETTER PHASE-D LIEE
-168F7 ; [.3010.0020.0002] # BAMUM LETTER PHASE-D NJEUT
-168F8 ; [.3011.0020.0002] # BAMUM LETTER PHASE-D NSHEE
-168F9 ; [.3012.0020.0002] # BAMUM LETTER PHASE-D NGGAAMAE
-168FA ; [.3013.0020.0002] # BAMUM LETTER PHASE-D NYAM
-168FB ; [.3014.0020.0002] # BAMUM LETTER PHASE-D WUAEN
-168FC ; [.3015.0020.0002] # BAMUM LETTER PHASE-D NGKUN
-168FD ; [.3016.0020.0002] # BAMUM LETTER PHASE-D SHEE
-168FE ; [.3017.0020.0002] # BAMUM LETTER PHASE-D NGKAP
-168FF ; [.3018.0020.0002] # BAMUM LETTER PHASE-D KEUAETMEUN
-16900 ; [.3019.0020.0002] # BAMUM LETTER PHASE-D TEUT
-16901 ; [.301A.0020.0002] # BAMUM LETTER PHASE-D SHEUAE
-16902 ; [.301B.0020.0002] # BAMUM LETTER PHASE-D NJAP
-16903 ; [.301C.0020.0002] # BAMUM LETTER PHASE-D SUE
-16904 ; [.301D.0020.0002] # BAMUM LETTER PHASE-D KET
-16905 ; [.301E.0020.0002] # BAMUM LETTER PHASE-D YAEMMAE
-16906 ; [.301F.0020.0002] # BAMUM LETTER PHASE-D KUOM
-16907 ; [.3020.0020.0002] # BAMUM LETTER PHASE-D SAP
-16908 ; [.3021.0020.0002] # BAMUM LETTER PHASE-D MFEUT
-16909 ; [.3022.0020.0002] # BAMUM LETTER PHASE-D NDEUX
-1690A ; [.3023.0020.0002] # BAMUM LETTER PHASE-D MALEERI
-1690B ; [.3024.0020.0002] # BAMUM LETTER PHASE-D MEUT
-1690C ; [.3025.0020.0002] # BAMUM LETTER PHASE-D SEUAEQ
-1690D ; [.3026.0020.0002] # BAMUM LETTER PHASE-D YEN
-1690E ; [.3027.0020.0002] # BAMUM LETTER PHASE-D NJEUAEM
-1690F ; [.3028.0020.0002] # BAMUM LETTER PHASE-D KEUOT MBUAE
-16910 ; [.3029.0020.0002] # BAMUM LETTER PHASE-D NGKEURI
-16911 ; [.302A.0020.0002] # BAMUM LETTER PHASE-D TU
-16912 ; [.302B.0020.0002] # BAMUM LETTER PHASE-D GHAA
-16913 ; [.302C.0020.0002] # BAMUM LETTER PHASE-D NGKYEE
-16914 ; [.302D.0020.0002] # BAMUM LETTER PHASE-D FEUFEUAET
-16915 ; [.302E.0020.0002] # BAMUM LETTER PHASE-D NDEE
-16916 ; [.302F.0020.0002] # BAMUM LETTER PHASE-D MGBOFUM
-16917 ; [.3030.0020.0002] # BAMUM LETTER PHASE-D LEUAEP
-16918 ; [.3031.0020.0002] # BAMUM LETTER PHASE-D NDON
-16919 ; [.3032.0020.0002] # BAMUM LETTER PHASE-D MONI
-1691A ; [.3033.0020.0002] # BAMUM LETTER PHASE-D MGBEUN
-1691B ; [.3034.0020.0002] # BAMUM LETTER PHASE-D PUUT
-1691C ; [.3035.0020.0002] # BAMUM LETTER PHASE-D MGBIEE
-1691D ; [.3036.0020.0002] # BAMUM LETTER PHASE-D MFO
-1691E ; [.3037.0020.0002] # BAMUM LETTER PHASE-D LUM
-1691F ; [.3038.0020.0002] # BAMUM LETTER PHASE-D NSIEEP
-16920 ; [.3039.0020.0002] # BAMUM LETTER PHASE-D MBAA
-16921 ; [.303A.0020.0002] # BAMUM LETTER PHASE-D KWAET
-16922 ; [.303B.0020.0002] # BAMUM LETTER PHASE-D NYET
-16923 ; [.303C.0020.0002] # BAMUM LETTER PHASE-D TEUAEN
-16924 ; [.303D.0020.0002] # BAMUM LETTER PHASE-D SOT
-16925 ; [.303E.0020.0002] # BAMUM LETTER PHASE-D YUWOQ
-16926 ; [.303F.0020.0002] # BAMUM LETTER PHASE-D KEUM
-16927 ; [.3040.0020.0002] # BAMUM LETTER PHASE-D RAEM
-16928 ; [.3041.0020.0002] # BAMUM LETTER PHASE-D TEEEE
-16929 ; [.3042.0020.0002] # BAMUM LETTER PHASE-D NGKEUAEQ
-1692A ; [.3043.0020.0002] # BAMUM LETTER PHASE-D MFEUAE
-1692B ; [.3044.0020.0002] # BAMUM LETTER PHASE-D NSIEET
-1692C ; [.3045.0020.0002] # BAMUM LETTER PHASE-D KEUP
-1692D ; [.3046.0020.0002] # BAMUM LETTER PHASE-D PIP
-1692E ; [.3047.0020.0002] # BAMUM LETTER PHASE-D PEUTAE
-1692F ; [.3048.0020.0002] # BAMUM LETTER PHASE-D NYUE
-16930 ; [.3049.0020.0002] # BAMUM LETTER PHASE-D LET
-16931 ; [.304A.0020.0002] # BAMUM LETTER PHASE-D NGGAAM
-16932 ; [.304B.0020.0002] # BAMUM LETTER PHASE-D MFIEE
-16933 ; [.304C.0020.0002] # BAMUM LETTER PHASE-D NGGWAEN
-16934 ; [.304D.0020.0002] # BAMUM LETTER PHASE-D YUOM
-16935 ; [.304E.0020.0002] # BAMUM LETTER PHASE-D PAP
-16936 ; [.304F.0020.0002] # BAMUM LETTER PHASE-D YUOP
-16937 ; [.3050.0020.0002] # BAMUM LETTER PHASE-D NDAM
-16938 ; [.3051.0020.0002] # BAMUM LETTER PHASE-D NTEUM
-16939 ; [.3052.0020.0002] # BAMUM LETTER PHASE-D SUAE
-1693A ; [.3053.0020.0002] # BAMUM LETTER PHASE-D KUN
-1693B ; [.3054.0020.0002] # BAMUM LETTER PHASE-D NGGEUX
-1693C ; [.3055.0020.0002] # BAMUM LETTER PHASE-D NGKIEE
-1693D ; [.3056.0020.0002] # BAMUM LETTER PHASE-D TUOT
-1693E ; [.3057.0020.0002] # BAMUM LETTER PHASE-D MEUN
-1693F ; [.3058.0020.0002] # BAMUM LETTER PHASE-D KUQ
-16940 ; [.3059.0020.0002] # BAMUM LETTER PHASE-D NSUM
-16941 ; [.305A.0020.0002] # BAMUM LETTER PHASE-D TEUN
-16942 ; [.305B.0020.0002] # BAMUM LETTER PHASE-D MAENJET
-16943 ; [.305C.0020.0002] # BAMUM LETTER PHASE-D NGGAP
-16944 ; [.305D.0020.0002] # BAMUM LETTER PHASE-D LEUM
-16945 ; [.305E.0020.0002] # BAMUM LETTER PHASE-D NGGUOM
-16946 ; [.305F.0020.0002] # BAMUM LETTER PHASE-D NSHUT
-16947 ; [.3060.0020.0002] # BAMUM LETTER PHASE-D NJUEQ
-16948 ; [.3061.0020.0002] # BAMUM LETTER PHASE-D GHEUAE
-16949 ; [.3062.0020.0002] # BAMUM LETTER PHASE-D KU
-1694A ; [.3063.0020.0002] # BAMUM LETTER PHASE-D REN OLD
-1694B ; [.3064.0020.0002] # BAMUM LETTER PHASE-D TAE
-1694C ; [.3065.0020.0002] # BAMUM LETTER PHASE-D TOQ
-1694D ; [.3066.0020.0002] # BAMUM LETTER PHASE-D NYI
-1694E ; [.3067.0020.0002] # BAMUM LETTER PHASE-D RII
-1694F ; [.3068.0020.0002] # BAMUM LETTER PHASE-D LEEEE
-16950 ; [.3069.0020.0002] # BAMUM LETTER PHASE-D MEEEE
-16951 ; [.306A.0020.0002] # BAMUM LETTER PHASE-D M
-16952 ; [.306B.0020.0002] # BAMUM LETTER PHASE-D SUU
-16953 ; [.306C.0020.0002] # BAMUM LETTER PHASE-D MU
-16954 ; [.306D.0020.0002] # BAMUM LETTER PHASE-D SHII
-16955 ; [.306E.0020.0002] # BAMUM LETTER PHASE-D SHEUX
-16956 ; [.306F.0020.0002] # BAMUM LETTER PHASE-D KYEE
-16957 ; [.3070.0020.0002] # BAMUM LETTER PHASE-D NU
-16958 ; [.3071.0020.0002] # BAMUM LETTER PHASE-D SHU
-16959 ; [.3072.0020.0002] # BAMUM LETTER PHASE-D NTEE
-1695A ; [.3073.0020.0002] # BAMUM LETTER PHASE-D PEE
-1695B ; [.3074.0020.0002] # BAMUM LETTER PHASE-D NI
-1695C ; [.3075.0020.0002] # BAMUM LETTER PHASE-D SHOQ
-1695D ; [.3076.0020.0002] # BAMUM LETTER PHASE-D PUQ
-1695E ; [.3077.0020.0002] # BAMUM LETTER PHASE-D MVOP
-1695F ; [.3078.0020.0002] # BAMUM LETTER PHASE-D LOQ
-16960 ; [.3079.0020.0002] # BAMUM LETTER PHASE-D REN MUCH
-16961 ; [.307A.0020.0002] # BAMUM LETTER PHASE-D TI
-16962 ; [.307B.0020.0002] # BAMUM LETTER PHASE-D NTUU
-16963 ; [.307C.0020.0002] # BAMUM LETTER PHASE-D MBAA SEVEN
-16964 ; [.307D.0020.0002] # BAMUM LETTER PHASE-D SAQ
-16965 ; [.307E.0020.0002] # BAMUM LETTER PHASE-D FAA
-16966 ; [.307F.0020.0002] # BAMUM LETTER PHASE-E NDAP
-16967 ; [.3080.0020.0002] # BAMUM LETTER PHASE-E TOON
-16968 ; [.3081.0020.0002] # BAMUM LETTER PHASE-E MBEUM
-16969 ; [.3082.0020.0002] # BAMUM LETTER PHASE-E LAP
-1696A ; [.3083.0020.0002] # BAMUM LETTER PHASE-E VOM
-1696B ; [.3084.0020.0002] # BAMUM LETTER PHASE-E LOON
-1696C ; [.3085.0020.0002] # BAMUM LETTER PHASE-E PAA
-1696D ; [.3086.0020.0002] # BAMUM LETTER PHASE-E SOM
-1696E ; [.3087.0020.0002] # BAMUM LETTER PHASE-E RAQ
-1696F ; [.3088.0020.0002] # BAMUM LETTER PHASE-E NSHUOP
-16970 ; [.3089.0020.0002] # BAMUM LETTER PHASE-E NDUN
-16971 ; [.308A.0020.0002] # BAMUM LETTER PHASE-E PUAE
-16972 ; [.308B.0020.0002] # BAMUM LETTER PHASE-E TAM
-16973 ; [.308C.0020.0002] # BAMUM LETTER PHASE-E NGKA
-16974 ; [.308D.0020.0002] # BAMUM LETTER PHASE-E KPEUX
-16975 ; [.308E.0020.0002] # BAMUM LETTER PHASE-E WUO
-16976 ; [.308F.0020.0002] # BAMUM LETTER PHASE-E SEE
-16977 ; [.3090.0020.0002] # BAMUM LETTER PHASE-E NGGEUAET
-16978 ; [.3091.0020.0002] # BAMUM LETTER PHASE-E PAAM
-16979 ; [.3092.0020.0002] # BAMUM LETTER PHASE-E TOO
-1697A ; [.3093.0020.0002] # BAMUM LETTER PHASE-E KUOP
-1697B ; [.3094.0020.0002] # BAMUM LETTER PHASE-E LOM
-1697C ; [.3095.0020.0002] # BAMUM LETTER PHASE-E NSHIEE
-1697D ; [.3096.0020.0002] # BAMUM LETTER PHASE-E NGOP
-1697E ; [.3097.0020.0002] # BAMUM LETTER PHASE-E MAEM
-1697F ; [.3098.0020.0002] # BAMUM LETTER PHASE-E NGKEUX
-16980 ; [.3099.0020.0002] # BAMUM LETTER PHASE-E NGOQ
-16981 ; [.309A.0020.0002] # BAMUM LETTER PHASE-E NSHUE
-16982 ; [.309B.0020.0002] # BAMUM LETTER PHASE-E RIMGBA
-16983 ; [.309C.0020.0002] # BAMUM LETTER PHASE-E NJEUX
-16984 ; [.309D.0020.0002] # BAMUM LETTER PHASE-E PEEM
-16985 ; [.309E.0020.0002] # BAMUM LETTER PHASE-E SAA
-16986 ; [.309F.0020.0002] # BAMUM LETTER PHASE-E NGGURAE
-16987 ; [.30A0.0020.0002] # BAMUM LETTER PHASE-E MGBA
-16988 ; [.30A1.0020.0002] # BAMUM LETTER PHASE-E GHEUX
-16989 ; [.30A2.0020.0002] # BAMUM LETTER PHASE-E NGKEUAEM
-1698A ; [.30A3.0020.0002] # BAMUM LETTER PHASE-E NJAEMLI
-1698B ; [.30A4.0020.0002] # BAMUM LETTER PHASE-E MAP
-1698C ; [.30A5.0020.0002] # BAMUM LETTER PHASE-E LOOT
-1698D ; [.30A6.0020.0002] # BAMUM LETTER PHASE-E NGGEEEE
-1698E ; [.30A7.0020.0002] # BAMUM LETTER PHASE-E NDIQ
-1698F ; [.30A8.0020.0002] # BAMUM LETTER PHASE-E TAEN NTEUM
-16990 ; [.30A9.0020.0002] # BAMUM LETTER PHASE-E SET
-16991 ; [.30AA.0020.0002] # BAMUM LETTER PHASE-E PUM
-16992 ; [.30AB.0020.0002] # BAMUM LETTER PHASE-E NDAA SOFTNESS
-16993 ; [.30AC.0020.0002] # BAMUM LETTER PHASE-E NGGUAESHAE NYAM
-16994 ; [.30AD.0020.0002] # BAMUM LETTER PHASE-E YIEE
-16995 ; [.30AE.0020.0002] # BAMUM LETTER PHASE-E GHEUN
-16996 ; [.30AF.0020.0002] # BAMUM LETTER PHASE-E TUAE
-16997 ; [.30B0.0020.0002] # BAMUM LETTER PHASE-E YEUAE
-16998 ; [.30B1.0020.0002] # BAMUM LETTER PHASE-E PO
-16999 ; [.30B2.0020.0002] # BAMUM LETTER PHASE-E TUMAE
-1699A ; [.30B3.0020.0002] # BAMUM LETTER PHASE-E KEUAE
-1699B ; [.30B4.0020.0002] # BAMUM LETTER PHASE-E SUAEN
-1699C ; [.30B5.0020.0002] # BAMUM LETTER PHASE-E TEUAEQ
-1699D ; [.30B6.0020.0002] # BAMUM LETTER PHASE-E VEUAE
-1699E ; [.30B7.0020.0002] # BAMUM LETTER PHASE-E WEUX
-1699F ; [.30B8.0020.0002] # BAMUM LETTER PHASE-E LAAM
-169A0 ; [.30B9.0020.0002] # BAMUM LETTER PHASE-E PU
-169A1 ; [.30BA.0020.0002] # BAMUM LETTER PHASE-E TAAQ
-169A2 ; [.30BB.0020.0002] # BAMUM LETTER PHASE-E GHAAMAE
-169A3 ; [.30BC.0020.0002] # BAMUM LETTER PHASE-E NGEUREUT
-169A4 ; [.30BD.0020.0002] # BAMUM LETTER PHASE-E SHEUAEQ
-169A5 ; [.30BE.0020.0002] # BAMUM LETTER PHASE-E MGBEN
-169A6 ; [.30BF.0020.0002] # BAMUM LETTER PHASE-E MBEE
-169A7 ; [.30C0.0020.0002] # BAMUM LETTER PHASE-E NZAQ
-169A8 ; [.30C1.0020.0002] # BAMUM LETTER PHASE-E NKOM
-169A9 ; [.30C2.0020.0002] # BAMUM LETTER PHASE-E GBET
-169AA ; [.30C3.0020.0002] # BAMUM LETTER PHASE-E TUM
-169AB ; [.30C4.0020.0002] # BAMUM LETTER PHASE-E KUET
-169AC ; [.30C5.0020.0002] # BAMUM LETTER PHASE-E YAP
-169AD ; [.30C6.0020.0002] # BAMUM LETTER PHASE-E NYI CLEAVER
-169AE ; [.30C7.0020.0002] # BAMUM LETTER PHASE-E YIT
-169AF ; [.30C8.0020.0002] # BAMUM LETTER PHASE-E MFEUQ
-169B0 ; [.30C9.0020.0002] # BAMUM LETTER PHASE-E NDIAQ
-169B1 ; [.30CA.0020.0002] # BAMUM LETTER PHASE-E PIEEQ
-169B2 ; [.30CB.0020.0002] # BAMUM LETTER PHASE-E YUEQ
-169B3 ; [.30CC.0020.0002] # BAMUM LETTER PHASE-E LEUAEM
-169B4 ; [.30CD.0020.0002] # BAMUM LETTER PHASE-E FUE
-169B5 ; [.30CE.0020.0002] # BAMUM LETTER PHASE-E GBEUX
-169B6 ; [.30CF.0020.0002] # BAMUM LETTER PHASE-E NGKUP
-169B7 ; [.30D0.0020.0002] # BAMUM LETTER PHASE-E KET
-169B8 ; [.30D1.0020.0002] # BAMUM LETTER PHASE-E MAE
-169B9 ; [.30D2.0020.0002] # BAMUM LETTER PHASE-E NGKAAMI
-169BA ; [.30D3.0020.0002] # BAMUM LETTER PHASE-E GHET
-169BB ; [.30D4.0020.0002] # BAMUM LETTER PHASE-E FA
-169BC ; [.30D5.0020.0002] # BAMUM LETTER PHASE-E NTUM
-169BD ; [.30D6.0020.0002] # BAMUM LETTER PHASE-E PEUT
-169BE ; [.30D7.0020.0002] # BAMUM LETTER PHASE-E YEUM
-169BF ; [.30D8.0020.0002] # BAMUM LETTER PHASE-E NGGEUAE
-169C0 ; [.30D9.0020.0002] # BAMUM LETTER PHASE-E NYI BETWEEN
-169C1 ; [.30DA.0020.0002] # BAMUM LETTER PHASE-E NZUQ
-169C2 ; [.30DB.0020.0002] # BAMUM LETTER PHASE-E POON
-169C3 ; [.30DC.0020.0002] # BAMUM LETTER PHASE-E MIEE
-169C4 ; [.30DD.0020.0002] # BAMUM LETTER PHASE-E FUET
-169C5 ; [.30DE.0020.0002] # BAMUM LETTER PHASE-E NAE
-169C6 ; [.30DF.0020.0002] # BAMUM LETTER PHASE-E MUAE
-169C7 ; [.30E0.0020.0002] # BAMUM LETTER PHASE-E GHEUAE
-169C8 ; [.30E1.0020.0002] # BAMUM LETTER PHASE-E FU I
-169C9 ; [.30E2.0020.0002] # BAMUM LETTER PHASE-E MVI
-169CA ; [.30E3.0020.0002] # BAMUM LETTER PHASE-E PUAQ
-169CB ; [.30E4.0020.0002] # BAMUM LETTER PHASE-E NGKUM
-169CC ; [.30E5.0020.0002] # BAMUM LETTER PHASE-E KUT
-169CD ; [.30E6.0020.0002] # BAMUM LETTER PHASE-E PIET
-169CE ; [.30E7.0020.0002] # BAMUM LETTER PHASE-E NTAP
-169CF ; [.30E8.0020.0002] # BAMUM LETTER PHASE-E YEUAET
-169D0 ; [.30E9.0020.0002] # BAMUM LETTER PHASE-E NGGUP
-169D1 ; [.30EA.0020.0002] # BAMUM LETTER PHASE-E PA PEOPLE
-169D2 ; [.30EB.0020.0002] # BAMUM LETTER PHASE-E FU CALL
-169D3 ; [.30EC.0020.0002] # BAMUM LETTER PHASE-E FOM
-169D4 ; [.30ED.0020.0002] # BAMUM LETTER PHASE-E NJEE
-169D5 ; [.30EE.0020.0002] # BAMUM LETTER PHASE-E A
-169D6 ; [.30EF.0020.0002] # BAMUM LETTER PHASE-E TOQ
-169D7 ; [.30F0.0020.0002] # BAMUM LETTER PHASE-E O
-169D8 ; [.30F1.0020.0002] # BAMUM LETTER PHASE-E I
-169D9 ; [.30F2.0020.0002] # BAMUM LETTER PHASE-E LAQ
-169DA ; [.30F3.0020.0002] # BAMUM LETTER PHASE-E PA PLURAL
-169DB ; [.30F4.0020.0002] # BAMUM LETTER PHASE-E TAA
-169DC ; [.30F5.0020.0002] # BAMUM LETTER PHASE-E TAQ
-169DD ; [.30F6.0020.0002] # BAMUM LETTER PHASE-E NDAA MY HOUSE
-169DE ; [.30F7.0020.0002] # BAMUM LETTER PHASE-E SHIQ
-169DF ; [.30F8.0020.0002] # BAMUM LETTER PHASE-E YEUX
-169E0 ; [.30F9.0020.0002] # BAMUM LETTER PHASE-E NGUAE
-169E1 ; [.30FA.0020.0002] # BAMUM LETTER PHASE-E YUAEN
-169E2 ; [.30FB.0020.0002] # BAMUM LETTER PHASE-E YOQ SWIMMING
-169E3 ; [.30FC.0020.0002] # BAMUM LETTER PHASE-E YOQ COVER
-169E4 ; [.30FD.0020.0002] # BAMUM LETTER PHASE-E YUQ
-169E5 ; [.30FE.0020.0002] # BAMUM LETTER PHASE-E YUN
-169E6 ; [.30FF.0020.0002] # BAMUM LETTER PHASE-E KEUX
-169E7 ; [.3100.0020.0002] # BAMUM LETTER PHASE-E PEUX
-169E8 ; [.3101.0020.0002] # BAMUM LETTER PHASE-E NJEE EPOCH
-169E9 ; [.3102.0020.0002] # BAMUM LETTER PHASE-E PUE
-169EA ; [.3103.0020.0002] # BAMUM LETTER PHASE-E WUE
-169EB ; [.3104.0020.0002] # BAMUM LETTER PHASE-E FEE
-169EC ; [.3105.0020.0002] # BAMUM LETTER PHASE-E VEE
-169ED ; [.3106.0020.0002] # BAMUM LETTER PHASE-E LU
-169EE ; [.3107.0020.0002] # BAMUM LETTER PHASE-E MI
-169EF ; [.3108.0020.0002] # BAMUM LETTER PHASE-E REUX
-169F0 ; [.3109.0020.0002] # BAMUM LETTER PHASE-E RAE
-169F1 ; [.310A.0020.0002] # BAMUM LETTER PHASE-E NGUAET
-169F2 ; [.310B.0020.0002] # BAMUM LETTER PHASE-E NGA
-169F3 ; [.310C.0020.0002] # BAMUM LETTER PHASE-E SHO
-169F4 ; [.310D.0020.0002] # BAMUM LETTER PHASE-E SHOQ
-169F5 ; [.310E.0020.0002] # BAMUM LETTER PHASE-E FU REMEDY
-169F6 ; [.310F.0020.0002] # BAMUM LETTER PHASE-E NA
-169F7 ; [.3110.0020.0002] # BAMUM LETTER PHASE-E PI
-169F8 ; [.3111.0020.0002] # BAMUM LETTER PHASE-E LOQ
-169F9 ; [.3112.0020.0002] # BAMUM LETTER PHASE-E KO
-169FA ; [.3113.0020.0002] # BAMUM LETTER PHASE-E MEN
-169FB ; [.3114.0020.0002] # BAMUM LETTER PHASE-E MA
-169FC ; [.3115.0020.0002] # BAMUM LETTER PHASE-E MAQ
-169FD ; [.3116.0020.0002] # BAMUM LETTER PHASE-E TEU
-169FE ; [.3117.0020.0002] # BAMUM LETTER PHASE-E KI
-169FF ; [.3118.0020.0002] # BAMUM LETTER PHASE-E MON
-16A00 ; [.3119.0020.0002] # BAMUM LETTER PHASE-E TEN
-16A01 ; [.311A.0020.0002] # BAMUM LETTER PHASE-E FAQ
-16A02 ; [.311B.0020.0002] # BAMUM LETTER PHASE-E GHOM
-16A03 ; [.311C.0020.0002] # BAMUM LETTER PHASE-F KA
-16A04 ; [.311D.0020.0002] # BAMUM LETTER PHASE-F U
-16A05 ; [.311E.0020.0002] # BAMUM LETTER PHASE-F KU
-16A06 ; [.311F.0020.0002] # BAMUM LETTER PHASE-F EE
-16A07 ; [.3120.0020.0002] # BAMUM LETTER PHASE-F REE
-16A08 ; [.3121.0020.0002] # BAMUM LETTER PHASE-F TAE
-16A09 ; [.3122.0020.0002] # BAMUM LETTER PHASE-F NYI
-16A0A ; [.3123.0020.0002] # BAMUM LETTER PHASE-F LA
-16A0B ; [.3124.0020.0002] # BAMUM LETTER PHASE-F RII
-16A0C ; [.3125.0020.0002] # BAMUM LETTER PHASE-F RIEE
-16A0D ; [.3126.0020.0002] # BAMUM LETTER PHASE-F MEEEE
-16A0E ; [.3127.0020.0002] # BAMUM LETTER PHASE-F TAA
-16A0F ; [.3128.0020.0002] # BAMUM LETTER PHASE-F NDAA
-16A10 ; [.3129.0020.0002] # BAMUM LETTER PHASE-F NJAEM
-16A11 ; [.312A.0020.0002] # BAMUM LETTER PHASE-F M
-16A12 ; [.312B.0020.0002] # BAMUM LETTER PHASE-F SUU
-16A13 ; [.312C.0020.0002] # BAMUM LETTER PHASE-F SHII
-16A14 ; [.312D.0020.0002] # BAMUM LETTER PHASE-F SI
-16A15 ; [.312E.0020.0002] # BAMUM LETTER PHASE-F SEUX
-16A16 ; [.312F.0020.0002] # BAMUM LETTER PHASE-F KYEE
-16A17 ; [.3130.0020.0002] # BAMUM LETTER PHASE-F KET
-16A18 ; [.3131.0020.0002] # BAMUM LETTER PHASE-F NUAE
-16A19 ; [.3132.0020.0002] # BAMUM LETTER PHASE-F NU
-16A1A ; [.3133.0020.0002] # BAMUM LETTER PHASE-F NJUAE
-16A1B ; [.3134.0020.0002] # BAMUM LETTER PHASE-F YOQ
-16A1C ; [.3135.0020.0002] # BAMUM LETTER PHASE-F SHU
-16A1D ; [.3136.0020.0002] # BAMUM LETTER PHASE-F YA
-16A1E ; [.3137.0020.0002] # BAMUM LETTER PHASE-F NSHA
-16A1F ; [.3138.0020.0002] # BAMUM LETTER PHASE-F PEUX
-16A20 ; [.3139.0020.0002] # BAMUM LETTER PHASE-F NTEE
-16A21 ; [.313A.0020.0002] # BAMUM LETTER PHASE-F WUE
-16A22 ; [.313B.0020.0002] # BAMUM LETTER PHASE-F PEE
-16A23 ; [.313C.0020.0002] # BAMUM LETTER PHASE-F RU
-16A24 ; [.313D.0020.0002] # BAMUM LETTER PHASE-F NI
-16A25 ; [.313E.0020.0002] # BAMUM LETTER PHASE-F REUX
-16A26 ; [.313F.0020.0002] # BAMUM LETTER PHASE-F KEN
-16A27 ; [.3140.0020.0002] # BAMUM LETTER PHASE-F NGKWAEN
-16A28 ; [.3141.0020.0002] # BAMUM LETTER PHASE-F NGGA
-16A29 ; [.3142.0020.0002] # BAMUM LETTER PHASE-F SHO
-16A2A ; [.3143.0020.0002] # BAMUM LETTER PHASE-F PUAE
-16A2B ; [.3144.0020.0002] # BAMUM LETTER PHASE-F FOM
-16A2C ; [.3145.0020.0002] # BAMUM LETTER PHASE-F WA
-16A2D ; [.3146.0020.0002] # BAMUM LETTER PHASE-F LI
-16A2E ; [.3147.0020.0002] # BAMUM LETTER PHASE-F LOQ
-16A2F ; [.3148.0020.0002] # BAMUM LETTER PHASE-F KO
-16A30 ; [.3149.0020.0002] # BAMUM LETTER PHASE-F MBEN
-16A31 ; [.314A.0020.0002] # BAMUM LETTER PHASE-F REN
-16A32 ; [.314B.0020.0002] # BAMUM LETTER PHASE-F MA
-16A33 ; [.314C.0020.0002] # BAMUM LETTER PHASE-F MO
-16A34 ; [.314D.0020.0002] # BAMUM LETTER PHASE-F MBAA
-16A35 ; [.314E.0020.0002] # BAMUM LETTER PHASE-F TET
-16A36 ; [.314F.0020.0002] # BAMUM LETTER PHASE-F KPA
-16A37 ; [.3150.0020.0002] # BAMUM LETTER PHASE-F SAMBA
-16A38 ; [.3151.0020.0002] # BAMUM LETTER PHASE-F VUEQ
-1100 ; [.3152.0020.0002] # HANGUL CHOSEONG KIYEOK
-3131 ; [.3152.0020.0004] # HANGUL LETTER KIYEOK
-3200 ; [*02FA.0020.0004][.3152.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL KIYEOK
-3260 ; [.3152.0020.0006] # CIRCLED HANGUL KIYEOK
-FFA1 ; [.3152.0020.0012] # HALFWIDTH HANGUL LETTER KIYEOK
-320E ; [*02FA.0020.0004][.3152.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL KIYEOK A
-326E ; [.3152.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL KIYEOK A
-1101 ; [.3153.0020.0002] # HANGUL CHOSEONG SSANGKIYEOK
-3132 ; [.3153.0020.0004] # HANGUL LETTER SSANGKIYEOK
-FFA2 ; [.3153.0020.0012] # HALFWIDTH HANGUL LETTER SSANGKIYEOK
-1102 ; [.3154.0020.0002] # HANGUL CHOSEONG NIEUN
-3134 ; [.3154.0020.0004] # HANGUL LETTER NIEUN
-3201 ; [*02FA.0020.0004][.3154.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL NIEUN
-3261 ; [.3154.0020.0006] # CIRCLED HANGUL NIEUN
-FFA4 ; [.3154.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN
-320F ; [*02FA.0020.0004][.3154.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL NIEUN A
-326F ; [.3154.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL NIEUN A
-1103 ; [.3155.0020.0002] # HANGUL CHOSEONG TIKEUT
-3137 ; [.3155.0020.0004] # HANGUL LETTER TIKEUT
-3202 ; [*02FA.0020.0004][.3155.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL TIKEUT
-3262 ; [.3155.0020.0006] # CIRCLED HANGUL TIKEUT
-FFA7 ; [.3155.0020.0012] # HALFWIDTH HANGUL LETTER TIKEUT
-3210 ; [*02FA.0020.0004][.3155.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL TIKEUT A
-3270 ; [.3155.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL TIKEUT A
-1104 ; [.3156.0020.0002] # HANGUL CHOSEONG SSANGTIKEUT
-3138 ; [.3156.0020.0004] # HANGUL LETTER SSANGTIKEUT
-FFA8 ; [.3156.0020.0012] # HALFWIDTH HANGUL LETTER SSANGTIKEUT
-1105 ; [.3157.0020.0002] # HANGUL CHOSEONG RIEUL
-3139 ; [.3157.0020.0004] # HANGUL LETTER RIEUL
-3203 ; [*02FA.0020.0004][.3157.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL RIEUL
-3263 ; [.3157.0020.0006] # CIRCLED HANGUL RIEUL
-FFA9 ; [.3157.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL
-3211 ; [*02FA.0020.0004][.3157.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL RIEUL A
-3271 ; [.3157.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL RIEUL A
-1106 ; [.3158.0020.0002] # HANGUL CHOSEONG MIEUM
-3141 ; [.3158.0020.0004] # HANGUL LETTER MIEUM
-3204 ; [*02FA.0020.0004][.3158.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL MIEUM
-3264 ; [.3158.0020.0006] # CIRCLED HANGUL MIEUM
-FFB1 ; [.3158.0020.0012] # HALFWIDTH HANGUL LETTER MIEUM
-3212 ; [*02FA.0020.0004][.3158.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL MIEUM A
-3272 ; [.3158.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL MIEUM A
-1107 ; [.3159.0020.0002] # HANGUL CHOSEONG PIEUP
-3142 ; [.3159.0020.0004] # HANGUL LETTER PIEUP
-3205 ; [*02FA.0020.0004][.3159.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL PIEUP
-3265 ; [.3159.0020.0006] # CIRCLED HANGUL PIEUP
-FFB2 ; [.3159.0020.0012] # HALFWIDTH HANGUL LETTER PIEUP
-3213 ; [*02FA.0020.0004][.3159.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL PIEUP A
-3273 ; [.3159.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL PIEUP A
-1108 ; [.315A.0020.0002] # HANGUL CHOSEONG SSANGPIEUP
-3143 ; [.315A.0020.0004] # HANGUL LETTER SSANGPIEUP
-FFB3 ; [.315A.0020.0012] # HALFWIDTH HANGUL LETTER SSANGPIEUP
-1109 ; [.315B.0020.0002] # HANGUL CHOSEONG SIOS
-3145 ; [.315B.0020.0004] # HANGUL LETTER SIOS
-3206 ; [*02FA.0020.0004][.315B.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL SIOS
-3266 ; [.315B.0020.0006] # CIRCLED HANGUL SIOS
-FFB5 ; [.315B.0020.0012] # HALFWIDTH HANGUL LETTER SIOS
-3214 ; [*02FA.0020.0004][.315B.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL SIOS A
-3274 ; [.315B.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL SIOS A
-110A ; [.315C.0020.0002] # HANGUL CHOSEONG SSANGSIOS
-3146 ; [.315C.0020.0004] # HANGUL LETTER SSANGSIOS
-FFB6 ; [.315C.0020.0012] # HALFWIDTH HANGUL LETTER SSANGSIOS
-110B ; [.315D.0020.0002] # HANGUL CHOSEONG IEUNG
-3147 ; [.315D.0020.0004] # HANGUL LETTER IEUNG
-3207 ; [*02FA.0020.0004][.315D.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL IEUNG
-3267 ; [.315D.0020.0006] # CIRCLED HANGUL IEUNG
-FFB7 ; [.315D.0020.0012] # HALFWIDTH HANGUL LETTER IEUNG
-3215 ; [*02FA.0020.0004][.315D.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL IEUNG A
-3275 ; [.315D.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL IEUNG A
-321D ; [*02FA.0020.0004][.315D.0020.0004][.31D8.0020.0004][.315E.0020.0004][.31D4.0020.0004][.3231.0020.0004][*02FB.0020.0004] # PARENTHESIZED KOREAN CHARACTER OJEON
-321E ; [*02FA.0020.0004][.315D.0020.0004][.31D8.0020.0004][.3164.0020.0004][.31DD.0020.0004][*02FB.0020.0004] # PARENTHESIZED KOREAN CHARACTER O HU
-327E ; [.315D.0020.0006][.31DD.0020.0006] # CIRCLED HANGUL IEUNG U
-110C ; [.315E.0020.0002] # HANGUL CHOSEONG CIEUC
-3148 ; [.315E.0020.0004] # HANGUL LETTER CIEUC
-3208 ; [*02FA.0020.0004][.315E.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL CIEUC
-3268 ; [.315E.0020.0006] # CIRCLED HANGUL CIEUC
-FFB8 ; [.315E.0020.0012] # HALFWIDTH HANGUL LETTER CIEUC
-3216 ; [*02FA.0020.0004][.315E.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL CIEUC A
-3276 ; [.315E.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL CIEUC A
-321C ; [*02FA.0020.0004][.315E.0020.0004][.31DD.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL CIEUC U
-327D ; [.315E.0020.0006][.31DD.0020.0006][.315D.0020.0006][.31E3.0020.0006] # CIRCLED KOREAN CHARACTER JUEUI
-110D ; [.315F.0020.0002] # HANGUL CHOSEONG SSANGCIEUC
-3149 ; [.315F.0020.0004] # HANGUL LETTER SSANGCIEUC
-FFB9 ; [.315F.0020.0012] # HALFWIDTH HANGUL LETTER SSANGCIEUC
-110E ; [.3160.0020.0002] # HANGUL CHOSEONG CHIEUCH
-314A ; [.3160.0020.0004] # HANGUL LETTER CHIEUCH
-3209 ; [*02FA.0020.0004][.3160.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL CHIEUCH
-3269 ; [.3160.0020.0006] # CIRCLED HANGUL CHIEUCH
-FFBA ; [.3160.0020.0012] # HALFWIDTH HANGUL LETTER CHIEUCH
-3217 ; [*02FA.0020.0004][.3160.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL CHIEUCH A
-3277 ; [.3160.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL CHIEUCH A
-327C ; [.3160.0020.0006][.31D0.0020.0006][.323D.0020.0006][.3152.0020.0006][.31D8.0020.0006] # CIRCLED KOREAN CHARACTER CHAMKO
-110F ; [.3161.0020.0002] # HANGUL CHOSEONG KHIEUKH
-314B ; [.3161.0020.0004] # HANGUL LETTER KHIEUKH
-320A ; [*02FA.0020.0004][.3161.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL KHIEUKH
-326A ; [.3161.0020.0006] # CIRCLED HANGUL KHIEUKH
-FFBB ; [.3161.0020.0012] # HALFWIDTH HANGUL LETTER KHIEUKH
-3218 ; [*02FA.0020.0004][.3161.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL KHIEUKH A
-3278 ; [.3161.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL KHIEUKH A
-1110 ; [.3162.0020.0002] # HANGUL CHOSEONG THIEUTH
-314C ; [.3162.0020.0004] # HANGUL LETTER THIEUTH
-320B ; [*02FA.0020.0004][.3162.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL THIEUTH
-326B ; [.3162.0020.0006] # CIRCLED HANGUL THIEUTH
-FFBC ; [.3162.0020.0012] # HALFWIDTH HANGUL LETTER THIEUTH
-3219 ; [*02FA.0020.0004][.3162.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL THIEUTH A
-3279 ; [.3162.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL THIEUTH A
-1111 ; [.3163.0020.0002] # HANGUL CHOSEONG PHIEUPH
-314D ; [.3163.0020.0004] # HANGUL LETTER PHIEUPH
-320C ; [*02FA.0020.0004][.3163.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL PHIEUPH
-326C ; [.3163.0020.0006] # CIRCLED HANGUL PHIEUPH
-FFBD ; [.3163.0020.0012] # HALFWIDTH HANGUL LETTER PHIEUPH
-321A ; [*02FA.0020.0004][.3163.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL PHIEUPH A
-327A ; [.3163.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL PHIEUPH A
-1112 ; [.3164.0020.0002] # HANGUL CHOSEONG HIEUH
-314E ; [.3164.0020.0004] # HANGUL LETTER HIEUH
-320D ; [*02FA.0020.0004][.3164.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL HIEUH
-326D ; [.3164.0020.0006] # CIRCLED HANGUL HIEUH
-FFBE ; [.3164.0020.0012] # HALFWIDTH HANGUL LETTER HIEUH
-321B ; [*02FA.0020.0004][.3164.0020.0004][.31D0.0020.0004][*02FB.0020.0004] # PARENTHESIZED HANGUL HIEUH A
-327B ; [.3164.0020.0006][.31D0.0020.0006] # CIRCLED HANGUL HIEUH A
-1113 ; [.3165.0020.0002] # HANGUL CHOSEONG NIEUN-KIYEOK
-1114 ; [.3166.0020.0002] # HANGUL CHOSEONG SSANGNIEUN
-3165 ; [.3166.0020.0004] # HANGUL LETTER SSANGNIEUN
-1115 ; [.3167.0020.0002] # HANGUL CHOSEONG NIEUN-TIKEUT
-3166 ; [.3167.0020.0004] # HANGUL LETTER NIEUN-TIKEUT
-1116 ; [.3168.0020.0002] # HANGUL CHOSEONG NIEUN-PIEUP
-1117 ; [.3169.0020.0002] # HANGUL CHOSEONG TIKEUT-KIYEOK
-1118 ; [.316A.0020.0002] # HANGUL CHOSEONG RIEUL-NIEUN
-1119 ; [.316B.0020.0002] # HANGUL CHOSEONG SSANGRIEUL
-111A ; [.316C.0020.0002] # HANGUL CHOSEONG RIEUL-HIEUH
-3140 ; [.316C.0020.0004] # HANGUL LETTER RIEUL-HIEUH
-FFB0 ; [.316C.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-HIEUH
-111B ; [.316D.0020.0002] # HANGUL CHOSEONG KAPYEOUNRIEUL
-111C ; [.316E.0020.0002] # HANGUL CHOSEONG MIEUM-PIEUP
-316E ; [.316E.0020.0004] # HANGUL LETTER MIEUM-PIEUP
-111D ; [.316F.0020.0002] # HANGUL CHOSEONG KAPYEOUNMIEUM
-3171 ; [.316F.0020.0004] # HANGUL LETTER KAPYEOUNMIEUM
-111E ; [.3170.0020.0002] # HANGUL CHOSEONG PIEUP-KIYEOK
-3172 ; [.3170.0020.0004] # HANGUL LETTER PIEUP-KIYEOK
-111F ; [.3171.0020.0002] # HANGUL CHOSEONG PIEUP-NIEUN
-1120 ; [.3172.0020.0002] # HANGUL CHOSEONG PIEUP-TIKEUT
-3173 ; [.3172.0020.0004] # HANGUL LETTER PIEUP-TIKEUT
-1121 ; [.3173.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS
-3144 ; [.3173.0020.0004] # HANGUL LETTER PIEUP-SIOS
-FFB4 ; [.3173.0020.0012] # HALFWIDTH HANGUL LETTER PIEUP-SIOS
-1122 ; [.3174.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
-3174 ; [.3174.0020.0004] # HANGUL LETTER PIEUP-SIOS-KIYEOK
-1123 ; [.3175.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
-3175 ; [.3175.0020.0004] # HANGUL LETTER PIEUP-SIOS-TIKEUT
-1124 ; [.3176.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-PIEUP
-1125 ; [.3177.0020.0002] # HANGUL CHOSEONG PIEUP-SSANGSIOS
-1126 ; [.3178.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-CIEUC
-1127 ; [.3179.0020.0002] # HANGUL CHOSEONG PIEUP-CIEUC
-3176 ; [.3179.0020.0004] # HANGUL LETTER PIEUP-CIEUC
-1128 ; [.317A.0020.0002] # HANGUL CHOSEONG PIEUP-CHIEUCH
-1129 ; [.317B.0020.0002] # HANGUL CHOSEONG PIEUP-THIEUTH
-3177 ; [.317B.0020.0004] # HANGUL LETTER PIEUP-THIEUTH
-112A ; [.317C.0020.0002] # HANGUL CHOSEONG PIEUP-PHIEUPH
-112B ; [.317D.0020.0002] # HANGUL CHOSEONG KAPYEOUNPIEUP
-3178 ; [.317D.0020.0004] # HANGUL LETTER KAPYEOUNPIEUP
-112C ; [.317E.0020.0002] # HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
-3179 ; [.317E.0020.0004] # HANGUL LETTER KAPYEOUNSSANGPIEUP
-112D ; [.317F.0020.0002] # HANGUL CHOSEONG SIOS-KIYEOK
-317A ; [.317F.0020.0004] # HANGUL LETTER SIOS-KIYEOK
-112E ; [.3180.0020.0002] # HANGUL CHOSEONG SIOS-NIEUN
-317B ; [.3180.0020.0004] # HANGUL LETTER SIOS-NIEUN
-112F ; [.3181.0020.0002] # HANGUL CHOSEONG SIOS-TIKEUT
-317C ; [.3181.0020.0004] # HANGUL LETTER SIOS-TIKEUT
-1130 ; [.3182.0020.0002] # HANGUL CHOSEONG SIOS-RIEUL
-1131 ; [.3183.0020.0002] # HANGUL CHOSEONG SIOS-MIEUM
-1132 ; [.3184.0020.0002] # HANGUL CHOSEONG SIOS-PIEUP
-317D ; [.3184.0020.0004] # HANGUL LETTER SIOS-PIEUP
-1133 ; [.3185.0020.0002] # HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
-1134 ; [.3186.0020.0002] # HANGUL CHOSEONG SIOS-SSANGSIOS
-1135 ; [.3187.0020.0002] # HANGUL CHOSEONG SIOS-IEUNG
-1136 ; [.3188.0020.0002] # HANGUL CHOSEONG SIOS-CIEUC
-317E ; [.3188.0020.0004] # HANGUL LETTER SIOS-CIEUC
-1137 ; [.3189.0020.0002] # HANGUL CHOSEONG SIOS-CHIEUCH
-1138 ; [.318A.0020.0002] # HANGUL CHOSEONG SIOS-KHIEUKH
-1139 ; [.318B.0020.0002] # HANGUL CHOSEONG SIOS-THIEUTH
-113A ; [.318C.0020.0002] # HANGUL CHOSEONG SIOS-PHIEUPH
-113B ; [.318D.0020.0002] # HANGUL CHOSEONG SIOS-HIEUH
-113C ; [.318E.0020.0002] # HANGUL CHOSEONG CHITUEUMSIOS
-113D ; [.318F.0020.0002] # HANGUL CHOSEONG CHITUEUMSSANGSIOS
-113E ; [.3190.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSIOS
-113F ; [.3191.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
-1140 ; [.3192.0020.0002] # HANGUL CHOSEONG PANSIOS
-317F ; [.3192.0020.0004] # HANGUL LETTER PANSIOS
-1141 ; [.3193.0020.0002] # HANGUL CHOSEONG IEUNG-KIYEOK
-1142 ; [.3194.0020.0002] # HANGUL CHOSEONG IEUNG-TIKEUT
-1143 ; [.3195.0020.0002] # HANGUL CHOSEONG IEUNG-MIEUM
-1144 ; [.3196.0020.0002] # HANGUL CHOSEONG IEUNG-PIEUP
-1145 ; [.3197.0020.0002] # HANGUL CHOSEONG IEUNG-SIOS
-1146 ; [.3198.0020.0002] # HANGUL CHOSEONG IEUNG-PANSIOS
-1147 ; [.3199.0020.0002] # HANGUL CHOSEONG SSANGIEUNG
-3180 ; [.3199.0020.0004] # HANGUL LETTER SSANGIEUNG
-1148 ; [.319A.0020.0002] # HANGUL CHOSEONG IEUNG-CIEUC
-1149 ; [.319B.0020.0002] # HANGUL CHOSEONG IEUNG-CHIEUCH
-114A ; [.319C.0020.0002] # HANGUL CHOSEONG IEUNG-THIEUTH
-114B ; [.319D.0020.0002] # HANGUL CHOSEONG IEUNG-PHIEUPH
-114C ; [.319E.0020.0002] # HANGUL CHOSEONG YESIEUNG
-3181 ; [.319E.0020.0004] # HANGUL LETTER YESIEUNG
-114D ; [.319F.0020.0002] # HANGUL CHOSEONG CIEUC-IEUNG
-114E ; [.31A0.0020.0002] # HANGUL CHOSEONG CHITUEUMCIEUC
-114F ; [.31A1.0020.0002] # HANGUL CHOSEONG CHITUEUMSSANGCIEUC
-1150 ; [.31A2.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMCIEUC
-1151 ; [.31A3.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
-1152 ; [.31A4.0020.0002] # HANGUL CHOSEONG CHIEUCH-KHIEUKH
-1153 ; [.31A5.0020.0002] # HANGUL CHOSEONG CHIEUCH-HIEUH
-1154 ; [.31A6.0020.0002] # HANGUL CHOSEONG CHITUEUMCHIEUCH
-1155 ; [.31A7.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMCHIEUCH
-1156 ; [.31A8.0020.0002] # HANGUL CHOSEONG PHIEUPH-PIEUP
-1157 ; [.31A9.0020.0002] # HANGUL CHOSEONG KAPYEOUNPHIEUPH
-3184 ; [.31A9.0020.0004] # HANGUL LETTER KAPYEOUNPHIEUPH
-1158 ; [.31AA.0020.0002] # HANGUL CHOSEONG SSANGHIEUH
-3185 ; [.31AA.0020.0004] # HANGUL LETTER SSANGHIEUH
-1159 ; [.31AB.0020.0002] # HANGUL CHOSEONG YEORINHIEUH
-3186 ; [.31AB.0020.0004] # HANGUL LETTER YEORINHIEUH
-115A ; [.31AC.0020.0002] # HANGUL CHOSEONG KIYEOK-TIKEUT
-115B ; [.31AD.0020.0002] # HANGUL CHOSEONG NIEUN-SIOS
-115C ; [.31AE.0020.0002] # HANGUL CHOSEONG NIEUN-CIEUC
-115D ; [.31AF.0020.0002] # HANGUL CHOSEONG NIEUN-HIEUH
-115E ; [.31B0.0020.0002] # HANGUL CHOSEONG TIKEUT-RIEUL
-A960 ; [.31B1.0020.0002] # HANGUL CHOSEONG TIKEUT-MIEUM
-A961 ; [.31B2.0020.0002] # HANGUL CHOSEONG TIKEUT-PIEUP
-A962 ; [.31B3.0020.0002] # HANGUL CHOSEONG TIKEUT-SIOS
-A963 ; [.31B4.0020.0002] # HANGUL CHOSEONG TIKEUT-CIEUC
-A964 ; [.31B5.0020.0002] # HANGUL CHOSEONG RIEUL-KIYEOK
-A965 ; [.31B6.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGKIYEOK
-A966 ; [.31B7.0020.0002] # HANGUL CHOSEONG RIEUL-TIKEUT
-A967 ; [.31B8.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGTIKEUT
-A968 ; [.31B9.0020.0002] # HANGUL CHOSEONG RIEUL-MIEUM
-A969 ; [.31BA.0020.0002] # HANGUL CHOSEONG RIEUL-PIEUP
-A96A ; [.31BB.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGPIEUP
-A96B ; [.31BC.0020.0002] # HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP
-A96C ; [.31BD.0020.0002] # HANGUL CHOSEONG RIEUL-SIOS
-A96D ; [.31BE.0020.0002] # HANGUL CHOSEONG RIEUL-CIEUC
-A96E ; [.31BF.0020.0002] # HANGUL CHOSEONG RIEUL-KHIEUKH
-A96F ; [.31C0.0020.0002] # HANGUL CHOSEONG MIEUM-KIYEOK
-A970 ; [.31C1.0020.0002] # HANGUL CHOSEONG MIEUM-TIKEUT
-A971 ; [.31C2.0020.0002] # HANGUL CHOSEONG MIEUM-SIOS
-A972 ; [.31C3.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-THIEUTH
-A973 ; [.31C4.0020.0002] # HANGUL CHOSEONG PIEUP-KHIEUKH
-A974 ; [.31C5.0020.0002] # HANGUL CHOSEONG PIEUP-HIEUH
-A975 ; [.31C6.0020.0002] # HANGUL CHOSEONG SSANGSIOS-PIEUP
-A976 ; [.31C7.0020.0002] # HANGUL CHOSEONG IEUNG-RIEUL
-A977 ; [.31C8.0020.0002] # HANGUL CHOSEONG IEUNG-HIEUH
-A978 ; [.31C9.0020.0002] # HANGUL CHOSEONG SSANGCIEUC-HIEUH
-A979 ; [.31CA.0020.0002] # HANGUL CHOSEONG SSANGTHIEUTH
-A97A ; [.31CB.0020.0002] # HANGUL CHOSEONG PHIEUPH-HIEUH
-A97B ; [.31CC.0020.0002] # HANGUL CHOSEONG HIEUH-SIOS
-A97C ; [.31CD.0020.0002] # HANGUL CHOSEONG SSANGYEORINHIEUH
-115F ; [.31CE.0020.0002] # HANGUL CHOSEONG FILLER
-1160 ; [.31CF.0020.0002] # HANGUL JUNGSEONG FILLER
-3164 ; [.31CF.0020.0004] # HANGUL FILLER
-FFA0 ; [.31CF.0020.0012] # HALFWIDTH HANGUL FILLER
-1161 ; [.31D0.0020.0002] # HANGUL JUNGSEONG A
-314F ; [.31D0.0020.0004] # HANGUL LETTER A
-FFC2 ; [.31D0.0020.0012] # HALFWIDTH HANGUL LETTER A
-1162 ; [.31D1.0020.0002] # HANGUL JUNGSEONG AE
-3150 ; [.31D1.0020.0004] # HANGUL LETTER AE
-FFC3 ; [.31D1.0020.0012] # HALFWIDTH HANGUL LETTER AE
-1163 ; [.31D2.0020.0002] # HANGUL JUNGSEONG YA
-3151 ; [.31D2.0020.0004] # HANGUL LETTER YA
-FFC4 ; [.31D2.0020.0012] # HALFWIDTH HANGUL LETTER YA
-1164 ; [.31D3.0020.0002] # HANGUL JUNGSEONG YAE
-3152 ; [.31D3.0020.0004] # HANGUL LETTER YAE
-FFC5 ; [.31D3.0020.0012] # HALFWIDTH HANGUL LETTER YAE
-1165 ; [.31D4.0020.0002] # HANGUL JUNGSEONG EO
-3153 ; [.31D4.0020.0004] # HANGUL LETTER EO
-FFC6 ; [.31D4.0020.0012] # HALFWIDTH HANGUL LETTER EO
-1166 ; [.31D5.0020.0002] # HANGUL JUNGSEONG E
-3154 ; [.31D5.0020.0004] # HANGUL LETTER E
-FFC7 ; [.31D5.0020.0012] # HALFWIDTH HANGUL LETTER E
-1167 ; [.31D6.0020.0002] # HANGUL JUNGSEONG YEO
-3155 ; [.31D6.0020.0004] # HANGUL LETTER YEO
-FFCA ; [.31D6.0020.0012] # HALFWIDTH HANGUL LETTER YEO
-1168 ; [.31D7.0020.0002] # HANGUL JUNGSEONG YE
-3156 ; [.31D7.0020.0004] # HANGUL LETTER YE
-FFCB ; [.31D7.0020.0012] # HALFWIDTH HANGUL LETTER YE
-1169 ; [.31D8.0020.0002] # HANGUL JUNGSEONG O
-3157 ; [.31D8.0020.0004] # HANGUL LETTER O
-FFCC ; [.31D8.0020.0012] # HALFWIDTH HANGUL LETTER O
-116A ; [.31D9.0020.0002] # HANGUL JUNGSEONG WA
-3158 ; [.31D9.0020.0004] # HANGUL LETTER WA
-FFCD ; [.31D9.0020.0012] # HALFWIDTH HANGUL LETTER WA
-116B ; [.31DA.0020.0002] # HANGUL JUNGSEONG WAE
-3159 ; [.31DA.0020.0004] # HANGUL LETTER WAE
-FFCE ; [.31DA.0020.0012] # HALFWIDTH HANGUL LETTER WAE
-116C ; [.31DB.0020.0002] # HANGUL JUNGSEONG OE
-315A ; [.31DB.0020.0004] # HANGUL LETTER OE
-FFCF ; [.31DB.0020.0012] # HALFWIDTH HANGUL LETTER OE
-116D ; [.31DC.0020.0002] # HANGUL JUNGSEONG YO
-315B ; [.31DC.0020.0004] # HANGUL LETTER YO
-FFD2 ; [.31DC.0020.0012] # HALFWIDTH HANGUL LETTER YO
-116E ; [.31DD.0020.0002] # HANGUL JUNGSEONG U
-315C ; [.31DD.0020.0004] # HANGUL LETTER U
-FFD3 ; [.31DD.0020.0012] # HALFWIDTH HANGUL LETTER U
-116F ; [.31DE.0020.0002] # HANGUL JUNGSEONG WEO
-315D ; [.31DE.0020.0004] # HANGUL LETTER WEO
-FFD4 ; [.31DE.0020.0012] # HALFWIDTH HANGUL LETTER WEO
-1170 ; [.31DF.0020.0002] # HANGUL JUNGSEONG WE
-315E ; [.31DF.0020.0004] # HANGUL LETTER WE
-FFD5 ; [.31DF.0020.0012] # HALFWIDTH HANGUL LETTER WE
-1171 ; [.31E0.0020.0002] # HANGUL JUNGSEONG WI
-315F ; [.31E0.0020.0004] # HANGUL LETTER WI
-FFD6 ; [.31E0.0020.0012] # HALFWIDTH HANGUL LETTER WI
-1172 ; [.31E1.0020.0002] # HANGUL JUNGSEONG YU
-3160 ; [.31E1.0020.0004] # HANGUL LETTER YU
-FFD7 ; [.31E1.0020.0012] # HALFWIDTH HANGUL LETTER YU
-1173 ; [.31E2.0020.0002] # HANGUL JUNGSEONG EU
-3161 ; [.31E2.0020.0004] # HANGUL LETTER EU
-FFDA ; [.31E2.0020.0012] # HALFWIDTH HANGUL LETTER EU
-1174 ; [.31E3.0020.0002] # HANGUL JUNGSEONG YI
-3162 ; [.31E3.0020.0004] # HANGUL LETTER YI
-FFDB ; [.31E3.0020.0012] # HALFWIDTH HANGUL LETTER YI
-1175 ; [.31E4.0020.0002] # HANGUL JUNGSEONG I
-3163 ; [.31E4.0020.0004] # HANGUL LETTER I
-FFDC ; [.31E4.0020.0012] # HALFWIDTH HANGUL LETTER I
-1176 ; [.31E5.0020.0002] # HANGUL JUNGSEONG A-O
-1177 ; [.31E6.0020.0002] # HANGUL JUNGSEONG A-U
-1178 ; [.31E7.0020.0002] # HANGUL JUNGSEONG YA-O
-1179 ; [.31E8.0020.0002] # HANGUL JUNGSEONG YA-YO
-117A ; [.31E9.0020.0002] # HANGUL JUNGSEONG EO-O
-117B ; [.31EA.0020.0002] # HANGUL JUNGSEONG EO-U
-117C ; [.31EB.0020.0002] # HANGUL JUNGSEONG EO-EU
-117D ; [.31EC.0020.0002] # HANGUL JUNGSEONG YEO-O
-117E ; [.31ED.0020.0002] # HANGUL JUNGSEONG YEO-U
-117F ; [.31EE.0020.0002] # HANGUL JUNGSEONG O-EO
-1180 ; [.31EF.0020.0002] # HANGUL JUNGSEONG O-E
-1181 ; [.31F0.0020.0002] # HANGUL JUNGSEONG O-YE
-1182 ; [.31F1.0020.0002] # HANGUL JUNGSEONG O-O
-1183 ; [.31F2.0020.0002] # HANGUL JUNGSEONG O-U
-1184 ; [.31F3.0020.0002] # HANGUL JUNGSEONG YO-YA
-3187 ; [.31F3.0020.0004] # HANGUL LETTER YO-YA
-1185 ; [.31F4.0020.0002] # HANGUL JUNGSEONG YO-YAE
-3188 ; [.31F4.0020.0004] # HANGUL LETTER YO-YAE
-1186 ; [.31F5.0020.0002] # HANGUL JUNGSEONG YO-YEO
-1187 ; [.31F6.0020.0002] # HANGUL JUNGSEONG YO-O
-1188 ; [.31F7.0020.0002] # HANGUL JUNGSEONG YO-I
-3189 ; [.31F7.0020.0004] # HANGUL LETTER YO-I
-1189 ; [.31F8.0020.0002] # HANGUL JUNGSEONG U-A
-118A ; [.31F9.0020.0002] # HANGUL JUNGSEONG U-AE
-118B ; [.31FA.0020.0002] # HANGUL JUNGSEONG U-EO-EU
-118C ; [.31FB.0020.0002] # HANGUL JUNGSEONG U-YE
-118D ; [.31FC.0020.0002] # HANGUL JUNGSEONG U-U
-118E ; [.31FD.0020.0002] # HANGUL JUNGSEONG YU-A
-118F ; [.31FE.0020.0002] # HANGUL JUNGSEONG YU-EO
-1190 ; [.31FF.0020.0002] # HANGUL JUNGSEONG YU-E
-1191 ; [.3200.0020.0002] # HANGUL JUNGSEONG YU-YEO
-318A ; [.3200.0020.0004] # HANGUL LETTER YU-YEO
-1192 ; [.3201.0020.0002] # HANGUL JUNGSEONG YU-YE
-318B ; [.3201.0020.0004] # HANGUL LETTER YU-YE
-1193 ; [.3202.0020.0002] # HANGUL JUNGSEONG YU-U
-1194 ; [.3203.0020.0002] # HANGUL JUNGSEONG YU-I
-318C ; [.3203.0020.0004] # HANGUL LETTER YU-I
-1195 ; [.3204.0020.0002] # HANGUL JUNGSEONG EU-U
-1196 ; [.3205.0020.0002] # HANGUL JUNGSEONG EU-EU
-1197 ; [.3206.0020.0002] # HANGUL JUNGSEONG YI-U
-1198 ; [.3207.0020.0002] # HANGUL JUNGSEONG I-A
-1199 ; [.3208.0020.0002] # HANGUL JUNGSEONG I-YA
-119A ; [.3209.0020.0002] # HANGUL JUNGSEONG I-O
-119B ; [.320A.0020.0002] # HANGUL JUNGSEONG I-U
-119C ; [.320B.0020.0002] # HANGUL JUNGSEONG I-EU
-119D ; [.320C.0020.0002] # HANGUL JUNGSEONG I-ARAEA
-119E ; [.320D.0020.0002] # HANGUL JUNGSEONG ARAEA
-318D ; [.320D.0020.0004] # HANGUL LETTER ARAEA
-119F ; [.320E.0020.0002] # HANGUL JUNGSEONG ARAEA-EO
-11A0 ; [.320F.0020.0002] # HANGUL JUNGSEONG ARAEA-U
-11A1 ; [.3210.0020.0002] # HANGUL JUNGSEONG ARAEA-I
-318E ; [.3210.0020.0004] # HANGUL LETTER ARAEAE
-11A2 ; [.3211.0020.0002] # HANGUL JUNGSEONG SSANGARAEA
-11A3 ; [.3212.0020.0002] # HANGUL JUNGSEONG A-EU
-11A4 ; [.3213.0020.0002] # HANGUL JUNGSEONG YA-U
-11A5 ; [.3214.0020.0002] # HANGUL JUNGSEONG YEO-YA
-11A6 ; [.3215.0020.0002] # HANGUL JUNGSEONG O-YA
-11A7 ; [.3216.0020.0002] # HANGUL JUNGSEONG O-YAE
-D7B0 ; [.3217.0020.0002] # HANGUL JUNGSEONG O-YEO
-D7B1 ; [.3218.0020.0002] # HANGUL JUNGSEONG O-O-I
-D7B2 ; [.3219.0020.0002] # HANGUL JUNGSEONG YO-A
-D7B3 ; [.321A.0020.0002] # HANGUL JUNGSEONG YO-AE
-D7B4 ; [.321B.0020.0002] # HANGUL JUNGSEONG YO-EO
-D7B5 ; [.321C.0020.0002] # HANGUL JUNGSEONG U-YEO
-D7B6 ; [.321D.0020.0002] # HANGUL JUNGSEONG U-I-I
-D7B7 ; [.321E.0020.0002] # HANGUL JUNGSEONG YU-AE
-D7B8 ; [.321F.0020.0002] # HANGUL JUNGSEONG YU-O
-D7B9 ; [.3220.0020.0002] # HANGUL JUNGSEONG EU-A
-D7BA ; [.3221.0020.0002] # HANGUL JUNGSEONG EU-EO
-D7BB ; [.3222.0020.0002] # HANGUL JUNGSEONG EU-E
-D7BC ; [.3223.0020.0002] # HANGUL JUNGSEONG EU-O
-D7BD ; [.3224.0020.0002] # HANGUL JUNGSEONG I-YA-O
-D7BE ; [.3225.0020.0002] # HANGUL JUNGSEONG I-YAE
-D7BF ; [.3226.0020.0002] # HANGUL JUNGSEONG I-YEO
-D7C0 ; [.3227.0020.0002] # HANGUL JUNGSEONG I-YE
-D7C1 ; [.3228.0020.0002] # HANGUL JUNGSEONG I-O-I
-D7C2 ; [.3229.0020.0002] # HANGUL JUNGSEONG I-YO
-D7C3 ; [.322A.0020.0002] # HANGUL JUNGSEONG I-YU
-D7C4 ; [.322B.0020.0002] # HANGUL JUNGSEONG I-I
-D7C5 ; [.322C.0020.0002] # HANGUL JUNGSEONG ARAEA-A
-D7C6 ; [.322D.0020.0002] # HANGUL JUNGSEONG ARAEA-E
-11A8 ; [.322E.0020.0002] # HANGUL JONGSEONG KIYEOK
-11A9 ; [.322F.0020.0002] # HANGUL JONGSEONG SSANGKIYEOK
-11AA ; [.3230.0020.0002] # HANGUL JONGSEONG KIYEOK-SIOS
-3133 ; [.3230.0020.0004] # HANGUL LETTER KIYEOK-SIOS
-FFA3 ; [.3230.0020.0012] # HALFWIDTH HANGUL LETTER KIYEOK-SIOS
-11AB ; [.3231.0020.0002] # HANGUL JONGSEONG NIEUN
-11AC ; [.3232.0020.0002] # HANGUL JONGSEONG NIEUN-CIEUC
-3135 ; [.3232.0020.0004] # HANGUL LETTER NIEUN-CIEUC
-FFA5 ; [.3232.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN-CIEUC
-11AD ; [.3233.0020.0002] # HANGUL JONGSEONG NIEUN-HIEUH
-3136 ; [.3233.0020.0004] # HANGUL LETTER NIEUN-HIEUH
-FFA6 ; [.3233.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN-HIEUH
-11AE ; [.3234.0020.0002] # HANGUL JONGSEONG TIKEUT
-11AF ; [.3235.0020.0002] # HANGUL JONGSEONG RIEUL
-11B0 ; [.3236.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK
-313A ; [.3236.0020.0004] # HANGUL LETTER RIEUL-KIYEOK
-FFAA ; [.3236.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
-11B1 ; [.3237.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM
-313B ; [.3237.0020.0004] # HANGUL LETTER RIEUL-MIEUM
-FFAB ; [.3237.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-MIEUM
-11B2 ; [.3238.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP
-313C ; [.3238.0020.0004] # HANGUL LETTER RIEUL-PIEUP
-FFAC ; [.3238.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-PIEUP
-11B3 ; [.3239.0020.0002] # HANGUL JONGSEONG RIEUL-SIOS
-313D ; [.3239.0020.0004] # HANGUL LETTER RIEUL-SIOS
-FFAD ; [.3239.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-SIOS
-11B4 ; [.323A.0020.0002] # HANGUL JONGSEONG RIEUL-THIEUTH
-313E ; [.323A.0020.0004] # HANGUL LETTER RIEUL-THIEUTH
-FFAE ; [.323A.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
-11B5 ; [.323B.0020.0002] # HANGUL JONGSEONG RIEUL-PHIEUPH
-313F ; [.323B.0020.0004] # HANGUL LETTER RIEUL-PHIEUPH
-FFAF ; [.323B.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
-11B6 ; [.323C.0020.0002] # HANGUL JONGSEONG RIEUL-HIEUH
-11B7 ; [.323D.0020.0002] # HANGUL JONGSEONG MIEUM
-11B8 ; [.323E.0020.0002] # HANGUL JONGSEONG PIEUP
-11B9 ; [.323F.0020.0002] # HANGUL JONGSEONG PIEUP-SIOS
-11BA ; [.3240.0020.0002] # HANGUL JONGSEONG SIOS
-11BB ; [.3241.0020.0002] # HANGUL JONGSEONG SSANGSIOS
-11BC ; [.3242.0020.0002] # HANGUL JONGSEONG IEUNG
-11BD ; [.3243.0020.0002] # HANGUL JONGSEONG CIEUC
-11BE ; [.3244.0020.0002] # HANGUL JONGSEONG CHIEUCH
-11BF ; [.3245.0020.0002] # HANGUL JONGSEONG KHIEUKH
-11C0 ; [.3246.0020.0002] # HANGUL JONGSEONG THIEUTH
-11C1 ; [.3247.0020.0002] # HANGUL JONGSEONG PHIEUPH
-11C2 ; [.3248.0020.0002] # HANGUL JONGSEONG HIEUH
-11C3 ; [.3249.0020.0002] # HANGUL JONGSEONG KIYEOK-RIEUL
-11C4 ; [.324A.0020.0002] # HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
-11C5 ; [.324B.0020.0002] # HANGUL JONGSEONG NIEUN-KIYEOK
-11C6 ; [.324C.0020.0002] # HANGUL JONGSEONG NIEUN-TIKEUT
-11C7 ; [.324D.0020.0002] # HANGUL JONGSEONG NIEUN-SIOS
-3167 ; [.324D.0020.0004] # HANGUL LETTER NIEUN-SIOS
-11C8 ; [.324E.0020.0002] # HANGUL JONGSEONG NIEUN-PANSIOS
-3168 ; [.324E.0020.0004] # HANGUL LETTER NIEUN-PANSIOS
-11C9 ; [.324F.0020.0002] # HANGUL JONGSEONG NIEUN-THIEUTH
-11CA ; [.3250.0020.0002] # HANGUL JONGSEONG TIKEUT-KIYEOK
-11CB ; [.3251.0020.0002] # HANGUL JONGSEONG TIKEUT-RIEUL
-11CC ; [.3252.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
-3169 ; [.3252.0020.0004] # HANGUL LETTER RIEUL-KIYEOK-SIOS
-11CD ; [.3253.0020.0002] # HANGUL JONGSEONG RIEUL-NIEUN
-11CE ; [.3254.0020.0002] # HANGUL JONGSEONG RIEUL-TIKEUT
-316A ; [.3254.0020.0004] # HANGUL LETTER RIEUL-TIKEUT
-11CF ; [.3255.0020.0002] # HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
-11D0 ; [.3256.0020.0002] # HANGUL JONGSEONG SSANGRIEUL
-11D1 ; [.3257.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
-11D2 ; [.3258.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-SIOS
-11D3 ; [.3259.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-SIOS
-316B ; [.3259.0020.0004] # HANGUL LETTER RIEUL-PIEUP-SIOS
-11D4 ; [.325A.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
-11D5 ; [.325B.0020.0002] # HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
-11D6 ; [.325C.0020.0002] # HANGUL JONGSEONG RIEUL-SSANGSIOS
-11D7 ; [.325D.0020.0002] # HANGUL JONGSEONG RIEUL-PANSIOS
-316C ; [.325D.0020.0004] # HANGUL LETTER RIEUL-PANSIOS
-11D8 ; [.325E.0020.0002] # HANGUL JONGSEONG RIEUL-KHIEUKH
-11D9 ; [.325F.0020.0002] # HANGUL JONGSEONG RIEUL-YEORINHIEUH
-316D ; [.325F.0020.0004] # HANGUL LETTER RIEUL-YEORINHIEUH
-11DA ; [.3260.0020.0002] # HANGUL JONGSEONG MIEUM-KIYEOK
-11DB ; [.3261.0020.0002] # HANGUL JONGSEONG MIEUM-RIEUL
-11DC ; [.3262.0020.0002] # HANGUL JONGSEONG MIEUM-PIEUP
-11DD ; [.3263.0020.0002] # HANGUL JONGSEONG MIEUM-SIOS
-316F ; [.3263.0020.0004] # HANGUL LETTER MIEUM-SIOS
-11DE ; [.3264.0020.0002] # HANGUL JONGSEONG MIEUM-SSANGSIOS
-11DF ; [.3265.0020.0002] # HANGUL JONGSEONG MIEUM-PANSIOS
-3170 ; [.3265.0020.0004] # HANGUL LETTER MIEUM-PANSIOS
-11E0 ; [.3266.0020.0002] # HANGUL JONGSEONG MIEUM-CHIEUCH
-11E1 ; [.3267.0020.0002] # HANGUL JONGSEONG MIEUM-HIEUH
-11E2 ; [.3268.0020.0002] # HANGUL JONGSEONG KAPYEOUNMIEUM
-11E3 ; [.3269.0020.0002] # HANGUL JONGSEONG PIEUP-RIEUL
-11E4 ; [.326A.0020.0002] # HANGUL JONGSEONG PIEUP-PHIEUPH
-11E5 ; [.326B.0020.0002] # HANGUL JONGSEONG PIEUP-HIEUH
-11E6 ; [.326C.0020.0002] # HANGUL JONGSEONG KAPYEOUNPIEUP
-11E7 ; [.326D.0020.0002] # HANGUL JONGSEONG SIOS-KIYEOK
-11E8 ; [.326E.0020.0002] # HANGUL JONGSEONG SIOS-TIKEUT
-11E9 ; [.326F.0020.0002] # HANGUL JONGSEONG SIOS-RIEUL
-11EA ; [.3270.0020.0002] # HANGUL JONGSEONG SIOS-PIEUP
-11EB ; [.3271.0020.0002] # HANGUL JONGSEONG PANSIOS
-11EC ; [.3272.0020.0002] # HANGUL JONGSEONG IEUNG-KIYEOK
-11ED ; [.3273.0020.0002] # HANGUL JONGSEONG IEUNG-SSANGKIYEOK
-11EE ; [.3274.0020.0002] # HANGUL JONGSEONG SSANGIEUNG
-11EF ; [.3275.0020.0002] # HANGUL JONGSEONG IEUNG-KHIEUKH
-11F0 ; [.3276.0020.0002] # HANGUL JONGSEONG YESIEUNG
-11F1 ; [.3277.0020.0002] # HANGUL JONGSEONG YESIEUNG-SIOS
-3182 ; [.3277.0020.0004] # HANGUL LETTER YESIEUNG-SIOS
-11F2 ; [.3278.0020.0002] # HANGUL JONGSEONG YESIEUNG-PANSIOS
-3183 ; [.3278.0020.0004] # HANGUL LETTER YESIEUNG-PANSIOS
-11F3 ; [.3279.0020.0002] # HANGUL JONGSEONG PHIEUPH-PIEUP
-11F4 ; [.327A.0020.0002] # HANGUL JONGSEONG KAPYEOUNPHIEUPH
-11F5 ; [.327B.0020.0002] # HANGUL JONGSEONG HIEUH-NIEUN
-11F6 ; [.327C.0020.0002] # HANGUL JONGSEONG HIEUH-RIEUL
-11F7 ; [.327D.0020.0002] # HANGUL JONGSEONG HIEUH-MIEUM
-11F8 ; [.327E.0020.0002] # HANGUL JONGSEONG HIEUH-PIEUP
-11F9 ; [.327F.0020.0002] # HANGUL JONGSEONG YEORINHIEUH
-11FA ; [.3280.0020.0002] # HANGUL JONGSEONG KIYEOK-NIEUN
-11FB ; [.3281.0020.0002] # HANGUL JONGSEONG KIYEOK-PIEUP
-11FC ; [.3282.0020.0002] # HANGUL JONGSEONG KIYEOK-CHIEUCH
-11FD ; [.3283.0020.0002] # HANGUL JONGSEONG KIYEOK-KHIEUKH
-11FE ; [.3284.0020.0002] # HANGUL JONGSEONG KIYEOK-HIEUH
-11FF ; [.3285.0020.0002] # HANGUL JONGSEONG SSANGNIEUN
-D7CB ; [.3286.0020.0002] # HANGUL JONGSEONG NIEUN-RIEUL
-D7CC ; [.3287.0020.0002] # HANGUL JONGSEONG NIEUN-CHIEUCH
-D7CD ; [.3288.0020.0002] # HANGUL JONGSEONG SSANGTIKEUT
-D7CE ; [.3289.0020.0002] # HANGUL JONGSEONG SSANGTIKEUT-PIEUP
-D7CF ; [.328A.0020.0002] # HANGUL JONGSEONG TIKEUT-PIEUP
-D7D0 ; [.328B.0020.0002] # HANGUL JONGSEONG TIKEUT-SIOS
-D7D1 ; [.328C.0020.0002] # HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK
-D7D2 ; [.328D.0020.0002] # HANGUL JONGSEONG TIKEUT-CIEUC
-D7D3 ; [.328E.0020.0002] # HANGUL JONGSEONG TIKEUT-CHIEUCH
-D7D4 ; [.328F.0020.0002] # HANGUL JONGSEONG TIKEUT-THIEUTH
-D7D5 ; [.3290.0020.0002] # HANGUL JONGSEONG RIEUL-SSANGKIYEOK
-D7D6 ; [.3291.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH
-D7D7 ; [.3292.0020.0002] # HANGUL JONGSEONG SSANGRIEUL-KHIEUKH
-D7D8 ; [.3293.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-HIEUH
-D7D9 ; [.3294.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT
-D7DA ; [.3295.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH
-D7DB ; [.3296.0020.0002] # HANGUL JONGSEONG RIEUL-YESIEUNG
-D7DC ; [.3297.0020.0002] # HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH
-D7DD ; [.3298.0020.0002] # HANGUL JONGSEONG KAPYEOUNRIEUL
-D7DE ; [.3299.0020.0002] # HANGUL JONGSEONG MIEUM-NIEUN
-D7DF ; [.329A.0020.0002] # HANGUL JONGSEONG MIEUM-SSANGNIEUN
-D7E0 ; [.329B.0020.0002] # HANGUL JONGSEONG SSANGMIEUM
-D7E1 ; [.329C.0020.0002] # HANGUL JONGSEONG MIEUM-PIEUP-SIOS
-D7E2 ; [.329D.0020.0002] # HANGUL JONGSEONG MIEUM-CIEUC
-D7E3 ; [.329E.0020.0002] # HANGUL JONGSEONG PIEUP-TIKEUT
-D7E4 ; [.329F.0020.0002] # HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH
-D7E5 ; [.32A0.0020.0002] # HANGUL JONGSEONG PIEUP-MIEUM
-D7E6 ; [.32A1.0020.0002] # HANGUL JONGSEONG SSANGPIEUP
-D7E7 ; [.32A2.0020.0002] # HANGUL JONGSEONG PIEUP-SIOS-TIKEUT
-D7E8 ; [.32A3.0020.0002] # HANGUL JONGSEONG PIEUP-CIEUC
-D7E9 ; [.32A4.0020.0002] # HANGUL JONGSEONG PIEUP-CHIEUCH
-D7EA ; [.32A5.0020.0002] # HANGUL JONGSEONG SIOS-MIEUM
-D7EB ; [.32A6.0020.0002] # HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP
-D7EC ; [.32A7.0020.0002] # HANGUL JONGSEONG SSANGSIOS-KIYEOK
-D7ED ; [.32A8.0020.0002] # HANGUL JONGSEONG SSANGSIOS-TIKEUT
-D7EE ; [.32A9.0020.0002] # HANGUL JONGSEONG SIOS-PANSIOS
-D7EF ; [.32AA.0020.0002] # HANGUL JONGSEONG SIOS-CIEUC
-D7F0 ; [.32AB.0020.0002] # HANGUL JONGSEONG SIOS-CHIEUCH
-D7F1 ; [.32AC.0020.0002] # HANGUL JONGSEONG SIOS-THIEUTH
-D7F2 ; [.32AD.0020.0002] # HANGUL JONGSEONG SIOS-HIEUH
-D7F3 ; [.32AE.0020.0002] # HANGUL JONGSEONG PANSIOS-PIEUP
-D7F4 ; [.32AF.0020.0002] # HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP
-D7F5 ; [.32B0.0020.0002] # HANGUL JONGSEONG YESIEUNG-MIEUM
-D7F6 ; [.32B1.0020.0002] # HANGUL JONGSEONG YESIEUNG-HIEUH
-D7F7 ; [.32B2.0020.0002] # HANGUL JONGSEONG CIEUC-PIEUP
-D7F8 ; [.32B3.0020.0002] # HANGUL JONGSEONG CIEUC-SSANGPIEUP
-D7F9 ; [.32B4.0020.0002] # HANGUL JONGSEONG SSANGCIEUC
-D7FA ; [.32B5.0020.0002] # HANGUL JONGSEONG PHIEUPH-SIOS
-D7FB ; [.32B6.0020.0002] # HANGUL JONGSEONG PHIEUPH-THIEUTH
-3041 ; [.32B7.0020.000D] # HIRAGANA LETTER SMALL A
-3042 ; [.32B7.0020.000E] # HIRAGANA LETTER A
-30A1 ; [.32B7.0020.000F] # KATAKANA LETTER SMALL A
-FF67 ; [.32B7.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL A
-30A2 ; [.32B7.0020.0011] # KATAKANA LETTER A
-FF71 ; [.32B7.0020.0012] # HALFWIDTH KATAKANA LETTER A
-32D0 ; [.32B7.0020.0013] # CIRCLED KATAKANA A
-3303 ; [.32B7.0020.001C][.15B6.0020.001C][.32E1.0020.001C] # SQUARE AARU
-3300 ; [.32B7.0020.001C][.32D1.0020.001C][.0000.0038.001C][.15B6.0020.001C][.32CB.0020.001C] # SQUARE APAATO
-3301 ; [.32B7.0020.001C][.32E1.0020.001C][.32D3.0020.001C][.32B7.0020.001C] # SQUARE ARUHUA
-3302 ; [.32B7.0020.001C][.32E8.0020.001C][.32D4.0020.001C][.0000.0038.001C][.32B7.0020.001C] # SQUARE ANPEA
-3043 ; [.32B8.0020.000D] # HIRAGANA LETTER SMALL I
-3044 ; [.32B8.0020.000E] # HIRAGANA LETTER I
-30A3 ; [.32B8.0020.000F] # KATAKANA LETTER SMALL I
-FF68 ; [.32B8.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL I
-30A4 ; [.32B8.0020.0011] # KATAKANA LETTER I
-FF72 ; [.32B8.0020.0012] # HALFWIDTH KATAKANA LETTER I
-32D1 ; [.32B8.0020.0013] # CIRCLED KATAKANA I
-3304 ; [.32B8.0020.001C][.32CD.0020.001C][.32E8.0020.001C][.32BF.0020.001C][.0000.0037.001C] # SQUARE ININGU
-3305 ; [.32B8.0020.001C][.32E8.0020.001C][.32C8.0020.001C] # SQUARE INTI
-3045 ; [.32B9.0020.000D] # HIRAGANA LETTER SMALL U
-3046 ; [.32B9.0020.000E] # HIRAGANA LETTER U
-30A5 ; [.32B9.0020.000F] # KATAKANA LETTER SMALL U
-FF69 ; [.32B9.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL U
-30A6 ; [.32B9.0020.0011] # KATAKANA LETTER U
-FF73 ; [.32B9.0020.0012] # HALFWIDTH KATAKANA LETTER U
-32D2 ; [.32B9.0020.0013] # CIRCLED KATAKANA U
-3094 ; [.32B9.0020.000E][.0000.0037.0002] # HIRAGANA LETTER VU
-30F4 ; [.32B9.0020.0011][.0000.0037.0002] # KATAKANA LETTER VU
-3306 ; [.32B9.0020.001C][.32BC.0020.001C][.32E8.0020.001C] # SQUARE UON
-1B000 ; [.32BA.0020.0011] # KATAKANA LETTER ARCHAIC E
-3047 ; [.32BB.0020.000D] # HIRAGANA LETTER SMALL E
-3048 ; [.32BB.0020.000E] # HIRAGANA LETTER E
-30A7 ; [.32BB.0020.000F] # KATAKANA LETTER SMALL E
-FF6A ; [.32BB.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL E
-30A8 ; [.32BB.0020.0011] # KATAKANA LETTER E
-FF74 ; [.32BB.0020.0012] # HALFWIDTH KATAKANA LETTER E
-32D3 ; [.32BB.0020.0013] # CIRCLED KATAKANA E
-3308 ; [.32BB.0020.001C][.15B6.0020.001C][.32BD.0020.001C][.15B6.0020.001C] # SQUARE EEKAA
-3307 ; [.32BB.0020.001C][.32C4.0020.001C][.32BF.0020.001C][.15B6.0020.001C][.32CB.0020.001C][.0000.0037.001C] # SQUARE ESUKUUDO
-3049 ; [.32BC.0020.000D] # HIRAGANA LETTER SMALL O
-304A ; [.32BC.0020.000E] # HIRAGANA LETTER O
-30A9 ; [.32BC.0020.000F] # KATAKANA LETTER SMALL O
-FF6B ; [.32BC.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL O
-30AA ; [.32BC.0020.0011] # KATAKANA LETTER O
-FF75 ; [.32BC.0020.0012] # HALFWIDTH KATAKANA LETTER O
-32D4 ; [.32BC.0020.0013] # CIRCLED KATAKANA O
-330A ; [.32BC.0020.001C][.15B6.0020.001C][.32D8.0020.001C] # SQUARE OOMU
-3309 ; [.32BC.0020.001C][.32E8.0020.001C][.32C4.0020.001C] # SQUARE ONSU
-3095 ; [.32BD.0020.000D] # HIRAGANA LETTER SMALL KA
-304B ; [.32BD.0020.000E] # HIRAGANA LETTER KA
-30F5 ; [.32BD.0020.000F] # KATAKANA LETTER SMALL KA
-30AB ; [.32BD.0020.0011] # KATAKANA LETTER KA
-FF76 ; [.32BD.0020.0012] # HALFWIDTH KATAKANA LETTER KA
-32D5 ; [.32BD.0020.0013] # CIRCLED KATAKANA KA
-304C ; [.32BD.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GA
-30AC ; [.32BD.0020.0011][.0000.0037.0002] # KATAKANA LETTER GA
-330B ; [.32BD.0020.001C][.32B8.0020.001C][.32E0.0020.001C] # SQUARE KAIRI
-330C ; [.32BD.0020.001C][.32DF.0020.001C][.32C9.0020.001C][.32CB.0020.001C] # SQUARE KARATTO
-330D ; [.32BD.0020.001C][.32E3.0020.001C][.32E0.0020.001C][.15B6.0020.001C] # SQUARE KARORII
-330E ; [.32BD.0020.001C][.0000.0037.001C][.32E3.0020.001C][.32E8.0020.001C] # SQUARE GARON
-330F ; [.32BD.0020.001C][.0000.0037.001C][.32E8.0020.001C][.32D6.0020.001C] # SQUARE GANMA
-304D ; [.32BE.0020.000E] # HIRAGANA LETTER KI
-30AD ; [.32BE.0020.0011] # KATAKANA LETTER KI
-FF77 ; [.32BE.0020.0012] # HALFWIDTH KATAKANA LETTER KI
-32D6 ; [.32BE.0020.0013] # CIRCLED KATAKANA KI
-304E ; [.32BE.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GI
-30AE ; [.32BE.0020.0011][.0000.0037.0002] # KATAKANA LETTER GI
-3310 ; [.32BE.0020.001C][.0000.0037.001C][.32BD.0020.001C][.0000.0037.001C] # SQUARE GIGA
-3311 ; [.32BE.0020.001C][.0000.0037.001C][.32CD.0020.001C][.15B6.0020.001C] # SQUARE GINII
-3312 ; [.32BE.0020.001C][.32DC.0020.001C][.32E0.0020.001C][.15B6.0020.001C] # SQUARE KYURII
-3313 ; [.32BE.0020.001C][.0000.0037.001C][.32E1.0020.001C][.32C7.0020.001C][.0000.0037.001C][.15B6.0020.001C] # SQUARE GIRUDAA
-3314 ; [.32BE.0020.001C][.32E3.0020.001C] # SQUARE KIRO
-3315 ; [.32BE.0020.001C][.32E3.0020.001C][.32BF.0020.001C][.0000.0037.001C][.32DF.0020.001C][.32D8.0020.001C] # SQUARE KIROGURAMU
-3316 ; [.32BE.0020.001C][.32E3.0020.001C][.32D9.0020.001C][.15B6.0020.001C][.32CB.0020.001C][.32E1.0020.001C] # SQUARE KIROMEETORU
-3317 ; [.32BE.0020.001C][.32E3.0020.001C][.32E4.0020.001C][.32C9.0020.001C][.32CB.0020.001C] # SQUARE KIROWATTO
-304F ; [.32BF.0020.000E] # HIRAGANA LETTER KU
-31F0 ; [.32BF.0020.000F] # KATAKANA LETTER SMALL KU
-30AF ; [.32BF.0020.0011] # KATAKANA LETTER KU
-FF78 ; [.32BF.0020.0012] # HALFWIDTH KATAKANA LETTER KU
-32D7 ; [.32BF.0020.0013] # CIRCLED KATAKANA KU
-3050 ; [.32BF.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GU
-30B0 ; [.32BF.0020.0011][.0000.0037.0002] # KATAKANA LETTER GU
-3318 ; [.32BF.0020.001C][.0000.0037.001C][.32DF.0020.001C][.32D8.0020.001C] # SQUARE GURAMU
-3319 ; [.32BF.0020.001C][.0000.0037.001C][.32DF.0020.001C][.32D8.0020.001C][.32CB.0020.001C][.32E8.0020.001C] # SQUARE GURAMUTON
-331A ; [.32BF.0020.001C][.32E1.0020.001C][.32C5.0020.001C][.0000.0037.001C][.32B8.0020.001C][.32E3.0020.001C] # SQUARE KURUZEIRO
-331B ; [.32BF.0020.001C][.32E3.0020.001C][.15B6.0020.001C][.32CF.0020.001C] # SQUARE KUROONE
-3096 ; [.32C0.0020.000D] # HIRAGANA LETTER SMALL KE
-3051 ; [.32C0.0020.000E] # HIRAGANA LETTER KE
-30F6 ; [.32C0.0020.000F] # KATAKANA LETTER SMALL KE
-30B1 ; [.32C0.0020.0011] # KATAKANA LETTER KE
-FF79 ; [.32C0.0020.0012] # HALFWIDTH KATAKANA LETTER KE
-32D8 ; [.32C0.0020.0013] # CIRCLED KATAKANA KE
-3052 ; [.32C0.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GE
-30B2 ; [.32C0.0020.0011][.0000.0037.0002] # KATAKANA LETTER GE
-331C ; [.32C0.0020.001C][.15B6.0020.001C][.32C4.0020.001C] # SQUARE KEESU
-3053 ; [.32C1.0020.000E] # HIRAGANA LETTER KO
-30B3 ; [.32C1.0020.0011] # KATAKANA LETTER KO
-FF7A ; [.32C1.0020.0012] # HALFWIDTH KATAKANA LETTER KO
-32D9 ; [.32C1.0020.0013] # CIRCLED KATAKANA KO
-3054 ; [.32C1.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GO
-30B4 ; [.32C1.0020.0011][.0000.0037.0002] # KATAKANA LETTER GO
-331E ; [.32C1.0020.001C][.15B6.0020.001C][.32D5.0020.001C][.0000.0038.001C] # SQUARE KOOPO
-1F201 ; [.32C1.0020.001C][.32C1.0020.001C] # SQUARED KATAKANA KOKO
-30FF ; [.32C1.0020.0016][.32CB.0020.0016] # KATAKANA DIGRAPH KOTO
-331D ; [.32C1.0020.001C][.32E1.0020.001C][.32CC.0020.001C] # SQUARE KORUNA
-3055 ; [.32C2.0020.000E] # HIRAGANA LETTER SA
-30B5 ; [.32C2.0020.0011] # KATAKANA LETTER SA
-FF7B ; [.32C2.0020.0012] # HALFWIDTH KATAKANA LETTER SA
-32DA ; [.32C2.0020.0013] # CIRCLED KATAKANA SA
-1F202 ; [.32C2.0020.001C] # SQUARED KATAKANA SA
-3056 ; [.32C2.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZA
-30B6 ; [.32C2.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZA
-331F ; [.32C2.0020.001C][.32B8.0020.001C][.32BF.0020.001C][.32E1.0020.001C] # SQUARE SAIKURU
-3320 ; [.32C2.0020.001C][.32E8.0020.001C][.32C8.0020.001C][.15B6.0020.001C][.32D8.0020.001C] # SQUARE SANTIIMU
-3057 ; [.32C3.0020.000E] # HIRAGANA LETTER SI
-31F1 ; [.32C3.0020.000F] # KATAKANA LETTER SMALL SI
-30B7 ; [.32C3.0020.0011] # KATAKANA LETTER SI
-FF7C ; [.32C3.0020.0012] # HALFWIDTH KATAKANA LETTER SI
-32DB ; [.32C3.0020.0013] # CIRCLED KATAKANA SI
-3058 ; [.32C3.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZI
-30B8 ; [.32C3.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZI
-3006 ; [.32C3.0020.0004][.32D9.0020.0004] # IDEOGRAPHIC CLOSING MARK
-3321 ; [.32C3.0020.001C][.32E0.0020.001C][.32E8.0020.001C][.32BF.0020.001C][.0000.0037.001C] # SQUARE SIRINGU
-3059 ; [.32C4.0020.000E] # HIRAGANA LETTER SU
-31F2 ; [.32C4.0020.000F] # KATAKANA LETTER SMALL SU
-30B9 ; [.32C4.0020.0011] # KATAKANA LETTER SU
-FF7D ; [.32C4.0020.0012] # HALFWIDTH KATAKANA LETTER SU
-32DC ; [.32C4.0020.0013] # CIRCLED KATAKANA SU
-305A ; [.32C4.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZU
-30BA ; [.32C4.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZU
-305B ; [.32C5.0020.000E] # HIRAGANA LETTER SE
-30BB ; [.32C5.0020.0011] # KATAKANA LETTER SE
-FF7E ; [.32C5.0020.0012] # HALFWIDTH KATAKANA LETTER SE
-32DD ; [.32C5.0020.0013] # CIRCLED KATAKANA SE
-305C ; [.32C5.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZE
-30BC ; [.32C5.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZE
-3322 ; [.32C5.0020.001C][.32E8.0020.001C][.32C8.0020.001C] # SQUARE SENTI
-3323 ; [.32C5.0020.001C][.32E8.0020.001C][.32CB.0020.001C] # SQUARE SENTO
-305D ; [.32C6.0020.000E] # HIRAGANA LETTER SO
-30BD ; [.32C6.0020.0011] # KATAKANA LETTER SO
-FF7F ; [.32C6.0020.0012] # HALFWIDTH KATAKANA LETTER SO
-32DE ; [.32C6.0020.0013] # CIRCLED KATAKANA SO
-305E ; [.32C6.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZO
-30BE ; [.32C6.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZO
-305F ; [.32C7.0020.000E] # HIRAGANA LETTER TA
-30BF ; [.32C7.0020.0011] # KATAKANA LETTER TA
-FF80 ; [.32C7.0020.0012] # HALFWIDTH KATAKANA LETTER TA
-32DF ; [.32C7.0020.0013] # CIRCLED KATAKANA TA
-3060 ; [.32C7.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DA
-30C0 ; [.32C7.0020.0011][.0000.0037.0002] # KATAKANA LETTER DA
-3324 ; [.32C7.0020.001C][.0000.0037.001C][.15B6.0020.001C][.32C4.0020.001C] # SQUARE DAASU
-3061 ; [.32C8.0020.000E] # HIRAGANA LETTER TI
-30C1 ; [.32C8.0020.0011] # KATAKANA LETTER TI
-FF81 ; [.32C8.0020.0012] # HALFWIDTH KATAKANA LETTER TI
-32E0 ; [.32C8.0020.0013] # CIRCLED KATAKANA TI
-3062 ; [.32C8.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DI
-30C2 ; [.32C8.0020.0011][.0000.0037.0002] # KATAKANA LETTER DI
-3063 ; [.32C9.0020.000D] # HIRAGANA LETTER SMALL TU
-3064 ; [.32C9.0020.000E] # HIRAGANA LETTER TU
-30C3 ; [.32C9.0020.000F] # KATAKANA LETTER SMALL TU
-FF6F ; [.32C9.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL TU
-30C4 ; [.32C9.0020.0011] # KATAKANA LETTER TU
-FF82 ; [.32C9.0020.0012] # HALFWIDTH KATAKANA LETTER TU
-32E1 ; [.32C9.0020.0013] # CIRCLED KATAKANA TU
-3065 ; [.32C9.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DU
-30C5 ; [.32C9.0020.0011][.0000.0037.0002] # KATAKANA LETTER DU
-3066 ; [.32CA.0020.000E] # HIRAGANA LETTER TE
-30C6 ; [.32CA.0020.0011] # KATAKANA LETTER TE
-FF83 ; [.32CA.0020.0012] # HALFWIDTH KATAKANA LETTER TE
-32E2 ; [.32CA.0020.0013] # CIRCLED KATAKANA TE
-3067 ; [.32CA.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DE
-30C7 ; [.32CA.0020.0011][.0000.0037.0002] # KATAKANA LETTER DE
-1F213 ; [.32CA.0020.001C][.0000.0037.001C] # SQUARED KATAKANA DE
-3325 ; [.32CA.0020.001C][.0000.0037.001C][.32C3.0020.001C] # SQUARE DESI
-3068 ; [.32CB.0020.000E] # HIRAGANA LETTER TO
-31F3 ; [.32CB.0020.000F] # KATAKANA LETTER SMALL TO
-30C8 ; [.32CB.0020.0011] # KATAKANA LETTER TO
-FF84 ; [.32CB.0020.0012] # HALFWIDTH KATAKANA LETTER TO
-32E3 ; [.32CB.0020.0013] # CIRCLED KATAKANA TO
-3069 ; [.32CB.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DO
-30C9 ; [.32CB.0020.0011][.0000.0037.0002] # KATAKANA LETTER DO
-3326 ; [.32CB.0020.001C][.0000.0037.001C][.32E1.0020.001C] # SQUARE DORU
-3327 ; [.32CB.0020.001C][.32E8.0020.001C] # SQUARE TON
-306A ; [.32CC.0020.000E] # HIRAGANA LETTER NA
-30CA ; [.32CC.0020.0011] # KATAKANA LETTER NA
-FF85 ; [.32CC.0020.0012] # HALFWIDTH KATAKANA LETTER NA
-32E4 ; [.32CC.0020.0013] # CIRCLED KATAKANA NA
-3328 ; [.32CC.0020.001C][.32D0.0020.001C] # SQUARE NANO
-306B ; [.32CD.0020.000E] # HIRAGANA LETTER NI
-30CB ; [.32CD.0020.0011] # KATAKANA LETTER NI
-FF86 ; [.32CD.0020.0012] # HALFWIDTH KATAKANA LETTER NI
-32E5 ; [.32CD.0020.0013] # CIRCLED KATAKANA NI
-306C ; [.32CE.0020.000E] # HIRAGANA LETTER NU
-31F4 ; [.32CE.0020.000F] # KATAKANA LETTER SMALL NU
-30CC ; [.32CE.0020.0011] # KATAKANA LETTER NU
-FF87 ; [.32CE.0020.0012] # HALFWIDTH KATAKANA LETTER NU
-32E6 ; [.32CE.0020.0013] # CIRCLED KATAKANA NU
-306D ; [.32CF.0020.000E] # HIRAGANA LETTER NE
-30CD ; [.32CF.0020.0011] # KATAKANA LETTER NE
-FF88 ; [.32CF.0020.0012] # HALFWIDTH KATAKANA LETTER NE
-32E7 ; [.32CF.0020.0013] # CIRCLED KATAKANA NE
-306E ; [.32D0.0020.000E] # HIRAGANA LETTER NO
-30CE ; [.32D0.0020.0011] # KATAKANA LETTER NO
-FF89 ; [.32D0.0020.0012] # HALFWIDTH KATAKANA LETTER NO
-32E8 ; [.32D0.0020.0013] # CIRCLED KATAKANA NO
-3329 ; [.32D0.0020.001C][.32C9.0020.001C][.32CB.0020.001C] # SQUARE NOTTO
-306F ; [.32D1.0020.000E] # HIRAGANA LETTER HA
-31F5 ; [.32D1.0020.000F] # KATAKANA LETTER SMALL HA
-30CF ; [.32D1.0020.0011] # KATAKANA LETTER HA
-FF8A ; [.32D1.0020.0012] # HALFWIDTH KATAKANA LETTER HA
-32E9 ; [.32D1.0020.0013] # CIRCLED KATAKANA HA
-3070 ; [.32D1.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BA
-30D0 ; [.32D1.0020.0011][.0000.0037.0002] # KATAKANA LETTER BA
-3071 ; [.32D1.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PA
-30D1 ; [.32D1.0020.0011][.0000.0038.0002] # KATAKANA LETTER PA
-332B ; [.32D1.0020.001C][.0000.0038.001C][.15B6.0020.001C][.32C5.0020.001C][.32E8.0020.001C][.32CB.0020.001C] # SQUARE PAASENTO
-332C ; [.32D1.0020.001C][.0000.0038.001C][.15B6.0020.001C][.32C9.0020.001C] # SQUARE PAATU
-332D ; [.32D1.0020.001C][.0000.0037.001C][.15B6.0020.001C][.32E2.0020.001C][.32E1.0020.001C] # SQUARE BAARERU
-332A ; [.32D1.0020.001C][.32B8.0020.001C][.32C9.0020.001C] # SQUARE HAITU
-3072 ; [.32D2.0020.000E] # HIRAGANA LETTER HI
-31F6 ; [.32D2.0020.000F] # KATAKANA LETTER SMALL HI
-30D2 ; [.32D2.0020.0011] # KATAKANA LETTER HI
-FF8B ; [.32D2.0020.0012] # HALFWIDTH KATAKANA LETTER HI
-32EA ; [.32D2.0020.0013] # CIRCLED KATAKANA HI
-3073 ; [.32D2.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BI
-30D3 ; [.32D2.0020.0011][.0000.0037.0002] # KATAKANA LETTER BI
-3074 ; [.32D2.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PI
-30D4 ; [.32D2.0020.0011][.0000.0038.0002] # KATAKANA LETTER PI
-332E ; [.32D2.0020.001C][.0000.0038.001C][.32B7.0020.001C][.32C4.0020.001C][.32CB.0020.001C][.32E1.0020.001C] # SQUARE PIASUTORU
-332F ; [.32D2.0020.001C][.0000.0038.001C][.32BF.0020.001C][.32E1.0020.001C] # SQUARE PIKURU
-3330 ; [.32D2.0020.001C][.0000.0038.001C][.32C1.0020.001C] # SQUARE PIKO
-3331 ; [.32D2.0020.001C][.0000.0037.001C][.32E1.0020.001C] # SQUARE BIRU
-3075 ; [.32D3.0020.000E] # HIRAGANA LETTER HU
-31F7 ; [.32D3.0020.000F] # KATAKANA LETTER SMALL HU
-30D5 ; [.32D3.0020.0011] # KATAKANA LETTER HU
-FF8C ; [.32D3.0020.0012] # HALFWIDTH KATAKANA LETTER HU
-32EB ; [.32D3.0020.0013] # CIRCLED KATAKANA HU
-3076 ; [.32D3.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BU
-30D6 ; [.32D3.0020.0011][.0000.0037.0002] # KATAKANA LETTER BU
-3077 ; [.32D3.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PU
-30D7 ; [.32D3.0020.0011][.0000.0038.0002] # KATAKANA LETTER PU
-3332 ; [.32D3.0020.001C][.32B7.0020.001C][.32DF.0020.001C][.32C9.0020.001C][.32CB.0020.001C][.0000.0037.001C] # SQUARE HUARADDO
-3333 ; [.32D3.0020.001C][.32B8.0020.001C][.15B6.0020.001C][.32CB.0020.001C] # SQUARE HUIITO
-3334 ; [.32D3.0020.001C][.0000.0037.001C][.32C9.0020.001C][.32C3.0020.001C][.32BB.0020.001C][.32E1.0020.001C] # SQUARE BUSSYERU
-3335 ; [.32D3.0020.001C][.32DF.0020.001C][.32E8.0020.001C] # SQUARE HURAN
-3078 ; [.32D4.0020.000E] # HIRAGANA LETTER HE
-31F8 ; [.32D4.0020.000F] # KATAKANA LETTER SMALL HE
-30D8 ; [.32D4.0020.0011] # KATAKANA LETTER HE
-FF8D ; [.32D4.0020.0012] # HALFWIDTH KATAKANA LETTER HE
-32EC ; [.32D4.0020.0013] # CIRCLED KATAKANA HE
-3079 ; [.32D4.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BE
-30D9 ; [.32D4.0020.0011][.0000.0037.0002] # KATAKANA LETTER BE
-307A ; [.32D4.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PE
-30DA ; [.32D4.0020.0011][.0000.0038.0002] # KATAKANA LETTER PE
-333B ; [.32D4.0020.001C][.0000.0038.001C][.15B6.0020.001C][.32C3.0020.001C][.0000.0037.001C] # SQUARE PEEZI
-333C ; [.32D4.0020.001C][.0000.0037.001C][.15B6.0020.001C][.32C7.0020.001C] # SQUARE BEETA
-3336 ; [.32D4.0020.001C][.32BF.0020.001C][.32C7.0020.001C][.15B6.0020.001C][.32E1.0020.001C] # SQUARE HEKUTAARU
-3337 ; [.32D4.0020.001C][.0000.0038.001C][.32C6.0020.001C] # SQUARE PESO
-3338 ; [.32D4.0020.001C][.0000.0038.001C][.32CD.0020.001C][.32D2.0020.001C] # SQUARE PENIHI
-3339 ; [.32D4.0020.001C][.32E1.0020.001C][.32C9.0020.001C] # SQUARE HERUTU
-333A ; [.32D4.0020.001C][.0000.0038.001C][.32E8.0020.001C][.32C4.0020.001C] # SQUARE PENSU
-307B ; [.32D5.0020.000E] # HIRAGANA LETTER HO
-31F9 ; [.32D5.0020.000F] # KATAKANA LETTER SMALL HO
-30DB ; [.32D5.0020.0011] # KATAKANA LETTER HO
-FF8E ; [.32D5.0020.0012] # HALFWIDTH KATAKANA LETTER HO
-32ED ; [.32D5.0020.0013] # CIRCLED KATAKANA HO
-307C ; [.32D5.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BO
-30DC ; [.32D5.0020.0011][.0000.0037.0002] # KATAKANA LETTER BO
-307D ; [.32D5.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PO
-30DD ; [.32D5.0020.0011][.0000.0038.0002] # KATAKANA LETTER PO
-3341 ; [.32D5.0020.001C][.15B6.0020.001C][.32E1.0020.001C] # SQUARE HOORU
-3342 ; [.32D5.0020.001C][.15B6.0020.001C][.32E8.0020.001C] # SQUARE HOON
-333D ; [.32D5.0020.001C][.0000.0038.001C][.32B8.0020.001C][.32E8.0020.001C][.32CB.0020.001C] # SQUARE POINTO
-1F200 ; [.32D5.0020.001C][.32BD.0020.001C] # SQUARE HIRAGANA HOKA
-333E ; [.32D5.0020.001C][.0000.0037.001C][.32E1.0020.001C][.32CB.0020.001C] # SQUARE BORUTO
-333F ; [.32D5.0020.001C][.32E8.0020.001C] # SQUARE HON
-3340 ; [.32D5.0020.001C][.0000.0038.001C][.32E8.0020.001C][.32CB.0020.001C][.0000.0037.001C] # SQUARE PONDO
-307E ; [.32D6.0020.000E] # HIRAGANA LETTER MA
-30DE ; [.32D6.0020.0011] # KATAKANA LETTER MA
-FF8F ; [.32D6.0020.0012] # HALFWIDTH KATAKANA LETTER MA
-32EE ; [.32D6.0020.0013] # CIRCLED KATAKANA MA
-3343 ; [.32D6.0020.001C][.32B8.0020.001C][.32BF.0020.001C][.32E3.0020.001C] # SQUARE MAIKURO
-3344 ; [.32D6.0020.001C][.32B8.0020.001C][.32E1.0020.001C] # SQUARE MAIRU
-303C ; [.32D6.0020.0004][.32C4.0020.0004] # MASU MARK
-3345 ; [.32D6.0020.001C][.32C9.0020.001C][.32D1.0020.001C] # SQUARE MAHHA
-3346 ; [.32D6.0020.001C][.32E1.0020.001C][.32BF.0020.001C] # SQUARE MARUKU
-3347 ; [.32D6.0020.001C][.32E8.0020.001C][.32C3.0020.001C][.32DE.0020.001C][.32E8.0020.001C] # SQUARE MANSYON
-307F ; [.32D7.0020.000E] # HIRAGANA LETTER MI
-30DF ; [.32D7.0020.0011] # KATAKANA LETTER MI
-FF90 ; [.32D7.0020.0012] # HALFWIDTH KATAKANA LETTER MI
-32EF ; [.32D7.0020.0013] # CIRCLED KATAKANA MI
-3348 ; [.32D7.0020.001C][.32BF.0020.001C][.32E3.0020.001C][.32E8.0020.001C] # SQUARE MIKURON
-3349 ; [.32D7.0020.001C][.32E0.0020.001C] # SQUARE MIRI
-334A ; [.32D7.0020.001C][.32E0.0020.001C][.32D1.0020.001C][.0000.0037.001C][.15B6.0020.001C][.32E1.0020.001C] # SQUARE MIRIBAARU
-3080 ; [.32D8.0020.000E] # HIRAGANA LETTER MU
-31FA ; [.32D8.0020.000F] # KATAKANA LETTER SMALL MU
-30E0 ; [.32D8.0020.0011] # KATAKANA LETTER MU
-FF91 ; [.32D8.0020.0012] # HALFWIDTH KATAKANA LETTER MU
-32F0 ; [.32D8.0020.0013] # CIRCLED KATAKANA MU
-3081 ; [.32D9.0020.000E] # HIRAGANA LETTER ME
-30E1 ; [.32D9.0020.0011] # KATAKANA LETTER ME
-FF92 ; [.32D9.0020.0012] # HALFWIDTH KATAKANA LETTER ME
-32F1 ; [.32D9.0020.0013] # CIRCLED KATAKANA ME
-334D ; [.32D9.0020.001C][.15B6.0020.001C][.32CB.0020.001C][.32E1.0020.001C] # SQUARE MEETORU
-334B ; [.32D9.0020.001C][.32BD.0020.001C][.0000.0037.001C] # SQUARE MEGA
-334C ; [.32D9.0020.001C][.32BD.0020.001C][.0000.0037.001C][.32CB.0020.001C][.32E8.0020.001C] # SQUARE MEGATON
-3082 ; [.32DA.0020.000E] # HIRAGANA LETTER MO
-30E2 ; [.32DA.0020.0011] # KATAKANA LETTER MO
-FF93 ; [.32DA.0020.0012] # HALFWIDTH KATAKANA LETTER MO
-32F2 ; [.32DA.0020.0013] # CIRCLED KATAKANA MO
-3083 ; [.32DB.0020.000D] # HIRAGANA LETTER SMALL YA
-3084 ; [.32DB.0020.000E] # HIRAGANA LETTER YA
-30E3 ; [.32DB.0020.000F] # KATAKANA LETTER SMALL YA
-FF6C ; [.32DB.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YA
-30E4 ; [.32DB.0020.0011] # KATAKANA LETTER YA
-FF94 ; [.32DB.0020.0012] # HALFWIDTH KATAKANA LETTER YA
-32F3 ; [.32DB.0020.0013] # CIRCLED KATAKANA YA
-334E ; [.32DB.0020.001C][.15B6.0020.001C][.32CB.0020.001C][.0000.0037.001C] # SQUARE YAADO
-334F ; [.32DB.0020.001C][.15B6.0020.001C][.32E1.0020.001C] # SQUARE YAARU
-3085 ; [.32DC.0020.000D] # HIRAGANA LETTER SMALL YU
-3086 ; [.32DC.0020.000E] # HIRAGANA LETTER YU
-30E5 ; [.32DC.0020.000F] # KATAKANA LETTER SMALL YU
-FF6D ; [.32DC.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YU
-30E6 ; [.32DC.0020.0011] # KATAKANA LETTER YU
-FF95 ; [.32DC.0020.0012] # HALFWIDTH KATAKANA LETTER YU
-32F4 ; [.32DC.0020.0013] # CIRCLED KATAKANA YU
-3350 ; [.32DC.0020.001C][.32B7.0020.001C][.32E8.0020.001C] # SQUARE YUAN
-1B001 ; [.32DD.0020.000E] # HIRAGANA LETTER ARCHAIC YE
-3087 ; [.32DE.0020.000D] # HIRAGANA LETTER SMALL YO
-3088 ; [.32DE.0020.000E] # HIRAGANA LETTER YO
-30E7 ; [.32DE.0020.000F] # KATAKANA LETTER SMALL YO
-FF6E ; [.32DE.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YO
-30E8 ; [.32DE.0020.0011] # KATAKANA LETTER YO
-FF96 ; [.32DE.0020.0012] # HALFWIDTH KATAKANA LETTER YO
-32F5 ; [.32DE.0020.0013] # CIRCLED KATAKANA YO
-309F ; [.32DE.0020.0016][.32E0.0020.0016] # HIRAGANA DIGRAPH YORI
-3089 ; [.32DF.0020.000E] # HIRAGANA LETTER RA
-31FB ; [.32DF.0020.000F] # KATAKANA LETTER SMALL RA
-30E9 ; [.32DF.0020.0011] # KATAKANA LETTER RA
-FF97 ; [.32DF.0020.0012] # HALFWIDTH KATAKANA LETTER RA
-32F6 ; [.32DF.0020.0013] # CIRCLED KATAKANA RA
-308A ; [.32E0.0020.000E] # HIRAGANA LETTER RI
-31FC ; [.32E0.0020.000F] # KATAKANA LETTER SMALL RI
-30EA ; [.32E0.0020.0011] # KATAKANA LETTER RI
-FF98 ; [.32E0.0020.0012] # HALFWIDTH KATAKANA LETTER RI
-32F7 ; [.32E0.0020.0013] # CIRCLED KATAKANA RI
-3351 ; [.32E0.0020.001C][.32C9.0020.001C][.32CB.0020.001C][.32E1.0020.001C] # SQUARE RITTORU
-3352 ; [.32E0.0020.001C][.32DF.0020.001C] # SQUARE RIRA
-308B ; [.32E1.0020.000E] # HIRAGANA LETTER RU
-31FD ; [.32E1.0020.000F] # KATAKANA LETTER SMALL RU
-30EB ; [.32E1.0020.0011] # KATAKANA LETTER RU
-FF99 ; [.32E1.0020.0012] # HALFWIDTH KATAKANA LETTER RU
-32F8 ; [.32E1.0020.0013] # CIRCLED KATAKANA RU
-3354 ; [.32E1.0020.001C][.15B6.0020.001C][.32D3.0020.001C][.0000.0037.001C][.32E1.0020.001C] # SQUARE RUUBURU
-3353 ; [.32E1.0020.001C][.32D2.0020.001C][.0000.0038.001C][.15B6.0020.001C] # SQUARE RUPII
-308C ; [.32E2.0020.000E] # HIRAGANA LETTER RE
-31FE ; [.32E2.0020.000F] # KATAKANA LETTER SMALL RE
-30EC ; [.32E2.0020.0011] # KATAKANA LETTER RE
-FF9A ; [.32E2.0020.0012] # HALFWIDTH KATAKANA LETTER RE
-32F9 ; [.32E2.0020.0013] # CIRCLED KATAKANA RE
-3355 ; [.32E2.0020.001C][.32D8.0020.001C] # SQUARE REMU
-3356 ; [.32E2.0020.001C][.32E8.0020.001C][.32CB.0020.001C][.32C0.0020.001C][.0000.0037.001C][.32E8.0020.001C] # SQUARE RENTOGEN
-308D ; [.32E3.0020.000E] # HIRAGANA LETTER RO
-31FF ; [.32E3.0020.000F] # KATAKANA LETTER SMALL RO
-30ED ; [.32E3.0020.0011] # KATAKANA LETTER RO
-FF9B ; [.32E3.0020.0012] # HALFWIDTH KATAKANA LETTER RO
-32FA ; [.32E3.0020.0013] # CIRCLED KATAKANA RO
-308E ; [.32E4.0020.000D] # HIRAGANA LETTER SMALL WA
-308F ; [.32E4.0020.000E] # HIRAGANA LETTER WA
-30EE ; [.32E4.0020.000F] # KATAKANA LETTER SMALL WA
-30EF ; [.32E4.0020.0011] # KATAKANA LETTER WA
-FF9C ; [.32E4.0020.0012] # HALFWIDTH KATAKANA LETTER WA
-32FB ; [.32E4.0020.0013] # CIRCLED KATAKANA WA
-30F7 ; [.32E4.0020.0011][.0000.0037.0002] # KATAKANA LETTER VA
-3357 ; [.32E4.0020.001C][.32C9.0020.001C][.32CB.0020.001C] # SQUARE WATTO
-3090 ; [.32E5.0020.000E] # HIRAGANA LETTER WI
-30F0 ; [.32E5.0020.0011] # KATAKANA LETTER WI
-32FC ; [.32E5.0020.0013] # CIRCLED KATAKANA WI
-30F8 ; [.32E5.0020.0011][.0000.0037.0002] # KATAKANA LETTER VI
-3091 ; [.32E6.0020.000E] # HIRAGANA LETTER WE
-30F1 ; [.32E6.0020.0011] # KATAKANA LETTER WE
-32FD ; [.32E6.0020.0013] # CIRCLED KATAKANA WE
-30F9 ; [.32E6.0020.0011][.0000.0037.0002] # KATAKANA LETTER VE
-3092 ; [.32E7.0020.000E] # HIRAGANA LETTER WO
-30F2 ; [.32E7.0020.0011] # KATAKANA LETTER WO
-FF66 ; [.32E7.0020.0012] # HALFWIDTH KATAKANA LETTER WO
-32FE ; [.32E7.0020.0013] # CIRCLED KATAKANA WO
-30FA ; [.32E7.0020.0011][.0000.0037.0002] # KATAKANA LETTER VO
-3093 ; [.32E8.0020.000E] # HIRAGANA LETTER N
-30F3 ; [.32E8.0020.0011] # KATAKANA LETTER N
-FF9D ; [.32E8.0020.0012] # HALFWIDTH KATAKANA LETTER N
-3105 ; [.32E9.0020.0002] # BOPOMOFO LETTER B
-31A0 ; [.32E9.0020.0004][.0000.00FD.0004] # BOPOMOFO LETTER BU
-3106 ; [.32EA.0020.0002] # BOPOMOFO LETTER P
-31B4 ; [.32EA.0020.0019] # BOPOMOFO FINAL LETTER P
-3107 ; [.32EB.0020.0002] # BOPOMOFO LETTER M
-3108 ; [.32EC.0020.0002] # BOPOMOFO LETTER F
-312A ; [.32ED.0020.0002] # BOPOMOFO LETTER V
-3109 ; [.32EE.0020.0002] # BOPOMOFO LETTER D
-310A ; [.32EF.0020.0002] # BOPOMOFO LETTER T
-31B5 ; [.32EF.0020.0019] # BOPOMOFO FINAL LETTER T
-310B ; [.32F0.0020.0002] # BOPOMOFO LETTER N
-310C ; [.32F1.0020.0002] # BOPOMOFO LETTER L
-310D ; [.32F2.0020.0002] # BOPOMOFO LETTER G
-31A3 ; [.32F2.0020.0004][.0000.00FD.0004] # BOPOMOFO LETTER GU
-310E ; [.32F3.0020.0002] # BOPOMOFO LETTER K
-31B6 ; [.32F3.0020.0019] # BOPOMOFO FINAL LETTER K
-312B ; [.32F4.0020.0002] # BOPOMOFO LETTER NG
-31AD ; [.32F5.0020.0002] # BOPOMOFO LETTER NGG
-310F ; [.32F6.0020.0002] # BOPOMOFO LETTER H
-31B7 ; [.32F6.0020.0019] # BOPOMOFO FINAL LETTER H
-3110 ; [.32F7.0020.0002] # BOPOMOFO LETTER J
-31A2 ; [.32F7.0020.0004][.0000.00FD.0004] # BOPOMOFO LETTER JI
-3111 ; [.32F8.0020.0002] # BOPOMOFO LETTER Q
-3112 ; [.32F9.0020.0002] # BOPOMOFO LETTER X
-312C ; [.32FA.0020.0002] # BOPOMOFO LETTER GN
-3113 ; [.32FB.0020.0002] # BOPOMOFO LETTER ZH
-3114 ; [.32FC.0020.0002] # BOPOMOFO LETTER CH
-3115 ; [.32FD.0020.0002] # BOPOMOFO LETTER SH
-3116 ; [.32FE.0020.0002] # BOPOMOFO LETTER R
-3117 ; [.32FF.0020.0002] # BOPOMOFO LETTER Z
-31A1 ; [.32FF.0020.0004][.0000.00FD.0004] # BOPOMOFO LETTER ZI
-3118 ; [.3300.0020.0002] # BOPOMOFO LETTER C
-3119 ; [.3301.0020.0002] # BOPOMOFO LETTER S
-31B8 ; [.3302.0020.0002] # BOPOMOFO LETTER GH
-31B9 ; [.3303.0020.0002] # BOPOMOFO LETTER LH
-31BA ; [.3304.0020.0002] # BOPOMOFO LETTER ZY
-311A ; [.3305.0020.0002] # BOPOMOFO LETTER A
-31A9 ; [.3305.0020.0004][.0000.00FD.0004] # BOPOMOFO LETTER ANN
-311B ; [.3306.0020.0002] # BOPOMOFO LETTER O
-31A7 ; [.3306.0020.0004][.0000.00FD.0004] # BOPOMOFO LETTER ONN
-31A6 ; [.3307.0020.0002] # BOPOMOFO LETTER OO
-311C ; [.3308.0020.0002] # BOPOMOFO LETTER E
-311D ; [.3309.0020.0002] # BOPOMOFO LETTER EH
-31A4 ; [.330A.0020.0002] # BOPOMOFO LETTER EE
-31A5 ; [.330A.0020.0004][.0000.00FD.0004] # BOPOMOFO LETTER ENN
-311E ; [.330B.0020.0002] # BOPOMOFO LETTER AI
-31AE ; [.330B.0020.0004][.0000.00FD.0004] # BOPOMOFO LETTER AINN
-311F ; [.330C.0020.0002] # BOPOMOFO LETTER EI
-3120 ; [.330D.0020.0002] # BOPOMOFO LETTER AU
-31AF ; [.330D.0020.0004][.0000.00FD.0004] # BOPOMOFO LETTER AUNN
-3121 ; [.330E.0020.0002] # BOPOMOFO LETTER OU
-3122 ; [.330F.0020.0002] # BOPOMOFO LETTER AN
-3123 ; [.3310.0020.0002] # BOPOMOFO LETTER EN
-3124 ; [.3311.0020.0002] # BOPOMOFO LETTER ANG
-31B2 ; [.3312.0020.0002] # BOPOMOFO LETTER ONG
-3125 ; [.3313.0020.0002] # BOPOMOFO LETTER ENG
-31B0 ; [.3314.0020.0002] # BOPOMOFO LETTER AM
-31B1 ; [.3315.0020.0002] # BOPOMOFO LETTER OM
-31AC ; [.3316.0020.0002] # BOPOMOFO LETTER IM
-3126 ; [.3317.0020.0002] # BOPOMOFO LETTER ER
-3127 ; [.3318.0020.0002] # BOPOMOFO LETTER I
-31AA ; [.3318.0020.0004][.0000.00FD.0004] # BOPOMOFO LETTER INN
-31B3 ; [.3318.0020.0016][.0000.00FD.0016] # BOPOMOFO LETTER INNN
-3128 ; [.3319.0020.0002] # BOPOMOFO LETTER U
-31AB ; [.3319.0020.0004][.0000.00FD.0004] # BOPOMOFO LETTER UNN
-31A8 ; [.3319.0020.0004][.0000.00FE.0004] # BOPOMOFO LETTER IR
-3129 ; [.331A.0020.0002] # BOPOMOFO LETTER IU
-312D ; [.331B.0020.0002] # BOPOMOFO LETTER IH
-A000 ; [.331C.0020.0002] # YI SYLLABLE IT
-A001 ; [.331D.0020.0002] # YI SYLLABLE IX
-A002 ; [.331E.0020.0002] # YI SYLLABLE I
-A003 ; [.331F.0020.0002] # YI SYLLABLE IP
-A004 ; [.3320.0020.0002] # YI SYLLABLE IET
-A005 ; [.3321.0020.0002] # YI SYLLABLE IEX
-A006 ; [.3322.0020.0002] # YI SYLLABLE IE
-A007 ; [.3323.0020.0002] # YI SYLLABLE IEP
-A008 ; [.3324.0020.0002] # YI SYLLABLE AT
-A009 ; [.3325.0020.0002] # YI SYLLABLE AX
-A00A ; [.3326.0020.0002] # YI SYLLABLE A
-A00B ; [.3327.0020.0002] # YI SYLLABLE AP
-A00C ; [.3328.0020.0002] # YI SYLLABLE UOX
-A00D ; [.3329.0020.0002] # YI SYLLABLE UO
-A00E ; [.332A.0020.0002] # YI SYLLABLE UOP
-A00F ; [.332B.0020.0002] # YI SYLLABLE OT
-A010 ; [.332C.0020.0002] # YI SYLLABLE OX
-A011 ; [.332D.0020.0002] # YI SYLLABLE O
-A012 ; [.332E.0020.0002] # YI SYLLABLE OP
-A013 ; [.332F.0020.0002] # YI SYLLABLE EX
-A014 ; [.3330.0020.0002] # YI SYLLABLE E
-A015 ; [.3331.0020.0002] # YI SYLLABLE WU
-A016 ; [.3332.0020.0002] # YI SYLLABLE BIT
-A017 ; [.3333.0020.0002] # YI SYLLABLE BIX
-A018 ; [.3334.0020.0002] # YI SYLLABLE BI
-A019 ; [.3335.0020.0002] # YI SYLLABLE BIP
-A01A ; [.3336.0020.0002] # YI SYLLABLE BIET
-A01B ; [.3337.0020.0002] # YI SYLLABLE BIEX
-A01C ; [.3338.0020.0002] # YI SYLLABLE BIE
-A01D ; [.3339.0020.0002] # YI SYLLABLE BIEP
-A01E ; [.333A.0020.0002] # YI SYLLABLE BAT
-A01F ; [.333B.0020.0002] # YI SYLLABLE BAX
-A020 ; [.333C.0020.0002] # YI SYLLABLE BA
-A021 ; [.333D.0020.0002] # YI SYLLABLE BAP
-A022 ; [.333E.0020.0002] # YI SYLLABLE BUOX
-A023 ; [.333F.0020.0002] # YI SYLLABLE BUO
-A024 ; [.3340.0020.0002] # YI SYLLABLE BUOP
-A025 ; [.3341.0020.0002] # YI SYLLABLE BOT
-A026 ; [.3342.0020.0002] # YI SYLLABLE BOX
-A027 ; [.3343.0020.0002] # YI SYLLABLE BO
-A028 ; [.3344.0020.0002] # YI SYLLABLE BOP
-A029 ; [.3345.0020.0002] # YI SYLLABLE BEX
-A02A ; [.3346.0020.0002] # YI SYLLABLE BE
-A02B ; [.3347.0020.0002] # YI SYLLABLE BEP
-A02C ; [.3348.0020.0002] # YI SYLLABLE BUT
-A02D ; [.3349.0020.0002] # YI SYLLABLE BUX
-A02E ; [.334A.0020.0002] # YI SYLLABLE BU
-A02F ; [.334B.0020.0002] # YI SYLLABLE BUP
-A030 ; [.334C.0020.0002] # YI SYLLABLE BURX
-A031 ; [.334D.0020.0002] # YI SYLLABLE BUR
-A032 ; [.334E.0020.0002] # YI SYLLABLE BYT
-A033 ; [.334F.0020.0002] # YI SYLLABLE BYX
-A034 ; [.3350.0020.0002] # YI SYLLABLE BY
-A035 ; [.3351.0020.0002] # YI SYLLABLE BYP
-A036 ; [.3352.0020.0002] # YI SYLLABLE BYRX
-A037 ; [.3353.0020.0002] # YI SYLLABLE BYR
-A038 ; [.3354.0020.0002] # YI SYLLABLE PIT
-A039 ; [.3355.0020.0002] # YI SYLLABLE PIX
-A03A ; [.3356.0020.0002] # YI SYLLABLE PI
-A03B ; [.3357.0020.0002] # YI SYLLABLE PIP
-A03C ; [.3358.0020.0002] # YI SYLLABLE PIEX
-A03D ; [.3359.0020.0002] # YI SYLLABLE PIE
-A03E ; [.335A.0020.0002] # YI SYLLABLE PIEP
-A03F ; [.335B.0020.0002] # YI SYLLABLE PAT
-A040 ; [.335C.0020.0002] # YI SYLLABLE PAX
-A041 ; [.335D.0020.0002] # YI SYLLABLE PA
-A042 ; [.335E.0020.0002] # YI SYLLABLE PAP
-A043 ; [.335F.0020.0002] # YI SYLLABLE PUOX
-A044 ; [.3360.0020.0002] # YI SYLLABLE PUO
-A045 ; [.3361.0020.0002] # YI SYLLABLE PUOP
-A046 ; [.3362.0020.0002] # YI SYLLABLE POT
-A047 ; [.3363.0020.0002] # YI SYLLABLE POX
-A048 ; [.3364.0020.0002] # YI SYLLABLE PO
-A049 ; [.3365.0020.0002] # YI SYLLABLE POP
-A04A ; [.3366.0020.0002] # YI SYLLABLE PUT
-A04B ; [.3367.0020.0002] # YI SYLLABLE PUX
-A04C ; [.3368.0020.0002] # YI SYLLABLE PU
-A04D ; [.3369.0020.0002] # YI SYLLABLE PUP
-A04E ; [.336A.0020.0002] # YI SYLLABLE PURX
-A04F ; [.336B.0020.0002] # YI SYLLABLE PUR
-A050 ; [.336C.0020.0002] # YI SYLLABLE PYT
-A051 ; [.336D.0020.0002] # YI SYLLABLE PYX
-A052 ; [.336E.0020.0002] # YI SYLLABLE PY
-A053 ; [.336F.0020.0002] # YI SYLLABLE PYP
-A054 ; [.3370.0020.0002] # YI SYLLABLE PYRX
-A055 ; [.3371.0020.0002] # YI SYLLABLE PYR
-A056 ; [.3372.0020.0002] # YI SYLLABLE BBIT
-A057 ; [.3373.0020.0002] # YI SYLLABLE BBIX
-A058 ; [.3374.0020.0002] # YI SYLLABLE BBI
-A059 ; [.3375.0020.0002] # YI SYLLABLE BBIP
-A05A ; [.3376.0020.0002] # YI SYLLABLE BBIET
-A05B ; [.3377.0020.0002] # YI SYLLABLE BBIEX
-A05C ; [.3378.0020.0002] # YI SYLLABLE BBIE
-A05D ; [.3379.0020.0002] # YI SYLLABLE BBIEP
-A05E ; [.337A.0020.0002] # YI SYLLABLE BBAT
-A05F ; [.337B.0020.0002] # YI SYLLABLE BBAX
-A060 ; [.337C.0020.0002] # YI SYLLABLE BBA
-A061 ; [.337D.0020.0002] # YI SYLLABLE BBAP
-A062 ; [.337E.0020.0002] # YI SYLLABLE BBUOX
-A063 ; [.337F.0020.0002] # YI SYLLABLE BBUO
-A064 ; [.3380.0020.0002] # YI SYLLABLE BBUOP
-A065 ; [.3381.0020.0002] # YI SYLLABLE BBOT
-A066 ; [.3382.0020.0002] # YI SYLLABLE BBOX
-A067 ; [.3383.0020.0002] # YI SYLLABLE BBO
-A068 ; [.3384.0020.0002] # YI SYLLABLE BBOP
-A069 ; [.3385.0020.0002] # YI SYLLABLE BBEX
-A06A ; [.3386.0020.0002] # YI SYLLABLE BBE
-A06B ; [.3387.0020.0002] # YI SYLLABLE BBEP
-A06C ; [.3388.0020.0002] # YI SYLLABLE BBUT
-A06D ; [.3389.0020.0002] # YI SYLLABLE BBUX
-A06E ; [.338A.0020.0002] # YI SYLLABLE BBU
-A06F ; [.338B.0020.0002] # YI SYLLABLE BBUP
-A070 ; [.338C.0020.0002] # YI SYLLABLE BBURX
-A071 ; [.338D.0020.0002] # YI SYLLABLE BBUR
-A072 ; [.338E.0020.0002] # YI SYLLABLE BBYT
-A073 ; [.338F.0020.0002] # YI SYLLABLE BBYX
-A074 ; [.3390.0020.0002] # YI SYLLABLE BBY
-A075 ; [.3391.0020.0002] # YI SYLLABLE BBYP
-A076 ; [.3392.0020.0002] # YI SYLLABLE NBIT
-A077 ; [.3393.0020.0002] # YI SYLLABLE NBIX
-A078 ; [.3394.0020.0002] # YI SYLLABLE NBI
-A079 ; [.3395.0020.0002] # YI SYLLABLE NBIP
-A07A ; [.3396.0020.0002] # YI SYLLABLE NBIEX
-A07B ; [.3397.0020.0002] # YI SYLLABLE NBIE
-A07C ; [.3398.0020.0002] # YI SYLLABLE NBIEP
-A07D ; [.3399.0020.0002] # YI SYLLABLE NBAT
-A07E ; [.339A.0020.0002] # YI SYLLABLE NBAX
-A07F ; [.339B.0020.0002] # YI SYLLABLE NBA
-A080 ; [.339C.0020.0002] # YI SYLLABLE NBAP
-A081 ; [.339D.0020.0002] # YI SYLLABLE NBOT
-A082 ; [.339E.0020.0002] # YI SYLLABLE NBOX
-A083 ; [.339F.0020.0002] # YI SYLLABLE NBO
-A084 ; [.33A0.0020.0002] # YI SYLLABLE NBOP
-A085 ; [.33A1.0020.0002] # YI SYLLABLE NBUT
-A086 ; [.33A2.0020.0002] # YI SYLLABLE NBUX
-A087 ; [.33A3.0020.0002] # YI SYLLABLE NBU
-A088 ; [.33A4.0020.0002] # YI SYLLABLE NBUP
-A089 ; [.33A5.0020.0002] # YI SYLLABLE NBURX
-A08A ; [.33A6.0020.0002] # YI SYLLABLE NBUR
-A08B ; [.33A7.0020.0002] # YI SYLLABLE NBYT
-A08C ; [.33A8.0020.0002] # YI SYLLABLE NBYX
-A08D ; [.33A9.0020.0002] # YI SYLLABLE NBY
-A08E ; [.33AA.0020.0002] # YI SYLLABLE NBYP
-A08F ; [.33AB.0020.0002] # YI SYLLABLE NBYRX
-A090 ; [.33AC.0020.0002] # YI SYLLABLE NBYR
-A091 ; [.33AD.0020.0002] # YI SYLLABLE HMIT
-A092 ; [.33AE.0020.0002] # YI SYLLABLE HMIX
-A093 ; [.33AF.0020.0002] # YI SYLLABLE HMI
-A094 ; [.33B0.0020.0002] # YI SYLLABLE HMIP
-A095 ; [.33B1.0020.0002] # YI SYLLABLE HMIEX
-A096 ; [.33B2.0020.0002] # YI SYLLABLE HMIE
-A097 ; [.33B3.0020.0002] # YI SYLLABLE HMIEP
-A098 ; [.33B4.0020.0002] # YI SYLLABLE HMAT
-A099 ; [.33B5.0020.0002] # YI SYLLABLE HMAX
-A09A ; [.33B6.0020.0002] # YI SYLLABLE HMA
-A09B ; [.33B7.0020.0002] # YI SYLLABLE HMAP
-A09C ; [.33B8.0020.0002] # YI SYLLABLE HMUOX
-A09D ; [.33B9.0020.0002] # YI SYLLABLE HMUO
-A09E ; [.33BA.0020.0002] # YI SYLLABLE HMUOP
-A09F ; [.33BB.0020.0002] # YI SYLLABLE HMOT
-A0A0 ; [.33BC.0020.0002] # YI SYLLABLE HMOX
-A0A1 ; [.33BD.0020.0002] # YI SYLLABLE HMO
-A0A2 ; [.33BE.0020.0002] # YI SYLLABLE HMOP
-A0A3 ; [.33BF.0020.0002] # YI SYLLABLE HMUT
-A0A4 ; [.33C0.0020.0002] # YI SYLLABLE HMUX
-A0A5 ; [.33C1.0020.0002] # YI SYLLABLE HMU
-A0A6 ; [.33C2.0020.0002] # YI SYLLABLE HMUP
-A0A7 ; [.33C3.0020.0002] # YI SYLLABLE HMURX
-A0A8 ; [.33C4.0020.0002] # YI SYLLABLE HMUR
-A0A9 ; [.33C5.0020.0002] # YI SYLLABLE HMYX
-A0AA ; [.33C6.0020.0002] # YI SYLLABLE HMY
-A0AB ; [.33C7.0020.0002] # YI SYLLABLE HMYP
-A0AC ; [.33C8.0020.0002] # YI SYLLABLE HMYRX
-A0AD ; [.33C9.0020.0002] # YI SYLLABLE HMYR
-A0AE ; [.33CA.0020.0002] # YI SYLLABLE MIT
-A0AF ; [.33CB.0020.0002] # YI SYLLABLE MIX
-A0B0 ; [.33CC.0020.0002] # YI SYLLABLE MI
-A0B1 ; [.33CD.0020.0002] # YI SYLLABLE MIP
-A0B2 ; [.33CE.0020.0002] # YI SYLLABLE MIEX
-A0B3 ; [.33CF.0020.0002] # YI SYLLABLE MIE
-A0B4 ; [.33D0.0020.0002] # YI SYLLABLE MIEP
-A0B5 ; [.33D1.0020.0002] # YI SYLLABLE MAT
-A0B6 ; [.33D2.0020.0002] # YI SYLLABLE MAX
-A0B7 ; [.33D3.0020.0002] # YI SYLLABLE MA
-A0B8 ; [.33D4.0020.0002] # YI SYLLABLE MAP
-A0B9 ; [.33D5.0020.0002] # YI SYLLABLE MUOT
-A0BA ; [.33D6.0020.0002] # YI SYLLABLE MUOX
-A0BB ; [.33D7.0020.0002] # YI SYLLABLE MUO
-A0BC ; [.33D8.0020.0002] # YI SYLLABLE MUOP
-A0BD ; [.33D9.0020.0002] # YI SYLLABLE MOT
-A0BE ; [.33DA.0020.0002] # YI SYLLABLE MOX
-A0BF ; [.33DB.0020.0002] # YI SYLLABLE MO
-A0C0 ; [.33DC.0020.0002] # YI SYLLABLE MOP
-A0C1 ; [.33DD.0020.0002] # YI SYLLABLE MEX
-A0C2 ; [.33DE.0020.0002] # YI SYLLABLE ME
-A0C3 ; [.33DF.0020.0002] # YI SYLLABLE MUT
-A0C4 ; [.33E0.0020.0002] # YI SYLLABLE MUX
-A0C5 ; [.33E1.0020.0002] # YI SYLLABLE MU
-A0C6 ; [.33E2.0020.0002] # YI SYLLABLE MUP
-A0C7 ; [.33E3.0020.0002] # YI SYLLABLE MURX
-A0C8 ; [.33E4.0020.0002] # YI SYLLABLE MUR
-A0C9 ; [.33E5.0020.0002] # YI SYLLABLE MYT
-A0CA ; [.33E6.0020.0002] # YI SYLLABLE MYX
-A0CB ; [.33E7.0020.0002] # YI SYLLABLE MY
-A0CC ; [.33E8.0020.0002] # YI SYLLABLE MYP
-A0CD ; [.33E9.0020.0002] # YI SYLLABLE FIT
-A0CE ; [.33EA.0020.0002] # YI SYLLABLE FIX
-A0CF ; [.33EB.0020.0002] # YI SYLLABLE FI
-A0D0 ; [.33EC.0020.0002] # YI SYLLABLE FIP
-A0D1 ; [.33ED.0020.0002] # YI SYLLABLE FAT
-A0D2 ; [.33EE.0020.0002] # YI SYLLABLE FAX
-A0D3 ; [.33EF.0020.0002] # YI SYLLABLE FA
-A0D4 ; [.33F0.0020.0002] # YI SYLLABLE FAP
-A0D5 ; [.33F1.0020.0002] # YI SYLLABLE FOX
-A0D6 ; [.33F2.0020.0002] # YI SYLLABLE FO
-A0D7 ; [.33F3.0020.0002] # YI SYLLABLE FOP
-A0D8 ; [.33F4.0020.0002] # YI SYLLABLE FUT
-A0D9 ; [.33F5.0020.0002] # YI SYLLABLE FUX
-A0DA ; [.33F6.0020.0002] # YI SYLLABLE FU
-A0DB ; [.33F7.0020.0002] # YI SYLLABLE FUP
-A0DC ; [.33F8.0020.0002] # YI SYLLABLE FURX
-A0DD ; [.33F9.0020.0002] # YI SYLLABLE FUR
-A0DE ; [.33FA.0020.0002] # YI SYLLABLE FYT
-A0DF ; [.33FB.0020.0002] # YI SYLLABLE FYX
-A0E0 ; [.33FC.0020.0002] # YI SYLLABLE FY
-A0E1 ; [.33FD.0020.0002] # YI SYLLABLE FYP
-A0E2 ; [.33FE.0020.0002] # YI SYLLABLE VIT
-A0E3 ; [.33FF.0020.0002] # YI SYLLABLE VIX
-A0E4 ; [.3400.0020.0002] # YI SYLLABLE VI
-A0E5 ; [.3401.0020.0002] # YI SYLLABLE VIP
-A0E6 ; [.3402.0020.0002] # YI SYLLABLE VIET
-A0E7 ; [.3403.0020.0002] # YI SYLLABLE VIEX
-A0E8 ; [.3404.0020.0002] # YI SYLLABLE VIE
-A0E9 ; [.3405.0020.0002] # YI SYLLABLE VIEP
-A0EA ; [.3406.0020.0002] # YI SYLLABLE VAT
-A0EB ; [.3407.0020.0002] # YI SYLLABLE VAX
-A0EC ; [.3408.0020.0002] # YI SYLLABLE VA
-A0ED ; [.3409.0020.0002] # YI SYLLABLE VAP
-A0EE ; [.340A.0020.0002] # YI SYLLABLE VOT
-A0EF ; [.340B.0020.0002] # YI SYLLABLE VOX
-A0F0 ; [.340C.0020.0002] # YI SYLLABLE VO
-A0F1 ; [.340D.0020.0002] # YI SYLLABLE VOP
-A0F2 ; [.340E.0020.0002] # YI SYLLABLE VEX
-A0F3 ; [.340F.0020.0002] # YI SYLLABLE VEP
-A0F4 ; [.3410.0020.0002] # YI SYLLABLE VUT
-A0F5 ; [.3411.0020.0002] # YI SYLLABLE VUX
-A0F6 ; [.3412.0020.0002] # YI SYLLABLE VU
-A0F7 ; [.3413.0020.0002] # YI SYLLABLE VUP
-A0F8 ; [.3414.0020.0002] # YI SYLLABLE VURX
-A0F9 ; [.3415.0020.0002] # YI SYLLABLE VUR
-A0FA ; [.3416.0020.0002] # YI SYLLABLE VYT
-A0FB ; [.3417.0020.0002] # YI SYLLABLE VYX
-A0FC ; [.3418.0020.0002] # YI SYLLABLE VY
-A0FD ; [.3419.0020.0002] # YI SYLLABLE VYP
-A0FE ; [.341A.0020.0002] # YI SYLLABLE VYRX
-A0FF ; [.341B.0020.0002] # YI SYLLABLE VYR
-A100 ; [.341C.0020.0002] # YI SYLLABLE DIT
-A101 ; [.341D.0020.0002] # YI SYLLABLE DIX
-A102 ; [.341E.0020.0002] # YI SYLLABLE DI
-A103 ; [.341F.0020.0002] # YI SYLLABLE DIP
-A104 ; [.3420.0020.0002] # YI SYLLABLE DIEX
-A105 ; [.3421.0020.0002] # YI SYLLABLE DIE
-A106 ; [.3422.0020.0002] # YI SYLLABLE DIEP
-A107 ; [.3423.0020.0002] # YI SYLLABLE DAT
-A108 ; [.3424.0020.0002] # YI SYLLABLE DAX
-A109 ; [.3425.0020.0002] # YI SYLLABLE DA
-A10A ; [.3426.0020.0002] # YI SYLLABLE DAP
-A10B ; [.3427.0020.0002] # YI SYLLABLE DUOX
-A10C ; [.3428.0020.0002] # YI SYLLABLE DUO
-A10D ; [.3429.0020.0002] # YI SYLLABLE DOT
-A10E ; [.342A.0020.0002] # YI SYLLABLE DOX
-A10F ; [.342B.0020.0002] # YI SYLLABLE DO
-A110 ; [.342C.0020.0002] # YI SYLLABLE DOP
-A111 ; [.342D.0020.0002] # YI SYLLABLE DEX
-A112 ; [.342E.0020.0002] # YI SYLLABLE DE
-A113 ; [.342F.0020.0002] # YI SYLLABLE DEP
-A114 ; [.3430.0020.0002] # YI SYLLABLE DUT
-A115 ; [.3431.0020.0002] # YI SYLLABLE DUX
-A116 ; [.3432.0020.0002] # YI SYLLABLE DU
-A117 ; [.3433.0020.0002] # YI SYLLABLE DUP
-A118 ; [.3434.0020.0002] # YI SYLLABLE DURX
-A119 ; [.3435.0020.0002] # YI SYLLABLE DUR
-A11A ; [.3436.0020.0002] # YI SYLLABLE TIT
-A11B ; [.3437.0020.0002] # YI SYLLABLE TIX
-A11C ; [.3438.0020.0002] # YI SYLLABLE TI
-A11D ; [.3439.0020.0002] # YI SYLLABLE TIP
-A11E ; [.343A.0020.0002] # YI SYLLABLE TIEX
-A11F ; [.343B.0020.0002] # YI SYLLABLE TIE
-A120 ; [.343C.0020.0002] # YI SYLLABLE TIEP
-A121 ; [.343D.0020.0002] # YI SYLLABLE TAT
-A122 ; [.343E.0020.0002] # YI SYLLABLE TAX
-A123 ; [.343F.0020.0002] # YI SYLLABLE TA
-A124 ; [.3440.0020.0002] # YI SYLLABLE TAP
-A125 ; [.3441.0020.0002] # YI SYLLABLE TUOT
-A126 ; [.3442.0020.0002] # YI SYLLABLE TUOX
-A127 ; [.3443.0020.0002] # YI SYLLABLE TUO
-A128 ; [.3444.0020.0002] # YI SYLLABLE TUOP
-A129 ; [.3445.0020.0002] # YI SYLLABLE TOT
-A12A ; [.3446.0020.0002] # YI SYLLABLE TOX
-A12B ; [.3447.0020.0002] # YI SYLLABLE TO
-A12C ; [.3448.0020.0002] # YI SYLLABLE TOP
-A12D ; [.3449.0020.0002] # YI SYLLABLE TEX
-A12E ; [.344A.0020.0002] # YI SYLLABLE TE
-A12F ; [.344B.0020.0002] # YI SYLLABLE TEP
-A130 ; [.344C.0020.0002] # YI SYLLABLE TUT
-A131 ; [.344D.0020.0002] # YI SYLLABLE TUX
-A132 ; [.344E.0020.0002] # YI SYLLABLE TU
-A133 ; [.344F.0020.0002] # YI SYLLABLE TUP
-A134 ; [.3450.0020.0002] # YI SYLLABLE TURX
-A135 ; [.3451.0020.0002] # YI SYLLABLE TUR
-A136 ; [.3452.0020.0002] # YI SYLLABLE DDIT
-A137 ; [.3453.0020.0002] # YI SYLLABLE DDIX
-A138 ; [.3454.0020.0002] # YI SYLLABLE DDI
-A139 ; [.3455.0020.0002] # YI SYLLABLE DDIP
-A13A ; [.3456.0020.0002] # YI SYLLABLE DDIEX
-A13B ; [.3457.0020.0002] # YI SYLLABLE DDIE
-A13C ; [.3458.0020.0002] # YI SYLLABLE DDIEP
-A13D ; [.3459.0020.0002] # YI SYLLABLE DDAT
-A13E ; [.345A.0020.0002] # YI SYLLABLE DDAX
-A13F ; [.345B.0020.0002] # YI SYLLABLE DDA
-A140 ; [.345C.0020.0002] # YI SYLLABLE DDAP
-A141 ; [.345D.0020.0002] # YI SYLLABLE DDUOX
-A142 ; [.345E.0020.0002] # YI SYLLABLE DDUO
-A143 ; [.345F.0020.0002] # YI SYLLABLE DDUOP
-A144 ; [.3460.0020.0002] # YI SYLLABLE DDOT
-A145 ; [.3461.0020.0002] # YI SYLLABLE DDOX
-A146 ; [.3462.0020.0002] # YI SYLLABLE DDO
-A147 ; [.3463.0020.0002] # YI SYLLABLE DDOP
-A148 ; [.3464.0020.0002] # YI SYLLABLE DDEX
-A149 ; [.3465.0020.0002] # YI SYLLABLE DDE
-A14A ; [.3466.0020.0002] # YI SYLLABLE DDEP
-A14B ; [.3467.0020.0002] # YI SYLLABLE DDUT
-A14C ; [.3468.0020.0002] # YI SYLLABLE DDUX
-A14D ; [.3469.0020.0002] # YI SYLLABLE DDU
-A14E ; [.346A.0020.0002] # YI SYLLABLE DDUP
-A14F ; [.346B.0020.0002] # YI SYLLABLE DDURX
-A150 ; [.346C.0020.0002] # YI SYLLABLE DDUR
-A151 ; [.346D.0020.0002] # YI SYLLABLE NDIT
-A152 ; [.346E.0020.0002] # YI SYLLABLE NDIX
-A153 ; [.346F.0020.0002] # YI SYLLABLE NDI
-A154 ; [.3470.0020.0002] # YI SYLLABLE NDIP
-A155 ; [.3471.0020.0002] # YI SYLLABLE NDIEX
-A156 ; [.3472.0020.0002] # YI SYLLABLE NDIE
-A157 ; [.3473.0020.0002] # YI SYLLABLE NDAT
-A158 ; [.3474.0020.0002] # YI SYLLABLE NDAX
-A159 ; [.3475.0020.0002] # YI SYLLABLE NDA
-A15A ; [.3476.0020.0002] # YI SYLLABLE NDAP
-A15B ; [.3477.0020.0002] # YI SYLLABLE NDOT
-A15C ; [.3478.0020.0002] # YI SYLLABLE NDOX
-A15D ; [.3479.0020.0002] # YI SYLLABLE NDO
-A15E ; [.347A.0020.0002] # YI SYLLABLE NDOP
-A15F ; [.347B.0020.0002] # YI SYLLABLE NDEX
-A160 ; [.347C.0020.0002] # YI SYLLABLE NDE
-A161 ; [.347D.0020.0002] # YI SYLLABLE NDEP
-A162 ; [.347E.0020.0002] # YI SYLLABLE NDUT
-A163 ; [.347F.0020.0002] # YI SYLLABLE NDUX
-A164 ; [.3480.0020.0002] # YI SYLLABLE NDU
-A165 ; [.3481.0020.0002] # YI SYLLABLE NDUP
-A166 ; [.3482.0020.0002] # YI SYLLABLE NDURX
-A167 ; [.3483.0020.0002] # YI SYLLABLE NDUR
-A168 ; [.3484.0020.0002] # YI SYLLABLE HNIT
-A169 ; [.3485.0020.0002] # YI SYLLABLE HNIX
-A16A ; [.3486.0020.0002] # YI SYLLABLE HNI
-A16B ; [.3487.0020.0002] # YI SYLLABLE HNIP
-A16C ; [.3488.0020.0002] # YI SYLLABLE HNIET
-A16D ; [.3489.0020.0002] # YI SYLLABLE HNIEX
-A16E ; [.348A.0020.0002] # YI SYLLABLE HNIE
-A16F ; [.348B.0020.0002] # YI SYLLABLE HNIEP
-A170 ; [.348C.0020.0002] # YI SYLLABLE HNAT
-A171 ; [.348D.0020.0002] # YI SYLLABLE HNAX
-A172 ; [.348E.0020.0002] # YI SYLLABLE HNA
-A173 ; [.348F.0020.0002] # YI SYLLABLE HNAP
-A174 ; [.3490.0020.0002] # YI SYLLABLE HNUOX
-A175 ; [.3491.0020.0002] # YI SYLLABLE HNUO
-A176 ; [.3492.0020.0002] # YI SYLLABLE HNOT
-A177 ; [.3493.0020.0002] # YI SYLLABLE HNOX
-A178 ; [.3494.0020.0002] # YI SYLLABLE HNOP
-A179 ; [.3495.0020.0002] # YI SYLLABLE HNEX
-A17A ; [.3496.0020.0002] # YI SYLLABLE HNE
-A17B ; [.3497.0020.0002] # YI SYLLABLE HNEP
-A17C ; [.3498.0020.0002] # YI SYLLABLE HNUT
-A17D ; [.3499.0020.0002] # YI SYLLABLE NIT
-A17E ; [.349A.0020.0002] # YI SYLLABLE NIX
-A17F ; [.349B.0020.0002] # YI SYLLABLE NI
-A180 ; [.349C.0020.0002] # YI SYLLABLE NIP
-A181 ; [.349D.0020.0002] # YI SYLLABLE NIEX
-A182 ; [.349E.0020.0002] # YI SYLLABLE NIE
-A183 ; [.349F.0020.0002] # YI SYLLABLE NIEP
-A184 ; [.34A0.0020.0002] # YI SYLLABLE NAX
-A185 ; [.34A1.0020.0002] # YI SYLLABLE NA
-A186 ; [.34A2.0020.0002] # YI SYLLABLE NAP
-A187 ; [.34A3.0020.0002] # YI SYLLABLE NUOX
-A188 ; [.34A4.0020.0002] # YI SYLLABLE NUO
-A189 ; [.34A5.0020.0002] # YI SYLLABLE NUOP
-A18A ; [.34A6.0020.0002] # YI SYLLABLE NOT
-A18B ; [.34A7.0020.0002] # YI SYLLABLE NOX
-A18C ; [.34A8.0020.0002] # YI SYLLABLE NO
-A18D ; [.34A9.0020.0002] # YI SYLLABLE NOP
-A18E ; [.34AA.0020.0002] # YI SYLLABLE NEX
-A18F ; [.34AB.0020.0002] # YI SYLLABLE NE
-A190 ; [.34AC.0020.0002] # YI SYLLABLE NEP
-A191 ; [.34AD.0020.0002] # YI SYLLABLE NUT
-A192 ; [.34AE.0020.0002] # YI SYLLABLE NUX
-A193 ; [.34AF.0020.0002] # YI SYLLABLE NU
-A194 ; [.34B0.0020.0002] # YI SYLLABLE NUP
-A195 ; [.34B1.0020.0002] # YI SYLLABLE NURX
-A196 ; [.34B2.0020.0002] # YI SYLLABLE NUR
-A197 ; [.34B3.0020.0002] # YI SYLLABLE HLIT
-A198 ; [.34B4.0020.0002] # YI SYLLABLE HLIX
-A199 ; [.34B5.0020.0002] # YI SYLLABLE HLI
-A19A ; [.34B6.0020.0002] # YI SYLLABLE HLIP
-A19B ; [.34B7.0020.0002] # YI SYLLABLE HLIEX
-A19C ; [.34B8.0020.0002] # YI SYLLABLE HLIE
-A19D ; [.34B9.0020.0002] # YI SYLLABLE HLIEP
-A19E ; [.34BA.0020.0002] # YI SYLLABLE HLAT
-A19F ; [.34BB.0020.0002] # YI SYLLABLE HLAX
-A1A0 ; [.34BC.0020.0002] # YI SYLLABLE HLA
-A1A1 ; [.34BD.0020.0002] # YI SYLLABLE HLAP
-A1A2 ; [.34BE.0020.0002] # YI SYLLABLE HLUOX
-A1A3 ; [.34BF.0020.0002] # YI SYLLABLE HLUO
-A1A4 ; [.34C0.0020.0002] # YI SYLLABLE HLUOP
-A1A5 ; [.34C1.0020.0002] # YI SYLLABLE HLOX
-A1A6 ; [.34C2.0020.0002] # YI SYLLABLE HLO
-A1A7 ; [.34C3.0020.0002] # YI SYLLABLE HLOP
-A1A8 ; [.34C4.0020.0002] # YI SYLLABLE HLEX
-A1A9 ; [.34C5.0020.0002] # YI SYLLABLE HLE
-A1AA ; [.34C6.0020.0002] # YI SYLLABLE HLEP
-A1AB ; [.34C7.0020.0002] # YI SYLLABLE HLUT
-A1AC ; [.34C8.0020.0002] # YI SYLLABLE HLUX
-A1AD ; [.34C9.0020.0002] # YI SYLLABLE HLU
-A1AE ; [.34CA.0020.0002] # YI SYLLABLE HLUP
-A1AF ; [.34CB.0020.0002] # YI SYLLABLE HLURX
-A1B0 ; [.34CC.0020.0002] # YI SYLLABLE HLUR
-A1B1 ; [.34CD.0020.0002] # YI SYLLABLE HLYT
-A1B2 ; [.34CE.0020.0002] # YI SYLLABLE HLYX
-A1B3 ; [.34CF.0020.0002] # YI SYLLABLE HLY
-A1B4 ; [.34D0.0020.0002] # YI SYLLABLE HLYP
-A1B5 ; [.34D1.0020.0002] # YI SYLLABLE HLYRX
-A1B6 ; [.34D2.0020.0002] # YI SYLLABLE HLYR
-A1B7 ; [.34D3.0020.0002] # YI SYLLABLE LIT
-A1B8 ; [.34D4.0020.0002] # YI SYLLABLE LIX
-A1B9 ; [.34D5.0020.0002] # YI SYLLABLE LI
-A1BA ; [.34D6.0020.0002] # YI SYLLABLE LIP
-A1BB ; [.34D7.0020.0002] # YI SYLLABLE LIET
-A1BC ; [.34D8.0020.0002] # YI SYLLABLE LIEX
-A1BD ; [.34D9.0020.0002] # YI SYLLABLE LIE
-A1BE ; [.34DA.0020.0002] # YI SYLLABLE LIEP
-A1BF ; [.34DB.0020.0002] # YI SYLLABLE LAT
-A1C0 ; [.34DC.0020.0002] # YI SYLLABLE LAX
-A1C1 ; [.34DD.0020.0002] # YI SYLLABLE LA
-A1C2 ; [.34DE.0020.0002] # YI SYLLABLE LAP
-A1C3 ; [.34DF.0020.0002] # YI SYLLABLE LUOT
-A1C4 ; [.34E0.0020.0002] # YI SYLLABLE LUOX
-A1C5 ; [.34E1.0020.0002] # YI SYLLABLE LUO
-A1C6 ; [.34E2.0020.0002] # YI SYLLABLE LUOP
-A1C7 ; [.34E3.0020.0002] # YI SYLLABLE LOT
-A1C8 ; [.34E4.0020.0002] # YI SYLLABLE LOX
-A1C9 ; [.34E5.0020.0002] # YI SYLLABLE LO
-A1CA ; [.34E6.0020.0002] # YI SYLLABLE LOP
-A1CB ; [.34E7.0020.0002] # YI SYLLABLE LEX
-A1CC ; [.34E8.0020.0002] # YI SYLLABLE LE
-A1CD ; [.34E9.0020.0002] # YI SYLLABLE LEP
-A1CE ; [.34EA.0020.0002] # YI SYLLABLE LUT
-A1CF ; [.34EB.0020.0002] # YI SYLLABLE LUX
-A1D0 ; [.34EC.0020.0002] # YI SYLLABLE LU
-A1D1 ; [.34ED.0020.0002] # YI SYLLABLE LUP
-A1D2 ; [.34EE.0020.0002] # YI SYLLABLE LURX
-A1D3 ; [.34EF.0020.0002] # YI SYLLABLE LUR
-A1D4 ; [.34F0.0020.0002] # YI SYLLABLE LYT
-A1D5 ; [.34F1.0020.0002] # YI SYLLABLE LYX
-A1D6 ; [.34F2.0020.0002] # YI SYLLABLE LY
-A1D7 ; [.34F3.0020.0002] # YI SYLLABLE LYP
-A1D8 ; [.34F4.0020.0002] # YI SYLLABLE LYRX
-A1D9 ; [.34F5.0020.0002] # YI SYLLABLE LYR
-A1DA ; [.34F6.0020.0002] # YI SYLLABLE GIT
-A1DB ; [.34F7.0020.0002] # YI SYLLABLE GIX
-A1DC ; [.34F8.0020.0002] # YI SYLLABLE GI
-A1DD ; [.34F9.0020.0002] # YI SYLLABLE GIP
-A1DE ; [.34FA.0020.0002] # YI SYLLABLE GIET
-A1DF ; [.34FB.0020.0002] # YI SYLLABLE GIEX
-A1E0 ; [.34FC.0020.0002] # YI SYLLABLE GIE
-A1E1 ; [.34FD.0020.0002] # YI SYLLABLE GIEP
-A1E2 ; [.34FE.0020.0002] # YI SYLLABLE GAT
-A1E3 ; [.34FF.0020.0002] # YI SYLLABLE GAX
-A1E4 ; [.3500.0020.0002] # YI SYLLABLE GA
-A1E5 ; [.3501.0020.0002] # YI SYLLABLE GAP
-A1E6 ; [.3502.0020.0002] # YI SYLLABLE GUOT
-A1E7 ; [.3503.0020.0002] # YI SYLLABLE GUOX
-A1E8 ; [.3504.0020.0002] # YI SYLLABLE GUO
-A1E9 ; [.3505.0020.0002] # YI SYLLABLE GUOP
-A1EA ; [.3506.0020.0002] # YI SYLLABLE GOT
-A1EB ; [.3507.0020.0002] # YI SYLLABLE GOX
-A1EC ; [.3508.0020.0002] # YI SYLLABLE GO
-A1ED ; [.3509.0020.0002] # YI SYLLABLE GOP
-A1EE ; [.350A.0020.0002] # YI SYLLABLE GET
-A1EF ; [.350B.0020.0002] # YI SYLLABLE GEX
-A1F0 ; [.350C.0020.0002] # YI SYLLABLE GE
-A1F1 ; [.350D.0020.0002] # YI SYLLABLE GEP
-A1F2 ; [.350E.0020.0002] # YI SYLLABLE GUT
-A1F3 ; [.350F.0020.0002] # YI SYLLABLE GUX
-A1F4 ; [.3510.0020.0002] # YI SYLLABLE GU
-A1F5 ; [.3511.0020.0002] # YI SYLLABLE GUP
-A1F6 ; [.3512.0020.0002] # YI SYLLABLE GURX
-A1F7 ; [.3513.0020.0002] # YI SYLLABLE GUR
-A1F8 ; [.3514.0020.0002] # YI SYLLABLE KIT
-A1F9 ; [.3515.0020.0002] # YI SYLLABLE KIX
-A1FA ; [.3516.0020.0002] # YI SYLLABLE KI
-A1FB ; [.3517.0020.0002] # YI SYLLABLE KIP
-A1FC ; [.3518.0020.0002] # YI SYLLABLE KIEX
-A1FD ; [.3519.0020.0002] # YI SYLLABLE KIE
-A1FE ; [.351A.0020.0002] # YI SYLLABLE KIEP
-A1FF ; [.351B.0020.0002] # YI SYLLABLE KAT
-A200 ; [.351C.0020.0002] # YI SYLLABLE KAX
-A201 ; [.351D.0020.0002] # YI SYLLABLE KA
-A202 ; [.351E.0020.0002] # YI SYLLABLE KAP
-A203 ; [.351F.0020.0002] # YI SYLLABLE KUOX
-A204 ; [.3520.0020.0002] # YI SYLLABLE KUO
-A205 ; [.3521.0020.0002] # YI SYLLABLE KUOP
-A206 ; [.3522.0020.0002] # YI SYLLABLE KOT
-A207 ; [.3523.0020.0002] # YI SYLLABLE KOX
-A208 ; [.3524.0020.0002] # YI SYLLABLE KO
-A209 ; [.3525.0020.0002] # YI SYLLABLE KOP
-A20A ; [.3526.0020.0002] # YI SYLLABLE KET
-A20B ; [.3527.0020.0002] # YI SYLLABLE KEX
-A20C ; [.3528.0020.0002] # YI SYLLABLE KE
-A20D ; [.3529.0020.0002] # YI SYLLABLE KEP
-A20E ; [.352A.0020.0002] # YI SYLLABLE KUT
-A20F ; [.352B.0020.0002] # YI SYLLABLE KUX
-A210 ; [.352C.0020.0002] # YI SYLLABLE KU
-A211 ; [.352D.0020.0002] # YI SYLLABLE KUP
-A212 ; [.352E.0020.0002] # YI SYLLABLE KURX
-A213 ; [.352F.0020.0002] # YI SYLLABLE KUR
-A214 ; [.3530.0020.0002] # YI SYLLABLE GGIT
-A215 ; [.3531.0020.0002] # YI SYLLABLE GGIX
-A216 ; [.3532.0020.0002] # YI SYLLABLE GGI
-A217 ; [.3533.0020.0002] # YI SYLLABLE GGIEX
-A218 ; [.3534.0020.0002] # YI SYLLABLE GGIE
-A219 ; [.3535.0020.0002] # YI SYLLABLE GGIEP
-A21A ; [.3536.0020.0002] # YI SYLLABLE GGAT
-A21B ; [.3537.0020.0002] # YI SYLLABLE GGAX
-A21C ; [.3538.0020.0002] # YI SYLLABLE GGA
-A21D ; [.3539.0020.0002] # YI SYLLABLE GGAP
-A21E ; [.353A.0020.0002] # YI SYLLABLE GGUOT
-A21F ; [.353B.0020.0002] # YI SYLLABLE GGUOX
-A220 ; [.353C.0020.0002] # YI SYLLABLE GGUO
-A221 ; [.353D.0020.0002] # YI SYLLABLE GGUOP
-A222 ; [.353E.0020.0002] # YI SYLLABLE GGOT
-A223 ; [.353F.0020.0002] # YI SYLLABLE GGOX
-A224 ; [.3540.0020.0002] # YI SYLLABLE GGO
-A225 ; [.3541.0020.0002] # YI SYLLABLE GGOP
-A226 ; [.3542.0020.0002] # YI SYLLABLE GGET
-A227 ; [.3543.0020.0002] # YI SYLLABLE GGEX
-A228 ; [.3544.0020.0002] # YI SYLLABLE GGE
-A229 ; [.3545.0020.0002] # YI SYLLABLE GGEP
-A22A ; [.3546.0020.0002] # YI SYLLABLE GGUT
-A22B ; [.3547.0020.0002] # YI SYLLABLE GGUX
-A22C ; [.3548.0020.0002] # YI SYLLABLE GGU
-A22D ; [.3549.0020.0002] # YI SYLLABLE GGUP
-A22E ; [.354A.0020.0002] # YI SYLLABLE GGURX
-A22F ; [.354B.0020.0002] # YI SYLLABLE GGUR
-A230 ; [.354C.0020.0002] # YI SYLLABLE MGIEX
-A231 ; [.354D.0020.0002] # YI SYLLABLE MGIE
-A232 ; [.354E.0020.0002] # YI SYLLABLE MGAT
-A233 ; [.354F.0020.0002] # YI SYLLABLE MGAX
-A234 ; [.3550.0020.0002] # YI SYLLABLE MGA
-A235 ; [.3551.0020.0002] # YI SYLLABLE MGAP
-A236 ; [.3552.0020.0002] # YI SYLLABLE MGUOX
-A237 ; [.3553.0020.0002] # YI SYLLABLE MGUO
-A238 ; [.3554.0020.0002] # YI SYLLABLE MGUOP
-A239 ; [.3555.0020.0002] # YI SYLLABLE MGOT
-A23A ; [.3556.0020.0002] # YI SYLLABLE MGOX
-A23B ; [.3557.0020.0002] # YI SYLLABLE MGO
-A23C ; [.3558.0020.0002] # YI SYLLABLE MGOP
-A23D ; [.3559.0020.0002] # YI SYLLABLE MGEX
-A23E ; [.355A.0020.0002] # YI SYLLABLE MGE
-A23F ; [.355B.0020.0002] # YI SYLLABLE MGEP
-A240 ; [.355C.0020.0002] # YI SYLLABLE MGUT
-A241 ; [.355D.0020.0002] # YI SYLLABLE MGUX
-A242 ; [.355E.0020.0002] # YI SYLLABLE MGU
-A243 ; [.355F.0020.0002] # YI SYLLABLE MGUP
-A244 ; [.3560.0020.0002] # YI SYLLABLE MGURX
-A245 ; [.3561.0020.0002] # YI SYLLABLE MGUR
-A246 ; [.3562.0020.0002] # YI SYLLABLE HXIT
-A247 ; [.3563.0020.0002] # YI SYLLABLE HXIX
-A248 ; [.3564.0020.0002] # YI SYLLABLE HXI
-A249 ; [.3565.0020.0002] # YI SYLLABLE HXIP
-A24A ; [.3566.0020.0002] # YI SYLLABLE HXIET
-A24B ; [.3567.0020.0002] # YI SYLLABLE HXIEX
-A24C ; [.3568.0020.0002] # YI SYLLABLE HXIE
-A24D ; [.3569.0020.0002] # YI SYLLABLE HXIEP
-A24E ; [.356A.0020.0002] # YI SYLLABLE HXAT
-A24F ; [.356B.0020.0002] # YI SYLLABLE HXAX
-A250 ; [.356C.0020.0002] # YI SYLLABLE HXA
-A251 ; [.356D.0020.0002] # YI SYLLABLE HXAP
-A252 ; [.356E.0020.0002] # YI SYLLABLE HXUOT
-A253 ; [.356F.0020.0002] # YI SYLLABLE HXUOX
-A254 ; [.3570.0020.0002] # YI SYLLABLE HXUO
-A255 ; [.3571.0020.0002] # YI SYLLABLE HXUOP
-A256 ; [.3572.0020.0002] # YI SYLLABLE HXOT
-A257 ; [.3573.0020.0002] # YI SYLLABLE HXOX
-A258 ; [.3574.0020.0002] # YI SYLLABLE HXO
-A259 ; [.3575.0020.0002] # YI SYLLABLE HXOP
-A25A ; [.3576.0020.0002] # YI SYLLABLE HXEX
-A25B ; [.3577.0020.0002] # YI SYLLABLE HXE
-A25C ; [.3578.0020.0002] # YI SYLLABLE HXEP
-A25D ; [.3579.0020.0002] # YI SYLLABLE NGIEX
-A25E ; [.357A.0020.0002] # YI SYLLABLE NGIE
-A25F ; [.357B.0020.0002] # YI SYLLABLE NGIEP
-A260 ; [.357C.0020.0002] # YI SYLLABLE NGAT
-A261 ; [.357D.0020.0002] # YI SYLLABLE NGAX
-A262 ; [.357E.0020.0002] # YI SYLLABLE NGA
-A263 ; [.357F.0020.0002] # YI SYLLABLE NGAP
-A264 ; [.3580.0020.0002] # YI SYLLABLE NGUOT
-A265 ; [.3581.0020.0002] # YI SYLLABLE NGUOX
-A266 ; [.3582.0020.0002] # YI SYLLABLE NGUO
-A267 ; [.3583.0020.0002] # YI SYLLABLE NGOT
-A268 ; [.3584.0020.0002] # YI SYLLABLE NGOX
-A269 ; [.3585.0020.0002] # YI SYLLABLE NGO
-A26A ; [.3586.0020.0002] # YI SYLLABLE NGOP
-A26B ; [.3587.0020.0002] # YI SYLLABLE NGEX
-A26C ; [.3588.0020.0002] # YI SYLLABLE NGE
-A26D ; [.3589.0020.0002] # YI SYLLABLE NGEP
-A26E ; [.358A.0020.0002] # YI SYLLABLE HIT
-A26F ; [.358B.0020.0002] # YI SYLLABLE HIEX
-A270 ; [.358C.0020.0002] # YI SYLLABLE HIE
-A271 ; [.358D.0020.0002] # YI SYLLABLE HAT
-A272 ; [.358E.0020.0002] # YI SYLLABLE HAX
-A273 ; [.358F.0020.0002] # YI SYLLABLE HA
-A274 ; [.3590.0020.0002] # YI SYLLABLE HAP
-A275 ; [.3591.0020.0002] # YI SYLLABLE HUOT
-A276 ; [.3592.0020.0002] # YI SYLLABLE HUOX
-A277 ; [.3593.0020.0002] # YI SYLLABLE HUO
-A278 ; [.3594.0020.0002] # YI SYLLABLE HUOP
-A279 ; [.3595.0020.0002] # YI SYLLABLE HOT
-A27A ; [.3596.0020.0002] # YI SYLLABLE HOX
-A27B ; [.3597.0020.0002] # YI SYLLABLE HO
-A27C ; [.3598.0020.0002] # YI SYLLABLE HOP
-A27D ; [.3599.0020.0002] # YI SYLLABLE HEX
-A27E ; [.359A.0020.0002] # YI SYLLABLE HE
-A27F ; [.359B.0020.0002] # YI SYLLABLE HEP
-A280 ; [.359C.0020.0002] # YI SYLLABLE WAT
-A281 ; [.359D.0020.0002] # YI SYLLABLE WAX
-A282 ; [.359E.0020.0002] # YI SYLLABLE WA
-A283 ; [.359F.0020.0002] # YI SYLLABLE WAP
-A284 ; [.35A0.0020.0002] # YI SYLLABLE WUOX
-A285 ; [.35A1.0020.0002] # YI SYLLABLE WUO
-A286 ; [.35A2.0020.0002] # YI SYLLABLE WUOP
-A287 ; [.35A3.0020.0002] # YI SYLLABLE WOX
-A288 ; [.35A4.0020.0002] # YI SYLLABLE WO
-A289 ; [.35A5.0020.0002] # YI SYLLABLE WOP
-A28A ; [.35A6.0020.0002] # YI SYLLABLE WEX
-A28B ; [.35A7.0020.0002] # YI SYLLABLE WE
-A28C ; [.35A8.0020.0002] # YI SYLLABLE WEP
-A28D ; [.35A9.0020.0002] # YI SYLLABLE ZIT
-A28E ; [.35AA.0020.0002] # YI SYLLABLE ZIX
-A28F ; [.35AB.0020.0002] # YI SYLLABLE ZI
-A290 ; [.35AC.0020.0002] # YI SYLLABLE ZIP
-A291 ; [.35AD.0020.0002] # YI SYLLABLE ZIEX
-A292 ; [.35AE.0020.0002] # YI SYLLABLE ZIE
-A293 ; [.35AF.0020.0002] # YI SYLLABLE ZIEP
-A294 ; [.35B0.0020.0002] # YI SYLLABLE ZAT
-A295 ; [.35B1.0020.0002] # YI SYLLABLE ZAX
-A296 ; [.35B2.0020.0002] # YI SYLLABLE ZA
-A297 ; [.35B3.0020.0002] # YI SYLLABLE ZAP
-A298 ; [.35B4.0020.0002] # YI SYLLABLE ZUOX
-A299 ; [.35B5.0020.0002] # YI SYLLABLE ZUO
-A29A ; [.35B6.0020.0002] # YI SYLLABLE ZUOP
-A29B ; [.35B7.0020.0002] # YI SYLLABLE ZOT
-A29C ; [.35B8.0020.0002] # YI SYLLABLE ZOX
-A29D ; [.35B9.0020.0002] # YI SYLLABLE ZO
-A29E ; [.35BA.0020.0002] # YI SYLLABLE ZOP
-A29F ; [.35BB.0020.0002] # YI SYLLABLE ZEX
-A2A0 ; [.35BC.0020.0002] # YI SYLLABLE ZE
-A2A1 ; [.35BD.0020.0002] # YI SYLLABLE ZEP
-A2A2 ; [.35BE.0020.0002] # YI SYLLABLE ZUT
-A2A3 ; [.35BF.0020.0002] # YI SYLLABLE ZUX
-A2A4 ; [.35C0.0020.0002] # YI SYLLABLE ZU
-A2A5 ; [.35C1.0020.0002] # YI SYLLABLE ZUP
-A2A6 ; [.35C2.0020.0002] # YI SYLLABLE ZURX
-A2A7 ; [.35C3.0020.0002] # YI SYLLABLE ZUR
-A2A8 ; [.35C4.0020.0002] # YI SYLLABLE ZYT
-A2A9 ; [.35C5.0020.0002] # YI SYLLABLE ZYX
-A2AA ; [.35C6.0020.0002] # YI SYLLABLE ZY
-A2AB ; [.35C7.0020.0002] # YI SYLLABLE ZYP
-A2AC ; [.35C8.0020.0002] # YI SYLLABLE ZYRX
-A2AD ; [.35C9.0020.0002] # YI SYLLABLE ZYR
-A2AE ; [.35CA.0020.0002] # YI SYLLABLE CIT
-A2AF ; [.35CB.0020.0002] # YI SYLLABLE CIX
-A2B0 ; [.35CC.0020.0002] # YI SYLLABLE CI
-A2B1 ; [.35CD.0020.0002] # YI SYLLABLE CIP
-A2B2 ; [.35CE.0020.0002] # YI SYLLABLE CIET
-A2B3 ; [.35CF.0020.0002] # YI SYLLABLE CIEX
-A2B4 ; [.35D0.0020.0002] # YI SYLLABLE CIE
-A2B5 ; [.35D1.0020.0002] # YI SYLLABLE CIEP
-A2B6 ; [.35D2.0020.0002] # YI SYLLABLE CAT
-A2B7 ; [.35D3.0020.0002] # YI SYLLABLE CAX
-A2B8 ; [.35D4.0020.0002] # YI SYLLABLE CA
-A2B9 ; [.35D5.0020.0002] # YI SYLLABLE CAP
-A2BA ; [.35D6.0020.0002] # YI SYLLABLE CUOX
-A2BB ; [.35D7.0020.0002] # YI SYLLABLE CUO
-A2BC ; [.35D8.0020.0002] # YI SYLLABLE CUOP
-A2BD ; [.35D9.0020.0002] # YI SYLLABLE COT
-A2BE ; [.35DA.0020.0002] # YI SYLLABLE COX
-A2BF ; [.35DB.0020.0002] # YI SYLLABLE CO
-A2C0 ; [.35DC.0020.0002] # YI SYLLABLE COP
-A2C1 ; [.35DD.0020.0002] # YI SYLLABLE CEX
-A2C2 ; [.35DE.0020.0002] # YI SYLLABLE CE
-A2C3 ; [.35DF.0020.0002] # YI SYLLABLE CEP
-A2C4 ; [.35E0.0020.0002] # YI SYLLABLE CUT
-A2C5 ; [.35E1.0020.0002] # YI SYLLABLE CUX
-A2C6 ; [.35E2.0020.0002] # YI SYLLABLE CU
-A2C7 ; [.35E3.0020.0002] # YI SYLLABLE CUP
-A2C8 ; [.35E4.0020.0002] # YI SYLLABLE CURX
-A2C9 ; [.35E5.0020.0002] # YI SYLLABLE CUR
-A2CA ; [.35E6.0020.0002] # YI SYLLABLE CYT
-A2CB ; [.35E7.0020.0002] # YI SYLLABLE CYX
-A2CC ; [.35E8.0020.0002] # YI SYLLABLE CY
-A2CD ; [.35E9.0020.0002] # YI SYLLABLE CYP
-A2CE ; [.35EA.0020.0002] # YI SYLLABLE CYRX
-A2CF ; [.35EB.0020.0002] # YI SYLLABLE CYR
-A2D0 ; [.35EC.0020.0002] # YI SYLLABLE ZZIT
-A2D1 ; [.35ED.0020.0002] # YI SYLLABLE ZZIX
-A2D2 ; [.35EE.0020.0002] # YI SYLLABLE ZZI
-A2D3 ; [.35EF.0020.0002] # YI SYLLABLE ZZIP
-A2D4 ; [.35F0.0020.0002] # YI SYLLABLE ZZIET
-A2D5 ; [.35F1.0020.0002] # YI SYLLABLE ZZIEX
-A2D6 ; [.35F2.0020.0002] # YI SYLLABLE ZZIE
-A2D7 ; [.35F3.0020.0002] # YI SYLLABLE ZZIEP
-A2D8 ; [.35F4.0020.0002] # YI SYLLABLE ZZAT
-A2D9 ; [.35F5.0020.0002] # YI SYLLABLE ZZAX
-A2DA ; [.35F6.0020.0002] # YI SYLLABLE ZZA
-A2DB ; [.35F7.0020.0002] # YI SYLLABLE ZZAP
-A2DC ; [.35F8.0020.0002] # YI SYLLABLE ZZOX
-A2DD ; [.35F9.0020.0002] # YI SYLLABLE ZZO
-A2DE ; [.35FA.0020.0002] # YI SYLLABLE ZZOP
-A2DF ; [.35FB.0020.0002] # YI SYLLABLE ZZEX
-A2E0 ; [.35FC.0020.0002] # YI SYLLABLE ZZE
-A2E1 ; [.35FD.0020.0002] # YI SYLLABLE ZZEP
-A2E2 ; [.35FE.0020.0002] # YI SYLLABLE ZZUX
-A2E3 ; [.35FF.0020.0002] # YI SYLLABLE ZZU
-A2E4 ; [.3600.0020.0002] # YI SYLLABLE ZZUP
-A2E5 ; [.3601.0020.0002] # YI SYLLABLE ZZURX
-A2E6 ; [.3602.0020.0002] # YI SYLLABLE ZZUR
-A2E7 ; [.3603.0020.0002] # YI SYLLABLE ZZYT
-A2E8 ; [.3604.0020.0002] # YI SYLLABLE ZZYX
-A2E9 ; [.3605.0020.0002] # YI SYLLABLE ZZY
-A2EA ; [.3606.0020.0002] # YI SYLLABLE ZZYP
-A2EB ; [.3607.0020.0002] # YI SYLLABLE ZZYRX
-A2EC ; [.3608.0020.0002] # YI SYLLABLE ZZYR
-A2ED ; [.3609.0020.0002] # YI SYLLABLE NZIT
-A2EE ; [.360A.0020.0002] # YI SYLLABLE NZIX
-A2EF ; [.360B.0020.0002] # YI SYLLABLE NZI
-A2F0 ; [.360C.0020.0002] # YI SYLLABLE NZIP
-A2F1 ; [.360D.0020.0002] # YI SYLLABLE NZIEX
-A2F2 ; [.360E.0020.0002] # YI SYLLABLE NZIE
-A2F3 ; [.360F.0020.0002] # YI SYLLABLE NZIEP
-A2F4 ; [.3610.0020.0002] # YI SYLLABLE NZAT
-A2F5 ; [.3611.0020.0002] # YI SYLLABLE NZAX
-A2F6 ; [.3612.0020.0002] # YI SYLLABLE NZA
-A2F7 ; [.3613.0020.0002] # YI SYLLABLE NZAP
-A2F8 ; [.3614.0020.0002] # YI SYLLABLE NZUOX
-A2F9 ; [.3615.0020.0002] # YI SYLLABLE NZUO
-A2FA ; [.3616.0020.0002] # YI SYLLABLE NZOX
-A2FB ; [.3617.0020.0002] # YI SYLLABLE NZOP
-A2FC ; [.3618.0020.0002] # YI SYLLABLE NZEX
-A2FD ; [.3619.0020.0002] # YI SYLLABLE NZE
-A2FE ; [.361A.0020.0002] # YI SYLLABLE NZUX
-A2FF ; [.361B.0020.0002] # YI SYLLABLE NZU
-A300 ; [.361C.0020.0002] # YI SYLLABLE NZUP
-A301 ; [.361D.0020.0002] # YI SYLLABLE NZURX
-A302 ; [.361E.0020.0002] # YI SYLLABLE NZUR
-A303 ; [.361F.0020.0002] # YI SYLLABLE NZYT
-A304 ; [.3620.0020.0002] # YI SYLLABLE NZYX
-A305 ; [.3621.0020.0002] # YI SYLLABLE NZY
-A306 ; [.3622.0020.0002] # YI SYLLABLE NZYP
-A307 ; [.3623.0020.0002] # YI SYLLABLE NZYRX
-A308 ; [.3624.0020.0002] # YI SYLLABLE NZYR
-A309 ; [.3625.0020.0002] # YI SYLLABLE SIT
-A30A ; [.3626.0020.0002] # YI SYLLABLE SIX
-A30B ; [.3627.0020.0002] # YI SYLLABLE SI
-A30C ; [.3628.0020.0002] # YI SYLLABLE SIP
-A30D ; [.3629.0020.0002] # YI SYLLABLE SIEX
-A30E ; [.362A.0020.0002] # YI SYLLABLE SIE
-A30F ; [.362B.0020.0002] # YI SYLLABLE SIEP
-A310 ; [.362C.0020.0002] # YI SYLLABLE SAT
-A311 ; [.362D.0020.0002] # YI SYLLABLE SAX
-A312 ; [.362E.0020.0002] # YI SYLLABLE SA
-A313 ; [.362F.0020.0002] # YI SYLLABLE SAP
-A314 ; [.3630.0020.0002] # YI SYLLABLE SUOX
-A315 ; [.3631.0020.0002] # YI SYLLABLE SUO
-A316 ; [.3632.0020.0002] # YI SYLLABLE SUOP
-A317 ; [.3633.0020.0002] # YI SYLLABLE SOT
-A318 ; [.3634.0020.0002] # YI SYLLABLE SOX
-A319 ; [.3635.0020.0002] # YI SYLLABLE SO
-A31A ; [.3636.0020.0002] # YI SYLLABLE SOP
-A31B ; [.3637.0020.0002] # YI SYLLABLE SEX
-A31C ; [.3638.0020.0002] # YI SYLLABLE SE
-A31D ; [.3639.0020.0002] # YI SYLLABLE SEP
-A31E ; [.363A.0020.0002] # YI SYLLABLE SUT
-A31F ; [.363B.0020.0002] # YI SYLLABLE SUX
-A320 ; [.363C.0020.0002] # YI SYLLABLE SU
-A321 ; [.363D.0020.0002] # YI SYLLABLE SUP
-A322 ; [.363E.0020.0002] # YI SYLLABLE SURX
-A323 ; [.363F.0020.0002] # YI SYLLABLE SUR
-A324 ; [.3640.0020.0002] # YI SYLLABLE SYT
-A325 ; [.3641.0020.0002] # YI SYLLABLE SYX
-A326 ; [.3642.0020.0002] # YI SYLLABLE SY
-A327 ; [.3643.0020.0002] # YI SYLLABLE SYP
-A328 ; [.3644.0020.0002] # YI SYLLABLE SYRX
-A329 ; [.3645.0020.0002] # YI SYLLABLE SYR
-A32A ; [.3646.0020.0002] # YI SYLLABLE SSIT
-A32B ; [.3647.0020.0002] # YI SYLLABLE SSIX
-A32C ; [.3648.0020.0002] # YI SYLLABLE SSI
-A32D ; [.3649.0020.0002] # YI SYLLABLE SSIP
-A32E ; [.364A.0020.0002] # YI SYLLABLE SSIEX
-A32F ; [.364B.0020.0002] # YI SYLLABLE SSIE
-A330 ; [.364C.0020.0002] # YI SYLLABLE SSIEP
-A331 ; [.364D.0020.0002] # YI SYLLABLE SSAT
-A332 ; [.364E.0020.0002] # YI SYLLABLE SSAX
-A333 ; [.364F.0020.0002] # YI SYLLABLE SSA
-A334 ; [.3650.0020.0002] # YI SYLLABLE SSAP
-A335 ; [.3651.0020.0002] # YI SYLLABLE SSOT
-A336 ; [.3652.0020.0002] # YI SYLLABLE SSOX
-A337 ; [.3653.0020.0002] # YI SYLLABLE SSO
-A338 ; [.3654.0020.0002] # YI SYLLABLE SSOP
-A339 ; [.3655.0020.0002] # YI SYLLABLE SSEX
-A33A ; [.3656.0020.0002] # YI SYLLABLE SSE
-A33B ; [.3657.0020.0002] # YI SYLLABLE SSEP
-A33C ; [.3658.0020.0002] # YI SYLLABLE SSUT
-A33D ; [.3659.0020.0002] # YI SYLLABLE SSUX
-A33E ; [.365A.0020.0002] # YI SYLLABLE SSU
-A33F ; [.365B.0020.0002] # YI SYLLABLE SSUP
-A340 ; [.365C.0020.0002] # YI SYLLABLE SSYT
-A341 ; [.365D.0020.0002] # YI SYLLABLE SSYX
-A342 ; [.365E.0020.0002] # YI SYLLABLE SSY
-A343 ; [.365F.0020.0002] # YI SYLLABLE SSYP
-A344 ; [.3660.0020.0002] # YI SYLLABLE SSYRX
-A345 ; [.3661.0020.0002] # YI SYLLABLE SSYR
-A346 ; [.3662.0020.0002] # YI SYLLABLE ZHAT
-A347 ; [.3663.0020.0002] # YI SYLLABLE ZHAX
-A348 ; [.3664.0020.0002] # YI SYLLABLE ZHA
-A349 ; [.3665.0020.0002] # YI SYLLABLE ZHAP
-A34A ; [.3666.0020.0002] # YI SYLLABLE ZHUOX
-A34B ; [.3667.0020.0002] # YI SYLLABLE ZHUO
-A34C ; [.3668.0020.0002] # YI SYLLABLE ZHUOP
-A34D ; [.3669.0020.0002] # YI SYLLABLE ZHOT
-A34E ; [.366A.0020.0002] # YI SYLLABLE ZHOX
-A34F ; [.366B.0020.0002] # YI SYLLABLE ZHO
-A350 ; [.366C.0020.0002] # YI SYLLABLE ZHOP
-A351 ; [.366D.0020.0002] # YI SYLLABLE ZHET
-A352 ; [.366E.0020.0002] # YI SYLLABLE ZHEX
-A353 ; [.366F.0020.0002] # YI SYLLABLE ZHE
-A354 ; [.3670.0020.0002] # YI SYLLABLE ZHEP
-A355 ; [.3671.0020.0002] # YI SYLLABLE ZHUT
-A356 ; [.3672.0020.0002] # YI SYLLABLE ZHUX
-A357 ; [.3673.0020.0002] # YI SYLLABLE ZHU
-A358 ; [.3674.0020.0002] # YI SYLLABLE ZHUP
-A359 ; [.3675.0020.0002] # YI SYLLABLE ZHURX
-A35A ; [.3676.0020.0002] # YI SYLLABLE ZHUR
-A35B ; [.3677.0020.0002] # YI SYLLABLE ZHYT
-A35C ; [.3678.0020.0002] # YI SYLLABLE ZHYX
-A35D ; [.3679.0020.0002] # YI SYLLABLE ZHY
-A35E ; [.367A.0020.0002] # YI SYLLABLE ZHYP
-A35F ; [.367B.0020.0002] # YI SYLLABLE ZHYRX
-A360 ; [.367C.0020.0002] # YI SYLLABLE ZHYR
-A361 ; [.367D.0020.0002] # YI SYLLABLE CHAT
-A362 ; [.367E.0020.0002] # YI SYLLABLE CHAX
-A363 ; [.367F.0020.0002] # YI SYLLABLE CHA
-A364 ; [.3680.0020.0002] # YI SYLLABLE CHAP
-A365 ; [.3681.0020.0002] # YI SYLLABLE CHUOT
-A366 ; [.3682.0020.0002] # YI SYLLABLE CHUOX
-A367 ; [.3683.0020.0002] # YI SYLLABLE CHUO
-A368 ; [.3684.0020.0002] # YI SYLLABLE CHUOP
-A369 ; [.3685.0020.0002] # YI SYLLABLE CHOT
-A36A ; [.3686.0020.0002] # YI SYLLABLE CHOX
-A36B ; [.3687.0020.0002] # YI SYLLABLE CHO
-A36C ; [.3688.0020.0002] # YI SYLLABLE CHOP
-A36D ; [.3689.0020.0002] # YI SYLLABLE CHET
-A36E ; [.368A.0020.0002] # YI SYLLABLE CHEX
-A36F ; [.368B.0020.0002] # YI SYLLABLE CHE
-A370 ; [.368C.0020.0002] # YI SYLLABLE CHEP
-A371 ; [.368D.0020.0002] # YI SYLLABLE CHUX
-A372 ; [.368E.0020.0002] # YI SYLLABLE CHU
-A373 ; [.368F.0020.0002] # YI SYLLABLE CHUP
-A374 ; [.3690.0020.0002] # YI SYLLABLE CHURX
-A375 ; [.3691.0020.0002] # YI SYLLABLE CHUR
-A376 ; [.3692.0020.0002] # YI SYLLABLE CHYT
-A377 ; [.3693.0020.0002] # YI SYLLABLE CHYX
-A378 ; [.3694.0020.0002] # YI SYLLABLE CHY
-A379 ; [.3695.0020.0002] # YI SYLLABLE CHYP
-A37A ; [.3696.0020.0002] # YI SYLLABLE CHYRX
-A37B ; [.3697.0020.0002] # YI SYLLABLE CHYR
-A37C ; [.3698.0020.0002] # YI SYLLABLE RRAX
-A37D ; [.3699.0020.0002] # YI SYLLABLE RRA
-A37E ; [.369A.0020.0002] # YI SYLLABLE RRUOX
-A37F ; [.369B.0020.0002] # YI SYLLABLE RRUO
-A380 ; [.369C.0020.0002] # YI SYLLABLE RROT
-A381 ; [.369D.0020.0002] # YI SYLLABLE RROX
-A382 ; [.369E.0020.0002] # YI SYLLABLE RRO
-A383 ; [.369F.0020.0002] # YI SYLLABLE RROP
-A384 ; [.36A0.0020.0002] # YI SYLLABLE RRET
-A385 ; [.36A1.0020.0002] # YI SYLLABLE RREX
-A386 ; [.36A2.0020.0002] # YI SYLLABLE RRE
-A387 ; [.36A3.0020.0002] # YI SYLLABLE RREP
-A388 ; [.36A4.0020.0002] # YI SYLLABLE RRUT
-A389 ; [.36A5.0020.0002] # YI SYLLABLE RRUX
-A38A ; [.36A6.0020.0002] # YI SYLLABLE RRU
-A38B ; [.36A7.0020.0002] # YI SYLLABLE RRUP
-A38C ; [.36A8.0020.0002] # YI SYLLABLE RRURX
-A38D ; [.36A9.0020.0002] # YI SYLLABLE RRUR
-A38E ; [.36AA.0020.0002] # YI SYLLABLE RRYT
-A38F ; [.36AB.0020.0002] # YI SYLLABLE RRYX
-A390 ; [.36AC.0020.0002] # YI SYLLABLE RRY
-A391 ; [.36AD.0020.0002] # YI SYLLABLE RRYP
-A392 ; [.36AE.0020.0002] # YI SYLLABLE RRYRX
-A393 ; [.36AF.0020.0002] # YI SYLLABLE RRYR
-A394 ; [.36B0.0020.0002] # YI SYLLABLE NRAT
-A395 ; [.36B1.0020.0002] # YI SYLLABLE NRAX
-A396 ; [.36B2.0020.0002] # YI SYLLABLE NRA
-A397 ; [.36B3.0020.0002] # YI SYLLABLE NRAP
-A398 ; [.36B4.0020.0002] # YI SYLLABLE NROX
-A399 ; [.36B5.0020.0002] # YI SYLLABLE NRO
-A39A ; [.36B6.0020.0002] # YI SYLLABLE NROP
-A39B ; [.36B7.0020.0002] # YI SYLLABLE NRET
-A39C ; [.36B8.0020.0002] # YI SYLLABLE NREX
-A39D ; [.36B9.0020.0002] # YI SYLLABLE NRE
-A39E ; [.36BA.0020.0002] # YI SYLLABLE NREP
-A39F ; [.36BB.0020.0002] # YI SYLLABLE NRUT
-A3A0 ; [.36BC.0020.0002] # YI SYLLABLE NRUX
-A3A1 ; [.36BD.0020.0002] # YI SYLLABLE NRU
-A3A2 ; [.36BE.0020.0002] # YI SYLLABLE NRUP
-A3A3 ; [.36BF.0020.0002] # YI SYLLABLE NRURX
-A3A4 ; [.36C0.0020.0002] # YI SYLLABLE NRUR
-A3A5 ; [.36C1.0020.0002] # YI SYLLABLE NRYT
-A3A6 ; [.36C2.0020.0002] # YI SYLLABLE NRYX
-A3A7 ; [.36C3.0020.0002] # YI SYLLABLE NRY
-A3A8 ; [.36C4.0020.0002] # YI SYLLABLE NRYP
-A3A9 ; [.36C5.0020.0002] # YI SYLLABLE NRYRX
-A3AA ; [.36C6.0020.0002] # YI SYLLABLE NRYR
-A3AB ; [.36C7.0020.0002] # YI SYLLABLE SHAT
-A3AC ; [.36C8.0020.0002] # YI SYLLABLE SHAX
-A3AD ; [.36C9.0020.0002] # YI SYLLABLE SHA
-A3AE ; [.36CA.0020.0002] # YI SYLLABLE SHAP
-A3AF ; [.36CB.0020.0002] # YI SYLLABLE SHUOX
-A3B0 ; [.36CC.0020.0002] # YI SYLLABLE SHUO
-A3B1 ; [.36CD.0020.0002] # YI SYLLABLE SHUOP
-A3B2 ; [.36CE.0020.0002] # YI SYLLABLE SHOT
-A3B3 ; [.36CF.0020.0002] # YI SYLLABLE SHOX
-A3B4 ; [.36D0.0020.0002] # YI SYLLABLE SHO
-A3B5 ; [.36D1.0020.0002] # YI SYLLABLE SHOP
-A3B6 ; [.36D2.0020.0002] # YI SYLLABLE SHET
-A3B7 ; [.36D3.0020.0002] # YI SYLLABLE SHEX
-A3B8 ; [.36D4.0020.0002] # YI SYLLABLE SHE
-A3B9 ; [.36D5.0020.0002] # YI SYLLABLE SHEP
-A3BA ; [.36D6.0020.0002] # YI SYLLABLE SHUT
-A3BB ; [.36D7.0020.0002] # YI SYLLABLE SHUX
-A3BC ; [.36D8.0020.0002] # YI SYLLABLE SHU
-A3BD ; [.36D9.0020.0002] # YI SYLLABLE SHUP
-A3BE ; [.36DA.0020.0002] # YI SYLLABLE SHURX
-A3BF ; [.36DB.0020.0002] # YI SYLLABLE SHUR
-A3C0 ; [.36DC.0020.0002] # YI SYLLABLE SHYT
-A3C1 ; [.36DD.0020.0002] # YI SYLLABLE SHYX
-A3C2 ; [.36DE.0020.0002] # YI SYLLABLE SHY
-A3C3 ; [.36DF.0020.0002] # YI SYLLABLE SHYP
-A3C4 ; [.36E0.0020.0002] # YI SYLLABLE SHYRX
-A3C5 ; [.36E1.0020.0002] # YI SYLLABLE SHYR
-A3C6 ; [.36E2.0020.0002] # YI SYLLABLE RAT
-A3C7 ; [.36E3.0020.0002] # YI SYLLABLE RAX
-A3C8 ; [.36E4.0020.0002] # YI SYLLABLE RA
-A3C9 ; [.36E5.0020.0002] # YI SYLLABLE RAP
-A3CA ; [.36E6.0020.0002] # YI SYLLABLE RUOX
-A3CB ; [.36E7.0020.0002] # YI SYLLABLE RUO
-A3CC ; [.36E8.0020.0002] # YI SYLLABLE RUOP
-A3CD ; [.36E9.0020.0002] # YI SYLLABLE ROT
-A3CE ; [.36EA.0020.0002] # YI SYLLABLE ROX
-A3CF ; [.36EB.0020.0002] # YI SYLLABLE RO
-A3D0 ; [.36EC.0020.0002] # YI SYLLABLE ROP
-A3D1 ; [.36ED.0020.0002] # YI SYLLABLE REX
-A3D2 ; [.36EE.0020.0002] # YI SYLLABLE RE
-A3D3 ; [.36EF.0020.0002] # YI SYLLABLE REP
-A3D4 ; [.36F0.0020.0002] # YI SYLLABLE RUT
-A3D5 ; [.36F1.0020.0002] # YI SYLLABLE RUX
-A3D6 ; [.36F2.0020.0002] # YI SYLLABLE RU
-A3D7 ; [.36F3.0020.0002] # YI SYLLABLE RUP
-A3D8 ; [.36F4.0020.0002] # YI SYLLABLE RURX
-A3D9 ; [.36F5.0020.0002] # YI SYLLABLE RUR
-A3DA ; [.36F6.0020.0002] # YI SYLLABLE RYT
-A3DB ; [.36F7.0020.0002] # YI SYLLABLE RYX
-A3DC ; [.36F8.0020.0002] # YI SYLLABLE RY
-A3DD ; [.36F9.0020.0002] # YI SYLLABLE RYP
-A3DE ; [.36FA.0020.0002] # YI SYLLABLE RYRX
-A3DF ; [.36FB.0020.0002] # YI SYLLABLE RYR
-A3E0 ; [.36FC.0020.0002] # YI SYLLABLE JIT
-A3E1 ; [.36FD.0020.0002] # YI SYLLABLE JIX
-A3E2 ; [.36FE.0020.0002] # YI SYLLABLE JI
-A3E3 ; [.36FF.0020.0002] # YI SYLLABLE JIP
-A3E4 ; [.3700.0020.0002] # YI SYLLABLE JIET
-A3E5 ; [.3701.0020.0002] # YI SYLLABLE JIEX
-A3E6 ; [.3702.0020.0002] # YI SYLLABLE JIE
-A3E7 ; [.3703.0020.0002] # YI SYLLABLE JIEP
-A3E8 ; [.3704.0020.0002] # YI SYLLABLE JUOT
-A3E9 ; [.3705.0020.0002] # YI SYLLABLE JUOX
-A3EA ; [.3706.0020.0002] # YI SYLLABLE JUO
-A3EB ; [.3707.0020.0002] # YI SYLLABLE JUOP
-A3EC ; [.3708.0020.0002] # YI SYLLABLE JOT
-A3ED ; [.3709.0020.0002] # YI SYLLABLE JOX
-A3EE ; [.370A.0020.0002] # YI SYLLABLE JO
-A3EF ; [.370B.0020.0002] # YI SYLLABLE JOP
-A3F0 ; [.370C.0020.0002] # YI SYLLABLE JUT
-A3F1 ; [.370D.0020.0002] # YI SYLLABLE JUX
-A3F2 ; [.370E.0020.0002] # YI SYLLABLE JU
-A3F3 ; [.370F.0020.0002] # YI SYLLABLE JUP
-A3F4 ; [.3710.0020.0002] # YI SYLLABLE JURX
-A3F5 ; [.3711.0020.0002] # YI SYLLABLE JUR
-A3F6 ; [.3712.0020.0002] # YI SYLLABLE JYT
-A3F7 ; [.3713.0020.0002] # YI SYLLABLE JYX
-A3F8 ; [.3714.0020.0002] # YI SYLLABLE JY
-A3F9 ; [.3715.0020.0002] # YI SYLLABLE JYP
-A3FA ; [.3716.0020.0002] # YI SYLLABLE JYRX
-A3FB ; [.3717.0020.0002] # YI SYLLABLE JYR
-A3FC ; [.3718.0020.0002] # YI SYLLABLE QIT
-A3FD ; [.3719.0020.0002] # YI SYLLABLE QIX
-A3FE ; [.371A.0020.0002] # YI SYLLABLE QI
-A3FF ; [.371B.0020.0002] # YI SYLLABLE QIP
-A400 ; [.371C.0020.0002] # YI SYLLABLE QIET
-A401 ; [.371D.0020.0002] # YI SYLLABLE QIEX
-A402 ; [.371E.0020.0002] # YI SYLLABLE QIE
-A403 ; [.371F.0020.0002] # YI SYLLABLE QIEP
-A404 ; [.3720.0020.0002] # YI SYLLABLE QUOT
-A405 ; [.3721.0020.0002] # YI SYLLABLE QUOX
-A406 ; [.3722.0020.0002] # YI SYLLABLE QUO
-A407 ; [.3723.0020.0002] # YI SYLLABLE QUOP
-A408 ; [.3724.0020.0002] # YI SYLLABLE QOT
-A409 ; [.3725.0020.0002] # YI SYLLABLE QOX
-A40A ; [.3726.0020.0002] # YI SYLLABLE QO
-A40B ; [.3727.0020.0002] # YI SYLLABLE QOP
-A40C ; [.3728.0020.0002] # YI SYLLABLE QUT
-A40D ; [.3729.0020.0002] # YI SYLLABLE QUX
-A40E ; [.372A.0020.0002] # YI SYLLABLE QU
-A40F ; [.372B.0020.0002] # YI SYLLABLE QUP
-A410 ; [.372C.0020.0002] # YI SYLLABLE QURX
-A411 ; [.372D.0020.0002] # YI SYLLABLE QUR
-A412 ; [.372E.0020.0002] # YI SYLLABLE QYT
-A413 ; [.372F.0020.0002] # YI SYLLABLE QYX
-A414 ; [.3730.0020.0002] # YI SYLLABLE QY
-A415 ; [.3731.0020.0002] # YI SYLLABLE QYP
-A416 ; [.3732.0020.0002] # YI SYLLABLE QYRX
-A417 ; [.3733.0020.0002] # YI SYLLABLE QYR
-A418 ; [.3734.0020.0002] # YI SYLLABLE JJIT
-A419 ; [.3735.0020.0002] # YI SYLLABLE JJIX
-A41A ; [.3736.0020.0002] # YI SYLLABLE JJI
-A41B ; [.3737.0020.0002] # YI SYLLABLE JJIP
-A41C ; [.3738.0020.0002] # YI SYLLABLE JJIET
-A41D ; [.3739.0020.0002] # YI SYLLABLE JJIEX
-A41E ; [.373A.0020.0002] # YI SYLLABLE JJIE
-A41F ; [.373B.0020.0002] # YI SYLLABLE JJIEP
-A420 ; [.373C.0020.0002] # YI SYLLABLE JJUOX
-A421 ; [.373D.0020.0002] # YI SYLLABLE JJUO
-A422 ; [.373E.0020.0002] # YI SYLLABLE JJUOP
-A423 ; [.373F.0020.0002] # YI SYLLABLE JJOT
-A424 ; [.3740.0020.0002] # YI SYLLABLE JJOX
-A425 ; [.3741.0020.0002] # YI SYLLABLE JJO
-A426 ; [.3742.0020.0002] # YI SYLLABLE JJOP
-A427 ; [.3743.0020.0002] # YI SYLLABLE JJUT
-A428 ; [.3744.0020.0002] # YI SYLLABLE JJUX
-A429 ; [.3745.0020.0002] # YI SYLLABLE JJU
-A42A ; [.3746.0020.0002] # YI SYLLABLE JJUP
-A42B ; [.3747.0020.0002] # YI SYLLABLE JJURX
-A42C ; [.3748.0020.0002] # YI SYLLABLE JJUR
-A42D ; [.3749.0020.0002] # YI SYLLABLE JJYT
-A42E ; [.374A.0020.0002] # YI SYLLABLE JJYX
-A42F ; [.374B.0020.0002] # YI SYLLABLE JJY
-A430 ; [.374C.0020.0002] # YI SYLLABLE JJYP
-A431 ; [.374D.0020.0002] # YI SYLLABLE NJIT
-A432 ; [.374E.0020.0002] # YI SYLLABLE NJIX
-A433 ; [.374F.0020.0002] # YI SYLLABLE NJI
-A434 ; [.3750.0020.0002] # YI SYLLABLE NJIP
-A435 ; [.3751.0020.0002] # YI SYLLABLE NJIET
-A436 ; [.3752.0020.0002] # YI SYLLABLE NJIEX
-A437 ; [.3753.0020.0002] # YI SYLLABLE NJIE
-A438 ; [.3754.0020.0002] # YI SYLLABLE NJIEP
-A439 ; [.3755.0020.0002] # YI SYLLABLE NJUOX
-A43A ; [.3756.0020.0002] # YI SYLLABLE NJUO
-A43B ; [.3757.0020.0002] # YI SYLLABLE NJOT
-A43C ; [.3758.0020.0002] # YI SYLLABLE NJOX
-A43D ; [.3759.0020.0002] # YI SYLLABLE NJO
-A43E ; [.375A.0020.0002] # YI SYLLABLE NJOP
-A43F ; [.375B.0020.0002] # YI SYLLABLE NJUX
-A440 ; [.375C.0020.0002] # YI SYLLABLE NJU
-A441 ; [.375D.0020.0002] # YI SYLLABLE NJUP
-A442 ; [.375E.0020.0002] # YI SYLLABLE NJURX
-A443 ; [.375F.0020.0002] # YI SYLLABLE NJUR
-A444 ; [.3760.0020.0002] # YI SYLLABLE NJYT
-A445 ; [.3761.0020.0002] # YI SYLLABLE NJYX
-A446 ; [.3762.0020.0002] # YI SYLLABLE NJY
-A447 ; [.3763.0020.0002] # YI SYLLABLE NJYP
-A448 ; [.3764.0020.0002] # YI SYLLABLE NJYRX
-A449 ; [.3765.0020.0002] # YI SYLLABLE NJYR
-A44A ; [.3766.0020.0002] # YI SYLLABLE NYIT
-A44B ; [.3767.0020.0002] # YI SYLLABLE NYIX
-A44C ; [.3768.0020.0002] # YI SYLLABLE NYI
-A44D ; [.3769.0020.0002] # YI SYLLABLE NYIP
-A44E ; [.376A.0020.0002] # YI SYLLABLE NYIET
-A44F ; [.376B.0020.0002] # YI SYLLABLE NYIEX
-A450 ; [.376C.0020.0002] # YI SYLLABLE NYIE
-A451 ; [.376D.0020.0002] # YI SYLLABLE NYIEP
-A452 ; [.376E.0020.0002] # YI SYLLABLE NYUOX
-A453 ; [.376F.0020.0002] # YI SYLLABLE NYUO
-A454 ; [.3770.0020.0002] # YI SYLLABLE NYUOP
-A455 ; [.3771.0020.0002] # YI SYLLABLE NYOT
-A456 ; [.3772.0020.0002] # YI SYLLABLE NYOX
-A457 ; [.3773.0020.0002] # YI SYLLABLE NYO
-A458 ; [.3774.0020.0002] # YI SYLLABLE NYOP
-A459 ; [.3775.0020.0002] # YI SYLLABLE NYUT
-A45A ; [.3776.0020.0002] # YI SYLLABLE NYUX
-A45B ; [.3777.0020.0002] # YI SYLLABLE NYU
-A45C ; [.3778.0020.0002] # YI SYLLABLE NYUP
-A45D ; [.3779.0020.0002] # YI SYLLABLE XIT
-A45E ; [.377A.0020.0002] # YI SYLLABLE XIX
-A45F ; [.377B.0020.0002] # YI SYLLABLE XI
-A460 ; [.377C.0020.0002] # YI SYLLABLE XIP
-A461 ; [.377D.0020.0002] # YI SYLLABLE XIET
-A462 ; [.377E.0020.0002] # YI SYLLABLE XIEX
-A463 ; [.377F.0020.0002] # YI SYLLABLE XIE
-A464 ; [.3780.0020.0002] # YI SYLLABLE XIEP
-A465 ; [.3781.0020.0002] # YI SYLLABLE XUOX
-A466 ; [.3782.0020.0002] # YI SYLLABLE XUO
-A467 ; [.3783.0020.0002] # YI SYLLABLE XOT
-A468 ; [.3784.0020.0002] # YI SYLLABLE XOX
-A469 ; [.3785.0020.0002] # YI SYLLABLE XO
-A46A ; [.3786.0020.0002] # YI SYLLABLE XOP
-A46B ; [.3787.0020.0002] # YI SYLLABLE XYT
-A46C ; [.3788.0020.0002] # YI SYLLABLE XYX
-A46D ; [.3789.0020.0002] # YI SYLLABLE XY
-A46E ; [.378A.0020.0002] # YI SYLLABLE XYP
-A46F ; [.378B.0020.0002] # YI SYLLABLE XYRX
-A470 ; [.378C.0020.0002] # YI SYLLABLE XYR
-A471 ; [.378D.0020.0002] # YI SYLLABLE YIT
-A472 ; [.378E.0020.0002] # YI SYLLABLE YIX
-A473 ; [.378F.0020.0002] # YI SYLLABLE YI
-A474 ; [.3790.0020.0002] # YI SYLLABLE YIP
-A475 ; [.3791.0020.0002] # YI SYLLABLE YIET
-A476 ; [.3792.0020.0002] # YI SYLLABLE YIEX
-A477 ; [.3793.0020.0002] # YI SYLLABLE YIE
-A478 ; [.3794.0020.0002] # YI SYLLABLE YIEP
-A479 ; [.3795.0020.0002] # YI SYLLABLE YUOT
-A47A ; [.3796.0020.0002] # YI SYLLABLE YUOX
-A47B ; [.3797.0020.0002] # YI SYLLABLE YUO
-A47C ; [.3798.0020.0002] # YI SYLLABLE YUOP
-A47D ; [.3799.0020.0002] # YI SYLLABLE YOT
-A47E ; [.379A.0020.0002] # YI SYLLABLE YOX
-A47F ; [.379B.0020.0002] # YI SYLLABLE YO
-A480 ; [.379C.0020.0002] # YI SYLLABLE YOP
-A481 ; [.379D.0020.0002] # YI SYLLABLE YUT
-A482 ; [.379E.0020.0002] # YI SYLLABLE YUX
-A483 ; [.379F.0020.0002] # YI SYLLABLE YU
-A484 ; [.37A0.0020.0002] # YI SYLLABLE YUP
-A485 ; [.37A1.0020.0002] # YI SYLLABLE YURX
-A486 ; [.37A2.0020.0002] # YI SYLLABLE YUR
-A487 ; [.37A3.0020.0002] # YI SYLLABLE YYT
-A488 ; [.37A4.0020.0002] # YI SYLLABLE YYX
-A489 ; [.37A5.0020.0002] # YI SYLLABLE YY
-A48A ; [.37A6.0020.0002] # YI SYLLABLE YYP
-A48B ; [.37A7.0020.0002] # YI SYLLABLE YYRX
-A48C ; [.37A8.0020.0002] # YI SYLLABLE YYR
-A4F8 ; [.37A9.0020.0002] # LISU LETTER TONE MYA TI
-A4F9 ; [.37AA.0020.0002] # LISU LETTER TONE NA PO
-A4FA ; [.37AB.0020.0002] # LISU LETTER TONE MYA CYA
-A4FB ; [.37AC.0020.0002] # LISU LETTER TONE MYA BO
-A4FD ; [.37AD.0020.0002] # LISU LETTER TONE MYA JEU
-A4FC ; [.37AE.0020.0002] # LISU LETTER TONE MYA NA
-A4D0 ; [.37AF.0020.0002] # LISU LETTER BA
-A4D1 ; [.37B0.0020.0002] # LISU LETTER PA
-A4D2 ; [.37B1.0020.0002] # LISU LETTER PHA
-A4D3 ; [.37B2.0020.0002] # LISU LETTER DA
-A4D4 ; [.37B3.0020.0002] # LISU LETTER TA
-A4D5 ; [.37B4.0020.0002] # LISU LETTER THA
-A4D6 ; [.37B5.0020.0002] # LISU LETTER GA
-A4D7 ; [.37B6.0020.0002] # LISU LETTER KA
-A4D8 ; [.37B7.0020.0002] # LISU LETTER KHA
-A4D9 ; [.37B8.0020.0002] # LISU LETTER JA
-A4DA ; [.37B9.0020.0002] # LISU LETTER CA
-A4DB ; [.37BA.0020.0002] # LISU LETTER CHA
-A4DC ; [.37BB.0020.0002] # LISU LETTER DZA
-A4DD ; [.37BC.0020.0002] # LISU LETTER TSA
-A4DE ; [.37BD.0020.0002] # LISU LETTER TSHA
-A4DF ; [.37BE.0020.0002] # LISU LETTER MA
-A4E0 ; [.37BF.0020.0002] # LISU LETTER NA
-A4E1 ; [.37C0.0020.0002] # LISU LETTER LA
-A4E2 ; [.37C1.0020.0002] # LISU LETTER SA
-A4E3 ; [.37C2.0020.0002] # LISU LETTER ZHA
-A4E4 ; [.37C3.0020.0002] # LISU LETTER ZA
-A4E5 ; [.37C4.0020.0002] # LISU LETTER NGA
-A4E6 ; [.37C5.0020.0002] # LISU LETTER HA
-A4E7 ; [.37C6.0020.0002] # LISU LETTER XA
-A4E8 ; [.37C7.0020.0002] # LISU LETTER HHA
-A4E9 ; [.37C8.0020.0002] # LISU LETTER FA
-A4EB ; [.37C9.0020.0002] # LISU LETTER SHA
-A4ED ; [.37CA.0020.0002] # LISU LETTER GHA
-A4EA ; [.37CB.0020.0002] # LISU LETTER WA
-A4EC ; [.37CC.0020.0002] # LISU LETTER YA
-A4EE ; [.37CD.0020.0002] # LISU LETTER A
-A4EF ; [.37CE.0020.0002] # LISU LETTER AE
-A4F0 ; [.37CF.0020.0002] # LISU LETTER E
-A4F1 ; [.37D0.0020.0002] # LISU LETTER EU
-A4F2 ; [.37D1.0020.0002] # LISU LETTER I
-A4F3 ; [.37D2.0020.0002] # LISU LETTER O
-A4F4 ; [.37D3.0020.0002] # LISU LETTER U
-A4F5 ; [.37D4.0020.0002] # LISU LETTER UE
-A4F6 ; [.37D5.0020.0002] # LISU LETTER UH
-A4F7 ; [.37D6.0020.0002] # LISU LETTER OE
-16F00 ; [.37D7.0020.0002] # MIAO LETTER PA
-16F01 ; [.37D8.0020.0002] # MIAO LETTER BA
-16F02 ; [.37D9.0020.0002] # MIAO LETTER YI PA
-16F03 ; [.37DA.0020.0002] # MIAO LETTER PLA
-16F04 ; [.37DB.0020.0002] # MIAO LETTER MA
-16F06 ; [.37DB.0020.0004] # MIAO LETTER ARCHAIC MA
-16F05 ; [.37DC.0020.0002] # MIAO LETTER MHA
-16F07 ; [.37DD.0020.0002] # MIAO LETTER FA
-16F08 ; [.37DE.0020.0002] # MIAO LETTER VA
-16F09 ; [.37DF.0020.0002] # MIAO LETTER VFA
-16F0A ; [.37E0.0020.0002] # MIAO LETTER TA
-16F0B ; [.37E1.0020.0002] # MIAO LETTER DA
-16F0C ; [.37E2.0020.0002] # MIAO LETTER YI TTA
-16F0D ; [.37E3.0020.0002] # MIAO LETTER YI TA
-16F0E ; [.37E4.0020.0002] # MIAO LETTER TTA
-16F0F ; [.37E5.0020.0002] # MIAO LETTER DDA
-16F10 ; [.37E6.0020.0002] # MIAO LETTER NA
-16F13 ; [.37E6.0020.0004] # MIAO LETTER ARCHAIC NA
-16F11 ; [.37E7.0020.0002] # MIAO LETTER NHA
-16F12 ; [.37E8.0020.0002] # MIAO LETTER YI NNA
-16F14 ; [.37E9.0020.0002] # MIAO LETTER NNA
-16F15 ; [.37EA.0020.0002] # MIAO LETTER NNHA
-16F16 ; [.37EB.0020.0002] # MIAO LETTER LA
-16F17 ; [.37EC.0020.0002] # MIAO LETTER LYA
-16F18 ; [.37ED.0020.0002] # MIAO LETTER LHA
-16F19 ; [.37EE.0020.0002] # MIAO LETTER LHYA
-16F1A ; [.37EF.0020.0002] # MIAO LETTER TLHA
-16F1B ; [.37F0.0020.0002] # MIAO LETTER DLHA
-16F1C ; [.37F1.0020.0002] # MIAO LETTER TLHYA
-16F1D ; [.37F2.0020.0002] # MIAO LETTER DLHYA
-16F1E ; [.37F3.0020.0002] # MIAO LETTER KA
-16F1F ; [.37F4.0020.0002] # MIAO LETTER GA
-16F20 ; [.37F5.0020.0002] # MIAO LETTER YI KA
-16F21 ; [.37F6.0020.0002] # MIAO LETTER QA
-16F22 ; [.37F7.0020.0002] # MIAO LETTER QGA
-16F23 ; [.37F8.0020.0002] # MIAO LETTER NGA
-16F25 ; [.37F8.0020.0004] # MIAO LETTER ARCHAIC NGA
-16F24 ; [.37F9.0020.0002] # MIAO LETTER NGHA
-16F26 ; [.37FA.0020.0002] # MIAO LETTER HA
-16F27 ; [.37FB.0020.0002] # MIAO LETTER XA
-16F28 ; [.37FC.0020.0002] # MIAO LETTER GHA
-16F29 ; [.37FD.0020.0002] # MIAO LETTER GHHA
-16F2A ; [.37FE.0020.0002] # MIAO LETTER TSSA
-16F2B ; [.37FF.0020.0002] # MIAO LETTER DZZA
-16F2C ; [.3800.0020.0002] # MIAO LETTER NYA
-16F2D ; [.3801.0020.0002] # MIAO LETTER NYHA
-16F2E ; [.3802.0020.0002] # MIAO LETTER TSHA
-16F2F ; [.3803.0020.0002] # MIAO LETTER DZHA
-16F30 ; [.3804.0020.0002] # MIAO LETTER YI TSHA
-16F31 ; [.3805.0020.0002] # MIAO LETTER YI DZHA
-16F32 ; [.3806.0020.0002] # MIAO LETTER REFORMED TSHA
-16F33 ; [.3807.0020.0002] # MIAO LETTER SHA
-16F34 ; [.3808.0020.0002] # MIAO LETTER SSA
-16F35 ; [.3809.0020.0002] # MIAO LETTER ZHA
-16F36 ; [.380A.0020.0002] # MIAO LETTER ZSHA
-16F37 ; [.380B.0020.0002] # MIAO LETTER TSA
-16F38 ; [.380C.0020.0002] # MIAO LETTER DZA
-16F39 ; [.380D.0020.0002] # MIAO LETTER YI TSA
-16F3A ; [.380E.0020.0002] # MIAO LETTER SA
-16F3B ; [.380F.0020.0002] # MIAO LETTER ZA
-16F3C ; [.3810.0020.0002] # MIAO LETTER ZSA
-16F3D ; [.3811.0020.0002] # MIAO LETTER ZZA
-16F3F ; [.3811.0020.0004] # MIAO LETTER ARCHAIC ZZA
-16F3E ; [.3812.0020.0002] # MIAO LETTER ZZSA
-16F40 ; [.3813.0020.0002] # MIAO LETTER ZZYA
-16F41 ; [.3814.0020.0002] # MIAO LETTER ZZSYA
-16F42 ; [.3815.0020.0002] # MIAO LETTER WA
-16F43 ; [.3816.0020.0002] # MIAO LETTER AH
-16F44 ; [.3817.0020.0002] # MIAO LETTER HHA
-16F50 ; [.3818.0020.0002] # MIAO LETTER NASALIZATION
-16F51 ; [.3819.0020.0002] # MIAO SIGN ASPIRATION
-16F52 ; [.381A.0020.0002] # MIAO SIGN REFORMED VOICING
-16F53 ; [.381B.0020.0002] # MIAO SIGN REFORMED ASPIRATION
-16F54 ; [.381C.0020.0002] # MIAO VOWEL SIGN A
-16F55 ; [.381D.0020.0002] # MIAO VOWEL SIGN AA
-16F56 ; [.381E.0020.0002] # MIAO VOWEL SIGN AHH
-16F57 ; [.381F.0020.0002] # MIAO VOWEL SIGN AN
-16F58 ; [.3820.0020.0002] # MIAO VOWEL SIGN ANG
-16F59 ; [.3821.0020.0002] # MIAO VOWEL SIGN O
-16F5A ; [.3822.0020.0002] # MIAO VOWEL SIGN OO
-16F5B ; [.3823.0020.0002] # MIAO VOWEL SIGN WO
-16F5C ; [.3824.0020.0002] # MIAO VOWEL SIGN W
-16F5D ; [.3825.0020.0002] # MIAO VOWEL SIGN E
-16F5E ; [.3826.0020.0002] # MIAO VOWEL SIGN EN
-16F5F ; [.3827.0020.0002] # MIAO VOWEL SIGN ENG
-16F60 ; [.3828.0020.0002] # MIAO VOWEL SIGN OEY
-16F61 ; [.3829.0020.0002] # MIAO VOWEL SIGN I
-16F62 ; [.382A.0020.0002] # MIAO VOWEL SIGN IA
-16F63 ; [.382B.0020.0002] # MIAO VOWEL SIGN IAN
-16F64 ; [.382C.0020.0002] # MIAO VOWEL SIGN IANG
-16F65 ; [.382D.0020.0002] # MIAO VOWEL SIGN IO
-16F66 ; [.382E.0020.0002] # MIAO VOWEL SIGN IE
-16F67 ; [.382F.0020.0002] # MIAO VOWEL SIGN II
-16F68 ; [.3830.0020.0002] # MIAO VOWEL SIGN IU
-16F69 ; [.3831.0020.0002] # MIAO VOWEL SIGN ING
-16F6A ; [.3832.0020.0002] # MIAO VOWEL SIGN U
-16F6B ; [.3833.0020.0002] # MIAO VOWEL SIGN UA
-16F6C ; [.3834.0020.0002] # MIAO VOWEL SIGN UAN
-16F6D ; [.3835.0020.0002] # MIAO VOWEL SIGN UANG
-16F6E ; [.3836.0020.0002] # MIAO VOWEL SIGN UU
-16F6F ; [.3837.0020.0002] # MIAO VOWEL SIGN UEI
-16F70 ; [.3838.0020.0002] # MIAO VOWEL SIGN UNG
-16F71 ; [.3839.0020.0002] # MIAO VOWEL SIGN Y
-16F72 ; [.383A.0020.0002] # MIAO VOWEL SIGN YI
-16F73 ; [.383B.0020.0002] # MIAO VOWEL SIGN AE
-16F74 ; [.383C.0020.0002] # MIAO VOWEL SIGN AEE
-16F75 ; [.383D.0020.0002] # MIAO VOWEL SIGN ERR
-16F76 ; [.383E.0020.0002] # MIAO VOWEL SIGN ROUNDED ERR
-16F77 ; [.383F.0020.0002] # MIAO VOWEL SIGN ER
-16F78 ; [.3840.0020.0002] # MIAO VOWEL SIGN ROUNDED ER
-16F79 ; [.3841.0020.0002] # MIAO VOWEL SIGN AI
-16F7A ; [.3842.0020.0002] # MIAO VOWEL SIGN EI
-16F7B ; [.3843.0020.0002] # MIAO VOWEL SIGN AU
-16F7C ; [.3844.0020.0002] # MIAO VOWEL SIGN OU
-16F7D ; [.3845.0020.0002] # MIAO VOWEL SIGN N
-16F7E ; [.3846.0020.0002] # MIAO VOWEL SIGN NG
-16F8F ; [.3847.0020.0002] # MIAO TONE RIGHT
-16F90 ; [.3848.0020.0002] # MIAO TONE TOP RIGHT
-16F91 ; [.3849.0020.0002] # MIAO TONE ABOVE
-16F92 ; [.384A.0020.0002] # MIAO TONE BELOW
-16F93 ; [.384B.0020.0002] # MIAO LETTER TONE-2
-16F94 ; [.384C.0020.0002] # MIAO LETTER TONE-3
-16F95 ; [.384D.0020.0002] # MIAO LETTER TONE-4
-16F96 ; [.384E.0020.0002] # MIAO LETTER TONE-5
-16F97 ; [.384F.0020.0002] # MIAO LETTER TONE-6
-16F98 ; [.3850.0020.0002] # MIAO LETTER TONE-7
-16F99 ; [.3851.0020.0002] # MIAO LETTER TONE-8
-16F9A ; [.3852.0020.0002] # MIAO LETTER REFORMED TONE-1
-16F9B ; [.3853.0020.0002] # MIAO LETTER REFORMED TONE-2
-16F9C ; [.3854.0020.0002] # MIAO LETTER REFORMED TONE-4
-16F9D ; [.3855.0020.0002] # MIAO LETTER REFORMED TONE-5
-16F9E ; [.3856.0020.0002] # MIAO LETTER REFORMED TONE-6
-16F9F ; [.3857.0020.0002] # MIAO LETTER REFORMED TONE-8
-10280 ; [.3858.0020.0002] # LYCIAN LETTER A
-10281 ; [.3859.0020.0002] # LYCIAN LETTER E
-10282 ; [.385A.0020.0002] # LYCIAN LETTER B
-10283 ; [.385B.0020.0002] # LYCIAN LETTER BH
-10284 ; [.385C.0020.0002] # LYCIAN LETTER G
-10285 ; [.385D.0020.0002] # LYCIAN LETTER D
-10286 ; [.385E.0020.0002] # LYCIAN LETTER I
-10287 ; [.385F.0020.0002] # LYCIAN LETTER W
-10288 ; [.3860.0020.0002] # LYCIAN LETTER Z
-10289 ; [.3861.0020.0002] # LYCIAN LETTER TH
-1028A ; [.3862.0020.0002] # LYCIAN LETTER J
-1028B ; [.3863.0020.0002] # LYCIAN LETTER K
-1028C ; [.3864.0020.0002] # LYCIAN LETTER Q
-1028D ; [.3865.0020.0002] # LYCIAN LETTER L
-1028E ; [.3866.0020.0002] # LYCIAN LETTER M
-1028F ; [.3867.0020.0002] # LYCIAN LETTER N
-10290 ; [.3868.0020.0002] # LYCIAN LETTER MM
-10291 ; [.3869.0020.0002] # LYCIAN LETTER NN
-10292 ; [.386A.0020.0002] # LYCIAN LETTER U
-10293 ; [.386B.0020.0002] # LYCIAN LETTER P
-10294 ; [.386C.0020.0002] # LYCIAN LETTER KK
-10295 ; [.386D.0020.0002] # LYCIAN LETTER R
-10296 ; [.386E.0020.0002] # LYCIAN LETTER S
-10297 ; [.386F.0020.0002] # LYCIAN LETTER T
-10298 ; [.3870.0020.0002] # LYCIAN LETTER TT
-10299 ; [.3871.0020.0002] # LYCIAN LETTER AN
-1029A ; [.3872.0020.0002] # LYCIAN LETTER EN
-1029B ; [.3873.0020.0002] # LYCIAN LETTER H
-1029C ; [.3874.0020.0002] # LYCIAN LETTER X
-102A0 ; [.3875.0020.0002] # CARIAN LETTER A
-102A1 ; [.3876.0020.0002] # CARIAN LETTER P2
-102A2 ; [.3877.0020.0002] # CARIAN LETTER D
-102A3 ; [.3878.0020.0002] # CARIAN LETTER L
-102A4 ; [.3879.0020.0002] # CARIAN LETTER UUU
-102A5 ; [.387A.0020.0002] # CARIAN LETTER R
-102A6 ; [.387B.0020.0002] # CARIAN LETTER LD
-102A7 ; [.387C.0020.0002] # CARIAN LETTER A2
-102A8 ; [.387D.0020.0002] # CARIAN LETTER Q
-102A9 ; [.387E.0020.0002] # CARIAN LETTER B
-102AA ; [.387F.0020.0002] # CARIAN LETTER M
-102AB ; [.3880.0020.0002] # CARIAN LETTER O
-102AC ; [.3881.0020.0002] # CARIAN LETTER D2
-102AD ; [.3882.0020.0002] # CARIAN LETTER T
-102AE ; [.3883.0020.0002] # CARIAN LETTER SH
-102AF ; [.3884.0020.0002] # CARIAN LETTER SH2
-102B0 ; [.3885.0020.0002] # CARIAN LETTER S
-102B1 ; [.3886.0020.0002] # CARIAN LETTER C-18
-102B2 ; [.3887.0020.0002] # CARIAN LETTER U
-102B3 ; [.3888.0020.0002] # CARIAN LETTER NN
-102B4 ; [.3889.0020.0002] # CARIAN LETTER X
-102B5 ; [.388A.0020.0002] # CARIAN LETTER N
-102B6 ; [.388B.0020.0002] # CARIAN LETTER TT2
-102B7 ; [.388C.0020.0002] # CARIAN LETTER P
-102B8 ; [.388D.0020.0002] # CARIAN LETTER SS
-102B9 ; [.388E.0020.0002] # CARIAN LETTER I
-102BA ; [.388F.0020.0002] # CARIAN LETTER E
-102BB ; [.3890.0020.0002] # CARIAN LETTER UUUU
-102BC ; [.3891.0020.0002] # CARIAN LETTER K
-102BD ; [.3892.0020.0002] # CARIAN LETTER K2
-102BE ; [.3893.0020.0002] # CARIAN LETTER ND
-102BF ; [.3894.0020.0002] # CARIAN LETTER UU
-102C0 ; [.3895.0020.0002] # CARIAN LETTER G
-102C1 ; [.3896.0020.0002] # CARIAN LETTER G2
-102C2 ; [.3897.0020.0002] # CARIAN LETTER ST
-102C3 ; [.3898.0020.0002] # CARIAN LETTER ST2
-102C4 ; [.3899.0020.0002] # CARIAN LETTER NG
-102C5 ; [.389A.0020.0002] # CARIAN LETTER II
-102C6 ; [.389B.0020.0002] # CARIAN LETTER C-39
-102C7 ; [.389C.0020.0002] # CARIAN LETTER TT
-102C8 ; [.389D.0020.0002] # CARIAN LETTER UUU2
-102C9 ; [.389E.0020.0002] # CARIAN LETTER RR
-102CA ; [.389F.0020.0002] # CARIAN LETTER MB
-102CB ; [.38A0.0020.0002] # CARIAN LETTER MB2
-102CC ; [.38A1.0020.0002] # CARIAN LETTER MB3
-102CD ; [.38A2.0020.0002] # CARIAN LETTER MB4
-102CE ; [.38A3.0020.0002] # CARIAN LETTER LD2
-102CF ; [.38A4.0020.0002] # CARIAN LETTER E2
-102D0 ; [.38A5.0020.0002] # CARIAN LETTER UUU3
-10920 ; [.38A6.0020.0002] # LYDIAN LETTER A
-10921 ; [.38A7.0020.0002] # LYDIAN LETTER B
-10922 ; [.38A8.0020.0002] # LYDIAN LETTER G
-10923 ; [.38A9.0020.0002] # LYDIAN LETTER D
-10924 ; [.38AA.0020.0002] # LYDIAN LETTER E
-10925 ; [.38AB.0020.0002] # LYDIAN LETTER V
-10926 ; [.38AC.0020.0002] # LYDIAN LETTER I
-10927 ; [.38AD.0020.0002] # LYDIAN LETTER Y
-10928 ; [.38AE.0020.0002] # LYDIAN LETTER K
-10929 ; [.38AF.0020.0002] # LYDIAN LETTER L
-1092A ; [.38B0.0020.0002] # LYDIAN LETTER M
-1092B ; [.38B1.0020.0002] # LYDIAN LETTER N
-1092C ; [.38B2.0020.0002] # LYDIAN LETTER O
-1092D ; [.38B3.0020.0002] # LYDIAN LETTER R
-1092E ; [.38B4.0020.0002] # LYDIAN LETTER SS
-1092F ; [.38B5.0020.0002] # LYDIAN LETTER T
-10930 ; [.38B6.0020.0002] # LYDIAN LETTER U
-10931 ; [.38B7.0020.0002] # LYDIAN LETTER F
-10932 ; [.38B8.0020.0002] # LYDIAN LETTER Q
-10933 ; [.38B9.0020.0002] # LYDIAN LETTER S
-10934 ; [.38BA.0020.0002] # LYDIAN LETTER TT
-10935 ; [.38BB.0020.0002] # LYDIAN LETTER AN
-10936 ; [.38BC.0020.0002] # LYDIAN LETTER EN
-10937 ; [.38BD.0020.0002] # LYDIAN LETTER LY
-10938 ; [.38BE.0020.0002] # LYDIAN LETTER NN
-10939 ; [.38BF.0020.0002] # LYDIAN LETTER C
-10300 ; [.38C0.0020.0002] # OLD ITALIC LETTER A
-10301 ; [.38C1.0020.0002] # OLD ITALIC LETTER BE
-10302 ; [.38C2.0020.0002] # OLD ITALIC LETTER KE
-10303 ; [.38C3.0020.0002] # OLD ITALIC LETTER DE
-10304 ; [.38C4.0020.0002] # OLD ITALIC LETTER E
-10305 ; [.38C5.0020.0002] # OLD ITALIC LETTER VE
-10306 ; [.38C6.0020.0002] # OLD ITALIC LETTER ZE
-10307 ; [.38C7.0020.0002] # OLD ITALIC LETTER HE
-10308 ; [.38C8.0020.0002] # OLD ITALIC LETTER THE
-10309 ; [.38C9.0020.0002] # OLD ITALIC LETTER I
-1030A ; [.38CA.0020.0002] # OLD ITALIC LETTER KA
-1030B ; [.38CB.0020.0002] # OLD ITALIC LETTER EL
-1030C ; [.38CC.0020.0002] # OLD ITALIC LETTER EM
-1030D ; [.38CD.0020.0002] # OLD ITALIC LETTER EN
-1030E ; [.38CE.0020.0002] # OLD ITALIC LETTER ESH
-1030F ; [.38CF.0020.0002] # OLD ITALIC LETTER O
-10310 ; [.38D0.0020.0002] # OLD ITALIC LETTER PE
-10311 ; [.38D1.0020.0002] # OLD ITALIC LETTER SHE
-10312 ; [.38D2.0020.0002] # OLD ITALIC LETTER KU
-10313 ; [.38D3.0020.0002] # OLD ITALIC LETTER ER
-10314 ; [.38D4.0020.0002] # OLD ITALIC LETTER ES
-10315 ; [.38D5.0020.0002] # OLD ITALIC LETTER TE
-10316 ; [.38D6.0020.0002] # OLD ITALIC LETTER U
-10317 ; [.38D7.0020.0002] # OLD ITALIC LETTER EKS
-10318 ; [.38D8.0020.0002] # OLD ITALIC LETTER PHE
-10319 ; [.38D9.0020.0002] # OLD ITALIC LETTER KHE
-1031A ; [.38DA.0020.0002] # OLD ITALIC LETTER EF
-1031B ; [.38DB.0020.0002] # OLD ITALIC LETTER ERS
-1031C ; [.38DC.0020.0002] # OLD ITALIC LETTER CHE
-1031D ; [.38DD.0020.0002] # OLD ITALIC LETTER II
-1031E ; [.38DE.0020.0002] # OLD ITALIC LETTER UU
-10330 ; [.38DF.0020.0002] # GOTHIC LETTER AHSA
-10331 ; [.38E0.0020.0002] # GOTHIC LETTER BAIRKAN
-10332 ; [.38E1.0020.0002] # GOTHIC LETTER GIBA
-10333 ; [.38E2.0020.0002] # GOTHIC LETTER DAGS
-10334 ; [.38E3.0020.0002] # GOTHIC LETTER AIHVUS
-10335 ; [.38E4.0020.0002] # GOTHIC LETTER QAIRTHRA
-10336 ; [.38E5.0020.0002] # GOTHIC LETTER IUJA
-10337 ; [.38E6.0020.0002] # GOTHIC LETTER HAGL
-10338 ; [.38E7.0020.0002] # GOTHIC LETTER THIUTH
-10339 ; [.38E8.0020.0002] # GOTHIC LETTER EIS
-1033A ; [.38E9.0020.0002] # GOTHIC LETTER KUSMA
-1033B ; [.38EA.0020.0002] # GOTHIC LETTER LAGUS
-1033C ; [.38EB.0020.0002] # GOTHIC LETTER MANNA
-1033D ; [.38EC.0020.0002] # GOTHIC LETTER NAUTHS
-1033E ; [.38ED.0020.0002] # GOTHIC LETTER JER
-1033F ; [.38EE.0020.0002] # GOTHIC LETTER URUS
-10340 ; [.38EF.0020.0002] # GOTHIC LETTER PAIRTHRA
-10341 ; [.38F0.0020.0002] # GOTHIC LETTER NINETY
-10342 ; [.38F1.0020.0002] # GOTHIC LETTER RAIDA
-10343 ; [.38F2.0020.0002] # GOTHIC LETTER SAUIL
-10344 ; [.38F3.0020.0002] # GOTHIC LETTER TEIWS
-10345 ; [.38F4.0020.0002] # GOTHIC LETTER WINJA
-10346 ; [.38F5.0020.0002] # GOTHIC LETTER FAIHU
-10347 ; [.38F6.0020.0002] # GOTHIC LETTER IGGWS
-10348 ; [.38F7.0020.0002] # GOTHIC LETTER HWAIR
-10349 ; [.38F8.0020.0002] # GOTHIC LETTER OTHAL
-1034A ; [.38F9.0020.0002] # GOTHIC LETTER NINE HUNDRED
-10428 ; [.38FA.0020.0002] # DESERET SMALL LETTER LONG I
-10400 ; [.38FA.0020.0008] # DESERET CAPITAL LETTER LONG I
-10429 ; [.38FB.0020.0002] # DESERET SMALL LETTER LONG E
-10401 ; [.38FB.0020.0008] # DESERET CAPITAL LETTER LONG E
-1042A ; [.38FC.0020.0002] # DESERET SMALL LETTER LONG A
-10402 ; [.38FC.0020.0008] # DESERET CAPITAL LETTER LONG A
-1042B ; [.38FD.0020.0002] # DESERET SMALL LETTER LONG AH
-10403 ; [.38FD.0020.0008] # DESERET CAPITAL LETTER LONG AH
-1042C ; [.38FE.0020.0002] # DESERET SMALL LETTER LONG O
-10404 ; [.38FE.0020.0008] # DESERET CAPITAL LETTER LONG O
-1042D ; [.38FF.0020.0002] # DESERET SMALL LETTER LONG OO
-10405 ; [.38FF.0020.0008] # DESERET CAPITAL LETTER LONG OO
-1042E ; [.3900.0020.0002] # DESERET SMALL LETTER SHORT I
-10406 ; [.3900.0020.0008] # DESERET CAPITAL LETTER SHORT I
-1042F ; [.3901.0020.0002] # DESERET SMALL LETTER SHORT E
-10407 ; [.3901.0020.0008] # DESERET CAPITAL LETTER SHORT E
-10430 ; [.3902.0020.0002] # DESERET SMALL LETTER SHORT A
-10408 ; [.3902.0020.0008] # DESERET CAPITAL LETTER SHORT A
-10431 ; [.3903.0020.0002] # DESERET SMALL LETTER SHORT AH
-10409 ; [.3903.0020.0008] # DESERET CAPITAL LETTER SHORT AH
-10432 ; [.3904.0020.0002] # DESERET SMALL LETTER SHORT O
-1040A ; [.3904.0020.0008] # DESERET CAPITAL LETTER SHORT O
-10433 ; [.3905.0020.0002] # DESERET SMALL LETTER SHORT OO
-1040B ; [.3905.0020.0008] # DESERET CAPITAL LETTER SHORT OO
-10434 ; [.3906.0020.0002] # DESERET SMALL LETTER AY
-1040C ; [.3906.0020.0008] # DESERET CAPITAL LETTER AY
-10435 ; [.3907.0020.0002] # DESERET SMALL LETTER OW
-1040D ; [.3907.0020.0008] # DESERET CAPITAL LETTER OW
-10436 ; [.3908.0020.0002] # DESERET SMALL LETTER WU
-1040E ; [.3908.0020.0008] # DESERET CAPITAL LETTER WU
-10437 ; [.3909.0020.0002] # DESERET SMALL LETTER YEE
-1040F ; [.3909.0020.0008] # DESERET CAPITAL LETTER YEE
-10438 ; [.390A.0020.0002] # DESERET SMALL LETTER H
-10410 ; [.390A.0020.0008] # DESERET CAPITAL LETTER H
-10439 ; [.390B.0020.0002] # DESERET SMALL LETTER PEE
-10411 ; [.390B.0020.0008] # DESERET CAPITAL LETTER PEE
-1043A ; [.390C.0020.0002] # DESERET SMALL LETTER BEE
-10412 ; [.390C.0020.0008] # DESERET CAPITAL LETTER BEE
-1043B ; [.390D.0020.0002] # DESERET SMALL LETTER TEE
-10413 ; [.390D.0020.0008] # DESERET CAPITAL LETTER TEE
-1043C ; [.390E.0020.0002] # DESERET SMALL LETTER DEE
-10414 ; [.390E.0020.0008] # DESERET CAPITAL LETTER DEE
-1043D ; [.390F.0020.0002] # DESERET SMALL LETTER CHEE
-10415 ; [.390F.0020.0008] # DESERET CAPITAL LETTER CHEE
-1043E ; [.3910.0020.0002] # DESERET SMALL LETTER JEE
-10416 ; [.3910.0020.0008] # DESERET CAPITAL LETTER JEE
-1043F ; [.3911.0020.0002] # DESERET SMALL LETTER KAY
-10417 ; [.3911.0020.0008] # DESERET CAPITAL LETTER KAY
-10440 ; [.3912.0020.0002] # DESERET SMALL LETTER GAY
-10418 ; [.3912.0020.0008] # DESERET CAPITAL LETTER GAY
-10441 ; [.3913.0020.0002] # DESERET SMALL LETTER EF
-10419 ; [.3913.0020.0008] # DESERET CAPITAL LETTER EF
-10442 ; [.3914.0020.0002] # DESERET SMALL LETTER VEE
-1041A ; [.3914.0020.0008] # DESERET CAPITAL LETTER VEE
-10443 ; [.3915.0020.0002] # DESERET SMALL LETTER ETH
-1041B ; [.3915.0020.0008] # DESERET CAPITAL LETTER ETH
-10444 ; [.3916.0020.0002] # DESERET SMALL LETTER THEE
-1041C ; [.3916.0020.0008] # DESERET CAPITAL LETTER THEE
-10445 ; [.3917.0020.0002] # DESERET SMALL LETTER ES
-1041D ; [.3917.0020.0008] # DESERET CAPITAL LETTER ES
-10446 ; [.3918.0020.0002] # DESERET SMALL LETTER ZEE
-1041E ; [.3918.0020.0008] # DESERET CAPITAL LETTER ZEE
-10447 ; [.3919.0020.0002] # DESERET SMALL LETTER ESH
-1041F ; [.3919.0020.0008] # DESERET CAPITAL LETTER ESH
-10448 ; [.391A.0020.0002] # DESERET SMALL LETTER ZHEE
-10420 ; [.391A.0020.0008] # DESERET CAPITAL LETTER ZHEE
-10449 ; [.391B.0020.0002] # DESERET SMALL LETTER ER
-10421 ; [.391B.0020.0008] # DESERET CAPITAL LETTER ER
-1044A ; [.391C.0020.0002] # DESERET SMALL LETTER EL
-10422 ; [.391C.0020.0008] # DESERET CAPITAL LETTER EL
-1044B ; [.391D.0020.0002] # DESERET SMALL LETTER EM
-10423 ; [.391D.0020.0008] # DESERET CAPITAL LETTER EM
-1044C ; [.391E.0020.0002] # DESERET SMALL LETTER EN
-10424 ; [.391E.0020.0008] # DESERET CAPITAL LETTER EN
-1044D ; [.391F.0020.0002] # DESERET SMALL LETTER ENG
-10425 ; [.391F.0020.0008] # DESERET CAPITAL LETTER ENG
-1044E ; [.3920.0020.0002] # DESERET SMALL LETTER OI
-10426 ; [.3920.0020.0008] # DESERET CAPITAL LETTER OI
-1044F ; [.3921.0020.0002] # DESERET SMALL LETTER EW
-10427 ; [.3921.0020.0008] # DESERET CAPITAL LETTER EW
-10450 ; [.3922.0020.0002] # SHAVIAN LETTER PEEP
-10451 ; [.3923.0020.0002] # SHAVIAN LETTER TOT
-10452 ; [.3924.0020.0002] # SHAVIAN LETTER KICK
-10453 ; [.3925.0020.0002] # SHAVIAN LETTER FEE
-10454 ; [.3926.0020.0002] # SHAVIAN LETTER THIGH
-10455 ; [.3927.0020.0002] # SHAVIAN LETTER SO
-10456 ; [.3928.0020.0002] # SHAVIAN LETTER SURE
-10457 ; [.3929.0020.0002] # SHAVIAN LETTER CHURCH
-10458 ; [.392A.0020.0002] # SHAVIAN LETTER YEA
-10459 ; [.392B.0020.0002] # SHAVIAN LETTER HUNG
-1045A ; [.392C.0020.0002] # SHAVIAN LETTER BIB
-1045B ; [.392D.0020.0002] # SHAVIAN LETTER DEAD
-1045C ; [.392E.0020.0002] # SHAVIAN LETTER GAG
-1045D ; [.392F.0020.0002] # SHAVIAN LETTER VOW
-1045E ; [.3930.0020.0002] # SHAVIAN LETTER THEY
-1045F ; [.3931.0020.0002] # SHAVIAN LETTER ZOO
-10460 ; [.3932.0020.0002] # SHAVIAN LETTER MEASURE
-10461 ; [.3933.0020.0002] # SHAVIAN LETTER JUDGE
-10462 ; [.3934.0020.0002] # SHAVIAN LETTER WOE
-10463 ; [.3935.0020.0002] # SHAVIAN LETTER HA-HA
-10464 ; [.3936.0020.0002] # SHAVIAN LETTER LOLL
-10465 ; [.3937.0020.0002] # SHAVIAN LETTER MIME
-10466 ; [.3938.0020.0002] # SHAVIAN LETTER IF
-10467 ; [.3939.0020.0002] # SHAVIAN LETTER EGG
-10468 ; [.393A.0020.0002] # SHAVIAN LETTER ASH
-10469 ; [.393B.0020.0002] # SHAVIAN LETTER ADO
-1046A ; [.393C.0020.0002] # SHAVIAN LETTER ON
-1046B ; [.393D.0020.0002] # SHAVIAN LETTER WOOL
-1046C ; [.393E.0020.0002] # SHAVIAN LETTER OUT
-1046D ; [.393F.0020.0002] # SHAVIAN LETTER AH
-1046E ; [.3940.0020.0002] # SHAVIAN LETTER ROAR
-1046F ; [.3941.0020.0002] # SHAVIAN LETTER NUN
-10470 ; [.3942.0020.0002] # SHAVIAN LETTER EAT
-10471 ; [.3943.0020.0002] # SHAVIAN LETTER AGE
-10472 ; [.3944.0020.0002] # SHAVIAN LETTER ICE
-10473 ; [.3945.0020.0002] # SHAVIAN LETTER UP
-10474 ; [.3946.0020.0002] # SHAVIAN LETTER OAK
-10475 ; [.3947.0020.0002] # SHAVIAN LETTER OOZE
-10476 ; [.3948.0020.0002] # SHAVIAN LETTER OIL
-10477 ; [.3949.0020.0002] # SHAVIAN LETTER AWE
-10478 ; [.394A.0020.0002] # SHAVIAN LETTER ARE
-10479 ; [.394B.0020.0002] # SHAVIAN LETTER OR
-1047A ; [.394C.0020.0002] # SHAVIAN LETTER AIR
-1047B ; [.394D.0020.0002] # SHAVIAN LETTER ERR
-1047C ; [.394E.0020.0002] # SHAVIAN LETTER ARRAY
-1047D ; [.394F.0020.0002] # SHAVIAN LETTER EAR
-1047E ; [.3950.0020.0002] # SHAVIAN LETTER IAN
-1047F ; [.3951.0020.0002] # SHAVIAN LETTER YEW
-10480 ; [.3952.0020.0002] # OSMANYA LETTER ALEF
-10481 ; [.3953.0020.0002] # OSMANYA LETTER BA
-10482 ; [.3954.0020.0002] # OSMANYA LETTER TA
-10483 ; [.3955.0020.0002] # OSMANYA LETTER JA
-10484 ; [.3956.0020.0002] # OSMANYA LETTER XA
-10485 ; [.3957.0020.0002] # OSMANYA LETTER KHA
-10486 ; [.3958.0020.0002] # OSMANYA LETTER DEEL
-10487 ; [.3959.0020.0002] # OSMANYA LETTER RA
-10488 ; [.395A.0020.0002] # OSMANYA LETTER SA
-10489 ; [.395B.0020.0002] # OSMANYA LETTER SHIIN
-1048A ; [.395C.0020.0002] # OSMANYA LETTER DHA
-1048B ; [.395D.0020.0002] # OSMANYA LETTER CAYN
-1048C ; [.395E.0020.0002] # OSMANYA LETTER GA
-1048D ; [.395F.0020.0002] # OSMANYA LETTER FA
-1048E ; [.3960.0020.0002] # OSMANYA LETTER QAAF
-1048F ; [.3961.0020.0002] # OSMANYA LETTER KAAF
-10490 ; [.3962.0020.0002] # OSMANYA LETTER LAAN
-10491 ; [.3963.0020.0002] # OSMANYA LETTER MIIN
-10492 ; [.3964.0020.0002] # OSMANYA LETTER NUUN
-10493 ; [.3965.0020.0002] # OSMANYA LETTER WAW
-10494 ; [.3966.0020.0002] # OSMANYA LETTER HA
-10495 ; [.3967.0020.0002] # OSMANYA LETTER YA
-10496 ; [.3968.0020.0002] # OSMANYA LETTER A
-10497 ; [.3969.0020.0002] # OSMANYA LETTER E
-10498 ; [.396A.0020.0002] # OSMANYA LETTER I
-10499 ; [.396B.0020.0002] # OSMANYA LETTER O
-1049A ; [.396C.0020.0002] # OSMANYA LETTER U
-1049B ; [.396D.0020.0002] # OSMANYA LETTER AA
-1049C ; [.396E.0020.0002] # OSMANYA LETTER EE
-1049D ; [.396F.0020.0002] # OSMANYA LETTER OO
-110D0 ; [.3970.0020.0002] # SORA SOMPENG LETTER SAH
-110D1 ; [.3971.0020.0002] # SORA SOMPENG LETTER TAH
-110D2 ; [.3972.0020.0002] # SORA SOMPENG LETTER BAH
-110D3 ; [.3973.0020.0002] # SORA SOMPENG LETTER CAH
-110D4 ; [.3974.0020.0002] # SORA SOMPENG LETTER DAH
-110D5 ; [.3975.0020.0002] # SORA SOMPENG LETTER GAH
-110D6 ; [.3976.0020.0002] # SORA SOMPENG LETTER MAH
-110D7 ; [.3977.0020.0002] # SORA SOMPENG LETTER NGAH
-110D8 ; [.3978.0020.0002] # SORA SOMPENG LETTER LAH
-110D9 ; [.3979.0020.0002] # SORA SOMPENG LETTER NAH
-110DA ; [.397A.0020.0002] # SORA SOMPENG LETTER VAH
-110DB ; [.397B.0020.0002] # SORA SOMPENG LETTER PAH
-110DC ; [.397C.0020.0002] # SORA SOMPENG LETTER YAH
-110DD ; [.397D.0020.0002] # SORA SOMPENG LETTER RAH
-110DE ; [.397E.0020.0002] # SORA SOMPENG LETTER HAH
-110DF ; [.397F.0020.0002] # SORA SOMPENG LETTER KAH
-110E0 ; [.3980.0020.0002] # SORA SOMPENG LETTER JAH
-110E1 ; [.3981.0020.0002] # SORA SOMPENG LETTER NYAH
-110E2 ; [.3982.0020.0002] # SORA SOMPENG LETTER AH
-110E3 ; [.3983.0020.0002] # SORA SOMPENG LETTER EEH
-110E4 ; [.3984.0020.0002] # SORA SOMPENG LETTER IH
-110E5 ; [.3985.0020.0002] # SORA SOMPENG LETTER UH
-110E6 ; [.3986.0020.0002] # SORA SOMPENG LETTER OH
-110E7 ; [.3987.0020.0002] # SORA SOMPENG LETTER EH
-110E8 ; [.3988.0020.0002] # SORA SOMPENG LETTER MAE
-10000 ; [.3989.0020.0002] # LINEAR B SYLLABLE B008 A
-10001 ; [.398A.0020.0002] # LINEAR B SYLLABLE B038 E
-10002 ; [.398B.0020.0002] # LINEAR B SYLLABLE B028 I
-10003 ; [.398C.0020.0002] # LINEAR B SYLLABLE B061 O
-10004 ; [.398D.0020.0002] # LINEAR B SYLLABLE B010 U
-10005 ; [.398E.0020.0002] # LINEAR B SYLLABLE B001 DA
-10006 ; [.398F.0020.0002] # LINEAR B SYLLABLE B045 DE
-10007 ; [.3990.0020.0002] # LINEAR B SYLLABLE B007 DI
-10008 ; [.3991.0020.0002] # LINEAR B SYLLABLE B014 DO
-10009 ; [.3992.0020.0002] # LINEAR B SYLLABLE B051 DU
-1000A ; [.3993.0020.0002] # LINEAR B SYLLABLE B057 JA
-1000B ; [.3994.0020.0002] # LINEAR B SYLLABLE B046 JE
-1000D ; [.3995.0020.0002] # LINEAR B SYLLABLE B036 JO
-1000E ; [.3996.0020.0002] # LINEAR B SYLLABLE B065 JU
-1000F ; [.3997.0020.0002] # LINEAR B SYLLABLE B077 KA
-10010 ; [.3998.0020.0002] # LINEAR B SYLLABLE B044 KE
-10011 ; [.3999.0020.0002] # LINEAR B SYLLABLE B067 KI
-10012 ; [.399A.0020.0002] # LINEAR B SYLLABLE B070 KO
-10013 ; [.399B.0020.0002] # LINEAR B SYLLABLE B081 KU
-10014 ; [.399C.0020.0002] # LINEAR B SYLLABLE B080 MA
-10015 ; [.399D.0020.0002] # LINEAR B SYLLABLE B013 ME
-10016 ; [.399E.0020.0002] # LINEAR B SYLLABLE B073 MI
-10017 ; [.399F.0020.0002] # LINEAR B SYLLABLE B015 MO
-10018 ; [.39A0.0020.0002] # LINEAR B SYLLABLE B023 MU
-10019 ; [.39A1.0020.0002] # LINEAR B SYLLABLE B006 NA
-1001A ; [.39A2.0020.0002] # LINEAR B SYLLABLE B024 NE
-1001B ; [.39A3.0020.0002] # LINEAR B SYLLABLE B030 NI
-1001C ; [.39A4.0020.0002] # LINEAR B SYLLABLE B052 NO
-1001D ; [.39A5.0020.0002] # LINEAR B SYLLABLE B055 NU
-1001E ; [.39A6.0020.0002] # LINEAR B SYLLABLE B003 PA
-1001F ; [.39A7.0020.0002] # LINEAR B SYLLABLE B072 PE
-10020 ; [.39A8.0020.0002] # LINEAR B SYLLABLE B039 PI
-10021 ; [.39A9.0020.0002] # LINEAR B SYLLABLE B011 PO
-10022 ; [.39AA.0020.0002] # LINEAR B SYLLABLE B050 PU
-10023 ; [.39AB.0020.0002] # LINEAR B SYLLABLE B016 QA
-10024 ; [.39AC.0020.0002] # LINEAR B SYLLABLE B078 QE
-10025 ; [.39AD.0020.0002] # LINEAR B SYLLABLE B021 QI
-10026 ; [.39AE.0020.0002] # LINEAR B SYLLABLE B032 QO
-10028 ; [.39AF.0020.0002] # LINEAR B SYLLABLE B060 RA
-10029 ; [.39B0.0020.0002] # LINEAR B SYLLABLE B027 RE
-1002A ; [.39B1.0020.0002] # LINEAR B SYLLABLE B053 RI
-1002B ; [.39B2.0020.0002] # LINEAR B SYLLABLE B002 RO
-1002C ; [.39B3.0020.0002] # LINEAR B SYLLABLE B026 RU
-1002D ; [.39B4.0020.0002] # LINEAR B SYLLABLE B031 SA
-1002E ; [.39B5.0020.0002] # LINEAR B SYLLABLE B009 SE
-1002F ; [.39B6.0020.0002] # LINEAR B SYLLABLE B041 SI
-10030 ; [.39B7.0020.0002] # LINEAR B SYLLABLE B012 SO
-10031 ; [.39B8.0020.0002] # LINEAR B SYLLABLE B058 SU
-10032 ; [.39B9.0020.0002] # LINEAR B SYLLABLE B059 TA
-10033 ; [.39BA.0020.0002] # LINEAR B SYLLABLE B004 TE
-10034 ; [.39BB.0020.0002] # LINEAR B SYLLABLE B037 TI
-10035 ; [.39BC.0020.0002] # LINEAR B SYLLABLE B005 TO
-10036 ; [.39BD.0020.0002] # LINEAR B SYLLABLE B069 TU
-10037 ; [.39BE.0020.0002] # LINEAR B SYLLABLE B054 WA
-10038 ; [.39BF.0020.0002] # LINEAR B SYLLABLE B075 WE
-10039 ; [.39C0.0020.0002] # LINEAR B SYLLABLE B040 WI
-1003A ; [.39C1.0020.0002] # LINEAR B SYLLABLE B042 WO
-1003C ; [.39C2.0020.0002] # LINEAR B SYLLABLE B017 ZA
-1003D ; [.39C3.0020.0002] # LINEAR B SYLLABLE B074 ZE
-1003F ; [.39C4.0020.0002] # LINEAR B SYLLABLE B020 ZO
-10040 ; [.39C5.0020.0002] # LINEAR B SYLLABLE B025 A2
-10041 ; [.39C6.0020.0002] # LINEAR B SYLLABLE B043 A3
-10042 ; [.39C7.0020.0002] # LINEAR B SYLLABLE B085 AU
-10043 ; [.39C8.0020.0002] # LINEAR B SYLLABLE B071 DWE
-10044 ; [.39C9.0020.0002] # LINEAR B SYLLABLE B090 DWO
-10045 ; [.39CA.0020.0002] # LINEAR B SYLLABLE B048 NWA
-10046 ; [.39CB.0020.0002] # LINEAR B SYLLABLE B029 PU2
-10047 ; [.39CC.0020.0002] # LINEAR B SYLLABLE B062 PTE
-10048 ; [.39CD.0020.0002] # LINEAR B SYLLABLE B076 RA2
-10049 ; [.39CE.0020.0002] # LINEAR B SYLLABLE B033 RA3
-1004A ; [.39CF.0020.0002] # LINEAR B SYLLABLE B068 RO2
-1004B ; [.39D0.0020.0002] # LINEAR B SYLLABLE B066 TA2
-1004C ; [.39D1.0020.0002] # LINEAR B SYLLABLE B087 TWE
-1004D ; [.39D2.0020.0002] # LINEAR B SYLLABLE B091 TWO
-10050 ; [.39D3.0020.0002] # LINEAR B SYMBOL B018
-10051 ; [.39D4.0020.0002] # LINEAR B SYMBOL B019
-10052 ; [.39D5.0020.0002] # LINEAR B SYMBOL B022
-10053 ; [.39D6.0020.0002] # LINEAR B SYMBOL B034
-10054 ; [.39D7.0020.0002] # LINEAR B SYMBOL B047
-10055 ; [.39D8.0020.0002] # LINEAR B SYMBOL B049
-10056 ; [.39D9.0020.0002] # LINEAR B SYMBOL B056
-10057 ; [.39DA.0020.0002] # LINEAR B SYMBOL B063
-10058 ; [.39DB.0020.0002] # LINEAR B SYMBOL B064
-10059 ; [.39DC.0020.0002] # LINEAR B SYMBOL B079
-1005A ; [.39DD.0020.0002] # LINEAR B SYMBOL B082
-1005B ; [.39DE.0020.0002] # LINEAR B SYMBOL B083
-1005C ; [.39DF.0020.0002] # LINEAR B SYMBOL B086
-1005D ; [.39E0.0020.0002] # LINEAR B SYMBOL B089
-10080 ; [.39E1.0020.0002] # LINEAR B IDEOGRAM B100 MAN
-10081 ; [.39E2.0020.0002] # LINEAR B IDEOGRAM B102 WOMAN
-10082 ; [.39E3.0020.0002] # LINEAR B IDEOGRAM B104 DEER
-10083 ; [.39E4.0020.0002] # LINEAR B IDEOGRAM B105 EQUID
-10084 ; [.39E5.0020.0002] # LINEAR B IDEOGRAM B105F MARE
-10085 ; [.39E6.0020.0002] # LINEAR B IDEOGRAM B105M STALLION
-10086 ; [.39E7.0020.0002] # LINEAR B IDEOGRAM B106F EWE
-10087 ; [.39E8.0020.0002] # LINEAR B IDEOGRAM B106M RAM
-10088 ; [.39E9.0020.0002] # LINEAR B IDEOGRAM B107F SHE-GOAT
-10089 ; [.39EA.0020.0002] # LINEAR B IDEOGRAM B107M HE-GOAT
-1008A ; [.39EB.0020.0002] # LINEAR B IDEOGRAM B108F SOW
-1008B ; [.39EC.0020.0002] # LINEAR B IDEOGRAM B108M BOAR
-1008C ; [.39ED.0020.0002] # LINEAR B IDEOGRAM B109F COW
-1008D ; [.39EE.0020.0002] # LINEAR B IDEOGRAM B109M BULL
-1008E ; [.39EF.0020.0002] # LINEAR B IDEOGRAM B120 WHEAT
-1008F ; [.39F0.0020.0002] # LINEAR B IDEOGRAM B121 BARLEY
-10090 ; [.39F1.0020.0002] # LINEAR B IDEOGRAM B122 OLIVE
-10091 ; [.39F2.0020.0002] # LINEAR B IDEOGRAM B123 SPICE
-10092 ; [.39F3.0020.0002] # LINEAR B IDEOGRAM B125 CYPERUS
-10093 ; [.39F4.0020.0002] # LINEAR B MONOGRAM B127 KAPO
-10094 ; [.39F5.0020.0002] # LINEAR B MONOGRAM B128 KANAKO
-10095 ; [.39F6.0020.0002] # LINEAR B IDEOGRAM B130 OIL
-10096 ; [.39F7.0020.0002] # LINEAR B IDEOGRAM B131 WINE
-10097 ; [.39F8.0020.0002] # LINEAR B IDEOGRAM B132
-10098 ; [.39F9.0020.0002] # LINEAR B MONOGRAM B133 AREPA
-10099 ; [.39FA.0020.0002] # LINEAR B MONOGRAM B135 MERI
-1009A ; [.39FB.0020.0002] # LINEAR B IDEOGRAM B140 BRONZE
-1009B ; [.39FC.0020.0002] # LINEAR B IDEOGRAM B141 GOLD
-1009C ; [.39FD.0020.0002] # LINEAR B IDEOGRAM B142
-1009D ; [.39FE.0020.0002] # LINEAR B IDEOGRAM B145 WOOL
-1009E ; [.39FF.0020.0002] # LINEAR B IDEOGRAM B146
-1009F ; [.3A00.0020.0002] # LINEAR B IDEOGRAM B150
-100A0 ; [.3A01.0020.0002] # LINEAR B IDEOGRAM B151 HORN
-100A1 ; [.3A02.0020.0002] # LINEAR B IDEOGRAM B152
-100A2 ; [.3A03.0020.0002] # LINEAR B IDEOGRAM B153
-100A3 ; [.3A04.0020.0002] # LINEAR B IDEOGRAM B154
-100A4 ; [.3A05.0020.0002] # LINEAR B MONOGRAM B156 TURO2
-100A5 ; [.3A06.0020.0002] # LINEAR B IDEOGRAM B157
-100A6 ; [.3A07.0020.0002] # LINEAR B IDEOGRAM B158
-100A7 ; [.3A08.0020.0002] # LINEAR B IDEOGRAM B159 CLOTH
-100A8 ; [.3A09.0020.0002] # LINEAR B IDEOGRAM B160
-100A9 ; [.3A0A.0020.0002] # LINEAR B IDEOGRAM B161
-100AA ; [.3A0B.0020.0002] # LINEAR B IDEOGRAM B162 GARMENT
-100AB ; [.3A0C.0020.0002] # LINEAR B IDEOGRAM B163 ARMOUR
-100AC ; [.3A0D.0020.0002] # LINEAR B IDEOGRAM B164
-100AD ; [.3A0E.0020.0002] # LINEAR B IDEOGRAM B165
-100AE ; [.3A0F.0020.0002] # LINEAR B IDEOGRAM B166
-100AF ; [.3A10.0020.0002] # LINEAR B IDEOGRAM B167
-100B0 ; [.3A11.0020.0002] # LINEAR B IDEOGRAM B168
-100B1 ; [.3A12.0020.0002] # LINEAR B IDEOGRAM B169
-100B2 ; [.3A13.0020.0002] # LINEAR B IDEOGRAM B170
-100B3 ; [.3A14.0020.0002] # LINEAR B IDEOGRAM B171
-100B4 ; [.3A15.0020.0002] # LINEAR B IDEOGRAM B172
-100B5 ; [.3A16.0020.0002] # LINEAR B IDEOGRAM B173 MONTH
-100B6 ; [.3A17.0020.0002] # LINEAR B IDEOGRAM B174
-100B7 ; [.3A18.0020.0002] # LINEAR B IDEOGRAM B176 TREE
-100B8 ; [.3A19.0020.0002] # LINEAR B IDEOGRAM B177
-100B9 ; [.3A1A.0020.0002] # LINEAR B IDEOGRAM B178
-100BA ; [.3A1B.0020.0002] # LINEAR B IDEOGRAM B179
-100BB ; [.3A1C.0020.0002] # LINEAR B IDEOGRAM B180
-100BC ; [.3A1D.0020.0002] # LINEAR B IDEOGRAM B181
-100BD ; [.3A1E.0020.0002] # LINEAR B IDEOGRAM B182
-100BE ; [.3A1F.0020.0002] # LINEAR B IDEOGRAM B183
-100BF ; [.3A20.0020.0002] # LINEAR B IDEOGRAM B184
-100C0 ; [.3A21.0020.0002] # LINEAR B IDEOGRAM B185
-100C1 ; [.3A22.0020.0002] # LINEAR B IDEOGRAM B189
-100C2 ; [.3A23.0020.0002] # LINEAR B IDEOGRAM B190
-100C3 ; [.3A24.0020.0002] # LINEAR B IDEOGRAM B191 HELMET
-100C4 ; [.3A25.0020.0002] # LINEAR B IDEOGRAM B220 FOOTSTOOL
-100C5 ; [.3A26.0020.0002] # LINEAR B IDEOGRAM B225 BATHTUB
-100C6 ; [.3A27.0020.0002] # LINEAR B IDEOGRAM B230 SPEAR
-100C7 ; [.3A28.0020.0002] # LINEAR B IDEOGRAM B231 ARROW
-100C8 ; [.3A29.0020.0002] # LINEAR B IDEOGRAM B232
-100C9 ; [.3A2A.0020.0002] # LINEAR B IDEOGRAM B233 SWORD
-100CA ; [.3A2B.0020.0002] # LINEAR B IDEOGRAM B234
-100CB ; [.3A2C.0020.0002] # LINEAR B IDEOGRAM B236
-100CC ; [.3A2D.0020.0002] # LINEAR B IDEOGRAM B240 WHEELED CHARIOT
-100CD ; [.3A2E.0020.0002] # LINEAR B IDEOGRAM B241 CHARIOT
-100CE ; [.3A2F.0020.0002] # LINEAR B IDEOGRAM B242 CHARIOT FRAME
-100CF ; [.3A30.0020.0002] # LINEAR B IDEOGRAM B243 WHEEL
-100D0 ; [.3A31.0020.0002] # LINEAR B IDEOGRAM B245
-100D1 ; [.3A32.0020.0002] # LINEAR B IDEOGRAM B246
-100D2 ; [.3A33.0020.0002] # LINEAR B MONOGRAM B247 DIPTE
-100D3 ; [.3A34.0020.0002] # LINEAR B IDEOGRAM B248
-100D4 ; [.3A35.0020.0002] # LINEAR B IDEOGRAM B249
-100D5 ; [.3A36.0020.0002] # LINEAR B IDEOGRAM B251
-100D6 ; [.3A37.0020.0002] # LINEAR B IDEOGRAM B252
-100D7 ; [.3A38.0020.0002] # LINEAR B IDEOGRAM B253
-100D8 ; [.3A39.0020.0002] # LINEAR B IDEOGRAM B254 DART
-100D9 ; [.3A3A.0020.0002] # LINEAR B IDEOGRAM B255
-100DA ; [.3A3B.0020.0002] # LINEAR B IDEOGRAM B256
-100DB ; [.3A3C.0020.0002] # LINEAR B IDEOGRAM B257
-100DC ; [.3A3D.0020.0002] # LINEAR B IDEOGRAM B258
-100DD ; [.3A3E.0020.0002] # LINEAR B IDEOGRAM B259
-100DE ; [.3A3F.0020.0002] # LINEAR B IDEOGRAM VESSEL B155
-100DF ; [.3A40.0020.0002] # LINEAR B IDEOGRAM VESSEL B200
-100E0 ; [.3A41.0020.0002] # LINEAR B IDEOGRAM VESSEL B201
-100E1 ; [.3A42.0020.0002] # LINEAR B IDEOGRAM VESSEL B202
-100E2 ; [.3A43.0020.0002] # LINEAR B IDEOGRAM VESSEL B203
-100E3 ; [.3A44.0020.0002] # LINEAR B IDEOGRAM VESSEL B204
-100E4 ; [.3A45.0020.0002] # LINEAR B IDEOGRAM VESSEL B205
-100E5 ; [.3A46.0020.0002] # LINEAR B IDEOGRAM VESSEL B206
-100E6 ; [.3A47.0020.0002] # LINEAR B IDEOGRAM VESSEL B207
-100E7 ; [.3A48.0020.0002] # LINEAR B IDEOGRAM VESSEL B208
-100E8 ; [.3A49.0020.0002] # LINEAR B IDEOGRAM VESSEL B209
-100E9 ; [.3A4A.0020.0002] # LINEAR B IDEOGRAM VESSEL B210
-100EA ; [.3A4B.0020.0002] # LINEAR B IDEOGRAM VESSEL B211
-100EB ; [.3A4C.0020.0002] # LINEAR B IDEOGRAM VESSEL B212
-100EC ; [.3A4D.0020.0002] # LINEAR B IDEOGRAM VESSEL B213
-100ED ; [.3A4E.0020.0002] # LINEAR B IDEOGRAM VESSEL B214
-100EE ; [.3A4F.0020.0002] # LINEAR B IDEOGRAM VESSEL B215
-100EF ; [.3A50.0020.0002] # LINEAR B IDEOGRAM VESSEL B216
-100F0 ; [.3A51.0020.0002] # LINEAR B IDEOGRAM VESSEL B217
-100F1 ; [.3A52.0020.0002] # LINEAR B IDEOGRAM VESSEL B218
-100F2 ; [.3A53.0020.0002] # LINEAR B IDEOGRAM VESSEL B219
-100F3 ; [.3A54.0020.0002] # LINEAR B IDEOGRAM VESSEL B221
-100F4 ; [.3A55.0020.0002] # LINEAR B IDEOGRAM VESSEL B222
-100F5 ; [.3A56.0020.0002] # LINEAR B IDEOGRAM VESSEL B226
-100F6 ; [.3A57.0020.0002] # LINEAR B IDEOGRAM VESSEL B227
-100F7 ; [.3A58.0020.0002] # LINEAR B IDEOGRAM VESSEL B228
-100F8 ; [.3A59.0020.0002] # LINEAR B IDEOGRAM VESSEL B229
-100F9 ; [.3A5A.0020.0002] # LINEAR B IDEOGRAM VESSEL B250
-100FA ; [.3A5B.0020.0002] # LINEAR B IDEOGRAM VESSEL B305
-10800 ; [.3A5C.0020.0002] # CYPRIOT SYLLABLE A
-10801 ; [.3A5D.0020.0002] # CYPRIOT SYLLABLE E
-10802 ; [.3A5E.0020.0002] # CYPRIOT SYLLABLE I
-10803 ; [.3A5F.0020.0002] # CYPRIOT SYLLABLE O
-10804 ; [.3A60.0020.0002] # CYPRIOT SYLLABLE U
-10805 ; [.3A61.0020.0002] # CYPRIOT SYLLABLE JA
-10808 ; [.3A62.0020.0002] # CYPRIOT SYLLABLE JO
-1080A ; [.3A63.0020.0002] # CYPRIOT SYLLABLE KA
-1080B ; [.3A64.0020.0002] # CYPRIOT SYLLABLE KE
-1080C ; [.3A65.0020.0002] # CYPRIOT SYLLABLE KI
-1080D ; [.3A66.0020.0002] # CYPRIOT SYLLABLE KO
-1080E ; [.3A67.0020.0002] # CYPRIOT SYLLABLE KU
-1080F ; [.3A68.0020.0002] # CYPRIOT SYLLABLE LA
-10810 ; [.3A69.0020.0002] # CYPRIOT SYLLABLE LE
-10811 ; [.3A6A.0020.0002] # CYPRIOT SYLLABLE LI
-10812 ; [.3A6B.0020.0002] # CYPRIOT SYLLABLE LO
-10813 ; [.3A6C.0020.0002] # CYPRIOT SYLLABLE LU
-10814 ; [.3A6D.0020.0002] # CYPRIOT SYLLABLE MA
-10815 ; [.3A6E.0020.0002] # CYPRIOT SYLLABLE ME
-10816 ; [.3A6F.0020.0002] # CYPRIOT SYLLABLE MI
-10817 ; [.3A70.0020.0002] # CYPRIOT SYLLABLE MO
-10818 ; [.3A71.0020.0002] # CYPRIOT SYLLABLE MU
-10819 ; [.3A72.0020.0002] # CYPRIOT SYLLABLE NA
-1081A ; [.3A73.0020.0002] # CYPRIOT SYLLABLE NE
-1081B ; [.3A74.0020.0002] # CYPRIOT SYLLABLE NI
-1081C ; [.3A75.0020.0002] # CYPRIOT SYLLABLE NO
-1081D ; [.3A76.0020.0002] # CYPRIOT SYLLABLE NU
-1081E ; [.3A77.0020.0002] # CYPRIOT SYLLABLE PA
-1081F ; [.3A78.0020.0002] # CYPRIOT SYLLABLE PE
-10820 ; [.3A79.0020.0002] # CYPRIOT SYLLABLE PI
-10821 ; [.3A7A.0020.0002] # CYPRIOT SYLLABLE PO
-10822 ; [.3A7B.0020.0002] # CYPRIOT SYLLABLE PU
-10823 ; [.3A7C.0020.0002] # CYPRIOT SYLLABLE RA
-10824 ; [.3A7D.0020.0002] # CYPRIOT SYLLABLE RE
-10825 ; [.3A7E.0020.0002] # CYPRIOT SYLLABLE RI
-10826 ; [.3A7F.0020.0002] # CYPRIOT SYLLABLE RO
-10827 ; [.3A80.0020.0002] # CYPRIOT SYLLABLE RU
-10828 ; [.3A81.0020.0002] # CYPRIOT SYLLABLE SA
-10829 ; [.3A82.0020.0002] # CYPRIOT SYLLABLE SE
-1082A ; [.3A83.0020.0002] # CYPRIOT SYLLABLE SI
-1082B ; [.3A84.0020.0002] # CYPRIOT SYLLABLE SO
-1082C ; [.3A85.0020.0002] # CYPRIOT SYLLABLE SU
-1082D ; [.3A86.0020.0002] # CYPRIOT SYLLABLE TA
-1082E ; [.3A87.0020.0002] # CYPRIOT SYLLABLE TE
-1082F ; [.3A88.0020.0002] # CYPRIOT SYLLABLE TI
-10830 ; [.3A89.0020.0002] # CYPRIOT SYLLABLE TO
-10831 ; [.3A8A.0020.0002] # CYPRIOT SYLLABLE TU
-10832 ; [.3A8B.0020.0002] # CYPRIOT SYLLABLE WA
-10833 ; [.3A8C.0020.0002] # CYPRIOT SYLLABLE WE
-10834 ; [.3A8D.0020.0002] # CYPRIOT SYLLABLE WI
-10835 ; [.3A8E.0020.0002] # CYPRIOT SYLLABLE WO
-10837 ; [.3A8F.0020.0002] # CYPRIOT SYLLABLE XA
-10838 ; [.3A90.0020.0002] # CYPRIOT SYLLABLE XE
-1083C ; [.3A91.0020.0002] # CYPRIOT SYLLABLE ZA
-1083F ; [.3A92.0020.0002] # CYPRIOT SYLLABLE ZO
-10A60 ; [.3A93.0020.0002] # OLD SOUTH ARABIAN LETTER HE
-10A61 ; [.3A94.0020.0002] # OLD SOUTH ARABIAN LETTER LAMEDH
-10A62 ; [.3A95.0020.0002] # OLD SOUTH ARABIAN LETTER HETH
-10A63 ; [.3A96.0020.0002] # OLD SOUTH ARABIAN LETTER MEM
-10A64 ; [.3A97.0020.0002] # OLD SOUTH ARABIAN LETTER QOPH
-10A65 ; [.3A98.0020.0002] # OLD SOUTH ARABIAN LETTER WAW
-10A66 ; [.3A99.0020.0002] # OLD SOUTH ARABIAN LETTER SHIN
-10A67 ; [.3A9A.0020.0002] # OLD SOUTH ARABIAN LETTER RESH
-10A68 ; [.3A9B.0020.0002] # OLD SOUTH ARABIAN LETTER BETH
-10A69 ; [.3A9C.0020.0002] # OLD SOUTH ARABIAN LETTER TAW
-10A6A ; [.3A9D.0020.0002] # OLD SOUTH ARABIAN LETTER SAT
-10A6B ; [.3A9E.0020.0002] # OLD SOUTH ARABIAN LETTER KAPH
-10A6C ; [.3A9F.0020.0002] # OLD SOUTH ARABIAN LETTER NUN
-10A6D ; [.3AA0.0020.0002] # OLD SOUTH ARABIAN LETTER KHETH
-10A6E ; [.3AA1.0020.0002] # OLD SOUTH ARABIAN LETTER SADHE
-10A6F ; [.3AA2.0020.0002] # OLD SOUTH ARABIAN LETTER SAMEKH
-10A70 ; [.3AA3.0020.0002] # OLD SOUTH ARABIAN LETTER FE
-10A71 ; [.3AA4.0020.0002] # OLD SOUTH ARABIAN LETTER ALEF
-10A72 ; [.3AA5.0020.0002] # OLD SOUTH ARABIAN LETTER AYN
-10A73 ; [.3AA6.0020.0002] # OLD SOUTH ARABIAN LETTER DHADHE
-10A74 ; [.3AA7.0020.0002] # OLD SOUTH ARABIAN LETTER GIMEL
-10A75 ; [.3AA8.0020.0002] # OLD SOUTH ARABIAN LETTER DALETH
-10A76 ; [.3AA9.0020.0002] # OLD SOUTH ARABIAN LETTER GHAYN
-10A77 ; [.3AAA.0020.0002] # OLD SOUTH ARABIAN LETTER TETH
-10A78 ; [.3AAB.0020.0002] # OLD SOUTH ARABIAN LETTER ZAYN
-10A79 ; [.3AAC.0020.0002] # OLD SOUTH ARABIAN LETTER DHALETH
-10A7A ; [.3AAD.0020.0002] # OLD SOUTH ARABIAN LETTER YODH
-10A7B ; [.3AAE.0020.0002] # OLD SOUTH ARABIAN LETTER THAW
-10A7C ; [.3AAF.0020.0002] # OLD SOUTH ARABIAN LETTER THETH
-10B00 ; [.3AB0.0020.0002] # AVESTAN LETTER A
-10B01 ; [.3AB1.0020.0002] # AVESTAN LETTER AA
-10B02 ; [.3AB2.0020.0002] # AVESTAN LETTER AO
-10B03 ; [.3AB3.0020.0002] # AVESTAN LETTER AAO
-10B04 ; [.3AB4.0020.0002] # AVESTAN LETTER AN
-10B05 ; [.3AB5.0020.0002] # AVESTAN LETTER AAN
-10B06 ; [.3AB6.0020.0002] # AVESTAN LETTER AE
-10B07 ; [.3AB7.0020.0002] # AVESTAN LETTER AEE
-10B08 ; [.3AB8.0020.0002] # AVESTAN LETTER E
-10B09 ; [.3AB9.0020.0002] # AVESTAN LETTER EE
-10B0A ; [.3ABA.0020.0002] # AVESTAN LETTER O
-10B0B ; [.3ABB.0020.0002] # AVESTAN LETTER OO
-10B0C ; [.3ABC.0020.0002] # AVESTAN LETTER I
-10B0D ; [.3ABD.0020.0002] # AVESTAN LETTER II
-10B0E ; [.3ABE.0020.0002] # AVESTAN LETTER U
-10B0F ; [.3ABF.0020.0002] # AVESTAN LETTER UU
-10B10 ; [.3AC0.0020.0002] # AVESTAN LETTER KE
-10B11 ; [.3AC1.0020.0002] # AVESTAN LETTER XE
-10B12 ; [.3AC2.0020.0002] # AVESTAN LETTER XYE
-10B13 ; [.3AC3.0020.0002] # AVESTAN LETTER XVE
-10B14 ; [.3AC4.0020.0002] # AVESTAN LETTER GE
-10B15 ; [.3AC5.0020.0002] # AVESTAN LETTER GGE
-10B16 ; [.3AC6.0020.0002] # AVESTAN LETTER GHE
-10B17 ; [.3AC7.0020.0002] # AVESTAN LETTER CE
-10B18 ; [.3AC8.0020.0002] # AVESTAN LETTER JE
-10B19 ; [.3AC9.0020.0002] # AVESTAN LETTER TE
-10B1A ; [.3ACA.0020.0002] # AVESTAN LETTER THE
-10B1B ; [.3ACB.0020.0002] # AVESTAN LETTER DE
-10B1C ; [.3ACC.0020.0002] # AVESTAN LETTER DHE
-10B1D ; [.3ACD.0020.0002] # AVESTAN LETTER TTE
-10B1E ; [.3ACE.0020.0002] # AVESTAN LETTER PE
-10B1F ; [.3ACF.0020.0002] # AVESTAN LETTER FE
-10B20 ; [.3AD0.0020.0002] # AVESTAN LETTER BE
-10B21 ; [.3AD1.0020.0002] # AVESTAN LETTER BHE
-10B22 ; [.3AD2.0020.0002] # AVESTAN LETTER NGE
-10B23 ; [.3AD3.0020.0002] # AVESTAN LETTER NGYE
-10B24 ; [.3AD4.0020.0002] # AVESTAN LETTER NGVE
-10B25 ; [.3AD5.0020.0002] # AVESTAN LETTER NE
-10B26 ; [.3AD6.0020.0002] # AVESTAN LETTER NYE
-10B27 ; [.3AD7.0020.0002] # AVESTAN LETTER NNE
-10B28 ; [.3AD8.0020.0002] # AVESTAN LETTER ME
-10B29 ; [.3AD9.0020.0002] # AVESTAN LETTER HME
-10B2A ; [.3ADA.0020.0002] # AVESTAN LETTER YYE
-10B2B ; [.3ADB.0020.0002] # AVESTAN LETTER YE
-10B2C ; [.3ADC.0020.0002] # AVESTAN LETTER VE
-10B2D ; [.3ADD.0020.0002] # AVESTAN LETTER RE
-10B2E ; [.3ADD.0020.0004][.0000.00FC.0004] # AVESTAN LETTER LE
-10B2F ; [.3ADE.0020.0002] # AVESTAN LETTER SE
-10B30 ; [.3ADF.0020.0002] # AVESTAN LETTER ZE
-10B31 ; [.3AE0.0020.0002] # AVESTAN LETTER SHE
-10B32 ; [.3AE1.0020.0002] # AVESTAN LETTER ZHE
-10B33 ; [.3AE2.0020.0002] # AVESTAN LETTER SHYE
-10B34 ; [.3AE3.0020.0002] # AVESTAN LETTER SSHE
-10B35 ; [.3AE4.0020.0002] # AVESTAN LETTER HE
-10840 ; [.3AE5.0020.0002] # IMPERIAL ARAMAIC LETTER ALEPH
-10841 ; [.3AE6.0020.0002] # IMPERIAL ARAMAIC LETTER BETH
-10842 ; [.3AE7.0020.0002] # IMPERIAL ARAMAIC LETTER GIMEL
-10843 ; [.3AE8.0020.0002] # IMPERIAL ARAMAIC LETTER DALETH
-10844 ; [.3AE9.0020.0002] # IMPERIAL ARAMAIC LETTER HE
-10845 ; [.3AEA.0020.0002] # IMPERIAL ARAMAIC LETTER WAW
-10846 ; [.3AEB.0020.0002] # IMPERIAL ARAMAIC LETTER ZAYIN
-10847 ; [.3AEC.0020.0002] # IMPERIAL ARAMAIC LETTER HETH
-10848 ; [.3AED.0020.0002] # IMPERIAL ARAMAIC LETTER TETH
-10849 ; [.3AEE.0020.0002] # IMPERIAL ARAMAIC LETTER YODH
-1084A ; [.3AEF.0020.0002] # IMPERIAL ARAMAIC LETTER KAPH
-1084B ; [.3AF0.0020.0002] # IMPERIAL ARAMAIC LETTER LAMEDH
-1084C ; [.3AF1.0020.0002] # IMPERIAL ARAMAIC LETTER MEM
-1084D ; [.3AF2.0020.0002] # IMPERIAL ARAMAIC LETTER NUN
-1084E ; [.3AF3.0020.0002] # IMPERIAL ARAMAIC LETTER SAMEKH
-1084F ; [.3AF4.0020.0002] # IMPERIAL ARAMAIC LETTER AYIN
-10850 ; [.3AF5.0020.0002] # IMPERIAL ARAMAIC LETTER PE
-10851 ; [.3AF6.0020.0002] # IMPERIAL ARAMAIC LETTER SADHE
-10852 ; [.3AF7.0020.0002] # IMPERIAL ARAMAIC LETTER QOPH
-10853 ; [.3AF8.0020.0002] # IMPERIAL ARAMAIC LETTER RESH
-10854 ; [.3AF9.0020.0002] # IMPERIAL ARAMAIC LETTER SHIN
-10855 ; [.3AFA.0020.0002] # IMPERIAL ARAMAIC LETTER TAW
-10B40 ; [.3AFB.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER ALEPH
-10B41 ; [.3AFC.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER BETH
-10B42 ; [.3AFD.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER GIMEL
-10B43 ; [.3AFE.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER DALETH
-10B44 ; [.3AFF.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER HE
-10B45 ; [.3B00.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER WAW
-10B46 ; [.3B01.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER ZAYIN
-10B47 ; [.3B02.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER HETH
-10B48 ; [.3B03.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER TETH
-10B49 ; [.3B04.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER YODH
-10B4A ; [.3B05.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER KAPH
-10B4B ; [.3B06.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER LAMEDH
-10B4C ; [.3B07.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER MEM
-10B4D ; [.3B08.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER NUN
-10B4E ; [.3B09.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SAMEKH
-10B4F ; [.3B0A.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER AYIN
-10B50 ; [.3B0B.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER PE
-10B51 ; [.3B0C.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SADHE
-10B52 ; [.3B0D.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER QOPH
-10B53 ; [.3B0E.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER RESH
-10B54 ; [.3B0F.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SHIN
-10B55 ; [.3B10.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER TAW
-10B60 ; [.3B11.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER ALEPH
-10B61 ; [.3B12.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER BETH
-10B62 ; [.3B13.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER GIMEL
-10B63 ; [.3B14.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER DALETH
-10B64 ; [.3B15.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER HE
-10B65 ; [.3B16.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH
-10B66 ; [.3B17.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER ZAYIN
-10B67 ; [.3B18.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER HETH
-10B68 ; [.3B19.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER TETH
-10B69 ; [.3B1A.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER YODH
-10B6A ; [.3B1B.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER KAPH
-10B6B ; [.3B1C.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER LAMEDH
-10B6C ; [.3B1D.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH
-10B6D ; [.3B1E.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER NUN
-10B6E ; [.3B1F.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SAMEKH
-10B6F ; [.3B20.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER PE
-10B70 ; [.3B21.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SADHE
-10B71 ; [.3B22.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SHIN
-10B72 ; [.3B23.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER TAW
-10380 ; [.3B24.0020.0002] # UGARITIC LETTER ALPA
-10381 ; [.3B25.0020.0002] # UGARITIC LETTER BETA
-10382 ; [.3B26.0020.0002] # UGARITIC LETTER GAMLA
-10383 ; [.3B27.0020.0002] # UGARITIC LETTER KHA
-10384 ; [.3B28.0020.0002] # UGARITIC LETTER DELTA
-10385 ; [.3B29.0020.0002] # UGARITIC LETTER HO
-10386 ; [.3B2A.0020.0002] # UGARITIC LETTER WO
-10387 ; [.3B2B.0020.0002] # UGARITIC LETTER ZETA
-10388 ; [.3B2C.0020.0002] # UGARITIC LETTER HOTA
-10389 ; [.3B2D.0020.0002] # UGARITIC LETTER TET
-1038A ; [.3B2E.0020.0002] # UGARITIC LETTER YOD
-1038B ; [.3B2F.0020.0002] # UGARITIC LETTER KAF
-1038C ; [.3B30.0020.0002] # UGARITIC LETTER SHIN
-1038D ; [.3B31.0020.0002] # UGARITIC LETTER LAMDA
-1038E ; [.3B32.0020.0002] # UGARITIC LETTER MEM
-1038F ; [.3B33.0020.0002] # UGARITIC LETTER DHAL
-10390 ; [.3B34.0020.0002] # UGARITIC LETTER NUN
-10391 ; [.3B35.0020.0002] # UGARITIC LETTER ZU
-10392 ; [.3B36.0020.0002] # UGARITIC LETTER SAMKA
-10393 ; [.3B37.0020.0002] # UGARITIC LETTER AIN
-10394 ; [.3B38.0020.0002] # UGARITIC LETTER PU
-10395 ; [.3B39.0020.0002] # UGARITIC LETTER SADE
-10396 ; [.3B3A.0020.0002] # UGARITIC LETTER QOPA
-10397 ; [.3B3B.0020.0002] # UGARITIC LETTER RASHA
-10398 ; [.3B3C.0020.0002] # UGARITIC LETTER THANNA
-10399 ; [.3B3D.0020.0002] # UGARITIC LETTER GHAIN
-1039A ; [.3B3E.0020.0002] # UGARITIC LETTER TO
-1039B ; [.3B3F.0020.0002] # UGARITIC LETTER I
-1039C ; [.3B40.0020.0002] # UGARITIC LETTER U
-1039D ; [.3B41.0020.0002] # UGARITIC LETTER SSU
-103A0 ; [.3B42.0020.0002] # OLD PERSIAN SIGN A
-103A1 ; [.3B43.0020.0002] # OLD PERSIAN SIGN I
-103A2 ; [.3B44.0020.0002] # OLD PERSIAN SIGN U
-103A3 ; [.3B45.0020.0002] # OLD PERSIAN SIGN KA
-103A4 ; [.3B46.0020.0002] # OLD PERSIAN SIGN KU
-103A5 ; [.3B47.0020.0002] # OLD PERSIAN SIGN GA
-103A6 ; [.3B48.0020.0002] # OLD PERSIAN SIGN GU
-103A7 ; [.3B49.0020.0002] # OLD PERSIAN SIGN XA
-103A8 ; [.3B4A.0020.0002] # OLD PERSIAN SIGN CA
-103A9 ; [.3B4B.0020.0002] # OLD PERSIAN SIGN JA
-103AA ; [.3B4C.0020.0002] # OLD PERSIAN SIGN JI
-103AB ; [.3B4D.0020.0002] # OLD PERSIAN SIGN TA
-103AC ; [.3B4E.0020.0002] # OLD PERSIAN SIGN TU
-103AD ; [.3B4F.0020.0002] # OLD PERSIAN SIGN DA
-103AE ; [.3B50.0020.0002] # OLD PERSIAN SIGN DI
-103AF ; [.3B51.0020.0002] # OLD PERSIAN SIGN DU
-103B0 ; [.3B52.0020.0002] # OLD PERSIAN SIGN THA
-103B1 ; [.3B53.0020.0002] # OLD PERSIAN SIGN PA
-103B2 ; [.3B54.0020.0002] # OLD PERSIAN SIGN BA
-103B3 ; [.3B55.0020.0002] # OLD PERSIAN SIGN FA
-103B4 ; [.3B56.0020.0002] # OLD PERSIAN SIGN NA
-103B5 ; [.3B57.0020.0002] # OLD PERSIAN SIGN NU
-103B6 ; [.3B58.0020.0002] # OLD PERSIAN SIGN MA
-103B7 ; [.3B59.0020.0002] # OLD PERSIAN SIGN MI
-103B8 ; [.3B5A.0020.0002] # OLD PERSIAN SIGN MU
-103B9 ; [.3B5B.0020.0002] # OLD PERSIAN SIGN YA
-103BA ; [.3B5C.0020.0002] # OLD PERSIAN SIGN VA
-103BB ; [.3B5D.0020.0002] # OLD PERSIAN SIGN VI
-103BC ; [.3B5E.0020.0002] # OLD PERSIAN SIGN RA
-103BD ; [.3B5F.0020.0002] # OLD PERSIAN SIGN RU
-103BE ; [.3B60.0020.0002] # OLD PERSIAN SIGN LA
-103BF ; [.3B61.0020.0002] # OLD PERSIAN SIGN SA
-103C0 ; [.3B62.0020.0002] # OLD PERSIAN SIGN ZA
-103C1 ; [.3B63.0020.0002] # OLD PERSIAN SIGN SHA
-103C2 ; [.3B64.0020.0002] # OLD PERSIAN SIGN SSA
-103C3 ; [.3B65.0020.0002] # OLD PERSIAN SIGN HA
-103C8 ; [.3B66.0020.0002] # OLD PERSIAN SIGN AURAMAZDAA
-103C9 ; [.3B67.0020.0002] # OLD PERSIAN SIGN AURAMAZDAA-2
-103CA ; [.3B68.0020.0002] # OLD PERSIAN SIGN AURAMAZDAAHA
-103CB ; [.3B69.0020.0002] # OLD PERSIAN SIGN XSHAAYATHIYA
-103CC ; [.3B6A.0020.0002] # OLD PERSIAN SIGN DAHYAAUSH
-103CD ; [.3B6B.0020.0002] # OLD PERSIAN SIGN DAHYAAUSH-2
-103CE ; [.3B6C.0020.0002] # OLD PERSIAN SIGN BAGA
-103CF ; [.3B6D.0020.0002] # OLD PERSIAN SIGN BUUMISH
-12000 ; [.3B6E.0020.0002] # CUNEIFORM SIGN A
-12001 ; [.3B6F.0020.0002] # CUNEIFORM SIGN A TIMES A
-12002 ; [.3B70.0020.0002] # CUNEIFORM SIGN A TIMES BAD
-12003 ; [.3B71.0020.0002] # CUNEIFORM SIGN A TIMES GAN2 TENU
-12004 ; [.3B72.0020.0002] # CUNEIFORM SIGN A TIMES HA
-12005 ; [.3B73.0020.0002] # CUNEIFORM SIGN A TIMES IGI
-12006 ; [.3B74.0020.0002] # CUNEIFORM SIGN A TIMES LAGAR GUNU
-12007 ; [.3B75.0020.0002] # CUNEIFORM SIGN A TIMES MUSH
-12008 ; [.3B76.0020.0002] # CUNEIFORM SIGN A TIMES SAG
-12009 ; [.3B77.0020.0002] # CUNEIFORM SIGN A2
-1200A ; [.3B78.0020.0002] # CUNEIFORM SIGN AB
-1200B ; [.3B79.0020.0002] # CUNEIFORM SIGN AB TIMES ASH2
-1200C ; [.3B7A.0020.0002] # CUNEIFORM SIGN AB TIMES DUN3 GUNU
-1200D ; [.3B7B.0020.0002] # CUNEIFORM SIGN AB TIMES GAL
-1200E ; [.3B7C.0020.0002] # CUNEIFORM SIGN AB TIMES GAN2 TENU
-1200F ; [.3B7D.0020.0002] # CUNEIFORM SIGN AB TIMES HA
-12010 ; [.3B7E.0020.0002] # CUNEIFORM SIGN AB TIMES IGI GUNU
-12011 ; [.3B7F.0020.0002] # CUNEIFORM SIGN AB TIMES IMIN
-12012 ; [.3B80.0020.0002] # CUNEIFORM SIGN AB TIMES LAGAB
-12013 ; [.3B81.0020.0002] # CUNEIFORM SIGN AB TIMES SHESH
-12014 ; [.3B82.0020.0002] # CUNEIFORM SIGN AB TIMES U PLUS U PLUS U
-12015 ; [.3B83.0020.0002] # CUNEIFORM SIGN AB GUNU
-12016 ; [.3B84.0020.0002] # CUNEIFORM SIGN AB2
-12017 ; [.3B85.0020.0002] # CUNEIFORM SIGN AB2 TIMES BALAG
-12018 ; [.3B86.0020.0002] # CUNEIFORM SIGN AB2 TIMES GAN2 TENU
-12019 ; [.3B87.0020.0002] # CUNEIFORM SIGN AB2 TIMES ME PLUS EN
-1201A ; [.3B88.0020.0002] # CUNEIFORM SIGN AB2 TIMES SHA3
-1201B ; [.3B89.0020.0002] # CUNEIFORM SIGN AB2 TIMES TAK4
-1201C ; [.3B8A.0020.0002] # CUNEIFORM SIGN AD
-1201D ; [.3B8B.0020.0002] # CUNEIFORM SIGN AK
-1201E ; [.3B8C.0020.0002] # CUNEIFORM SIGN AK TIMES ERIN2
-1201F ; [.3B8D.0020.0002] # CUNEIFORM SIGN AK TIMES SHITA PLUS GISH
-12020 ; [.3B8E.0020.0002] # CUNEIFORM SIGN AL
-12021 ; [.3B8F.0020.0002] # CUNEIFORM SIGN AL TIMES AL
-12022 ; [.3B90.0020.0002] # CUNEIFORM SIGN AL TIMES DIM2
-12023 ; [.3B91.0020.0002] # CUNEIFORM SIGN AL TIMES GISH
-12024 ; [.3B92.0020.0002] # CUNEIFORM SIGN AL TIMES HA
-12025 ; [.3B93.0020.0002] # CUNEIFORM SIGN AL TIMES KAD3
-12026 ; [.3B94.0020.0002] # CUNEIFORM SIGN AL TIMES KI
-12027 ; [.3B95.0020.0002] # CUNEIFORM SIGN AL TIMES SHE
-12028 ; [.3B96.0020.0002] # CUNEIFORM SIGN AL TIMES USH
-12029 ; [.3B97.0020.0002] # CUNEIFORM SIGN ALAN
-1202A ; [.3B98.0020.0002] # CUNEIFORM SIGN ALEPH
-1202B ; [.3B99.0020.0002] # CUNEIFORM SIGN AMAR
-1202C ; [.3B9A.0020.0002] # CUNEIFORM SIGN AMAR TIMES SHE
-1202D ; [.3B9B.0020.0002] # CUNEIFORM SIGN AN
-1202E ; [.3B9C.0020.0002] # CUNEIFORM SIGN AN OVER AN
-1202F ; [.3B9D.0020.0002] # CUNEIFORM SIGN AN THREE TIMES
-12030 ; [.3B9E.0020.0002] # CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA
-12031 ; [.3B9F.0020.0002] # CUNEIFORM SIGN AN PLUS NAGA SQUARED
-12032 ; [.3BA0.0020.0002] # CUNEIFORM SIGN ANSHE
-12033 ; [.3BA1.0020.0002] # CUNEIFORM SIGN APIN
-12034 ; [.3BA2.0020.0002] # CUNEIFORM SIGN ARAD
-12035 ; [.3BA3.0020.0002] # CUNEIFORM SIGN ARAD TIMES KUR
-12036 ; [.3BA4.0020.0002] # CUNEIFORM SIGN ARKAB
-12037 ; [.3BA5.0020.0002] # CUNEIFORM SIGN ASAL2
-12038 ; [.3BA6.0020.0002] # CUNEIFORM SIGN ASH
-12039 ; [.3BA7.0020.0002] # CUNEIFORM SIGN ASH ZIDA TENU
-1203A ; [.3BA8.0020.0002] # CUNEIFORM SIGN ASH KABA TENU
-1203B ; [.3BA9.0020.0002] # CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP
-1203C ; [.3BAA.0020.0002] # CUNEIFORM SIGN ASH OVER ASH OVER ASH
-1203D ; [.3BAB.0020.0002] # CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH
-1203E ; [.3BAC.0020.0002] # CUNEIFORM SIGN ASH2
-1203F ; [.3BAD.0020.0002] # CUNEIFORM SIGN ASHGAB
-12040 ; [.3BAE.0020.0002] # CUNEIFORM SIGN BA
-12041 ; [.3BAF.0020.0002] # CUNEIFORM SIGN BAD
-12042 ; [.3BB0.0020.0002] # CUNEIFORM SIGN BAG3
-12043 ; [.3BB1.0020.0002] # CUNEIFORM SIGN BAHAR2
-12044 ; [.3BB2.0020.0002] # CUNEIFORM SIGN BAL
-12045 ; [.3BB3.0020.0002] # CUNEIFORM SIGN BAL OVER BAL
-12046 ; [.3BB4.0020.0002] # CUNEIFORM SIGN BALAG
-12047 ; [.3BB5.0020.0002] # CUNEIFORM SIGN BAR
-12048 ; [.3BB6.0020.0002] # CUNEIFORM SIGN BARA2
-12049 ; [.3BB7.0020.0002] # CUNEIFORM SIGN BI
-1204A ; [.3BB8.0020.0002] # CUNEIFORM SIGN BI TIMES A
-1204B ; [.3BB9.0020.0002] # CUNEIFORM SIGN BI TIMES GAR
-1204C ; [.3BBA.0020.0002] # CUNEIFORM SIGN BI TIMES IGI GUNU
-1204D ; [.3BBB.0020.0002] # CUNEIFORM SIGN BU
-1204E ; [.3BBC.0020.0002] # CUNEIFORM SIGN BU OVER BU AB
-1204F ; [.3BBD.0020.0002] # CUNEIFORM SIGN BU OVER BU UN
-12050 ; [.3BBE.0020.0002] # CUNEIFORM SIGN BU CROSSING BU
-12051 ; [.3BBF.0020.0002] # CUNEIFORM SIGN BULUG
-12052 ; [.3BC0.0020.0002] # CUNEIFORM SIGN BULUG OVER BULUG
-12053 ; [.3BC1.0020.0002] # CUNEIFORM SIGN BUR
-12054 ; [.3BC2.0020.0002] # CUNEIFORM SIGN BUR2
-12055 ; [.3BC3.0020.0002] # CUNEIFORM SIGN DA
-12056 ; [.3BC4.0020.0002] # CUNEIFORM SIGN DAG
-12057 ; [.3BC5.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH
-12058 ; [.3BC6.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES AMAR
-12059 ; [.3BC7.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES BALAG
-1205A ; [.3BC8.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES BI
-1205B ; [.3BC9.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GA
-1205C ; [.3BCA.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH
-1205D ; [.3BCB.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GI
-1205E ; [.3BCC.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GIR2
-1205F ; [.3BCD.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GUD
-12060 ; [.3BCE.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES HA
-12061 ; [.3BCF.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES IR
-12062 ; [.3BD0.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU
-12063 ; [.3BD1.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES KAK
-12064 ; [.3BD2.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LA
-12065 ; [.3BD3.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LU
-12066 ; [.3BD4.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2
-12067 ; [.3BD5.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LUM
-12068 ; [.3BD6.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES NE
-12069 ; [.3BD7.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP
-1206A ; [.3BD8.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES SI
-1206B ; [.3BD9.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES TAK4
-1206C ; [.3BDA.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2
-1206D ; [.3BDB.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES USH
-1206E ; [.3BDC.0020.0002] # CUNEIFORM SIGN DAM
-1206F ; [.3BDD.0020.0002] # CUNEIFORM SIGN DAR
-12070 ; [.3BDE.0020.0002] # CUNEIFORM SIGN DARA3
-12071 ; [.3BDF.0020.0002] # CUNEIFORM SIGN DARA4
-12072 ; [.3BE0.0020.0002] # CUNEIFORM SIGN DI
-12073 ; [.3BE1.0020.0002] # CUNEIFORM SIGN DIB
-12074 ; [.3BE2.0020.0002] # CUNEIFORM SIGN DIM
-12075 ; [.3BE3.0020.0002] # CUNEIFORM SIGN DIM TIMES SHE
-12076 ; [.3BE4.0020.0002] # CUNEIFORM SIGN DIM2
-12077 ; [.3BE5.0020.0002] # CUNEIFORM SIGN DIN
-12078 ; [.3BE6.0020.0002] # CUNEIFORM SIGN DIN KASKAL U GUNU DISH
-12079 ; [.3BE7.0020.0002] # CUNEIFORM SIGN DISH
-1207A ; [.3BE8.0020.0002] # CUNEIFORM SIGN DU
-1207B ; [.3BE9.0020.0002] # CUNEIFORM SIGN DU OVER DU
-1207C ; [.3BEA.0020.0002] # CUNEIFORM SIGN DU GUNU
-1207D ; [.3BEB.0020.0002] # CUNEIFORM SIGN DU SHESHIG
-1207E ; [.3BEC.0020.0002] # CUNEIFORM SIGN DUB
-1207F ; [.3BED.0020.0002] # CUNEIFORM SIGN DUB TIMES ESH2
-12080 ; [.3BEE.0020.0002] # CUNEIFORM SIGN DUB2
-12081 ; [.3BEF.0020.0002] # CUNEIFORM SIGN DUG
-12082 ; [.3BF0.0020.0002] # CUNEIFORM SIGN DUGUD
-12083 ; [.3BF1.0020.0002] # CUNEIFORM SIGN DUH
-12084 ; [.3BF2.0020.0002] # CUNEIFORM SIGN DUN
-12085 ; [.3BF3.0020.0002] # CUNEIFORM SIGN DUN3
-12086 ; [.3BF4.0020.0002] # CUNEIFORM SIGN DUN3 GUNU
-12087 ; [.3BF5.0020.0002] # CUNEIFORM SIGN DUN3 GUNU GUNU
-12088 ; [.3BF6.0020.0002] # CUNEIFORM SIGN DUN4
-12089 ; [.3BF7.0020.0002] # CUNEIFORM SIGN DUR2
-1208A ; [.3BF8.0020.0002] # CUNEIFORM SIGN E
-1208B ; [.3BF9.0020.0002] # CUNEIFORM SIGN E TIMES PAP
-1208C ; [.3BFA.0020.0002] # CUNEIFORM SIGN E OVER E NUN OVER NUN
-1208D ; [.3BFB.0020.0002] # CUNEIFORM SIGN E2
-1208E ; [.3BFC.0020.0002] # CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA
-1208F ; [.3BFD.0020.0002] # CUNEIFORM SIGN E2 TIMES GAR
-12090 ; [.3BFE.0020.0002] # CUNEIFORM SIGN E2 TIMES MI
-12091 ; [.3BFF.0020.0002] # CUNEIFORM SIGN E2 TIMES SAL
-12092 ; [.3C00.0020.0002] # CUNEIFORM SIGN E2 TIMES SHE
-12093 ; [.3C01.0020.0002] # CUNEIFORM SIGN E2 TIMES U
-12094 ; [.3C02.0020.0002] # CUNEIFORM SIGN EDIN
-12095 ; [.3C03.0020.0002] # CUNEIFORM SIGN EGIR
-12096 ; [.3C04.0020.0002] # CUNEIFORM SIGN EL
-12097 ; [.3C05.0020.0002] # CUNEIFORM SIGN EN
-12098 ; [.3C06.0020.0002] # CUNEIFORM SIGN EN TIMES GAN2
-12099 ; [.3C07.0020.0002] # CUNEIFORM SIGN EN TIMES GAN2 TENU
-1209A ; [.3C08.0020.0002] # CUNEIFORM SIGN EN TIMES ME
-1209B ; [.3C09.0020.0002] # CUNEIFORM SIGN EN CROSSING EN
-1209C ; [.3C0A.0020.0002] # CUNEIFORM SIGN EN OPPOSING EN
-1209D ; [.3C0B.0020.0002] # CUNEIFORM SIGN EN SQUARED
-1209E ; [.3C0C.0020.0002] # CUNEIFORM SIGN EREN
-1209F ; [.3C0D.0020.0002] # CUNEIFORM SIGN ERIN2
-120A0 ; [.3C0E.0020.0002] # CUNEIFORM SIGN ESH2
-120A1 ; [.3C0F.0020.0002] # CUNEIFORM SIGN EZEN
-120A2 ; [.3C10.0020.0002] # CUNEIFORM SIGN EZEN TIMES A
-120A3 ; [.3C11.0020.0002] # CUNEIFORM SIGN EZEN TIMES A PLUS LAL
-120A4 ; [.3C12.0020.0002] # CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL
-120A5 ; [.3C13.0020.0002] # CUNEIFORM SIGN EZEN TIMES AN
-120A6 ; [.3C14.0020.0002] # CUNEIFORM SIGN EZEN TIMES BAD
-120A7 ; [.3C15.0020.0002] # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU
-120A8 ; [.3C16.0020.0002] # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU
-120A9 ; [.3C17.0020.0002] # CUNEIFORM SIGN EZEN TIMES HA
-120AA ; [.3C18.0020.0002] # CUNEIFORM SIGN EZEN TIMES HA GUNU
-120AB ; [.3C19.0020.0002] # CUNEIFORM SIGN EZEN TIMES IGI GUNU
-120AC ; [.3C1A.0020.0002] # CUNEIFORM SIGN EZEN TIMES KASKAL
-120AD ; [.3C1B.0020.0002] # CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED
-120AE ; [.3C1C.0020.0002] # CUNEIFORM SIGN EZEN TIMES KU3
-120AF ; [.3C1D.0020.0002] # CUNEIFORM SIGN EZEN TIMES LA
-120B0 ; [.3C1E.0020.0002] # CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL
-120B1 ; [.3C1F.0020.0002] # CUNEIFORM SIGN EZEN TIMES LI
-120B2 ; [.3C20.0020.0002] # CUNEIFORM SIGN EZEN TIMES LU
-120B3 ; [.3C21.0020.0002] # CUNEIFORM SIGN EZEN TIMES U2
-120B4 ; [.3C22.0020.0002] # CUNEIFORM SIGN EZEN TIMES UD
-120B5 ; [.3C23.0020.0002] # CUNEIFORM SIGN GA
-120B6 ; [.3C24.0020.0002] # CUNEIFORM SIGN GA GUNU
-120B7 ; [.3C25.0020.0002] # CUNEIFORM SIGN GA2
-120B8 ; [.3C26.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA
-120B9 ; [.3C27.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS HA
-120BA ; [.3C28.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS IGI
-120BB ; [.3C29.0020.0002] # CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB
-120BC ; [.3C2A.0020.0002] # CUNEIFORM SIGN GA2 TIMES AN
-120BD ; [.3C2B.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH
-120BE ; [.3C2C.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL
-120BF ; [.3C2D.0020.0002] # CUNEIFORM SIGN GA2 TIMES BAD
-120C0 ; [.3C2E.0020.0002] # CUNEIFORM SIGN GA2 TIMES BAR PLUS RA
-120C1 ; [.3C2F.0020.0002] # CUNEIFORM SIGN GA2 TIMES BUR
-120C2 ; [.3C30.0020.0002] # CUNEIFORM SIGN GA2 TIMES BUR PLUS RA
-120C3 ; [.3C31.0020.0002] # CUNEIFORM SIGN GA2 TIMES DA
-120C4 ; [.3C32.0020.0002] # CUNEIFORM SIGN GA2 TIMES DI
-120C5 ; [.3C33.0020.0002] # CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE
-120C6 ; [.3C34.0020.0002] # CUNEIFORM SIGN GA2 TIMES DUB
-120C7 ; [.3C35.0020.0002] # CUNEIFORM SIGN GA2 TIMES EL
-120C8 ; [.3C36.0020.0002] # CUNEIFORM SIGN GA2 TIMES EL PLUS LA
-120C9 ; [.3C37.0020.0002] # CUNEIFORM SIGN GA2 TIMES EN
-120CA ; [.3C38.0020.0002] # CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU
-120CB ; [.3C39.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAN2 TENU
-120CC ; [.3C3A.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAR
-120CD ; [.3C3B.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI
-120CE ; [.3C3C.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI4
-120CF ; [.3C3D.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI4 PLUS A
-120D0 ; [.3C3E.0020.0002] # CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU
-120D1 ; [.3C3F.0020.0002] # CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2
-120D2 ; [.3C40.0020.0002] # CUNEIFORM SIGN GA2 TIMES HAL
-120D3 ; [.3C41.0020.0002] # CUNEIFORM SIGN GA2 TIMES HAL PLUS LA
-120D4 ; [.3C42.0020.0002] # CUNEIFORM SIGN GA2 TIMES HI PLUS LI
-120D5 ; [.3C43.0020.0002] # CUNEIFORM SIGN GA2 TIMES HUB2
-120D6 ; [.3C44.0020.0002] # CUNEIFORM SIGN GA2 TIMES IGI GUNU
-120D7 ; [.3C45.0020.0002] # CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH
-120D8 ; [.3C46.0020.0002] # CUNEIFORM SIGN GA2 TIMES KAK
-120D9 ; [.3C47.0020.0002] # CUNEIFORM SIGN GA2 TIMES KASKAL
-120DA ; [.3C48.0020.0002] # CUNEIFORM SIGN GA2 TIMES KID
-120DB ; [.3C49.0020.0002] # CUNEIFORM SIGN GA2 TIMES KID PLUS LAL
-120DC ; [.3C4A.0020.0002] # CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN
-120DD ; [.3C4B.0020.0002] # CUNEIFORM SIGN GA2 TIMES LA
-120DE ; [.3C4C.0020.0002] # CUNEIFORM SIGN GA2 TIMES ME PLUS EN
-120DF ; [.3C4D.0020.0002] # CUNEIFORM SIGN GA2 TIMES MI
-120E0 ; [.3C4E.0020.0002] # CUNEIFORM SIGN GA2 TIMES NUN
-120E1 ; [.3C4F.0020.0002] # CUNEIFORM SIGN GA2 TIMES NUN OVER NUN
-120E2 ; [.3C50.0020.0002] # CUNEIFORM SIGN GA2 TIMES PA
-120E3 ; [.3C51.0020.0002] # CUNEIFORM SIGN GA2 TIMES SAL
-120E4 ; [.3C52.0020.0002] # CUNEIFORM SIGN GA2 TIMES SAR
-120E5 ; [.3C53.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHE
-120E6 ; [.3C54.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR
-120E7 ; [.3C55.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHID
-120E8 ; [.3C56.0020.0002] # CUNEIFORM SIGN GA2 TIMES SUM
-120E9 ; [.3C57.0020.0002] # CUNEIFORM SIGN GA2 TIMES TAK4
-120EA ; [.3C58.0020.0002] # CUNEIFORM SIGN GA2 TIMES U
-120EB ; [.3C59.0020.0002] # CUNEIFORM SIGN GA2 TIMES UD
-120EC ; [.3C5A.0020.0002] # CUNEIFORM SIGN GA2 TIMES UD PLUS DU
-120ED ; [.3C5B.0020.0002] # CUNEIFORM SIGN GA2 OVER GA2
-120EE ; [.3C5C.0020.0002] # CUNEIFORM SIGN GABA
-120EF ; [.3C5D.0020.0002] # CUNEIFORM SIGN GABA CROSSING GABA
-120F0 ; [.3C5E.0020.0002] # CUNEIFORM SIGN GAD
-120F1 ; [.3C5F.0020.0002] # CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR
-120F2 ; [.3C60.0020.0002] # CUNEIFORM SIGN GAL
-120F3 ; [.3C61.0020.0002] # CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR
-120F4 ; [.3C62.0020.0002] # CUNEIFORM SIGN GALAM
-120F5 ; [.3C63.0020.0002] # CUNEIFORM SIGN GAM
-120F6 ; [.3C64.0020.0002] # CUNEIFORM SIGN GAN
-120F7 ; [.3C65.0020.0002] # CUNEIFORM SIGN GAN2
-120F8 ; [.3C66.0020.0002] # CUNEIFORM SIGN GAN2 TENU
-120F9 ; [.3C67.0020.0002] # CUNEIFORM SIGN GAN2 OVER GAN2
-120FA ; [.3C68.0020.0002] # CUNEIFORM SIGN GAN2 CROSSING GAN2
-120FB ; [.3C69.0020.0002] # CUNEIFORM SIGN GAR
-120FC ; [.3C6A.0020.0002] # CUNEIFORM SIGN GAR3
-120FD ; [.3C6B.0020.0002] # CUNEIFORM SIGN GASHAN
-120FE ; [.3C6C.0020.0002] # CUNEIFORM SIGN GESHTIN
-120FF ; [.3C6D.0020.0002] # CUNEIFORM SIGN GESHTIN TIMES KUR
-12100 ; [.3C6E.0020.0002] # CUNEIFORM SIGN GI
-12101 ; [.3C6F.0020.0002] # CUNEIFORM SIGN GI TIMES E
-12102 ; [.3C70.0020.0002] # CUNEIFORM SIGN GI TIMES U
-12103 ; [.3C71.0020.0002] # CUNEIFORM SIGN GI CROSSING GI
-12104 ; [.3C72.0020.0002] # CUNEIFORM SIGN GI4
-12105 ; [.3C73.0020.0002] # CUNEIFORM SIGN GI4 OVER GI4
-12106 ; [.3C74.0020.0002] # CUNEIFORM SIGN GI4 CROSSING GI4
-12107 ; [.3C75.0020.0002] # CUNEIFORM SIGN GIDIM
-12108 ; [.3C76.0020.0002] # CUNEIFORM SIGN GIR2
-12109 ; [.3C77.0020.0002] # CUNEIFORM SIGN GIR2 GUNU
-1210A ; [.3C78.0020.0002] # CUNEIFORM SIGN GIR3
-1210B ; [.3C79.0020.0002] # CUNEIFORM SIGN GIR3 TIMES A PLUS IGI
-1210C ; [.3C7A.0020.0002] # CUNEIFORM SIGN GIR3 TIMES GAN2 TENU
-1210D ; [.3C7B.0020.0002] # CUNEIFORM SIGN GIR3 TIMES IGI
-1210E ; [.3C7C.0020.0002] # CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI
-1210F ; [.3C7D.0020.0002] # CUNEIFORM SIGN GIR3 TIMES PA
-12110 ; [.3C7E.0020.0002] # CUNEIFORM SIGN GISAL
-12111 ; [.3C7F.0020.0002] # CUNEIFORM SIGN GISH
-12112 ; [.3C80.0020.0002] # CUNEIFORM SIGN GISH CROSSING GISH
-12113 ; [.3C81.0020.0002] # CUNEIFORM SIGN GISH TIMES BAD
-12114 ; [.3C82.0020.0002] # CUNEIFORM SIGN GISH TIMES TAK4
-12115 ; [.3C83.0020.0002] # CUNEIFORM SIGN GISH TENU
-12116 ; [.3C84.0020.0002] # CUNEIFORM SIGN GU
-12117 ; [.3C85.0020.0002] # CUNEIFORM SIGN GU CROSSING GU
-12118 ; [.3C86.0020.0002] # CUNEIFORM SIGN GU2
-12119 ; [.3C87.0020.0002] # CUNEIFORM SIGN GU2 TIMES KAK
-1211A ; [.3C88.0020.0002] # CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU
-1211B ; [.3C89.0020.0002] # CUNEIFORM SIGN GU2 TIMES NUN
-1211C ; [.3C8A.0020.0002] # CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2
-1211D ; [.3C8B.0020.0002] # CUNEIFORM SIGN GU2 GUNU
-1211E ; [.3C8C.0020.0002] # CUNEIFORM SIGN GUD
-1211F ; [.3C8D.0020.0002] # CUNEIFORM SIGN GUD TIMES A PLUS KUR
-12120 ; [.3C8E.0020.0002] # CUNEIFORM SIGN GUD TIMES KUR
-12121 ; [.3C8F.0020.0002] # CUNEIFORM SIGN GUD OVER GUD LUGAL
-12122 ; [.3C90.0020.0002] # CUNEIFORM SIGN GUL
-12123 ; [.3C91.0020.0002] # CUNEIFORM SIGN GUM
-12124 ; [.3C92.0020.0002] # CUNEIFORM SIGN GUM TIMES SHE
-12125 ; [.3C93.0020.0002] # CUNEIFORM SIGN GUR
-12126 ; [.3C94.0020.0002] # CUNEIFORM SIGN GUR7
-12127 ; [.3C95.0020.0002] # CUNEIFORM SIGN GURUN
-12128 ; [.3C96.0020.0002] # CUNEIFORM SIGN GURUSH
-12129 ; [.3C97.0020.0002] # CUNEIFORM SIGN HA
-1212A ; [.3C98.0020.0002] # CUNEIFORM SIGN HA TENU
-1212B ; [.3C99.0020.0002] # CUNEIFORM SIGN HA GUNU
-1212C ; [.3C9A.0020.0002] # CUNEIFORM SIGN HAL
-1212D ; [.3C9B.0020.0002] # CUNEIFORM SIGN HI
-1212E ; [.3C9C.0020.0002] # CUNEIFORM SIGN HI TIMES ASH
-1212F ; [.3C9D.0020.0002] # CUNEIFORM SIGN HI TIMES ASH2
-12130 ; [.3C9E.0020.0002] # CUNEIFORM SIGN HI TIMES BAD
-12131 ; [.3C9F.0020.0002] # CUNEIFORM SIGN HI TIMES DISH
-12132 ; [.3CA0.0020.0002] # CUNEIFORM SIGN HI TIMES GAD
-12133 ; [.3CA1.0020.0002] # CUNEIFORM SIGN HI TIMES KIN
-12134 ; [.3CA2.0020.0002] # CUNEIFORM SIGN HI TIMES NUN
-12135 ; [.3CA3.0020.0002] # CUNEIFORM SIGN HI TIMES SHE
-12136 ; [.3CA4.0020.0002] # CUNEIFORM SIGN HI TIMES U
-12137 ; [.3CA5.0020.0002] # CUNEIFORM SIGN HU
-12138 ; [.3CA6.0020.0002] # CUNEIFORM SIGN HUB2
-12139 ; [.3CA7.0020.0002] # CUNEIFORM SIGN HUB2 TIMES AN
-1213A ; [.3CA8.0020.0002] # CUNEIFORM SIGN HUB2 TIMES HAL
-1213B ; [.3CA9.0020.0002] # CUNEIFORM SIGN HUB2 TIMES KASKAL
-1213C ; [.3CAA.0020.0002] # CUNEIFORM SIGN HUB2 TIMES LISH
-1213D ; [.3CAB.0020.0002] # CUNEIFORM SIGN HUB2 TIMES UD
-1213E ; [.3CAC.0020.0002] # CUNEIFORM SIGN HUL2
-1213F ; [.3CAD.0020.0002] # CUNEIFORM SIGN I
-12140 ; [.3CAE.0020.0002] # CUNEIFORM SIGN I A
-12141 ; [.3CAF.0020.0002] # CUNEIFORM SIGN IB
-12142 ; [.3CB0.0020.0002] # CUNEIFORM SIGN IDIM
-12143 ; [.3CB1.0020.0002] # CUNEIFORM SIGN IDIM OVER IDIM BUR
-12144 ; [.3CB2.0020.0002] # CUNEIFORM SIGN IDIM OVER IDIM SQUARED
-12145 ; [.3CB3.0020.0002] # CUNEIFORM SIGN IG
-12146 ; [.3CB4.0020.0002] # CUNEIFORM SIGN IGI
-12147 ; [.3CB5.0020.0002] # CUNEIFORM SIGN IGI DIB
-12148 ; [.3CB6.0020.0002] # CUNEIFORM SIGN IGI RI
-12149 ; [.3CB7.0020.0002] # CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD
-1214A ; [.3CB8.0020.0002] # CUNEIFORM SIGN IGI GUNU
-1214B ; [.3CB9.0020.0002] # CUNEIFORM SIGN IL
-1214C ; [.3CBA.0020.0002] # CUNEIFORM SIGN IL TIMES GAN2 TENU
-1214D ; [.3CBB.0020.0002] # CUNEIFORM SIGN IL2
-1214E ; [.3CBC.0020.0002] # CUNEIFORM SIGN IM
-1214F ; [.3CBD.0020.0002] # CUNEIFORM SIGN IM TIMES TAK4
-12150 ; [.3CBE.0020.0002] # CUNEIFORM SIGN IM CROSSING IM
-12151 ; [.3CBF.0020.0002] # CUNEIFORM SIGN IM OPPOSING IM
-12152 ; [.3CC0.0020.0002] # CUNEIFORM SIGN IM SQUARED
-12153 ; [.3CC1.0020.0002] # CUNEIFORM SIGN IMIN
-12154 ; [.3CC2.0020.0002] # CUNEIFORM SIGN IN
-12155 ; [.3CC3.0020.0002] # CUNEIFORM SIGN IR
-12156 ; [.3CC4.0020.0002] # CUNEIFORM SIGN ISH
-12157 ; [.3CC5.0020.0002] # CUNEIFORM SIGN KA
-12158 ; [.3CC6.0020.0002] # CUNEIFORM SIGN KA TIMES A
-12159 ; [.3CC7.0020.0002] # CUNEIFORM SIGN KA TIMES AD
-1215A ; [.3CC8.0020.0002] # CUNEIFORM SIGN KA TIMES AD PLUS KU3
-1215B ; [.3CC9.0020.0002] # CUNEIFORM SIGN KA TIMES ASH2
-1215C ; [.3CCA.0020.0002] # CUNEIFORM SIGN KA TIMES BAD
-1215D ; [.3CCB.0020.0002] # CUNEIFORM SIGN KA TIMES BALAG
-1215E ; [.3CCC.0020.0002] # CUNEIFORM SIGN KA TIMES BAR
-1215F ; [.3CCD.0020.0002] # CUNEIFORM SIGN KA TIMES BI
-12160 ; [.3CCE.0020.0002] # CUNEIFORM SIGN KA TIMES ERIN2
-12161 ; [.3CCF.0020.0002] # CUNEIFORM SIGN KA TIMES ESH2
-12162 ; [.3CD0.0020.0002] # CUNEIFORM SIGN KA TIMES GA
-12163 ; [.3CD1.0020.0002] # CUNEIFORM SIGN KA TIMES GAL
-12164 ; [.3CD2.0020.0002] # CUNEIFORM SIGN KA TIMES GAN2 TENU
-12165 ; [.3CD3.0020.0002] # CUNEIFORM SIGN KA TIMES GAR
-12166 ; [.3CD4.0020.0002] # CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A
-12167 ; [.3CD5.0020.0002] # CUNEIFORM SIGN KA TIMES GI
-12168 ; [.3CD6.0020.0002] # CUNEIFORM SIGN KA TIMES GIR2
-12169 ; [.3CD7.0020.0002] # CUNEIFORM SIGN KA TIMES GISH PLUS SAR
-1216A ; [.3CD8.0020.0002] # CUNEIFORM SIGN KA TIMES GISH CROSSING GISH
-1216B ; [.3CD9.0020.0002] # CUNEIFORM SIGN KA TIMES GU
-1216C ; [.3CDA.0020.0002] # CUNEIFORM SIGN KA TIMES GUR7
-1216D ; [.3CDB.0020.0002] # CUNEIFORM SIGN KA TIMES IGI
-1216E ; [.3CDC.0020.0002] # CUNEIFORM SIGN KA TIMES IM
-1216F ; [.3CDD.0020.0002] # CUNEIFORM SIGN KA TIMES KAK
-12170 ; [.3CDE.0020.0002] # CUNEIFORM SIGN KA TIMES KI
-12171 ; [.3CDF.0020.0002] # CUNEIFORM SIGN KA TIMES KID
-12172 ; [.3CE0.0020.0002] # CUNEIFORM SIGN KA TIMES LI
-12173 ; [.3CE1.0020.0002] # CUNEIFORM SIGN KA TIMES LU
-12174 ; [.3CE2.0020.0002] # CUNEIFORM SIGN KA TIMES ME
-12175 ; [.3CE3.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS DU
-12176 ; [.3CE4.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS GI
-12177 ; [.3CE5.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS TE
-12178 ; [.3CE6.0020.0002] # CUNEIFORM SIGN KA TIMES MI
-12179 ; [.3CE7.0020.0002] # CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ
-1217A ; [.3CE8.0020.0002] # CUNEIFORM SIGN KA TIMES NE
-1217B ; [.3CE9.0020.0002] # CUNEIFORM SIGN KA TIMES NUN
-1217C ; [.3CEA.0020.0002] # CUNEIFORM SIGN KA TIMES PI
-1217D ; [.3CEB.0020.0002] # CUNEIFORM SIGN KA TIMES RU
-1217E ; [.3CEC.0020.0002] # CUNEIFORM SIGN KA TIMES SA
-1217F ; [.3CED.0020.0002] # CUNEIFORM SIGN KA TIMES SAR
-12180 ; [.3CEE.0020.0002] # CUNEIFORM SIGN KA TIMES SHA
-12181 ; [.3CEF.0020.0002] # CUNEIFORM SIGN KA TIMES SHE
-12182 ; [.3CF0.0020.0002] # CUNEIFORM SIGN KA TIMES SHID
-12183 ; [.3CF1.0020.0002] # CUNEIFORM SIGN KA TIMES SHU
-12184 ; [.3CF2.0020.0002] # CUNEIFORM SIGN KA TIMES SIG
-12185 ; [.3CF3.0020.0002] # CUNEIFORM SIGN KA TIMES SUHUR
-12186 ; [.3CF4.0020.0002] # CUNEIFORM SIGN KA TIMES TAR
-12187 ; [.3CF5.0020.0002] # CUNEIFORM SIGN KA TIMES U
-12188 ; [.3CF6.0020.0002] # CUNEIFORM SIGN KA TIMES U2
-12189 ; [.3CF7.0020.0002] # CUNEIFORM SIGN KA TIMES UD
-1218A ; [.3CF8.0020.0002] # CUNEIFORM SIGN KA TIMES UMUM TIMES PA
-1218B ; [.3CF9.0020.0002] # CUNEIFORM SIGN KA TIMES USH
-1218C ; [.3CFA.0020.0002] # CUNEIFORM SIGN KA TIMES ZI
-1218D ; [.3CFB.0020.0002] # CUNEIFORM SIGN KA2
-1218E ; [.3CFC.0020.0002] # CUNEIFORM SIGN KA2 CROSSING KA2
-1218F ; [.3CFD.0020.0002] # CUNEIFORM SIGN KAB
-12190 ; [.3CFE.0020.0002] # CUNEIFORM SIGN KAD2
-12191 ; [.3CFF.0020.0002] # CUNEIFORM SIGN KAD3
-12192 ; [.3D00.0020.0002] # CUNEIFORM SIGN KAD4
-12193 ; [.3D01.0020.0002] # CUNEIFORM SIGN KAD5
-12194 ; [.3D02.0020.0002] # CUNEIFORM SIGN KAD5 OVER KAD5
-12195 ; [.3D03.0020.0002] # CUNEIFORM SIGN KAK
-12196 ; [.3D04.0020.0002] # CUNEIFORM SIGN KAK TIMES IGI GUNU
-12197 ; [.3D05.0020.0002] # CUNEIFORM SIGN KAL
-12198 ; [.3D06.0020.0002] # CUNEIFORM SIGN KAL TIMES BAD
-12199 ; [.3D07.0020.0002] # CUNEIFORM SIGN KAL CROSSING KAL
-1219A ; [.3D08.0020.0002] # CUNEIFORM SIGN KAM2
-1219B ; [.3D09.0020.0002] # CUNEIFORM SIGN KAM4
-1219C ; [.3D0A.0020.0002] # CUNEIFORM SIGN KASKAL
-1219D ; [.3D0B.0020.0002] # CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U
-1219E ; [.3D0C.0020.0002] # CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U
-1219F ; [.3D0D.0020.0002] # CUNEIFORM SIGN KESH2
-121A0 ; [.3D0E.0020.0002] # CUNEIFORM SIGN KI
-121A1 ; [.3D0F.0020.0002] # CUNEIFORM SIGN KI TIMES BAD
-121A2 ; [.3D10.0020.0002] # CUNEIFORM SIGN KI TIMES U
-121A3 ; [.3D11.0020.0002] # CUNEIFORM SIGN KI TIMES UD
-121A4 ; [.3D12.0020.0002] # CUNEIFORM SIGN KID
-121A5 ; [.3D13.0020.0002] # CUNEIFORM SIGN KIN
-121A6 ; [.3D14.0020.0002] # CUNEIFORM SIGN KISAL
-121A7 ; [.3D15.0020.0002] # CUNEIFORM SIGN KISH
-121A8 ; [.3D16.0020.0002] # CUNEIFORM SIGN KISIM5
-121A9 ; [.3D17.0020.0002] # CUNEIFORM SIGN KISIM5 OVER KISIM5
-121AA ; [.3D18.0020.0002] # CUNEIFORM SIGN KU
-121AB ; [.3D19.0020.0002] # CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2
-121AC ; [.3D1A.0020.0002] # CUNEIFORM SIGN KU3
-121AD ; [.3D1B.0020.0002] # CUNEIFORM SIGN KU4
-121AE ; [.3D1C.0020.0002] # CUNEIFORM SIGN KU4 VARIANT FORM
-121AF ; [.3D1D.0020.0002] # CUNEIFORM SIGN KU7
-121B0 ; [.3D1E.0020.0002] # CUNEIFORM SIGN KUL
-121B1 ; [.3D1F.0020.0002] # CUNEIFORM SIGN KUL GUNU
-121B2 ; [.3D20.0020.0002] # CUNEIFORM SIGN KUN
-121B3 ; [.3D21.0020.0002] # CUNEIFORM SIGN KUR
-121B4 ; [.3D22.0020.0002] # CUNEIFORM SIGN KUR OPPOSING KUR
-121B5 ; [.3D23.0020.0002] # CUNEIFORM SIGN KUSHU2
-121B6 ; [.3D24.0020.0002] # CUNEIFORM SIGN KWU318
-121B7 ; [.3D25.0020.0002] # CUNEIFORM SIGN LA
-121B8 ; [.3D26.0020.0002] # CUNEIFORM SIGN LAGAB
-121B9 ; [.3D27.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A
-121BA ; [.3D28.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA
-121BB ; [.3D29.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS GAR
-121BC ; [.3D2A.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS LAL
-121BD ; [.3D2B.0020.0002] # CUNEIFORM SIGN LAGAB TIMES AL
-121BE ; [.3D2C.0020.0002] # CUNEIFORM SIGN LAGAB TIMES AN
-121BF ; [.3D2D.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU
-121C0 ; [.3D2E.0020.0002] # CUNEIFORM SIGN LAGAB TIMES BAD
-121C1 ; [.3D2F.0020.0002] # CUNEIFORM SIGN LAGAB TIMES BI
-121C2 ; [.3D30.0020.0002] # CUNEIFORM SIGN LAGAB TIMES DAR
-121C3 ; [.3D31.0020.0002] # CUNEIFORM SIGN LAGAB TIMES EN
-121C4 ; [.3D32.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GA
-121C5 ; [.3D33.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GAR
-121C6 ; [.3D34.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GUD
-121C7 ; [.3D35.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD
-121C8 ; [.3D36.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HA
-121C9 ; [.3D37.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HAL
-121CA ; [.3D38.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN
-121CB ; [.3D39.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IGI GUNU
-121CC ; [.3D3A.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM
-121CD ; [.3D3B.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM PLUS HA
-121CE ; [.3D3C.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM PLUS LU
-121CF ; [.3D3D.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KI
-121D0 ; [.3D3E.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KIN
-121D1 ; [.3D3F.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KU3
-121D2 ; [.3D40.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KUL
-121D3 ; [.3D41.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A
-121D4 ; [.3D42.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LAGAB
-121D5 ; [.3D43.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LISH
-121D6 ; [.3D44.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LU
-121D7 ; [.3D45.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LUL
-121D8 ; [.3D46.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ME
-121D9 ; [.3D47.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ME PLUS EN
-121DA ; [.3D48.0020.0002] # CUNEIFORM SIGN LAGAB TIMES MUSH
-121DB ; [.3D49.0020.0002] # CUNEIFORM SIGN LAGAB TIMES NE
-121DC ; [.3D4A.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM
-121DD ; [.3D4B.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2
-121DE ; [.3D4C.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU
-121DF ; [.3D4D.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHU2
-121E0 ; [.3D4E.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2
-121E1 ; [.3D4F.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SUM
-121E2 ; [.3D50.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TAG
-121E3 ; [.3D51.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TAK4
-121E4 ; [.3D52.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA
-121E5 ; [.3D53.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U
-121E6 ; [.3D54.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U PLUS A
-121E7 ; [.3D55.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U
-121E8 ; [.3D56.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH
-121E9 ; [.3D57.0020.0002] # CUNEIFORM SIGN LAGAB TIMES UD
-121EA ; [.3D58.0020.0002] # CUNEIFORM SIGN LAGAB TIMES USH
-121EB ; [.3D59.0020.0002] # CUNEIFORM SIGN LAGAB SQUARED
-121EC ; [.3D5A.0020.0002] # CUNEIFORM SIGN LAGAR
-121ED ; [.3D5B.0020.0002] # CUNEIFORM SIGN LAGAR TIMES SHE
-121EE ; [.3D5C.0020.0002] # CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM
-121EF ; [.3D5D.0020.0002] # CUNEIFORM SIGN LAGAR GUNU
-121F0 ; [.3D5E.0020.0002] # CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE
-121F1 ; [.3D5F.0020.0002] # CUNEIFORM SIGN LAHSHU
-121F2 ; [.3D60.0020.0002] # CUNEIFORM SIGN LAL
-121F3 ; [.3D61.0020.0002] # CUNEIFORM SIGN LAL TIMES LAL
-121F4 ; [.3D62.0020.0002] # CUNEIFORM SIGN LAM
-121F5 ; [.3D63.0020.0002] # CUNEIFORM SIGN LAM TIMES KUR
-121F6 ; [.3D64.0020.0002] # CUNEIFORM SIGN LAM TIMES KUR PLUS RU
-121F7 ; [.3D65.0020.0002] # CUNEIFORM SIGN LI
-121F8 ; [.3D66.0020.0002] # CUNEIFORM SIGN LIL
-121F9 ; [.3D67.0020.0002] # CUNEIFORM SIGN LIMMU2
-121FA ; [.3D68.0020.0002] # CUNEIFORM SIGN LISH
-121FB ; [.3D69.0020.0002] # CUNEIFORM SIGN LU
-121FC ; [.3D6A.0020.0002] # CUNEIFORM SIGN LU TIMES BAD
-121FD ; [.3D6B.0020.0002] # CUNEIFORM SIGN LU2
-121FE ; [.3D6C.0020.0002] # CUNEIFORM SIGN LU2 TIMES AL
-121FF ; [.3D6D.0020.0002] # CUNEIFORM SIGN LU2 TIMES BAD
-12200 ; [.3D6E.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2
-12201 ; [.3D6F.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2 TENU
-12202 ; [.3D70.0020.0002] # CUNEIFORM SIGN LU2 TIMES GAN2 TENU
-12203 ; [.3D71.0020.0002] # CUNEIFORM SIGN LU2 TIMES HI TIMES BAD
-12204 ; [.3D72.0020.0002] # CUNEIFORM SIGN LU2 TIMES IM
-12205 ; [.3D73.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD2
-12206 ; [.3D74.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD3
-12207 ; [.3D75.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH
-12208 ; [.3D76.0020.0002] # CUNEIFORM SIGN LU2 TIMES KI
-12209 ; [.3D77.0020.0002] # CUNEIFORM SIGN LU2 TIMES LA PLUS ASH
-1220A ; [.3D78.0020.0002] # CUNEIFORM SIGN LU2 TIMES LAGAB
-1220B ; [.3D79.0020.0002] # CUNEIFORM SIGN LU2 TIMES ME PLUS EN
-1220C ; [.3D7A.0020.0002] # CUNEIFORM SIGN LU2 TIMES NE
-1220D ; [.3D7B.0020.0002] # CUNEIFORM SIGN LU2 TIMES NU
-1220E ; [.3D7C.0020.0002] # CUNEIFORM SIGN LU2 TIMES SI PLUS ASH
-1220F ; [.3D7D.0020.0002] # CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU
-12210 ; [.3D7E.0020.0002] # CUNEIFORM SIGN LU2 TIMES TUG2
-12211 ; [.3D7F.0020.0002] # CUNEIFORM SIGN LU2 TENU
-12212 ; [.3D80.0020.0002] # CUNEIFORM SIGN LU2 CROSSING LU2
-12213 ; [.3D81.0020.0002] # CUNEIFORM SIGN LU2 OPPOSING LU2
-12214 ; [.3D82.0020.0002] # CUNEIFORM SIGN LU2 SQUARED
-12215 ; [.3D83.0020.0002] # CUNEIFORM SIGN LU2 SHESHIG
-12216 ; [.3D84.0020.0002] # CUNEIFORM SIGN LU3
-12217 ; [.3D85.0020.0002] # CUNEIFORM SIGN LUGAL
-12218 ; [.3D86.0020.0002] # CUNEIFORM SIGN LUGAL OVER LUGAL
-12219 ; [.3D87.0020.0002] # CUNEIFORM SIGN LUGAL OPPOSING LUGAL
-1221A ; [.3D88.0020.0002] # CUNEIFORM SIGN LUGAL SHESHIG
-1221B ; [.3D89.0020.0002] # CUNEIFORM SIGN LUH
-1221C ; [.3D8A.0020.0002] # CUNEIFORM SIGN LUL
-1221D ; [.3D8B.0020.0002] # CUNEIFORM SIGN LUM
-1221E ; [.3D8C.0020.0002] # CUNEIFORM SIGN LUM OVER LUM
-1221F ; [.3D8D.0020.0002] # CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR
-12220 ; [.3D8E.0020.0002] # CUNEIFORM SIGN MA
-12221 ; [.3D8F.0020.0002] # CUNEIFORM SIGN MA TIMES TAK4
-12222 ; [.3D90.0020.0002] # CUNEIFORM SIGN MA GUNU
-12223 ; [.3D91.0020.0002] # CUNEIFORM SIGN MA2
-12224 ; [.3D92.0020.0002] # CUNEIFORM SIGN MAH
-12225 ; [.3D93.0020.0002] # CUNEIFORM SIGN MAR
-12226 ; [.3D94.0020.0002] # CUNEIFORM SIGN MASH
-12227 ; [.3D95.0020.0002] # CUNEIFORM SIGN MASH2
-12228 ; [.3D96.0020.0002] # CUNEIFORM SIGN ME
-12229 ; [.3D97.0020.0002] # CUNEIFORM SIGN MES
-1222A ; [.3D98.0020.0002] # CUNEIFORM SIGN MI
-1222B ; [.3D99.0020.0002] # CUNEIFORM SIGN MIN
-1222C ; [.3D9A.0020.0002] # CUNEIFORM SIGN MU
-1222D ; [.3D9B.0020.0002] # CUNEIFORM SIGN MU OVER MU
-1222E ; [.3D9C.0020.0002] # CUNEIFORM SIGN MUG
-1222F ; [.3D9D.0020.0002] # CUNEIFORM SIGN MUG GUNU
-12230 ; [.3D9E.0020.0002] # CUNEIFORM SIGN MUNSUB
-12231 ; [.3D9F.0020.0002] # CUNEIFORM SIGN MURGU2
-12232 ; [.3DA0.0020.0002] # CUNEIFORM SIGN MUSH
-12233 ; [.3DA1.0020.0002] # CUNEIFORM SIGN MUSH TIMES A
-12234 ; [.3DA2.0020.0002] # CUNEIFORM SIGN MUSH TIMES KUR
-12235 ; [.3DA3.0020.0002] # CUNEIFORM SIGN MUSH TIMES ZA
-12236 ; [.3DA4.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH
-12237 ; [.3DA5.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA
-12238 ; [.3DA6.0020.0002] # CUNEIFORM SIGN MUSH CROSSING MUSH
-12239 ; [.3DA7.0020.0002] # CUNEIFORM SIGN MUSH3
-1223A ; [.3DA8.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES A
-1223B ; [.3DA9.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES A PLUS DI
-1223C ; [.3DAA.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES DI
-1223D ; [.3DAB.0020.0002] # CUNEIFORM SIGN MUSH3 GUNU
-1223E ; [.3DAC.0020.0002] # CUNEIFORM SIGN NA
-1223F ; [.3DAD.0020.0002] # CUNEIFORM SIGN NA2
-12240 ; [.3DAE.0020.0002] # CUNEIFORM SIGN NAGA
-12241 ; [.3DAF.0020.0002] # CUNEIFORM SIGN NAGA INVERTED
-12242 ; [.3DB0.0020.0002] # CUNEIFORM SIGN NAGA TIMES SHU TENU
-12243 ; [.3DB1.0020.0002] # CUNEIFORM SIGN NAGA OPPOSING NAGA
-12244 ; [.3DB2.0020.0002] # CUNEIFORM SIGN NAGAR
-12245 ; [.3DB3.0020.0002] # CUNEIFORM SIGN NAM NUTILLU
-12246 ; [.3DB4.0020.0002] # CUNEIFORM SIGN NAM
-12247 ; [.3DB5.0020.0002] # CUNEIFORM SIGN NAM2
-12248 ; [.3DB6.0020.0002] # CUNEIFORM SIGN NE
-12249 ; [.3DB7.0020.0002] # CUNEIFORM SIGN NE TIMES A
-1224A ; [.3DB8.0020.0002] # CUNEIFORM SIGN NE TIMES UD
-1224B ; [.3DB9.0020.0002] # CUNEIFORM SIGN NE SHESHIG
-1224C ; [.3DBA.0020.0002] # CUNEIFORM SIGN NI
-1224D ; [.3DBB.0020.0002] # CUNEIFORM SIGN NI TIMES E
-1224E ; [.3DBC.0020.0002] # CUNEIFORM SIGN NI2
-1224F ; [.3DBD.0020.0002] # CUNEIFORM SIGN NIM
-12250 ; [.3DBE.0020.0002] # CUNEIFORM SIGN NIM TIMES GAN2 TENU
-12251 ; [.3DBF.0020.0002] # CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU
-12252 ; [.3DC0.0020.0002] # CUNEIFORM SIGN NINDA2
-12253 ; [.3DC1.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES AN
-12254 ; [.3DC2.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ASH
-12255 ; [.3DC3.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH
-12256 ; [.3DC4.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES GUD
-12257 ; [.3DC5.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU
-12258 ; [.3DC6.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES NE
-12259 ; [.3DC7.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES NUN
-1225A ; [.3DC8.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE
-1225B ; [.3DC9.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN
-1225C ; [.3DCA.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH
-1225D ; [.3DCB.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH
-1225E ; [.3DCC.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH
-1225F ; [.3DCD.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES USH
-12260 ; [.3DCE.0020.0002] # CUNEIFORM SIGN NISAG
-12261 ; [.3DCF.0020.0002] # CUNEIFORM SIGN NU
-12262 ; [.3DD0.0020.0002] # CUNEIFORM SIGN NU11
-122D4 ; [.3DD1.0020.0002] # CUNEIFORM SIGN SHIR TENU
-122D5 ; [.3DD2.0020.0002] # CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR
-12263 ; [.3DD3.0020.0002] # CUNEIFORM SIGN NUN
-12264 ; [.3DD4.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES GAR
-12265 ; [.3DD5.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES MASH
-12266 ; [.3DD6.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES SAL
-12267 ; [.3DD7.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL
-12268 ; [.3DD8.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES USH
-12269 ; [.3DD9.0020.0002] # CUNEIFORM SIGN NUN TENU
-1226A ; [.3DDA.0020.0002] # CUNEIFORM SIGN NUN OVER NUN
-1226B ; [.3DDB.0020.0002] # CUNEIFORM SIGN NUN CROSSING NUN
-1226C ; [.3DDC.0020.0002] # CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR
-1226D ; [.3DDD.0020.0002] # CUNEIFORM SIGN NUNUZ
-1226E ; [.3DDE.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB
-1226F ; [.3DDF.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES BI
-12270 ; [.3DE0.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES DUG
-12271 ; [.3DE1.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES GUD
-12272 ; [.3DE2.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU
-12273 ; [.3DE3.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3
-12274 ; [.3DE4.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES LA
-12275 ; [.3DE5.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES NE
-12276 ; [.3DE6.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3
-12277 ; [.3DE7.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES U2
-12278 ; [.3DE8.0020.0002] # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI
-12279 ; [.3DE9.0020.0002] # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U
-1227A ; [.3DEA.0020.0002] # CUNEIFORM SIGN PA
-1227B ; [.3DEB.0020.0002] # CUNEIFORM SIGN PAD
-1227C ; [.3DEC.0020.0002] # CUNEIFORM SIGN PAN
-1227D ; [.3DED.0020.0002] # CUNEIFORM SIGN PAP
-1227E ; [.3DEE.0020.0002] # CUNEIFORM SIGN PESH2
-1227F ; [.3DEF.0020.0002] # CUNEIFORM SIGN PI
-12280 ; [.3DF0.0020.0002] # CUNEIFORM SIGN PI TIMES A
-12281 ; [.3DF1.0020.0002] # CUNEIFORM SIGN PI TIMES AB
-12282 ; [.3DF2.0020.0002] # CUNEIFORM SIGN PI TIMES BI
-12283 ; [.3DF3.0020.0002] # CUNEIFORM SIGN PI TIMES BU
-12284 ; [.3DF4.0020.0002] # CUNEIFORM SIGN PI TIMES E
-12285 ; [.3DF5.0020.0002] # CUNEIFORM SIGN PI TIMES I
-12286 ; [.3DF6.0020.0002] # CUNEIFORM SIGN PI TIMES IB
-12287 ; [.3DF7.0020.0002] # CUNEIFORM SIGN PI TIMES U
-12288 ; [.3DF8.0020.0002] # CUNEIFORM SIGN PI TIMES U2
-12289 ; [.3DF9.0020.0002] # CUNEIFORM SIGN PI CROSSING PI
-1228A ; [.3DFA.0020.0002] # CUNEIFORM SIGN PIRIG
-1228B ; [.3DFB.0020.0002] # CUNEIFORM SIGN PIRIG TIMES KAL
-1228C ; [.3DFC.0020.0002] # CUNEIFORM SIGN PIRIG TIMES UD
-1228D ; [.3DFD.0020.0002] # CUNEIFORM SIGN PIRIG TIMES ZA
-1228E ; [.3DFE.0020.0002] # CUNEIFORM SIGN PIRIG OPPOSING PIRIG
-1228F ; [.3DFF.0020.0002] # CUNEIFORM SIGN RA
-12290 ; [.3E00.0020.0002] # CUNEIFORM SIGN RAB
-12291 ; [.3E01.0020.0002] # CUNEIFORM SIGN RI
-12292 ; [.3E02.0020.0002] # CUNEIFORM SIGN RU
-12293 ; [.3E03.0020.0002] # CUNEIFORM SIGN SA
-12294 ; [.3E04.0020.0002] # CUNEIFORM SIGN SAG NUTILLU
-12295 ; [.3E05.0020.0002] # CUNEIFORM SIGN SAG
-12296 ; [.3E06.0020.0002] # CUNEIFORM SIGN SAG TIMES A
-12297 ; [.3E07.0020.0002] # CUNEIFORM SIGN SAG TIMES DU
-12298 ; [.3E08.0020.0002] # CUNEIFORM SIGN SAG TIMES DUB
-12299 ; [.3E09.0020.0002] # CUNEIFORM SIGN SAG TIMES HA
-1229A ; [.3E0A.0020.0002] # CUNEIFORM SIGN SAG TIMES KAK
-1229B ; [.3E0B.0020.0002] # CUNEIFORM SIGN SAG TIMES KUR
-1229C ; [.3E0C.0020.0002] # CUNEIFORM SIGN SAG TIMES LUM
-1229D ; [.3E0D.0020.0002] # CUNEIFORM SIGN SAG TIMES MI
-1229E ; [.3E0E.0020.0002] # CUNEIFORM SIGN SAG TIMES NUN
-1229F ; [.3E0F.0020.0002] # CUNEIFORM SIGN SAG TIMES SAL
-122A0 ; [.3E10.0020.0002] # CUNEIFORM SIGN SAG TIMES SHID
-122A1 ; [.3E11.0020.0002] # CUNEIFORM SIGN SAG TIMES TAB
-122A2 ; [.3E12.0020.0002] # CUNEIFORM SIGN SAG TIMES U2
-122A3 ; [.3E13.0020.0002] # CUNEIFORM SIGN SAG TIMES UB
-122A4 ; [.3E14.0020.0002] # CUNEIFORM SIGN SAG TIMES UM
-122A5 ; [.3E15.0020.0002] # CUNEIFORM SIGN SAG TIMES UR
-122A6 ; [.3E16.0020.0002] # CUNEIFORM SIGN SAG TIMES USH
-122A7 ; [.3E17.0020.0002] # CUNEIFORM SIGN SAG OVER SAG
-122A8 ; [.3E18.0020.0002] # CUNEIFORM SIGN SAG GUNU
-122A9 ; [.3E19.0020.0002] # CUNEIFORM SIGN SAL
-122AA ; [.3E1A.0020.0002] # CUNEIFORM SIGN SAL LAGAB TIMES ASH2
-122AB ; [.3E1B.0020.0002] # CUNEIFORM SIGN SANGA2
-122AC ; [.3E1C.0020.0002] # CUNEIFORM SIGN SAR
-122AD ; [.3E1D.0020.0002] # CUNEIFORM SIGN SHA
-122AE ; [.3E1E.0020.0002] # CUNEIFORM SIGN SHA3
-122AF ; [.3E1F.0020.0002] # CUNEIFORM SIGN SHA3 TIMES A
-122B0 ; [.3E20.0020.0002] # CUNEIFORM SIGN SHA3 TIMES BAD
-122B1 ; [.3E21.0020.0002] # CUNEIFORM SIGN SHA3 TIMES GISH
-122B2 ; [.3E22.0020.0002] # CUNEIFORM SIGN SHA3 TIMES NE
-122B3 ; [.3E23.0020.0002] # CUNEIFORM SIGN SHA3 TIMES SHU2
-122B4 ; [.3E24.0020.0002] # CUNEIFORM SIGN SHA3 TIMES TUR
-122B5 ; [.3E25.0020.0002] # CUNEIFORM SIGN SHA3 TIMES U
-122B6 ; [.3E26.0020.0002] # CUNEIFORM SIGN SHA3 TIMES U PLUS A
-122B7 ; [.3E27.0020.0002] # CUNEIFORM SIGN SHA6
-122B8 ; [.3E28.0020.0002] # CUNEIFORM SIGN SHAB6
-122B9 ; [.3E29.0020.0002] # CUNEIFORM SIGN SHAR2
-122BA ; [.3E2A.0020.0002] # CUNEIFORM SIGN SHE
-122BB ; [.3E2B.0020.0002] # CUNEIFORM SIGN SHE HU
-122BC ; [.3E2C.0020.0002] # CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR
-122BD ; [.3E2D.0020.0002] # CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR
-122BE ; [.3E2E.0020.0002] # CUNEIFORM SIGN SHEG9
-122BF ; [.3E2F.0020.0002] # CUNEIFORM SIGN SHEN
-122C0 ; [.3E30.0020.0002] # CUNEIFORM SIGN SHESH
-122C1 ; [.3E31.0020.0002] # CUNEIFORM SIGN SHESH2
-122C2 ; [.3E32.0020.0002] # CUNEIFORM SIGN SHESHLAM
-122C3 ; [.3E33.0020.0002] # CUNEIFORM SIGN SHID
-122C4 ; [.3E34.0020.0002] # CUNEIFORM SIGN SHID TIMES A
-122C5 ; [.3E35.0020.0002] # CUNEIFORM SIGN SHID TIMES IM
-122C6 ; [.3E36.0020.0002] # CUNEIFORM SIGN SHIM
-122C7 ; [.3E37.0020.0002] # CUNEIFORM SIGN SHIM TIMES A
-122C8 ; [.3E38.0020.0002] # CUNEIFORM SIGN SHIM TIMES BAL
-122C9 ; [.3E39.0020.0002] # CUNEIFORM SIGN SHIM TIMES BULUG
-122CA ; [.3E3A.0020.0002] # CUNEIFORM SIGN SHIM TIMES DIN
-122CB ; [.3E3B.0020.0002] # CUNEIFORM SIGN SHIM TIMES GAR
-122CC ; [.3E3C.0020.0002] # CUNEIFORM SIGN SHIM TIMES IGI
-122CD ; [.3E3D.0020.0002] # CUNEIFORM SIGN SHIM TIMES IGI GUNU
-122CE ; [.3E3E.0020.0002] # CUNEIFORM SIGN SHIM TIMES KUSHU2
-122CF ; [.3E3F.0020.0002] # CUNEIFORM SIGN SHIM TIMES LUL
-122D0 ; [.3E40.0020.0002] # CUNEIFORM SIGN SHIM TIMES MUG
-122D1 ; [.3E41.0020.0002] # CUNEIFORM SIGN SHIM TIMES SAL
-122D2 ; [.3E42.0020.0002] # CUNEIFORM SIGN SHINIG
-122D3 ; [.3E43.0020.0002] # CUNEIFORM SIGN SHIR
-122D6 ; [.3E44.0020.0002] # CUNEIFORM SIGN SHITA
-122D7 ; [.3E45.0020.0002] # CUNEIFORM SIGN SHU
-122D8 ; [.3E46.0020.0002] # CUNEIFORM SIGN SHU OVER INVERTED SHU
-122D9 ; [.3E47.0020.0002] # CUNEIFORM SIGN SHU2
-122DA ; [.3E48.0020.0002] # CUNEIFORM SIGN SHUBUR
-122DB ; [.3E49.0020.0002] # CUNEIFORM SIGN SI
-122DC ; [.3E4A.0020.0002] # CUNEIFORM SIGN SI GUNU
-122DD ; [.3E4B.0020.0002] # CUNEIFORM SIGN SIG
-122DE ; [.3E4C.0020.0002] # CUNEIFORM SIGN SIG4
-122DF ; [.3E4D.0020.0002] # CUNEIFORM SIGN SIG4 OVER SIG4 SHU2
-122E0 ; [.3E4E.0020.0002] # CUNEIFORM SIGN SIK2
-122E1 ; [.3E4F.0020.0002] # CUNEIFORM SIGN SILA3
-122E2 ; [.3E50.0020.0002] # CUNEIFORM SIGN SU
-122E3 ; [.3E51.0020.0002] # CUNEIFORM SIGN SU OVER SU
-122E4 ; [.3E52.0020.0002] # CUNEIFORM SIGN SUD
-122E5 ; [.3E53.0020.0002] # CUNEIFORM SIGN SUD2
-122E6 ; [.3E54.0020.0002] # CUNEIFORM SIGN SUHUR
-122E7 ; [.3E55.0020.0002] # CUNEIFORM SIGN SUM
-122E8 ; [.3E56.0020.0002] # CUNEIFORM SIGN SUMASH
-122E9 ; [.3E57.0020.0002] # CUNEIFORM SIGN SUR
-122EA ; [.3E58.0020.0002] # CUNEIFORM SIGN SUR9
-122EB ; [.3E59.0020.0002] # CUNEIFORM SIGN TA
-122EC ; [.3E5A.0020.0002] # CUNEIFORM SIGN TA ASTERISK
-122ED ; [.3E5B.0020.0002] # CUNEIFORM SIGN TA TIMES HI
-122EE ; [.3E5C.0020.0002] # CUNEIFORM SIGN TA TIMES MI
-122EF ; [.3E5D.0020.0002] # CUNEIFORM SIGN TA GUNU
-122F0 ; [.3E5E.0020.0002] # CUNEIFORM SIGN TAB
-122F1 ; [.3E5F.0020.0002] # CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH
-122F2 ; [.3E60.0020.0002] # CUNEIFORM SIGN TAB SQUARED
-122F3 ; [.3E61.0020.0002] # CUNEIFORM SIGN TAG
-122F4 ; [.3E62.0020.0002] # CUNEIFORM SIGN TAG TIMES BI
-122F5 ; [.3E63.0020.0002] # CUNEIFORM SIGN TAG TIMES GUD
-122F6 ; [.3E64.0020.0002] # CUNEIFORM SIGN TAG TIMES SHE
-122F7 ; [.3E65.0020.0002] # CUNEIFORM SIGN TAG TIMES SHU
-122F8 ; [.3E66.0020.0002] # CUNEIFORM SIGN TAG TIMES TUG2
-122F9 ; [.3E67.0020.0002] # CUNEIFORM SIGN TAG TIMES UD
-122FA ; [.3E68.0020.0002] # CUNEIFORM SIGN TAK4
-122FB ; [.3E69.0020.0002] # CUNEIFORM SIGN TAR
-122FC ; [.3E6A.0020.0002] # CUNEIFORM SIGN TE
-122FD ; [.3E6B.0020.0002] # CUNEIFORM SIGN TE GUNU
-122FE ; [.3E6C.0020.0002] # CUNEIFORM SIGN TI
-122FF ; [.3E6D.0020.0002] # CUNEIFORM SIGN TI TENU
-12300 ; [.3E6E.0020.0002] # CUNEIFORM SIGN TIL
-12301 ; [.3E6F.0020.0002] # CUNEIFORM SIGN TIR
-12302 ; [.3E70.0020.0002] # CUNEIFORM SIGN TIR TIMES TAK4
-12303 ; [.3E71.0020.0002] # CUNEIFORM SIGN TIR OVER TIR
-12304 ; [.3E72.0020.0002] # CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR
-12305 ; [.3E73.0020.0002] # CUNEIFORM SIGN TU
-12306 ; [.3E74.0020.0002] # CUNEIFORM SIGN TUG2
-12307 ; [.3E75.0020.0002] # CUNEIFORM SIGN TUK
-12308 ; [.3E76.0020.0002] # CUNEIFORM SIGN TUM
-12309 ; [.3E77.0020.0002] # CUNEIFORM SIGN TUR
-1230A ; [.3E78.0020.0002] # CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA
-1230B ; [.3E79.0020.0002] # CUNEIFORM SIGN U
-1230C ; [.3E7A.0020.0002] # CUNEIFORM SIGN U GUD
-1230D ; [.3E7B.0020.0002] # CUNEIFORM SIGN U U U
-1230E ; [.3E7C.0020.0002] # CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR
-1230F ; [.3E7D.0020.0002] # CUNEIFORM SIGN U OVER U SUR OVER SUR
-12310 ; [.3E7E.0020.0002] # CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED
-12311 ; [.3E7F.0020.0002] # CUNEIFORM SIGN U2
-12312 ; [.3E80.0020.0002] # CUNEIFORM SIGN UB
-12313 ; [.3E81.0020.0002] # CUNEIFORM SIGN UD
-12314 ; [.3E82.0020.0002] # CUNEIFORM SIGN UD KUSHU2
-12315 ; [.3E83.0020.0002] # CUNEIFORM SIGN UD TIMES BAD
-12316 ; [.3E84.0020.0002] # CUNEIFORM SIGN UD TIMES MI
-12317 ; [.3E85.0020.0002] # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U
-12318 ; [.3E86.0020.0002] # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU
-12319 ; [.3E87.0020.0002] # CUNEIFORM SIGN UD GUNU
-1231A ; [.3E88.0020.0002] # CUNEIFORM SIGN UD SHESHIG
-1231B ; [.3E89.0020.0002] # CUNEIFORM SIGN UD SHESHIG TIMES BAD
-1231C ; [.3E8A.0020.0002] # CUNEIFORM SIGN UDUG
-1231D ; [.3E8B.0020.0002] # CUNEIFORM SIGN UM
-1231E ; [.3E8C.0020.0002] # CUNEIFORM SIGN UM TIMES LAGAB
-1231F ; [.3E8D.0020.0002] # CUNEIFORM SIGN UM TIMES ME PLUS DA
-12320 ; [.3E8E.0020.0002] # CUNEIFORM SIGN UM TIMES SHA3
-12321 ; [.3E8F.0020.0002] # CUNEIFORM SIGN UM TIMES U
-12322 ; [.3E90.0020.0002] # CUNEIFORM SIGN UMBIN
-12323 ; [.3E91.0020.0002] # CUNEIFORM SIGN UMUM
-12324 ; [.3E92.0020.0002] # CUNEIFORM SIGN UMUM TIMES KASKAL
-12325 ; [.3E93.0020.0002] # CUNEIFORM SIGN UMUM TIMES PA
-12326 ; [.3E94.0020.0002] # CUNEIFORM SIGN UN
-12327 ; [.3E95.0020.0002] # CUNEIFORM SIGN UN GUNU
-12328 ; [.3E96.0020.0002] # CUNEIFORM SIGN UR
-12329 ; [.3E97.0020.0002] # CUNEIFORM SIGN UR CROSSING UR
-1232A ; [.3E98.0020.0002] # CUNEIFORM SIGN UR SHESHIG
-1232B ; [.3E99.0020.0002] # CUNEIFORM SIGN UR2
-1232C ; [.3E9A.0020.0002] # CUNEIFORM SIGN UR2 TIMES A PLUS HA
-1232D ; [.3E9B.0020.0002] # CUNEIFORM SIGN UR2 TIMES A PLUS NA
-1232E ; [.3E9C.0020.0002] # CUNEIFORM SIGN UR2 TIMES AL
-1232F ; [.3E9D.0020.0002] # CUNEIFORM SIGN UR2 TIMES HA
-12330 ; [.3E9E.0020.0002] # CUNEIFORM SIGN UR2 TIMES NUN
-12331 ; [.3E9F.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2
-12332 ; [.3EA0.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH
-12333 ; [.3EA1.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2 PLUS BI
-12334 ; [.3EA2.0020.0002] # CUNEIFORM SIGN UR4
-12335 ; [.3EA3.0020.0002] # CUNEIFORM SIGN URI
-12336 ; [.3EA4.0020.0002] # CUNEIFORM SIGN URI3
-12337 ; [.3EA5.0020.0002] # CUNEIFORM SIGN URU
-12338 ; [.3EA6.0020.0002] # CUNEIFORM SIGN URU TIMES A
-12339 ; [.3EA7.0020.0002] # CUNEIFORM SIGN URU TIMES ASHGAB
-1233A ; [.3EA8.0020.0002] # CUNEIFORM SIGN URU TIMES BAR
-1233B ; [.3EA9.0020.0002] # CUNEIFORM SIGN URU TIMES DUN
-1233C ; [.3EAA.0020.0002] # CUNEIFORM SIGN URU TIMES GA
-1233D ; [.3EAB.0020.0002] # CUNEIFORM SIGN URU TIMES GAL
-1233E ; [.3EAC.0020.0002] # CUNEIFORM SIGN URU TIMES GAN2 TENU
-1233F ; [.3EAD.0020.0002] # CUNEIFORM SIGN URU TIMES GAR
-12340 ; [.3EAE.0020.0002] # CUNEIFORM SIGN URU TIMES GU
-12341 ; [.3EAF.0020.0002] # CUNEIFORM SIGN URU TIMES HA
-12342 ; [.3EB0.0020.0002] # CUNEIFORM SIGN URU TIMES IGI
-12343 ; [.3EB1.0020.0002] # CUNEIFORM SIGN URU TIMES IM
-12344 ; [.3EB2.0020.0002] # CUNEIFORM SIGN URU TIMES ISH
-12345 ; [.3EB3.0020.0002] # CUNEIFORM SIGN URU TIMES KI
-12346 ; [.3EB4.0020.0002] # CUNEIFORM SIGN URU TIMES LUM
-12347 ; [.3EB5.0020.0002] # CUNEIFORM SIGN URU TIMES MIN
-12348 ; [.3EB6.0020.0002] # CUNEIFORM SIGN URU TIMES PA
-12349 ; [.3EB7.0020.0002] # CUNEIFORM SIGN URU TIMES SHE
-1234A ; [.3EB8.0020.0002] # CUNEIFORM SIGN URU TIMES SIG4
-1234B ; [.3EB9.0020.0002] # CUNEIFORM SIGN URU TIMES TU
-1234C ; [.3EBA.0020.0002] # CUNEIFORM SIGN URU TIMES U PLUS GUD
-1234D ; [.3EBB.0020.0002] # CUNEIFORM SIGN URU TIMES UD
-1234E ; [.3EBC.0020.0002] # CUNEIFORM SIGN URU TIMES URUDA
-1234F ; [.3EBD.0020.0002] # CUNEIFORM SIGN URUDA
-12350 ; [.3EBE.0020.0002] # CUNEIFORM SIGN URUDA TIMES U
-12351 ; [.3EBF.0020.0002] # CUNEIFORM SIGN USH
-12352 ; [.3EC0.0020.0002] # CUNEIFORM SIGN USH TIMES A
-12353 ; [.3EC1.0020.0002] # CUNEIFORM SIGN USH TIMES KU
-12354 ; [.3EC2.0020.0002] # CUNEIFORM SIGN USH TIMES KUR
-12355 ; [.3EC3.0020.0002] # CUNEIFORM SIGN USH TIMES TAK4
-12356 ; [.3EC4.0020.0002] # CUNEIFORM SIGN USHX
-12357 ; [.3EC5.0020.0002] # CUNEIFORM SIGN USH2
-12358 ; [.3EC6.0020.0002] # CUNEIFORM SIGN USHUMX
-12359 ; [.3EC7.0020.0002] # CUNEIFORM SIGN UTUKI
-1235A ; [.3EC8.0020.0002] # CUNEIFORM SIGN UZ3
-1235B ; [.3EC9.0020.0002] # CUNEIFORM SIGN UZ3 TIMES KASKAL
-1235C ; [.3ECA.0020.0002] # CUNEIFORM SIGN UZU
-1235D ; [.3ECB.0020.0002] # CUNEIFORM SIGN ZA
-1235E ; [.3ECC.0020.0002] # CUNEIFORM SIGN ZA TENU
-1235F ; [.3ECD.0020.0002] # CUNEIFORM SIGN ZA SQUARED TIMES KUR
-12360 ; [.3ECE.0020.0002] # CUNEIFORM SIGN ZAG
-12361 ; [.3ECF.0020.0002] # CUNEIFORM SIGN ZAMX
-12362 ; [.3ED0.0020.0002] # CUNEIFORM SIGN ZE2
-12363 ; [.3ED1.0020.0002] # CUNEIFORM SIGN ZI
-12364 ; [.3ED2.0020.0002] # CUNEIFORM SIGN ZI OVER ZI
-12365 ; [.3ED3.0020.0002] # CUNEIFORM SIGN ZI3
-12366 ; [.3ED4.0020.0002] # CUNEIFORM SIGN ZIB
-12367 ; [.3ED5.0020.0002] # CUNEIFORM SIGN ZIB KABA TENU
-12368 ; [.3ED6.0020.0002] # CUNEIFORM SIGN ZIG
-12369 ; [.3ED7.0020.0002] # CUNEIFORM SIGN ZIZ2
-1236A ; [.3ED8.0020.0002] # CUNEIFORM SIGN ZU
-1236B ; [.3ED9.0020.0002] # CUNEIFORM SIGN ZU5
-1236C ; [.3EDA.0020.0002] # CUNEIFORM SIGN ZU5 TIMES A
-1236D ; [.3EDB.0020.0002] # CUNEIFORM SIGN ZUBUR
-1236E ; [.3EDC.0020.0002] # CUNEIFORM SIGN ZUM
-13000 ; [.3EDD.0020.0002] # EGYPTIAN HIEROGLYPH A001
-13001 ; [.3EDE.0020.0002] # EGYPTIAN HIEROGLYPH A002
-13002 ; [.3EDF.0020.0002] # EGYPTIAN HIEROGLYPH A003
-13003 ; [.3EE0.0020.0002] # EGYPTIAN HIEROGLYPH A004
-13004 ; [.3EE1.0020.0002] # EGYPTIAN HIEROGLYPH A005
-13005 ; [.3EE2.0020.0002] # EGYPTIAN HIEROGLYPH A005A
-13006 ; [.3EE3.0020.0002] # EGYPTIAN HIEROGLYPH A006
-13007 ; [.3EE4.0020.0002] # EGYPTIAN HIEROGLYPH A006A
-13008 ; [.3EE5.0020.0002] # EGYPTIAN HIEROGLYPH A006B
-13009 ; [.3EE6.0020.0002] # EGYPTIAN HIEROGLYPH A007
-1300A ; [.3EE7.0020.0002] # EGYPTIAN HIEROGLYPH A008
-1300B ; [.3EE8.0020.0002] # EGYPTIAN HIEROGLYPH A009
-1300C ; [.3EE9.0020.0002] # EGYPTIAN HIEROGLYPH A010
-1300D ; [.3EEA.0020.0002] # EGYPTIAN HIEROGLYPH A011
-1300E ; [.3EEB.0020.0002] # EGYPTIAN HIEROGLYPH A012
-1300F ; [.3EEC.0020.0002] # EGYPTIAN HIEROGLYPH A013
-13010 ; [.3EED.0020.0002] # EGYPTIAN HIEROGLYPH A014
-13011 ; [.3EEE.0020.0002] # EGYPTIAN HIEROGLYPH A014A
-13012 ; [.3EEF.0020.0002] # EGYPTIAN HIEROGLYPH A015
-13013 ; [.3EF0.0020.0002] # EGYPTIAN HIEROGLYPH A016
-13014 ; [.3EF1.0020.0002] # EGYPTIAN HIEROGLYPH A017
-13015 ; [.3EF2.0020.0002] # EGYPTIAN HIEROGLYPH A017A
-13016 ; [.3EF3.0020.0002] # EGYPTIAN HIEROGLYPH A018
-13017 ; [.3EF4.0020.0002] # EGYPTIAN HIEROGLYPH A019
-13018 ; [.3EF5.0020.0002] # EGYPTIAN HIEROGLYPH A020
-13019 ; [.3EF6.0020.0002] # EGYPTIAN HIEROGLYPH A021
-1301A ; [.3EF7.0020.0002] # EGYPTIAN HIEROGLYPH A022
-1301B ; [.3EF8.0020.0002] # EGYPTIAN HIEROGLYPH A023
-1301C ; [.3EF9.0020.0002] # EGYPTIAN HIEROGLYPH A024
-1301D ; [.3EFA.0020.0002] # EGYPTIAN HIEROGLYPH A025
-1301E ; [.3EFB.0020.0002] # EGYPTIAN HIEROGLYPH A026
-1301F ; [.3EFC.0020.0002] # EGYPTIAN HIEROGLYPH A027
-13020 ; [.3EFD.0020.0002] # EGYPTIAN HIEROGLYPH A028
-13021 ; [.3EFE.0020.0002] # EGYPTIAN HIEROGLYPH A029
-13022 ; [.3EFF.0020.0002] # EGYPTIAN HIEROGLYPH A030
-13023 ; [.3F00.0020.0002] # EGYPTIAN HIEROGLYPH A031
-13024 ; [.3F01.0020.0002] # EGYPTIAN HIEROGLYPH A032
-13025 ; [.3F02.0020.0002] # EGYPTIAN HIEROGLYPH A032A
-13026 ; [.3F03.0020.0002] # EGYPTIAN HIEROGLYPH A033
-13027 ; [.3F04.0020.0002] # EGYPTIAN HIEROGLYPH A034
-13028 ; [.3F05.0020.0002] # EGYPTIAN HIEROGLYPH A035
-13029 ; [.3F06.0020.0002] # EGYPTIAN HIEROGLYPH A036
-1302A ; [.3F07.0020.0002] # EGYPTIAN HIEROGLYPH A037
-1302B ; [.3F08.0020.0002] # EGYPTIAN HIEROGLYPH A038
-1302C ; [.3F09.0020.0002] # EGYPTIAN HIEROGLYPH A039
-1302D ; [.3F0A.0020.0002] # EGYPTIAN HIEROGLYPH A040
-1302E ; [.3F0B.0020.0002] # EGYPTIAN HIEROGLYPH A040A
-1302F ; [.3F0C.0020.0002] # EGYPTIAN HIEROGLYPH A041
-13030 ; [.3F0D.0020.0002] # EGYPTIAN HIEROGLYPH A042
-13031 ; [.3F0E.0020.0002] # EGYPTIAN HIEROGLYPH A042A
-13032 ; [.3F0F.0020.0002] # EGYPTIAN HIEROGLYPH A043
-13033 ; [.3F10.0020.0002] # EGYPTIAN HIEROGLYPH A043A
-13034 ; [.3F11.0020.0002] # EGYPTIAN HIEROGLYPH A044
-13035 ; [.3F12.0020.0002] # EGYPTIAN HIEROGLYPH A045
-13036 ; [.3F13.0020.0002] # EGYPTIAN HIEROGLYPH A045A
-13037 ; [.3F14.0020.0002] # EGYPTIAN HIEROGLYPH A046
-13038 ; [.3F15.0020.0002] # EGYPTIAN HIEROGLYPH A047
-13039 ; [.3F16.0020.0002] # EGYPTIAN HIEROGLYPH A048
-1303A ; [.3F17.0020.0002] # EGYPTIAN HIEROGLYPH A049
-1303B ; [.3F18.0020.0002] # EGYPTIAN HIEROGLYPH A050
-1303C ; [.3F19.0020.0002] # EGYPTIAN HIEROGLYPH A051
-1303D ; [.3F1A.0020.0002] # EGYPTIAN HIEROGLYPH A052
-1303E ; [.3F1B.0020.0002] # EGYPTIAN HIEROGLYPH A053
-1303F ; [.3F1C.0020.0002] # EGYPTIAN HIEROGLYPH A054
-13040 ; [.3F1D.0020.0002] # EGYPTIAN HIEROGLYPH A055
-13041 ; [.3F1E.0020.0002] # EGYPTIAN HIEROGLYPH A056
-13042 ; [.3F1F.0020.0002] # EGYPTIAN HIEROGLYPH A057
-13043 ; [.3F20.0020.0002] # EGYPTIAN HIEROGLYPH A058
-13044 ; [.3F21.0020.0002] # EGYPTIAN HIEROGLYPH A059
-13045 ; [.3F22.0020.0002] # EGYPTIAN HIEROGLYPH A060
-13046 ; [.3F23.0020.0002] # EGYPTIAN HIEROGLYPH A061
-13047 ; [.3F24.0020.0002] # EGYPTIAN HIEROGLYPH A062
-13048 ; [.3F25.0020.0002] # EGYPTIAN HIEROGLYPH A063
-13049 ; [.3F26.0020.0002] # EGYPTIAN HIEROGLYPH A064
-1304A ; [.3F27.0020.0002] # EGYPTIAN HIEROGLYPH A065
-1304B ; [.3F28.0020.0002] # EGYPTIAN HIEROGLYPH A066
-1304C ; [.3F29.0020.0002] # EGYPTIAN HIEROGLYPH A067
-1304D ; [.3F2A.0020.0002] # EGYPTIAN HIEROGLYPH A068
-1304E ; [.3F2B.0020.0002] # EGYPTIAN HIEROGLYPH A069
-1304F ; [.3F2C.0020.0002] # EGYPTIAN HIEROGLYPH A070
-13050 ; [.3F2D.0020.0002] # EGYPTIAN HIEROGLYPH B001
-13051 ; [.3F2E.0020.0002] # EGYPTIAN HIEROGLYPH B002
-13052 ; [.3F2F.0020.0002] # EGYPTIAN HIEROGLYPH B003
-13053 ; [.3F30.0020.0002] # EGYPTIAN HIEROGLYPH B004
-13054 ; [.3F31.0020.0002] # EGYPTIAN HIEROGLYPH B005
-13055 ; [.3F32.0020.0002] # EGYPTIAN HIEROGLYPH B005A
-13056 ; [.3F33.0020.0002] # EGYPTIAN HIEROGLYPH B006
-13057 ; [.3F34.0020.0002] # EGYPTIAN HIEROGLYPH B007
-13058 ; [.3F35.0020.0002] # EGYPTIAN HIEROGLYPH B008
-13059 ; [.3F36.0020.0002] # EGYPTIAN HIEROGLYPH B009
-1305A ; [.3F37.0020.0002] # EGYPTIAN HIEROGLYPH C001
-1305B ; [.3F38.0020.0002] # EGYPTIAN HIEROGLYPH C002
-1305C ; [.3F39.0020.0002] # EGYPTIAN HIEROGLYPH C002A
-1305D ; [.3F3A.0020.0002] # EGYPTIAN HIEROGLYPH C002B
-1305E ; [.3F3B.0020.0002] # EGYPTIAN HIEROGLYPH C002C
-1305F ; [.3F3C.0020.0002] # EGYPTIAN HIEROGLYPH C003
-13060 ; [.3F3D.0020.0002] # EGYPTIAN HIEROGLYPH C004
-13061 ; [.3F3E.0020.0002] # EGYPTIAN HIEROGLYPH C005
-13062 ; [.3F3F.0020.0002] # EGYPTIAN HIEROGLYPH C006
-13063 ; [.3F40.0020.0002] # EGYPTIAN HIEROGLYPH C007
-13064 ; [.3F41.0020.0002] # EGYPTIAN HIEROGLYPH C008
-13065 ; [.3F42.0020.0002] # EGYPTIAN HIEROGLYPH C009
-13066 ; [.3F43.0020.0002] # EGYPTIAN HIEROGLYPH C010
-13067 ; [.3F44.0020.0002] # EGYPTIAN HIEROGLYPH C010A
-13068 ; [.3F45.0020.0002] # EGYPTIAN HIEROGLYPH C011
-13069 ; [.3F46.0020.0002] # EGYPTIAN HIEROGLYPH C012
-1306A ; [.3F47.0020.0002] # EGYPTIAN HIEROGLYPH C013
-1306B ; [.3F48.0020.0002] # EGYPTIAN HIEROGLYPH C014
-1306C ; [.3F49.0020.0002] # EGYPTIAN HIEROGLYPH C015
-1306D ; [.3F4A.0020.0002] # EGYPTIAN HIEROGLYPH C016
-1306E ; [.3F4B.0020.0002] # EGYPTIAN HIEROGLYPH C017
-1306F ; [.3F4C.0020.0002] # EGYPTIAN HIEROGLYPH C018
-13070 ; [.3F4D.0020.0002] # EGYPTIAN HIEROGLYPH C019
-13071 ; [.3F4E.0020.0002] # EGYPTIAN HIEROGLYPH C020
-13072 ; [.3F4F.0020.0002] # EGYPTIAN HIEROGLYPH C021
-13073 ; [.3F50.0020.0002] # EGYPTIAN HIEROGLYPH C022
-13074 ; [.3F51.0020.0002] # EGYPTIAN HIEROGLYPH C023
-13075 ; [.3F52.0020.0002] # EGYPTIAN HIEROGLYPH C024
-13076 ; [.3F53.0020.0002] # EGYPTIAN HIEROGLYPH D001
-13077 ; [.3F54.0020.0002] # EGYPTIAN HIEROGLYPH D002
-13078 ; [.3F55.0020.0002] # EGYPTIAN HIEROGLYPH D003
-13079 ; [.3F56.0020.0002] # EGYPTIAN HIEROGLYPH D004
-1307A ; [.3F57.0020.0002] # EGYPTIAN HIEROGLYPH D005
-1307B ; [.3F58.0020.0002] # EGYPTIAN HIEROGLYPH D006
-1307C ; [.3F59.0020.0002] # EGYPTIAN HIEROGLYPH D007
-1307D ; [.3F5A.0020.0002] # EGYPTIAN HIEROGLYPH D008
-1307E ; [.3F5B.0020.0002] # EGYPTIAN HIEROGLYPH D008A
-1307F ; [.3F5C.0020.0002] # EGYPTIAN HIEROGLYPH D009
-13080 ; [.3F5D.0020.0002] # EGYPTIAN HIEROGLYPH D010
-13081 ; [.3F5E.0020.0002] # EGYPTIAN HIEROGLYPH D011
-13082 ; [.3F5F.0020.0002] # EGYPTIAN HIEROGLYPH D012
-13083 ; [.3F60.0020.0002] # EGYPTIAN HIEROGLYPH D013
-13084 ; [.3F61.0020.0002] # EGYPTIAN HIEROGLYPH D014
-13085 ; [.3F62.0020.0002] # EGYPTIAN HIEROGLYPH D015
-13086 ; [.3F63.0020.0002] # EGYPTIAN HIEROGLYPH D016
-13087 ; [.3F64.0020.0002] # EGYPTIAN HIEROGLYPH D017
-13088 ; [.3F65.0020.0002] # EGYPTIAN HIEROGLYPH D018
-13089 ; [.3F66.0020.0002] # EGYPTIAN HIEROGLYPH D019
-1308A ; [.3F67.0020.0002] # EGYPTIAN HIEROGLYPH D020
-1308B ; [.3F68.0020.0002] # EGYPTIAN HIEROGLYPH D021
-1308C ; [.3F69.0020.0002] # EGYPTIAN HIEROGLYPH D022
-1308D ; [.3F6A.0020.0002] # EGYPTIAN HIEROGLYPH D023
-1308E ; [.3F6B.0020.0002] # EGYPTIAN HIEROGLYPH D024
-1308F ; [.3F6C.0020.0002] # EGYPTIAN HIEROGLYPH D025
-13090 ; [.3F6D.0020.0002] # EGYPTIAN HIEROGLYPH D026
-13091 ; [.3F6E.0020.0002] # EGYPTIAN HIEROGLYPH D027
-13092 ; [.3F6F.0020.0002] # EGYPTIAN HIEROGLYPH D027A
-13093 ; [.3F70.0020.0002] # EGYPTIAN HIEROGLYPH D028
-13094 ; [.3F71.0020.0002] # EGYPTIAN HIEROGLYPH D029
-13095 ; [.3F72.0020.0002] # EGYPTIAN HIEROGLYPH D030
-13096 ; [.3F73.0020.0002] # EGYPTIAN HIEROGLYPH D031
-13097 ; [.3F74.0020.0002] # EGYPTIAN HIEROGLYPH D031A
-13098 ; [.3F75.0020.0002] # EGYPTIAN HIEROGLYPH D032
-13099 ; [.3F76.0020.0002] # EGYPTIAN HIEROGLYPH D033
-1309A ; [.3F77.0020.0002] # EGYPTIAN HIEROGLYPH D034
-1309B ; [.3F78.0020.0002] # EGYPTIAN HIEROGLYPH D034A
-1309C ; [.3F79.0020.0002] # EGYPTIAN HIEROGLYPH D035
-1309D ; [.3F7A.0020.0002] # EGYPTIAN HIEROGLYPH D036
-1309E ; [.3F7B.0020.0002] # EGYPTIAN HIEROGLYPH D037
-1309F ; [.3F7C.0020.0002] # EGYPTIAN HIEROGLYPH D038
-130A0 ; [.3F7D.0020.0002] # EGYPTIAN HIEROGLYPH D039
-130A1 ; [.3F7E.0020.0002] # EGYPTIAN HIEROGLYPH D040
-130A2 ; [.3F7F.0020.0002] # EGYPTIAN HIEROGLYPH D041
-130A3 ; [.3F80.0020.0002] # EGYPTIAN HIEROGLYPH D042
-130A4 ; [.3F81.0020.0002] # EGYPTIAN HIEROGLYPH D043
-130A5 ; [.3F82.0020.0002] # EGYPTIAN HIEROGLYPH D044
-130A6 ; [.3F83.0020.0002] # EGYPTIAN HIEROGLYPH D045
-130A7 ; [.3F84.0020.0002] # EGYPTIAN HIEROGLYPH D046
-130A8 ; [.3F85.0020.0002] # EGYPTIAN HIEROGLYPH D046A
-130A9 ; [.3F86.0020.0002] # EGYPTIAN HIEROGLYPH D047
-130AA ; [.3F87.0020.0002] # EGYPTIAN HIEROGLYPH D048
-130AB ; [.3F88.0020.0002] # EGYPTIAN HIEROGLYPH D048A
-130AC ; [.3F89.0020.0002] # EGYPTIAN HIEROGLYPH D049
-130AD ; [.3F8A.0020.0002] # EGYPTIAN HIEROGLYPH D050
-130AE ; [.3F8B.0020.0002] # EGYPTIAN HIEROGLYPH D050A
-130AF ; [.3F8C.0020.0002] # EGYPTIAN HIEROGLYPH D050B
-130B0 ; [.3F8D.0020.0002] # EGYPTIAN HIEROGLYPH D050C
-130B1 ; [.3F8E.0020.0002] # EGYPTIAN HIEROGLYPH D050D
-130B2 ; [.3F8F.0020.0002] # EGYPTIAN HIEROGLYPH D050E
-130B3 ; [.3F90.0020.0002] # EGYPTIAN HIEROGLYPH D050F
-130B4 ; [.3F91.0020.0002] # EGYPTIAN HIEROGLYPH D050G
-130B5 ; [.3F92.0020.0002] # EGYPTIAN HIEROGLYPH D050H
-130B6 ; [.3F93.0020.0002] # EGYPTIAN HIEROGLYPH D050I
-130B7 ; [.3F94.0020.0002] # EGYPTIAN HIEROGLYPH D051
-130B8 ; [.3F95.0020.0002] # EGYPTIAN HIEROGLYPH D052
-130B9 ; [.3F96.0020.0002] # EGYPTIAN HIEROGLYPH D052A
-130BA ; [.3F97.0020.0002] # EGYPTIAN HIEROGLYPH D053
-130BB ; [.3F98.0020.0002] # EGYPTIAN HIEROGLYPH D054
-130BC ; [.3F99.0020.0002] # EGYPTIAN HIEROGLYPH D054A
-130BD ; [.3F9A.0020.0002] # EGYPTIAN HIEROGLYPH D055
-130BE ; [.3F9B.0020.0002] # EGYPTIAN HIEROGLYPH D056
-130BF ; [.3F9C.0020.0002] # EGYPTIAN HIEROGLYPH D057
-130C0 ; [.3F9D.0020.0002] # EGYPTIAN HIEROGLYPH D058
-130C1 ; [.3F9E.0020.0002] # EGYPTIAN HIEROGLYPH D059
-130C2 ; [.3F9F.0020.0002] # EGYPTIAN HIEROGLYPH D060
-130C3 ; [.3FA0.0020.0002] # EGYPTIAN HIEROGLYPH D061
-130C4 ; [.3FA1.0020.0002] # EGYPTIAN HIEROGLYPH D062
-130C5 ; [.3FA2.0020.0002] # EGYPTIAN HIEROGLYPH D063
-130C6 ; [.3FA3.0020.0002] # EGYPTIAN HIEROGLYPH D064
-130C7 ; [.3FA4.0020.0002] # EGYPTIAN HIEROGLYPH D065
-130C8 ; [.3FA5.0020.0002] # EGYPTIAN HIEROGLYPH D066
-130C9 ; [.3FA6.0020.0002] # EGYPTIAN HIEROGLYPH D067
-130CA ; [.3FA7.0020.0002] # EGYPTIAN HIEROGLYPH D067A
-130CB ; [.3FA8.0020.0002] # EGYPTIAN HIEROGLYPH D067B
-130CC ; [.3FA9.0020.0002] # EGYPTIAN HIEROGLYPH D067C
-130CD ; [.3FAA.0020.0002] # EGYPTIAN HIEROGLYPH D067D
-130CE ; [.3FAB.0020.0002] # EGYPTIAN HIEROGLYPH D067E
-130CF ; [.3FAC.0020.0002] # EGYPTIAN HIEROGLYPH D067F
-130D0 ; [.3FAD.0020.0002] # EGYPTIAN HIEROGLYPH D067G
-130D1 ; [.3FAE.0020.0002] # EGYPTIAN HIEROGLYPH D067H
-130D2 ; [.3FAF.0020.0002] # EGYPTIAN HIEROGLYPH E001
-130D3 ; [.3FB0.0020.0002] # EGYPTIAN HIEROGLYPH E002
-130D4 ; [.3FB1.0020.0002] # EGYPTIAN HIEROGLYPH E003
-130D5 ; [.3FB2.0020.0002] # EGYPTIAN HIEROGLYPH E004
-130D6 ; [.3FB3.0020.0002] # EGYPTIAN HIEROGLYPH E005
-130D7 ; [.3FB4.0020.0002] # EGYPTIAN HIEROGLYPH E006
-130D8 ; [.3FB5.0020.0002] # EGYPTIAN HIEROGLYPH E007
-130D9 ; [.3FB6.0020.0002] # EGYPTIAN HIEROGLYPH E008
-130DA ; [.3FB7.0020.0002] # EGYPTIAN HIEROGLYPH E008A
-130DB ; [.3FB8.0020.0002] # EGYPTIAN HIEROGLYPH E009
-130DC ; [.3FB9.0020.0002] # EGYPTIAN HIEROGLYPH E009A
-130DD ; [.3FBA.0020.0002] # EGYPTIAN HIEROGLYPH E010
-130DE ; [.3FBB.0020.0002] # EGYPTIAN HIEROGLYPH E011
-130DF ; [.3FBC.0020.0002] # EGYPTIAN HIEROGLYPH E012
-130E0 ; [.3FBD.0020.0002] # EGYPTIAN HIEROGLYPH E013
-130E1 ; [.3FBE.0020.0002] # EGYPTIAN HIEROGLYPH E014
-130E2 ; [.3FBF.0020.0002] # EGYPTIAN HIEROGLYPH E015
-130E3 ; [.3FC0.0020.0002] # EGYPTIAN HIEROGLYPH E016
-130E4 ; [.3FC1.0020.0002] # EGYPTIAN HIEROGLYPH E016A
-130E5 ; [.3FC2.0020.0002] # EGYPTIAN HIEROGLYPH E017
-130E6 ; [.3FC3.0020.0002] # EGYPTIAN HIEROGLYPH E017A
-130E7 ; [.3FC4.0020.0002] # EGYPTIAN HIEROGLYPH E018
-130E8 ; [.3FC5.0020.0002] # EGYPTIAN HIEROGLYPH E019
-130E9 ; [.3FC6.0020.0002] # EGYPTIAN HIEROGLYPH E020
-130EA ; [.3FC7.0020.0002] # EGYPTIAN HIEROGLYPH E020A
-130EB ; [.3FC8.0020.0002] # EGYPTIAN HIEROGLYPH E021
-130EC ; [.3FC9.0020.0002] # EGYPTIAN HIEROGLYPH E022
-130ED ; [.3FCA.0020.0002] # EGYPTIAN HIEROGLYPH E023
-130EE ; [.3FCB.0020.0002] # EGYPTIAN HIEROGLYPH E024
-130EF ; [.3FCC.0020.0002] # EGYPTIAN HIEROGLYPH E025
-130F0 ; [.3FCD.0020.0002] # EGYPTIAN HIEROGLYPH E026
-130F1 ; [.3FCE.0020.0002] # EGYPTIAN HIEROGLYPH E027
-130F2 ; [.3FCF.0020.0002] # EGYPTIAN HIEROGLYPH E028
-130F3 ; [.3FD0.0020.0002] # EGYPTIAN HIEROGLYPH E028A
-130F4 ; [.3FD1.0020.0002] # EGYPTIAN HIEROGLYPH E029
-130F5 ; [.3FD2.0020.0002] # EGYPTIAN HIEROGLYPH E030
-130F6 ; [.3FD3.0020.0002] # EGYPTIAN HIEROGLYPH E031
-130F7 ; [.3FD4.0020.0002] # EGYPTIAN HIEROGLYPH E032
-130F8 ; [.3FD5.0020.0002] # EGYPTIAN HIEROGLYPH E033
-130F9 ; [.3FD6.0020.0002] # EGYPTIAN HIEROGLYPH E034
-130FA ; [.3FD7.0020.0002] # EGYPTIAN HIEROGLYPH E034A
-130FB ; [.3FD8.0020.0002] # EGYPTIAN HIEROGLYPH E036
-130FC ; [.3FD9.0020.0002] # EGYPTIAN HIEROGLYPH E037
-130FD ; [.3FDA.0020.0002] # EGYPTIAN HIEROGLYPH E038
-130FE ; [.3FDB.0020.0002] # EGYPTIAN HIEROGLYPH F001
-130FF ; [.3FDC.0020.0002] # EGYPTIAN HIEROGLYPH F001A
-13100 ; [.3FDD.0020.0002] # EGYPTIAN HIEROGLYPH F002
-13101 ; [.3FDE.0020.0002] # EGYPTIAN HIEROGLYPH F003
-13102 ; [.3FDF.0020.0002] # EGYPTIAN HIEROGLYPH F004
-13103 ; [.3FE0.0020.0002] # EGYPTIAN HIEROGLYPH F005
-13104 ; [.3FE1.0020.0002] # EGYPTIAN HIEROGLYPH F006
-13105 ; [.3FE2.0020.0002] # EGYPTIAN HIEROGLYPH F007
-13106 ; [.3FE3.0020.0002] # EGYPTIAN HIEROGLYPH F008
-13107 ; [.3FE4.0020.0002] # EGYPTIAN HIEROGLYPH F009
-13108 ; [.3FE5.0020.0002] # EGYPTIAN HIEROGLYPH F010
-13109 ; [.3FE6.0020.0002] # EGYPTIAN HIEROGLYPH F011
-1310A ; [.3FE7.0020.0002] # EGYPTIAN HIEROGLYPH F012
-1310B ; [.3FE8.0020.0002] # EGYPTIAN HIEROGLYPH F013
-1310C ; [.3FE9.0020.0002] # EGYPTIAN HIEROGLYPH F013A
-1310D ; [.3FEA.0020.0002] # EGYPTIAN HIEROGLYPH F014
-1310E ; [.3FEB.0020.0002] # EGYPTIAN HIEROGLYPH F015
-1310F ; [.3FEC.0020.0002] # EGYPTIAN HIEROGLYPH F016
-13110 ; [.3FED.0020.0002] # EGYPTIAN HIEROGLYPH F017
-13111 ; [.3FEE.0020.0002] # EGYPTIAN HIEROGLYPH F018
-13112 ; [.3FEF.0020.0002] # EGYPTIAN HIEROGLYPH F019
-13113 ; [.3FF0.0020.0002] # EGYPTIAN HIEROGLYPH F020
-13114 ; [.3FF1.0020.0002] # EGYPTIAN HIEROGLYPH F021
-13115 ; [.3FF2.0020.0002] # EGYPTIAN HIEROGLYPH F021A
-13116 ; [.3FF3.0020.0002] # EGYPTIAN HIEROGLYPH F022
-13117 ; [.3FF4.0020.0002] # EGYPTIAN HIEROGLYPH F023
-13118 ; [.3FF5.0020.0002] # EGYPTIAN HIEROGLYPH F024
-13119 ; [.3FF6.0020.0002] # EGYPTIAN HIEROGLYPH F025
-1311A ; [.3FF7.0020.0002] # EGYPTIAN HIEROGLYPH F026
-1311B ; [.3FF8.0020.0002] # EGYPTIAN HIEROGLYPH F027
-1311C ; [.3FF9.0020.0002] # EGYPTIAN HIEROGLYPH F028
-1311D ; [.3FFA.0020.0002] # EGYPTIAN HIEROGLYPH F029
-1311E ; [.3FFB.0020.0002] # EGYPTIAN HIEROGLYPH F030
-1311F ; [.3FFC.0020.0002] # EGYPTIAN HIEROGLYPH F031
-13120 ; [.3FFD.0020.0002] # EGYPTIAN HIEROGLYPH F031A
-13121 ; [.3FFE.0020.0002] # EGYPTIAN HIEROGLYPH F032
-13122 ; [.3FFF.0020.0002] # EGYPTIAN HIEROGLYPH F033
-13123 ; [.4000.0020.0002] # EGYPTIAN HIEROGLYPH F034
-13124 ; [.4001.0020.0002] # EGYPTIAN HIEROGLYPH F035
-13125 ; [.4002.0020.0002] # EGYPTIAN HIEROGLYPH F036
-13126 ; [.4003.0020.0002] # EGYPTIAN HIEROGLYPH F037
-13127 ; [.4004.0020.0002] # EGYPTIAN HIEROGLYPH F037A
-13128 ; [.4005.0020.0002] # EGYPTIAN HIEROGLYPH F038
-13129 ; [.4006.0020.0002] # EGYPTIAN HIEROGLYPH F038A
-1312A ; [.4007.0020.0002] # EGYPTIAN HIEROGLYPH F039
-1312B ; [.4008.0020.0002] # EGYPTIAN HIEROGLYPH F040
-1312C ; [.4009.0020.0002] # EGYPTIAN HIEROGLYPH F041
-1312D ; [.400A.0020.0002] # EGYPTIAN HIEROGLYPH F042
-1312E ; [.400B.0020.0002] # EGYPTIAN HIEROGLYPH F043
-1312F ; [.400C.0020.0002] # EGYPTIAN HIEROGLYPH F044
-13130 ; [.400D.0020.0002] # EGYPTIAN HIEROGLYPH F045
-13131 ; [.400E.0020.0002] # EGYPTIAN HIEROGLYPH F045A
-13132 ; [.400F.0020.0002] # EGYPTIAN HIEROGLYPH F046
-13133 ; [.4010.0020.0002] # EGYPTIAN HIEROGLYPH F046A
-13134 ; [.4011.0020.0002] # EGYPTIAN HIEROGLYPH F047
-13135 ; [.4012.0020.0002] # EGYPTIAN HIEROGLYPH F047A
-13136 ; [.4013.0020.0002] # EGYPTIAN HIEROGLYPH F048
-13137 ; [.4014.0020.0002] # EGYPTIAN HIEROGLYPH F049
-13138 ; [.4015.0020.0002] # EGYPTIAN HIEROGLYPH F050
-13139 ; [.4016.0020.0002] # EGYPTIAN HIEROGLYPH F051
-1313A ; [.4017.0020.0002] # EGYPTIAN HIEROGLYPH F051A
-1313B ; [.4018.0020.0002] # EGYPTIAN HIEROGLYPH F051B
-1313C ; [.4019.0020.0002] # EGYPTIAN HIEROGLYPH F051C
-1313D ; [.401A.0020.0002] # EGYPTIAN HIEROGLYPH F052
-1313E ; [.401B.0020.0002] # EGYPTIAN HIEROGLYPH F053
-1313F ; [.401C.0020.0002] # EGYPTIAN HIEROGLYPH G001
-13140 ; [.401D.0020.0002] # EGYPTIAN HIEROGLYPH G002
-13141 ; [.401E.0020.0002] # EGYPTIAN HIEROGLYPH G003
-13142 ; [.401F.0020.0002] # EGYPTIAN HIEROGLYPH G004
-13143 ; [.4020.0020.0002] # EGYPTIAN HIEROGLYPH G005
-13144 ; [.4021.0020.0002] # EGYPTIAN HIEROGLYPH G006
-13145 ; [.4022.0020.0002] # EGYPTIAN HIEROGLYPH G006A
-13146 ; [.4023.0020.0002] # EGYPTIAN HIEROGLYPH G007
-13147 ; [.4024.0020.0002] # EGYPTIAN HIEROGLYPH G007A
-13148 ; [.4025.0020.0002] # EGYPTIAN HIEROGLYPH G007B
-13149 ; [.4026.0020.0002] # EGYPTIAN HIEROGLYPH G008
-1314A ; [.4027.0020.0002] # EGYPTIAN HIEROGLYPH G009
-1314B ; [.4028.0020.0002] # EGYPTIAN HIEROGLYPH G010
-1314C ; [.4029.0020.0002] # EGYPTIAN HIEROGLYPH G011
-1314D ; [.402A.0020.0002] # EGYPTIAN HIEROGLYPH G011A
-1314E ; [.402B.0020.0002] # EGYPTIAN HIEROGLYPH G012
-1314F ; [.402C.0020.0002] # EGYPTIAN HIEROGLYPH G013
-13150 ; [.402D.0020.0002] # EGYPTIAN HIEROGLYPH G014
-13151 ; [.402E.0020.0002] # EGYPTIAN HIEROGLYPH G015
-13152 ; [.402F.0020.0002] # EGYPTIAN HIEROGLYPH G016
-13153 ; [.4030.0020.0002] # EGYPTIAN HIEROGLYPH G017
-13154 ; [.4031.0020.0002] # EGYPTIAN HIEROGLYPH G018
-13155 ; [.4032.0020.0002] # EGYPTIAN HIEROGLYPH G019
-13156 ; [.4033.0020.0002] # EGYPTIAN HIEROGLYPH G020
-13157 ; [.4034.0020.0002] # EGYPTIAN HIEROGLYPH G020A
-13158 ; [.4035.0020.0002] # EGYPTIAN HIEROGLYPH G021
-13159 ; [.4036.0020.0002] # EGYPTIAN HIEROGLYPH G022
-1315A ; [.4037.0020.0002] # EGYPTIAN HIEROGLYPH G023
-1315B ; [.4038.0020.0002] # EGYPTIAN HIEROGLYPH G024
-1315C ; [.4039.0020.0002] # EGYPTIAN HIEROGLYPH G025
-1315D ; [.403A.0020.0002] # EGYPTIAN HIEROGLYPH G026
-1315E ; [.403B.0020.0002] # EGYPTIAN HIEROGLYPH G026A
-1315F ; [.403C.0020.0002] # EGYPTIAN HIEROGLYPH G027
-13160 ; [.403D.0020.0002] # EGYPTIAN HIEROGLYPH G028
-13161 ; [.403E.0020.0002] # EGYPTIAN HIEROGLYPH G029
-13162 ; [.403F.0020.0002] # EGYPTIAN HIEROGLYPH G030
-13163 ; [.4040.0020.0002] # EGYPTIAN HIEROGLYPH G031
-13164 ; [.4041.0020.0002] # EGYPTIAN HIEROGLYPH G032
-13165 ; [.4042.0020.0002] # EGYPTIAN HIEROGLYPH G033
-13166 ; [.4043.0020.0002] # EGYPTIAN HIEROGLYPH G034
-13167 ; [.4044.0020.0002] # EGYPTIAN HIEROGLYPH G035
-13168 ; [.4045.0020.0002] # EGYPTIAN HIEROGLYPH G036
-13169 ; [.4046.0020.0002] # EGYPTIAN HIEROGLYPH G036A
-1316A ; [.4047.0020.0002] # EGYPTIAN HIEROGLYPH G037
-1316B ; [.4048.0020.0002] # EGYPTIAN HIEROGLYPH G037A
-1316C ; [.4049.0020.0002] # EGYPTIAN HIEROGLYPH G038
-1316D ; [.404A.0020.0002] # EGYPTIAN HIEROGLYPH G039
-1316E ; [.404B.0020.0002] # EGYPTIAN HIEROGLYPH G040
-1316F ; [.404C.0020.0002] # EGYPTIAN HIEROGLYPH G041
-13170 ; [.404D.0020.0002] # EGYPTIAN HIEROGLYPH G042
-13171 ; [.404E.0020.0002] # EGYPTIAN HIEROGLYPH G043
-13172 ; [.404F.0020.0002] # EGYPTIAN HIEROGLYPH G043A
-13173 ; [.4050.0020.0002] # EGYPTIAN HIEROGLYPH G044
-13174 ; [.4051.0020.0002] # EGYPTIAN HIEROGLYPH G045
-13175 ; [.4052.0020.0002] # EGYPTIAN HIEROGLYPH G045A
-13176 ; [.4053.0020.0002] # EGYPTIAN HIEROGLYPH G046
-13177 ; [.4054.0020.0002] # EGYPTIAN HIEROGLYPH G047
-13178 ; [.4055.0020.0002] # EGYPTIAN HIEROGLYPH G048
-13179 ; [.4056.0020.0002] # EGYPTIAN HIEROGLYPH G049
-1317A ; [.4057.0020.0002] # EGYPTIAN HIEROGLYPH G050
-1317B ; [.4058.0020.0002] # EGYPTIAN HIEROGLYPH G051
-1317C ; [.4059.0020.0002] # EGYPTIAN HIEROGLYPH G052
-1317D ; [.405A.0020.0002] # EGYPTIAN HIEROGLYPH G053
-1317E ; [.405B.0020.0002] # EGYPTIAN HIEROGLYPH G054
-1317F ; [.405C.0020.0002] # EGYPTIAN HIEROGLYPH H001
-13180 ; [.405D.0020.0002] # EGYPTIAN HIEROGLYPH H002
-13181 ; [.405E.0020.0002] # EGYPTIAN HIEROGLYPH H003
-13182 ; [.405F.0020.0002] # EGYPTIAN HIEROGLYPH H004
-13183 ; [.4060.0020.0002] # EGYPTIAN HIEROGLYPH H005
-13184 ; [.4061.0020.0002] # EGYPTIAN HIEROGLYPH H006
-13185 ; [.4062.0020.0002] # EGYPTIAN HIEROGLYPH H006A
-13186 ; [.4063.0020.0002] # EGYPTIAN HIEROGLYPH H007
-13187 ; [.4064.0020.0002] # EGYPTIAN HIEROGLYPH H008
-13188 ; [.4065.0020.0002] # EGYPTIAN HIEROGLYPH I001
-13189 ; [.4066.0020.0002] # EGYPTIAN HIEROGLYPH I002
-1318A ; [.4067.0020.0002] # EGYPTIAN HIEROGLYPH I003
-1318B ; [.4068.0020.0002] # EGYPTIAN HIEROGLYPH I004
-1318C ; [.4069.0020.0002] # EGYPTIAN HIEROGLYPH I005
-1318D ; [.406A.0020.0002] # EGYPTIAN HIEROGLYPH I005A
-1318E ; [.406B.0020.0002] # EGYPTIAN HIEROGLYPH I006
-1318F ; [.406C.0020.0002] # EGYPTIAN HIEROGLYPH I007
-13190 ; [.406D.0020.0002] # EGYPTIAN HIEROGLYPH I008
-13191 ; [.406E.0020.0002] # EGYPTIAN HIEROGLYPH I009
-13192 ; [.406F.0020.0002] # EGYPTIAN HIEROGLYPH I009A
-13193 ; [.4070.0020.0002] # EGYPTIAN HIEROGLYPH I010
-13194 ; [.4071.0020.0002] # EGYPTIAN HIEROGLYPH I010A
-13195 ; [.4072.0020.0002] # EGYPTIAN HIEROGLYPH I011
-13196 ; [.4073.0020.0002] # EGYPTIAN HIEROGLYPH I011A
-13197 ; [.4074.0020.0002] # EGYPTIAN HIEROGLYPH I012
-13198 ; [.4075.0020.0002] # EGYPTIAN HIEROGLYPH I013
-13199 ; [.4076.0020.0002] # EGYPTIAN HIEROGLYPH I014
-1319A ; [.4077.0020.0002] # EGYPTIAN HIEROGLYPH I015
-1319B ; [.4078.0020.0002] # EGYPTIAN HIEROGLYPH K001
-1319C ; [.4079.0020.0002] # EGYPTIAN HIEROGLYPH K002
-1319D ; [.407A.0020.0002] # EGYPTIAN HIEROGLYPH K003
-1319E ; [.407B.0020.0002] # EGYPTIAN HIEROGLYPH K004
-1319F ; [.407C.0020.0002] # EGYPTIAN HIEROGLYPH K005
-131A0 ; [.407D.0020.0002] # EGYPTIAN HIEROGLYPH K006
-131A1 ; [.407E.0020.0002] # EGYPTIAN HIEROGLYPH K007
-131A2 ; [.407F.0020.0002] # EGYPTIAN HIEROGLYPH K008
-131A3 ; [.4080.0020.0002] # EGYPTIAN HIEROGLYPH L001
-131A4 ; [.4081.0020.0002] # EGYPTIAN HIEROGLYPH L002
-131A5 ; [.4082.0020.0002] # EGYPTIAN HIEROGLYPH L002A
-131A6 ; [.4083.0020.0002] # EGYPTIAN HIEROGLYPH L003
-131A7 ; [.4084.0020.0002] # EGYPTIAN HIEROGLYPH L004
-131A8 ; [.4085.0020.0002] # EGYPTIAN HIEROGLYPH L005
-131A9 ; [.4086.0020.0002] # EGYPTIAN HIEROGLYPH L006
-131AA ; [.4087.0020.0002] # EGYPTIAN HIEROGLYPH L006A
-131AB ; [.4088.0020.0002] # EGYPTIAN HIEROGLYPH L007
-131AC ; [.4089.0020.0002] # EGYPTIAN HIEROGLYPH L008
-131AD ; [.408A.0020.0002] # EGYPTIAN HIEROGLYPH M001
-131AE ; [.408B.0020.0002] # EGYPTIAN HIEROGLYPH M001A
-131AF ; [.408C.0020.0002] # EGYPTIAN HIEROGLYPH M001B
-131B0 ; [.408D.0020.0002] # EGYPTIAN HIEROGLYPH M002
-131B1 ; [.408E.0020.0002] # EGYPTIAN HIEROGLYPH M003
-131B2 ; [.408F.0020.0002] # EGYPTIAN HIEROGLYPH M003A
-131B3 ; [.4090.0020.0002] # EGYPTIAN HIEROGLYPH M004
-131B4 ; [.4091.0020.0002] # EGYPTIAN HIEROGLYPH M005
-131B5 ; [.4092.0020.0002] # EGYPTIAN HIEROGLYPH M006
-131B6 ; [.4093.0020.0002] # EGYPTIAN HIEROGLYPH M007
-131B7 ; [.4094.0020.0002] # EGYPTIAN HIEROGLYPH M008
-131B8 ; [.4095.0020.0002] # EGYPTIAN HIEROGLYPH M009
-131B9 ; [.4096.0020.0002] # EGYPTIAN HIEROGLYPH M010
-131BA ; [.4097.0020.0002] # EGYPTIAN HIEROGLYPH M010A
-131BB ; [.4098.0020.0002] # EGYPTIAN HIEROGLYPH M011
-131BC ; [.4099.0020.0002] # EGYPTIAN HIEROGLYPH M012
-131BD ; [.409A.0020.0002] # EGYPTIAN HIEROGLYPH M012A
-131BE ; [.409B.0020.0002] # EGYPTIAN HIEROGLYPH M012B
-131BF ; [.409C.0020.0002] # EGYPTIAN HIEROGLYPH M012C
-131C0 ; [.409D.0020.0002] # EGYPTIAN HIEROGLYPH M012D
-131C1 ; [.409E.0020.0002] # EGYPTIAN HIEROGLYPH M012E
-131C2 ; [.409F.0020.0002] # EGYPTIAN HIEROGLYPH M012F
-131C3 ; [.40A0.0020.0002] # EGYPTIAN HIEROGLYPH M012G
-131C4 ; [.40A1.0020.0002] # EGYPTIAN HIEROGLYPH M012H
-131C5 ; [.40A2.0020.0002] # EGYPTIAN HIEROGLYPH M013
-131C6 ; [.40A3.0020.0002] # EGYPTIAN HIEROGLYPH M014
-131C7 ; [.40A4.0020.0002] # EGYPTIAN HIEROGLYPH M015
-131C8 ; [.40A5.0020.0002] # EGYPTIAN HIEROGLYPH M015A
-131C9 ; [.40A6.0020.0002] # EGYPTIAN HIEROGLYPH M016
-131CA ; [.40A7.0020.0002] # EGYPTIAN HIEROGLYPH M016A
-131CB ; [.40A8.0020.0002] # EGYPTIAN HIEROGLYPH M017
-131CC ; [.40A9.0020.0002] # EGYPTIAN HIEROGLYPH M017A
-131CD ; [.40AA.0020.0002] # EGYPTIAN HIEROGLYPH M018
-131CE ; [.40AB.0020.0002] # EGYPTIAN HIEROGLYPH M019
-131CF ; [.40AC.0020.0002] # EGYPTIAN HIEROGLYPH M020
-131D0 ; [.40AD.0020.0002] # EGYPTIAN HIEROGLYPH M021
-131D1 ; [.40AE.0020.0002] # EGYPTIAN HIEROGLYPH M022
-131D2 ; [.40AF.0020.0002] # EGYPTIAN HIEROGLYPH M022A
-131D3 ; [.40B0.0020.0002] # EGYPTIAN HIEROGLYPH M023
-131D4 ; [.40B1.0020.0002] # EGYPTIAN HIEROGLYPH M024
-131D5 ; [.40B2.0020.0002] # EGYPTIAN HIEROGLYPH M024A
-131D6 ; [.40B3.0020.0002] # EGYPTIAN HIEROGLYPH M025
-131D7 ; [.40B4.0020.0002] # EGYPTIAN HIEROGLYPH M026
-131D8 ; [.40B5.0020.0002] # EGYPTIAN HIEROGLYPH M027
-131D9 ; [.40B6.0020.0002] # EGYPTIAN HIEROGLYPH M028
-131DA ; [.40B7.0020.0002] # EGYPTIAN HIEROGLYPH M028A
-131DB ; [.40B8.0020.0002] # EGYPTIAN HIEROGLYPH M029
-131DC ; [.40B9.0020.0002] # EGYPTIAN HIEROGLYPH M030
-131DD ; [.40BA.0020.0002] # EGYPTIAN HIEROGLYPH M031
-131DE ; [.40BB.0020.0002] # EGYPTIAN HIEROGLYPH M031A
-131DF ; [.40BC.0020.0002] # EGYPTIAN HIEROGLYPH M032
-131E0 ; [.40BD.0020.0002] # EGYPTIAN HIEROGLYPH M033
-131E1 ; [.40BE.0020.0002] # EGYPTIAN HIEROGLYPH M033A
-131E2 ; [.40BF.0020.0002] # EGYPTIAN HIEROGLYPH M033B
-131E3 ; [.40C0.0020.0002] # EGYPTIAN HIEROGLYPH M034
-131E4 ; [.40C1.0020.0002] # EGYPTIAN HIEROGLYPH M035
-131E5 ; [.40C2.0020.0002] # EGYPTIAN HIEROGLYPH M036
-131E6 ; [.40C3.0020.0002] # EGYPTIAN HIEROGLYPH M037
-131E7 ; [.40C4.0020.0002] # EGYPTIAN HIEROGLYPH M038
-131E8 ; [.40C5.0020.0002] # EGYPTIAN HIEROGLYPH M039
-131E9 ; [.40C6.0020.0002] # EGYPTIAN HIEROGLYPH M040
-131EA ; [.40C7.0020.0002] # EGYPTIAN HIEROGLYPH M040A
-131EB ; [.40C8.0020.0002] # EGYPTIAN HIEROGLYPH M041
-131EC ; [.40C9.0020.0002] # EGYPTIAN HIEROGLYPH M042
-131ED ; [.40CA.0020.0002] # EGYPTIAN HIEROGLYPH M043
-131EE ; [.40CB.0020.0002] # EGYPTIAN HIEROGLYPH M044
-131EF ; [.40CC.0020.0002] # EGYPTIAN HIEROGLYPH N001
-131F0 ; [.40CD.0020.0002] # EGYPTIAN HIEROGLYPH N002
-131F1 ; [.40CE.0020.0002] # EGYPTIAN HIEROGLYPH N003
-131F2 ; [.40CF.0020.0002] # EGYPTIAN HIEROGLYPH N004
-131F3 ; [.40D0.0020.0002] # EGYPTIAN HIEROGLYPH N005
-131F4 ; [.40D1.0020.0002] # EGYPTIAN HIEROGLYPH N006
-131F5 ; [.40D2.0020.0002] # EGYPTIAN HIEROGLYPH N007
-131F6 ; [.40D3.0020.0002] # EGYPTIAN HIEROGLYPH N008
-131F7 ; [.40D4.0020.0002] # EGYPTIAN HIEROGLYPH N009
-131F8 ; [.40D5.0020.0002] # EGYPTIAN HIEROGLYPH N010
-131F9 ; [.40D6.0020.0002] # EGYPTIAN HIEROGLYPH N011
-131FA ; [.40D7.0020.0002] # EGYPTIAN HIEROGLYPH N012
-131FB ; [.40D8.0020.0002] # EGYPTIAN HIEROGLYPH N013
-131FC ; [.40D9.0020.0002] # EGYPTIAN HIEROGLYPH N014
-131FD ; [.40DA.0020.0002] # EGYPTIAN HIEROGLYPH N015
-131FE ; [.40DB.0020.0002] # EGYPTIAN HIEROGLYPH N016
-131FF ; [.40DC.0020.0002] # EGYPTIAN HIEROGLYPH N017
-13200 ; [.40DD.0020.0002] # EGYPTIAN HIEROGLYPH N018
-13201 ; [.40DE.0020.0002] # EGYPTIAN HIEROGLYPH N018A
-13202 ; [.40DF.0020.0002] # EGYPTIAN HIEROGLYPH N018B
-13203 ; [.40E0.0020.0002] # EGYPTIAN HIEROGLYPH N019
-13204 ; [.40E1.0020.0002] # EGYPTIAN HIEROGLYPH N020
-13205 ; [.40E2.0020.0002] # EGYPTIAN HIEROGLYPH N021
-13206 ; [.40E3.0020.0002] # EGYPTIAN HIEROGLYPH N022
-13207 ; [.40E4.0020.0002] # EGYPTIAN HIEROGLYPH N023
-13208 ; [.40E5.0020.0002] # EGYPTIAN HIEROGLYPH N024
-13209 ; [.40E6.0020.0002] # EGYPTIAN HIEROGLYPH N025
-1320A ; [.40E7.0020.0002] # EGYPTIAN HIEROGLYPH N025A
-1320B ; [.40E8.0020.0002] # EGYPTIAN HIEROGLYPH N026
-1320C ; [.40E9.0020.0002] # EGYPTIAN HIEROGLYPH N027
-1320D ; [.40EA.0020.0002] # EGYPTIAN HIEROGLYPH N028
-1320E ; [.40EB.0020.0002] # EGYPTIAN HIEROGLYPH N029
-1320F ; [.40EC.0020.0002] # EGYPTIAN HIEROGLYPH N030
-13210 ; [.40ED.0020.0002] # EGYPTIAN HIEROGLYPH N031
-13211 ; [.40EE.0020.0002] # EGYPTIAN HIEROGLYPH N032
-13212 ; [.40EF.0020.0002] # EGYPTIAN HIEROGLYPH N033
-13213 ; [.40F0.0020.0002] # EGYPTIAN HIEROGLYPH N033A
-13214 ; [.40F1.0020.0002] # EGYPTIAN HIEROGLYPH N034
-13215 ; [.40F2.0020.0002] # EGYPTIAN HIEROGLYPH N034A
-13216 ; [.40F3.0020.0002] # EGYPTIAN HIEROGLYPH N035
-13217 ; [.40F4.0020.0002] # EGYPTIAN HIEROGLYPH N035A
-13218 ; [.40F5.0020.0002] # EGYPTIAN HIEROGLYPH N036
-13219 ; [.40F6.0020.0002] # EGYPTIAN HIEROGLYPH N037
-1321A ; [.40F7.0020.0002] # EGYPTIAN HIEROGLYPH N037A
-1321B ; [.40F8.0020.0002] # EGYPTIAN HIEROGLYPH N038
-1321C ; [.40F9.0020.0002] # EGYPTIAN HIEROGLYPH N039
-1321D ; [.40FA.0020.0002] # EGYPTIAN HIEROGLYPH N040
-1321E ; [.40FB.0020.0002] # EGYPTIAN HIEROGLYPH N041
-1321F ; [.40FC.0020.0002] # EGYPTIAN HIEROGLYPH N042
-13220 ; [.40FD.0020.0002] # EGYPTIAN HIEROGLYPH NL001
-13221 ; [.40FE.0020.0002] # EGYPTIAN HIEROGLYPH NL002
-13222 ; [.40FF.0020.0002] # EGYPTIAN HIEROGLYPH NL003
-13223 ; [.4100.0020.0002] # EGYPTIAN HIEROGLYPH NL004
-13224 ; [.4101.0020.0002] # EGYPTIAN HIEROGLYPH NL005
-13225 ; [.4102.0020.0002] # EGYPTIAN HIEROGLYPH NL005A
-13226 ; [.4103.0020.0002] # EGYPTIAN HIEROGLYPH NL006
-13227 ; [.4104.0020.0002] # EGYPTIAN HIEROGLYPH NL007
-13228 ; [.4105.0020.0002] # EGYPTIAN HIEROGLYPH NL008
-13229 ; [.4106.0020.0002] # EGYPTIAN HIEROGLYPH NL009
-1322A ; [.4107.0020.0002] # EGYPTIAN HIEROGLYPH NL010
-1322B ; [.4108.0020.0002] # EGYPTIAN HIEROGLYPH NL011
-1322C ; [.4109.0020.0002] # EGYPTIAN HIEROGLYPH NL012
-1322D ; [.410A.0020.0002] # EGYPTIAN HIEROGLYPH NL013
-1322E ; [.410B.0020.0002] # EGYPTIAN HIEROGLYPH NL014
-1322F ; [.410C.0020.0002] # EGYPTIAN HIEROGLYPH NL015
-13230 ; [.410D.0020.0002] # EGYPTIAN HIEROGLYPH NL016
-13231 ; [.410E.0020.0002] # EGYPTIAN HIEROGLYPH NL017
-13232 ; [.410F.0020.0002] # EGYPTIAN HIEROGLYPH NL017A
-13233 ; [.4110.0020.0002] # EGYPTIAN HIEROGLYPH NL018
-13234 ; [.4111.0020.0002] # EGYPTIAN HIEROGLYPH NL019
-13235 ; [.4112.0020.0002] # EGYPTIAN HIEROGLYPH NL020
-13236 ; [.4113.0020.0002] # EGYPTIAN HIEROGLYPH NU001
-13237 ; [.4114.0020.0002] # EGYPTIAN HIEROGLYPH NU002
-13238 ; [.4115.0020.0002] # EGYPTIAN HIEROGLYPH NU003
-13239 ; [.4116.0020.0002] # EGYPTIAN HIEROGLYPH NU004
-1323A ; [.4117.0020.0002] # EGYPTIAN HIEROGLYPH NU005
-1323B ; [.4118.0020.0002] # EGYPTIAN HIEROGLYPH NU006
-1323C ; [.4119.0020.0002] # EGYPTIAN HIEROGLYPH NU007
-1323D ; [.411A.0020.0002] # EGYPTIAN HIEROGLYPH NU008
-1323E ; [.411B.0020.0002] # EGYPTIAN HIEROGLYPH NU009
-1323F ; [.411C.0020.0002] # EGYPTIAN HIEROGLYPH NU010
-13240 ; [.411D.0020.0002] # EGYPTIAN HIEROGLYPH NU010A
-13241 ; [.411E.0020.0002] # EGYPTIAN HIEROGLYPH NU011
-13242 ; [.411F.0020.0002] # EGYPTIAN HIEROGLYPH NU011A
-13243 ; [.4120.0020.0002] # EGYPTIAN HIEROGLYPH NU012
-13244 ; [.4121.0020.0002] # EGYPTIAN HIEROGLYPH NU013
-13245 ; [.4122.0020.0002] # EGYPTIAN HIEROGLYPH NU014
-13246 ; [.4123.0020.0002] # EGYPTIAN HIEROGLYPH NU015
-13247 ; [.4124.0020.0002] # EGYPTIAN HIEROGLYPH NU016
-13248 ; [.4125.0020.0002] # EGYPTIAN HIEROGLYPH NU017
-13249 ; [.4126.0020.0002] # EGYPTIAN HIEROGLYPH NU018
-1324A ; [.4127.0020.0002] # EGYPTIAN HIEROGLYPH NU018A
-1324B ; [.4128.0020.0002] # EGYPTIAN HIEROGLYPH NU019
-1324C ; [.4129.0020.0002] # EGYPTIAN HIEROGLYPH NU020
-1324D ; [.412A.0020.0002] # EGYPTIAN HIEROGLYPH NU021
-1324E ; [.412B.0020.0002] # EGYPTIAN HIEROGLYPH NU022
-1324F ; [.412C.0020.0002] # EGYPTIAN HIEROGLYPH NU022A
-13250 ; [.412D.0020.0002] # EGYPTIAN HIEROGLYPH O001
-13251 ; [.412E.0020.0002] # EGYPTIAN HIEROGLYPH O001A
-13252 ; [.412F.0020.0002] # EGYPTIAN HIEROGLYPH O002
-13253 ; [.4130.0020.0002] # EGYPTIAN HIEROGLYPH O003
-13254 ; [.4131.0020.0002] # EGYPTIAN HIEROGLYPH O004
-13255 ; [.4132.0020.0002] # EGYPTIAN HIEROGLYPH O005
-13256 ; [.4133.0020.0002] # EGYPTIAN HIEROGLYPH O005A
-13257 ; [.4134.0020.0002] # EGYPTIAN HIEROGLYPH O006
-13258 ; [.4135.0020.0002] # EGYPTIAN HIEROGLYPH O006A
-13259 ; [.4136.0020.0002] # EGYPTIAN HIEROGLYPH O006B
-1325A ; [.4137.0020.0002] # EGYPTIAN HIEROGLYPH O006C
-1325B ; [.4138.0020.0002] # EGYPTIAN HIEROGLYPH O006D
-1325C ; [.4139.0020.0002] # EGYPTIAN HIEROGLYPH O006E
-1325D ; [.413A.0020.0002] # EGYPTIAN HIEROGLYPH O006F
-1325E ; [.413B.0020.0002] # EGYPTIAN HIEROGLYPH O007
-1325F ; [.413C.0020.0002] # EGYPTIAN HIEROGLYPH O008
-13260 ; [.413D.0020.0002] # EGYPTIAN HIEROGLYPH O009
-13261 ; [.413E.0020.0002] # EGYPTIAN HIEROGLYPH O010
-13262 ; [.413F.0020.0002] # EGYPTIAN HIEROGLYPH O010A
-13263 ; [.4140.0020.0002] # EGYPTIAN HIEROGLYPH O010B
-13264 ; [.4141.0020.0002] # EGYPTIAN HIEROGLYPH O010C
-13265 ; [.4142.0020.0002] # EGYPTIAN HIEROGLYPH O011
-13266 ; [.4143.0020.0002] # EGYPTIAN HIEROGLYPH O012
-13267 ; [.4144.0020.0002] # EGYPTIAN HIEROGLYPH O013
-13268 ; [.4145.0020.0002] # EGYPTIAN HIEROGLYPH O014
-13269 ; [.4146.0020.0002] # EGYPTIAN HIEROGLYPH O015
-1326A ; [.4147.0020.0002] # EGYPTIAN HIEROGLYPH O016
-1326B ; [.4148.0020.0002] # EGYPTIAN HIEROGLYPH O017
-1326C ; [.4149.0020.0002] # EGYPTIAN HIEROGLYPH O018
-1326D ; [.414A.0020.0002] # EGYPTIAN HIEROGLYPH O019
-1326E ; [.414B.0020.0002] # EGYPTIAN HIEROGLYPH O019A
-1326F ; [.414C.0020.0002] # EGYPTIAN HIEROGLYPH O020
-13270 ; [.414D.0020.0002] # EGYPTIAN HIEROGLYPH O020A
-13271 ; [.414E.0020.0002] # EGYPTIAN HIEROGLYPH O021
-13272 ; [.414F.0020.0002] # EGYPTIAN HIEROGLYPH O022
-13273 ; [.4150.0020.0002] # EGYPTIAN HIEROGLYPH O023
-13274 ; [.4151.0020.0002] # EGYPTIAN HIEROGLYPH O024
-13275 ; [.4152.0020.0002] # EGYPTIAN HIEROGLYPH O024A
-13276 ; [.4153.0020.0002] # EGYPTIAN HIEROGLYPH O025
-13277 ; [.4154.0020.0002] # EGYPTIAN HIEROGLYPH O025A
-13278 ; [.4155.0020.0002] # EGYPTIAN HIEROGLYPH O026
-13279 ; [.4156.0020.0002] # EGYPTIAN HIEROGLYPH O027
-1327A ; [.4157.0020.0002] # EGYPTIAN HIEROGLYPH O028
-1327B ; [.4158.0020.0002] # EGYPTIAN HIEROGLYPH O029
-1327C ; [.4159.0020.0002] # EGYPTIAN HIEROGLYPH O029A
-1327D ; [.415A.0020.0002] # EGYPTIAN HIEROGLYPH O030
-1327E ; [.415B.0020.0002] # EGYPTIAN HIEROGLYPH O030A
-1327F ; [.415C.0020.0002] # EGYPTIAN HIEROGLYPH O031
-13280 ; [.415D.0020.0002] # EGYPTIAN HIEROGLYPH O032
-13281 ; [.415E.0020.0002] # EGYPTIAN HIEROGLYPH O033
-13282 ; [.415F.0020.0002] # EGYPTIAN HIEROGLYPH O033A
-13283 ; [.4160.0020.0002] # EGYPTIAN HIEROGLYPH O034
-13284 ; [.4161.0020.0002] # EGYPTIAN HIEROGLYPH O035
-13285 ; [.4162.0020.0002] # EGYPTIAN HIEROGLYPH O036
-13286 ; [.4163.0020.0002] # EGYPTIAN HIEROGLYPH O036A
-13287 ; [.4164.0020.0002] # EGYPTIAN HIEROGLYPH O036B
-13288 ; [.4165.0020.0002] # EGYPTIAN HIEROGLYPH O036C
-13289 ; [.4166.0020.0002] # EGYPTIAN HIEROGLYPH O036D
-1328A ; [.4167.0020.0002] # EGYPTIAN HIEROGLYPH O037
-1328B ; [.4168.0020.0002] # EGYPTIAN HIEROGLYPH O038
-1328C ; [.4169.0020.0002] # EGYPTIAN HIEROGLYPH O039
-1328D ; [.416A.0020.0002] # EGYPTIAN HIEROGLYPH O040
-1328E ; [.416B.0020.0002] # EGYPTIAN HIEROGLYPH O041
-1328F ; [.416C.0020.0002] # EGYPTIAN HIEROGLYPH O042
-13290 ; [.416D.0020.0002] # EGYPTIAN HIEROGLYPH O043
-13291 ; [.416E.0020.0002] # EGYPTIAN HIEROGLYPH O044
-13292 ; [.416F.0020.0002] # EGYPTIAN HIEROGLYPH O045
-13293 ; [.4170.0020.0002] # EGYPTIAN HIEROGLYPH O046
-13294 ; [.4171.0020.0002] # EGYPTIAN HIEROGLYPH O047
-13295 ; [.4172.0020.0002] # EGYPTIAN HIEROGLYPH O048
-13296 ; [.4173.0020.0002] # EGYPTIAN HIEROGLYPH O049
-13297 ; [.4174.0020.0002] # EGYPTIAN HIEROGLYPH O050
-13298 ; [.4175.0020.0002] # EGYPTIAN HIEROGLYPH O050A
-13299 ; [.4176.0020.0002] # EGYPTIAN HIEROGLYPH O050B
-1329A ; [.4177.0020.0002] # EGYPTIAN HIEROGLYPH O051
-1329B ; [.4178.0020.0002] # EGYPTIAN HIEROGLYPH P001
-1329C ; [.4179.0020.0002] # EGYPTIAN HIEROGLYPH P001A
-1329D ; [.417A.0020.0002] # EGYPTIAN HIEROGLYPH P002
-1329E ; [.417B.0020.0002] # EGYPTIAN HIEROGLYPH P003
-1329F ; [.417C.0020.0002] # EGYPTIAN HIEROGLYPH P003A
-132A0 ; [.417D.0020.0002] # EGYPTIAN HIEROGLYPH P004
-132A1 ; [.417E.0020.0002] # EGYPTIAN HIEROGLYPH P005
-132A2 ; [.417F.0020.0002] # EGYPTIAN HIEROGLYPH P006
-132A3 ; [.4180.0020.0002] # EGYPTIAN HIEROGLYPH P007
-132A4 ; [.4181.0020.0002] # EGYPTIAN HIEROGLYPH P008
-132A5 ; [.4182.0020.0002] # EGYPTIAN HIEROGLYPH P009
-132A6 ; [.4183.0020.0002] # EGYPTIAN HIEROGLYPH P010
-132A7 ; [.4184.0020.0002] # EGYPTIAN HIEROGLYPH P011
-132A8 ; [.4185.0020.0002] # EGYPTIAN HIEROGLYPH Q001
-132A9 ; [.4186.0020.0002] # EGYPTIAN HIEROGLYPH Q002
-132AA ; [.4187.0020.0002] # EGYPTIAN HIEROGLYPH Q003
-132AB ; [.4188.0020.0002] # EGYPTIAN HIEROGLYPH Q004
-132AC ; [.4189.0020.0002] # EGYPTIAN HIEROGLYPH Q005
-132AD ; [.418A.0020.0002] # EGYPTIAN HIEROGLYPH Q006
-132AE ; [.418B.0020.0002] # EGYPTIAN HIEROGLYPH Q007
-132AF ; [.418C.0020.0002] # EGYPTIAN HIEROGLYPH R001
-132B0 ; [.418D.0020.0002] # EGYPTIAN HIEROGLYPH R002
-132B1 ; [.418E.0020.0002] # EGYPTIAN HIEROGLYPH R002A
-132B2 ; [.418F.0020.0002] # EGYPTIAN HIEROGLYPH R003
-132B3 ; [.4190.0020.0002] # EGYPTIAN HIEROGLYPH R003A
-132B4 ; [.4191.0020.0002] # EGYPTIAN HIEROGLYPH R003B
-132B5 ; [.4192.0020.0002] # EGYPTIAN HIEROGLYPH R004
-132B6 ; [.4193.0020.0002] # EGYPTIAN HIEROGLYPH R005
-132B7 ; [.4194.0020.0002] # EGYPTIAN HIEROGLYPH R006
-132B8 ; [.4195.0020.0002] # EGYPTIAN HIEROGLYPH R007
-132B9 ; [.4196.0020.0002] # EGYPTIAN HIEROGLYPH R008
-132BA ; [.4197.0020.0002] # EGYPTIAN HIEROGLYPH R009
-132BB ; [.4198.0020.0002] # EGYPTIAN HIEROGLYPH R010
-132BC ; [.4199.0020.0002] # EGYPTIAN HIEROGLYPH R010A
-132BD ; [.419A.0020.0002] # EGYPTIAN HIEROGLYPH R011
-132BE ; [.419B.0020.0002] # EGYPTIAN HIEROGLYPH R012
-132BF ; [.419C.0020.0002] # EGYPTIAN HIEROGLYPH R013
-132C0 ; [.419D.0020.0002] # EGYPTIAN HIEROGLYPH R014
-132C1 ; [.419E.0020.0002] # EGYPTIAN HIEROGLYPH R015
-132C2 ; [.419F.0020.0002] # EGYPTIAN HIEROGLYPH R016
-132C3 ; [.41A0.0020.0002] # EGYPTIAN HIEROGLYPH R016A
-132C4 ; [.41A1.0020.0002] # EGYPTIAN HIEROGLYPH R017
-132C5 ; [.41A2.0020.0002] # EGYPTIAN HIEROGLYPH R018
-132C6 ; [.41A3.0020.0002] # EGYPTIAN HIEROGLYPH R019
-132C7 ; [.41A4.0020.0002] # EGYPTIAN HIEROGLYPH R020
-132C8 ; [.41A5.0020.0002] # EGYPTIAN HIEROGLYPH R021
-132C9 ; [.41A6.0020.0002] # EGYPTIAN HIEROGLYPH R022
-132CA ; [.41A7.0020.0002] # EGYPTIAN HIEROGLYPH R023
-132CB ; [.41A8.0020.0002] # EGYPTIAN HIEROGLYPH R024
-132CC ; [.41A9.0020.0002] # EGYPTIAN HIEROGLYPH R025
-132CD ; [.41AA.0020.0002] # EGYPTIAN HIEROGLYPH R026
-132CE ; [.41AB.0020.0002] # EGYPTIAN HIEROGLYPH R027
-132CF ; [.41AC.0020.0002] # EGYPTIAN HIEROGLYPH R028
-132D0 ; [.41AD.0020.0002] # EGYPTIAN HIEROGLYPH R029
-132D1 ; [.41AE.0020.0002] # EGYPTIAN HIEROGLYPH S001
-132D2 ; [.41AF.0020.0002] # EGYPTIAN HIEROGLYPH S002
-132D3 ; [.41B0.0020.0002] # EGYPTIAN HIEROGLYPH S002A
-132D4 ; [.41B1.0020.0002] # EGYPTIAN HIEROGLYPH S003
-132D5 ; [.41B2.0020.0002] # EGYPTIAN HIEROGLYPH S004
-132D6 ; [.41B3.0020.0002] # EGYPTIAN HIEROGLYPH S005
-132D7 ; [.41B4.0020.0002] # EGYPTIAN HIEROGLYPH S006
-132D8 ; [.41B5.0020.0002] # EGYPTIAN HIEROGLYPH S006A
-132D9 ; [.41B6.0020.0002] # EGYPTIAN HIEROGLYPH S007
-132DA ; [.41B7.0020.0002] # EGYPTIAN HIEROGLYPH S008
-132DB ; [.41B8.0020.0002] # EGYPTIAN HIEROGLYPH S009
-132DC ; [.41B9.0020.0002] # EGYPTIAN HIEROGLYPH S010
-132DD ; [.41BA.0020.0002] # EGYPTIAN HIEROGLYPH S011
-132DE ; [.41BB.0020.0002] # EGYPTIAN HIEROGLYPH S012
-132DF ; [.41BC.0020.0002] # EGYPTIAN HIEROGLYPH S013
-132E0 ; [.41BD.0020.0002] # EGYPTIAN HIEROGLYPH S014
-132E1 ; [.41BE.0020.0002] # EGYPTIAN HIEROGLYPH S014A
-132E2 ; [.41BF.0020.0002] # EGYPTIAN HIEROGLYPH S014B
-132E3 ; [.41C0.0020.0002] # EGYPTIAN HIEROGLYPH S015
-132E4 ; [.41C1.0020.0002] # EGYPTIAN HIEROGLYPH S016
-132E5 ; [.41C2.0020.0002] # EGYPTIAN HIEROGLYPH S017
-132E6 ; [.41C3.0020.0002] # EGYPTIAN HIEROGLYPH S017A
-132E7 ; [.41C4.0020.0002] # EGYPTIAN HIEROGLYPH S018
-132E8 ; [.41C5.0020.0002] # EGYPTIAN HIEROGLYPH S019
-132E9 ; [.41C6.0020.0002] # EGYPTIAN HIEROGLYPH S020
-132EA ; [.41C7.0020.0002] # EGYPTIAN HIEROGLYPH S021
-132EB ; [.41C8.0020.0002] # EGYPTIAN HIEROGLYPH S022
-132EC ; [.41C9.0020.0002] # EGYPTIAN HIEROGLYPH S023
-132ED ; [.41CA.0020.0002] # EGYPTIAN HIEROGLYPH S024
-132EE ; [.41CB.0020.0002] # EGYPTIAN HIEROGLYPH S025
-132EF ; [.41CC.0020.0002] # EGYPTIAN HIEROGLYPH S026
-132F0 ; [.41CD.0020.0002] # EGYPTIAN HIEROGLYPH S026A
-132F1 ; [.41CE.0020.0002] # EGYPTIAN HIEROGLYPH S026B
-132F2 ; [.41CF.0020.0002] # EGYPTIAN HIEROGLYPH S027
-132F3 ; [.41D0.0020.0002] # EGYPTIAN HIEROGLYPH S028
-132F4 ; [.41D1.0020.0002] # EGYPTIAN HIEROGLYPH S029
-132F5 ; [.41D2.0020.0002] # EGYPTIAN HIEROGLYPH S030
-132F6 ; [.41D3.0020.0002] # EGYPTIAN HIEROGLYPH S031
-132F7 ; [.41D4.0020.0002] # EGYPTIAN HIEROGLYPH S032
-132F8 ; [.41D5.0020.0002] # EGYPTIAN HIEROGLYPH S033
-132F9 ; [.41D6.0020.0002] # EGYPTIAN HIEROGLYPH S034
-132FA ; [.41D7.0020.0002] # EGYPTIAN HIEROGLYPH S035
-132FB ; [.41D8.0020.0002] # EGYPTIAN HIEROGLYPH S035A
-132FC ; [.41D9.0020.0002] # EGYPTIAN HIEROGLYPH S036
-132FD ; [.41DA.0020.0002] # EGYPTIAN HIEROGLYPH S037
-132FE ; [.41DB.0020.0002] # EGYPTIAN HIEROGLYPH S038
-132FF ; [.41DC.0020.0002] # EGYPTIAN HIEROGLYPH S039
-13300 ; [.41DD.0020.0002] # EGYPTIAN HIEROGLYPH S040
-13301 ; [.41DE.0020.0002] # EGYPTIAN HIEROGLYPH S041
-13302 ; [.41DF.0020.0002] # EGYPTIAN HIEROGLYPH S042
-13303 ; [.41E0.0020.0002] # EGYPTIAN HIEROGLYPH S043
-13304 ; [.41E1.0020.0002] # EGYPTIAN HIEROGLYPH S044
-13305 ; [.41E2.0020.0002] # EGYPTIAN HIEROGLYPH S045
-13306 ; [.41E3.0020.0002] # EGYPTIAN HIEROGLYPH S046
-13307 ; [.41E4.0020.0002] # EGYPTIAN HIEROGLYPH T001
-13308 ; [.41E5.0020.0002] # EGYPTIAN HIEROGLYPH T002
-13309 ; [.41E6.0020.0002] # EGYPTIAN HIEROGLYPH T003
-1330A ; [.41E7.0020.0002] # EGYPTIAN HIEROGLYPH T003A
-1330B ; [.41E8.0020.0002] # EGYPTIAN HIEROGLYPH T004
-1330C ; [.41E9.0020.0002] # EGYPTIAN HIEROGLYPH T005
-1330D ; [.41EA.0020.0002] # EGYPTIAN HIEROGLYPH T006
-1330E ; [.41EB.0020.0002] # EGYPTIAN HIEROGLYPH T007
-1330F ; [.41EC.0020.0002] # EGYPTIAN HIEROGLYPH T007A
-13310 ; [.41ED.0020.0002] # EGYPTIAN HIEROGLYPH T008
-13311 ; [.41EE.0020.0002] # EGYPTIAN HIEROGLYPH T008A
-13312 ; [.41EF.0020.0002] # EGYPTIAN HIEROGLYPH T009
-13313 ; [.41F0.0020.0002] # EGYPTIAN HIEROGLYPH T009A
-13314 ; [.41F1.0020.0002] # EGYPTIAN HIEROGLYPH T010
-13315 ; [.41F2.0020.0002] # EGYPTIAN HIEROGLYPH T011
-13316 ; [.41F3.0020.0002] # EGYPTIAN HIEROGLYPH T011A
-13317 ; [.41F4.0020.0002] # EGYPTIAN HIEROGLYPH T012
-13318 ; [.41F5.0020.0002] # EGYPTIAN HIEROGLYPH T013
-13319 ; [.41F6.0020.0002] # EGYPTIAN HIEROGLYPH T014
-1331A ; [.41F7.0020.0002] # EGYPTIAN HIEROGLYPH T015
-1331B ; [.41F8.0020.0002] # EGYPTIAN HIEROGLYPH T016
-1331C ; [.41F9.0020.0002] # EGYPTIAN HIEROGLYPH T016A
-1331D ; [.41FA.0020.0002] # EGYPTIAN HIEROGLYPH T017
-1331E ; [.41FB.0020.0002] # EGYPTIAN HIEROGLYPH T018
-1331F ; [.41FC.0020.0002] # EGYPTIAN HIEROGLYPH T019
-13320 ; [.41FD.0020.0002] # EGYPTIAN HIEROGLYPH T020
-13321 ; [.41FE.0020.0002] # EGYPTIAN HIEROGLYPH T021
-13322 ; [.41FF.0020.0002] # EGYPTIAN HIEROGLYPH T022
-13323 ; [.4200.0020.0002] # EGYPTIAN HIEROGLYPH T023
-13324 ; [.4201.0020.0002] # EGYPTIAN HIEROGLYPH T024
-13325 ; [.4202.0020.0002] # EGYPTIAN HIEROGLYPH T025
-13326 ; [.4203.0020.0002] # EGYPTIAN HIEROGLYPH T026
-13327 ; [.4204.0020.0002] # EGYPTIAN HIEROGLYPH T027
-13328 ; [.4205.0020.0002] # EGYPTIAN HIEROGLYPH T028
-13329 ; [.4206.0020.0002] # EGYPTIAN HIEROGLYPH T029
-1332A ; [.4207.0020.0002] # EGYPTIAN HIEROGLYPH T030
-1332B ; [.4208.0020.0002] # EGYPTIAN HIEROGLYPH T031
-1332C ; [.4209.0020.0002] # EGYPTIAN HIEROGLYPH T032
-1332D ; [.420A.0020.0002] # EGYPTIAN HIEROGLYPH T032A
-1332E ; [.420B.0020.0002] # EGYPTIAN HIEROGLYPH T033
-1332F ; [.420C.0020.0002] # EGYPTIAN HIEROGLYPH T033A
-13330 ; [.420D.0020.0002] # EGYPTIAN HIEROGLYPH T034
-13331 ; [.420E.0020.0002] # EGYPTIAN HIEROGLYPH T035
-13332 ; [.420F.0020.0002] # EGYPTIAN HIEROGLYPH T036
-13333 ; [.4210.0020.0002] # EGYPTIAN HIEROGLYPH U001
-13334 ; [.4211.0020.0002] # EGYPTIAN HIEROGLYPH U002
-13335 ; [.4212.0020.0002] # EGYPTIAN HIEROGLYPH U003
-13336 ; [.4213.0020.0002] # EGYPTIAN HIEROGLYPH U004
-13337 ; [.4214.0020.0002] # EGYPTIAN HIEROGLYPH U005
-13338 ; [.4215.0020.0002] # EGYPTIAN HIEROGLYPH U006
-13339 ; [.4216.0020.0002] # EGYPTIAN HIEROGLYPH U006A
-1333A ; [.4217.0020.0002] # EGYPTIAN HIEROGLYPH U006B
-1333B ; [.4218.0020.0002] # EGYPTIAN HIEROGLYPH U007
-1333C ; [.4219.0020.0002] # EGYPTIAN HIEROGLYPH U008
-1333D ; [.421A.0020.0002] # EGYPTIAN HIEROGLYPH U009
-1333E ; [.421B.0020.0002] # EGYPTIAN HIEROGLYPH U010
-1333F ; [.421C.0020.0002] # EGYPTIAN HIEROGLYPH U011
-13340 ; [.421D.0020.0002] # EGYPTIAN HIEROGLYPH U012
-13341 ; [.421E.0020.0002] # EGYPTIAN HIEROGLYPH U013
-13342 ; [.421F.0020.0002] # EGYPTIAN HIEROGLYPH U014
-13343 ; [.4220.0020.0002] # EGYPTIAN HIEROGLYPH U015
-13344 ; [.4221.0020.0002] # EGYPTIAN HIEROGLYPH U016
-13345 ; [.4222.0020.0002] # EGYPTIAN HIEROGLYPH U017
-13346 ; [.4223.0020.0002] # EGYPTIAN HIEROGLYPH U018
-13347 ; [.4224.0020.0002] # EGYPTIAN HIEROGLYPH U019
-13348 ; [.4225.0020.0002] # EGYPTIAN HIEROGLYPH U020
-13349 ; [.4226.0020.0002] # EGYPTIAN HIEROGLYPH U021
-1334A ; [.4227.0020.0002] # EGYPTIAN HIEROGLYPH U022
-1334B ; [.4228.0020.0002] # EGYPTIAN HIEROGLYPH U023
-1334C ; [.4229.0020.0002] # EGYPTIAN HIEROGLYPH U023A
-1334D ; [.422A.0020.0002] # EGYPTIAN HIEROGLYPH U024
-1334E ; [.422B.0020.0002] # EGYPTIAN HIEROGLYPH U025
-1334F ; [.422C.0020.0002] # EGYPTIAN HIEROGLYPH U026
-13350 ; [.422D.0020.0002] # EGYPTIAN HIEROGLYPH U027
-13351 ; [.422E.0020.0002] # EGYPTIAN HIEROGLYPH U028
-13352 ; [.422F.0020.0002] # EGYPTIAN HIEROGLYPH U029
-13353 ; [.4230.0020.0002] # EGYPTIAN HIEROGLYPH U029A
-13354 ; [.4231.0020.0002] # EGYPTIAN HIEROGLYPH U030
-13355 ; [.4232.0020.0002] # EGYPTIAN HIEROGLYPH U031
-13356 ; [.4233.0020.0002] # EGYPTIAN HIEROGLYPH U032
-13357 ; [.4234.0020.0002] # EGYPTIAN HIEROGLYPH U032A
-13358 ; [.4235.0020.0002] # EGYPTIAN HIEROGLYPH U033
-13359 ; [.4236.0020.0002] # EGYPTIAN HIEROGLYPH U034
-1335A ; [.4237.0020.0002] # EGYPTIAN HIEROGLYPH U035
-1335B ; [.4238.0020.0002] # EGYPTIAN HIEROGLYPH U036
-1335C ; [.4239.0020.0002] # EGYPTIAN HIEROGLYPH U037
-1335D ; [.423A.0020.0002] # EGYPTIAN HIEROGLYPH U038
-1335E ; [.423B.0020.0002] # EGYPTIAN HIEROGLYPH U039
-1335F ; [.423C.0020.0002] # EGYPTIAN HIEROGLYPH U040
-13360 ; [.423D.0020.0002] # EGYPTIAN HIEROGLYPH U041
-13361 ; [.423E.0020.0002] # EGYPTIAN HIEROGLYPH U042
-13362 ; [.423F.0020.0002] # EGYPTIAN HIEROGLYPH V001
-13363 ; [.4240.0020.0002] # EGYPTIAN HIEROGLYPH V001A
-13364 ; [.4241.0020.0002] # EGYPTIAN HIEROGLYPH V001B
-13365 ; [.4242.0020.0002] # EGYPTIAN HIEROGLYPH V001C
-13366 ; [.4243.0020.0002] # EGYPTIAN HIEROGLYPH V001D
-13367 ; [.4244.0020.0002] # EGYPTIAN HIEROGLYPH V001E
-13368 ; [.4245.0020.0002] # EGYPTIAN HIEROGLYPH V001F
-13369 ; [.4246.0020.0002] # EGYPTIAN HIEROGLYPH V001G
-1336A ; [.4247.0020.0002] # EGYPTIAN HIEROGLYPH V001H
-1336B ; [.4248.0020.0002] # EGYPTIAN HIEROGLYPH V001I
-1336C ; [.4249.0020.0002] # EGYPTIAN HIEROGLYPH V002
-1336D ; [.424A.0020.0002] # EGYPTIAN HIEROGLYPH V002A
-1336E ; [.424B.0020.0002] # EGYPTIAN HIEROGLYPH V003
-1336F ; [.424C.0020.0002] # EGYPTIAN HIEROGLYPH V004
-13370 ; [.424D.0020.0002] # EGYPTIAN HIEROGLYPH V005
-13371 ; [.424E.0020.0002] # EGYPTIAN HIEROGLYPH V006
-13372 ; [.424F.0020.0002] # EGYPTIAN HIEROGLYPH V007
-13373 ; [.4250.0020.0002] # EGYPTIAN HIEROGLYPH V007A
-13374 ; [.4251.0020.0002] # EGYPTIAN HIEROGLYPH V007B
-13375 ; [.4252.0020.0002] # EGYPTIAN HIEROGLYPH V008
-13376 ; [.4253.0020.0002] # EGYPTIAN HIEROGLYPH V009
-13377 ; [.4254.0020.0002] # EGYPTIAN HIEROGLYPH V010
-13378 ; [.4255.0020.0002] # EGYPTIAN HIEROGLYPH V011
-13379 ; [.4256.0020.0002] # EGYPTIAN HIEROGLYPH V011A
-1337A ; [.4257.0020.0002] # EGYPTIAN HIEROGLYPH V011B
-1337B ; [.4258.0020.0002] # EGYPTIAN HIEROGLYPH V011C
-1337C ; [.4259.0020.0002] # EGYPTIAN HIEROGLYPH V012
-1337D ; [.425A.0020.0002] # EGYPTIAN HIEROGLYPH V012A
-1337E ; [.425B.0020.0002] # EGYPTIAN HIEROGLYPH V012B
-1337F ; [.425C.0020.0002] # EGYPTIAN HIEROGLYPH V013
-13380 ; [.425D.0020.0002] # EGYPTIAN HIEROGLYPH V014
-13381 ; [.425E.0020.0002] # EGYPTIAN HIEROGLYPH V015
-13382 ; [.425F.0020.0002] # EGYPTIAN HIEROGLYPH V016
-13383 ; [.4260.0020.0002] # EGYPTIAN HIEROGLYPH V017
-13384 ; [.4261.0020.0002] # EGYPTIAN HIEROGLYPH V018
-13385 ; [.4262.0020.0002] # EGYPTIAN HIEROGLYPH V019
-13386 ; [.4263.0020.0002] # EGYPTIAN HIEROGLYPH V020
-13387 ; [.4264.0020.0002] # EGYPTIAN HIEROGLYPH V020A
-13388 ; [.4265.0020.0002] # EGYPTIAN HIEROGLYPH V020B
-13389 ; [.4266.0020.0002] # EGYPTIAN HIEROGLYPH V020C
-1338A ; [.4267.0020.0002] # EGYPTIAN HIEROGLYPH V020D
-1338B ; [.4268.0020.0002] # EGYPTIAN HIEROGLYPH V020E
-1338C ; [.4269.0020.0002] # EGYPTIAN HIEROGLYPH V020F
-1338D ; [.426A.0020.0002] # EGYPTIAN HIEROGLYPH V020G
-1338E ; [.426B.0020.0002] # EGYPTIAN HIEROGLYPH V020H
-1338F ; [.426C.0020.0002] # EGYPTIAN HIEROGLYPH V020I
-13390 ; [.426D.0020.0002] # EGYPTIAN HIEROGLYPH V020J
-13391 ; [.426E.0020.0002] # EGYPTIAN HIEROGLYPH V020K
-13392 ; [.426F.0020.0002] # EGYPTIAN HIEROGLYPH V020L
-13393 ; [.4270.0020.0002] # EGYPTIAN HIEROGLYPH V021
-13394 ; [.4271.0020.0002] # EGYPTIAN HIEROGLYPH V022
-13395 ; [.4272.0020.0002] # EGYPTIAN HIEROGLYPH V023
-13396 ; [.4273.0020.0002] # EGYPTIAN HIEROGLYPH V023A
-13397 ; [.4274.0020.0002] # EGYPTIAN HIEROGLYPH V024
-13398 ; [.4275.0020.0002] # EGYPTIAN HIEROGLYPH V025
-13399 ; [.4276.0020.0002] # EGYPTIAN HIEROGLYPH V026
-1339A ; [.4277.0020.0002] # EGYPTIAN HIEROGLYPH V027
-1339B ; [.4278.0020.0002] # EGYPTIAN HIEROGLYPH V028
-1339C ; [.4279.0020.0002] # EGYPTIAN HIEROGLYPH V028A
-1339D ; [.427A.0020.0002] # EGYPTIAN HIEROGLYPH V029
-1339E ; [.427B.0020.0002] # EGYPTIAN HIEROGLYPH V029A
-1339F ; [.427C.0020.0002] # EGYPTIAN HIEROGLYPH V030
-133A0 ; [.427D.0020.0002] # EGYPTIAN HIEROGLYPH V030A
-133A1 ; [.427E.0020.0002] # EGYPTIAN HIEROGLYPH V031
-133A2 ; [.427F.0020.0002] # EGYPTIAN HIEROGLYPH V031A
-133A3 ; [.4280.0020.0002] # EGYPTIAN HIEROGLYPH V032
-133A4 ; [.4281.0020.0002] # EGYPTIAN HIEROGLYPH V033
-133A5 ; [.4282.0020.0002] # EGYPTIAN HIEROGLYPH V033A
-133A6 ; [.4283.0020.0002] # EGYPTIAN HIEROGLYPH V034
-133A7 ; [.4284.0020.0002] # EGYPTIAN HIEROGLYPH V035
-133A8 ; [.4285.0020.0002] # EGYPTIAN HIEROGLYPH V036
-133A9 ; [.4286.0020.0002] # EGYPTIAN HIEROGLYPH V037
-133AA ; [.4287.0020.0002] # EGYPTIAN HIEROGLYPH V037A
-133AB ; [.4288.0020.0002] # EGYPTIAN HIEROGLYPH V038
-133AC ; [.4289.0020.0002] # EGYPTIAN HIEROGLYPH V039
-133AD ; [.428A.0020.0002] # EGYPTIAN HIEROGLYPH V040
-133AE ; [.428B.0020.0002] # EGYPTIAN HIEROGLYPH V040A
-133AF ; [.428C.0020.0002] # EGYPTIAN HIEROGLYPH W001
-133B0 ; [.428D.0020.0002] # EGYPTIAN HIEROGLYPH W002
-133B1 ; [.428E.0020.0002] # EGYPTIAN HIEROGLYPH W003
-133B2 ; [.428F.0020.0002] # EGYPTIAN HIEROGLYPH W003A
-133B3 ; [.4290.0020.0002] # EGYPTIAN HIEROGLYPH W004
-133B4 ; [.4291.0020.0002] # EGYPTIAN HIEROGLYPH W005
-133B5 ; [.4292.0020.0002] # EGYPTIAN HIEROGLYPH W006
-133B6 ; [.4293.0020.0002] # EGYPTIAN HIEROGLYPH W007
-133B7 ; [.4294.0020.0002] # EGYPTIAN HIEROGLYPH W008
-133B8 ; [.4295.0020.0002] # EGYPTIAN HIEROGLYPH W009
-133B9 ; [.4296.0020.0002] # EGYPTIAN HIEROGLYPH W009A
-133BA ; [.4297.0020.0002] # EGYPTIAN HIEROGLYPH W010
-133BB ; [.4298.0020.0002] # EGYPTIAN HIEROGLYPH W010A
-133BC ; [.4299.0020.0002] # EGYPTIAN HIEROGLYPH W011
-133BD ; [.429A.0020.0002] # EGYPTIAN HIEROGLYPH W012
-133BE ; [.429B.0020.0002] # EGYPTIAN HIEROGLYPH W013
-133BF ; [.429C.0020.0002] # EGYPTIAN HIEROGLYPH W014
-133C0 ; [.429D.0020.0002] # EGYPTIAN HIEROGLYPH W014A
-133C1 ; [.429E.0020.0002] # EGYPTIAN HIEROGLYPH W015
-133C2 ; [.429F.0020.0002] # EGYPTIAN HIEROGLYPH W016
-133C3 ; [.42A0.0020.0002] # EGYPTIAN HIEROGLYPH W017
-133C4 ; [.42A1.0020.0002] # EGYPTIAN HIEROGLYPH W017A
-133C5 ; [.42A2.0020.0002] # EGYPTIAN HIEROGLYPH W018
-133C6 ; [.42A3.0020.0002] # EGYPTIAN HIEROGLYPH W018A
-133C7 ; [.42A4.0020.0002] # EGYPTIAN HIEROGLYPH W019
-133C8 ; [.42A5.0020.0002] # EGYPTIAN HIEROGLYPH W020
-133C9 ; [.42A6.0020.0002] # EGYPTIAN HIEROGLYPH W021
-133CA ; [.42A7.0020.0002] # EGYPTIAN HIEROGLYPH W022
-133CB ; [.42A8.0020.0002] # EGYPTIAN HIEROGLYPH W023
-133CC ; [.42A9.0020.0002] # EGYPTIAN HIEROGLYPH W024
-133CD ; [.42AA.0020.0002] # EGYPTIAN HIEROGLYPH W024A
-133CE ; [.42AB.0020.0002] # EGYPTIAN HIEROGLYPH W025
-133CF ; [.42AC.0020.0002] # EGYPTIAN HIEROGLYPH X001
-133D0 ; [.42AD.0020.0002] # EGYPTIAN HIEROGLYPH X002
-133D1 ; [.42AE.0020.0002] # EGYPTIAN HIEROGLYPH X003
-133D2 ; [.42AF.0020.0002] # EGYPTIAN HIEROGLYPH X004
-133D3 ; [.42B0.0020.0002] # EGYPTIAN HIEROGLYPH X004A
-133D4 ; [.42B1.0020.0002] # EGYPTIAN HIEROGLYPH X004B
-133D5 ; [.42B2.0020.0002] # EGYPTIAN HIEROGLYPH X005
-133D6 ; [.42B3.0020.0002] # EGYPTIAN HIEROGLYPH X006
-133D7 ; [.42B4.0020.0002] # EGYPTIAN HIEROGLYPH X006A
-133D8 ; [.42B5.0020.0002] # EGYPTIAN HIEROGLYPH X007
-133D9 ; [.42B6.0020.0002] # EGYPTIAN HIEROGLYPH X008
-133DA ; [.42B7.0020.0002] # EGYPTIAN HIEROGLYPH X008A
-133DB ; [.42B8.0020.0002] # EGYPTIAN HIEROGLYPH Y001
-133DC ; [.42B9.0020.0002] # EGYPTIAN HIEROGLYPH Y001A
-133DD ; [.42BA.0020.0002] # EGYPTIAN HIEROGLYPH Y002
-133DE ; [.42BB.0020.0002] # EGYPTIAN HIEROGLYPH Y003
-133DF ; [.42BC.0020.0002] # EGYPTIAN HIEROGLYPH Y004
-133E0 ; [.42BD.0020.0002] # EGYPTIAN HIEROGLYPH Y005
-133E1 ; [.42BE.0020.0002] # EGYPTIAN HIEROGLYPH Y006
-133E2 ; [.42BF.0020.0002] # EGYPTIAN HIEROGLYPH Y007
-133E3 ; [.42C0.0020.0002] # EGYPTIAN HIEROGLYPH Y008
-133E4 ; [.42C1.0020.0002] # EGYPTIAN HIEROGLYPH Z001
-133E5 ; [.42C2.0020.0002] # EGYPTIAN HIEROGLYPH Z002
-133E6 ; [.42C3.0020.0002] # EGYPTIAN HIEROGLYPH Z002A
-133E7 ; [.42C4.0020.0002] # EGYPTIAN HIEROGLYPH Z002B
-133E8 ; [.42C5.0020.0002] # EGYPTIAN HIEROGLYPH Z002C
-133E9 ; [.42C6.0020.0002] # EGYPTIAN HIEROGLYPH Z002D
-133EA ; [.42C7.0020.0002] # EGYPTIAN HIEROGLYPH Z003
-133EB ; [.42C8.0020.0002] # EGYPTIAN HIEROGLYPH Z003A
-133EC ; [.42C9.0020.0002] # EGYPTIAN HIEROGLYPH Z003B
-133ED ; [.42CA.0020.0002] # EGYPTIAN HIEROGLYPH Z004
-133EE ; [.42CB.0020.0002] # EGYPTIAN HIEROGLYPH Z004A
-133EF ; [.42CC.0020.0002] # EGYPTIAN HIEROGLYPH Z005
-133F0 ; [.42CD.0020.0002] # EGYPTIAN HIEROGLYPH Z005A
-133F1 ; [.42CE.0020.0002] # EGYPTIAN HIEROGLYPH Z006
-133F2 ; [.42CF.0020.0002] # EGYPTIAN HIEROGLYPH Z007
-133F3 ; [.42D0.0020.0002] # EGYPTIAN HIEROGLYPH Z008
-133F4 ; [.42D1.0020.0002] # EGYPTIAN HIEROGLYPH Z009
-133F5 ; [.42D2.0020.0002] # EGYPTIAN HIEROGLYPH Z010
-133F6 ; [.42D3.0020.0002] # EGYPTIAN HIEROGLYPH Z011
-133F7 ; [.42D4.0020.0002] # EGYPTIAN HIEROGLYPH Z012
-133F8 ; [.42D5.0020.0002] # EGYPTIAN HIEROGLYPH Z013
-133F9 ; [.42D6.0020.0002] # EGYPTIAN HIEROGLYPH Z014
-133FA ; [.42D7.0020.0002] # EGYPTIAN HIEROGLYPH Z015
-133FB ; [.42D8.0020.0002] # EGYPTIAN HIEROGLYPH Z015A
-133FC ; [.42D9.0020.0002] # EGYPTIAN HIEROGLYPH Z015B
-133FD ; [.42DA.0020.0002] # EGYPTIAN HIEROGLYPH Z015C
-133FE ; [.42DB.0020.0002] # EGYPTIAN HIEROGLYPH Z015D
-133FF ; [.42DC.0020.0002] # EGYPTIAN HIEROGLYPH Z015E
-13400 ; [.42DD.0020.0002] # EGYPTIAN HIEROGLYPH Z015F
-13401 ; [.42DE.0020.0002] # EGYPTIAN HIEROGLYPH Z015G
-13402 ; [.42DF.0020.0002] # EGYPTIAN HIEROGLYPH Z015H
-13403 ; [.42E0.0020.0002] # EGYPTIAN HIEROGLYPH Z015I
-13404 ; [.42E1.0020.0002] # EGYPTIAN HIEROGLYPH Z016
-13405 ; [.42E2.0020.0002] # EGYPTIAN HIEROGLYPH Z016A
-13406 ; [.42E3.0020.0002] # EGYPTIAN HIEROGLYPH Z016B
-13407 ; [.42E4.0020.0002] # EGYPTIAN HIEROGLYPH Z016C
-13408 ; [.42E5.0020.0002] # EGYPTIAN HIEROGLYPH Z016D
-13409 ; [.42E6.0020.0002] # EGYPTIAN HIEROGLYPH Z016E
-1340A ; [.42E7.0020.0002] # EGYPTIAN HIEROGLYPH Z016F
-1340B ; [.42E8.0020.0002] # EGYPTIAN HIEROGLYPH Z016G
-1340C ; [.42E9.0020.0002] # EGYPTIAN HIEROGLYPH Z016H
-1340D ; [.42EA.0020.0002] # EGYPTIAN HIEROGLYPH AA001
-1340E ; [.42EB.0020.0002] # EGYPTIAN HIEROGLYPH AA002
-1340F ; [.42EC.0020.0002] # EGYPTIAN HIEROGLYPH AA003
-13410 ; [.42ED.0020.0002] # EGYPTIAN HIEROGLYPH AA004
-13411 ; [.42EE.0020.0002] # EGYPTIAN HIEROGLYPH AA005
-13412 ; [.42EF.0020.0002] # EGYPTIAN HIEROGLYPH AA006
-13413 ; [.42F0.0020.0002] # EGYPTIAN HIEROGLYPH AA007
-13414 ; [.42F1.0020.0002] # EGYPTIAN HIEROGLYPH AA007A
-13415 ; [.42F2.0020.0002] # EGYPTIAN HIEROGLYPH AA007B
-13416 ; [.42F3.0020.0002] # EGYPTIAN HIEROGLYPH AA008
-13417 ; [.42F4.0020.0002] # EGYPTIAN HIEROGLYPH AA009
-13418 ; [.42F5.0020.0002] # EGYPTIAN HIEROGLYPH AA010
-13419 ; [.42F6.0020.0002] # EGYPTIAN HIEROGLYPH AA011
-1341A ; [.42F7.0020.0002] # EGYPTIAN HIEROGLYPH AA012
-1341B ; [.42F8.0020.0002] # EGYPTIAN HIEROGLYPH AA013
-1341C ; [.42F9.0020.0002] # EGYPTIAN HIEROGLYPH AA014
-1341D ; [.42FA.0020.0002] # EGYPTIAN HIEROGLYPH AA015
-1341E ; [.42FB.0020.0002] # EGYPTIAN HIEROGLYPH AA016
-1341F ; [.42FC.0020.0002] # EGYPTIAN HIEROGLYPH AA017
-13420 ; [.42FD.0020.0002] # EGYPTIAN HIEROGLYPH AA018
-13421 ; [.42FE.0020.0002] # EGYPTIAN HIEROGLYPH AA019
-13422 ; [.42FF.0020.0002] # EGYPTIAN HIEROGLYPH AA020
-13423 ; [.4300.0020.0002] # EGYPTIAN HIEROGLYPH AA021
-13424 ; [.4301.0020.0002] # EGYPTIAN HIEROGLYPH AA022
-13425 ; [.4302.0020.0002] # EGYPTIAN HIEROGLYPH AA023
-13426 ; [.4303.0020.0002] # EGYPTIAN HIEROGLYPH AA024
-13427 ; [.4304.0020.0002] # EGYPTIAN HIEROGLYPH AA025
-13428 ; [.4305.0020.0002] # EGYPTIAN HIEROGLYPH AA026
-13429 ; [.4306.0020.0002] # EGYPTIAN HIEROGLYPH AA027
-1342A ; [.4307.0020.0002] # EGYPTIAN HIEROGLYPH AA028
-1342B ; [.4308.0020.0002] # EGYPTIAN HIEROGLYPH AA029
-1342C ; [.4309.0020.0002] # EGYPTIAN HIEROGLYPH AA030
-1342D ; [.430A.0020.0002] # EGYPTIAN HIEROGLYPH AA031
-1342E ; [.430B.0020.0002] # EGYPTIAN HIEROGLYPH AA032
-109A0 ; [.430C.0020.0002] # MEROITIC CURSIVE LETTER A
-10980 ; [.430C.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER A
-109A1 ; [.430D.0020.0002] # MEROITIC CURSIVE LETTER E
-10981 ; [.430D.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER E
-109A2 ; [.430E.0020.0002] # MEROITIC CURSIVE LETTER I
-10982 ; [.430E.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER I
-109A3 ; [.430F.0020.0002] # MEROITIC CURSIVE LETTER O
-10983 ; [.430F.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER O
-109A4 ; [.4310.0020.0002] # MEROITIC CURSIVE LETTER YA
-10984 ; [.4310.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER YA
-109A5 ; [.4311.0020.0002] # MEROITIC CURSIVE LETTER WA
-10985 ; [.4311.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER WA
-109A6 ; [.4312.0020.0002] # MEROITIC CURSIVE LETTER BA
-10986 ; [.4312.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER BA
-10987 ; [.4312.0020.0004][.0000.00FD.0004] # MEROITIC HIEROGLYPHIC LETTER BA-2
-109A7 ; [.4313.0020.0002] # MEROITIC CURSIVE LETTER PA
-10988 ; [.4313.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER PA
-109A8 ; [.4314.0020.0002] # MEROITIC CURSIVE LETTER MA
-10989 ; [.4314.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER MA
-109A9 ; [.4315.0020.0002] # MEROITIC CURSIVE LETTER NA
-1098A ; [.4315.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER NA
-1098B ; [.4315.0020.0004][.0000.00FD.0004] # MEROITIC HIEROGLYPHIC LETTER NA-2
-109AA ; [.4316.0020.0002] # MEROITIC CURSIVE LETTER NE
-1098C ; [.4316.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER NE
-1098D ; [.4316.0020.0004][.0000.00FD.0004] # MEROITIC HIEROGLYPHIC LETTER NE-2
-109AB ; [.4317.0020.0002] # MEROITIC CURSIVE LETTER RA
-1098E ; [.4317.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER RA
-1098F ; [.4317.0020.0004][.0000.00FD.0004] # MEROITIC HIEROGLYPHIC LETTER RA-2
-109AC ; [.4318.0020.0002] # MEROITIC CURSIVE LETTER LA
-10990 ; [.4318.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER LA
-109AD ; [.4319.0020.0002] # MEROITIC CURSIVE LETTER KHA
-10991 ; [.4319.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER KHA
-109AE ; [.431A.0020.0002] # MEROITIC CURSIVE LETTER HHA
-10992 ; [.431A.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER HHA
-109AF ; [.431B.0020.0002] # MEROITIC CURSIVE LETTER SA
-109B0 ; [.431B.0020.0004][.0000.00FC.0004] # MEROITIC CURSIVE LETTER ARCHAIC SA
-10993 ; [.431B.0020.0004][.0000.00FD.0004] # MEROITIC HIEROGLYPHIC LETTER SA
-10994 ; [.431B.0020.0004][.0000.00FE.0004] # MEROITIC HIEROGLYPHIC LETTER SA-2
-109B1 ; [.431C.0020.0002] # MEROITIC CURSIVE LETTER SE
-10995 ; [.431C.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER SE
-109B2 ; [.431D.0020.0002] # MEROITIC CURSIVE LETTER KA
-10996 ; [.431D.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER KA
-109B3 ; [.431E.0020.0002] # MEROITIC CURSIVE LETTER QA
-10997 ; [.431E.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER QA
-109B4 ; [.431F.0020.0002] # MEROITIC CURSIVE LETTER TA
-10998 ; [.431F.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER TA
-10999 ; [.431F.0020.0004][.0000.00FD.0004] # MEROITIC HIEROGLYPHIC LETTER TA-2
-109B5 ; [.4320.0020.0002] # MEROITIC CURSIVE LETTER TE
-1099A ; [.4320.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER TE
-1099B ; [.4320.0020.0004][.0000.00FD.0004] # MEROITIC HIEROGLYPHIC LETTER TE-2
-109B6 ; [.4321.0020.0002] # MEROITIC CURSIVE LETTER TO
-1099C ; [.4321.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER TO
-109B7 ; [.4322.0020.0002] # MEROITIC CURSIVE LETTER DA
-1099D ; [.4322.0020.0004][.0000.00FC.0004] # MEROITIC HIEROGLYPHIC LETTER DA
-109BE ; [.4323.0020.0002] # MEROITIC CURSIVE LOGOGRAM RMT
-109BF ; [.4324.0020.0002] # MEROITIC CURSIVE LOGOGRAM IMN
-1099E ; [.4325.0020.0002] # MEROITIC HIEROGLYPHIC SYMBOL VIDJ
-1099F ; [.4326.0020.0002] # MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
+08FF ; [.0000.0089.0002] # ARABIC MARK SIDEWAYS NOON GHUNNA
+0659 ; [.0000.008A.0002] # ARABIC ZWARAKAY
+065A ; [.0000.008B.0002] # ARABIC VOWEL SIGN SMALL V ABOVE
+065B ; [.0000.008C.0002] # ARABIC VOWEL SIGN INVERTED SMALL V ABOVE
+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
2F00 ; [.FB40.0020.0004][.CE00.0000.0000] # KANGXI RADICAL ONE
-3220 ; [*02FA.0020.0004][.FB40.0020.0004][.CE00.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
+3220 ; [*030A.0020.0004][.FB40.0020.0004][.CE00.0000.0000][*030B.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 ; [*02FA.0020.0004][.FB40.0020.0004][.CE03.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
+3226 ; [*030A.0020.0004][.FB40.0020.0004][.CE03.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
3286 ; [.FB40.0020.0006][.CE03.0000.0000] # CIRCLED IDEOGRAPH SEVEN
-3222 ; [*02FA.0020.0004][.FB40.0020.0004][.CE09.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
-1F241 ; [*035C.0020.0004][.FB40.0020.0004][.CE09.0000.0000][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+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
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
@@ -23673,7 +26514,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.00FC.0004] # CJK RADICAL REPEAT
+2E80 ; [.FB40.0020.0004][.CE36.0000.0000][.0000.0108.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
@@ -23681,21 +26522,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.00FC.0004] # CJK RADICAL SECOND THREE
+2E84 ; [.FB40.0020.0004][.CE59.0000.0000][.0000.0108.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 ; [*02FA.0020.0004][.FB40.0020.0004][.CE5D.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
+3228 ; [*030A.0020.0004][.FB40.0020.0004][.CE5D.0000.0000][*030B.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 ; [*02FA.0020.0004][.FB40.0020.0004][.CE8C.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
-1F242 ; [*035C.0020.0004][.FB40.0020.0004][.CE8C.0000.0000][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+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
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 ; [*02FA.0020.0004][.FB40.0020.0004][.CE94.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
+3224 ; [*030A.0020.0004][.FB40.0020.0004][.CE94.0000.0000][*030B.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
@@ -23705,11 +26546,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 ; [*02FA.0020.0004][.FB40.0020.0004][.CEE3.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
+3239 ; [*030A.0020.0004][.FB40.0020.0004][.CEE3.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
F9A8 ; [.FB40.0020.0002][.CEE4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9A8
-323D ; [*02FA.0020.0004][.FB40.0020.0004][.CF01.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
+323D ; [*030A.0020.0004][.FB40.0020.0004][.CF01.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
32AD ; [.FB40.0020.0006][.CF01.0000.0000] # CIRCLED IDEOGRAPH ENTERPRISE
-3241 ; [*02FA.0020.0004][.FB40.0020.0004][.CF11.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH REST
+3241 ; [*030A.0020.0004][.FB40.0020.0004][.CF11.0000.0000][*030B.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
@@ -23740,15 +26581,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 ; [*02FA.0020.0004][.FB40.0020.0004][.D16B.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
+3227 ; [*030A.0020.0004][.FB40.0020.0004][.D16B.0000.0000][*030B.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 ; [*02FA.0020.0004][.FB40.0020.0004][.D16D.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
+3225 ; [*030A.0020.0004][.FB40.0020.0004][.D16D.0000.0000][*030B.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.00FC.0004] # CJK RADICAL BOX
+2E86 ; [.FB40.0020.0004][.D182.0000.0000][.0000.0108.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
@@ -23767,11 +26608,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.00FC.0004] # CJK RADICAL TABLE
+2E87 ; [.FB40.0020.0004][.D1E0.0000.0000][.0000.0108.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.00FC.0004] # CJK RADICAL KNIFE ONE
+2E88 ; [.FB40.0020.0004][.D200.0000.0000][.0000.0108.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
@@ -23791,14 +26632,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 ; [*02FA.0020.0004][.FB40.0020.0004][.D2B4.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
+3238 ; [*030A.0020.0004][.FB40.0020.0004][.D2B4.0000.0000][*030B.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 ; [*035C.0020.0004][.FB40.0020.0004][.D2DD.0000.0000][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+1F247 ; [*036C.0020.0004][.FB40.0020.0004][.D2DD.0000.0000][*036D.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
@@ -23817,20 +26658,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 ; [*02FA.0020.0004][.FB40.0020.0004][.D341.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
+3229 ; [*030A.0020.0004][.FB40.0020.0004][.D341.0000.0000][*030B.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 ; [*02FA.0020.0004][.FB40.0020.0004][.D354.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
+323F ; [*030A.0020.0004][.FB40.0020.0004][.D354.0000.0000][*030B.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.00FC.0004] # CJK RADICAL DIVINATION
+2E8A ; [.FB40.0020.0004][.D35C.0000.0000][.0000.0108.0004] # CJK RADICAL DIVINATION
2F19 ; [.FB40.0020.0004][.D369.0000.0000] # KANGXI RADICAL SEAL
-2E8B ; [.FB40.0020.0004][.D369.0000.0000][.0000.00FC.0004] # CJK RADICAL SEAL
+2E8B ; [.FB40.0020.0004][.D369.0000.0000][.0000.0108.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
@@ -23839,7 +26680,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.00FC.0004] # CJK RADICAL CLIFF
+2E81 ; [.FB40.0020.0004][.D382.0000.0000][.0000.0108.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
@@ -23855,7 +26696,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 ; [*02FA.0020.0004][.FB40.0020.0004][.D40D.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
+3234 ; [*030A.0020.0004][.FB40.0020.0004][.D40D.0000.0000][*030B.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
@@ -23864,7 +26705,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 ; [*02FA.0020.0004][.FB40.0020.0004][.D47C.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
+323A ; [*030A.0020.0004][.FB40.0020.0004][.D47C.0000.0000][*030B.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
@@ -23893,14 +26734,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 ; [*02FA.0020.0004][.FB40.0020.0004][.D6DB.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
+3223 ; [*030A.0020.0004][.FB40.0020.0004][.D6DB.0000.0000][*030B.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 ; [*02FA.0020.0004][.FB40.0020.0004][.D71F.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
+322F ; [*030A.0020.0004][.FB40.0020.0004][.D71F.0000.0000][*030B.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
@@ -23956,11 +26797,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 ; [*02FA.0020.0004][.FB40.0020.0004][.DB66.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
+323B ; [*030A.0020.0004][.FB40.0020.0004][.DB66.0000.0000][*030B.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 ; [*035C.0020.0004][.FB40.0020.0004][.DB89.0000.0000][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+1F243 ; [*036C.0020.0004][.FB40.0020.0004][.DB89.0000.0000][*036D.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
@@ -23973,14 +26814,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.00FC.0004] # CJK RADICAL SMALL ONE
-2E8D ; [.FB40.0020.0004][.DC0F.0000.0000][.0000.00FD.0004] # CJK RADICAL SMALL TWO
+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
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.00FC.0004] # CJK RADICAL LAME ONE
+2E8E ; [.FB40.0020.0004][.DC22.0000.0000][.0000.0108.0004] # CJK RADICAL LAME ONE
2E8F ; [.FB40.0020.0004][.DC23.0000.0000] # CJK RADICAL LAME TWO
-2E91 ; [.FB40.0020.0004][.DC23.0000.0000][.0000.00FC.0004] # CJK RADICAL LAME FOUR
+2E91 ; [.FB40.0020.0004][.DC23.0000.0000][.0000.0108.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
@@ -24041,7 +26882,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.00FC.0004] # CJK RADICAL SNOUT TWO
+2E95 ; [.FB40.0020.0004][.DF50.0000.0000][.0000.0108.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
@@ -24056,7 +26897,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.00FC.0004] # CJK RADICAL HEART TWO
+2E97 ; [.FB40.0020.0004][.DFC3.0000.0000][.0000.0108.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
@@ -24104,7 +26945,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 ; [*035C.0020.0004][.FB40.0020.0004][.E253.0000.0000][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
+1F245 ; [*036C.0020.0004][.FB40.0020.0004][.E253.0000.0000][*036D.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
@@ -24142,7 +26983,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 ; [*035C.0020.0004][.FB40.0020.0004][.E557.0000.0000][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F248 ; [*036C.0020.0004][.FB40.0020.0004][.E557.0000.0000][*036D.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
@@ -24159,9 +27000,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 ; [*02FA.0020.0004][.FB40.0020.0004][.E5E5.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
+3230 ; [*030A.0020.0004][.FB40.0020.0004][.E5E5.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
3290 ; [.FB40.0020.0006][.E5E5.0000.0000] # CIRCLED IDEOGRAPH SUN
-2E9C ; [.FB40.0020.0004][.E5E5.0000.0000][.0000.00FC.0004] # CJK RADICAL SUN
+2E9C ; [.FB40.0020.0004][.E5E5.0000.0000][.0000.0108.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
@@ -24180,11 +27021,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 ; [*02FA.0020.0004][.FB40.0020.0004][.E708.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
+322A ; [*030A.0020.0004][.FB40.0020.0004][.E708.0000.0000][*030B.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.00FC.0004] # CJK RADICAL MOON
-3232 ; [*02FA.0020.0004][.FB40.0020.0004][.E709.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
+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
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
@@ -24194,9 +27035,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 ; [*02FA.0020.0004][.FB40.0020.0004][.E728.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
+322D ; [*030A.0020.0004][.FB40.0020.0004][.E728.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
328D ; [.FB40.0020.0006][.E728.0000.0000] # CIRCLED IDEOGRAPH WOOD
-1F240 ; [*035C.0020.0004][.FB40.0020.0004][.E72C.0000.0000][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
+1F240 ; [*036C.0020.0004][.FB40.0020.0004][.E72C.0000.0000][*036D.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
@@ -24208,7 +27049,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 ; [*02FA.0020.0004][.FB40.0020.0004][.E82A.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
+3231 ; [*030A.0020.0004][.FB40.0020.0004][.E82A.0000.0000][*030B.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
@@ -24238,7 +27079,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.00FC.0004] # CJK RADICAL DEATH
+2E9E ; [.FB40.0020.0004][.EB7A.0000.0000][.0000.0108.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
@@ -24254,7 +27095,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 ; [*02FA.0020.0004][.FB40.0020.0004][.EC34.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
+322C ; [*030A.0020.0004][.FB40.0020.0004][.EC34.0000.0000][*030B.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
@@ -24310,7 +27151,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 ; [*02FA.0020.0004][.FB40.0020.0004][.F06B.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
+322B ; [*030A.0020.0004][.FB40.0020.0004][.F06B.0000.0000][*030B.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
@@ -24318,7 +27159,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 ; [*035C.0020.0004][.FB40.0020.0004][.F0B9.0000.0000][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+1F244 ; [*036C.0020.0004][.FB40.0020.0004][.F0B9.0000.0000][*036D.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
@@ -24335,7 +27176,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.00FC.0004] # CJK RADICAL PAW TWO
+2EA5 ; [.FB40.0020.0004][.F22B.0000.0000][.0000.0108.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
@@ -24345,9 +27186,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.00FC.0004] # CJK RADICAL COW
+2EA7 ; [.FB40.0020.0004][.F25B.0000.0000][.0000.0108.0004] # CJK RADICAL COW
F946 ; [.FB40.0020.0002][.F262.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F946
-3235 ; [*02FA.0020.0004][.FB40.0020.0004][.F279.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
+3235 ; [*030A.0020.0004][.FB40.0020.0004][.F279.0000.0000][*030B.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
@@ -24365,7 +27206,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.00FC.0004] # CJK RADICAL JADE
+2EA9 ; [.FB40.0020.0004][.F38B.0000.0000][.0000.0108.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
@@ -24400,7 +27241,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.00FC.0004] # CJK RADICAL BOLT OF CLOTH
+2EAA ; [.FB40.0020.0004][.F58B.0000.0000][.0000.0108.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
@@ -24414,13 +27255,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 ; [*035C.0020.0004][.FB40.0020.0004][.F6D7.0000.0000][*035D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+1F246 ; [*036C.0020.0004][.FB40.0020.0004][.F6D7.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
FAA7 ; [.FB40.0020.0002][.F6DB.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAA7
-323C ; [*02FA.0020.0004][.FB40.0020.0004][.F6E3.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
+323C ; [*030A.0020.0004][.FB40.0020.0004][.F6E3.0000.0000][*030B.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.00FC.0004] # CJK RADICAL EYE
+2EAB ; [.FB40.0020.0004][.F6EE.0000.0000][.0000.0108.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
@@ -24446,11 +27287,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.00FC.0004] # CJK RADICAL SPIRIT ONE
+2EAC ; [.FB40.0020.0004][.F93A.0000.0000][.0000.0108.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 ; [*02FA.0020.0004][.FB40.0020.0004][.F93E.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
+3233 ; [*030A.0020.0004][.FB40.0020.0004][.F93E.0000.0000][*030B.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
@@ -24458,11 +27299,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 ; [*02FA.0020.0004][.FB40.0020.0004][.F95D.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
+3237 ; [*030A.0020.0004][.FB40.0020.0004][.F95D.0000.0000][*030B.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 ; [*02FA.0020.0004][.FB40.0020.0004][.F96D.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
+3240 ; [*030A.0020.0004][.FB40.0020.0004][.F96D.0000.0000][*030B.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
@@ -24488,7 +27329,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.00FC.0004] # CJK RADICAL BAMBOO
+2EAE ; [.FB40.0020.0004][.FAF9.0000.0000][.0000.0108.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
@@ -24531,17 +27372,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.00FC.0004] # CJK RADICAL MESH
+2EB5 ; [.FB40.0020.0004][.FF52.0000.0000][.0000.0108.0004] # CJK RADICAL MESH
2EB1 ; [.FB40.0020.0004][.FF53.0000.0000] # CJK RADICAL NET ONE
-2EB3 ; [.FB40.0020.0004][.FF53.0000.0000][.0000.00FC.0004] # CJK RADICAL NET THREE
-2EB4 ; [.FB40.0020.0004][.FF53.0000.0000][.0000.00FD.0004] # CJK RADICAL NET FOUR
+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
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.00FC.0004] # CJK RADICAL SHEEP
-2EB7 ; [.FB40.0020.0004][.FF8A.0000.0000][.0000.00FD.0004] # CJK RADICAL RAM
+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
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
@@ -24563,10 +27404,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.00FC.0004] # CJK RADICAL BRUSH TWO
+2EBB ; [.FB41.0020.0004][.807F.0000.0000][.0000.0108.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.00FC.0004] # CJK RADICAL MEAT
+2EBC ; [.FB41.0020.0004][.8089.0000.0000][.0000.0108.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
@@ -24576,12 +27417,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 ; [*02FA.0020.0004][.FB41.0020.0004][.81EA.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
+3242 ; [*030A.0020.0004][.FB41.0020.0004][.81EA.0000.0000][*030B.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 ; [*02FA.0020.0004][.FB41.0020.0004][.81F3.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
+3243 ; [*030A.0020.0004][.FB41.0020.0004][.81F3.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
2F85 ; [.FB41.0020.0004][.81FC.0000.0000] # KANGXI RADICAL MORTAR
-2EBD ; [.FB41.0020.0004][.81FC.0000.0000][.0000.00FC.0004] # CJK RADICAL MORTAR
+2EBD ; [.FB41.0020.0004][.81FC.0000.0000][.0000.0108.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
@@ -24596,8 +27437,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.00FC.0004] # CJK RADICAL GRASS TWO
-2EC0 ; [.FB41.0020.0004][.8279.0000.0000][.0000.00FD.0004] # CJK RADICAL GRASS THREE
+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
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
@@ -24687,7 +27528,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.00FC.0004] # CJK RADICAL HORN
+2EC7 ; [.FB41.0020.0004][.89D2.0000.0000][.0000.0108.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
@@ -24719,13 +27560,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 ; [*02FA.0020.0004][.FB41.0020.0004][.8CA1.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
+3236 ; [*030A.0020.0004][.FB41.0020.0004][.8CA1.0000.0000][*030B.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 ; [*02FA.0020.0004][.FB41.0020.0004][.8CC7.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
+323E ; [*030A.0020.0004][.FB41.0020.0004][.8CC7.0000.0000][*030B.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
@@ -24738,7 +27579,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.00FC.0004] # CJK RADICAL FOOT
+2ECA ; [.FB41.0020.0004][.8DB3.0000.0000][.0000.0108.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
@@ -24761,8 +27602,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.00FC.0004] # CJK RADICAL WALK ONE
-2ECE ; [.FB41.0020.0004][.8FB6.0000.0000][.0000.00FD.0004] # CJK RADICAL WALK TWO
+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
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
@@ -24772,7 +27613,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.00FC.0004] # CJK RADICAL CITY
+2ECF ; [.FB41.0020.0004][.9091.0000.0000][.0000.0108.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
@@ -24790,7 +27631,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 ; [*02FA.0020.0004][.FB41.0020.0004][.91D1.0000.0000][*02FB.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
+322E ; [*030A.0020.0004][.FB41.0020.0004][.91D1.0000.0000][*030B.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
@@ -24813,7 +27654,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.00FC.0004] # CJK RADICAL MOUND ONE
+2ED5 ; [.FB41.0020.0004][.961C.0000.0000][.0000.0108.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
@@ -24832,7 +27673,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.00FC.0004] # CJK RADICAL RAIN
+2ED7 ; [.FB41.0020.0004][.96E8.0000.0000][.0000.0108.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
@@ -24871,7 +27712,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.00FC.0004] # CJK RADICAL EAT TWO
+2EDE ; [.FB41.0020.0004][.98E0.0000.0000][.0000.0108.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
@@ -24879,7 +27720,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.00FC.0004] # CJK RADICAL HEAD
+2EE1 ; [.FB41.0020.0004][.9996.0000.0000][.0000.0108.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
@@ -24889,7 +27730,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.00FC.0004] # CJK RADICAL BONE
+2EE3 ; [.FB41.0020.0004][.9AA8.0000.0000][.0000.0108.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
@@ -24898,7 +27739,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.00FC.0004] # CJK RADICAL GHOST
+2EE4 ; [.FB41.0020.0004][.9B3C.0000.0000][.0000.0108.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
@@ -24912,7 +27753,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.00FC.0004] # CJK RADICAL C-SIMPLIFIED SALT
+2EE7 ; [.FB41.0020.0004][.9E75.0000.0000][.0000.0108.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
@@ -24941,22 +27782,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.00FC.0004] # CJK RADICAL J-SIMPLIFIED EVEN
+2EEB ; [.FB41.0020.0004][.9F4A.0000.0000][.0000.0108.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.00FC.0004] # CJK RADICAL J-SIMPLIFIED TOOTH
+2EED ; [.FB41.0020.0004][.9F52.0000.0000][.0000.0108.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.00FC.0004] # CJK RADICAL J-SIMPLIFIED DRAGON
+2EEF ; [.FB41.0020.0004][.9F8D.0000.0000][.0000.0108.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.00FC.0004] # CJK RADICAL TURTLE
-2EF2 ; [.FB41.0020.0004][.9F9C.0000.0000][.0000.00FD.0004] # CJK RADICAL J-SIMPLIFIED 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
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
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Normalize.pm b/Master/tlpkg/tlperl/lib/Unicode/Normalize.pm
index 2331e8b7069..b11df69cf5b 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Normalize.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Normalize.pm
@@ -16,7 +16,7 @@ use Carp;
no warnings 'utf8';
-our $VERSION = '1.17';
+our $VERSION = '1.18';
our $PACKAGE = __PACKAGE__;
our @EXPORT = qw( NFC NFD NFKC NFKD );
@@ -50,13 +50,496 @@ sub unpack_U {
require Exporter;
-##### The above part is common to XS and PP #####
+our @ISA = qw(Exporter);
+use File::Spec;
+
+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
+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) ];
+}
+
+sub getHangulComposite ($$) {
+ if ((LBase <= $_[0] && $_[0] <= LFinal)
+ && (VBase <= $_[1] && $_[1] <= VFinal)) {
+ my $lindex = $_[0] - LBase;
+ my $vindex = $_[1] - VBase;
+ return (SBase + ($lindex * VCount + $vindex) * TCount);
+ }
+ if ((SBase <= $_[0] && $_[0] <= SFinal && (($_[0] - SBase ) % TCount) == 0)
+ && (TBase < $_[1] && $_[1] <= TFinal)) {
+ return($_[0] + $_[1] - TBase);
+ }
+ return undef;
+}
+
+##########
+
+sub getCombinClass ($) {
+ my $uv = 0 + shift;
+ return $Combin{$uv} || 0;
+}
+
+sub getCanon ($) {
+ my $uv = 0 + shift;
+ return exists $Canon{$uv}
+ ? pack_U(@{ $Canon{$uv} })
+ : (SBase <= $uv && $uv <= SFinal)
+ ? scalar decomposeHangul($uv)
+ : undef;
+}
+
+sub getCompat ($) {
+ my $uv = 0 + shift;
+ return exists $Compat{$uv}
+ ? pack_U(@{ $Compat{$uv} })
+ : (SBase <= $uv && $uv <= SFinal)
+ ? scalar decomposeHangul($uv)
+ : undef;
+}
+
+sub getComposite ($$) {
+ my $uv1 = 0 + shift;
+ my $uv2 = 0 + shift;
+ my $hangul = getHangulComposite($uv1, $uv2);
+ return $hangul if $hangul;
+ return $Compos{ $uv1 } && $Compos{ $uv1 }{ $uv2 };
+}
+
+sub isExclusion ($) {
+ my $uv = 0 + shift;
+ return exists $Exclus{$uv};
+}
+
+sub isSingleton ($) {
+ my $uv = 0 + shift;
+ return exists $Single{$uv};
+}
+
+sub isNonStDecomp($) {
+ my $uv = 0 + shift;
+ return exists $NonStD{$uv};
+}
+
+sub isComp2nd ($) {
+ my $uv = 0 + shift;
+ return exists $Comp2nd{$uv};
+}
+
+sub isNFC_MAYBE ($) {
+ my $uv = 0 + shift;
+ return exists $Comp2nd{$uv};
+}
+
+sub isNFKC_MAYBE($) {
+ my $uv = 0 + shift;
+ return exists $Comp2nd{$uv};
+}
+
+sub isNFD_NO ($) {
+ my $uv = 0 + shift;
+ return exists $Canon {$uv} || (SBase <= $uv && $uv <= SFinal);
+}
+
+sub isNFKD_NO ($) {
+ my $uv = 0 + shift;
+ return exists $Compat{$uv} || (SBase <= $uv && $uv <= SFinal);
+}
+
+sub isComp_Ex ($) {
+ my $uv = 0 + shift;
+ return exists $Exclus{$uv} || exists $Single{$uv} || exists $NonStD{$uv};
+}
+
+sub isNFC_NO ($) {
+ my $uv = 0 + shift;
+ return exists $Exclus{$uv} || exists $Single{$uv} || exists $NonStD{$uv};
+}
+
+sub isNFKC_NO ($) {
+ my $uv = 0 + shift;
+ return 1 if $Exclus{$uv} || $Single{$uv} || $NonStD{$uv};
+ return '' if (SBase <= $uv && $uv <= SFinal) || !exists $Compat{$uv};
+ return 1 if ! exists $Canon{$uv};
+ return pack('N*', @{ $Canon{$uv} }) ne pack('N*', @{ $Compat{$uv} });
+}
+
+##
+## string decompose(string, compat?)
+##
+sub decompose ($;$)
+{
+ my $hash = $_[1] ? \%Compat : \%Canon;
+ return pack_U map {
+ $hash->{ $_ } ? @{ $hash->{ $_ } } :
+ (SBase <= $_ && $_ <= SFinal) ? decomposeHangul($_) : $_
+ } unpack_U($_[0]);
+}
+
+##
+## string reorder(string)
+##
+sub reorder ($)
+{
+ my @src = unpack_U($_[0]);
+
+ for (my $i=0; $i < @src;) {
+ $i++, next if ! $Combin{ $src[$i] };
-our @ISA = qw(Exporter DynaLoader);
-require DynaLoader;
-bootstrap Unicode::Normalize $VERSION;
+ my $ini = $i;
+ $i++ while $i < @src && $Combin{ $src[$i] };
-##### The below part is common to XS and PP #####
+ my @tmp = sort {
+ $Combin{ $src[$a] } <=> $Combin{ $src[$b] } || $a <=> $b
+ } $ini .. $i - 1;
+
+ @src[ $ini .. $i - 1 ] = @src[ @tmp ];
+ }
+ return pack_U(@src);
+}
+
+
+##
+## string compose(string)
+##
+## S : starter; NS : not starter;
+##
+## composable sequence begins at S.
+## S + S or (S + S) + S may be composed.
+## NS + NS must not be composed.
+##
+sub compose ($)
+{
+ my @src = unpack_U($_[0]);
+
+ for (my $s = 0; $s+1 < @src; $s++) {
+ next unless defined $src[$s] && ! $Combin{ $src[$s] };
+ # S only; removed or combining are skipped as a starter.
+
+ my($c, $blocked, $uncomposed_cc);
+ for (my $j = $s+1; $j < @src && !$blocked; $j++) {
+ ($Combin{ $src[$j] } ? $uncomposed_cc : $blocked) = 1;
+
+ # S + C + S => S-S + C would be blocked.
+ next if $blocked && $uncomposed_cc;
+
+ # blocked by same CC (and higher CC: revised D2)
+ next if defined $src[$j-1] && $Combin{ $src[$j-1] }
+ && $Combin{ $src[$j-1] } >= $Combin{ $src[$j] };
+
+ $c = getComposite($src[$s], $src[$j]);
+
+ # no composite or is exclusion
+ next if !$c || $Exclus{$c};
+
+ # replace by composite
+ $src[$s] = $c; $src[$j] = undef;
+ if ($blocked) { $blocked = 0 } else { -- $uncomposed_cc }
+ }
+ }
+ return pack_U(grep defined, @src);
+}
+
+
+##
+## string composeContiguous(string)
+##
+sub composeContiguous ($)
+{
+ my @src = unpack_U($_[0]);
+
+ for (my $s = 0; $s+1 < @src; $s++) {
+ next unless defined $src[$s] && ! $Combin{ $src[$s] };
+ # S only; removed or combining are skipped as a starter.
+
+ for (my $j = $s+1; $j < @src; $j++) {
+ my $c = getComposite($src[$s], $src[$j]);
+
+ # no composite or is exclusion
+ last if !$c || $Exclus{$c};
+
+ # replace by composite
+ $src[$s] = $c; $src[$j] = undef;
+ }
+ }
+ return pack_U(grep defined, @src);
+}
+
+
+##
+## normalization forms
+##
+
+use constant COMPAT => 1;
+
+sub NFD ($) { reorder(decompose($_[0])) }
+sub NFKD ($) { reorder(decompose($_[0], COMPAT)) }
+sub NFC ($) { compose(reorder(decompose($_[0]))) }
+sub NFKC ($) { compose(reorder(decompose($_[0], COMPAT))) }
+sub FCC ($) { composeContiguous(reorder(decompose($_[0]))) }
+
+##
+## quick check
+##
+
+sub checkNFD ($)
+{
+ my $preCC = 0;
+ my $curCC;
+ for my $uv (unpack_U($_[0])) {
+ $curCC = $Combin{ $uv } || 0;
+ return '' if $preCC > $curCC && $curCC != 0;
+ return '' if exists $Canon{$uv} || (SBase <= $uv && $uv <= SFinal);
+ $preCC = $curCC;
+ }
+ return 1;
+}
+
+sub checkNFKD ($)
+{
+ my $preCC = 0;
+ my $curCC;
+ for my $uv (unpack_U($_[0])) {
+ $curCC = $Combin{ $uv } || 0;
+ return '' if $preCC > $curCC && $curCC != 0;
+ return '' if exists $Compat{$uv} || (SBase <= $uv && $uv <= SFinal);
+ $preCC = $curCC;
+ }
+ return 1;
+}
+
+sub checkNFC ($)
+{
+ my $preCC = 0;
+ my($curCC, $isMAYBE);
+ for my $uv (unpack_U($_[0])) {
+ $curCC = $Combin{ $uv } || 0;
+ return '' if $preCC > $curCC && $curCC != 0;
+
+ if (isNFC_MAYBE($uv)) {
+ $isMAYBE = 1;
+ } elsif (isNFC_NO($uv)) {
+ return '';
+ }
+ $preCC = $curCC;
+ }
+ return $isMAYBE ? undef : 1;
+}
+
+sub checkNFKC ($)
+{
+ my $preCC = 0;
+ my($curCC, $isMAYBE);
+ for my $uv (unpack_U($_[0])) {
+ $curCC = $Combin{ $uv } || 0;
+ return '' if $preCC > $curCC && $curCC != 0;
+
+ if (isNFKC_MAYBE($uv)) {
+ $isMAYBE = 1;
+ } elsif (isNFKC_NO($uv)) {
+ return '';
+ }
+ $preCC = $curCC;
+ }
+ return $isMAYBE ? undef : 1;
+}
+
+sub checkFCD ($)
+{
+ my $preCC = 0;
+ my $curCC;
+ for my $uv (unpack_U($_[0])) {
+ # Hangul syllable need not decomposed since cc[any Jamo] == 0;
+ my @uvCan = exists $Canon{$uv} ? @{ $Canon{$uv} } : ($uv);
+
+ $curCC = $Combin{ $uvCan[0] } || 0;
+ return '' if $curCC != 0 && $curCC < $preCC;
+ $preCC = $Combin{ $uvCan[-1] } || 0;
+ }
+ return 1;
+}
+
+sub checkFCC ($)
+{
+ my $preCC = 0;
+ my($curCC, $isMAYBE);
+ for my $uv (unpack_U($_[0])) {
+ # Hangul syllable need not decomposed since cc[any Jamo] == 0;
+ my @uvCan = exists $Canon{$uv} ? @{ $Canon{$uv} } : ($uv);
+
+ $curCC = $Combin{ $uvCan[0] } || 0;
+ return '' if $curCC != 0 && $curCC < $preCC;
+
+ if (isNFC_MAYBE($uv)) {
+ $isMAYBE = 1;
+ } elsif (isNFC_NO($uv)) {
+ return '';
+ }
+
+ $preCC = $Combin{ $uvCan[-1] } || 0;
+ }
+ return $isMAYBE ? undef : 1;
+}
+
+##
+## split on last starter
+##
+
+sub splitOnLastStarter
+{
+ my $str = pack_U(unpack_U(shift));
+ if ($str eq '') {
+ return ('', '');
+ }
+
+ my $ch;
+ my $unproc = "";
+ do {
+ $ch = chop($str);
+ $unproc = $ch.$unproc;
+ } while (getCombinClass(unpack 'U', $ch) && $str ne "");
+ return ($str, $unproc);
+}
##
## normalize
@@ -161,10 +644,7 @@ 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>.
+Note: Do not use a floating point nor a negative sign in C<$code_point>.
=head2 Normalization Forms
diff --git a/Master/tlpkg/tlperl/lib/Unicode/UCD.pm b/Master/tlpkg/tlperl/lib/Unicode/UCD.pm
index 11a8ec26807..06fbfd1143b 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/UCD.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/UCD.pm
@@ -5,7 +5,7 @@ use warnings;
no warnings 'surrogate'; # surrogates can be inputs to this
use charnames ();
-our $VERSION = '0.58';
+our $VERSION = '0.61';
require Exporter;
@@ -15,6 +15,8 @@ our @EXPORT_OK = qw(charinfo
charblock charscript
charblocks charscripts
charinrange
+ charprop
+ charprops_all
general_categories bidi_types
compexcl
casefold all_casefolds casespec
@@ -22,6 +24,7 @@ our @EXPORT_OK = qw(charinfo
num
prop_aliases
prop_value_aliases
+ prop_values
prop_invlist
prop_invmap
search_invlist
@@ -41,14 +44,20 @@ Unicode::UCD - Unicode character database
use Unicode::UCD 'charinfo';
my $charinfo = charinfo($codepoint);
+ use Unicode::UCD 'charprop';
+ my $value = charprop($codepoint, $property);
+
+ use Unicode::UCD 'charprops_all';
+ my $all_values_hash_ref = charprops_all($codepoint);
+
use Unicode::UCD 'casefold';
- my $casefold = casefold(0xFB00);
+ my $casefold = casefold($codepoint);
use Unicode::UCD 'all_casefolds';
my $all_casefolds_ref = all_casefolds();
use Unicode::UCD 'casespec';
- my $casespec = casespec(0xFB00);
+ my $casespec = casespec($codepoint);
use Unicode::UCD 'charblock';
my $charblock = charblock($codepoint);
@@ -76,6 +85,9 @@ Unicode::UCD - Unicode character database
use Unicode::UCD 'prop_value_aliases';
my @gc_punct_names = prop_value_aliases("Gc", "Punct");
+ use Unicode::UCD 'prop_values';
+ my @all_EA_short_names = prop_values("East_Asian_Width");
+
use Unicode::UCD 'prop_invlist';
my @puncts = prop_invlist("gc=punctuation");
@@ -107,7 +119,8 @@ Character Database.
Some of the functions are called with a I<code point argument>, which is either
a decimal or a hexadecimal scalar designating a code point in the platform's
-native character set (extended to Unicode), or C<U+> followed by hexadecimals
+native character set (extended to Unicode), or a string containing C<U+>
+followed by hexadecimals
designating a Unicode code point. A leading 0 will force a hexadecimal
interpretation, as will a hexadecimal digit that isn't a decimal digit.
@@ -116,7 +129,7 @@ Examples:
223 # Decimal 223 in native character set
0223 # Hexadecimal 223, native (= 547 decimal)
0xDF # Hexadecimal DF, native (= 223 decimal
- U+DF # Hexadecimal DF, in Unicode's character set
+ 'U+DF' # Hexadecimal DF, in Unicode's character set
(= LATIN SMALL LETTER SHARP S)
Note that the largest code point in Unicode is U+10FFFF.
@@ -193,6 +206,10 @@ C<undef> is returned.
Fields that aren't applicable to the particular code point argument exist in the
returned hash, and are empty.
+For results that are less "raw" than this function returns, or to get the values for
+any property, not just the few covered by this function, use the
+L</charprop()> function.
+
The keys in the hash with the meanings of their values are:
=over
@@ -248,7 +265,8 @@ The codes may be preceded by a word enclosed in angle brackets, then a space,
like C<E<lt>compatE<gt> >, giving the type of decomposition
This decomposition may be an intermediate one whose components are also
-decomposable. Use L<Unicode::Normalize> to get the final decomposition.
+decomposable. Use L<Unicode::Normalize> to get the final decomposition in one
+step.
=item B<decimal>
@@ -279,47 +297,55 @@ As of Unicode 6.0, this is always empty.
=item B<upper>
-is empty if there is no single code point uppercase mapping for I<code>
-(its uppercase mapping is itself);
-otherwise it is that mapping expressed as at least four hexdigits.
-(L</casespec()> should be used in addition to B<charinfo()>
-for case mappings when the calling program can cope with multiple code point
-mappings.)
+is, if non-empty, the uppercase mapping for I<code> expressed as at least four
+hexdigits. This indicates that the full uppercase mapping is a single
+character, and is identical to the simple (single-character only) mapping.
+When this field is empty, it means that the simple uppercase mapping is
+I<code> itself; you'll need some other means, (like L</charprop()> or
+L</casespec()> to get the full mapping.
=item B<lower>
-is empty if there is no single code point lowercase mapping for I<code>
-(its lowercase mapping is itself);
-otherwise it is that mapping expressed as at least four hexdigits.
-(L</casespec()> should be used in addition to B<charinfo()>
-for case mappings when the calling program can cope with multiple code point
-mappings.)
+is, if non-empty, the lowercase mapping for I<code> expressed as at least four
+hexdigits. This indicates that the full lowercase mapping is a single
+character, and is identical to the simple (single-character only) mapping.
+When this field is empty, it means that the simple lowercase mapping is
+I<code> itself; you'll need some other means, (like L</charprop()> or
+L</casespec()> to get the full mapping.
=item B<title>
-is empty if there is no single code point titlecase mapping for I<code>
-(its titlecase mapping is itself);
-otherwise it is that mapping expressed as at least four hexdigits.
-(L</casespec()> should be used in addition to B<charinfo()>
-for case mappings when the calling program can cope with multiple code point
-mappings.)
+is, if non-empty, the titlecase mapping for I<code> expressed as at least four
+hexdigits. This indicates that the full titlecase mapping is a single
+character, and is identical to the simple (single-character only) mapping.
+When this field is empty, it means that the simple titlecase mapping is
+I<code> itself; you'll need some other means, (like L</charprop()> or
+L</casespec()> to get the full mapping.
=item B<block>
the block I<code> belongs to (used in C<\p{Blk=...}>).
-See L</Blocks versus Scripts>.
+The L</prop_value_aliases()> function can be used to get all the synonyms
+of the block name.
+See L</Blocks versus Scripts>.
=item B<script>
the script I<code> belongs to.
+The L</prop_value_aliases()> function can be used to get all the synonyms
+of the script name.
+
See L</Blocks versus Scripts>.
=back
Note that you cannot do (de)composition and casing based solely on the
-I<decomposition>, I<combining>, I<lower>, I<upper>, and I<title> fields;
-you will need also the L</compexcl()>, and L</casespec()> functions.
+I<decomposition>, I<combining>, I<lower>, I<upper>, and I<title> fields; you
+will need also the L</casespec()> function and the C<Composition_Exclusion>
+property. (Or you could just use the L<lc()|perlfunc/lc>,
+L<uc()|perlfunc/uc>, and L<ucfirst()|perlfunc/ucfirst> functions, and the
+L<Unicode::Normalize> module.)
=cut
@@ -385,8 +411,9 @@ sub charinfo {
@CATEGORIES =_read_table("To/Gc.pl") unless @CATEGORIES;
$prop{'category'} = _search(\@CATEGORIES, 0, $#CATEGORIES, $code)
// $utf8::SwashInfo{'ToGc'}{'missing'};
-
- return if $prop{'category'} eq 'Cn'; # Unassigned code points are undef
+ # Return undef if category value is 'Unassigned' or one of its synonyms
+ return if grep { lc $_ eq 'unassigned' }
+ prop_value_aliases('Gc', $prop{'category'});
$prop{'code'} = sprintf "%04X", $code;
$prop{'name'} = ($char =~ /\p{Cntrl}/) ? '<control>'
@@ -588,6 +615,210 @@ sub charinrange {
_search($range, 0, $#$range, $code);
}
+=head2 B<charprop()>
+
+ use Unicode::UCD 'charprop';
+
+ print charprop(0x41, "Gc"), "\n";
+ print charprop(0x61, "General_Category"), "\n";
+
+ prints
+ Lu
+ Ll
+
+This returns the value of the Unicode property given by the second parameter
+for the L</code point argument> given by the first.
+
+The passed-in property may be specified as any of the synonyms returned by
+L</prop_aliases()>.
+
+The return value is always a scalar, either a string or a number. For
+properties where there are synonyms for the values, the synonym returned by
+this function is the longest, most descriptive form, the one returned by
+L</prop_value_aliases()> when called in a scalar context. Of course, you can
+call L</prop_value_aliases()> on the result to get other synonyms.
+
+The return values are more "cooked" than the L</charinfo()> ones. For
+example, the C<"uc"> property value is the actual string containing the full
+uppercase mapping of the input code point. You have to go to extra trouble
+with C<charinfo> to get this value from its C<upper> hash element when the
+full mapping differs from the simple one.
+
+Special note should be made of the return values for a few properties:
+
+=over
+
+=item Block
+
+The value returned is the new-style (see L</Old-style versus new-style block
+names>).
+
+=item Decomposition_Mapping
+
+Like L</charinfo()>, the result may be an intermediate decomposition whose
+components are also decomposable. Use L<Unicode::Normalize> to get the final
+decomposition in one step.
+
+Unlike L</charinfo()>, this does not include the decomposition type. Use the
+C<Decomposition_Type> property to get that.
+
+=item Name_Alias
+
+If the input code point's name has more than one synonym, they are returned
+joined into a single comma-separated string.
+
+=item Numeric_Value
+
+If the result is a fraction, it is converted into a floating point number to
+the accuracy of your platform.
+
+=item Script_Extensions
+
+If the result is multiple script names, they are returned joined into a single
+comma-separated string.
+
+=back
+
+When called with a property that is a Perl extension that isn't expressible in
+a compound form, this function currently returns C<undef>, as the only two
+possible values are I<true> or I<false> (1 or 0 I suppose). This behavior may
+change in the future, so don't write code that relies on it. C<Present_In> is
+a Perl extension that is expressible in a bipartite or compound form (for
+example, C<\p{Present_In=4.0}>), so C<charprop> accepts it. But C<Any> is a
+Perl extension that isn't expressible that way, so C<charprop> returns
+C<undef> for it. Also C<charprop> returns C<undef> for all Perl extensions
+that are internal-only.
+
+=cut
+
+sub charprop ($$) {
+ my ($input_cp, $prop) = @_;
+
+ my $cp = _getcode($input_cp);
+ croak __PACKAGE__, "::charprop: unknown code point '$input_cp'" unless defined $cp;
+
+ my ($list_ref, $map_ref, $format, $default)
+ = prop_invmap($prop);
+ return undef unless defined $list_ref;
+
+ my $i = search_invlist($list_ref, $cp);
+ croak __PACKAGE__, "::charprop: prop_invmap return is invalid for charprop('$input_cp', '$prop)" unless defined $i;
+
+ # $i is the index into both the inversion list and map of $cp.
+ my $map = $map_ref->[$i];
+
+ # Convert enumeration values to their most complete form.
+ if (! ref $map) {
+ my $long_form = prop_value_aliases($prop, $map);
+ $map = $long_form if defined $long_form;
+ }
+
+ if ($format =~ / ^ s /x) { # Scalars
+ return join ",", @$map if ref $map; # Convert to scalar with comma
+ # separated array elements
+
+ # Resolve ambiguity as to whether an all digit value is a code point
+ # that should be converted to a character, or whether it is really
+ # just a number. To do this, look at the default. If it is a
+ # non-empty number, we can safely assume the result is also a number.
+ if ($map =~ / ^ \d+ $ /ax && $default !~ / ^ \d+ $ /ax) {
+ $map = chr $map;
+ }
+ elsif ($map =~ / ^ (?: Y | N ) $ /x) {
+
+ # prop_invmap() returns these values for properties that are Perl
+ # extensions. But this is misleading. For now, return undef for
+ # these, as currently documented.
+ undef $map unless
+ exists $Unicode::UCD::prop_aliases{utf8::_loose_name(lc $prop)};
+ }
+ return $map;
+ }
+ elsif ($format eq 'ar') { # numbers, including rationals
+ my $offset = $cp - $list_ref->[$i];
+ return $map if $map =~ /nan/i;
+ return $map + $offset if $offset != 0; # If needs adjustment
+ return eval $map; # Convert e.g., 1/2 to 0.5
+ }
+ elsif ($format =~ /^a/) { # Some entries need adjusting
+
+ # Linearize sequences into a string.
+ return join "", map { chr $_ } @$map if ref $map; # XXX && $format =~ /^ a [dl] /x;
+
+ return "" if $map eq "" && $format =~ /^a.*e/;
+
+ # These are all character mappings. Return the chr if no adjustment
+ # is needed
+ return chr $cp if $map eq "0";
+
+ # Convert special entry.
+ if ($map eq '<hangul syllable>' && $format eq 'ad') {
+ use Unicode::Normalize qw(NFD);
+ return NFD(chr $cp);
+ }
+
+ # The rest need adjustment from the first entry in the inversion list
+ # corresponding to this map.
+ my $offset = $cp - $list_ref->[$i];
+ return chr($map + $cp - $list_ref->[$i]);
+ }
+ elsif ($format eq 'n') { # The name property
+
+ # There are two special cases, handled here.
+ if ($map =~ / ( .+ ) <code\ point> $ /x) {
+ $map = sprintf("$1%04X", $cp);
+ }
+ elsif ($map eq '<hangul syllable>') {
+ $map = charnames::viacode($cp);
+ }
+ return $map;
+ }
+ else {
+ croak __PACKAGE__, "::charprop: Internal error: unknown format '$format'. Please perlbug this";
+ return undef;
+ }
+}
+
+=head2 B<charprops_all()>
+
+ use Unicode::UCD 'charprops_all';
+
+ my $%properties_of_A_hash_ref = charprops_all("U+41");
+
+This returns a reference to a hash whose keys are all the distinct Unicode (no
+Perl extension) properties, and whose values are the respective values for
+those properties for the input L</code point argument>.
+
+Each key is the property name in its longest, most descriptive form. The
+values are what L</charprop()> would return.
+
+This function is expensive in time and memory.
+
+=cut
+
+sub charprops_all($) {
+ my $input_cp = shift;
+
+ my $cp = _getcode($input_cp);
+ croak __PACKAGE__, "::charprops_all: unknown code point '$input_cp'" unless defined $cp;
+
+ my %return;
+
+ require "unicore/UCD.pl";
+
+ foreach my $prop (keys %Unicode::UCD::prop_aliases) {
+
+ # Don't return a Perl extension. (This is the only one that
+ # %prop_aliases has in it.)
+ next if $prop eq 'perldecimaldigit';
+
+ # Use long name for $prop in the hash
+ $return{scalar prop_aliases($prop)} = charprop($cp, $prop);
+ }
+
+ return \%return;
+}
+
=head2 B<charblock()>
use Unicode::UCD 'charblock';
@@ -602,6 +833,9 @@ sub charinrange {
With a L</code point argument> C<charblock()> returns the I<block> the code point
belongs to, e.g. C<Basic Latin>. The old-style block name is returned (see
L</Old-style versus new-style block names>).
+The L</prop_value_aliases()> function can be used to get all the synonyms
+of the block name.
+
If the code point is unassigned, this returns the block it would belong to if
it were assigned. (If the Unicode version being used is so early as to not
have blocks, all code points are considered to be in C<No_Block>.)
@@ -611,7 +845,7 @@ See also L</Blocks versus Scripts>.
If supplied with an argument that can't be a code point, C<charblock()> tries to
do the opposite and interpret the argument as an old-style block name. On an
ASCII platform, the return value is a I<range set> with one range: an
-anonymous list with a single element that consists of another anonymous list
+anonymous array with a single element that consists of another anonymous array
whose first element is the first code point in the block, and whose second
element is the final code point in the block. On an EBCDIC
platform, the first two Unicode blocks are not contiguous. Their range sets
@@ -716,10 +950,12 @@ With a L</code point argument>, C<charscript()> returns the I<script> the
code point belongs to, e.g., C<Latin>, C<Greek>, C<Han>.
If the code point is unassigned or the Unicode version being used is so early
that it doesn't have scripts, this function returns C<"Unknown">.
+The L</prop_value_aliases()> function can be used to get all the synonyms
+of the script name.
If supplied with an argument that can't be a code point, charscript() tries
to do the opposite and interpret the argument as a script name. The
-return value is a I<range set>: an anonymous list of lists that contain
+return value is a I<range set>: an anonymous array of arrays that contain
I<start-of-range>, I<end-of-range> code point pairs. You can test whether a
code point is in a range set using the L</charinrange()> function.
(To be precise, each I<range set> contains a third array element,
@@ -783,6 +1019,9 @@ names>).
L<prop_invmap("block")|/prop_invmap()> can be used to get this same data in a
different type of data structure.
+L<prop_values("Block")|/prop_values()> can be used to get all
+the known new-style block names as a list, without the code point ranges.
+
See also L</Blocks versus Scripts>.
=cut
@@ -805,6 +1044,9 @@ the values.
L<prop_invmap("script")|/prop_invmap()> can be used to get this same data in a
different type of data structure.
+L<C<prop_values("Script")>|/prop_values()> can be used to get all
+the known script names as a list, without the code point ranges.
+
See also L</Blocks versus Scripts>.
=cut
@@ -888,8 +1130,9 @@ from the long names to the short names. The general category is the
one returned from
L</charinfo()> under the C<category> key.
-The L</prop_value_aliases()> function can be used to get all the synonyms of
-the category name.
+The L</prop_values()> and L</prop_value_aliases()> functions can be used as an
+alternative to this function; the first returning a simple list of the short
+category names; and the second gets all the synonyms of a given category name.
=cut
@@ -933,8 +1176,10 @@ the Unicode TR9 is recommended reading:
L<http://www.unicode.org/reports/tr9/>
(as of Unicode 5.0.0)
-The L</prop_value_aliases()> function can be used to get all the synonyms of
-the bidi type name.
+The L</prop_values()> and L</prop_value_aliases()> functions can be used as an
+alternative to this function; the first returning a simple list of the short
+bidi type names; and the second gets all the synonyms of a given bidi type
+name.
=cut
@@ -1945,6 +2190,79 @@ sub prop_aliases ($) {
=pod
+=head2 B<prop_values()>
+
+ use Unicode::UCD 'prop_values';
+
+ print "AHex values are: ", join(", ", prop_values("AHex")),
+ "\n";
+ prints:
+ AHex values are: N, Y
+
+Some Unicode properties have a restricted set of legal values. For example,
+all binary properties are restricted to just C<true> or C<false>; and there
+are only a few dozen possible General Categories. Use C<prop_values>
+to find out if a given property is one such, and if so, to get a list of the
+values:
+
+ print join ", ", prop_values("NFC_Quick_Check");
+ prints:
+ M, N, Y
+
+If the property doesn't have such a restricted set, C<undef> is returned.
+
+There are usually several synonyms for each possible value. Use
+L</prop_value_aliases()> to access those.
+
+Case, white space, hyphens, and underscores are ignored in the input property
+name (except for the trailing underscore in the old-form grandfathered-in
+general category property value C<"L_">, which is better written as C<"LC">).
+
+If the property name is unknown, C<undef> is returned. Note that Perl typically
+recognizes property names in regular expressions with an optional C<"Is_>"
+(with or without the underscore) prefixed to them, such as C<\p{isgc=punct}>.
+This function does not recognize those in the property parameter, returning
+C<undef>.
+
+For the block property, new-style block names are returned (see
+L</Old-style versus new-style block names>).
+
+C<prop_values> does not know about any user-defined properties, and
+will return C<undef> if called with one of those.
+
+=cut
+
+# These are created by mktables for this module and stored in unicore/UCD.pl
+# where their structures are described.
+our %loose_to_standard_value;
+our %prop_value_aliases;
+
+sub prop_values ($) {
+ my $prop = shift;
+ return undef unless defined $prop;
+
+ require "unicore/UCD.pl";
+ require "utf8_heavy.pl";
+
+ # Find the property name synonym that's used as the key in other hashes,
+ # which is element 0 in the returned list.
+ ($prop) = prop_aliases($prop);
+ return undef if ! $prop;
+ $prop = utf8::_loose_name(lc $prop);
+
+ # Here is a legal property.
+ return undef unless exists $prop_value_aliases{$prop};
+ my @return;
+ foreach my $value_key (sort { lc $a cmp lc $b }
+ keys %{$prop_value_aliases{$prop}})
+ {
+ push @return, $prop_value_aliases{$prop}{$value_key}[0];
+ }
+ return @return;
+}
+
+=pod
+
=head2 B<prop_value_aliases()>
use Unicode::UCD 'prop_value_aliases';
@@ -1958,7 +2276,7 @@ sub prop_aliases ($) {
print "The short name is $short_name\n";
print "The other aliases are: ", join(", ", @other_names), "\n";
- prints:
+ prints:
The full name is Punctuation
The short name is P
The other aliases are: Punct
@@ -1967,18 +2285,20 @@ Some Unicode properties have a restricted set of legal values. For example,
all binary properties are restricted to just C<true> or C<false>; and there
are only a few dozen possible General Categories.
-For such properties, there are usually several synonyms for each possible
-value. For example, in binary properties, I<truth> can be represented by any of
-the strings "Y", "Yes", "T", or "True"; and the General Category
-"Punctuation" by that string, or "Punct", or simply "P".
+You can use L</prop_values()> to find out if a given property is one which has
+a restricted set of values, and if so, what those values are. But usually
+each value actually has several synonyms. For example, in Unicode binary
+properties, I<truth> can be represented by any of the strings "Y", "Yes", "T",
+or "True"; and the General Category "Punctuation" by that string, or "Punct",
+or simply "P".
Like property names, there is typically at least a short name for each such
-property-value, and a long name. If you know any name of the property-value,
-you can use C<prop_value_aliases>() to get the long name (when called in
-scalar context), or a list of all the names, with the short name in the 0th
-element, the long name in the next element, and any other synonyms in the
-remaining elements, in no particular order, except that any all-numeric
-synonyms will be last.
+property-value, and a long name. If you know any name of the property-value
+(which you can get by L</prop_values()>, you can use C<prop_value_aliases>()
+to get the long name (when called in scalar context), or a list of all the
+names, with the short name in the 0th element, the long name in the next
+element, and any other synonyms in the remaining elements, in no particular
+order, except that any all-numeric synonyms will be last.
The long name is returned in a form nicely capitalized, suitable for printing.
@@ -1994,7 +2314,7 @@ C<undef>.
If called with a property that doesn't have synonyms for its values, it
returns the input value, possibly normalized with capitalization and
-underscores.
+underscores, but not necessarily checking that the input value is valid.
For the block property, new-style block names are returned (see
L</Old-style versus new-style block names>).
@@ -2007,11 +2327,6 @@ will return C<undef> if called with one of those.
=cut
-# These are created by mktables for this routine and stored in unicore/UCD.pl
-# where their structures are described.
-our %loose_to_standard_value;
-our %prop_value_aliases;
-
sub prop_value_aliases ($$) {
my ($prop, $value) = @_;
return unless defined $prop && defined $value;
@@ -2031,7 +2346,18 @@ sub prop_value_aliases ($$) {
# anything, like most (if not all) string properties. These don't have
# synonyms anyway. Simply return the input. For example, there is no
# synonym for ('Uppercase_Mapping', A').
- return $value if ! exists $prop_value_aliases{$prop};
+ if (! exists $prop_value_aliases{$prop}) {
+
+ # Here, we have a legal property, but an unknown value. Since the
+ # property is legal, if it isn't in the prop_aliases hash, it must be
+ # a Perl-extension All perl extensions are binary, hence are
+ # enumerateds, which means that we know that the input unknown value
+ # is illegal.
+ return if ! exists $Unicode::UCD::prop_aliases{$prop};
+
+ # Otherwise, we assume it's valid, as documented.
+ return $value;
+ }
# The value name may be loosely or strictly matched; we don't know yet.
# But both types use lower-case.
@@ -2212,7 +2538,8 @@ our $MAX_UNICODE_CODEPOINT;
sub prop_invlist ($;$) {
my $prop = $_[0];
- # Undocumented way to get at Perl internal properties
+ # Undocumented way to get at Perl internal properties; it may be changed
+ # or removed without notice at any time.
my $internal_ok = defined $_[1] && $_[1] eq '_perl_core_internal_ok';
return if ! defined $prop;
@@ -2791,6 +3118,14 @@ Use L</casefold()> for these.
C<prop_invmap> does not know about any user-defined properties, and will
return C<undef> if called with one of those.
+The returned values for the Perl extension properties, such as C<Any> and
+C<Greek> are somewhat misleading. The values are either C<"Y"> or C<"N>".
+All Unicode properties are bipartite, so you can actually use the C<"Y"> or
+C<"N>" in a Perl regular rexpression for these, like C<qr/\p{ID_Start=Y/}> or
+C<qr/\p{Upper=N/}>. But the Perl extensions aren't specified this way, only
+like C</qr/\p{Any}>, I<etc>. You can't actually use the C<"Y"> and C<"N>" in
+them.
+
=cut
# User-defined properties could be handled with some changes to utf8_heavy.pl;
@@ -2808,15 +3143,21 @@ our @algorithmic_named_code_points;
our $HANGUL_BEGIN;
our $HANGUL_COUNT;
-sub prop_invmap ($) {
+sub prop_invmap ($;$) {
croak __PACKAGE__, "::prop_invmap: must be called in list context" unless wantarray;
my $prop = $_[0];
return unless defined $prop;
+ # Undocumented way to get at Perl internal properties; it may be changed
+ # or removed without notice at any time. It currently also changes the
+ # output to use the format specified in the file rather than the one we
+ # normally compute and return
+ my $internal_ok = defined $_[1] && $_[1] eq '_perl_core_internal_ok';
+
# Fail internal properties
- return if $prop =~ /^_/;
+ return if $prop =~ /^_/ && ! $internal_ok;
# The values returned by this function.
my (@invlist, @invmap, $format, $missing);
@@ -3425,8 +3766,15 @@ RETRY:
# If the overrides came from SPECIALS, the code point keys are
# packed UTF-8.
if ($overrides == $swash->{'SPECIALS'}) {
- $cp = unpack("C0U", $cp_maybe_utf8);
- @map = unpack "U0U*", $swash->{'SPECIALS'}{$cp_maybe_utf8};
+ $cp = $cp_maybe_utf8;
+ if (! utf8::decode($cp)) {
+ croak __PACKAGE__, "::prop_invmap: Malformed UTF-8: ",
+ map { sprintf("\\x{%02X}", unpack("C", $_)) }
+ split "", $cp;
+ }
+
+ $cp = unpack("W", $cp);
+ @map = unpack "W*", $swash->{'SPECIALS'}{$cp_maybe_utf8};
# The empty string will show up unpacked as an empty
# array.
@@ -3672,7 +4020,7 @@ sub UnicodeVersion {
=head2 B<Blocks versus Scripts>
The difference between a block and a script is that scripts are closer
-to the linguistic notion of a set of code points required to present
+to the linguistic notion of a set of code points required to represent
languages, while block is more of an artifact of the Unicode code point
numbering and separation into blocks of consecutive code points (so far the
size of a block is some multiple of 16, like 128 or 256).
@@ -3682,7 +4030,7 @@ as C<Basic Latin>, C<Latin 1 Supplement>, C<Latin Extended-A>, and
C<Latin Extended-B>. On the other hand, the Latin script does not
contain all the characters of the C<Basic Latin> block (also known as
ASCII): it includes only the letters, and not, for example, the digits
-or the punctuation.
+nor the punctuation.
For blocks see L<http://www.unicode.org/Public/UNIDATA/Blocks.txt>
@@ -3711,8 +4059,9 @@ The newer style replaces these with underscores, like this:
This newer style is consistent with the values of other Unicode properties.
To preserve backward compatibility, all the functions in Unicode::UCD that
-return block names (except one) return the old-style ones. That one function,
-L</prop_value_aliases()> can be used to convert from old-style to new-style:
+return block names (except as noted) return the old-style ones.
+L</prop_value_aliases()> returns the new-style and can be used to convert from
+old-style to new-style:
my $new_style = prop_values_aliases("block", $old_style);
diff --git a/Master/tlpkg/tlperl/lib/WWW/RobotRules.pm b/Master/tlpkg/tlperl/lib/WWW/RobotRules.pm
deleted file mode 100644
index 5dfc4539349..00000000000
--- a/Master/tlpkg/tlperl/lib/WWW/RobotRules.pm
+++ /dev/null
@@ -1,453 +0,0 @@
-package WWW::RobotRules;
-
-$VERSION = "6.02";
-sub Version { $VERSION; }
-
-use strict;
-use URI ();
-
-
-
-sub new {
- my($class, $ua) = @_;
-
- # This ugly hack is needed to ensure backwards compatibility.
- # The "WWW::RobotRules" class is now really abstract.
- $class = "WWW::RobotRules::InCore" if $class eq "WWW::RobotRules";
-
- my $self = bless { }, $class;
- $self->agent($ua);
- $self;
-}
-
-
-sub parse {
- my($self, $robot_txt_uri, $txt, $fresh_until) = @_;
- $robot_txt_uri = URI->new("$robot_txt_uri");
- my $netloc = $robot_txt_uri->host . ":" . $robot_txt_uri->port;
-
- $self->clear_rules($netloc);
- $self->fresh_until($netloc, $fresh_until || (time + 365*24*3600));
-
- my $ua;
- my $is_me = 0; # 1 iff this record is for me
- my $is_anon = 0; # 1 iff this record is for *
- my $seen_disallow = 0; # watch for missing record separators
- my @me_disallowed = (); # rules disallowed for me
- my @anon_disallowed = (); # rules disallowed for *
-
- # blank lines are significant, so turn CRLF into LF to avoid generating
- # false ones
- $txt =~ s/\015\012/\012/g;
-
- # split at \012 (LF) or \015 (CR) (Mac text files have just CR for EOL)
- for(split(/[\012\015]/, $txt)) {
-
- # Lines containing only a comment are discarded completely, and
- # therefore do not indicate a record boundary.
- next if /^\s*\#/;
-
- s/\s*\#.*//; # remove comments at end-of-line
-
- if (/^\s*$/) { # blank line
- last if $is_me; # That was our record. No need to read the rest.
- $is_anon = 0;
- $seen_disallow = 0;
- }
- elsif (/^\s*User-Agent\s*:\s*(.*)/i) {
- $ua = $1;
- $ua =~ s/\s+$//;
-
- if ($seen_disallow) {
- # treat as start of a new record
- $seen_disallow = 0;
- last if $is_me; # That was our record. No need to read the rest.
- $is_anon = 0;
- }
-
- if ($is_me) {
- # This record already had a User-agent that
- # we matched, so just continue.
- }
- elsif ($ua eq '*') {
- $is_anon = 1;
- }
- elsif($self->is_me($ua)) {
- $is_me = 1;
- }
- }
- elsif (/^\s*Disallow\s*:\s*(.*)/i) {
- unless (defined $ua) {
- warn "RobotRules <$robot_txt_uri>: Disallow without preceding User-agent\n" if $^W;
- $is_anon = 1; # assume that User-agent: * was intended
- }
- my $disallow = $1;
- $disallow =~ s/\s+$//;
- $seen_disallow = 1;
- if (length $disallow) {
- my $ignore;
- eval {
- my $u = URI->new_abs($disallow, $robot_txt_uri);
- $ignore++ if $u->scheme ne $robot_txt_uri->scheme;
- $ignore++ if lc($u->host) ne lc($robot_txt_uri->host);
- $ignore++ if $u->port ne $robot_txt_uri->port;
- $disallow = $u->path_query;
- $disallow = "/" unless length $disallow;
- };
- next if $@;
- next if $ignore;
- }
-
- if ($is_me) {
- push(@me_disallowed, $disallow);
- }
- elsif ($is_anon) {
- push(@anon_disallowed, $disallow);
- }
- }
- elsif (/\S\s*:/) {
- # ignore
- }
- else {
- warn "RobotRules <$robot_txt_uri>: Malformed record: <$_>\n" if $^W;
- }
- }
-
- if ($is_me) {
- $self->push_rules($netloc, @me_disallowed);
- }
- else {
- $self->push_rules($netloc, @anon_disallowed);
- }
-}
-
-
-#
-# Returns TRUE if the given name matches the
-# name of this robot
-#
-sub is_me {
- my($self, $ua_line) = @_;
- my $me = $self->agent;
-
- # See whether my short-name is a substring of the
- # "User-Agent: ..." line that we were passed:
-
- if(index(lc($me), lc($ua_line)) >= 0) {
- return 1;
- }
- else {
- return '';
- }
-}
-
-
-sub allowed {
- my($self, $uri) = @_;
- $uri = URI->new("$uri");
-
- return 1 unless $uri->scheme eq 'http' or $uri->scheme eq 'https';
- # Robots.txt applies to only those schemes.
-
- my $netloc = $uri->host . ":" . $uri->port;
-
- my $fresh_until = $self->fresh_until($netloc);
- return -1 if !defined($fresh_until) || $fresh_until < time;
-
- my $str = $uri->path_query;
- my $rule;
- for $rule ($self->rules($netloc)) {
- return 1 unless length $rule;
- return 0 if index($str, $rule) == 0;
- }
- return 1;
-}
-
-
-# The following methods must be provided by the subclass.
-sub agent;
-sub visit;
-sub no_visits;
-sub last_visits;
-sub fresh_until;
-sub push_rules;
-sub clear_rules;
-sub rules;
-sub dump;
-
-
-
-package WWW::RobotRules::InCore;
-
-use vars qw(@ISA);
-@ISA = qw(WWW::RobotRules);
-
-
-
-sub agent {
- my ($self, $name) = @_;
- my $old = $self->{'ua'};
- if ($name) {
- # Strip it so that it's just the short name.
- # I.e., "FooBot" => "FooBot"
- # "FooBot/1.2" => "FooBot"
- # "FooBot/1.2 [http://foobot.int; foo@bot.int]" => "FooBot"
-
- $name = $1 if $name =~ m/(\S+)/; # get first word
- $name =~ s!/.*!!; # get rid of version
- unless ($old && $old eq $name) {
- delete $self->{'loc'}; # all old info is now stale
- $self->{'ua'} = $name;
- }
- }
- $old;
-}
-
-
-sub visit {
- my($self, $netloc, $time) = @_;
- return unless $netloc;
- $time ||= time;
- $self->{'loc'}{$netloc}{'last'} = $time;
- my $count = \$self->{'loc'}{$netloc}{'count'};
- if (!defined $$count) {
- $$count = 1;
- }
- else {
- $$count++;
- }
-}
-
-
-sub no_visits {
- my ($self, $netloc) = @_;
- $self->{'loc'}{$netloc}{'count'};
-}
-
-
-sub last_visit {
- my ($self, $netloc) = @_;
- $self->{'loc'}{$netloc}{'last'};
-}
-
-
-sub fresh_until {
- my ($self, $netloc, $fresh_until) = @_;
- my $old = $self->{'loc'}{$netloc}{'fresh'};
- if (defined $fresh_until) {
- $self->{'loc'}{$netloc}{'fresh'} = $fresh_until;
- }
- $old;
-}
-
-
-sub push_rules {
- my($self, $netloc, @rules) = @_;
- push (@{$self->{'loc'}{$netloc}{'rules'}}, @rules);
-}
-
-
-sub clear_rules {
- my($self, $netloc) = @_;
- delete $self->{'loc'}{$netloc}{'rules'};
-}
-
-
-sub rules {
- my($self, $netloc) = @_;
- if (defined $self->{'loc'}{$netloc}{'rules'}) {
- return @{$self->{'loc'}{$netloc}{'rules'}};
- }
- else {
- return ();
- }
-}
-
-
-sub dump
-{
- my $self = shift;
- for (keys %$self) {
- next if $_ eq 'loc';
- print "$_ = $self->{$_}\n";
- }
- for (keys %{$self->{'loc'}}) {
- my @rules = $self->rules($_);
- print "$_: ", join("; ", @rules), "\n";
- }
-}
-
-
-1;
-
-__END__
-
-
-# Bender: "Well, I don't have anything else
-# planned for today. Let's get drunk!"
-
-=head1 NAME
-
-WWW::RobotRules - database of robots.txt-derived permissions
-
-=head1 SYNOPSIS
-
- use WWW::RobotRules;
- my $rules = WWW::RobotRules->new('MOMspider/1.0');
-
- use LWP::Simple qw(get);
-
- {
- my $url = "http://some.place/robots.txt";
- my $robots_txt = get $url;
- $rules->parse($url, $robots_txt) if defined $robots_txt;
- }
-
- {
- my $url = "http://some.other.place/robots.txt";
- my $robots_txt = get $url;
- $rules->parse($url, $robots_txt) if defined $robots_txt;
- }
-
- # Now we can check if a URL is valid for those servers
- # whose "robots.txt" files we've gotten and parsed:
- if($rules->allowed($url)) {
- $c = get $url;
- ...
- }
-
-=head1 DESCRIPTION
-
-This module parses F</robots.txt> files as specified in
-"A Standard for Robot Exclusion", at
-<http://www.robotstxt.org/wc/norobots.html>
-Webmasters can use the F</robots.txt> file to forbid conforming
-robots from accessing parts of their web site.
-
-The parsed files are kept in a WWW::RobotRules object, and this object
-provides methods to check if access to a given URL is prohibited. The
-same WWW::RobotRules object can be used for one or more parsed
-F</robots.txt> files on any number of hosts.
-
-The following methods are provided:
-
-=over 4
-
-=item $rules = WWW::RobotRules->new($robot_name)
-
-This is the constructor for WWW::RobotRules objects. The first
-argument given to new() is the name of the robot.
-
-=item $rules->parse($robot_txt_url, $content, $fresh_until)
-
-The parse() method takes as arguments the URL that was used to
-retrieve the F</robots.txt> file, and the contents of the file.
-
-=item $rules->allowed($uri)
-
-Returns TRUE if this robot is allowed to retrieve this URL.
-
-=item $rules->agent([$name])
-
-Get/set the agent name. NOTE: Changing the agent name will clear the robots.txt
-rules and expire times out of the cache.
-
-=back
-
-=head1 ROBOTS.TXT
-
-The format and semantics of the "/robots.txt" file are as follows
-(this is an edited abstract of
-<http://www.robotstxt.org/wc/norobots.html>):
-
-The file consists of one or more records separated by one or more
-blank lines. Each record contains lines of the form
-
- <field-name>: <value>
-
-The field name is case insensitive. Text after the '#' character on a
-line is ignored during parsing. This is used for comments. The
-following <field-names> can be used:
-
-=over 3
-
-=item User-Agent
-
-The value of this field is the name of the robot the record is
-describing access policy for. If more than one I<User-Agent> field is
-present the record describes an identical access policy for more than
-one robot. At least one field needs to be present per record. If the
-value is '*', the record describes the default access policy for any
-robot that has not not matched any of the other records.
-
-The I<User-Agent> fields must occur before the I<Disallow> fields. If a
-record contains a I<User-Agent> field after a I<Disallow> field, that
-constitutes a malformed record. This parser will assume that a blank
-line should have been placed before that I<User-Agent> field, and will
-break the record into two. All the fields before the I<User-Agent> field
-will constitute a record, and the I<User-Agent> field will be the first
-field in a new record.
-
-=item Disallow
-
-The value of this field specifies a partial URL that is not to be
-visited. This can be a full path, or a partial path; any URL that
-starts with this value will not be retrieved
-
-=back
-
-Unrecognized records are ignored.
-
-=head1 ROBOTS.TXT EXAMPLES
-
-The following example "/robots.txt" file specifies that no robots
-should visit any URL starting with "/cyberworld/map/" or "/tmp/":
-
- User-agent: *
- Disallow: /cyberworld/map/ # This is an infinite virtual URL space
- Disallow: /tmp/ # these will soon disappear
-
-This example "/robots.txt" file specifies that no robots should visit
-any URL starting with "/cyberworld/map/", except the robot called
-"cybermapper":
-
- User-agent: *
- Disallow: /cyberworld/map/ # This is an infinite virtual URL space
-
- # Cybermapper knows where to go.
- User-agent: cybermapper
- Disallow:
-
-This example indicates that no robots should visit this site further:
-
- # go away
- User-agent: *
- Disallow: /
-
-This is an example of a malformed robots.txt file.
-
- # robots.txt for ancientcastle.example.com
- # I've locked myself away.
- User-agent: *
- Disallow: /
- # The castle is your home now, so you can go anywhere you like.
- User-agent: Belle
- Disallow: /west-wing/ # except the west wing!
- # It's good to be the Prince...
- User-agent: Beast
- Disallow:
-
-This file is missing the required blank lines between records.
-However, the intention is clear.
-
-=head1 SEE ALSO
-
-L<LWP::RobotUA>, L<WWW::RobotRules::AnyDBM_File>
-
-=head1 COPYRIGHT
-
- Copyright 1995-2009, Gisle Aas
- Copyright 1995, Martijn Koster
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/WWW/RobotRules/AnyDBM_File.pm b/Master/tlpkg/tlperl/lib/WWW/RobotRules/AnyDBM_File.pm
deleted file mode 100644
index 8daa68870f7..00000000000
--- a/Master/tlpkg/tlperl/lib/WWW/RobotRules/AnyDBM_File.pm
+++ /dev/null
@@ -1,170 +0,0 @@
-package WWW::RobotRules::AnyDBM_File;
-
-require WWW::RobotRules;
-@ISA = qw(WWW::RobotRules);
-$VERSION = "6.00";
-
-use Carp ();
-use AnyDBM_File;
-use Fcntl;
-use strict;
-
-=head1 NAME
-
-WWW::RobotRules::AnyDBM_File - Persistent RobotRules
-
-=head1 SYNOPSIS
-
- require WWW::RobotRules::AnyDBM_File;
- require LWP::RobotUA;
-
- # Create a robot useragent that uses a diskcaching RobotRules
- my $rules = WWW::RobotRules::AnyDBM_File->new( 'my-robot/1.0', 'cachefile' );
- my $ua = WWW::RobotUA->new( 'my-robot/1.0', 'me@foo.com', $rules );
-
- # Then just use $ua as usual
- $res = $ua->request($req);
-
-=head1 DESCRIPTION
-
-This is a subclass of I<WWW::RobotRules> that uses the AnyDBM_File
-package to implement persistent diskcaching of F<robots.txt> and host
-visit information.
-
-The constructor (the new() method) takes an extra argument specifying
-the name of the DBM file to use. If the DBM file already exists, then
-you can specify undef as agent name as the name can be obtained from
-the DBM database.
-
-=cut
-
-sub new
-{
- my ($class, $ua, $file) = @_;
- Carp::croak('WWW::RobotRules::AnyDBM_File filename required') unless $file;
-
- my $self = bless { }, $class;
- $self->{'filename'} = $file;
- tie %{$self->{'dbm'}}, 'AnyDBM_File', $file, O_CREAT|O_RDWR, 0640
- or Carp::croak("Can't open $file: $!");
-
- if ($ua) {
- $self->agent($ua);
- }
- else {
- # Try to obtain name from DBM file
- $ua = $self->{'dbm'}{"|ua-name|"};
- Carp::croak("No agent name specified") unless $ua;
- }
-
- $self;
-}
-
-sub agent {
- my($self, $newname) = @_;
- my $old = $self->{'dbm'}{"|ua-name|"};
- if (defined $newname) {
- $newname =~ s!/?\s*\d+.\d+\s*$!!; # loose version
- unless ($old && $old eq $newname) {
- # Old info is now stale.
- my $file = $self->{'filename'};
- untie %{$self->{'dbm'}};
- tie %{$self->{'dbm'}}, 'AnyDBM_File', $file, O_TRUNC|O_RDWR, 0640;
- %{$self->{'dbm'}} = ();
- $self->{'dbm'}{"|ua-name|"} = $newname;
- }
- }
- $old;
-}
-
-sub no_visits {
- my ($self, $netloc) = @_;
- my $t = $self->{'dbm'}{"$netloc|vis"};
- return 0 unless $t;
- (split(/;\s*/, $t))[0];
-}
-
-sub last_visit {
- my ($self, $netloc) = @_;
- my $t = $self->{'dbm'}{"$netloc|vis"};
- return undef unless $t;
- (split(/;\s*/, $t))[1];
-}
-
-sub fresh_until {
- my ($self, $netloc, $fresh) = @_;
- my $old = $self->{'dbm'}{"$netloc|exp"};
- if ($old) {
- $old =~ s/;.*//; # remove cleartext
- }
- if (defined $fresh) {
- $fresh .= "; " . localtime($fresh);
- $self->{'dbm'}{"$netloc|exp"} = $fresh;
- }
- $old;
-}
-
-sub visit {
- my($self, $netloc, $time) = @_;
- $time ||= time;
-
- my $count = 0;
- my $old = $self->{'dbm'}{"$netloc|vis"};
- if ($old) {
- my $last;
- ($count,$last) = split(/;\s*/, $old);
- $time = $last if $last > $time;
- }
- $count++;
- $self->{'dbm'}{"$netloc|vis"} = "$count; $time; " . localtime($time);
-}
-
-sub push_rules {
- my($self, $netloc, @rules) = @_;
- my $cnt = 1;
- $cnt++ while $self->{'dbm'}{"$netloc|r$cnt"};
-
- foreach (@rules) {
- $self->{'dbm'}{"$netloc|r$cnt"} = $_;
- $cnt++;
- }
-}
-
-sub clear_rules {
- my($self, $netloc) = @_;
- my $cnt = 1;
- while ($self->{'dbm'}{"$netloc|r$cnt"}) {
- delete $self->{'dbm'}{"$netloc|r$cnt"};
- $cnt++;
- }
-}
-
-sub rules {
- my($self, $netloc) = @_;
- my @rules = ();
- my $cnt = 1;
- while (1) {
- my $rule = $self->{'dbm'}{"$netloc|r$cnt"};
- last unless $rule;
- push(@rules, $rule);
- $cnt++;
- }
- @rules;
-}
-
-sub dump
-{
-}
-
-1;
-
-=head1 SEE ALSO
-
-L<WWW::RobotRules>, L<LWP::RobotUA>
-
-=head1 AUTHORS
-
-Hakan Ardo E<lt>hakan@munin.ub2.lu.se>, Gisle Aas E<lt>aas@sn.no>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Win32.pm b/Master/tlpkg/tlperl/lib/Win32.pm
index 027af0e0b58..7b9ab455bea 100644
--- a/Master/tlpkg/tlperl/lib/Win32.pm
+++ b/Master/tlpkg/tlperl/lib/Win32.pm
@@ -8,7 +8,7 @@ package Win32;
require DynaLoader;
@ISA = qw|Exporter DynaLoader|;
- $VERSION = '0.49';
+ $VERSION = '0.52';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -215,7 +215,7 @@ sub PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT () { 0x01E } # Windows Essential Bu
sub PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY () { 0x01F } # Windows Essential Business Server Security Server
sub PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING () { 0x020 } # Windows Essential Business Server Messaging Server
sub PRODUCT_SERVER_FOUNDATION () { 0x021 } # Server Foundation
-
+#define PRODUCT_HOME_PREMIUM_SERVER 0x00000022
sub PRODUCT_SERVER_FOR_SMALLBUSINESS_V () { 0x023 } # Windows Server 2008 without Hyper-V for Windows Essential Server Solutions
sub PRODUCT_STANDARD_SERVER_V () { 0x024 } # Server Standard without Hyper-V (full installation)
sub PRODUCT_DATACENTER_SERVER_V () { 0x025 } # Server Datacenter without Hyper-V (full installation)
@@ -224,17 +224,84 @@ sub PRODUCT_DATACENTER_SERVER_CORE_V () { 0x027 } # Server Datacenter wi
sub PRODUCT_STANDARD_SERVER_CORE_V () { 0x028 } # Server Standard without Hyper-V (core installation)
sub PRODUCT_ENTERPRISE_SERVER_CORE_V () { 0x029 } # Server Enterprise without Hyper-V (core installation)
sub PRODUCT_HYPERV () { 0x02A } # Microsoft Hyper-V Server
-
+#define PRODUCT_STORAGE_EXPRESS_SERVER_CORE 0x0000002B
+#define PRODUCT_STORAGE_STANDARD_SERVER_CORE 0x0000002C
+#define PRODUCT_STORAGE_WORKGROUP_SERVER_CORE 0x0000002D
+#define PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE 0x0000002E
sub PRODUCT_STARTER_N () { 0x02F } # Starter N
sub PRODUCT_PROFESSIONAL () { 0x030 } # Professional
sub PRODUCT_PROFESSIONAL_N () { 0x031 } # Professional N
-
+#define PRODUCT_SB_SOLUTION_SERVER 0x00000032
+#define PRODUCT_SERVER_FOR_SB_SOLUTIONS 0x00000033
+#define PRODUCT_STANDARD_SERVER_SOLUTIONS 0x00000034
+#define PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE 0x00000035
+#define PRODUCT_SB_SOLUTION_SERVER_EM 0x00000036
+#define PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM 0x00000037
+#define PRODUCT_SOLUTION_EMBEDDEDSERVER 0x00000038
+#define PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE 0x00000039
+#define PRODUCT_PROFESSIONAL_EMBEDDED 0x0000003A
+#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT 0x0000003B
+#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL 0x0000003C
+#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC 0x0000003D
+#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC 0x0000003E
+#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE 0x0000003F
+#define PRODUCT_CLUSTER_SERVER_V 0x00000040
+#define PRODUCT_EMBEDDED 0x00000041
sub PRODUCT_STARTER_E () { 0x042 } # Starter E
sub PRODUCT_HOME_BASIC_E () { 0x043 } # Home Basic E
sub PRODUCT_HOME_PREMIUM_E () { 0x044 } # Home Premium E
sub PRODUCT_PROFESSIONAL_E () { 0x045 } # Professional E
sub PRODUCT_ENTERPRISE_E () { 0x046 } # Enterprise E
sub PRODUCT_ULTIMATE_E () { 0x047 } # Ultimate E
+#define PRODUCT_ENTERPRISE_EVALUATION 0x00000048
+#define PRODUCT_MULTIPOINT_STANDARD_SERVER 0x0000004C
+#define PRODUCT_MULTIPOINT_PREMIUM_SERVER 0x0000004D
+#define PRODUCT_STANDARD_EVALUATION_SERVER 0x0000004F
+#define PRODUCT_DATACENTER_EVALUATION_SERVER 0x00000050
+#define PRODUCT_ENTERPRISE_N_EVALUATION 0x00000054
+#define PRODUCT_EMBEDDED_AUTOMOTIVE 0x00000055
+#define PRODUCT_EMBEDDED_INDUSTRY_A 0x00000056
+#define PRODUCT_THINPC 0x00000057
+#define PRODUCT_EMBEDDED_A 0x00000058
+#define PRODUCT_EMBEDDED_INDUSTRY 0x00000059
+#define PRODUCT_EMBEDDED_E 0x0000005A
+#define PRODUCT_EMBEDDED_INDUSTRY_E 0x0000005B
+#define PRODUCT_EMBEDDED_INDUSTRY_A_E 0x0000005C
+#define PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER 0x0000005F
+#define PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER 0x00000060
+#define PRODUCT_CORE_ARM 0x00000061
+sub PRODUCT_CORE_N () { 0x62 } # Windows 10 Home N
+sub PRODUCT_CORE_COUNTRYSPECIFIC () { 0x63 } # Windows 10 Home China
+sub PRODUCT_CORE_SINGLELANGUAGE () { 0x64 } # Windows 10 Home Single Language
+sub PRODUCT_CORE () { 0x65 } # Windows 10 Home
+#define PRODUCT_PROFESSIONAL_WMC 0x00000067
+#define PRODUCT_MOBILE_CORE 0x00000068
+#define PRODUCT_EMBEDDED_INDUSTRY_EVAL 0x00000069
+#define PRODUCT_EMBEDDED_INDUSTRY_E_EVAL 0x0000006A
+#define PRODUCT_EMBEDDED_EVAL 0x0000006B
+#define PRODUCT_EMBEDDED_E_EVAL 0x0000006C
+#define PRODUCT_NANO_SERVER 0x0000006D
+#define PRODUCT_CLOUD_STORAGE_SERVER 0x0000006E
+#define PRODUCT_CORE_CONNECTED 0x0000006F
+#define PRODUCT_PROFESSIONAL_STUDENT 0x00000070
+#define PRODUCT_CORE_CONNECTED_N 0x00000071
+#define PRODUCT_PROFESSIONAL_STUDENT_N 0x00000072
+#define PRODUCT_CORE_CONNECTED_SINGLELANGUAGE 0x00000073
+#define PRODUCT_CORE_CONNECTED_COUNTRYSPECIFIC 0x00000074
+#define PRODUCT_CONNECTED_CAR 0x00000075
+#define PRODUCT_INDUSTRY_HANDHELD 0x00000076
+#define PRODUCT_PPI_PRO 0x00000077
+#define PRODUCT_ARM64_SERVER 0x00000078
+sub PRODUCT_EDUCATION () { 0x79 } # Windows 10 Education
+sub PRODUCT_EDUCATION_N () { 0x7A } # Windows 10 Education N
+#define PRODUCT_IOTUAP 0x0000007B
+#define PRODUCT_CLOUD_HOST_INFRASTRUCTURE_SERVER 0x0000007C
+#define PRODUCT_ENTERPRISE_S 0x0000007D
+#define PRODUCT_ENTERPRISE_S_N 0x0000007E
+#define PRODUCT_PROFESSIONAL_S 0x0000007F
+#define PRODUCT_PROFESSIONAL_S_N 0x00000080
+#define PRODUCT_ENTERPRISE_S_EVALUATION 0x00000081
+#define PRODUCT_ENTERPRISE_S_N_EVALUATION 0x00000082
sub PRODUCT_UNLICENSED () { 0xABCDABCD } # product has not been activated and is no longer in the grace period
@@ -468,8 +535,22 @@ sub _GetOSName {
$os = "2012";
}
}
+ elsif ($minor == 3) {
+ if ($producttype == VER_NT_WORKSTATION) {
+ $os = "8.1";
+ }
+ else {
+ $os = "2012";
+ $desc = "R2";
+ }
+ }
+ }
+ elsif ($major == 10) {
+ $os = '10';
+ }
- if ($productinfo == PRODUCT_ULTIMATE) {
+ if ($major >= 6) {
+ if ($productinfo == PRODUCT_ULTIMATE) {
$desc .= " Ultimate";
}
elsif ($productinfo == PRODUCT_HOME_PREMIUM) {
@@ -531,7 +612,7 @@ sub _GetOSName {
elsif ($arch == PROCESSOR_ARCHITECTURE_AMD64) {
$desc .= " (64-bit)";
}
- }
+ }
}
unless (defined $os) {
diff --git a/Master/tlpkg/tlperl/lib/Win32/API.pm b/Master/tlpkg/tlperl/lib/Win32/API.pm
deleted file mode 100644
index ba94cac4736..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/API.pm
+++ /dev/null
@@ -1,1469 +0,0 @@
-# See the bottom of this file for the POD documentation. Search for the
-# string '=head'.
-
-#######################################################################
-#
-# Win32::API - Perl Win32 API Import Facility
-#
-# Author: Aldo Calpini <dada@perl.it>
-# Maintainer: Cosimo Streppone <cosimo@cpan.org>
-#
-# Changes for gcc/cygwin: Daniel Risacher <magnus@alum.mit.edu>
-# ported from 0.41 based on Daniel's patch by Reini Urban <rurban@x-ray.at>
-#
-#######################################################################
-
-package Win32::API;
- use strict;
- use warnings;
- use Config;
-BEGIN {
- require Exporter; # to export the constants to the main:: space
- require DynaLoader; # to dynuhlode the module.
-
- sub ISCYG ();
- eval "sub ISCYG () { ".($^O eq 'cygwin' ? 1 : 0)."}";
- no warnings 'uninitialized';
- die "Win32::API on Cygwin requires the cygpath tool on PATH"
- if ISCYG && index(`cygpath --help`,'Usage: cygpath') == -1;
-
- use vars qw( $DEBUG $sentinal @ISA @EXPORT_OK $VERSION );
-
- @ISA = qw( Exporter DynaLoader );
- @EXPORT_OK = qw( ReadMemory IsBadReadPtr MoveMemory
- WriteMemory SafeReadWideCString ); # symbols to export on request
-
- use Scalar::Util qw( looks_like_number weaken);
-
- $DEBUG = 0;
-
- sub ERROR_NOACCESS () { 998 }
- sub ERROR_NOT_ENOUGH_MEMORY () { 8 }
- sub ERROR_INVALID_PARAMETER () { 87 }
- sub APICONTROL_CC_STD () { 0 }
- sub APICONTROL_CC_C () { 1 }
- sub APICONTROL_CC_mask () { 0x7 }
- sub APICONTROL_UseMI64 () { 0x8 }
- sub APICONTROL_is_more () { 0x10 }
- sub APICONTROL_has_proto() { 0x20 }
- eval " *Win32::API::Type::PTRSIZE = *Win32::API::More::PTRSIZE = *PTRSIZE = sub () { ".$Config{ptrsize}." }";
- eval " *Win32::API::Type::IVSIZE = *Win32::API::More::IVSIZE = *IVSIZE = sub () { ".$Config{ivsize}." }";
-}
-
-sub DEBUG {
- if ($Win32::API::DEBUG) {
- printf @_ if @_ or return 1;
- }
- else {
- return 0;
- }
-}
-
-use Win32::API::Type;
-use Win32::API::Struct;
-use File::Basename ();
-
-#######################################################################
-# STATIC OBJECT PROPERTIES
-#
-#### some package-global hash to
-#### keep track of the imported
-#### libraries and procedures
-my %Libraries = ();
-my %Procedures = ();
-
-
-#######################################################################
-# dynamically load in the API extension module.
-# BEGIN required for constant subs in BOOT:
-BEGIN {
- $VERSION = '0.80';
- bootstrap Win32::API;
-}
-
-#######################################################################
-# PUBLIC METHODS
-#
-sub new {
- die "Win32::API/More::new/Import is a class method that takes 2 to 6 parameters, see POD"
- if @_ < 3 || @_ > 7;
- my ($class, $dll, $hproc, $ccnum, $outnum) = (shift, shift);
- if(! defined $dll){
- $hproc = shift;
- }
- my ($proc, $in, $out, $callconvention) = @_;
- my ($hdll, $freedll, $proto, $stackunwind) = (0, 0, 0, 0);
- my $self = {};
- if(! defined $hproc){
- if (ISCYG() and $dll ne File::Basename::basename($dll)) {
-
- # need to convert $dll to win32 path
- # isn't there an API for this?
- my $newdll = `cygpath -w "$dll"`;
- chomp $newdll;
- DEBUG "(PM)new: converted '$dll' to\n '$newdll'\n";
- $dll = $newdll;
- }
-
- #### avoid loading a library more than once
- if (exists($Libraries{$dll})) {
- DEBUG "Win32::API::new: Library '$dll' already loaded, handle=$Libraries{$dll}\n";
- $hdll = $Libraries{$dll};
- }
- else {
- DEBUG "Win32::API::new: Loading library '$dll'\n";
- $hdll = Win32::API::LoadLibrary($dll);
- $freedll = 1;
- # $Libraries{$dll} = $hdll;
- }
-
- #### if the dll can't be loaded, set $! to Win32's GetLastError()
- if (!$hdll) {
- $! = Win32::GetLastError();
- DEBUG "FAILED Loading library '$dll': $^E\n";
- return undef;
- }
- }
- else{
- if(!looks_like_number($hproc) || IsBadReadPtr($hproc, 4)){
- Win32::SetLastError(ERROR_NOACCESS);
- DEBUG "FAILED Function pointer '$hproc' is not a valid memory location\n";
- return undef;
- }
- }
- #### determine if we have a prototype or not, outtype is for future use in XS
- if ((not defined $in) and (not defined $out)) {
- ($proc, $self->{in}, $self->{intypes}, $outnum, $self->{outtype},
- $ccnum) = parse_prototype($class, $proc);
- if( ! $proc ){
- Win32::API::FreeLibrary($hdll) if $freedll;
- Win32::SetLastError(ERROR_INVALID_PARAMETER);
- return undef;
- }
- $proto = 1;
- }
- else {
- $self->{in} = [];
- my $self_in = $self->{in}; #avoid hash derefing
- if (ref($in) eq 'ARRAY') {
- foreach (@$in) {
- push(@{$self_in}, $class->type_to_num($_));
- }
- }
- else {
- my @in = split '', $in;
- foreach (@in) {
- push(@{$self_in}, $class->type_to_num($_));
- }
- }#'V' must be one and ONLY letter for "in"
- foreach(@{$self_in}){
- if($_ == 0){
- if(@{$self_in} != 1){
- Win32::API::FreeLibrary($hdll) if $freedll;
- die "Win32::API 'V' for in prototype must be the only parameter";
- } else {undef(@{$self_in});} #empty arr, as if in param was ""
- }
- }
- $outnum = $class->type_to_num($out, 1);
- $ccnum = calltype_to_num($callconvention);
- }
-
- if(!$hproc){ #if not non DLL func
- #### first try to import the function of given name...
- $hproc = Win32::API::GetProcAddress($hdll, $proc);
-
- #### ...then try appending either A or W (for ASCII or Unicode)
- if (!$hproc) {
- my $tproc = $proc;
- $tproc .= (IsUnicode() ? "W" : "A");
-
- # print "Win32::API::new: procedure not found, trying '$tproc'...\n";
- $hproc = Win32::API::GetProcAddress($hdll, $tproc);
- }
-
- #### ...if all that fails, give up, $! setting is back compat, $! is deprecated
- if (!$hproc) {
- my $err = $! = Win32::GetLastError();
- DEBUG "FAILED GetProcAddress for Proc '$proc': $^E\n";
- Win32::API::FreeLibrary($hdll) if $freedll;
- Win32::SetLastError($err);
- return undef;
- }
- DEBUG "GetProcAddress('$proc') = '$hproc'\n";
- }
- else {
- DEBUG "Using non-DLL function pointer '$hproc' for '$proc'\n";
- }
- if(PTRSIZE == 4 && $ccnum == APICONTROL_CC_C) {#fold out on WIN64
- #calculate add to ESP amount, in units of 4, will be *4ed later
- $stackunwind += $_ == T_QUAD || $_ == T_DOUBLE ? 2 : 1 for(@{$self->{in}});
- if($stackunwind > 0xFFFF) {
- goto too_many_in_params;
- }
- }
- # if a prototype has 8 byte types on 32bit, $stackunwind will be higher than
- # length of {in} letter array, so 2 different checks need to be done
- if($#{$self->{in}} > 0xFFFF) {
- too_many_in_params:
- DEBUG "FAILED This function has too many parameters (> ~65535) \n";
- Win32::API::FreeLibrary($hdll) if $freedll;
- Win32::SetLastError(ERROR_NOT_ENOUGH_MEMORY);
- return undef;
- }
- #### ok, let's stuff the object
- $self->{procname} = $proc;
- $self->{dll} = $hdll;
- $self->{dllname} = $dll;
-
- $outnum &= ~T_FLAG_NUMERIC;
- my $control;
- $self->{weakapi} = \$control;
- weaken($self->{weakapi});
- $control = pack( 'L'
- .'L'
- .(PTRSIZE == 8 ? 'Q' : 'L')
- .(PTRSIZE == 8 ? 'Q' : 'L')
- .(PTRSIZE == 8 ? 'Q' : 'L')
- .(PTRSIZE == 8 ? '' : 'L')
- ,($class eq "Win32::API::More" ? APICONTROL_is_more : 0)
- | ($proto ? APICONTROL_has_proto : 0)
- | $ccnum
- | (PTRSIZE == 8 ? 0 : $stackunwind << 8)
- | $outnum << 24
- , scalar(@{$self->{in}}) * PTRSIZE #in param count, in SV * units
- , $hproc
- , \($self->{weakapi})+0 #weak api obj ref
- , (exists $self->{intypes} ? ($self->{intypes})+0 : 0)
- , 0); #padding to align to 8 bytes on 32 bit only
- #align to 16 bytes
- $control .= "\x00" x ((((length($control)+ 15) >> 4) << 4)-length($control));
- #make a APIPARAM template array
- my ($i, $arr_end) = (0, scalar(@{$self->{in}}));
- for(; $i< $arr_end; $i++) {
- my $tin = $self->{in}[$i];
- #unsigned meaningless no sign vs zero extends are done bc uv/iv is
- #the biggest native integer on the cpu, big to small is truncation
- #numeric is implemented as T_NUMCHAR for in, keeps asm jumptable clean
- $tin &= ~(T_FLAG_UNSIGNED|T_FLAG_NUMERIC);
- $tin--; #T_VOID doesn't exist as in param in XS
- #put index of param array slice in unused space for croaks, why not?
- $control .= "\x00" x 8 . pack('CCSSS', $tin, 0, 0, $i, $i+1);
- }
- _Align($control, 16); #align the whole PVX to 16 bytes for SSE moves
-
- #### keep track of the imported function
- if(defined $dll){
- $Libraries{$dll} = $hdll;
- $Procedures{$dll}++;
- }
- DEBUG "Object blessed!\n";
-
- my $ref = bless(\$control, $class);
- SetMagicSV($ref, $self);
- return $ref;
-}
-
-sub Import {
- my $closure = shift->new(@_)
- or return undef;
- my $procname = ${Win32::API::GetMagicSV($closure)}{procname};
- #dont allow "sub main:: {0;}"
- Win32::SetLastError(ERROR_INVALID_PARAMETER), return undef if $procname eq '';
- _ImportXS($closure, (caller)[0].'::'.$procname);
- return $closure;
-}
-
-#######################################################################
-# PRIVATE METHODS
-#
-sub DESTROY {
- my ($self) = GetMagicSV($_[0]);
-
- return if ! defined $self->{dllname};
- #### decrease this library's procedures reference count
- $Procedures{$self->{dllname}}--;
-
- #### once it reaches 0, free it
- if ($Procedures{$self->{dllname}} == 0) {
- DEBUG "Win32::API::DESTROY: Freeing library '$self->{dllname}'\n";
- Win32::API::FreeLibrary($Libraries{$self->{dllname}});
- delete($Libraries{$self->{dllname}});
- }
-}
-
-# Convert calling convention string (_cdecl|__stdcall)
-# to a C const. Unknown counts as __stdcall
-#
-sub calltype_to_num {
- my $type = shift;
-
- if (!$type || $type eq "__stdcall" || $type eq "WINAPI" || $type eq "NTAPI"
- || $type eq "CALLBACK" ) {
- return APICONTROL_CC_STD;
- }
- elsif ($type eq "_cdecl" || $type eq "__cdecl" || $type eq "WINAPIV") {
- return APICONTROL_CC_C;
- }
- else {
- warn "unknown calling convention: '$type'";
- return APICONTROL_CC_STD;
- }
-}
-
-
-sub type_to_num {
- die "wrong class" if shift ne "Win32::API";
- my $type = shift;
- my $out = shift;
- my ($num, $numeric);
- if(index($type, 'num', 0) == 0){
- substr($type, 0, length('num'), '');
- $numeric = 1;
- }
- else{
- $numeric = 0;
- }
-
- if ( $type eq 'N'
- or $type eq 'n'
- or $type eq 'l'
- or $type eq 'L'
- or ( PTRSIZE == 8 and $type eq 'Q' || $type eq 'q'))
- {
- $num = T_NUMBER;
- }
- elsif ($type eq 'P'
- or $type eq 'p')
- {
- $num = T_POINTER;
- }
- elsif ($type eq 'I'
- or $type eq 'i')
- {
- $num = T_INTEGER;
- }
- elsif ($type eq 'f'
- or $type eq 'F')
- {
- $num = T_FLOAT;
- }
- elsif ($type eq 'D'
- or $type eq 'd')
- {
- $num = T_DOUBLE;
- }
- elsif ($type eq 'c'
- or $type eq 'C')
- {
- $num = $numeric ? T_NUMCHAR : T_CHAR;
- }
- elsif (PTRSIZE == 4 and $type eq 'q' || $type eq 'Q')
- {
- $num = T_QUAD;
- }
- elsif($type eq '>'){
- die "Win32::API does not support pass by copy structs as function arguments";
- }
- else {
- $num = T_VOID; #'V' takes this branch, which is T_VOID in C
- }#not valid return types of the C func
- if(defined $out) {#b/B remains private/undocumented
- die "Win32::API invalid return type, structs and ".
- "callbacks as return types not supported"
- if($type =~ m/^s|S|t|T|b|B|k|K$/);
- }
- else {#in type
- if ($type eq 's' or $type eq 'S' or $type eq 't' or $type eq 'T')
- {
- $num = T_STRUCTURE;
- }
- elsif ($type eq 'b'
- or $type eq 'B')
- {
- $num = T_POINTERPOINTER;
- }
- elsif ($type eq 'k'
- or $type eq 'K')
- {
- $num = T_CODE;
- }
- }
- $num |= T_FLAG_NUMERIC if $numeric;
- return $num;
-}
-
-package Win32::API::More;
-
-use vars qw( @ISA );
-@ISA = qw ( Win32::API );
-sub type_to_num {
- die "wrong class" if shift ne "Win32::API::More";
- my $type = shift;
- my $out = shift;
- my ($num, $numeric);
- if(index($type, 'num', 0) == 0){
- substr($type, 0, length('num'), '');
- $numeric = 1;
- }
- else{
- $numeric = 0;
- }
-
- if ( $type eq 'N'
- or $type eq 'n'
- or $type eq 'l'
- or $type eq 'L'
- or ( PTRSIZE == 8 and $type eq 'Q' || $type eq 'q')
- or (! $out and # in XS short 'in's are interger/numbers code
- $type eq 'S'
- || $type eq 's'))
- {
- $num = Win32::API::T_NUMBER;
- if(defined $out && ($type eq 'N' || $type eq 'L'
- || $type eq 'S' || $type eq 'Q')){
- $num |= Win32::API::T_FLAG_UNSIGNED;
- }
- }
- elsif ($type eq 'P'
- or $type eq 'p')
- {
- $num = Win32::API::T_POINTER;
- }
- elsif ($type eq 'I'
- or $type eq 'i')
- {
- $num = Win32::API::T_INTEGER;
- if(defined $out && $type eq 'I'){
- $num |= Win32::API::T_FLAG_UNSIGNED;
- }
- }
- elsif ($type eq 'f'
- or $type eq 'F')
- {
- $num = Win32::API::T_FLOAT;
- }
- elsif ($type eq 'D'
- or $type eq 'd')
- {
- $num = Win32::API::T_DOUBLE;
- }
- elsif ($type eq 'c'
- or $type eq 'C')
- {
- $num = $numeric ? Win32::API::T_NUMCHAR : Win32::API::T_CHAR;
- if(defined $out && $type eq 'C'){
- $num |= Win32::API::T_FLAG_UNSIGNED;
- }
- }
- elsif (PTRSIZE == 4 and $type eq 'q' || $type eq 'Q')
- {
- $num = Win32::API::T_QUAD;
- if(defined $out && $type eq 'Q'){
- $num |= Win32::API::T_FLAG_UNSIGNED;
- }
- }
- elsif ($type eq 's') #4 is only used for out params
- {
- $num = Win32::API::T_SHORT;
- }
- elsif ($type eq 'S')
- {
- $num = Win32::API::T_SHORT | Win32::API::T_FLAG_UNSIGNED;
- }
- elsif($type eq '>'){
- die "Win32::API does not support pass by copy structs as function arguments";
- }
- else {
- $num = Win32::API::T_VOID; #'V' takes this branch, which is T_VOID in C
- } #not valid return types of the C func
- if(defined $out) {#b/B remains private/undocumented
- die "Win32::API invalid return type, structs and ".
- "callbacks as return types not supported"
- if($type =~ m/^t|T|b|B|k|K$/);
- }
- else {#in type
- if ( $type eq 't'
- or $type eq 'T')
- {
- $num = Win32::API::T_STRUCTURE;
- }
- elsif ($type eq 'b'
- or $type eq 'B')
- {
- $num = Win32::API::T_POINTERPOINTER;
- }
- elsif ($type eq 'k'
- or $type eq 'K')
- {
- $num = Win32::API::T_CODE;
- }
- }
- $num |= Win32::API::T_FLAG_NUMERIC if $numeric;
- return $num;
-}
-package Win32::API;
-
-sub parse_prototype {
- my ($class, $proto) = @_;
-
- my @in_params = ();
- my @in_types = (); #one day create a BNF-ish formal grammer parser here
- if ($proto =~ /^\s*((?:(?:un|)signed\s+|) #optional signedness
- \S+)(?:\s*(\*)\s*|\s+) #type and maybe a *
- (?:(\w+)\s+)? # maybe a calling convention
- (\S+)\s* #func name
- \(([^\)]*)\) #param list
- /x) {
- my $ret = $1.(defined($2)?$2:'');
- my $callconvention = $3;
- my $proc = $4;
- my $params = $5;
-
- $params =~ s/^\s+//;
- $params =~ s/\s+$//;
-
- DEBUG "(PM)parse_prototype: got PROC '%s'\n", $proc;
- DEBUG "(PM)parse_prototype: got PARAMS '%s'\n", $params;
-
- foreach my $param (split(/\s*,\s*/, $params)) {
- my ($type, $name);
- #match "in_t* _var" "in_t * _var" "in_t *_var" "in_t _var" "in_t*_var" supported
- #unsigned or signed or nothing as prefix supported
- # "in_t ** _var" and "const in_t* var" not supported
- if ($param =~ /((?:(?:un|)signed\s+|)\w+)(?:\s*(\*)\s*|\s+)(\w+)/) {
- ($type, $name) = ($1.(defined($2)? $2:''), $3);
- }
- {
- no warnings 'uninitialized';
- if($type eq '') {goto BADPROTO;} #something very wrong, bail out
- }
- my $packing = Win32::API::Type::packing($type);
- if (defined $packing && $packing ne '>') {
- if (Win32::API::Type::is_pointer($type)) {
- DEBUG "(PM)parse_prototype: IN='%s' PACKING='%s' API_TYPE=%d\n",
- $type,
- $packing,
- $class->type_to_num('P');
- push(@in_params, $class->type_to_num('P'));
- }
- else {
- DEBUG "(PM)parse_prototype: IN='%s' PACKING='%s' API_TYPE=%d\n",
- $type,
- $packing,
- $class->type_to_num(Win32::API::Type->packing($type, undef, 1));
- push(@in_params, $class->type_to_num(Win32::API::Type->packing($type, undef, 1)));
- }
- }
- elsif (Win32::API::Struct::is_known($type)) {
- DEBUG "(PM)parse_prototype: IN='%s' PACKING='%s' API_TYPE=%d\n",
- $type, 'T', Win32::API::More->type_to_num('T');
- push(@in_params, Win32::API::More->type_to_num('T'));
- }
- else {
- warn
- "Win32::API::parse_prototype: WARNING unknown parameter type '$type'";
- push(@in_params, $class->type_to_num('I'));
- }
- push(@in_types, $type);
-
- }
- DEBUG "parse_prototype: IN=[ @in_params ]\n";
-
-
- if (Win32::API::Type::is_known($ret)) {
- if (Win32::API::Type::is_pointer($ret)) {
- DEBUG "parse_prototype: OUT='%s' PACKING='%s' API_TYPE=%d\n",
- $ret,
- Win32::API::Type->packing($ret),
- $class->type_to_num('P');
- return ($proc, \@in_params, \@in_types, $class->type_to_num('P', 1),
- $ret, calltype_to_num($callconvention));
- }
- else {
- DEBUG "parse_prototype: OUT='%s' PACKING='%s' API_TYPE=%d\n",
- $ret,
- Win32::API::Type->packing($ret),
- $class->type_to_num(Win32::API::Type->packing($ret, undef, 1), 1);
- return (
- $proc, \@in_params, \@in_types,
- $class->type_to_num(Win32::API::Type->packing($ret, undef, 1), 1),
- $ret, calltype_to_num($callconvention)
- );
- }
- }
- else {
- warn
- "Win32::API::parse_prototype: WARNING unknown output parameter type '$ret'";
- return ($proc, \@in_params, \@in_types, $class->type_to_num('I', 1),
- $ret, calltype_to_num($callconvention));
- }
-
- }
- else {
- BADPROTO:
- warn "Win32::API::parse_prototype: bad prototype '$proto'";
- return undef;
- }
-}
-
-#
-# XXX hack, see the proper implementation in TODO
-# The point here is don't let fork children free the parent's DLLs.
-# CLONE runs on ::API and ::More, that's bad and causes a DLL leak, make sure
-# CLONE dups the DLL handles only once per CLONE
-# GetModuleHandleEx was not used since that is a WinXP and newer function, not Win2K.
-# GetModuleFileName was used to get full DLL pathname incase SxS/multiple DLLs
-# with same file name exist in the process. Even if the dll was loaded as a
-# relative path initially, later SxS can load a DLL with a different full path
-# yet same file name, and then LoadLibrary'ing the original relative path
-# might increase the refcount on the wrong DLL or return a different HMODULE
-sub CLONE {
- return if $_[0] ne "Win32::API";
-
- _my_cxt_clone();
- foreach( keys %Libraries){
- if($Libraries{$_} != Win32::API::LoadLibrary(Win32::API::GetModuleFileName($Libraries{$_}))){
- die "Win32::API::CLONE unable to clone DLL \"$Libraries{$_}\" Unicode Problem??";
- }
- }
-}
-
-1;
-
-__END__
-
-#######################################################################
-# DOCUMENTATION
-#
-
-=head1 NAME
-
-Win32::API - Perl Win32 API Import Facility
-
-=head1 SYNOPSIS
-
- #### Method 1: with prototype
-
- use Win32::API;
- $function = Win32::API::More->new(
- 'mydll', 'int sum_integers(int a, int b)'
- );
- #### $^E is non-Cygwin only
- die "Error: $^E" if ! $function;
- #### or on Cygwin and non-Cygwin
- die "Error: ".(Win32::FormatMessage(Win32::GetLastError())) if ! $function;
- ####
- $return = $function->Call(3, 2);
-
- #### Method 2: with prototype and your function pointer
-
- use Win32::API;
- $function = Win32::API::More->new(
- undef, 38123456, 'int name_ignored(int a, int b)'
- );
- die "Error: $^E" if ! $function; #$^E is non-Cygwin only
- $return = $function->Call(3, 2);
-
- #### Method 3: with parameter list
-
- use Win32::API;
- $function = Win32::API::More->new(
- 'mydll', 'sum_integers', 'II', 'I'
- );
- die "Error: $^E" if ! $function; #$^E is non-Cygwin only
- $return = $function->Call(3, 2);
-
- #### Method 4: with parameter list and your function pointer
-
- use Win32::API;
- $function = Win32::API::More->new(
- undef, 38123456, 'name_ignored', 'II', 'I'
- );
- die "Error: $^E" if ! $function; #$^E is non-Cygwin only
- $return = $function->Call(3, 2);
-
- #### Method 5: with Import (slightly faster than ->Call)
-
- use Win32::API;
- $function = Win32::API::More->Import(
- 'mydll', 'int sum_integers(int a, int b)'
- );
- die "Error: $^E" if ! $function; #$^E is non-Cygwin only
- $return = sum_integers(3, 2);
-
-
-=for LATER-UNIMPLEMENTED
- #### or
- use Win32::API mydll => 'int sum_integers(int a, int b)';
- $return = sum_integers(3, 2);
-
-
-=head1 ABSTRACT
-
-With this module you can import and call arbitrary functions
-from Win32's Dynamic Link Libraries (DLL) or arbitrary functions for
-which you have a pointer (MS COM, etc), without having
-to write an XS extension. Note, however, that this module
-can't do everything. In fact, parameters input and output is
-limited to simpler cases.
-
-A regular B<XS> extension is always safer and faster anyway.
-
-The current version of Win32::API is always available at your
-nearest CPAN mirror:
-
- http://search.cpan.org/dist/Win32-API/
-
-A short example of how you can use this module (it just gets the PID of
-the current process, eg. same as Perl's internal C<$$>):
-
- use Win32::API;
- Win32::API::More->Import("kernel32", "int GetCurrentProcessId()");
- $PID = GetCurrentProcessId();
-
-Starting with 0.69. Win32::API initiated objects are deprecated due to numerous
-bugs and improvements, use Win32::API::More now. The use statement remains
-as C<use Win32::API;>.
-
-The possibilities are nearly infinite (but not all are good :-).
-Enjoy it.
-
-=head1 DESCRIPTION
-
-To use this module put the following line at the beginning of your script:
-
- use Win32::API;
-
-You can now use the C<new()> function of the Win32::API module to create a
-new Win32::API::More object (see L<IMPORTING A FUNCTION>) and then invoke the
-C<Call()> method on this object to perform a call to the imported API
-(see L<CALLING AN IMPORTED FUNCTION>).
-
-Starting from version 0.40, you can also avoid creating a Win32::API::More object
-and instead automatically define a Perl sub with the same name of the API
-function you're importing. This 2nd way using C<Import> to create a sub instead
-of an object is slightly faster than doing C<-E<gt>Call()>. The details of the
-API definitions are the same, just the method name is different:
-
- my $GetCurrentProcessId = Win32::API::More->new(
- "kernel32", "int GetCurrentProcessId()"
- );
- die "Failed to import GetCurrentProcessId" if !$GetCurrentProcessId;
- $GetCurrentProcessId->UseMI64(1);
- my $PID = $GetCurrentProcessId->Call();
-
- #### vs.
-
- my $UnusedGCPI = Win32::API::More->Import("kernel32", "int GetCurrentProcessId()");
- die "Failed to import GetCurrentProcessId" if !$UnusedGCPI;
- $UnusedGCPI->UseMI64(1);
- $PID = GetCurrentProcessId();
-
-Note that C<Import> returns the Win32::API obj on success and false on failure
-(in which case you can check the content of C<$^E>). This allows some settings
-to be set through method calls that can't be specified as a parameter to Import,
-yet still have the convience of not writing C<-E<gt>Call()>. The Win32::API obj
-does not need to be assigned to a scalar. C<unless(Win32::API::More-E<gt>Import>
-is fine. Prior to v0.76_02, C<Import> returned returned 1 on success and 0 on
-failure.
-
-=head2 IMPORTING A FUNCTION
-
-You can import a function from a 32 bit Dynamic Link Library (DLL) file with
-the C<new()> function or, starting in 0.69, supply your own function pointer.
-This will create a Perl object that contains the reference to that function,
-which you can later C<Call()>.
-
-What you need to know is the prototype of the function you're going to import
-(eg. the definition of the function expressed in C syntax).
-
-Starting from version 0.40, there are 2 different approaches for this step:
-(the preferred) one uses the prototype directly, while the other (now deprecated)
-one uses Win32::API's internal representation for parameters.
-
-=head2 IMPORTING A FUNCTION BY PROTOTYPE
-
-You need to pass 2 or 3 parameters:
-
-=over 4
-
-=item 1.
-
-The name of the library from which you want to import the function. If the
-name is undef, you are requesting a object created from a function pointer,
-and must supply item 2.
-
-=item 2.
-
-This parameter is optional, most people should skip it, skip does not mean
-supplying undef. Supply a function pointer in the format of number 1234, not
-string "\x01\x02\x03\x04". Undef will be returned if the pointer is not
-readable, L<Win32::GetLastError|Win32/Win32::GetLastError()>/L<perlvar/"$^E">
-will be C<ERROR_NOACCESS>.
-
-=item 3.
-
-The C prototype of the function. If you are using a function pointer, the name
-of the function should be something "friendly" to you and no attempt is made
-to retrieve such a name from any DLL's export table. This name for a function
-pointer is also used for Import().
-
-=back
-
-When calling a function imported with a prototype, if you pass an
-undefined Perl scalar to one of its arguments, it will be
-automatically turned into a C C<NULL> value.
-
-See L<Win32::API::Type> for a list of the known parameter types and
-L<Win32::API::Struct> for information on how to define a structure.
-
-If a prototype type is exactly C<signed char> or C<unsigned char> for an
-"in" parameter or the return parameter, and for "in" parameters only
-C<signed char *> or C<unsigned char *> the parameters will be treated as a
-number, C<0x01>, not C<"\x01">. "UCHAR" is not "unsigned char". Change the
-C prototype if you want numeric handling for your chars.
-
-=head2 IMPORTING A FUNCTION WITH A PARAMETER LIST
-
-You need to pass at minimum 4 parameters.
-
-=over 4
-
-=item 1.
-The name of the library from which you want to import the function.
-
-=item 2.
-This parameter is optional, most people should skip it, skip does not mean
-supplying undef. Supply a function pointer in the format of number C<1234>,
-not string C<"\x01\x02\x03\x04">. Undef will be returned if the pointer is not
-readable, L<Win32::GetLastError|Win32/Win32::GetLastError()>/L<perlvar/"$^E">
-will be C<ERROR_NOACCESS>.
-
-=item 3.
-The name of the function (as exported by the library) or for function pointers
-a name that is "friendly" to you. This name for a function pointer is also used
-for Import(). No attempt is made to retrieve such a name from any DLL's export
-table in the 2nd case.
-
-=item 4.
-The number and types of the arguments the function expects as input.
-
-=item 5.
-The type of the value returned by the function.
-
-=item 6.
-And optionally you can specify the calling convention, this defaults to
-'__stdcall', alternatively you can specify '_cdecl' or '__cdecl' (API > v0.68)
-or (API > v0.70_02) 'WINAPI', 'NTAPI', 'CALLBACK' (__stdcall), 'WINAPIV' (__cdecl) .
-False is __stdcall. Vararg functions are always cdecl. MS DLLs are typically
-stdcall. Non-MS DLLs are typically cdecl. If API > v0.75, mixing up the calling
-convention on 32 bits is detected and Perl will C<croak> an error message and
-C<die>.
-
-=back
-
-To better explain their meaning, let's suppose that we
-want to import and call the Win32 API C<GetTempPath()>.
-This function is defined in C as:
-
- DWORD WINAPI GetTempPathA( DWORD nBufferLength, LPSTR lpBuffer );
-
-This is documented in the B<Win32 SDK Reference>; you can look
-for it on the Microsoft's WWW site, or in your C compiler's
-documentation, if you own one.
-
-=over 4
-
-=item B<1.>
-
-The first parameter is the name of the library file that
-exports this function; our function resides in the F<KERNEL32.DLL>
-system file.
-
-When specifying this name as parameter, the F<.DLL> extension
-is implicit, and if no path is given, the file is searched through
-a couple of directories, including:
-
-=over 4
-
-=item 1. The directory from which the application loaded.
-
-=item 2. The current directory.
-
-=item 3. The Windows system directory (eg. c:\windows\system or system32).
-
-=item 4. The Windows directory (eg. c:\windows).
-
-=item 5. The directories that are listed in the PATH environment variable.
-
-=back
-
-You may, but don't have to write F<C:\windows\system\kernel32.dll>; or
-F<kernel32.dll>, only F<kernel32> is enough:
-
- $GetTempPath = new Win32::API::More('kernel32', ...
-
-=item B<2.>
-
-Since this function is from a DLL, skip the 2nd parameter. Skip does not
-mean supplying undef.
-
-=item B<3.>
-
-Now for the real second parameter: the name of the function.
-It must be written exactly as it is exported
-by the library (case is significant here).
-If you are using Windows 95 or NT 4.0, you can use the B<Quick View>
-command on the DLL file to see the function it exports.
-Remember that you can only import functions from 32 or 64 bit DLLs:
-in Quick View, the file's characteristics should report
-somewhere "32 bit word machine"; as a rule of thumb,
-when you see that all the exported functions are in upper case,
-the DLL is a 16 bit one and you can't use it. You also can not load a 32 bit
-DLL into a 64 bit Perl, or vice versa. If you try, C<new>/C<Import> will fail
-and C<$^E> will be C<ERROR_BAD_EXE_FORMAT>.
-If their capitalization looks correct, then it's probably a 32 bit
-DLL. If you have Platform SDK or Visual Studio, you can use the Dumpbin
-tool. Call it as C<dumpbin /exports name_of_dll.dll> on the command line.
-If you have Mingw GCC, use objdump as
-C<objdump -x name_of_dll.dll E<gt> dlldump.txt> and search for the word exports
-in the very long output.
-
-Also note that many Win32 APIs are exported twice, with the addition of
-a final B<A> or B<W> to their name, for - respectively - the ASCII
-and the Unicode version.
-When a function name is not found, Win32::API will actually append
-an B<A> to the name and try again; if the extension is built on a
-Unicode system, then it will try with the B<W> instead.
-So our function name will be:
-
- $GetTempPath = new Win32::API::More('kernel32', 'GetTempPath', ...
-
-In our case C<GetTempPath> is really loaded as C<GetTempPathA>.
-
-=item B<4.>
-
-The third parameter, the input parameter list, specifies how many
-arguments the function wants, and their types. It can be passed as
-a single string, in which each character represents one parameter,
-or as a list reference. The following forms are valid:
-
- "abcd"
- [a, b, c, d]
- \@LIST
-
-But those are not:
-
- (a, b, c, d)
- @LIST
-
-The number of characters, or elements in the list, specifies the number
-of parameters, and each character or element specifies the type of an
-argument; allowed types are:
-
-=over 4
-
-=item C<I>:
-value is an unsigned integer (unsigned int)
-
-=item C<i>:
-value is an signed integer (signed int or int)
-
-=item C<N>:
-value is a unsigned pointer sized number (unsigned long)
-
-=item C<n>:
-value is a signed pointer sized number (signed long or long)
-
-=item C<Q>:
-value is a unsigned 64 bit integer number (unsigned long long, unsigned __int64)
-See next item for details.
-
-=item C<q>:
-value is a signed 64 bit integer number (long long, __int64)
-If your perl has 'Q'/'q' quads support for L<perlfunc/pack> then Win32::API's 'q'
-is a normal perl numeric scalar. All 64 bit Perls have quad support. Almost no
-32 bit Perls have quad support. On 32 bit Perls, without quad support,
-Win32::API's 'q'/'Q' letter is a packed 8 byte string. So C<0x8000000050000000>
-from a perl with native Quad support would be written as
-C<"\x00\x00\x00\x50\x00\x00\x00\x80"> on a 32 bit Perl without Quad support.
-To improve the use of 64 bit integers with Win32::API on a 32 bit Perl without
-Quad support, there is a per Win32::API::* object setting called L</UseMI64>
-that causes all quads to be accepted as, and returned as L<Math::Int64> objects.
-For "in" params in Win32::API and Win32::API::More and "out" in
-Win32::API::Callback only, if the argument is a reference, it will automatically
-be treated as a Math::Int64 object without having to previously call
-L</UseMI64>.
-
-=item C<F>:
-value is a single precision (4 bytes) floating point number (float)
-
-=item C<D>:
-value is a double precision (8 bytes) floating point number (double)
-
-=item C<S>:
-value is a unsigned short (unsigned short)
-
-=item C<s>:
-value is a signed short (signed short or short)
-
-=item C<C>:
-value is a char (char), pass as C<"a">, not C<97>, C<"abc"> will truncate to C<"a">
-
-=item C<P>:
-value is a pointer (to a string, structure, etc...)
-padding out the buffer string is required, buffer overflow detection is
-performed. Pack and unpack the data yourself. If P is a return type, only
-null terminated strings or NULL pointer are supported. If P is an in type, NULL
-is integer C<0>. C<undef>, C<"0">, and C<""+0> are not integer C<0>, C<"0"+0> is
-integer C<0>.
-
-It is suggested to
-not use P as a return type and instead use N and read the memory yourself, and
-free the pointer if applicable. This pointer is effectively undefined after the
-C function returns control to Perl. The C function may not hold onto it after
-the C function returns control. There are exceptions where the pointer will
-remain valid after the C function returns control, but tread at your own risk,
-and at your knowledge of Perl interpreter's C internals.
-
-=item C<T>:
-value is a Win32::API::Struct object, in parameter only, pass by reference
-(pointer) only, pass by copy not implemented, see other sections for more
-
-=item C<K>:
-value is a Win32::API::Callback object, in parameter only, (see L<Win32::API::Callback>)
-
-=item C<V>:
-no value, no parameters, stands for C<void>, may not be combined with any other
-letters, equivalent to a ""
-
-=back
-
-For beginners, just skip this paragraph.
-Note, all parameter types are little endian. This is probably what you want
-unless the documentation for the C function you are calling explicitly says
-the parameters must be big endian. If there is no documentation for your C
-function or no mention of endianess in the documentation, this doesn't apply
-to you and skip the rest of this paragraph. There is no inherent support
-for big endian parameters. Perl's scalar numbers model is that numeric
-scalars are effectively opaque and their machine representation is
-irrelevant. On Windows Perl, scalar numbers are little endian
-internally. So C<$number = 5; print "$number";> will put 5 on the screen.
-C<$number> given to Win32::API will pass little endian integer 5 to the C
-function call. This is almost surly what you want. If you really must pass
-a big endian integer, do C<$number = unpack('L', pack('N', 5));>, then
-C<print "$number";> will put 83886080 on the screen, but this is big endian 5,
-and passing 83886080 to C<-E<gt>Call()> will make sure that
-the C function is getting big endian 5. See L<perlpacktut> for more.
-
-Our function needs two parameters: a number (C<DWORD>) and a pointer to a
-string (C<LPSTR>):
-
- $GetTempPath = new Win32::API('kernel32', 'GetTempPath', 'NP', ...
-
-=item B<4.>
-
-The fourth is the type of the value returned by the
-function. It can be one of the types seen above, plus another type named B<V>
-(for C<void>), used for functions that do not return a value.
-In our example the value returned by GetTempPath() is a C<DWORD>, which is a
-typedef for unsigned long, so our return type will be B<N>:
-
- $GetTempPath = new Win32::API::More('kernel32', 'GetTempPath', 'NP', 'N');
-
-Now the line is complete, and the GetTempPath() API is ready to be used
-in Perl. Before calling it, you should test that $GetTempPath is
-L<perlfunc/defined>, otherwise errors such as the function or the library could
-not be loaded or the C prototype was unparsable happened, and no object was
-created. If the return value is undefined, to get detailed error status, use
-L<perlvar/"$^E"> or L<Win32::GetLastError|Win32/Win32::GetLastError()>. C<$^E>
-is slower than C<Win32::GetLastError> and useless on Cygwin, but C<$^E> in
-string context provides a readable description of the error. In numeric context,
-C<$^E> is equivelent to C<Win32::GetLastError>. C<Win32::GetLastError> always
-returns an integer error code. You may use
-L<Win32::FormatMessage|Win32/Win32::FormatMessage()> to convert an integer error
-code to a readable description on Cygwin and Native builds of Perl.
-
-Our definition, with error checking added, should then look like this:
-
- $GetTempPath = new Win32::API::More('kernel32', 'GetTempPath', 'NP', 'N');
- if(not defined $GetTempPath) {
- die "Can't import API GetTempPath: $^E\n";
- }
-
-=back
-
-=head2 CALLING AN IMPORTED FUNCTION
-
-To effectively make a call to an imported function you must use the
-Call() method on the Win32::API object you created.
-Continuing with the example from the previous paragraph,
-the GetTempPath() API can be called using the method:
-
- $GetTempPath->Call(...
-
-Of course, parameters have to be passed as defined in the import phase.
-In particular, if the number of parameters does not match (in the example,
-if GetTempPath() is called with more or less than two parameters),
-Perl will C<croak> an error message and C<die>.
-
-The two parameters needed here are the length of the buffer
-that will hold the returned temporary path, and a pointer to the
-buffer itself.
-For numerical parameters except for char, you can use either a constant expression
-or a variable, it will be numified similar to the expression C<($var+0)>.
-For pointers, also note that B<memory must be allocated before calling the function>,
-just like in C.
-For example, to pass a buffer of 80 characters to GetTempPath(),
-it must be initialized before with:
-
- $lpBuffer = " " x 80;
-
-This allocates a string of 80 characters. If you don't do so, you'll
-probably get a fatal buffer overflow error starting in 0.69.
-The call should therefore include:
-
- $lpBuffer = " " x 80;
- $GetTempPath->Call(80, $lpBuffer);
-
-And the result will be stored in the $lpBuffer variable.
-Note that you never need to pass a reference to the variable
-(eg. you B<don't need> C<\$lpBuffer>), even if its value will be set
-by the function.
-
-A little problem here is that Perl does not trim the variable,
-so $lpBuffer will still contain 80 characters in return; the exceeding
-characters will be spaces, because we said C<" " x 80>.
-
-In this case we're lucky enough, because the value returned by
-the GetTempPath() function is the length of the string, so to get
-the actual temporary path we can write:
-
- $lpBuffer = " " x 80;
- $return = $GetTempPath->Call(80, $lpBuffer);
- $TempPath = substr($lpBuffer, 0, $return);
-
-If you don't know the length of the string, you can usually
-cut it at the C<\0> (ASCII zero) character, which is the string
-delimiter in C:
-
- $TempPath = ((split(/\0/, $lpBuffer))[0];
- # or
- $lpBuffer =~ s/\0.*$//;
-
-=head2 USING STRUCTURES
-
-Starting from version 0.40, Win32::API comes with a support package
-named Win32::API::Struct. The package is loaded automatically with
-Win32::API, so you don't need to use it explicitly.
-
-With this module you can conveniently define structures and use
-them as parameters to Win32::API functions. A short example follows:
-
-
- # the 'POINT' structure is defined in C as:
- # typedef struct {
- # LONG x;
- # LONG y;
- # } POINT;
-
-
- #### define the structure
- Win32::API::Struct->typedef( POINT => qw{
- LONG x;
- LONG y;
- });
-
- #### import an API that uses this structure
- Win32::API->Import('user32', 'BOOL GetCursorPos(LPPOINT lpPoint)');
-
- #### create a 'POINT' object
- my $pt = Win32::API::Struct->new('POINT');
-
- #### call the function passing our structure object
- GetCursorPos($pt);
-
- #### and now, access its members
- print "The cursor is at: $pt->{x}, $pt->{y}\n";
-
-Note that this works only when the function wants a
-B<pointer to a structure>, not a "pass by copy" structure. As you can see, our
-structure is named 'POINT', but the API used 'LPPOINT'. Some heuristics are
-done to validate the argument's type vs the parameter's type if the function
-has a C prototype definition (not letter definition). First, if the parameter
-type starts with the LP prefix, the LP prefix is stripped, then compared to
-the argument's type. If that fails, the Win32::API::Type database
-(see L<Win32::API::Type/typedef>)
-will be used to convert the parameter type to the base type. If that fails,
-the parameter type will be stripped of a trailing whitespace then a '*', and
-then checked against the base type. L<Dies|perlfunc/die> if the parameter and
-argument types do not match after 3 attempts.
-
-For more information, see also L<Win32::API::Struct>.
-
-If you don't want (or can't) use the C<Win32::API::Struct> facility,
-you can still use the low-level approach to use structures:
-
-=over 4
-
-=item 1.
-
-you have to L<pack()|perlfunc/pack> the required elements in a variable:
-
- $lpPoint = pack('ll', 0, 0); # store two LONGs
-
-=item 2.
-
-to access the values stored in a structure, L<unpack()|perlfunc/unpack> it as required:
-
- ($x, $y) = unpack(';;', $lpPoint); # get the actual values
-
-=back
-
-The rest is left as an exercise to the reader...
-
-=head2 EXPORTED FUNCTIONS
-
-=head3 ReadMemory
-
- $copy_of_memblock = ReadMemory($SourcePtr, $length);
-
-Reads the source pointer for C<$length> number of bytes. Returns a copy of
-the memory block in a scalar. No readability checking is done on C<$SourcePtr>.
-C<$SourcePtr>'s format is 123456, not C<"\x01\x02\x03\x04">.
-
-=head3 WriteMemory
-
- WriteMemory($DestPtr, $sourceScalar, $length);
-
-Copies the string contents of the C<$sourceScalar> scalar to C<$DestPtr> for
-C<$length> bytes. $length must be less than or equal to the length of
-C<$sourceScalar>, otherwise the function croaks. No readability checking is
-done on C<$DestPtr>. C<$DestPtr>'s format is 123456, not
-C<"\x01\x02\x03\x04">. Returns nothing.
-
-=head3 MoveMemory
-
- MoveMemory($destPtr, $sourcePtr, $length);
-
-Copies a block of memory from one location to another. The source and
-destination blocks may overlap. All pointers are in the format of 123456,
-not C<"\x01\x02\x03\x04">. No readability checking is done. Returns nothing.
-
-=head3 IsBadReadPtr
-
- if(IsBadReadPtr($ptr, $length)) {die "bad ptr";}
-
-Probes a memory block for C<$length> bytes for readability. Returns true if
-access violation occurs, otherwise false is returned. This function is useful
-to avoid dereferencing pointers which will crash the perl process. This function
-has many limitations, including not detecting uninitialized memory, not
-detecting freed memory, and not detecting gibberish. It can not tell whether a
-function pointer is valid x86 machine code. Ideally, you should never use it,
-or remove it once your code is stable. C<$ptr> is in the format of 123456,
-not C<"\x01\x02\x03\x04">. See MS's documentation for a lot more
-on this function of the same name.
-
-=head3 SafeReadWideCString
-
- $source = Encode::encode("UTF-16LE","Just another perl h\x{00E2}cker\x00");
- $string = SafeReadWideCString(unpack('J',pack('p', $source)));
- die "impossible" if $source ne "Just another perl h\x{00E2}cker";
-
-Safely (SEH aware) reads a utf-16 wide null terminated string (the first and
-only parameter), into a scalar. Returns undef, if an access violation happens
-or null pointer (same thing). The string pointer is in the format of 123456,
-not C<"\x01\x02\x03\x04">. The returned scalar will be UTF8 marked if the string
-can not be represented in the system's ANSI codepage. Conversion is done with
-WideCharToMultiByte. Returns a 0 length scalar string if WideCharToMultiByte fails.
-This function was created because L<pack's|perlfunc/pack> p letter won't read UTF16
-and L</ReadMemory> and L</IsBadReadPtr> require an explicit length.
-
-=head2 CONSTRUCTORS
-
-=head3 new
-
- $obj = Win32::API::More->new([$dllname | (undef , $funcptr)], [$c_proto | ($in, $out [, $calling_convention])]);
-
-See L</DESCRIPTION>.
-
-=head3 Import
- $obj = Win32::API::More->Import([$dllname | (undef , $funcptr)], [$c_proto | ($in, $out [, $calling_convention])]);
-
-See L</DESCRIPTION>.
-
-=head2 METHODS
-
-=head3 Call
-
-The main method of a Win32::API object. Documented elsewhere in this document.
-
-=head3 UseMI64
-
- $bool = $APIObj->UseMI64();
- $oldbool = $APIObj->UseMI64($newbool);
-
-Turns on Quads as L<Math::Int64> objects support for a particular object
-instance. You must call L<perlfunc/use>/L<perlfunc/require> on Math::Int64
-before calling UseMI64. Win32::API does not C<use> Math::Int64 for you.
-Works on Win32::API and Win32::API::Callback objects. This method
-does not exist if your Perl natively supports Quads (64 bit Perl for example).
-Takes 1 optional parameter, which is a true or false value to use or don't use
-Math::Int64, returns the old setting, which is a true or false value. If called
-without any parameters, returns current setting, which is a true or false value,
-without setting the option. As discussed in L</q>, if you are not using
-Math::Int64 you must supply/will receive 8 byte scalar strings for quads.
-For "in" params in Win32::API and Win32::API::More and "out" in
-Win32::API::Callback only, if the argument is a reference, it will automatically
-be treated as a Math::Int64 object without having to previously call this
-function.
-
-=head2 VERBOSE DEBUGGING
-
-If using C<Win32::GetLastError> and C<$^E> does not reveal the problem with your
-use of Win32::API, you may turn on Win32::API's very verbose debugging mode as
-follows
-
- BEGIN {
- $Win32::API::DEBUG = 1;
- }
- use Win32::API;
- $function = Win32::API::More->new(
- 'mydll', 'int sum_integers(int a, int b)'
- );
-
-=head1 HISTORY
-
-=over 4
-
-=item UseMI64 API change
-
-Starting in 0.71, UseMI64 on a set returns old value, not previously
-new value.
-
-=item fork safe
-
-Starting in 0.71, a Win32::API object can go through a fork and work
-correctly in the child and parent psuedo-processes. Previously when either
-psuedo-processes exited, the DLL would be unloaded and the other
-psuedo-processes would crash if a Call() was done on the object.
-
-=item return value signedness
-
-Prior to 0.69, for numeric integer types, the return scalar was always signed.
-Unsigned-ness was ignored.
-
-=item shorts
-
-Prior to 0.69, shorts were not supported. 'S' meant a sturct. To fix this
-Win32::API::More class was created for 0.69. 'S'/'s' now means short, per pack's
-letters. Struct has been moved to letter 'T'. Win32::API will continue to exist
-for legacy code.
-
-=item float return types
-
-Prior to 0.69, if a function had a return type of float, it was silently
-not called.
-
-=item buffer overflow protection
-
-Introduced in 0.69. If disabling is required, which is highly
-B<not recommended>, set an environmental variable called
-WIN32_API_SORRY_I_WAS_AN_IDIOT to 1.
-
-=item automatic un/pack
-
-Starting with 0.69, when using Win32::API::More, there is automatic un/packing
-of pointers to numbers-ish things for in parameters when using the C
-prototype interface.
-
-=item Quads on 32 bit
-
-Added in 0.70.
-
-=item __stdcall vs __cdecl checking on 32 bits
-
-Added in 0.76_01
-
-=item Import returns an api obj on success, undef on failure, instead of 1 or 0
-
-Added in 0.76_02
-
-=item checking C<$!> for C<new>/C<Import> failure is broken and deprecated
-
-Starting in 0.76_06, due to many bugs with C<new> and C<Import> not setting
-L<perlvar/$!> or Win32 and C error codes overlapping and Win32 error codes being
-stringified as different C error codes, checking C<$!> is deprecated and the
-existing, partial setting of C<$!>, maybe removed in the future. Only check
-C<Win32::GetLastError()> or C<$^E> to find out why the call failed.
-
-=back
-
-See the C<Changes> file for more details, many of which not mentioned here.
-
-=head1 BUGS AND LIMITATIONS
-
-=over 4
-
-=item E<nbsp> Unicode DLL paths
-
-Untested.
-
-=item E<nbsp> ithreads
-
-Minimally tested.
-
-=item E<nbsp> C functions getting utf8 scalars vs byte scalars
-
-Untested and undefined.
-
-=back
-
-=head1 SEE ALSO
-
-L<Math::Int64>
-
-L<Win32::API::Struct>
-
-L<Win32::API::Type>
-
-L<Win32::API::Callback>
-
-L<Win32::API::Callback::IATPatch>
-
-L<http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/function-calling-conventions.html>
-
-=head1 AUTHOR
-
-Aldo Calpini ( I<dada@perl.it> ).
-
-=head1 MAINTAINER
-
-Cosimo Streppone ( I<cosimo@cpan.org> )
-
-=head1 MAJOR CONTRIBUTOR
-
-Daniel Dragan ( I<bulkdd@cpan.org> )
-
-=head1 LICENSE
-
-To finally clarify this, C<Win32::API> is OSI-approved free software;
-you can redistribute it and/or modify it under the same terms as Perl
-itself.
-
-See L<http://dev.perl.org/licenses/artistic.html>
-
-=head1 CREDITS
-
-All the credits go to Andrea Frosini for the neat assembler trick
-that makes this thing work. I've also used some work by Dave Roth
-for the prototyping stuff. A big thank you also to Gurusamy Sarathy
-for his invaluable help in XS development, and to all the Perl
-community for being what it is.
-
-Cosimo also wants to personally thank everyone that contributed
-to Win32::API with complaints, emails, patches, RT bug reports
-and so on.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/Win32/API/Callback.pm b/Master/tlpkg/tlperl/lib/Win32/API/Callback.pm
deleted file mode 100644
index 41b7cc9d6b7..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/API/Callback.pm
+++ /dev/null
@@ -1,589 +0,0 @@
-# See the bottom of this file for the POD documentation. Search for the
-# string '=head'.
-
-#######################################################################
-#
-# Win32::API::Callback - Perl Win32 API Import Facility
-#
-# Author: Aldo Calpini <dada@perl.it>
-# Author: Daniel Dragan <bulkdd@cpan.org>
-# Maintainer: Cosimo Streppone <cosimo@cpan.org>
-#
-#######################################################################
-
-package Win32::API::Callback;
-use strict;
-use warnings;
-use vars qw( $VERSION @ISA $Stage2FuncPtrPkd );
-
-$VERSION = '0.80';
-
-
-require Exporter; # to export the constants to the main:: space
-require DynaLoader; # to dynuhlode the module.
-@ISA = qw( Exporter DynaLoader );
-#use Data::Dumper;
-
-sub DEBUG {
- if ($WIN32::API::DEBUG) {
- printf @_ if @_ or return 1;
- }
- else {
- return 0;
- }
-}
-
-use Win32::API qw ( WriteMemory ) ;
-use Win32::API::Type;
-use Config;
-#use Win32::API::Struct; #not implemented
-
-
-BEGIN {
- #there is supposed to be 64 bit IVs on 32 bit perl compatibility here
- #but it is untested
- #Win64 added in 5.7.3
- eval "sub IVSIZE () { ".length(pack($] >= 5.007003 ? 'J' : 'I' ,0))." }";
- #what kind of stack processing/calling convention/machine code we needed
- eval "sub ISX64 () { ".(Win32::API::PTRSIZE() == 8 ? 1 : 0)." }";
- eval 'sub OPV () {'.$].'}';
- sub OPV();
- sub CONTEXT_XMM0();
- sub CONTEXT_RAX();
- *IsBadStringPtr = *Win32::API::IsBadStringPtr;
- sub PTRSIZE ();
- *PTRSIZE = *Win32::API::PTRSIZE;
- sub PTRLET ();
- *PTRLET = *Win32::API::Type::pointer_pack_type;
- if(OPV <= 5.008000){ #don't have unpackstring in C
- eval('sub _CallUnpack {return unpack($_[0], $_[1]);}');
- }
-}
-#######################################################################
-# dynamically load in the API extension module.
-#
-bootstrap Win32::API::Callback;
-
-#######################################################################
-# PUBLIC METHODS
-#
-sub new {
- my ($class, $proc, $in, $out, $callconvention) = @_;
- my $self = bless {}, $class; #about croak/die safety, can safely bless here,
- #a ::Callback has no DESTROY, it has no resources to release, there is a HeapBlock obj
- #stored in the ::Callback hash, but the HeapBlock destroys on its own
- # printf "(PM)Callback::new: got proc='%s', in='%s', out='%s'\n", $proc, $in, $out;
-
- $self->{intypes} = []; #XS requires this, do not remove
- if (ref($in) eq 'ARRAY') {
- foreach (@$in) {
- push(@{$self->{intypes}}, $_);
- }
- }
- else {
- my @in = split '', $in;
- foreach (@in) {
- push(@{$self->{intypes}}, $_);
- }
- }
- $self->{inbytes} = 0;
- foreach(@{$self->{intypes}}){ #calc how long the c stack is
- if($_ eq 'Q' or $_ eq 'q' or $_ eq 'D' or $_ eq 'd'){
- $self->{inbytes} += 8; #always 8
- }
- else{
- $self->{inbytes} += PTRSIZE; #4 or 8
- }
- }
- $self->{outtype} = $out;
- $self->{out} = Win32::API->type_to_num($out);
- $self->{sub} = $proc;
- $self->{cdecl} = Win32::API::calltype_to_num($callconvention);
-
- DEBUG "(PM)Callback::new: calling CallbackCreate($self)...\n";
- my $hproc = MakeCB($self);
-
- DEBUG "(PM)Callback::new: hproc=$hproc\n";
-
- $self->{code} = $hproc;
-
- #### cast the spell
- return $self;
-}
-
-sub MakeStruct {
- my ($self, $n, $addr) = @_;
- DEBUG "(PM)Win32::API::Callback::MakeStruct: got self='$self'\n";
- my $struct = Win32::API::Struct->new($self->{intypes}->[$n]);
- $struct->FromMemory($addr);
- return $struct;
-}
-
-#this was rewritten in XS, and is broken b/c it doesn't work on 32bit Perl with Quads
-#sub MakeParamArr { #on x64, never do "$i++; $packedparam .= $arr->[$i];"
-# #on x86, structs and over word size params appears on the stack,
-# #on x64 anything over the size of a "word" is passed by pointer
-# #nothing takes more than 8 bytes per parameter on x64
-# #there is no way to formally specify a pass by copy struct in ::Callback
-# #this only matters on x86, a work around is a bunch of N/I parameters,
-# #repack them as Js, then concat them, and you have the original pass by copy
-# #x86 struct
-# my ($self, $arr) = @_;
-# my ($i, @pass_arr) = (0);
-# for(@{$self->{intypes}}){ #elements of intypes are not 1 to 1 with stack params
-# my ($typeletter, $packedparam, $finalParam, $unpackletter) = ($_, $arr->[$i]);
-#
-# #structs don't work, this is broken code from old version
-# #$self->{intypes} is letters types not C prototype params
-# #C prototype support would have to exist for MakeStruct to work
-# if( $typeletter eq 'S' || $typeletter eq 's'){
-# die "Win32::API::Callback::MakeParamArr type letter \"S\" and struct support not implemented";
-# #push(@pass_arr, MakeStruct($self, $i, $packedparam));
-# }elsif($typeletter eq 'I'){
-# $unpackletter = 'I', goto UNPACK;
-# }elsif($typeletter eq 'i'){
-# $unpackletter = 'i', goto UNPACK;
-# }elsif($typeletter eq 'f' || $typeletter eq 'F'){
-# $unpackletter = 'f', goto UNPACK;
-# }
-# elsif($typeletter eq 'd' || $typeletter eq 'D'){
-# if(IVSIZE == 4){ #need more data, 32 bit machine
-# $packedparam .= $arr->[++$i];
-# }
-# $unpackletter = 'd', goto UNPACK;
-# }
-# elsif($typeletter eq 'N' || $typeletter eq 'L' #on x64, J is 8 bytes
-# || (IVSIZE == 8 ? $typeletter eq 'Q': 0)){
-# $unpackletter = 'J', goto UNPACK;
-# }elsif($typeletter eq 'n' || $typeletter eq 'l'
-# || (IVSIZE == 8 ? $typeletter eq 'q': 0)){
-# $unpackletter = 'j', goto UNPACK;
-# }elsif(IVSIZE == 4 && ($typeletter eq 'q' || $typeletter eq 'Q')){
-# #need more data, 32 bit machine
-# $finalParam = $packedparam . $arr->[++$i];
-# }elsif($typeletter eq 'p' || $typeletter eq 'P'){
-# if(!IsBadStringPtr($arr->[$i], ~0)){ #P letter is terrible design
-# $unpackletter = 'p', goto UNPACK;
-# }#else undef
-# }
-# else{ die "Win32::API::Callback::MakeParamArr unknown in type letter $typeletter";}
-# goto GOTPARAM;
-# UNPACK:
-# $finalParam = unpack($unpackletter, $packedparam);
-# GOTPARAM:
-# $i++;
-# push(@pass_arr, $finalParam);
-# }
-# return \@pass_arr;
-#}
-
-#on x64
-#void RunCB($self, $EBP_ESP, $retval)
-#on x86
-#void RunCB($self, $EBP_ESP, $retval, $unwindcount, $F_or_D)
-if(! ISX64 ) {
-*RunCB = sub {#32 bits
- my $self = $_[0];
- my (@pass_arr, $return, $typeletter, $inbytes, @arr);
- $inbytes = $self->{inbytes};
- #first is ebp copy then ret address
- $inbytes += PTRSIZE * 2;
- my $paramcount = $inbytes / PTRSIZE ;
- my $stackstr = unpack('P'.$inbytes, pack(PTRLET, $_[1]));
- #pack () were added in 5.7.2
- if (OPV > 5.007002) {
- @arr = unpack("(a[".PTRLET."])[$paramcount]",$stackstr);
- } else {
- #letter can not be used for size, must be numeric on 5.6
- @arr = unpack(("a4") x $paramcount,$stackstr);
- }
- shift @arr, shift @arr; #remove ebp copy and ret address
- $paramcount -= 2;
- $return = &{$self->{sub}}(@{MakeParamArr($self, \@arr)});
-
- #now the return type
- $typeletter = $self->{outtype};
- #float_or_double flag, its always used
- #float is default for faster copy of probably unused value
- $_[4] = 0;
- #its all the same in memory
- if($typeletter eq 'n' || $typeletter eq 'N'
- || $typeletter eq 'l' || $typeletter eq 'L'
- || $typeletter eq 'i' || $typeletter eq 'I'){
- $_[2] = pack(PTRLET, $return);
- }elsif($typeletter eq 'q' || $typeletter eq 'Q'){
- if(IVSIZE == 4){
- if($self->{'UseMI64'} || ref($return)){ #un/signed meaningless
- $_[2] = Math::Int64::int64_to_native($return);
- }
- else{
- warn("Win32::API::Callback::RunCB return value for return type Q is under 8 bytes long")
- if length($return) < 8;
- $_[2] = $return.''; #$return should be a 8 byte string
- #will be garbage padded in XS if < 8, but must be a string, not a IV or under
- }
- }
- else{
- $_[2] = pack($typeletter, $return);
- }
- }elsif($typeletter eq 'f' || $typeletter eq 'F' ){
- $_[2] = pack('f', $return);
- }elsif($typeletter eq 'd' || $typeletter eq 'D' ){
- $_[2] = pack('d', $return);
- $_[4] = 1; #use double
- }else { #return null
- $_[2] = "\x00" x 8;
- }
-
- if(! $self->{cdecl}){
- $_[3] = PTRSIZE * $paramcount; #stack rewind amount in bytes
- }
- else{$_[3] = 0;}
-};
-}
-else{ #64 bits
-*RunCB = sub {
- my $self = $_[0];
- my (@pass_arr, $return, $typeletter);
- my $paramcount = $self->{inbytes} / IVSIZE;
- my $stack_ptr = unpack('P[J]', pack('J', ($_[1]+CONTEXT_RAX())));
- my $stack_str = unpack('P['.$self->{inbytes}.']', $stack_ptr);
- my @stack_arr = unpack("(a[J])[$paramcount]",$stack_str);
- #not very efficient, todo search for f/F/d/D in new() not here
- my $XMMStr = unpack('P['.(4 * 16).']', pack('J', ($_[1]+CONTEXT_XMM0())));
- #print Dumper([unpack('(H[32])[4]', $XMMStr)]);
- my @XMM = unpack('(a[16])[4]', $XMMStr);
- #assume registers are copied to shadow stack space already
- #because of ... prototype, so only XMM registers need to be fetched.
- #Limitation, vararg funcs on x64 get floating points in normal registers
- #not XMMs, so a vararg function taking floats and doubles in the first 4
- #parameters isn't supported
- if($paramcount){
- for(0..($paramcount > 4 ? 4 : $paramcount)-1){
- my $typeletter = ${$self->{intypes}}[$_];
- if($typeletter eq 'f' || $typeletter eq 'F' || $typeletter eq 'd'
- || $typeletter eq 'D'){
- #x64 calling convention does not use the high 64 bits of a XMM register
- #although right here the high 64 bits are in @XMM elements
- #J on x64 is 8 bytes, a double will not corrupt, this is unreachable on x86
- #note we are copying 16 bytes elements to @stack_arr, @stack_arr is
- #normally 8 byte elements, unpack ignores the excess bytes later
- $stack_arr[$_] = $XMM[$_];
- }
- }
- }
- #print Dumper(\@stack_arr);
- #print Dumper(\@XMM);
- $return = &{$self->{sub}}(@{MakeParamArr($self, \@stack_arr)});
-
- #now the return type
- $typeletter = $self->{outtype};
- #its all the same in memory
- if($typeletter eq 'n' || $typeletter eq 'N'
- || $typeletter eq 'l' || $typeletter eq 'L'
- || $typeletter eq 'i' || $typeletter eq 'I'
- || $typeletter eq 'q' || $typeletter eq 'Q'){
- $_[2] = pack('J', $return);
- }
- elsif($typeletter eq 'f' || $typeletter eq 'F' ){
- $_[2] = pack('f', $return);
- }
- elsif($typeletter eq 'd' || $typeletter eq 'D' ){
- $_[2] = pack('d', $return);
- }
- else { #return null
- $_[2] = pack('J', 0);
- }
-};
-}
-
-sub MakeCB{
-
- my $self = $_[0];
- #this x86 function does not corrupt the callstack in a debugger since it
- #uses ebp and saves ebp on the stack, the function won't have a pretty
- #name though
- my $code = (!ISX64) ? ('' #parenthesis required to constant fold
- ."\x55" # push ebp
- ."\x8B\xEC" # mov ebp, esp
- ."\x83\xEC\x0C"# sub esp, 0Ch
- ."\x8D\x45\xFC" # lea eax, [ebp+FuncRtnCxtVar]
- ."\x50"# push eax
- ."\x8D\x45\xF4"# lea eax, [ebp+retval]
- ."\x50"# push eax
- ."\x8B\xC5"# mov eax,ebp
- ."\x50"# push eax
- ."\xB8").PackedRVTarget($self)#B8 mov imm32 to eax, a HV * winds up here
- .("\x50"# push eax
- ."\xB8").$Stage2FuncPtrPkd # mov eax, 0C0DE0001h
- .("\xFF\xD0"# call eax
- #since ST(0) is volatile, we don't care if we fill it with garbage
- ."\x80\x7D\xFE\x00"#cmp [ebp+FuncRtnCxtVar.F_Or_D], 0
- ."\x74\x05"# jz 5 bytes
- ."\xDD\x45\xF4"# fld qword ptr [ebp+retval] (double)
- ."\xEB\x03"# jmp 3 bytes
- ."\xD9\x45\xF4"# fld dword ptr [ebp+retval] (float)
- #rewind sp to entry sp, no pop push after this point
- ."\x83\xC4\x24"# add esp, 24h
- ."\x8B\x45\xF4"# mov eax, dword ptr [ebp+retval]
- #edx might be garbage, we don't care, caller only looks at volatile
- #registers that the caller's prototype says the caller does
- ."\x8B\x55\xF8"# mov edx, dword ptr [ebp+retval+4]
- #can't use retn op, it requires a immediate count, our count is in a register
- #only one register available now, this will be complicated
- ."\x0F\xB7\x4D\xFC"#movzx ecx, word ptr [ebp+FuncRtnCxtVar.unwind_len]
- ."\x01\xCC"# add esp, ecx , might be zero or more
- ."\x8B\x4D\x04"# mov ecx, dword ptr [ebp+4] ret address
- ."\x8B\x6D\x00"# mov ebp, dword ptr [ebp+0] restore BP
- ."\xFF\xE1")# jmp ecx
-
-
- #begin x64 part
- #these packs don't constant fold in < 5.17 :-(
- #they are here for readability
- :(''.pack('C', 0b01000000 #REX base
- | 0b00001000 #REX.W
- | 0b00000001 #REX.B
- ).pack('C', 0xB8+2) #mov to r10 register
- .PackedRVTarget($self)
- .pack('C', 0b01000000 #REX base
- | 0b00001000 #REX.W
- ).pack('C', 0xB8) #mov to rax register
- .$Stage2FuncPtrPkd
- ."\xFF\xE0");# jmp rax
-#making a full function in Perl in x64 was removed because RtlAddFunctionTable
-#has no effect on VS 2008 debugger, it is a bug in VS 2008, in WinDbg the C callstack
-#is correct with RtlAddFunctionTable, and broken without RtlAddFunctionTable
-#in VS 2008, the C callstack was always broken since WinDbg and VS 2008 both
-#*only* use Unwind Tables on x64 to calculate C callstacks, they do not, I think,
-#use 32 bit style EBP/RBP walking, x64 VC almost never uses BP addressing anyway.
-#The easiest fix was to not have dynamic machine code in the callstack at all,
-#which is what I did. Having good C callstacks in a debugger with ::API and
-#::Callback are a good goal.
-#
-##--- c:\documents and settings\administrator\desktop\w32api\callback\callback.c -
-# $code .= "\x4C\x8B\xDC";# mov r11,rsp
-# $code .= "\x49\x89\x4B\x08";# mov qword ptr [r11+8],rcx
-# $code .= "\x49\x89\x53\x10";# mov qword ptr [r11+10h],rdx
-# $code .= "\x4D\x89\x43\x18";# mov qword ptr [r11+18h],r8
-# $code .= "\x4D\x89\x4B\x20";# mov qword ptr [r11+20h],r9
-# $code .= "\x48\x83\xEC\x78";# sub rsp,78h
-# #void (*LPerlCallback)(SV *, void *, unsigned __int64 *, void *) =
-# #( void (*)(SV *, void *, unsigned __int64 *, void *)) 0xC0DE00FFFF000001;
-# #__m128 arr [4];
-# #__m128 retval;
-## arr[0].m128_u64[0] = 0xFFFF00000000FF10;
-##00000000022D1017 48 B8 10 FF 00 00 00 00 FF FF mov rax,0FFFF00000000FF10h
-##arr[0].m128_u64[1] = 0xFFFF00000000FF11;
-## arr[1].m128_u64[0] = 0xFFFF00000000FF20;
-## arr[1].m128_u64[1] = 0xFFFF00000000FF21;
-## arr[2].m128_u64[0] = 0xFFFF00000000FF30;
-## arr[2].m128_u64[1] = 0xFFFF00000000FF31;
-## arr[3].m128_u64[0] = 0xFFFF00000000FF40;
-## arr[3].m128_u64[1] = 0xFFFF00000000FF41;
-#
-## LPerlCallback((SV *)0xC0DE00FFFF000002, (void*) arr, (unsigned __int64 *)&retval,
-## (DWORD_PTR)&a);
-##00000000022D1021 4D 8D 4B 08 lea r9,[r11+8] #no 4th param
-# $code .= "\x4D\x8D\x43\xA8";# lea r8,[r11-58h] #&retval param
-##00000000022D1029 49 89 43 B8 mov qword ptr [r11-48h],rax
-##00000000022D102D 48 B8 11 FF 00 00 00 00 FF FF mov rax,0FFFF00000000FF11h
-# $code .= "\x49\x8D\x53\xB8";# lea rdx,[r11-48h] #arr param
-##00000000022D103B 49 89 43 C0 mov qword ptr [r11-40h],rax
-##00000000022D103F 48 B8 20 FF 00 00 00 00 FF FF mov rax,0FFFF00000000FF20h
-##00000000022D1049 48 B9 02 00 00 FF FF 00 DE C0 mov rcx,0C0DE00FFFF000002h
-# $code .= "\x48\xB9".PackedRVTarget($self);# mov rcx, the HV *
-##00000000022D1053 49 89 43 C8 mov qword ptr [r11-38h],rax
-##00000000022D1057 48 B8 21 FF 00 00 00 00 FF FF mov rax,0FFFF00000000FF21h
-##00000000022D1061 49 89 43 D0 mov qword ptr [r11-30h],rax
-##00000000022D1065 48 B8 30 FF 00 00 00 00 FF FF mov rax,0FFFF00000000FF30h
-##00000000022D106F 49 89 43 D8 mov qword ptr [r11-28h],rax
-##00000000022D1073 48 B8 31 FF 00 00 00 00 FF FF mov rax,0FFFF00000000FF31h
-##00000000022D107D 49 89 43 E0 mov qword ptr [r11-20h],rax
-##00000000022D1081 48 B8 40 FF 00 00 00 00 FF FF mov rax,0FFFF00000000FF40h
-##00000000022D108B 49 89 43 E8 mov qword ptr [r11-18h],rax
-##00000000022D108F 48 B8 41 FF 00 00 00 00 FF FF mov rax,0FFFF00000000FF41h
-##00000000022D1099 49 89 43 F0 mov qword ptr [r11-10h],rax
-##00000000022D109D 48 B8 01 00 00 FF FF 00 DE C0 mov rax,0C0DE00FFFF000001h
-# $code .= "\x48\xB8".$Stage2FuncPtrPkd; # mov rax,0C0DE00FFFF000001h
-# $code .= "\xFF\xD0";# call rax
-## return *(void **)&retval;
-# $code .= "\x48\x8B\x44\x24\x20";# mov rax,qword ptr [retval]
-##}
-# $code .= "\x48\x83\xC4\x78";# add rsp,78h
-# $code .= "\xC3";# ret
-
-#$self->{codestr} = $code; #save memory
-#32 bit perl doesn't use DEP in my testing, but use executable heap to be safe
-#a Win32::API::Callback::HeapBlock is a ref to scalar, that scalar has the void *
-my $ptr = ${($self->{codeExecAlloc} = Win32::API::Callback::HeapBlock->new(length($code)))};
-WriteMemory($ptr, $code, length($code));
-return $ptr;
-}
-
-
-1;
-
-__END__
-
-#######################################################################
-# DOCUMENTATION
-#
-
-=head1 NAME
-
-Win32::API::Callback - Callback support for Win32::API
-
-=head1 SYNOPSIS
-
- use Win32::API;
- use Win32::API::Callback;
-
- my $callback = Win32::API::Callback->new(
- sub { my($a, $b) = @_; return $a+$b; },
- "NN", "N",
- );
-
- Win32::API->Import(
- 'mydll', 'two_integers_cb', 'KNN', 'N',
- );
-
- $sum = two_integers_cb( $callback, 3, 2 );
-
-
-=head1 FOREWORDS
-
-=over 4
-
-=item *
-Support for this module is B<highly experimental> at this point.
-
-=item *
-I won't be surprised if it doesn't work for you.
-
-=item *
-Feedback is very appreciated.
-
-=item *
-Documentation is in the work. Either see the SYNOPSIS above
-or the samples in the F<samples> or the tests in the F<t> directory.
-
-=back
-
-=head1 USAGE
-
-Win32::API::Callback uses a subset of the type letters of Win32::API. C Prototype
-interface isn't supported. Not all the type letters of Win32::API are supported
-in Win32::API::Callback.
-
-=over 4
-
-=item C<I>:
-value is an unsigned integer (unsigned int)
-
-=item C<i>:
-value is an signed integer (signed int or int)
-
-=item C<N>:
-value is a unsigned pointer sized number (unsigned long)
-
-=item C<n>:
-value is a signed pointer sized number (signed long or long)
-
-=item C<Q>:
-value is a unsigned 64 bit integer number (unsigned long long, unsigned __int64)
-See next item for details.
-
-=item C<q>:
-value is a signed 64 bit integer number (long long, __int64)
-If your perl has 'Q'/'q' quads support for L<pack> then Win32::API's 'q'
-is a normal perl numeric scalar. All 64 bit Perls have quad support. Almost no
-32 bit Perls have quad support. On 32 bit Perls, without quad support,
-Win32::API::Callback's 'q'/'Q' letter is a packed 8 byte string.
-So C<0x8000000050000000> from a perl with native Quad support
-would be written as C<"\x00\x00\x00\x50\x00\x00\x00\x80"> on a 32 bit
-Perl without Quad support. To improve the use of 64 bit integers with
-Win32::API::Callback on a 32 bit Perl without Quad support, there is
-a per Win32::API::Callback object setting called L<Win32::API/UseMI64>
-that causes all quads to be accepted as, and returned as L<Math::Int64>
-objects. 4 to 8 byte long pass by copy/return type C aggregate types
-are very rare in Windows, but they are supported as "in" and return
-types by using 'q'/'Q' on 32 and 64 bits. Converting between the C aggregate
-and its representation as a quad is up to the reader. For "out" in
-Win32::API::Callback (not "in"), if the argument is a reference, it will
-automatically be treated as a Math::Int64 object without having to
-previously call this function.
-
-=item C<F>:
-value is a floating point number (float)
-
-=item C<D>:
-value is a double precision number (double)
-
-=item C<Unimplemented types>:
-Unimplemented in Win32::API::Callback types such as shorts, chars, and
-smaller than "machine word size" (32/64bit) numbers can be processed
-by specifying N, then masking off the high bytes.
-For example, to get a char, specify N, then do C<$numeric_char = $_[2] & 0xFF;>
-in your Perl callback sub. To get a short, specify N, then do
-C<$numeric_char = $_[2] & 0xFFFF;> in your Perl callback sub.
-
-=back
-
-=head2 FUNCTIONS
-
-=head3 new
-
- $CallbackObj = Win32::API::Callback->new( sub { print "hello world";},
- 'NDF', 'Q', '__cdecl');
- $CallbackObj = Win32::API::Callback->new( sub { print "hello world";},
- $in, $out);
-
-Creates and returns a new Win32::API::Callback object. Calling convention
-parameter is optional. Calling convention parameter has same behaviour as
-Win32::API's calling convention parameter. C prototype parsing of Win32::API
-is not available with Win32::API::Callback. If the C caller assumes the
-callback has vararg parameters, and the platform is 64 bits/x64, in the first 4
-parameters, if they are floats or doubles they will be garbage. Note there is
-no way to create a Win32::API::Callback callback with a vararg prototype.
-A workaround is to put "enough" Ns as the in types, and stop looking at the @_
-slices in your Perl sub callback after a certain count. Usually the first
-parameter will somehow indicate how many additional stack parameters you are
-receiving. The Ns in @_ will eventually become garbage, technically they are
-the return address, saved registers, and C stack allocated variables of the
-caller. They are effectivly garbage for your vararg callback. All vararg
-callbacks on 32 bits must supply a calling convention, and it must be '__cdecl'
-or 'WINAPIV'.
-
-=head2 METHODS
-
-=head3 UseMI64
-
-See L<Win32::API/UseMI64>.
-
-=head1 KNOWN ISSUES
-
-=over 4
-
-=item *
-
-Callback is safe across a Win32 psuedo-fork. Callback is not safe across a
-Cygwin fork. On Cygwin, in the child process of the fork, a Segmentation Fault
-will happen if the Win32::API::Callback callback is is called.
-
-=back
-
-=head1 SEE ALSO
-
-L<Win32::API::Callback::IATPatch>
-
-=head1 AUTHOR
-
-Aldo Calpini ( I<dada@perl.it> ).
-Daniel Dragan ( I<bulkdd@cpan.org> ).
-
-=head1 MAINTAINER
-
-Cosimo Streppone ( I<cosimo@cpan.org> ).
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Win32/API/Callback/IATPatch.pod b/Master/tlpkg/tlperl/lib/Win32/API/Callback/IATPatch.pod
deleted file mode 100644
index 27eb1af2fb6..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/API/Callback/IATPatch.pod
+++ /dev/null
@@ -1,181 +0,0 @@
-=head1 NAME
-
-Win32::API::Callback::IATPatch - Hooking and Patching a DLL's Imported C Functions
-
-=head1 SYNOPSIS
-
- use Win32::API;
- use Win32::API::Callback;
- warn "usually fatally errors on Cygwin" if $^O eq 'cygwin';
- # do not do a "use" or "require" on Win32::API::Callback::IATPatch
- # IATPatch comes with Win32::API::Callback
- my $LoadLibraryExA;
- my $callback = Win32::API::Callback->new(
- sub {
- my $libname = unpack('p', pack('J', $_[0]));
- print "got $libname\n";
- return $LoadLibraryExA->Call($libname, $_[1], $_[2]);
- },
- 'NNI',
- 'N'
- );
- my $patch = Win32::API::Callback::IATPatch->new(
- $callback, "perl518.dll", 'kernel32.dll', 'LoadLibraryExA');
- die "failed to create IATPatch Obj $^E" if ! defined $patch;
- $LoadLibraryExA = Win32::API::More->new( undef, $patch->GetOriginalFunctionPtr(), '
- HMODULE
- WINAPI
- LoadLibraryExA(
- LPCSTR lpLibFileName,
- HANDLE hFile,
- DWORD dwFlags
- );
- ');
- die "failed to make old function object" if ! defined $LoadLibraryExA;
- require Encode;
- #console will get a print of the dll filename now
-
-=head1 DESCRIPTION
-
-Win32::API::Callback::IATPatch allows you to hook a compile time dynamic linked
-function call from any DLL (or EXE, from now on all examples are from a DLL to
-another DLL, but from a EXE to a DLL is implied) in the Perl process, to a
-different DLL in the same Perl process, by placing a Win32::API::Callback object
-in between. This module does B<not> hook B<GetProcAddress> function calls. It
-also will not hook a function call from a DLL to another function in the same
-DLL. The function you want to hook B<must> appear in the B<import table> of the
-DLL you want to use the hook. Functions from delay loaded DLL have their own
-import table, it is different import table from the normal one IATPatch supports.
-IATPatch will not find a delay loaded function and will not patch it. The hook
-occurs at the caller DLL, not the callee DLL. This means your callback will be
-called from all the calls to a one function in different DLL from the one
-particular DLL the IATPatch object patched. The caller DLL is modified at
-runtime, in the Perl process where the IATPatch was created, not on disk,
-not globally among all processes. The callee or exporting DLL is NOT modified,
-so your hook callback will be called from the 1 DLL that you choose to hook with
-1 IATPatch object. You can create multiple IATPatch objects, one for each DLL in
-the Perl process that you want to call your callback and not the original
-destination function. If a new DLL is loaded into the process during runtime,
-you must create a new IATPatch object specifically targeting it. There may be a
-period from when the new DLL is loaded into the process, and when your Perl
-script creates IATPatch object, where calls from that new DLL goto the real
-destination function without hooking. If a DLL is unloaded, then reloaded into
-the process, you must call C<Unpatch(0)> method on the old IATPatch object, then
-create a new IATPatch object. IATPatch has no notification feature that a DLL
-is being loaded or unloaded from the process. Unless you completely control, and
-have the source code of the caller DLL, and understand all of the source code of
-that DLL, there is a high chance that you will B<NOT> hook all calls from that
-DLL to the destination function. If a call to the destination function is
-dangerous or unacceptable, do not use IATPatch. IATPatch is not Microsoft
-Detours or the like in any sense. Detours and its brethern will rewrite the
-machine code in the beginning of the destination function call, hooking all
-calls to that function call process wide, without exception.
-
-Why this module was created? So I could mock kernel32 functions to
-unit test Perl's C function calls to Kernel32.
-
-=head2 CONSTRUCTORS
-
-=head3 new
-
- my $patch = Win32::API::Callback::IATPatch->new(
- $A_Win32_API_Callback_Obj, $EXE_or_DLL_hmodule_or_name_to_hook,
- $import_DLL_name, $import_function_name_or_ordinal);
-
-Creates a new IATPatch object. The Win32::API::Callback will be called as long
-as the IATPatch object exists. When an IATPatch object is DESTROYed, unless
-C<-E<gt>Unpatch(0)> is called first, the patch is undone and the original
-function is directly called from then on by that DLL. The DLL is not reference
-count saved by an IATPatch object, so it may be unloaded at any time. If it is
-unloaded you must call C<-E<gt>Unpatch(0)> before a DESTROY. Otherwise the DESTROY
-will croak when it tries to unpatch the DLL. The DLL to hook must be a valid
-PE file, while in memory. DLL and EXE "packers" can create invalid PE
-files that do load successfully into memory, but they are not full PE files in
-memory. On error, undef is returned and an error code is available through
-L<Win32::GetLastError|Win32/Win32::GetLastError()>/L<perlvar/"$^E">. The error code may be from either
-IATPatch directly, or from a Win32 call that IATPatch made. IATPatch objects
-do not go through a L<perlfunc/"fork"> onto the child interp. IATPatch is fork safe.
-
-The hook dll name can be one of 3 things, if the dllname is multiple things
-(a number and a string), the first format found in the following order is used.
-A string C<"123"> (a very strange DLL name BTW), this DLL is converted to DLL
-HMODULE with GetModuleHandle. If there are 2 DLLs with the same filename,
-refer to GetModuleHandle's
-L<MSDN documentation|http://msdn.microsoft.com/en-us/library/windows/desktop/ms683199%28v=vs.85%29.aspx>
-on what happens. Then if the
-DLL name is an integer C<123456>, it is interpreted as a HMODULE directly.
-If DLL name undefined, the file used to create the calling process will be
-patched (a .exe). Finally if the DLL name is defined, a fatal error croak occurs.
-It is best to use an HMODULE, since things like SxS can create multiple DLLs with
-the same name in the same process. How to get an HMODULE, you are on your own.
-
-C<$import_function_name_or_ordinal> can be one of 2 things. First it is checked if
-it is a string, if so, it is used as the function name to hook. Else it is used
-as an integer ordinal to hook. Importing by ordinal is obsolete in Windows, and
-you shouldn't ever have to use it. The author of IATPatch was unable to test if
-ordinal hooking works correctly in IATPatch.
-
-=head2 METHODS
-
-=head3 Unpatch
-
- die "failed to undo the patch error: $^E" if !
- $IATPatch->Unpatch(); #undo the patch
- #or
- die "failed to undo the patch error: $^E" if !
- $IATPatch->Unpatch(1); #undo the patch
- #or
- die "failed to undo the patch error: $^E" if !
- $IATPatch->Unpatch(0); #never undo the patch
- #or
- die "failed to undo the patch error: $^E" if !
- $IATPatch->Unpatch(undef); #never undo the patch
-
-Unpatches the DLL with the original destination function from the L<Win32::API::Callback::IATPatch/"new">
-call. Returns undef on failure with error number available through
-L<Win32::GetLastError|Win32/Win32::GetLastError()>/L<perlvar/"$^E">. If Unpatch was called once already,
-calling it again will fail, and error will be ERROR_NO_MORE_ITEMS.
-
-=head3 GetOriginalFunctionPtr
-
-Returns the original function pointer found in the import table in C<123456>
-format. If the returned pointer is 0, L<Win32::API::Callback::IATPatch/"Unpatch">
-was called earlier. There are no error numbers associated with this method.
-This value can be directly used to create a function pointer based Win32::API
-object to call the original destination function from inside your Perl callback.
-See L<Win32::API::Callback::IATPatch/"SYNOPSIS"> for a usage example.
-
-=head1 BUGS AND LIMITATIONS
-
-=over 4
-
-=item E<nbsp>Cygwin not supported
-
-L<new()|Win32::API::Callback::IATPatch/"new"> usually fatally errors on Cygwin
-with "IATPatch 3GB mode not supported" on Cygwins that allocate the heap at
-0x80000000 or are "Large Address Aware"
-
-=back
-
-=head1 SEE ALSO
-
-L<Win32::API::Callback>
-
-L<Win32::API>
-
-L<http://msdn.microsoft.com/en-us/magazine/cc301808.aspx>
-
-=head1 AUTHOR
-
-Daniel Dragan ( I<bulkdd@cpan.org> ).
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright (C) 2012 by Daniel Dragan
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself, either Perl version 5.10.0 or,
-at your option, any later version of Perl 5 you may have available.
-
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Win32/API/Struct.pm b/Master/tlpkg/tlperl/lib/Win32/API/Struct.pm
deleted file mode 100644
index 9a67ed7b6c4..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/API/Struct.pm
+++ /dev/null
@@ -1,714 +0,0 @@
-#
-# Win32::API::Struct - Perl Win32 API struct Facility
-#
-# Author: Aldo Calpini <dada@perl.it>
-# Maintainer: Cosimo Streppone <cosimo@cpan.org>
-#
-
-package Win32::API::Struct;
-use strict;
-use warnings;
-use vars qw( $VERSION @ISA );
-$VERSION = '0.65';
-
-use Carp;
-use Win32::API::Type;
-use Config;
-
-require Exporter;
-require DynaLoader;
-@ISA = qw(Exporter DynaLoader);
-
-my %Known = ();
-
-sub DEBUG {
- if ($Win32::API::DEBUG) {
- printf @_ if @_ or return 1;
- }
- else {
- return 0;
- }
-}
-
-sub typedef {
- my $class = shift;
- my $struct = shift;
- my ($type, $name, @recog_arr);
- my $self = {
- align => undef,
- typedef => [],
- };
- while (defined($type = shift)) {
- $name = shift;
- $name =~ s/;$//;
- @recog_arr = recognize($type, $name);
-#http://perlmonks.org/?node_id=978468, not catching the type not found here,
-#will lead to a div 0 later
- if(@recog_arr != 3){
- carp "Win32::API::Struct::typedef: unknown member type=\"$type\", name=\"$name\"";
- return undef;
- }
- push(@{$self->{typedef}}, [@recog_arr]);
- }
-
- $Known{$struct} = $self;
- $Win32::API::Type::Known{$struct} = '>';
- return 1;
-}
-
-
-#void ck_type($param, $proto, $param_num)
-sub ck_type {
- my ($param, $proto) = @_;
- #legacy LP prefix check
- return if substr($proto, 0, 2) eq 'LP' && substr($proto, 2) eq $param;
- #check if proto can be converted to base struct name
- return if exists $Win32::API::Struct::Pointer{$proto} &&
- $param eq $Win32::API::Struct::Pointer{$proto};
- #check if proto can have * chopped off to convert to base struct name
- $proto =~ s/\s*\*$//;
- return if $proto eq $param;
- croak("Win32::API::Call: supplied type (LP)\"".
- $param."\"( *) doesn't match type \"".
- $_[1]."\" for parameter ".
- $_[2]." ");
-}
-
-#$basename = to_base_struct($pointername)
-sub to_base_struct {
- return $Win32::API::Struct::Pointer{$_[0]}
- if exists $Win32::API::Struct::Pointer{$_[0]};
- die "Win32::API::Struct::Unpack unknown type";
-}
-
-sub recognize {
- my ($type, $name) = @_;
- my ($size, $packing);
-
- if (exists $Known{$type}) {
- $packing = '>';
- return ($name, $packing, $type);
- }
- else {
- $packing = Win32::API::Type::packing($type);
- return undef unless defined $packing;
- if ($name =~ s/\[(.*)\]$//) {
- $size = $1;
- $packing = $packing . '*' . $size;
- }
- DEBUG "(PM)Struct::recognize got '$name', '$type' -> '$packing'\n";
- return ($name, $packing, $type);
- }
-}
-
-sub new {
- my $class = shift;
- my ($type, $name, $packing);
- my $self = {typedef => [],};
- if ($#_ == 0) {
- if (is_known($_[0])) {
- DEBUG "(PM)Struct::new: got '$_[0]'\n";
- if( ! defined ($self->{typedef} = $Known{$_[0]}->{typedef})){
- carp 'Win32::API::Struct::new: unknown type="'.$_[0].'"';
- return undef;
- }
- foreach my $member (@{$self->{typedef}}) {
- ($name, $packing, $type) = @$member;
- next unless defined $name;
- if ($packing eq '>') {
- $self->{$name} = Win32::API::Struct->new($type);
- }
- }
- $self->{__typedef__} = $_[0];
- }
- else {
- carp "Unknown Win32::API::Struct '$_[0]'";
- return undef;
- }
- }
- else {
- while (defined($type = shift)) {
- $name = shift;
-
- # print "new: found member $name ($type)\n";
- if (not exists $Win32::API::Type::Known{$type}) {
- carp "Unknown Win32::API::Struct type '$type'";
- return undef;
- }
- else {
- push(@{$self->{typedef}},
- [$name, $Win32::API::Type::Known{$type}, $type]);
- }
- }
- }
- return bless $self;
-}
-
-sub members {
- my $self = shift;
- return map { $_->[0] } @{$self->{typedef}};
-}
-
-sub sizeof {
- my $self = shift;
- my $size = 0;
- my $align = 0;
- my $first = '';
-
- for my $member (@{$self->{typedef}}) {
- my ($name, $packing, $type) = @{$member};
- next unless defined $name;
- if (ref $self->{$name} eq q{Win32::API::Struct}) {
-
- # If member is a struct, recursively calculate its size
- # FIXME for subclasses
- $size += $self->{$name}->sizeof();
- }
- else {
-
- # Member is a simple type (LONG, DWORD, etc...)
- if ($packing =~ /\w\*(\d+)/) { # Arrays (ex: 'c*260')
- $size += Win32::API::Type::sizeof($type) * $1;
- $first = Win32::API::Type::sizeof($type) * $1 unless defined $first;
- DEBUG "(PM)Struct::sizeof: sizeof with member($name) now = " . $size
- . "\n";
- }
- else { # Simple types
- my $type_size = Win32::API::Type::sizeof($type);
- $align = $type_size if $type_size > $align;
- my $type_align = (($size + $type_size) % $type_size);
- $size += $type_size + $type_align;
- $first = Win32::API::Type::sizeof($type) unless defined $first;
- }
- }
- }
-
- my $struct_size = $size;
- if (defined $align && $align > 0) {
- $struct_size += ($size % $align);
- }
- DEBUG "(PM)Struct::sizeof first=$first totalsize=$struct_size\n";
- return $struct_size;
-}
-
-sub align {
- my $self = shift;
- my $align = shift;
-
- if (not defined $align) {
-
- if (!(defined $self->{align} && $self->{align} eq 'auto')) {
- return $self->{align};
- }
-
- $align = 0;
-
- foreach my $member (@{$self->{typedef}}) {
- my ($name, $packing, $type) = @$member;
-
- if (ref($self->{$name}) eq "Win32::API::Struct") {
- #### ????
- }
- else {
- if ($packing =~ /\w\*(\d+)/) {
- #### ????
- }
- else {
- $align = Win32::API::Type::sizeof($type)
- if Win32::API::Type::sizeof($type) > $align;
- }
- }
- }
- return $align;
- }
- else {
- $self->{align} = $align;
-
- }
-}
-
-sub getPack {
- my $self = shift;
- my $packing = "";
- my $packed_size = 0;
- my ($type, $name, $type_size, $type_align);
- my @items = ();
- my @recipients = ();
- my @buffer_ptrs = (); #this contains the struct_ptrs that were placed in the
- #the struct, its part of "C func changes the struct ptr to a private allocated
- #struct" code, it is push/poped only for struct ptrs, it is NOT a 1 to
- #1 mapping between all struct members, so don't access it with indexes
-
- my $align = $self->align();
-
- foreach my $member (@{$self->{typedef}}) {
- my ($name, $type, $orig) = @$member;
- if ($type eq '>') {
- my ($subpacking, $subitems, $subrecipients, $subpacksize, $subbuffersptrs) =
- $self->{$name}->getPack();
- DEBUG "(PM)Struct::getPack($self->{__typedef__}) ++ $subpacking\n";
- push(@items, @$subitems);
- push(@recipients, @$subrecipients);
- push(@buffer_ptrs, @$subbuffersptrs);
- $packing .= $subpacking;
- $packed_size += $subpacksize;
- }
- else {
- my $repeat = 1;
- if ($type =~ /\w\*(\d+)/) {
- $repeat = $1;
- $type = "a$repeat";
- }
-
- DEBUG "(PM)Struct::getPack($self->{__typedef__}) ++ $type\n";
-
- if ($type eq 'p') {
- $type = Win32::API::Type::pointer_pack_type();
- push(@items, Win32::API::PointerTo($self->{$name}));
- }
- elsif ($type eq 'T') {
- $type = Win32::API::Type::pointer_pack_type();
- my $structptr;
- if(ref($self->{$name})){
- $self->{$name}->Pack();
- $structptr = Win32::API::PointerTo($self->{$name}->{buffer});
- }
- else{
- $structptr = 0;
- }
- push(@items, $structptr);
- push(@buffer_ptrs, $structptr);
- }
- else {
- push(@items, $self->{$name});
- }
- push(@recipients, $self);
- $type_size = Win32::API::Type::sizeof($orig);
- $type_align = (($packed_size + $type_size) % $type_size);
- $packing .= "x" x $type_align . $type;
- $packed_size += ( $type_size * $repeat ) + $type_align;
- }
- }
-
- DEBUG
- "(PM)Struct::getPack: $self->{__typedef__}(buffer) = pack($packing, $packed_size)\n";
-
- return ($packing, [@items], [@recipients], $packed_size, \@buffer_ptrs);
-}
-
-# void $struct->Pack([$priv_warnings_flag]);
-sub Pack {
- my $self = shift;
- my ($packing, $items);
- ($packing, $items, $self->{buffer_recipients},
- undef, $self->{buffer_ptrs}) = $self->getPack();
-
- if(DEBUG){
- DEBUG "(PM)Struct::Pack: $self->{__typedef__}(buffer) = pack($packing, @$items)\n";
- }
-
- if($_[0]){ #Pack() on a new struct, without slice set, will cause lots of uninit
- #warnings, sometimes its intentional to set up buffer recipients for a
- #future UnPack()
- no warnings 'uninitialized';
- $self->{buffer} = pack($packing, @$items);
- }
- else{
- $self->{buffer} = pack($packing, @$items);
- }
- if (DEBUG) {
- for my $i (0 .. $self->sizeof - 1) {
- printf "#pack# %3d: 0x%02x\n", $i, ord(substr($self->{buffer}, $i, 1));
- }
- }
-}
-
-sub getUnpack {
- my $self = shift;
- my $packing = "";
- my $packed_size = 0;
- my ($type, $name, $type_size, $type_align, $orig_type);
- my (@items, @types, @type_names);
- my $align = $self->align();
- foreach my $member (@{$self->{typedef}}) {
- my ($name, $type, $orig) = @$member;
- if ($type eq '>') {
- my ($subpacking, $subpacksize, $subitems, $subtypes, $subtype_names) = $self->{$name}->getUnpack();
- DEBUG "(PM)Struct::getUnpack($self->{__typedef__}) ++ $subpacking\n";
- $packing .= $subpacking;
- $packed_size += $subpacksize;
- push(@items, @$subitems);
- push(@types, @$subtypes);
- push(@type_names, @$subtype_names);
- }
- else {
- if($type eq 'T') {
- $orig_type = $type;
- $type = Win32::API::Type::pointer_pack_type();
- }
- my $repeat = 1;
- if ($type =~ /\w\*(\d+)/) {
- $repeat = $1;
- $type = "Z$repeat";
- }
- DEBUG "(PM)Struct::getUnpack($self->{__typedef__}) ++ $type\n";
- $type_size = Win32::API::Type::sizeof($orig);
- $type_align = (($packed_size + $type_size) % $type_size);
- $packing .= "x" x $type_align . $type;
- $packed_size += ( $type_size * $repeat ) + $type_align;
- push(@items, $name);
- if($orig_type){
- push(@types, $orig_type);
- undef($orig_type);
- }
- else{
- push(@types, $type);
- }
- push(@type_names, $orig);
- }
- }
- DEBUG "(PM)Struct::getUnpack($self->{__typedef__}): unpack($packing, @items)\n";
- return ($packing, $packed_size, \@items, \@types, \@type_names);
-}
-
-sub Unpack {
- my $self = shift;
- my ($packing, undef, $items, $types, $type_names) = $self->getUnpack();
- my @itemvalue = unpack($packing, $self->{buffer});
- DEBUG "(PM)Struct::Unpack: unpack($packing, buffer) = @itemvalue\n";
- foreach my $i (0 .. $#$items) {
- my $recipient = $self->{buffer_recipients}->[$i];
- my $item = $$items[$i];
- DEBUG "(PM)Struct::Unpack: %s(%s) = '%s' (0x%08x)\n",
- $recipient->{__typedef__},
- $item,
- $itemvalue[$i],
- $itemvalue[$i],
- ;
- if($$types[$i] eq 'T'){
-my $oldstructptr = pop(@{$self->{buffer_ptrs}});
-my $newstructptr = $itemvalue[$i];
-my $SVMemberRef = \$recipient->{$item};
-
-if(!$newstructptr){ #new ptr is null
- if($oldstructptr != $newstructptr){ #old ptr was true
- carp "Win32::API::Struct::Unpack struct pointer".
- " member \"".$item."\" was changed by C function,".
- " possible resource leak";
- }
- $$SVMemberRef = undef;
-}
-else{ #new ptr is true
- if($oldstructptr != $newstructptr){#old ptr was true, or null, but has changed, leak warning
- carp "Win32::API::Struct::Unpack struct pointer".
- " member \"".$item."\" was changed by C function,".
- " possible resource leak";
- }#create a ::Struct if the slice is undef, user had the slice set to undef
-
- if (!ref($$SVMemberRef)){
- $$SVMemberRef = Win32::API::Struct->new(to_base_struct($type_names->[$i]));
- $$SVMemberRef->Pack(1); #buffer_recipients must be generated, no uninit warnings
- }
-#must fix {buffer} with contents of the new struct, $structptr might be
-#null or might be a SVPV from a ::Struct that was ignored, in any case,
-#a foreign memory allocator is at work here
- $$SVMemberRef->{buffer} = Win32::API::ReadMemory($newstructptr, $$SVMemberRef->sizeof)
- if($oldstructptr != $newstructptr);
-#always must be called, if new ptr is not null, at this point, C func, did
-#one of 2 things, filled the old ::Struct's {buffer} PV, or gave a new struct *
-#from its own allocator, there is no way to tell if the struct contents changed
-#so Unpack() must be called
- $$SVMemberRef->Unpack();
-}
-}
- else{ #not a struct ptr
- $recipient->{$item} = $itemvalue[$i];
-
- # DEBUG "(PM)Struct::Unpack: self.items[$i] = $self->{$$items[$i]}\n";
- }
- }
-}
-
-sub FromMemory {
- my ($self, $addr) = @_;
- DEBUG "(PM)Struct::FromMemory: doing Pack\n";
- $self->Pack();
- DEBUG "(PM)Struct::FromMemory: doing GetMemory( 0x%08x, %d )\n", $addr, $self->sizeof;
- $self->{buffer} = Win32::API::ReadMemory($addr, $self->sizeof);
- $self->Unpack();
- DEBUG "(PM)Struct::FromMemory: doing Unpack\n";
- DEBUG "(PM)Struct::FromMemory: structure is now:\n";
- $self->Dump() if DEBUG;
- DEBUG "\n";
-}
-
-sub Dump {
- my $self = shift;
- my $prefix = shift;
- foreach my $member (@{$self->{typedef}}) {
- my ($name, $packing, $type) = @$member;
- if (ref($self->{$name})) {
- $self->{$name}->Dump($name);
- }
- else {
- printf "%-20s %-20s %-20s\n", $prefix, $name, $self->{$name};
- }
- }
-}
-
-#the LP logic should be moved to parse_prototype, since only
-#::API::Call() ever understood the implied LP prefix, Struct::new never did
-#is_known then can be inlined away and sub deleted, it is not public API
-sub is_known {
- my $name = shift;
- if (exists $Known{$name}) {
- return 1;
- }
- else {
- my $nametest = $name;
- if ($nametest =~ s/^LP//) {
- return exists $Known{$nametest};
- }
- $nametest = $name;
- if($nametest =~ s/\*$//){
- return exists $Known{$nametest};
- }
- return 0;
- }
-}
-
-sub TIEHASH {
- return Win32::API::Struct::new(@_);
-}
-
-sub EXISTS {
-
-}
-
-sub FETCH {
- my $self = shift;
- my $key = shift;
-
- if ($key eq 'sizeof') {
- return $self->sizeof;
- }
- my @members = map { $_->[0] } @{$self->{typedef}};
- if (grep(/^\Q$key\E$/, @members)) {
- return $self->{$key};
- }
- else {
- warn "'$key' is not a member of Win32::API::Struct $self->{__typedef__}";
- }
-}
-
-sub STORE {
- my $self = shift;
- my ($key, $val) = @_;
- my @members = map { $_->[0] } @{$self->{typedef}};
- if (grep(/^\Q$key\E$/, @members)) {
- $self->{$key} = $val;
- }
- else {
- warn "'$key' is not a member of Win32::API::Struct $self->{__typedef__}";
- }
-}
-
-sub FIRSTKEY {
- my $self = shift;
- my @members = map { $_->[0] } @{$self->{typedef}};
- return $members[0];
-}
-
-sub NEXTKEY {
- my $self = shift;
- my $key = shift;
- my @members = map { $_->[0] } @{$self->{typedef}};
- for my $i (0 .. $#members - 1) {
- return $members[$i + 1] if $members[$i] eq $key;
- }
- return undef;
-}
-
-1;
-
-#######################################################################
-# DOCUMENTATION
-#
-
-=head1 NAME
-
-Win32::API::Struct - C struct support package for Win32::API
-
-=head1 SYNOPSIS
-
- use Win32::API;
-
- Win32::API::Struct->typedef( 'POINT', qw(
- LONG x;
- LONG y;
- ));
-
- my $Point = Win32::API::Struct->new( 'POINT' );
- $Point->{x} = 1024;
- $Point->{y} = 768;
-
- #### alternatively
-
- tie %Point, 'Win32::API::Struct', 'POINT';
- $Point{x} = 1024;
- $Point{y} = 768;
-
-
-=head1 ABSTRACT
-
-This module enables you to define C structs for use with
-Win32::API.
-
-See L<Win32::API/USING STRUCTURES> for more info about its usage.
-
-=head1 DESCRIPTION
-
-This module is automatically imported by Win32::API, so you don't
-need to 'use' it explicitly. The main methods are C<typedef> and
-C<new>, which are documented below.
-
-=over 4
-
-=item C<typedef NAME, TYPE, MEMBER, TYPE, MEMBER, ...>
-
-This method defines a structure named C<NAME>. The definition consists
-of types and member names, just like in C. In fact, most of the
-times you can cut the C definition for a structure and paste it
-verbatim to your script, enclosing it in a C<qw()> block. The
-function takes care of removing the semicolon after the member
-name. Win32::API::Struct does B<NOT> support Enums, Unions, or Bitfields.
-C<NAME> must not end in C<*>, typedef creates structs, not struct pointers.
-See L<Win32::API::Type/"typedef">
-on how to create a struct pointer type. Returns true on success, and undef on error.
-On error it L<warns|perlfunc/warn> with the specific reason.
-
-The synopsis example could be written like this:
-
- Win32::API::Struct->typedef('POINT', 'LONG', 'x', 'LONG', 'y');
-
-But it could also be written like this (note the indirect object
-syntax), which is pretty cool:
-
- typedef Win32::API::Struct POINT => qw{
- LONG x;
- LONG y;
- };
-
-L<Win32::API/Call> automatically knows that an 'LPNAME' type, refers
-to a 'NAME' type struct. Also see L<Win32::API::Type/"typedef"> on how to declare
-pointers to struct types.
-
-Unlike in Win32::API, a single non-array char or CHAR struct member in a
-struct is numeric, NOT the first character of a string. UTF16 strings pointers
-will be garbage on read back (passing in works, returning doesn't) since
-the NULL character will often be the 2nd byte of the UTF16 string.
-
-=item C<new NAME>
-
-This creates a structure (a Win32::API::Struct object) of the
-type C<NAME> (it must have been defined with C<typedef>). In Perl,
-when you create a structure, all the members are undefined. But
-when you use that structure in C (eg. a Win32::API call), you
-can safely assume that they will be treated as zero (or NULL).
-
-=item C<sizeof>
-
-This returns the size, in bytes, of the structure. Acts just like
-the C function of the same name. It is particularly useful for
-structures that need a member to be initialized to the structure's
-own size.
-
-=item C<align [SIZE]>
-
-Sets or returns the structure alignment (eg. how the structure is
-stored in memory). This is a very advanced option, and you normally
-don't need to mess with it.
-All structures in the Win32 Platform SDK should work without it.
-But if you define your own structure, you may need to give it an
-explicit alignment. In most cases, passing a C<SIZE> of 'auto'
-should keep the world happy.
-
-=back
-
-=head2 THE C<tie> INTERFACE
-
-Instead of creating an object with the C<new> method, you can
-tie a hash, which will hold the desired structure, using the
-C<tie> builtin function:
-
- tie %structure, Win32::API::Struct => 'NAME';
-
-The differences between the tied and non-tied approaches are:
-
-=over 4
-
-=item *
-with tied structures, you can access members directly as
-hash lookups, eg.
-
- # tied # non-tied
- $Point{x} vs. $Point->{x}
-
-=item *
-with tied structures, when you try to fetch or store a
-member that is not part of the structure, it will result
-in a warning, eg.
-
- print $Point{z};
- # this will warn: 'z' is not a member of Win32::API::Struct POINT
-
-=item *
-when you pass a tied structure as a Win32::API parameter,
-remember to backslash it, eg.
-
- # tied # non-tied
- GetCursorPos( \%Point ) vs. GetCursorPos( $Point )
-
-=back
-
-=head2 FOREIGN MEMORY ALLOCATORS
-
-Using Win32::API::Struct is not recommended in situations where a C function
-will return results to you by putting a pointer to a string or a pointer to
-another struct into your supplied struct. Win32::API::Struct will do its best
-to detect that a new pointer appeared and to read it contents into Perl, but
-that pointer will be tossed away after being read. If this pointer is
-something you must explicitly free, you have leaked it by using
-Win32::API::Struct to decode it. If this pointer is something you must pass back to
-the C API you are using, you lost/leaked it. If you pass NULL, or a ::Struct
-pointer in a ::Struct to C API, after the C API call, ::Struct will detect the
-pointer changed, it will read the new struct from the new pointer into
-Perl, and a new child ::Struct will appear in the hash slice
-of the parent ::Struct, if you pass this new child ::Struct into the C API
-it will be a B<COPY> of the struct the C API from Perl's allocation placed
-in the parent ::Struct. For C++-like APIs, this will be unacceptable and lead to
-crashes as the C Functions tries to free a memory block that didn't come from the
-allocator of the C Function. Windows has many memory allocators, each CRT
-(VS 2, 3, 4, 5, NT/6, 7.0, 7.1, 8, 9, 10) malloc, LocalAlloc, GlobalAlloc,
-HeapAlloc, (each version of C++ Runtime Library) "new", CoGetMalloc, CoTaskMemAlloc,
-NetApiBufferAllocate, VirtualAlloc, CryptMemAlloc, AllocADsMem, SHAlloc,
-SnmpUtilMemAlloc. None of these allocators' pointers are compatible with Perl's
-allocator. Some C APIs give you static global buffers which never are freed or freed
-automatically in the next call to a function from to that DLL.
-
-With foreign allocators, its best to treat to write a pointer class, bless the
-ref to scalar integer (holding the pointer) into that class to ensure that the
-DESTROY method will free the pointer and you never leak it, and your write
-method accessors using L<perlfunc/pack>, L<Win32::API/ReadMemory> and
-L<Win32::API/WriteMemory> around the pointer.
-
-
-=head1 AUTHOR
-
-Aldo Calpini ( I<dada@perl.it> ).
-
-=head1 MAINTAINER
-
-Cosimo Streppone ( I<cosimo@cpan.org> ).
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Win32/API/Test.pm b/Master/tlpkg/tlperl/lib/Win32/API/Test.pm
deleted file mode 100644
index cd96b7c2b8d..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/API/Test.pm
+++ /dev/null
@@ -1,144 +0,0 @@
-#
-# Win32::API::Test - Test helper package for Win32::API
-#
-# Cosimo Streppone <cosimo@cpan.org>
-#
-
-package Win32::API::Test;
-use strict;
-use warnings;
-
-sub is_perl_64bit () {
- use Config;
-
- # was $Config{archname} =~ /x64/;
- return 1 if $Config{ptrsize} == 8;
- return;
-}
-
-sub can_fork () {
- use Config;
-
- my $native = $Config{d_fork} || $Config{d_pseudofork};
- my $win32 = ($^O eq 'MSWin32' || $^O eq 'NetWare');
- my $ithr = $Config{useithreads} and $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/;
-
- return $native || ($win32 and $ithr);
-}
-
-sub compiler_name () {
- use Config;
- my $cc = $Config{ccname};
- if ($cc eq 'cl' || $cc eq 'cl.exe') {
- $cc = 'cl';
- }
- return ($cc);
-}
-
-sub compiler_version () {
- use Config;
- my $ver = $Config{ccversion} || 0;
- if ($ver =~ /^(\d+\.\d+)/) {
- $ver = 0 + $1;
- }
- return ($ver);
-}
-
-#
-# Run the compiler and get version from there...
-# User might be running a compiler different from
-# that used to build perl.
-# For example, Cosimo does. For testing, of course.
-#
-sub compiler_version_from_shell () {
- my $cc = compiler_name();
- my $ver;
-
- # MSVC
- if ($cc eq 'cl') {
- my @ver = `$cc 2>&1`; # Interesting output in STDERR
- $ver = join('', @ver);
-
- #print 'VER:'.$ver.':'."\n";
- if ($ver =~ /Version (\d[\d\.]+)/ms) {
- $ver = $1;
- }
- }
-
- # GCC
- elsif ($cc eq 'cc' || $cc eq 'gcc' || $cc eq 'winegcc') {
- $ver = join('', `$cc --version`);
- if ($ver =~ /gcc.*(\d[\d+]+)/ms) {
- $ver = $1;
- }
- }
-
- # Borland C
- elsif ($cc eq 'bcc32' || $cc eq 'bcc') {
- $ver = join('', `$cc 2>&1`);
- if ($ver =~ /Borland C\+\+ (\d[\d\.]+)/ms) {
- $ver = $1;
- }
- }
- return ($ver);
-}
-
-sub find_test_dll {
- require File::Spec;
- my $dll;
- my $default_dll_name =
- is_perl_64bit()
- ? 'API_test64.dll'
- : 'API_test.dll';
-
- my $dll_name = $_[0] || $default_dll_name;
-
- my @paths = qw(.. ../t ../t/dll . ./dll ./t/dll);
- while (my $path = shift @paths) {
- $dll = File::Spec->catfile($path, $dll_name);
- return $dll if -s $dll;
- }
- return (undef);
-}
-
-#const optimize
-BEGIN {
- package main;
- use Config;
- eval ' sub PTR_LET () { "'
- .($Config{ptrsize} == 8 ? 'Q' : 'L').
- '" }';
- eval 'sub IV_LET () { '.($] <= 5.007002 ? 'L':'J').' }';
- eval 'sub IV_SIZE () { '.length(pack(IV_LET(),0)).' }';
- package Win32::API::Test;
-}
-
-1;
-
-__END__
-
-
-#######################################################################
-# DOCUMENTATION
-#
-
-=head1 NAME
-
-Win32::API::Test - Test helper package for Win32::API
-
-=head1 SYNOPSIS
-
- my $test_dll = Win32::API::Test::find_test_dll('API_test.dll');
-
-Check the t/*.t test scripts for more details.
-
-=head1 DESCRIPTION
-
-Simple package to hold Win32::API test suite helper functions.
-No more, no less.
-
-=head1 AUTHOR
-
-Cosimo Streppone ( I<cosimo@cpan.org> )
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Win32/API/Type.pm b/Master/tlpkg/tlperl/lib/Win32/API/Type.pm
deleted file mode 100644
index 0bdfb4fabf0..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/API/Type.pm
+++ /dev/null
@@ -1,606 +0,0 @@
-package Win32::API::Type;
-
-# See the bottom of this file for the POD documentation. Search for the
-# string '=head'.
-
-#######################################################################
-#
-# Win32::API::Type - Perl Win32 API type definitions
-#
-# Author: Aldo Calpini <dada@perl.it>
-# Maintainer: Cosimo Streppone <cosimo@cpan.org>
-#
-#######################################################################
-
-use strict;
-use warnings;
-use vars qw( %Known %PackSize %Modifier %Pointer $VERSION @ISA );
-
-$VERSION = '0.69';
-
-use Carp;
-BEGIN{
-use Config;
-}
-require Exporter; # to export the constants to the main:: space
-require DynaLoader; # to dynuhlode the module.
-@ISA = qw( Exporter DynaLoader );
-
-sub DEBUG {
- if ($Win32::API::DEBUG) {
- printf @_ if @_ or return 1;
- }
- else {
- return 0;
- }
-}
-
-sub pointer_pack_type ();
-%Known = ();
-%PackSize = ();
-%Modifier = ();
-%Pointer = ();
-
-# Initialize data structures at startup.
-# Aldo wants to keep the <DATA> approach.
-#
-my $section = 'nothing';
-foreach (<DATA>) {
- next if /^\s*#/ or /^\s*$/;
- chomp;
- if (/\[(.+)\]/) {
- $section = $1;
- next;
- }
- if ($section eq 'TYPE') {
- my ($name, $packing) = split(/\s+/);
-
- # DEBUG "(PM)Type::INIT: Known('$name') => '$packing'\n";
- if ($packing eq '_P') {
- $packing = pointer_pack_type();
- }
- $Known{$name} = $packing;
- }
- elsif ($section eq 'PACKSIZE') {
- my ($packing, $size) = split(/\s+/);
-
- # DEBUG "(PM)Type::INIT: PackSize('$packing') => '$size'\n";
- if ($size eq '_P') {
- $size = $Config{ptrsize};
- }
- $PackSize{$packing} = $size;
- }
- elsif ($section eq 'MODIFIER') {
- my ($modifier, $mapto) = split(/\s+/, $_, 2);
- my %maps = ();
- foreach my $item (split(/\s+/, $mapto)) {
- my ($k, $v) = split(/=/, $item);
- $maps{$k} = $v;
- }
-
- # DEBUG "(PM)Type::INIT: Modifier('$modifier') => '%maps'\n";
- $Modifier{$modifier} = {%maps};
- }
- elsif ($section eq 'POINTER') {
- my ($pointer, $pointto) = split(/\s+/);
-
- # DEBUG "(PM)Type::INIT: Pointer('$pointer') => '$pointto'\n";
- $Pointer{$pointer} = $pointto;
- }
-}
-close(DATA);
-
-sub new {
- my $class = shift;
- my ($type) = @_;
- my $packing = packing($type);
- my $size = sizeof($type);
- my $self = {
- type => $type,
- packing => $packing,
- size => $size,
- };
- return bless $self;
-}
-
-sub typedef {
- my $class = shift;
- my ($name, $type) = @_;
- $type =~ m/^\s*(.*?)\s*$/;
- $type =~ m/^(.+?)\s*(\*)$/;
- $type = $1;
- $type .= $2 if defined $2;
- $name =~ m/^\s*(.*?)\s*$/;
- $name =~ m/^(.+?)\s*(\*)$/;
- $name = $1;
- $name .= $2 if defined $2;
- #FIXME BUG, unsigned __int64 * doesn't pase in typedef, it does in parse_prototype
- my $packing = packing($type, $name); #FIXME BUG
- if(! defined $packing){
- warn "Win32::API::Type::typedef: WARNING unknown type '$_[1]'";
- return undef;
- }
- #Win32::API::Struct logic
- #limitation, this won't alias a new struct type to an existing struct type
- #this only creates new struct type pointer types to an existing struct type
- if($packing eq '>'){
- if(is_pointer($type)){
- $packing = 'T';
- $type =~ s/\s*\*$//; #chop off ' *'
- $Win32::API::Struct::Pointer{$name} = $type;
- }
- else{
- warn "Win32::API::Type::typedef: aliasing struct \"".$_[0]
- ."\" to struct \"".$_[1]."\" not supported";
- return undef;
- }
- }
- DEBUG "(PM)Type::typedef: packing='$packing'\n";
- if($packing eq 'p'){
- $Pointer{$name} = $Pointer{$type};
- }else{
- $Known{$name} = $packing;
- }
- return 1;
-}
-
-
-sub is_known {
- my $self = shift;
- my $type = shift;
- $type = $self unless defined $type;
- if (ref($type) =~ /Win32::API::Type/) {
- return 1;
- }
- else {
- return defined packing($type);
- }
-}
-
-#const optimize
-BEGIN {
- eval ' sub pointer_pack_type () { "'
- .($Config{ptrsize} == 8 ? 'Q' : 'L').
- '" }';
-}
-
-sub sizeof {
- my $self = shift;
- my $type = shift;
- $type = $self unless defined $type;
- if (ref($type) =~ /Win32::API::Type/) {
- return $self->{size};
- }
- else {
- my $packing = packing($type);
- if ($packing =~ /(\w)\*(\d+)/) {
- return $PackSize{$1} * $2;
- }
- else {
- return $PackSize{$packing};
- }
- }
-}
-# $packing_letter = packing( [$class = 'Win32::API::Type' ,] $type [, $pass_numeric])
-sub packing {
-
- # DEBUG "(PM)Type::packing: called by ". join("::", (caller(1))[0,3]). "\n";
- my $self = shift;
- my $is_pointer = 0;
- if (ref($self) =~ /Win32::API::Type/) {
-
- # DEBUG "(PM)Type::packing: got an object\n";
- return $self->{packing};
- }
- my $type = ($self eq 'Win32::API::Type') ? shift : $self;
- my $name = shift;
- my $pass_numeric = shift;
-
- # DEBUG "(PM)Type::packing: got '$type', '$name'\n";
- my ($modifier, $size, $packing);
- if (exists $Pointer{$type}) {
-
- # DEBUG "(PM)Type::packing: got '$type', is really '$Pointer{$type}'\n";
- $type = $Pointer{$type};
- $is_pointer = 1;
- }
- elsif ($type =~ /(\w+)\s+(\w+)/) {
- $modifier = $1;
- $type = $2;
-
- # DEBUG "(PM)packing: got modifier '$modifier', type '$type'\n";
- }
-
- $type =~ s/\s*\*$//; #kill whitespace "CHAR " isn't "CHAR"
-
- if (exists $Known{$type}) {
- if (defined $name and $name =~ s/\[(.*)\]$//) {
- $size = $1;
- $packing = $Known{$type}[0] . "*" . $size;
-
- # DEBUG "(PM)Type::packing: composite packing: '$packing' '$size'\n";
- }
- else {
- $packing = $Known{$type};
- if ($is_pointer and ($packing eq 'c' or $packing eq 'S')) {
- $packing = "p";
- }
-
- # DEBUG "(PM)Type::packing: simple packing: '$packing'\n";
- }
- if (defined $modifier and exists $Modifier{$modifier}->{$type}) {
-
-# DEBUG "(PM)Type::packing: applying modifier '$modifier' -> '$Modifier{$modifier}->{$type}'\n";
- $packing = $Modifier{$modifier}->{$type};
- if(!$pass_numeric) { #for older num unaware calls
- substr($packing, 0, length("num"), '');
- }
- }
- return $packing;
- }
- else {
-
- # DEBUG "(PM)Type::packing: NOT FOUND\n";
- return undef;
- }
-}
-
-
-sub is_pointer {
- my $self = shift;
- my $type = shift;
- $type = $self unless defined $type;
- if (ref($type) =~ /Win32::API::Type/) {
- return 1;
- }
- else {
- if ($type =~ /\*$/) {
- return 1;
- }
- else {
- return exists $Pointer{$type};
- }
- }
-}
-
-sub Pack {
- my $type = $_[1];
-
- my $pack_type = packing($type);
- #print "Pack: type $type pack_type $pack_type\n";
- if ($pack_type eq 'p') { #char or wide char pointer
- #$pack_type = 'Z*';
- return;
- }
- elsif(IVSIZE() == 4 && ($pack_type eq 'q' || $pack_type eq 'Q')){
- if($_[0]->UseMI64() || ref($_[2])){ #un/signed meaningless
- $_[2] = Math::Int64::int64_to_native($_[2]);
- }
- else{
- if(length($_[2]) < 8){
- warn("Win32::API::Call value for 64 bit integer is under 8 bytes long");
- $_[2] = pack('a8', $_[2]);
- }
- }
- return;
- }
- $_[2] = pack($pack_type, $_[2]);
- return;
-}
-
-sub Unpack {
- my $type = $_[1];
-
- my $pack_type = packing($type);
-
- if ($pack_type eq 'p') {
- DEBUG "(PM)Type::Unpack: got packing 'p': is a pointer\n";
- #$pack_type = 'Z*';
- return;
- }
- elsif(IVSIZE() == 4){
- #todo debugging output
- if($pack_type eq 'q'){
- if($_[0]->UseMI64() || ref($_[2])){
- $_[2] = Math::Int64::native_to_int64($_[2]);
- DEBUG "(PM)Type::Unpack: returning signed Math::Int64 '".$_[2]."'\n";
- }
- return;
- }elsif($pack_type eq 'Q'){
- if($_[0]->UseMI64() || ref($_[2])){
- $_[2] = Math::Int64::native_to_uint64($_[2]);
- DEBUG "(PM)Type::Unpack: returning unsigned Math::Int64 '".$_[2]."'\n";
- }
- return;
- }
- }
- DEBUG "(PM)Type::Unpack: unpacking '$pack_type' '$_[2]'\n";
- $_[2] = unpack($pack_type, $_[2]);
- DEBUG "(PM)Type::Unpack: returning '" . ($_[2] || '') . "'\n";
-}
-
-1;
-
-#######################################################################
-# DOCUMENTATION
-#
-
-=head1 NAME
-
-Win32::API::Type - C type support package for Win32::API
-
-=head1 SYNOPSIS
-
- use Win32::API;
-
- Win32::API::Type->typedef( 'my_number', 'LONG' );
-
-
-=head1 ABSTRACT
-
-This module is a support package for Win32::API that implements
-C types for the import with prototype functionality.
-
-See L<Win32::API> for more info about its usage.
-
-=head1 DESCRIPTION
-
-This module is automatically imported by Win32::API, so you don't
-need to 'use' it explicitly. These are the methods of this package:
-
-=over 4
-
-=item C<typedef NAME, TYPE>
-
-This method defines a new type named C<NAME>. This actually just
-creates an alias for the already-defined type C<TYPE>, which you
-can use as a parameter in a Win32::API call.
-
-When C<TYPE> contains a Win32::API::Struct type declared with
-L<Win32::API::Struct/typedef> with " *" postfixed to C<TYPE> parameter,
-C<NAME> will be a alias for the pointer version of the struct type. Creating
-an alias for a struct type is not supported, you have to call
-L<Win32::API::Struct/typedef> again. Passing a struct type as C<TYPE>
-without the " *" postfix is not supported.
-
-L<Warns|perlfunc/warn> and returns undef if C<TYPE> is unknown, else returns true.
-
-=item C<sizeof TYPE>
-
-This returns the size, in bytes, of C<TYPE>. Acts just like
-the C function of the same name.
-
-=item C<is_known TYPE>
-
-Returns true if C<TYPE> is known by Win32::API::Type, false
-otherwise.
-
-=back
-
-=head2 SUPPORTED TYPES
-
-This module recognizes many commonly used types defined in the Win32 Platform
-SDK header files, but not all. Types less than 13 years old are very unlikely
-to be the in built type database.
-
-Please see the source for this module, in the C<__DATA__> section,
-for the full list of builtin supported types.
-
-
-=head2 NOTES ON SELECT TYPES
-
-=over 4
-
-=item LPVOID
-
-Due to poor design, currently LPVOID is a char *, a string, not a number.
-It should really be a number. It is suggested to replace LPVOID in your
-C prototypes passed to Win32::API with UINT_PTR which is a pointer
-sized number.
-
-=item SOMETYPE **
-
-Currently ** types do not parse.
-
-=item void **
-
-Replace void ** in your C prototype that you pass to Win32::API::More with
-LPHANDLE.
-
-=item unsigned char
-
-=item signed char
-
-These 2 types by name force numeric handling. C<97> not C<"a">. C<UCHAR> is
-not a C<unsigned char> for numeric handling purposes.
-
-=back
-
-=head1 AUTHOR
-
-Aldo Calpini ( I<dada@perl.it> ).
-
-=head1 MAINTAINER
-
-Cosimo Streppone ( I<cosimo@cpan.org> ).
-
-=cut
-
-
-__DATA__
-
-[TYPE]
-ATOM s
-BOOL L
-BOOLEAN c
-BYTE C
-CHAR c
-COLORREF L
-DWORD L
-DWORD32 L
-DWORD64 Q
-DWORD_PTR _P
-FLOAT f
-HACCEL _P
-HANDLE _P
-HBITMAP _P
-HBRUSH _P
-HCOLORSPACE _P
-HCONV _P
-HCONVLIST _P
-HCURSOR _P
-HDC _P
-HDDEDATA _P
-HDESK _P
-HDROP _P
-HDWP _P
-HENHMETAFILE _P
-HFILE _P
-HFONT _P
-HGDIOBJ _P
-HGLOBAL _P
-HHOOK _P
-HICON _P
-HIMC _P
-HINSTANCE _P
-HKEY _P
-HKL _P
-HLOCAL _P
-HMENU _P
-HMETAFILE _P
-HMODULE _P
-HPALETTE _P
-HPEN _P
-HRGN _P
-HRSRC _P
-HSZ _P
-HWINSTA _P
-HWND _P
-INT i
-INT32 i
-INT64 q
-LANGID s
-LCID L
-LCSCSTYPE L
-LCSGAMUTMATCH L
-LCTYPE L
-LONG l
-LONG32 l
-LONG64 q
-LONGLONG q
-LPARAM _P
-LRESULT _P
-NTSTATUS l
-REGSAM L
-SC_HANDLE _P
-SC_LOCK _P
-SERVICE_STATUS_HANDLE _P
-SHORT s
-SIZE_T _P
-SSIZE_T _P
-TBYTE c
-TCHAR C
-UCHAR C
-UINT I
-UINT_PTR _P
-UINT32 I
-UINT64 Q
-ULONG L
-ULONG32 L
-ULONG64 Q
-ULONGLONG Q
-USHORT S
-WCHAR S
-WORD S
-WPARAM _P
-VOID c
-
-int i
-long l
-float f
-double d
-char c
-short s
-void c
-__int64 q
-
-#VOID is a 'c'? huh?
-#making void be a 'c' too, ~bulk88
-#CRITICAL_SECTION 24 -- a structure
-#LUID ? 8 -- a structure
-#VOID 0
-#CONST 4
-#FILE_SEGMENT_ELEMENT 8 -- a structure
-
-[PACKSIZE]
-c 1
-C 1
-d 8
-f 4
-i 4
-I 4
-l 4
-L 4
-q 8
-Q 8
-s 2
-S 2
-p _P
-T _P
-t _P
-
-[MODIFIER]
-unsigned int=numI long=numL short=numS char=numC
-signed int=numi long=numl short=nums char=numc
-
-[POINTER]
-INT_PTR INT
-LPBOOL BOOL
-LPBYTE BYTE
-LPCOLORREF COLORREF
-LPCSTR CHAR
-#LPCTSTR CHAR or WCHAR
-LPCTSTR CHAR
-LPCVOID any
-LPCWSTR WCHAR
-LPDOUBLE double
-LPDWORD DWORD
-LPHANDLE HANDLE
-LPINT INT
-LPLONG LONG
-LPSTR CHAR
-#LPTSTR CHAR or WCHAR
-LPTSTR CHAR
-LPVOID VOID
-LPWORD WORD
-LPWSTR WCHAR
-
-PBOOL BOOL
-PBOOLEAN BOOL
-PBYTE BYTE
-PCHAR CHAR
-PCSTR CSTR
-PCWCH CWCH
-PCWSTR CWSTR
-PDWORD DWORD
-PFLOAT FLOAT
-PHANDLE HANDLE
-PHKEY HKEY
-PINT INT
-PLCID LCID
-PLONG LONG
-PSHORT SHORT
-PSTR CHAR
-#PTBYTE TBYTE --
-#PTCHAR TCHAR --
-#PTSTR CHAR or WCHAR
-PTSTR CHAR
-PUCHAR UCHAR
-PUINT UINT
-PULONG ULONG
-PUSHORT USHORT
-PVOID VOID
-PWCHAR WCHAR
-PWORD WORD
-PWSTR WCHAR
-char* CHAR
diff --git a/Master/tlpkg/tlperl/lib/Win32/Console.pm b/Master/tlpkg/tlperl/lib/Win32/Console.pm
deleted file mode 100644
index 2e41c2a83d5..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/Console.pm
+++ /dev/null
@@ -1,1463 +0,0 @@
-#######################################################################
-#
-# Win32::Console - Win32 Console and Character Mode Functions
-#
-#######################################################################
-
-package Win32::Console;
-
-require Exporter;
-require DynaLoader;
-
-$VERSION = "0.10";
-
-@ISA= qw( Exporter DynaLoader );
-@EXPORT = qw(
- BACKGROUND_BLUE
- BACKGROUND_GREEN
- BACKGROUND_INTENSITY
- BACKGROUND_RED
- CAPSLOCK_ON
- CONSOLE_TEXTMODE_BUFFER
- CTRL_BREAK_EVENT
- CTRL_C_EVENT
- ENABLE_ECHO_INPUT
- ENABLE_LINE_INPUT
- ENABLE_MOUSE_INPUT
- ENABLE_PROCESSED_INPUT
- ENABLE_PROCESSED_OUTPUT
- ENABLE_WINDOW_INPUT
- ENABLE_WRAP_AT_EOL_OUTPUT
- ENHANCED_KEY
- FILE_SHARE_READ
- FILE_SHARE_WRITE
- FOREGROUND_BLUE
- FOREGROUND_GREEN
- FOREGROUND_INTENSITY
- FOREGROUND_RED
- LEFT_ALT_PRESSED
- LEFT_CTRL_PRESSED
- NUMLOCK_ON
- GENERIC_READ
- GENERIC_WRITE
- RIGHT_ALT_PRESSED
- RIGHT_CTRL_PRESSED
- SCROLLLOCK_ON
- SHIFT_PRESSED
- STD_INPUT_HANDLE
- STD_OUTPUT_HANDLE
- STD_ERROR_HANDLE
- $FG_BLACK
- $FG_GRAY
- $FG_BLUE
- $FG_LIGHTBLUE
- $FG_RED
- $FG_LIGHTRED
- $FG_GREEN
- $FG_LIGHTGREEN
- $FG_MAGENTA
- $FG_LIGHTMAGENTA
- $FG_CYAN
- $FG_LIGHTCYAN
- $FG_BROWN
- $FG_YELLOW
- $FG_LIGHTGRAY
- $FG_WHITE
- $BG_BLACK
- $BG_GRAY
- $BG_BLUE
- $BG_LIGHTBLUE
- $BG_RED
- $BG_LIGHTRED
- $BG_GREEN
- $BG_LIGHTGREEN
- $BG_MAGENTA
- $BG_LIGHTMAGENTA
- $BG_CYAN
- $BG_LIGHTCYAN
- $BG_BROWN
- $BG_YELLOW
- $BG_LIGHTGRAY
- $BG_WHITE
- $ATTR_NORMAL
- $ATTR_INVERSE
- @CONSOLE_COLORS
-);
-
-
-#######################################################################
-# This AUTOLOAD is used to 'autoload' constants from the constant()
-# XS function. If a constant is not found then control is passed
-# to the AUTOLOAD in AutoLoader.
-#
-
-sub AUTOLOAD {
- my($constname);
- ($constname = $AUTOLOAD) =~ s/.*:://;
- #reset $! to zero to reset any current errors.
- local $! = 0;
- my $val = constant($constname, @_ ? $_[0] : 0);
- if ($! != 0) {
-# if ($! =~ /Invalid/) {
-# $AutoLoader::AUTOLOAD = $AUTOLOAD;
-# goto &AutoLoader::AUTOLOAD;
-# } else {
- ($pack, $file, $line) = caller; undef $pack;
- die "Symbol Win32::Console::$constname not defined, used at $file line $line.";
-# }
- }
- eval "sub $AUTOLOAD { $val }";
- goto &$AUTOLOAD;
-}
-
-
-#######################################################################
-# STATIC OBJECT PROPERTIES
-#
-
-# %HandlerRoutineStack = ();
-# $HandlerRoutineRegistered = 0;
-
-#######################################################################
-# PUBLIC METHODS
-#
-
-#========
-sub new {
-#========
- my($class, $param1, $param2) = @_;
-
- my $self = {};
-
- if (defined($param1)
- and ($param1 == constant("STD_INPUT_HANDLE", 0)
- or $param1 == constant("STD_OUTPUT_HANDLE", 0)
- or $param1 == constant("STD_ERROR_HANDLE", 0)))
- {
- $self->{'handle'} = _GetStdHandle($param1);
- }
- else {
- $param1 = constant("GENERIC_READ", 0) | constant("GENERIC_WRITE", 0) unless $param1;
- $param2 = constant("FILE_SHARE_READ", 0) | constant("FILE_SHARE_WRITE", 0) unless $param2;
- $self->{'handle'} = _CreateConsoleScreenBuffer($param1, $param2,
- constant("CONSOLE_TEXTMODE_BUFFER", 0));
- }
- bless $self, $class;
- return $self;
-}
-
-#============
-sub Display {
-#============
- my($self) = @_;
- return undef unless ref($self);
- return _SetConsoleActiveScreenBuffer($self->{'handle'});
-}
-
-#===========
-sub Select {
-#===========
- my($self, $type) = @_;
- return undef unless ref($self);
- return _SetStdHandle($type, $self->{'handle'});
-}
-
-#===========
-sub SetIcon {
-#===========
- my($self, $icon) = @_;
- $icon = $self unless ref($self);
- return _SetConsoleIcon($icon);
-}
-
-#==========
-sub Title {
-#==========
- my($self, $title) = @_;
- $title = $self unless ref($self);
-
- if (defined($title)) {
- return _SetConsoleTitle($title);
- }
- else {
- return _GetConsoleTitle();
- }
-}
-
-#==============
-sub WriteChar {
-#==============
- my($self, $text, $col, $row) = @_;
- return undef unless ref($self);
- return _WriteConsoleOutputCharacter($self->{'handle'},$text,$col,$row);
-}
-
-#=============
-sub ReadChar {
-#=============
- my($self, $size, $col, $row) = @_;
- return undef unless ref($self);
-
- my $buffer = (" " x $size);
- if (_ReadConsoleOutputCharacter($self->{'handle'}, $buffer, $size, $col, $row)) {
- return $buffer;
- }
- else {
- return undef;
- }
-}
-
-#==============
-sub WriteAttr {
-#==============
- my($self, $attr, $col, $row) = @_;
- return undef unless ref($self);
- return _WriteConsoleOutputAttribute($self->{'handle'}, $attr, $col, $row);
-}
-
-#=============
-sub ReadAttr {
-#=============
- my($self, $size, $col, $row) = @_;
- return undef unless ref($self);
- return _ReadConsoleOutputAttribute($self->{'handle'}, $size, $col, $row);
-}
-
-#==========
-sub Write {
-#==========
- my($self,$string) = @_;
- return undef unless ref($self);
- return _WriteConsole($self->{'handle'}, $string);
-}
-
-#=============
-sub ReadRect {
-#=============
- my($self, $left, $top, $right, $bottom) = @_;
- return undef unless ref($self);
-
- my $col = $right - $left + 1;
- my $row = $bottom - $top + 1;
-
- my $buffer = (" " x ($col*$row*4));
- if (_ReadConsoleOutput($self->{'handle'}, $buffer,
- $col, $row, 0, 0,
- $left, $top, $right, $bottom))
- {
- return $buffer;
- }
- else {
- return undef;
- }
-}
-
-#==============
-sub WriteRect {
-#==============
- my($self, $buffer, $left, $top, $right, $bottom) = @_;
- return undef unless ref($self);
-
- my $col = $right - $left + 1;
- my $row = $bottom - $top + 1;
-
- return _WriteConsoleOutput($self->{'handle'}, $buffer,
- $col, $row, 0, 0,
- $left, $top, $right, $bottom);
-}
-
-#===========
-sub Scroll {
-#===========
- my($self, $left1, $top1, $right1, $bottom1,
- $col, $row, $char, $attr,
- $left2, $top2, $right2, $bottom2) = @_;
- return undef unless ref($self);
-
- return _ScrollConsoleScreenBuffer($self->{'handle'},
- $left1, $top1, $right1, $bottom1,
- $col, $row, $char, $attr,
- $left2, $top2, $right2, $bottom2);
-}
-
-#==============
-sub MaxWindow {
-#==============
- my($self, $flag) = @_;
- return undef unless ref($self);
-
- if (not defined($flag)) {
- my @info = _GetConsoleScreenBufferInfo($self->{'handle'});
- return $info[9], $info[10];
- }
- else {
- return _GetLargestConsoleWindowSize($self->{'handle'});
- }
-}
-
-#=========
-sub Info {
-#=========
- my($self) = @_;
- return undef unless ref($self);
- return _GetConsoleScreenBufferInfo($self->{'handle'});
-}
-
-#===========
-sub Window {
-#===========
- my($self, $flag, $left, $top, $right, $bottom) = @_;
- return undef unless ref($self);
-
- if (not defined($flag)) {
- my @info = _GetConsoleScreenBufferInfo($self->{'handle'});
- return $info[5], $info[6], $info[7], $info[8];
- }
- else {
- return _SetConsoleWindowInfo($self->{'handle'}, $flag, $left, $top, $right, $bottom);
- }
-}
-
-#==============
-sub GetEvents {
-#==============
- my($self) = @_;
- return undef unless ref($self);
- return _GetNumberOfConsoleInputEvents($self->{'handle'});
-}
-
-#==========
-sub Flush {
-#==========
- my($self) = @_;
- return undef unless ref($self);
- return _FlushConsoleInputBuffer($self->{'handle'});
-}
-
-#==============
-sub InputChar {
-#==============
- my($self, $number) = @_;
- return undef unless ref($self);
-
- $number = 1 unless defined($number);
-
- my $buffer = (" " x $number);
- if (_ReadConsole($self->{'handle'}, $buffer, $number) == $number) {
- return $buffer;
- }
- else {
- return undef;
- }
-}
-
-#==========
-sub Input {
-#==========
- my($self) = @_;
- return undef unless ref($self);
- return _ReadConsoleInput($self->{'handle'});
-}
-
-#==============
-sub PeekInput {
-#==============
- my($self) = @_;
- return undef unless ref($self);
- return _PeekConsoleInput($self->{'handle'});
-}
-
-#===============
-sub WriteInput {
-#===============
- my($self) = shift;
- return undef unless ref($self);
- return _WriteConsoleInput($self->{'handle'}, @_);
-}
-
-#=========
-sub Mode {
-#=========
- my($self, $mode) = @_;
- return undef unless ref($self);
- if (defined($mode)) {
- return _SetConsoleMode($self->{'handle'}, $mode);
- }
- else {
- return _GetConsoleMode($self->{'handle'});
- }
-}
-
-#========
-sub Cls {
-#========
- my($self, $attr) = @_;
- return undef unless ref($self);
-
- $attr = $ATTR_NORMAL unless defined($attr);
-
- my ($x, $y) = $self->Size();
- my($left, $top, $right ,$bottom) = $self->Window();
- my $vx = $right - $left;
- my $vy = $bottom - $top;
- $self->FillChar(" ", $x*$y, 0, 0);
- $self->FillAttr($attr, $x*$y, 0, 0);
- $self->Cursor(0, 0);
- $self->Window(1, 0, 0, $vx, $vy);
-}
-
-#=========
-sub Attr {
-#=========
- my($self, $attr) = @_;
- return undef unless ref($self);
-
- if (not defined($attr)) {
- return (_GetConsoleScreenBufferInfo($self->{'handle'}))[4];
- }
- else {
- return _SetConsoleTextAttribute($self->{'handle'}, $attr);
- }
-}
-
-#===========
-sub Cursor {
-#===========
- my($self, $col, $row, $size, $visi) = @_;
- return undef unless ref($self);
-
- my $curr_row = 0;
- my $curr_col = 0;
- my $curr_size = 0;
- my $curr_visi = 0;
- my $return = 0;
- my $discard = 0;
-
-
- if (defined($col)) {
- $row = -1 if not defined($row);
- if ($col == -1 or $row == -1) {
- ($discard, $discard, $curr_col, $curr_row) = _GetConsoleScreenBufferInfo($self->{'handle'});
- $col=$curr_col if $col==-1;
- $row=$curr_row if $row==-1;
- }
- $return += _SetConsoleCursorPosition($self->{'handle'}, $col, $row);
- if (defined($size) and defined($visi)) {
- if ($size == -1 or $visi == -1) {
- ($curr_size, $curr_visi) = _GetConsoleCursorInfo($self->{'handle'});
- $size = $curr_size if $size == -1;
- $visi = $curr_visi if $visi == -1;
- }
- $size = 1 if $size < 1;
- $size = 99 if $size > 99;
- $return += _SetConsoleCursorInfo($self->{'handle'}, $size, $visi);
- }
- return $return;
- }
- else {
- ($discard, $discard, $curr_col, $curr_row) = _GetConsoleScreenBufferInfo($self->{'handle'});
- ($curr_size, $curr_visi) = _GetConsoleCursorInfo($self->{'handle'});
- return ($curr_col, $curr_row, $curr_size, $curr_visi);
- }
-}
-
-#=========
-sub Size {
-#=========
- my($self, $col, $row) = @_;
- return undef unless ref($self);
-
- if (not defined($col)) {
- ($col, $row) = _GetConsoleScreenBufferInfo($self->{'handle'});
- return ($col, $row);
- }
- else {
- $row = -1 if not defined($row);
- if ($col == -1 or $row == -1) {
- ($curr_col, $curr_row) = _GetConsoleScreenBufferInfo($self->{'handle'});
- $col=$curr_col if $col==-1;
- $row=$curr_row if $row==-1;
- }
- return _SetConsoleScreenBufferSize($self->{'handle'}, $col, $row);
- }
-}
-
-#=============
-sub FillAttr {
-#=============
- my($self, $attr, $number, $col, $row) = @_;
- return undef unless ref($self);
-
- $number = 1 unless $number;
-
- if (!defined($col) or !defined($row) or $col == -1 or $row == -1) {
- ($discard, $discard,
- $curr_col, $curr_row) = _GetConsoleScreenBufferInfo($self->{'handle'});
- $col = $curr_col if !defined($col) or $col == -1;
- $row = $curr_row if !defined($row) or $row == -1;
- }
- return _FillConsoleOutputAttribute($self->{'handle'}, $attr, $number, $col, $row);
-}
-
-#=============
-sub FillChar {
-#=============
- my($self, $char, $number, $col, $row) = @_;
- return undef unless ref($self);
-
- if (!defined($col) or !defined($row) or $col == -1 or $row == -1) {
- ($discard, $discard,
- $curr_col, $curr_row) = _GetConsoleScreenBufferInfo($self->{'handle'});
- $col = $curr_col if !defined($col) or $col == -1;
- $row = $curr_row if !defined($row) or $row == -1;
- }
- return _FillConsoleOutputCharacter($self->{'handle'}, $char, $number, $col, $row);
-}
-
-#============
-sub InputCP {
-#============
- my($self, $codepage) = @_;
- $codepage = $self if (defined($self) and ref($self) ne "Win32::Console");
- if (defined($codepage)) {
- return _SetConsoleCP($codepage);
- }
- else {
- return _GetConsoleCP();
- }
-}
-
-#=============
-sub OutputCP {
-#=============
- my($self, $codepage) = @_;
- $codepage = $self if (defined($self) and ref($self) ne "Win32::Console");
- if (defined($codepage)) {
- return _SetConsoleOutputCP($codepage);
- }
- else {
- return _GetConsoleOutputCP();
- }
-}
-
-#======================
-sub GenerateCtrlEvent {
-#======================
- my($self, $type, $pid) = @_;
- $type = constant("CTRL_C_EVENT", 0) unless defined($type);
- $pid = 0 unless defined($pid);
- return _GenerateConsoleCtrlEvent($type, $pid);
-}
-
-#===================
-#sub SetCtrlHandler {
-#===================
-# my($name, $add) = @_;
-# $add = 1 unless defined($add);
-# my @nor = keys(%HandlerRoutineStack);
-# if ($add == 0) {
-# foreach $key (@nor) {
-# delete $HandlerRoutineStack{$key}, last if $HandlerRoutineStack{$key}==$name;
-# }
-# $HandlerRoutineRegistered--;
-# } else {
-# if ($#nor == -1) {
-# my $r = _SetConsoleCtrlHandler();
-# if (!$r) {
-# print "WARNING: SetConsoleCtrlHandler failed...\n";
-# }
-# }
-# $HandlerRoutineRegistered++;
-# $HandlerRoutineStack{$HandlerRoutineRegistered} = $name;
-# }
-#}
-
-#===================
-sub get_Win32_IPC_HANDLE { # So Win32::IPC can wait on a console handle
-#===================
- $_[0]->{'handle'};
-}
-
-########################################################################
-# PRIVATE METHODS
-#
-
-#================
-#sub CtrlHandler {
-#================
-# my($ctrltype) = @_;
-# my $routine;
-# my $result = 0;
-# CALLEM: foreach $routine (sort { $b <=> $a } keys %HandlerRoutineStack) {
-# #print "CtrlHandler: calling $HandlerRoutineStack{$routine}($ctrltype)\n";
-# $result = &{"main::".$HandlerRoutineStack{$routine}}($ctrltype);
-# last CALLEM if $result;
-# }
-# return $result;
-#}
-
-#============
-sub DESTROY {
-#============
- my($self) = @_;
- _CloseHandle($self->{'handle'});
-}
-
-#######################################################################
-# dynamically load in the Console.pll module.
-#
-
-bootstrap Win32::Console;
-
-#######################################################################
-# ADDITIONAL CONSTANTS EXPORTED IN THE MAIN NAMESPACE
-#
-
-$FG_BLACK = 0;
-$FG_GRAY = constant("FOREGROUND_INTENSITY",0);
-$FG_BLUE = constant("FOREGROUND_BLUE",0);
-$FG_LIGHTBLUE = constant("FOREGROUND_BLUE",0)|
- constant("FOREGROUND_INTENSITY",0);
-$FG_RED = constant("FOREGROUND_RED",0);
-$FG_LIGHTRED = constant("FOREGROUND_RED",0)|
- constant("FOREGROUND_INTENSITY",0);
-$FG_GREEN = constant("FOREGROUND_GREEN",0);
-$FG_LIGHTGREEN = constant("FOREGROUND_GREEN",0)|
- constant("FOREGROUND_INTENSITY",0);
-$FG_MAGENTA = constant("FOREGROUND_RED",0)|
- constant("FOREGROUND_BLUE",0);
-$FG_LIGHTMAGENTA = constant("FOREGROUND_RED",0)|
- constant("FOREGROUND_BLUE",0)|
- constant("FOREGROUND_INTENSITY",0);
-$FG_CYAN = constant("FOREGROUND_GREEN",0)|
- constant("FOREGROUND_BLUE",0);
-$FG_LIGHTCYAN = constant("FOREGROUND_GREEN",0)|
- constant("FOREGROUND_BLUE",0)|
- constant("FOREGROUND_INTENSITY",0);
-$FG_BROWN = constant("FOREGROUND_RED",0)|
- constant("FOREGROUND_GREEN",0);
-$FG_YELLOW = constant("FOREGROUND_RED",0)|
- constant("FOREGROUND_GREEN",0)|
- constant("FOREGROUND_INTENSITY",0);
-$FG_LIGHTGRAY = constant("FOREGROUND_RED",0)|
- constant("FOREGROUND_GREEN",0)|
- constant("FOREGROUND_BLUE",0);
-$FG_WHITE = constant("FOREGROUND_RED",0)|
- constant("FOREGROUND_GREEN",0)|
- constant("FOREGROUND_BLUE",0)|
- constant("FOREGROUND_INTENSITY",0);
-
-$BG_BLACK = 0;
-$BG_GRAY = constant("BACKGROUND_INTENSITY",0);
-$BG_BLUE = constant("BACKGROUND_BLUE",0);
-$BG_LIGHTBLUE = constant("BACKGROUND_BLUE",0)|
- constant("BACKGROUND_INTENSITY",0);
-$BG_RED = constant("BACKGROUND_RED",0);
-$BG_LIGHTRED = constant("BACKGROUND_RED",0)|
- constant("BACKGROUND_INTENSITY",0);
-$BG_GREEN = constant("BACKGROUND_GREEN",0);
-$BG_LIGHTGREEN = constant("BACKGROUND_GREEN",0)|
- constant("BACKGROUND_INTENSITY",0);
-$BG_MAGENTA = constant("BACKGROUND_RED",0)|
- constant("BACKGROUND_BLUE",0);
-$BG_LIGHTMAGENTA = constant("BACKGROUND_RED",0)|
- constant("BACKGROUND_BLUE",0)|
- constant("BACKGROUND_INTENSITY",0);
-$BG_CYAN = constant("BACKGROUND_GREEN",0)|
- constant("BACKGROUND_BLUE",0);
-$BG_LIGHTCYAN = constant("BACKGROUND_GREEN",0)|
- constant("BACKGROUND_BLUE",0)|
- constant("BACKGROUND_INTENSITY",0);
-$BG_BROWN = constant("BACKGROUND_RED",0)|
- constant("BACKGROUND_GREEN",0);
-$BG_YELLOW = constant("BACKGROUND_RED",0)|
- constant("BACKGROUND_GREEN",0)|
- constant("BACKGROUND_INTENSITY",0);
-$BG_LIGHTGRAY = constant("BACKGROUND_RED",0)|
- constant("BACKGROUND_GREEN",0)|
- constant("BACKGROUND_BLUE",0);
-$BG_WHITE = constant("BACKGROUND_RED",0)|
- constant("BACKGROUND_GREEN",0)|
- constant("BACKGROUND_BLUE",0)|
- constant("BACKGROUND_INTENSITY",0);
-
-$ATTR_NORMAL = $FG_LIGHTGRAY|$BG_BLACK;
-$ATTR_INVERSE = $FG_BLACK|$BG_LIGHTGRAY;
-
-for my $fg ($FG_BLACK, $FG_GRAY, $FG_BLUE, $FG_GREEN,
- $FG_CYAN, $FG_RED, $FG_MAGENTA, $FG_BROWN,
- $FG_LIGHTBLUE, $FG_LIGHTGREEN, $FG_LIGHTCYAN,
- $FG_LIGHTRED, $FG_LIGHTMAGENTA, $FG_YELLOW,
- $FG_LIGHTGRAY, $FG_WHITE)
-{
- for my $bg ($BG_BLACK, $BG_GRAY, $BG_BLUE, $BG_GREEN,
- $BG_CYAN, $BG_RED, $BG_MAGENTA, $BG_BROWN,
- $BG_LIGHTBLUE, $BG_LIGHTGREEN, $BG_LIGHTCYAN,
- $BG_LIGHTRED, $BG_LIGHTMAGENTA, $BG_YELLOW,
- $BG_LIGHTGRAY, $BG_WHITE)
- {
- push(@CONSOLE_COLORS, $fg|$bg);
- }
-}
-
-# Preloaded methods go here.
-
-#Currently Autoloading is not implemented in Perl for win32
-# Autoload methods go after __END__, and are processed by the autosplit program.
-
-1;
-
-__END__
-
-=head1 NAME
-
-Win32::Console - Win32 Console and Character Mode Functions
-
-
-=head1 DESCRIPTION
-
-This module implements the Win32 console and character mode
-functions. They give you full control on the console input and output,
-including: support of off-screen console buffers (eg. multiple screen
-pages)
-
-=over
-
-=item *
-
-reading and writing of characters, attributes and whole portions of
-the screen
-
-=item *
-
-complete processing of keyboard and mouse events
-
-=item *
-
-some very funny additional features :)
-
-=back
-
-Those functions should also make possible a port of the Unix's curses
-library; if there is anyone interested (and/or willing to contribute)
-to this project, e-mail me. Thank you.
-
-
-=head1 REFERENCE
-
-
-=head2 Methods
-
-=over
-
-=item Alloc
-
-Allocates a new console for the process. Returns C<undef> on errors, a
-nonzero value on success. A process cannot be associated with more
-than one console, so this method will fail if there is already an
-allocated console. Use Free to detach the process from the console,
-and then call Alloc to create a new console. See also: C<Free>
-
-Example:
-
- $CONSOLE->Alloc();
-
-=item Attr [attr]
-
-Gets or sets the current console attribute. This attribute is used by
-the Write method.
-
-Example:
-
- $attr = $CONSOLE->Attr();
- $CONSOLE->Attr($FG_YELLOW | $BG_BLUE);
-
-=item Close
-
-Closes a shortcut object. Note that it is not "strictly" required to
-close the objects you created, since the Win32::Shortcut objects are
-automatically closed when the program ends (or when you somehow
-destroy such an object).
-
-Example:
-
- $LINK->Close();
-
-=item Cls [attr]
-
-Clear the console, with the specified I<attr> if given, or using
-ATTR_NORMAL otherwise.
-
-Example:
-
- $CONSOLE->Cls();
- $CONSOLE->Cls($FG_WHITE | $BG_GREEN);
-
-=item Cursor [x, y, size, visible]
-
-Gets or sets cursor position and appearance. Returns C<undef> on
-errors, or a 4-element list containing: I<x>, I<y>, I<size>,
-I<visible>. I<x> and I<y> are the current cursor position; ...
-
-Example:
-
- ($x, $y, $size, $visible) = $CONSOLE->Cursor();
-
- # Get position only
- ($x, $y) = $CONSOLE->Cursor();
-
- $CONSOLE->Cursor(40, 13, 50, 1);
-
- # Set position only
- $CONSOLE->Cursor(40, 13);
-
- # Set size and visibility without affecting position
- $CONSOLE->Cursor(-1, -1, 50, 1);
-
-=item Display
-
-Displays the specified console on the screen. Returns C<undef> on errors,
-a nonzero value on success.
-
-Example:
-
- $CONSOLE->Display();
-
-=item FillAttr [attribute, number, col, row]
-
-Fills the specified number of consecutive attributes, beginning at
-I<col>, I<row>, with the value specified in I<attribute>. Returns the
-number of attributes filled, or C<undef> on errors. See also:
-C<FillChar>.
-
-Example:
-
- $CONSOLE->FillAttr($FG_BLACK | $BG_BLACK, 80*25, 0, 0);
-
-=item FillChar char, number, col, row
-
-Fills the specified number of consecutive characters, beginning at
-I<col>, I<row>, with the character specified in I<char>. Returns the
-number of characters filled, or C<undef> on errors. See also:
-C<FillAttr>.
-
-Example:
-
- $CONSOLE->FillChar("X", 80*25, 0, 0);
-
-=item Flush
-
-Flushes the console input buffer. All the events in the buffer are
-discarded. Returns C<undef> on errors, a nonzero value on success.
-
-Example:
-
- $CONSOLE->Flush();
-
-=item Free
-
-Detaches the process from the console. Returns C<undef> on errors, a
-nonzero value on success. See also: C<Alloc>.
-
-Example:
-
- $CONSOLE->Free();
-
-=item GenerateCtrlEvent [type, processgroup]
-
-Sends a break signal of the specified I<type> to the specified
-I<processgroup>. I<type> can be one of the following constants:
-
- CTRL_BREAK_EVENT
- CTRL_C_EVENT
-
-they signal, respectively, the pressing of Control + Break and of
-Control + C; if not specified, it defaults to CTRL_C_EVENT.
-I<processgroup> is the pid of a process sharing the same console. If
-omitted, it defaults to 0 (the current process), which is also the
-only meaningful value that you can pass to this function. Returns
-C<undef> on errors, a nonzero value on success.
-
-Example:
-
- # break this script now
- $CONSOLE->GenerateCtrlEvent();
-
-=item GetEvents
-
-Returns the number of unread input events in the console's input
-buffer, or C<undef> on errors. See also: C<Input>, C<InputChar>,
-C<PeekInput>, C<WriteInput>.
-
-Example:
-
- $events = $CONSOLE->GetEvents();
-
-=item Info
-
-Returns an array of informations about the console (or C<undef> on
-errors), which contains:
-
-=over
-
-=item *
-
-columns (X size) of the console buffer.
-
-=item *
-
-rows (Y size) of the console buffer.
-
-=item *
-
-current column (X position) of the cursor.
-
-=item *
-
-current row (Y position) of the cursor.
-
-=item *
-
-current attribute used for C<Write>.
-
-=item *
-
-left column (X of the starting point) of the current console window.
-
-=item *
-
-top row (Y of the starting point) of the current console window.
-
-=item *
-
-right column (X of the final point) of the current console window.
-
-=item *
-
-bottom row (Y of the final point) of the current console window.
-
-=item *
-
-maximum number of columns for the console window, given the current
-buffer size, font and the screen size.
-
-=item *
-
-maximum number of rows for the console window, given the current
-buffer size, font and the screen size.
-
-=back
-
-See also: C<Attr>, C<Cursor>, C<Size>, C<Window>, C<MaxWindow>.
-
-Example:
-
- @info = $CONSOLE->Info();
- print "Cursor at $info[3], $info[4].\n";
-
-=item Input
-
-Reads an event from the input buffer. Returns a list of values, which
-depending on the event's nature are:
-
-=over
-
-=item keyboard event
-
-The list will contain:
-
-=over
-
-=item *
-
-event type: 1 for keyboard
-
-=item *
-
-key down: TRUE if the key is being pressed, FALSE if the key is being released
-
-=item *
-
-repeat count: the number of times the key is being held down
-
-=item *
-
-virtual keycode: the virtual key code of the key
-
-=item *
-
-virtual scancode: the virtual scan code of the key
-
-=item *
-
-char: the ASCII code of the character (if the key is a character key, 0 otherwise)
-
-=item *
-
-control key state: the state of the control keys (SHIFTs, CTRLs, ALTs, etc.)
-
-=back
-
-=item mouse event
-
-The list will contain:
-
-=over
-
-=item *
-
-event type: 2 for mouse
-
-=item *
-
-mouse pos. X: X coordinate (column) of the mouse location
-
-=item *
-
-mouse pos. Y: Y coordinate (row) of the mouse location
-
-=item *
-
-button state: the mouse button(s) which are pressed
-
-=item *
-
-control key state: the state of the control keys (SHIFTs, CTRLs, ALTs, etc.)
-
-=item *
-
-event flags: the type of the mouse event
-
-=back
-
-=back
-
-This method will return C<undef> on errors. Note that the events
-returned are depending on the input C<Mode> of the console; for example,
-mouse events are not intercepted unless ENABLE_MOUSE_INPUT is
-specified. See also: C<GetEvents>, C<InputChar>, C<Mode>,
-C<PeekInput>, C<WriteInput>.
-
-Example:
-
- @event = $CONSOLE->Input();
-
-=item InputChar number
-
-Reads and returns I<number> characters from the console input buffer,
-or C<undef> on errors. See also: C<Input>, C<Mode>.
-
-Example:
-
- $key = $CONSOLE->InputChar(1);
-
-=item InputCP [codepage]
-
-Gets or sets the input code page used by the console. Note that this
-doesn't apply to a console object, but to the standard input
-console. This attribute is used by the Write method. See also:
-C<OutputCP>.
-
-Example:
-
- $codepage = $CONSOLE->InputCP();
- $CONSOLE->InputCP(437);
-
- # you may want to use the non-instanciated form to avoid confuzion :)
- $codepage = Win32::Console::InputCP();
- Win32::Console::InputCP(437);
-
-=item MaxWindow
-
-Returns the size of the largest possible console window, based on the
-current font and the size of the display. The result is C<undef> on
-errors, otherwise a 2-element list containing col, row.
-
-Example:
-
- ($maxCol, $maxRow) = $CONSOLE->MaxWindow();
-
-=item Mode [flags]
-
-Gets or sets the input or output mode of a console. I<flags> can be a
-combination of the following constants:
-
- ENABLE_LINE_INPUT
- ENABLE_ECHO_INPUT
- ENABLE_PROCESSED_INPUT
- ENABLE_WINDOW_INPUT
- ENABLE_MOUSE_INPUT
- ENABLE_PROCESSED_OUTPUT
- ENABLE_WRAP_AT_EOL_OUTPUT
-
-For more informations on the meaning of those flags, please refer to
-the L<"Microsoft's Documentation">.
-
-Example:
-
- $mode = $CONSOLE->Mode();
- $CONSOLE->Mode(ENABLE_MOUSE_INPUT | ENABLE_PROCESSED_INPUT);
-
-=item MouseButtons
-
-Returns the number of the buttons on your mouse, or C<undef> on errors.
-
-Example:
-
- print "Your mouse has ", $CONSOLE->MouseButtons(), " buttons.\n";
-
-=item new Win32::Console standard_handle
-
-=item new Win32::Console [accessmode, sharemode]
-
-Creates a new console object. The first form creates a handle to a
-standard channel, I<standard_handle> can be one of the following:
-
- STD_OUTPUT_HANDLE
- STD_ERROR_HANDLE
- STD_INPUT_HANDLE
-
-The second form, instead, creates a console screen buffer in memory,
-which you can access for reading and writing as a normal console, and
-then redirect on the standard output (the screen) with C<Display>. In
-this case, you can specify one or both of the following values for
-I<accessmode>:
-
- GENERIC_READ
- GENERIC_WRITE
-
-which are the permissions you will have on the created buffer, and one
-or both of the following values for I<sharemode>:
-
- FILE_SHARE_READ
- FILE_SHARE_WRITE
-
-which affect the way the console can be shared. If you don't specify
-any of those parameters, all 4 flags will be used.
-
-Example:
-
- $STDOUT = new Win32::Console(STD_OUTPUT_HANDLE);
- $STDERR = new Win32::Console(STD_ERROR_HANDLE);
- $STDIN = new Win32::Console(STD_INPUT_HANDLE);
-
- $BUFFER = new Win32::Console();
- $BUFFER = new Win32::Console(GENERIC_READ | GENERIC_WRITE);
-
-=item OutputCP [codepage]
-
-Gets or sets the output code page used by the console. Note that this
-doesn't apply to a console object, but to the standard output console.
-See also: C<InputCP>.
-
-Example:
-
- $codepage = $CONSOLE->OutputCP();
- $CONSOLE->OutputCP(437);
-
- # you may want to use the non-instanciated form to avoid confuzion :)
- $codepage = Win32::Console::OutputCP();
- Win32::Console::OutputCP(437);
-
-=item PeekInput
-
-Does exactly the same as C<Input>, except that the event read is not
-removed from the input buffer. See also: C<GetEvents>, C<Input>,
-C<InputChar>, C<Mode>, C<WriteInput>.
-
-Example:
-
- @event = $CONSOLE->PeekInput();
-
-=item ReadAttr [number, col, row]
-
-Reads the specified I<number> of consecutive attributes, beginning at
-I<col>, I<row>, from the console. Returns the attributes read (a
-variable containing one character for each attribute), or C<undef> on
-errors. You can then pass the returned variable to C<WriteAttr> to
-restore the saved attributes on screen. See also: C<ReadChar>,
-C<ReadRect>.
-
-Example:
-
- $colors = $CONSOLE->ReadAttr(80*25, 0, 0);
-
-=item ReadChar [number, col, row]
-
-Reads the specified I<number> of consecutive characters, beginning at
-I<col>, I<row>, from the console. Returns a string containing the
-characters read, or C<undef> on errors. You can then pass the
-returned variable to C<WriteChar> to restore the saved characters on
-screen. See also: C<ReadAttr>, C<ReadRect>.
-
-Example:
-
- $chars = $CONSOLE->ReadChar(80*25, 0, 0);
-
-=item ReadRect left, top, right, bottom
-
-Reads the content (characters and attributes) of the rectangle
-specified by I<left>, I<top>, I<right>, I<bottom> from the console.
-Returns a string containing the rectangle read, or C<undef> on errors.
-You can then pass the returned variable to C<WriteRect> to restore the
-saved rectangle on screen (or on another console). See also:
-C<ReadAttr>, C<ReadChar>.
-
-Example:
-
- $rect = $CONSOLE->ReadRect(0, 0, 80, 25);
-
-=item Scroll left, top, right, bottom, col, row, char, attr,
- [cleft, ctop, cright, cbottom]
-
-Moves a block of data in a console buffer; the block is identified by
-I<left>, I<top>, I<right>, I<bottom>, while I<row>, I<col> identify
-the new location of the block. The cells left empty as a result of
-the move are filled with the character I<char> and attribute I<attr>.
-Optionally you can specify a clipping region with I<cleft>, I<ctop>,
-I<cright>, I<cbottom>, so that the content of the console outside this
-rectangle are unchanged. Returns C<undef> on errors, a nonzero value
-on success.
-
-Example:
-
- # scrolls the screen 10 lines down, filling with black spaces
- $CONSOLE->Scroll(0, 0, 80, 25, 0, 10, " ", $FG_BLACK | $BG_BLACK);
-
-=item Select standard_handle
-
-Redirects a standard handle to the specified console.
-I<standard_handle> can have one of the following values:
-
- STD_INPUT_HANDLE
- STD_OUTPUT_HANDLE
- STD_ERROR_HANDLE
-
-Returns C<undef> on errors, a nonzero value on success.
-
-Example:
-
- $CONSOLE->Select(STD_OUTPUT_HANDLE);
-
-=item SetIcon icon_file
-
-Sets the icon in the title bar of the current console window.
-
-Example:
-
- $CONSOLE->SetIcon("C:/My/Path/To/Custom.ico");
-
-=item Size [col, row]
-
-Gets or sets the console buffer size.
-
-Example:
-
- ($x, $y) = $CONSOLE->Size();
- $CONSOLE->Size(80, 25);
-
-=item Title [title]
-
-Gets or sets the title of the current console window.
-
-Example:
-
- $title = $CONSOLE->Title();
- $CONSOLE->Title("This is a title");
-
-=item Window [flag, left, top, right, bottom]
-
-Gets or sets the current console window size. If called without
-arguments, returns a 4-element list containing the current window
-coordinates in the form of I<left>, I<top>, I<right>, I<bottom>. To
-set the window size, you have to specify an additional I<flag>
-parameter: if it is 0 (zero), coordinates are considered relative to
-the current coordinates; if it is non-zero, coordinates are absolute.
-
-Example:
-
- ($left, $top, $right, $bottom) = $CONSOLE->Window();
- $CONSOLE->Window(1, 0, 0, 80, 50);
-
-=item Write string
-
-Writes I<string> on the console, using the current attribute, that you
-can set with C<Attr>, and advancing the cursor as needed. This isn't
-so different from Perl's "print" statement. Returns the number of
-characters written or C<undef> on errors. See also: C<WriteAttr>,
-C<WriteChar>, C<WriteRect>.
-
-Example:
-
- $CONSOLE->Write("Hello, world!");
-
-=item WriteAttr attrs, col, row
-
-Writes the attributes in the string I<attrs>, beginning at I<col>,
-I<row>, without affecting the characters that are on screen. The
-string attrs can be the result of a C<ReadAttr> function, or you can
-build your own attribute string; in this case, keep in mind that every
-attribute is treated as a character, not a number (see example).
-Returns the number of attributes written or C<undef> on errors. See
-also: C<Write>, C<WriteChar>, C<WriteRect>.
-
-Example:
-
- $CONSOLE->WriteAttr($attrs, 0, 0);
-
- # note the use of chr()...
- $attrs = chr($FG_BLACK | $BG_WHITE) x 80;
- $CONSOLE->WriteAttr($attrs, 0, 0);
-
-=item WriteChar chars, col, row
-
-Writes the characters in the string I<attr>, beginning at I<col>, I<row>,
-without affecting the attributes that are on screen. The string I<chars>
-can be the result of a C<ReadChar> function, or a normal string. Returns
-the number of characters written or C<undef> on errors. See also:
-C<Write>, C<WriteAttr>, C<WriteRect>.
-
-Example:
-
- $CONSOLE->WriteChar("Hello, worlds!", 0, 0);
-
-=item WriteInput (event)
-
-Pushes data in the console input buffer. I<(event)> is a list of values,
-for more information see C<Input>. The string chars can be the result of
-a C<ReadChar> function, or a normal string. Returns the number of
-characters written or C<undef> on errors. See also: C<Write>,
-C<WriteAttr>, C<WriteRect>.
-
-Example:
-
- $CONSOLE->WriteInput(@event);
-
-=item WriteRect rect, left, top, right, bottom
-
-Writes a rectangle of characters and attributes (contained in I<rect>)
-on the console at the coordinates specified by I<left>, I<top>,
-I<right>, I<bottom>. I<rect> can be the result of a C<ReadRect>
-function. Returns C<undef> on errors, otherwise a 4-element list
-containing the coordinates of the affected rectangle, in the format
-I<left>, I<top>, I<right>, I<bottom>. See also: C<Write>,
-C<WriteAttr>, C<WriteChar>.
-
-Example:
-
- $CONSOLE->WriteRect($rect, 0, 0, 80, 25);
-
-=back
-
-
-=head2 Constants
-
-The following constants are exported in the main namespace of your
-script using Win32::Console:
-
- BACKGROUND_BLUE
- BACKGROUND_GREEN
- BACKGROUND_INTENSITY
- BACKGROUND_RED
- CAPSLOCK_ON
- CONSOLE_TEXTMODE_BUFFER
- ENABLE_ECHO_INPUT
- ENABLE_LINE_INPUT
- ENABLE_MOUSE_INPUT
- ENABLE_PROCESSED_INPUT
- ENABLE_PROCESSED_OUTPUT
- ENABLE_WINDOW_INPUT
- ENABLE_WRAP_AT_EOL_OUTPUT
- ENHANCED_KEY
- FILE_SHARE_READ
- FILE_SHARE_WRITE
- FOREGROUND_BLUE
- FOREGROUND_GREEN
- FOREGROUND_INTENSITY
- FOREGROUND_RED
- LEFT_ALT_PRESSED
- LEFT_CTRL_PRESSED
- NUMLOCK_ON
- GENERIC_READ
- GENERIC_WRITE
- RIGHT_ALT_PRESSED
- RIGHT_CTRL_PRESSED
- SCROLLLOCK_ON
- SHIFT_PRESSED
- STD_INPUT_HANDLE
- STD_OUTPUT_HANDLE
- STD_ERROR_HANDLE
-
-Additionally, the following variables can be used:
-
- $FG_BLACK
- $FG_GRAY
- $FG_BLUE
- $FG_LIGHTBLUE
- $FG_RED
- $FG_LIGHTRED
- $FG_GREEN
- $FG_LIGHTGREEN
- $FG_MAGENTA
- $FG_LIGHTMAGENTA
- $FG_CYAN
- $FG_LIGHTCYAN
- $FG_BROWN
- $FG_YELLOW
- $FG_LIGHTGRAY
- $FG_WHITE
-
- $BG_BLACK
- $BG_GRAY
- $BG_BLUE
- $BG_LIGHTBLUE
- $BG_RED
- $BG_LIGHTRED
- $BG_GREEN
- $BG_LIGHTGREEN
- $BG_MAGENTA
- $BG_LIGHTMAGENTA
- $BG_CYAN
- $BG_LIGHTCYAN
- $BG_BROWN
- $BG_YELLOW
- $BG_LIGHTGRAY
- $BG_WHITE
-
- $ATTR_NORMAL
- $ATTR_INVERSE
-
-ATTR_NORMAL is set to gray foreground on black background (DOS's
-standard colors).
-
-
-=head2 Microsoft's Documentation
-
-Documentation for the Win32 Console and Character mode Functions can
-be found on Microsoft's site at this URL:
-
-http://www.microsoft.com/msdn/sdk/platforms/doc/sdk/win32/sys/src/conchar.htm
-
-A reference of the available functions is at:
-
-http://www.microsoft.com/msdn/sdk/platforms/doc/sdk/win32/sys/src/conchar_34.htm
-
-
-=head1 AUTHOR
-
-Aldo Calpini <a.calpini@romagiubileo.it>
-
-=head1 CREDITS
-
-Thanks to: Jesse Dougherty, Dave Roth, ActiveWare, and the
-Perl-Win32-Users community.
-
-=head1 DISCLAIMER
-
-This program is FREE; you can redistribute, modify, disassemble, or
-even reverse engineer this software at your will. Keep in mind,
-however, that NOTHING IS GUARANTEED to work and everything you do is
-AT YOUR OWN RISK - I will not take responsibility for any damage, loss
-of money and/or health that may arise from the use of this program!
-
-This is distributed under the terms of Larry Wall's Artistic License.
diff --git a/Master/tlpkg/tlperl/lib/Win32/OLE.pm b/Master/tlpkg/tlperl/lib/Win32/OLE.pm
deleted file mode 100644
index ece534b15fa..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/OLE.pm
+++ /dev/null
@@ -1,968 +0,0 @@
-# The documentation is at the __END__
-
-package Win32::OLE;
-
-use strict;
-use vars qw($VERSION @ISA @EXPORT @EXPORT_OK @EXPORT_FAIL $AUTOLOAD
- $CP $LCID $Warn $LastError $_NewEnum $_Unique);
-
-$VERSION = '0.1712';
-
-use Carp;
-use Exporter;
-use DynaLoader;
-@ISA = qw(Exporter DynaLoader);
-
-@EXPORT = qw();
-@EXPORT_OK = qw(in valof with HRESULT EVENTS OVERLOAD
- CP_ACP CP_OEMCP CP_MACCP CP_UTF7 CP_UTF8
- DISPATCH_METHOD DISPATCH_PROPERTYGET
- DISPATCH_PROPERTYPUT DISPATCH_PROPERTYPUTREF);
-@EXPORT_FAIL = qw(EVENTS OVERLOAD);
-
-sub export_fail {
- shift;
- my @unknown;
- while (@_) {
- my $symbol = shift;
- if ($symbol eq 'OVERLOAD') {
- eval <<'OVERLOAD';
- use overload '""' => \&valof,
- '0+' => \&valof,
- fallback => 1;
-OVERLOAD
- }
- elsif ($symbol eq 'EVENTS') {
- Win32::OLE->Initialize(Win32::OLE::COINIT_OLEINITIALIZE());
- }
- else {
- push @unknown, $symbol;
- }
- }
- return @unknown;
-}
-
-unless (defined &Dispatch) {
- # Use regular DynaLoader if XS part is not yet initialized
- bootstrap Win32::OLE;
- require Win32::OLE::Lite;
-}
-
-1;
-
-########################################################################
-
-__END__
-
-=head1 NAME
-
-Win32::OLE - OLE Automation extensions
-
-=head1 SYNOPSIS
-
- $ex = Win32::OLE->new('Excel.Application') or die "oops\n";
- $ex->Amethod("arg")->Bmethod->{'Property'} = "foo";
- $ex->Cmethod(undef,undef,$Arg3);
- $ex->Dmethod($RequiredArg1, {NamedArg1 => $Value1, NamedArg2 => $Value2});
-
- $wd = Win32::OLE->GetObject("D:\\Data\\Message.doc");
- $xl = Win32::OLE->GetActiveObject("Excel.Application");
-
-=head1 DESCRIPTION
-
-This module provides an interface to OLE Automation from Perl.
-OLE Automation brings VisualBasic like scripting capabilities and
-offers powerful extensibility and the ability to control many Win32
-applications from Perl scripts.
-
-The Win32::OLE module uses the IDispatch interface exclusively. It is
-not possible to access a custom OLE interface. OLE events and OCX's are
-currently not supported.
-
-Actually, that's no longer strictly true. This module now contains
-B<ALPHA> level support for OLE events. This is largely untested and the
-specific interface might still change in the future.
-
-=head2 Methods
-
-=over 8
-
-=item Win32::OLE->new(PROGID[, DESTRUCTOR])
-
-The new() class method starts a new instance of an OLE Automation object.
-It returns a reference to this object or C<undef> if the creation failed.
-
-The PROGID argument must be either the OLE I<program id> or the I<class id>
-of the required application. The optional DESTRUCTOR specifies a DESTROY-like
-method. This can be either a CODE reference or a string containing an OLE
-method name. It can be used to cleanly terminate OLE applications in case the
-Perl program dies.
-
-To create an object via DCOM on a remote server you can use an array
-reference in place of PROGID. The referenced array must contain the
-machine name and the I<program id> or I<class id>. For example:
-
- my $obj = Win32::OLE->new(['my.machine.com', 'Program.Id']);
-
-If the PROGID is a I<program id> then Win32::OLE will try to resolve the
-corresponding I<class id> locally. If the I<program id> is not registered
-locally then the remote registry is queried. This will only succeed if
-the local process has read access to the remote registry. The safest
-(and fastest) method is to specify the C<class id> directly.
-
-=item Win32::OLE->EnumAllObjects([CALLBACK])
-
-This class method returns the number Win32::OLE objects currently in
-existence. It will call the optional CALLBACK function for each of
-these objects:
-
- $Count = Win32::OLE->EnumAllObjects(sub {
- my $Object = shift;
- my $Class = Win32::OLE->QueryObjectType($Object);
- printf "# Object=%s Class=%s\n", $Object, $Class;
- });
-
-The EnumAllObjects() method is primarily a debugging tool. It can be
-used e.g. in an END block to check if all external connections have
-been properly destroyed.
-
-=item Win32::OLE->FreeUnusedLibraries()
-
-The FreeUnusedLibraries() class method unloads all unused OLE
-resources. These are the libraries of those classes of which all
-existing objects have been destroyed. The unloading of object
-libraries is really only important for long running processes that
-might instantiate a huge number of B<different> objects over time.
-
-Be aware that objects implemented in Visual Basic have a buggy
-implementation of this functionality: They pretend to be unloadable
-while they are actually still running their cleanup code. Unloading
-the DLL at that moment typically produces an access violation. The
-probability for this problem can be reduced by calling the
-SpinMessageLoop() method and sleep()ing for a few seconds.
-
-=item Win32::OLE->GetActiveObject(CLASS[, DESTRUCTOR])
-
-The GetActiveObject() class method returns an OLE reference to a
-running instance of the specified OLE automation server. It returns
-C<undef> if the server is not currently active. It will croak if
-the class is not even registered. The optional DESTRUCTOR method takes
-either a method name or a code reference. It is executed when the last
-reference to this object goes away. It is generally considered rude
-to stop applications that you did not start yourself.
-
-=item Win32::OLE->GetObject(MONIKER[, DESTRUCTOR])
-
-The GetObject() class method returns an OLE reference to the specified
-object. The object is specified by a pathname optionally followed by
-additional item subcomponent separated by exclamation marks '!'. The
-optional DESTRUCTOR argument has the same semantics as the DESTRUCTOR in
-new() or GetActiveObject().
-
-=item Win32::OLE->Initialize([COINIT])
-
-The Initialize() class method can be used to specify an alternative
-apartment model for the Perl thread. It must be called B<before> the
-first OLE object is created. If the C<Win32::OLE::Const> module is
-used then the call to the Initialize() method must be made from a BEGIN
-block before the first C<use> statement for the C<Win32::OLE::Const>
-module.
-
-Valid values for COINIT are:
-
- Win32::OLE::COINIT_APARTMENTTHREADED - single threaded
- Win32::OLE::COINIT_MULTITHREADED - the default
- Win32::OLE::COINIT_OLEINITIALIZE - single threaded, additional OLE stuff
-
-COINIT_OLEINITIALIZE is sometimes needed when an OLE object uses
-additional OLE compound document technologies not available from the
-normal COM subsystem (for example MAPI.Session seems to require it).
-Both COINIT_OLEINITIALIZE and COINIT_APARTMENTTHREADED create a hidden
-top level window and a message queue for the Perl process. This may
-create problems with other application, because Perl normally doesn't
-process its message queue. This means programs using synchronous
-communication between applications (such as DDE initiation), may hang
-until Perl makes another OLE method call/property access or terminates.
-This applies to InstallShield setups and many things started to shell
-associations. Please try to utilize the C<Win32::OLE-E<gt>SpinMessageLoop>
-and C<Win32::OLE-E<gt>Uninitialize> methods if you can not use the default
-COINIT_MULTITHREADED model.
-
-=item OBJECT->Invoke(METHOD[, ARGS])
-
-The Invoke() object method is an alternate way to invoke OLE
-methods. It is normally equivalent to C<$OBJECT-E<gt>METHOD(@ARGS)>. This
-function must be used if the METHOD name contains characters not valid
-in a Perl variable name (like foreign language characters). It can
-also be used to invoke the default method of an object even if the
-default method has not been given a name in the type library. In this
-case use <undef> or C<''> as the method name. To invoke an OLE objects
-native Invoke() method (if such a thing exists), please use:
-
- $Object->Invoke('Invoke', @Args);
-
-=item Win32::OLE->LastError()
-
-The LastError() class method returns the last recorded OLE
-error. This is a dual value like the C<$!> variable: in a numeric
-context it returns the error number and in a string context it returns
-the error message. The error number is a signed HRESULT value. Please
-use the L<HRESULT(ERROR)> function to convert an unsigned hexadecimal
-constant to a signed HRESULT.
-
-The last OLE error is automatically reset by a successful OLE
-call. The numeric value can also explicitly be set by a call (which will
-discard the string value):
-
- Win32::OLE->LastError(0);
-
-=item OBJECT->LetProperty(NAME,ARGS,VALUE)
-
-In Win32::OLE property assignment using the hash syntax is equivalent
-to the Visual Basic C<Set> syntax (I<by reference> assignment):
-
- $Object->{Property} = $OtherObject;
-
-corresponds to this Visual Basic statement:
-
- Set Object.Property = OtherObject
-
-To get the I<by value> treatment of the Visual Basic C<Let> statement
-
- Object.Property = OtherObject
-
-you have to use the LetProperty() object method in Perl:
-
- $Object->LetProperty($Property, $OtherObject);
-
-LetProperty() also supports optional arguments for the property assignment.
-See L<OBJECT->SetProperty(NAME,ARGS,VALUE)> for details.
-
-=item Win32::OLE->MessageLoop()
-
-The MessageLoop() class method will run a standard Windows message
-loop, dispatching messages until the QuitMessageLoop() class method is
-called. It is used to wait for OLE events.
-
-=item Win32::OLE->Option(OPTION)
-
-The Option() class method can be used to inspect and modify
-L<Module Options>. The single argument form retrieves the value of
-an option:
-
- my $CP = Win32::OLE->Option('CP');
-
-A single call can be used to set multiple options simultaneously:
-
- Win32::OLE->Option(CP => CP_ACP, Warn => 3);
-
-=item Win32::OLE->QueryObjectType(OBJECT)
-
-The QueryObjectType() class method returns a list of the type library
-name and the objects class name. In a scalar context it returns the
-class name only. It returns C<undef> when the type information is not
-available.
-
-=item Win32::OLE->QuitMessageLoop()
-
-The QuitMessageLoop() class method posts a (user-level) "Quit" message
-to the current threads message loop. QuitMessageLoop() is typically
-called from an event handler. The MessageLoop() class method will
-return when it receives this "Quit" method.
-
-=item OBJECT->SetProperty(NAME,ARGS,VALUE)
-
-The SetProperty() method allows to modify properties with arguments,
-which is not supported by the hash syntax. The hash form
-
- $Object->{Property} = $Value;
-
-is equivalent to
-
- $Object->SetProperty('Property', $Value);
-
-Arguments must be specified between the property name and the new value:
-
- $Object->SetProperty('Property', @Args, $Value);
-
-It is not possible to use "named argument" syntax with this function
-because the new value must be the last argument to SetProperty().
-
-This method hides any native OLE object method called SetProperty().
-The native method will still be available through the Invoke() method:
-
- $Object->Invoke('SetProperty', @Args);
-
-=item Win32::OLE->SpinMessageLoop
-
-This class method retrieves all pending messages from the message queue
-and dispatches them to their respective window procedures. Calling this
-method is only necessary when not using the COINIT_MULTITHREADED model.
-All OLE method calls and property accesses automatically process the
-message queue.
-
-=item Win32::OLE->Uninitialize
-
-The Uninitialize() class method uninitializes the OLE subsystem. It
-also destroys the hidden top level window created by OLE for single
-threaded apartments. All OLE objects will become invalid after this call!
-It is possible to call the Initialize() class method again with a different
-apartment model after shutting down OLE with Uninitialize().
-
-=item Win32::OLE->WithEvents(OBJECT[, HANDLER[, INTERFACE]])
-
-This class method enables and disables the firing of events by the
-specified OBJECT. If no HANDLER is specified, then events are
-disconnected. For some objects Win32::OLE is not able to
-automatically determine the correct event interface. In this case the
-INTERFACE argument must contain either the COCLASS name of the OBJECT
-or the name of the event DISPATCH interface. Please read the L<Events>
-section below for detailed explanation of the Win32::OLE event
-support.
-
-=back
-
-Whenever Perl does not find a method name in the Win32::OLE package it
-is automatically used as the name of an OLE method and this method call
-is dispatched to the OLE server.
-
-There is one special hack built into the module: If a method or property
-name could not be resolved with the OLE object, then the default method
-of the object is called with the method name as its first parameter. So
-
- my $Sheet = $Worksheets->Table1;
-or
- my $Sheet = $Worksheets->{Table1};
-
-is resolved as
-
- my $Sheet = $Worksheet->Item('Table1');
-
-provided that the $Worksheets object does not have a C<Table1> method
-or property. This hack has been introduced to call the default method
-of collections which did not name the method in their type library. The
-recommended way to call the "unnamed" default method is:
-
- my $Sheet = $Worksheets->Invoke('', 'Table1');
-
-This special hack is disabled under C<use strict 'subs';>.
-
-=head2 Object methods and properties
-
-The object returned by the new() method can be used to invoke
-methods or retrieve properties in the same fashion as described
-in the documentation for the particular OLE class (eg. Microsoft
-Excel documentation describes the object hierarchy along with the
-properties and methods exposed for OLE access).
-
-Optional parameters on method calls can be omitted by using C<undef>
-as a placeholder. A better way is to use named arguments, as the
-order of optional parameters may change in later versions of the OLE
-server application. Named parameters can be specified in a reference
-to a hash as the last parameter to a method call.
-
-Properties can be retrieved or set using hash syntax, while methods
-can be invoked with the usual perl method call syntax. The C<keys>
-and C<each> functions can be used to enumerate an object's properties.
-Beware that a property is not always writable or even readable (sometimes
-raising exceptions when read while being undefined).
-
-If a method or property returns an embedded OLE object, method
-and property access can be chained as shown in the examples below.
-
-=head2 Functions
-
-The following functions are not exported by default.
-
-=over 8
-
-=item HRESULT(ERROR)
-
-The HRESULT() function converts an unsigned number into a signed HRESULT
-error value as used by OLE internally. This is necessary because Perl
-treats all hexadecimal constants as unsigned. To check if the last OLE
-function returned "Member not found" (0x80020003) you can write:
-
- if (Win32::OLE->LastError == HRESULT(0x80020003)) {
- # your error recovery here
- }
-
-=item in(COLLECTION)
-
-If COLLECTION is an OLE collection object then C<in $COLLECTION>
-returns a list of all members of the collection. This is a shortcut
-for C<Win32::OLE::Enum-E<gt>All($COLLECTION)>. It is most commonly used in
-a C<foreach> loop:
-
- foreach my $value (in $collection) {
- # do something with $value here
- }
-
-=item valof(OBJECT)
-
-Normal assignment of Perl OLE objects creates just another reference
-to the OLE object. The valof() function explictly dereferences the
-object (through the default method) and returns the value of the object.
-
- my $RefOf = $Object;
- my $ValOf = valof $Object;
- $Object->{Value} = $NewValue;
-
-Now $ValOf still contains the old value whereas $RefOf would
-resolve to the $NewValue because it is still a reference to
-$Object.
-
-The valof() function can also be used to convert Win32::OLE::Variant
-objects to Perl values.
-
-=item with(OBJECT, PROPERTYNAME => VALUE, ...)
-
-This function provides a concise way to set the values of multiple
-properties of an object. It iterates over its arguments doing
-C<$OBJECT-E<gt>{PROPERTYNAME} = $VALUE> on each trailing pair.
-
-=back
-
-=head2 Overloading
-
-The Win32::OLE objects can be overloaded to automatically convert to
-their values whenever they are used in a bool, numeric or string
-context. This is not enabled by default. You have to request it
-through the OVERLOAD pseudoexport:
-
- use Win32::OLE qw(in valof with OVERLOAD);
-
-You can still get the original string representation of an object
-(C<Win32::OLE=0xDEADBEEF>), e.g. for debugging, by using the
-C<overload::StrVal()> method:
-
- print overload::StrVal($object), "\n";
-
-Please note that C<OVERLOAD> is a global setting. If any module enables
-Win32::OLE overloading then it's active everywhere.
-
-=head2 Events
-
-The Win32::OLE module now contains B<ALPHA> level event support. This
-support is only available when Perl is running in a single threaded
-apartment. This can most easily be assured by using the C<EVENTS>
-pseudo-import:
-
- use Win32::OLE qw(EVENTS);
-
-which implicitly does something like:
-
- use Win32::OLE;
- Win32::OLE->Initialize(Win32::OLE::COINIT_OLEINITIALIZE);
-
-The current interface to OLE events should be considered experimental
-and is subject to change. It works as expected for normal OLE
-applications, but OLE control events often don't seem to work yet.
-
-Events must be enabled explicitly for an OLE object through the
-Win32::OLE->WithEvents() class method. The Win32::OLE module uses the
-IProvideClassInfo2 interface to determine the default event source of
-the object. If this interface is not supported, then the user must
-specify the name of the event source explicitly in the WithEvents()
-method call. It is also possible to specify the class name of the
-object as the third parameter. In this case Win32::OLE will try to
-look up the default source interface for this COCLASS.
-
-The HANDLER argument to Win32::OLE->WithEvents() can either be a CODE
-reference or a package name. In the first case, all events will invoke
-this particular function. The first two arguments to this function will
-be the OBJECT itself and the name of the event. The remaining arguments
-will be event specific.
-
- sub Event {
- my ($Obj,$Event,@Args) = @_;
- print "Event triggered: '$Event'\n";
- }
- Win32::OLE->WithEvents($Obj, \&Event);
-
-Alternatively the HANDLER argument can specify a package name. When the
-OBJECT fires an event, Win32::OLE will try to find a function of the same
-name as the event in this package. This function will be called with the
-OBJECT as the first argument followed again by the event specific parameters:
-
- package MyEvents;
- sub EventName1 {
- my ($Obj,@Args) = @_;
- print "EventName1 event triggered\n";
- }
-
- package main;
- Win32::OLE->WithEvents($Obj, 'MyEvents', 'IEventInterface');
-
-If Win32::OLE doesn't find a function with the name of the event then nothing
-happens.
-
-Event parameters passed I<by reference> are handled specially. They are not
-converted to the corresponding Perl datatype but passed as Win32::OLE::Variant
-objects. You can assign a new value to these objects with the help of the
-Put() method. This value will be passed back to the object when the event
-function returns:
-
- package MyEvents;
- sub BeforeClose {
- my ($self,$Cancel) = @_;
- $Cancel->Put(1) unless $MayClose;
- }
-
-Direct assignment to $Cancel would have no effect on the original value and
-would therefore not command the object to abort the closing action.
-
-=head2 Module Options
-
-The following module options can be accessed and modified with the
-C<Win32::OLE-E<gt>Option> class method. In earlier versions of the Win32::OLE
-module these options were manipulated directly as class variables. This
-practice is now deprecated.
-
-=over 8
-
-=item CP
-
-This variable is used to determine the codepage used by all
-translations between Perl strings and Unicode strings used by the OLE
-interface. The default value is CP_ACP, which is the default ANSI
-codepage. Other possible values are CP_OEMCP, CP_MACCP, CP_UTF7 and
-CP_UTF8. These constants are not exported by default.
-
-=item LCID
-
-This variable controls the locale identifier used for all OLE calls.
-It is set to LOCALE_NEUTRAL by default. Please check the
-L<Win32::OLE::NLS> module for other locale related information.
-
-=item Variant
-
-This options controls how method calls and property accessors return
-values of type VT_CY and VT_DECIMAL are being returned. By default
-VT_CY values are turned into strings and VT_DECIMAL values into
-floating point numbers. If the C<Variant> option is enabled, these
-values are returned as Win32::OLE::Variant objects, just like VT_DATE
-and VT_ERROR values. If the Win32::OLE::Variant module is also
-loaded, then all values should still behave as before in string and in
-numeric context.
-
-The only reason that the C<Variant> behavior is not the default is that
-this is an incompatible change that might break existing programs.
-
-=item Warn
-
-This variable determines the behavior of the Win32::OLE module when
-an error happens. Valid values are:
-
- 0 Ignore error, return undef
- 1 Carp::carp if $^W is set (-w option)
- 2 always Carp::carp
- 3 Carp::croak
-
-The error number and message (without Carp line/module info) are
-available through the C<Win32::OLE-E<gt>LastError> class method.
-
-Alternatively the Warn option can be set to a CODE reference. E.g.
-
- Win32::OLE->Option(Warn => 3);
-
-is equivalent to
-
- Win32::OLE->Option(Warn => \&Carp::croak);
-
-This can even be used to emulate the VisualBasic C<On Error Goto
-Label> construct:
-
- Win32::OLE->Option(Warn => sub {goto CheckError});
- # ... your normal OLE code here ...
-
- CheckError:
- # ... your error handling code here ...
-
-=item _NewEnum
-
-This option enables additional enumeration support for collection
-objects. When the C<_NewEnum> option is set, all collections will
-receive one additional property: C<_NewEnum>. The value of this
-property will be a reference to an array containing all the elements
-of the collection. This option can be useful when used in conjunction
-with an automatic tree traversal program, like C<Data::Dumper> or an
-object tree browser. The value of this option should be either 1
-(enabled) or 0 (disabled, default).
-
- Win32::OLE->Option(_NewEnum => 1);
- # ...
- my @sheets = @{$Excel->Worksheets->{_NewEnum}};
-
-In normal application code, this would be better written as:
-
- use Win32::OLE qw(in);
- # ...
- my @sheets = in $Excel->Worksheets;
-
-=item _Unique
-
-The C<_Unique> options guarantees that Win32::OLE will maintain a
-one-to-one mapping between Win32::OLE objects and the native COM/OLE
-objects. Without this option, you can query the same property twice
-and get two different Win32::OLE objects for the same underlying COM
-object.
-
-Using a unique proxy makes life easier for tree traversal algorithms
-to recognize they already visited a particular node. This option
-comes at a price: Win32::OLE has to maintain a global hash of all
-outstanding objects and their corresponding proxies. Identity checks
-on COM objects can also be expensive if the objects reside
-out-of-process or even on a different computer. Therefore this option
-is off by default unless the program is being run in the debugger.
-
-Unfortunately, this option doesn't always help. Some programs will
-return new COM objects for even the same property when asked for it
-multiple times (especially for collections). In this case, there is
-nothing Win32::OLE can do to detect that these objects are in fact
-identical (because they aren't at the COM level).
-
-The C<_Unique> option can be set to either 1 (enabled) or 0 (disabled,
-default).
-
-=back
-
-=head1 EXAMPLES
-
-Here is a simple Microsoft Excel application.
-
- use Win32::OLE;
-
- # use existing instance if Excel is already running
- eval {$ex = Win32::OLE->GetActiveObject('Excel.Application')};
- die "Excel not installed" if $@;
- unless (defined $ex) {
- $ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
- or die "Oops, cannot start Excel";
- }
-
- # get a new workbook
- $book = $ex->Workbooks->Add;
-
- # write to a particular cell
- $sheet = $book->Worksheets(1);
- $sheet->Cells(1,1)->{Value} = "foo";
-
- # write a 2 rows by 3 columns range
- $sheet->Range("A8:C9")->{Value} = [[ undef, 'Xyzzy', 'Plugh' ],
- [ 42, 'Perl', 3.1415 ]];
-
- # print "XyzzyPerl"
- $array = $sheet->Range("A8:C9")->{Value};
- for (@$array) {
- for (@$_) {
- print defined($_) ? "$_|" : "<undef>|";
- }
- print "\n";
- }
-
- # save and exit
- $book->SaveAs( 'test.xls' );
- undef $book;
- undef $ex;
-
-Please note the destructor specified on the Win32::OLE->new method. It ensures
-that Excel will shutdown properly even if the Perl program dies. Otherwise
-there could be a process leak if your application dies after having opened
-an OLE instance of Excel. It is the responsibility of the module user to
-make sure that all OLE objects are cleaned up properly!
-
-Here is an example of using Variant data types.
-
- use Win32::OLE;
- use Win32::OLE::Variant;
- $ex = Win32::OLE->new('Excel.Application', \&OleQuit) or die "oops\n";
- $ex->{Visible} = 1;
- $ex->Workbooks->Add;
- # should generate a warning under -w
- $ovR8 = Variant(VT_R8, "3 is a good number");
- $ex->Range("A1")->{Value} = $ovR8;
- $ex->Range("A2")->{Value} = Variant(VT_DATE, 'Jan 1,1970');
-
- sub OleQuit {
- my $self = shift;
- $self->Quit;
- }
-
-The above will put value "3" in cell A1 rather than the string
-"3 is a good number". Cell A2 will contain the date.
-
-Similarly, to invoke a method with some binary data, you can
-do the following:
-
- $obj->Method( Variant(VT_UI1, "foo\000b\001a\002r") );
-
-Here is a wrapper class that basically delegates everything but
-new() and DESTROY(). The wrapper class shown here is another way to
-properly shut down connections if your application is liable to die
-without proper cleanup. Your own wrappers will probably do something
-more specific to the particular OLE object you may be dealing with,
-like overriding the methods that you may wish to enhance with your
-own.
-
- package Excel;
- use Win32::OLE;
-
- sub new {
- my $s = {};
- if ($s->{Ex} = Win32::OLE->new('Excel.Application')) {
- return bless $s, shift;
- }
- return undef;
- }
-
- sub DESTROY {
- my $s = shift;
- if (exists $s->{Ex}) {
- print "# closing connection\n";
- $s->{Ex}->Quit;
- return undef;
- }
- }
-
- sub AUTOLOAD {
- my $s = shift;
- $AUTOLOAD =~ s/^.*:://;
- $s->{Ex}->$AUTOLOAD(@_);
- }
-
- 1;
-
-The above module can be used just like Win32::OLE, except that
-it takes care of closing connections in case of abnormal exits.
-Note that the effect of this specific example can be easier accomplished
-using the optional destructor argument of Win32::OLE::new:
-
- my $Excel = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;});
-
-Note that the delegation shown in the earlier example is not the same as
-true subclassing with respect to further inheritance of method calls in your
-specialized object. See L<perlobj>, L<perltoot> and L<perlbot> for details.
-True subclassing (available by setting C<@ISA>) is also feasible,
-as the following example demonstrates:
-
- #
- # Add error reporting to Win32::OLE
- #
-
- package Win32::OLE::Strict;
- use Carp;
- use Win32::OLE;
-
- use strict qw(vars);
- use vars qw($AUTOLOAD @ISA);
- @ISA = qw(Win32::OLE);
-
- sub AUTOLOAD {
- my $obj = shift;
- $AUTOLOAD =~ s/^.*:://;
- my $meth = $AUTOLOAD;
- $AUTOLOAD = "SUPER::" . $AUTOLOAD;
- my $retval = $obj->$AUTOLOAD(@_);
- unless (defined($retval) || $AUTOLOAD eq 'DESTROY') {
- my $err = Win32::OLE::LastError();
- croak(sprintf("$meth returned OLE error 0x%08x",$err))
- if $err;
- }
- return $retval;
- }
-
- 1;
-
-This package inherits the constructor new() from the Win32::OLE
-package. It is important to note that you cannot later rebless a
-Win32::OLE object as some information about the package is cached by
-the object. Always invoke the new() constructor through the right
-package!
-
-Here's how the above class will be used:
-
- use Win32::OLE::Strict;
- my $Excel = Win32::OLE::Strict->new('Excel.Application', 'Quit');
- my $Books = $Excel->Workbooks;
- $Books->UnknownMethod(42);
-
-In the sample above the call to UnknownMethod() will be caught with
-
- UnknownMethod returned OLE error 0x80020009 at test.pl line 5
-
-because the Workbooks object inherits the class C<Win32::OLE::Strict> from the
-C<$Excel> object.
-
-=head1 NOTES
-
-=head2 Hints for Microsoft Office automation
-
-=over 8
-
-=item Documentation
-
-The object model for the Office applications is defined in the Visual Basic
-reference guides for the various applications. These are typically not
-installed by default during the standard installation. They can be added
-later by rerunning the setup program with the custom install option.
-
-=item Class, Method and Property names
-
-The names have been changed between different versions of Office. For
-example C<Application> was a method in Office 95 and is a property in
-Office97. Therefore it will not show up in the list of property names
-C<keys %$object> when querying an Office 95 object.
-
-The class names are not always identical to the method/property names
-producing the object. E.g. the C<Workbook> method returns an object of
-type C<Workbook> in Office 95 and C<_Workbook> in Office 97.
-
-=item Moniker (GetObject support)
-
-Office applications seem to implement file monikers only. For example
-it seems to be impossible to retrieve a specific worksheet object through
-C<GetObject("File.XLS!Sheet")>. Furthermore, in Excel 95 the moniker starts
-a Worksheet object and in Excel 97 it returns a Workbook object. You can use
-either the Win32::OLE::QueryObjectType class method or the $object->{Version}
-property to write portable code.
-
-=item Enumeration of collection objects
-
-Enumerations seem to be incompletely implemented. Office 95 application don't
-seem to support neither the Reset() nor the Clone() methods. The Clone()
-method is still unimplemented in Office 97. A single walk through the
-collection similar to Visual Basics C<for each> construct does work however.
-
-=item Localization
-
-Starting with Office 97 Microsoft has changed the localized class, method and
-property names back into English. Note that string, date and currency
-arguments are still subject to locale specific interpretation. Perl uses the
-system default locale for all OLE transaction whereas Visual Basic uses a
-type library specific locale. A Visual Basic script would use "R1C1" in string
-arguments to specify relative references. A Perl script running on a German
-language Windows would have to use "Z1S1". Set the LCID module option
-to an English locale to write portable scripts. This variable should
-not be changed after creating the OLE objects; some methods seem to randomly
-fail if the locale is changed on the fly.
-
-=item SaveAs method in Word 97 doesn't work
-
-This is an known bug in Word 97. Search the MS knowledge base for Word /
-Foxpro incompatibility. That problem applies to the Perl OLE interface as
-well. A workaround is to use the WordBasic compatibility object. It doesn't
-support all the options of the native method though.
-
- $Word->WordBasic->FileSaveAs($file);
-
-The problem seems to be fixed by applying the Office 97 Service Release 1.
-
-=item Randomly failing method calls
-
-It seems like modifying objects that are not selected/activated is sometimes
-fragile. Most of these problems go away if the chart/sheet/document is
-selected or activated before being manipulated (just like an interactive
-user would automatically do it).
-
-=back
-
-=head2 Incompatibilities
-
-There are some incompatibilities with the version distributed by Activeware
-(as of build 306).
-
-=over 8
-
-=item 1
-
-The package name has changed from "OLE" to "Win32::OLE".
-
-=item 2
-
-All functions of the form "Win32::OLEFoo" are now "Win32::OLE::Foo",
-though the old names are temporarily accommodated. Win32::OLECreateObject()
-was changed to Win32::OLE::CreateObject(), and is now called
-Win32::OLE::new() bowing to established convention for naming constructors.
-The old names should be considered deprecated, and will be removed in the
-next version.
-
-=item 3
-
-Package "OLE::Variant" is now "Win32::OLE::Variant".
-
-=item 4
-
-The Variant function is new, and is exported by default. So are
-all the VT_XXX type constants.
-
-=item 5
-
-The support for collection objects has been moved into the package
-Win32::OLE::Enum. The C<keys %$object> method is now used to enumerate
-the properties of the object.
-
-=back
-
-=head2 Bugs and Limitations
-
-=over 8
-
-=item *
-
-To invoke a native OLE method with the same name as one of the
-Win32::OLE methods (C<Dispatch>, C<Invoke>, C<SetProperty>, C<DESTROY>,
-etc.), you have to use the C<Invoke> method:
-
- $Object->Invoke('Dispatch', @AdditionalArgs);
-
-The same is true for names exported by the Exporter or the Dynaloader
-modules, e.g.: C<export>, C<export_to_level>, C<import>,
-C<_push_tags>, C<export_tags>, C<export_ok_tags>, C<export_fail>,
-C<require_version>, C<dl_load_flags>,
-C<croak>, C<bootstrap>, C<dl_findfile>, C<dl_expandspec>,
-C<dl_find_symbol_anywhere>, C<dl_load_file>, C<dl_find_symbol>,
-C<dl_undef_symbols>, C<dl_install_xsub> and C<dl_error>.
-
-=back
-
-=head1 SEE ALSO
-
-The documentation for L<Win32::OLE::Const>, L<Win32::OLE::Enum>,
-L<Win32::OLE::NLS> and L<Win32::OLE::Variant> contains additional
-information about OLE support for Perl on Win32.
-
-=head1 AUTHORS
-
-Originally put together by the kind people at Hip and Activeware.
-
-Gurusamy Sarathy <gsar@cpan.org> subsequently fixed several
-major bugs, memory leaks, and reliability problems, along with some
-redesign of the code.
-
-Jan Dubois <jand@activestate.com> pitched in with yet more massive redesign,
-added support for named parameters, and other significant enhancements.
-He's been hacking on it ever since.
-
-Please send questions about problems with this module to the
-Perl-Win32-Users mailinglist at ActiveState.com. The mailinglist charter
-requests that you put an [OLE] tag somewhere on the subject line (for OLE
-related questions only, of course).
-
-=head1 COPYRIGHT
-
- (c) 1995 Microsoft Corporation. All rights reserved.
- Developed by ActiveWare Internet Corp., now known as
- ActiveState Tool Corp., http://www.ActiveState.com
-
- Other modifications Copyright (c) 1997-2006 by Gurusamy Sarathy
- <gsar@cpan.org> and Jan Dubois <jand@activestate.com>
-
- You may distribute under the terms of either the GNU General Public
- License or the Artistic License, as specified in the README file.
-
-=head1 VERSION
-
-Version 0.1712 14 May 2014
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Win32/OLE/Const.pm b/Master/tlpkg/tlperl/lib/Win32/OLE/Const.pm
deleted file mode 100644
index d0fe00b9ea7..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/OLE/Const.pm
+++ /dev/null
@@ -1,201 +0,0 @@
-# The documentation is at the __END__
-
-package Win32::OLE::Const;
-
-use strict;
-use Carp;
-use Win32::OLE;
-
-my $Typelibs;
-sub _Typelib {
- my ($clsid,$title,$version,$langid,$filename) = @_;
- # Filenames might have a resource index appended to it.
- $filename = $1 if $filename =~ /^(.*\.(?:dll|exe))(\\\d+)$/i;
- # Ignore if it looks like a file but doesn't exist.
- # We don't verify existence of monikers or filenames
- # without a full pathname.
- return if $filename =~ /^\w:\\.*\.(exe|dll)$/ && !-f $filename;
- push @$Typelibs, \@_;
-}
-unless (__PACKAGE__->_Typelibs("TypeLib")) {
- warn("Cannot access HKEY_CLASSES_ROOT\\Typelib");
-}
-# Enumerate 32bit type libraries on Win64
-__PACKAGE__->_Typelibs("Wow6432Node\\TypeLib");
-
-sub import {
- my ($self,$name,$major,$minor,$language,$codepage) = @_;
- return unless defined($name) && $name !~ /^\s*$/;
- $self->Load($name,$major,$minor,$language,$codepage,scalar caller);
-}
-
-sub EnumTypeLibs {
- my ($self,$callback) = @_;
- foreach (@$Typelibs) { &$callback(@$_) }
- return;
-}
-
-sub Load {
- my ($self,$name,$major,$minor,$language,$codepage,$caller) = @_;
-
- if (UNIVERSAL::isa($name,'Win32::OLE')) {
- my $typelib = $name->GetTypeInfo->GetContainingTypeLib;
- return _Constants($typelib, undef);
- }
-
- undef $minor unless defined $major;
- my $typelib = $self->LoadRegTypeLib($name,$major,$minor,
- $language,$codepage);
- return _Constants($typelib, $caller);
-}
-
-sub LoadRegTypeLib {
- my ($self,$name,$major,$minor,$language,$codepage) = @_;
- undef $minor unless defined $major;
-
- unless (defined($name) && $name !~ /^\s*$/) {
- carp "Win32::OLE::Const->Load: No or invalid type library name";
- return;
- }
-
- my @found;
- foreach my $Typelib (@$Typelibs) {
- my ($clsid,$title,$version,$langid,$filename) = @$Typelib;
- next unless $title =~ /^$name/;
- next unless $version =~ /^([0-9a-fA-F]+)\.([0-9a-fA-F]+)$/;
- my ($maj,$min) = (hex($1), hex($2));
- next if defined($major) && $maj != $major;
- next if defined($minor) && $min < $minor;
- next if defined($language) && $language != $langid;
- push @found, [$clsid,$maj,$min,$langid,$filename];
- }
-
- unless (@found) {
- carp "No type library matching \"$name\" found";
- return;
- }
-
- @found = sort {
- # Prefer greater version number
- my $res = $b->[1] <=> $a->[1];
- $res = $b->[2] <=> $a->[2] if $res == 0;
- # Prefer default language for equal version numbers
- $res = -1 if $res == 0 && $a->[3] == 0;
- $res = 1 if $res == 0 && $b->[3] == 0;
- $res;
- } @found;
-
- #printf "Loading %s\n", join(' ', @{$found[0]});
- return _LoadRegTypeLib(@{$found[0]},$codepage);
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Win32::OLE::Const - Extract constant definitions from TypeLib
-
-=head1 SYNOPSIS
-
- use Win32::OLE::Const 'Microsoft Excel';
- printf "xlMarkerStyleDot = %d\n", xlMarkerStyleDot;
-
- my $wd = Win32::OLE::Const->Load("Microsoft Word 8\\.0 Object Library");
- foreach my $key (keys %$wd) {
- printf "$key = %s\n", $wd->{$key};
- }
-
-=head1 DESCRIPTION
-
-This modules makes all constants from a registered OLE type library
-available to the Perl program. The constant definitions can be
-imported as functions, providing compile time name checking.
-Alternatively the constants can be returned in a hash reference
-which avoids defining lots of functions of unknown names.
-
-=head2 Functions/Methods
-
-=over 4
-
-=item use Win32::OLE::Const
-
-The C<use> statement can be used to directly import the constant names
-and values into the users namespace.
-
- use Win32::OLE::Const (TYPELIB,MAJOR,MINOR,LANGUAGE);
-
-The TYPELIB argument specifies a regular expression for searching
-through the registry for the type library. Note that this argument is
-implicitly prefixed with C<^> to speed up matches in the most common
-cases. Use a typelib name like ".*Excel" to match anywhere within the
-description. TYPELIB is the only required argument.
-
-The MAJOR and MINOR arguments specify the requested version of
-the type specification. If the MAJOR argument is used then only
-typelibs with exactly this major version number will be matched. The
-MINOR argument however specifies the minimum acceptable minor version.
-MINOR is ignored if MAJOR is undefined.
-
-If the LANGUAGE argument is used then only typelibs with exactly this
-language id will be matched.
-
-The module will select the typelib with the highest version number
-satisfying the request. If no language id is specified then a the default
-language (0) will be preferred over the others.
-
-Note that only constants with valid Perl variable names will be exported,
-i.e. names matching this regexp: C</^[a-zA-Z_][a-zA-Z0-9_]*$/>.
-
-=item Win32::OLE::Const->Load
-
-The Win32::OLE::Const->Load method returns a reference to a hash of
-constant definitions.
-
- my $const = Win32::OLE::Const->Load(TYPELIB,MAJOR,MINOR,LANGUAGE);
-
-The parameters are the same as for the C<use> case.
-
-This method is generally preferable when the typelib uses a non-english
-language and the constant names contain locale specific characters not
-allowed in Perl variable names.
-
-Another advantage is that all available constants can now be enumerated.
-
-The load method also accepts an OLE object as a parameter. In this case
-the OLE object is queried about its containing type library and no registry
-search is done at all. Interestingly this seems to be slower.
-
-=back
-
-=head1 EXAMPLES
-
-The first example imports all Excel constants names into the main namespace
-and prints the value of xlMarkerStyleDot (-4118).
-
- use Win32::OLE::Const ('Microsoft Excel 8.0 Object Library');
- print "xlMarkerStyleDot = %d\n", xlMarkerStyleDot;
-
-The second example returns all Word constants in a hash ref.
-
- use Win32::OLE::Const;
- my $wd = Win32::OLE::Const->Load("Microsoft Word 8.0 Object Library");
- foreach my $key (keys %$wd) {
- printf "$key = %s\n", $wd->{$key};
- }
- printf "wdGreen = %s\n", $wd->{wdGreen};
-
-The last example uses an OLE object to specify the type library:
-
- use Win32::OLE;
- use Win32::OLE::Const;
- my $Excel = Win32::OLE->new('Excel.Application', 'Quit');
- my $xl = Win32::OLE::Const->Load($Excel);
-
-
-=head1 AUTHORS/COPYRIGHT
-
-This module is part of the Win32::OLE distribution.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Win32/OLE/Enum.pm b/Master/tlpkg/tlperl/lib/Win32/OLE/Enum.pm
deleted file mode 100644
index 6047d2c8274..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/OLE/Enum.pm
+++ /dev/null
@@ -1,95 +0,0 @@
-# The documentation is at the __END__
-
-package Win32::OLE::Enum;
-1;
-
-# everything is pure XS in Win32::OLE::Enum
-# - new
-# - DESTROY
-#
-# - All
-# - Clone
-# - Next
-# - Reset
-# - Skip
-
-__END__
-
-=head1 NAME
-
-Win32::OLE::Enum - OLE Automation Collection Objects
-
-=head1 SYNOPSIS
-
- my $Sheets = $Excel->Workbooks(1)->Worksheets;
- my $Enum = Win32::OLE::Enum->new($Sheets);
- my @Sheets = $Enum->All;
-
- while (defined(my $Sheet = $Enum->Next)) { ... }
-
-=head1 DESCRIPTION
-
-This module provides an interface to OLE collection objects from
-Perl. It defines an enumerator object closely mirroring the
-functionality of the IEnumVARIANT interface.
-
-Please note that the Reset() method is not available in all implementations
-of OLE collections (like Excel 7). In that case the Enum object is good
-only for a single walk through of the collection.
-
-=head2 Functions/Methods
-
-=over 8
-
-=item Win32::OLE::Enum->new($object)
-
-Creates an enumerator for $object, which must be a valid OLE collection
-object. Note that correctly implemented collection objects must support
-the C<Count> and C<Item> methods, so creating an enumerator is not always
-necessary.
-
-=item $Enum->All()
-
-Returns a list of all objects in the collection. You have to call
-$Enum->Reset() before the enumerator can be used again. The previous
-position in the collection is lost.
-
-This method can also be called as a class method:
-
- my @list = Win32::OLE::Enum->All($Collection);
-
-=item $Enum->Clone()
-
-Returns a clone of the enumerator maintaining the current position within
-the collection (if possible). Note that the C<Clone> method is often not
-implemented. Use $Enum->Clone() in an eval block to avoid dying if you
-are not sure that Clone is supported.
-
-=item $Enum->Next( [$count] )
-
-Returns the next element of the collection. In a list context the optional
-$count argument specifies the number of objects to be returned. In a scalar
-context only the last of at most $count retrieved objects is returned. The
-default for $count is 1.
-
-=item $Enum->Reset()
-
-Resets the enumeration sequence to the beginning. There is no guarantee that
-the exact same set of objects will be enumerated again (e.g. when enumerating
-files in a directory). The methods return value indicates the success of the
-operation. (Note that the Reset() method seems to be unimplemented in some
-applications like Excel 7. Use it in an eval block to avoid dying.)
-
-=item $Enum->Skip( [$count] )
-
-Skip the next $count elements of the enumeration. The default for $count is 1.
-The functions returns TRUE if at least $count elements could be skipped. It
-returns FALSE if not enough elements were left.
-
-=back
-
-=head1 AUTHORS/COPYRIGHT
-
-This module is part of the Win32::OLE distribution.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Win32/OLE/Lite.pm b/Master/tlpkg/tlperl/lib/Win32/OLE/Lite.pm
deleted file mode 100644
index 66b5e50ac0e..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/OLE/Lite.pm
+++ /dev/null
@@ -1,224 +0,0 @@
-package Win32::OLE;
-
-sub _croak { require Carp; Carp::croak(@_) }
-
-unless (defined &Dispatch) {
- DynaLoader::boot_DynaLoader('DynaLoader')
- unless defined(&DynaLoader::dl_load_file);
- my $file;
- foreach my $dir (@INC) {
- my $try = "$dir/auto/Win32/OLE/OLE.dll";
- last if $file = (-f $try && $try);
- }
- _croak("Can't locate loadable object for module Win32::OLE".
- " in \@INC (\@INC contains: @INC)")
- unless $file; # wording similar to error from 'require'
-
- my $libref = DynaLoader::dl_load_file($file, 0) or
- _croak("Can't load '$file' for module Win32::OLE: ".
- DynaLoader::dl_error()."\n");
-
- my $boot_symbol_ref = DynaLoader::dl_find_symbol($libref, "boot_Win32__OLE")
- or _croak("Can't find 'boot_Win32__OLE' symbol in $file\n");
-
- my $xs = DynaLoader::dl_install_xsub("Win32::OLE::bootstrap",
- $boot_symbol_ref, $file);
- &$xs('Win32::OLE');
-}
-
-if (defined &DB::sub && !defined $_Unique) {
- warn "Win32::OLE operating in debugging mode: _Unique => 1\n";
- $_Unique = 1;
-}
-
-$Warn = 1;
-
-sub CP_ACP {0;} # ANSI codepage
-sub CP_OEMCP {1;} # OEM codepage
-sub CP_MACCP {2;}
-sub CP_UTF7 {65000;}
-sub CP_UTF8 {65001;}
-
-sub DISPATCH_METHOD {1;}
-sub DISPATCH_PROPERTYGET {2;}
-sub DISPATCH_PROPERTYPUT {4;}
-sub DISPATCH_PROPERTYPUTREF {8;}
-
-sub COINIT_MULTITHREADED {0;} # Default
-sub COINIT_APARTMENTTHREADED {2;} # Use single threaded apartment model
-
-# Bogus COINIT_* values to indicate special cases:
-sub COINIT_OLEINITIALIZE {-1;} # Use OleInitialize instead of CoInitializeEx
-sub COINIT_NO_INITIALIZE {-2;} # We are already initialized, just believe me
-
-sub HRESULT {
- my $hr = shift;
- $hr -= 2**32 if $hr & 0x80000000;
- return $hr;
-}
-
-# CreateObject is defined here only because it is documented in the
-# "Learning Perl on Win32 Systems" Gecko book. Please use Win32::OLE->new().
-sub CreateObject {
- if (ref($_[0]) && UNIVERSAL::isa($_[0],'Win32::OLE')) {
- $AUTOLOAD = ref($_[0]) . '::CreateObject';
- goto &AUTOLOAD;
- }
-
- # Hack to allow C<$obj = CreateObject Win32::OLE 'My.App';>. Although this
- # is contrary to the Gecko, we just make it work since it doesn't hurt.
- return Win32::OLE->new($_[1]) if $_[0] eq 'Win32::OLE';
-
- # Gecko form: C<$success = Win32::OLE::CreateObject('My.App',$obj);>
- $_[1] = Win32::OLE->new($_[0]);
- return defined $_[1];
-}
-
-sub LastError {
- unless (defined $_[0]) {
- # Win32::OLE::LastError() will always return $Win32::OLE::LastError
- return $LastError;
- }
-
- if (ref($_[0]) && UNIVERSAL::isa($_[0],'Win32::OLE')) {
- $AUTOLOAD = ref($_[0]) . '::LastError';
- goto &AUTOLOAD;
- }
-
- #no strict 'refs';
- my $LastError = "$_[0]::LastError";
- $$LastError = $_[1] if defined $_[1];
- return $$LastError;
-}
-
-my $Options = "^(?:CP|LCID|Warn|Variant|_NewEnum|_Unique)\$";
-
-sub Option {
- if (ref($_[0]) && UNIVERSAL::isa($_[0],'Win32::OLE')) {
- $AUTOLOAD = ref($_[0]) . '::Option';
- goto &AUTOLOAD;
- }
-
- my $class = shift;
-
- if (@_ == 1) {
- my $option = shift;
- return ${"${class}::$option"} if $option =~ /$Options/o;
- _croak("Invalid $class option: $option");
- }
-
- while (@_) {
- my ($option,$value) = splice @_, 0, 2;
- _croak("Invalid $class option: $option") if $option !~ /$Options/o;
- ${"${class}::$option"} = $value;
- $class->_Unique() if $option eq "_Unique";
- }
-}
-
-sub Invoke {
- my ($self,$method,@args) = @_;
- $self->Dispatch($method, my $retval, @args);
- return $retval;
-}
-
-sub LetProperty {
- my ($self,$method,@args) = @_;
- $self->Dispatch([DISPATCH_PROPERTYPUT, $method], my $retval, @args);
- return $retval;
-}
-
-sub SetProperty {
- my ($self,$method,@args) = @_;
- my $wFlags = DISPATCH_PROPERTYPUT;
- if (@args) {
- # If the value is an object then it will be set by reference!
- my $value = $args[-1];
- if (UNIVERSAL::isa($value, 'Win32::OLE')) {
- $wFlags = DISPATCH_PROPERTYPUTREF;
- }
- elsif (UNIVERSAL::isa($value,'Win32::OLE::Variant')) {
- my $type = $value->Type & ~0xfff; # VT_TYPEMASK
- # VT_DISPATCH and VT_UNKNOWN represent COM objects
- $wFlags = DISPATCH_PROPERTYPUTREF if $type == 9 || $type == 13;
- }
- }
- $self->Dispatch([$wFlags, $method], my $retval, @args);
- return $retval;
-}
-
-sub AUTOLOAD {
- my $self = shift;
- my $autoload = substr $AUTOLOAD, rindex($AUTOLOAD, ':')+1;
- _croak("Cannot autoload class method \"$autoload\"")
- unless ref($self) && UNIVERSAL::isa($self, 'Win32::OLE');
- my $success = $self->Dispatch($autoload, my $retval, @_);
- unless (defined $success || ($^H & 0x200) != 0) {
- # Retry default method if C<no strict 'subs';>
- $self->Dispatch(undef, $retval, $autoload, @_);
- }
- return $retval;
-}
-
-sub in {
- my @res;
- while (@_) {
- my $this = shift;
- if (UNIVERSAL::isa($this, 'Win32::OLE')) {
- push @res, Win32::OLE::Enum->All($this);
- }
- elsif (ref($this) eq 'ARRAY') {
- push @res, @$this;
- }
- else {
- push @res, $this;
- }
- }
- return @res;
-}
-
-sub valof {
- my $arg = shift;
- if (UNIVERSAL::isa($arg, 'Win32::OLE')) {
- require Win32::OLE::Variant;
- my ($class) = overload::StrVal($arg) =~ /^([^=]+)=/;
- #no strict 'refs';
- local $Win32::OLE::CP = ${"${class}::CP"};
- local $Win32::OLE::LCID = ${"${class}::LCID"};
- #use strict 'refs';
- # VT_EMPTY variant for return code
- my $variant = Win32::OLE::Variant->new;
- $arg->Dispatch(undef, $variant);
- return $variant->Value;
- }
- $arg = $arg->Value if UNIVERSAL::can($arg, 'Value');
- return $arg;
-}
-
-sub with {
- my $object = shift;
- while (@_) {
- my $property = shift;
- $object->{$property} = shift;
- }
-}
-
-########################################################################
-
-package Win32::OLE::Tie;
-
-# Only retry default method under C<no strict 'subs';>
-sub FETCH {
- my ($self,$key) = @_;
- if ($key eq "_NewEnum") {
- (my $class = ref $self) =~ s/::Tie$//;
- return [Win32::OLE::Enum->All($self)] if ${"${class}::_NewEnum"};
- }
- $self->Fetch($key, !$Win32::OLE::Strict);
-}
-
-sub STORE {
- my ($self,$key,$value) = @_;
- $self->Store($key, $value, !$Win32::OLE::Strict);
-}
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Win32/OLE/NEWS.pod b/Master/tlpkg/tlperl/lib/Win32/OLE/NEWS.pod
deleted file mode 100644
index 217fe4a6fcc..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/OLE/NEWS.pod
+++ /dev/null
@@ -1,380 +0,0 @@
-=pod
-
-=head1 NAME
-
-Win32::OLE::NEWS - What's new in Win32::OLE
-
-This file contains a history of user visible changes to the
-Win32::OLE::* modules. Only new features and major bug fixes that
-might affect backwards compatibility are included.
-
-=head1 Version 0.18
-
-=head2 VT_CY and VT_DECIMAL return values handled differently
-
-The new C<Variant> option enables values of VT_CY or VT_DECIMAL type
-to be returned as Win32::OLE::Variant objects instead of being
-converted into strings and numbers respectively. This is similar to
-the change in Win32::OLE version 0.12 to VT_DATE and VT_ERROR values.
-The Win32::OLE::Variant module must be included to make sure that
-VT_CY and VT_DECIMAL values behave as before in numeric or string
-contexts.
-
-Because the new behavior is potentially incompatible, it must be
-explicitly enabled:
-
- Win32::OLE->Option(Variant => 1);
-
-
-=head1 Version 0.17
-
-=head2 New nullstring() function in Win32::OLE::Variant
-
-The nullstring() function returns a VT_BSTR variant containing a NULL
-string pointer. Note that this is not the same as a VT_BSTR variant
-containing the empty string "".
-
-The nullstring() return value is equivalent to the Visual Basic
-C<vbNullString> constant.
-
-
-=head1 Version 0.16
-
-=head2 Improved Unicode support
-
-Passing Unicode strings to methods and properties as well as returning
-Unicode strings back to Perl works now with both Perl 5.6 and 5.8.
-Note that the Unicode support in 5.8 is much more complete than in 5.6
-or 5.6.1.
-
-C<Unicode::String> objects can now be passed to methods or assigned to
-properties.
-
-You must enable Unicode support by switching Win32::OLE to the UTF8
-codepage:
-
- Win32::OLE->Option(CP => Win32::OLE::CP_UTF8());
-
-
-=head1 Version 0.13
-
-=head2 New nothing() function in Win32::OLE::Variant
-
-The nothing() function returns an empty VT_DISPATCH variant. It can be
-used to clear an object reference stored in a property
-
- use Win32::OLE::Variant qw(:DEFAULT nothing);
- # ...
- $object->{Property} = nothing;
-
-This has the same effect as the Visual Basic statement
-
- Set object.Property = Nothing
-
-=head2 New _NewEnum and _Unique options
-
-There are two new options available for the Win32::OLE->Option class
-method: C<_NewEnum> provides the elements of a collection object
-directly as the value of a C<_NewEnum> property. The C<_Unique>
-option guarantees that Win32::OLE will not create multiple proxy
-objects for the same underlying COM/OLE object.
-
-Both options are only really useful to tree traversal programs or
-during debugging.
-
-
-=head1 Version 0.12
-
-=head2 Additional error handling functionality
-
-The Warn option can now be set to a CODE reference too. For example,
-
- Win32::OLE->Option(Warn => 3);
-
-could now be written as
-
- Win32::OLE->Option(Warn => \&Carp::croak);
-
-This can even be used to emulate the VisualBasic C<On Error Goto
-Label> construct:
-
- Win32::OLE->Option(Warn => sub {goto CheckError});
- # ... your normal OLE code here ...
-
- CheckError:
- # ... your error handling code here ...
-
-=head2 Builtin event loop
-
-Processing OLE events required a polling loop before, e.g.
-
- my $Quit;
- #...
- until ($Quit) {
- Win32::OLE->SpinMessageLoop;
- Win32::Sleep(100);
- }
- package BrowserEvents;
- sub OnQuit { $Quit = 1 }
-
-This is inefficient and a bit odd. This version of Win32::OLE now
-supports a standard messageloop:
-
- Win32::OLE->MessageLoop();
-
- package BrowserEvents;
- sub OnQuit { Win32::OLE->QuitMessageLoop }
-
-=head2 Free unused OLE libraries
-
-Previous versions of Win32::OLE would call the CoFreeUnusedLibraries()
-API whenever an OLE object was destroyed. This made sure that OLE
-libraries would be unloaded as soon as they were no longer needed.
-Unfortunately, objects implemented in Visual Basic tend to crash
-during this call, as they pretend to be ready for unloading, when in
-fact, they aren't.
-
-The unloading of object libraries is really only important for long
-running processes that might instantiate a huge number of B<different>
-objects over time. Therefore this API is no longer called
-automatically. The functionality is now available explicitly to those
-who want or need it by calling a Win32::OLE class method:
-
- Win32::OLE->FreeUnusedLibraries();
-
-=head2 The "Win32::OLE" article from "The Perl Journal #10"
-
-The article is Copyright 1998 by I<The Perl
-Journal>. http://www.tpj.com
-
-It originally appeared in I<The Perl Journal> # 10 and appears here
-courtesy of Jon Orwant and I<The Perl Journal>. The sample code from
-the article is in the F<eg/tpj.pl> file.
-
-=head2 VARIANT->Put() bug fixes
-
-The Put() method didn't work correctly for arrays of type VT_BSTR,
-VT_DISPATH or VT_UNKNOWN. This has been fixed.
-
-=head2 Error message fixes
-
-Previous versions of Win32::OLE gave a wrong argument index for some
-OLE error messages (the number was too large by 1). This should be
-fixed now.
-
-=head2 VT_DATE and VT_ERROR return values handled differently
-
-Method calls and property accesses returning a VT_DATE or VT_ERROR
-value would previously translate the value to string or integer
-format. This has been changed to return a Win32::OLE::Variant object.
-The return values will behave as before if the Win32::OLE::Variant
-module is being used. This module overloads the conversion of
-the objects to strings and numbers.
-
-
-=head1 Version 0.11 (changes since 0.1008)
-
-=head2 new DHTML typelib browser
-
-The Win32::OLE distribution now contains a type library browser. It
-is written in PerlScript, generating dynamic HTML. It requires
-Internet Explorer 4.0 or later. You'll find it in
-F<browser/Browser.html>. It should be available in the ActivePerl
-HTML help under Win32::OLE::Browser.
-
-After selecting a library, type or member you can press F1 to call up
-the corresponding help file at the appropriate location.
-
-=head2 VT_DECIMAL support
-
-The Win32::OLE::Variant module now supports VT_DECIMAL variants too.
-They are not "officially" allowed in OLE Automation calls, but even
-Microsoft's "ActiveX Data Objects" sometimes returns VT_DECIMAL
-values.
-
-VT_DECIMAL variables are stored as 96-bit integers scaled by a
-variable power of 10. The power of 10 scaling factor specifies the
-number of digits to the right of the decimal point, and ranges from 0
-to 28. With a scale of 0 (no decimal places), the largest possible
-value is +/-79,228,162,514,264,337,593,543,950,335. With a 28 decimal
-places, the largest value is +/-7.9228162514264337593543950335 and the
-smallest, non-zero value is +/-0.0000000000000000000000000001.
-
-=head1 Version 0.1008
-
-=head2 new LetProperty() object method
-
-In Win32::OLE property assignment using the hash syntax is equivalent
-to the Visual Basic C<Set> syntax (I<by reference> assignment):
-
- $Object->{Property} = $OtherObject;
-
-corresponds to this Visual Basic statement:
-
- Set Object.Property = OtherObject
-
-To get the I<by value> treatment of the Visual Basic C<Let> statement
-
- Object.Property = OtherObject
-
-you have to use the LetProperty() object method in Perl:
-
- $Object->LetProperty($Property, $OtherObject);
-
-=head2 new HRESULT() function
-
-The HRESULT() function converts an unsigned number into a signed HRESULT
-error value as used by OLE internally. This is necessary because Perl
-treats all hexadecimal constants as unsigned. To check if the last OLE
-function returned "Member not found" (0x80020003) you can write:
-
- if (Win32::OLE->LastError == HRESULT(0x80020003)) {
- # your error recovery here
- }
-
-=head1 Version 0.1007 (changes since 0.1005)
-
-=head2 OLE Event support
-
-This version of Win32::OLE contains B<ALPHA> level support for OLE events. The
-user interface is still subject to change. There are ActiveX objects / controls
-that don't fire events under the current implementation.
-
-Events are enabled for a specific object with the Win32::OLE->WithEvents()
-class method:
-
- Win32::OLE->WithEvents(OBJECT, HANDLER, INTERFACE)
-
-Please read further documentation in Win32::OLE.
-
-=head2 GetObject() and GetActiveObject() now support optional DESTRUCTOR argument
-
-It is now possible to specify a DESTRUCTOR argument to the GetObject() and
-GetActiveObject() class methods. They work identical to the new() DESTRUCTOR
-argument.
-
-=head2 Remote object instantiation via DCOM
-
-This has actually been in Win32::OLE since 0.0608, but somehow never got
-documented. You can provide an array reference in place of the usual PROGID
-parameter to Win32::OLE->new():
-
- OBJ = Win32::OLE->new([MACHINE, PRODID]);
-
-The array must contain two elements: the name of the MACHINE and the PROGID.
-This will try to create the object on the remote MACHINE.
-
-=head2 Enumerate all Win32::OLE objects
-
-This class method returns the number Win32::OLE objects currently in
-existence. It will call the optional CALLBACK function for each of
-these objects:
-
- $Count = Win32::OLE->EnumAllObjects(sub {
- my $Object = shift;
- my $Class = Win32::OLE->QueryObjectType($Object);
- printf "# Object=%s Class=%s\n", $Object, $Class;
- });
-
-The EnumAllObjects() method is primarily a debugging tool. It can be
-used e.g. in an END block to check if all external connections have
-been properly destroyed.
-
-=head2 The VARIANT->Put() method now returns the VARIANT object itself
-
-This allows chaining of Put() method calls to set multiple values in an
-array variant:
-
- $Array->Put(0,0,$First_value)->Put(0,1,$Another_value);
-
-=head2 The VARIANT->Put(ARRAYREF) form allows assignment to a complete SAFEARRAY
-
-This allows automatic conversion from a list of lists to a SAFEARRAY.
-You can now write:
-
- my $Array = Variant(VT_ARRAY|VT_R8, [1,2], 2);
- $Array->Put([[1,2], [3,4]]);
-
-instead of the tedious:
-
- $Array->Put(1,0,1);
- $Array->Put(1,1,2);
- $Array->Put(2,0,3);
- $Array->Put(2,1,4);
-
-=head2 New Variant formatting methods
-
-There are four new methods for formatting variant values: Currency(), Date(),
-Number() and Time(). For example:
-
- my $v = Variant(VT_DATE, "April 1 99");
- print $v->Date(DATE_LONGDATE), "\n";
- print $v->Date("ddd',' MMM dd yy"), "\n";
-
-will print:
-
- Thursday, April 01, 1999
- Thu, Apr 01 99
-
-=head2 new Win32::OLE::NLS methods: SendSettingChange() and SetLocaleInfo()
-
-SendSettingChange() sends a WM_SETTINGCHANGE message to all top level windows.
-
-SetLocaleInfo() allows changing elements in the user override section of the
-locale database. Unfortunately these changes are not automatically available
-to further Variant formatting; you have to call SendSettingChange() first.
-
-=head2 Win32::OLE::Const now correctly treats version numbers as hex
-
-The minor and major version numbers of type libraries have been treated as
-decimal. This was wrong. They are now correctly decoded as hex.
-
-=head2 more robust global destruction of Win32::OLE objects
-
-The final destruction of Win32::OLE objects has always been somewhat fragile.
-The reason for this is that Perl doesn't honour reference counts during global
-destruction but destroys objects in seemingly random order. This can lead
-to leaked database connections or unterminated external objects. The only
-solution was to make all objects lexical and hope that no object would be
-trapped in a closure. Alternatively all objects could be explicitly set to
-C<undef>, which doesn't work very well with exception handling.
-
-With version 0.1007 of Win32::OLE this problem should be gone: The module
-keeps a list of active Win32::OLE objects. It uses an END block to destroy
-all objects at program termination I<before> the Perl's global destruction
-starts. Objects still existing at program termination are now destroyed in
-reverse order of creation. The effect is similar to explicitly calling
-Win32::OLE->Uninitialize() just prior to termination.
-
-=head1 Version 0.1005 (changes since 0.1003)
-
-Win32::OLE 0.1005 has been release with ActivePerl build 509. It is also
-included in the I<Perl Resource Kit for Win32> Update.
-
-=head2 optional DESTRUCTOR for GetActiveObject() GetObject() class methods
-
-The GetActiveObject() and GetObject() class method now also support an
-optional DESTRUCTOR parameter just like Win32::OLE->new(). The DESTRUCTOR
-is executed when the last reference to this object goes away. It is
-generally considered C<impolite> to stop applications that you did not
-start yourself.
-
-=head2 new Variant object method: $object->Copy()
-
-See L<Win32::OLE::Variant/Copy([DIM])>.
-
-=head2 new Win32::OLE->Option() class method
-
-The Option() class method can be used to inspect and modify
-L<Win32::OLE/Module Options>. The single argument form retrieves
-the value of an option:
-
- my $CP = Win32::OLE->Option('CP');
-
-A single call can be used to set multiple options simultaneously:
-
- Win32::OLE->Option(CP => CP_ACP, Warn => 3);
-
-Currently the following options exist: CP, LCID and C<Warn>.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Win32/OLE/NLS.pm b/Master/tlpkg/tlperl/lib/Win32/OLE/NLS.pm
deleted file mode 100644
index 84ea0c77241..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/OLE/NLS.pm
+++ /dev/null
@@ -1,968 +0,0 @@
-# The documentation is at the __END__
-
-package Win32::OLE::NLS;
-require Win32::OLE; # Make sure the XS bootstrap has been called
-
-use strict;
-use vars qw(@EXPORT @EXPORT_OK %EXPORT_TAGS @ISA);
-
-use Exporter;
-@ISA = qw(Exporter);
-
-@EXPORT = qw(
- CompareString
- LCMapString
- GetLocaleInfo
- GetStringType
- GetSystemDefaultLangID
- GetSystemDefaultLCID
- GetUserDefaultLangID
- GetUserDefaultLCID
-
- MAKELANGID
- PRIMARYLANGID
- SUBLANGID
- LANG_SYSTEM_DEFAULT
- LANG_USER_DEFAULT
- MAKELCID
- LANGIDFROMLCID
- LOCALE_SYSTEM_DEFAULT
- LOCALE_USER_DEFAULT
- );
-
-@EXPORT_OK = qw(SetLocaleInfo SendSettingChange);
-
-%EXPORT_TAGS =
-(
- CT => [qw(CT_CTYPE1 CT_CTYPE2 CT_CTYPE3)],
- C1 => [qw(C1_UPPER C1_LOWER C1_DIGIT C1_SPACE C1_PUNCT
- C1_CNTRL C1_BLANK C1_XDIGIT C1_ALPHA)],
- C2 => [qw(C2_LEFTTORIGHT C2_RIGHTTOLEFT C2_EUROPENUMBER
- C2_EUROPESEPARATOR C2_EUROPETERMINATOR C2_ARABICNUMBER
- C2_COMMONSEPARATOR C2_BLOCKSEPARATOR C2_SEGMENTSEPARATOR
- C2_WHITESPACE C2_OTHERNEUTRAL C2_NOTAPPLICABLE)],
- C3 => [qw(C3_NONSPACING C3_DIACRITIC C3_VOWELMARK C3_SYMBOL C3_KATAKANA
- C3_HIRAGANA C3_HALFWIDTH C3_FULLWIDTH C3_IDEOGRAPH C3_KASHIDA
- C3_ALPHA C3_NOTAPPLICABLE)],
- NORM => [qw(NORM_IGNORECASE NORM_IGNORENONSPACE NORM_IGNORESYMBOLS
- NORM_IGNOREWIDTH NORM_IGNOREKANATYPE NORM_IGNOREKASHIDA)],
- LCMAP => [qw(LCMAP_LOWERCASE LCMAP_UPPERCASE LCMAP_SORTKEY LCMAP_HALFWIDTH
- LCMAP_FULLWIDTH LCMAP_HIRAGANA LCMAP_KATAKANA)],
- LANG => [qw(LANG_NEUTRAL LANG_ALBANIAN LANG_ARABIC LANG_BAHASA
- LANG_BULGARIAN LANG_CATALAN LANG_CHINESE LANG_CZECH LANG_DANISH
- LANG_DUTCH LANG_ENGLISH LANG_FINNISH LANG_FRENCH LANG_GERMAN
- LANG_GREEK LANG_HEBREW LANG_HUNGARIAN LANG_ICELANDIC
- LANG_ITALIAN LANG_JAPANESE LANG_KOREAN LANG_NORWEGIAN
- LANG_POLISH LANG_PORTUGUESE LANG_RHAETO_ROMAN LANG_ROMANIAN
- LANG_RUSSIAN LANG_SERBO_CROATIAN LANG_SLOVAK LANG_SPANISH
- LANG_SWEDISH LANG_THAI LANG_TURKISH LANG_URDU)],
- SUBLANG => [qw(SUBLANG_NEUTRAL SUBLANG_DEFAULT SUBLANG_SYS_DEFAULT
- SUBLANG_CHINESE_SIMPLIFIED SUBLANG_CHINESE_TRADITIONAL
- SUBLANG_DUTCH SUBLANG_DUTCH_BELGIAN SUBLANG_ENGLISH_US
- SUBLANG_ENGLISH_UK SUBLANG_ENGLISH_AUS SUBLANG_ENGLISH_CAN
- SUBLANG_ENGLISH_NZ SUBLANG_ENGLISH_EIRE SUBLANG_FRENCH
- SUBLANG_FRENCH_BELGIAN SUBLANG_FRENCH_CANADIAN
- SUBLANG_FRENCH_SWISS SUBLANG_GERMAN SUBLANG_GERMAN_SWISS
- SUBLANG_GERMAN_AUSTRIAN SUBLANG_ITALIAN SUBLANG_ITALIAN_SWISS
- SUBLANG_NORWEGIAN_BOKMAL SUBLANG_NORWEGIAN_NYNORSK
- SUBLANG_PORTUGUESE SUBLANG_PORTUGUESE_BRAZILIAN
- SUBLANG_SERBO_CROATIAN_CYRILLIC SUBLANG_SERBO_CROATIAN_LATIN
- SUBLANG_SPANISH SUBLANG_SPANISH_MEXICAN
- SUBLANG_SPANISH_MODERN)],
- CTRY => [qw(CTRY_DEFAULT CTRY_AUSTRALIA CTRY_AUSTRIA CTRY_BELGIUM
- CTRY_BRAZIL CTRY_CANADA CTRY_DENMARK CTRY_FINLAND CTRY_FRANCE
- CTRY_GERMANY CTRY_ICELAND CTRY_IRELAND CTRY_ITALY CTRY_JAPAN
- CTRY_MEXICO CTRY_NETHERLANDS CTRY_NEW_ZEALAND CTRY_NORWAY
- CTRY_PORTUGAL CTRY_PRCHINA CTRY_SOUTH_KOREA CTRY_SPAIN
- CTRY_SWEDEN CTRY_SWITZERLAND CTRY_TAIWAN CTRY_UNITED_KINGDOM
- CTRY_UNITED_STATES)],
- LOCALE => [qw(LOCALE_NOUSEROVERRIDE LOCALE_ILANGUAGE LOCALE_SLANGUAGE
- LOCALE_SENGLANGUAGE LOCALE_SABBREVLANGNAME
- LOCALE_SNATIVELANGNAME LOCALE_ICOUNTRY LOCALE_SCOUNTRY
- LOCALE_SENGCOUNTRY LOCALE_SABBREVCTRYNAME LOCALE_SNATIVECTRYNAME
- LOCALE_IDEFAULTLANGUAGE LOCALE_IDEFAULTCOUNTRY
- LOCALE_IDEFAULTCODEPAGE LOCALE_IDEFAULTANSICODEPAGE LOCALE_SLIST
- LOCALE_IMEASURE LOCALE_SDECIMAL LOCALE_STHOUSAND
- LOCALE_SGROUPING LOCALE_IDIGITS LOCALE_ILZERO LOCALE_INEGNUMBER
- LOCALE_SNATIVEDIGITS LOCALE_SCURRENCY LOCALE_SINTLSYMBOL
- LOCALE_SMONDECIMALSEP LOCALE_SMONTHOUSANDSEP LOCALE_SMONGROUPING
- LOCALE_ICURRDIGITS LOCALE_IINTLCURRDIGITS LOCALE_ICURRENCY
- LOCALE_INEGCURR LOCALE_SDATE LOCALE_STIME LOCALE_SSHORTDATE
- LOCALE_SLONGDATE LOCALE_STIMEFORMAT LOCALE_IDATE LOCALE_ILDATE
- LOCALE_ITIME LOCALE_ITIMEMARKPOSN LOCALE_ICENTURY LOCALE_ITLZERO
- LOCALE_IDAYLZERO LOCALE_IMONLZERO LOCALE_S1159 LOCALE_S2359
- LOCALE_ICALENDARTYPE LOCALE_IOPTIONALCALENDAR
- LOCALE_IFIRSTDAYOFWEEK LOCALE_IFIRSTWEEKOFYEAR LOCALE_SDAYNAME1
- LOCALE_SDAYNAME2 LOCALE_SDAYNAME3 LOCALE_SDAYNAME4
- LOCALE_SDAYNAME5 LOCALE_SDAYNAME6 LOCALE_SDAYNAME7
- LOCALE_SABBREVDAYNAME1 LOCALE_SABBREVDAYNAME2
- LOCALE_SABBREVDAYNAME3 LOCALE_SABBREVDAYNAME4
- LOCALE_SABBREVDAYNAME5 LOCALE_SABBREVDAYNAME6
- LOCALE_SABBREVDAYNAME7 LOCALE_SMONTHNAME1 LOCALE_SMONTHNAME2
- LOCALE_SMONTHNAME3 LOCALE_SMONTHNAME4 LOCALE_SMONTHNAME5
- LOCALE_SMONTHNAME6 LOCALE_SMONTHNAME7 LOCALE_SMONTHNAME8
- LOCALE_SMONTHNAME9 LOCALE_SMONTHNAME10 LOCALE_SMONTHNAME11
- LOCALE_SMONTHNAME12 LOCALE_SMONTHNAME13 LOCALE_SABBREVMONTHNAME1
- LOCALE_SABBREVMONTHNAME2 LOCALE_SABBREVMONTHNAME3
- LOCALE_SABBREVMONTHNAME4 LOCALE_SABBREVMONTHNAME5
- LOCALE_SABBREVMONTHNAME6 LOCALE_SABBREVMONTHNAME7
- LOCALE_SABBREVMONTHNAME8 LOCALE_SABBREVMONTHNAME9
- LOCALE_SABBREVMONTHNAME10 LOCALE_SABBREVMONTHNAME11
- LOCALE_SABBREVMONTHNAME12 LOCALE_SABBREVMONTHNAME13
- LOCALE_SPOSITIVESIGN LOCALE_SNEGATIVESIGN LOCALE_IPOSSIGNPOSN
- LOCALE_INEGSIGNPOSN LOCALE_IPOSSYMPRECEDES LOCALE_IPOSSEPBYSPACE
- LOCALE_INEGSYMPRECEDES LOCALE_INEGSEPBYSPACE)],
- TIME => [qw(TIME_NOMINUTESORSECONDS TIME_NOSECONDS TIME_NOTIMEMARKER
- TIME_FORCE24HOURFORMAT)],
- DATE => [qw(DATE_SHORTDATE DATE_LONGDATE DATE_USE_ALT_CALENDAR
- DATE_YEARMONTH DATE_LTRREADING DATE_RTLREADING)],
-);
-
-foreach my $tag (keys %EXPORT_TAGS) {
- push @EXPORT_OK, @{$EXPORT_TAGS{$tag}};
-}
-
-# Character Type Flags
-sub CT_CTYPE1 { 0x0001 }
-sub CT_CTYPE2 { 0x0002 }
-sub CT_CTYPE3 { 0x0004 }
-
-# Character Type 1 Bits
-sub C1_UPPER { 0x0001 }
-sub C1_LOWER { 0x0002 }
-sub C1_DIGIT { 0x0004 }
-sub C1_SPACE { 0x0008 }
-sub C1_PUNCT { 0x0010 }
-sub C1_CNTRL { 0x0020 }
-sub C1_BLANK { 0x0040 }
-sub C1_XDIGIT { 0x0080 }
-sub C1_ALPHA { 0x0100 }
-
-# Character Type 2 Bits
-sub C2_LEFTTORIGHT { 0x1 }
-sub C2_RIGHTTOLEFT { 0x2 }
-sub C2_EUROPENUMBER { 0x3 }
-sub C2_EUROPESEPARATOR { 0x4 }
-sub C2_EUROPETERMINATOR { 0x5 }
-sub C2_ARABICNUMBER { 0x6 }
-sub C2_COMMONSEPARATOR { 0x7 }
-sub C2_BLOCKSEPARATOR { 0x8 }
-sub C2_SEGMENTSEPARATOR { 0x9 }
-sub C2_WHITESPACE { 0xA }
-sub C2_OTHERNEUTRAL { 0xB }
-sub C2_NOTAPPLICABLE { 0x0 }
-
-# Character Type 3 Bits
-sub C3_NONSPACING { 0x0001 }
-sub C3_DIACRITIC { 0x0002 }
-sub C3_VOWELMARK { 0x0004 }
-sub C3_SYMBOL { 0x0008 }
-sub C3_KATAKANA { 0x0010 }
-sub C3_HIRAGANA { 0x0020 }
-sub C3_HALFWIDTH { 0x0040 }
-sub C3_FULLWIDTH { 0x0080 }
-sub C3_IDEOGRAPH { 0x0100 }
-sub C3_KASHIDA { 0x0200 }
-sub C3_ALPHA { 0x8000 }
-sub C3_NOTAPPLICABLE { 0x0 }
-
-# String Flags
-sub NORM_IGNORECASE { 0x0001 }
-sub NORM_IGNORENONSPACE { 0x0002 }
-sub NORM_IGNORESYMBOLS { 0x0004 }
-sub NORM_IGNOREWIDTH { 0x0008 }
-sub NORM_IGNOREKANATYPE { 0x0040 }
-sub NORM_IGNOREKASHIDA { 0x40000}
-
-# Locale Dependent Mapping Flags
-sub LCMAP_LOWERCASE { 0x0100 }
-sub LCMAP_UPPERCASE { 0x0200 }
-sub LCMAP_SORTKEY { 0x0400 }
-sub LCMAP_HALFWIDTH { 0x0800 }
-sub LCMAP_FULLWIDTH { 0x1000 }
-sub LCMAP_HIRAGANA { 0x2000 }
-sub LCMAP_KATAKANA { 0x4000 }
-
-# Primary Language Identifier
-sub LANG_NEUTRAL { 0x00 }
-sub LANG_ALBANIAN { 0x1c }
-sub LANG_ARABIC { 0x01 }
-sub LANG_BAHASA { 0x21 }
-sub LANG_BULGARIAN { 0x02 }
-sub LANG_CATALAN { 0x03 }
-sub LANG_CHINESE { 0x04 }
-sub LANG_CZECH { 0x05 }
-sub LANG_DANISH { 0x06 }
-sub LANG_DUTCH { 0x13 }
-sub LANG_ENGLISH { 0x09 }
-sub LANG_FINNISH { 0x0b }
-sub LANG_FRENCH { 0x0c }
-sub LANG_GERMAN { 0x07 }
-sub LANG_GREEK { 0x08 }
-sub LANG_HEBREW { 0x0d }
-sub LANG_HUNGARIAN { 0x0e }
-sub LANG_ICELANDIC { 0x0f }
-sub LANG_ITALIAN { 0x10 }
-sub LANG_JAPANESE { 0x11 }
-sub LANG_KOREAN { 0x12 }
-sub LANG_NORWEGIAN { 0x14 }
-sub LANG_POLISH { 0x15 }
-sub LANG_PORTUGUESE { 0x16 }
-sub LANG_RHAETO_ROMAN { 0x17 }
-sub LANG_ROMANIAN { 0x18 }
-sub LANG_RUSSIAN { 0x19 }
-sub LANG_SERBO_CROATIAN { 0x1a }
-sub LANG_SLOVAK { 0x1b }
-sub LANG_SPANISH { 0x0a }
-sub LANG_SWEDISH { 0x1d }
-sub LANG_THAI { 0x1e }
-sub LANG_TURKISH { 0x1f }
-sub LANG_URDU { 0x20 }
-
-# Sublanguage Identifier
-sub SUBLANG_NEUTRAL { 0x00 }
-sub SUBLANG_DEFAULT { 0x01 }
-sub SUBLANG_SYS_DEFAULT { 0x02 }
-sub SUBLANG_CHINESE_SIMPLIFIED { 0x02 }
-sub SUBLANG_CHINESE_TRADITIONAL { 0x01 }
-sub SUBLANG_DUTCH { 0x01 }
-sub SUBLANG_DUTCH_BELGIAN { 0x02 }
-sub SUBLANG_ENGLISH_US { 0x01 }
-sub SUBLANG_ENGLISH_UK { 0x02 }
-sub SUBLANG_ENGLISH_AUS { 0x03 }
-sub SUBLANG_ENGLISH_CAN { 0x04 }
-sub SUBLANG_ENGLISH_NZ { 0x05 }
-sub SUBLANG_ENGLISH_EIRE { 0x06 }
-sub SUBLANG_FRENCH { 0x01 }
-sub SUBLANG_FRENCH_BELGIAN { 0x02 }
-sub SUBLANG_FRENCH_CANADIAN { 0x03 }
-sub SUBLANG_FRENCH_SWISS { 0x04 }
-sub SUBLANG_GERMAN { 0x01 }
-sub SUBLANG_GERMAN_SWISS { 0x02 }
-sub SUBLANG_GERMAN_AUSTRIAN { 0x03 }
-sub SUBLANG_ITALIAN { 0x01 }
-sub SUBLANG_ITALIAN_SWISS { 0x02 }
-sub SUBLANG_NORWEGIAN_BOKMAL { 0x01 }
-sub SUBLANG_NORWEGIAN_NYNORSK { 0x02 }
-sub SUBLANG_PORTUGUESE { 0x02 }
-sub SUBLANG_PORTUGUESE_BRAZILIAN { 0x01 }
-sub SUBLANG_SERBO_CROATIAN_CYRILLIC { 0x02 }
-sub SUBLANG_SERBO_CROATIAN_LATIN { 0x01 }
-sub SUBLANG_SPANISH { 0x01 }
-sub SUBLANG_SPANISH_MEXICAN { 0x02 }
-sub SUBLANG_SPANISH_MODERN { 0x03 }
-
-# Country codes
-sub CTRY_DEFAULT { 0 }
-sub CTRY_AUSTRALIA { 61 }
-sub CTRY_AUSTRIA { 43 }
-sub CTRY_BELGIUM { 32 }
-sub CTRY_BRAZIL { 55 }
-sub CTRY_CANADA { 2 }
-sub CTRY_DENMARK { 45 }
-sub CTRY_FINLAND { 358 }
-sub CTRY_FRANCE { 33 }
-sub CTRY_GERMANY { 49 }
-sub CTRY_ICELAND { 354 }
-sub CTRY_IRELAND { 353 }
-sub CTRY_ITALY { 39 }
-sub CTRY_JAPAN { 81 }
-sub CTRY_MEXICO { 52 }
-sub CTRY_NETHERLANDS { 31 }
-sub CTRY_NEW_ZEALAND { 64 }
-sub CTRY_NORWAY { 47 }
-sub CTRY_PORTUGAL { 351 }
-sub CTRY_PRCHINA { 86 }
-sub CTRY_SOUTH_KOREA { 82 }
-sub CTRY_SPAIN { 34 }
-sub CTRY_SWEDEN { 46 }
-sub CTRY_SWITZERLAND { 41 }
-sub CTRY_TAIWAN { 886 }
-sub CTRY_UNITED_KINGDOM { 44 }
-sub CTRY_UNITED_STATES { 1 }
-
-# Locale Types
-sub LOCALE_NOUSEROVERRIDE { 0x80000000 }
-sub LOCALE_ILANGUAGE { 0x0001 }
-sub LOCALE_SLANGUAGE { 0x0002 }
-sub LOCALE_SENGLANGUAGE { 0x1001 }
-sub LOCALE_SABBREVLANGNAME { 0x0003 }
-sub LOCALE_SNATIVELANGNAME { 0x0004 }
-sub LOCALE_ICOUNTRY { 0x0005 }
-sub LOCALE_SCOUNTRY { 0x0006 }
-sub LOCALE_SENGCOUNTRY { 0x1002 }
-sub LOCALE_SABBREVCTRYNAME { 0x0007 }
-sub LOCALE_SNATIVECTRYNAME { 0x0008 }
-sub LOCALE_IDEFAULTLANGUAGE { 0x0009 }
-sub LOCALE_IDEFAULTCOUNTRY { 0x000A }
-sub LOCALE_IDEFAULTCODEPAGE { 0x000B }
-sub LOCALE_IDEFAULTANSICODEPAGE { 0x1004 }
-sub LOCALE_SLIST { 0x000C }
-sub LOCALE_IMEASURE { 0x000D }
-sub LOCALE_SDECIMAL { 0x000E }
-sub LOCALE_STHOUSAND { 0x000F }
-sub LOCALE_SGROUPING { 0x0010 }
-sub LOCALE_IDIGITS { 0x0011 }
-sub LOCALE_ILZERO { 0x0012 }
-sub LOCALE_INEGNUMBER { 0x1010 }
-sub LOCALE_SNATIVEDIGITS { 0x0013 }
-sub LOCALE_SCURRENCY { 0x0014 }
-sub LOCALE_SINTLSYMBOL { 0x0015 }
-sub LOCALE_SMONDECIMALSEP { 0x0016 }
-sub LOCALE_SMONTHOUSANDSEP { 0x0017 }
-sub LOCALE_SMONGROUPING { 0x0018 }
-sub LOCALE_ICURRDIGITS { 0x0019 }
-sub LOCALE_IINTLCURRDIGITS { 0x001A }
-sub LOCALE_ICURRENCY { 0x001B }
-sub LOCALE_INEGCURR { 0x001C }
-sub LOCALE_SDATE { 0x001D }
-sub LOCALE_STIME { 0x001E }
-sub LOCALE_SSHORTDATE { 0x001F }
-sub LOCALE_SLONGDATE { 0x0020 }
-sub LOCALE_STIMEFORMAT { 0x1003 }
-sub LOCALE_IDATE { 0x0021 }
-sub LOCALE_ILDATE { 0x0022 }
-sub LOCALE_ITIME { 0x0023 }
-sub LOCALE_ITIMEMARKPOSN { 0x1005 }
-sub LOCALE_ICENTURY { 0x0024 }
-sub LOCALE_ITLZERO { 0x0025 }
-sub LOCALE_IDAYLZERO { 0x0026 }
-sub LOCALE_IMONLZERO { 0x0027 }
-sub LOCALE_S1159 { 0x0028 }
-sub LOCALE_S2359 { 0x0029 }
-sub LOCALE_ICALENDARTYPE { 0x1009 }
-sub LOCALE_IOPTIONALCALENDAR { 0x100B }
-sub LOCALE_IFIRSTDAYOFWEEK { 0x100C }
-sub LOCALE_IFIRSTWEEKOFYEAR { 0x100D }
-sub LOCALE_SDAYNAME1 { 0x002A }
-sub LOCALE_SDAYNAME2 { 0x002B }
-sub LOCALE_SDAYNAME3 { 0x002C }
-sub LOCALE_SDAYNAME4 { 0x002D }
-sub LOCALE_SDAYNAME5 { 0x002E }
-sub LOCALE_SDAYNAME6 { 0x002F }
-sub LOCALE_SDAYNAME7 { 0x0030 }
-sub LOCALE_SABBREVDAYNAME1 { 0x0031 }
-sub LOCALE_SABBREVDAYNAME2 { 0x0032 }
-sub LOCALE_SABBREVDAYNAME3 { 0x0033 }
-sub LOCALE_SABBREVDAYNAME4 { 0x0034 }
-sub LOCALE_SABBREVDAYNAME5 { 0x0035 }
-sub LOCALE_SABBREVDAYNAME6 { 0x0036 }
-sub LOCALE_SABBREVDAYNAME7 { 0x0037 }
-sub LOCALE_SMONTHNAME1 { 0x0038 }
-sub LOCALE_SMONTHNAME2 { 0x0039 }
-sub LOCALE_SMONTHNAME3 { 0x003A }
-sub LOCALE_SMONTHNAME4 { 0x003B }
-sub LOCALE_SMONTHNAME5 { 0x003C }
-sub LOCALE_SMONTHNAME6 { 0x003D }
-sub LOCALE_SMONTHNAME7 { 0x003E }
-sub LOCALE_SMONTHNAME8 { 0x003F }
-sub LOCALE_SMONTHNAME9 { 0x0040 }
-sub LOCALE_SMONTHNAME10 { 0x0041 }
-sub LOCALE_SMONTHNAME11 { 0x0042 }
-sub LOCALE_SMONTHNAME12 { 0x0043 }
-sub LOCALE_SMONTHNAME13 { 0x100E }
-sub LOCALE_SABBREVMONTHNAME1 { 0x0044 }
-sub LOCALE_SABBREVMONTHNAME2 { 0x0045 }
-sub LOCALE_SABBREVMONTHNAME3 { 0x0046 }
-sub LOCALE_SABBREVMONTHNAME4 { 0x0047 }
-sub LOCALE_SABBREVMONTHNAME5 { 0x0048 }
-sub LOCALE_SABBREVMONTHNAME6 { 0x0049 }
-sub LOCALE_SABBREVMONTHNAME7 { 0x004A }
-sub LOCALE_SABBREVMONTHNAME8 { 0x004B }
-sub LOCALE_SABBREVMONTHNAME9 { 0x004C }
-sub LOCALE_SABBREVMONTHNAME10 { 0x004D }
-sub LOCALE_SABBREVMONTHNAME11 { 0x004E }
-sub LOCALE_SABBREVMONTHNAME12 { 0x004F }
-sub LOCALE_SABBREVMONTHNAME13 { 0x100F }
-sub LOCALE_SPOSITIVESIGN { 0x0050 }
-sub LOCALE_SNEGATIVESIGN { 0x0051 }
-sub LOCALE_IPOSSIGNPOSN { 0x0052 }
-sub LOCALE_INEGSIGNPOSN { 0x0053 }
-sub LOCALE_IPOSSYMPRECEDES { 0x0054 }
-sub LOCALE_IPOSSEPBYSPACE { 0x0055 }
-sub LOCALE_INEGSYMPRECEDES { 0x0056 }
-sub LOCALE_INEGSEPBYSPACE { 0x0057 }
-
-# GetTimeFormat Flags
-sub TIME_NOMINUTESORSECONDS { 0x0001 }
-sub TIME_NOSECONDS { 0x0002 }
-sub TIME_NOTIMEMARKER { 0x0004 }
-sub TIME_FORCE24HOURFORMAT { 0x0008 }
-
-# GetDateFormat Flags
-sub DATE_SHORTDATE { 0x0001 }
-sub DATE_LONGDATE { 0x0002 }
-sub DATE_USE_ALT_CALENDAR { 0x0004 }
-sub DATE_YEARMONTH { 0x0008 }
-sub DATE_LTRREADING { 0x0010 }
-sub DATE_RTLREADING { 0x0020 }
-
-# Language Identifier Functions
-sub MAKELANGID { my ($p,$s) = @_; (($s & 0xffff) << 10) | ($p & 0xffff); }
-sub PRIMARYLANGID { my $lgid = shift; $lgid & 0x3ff; }
-sub SUBLANGID { my $lgid = shift; ($lgid >> 10) & 0x3f; }
-
-sub LANG_SYSTEM_DEFAULT { MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT); }
-sub LANG_USER_DEFAULT { MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT); }
-
-# Locale Identifier Functions
-sub MAKELCID { my $lgid = shift; $lgid & 0xffff; }
-sub LANGIDFROMLCID { my $lcid = shift; $lcid & 0xffff; }
-
-sub LOCALE_SYSTEM_DEFAULT { MAKELCID(LANG_SYSTEM_DEFAULT); }
-sub LOCALE_USER_DEFAULT { MAKELCID(LANG_USER_DEFAULT); }
-
-1;
-
-__END__
-
-=head1 NAME
-
-Win32::OLE::NLS - OLE National Language Support
-
-=head1 SYNOPSIS
-
- missing
-
-=head1 DESCRIPTION
-
-This module provides access to the national language support features
-in the F<OLENLS.DLL>.
-
-=head2 Functions
-
-=over 8
-
-=item CompareString(LCID,FLAGS,STR1,STR2)
-
-Compare STR1 and STR2 in the LCID locale. FLAGS indicate the character
-traits to be used or ignored when comparing the two strings.
-
- NORM_IGNORECASE Ignore case
- NORM_IGNOREKANATYPE Ignore hiragana/katakana character differences
- NORM_IGNORENONSPACE Ignore accents, diacritics, and vowel marks
- NORM_IGNORESYMBOLS Ignore symbols
- NORM_IGNOREWIDTH Ignore character width
-
-Possible return values are:
-
- 0 Function failed
- 1 STR1 is less than STR2
- 2 STR1 is equal to STR2
- 3 STR1 is greater than STR2
-
-Note that you can subtract 2 from the return code to get values
-comparable to the C<cmp> operator.
-
-=item LCMapString(LCID,FLAGS,STR)
-
-LCMapString translates STR using LCID dependent translation.
-Flags contains a combination of the following options:
-
- LCMAP_LOWERCASE Lowercase
- LCMAP_UPPERCASE Uppercase
- LCMAP_HALFWIDTH Narrow characters
- LCMAP_FULLWIDTH Wide characters
- LCMAP_HIRAGANA Hiragana
- LCMAP_KATAKANA Katakana
- LCMAP_SORTKEY Character sort key
-
-The following normalization options can be combined with C<LCMAP_SORTKEY>:
-
- NORM_IGNORECASE Ignore case
- NORM_IGNOREKANATYPE Ignore hiragana/katakana character differences
- NORM_IGNORENONSPACE Ignore accents, diacritics, and vowel marks
- NORM_IGNORESYMBOLS Ignore symbols
- NORM_IGNOREWIDTH Ignore character width
-
-The return value is the translated string.
-
-=item GetLocaleInfo(LCID,LCTYPE)
-
-Retrieve locale setting LCTYPE from the locale specified by LCID. Use
-LOCALE_NOUSEROVERRIDE | LCTYPE to always query the locale database.
-Otherwise user changes to C<win.ini> through the windows control panel
-take precedence when retrieving values for the system default locale.
-See the documentation below for a list of valid LCTYPE values.
-
-The return value is the contents of the requested locale setting.
-
-=item GetStringType(LCID,TYPE,STR)
-
-Retrieve type information from locale LCID about each character in STR.
-The requested TYPE can be one of the following 3 levels:
-
- CT_CTYPE1 ANSI C and POSIX type information
- CT_CTYPE2 Text layout type information
- CT_CTYPE3 Text processing type information
-
-The return value is a list of values, each of wich is a bitwise OR of
-the applicable type bits from the corresponding table below:
-
- @ct = GetStringType(LOCALE_SYSTEM_DEFAULT, CT_CTYPE1, "String");
-
-ANSI C and POSIX character type information:
-
- C1_UPPER Uppercase
- C1_LOWER Lowercase
- C1_DIGIT Decimal digits
- C1_SPACE Space characters
- C1_PUNCT Punctuation
- C1_CNTRL Control characters
- C1_BLANK Blank characters
- C1_XDIGIT Hexadecimal digits
- C1_ALPHA Any letter
-
-Text layout type information:
-
- C2_LEFTTORIGHT Left to right
- C2_RIGHTTOLEFT Right to left
- C2_EUROPENUMBER European number, European digit
- C2_EUROPESEPARATOR European numeric separator
- C2_EUROPETERMINATOR European numeric terminator
- C2_ARABICNUMBER Arabic number
- C2_COMMONSEPARATOR Common numeric separator
- C2_BLOCKSEPARATOR Block separator
- C2_SEGMENTSEPARATOR Segment separator
- C2_WHITESPACE White space
- C2_OTHERNEUTRAL Other neutrals
- C2_NOTAPPLICABLE No implicit direction (e.g. ctrl codes)
-
-Text precessing type information:
-
- C3_NONSPACING Nonspacing mark
- C3_DIACRITIC Diacritic nonspacing mark
- C3_VOWELMARK Vowel nonspacing mark
- C3_SYMBOL Symbol
- C3_KATAKANA Katakana character
- C3_HIRAGANA Hiragana character
- C3_HALFWIDTH Narrow character
- C3_FULLWIDTH Wide character
- C3_IDEOGRAPH Ideograph
- C3_ALPHA Any letter
- C3_NOTAPPLICABLE Not applicable
-
-
-=item GetSystemDefaultLangID()
-
-Returns the system default language identifier.
-
-=item GetSystemDefaultLCID()
-
-Returns the system default locale identifier.
-
-=item GetUserDefaultLangID()
-
-Returns the user default language identifier.
-
-=item GetUserDefaultLCID()
-
-Returns the user default locale identifier.
-
-=item SendSettingChange()
-
-Sends a WM_SETTINGCHANGE message to all top level windows.
-
-=item SetLocaleInfo(LCID, LCTYPE, LCDATA)
-
-Changes an item in the user override part of the locale setting LCID.
-It doesn't change the system default database. The following LCTYPEs are
-changeable:
-
- LOCALE_ICALENDARTYPE LOCALE_SDATE
- LOCALE_ICURRDIGITS LOCALE_SDECIMAL
- LOCALE_ICURRENCY LOCALE_SGROUPING
- LOCALE_IDIGITS LOCALE_SLIST
- LOCALE_IFIRSTDAYOFWEEK LOCALE_SLONGDATE
- LOCALE_IFIRSTWEEKOFYEAR LOCALE_SMONDECIMALSEP
- LOCALE_ILZERO LOCALE_SMONGROUPING
- LOCALE_IMEASURE LOCALE_SMONTHOUSANDSEP
- LOCALE_INEGCURR LOCALE_SNEGATIVESIGN
- LOCALE_INEGNUMBER LOCALE_SPOSITIVESIGN
- LOCALE_IPAPERSIZE LOCALE_SSHORTDATE
- LOCALE_ITIME LOCALE_STHOUSAND
- LOCALE_S1159 LOCALE_STIME
- LOCALE_S2359 LOCALE_STIMEFORMAT
- LOCALE_SCURRENCY LOCALE_SYEARMONTH
-
-You have to call SendSettingChange() to activate these changes for
-subsequent Win32::OLE::Variant object formatting because the OLE
-subsystem seems to cache locale information.
-
-=item MAKELANGID(LANG,SUBLANG)
-
-Creates a language identifier from a primary language and a sublanguage.
-
-=item PRIMARYLANGID(LANGID)
-
-Retrieves the primary language from a language identifier.
-
-=item SUBLANGID(LANGID)
-
-Retrieves the sublanguage from a language identifier.
-
-=item MAKELCID(LANGID)
-
-Creates a locale identifies from a language identifier.
-
-=item LANGIDFROMLCID(LCID)
-
-Retrieves a language identifier from a locale identifier.
-
-=back
-
-=head2 Locale Types
-
-=over 8
-
-=item LOCALE_ILANGUAGE
-
-The language identifier (in hex).
-
-=item LOCALE_SLANGUAGE
-
-The localized name of the language.
-
-=item LOCALE_SENGLANGUAGE
-
-The ISO Standard 639 English name of the language.
-
-=item LOCALE_SABBREVLANGNAME
-
-The three-letter abbreviated name of the language. The first two
-letters are from the ISO Standard 639 language name abbreviation. The
-third letter indicates the sublanguage type.
-
-=item LOCALE_SNATIVELANGNAME
-
-The native name of the language.
-
-=item LOCALE_ICOUNTRY
-
-The country code, which is based on international phone codes.
-
-=item LOCALE_SCOUNTRY
-
-The localized name of the country.
-
-=item LOCALE_SENGCOUNTRY
-
-The English name of the country.
-
-=item LOCALE_SABBREVCTRYNAME
-
-The ISO Standard 3166 abbreviated name of the country.
-
-=item LOCALE_SNATIVECTRYNAME
-
-The native name of the country.
-
-=item LOCALE_IDEFAULTLANGUAGE
-
-Language identifier for the principal language spoken in this
-locale.
-
-=item LOCALE_IDEFAULTCOUNTRY
-
-Country code for the principal country in this locale.
-
-=item LOCALE_IDEFAULTANSICODEPAGE
-
-The ANSI code page associated with this locale. Format: 4 Unicode
-decimal digits plus a Unicode null terminator.
-
-XXX This should be translated by GetLocaleInfo. XXX
-
-=item LOCALE_IDEFAULTCODEPAGE
-
-The OEM code page associated with the country.
-
-=item LOCALE_SLIST
-
-Characters used to separate list items (often a comma).
-
-=item LOCALE_IMEASURE
-
-Default measurement system:
-
- 0 metric system (S.I.)
- 1 U.S. system
-
-=item LOCALE_SDECIMAL
-
-Characters used for the decimal separator (often a dot).
-
-=item LOCALE_STHOUSAND
-
-Characters used as the separator between groups of digits left of the decimal.
-
-=item LOCALE_SGROUPING
-
-Sizes for each group of digits to the left of the decimal. An explicit
-size is required for each group. Sizes are separated by semicolons. If
-the last value is 0, the preceding value is repeated. To group
-thousands, specify 3;0.
-
-=item LOCALE_IDIGITS
-
-The number of fractional digits.
-
-=item LOCALE_ILZERO
-
-Whether to use leading zeros in decimal fields. A setting of 0
-means use no leading zeros; 1 means use leading zeros.
-
-=item LOCALE_SNATIVEDIGITS
-
-The ten characters that are the native equivalent of the ASCII 0-9.
-
-=item LOCALE_INEGNUMBER
-
-Negative number mode.
-
- 0 (1.1)
- 1 -1.1
- 2 -1.1
- 3 1.1
- 4 1.1
-
-=item LOCALE_SCURRENCY
-
-The string used as the local monetary symbol.
-
-=item LOCALE_SINTLSYMBOL
-
-Three characters of the International monetary symbol specified in ISO
-4217, Codes for the Representation of Currencies and Funds, followed
-by the character separating this string from the amount.
-
-=item LOCALE_SMONDECIMALSEP
-
-Characters used for the monetary decimal separators.
-
-=item LOCALE_SMONTHOUSANDSEP
-
-Characters used as monetary separator between groups of digits left of
-the decimal.
-
-=item LOCALE_SMONGROUPING
-
-Sizes for each group of monetary digits to the left of the decimal. An
-explicit size is needed for each group. Sizes are separated by
-semicolons. If the last value is 0, the preceding value is
-repeated. To group thousands, specify 3;0.
-
-=item LOCALE_ICURRDIGITS
-
-Number of fractional digits for the local monetary format.
-
-=item LOCALE_IINTLCURRDIGITS
-
-Number of fractional digits for the international monetary format.
-
-=item LOCALE_ICURRENCY
-
-Positive currency mode.
-
- 0 Prefix, no separation.
- 1 Suffix, no separation.
- 2 Prefix, 1-character separation.
- 3 Suffix, 1-character separation.
-
-=item LOCALE_INEGCURR
-
-Negative currency mode.
-
- 0 ($1.1)
- 1 -$1.1
- 2 $-1.1
- 3 $1.1-
- 4 $(1.1$)
- 5 -1.1$
- 6 1.1-$
- 7 1.1$-
- 8 -1.1 $ (space before $)
- 9 -$ 1.1 (space after $)
- 10 1.1 $- (space before $)
-
-=item LOCALE_ICALENDARTYPE
-
-The type of calendar currently in use.
-
- 1 Gregorian (as in U.S.)
- 2 Gregorian (always English strings)
- 3 Era: Year of the Emperor (Japan)
- 4 Era: Year of the Republic of China
- 5 Tangun Era (Korea)
-
-=item LOCALE_IOPTIONALCALENDAR
-
-The additional calendar types available for this LCID. Can be a
-null-separated list of all valid optional calendars. Value is
-0 for "None available" or any of the LOCALE_ICALENDARTYPE settings.
-
-XXX null separated list should be translated by GetLocaleInfo XXX
-
-=item LOCALE_SDATE
-
-Characters used for the date separator.
-
-=item LOCALE_STIME
-
-Characters used for the time separator.
-
-=item LOCALE_STIMEFORMAT
-
-Time-formatting string.
-
-=item LOCALE_SSHORTDATE
-
-Short Date_Time formatting strings for this locale.
-
-=item LOCALE_SLONGDATE
-
-Long Date_Time formatting strings for this locale.
-
-=item LOCALE_IDATE
-
-Short Date format-ordering specifier.
-
- 0 Month - Day - Year
- 1 Day - Month - Year
- 2 Year - Month - Day
-
-=item LOCALE_ILDATE
-
-Long Date format ordering specifier. Value can be any of the valid
-LOCALE_IDATE settings.
-
-=item LOCALE_ITIME
-
-Time format specifier.
-
- 0 AM/PM 12-hour format.
- 1 24-hour format.
-
-=item LOCALE_ITIMEMARKPOSN
-
-Whether the time marker string (AM|PM) precedes or follows the time
-string.
- 0 Suffix (9:15 AM).
- 1 Prefix (AM 9:15).
-
-=item LOCALE_ICENTURY
-
-Whether to use full 4-digit century.
-
- 0 Two digit.
- 1 Full century.
-
-=item LOCALE_ITLZERO
-
-Whether to use leading zeros in time fields.
-
- 0 No leading zeros.
- 1 Leading zeros for hours.
-
-=item LOCALE_IDAYLZERO
-
-Whether to use leading zeros in day fields. Values as for
-LOCALE_ITLZERO.
-
-=item LOCALE_IMONLZERO
-
-Whether to use leading zeros in month fields. Values as for
-LOCALE_ITLZERO.
-
-=item LOCALE_S1159
-
-String for the AM designator.
-
-=item LOCALE_S2359
-
-String for the PM designator.
-
-=item LOCALE_IFIRSTWEEKOFYEAR
-
-Specifies which week of the year is considered first.
-
- 0 Week containing 1/1 is the first week of the year.
- 1 First full week following 1/1is the first week of the year.
- 2 First week with at least 4 days is the first week of the year.
-
-=item LOCALE_IFIRSTDAYOFWEEK
-
-Specifies the day considered first in the week. Value "0" means
-SDAYNAME1 and value "6" means SDAYNAME7.
-
-=item LOCALE_SDAYNAME1 .. LOCALE_SDAYNAME7
-
-Long name for Monday .. Sunday.
-
-=item LOCALE_SABBREVDAYNAME1 .. LOCALE_SABBREVDAYNAME7
-
-Abbreviated name for Monday .. Sunday.
-
-=item LOCALE_SMONTHNAME1 .. LOCALE_SMONTHNAME12
-
-Long name for January .. December.
-
-=item LOCALE_SMONTHNAME13
-
-Native name for 13th month, if it exists.
-
-=item LOCALE_SABBREVMONTHNAME1 .. LOCALE_SABBREVMONTHNAME12
-
-Abbreviated name for January .. December.
-
-=item LOCALE_SABBREVMONTHNAME13
-
-Native abbreviated name for 13th month, if it exists.
-
-=item LOCALE_SPOSITIVESIGN
-
-String value for the positive sign.
-
-=item LOCALE_SNEGATIVESIGN
-
-String value for the negative sign.
-
-=item LOCALE_IPOSSIGNPOSN
-
-Formatting index for positive values.
-
- 0 Parentheses surround the amount and the monetary symbol.
- 1 The sign string precedes the amount and the monetary symbol.
- 2 The sign string precedes the amount and the monetary symbol.
- 3 The sign string precedes the amount and the monetary symbol.
- 4 The sign string precedes the amount and the monetary symbol.
-
-=item LOCALE_INEGSIGNPOSN
-
-Formatting index for negative values. Values as for LOCALE_IPOSSIGNPOSN.
-
-=item LOCALE_IPOSSYMPRECEDES
-
-If the monetary symbol precedes, 1. If it succeeds a positive amount, 0.
-
-=item LOCALE_IPOSSEPBYSPACE
-
-If the monetary symbol is separated by a space from a positive amount,
-1. Otherwise, 0.
-
-=item LOCALE_INEGSYMPRECEDES
-
-If the monetary symbol precedes, 1. If it succeeds a negative amount, 0.
-
-=item LOCALE_INEGSEPBYSPACE
-
-If the monetary symbol is separated by a space from a negative amount,
-1. Otherwise, 0.
-
-=back
-
-=head1 AUTHORS/COPYRIGHT
-
-This module is part of the Win32::OLE distribution.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Win32/OLE/TPJ.pod b/Master/tlpkg/tlperl/lib/Win32/OLE/TPJ.pod
deleted file mode 100644
index e45770baa42..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/OLE/TPJ.pod
+++ /dev/null
@@ -1,798 +0,0 @@
-=pod
-
-=head1 NAME
-
-The Perl Journal #10 - Win32::OLE by Jan Dubois
-
-=head1 INTRODUCTION
-
-Suppose you're composing a document with Microsoft Word. You want to
-include an Excel spreadsheet. You could save the spreadsheet in some
-image format that Word can understand, and import it into your
-document. But if the spreadsheet changes, your document will be out of
-date.
-
-Microsoft's OLE (Object Linking and Embedding, pronounced "olay") lets
-one program use objects from another. In the above scenario, the
-spreadsheet is the object. As long as Excel makes that spreadsheet
-available as an OLE object, and Word knows to treat it like one, your
-document will always be current.
-
-You can control OLE objects from Perl with the Win32::OLE module, and
-that's what this article is about. First, I'll show you how to "think
-OLE," which mostly involves a lot of jargon. Next, I'll show you the
-mechanics involved in using Win32::OLE. Then we'll go through a Perl
-program that uses OLE to manipulate Microsoft Excel, Microsoft Access,
-and Lotus Notes. Finally, I'll talk about Variants, an internal OLE
-data type.
-
-
-=head1 THE OLE MINDSET
-
-When an application makes an OLE object available for other
-applications to use, that's called OLE I<automation>. The program
-using the object is called the I<controller>, and the application
-providing the object is called the I<server>. OLE automation is guided
-by the OLE Component Object Model (COM) which specifies how those
-objects must behave if they are to be used by other processes and
-machines.
-
-There are two different types of OLE automation servers. I<In-process>
-servers are implemented as dynamic link libraries (DLLs) and run in
-the same process space as the controller. I<Out-of-process> servers
-are more interesting; they are standalone executables that exist as
-separate processes - possibly on a different computer.
-
-The Win32::OLE module lets your Perl program act as an OLE
-controller. It allows Perl to be used in place of other languages like
-Visual Basic or Java to control OLE objects. This makes all OLE
-automation servers immediately available as Perl modules.
-
-Don't confuse ActiveState OLE with Win32::OLE. ActiveState OLE is
-completely different, although future builds of ActiveState Perl (500
-and up) will work with Win32::OLE.
-
-Objects can expose OLE methods, properties, and events to the outside
-world. Methods are functions that the controller can call to make the
-object do something; properties describe the state of the object; and
-events let the controller know about external events affecting the
-object, such as the user clicking on a button. Since events involve
-asynchronous communication with their objects, they require either
-threads or an event loop. They are not yet supported by the Win32::OLE
-module, and for the same reason ActiveX controls (OCXs) are currently
-unsupported as well.
-
-=head1 WORKING WITH WIN32::OLE
-
-The Win32::OLE module doesn't let your Perl program create OLE
-objects. What it does do is let your Perl program act like a remote
-control for other applications-it lets your program be an OLE
-controller. You can take an OLE object from another application
-(Access, Notes, Excel, or anything else that speaks OLE) and invoke
-its methods or manipulate its properties.
-
-=head2 THE FIRST STEP: CREATING AN OLE SERVER OBJECT
-
-First, we need to create a Perl object to represent the OLE
-server. This is a weird idea; what it amounts to is that if we want to
-control OLE objects produced by, say, Excel, we have to create a Perl
-object that represents Excel. So even though our program is an OLE
-controller, it'll contain objects that represent OLE servers.
-
-You can create a new OLE I<server object> with C<< Win32::OLE->new >>.
-This takes a program ID (a human readable string like
-C<'Speech.VoiceText'>) and returns a server object:
-
- my $server = Win32::OLE->new('Excel.Application', 'Quit');
-
-Some server objects (particularly those for Microsoft Office
-applications) don't automatically terminate when your program no
-longer needs them. They need some kind of Quit method, and that's just
-what our second argument is. It can be either a code reference or a
-method name to be invoked when the object is destroyed. This lets you
-ensure that objects will be properly cleaned up even when the Perl
-program dies abnormally.
-
-To access a server object on a different computer, replace the first
-argument with a reference to a list of the server name and program ID:
-
- my $server = Win32::OLE->new(['foo.bar.com',
- 'Excel.Application']);
-
-(To get the requisite permissions, you'll need to configure your
-security settings with F<DCOMCNFG.EXE>.)
-
-You can also directly attach your program to an already running OLE
-server:
-
- my $server = Win32::OLE->GetActiveObject('Excel.Application');
-
-This fails (returning C<undef>) if no server exists, or if the server
-refuses the connection for some reason. It is also possible to use a
-persistent object moniker (usually a filename) to start the associated
-server and load the object into memory:
-
- my $doc = Win32::OLE->GetObject("MyDocument.Doc");
-
-=head2 METHOD CALLS
-
-Once you've created one of these server objects, you need to call its
-methods to make the OLE objects sing and dance. OLE methods are
-invoked just like normal Perl object methods:
-
- $server->Foo(@Arguments);
-
-This is a Perl method call - but it also triggers an OLE method call
-in the object. After your program executes this statement, the
-C<$server> object will execute its Foo() method. The available methods
-are typically documented in the application's I<object model>.
-
-B<Parameters.> By default, all parameters are positional
-(e.g. C<foo($first, $second, $third)>) rather than named (e.g.
-C<< foo(-name => "Yogi", -title => "Coach") >>). The required parameters
-come first, followed by the optional parameters; if you need to
-provide a dummy value for an optional parameter, use undef.
-
-Positional parameters get cumbersome if a method takes a lot of
-them. You can use named arguments instead if you go to a little extra
-trouble - when the last argument is a reference to a hash, the
-key/value pairs of the hash are treated as named parameters:
-
- $server->Foo($Pos1, $Pos2, {Name1 => $Value1,
- Name2 => $Value2});
-
-B<Foreign Languages and Default Methods.> Sometimes OLE servers use
-method and property names that are specific to a non-English
-locale. That means they might have non-ASCII characters, which aren't
-allowed in Perl variable names. In German, you might see C<Öffnen> used
-instead of C<Open>. In these cases, you can use the Invoke() method:
-
- $server->Invoke('Öffnen', @Arguments);
-
-This is necessary because C<< $Server->Öffnen(@Arguments) >> is a syntax
-error in current versions of Perl.
-
-=head2 PROPERTIES
-
-As I said earlier, objects can expose three things to the outside
-world: methods, properties, and events. We've covered methods, and
-Win32::OLE can't handle events. That leaves properties. But as it
-turns out, properties and events are largely interchangeable. Most
-methods have corresponding properties, and vice versa.
-
-An object's properties can be accessed with a hash reference:
-
- $server->{Bar} = $value;
- $value = $server->{Bar};
-
-This example sets and queries the value of the property named
-C<Bar>. You could also have called the object's Bar() method to
-achieve the same effect:
-
- $value = $server->Bar;
-
-However, you can't write the first line as C<< $server->Bar = $value >>,
-because you can't assign to the return value of a method call. In
-Visual Basic, OLE automation distinguishes between assigning the name
-of an object and assigning its value:
-
- Set Object = OtherObject
-
- Let Value = Object
-
-The C<Set> statement shown here makes C<Object> refer to the same object as
-C<OtherObject>. The C<Let> statement copies the value instead. (The value of
-an OLE object is what you get when you call the object's default
-method.
-
-In Perl, saying C<< $server1 = $server2 >> always creates another reference,
-just like the C<Set> in Visual Basic. If you want to assign the value
-instead, use the valof() function:
-
- my $value = valof $server;
-
-This is equivalent to
-
- my $value = $server->Invoke('');
-
-=head2 SAMPLE APPLICATION
-
-Let's look at how all of this might be used. In Listing: 1 you'll see
-F<T-Bond.pl>, a program that uses Win32::OLE for an almost-real world
-application.
-
-The developer of this application, Mary Lynch, is a financial futures
-broker. Every afternoon, she connects to the Chicago Board of Trade
-(CBoT) web site at http://www.cbot.com and collects the time and sales
-information for U.S. T-bond futures. She wants her program to create a
-chart that depicts the data in 15-minute intervals, and then she wants
-to record the data in a database for later analysis. Then she wants
-her program to send mail to her clients.
-
-Mary's program will use Microsoft Access as a database, Microsoft
-Excel to produce the chart, and Lotus Notes to send the mail. It will
-all be controlled from a single Perl program using OLE automation. In
-this section, we'll go through T-Bond. pl step by step so you can see
-how Win32::OLE lets you control these applications.
-
-=head2 DOWNLOADING A WEB PAGE WITH LWP
-
-However, Mary first needs to amass the raw T-bond data by having her
-Perl program automatically download and parse a web page. That's the
-perfect job for LWP, the libwww-perl bundle available on the CPAN. LWP
-has nothing to do with OLE. But this is a real-world application, and
-it's just what Mary needs to download her data from the Chicago Board
-of Trade.
-
- use LWP::Simple;
- my $URL = 'http://www.cbot.com/mplex/quotes/tsfut';
- my $text = get("$URL/tsf$Contract.htm");
-
-She could also have used the Win32::Internet module:
-
- use Win32::Internet;
- my $URL = 'http://www.cbot.com/mplex/quotes/tsfut';
- my $text = $Win32::Internet->new->FetchURL("$URL/tsf$Contract.htm");
-
-Mary wants to condense the ticker data into 15 minute bars. She's
-interested only in lines that look like this:
-
- 03/12/1998 US 98Mar 12116 15:28:34 Open
-
-A regular expression can be used to determine whether a line looks
-like this. If it does, the regex can split it up into individual
-fields. The price quoted above, C<12116>, really means 121 16/32, and
-needs to be converted to 121.5. The data is then condensed into 15
-minute intervals and only the first, last, highest, and lowest price
-during each interval are kept. The time series is stored in the array
-C<@Bars>. Each entry in C<@Bars> is a reference to a list of 5 elements:
-Time, Open, High, Low, and Close.
-
- foreach (split "\n", $text) {
- # 03/12/1998 US 98Mar 12116 15:28:34 Open
- my ($Date,$Price,$Hour,$Min,$Sec,$Ind) =
- m|^\s*(\d+/\d+/\d+) # " 03/12/1998"
- \s+US\s+\S+\s+(\d+) # " US 98Mar 12116"
- \s+(\d+):(\d+):(\d+) # " 12:42:40"
- \s*(.*)$|x; # " Ask"
- next unless defined $Date;
- $Day = $Date;
-
- # Convert from fractional to decimal format
- $Price = int($Price/100) + ($Price%100)/32;
-
- # Round up time to next multiple of 15 minutes
- my $NewTime = int(($Sec+$Min*60+$Hour*3600)/900+1)*900;
- unless (defined $Time && $NewTime == $Time) {
- push @Bars, [$hhmm, $Open, $High, $Low, $Close]
- if defined $Time;
- $Open = $High = $Low = $Close = undef;
- $Time = $NewTime;
- my $Hour = int($Time/3600);
- $hhmm = sprintf "%02d:%02d", $Hour, $Time/60-$Hour*60;
- }
-
- # Update 15 minute bar values
- $Close = $Price;
- $Open = $Price unless defined $Open;
- $High = $Price unless defined $High && $High > $Price;
- $Low = $Price unless defined $Low && $Low > $Price;
- }
-
- die "No data found" unless defined $Time;
- push @Bars, [$hhmm, $Open, $High, $Low, $Close];
-
-=head2 MICROSOFT ACCESS
-
-Now that Mary has her T-bond quotes, she's ready to use Win32::OLE to
-store them into a Microsoft Access database. This has the advantage
-that she can copy the database to her lap-top and work with it on her
-long New York commute. She's able to create an Access database as
-follows:
-
- use Win32::ODBC;
- use Win32::OLE;
-
- # Include the constants for the Microsoft Access
- # "Data Access Object".
-
- use Win32::OLE::Const 'Microsoft DAO';
-
- my $DSN = 'T-Bonds';
- my $Driver = 'Microsoft Access Driver (*.mdb)';
- my $Desc = 'US T-Bond Quotes';
- my $Dir = 'i:\tmp\tpj';
- my $File = 'T-Bonds.mdb';
- my $Fullname = "$Dir\\$File";
-
- # Remove old database and dataset name
- unlink $Fullname if -f $Fullname;
- Win32::ODBC::ConfigDSN(ODBC_REMOVE_DSN, $Driver, "DSN=$DSN")
- if Win32::ODBC::DataSources($DSN);
-
- # Create new database
- my $Access = Win32::OLE->new('Access.Application', 'Quit');
- my $Workspace = $Access->DBEngine->CreateWorkspace('', 'Admin', '');
- my $Database = $Workspace->CreateDatabase($Fullname, dbLangGeneral);
-
- # Add new database name
- Win32::ODBC::ConfigDSN(ODBC_ADD_DSN, $Driver,
- "DSN=$DSN", "Description=$Desc", "DBQ=$Fullname",
- "DEFAULTDIR=$Dir", "UID=", "PWD=");
-
-This uses Win32::ODBC (described in TPJ #9) to remove and create
-F<T-Bonds.mdb>. This lets Mary use the same script on her workstation
-and on her laptop even when the database is stored in different
-locations on each. The program also uses Win32::OLE to make Microsoft
-Access create an empty database.
-
-Every OLE server has some constants that your Perl program will need
-to use, made accessible by the Win32::OLE::Const module. For instance,
-to grab the Excel constants, say C<use Win32::OLE::Const 'Microsoft
-Excel'>.
-
-In the above example, we imported the Data Access Object con-stants
-just so we could use C<dbLangGeneral>.
-
-=head2 MICROSOFT EXCEL
-
-Now Mary uses Win32::OLE a second time, to have Microsoft Excel create
-the chart shown below.
-
- Figure 1: T-Bond data generated by MicroSoft Excel via Win32::OLE
-
- # Start Excel and create new workbook with a single sheet
- use Win32::OLE qw(in valof with);
- use Win32::OLE::Const 'Microsoft Excel';
- use Win32::OLE::NLS qw(:DEFAULT :LANG :SUBLANG);
-
- my $lgid = MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT);
- $Win32::OLE::LCID = MAKELCID($lgid);
-
- $Win32::OLE::Warn = 3;
-
-Here, Mary sets the locale to American English, which lets her do
-things like use American date formats (e.g. C<"12-30-98"> rather than
-C<"30-12-98">) in her program. It will continue to work even when she's
-visiting one of her international customers and has to run this
-program on their computers.
-
-The value of C<$Win32::OLE::Warn> determines what happens when an OLE
-error occurs. If it's 0, the error is ignored. If it's 2, or if it's 1
-and the script is running under C<-w>, the Win32::OLE module invokes
-C<Carp::carp()>. If C<$Win32::OLE::Warn> is set to 3, C<Carp::croak()>
-is invoked and the program dies immediately.
-
-Now the data can be put into an Excel spreadsheet to produce the
-chart. The following section of the program launches Excel and creates
-a new workbook with a single worksheet. It puts the column titles
-('Time', 'Open', 'High', 'Low', and 'Close') in a bold font on the
-first row of the sheet. The first column displays the timestamp in
-I<hh:mm> format; the next four display prices.
-
- my $Excel = Win32::OLE->new('Excel.Application', 'Quit');
- $Excel->{SheetsInNewWorkbook} = 1;
- my $Book = $Excel->Workbooks->Add;
- my $Sheet = $Book->Worksheets(1);
- $Sheet->{Name} = 'Candle';
-
- # Insert column titles
- my $Range = $Sheet->Range("A1:E1");
- $Range->{Value} = [qw(Time Open High Low Close)];
- $Range->Font->{Bold} = 1;
-
- $Sheet->Columns("A:A")->{NumberFormat} = "h:mm";
- # Open/High/Low/Close to be displayed in 32nds
- $Sheet->Columns("B:E")->{NumberFormat} = "# ?/32";
-
- # Add 15 minute data to spreadsheet
- print "Add data\n";
- $Range = $Sheet->Range(sprintf "A2:E%d", 2+$#Bars);
- $Range->{Value} = \@Bars;
-
-The last statement shows how to pass arrays to OLE objects. The
-Win32::OLE module automatically translates each array reference to a
-C<SAFEARRAY>, the internal OLE array data type. This translation first
-determines the maximum nesting level used by the Perl array, and then
-creates a C<SAFEARRAY> of the same dimension. The C<@Bars> array
-already contains the data in the correct form for the spreadsheet:
-
- ([Time1, Open1, High1, Low1, Close1],
- ...
- [TimeN, OpenN, HighN, LowN, CloseN])
-
-Now the table in the spreadsheet can be used to create a candle stick
-chart from our bars. Excel automatically chooses the time axis labels
-if they are selected before the chart is created:
-
- # Create candle stick chart as new object on worksheet
- $Sheet->Range("A:E")->Select;
-
- my $Chart = $Book->Charts->Add;
- $Chart->{ChartType} = xlStockOHLC;
- $Chart->Location(xlLocationAsObject, $Sheet->{Name});
- # Excel bug: the old $Chart is now invalid!
- $Chart = $Excel->ActiveChart;
-
-We can change the type of the chart from a separate sheet to a chart
-object on the spreadsheet page with the C<< $Chart->Location >>
-method. (This invalidates the chart object handle, which might be
-considered a bug in Excel.) Fortunately, this new chart is still the
-'active' chart, so an object handle to it can be reclaimed simply by
-asking Excel.
-
-At this point, our chart still needs a title, the legend is
-meaningless, and the axis has decimals instead of fractions. We can
-fix those with the following code:
-
- # Add title, remove legend
- with($Chart, HasLegend => 0, HasTitle => 1);
- $Chart->ChartTitle->Characters->{Text} = "US T-Bond";
-
- # Set up daily statistics
- $Open = $Bars[0][1];
- $High = $Sheet->Evaluate("MAX(C:C)");
- $Low = $Sheet->Evaluate("MIN(D:D)");
- $Close = $Bars[$#Bars][4];
-
-The with() function partially mimics the Visual Basic With statement,
-but allows only property assignments. It's a convenient shortcut for
-this:
-
- { # open new scope
- my $Axis = $Chart->Axes(xlValue);
- $Axis->{HasMajorGridlines} = 1;
- $Axis->{HasMinorGridlines} = 1;
- # etc ...
- }
-
-The C<$High> and C<$Low> for the day are needed to determine the
-minimum and maximum scaling levels. MIN and MAX are spreadsheet
-functions, and aren't automatically available as methods. However,
-Excel provides an Evaluate() method to calculate arbitrary spreadsheet
-functions, so we can use that.
-
-We want the chart to show major gridlines at every fourth tick and
-minor gridlines at every second tick. The minimum and maximum are
-chosen to be whatever multiples of 1/16 we need to do that.
-
- # Change tickmark spacing from decimal to fractional
- with($Chart->Axes(xlValue),
- HasMajorGridlines => 1,
- HasMinorGridlines => 1,
- MajorUnit => 1/8,
- MinorUnit => 1/16,
- MinimumScale => int($Low*16)/16,
- MaximumScale => int($High*16+1)/16
- );
-
- # Fat candles with only 5% gaps
- $Chart->ChartGroups(1)->{GapWidth} = 5;
-
- sub RGB { $_[0] | ($_[1] >> 8) | ($_[2] >> 16) }
-
- # White background with a solid border
-
- $Chart->PlotArea->Border->{LineStyle} = xlContinuous;
- $Chart->PlotArea->Border->{Color} = RGB(0,0,0);
- $Chart->PlotArea->Interior->{Color} = RGB(255,255,255);
-
- # Add 1 hour moving average of the Close series
- my $MovAvg = $Chart->SeriesCollection(4)->Trendlines
- ->Add({Type => xlMovingAvg, Period => 4});
- $MovAvg->Border->{Color} = RGB(255,0,0);
-
-Now the finished workbook can be saved to disk as
-F<i:\tmp\tpj\data.xls>. That file most likely still exists from when the
-program ran yesterday, so we'll remove it. (Otherwise, Excel would pop
-up a dialog with a warning, because the SaveAs() method doesn't like
-to overwrite files.)
-
-
- # Save workbook to file my $Filename = 'i:\tmp\tpj\data.xls';
- unlink $Filename if -f $Filename;
- $Book->SaveAs($Filename);
- $Book->Close;
-
-=head2 ACTIVEX DATA OBJECTS
-
-Mary stores the daily prices in her T-bonds database, keeping the data
-for the different contracts in separate tables. After creating an ADO
-(ActiveX Data Object) connection to the database, she tries to connect
-a record set to the table for the current contract. If this fails, she
-assumes that the table doesn't exists yet and tries to create it:
-
- use Win32::OLE::Const 'Microsoft ActiveX Data Objects';
-
- my $Connection = Win32::OLE->new('ADODB.Connection');
- my $Recordset = Win32::OLE->new('ADODB.Recordset');
- $Connection->Open('T-Bonds');
-
- # Open a record set for the table of this contract
- {
- local $Win32::OLE::Warn = 0;
- $Recordset->Open($Contract, $Connection, adOpenKeyset,
- adLockOptimistic, adCmdTable);
- }
-
- # Create table and index if it doesn't exist yet
- if (Win32::OLE->LastError) {
- $Connection->Execute(<<"SQL");
- CREATE TABLE $Contract
- (
- Day DATETIME,
- Open DOUBLE, High DOUBLE, Low DOUBLE, Close DOUBLE
- )
- SQL
- $Connection->Execute(<<"SQL");
- CREATE INDEX $Contract
- ON $Contract (Day) WITH PRIMARY
- SQL
- $Recordset->Open($Contract, $Connection, adOpenKeyset,
- adLockOptimistic, adCmdTable);
- }
-
-C<$Win32::OLE::Warn> is temporarily set to zero, so that if
-C<$Recordset->Open> fails, the failure will be recorded silently without
-terminating the program. C<Win32::OLE->LastError> shows whether the Open
-failed or not. C<LastError> returns the OLE error code in a numeric
-context and the OLE error message in a string context, just like
-Perl's C<$!> variable.
-
-Now Mary can add today's data:
-
- # Add new record to table
- use Win32::OLE::Variant;
- $Win32::OLE::Variant::LCID = $Win32::OLE::LCID;
-
- my $Fields = [qw(Day Open High Low Close)];
- my $Values = [Variant(VT_DATE, $Day),
- $Open, $High, $Low, $Close];
-
-Mary uses the Win32::OLE::Variant module to store C<$Day> as a date
-instead of a mere string. She wants to make sure that it's stored as
-an American-style date, so in the third line shown here she sets the
-locale ID of the Win32::OLE::Variant module to match the Win32::OLE
-module. (C<$Win32::OLE::LCID> had been set earlier to English, since
-that's what the Chicago Board of Trade uses.)
-
- {
- local $Win32::OLE::Warn = 0;
- $Recordset->AddNew($Fields, $Values);
- }
-
- # Replace existing record
- if (Win32::OLE->LastError) {
- $Recordset->CancelUpdate;
- $Recordset->Close;
- $Recordset->Open(<<"SQL", $Connection, adOpenDynamic);
- SELECT * FROM $Contract
- WHERE Day = #$Day#
- SQL
- $Recordset->Update($Fields, $Values);
- }
-
- $Recordset->Close;
- $Connection->Close;
-
-The program expects to be able to add a new record to the table. It
-fails if a record for this date already exists, because the Day field
-is the primary index and therefore must be unique. If an error occurs,
-the update operation started by AddNew() must first be cancelled with
-C<< $Recordset->CancelUpdate >>; otherwise the record set won't close.
-
-=head2 LOTUS NOTES
-
-Now Mary can use Lotus Notes to mail updates to all her customers
-interested in the T-bond data. (Lotus Notes doesn't provide its
-constants in the OLE type library, so Mary had to determine them by
-playing around with LotusScript.) The actual task is quite simple: A
-Notes session must be started, the mail database must be opened and
-the mail message must be created. The body of the message is created
-as a rich text field, which lets her mix formatted text with object
-attachments.
-
-In her program, Mary extracts the email addresses from her customer
-database and sends separate message to each. Here, we've simplified it
-somewhat.
-
- sub EMBED_ATTACHMENT {1454;} # from LotusScript
-
- my $Notes = Win32::OLE->new('Notes.NotesSession');
- my $Database = $Notes->GetDatabase('', '');
- $Database->OpenMail;
- my $Document = $Database->CreateDocument;
-
- $Document->{Form} = 'Memo';
- $Document->{SendTo} = ['Jon Orwant >orwant@tpj.com>',
- 'Jan Dubois >jan.dubois@ibm.net>'];
- $Document->{Subject} = "US T-Bonds Chart for $Day";
-
- my $Body = $Document->CreateRichtextItem('Body');
- $Body->AppendText(<<"EOT");
- I\'ve attached the latest US T-Bond data and chart for $Day.
- The daily statistics were:
-
- \tOpen\t$Open
- \tHigh\t$High
- \tLow\t$Low
- \tClose\t$Close
-
- Kind regards,
-
- Mary
- EOT
-
- $Body->EmbedObject(EMBED_ATTACHMENT, '', $Filename);
-
- $Document->Send(0);
-
-=head1 VARIANTS
-
-In this final section, I'll talk about Variants, which are the data
-types that you use to talk to OLE objects. We talked about this line
-earlier:
-
- my $Values = [Variant(VT_DATE, $Day),
- $Open, $High, $Low, $Close];
-
-Here, the Variant() function creates a Variant object, of type C<VT_DATE>
-and with the value C<$Day>. Variants are similar in many ways to Perl
-scalars. Arguments to OLE methods are transparently converted from
-their internal Perl representation to Variants and back again by the
-Win32::OLE module.
-
-OLE automation uses a generic C<VARIANT> data type to pass
-parameters. This data type contains type information in addition to
-the actual data value. Only the following data types are valid for OLE
-automation:
-
- B<Data Type Meaning>
- VT_EMPTY Not specified
- VT_NULL Null
- VT_I2 2 byte signed integer
- VT_I4 4 byte signed integer
- VT_R4 4 byte real
- VT_R8 8 byte real
- VT_CY Currency
- VT_DATE Date
- VT_BSTR Unicode string
- VT_DISPATCH OLE automation interface
- VT_ERROR Error
- VT_BOOL Boolean
- VT_VARIANT (only valid with VT_BYREF)
- VT_UNKNOWN Generic COM interface
- VT_UI1 Unsigned character
-
-The following two flags can also be used:
-
- VT_ARRAY Array of values
- VT_BYREF Pass by reference (instead of by value)
-
-B<The Perl to Variant transformation.> The following conversions are
-performed automatically whenever a Perl value must be translated into
-a Variant:
-
- Perl value Variant
- Integer values VT_I4
- Real values VT_R8
- Strings VT_BSTR
- undef VT_ERROR (DISP_E_PARAMNOTFOUND)
- Array reference VT_VARIANT | VT_ARRAY
- Win32::OLE object VT_DISPATCH
- Win32::OLE::Variant object Type of the Variant object
-
-What if your Perl value is a list of lists? Those can be irregularly
-shaped in Perl; that is, the subsidiary lists needn't have the same
-number of elements. In this case, the structure will be converted to a
-"rectangular" C<SAFEARRAY> of Variants, with unused slots set to
-C<VT_EMPTY>. Consider this Perl 2-D array:
-
- [ ["Perl" ], # one element
- [1, 3.1215, undef] # three elements
- ]
-
-This will be translated to a 2 by 3 C<SAFEARRAY> that looks like this:
-
- VT_BSTR("Perl") VT_EMPTY VT_EMPTY
- VT_I4(1) VT_R8(3.1415) VT_ERROR(DISP_E_PARAMNOTFOUND)
-
-B<The Variant To Perl Transformation.> Automatic conversion from Variants
-to Perl values happens as follows:
-
- Variant Perl value
- VT_BOOL, VT_ERROR Integer
- VT_UI1, VT_I2, VT_I4 Integer
- VT_R4, VT_R8 Float value
- VT_BSTR String
- VT_DISPATCH Win32::OLE object
-
-B<The Win32::OLE::Variant module.> This module provides access to the
-Variant data type, which gives you more control over how these
-arguments to OLE methods are encoded. (This is rarely necessary if you
-have a good grasp of the default conversion rules.) A Variant object
-can be created with the C<< Win32::OLE::Variant->new >> method or the
-equivalent Variant() function:
-
- use Win32::OLE::Variant;
- my $var1 = Win32::OLE::Variant->new(VT_DATE, 'Jan 1,1970');
- my $var2 = Variant(VT_BSTR, 'This is an Unicode string');
-
-Several methods let you inspect and manipulate Variant objects: The
-Type() and Value() methods return the variant type and value; the As()
-method returns the value after converting it to a different variant
-type; ChangeType() coerces the Variant into a different type; and
-Unicode() returns the value of a Variant object as an object of the
-Unicode::String class.
-
-These conversions are more interesting if they can be applied directly
-to the return value of an OLE method call without first mutilating the
-value with default conversions. This is possible with the following
-trick:
-
- my $RetVal = Variant(VT_EMPTY, undef);
- $Object->Dispatch($Method, $RetVal, @Arguments);
-
-Normally, you wouldn't call Dispatch() directly; it's executed
-implicitly by either AUTOLOAD() or Invoke(). If Dispatch() realizes
-that the return value is already a Win32::OLE::Variant object, the
-return value is not translated into a Perl representation but rather
-copied verbatim into the Variant object.
-
-Whenever a Win32::OLE::Variant object is used in a numeric or string
-context it is automatically converted into the corresponding format.
-
- printf "Number: %f and String: %s\n",
- $Var, $Var;
-
-This is equivalent to:
-
- printf "Number: %f and String: %s\n",
- $Var->As(VT_R8), $Var->As(VT_BSTR);
-
-For methods that modify their arguments, you need to use the C<VT_BYREF>
-flag. This lets you create number and string Variants that can be
-modified by OLE methods. Here, Corel's GetSize() method takes two
-integers and stores the C<x> and C<y> dimensions in them:
-
- my $x = Variant( VT_I4 | VT_BYREF, 0);
- my $y = Variant( VT_I4 | VT_BYREF, 0);
- $Corel->GetSize($x, $y);
-
-C<VT_BYREF> support for other Variant types might appear in future
-releases of Win32::OLE.
-
-=head1 FURTHER INFORMATION
-
-=head2 DOCUMENTATION AND EXAMPLE CODE
-
-More information about the OLE modules can be found in the
-documentation bundled with Win32::OLE. The distribution also contains
-other code samples.
-
-The object model for Microsoft Office applications can be found in the
-Visual Basic Reference for Microsoft Access, Excel, Word, or
-PowerPoint. These help files are not installed by default, but they
-can be added later by rerunning F<setup.exe> and choosing I<custom
-setup>. The object model for Microsoft Outlook can be found on the
-Microsoft Office Developer Forum at:
-http://www.microsoft.com/OutlookDev/.
-
-Information about the LotusScript object model can be found at:
-http://www.lotus.com/products/lotusscript.nsf.
-
-=head2 OLE AUTOMATION ON OTHER PLATFORMS
-
-Microsoft also makes OLE technology available for the Mac. DCOM is
-already included in Windows NT 4.0 and can be downloaded for Windows
-95. MVS and some Unix systems can use EntireX to get OLE
-functionality; see
-http://www.softwareag.com/corporat/solutions/entirex/entirex.htm.
-
-=head1 COPYRIGHT
-
-Copyright 1998 I<The Perl Journal>. http://www.tpj.com
-
-This article originally appeared in I<The Perl Journal> #10. It
-appears courtesy of Jon Orwant and I<The Perl Journal>. This document
-may be distributed under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Win32/OLE/TypeInfo.pm b/Master/tlpkg/tlperl/lib/Win32/OLE/TypeInfo.pm
deleted file mode 100644
index d95399c1e29..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/OLE/TypeInfo.pm
+++ /dev/null
@@ -1,389 +0,0 @@
-# This module is still experimental and intentionally undocumented.
-# If you don't know why it is here, then you should probably not use it.
-
-package Win32::OLE::TypeInfo;
-
-use strict;
-use vars qw(@ISA @EXPORT @EXPORT_OK);
-use vars qw(@VT %TYPEFLAGS @TYPEKIND %IMPLTYPEFLAGS %PARAMFLAGS
- %FUNCFLAGS @CALLCONV @FUNCKIND %INVOKEKIND %VARFLAGS
- %LIBFLAGS @SYSKIND);
-
-use Exporter;
-@ISA = qw(Exporter);
-
-@EXPORT = qw(
- VT_EMPTY VT_NULL VT_I2 VT_I4 VT_R4 VT_R8 VT_CY VT_DATE
- VT_BSTR VT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN
- VT_DECIMAL VT_I1 VT_UI1 VT_UI2 VT_UI4 VT_I8 VT_UI8 VT_INT
- VT_UINT VT_VOID VT_HRESULT VT_PTR VT_SAFEARRAY VT_CARRAY
- VT_USERDEFINED VT_LPSTR VT_LPWSTR VT_FILETIME VT_BLOB
- VT_STREAM VT_STORAGE VT_STREAMED_OBJECT VT_STORED_OBJECT
- VT_BLOB_OBJECT VT_CF VT_CLSID VT_VECTOR VT_ARRAY VT_BYREF
- VT_RESERVED VT_ILLEGAL VT_ILLEGALMASKED VT_TYPEMASK
-
- TYPEFLAG_FAPPOBJECT TYPEFLAG_FCANCREATE TYPEFLAG_FLICENSED
- TYPEFLAG_FPREDECLID TYPEFLAG_FHIDDEN TYPEFLAG_FCONTROL
- TYPEFLAG_FDUAL TYPEFLAG_FNONEXTENSIBLE TYPEFLAG_FOLEAUTOMATION
- TYPEFLAG_FRESTRICTED TYPEFLAG_FAGGREGATABLE TYPEFLAG_FREPLACEABLE
- TYPEFLAG_FDISPATCHABLE TYPEFLAG_FREVERSEBIND
-
- TKIND_ENUM TKIND_RECORD TKIND_MODULE TKIND_INTERFACE TKIND_DISPATCH
- TKIND_COCLASS TKIND_ALIAS TKIND_UNION TKIND_MAX
-
- IMPLTYPEFLAG_FDEFAULT IMPLTYPEFLAG_FSOURCE IMPLTYPEFLAG_FRESTRICTED
- IMPLTYPEFLAG_FDEFAULTVTABLE
-
- PARAMFLAG_NONE PARAMFLAG_FIN PARAMFLAG_FOUT PARAMFLAG_FLCID
- PARAMFLAG_FRETVAL PARAMFLAG_FOPT PARAMFLAG_FHASDEFAULT
-
- FUNCFLAG_FRESTRICTED FUNCFLAG_FSOURCE FUNCFLAG_FBINDABLE
- FUNCFLAG_FREQUESTEDIT FUNCFLAG_FDISPLAYBIND FUNCFLAG_FDEFAULTBIND
- FUNCFLAG_FHIDDEN FUNCFLAG_FUSESGETLASTERROR FUNCFLAG_FDEFAULTCOLLELEM
- FUNCFLAG_FUIDEFAULT FUNCFLAG_FNONBROWSABLE FUNCFLAG_FREPLACEABLE
- FUNCFLAG_FIMMEDIATEBIND
-
- CC_FASTCALL CC_CDECL CC_MSCPASCAL CC_PASCAL CC_MACPASCAL CC_STDCALL
- CC_FPFASTCALL CC_SYSCALL CC_MPWCDECL CC_MPWPASCAL CC_MAX
-
- INVOKE_FUNC INVOKE_PROPERTYGET INVOKE_PROPERTYPUT INVOKE_PROPERTYPUTREF
-
- VARFLAG_FREADONLY VARFLAG_FSOURCE VARFLAG_FBINDABLE VARFLAG_FREQUESTEDIT
- VARFLAG_FDISPLAYBIND VARFLAG_FDEFAULTBIND VARFLAG_FHIDDEN VARFLAG_FRESTRICTED
- VARFLAG_FDEFAULTCOLLELEM VARFLAG_FUIDEFAULT VARFLAG_FNONBROWSABLE
- VARFLAG_FREPLACEABLE VARFLAG_FIMMEDIATEBIND
-
- LIBFLAG_FRESTRICTED LIBFLAG_FCONTROL LIBFLAG_FHIDDEN
- SYS_WIN16 SYS_WIN32 SYS_MAC
-
- FUNC_VIRTUAL FUNC_PUREVIRTUAL FUNC_NONVIRTUAL FUNC_STATIC FUNC_DISPATCH
-
- @VT %TYPEFLAGS @TYPEKIND %IMPLTYPEFLAGS %PARAMFLAGS
- %FUNCFLAGS @CALLCONV @FUNCKIND %INVOKEKIND %VARFLAGS %LIBFLAGS @SYSKIND
-);
-
-# Lib Flags
-# ---------
-
-sub LIBFLAG_FRESTRICTED () { 0x01; }
-sub LIBFLAG_FCONTROL () { 0x02; }
-sub LIBFLAG_FHIDDEN () { 0x04; }
-
-$LIBFLAGS{LIBFLAG_FRESTRICTED()} = LIBFLAG_FRESTRICTED;
-$LIBFLAGS{LIBFLAG_FCONTROL()} = LIBFLAG_FCONTROL;
-$LIBFLAGS{LIBFLAG_FHIDDEN()} = LIBFLAG_FHIDDEN;
-
-# Sys Kind
-# --------
-
-sub SYS_WIN16 () { 0; }
-sub SYS_WIN32 () { SYS_WIN16() + 1; }
-sub SYS_MAC () { SYS_WIN32() + 1; }
-
-$SYSKIND[SYS_WIN16] = 'SYS_WIN16';
-$SYSKIND[SYS_WIN32] = 'SYS_WIN32';
-$SYSKIND[SYS_MAC] = 'SYS_MAC';
-
-# Type Flags
-# ----------
-
-sub TYPEFLAG_FAPPOBJECT () { 0x1; }
-sub TYPEFLAG_FCANCREATE () { 0x2; }
-sub TYPEFLAG_FLICENSED () { 0x4; }
-sub TYPEFLAG_FPREDECLID () { 0x8; }
-sub TYPEFLAG_FHIDDEN () { 0x10; }
-sub TYPEFLAG_FCONTROL () { 0x20; }
-sub TYPEFLAG_FDUAL () { 0x40; }
-sub TYPEFLAG_FNONEXTENSIBLE () { 0x80; }
-sub TYPEFLAG_FOLEAUTOMATION () { 0x100; }
-sub TYPEFLAG_FRESTRICTED () { 0x200; }
-sub TYPEFLAG_FAGGREGATABLE () { 0x400; }
-sub TYPEFLAG_FREPLACEABLE () { 0x800; }
-sub TYPEFLAG_FDISPATCHABLE () { 0x1000; }
-sub TYPEFLAG_FREVERSEBIND () { 0x2000; }
-
-$TYPEFLAGS{TYPEFLAG_FAPPOBJECT()} = TYPEFLAG_FAPPOBJECT;
-$TYPEFLAGS{TYPEFLAG_FCANCREATE()} = TYPEFLAG_FCANCREATE;
-$TYPEFLAGS{TYPEFLAG_FLICENSED()} = TYPEFLAG_FLICENSED;
-$TYPEFLAGS{TYPEFLAG_FPREDECLID()} = TYPEFLAG_FPREDECLID;
-$TYPEFLAGS{TYPEFLAG_FHIDDEN()} = TYPEFLAG_FHIDDEN;
-$TYPEFLAGS{TYPEFLAG_FCONTROL()} = TYPEFLAG_FCONTROL;
-$TYPEFLAGS{TYPEFLAG_FDUAL()} = TYPEFLAG_FDUAL;
-$TYPEFLAGS{TYPEFLAG_FNONEXTENSIBLE()} = TYPEFLAG_FNONEXTENSIBLE;
-$TYPEFLAGS{TYPEFLAG_FOLEAUTOMATION()} = TYPEFLAG_FOLEAUTOMATION;
-$TYPEFLAGS{TYPEFLAG_FRESTRICTED()} = TYPEFLAG_FRESTRICTED;
-$TYPEFLAGS{TYPEFLAG_FAGGREGATABLE()} = TYPEFLAG_FAGGREGATABLE;
-$TYPEFLAGS{TYPEFLAG_FREPLACEABLE()} = TYPEFLAG_FREPLACEABLE;
-$TYPEFLAGS{TYPEFLAG_FDISPATCHABLE()} = TYPEFLAG_FDISPATCHABLE;
-$TYPEFLAGS{TYPEFLAG_FREVERSEBIND()} = TYPEFLAG_FREVERSEBIND;
-
-# Type Kind
-# ---------
-
-sub TKIND_ENUM () { 0; }
-sub TKIND_RECORD () { TKIND_ENUM() + 1; }
-sub TKIND_MODULE () { TKIND_RECORD() + 1; }
-sub TKIND_INTERFACE () { TKIND_MODULE() + 1; }
-sub TKIND_DISPATCH () { TKIND_INTERFACE() + 1; }
-sub TKIND_COCLASS () { TKIND_DISPATCH() + 1; }
-sub TKIND_ALIAS () { TKIND_COCLASS() + 1; }
-sub TKIND_UNION () { TKIND_ALIAS() + 1; }
-sub TKIND_MAX () { TKIND_UNION() + 1; }
-
-$TYPEKIND[TKIND_ENUM] = 'TKIND_ENUM';
-$TYPEKIND[TKIND_RECORD] = 'TKIND_RECORD';
-$TYPEKIND[TKIND_MODULE] = 'TKIND_MODULE';
-$TYPEKIND[TKIND_INTERFACE] = 'TKIND_INTERFACE';
-$TYPEKIND[TKIND_DISPATCH] = 'TKIND_DISPATCH';
-$TYPEKIND[TKIND_COCLASS] = 'TKIND_COCLASS';
-$TYPEKIND[TKIND_ALIAS] = 'TKIND_ALIAS';
-$TYPEKIND[TKIND_UNION] = 'TKIND_UNION';
-
-# Implemented Type Flags
-# ----------------------
-
-sub IMPLTYPEFLAG_FDEFAULT () { 0x1; }
-sub IMPLTYPEFLAG_FSOURCE () { 0x2; }
-sub IMPLTYPEFLAG_FRESTRICTED () { 0x4; }
-sub IMPLTYPEFLAG_FDEFAULTVTABLE () { 0x800; }
-
-$IMPLTYPEFLAGS{IMPLTYPEFLAG_FDEFAULT()} = IMPLTYPEFLAG_FDEFAULT;
-$IMPLTYPEFLAGS{IMPLTYPEFLAG_FSOURCE()} = IMPLTYPEFLAG_FSOURCE;
-$IMPLTYPEFLAGS{IMPLTYPEFLAG_FRESTRICTED()} = IMPLTYPEFLAG_FRESTRICTED;
-$IMPLTYPEFLAGS{IMPLTYPEFLAG_FDEFAULTVTABLE()} = IMPLTYPEFLAG_FDEFAULTVTABLE;
-
-# Parameter Flags
-# ---------------
-
-sub PARAMFLAG_NONE () { 0; }
-sub PARAMFLAG_FIN () { 0x1; }
-sub PARAMFLAG_FOUT () { 0x2; }
-sub PARAMFLAG_FLCID () { 0x4; }
-sub PARAMFLAG_FRETVAL () { 0x8; }
-sub PARAMFLAG_FOPT () { 0x10; }
-sub PARAMFLAG_FHASDEFAULT () { 0x20; }
-
-$PARAMFLAGS{PARAMFLAG_NONE()} = PARAMFLAG_NONE;
-$PARAMFLAGS{PARAMFLAG_FIN()} = PARAMFLAG_FIN;
-$PARAMFLAGS{PARAMFLAG_FOUT()} = PARAMFLAG_FOUT;
-$PARAMFLAGS{PARAMFLAG_FLCID()} = PARAMFLAG_FLCID;
-$PARAMFLAGS{PARAMFLAG_FRETVAL()} = PARAMFLAG_FRETVAL;
-$PARAMFLAGS{PARAMFLAG_FOPT()} = PARAMFLAG_FOPT;
-$PARAMFLAGS{PARAMFLAG_FHASDEFAULT()} = PARAMFLAG_FHASDEFAULT;
-
-# Function Flags
-# --------------
-
-sub FUNCFLAG_FRESTRICTED () { 0x1; }
-sub FUNCFLAG_FSOURCE () { 0x2; }
-sub FUNCFLAG_FBINDABLE () { 0x4; }
-sub FUNCFLAG_FREQUESTEDIT () { 0x8; }
-sub FUNCFLAG_FDISPLAYBIND () { 0x10; }
-sub FUNCFLAG_FDEFAULTBIND () { 0x20; }
-sub FUNCFLAG_FHIDDEN () { 0x40; }
-sub FUNCFLAG_FUSESGETLASTERROR () { 0x80; }
-sub FUNCFLAG_FDEFAULTCOLLELEM () { 0x100; }
-sub FUNCFLAG_FUIDEFAULT () { 0x200; }
-sub FUNCFLAG_FNONBROWSABLE () { 0x400; }
-sub FUNCFLAG_FREPLACEABLE () { 0x800; }
-sub FUNCFLAG_FIMMEDIATEBIND () { 0x1000; }
-
-$FUNCFLAGS{FUNCFLAG_FRESTRICTED()} = FUNCFLAG_FRESTRICTED;
-$FUNCFLAGS{FUNCFLAG_FSOURCE()} = FUNCFLAG_FSOURCE;
-$FUNCFLAGS{FUNCFLAG_FBINDABLE()} = FUNCFLAG_FBINDABLE;
-$FUNCFLAGS{FUNCFLAG_FREQUESTEDIT()} = FUNCFLAG_FREQUESTEDIT;
-$FUNCFLAGS{FUNCFLAG_FDISPLAYBIND()} = FUNCFLAG_FDISPLAYBIND;
-$FUNCFLAGS{FUNCFLAG_FDEFAULTBIND()} = FUNCFLAG_FDEFAULTBIND;
-$FUNCFLAGS{FUNCFLAG_FHIDDEN()} = FUNCFLAG_FHIDDEN;
-$FUNCFLAGS{FUNCFLAG_FUSESGETLASTERROR()} = FUNCFLAG_FUSESGETLASTERROR;
-$FUNCFLAGS{FUNCFLAG_FDEFAULTCOLLELEM()} = FUNCFLAG_FDEFAULTCOLLELEM;
-$FUNCFLAGS{FUNCFLAG_FUIDEFAULT()} = FUNCFLAG_FUIDEFAULT;
-$FUNCFLAGS{FUNCFLAG_FNONBROWSABLE()} = FUNCFLAG_FNONBROWSABLE;
-$FUNCFLAGS{FUNCFLAG_FREPLACEABLE()} = FUNCFLAG_FREPLACEABLE;
-$FUNCFLAGS{FUNCFLAG_FIMMEDIATEBIND()} = FUNCFLAG_FIMMEDIATEBIND;
-
-# Calling conventions
-# -------------------
-
-sub CC_FASTCALL () { 0; }
-sub CC_CDECL () { 1; }
-sub CC_MSCPASCAL () { CC_CDECL() + 1; }
-sub CC_PASCAL () { CC_MSCPASCAL; }
-sub CC_MACPASCAL () { CC_PASCAL() + 1; }
-sub CC_STDCALL () { CC_MACPASCAL() + 1; }
-sub CC_FPFASTCALL () { CC_STDCALL() + 1; }
-sub CC_SYSCALL () { CC_FPFASTCALL() + 1; }
-sub CC_MPWCDECL () { CC_SYSCALL() + 1; }
-sub CC_MPWPASCAL () { CC_MPWCDECL() + 1; }
-sub CC_MAX () { CC_MPWPASCAL() + 1; }
-
-$CALLCONV[CC_FASTCALL] = 'CC_FASTCALL';
-$CALLCONV[CC_CDECL] = 'CC_CDECL';
-$CALLCONV[CC_PASCAL] = 'CC_PASCAL';
-$CALLCONV[CC_MACPASCAL] = 'CC_MACPASCAL';
-$CALLCONV[CC_STDCALL] = 'CC_STDCALL';
-$CALLCONV[CC_FPFASTCALL] = 'CC_FPFASTCALL';
-$CALLCONV[CC_SYSCALL] = 'CC_SYSCALL';
-$CALLCONV[CC_MPWCDECL] = 'CC_MPWCDECL';
-$CALLCONV[CC_MPWPASCAL] = 'CC_MPWPASCAL';
-
-# Function Kind
-# -------------
-
-sub FUNC_VIRTUAL () { 0; }
-sub FUNC_PUREVIRTUAL () { FUNC_VIRTUAL() + 1; }
-sub FUNC_NONVIRTUAL () { FUNC_PUREVIRTUAL() + 1; }
-sub FUNC_STATIC () { FUNC_NONVIRTUAL() + 1; }
-sub FUNC_DISPATCH () { FUNC_STATIC() + 1; }
-
-$FUNCKIND[FUNC_VIRTUAL] = 'FUNC_VIRTUAL';
-$FUNCKIND[FUNC_PUREVIRTUAL] = 'FUNC_PUREVIRTUAL';
-$FUNCKIND[FUNC_NONVIRTUAL] = 'FUNC_NONVIRTUAL';
-$FUNCKIND[FUNC_STATIC] = 'FUNC_STATIC';
-$FUNCKIND[FUNC_DISPATCH] = 'FUNC_DISPATCH';
-
-# Invoke Kind
-# -----------
-
-sub INVOKE_FUNC () { 1; }
-sub INVOKE_PROPERTYGET () { 2; }
-sub INVOKE_PROPERTYPUT () { 4; }
-sub INVOKE_PROPERTYPUTREF () { 8; }
-
-$INVOKEKIND{INVOKE_FUNC()} = INVOKE_FUNC;
-$INVOKEKIND{INVOKE_PROPERTYGET()} = INVOKE_PROPERTYGET;
-$INVOKEKIND{INVOKE_PROPERTYPUT()} = INVOKE_PROPERTYPUT;
-$INVOKEKIND{INVOKE_PROPERTYPUTREF()} = INVOKE_PROPERTYPUTREF;
-
-# Variable Flags
-# --------------
-
-sub VARFLAG_FREADONLY () { 0x1; }
-sub VARFLAG_FSOURCE () { 0x2; }
-sub VARFLAG_FBINDABLE () { 0x4; }
-sub VARFLAG_FREQUESTEDIT () { 0x8; }
-sub VARFLAG_FDISPLAYBIND () { 0x10; }
-sub VARFLAG_FDEFAULTBIND () { 0x20; }
-sub VARFLAG_FHIDDEN () { 0x40; }
-sub VARFLAG_FRESTRICTED () { 0x80; }
-sub VARFLAG_FDEFAULTCOLLELEM () { 0x100; }
-sub VARFLAG_FUIDEFAULT () { 0x200; }
-sub VARFLAG_FNONBROWSABLE () { 0x400; }
-sub VARFLAG_FREPLACEABLE () { 0x800; }
-sub VARFLAG_FIMMEDIATEBIND () { 0x1000; }
-
-$VARFLAGS{VARFLAG_FREADONLY()} = VARFLAG_FREADONLY;
-$VARFLAGS{VARFLAG_FSOURCE()} = VARFLAG_FSOURCE;
-$VARFLAGS{VARFLAG_FBINDABLE()} = VARFLAG_FBINDABLE;
-$VARFLAGS{VARFLAG_FREQUESTEDIT()} = VARFLAG_FREQUESTEDIT;
-$VARFLAGS{VARFLAG_FDISPLAYBIND()} = VARFLAG_FDISPLAYBIND;
-$VARFLAGS{VARFLAG_FDEFAULTBIND()} = VARFLAG_FDEFAULTBIND;
-$VARFLAGS{VARFLAG_FHIDDEN()} = VARFLAG_FHIDDEN;
-$VARFLAGS{VARFLAG_FRESTRICTED()} = VARFLAG_FRESTRICTED;
-$VARFLAGS{VARFLAG_FDEFAULTCOLLELEM()} = VARFLAG_FDEFAULTCOLLELEM;
-$VARFLAGS{VARFLAG_FUIDEFAULT()} = VARFLAG_FUIDEFAULT;
-$VARFLAGS{VARFLAG_FNONBROWSABLE()} = VARFLAG_FNONBROWSABLE;
-$VARFLAGS{VARFLAG_FREPLACEABLE()} = VARFLAG_FREPLACEABLE;
-$VARFLAGS{VARFLAG_FIMMEDIATEBIND()} = VARFLAG_FIMMEDIATEBIND;
-
-
-# Variant Types
-# -------------
-
-sub VT_EMPTY () { 0; }
-sub VT_NULL () { 1; }
-sub VT_I2 () { 2; }
-sub VT_I4 () { 3; }
-sub VT_R4 () { 4; }
-sub VT_R8 () { 5; }
-sub VT_CY () { 6; }
-sub VT_DATE () { 7; }
-sub VT_BSTR () { 8; }
-sub VT_DISPATCH () { 9; }
-sub VT_ERROR () { 10; }
-sub VT_BOOL () { 11; }
-sub VT_VARIANT () { 12; }
-sub VT_UNKNOWN () { 13; }
-sub VT_DECIMAL () { 14; }
-sub VT_I1 () { 16; }
-sub VT_UI1 () { 17; }
-sub VT_UI2 () { 18; }
-sub VT_UI4 () { 19; }
-sub VT_I8 () { 20; }
-sub VT_UI8 () { 21; }
-sub VT_INT () { 22; }
-sub VT_UINT () { 23; }
-sub VT_VOID () { 24; }
-sub VT_HRESULT () { 25; }
-sub VT_PTR () { 26; }
-sub VT_SAFEARRAY () { 27; }
-sub VT_CARRAY () { 28; }
-sub VT_USERDEFINED () { 29; }
-sub VT_LPSTR () { 30; }
-sub VT_LPWSTR () { 31; }
-sub VT_FILETIME () { 64; }
-sub VT_BLOB () { 65; }
-sub VT_STREAM () { 66; }
-sub VT_STORAGE () { 67; }
-sub VT_STREAMED_OBJECT () { 68; }
-sub VT_STORED_OBJECT () { 69; }
-sub VT_BLOB_OBJECT () { 70; }
-sub VT_CF () { 71; }
-sub VT_CLSID () { 72; }
-sub VT_VECTOR () { 0x1000; }
-sub VT_ARRAY () { 0x2000; }
-sub VT_BYREF () { 0x4000; }
-sub VT_RESERVED () { 0x8000; }
-sub VT_ILLEGAL () { 0xffff; }
-sub VT_ILLEGALMASKED () { 0xfff; }
-sub VT_TYPEMASK () { 0xfff; }
-
-$VT[VT_EMPTY] = 'VT_EMPTY';
-$VT[VT_NULL] = 'VT_NULL';
-$VT[VT_I2] = 'VT_I2';
-$VT[VT_I4] = 'VT_I4';
-$VT[VT_R4] = 'VT_R4';
-$VT[VT_R8] = 'VT_R8';
-$VT[VT_CY] = 'VT_CY';
-$VT[VT_DATE] = 'VT_DATE';
-$VT[VT_BSTR] = 'VT_BSTR';
-$VT[VT_DISPATCH] = 'VT_DISPATCH';
-$VT[VT_ERROR] = 'VT_ERROR';
-$VT[VT_BOOL] = 'VT_BOOL';
-$VT[VT_VARIANT] = 'VT_VARIANT';
-$VT[VT_UNKNOWN] = 'VT_UNKNOWN';
-$VT[VT_DECIMAL] = 'VT_DECIMAL';
-$VT[VT_I1] = 'VT_I1';
-$VT[VT_UI1] = 'VT_UI1';
-$VT[VT_UI2] = 'VT_UI2';
-$VT[VT_UI4] = 'VT_UI4';
-$VT[VT_I8] = 'VT_I8';
-$VT[VT_UI8] = 'VT_UI8';
-$VT[VT_INT] = 'VT_INT';
-$VT[VT_UINT] = 'VT_UINT';
-$VT[VT_VOID] = 'VT_VOID';
-$VT[VT_HRESULT] = 'VT_HRESULT';
-$VT[VT_PTR] = 'VT_PTR';
-$VT[VT_SAFEARRAY] = 'VT_SAFEARRAY';
-$VT[VT_CARRAY] = 'VT_CARRAY';
-$VT[VT_USERDEFINED] = 'VT_USERDEFINED';
-$VT[VT_LPSTR] = 'VT_LPSTR';
-$VT[VT_LPWSTR] = 'VT_LPWSTR';
-$VT[VT_FILETIME] = 'VT_FILETIME';
-$VT[VT_BLOB] = 'VT_BLOB';
-$VT[VT_STREAM] = 'VT_STREAM';
-$VT[VT_STORAGE] = 'VT_STORAGE';
-$VT[VT_STREAMED_OBJECT] = 'VT_STREAMED_OBJECT';
-$VT[VT_STORED_OBJECT] = 'VT_STORED_OBJECT';
-$VT[VT_BLOB_OBJECT] = 'VT_BLOB_OBJECT';
-$VT[VT_CF] = 'VT_CF';
-$VT[VT_CLSID] = 'VT_CLSID';
-$VT[VT_VECTOR] = 'VT_VECTOR';
-$VT[VT_ARRAY] = 'VT_ARRAY';
-$VT[VT_BYREF] = 'VT_BYREF';
-$VT[VT_RESERVED] = 'VT_RESERVED';
-$VT[VT_ILLEGAL] = 'VT_ILLEGAL';
-$VT[VT_ILLEGALMASKED] = 'VT_ILLEGALMASKED';
-$VT[VT_TYPEMASK] = 'VT_TYPEMASK';
-
-1;
diff --git a/Master/tlpkg/tlperl/lib/Win32/OLE/Variant.pm b/Master/tlpkg/tlperl/lib/Win32/OLE/Variant.pm
deleted file mode 100644
index 38fc6048209..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/OLE/Variant.pm
+++ /dev/null
@@ -1,577 +0,0 @@
-# The documentation is at the __END__
-
-package Win32::OLE::Variant;
-require Win32::OLE; # Make sure the XS bootstrap has been called
-
-use strict;
-use vars qw(@ISA @EXPORT @EXPORT_OK);
-
-use Exporter;
-@ISA = qw(Exporter);
-
-@EXPORT = qw(
- Variant
- VT_EMPTY VT_NULL VT_I2 VT_I4 VT_R4 VT_R8 VT_CY VT_DATE VT_BSTR
- VT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMAL VT_UI1
- VT_ARRAY VT_BYREF
- );
-
-@EXPORT_OK = qw(CP_ACP CP_OEMCP nothing nullstring);
-
-# Automation data types.
-sub VT_EMPTY {0;}
-sub VT_NULL {1;}
-sub VT_I2 {2;}
-sub VT_I4 {3;}
-sub VT_R4 {4;}
-sub VT_R8 {5;}
-sub VT_CY {6;}
-sub VT_DATE {7;}
-sub VT_BSTR {8;}
-sub VT_DISPATCH {9;}
-sub VT_ERROR {10;}
-sub VT_BOOL {11;}
-sub VT_VARIANT {12;}
-sub VT_UNKNOWN {13;}
-sub VT_DECIMAL {14;} # Officially not allowed in VARIANTARGs
-sub VT_UI1 {17;}
-
-sub VT_ARRAY {0x2000;}
-sub VT_BYREF {0x4000;}
-
-
-# For backward compatibility
-sub CP_ACP {0;} # ANSI codepage
-sub CP_OEMCP {1;} # OEM codepage
-
-use overload
- # '+' => 'Add', '-' => 'Sub', '*' => 'Mul', '/' => 'Div',
- '""' => sub {$_[0]->As(VT_BSTR)},
- '0+' => sub {$_[0]->As(VT_R8)},
- fallback => 1;
-
-sub Variant {
- return Win32::OLE::Variant->new(@_);
-}
-
-sub nothing {
- return Win32::OLE::Variant->new(VT_DISPATCH);
-}
-
-sub nullstring {
- return Win32::OLE::Variant->new(VT_BSTR);
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Win32::OLE::Variant - Create and modify OLE VARIANT variables
-
-=head1 SYNOPSIS
-
- use Win32::OLE::Variant;
- my $var = Variant(VT_DATE, 'Jan 1,1970');
- $OleObject->{value} = $var;
- $OleObject->Method($var);
-
-
-=head1 DESCRIPTION
-
-The IDispatch interface used by the Perl OLE module uses a universal
-argument type called VARIANT. This is basically an object containing
-a data type and the actual data value. The data type is specified by
-the VT_xxx constants.
-
-=head2 Functions
-
-=over 8
-
-=item nothing()
-
-The nothing() function returns an empty VT_DISPATCH variant. It can be
-used to clear an object reference stored in a property
-
- use Win32::OLE::Variant qw(:DEFAULT nothing);
- # ...
- $object->{Property} = nothing;
-
-This has the same effect as the Visual Basic statement
-
- Set object.Property = Nothing
-
-The nothing() function is B<not> exported by default.
-
-=item nullstring()
-
-The nullstring() function returns a VT_BSTR variant with a NULL string
-pointer. This is B<not> the same as a VT_BSTR variant with an empty
-string "". The nullstring() value is the same as the vbNullString
-constant in Visual Basic.
-
-The nullstring() function is B<not> exported by default.
-
-=item Variant(TYPE, DATA)
-
-This is just a function alias of the C<Win32::OLE::Variant->new()>
-method (see below). This function is exported by default.
-
-=back
-
-=head2 Methods
-
-=over 8
-
-=item new(TYPE, DATA)
-
-This method returns a Win32::OLE::Variant object of the specified
-TYPE that contains the given DATA. The Win32::OLE::Variant object
-can be used to specify data types other than IV, NV or PV (which are
-supported transparently). See L<Variants> below for details.
-
-For VT_EMPTY and VT_NULL variants, the DATA argument may be omitted.
-For all non-VT_ARRAY variants DATA specifies the initial value.
-
-To create a SAFEARRAY variant, you have to specify the VT_ARRAY flag in
-addition to the variant base type of the array elements. In this cases
-DATA must be a list specifying the dimensions of the array. Each element
-can be either an element count (indices 0 to count-1) or an array
-reference pointing to the lower and upper array bounds of this dimension:
-
- my $Array = Win32::OLE::Variant->new(VT_ARRAY|VT_R8, [1,2], 2);
-
-This creates a 2-dimensional SAFEARRAY of doubles with 4 elements:
-(1,0), (1,1), (2,0) and (2,1).
-
-A special case is the creation of one-dimensional VT_UI1 arrays with
-a string DATA argument:
-
- my $String = Variant(VT_ARRAY|VT_UI1, "String");
-
-This creates a 6 element character array initialized to "String". For
-backward compatibility VT_UI1 with a string initializer automatically
-implies VT_ARRAY. The next line is equivalent to the previous example:
-
- my $String = Variant(VT_UI1, "String");
-
-If you really need a single character VT_UI1 variant, you have to create
-it using a numeric intializer:
-
- my $Char = Variant(VT_UI1, ord('A'));
-
-=item As(TYPE)
-
-C<As> converts the VARIANT to the new type before converting to a
-Perl value. This take the current LCID setting into account. For
-example a string might contain a ',' as the decimal point character.
-Using C<$variant->As(VT_R8)> will correctly return the floating
-point value.
-
-The underlying variant object is NOT changed by this method.
-
-=item ChangeType(TYPE)
-
-This method changes the type of the contained VARIANT in place. It
-returns the object itself, not the converted value.
-
-=item Copy([DIM])
-
-This method creates a copy of the object. If the original variant had
-the VT_BYREF bit set then the new object will contain a copy of the
-referenced data and not a reference to the same old data. The new
-object will not have the VT_BYREF bit set.
-
- my $Var = Variant(VT_I4|VT_ARRAY|VT_BYREF, [1,5], 3);
- my $Copy = $Var->Copy;
-
-The type of C<$Copy> is now VT_I4|VT_ARRAY and the value is a copy of
-the other SAFEARRAY. Changes to elements of C<$Var> will not be reflected
-in C<$Copy> and vice versa.
-
-The C<Copy> method can also be used to extract a single element of a
-VT_ARRAY | VT_VARIANT object. In this case the array indices must be
-specified as a list DIM:
-
- my $Int = $Var->Copy(1, 2);
-
-C<$Int> is now a VT_I4 Variant object containing the value of element (1,2).
-
-=item Currency([FORMAT[, LCID]])
-
-This method converts the VARIANT value into a formatted currency string. The
-FORMAT can be either an integer constant or a hash reference. Valid constants
-are 0 and LOCALE_NOUSEROVERRIDE. You get the value of LOCALE_NOUSEROVERRIDE
-from the Win32::OLE::NLS module:
-
- use Win32::OLE::NLS qw(:LOCALE);
-
-LOCALE_NOUSEROVERRIDE tells the method to use the system default currency
-format for the specified locale, disregarding any changes that might have
-been made through the control panel application.
-
-The hash reference could contain the following keys:
-
- NumDigits number of fractional digits
- LeadingZero whether to use leading zeroes in decimal fields
- Grouping size of each group of digits to the left of the decimal
- DecimalSep decimal separator string
- ThousandSep thousand separator string
- NegativeOrder see L<Win32::OLE::NLS/LOCALE_ICURRENCY>
- PositiveOrder see L<Win32::OLE::NLS/LOCALE_INEGCURR>
- CurrencySymbol currency symbol string
-
-For example:
-
- use Win32::OLE::Variant;
- use Win32::OLE::NLS qw(:DEFAULT :LANG :SUBLANG :DATE :TIME);
- my $lcidGerman = MAKELCID(MAKELANGID(LANG_GERMAN, SUBLANG_NEUTRAL));
- my $v = Variant(VT_CY, "-922337203685477.5808");
- print $v->Currency({CurrencySymbol => "Tuits"}, $lcidGerman), "\n";
-
-will print:
-
- -922.337.203.685.477,58 Tuits
-
-=item Date([FORMAT[, LCID]])
-
-Converts the VARIANT into a formatted date string. FORMAT can be either
-one of the following integer constants or a format string:
-
- LOCALE_NOUSEROVERRIDE system default date format for this locale
- DATE_SHORTDATE use the short date format (default)
- DATE_LONGDATE use the long date format
- DATE_YEARMONTH use the year/month format
- DATE_USE_ALT_CALENDAR use the alternate calendar, if one exists
- DATE_LTRREADING left-to-right reading order layout
- DATE_RTLREADING right-to left reading order layout
-
-The constants are available from the Win32::OLE::NLS module:
-
- use Win32::OLE::NLS qw(:LOCALE :DATE);
-
-The following elements can be used to construct a date format string.
-Characters must be specified exactly as given below (e.g. "dd" B<not> "DD").
-Spaces can be inserted anywhere between formatting codes, other verbatim
-text should be included in single quotes.
-
- d day of month
- dd day of month with leading zero for single-digit days
- ddd day of week: three-letter abbreviation (LOCALE_SABBREVDAYNAME)
- dddd day of week: full name (LOCALE_SDAYNAME)
- M month
- MM month with leading zero for single-digit months
- MMM month: three-letter abbreviation (LOCALE_SABBREVMONTHNAME)
- MMMM month: full name (LOCALE_SMONTHNAME)
- y year as last two digits
- yy year as last two digits with leading zero for years less than 10
- yyyy year represented by full four digits
- gg period/era string
-
-For example:
-
- my $v = Variant(VT_DATE, "April 1 99");
- print $v->Date(DATE_LONGDATE), "\n";
- print $v->Date("ddd',' MMM dd yy"), "\n";
-
-will print:
-
- Thursday, April 01, 1999
- Thu, Apr 01 99
-
-=item Dim()
-
-Returns a list of array bounds for a VT_ARRAY variant. The list contains
-an array reference for each dimension of the variant's SAFEARRAY. This
-reference points to an array containing the lower and upper bounds for
-this dimension. For example:
-
- my @Dim = $Var->Dim;
-
-Now C<@Dim> contains the following list: C<([1,5], [0,2])>.
-
-=item Get(DIM)
-
-For normal variants C<Get> returns the value of the variant, just like the
-C<Value> method. For VT_ARRAY variants C<Get> retrieves the value of a single
-array element. In this case C<DIM> must be a list of array indices. E.g.
-
- my $Val = $Var->Get(2,0);
-
-As a special case for one dimensional VT_UI1|VT_ARRAY variants the C<Get>
-method without arguments returns the character array as a Perl string.
-
- print $String->Get, "\n";
-
-=item IsNothing()
-
-Tests if the object is an empty VT_DISPATCH variant. See also nothing().
-
-=item IsNullString()
-
-Tests if the object is an empty VT_BSTR variant. See also nullstring().
-
-=item LastError()
-
-The use of the C<Win32::OLE::Variant->LastError()> method is deprecated.
-Please use the C<Win32::OLE->LastError()> class method instead.
-
-=item Number([FORMAT[, LCID]])
-
-This method converts the VARIANT value into a formatted number string. The
-FORMAT can be either an integer constant or a hash reference. Valid constants
-are 0 and LOCALE_NOUSEROVERRIDE. You get the value of LOCALE_NOUSEROVERRIDE
-from the Win32::OLE::NLS module:
-
- use Win32::OLE::NLS qw(:LOCALE);
-
-LOCALE_NOUSEROVERRIDE tells the method to use the system default number
-format for the specified locale, disregarding any changes that might have
-been made through the control panel application.
-
-The hash reference could contain the following keys:
-
- NumDigits number of fractional digits
- LeadingZero whether to use leading zeroes in decimal fields
- Grouping size of each group of digits to the left of the decimal
- DecimalSep decimal separator string
- ThousandSep thousand separator string
- NegativeOrder see L<Win32::OLE::NLS/LOCALE_INEGNUMBER>
-
-=item Put(DIM, VALUE)
-
-The C<Put> method is used to assign a new value to a variant. The value will
-be coerced into the current type of the variant. E.g.:
-
- my $Var = Variant(VT_I4, 42);
- $Var->Put(3.1415);
-
-This changes the value of the variant to C<3> because the type is VT_I4.
-
-For VT_ARRAY type variants the indices for each dimension of the contained
-SAFEARRAY must be specified in front of the new value:
-
- $Array->Put(1, 1, 2.7);
-
-It is also possible to assign values to *every* element of the SAFEARRAY at
-once using a single Put() method call:
-
- $Array->Put([[1,2], [3,4]]);
-
-In this case the argument to Put() must be an array reference and the
-dimensions of the Perl list-of-lists must match the dimensions of the
-SAFEARRAY exactly.
-
-The are a few special cases for one-dimensional VT_UI1 arrays: The VALUE
-can be specified as a string instead of a number. This will set the selected
-character to the first character of the string or to '\0' if the string was
-empty:
-
- my $String = Variant(VT_UI1|VT_ARRAY, "ABCDE");
- $String->Put(1, "123");
- $String->Put(3, ord('Z'));
- $String->Put(4, '');
-
-This will set the value of C<$String> to C<"A1CZ\0">. If the index is omitted
-then the string is copied to the value completely. The string is truncated
-if it is longer than the size of the VT_UI1 array. The result will be padded
-with '\0's if the string is shorter:
-
- $String->Put("String");
-
-Now C<$String> contains the value "Strin".
-
-C<Put> returns the Variant object itself so that multiple C<Put> calls can be
-chained together:
-
- $Array->Put(0,0,$First_value)->Put(0,1,$Another_value);
-
-=item Time([FORMAT[, LCID]])
-
-Converts the VARIANT into a formatted time string. FORMAT can be either
-one of the following integer constants or a format string:
-
- LOCALE_NOUSEROVERRIDE system default time format for this locale
- TIME_NOMINUTESORSECONDS don't use minutes or seconds
- TIME_NOSECONDS don't use seconds
- TIME_NOTIMEMARKER don't use a time marker
- TIME_FORCE24HOURFORMAT always use a 24-hour time format
-
-The constants are available from the Win32::OLE::NLS module:
-
- use Win32::OLE::NLS qw(:LOCALE :TIME);
-
-The following elements can be used to construct a time format string.
-Characters must be specified exactly as given below (e.g. "dd" B<not> "DD").
-Spaces can be inserted anywhere between formatting codes, other verbatim
-text should be included in single quotes.
-
- h hours; 12-hour clock
- hh hours with leading zero for single-digit hours; 12-hour clock
- H hours; 24-hour clock
- HH hours with leading zero for single-digit hours; 24-hour clock
- m minutes
- mm minutes with leading zero for single-digit minutes
- s seconds
- ss seconds with leading zero for single-digit seconds
- t one character time marker string, such as A or P
- tt multicharacter time marker string, such as AM or PM
-
-For example:
-
- my $v = Variant(VT_DATE, "April 1 99 2:23 pm");
- print $v->Time, "\n";
- print $v->Time(TIME_FORCE24HOURFORMAT|TIME_NOTIMEMARKER), "\n";
- print $v->Time("hh.mm.ss tt"), "\n";
-
-will print:
-
- 2:23:00 PM
- 14:23:00
- 02.23.00 PM
-
-=item Type()
-
-The C<Type> method returns the variant type of the contained VARIANT.
-
-=item Unicode()
-
-The C<Unicode> method returns a C<Unicode::String> object. This contains
-the BSTR value of the variant in network byte order. If the variant is
-not currently in VT_BSTR format then a VT_BSTR copy will be produced first.
-
-=item Value()
-
-The C<Value> method returns the value of the VARIANT as a Perl value. The
-conversion is performed in the same manner as all return values of
-Win32::OLE method calls are converted.
-
-=back
-
-=head2 Overloading
-
-The Win32::OLE::Variant package has overloaded the conversion to
-string and number formats. Therefore variant objects can be used in
-arithmetic and string operations without applying the C<Value>
-method first.
-
-=head2 Class Variables
-
-The Win32::OLE::Variant class used to have its own set of class variables
-like C<$CP>, C<$LCID> and C<$Warn>. In version 0.1003 and later of the
-Win32::OLE module these variables have been eliminated. Now the settings
-of Win32::OLE are used by the Win32::OLE::Variant module too. Please read
-the documentation of the C<Win32::OLE-&gt;Option> class method.
-
-
-=head2 Constants
-
-These constants are exported by default:
-
- VT_EMPTY
- VT_NULL
- VT_I2
- VT_I4
- VT_R4
- VT_R8
- VT_CY
- VT_DATE
- VT_BSTR
- VT_DISPATCH
- VT_ERROR
- VT_BOOL
- VT_VARIANT
- VT_UNKNOWN
- VT_DECIMAL
- VT_UI1
-
- VT_ARRAY
- VT_BYREF
-
-VT_DECIMAL is not on the official list of allowable OLE Automation
-datatypes. But even Microsoft ADO seems to sometimes return values
-of Recordset fields in VT_DECIMAL format.
-
-=head2 Variants
-
-A Variant is a data type that is used to pass data between OLE
-connections.
-
-The default behavior is to convert each perl scalar variable into
-an OLE Variant according to the internal perl representation.
-The following type correspondence holds:
-
- C type Perl type OLE type
- ------ --------- --------
- int IV VT_I4
- double NV VT_R8
- char * PV VT_BSTR
- void * ref to AV VT_ARRAY
- ? undef VT_ERROR
- ? Win32::OLE object VT_DISPATCH
-
-Note that VT_BSTR is a wide character or Unicode string. This presents a
-problem if you want to pass in binary data as a parameter as 0x00 is
-inserted between all the bytes in your data. The C<Variant()> method
-provides a solution to this. With Variants the script writer can specify
-the OLE variant type that the parameter should be converted to. Currently
-supported types are:
-
- VT_UI1 unsigned char
- VT_I2 signed int (2 bytes)
- VT_I4 signed int (4 bytes)
- VT_R4 float (4 bytes)
- VT_R8 float (8 bytes)
- VT_DATE OLE Date
- VT_BSTR OLE String
- VT_CY OLE Currency
- VT_BOOL OLE Boolean
-
-When VT_DATE and VT_CY objects are created, the input parameter is treated
-as a Perl string type, which is then converted to VT_BSTR, and finally to
-VT_DATE of VT_CY using the C<VariantChangeType()> OLE API function.
-See L<Win32::OLE/EXAMPLES> for how these types can be used.
-
-=head2 Variant arrays
-
-A variant can not only contain a single value but also a multi-dimensional
-array of values (called a SAFEARRAY). In this case the VT_ARRAY flag must
-be added to the base variant type, e.g. C<VT_I4 | VT_ARRAY> for an array of
-integers. The VT_EMPTY and VT_NULL types are invalid for SAFEARRAYs. It
-is possible to create an array of variants: C<VT_VARIANT | VT_ARRAY>. In this
-case each element of the array can have a different type (including VT_EMPTY
-and VT_NULL). The elements of a VT_VARIANT SAFEARRAY cannot have either of the
-VT_ARRAY or VT_BYREF flags set.
-
-The lower and upper bounds for each dimension can be specified separately.
-They do not have to have all the same lower bound (unlike Perl's arrays).
-
-=head2 Variants by reference
-
-Some OLE servers expect parameters passed by reference so that they
-can be changed in the method call. This allows methods to easily
-return multiple values. There is preliminary support for this in
-the Win32::OLE::Variant module:
-
- my $x = Variant(VT_I4|VT_BYREF, 0);
- my $y = Variant(VT_I4|VT_BYREF, 0);
- $Corel->GetSize($x, $y);
- print "Size is $x by $y\n";
-
-After the C<GetSize> method call C<$x> and C<$y> will be set to
-the respective sizes. They will still be variants. In the print
-statement the overloading converts them to string representation
-automatically.
-
-VT_BYREF is now supported for all variant types (including SAFEARRAYs).
-It can also be used to pass an OLE object by reference:
-
- my $Results = $App->CreateResultsObject;
- $Object->Method(Variant(VT_DISPATCH|VT_BYREF, $Results));
-
-=head1 AUTHORS/COPYRIGHT
-
-This module is part of the Win32::OLE distribution.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Win32/Shortcut.pm b/Master/tlpkg/tlperl/lib/Win32/Shortcut.pm
deleted file mode 100644
index f2846788282..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/Shortcut.pm
+++ /dev/null
@@ -1,752 +0,0 @@
-package Win32::Shortcut;
-#######################################################################
-#
-# Win32::Shortcut - Perl Module for Shell Link Interface
-# ^^^^^^^^^^^^^^^
-# This module creates an object oriented interface to the Win32
-# Shell Links (IShellLink interface).
-#
-#######################################################################
-
-$VERSION = "0.08";
-
-require Exporter;
-require DynaLoader;
-
-@ISA= qw( Exporter DynaLoader );
-@EXPORT = qw(
- SW_SHOWMAXIMIZED
- SW_SHOWMINNOACTIVE
- SW_SHOWNORMAL
-);
-
-
-#######################################################################
-# This AUTOLOAD is used to 'autoload' constants from the constant()
-# XS function. If a constant is not found then control is passed
-# to the AUTOLOAD in AutoLoader.
-#
-
-sub AUTOLOAD {
- my($constname);
- ($constname = $AUTOLOAD) =~ s/.*:://;
- #reset $! to zero to reset any current errors.
- local $!;
- my $val = constant($constname, @_ ? $_[0] : 0);
- if ($!) {
- my(undef, $file, $line) = caller;
- die "Win32::Shortcut::$constname is not defined, used at $file line $line.";
- }
- eval "sub $AUTOLOAD { $val }";
- goto &$AUTOLOAD;
-}
-
-
-#######################################################################
-# PUBLIC METHODS
-#
-
-#========
-sub new {
-#========
- my($class, $file) = @_;
- my($ilink, $ifile) = _Instance();
- return unless $ilink && $ifile;
-
- my $self = bless {
- ilink => $ilink,
- ifile => $ifile,
- File => "",
- Path => "",
- Arguments => "",
- WorkingDirectory => "",
- Description => "",
- ShowCmd => 0,
- Hotkey => 0,
- IconLocation => "",
- IconNumber => 0,
- };
-
-
- if ($file) {
- $self->{File} = $file;
- $self->Load($file);
- }
-
- return $self;
-}
-
-#=========
-sub Load {
-#=========
- my($self, $file) = @_;
- return undef unless ref($self);
-
- my $result = _Load($self->{'ilink'}, $self->{'ifile'}, $file);
-
- if ($result) {
-
- # fill the properties of $self
- $self->{'File'} = $file;
- $self->{'Path'} = _GetPath($self->{'ilink'}, $self->{'ifile'},0);
- $self->{'ShortPath'} = _GetPath($self->{'ilink'}, $self->{'ifile'},1);
- $self->{'Arguments'} = _GetArguments($self->{'ilink'}, $self->{'ifile'});
- $self->{'WorkingDirectory'} = _GetWorkingDirectory($self->{'ilink'}, $self->{'ifile'});
- $self->{'Description'} = _GetDescription($self->{'ilink'}, $self->{'ifile'});
- $self->{'ShowCmd'} = _GetShowCmd($self->{'ilink'}, $self->{'ifile'});
- $self->{'Hotkey'} = _GetHotkey($self->{'ilink'}, $self->{'ifile'});
- ($self->{'IconLocation'},
- $self->{'IconNumber'}) = _GetIconLocation($self->{'ilink'}, $self->{'ifile'});
- }
- return $result;
-}
-
-
-#========
-sub Set {
-#========
- my($self, $path, $arguments, $dir, $description, $show, $hotkey,
- $iconlocation, $iconnumber) = @_;
- return undef unless ref($self);
-
- $self->{'Path'} = $path;
- $self->{'Arguments'} = $arguments;
- $self->{'WorkingDirectory'} = $dir;
- $self->{'Description'} = $description;
- $self->{'ShowCmd'} = $show;
- $self->{'Hotkey'} = $hotkey;
- $self->{'IconLocation'} = $iconlocation;
- $self->{'IconNumber'} = $iconnumber;
- return 1;
-}
-
-
-#=========
-sub Save {
-#=========
- my($self, $file) = @_;
- return unless ref($self);
-
- $file = $self->{'File'} unless $file;
- return unless $file;
-
- require Win32 unless defined &Win32::GetFullPathName;
- $file = Win32::GetFullPathName($file);
-
- _SetPath($self->{'ilink'}, $self->{'ifile'}, $self->{'Path'});
- _SetArguments($self->{'ilink'}, $self->{'ifile'}, $self->{'Arguments'});
- _SetWorkingDirectory($self->{'ilink'}, $self->{'ifile'}, $self->{'WorkingDirectory'});
- _SetDescription($self->{'ilink'}, $self->{'ifile'}, $self->{'Description'});
- _SetShowCmd($self->{'ilink'}, $self->{'ifile'}, $self->{'ShowCmd'});
- _SetHotkey($self->{'ilink'}, $self->{'ifile'}, $self->{'Hotkey'});
- _SetIconLocation($self->{'ilink'}, $self->{'ifile'},
- $self->{'IconLocation'}, $self->{'IconNumber'});
-
- my $result = _Save($self->{'ilink'}, $self->{'ifile'}, $file);
- if ($result) {
- $self->{'File'} = $file unless $self->{'File'};
- }
- return $result;
-}
-
-#============
-sub Resolve {
-#============
- my($self, $flags) = @_;
- return undef unless ref($self);
- $flags = 1 unless defined($flags);
- my $result = _Resolve($self->{'ilink'}, $self->{'ifile'}, $flags);
- return $result;
-}
-
-
-#==========
-sub Close {
-#==========
- my($self) = @_;
- return undef unless ref($self);
-
- my $result = _Release($self->{'ilink'}, $self->{'ifile'});
- $self->{'released'} = 1;
- return $result;
-}
-
-#=========
-sub Path {
-#=========
- my($self, $value) = @_;
- return undef unless ref($self);
-
- if(not defined($value)) {
- return $self->{'Path'};
- } else {
- $self->{'Path'} = $value;
- }
- return $self->{'Path'};
-}
-
-#==============
-sub ShortPath {
-#==============
- my($self) = @_;
- return undef unless ref($self);
- return $self->{'ShortPath'};
-}
-
-#==============
-sub Arguments {
-#==============
- my($self, $value) = @_;
- return undef unless ref($self);
-
- if(not defined($value)) {
- return $self->{'Arguments'};
- } else {
- $self->{'Arguments'} = $value;
- }
- return $self->{'Arguments'};
-}
-
-#=====================
-sub WorkingDirectory {
-#=====================
- my($self, $value) = @_;
- return undef unless ref($self);
-
- if(not defined($value)) {
- return $self->{'WorkingDirectory'};
- } else {
- $self->{'WorkingDirectory'} = $value;
- }
- return $self->{'WorkingDirectory'};
-}
-
-
-#================
-sub Description {
-#================
- my($self, $value) = @_;
- return undef unless ref($self);
-
- if(not defined($value)) {
- return $self->{'Description'};
- } else {
- $self->{'Description'} = $value;
- }
- return $self->{'Description'};
-}
-
-#============
-sub ShowCmd {
-#============
- my($self, $value) = @_;
- return undef unless ref($self);
-
- if(not defined($value)) {
- return $self->{'ShowCmd'};
- } else {
- $self->{'ShowCmd'} = $value;
- }
- return $self->{'ShowCmd'};
-}
-
-#===========
-sub Hotkey {
-#===========
- my($self, $value) = @_;
- return undef unless ref($self);
-
- if(not defined($value)) {
- return $self->{'Hotkey'};
- } else {
- $self->{'Hotkey'} = $value;
- }
- return $self->{'Hotkey'};
-}
-
-#=================
-sub IconLocation {
-#=================
- my($self, $value) = @_;
- return undef unless ref($self);
-
- if(not defined($value)) {
- return $self->{'IconLocation'};
- } else {
- $self->{'IconLocation'} = $value;
- }
- return $self->{'IconLocation'};
-}
-
-#===============
-sub IconNumber {
-#===============
- my($self, $value) = @_;
- return undef unless ref($self);
-
- if(not defined($value)) {
- return $self->{'IconNumber'};
- } else {
- $self->{'IconNumber'} = $value;
- }
- return $self->{'IconNumber'};
-}
-
-#============
-sub Version {
-#============
- # [dada] to get rid of the "used only once" warning...
- return $VERSION;
-}
-
-
-#######################################################################
-# PRIVATE METHODS
-#
-
-#============
-sub DESTROY {
-#============
- my($self) = @_;
-
- if (not $self->{'released'}) {
- _Release($self->{'ilink'}, $self->{'ifile'});
- $self->{'released'} = 1;
- }
-}
-
-bootstrap Win32::Shortcut;
-
-1;
-
-__END__
-
-=head1 NAME
-
-Win32::Shortcut - Perl Module to deal with Windows Shortcuts
-
-=head1 SYNOPSIS
-
-This module implements the Win32 IShellLink Interface to allow
-management of shortcut files from Perl.
-
- use Win32::Shortcut;
-
- $LINK = Win32::Shortcut->new();
- $LINK->{'Path'} = "C:\\Directory\\Target.exe";
- $LINK->{'Description'} = "Target executable";
- $LINK->Save("Target.lnk");
- $LINK->Close();
-
-=head1 REFERENCE
-
-=head2 General Usage
-
-To use this module, first add the following line at the beginning of
-your script:
-
- use Win32::Shortcut;
-
-Then, use this command to create a shortcut object:
-
- $LINK = Win32::Shortcut->new();
-
-This function will create a C<$LINK> object on which you can apply the
-Methods and Properties explained later.
-
-The object is not yet a shortcut file; it is just the definition of a
-shortcut. Basically, you can do 2 things:
-
-=over
-
-=item 1. Load a shortcut file into the object.
-
-=item 2. Save the object into a shortcut file.
-
-=back
-
-For the rest, the object can be accessed as it were a normal
-associative array reference. It has the following keys (here referred
-as properties):
-
- $LINK->{'File'}
- $LINK->{'Path'} $LINK->Path()
- $LINK->{'ShortPath'}
- $LINK->{'WorkingDirectory'} $LINK->WorkingDirectory()
- $LINK->{'Arguments'} $LINK->Arguments()
- $LINK->{'Description'} $LINK->Description()
- $LINK->{'ShowCmd'} $LINK->ShowCmd()
- $LINK->{'Hotkey'} $LINK->Hotkey()
- $LINK->{'IconLocation'} $LINK->IconLocation()
- $LINK->{'IconNumber'} $LINK->IconNumber()
-
-Thus, assuming you have a shortcut file named C<test.lnk> in your
-current directory, this simple script will tell you where this shortcut
-points to:
-
- use Win32::Shortcut;
- $LINK = Win32::Shortcut->new();
- $LINK->Load("test.lnk");
- print "Shortcut to: $LINK->{'Path'} $LINK->{'Arguments'} \n";
- $LINK->Close();
-
-But you can also modify its values:
-
- use Win32::Shortcut;
- $LINK = Win32::Shortcut->new();
- $LINK->Load("test.lnk");
- $LINK->{'Path'} =~ s/C:/D:/i; # move the target from C: to D:
- $LINK->{'ShowCmd'} = SW_NORMAL; # runs in a normal window
-
-and then you can save your changes to the shortcut file with this
-command:
-
- $LINK->Save();
- $LINK->Close();
-
-or you can save it with another name, creating a new shortcut file:
-
- $LINK->Save("test2.lnk");
- $LINK->Close();
-
-Finally, you can create a completely new shortcut:
-
- $LINK = Win32::Shortcut->new();
- $LINK->{'Path'} = "C:\\PERL5\\BIN\\PERL.EXE";
- $LINK->{'Arguments'} = "-v";
- $LINK->{'WorkingDirectory'} = "C:\PERL5\\BIN";
- $LINK->{'Description'} = "Prints out the version of Perl";
- $LINK->{'ShowCmd'} = SW_SHOWMAXIMIZED;
- $LINK->Save("Perl Version Info.lnk");
- $LINK->Close();
-
-Note also that in the examples above the two lines:
-
- $LINK = Win32::Shortcut->new();
- $LINK->Load("test.lnk");
-
-can be collapsed to:
-
- $LINK = Win32::Shortcut->new("test.lnk");
-
-
-=head2 Methods
-
-=over
-
-=item B<Close>
-
-Closes a shortcut object. Note that it is not "strictly" required to
-close the objects you created, since the Win32::Shortcut objects are
-automatically closed when the program ends (or when you somehow destroy
-such an object).
-
-Note also that a shortcut is not automatically saved when it is closed,
-even if you modified it. You have to call Save in order to apply
-modifications to a shortcut file.
-
-Example:
-
- $LINK->Close();
-
-=item B<Load> I<file>
-
-Loads the content of the shortcut file named I<file> in a shortcut
-object and fill the properties of the object with its values. Will
-return B<undef> on errors, or a true value if everything was
-successful.
-
-Example:
-
- $LINK->Load("test.lnk") or print "test.lnk not found!";
-
- print join("\n", $LINK->Path,
- $LINK->ShortPath,
- $LINK->Arguments,
- $LINK->WorkingDirectory,
- $LINK->Description,
- $LINK->ShowCmd,
- $LINK->Hotkey,
- $LINK->IconLocation,
- $LINK->IconNumber);
- }
-
-=item B<new Win32::Shortcut> I<[file]>
-
-Creates a new shortcut object. If a filename is passed in I<file>,
-automatically Loads this file also. Returns the object created or
-B<undef> on errors.
-
-Example:
-
- $LINK = Win32::Shortcut->new();
-
- $RegEdit = Win32::Shortcut->new("Registry Editor.lnk");
- die "File not found" if not $RegEdit;
-
-=item B<Resolve> I<[flag]>
-
-Attempts to automatically resolve a shortcut and returns the resolved
-path, or B<undef> on errors; in case no resolution was made, the path
-is returned unchanged. Note that the path is automatically updated in
-the Path property of the shortcut.
-
-By default this method acts quietly, but if you pass a value of 0
-(zero) in the I<flag> parameter, it will eventually post a dialog box
-prompting the user for more information.
-
-Example:
-
- # if the target doesn't exist...
- if(! -f $LINK->Path) {
- # save the actual target for comparison
- $oldpath = $LINK->Path;
-
- # try to resolve it (with dialog box)
- $newpath = $LINK->Resolve(0);
-
- die "Not resolved..." if $newpath == $oldpath;
- }
-
-=item B<Save> I<[file]>
-
-Saves the content of the shortcut object into the file named I<file>.
-If I<file> is omitted, it is taken from the File property of the object
-(which, if not changed, is the name of the last Loaded file).
-
-If no file was loaded and the File property doesn't contain a valid
-filename, the method will return B<undef>, which will also be returned
-on errors. A true value will be returned if everything was successful.
-
-Example:
-
- $LINK->Save();
- $LINK->Save("Copy of " . $LINK->{'File'});
-
-=item B<Set> I<path, arguments, workingdirectory, description, showcmd,
-hotkey, iconlocation, iconnumber>
-
-Sets all the properties of the shortcut object with a single command.
-This method is supplied for convenience only, you can also set those
-values changing the values of the properties.
-
-Example:
-
- $LINK->Set("C:\\PERL5\\BIN\\PERL.EXE",
- "-v",
- "C:\\PERL5\\BIN",
- "Prints out the version of Perl",
- SW_SHOWMAXIMIZED,
- hex('0x0337'),
- "C:\\WINDOWS\\SYSTEM\\COOL.DLL",
- 1);
-
- # it is the same of...
- $LINK->Path("C:\\PERL5\\BIN\\PERL.EXE");
- $LINK->Arguments("-v");
- $LINK->WorkingDirectory("C:\\PERL5\\BIN");
- $LINK->Description("Prints out the version of Perl");
- $LINK->ShowCmd(SW_SHOWMAXIMIZED);
- $LINK->Hotkey(hex('0x0337'));
- $LINK->IconLocation("C:\\WINDOWS\\SYSTEM\\COOL.DLL");
- $LINK->IconNumber(1);
-
-=back
-
-=head2 Properties
-
-The properties of a shortcut object can be accessed as:
-
- $OBJECT->{'property'}
-
-Eg., assuming that you have created a shortcut object with:
-
- $LINK=new Win32::Shortcut();
-
-you can for example see its description with:
-
- print $LINK->{'Description'};
-
-You can of course also set it:
-
- $LINK->{'Description'}="This is a description";
-
-From version 0.02, those properties have also a corresponding method
-(subroutine), so you can write the 2 lines above using this syntax too:
-
- print $LINK->Description;
- $LINK->Description("This is a description");
-
-The properties of a shortcut reflect the content of the Shortcut
-Properties Dialog Box, which can be obtained by clicking the third
-mouse button on a shortcut file in the Windows 95 (or NT 4.0) Explorer
-and choosing "Properties" (well, I hope you already knew :).
-
-The fields corresponding to the single properties are marked in B<bold>
-in the following list.
-
-=over
-
-=item B<Arguments>
-
-The arguments associated with the shell link object. They will be
-passed to the targeted program (see Path) when it gets executed. In
-fact, joined with Path, this parameter forms the "B<Target>" field of a
-Shortcut Properties Dialog Box.
-
-=item B<Description>
-
-An optional description given to the shortcut. Seems to be missing in
-the Shortcut Properties Dialog Box (not yet implemented?).
-
-=item B<File>
-
-The filename of the shortcut file opened with Load, and/or the filename
-under which the shortcut will be saved with Save (if the I<file>
-argument is not specified).
-
-=item B<Hotkey>
-
-The hotkey associated to the shortcut, in the form of a 2-byte number
-of which the first byte identifies the modifiers (Ctrl, Alt, Shift...
-but I didn't find out how it works) and the second is the ASCII code of
-the character key. Correspond to the "B<Shortcut key>" field of a
-Shortcut Properties Dialog Box.
-
-=item B<IconLocation>
-
-The file that contain the icon for the shortcut. Seems actually to
-always return nothing (YMMV, I hope...).
-
-=item B<IconNumber>
-
-The number of the icon for the shortcut in the file pointed by
-IconLocation, in case more that one icon is contained in that file (I
-suppose this, documentation isn't so clear at this point).
-
-=item B<Path>
-
-The target of the shortcut. This is (joined with Arguments) the content
-of the "B<Target>" field in a Shortcut Properties Dialog Box.
-
-=item B<ShortPath>
-
-Same as Path, but expressed in a DOS-readable format (8.3 characters
-filenames). It is available as read-only (well, you can change it, but
-it has no effect on the shortcut; change Path instead) once you Load a
-shortcut file.
-
-=item B<ShowCmd>
-
-The condition of the window in which the program will be executed (can
-be Normal, Minimized or Maximized). Correspond to the "B<Run>" field of
-a Shortcut Properties Dialog Box.
-
-Allowed values are:
-
-B<Value> B<Meaning> B<Constant>
-
- 1 Normal Window SW_SHOWNORMAL
- 3 Maximized SW_SHOWMAXIMIZED
- 7 Minimized SW_SHOWMINNOACTIVE
-
-Any other value (theoretically should) result in a Normal Window
-display.
-
-=item B<WorkingDirectory>
-
-The directory in which the targeted program will be executed.
-Correspond to the "B<Start in>" field of a Shortcut Properties Dialog
-Box.
-
-=back
-
-=head2 Constants
-
-The following constants are exported in the main namespace of your
-script using Win32::Shortcut:
-
-=over
-
-=item * SW_SHOWNORMAL
-
-=item * SW_SHOWMAXIMIZED
-
-=item * SW_SHOWMINNOACTIVE
-
-=back
-
-Those constants are the allowed values for the ShowCmd property.
-
-
-
-=head1 VERSION HISTORY
-
-B<0.03 (07 Apr 1997)>
-
-=over
-
-=item * The PLL file now comes in 2 versions, one for Perl version
-5.001 (build 110) and one for Perl version 5.003 (build 300 and higher,
-EXCEPT 304).
-
-=item * Added an installation program which will automatically copy the
-right files in the right place.
-
-=back
-
-B<0.02 (21 Jan 1997)>
-
-=over
-
-=item * Added methods matching properties to reduce typing overhead
-(eg. Alt-123 and 125...).
-
-=back
-
-B<0.01 (15 Jan 1997)>
-
-=over
-
-=item *
-
-First public release.
-
-=item *
-
-Added "Set" and "Resolve" and the properties "Hotkey", "IconLocation"
-and "IconNumber".
-
-=back
-
-B<0.01a (10 Jan 1997)>
-
-=over
-
-=item *
-
-First implementation of the IShellLink interface (wow, it works!); can
-"Load", "Save", and modify properties of shortcut files.
-
-=back
-
-=head1 AUTHOR
-
-Aldo Calpini L<dada@perl.it>
-
-Distributed under the terms of Larry Wall's Artistic License.
-
-=head1 CREDITS
-
-Thanks to: Jesse Dougherty, Dave Roth, ActiveWare, and the
-Perl-Win32-Users community.
-
-=head1 DISCLAIMER
-
-I<This program is FREE; you can redistribute, modify, disassemble, or
-even reverse engineer this software at your will. Keep in mind,
-however, that NOTHING IS GUARANTEED to work and everything you do is AT
-YOUR OWN RISK - I will not take responsibility for any damage, loss of
-money and/or health that may arise from the use of this program!>
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Win32/TieRegistry.pm b/Master/tlpkg/tlperl/lib/Win32/TieRegistry.pm
deleted file mode 100644
index 0f7031af323..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/TieRegistry.pm
+++ /dev/null
@@ -1,3812 +0,0 @@
-package Win32::TieRegistry;
-
-# Win32/TieRegistry.pm -- Perl module to easily use a Registry
-# (on Win32 systems so far).
-# by Tye McQueen, tye@metronet.com, see http://www.metronet.com/~tye/.
-
-#
-# Skip to "=head" line for user documentation.
-#
-use 5.006;
-use strict;
-use Carp;
-use Tie::Hash ();
-
-use vars qw( $PACK $VERSION @ISA @EXPORT @EXPORT_OK );
-BEGIN {
- $PACK = 'Win32::TieRegistry';
- $VERSION = '0.29';
- @ISA = 'Tie::Hash';
-}
-
-# Required other modules:
-use Win32API::Registry 0.24 qw( :KEY_ :HKEY_ :REG_ );
-
-#Optional other modules:
-use vars qw( $_NoMoreItems $_FileNotFound $_TooSmall $_MoreData $_SetDualVar );
-
-if ( eval { require Win32::WinError } ) {
- $_NoMoreItems = Win32::WinError::constant("ERROR_NO_MORE_ITEMS",0);
- $_FileNotFound = Win32::WinError::constant("ERROR_FILE_NOT_FOUND",0);
- $_TooSmall = Win32::WinError::constant("ERROR_INSUFFICIENT_BUFFER",0);
- $_MoreData = Win32::WinError::constant("ERROR_MORE_DATA",0);
-} else {
- $_NoMoreItems = "^No more data";
- $_FileNotFound = "cannot find the file";
- $_TooSmall = " data area passed to ";
- $_MoreData = "^more data is avail";
-}
-if ( $_SetDualVar = eval { require SetDualVar } ) {
- import SetDualVar;
-}
-
-#Implementation details:
-# When opened:
-# HANDLE long; actual handle value
-# MACHINE string; name of remote machine ("" if local)
-# PATH list ref; machine-relative full path for this key:
-# ["LMachine","System","Disk"]
-# ["HKEY_LOCAL_MACHINE","System","Disk"]
-# DELIM char; delimiter used to separate subkeys (def="\\")
-# OS_DELIM char; always "\\" for Win32
-# ACCESS long; usually KEY_ALL_ACCESS, perhaps KEY_READ, etc.
-# ROOTS string; var name for "Lmachine"->HKEY_LOCAL_MACHINE map
-# FLAGS int; bits to control certain options
-# Often:
-# VALUES ref to list of value names (data/type never cached)
-# SUBKEYS ref to list of subkey names
-# SUBCLASSES ref to list of subkey classes
-# SUBTIMES ref to list of subkey write times
-# MEMBERS ref to list of subkey_name.DELIM's, DELIM.value_name's
-# MEMBHASH hash ref to with MEMBERS as keys and 1's as values
-# Once Key "Info" requested:
-# Class CntSubKeys CntValues MaxSubKeyLen MaxSubClassLen
-# MaxValNameLen MaxValDataLen SecurityLen LastWrite
-# If is tied to a hash and iterating over key values:
-# PREVIDX int; index of last MEMBERS element return
-# If is the key object returned by Load():
-# UNLOADME list ref; information about Load()ed key
-# If is a subkey of a "loaded" key other than the one returned by Load():
-# DEPENDON obj ref; object that can't be destroyed before us
-
-
-#Package-local variables:
-
-# Option flag bits:
-use vars qw(
- $Flag_ArrVal $Flag_TieVal $Flag_DualTyp $Flag_DualBin
- $Flag_FastDel $Flag_HexDWord $Flag_Split $Flag_FixNulls
-);
-BEGIN {
- $Flag_ArrVal = 0x0001;
- $Flag_TieVal = 0x0002;
- $Flag_FastDel = 0x0004;
- $Flag_HexDWord = 0x0008;
- $Flag_Split = 0x0010;
- $Flag_DualTyp = 0x0020;
- $Flag_DualBin = 0x0040;
- $Flag_FixNulls = 0x0080;
-}
-
-use vars qw( $RegObj %_Roots %RegHash $Registry );
-
-# Short-hand for HKEY_* constants:
-%_Roots= (
- "Classes" => HKEY_CLASSES_ROOT,
- "CUser" => HKEY_CURRENT_USER,
- "LMachine" => HKEY_LOCAL_MACHINE,
- "Users" => HKEY_USERS,
- "PerfData" => HKEY_PERFORMANCE_DATA, # Too picky to be useful
- "CConfig" => HKEY_CURRENT_CONFIG,
- "DynData" => HKEY_DYN_DATA, # Too picky to be useful
-);
-
-# Basic master Registry object:
-$RegObj= {};
-@$RegObj{qw( HANDLE MACHINE PATH DELIM OS_DELIM ACCESS FLAGS ROOTS )}= (
- "NONE", "", [], "\\", "\\",
- KEY_READ|KEY_WRITE, $Flag_HexDWord|$Flag_FixNulls, "${PACK}::_Roots" );
-$RegObj->{FLAGS} |= $Flag_DualTyp|$Flag_DualBin if $_SetDualVar;
-bless $RegObj;
-
-# Fill cache for master Registry object:
-@$RegObj{qw( VALUES SUBKEYS SUBCLASSES SUBTIMES )}= (
- [], [ keys(%_Roots) ], [], [] );
-grep( s#$#$RegObj->{DELIM}#,
- @{ $RegObj->{MEMBERS}= [ @{$RegObj->{SUBKEYS}} ] } );
-@$RegObj{qw( Class MaxSubKeyLen MaxSubClassLen MaxValNameLen
- MaxValDataLen SecurityLen LastWrite CntSubKeys CntValues )}=
- ( "", 0, 0, 0, 0, 0, 0, 0, 0 );
-
-# Create master Registry tied hash:
-$RegObj->Tie( \%RegHash );
-
-# Create master Registry combination object and tied hash reference:
-$Registry= \%RegHash;
-bless $Registry;
-
-
-# Preloaded methods go here.
-
-
-# Map option names to name of subroutine that controls that option:
-use vars qw( @_opt_subs %_opt_subs );
-@_opt_subs= qw( Delimiter ArrayValues TieValues SplitMultis DWordsToHex
- FastDelete FixSzNulls DualTypes DualBinVals AllowLoad AllowSave );
-@_opt_subs{@_opt_subs}= @_opt_subs;
-
-sub import
-{
- my $pkg = shift(@_);
- my $level = $Exporter::ExportLevel;
- my $expto = caller($level);
- my @export = ();
- my @consts = ();
- my $registry = $Registry->Clone;
- local( $_ );
- while( @_ ) {
- $_= shift(@_);
- if( /^\$(\w+::)*\w+$/ ) {
- push( @export, "ObjVar" ) if /^\$RegObj$/;
- push( @export, $_ );
- } elsif( /^\%(\w+::)*\w+$/ ) {
- push( @export, $_ );
- } elsif( /^[$%]/ ) {
- croak "${PACK}->import: Invalid variable name ($_)";
- } elsif( /^:/ || /^(H?KEY|REG)_/ ) {
- push( @consts, $_ );
- } elsif( ! @_ ) {
- croak "${PACK}->import: Missing argument after option ($_)";
- } elsif( exists $_opt_subs{$_} ) {
- $_= $_opt_subs{$_};
- $registry->$_( shift(@_) );
- } elsif( /^TiedRef$/ ) {
- $_= shift(@_);
- if( ! ref($_) && /^(\$?)(\w+::)*\w+$/ ) {
- $_= '$'.$_ unless '$' eq $1;
- } elsif( "SCALAR" ne ref($_) ) {
- croak "${PACK}->import: Invalid var after TiedRef ($_)";
- }
- push( @export, $_ );
- } elsif( /^TiedHash$/ ) {
- $_= shift(@_);
- if( ! ref($_) && /^(\%?)(\w+::)*\w+$/ ) {
- $_= '%'.$_ unless '%' eq $1;
- } elsif( "HASH" ne ref($_) ) {
- croak "${PACK}->import: Invalid var after TiedHash ($_)";
- }
- push( @export, $_ );
- } elsif( /^ObjectRef$/ ) {
- $_= shift(@_);
- if( ! ref($_) && /^(\$?)(\w+::)*\w+$/ ) {
- push( @export, "ObjVar" );
- $_= '$'.$_ unless '$' eq $1;
- } elsif( "SCALAR" eq ref($_) ) {
- push( @export, "ObjRef" );
- } else {
- croak "${PACK}->import: Invalid var after ObjectRef ($_)";
- }
- push( @export, $_ );
- } elsif( /^ExportLevel$/ ) {
- $level= shift(@_);
- $expto= caller($level);
- } elsif( /^ExportTo$/ ) {
- undef $level;
- $expto= caller($level);
- } else {
- croak "${PACK}->import: Invalid option ($_)";
- }
- }
- Win32API::Registry->export( $expto, @consts ) if @consts;
- @export= ('$Registry') unless @export;
- while( @export ) {
- $_= shift( @export );
- if( /^\$((?:\w+::)*)(\w+)$/ ) {
- my( $pack, $sym )= ( $1, $2 );
- $pack= $expto unless defined($pack) && "" ne $pack;
- no strict 'refs';
- *{"${pack}::$sym"}= \${"${pack}::$sym"};
- ${"${pack}::$sym"}= $registry;
- } elsif( /^\%((?:\w+::)*)(\w+)$/ ) {
- my( $pack, $sym )= ( $1, $2 );
- $pack= $expto unless defined($pack) && "" ne $pack;
- no strict 'refs';
- *{"${pack}::$sym"}= \%{"${pack}::$sym"};
- $registry->Tie( \%{"${pack}::$sym"} );
- } elsif( "SCALAR" eq ref($_) ) {
- $$_= $registry;
- } elsif( "HASH" eq ref($_) ) {
- $registry->Tie( $_ );
- } elsif( /^ObjVar$/ ) {
- $_= shift( @_ );
- /^\$((?:\w+::)*)(\w+)$/;
- my( $pack, $sym )= ( $1, $2 );
- $pack= $expto unless defined($pack) && "" ne $pack;
- no strict 'refs';
- *{"${pack}::$sym"}= \${"${pack}::$sym"};
- ${"${pack}::$sym"}= $registry->ObjectRef;
- } elsif( /^ObjRef$/ ) {
- ${shift(@_)}= $registry->ObjectRef;
- } else {
- die "Impossible var to export ($_)";
- }
- }
-}
-
-
-use vars qw( @_new_Opts %_new_Opts );
-@_new_Opts= qw( ACCESS DELIM MACHINE DEPENDON );
-@_new_Opts{@_new_Opts}= (1) x @_new_Opts;
-
-sub _new
-{
- my $this= shift( @_ );
- $this= tied(%$this) if ref($this) && tied(%$this);
- my $class= ref($this) || $this;
- my $self= {};
- my( $handle, $rpath, $opts )= @_;
- if( @_ < 2 || "ARRAY" ne ref($rpath) || 3 < @_
- || 3 == @_ && "HASH" ne ref($opts) ) {
- croak "Usage: ${PACK}->_new( \$handle, \\\@path, {OPT=>VAL,...} );\n",
- " options: @_new_Opts\nCalled";
- }
- @$self{qw( HANDLE PATH )}= ( $handle, $rpath );
- @$self{qw( MACHINE ACCESS DELIM OS_DELIM ROOTS FLAGS )}=
- ( $this->Machine, $this->Access, $this->Delimiter,
- $this->OS_Delimiter, $this->_Roots, $this->_Flags );
- if( ref($opts) ) {
- my @err= grep( ! $_new_Opts{$_}, keys(%$opts) );
- @err and croak "${PACK}->_new: Invalid options (@err)";
- @$self{ keys(%$opts) }= values(%$opts);
- }
- bless $self, $class;
- return $self;
-}
-
-
-sub _split
-{
- my $self= shift( @_ );
- $self= tied(%$self) if tied(%$self);
- my $path= shift( @_ );
- my $delim= @_ ? shift(@_) : $self->Delimiter;
- my $list= [ split( /\Q$delim/, $path ) ];
- return $list;
-}
-
-
-sub _rootKey
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my $keyPath= shift(@_);
- my $delim= @_ ? shift(@_) : $self->Delimiter;
- my( $root, $subPath );
- if( "ARRAY" eq ref($keyPath) ) {
- $subPath= $keyPath;
- } else {
- $subPath= $self->_split( $keyPath, $delim );
- }
- $root= shift( @$subPath );
- if( $root =~ /^HKEY_/ ) {
- my $handle= Win32API::Registry::constant($root,0);
- $handle or croak "Invalid HKEY_ constant ($root): $!";
- return( $self->_new( $handle, [$root], {DELIM=>$delim} ),
- $subPath );
- } elsif( $root =~ /^([-+]|0x)?\d/ ) {
- return( $self->_new( $root, [sprintf("0x%lX",$root)],
- {DELIM=>$delim} ),
- $subPath );
- } else {
- my $roots= $self->Roots;
- if( $roots->{$root} ) {
- return( $self->_new( $roots->{$root}, [$root], {DELIM=>$delim} ),
- $subPath );
- }
- croak "No such root key ($root)";
- }
-}
-
-
-sub _open
-{
- my $this = shift(@_);
- $this = tied(%$this) if ref($this) && tied(%$this);
- my $subPath = shift(@_);
- my $sam = @_ ? shift(@_) : $this->Access;
- my $subKey = join( $this->OS_Delimiter, @$subPath );
- my $handle = 0;
- $this->RegOpenKeyEx( $subKey, 0, $sam, $handle ) or return ();
- return $this->_new( $handle, [ @{$this->_Path}, @$subPath ],
- { ACCESS=>$sam, ( defined($this->{UNLOADME}) ? ("DEPENDON",$this)
- : defined($this->{DEPENDON}) ? ("DEPENDON",$this->{DEPENDON}) : () )
- } );
-}
-
-
-sub ObjectRef
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- return $self;
-}
-
-
-sub _constant
-{
- my( $name, $desc )= @_;
- my $value= Win32API::Registry::constant( $name, 0 );
- my $func= (caller(1))[3];
- if( 0 == $value ) {
- if( $! =~ /invalid/i ) {
- croak "$func: Invalid $desc ($name)";
- } elsif( 0 != $! ) {
- croak "$func: \u$desc ($name) not support on this platform";
- }
- }
- return $value;
-}
-
-
-sub _connect
-{
- my $this= shift(@_);
- $this= tied(%$this) if ref($this) && tied(%$this);
- my $subPath= pop(@_);
- $subPath= $this->_split( $subPath ) unless ref($subPath);
- my $machine= @_ ? shift(@_) : shift(@$subPath);
- my $handle= 0;
- my( $temp )= $this->_rootKey( [@$subPath] );
- $temp->RegConnectRegistry( $machine, $temp->Handle, $handle )
- or return ();
- my $self= $this->_new( $handle, [shift(@$subPath)], {MACHINE=>$machine} );
- return( $self, $subPath );
-}
-
-
-use vars qw( @Connect_Opts %Connect_Opts );
-@Connect_Opts= qw(Access Delimiter);
-@Connect_Opts{@Connect_Opts}= (1) x @Connect_Opts;
-
-sub Connect
-{
- my $this= shift(@_);
- my $tied= ref($this) && tied(%$this);
- $this= tied(%$this) if $tied;
- my( $machine, $key, $opts )= @_;
- my $delim= "";
- my $sam;
- my $subPath;
- if( @_ < 2 || 3 < @_
- || 3 == @_ && "HASH" ne ref($opts) ) {
- croak "Usage: \$obj= ${PACK}->Connect(",
- " \$Machine, \$subKey, { OPT=>VAL,... } );\n",
- " options: @Connect_Opts\nCalled";
- }
- if( ref($opts) ) {
- my @err= grep( ! $Connect_Opts{$_}, keys(%$opts) );
- @err and croak "${PACK}->Connect: Invalid options (@err)";
- }
- $delim= "$opts->{Delimiter}" if defined($opts->{Delimiter});
- $delim= $this->Delimiter if "" eq $delim;
- $sam= defined($opts->{Access}) ? $opts->{Access} : $this->Access;
- $sam= _constant($sam,"key access type") if $sam =~ /^KEY_/;
- ( $this, $subPath )= $this->_connect( $machine, $key );
- return () unless defined($this);
- my $self= $this->_open( $subPath, $sam );
- return () unless defined($self);
- $self->Delimiter( $delim );
- $self= $self->TiedRef if $tied;
- return $self;
-}
-
-
-my @_newVirtual_keys= qw( MEMBERS VALUES SUBKEYS SUBTIMES SUBCLASSES
- Class SecurityLen LastWrite CntValues CntSubKeys
- MaxValNameLen MaxValDataLen MaxSubKeyLen MaxSubClassLen );
-
-sub _newVirtual
-{
- my $self= shift(@_);
- my( $rPath, $root, $opts )= @_;
- my $new= $self->_new( "NONE", $rPath, $opts )
- or return ();
- @{$new}{@_newVirtual_keys}= @{$root->ObjectRef}{@_newVirtual_keys};
- return $new;
-}
-
-
-#$key= new Win32::TieRegistry "LMachine/System/Disk";
-#$key= new Win32::TieRegistry "//Server1/LMachine/System/Disk";
-#Win32::TieRegistry->new( HKEY_LOCAL_MACHINE, {DELIM=>"/",ACCESS=>KEY_READ} );
-#Win32::TieRegistry->new( [ HKEY_LOCAL_MACHINE, ".../..." ], {DELIM=>$DELIM} );
-#$key->new( ... );
-
-use vars qw( @new_Opts %new_Opts );
-@new_Opts= qw(Access Delimiter);
-@new_Opts{@new_Opts}= (1) x @new_Opts;
-
-sub new
-{
- my $this= shift( @_ );
- $this= tied(%$this) if ref($this) && tied(%$this);
- if( ! ref($this) ) {
- no strict "refs";
- my $self= ${"${this}::Registry"};
- croak "${this}->new failed since ${PACK}::new sees that ",
- "\$${this}::Registry is not an object."
- if ! ref($self);
- $this= $self->Clone;
- }
- my( $subKey, $opts )= @_;
- my $delim= "";
- my $dlen;
- my $sam;
- my $subPath;
- if( @_ < 1 || 2 < @_
- || 2 == @_ && "HASH" ne ref($opts) ) {
- croak "Usage: \$obj= ${PACK}->new( \$subKey, { OPT=>VAL,... } );\n",
- " options: @new_Opts\nCalled";
- }
- if( defined($opts) ) {
- my @err= grep( ! $new_Opts{$_}, keys(%$opts) );
- @err and die "${PACK}->new: Invalid options (@err)";
- }
- $delim= "$opts->{Delimiter}" if defined($opts->{Delimiter});
- $delim= $this->Delimiter if "" eq $delim;
- $dlen= length($delim);
- $sam= defined($opts->{Access}) ? $opts->{Access} : $this->Access;
- $sam= _constant($sam,"key access type") if $sam =~ /^KEY_/;
- if( "ARRAY" eq ref($subKey) ) {
- $subPath= $subKey;
- if( "NONE" eq $this->Handle && @$subPath ) {
- ( $this, $subPath )= $this->_rootKey( $subPath );
- }
- } elsif( $delim x 2 eq substr($subKey,0,2*$dlen) ) {
- my $path= $this->_split( substr($subKey,2*$dlen), $delim );
- my $mach= shift(@$path);
- if( ! @$path ) {
- return $this->_newVirtual( $path, $Registry,
- {MACHINE=>$mach,DELIM=>$delim,ACCESS=>$sam} );
- }
- ( $this, $subPath )= $this->_connect( $mach, $path );
- return () if ! defined($this);
- if( 0 == @$subPath ) {
- $this->Delimiter( $delim );
- return $this;
- }
- } elsif( $delim eq substr($subKey,0,$dlen) ) {
- ( $this, $subPath )= $this->_rootKey( substr($subKey,$dlen), $delim );
- } elsif( "NONE" eq $this->Handle && "" ne $subKey ) {
- my( $mach )= $this->Machine;
- if( $mach ) {
- ( $this, $subPath )= $this->_connect( $mach, $subKey );
- } else {
- ( $this, $subPath )= $this->_rootKey( $subKey, $delim );
- }
- } else {
- $subPath= $this->_split( $subKey, $delim );
- }
- return () unless defined($this);
- if( 0 == @$subPath && "NONE" eq $this->Handle ) {
- return $this->_newVirtual( $this->_Path, $this,
- { DELIM=>$delim, ACCESS=>$sam } );
- }
- my $self= $this->_open( $subPath, $sam );
- return () unless defined($self);
- $self->Delimiter( $delim );
- return $self;
-}
-
-
-sub Open
-{
- my $self= shift(@_);
- my $tied= ref($self) && tied(%$self);
- $self= tied(%$self) if $tied;
- $self= $self->new( @_ );
- $self= $self->TiedRef if defined($self) && $tied;
- return $self;
-}
-
-
-sub Clone
-{
- my $self= shift( @_ );
- my $new= $self->Open("");
- return $new;
-}
-
-
-{ my @flush;
- sub Flush
- {
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my( $flush )= @_;
- @_ and croak "Usage: \$key->Flush( \$bFlush );";
- return 0 if "NONE" eq $self->Handle;
- @flush= qw( VALUES SUBKEYS SUBCLASSES SUBTIMES MEMBERS Class
- CntSubKeys CntValues MaxSubKeyLen MaxSubClassLen
- MaxValNameLen MaxValDataLen SecurityLen LastWrite PREVIDX )
- unless @flush;
- delete( @$self{@flush} );
- if( defined($flush) && $flush ) {
- return $self->RegFlushKey();
- } else {
- return 1;
- }
- }
-}
-
-
-sub _DualVal
-{
- my( $hRef, $num )= @_;
- if( $_SetDualVar && $$hRef{$num} ) {
- &SetDualVar( $num, "$$hRef{$num}", 0+$num );
- }
- return $num;
-}
-
-
-use vars qw( @_RegDataTypes %_RegDataTypes );
-@_RegDataTypes= qw( REG_SZ REG_EXPAND_SZ REG_BINARY REG_LINK REG_MULTI_SZ
- REG_DWORD_LITTLE_ENDIAN REG_DWORD_BIG_ENDIAN REG_DWORD
- REG_RESOURCE_LIST REG_FULL_RESOURCE_DESCRIPTOR
- REG_RESOURCE_REQUIREMENTS_LIST REG_NONE );
-# Make sure that REG_DWORD appears _after_ other REG_DWORD_*
-# items above and that REG_NONE appears _last_.
-foreach( @_RegDataTypes ) {
- $_RegDataTypes{Win32API::Registry::constant($_,0)}= $_;
-}
-
-sub GetValue
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- 1 == @_ or croak "Usage: (\$data,\$type)= \$key->GetValue('ValName');";
- my( $valName )= @_;
- my( $valType, $valData, $dLen )= (0,"",0);
- return () if "NONE" eq $self->Handle;
- $self->RegQueryValueEx( $valName, [], $valType, $valData,
- $dLen= ( defined($self->{MaxValDataLen}) ? $self->{MaxValDataLen} : 0 )
- ) or return ();
- if( REG_DWORD == $valType ) {
- my $val= unpack("L",$valData);
- $valData= sprintf "0x%08.8lX", $val if $self->DWordsToHex;
- &SetDualVar( $valData, $valData, $val ) if $self->DualBinVals
- } elsif( REG_BINARY == $valType && length($valData) <= 4 ) {
- &SetDualVar( $valData, $valData, hex reverse unpack("h*",$valData) )
- if $self->DualBinVals;
- } elsif( ( REG_SZ == $valType || REG_EXPAND_SZ == $valType )
- && $self->FixSzNulls ) {
- substr($valData,-1)= "" if "\0" eq substr($valData,-1);
- } elsif( REG_MULTI_SZ == $valType && $self->SplitMultis ) {
- ## $valData =~ s/\0\0$//; # Why does this often fail??
- substr($valData,-2)= "" if "\0\0" eq substr($valData,-2);
- $valData= [ split( /\0/, $valData, -1 ) ]
- }
- if( ! wantarray ) {
- return $valData;
- } elsif( ! $self->DualTypes ) {
- return( $valData, $valType );
- } else {
- return( $valData, _DualVal( \%_RegDataTypes, $valType ) );
- }
-}
-
-
-sub _ErrNum
-{
- # return $^E;
- return Win32::GetLastError();
-}
-
-
-sub _ErrMsg
-{
- # return $^E;
- return Win32::FormatMessage( Win32::GetLastError() );
-}
-
-sub _Err
-{
- my $err;
- # return $^E;
- return _ErrMsg if ! $_SetDualVar;
- return &SetDualVar( $err, _ErrMsg, _ErrNum );
-}
-
-sub _NoMoreItems
-{
- return
- $_NoMoreItems =~ /^\d/
- ? _ErrNum == $_NoMoreItems
- : _ErrMsg =~ /$_NoMoreItems/io;
-}
-
-
-sub _FileNotFound
-{
- return
- $_FileNotFound =~ /^\d/
- ? _ErrNum == $_FileNotFound
- : _ErrMsg =~ /$_FileNotFound/io;
-}
-
-
-sub _TooSmall
-{
- return
- $_TooSmall =~ /^\d/
- ? _ErrNum == $_TooSmall
- : _ErrMsg =~ /$_TooSmall/io;
-}
-
-
-sub _MoreData
-{
- return
- $_MoreData =~ /^\d/
- ? _ErrNum == $_MoreData
- : _ErrMsg =~ /$_MoreData/io;
-}
-
-
-sub _enumValues
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my( @names )= ();
- my $pos= 0;
- my $name= "";
- my $nlen= 1+$self->Information("MaxValNameLen");
- while( $self->RegEnumValue($pos++,$name,my $nlen1=$nlen,[],[],[],[]) ) {
- #RegEnumValue modifies $nlen1
- push( @names, $name );
- }
- if( ! _NoMoreItems() ) {
- return ();
- }
- $self->{VALUES}= \@names;
- return 1;
-}
-
-
-sub ValueNames
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- @_ and croak "Usage: \@names= \$key->ValueNames;";
- $self->_enumValues unless $self->{VALUES};
- return @{$self->{VALUES}};
-}
-
-
-sub _enumSubKeys
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my( @subkeys, @classes, @times )= ();
- my $pos= 0;
- my( $subkey, $class, $time )= ("","","");
- my( $namSiz, $clsSiz )= $self->Information(
- qw( MaxSubKeyLen MaxSubClassLen ));
- $namSiz++; $clsSiz++;
- my $namSiz1 = $namSiz;
- while( $self->RegEnumKeyEx(
- $pos++, $subkey, $namSiz, [], $class, $clsSiz, $time ) ) {
- push( @subkeys, $subkey );
- push( @classes, $class );
- push( @times, $time );
- $namSiz = $namSiz1; #RegEnumKeyEx modifies $namSiz
- }
- if( ! _NoMoreItems() ) {
- return ();
- }
- $self->{SUBKEYS}= \@subkeys;
- $self->{SUBCLASSES}= \@classes;
- $self->{SUBTIMES}= \@times;
- return 1;
-}
-
-
-sub SubKeyNames
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- @_ and croak "Usage: \@names= \$key->SubKeyNames;";
- $self->_enumSubKeys unless $self->{SUBKEYS};
- return @{$self->{SUBKEYS}};
-}
-
-
-sub SubKeyClasses
-{
- my $self= shift(@_);
- @_ and croak "Usage: \@classes= \$key->SubKeyClasses;";
- $self->_enumSubKeys unless $self->{SUBCLASSES};
- return @{$self->{SUBCLASSES}};
-}
-
-
-sub SubKeyTimes
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- @_ and croak "Usage: \@times= \$key->SubKeyTimes;";
- $self->_enumSubKeys unless $self->{SUBTIMES};
- return @{$self->{SUBTIMES}};
-}
-
-
-sub _MemberNames
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- @_ and croak "Usage: \$arrayRef= \$key->_MemberNames;";
- if( ! $self->{MEMBERS} ) {
- $self->_enumValues unless $self->{VALUES};
- $self->_enumSubKeys unless $self->{SUBKEYS};
- my( @members )= ( map( $_.$self->{DELIM}, @{$self->{SUBKEYS}} ),
- map( $self->{DELIM}.$_, @{$self->{VALUES}} ) );
- $self->{MEMBERS}= \@members;
- }
- return $self->{MEMBERS};
-}
-
-
-sub _MembersHash
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- @_ and croak "Usage: \$hashRef= \$key->_MembersHash;";
- if( ! $self->{MEMBHASH} ) {
- my $aRef= $self->_MemberNames;
- $self->{MEMBHASH}= {};
- @{$self->{MEMBHASH}}{@$aRef}= (1) x @$aRef;
- }
- return $self->{MEMBHASH};
-}
-
-
-sub MemberNames
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- @_ and croak "Usage: \@members= \$key->MemberNames;";
- return @{$self->_MemberNames};
-}
-
-
-sub Information
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my( $time, $nkeys, $nvals, $xsec, $xkey, $xcls, $xname, $xdata )=
- ("",0,0,0,0,0,0,0);
- my $clen= 8;
- if( ! $self->RegQueryInfoKey( [], [], $nkeys, $xkey, $xcls,
- $nvals, $xname, $xdata, $xsec, $time ) ) {
- return ();
- }
- if( defined($self->{Class}) ) {
- $clen= length($self->{Class});
- } else {
- $self->{Class}= "";
- }
- while( ! $self->RegQueryInfoKey( $self->{Class}, $clen,
- [],[],[],[],[],[],[],[],[])
- && _MoreData ) {
- $clen *= 2;
- }
- my( %info );
- @info{ qw( LastWrite CntSubKeys CntValues SecurityLen
- MaxValDataLen MaxSubKeyLen MaxSubClassLen MaxValNameLen )
- }= ( $time, $nkeys, $nvals, $xsec,
- $xdata, $xkey, $xcls, $xname );
- if( @_ ) {
- my( %check );
- @check{keys(%info)}= keys(%info);
- my( @err )= grep( ! $check{$_}, @_ );
- if( @err ) {
- croak "${PACK}::Information- Invalid info requested (@err)";
- }
- return @info{@_};
- } else {
- return %info;
- }
-}
-
-
-sub Delimiter
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- $self= $RegObj unless ref($self);
- my( $oldDelim )= $self->{DELIM};
- if( 1 == @_ && "" ne "$_[0]" ) {
- delete $self->{MEMBERS};
- delete $self->{MEMBHASH};
- $self->{DELIM}= "$_[0]";
- } elsif( 0 != @_ ) {
- croak "Usage: \$oldDelim= \$key->Delimiter(\$newDelim);";
- }
- return $oldDelim;
-}
-
-
-sub Handle
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- @_ and croak "Usage: \$handle= \$key->Handle;";
- $self= $RegObj unless ref($self);
- return $self->{HANDLE};
-}
-
-
-sub Path
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- @_ and croak "Usage: \$path= \$key->Path;";
- my $delim= $self->{DELIM};
- $self= $RegObj unless ref($self);
- if( "" eq $self->{MACHINE} ) {
- return( $delim . join( $delim, @{$self->{PATH}} ) . $delim );
- } else {
- return( $delim x 2
- . join( $delim, $self->{MACHINE}, @{$self->{PATH}} )
- . $delim );
- }
-}
-
-
-sub _Path
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- @_ and croak "Usage: \$arrRef= \$key->_Path;";
- $self= $RegObj unless ref($self);
- return $self->{PATH};
-}
-
-
-sub Machine
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- @_ and croak "Usage: \$machine= \$key->Machine;";
- $self= $RegObj unless ref($self);
- return $self->{MACHINE};
-}
-
-
-sub Access
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- @_ and croak "Usage: \$access= \$key->Access;";
- $self= $RegObj unless ref($self);
- return $self->{ACCESS};
-}
-
-
-sub OS_Delimiter
-{
- my $self= shift(@_);
- @_ and croak "Usage: \$backslash= \$key->OS_Delimiter;";
- return $self->{OS_DELIM};
-}
-
-
-sub _Roots
-{
- my $self= shift(@_);
- $self= tied(%$self) if ref($self) && tied(%$self);
- @_ and croak "Usage: \$varName= \$key->_Roots;";
- $self= $RegObj unless ref($self);
- return $self->{ROOTS};
-}
-
-
-sub Roots
-{
- my $self= shift(@_);
- $self= tied(%$self) if ref($self) && tied(%$self);
- @_ and croak "Usage: \$hashRef= \$key->Roots;";
- $self= $RegObj unless ref($self);
- return eval "\\%$self->{ROOTS}";
-}
-
-
-sub TIEHASH
-{
- my( $this )= shift(@_);
- $this= tied(%$this) if ref($this) && tied(%$this);
- my( $key )= @_;
- if( 1 == @_ && ref($key) && "$key" =~ /=/ ) {
- return $key; # $key is already an object (blessed reference).
- }
- return $this->new( @_ );
-}
-
-
-sub Tie
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my( $hRef )= @_;
- if( 1 != @_ || ! ref($hRef) || "$hRef" !~ /(^|=)HASH\(/ ) {
- croak "Usage: \$key->Tie(\\\%hash);";
- }
- return tie %$hRef, ref($self), $self;
-}
-
-
-sub TiedRef
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my $hRef= @_ ? shift(@_) : {};
- return () if ! defined($self);
- $self->Tie($hRef);
- bless $hRef, ref($self);
- return $hRef;
-}
-
-
-sub _Flags
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my $oldFlags= $self->{FLAGS};
- if( 1 == @_ ) {
- $self->{FLAGS}= shift(@_);
- } elsif( 0 != @_ ) {
- croak "Usage: \$oldBits= \$key->_Flags(\$newBits);";
- }
- return $oldFlags;
-}
-
-
-sub ArrayValues
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my $oldFlag= $Flag_ArrVal == ( $Flag_ArrVal & $self->{FLAGS} );
- if( 1 == @_ ) {
- my $bool= shift(@_);
- if( $bool ) {
- $self->{FLAGS} |= $Flag_ArrVal;
- } else {
- $self->{FLAGS} &= ~( $Flag_ArrVal | $Flag_TieVal );
- }
- } elsif( 0 != @_ ) {
- croak "Usage: \$oldBool= \$key->ArrayValues(\$newBool);";
- }
- return $oldFlag;
-}
-
-
-sub TieValues
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my $oldFlag= $Flag_TieVal == ( $Flag_TieVal & $self->{FLAGS} );
- if( 1 == @_ ) {
- my $bool= shift(@_);
- if( $bool ) {
- croak "${PACK}->TieValues cannot be enabled with this version";
- $self->{FLAGS} |= $Flag_TieVal;
- } else {
- $self->{FLAGS} &= ~$Flag_TieVal;
- }
- } elsif( 0 != @_ ) {
- croak "Usage: \$oldBool= \$key->TieValues(\$newBool);";
- }
- return $oldFlag;
-}
-
-
-sub FastDelete
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my $oldFlag= $Flag_FastDel == ( $Flag_FastDel & $self->{FLAGS} );
- if( 1 == @_ ) {
- my $bool= shift(@_);
- if( $bool ) {
- $self->{FLAGS} |= $Flag_FastDel;
- } else {
- $self->{FLAGS} &= ~$Flag_FastDel;
- }
- } elsif( 0 != @_ ) {
- croak "Usage: \$oldBool= \$key->FastDelete(\$newBool);";
- }
- return $oldFlag;
-}
-
-
-sub SplitMultis
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my $oldFlag= $Flag_Split == ( $Flag_Split & $self->{FLAGS} );
- if( 1 == @_ ) {
- my $bool= shift(@_);
- if( $bool ) {
- $self->{FLAGS} |= $Flag_Split;
- } else {
- $self->{FLAGS} &= ~$Flag_Split;
- }
- } elsif( 0 != @_ ) {
- croak "Usage: \$oldBool= \$key->SplitMultis(\$newBool);";
- }
- return $oldFlag;
-}
-
-
-sub DWordsToHex
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my $oldFlag= $Flag_HexDWord == ( $Flag_HexDWord & $self->{FLAGS} );
- if( 1 == @_ ) {
- my $bool= shift(@_);
- if( $bool ) {
- $self->{FLAGS} |= $Flag_HexDWord;
- } else {
- $self->{FLAGS} &= ~$Flag_HexDWord;
- }
- } elsif( 0 != @_ ) {
- croak "Usage: \$oldBool= \$key->DWordsToHex(\$newBool);";
- }
- return $oldFlag;
-}
-
-
-sub FixSzNulls
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my $oldFlag= $Flag_FixNulls == ( $Flag_FixNulls & $self->{FLAGS} );
- if( 1 == @_ ) {
- my $bool= shift(@_);
- if( $bool ) {
- $self->{FLAGS} |= $Flag_FixNulls;
- } else {
- $self->{FLAGS} &= ~$Flag_FixNulls;
- }
- } elsif( 0 != @_ ) {
- croak "Usage: \$oldBool= \$key->FixSzNulls(\$newBool);";
- }
- return $oldFlag;
-}
-
-
-sub DualTypes
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my $oldFlag= $Flag_DualTyp == ( $Flag_DualTyp & $self->{FLAGS} );
- if( 1 == @_ ) {
- my $bool= shift(@_);
- if( $bool ) {
- croak "${PACK}->DualTypes cannot be enabled since ",
- "SetDualVar module not installed"
- unless $_SetDualVar;
- $self->{FLAGS} |= $Flag_DualTyp;
- } else {
- $self->{FLAGS} &= ~$Flag_DualTyp;
- }
- } elsif( 0 != @_ ) {
- croak "Usage: \$oldBool= \$key->DualTypes(\$newBool);";
- }
- return $oldFlag;
-}
-
-
-sub DualBinVals
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my $oldFlag= $Flag_DualBin == ( $Flag_DualBin & $self->{FLAGS} );
- if( 1 == @_ ) {
- my $bool= shift(@_);
- if( $bool ) {
- croak "${PACK}->DualBinVals cannot be enabled since ",
- "SetDualVar module not installed"
- unless $_SetDualVar;
- $self->{FLAGS} |= $Flag_DualBin;
- } else {
- $self->{FLAGS} &= ~$Flag_DualBin;
- }
- } elsif( 0 != @_ ) {
- croak "Usage: \$oldBool= \$key->DualBinVals(\$newBool);";
- }
- return $oldFlag;
-}
-
-
-sub GetOptions
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my( $opt, $meth );
- if( ! @_ || 1 == @_ && "HASH" eq ref($_[0]) ) {
- my $href= @_ ? $_[0] : {};
- foreach $opt ( grep !/^Allow/, @_opt_subs ) {
- $meth= $_opt_subs{$opt};
- $href->{$opt}= $self->$meth();
- }
- return @_ ? $self : $href;
- }
- my @old;
- foreach $opt ( @_ ) {
- $meth= $_opt_subs{$opt};
- if( defined $meth ) {
- if( $opt eq "AllowLoad" || $opt eq "AllowSave" ) {
- croak "${PACK}->GetOptions: Getting current setting of $opt ",
- "not supported in this release";
- }
- push( @old, $self->$meth() );
- } else {
- croak "${PACK}->GetOptions: Invalid option ($opt) ",
- "not one of ( ", join(" ",grep !/^Allow/, @_opt_subs), " )";
- }
- }
- return wantarray ? @old : $old[-1];
-}
-
-
-sub SetOptions
-{
- my $self= shift(@_);
- # Don't get object if hash ref so "ref" returns original ref.
- my( $opt, $meth, @old );
- while( @_ ) {
- $opt= shift(@_);
- $meth= $_opt_subs{$opt};
- if( ! @_ ) {
- croak "${PACK}->SetOptions: Option value missing ",
- "after option name ($opt)";
- } elsif( defined $meth ) {
- push( @old, $self->$meth( shift(@_) ) );
- } elsif( $opt eq substr("reference",0,length($opt)) ) {
- shift(@_) if @_;
- push( @old, $self );
- } else {
- croak "${PACK}->SetOptions: Invalid option ($opt) ",
- "not one of ( @_opt_subs )";
- }
- }
- return wantarray ? @old : $old[-1];
-}
-
-
-sub _parseTiedEnt
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my $ent= shift(@_);
- my $delim= shift(@_);
- my $dlen= length( $delim );
- my $parent= @_ ? shift(@_) : 0;
- my $off;
- if( $delim x 2 eq substr($ent,0,2*$dlen) && "NONE" eq $self->Handle ) {
- if( 0 <= ( $off= index( $ent, $delim x 2, 2*$dlen ) ) ) {
- return( substr( $ent, 0, $off ), substr( $ent, 2*$dlen+$off ) );
- } elsif( $delim eq substr($ent,-$dlen) ) {
- return( substr($ent,0,-$dlen) );
- } elsif( 2*$dlen <= ( $off= rindex( $ent, $delim ) ) ) {
- return( substr( $ent, 0, $off ),
- undef, substr( $ent, $dlen+$off ) );
- } elsif( $parent ) {
- return();
- } else {
- return( $ent );
- }
- } elsif( $delim eq substr($ent,0,$dlen) && "NONE" ne $self->Handle ) {
- return( undef, substr($ent,$dlen) );
- } elsif( $self->{MEMBERS} && $self->_MembersHash->{$ent} ) {
- return( substr($ent,0,-$dlen) );
- } elsif( 0 <= ( $off= index( $ent, $delim x 2 ) ) ) {
- return( substr( $ent, 0, $off ), substr( $ent, 2*$dlen+$off ) );
- } elsif( $delim eq substr($ent,-$dlen) ) {
- if( $parent
- && 0 <= ( $off= rindex( $ent, $delim, length($ent)-2*$dlen ) ) ) {
- return( substr($ent,0,$off),
- undef, undef, substr($ent,$dlen+$off,-$dlen) );
- } else {
- return( substr($ent,0,-$dlen) );
- }
- } elsif( 0 <= ( $off= rindex( $ent, $delim ) ) ) {
- return(
- substr( $ent, 0, $off ), undef, substr( $ent, $dlen+$off ) );
- } else {
- return( undef, undef, $ent );
- }
-}
-
-
-sub _FetchValue
-{
- my $self= shift( @_ );
- my( $val, $createKey )= @_;
- my( $data, $type );
- if( ( $data, $type )= $self->GetValue( $val ) ) {
- return $self->ArrayValues ? [ $data, $type ]
- : wantarray ? ( $data, $type )
- : $data;
- } elsif( $createKey and $data= $self->new($val) ) {
- return $data->TiedRef;
- } else {
- return ();
- }
-}
-
-
-sub FETCH
-{
- my $self= shift(@_);
- my $ent= shift(@_);
- my $delim= $self->Delimiter;
- my( $key, $val, $ambig )= $self->_parseTiedEnt( $ent, $delim, 0 );
- my $sub;
- if( defined($key) ) {
- if( defined($self->{MEMBHASH})
- && $self->{MEMBHASH}->{$key.$delim}
- && 0 <= index($key,$delim) ) {
- return ()
- unless $sub= $self->new( $key,
- {"Delimiter"=>$self->OS_Delimiter} );
- $sub->Delimiter($delim);
- } else {
- return ()
- unless $sub= $self->new( $key );
- }
- } else {
- $sub= $self;
- }
- if( defined($val) ) {
- return $sub->_FetchValue( $val );
- } elsif( ! defined($ambig) ) {
- return $sub->TiedRef;
- } elsif( defined($key) ) {
- return $sub->FETCH( $ambig );
- } else {
- return $sub->_FetchValue( $ambig, "" ne $ambig );
- }
-}
-
-
-sub _FetchOld
-{
- my( $self, $key )= @_;
- my $old= $self->FETCH($key);
- if( $old ) {
- my $copy= {};
- %$copy= %$old;
- return $copy;
- }
- # return $^E;
- return _Err;
-}
-
-
-sub DELETE
-{
- my $self= shift(@_);
- my $ent= shift(@_);
- my $delim= $self->Delimiter;
- my( $key, $val, $ambig, $subkey )= $self->_parseTiedEnt( $ent, $delim, 1 );
- my $sub;
- my $fast= defined(wantarray) ? $self->FastDelete : 2;
- my $old= 1; # Value returned if FastDelete is set.
- if( defined($key)
- && ( defined($val) || defined($ambig) || defined($subkey) ) ) {
- return ()
- unless $sub= $self->new( $key );
- } else {
- $sub= $self;
- }
- if( defined($val) ) {
- $old= $sub->GetValue($val) || _Err unless 2 <= $fast;
- $sub->RegDeleteValue( $val );
- } elsif( defined($subkey) ) {
- $old= $sub->_FetchOld( $subkey.$delim ) unless $fast;
- $sub->RegDeleteKey( $subkey );
- } elsif( defined($ambig) ) {
- if( defined($key) ) {
- $old= $sub->DELETE($ambig);
- } else {
- $old= $sub->GetValue($ambig) || _Err unless 2 <= $fast;
- if( defined( $old ) ) {
- $sub->RegDeleteValue( $ambig );
- } else {
- $old= $sub->_FetchOld( $ambig.$delim ) unless $fast;
- $sub->RegDeleteKey( $ambig );
- }
- }
- } elsif( defined($key) ) {
- $old= $sub->_FetchOld( $key.$delim ) unless $fast;
- $sub->RegDeleteKey( $key );
- } else {
- croak "${PACK}->DELETE: Key ($ent) can never be deleted";
- }
- return $old;
-}
-
-
-sub SetValue
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- my $name= shift(@_);
- my $data= shift(@_);
- my( $type )= @_;
- my $size;
- if( ! defined($type) ) {
- if( "ARRAY" eq ref($data) ) {
- croak "${PACK}->SetValue: Value is array reference but ",
- "no data type given"
- unless 2 == @$data;
- ( $data, $type )= @$data;
- } else {
- $type= REG_SZ;
- }
- }
- $type= _constant($type,"registry value data type") if $type =~ /^REG_/;
- if( REG_MULTI_SZ == $type && "ARRAY" eq ref($data) ) {
- $data= join( "\0", @$data ) . "\0\0";
- ## $data= pack( "a*" x (1+@$data), map( $_."\0", @$data, "" ) );
- } elsif( ( REG_SZ == $type || REG_EXPAND_SZ == $type )
- && $self->FixSzNulls ) {
- $data .= "\0" unless "\0" eq substr($data,0,-1);
- } elsif( REG_DWORD == $type && $data =~ /^0x[0-9a-fA-F]{3,}$/ ) {
- $data= pack( "L", hex($data) );
- # We could to $data=pack("L",$data) for REG_DWORD but I see
- # no nice way to always distinguish when to do this or not.
- }
- return $self->RegSetValueEx( $name, 0, $type, $data, length($data) );
-}
-
-
-sub StoreKey
-{
- my $this= shift(@_);
- $this= tied(%$this) if ref($this) && tied(%$this);
- my $subKey= shift(@_);
- my $data= shift(@_);
- my $ent;
- my $self;
- if( ! ref($data) || "$data" !~ /(^|=)HASH/ ) {
- croak "${PACK}->StoreKey: For ", $this->Path.$subKey, ",\n",
- " subkey data must be a HASH reference";
- }
- if( defined( $$data{""} ) && "HASH" eq ref($$data{""}) ) {
- $self= $this->CreateKey( $subKey, delete $$data{""} );
- } else {
- $self= $this->CreateKey( $subKey );
- }
- return () if ! defined($self);
- foreach $ent ( keys(%$data) ) {
- return ()
- unless $self->STORE( $ent, $$data{$ent} );
- }
- return $self;
-}
-
-
-# = { "" => {OPT=>VAL}, "val"=>[], "key"=>{} } creates a new key
-# = "string" creates a new REG_SZ value
-# = [ data, type ] creates a new value
-sub STORE
-{
- my $self= shift(@_);
- my $ent= shift(@_);
- my $data= shift(@_);
- my $delim= $self->Delimiter;
- my( $key, $val, $ambig, $subkey )= $self->_parseTiedEnt( $ent, $delim, 1 );
- my $sub;
- if( defined($key)
- && ( defined($val) || defined($ambig) || defined($subkey) ) ) {
- return ()
- unless $sub= $self->new( $key );
- } else {
- $sub= $self;
- }
- if( defined($val) ) {
- croak "${PACK}->STORE: For ", $sub->Path.$delim.$val, ",\n",
- " value data cannot be a HASH reference"
- if ref($data) && "$data" =~ /(^|=)HASH/;
- $sub->SetValue( $val, $data );
- } elsif( defined($subkey) ) {
- croak "${PACK}->STORE: For ", $sub->Path.$subkey.$delim, ",\n",
- " subkey data must be a HASH reference"
- unless ref($data) && "$data" =~ /(^|=)HASH/;
- $sub->StoreKey( $subkey, $data );
- } elsif( defined($ambig) ) {
- if( ref($data) && "$data" =~ /(^|=)HASH/ ) {
- $sub->StoreKey( $ambig, $data );
- } else {
- $sub->SetValue( $ambig, $data );
- }
- } elsif( defined($key) ) {
- croak "${PACK}->STORE: For ", $sub->Path.$key.$delim, ",\n",
- " subkey data must be a HASH reference"
- unless ref($data) && "$data" =~ /(^|=)HASH/;
- $sub->StoreKey( $key, $data );
- } else {
- croak "${PACK}->STORE: Key ($ent) can never be created nor set";
- }
-}
-
-
-sub EXISTS
-{
- my $self= shift(@_);
- my $ent= shift(@_);
- return defined( $self->FETCH($ent) );
-}
-
-
-sub FIRSTKEY
-{
- my $self= shift(@_);
- my $members= $self->_MemberNames;
- $self->{PREVIDX}= 0;
- return @{$members} ? $members->[0] : undef;
-}
-
-
-sub NEXTKEY
-{
- my $self= shift(@_);
- my $prev= shift(@_);
- my $idx= $self->{PREVIDX};
- my $members= $self->_MemberNames;
- if( ! defined($idx) || $prev ne $members->[$idx] ) {
- $idx= 0;
- while( $idx < @$members && $prev ne $members->[$idx] ) {
- $idx++;
- }
- }
- $self->{PREVIDX}= ++$idx;
- return $members->[$idx];
-}
-
-
-sub DESTROY
-{
- my $self= shift(@_);
- return if tied(%$self);
- my $unload;
- eval { $unload= $self->{UNLOADME}; 1 }
- or return;
- my $debug= $ENV{DEBUG_TIE_REGISTRY};
- if( defined($debug) ) {
- if( 1 < $debug ) {
- my $hand= $self->Handle;
- my $dep= $self->{DEPENDON};
- carp "${PACK} destroying ", $self->Path, " (",
- "NONE" eq $hand ? $hand : sprintf("0x%lX",$hand), ")",
- defined($dep) ? (" [depends on ",$dep->Path,"]") : ();
- } else {
- warn "${PACK} destroying ", $self->Path, ".\n";
- }
- }
- $self->RegCloseKey
- unless "NONE" eq $self->Handle;
- if( defined($unload) ) {
- if( defined($debug) && 1 < $debug ) {
- my( $obj, $subKey, $file )= @$unload;
- warn "Unloading ", $self->Path,
- " (from ", $obj->Path, ", $subKey)...\n";
- }
- $self->UnLoad
- || warn "Couldn't unload ", $self->Path, ": ", _ErrMsg, "\n";
- ## carp "Never unloaded ${PACK}::Load($$unload[2])";
- }
- #delete $self->{DEPENDON};
-}
-
-
-use vars qw( @CreateKey_Opts %CreateKey_Opts %_KeyDispNames );
-@CreateKey_Opts= qw( Access Class Options Delimiter
- Disposition Security Volatile Backup );
-@CreateKey_Opts{@CreateKey_Opts}= (1) x @CreateKey_Opts;
-%_KeyDispNames= ( REG_CREATED_NEW_KEY() => "REG_CREATED_NEW_KEY",
- REG_OPENED_EXISTING_KEY() => "REG_OPENED_EXISTING_KEY" );
-
-sub CreateKey
-{
- my $self= shift(@_);
- my $tied= tied(%$self);
- $self= tied(%$self) if $tied;
- my( $subKey, $opts )= @_;
- my( $sam )= $self->Access;
- my( $delim )= $self->Delimiter;
- my( $class )= "";
- my( $flags )= 0;
- my( $secure )= [];
- my( $garb )= [];
- my( $result )= \$garb;
- my( $handle )= 0;
- if( @_ < 1 || 2 < @_
- || 2 == @_ && "HASH" ne ref($opts) ) {
- croak "Usage: \$new= \$old->CreateKey( \$subKey, {OPT=>VAL,...} );\n",
- " options: @CreateKey_Opts\nCalled";
- }
- if( defined($opts) ) {
- $sam= $opts->{"Access"} if defined($opts->{"Access"});
- $class= $opts->{Class} if defined($opts->{Class});
- $flags= $opts->{Options} if defined($opts->{Options});
- $delim= $opts->{"Delimiter"} if defined($opts->{"Delimiter"});
- $secure= $opts->{Security} if defined($opts->{Security});
- if( defined($opts->{Disposition}) ) {
- "SCALAR" eq ref($opts->{Disposition})
- or croak "${PACK}->CreateKey option `Disposition'",
- " must provide a scalar reference";
- $result= $opts->{Disposition};
- }
- if( 0 == $flags ) {
- $flags |= REG_OPTION_VOLATILE
- if defined($opts->{Volatile}) && $opts->{Volatile};
- $flags |= REG_OPTION_BACKUP_RESTORE
- if defined($opts->{Backup}) && $opts->{Backup};
- }
- }
- my $subPath= ref($subKey) ? $subKey : $self->_split($subKey,$delim);
- $subKey= join( $self->OS_Delimiter, @$subPath );
- $self->RegCreateKeyEx( $subKey, 0, $class, $flags, $sam,
- $secure, $handle, $$result )
- or return ();
- if( ! ref($$result) && $self->DualTypes ) {
- $$result= _DualVal( \%_KeyDispNames, $$result );
- }
- my $new= $self->_new( $handle, [ @{$self->_Path}, @{$subPath} ] );
- $new->{ACCESS}= $sam;
- $new->{DELIM}= $delim;
- $new= $new->TiedRef if $tied;
- return $new;
-}
-
-
-use vars qw( $Load_Cnt @Load_Opts %Load_Opts );
-$Load_Cnt= 0;
-@Load_Opts= qw(NewSubKey);
-@Load_Opts{@Load_Opts}= (1) x @Load_Opts;
-
-sub Load
-{
- my $this= shift(@_);
- my $tied= ref($this) && tied(%$this);
- $this= tied(%$this) if $tied;
- my( $file, $subKey, $opts )= @_;
- if( 2 == @_ && "HASH" eq ref($subKey) ) {
- $opts= $subKey;
- undef $subKey;
- }
- @_ < 1 || 3 < @_ || defined($opts) && "HASH" ne ref($opts)
- and croak "Usage: \$key= ",
- "${PACK}->Load( \$fileName, [\$newSubKey,] {OPT=>VAL...} );\n",
- " options: @Load_Opts @new_Opts\nCalled";
- if( defined($opts) && exists($opts->{NewSubKey}) ) {
- $subKey= delete $opts->{NewSubKey};
- }
- if( ! defined( $subKey ) ) {
- if( "" ne $this->Machine ) {
- ( $this )= $this->_connect( [$this->Machine,"LMachine"] );
- } else {
- ( $this )= $this->_rootKey( "LMachine" ); # Could also be "Users"
- }
- $subKey= "PerlTie:$$." . ++$Load_Cnt;
- }
- $this->RegLoadKey( $subKey, $file )
- or return ();
- my $self= $this->new( $subKey, defined($opts) ? $opts : () );
- if( ! defined( $self ) ) {
- { my $err= Win32::GetLastError();
- #{ local( $^E ); #}
- $this->RegUnLoadKey( $subKey ) or carp
- "Can't unload $subKey from ", $this->Path, ": ", _ErrMsg, "\n";
- Win32::SetLastError($err);
- }
- return ();
- }
- $self->{UNLOADME}= [ $this, $subKey, $file ];
- $self= $self->TiedRef if $tied;
- return $self;
-}
-
-
-sub UnLoad
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- @_ and croak "Usage: \$key->UnLoad;";
- my $unload= $self->{UNLOADME};
- "ARRAY" eq ref($unload)
- or croak "${PACK}->UnLoad called on a key which was not Load()ed";
- my( $obj, $subKey, $file )= @$unload;
- $self->RegCloseKey;
- return Win32API::Registry::RegUnLoadKey( $obj->Handle, $subKey );
-}
-
-
-sub AllowSave
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- return $self->AllowPriv( "SeBackupPrivilege", @_ );
-}
-
-
-sub AllowLoad
-{
- my $self= shift(@_);
- $self= tied(%$self) if tied(%$self);
- return $self->AllowPriv( "SeRestorePrivilege", @_ );
-}
-
-
-# RegNotifyChangeKeyValue( hKey, bWatchSubtree, iNotifyFilter, hEvent, bAsync )
-
-
-sub RegCloseKey { my $self= shift(@_);
- Win32API::Registry::RegCloseKey $self->Handle, @_; }
-sub RegConnectRegistry { my $self= shift(@_);
- Win32API::Registry::RegConnectRegistry @_; }
-sub RegCreateKey { my $self= shift(@_);
- Win32API::Registry::RegCreateKey $self->Handle, @_; }
-sub RegCreateKeyEx { my $self= shift(@_);
- Win32API::Registry::RegCreateKeyEx $self->Handle, @_; }
-sub RegDeleteKey { my $self= shift(@_);
- Win32API::Registry::RegDeleteKey $self->Handle, @_; }
-sub RegDeleteValue { my $self= shift(@_);
- Win32API::Registry::RegDeleteValue $self->Handle, @_; }
-sub RegEnumKey { my $self= shift(@_);
- Win32API::Registry::RegEnumKey $self->Handle, @_; }
-sub RegEnumKeyEx { my $self= shift(@_);
- Win32API::Registry::RegEnumKeyEx $self->Handle, @_; }
-sub RegEnumValue { my $self= shift(@_);
- Win32API::Registry::RegEnumValue $self->Handle, @_; }
-sub RegFlushKey { my $self= shift(@_);
- Win32API::Registry::RegFlushKey $self->Handle, @_; }
-sub RegGetKeySecurity { my $self= shift(@_);
- Win32API::Registry::RegGetKeySecurity $self->Handle, @_; }
-sub RegLoadKey { my $self= shift(@_);
- Win32API::Registry::RegLoadKey $self->Handle, @_; }
-sub RegNotifyChangeKeyValue { my $self= shift(@_);
- Win32API::Registry::RegNotifyChangeKeyValue $self->Handle, @_; }
-sub RegOpenKey { my $self= shift(@_);
- Win32API::Registry::RegOpenKey $self->Handle, @_; }
-sub RegOpenKeyEx { my $self= shift(@_);
- Win32API::Registry::RegOpenKeyEx $self->Handle, @_; }
-sub RegQueryInfoKey { my $self= shift(@_);
- Win32API::Registry::RegQueryInfoKey $self->Handle, @_; }
-sub RegQueryMultipleValues { my $self= shift(@_);
- Win32API::Registry::RegQueryMultipleValues $self->Handle, @_; }
-sub RegQueryValue { my $self= shift(@_);
- Win32API::Registry::RegQueryValue $self->Handle, @_; }
-sub RegQueryValueEx { my $self= shift(@_);
- Win32API::Registry::RegQueryValueEx $self->Handle, @_; }
-sub RegReplaceKey { my $self= shift(@_);
- Win32API::Registry::RegReplaceKey $self->Handle, @_; }
-sub RegRestoreKey { my $self= shift(@_);
- Win32API::Registry::RegRestoreKey $self->Handle, @_; }
-sub RegSaveKey { my $self= shift(@_);
- Win32API::Registry::RegSaveKey $self->Handle, @_; }
-sub RegSetKeySecurity { my $self= shift(@_);
- Win32API::Registry::RegSetKeySecurity $self->Handle, @_; }
-sub RegSetValue { my $self= shift(@_);
- Win32API::Registry::RegSetValue $self->Handle, @_; }
-sub RegSetValueEx { my $self= shift(@_);
- Win32API::Registry::RegSetValueEx $self->Handle, @_; }
-sub RegUnLoadKey { my $self= shift(@_);
- Win32API::Registry::RegUnLoadKey $self->Handle, @_; }
-sub AllowPriv { my $self= shift(@_);
- Win32API::Registry::AllowPriv @_; }
-
-
-# Autoload methods go after =cut, and are processed by the autosplit program.
-
-1;
-
-__END__
-
-=pod
-
-=head1 NAME
-
-Win32::TieRegistry - Manipulate the Win32 Registry
-
-=head1 SYNOPSIS
-
- use Win32::TieRegistry 0.20 ( UseOptionName=>UseOptionValue[,...] );
-
- $Registry->SomeMethodCall(arg1,...);
-
- $subKey= $Registry->{"Key\\SubKey\\"};
- $valueData= $Registry->{"Key\\SubKey\\\\ValueName"};
- $Registry->{"Key\\SubKey\\"}= { "NewSubKey" => {...} };
- $Registry->{"Key\\SubKey\\\\ValueName"}= "NewValueData";
- $Registry->{"\\ValueName"}= [ pack("fmt",$data), REG_DATATYPE ];
-
-=head1 EXAMPLES
-
- use Win32::TieRegistry( Delimiter=>"#", ArrayValues=>0 );
- $pound= $Registry->Delimiter("/");
- $diskKey= $Registry->{"LMachine/System/Disk/"}
- or die "Can't read LMachine/System/Disk key: $^E\n";
- $data= $diskKey->{"/Information"}
- or die "Can't read LMachine/System/Disk//Information value: $^E\n";
- $remoteKey= $Registry->{"//ServerA/LMachine/System/"}
- or die "Can't read //ServerA/LMachine/System/ key: $^E\n";
- $remoteData= $remoteKey->{"Disk//Information"}
- or die "Can't read ServerA's System/Disk//Information value: $^E\n";
- foreach $entry ( keys(%$diskKey) ) {
- ...
- }
- foreach $subKey ( $diskKey->SubKeyNames ) {
- ...
- }
- $diskKey->AllowSave( 1 );
- $diskKey->RegSaveKey( "C:/TEMP/DiskReg", [] );
-
-=head1 DESCRIPTION
-
-The I<Win32::TieRegistry> module lets you manipulate the Registry
-via objects [as in "object oriented"] or via tied hashes. But
-you will probably mostly use a combination reference, that is, a
-reference to a tied hash that has also been made an object so that
-you can mix both access methods [as shown above].
-
-If you did not get this module as part of L<libwin32>, you might
-want to get a recent version of L<libwin32> from CPAN which should
-include this module and the I<Win32API::Registry> module that it
-uses.
-
-Skip to the L<SUMMARY> section if you just want to dive in and start
-using the Registry from Perl.
-
-Accessing and manipulating the registry is extremely simple using
-I<Win32::TieRegistry>. A single, simple expression can return
-you almost any bit of information stored in the Registry.
-I<Win32::TieRegistry> also gives you full access to the "raw"
-underlying API calls so that you can do anything with the Registry
-in Perl that you could do in C. But the "simple" interface has
-been carefully designed to handle almost all operations itself
-without imposing arbitrary limits while providing sensible
-defaults so you can list only the parameters you care about.
-
-But first, an overview of the Registry itself.
-
-=head2 The Registry
-
-The Registry is a forest: a collection of several tree structures.
-The root of each tree is a key. These root keys are identified by
-predefined constants whose names start with "HKEY_". Although all
-keys have a few attributes associated with each [a class, a time
-stamp, and security information], the most important aspect of keys
-is that each can contain subkeys and can contain values.
-
-Each subkey has a name: a string which cannot be blank and cannot
-contain the delimiter character [backslash: C<'\\'>] nor nul
-[C<'\0'>]. Each subkey is also a key and so can contain subkeys
-and values [and has a class, time stamp, and security information].
-
-Each value has a name: a string which B<can> be blank and B<can>
-contain the delimiter character [backslash: C<'\\'>] and any
-character except for null, C<'\0'>. Each value also has data
-associated with it. Each value's data is a contiguous chunk of
-bytes, which is exactly what a Perl string value is so Perl
-strings will usually be used to represent value data.
-
-Each value also has a data type which says how to interpret the
-value data. The primary data types are:
-
-=over
-
-=item REG_SZ
-
-A null-terminated string.
-
-=item REG_EXPAND_SZ
-
-A null-terminated string which contains substrings consisting of a
-percent sign [C<'%'>], an environment variable name, then a percent
-sign, that should be replaced with the value associate with that
-environment variable. The system does I<not> automatically do this
-substitution.
-
-=item REG_BINARY
-
-Some arbitrary binary value. You can think of these as being
-"packed" into a string.
-
-If your system has the L<SetDualVar> module installed,
-the C<DualBinVals()> option wasn't turned off, and you
-fetch a C<REG_BINARY> value of 4 bytes or fewer, then
-you can use the returned value in a numeric context to
-get at the "unpacked" numeric value. See C<GetValue()>
-for more information.
-
-=item REG_MULTI_SZ
-
-Several null-terminated strings concatenated together with an
-extra trailing C<'\0'> at the end of the list. Note that the list
-can include empty strings so use the value's length to determine
-the end of the list, not the first occurrence of C<'\0\0'>.
-It is best to set the C<SplitMultis()> option so I<Win32::TieRegistry>
-will split these values into an array of strings for you.
-
-=item REG_DWORD
-
-A long [4-byte] integer value. These values are expected either
-packed into a 4-character string or as a hex string of B<more than>
-4 characters [but I<not> as a numeric value, unfortunately, as there is
-no sure way to tell a numeric value from a packed 4-byte string that
-just happens to be a string containing a valid numeric value].
-
-How such values are returned depends on the C<DualBinVals()> and
-C<DWordsToHex()> options. See C<GetValue()> for details.
-
-=back
-
-In the underlying Registry calls, most places which take a
-subkey name also allow you to pass in a subkey "path" -- a
-string of several subkey names separated by the delimiter
-character, backslash [C<'\\'>]. For example, doing
-C<RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SYSTEM\\DISK",...)> is much
-like opening the C<"SYSTEM"> subkey of C<HKEY_LOCAL_MACHINE>,
-then opening its C<"DISK"> subkey, then closing the C<"SYSTEM">
-subkey.
-
-All of the I<Win32::TieRegistry> features allow you to use your
-own delimiter in place of the system's delimiter, [C<'\\'>]. In
-most of our examples we will use a forward slash [C<'/'>] as our
-delimiter as it is easier to read and less error prone to use when
-writing Perl code since you have to type two backslashes for each
-backslash you want in a string. Note that this is true even when
-using single quotes -- C<'\\HostName\LMachine\'> is an invalid
-string and must be written as C<'\\\\HostName\\LMachine\\'>.
-
-You can also connect to the registry of other computers on your
-network. This will be discussed more later.
-
-Although the Registry does not have a single root key, the
-I<Win32::TieRegistry> module creates a virtual root key for you
-which has all of the I<HKEY_*> keys as subkeys.
-
-=head2 Tied Hashes Documentation
-
-Before you can use a tied hash, you must create one. One way to
-do that is via:
-
- use Win32::TieRegistry ( TiedHash => '%RegHash' );
-
-which exports a C<%RegHash> variable into your package and ties it
-to the virtual root key of the Registry. An alternate method is:
-
- my %RegHash;
- use Win32::TieRegistry ( TiedHash => \%RegHash );
-
-There are also several ways you can tie a hash variable to any
-other key of the Registry, which are discussed later.
-
-Note that you will most likely use C<$Registry> instead of using
-a tied hash. C<$Registry> is a reference to a hash that has
-been tied to the virtual root of your computer's Registry [as if,
-C<$Registry= \%RegHash>]. So you would use C<$Registry-E<gt>{Key}>
-rather than C<$RegHash{Key}> and use C<keys %{$Registry}> rather
-than C<keys %RegHash>, for example.
-
-For each hash which has been tied to a Registry key, the Perl
-C<keys> function will return a list containing the name of each
-of the key's subkeys with a delimiter character appended to it and
-containing the name of each of the key's values with a delimiter
-prepended to it. For example:
-
- keys( %{ $Registry->{"HKEY_CLASSES_ROOT\\batfile\\"} } )
-
-might yield the following list value:
-
- ( "DefaultIcon\\", # The subkey named "DefaultIcon"
- "shell\\", # The subkey named "shell"
- "shellex\\", # The subkey named "shellex"
- "\\", # The default value [named ""]
- "\\EditFlags" ) # The value named "EditFlags"
-
-For the virtual root key, short-hand subkey names are used as
-shown below. You can use the short-hand name, the regular
-I<HKEY_*> name, or any numeric value to access these keys, but
-the short-hand names are all that will be returned by the C<keys>
-function.
-
-=over
-
-=item "Classes" for HKEY_CLASSES_ROOT
-
-Contains mappings between file name extensions and the uses
-for such files along with configuration information for COM
-[MicroSoft's Common Object Model] objects. Usually a link to
-the C<"SOFTWARE\\Classes"> subkey of the C<HKEY_LOCAL_MACHINE>
-key.
-
-=item "CUser" for HKEY_CURRENT_USER
-
-Contains information specific to the currently logged-in user.
-Mostly software configuration information. Usually a link to
-a subkey of the C<HKEY_USERS> key.
-
-=item "LMachine" for HKEY_LOCAL_MACHINE
-
-Contains all manner of information about the computer.
-
-=item "Users" for HKEY_USERS
-
-Contains one subkey, C<".DEFAULT">, which gets copied to a new
-subkey whenever a new user is added. Also contains a subkey for
-each user of the system, though only those for active users
-[usually only one] are loaded at any given time.
-
-=item "PerfData" for HKEY_PERFORMANCE_DATA
-
-Used to access data about system performance. Access via this key
-is "special" and all but the most carefully constructed calls will
-fail, usually with C<ERROR_INSUFFICIENT_BUFFER>. For example, you
-can't enumerate key names without also enumerating values which
-require huge buffers but the exact buffer size required cannot be
-determined beforehand because C<RegQueryInfoKey()> B<always> fails
-with C<ERROR_INSUFFICIENT_BUFFER> for C<HKEY_PERFORMANCE_DATA> no
-matter how it is called. So it is currently not very useful to
-tie a hash to this key. You can use it to create an object to use
-for making carefully constructed calls to the underlying Reg*()
-routines.
-
-=item "CConfig" for HKEY_CURRENT_CONFIG
-
-Contains minimal information about the computer's current
-configuration that is required very early in the boot process.
-For example, setting for the display adapter such as screen
-resolution and refresh rate are found in here.
-
-=item "DynData" for HKEY_DYN_DATA
-
-Dynamic data. We have found no documentation for this key.
-
-=back
-
-A tied hash is much like a regular hash variable in Perl -- you give
-it a key string inside braces, [C<{> and C<}>], and it gives you
-back a value [or lets you set a value]. For I<Win32::TieRegistry>
-hashes, there are two types of values that will be returned.
-
-=over
-
-=item SubKeys
-
-If you give it a string which represents a subkey, then it will
-give you back a reference to a hash which has been tied to that
-subkey. It can't return the hash itself, so it returns a
-reference to it. It also blesses that reference so that it is
-also an object so you can use it to call method functions.
-
-=item Values
-
-If you give it a string which is a value name, then it will give
-you back a string which is the data for that value. Alternately,
-you can request that it give you both the data value string and
-the data value type [we discuss how to request this later]. In
-this case, it would return a reference to an array where the value
-data string is element C<[0]> and the value data type is element
-C<[1]>.
-
-=back
-
-The key string which you use in the tied hash must be interpreted
-to determine whether it is a value name or a key name or a path
-that combines several of these or even other things. There are
-two simple rules that make this interpretation easy and
-unambiguous:
-
- Put a delimiter after each key name.
- Put a delimiter in front of each value name.
-
-Exactly how the key string will be interpreted is governed by the
-following cases, in the order listed. These cases are designed
-to "do what you mean". Most of the time you won't have to think
-about them, especially if you follow the two simple rules above.
-After the list of cases we give several examples which should be
-clear enough so feel free to skip to them unless you are worried
-about the details.
-
-=over
-
-=item Remote machines
-
-If the hash is tied to the virtual root of the registry [or the
-virtual root of a remote machine's registry], then we treat hash
-key strings which start with the delimiter character specially.
-
-If the hash key string starts with two delimiters in a row, then
-those should be immediately followed by the name of a remote
-machine whose registry we wish to connect to. That can be
-followed by a delimiter and more subkey names, etc. If the
-machine name is not following by anything, then a virtual root
-for the remote machine's registry is created, a hash is tied to
-it, and a reference to that hash it is returned.
-
-=item Hash key string starts with the delimiter
-
-If the hash is tied to a virtual root key, then the leading
-delimiter is ignored. It should be followed by a valid Registry
-root key name [either a short-hand name like C<"LMachine">, an
-I<HKEY_*> value, or a numeric value]. This alternate notation is
-allowed in order to be more consistent with the C<Open()> method
-function.
-
-For all other Registry keys, the leading delimiter indicates
-that the rest of the string is a value name. The leading
-delimiter is stripped and the rest of the string [which can
-be empty and can contain more delimiters] is used as a value
-name with no further parsing.
-
-=item Exact match with direct subkey name followed by delimiter
-
-If you have already called the Perl C<keys> function on the tied
-hash [or have already called C<MemberNames> on the object] and the
-hash key string exactly matches one of the strings returned, then
-no further parsing is done. In other words, if the key string
-exactly matches the name of a direct subkey with a delimiter
-appended, then a reference to a hash tied to that subkey is
-returned [but only if C<keys> or C<MemberNames> has already
-been called for that tied hash].
-
-This is only important if you have selected a delimiter other than
-the system default delimiter and one of the subkey names contains
-the delimiter you have chosen. This rule allows you to deal with
-subkeys which contain your chosen delimiter in their name as long
-as you only traverse subkeys one level at a time and always
-enumerate the list of members before doing so.
-
-The main advantage of this is that Perl code which recursively
-traverses a hash will work on hashes tied to Registry keys even if
-a non-default delimiter has been selected.
-
-=item Hash key string contains two delimiters in a row
-
-If the hash key string contains two [or more] delimiters in a row,
-then the string is split between the first pair of delimiters.
-The first part is interpreted as a subkey name or a path of subkey
-names separated by delimiters and with a trailing delimiter. The
-second part is interpreted as a value name with one leading
-delimiter [any extra delimiters are considered part of the value
-name].
-
-=item Hash key string ends with a delimiter
-
-If the key string ends with a delimiter, then it is treated
-as a subkey name or path of subkey names separated by delimiters.
-
-=item Hash key string contains a delimiter
-
-If the key string contains a delimiter, then it is split after
-the last delimiter. The first part is treated as a subkey name or
-path of subkey names separated by delimiters. The second part
-is ambiguous and is treated as outlined in the next item.
-
-=item Hash key string contains no delimiters
-
-If the hash key string contains no delimiters, then it is ambiguous.
-
-If you are reading from the hash [fetching], then we first use the
-key string as a value name. If there is a value with a matching
-name in the Registry key which the hash is tied to, then the value
-data string [and possibly the value data type] is returned.
-Otherwise, we retry by using the hash key string as a subkey name.
-If there is a subkey with a matching name, then we return a
-reference to a hash tied to that subkey. Otherwise we return
-C<undef>.
-
-If you are writing to the hash [storing], then we use the key
-string as a subkey name only if the value you are storing is a
-reference to a hash value. Otherwise we use the key string as
-a value name.
-
-=back
-
-=head3 Examples
-
-Here are some examples showing different ways of accessing Registry
-information using references to tied hashes:
-
-=over
-
-=item Canonical value fetch
-
- $tip18= $Registry->{"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\"
- . 'Windows\\CurrentVersion\\Explorer\\Tips\\\\18'};
-
-Should return the text of important tip number 18. Note that two
-backslashes, C<"\\">, are required to get a single backslash into
-a Perl double-quoted or single-qouted string. Note that C<"\\">
-is appended to each key name [C<"HKEY_LOCAL_MACHINE"> through
-C<"Tips">] and C<"\\"> is prepended to the value name, C<"18">.
-
-=item Changing your delimiter
-
- $Registry->Delimiter("/");
- $tip18= $Registry->{"HKEY_LOCAL_MACHINE/Software/Microsoft/"
- . 'Windows/CurrentVersion/Explorer/Tips//18'};
-
-This usually makes things easier to read when working in Perl.
-All remaining examples will assume the delimiter has been changed
-as above.
-
-=item Using intermediate keys
-
- $ms= $Registry->{"LMachine/Software/Microsoft/"};
- $tips= $ms->{"Windows/CurrentVersion/Explorer/Tips/"};
- $tip18= $winlogon->{"/18"};
-
-Same as above but opens more keys into the Registry which lets you
-efficiently re-access those intermediate keys. This is slightly
-less efficient if you never reuse those intermediate keys.
-
-=item Chaining in a single statement
-
- $tip18= $Registry->{"LMachine/Software/Microsoft/"}->
- {"Windows/CurrentVersion/Explorer/Tips/"}->{"/18"};
-
-Like above, this creates intermediate key objects then uses
-them to access other data. Once this statement finishes, the
-intermediate key objects are destroyed. Several handles into
-the Registry are opened and closed by this statement so it is
-less efficient but there are times when this will be useful.
-
-=item Even less efficient example of chaining
-
- $tip18= $Registry->{"LMachine/Software/Microsoft"}->
- {"Windows/CurrentVersion/Explorer/Tips"}->{"/18"};
-
-Because we left off the trailing delimiters, I<Win32::TieRegistry>
-doesn't know whether final names, C<"Microsoft"> and C<"Tips">,
-are subkey names or value names. So this statement ends up
-executing the same code as the next one.
-
-=item What the above really does
-
- $tip18= $Registry->{"LMachine/Software/"}->{"Microsoft"}->
- {"Windows/CurrentVersion/Explorer/"}->{"Tips"}->{"/18"};
-
-With more chains to go through, more temporary objects are created
-and later destroyed than in our first chaining example. Also,
-when C<"Microsoft"> is looked up, I<Win32::TieRegistry> first
-tries to open it as a value and fails then tries it as a subkey.
-The same is true for when it looks up C<"Tips">.
-
-=item Getting all of the tips
-
- $tips= $Registry->{"LMachine/Software/Microsoft/"}->
- {"Windows/CurrentVersion/Explorer/Tips/"}
- or die "Can't find the Windows tips: $^E\n";
- foreach( keys %$tips ) {
- print "$_: ", $tips->{$_}, "\n";
- }
-
-First notice that we actually check for failure for the first
-time. We are assuming that the C<"Tips"> key contains no subkeys.
-Otherwise the C<print> statement would show something like
-C<"Win32::TieRegistry=HASH(0xc03ebc)"> for each subkey.
-
-The output from the above code will start something like:
-
- /0: If you don't know how to do something,[...]
-
-=back
-
-=head3 Deleting items
-
-You can use the Perl C<delete> function to delete a value from a
-Registry key or to delete a subkey as long that subkey contains
-no subkeys of its own. See L<More Examples>, below, for more
-information.
-
-=head3 Storing items
-
-You can use the Perl assignment operator [C<=>] to create new
-keys, create new values, or replace values. The values you store
-should be in the same format as the values you would fetch from a
-tied hash. For example, you can use a single assignment statement
-to copy an entire Registry tree. The following statement:
-
- $Registry->{"LMachine/Software/Classes/Tie_Registry/"}=
- $Registry->{"LMachine/Software/Classes/batfile/"};
-
-creates a C<"Tie_Registry"> subkey under the C<"Software\\Classes">
-subkey of the C<HKEY_LOCAL_MACHINE> key. Then it populates it
-with copies of all of the subkeys and values in the C<"batfile">
-subkey and all of its subkeys. Note that you need to have
-called C<$Registry-E<gt>ArrayValues(1)> for the proper value data
-type information to be copied. Note also that this release of
-I<Win32::TieRegistry> does not copy key attributes such as class
-name and security information [this is planned for a future release].
-
-The following statement creates a whole subtree in the Registry:
-
- $Registry->{"LMachine/Software/FooCorp/"}= {
- "FooWriter/" => {
- "/Version" => "4.032",
- "Startup/" => {
- "/Title" => "Foo Writer Deluxe ][",
- "/WindowSize" => [ pack("LL",$wid,$ht), "REG_BINARY" ],
- "/TaskBarIcon" => [ "0x0001", "REG_DWORD" ],
- },
- "Compatibility/" => {
- "/AutoConvert" => "Always",
- "/Default Palette" => "Windows Colors",
- },
- },
- "/License", => "0123-9C8EF1-09-FC",
- };
-
-Note that all but the last Registry key used on the left-hand
-side of the assignment [that is, "LMachine/Software/" but not
-"FooCorp/"] must already exist for this statement to succeed.
-
-By using the leading a trailing delimiters on each subkey name and
-value name, I<Win32::TieRegistry> will tell you if you try to assign
-subkey information to a value or visa-versa.
-
-=head3 More examples
-
-=over
-
-=item Adding a new tip
-
- $tips= $Registry->{"LMachine/Software/Microsoft/"}->
- {"Windows/CurrentVersion/Explorer/Tips/"}
- or die "Can't find the Windows tips: $^E\n";
- $tips{'/186'}= "Be very careful when making changes to the Registry!";
-
-=item Deleting our new tip
-
- $tips= $Registry->{"LMachine/Software/Microsoft/"}->
- {"Windows/CurrentVersion/Explorer/Tips/"}
- or die "Can't find the Windows tips: $^E\n";
- $tip186= delete $tips{'/186'};
-
-Note that Perl's C<delete> function returns the value that was deleted.
-
-=item Adding a new tip differently
-
- $Registry->{"LMachine/Software/Microsoft/" .
- "Windows/CurrentVersion/Explorer/Tips//186"}=
- "Be very careful when making changes to the Registry!";
-
-=item Deleting differently
-
- $tip186= delete $Registry->{"LMachine/Software/Microsoft/Windows/" .
- "CurrentVersion/Explorer/Tips//186"};
-
-Note that this only deletes the tail of what we looked up, the
-C<"186"> value, not any of the keys listed.
-
-=item Deleting a key
-
-WARNING: The following code will delete all information about the
-current user's tip preferences. Actually executing this command
-would probably cause the user to see the Welcome screen the next
-time they log in and may cause more serious problems. This
-statement is shown as an example only and should not be used when
-experimenting.
-
- $tips= delete $Registry->{"CUser/Software/Microsoft/Windows/" .
- "CurrentVersion/Explorer/Tips/"};
-
-This deletes the C<"Tips"> key and the values it contains. The
-C<delete> function will return a reference to a hash [not a tied
-hash] containing the value names and value data that were deleted.
-
-The information to be returned is copied from the Registry into a
-regular Perl hash before the key is deleted. If the key has many
-subkeys, this copying could take a significant amount of memory
-and/or processor time. So you can disable this process by calling
-the C<FastDelete> member function:
-
- $prevSetting= $regKey->FastDelete(1);
-
-which will cause all subsequent delete operations via C<$regKey>
-to simply return a true value if they succeed. This optimization
-is automatically done if you use C<delete> in a void context.
-
-=item Technical notes on deleting
-
-If you use C<delete> to delete a Registry key or value and use
-the return value, then I<Win32::TieRegistry> usually looks up the
-current contents of that key or value so they can be returned if
-the deletion is successful. If the deletion succeeds but the
-attempt to lookup the old contents failed, then the return value
-of C<delete> will be C<$^E> from the failed part of the operation.
-
-=item Undeleting a key
-
- $Registry->{"LMachine/Software/Microsoft/Windows/" .
- "CurrentVersion/Explorer/Tips/"}= $tips;
-
-This adds back what we just deleted. Note that this version of
-I<Win32::TieRegistry> will use defaults for the key attributes
-[such as class name and security] and will not restore the
-previous attributes.
-
-=item Not deleting a key
-
-WARNING: Actually executing the following code could cause
-serious problems. This statement is shown as an example only and
-should not be used when experimenting.
-
- $res= delete $Registry->{"CUser/Software/Microsoft/Windows/"}
- defined($res) || die "Can't delete URL key: $^E\n";
-
-Since the "Windows" key should contain subkeys, that C<delete>
-statement should make no changes to the Registry, return C<undef>,
-and set C<$^E> to "Access is denied".
-
-=item Not deleting again
-
- $tips= $Registry->{"CUser/Software/Microsoft/Windows/" .
- "CurrentVersion/Explorer/Tips/"};
- delete $tips;
-
-The Perl C<delete> function requires that its argument be an
-expression that ends in a hash element lookup [or hash slice],
-which is not the case here. The C<delete> function doesn't
-know which hash $tips came from and so can't delete it.
-
-=back
-
-=head2 Objects Documentation
-
-The following member functions are defined for use on
-I<Win32::TieRegistry> objects:
-
-=over
-
-=item new
-
-The C<new> method creates a new I<Win32::TieRegistry> object.
-C<new> is mostly a synonym for C<Open()> so see C<Open()> below for
-information on what arguments to pass in. Examples:
-
- $machKey= Win32::TieRegistry->new("LMachine")
- or die "Can't access HKEY_LOCAL_MACHINE key: $^E\n";
- $userKey= Win32::TieRegistry->new("CUser")
- or die "Can't access HKEY_CURRENT_USER key: $^E\n";
-
-Note that calling C<new> via a reference to a tied hash returns
-a simple object, not a reference to a tied hash.
-
-=item Open
-
-=item $subKey= $key->Open( $sSubKey, $rhOptions )
-
-The C<Open> method opens a Registry key and returns a new
-I<Win32::TieRegistry> object associated with that Registry key.
-If C<Open> is called via a reference to a tied hash, then C<Open>
-returns another reference to a tied hash. Otherwise C<Open>
-returns a simple object and you should then use C<TiedRef> to get
-a reference to a tied hash.
-
-C<$sSubKey> is a string specifying a subkey to be opened.
-Alternately C<$sSubKey> can be a reference to an array value
-containing the list of increasingly deep subkeys specifying the
-path to the subkey to be opened.
-
-C<$rhOptions> is an optional reference to a hash containing extra
-options. The C<Open> method supports two options, C<"Delimiter">
-and C<"Access">, and C<$rhOptions> should have only have zero or
-more of these strings as keys. See the "Examples" section below
-for more information.
-
-The C<"Delimiter"> option specifies what string [usually a single
-character] will be used as the delimiter to be appended to subkey
-names and prepended to value names. If this option is not specified,
-the new key [C<$subKey>] inherits the delimiter of the old key
-[C<$key>].
-
-The C<"Access"> option specifies what level of access to the
-Registry key you wish to have once it has been opened. If this
-option is not specified, the new key [C<$subKey>] is opened with
-the same access level used when the old key [C<$key>] was opened.
-The virtual root of the Registry pretends it was opened with
-access C<KEY_READ()|KEY_WRITE()> so this is the default access when
-opening keys directory via C<$Registry>. If you don't plan on
-modifying a key, you should open it with C<KEY_READ> access as
-you may not have C<KEY_WRITE> access to it or some of its subkeys.
-
-If the C<"Access"> option value is a string that starts with
-C<"KEY_">, then it should match B<one> of the predefined access
-levels [probably C<"KEY_READ">, C<"KEY_WRITE">, or
-C<"KEY_ALL_ACCESS">] exported by the I<Win32API::Registry> module.
-Otherwise, a numeric value is expected. For maximum flexibility,
-include C<use Win32::TieRegistry qw(:KEY_);>, for example, near
-the top of your script so you can specify more complicated access
-levels such as C<KEY_READ()|KEY_WRITE()>.
-
-If C<$sSubKey> does not begin with the delimiter [or C<$sSubKey>
-is an array reference], then the path to the subkey to be opened
-will be relative to the path of the original key [C<$key>]. If
-C<$sSubKey> begins with a single delimiter, then the path to the
-subkey to be opened will be relative to the virtual root of the
-Registry on whichever machine the original key resides. If
-C<$sSubKey> begins with two consecutive delimiters, then those
-must be followed by a machine name which causes the C<Connect()>
-method function to be called.
-
-Examples:
-
- $machKey= $Registry->Open( "LMachine", {Access=>KEY_READ(),Delimiter=>"/"} )
- or die "Can't open HKEY_LOCAL_MACHINE key: $^E\n";
- $swKey= $machKey->Open( "Software" );
- $logonKey= $swKey->Open( "Microsoft/Windows NT/CurrentVersion/Winlogon/" );
- $NTversKey= $swKey->Open( ["Microsoft","Windows NT","CurrentVersion"] );
- $versKey= $swKey->Open( qw(Microsoft Windows CurrentVersion) );
-
- $remoteKey= $Registry->Open( "//HostA/LMachine/System/", {Delimiter=>"/"} )
- or die "Can't connect to HostA or can't open subkey: $^E\n";
-
-=item Clone
-
-=item $copy= $key->Clone
-
-Creates a new object that is associated with the same Registry key
-as the invoking object.
-
-=item Connect
-
-=item $remoteKey= $Registry->Connect( $sMachineName, $sKeyPath, $rhOptions )
-
-The C<Connect> method connects to the Registry of a remote machine,
-and opens a key within it, then returns a new I<Win32::TieRegistry>
-object associated with that remote Registry key. If C<Connect>
-was called using a reference to a tied hash, then the return value
-will also be a reference to a tied hash [or C<undef>]. Otherwise,
-if you wish to use the returned object as a tied hash [not just as
-an object], then use the C<TiedRef> method function after C<Connect>.
-
-C<$sMachineName> is the name of the remote machine. You don't have
-to precede the machine name with two delimiter characters.
-
-C<$sKeyPath> is a string specifying the remote key to be opened.
-Alternately C<$sKeyPath> can be a reference to an array value
-containing the list of increasingly deep keys specifying the path
-to the key to be opened.
-
-C<$rhOptions> is an optional reference to a hash containing extra
-options. The C<Connect> method supports two options, C<"Delimiter">
-and C<"Access">. See the C<Open> method documentation for more
-information on these options.
-
-C<$sKeyPath> is already relative to the virtual root of the Registry
-of the remote machine. A single leading delimiter on C<sKeyPath>
-will be ignored and is not required.
-
-C<$sKeyPath> can be empty in which case C<Connect> will return an
-object representing the virtual root key of the remote Registry.
-Each subsequent use of C<Open> on this virtual root key will call
-the system C<RegConnectRegistry> function.
-
-The C<Connect> method can be called via any I<Win32::TieRegistry>
-object, not just C<$Registry>. Attributes such as the desired
-level of access and the delimiter will be inherited from the
-object used but the C<$sKeyPath> will always be relative to the
-virtual root of the remote machine's registry.
-
-Examples:
-
- $remMachKey= $Registry->Connect( "HostA", "LMachine", {Delimiter->"/"} )
- or die "Can't connect to HostA's HKEY_LOCAL_MACHINE key: $^E\n";
-
- $remVersKey= $remMachKey->Connect( "www.microsoft.com",
- "LMachine/Software/Microsoft/Inetsrv/CurrentVersion/",
- { Access=>KEY_READ, Delimiter=>"/" } )
- or die "Can't check what version of IIS Microsoft is running: $^E\n";
-
- $remVersKey= $remMachKey->Connect( "www",
- qw(LMachine Software Microsoft Inetsrv CurrentVersion) )
- or die "Can't check what version of IIS we are running: $^E\n";
-
-=item ObjectRef
-
-=item $object_ref= $obj_or_hash_ref->ObjectRef
-
-For a simple object, just returns itself [C<<$obj == $obj->ObjectRef>>].
-
-For a reference to a tied hash [if it is also an object], C<ObjectRef>
-returns the simple object that the hash is tied to.
-
-This is primarily useful when debugging since typing C<x $Registry>
-will try to display your I<entire> registry contents to your screen.
-But the debugger command C<<x $Registry->ObjectRef>> will just dump
-the implementation details of the underlying object to your screen.
-
-=item Flush( $bFlush )
-
-Flushes all cached information about the Registry key so that future
-uses will get fresh data from the Registry.
-
-If the optional C<$bFlush> is specified and a true value, then
-C<RegFlushKey()> will be called, which is almost never necessary.
-
-=item GetValue
-
-=item $ValueData= $key->GetValue( $sValueName )
-
-=item ($ValueData,$ValueType)= $key->GetValue( $sValueName )
-
-Gets a Registry value's data and data type.
-
-C<$ValueData> is usually just a Perl string that contains the
-value data [packed into it]. For certain types of data, however,
-C<$ValueData> may be processed as described below.
-
-C<$ValueType> is the C<REG_*> constant describing the type of value
-data stored in C<$ValueData>. If the C<DualTypes()> option is on,
-then C<$ValueType> will be a dual value. That is, when used in a
-numeric context, C<$ValueType> will give the numeric value of a
-C<REG_*> constant. However, when used in a non-numeric context,
-C<$ValueType> will return the name of the C<REG_*> constant, for
-example C<"REG_SZ"> [note the quotes]. So both of the following
-can be true at the same time:
-
- $ValueType == REG_SZ()
- $ValueType eq "REG_SZ"
-
-=over
-
-=item REG_SZ and REG_EXPAND_SZ
-
-If the C<FixSzNulls()> option is on, then the trailing C<'\0'> will be
-stripped [unless there isn't one] before values of type C<REG_SZ>
-and C<REG_EXPAND_SZ> are returned. Note that C<SetValue()> will add
-a trailing C<'\0'> under similar circumstances.
-
-=item REG_MULTI_SZ
-
-If the C<SplitMultis()> option is on, then values of this type are
-returned as a reference to an array containing the strings. For
-example, a value that, with C<SplitMultis()> off, would be returned as:
-
- "Value1\000Value2\000\000"
-
-would be returned, with C<SplitMultis()> on, as:
-
- [ "Value1", "Value2" ]
-
-=item REG_DWORD
-
-If the C<DualBinVals()> option is on, then the value is returned
-as a scalar containing both a string and a number [much like
-the C<$!> variable -- see the L<SetDualVar> module for more
-information] where the number part is the "unpacked" value.
-Use the returned value in a numeric context to access this part
-of the value. For example:
-
- $num= 0 + $Registry->{"CUser/Console//ColorTable01"};
-
-If the C<DWordsToHex()> option is off, the string part of the
-returned value is a packed, 4-byte string [use C<unpack("L",$value)>
-to get the numeric value.
-
-If C<DWordsToHex()> is on, the string part of the returned value is
-a 10-character hex strings [with leading "0x"]. You can use
-C<hex($value)> to get the numeric value.
-
-Note that C<SetValue()> will properly understand each of these
-returned value formats no matter how C<DualBinVals()> is set.
-
-=back
-
-=item ValueNames
-
-=item @names= $key->ValueNames
-
-Returns the list of value names stored directly in a Registry key.
-Note that the names returned do I<not> have a delimiter prepended
-to them like with C<MemberNames()> and tied hashes.
-
-Once you request this information, it is cached in the object and
-future requests will always return the same list unless C<Flush()>
-has been called.
-
-=item SubKeyNames
-
-=item @key_names= $key->SubKeyNames
-
-Returns the list of subkey names stored directly in a Registry key.
-Note that the names returned do I<not> have a delimiter appended
-to them like with C<MemberNames()> and tied hashes.
-
-Once you request this information, it is cached in the object and
-future requests will always return the same list unless C<Flush()>
-has been called.
-
-=item SubKeyClasses
-
-=item @classes= $key->SubKeyClasses
-
-Returns the list of classes for subkeys stored directly in a
-Registry key. The classes are returned in the same order as
-the subkey names returned by C<SubKeyNames()>.
-
-=item SubKeyTimes
-
-=item @times= $key->SubKeyTimes
-
-Returns the list of last-modified times for subkeys stored
-directly in a Registry key. The times are returned in the same
-order as the subkey names returned by C<SubKeyNames()>. Each
-time is a C<FILETIME> structure packed into a Perl string.
-
-Once you request this information, it is cached in the object and
-future requests will always return the same list unless C<Flush()>
-has been called.
-
-=item MemberNames
-
-=item @members= $key->MemberNames
-
-Returns the list of subkey names and value names stored directly
-in a Registry key. Subkey names have a delimiter appended to the
-end and value names have a delimiter prepended to the front.
-
-Note that a value name could end in a delimiter [or could be C<"">
-so that the member name returned is just a delimiter] so the
-presence or absence of the leading delimiter is what should be
-used to determine whether a particular name is for a subkey or a
-value, not the presence or absence of a trailing delimiter.
-
-Once you request this information, it is cached in the object and
-future requests will always return the same list unless C<Flush()>
-has been called.
-
-=item Information
-
-=item %info= $key->Information
-
-=item @items= $key->Information( @itemNames );
-
-Returns the following information about a Registry key:
-
-=over
-
-=item LastWrite
-
-A C<FILETIME> structure indicating when the key was last modified
-and packed into a Perl string.
-
-=item CntSubKeys
-
-The number of subkeys stored directly in this key.
-
-=item CntValues
-
-The number of values stored directly in this key.
-
-=item SecurityLen
-
-The length [in bytes] of the largest[?] C<SECURITY_DESCRIPTOR>
-associated with the Registry key.
-
-=item MaxValDataLen
-
-The length [in bytes] of the longest value data associated with
-a value stored in this key.
-
-=item MaxSubKeyLen
-
-The length [in chars] of the longest subkey name associated with
-a subkey stored in this key.
-
-=item MaxSubClassLen
-
-The length [in chars] of the longest class name associated with
-a subkey stored directly in this key.
-
-=item MaxValNameLen
-
-The length [in chars] of the longest value name associated with
-a value stored in this key.
-
-=back
-
-With no arguments, returns a hash [not a reference to a hash] where
-the keys are the names for the items given above and the values
-are the information describe above. For example:
-
- %info= ( "CntValues" => 25, # Key contains 25 values.
- "MaxValNameLen" => 20, # One of which has a 20-char name.
- "MaxValDataLen" => 42, # One of which has a 42-byte value.
- "CntSubKeys" => 1, # Key has 1 immediate subkey.
- "MaxSubKeyLen" => 13, # One of which has a 12-char name.
- "MaxSubClassLen" => 0, # All of which have class names of "".
- "SecurityLen" => 232, # One SECURITY_DESCRIPTOR is 232 bytes.
- "LastWrite" => "\x90mZ\cX{\xA3\xBD\cA\c@\cA"
- # Key was last modifed 1998/06/01 16:29:32 GMT
- );
-
-With arguments, each one must be the name of a item given above.
-The return value is the information associated with the listed
-names. In other words:
-
- return $key->Information( @names );
-
-returns the same list as:
-
- %info= $key->Information;
- return @info{@names};
-
-=item Delimiter
-
-=item $oldDelim= $key->Delimiter
-
-=item $oldDelim= $key->Delimiter( $newDelim )
-
-Gets and possibly changes the delimiter used for this object. The
-delimiter is appended to subkey names and prepended to value names
-in many return values. It is also used when parsing keys passed
-to tied hashes.
-
-The delimiter defaults to backslash (C<'\\'>) but is inherited from
-the object used to create a new object and can be specified by an
-option when a new object is created.
-
-=item Handle
-
-=item $handle= $key->Handle
-
-Returns the raw C<HKEY> handle for the associated Registry key as
-an integer value. This value can then be used to Reg*() calls
-from I<Win32API::Registry>. However, it is usually easier to just
-call the I<Win32API::Registry> calls directly via:
-
- $key->RegNotifyChangeKeyValue( ... );
-
-For the virtual root of the local or a remote Registry,
-C<Handle()> return C<"NONE">.
-
-=item Path
-
-=item $path= $key->Path
-
-Returns a string describing the path of key names to this
-Registry key. The string is built so that if it were passed
-to C<< $Registry->Open() >>, it would reopen the same Registry key
-[except in the rare case where one of the key names contains
-C<< $key->Delimiter >>].
-
-=item Machine
-
-=item $computerName= $key->Machine
-
-Returns the name of the computer [or "machine"] on which this Registry
-key resides. Returns C<""> for local Registry keys.
-
-=item Access
-
-Returns the numeric value of the bit mask used to specify the
-types of access requested when this Registry key was opened. Can
-be compared to C<KEY_*> values.
-
-=item OS_Delimiter
-
-Returns the delimiter used by the operating system's RegOpenKeyEx()
-call. For Win32, this is always backslash (C<"\\">).
-
-=item Roots
-
-Returns the mapping from root key names like C<"LMachine"> to their
-associated C<HKEY_*> constants. Primarily for internal use and
-subject to change.
-
-=item Tie
-
-=item $key->Tie( \%hash );
-
-Ties the referenced hash to that Registry key. Pretty much the
-same as
-
- tie %hash, ref($key), $key;
-
-Since C<ref($key)> is the class [package] to tie the hash to and
-C<TIEHASH()> just returns its argument, C<$key>, [without calling
-C<new()>] when it sees that it is already a blessed object.
-
-=item TiedRef
-
-=item $TiedHashRef= $hash_or_obj_ref->TiedRef
-
-For a simple object, returns a reference to a hash tied to the
-object. Used to promote a simple object into a combined object
-and hash ref.
-
-If already a reference to a tied hash [that is also an object],
-it just returns itself [C<< $ref == $ref->TiedRef >>].
-
-Mostly used internally.
-
-=item ArrayValues
-
-=item $oldBool= $key->ArrayValues
-
-=item $oldBool= $key->ArrayValues( $newBool )
-
-Gets the current setting of the C<ArrayValues> option and possibly
-turns it on or off.
-
-When off, Registry values fetched via a tied hash are returned as
-just a value scalar [the same as C<GetValue()> in a scalar context].
-When on, they are returned as a reference to an array containing
-the value data as the C<[0]> element and the data type as the C<[1]>
-element.
-
-=item TieValues
-
-=item $oldBool= TieValues
-
-=item $oldBool= TieValues( $newBool )
-
-Gets the current setting of the C<TieValues> option and possibly
-turns it on or off.
-
-Turning this option on is not yet supported in this release of
-I<Win32::TieRegistry>. In a future release, turning this option
-on will cause Registry values returned from a tied hash to be
-a tied array that you can use to modify the value in the Registry.
-
-=item FastDelete
-
-=item $oldBool= $key->FastDelete
-
-=item $oldBool= $key->FastDelete( $newBool )
-
-Gets the current setting of the C<FastDelete> option and possibly
-turns it on or off.
-
-When on, successfully deleting a Registry key [via a tied hash]
-simply returns C<1>.
-
-When off, successfully deleting a Registry key [via a tied hash
-and not in a void context] returns a reference to a hash that
-contains the values present in the key when it was deleted. This
-hash is just like that returned when referencing the key before it
-was deleted except that it is an ordinary hash, not one tied to
-the I<Win32::TieRegistry> package.
-
-Note that deleting either a Registry key or value via a tied hash
-I<in a void context> prevents any overhead in trying to build an
-appropriate return value.
-
-Note that deleting a Registry I<value> via a tied hash [not in
-a void context] returns the value data even if <FastDelete> is on.
-
-=item SplitMultis
-
-=item $oldBool= $key->SplitMultis
-
-=item $oldBool= $key->SplitMultis( $newBool )
-
-Gets the current setting of the C<SplitMultis> option and possibly
-turns it on or off.
-
-If on, Registry values of type C<REG_MULTI_SZ> are returned as
-a reference to an array of strings. See C<GetValue()> for more
-information.
-
-=item DWordsToHex
-
-=item $oldBool= $key->DWordsToHex
-
-=item $oldBool= $key->DWordsToHex( $newBool )
-
-Gets the current setting of the C<DWordsToHex> option and possibly
-turns it on or off.
-
-If on, Registry values of type C<REG_DWORD> are returned as a hex
-string with leading C<"0x"> and longer than 4 characters. See
-C<GetValue()> for more information.
-
-=item FixSzNulls
-
-=item $oldBool= $key->FixSzNulls
-
-=item $oldBool= $key->FixSzNulls( $newBool )
-
-Gets the current setting of the C<FixSzNulls> option and possibly
-turns it on or off.
-
-If on, Registry values of type C<REG_SZ> and C<REG_EXPAND_SZ> have
-trailing C<'\0'>s added before they are set and stripped before
-they are returned. See C<GetValue()> and C<SetValue()> for more
-information.
-
-=item DualTypes
-
-=item $oldBool= $key->DualTypes
-
-=item $oldBool= $key->DualTypes( $newBool )
-
-Gets the current setting of the C<DualTypes> option and possibly
-turns it on or off.
-
-If on, data types are returned as a combined numeric/string value
-holding both the numeric value of a C<REG_*> constant and the
-string value of the constant's name. See C<GetValue()> for
-more information.
-
-=item DualBinVals
-
-=item $oldBool= $key->DualBinVals
-
-=item $oldBool= $key->DualBinVals( $newBool )
-
-Gets the current setting of the C<DualBinVals> option and possibly
-turns it on or off.
-
-If on, Registry value data of type C<REG_BINARY> and no more than
-4 bytes long and Registry values of type C<REG_DWORD> are returned
-as a combined numeric/string value where the numeric value is the
-"unpacked" binary value as returned by:
-
- hex reverse unpack( "h*", $valData )
-
-on a "little-endian" computer. [Would be C<hex unpack("H*",$valData)>
-on a "big-endian" computer if this module is ever ported to one.]
-
-See C<GetValue()> for more information.
-
-=item GetOptions
-
-=item @oldOptValues= $key->GetOptions( @optionNames )
-
-=item $refHashOfOldOpts= $key->GetOptions()
-
-=item $key->GetOptions( \%hashForOldOpts )
-
-Returns the current setting of any of the following options:
-
- Delimiter FixSzNulls DWordsToHex
- ArrayValues SplitMultis DualBinVals
- TieValues FastDelete DualTypes
-
-Pass in one or more of the above names (as strings) to get back
-an array of the corresponding current settings in the same order:
-
- my( $fastDel, $delim )= $key->GetOptions("FastDelete","Delimiter");
-
-Pass in no arguments to get back a reference to a hash where
-the above option names are the keys and the values are
-the corresponding current settings for each option:
-
- my $href= $key->GetOptions();
- my $delim= $href->{Delimiter};
-
-Pass in a single reference to a hash to have the above key/value
-pairs I<added> to the referenced hash. For this case, the
-return value is the original object so further methods can be
-chained after the call to GetOptions:
-
- my %oldOpts;
- $key->GetOptions( \%oldOpts )->SetOptions( Delimiter => "/" );
-
-=item SetOptions
-
-=item @oldOpts= $key->SetOptions( optNames=>$optValue,... )
-
-Changes the current setting of any of the following options,
-returning the previous setting(s):
-
- Delimiter FixSzNulls DWordsToHex AllowLoad
- ArrayValues SplitMultis DualBinVals AllowSave
- TieValues FastDelete DualTypes
-
-For C<AllowLoad> and C<AllowSave>, instead of the previous
-setting, C<SetOptions> returns whether or not the change was
-successful.
-
-In a scalar context, returns only the last item. The last
-option can also be specified as C<"ref"> or C<"r"> [which doesn't
-need to be followed by a value] to allow chaining:
-
- $key->SetOptions(AllowSave=>1,"ref")->RegSaveKey(...)
-
-=item SetValue
-
-=item $okay= $key->SetValue( $ValueName, $ValueData );
-
-=item $okay= $key->SetValue( $ValueName, $ValueData, $ValueType );
-
-Adds or replaces a Registry value. Returns a true value if
-successfully, false otherwise.
-
-C<$ValueName> is the name of the value to add or replace and
-should I<not> have a delimiter prepended to it. Case is ignored.
-
-C<$ValueType> is assumed to be C<REG_SZ> if it is omitted. Otherwise,
-it should be one the C<REG_*> constants.
-
-C<$ValueData> is the data to be stored in the value, probably packed
-into a Perl string. Other supported formats for value data are
-listed below for each possible C<$ValueType>.
-
-=over
-
-=item REG_SZ or REG_EXPAND_SZ
-
-The only special processing for these values is the addition of
-the required trailing C<'\0'> if it is missing. This can be
-turned off by disabling the C<FixSzNulls> option.
-
-=item REG_MULTI_SZ
-
-These values can also be specified as a reference to a list of
-strings. For example, the following two lines are equivalent:
-
- $key->SetValue( "Val1\000Value2\000LastVal\000\000", "REG_MULTI_SZ" );
- $key->SetValue( ["Val1","Value2","LastVal"], "REG_MULTI_SZ" );
-
-Note that if the required two trailing nulls (C<"\000\000">) are
-missing, then this release of C<SetValue()> will I<not> add them.
-
-=item REG_DWORD
-
-These values can also be specified as a hex value with the leading
-C<"0x"> included and totaling I<more than> 4 bytes. These will be
-packed into a 4-byte string via:
-
- $data= pack( "L", hex($data) );
-
-=item REG_BINARY
-
-This value type is listed just to emphasize that no alternate
-format is supported for it. In particular, you should I<not> pass
-in a numeric value for this type of data. C<SetValue()> cannot
-distinguish such from a packed string that just happens to match
-a numeric value and so will treat it as a packed string.
-
-=back
-
-An alternate calling format:
-
- $okay= $key->SetValue( $ValueName, [ $ValueData, $ValueType ] );
-
-[two arguments, the second of which is a reference to an array
-containing the value data and value type] is supported to ease
-using tied hashes with C<SetValue()>.
-
-=item CreateKey
-
-=item $newKey= $key->CreateKey( $subKey );
-
-=item $newKey= $key->CreateKey( $subKey, { Option=>OptVal,... } );
-
-Creates a Registry key or just updates attributes of one. Calls
-C<RegCreateKeyEx()> then, if it succeeded, creates an object
-associated with the [possibly new] subkey.
-
-C<$subKey> is the name of a subkey [or a path to one] to be
-created or updated. It can also be a reference to an array
-containing a list of subkey names.
-
-The second argument, if it exists, should be a reference to a
-hash specifying options either to be passed to C<RegCreateKeyEx()>
-or to be used when creating the associated object. The following
-items are the supported keys for this options hash:
-
-=over
-
-=item Delimiter
-
-Specifies the delimiter to be used to parse C<$subKey> and to be
-used in the new object. Defaults to C<< $key->Delimiter >>.
-
-=item Access
-
-Specifies the types of access requested when the subkey is opened.
-Should be a numeric bit mask that combines one or more C<KEY_*>
-constant values.
-
-=item Class
-
-The name to assign as the class of the new or updated subkey.
-Defaults to C<""> as we have never seen a use for this information.
-
-=item Disposition
-
-Lets you specify a reference to a scalar where, upon success, will be
-stored either C<REG_CREATED_NEW_KEY()> or C<REG_OPENED_EXISTING_KEY()>
-depending on whether a new key was created or an existing key was
-opened.
-
-If you, for example, did C<use Win32::TieRegistry qw(REG_CREATED_NEW_KEY)>
-then you can use C<REG_CREATED_NEW_KEY()> to compare against the numeric
-value stored in the referenced scalar.
-
-If the C<DualTypes> option is enabled, then in addition to the
-numeric value described above, the referenced scalar will also
-have a string value equal to either C<"REG_CREATED_NEW_KEY"> or
-C<"REG_OPENED_EXISTING_KEY">, as appropriate.
-
-=item Security
-
-Lets you specify a C<SECURITY_ATTRIBUTES> structure packed into a
-Perl string. See C<Win32API::Registry::RegCreateKeyEx()> for more
-information.
-
-=item Volatile
-
-If true, specifies that the new key should be volatile, that is,
-stored only in memory and not backed by a hive file [and not saved
-if the computer is rebooted]. This option is ignored under
-Windows 95. Specifying C<Volatile=E<gt>1> is the same as
-specifying C<Options=E<gt>REG_OPTION_VOLATILE>.
-
-=item Backup
-
-If true, specifies that the new key should be opened for
-backup/restore access. The C<Access> option is ignored. If the
-calling process has enabled C<"SeBackupPrivilege">, then the
-subkey is opened with C<KEY_READ> access as the C<"LocalSystem">
-user which should have access to all subkeys. If the calling
-process has enabled C<"SeRestorePrivilege">, then the subkey is
-opened with C<KEY_WRITE> access as the C<"LocalSystem"> user which
-should have access to all subkeys.
-
-This option is ignored under Windows 95. Specifying C<Backup=E<gt>1>
-is the same as specifying C<Options=E<gt>REG_OPTION_BACKUP_RESTORE>.
-
-=item Options
-
-Lets you specify options to the C<RegOpenKeyEx()> call. The value
-for this option should be a numeric value combining zero or more
-of the C<REG_OPTION_*> bit masks. You may with to used the
-C<Volatile> and/or C<Backup> options instead of this one.
-
-=back
-
-=item StoreKey
-
-=item $newKey= $key->StoreKey( $subKey, \%Contents );
-
-Primarily for internal use.
-
-Used to create or update a Registry key and any number of subkeys
-or values under it or its subkeys.
-
-C<$subKey> is the name of a subkey to be created [or a path of
-subkey names separated by delimiters]. If that subkey already
-exists, then it is updated.
-
-C<\%Contents> is a reference to a hash containing pairs of
-value names with value data and/or subkey names with hash
-references similar to C<\%Contents>. Each of these cause
-a value or subkey of C<$subKey> to be created or updated.
-
-If C<$Contents{""}> exists and is a reference to a hash, then
-it used as the options argument when C<CreateKey()> is called
-for C<$subKey>. This allows you to specify ...
-
- if( defined( $$data{""} ) && "HASH" eq ref($$data{""}) ) {
- $self= $this->CreateKey( $subKey, delete $$data{""} );
-
-=item Load
-
-=item $newKey= $key->Load( $file )
-
-=item $newKey= $key->Load( $file, $newSubKey )
-
-=item $newKey= $key->Load( $file, $newSubKey, { Option=>OptVal... } )
-
-=item $newKey= $key->Load( $file, { Option=>OptVal... } )
-
-Loads a hive file into a Registry. That is, creates a new subkey
-and associates a hive file with it.
-
-C<$file> is a hive file, that is a file created by calling
-C<RegSaveKey()>. The C<$file> path is interpreted relative to
-C<%SystemRoot%/System32/config> on the machine where C<$key>
-resides.
-
-C<$newSubKey> is the name to be given to the new subkey. If
-C<$newSubKey> is specified, then C<$key> must be
-C<HKEY_LOCAL_MACHINE> or C<HKEY_USERS> of the local computer
-or a remote computer and C<$newSubKey> should not contain any
-occurrences of either the delimiter or the OS delimiter.
-
-If C<$newSubKey> is not specified, then it is as if C<$key>
-was C<$Registry-E<gt>{LMachine}> and C<$newSubKey> is
-C<"PerlTie:999"> where C<"999"> is actually a sequence number
-incremented each time this process calls C<Load()>.
-
-You can specify as the last argument a reference to a hash
-containing options. You can specify the same options that you
-can specify to C<Open()>. See C<Open()> for more information on
-those. In addition, you can specify the option C<"NewSubKey">.
-The value of this option is interpreted exactly as if it was
-specified as the C<$newSubKey> parameter and overrides the
-C<$newSubKey> if one was specified.
-
-The hive is automatically unloaded when the returned object
-[C<$newKey>] is destroyed. Registry key objects opened within
-the hive will keep a reference to the C<$newKey> object so that
-it will not be destroyed before these keys are closed.
-
-=item UnLoad
-
-=item $okay= $key->UnLoad
-
-Unloads a hive that was loaded via C<Load()>. Cannot unload other
-hives. C<$key> must be the return from a previous call to C<Load()>.
-C<$key> is closed and then the hive is unloaded.
-
-=item AllowSave
-
-=item $okay= AllowSave( $bool )
-
-Enables or disables the C<"ReBackupPrivilege"> privilege for the
-current process. You will probably have to enable this privilege
-before you can use C<RegSaveKey()>.
-
-The return value indicates whether the operation succeeded, not
-whether the privilege was previously enabled.
-
-=item AllowLoad
-
-=item $okay= AllowLoad( $bool )
-
-Enables or disables the C<"ReRestorePrivilege"> privilege for the
-current process. You will probably have to enable this privilege
-before you can use C<RegLoadKey()>, C<RegUnLoadKey()>,
-C<RegReplaceKey()>, or C<RegRestoreKey> and thus C<Load()> and
-C<UnLoad()>.
-
-The return value indicates whether the operation succeeded, not
-whether the privilege was previously enabled.
-
-=back
-
-=head2 Exports [C<use> and C<import()>]
-
-To have nothing imported into your package, use something like:
-
- use Win32::TieRegistry 0.20 ();
-
-which would verify that you have at least version 0.20 but wouldn't
-call C<import()>. The F<Changes> file can be useful in figuring out
-which, if any, prior versions of I<Win32::TieRegistry> you want to
-support in your script.
-
-The code
-
- use Win32::TieRegistry;
-
-imports the variable C<$Registry> into your package and sets it
-to be a reference to a hash tied to a copy of the master Registry
-virtual root object with the default options. One disadvantage
-to this "default" usage is that Perl does not support checking
-the module version when you use it.
-
-Alternately, you can specify a list of arguments on the C<use>
-line that will be passed to the C<< Win32::TieRegistry->import() >>
-method to control what items to import into your package. These
-arguments fall into the following broad categories:
-
-=over
-
-=item Import a reference to a hash tied to a Registry virtual root
-
-You can request that a scalar variable be imported (possibly)
-and set to be a reference to a hash tied to a Registry virtual root
-using any of the following types of arguments or argument pairs:
-
-=over
-
-=item "TiedRef", '$scalar'
-
-=item "TiedRef", '$pack::scalar'
-
-=item "TiedRef", 'scalar'
-
-=item "TiedRef", 'pack::scalar'
-
-All of the above import a scalar named C<$scalar> into your package
-(or the package named "pack") and then sets it.
-
-=item '$scalar'
-
-=item '$pack::scalar'
-
-These are equivalent to the previous items to support a more
-traditional appearance to the list of exports. Note that the
-scalar name cannot be "RegObj" here.
-
-=item "TiedRef", \$scalar
-
-=item \$scalar
-
-These versions don't import anything but set the referenced C<$scalar>.
-
-=back
-
-=item Import a hash tied to the Registry virtual root
-
-You can request that a hash variable be imported (possibly)
-and tied to a Registry virtual root using any of the following
-types of arguments or argument pairs:
-
-=over
-
-=item "TiedHash", '%hash'
-
-=item "TiedHash", '%pack::hash'
-
-=item "TiedHash", 'hash'
-
-=item "TiedHash", 'pack::hash'
-
-All of the above import a hash named C<%hash> into your package
-(or the package named "pack") and then sets it.
-
-=item '%hash'
-
-=item '%pack::hash'
-
-These are equivalent to the previous items to support a more
-traditional appearance to the list of exports.
-
-=item "TiedHash", \%hash
-
-=item \%hash
-
-These versions don't import anything but set the referenced C<%hash>.
-
-=back
-
-=item Import a Registry virtual root object
-
-You can request that a scalar variable be imported (possibly)
-and set to be a Registry virtual root object using any of the
-following types of arguments or argument pairs:
-
-=over
-
-=item "ObjectRef", '$scalar'
-
-=item "ObjectRef", '$pack::scalar'
-
-=item "ObjectRef", 'scalar'
-
-=item "ObjectRef", 'pack::scalar'
-
-All of the above import a scalar named C<$scalar> into your package
-(or the package named "pack") and then sets it.
-
-=item '$RegObj'
-
-This is equivalent to the previous items for backward compatibility.
-
-=item "ObjectRef", \$scalar
-
-This version doesn't import anything but sets the referenced C<$scalar>.
-
-=back
-
-=item Import constant(s) exported by I<Win32API::Registry>
-
-You can list any constants that are exported by I<Win32API::Registry>
-to have them imported into your package. These constants have names
-starting with "KEY_" or "REG_" (or even "HKEY_").
-
-You can also specify C<":KEY_">, C<":REG_">, and even C<":HKEY_"> to
-import a whole set of constants.
-
-See I<Win32API::Registry> documentation for more information.
-
-=item Options
-
-You can list any option names that can be listed in the C<SetOptions()>
-method call, each followed by the value to use for that option.
-A Registry virtual root object is created, all of these options are
-set for it, then each variable to be imported/set is associated with
-this object.
-
-In addition, the following special options are supported:
-
-=over
-
-=item ExportLevel
-
-Whether to import variables into your package or some
-package that uses your package. Defaults to the value of
-C<$Exporter::ExportLevel> and has the same meaning. See
-the L<Exporter> module for more information.
-
-=item ExportTo
-
-The name of the package to import variables and constants into.
-Overrides I<ExportLevel>.
-
-=back
-
-=back
-
-=head3 Specifying constants in your Perl code
-
-This module was written with a strong emphasis on the convenience of
-the module user. Therefore, most places where you can specify a
-constant like C<REG_SZ()> also allow you to specify a string
-containing the name of the constant, C<"REG_SZ">. This is convenient
-because you may not have imported that symbolic constant.
-
-Perl also emphasizes programmer convenience so the code C<REG_SZ>
-can be used to mean C<REG_SZ()> or C<"REG_SZ"> or be illegal.
-Note that using C<&REG_SZ> (as we've seen in much Win32 Perl code)
-is not a good idea since it passes the current C<@_> to the
-C<constant()> routine of the module which, at the least, can give
-you a warning under B<-w>.
-
-Although greatly a matter of style, the "safest" practice is probably
-to specifically list all constants in the C<use Win32::TieRegistry>
-statement, specify C<use strict> [or at least C<use strict qw(subs)>],
-and use bare constant names when you want the numeric value. This will
-detect misspelled constant names at compile time.
-
- use strict;
- my $Registry;
- use Win32::TieRegistry 0.20 (
- TiedRef => \$Registry, Delimiter => "/", ArrayValues => 1,
- SplitMultis => 1, AllowLoad => 1,
- qw( REG_SZ REG_EXPAND_SZ REG_DWORD REG_BINARY REG_MULTI_SZ
- KEY_READ KEY_WRITE KEY_ALL_ACCESS ),
- );
- $Registry->{"LMachine/Software/FooCorp/"}= {
- "FooWriter/" => {
- "/Fonts" => [ ["Times","Courier","Lucinda"], REG_MULTI_SZ ],
- "/WindowSize" => [ pack("LL",24,80), REG_BINARY ],
- "/TaskBarIcon" => [ "0x0001", REG_DWORD ],
- },
- } or die "Can't create Software/FooCorp/: $^E\n";
-
-If you don't want to C<use strict qw(subs)>, the second safest practice
-is similar to the above but use the C<REG_SZ()> form for constants
-when possible and quoted constant names when required. Note that
-C<qw()> is a form of quoting.
-
- use Win32::TieRegistry 0.20 qw(
- TiedRef $Registry
- Delimiter / ArrayValues 1 SplitMultis 1 AllowLoad 1
- REG_SZ REG_EXPAND_SZ REG_DWORD REG_BINARY REG_MULTI_SZ
- KEY_READ KEY_WRITE KEY_ALL_ACCESS
- );
- $Registry->{"LMachine/Software/FooCorp/"}= {
- "FooWriter/" => {
- "/Fonts" => [ ["Times","Courier","Lucinda"], REG_MULTI_SZ() ],
- "/WindowSize" => [ pack("LL",24,80), REG_BINARY() ],
- "/TaskBarIcon" => [ "0x0001", REG_DWORD() ],
- },
- } or die "Can't create Software/FooCorp/: $^E\n";
-
-The examples in this document mostly use quoted constant names
-(C<"REG_SZ">) since that works regardless of which constants
-you imported and whether or not you have C<use strict> in your
-script. It is not the best choice for you to use for real
-scripts (vs. examples) because it is less efficient and is not
-supported by most other similar modules.
-
-=head1 SUMMARY
-
-Most things can be done most easily via tied hashes. Skip down to the
-the L<Tied Hashes Summary> to get started quickly.
-
-=head2 Objects Summary
-
-Here are quick examples that document the most common functionality
-of all of the method functions [except for a few almost useless ones].
-
- # Just another way of saying Open():
- $key= Win32::TieRegistry->new("LMachine\\Software\\",
- { Access=>KEY_READ()|KEY_WRITE(), Delimiter=>"\\" });
-
- # Open a Registry key:
- $subKey= $key->Open( "SubKey/SubSubKey/",
- { Access=>KEY_ALL_ACCESS, Delimiter=>"/" } );
-
- # Connect to a remote Registry key:
- $remKey= $Registry->Connect( "MachineName", "LMachine/",
- { Access=>KEY_READ, Delimiter=>"/" } );
-
- # Get value data:
- $valueString= $key->GetValue("ValueName");
- ( $valueString, $valueType )= $key->GetValue("ValueName");
-
- # Get list of value names:
- @valueNames= $key->ValueNames;
-
- # Get list of subkey names:
- @subKeyNames= $key->SubKeyNames;
-
- # Get combined list of value names (with leading delimiters)
- # and subkey names (with trailing delimiters):
- @memberNames= $key->MemberNames;
-
- # Get all information about a key:
- %keyInfo= $key->Information;
- # keys(%keyInfo)= qw( Class LastWrite SecurityLen
- # CntSubKeys MaxSubKeyLen MaxSubClassLen
- # CntValues MaxValNameLen MaxValDataLen );
-
- # Get selected information about a key:
- ( $class, $cntSubKeys )= $key->Information( "Class", "CntSubKeys" );
-
- # Get and/or set delimiter:
- $delim= $key->Delimiter;
- $oldDelim= $key->Delimiter( $newDelim );
-
- # Get "path" for an open key:
- $path= $key->Path;
- # For example, "/CUser/Control Panel/Mouse/"
- # or "//HostName/LMachine/System/DISK/".
-
- # Get name of machine where key is from:
- $mach= $key->Machine;
- # Will usually be "" indicating key is on local machine.
-
- # Control different options (see main documentation for descriptions):
- $oldBool= $key->ArrayValues( $newBool );
- $oldBool= $key->FastDelete( $newBool );
- $oldBool= $key->FixSzNulls( $newBool );
- $oldBool= $key->SplitMultis( $newBool );
- $oldBool= $key->DWordsToHex( $newBool );
- $oldBool= $key->DualBinVals( $newBool );
- $oldBool= $key->DualTypes( $newBool );
- @oldBools= $key->SetOptions( ArrayValues=>1, FastDelete=>1, FixSzNulls=>0,
- Delimiter=>"/", AllowLoad=>1, AllowSave=>1 );
- @oldBools= $key->GetOptions( ArrayValues, FastDelete, FixSzNulls );
-
- # Add or set a value:
- $key->SetValue( "ValueName", $valueDataString );
- $key->SetValue( "ValueName", pack($format,$valueData), "REG_BINARY" );
-
- # Add or set a key:
- $key->CreateKey( "SubKeyName" );
- $key->CreateKey( "SubKeyName",
- { Access=>"KEY_ALL_ACCESS", Class=>"ClassName",
- Delimiter=>"/", Volatile=>1, Backup=>1 } );
-
- # Load an off-line Registry hive file into the on-line Registry:
- $newKey= $Registry->Load( "C:/Path/To/Hive/FileName" );
- $newKey= $key->Load( "C:/Path/To/Hive/FileName", "NewSubKeyName",
- { Access=>"KEY_READ" } );
- # Unload a Registry hive file loaded via the Load() method:
- $newKey->UnLoad;
-
- # (Dis)Allow yourself to load Registry hive files:
- $success= $Registry->AllowLoad( $bool );
-
- # (Dis)Allow yourself to save a Registry key to a hive file:
- $success= $Registry->AllowSave( $bool );
-
- # Save a Registry key to a new hive file:
- $key->RegSaveKey( "C:/Path/To/Hive/FileName", [] );
-
-=head3 Other Useful Methods
-
-See I<Win32API::Registry> for more information on these methods.
-These methods are provided for coding convenience and are
-identical to the I<Win32API::Registry> functions except that these
-don't take a handle to a Registry key, instead getting the handle
-from the invoking object [C<$key>].
-
- $key->RegGetKeySecurity( $iSecInfo, $sSecDesc, $lenSecDesc );
- $key->RegLoadKey( $sSubKeyName, $sPathToFile );
- $key->RegNotifyChangeKeyValue(
- $bWatchSubtree, $iNotifyFilter, $hEvent, $bAsync );
- $key->RegQueryMultipleValues(
- $structValueEnts, $cntValueEnts, $Buffer, $lenBuffer );
- $key->RegReplaceKey( $sSubKeyName, $sPathToNewFile, $sPathToBackupFile );
- $key->RegRestoreKey( $sPathToFile, $iFlags );
- $key->RegSetKeySecurity( $iSecInfo, $sSecDesc );
- $key->RegUnLoadKey( $sSubKeyName );
-
-=head2 Tied Hashes Summary
-
-For fast learners, this may be the only section you need to read.
-Always append one delimiter to the end of each Registry key name
-and prepend one delimiter to the front of each Registry value name.
-
-=head3 Opening keys
-
- use Win32::TieRegistry ( Delimiter=>"/", ArrayValues=>1 );
- $Registry->Delimiter("/"); # Set delimiter to "/".
- $swKey= $Registry->{"LMachine/Software/"};
- $winKey= $swKey->{"Microsoft/Windows/CurrentVersion/"};
- $userKey= $Registry->
- {"CUser/Software/Microsoft/Windows/CurrentVersion/"};
- $remoteKey= $Registry->{"//HostName/LMachine/"};
-
-=head3 Reading values
-
- $progDir= $winKey->{"/ProgramFilesDir"}; # "C:\\Program Files"
- $tip21= $winKey->{"Explorer/Tips//21"}; # Text of tip #21.
-
- $winKey->ArrayValues(1);
- ( $devPath, $type )= $winKey->{"/DevicePath"};
- # $devPath eq "%SystemRoot%\\inf"
- # $type eq "REG_EXPAND_SZ" [if you have SetDualVar.pm installed]
- # $type == REG_EXPAND_SZ() [if did C<use Win32::TieRegistry qw(:REG_)>]
-
-=head3 Setting values
-
- $winKey->{"Setup//SourcePath"}= "\\\\SwServer\\SwShare\\Windows";
- # Simple. Assumes data type of REG_SZ.
-
- $winKey->{"Setup//Installation Sources"}=
- [ "D:\x00\\\\SwServer\\SwShare\\Windows\0\0", "REG_MULTI_SZ" ];
- # "\x00" and "\0" used to mark ends of each string and end of list.
-
- $winKey->{"Setup//Installation Sources"}=
- [ ["D:","\\\\SwServer\\SwShare\\Windows"], "REG_MULTI_SZ" ];
- # Alternate method that is easier to read.
-
- $userKey->{"Explorer/Tips//DisplayInitialTipWindow"}=
- [ pack("L",0), "REG_DWORD" ];
- $userKey->{"Explorer/Tips//Next"}= [ pack("S",3), "REG_BINARY" ];
- $userKey->{"Explorer/Tips//Show"}= [ pack("L",0), "REG_BINARY" ];
-
-=head3 Adding keys
-
- $swKey->{"FooCorp/"}= {
- "FooWriter/" => {
- "/Version" => "4.032",
- "Startup/" => {
- "/Title" => "Foo Writer Deluxe ][",
- "/WindowSize" => [ pack("LL",$wid,$ht), "REG_BINARY" ],
- "/TaskBarIcon" => [ "0x0001", "REG_DWORD" ],
- },
- "Compatibility/" => {
- "/AutoConvert" => "Always",
- "/Default Palette" => "Windows Colors",
- },
- },
- "/License", => "0123-9C8EF1-09-FC",
- };
-
-=head3 Listing all subkeys and values
-
- @members= keys( %{$swKey} );
- @subKeys= grep( m#^/#, keys( %{$swKey->{"Classes/batfile/"}} ) );
- # @subKeys= ( "/", "/EditFlags" );
- @valueNames= grep( ! m#^/#, keys( %{$swKey->{"Classes/batfile/"}} ) );
- # @valueNames= ( "DefaultIcon/", "shell/", "shellex/" );
-
-=head3 Deleting values or keys with no subkeys
-
- $oldValue= delete $userKey->{"Explorer/Tips//Next"};
-
- $oldValues= delete $userKey->{"Explorer/Tips/"};
- # $oldValues will be reference to hash containing deleted keys values.
-
-=head3 Closing keys
-
- undef $swKey; # Explicit way to close a key.
- $winKey= "Anything else"; # Implicitly closes a key.
- exit 0; # Implicitly closes all keys.
-
-=head2 Tie::Registry
-
-This module was originally called I<Tie::Registry>. Changing code
-that used I<Tie::Registry> over to I<Win32::TieRegistry> is trivial
-as the module name should only be mentioned once, in the C<use>
-line. However, finding all of the places that used I<Tie::Registry>
-may not be completely trivial so we have included F<Tie/Registry.pm>
-which you can install to provide backward compatibility.
-
-=head1 AUTHOR
-
-Tye McQueen. See http://www.metronet.com/~tye/ or e-mail
-tye@metronet.com with bug reports.
-
-=head1 SEE ALSO
-
-I<Win32API::Registry> - Provides access to C<Reg*()>, C<HKEY_*>,
-C<KEY_*>, C<REG_*> [required].
-
-I<Win32::WinError> - Defines C<ERROR_*> values [optional].
-
-L<SetDualVar> - For returning C<REG_*> values as combined
-string/integer values [optional].
-
-=head1 BUGS
-
-Perl5.004_02 has bugs that make I<Win32::TieRegistry> fail in
-strange and subtle ways.
-
-Using I<Win32::TieRegistry> with versions of Perl prior to 5.005
-can be tricky or impossible. Most notes about this have been
-removed from the documentation (they get rather complicated
-and confusing). This includes references to C<$^E> perhaps not
-being meaningful.
-
-Because Perl hashes are case sensitive, certain lookups are also
-case sensitive. In particular, the root keys ("Classes", "CUser",
-"LMachine", "Users", "PerfData", "CConfig", "DynData", and HKEY_*)
-must always be entered without changing between upper and lower
-case letters. Also, the special rule for matching subkey names
-that contain the user-selected delimiter only works if case is
-matched. All other key name and value name lookups should be case
-insensitive because the underlying Reg*() calls ignore case.
-
-Information about each key is cached when using a tied hash.
-This cache is not flushed nor updated when changes are made,
-I<even when the same tied hash is used> to make the changes.
-
-Current implementations of Perl's "global destruction" phase can
-cause objects returned by C<Load()> to be destroyed while keys
-within the hive are still open, if the objects still exist when
-the script starts to exit. When this happens, the automatic
-C<UnLoad()> will report a failure and the hive will remain loaded
-in the Registry.
-
-Trying to C<Load()> a hive file that is located on a remote network
-share may silently delete all data from the hive. This is a bug
-in the Win32 APIs, not any Perl code or modules. This module does
-not try to protect you from this bug.
-
-There is no test suite.
-
-=head1 FUTURE DIRECTIONS
-
-The following items are desired by the author and may appear in a
-future release of this module.
-
-=over
-
-=item TieValues option
-
-Currently described in main documentation but no yet implemented.
-
-=item AutoRefresh option
-
-Trigger use of C<RegNotifyChangeKeyValue()> to keep tied hash
-caches up-to-date even when other programs make changes.
-
-=item Error options
-
-Allow the user to have unchecked calls (calls in a "void context")
-to automatically report errors via C<warn> or C<die>.
-
-For complex operations, such a copying an entire subtree, provide
-access to detailed information about errors (and perhaps some
-warnings) that were encountered. Let the user control whether
-the complex operation continues in spite of errors.
-
-=back
-
-=head1 COPYRIGHT
-
-Copyright 1999 - 2006 Tye McQueen.
-
-Some parts copyright 2007 - 2009 Adam Kennedy.
-
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-=cut
-
-# Autoload not currently supported by Perl under Windows.
diff --git a/Master/tlpkg/tlperl/lib/Win32/WinError.pm b/Master/tlpkg/tlperl/lib/Win32/WinError.pm
deleted file mode 100644
index c61347b6ec6..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32/WinError.pm
+++ /dev/null
@@ -1,1017 +0,0 @@
-package Win32::WinError;
-
-require Exporter;
-require DynaLoader;
-
-$VERSION = '0.04';
-
-@ISA = qw(Exporter DynaLoader);
-# Items to export into callers namespace by default. Note: do not export
-# names by default without a very good reason. Use EXPORT_OK instead.
-# Do not simply export all your public functions/methods/constants.
-@EXPORT = qw(
- GetLastError
- CACHE_E_FIRST
- CACHE_E_LAST
- CACHE_E_NOCACHE_UPDATED
- CACHE_S_FIRST
- CACHE_S_FORMATETC_NOTSUPPORTED
- CACHE_S_LAST
- CACHE_S_SAMECACHE
- CACHE_S_SOMECACHES_NOTUPDATED
- CLASSFACTORY_E_FIRST
- CLASSFACTORY_E_LAST
- CLASSFACTORY_S_FIRST
- CLASSFACTORY_S_LAST
- CLASS_E_CLASSNOTAVAILABLE
- CLASS_E_NOAGGREGATION
- CLIENTSITE_E_FIRST
- CLIENTSITE_E_LAST
- CLIENTSITE_S_FIRST
- CLIENTSITE_S_LAST
- CLIPBRD_E_BAD_DATA
- CLIPBRD_E_CANT_CLOSE
- CLIPBRD_E_CANT_EMPTY
- CLIPBRD_E_CANT_OPEN
- CLIPBRD_E_CANT_SET
- CLIPBRD_E_FIRST
- CLIPBRD_E_LAST
- CLIPBRD_S_FIRST
- CLIPBRD_S_LAST
- CONVERT10_E_FIRST
- CONVERT10_E_LAST
- CONVERT10_E_OLESTREAM_BITMAP_TO_DIB
- CONVERT10_E_OLESTREAM_FMT
- CONVERT10_E_OLESTREAM_GET
- CONVERT10_E_OLESTREAM_PUT
- CONVERT10_E_STG_DIB_TO_BITMAP
- CONVERT10_E_STG_FMT
- CONVERT10_E_STG_NO_STD_STREAM
- CONVERT10_S_FIRST
- CONVERT10_S_LAST
- CONVERT10_S_NO_PRESENTATION
- CO_E_ALREADYINITIALIZED
- CO_E_APPDIDNTREG
- CO_E_APPNOTFOUND
- CO_E_APPSINGLEUSE
- CO_E_BAD_PATH
- CO_E_CANTDETERMINECLASS
- CO_E_CLASSSTRING
- CO_E_CLASS_CREATE_FAILED
- CO_E_DLLNOTFOUND
- CO_E_ERRORINAPP
- CO_E_ERRORINDLL
- CO_E_FIRST
- CO_E_IIDSTRING
- CO_E_INIT_CLASS_CACHE
- CO_E_INIT_MEMORY_ALLOCATOR
- CO_E_INIT_ONLY_SINGLE_THREADED
- CO_E_INIT_RPC_CHANNEL
- CO_E_INIT_SCM_EXEC_FAILURE
- CO_E_INIT_SCM_FILE_MAPPING_EXISTS
- CO_E_INIT_SCM_MAP_VIEW_OF_FILE
- CO_E_INIT_SCM_MUTEX_EXISTS
- CO_E_INIT_SHARED_ALLOCATOR
- CO_E_INIT_TLS
- CO_E_INIT_TLS_CHANNEL_CONTROL
- CO_E_INIT_TLS_SET_CHANNEL_CONTROL
- CO_E_INIT_UNACCEPTED_USER_ALLOCATOR
- CO_E_LAST
- CO_E_NOTINITIALIZED
- CO_E_OBJISREG
- CO_E_OBJNOTCONNECTED
- CO_E_OBJNOTREG
- CO_E_OBJSRV_RPC_FAILURE
- CO_E_RELEASED
- CO_E_SCM_ERROR
- CO_E_SCM_RPC_FAILURE
- CO_E_SERVER_EXEC_FAILURE
- CO_E_SERVER_STOPPING
- CO_E_WRONGOSFORAPP
- CO_S_FIRST
- CO_S_LAST
- DATA_E_FIRST
- DATA_E_LAST
- DATA_S_FIRST
- DATA_S_LAST
- DATA_S_SAMEFORMATETC
- DISP_E_ARRAYISLOCKED
- DISP_E_BADCALLEE
- DISP_E_BADINDEX
- DISP_E_BADPARAMCOUNT
- DISP_E_BADVARTYPE
- DISP_E_EXCEPTION
- DISP_E_MEMBERNOTFOUND
- DISP_E_NONAMEDARGS
- DISP_E_NOTACOLLECTION
- DISP_E_OVERFLOW
- DISP_E_PARAMNOTFOUND
- DISP_E_PARAMNOTOPTIONAL
- DISP_E_TYPEMISMATCH
- DISP_E_UNKNOWNINTERFACE
- DISP_E_UNKNOWNLCID
- DISP_E_UNKNOWNNAME
- DRAGDROP_E_ALREADYREGISTERED
- DRAGDROP_E_FIRST
- DRAGDROP_E_INVALIDHWND
- DRAGDROP_E_LAST
- DRAGDROP_E_NOTREGISTERED
- DRAGDROP_S_CANCEL
- DRAGDROP_S_DROP
- DRAGDROP_S_FIRST
- DRAGDROP_S_LAST
- DRAGDROP_S_USEDEFAULTCURSORS
- DV_E_CLIPFORMAT
- DV_E_DVASPECT
- DV_E_DVTARGETDEVICE
- DV_E_DVTARGETDEVICE_SIZE
- DV_E_FORMATETC
- DV_E_LINDEX
- DV_E_NOIVIEWOBJECT
- DV_E_STATDATA
- DV_E_STGMEDIUM
- DV_E_TYMED
- ENUM_E_FIRST
- ENUM_E_LAST
- ENUM_S_FIRST
- ENUM_S_LAST
- EPT_S_CANT_CREATE
- EPT_S_CANT_PERFORM_OP
- EPT_S_INVALID_ENTRY
- EPT_S_NOT_REGISTERED
- ERROR_ACCESS_DENIED
- ERROR_ACCOUNT_DISABLED
- ERROR_ACCOUNT_EXPIRED
- ERROR_ACCOUNT_LOCKED_OUT
- ERROR_ACCOUNT_RESTRICTION
- ERROR_ACTIVE_CONNECTIONS
- ERROR_ADAP_HDW_ERR
- ERROR_ADDRESS_ALREADY_ASSOCIATED
- ERROR_ADDRESS_NOT_ASSOCIATED
- ERROR_ALIAS_EXISTS
- ERROR_ALLOTTED_SPACE_EXCEEDED
- ERROR_ALREADY_ASSIGNED
- ERROR_ALREADY_EXISTS
- ERROR_ALREADY_REGISTERED
- ERROR_ALREADY_RUNNING_LKG
- ERROR_ALREADY_WAITING
- ERROR_ARENA_TRASHED
- ERROR_ARITHMETIC_OVERFLOW
- ERROR_ATOMIC_LOCKS_NOT_SUPPORTED
- ERROR_AUTODATASEG_EXCEEDS_64k
- ERROR_BADDB
- ERROR_BADKEY
- ERROR_BAD_ARGUMENTS
- ERROR_BAD_COMMAND
- ERROR_BAD_DESCRIPTOR_FORMAT
- ERROR_BAD_DEVICE
- ERROR_BAD_DEV_TYPE
- ERROR_BAD_DRIVER
- ERROR_BAD_DRIVER_LEVEL
- ERROR_BAD_ENVIRONMENT
- ERROR_BAD_EXE_FORMAT
- ERROR_BAD_FORMAT
- ERROR_BAD_IMPERSONATION_LEVEL
- ERROR_BAD_INHERITANCE_ACL
- ERROR_BAD_LENGTH
- ERROR_BAD_LOGON_SESSION_STATE
- ERROR_BAD_NETPATH
- ERROR_BAD_NET_NAME
- ERROR_BAD_NET_RESP
- ERROR_BAD_PATHNAME
- ERROR_BAD_PIPE
- ERROR_BAD_PROFILE
- ERROR_BAD_PROVIDER
- ERROR_BAD_REM_ADAP
- ERROR_BAD_THREADID_ADDR
- ERROR_BAD_TOKEN_TYPE
- ERROR_BAD_UNIT
- ERROR_BAD_USERNAME
- ERROR_BAD_VALIDATION_CLASS
- ERROR_BEGINNING_OF_MEDIA
- ERROR_BOOT_ALREADY_ACCEPTED
- ERROR_BROKEN_PIPE
- ERROR_BUFFER_OVERFLOW
- ERROR_BUSY
- ERROR_BUSY_DRIVE
- ERROR_BUS_RESET
- ERROR_CALL_NOT_IMPLEMENTED
- ERROR_CANCELLED
- ERROR_CANCEL_VIOLATION
- ERROR_CANNOT_COPY
- ERROR_CANNOT_FIND_WND_CLASS
- ERROR_CANNOT_IMPERSONATE
- ERROR_CANNOT_MAKE
- ERROR_CANNOT_OPEN_PROFILE
- ERROR_CANTOPEN
- ERROR_CANTREAD
- ERROR_CANTWRITE
- ERROR_CANT_ACCESS_DOMAIN_INFO
- ERROR_CANT_DISABLE_MANDATORY
- ERROR_CANT_OPEN_ANONYMOUS
- ERROR_CAN_NOT_COMPLETE
- ERROR_CAN_NOT_DEL_LOCAL_WINS
- ERROR_CHILD_MUST_BE_VOLATILE
- ERROR_CHILD_NOT_COMPLETE
- ERROR_CHILD_WINDOW_MENU
- ERROR_CIRCULAR_DEPENDENCY
- ERROR_CLASS_ALREADY_EXISTS
- ERROR_CLASS_DOES_NOT_EXIST
- ERROR_CLASS_HAS_WINDOWS
- ERROR_CLIPBOARD_NOT_OPEN
- ERROR_CLIPPING_NOT_SUPPORTED
- ERROR_CONNECTION_ABORTED
- ERROR_CONNECTION_ACTIVE
- ERROR_CONNECTION_COUNT_LIMIT
- ERROR_CONNECTION_INVALID
- ERROR_CONNECTION_REFUSED
- ERROR_CONNECTION_UNAVAIL
- ERROR_CONTROL_ID_NOT_FOUND
- ERROR_COUNTER_TIMEOUT
- ERROR_CRC
- ERROR_CURRENT_DIRECTORY
- ERROR_DATABASE_DOES_NOT_EXIST
- ERROR_DC_NOT_FOUND
- ERROR_DEPENDENT_SERVICES_RUNNING
- ERROR_DESTROY_OBJECT_OF_OTHER_THREAD
- ERROR_DEVICE_ALREADY_REMEMBERED
- ERROR_DEVICE_IN_USE
- ERROR_DEVICE_NOT_PARTITIONED
- ERROR_DEV_NOT_EXIST
- ERROR_DIRECTORY
- ERROR_DIRECT_ACCESS_HANDLE
- ERROR_DIR_NOT_EMPTY
- ERROR_DIR_NOT_ROOT
- ERROR_DISCARDED
- ERROR_DISK_CHANGE
- ERROR_DISK_CORRUPT
- ERROR_DISK_FULL
- ERROR_DISK_OPERATION_FAILED
- ERROR_DISK_RECALIBRATE_FAILED
- ERROR_DISK_RESET_FAILED
- ERROR_DLL_INIT_FAILED
- ERROR_DOMAIN_CONTROLLER_NOT_FOUND
- ERROR_DOMAIN_EXISTS
- ERROR_DOMAIN_LIMIT_EXCEEDED
- ERROR_DOMAIN_TRUST_INCONSISTENT
- ERROR_DRIVE_LOCKED
- ERROR_DUPLICATE_SERVICE_NAME
- ERROR_DUP_DOMAINNAME
- ERROR_DUP_NAME
- ERROR_DYNLINK_FROM_INVALID_RING
- ERROR_EAS_DIDNT_FIT
- ERROR_EAS_NOT_SUPPORTED
- ERROR_EA_ACCESS_DENIED
- ERROR_EA_FILE_CORRUPT
- ERROR_EA_LIST_INCONSISTENT
- ERROR_EA_TABLE_FULL
- ERROR_END_OF_MEDIA
- ERROR_ENVVAR_NOT_FOUND
- ERROR_EOM_OVERFLOW
- ERROR_EVENTLOG_CANT_START
- ERROR_EVENTLOG_FILE_CHANGED
- ERROR_EVENTLOG_FILE_CORRUPT
- ERROR_EXCEPTION_IN_SERVICE
- ERROR_EXCL_SEM_ALREADY_OWNED
- ERROR_EXE_MARKED_INVALID
- ERROR_EXTENDED_ERROR
- ERROR_FAILED_SERVICE_CONTROLLER_CONNECT
- ERROR_FAIL_I24
- ERROR_FILEMARK_DETECTED
- ERROR_FILENAME_EXCED_RANGE
- ERROR_FILE_CORRUPT
- ERROR_FILE_EXISTS
- ERROR_FILE_INVALID
- ERROR_FILE_NOT_FOUND
- ERROR_FLOPPY_BAD_REGISTERS
- ERROR_FLOPPY_ID_MARK_NOT_FOUND
- ERROR_FLOPPY_UNKNOWN_ERROR
- ERROR_FLOPPY_WRONG_CYLINDER
- ERROR_FULLSCREEN_MODE
- ERROR_FULL_BACKUP
- ERROR_GENERIC_NOT_MAPPED
- ERROR_GEN_FAILURE
- ERROR_GLOBAL_ONLY_HOOK
- ERROR_GRACEFUL_DISCONNECT
- ERROR_GROUP_EXISTS
- ERROR_HANDLE_DISK_FULL
- ERROR_HANDLE_EOF
- ERROR_HOOK_NEEDS_HMOD
- ERROR_HOOK_NOT_INSTALLED
- ERROR_HOST_UNREACHABLE
- ERROR_HOTKEY_ALREADY_REGISTERED
- ERROR_HOTKEY_NOT_REGISTERED
- ERROR_HWNDS_HAVE_DIFF_PARENT
- ERROR_ILL_FORMED_PASSWORD
- ERROR_INCORRECT_ADDRESS
- ERROR_INC_BACKUP
- ERROR_INFLOOP_IN_RELOC_CHAIN
- ERROR_INSUFFICIENT_BUFFER
- ERROR_INTERNAL_DB_CORRUPTION
- ERROR_INTERNAL_DB_ERROR
- ERROR_INTERNAL_ERROR
- ERROR_INVALID_ACCEL_HANDLE
- ERROR_INVALID_ACCESS
- ERROR_INVALID_ACCOUNT_NAME
- ERROR_INVALID_ACL
- ERROR_INVALID_ADDRESS
- ERROR_INVALID_AT_INTERRUPT_TIME
- ERROR_INVALID_BLOCK
- ERROR_INVALID_BLOCK_LENGTH
- ERROR_INVALID_CATEGORY
- ERROR_INVALID_COMBOBOX_MESSAGE
- ERROR_INVALID_COMPUTERNAME
- ERROR_INVALID_CURSOR_HANDLE
- ERROR_INVALID_DATA
- ERROR_INVALID_DATATYPE
- ERROR_INVALID_DOMAINNAME
- ERROR_INVALID_DOMAIN_ROLE
- ERROR_INVALID_DOMAIN_STATE
- ERROR_INVALID_DRIVE
- ERROR_INVALID_DWP_HANDLE
- ERROR_INVALID_EA_HANDLE
- ERROR_INVALID_EA_NAME
- ERROR_INVALID_EDIT_HEIGHT
- ERROR_INVALID_ENVIRONMENT
- ERROR_INVALID_EVENTNAME
- ERROR_INVALID_EVENT_COUNT
- ERROR_INVALID_EXE_SIGNATURE
- ERROR_INVALID_FILTER_PROC
- ERROR_INVALID_FLAGS
- ERROR_INVALID_FLAG_NUMBER
- ERROR_INVALID_FORM_NAME
- ERROR_INVALID_FORM_SIZE
- ERROR_INVALID_FUNCTION
- ERROR_INVALID_GROUPNAME
- ERROR_INVALID_GROUP_ATTRIBUTES
- ERROR_INVALID_GW_COMMAND
- ERROR_INVALID_HANDLE
- ERROR_INVALID_HOOK_FILTER
- ERROR_INVALID_HOOK_HANDLE
- ERROR_INVALID_ICON_HANDLE
- ERROR_INVALID_ID_AUTHORITY
- ERROR_INVALID_INDEX
- ERROR_INVALID_LB_MESSAGE
- ERROR_INVALID_LEVEL
- ERROR_INVALID_LIST_FORMAT
- ERROR_INVALID_LOGON_HOURS
- ERROR_INVALID_LOGON_TYPE
- ERROR_INVALID_MEMBER
- ERROR_INVALID_MENU_HANDLE
- ERROR_INVALID_MESSAGE
- ERROR_INVALID_MESSAGEDEST
- ERROR_INVALID_MESSAGENAME
- ERROR_INVALID_MINALLOCSIZE
- ERROR_INVALID_MODULETYPE
- ERROR_INVALID_MSGBOX_STYLE
- ERROR_INVALID_NAME
- ERROR_INVALID_NETNAME
- ERROR_INVALID_ORDINAL
- ERROR_INVALID_OWNER
- ERROR_INVALID_PARAMETER
- ERROR_INVALID_PASSWORD
- ERROR_INVALID_PASSWORDNAME
- ERROR_INVALID_PIXEL_FORMAT
- ERROR_INVALID_PRIMARY_GROUP
- ERROR_INVALID_PRINTER_COMMAND
- ERROR_INVALID_PRINTER_NAME
- ERROR_INVALID_PRINTER_STATE
- ERROR_INVALID_PRIORITY
- ERROR_INVALID_SCROLLBAR_RANGE
- ERROR_INVALID_SECURITY_DESCR
- ERROR_INVALID_SEGDPL
- ERROR_INVALID_SEGMENT_NUMBER
- ERROR_INVALID_SEPARATOR_FILE
- ERROR_INVALID_SERVER_STATE
- ERROR_INVALID_SERVICENAME
- ERROR_INVALID_SERVICE_ACCOUNT
- ERROR_INVALID_SERVICE_CONTROL
- ERROR_INVALID_SERVICE_LOCK
- ERROR_INVALID_SHARENAME
- ERROR_INVALID_SHOWWIN_COMMAND
- ERROR_INVALID_SID
- ERROR_INVALID_SIGNAL_NUMBER
- ERROR_INVALID_SPI_VALUE
- ERROR_INVALID_STACKSEG
- ERROR_INVALID_STARTING_CODESEG
- ERROR_INVALID_SUB_AUTHORITY
- ERROR_INVALID_TARGET_HANDLE
- ERROR_INVALID_THREAD_ID
- ERROR_INVALID_TIME
- ERROR_INVALID_USER_BUFFER
- ERROR_INVALID_VERIFY_SWITCH
- ERROR_INVALID_WINDOW_HANDLE
- ERROR_INVALID_WINDOW_STYLE
- ERROR_INVALID_WORKSTATION
- ERROR_IOPL_NOT_ENABLED
- ERROR_IO_DEVICE
- ERROR_IO_INCOMPLETE
- ERROR_IO_PENDING
- ERROR_IRQ_BUSY
- ERROR_IS_JOINED
- ERROR_IS_JOIN_PATH
- ERROR_IS_JOIN_TARGET
- ERROR_IS_SUBSTED
- ERROR_IS_SUBST_PATH
- ERROR_IS_SUBST_TARGET
- ERROR_ITERATED_DATA_EXCEEDS_64k
- ERROR_JOIN_TO_JOIN
- ERROR_JOIN_TO_SUBST
- ERROR_JOURNAL_HOOK_SET
- ERROR_KEY_DELETED
- ERROR_KEY_HAS_CHILDREN
- ERROR_LABEL_TOO_LONG
- ERROR_LAST_ADMIN
- ERROR_LB_WITHOUT_TABSTOPS
- ERROR_LISTBOX_ID_NOT_FOUND
- ERROR_LM_CROSS_ENCRYPTION_REQUIRED
- ERROR_LOCAL_USER_SESSION_KEY
- ERROR_LOCKED
- ERROR_LOCK_FAILED
- ERROR_LOCK_VIOLATION
- ERROR_LOGIN_TIME_RESTRICTION
- ERROR_LOGIN_WKSTA_RESTRICTION
- ERROR_LOGON_FAILURE
- ERROR_LOGON_NOT_GRANTED
- ERROR_LOGON_SESSION_COLLISION
- ERROR_LOGON_SESSION_EXISTS
- ERROR_LOGON_TYPE_NOT_GRANTED
- ERROR_LOG_FILE_FULL
- ERROR_LUIDS_EXHAUSTED
- ERROR_MAPPED_ALIGNMENT
- ERROR_MAX_THRDS_REACHED
- ERROR_MEDIA_CHANGED
- ERROR_MEMBERS_PRIMARY_GROUP
- ERROR_MEMBER_IN_ALIAS
- ERROR_MEMBER_IN_GROUP
- ERROR_MEMBER_NOT_IN_ALIAS
- ERROR_MEMBER_NOT_IN_GROUP
- ERROR_METAFILE_NOT_SUPPORTED
- ERROR_META_EXPANSION_TOO_LONG
- ERROR_MOD_NOT_FOUND
- ERROR_MORE_DATA
- ERROR_MORE_WRITES
- ERROR_MR_MID_NOT_FOUND
- ERROR_NEGATIVE_SEEK
- ERROR_NESTING_NOT_ALLOWED
- ERROR_NETLOGON_NOT_STARTED
- ERROR_NETNAME_DELETED
- ERROR_NETWORK_ACCESS_DENIED
- ERROR_NETWORK_BUSY
- ERROR_NETWORK_UNREACHABLE
- ERROR_NET_WRITE_FAULT
- ERROR_NOACCESS
- ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT
- ERROR_NOLOGON_SERVER_TRUST_ACCOUNT
- ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT
- ERROR_NONE_MAPPED
- ERROR_NON_MDICHILD_WINDOW
- ERROR_NOTIFY_ENUM_DIR
- ERROR_NOT_ALL_ASSIGNED
- ERROR_NOT_CHILD_WINDOW
- ERROR_NOT_CONNECTED
- ERROR_NOT_CONTAINER
- ERROR_NOT_DOS_DISK
- ERROR_NOT_ENOUGH_MEMORY
- ERROR_NOT_ENOUGH_QUOTA
- ERROR_NOT_ENOUGH_SERVER_MEMORY
- ERROR_NOT_JOINED
- ERROR_NOT_LOCKED
- ERROR_NOT_LOGON_PROCESS
- ERROR_NOT_OWNER
- ERROR_NOT_READY
- ERROR_NOT_REGISTRY_FILE
- ERROR_NOT_SAME_DEVICE
- ERROR_NOT_SUBSTED
- ERROR_NOT_SUPPORTED
- ERROR_NO_BROWSER_SERVERS_FOUND
- ERROR_NO_DATA
- ERROR_NO_DATA_DETECTED
- ERROR_NO_IMPERSONATION_TOKEN
- ERROR_NO_INHERITANCE
- ERROR_NO_LOGON_SERVERS
- ERROR_NO_LOG_SPACE
- ERROR_NO_MEDIA_IN_DRIVE
- ERROR_NO_MORE_FILES
- ERROR_NO_MORE_ITEMS
- ERROR_NO_MORE_SEARCH_HANDLES
- ERROR_NO_NETWORK
- ERROR_NO_NET_OR_BAD_PATH
- ERROR_NO_PROC_SLOTS
- ERROR_NO_QUOTAS_FOR_ACCOUNT
- ERROR_NO_SCROLLBARS
- ERROR_NO_SECURITY_ON_OBJECT
- ERROR_NO_SHUTDOWN_IN_PROGRESS
- ERROR_NO_SIGNAL_SENT
- ERROR_NO_SPOOL_SPACE
- ERROR_NO_SUCH_ALIAS
- ERROR_NO_SUCH_DOMAIN
- ERROR_NO_SUCH_GROUP
- ERROR_NO_SUCH_LOGON_SESSION
- ERROR_NO_SUCH_MEMBER
- ERROR_NO_SUCH_PACKAGE
- ERROR_NO_SUCH_PRIVILEGE
- ERROR_NO_SUCH_USER
- ERROR_NO_SYSTEM_MENU
- ERROR_NO_TOKEN
- ERROR_NO_TRUST_LSA_SECRET
- ERROR_NO_TRUST_SAM_ACCOUNT
- ERROR_NO_UNICODE_TRANSLATION
- ERROR_NO_USER_SESSION_KEY
- ERROR_NO_VOLUME_LABEL
- ERROR_NO_WILDCARD_CHARACTERS
- ERROR_NT_CROSS_ENCRYPTION_REQUIRED
- ERROR_NULL_LM_PASSWORD
- ERROR_OPEN_FAILED
- ERROR_OPEN_FILES
- ERROR_OPERATION_ABORTED
- ERROR_OUTOFMEMORY
- ERROR_OUT_OF_PAPER
- ERROR_OUT_OF_STRUCTURES
- ERROR_PARTIAL_COPY
- ERROR_PARTITION_FAILURE
- ERROR_PASSWORD_EXPIRED
- ERROR_PASSWORD_MUST_CHANGE
- ERROR_PASSWORD_RESTRICTION
- ERROR_PATH_BUSY
- ERROR_PATH_NOT_FOUND
- ERROR_PIPE_BUSY
- ERROR_PIPE_CONNECTED
- ERROR_PIPE_LISTENING
- ERROR_PIPE_NOT_CONNECTED
- ERROR_POPUP_ALREADY_ACTIVE
- ERROR_PORT_UNREACHABLE
- ERROR_POSSIBLE_DEADLOCK
- ERROR_PRINTER_ALREADY_EXISTS
- ERROR_PRINTER_DELETED
- ERROR_PRINTER_DRIVER_ALREADY_INSTALLED
- ERROR_PRINTER_DRIVER_IN_USE
- ERROR_PRINTQ_FULL
- ERROR_PRINT_CANCELLED
- ERROR_PRINT_MONITOR_ALREADY_INSTALLED
- ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED
- ERROR_PRIVATE_DIALOG_INDEX
- ERROR_PRIVILEGE_NOT_HELD
- ERROR_PROCESS_ABORTED
- ERROR_PROC_NOT_FOUND
- ERROR_PROTOCOL_UNREACHABLE
- ERROR_READ_FAULT
- ERROR_REC_NON_EXISTENT
- ERROR_REDIRECTOR_HAS_OPEN_HANDLES
- ERROR_REDIR_PAUSED
- ERROR_REGISTRY_CORRUPT
- ERROR_REGISTRY_IO_FAILED
- ERROR_REGISTRY_RECOVERED
- ERROR_RELOC_CHAIN_XEEDS_SEGLIM
- ERROR_REMOTE_SESSION_LIMIT_EXCEEDED
- ERROR_REM_NOT_LIST
- ERROR_REQUEST_ABORTED
- ERROR_REQ_NOT_ACCEP
- ERROR_RESOURCE_DATA_NOT_FOUND
- ERROR_RESOURCE_LANG_NOT_FOUND
- ERROR_RESOURCE_NAME_NOT_FOUND
- ERROR_RESOURCE_TYPE_NOT_FOUND
- ERROR_RETRY
- ERROR_REVISION_MISMATCH
- ERROR_RING2SEG_MUST_BE_MOVABLE
- ERROR_RING2_STACK_IN_USE
- ERROR_RPL_NOT_ALLOWED
- ERROR_RXACT_COMMIT_FAILURE
- ERROR_RXACT_INVALID_STATE
- ERROR_SAME_DRIVE
- ERROR_SCREEN_ALREADY_LOCKED
- ERROR_SECRET_TOO_LONG
- ERROR_SECTOR_NOT_FOUND
- ERROR_SEEK
- ERROR_SEEK_ON_DEVICE
- ERROR_SEM_IS_SET
- ERROR_SEM_NOT_FOUND
- ERROR_SEM_OWNER_DIED
- ERROR_SEM_TIMEOUT
- ERROR_SEM_USER_LIMIT
- ERROR_SERIAL_NO_DEVICE
- ERROR_SERVER_DISABLED
- ERROR_SERVER_HAS_OPEN_HANDLES
- ERROR_SERVER_NOT_DISABLED
- ERROR_SERVICE_ALREADY_RUNNING
- ERROR_SERVICE_CANNOT_ACCEPT_CTRL
- ERROR_SERVICE_DATABASE_LOCKED
- ERROR_SERVICE_DEPENDENCY_DELETED
- ERROR_SERVICE_DEPENDENCY_FAIL
- ERROR_SERVICE_DISABLED
- ERROR_SERVICE_DOES_NOT_EXIST
- ERROR_SERVICE_EXISTS
- ERROR_SERVICE_LOGON_FAILED
- ERROR_SERVICE_MARKED_FOR_DELETE
- ERROR_SERVICE_NEVER_STARTED
- ERROR_SERVICE_NOT_ACTIVE
- ERROR_SERVICE_NOT_FOUND
- ERROR_SERVICE_NO_THREAD
- ERROR_SERVICE_REQUEST_TIMEOUT
- ERROR_SERVICE_SPECIFIC_ERROR
- ERROR_SERVICE_START_HANG
- ERROR_SESSION_CREDENTIAL_CONFLICT
- ERROR_SETCOUNT_ON_BAD_LB
- ERROR_SETMARK_DETECTED
- ERROR_SHARING_BUFFER_EXCEEDED
- ERROR_SHARING_PAUSED
- ERROR_SHARING_VIOLATION
- ERROR_SHUTDOWN_IN_PROGRESS
- ERROR_SIGNAL_PENDING
- ERROR_SIGNAL_REFUSED
- ERROR_SOME_NOT_MAPPED
- ERROR_SPECIAL_ACCOUNT
- ERROR_SPECIAL_GROUP
- ERROR_SPECIAL_USER
- ERROR_SPL_NO_ADDJOB
- ERROR_SPL_NO_STARTDOC
- ERROR_SPOOL_FILE_NOT_FOUND
- ERROR_STACK_OVERFLOW
- ERROR_STATIC_INIT
- ERROR_SUBST_TO_JOIN
- ERROR_SUBST_TO_SUBST
- ERROR_SUCCESS
- ERROR_SWAPERROR
- ERROR_SYSTEM_TRACE
- ERROR_THREAD_1_INACTIVE
- ERROR_TLW_WITH_WSCHILD
- ERROR_TOKEN_ALREADY_IN_USE
- ERROR_TOO_MANY_CMDS
- ERROR_TOO_MANY_CONTEXT_IDS
- ERROR_TOO_MANY_LUIDS_REQUESTED
- ERROR_TOO_MANY_MODULES
- ERROR_TOO_MANY_MUXWAITERS
- ERROR_TOO_MANY_NAMES
- ERROR_TOO_MANY_OPEN_FILES
- ERROR_TOO_MANY_POSTS
- ERROR_TOO_MANY_SECRETS
- ERROR_TOO_MANY_SEMAPHORES
- ERROR_TOO_MANY_SEM_REQUESTS
- ERROR_TOO_MANY_SESS
- ERROR_TOO_MANY_SIDS
- ERROR_TOO_MANY_TCBS
- ERROR_TRANSFORM_NOT_SUPPORTED
- ERROR_TRUSTED_DOMAIN_FAILURE
- ERROR_TRUSTED_RELATIONSHIP_FAILURE
- ERROR_TRUST_FAILURE
- ERROR_UNABLE_TO_LOCK_MEDIA
- ERROR_UNABLE_TO_UNLOAD_MEDIA
- ERROR_UNEXP_NET_ERR
- ERROR_UNKNOWN_PORT
- ERROR_UNKNOWN_PRINTER_DRIVER
- ERROR_UNKNOWN_PRINTPROCESSOR
- ERROR_UNKNOWN_PRINT_MONITOR
- ERROR_UNKNOWN_REVISION
- ERROR_UNRECOGNIZED_MEDIA
- ERROR_UNRECOGNIZED_VOLUME
- ERROR_USER_EXISTS
- ERROR_USER_MAPPED_FILE
- ERROR_VC_DISCONNECTED
- ERROR_WAIT_NO_CHILDREN
- ERROR_WINDOW_NOT_COMBOBOX
- ERROR_WINDOW_NOT_DIALOG
- ERROR_WINDOW_OF_OTHER_THREAD
- ERROR_WINS_INTERNAL
- ERROR_WRITE_FAULT
- ERROR_WRITE_PROTECT
- ERROR_WRONG_DISK
- ERROR_WRONG_PASSWORD
- E_ABORT
- E_ACCESSDENIED
- E_FAIL
- E_HANDLE
- E_INVALIDARG
- E_NOINTERFACE
- E_NOTIMPL
- E_OUTOFMEMORY
- E_POINTER
- E_UNEXPECTED
- FACILITY_CONTROL
- FACILITY_DISPATCH
- FACILITY_ITF
- FACILITY_NT_BIT
- FACILITY_NULL
- FACILITY_RPC
- FACILITY_STORAGE
- FACILITY_WIN32
- FACILITY_WINDOWS
- INPLACE_E_FIRST
- INPLACE_E_LAST
- INPLACE_E_NOTOOLSPACE
- INPLACE_E_NOTUNDOABLE
- INPLACE_S_FIRST
- INPLACE_S_LAST
- INPLACE_S_TRUNCATED
- MARSHAL_E_FIRST
- MARSHAL_E_LAST
- MARSHAL_S_FIRST
- MARSHAL_S_LAST
- MEM_E_INVALID_LINK
- MEM_E_INVALID_ROOT
- MEM_E_INVALID_SIZE
- MK_E_CANTOPENFILE
- MK_E_CONNECTMANUALLY
- MK_E_ENUMERATION_FAILED
- MK_E_EXCEEDEDDEADLINE
- MK_E_FIRST
- MK_E_INTERMEDIATEINTERFACENOTSUPPORTED
- MK_E_INVALIDEXTENSION
- MK_E_LAST
- MK_E_MUSTBOTHERUSER
- MK_E_NEEDGENERIC
- MK_E_NOINVERSE
- MK_E_NOOBJECT
- MK_E_NOPREFIX
- MK_E_NOSTORAGE
- MK_E_NOTBINDABLE
- MK_E_NOTBOUND
- MK_E_NO_NORMALIZED
- MK_E_SYNTAX
- MK_E_UNAVAILABLE
- MK_S_FIRST
- MK_S_HIM
- MK_S_LAST
- MK_S_ME
- MK_S_MONIKERALREADYREGISTERED
- MK_S_REDUCED_TO_SELF
- MK_S_US
- NOERROR
- NO_ERROR
- OLEOBJ_E_FIRST
- OLEOBJ_E_INVALIDVERB
- OLEOBJ_E_LAST
- OLEOBJ_E_NOVERBS
- OLEOBJ_S_CANNOT_DOVERB_NOW
- OLEOBJ_S_FIRST
- OLEOBJ_S_INVALIDHWND
- OLEOBJ_S_INVALIDVERB
- OLEOBJ_S_LAST
- OLE_E_ADVF
- OLE_E_ADVISENOTSUPPORTED
- OLE_E_BLANK
- OLE_E_CANTCONVERT
- OLE_E_CANT_BINDTOSOURCE
- OLE_E_CANT_GETMONIKER
- OLE_E_CLASSDIFF
- OLE_E_ENUM_NOMORE
- OLE_E_FIRST
- OLE_E_INVALIDHWND
- OLE_E_INVALIDRECT
- OLE_E_LAST
- OLE_E_NOCACHE
- OLE_E_NOCONNECTION
- OLE_E_NOSTORAGE
- OLE_E_NOTRUNNING
- OLE_E_NOT_INPLACEACTIVE
- OLE_E_OLEVERB
- OLE_E_PROMPTSAVECANCELLED
- OLE_E_STATIC
- OLE_E_WRONGCOMPOBJ
- OLE_S_FIRST
- OLE_S_LAST
- OLE_S_MAC_CLIPFORMAT
- OLE_S_STATIC
- OLE_S_USEREG
- REGDB_E_CLASSNOTREG
- REGDB_E_FIRST
- REGDB_E_IIDNOTREG
- REGDB_E_INVALIDVALUE
- REGDB_E_KEYMISSING
- REGDB_E_LAST
- REGDB_E_READREGDB
- REGDB_E_WRITEREGDB
- REGDB_S_FIRST
- REGDB_S_LAST
- RPC_E_ATTEMPTED_MULTITHREAD
- RPC_E_CALL_CANCELED
- RPC_E_CALL_REJECTED
- RPC_E_CANTCALLOUT_AGAIN
- RPC_E_CANTCALLOUT_INASYNCCALL
- RPC_E_CANTCALLOUT_INEXTERNALCALL
- RPC_E_CANTCALLOUT_ININPUTSYNCCALL
- RPC_E_CANTPOST_INSENDCALL
- RPC_E_CANTTRANSMIT_CALL
- RPC_E_CHANGED_MODE
- RPC_E_CLIENT_CANTMARSHAL_DATA
- RPC_E_CLIENT_CANTUNMARSHAL_DATA
- RPC_E_CLIENT_DIED
- RPC_E_CONNECTION_TERMINATED
- RPC_E_DISCONNECTED
- RPC_E_FAULT
- RPC_E_INVALIDMETHOD
- RPC_E_INVALID_CALLDATA
- RPC_E_INVALID_DATA
- RPC_E_INVALID_DATAPACKET
- RPC_E_INVALID_PARAMETER
- RPC_E_NOT_REGISTERED
- RPC_E_OUT_OF_RESOURCES
- RPC_E_RETRY
- RPC_E_SERVERCALL_REJECTED
- RPC_E_SERVERCALL_RETRYLATER
- RPC_E_SERVERFAULT
- RPC_E_SERVER_CANTMARSHAL_DATA
- RPC_E_SERVER_CANTUNMARSHAL_DATA
- RPC_E_SERVER_DIED
- RPC_E_SERVER_DIED_DNE
- RPC_E_SYS_CALL_FAILED
- RPC_E_THREAD_NOT_INIT
- RPC_E_UNEXPECTED
- RPC_E_WRONG_THREAD
- RPC_S_ADDRESS_ERROR
- RPC_S_ALREADY_LISTENING
- RPC_S_ALREADY_REGISTERED
- RPC_S_BINDING_HAS_NO_AUTH
- RPC_S_BINDING_INCOMPLETE
- RPC_S_CALL_CANCELLED
- RPC_S_CALL_FAILED
- RPC_S_CALL_FAILED_DNE
- RPC_S_CALL_IN_PROGRESS
- RPC_S_CANNOT_SUPPORT
- RPC_S_CANT_CREATE_ENDPOINT
- RPC_S_COMM_FAILURE
- RPC_S_DUPLICATE_ENDPOINT
- RPC_S_ENTRY_ALREADY_EXISTS
- RPC_S_ENTRY_NOT_FOUND
- RPC_S_FP_DIV_ZERO
- RPC_S_FP_OVERFLOW
- RPC_S_FP_UNDERFLOW
- RPC_S_GROUP_MEMBER_NOT_FOUND
- RPC_S_INCOMPLETE_NAME
- RPC_S_INTERFACE_NOT_FOUND
- RPC_S_INTERNAL_ERROR
- RPC_S_INVALID_AUTH_IDENTITY
- RPC_S_INVALID_BINDING
- RPC_S_INVALID_BOUND
- RPC_S_INVALID_ENDPOINT_FORMAT
- RPC_S_INVALID_NAF_ID
- RPC_S_INVALID_NAME_SYNTAX
- RPC_S_INVALID_NETWORK_OPTIONS
- RPC_S_INVALID_NET_ADDR
- RPC_S_INVALID_OBJECT
- RPC_S_INVALID_RPC_PROTSEQ
- RPC_S_INVALID_STRING_BINDING
- RPC_S_INVALID_STRING_UUID
- RPC_S_INVALID_TAG
- RPC_S_INVALID_TIMEOUT
- RPC_S_INVALID_VERS_OPTION
- RPC_S_MAX_CALLS_TOO_SMALL
- RPC_S_NAME_SERVICE_UNAVAILABLE
- RPC_S_NOTHING_TO_EXPORT
- RPC_S_NOT_ALL_OBJS_UNEXPORTED
- RPC_S_NOT_CANCELLED
- RPC_S_NOT_LISTENING
- RPC_S_NOT_RPC_ERROR
- RPC_S_NO_BINDINGS
- RPC_S_NO_CALL_ACTIVE
- RPC_S_NO_CONTEXT_AVAILABLE
- RPC_S_NO_ENDPOINT_FOUND
- RPC_S_NO_ENTRY_NAME
- RPC_S_NO_INTERFACES
- RPC_S_NO_MORE_BINDINGS
- RPC_S_NO_MORE_MEMBERS
- RPC_S_NO_PRINC_NAME
- RPC_S_NO_PROTSEQS
- RPC_S_NO_PROTSEQS_REGISTERED
- RPC_S_OBJECT_NOT_FOUND
- RPC_S_OUT_OF_RESOURCES
- RPC_S_PROCNUM_OUT_OF_RANGE
- RPC_S_PROTOCOL_ERROR
- RPC_S_PROTSEQ_NOT_FOUND
- RPC_S_PROTSEQ_NOT_SUPPORTED
- RPC_S_SEC_PKG_ERROR
- RPC_S_SERVER_TOO_BUSY
- RPC_S_SERVER_UNAVAILABLE
- RPC_S_STRING_TOO_LONG
- RPC_S_TYPE_ALREADY_REGISTERED
- RPC_S_UNKNOWN_AUTHN_LEVEL
- RPC_S_UNKNOWN_AUTHN_SERVICE
- RPC_S_UNKNOWN_AUTHN_TYPE
- RPC_S_UNKNOWN_AUTHZ_SERVICE
- RPC_S_UNKNOWN_IF
- RPC_S_UNKNOWN_MGR_TYPE
- RPC_S_UNSUPPORTED_AUTHN_LEVEL
- RPC_S_UNSUPPORTED_NAME_SYNTAX
- RPC_S_UNSUPPORTED_TRANS_SYN
- RPC_S_UNSUPPORTED_TYPE
- RPC_S_UUID_LOCAL_ONLY
- RPC_S_UUID_NO_ADDRESS
- RPC_S_WRONG_KIND_OF_BINDING
- RPC_S_ZERO_DIVIDE
- RPC_X_BAD_STUB_DATA
- RPC_X_BYTE_COUNT_TOO_SMALL
- RPC_X_ENUM_VALUE_OUT_OF_RANGE
- RPC_X_INVALID_ES_ACTION
- RPC_X_NO_MORE_ENTRIES
- RPC_X_NULL_REF_POINTER
- RPC_X_SS_CANNOT_GET_CALL_HANDLE
- RPC_X_SS_CHAR_TRANS_OPEN_FAIL
- RPC_X_SS_CHAR_TRANS_SHORT_FILE
- RPC_X_SS_CONTEXT_DAMAGED
- RPC_X_SS_HANDLES_MISMATCH
- RPC_X_SS_IN_NULL_CONTEXT
- RPC_X_WRONG_ES_VERSION
- RPC_X_WRONG_STUB_VERSION
- SEVERITY_ERROR
- SEVERITY_SUCCESS
- STG_E_ABNORMALAPIEXIT
- STG_E_ACCESSDENIED
- STG_E_CANTSAVE
- STG_E_DISKISWRITEPROTECTED
- STG_E_EXTANTMARSHALLINGS
- STG_E_FILEALREADYEXISTS
- STG_E_FILENOTFOUND
- STG_E_INSUFFICIENTMEMORY
- STG_E_INUSE
- STG_E_INVALIDFLAG
- STG_E_INVALIDFUNCTION
- STG_E_INVALIDHANDLE
- STG_E_INVALIDHEADER
- STG_E_INVALIDNAME
- STG_E_INVALIDPARAMETER
- STG_E_INVALIDPOINTER
- STG_E_LOCKVIOLATION
- STG_E_MEDIUMFULL
- STG_E_NOMOREFILES
- STG_E_NOTCURRENT
- STG_E_NOTFILEBASEDSTORAGE
- STG_E_OLDDLL
- STG_E_OLDFORMAT
- STG_E_PATHNOTFOUND
- STG_E_READFAULT
- STG_E_REVERTED
- STG_E_SEEKERROR
- STG_E_SHAREREQUIRED
- STG_E_SHAREVIOLATION
- STG_E_TOOMANYOPENFILES
- STG_E_UNIMPLEMENTEDFUNCTION
- STG_E_UNKNOWN
- STG_E_WRITEFAULT
- STG_S_CONVERTED
- S_FALSE
- S_OK
- TYPE_E_AMBIGUOUSNAME
- TYPE_E_BADMODULEKIND
- TYPE_E_BUFFERTOOSMALL
- TYPE_E_CANTCREATETMPFILE
- TYPE_E_CANTLOADLIBRARY
- TYPE_E_CIRCULARTYPE
- TYPE_E_DLLFUNCTIONNOTFOUND
- TYPE_E_DUPLICATEID
- TYPE_E_ELEMENTNOTFOUND
- TYPE_E_INCONSISTENTPROPFUNCS
- TYPE_E_INVALIDID
- TYPE_E_INVALIDSTATE
- TYPE_E_INVDATAREAD
- TYPE_E_IOERROR
- TYPE_E_LIBNOTREGISTERED
- TYPE_E_NAMECONFLICT
- TYPE_E_OUTOFBOUNDS
- TYPE_E_QUALIFIEDNAMEDISALLOWED
- TYPE_E_REGISTRYACCESS
- TYPE_E_SIZETOOBIG
- TYPE_E_TYPEMISMATCH
- TYPE_E_UNDEFINEDTYPE
- TYPE_E_UNKNOWNLCID
- TYPE_E_UNSUPFORMAT
- TYPE_E_WRONGTYPEKIND
- VIEW_E_DRAW
- VIEW_E_FIRST
- VIEW_E_LAST
- VIEW_S_ALREADY_FROZEN
- VIEW_S_FIRST
- VIEW_S_LAST
-);
-
-sub AUTOLOAD {
- # This AUTOLOAD is used to 'autoload' constants from the constant()
- # XS function. If a constant is not found then control is passed
- # to the AUTOLOAD in AutoLoader.
-
- my($constname);
- ($constname = $AUTOLOAD) =~ s/.*:://;
- #reset $! to zero to reset any current errors.
- local $! = 0;
- local $^E = 0;
- my $val = constant($constname, @_ ? $_[0] : 0);
- if ($! != 0) {
- if ($! =~ /Invalid/) {
- $AutoLoader::AUTOLOAD = $AUTOLOAD;
- goto &AutoLoader::AUTOLOAD;
- }
- else {
- ($pack,$file,$line) = caller;
- die "Your vendor has not defined Win32::WinError macro $constname, used at $file line $line.";
- }
- }
- eval "sub $AUTOLOAD { $val }";
- goto &$AUTOLOAD;
-}
-
-bootstrap Win32::WinError;
-
-# Preloaded methods go here.
-
-# Autoload methods go after __END__, and are processed by the autosplit program.
-
-1;
-__END__
diff --git a/Master/tlpkg/tlperl/lib/Win32API/File.pm b/Master/tlpkg/tlperl/lib/Win32API/File.pm
index 03b736eb77a..ca7cf3c8995 100644
--- a/Master/tlpkg/tlperl/lib/Win32API/File.pm
+++ b/Master/tlpkg/tlperl/lib/Win32API/File.pm
@@ -10,7 +10,7 @@ use Fcntl qw( O_RDONLY O_RDWR O_WRONLY O_APPEND O_BINARY O_TEXT );
use vars qw( $VERSION @ISA );
use vars qw( @EXPORT @EXPORT_OK @EXPORT_FAIL %EXPORT_TAGS );
-$VERSION= '0.1201';
+$VERSION= '0.1202';
use base qw( Exporter DynaLoader Tie::Handle IO::File );
@@ -946,7 +946,7 @@ This is a Perl-friendly wrapper around C<CreateFile>.
On failure, C<$hObject> gets set to a false value and C<regLastError()>
and C<$^E> are set to the reason for the failure. Otherwise,
-C<$hObject> gets set to a Win32 native file handle which is alwasy
+C<$hObject> gets set to a Win32 native file handle which is always
a true value [returns C<"0 but true"> in the impossible(?) case of
the handle having a value of C<0>].
@@ -1163,7 +1163,7 @@ indicate the type of access desired. C<GENERIC_READ> is the default.
=item Create => $uCreate
-C<$sCreate> should be a string constaing zero or one character from
+C<$sCreate> should be a string containing zero or one character from
C<"ktn"> and zero or one character from C<"ce">. These stand for
"Keep if exists", "Truncate if exists", "New file only", "Create if
none", and "Existing file only". These are translated into a
@@ -1205,7 +1205,7 @@ Examples:
=item C<@roots= getLogicalDrives()>
Returns the paths to the root directories of all logical drives
-currently defined. This includes all types of drive lettters, such
+currently defined. This includes all types of drive letters, such
as floppies, CD-ROMs, hard disks, and network shares. A typical
return value on a poorly equipped computer would be C<("A:\\","C:\\")>.
@@ -1229,7 +1229,7 @@ same file name.
If C<$bFailIfExists> is true and C<$sNewFileName> is the path to
a file that already exists, then C<CopyFile> will fail. If
-C<$bFailIfExists> is falsea, then the copy of the C<$sOldFileNmae>
+C<$bFailIfExists> is false, then the copy of the C<$sOldFileNmae>
file will overwrite the C<$sNewFileName> file if it already exists.
Like most routines, returns a true value if successful and a false
@@ -1301,7 +1301,7 @@ on that partition.
The raw floppy disk. Doesn't work under Windows 95. This allows
you to read or write raw sectors of the floppy disk and to use
C<DeviceIoControl> to perform miscellaneous queries and operations
-to the floopy disk or drive.
+to the floppy disk or drive.
Locking this for exclusive access prevents all access to the floppy.
@@ -1327,7 +1327,7 @@ If another process currently has read, write, and/or delete access to
the file and you don't allow that level of sharing, then your call to
C<CreateFile> will fail. If you requested read, write, and/or delete
access and another process already has the file open but doesn't allow
-that level of sharing, thenn your call to C<createFile> will fail. Once
+that level of sharing, then your call to C<createFile> will fail. Once
you have the file open, if another process tries to open it with read,
write, and/or delete access and you don't allow that level of sharing,
then that process won't be allowed to open the file.
@@ -2197,7 +2197,7 @@ Only bits set in C<$uMask> will be modified by C<SetHandleInformation>.
C<$uFlags> is an unsigned value having zero or more of the bits
C<HANDLE_FLAG_INHERIT> and C<HANDLE_FLAG_PROTECT_FROM_CLOSE> set.
-For each bit set in C<$uMask>, the cooresponding bit in the handle's
+For each bit set in C<$uMask>, the corresponding bit in the handle's
flags is set to the value of the corresponding bit in C<$uFlags>.
If C<$uOldFlags> were the value of the handle's flags before the
@@ -2673,7 +2673,7 @@ value for any partitions you wish to have changed, added, or deleted.
Change the type of the partition. C<$opOutBuf> should be C<[]>.
C<$pInBuf> should be a C<SET_PARTITION_INFORMATION> data structure
-which is just a single byte containing the new parition type [see
+which is just a single byte containing the new partition type [see
the C<":PARTITION_"> export class for a list of known types]:
$pInBuf= pack( "C", $uPartitionType );
@@ -2831,7 +2831,7 @@ driver of size C<$uLogBufferSize>:
=item DISK_LOGGING_STOP
-Stop loggin each disk request:
+Stop logging each disk request:
$pInBuf= pack( "C L L", 1, 0, 0 );
diff --git a/Master/tlpkg/tlperl/lib/Win32API/Registry.pm b/Master/tlpkg/tlperl/lib/Win32API/Registry.pm
deleted file mode 100644
index 3b10e2c6684..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32API/Registry.pm
+++ /dev/null
@@ -1,1779 +0,0 @@
-# Registry.pm -- Low-level access to functions/constants from WINREG.h
-
-package Win32API::Registry;
-
-use strict;
-use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); #@EXPORT_FAIL);
-$VERSION= '0.33';
-
-require Exporter;
-require DynaLoader;
-@ISA= qw(Exporter DynaLoader);
-
-@EXPORT= qw();
-%EXPORT_TAGS= (
- Func => [qw( regConstant regLastError
- AllowPriv AbortSystemShutdown InitiateSystemShutdown
- RegCloseKey RegConnectRegistry RegCreateKey
- RegCreateKeyEx RegDeleteKey RegDeleteValue
- RegEnumKey RegEnumKeyEx RegEnumValue
- RegFlushKey RegGetKeySecurity RegLoadKey
- RegNotifyChangeKeyValue RegOpenKey RegOpenKeyEx
- RegQueryInfoKey RegQueryMultipleValues RegQueryValue
- RegQueryValueEx RegReplaceKey RegRestoreKey
- RegSaveKey RegSetKeySecurity RegSetValue
- RegSetValueEx RegUnLoadKey )],
- FuncA => [qw(
- AbortSystemShutdownA InitiateSystemShutdownA
- RegConnectRegistryA RegCreateKeyA RegCreateKeyExA
- RegDeleteKeyA RegDeleteValueA RegEnumKeyA
- RegEnumKeyExA RegEnumValueA RegLoadKeyA
- RegOpenKeyA RegOpenKeyExA RegQueryInfoKeyA
- RegQueryMultipleValuesA RegQueryValueA RegQueryValueExA
- RegReplaceKeyA RegRestoreKeyA RegSaveKeyA
- RegSetValueA RegSetValueExA RegUnLoadKeyA )],
- FuncW => [qw(
- AbortSystemShutdownW InitiateSystemShutdownW
- RegConnectRegistryW RegCreateKeyW RegCreateKeyExW
- RegDeleteKeyW RegDeleteValueW RegEnumKeyW
- RegEnumKeyExW RegEnumValueW RegLoadKeyW
- RegOpenKeyW RegOpenKeyExW RegQueryInfoKeyW
- RegQueryMultipleValuesW RegQueryValueW RegQueryValueExW
- RegReplaceKeyW RegRestoreKeyW RegSaveKeyW
- RegSetValueW RegSetValueExW RegUnLoadKeyW )],
- HKEY_ => [qw(
- HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKEY_CURRENT_USER
- HKEY_DYN_DATA HKEY_LOCAL_MACHINE HKEY_PERFORMANCE_DATA
- HKEY_USERS )],
- KEY_ => [qw(
- KEY_QUERY_VALUE KEY_SET_VALUE KEY_CREATE_SUB_KEY
- KEY_ENUMERATE_SUB_KEYS KEY_NOTIFY KEY_CREATE_LINK
- KEY_READ KEY_WRITE KEY_EXECUTE
- KEY_ALL_ACCESS),
- 'KEY_DELETE', # DELETE (0x00010000L)
- 'KEY_READ_CONTROL', # READ_CONTROL (0x00020000L)
- 'KEY_WRITE_DAC', # WRITE_DAC (0x00040000L)
- 'KEY_WRITE_OWNER', # WRITE_OWNER (0x00080000L)
- 'KEY_SYNCHRONIZE', # SYNCHRONIZE (0x00100000L) (not used)
- ],
- REG_ => [qw(
- REG_OPTION_RESERVED REG_OPTION_NON_VOLATILE REG_OPTION_VOLATILE
- REG_OPTION_CREATE_LINK REG_OPTION_BACKUP_RESTORE
- REG_OPTION_OPEN_LINK REG_LEGAL_OPTION REG_CREATED_NEW_KEY
- REG_OPENED_EXISTING_KEY REG_WHOLE_HIVE_VOLATILE REG_REFRESH_HIVE
- REG_NO_LAZY_FLUSH REG_NOTIFY_CHANGE_ATTRIBUTES
- REG_NOTIFY_CHANGE_NAME REG_NOTIFY_CHANGE_LAST_SET
- REG_NOTIFY_CHANGE_SECURITY REG_LEGAL_CHANGE_FILTER
- REG_NONE REG_SZ REG_EXPAND_SZ
- REG_BINARY REG_DWORD REG_DWORD_LITTLE_ENDIAN
- REG_DWORD_BIG_ENDIAN REG_LINK REG_MULTI_SZ
- REG_RESOURCE_LIST REG_FULL_RESOURCE_DESCRIPTOR
- REG_RESOURCE_REQUIREMENTS_LIST )],
- SE_ => [qw(
- SE_ASSIGNPRIMARYTOKEN_NAME SE_AUDIT_NAME
- SE_BACKUP_NAME SE_CHANGE_NOTIFY_NAME
- SE_CREATE_PAGEFILE_NAME SE_CREATE_PERMANENT_NAME
- SE_CREATE_TOKEN_NAME SE_DEBUG_NAME
- SE_INCREASE_QUOTA_NAME SE_INC_BASE_PRIORITY_NAME
- SE_LOAD_DRIVER_NAME SE_LOCK_MEMORY_NAME
- SE_MACHINE_ACCOUNT_NAME SE_PROF_SINGLE_PROCESS_NAME
- SE_REMOTE_SHUTDOWN_NAME SE_RESTORE_NAME
- SE_SECURITY_NAME SE_SHUTDOWN_NAME
- SE_SYSTEMTIME_NAME SE_SYSTEM_ENVIRONMENT_NAME
- SE_SYSTEM_PROFILE_NAME SE_TAKE_OWNERSHIP_NAME
- SE_TCB_NAME SE_UNSOLICITED_INPUT_NAME )],
-);
-@EXPORT_OK= ();
-{ my $ref;
- foreach $ref ( values(%EXPORT_TAGS) ) {
- push( @EXPORT_OK, @$ref ) unless $ref->[0] =~ /^SE_/;
- }
-}
-$EXPORT_TAGS{ALL}= [ @EXPORT_OK ]; # \@EXPORT_OK once SE_* settles down.
-# push( @EXPORT_OK, "JHEREG_TACOSALAD" ); # Used to test Mkconst2perl
-push( @EXPORT_OK, @{$EXPORT_TAGS{SE_}} );
-
-bootstrap Win32API::Registry $VERSION;
-
-# Preloaded methods go here.
-
-# To convert C constants to Perl code in cRegistry.pc
-# [instead of C or C++ code in cRegistry.h]:
-# * Modify F<Makefile.PL> to add WriteMakeFile() =>
-# CONST2PERL/postamble => [[ "Win32API::Registry" => ]] WRITE_PERL => 1.
-# * Either comment out C<#include "cRegistry.h"> from F<Registry.xs>
-# or make F<cRegistry.h> an empty file.
-# * Make sure the following C<if> block is not commented out.
-# * "nmake clean", "perl Makefile.PL", "nmake"
-
-if( ! defined &REG_NONE ) {
- require "Win32API/Registry/cRegistry.pc";
-}
-
-# This would be convenient but inconsistent and hard to explain:
-#push( @{$EXPORT_TAGS{ALL}}, @{$EXPORT_TAGS{SE_}} )
-# if defined &SE_TCB_NAME;
-
-sub regConstant
-{
- my( $name )= @_;
- if( 1 != @_ || ! $name || $name =~ /\W/ ) {
- require Carp;
- Carp::croak( 'Usage: ',__PACKAGE__,'::regConstant("CONST_NAME")' );
- }
- my $proto= prototype $name;
- if( defined \&$name
- && defined $proto
- && "" eq $proto ) {
- no strict 'refs';
- return &$name;
- }
- return undef;
-}
-
-# We provide this for backwards compatibility:
-sub constant
-{
- my( $name )= @_;
- my $value= regConstant( $name );
- if( defined $value ) {
- $!= 0;
- return $value;
- }
- $!= 11; # EINVAL
- return 0;
-}
-
-BEGIN {
- my $code= 'return _regLastError(@_)';
- local( $!, $^E )= ( 1, 1 );
- if( $! ne $^E ) {
- $code= '
- local( $^E )= _regLastError(@_);
- my $ret= $^E;
- return $ret;
- ';
- }
- eval "sub regLastError { $code }";
- die "$@" if $@;
-}
-
-# Since we ISA DynaLoader which ISA AutoLoader, we ISA AutoLoader so we
-# need this next chunk to prevent Win32API::Registry->nonesuch() from
-# looking for "nonesuch.al" and producing confusing error messages:
-use vars qw($AUTOLOAD);
-sub AUTOLOAD {
- require Carp;
- Carp::croak(
- "Can't locate method $AUTOLOAD via package Win32API::Registry" );
-}
-
-# Replace "&rout;" with "goto &rout;" when that is supported on Win32.
-
-# Let user omit all buffer sizes:
-sub RegEnumKeyExA {
- if( 6 == @_ ) { splice(@_,4,0,[]); splice(@_,2,0,[]); }
- &_RegEnumKeyExA;
-}
-sub RegEnumKeyExW {
- if( 6 == @_ ) { splice(@_,4,0,[]); splice(@_,2,0,[]); }
- &_RegEnumKeyExW;
-}
-sub RegEnumValueA {
- if( 6 == @_ ) { splice(@_,2,0,[]); push(@_,[]); }
- &_RegEnumValueA;
-}
-sub RegEnumValueW {
- if( 6 == @_ ) { splice(@_,2,0,[]); push(@_,[]); }
- &_RegEnumValueW;
-}
-sub RegQueryInfoKeyA {
- if( 11 == @_ ) { splice(@_,2,0,[]); }
- &_RegQueryInfoKeyA;
-}
-sub RegQueryInfoKeyW {
- if( 11 == @_ ) { splice(@_,2,0,[]); }
- &_RegQueryInfoKeyW;
-}
-
-sub RegEnumKeyA {
- push(@_,[]) if 3 == @_;
- &_RegEnumKeyA;
-}
-sub RegEnumKeyW {
- push(@_,[]) if 3 == @_;
- &_RegEnumKeyW;
-}
-sub RegGetKeySecurity {
- push(@_,[]) if 3 == @_;
- &_RegGetKeySecurity;
-}
-sub RegQueryMultipleValuesA {
- push(@_,[]) if 4 == @_;
- &_RegQueryMultipleValuesA;
-}
-sub RegQueryMultipleValuesW {
- push(@_,[]) if 4 == @_;
- &_RegQueryMultipleValuesW;
-}
-sub RegQueryValueA {
- push(@_,[]) if 3 == @_;
- &_RegQueryValueA;
-}
-sub RegQueryValueW {
- push(@_,[]) if 3 == @_;
- &_RegQueryValueW;
-}
-sub RegQueryValueExA {
- push(@_,[]) if 5 == @_;
- &_RegQueryValueExA;
-}
-sub RegQueryValueExW {
- push(@_,[]) if 5 == @_;
- &_RegQueryValueExW;
-}
-sub RegSetValueA {
- push(@_,0) if 4 == @_;
- &_RegSetValueA;
-}
-sub RegSetValueW {
- push(@_,0) if 4 == @_;
- &_RegSetValueW;
-}
-sub RegSetValueExA {
- push(@_,0) if 5 == @_;
- &_RegSetValueExA;
-}
-sub RegSetValueExW {
- push(@_,0) if 5 == @_;
- &_RegSetValueExW;
-}
-
-# Aliases for non-Unicode functions:
-sub AbortSystemShutdown { &AbortSystemShutdownA; }
-sub InitiateSystemShutdown { &InitiateSystemShutdownA; }
-sub RegConnectRegistry { &RegConnectRegistryA; }
-sub RegCreateKey { &RegCreateKeyA; }
-sub RegCreateKeyEx { &RegCreateKeyExA; }
-sub RegDeleteKey { &RegDeleteKeyA; }
-sub RegDeleteValue { &RegDeleteValueA; }
-sub RegEnumKey { &RegEnumKeyA; }
-sub RegEnumKeyEx { &RegEnumKeyExA; }
-sub RegEnumValue { &RegEnumValueA; }
-sub RegLoadKey { &RegLoadKeyA; }
-sub RegOpenKey { &RegOpenKeyA; }
-sub RegOpenKeyEx { &RegOpenKeyExA; }
-sub RegQueryInfoKey { &RegQueryInfoKeyA; }
-sub RegQueryMultipleValues { &RegQueryMultipleValuesA; }
-sub RegQueryValue { &RegQueryValueA; }
-sub RegQueryValueEx { &RegQueryValueExA; }
-sub RegReplaceKey { &RegReplaceKeyA; }
-sub RegRestoreKey { &RegRestoreKeyA; }
-sub RegSaveKey { &RegSaveKeyA; }
-sub RegSetValue { &RegSetValueA; }
-sub RegSetValueEx { &RegSetValueExA; }
-sub RegUnLoadKey { &RegUnLoadKeyA; }
-
-1;
-__END__
-
-=head1 NAME
-
-Win32API::Registry - Low-level access to Win32 system API calls from WINREG.H
-
-=head1 SYNOPSIS
-
- use Win32API::Registry 0.21 qw( :ALL );
-
- RegOpenKeyEx( HKEY_LOCAL_MACHINE, "SYSTEM\\Disk", 0, KEY_READ, $key )
- or die "Can't open HKEY_LOCAL_MACHINE\\SYSTEM\\Disk: ",
- regLastError(),"\n";
- RegQueryValueEx( $key, "Information", [], $type, $data, [] )
- or die "Can't read HKEY_L*MACHINE\\SYSTEM\\Disk\\Information: ",
- regLastError(),"\n";
- [...]
- RegCloseKey( $key )
- or die "Can't close HKEY_LOCAL_MACHINE\\SYSTEM\\Disk: ",
- regLastError(),"\n";
-
-=head1 DESCRIPTION
-
-This provides fairly low-level access to the Win32 System API
-calls dealing with the Registry [mostly from WINREG.H]. This
-is mostly intended to be used by other modules such as
-C<Win32::TieRegistry> [which provides an extremely Perl-friendly
-method for using the Registry].
-
-For a description of the logical structure of the Registry, see
-the documentation for the C<Win32::TieRegistry> module.
-
-To pass in C<NULL> as the pointer to an optional buffer, pass in
-an empty list reference, C<[]>.
-
-Beyond raw access to the API calls and related constants, this module
-handles smart buffer allocation and translation of return codes.
-
-All calls return a true value for success and a false value for
-failure. After any failure, C<$^E> should automatically be set
-to indicate the reason. However, current versions of Perl often
-overwrite C<$^E> too quickly, so you can use C<regLastError()>
-instead, which is only set by Win32API::Registry routines.
-C<regLastError()> is also good if you have a really old version
-of Perl that does not connect C<$^E> to C<GetLastError()> on
-Win32.
-
-Note that C<$!> is not set by these routines except by
-C<Win32API::Registry::constant()> when a constant is not defined.
-
-=head2 Exports
-
-Nothing is exported by default. The following tags can be used to
-have sets of symbols exported.
-
-[Note that much of the following documentation refers to the
-behavior of the underlying API calls which may vary in current
-and future versions of the Win32 API without any changes to this
-module. Therefore you should check the Win32 API documentation
-directly when needed.]
-
-=over
-
-=item :Func
-
-The basic function names:
-
-=over
-
-=item AllowPriv
-
-=item C<AllowPriv( $sPrivName, $bEnable )>
-
-Not a Win32 API call. Enables or disables a specific privilege for
-the current process. Returns a true value if successful and a false
-value [and sets C<$^E>/C<regLastError()>] on failure. This routine
-does not provide a way to tell if a privilege is currently enabled.
-
-C<$sPrivname> is a Win32 privilege name [see L</:SE_>]. For example,
-C<"SeBackupPrivilege"> [a.k.a. C<SE_BACKUP_NAME>] controls whether
-you can use C<RegSaveKey()> and C<"SeRestorePrivilege"> [a.k.a.
-C<SE_RESTORE_NAME>] controls whether you can use C<RegLoadKey()>.
-
-If C<$bEnable> is true, then C<AllowPriv()> tries to enable the
-privilege. Otherwise it tries to disable the privilege.
-
-=item AbortSystemShutdown
-
-=item C<AbortSystemShutdown( $sComputerName )>
-
-Tries to abort a remote shutdown request previously made via
-C<InitiateSystemShutdown()>. Returns a true value if successful
-and a false value [and sets C<$^E>/C<regLastError()>] on failure.
-
-=item InitiateSystemShutdown
-
-=item C<InitiateSystemShutdown( $sComputer, $sMessage, $uTimeoutSecs, $bForce, $bReboot )>
-
-Requests that a [remote] computer be shutdown or rebooted.
-Returns a true value if successful and a false value [and
-sets C<$^E>/C<regLastError()>] on failure.
-
-C<$sComputer> is the name [or address] of the computer to be
-shutdown or rebooted. You can use C<[]> [for C<NULL>] or C<"">
-to indicate the local computer.
-
-C<$sMessage> is the message to be displayed in a pop-up window
-on the desktop of the computer to be shutdown or rebooted until
-the timeout expires or the shutdown is aborted via
-C<AbortSystemShutdown()>. With C<$iTimeoutSecs == 0>, the
-message will never be visible.
-
-C<$iTimeoutSecs> is the number of seconds to wait before starting
-the shutdown.
-
-If C<$bForce> is false, then any applications running on the remote
-computer get a chance to prompt the remote user whether they want
-to save changes. Also, for any applications that do not exit quickly
-enough, the operating system will prompt the user whether they wish
-to wait longer for the application to exit or force it to exit now.
-At any of these prompts the user can press B<CANCEL> to abort the
-shutdown but if no applications have unsaved data, they will likely
-all exit quickly and the shutdown will progress with the remote user
-having no option to cancel the shutdown.
-
-If C<$bForce> is true, all applications are told to exit immediately
-and so will not prompt the user even if there is unsaved data. Any
-applications that take too long to exit will be forcibly killed after
-a short time. The only way to abort the shutdown is to call
-C<AbortSystemShutdown()> before the timeout expires and there is no
-way to abort the shutdown once it has begun.
-
-If C<$bReboot> is true, the computer will automatically reboot once
-the shutdown is complete. If C<$bReboot> is false, then when the
-shutdown is complete the computer will halt at a screen indicating
-that the shutdown is complete and offering a way for the user to
-start to boot the computer.
-
-You must have the C<"SeRemoteShutdownPrivilege"> privilege
-on the remote computer for this call to succeed. If shutting
-down the local computer, then the calling process must have
-the C<"SeShutdownPrivilege"> privilege and have it enabled.
-
-=item RegCloseKey
-
-=item C<RegCloseKey( $hKey )>
-
-Closes the handle to a Registry key returned by C<RegOpenKeyEx()>,
-C<RegConnectRegistry()>, C<RegCreateKeyEx()>, or a few other
-routines. Returns a true value if successful and a false value
-[and sets C<$^E>/C<regLastError()>] on failure.
-
-=item RegConnectRegistry
-
-=item C<RegConnectRegistry( $sComputer, $hRootKey, $ohKey )>
-
-Connects to one of the root Registry keys of a remote computer.
-Returns a true value if successful and a false value [and
-sets C<$^E>/C<regLastError()>] on failure.
-
-C<$sComputer> is the name [or address] of a remote computer
-whose Registry you wish to access.
-
-C<$hKey> must be either C<HKEY_LOCAL_MACHINE> or C<HKEY_USERS>
-and specifies which root Registry key on the remote computer
-you wish to have access to.
-
-C<$phKey> will be set to the handle to be used to access the
-remote Registry key if the call succeeds.
-
-=item regConstant
-
-=item C<$value= regConstant( $sConstantName )>
-
-Fetch the value of a constant. Returns C<undef> if C<$sConstantName>
-is not the name of a constant supported by this module. Never sets
-C<$!> nor C<$^E>.
-
-This function is rarely used since you will usually get the value of a
-constant by having that constant imported into your package by listing
-the constant name in the C<use Win32API::Registry> statement and then
-simply using the constant name in your code [perhaps followed by
-C<()>]. This function is useful for verifying constant names not in
-Perl code, for example, after prompting a user to type in a constant
-name.
-
-=item RegCreateKey
-
-=item C<RegCreateKey( $hKey, $sSubKey, $ohSubKey )>
-
-This routine is meant only for compatibility with Windows version
-3.1. Use C<RegCreateKeyEx()> instead.
-
-=item RegCreateKeyEx
-
-=item C<RegCreateKeyEx( $hKey, $sSubKey, $uZero, $sClass, $uOpts, $uAccess, $pSecAttr, $ohNewKey, $ouDisp )>
-
-Creates a new Registry subkey. Returns a true value if successful and
-a false value [and sets C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$sSubKey> is the name of the new subkey to be created.
-
-C<$iZero> is reserved for future use and should always be specified
-as C<0>.
-
-C<$sClass> is a string to be used as the class for the new
-subkey. We are not aware of any current use for Registry key
-class information so the empty string, C<"">, should usually
-be used here.
-
-C<$iOpts> is a numeric value containing bits that control options
-used while creating the new subkey. C<REG_OPTION_NON_VOLATILE>
-is the default. C<REG_OPTION_VOLATILE> [which is ignored on
-Windows 95] means the data stored under this key is not kept
-in a file and will not be preserved when the system reboots.
-C<REG_OPTION_BACKUP_RESTORE> [also ignored on Windows 95] means
-ignore the C<$iAccess> parameter and try to open the new key with
-the access required to backup or restore the key.
-
-C<$iAccess> is a numeric mask of bits specifying what type of
-access is desired when opening the new subkey. See C<RegOpenKeyEx()>.
-
-C<$pSecAttr> is a C<SECURITY_ATTRIBUTES> structure packed into
-a Perl string which controls whether the returned handle can be
-inherited by child processes. Normally you would pass C<[]> for
-this parameter to have C<NULL> passed to the underlying API
-indicating that the handle cannot be inherited. If not under
-Windows95, then C<$pSecAttr> also allows you to specify
-C<SECURITY_DESCRIPTOR> that controls which users will have
-what type of access to the new key -- otherwise the new key
-inherits its security from its parent key.
-
-C<$phKey> will be set to the handle to be used to access the new
-subkey if the call succeeds.
-
-C<$piDisp> will be set to either C<REG_CREATED_NEW_KEY> or
-C<REG_OPENED_EXISTING_KEY> to indicate for which reason the
-call succeeded. Can be specified as C<[]> if you don't care.
-
-If C<$phKey> and C<$piDisp> start out as integers, then they will
-probably remain unchanged if the call fails.
-
-=item RegDeleteKey
-
-=item C<RegDeleteKey( $hKey, $sSubKey )>
-
-Deletes a subkey of an open Registry key provided that the subkey
-contains no subkeys of its own [but the subkey may contain values].
-Returns a true value if successful and a false value [and sets
-C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$sSubKey> is the name of the subkey to be deleted.
-
-=item RegDeleteValue
-
-=item C<RegDeleteValue( $hKey, $sValueName )>
-
-Deletes a value from an open Registry key. Returns a true value if
-successful and a false value [and sets C<$^E>/C<regLastError()>] on
-failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$sValueKey> is the name of the value to be deleted.
-
-=item RegEnumKey
-
-=item C<RegEnumKey( $hKey, $uIndex, $osName, $ilNameSize )>
-
-This routine is meant only for compatibility with Windows version
-3.1. Use C<RegEnumKeyEx()> instead.
-
-=item RegEnumKeyEx
-
-=item C<RegEnumKeyEx( $hKey, $uIndex, $osName, $iolName, $pNull, $osClass, $iolClass, $opftLastWrite )>
-
-Lets you enumerate the names of all of the subkeys directly under
-an open Registry key. Returns a true value if successful and a false
-value [and sets C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$iIndex> is the sequence number of the immediate subkey that
-you want information on. Start with this value as C<0> then
-repeat the call incrementing this value each time until the
-call fails with C<$^E>/C<regLastError()> numerically equal to
-C<ERROR_NO_MORE_ITEMS>.
-
-C<$sName> will be set to the name of the subkey. Can be C<[]> if
-you don't care about the name.
-
-C<$plName> initially specifies the [minimum] buffer size to be
-allocated for C<$sName>. Will be set to the length of the subkey
-name if the requested subkey exists even if C<$sName> isn't
-successfully set to the subkey name. See L<Buffer sizes> for
-more information.
-
-C<$pNull> is reserved for future used and should be passed as C<[]>.
-
-C<$sClass> will be set to the class name for the subkey. Can be
-C<[]> if you don't care about the class.
-
-C<$plClass> initially specifies the [minimum] buffer size to be
-allocated for C<$sClass> and will be set to the length of the
-subkey class name if the requested subkey exists. See L<Buffer
-sizes> for more information.
-
-C<$pftLastWrite> will be set to a C<FILETIME> structure packed
-into a Perl string and indicating when the subkey was last changed.
-Can be C<[]>.
-
-You may omit both C<$plName> and C<$plClass> to get the same effect
-as passing in C<[]> for each of them.
-
-=item RegEnumValue
-
-=item C<RegEnumValue( $hKey, $uIndex, $osValName, $iolValName, $pNull, $ouType, $opValData, $iolValData )>
-
-Lets you enumerate the names of all of the values contained in an
-open Registry key. Returns a true value if successful and a false
-value [and sets C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$iIndex> is the sequence number of the value that you want
-information on. Start with this value as C<0> then repeat the
-call incrementing this value each time until the call fails with
-C<ERROR_NO_MORE_ITEMS>.
-
-C<$sValName> will be set to the name of the value. Can be C<[]>
-if you don't care about the name.
-
-C<$plValName> initially specifies the [minimum] buffer size to be
-allocated for C<$sValName>. Will be set to the length of the value
-name if the requested value exists even if C<$sValName> isn't
-successfully set to the value name. See L<Buffer sizes> for
-more information.
-
-C<$pNull> is reserved for future used and should be passed as C<[]>.
-
-C<$piType> will be set to the type of data stored in the value data.
-If the call succeeds, it will be set to a C<REG_*> value unless
-passed in as C<[]>.
-
-C<$pValData> will be set to the data [packed into a Perl string]
-that is stored in the requested value. Can be C<[]> if you don't
-care about the value data.
-
-C<$plValData> initially specifies the [minimum] buffer size to be
-allocated for C<$sValData> and will be set to the length of the
-value data if the requested value exists. See L<Buffer sizes> for
-more information.
-
-You may omit both C<$plValName> and C<$plValData> to get the same
-effect as passing in C<[]> for each of them.
-
-=item RegFlushKey
-
-=item C<RegFlushKey( $hKey )>
-
-Forces the data stored under an open Registry key to be flushed
-to the disk file where the data is preserved between reboots.
-Forced flushing is not guaranteed to be efficient so this routine
-should almost never be called. Returns a true value if successful
-and a false value [and sets C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-=item RegGetKeySecurity
-
-=item C<RegGetKeySecurity( $hKey, $uSecInfo, $opSecDesc, $iolSecDesc )>
-
-Retrieves one of the C<SECURITY_DESCRIPTOR> structures describing
-part of the security for an open Registry key. Returns a true value
-if successful and a false value [and sets C<$^E>/C<regLastError()>]
-on failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$iSecInfo> is a numeric C<SECURITY_INFORMATION> value that
-specifies which parts of the C<SECURITY_DESCRIPTOR> structure
-to retrieve. Should be C<OWNER_SECURITY_INFORMATION>,
-C<GROUP_SECURITY_INFORMATION>, C<DACL_SECURITY_INFORMATION>, or
-or C<SACL_SECURITY_INFORMATION> or two or more of these bits
-combined using C<|>.
-
-C<$pSecDesc> will be set to the requested C<SECURITY_DESCRIPTOR>
-structure [packed into a Perl string].
-
-C<$plSecDesc> initially specifies the [minimum] buffer size to be
-allocated for C<$sSecDesc> and will be set to the length of the
-security descriptor. See L<Buffer sizes> for more information.
-You may omit this parameter to get the same effect as passing in
-C<[]> for it.
-
-=item regLastError
-
-=item C<$svError= regLastError();>
-
-=item C<regLastError( $uError );>
-
-Returns the last error encountered by a routine from this module.
-It is just like C<$^E> except it isn't changed by anything except
-routines from this module. Ideally you could just use C<$^E>, but
-current versions of Perl often overwrite C<$^E> before you get a
-chance to check it and really old versions of Perl don't really
-support C<$^E> under Win32.
-
-Just like C<$^E>, in a numeric context C<regLastError()> returns
-the numeric error value while in a string context it returns a
-text description of the error [actually it returns a Perl scalar
-that contains both values so C<$x= regLastError()> causes C<$x>
-to give different values in string vs. numeric contexts]. On old
-versions of Perl where C<$^E> isn't tied to C<GetLastError()>,
-C<regLastError> simply returns the number of the error and you'll
-need to use <Win32::FormatMessage> to get the error string.
-
-The last form sets the error returned by future calls to
-C<regLastError()> and should not be used often. C<$uError> must
-be a numeric error code. Also returns the dual-valued version
-of C<$uError>.
-
-=item RegLoadKey
-
-=item C<RegLoadKey( $hKey, $sSubKey, $sFileName )>
-
-Loads a hive file. That is, it creates a new subkey in the
-Registry and associates that subkey with a disk file that contains
-a Registry hive so that the new subkey can be used to access the
-keys and values stored in that hive. Hives are usually created
-via C<RegSaveKey()>. Returns a true value if successful and a
-false value [and sets C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key that can have hives
-loaded to it. This must be C<HKEY_LOCAL_MACHINE>, C<HKEY_USERS>,
-or a remote version of one of these from a call to
-C<RegConnectRegistry()>.
-
-C<$sSubKey> is the name of the new subkey to created and associated
-with the hive file.
-
-C<$sFileName> is the name of the hive file to be loaded. This
-file name is interpreted relative to the
-C<%SystemRoot%/System32/config> directory on the computer where
-the C<$hKey> key resides. If C<$sFileName> is on a FAT file
-system, then its name must not have an extension.
-
-You must have the C<SE_RESTORE_NAME> privilege to use this routine.
-
-WARNING: Loading of hive files via a network share may silently
-corrupt the hive and so should not be attempted [this is a problem
-in at least some versions of the underlying API which this module
-does not try to fix or avoid]. To access a hive file located on a
-remote computer, connect to the remote computer's Registry and load
-the hive via that.
-
-=item RegNotifyChangeKeyValue
-
-=item C<RegNotifyChangeKeyValue( $hKey, $bWatchSubtree, $uNotifyFilter, $hEvent, $bAsync )>
-
-Arranges for your process to be notified when part of the Registry
-is changed. Returns a true value if successful and a false value
-[and sets C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call] for which you wish to be notified when any changes
-are made to it.
-
-If C<$bWatchSubtree> is true, then changes to any subkey or
-descendant of C<$hKey> are also reported.
-
-C<$iNotifyFilter> controllers what types of changes are reported. It
-is a numeric value containing one or more of the following bit masks:
-
-=over
-
-=item C<REG_NOTIFY_CHANGE_NAME>
-
-Notify if a subkey is added or deleted to a monitored key.
-
-=item C<REG_NOTIFY_CHANGE_LAST_SET>
-
-Notify if a value in a monitored key is added, deleted, or modified.
-
-=item C<REG_NOTIFY_CHANGE_SECURITY>
-
-Notify if a security descriptor of a monitored key is changed.
-
-=item C<REG_NOTIFY_CHANGE_ATTRIBUTES>
-
-Notify if any attributes of a monitored key are changed [class
-name or security descriptors].
-
-=back
-
-C<$hEvent> is ignored unless C<$bAsync> is true. Otherwise, C<$hEvent>
-is a handle to a Win32 I<event> that will be signaled when changes are
-to be reported.
-
-If C<$bAsync> is true, then C<RegNotifyChangeKeyValue()> returns
-immediately and uses C<$hEvent> to notify your process of changes.
-If C<$bAsync> is false, then C<RegNotifyChangeKeyValue()> does
-not return until there is a change to be notified of.
-
-This routine does not work with Registry keys on remote computers.
-
-=item RegOpenKey
-
-=item C<RegOpenKey( $hKey, $sSubKey, $ohSubKey )>
-
-This routine is meant only for compatibility with Windows version
-3.1. Use C<RegOpenKeyEx()> instead.
-
-=item RegOpenKeyEx
-
-=item C<RegOpenKeyEx( $hKey, $sSubKey, $uOptions, $uAccess, $ohSubKey )>
-
-Opens an existing Registry key. Returns a true value if successful
-and a false value [and sets C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$sSubKey> is the name of an existing subkey to be opened.
-Can be C<""> or C<[]> to open an additional handle to the
-key specified by C<$hKey>.
-
-C<$iOptions> is a numeric value containing bits that control options
-used while opening the subkey. There are currently no supported
-options so this parameter should be specified as C<0>.
-
-C<$iAccess> is a numeric mask of bits specifying what type of
-access is desired when opening the new subkey. Should be a
-combination of one or more of the following bit masks:
-
-=over
-
-=item C<KEY_ALL_ACCESS>
-
- KEY_READ | KEY_WRITE | KEY_CREATE_LINK
-
-=item C<KEY_READ>
-
- KEY_QUERY_VALUE | KEY_ENUMERATE_SUBKEYS | KEY_NOTIFY | STANDARD_RIGHTS_READ
-
-=item C<KEY_WRITE>
-
- KEY_SET_VALUE | KEY_CREATE_SUB_KEY | STANDARD_RIGHTS_WRITE
-
-=item C<KEY_QUERY_VALUE>
-
-=item C<KEY_SET_VALUE>
-
-=item C<KEY_ENUMERATE_SUB_KEYS>
-
-=item C<KEY_CREATE_SUB_KEY>
-
-=item C<KEY_NOTIFY>
-
-Allows you to use C<RegNotifyChangeKeyValue()> on the opened key.
-
-=item C<KEY_EXECUTE>
-
-Same as C<KEY_READ>.
-
-=item C<KEY_CREATE_LINK>
-
-Gives you permission to create a symbolic link like
-C<HKEY_CLASSES_ROOT> and C<HKEY_CURRENT_USER>, though the method for
-doing so is not documented [and probably requires use of the mostly
-undocumented "native" routines, C<Nt*()> a.k.a. C<Zw*()>].
-
-=back
-
-C<$phKey> will be set to the handle to be used to access the new subkey
-if the call succeeds.
-
-=item RegQueryInfoKey
-
-=item C<RegQueryInfoKey( $hKey, $osClass, $iolClass, $pNull, $ocSubKeys, $olSubKey, $olSubClass, $ocValues, $olValName, $olValData, $olSecDesc, $opftTime )>
-
-Gets miscellaneous information about an open Registry key.
-Returns a true value if successful and a false value [and
-sets C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$sClass> will be set to the class name for the key. Can be
-C<[]> if you don't care about the class.
-
-C<$plClass> initially specifies the [minimum] buffer size to be
-allocated for C<$sClass> and will be set to the length of the
-key's class name. See L<Buffer sizes> for more information.
-You may omit this parameter to get the same effect as passing in
-C<[]> for it.
-
-C<$pNull> is reserved for future use and should be passed as C<[]>.
-
-C<$pcSubKeys> will be set to the count of the number of subkeys
-directly under this key. Can be C<[]>.
-
-C<$plSubKey> will be set to the length of the longest subkey name.
-Can be C<[]>.
-
-C<$plSubClass> will be set to the length of the longest class name
-used with an immediate subkey of this key. Can be C<[]>.
-
-C<$pcValues> will be set to the count of the number of values in
-this key. Can be C<[]>.
-
-C<$plValName> will be set to the length of the longest value name
-in this key. Can be C<[]>.
-
-C<$plValData> will be set to the length of the longest value data
-in this key. Can be C<[]>.
-
-C<$plSecDesc> will be set to the length of this key's full security
-descriptor.
-
-C<$pftTime> will be set to a C<FILETIME> structure packed
-into a Perl string and indicating when this key was last changed.
-Can be C<[]>.
-
-=item RegQueryMultipleValues
-
-=item C<RegQueryMultipleValues( $hKey, $ioarValueEnts, $icValueEnts, $opBuffer, $iolBuffer )>
-
-Allows you to use a single call to query several values from a single
-open Registry key to maximize efficiency. Returns a true value if
-successful and a false value [and sets C<$^E>/C<regLastError()>] on
-failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$pValueEnts> should contain a list of C<VALENT> structures packed
-into a single Perl string. Each C<VALENT> structure should have
-the C<ve_valuename> entry [the first 4 bytes] pointing to a string
-containing the name of a value stored in this key. The remaining
-fields are set if the function succeeds.
-
-C<$cValueEnts> should contain the count of the number of C<VALENT>
-structures contained in C<$pValueEnts>.
-
-C<$pBuffer> will be set to the data from all of the requested values
-concatenated into a single Perl string.
-
-C<$plBuffer> initially specifies the [minimum] buffer size to be
-allocated for C<$sBuffer> and will be set to the total length of
-the data to be written to C<$sBuffer>. See L<Buffer sizes> for
-more information. You may omit this parameter to get the same
-effect as passing in C<[]> for it.
-
-Here is sample code to populate C<$pValueEnts>:
-
- # @ValueNames= ...list of value name strings...;
- $cValueEnts= @ValueNames;
- $pValueEnts= pack( " p x4 x4 x4 " x $cValueEnts, @ValueNames );
-
-Here is sample code to retrieve the data type and data length
-returned in C<$pValueEnts>:
-
- @Lengths= unpack( " x4 L x4 x4 " x $cValueEnts, $pValueEnts );
- @Types= unpack( " x4 x4 x4 L " x $cValueEnts, $pValueEnts );
-
-Given the above, and assuming you haven't modified C<$sBuffer> since
-the call, you can also extract the value data strings from C<$sBuffer>
-by using the pointers returned in C<$pValueEnts>:
-
- @Data= unpack( join( "", map {" x4 x4 P$_ x4 "} @Lengths ),
- $pValueEnts );
-
-Much better is to use the lengths and extract directly from
-C<$sBuffer> using C<unpack()> [or C<substr()>]:
-
- @Data= unpack( join("",map("P$_",@Lengths)), $sBuffer );
-
-=item RegQueryValue
-
-=item C<RegQueryValue( $hKey, $sSubKey, $osValueData, $iolValueData )>
-
-This routine is meant only for compatibility with Windows version
-3.1. Use C<RegQueryValueEx()> instead. This routine can only
-query unnamed values [a.k.a. "default values"], that is, values with
-a name of C<"">.
-
-=item RegQueryValueEx
-
-=item C<RegQueryValueEx( $hKey, $sValueName, $pNull, $ouType, $opValueData, $iolValueData )>
-
-Lets you look up value data stored in an open Registry key by
-specifying the value name. Returns a true value if successful
-and a false value [and sets C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$sValueName> is the name of the value whose data you wish to
-retrieve.
-
-C<$pNull> this parameter is reserved for future use and should be
-specified as C<[]>.
-
-C<$piType> will be set to indicate what type of data is stored in
-the named value. Will be set to a C<REG_*> value if the function
-succeeds.
-
-C<$pValueData> will be set to the value data [packed into a Perl
-string] that is stored in the named value. Can be C<[]> if you
-don't care about the value data.
-
-C<$plValueData> initially specifies the [minimum] buffer size to be
-allocated for C<$sValueData> and will be set to the size [always
-in bytes] of the data to be written to C<$sValueData>, even if
-C<$sValueData> is not successfully written to. See L<Buffer sizes>
-for more information.
-
-=item RegReplaceKey
-
-=item C<RegReplaceKey( $hKey, $sSubKey, $sNewFile, $sOldFile )>
-
-Lets you replace an entire hive when the system is next booted.
-Returns a true value if successful and a false value [and sets
-C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key that has hive(s)
-loaded in it. This must be C<HKEY_LOCAL_MACHINE>,
-C<HKEY_USERS>, or a remote version of one of these from
-a call to C<RegConnectRegistry()>.
-
-C<$sSubKey> is the name of the subkey of C<$hKey> whose hive
-you wish to have replaced on the next reboot.
-
-C<$sNewFile> is the name of a file that will replace the existing
-hive file when the system reboots.
-
-C<$sOldFile> is the file name to save the current hive file to
-when the system reboots.
-
-C<$sNewFile> and C<$sOldFile> are interpreted relative to the
-C<%SystemRoot%/System32/config> directory on the computer where
-the C<$hKey> key resides [I think]. If either file is [would be]
-on a FAT file system, then its name must not have an extension.
-
-You must have the C<SE_RESTORE_NAME> privilege to use this routine.
-
-=item RegRestoreKey
-
-=item C<RegRestoreKey( $hKey, $sFileName, $uFlags )>
-
-Reads in a hive file and copies its contents over an existing
-Registry tree. Returns a true value if successful and a false
-value [and sets C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$sFileName> is the name of the hive file to be read. For each
-value and subkey in this file, a value or subkey will be added
-or replaced in C<$hKey>.
-
-C<$uFlags> is usually C<0>. It can also be C<REG_WHOLE_HIVE_VOLATILE>
-which, rather than copying the hive over the existing key,
-replaces the existing key with a temporary, memory-only Registry
-key and then copies the hive contents into it. This option only
-works if C<$hKey> is C<HKEY_LOCAL_MACHINE>, C<HKEY_USERS>, or a
-remote version of one of these from a call to C<RegConnectRegistry()>.
-
-C<RegRestoreKey> does I<not> delete values nor keys from the
-existing Registry tree when there is no corresponding value/key
-in the hive file.
-
-=item RegSaveKey
-
-=item C<RegSaveKey( $hKey, $sFileName, $pSecAttr )>
-
-Dumps any open Registry key and all of its subkeys and values into
-a new hive file. Returns a true value if successful and a false
-value [and sets C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$sFileName> is the name of the file that the Registry tree
-should be saved to. It is interpreted relative to the
-C<%SystemRoot%/System32/config> directory on the computer where
-the C<$hKey> key resides. If C<$sFileName> is on a FAT file system,
-then it must not have an extension.
-
-C<$pSecAttr> contains a C<SECURITY_ATTRIBUTES> structure that specifies
-the permissions to be set on the new file that is created. This can
-be C<[]>.
-
-You must have the C<SE_RESTORE_NAME> privilege to use this routine.
-
-=item RegSetKeySecurity
-
-=item C<RegSetKeySecurity( $hKey, $uSecInfo, $pSecDesc )>
-
-Sets [part of] the C<SECURITY_DESCRIPTOR> structure describing part
-of the security for an open Registry key. Returns a true value if
-successful and a false value [and sets C<$^E>/C<regLastError()>] on
-failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$uSecInfo> is a numeric C<SECURITY_INFORMATION> value that
-specifies which C<SECURITY_DESCRIPTOR> structure to set. Should
-be C<OWNER_SECURITY_INFORMATION>, C<GROUP_SECURITY_INFORMATION>,
-C<DACL_SECURITY_INFORMATION>, or C<SACL_SECURITY_INFORMATION>
-or two or more of these bits combined using C<|>.
-
-C<$pSecDesc> contains the new C<SECURITY_DESCRIPTOR> structure
-packed into a Perl string.
-
-=item RegSetValue
-
-=item C<RegSetValue( $hKey, $sSubKey, $uType, $sValueData, $lValueData )>
-
-This routine is meant only for compatibility with Windows version
-3.1. Use C<RegSetValueEx()> instead. This routine can only
-set unnamed values [a.k.a. "default values"].
-
-=item RegSetValueEx
-
-=item C<RegSetValueEx( $hKey, $sName, $uZero, $uType, $pData, $lData )>
-
-Adds or replaces a value in an open Registry key. Returns
-a true value if successful and a false value [and sets
-C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key [either C<HKEY_*> or from
-a previous call].
-
-C<$sName> is the name of the value to be set.
-
-C<$uZero> is reserved for future use and should be specified as C<0>.
-
-C<$uType> is the type of data stored in C<$pData>. It should
-be a C<REG_*> value.
-
-C<$pData> is the value data packed into a Perl string.
-
-C<$lData> is the length of the value data that is stored in C<$pData>.
-You will usually omit this parameter or pass in C<0> to have
-C<length($pData)> used. In both of these cases, if C<$iType> is
-C<REG_SZ> or C<REG_EXPAND_SZ>, C<RegSetValueEx()> will append a
-trailing C<'\0'> to the end of C<$pData> [unless there is already
-one].
-
-=item RegUnLoadKey
-
-=item C<RegUnLoadKey( $hKey, $sSubKey )>
-
-Unloads a previously loaded hive file. That is, closes the
-hive file then deletes the subkey that was providing access
-to it. Returns a true value if successful and a false value
-[and sets C<$^E>/C<regLastError()>] on failure.
-
-C<$hKey> is the handle to a Registry key that has hives
-loaded in it. This must be C<HKEY_LOCAL_MACHINE>, C<HKEY_USERS>,
-or a remote version of one of these from a call to
-C<RegConnectRegistry()>.
-
-C<$sSubKey> is the name of the subkey whose hive you wish to
-have unloaded.
-
-=item :FuncA
-
-The ASCII-specific function names.
-
-Each of these is identical to the version listed above without the
-trailing "A":
-
- AbortSystemShutdownA InitiateSystemShutdownA
- RegConnectRegistryA RegCreateKeyA RegCreateKeyExA
- RegDeleteKeyA RegDeleteValueA RegEnumKeyA
- RegEnumKeyExA RegEnumValueA RegLoadKeyA
- RegOpenKeyA RegOpenKeyExA RegQueryInfoKeyA
- RegQueryMultipleValuesA RegQueryValueA RegQueryValueExA
- RegReplaceKeyA RegRestoreKeyA RegSaveKeyA
- RegSetValueA RegSetValueExA RegUnLoadKeyA
-
-=item :FuncW
-
-The UNICODE-specific function names. These are the same as the
-versions listed above without the trailing "W" except that string
-parameters are UNICODE strings rather than ASCII strings, as
-indicated.
-
-=item AbortSystemShutdownW
-
-=item C<AbortSystemShutdownW( $swComputerName )>
-
-C<$swComputerName> is UNICODE.
-
-=item InitiateSystemShutdownW
-
-=item C<InitiateSystemShutdownW( $swComputer, $swMessage, $uTimeoutSecs, $bForce, $bReboot )>
-
-C<$swComputer> and C<$swMessage> are UNICODE.
-
-=item RegConnectRegistryW
-
-=item C<RegConnectRegistryW( $swComputer, $hRootKey, $ohKey )>
-
-C<$swComputer> is UNICODE.
-
-=item RegCreateKeyW
-
-=item C<RegCreateKeyW( $hKey, $swSubKey, $ohSubKey )>
-
-C<$swSubKey> is UNICODE.
-
-=item RegCreateKeyExW
-
-=item C<RegCreateKeyExW( $hKey, $swSubKey, $uZero, $swClass, $uOpts, $uAccess, $pSecAttr, $ohNewKey, $ouDisp )>
-
-C<$swSubKey> and C<$swClass> are UNICODE.
-
-=item RegDeleteKeyW
-
-=item C<RegDeleteKeyW( $hKey, $swSubKey )>
-
-C<$swSubKey> is UNICODE.
-
-=item RegDeleteValueW
-
-=item C<RegDeleteValueW( $hKey, $swValueName )>
-
-C<$swValueName> is UNICODE.
-
-=item RegEnumKeyW
-
-=item C<RegEnumKeyW( $hKey, $uIndex, $oswName, $ilwNameSize )>
-
-C<$oswName> is UNICODE and C<$ilwNameSize> is measured as number of
-C<WCHAR>s.
-
-=item RegEnumKeyExW
-
-=item C<RegEnumKeyExW( $hKey, $uIndex, $oswName, $iolwName, $pNull, $oswClass, $iolwClass, $opftLastWrite )>
-
-C<$swName> and C<$swClass> are UNICODE and C<$iolwName> and C<$iolwClass>
-are measured as number of C<WCHAR>s.
-
-=item RegEnumValueW
-
-=item C<RegEnumValueW( $hKey, $uIndex, $oswName, $iolwName, $pNull, $ouType, $opData, $iolData )>
-
-C<$oswName> is UNICODE and C<$iolwName> is measured as number
-of C<WCHAR>s.
-
-C<$opData> is UNICODE if C<$piType> is C<REG_SZ>, C<REG_EXPAND_SZ>,
-or C<REG_MULTI_SZ>. Note that C<$iolData> is measured as number
-of bytes even in these cases.
-
-=item RegLoadKeyW
-
-=item C<RegLoadKeyW( $hKey, $swSubKey, $swFileName )>
-
-C<$swSubKey> and C<$swFileName> are UNICODE.
-
-=item RegOpenKeyW
-
-=item C<RegOpenKeyW( $hKey, $swSubKey, $ohSubKey )>
-
-C<$swSubKey> is UNICODE.
-
-=item RegOpenKeyExW
-
-=item C<RegOpenKeyExW( $hKey, $swSubKey, $uOptions, $uAccess, $ohSubKey )>
-
-C<$swSubKey> is UNICODE.
-
-=item RegQueryInfoKeyW
-
-=item C<RegQueryInfoKeyW( $hKey, $oswClass, $iolwClass, $pNull, $ocSubKeys, $olwSubKey, $olwSubClass, $ocValues, $olwValName, $olValData, $olSecDesc, $opftTime )>
-
-C<$swClass> is UNICODE. C<$iolwClass>, C<$olwSubKey>, C<$olwSubClass>,
-and C<$olwValName> are measured as number of C<WCHAR>s. Note that
-C<$olValData> is measured as number of bytes.
-
-=item RegQueryMultipleValuesW
-
-=item C<RegQueryMultipleValuesW( $hKey, $ioarValueEnts, $icValueEnts, $opBuffer, $iolBuffer )>
-
-The C<ve_valuename> fields of the C<VALENT> [actually C<VALENTW>]
-structures in C<$ioarValueEnts> are UNICODE. Values of type C<REG_SZ>,
-C<REG_EXPAND_SZ>, and C<REG_MULTI_SZ> are written to C<$opBuffer>
-in UNICODE. Note that C<$iolBuffer> and the C<ve_valuelen> fields
-of the C<VALENT> [C<VALENTW>] structures are measured as number of
-bytes.
-
-=item RegQueryValueW
-
-=item C<RegQueryValueW( $hKey, $swSubKey, $oswValueData, $iolValueData )>
-
-C<$swSubKey> and C<$oswValueData> are UNICODE. Note that
-C<$iolValueData> is measured as number of bytes.
-
-=item RegQueryValueExW
-
-=item C<RegQueryValueExW( $hKey, $swName, $pNull, $ouType, $opData, $iolData )>
-
-C<$swName> is UNICODE.
-
-C<$opData> is UNICODE if C<$ouType> is C<REG_SZ>, C<REG_EXPAND_SZ>,
-or C<REG_MULTI_SZ>. Note that C<$iolData> is measured as number of
-bytes even in these cases.
-
-=item RegReplaceKeyW
-
-=item C<RegReplaceKeyW( $hKey, $swSubKey, $swNewFile, $swOldFile )>
-
-C<$swSubKey>, C<$swNewFile>, and C<$swOldFile> are UNICODE.
-
-=item RegRestoreKeyW
-
-=item C<RegRestoreKeyW( $hKey, $swFileName, $uFlags )>
-
-C<$swFileName> is UNICODE.
-
-=item RegSaveKeyW
-
-=item C<RegSaveKeyW( $hKey, $swFileName, $pSecAttr )>
-
-C<$swFileName> is UNICODE.
-
-=item RegSetValueW
-
-=item C<RegSetValueW( $hKey, $swSubKey, $uType, $swValueData, $lValueData )>
-
-C<$swSubKey> and C<$swValueData> are UNICODE. Note that
-C<$lValueData> is measured as number of bytes even though
-C<$swValueData> is always UNICODE.
-
-=item RegSetValueExW
-
-=item C<RegSetValueExW( $hKey, $swName, $uZero, $uType, $pData, $lData )>
-
-C<$swName> is UNICODE.
-
-C<$pData> is UNICODE if C<$uType> is C<REG_SZ>, C<REG_EXPAND_SZ>,
-or C<REG_MULTI_SZ>. Note that C<$lData> is measured as number of
-bytes even in these cases.
-
-=item RegUnLoadKeyW
-
-=item C<RegUnLoadKeyW( $hKey, $swSubKey )>
-
-C<$swSubKey> is UNICODE.
-
-=item :HKEY_
-
-All C<HKEY_*> constants:
-
- HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKEY_CURRENT_USER
- HKEY_DYN_DATA HKEY_LOCAL_MACHINE HKEY_PERFORMANCE_DATA
- HKEY_USERS
-
-=item :KEY_
-
-All C<KEY_*> constants:
-
- KEY_QUERY_VALUE KEY_SET_VALUE KEY_CREATE_SUB_KEY
- KEY_ENUMERATE_SUB_KEYS KEY_NOTIFY KEY_CREATE_LINK
- KEY_READ KEY_WRITE KEY_EXECUTE
- KEY_ALL_ACCESS
-
-=item :REG_
-
-All C<REG_*> constants:
-
- REG_CREATED_NEW_KEY REG_OPENED_EXISTING_KEY
-
- REG_LEGAL_CHANGE_FILTER REG_NOTIFY_CHANGE_ATTRIBUTES
- REG_NOTIFY_CHANGE_NAME REG_NOTIFY_CHANGE_LAST_SET
- REG_NOTIFY_CHANGE_SECURITY REG_LEGAL_OPTION
-
- REG_OPTION_BACKUP_RESTORE REG_OPTION_CREATE_LINK
- REG_OPTION_NON_VOLATILE REG_OPTION_OPEN_LINK
- REG_OPTION_RESERVED REG_OPTION_VOLATILE
-
- REG_WHOLE_HIVE_VOLATILE REG_REFRESH_HIVE
- REG_NO_LAZY_FLUSH
-
- REG_NONE REG_SZ
- REG_EXPAND_SZ REG_BINARY
- REG_DWORD REG_DWORD_LITTLE_ENDIAN
- REG_DWORD_BIG_ENDIAN REG_LINK
- REG_MULTI_SZ REG_RESOURCE_LIST
- REG_FULL_RESOURCE_DESCRIPTOR REG_RESOURCE_REQUIREMENTS_LIST
-
-=item :ALL
-
-All of the above.
-
-=item :SE_
-
-The strings for the following privilege names:
-
- SE_ASSIGNPRIMARYTOKEN_NAME SE_AUDIT_NAME
- SE_BACKUP_NAME SE_CHANGE_NOTIFY_NAME
- SE_CREATE_PAGEFILE_NAME SE_CREATE_PERMANENT_NAME
- SE_CREATE_TOKEN_NAME SE_DEBUG_NAME
- SE_INCREASE_QUOTA_NAME SE_INC_BASE_PRIORITY_NAME
- SE_LOAD_DRIVER_NAME SE_LOCK_MEMORY_NAME
- SE_MACHINE_ACCOUNT_NAME SE_PROF_SINGLE_PROCESS_NAME
- SE_REMOTE_SHUTDOWN_NAME SE_RESTORE_NAME
- SE_SECURITY_NAME SE_SHUTDOWN_NAME
- SE_SYSTEMTIME_NAME SE_SYSTEM_ENVIRONMENT_NAME
- SE_SYSTEM_PROFILE_NAME SE_TAKE_OWNERSHIP_NAME
- SE_TCB_NAME SE_UNSOLICITED_INPUT_NAME
-
-It can be difficult to successfully build this module in a way
-that makes these constants available. So some builds of this
-module may not make them available. For such builds, trying
-to export any of these constants will cause a fatal error.
-For this reason, none of these symbols are currently included
-in the C<":ALL"> grouping.
-
-=back
-
-=back
-
-=head2 The Win32API:: hierarchy
-
-This and the other Win32API:: modules are meant to expose the
-nearly raw API calls so they can be used from Perl code in any
-way they might be used from C code. This provides the following
-advantages:
-
-=over
-
-=item Many modules can be written by people that don't have a C compiler.
-
-=item Encourages more module code to be written in Perl [not C].
-
-Perl code is often much easier to inspect, debug, customize, and
-enhance than XS code.
-
-=item Allows those already familiar with the Win32 API to get
-off to a quick start.
-
-=item Provides an interactive tool for exploring even obscure
-details of the Win32 API.
-
-It can be very useful to interactively explore ad-hoc calls into
-parts of the Win32 API using:
-
- perl -de 0
-
-=item Ensures that native Win32 data structures can be used.
-
-This allows maximum efficiency. It also allows data from one
-module [for example, time or security information from the
-C<Win32API::Registry> or C<Win32API::File> modules] to be used
-with other modules [for example, C<Win32API::Time> and
-C<Win32API::SecDesc>].
-
-=item Provides a single version of the XS interface to each API
-call where improvements can be collected.
-
-=back
-
-=head2 Buffer sizes
-
-For each parameter that specifies a buffer size, a value of C<0>
-can be passed. For parameter that are pointers to buffer sizes,
-you can also pass in C<NULL> by specifying an empty list reference,
-C<[]>. Both of these cases will ensure that the variable has
-I<some> buffer space allocated to it and pass in that buffer's
-allocated size. Many of the calls indicate, via C<ERROR_MORE_DATA>,
-that the buffer size was not sufficient and the F<Registry.xs>
-code will automatically enlarge the buffer to the required size
-and repeat the call.
-
-Numeric buffer sizes are used as minimum initial sizes for the
-buffers. The larger of this size and the size of space already
-allocated to the scalar will be passed to the underlying routine.
-If that size was insufficient, and the underlying call provides
-an easy method for determining the needed buffer size, then the
-buffer will be enlarged and the call repeated as above.
-
-The underlying calls define buffer size parameter as unsigned, so
-negative buffer sizes are treated as very large positive buffer
-sizes which usually cause C<malloc()> to fail.
-
-To force the F<Registry.xs> code to pass in a specific value for
-a buffer size, precede the size with an equals sign via C<"=".>.
-Buffer sizes that are passed in as strings starting with an equals
-sign will have the equal sign stripped and the remainder of the string
-interpreted as a number [via C's C<strtoul()> using only base 10]
-which will be passed to the underlying routine [even if the allocated
-buffer is actually larger]. The F<Registry.xs> code will enlarge the
-buffer to the specified size, if needed, but will not enlarge the
-buffer based on the underlying routine requesting more space.
-
-Some Reg*() calls may not currently set the buffer size when they
-return C<ERROR_MORE_DATA>. But some that are not documented as
-doing so, currently do so anyway. So the code assumes that any
-routine I<might> do this and resizes any buffers and repeats the
-call. We hope that eventually all routines will provide this
-feature.
-
-When you use C<[]> for a buffer size, you can still find the
-length of the data returned by using C<length($buffer)>. Note
-that this length will be in bytes while a few of the buffer
-sizes would have been in units of wide characters.
-
-Note that the RegQueryValueEx*() and RegEnumValue*() calls
-will trim the trailing C<'\0'> [if present] from the returned data
-values of type C<REG_SZ> or C<REG_EXPAND_SZ> but only if the
-value data length parameter is omitted [or specified as C<[]>].
-
-The RegSetValueEx*() calls will add a trailing C<'\0'> [if
-missing] to the supplied data values of type C<REG_SZ> and
-C<REG_EXPAND_SZ> but only if the value data length parameter
-is omitted [or specified as C<0>].
-
-=head2 Hungarian Notation
-
-The following abbreviations are used at the start of each parameter
-name to hint at aspects of how the parameter is used. The prefix
-is always in lower case and followed by a capital letter that starts
-the descriptive part of the parameter name. Several of the following
-abbreviations can be combined into a single prefix.
-
-Probably not all of these prefix notations are used by this module.
-This document section may be included in any C<Win32API> module and
-so covers some notations not used by this specific module.
-
-=over
-
-=item s
-
-A string. In C, a C<'\0'>-terminated C<char *>. In Perl, just a
-string except that it will be truncated at the first C<"\0">, if
-it contains one.
-
-=item sw
-
-A wide [UNICODE] string. In C, a C<L'\0'>-terminated C<WCHAR *>.
-In Perl, a string that contains UNICODE data. You can convert a
-string to UNICODE in Perl via:
-
- $string= "This is an example string";
- $unicode= pack( "S*", unpack("C*",$string), 0 );
-
-Note how C<, 0> above causes an explicit C<L'\0'> to be added since
-Perl's implicit C<'\0'> that it puts after each of its strings is not
-wide enough to terminate a UNICODE string. So UNICODE strings are
-different than regular strings in that the Perl version of a regular
-string will not include the trailing C<'\0'> while the Perl version
-of a UNICODE string must include the trailing C<L'\0'>.
-
-If a UNICODE string contains no non-ASCII characters, then you
-can convert it back into a normal string via:
-
- $string= pack( "C*", unpack("S*",$unicode) );
- $string =~ s/\0$//;
-
-=item p
-
-A pointer to some buffer [usually containing some C<struct>]. In C,
-a C<void *> or some other pointer type. In Perl, a string that is
-usually manipulated using C<pack> and C<unpack>. The "p" is usually
-followed by more prefix character(s) to indicate what type of data is
-stored in the buffer.
-
-=item a
-
-A packed array. In C, an array [usually of C<struct>s]. In Perl, a
-string containing the packed data. The "a" is usually followed by
-more prefix character(s) to indicate the data type of the elements.
-
-These packed arrays are also called "vectors" in places to avoid
-confusion with Perl arrays.
-
-=item n
-
-A generic number. In C, any of the integer or floating point data
-types. In Perl, a number; either an integer, unsigned, or double
-[IV, UV, or NV, respectively]. Usually an integer.
-
-=item iv
-
-A signed integral value. In C, any of the signed integer data types.
-In Perl, an integer [IV].
-
-=item u
-
-An unsigned integral value. In C, any of the unsigned integer data
-types. In Perl, an unsigned integer [UV].
-
-=item d
-
-A floating-point number. In C, a C<float> or C<double> or, perhaps,
-a C<long double>. In Perl, a double-precision floating-point number
-[NV].
-
-=item b
-
-A Boolean value. In C, any integer data type, though usually via
-a type alias of C<bool> or C<BOOL>, containing either a 0 [false] or
-non-zero [true] value. In Perl, a scalar containing a Boolean value
-[C<0>, C<"">, or C<undef> for "false" and anything else for "true"].
-
-=item c
-
-A count of items. In C, any integer data type. In Perl, an unsigned
-integer [UV]. Usually used in conjunction with a "vector" parameter
-[see L</a> above] to indicate the number of elements.
-
-=item l
-
-A length [in bytes]. In C, any integer data type. In Perl, an
-unsigned integer [UV]. Usually used in conjunction with a "string"
-or "pointer" parameter [see L</s> and L</p> above] to indicate the
-buffer size or the size of the value stored in the buffer.
-
-For strings, there is no general rule as to whether the trailing
-C<'\0'> is included in such sizes. For this reason, the C<Win32API>
-modules follow the Perl rule of always allocating one extra byte
-and reporting buffer sizes as being one smaller than allocated in
-case the C<'\0'> is not included in the size.
-
-=item lw
-
-A length measured as number of UNICODE characters. In C, a count
-of C<WCHAR>s. In Perl, an unsigned integer [UV] counting "shorts"
-[see "s" and "S" in C<pack> and C<unpack>].
-
-For UNICODE strings, the trailing C<L'\0'> may or may not be
-included in a length so, again, we always allocate extra room
-for one and don't report that extra space.
-
-=item h
-
-A handle. In C, a C<HANDLE> or more-specific handle data type.
-In Perl, an unsigned integer [UV]. In C, these handles are often
-actually some type of pointer, but Perl just treats them as opaque
-numbers, as it should. This prefix is also used for other pointers
-that are treated as integers in Perl code.
-
-=item r
-
-A record. In C, almost always a C<struct> or perhaps C<union>. Note
-that C C<struct>s are rarely passed by value so the "r" is almost
-always preceded by a "p" or "a" [see L</p> and L</a> above]. For
-the very rare unadorned "r", Perl stores the record in the same way
-as a "pr", that is, in a string. For the very rare case where Perl
-explicitly stores a pointer to the C<struct> rather than storing the
-C<struct> directly in a Perl string, the prefix "pp" or "ppr" or even
-"par" is used.
-
-=item sv
-
-=item rv
-
-=item hv
-
-=item av
-
-=item cv
-
-A Perl data type. Respectively, a scalar value [SV], a reference
-[RV] [usually to a scalar], a hash [HV], a Perl array [AV], or a Perl
-code reference [PVCV]. For the "hv", "av", and "cv" prefixes, a
-leading "rv" is usually assumed. For a parameter to an XS subroutine,
-a prefix of "sv" means the parameter is a scalar and so may be a string
-or a number [or C<undef>] or even both at the same time. So "sv"
-doesn't imply a leading "rv".
-
-=item Input or Output
-
-Whether a parameter is for input data, output data, or both is usually
-not reflected by the data type prefix. In cases where this is not
-obvious nor reflected in the parameter name proper, we may use the
-following in front of the data type prefix.
-
-=over
-
-=item i
-
-An input parameter given to the API [usually omitted].
-
-=item o
-
-An output-only parameter taken from the API. You should not get a
-warning if such a parameter is C<undef> when you pass it into the
-function. You should get an error if such a parameter is read-only.
-You can [usually] pass in C<[]> for such a parameter to have the
-parameter silently ignored.
-
-The output may be written directly into the Perl variable passed
-to the subroutine, the same way the buffer parameter to Perl's
-C<sysread()>. This method is often avoided in Perl because
-the call then lacks any visual cue that some parameters are being
-overwritten. But this method closely matches the C API which is
-what we are trying to do.
-
-=item io
-
-Input given to the API then overwritten with output taken from the
-API. You should get a warning [if B<-w> is in effect] if such a
-parameter is C<undef> when you pass it into the function [unless it
-is a buffer or buffer length parameter]. If the value is read-only,
-then [for most parameters] the output is silently not written. This
-is because it is often convenient to pass in read-only constants for
-many such parameters. You can also usually pass in C<[]> for such
-parameters.
-
-=back
-
-=item pp
-
-=item ppr
-
-=item par
-
-=item pap
-
-These are just unusual combinations of prefix characters described above.
-
-For each, a pointer is stored in a [4-byte] Perl string. You can
-usually use C<unpack "P"> to access the real data from Perl.
-
-For "ppr" [and often for "pp"], the pointer points directly at a
-C C<struct>. For "par", the pointer points to the first element
-of a C [packed] array of C<struct>s. For "pap", the pointer points
-to a C [packed] array of pointers to other things.
-
-=item ap
-
-Here we have a list of pointers packed into a single Perl string.
-
-=back
-
-
-=head1 BUGS
-
-The old ActiveState ports of Perl for Win32 [but not, ActivePerl, the
-ActiveState distributions of standard Perl 5.004 and beyond] do not support
-the tools for building extensions and so do not support this extension.
-
-No routines are provided for using the data returned in the C<FILETIME>
-buffers. Those are in the C<Win32API::Time> module.
-
-No routines are provided for dealing with UNICODE data effectively.
-See L</:FuncW> above for some simple-minded UNICODE methods.
-
-Parts of the module test will fail if used on a version of Perl
-that does not yet set C<$^E> based on C<GetLastError()>.
-
-On NT 4.0 [at least], the RegEnum*() calls do not set the required
-buffer sizes when returning C<ERROR_MORE_DATA> so this module will
-not grow the buffers in such cases. C<Win32::TieRegistry> overcomes
-this by using values from C<RegQueryInfoKey()> for buffer sizes in
-RegEnum* calls.
-
-On NT 4.0 [at least], C<RegQueryInfoKey()> on C<HKEY_PERFORMANCE_DATA>
-never succeeds. Also, C<RegQueryValueEx()> on C<HKEY_PERFORMANCE_DATA>
-never returns the required buffer size. To access C<HKEY_PERFORMANCE_DATA>
-you will need to keep growing the data buffer until the call succeeds.
-
-Because C<goto &subroutine> seems to be buggy under Win32 Perl,
-it is not used in the stubs in F<Registry.pm>.
-
-=head1 AUTHOR
-
-Tye McQueen, tye@metronet.com, http://www.metronet.com/~tye/.
-
-=head1 LICENSE
-
-perl
-
-=head1 SEE ALSO
-
-=over
-
-=item L<Win32::TieRegistry>
-
-=item L<Win32::Registry>
-
-=back
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/Win32API/Registry/cRegistry.pc b/Master/tlpkg/tlperl/lib/Win32API/Registry/cRegistry.pc
deleted file mode 100644
index 9659d0c4361..00000000000
--- a/Master/tlpkg/tlperl/lib/Win32API/Registry/cRegistry.pc
+++ /dev/null
@@ -1,87 +0,0 @@
-# Generated by cRegistry_pc.cxx.
-# Package Win32API::Registry with options:
-# CPLUSPLUS => q[1]
-# IFDEF => q[ /^SE_/ ? '__cplusplus' : /REG_/ ]
-# IMPORT_LIST => [q[/._/], q[!/[a-z]/]]
-# VALUES => { KEY_DELETE=>q[DELETE], KEY_READ_CONTROL=>q[READ_CONTROL], KEY_WRITE_OWNER=>q[WRITE_OWNER], KEY_SYNCHRONIZE=>q[SYNCHRONIZE], KEY_WRITE_DAC=>q[WRITE_DAC] }
-# WRITE_PERL => q[1]
-# Perl files eval'd:
-# Registry.pm => last if /^\s*(bootstrap|XSLoader::load)\b/
-# C files included:
-# Registry.xs => last if m#/[/*]\s*CONSTS_DEFINED\b|^\s*MODULE\b#
-sub HKEY_CLASSES_ROOT () { 0x80000000 }
-sub HKEY_CURRENT_CONFIG () { 0x80000005 }
-sub HKEY_CURRENT_USER () { 0x80000001 }
-sub HKEY_DYN_DATA () { 0x80000006 }
-sub HKEY_LOCAL_MACHINE () { 0x80000002 }
-sub HKEY_PERFORMANCE_DATA () { 0x80000004 }
-sub HKEY_USERS () { 0x80000003 }
-sub KEY_ALL_ACCESS () { 983103 }
-sub KEY_CREATE_LINK () { 32 }
-sub KEY_CREATE_SUB_KEY () { 4 }
-sub KEY_DELETE () { 65536 }
-sub KEY_ENUMERATE_SUB_KEYS () { 8 }
-sub KEY_EXECUTE () { 131097 }
-sub KEY_NOTIFY () { 16 }
-sub KEY_QUERY_VALUE () { 1 }
-sub KEY_READ () { 131097 }
-sub KEY_READ_CONTROL () { 131072 }
-sub KEY_SET_VALUE () { 2 }
-sub KEY_SYNCHRONIZE () { 1048576 }
-sub KEY_WRITE () { 131078 }
-sub KEY_WRITE_DAC () { 262144 }
-sub KEY_WRITE_OWNER () { 524288 }
-sub REG_BINARY () { 3 }
-sub REG_CREATED_NEW_KEY () { 1 }
-sub REG_DWORD () { 4 }
-sub REG_DWORD_BIG_ENDIAN () { 5 }
-sub REG_DWORD_LITTLE_ENDIAN () { 4 }
-sub REG_EXPAND_SZ () { 2 }
-sub REG_FULL_RESOURCE_DESCRIPTOR () { 9 }
-sub REG_LEGAL_CHANGE_FILTER () { 15 }
-sub REG_LEGAL_OPTION () { 15 }
-sub REG_LINK () { 6 }
-sub REG_MULTI_SZ () { 7 }
-sub REG_NONE () { 0 }
-sub REG_NOTIFY_CHANGE_ATTRIBUTES () { 2 }
-sub REG_NOTIFY_CHANGE_LAST_SET () { 4 }
-sub REG_NOTIFY_CHANGE_NAME () { 1 }
-sub REG_NOTIFY_CHANGE_SECURITY () { 8 }
-sub REG_NO_LAZY_FLUSH () { 4 }
-sub REG_OPENED_EXISTING_KEY () { 2 }
-sub REG_OPTION_BACKUP_RESTORE () { 4 }
-sub REG_OPTION_CREATE_LINK () { 2 }
-sub REG_OPTION_NON_VOLATILE () { 0 }
-sub REG_OPTION_OPEN_LINK () { 8 }
-sub REG_OPTION_RESERVED () { 0 }
-sub REG_OPTION_VOLATILE () { 1 }
-sub REG_REFRESH_HIVE () { 2 }
-sub REG_RESOURCE_LIST () { 8 }
-sub REG_RESOURCE_REQUIREMENTS_LIST () { 10 }
-sub REG_SZ () { 1 }
-sub REG_WHOLE_HIVE_VOLATILE () { 1 }
-sub SE_ASSIGNPRIMARYTOKEN_NAME () { 'SeAssignPrimaryTokenPrivilege' }
-sub SE_AUDIT_NAME () { 'SeAuditPrivilege' }
-sub SE_BACKUP_NAME () { 'SeBackupPrivilege' }
-sub SE_CHANGE_NOTIFY_NAME () { 'SeChangeNotifyPrivilege' }
-sub SE_CREATE_PAGEFILE_NAME () { 'SeCreatePagefilePrivilege' }
-sub SE_CREATE_PERMANENT_NAME () { 'SeCreatePermanentPrivilege' }
-sub SE_CREATE_TOKEN_NAME () { 'SeCreateTokenPrivilege' }
-sub SE_DEBUG_NAME () { 'SeDebugPrivilege' }
-sub SE_INCREASE_QUOTA_NAME () { 'SeIncreaseQuotaPrivilege' }
-sub SE_INC_BASE_PRIORITY_NAME () { 'SeIncreaseBasePriorityPrivilege' }
-sub SE_LOAD_DRIVER_NAME () { 'SeLoadDriverPrivilege' }
-sub SE_LOCK_MEMORY_NAME () { 'SeLockMemoryPrivilege' }
-sub SE_MACHINE_ACCOUNT_NAME () { 'SeMachineAccountPrivilege' }
-sub SE_PROF_SINGLE_PROCESS_NAME () { 'SeProfileSingleProcessPrivilege' }
-sub SE_REMOTE_SHUTDOWN_NAME () { 'SeRemoteShutdownPrivilege' }
-sub SE_RESTORE_NAME () { 'SeRestorePrivilege' }
-sub SE_SECURITY_NAME () { 'SeSecurityPrivilege' }
-sub SE_SHUTDOWN_NAME () { 'SeShutdownPrivilege' }
-sub SE_SYSTEMTIME_NAME () { 'SeSystemtimePrivilege' }
-sub SE_SYSTEM_ENVIRONMENT_NAME () { 'SeSystemEnvironmentPrivilege' }
-sub SE_SYSTEM_PROFILE_NAME () { 'SeSystemProfilePrivilege' }
-sub SE_TAKE_OWNERSHIP_NAME () { 'SeTakeOwnershipPrivilege' }
-sub SE_TCB_NAME () { 'SeTcbPrivilege' }
-sub SE_UNSOLICITED_INPUT_NAME () { 'SeUnsolicitedInputPrivilege' }
-1;
diff --git a/Master/tlpkg/tlperl/lib/XSLoader.pm b/Master/tlpkg/tlperl/lib/XSLoader.pm
index 0e65edd2942..de341608e35 100644
--- a/Master/tlpkg/tlperl/lib/XSLoader.pm
+++ b/Master/tlpkg/tlperl/lib/XSLoader.pm
@@ -2,7 +2,7 @@
package XSLoader;
-$VERSION = "0.17";
+$VERSION = "0.20";
#use strict;
@@ -17,7 +17,8 @@ package XSLoader;
sub load {
package DynaLoader;
- my ($module, $modlibname) = caller();
+ my ($caller, $modlibname) = caller();
+ my $module = $caller;
if (@_) {
$module = $_[0];
@@ -35,7 +36,7 @@ sub load {
my $modfname = $modparts[-1];
my $modpname = join('/',@modparts);
- my $c = @modparts;
+ my $c = () = split(/::/,$caller,-1);
$modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename
my $file = "$modlibname/auto/$modpname/$modfname.dll";
@@ -48,9 +49,10 @@ sub load {
# print STDERR "BS: $bs ($^O, $dlsrc)\n" if $dl_debug;
eval { do $bs; };
warn "$bs: $@\n" if $@;
+ goto \&XSLoader::bootstrap_inherit;
}
- goto \&XSLoader::bootstrap_inherit if not -f $file or -s $bs;
+ goto \&XSLoader::bootstrap_inherit if not -f $file;
my $bootname = "boot_$module";
$bootname =~ s/\W/_/g;
diff --git a/Master/tlpkg/tlperl/lib/_charnames.pm b/Master/tlpkg/tlperl/lib/_charnames.pm
index 8955b6fa87f..bb7d7c6c7b0 100644
--- a/Master/tlpkg/tlperl/lib/_charnames.pm
+++ b/Master/tlpkg/tlperl/lib/_charnames.pm
@@ -6,8 +6,7 @@
package _charnames;
use strict;
use warnings;
-use File::Spec;
-our $VERSION = '1.39';
+our $VERSION = '1.43';
use unicore::Name; # mktables-generated algorithmically-defined names
use bytes (); # for $bytes::hint_bits
@@ -66,10 +65,10 @@ $Carp::Internal{ (__PACKAGE__) } = 1;
my %system_aliases = (
- 'SINGLE-SHIFT 2' => pack("U", utf8::unicode_to_native(0x8E)),
- 'SINGLE-SHIFT 3' => pack("U", utf8::unicode_to_native(0x8F)),
- 'PRIVATE USE 1' => pack("U", utf8::unicode_to_native(0x91)),
- 'PRIVATE USE 2' => pack("U", utf8::unicode_to_native(0x92)),
+ 'SINGLE-SHIFT 2' => chr utf8::unicode_to_native(0x8E),
+ 'SINGLE-SHIFT 3' => chr utf8::unicode_to_native(0x8F),
+ 'PRIVATE USE 1' => chr utf8::unicode_to_native(0x91),
+ 'PRIVATE USE 2' => chr utf8::unicode_to_native(0x92),
);
# These are the aliases above that differ under :loose and :full matching
@@ -78,15 +77,15 @@ my %system_aliases = (
#);
#my %deprecated_aliases;
-#$deprecated_aliases{'BELL'} = pack("U", utf8::unicode_to_native(0x07)) if $^V lt v5.17.0;
+#$deprecated_aliases{'BELL'} = chr utf8::unicode_to_native(0x07) if $^V lt v5.17.0;
#my %loose_deprecated_aliases = (
#);
# These are special cased in :loose matching, differing only in a medial
# hyphen
-my $HANGUL_JUNGSEONG_O_E_utf8 = pack("U", 0x1180);
-my $HANGUL_JUNGSEONG_OE_utf8 = pack("U", 0x116C);
+my $HANGUL_JUNGSEONG_O_E_utf8 = chr 0x1180;
+my $HANGUL_JUNGSEONG_OE_utf8 = chr 0x116C;
my $txt; # The table of official character names
@@ -144,6 +143,7 @@ sub carp
sub alias (@) # Set up a single alias
{
my @errors;
+ my $nbsp = chr utf8::unicode_to_native(0xA0);
my $alias = ref $_[0] ? $_[0] : { @_ };
foreach my $name (sort keys %$alias) { # Sort only because it helps having
@@ -163,35 +163,52 @@ sub alias (@) # Set up a single alias
}
if ($value =~ $decimal_qr) {
no warnings qw(non_unicode surrogate nonchar); # Allow any of these
- $^H{charnames_ord_aliases}{$name} = pack("U", $value);
+ $^H{charnames_ord_aliases}{$name} = chr $value;
# Use a canonical form.
$^H{charnames_inverse_ords}{sprintf("%05X", $value)} = $name;
}
else {
- # This regex needs to be sync'd with the code in toke.c that checks
- # for the same thing
- if ($name !~ / ^
- \p{_Perl_Charname_Begin}
- \p{_Perl_Charname_Continue}*
- $ /x) {
-
- push @errors, $name;
+ my $ok_portion = "";
+ $ok_portion = $1 if $name =~ / ^ (
+ \p{_Perl_Charname_Begin}
+ \p{_Perl_Charname_Continue}*
+ ) /x;
+
+ # If the name was fully correct, the above should have matched all of
+ # it.
+ if (length $ok_portion < length $name) {
+ my $first_bad = substr($name, length($ok_portion), 1);
+ push @errors, "Invalid character in charnames alias definition; "
+ . "marked by <-- HERE in '$ok_portion$first_bad<-- HERE "
+ . substr($name, length($ok_portion) + 1)
+ . "'";
}
else {
- $^H{charnames_name_aliases}{$name} = $value;
-
- if (warnings::enabled('deprecated')) {
if ($name =~ / ( .* \s ) ( \s* ) $ /x) {
- carp "Trailing white-space in a charnames alias definition is deprecated; marked by <-- HERE in '$1 <-- HERE " . $2 . "'";
+ push @errors, "charnames alias definitions may not contain "
+ . "trailing white-space; marked by <-- HERE in "
+ . "'$1 <-- HERE " . $2 . "'";
+ next;
}
# Use '+' instead of '*' in this regex, because any trailing
- # blanks have already been warned about.
+ # blanks have already been found
if ($name =~ / ( .*? \s{2} ) ( .+ ) /x) {
- carp "A sequence of multiple spaces in a charnames alias definition is deprecated; marked by <-- HERE in '$1 <-- HERE " . $2 . "'";
+ push @errors, "charnames alias definitions may not contain a "
+ . "sequence of multiple spaces; marked by <-- HERE "
+ . "in '$1 <-- HERE " . $2 . "'";
+ next;
+ }
+
+ $^H{charnames_name_aliases}{$name} = $value;
+ if (warnings::enabled('deprecated')
+ && $name =~ / ( .* $nbsp ) ( .* ) $ /x)
+ {
+ carp "NO-BREAK SPACE in a charnames alias definition is "
+ . "deprecated; marked by <-- HERE in '$1 <-- HERE "
+ . $2 . "'";
}
- }
}
}
}
@@ -199,13 +216,6 @@ sub alias (@) # Set up a single alias
# We find and output all errors from this :alias definition, rather than
# failing on the first one, so fewer runs are needed to get it to compile
if (@errors) {
- foreach my $name (@errors) {
- my $ok = "";
- my $nbsp = chr utf8::unicode_to_native(0xa0);
- $ok = $1 if $name =~ / ^ ( \p{Alpha} [-\p{XPosixWord} ():$nbsp]* ) /x;
- my $first_bad = substr($name, length($ok), 1);
- $name = "Invalid character in charnames alias definition; marked by <-- HERE in '$ok$first_bad<-- HERE " . substr($name, length($ok) + 1) . "'";
- }
croak join "\n", @errors;
}
@@ -226,6 +236,7 @@ sub not_legal_use_bytes_msg {
sub alias_file ($) # Reads a file containing alias definitions
{
+ require File::Spec;
my ($arg, $file) = @_;
if (-f $arg && File::Spec->file_name_is_absolute ($arg)) {
$file = $arg;
@@ -274,7 +285,7 @@ sub lookup_name ($$$) {
# It looks first in the aliases, then in the large table of official Unicode
# names.
- my $utf8; # The string result
+ my $result; # The string result
my $save_input;
if ($runtime) {
@@ -287,7 +298,7 @@ sub lookup_name ($$$) {
|| (! defined $hints_ref->{charnames_full}
&& ! defined $hints_ref->{charnames_loose});
- # At runtime, but currently not at compile time, $^H gets
+ # At runtime, but currently not at compile time, %^H gets
# stringified, so un-stringify back to the original data structures.
# These get thrown away by perl before the next invocation
# Also fill in the hash with the non-stringified data.
@@ -310,7 +321,7 @@ sub lookup_name ($$$) {
# User alias should be checked first or else can't override ours, and if we
# were to add any, could conflict with theirs.
if (exists $^H{charnames_ord_aliases}{$name}) {
- $utf8 = $^H{charnames_ord_aliases}{$name};
+ $result = $^H{charnames_ord_aliases}{$name};
}
elsif (exists $^H{charnames_name_aliases}{$name}) {
$name = $^H{charnames_name_aliases}{$name};
@@ -351,13 +362,13 @@ sub lookup_name ($$$) {
# interested in convenience over speed, and the time for this second check
# is miniscule compared to the rest of the routine.
if (exists $system_aliases{$lookup_name}) {
- $utf8 = $system_aliases{$lookup_name};
+ $result = $system_aliases{$lookup_name};
}
# There are currently no entries in this hash, so don't waste time looking
# for them. But the code is retained for the unlikely possibility that
# some will be added in the future.
# elsif ($loose && exists $loose_system_aliases{$lookup_name}) {
-# $utf8 = $loose_system_aliases{$lookup_name};
+# $result = $loose_system_aliases{$lookup_name};
# }
# if (exists $deprecated_aliases{$lookup_name}) {
# require warnings;
@@ -365,7 +376,7 @@ sub lookup_name ($$$) {
# "Unicode character name \"$name\" is deprecated, use \""
# . viacode(ord $deprecated_aliases{$lookup_name})
# . "\" instead");
-# $utf8 = $deprecated_aliases{$lookup_name};
+# $result = $deprecated_aliases{$lookup_name};
# }
# There are currently no entries in this hash, so don't waste time looking
# for them. But the code is retained for the unlikely possibility that
@@ -376,21 +387,21 @@ sub lookup_name ($$$) {
# "Unicode character name \"$name\" is deprecated, use \""
# . viacode(ord $loose_deprecated_aliases{$lookup_name})
# . "\" instead");
-# $utf8 = $loose_deprecated_aliases{$lookup_name};
+# $result = $loose_deprecated_aliases{$lookup_name};
# }
}
my @off; # Offsets into table of pattern match begin and end
# If haven't found it yet...
- if (! defined $utf8) {
+ if (! defined $result) {
# See if has looked this input up earlier.
if (! $loose && $^H{charnames_full} && exists $full_names_cache{$name}) {
- $utf8 = $full_names_cache{$name};
+ $result = $full_names_cache{$name};
}
elsif ($loose && exists $loose_names_cache{$name}) {
- $utf8 = $loose_names_cache{$name};
+ $result = $loose_names_cache{$name};
}
else { # Here, must do a look-up
@@ -421,7 +432,7 @@ sub lookup_name ($$$) {
if (($loose || $^H{charnames_full})
&& (defined (my $ord = charnames::name_to_code_point_special($lookup_name, $loose))))
{
- $utf8 = pack("U", $ord);
+ $result = chr $ord;
}
else {
@@ -514,14 +525,14 @@ sub lookup_name ($$$) {
# therefore yield the very last character in the table, which should
# also be a \n, so the statement works anyway.)
if (substr($txt, $off[0] - 7, 1) eq "\n") {
- $utf8 = pack("U", CORE::hex substr($txt, $off[0] - 6, 5));
+ $result = chr CORE::hex substr($txt, $off[0] - 6, 5);
# Handle the single loose matching special case, in which two names
# differ only by a single medial hyphen. If the original had a
# hyphen (or more) in the right place, then it is that one.
- $utf8 = $HANGUL_JUNGSEONG_O_E_utf8
+ $result = $HANGUL_JUNGSEONG_O_E_utf8
if $loose
- && $utf8 eq $HANGUL_JUNGSEONG_OE_utf8
+ && $result eq $HANGUL_JUNGSEONG_OE_utf8
&& $name =~ m/O \s* - [-\s]* E/ix;
# Note that this wouldn't work if there were a 2nd
# OE in the name
@@ -533,7 +544,7 @@ sub lookup_name ($$$) {
# The +1 skips past that newline, or, if the rindex() fails, to put
# us to an offset of zero.
my $charstart = rindex($txt, "\n", $off[0] - 7) + 1;
- $utf8 = pack("U*", map { CORE::hex }
+ $result = pack("W*", map { CORE::hex }
split " ", substr($txt, $charstart, $off[0] - $charstart - 1));
}
}
@@ -542,15 +553,27 @@ sub lookup_name ($$$) {
# again, but only if it came from the one search that we cache.
# (Haven't bothered with the pain of sorting out scoping issues for the
# scripts searches.)
- $cache_ref->{$name} = $utf8 if defined $cache_ref;
+ $cache_ref->{$name} = $result if defined $cache_ref;
}
}
-
- # Here, have the utf8. If the return is to be an ord, must be any single
- # character.
+ # Here, have the result character. If the return is to be an ord, must be
+ # any single character.
if ($wants_ord) {
- return ord($utf8) if length $utf8 == 1;
+ return ord($result) if length $result == 1;
+ }
+ elsif (! utf8::is_utf8($result)) {
+
+ # Here isn't UTF-8. That's OK if it is all ASCII, or we are being called
+ # at compile time where we know we can guarantee that Unicode rules are
+ # correctly imposed on the result, or under 'bytes' where we don't want
+ # those rules. But otherwise we have to make it UTF8 to guarantee Unicode
+ # rules on the returned string.
+ return $result if ! $runtime
+ || (caller $runtime)[8] & $bytes::hint_bits
+ || $result !~ /[[:^ascii:]]/;
+ utf8::upgrade($result);
+ return $result;
}
else {
@@ -559,7 +582,7 @@ sub lookup_name ($$$) {
my $in_bytes = ($runtime)
? (caller $runtime)[8] & $bytes::hint_bits
: $^H & $bytes::hint_bits;
- return $utf8 if (! $in_bytes || utf8::downgrade($utf8, 1)) # The 1 arg
+ return $result if (! $in_bytes || utf8::downgrade($result, 1)) # The 1 arg
# means don't die on failure
}
@@ -583,10 +606,10 @@ sub lookup_name ($$$) {
# Only other possible failure here is from use bytes.
if ($runtime) {
- carp not_legal_use_bytes_msg($name, $utf8);
+ carp not_legal_use_bytes_msg($name, $result);
return;
} else {
- croak not_legal_use_bytes_msg($name, $utf8);
+ croak not_legal_use_bytes_msg($name, $result);
}
} # lookup_name
diff --git a/Master/tlpkg/tlperl/lib/arybase.pm b/Master/tlpkg/tlperl/lib/arybase.pm
index 3c090d66c2e..d905e6f2e86 100644
--- a/Master/tlpkg/tlperl/lib/arybase.pm
+++ b/Master/tlpkg/tlperl/lib/arybase.pm
@@ -1,6 +1,6 @@
package arybase;
-our $VERSION = "0.07";
+our $VERSION = "0.10";
require XSLoader;
XSLoader::load(); # This returns true, which makes require happy.
diff --git a/Master/tlpkg/tlperl/lib/attributes.pm b/Master/tlpkg/tlperl/lib/attributes.pm
index ebca2146085..f7af31b7b4c 100644
--- a/Master/tlpkg/tlperl/lib/attributes.pm
+++ b/Master/tlpkg/tlperl/lib/attributes.pm
@@ -1,6 +1,6 @@
package attributes;
-our $VERSION = 0.23;
+our $VERSION = 0.27;
@EXPORT_OK = qw(get reftype);
@EXPORT = ();
@@ -23,6 +23,12 @@ $deprecated{CODE} = qr/\A-?(locked)\z/;
$deprecated{ARRAY} = $deprecated{HASH} = $deprecated{SCALAR}
= qr/\A-?(unique)\z/;
+my %msg = (
+ lvalue => 'lvalue attribute applied to already-defined subroutine',
+ -lvalue => 'lvalue attribute removed from already-defined subroutine',
+ const => 'Useless use of attribute "const"',
+);
+
sub _modify_attrs_and_deprecate {
my $svtype = shift;
# Now that we've removed handling of locked from the XS code, we need to
@@ -34,13 +40,11 @@ sub _modify_attrs_and_deprecate {
require warnings;
warnings::warnif('deprecated', "Attribute \"$1\" is deprecated");
0;
- } : $svtype eq 'CODE' && /^-?lvalue\z/ ? do {
+ } : $svtype eq 'CODE' && exists $msg{$_} ? do {
require warnings;
warnings::warnif(
'misc',
- "lvalue attribute "
- . (/^-/ ? "removed from" : "applied to")
- . " already-defined subroutine"
+ $msg{$_}
);
0;
} : 1
@@ -256,6 +260,13 @@ attribute will be sanity checked at compile time.
The "locked" attribute is deprecated, and has no effect in 5.10.0 and later.
It was used as part of the now-removed "Perl 5.005 threads".
+=item const
+
+This experimental attribute, introduced in Perl 5.22, only applies to
+anonymous subroutines. It causes the subroutine to be called as soon as
+the C<sub> expression is evaluated. The return value is captured and
+turned into a constant subroutine.
+
=back
The following are the built-in attributes for variables:
diff --git a/Master/tlpkg/tlperl/lib/auto/B/B.dll b/Master/tlpkg/tlperl/lib/auto/B/B.dll
index 0e73ea82be3..8e8143e509f 100755
--- a/Master/tlpkg/tlperl/lib/auto/B/B.dll
+++ b/Master/tlpkg/tlperl/lib/auto/B/B.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll b/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll
index b293aaa0235..0dbcf17135b 100755
--- a/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll b/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll
index aa3bf3d2c67..2426d49e9f4 100755
--- a/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll b/Master/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll
index 1e97e6e1b7e..4a703935b7c 100755
--- a/Master/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll b/Master/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll
index 095e2905802..ddf53aff553 100755
--- a/Master/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Date/Parse/.packlist b/Master/tlpkg/tlperl/lib/auto/Date/Parse/.packlist
deleted file mode 100644
index 5e66e1a6615..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Date/Parse/.packlist
+++ /dev/null
@@ -1,37 +0,0 @@
-C:\tlperl\site\lib\Date\Format.pm
-C:\tlperl\site\lib\Date\Language.pm
-C:\tlperl\site\lib\Date\Language\Afar.pm
-C:\tlperl\site\lib\Date\Language\Amharic.pm
-C:\tlperl\site\lib\Date\Language\Austrian.pm
-C:\tlperl\site\lib\Date\Language\Brazilian.pm
-C:\tlperl\site\lib\Date\Language\Bulgarian.pm
-C:\tlperl\site\lib\Date\Language\Chinese.pm
-C:\tlperl\site\lib\Date\Language\Chinese_GB.pm
-C:\tlperl\site\lib\Date\Language\Czech.pm
-C:\tlperl\site\lib\Date\Language\Danish.pm
-C:\tlperl\site\lib\Date\Language\Dutch.pm
-C:\tlperl\site\lib\Date\Language\English.pm
-C:\tlperl\site\lib\Date\Language\Finnish.pm
-C:\tlperl\site\lib\Date\Language\French.pm
-C:\tlperl\site\lib\Date\Language\Gedeo.pm
-C:\tlperl\site\lib\Date\Language\German.pm
-C:\tlperl\site\lib\Date\Language\Greek.pm
-C:\tlperl\site\lib\Date\Language\Hungarian.pm
-C:\tlperl\site\lib\Date\Language\Icelandic.pm
-C:\tlperl\site\lib\Date\Language\Italian.pm
-C:\tlperl\site\lib\Date\Language\Norwegian.pm
-C:\tlperl\site\lib\Date\Language\Oromo.pm
-C:\tlperl\site\lib\Date\Language\Romanian.pm
-C:\tlperl\site\lib\Date\Language\Russian.pm
-C:\tlperl\site\lib\Date\Language\Russian_cp1251.pm
-C:\tlperl\site\lib\Date\Language\Russian_koi8r.pm
-C:\tlperl\site\lib\Date\Language\Sidama.pm
-C:\tlperl\site\lib\Date\Language\Somali.pm
-C:\tlperl\site\lib\Date\Language\Spanish.pm
-C:\tlperl\site\lib\Date\Language\Swedish.pm
-C:\tlperl\site\lib\Date\Language\Tigrinya.pm
-C:\tlperl\site\lib\Date\Language\TigrinyaEritrean.pm
-C:\tlperl\site\lib\Date\Language\TigrinyaEthiopian.pm
-C:\tlperl\site\lib\Date\Language\Turkish.pm
-C:\tlperl\site\lib\Date\Parse.pm
-C:\tlperl\site\lib\Time\Zone.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/Devel/PPPort/PPPort.dll b/Master/tlpkg/tlperl/lib/auto/Devel/PPPort/PPPort.dll
index 83cfca9feb2..57f30afe3be 100755
--- a/Master/tlpkg/tlperl/lib/auto/Devel/PPPort/PPPort.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Devel/PPPort/PPPort.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll b/Master/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll
index 94a6ce0ecfe..9b3a0ab6959 100755
--- a/Master/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll b/Master/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll
index 9041ef14a84..5207aa951c8 100755
--- a/Master/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll b/Master/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll
index 0cbcd8fedf6..bb42ce268cc 100755
--- a/Master/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Digest/SHA1/.packlist b/Master/tlpkg/tlperl/lib/auto/Digest/SHA1/.packlist
deleted file mode 100644
index 45cf93670f0..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Digest/SHA1/.packlist
+++ /dev/null
@@ -1,2 +0,0 @@
-C:\tlperl\site\lib\Digest\SHA1.pm
-C:\tlperl\site\lib\auto\Digest\SHA1\SHA1.dll
diff --git a/Master/tlpkg/tlperl/lib/auto/Digest/SHA1/SHA1.dll b/Master/tlpkg/tlperl/lib/auto/Digest/SHA1/SHA1.dll
deleted file mode 100755
index 9cd9fd2f3df..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Digest/SHA1/SHA1.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll b/Master/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll
index 031baf97ae9..374c7db0e51 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll b/Master/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll
index 9e90eae0936..095c40ae15c 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll b/Master/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll
index 016e780f1e5..57acb893de1 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/Encode.dll b/Master/tlpkg/tlperl/lib/auto/Encode/Encode.dll
index 9cbebb5347a..fd8506ad587 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/Encode.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/Encode.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll b/Master/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll
index 58f494336bc..ab42e1de9bc 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll b/Master/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll
index eb5be6df7f5..67089b873f5 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/Locale/.packlist b/Master/tlpkg/tlperl/lib/auto/Encode/Locale/.packlist
deleted file mode 100644
index fca67c3c703..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Encode/Locale/.packlist
+++ /dev/null
@@ -1 +0,0 @@
-C:\tlperl\site\lib\Encode\Locale.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll b/Master/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll
index 99f80c94ec1..d828ae9fe71 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll b/Master/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll
index d1a07e10b97..6149bbd70d0 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll b/Master/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll
index 76dc66bdf97..e6dd62f73a0 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/compat/.packlist b/Master/tlpkg/tlperl/lib/auto/Encode/compat/.packlist
deleted file mode 100644
index d4a2e08bb74..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Encode/compat/.packlist
+++ /dev/null
@@ -1,4 +0,0 @@
-C:\tlperl\site\lib\Encode\compat.pm
-C:\tlperl\site\lib\Encode\compat\5006001.pm
-C:\tlperl\site\lib\Encode\compat\Alias.pm
-C:\tlperl\site\lib\Encode\compat\common.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll b/Master/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll
index adf16cb057a..5325a503036 100755
--- a/Master/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll b/Master/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll
index 0bf9d2dba24..48085dcb83d 100755
--- a/Master/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll
+++ b/Master/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll b/Master/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll
index 82bda16b9e3..c5946b430c1 100755
--- a/Master/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll
+++ b/Master/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/File/Listing/.packlist b/Master/tlpkg/tlperl/lib/auto/File/Listing/.packlist
deleted file mode 100644
index 0d31ba57a1f..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/File/Listing/.packlist
+++ /dev/null
@@ -1 +0,0 @@
-C:\tlperl\site\lib\File\Listing.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/File/Which/.packlist b/Master/tlpkg/tlperl/lib/auto/File/Which/.packlist
deleted file mode 100644
index 161fae4c3ed..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/File/Which/.packlist
+++ /dev/null
@@ -1,3 +0,0 @@
-C:\tlperl\bin\pwhich
-C:\tlperl\bin\pwhich.bat
-C:\tlperl\site\lib\File\Which.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll b/Master/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll
index 69715d6c34b..74a3b017130 100755
--- a/Master/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/HTML/Parser/.packlist b/Master/tlpkg/tlperl/lib/auto/HTML/Parser/.packlist
deleted file mode 100644
index 6ce7b6a07a9..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/HTML/Parser/.packlist
+++ /dev/null
@@ -1,8 +0,0 @@
-C:\tlperl\site\lib\HTML\Entities.pm
-C:\tlperl\site\lib\HTML\Filter.pm
-C:\tlperl\site\lib\HTML\HeadParser.pm
-C:\tlperl\site\lib\HTML\LinkExtor.pm
-C:\tlperl\site\lib\HTML\Parser.pm
-C:\tlperl\site\lib\HTML\PullParser.pm
-C:\tlperl\site\lib\HTML\TokeParser.pm
-C:\tlperl\site\lib\auto\HTML\Parser\Parser.dll
diff --git a/Master/tlpkg/tlperl/lib/auto/HTML/Parser/Parser.dll b/Master/tlpkg/tlperl/lib/auto/HTML/Parser/Parser.dll
deleted file mode 100755
index 21ba8ef18f8..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/HTML/Parser/Parser.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/HTML/Tagset/.packlist b/Master/tlpkg/tlperl/lib/auto/HTML/Tagset/.packlist
deleted file mode 100644
index b0836c2d778..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/HTML/Tagset/.packlist
+++ /dev/null
@@ -1 +0,0 @@
-C:\tlperl\site\lib\HTML\Tagset.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/HTTP/Cookies/.packlist b/Master/tlpkg/tlperl/lib/auto/HTTP/Cookies/.packlist
deleted file mode 100644
index c1f0a862133..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/HTTP/Cookies/.packlist
+++ /dev/null
@@ -1,3 +0,0 @@
-C:\tlperl\site\lib\HTTP\Cookies.pm
-C:\tlperl\site\lib\HTTP\Cookies\Microsoft.pm
-C:\tlperl\site\lib\HTTP\Cookies\Netscape.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/HTTP/Daemon/.packlist b/Master/tlpkg/tlperl/lib/auto/HTTP/Daemon/.packlist
deleted file mode 100644
index 20fe206daaa..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/HTTP/Daemon/.packlist
+++ /dev/null
@@ -1 +0,0 @@
-C:\tlperl\site\lib\HTTP\Daemon.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/HTTP/Date/.packlist b/Master/tlpkg/tlperl/lib/auto/HTTP/Date/.packlist
deleted file mode 100644
index 8a98075d656..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/HTTP/Date/.packlist
+++ /dev/null
@@ -1 +0,0 @@
-C:\tlperl\site\lib\HTTP\Date.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/HTTP/Message/.packlist b/Master/tlpkg/tlperl/lib/auto/HTTP/Message/.packlist
deleted file mode 100644
index 80f40bf932d..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/HTTP/Message/.packlist
+++ /dev/null
@@ -1,10 +0,0 @@
-C:\tlperl\site\lib\HTTP\Config.pm
-C:\tlperl\site\lib\HTTP\Headers.pm
-C:\tlperl\site\lib\HTTP\Headers\Auth.pm
-C:\tlperl\site\lib\HTTP\Headers\ETag.pm
-C:\tlperl\site\lib\HTTP\Headers\Util.pm
-C:\tlperl\site\lib\HTTP\Message.pm
-C:\tlperl\site\lib\HTTP\Request.pm
-C:\tlperl\site\lib\HTTP\Request\Common.pm
-C:\tlperl\site\lib\HTTP\Response.pm
-C:\tlperl\site\lib\HTTP\Status.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/HTTP/Negotiate/.packlist b/Master/tlpkg/tlperl/lib/auto/HTTP/Negotiate/.packlist
deleted file mode 100644
index 9d7d8f27c96..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/HTTP/Negotiate/.packlist
+++ /dev/null
@@ -1 +0,0 @@
-C:\tlperl\site\lib\HTTP\Negotiate.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll b/Master/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll
index 261f3f0ef5b..c9215453a5d 100755
--- a/Master/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll b/Master/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll
index 17d8d5972ac..5cecb93b24f 100755
--- a/Master/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/IO/HTML/.packlist b/Master/tlpkg/tlperl/lib/auto/IO/HTML/.packlist
deleted file mode 100755
index 6cb34ec6af1..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/IO/HTML/.packlist
+++ /dev/null
@@ -1 +0,0 @@
-C:\tlperl\site\lib\IO\HTML.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/IO/IO.dll b/Master/tlpkg/tlperl/lib/auto/IO/IO.dll
index c576241c539..c2becf06c4e 100755
--- a/Master/tlpkg/tlperl/lib/auto/IO/IO.dll
+++ b/Master/tlpkg/tlperl/lib/auto/IO/IO.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/IO/String/.packlist b/Master/tlpkg/tlperl/lib/auto/IO/String/.packlist
deleted file mode 100644
index 301a4c1067d..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/IO/String/.packlist
+++ /dev/null
@@ -1 +0,0 @@
-C:\tlperl\site\lib\IO\String.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/LWP/.packlist b/Master/tlpkg/tlperl/lib/auto/LWP/.packlist
deleted file mode 100644
index 5e930937248..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/LWP/.packlist
+++ /dev/null
@@ -1,33 +0,0 @@
-C:\tlperl\bin\lwp-download
-C:\tlperl\bin\lwp-download.bat
-C:\tlperl\bin\lwp-dump
-C:\tlperl\bin\lwp-dump.bat
-C:\tlperl\bin\lwp-mirror
-C:\tlperl\bin\lwp-mirror.bat
-C:\tlperl\bin\lwp-request
-C:\tlperl\bin\lwp-request.bat
-C:\tlperl\site\lib\LWP.pm
-C:\tlperl\site\lib\LWP\Authen\Basic.pm
-C:\tlperl\site\lib\LWP\Authen\Digest.pm
-C:\tlperl\site\lib\LWP\Authen\Ntlm.pm
-C:\tlperl\site\lib\LWP\ConnCache.pm
-C:\tlperl\site\lib\LWP\Debug.pm
-C:\tlperl\site\lib\LWP\DebugFile.pm
-C:\tlperl\site\lib\LWP\MemberMixin.pm
-C:\tlperl\site\lib\LWP\Protocol.pm
-C:\tlperl\site\lib\LWP\Protocol\GHTTP.pm
-C:\tlperl\site\lib\LWP\Protocol\cpan.pm
-C:\tlperl\site\lib\LWP\Protocol\data.pm
-C:\tlperl\site\lib\LWP\Protocol\file.pm
-C:\tlperl\site\lib\LWP\Protocol\ftp.pm
-C:\tlperl\site\lib\LWP\Protocol\gopher.pm
-C:\tlperl\site\lib\LWP\Protocol\http.pm
-C:\tlperl\site\lib\LWP\Protocol\loopback.pm
-C:\tlperl\site\lib\LWP\Protocol\mailto.pm
-C:\tlperl\site\lib\LWP\Protocol\nntp.pm
-C:\tlperl\site\lib\LWP\Protocol\nogo.pm
-C:\tlperl\site\lib\LWP\RobotUA.pm
-C:\tlperl\site\lib\LWP\Simple.pm
-C:\tlperl\site\lib\LWP\UserAgent.pm
-C:\tlperl\site\lib\lwpcook.pod
-C:\tlperl\site\lib\lwptut.pod
diff --git a/Master/tlpkg/tlperl/lib/auto/LWP/MediaTypes/.packlist b/Master/tlpkg/tlperl/lib/auto/LWP/MediaTypes/.packlist
deleted file mode 100644
index ad241200dcf..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/LWP/MediaTypes/.packlist
+++ /dev/null
@@ -1,2 +0,0 @@
-C:\tlperl\site\lib\LWP\MediaTypes.pm
-C:\tlperl\site\lib\LWP\media.types
diff --git a/Master/tlpkg/tlperl/lib/auto/List/Util/Util.dll b/Master/tlpkg/tlperl/lib/auto/List/Util/Util.dll
index 839739f52e8..fd5f6341672 100755
--- a/Master/tlpkg/tlperl/lib/auto/List/Util/Util.dll
+++ b/Master/tlpkg/tlperl/lib/auto/List/Util/Util.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll b/Master/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll
index 911eec11850..1e3426116dc 100755
--- a/Master/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll
+++ b/Master/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll b/Master/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll
index 0eadcad6ca7..53c6dc5817e 100755
--- a/Master/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Math/Int64/.packlist b/Master/tlpkg/tlperl/lib/auto/Math/Int64/.packlist
deleted file mode 100755
index 5c97b8b3279..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Math/Int64/.packlist
+++ /dev/null
@@ -1,5 +0,0 @@
-C:\tlperl\site\lib\Math\Int64.pm
-C:\tlperl\site\lib\Math\Int64\die_on_overflow.pm
-C:\tlperl\site\lib\Math\Int64\native_if_available.pm
-C:\tlperl\site\lib\Math\UInt64.pm
-C:\tlperl\site\lib\auto\Math\Int64\Int64.dll
diff --git a/Master/tlpkg/tlperl/lib/auto/Math/Int64/Int64.dll b/Master/tlpkg/tlperl/lib/auto/Math/Int64/Int64.dll
deleted file mode 100755
index 3286543a874..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Math/Int64/Int64.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Mozilla/CA/.packlist b/Master/tlpkg/tlperl/lib/auto/Mozilla/CA/.packlist
deleted file mode 100644
index a91ad79eaec..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Mozilla/CA/.packlist
+++ /dev/null
@@ -1,3 +0,0 @@
-C:\tlperl\site\lib\Mozilla\CA.pm
-C:\tlperl\site\lib\Mozilla\CA\cacert.pem
-C:\tlperl\site\lib\Mozilla\mk-ca-bundle.pl
diff --git a/Master/tlpkg/tlperl/lib/auto/Net/HTTP/.packlist b/Master/tlpkg/tlperl/lib/auto/Net/HTTP/.packlist
deleted file mode 100644
index e71697e4233..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Net/HTTP/.packlist
+++ /dev/null
@@ -1,4 +0,0 @@
-C:\tlperl\site\lib\Net\HTTP.pm
-C:\tlperl\site\lib\Net\HTTPS.pm
-C:\tlperl\site\lib\Net\HTTP\Methods.pm
-C:\tlperl\site\lib\Net\HTTP\NB.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll b/Master/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll
index 8dfb79823e2..0f4d5708336 100755
--- a/Master/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll b/Master/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll
index 07e044596ab..7b29918ce7f 100755
--- a/Master/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll
+++ b/Master/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll b/Master/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll
index 2812f6ceb40..b688f8df9f7 100755
--- a/Master/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll
+++ b/Master/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll b/Master/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll
index b406ead6db6..86881bea2be 100755
--- a/Master/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll
+++ b/Master/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll b/Master/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll
index 6457bbe187f..ab139c99310 100755
--- a/Master/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll
+++ b/Master/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll b/Master/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll
index 1d593bd2f53..dac526d12fe 100755
--- a/Master/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll
+++ b/Master/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll b/Master/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll
index caf4a14fa67..c22fde05178 100755
--- a/Master/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll
+++ b/Master/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Socket/.packlist b/Master/tlpkg/tlperl/lib/auto/Socket/.packlist
deleted file mode 100644
index 87d1fe32b26..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Socket/.packlist
+++ /dev/null
@@ -1,2 +0,0 @@
-C:\tlperl\site\lib\Socket.pm
-C:\tlperl\site\lib\auto\Socket\Socket.dll
diff --git a/Master/tlpkg/tlperl/lib/auto/Socket/Socket.dll b/Master/tlpkg/tlperl/lib/auto/Socket/Socket.dll
index 46b53dac6f7..cbefa02168f 100755
--- a/Master/tlpkg/tlperl/lib/auto/Socket/Socket.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Socket/Socket.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/Storable.dll b/Master/tlpkg/tlperl/lib/auto/Storable/Storable.dll
index a1e7c9b87f9..1e0e0fbdacc 100755
--- a/Master/tlpkg/tlperl/lib/auto/Storable/Storable.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/Storable.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll b/Master/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll
index 350c01e86b5..f56b1a824c9 100755
--- a/Master/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tie/Hash/NamedCapture/NamedCapture.dll b/Master/tlpkg/tlperl/lib/auto/Tie/Hash/NamedCapture/NamedCapture.dll
index acab69eb2ac..14088ff9cae 100755
--- a/Master/tlpkg/tlperl/lib/auto/Tie/Hash/NamedCapture/NamedCapture.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Tie/Hash/NamedCapture/NamedCapture.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll b/Master/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll
index 922adde6d0f..ec78aef1f3d 100755
--- a/Master/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll b/Master/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll
index e1fba5b4580..94e46c9f9e8 100755
--- a/Master/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/.packlist b/Master/tlpkg/tlperl/lib/auto/Tk/.packlist
deleted file mode 100644
index acfdd696ac1..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/.packlist
+++ /dev/null
@@ -1,644 +0,0 @@
-C:\tlperl\bin\gedi
-C:\tlperl\bin\gedi.bat
-C:\tlperl\bin\ptked
-C:\tlperl\bin\ptked.bat
-C:\tlperl\bin\ptksh
-C:\tlperl\bin\ptksh.bat
-C:\tlperl\bin\tkjpeg
-C:\tlperl\bin\tkjpeg.bat
-C:\tlperl\bin\widget
-C:\tlperl\bin\widget.bat
-C:\tlperl\site\lib\Tie\Watch.pm
-C:\tlperl\site\lib\Tk.pm
-C:\tlperl\site\lib\Tk.pod
-C:\tlperl\site\lib\Tk\804delta.pod
-C:\tlperl\site\lib\Tk\Adjuster.pm
-C:\tlperl\site\lib\Tk\Adjuster.pod
-C:\tlperl\site\lib\Tk\After.pm
-C:\tlperl\site\lib\Tk\Animation.pm
-C:\tlperl\site\lib\Tk\Animation.pod
-C:\tlperl\site\lib\Tk\Balloon.pm
-C:\tlperl\site\lib\Tk\Balloon.pod
-C:\tlperl\site\lib\Tk\Bitmap.pm
-C:\tlperl\site\lib\Tk\Bitmap.pod
-C:\tlperl\site\lib\Tk\BrowseEntry.pm
-C:\tlperl\site\lib\Tk\BrowseEntry.pod
-C:\tlperl\site\lib\Tk\Button.pm
-C:\tlperl\site\lib\Tk\Button.pod
-C:\tlperl\site\lib\Tk\Camel.xpm
-C:\tlperl\site\lib\Tk\Canvas.pm
-C:\tlperl\site\lib\Tk\Canvas.pod
-C:\tlperl\site\lib\Tk\Checkbutton.pm
-C:\tlperl\site\lib\Tk\Checkbutton.pod
-C:\tlperl\site\lib\Tk\Clipboard.pm
-C:\tlperl\site\lib\Tk\Clipboard.pod
-C:\tlperl\site\lib\Tk\CmdLine.pm
-C:\tlperl\site\lib\Tk\CmdLine.pod
-C:\tlperl\site\lib\Tk\ColorDialog.pm
-C:\tlperl\site\lib\Tk\ColorEdit.xpm
-C:\tlperl\site\lib\Tk\ColorEditor.pm
-C:\tlperl\site\lib\Tk\ColorEditor.pod
-C:\tlperl\site\lib\Tk\ColorSelect.pm
-C:\tlperl\site\lib\Tk\Compound.pm
-C:\tlperl\site\lib\Tk\Compound.pod
-C:\tlperl\site\lib\Tk\Config.pm
-C:\tlperl\site\lib\Tk\ConfigSpecs.pod
-C:\tlperl\site\lib\Tk\Configure.pm
-C:\tlperl\site\lib\Tk\Credits
-C:\tlperl\site\lib\Tk\DItem.pod
-C:\tlperl\site\lib\Tk\Derived.pm
-C:\tlperl\site\lib\Tk\Derived.pod
-C:\tlperl\site\lib\Tk\Dialog.pm
-C:\tlperl\site\lib\Tk\Dialog.pod
-C:\tlperl\site\lib\Tk\DialogBox.pm
-C:\tlperl\site\lib\Tk\DialogBox.pod
-C:\tlperl\site\lib\Tk\DirTree.pm
-C:\tlperl\site\lib\Tk\DirTree.pod
-C:\tlperl\site\lib\Tk\Dirlist.pm
-C:\tlperl\site\lib\Tk\DragDrop.pm
-C:\tlperl\site\lib\Tk\DragDrop\Common.pm
-C:\tlperl\site\lib\Tk\DragDrop\Common.pod
-C:\tlperl\site\lib\Tk\DragDrop\LocalDrop.pm
-C:\tlperl\site\lib\Tk\DragDrop\Rect.pm
-C:\tlperl\site\lib\Tk\DragDrop\SunConst.pm
-C:\tlperl\site\lib\Tk\DragDrop\SunConst.pod
-C:\tlperl\site\lib\Tk\DragDrop\SunDrop.pm
-C:\tlperl\site\lib\Tk\DragDrop\SunSite.pm
-C:\tlperl\site\lib\Tk\DragDrop\Win32Drop.pm
-C:\tlperl\site\lib\Tk\DragDrop\Win32Site.pm
-C:\tlperl\site\lib\Tk\DragDrop\XDNDDrop.pm
-C:\tlperl\site\lib\Tk\DragDrop\XDNDSite.pm
-C:\tlperl\site\lib\Tk\DropSite.pm
-C:\tlperl\site\lib\Tk\DropSite.pod
-C:\tlperl\site\lib\Tk\DummyEncode.pm
-C:\tlperl\site\lib\Tk\English.pm
-C:\tlperl\site\lib\Tk\Entry.pm
-C:\tlperl\site\lib\Tk\Entry.pod
-C:\tlperl\site\lib\Tk\Error.pod
-C:\tlperl\site\lib\Tk\ErrorDialog.pm
-C:\tlperl\site\lib\Tk\ErrorDialog.pod
-C:\tlperl\site\lib\Tk\Event.pm
-C:\tlperl\site\lib\Tk\Event\IO.pm
-C:\tlperl\site\lib\Tk\Eventloop.pod
-C:\tlperl\site\lib\Tk\FBox.pm
-C:\tlperl\site\lib\Tk\FBox.pod
-C:\tlperl\site\lib\Tk\FileSelect.pm
-C:\tlperl\site\lib\Tk\FileSelect.pod
-C:\tlperl\site\lib\Tk\FloatEntry.pm
-C:\tlperl\site\lib\Tk\Font.pm
-C:\tlperl\site\lib\Tk\Font.pod
-C:\tlperl\site\lib\Tk\Frame.pm
-C:\tlperl\site\lib\Tk\Frame.pod
-C:\tlperl\site\lib\Tk\HList.pm
-C:\tlperl\site\lib\Tk\HList.pod
-C:\tlperl\site\lib\Tk\IO.pm
-C:\tlperl\site\lib\Tk\IO.pod
-C:\tlperl\site\lib\Tk\IconList.pm
-C:\tlperl\site\lib\Tk\IconList.pod
-C:\tlperl\site\lib\Tk\Image.pm
-C:\tlperl\site\lib\Tk\Image.pod
-C:\tlperl\site\lib\Tk\InputO.pod
-C:\tlperl\site\lib\Tk\Internals.pod
-C:\tlperl\site\lib\Tk\ItemStyle.pm
-C:\tlperl\site\lib\Tk\JPEG.pm
-C:\tlperl\site\lib\Tk\LabEntry.pm
-C:\tlperl\site\lib\Tk\LabFrame.pm
-C:\tlperl\site\lib\Tk\LabFrame.pod
-C:\tlperl\site\lib\Tk\LabRadio.pm
-C:\tlperl\site\lib\Tk\Label.pm
-C:\tlperl\site\lib\Tk\Label.pod
-C:\tlperl\site\lib\Tk\Labelframe.pm
-C:\tlperl\site\lib\Tk\Labelframe.pod
-C:\tlperl\site\lib\Tk\Listbox.pm
-C:\tlperl\site\lib\Tk\Listbox.pod
-C:\tlperl\site\lib\Tk\MMtry.pm
-C:\tlperl\site\lib\Tk\MMutil.pm
-C:\tlperl\site\lib\Tk\MainWindow.pm
-C:\tlperl\site\lib\Tk\MainWindow.pod
-C:\tlperl\site\lib\Tk\MakeDepend.pm
-C:\tlperl\site\lib\Tk\Menu.pm
-C:\tlperl\site\lib\Tk\Menu.pod
-C:\tlperl\site\lib\Tk\Menu\Item.pm
-C:\tlperl\site\lib\Tk\Menu\Item.pod
-C:\tlperl\site\lib\Tk\Menubar.pm
-C:\tlperl\site\lib\Tk\Menubutton.pm
-C:\tlperl\site\lib\Tk\Menubutton.pod
-C:\tlperl\site\lib\Tk\Message.pm
-C:\tlperl\site\lib\Tk\Message.pod
-C:\tlperl\site\lib\Tk\MsgBox.pm
-C:\tlperl\site\lib\Tk\MsgBox.pod
-C:\tlperl\site\lib\Tk\Mwm.pod
-C:\tlperl\site\lib\Tk\NBFrame.pm
-C:\tlperl\site\lib\Tk\NoteBook.pm
-C:\tlperl\site\lib\Tk\NoteBook.pod
-C:\tlperl\site\lib\Tk\Optionmenu.pm
-C:\tlperl\site\lib\Tk\Optionmenu.pod
-C:\tlperl\site\lib\Tk\PNG.pm
-C:\tlperl\site\lib\Tk\Pane.pm
-C:\tlperl\site\lib\Tk\Panedwindow.pm
-C:\tlperl\site\lib\Tk\Panedwindow.pod
-C:\tlperl\site\lib\Tk\Photo.pm
-C:\tlperl\site\lib\Tk\Photo.pod
-C:\tlperl\site\lib\Tk\Pixmap.pm
-C:\tlperl\site\lib\Tk\Pixmap.pod
-C:\tlperl\site\lib\Tk\Popup.pod
-C:\tlperl\site\lib\Tk\Pretty.pm
-C:\tlperl\site\lib\Tk\ProgressBar.pm
-C:\tlperl\site\lib\Tk\README.Adjust
-C:\tlperl\site\lib\Tk\ROText.pm
-C:\tlperl\site\lib\Tk\ROText.pod
-C:\tlperl\site\lib\Tk\Radiobutton.pm
-C:\tlperl\site\lib\Tk\Radiobutton.pod
-C:\tlperl\site\lib\Tk\Region.pm
-C:\tlperl\site\lib\Tk\Reindex.pm
-C:\tlperl\site\lib\Tk\ReindexedROText.pm
-C:\tlperl\site\lib\Tk\ReindexedText.pm
-C:\tlperl\site\lib\Tk\Scale.pm
-C:\tlperl\site\lib\Tk\Scale.pod
-C:\tlperl\site\lib\Tk\Scrollbar.pm
-C:\tlperl\site\lib\Tk\Scrollbar.pod
-C:\tlperl\site\lib\Tk\Scrolled.pod
-C:\tlperl\site\lib\Tk\Spinbox.pm
-C:\tlperl\site\lib\Tk\Spinbox.pod
-C:\tlperl\site\lib\Tk\Stats.pm
-C:\tlperl\site\lib\Tk\Submethods.pm
-C:\tlperl\site\lib\Tk\Submethods.pod
-C:\tlperl\site\lib\Tk\TList.pm
-C:\tlperl\site\lib\Tk\TList.pod
-C:\tlperl\site\lib\Tk\Table.pm
-C:\tlperl\site\lib\Tk\Table.pod
-C:\tlperl\site\lib\Tk\Tcl-perl.pod
-C:\tlperl\site\lib\Tk\Text.pm
-C:\tlperl\site\lib\Tk\Text.pod
-C:\tlperl\site\lib\Tk\TextEdit.pm
-C:\tlperl\site\lib\Tk\TextList.pm
-C:\tlperl\site\lib\Tk\TextUndo.pm
-C:\tlperl\site\lib\Tk\TextUndo.pod
-C:\tlperl\site\lib\Tk\Text\Tag.pm
-C:\tlperl\site\lib\Tk\Tiler.pm
-C:\tlperl\site\lib\Tk\Tiler.pod
-C:\tlperl\site\lib\Tk\TixGrid.pm
-C:\tlperl\site\lib\Tk\TixGrid.pod
-C:\tlperl\site\lib\Tk\Tk.xbm
-C:\tlperl\site\lib\Tk\Tk.xpm
-C:\tlperl\site\lib\Tk\TkXSUB.def
-C:\tlperl\site\lib\Tk\Toplevel.pm
-C:\tlperl\site\lib\Tk\Toplevel.pod
-C:\tlperl\site\lib\Tk\Trace.pm
-C:\tlperl\site\lib\Tk\Tree.pm
-C:\tlperl\site\lib\Tk\Tree.pod
-C:\tlperl\site\lib\Tk\UserGuide.pod
-C:\tlperl\site\lib\Tk\Widget.pm
-C:\tlperl\site\lib\Tk\Widget.pod
-C:\tlperl\site\lib\Tk\WidgetDemo.pod
-C:\tlperl\site\lib\Tk\Wm.pm
-C:\tlperl\site\lib\Tk\Wm.pod
-C:\tlperl\site\lib\Tk\X.pm
-C:\tlperl\site\lib\Tk\X.pod
-C:\tlperl\site\lib\Tk\X11Font.pm
-C:\tlperl\site\lib\Tk\X11Font.pod
-C:\tlperl\site\lib\Tk\X11\X.h
-C:\tlperl\site\lib\Tk\X11\Xatom.h
-C:\tlperl\site\lib\Tk\X11\Xfuncproto.h
-C:\tlperl\site\lib\Tk\X11\Xlib.h
-C:\tlperl\site\lib\Tk\X11\Xutil.h
-C:\tlperl\site\lib\Tk\X11\cursorfont.h
-C:\tlperl\site\lib\Tk\X11\keysym.h
-C:\tlperl\site\lib\Tk\X11\keysymdef.h
-C:\tlperl\site\lib\Tk\X11\license.terms
-C:\tlperl\site\lib\Tk\Xcamel.gif
-C:\tlperl\site\lib\Tk\Xlib.pm
-C:\tlperl\site\lib\Tk\Xrm.pm
-C:\tlperl\site\lib\Tk\Xrm.pod
-C:\tlperl\site\lib\Tk\act_folder.xbm
-C:\tlperl\site\lib\Tk\act_folder.xpm
-C:\tlperl\site\lib\Tk\after.pod
-C:\tlperl\site\lib\Tk\anim.gif
-C:\tlperl\site\lib\Tk\arrowdownwin.xbm
-C:\tlperl\site\lib\Tk\balArrow.xbm
-C:\tlperl\site\lib\Tk\bind.pod
-C:\tlperl\site\lib\Tk\bindtags.pod
-C:\tlperl\site\lib\Tk\callbacks.pod
-C:\tlperl\site\lib\Tk\cbxarrow.xbm
-C:\tlperl\site\lib\Tk\chooseColor.pod
-C:\tlperl\site\lib\Tk\chooseDirectory.pod
-C:\tlperl\site\lib\Tk\composite.pod
-C:\tlperl\site\lib\Tk\demos\LabEnLabRad.pm
-C:\tlperl\site\lib\Tk\demos\images\QuitPB.xpm
-C:\tlperl\site\lib\Tk\demos\images\QuitPBa.xpm
-C:\tlperl\site\lib\Tk\demos\images\c.icon
-C:\tlperl\site\lib\Tk\demos\images\cursor.cur
-C:\tlperl\site\lib\Tk\demos\images\cursor.mask
-C:\tlperl\site\lib\Tk\demos\images\cursor.xbm
-C:\tlperl\site\lib\Tk\demos\images\dir.icon
-C:\tlperl\site\lib\Tk\demos\images\dir.mask
-C:\tlperl\site\lib\Tk\demos\images\earth.gif
-C:\tlperl\site\lib\Tk\demos\images\earthris.gif
-C:\tlperl\site\lib\Tk\demos\images\face
-C:\tlperl\site\lib\Tk\demos\images\flagdown
-C:\tlperl\site\lib\Tk\demos\images\flagup
-C:\tlperl\site\lib\Tk\demos\images\grey.25
-C:\tlperl\site\lib\Tk\demos\images\grey.5
-C:\tlperl\site\lib\Tk\demos\images\letters
-C:\tlperl\site\lib\Tk\demos\images\mickey.gif
-C:\tlperl\site\lib\Tk\demos\images\ned.xpm
-C:\tlperl\site\lib\Tk\demos\images\noletters
-C:\tlperl\site\lib\Tk\demos\images\page.icon
-C:\tlperl\site\lib\Tk\demos\images\page.mask
-C:\tlperl\site\lib\Tk\demos\images\pattern
-C:\tlperl\site\lib\Tk\demos\images\teapot.ppm
-C:\tlperl\site\lib\Tk\demos\widget_lib\Ball.pm
-C:\tlperl\site\lib\Tk\demos\widget_lib\HList.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\HList2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\Plot.pm
-C:\tlperl\site\lib\Tk\demos\widget_lib\WidgetDemo.pm
-C:\tlperl\site\lib\Tk\demos\widget_lib\arrows.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\balloon.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\bind.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\bitmaps.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\bounce.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\browseentry.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\browseentry2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\button.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\check.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\choosedir.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\clrpick.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\colors.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\cscroll.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\ctext.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\dialog1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\dialog2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\dirtree.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\entry1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\entry2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\entry3.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\filebox.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\floor.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\form.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\form_mgr.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\hello.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\hscale.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\icon.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\image1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\image2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\items.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\keysyms.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\labelframe.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\labels.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\labframe.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\mega.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\menbut.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\menus.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\menus2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\msgBox.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\notebook.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\paned1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\paned2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\photo1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\photo2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\plot.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\progress.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\puzzle.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\radio.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\ruler.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\sayings.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\search.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\showVars.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\slide.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\spin.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\states.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\style.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\texts.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\trace1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\trace2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\transtile.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\twind.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\unicodeout.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\virtevents1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\vscale.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\Gedi.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\TEMPLATE.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\Tiler.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\all.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\cursor.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\lib\npuz\Xcamel.npuz
-C:\tlperl\site\lib\Tk\demos\widtrib\npuz.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\plop.pl
-C:\tlperl\site\lib\Tk\event.pod
-C:\tlperl\site\lib\Tk\exit.pod
-C:\tlperl\site\lib\Tk\file.xbm
-C:\tlperl\site\lib\Tk\file.xpm
-C:\tlperl\site\lib\Tk\fileevent.pod
-C:\tlperl\site\lib\Tk\focus.pod
-C:\tlperl\site\lib\Tk\folder.xbm
-C:\tlperl\site\lib\Tk\folder.xpm
-C:\tlperl\site\lib\Tk\form.pod
-C:\tlperl\site\lib\Tk\getOpenFile.pod
-C:\tlperl\site\lib\Tk\grab.pod
-C:\tlperl\site\lib\Tk\grid.pod
-C:\tlperl\site\lib\Tk\icon.gif
-C:\tlperl\site\lib\Tk\install.pm
-C:\tlperl\site\lib\Tk\license.terms
-C:\tlperl\site\lib\Tk\mega.pod
-C:\tlperl\site\lib\Tk\messageBox.pod
-C:\tlperl\site\lib\Tk\openfile.xbm
-C:\tlperl\site\lib\Tk\openfolder.xbm
-C:\tlperl\site\lib\Tk\openfolder.xpm
-C:\tlperl\site\lib\Tk\option.pod
-C:\tlperl\site\lib\Tk\options.pod
-C:\tlperl\site\lib\Tk\overview.pod
-C:\tlperl\site\lib\Tk\pTk.pod
-C:\tlperl\site\lib\Tk\pTk\Lang.h
-C:\tlperl\site\lib\Tk\pTk\Lang.m
-C:\tlperl\site\lib\Tk\pTk\Lang.t
-C:\tlperl\site\lib\Tk\pTk\Lang_f.h
-C:\tlperl\site\lib\Tk\pTk\Tcl-pTk
-C:\tlperl\site\lib\Tk\pTk\Xlib.h
-C:\tlperl\site\lib\Tk\pTk\Xlib.m
-C:\tlperl\site\lib\Tk\pTk\Xlib.t
-C:\tlperl\site\lib\Tk\pTk\Xlib_f.h
-C:\tlperl\site\lib\Tk\pTk\compat\limits.h
-C:\tlperl\site\lib\Tk\pTk\compat\stdlib.h
-C:\tlperl\site\lib\Tk\pTk\compat\unistd.h
-C:\tlperl\site\lib\Tk\pTk\default.h
-C:\tlperl\site\lib\Tk\pTk\img.h
-C:\tlperl\site\lib\Tk\pTk\imgInt.h
-C:\tlperl\site\lib\Tk\pTk\imgInt.m
-C:\tlperl\site\lib\Tk\pTk\imgInt.t
-C:\tlperl\site\lib\Tk\pTk\imgInt_f.h
-C:\tlperl\site\lib\Tk\pTk\ks_names.h
-C:\tlperl\site\lib\Tk\pTk\mkVFunc
-C:\tlperl\site\lib\Tk\pTk\moredefs.h
-C:\tlperl\site\lib\Tk\pTk\port.h
-C:\tlperl\site\lib\Tk\pTk\tcl.h
-C:\tlperl\site\lib\Tk\pTk\tclDecls.h
-C:\tlperl\site\lib\Tk\pTk\tclDecls.m
-C:\tlperl\site\lib\Tk\pTk\tclDecls.t
-C:\tlperl\site\lib\Tk\pTk\tclDecls_f.h
-C:\tlperl\site\lib\Tk\pTk\tclIntDecls.h
-C:\tlperl\site\lib\Tk\pTk\tclIntPlatDecls.h
-C:\tlperl\site\lib\Tk\pTk\tclMath.h
-C:\tlperl\site\lib\Tk\pTk\tclPlatDecls.h
-C:\tlperl\site\lib\Tk\pTk\tclWinInt.h
-C:\tlperl\site\lib\Tk\pTk\tix.h
-C:\tlperl\site\lib\Tk\pTk\tix.m
-C:\tlperl\site\lib\Tk\pTk\tix.t
-C:\tlperl\site\lib\Tk\pTk\tixBitmaps.h
-C:\tlperl\site\lib\Tk\pTk\tixDef.h
-C:\tlperl\site\lib\Tk\pTk\tixForm.h
-C:\tlperl\site\lib\Tk\pTk\tixGrData.h
-C:\tlperl\site\lib\Tk\pTk\tixGrid.h
-C:\tlperl\site\lib\Tk\pTk\tixHList.h
-C:\tlperl\site\lib\Tk\pTk\tixImgXpm.h
-C:\tlperl\site\lib\Tk\pTk\tixImgXpm.m
-C:\tlperl\site\lib\Tk\pTk\tixImgXpm.t
-C:\tlperl\site\lib\Tk\pTk\tixImgXpm_f.h
-C:\tlperl\site\lib\Tk\pTk\tixInt.h
-C:\tlperl\site\lib\Tk\pTk\tixInt.m
-C:\tlperl\site\lib\Tk\pTk\tixInt.t
-C:\tlperl\site\lib\Tk\pTk\tixInt_f.h
-C:\tlperl\site\lib\Tk\pTk\tixPort.h
-C:\tlperl\site\lib\Tk\pTk\tixTList.h
-C:\tlperl\site\lib\Tk\pTk\tixWinInt.h
-C:\tlperl\site\lib\Tk\pTk\tixWinPort.h
-C:\tlperl\site\lib\Tk\pTk\tix_f.h
-C:\tlperl\site\lib\Tk\pTk\tk.h
-C:\tlperl\site\lib\Tk\pTk\tk.m
-C:\tlperl\site\lib\Tk\pTk\tk.t
-C:\tlperl\site\lib\Tk\pTk\tk3d.h
-C:\tlperl\site\lib\Tk\pTk\tkButton.h
-C:\tlperl\site\lib\Tk\pTk\tkCanvas.h
-C:\tlperl\site\lib\Tk\pTk\tkCanvases.h
-C:\tlperl\site\lib\Tk\pTk\tkColor.h
-C:\tlperl\site\lib\Tk\pTk\tkConfig.h
-C:\tlperl\site\lib\Tk\pTk\tkDecls.h
-C:\tlperl\site\lib\Tk\pTk\tkDecls.m
-C:\tlperl\site\lib\Tk\pTk\tkDecls.t
-C:\tlperl\site\lib\Tk\pTk\tkDecls_f.h
-C:\tlperl\site\lib\Tk\pTk\tkEvent.h
-C:\tlperl\site\lib\Tk\pTk\tkEvent.m
-C:\tlperl\site\lib\Tk\pTk\tkEvent.t
-C:\tlperl\site\lib\Tk\pTk\tkEvent_f.h
-C:\tlperl\site\lib\Tk\pTk\tkFileFilter.h
-C:\tlperl\site\lib\Tk\pTk\tkFont.h
-C:\tlperl\site\lib\Tk\pTk\tkImgPhoto.h
-C:\tlperl\site\lib\Tk\pTk\tkImgPhoto.m
-C:\tlperl\site\lib\Tk\pTk\tkImgPhoto.t
-C:\tlperl\site\lib\Tk\pTk\tkImgPhoto_f.h
-C:\tlperl\site\lib\Tk\pTk\tkInitScript.h
-C:\tlperl\site\lib\Tk\pTk\tkInt.h
-C:\tlperl\site\lib\Tk\pTk\tkInt.m
-C:\tlperl\site\lib\Tk\pTk\tkInt.t
-C:\tlperl\site\lib\Tk\pTk\tkIntDecls.h
-C:\tlperl\site\lib\Tk\pTk\tkIntDecls.m
-C:\tlperl\site\lib\Tk\pTk\tkIntDecls.t
-C:\tlperl\site\lib\Tk\pTk\tkIntDecls_f.h
-C:\tlperl\site\lib\Tk\pTk\tkIntPlatDecls.h
-C:\tlperl\site\lib\Tk\pTk\tkIntPlatDecls.m
-C:\tlperl\site\lib\Tk\pTk\tkIntPlatDecls.t
-C:\tlperl\site\lib\Tk\pTk\tkIntPlatDecls_f.h
-C:\tlperl\site\lib\Tk\pTk\tkIntXlibDecls.h
-C:\tlperl\site\lib\Tk\pTk\tkIntXlibDecls.m
-C:\tlperl\site\lib\Tk\pTk\tkIntXlibDecls.t
-C:\tlperl\site\lib\Tk\pTk\tkIntXlibDecls_f.h
-C:\tlperl\site\lib\Tk\pTk\tkInt_f.h
-C:\tlperl\site\lib\Tk\pTk\tkMenu.h
-C:\tlperl\site\lib\Tk\pTk\tkMenubutton.h
-C:\tlperl\site\lib\Tk\pTk\tkOption.h
-C:\tlperl\site\lib\Tk\pTk\tkOption.m
-C:\tlperl\site\lib\Tk\pTk\tkOption.t
-C:\tlperl\site\lib\Tk\pTk\tkOption_f.h
-C:\tlperl\site\lib\Tk\pTk\tkPlatDecls.h
-C:\tlperl\site\lib\Tk\pTk\tkPlatDecls.m
-C:\tlperl\site\lib\Tk\pTk\tkPlatDecls.t
-C:\tlperl\site\lib\Tk\pTk\tkPlatDecls_f.h
-C:\tlperl\site\lib\Tk\pTk\tkPort.h
-C:\tlperl\site\lib\Tk\pTk\tkScale.h
-C:\tlperl\site\lib\Tk\pTk\tkScrollbar.h
-C:\tlperl\site\lib\Tk\pTk\tkSelect.h
-C:\tlperl\site\lib\Tk\pTk\tkText.h
-C:\tlperl\site\lib\Tk\pTk\tkUndo.h
-C:\tlperl\site\lib\Tk\pTk\tkVMacro.h
-C:\tlperl\site\lib\Tk\pTk\tkWin.h
-C:\tlperl\site\lib\Tk\pTk\tkWinDefault.h
-C:\tlperl\site\lib\Tk\pTk\tkWinInt.h
-C:\tlperl\site\lib\Tk\pTk\tkWinPort.h
-C:\tlperl\site\lib\Tk\pTk\tkXrm.h
-C:\tlperl\site\lib\Tk\pTk\tk_f.h
-C:\tlperl\site\lib\Tk\pTk\xbytes.h
-C:\tlperl\site\lib\Tk\pack.pod
-C:\tlperl\site\lib\Tk\palette.pod
-C:\tlperl\site\lib\Tk\place.pod
-C:\tlperl\site\lib\Tk\prolog.ps
-C:\tlperl\site\lib\Tk\selection.pod
-C:\tlperl\site\lib\Tk\send.pod
-C:\tlperl\site\lib\Tk\srcfile.xpm
-C:\tlperl\site\lib\Tk\textfile.xpm
-C:\tlperl\site\lib\Tk\tixWm.pod
-C:\tlperl\site\lib\Tk\tkGlue.def
-C:\tlperl\site\lib\Tk\tkGlue.h
-C:\tlperl\site\lib\Tk\tkGlue.m
-C:\tlperl\site\lib\Tk\tkGlue.t
-C:\tlperl\site\lib\Tk\tkGlue_f.h
-C:\tlperl\site\lib\Tk\tkvars.pod
-C:\tlperl\site\lib\Tk\tranicon.gif
-C:\tlperl\site\lib\Tk\typemap
-C:\tlperl\site\lib\Tk\vtab.def
-C:\tlperl\site\lib\Tk\widgets.pm
-C:\tlperl\site\lib\Tk\widgets.pod
-C:\tlperl\site\lib\Tk\win.xbm
-C:\tlperl\site\lib\Tk\winfolder.xpm
-C:\tlperl\site\lib\Tk\wintext.xpm
-C:\tlperl\site\lib\auto\Tk\CancelRepeat.al
-C:\tlperl\site\lib\auto\Tk\Canvas\Canvas.dll
-C:\tlperl\site\lib\auto\Tk\Clipboard\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Clipboard\getSelected.al
-C:\tlperl\site\lib\auto\Tk\Compound\Compound.dll
-C:\tlperl\site\lib\auto\Tk\DragDrop\Win32Site\Win32Site.dll
-C:\tlperl\site\lib\auto\Tk\EnterFocus.al
-C:\tlperl\site\lib\auto\Tk\Entry\Entry.dll
-C:\tlperl\site\lib\auto\Tk\Error.al
-C:\tlperl\site\lib\auto\Tk\Event\Event.dll
-C:\tlperl\site\lib\auto\Tk\FirstMenu.al
-C:\tlperl\site\lib\auto\Tk\FocusChildren.al
-C:\tlperl\site\lib\auto\Tk\FocusOK.al
-C:\tlperl\site\lib\auto\Tk\Frame\AddScrollbars.al
-C:\tlperl\site\lib\auto\Tk\Frame\FindMenu.al
-C:\tlperl\site\lib\auto\Tk\Frame\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Frame\freeze_on_map.al
-C:\tlperl\site\lib\auto\Tk\Frame\label.al
-C:\tlperl\site\lib\auto\Tk\Frame\labelPack.al
-C:\tlperl\site\lib\auto\Tk\Frame\labelVariable.al
-C:\tlperl\site\lib\auto\Tk\Frame\packscrollbars.al
-C:\tlperl\site\lib\auto\Tk\Frame\queuePack.al
-C:\tlperl\site\lib\auto\Tk\Frame\sbset.al
-C:\tlperl\site\lib\auto\Tk\Frame\scrollbars.al
-C:\tlperl\site\lib\auto\Tk\HList\HList.dll
-C:\tlperl\site\lib\auto\Tk\IO\IO.dll
-C:\tlperl\site\lib\auto\Tk\ImageNames.al
-C:\tlperl\site\lib\auto\Tk\ImageTypes.al
-C:\tlperl\site\lib\auto\Tk\JPEG\JPEG.dll
-C:\tlperl\site\lib\auto\Tk\Listbox\AutoScan.al
-C:\tlperl\site\lib\auto\Tk\Listbox\BeginExtend.al
-C:\tlperl\site\lib\auto\Tk\Listbox\BeginSelect.al
-C:\tlperl\site\lib\auto\Tk\Listbox\BeginToggle.al
-C:\tlperl\site\lib\auto\Tk\Listbox\ButtonRelease_1.al
-C:\tlperl\site\lib\auto\Tk\Listbox\CLEAR.al
-C:\tlperl\site\lib\auto\Tk\Listbox\Cancel.al
-C:\tlperl\site\lib\auto\Tk\Listbox\Cntrl_End.al
-C:\tlperl\site\lib\auto\Tk\Listbox\Cntrl_Home.al
-C:\tlperl\site\lib\auto\Tk\Listbox\Cntrl_backslash.al
-C:\tlperl\site\lib\auto\Tk\Listbox\DELETE.al
-C:\tlperl\site\lib\auto\Tk\Listbox\DataExtend.al
-C:\tlperl\site\lib\auto\Tk\Listbox\EXISTS.al
-C:\tlperl\site\lib\auto\Tk\Listbox\EXTEND.al
-C:\tlperl\site\lib\auto\Tk\Listbox\ExtendUpDown.al
-C:\tlperl\site\lib\auto\Tk\Listbox\FETCH.al
-C:\tlperl\site\lib\auto\Tk\Listbox\FETCHSIZE.al
-C:\tlperl\site\lib\auto\Tk\Listbox\Listbox.dll
-C:\tlperl\site\lib\auto\Tk\Listbox\Motion.al
-C:\tlperl\site\lib\auto\Tk\Listbox\POP.al
-C:\tlperl\site\lib\auto\Tk\Listbox\PUSH.al
-C:\tlperl\site\lib\auto\Tk\Listbox\SHIFT.al
-C:\tlperl\site\lib\auto\Tk\Listbox\SPLICE.al
-C:\tlperl\site\lib\auto\Tk\Listbox\STORE.al
-C:\tlperl\site\lib\auto\Tk\Listbox\SelectAll.al
-C:\tlperl\site\lib\auto\Tk\Listbox\SetList.al
-C:\tlperl\site\lib\auto\Tk\Listbox\TIEARRAY.al
-C:\tlperl\site\lib\auto\Tk\Listbox\TIESCALAR.al
-C:\tlperl\site\lib\auto\Tk\Listbox\UNSHIFT.al
-C:\tlperl\site\lib\auto\Tk\Listbox\UpDown.al
-C:\tlperl\site\lib\auto\Tk\Listbox\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Listbox\clipboardPaste.al
-C:\tlperl\site\lib\auto\Tk\Listbox\deleteSelected.al
-C:\tlperl\site\lib\auto\Tk\Listbox\getSelected.al
-C:\tlperl\site\lib\auto\Tk\Listbox\xyIndex.al
-C:\tlperl\site\lib\auto\Tk\Menubutton\Menubutton.dll
-C:\tlperl\site\lib\auto\Tk\NBFrame\NBFrame.dll
-C:\tlperl\site\lib\auto\Tk\PNG\PNG.dll
-C:\tlperl\site\lib\auto\Tk\Pixmap\Pixmap.dll
-C:\tlperl\site\lib\auto\Tk\Receive.al
-C:\tlperl\site\lib\auto\Tk\RepeatId.al
-C:\tlperl\site\lib\auto\Tk\Scale\Activate.al
-C:\tlperl\site\lib\auto\Tk\Scale\ButtonDown.al
-C:\tlperl\site\lib\auto\Tk\Scale\ButtonUp.al
-C:\tlperl\site\lib\auto\Tk\Scale\ControlPress.al
-C:\tlperl\site\lib\auto\Tk\Scale\Drag.al
-C:\tlperl\site\lib\auto\Tk\Scale\EndDrag.al
-C:\tlperl\site\lib\auto\Tk\Scale\Enter.al
-C:\tlperl\site\lib\auto\Tk\Scale\Increment.al
-C:\tlperl\site\lib\auto\Tk\Scale\Leave.al
-C:\tlperl\site\lib\auto\Tk\Scale\Scale.dll
-C:\tlperl\site\lib\auto\Tk\Scale\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Scrollbar\ButtonDown.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\ButtonUp.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\Drag.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\EndDrag.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\Enter.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\Leave.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\Motion.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\ScrlByPages.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\ScrlByUnits.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\ScrlToPos.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\ScrlTopBottom.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\Scrollbar.dll
-C:\tlperl\site\lib\auto\Tk\Scrollbar\Select.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\StartDrag.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Selection.al
-C:\tlperl\site\lib\auto\Tk\TList\TList.dll
-C:\tlperl\site\lib\auto\Tk\Table\Create.al
-C:\tlperl\site\lib\auto\Tk\Table\Posn.al
-C:\tlperl\site\lib\auto\Tk\Table\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Table\see.al
-C:\tlperl\site\lib\auto\Tk\Table\totalColumns.al
-C:\tlperl\site\lib\auto\Tk\Table\totalRows.al
-C:\tlperl\site\lib\auto\Tk\TextEdit\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\TextUndo\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Text\Text.dll
-C:\tlperl\site\lib\auto\Tk\Text\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\TixGrid\TixGrid.dll
-C:\tlperl\site\lib\auto\Tk\Tk.dll
-C:\tlperl\site\lib\auto\Tk\Toplevel\FG_BindIn.al
-C:\tlperl\site\lib\auto\Tk\Toplevel\FG_BindOut.al
-C:\tlperl\site\lib\auto\Tk\Toplevel\FG_Create.al
-C:\tlperl\site\lib\auto\Tk\Toplevel\FG_Destroy.al
-C:\tlperl\site\lib\auto\Tk\Toplevel\FG_In.al
-C:\tlperl\site\lib\auto\Tk\Toplevel\FG_Out.al
-C:\tlperl\site\lib\auto\Tk\Toplevel\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\TraverseToMenu.al
-C:\tlperl\site\lib\auto\Tk\Widget\ASkludge.al
-C:\tlperl\site\lib\auto\Tk\Widget\AltKeyInDialog.al
-C:\tlperl\site\lib\auto\Tk\Widget\AmpWidget.al
-C:\tlperl\site\lib\auto\Tk\Widget\FindAltKeyTarget.al
-C:\tlperl\site\lib\auto\Tk\Widget\MasterMenu.al
-C:\tlperl\site\lib\auto\Tk\Widget\RestoreFocusGrab.al
-C:\tlperl\site\lib\auto\Tk\Widget\SetAmpText.al
-C:\tlperl\site\lib\auto\Tk\Widget\SetFocusGrab.al
-C:\tlperl\site\lib\auto\Tk\Widget\UnderlineAmpersand.al
-C:\tlperl\site\lib\auto\Tk\Widget\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Widget\bindDump.al
-C:\tlperl\site\lib\auto\Tk\Widget\clipboardKeysyms.al
-C:\tlperl\site\lib\auto\Tk\Widget\pathname.al
-C:\tlperl\site\lib\auto\Tk\Wm\AnchorAdjust.al
-C:\tlperl\site\lib\auto\Tk\Wm\FullScreen.al
-C:\tlperl\site\lib\auto\Tk\Wm\Popup.al
-C:\tlperl\site\lib\auto\Tk\Wm\Post.al
-C:\tlperl\site\lib\auto\Tk\Wm\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Wm\iconposition.al
-C:\tlperl\site\lib\auto\Tk\X\X.dll
-C:\tlperl\site\lib\auto\Tk\X\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Xlib\Xlib.dll
-C:\tlperl\site\lib\auto\Tk\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\break.al
-C:\tlperl\site\lib\auto\Tk\focusFollowsMouse.al
-C:\tlperl\site\lib\auto\Tk\focusNext.al
-C:\tlperl\site\lib\auto\Tk\focusPrev.al
-C:\tlperl\site\lib\auto\Tk\getEncoding.al
-C:\tlperl\site\lib\auto\Tk\getNextFocus.al
-C:\tlperl\site\lib\auto\Tk\getPrevFocus.al
-C:\tlperl\site\lib\auto\Tk\interps.al
-C:\tlperl\site\lib\auto\Tk\lsearch.al
-C:\tlperl\site\lib\auto\Tk\pTk\extralibs.ld
-C:\tlperl\site\lib\auto\Tk\tabFocus.al
-C:\tlperl\site\lib\auto\Tk\updateWidgets.al
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/CancelRepeat.al b/Master/tlpkg/tlperl/lib/auto/Tk/CancelRepeat.al
deleted file mode 100644
index 06201b22794..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/CancelRepeat.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 509 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\CancelRepeat.al)"
-sub CancelRepeat
-{
- my $w = shift->MainWindow;
- my $id = delete $w->{_afterId_};
- $w->after('cancel',$id) if (defined $id);
-}
-
-# end of Tk::CancelRepeat
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Canvas/Canvas.dll b/Master/tlpkg/tlperl/lib/auto/Tk/Canvas/Canvas.dll
deleted file mode 100755
index 5f16b7f1582..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Canvas/Canvas.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Clipboard/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/Clipboard/autosplit.ix
deleted file mode 100644
index 9831f74facb..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Clipboard/autosplit.ix
+++ /dev/null
@@ -1,6 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk\Clipboard.pm
-# (file acts as timestamp)
-package Tk::Clipboard;
-sub getSelected
-;
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Clipboard/getSelected.al b/Master/tlpkg/tlperl/lib/auto/Tk/Clipboard/getSelected.al
deleted file mode 100644
index 44ba7b74bf0..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Clipboard/getSelected.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Clipboard.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Clipboard;
-
-#line 115 "blib\lib\Tk\Clipboard.pm (autosplit into blib\lib\auto\Tk\Clipboard\getSelected.al)"
-sub getSelected
-{
- my $w = shift;
- my $val = Tk::catch { $w->get('sel.first','sel.last') };
- return $val;
-}
-
-1;
-# end of Tk::Clipboard::getSelected
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Compound/Compound.dll b/Master/tlpkg/tlperl/lib/auto/Tk/Compound/Compound.dll
deleted file mode 100755
index 383b1ec5455..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Compound/Compound.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/DirSelect/.packlist b/Master/tlpkg/tlperl/lib/auto/Tk/DirSelect/.packlist
deleted file mode 100755
index f39d318ae22..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/DirSelect/.packlist
+++ /dev/null
@@ -1 +0,0 @@
-C:\tlperl\site\lib\Tk\DirSelect.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/DragDrop/Win32Site/Win32Site.dll b/Master/tlpkg/tlperl/lib/auto/Tk/DragDrop/Win32Site/Win32Site.dll
deleted file mode 100755
index 76576ec3b0c..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/DragDrop/Win32Site/Win32Site.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/EnterFocus.al b/Master/tlpkg/tlperl/lib/auto/Tk/EnterFocus.al
deleted file mode 100644
index 67282277fd1..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/EnterFocus.al
+++ /dev/null
@@ -1,27 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 693 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\EnterFocus.al)"
-# focusFollowsMouse
-#
-# If this procedure is invoked, Tk will enter "focus-follows-mouse"
-# mode, where the focus is always on whatever window contains the
-# mouse. If this procedure isn't invoked, then the user typically
-# has to click on a window to give it the focus.
-#
-# Arguments:
-# None.
-
-sub EnterFocus
-{
- my $w = shift;
- return unless $w;
- my $Ev = $w->XEvent;
- my $d = $Ev->d;
- $w->Tk::focus() if ($d eq 'NotifyAncestor' || $d eq 'NotifyNonlinear' || $d eq 'NotifyInferior');
-}
-
-# end of Tk::EnterFocus
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Entry/Entry.dll b/Master/tlpkg/tlperl/lib/auto/Tk/Entry/Entry.dll
deleted file mode 100755
index e64a4b0426f..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Entry/Entry.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Error.al b/Master/tlpkg/tlperl/lib/auto/Tk/Error.al
deleted file mode 100644
index c250b74330a..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Error.al
+++ /dev/null
@@ -1,20 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 497 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\Error.al)"
-sub Error
-{my $w = shift;
- my $error = shift;
- if (Exists($w))
- {
- my $grab = $w->grab('current');
- $grab->Unbusy if (defined $grab);
- }
- chomp($error);
- warn "Tk::Error: $error\n " . join("\n ",@_)."\n";
-}
-
-# end of Tk::Error
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Event/Event.dll b/Master/tlpkg/tlperl/lib/auto/Tk/Event/Event.dll
deleted file mode 100755
index 3d2a09470d8..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Event/Event.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/FirstMenu.al b/Master/tlpkg/tlperl/lib/auto/Tk/FirstMenu.al
deleted file mode 100644
index 6918c367540..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/FirstMenu.al
+++ /dev/null
@@ -1,21 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 741 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\FirstMenu.al)"
-# tkFirstMenu --
-# This procedure traverses to the first menubutton in the toplevel
-# for a given window, and posts that menubutton's menu.
-#
-# Arguments:
-# w - Name of a window. Selects which toplevel
-# to search for menubuttons.
-sub FirstMenu
-{
- my $w = shift;
- $w = $w->toplevel->FindMenu('');
-}
-
-# end of Tk::FirstMenu
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/FocusChildren.al b/Master/tlpkg/tlperl/lib/auto/Tk/FocusChildren.al
deleted file mode 100644
index 22515cfa56d..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/FocusChildren.al
+++ /dev/null
@@ -1,35 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 526 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\FocusChildren.al)"
-#----------------------------------------------------------------------------
-# focus.tcl --
-#
-# This file defines several procedures for managing the input
-# focus.
-#
-# @(#) focus.tcl 1.6 94/12/19 17:06:46
-#
-# Copyright (c) 1994 Sun Microsystems, Inc.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-sub FocusChildren { shift->children }
-
-#
-# focusNext --
-# This procedure is invoked to move the input focus to the next window
-# after a given one. "Next" is defined in terms of the window
-# stacking order, with all the windows underneath a given top-level
-# (no matter how deeply nested in the hierarchy) considered except
-# for frames and toplevels.
-#
-# Arguments:
-# w - Name of a window: the procedure will set the focus
-# to the next window after this one in the traversal
-# order.
-# end of Tk::FocusChildren
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/FocusOK.al b/Master/tlpkg/tlperl/lib/auto/Tk/FocusOK.al
deleted file mode 100644
index 317fc433ca0..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/FocusOK.al
+++ /dev/null
@@ -1,36 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 664 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\FocusOK.al)"
-sub FocusOK
-{
- my $w = shift;
- my $value;
- catch { $value = $w->cget('-takefocus') };
- if (!$@ && defined($value))
- {
- return 0 if ($value eq '0');
- return $w->viewable if ($value eq '1');
- if ($value)
- {
- $value = $w->$value();
- return $value if (defined $value);
- }
- }
- if (!$w->viewable)
- {
- return 0;
- }
- catch { $value = $w->cget('-state') } ;
- if (!$@ && defined($value) && $value eq 'disabled')
- {
- return 0;
- }
- $value = grep(/Key|Focus/,$w->Tk::bind(),$w->Tk::bind(ref($w)));
- return $value;
-}
-
-# end of Tk::FocusOK
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/AddScrollbars.al b/Master/tlpkg/tlperl/lib/auto/Tk/Frame/AddScrollbars.al
deleted file mode 100644
index aa12259f675..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/AddScrollbars.al
+++ /dev/null
@@ -1,52 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 225 "blib\lib\Tk\Frame.pm (autosplit into blib\lib\auto\Tk\Frame\AddScrollbars.al)"
-sub AddScrollbars
-{
- require Tk::Scrollbar;
- my ($cw,$w) = @_;
- my $def = '';
- my ($x,$y) = ('','');
- my $s = 0;
- my $c;
- $cw->freeze_on_map;
- foreach $c ($w->configure)
- {
- my $opt = $c->[0];
- if ($opt eq '-yscrollcommand')
- {
- my $slice = Tk::Frame->new($cw,Name => 'ysbslice');
- my $ysb = Tk::Scrollbar->new($slice,-orient => 'vertical', -command => [ 'yview', $w ]);
- my $size = $ysb->cget('-width');
- my $corner = Tk::Frame->new($slice,Name=>'corner','-relief' => 'raised',
- '-width' => $size, '-height' => $size);
- $ysb->pack(-side => 'left', -fill => 'y');
- $cw->Advertise('yscrollbar' => $ysb);
- $cw->Advertise('corner' => $corner);
- $cw->Advertise('ysbslice' => $slice);
- $corner->{'before'} = $ysb->PathName;
- $slice->{'before'} = $w->PathName;
- $y = 'w';
- $s = 1;
- }
- elsif ($opt eq '-xscrollcommand')
- {
- my $xsb = Tk::Scrollbar->new($cw,-orient => 'horizontal', -command => [ 'xview', $w ]);
- $cw->Advertise('xscrollbar' => $xsb);
- $xsb->{'before'} = $w->PathName;
- $x = 's';
- $s = 1;
- }
- }
- if ($s)
- {
- $cw->Advertise('scrolled' => $w);
- $cw->ConfigSpecs('-scrollbars' => ['METHOD','scrollbars','Scrollbars',$x.$y]);
- }
-}
-
-# end of Tk::Frame::AddScrollbars
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/FindMenu.al b/Master/tlpkg/tlperl/lib/auto/Tk/Frame/FindMenu.al
deleted file mode 100644
index 66e71c29b21..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/FindMenu.al
+++ /dev/null
@@ -1,22 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 363 "blib\lib\Tk\Frame.pm (autosplit into blib\lib\auto\Tk\Frame\FindMenu.al)"
-sub FindMenu
-{
- my ($w,$char) = @_;
- my $child;
- my $match;
- foreach $child ($w->children)
- {
- next unless (ref $child);
- $match = $child->FindMenu($char);
- return $match if (defined $match);
- }
- return undef;
-}
-
-1;
-# end of Tk::Frame::FindMenu
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/Frame/autosplit.ix
deleted file mode 100644
index 6e5b939fce1..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/autosplit.ix
+++ /dev/null
@@ -1,24 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk\Frame.pm
-# (file acts as timestamp)
-package Tk::Frame;
-sub labelPack
-;
-sub labelVariable
-;
-sub label
-;
-sub queuePack
-;
-sub sbset
-;
-sub freeze_on_map
-;
-sub AddScrollbars
-;
-sub packscrollbars
-;
-sub scrollbars
-;
-sub FindMenu
-;
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/freeze_on_map.al b/Master/tlpkg/tlperl/lib/auto/Tk/Frame/freeze_on_map.al
deleted file mode 100644
index 6a8b8a4f96e..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/freeze_on_map.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 215 "blib\lib\Tk\Frame.pm (autosplit into blib\lib\auto\Tk\Frame\freeze_on_map.al)"
-sub freeze_on_map
-{
- my ($w) = @_;
- unless ($w->Tk::bind('Freeze','<Map>'))
- {
- $w->Tk::bind('Freeze','<Map>',['packPropagate' => 0])
- }
- $w->AddBindTag('Freeze');
-}
-
-# end of Tk::Frame::freeze_on_map
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/label.al b/Master/tlpkg/tlperl/lib/auto/Tk/Frame/label.al
deleted file mode 100644
index 83ec70ed803..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/label.al
+++ /dev/null
@@ -1,24 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 182 "blib\lib\Tk\Frame.pm (autosplit into blib\lib\auto\Tk\Frame\label.al)"
-sub label
-{
- my ($cw,$val) = @_;
- my $var = $cw->cget('-labelVariable');
- if (@_ > 1 && defined $val)
- {
- if (!defined $var)
- {
- $var = \$cw->{Configure}{'-label'};
- $cw->labelVariable($var);
- }
- $$var = $val;
- }
- return (defined $var) ? $$var : undef;;
-}
-
-# end of Tk::Frame::label
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/labelPack.al b/Master/tlpkg/tlperl/lib/auto/Tk/Frame/labelPack.al
deleted file mode 100644
index 0cfa8631c24..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/labelPack.al
+++ /dev/null
@@ -1,50 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 121 "blib\lib\Tk\Frame.pm (autosplit into blib\lib\auto\Tk\Frame\labelPack.al)"
-sub labelPack
-{
- my ($cw,$val) = @_;
- my $w = $cw->Subwidget('label');
- my @result = ();
- if (@_ > 1)
- {
- if (defined($w) && !defined($val))
- {
- $w->packForget;
- }
- elsif (defined($val) && !defined ($w))
- {
- require Tk::Label;
- $w = Tk::Label->new($cw,-textvariable => $cw->labelVariable);
- $cw->Advertise('label' => $w);
- $cw->ConfigDelegate('label',qw(-text -textvariable));
- }
- if (defined($val) && defined($w))
- {
- my %pack = @$val;
- unless (exists $pack{-side})
- {
- $pack{-side} = 'top' unless (exists $pack{-side});
- }
- unless (exists $pack{-fill})
- {
- $pack{-fill} = 'x' if ($pack{-side} =~ /(top|bottom)/);
- $pack{-fill} = 'y' if ($pack{-side} =~ /(left|right)/);
- }
- unless (exists($pack{'-before'}) || exists($pack{'-after'}))
- {
- my $before = ($cw->packSlaves)[0];
- $pack{'-before'} = $before if (defined $before);
- }
- $w->pack(%pack);
- }
- }
- @result = $w->packInfo if (defined $w);
- return (wantarray) ? @result : \@result;
-}
-
-# end of Tk::Frame::labelPack
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/labelVariable.al b/Master/tlpkg/tlperl/lib/auto/Tk/Frame/labelVariable.al
deleted file mode 100644
index ca60cff1288..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/labelVariable.al
+++ /dev/null
@@ -1,27 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 163 "blib\lib\Tk\Frame.pm (autosplit into blib\lib\auto\Tk\Frame\labelVariable.al)"
-sub labelVariable
-{
- my ($cw,$val) = @_;
- my $var = \$cw->{Configure}{'-labelVariable'};
- if (@_ > 1 && defined $val)
- {
- $$var = $val;
- $$val = '' unless (defined $$val);
- my $w = $cw->Subwidget('label');
- unless (defined $w)
- {
- $cw->labelPack([]);
- $w = $cw->Subwidget('label');
- }
- $w->configure(-textvariable => $val);
- }
- return $$var;
-}
-
-# end of Tk::Frame::labelVariable
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/packscrollbars.al b/Master/tlpkg/tlperl/lib/auto/Tk/Frame/packscrollbars.al
deleted file mode 100644
index 9990eb67b13..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/packscrollbars.al
+++ /dev/null
@@ -1,86 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 269 "blib\lib\Tk\Frame.pm (autosplit into blib\lib\auto\Tk\Frame\packscrollbars.al)"
-sub packscrollbars
-{
- my ($cw) = @_;
- my $opt = $cw->cget('-scrollbars');
- my $slice = $cw->Subwidget('ysbslice');
- my $xsb = $cw->Subwidget('xscrollbar');
- my $corner = $cw->Subwidget('corner');
- my $w = $cw->Subwidget('scrolled');
- my $xside = (($opt =~ /n/) ? 'top' : 'bottom');
- my $havex = 0;
- my $havey = 0;
- $opt =~ s/r//;
- $cw->{'pack_pending'} = 0;
- if (defined $slice)
- {
- my $reqy;
- my $ysb = $cw->Subwidget('yscrollbar');
- if ($opt =~ /(o)?[we]/ && (($reqy = !defined($1)) || $ysb->Needed))
- {
- my $yside = (($opt =~ /w/) ? 'left' : 'right');
- $slice->pack(-side => $yside, -fill => 'y',-before => $slice->{'before'});
- $havey = 1;
- if ($reqy)
- {
- $w->configure(-yscrollcommand => ['set', $ysb]);
- }
- else
- {
- $w->configure(-yscrollcommand => ['sbset', $cw, $ysb, \$cw->{'packysb'}]);
- }
- }
- else
- {
- $w->configure(-yscrollcommand => undef) unless $opt =~ s/[we]//;
- $slice->packForget;
- }
- $cw->{'packysb'} = $havey;
- }
- if (defined $xsb)
- {
- my $reqx;
- if ($opt =~ /(o)?[ns]/ && (($reqx = !defined($1)) || $xsb->Needed))
- {
- $xsb->pack(-side => $xside, -fill => 'x',-before => $xsb->{'before'});
- $havex = 1;
- if ($reqx)
- {
- $w->configure(-xscrollcommand => ['set', $xsb]);
- }
- else
- {
- $w->configure(-xscrollcommand => ['sbset', $cw, $xsb, \$cw->{'packxsb'}]);
- }
- }
- else
- {
- $w->configure(-xscrollcommand => undef) unless $opt =~ s/[ns]//;
- $xsb->packForget;
- }
- $cw->{'packxsb'} = $havex;
- }
- if (defined $corner)
- {
- if ($havex && $havey && defined $corner->{'before'})
- {
- my $anchor = $opt;
- $anchor =~ s/o//g;
- $corner->configure(-height => $xsb->ReqHeight);
- $corner->pack(-before => $corner->{'before'}, -side => $xside,
- -anchor => $anchor, -fill => 'x');
- }
- else
- {
- $corner->packForget;
- }
- }
-}
-
-# end of Tk::Frame::packscrollbars
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/queuePack.al b/Master/tlpkg/tlperl/lib/auto/Tk/Frame/queuePack.al
deleted file mode 100644
index 59fe3ee4de0..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/queuePack.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 198 "blib\lib\Tk\Frame.pm (autosplit into blib\lib\auto\Tk\Frame\queuePack.al)"
-sub queuePack
-{
- my ($cw) = @_;
- unless ($cw->{'pack_pending'})
- {
- $cw->{'pack_pending'} = 1;
- $cw->afterIdle([$cw,'packscrollbars']);
- }
-}
-
-# end of Tk::Frame::queuePack
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/sbset.al b/Master/tlpkg/tlperl/lib/auto/Tk/Frame/sbset.al
deleted file mode 100644
index cca4f0d642a..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/sbset.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 208 "blib\lib\Tk\Frame.pm (autosplit into blib\lib\auto\Tk\Frame\sbset.al)"
-sub sbset
-{
- my ($cw,$sb,$ref,@args) = @_;
- $sb->set(@args);
- $cw->queuePack if (@args == 2 && $sb->Needed != $$ref);
-}
-
-# end of Tk::Frame::sbset
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/scrollbars.al b/Master/tlpkg/tlperl/lib/auto/Tk/Frame/scrollbars.al
deleted file mode 100644
index 21eeb53d2b9..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Frame/scrollbars.al
+++ /dev/null
@@ -1,24 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Frame.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Frame;
-
-#line 347 "blib\lib\Tk\Frame.pm (autosplit into blib\lib\auto\Tk\Frame\scrollbars.al)"
-sub scrollbars
-{
- my ($cw,$opt) = @_;
- my $var = \$cw->{'-scrollbars'};
- if (@_ > 1)
- {
- my $old = $$var;
- if (!defined $old || $old ne $opt)
- {
- $$var = $opt;
- $cw->queuePack;
- }
- }
- return $$var;
-}
-
-# end of Tk::Frame::scrollbars
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/HList/HList.dll b/Master/tlpkg/tlperl/lib/auto/Tk/HList/HList.dll
deleted file mode 100755
index c373eada72e..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/HList/HList.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/IO/IO.dll b/Master/tlpkg/tlperl/lib/auto/Tk/IO/IO.dll
deleted file mode 100755
index cf63281c2bb..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/IO/IO.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/ImageNames.al b/Master/tlpkg/tlperl/lib/auto/Tk/ImageNames.al
deleted file mode 100644
index ff3377e970b..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/ImageNames.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 793 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\ImageNames.al)"
-sub ImageNames
-{
- image('names');
-}
-
-# end of Tk::ImageNames
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/ImageTypes.al b/Master/tlpkg/tlperl/lib/auto/Tk/ImageTypes.al
deleted file mode 100644
index 3fa576fb73d..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/ImageTypes.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 798 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\ImageTypes.al)"
-sub ImageTypes
-{
- image('types');
-}
-
-# end of Tk::ImageTypes
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/JPEG/JPEG.dll b/Master/tlpkg/tlperl/lib/auto/Tk/JPEG/JPEG.dll
deleted file mode 100755
index d35eeafc217..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/JPEG/JPEG.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/AutoScan.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/AutoScan.al
deleted file mode 100644
index 89bda0179c6..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/AutoScan.al
+++ /dev/null
@@ -1,49 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 676 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\AutoScan.al)"
-# AutoScan --
-# This procedure is invoked when the mouse leaves an entry window
-# with button 1 down. It scrolls the window up, down, left, or
-# right, depending on where the mouse left the window, and reschedules
-# itself as an "after" command so that the window continues to scroll until
-# the mouse moves back into the window or the mouse button is released.
-#
-# Arguments:
-# w - The entry window.
-# x - The x-coordinate of the mouse when it left the window.
-# y - The y-coordinate of the mouse when it left the window.
-sub AutoScan
-{
- my $w = shift;
- return if !Tk::Exists($w);
- my $x = shift;
- my $y = shift;
- if ($y >= $w->height)
- {
- $w->yview('scroll',1,'units')
- }
- elsif ($y < 0)
- {
- $w->yview('scroll',-1,'units')
- }
- elsif ($x >= $w->width)
- {
- $w->xview('scroll',2,'units')
- }
- elsif ($x < 0)
- {
- $w->xview('scroll',-2,'units')
- }
- else
- {
- return;
- }
- $w->Motion($w->index("@" . $x . ',' . $y));
- $w->RepeatId($w->after(50,'AutoScan',$w,$x,$y));
-}
-
-# end of Tk::Listbox::AutoScan
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/BeginExtend.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/BeginExtend.al
deleted file mode 100644
index afd8f0e9fda..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/BeginExtend.al
+++ /dev/null
@@ -1,34 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 620 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\BeginExtend.al)"
-# BeginExtend --
-#
-# This procedure is typically invoked on shift-button-1 presses. It
-# begins the process of extending a selection in the listbox. Its
-# exact behavior depends on the selection mode currently in effect
-# for the listbox; see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginExtend
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'extended' && $w->selectionIncludes('anchor'))
- {
- $w->Motion($el)
- }
- else
- {
- # No selection yet; simulate the begin-select operation.
- $w->BeginSelect($el);
- }
-}
-
-# end of Tk::Listbox::BeginExtend
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/BeginSelect.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/BeginSelect.al
deleted file mode 100644
index 304a0afe1e1..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/BeginSelect.al
+++ /dev/null
@@ -1,46 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 515 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\BeginSelect.al)"
-# BeginSelect --
-#
-# This procedure is typically invoked on button-1 presses. It begins
-# the process of making a selection in the listbox. Its exact behavior
-# depends on the selection mode currently in effect for the listbox;
-# see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginSelect
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'multiple')
- {
- if ($w->selectionIncludes($el))
- {
- $w->selectionClear($el)
- }
- else
- {
- $w->selectionSet($el)
- }
- }
- else
- {
- $w->selectionClear(0,'end');
- $w->selectionSet($el);
- $w->selectionAnchor($el);
- @Selection = ();
- $Prev = $el
- }
- $w->focus if ($w->cget('-takefocus'));
- $w->eventGenerate("<<ListboxSelect>>");
-}
-
-# end of Tk::Listbox::BeginSelect
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/BeginToggle.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/BeginToggle.al
deleted file mode 100644
index 6c70e35d75a..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/BeginToggle.al
+++ /dev/null
@@ -1,40 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 645 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\BeginToggle.al)"
-# BeginToggle --
-#
-# This procedure is typically invoked on control-button-1 presses. It
-# begins the process of toggling a selection in the listbox. Its
-# exact behavior depends on the selection mode currently in effect
-# for the listbox; see the Motif documentation for details.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element for the selection operation (typically the
-# one under the pointer). Must be in numerical form.
-sub BeginToggle
-{
- my $w = shift;
- my $el = shift;
- if ($w->cget('-selectmode') eq 'extended')
- {
- @Selection = $w->curselection();
- $Prev = $el;
- $w->selectionAnchor($el);
- if ($w->selectionIncludes($el))
- {
- $w->selectionClear($el)
- }
- else
- {
- $w->selectionSet($el)
- }
- $w->eventGenerate("<<ListboxSelect>>");
- }
-}
-
-# end of Tk::Listbox::BeginToggle
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/ButtonRelease_1.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/ButtonRelease_1.al
deleted file mode 100644
index ec8fa789fb9..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/ButtonRelease_1.al
+++ /dev/null
@@ -1,16 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 471 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\ButtonRelease_1.al)"
-sub ButtonRelease_1
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->CancelRepeat;
- $w->activate($Ev->xy);
-}
-
-# end of Tk::Listbox::ButtonRelease_1
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/CLEAR.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/CLEAR.al
deleted file mode 100644
index 8ed6feba4b5..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/CLEAR.al
+++ /dev/null
@@ -1,16 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 304 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\CLEAR.al)"
-# CLEAR
-# -----
-# Empty the Listbox of contents if tied to an array
-sub CLEAR {
- my $class = shift;
- ${$class->{OBJECT}}->delete(0, 'end');
-}
-
-# end of Tk::Listbox::CLEAR
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cancel.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cancel.al
deleted file mode 100644
index 7ff924756f8..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cancel.al
+++ /dev/null
@@ -1,42 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 805 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\Cancel.al)"
-# Cancel
-#
-# This procedure is invoked to cancel an extended selection in
-# progress. If there is an extended selection in progress, it
-# restores all of the items between the active one and the anchor
-# to their previous selection state.
-#
-# Arguments:
-# w - The listbox widget.
-sub Cancel
-{
- my $w = shift;
- if ($w->cget('-selectmode') ne 'extended' || !defined $Prev)
- {
- return;
- }
- my $first = $w->index('anchor');
- my $last = $Prev;
- if ($first > $last)
- {
- ($first, $last) = ($last, $first);
- }
- $w->selectionClear($first,$last);
- while ($first <= $last)
- {
- if (Tk::lsearch(\@Selection,$first) >= 0)
- {
- $w->selectionSet($first)
- }
- $first++
- }
- $w->eventGenerate("<<ListboxSelect>>");
-}
-
-# end of Tk::Listbox::Cancel
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cntrl_End.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cntrl_End.al
deleted file mode 100644
index dad5a4bc0d1..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cntrl_End.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 492 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\Cntrl_End.al)"
-sub Cntrl_End
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->activate('end');
- $w->see('end');
- $w->selectionClear(0,'end');
- $w->selectionSet('end');
- $w->eventGenerate("<<ListboxSelect>>");
-}
-
-# end of Tk::Listbox::Cntrl_End
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cntrl_Home.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cntrl_Home.al
deleted file mode 100644
index 08131896da1..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cntrl_Home.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 480 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\Cntrl_Home.al)"
-sub Cntrl_Home
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- $w->activate(0);
- $w->see(0);
- $w->selectionClear(0,'end');
- $w->selectionSet(0);
- $w->eventGenerate("<<ListboxSelect>>");
-}
-
-# end of Tk::Listbox::Cntrl_Home
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cntrl_backslash.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cntrl_backslash.al
deleted file mode 100644
index 402426261a7..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Cntrl_backslash.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 504 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\Cntrl_backslash.al)"
-sub Cntrl_backslash
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- if ($w->cget('-selectmode') ne 'browse')
- {
- $w->selectionClear(0,'end');
- $w->eventGenerate("<<ListboxSelect>>");
- }
-}
-
-# end of Tk::Listbox::Cntrl_backslash
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/DELETE.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/DELETE.al
deleted file mode 100644
index 3dd81ad40fd..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/DELETE.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 355 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\DELETE.al)"
-# DELETE
-# ------
-# Delete element at specified index
-sub DELETE {
- my ( $class, @list ) = @_;
-
- my $value = ${$class->{OBJECT}}->get(@list);
- ${$class->{OBJECT}}->delete(@list);
- return $value;
-}
-
-# end of Tk::Listbox::DELETE
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/DataExtend.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/DataExtend.al
deleted file mode 100644
index 4240300aa68..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/DataExtend.al
+++ /dev/null
@@ -1,39 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 775 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\DataExtend.al)"
-# DataExtend
-#
-# This procedure is called for key-presses such as Shift-KEndData.
-# If the selection mode isn't multiple or extend then it does nothing.
-# Otherwise it moves the active element to el and, if we're in
-# extended mode, extends the selection to that point.
-#
-# Arguments:
-# w - The listbox widget.
-# el - An integer element number.
-sub DataExtend
-{
- my $w = shift;
- my $el = shift;
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'extended')
- {
- $w->activate($el);
- $w->see($el);
- if ($w->selectionIncludes('anchor'))
- {
- $w->Motion($el)
- }
- }
- elsif ($mode eq 'multiple')
- {
- $w->activate($el);
- $w->see($el)
- }
-}
-
-# end of Tk::Listbox::DataExtend
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/EXISTS.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/EXISTS.al
deleted file mode 100644
index ae1ed1bc5e6..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/EXISTS.al
+++ /dev/null
@@ -1,16 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 366 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\EXISTS.al)"
-# EXISTS
-# ------
-# Returns true if the index exist, and undef if not
-sub EXISTS {
- my ( $class, $index ) = @_;
- return undef unless ${$class->{OBJECT}}->get($index);
-}
-
-# end of Tk::Listbox::EXISTS
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/EXTEND.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/EXTEND.al
deleted file mode 100644
index 2a483ea08c1..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/EXTEND.al
+++ /dev/null
@@ -1,16 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 312 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\EXTEND.al)"
-# EXTEND
-# ------
-# Do nothing and be happy about it
-sub EXTEND { }
-
-# PUSH
-# ----
-# Append elements onto the Listbox contents
-# end of Tk::Listbox::EXTEND
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/ExtendUpDown.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/ExtendUpDown.al
deleted file mode 100644
index 9b72250ea41..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/ExtendUpDown.al
+++ /dev/null
@@ -1,36 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 748 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\ExtendUpDown.al)"
-# ExtendUpDown --
-#
-# Does nothing unless we're in extended selection mode; in this
-# case it moves the location cursor (active element) up or down by
-# one element, and extends the selection to that point.
-#
-# Arguments:
-# w - The listbox widget.
-# amount - +1 to move down one item, -1 to move back one item.
-sub ExtendUpDown
-{
- my $w = shift;
- my $amount = shift;
- if ($w->cget('-selectmode') ne 'extended')
- {
- return;
- }
- my $active = $w->index('active');
- if (!@Selection)
- {
- $w->selectionSet($active);
- @Selection = $w->curselection;
- }
- $w->activate($active + $amount);
- $w->see('active');
- $w->Motion($w->index('active'))
-}
-
-# end of Tk::Listbox::ExtendUpDown
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/FETCH.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/FETCH.al
deleted file mode 100644
index fbbe7a3ce9a..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/FETCH.al
+++ /dev/null
@@ -1,56 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 176 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\FETCH.al)"
-# FETCH
-# -----
-# Return either the full contents or only the selected items in the
-# box depending on whether we tied it to an array or scalar respectively
-sub FETCH {
- my $class = shift;
-
- my $self = ${$class->{OBJECT}};
- my %options = %{$class->{OPTION}} if defined $class->{OPTION};;
-
- # Define the return variable
- my $result;
-
- # Check whether we are have a tied array or scalar quantity
- if ( @_ ) {
- my $i = shift;
- # The Tk:: Listbox has been tied to an array, we are returning
- # an array list of the current items in the Listbox
- $result = $self->get($i);
- } else {
- # The Tk::Listbox has been tied to a scalar, we are returning a
- # reference to an array or hash containing the currently selected items
- my ( @array, %hash );
-
- if ( defined $options{ReturnType} ) {
-
- # THREE-WAY SWITCH
- if ( $options{ReturnType} eq "index" ) {
- $result = [$self->curselection];
- } elsif ( $options{ReturnType} eq "element" ) {
- foreach my $selection ( $self->curselection ) {
- push(@array,$self->get($selection)); }
- $result = \@array;
- } elsif ( $options{ReturnType} eq "both" ) {
- foreach my $selection ( $self->curselection ) {
- %hash = ( %hash, $selection => $self->get($selection)); }
- $result = \%hash;
- }
- } else {
- # return elements (default)
- foreach my $selection ( $self->curselection ) {
- push(@array,$self->get($selection)); }
- $result = \@array;
- }
- }
- return $result;
-}
-
-# end of Tk::Listbox::FETCH
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/FETCHSIZE.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/FETCHSIZE.al
deleted file mode 100644
index 13b612a26f5..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/FETCHSIZE.al
+++ /dev/null
@@ -1,16 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 224 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\FETCHSIZE.al)"
-# FETCHSIZE
-# ---------
-# Return the number of elements in the Listbox when tied to an array
-sub FETCHSIZE {
- my $class = shift;
- return ${$class->{OBJECT}}->size();
-}
-
-# end of Tk::Listbox::FETCHSIZE
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Listbox.dll b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Listbox.dll
deleted file mode 100755
index a3a3e82874b..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Listbox.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Motion.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Motion.al
deleted file mode 100644
index c1c3cbd978b..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/Motion.al
+++ /dev/null
@@ -1,77 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 552 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\Motion.al)"
-# Motion --
-#
-# This procedure is called to process mouse motion events while
-# button 1 is down. It may move or extend the selection, depending
-# on the listbox's selection mode.
-#
-# Arguments:
-# w - The listbox widget.
-# el - The element under the pointer (must be a number).
-sub Motion
-{
- my $w = shift;
- my $el = shift;
- if (defined($Prev) && $el == $Prev)
- {
- return;
- }
- my $anchor = $w->index('anchor');
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet($el);
- $Prev = $el;
- $w->eventGenerate("<<ListboxSelect>>");
- }
- elsif ($mode eq 'extended')
- {
- my $i = $Prev;
- if (!defined $i || $i eq '')
- {
- $i = $el;
- $w->selectionSet($el);
- }
- if ($w->selectionIncludes('anchor'))
- {
- $w->selectionClear($i,$el);
- $w->selectionSet('anchor',$el)
- }
- else
- {
- $w->selectionClear($i,$el);
- $w->selectionClear('anchor',$el)
- }
- if (!@Selection)
- {
- @Selection = $w->curselection;
- }
- while ($i < $el && $i < $anchor)
- {
- if (Tk::lsearch(\@Selection,$i) >= 0)
- {
- $w->selectionSet($i)
- }
- $i++
- }
- while ($i > $el && $i > $anchor)
- {
- if (Tk::lsearch(\@Selection,$i) >= 0)
- {
- $w->selectionSet($i)
- }
- $i--
- }
- $Prev = $el;
- $w->eventGenerate("<<ListboxSelect>>");
- }
-}
-
-# end of Tk::Listbox::Motion
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/POP.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/POP.al
deleted file mode 100644
index db469652447..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/POP.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 325 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\POP.al)"
-# POP
-# ---
-# Remove last element of the array and return it
-sub POP {
- my $class = shift;
-
- my $value = ${$class->{OBJECT}}->get('end');
- ${$class->{OBJECT}}->delete('end');
- return $value;
-}
-
-# end of Tk::Listbox::POP
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/PUSH.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/PUSH.al
deleted file mode 100644
index f2168ef46d9..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/PUSH.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 320 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\PUSH.al)"
-sub PUSH {
- my ( $class, @list ) = @_;
- ${$class->{OBJECT}}->insert('end', @list);
-}
-
-# end of Tk::Listbox::PUSH
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SHIFT.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SHIFT.al
deleted file mode 100644
index 96a41f7d79c..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SHIFT.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 336 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\SHIFT.al)"
-# SHIFT
-# -----
-# Removes the first element and returns it
-sub SHIFT {
- my $class = shift;
-
- my $value = ${$class->{OBJECT}}->get(0);
- ${$class->{OBJECT}}->delete(0);
- return $value
-}
-
-# end of Tk::Listbox::SHIFT
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SPLICE.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SPLICE.al
deleted file mode 100644
index aeddea8196a..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SPLICE.al
+++ /dev/null
@@ -1,84 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 374 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\SPLICE.al)"
-# SPLICE
-# ------
-# Performs equivalent of splice on the listbox contents
-sub SPLICE {
- my $class = shift;
-
- my $self = ${$class->{OBJECT}};
-
- # check for arguments
- my @elements;
- if ( scalar(@_) == 0 ) {
- # none
- @elements = $self->get(0,'end');
- $self->delete(0,'end');
- return wantarray ? @elements : $elements[scalar(@elements)-1];;
-
- } elsif ( scalar(@_) == 1 ) {
- # $offset
- my ( $offset ) = @_;
- if ( $offset < 0 ) {
- my $start = $self->size() + $offset;
- if ( $start > 0 ) {
- @elements = $self->get($start,'end');
- $self->delete($start,'end');
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- } else {
- return undef;
- }
- } else {
- @elements = $self->get($offset,'end');
- $self->delete($offset,'end');
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- }
-
- } elsif ( scalar(@_) == 2 ) {
- # $offset and $length
- my ( $offset, $length ) = @_;
- if ( $offset < 0 ) {
- my $start = $self->size() + $offset;
- my $end = $self->size() + $offset + $length - 1;
- if ( $start > 0 ) {
- @elements = $self->get($start,$end);
- $self->delete($start,$end);
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- } else {
- return undef;
- }
- } else {
- @elements = $self->get($offset,$offset+$length-1);
- $self->delete($offset,$offset+$length-1);
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- }
-
- } else {
- # $offset, $length and @list
- my ( $offset, $length, @list ) = @_;
- if ( $offset < 0 ) {
- my $start = $self->size() + $offset;
- my $end = $self->size() + $offset + $length - 1;
- if ( $start > 0 ) {
- @elements = $self->get($start,$end);
- $self->delete($start,$end);
- $self->insert($start,@list);
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- } else {
- return undef;
- }
- } else {
- @elements = $self->get($offset,$offset+$length-1);
- $self->delete($offset,$offset+$length-1);
- $self->insert($offset,@list);
- return wantarray ? @elements : $elements[scalar(@elements)-1];
- }
- }
-}
-
-# end of Tk::Listbox::SPLICE
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/STORE.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/STORE.al
deleted file mode 100644
index 492c32ccc1e..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/STORE.al
+++ /dev/null
@@ -1,80 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 232 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\STORE.al)"
-# STORE
-# -----
-# If tied to an array we will modify the Listbox contents, while if tied
-# to a scalar we will select and clear elements.
-sub STORE {
-
- if ( scalar(@_) == 2 ) {
- # we have a tied scalar
- my ( $class, $selected ) = @_;
- my $self = ${$class->{OBJECT}};
- my %options = %{$class->{OPTION}} if defined $class->{OPTION};;
-
- # clear currently selected elements
- $self->selectionClear(0,'end');
-
- # set selected elements
- if ( defined $options{ReturnType} ) {
-
- # THREE-WAY SWITCH
- if ( $options{ReturnType} eq "index" ) {
- for ( my $i=0; $i < scalar(@$selected) ; $i++ ) {
- for ( my $j=0; $j < $self->size() ; $j++ ) {
- if( $j == $$selected[$i] ) {
- $self->selectionSet($j); last; }
- }
- }
- } elsif ( $options{ReturnType} eq "element" ) {
- for ( my $k=0; $k < scalar(@$selected) ; $k++ ) {
- for ( my $l=0; $l < $self->size() ; $l++ ) {
- if( $self->get($l) eq $$selected[$k] ) {
- $self->selectionSet($l); last; }
- }
- }
- } elsif ( $options{ReturnType} eq "both" ) {
- foreach my $key ( keys %$selected ) {
- $self->selectionSet($key)
- if $$selected{$key} eq $self->get($key);
- }
- }
- } else {
- # return elements (default)
- for ( my $k=0; $k < scalar(@$selected) ; $k++ ) {
- for ( my $l=0; $l < $self->size() ; $l++ ) {
- if( $self->get($l) eq $$selected[$k] ) {
- $self->selectionSet($l); last; }
- }
- }
- }
-
- } else {
- # we have a tied array
- my ( $class, $index, $value ) = @_;
- my $self = ${$class->{OBJECT}};
-
- # check size of current contents list
- my $sizeof = $self->size();
-
- if ( $index <= $sizeof ) {
- # Change a current listbox entry
- $self->delete($index);
- $self->insert($index, $value);
- } else {
- # Add a new value
- if ( defined $index ) {
- $self->insert($index, $value);
- } else {
- $self->insert("end", $value);
- }
- }
- }
-}
-
-# end of Tk::Listbox::STORE
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SelectAll.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SelectAll.al
deleted file mode 100644
index 50569afbe50..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SelectAll.al
+++ /dev/null
@@ -1,32 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 838 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\SelectAll.al)"
-# SelectAll
-#
-# This procedure is invoked to handle the "select all" operation.
-# For single and browse mode, it just selects the active element.
-# Otherwise it selects everything in the widget.
-#
-# Arguments:
-# w - The listbox widget.
-sub SelectAll
-{
- my $w = shift;
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'single' || $mode eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active')
- }
- else
- {
- $w->selectionSet(0,'end')
- }
- $w->eventGenerate("<<ListboxSelect>>");
-}
-
-# end of Tk::Listbox::SelectAll
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SetList.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SetList.al
deleted file mode 100644
index 25e4f596592..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/SetList.al
+++ /dev/null
@@ -1,16 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 862 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\SetList.al)"
-# Perl/Tk extensions:
-sub SetList
-{
- my $w = shift;
- $w->delete(0,'end');
- $w->insert('end',@_);
-}
-
-# end of Tk::Listbox::SetList
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/TIEARRAY.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/TIEARRAY.al
deleted file mode 100644
index 8c147e8eac8..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/TIEARRAY.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 160 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\TIEARRAY.al)"
-sub TIEARRAY {
- my ( $class, $obj, %options ) = @_;
- return bless {
- OBJECT => \$obj,
- OPTION => \%options }, $class;
-}
-
-# end of Tk::Listbox::TIEARRAY
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/TIESCALAR.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/TIESCALAR.al
deleted file mode 100644
index 9cedf047c7f..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/TIESCALAR.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 169 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\TIESCALAR.al)"
-sub TIESCALAR {
- my ( $class, $obj, %options ) = @_;
- return bless {
- OBJECT => \$obj,
- OPTION => \%options }, $class;
-}
-
-# end of Tk::Listbox::TIESCALAR
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/UNSHIFT.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/UNSHIFT.al
deleted file mode 100644
index 10d6bae86ec..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/UNSHIFT.al
+++ /dev/null
@@ -1,16 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 347 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\UNSHIFT.al)"
-# UNSHIFT
-# -------
-# Insert elements at the beginning of the Listbox
-sub UNSHIFT {
- my ( $class, @list ) = @_;
- ${$class->{OBJECT}}->insert(0, @list);
-}
-
-# end of Tk::Listbox::UNSHIFT
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/UpDown.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/UpDown.al
deleted file mode 100644
index 7ffbfebf4e1..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/UpDown.al
+++ /dev/null
@@ -1,41 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 716 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\UpDown.al)"
-# UpDown --
-#
-# Moves the location cursor (active element) up or down by one element,
-# and changes the selection if we're in browse or extended selection
-# mode.
-#
-# Arguments:
-# w - The listbox widget.
-# amount - +1 to move down one item, -1 to move back one item.
-sub UpDown
-{
- my $w = shift;
- my $amount = shift;
- $w->activate($w->index('active')+$amount);
- $w->see('active');
- my $mode = $w->cget('-selectmode');
- if ($mode eq 'browse')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active');
- $w->eventGenerate("<<ListboxSelect>>");
- }
- elsif ($mode eq 'extended')
- {
- $w->selectionClear(0,'end');
- $w->selectionSet('active');
- $w->selectionAnchor('active');
- $Prev = $w->index('active');
- @Selection = ();
- $w->eventGenerate("<<ListboxSelect>>");
- }
-}
-
-# end of Tk::Listbox::UpDown
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/autosplit.ix
deleted file mode 100644
index 0cd2e67037c..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/autosplit.ix
+++ /dev/null
@@ -1,56 +0,0 @@
-# Index created by AutoSplit for ..\blib\lib\Tk\Listbox.pm
-# (file acts as timestamp)
-package Tk::Listbox;
-sub TIEARRAY ;
-sub TIESCALAR ;
-sub FETCH ;
-sub FETCHSIZE ;
-sub STORE ;
-sub CLEAR ;
-sub EXTEND ;
-sub PUSH ;
-sub POP ;
-sub SHIFT ;
-sub UNSHIFT ;
-sub DELETE ;
-sub EXISTS ;
-sub SPLICE ;
-sub xyIndex
-;
-sub ButtonRelease_1
-;
-sub Cntrl_Home
-;
-sub Cntrl_End
-;
-sub Cntrl_backslash
-;
-sub BeginSelect
-;
-sub Motion
-;
-sub BeginExtend
-;
-sub BeginToggle
-;
-sub AutoScan
-;
-sub UpDown
-;
-sub ExtendUpDown
-;
-sub DataExtend
-;
-sub Cancel
-;
-sub SelectAll
-;
-sub SetList
-;
-sub deleteSelected
-;
-sub clipboardPaste
-;
-sub getSelected
-;
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/clipboardPaste.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/clipboardPaste.al
deleted file mode 100644
index 28f0bd731de..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/clipboardPaste.al
+++ /dev/null
@@ -1,21 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 880 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\clipboardPaste.al)"
-sub clipboardPaste
-{
- my $w = shift;
- my $index = $w->index('active') || $w->index($w->XEvent->xy);
- my $str;
- eval {local $SIG{__DIE__}; $str = $w->clipboardGet };
- return if $@;
- foreach (split("\n",$str))
- {
- $w->insert($index++,$_);
- }
-}
-
-# end of Tk::Listbox::clipboardPaste
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/deleteSelected.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/deleteSelected.al
deleted file mode 100644
index 45bdfe73221..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/deleteSelected.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 870 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\deleteSelected.al)"
-sub deleteSelected
-{
- my $w = shift;
- my $i;
- foreach $i (reverse $w->curselection)
- {
- $w->delete($i);
- }
-}
-
-# end of Tk::Listbox::deleteSelected
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/getSelected.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/getSelected.al
deleted file mode 100644
index a729a713d3e..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/getSelected.al
+++ /dev/null
@@ -1,24 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 893 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\getSelected.al)"
-sub getSelected
-{
- my ($w) = @_;
- my $i;
- my (@result) = ();
- foreach $i ($w->curselection)
- {
- push(@result,$w->get($i));
- }
- return (wantarray) ? @result : $result[0];
-}
-
-1;
-__END__
-
-
-1;
-# end of Tk::Listbox::getSelected
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/xyIndex.al b/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/xyIndex.al
deleted file mode 100644
index 5689afdb6ef..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Listbox/xyIndex.al
+++ /dev/null
@@ -1,29 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Listbox;
-
-#line 450 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\xyIndex.al)"
-# ----
-
-#
-# Bind --
-# This procedure is invoked the first time the mouse enters a listbox
-# widget or a listbox widget receives the input focus. It creates
-# all of the class bindings for listboxes.
-#
-# Arguments:
-# event - Indicates which event caused the procedure to be invoked
-# (Enter or FocusIn). It is used so that we can carry out
-# the functions of that event in addition to setting up
-# bindings.
-
-sub xyIndex
-{
- my $w = shift;
- my $Ev = $w->XEvent;
- return $w->index($Ev->xy);
-}
-
-# end of Tk::Listbox::xyIndex
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Menubutton/Menubutton.dll b/Master/tlpkg/tlperl/lib/auto/Tk/Menubutton/Menubutton.dll
deleted file mode 100755
index a08539c42af..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Menubutton/Menubutton.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/NBFrame/NBFrame.dll b/Master/tlpkg/tlperl/lib/auto/Tk/NBFrame/NBFrame.dll
deleted file mode 100755
index 5996c4a26c4..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/NBFrame/NBFrame.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/PNG/PNG.dll b/Master/tlpkg/tlperl/lib/auto/Tk/PNG/PNG.dll
deleted file mode 100755
index 68cc3ea4ceb..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/PNG/PNG.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Pixmap/Pixmap.dll b/Master/tlpkg/tlperl/lib/auto/Tk/Pixmap/Pixmap.dll
deleted file mode 100755
index f36a7f6fa89..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Pixmap/Pixmap.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Receive.al b/Master/tlpkg/tlperl/lib/auto/Tk/Receive.al
deleted file mode 100644
index 0e3bd551465..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Receive.al
+++ /dev/null
@@ -1,23 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 764 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\Receive.al)"
-# If we have sub Clipboard in Tk then use base qw(Tk::Clipboard ....)
-# calls it when it does its eval "require $base"
-#sub Clipboard
-#{my $w = shift;
-# my $cmd = shift;
-# croak "Use clipboard\u$cmd()";
-#}
-
-sub Receive
-{
- my $w = shift;
- warn 'Receive(' . join(',',@_) .')';
- die 'Tk rejects send(' . join(',',@_) .")\n";
-}
-
-# end of Tk::Receive
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/RepeatId.al b/Master/tlpkg/tlperl/lib/auto/Tk/RepeatId.al
deleted file mode 100644
index f53a5313bce..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/RepeatId.al
+++ /dev/null
@@ -1,16 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 516 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\RepeatId.al)"
-sub RepeatId
-{
- my ($w,$id) = @_;
- $w = $w->MainWindow;
- $w->CancelRepeat;
- $w->{_afterId_} = $id;
-}
-
-# end of Tk::RepeatId
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Activate.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Activate.al
deleted file mode 100644
index 500358c8e0e..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Activate.al
+++ /dev/null
@@ -1,33 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 86 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\Activate.al)"
-# Activate --
-# This procedure is invoked to check a given x-y position in the
-# scale and activate the slider if the x-y position falls within
-# the slider.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates.
-sub Activate
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- return if ($w->cget('-state') eq 'disabled');
- my $ident = $w->identify($x,$y);
- if (defined($ident) && $ident eq 'slider')
- {
- $w->configure(-state => 'active')
- }
- else
- {
- $w->configure(-state => 'normal')
- }
-}
-
-# end of Tk::Scale::Activate
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/ButtonDown.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scale/ButtonDown.al
deleted file mode 100644
index 61ed6f32c11..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/ButtonDown.al
+++ /dev/null
@@ -1,40 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 138 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\ButtonDown.al)"
-# ButtonDown --
-# This procedure is invoked when a button is pressed in a scale. It
-# takes different actions depending on where the button was pressed.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates of button press.
-sub ButtonDown
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- $Tk::dragging = 0;
- $el = $w->identify($x,$y);
- return unless ($el);
- if ($el eq 'trough1')
- {
- $w->Increment('up','little','initial')
- }
- elsif ($el eq 'trough2')
- {
- $w->Increment('down','little','initial')
- }
- elsif ($el eq 'slider')
- {
- $Tk::dragging = 1;
- my @coords = $w->coords();
- $Tk::deltaX = $x-$coords[0];
- $Tk::deltaY = $y-$coords[1];
- }
-}
-
-# end of Tk::Scale::ButtonDown
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/ButtonUp.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scale/ButtonUp.al
deleted file mode 100644
index d5a22a77a46..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/ButtonUp.al
+++ /dev/null
@@ -1,16 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 129 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\ButtonUp.al)"
-sub ButtonUp
-{
- my ($w,$x,$y) = @_;
- $w->CancelRepeat();
- $w->EndDrag();
- $w->Activate($x,$y)
-}
-
-# end of Tk::Scale::ButtonUp
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/ControlPress.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scale/ControlPress.al
deleted file mode 100644
index 50d7ad8b447..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/ControlPress.al
+++ /dev/null
@@ -1,31 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 255 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\ControlPress.al)"
-# ControlPress --
-# This procedure handles button presses that are made with the Control
-# key down. Depending on the mouse position, it adjusts the scale
-# value to one end of the range or the other.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates where the button was pressed.
-sub ControlPress
-{
- my ($w,$x,$y) = @_;
- my $el = $w->identify($x,$y);
- return unless ($el);
- if ($el eq 'trough1')
- {
- $w->set($w->cget('-from'))
- }
- elsif ($el eq 'trough2')
- {
- $w->set($w->cget('-to'))
- }
-}
-
-1;
-# end of Tk::Scale::ControlPress
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Drag.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Drag.al
deleted file mode 100644
index 0bc63b12879..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Drag.al
+++ /dev/null
@@ -1,29 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 169 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\Drag.al)"
-# Drag --
-# This procedure is called when the mouse is dragged with
-# mouse button 1 down. If the drag started inside the slider
-# (i.e. the scale is active) then the scale's value is adjusted
-# to reflect the mouse's position.
-#
-# Arguments:
-# w - The scale widget.
-# x, y - Mouse coordinates.
-sub Drag
-{
- my $w = shift;
- my $x = shift;
- my $y = shift;
- if (!$Tk::dragging)
- {
- return;
- }
- $w->set($w->get($x-$Tk::deltaX,$y-$Tk::deltaY))
-}
-
-# end of Tk::Scale::Drag
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/EndDrag.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scale/EndDrag.al
deleted file mode 100644
index 86037b86d92..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/EndDrag.al
+++ /dev/null
@@ -1,23 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 189 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\EndDrag.al)"
-# EndDrag --
-# This procedure is called to end an interactive drag of the
-# slider. It just marks the drag as over.
-# Arguments:
-# w - The scale widget.
-sub EndDrag
-{
- my $w = shift;
- if (!$Tk::dragging)
- {
- return;
- }
- $Tk::dragging = 0;
-}
-
-# end of Tk::Scale::EndDrag
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Enter.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Enter.al
deleted file mode 100644
index 1326a5ed9a0..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Enter.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 118 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\Enter.al)"
-sub Enter
-{
- my ($w,$x,$y) = @_;
- if ($Tk::strictMotif)
- {
- $w->{'activeBg'} = $w->cget('-activebackground');
- $w->configure('-activebackground',$w->cget('-background'));
- }
- $w->Activate($x,$y);
-}
-
-# end of Tk::Scale::Enter
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Increment.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Increment.al
deleted file mode 100644
index 76432eeaf40..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Increment.al
+++ /dev/null
@@ -1,61 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 203 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\Increment.al)"
-# Increment --
-# This procedure is invoked to increment the value of a scale and
-# to set up auto-repeating of the action if that is desired. The
-# way the value is incremented depends on the "dir" and "big"
-# arguments.
-#
-# Arguments:
-# w - The scale widget.
-# dir - "up" means move value towards -from, "down" means
-# move towards -to.
-# big - Size of increments: "big" or "little".
-# repeat - Whether and how to auto-repeat the action: "noRepeat"
-# means don't auto-repeat, "initial" means this is the
-# first action in an auto-repeat sequence, and "again"
-# means this is the second repetition or later.
-sub Increment
-{
- my $w = shift;
- my $dir = shift;
- my $big = shift;
- my $repeat = shift;
- my $inc;
- if ($big eq 'big')
- {
- $inc = $w->cget('-bigincrement');
- if ($inc == 0)
- {
- $inc = abs(($w->cget('-to')-$w->cget('-from')))/10.0
- }
- if ($inc < $w->cget('-resolution'))
- {
- $inc = $w->cget('-resolution')
- }
- }
- else
- {
- $inc = $w->cget('-resolution')
- }
- if (($w->cget('-from') > $w->cget('-to')) ^ ($dir eq 'up'))
- {
- $inc = -$inc
- }
- $w->set($w->get()+$inc);
- if ($repeat eq 'again')
- {
- $w->RepeatId($w->after($w->cget('-repeatinterval'),'Increment',$w,$dir,$big,'again'));
- }
- elsif ($repeat eq 'initial')
- {
- $w->RepeatId($w->after($w->cget('-repeatdelay'),'Increment',$w,$dir,$big,'again'));
- }
-}
-
-# end of Tk::Scale::Increment
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Leave.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Leave.al
deleted file mode 100644
index eb6f7b69f89..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Leave.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scale.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scale;
-
-#line 111 "..\blib\lib\Tk\Scale.pm (autosplit into ..\blib\lib\auto\Tk\Scale\Leave.al)"
-sub Leave
-{
- my ($w) = @_;
- $w->configure('-activebackground',$w->{'activeBg'}) if ($Tk::strictMotif);
- $w->configure('-state','normal') if ($w->cget('-state') eq 'active');
-}
-
-# end of Tk::Scale::Leave
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Scale.dll b/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Scale.dll
deleted file mode 100755
index 82c35ad75b8..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/Scale.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/Scale/autosplit.ix
deleted file mode 100644
index a5c5d2292f2..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scale/autosplit.ix
+++ /dev/null
@@ -1,22 +0,0 @@
-# Index created by AutoSplit for ..\blib\lib\Tk\Scale.pm
-# (file acts as timestamp)
-package Tk::Scale;
-sub Activate
-;
-sub Leave
-;
-sub Enter
-;
-sub ButtonUp
-;
-sub ButtonDown
-;
-sub Drag
-;
-sub EndDrag
-;
-sub Increment
-;
-sub ControlPress
-;
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonDown.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonDown.al
deleted file mode 100644
index d80e2217abc..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonDown.al
+++ /dev/null
@@ -1,55 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 116 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ButtonDown.al)"
-# tkScrollButtonDown --
-# This procedure is invoked when a button is pressed in a scrollbar.
-# It changes the way the scrollbar is displayed and takes actions
-# depending on where the mouse is.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - Mouse coordinates.
-
-sub ButtonDown
-{my $w = shift;
- my $e = $w->XEvent;
- my $element = $w->identify($e->x,$e->y);
- $w->configure('-activerelief' => 'sunken');
- if ($e->b == 1 and
- (defined($element) && $element eq 'slider'))
- {
- $w->StartDrag($e->x,$e->y);
- }
- elsif ($e->b == 2 and
- (defined($element) && $element =~ /^(trough[12]|slider)$/o))
- {
- my $pos = $w->fraction($e->x, $e->y);
- my($head, $tail) = $w->get;
- my $len = $tail - $head;
-
- $head = $pos - $len/2;
- $tail = $pos + $len/2;
- if ($head < 0) {
- $head = 0;
- $tail = $len;
- }
- elsif ($tail > 1) {
- $head = 1 - $len;
- $tail = 1;
- }
- $w->ScrlToPos($head);
- $w->set($head, $tail);
-
- $w->StartDrag($e->x,$e->y);
- }
- else
- {
- $w->Select($element,'initial');
- }
-}
-
-# end of Tk::Scrollbar::ButtonDown
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonUp.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonUp.al
deleted file mode 100644
index 68857548755..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonUp.al
+++ /dev/null
@@ -1,26 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 163 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ButtonUp.al)"
-# tkScrollButtonUp --
-# This procedure is invoked when a button is released in a scrollbar.
-# It cancels scans and auto-repeats that were in progress, and restores
-# the way the active element is displayed.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - Mouse coordinates.
-
-sub ButtonUp
-{my $w = shift;
- my $e = $w->XEvent;
- $w->CancelRepeat;
- $w->configure('-activerelief' => 'raised');
- $w->EndDrag($e->x,$e->y);
- $w->activate($w->identify($e->x,$e->y));
-}
-
-# end of Tk::Scrollbar::ButtonUp
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Drag.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Drag.al
deleted file mode 100644
index 988f9d4a3ef..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Drag.al
+++ /dev/null
@@ -1,43 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 262 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Drag.al)"
-# tkScrollDrag --
-# This procedure is called for each mouse motion even when the slider
-# is being dragged. It notifies the associated widget if we're not
-# jump scrolling, and it just updates the scrollbar if we are jump
-# scrolling.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - The current mouse position.
-
-sub Drag
-{
- my($w,$x,$y) = @_;
- return if !defined $initPos;
- my $delta = $w->delta($x-$pressX, $y-$pressY);
- if ($w->cget('-jump'))
- {
- if (@initValues == 2)
- {
- $w->set($initValues[0]+$delta, $initValues[1]+$delta);
- }
- else
- {
- $delta = sprintf "%d", $delta * $initValues[0]; # round()
- $initValues[2] += $delta;
- $initValues[3] += $delta;
- $w->set(@initValues[2,3]);
- }
- }
- else
- {
- $w->ScrlToPos($initPos+$delta);
- }
-}
-
-# end of Tk::Scrollbar::Drag
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/EndDrag.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/EndDrag.al
deleted file mode 100644
index 8c401b6fc31..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/EndDrag.al
+++ /dev/null
@@ -1,28 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 297 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\EndDrag.al)"
-# tkScrollEndDrag --
-# This procedure is called to end an interactive drag of the slider.
-# It scrolls the window if we're in jump mode, otherwise it does nothing.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - The mouse position at the end of the drag operation.
-
-sub EndDrag
-{
- my($w,$x,$y) = @_;
- return if (!defined $initPos);
- if ($w->cget('-jump'))
- {
- my $delta = $w->delta($x-$pressX, $y-$pressY);
- $w->ScrlToPos($initPos+$delta);
- }
- undef $initPos;
-}
-
-# end of Tk::Scrollbar::EndDrag
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Enter.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Enter.al
deleted file mode 100644
index 9584a7fa34c..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Enter.al
+++ /dev/null
@@ -1,21 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 86 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Enter.al)"
-sub Enter
-{
- my $w = shift;
- my $e = $w->XEvent;
- if ($Tk::strictMotif)
- {
- my $bg = $w->cget('-background');
- $activeBg = $w->cget('-activebackground');
- $w->configure('-activebackground' => $bg);
- }
- $w->activate($w->identify($e->x,$e->y));
-}
-
-# end of Tk::Scrollbar::Enter
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Leave.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Leave.al
deleted file mode 100644
index a6c5e89d91e..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Leave.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 99 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Leave.al)"
-sub Leave
-{
- my $w = shift;
- if ($Tk::strictMotif)
- {
- $w->configure('-activebackground' => $activeBg) if (defined $activeBg) ;
- }
- $w->activate('');
-}
-
-# end of Tk::Scrollbar::Leave
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Motion.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Motion.al
deleted file mode 100644
index 46aac656c70..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Motion.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 109 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Motion.al)"
-sub Motion
-{
- my $w = shift;
- my $e = $w->XEvent;
- $w->activate($w->identify($e->x,$e->y));
-}
-
-# end of Tk::Scrollbar::Motion
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByPages.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByPages.al
deleted file mode 100644
index 9d4018e9128..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByPages.al
+++ /dev/null
@@ -1,38 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 346 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ScrlByPages.al)"
-# tkScrlByPages --
-# This procedure tells the scrollbar's associated widget to scroll up
-# or down by a given number of screenfuls. It notifies the associated
-# widget in different ways for old and new command syntaxes.
-#
-# Arguments:
-# w - The scrollbar widget.
-# orient - Which kinds of scrollbars this applies to: "h" for
-# horizontal, "v" for vertical, "hv" for both.
-# amount - How many screens to scroll: typically 1 or -1.
-
-sub ScrlByPages
-{
- my $w = shift;
- my $orient = shift;
- my $amount = shift;
- my $cmd = $w->cget('-command');
- return unless (defined $cmd);
- return if (index($orient,substr($w->cget('-orient'),0,1)) < 0);
- my @info = $w->get;
- if (@info == 2)
- {
- $cmd->Call('scroll',$amount,'pages');
- }
- else
- {
- $cmd->Call($info[2]+$amount*($info[1]-1));
- }
-}
-
-# end of Tk::Scrollbar::ScrlByPages
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByUnits.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByUnits.al
deleted file mode 100644
index a364b3e52ce..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByUnits.al
+++ /dev/null
@@ -1,37 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 317 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ScrlByUnits.al)"
-# tkScrlByUnits --
-# This procedure tells the scrollbar's associated widget to scroll up
-# or down by a given number of units. It notifies the associated widget
-# in different ways for old and new command syntaxes.
-#
-# Arguments:
-# w - The scrollbar widget.
-# orient - Which kinds of scrollbars this applies to: "h" for
-# horizontal, "v" for vertical, "hv" for both.
-# amount - How many units to scroll: typically 1 or -1.
-
-sub ScrlByUnits
-{my $w = shift;
- my $orient = shift;
- my $amount = shift;
- my $cmd = $w->cget('-command');
- return unless (defined $cmd);
- return if (index($orient,substr($w->cget('-orient'),0,1)) < 0);
- my @info = $w->get;
- if (@info == 2)
- {
- $cmd->Call('scroll',$amount,'units');
- }
- else
- {
- $cmd->Call($info[2]+$amount);
- }
-}
-
-# end of Tk::Scrollbar::ScrlByUnits
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlToPos.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlToPos.al
deleted file mode 100644
index e277237953e..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlToPos.al
+++ /dev/null
@@ -1,35 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 376 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ScrlToPos.al)"
-# tkScrlToPos --
-# This procedure tells the scrollbar's associated widget to scroll to
-# a particular location, given by a fraction between 0 and 1. It notifies
-# the associated widget in different ways for old and new command syntaxes.
-#
-# Arguments:
-# w - The scrollbar widget.
-# pos - A fraction between 0 and 1 indicating a desired position
-# in the document.
-
-sub ScrlToPos
-{
- my $w = shift;
- my $pos = shift;
- my $cmd = $w->cget('-command');
- return unless (defined $cmd);
- my @info = $w->get;
- if (@info == 2)
- {
- $cmd->Call('moveto',$pos);
- }
- else
- {
- $cmd->Call(int($info[0]*$pos));
- }
-}
-
-# end of Tk::Scrollbar::ScrlToPos
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlTopBottom.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlTopBottom.al
deleted file mode 100644
index 7a00efe616f..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlTopBottom.al
+++ /dev/null
@@ -1,32 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 403 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ScrlTopBottom.al)"
-# tkScrlTopBottom
-# Scroll to the top or bottom of the document, depending on the mouse
-# position.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - Mouse coordinates within the widget.
-
-sub ScrlTopBottom
-{
- my $w = shift;
- my $e = $w->XEvent;
- my $element = $w->identify($e->x,$e->y);
- return unless ($element);
- if ($element =~ /1$/)
- {
- $w->ScrlToPos(0);
- }
- elsif ($element =~ /2$/)
- {
- $w->ScrlToPos(1);
- }
-}
-
-1;
-# end of Tk::Scrollbar::ScrlTopBottom
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Scrollbar.dll b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Scrollbar.dll
deleted file mode 100755
index 61034d4d88b..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Scrollbar.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Select.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Select.al
deleted file mode 100644
index 0da50da443b..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Select.al
+++ /dev/null
@@ -1,59 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 181 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Select.al)"
-# tkScrollSelect --
-# This procedure is invoked when button 1 is pressed over the scrollbar.
-# It invokes one of several scrolling actions depending on where in
-# the scrollbar the button was pressed.
-#
-# Arguments:
-# w - The scrollbar widget.
-# element - The element of the scrollbar that was selected, such
-# as "arrow1" or "trough2". Shouldn't be "slider".
-# repeat - Whether and how to auto-repeat the action: "noRepeat"
-# means don't auto-repeat, "initial" means this is the
-# first action in an auto-repeat sequence, and "again"
-# means this is the second repetition or later.
-
-sub Select
-{
- my $w = shift;
- my $element = shift;
- my $repeat = shift;
- return unless defined ($element);
- if ($element eq 'arrow1')
- {
- $w->ScrlByUnits('hv',-1);
- }
- elsif ($element eq 'trough1')
- {
- $w->ScrlByPages('hv',-1);
- }
- elsif ($element eq 'trough2')
- {
- $w->ScrlByPages('hv', 1);
- }
- elsif ($element eq 'arrow2')
- {
- $w->ScrlByUnits('hv', 1);
- }
- else
- {
- return;
- }
-
- if ($repeat eq 'again')
- {
- $w->RepeatId($w->after($w->cget('-repeatinterval'),['Select',$w,$element,'again']));
- }
- elsif ($repeat eq 'initial')
- {
- $w->RepeatId($w->after($w->cget('-repeatdelay'),['Select',$w,$element,'again']));
- }
-}
-
-# end of Tk::Scrollbar::Select
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/StartDrag.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/StartDrag.al
deleted file mode 100644
index 32edbfdef24..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/StartDrag.al
+++ /dev/null
@@ -1,38 +0,0 @@
-# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Scrollbar;
-
-#line 232 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\StartDrag.al)"
-# tkScrollStartDrag --
-# This procedure is called to initiate a drag of the slider. It just
-# remembers the starting position of the slider.
-#
-# Arguments:
-# w - The scrollbar widget.
-# x, y - The mouse position at the start of the drag operation.
-
-sub StartDrag
-{
- my($w,$x,$y) = @_;
- return unless (defined ($w->cget('-command')));
- $pressX = $x;
- $pressY = $y;
- @initValues = $w->get;
- my $iv0 = $initValues[0];
- if (@initValues == 2)
- {
- $initPos = $iv0;
- }
- elsif ($iv0 == 0)
- {
- $initPos = 0;
- }
- else
- {
- $initPos = $initValues[2]/$initValues[0];
- }
-}
-
-# end of Tk::Scrollbar::StartDrag
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/autosplit.ix
deleted file mode 100644
index 293d1322dd4..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/autosplit.ix
+++ /dev/null
@@ -1,30 +0,0 @@
-# Index created by AutoSplit for ..\blib\lib\Tk\Scrollbar.pm
-# (file acts as timestamp)
-package Tk::Scrollbar;
-sub Enter
-;
-sub Leave
-;
-sub Motion
-;
-sub ButtonDown
-;
-sub ButtonUp
-;
-sub Select
-;
-sub StartDrag
-;
-sub Drag
-;
-sub EndDrag
-;
-sub ScrlByUnits
-;
-sub ScrlByPages
-;
-sub ScrlToPos
-;
-sub ScrlTopBottom
-;
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Selection.al b/Master/tlpkg/tlperl/lib/auto/Tk/Selection.al
deleted file mode 100644
index 693692bdded..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Selection.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 754 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\Selection.al)"
-# These wrappers don't use method syntax so need to live
-# in same package as raw Tk routines are newXS'ed into.
-
-sub Selection
-{my $widget = shift;
- my $cmd = shift;
- croak 'Use SelectionOwn/SelectionOwner' if ($cmd eq 'own');
- croak "Use Selection\u$cmd()";
-}
-
-# end of Tk::Selection
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/TList/TList.dll b/Master/tlpkg/tlperl/lib/auto/Tk/TList/TList.dll
deleted file mode 100755
index 3609f61e111..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/TList/TList.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Table/Create.al b/Master/tlpkg/tlperl/lib/auto/Tk/Table/Create.al
deleted file mode 100644
index 5194f7be680..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Table/Create.al
+++ /dev/null
@@ -1,17 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Table.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Table;
-
-#line 534 "blib\lib\Tk\Table.pm (autosplit into blib\lib\auto\Tk\Table\Create.al)"
-sub Create
-{
- my $t = shift;
- my $r = shift;
- my $c = shift;
- my $kind = shift;
- $t->put($r,$c,$t->$kind(@_));
-}
-
-# end of Tk::Table::Create
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Table/Posn.al b/Master/tlpkg/tlperl/lib/auto/Tk/Table/Posn.al
deleted file mode 100644
index 8646adcb9fb..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Table/Posn.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Table.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Table;
-
-#line 553 "blib\lib\Tk\Table.pm (autosplit into blib\lib\auto\Tk\Table\Posn.al)"
-sub Posn
-{
- my ($t,$s) = @_;
- my $info = $t->{Slave}{$s->PathName};
- return (wantarray) ? @$info : $info;
-}
-
-# end of Tk::Table::Posn
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Table/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/Table/autosplit.ix
deleted file mode 100644
index 1616ae28e83..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Table/autosplit.ix
+++ /dev/null
@@ -1,14 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk\Table.pm
-# (file acts as timestamp)
-package Tk::Table;
-sub Create
-;
-sub totalColumns
-;
-sub totalRows
-;
-sub Posn
-;
-sub see
-;
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Table/see.al b/Master/tlpkg/tlperl/lib/auto/Tk/Table/see.al
deleted file mode 100644
index c00ae9e9597..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Table/see.al
+++ /dev/null
@@ -1,46 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Table.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Table;
-
-#line 560 "blib\lib\Tk\Table.pm (autosplit into blib\lib\auto\Tk\Table\see.al)"
-sub see
-{
- my $t = shift;
- my ($row,$col) = (@_ == 2) ? @_ : @{$t->{Slave}{$_[0]->PathName}};
- my $see = 1;
- if (($row -= $t->cget('-fixedrows')) >= 0)
- {
- if ($row < $t->{Top})
- {
- $t->{Top} = $row;
- $t->QueueLayout(_ViewChange);
- $see = 0;
- }
- elsif ($row >= $t->{Bottom})
- {
- $t->{Top} += ($row - $t->{Bottom}+1);
- $t->QueueLayout(_ViewChange);
- $see = 0;
- }
- }
- if (($col -= $t->cget('-fixedcolumns')) >= 0)
- {
- if ($col < $t->{Left})
- {
- $t->{Left} = $col;
- $t->QueueLayout(_ViewChange);
- $see = 0;
- }
- elsif ($col >= $t->{Right})
- {
- $t->{Left} += ($col - $t->{Right}+1);
- $t->QueueLayout(_ViewChange);
- $see = 0;
- }
- }
- return $see;
-}
-
-1;
-# end of Tk::Table::see
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Table/totalColumns.al b/Master/tlpkg/tlperl/lib/auto/Tk/Table/totalColumns.al
deleted file mode 100644
index a93512dc367..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Table/totalColumns.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Table.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Table;
-
-#line 543 "blib\lib\Tk\Table.pm (autosplit into blib\lib\auto\Tk\Table\totalColumns.al)"
-sub totalColumns
-{
- scalar @{shift->{'Width'}};
-}
-
-# end of Tk::Table::totalColumns
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Table/totalRows.al b/Master/tlpkg/tlperl/lib/auto/Tk/Table/totalRows.al
deleted file mode 100644
index 04db7b55ac5..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Table/totalRows.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Table.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Table;
-
-#line 548 "blib\lib\Tk\Table.pm (autosplit into blib\lib\auto\Tk\Table\totalRows.al)"
-sub totalRows
-{
- scalar @{shift->{'Height'}};
-}
-
-# end of Tk::Table::totalRows
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Text/Text.dll b/Master/tlpkg/tlperl/lib/auto/Tk/Text/Text.dll
deleted file mode 100755
index 0bca5e9faec..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Text/Text.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Text/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/Text/autosplit.ix
deleted file mode 100644
index 48a5455c34a..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Text/autosplit.ix
+++ /dev/null
@@ -1,3 +0,0 @@
-# Index created by AutoSplit for ..\blib\lib\Tk\Text.pm
-# (file acts as timestamp)
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/TextEdit/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/TextEdit/autosplit.ix
deleted file mode 100644
index d7c2cbff9ec..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/TextEdit/autosplit.ix
+++ /dev/null
@@ -1,3 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk\TextEdit.pm
-# (file acts as timestamp)
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/TextUndo/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/TextUndo/autosplit.ix
deleted file mode 100644
index 3aef3c081a4..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/TextUndo/autosplit.ix
+++ /dev/null
@@ -1,3 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk\TextUndo.pm
-# (file acts as timestamp)
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/TixGrid/TixGrid.dll b/Master/tlpkg/tlperl/lib/auto/Tk/TixGrid/TixGrid.dll
deleted file mode 100755
index 8c48ee289de..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/TixGrid/TixGrid.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Tk.dll b/Master/tlpkg/tlperl/lib/auto/Tk/Tk.dll
deleted file mode 100755
index a4b384804ca..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Tk.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_BindIn.al b/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_BindIn.al
deleted file mode 100644
index 8a0a0a6c911..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_BindIn.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Toplevel.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Toplevel;
-
-#line 128 "blib\lib\Tk\Toplevel.pm (autosplit into blib\lib\auto\Tk\Toplevel\FG_BindIn.al)"
-# tkFocusGroup_BindIn --
-#
-# Add a widget into the "FocusIn" list of the focus group. The $cmd will be
-# called when the widget is focused on by the user.
-#
-sub FG_BindIn {
- my($t, $w, $cmd) = @_;
- $t->Error("focus group \"$t\" doesn't exist") unless (exists $t->{'_fg'});
- $t->{'_FocusIn'}{$w} = Tk::Callback->new($cmd);
-}
-
-# end of Tk::Toplevel::FG_BindIn
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_BindOut.al b/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_BindOut.al
deleted file mode 100644
index d7fb14d40dc..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_BindOut.al
+++ /dev/null
@@ -1,20 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Toplevel.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Toplevel;
-
-#line 139 "blib\lib\Tk\Toplevel.pm (autosplit into blib\lib\auto\Tk\Toplevel\FG_BindOut.al)"
-# tkFocusGroup_BindOut --
-#
-# Add a widget into the "FocusOut" list of the focus group. The
-# $cmd will be called when the widget loses the focus (User
-# types Tab or click on another widget).
-#
-sub FG_BindOut {
- my($t, $w, $cmd) = @_;
- $t->Error("focus group \"$t\" doesn't exist") unless (exists $t->{'_fg'});
- $t->{'_FocusOut'}{$w} = Tk::Callback->new($cmd);
-}
-
-# end of Tk::Toplevel::FG_BindOut
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_Create.al b/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_Create.al
deleted file mode 100644
index 34bb933cfa0..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_Create.al
+++ /dev/null
@@ -1,56 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Toplevel.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Toplevel;
-
-#line 80 "blib\lib\Tk\Toplevel.pm (autosplit into blib\lib\auto\Tk\Toplevel\FG_Create.al)"
-#----------------------------------------------------------------------
-#
-# Focus Group
-#
-# Focus groups are used to handle the user's focusing actions inside a
-# toplevel.
-#
-# One example of using focus groups is: when the user focuses on an
-# entry, the text in the entry is highlighted and the cursor is put to
-# the end of the text. When the user changes focus to another widget,
-# the text in the previously focused entry is validated.
-#
-
-#----------------------------------------------------------------------
-# tkFocusGroup_Create --
-#
-# Create a focus group. All the widgets in a focus group must be
-# within the same focus toplevel. Each toplevel can have only
-# one focus group, which is identified by the name of the
-# toplevel widget.
-#
-sub FG_Create {
- my $t = shift;
- unless (exists $t->{'_fg'}) {
- $t->{'_fg'} = 1;
- $t->bind('<FocusIn>', sub {
- my $w = shift;
- my $Ev = $w->XEvent;
- $t->FG_In($w, $Ev->d);
- }
- );
- $t->bind('<FocusOut>', sub {
- my $w = shift;
- my $Ev = $w->XEvent;
- $t->FG_Out($w, $Ev->d);
- }
- );
- $t->bind('<Destroy>', sub {
- my $w = shift;
- my $Ev = $w->XEvent;
- $t->FG_Destroy($w);
- }
- );
- # <Destroy> is not sufficient to break loops if never mapped.
- $t->OnDestroy([$t,'FG_Destroy']);
- }
-}
-
-# end of Tk::Toplevel::FG_Create
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_Destroy.al b/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_Destroy.al
deleted file mode 100644
index e0af457799f..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_Destroy.al
+++ /dev/null
@@ -1,29 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Toplevel.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Toplevel;
-
-#line 151 "blib\lib\Tk\Toplevel.pm (autosplit into blib\lib\auto\Tk\Toplevel\FG_Destroy.al)"
-# tkFocusGroup_Destroy --
-#
-# Cleans up when members of the focus group is deleted, or when the
-# toplevel itself gets deleted.
-#
-sub FG_Destroy {
- my($t, $w) = @_;
- if (!defined($w) || $t == $w) {
- delete $t->{'_fg'};
- delete $t->{'_focus'};
- delete $t->{'_FocusOut'};
- delete $t->{'_FocusIn'};
- } else {
- if (exists $t->{'_focus'}) {
- delete $t->{'_focus'} if ($t->{'_focus'} == $w);
- }
- delete $t->{'_FocusIn'}{$w};
- delete $t->{'_FocusOut'}{$w};
- }
-}
-
-# end of Tk::Toplevel::FG_Destroy
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_In.al b/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_In.al
deleted file mode 100644
index 74cf18b9b9d..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_In.al
+++ /dev/null
@@ -1,24 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Toplevel.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Toplevel;
-
-#line 172 "blib\lib\Tk\Toplevel.pm (autosplit into blib\lib\auto\Tk\Toplevel\FG_In.al)"
-# tkFocusGroup_In --
-#
-# Handles the <FocusIn> event. Calls the FocusIn command for the newly
-# focused widget in the focus group.
-#
-sub FG_In {
- my($t, $w, $detail) = @_;
- if (defined $t->{'_focus'} and $t->{'_focus'} eq $w) {
- # This is already in focus
- return;
- } else {
- $t->{'_focus'} = $w;
- $t->{'_FocusIn'}{$w}->Call if exists $t->{'_FocusIn'}{$w};
- }
-}
-
-# end of Tk::Toplevel::FG_In
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_Out.al b/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_Out.al
deleted file mode 100644
index 9dfaffe9d2e..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/FG_Out.al
+++ /dev/null
@@ -1,32 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Toplevel.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Toplevel;
-
-#line 188 "blib\lib\Tk\Toplevel.pm (autosplit into blib\lib\auto\Tk\Toplevel\FG_Out.al)"
-# tkFocusGroup_Out --
-#
-# Handles the <FocusOut> event. Checks if this is really a lose
-# focus event, not one generated by the mouse moving out of the
-# toplevel window. Calls the FocusOut command for the widget
-# who loses its focus.
-#
-sub FG_Out {
- my($t, $w, $detail) = @_;
- if ($detail ne 'NotifyNonlinear' and $detail ne 'NotifyNonlinearVirtual') {
- # This is caused by mouse moving out of the window
- return;
- }
- unless (exists $t->{'_FocusOut'}{$w}) {
- return;
- } else {
- $t->{'_FocusOut'}{$w}->Call;
- delete $t->{'_focus'};
- }
-}
-
-1;
-
-__END__
-1;
-# end of Tk::Toplevel::FG_Out
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/autosplit.ix
deleted file mode 100644
index 859b90d9a40..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Toplevel/autosplit.ix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk\Toplevel.pm
-# (file acts as timestamp)
-package Tk::Toplevel;
-sub FG_Create ;
-sub FG_BindIn ;
-sub FG_BindOut ;
-sub FG_Destroy ;
-sub FG_In ;
-sub FG_Out ;
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/TraverseToMenu.al b/Master/tlpkg/tlperl/lib/auto/Tk/TraverseToMenu.al
deleted file mode 100644
index 9155d440a29..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/TraverseToMenu.al
+++ /dev/null
@@ -1,27 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 723 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\TraverseToMenu.al)"
-# tkTraverseToMenu --
-# This procedure implements keyboard traversal of menus. Given an
-# ASCII character "char", it looks for a menubutton with that character
-# underlined. If one is found, it posts the menubutton's menu
-#
-# Arguments:
-# w - Window in which the key was typed (selects
-# a toplevel window).
-# char - Character that selects a menu. The case
-# is ignored. If an empty string, nothing
-# happens.
-sub TraverseToMenu
-{
- my $w = shift;
- my $char = shift;
- return unless(defined $char && $char ne '');
- $w = $w->toplevel->FindMenu($char);
-}
-
-# end of Tk::TraverseToMenu
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/ASkludge.al b/Master/tlpkg/tlperl/lib/auto/Tk/Widget/ASkludge.al
deleted file mode 100644
index 2b1cc332a3d..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/ASkludge.al
+++ /dev/null
@@ -1,30 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1512 "blib\lib\Tk\Widget.pm (autosplit into blib\lib\auto\Tk\Widget\ASkludge.al)"
-sub ASkludge
-{
- my ($hash,$sense) = @_;
- foreach my $key (%$hash)
- {
- if ($key =~ /-.*variable/ && ref($hash->{$key}) eq 'SCALAR')
- {
- if ($sense)
- {
- my $val = ${$hash->{$key}};
- require Tie::Scalar;
- tie ${$hash->{$key}},'Tie::StdScalar';
- ${$hash->{$key}} = $val;
- }
- else
- {
- untie ${$hash->{$key}};
- }
- }
- }
-}
-
-# end of Tk::Widget::ASkludge
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/AltKeyInDialog.al b/Master/tlpkg/tlperl/lib/auto/Tk/Widget/AltKeyInDialog.al
deleted file mode 100644
index 9ee32f44a40..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/AltKeyInDialog.al
+++ /dev/null
@@ -1,20 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1676 "blib\lib\Tk\Widget.pm (autosplit into blib\lib\auto\Tk\Widget\AltKeyInDialog.al)"
-# ::tk::AltKeyInDialog --
-# <Alt-Key> event handler for standard dialogs. Sends <<AltUnderlined>>
-# to button or label which has appropriate underlined character
-#
-sub AltKeyInDialog
-{
- my ($w, $key) = @_;
- my $target = $w->FindAltKeyTarget($key);
- return if !$target;
- $target->eventGenerate('<<AltUnderlined>>');
-}
-
-# end of Tk::Widget::AltKeyInDialog
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/AmpWidget.al b/Master/tlpkg/tlperl/lib/auto/Tk/Widget/AmpWidget.al
deleted file mode 100644
index 7874078b30e..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/AmpWidget.al
+++ /dev/null
@@ -1,36 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1618 "blib\lib\Tk\Widget.pm (autosplit into blib\lib\auto\Tk\Widget\AmpWidget.al)"
-# ::tk::AmpWidget --
-# Creates new widget, turning -text option into -text and
-# -underline options, returned by ::tk::UnderlineAmpersand.
-#
-sub AmpWidget
-{
- my ($w,$class,%args) = @_;
- my @options;
- while(my($opt,$val) = each %args)
- {
- if ($opt eq "-text")
- {
- my ($newtext,$under) = $w->UnderlineAmpersand($val);
- push @options, -text => $newtext, -underline => $under;
- }
- else
- {
- push @options, $opt, $val;
- }
- }
- my $result = $w->$class(@options);
- if ($result->can('AmpWidgetPostHook'))
- {
- $result->AmpWidgetPostHook;
- }
- return $result;
-}
-
-# end of Tk::Widget::AmpWidget
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/FindAltKeyTarget.al b/Master/tlpkg/tlperl/lib/auto/Tk/Widget/FindAltKeyTarget.al
deleted file mode 100644
index 74f7fbd1659..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/FindAltKeyTarget.al
+++ /dev/null
@@ -1,38 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1646 "blib\lib\Tk\Widget.pm (autosplit into blib\lib\auto\Tk\Widget\FindAltKeyTarget.al)"
-# ::tk::FindAltKeyTarget --
-# search recursively through the hierarchy of visible widgets
-# to find button or label which has $char as underlined character
-#
-sub FindAltKeyTarget
-{
- my ($w,$char) = @_;
- $char = lc $char;
- if ($w->isa('Tk::Button') || $w->isa('Tk::Label'))
- {
- if ($char eq lc substr($w->cget(-text), $w->cget(-underline), 1))
- {
- return $w;
- }
- else
- {
- return undef;
- }
- }
- else
- {
- for my $cw ($w->gridSlaves, $w->packSlaves, $w->placeSlaves) # Cannot handle $w->formSlaves here?
- {
- my $target = $cw->FindAltKeyTarget($char);
- return $target if ($target);
- }
- }
- undef;
-}
-
-# end of Tk::Widget::FindAltKeyTarget
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/MasterMenu.al b/Master/tlpkg/tlperl/lib/auto/Tk/Widget/MasterMenu.al
deleted file mode 100644
index a6293493638..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/MasterMenu.al
+++ /dev/null
@@ -1,14 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1769 "blib\lib\Tk\Widget.pm (autosplit into blib\lib\auto\Tk\Widget\MasterMenu.al)"
-# See http://rt.cpan.org/Ticket/Display.html?id=30929 and
-# http://rt.cpan.org/Ticket/Display.html?id=31016
-sub MasterMenu
- {
- }
-
-1;
-# end of Tk::Widget::MasterMenu
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/RestoreFocusGrab.al b/Master/tlpkg/tlperl/lib/auto/Tk/Widget/RestoreFocusGrab.al
deleted file mode 100644
index e295862b042..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/RestoreFocusGrab.al
+++ /dev/null
@@ -1,59 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1718 "blib\lib\Tk\Widget.pm (autosplit into blib\lib\auto\Tk\Widget\RestoreFocusGrab.al)"
-# ::tk::RestoreFocusGrab --
-# restore old focus and grab (for dialogs)
-# Arguments:
-# grab window that had taken grab
-# focus window that had taken focus
-# destroy destroy|withdraw - how to handle the old grabbed window
-# Results:
-# Returns nothing
-#
-sub RestoreFocusGrab
-{
- my ($grab, $focus, $destroy) = @_;
- $destroy = 'destroy' if !$destroy;
- my $index = "$grab,$focus";
- my ($oldFocus, $oldGrab, $oldStatus);
- if (exists $Tk::FocusGrab{$index})
- {
- ($oldFocus, $oldGrab, $oldStatus) = $Tk::FocusGrab{$index};
- delete $Tk::FocusGrab{$index};
- }
- else
- {
- $oldGrab = "";
- }
-
- Tk::catch { $oldFocus->focus };
- if (Tk::Exists($grab))
- {
- $grab->grabRelease;
- if ($destroy eq "withdraw")
- {
- $grab->withdraw;
- }
- else
- {
- $grab->destroy;
- }
- }
- if (Tk::Exists($oldGrab) && $oldGrab->ismapped)
- {
- if ($oldStatus eq "global")
- {
- $oldGrab->grabGlobal;
- }
- else
- {
- $oldGrab->grab;
- }
- }
-}
-
-# end of Tk::Widget::RestoreFocusGrab
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/SetAmpText.al b/Master/tlpkg/tlperl/lib/auto/Tk/Widget/SetAmpText.al
deleted file mode 100644
index dae7755b9e6..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/SetAmpText.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1607 "blib\lib\Tk\Widget.pm (autosplit into blib\lib\auto\Tk\Widget\SetAmpText.al)"
-# ::tk::SetAmpText --
-# Given widget path and text with "magic ampersands",
-# sets -text and -underline options for the widget
-#
-sub SetAmpText
-{
- my ($w,$text) = @_;
- my ($newtext,$under) = $w->UnderlineAmpersand($text);
- $w->configure(-text => $newtext, -underline => $under);
-}
-
-# end of Tk::Widget::SetAmpText
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/SetFocusGrab.al b/Master/tlpkg/tlperl/lib/auto/Tk/Widget/SetFocusGrab.al
deleted file mode 100644
index 53730834513..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/SetFocusGrab.al
+++ /dev/null
@@ -1,38 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1688 "blib\lib\Tk\Widget.pm (autosplit into blib\lib\auto\Tk\Widget\SetFocusGrab.al)"
-# ::tk::SetFocusGrab --
-# swap out current focus and grab temporarily (for dialogs)
-# Arguments:
-# grab new window to grab
-# focus window to give focus to
-# Results:
-# Returns nothing
-#
-sub SetFocusGrab
-{
- my ($grab,$focus) = @_;
- my $index = "$grab,$focus";
- $Tk::FocusGrab{$index} ||= [];
- my $data = $Tk::FocusGrab{$index};
- push @$data, $grab->focusCurrent;
- my $oldGrab = $grab->grabCurrent;
- push @$data, $oldGrab;
- if (Tk::Exists($oldGrab))
- {
- push @$data, $oldGrab->grabStatus;
- }
- # The "grab" command will fail if another application
- # already holds the grab. So catch it.
- Tk::catch { $grab->grab };
- if (Tk::Exists($focus))
- {
- $focus->focus;
- }
-}
-
-# end of Tk::Widget::SetFocusGrab
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/UnderlineAmpersand.al b/Master/tlpkg/tlperl/lib/auto/Tk/Widget/UnderlineAmpersand.al
deleted file mode 100644
index c9bf220c2b6..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/UnderlineAmpersand.al
+++ /dev/null
@@ -1,29 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1586 "blib\lib\Tk\Widget.pm (autosplit into blib\lib\auto\Tk\Widget\UnderlineAmpersand.al)"
-# ::tk::UnderlineAmpersand --
-# This procedure takes some text with ampersand and returns
-# text w/o ampersand and position of the ampersand.
-# Double ampersands are converted to single ones.
-# Position returned is -1 when there is no ampersand.
-#
-sub UnderlineAmpersand
-{
- my (undef,$text) = @_;
- if ($text =~ m{(?<!&)&(?!&)}g)
- {
- my $idx = pos $text;
- $text =~ s{(?<!&)&(?!&)}{};
- ($text, $idx);
- }
- else
- {
- ($text, -1);
- }
-}
-
-# end of Tk::Widget::UnderlineAmpersand
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/Widget/autosplit.ix
deleted file mode 100644
index 7844cc0b25e..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/autosplit.ix
+++ /dev/null
@@ -1,27 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk\Widget.pm
-# (file acts as timestamp)
-package Tk::Widget;
-sub bindDump ;
-sub ASkludge
-;
-sub clipboardKeysyms
-;
-sub pathname
-;
-sub UnderlineAmpersand
-;
-sub SetAmpText
-;
-sub AmpWidget
-;
-sub FindAltKeyTarget
-;
-sub AltKeyInDialog
-;
-sub SetFocusGrab
-;
-sub RestoreFocusGrab
-;
-sub MasterMenu
-;
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/bindDump.al b/Master/tlpkg/tlperl/lib/auto/Tk/Widget/bindDump.al
deleted file mode 100644
index 478f264a1dd..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/bindDump.al
+++ /dev/null
@@ -1,87 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1432 "blib\lib\Tk\Widget.pm (autosplit into blib\lib\auto\Tk\Widget\bindDump.al)"
-sub bindDump {
-
- # Dump lots of good binding information. This pretty-print subroutine
- # is, essentially, the following code in disguise:
- #
- # print "Binding information for $w\n";
- # foreach my $tag ($w->bindtags) {
- # printf "\n Binding tag '$tag' has these bindings:\n";
- # foreach my $binding ($w->Tk::bind($tag)) {
- # printf " $binding\n";
- # }
- # }
-
- my ($w) = @_;
-
- my (@bindtags) = $w->bindtags;
- my $digits = length( scalar @bindtags );
- my ($spc1, $spc2) = ($digits + 33, $digits + 35);
- my $format1 = "%${digits}d.";
- my $format2 = ' ' x ($digits + 2);
- my $n = 0;
-
- my @out;
- push @out, sprintf( "\n## Binding information for '%s', %s ##", $w->PathName, $w );
-
- foreach my $tag (@bindtags) {
- my (@bindings) = $w->Tk::bind($tag);
- $n++; # count this bindtag
-
- if ($#bindings == -1) {
- push @out, sprintf( "\n$format1 Binding tag '$tag' has no bindings.\n", $n );
- } else {
- push @out, sprintf( "\n$format1 Binding tag '$tag' has these bindings:\n", $n );
-
- foreach my $binding ( @bindings ) {
- my $callback = $w->Tk::bind($tag, $binding);
- push @out, sprintf( "$format2%27s : %-40s\n", $binding, $callback );
-
- if ($callback =~ /SCALAR/) {
- if (ref $$callback) {
- push @out, sprintf( "%s %s\n", ' ' x $spc1, $$callback );
- } else {
- push @out, sprintf( "%s '%s'\n", ' ' x $spc1, $$callback );
- }
- } elsif ($callback =~ /ARRAY/) {
- if (ref $callback->[0]) {
- push @out, sprintf( "%s %s\n", ' ' x $spc1, $callback->[0] );
- } else {
- push @out, sprintf( "%s '%s'\n", ' ' x $spc1, $callback->[0] );
- }
- foreach my $arg (@$callback[1 .. $#$callback]) {
- if (ref $arg) {
- push @out, sprintf( "%s %-40s", ' ' x $spc2, $arg );
- } else {
- push @out, sprintf( "%s '%s'", ' ' x $spc2, $arg );
- }
-
- if (ref $arg eq 'Tk::Ev') {
- if ($arg =~ /SCALAR/) {
- push @out, sprintf( ": '$$arg'" );
- } else {
- push @out, sprintf( ": '%s'", join("' '", @$arg) );
- }
- }
-
- push @out, sprintf( "\n" );
- } # forend callback arguments
- } # ifend callback
-
- } # forend all bindings for one tag
-
- } # ifend have bindings
-
- } # forend all tags
- push @out, sprintf( "\n" );
- return @out;
-
-} # end bindDump
-
-# end of Tk::Widget::bindDump
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/clipboardKeysyms.al b/Master/tlpkg/tlperl/lib/auto/Tk/Widget/clipboardKeysyms.al
deleted file mode 100644
index eabc32f2a8d..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/clipboardKeysyms.al
+++ /dev/null
@@ -1,51 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1536 "blib\lib\Tk\Widget.pm (autosplit into blib\lib\auto\Tk\Widget\clipboardKeysyms.al)"
-# clipboardKeysyms --
-# This procedure is invoked to identify the keys that correspond to
-# the "copy", "cut", and "paste" functions for the clipboard.
-#
-# Arguments:
-# copy - Name of the key (keysym name plus modifiers, if any,
-# such as "Meta-y") used for the copy operation.
-# cut - Name of the key used for the cut operation.
-# paste - Name of the key used for the paste operation.
-#
-# This method is obsolete use clipboardOperations and abstract
-# event types instead. See Clipboard.pm and Mainwindow.pm
-
-sub clipboardKeysyms
-{
- my @class = ();
- my $mw = shift;
- if (ref $mw)
- {
- $mw = $mw->DelegateFor('bind');
- }
- else
- {
- push(@class,$mw);
- $mw = shift;
- }
- if (@_)
- {
- my $copy = shift;
- $mw->Tk::bind(@class,"<$copy>",'clipboardCopy') if (defined $copy);
- }
- if (@_)
- {
- my $cut = shift;
- $mw->Tk::bind(@class,"<$cut>",'clipboardCut') if (defined $cut);
- }
- if (@_)
- {
- my $paste = shift;
- $mw->Tk::bind(@class,"<$paste>",'clipboardPaste') if (defined $paste);
- }
-}
-
-# end of Tk::Widget::clipboardKeysyms
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/pathname.al b/Master/tlpkg/tlperl/lib/auto/Tk/Widget/pathname.al
deleted file mode 100644
index 29f7e4cffca..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Widget/pathname.al
+++ /dev/null
@@ -1,15 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Widget.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Widget;
-
-#line 1579 "blib\lib\Tk\Widget.pm (autosplit into blib\lib\auto\Tk\Widget\pathname.al)"
-sub pathname
-{
- my ($w,$id) = @_;
- my $x = $w->winfo('pathname',-displayof => oct($id));
- return $x->PathName;
-}
-
-# end of Tk::Widget::pathname
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Wm/AnchorAdjust.al b/Master/tlpkg/tlperl/lib/auto/Tk/Wm/AnchorAdjust.al
deleted file mode 100644
index 538612878ed..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Wm/AnchorAdjust.al
+++ /dev/null
@@ -1,17 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Wm.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Wm;
-
-#line 87 "blib\lib\Tk\Wm.pm (autosplit into blib\lib\auto\Tk\Wm\AnchorAdjust.al)"
-sub AnchorAdjust
-{
- my ($anchor,$X,$Y,$w,$h) = @_;
- $anchor = 'c' unless (defined $anchor);
- $Y += ($anchor =~ /s/) ? $h : ($anchor =~ /n/) ? 0 : $h/2;
- $X += ($anchor =~ /e/) ? $w : ($anchor =~ /w/) ? 0 : $w/2;
- return ($X,$Y);
-}
-
-# end of Tk::Wm::AnchorAdjust
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Wm/FullScreen.al b/Master/tlpkg/tlperl/lib/auto/Tk/Wm/FullScreen.al
deleted file mode 100644
index 4d5702cc60d..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Wm/FullScreen.al
+++ /dev/null
@@ -1,29 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Wm.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Wm;
-
-#line 138 "blib\lib\Tk\Wm.pm (autosplit into blib\lib\auto\Tk\Wm\FullScreen.al)"
-sub FullScreen
-{
- my $w = shift;
- my $over = (@_) ? shift : 0;
- my $width = $w->screenwidth;
- my $height = $w->screenheight;
- $w->GeometryRequest($width,$height);
- $w->overrideredirect($over & 1);
- $w->Post(0,0);
- $w->update;
- if ($over & 2)
- {
- my $x = $w->rootx;
- my $y = $w->rooty;
- $width -= 2*$x;
- $height -= $x + $y;
- $w->GeometryRequest($width,$height);
- $w->update;
- }
-}
-
-# end of Tk::Wm::FullScreen
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Wm/Popup.al b/Master/tlpkg/tlperl/lib/auto/Tk/Wm/Popup.al
deleted file mode 100644
index 3f460c5bac6..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Wm/Popup.al
+++ /dev/null
@@ -1,50 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Wm.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Wm;
-
-#line 96 "blib\lib\Tk\Wm.pm (autosplit into blib\lib\auto\Tk\Wm\Popup.al)"
-sub Popup
-{
- my $w = shift;
- $w->configure(@_) if @_;
- $w->idletasks;
- my ($mw,$mh) = ($w->reqwidth,$w->reqheight);
- my ($rx,$ry,$rw,$rh) = (0,0,0,0);
- my $base = $w->cget('-popover');
- my $outside = 0;
- if (defined $base)
- {
- if ($base eq 'cursor')
- {
- ($rx,$ry) = $w->pointerxy;
- }
- else
- {
- $rx = $base->rootx;
- $ry = $base->rooty;
- $rw = $base->Width;
- $rh = $base->Height;
- }
- }
- else
- {
- my $sc = ($w->parent) ? $w->parent->toplevel : $w;
- $rx = -$sc->vrootx;
- $ry = -$sc->vrooty;
- $rw = $w->screenwidth;
- $rh = $w->screenheight;
- }
- my ($X,$Y) = AnchorAdjust($w->cget('-overanchor'),$rx,$ry,$rw,$rh);
- ($X,$Y) = AnchorAdjust($w->cget('-popanchor'),$X,$Y,-$mw,-$mh);
- # adjust to not cross screen borders
- if ($X < 0) { $X = 0 }
- if ($Y < 0) { $Y = 0 }
- if ($mw > $w->screenwidth) { $X = 0 }
- if ($mh > $w->screenheight) { $Y = 0 }
- $w->Post($X,$Y);
- $w->waitVisibility;
-}
-
-# end of Tk::Wm::Popup
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Wm/Post.al b/Master/tlpkg/tlperl/lib/auto/Tk/Wm/Post.al
deleted file mode 100644
index f3f5c8e3e08..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Wm/Post.al
+++ /dev/null
@@ -1,20 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Wm.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Wm;
-
-#line 75 "blib\lib\Tk\Wm.pm (autosplit into blib\lib\auto\Tk\Wm\Post.al)"
-sub Post
-{
- my ($w,$X,$Y) = @_;
- $X = int($X);
- $Y = int($Y);
- $w->positionfrom('user');
- $w->geometry("+$X+$Y");
- # $w->MoveToplevelWindow($X,$Y);
- $w->deiconify;
- $w->raise;
-}
-
-# end of Tk::Wm::Post
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Wm/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/Wm/autosplit.ix
deleted file mode 100644
index 201dbe8ba99..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Wm/autosplit.ix
+++ /dev/null
@@ -1,14 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk\Wm.pm
-# (file acts as timestamp)
-package Tk::Wm;
-sub Post
-;
-sub AnchorAdjust
-;
-sub Popup
-;
-sub FullScreen
-;
-sub iconposition
-;
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Wm/iconposition.al b/Master/tlpkg/tlperl/lib/auto/Tk/Wm/iconposition.al
deleted file mode 100644
index 9254968f61c..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Wm/iconposition.al
+++ /dev/null
@@ -1,24 +0,0 @@
-# NOTE: Derived from blib\lib\Tk\Wm.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk::Wm;
-
-#line 159 "blib\lib\Tk\Wm.pm (autosplit into blib\lib\auto\Tk\Wm\iconposition.al)"
-sub iconposition
-{
- my $w = shift;
- if (@_ == 1)
- {
- return $w->wm('iconposition',$1,$2) if $_[0] =~ /^(\d+),(\d+)$/;
- if ($_[0] =~ /^([+-])(\d+)([+-])(\d+)$/)
- {
- my $x = ($1 eq '-') ? $w->screenwidth-$2 : $2;
- my $y = ($3 eq '-') ? $w->screenheight-$4 : $4;
- return $w->wm('iconposition',$x,$y);
- }
- }
- $w->wm('iconposition',@_);
-}
-
-1;
-# end of Tk::Wm::iconposition
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/X/X.dll b/Master/tlpkg/tlperl/lib/auto/Tk/X/X.dll
deleted file mode 100755
index 7c53d5f07b8..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/X/X.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/X/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/X/autosplit.ix
deleted file mode 100644
index e63dbf19b00..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/X/autosplit.ix
+++ /dev/null
@@ -1,3 +0,0 @@
-# Index created by AutoSplit for ..\..\blib\lib\Tk\X.pm
-# (file acts as timestamp)
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Xlib/Xlib.dll b/Master/tlpkg/tlperl/lib/auto/Tk/Xlib/Xlib.dll
deleted file mode 100755
index 622488eccca..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/Xlib/Xlib.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/autosplit.ix
deleted file mode 100644
index 8fb1449e58f..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/autosplit.ix
+++ /dev/null
@@ -1,49 +0,0 @@
-# Index created by AutoSplit for blib\lib\Tk.pm
-# (file acts as timestamp)
-package Tk;
-sub Error
-;
-sub CancelRepeat
-;
-sub RepeatId
-;
-sub FocusChildren ;
-sub focusNext
-;
-sub getNextFocus
-;
-sub focusPrev
-;
-sub getPrevFocus
-;
-sub FocusOK
-;
-sub EnterFocus
-;
-sub tabFocus
-;
-sub focusFollowsMouse
-;
-sub TraverseToMenu
-;
-sub FirstMenu
-;
-sub Selection
-;
-sub Receive
-;
-sub break
-;
-sub updateWidgets
-;
-sub ImageNames
-;
-sub ImageTypes
-;
-sub interps
-;
-sub lsearch
-;
-sub getEncoding
-;
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/break.al b/Master/tlpkg/tlperl/lib/auto/Tk/break.al
deleted file mode 100644
index 050c78a07a6..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/break.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 779 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\break.al)"
-sub break
-{
- die "_TK_BREAK_\n";
-}
-
-# end of Tk::break
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/focusFollowsMouse.al b/Master/tlpkg/tlperl/lib/auto/Tk/focusFollowsMouse.al
deleted file mode 100644
index 445df971f33..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/focusFollowsMouse.al
+++ /dev/null
@@ -1,14 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 717 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\focusFollowsMouse.al)"
-sub focusFollowsMouse
-{
- my $widget = shift;
- $widget->bind('all','<Enter>','EnterFocus');
-}
-
-# end of Tk::focusFollowsMouse
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/focusNext.al b/Master/tlpkg/tlperl/lib/auto/Tk/focusNext.al
deleted file mode 100644
index b9b15137764..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/focusNext.al
+++ /dev/null
@@ -1,18 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 553 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\focusNext.al)"
-sub focusNext
-{
- my $w = shift;
- my $cur = $w->getNextFocus;
- if ($cur)
- {
- $cur->tabFocus;
- }
-}
-
-# end of Tk::focusNext
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/focusPrev.al b/Master/tlpkg/tlperl/lib/auto/Tk/focusPrev.al
deleted file mode 100644
index 43e4de75d4b..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/focusPrev.al
+++ /dev/null
@@ -1,28 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 598 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\focusPrev.al)"
-# focusPrev --
-# This procedure is invoked to move the input focus to the previous
-# window before a given one. "Previous" is defined in terms of the
-# window stacking order, with all the windows underneath a given
-# top-level (no matter how deeply nested in the hierarchy) considered.
-#
-# Arguments:
-# w - Name of a window: the procedure will set the focus
-# to the previous window before this one in the traversal
-# order.
-sub focusPrev
-{
- my $w = shift;
- my $cur = $w->getPrevFocus;
- if ($cur)
- {
- $cur->tabFocus;
- }
-}
-
-# end of Tk::focusPrev
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/getEncoding.al b/Master/tlpkg/tlperl/lib/auto/Tk/getEncoding.al
deleted file mode 100644
index f0478a28cde..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/getEncoding.al
+++ /dev/null
@@ -1,43 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 821 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\getEncoding.al)"
-sub getEncoding
-{
- my ($class,$name) = @_;
- eval { require Encode };
- if ($@)
- {
- require Tk::DummyEncode;
- return Tk::DummyEncode->getEncoding($name);
- }
- $name = $Tk::font_encoding{$name} if exists $Tk::font_encoding{$name};
- my $enc = Encode::find_encoding($name);
-
- unless ($enc)
- {
- $enc = Encode::find_encoding($name) if ($name =~ s/[-_]\d+$//)
- }
-# if ($enc)
-# {
-# print STDERR "Lookup '$name' => ".$enc->name."\n";
-# }
-# else
-# {
-# print STDERR "Failed '$name'\n";
-# }
- unless ($enc)
- {
- if ($name eq 'X11ControlChars')
- {
- require Tk::DummyEncode;
- $Encode::encoding{$name} = $enc = Tk::DummyEncode->getEncoding($name);
- }
- }
- return $enc;
-}
-
-1;
-# end of Tk::getEncoding
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/getNextFocus.al b/Master/tlpkg/tlperl/lib/auto/Tk/getNextFocus.al
deleted file mode 100644
index 7ae25f889e9..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/getNextFocus.al
+++ /dev/null
@@ -1,44 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 563 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\getNextFocus.al)"
-sub getNextFocus
-{
- my $w = shift;
- my $cur = $w;
- while (1)
- {
- # Descend to just before the first child of the current widget.
- my $parent = $cur;
- my @children = $cur->FocusChildren();
- my $i = -1;
- # Look for the next sibling that isn't a top-level.
- while (1)
- {
- $i += 1;
- if ($i < @children)
- {
- $cur = $children[$i];
- next if ($cur->toplevel == $cur);
- last
- }
- # No more siblings, so go to the current widget's parent.
- # If it's a top-level, break out of the loop, otherwise
- # look for its next sibling.
- $cur = $parent;
- last if ($cur->toplevel() == $cur);
- $parent = $parent->parent();
- @children = $parent->FocusChildren();
- $i = lsearch(\@children,$cur);
- }
- if ($cur == $w || $cur->FocusOK)
- {
- return $cur;
- }
- }
-}
-
-# end of Tk::getNextFocus
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/getPrevFocus.al b/Master/tlpkg/tlperl/lib/auto/Tk/getPrevFocus.al
deleted file mode 100644
index ef90d8a7f95..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/getPrevFocus.al
+++ /dev/null
@@ -1,54 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 618 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\getPrevFocus.al)"
-sub getPrevFocus
-{
- my $w = shift;
- my $cur = $w;
- my @children;
- my $i;
- my $parent;
- while (1)
- {
- # Collect information about the current window's position
- # among its siblings. Also, if the window is a top-level,
- # then reposition to just after the last child of the window.
- if ($cur->toplevel() == $cur)
- {
- $parent = $cur;
- @children = $cur->FocusChildren();
- $i = @children;
- }
- else
- {
- $parent = $cur->parent();
- @children = $parent->FocusChildren();
- $i = lsearch(\@children,$cur);
- }
- # Go to the previous sibling, then descend to its last descendant
- # (highest in stacking order. While doing this, ignore top-levels
- # and their descendants. When we run out of descendants, go up
- # one level to the parent.
- while ($i > 0)
- {
- $i--;
- $cur = $children[$i];
- next if ($cur->toplevel() == $cur);
- $parent = $cur;
- @children = $parent->FocusChildren();
- $i = @children;
- }
- $cur = $parent;
- if ($cur == $w || $cur->FocusOK)
- {
- return $cur;
- }
- }
-
-}
-
-# end of Tk::getPrevFocus
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/interps.al b/Master/tlpkg/tlperl/lib/auto/Tk/interps.al
deleted file mode 100644
index 3b014af8695..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/interps.al
+++ /dev/null
@@ -1,14 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 803 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\interps.al)"
-sub interps
-{
- my $w = shift;
- return $w->winfo('interps','-displayof');
-}
-
-# end of Tk::interps
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/lsearch.al b/Master/tlpkg/tlperl/lib/auto/Tk/lsearch.al
deleted file mode 100644
index a4342823fed..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/lsearch.al
+++ /dev/null
@@ -1,19 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 809 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\lsearch.al)"
-sub lsearch
-{my $ar = shift;
- my $x = shift;
- my $i;
- for ($i = 0; $i < scalar @$ar; $i++)
- {
- return $i if ($$ar[$i] eq $x);
- }
- return -1;
-}
-
-# end of Tk::lsearch
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/pTk/extralibs.ld b/Master/tlpkg/tlperl/lib/auto/Tk/pTk/extralibs.ld
deleted file mode 100644
index 8b137891791..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/pTk/extralibs.ld
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/tabFocus.al b/Master/tlpkg/tlperl/lib/auto/Tk/tabFocus.al
deleted file mode 100644
index 31cb7ea98e7..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/tabFocus.al
+++ /dev/null
@@ -1,13 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 712 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\tabFocus.al)"
-sub tabFocus
-{
- shift->Tk::focus;
-}
-
-# end of Tk::tabFocus
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/updateWidgets.al b/Master/tlpkg/tlperl/lib/auto/Tk/updateWidgets.al
deleted file mode 100644
index 5412dd9cdcb..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Tk/updateWidgets.al
+++ /dev/null
@@ -1,17 +0,0 @@
-# NOTE: Derived from blib\lib\Tk.pm.
-# Changes made here will be lost when autosplit is run again.
-# See AutoSplit.pm.
-package Tk;
-
-#line 784 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\updateWidgets.al)"
-sub updateWidgets
-{
- my ($w) = @_;
- while ($w->DoOneEvent(DONT_WAIT|IDLE_EVENTS|WINDOW_EVENTS))
- {
- }
- $w;
-}
-
-# end of Tk::updateWidgets
-1;
diff --git a/Master/tlpkg/tlperl/lib/auto/URI/.packlist b/Master/tlpkg/tlperl/lib/auto/URI/.packlist
deleted file mode 100644
index 4b82b32d7d1..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/URI/.packlist
+++ /dev/null
@@ -1,52 +0,0 @@
-C:\tlperl\site\lib\URI.pm
-C:\tlperl\site\lib\URI\Escape.pm
-C:\tlperl\site\lib\URI\Heuristic.pm
-C:\tlperl\site\lib\URI\IRI.pm
-C:\tlperl\site\lib\URI\QueryParam.pm
-C:\tlperl\site\lib\URI\Split.pm
-C:\tlperl\site\lib\URI\URL.pm
-C:\tlperl\site\lib\URI\WithBase.pm
-C:\tlperl\site\lib\URI\_foreign.pm
-C:\tlperl\site\lib\URI\_generic.pm
-C:\tlperl\site\lib\URI\_idna.pm
-C:\tlperl\site\lib\URI\_ldap.pm
-C:\tlperl\site\lib\URI\_login.pm
-C:\tlperl\site\lib\URI\_punycode.pm
-C:\tlperl\site\lib\URI\_query.pm
-C:\tlperl\site\lib\URI\_segment.pm
-C:\tlperl\site\lib\URI\_server.pm
-C:\tlperl\site\lib\URI\_userpass.pm
-C:\tlperl\site\lib\URI\data.pm
-C:\tlperl\site\lib\URI\file.pm
-C:\tlperl\site\lib\URI\file\Base.pm
-C:\tlperl\site\lib\URI\file\FAT.pm
-C:\tlperl\site\lib\URI\file\Mac.pm
-C:\tlperl\site\lib\URI\file\OS2.pm
-C:\tlperl\site\lib\URI\file\QNX.pm
-C:\tlperl\site\lib\URI\file\Unix.pm
-C:\tlperl\site\lib\URI\file\Win32.pm
-C:\tlperl\site\lib\URI\ftp.pm
-C:\tlperl\site\lib\URI\gopher.pm
-C:\tlperl\site\lib\URI\http.pm
-C:\tlperl\site\lib\URI\https.pm
-C:\tlperl\site\lib\URI\ldap.pm
-C:\tlperl\site\lib\URI\ldapi.pm
-C:\tlperl\site\lib\URI\ldaps.pm
-C:\tlperl\site\lib\URI\mailto.pm
-C:\tlperl\site\lib\URI\mms.pm
-C:\tlperl\site\lib\URI\news.pm
-C:\tlperl\site\lib\URI\nntp.pm
-C:\tlperl\site\lib\URI\pop.pm
-C:\tlperl\site\lib\URI\rlogin.pm
-C:\tlperl\site\lib\URI\rsync.pm
-C:\tlperl\site\lib\URI\rtsp.pm
-C:\tlperl\site\lib\URI\rtspu.pm
-C:\tlperl\site\lib\URI\sip.pm
-C:\tlperl\site\lib\URI\sips.pm
-C:\tlperl\site\lib\URI\snews.pm
-C:\tlperl\site\lib\URI\ssh.pm
-C:\tlperl\site\lib\URI\telnet.pm
-C:\tlperl\site\lib\URI\tn3270.pm
-C:\tlperl\site\lib\URI\urn.pm
-C:\tlperl\site\lib\URI\urn\isbn.pm
-C:\tlperl\site\lib\URI\urn\oid.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll b/Master/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll
index 87cf7d5e695..8b5137f86bf 100755
--- a/Master/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll b/Master/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll
deleted file mode 100755
index 7dd4fbd65f1..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/WWW/RobotRules/.packlist b/Master/tlpkg/tlperl/lib/auto/WWW/RobotRules/.packlist
deleted file mode 100644
index 854d05abe32..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/WWW/RobotRules/.packlist
+++ /dev/null
@@ -1,2 +0,0 @@
-C:\tlperl\site\lib\WWW\RobotRules.pm
-C:\tlperl\site\lib\WWW\RobotRules\AnyDBM_File.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32/API/.packlist b/Master/tlpkg/tlperl/lib/auto/Win32/API/.packlist
deleted file mode 100644
index 684e22467ad..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Win32/API/.packlist
+++ /dev/null
@@ -1,8 +0,0 @@
-C:\tlperl\site\lib\Win32\API.pm
-C:\tlperl\site\lib\Win32\API\Callback.pm
-C:\tlperl\site\lib\Win32\API\Callback\IATPatch.pod
-C:\tlperl\site\lib\Win32\API\Struct.pm
-C:\tlperl\site\lib\Win32\API\Test.pm
-C:\tlperl\site\lib\Win32\API\Type.pm
-C:\tlperl\site\lib\auto\Win32\API\API.dll
-C:\tlperl\site\lib\auto\Win32\API\Callback\Callback.dll
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32/API/API.dll b/Master/tlpkg/tlperl/lib/auto/Win32/API/API.dll
deleted file mode 100755
index c3e5fc03cff..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Win32/API/API.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32/API/Callback/Callback.dll b/Master/tlpkg/tlperl/lib/auto/Win32/API/Callback/Callback.dll
deleted file mode 100755
index 8277ac1be39..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Win32/API/Callback/Callback.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32/Console/.packlist b/Master/tlpkg/tlperl/lib/auto/Win32/Console/.packlist
deleted file mode 100644
index 1a443fac382..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Win32/Console/.packlist
+++ /dev/null
@@ -1,2 +0,0 @@
-C:\tlperl\site\lib\Win32\Console.pm
-C:\tlperl\site\lib\auto\Win32\Console\Console.dll
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32/Console/Console.dll b/Master/tlpkg/tlperl/lib/auto/Win32/Console/Console.dll
deleted file mode 100755
index 942f6f92591..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Win32/Console/Console.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32/OLE/.packlist b/Master/tlpkg/tlperl/lib/auto/Win32/OLE/.packlist
deleted file mode 100644
index eb21a2a013b..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Win32/OLE/.packlist
+++ /dev/null
@@ -1,11 +0,0 @@
-C:\tlperl\site\lib\OLE.pm
-C:\tlperl\site\lib\Win32\OLE.pm
-C:\tlperl\site\lib\Win32\OLE\Const.pm
-C:\tlperl\site\lib\Win32\OLE\Enum.pm
-C:\tlperl\site\lib\Win32\OLE\Lite.pm
-C:\tlperl\site\lib\Win32\OLE\NEWS.pod
-C:\tlperl\site\lib\Win32\OLE\NLS.pm
-C:\tlperl\site\lib\Win32\OLE\TPJ.pod
-C:\tlperl\site\lib\Win32\OLE\TypeInfo.pm
-C:\tlperl\site\lib\Win32\OLE\Variant.pm
-C:\tlperl\site\lib\auto\Win32\OLE\OLE.dll
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32/OLE/OLE.dll b/Master/tlpkg/tlperl/lib/auto/Win32/OLE/OLE.dll
deleted file mode 100755
index 0859f406e80..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Win32/OLE/OLE.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32/Shortcut/.packlist b/Master/tlpkg/tlperl/lib/auto/Win32/Shortcut/.packlist
deleted file mode 100644
index 2969a834652..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Win32/Shortcut/.packlist
+++ /dev/null
@@ -1,2 +0,0 @@
-C:\tlperl\site\lib\Win32\Shortcut.pm
-C:\tlperl\site\lib\auto\Win32\Shortcut\Shortcut.dll
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32/Shortcut/Shortcut.dll b/Master/tlpkg/tlperl/lib/auto/Win32/Shortcut/Shortcut.dll
deleted file mode 100755
index f6a56c2bbaf..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Win32/Shortcut/Shortcut.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32/TieRegistry/.packlist b/Master/tlpkg/tlperl/lib/auto/Win32/TieRegistry/.packlist
deleted file mode 100644
index 090c67dccf3..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Win32/TieRegistry/.packlist
+++ /dev/null
@@ -1,2 +0,0 @@
-C:\tlperl\site\lib\Tie\Registry.pm
-C:\tlperl\site\lib\Win32\TieRegistry.pm
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32/Win32.dll b/Master/tlpkg/tlperl/lib/auto/Win32/Win32.dll
index bf79491a25b..64dc0f179a5 100755
--- a/Master/tlpkg/tlperl/lib/auto/Win32/Win32.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Win32/Win32.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32API/File/File.dll b/Master/tlpkg/tlperl/lib/auto/Win32API/File/File.dll
index 9c003ee552d..f598d551194 100755
--- a/Master/tlpkg/tlperl/lib/auto/Win32API/File/File.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Win32API/File/File.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32API/Registry/.packlist b/Master/tlpkg/tlperl/lib/auto/Win32API/Registry/.packlist
deleted file mode 100644
index f86d8016410..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Win32API/Registry/.packlist
+++ /dev/null
@@ -1,3 +0,0 @@
-C:\tlperl\site\lib\Win32API\Registry.pm
-C:\tlperl\site\lib\Win32API\Registry\cRegistry.pc
-C:\tlperl\site\lib\auto\Win32API\Registry\Registry.dll
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32API/Registry/Registry.dll b/Master/tlpkg/tlperl/lib/auto/Win32API/Registry/Registry.dll
deleted file mode 100755
index 23831aadfee..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/Win32API/Registry/Registry.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/arybase/arybase.dll b/Master/tlpkg/tlperl/lib/auto/arybase/arybase.dll
index 2d80b41b3bb..914415b4707 100755
--- a/Master/tlpkg/tlperl/lib/auto/arybase/arybase.dll
+++ b/Master/tlpkg/tlperl/lib/auto/arybase/arybase.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/attributes/attributes.dll b/Master/tlpkg/tlperl/lib/auto/attributes/attributes.dll
index fda325e94b4..2f15b234c92 100755
--- a/Master/tlpkg/tlperl/lib/auto/attributes/attributes.dll
+++ b/Master/tlpkg/tlperl/lib/auto/attributes/attributes.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/mro/mro.dll b/Master/tlpkg/tlperl/lib/auto/mro/mro.dll
index c1125aebda6..725306edc82 100755
--- a/Master/tlpkg/tlperl/lib/auto/mro/mro.dll
+++ b/Master/tlpkg/tlperl/lib/auto/mro/mro.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/re/re.dll b/Master/tlpkg/tlperl/lib/auto/re/re.dll
index 217a88415c3..6799e7cc79c 100755
--- a/Master/tlpkg/tlperl/lib/auto/re/re.dll
+++ b/Master/tlpkg/tlperl/lib/auto/re/re.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/sdbm/extralibs.ld b/Master/tlpkg/tlperl/lib/auto/sdbm/extralibs.ld
deleted file mode 100644
index 8b137891791..00000000000
--- a/Master/tlpkg/tlperl/lib/auto/sdbm/extralibs.ld
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/Master/tlpkg/tlperl/lib/auto/threads/shared/shared.dll b/Master/tlpkg/tlperl/lib/auto/threads/shared/shared.dll
index dab66e24075..8bb62acb34c 100755
--- a/Master/tlpkg/tlperl/lib/auto/threads/shared/shared.dll
+++ b/Master/tlpkg/tlperl/lib/auto/threads/shared/shared.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/threads/threads.dll b/Master/tlpkg/tlperl/lib/auto/threads/threads.dll
index 254357578bc..26bf993d92a 100755
--- a/Master/tlpkg/tlperl/lib/auto/threads/threads.dll
+++ b/Master/tlpkg/tlperl/lib/auto/threads/threads.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/autodie.pm b/Master/tlpkg/tlperl/lib/autodie.pm
index ed5a612efee..15d713498a9 100644
--- a/Master/tlpkg/tlperl/lib/autodie.pm
+++ b/Master/tlpkg/tlperl/lib/autodie.pm
@@ -3,14 +3,13 @@ use 5.008;
use strict;
use warnings;
-use Fatal ();
-our @ISA = qw(Fatal);
+use parent qw(Fatal);
our $VERSION;
# ABSTRACT: Replace functions with ones that succeed or die with lexical scope
BEGIN {
- our $VERSION = '2.23'; # VERSION: Generated by DZP::OurPkg::Version
+ our $VERSION = '2.26'; # VERSION: Generated by DZP::OurPkg::Version
}
use constant ERROR_WRONG_FATAL => q{
@@ -39,7 +38,7 @@ BEGIN {
# If we have the wrong Fatal, then we've probably loaded the system
# one, not our own. Complain, and give a useful hint. ;)
- if ($Fatal::VERSION ne $VERSION) {
+ if (defined($Fatal::VERSION) and defined($VERSION) and $Fatal::VERSION ne $VERSION) {
my $autodie_path = $INC{'autodie.pm'};
$autodie_path =~ s/autodie\.pm//;
@@ -88,6 +87,8 @@ autodie - Replace functions with ones that succeed or die with lexical scope
open(my $fh, "<", $filename); # Could fail silently!
no autodie; # disable all autodies
}
+
+ print "Hello World" or die $!; # autodie DOESN'T check print!
=head1 DESCRIPTION
@@ -169,7 +170,7 @@ Autodie uses a simple set of categories to group together similar
built-ins. Requesting a category type (starting with a colon) will
enable autodie for all built-ins beneath that category. For example,
requesting C<:file> will enable autodie for C<close>, C<fcntl>,
-C<fileno>, C<open> and C<sysopen>.
+C<open> and C<sysopen>.
The categories are currently:
@@ -190,7 +191,6 @@ The categories are currently:
chmod
chown
fcntl
- fileno
flock
ioctl
open
@@ -208,6 +208,7 @@ The categories are currently:
symlink
unlink
:ipc
+ kill
pipe
:msg
msgctl
@@ -330,6 +331,18 @@ Functions called in list context are assumed to have failed if they
return an empty list, or a list consisting only of a single undef
element.
+Some builtins (e.g. C<chdir> or C<truncate>) has a call signature that
+cannot completely be representated with a Perl prototype. This means
+that some valid Perl code will be invalid under autodie. As an example:
+
+ chdir(BAREWORD);
+
+Without autodie (and assuming BAREWORD is an open
+filehandle/dirhandle) this is a valid call to chdir. But under
+autodie, C<chdir> will behave like it had the prototype ";$" and thus
+BAREWORD will be a syntax error (under "use strict". Without strict, it
+will interpreted as a filename).
+
=head1 DIAGNOSTICS
=over 4
@@ -396,8 +409,9 @@ C<autodie> with block eval is considered good practice.
=head2 REPORTING BUGS
-Please report bugs via the CPAN Request Tracker at
-L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie>.
+Please report bugs via the GitHub Issue Tracker at
+L<https://github.com/pjf/autodie/issues> or via the CPAN Request
+Tracker at L<https://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie>.
=head1 FEEDBACK
diff --git a/Master/tlpkg/tlperl/lib/autodie/Scope/Guard.pm b/Master/tlpkg/tlperl/lib/autodie/Scope/Guard.pm
new file mode 100644
index 00000000000..db38e36facd
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/autodie/Scope/Guard.pm
@@ -0,0 +1,65 @@
+package autodie::Scope::Guard;
+
+use strict;
+use warnings;
+
+# ABSTRACT: Wrapper class for calling subs at end of scope
+our $VERSION = '2.26'; # VERSION
+
+# This code schedules the cleanup of subroutines at the end of
+# scope. It's directly inspired by chocolateboy's excellent
+# Scope::Guard module.
+
+sub new {
+ my ($class, $handler) = @_;
+ return bless($handler, $class);
+}
+
+sub DESTROY {
+ my ($self) = @_;
+
+ $self->();
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+autodie::Scope::Guard - Wrapper class for calling subs at end of scope
+
+=head1 SYNOPSIS
+
+ use autodie::Scope::Guard;
+ $^H{'my-key'} = autodie::Scope::Guard->new(sub {
+ print "Hallo world\n";
+ });
+
+=head1 DESCRIPTION
+
+This class is used to bless perl subs so that they are invoked when
+they are destroyed. This is mostly useful for ensuring the code is
+invoked at end of scope. This module is not a part of autodie's
+public API.
+
+This module is directly inspired by chocolateboy's excellent
+Scope::Guard module.
+
+=head2 Methods
+
+=head3 new
+
+ my $hook = autodie::Scope::Guard->new(sub {});
+
+Creates a new C<autodie::Scope::Guard>, which will invoke the given
+sub once it goes out of scope (i.e. its DESTROY handler is called).
+
+=head1 AUTHOR
+
+Copyright 2008-2009, Paul Fenwick E<lt>pjf@perltraining.com.auE<gt>
+
+=head1 LICENSE
+
+This module is free software. You may distribute it under the
+same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/autodie/Scope/GuardStack.pm b/Master/tlpkg/tlperl/lib/autodie/Scope/GuardStack.pm
new file mode 100644
index 00000000000..75300ffdcde
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/autodie/Scope/GuardStack.pm
@@ -0,0 +1,127 @@
+package autodie::Scope::GuardStack;
+
+use strict;
+use warnings;
+
+use autodie::Scope::Guard;
+
+# ABSTRACT: Hook stack for managing scopes via %^H
+our $VERSION = '2.26'; # VERSION
+
+my $H_KEY_STEM = __PACKAGE__ . '/guard';
+my $COUNTER = 0;
+
+# This code schedules the cleanup of subroutines at the end of
+# scope. It's directly inspired by chocolateboy's excellent
+# Scope::Guard module.
+
+sub new {
+ my ($class) = @_;
+
+ return bless([], $class);
+}
+
+sub push_hook {
+ my ($self, $hook) = @_;
+ my $h_key = $H_KEY_STEM . ($COUNTER++);
+ my $size = @{$self};
+ $^H{$h_key} = autodie::Scope::Guard->new(sub {
+ # Pop the stack until we reach the right size
+ # - this may seem weird, but it is to avoid relying
+ # on "destruction order" of keys in %^H.
+ #
+ # Example:
+ # {
+ # use autodie; # hook 1
+ # no autodie; # hook 2
+ # use autodie; # hook 3
+ # }
+ #
+ # Here we want call hook 3, then hook 2 and finally hook 1.
+ # Any other order could have undesired consequences.
+ #
+ # Suppose hook 2 is destroyed first, it will pop hook 3 and
+ # then hook 2. hook 3 will then be destroyed, but do nothing
+ # since its "frame" was already popped and finally hook 1
+ # will be popped and take its own frame with it.
+ #
+ # We need to check that $self still exists since things can get weird
+ # during global destruction.
+ $self->_pop_hook while $self && @{$self} > $size;
+ });
+ push(@{$self}, [$hook, $h_key]);
+ return;
+}
+
+sub _pop_hook {
+ my ($self) = @_;
+ my ($hook, $key) = @{ pop(@{$self}) };
+ my $ref = delete($^H{$key});
+ $hook->();
+ return;
+}
+
+sub DESTROY {
+ my ($self) = @_;
+
+ # To be honest, I suspect @{$self} will always be empty here due
+ # to the subs in %^H having references to the stack (which would
+ # keep the stack alive until those have been destroyed). Anyhow,
+ # it never hurt to be careful.
+ $self->_pop_hook while @{$self};
+ return;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+autodie::Scope::GuardStack - Hook stack for managing scopes via %^H
+
+=head1 SYNOPSIS
+
+ use autodie::Scope::GuardStack;
+ my $stack = autodie::Scope::GuardStack->new
+ $^H{'my-key'} = $stack;
+
+ $stack->push_hook(sub {});
+
+=head1 DESCRIPTION
+
+This class is a stack of hooks to be called in the right order as
+scopes go away. The stack is only useful when inserted into C<%^H>
+and will pop hooks as their "scope" is popped. This is useful for
+uninstalling or reinstalling subs in a namespace as a pragma goes
+out of scope.
+
+Due to how C<%^H> works, this class is only useful during the
+compilation phase of a perl module and relies on the internals of how
+perl handles references in C<%^H>. This module is not a part of
+autodie's public API.
+
+=head2 Methods
+
+=head3 new
+
+ my $stack = autodie::Scope::GuardStack->new;
+
+Creates a new C<autodie::Scope::GuardStack>. The stack is initially
+empty and must be inserted into C<%^H> by the creator.
+
+=head3 push_hook
+
+ $stack->push_hook(sub {});
+
+Add a sub to the stack. The sub will be called once the current
+compile-time "scope" is left. Multiple hooks can be added per scope
+
+=head1 AUTHOR
+
+Copyright 2013, Niels Thykier E<lt>niels@thykier.netE<gt>
+
+=head1 LICENSE
+
+This module is free software. You may distribute it under the
+same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/autodie/ScopeUtil.pm b/Master/tlpkg/tlperl/lib/autodie/ScopeUtil.pm
new file mode 100644
index 00000000000..2029209abf7
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/autodie/ScopeUtil.pm
@@ -0,0 +1,80 @@
+package autodie::ScopeUtil;
+
+use strict;
+use warnings;
+
+# Docs say that perl 5.8.3 has Exporter 5.57 and autodie requires
+# 5.8.4, so this should "just work".
+use Exporter 5.57 qw(import);
+
+use autodie::Scope::GuardStack;
+
+our @EXPORT_OK = qw(on_end_of_compile_scope);
+
+# ABSTRACT: Utilities for managing %^H scopes
+our $VERSION = '2.26'; # VERSION
+
+# docs says we should pick __PACKAGE__ /<whatever>
+my $H_STACK_KEY = __PACKAGE__ . '/stack';
+
+sub on_end_of_compile_scope {
+ my ($hook) = @_;
+
+ # Dark magic to have autodie work under 5.8
+ # Copied from namespace::clean, that copied it from
+ # autobox, that found it on an ancient scroll written
+ # in blood.
+
+ # This magic bit causes %^H to be lexically scoped.
+ $^H |= 0x020000;
+
+ my $stack = $^H{$H_STACK_KEY};
+ if (not defined($stack)) {
+ $stack = autodie::Scope::GuardStack->new;
+ $^H{$H_STACK_KEY} = $stack;
+ }
+
+ $stack->push_hook($hook);
+ return;
+}
+
+1;
+
+=head1 NAME
+
+autodie::ScopeUtil - Utilities for managing %^H scopes
+
+=head1 SYNOPSIS
+
+ use autodie::ScopeUtil qw(on_end_of_compile_scope);
+ on_end_of_compile_scope(sub { print "Hallo world\n"; });
+
+=head1 DESCRIPTION
+
+Utilities for abstracting away the underlying magic of (ab)using
+C<%^H> to call subs at the end of a (compile-time) scopes.
+
+Due to how C<%^H> works, these utilities are only useful during the
+compilation phase of a perl module and relies on the internals of how
+perl handles references in C<%^H>. This module is not a part of
+autodie's public API.
+
+=head2 Methods
+
+=head3 on_end_of_compile_scope
+
+ on_end_of_compile_scope(sub { print "Hallo world\n"; });
+
+Will invoke a sub at the end of a (compile-time) scope. The sub is
+called once with no arguments. Can be called multiple times (even in
+the same "compile-time" scope) to install multiple subs. Subs are
+called in a "first-in-last-out"-order (FILO or "stack"-order).
+
+=head1 AUTHOR
+
+Copyright 2013, Niels Thykier E<lt>niels@thykier.netE<gt>
+
+=head1 LICENSE
+
+This module is free software. You may distribute it under the
+same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/autodie/exception.pm b/Master/tlpkg/tlperl/lib/autodie/exception.pm
index 00818605762..15d09146d8d 100644
--- a/Master/tlpkg/tlperl/lib/autodie/exception.pm
+++ b/Master/tlpkg/tlperl/lib/autodie/exception.pm
@@ -4,19 +4,18 @@ use strict;
use warnings;
use Carp qw(croak);
-our $VERSION = '2.23'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.26'; # VERSION: Generated by DZP::OurPkg:Version
# ABSTRACT: Exceptions from autodying functions.
our $DEBUG = 0;
use overload
- q{""} => "stringify"
+ q{""} => "stringify",
+ # Overload smart-match only if we're using 5.10 or up
+ ($] >= 5.010 ? ('~~' => "matches") : ()),
+ fallback => 1
;
-# Overload smart-match only if we're using 5.10
-
-use if ($] >= 5.010), overload => '~~' => "matches";
-
my $PACKAGE = __PACKAGE__; # Useful to have a scalar for hash keys.
=head1 NAME
@@ -286,10 +285,13 @@ work closely with the C<autodie::exception> model.
# get used in most programs.
my %formatter_of = (
- 'CORE::close' => \&_format_close,
- 'CORE::open' => \&_format_open,
- 'CORE::dbmopen' => \&_format_dbmopen,
- 'CORE::flock' => \&_format_flock,
+ 'CORE::close' => \&_format_close,
+ 'CORE::open' => \&_format_open,
+ 'CORE::dbmopen' => \&_format_dbmopen,
+ 'CORE::flock' => \&_format_flock,
+ 'CORE::read' => \&_format_readwrite,
+ 'CORE::sysread' => \&_format_readwrite,
+ 'CORE::syswrite' => \&_format_readwrite,
);
# TODO: Our tests only check LOCK_EX | LOCK_NB is properly
@@ -391,6 +393,41 @@ sub _format_close {
}
+# Default formatter for CORE::read, CORE::sysread and CORE::syswrite
+#
+# Similar to default formatter with the buffer filtered out as it
+# may contain binary data.
+sub _format_readwrite {
+ my ($this) = @_;
+ my $call = $this->function;
+ local $! = $this->errno;
+
+ # Trim package name off dying sub for error messages.
+ $call =~ s/.*:://;
+
+ # These subs receive the following arguments (in order):
+ #
+ # * FILEHANDLE
+ # * SCALAR (buffer, we do not want to write this)
+ # * LENGTH (optional for syswrite)
+ # * OFFSET (optional for all)
+ my (@args) = @{$this->args};
+ my $arg_name = $args[1];
+ if (defined($arg_name)) {
+ if (ref($arg_name)) {
+ my $name = blessed($arg_name) || ref($arg_name);
+ $arg_name = "<${name}>";
+ } else {
+ $arg_name = '<BUFFER>';
+ }
+ } else {
+ $arg_name = '<UNDEF>';
+ }
+ $args[1] = $arg_name;
+
+ return "Can't $call(" . join(q{, }, @args) . "): $!";
+}
+
# Default formatter for CORE::open
use constant _FORMAT_OPEN => "Can't open '%s' for %s: '%s'";
@@ -540,6 +577,7 @@ sub stringify {
my ($this) = @_;
my $call = $this->function;
+ my $msg;
if ($DEBUG) {
my $dying_pkg = $this->package;
@@ -550,11 +588,14 @@ sub stringify {
# TODO - This isn't using inheritance. Should it?
if ( my $sub = $formatter_of{$call} ) {
- return $sub->($this) . $this->add_file_and_line;
+ $msg = $sub->($this) . $this->add_file_and_line;
+ } else {
+ $msg = $this->format_default . $this->add_file_and_line;
}
+ $msg .= $this->{$PACKAGE}{_stack_trace}
+ if $Carp::Verbose;
- return $this->format_default . $this->add_file_and_line;
-
+ return $msg;
}
=head3 format_default
@@ -722,7 +763,24 @@ sub _init {
$this->{$PACKAGE}{file} = $file;
$this->{$PACKAGE}{line} = $line;
$this->{$PACKAGE}{caller} = $sub;
- $this->{$PACKAGE}{package} = $package;
+
+ # Tranks to %Carp::CarpInternal all Fatal, autodie and
+ # autodie::exception stack frames are filtered already, but our
+ # nameless wrapper is still present, so strip that.
+
+ my $trace = Carp::longmess();
+ $trace =~ s/^\s*at \(eval[^\n]+\n//;
+
+ # And if we see an __ANON__, then we'll replace that with the actual
+ # name of our autodying function.
+
+ my $short_func = $args{function};
+ $short_func =~ s/^CORE:://;
+ $trace =~ s/(\s*[\w:]+)__ANON__/$1$short_func/;
+
+ # And now we just fill in all our attributes.
+
+ $this->{$PACKAGE}{_stack_trace} = $trace;
$this->{$PACKAGE}{errno} = $args{errno} || 0;
diff --git a/Master/tlpkg/tlperl/lib/autodie/exception/system.pm b/Master/tlpkg/tlperl/lib/autodie/exception/system.pm
index 2d734fe7f25..d63a60714ec 100644
--- a/Master/tlpkg/tlperl/lib/autodie/exception/system.pm
+++ b/Master/tlpkg/tlperl/lib/autodie/exception/system.pm
@@ -2,10 +2,10 @@ package autodie::exception::system;
use 5.008;
use strict;
use warnings;
-use base 'autodie::exception';
+use parent 'autodie::exception';
use Carp qw(croak);
-our $VERSION = '2.23'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.26'; # VERSION: Generated by DZP::OurPkg:Version
# ABSTRACT: Exceptions from autodying system().
diff --git a/Master/tlpkg/tlperl/lib/autodie/hints.pm b/Master/tlpkg/tlperl/lib/autodie/hints.pm
index 17c898a9008..3c9d679928a 100644
--- a/Master/tlpkg/tlperl/lib/autodie/hints.pm
+++ b/Master/tlpkg/tlperl/lib/autodie/hints.pm
@@ -5,7 +5,7 @@ use warnings;
use constant PERL58 => ( $] < 5.009 );
-our $VERSION = '2.23'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.26'; # VERSION: Generated by DZP::OurPkg:Version
# ABSTRACT: Provide hints about user subroutines to autodie
@@ -347,8 +347,6 @@ use constant DEFAULT_HINTS => {
use constant HINTS_PROVIDER => 'autodie::hints::provider';
-use base qw(Exporter);
-
our $DEBUG = 0;
# Only ( undef ) is a strange but possible situation for very
@@ -597,6 +595,6 @@ same terms as Perl itself.
L<autodie>, L<Class::DOES>
-=for Pod::Coverage get_hints_for load_hints normalise_hints sub_fullname
+=for Pod::Coverage get_hints_for load_hints normalise_hints sub_fullname get_code_info
=cut
diff --git a/Master/tlpkg/tlperl/lib/autodie/skip.pm b/Master/tlpkg/tlperl/lib/autodie/skip.pm
index af40662810a..1462acd3321 100644
--- a/Master/tlpkg/tlperl/lib/autodie/skip.pm
+++ b/Master/tlpkg/tlperl/lib/autodie/skip.pm
@@ -2,7 +2,7 @@ package autodie::skip;
use strict;
use warnings;
-our $VERSION = '2.23'; # VERSION
+our $VERSION = '2.26'; # VERSION
# This package exists purely so people can inherit from it,
# which isn't at all how roles are supposed to work, but it's
@@ -51,4 +51,6 @@ terms as Perl itself.
L<autodie>, L<autodie::exception>
+=for Pod::Coverage DOES
+
=cut
diff --git a/Master/tlpkg/tlperl/lib/bigint.pm b/Master/tlpkg/tlperl/lib/bigint.pm
index 993ea9112f0..3bcf15aa32f 100644
--- a/Master/tlpkg/tlperl/lib/bigint.pm
+++ b/Master/tlpkg/tlperl/lib/bigint.pm
@@ -1,7 +1,7 @@
package bigint;
use 5.006;
-$VERSION = '0.36';
+$VERSION = '0.39';
use Exporter;
@ISA = qw( Exporter );
@EXPORT_OK = qw( PI e bpi bexp hex oct );
@@ -248,8 +248,7 @@ sub import
# see if we can find Math::BigInt::Lite
if (!defined $a && !defined $p) # rounding won't work to well
{
- eval 'require Math::BigInt::Lite;';
- if ($@ eq '')
+ if (eval { require Math::BigInt::Lite; 1 })
{
@import = ( ); # :constant in Lite, not MBI
Math::BigInt::Lite->import( ':constant' );
@@ -608,6 +607,27 @@ This method only works on Perl v5.9.4 or later.
=over 2
+=item Operator vs literal overloading
+
+C<bigint> works by overloading handling of integer and floating point
+literals, converting them to L<Math::BigInt> objects.
+
+This means that arithmetic involving only string values or string
+literals will be performed using Perl's built-in operators.
+
+For example:
+
+ use bignum;
+ my $x = "900000000000000009";
+ my $y = "900000000000000007";
+ print $x - $y;
+
+will output C<0> on default 32-bit builds, since C<bigint> never sees
+the string literals. To ensure the expression is all treated as
+C<Math::BigInt> objects, use a literal number in the expression:
+
+ print +(0+$x) - $y;
+
=item ranges
Perl does not allow overloading of ranges, so you can neither safely use
diff --git a/Master/tlpkg/tlperl/lib/bignum.pm b/Master/tlpkg/tlperl/lib/bignum.pm
index 40aedceca71..67b9ede8351 100644
--- a/Master/tlpkg/tlperl/lib/bignum.pm
+++ b/Master/tlpkg/tlperl/lib/bignum.pm
@@ -1,7 +1,7 @@
package bignum;
use 5.006;
-$VERSION = '0.37';
+$VERSION = '0.39';
use Exporter;
@ISA = qw( bigint );
@EXPORT_OK = qw( PI e bexp bpi hex oct );
@@ -155,8 +155,7 @@ sub import
# see if we can find Math::BigInt::Lite
if (!defined $a && !defined $p) # rounding won't work to well
{
- eval 'require Math::BigInt::Lite;';
- if ($@ eq '')
+ if (eval { require Math::BigInt::Lite; 1 })
{
@import = ( ); # :constant in Lite, not MBI
Math::BigInt::Lite->import( ':constant' );
@@ -573,6 +572,29 @@ minus infinity. You will get '+inf' when dividing a positive number by 0, and
=over 2
+=item Operator vs literal overloading
+
+C<bignum> works by overloading handling of integer and floating point
+literals, converting them to L<Math::BigInt> or L<Math::BigFloat>
+objects.
+
+This means that arithmetic involving only string values or string
+literals will be performed using Perl's built-in operators.
+
+For example:
+
+ use bignum;
+ my $x = "900000000000000009";
+ my $y = "900000000000000007";
+ print $x - $y;
+
+will output C<0> on default 32-bit builds, since C<bigrat> never sees
+the string literals. To ensure the expression is all treated as
+C<Math::BigInt> or C<BigFloat> objects, use a literal number in the
+expression:
+
+ print +(0+$x) - $y;
+
=item in_effect()
This method only works on Perl v5.9.4 or later.
diff --git a/Master/tlpkg/tlperl/lib/bigrat.pm b/Master/tlpkg/tlperl/lib/bigrat.pm
index adbeff4dba8..b02831bc4e1 100644
--- a/Master/tlpkg/tlperl/lib/bigrat.pm
+++ b/Master/tlpkg/tlperl/lib/bigrat.pm
@@ -1,7 +1,7 @@
package bigrat;
use 5.006;
-$VERSION = '0.36';
+$VERSION = '0.39';
require Exporter;
@ISA = qw( bigint );
@EXPORT_OK = qw( PI e bpi bexp hex oct );
@@ -148,8 +148,7 @@ sub import
# see if we can find Math::BigInt::Lite
if (!defined $a && !defined $p) # rounding won't work to well
{
- eval 'require Math::BigInt::Lite;';
- if ($@ eq '')
+ if (eval { require Math::BigInt::Lite; 1 })
{
@import = ( ); # :constant in Lite, not MBI
Math::BigInt::Lite->import( ':constant' );
@@ -478,6 +477,29 @@ This prints out the name and version of all modules used and then exits.
=over 2
+=item Operator vs literal overloading
+
+C<bigrat> works by overloading handling of integer and floating point
+literals, converting them to L<Math::BigInt> or L<Math::BigRat>
+objects.
+
+This means that arithmetic involving only string values or string
+literals will be performed using Perl's built-in operators.
+
+For example:
+
+ use bigrat;
+ my $x = "900000000000000009";
+ my $y = "900000000000000007";
+ print $x - $y;
+
+will output C<0> on default 32-bit builds, since C<bigrat> never sees
+the string literals. To ensure the expression is all treated as
+C<Math::BigInt> or C<Math::BigRat> objects, use a literal number in
+the expression:
+
+ print +(0+$x) - $y;
+
=item in_effect()
This method only works on Perl v5.9.4 or later.
diff --git a/Master/tlpkg/tlperl/lib/charnames.pm b/Master/tlpkg/tlperl/lib/charnames.pm
index 97cafed73ea..2efe3d58b27 100644
--- a/Master/tlpkg/tlperl/lib/charnames.pm
+++ b/Master/tlpkg/tlperl/lib/charnames.pm
@@ -1,7 +1,7 @@
package charnames;
use strict;
use warnings;
-our $VERSION = '1.40';
+our $VERSION = '1.43';
use unicore::Name; # mktables-generated algorithmically-defined names
use _charnames (); # The submodule for this where most of the work gets done
@@ -49,7 +49,7 @@ sub vianame
# can't change it because of backward compatibility. New code can use
# string_vianame() instead.
my $ord = CORE::hex $1;
- return chr $ord if $ord <= 255 || ! ((caller 0)[8] & $bytes::hint_bits);
+ return pack("U", $ord) if $ord <= 255 || ! ((caller 0)[8] & $bytes::hint_bits);
_charnames::carp _charnames::not_legal_use_bytes_msg($arg, chr $ord);
return;
}
@@ -74,7 +74,7 @@ sub string_vianame {
if ($arg =~ /^U\+([0-9a-fA-F]+)$/) {
my $ord = CORE::hex $1;
- return chr $ord if $ord <= 255 || ! ((caller 0)[8] & $bytes::hint_bits);
+ return pack("U", $ord) if $ord <= 255 || ! ((caller 0)[8] & $bytes::hint_bits);
_charnames::carp _charnames::not_legal_use_bytes_msg($arg, chr $ord);
return;
@@ -280,7 +280,9 @@ Aliases must begin with a character that is alphabetic. After that, each may
contain any combination of word (C<\w>) characters, SPACE (U+0020),
HYPHEN-MINUS (U+002D), LEFT PARENTHESIS (U+0028), RIGHT PARENTHESIS (U+0029),
and NO-BREAK SPACE (U+00A0). These last three should never have been allowed
-in names, and are retained for backwards compatibility only; they may be
+in names, and are retained for backwards compatibility only; NO-BREAK SPACE IS
+currently deprecated and scheduled for removal in Perl v5.26; the other two
+may also be
deprecated and removed in future releases of Perl, so don't use them for new
names. (More precisely, the first character of a name you specify must be
something that matches all of C<\p{ID_Start}>, C<\p{Alphabetic}>, and
@@ -295,7 +297,7 @@ matched name) or to a
numeric code point (ordinal). The latter is useful for assigning names
to code points in Unicode private use areas such as U+E800 through
U+F8FF.
-A numeric code point must be a non-negative integer or a string beginning
+A numeric code point must be a non-negative integer, or a string beginning
with C<"U+"> or C<"0x"> with the remainder considered to be a
hexadecimal integer. A literal numeric constant must be unsigned; it
will be interpreted as hex if it has a leading zero or contains
diff --git a/Master/tlpkg/tlperl/lib/constant.pm b/Master/tlpkg/tlperl/lib/constant.pm
index 5d0d547ae37..e4b8fd2d06f 100644
--- a/Master/tlpkg/tlperl/lib/constant.pm
+++ b/Master/tlpkg/tlperl/lib/constant.pm
@@ -3,8 +3,8 @@ use 5.008;
use strict;
use warnings::register;
-use vars qw($VERSION %declared);
-$VERSION = '1.31';
+our $VERSION = '1.33';
+our %declared;
#=======================================================================
@@ -24,7 +24,8 @@ my $boolean = qr/^[01]?\z/;
BEGIN {
# We'd like to do use constant _CAN_PCS => $] > 5.009002
# but that's a bit tricky before we load the constant module :-)
- # By doing this, we save 1 run time check for *every* call to import.
+ # By doing this, we save several run time checks for *every* call
+ # to import.
my $const = $] > 5.009002;
my $downgrade = $] < 5.015004; # && $] >= 5.008
my $constarray = exists &_make_const;
@@ -56,13 +57,13 @@ sub import {
return unless @_; # Ignore 'use constant;'
my $constants;
my $multiple = ref $_[0];
- my $pkg = caller;
+ my $caller = caller;
my $flush_mro;
my $symtab;
if (_CAN_PCS) {
no strict 'refs';
- $symtab = \%{$pkg . '::'};
+ $symtab = \%{$caller . '::'};
};
if ( $multiple ) {
@@ -80,6 +81,20 @@ sub import {
}
foreach my $name ( keys %$constants ) {
+ my $pkg;
+ my $symtab = $symtab;
+ my $orig_name = $name;
+ if ($name =~ s/(.*)(?:::|')(?=.)//s) {
+ $pkg = $1;
+ if (_CAN_PCS && $pkg ne $caller) {
+ no strict 'refs';
+ $symtab = \%{$pkg . '::'};
+ }
+ }
+ else {
+ $pkg = $caller;
+ }
+
# Normal constant name
if ($name =~ $normal_constant_name and !$forbidden{$name}) {
# Everything is okay
@@ -127,7 +142,7 @@ sub import {
my $full_name = "${pkg}::$name";
$declared{$full_name}++;
if ($multiple || @_ == 1) {
- my $scalar = $multiple ? $constants->{$name} : $_[0];
+ my $scalar = $multiple ? $constants->{$orig_name} : $_[0];
if (_DOWNGRADE) { # for 5.8 to 5.14
# Work around perl bug #31991: Sub names (actually glob
@@ -147,9 +162,9 @@ sub import {
# The check in Perl_ck_rvconst knows that inlinable
# constants from cv_const_sv are read only. So we have to:
Internals::SvREADONLY($scalar, 1);
- if ($symtab && !exists $symtab->{$name}) {
+ if (!exists $symtab->{$name}) {
$symtab->{$name} = \$scalar;
- ++$flush_mro;
+ ++$flush_mro->{$pkg};
}
else {
local $constant::{_dummy} = \$scalar;
@@ -163,9 +178,9 @@ sub import {
if (_CAN_PCS_FOR_ARRAY) {
_make_const($list[$_]) for 0..$#list;
_make_const(@list);
- if ($symtab && !exists $symtab->{$name}) {
+ if (!exists $symtab->{$name}) {
$symtab->{$name} = \@list;
- $flush_mro++;
+ $flush_mro->{$pkg}++;
}
else {
local $constant::{_dummy} = \@list;
@@ -179,7 +194,9 @@ sub import {
}
}
# Flush the cache exactly once if we make any direct symbol table changes.
- mro::method_changed_in($pkg) if _CAN_PCS && $flush_mro;
+ if (_CAN_PCS && $flush_mro) {
+ mro::method_changed_in($_) for keys %$flush_mro;
+ }
}
1;
@@ -252,10 +269,6 @@ point to data which may be changed, as this code shows.
ARRAY->[1] = " be changed";
print ARRAY->[1];
-Dereferencing constant references incorrectly (such as using an array
-subscript on a constant hash reference, or vice versa) will be trapped at
-compile time.
-
Constants belong to the package they are defined in. To refer to a
constant defined in another package, specify the full package name, as
in C<Some::Package::CONSTANT>. Constants may be exported by modules,
@@ -264,6 +277,13 @@ as C<< Some::Package->CONSTANT >> or as C<< $obj->CONSTANT >> where
C<$obj> is an instance of C<Some::Package>. Subclasses may define
their own constants to override those in their base class.
+As of version 1.32 of this module, constants can be defined in packages
+other than the caller, by including the package name in the name of the
+constant:
+
+ use constant "OtherPackage::FWIBBLE" => 7865;
+ constant->import("Other::FWOBBLE",$value); # dynamically at run time
+
The use of all caps for constant names is merely a convention,
although it is recommended in order to make constants stand out
and to help avoid collisions with other barewords, keywords, and
diff --git a/Master/tlpkg/tlperl/lib/dumpvar.pl b/Master/tlpkg/tlperl/lib/dumpvar.pl
index 91153ea5ad8..b2f3798c43c 100644
--- a/Master/tlpkg/tlperl/lib/dumpvar.pl
+++ b/Master/tlpkg/tlperl/lib/dumpvar.pl
@@ -14,6 +14,8 @@ package dumpvar;
$winsize = 80 unless defined $winsize;
+sub ASCII { return ord('A') == 65; }
+
# Defaults
@@ -25,6 +27,9 @@ $subdump = 1;
$dumpReused = 0 unless defined $dumpReused;
$bareStringify = 1 unless defined $bareStringify;
+my $APC = chr utf8::unicode_to_native(0x9F);
+my $backslash_c_question = (ASCII) ? '\177' : $APC;
+
sub main::dumpValue {
local %address;
local $^W=0;
@@ -41,12 +46,8 @@ sub unctrl {
local($v) ;
return \$_ if ref \$_ eq "GLOB";
- if (ord('A') == 193) { # EBCDIC.
- # EBCDIC has no concept of "\cA" or "A" being related
- # to each other by a linear/boolean mapping.
- } else {
- s/([\001-\037\177])/'^'.pack('c',ord($1)^64)/eg;
- }
+ s/([\000-\037])/ '^' . chr(utf8::unicode_to_native(ord($1)^64))/eg;
+ s/ $backslash_c_question /^?/xg;
return $_;
}
}
@@ -54,7 +55,7 @@ sub unctrl {
sub uniescape {
join("",
map { $_ > 255 ? sprintf("\\x{%04X}", $_) : chr($_) }
- unpack("U*", $_[0]));
+ unpack("W*", $_[0]));
}
sub stringify {
@@ -79,39 +80,27 @@ sub _stringify {
and %overload:: and defined &{'overload::StrVal'};
if ($tick eq 'auto') {
- if (ord('A') == 193) {
- if (/[\000-\011]/ or /[\013-\024\31-\037\177]/) {
- $tick = '"';
- } else {
- $tick = "'";
- }
- } else {
- if (/[\000-\011\013-\037\177]/) {
- $tick = '"';
- } else {
- $tick = "'";
- }
- }
+ if (/[^[:^cntrl:]\n]/u) { # All controls but \n get '"'
+ $tick = '"';
+ } else {
+ $tick = "'";
+ }
}
if ($tick eq "'") {
s/([\'\\])/\\$1/g;
} elsif ($unctrl eq 'unctrl') {
s/([\"\\])/\\$1/g ;
- s/([\000-\037\177])/'^'.pack('c',ord($1)^64)/eg;
+ $_ = &unctrl($_);
# uniescape?
- s/([\200-\377])/'\\0x'.sprintf('%2X',ord($1))/eg
+ s/([[:^ascii:]])/'\\0x'.sprintf('%2X',ord($1))/eg
if $quoteHighBit;
} elsif ($unctrl eq 'quote') {
s/([\"\\\$\@])/\\$1/g if $tick eq '"';
- s/\033/\\e/g;
- if (ord('A') == 193) { # EBCDIC.
- s/([\000-\037\177])/'\\c'.chr(193)/eg; # Unfinished.
- } else {
- s/([\000-\037\177])/'\\c'._escaped_ord($1)/eg;
- }
+ s/\e/\\e/g;
+ s/([\000-\037$backslash_c_question])/'\\c'._escaped_ord($1)/eg;
}
$_ = uniescape($_);
- s/([\200-\377])/'\\'.sprintf('%3o',ord($1))/eg if $quoteHighBit;
+ s/([[:^ascii:]])/'\\'.sprintf('%3o',ord($1))/eg if $quoteHighBit;
return ($noticks || /^\d+(\.\d*)?\Z/)
? $_
: $tick . $_ . $tick;
@@ -121,8 +110,13 @@ sub _stringify {
# Ensure a resulting \ is escaped to be \\
sub _escaped_ord {
my $chr = shift;
- $chr = chr(ord($chr)^64);
- $chr =~ s{\\}{\\\\}g;
+ if ($chr eq $backslash_c_question) {
+ $chr = '?';
+ }
+ else {
+ $chr = chr(utf8::unicode_to_native(ord($chr)^64));
+ $chr =~ s{\\}{\\\\}g;
+ }
return $chr;
}
diff --git a/Master/tlpkg/tlperl/lib/encoding.pm b/Master/tlpkg/tlperl/lib/encoding.pm
index c0bff08873d..fde410dc890 100644
--- a/Master/tlpkg/tlperl/lib/encoding.pm
+++ b/Master/tlpkg/tlperl/lib/encoding.pm
@@ -1,6 +1,6 @@
-# $Id: encoding.pm,v 2.12 2013/04/26 18:30:46 dankogai Exp $
+# $Id: encoding.pm,v 2.14 2015/03/14 02:44:39 dankogai Exp dankogai $
package encoding;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.12 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.14 $ =~ /(\d+)/g;
use Encode;
use strict;
@@ -131,11 +131,23 @@ sub import {
$name = $enc->name; # canonize
unless ( $arg{Filter} ) {
DEBUG and warn "_exception($name) = ", _exception($name);
- _exception($name) or ${^ENCODING} = $enc;
+ if (! _exception($name)) {
+ if (!$^V || $^V lt v5.21.7) {
+ ${^ENCODING} = $enc;
+ }
+ else {
+ # Starting with 5.21.7, this pragma uses a shadow variable
+ # designed explicitly for it, ${^E_NCODING}, to enforce
+ # lexical scope; instead of ${^ENCODING}.
+ $^H{'encoding'} = 1;
+ ${^E_NCODING} = $enc;
+ }
+ }
$HAS_PERLIO or return 1;
}
else {
defined( ${^ENCODING} ) and undef ${^ENCODING};
+ undef ${^E_NCODING} if $^V && $^V ge v5.21.7;
# implicitly 'use utf8'
require utf8; # to fetch $utf8::hint_bits;
@@ -185,6 +197,7 @@ sub import {
sub unimport {
no warnings;
undef ${^ENCODING};
+ undef ${^E_NCODING} if $^V && $^V ge v5.21.7;
if ($HAS_PERLIO) {
binmode( STDIN, ":raw" );
binmode( STDOUT, ":raw" );
@@ -205,20 +218,12 @@ __END__
=head1 NAME
-encoding - allows you to write your script in non-ascii or non-utf8
+encoding - allows you to write your script in non-ASCII and non-UTF-8
=head1 WARNING
-This module is deprecated under perl 5.18. It uses a mechanism provided by
-perl that is deprecated under 5.18 and higher, and may be removed in a
-future version.
-
-The easiest and the best alternative is to write your script in UTF-8
-and declear:
-
- use utf8; # not use encoding ':utf8';
-
-See L<perluniintro> and L<utf8> for details.
+This module has been deprecated since perl v5.18. See L</DESCRIPTION> and
+L</BUGS>.
=head1 SYNOPSIS
@@ -235,68 +240,84 @@ See L<perluniintro> and L<utf8> for details.
# A simple euc-cn => utf-8 converter
use encoding "euc-cn", STDOUT => "utf8"; while(<>){print};
- # "no encoding;" supported (but not scoped!)
+ # "no encoding;" supported
no encoding;
# an alternate way, Filter
use encoding "euc-jp", Filter=>1;
# now you can use kanji identifiers -- in euc-jp!
- # switch on locale -
- # note that this probably means that unless you have a complete control
- # over the environments the application is ever going to be run, you should
- # NOT use the feature of encoding pragma allowing you to write your script
- # in any recognized encoding because changing locale settings will wreck
- # the script; you can of course still use the other features of the pragma.
+ # encode based on the current locale - specialized purposes only;
+ # fraught with danger!!
use encoding ':locale';
-=head1 ABSTRACT
+=head1 DESCRIPTION
-Let's start with a bit of history: Perl 5.6.0 introduced Unicode
-support. You could apply C<substr()> and regexes even to complex CJK
-characters -- so long as the script was written in UTF-8. But back
-then, text editors that supported UTF-8 were still rare and many users
-instead chose to write scripts in legacy encodings, giving up a whole
-new feature of Perl 5.6.
+This pragma is used to enable a Perl script to be written in encodings that
+aren't strictly ASCII nor UTF-8. It translates all or portions of the Perl
+program script from a given encoding into UTF-8, and changes the PerlIO layers
+of C<STDIN> and C<STDOUT> to the encoding specified.
-Rewind to the future: starting from perl 5.8.0 with the B<encoding>
-pragma, you can write your script in any encoding you like (so long
-as the C<Encode> module supports it) and still enjoy Unicode support.
-This pragma achieves that by doing the following:
+This pragma dates from the days when UTF-8-enabled editors were uncommon. But
+that was long ago, and the need for it is greatly diminished. That, coupled
+with the fact that it doesn't work with threads, along with other problems,
+(see L</BUGS>) have led to its being deprecated. It is planned to remove this
+pragma in a future Perl version. New code should be written in UTF-8, and the
+C<use utf8> pragma used instead (see L<perluniintro> and L<utf8> for details).
+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).
-=over
+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
+L</Prior to Perl v5.22>).
-=item *
+There are two basic modes of operation (plus turning if off):
-Internally converts all literals (C<q//,qq//,qr//,qw///, qx//>) from
-the encoding specified to utf8. In Perl 5.8.1 and later, literals in
-C<tr///> and C<DATA> pseudo-filehandle are also converted.
+=over 4
-=item *
+=item C<use encoding ['I<ENCNAME>'] ;>
-Changing PerlIO layers of C<STDIN> and C<STDOUT> to the encoding
- specified.
+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
+of ASCII (for the variable names and punctuation, I<etc>), but the literal
+data is in the specified encoding.
-=back
+I<ENCNAME> is optional. If omitted, the encoding specified in the environment
+variable L<C<PERL_ENCODING>|perlrun/PERL_ENCODING> is used. If this isn't
+set, or the resolved-to encoding is not known to C<L<Encode>>, the error
+C<Unknown encoding 'I<ENCNAME>'> will be thrown.
-=head2 Literal Conversions
+Starting in Perl v5.8.6 (C<Encode> version 2.0.1), I<ENCNAME> may be the
+name C<:locale>. This is for very specialized applications, and is documented
+in L</The C<:locale> sub-pragma> below.
-You can write code in EUC-JP as follows:
+The literals that are converted are C<q//, qq//, qr//, qw///, qx//>, and
+starting in v5.8.1, C<tr///>. Operations that do conversions include C<chr>,
+C<ord>, C<utf8::upgrade> (but not C<utf8::downgrade>), and C<chomp>.
+
+Also starting in v5.8.1, the C<DATA> pseudo-filehandle is translated from the
+encoding into UTF-8.
+
+For example, you can write code in EUC-JP as follows:
my $Rakuda = "\xF1\xD1\xF1\xCC"; # Camel in Kanji
#<-char-><-char-> # 4 octets
s/\bCamel\b/$Rakuda/;
And with C<use encoding "euc-jp"> in effect, it is the same thing as
-the code in UTF-8:
+that code in UTF-8:
my $Rakuda = "\x{99F1}\x{99DD}"; # two Unicode Characters
s/\bCamel\b/$Rakuda/;
-=head2 PerlIO layers for C<STD(IN|OUT)>
+See L</EXAMPLE> below for a more complete example.
-The B<encoding> pragma also modifies the filehandle layers of
-STDIN and STDOUT to the specified encoding. Therefore,
+Unless C<${^UNICODE}> (available starting in v5.8.2) exists and is non-zero, the
+PerlIO layers of C<STDIN> and C<STDOUT> are set to "C<:encoding(I<ENCNAME>)>".
+Therefore,
use encoding "euc-jp";
my $message = "Camel is the symbol of perl.\n";
@@ -304,183 +325,145 @@ STDIN and STDOUT to the specified encoding. Therefore,
$message =~ s/\bCamel\b/$Rakuda/;
print $message;
-Will print "\xF1\xD1\xF1\xCC is the symbol of perl.\n",
-not "\x{99F1}\x{99DD} is the symbol of perl.\n".
-
-You can override this by giving extra arguments; see below.
-
-=head2 Implicit upgrading for byte strings
-
-By default, if strings operating under byte semantics and strings
-with Unicode character data are concatenated, the new string will
-be created by decoding the byte strings as I<ISO 8859-1 (Latin-1)>.
-
-The B<encoding> pragma changes this to use the specified encoding
-instead. For example:
+will print
- use encoding 'utf8';
- my $string = chr(20000); # a Unicode string
- utf8::encode($string); # now it's a UTF-8 encoded byte string
- # concatenate with another Unicode string
- print length($string . chr(20000));
+ "\xF1\xD1\xF1\xCC is the symbol of perl.\n"
-Will print C<2>, because C<$string> is upgraded as UTF-8. Without
-C<use encoding 'utf8';>, it will print C<4> instead, since C<$string>
-is three octets when interpreted as Latin-1.
+not
-=head2 Side effects
+ "\x{99F1}\x{99DD} is the symbol of perl.\n"
-If the C<encoding> pragma is in scope then the lengths returned are
-calculated from the length of C<$/> in Unicode characters, which is not
-always the same as the length of C<$/> in the native encoding.
+You can override this by giving extra arguments; see below.
-This pragma affects utf8::upgrade, but not utf8::downgrade.
+Note that C<STDERR> WILL NOT be changed, regardless.
-=head1 FEATURES THAT REQUIRE 5.8.1
+Also note that non-STD file handles remain unaffected. Use C<use
+open> or C<binmode> to change the layers of those.
-Some of the features offered by this pragma requires perl 5.8.1. Most
-of these are done by Inaba Hiroto. Any other features and changes
-are good for 5.8.0.
+=item C<use encoding I<ENCNAME> Filter=E<gt>1;>
-=over
+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
+the encoding into UTF-8. This allows identifiers in the source to be in that
+encoding as well. (Problems may occur if the encoding is not a superset of
+ASCII; imagine all your semi-colons being translated into something
+different.) One can use this form to make
-=item "NON-EUC" doublebyte encodings
+ ${"\x{4eba}"}++
-Because perl needs to parse script before applying this pragma, such
-encodings as Shift_JIS and Big-5 that may contain '\' (BACKSLASH;
-\x5c) in the second byte fails because the second byte may
-accidentally escape the quoting character that follows. Perl 5.8.1
-or later fixes this problem.
+work. (This is equivalent to C<$I<human>++>, where I<human> is a single Han
+ideograph).
-=item tr//
+This effectively means that your source code behaves as if it were written in
+UTF-8 with C<'use utf8>' in effect. So even if your editor only supports
+Shift_JIS, for example, you can still try examples in Chapter 15 of
+C<Programming Perl, 3rd Ed.>.
-C<tr//> was overlooked by Perl 5 porters when they released perl 5.8.0
-See the section below for details.
+This option is significantly slower than the other one.
-=item DATA pseudo-filehandle
+=item C<no encoding;>
-Another feature that was overlooked was C<DATA>.
+Unsets the script encoding. The layers of C<STDIN>, C<STDOUT> are
+reset to "C<:raw>" (the default unprocessed raw stream of bytes).
=back
-=head1 USAGE
+=head1 OPTIONS
-=over 4
+=head2 Setting C<STDIN> and/or C<STDOUT> individually
-=item use encoding [I<ENCNAME>] ;
+The encodings of C<STDIN> and C<STDOUT> are individually settable by parameters to
+the pragma:
-Sets the script encoding to I<ENCNAME>. And unless ${^UNICODE}
-exists and non-zero, PerlIO layers of STDIN and STDOUT are set to
-":encoding(I<ENCNAME>)".
+ use encoding 'euc-tw', STDIN => 'greek' ...;
-Note that STDERR WILL NOT be changed.
+In this case, you cannot omit the first I<ENCNAME>. C<< STDIN => undef >>
+turns the I/O transcoding completely off for that filehandle.
-Also note that non-STD file handles remain unaffected. Use C<use
-open> or C<binmode> to change layers of those.
+When C<${^UNICODE}> (available starting in v5.8.2) exists and is non-zero,
+these options will be completely ignored. See L<perlvar/C<${^UNICODE}>> and
+L<"C<-C>" in perlrun|perlrun/-C [numberE<sol>list]> for details.
-If no encoding is specified, the environment variable L<PERL_ENCODING>
-is consulted. If no encoding can be found, the error C<Unknown encoding
-'I<ENCNAME>'> will be thrown.
+=head2 The C<:locale> sub-pragma
-=item use encoding I<ENCNAME> [ STDIN =E<gt> I<ENCNAME_IN> ...] ;
+Starting in v5.8.6, the encoding name may be C<:locale>. This means that the
+encoding is taken from the current locale, and not hard-coded by the pragma.
+Since a script really can only be encoded in exactly one encoding, this option
+is dangerous. It makes sense only if the script itself is written in ASCII,
+and all the possible locales that will be in use when the script is executed
+are supersets of ASCII. That means that the script itself doesn't get
+changed, but the I/O handles have the specified encoding added, and the
+operations like C<chr> and C<ord> use that encoding.
-You can also individually set encodings of STDIN and STDOUT via the
-C<< STDIN => I<ENCNAME> >> form. In this case, you cannot omit the
-first I<ENCNAME>. C<< STDIN => undef >> turns the IO transcoding
-completely off.
+The logic of finding which locale C<:locale> uses is as follows:
-When ${^UNICODE} exists and non-zero, these options will completely
-ignored. ${^UNICODE} is a variable introduced in perl 5.8.1. See
-L<perlrun> see L<perlvar/"${^UNICODE}"> and L<perlrun/"-C"> for
-details (perl 5.8.1 and later).
+=over 4
-=item use encoding I<ENCNAME> Filter=E<gt>1;
+=item 1.
-This turns the encoding pragma into a source filter. While the
-default approach just decodes interpolated literals (in qq() and
-qr()), this will apply a source filter to the entire source code. See
-L</"The Filter Option"> below for details.
+If the platform supports the C<langinfo(CODESET)> interface, the codeset
+returned is used as the default encoding for the open pragma.
-=item no encoding;
+=item 2.
-Unsets the script encoding. The layers of STDIN, STDOUT are
-reset to ":raw" (the default unprocessed raw stream of bytes).
+If 1. didn't work but we are under the locale pragma, the environment
+variables C<LC_ALL> and C<LANG> (in that order) are matched for encodings
+(the part after "C<.>", if any), and if any found, that is used
+as the default encoding for the open pragma.
-=back
+=item 3.
-=head1 The Filter Option
+If 1. and 2. didn't work, the environment variables C<LC_ALL> and C<LANG>
+(in that order) are matched for anything looking like UTF-8, and if
+any found, C<:utf8> is used as the default encoding for the open
+pragma.
-The magic of C<use encoding> is not applied to the names of
-identifiers. In order to make C<${"\x{4eba}"}++> ($human++, where human
-is a single Han ideograph) work, you still need to write your script
-in UTF-8 -- or use a source filter. That's what 'Filter=>1' does.
+=back
-What does this mean? Your source code behaves as if it is written in
-UTF-8 with 'use utf8' in effect. So even if your editor only supports
-Shift_JIS, for example, you can still try examples in Chapter 15 of
-C<Programming Perl, 3rd Ed.>. For instance, you can use UTF-8
-identifiers.
+If your locale environment variables (C<LC_ALL>, C<LC_CTYPE>, C<LANG>)
+contain the strings 'UTF-8' or 'UTF8' (case-insensitive matching),
+the default encoding of your C<STDIN>, C<STDOUT>, and C<STDERR>, and of
+B<any subsequent file open>, is UTF-8.
-This option is significantly slower and (as of this writing) non-ASCII
-identifiers are not very stable WITHOUT this option and with the
-source code written in UTF-8.
+=head1 CAVEATS
-=head2 Filter-related changes at Encode version 1.87
+=head2 SIDE EFFECTS
=over
=item *
-The Filter option now sets STDIN and STDOUT like non-filter options.
-And C<< STDIN=>I<ENCODING> >> and C<< STDOUT=>I<ENCODING> >> work like
-non-filter version.
+If the C<encoding> pragma is in scope then the lengths returned are
+calculated from the length of C<$/> in Unicode characters, which is not
+always the same as the length of C<$/> in the native encoding.
=item *
-C<use utf8> is implicitly declared so you no longer have to C<use
-utf8> to C<${"\x{4eba}"}++>.
-
-=back
-
-=head1 CAVEATS
-
-=head2 NOT SCOPED
-
-The pragma is a per script, not a per block lexical. Only the last
-C<use encoding> or C<no encoding> matters, and it affects
-B<the whole script>. However, the <no encoding> pragma is supported and
-B<use encoding> can appear as many times as you want in a given script.
-The multiple use of this pragma is discouraged.
-
-By the same reason, the use this pragma inside modules is also
-discouraged (though not as strongly discouraged as the case above.
-See below).
-
-If you still have to write a module with this pragma, be very careful
-of the load order. See the codes below;
+Without this pragma, if strings operating under byte semantics and strings
+with Unicode character data are concatenated, the new string will
+be created by decoding the byte strings as I<ISO 8859-1 (Latin-1)>.
- # called module
- package Module_IN_BAR;
- use encoding "bar";
- # stuff in "bar" encoding here
- 1;
+The B<encoding> pragma changes this to use the specified encoding
+instead. For example:
- # caller script
- use encoding "foo"
- use Module_IN_BAR;
- # surprise! use encoding "bar" is in effect.
+ use encoding 'utf8';
+ my $string = chr(20000); # a Unicode string
+ utf8::encode($string); # now it's a UTF-8 encoded byte string
+ # concatenate with another Unicode string
+ print length($string . chr(20000));
-The best way to avoid this oddity is to use this pragma RIGHT AFTER
-other modules are loaded. i.e.
+Will print C<2>, because C<$string> is upgraded as UTF-8. Without
+C<use encoding 'utf8';>, it will print C<4> instead, since C<$string>
+is three octets when interpreted as Latin-1.
- use Module_IN_BAR;
- use encoding "foo";
+=back
=head2 DO NOT MIX MULTIPLE ENCODINGS
Notice that only literals (string or regular expression) having only
legacy code points are affected: if you mix data like this
+ \x{100}\xDF
\xDF\x{100}
the data is assumed to be in (Latin 1 and) Unicode, not in your native
@@ -509,10 +492,70 @@ resort to \x{....} just to spell your name in a native encoding.
So feel free to put your strings in your encoding in quotes and
regexes.
-=head2 tr/// with ranges
+=head2 Prior to Perl v5.22
+
+The pragma was a per script, not a per block lexical. Only the last
+C<use encoding> or C<no encoding> mattered, and it affected
+B<the whole script>. However, the C<no encoding> pragma was supported and
+C<use encoding> could appear as many times as you want in a given script
+(though only the last was effective).
+
+Since the scope wasn't lexical, other modules' use of C<chr>, C<ord>, I<etc.>
+were affected. This leads to spooky, incorrect action at a distance that is
+hard to debug.
+
+This means you would have to be very careful of the load order:
+
+ # called module
+ package Module_IN_BAR;
+ use encoding "bar";
+ # stuff in "bar" encoding here
+ 1;
+
+ # caller script
+ use encoding "foo"
+ use Module_IN_BAR;
+ # surprise! use encoding "bar" is in effect.
+
+The best way to avoid this oddity is to use this pragma RIGHT AFTER
+other modules are loaded. i.e.
+
+ use Module_IN_BAR;
+ use encoding "foo";
+
+=head2 Prior to Encode version 1.87
+
+=over
+
+=item *
+
+C<STDIN> and C<STDOUT> were not set under the filter option.
+And C<< STDIN=>I<ENCODING> >> and C<< STDOUT=>I<ENCODING> >> didn't work like
+non-filter version.
+
+=item *
+
+C<use utf8> wasn't implicitly declared so you have to C<use utf8> to do
+
+ ${"\x{4eba}"}++
+
+=back
+
+=head2 Prior to Perl v5.8.1
+
+=over
+
+=item "NON-EUC" doublebyte encodings
+
+Because perl needs to parse the script before applying this pragma, such
+encodings as Shift_JIS and Big-5 that may contain C<'\'> (BACKSLASH;
+C<\x5c>) in the second byte fail because the second byte may
+accidentally escape the quoting character that follows.
+
+=item C<tr///>
The B<encoding> pragma works by decoding string literals in
-C<q//,qq//,qr//,qw///, qx//> and so forth. In perl 5.8.0, this
+C<q//,qq//,qr//,qw///, qx//> and so forth. In perl v5.8.0, this
does not apply to C<tr///>. Therefore,
use encoding 'euc-jp';
@@ -537,25 +580,21 @@ Does not work as
=back
-This counterintuitive behavior has been fixed in perl 5.8.1.
+This counterintuitive behavior has been fixed in perl v5.8.1.
-=head3 workaround to tr///;
-
-In perl 5.8.0, you can work around as follows;
+In perl v5.8.0, you can work around this as follows;
use encoding 'euc-jp';
# ....
eval qq{ \$kana =~ tr/\xA4\xA1-\xA4\xF3/\xA5\xA1-\xA5\xF3/ };
Note the C<tr//> expression is surrounded by C<qq{}>. The idea behind
-is the same as classic idiom that makes C<tr///> 'interpolate'.
+this is the same as the classic idiom that makes C<tr///> 'interpolate':
tr/$from/$to/; # wrong!
eval qq{ tr/$from/$to/ }; # workaround.
-Nevertheless, in case of B<encoding> pragma even C<q//> is affected so
-C<tr///> not being decoded was obviously against the will of Perl5
-Porters so it has been fixed in Perl 5.8.1 or later.
+=back
=head1 EXAMPLE - Greekperl
@@ -590,10 +629,24 @@ Porters so it has been fixed in Perl 5.8.1 or later.
print "zetta\n" if unpack("C", (pack("C", 0xdf))) == 0xdf;
-=head1 KNOWN PROBLEMS
+=head1 BUGS
=over
+=item Thread safety
+
+C<use encoding ...> is not thread-safe (i.e., do not use in threaded
+applications).
+
+=item Can't be used by more than one module in a single program.
+
+Only one encoding is allowed. If you combine modules in a program that have
+different encodings, only one will be actually used.
+
+=item Other modules using C<STDIN> and C<STDOUT> get the encoded stream
+
+They may be expecting something completely different.
+
=item literals in regex that are longer than 127 bytes
For native multibyte encodings (either fixed or variable length),
@@ -603,13 +656,11 @@ recoding errors for regular expression literals longer than 127 bytes.
=item EBCDIC
The encoding pragma is not supported on EBCDIC platforms.
-(Porters who are willing and able to remove this limitation are
-welcome.)
-=item format
+=item C<format>
-This pragma doesn't work well with format because PerlIO does not
-get along very well with it. When format contains non-ascii
+This pragma doesn't work well with C<format> because PerlIO does not
+get along very well with it. When C<format> contains non-ASCII
characters it prints funny or gets "wide character warnings".
To understand it, try the code below.
@@ -628,56 +679,19 @@ To understand it, try the code below.
Without binmode this happens to work but without binmode, print()
fails instead of write().
-At any rate, the very use of format is questionable when it comes to
+At any rate, the very use of C<format> is questionable when it comes to
unicode characters since you have to consider such things as character
width (i.e. double-width for ideographs) and directions (i.e. BIDI for
Arabic and Hebrew).
-=item Thread safety
-
-C<use encoding ...> is not thread-safe (i.e., do not use in threaded
-applications).
+=item See also L</CAVEATS>
=back
-=head2 The Logic of :locale
-
-The logic of C<:locale> is as follows:
-
-=over 4
-
-=item 1.
-
-If the platform supports the langinfo(CODESET) interface, the codeset
-returned is used as the default encoding for the open pragma.
-
-=item 2.
-
-If 1. didn't work but we are under the locale pragma, the environment
-variables LC_ALL and LANG (in that order) are matched for encodings
-(the part after C<.>, if any), and if any found, that is used
-as the default encoding for the open pragma.
-
-=item 3.
-
-If 1. and 2. didn't work, the environment variables LC_ALL and LANG
-(in that order) are matched for anything looking like UTF-8, and if
-any found, C<:utf8> is used as the default encoding for the open
-pragma.
-
-=back
-
-If your locale environment variables (LC_ALL, LC_CTYPE, LANG)
-contain the strings 'UTF-8' or 'UTF8' (case-insensitive matching),
-the default encoding of your STDIN, STDOUT, and STDERR, and of
-B<any subsequent file open>, is UTF-8.
-
=head1 HISTORY
-This pragma first appeared in Perl 5.8.0. For features that require
-5.8.1 and better, see above.
-
-The C<:locale> subpragma was implemented in 2.01, or Perl 5.8.6.
+This pragma first appeared in Perl v5.8.0. It has been enhanced in later
+releases as specified above.
=head1 SEE ALSO
diff --git a/Master/tlpkg/tlperl/lib/experimental.pm b/Master/tlpkg/tlperl/lib/experimental.pm
index 1c43e1064a6..befa409be77 100644
--- a/Master/tlpkg/tlperl/lib/experimental.pm
+++ b/Master/tlpkg/tlperl/lib/experimental.pm
@@ -1,22 +1,43 @@
package experimental;
-$experimental::VERSION = '0.007';
+$experimental::VERSION = '0.013';
use strict;
use warnings;
+use version ();
use feature ();
use Carp qw/croak carp/;
my %warnings = map { $_ => 1 } grep { /^experimental::/ } keys %warnings::Offsets;
-my %features = map { $_ => 1 } keys %feature::feature;
+my %features = map { $_ => 1 } $] > 5.015006 ? keys %feature::feature : do {
+ my @features;
+ if ($] >= 5.010) {
+ push @features, qw/switch say state/;
+ push @features, 'unicode_strings' if $] > 5.011002;
+ }
+ @features;
+};
my %min_version = (
- array_base => 5,
- autoderef => 5.014000,
- lexical_topic => 5.010000,
- regex_sets => 5.018000,
- smartmatch => 5.010001,
- signatures => 5.019009, # change to 5.20.0 someday? -- rjbs, 2014-02-08
+ array_base => '5',
+ autoderef => '5.14.0',
+ current_sub => '5.16.0',
+ evalbytes => '5.16.0',
+ fc => '5.16.0',
+ lexical_topic => '5.10.0',
+ lexical_subs => '5.18.0',
+ postderef => '5.20.0',
+ postderef_qq => '5.20.0',
+ refaliasing => '5.21.5',
+ regex_sets => '5.18.0',
+ say => '5.10.0',
+ smartmatch => '5.10.0',
+ signatures => '5.20.0',
+ state => '5.10.0',
+ switch => '5.10.0',
+ unicode_eval => '5.16.0',
+ unicode_strings => '5.12.0',
);
+$_ = version->new($_) for values %min_version;
my %additional = (
postderef => ['postderef_qq'],
@@ -38,7 +59,13 @@ sub _enable {
croak "Can't enable unknown feature $pragma";
}
elsif ($min_version{$pragma} > $]) {
- croak "Need perl version $min_version{$pragma} or later for feature $pragma";
+ my $stable = $min_version{$pragma};
+ if ($stable->{version}[1] % 2) {
+ $stable = version->new(
+ "5.".($stable->{version}[1]+1).'.0'
+ );
+ }
+ croak "Need perl $stable or later for feature $pragma";
}
}
@@ -92,7 +119,7 @@ experimental - Experimental features made easy
=head1 VERSION
-version 0.007
+version 0.013
=head1 SYNOPSIS
@@ -128,9 +155,31 @@ The supported features, documented further below, are:
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 ~~, given, and when
+ smartmatch - allow the use of ~~
+ switch - allow the use of ~~, given, and when
+
+=head2 Ordering matters
+
+Using this pragma to 'enable an experimental feature' is another way of saying
+that this pragma will disable the warnings which would result from using that
+feature. Therefore, the order in which pragmas are applied is important. In
+particular, you probably want to enable experimental features I<after> you
+enable warnings:
+
+ use warnings;
+ use experimental 'smartmatch';
+
+You also need to take care with modules that enable warnings for you. A common
+example being Moose. In this example, warnings for the 'smartmatch' feature are
+first turned on by the warnings pragma, off by the experimental pragma and back
+on again by the Moose module (fix is to switch the last two lines):
+
+ use warnings;
+ use experimental 'smartmatch';
+ use Moose;
=head2 Disclaimer
diff --git a/Master/tlpkg/tlperl/lib/feature.pm b/Master/tlpkg/tlperl/lib/feature.pm
index dfcff96cc08..70d8ada2b4b 100644
--- a/Master/tlpkg/tlperl/lib/feature.pm
+++ b/Master/tlpkg/tlperl/lib/feature.pm
@@ -5,18 +5,20 @@
package feature;
-our $VERSION = '1.36_01';
+our $VERSION = '1.40';
our %feature = (
fc => 'feature_fc',
say => 'feature_say',
state => 'feature_state',
switch => 'feature_switch',
+ bitwise => 'feature_bitwise',
evalbytes => 'feature_evalbytes',
postderef => 'feature_postderef',
array_base => 'feature_arybase',
signatures => 'feature_signatures',
current_sub => 'feature___SUB__',
+ refaliasing => 'feature_refaliasing',
lexical_subs => 'feature_lexsubs',
postderef_qq => 'feature_postderef_qq',
unicode_eval => 'feature_unieval',
@@ -27,7 +29,7 @@ our %feature_bundle = (
"5.10" => [qw(array_base say state switch)],
"5.11" => [qw(array_base say state switch unicode_strings)],
"5.15" => [qw(current_sub evalbytes fc say state switch unicode_eval unicode_strings)],
- "all" => [qw(array_base current_sub evalbytes fc lexical_subs postderef postderef_qq say signatures state switch unicode_eval unicode_strings)],
+ "all" => [qw(array_base bitwise current_sub evalbytes fc lexical_subs postderef postderef_qq refaliasing say signatures state switch unicode_eval unicode_strings)],
"default" => [qw(array_base)],
);
@@ -39,6 +41,8 @@ $feature_bundle{"5.17"} = $feature_bundle{"5.15"};
$feature_bundle{"5.18"} = $feature_bundle{"5.15"};
$feature_bundle{"5.19"} = $feature_bundle{"5.15"};
$feature_bundle{"5.20"} = $feature_bundle{"5.15"};
+$feature_bundle{"5.21"} = $feature_bundle{"5.15"};
+$feature_bundle{"5.22"} = $feature_bundle{"5.15"};
$feature_bundle{"5.9.5"} = $feature_bundle{"5.10"};
our $hint_shift = 26;
@@ -132,6 +136,12 @@ This feature is available starting with Perl 5.10.
=head2 The 'switch' feature
+B<WARNING>: Because the L<smartmatch operator|perlop/"Smartmatch Operator"> is
+experimental, Perl will warn when you use this feature, unless you have
+explicitly disabled the warning:
+
+ no warnings "experimental::smartmatch";
+
C<use feature 'switch'> tells the compiler to enable the Perl 6
given/when construct.
@@ -287,6 +297,47 @@ See L<perlsub/Signatures> for details.
This feature is available from Perl 5.20 onwards.
+=head2 The 'refaliasing' feature
+
+B<WARNING>: This feature is still experimental and the implementation may
+change in future versions of Perl. For this reason, Perl will
+warn when you use the feature, unless you have explicitly disabled the
+warning:
+
+ no warnings "experimental::refaliasing";
+
+This enables aliasing via assignment to references:
+
+ \$a = \$b; # $a and $b now point to the same scalar
+ \@a = \@b; # to the same array
+ \%a = \%b;
+ \&a = \&b;
+ foreach \%hash (@array_of_hash_refs) {
+ ...
+ }
+
+See L<perlref/Assigning to References> for details.
+
+This feature is available from Perl 5.22 onwards.
+
+=head2 The 'bitwise' feature
+
+B<WARNING>: This feature is still experimental and the implementation may
+change in future versions of Perl. For this reason, Perl will
+warn when you use the feature, unless you have explicitly disabled the
+warning:
+
+ no warnings "experimental::bitwise";
+
+This makes the four standard bitwise operators (C<& | ^ ~>) treat their
+operands consistently as numbers, and introduces four new dotted operators
+(C<&. |. ^. ~.>) that treat their operands consistently as strings. The
+same applies to the assignment variants (C<&= |= ^= &.= |.= ^.=>).
+
+See L<perlop/Bitwise String Operators> for details.
+
+This feature is available from Perl 5.22 onwards.
+
=head1 FEATURE BUNDLES
It's possible to load multiple features together, using
@@ -316,6 +367,9 @@ The following feature bundles are available:
:5.20 say state switch unicode_strings
unicode_eval evalbytes current_sub fc
+ :5.22 say state switch unicode_strings
+ unicode_eval evalbytes current_sub fc
+
The C<:default> bundle represents the feature set that is enabled before
any C<use feature> or C<no feature> declaration.
diff --git a/Master/tlpkg/tlperl/lib/if.pm b/Master/tlpkg/tlperl/lib/if.pm
index 511b8a5b7c6..b118302714d 100644
--- a/Master/tlpkg/tlperl/lib/if.pm
+++ b/Master/tlpkg/tlperl/lib/if.pm
@@ -1,6 +1,6 @@
package if;
-$VERSION = '0.0603';
+$VERSION = '0.0604';
sub work {
my $method = shift() ? 'import' : 'unimport';
@@ -23,15 +23,16 @@ __END__
=head1 NAME
-if - C<use> a Perl module if a condition holds
+if - C<use> a Perl module if a condition holds (also can C<no> a module)
=head1 SYNOPSIS
use if CONDITION, MODULE => ARGUMENTS;
+ no if CONDITION, MODULE => ARGUMENTS;
=head1 DESCRIPTION
-The C<if> module is used to conditionally load another module.
+The C<if> module is used to conditionally load or unload another module.
The construct
use if CONDITION, MODULE => ARGUMENTS;
@@ -71,6 +72,14 @@ calling module was C<use>'d from a core library directory,
and if so, generates a warning),
unless you've installed a more recent version of L<Text::Soundex> from CPAN.
+You can also specify to NOT use something:
+
+ no if $] ge 5.021_006, warnings => "locale";
+
+This warning category was added in the specified Perl version (a development
+release). Without the C<'if'>, trying to use it in an earlier release would
+generate an unknown warning category error.
+
=head1 BUGS
The current implementation does not allow specification of the
diff --git a/Master/tlpkg/tlperl/lib/inc/latest.pm b/Master/tlpkg/tlperl/lib/inc/latest.pm
deleted file mode 100644
index 5834e248eab..00000000000
--- a/Master/tlpkg/tlperl/lib/inc/latest.pm
+++ /dev/null
@@ -1,248 +0,0 @@
-package inc::latest;
-
-use if $] >= 5.019, 'deprecate';
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-
-use Carp;
-use File::Basename ();
-use File::Spec ();
-use File::Path ();
-use File::Copy ();
-
-# track and return modules loaded by inc::latest
-my @loaded_modules;
-sub loaded_modules {@loaded_modules}
-
-# must ultimately "goto" the import routine of the module to be loaded
-# so that the calling package is correct when $mod->import() runs.
-sub import {
- my ($package, $mod, @args) = @_;
- return unless(defined $mod);
-
- my $private_path = 'inc/latest/private.pm';
- if(-e $private_path) {
- # user mode - delegate work to bundled private module
- require $private_path;
- splice( @_, 0, 1, 'inc::latest::private');
- goto \&inc::latest::private::import;
- }
-
- # author mode - just record and load the modules
- push(@loaded_modules, $mod);
- require inc::latest::private;
- goto \&inc::latest::private::_load_module;
-}
-
-sub write {
- my $package = shift;
- my ($where, @preload) = @_;
-
- warn "should really be writing in inc/" unless $where =~ /inc$/;
-
- # write inc/latest.pm
- File::Path::mkpath( $where );
- open my $fh, '>', File::Spec->catfile($where,'latest.pm');
- print {$fh} "# This stub created by inc::latest $VERSION\n";
- print {$fh} <<'HERE';
-package inc::latest;
-use strict;
-use vars '@ISA';
-require inc::latest::private;
-@ISA = qw/inc::latest::private/;
-HERE
- if (@preload) {
- print {$fh} "\npackage inc::latest::preload;\n";
- for my $mod (@preload) {
- print {$fh} "inc::latest->import('$mod');\n";
- }
- }
- print {$fh} "\n1;\n";
- close $fh;
-
- # write inc/latest/private;
- require inc::latest::private;
- File::Path::mkpath( File::Spec->catdir( $where, 'latest' ) );
- my $from = $INC{'inc/latest/private.pm'};
- my $to = File::Spec->catfile($where,'latest','private.pm');
- File::Copy::copy( $from, $to ) or die "Couldn't copy '$from' to '$to': $!";
-
- return 1;
-}
-
-sub bundle_module {
- my ($package, $module, $where) = @_;
-
- # create inc/inc_$foo
- (my $dist = $module) =~ s{::}{-}g;
- my $inc_lib = File::Spec->catdir($where,"inc_$dist");
- File::Path::mkpath $inc_lib;
-
- # get list of files to copy
- require ExtUtils::Installed;
- # workaround buggy EU::Installed check of @INC
- my $inst = ExtUtils::Installed->new(extra_libs => [@INC]);
- my $packlist = $inst->packlist( $module ) or die "Couldn't find packlist";
- my @files = grep { /\.pm$/ } keys %$packlist;
-
-
- # figure out prefix
- my $mod_path = quotemeta $package->_mod2path( $module );
- my ($prefix) = grep { /$mod_path$/ } @files;
- $prefix =~ s{$mod_path$}{};
-
- # copy files
- for my $from ( @files ) {
- next unless $from =~ /\.pm$/;
- (my $mod_path = $from) =~ s{^\Q$prefix\E}{};
- my $to = File::Spec->catfile( $inc_lib, $mod_path );
- File::Path::mkpath(File::Basename::dirname($to));
- File::Copy::copy( $from, $to ) or die "Couldn't copy '$from' to '$to': $!";
- }
- return 1;
-}
-
-# Translate a module name into a directory/file.pm to search for in @INC
-sub _mod2path {
- my ($self, $mod) = @_;
- my @parts = split /::/, $mod;
- $parts[-1] .= '.pm';
- return $parts[0] if @parts == 1;
- return File::Spec->catfile(@parts);
-}
-
-1;
-
-
-=head1 NAME
-
-inc::latest - use modules bundled in inc/ if they are newer than installed ones
-
-=head1 SYNOPSIS
-
- # in Build.PL
- use inc::latest 'Module::Build';
-
-=head1 DESCRIPTION
-
-The C<inc::latest> module helps bootstrap configure-time dependencies for CPAN
-distributions. These dependencies get bundled into the C<inc> directory within
-a distribution and are used by Build.PL (or Makefile.PL).
-
-Arguments to C<inc::latest> are module names that are checked against both the
-current C<@INC> array and against specially-named directories in C<inc>. If
-the bundled version is newer than the installed one (or the module isn't
-installed, then, the bundled directory is added to the start of <@INC> and the
-module is loaded from there.
-
-There are actually two variations of C<inc::latest> -- one for authors and one
-for the C<inc> directory. For distribution authors, the C<inc::latest>
-installed in the system will record modules loaded via C<inc::latest> and can
-be used to create the bundled files in C<inc>, including writing the second
-variation as C<inc/latest.pm>.
-
-This second C<inc::latest> is the one that is loaded in a distribution being
-installed (e.g. from Build.PL). This bundled C<inc::latest> is the one
-that determines which module to load.
-
-=head2 Special notes on bundling
-
-The C<inc::latest> module creates bundled directories based on the packlist
-file of an installed distribution. Even though C<inc::latest> takes module
-name arguments, it is better to think of it as bundling and making available
-entire I<distributions>. When a module is loaded through C<inc::latest>,
-it looks in all bundled distributions in C<inc/> for a newer module than
-can be found in the existing C<@INC> array.
-
-Thus, the module-name provided should usually be the "top-level" module name of
-a distribution, though this is not strictly required. For example,
-L<Module::Build> has a number of heuristics to map module names to packlists,
-allowing users to do things like this:
-
- use inc::latest 'Devel::AssertOS::Unix';
-
-even though Devel::AssertOS::Unix is contained within the Devel-CheckOS
-distribution.
-
-At the current time, packlists are required. Thus, bundling dual-core modules
-may require a 'forced install' over versions in the latest version of perl
-in order to create the necessary packlist for bundling.
-
-=head1 USAGE
-
-When calling C<use>, the bundled C<inc::latest> takes a single module name and
-optional arguments to pass to that module's own import method.
-
- use 'inc::latest' 'Foo::Bar' qw/foo bar baz/;
-
-=head2 Author-mode
-
-You are in author-mode inc::latest if any of the Author-mode methods are
-available. For example:
-
- if ( inc::latest->can('write') ) {
- inc::latest->write('inc');
- }
-
-=over 4
-
-=item loaded_modules()
-
- my @list = inc::latest->loaded_modules;
-
-This takes no arguments and always returns a list of module names requested for
-loading via "use inc::latest 'MODULE'", regardless of whether the load was
-successful or not.
-
-=item write()
-
- inc::latest->write( 'inc' );
-
-This writes the bundled version of inc::latest to the directory name given as an
-argument. It almost all cases, it should be 'C<inc>'.
-
-=item bundle_module()
-
- for my $mod ( inc::latest->loaded_modules ) {
- inc::latest->bundle_module($mod, $dir);
- }
-
-If $mod corresponds to a packlist, then this function creates a specially-named
-directory in $dir and copies all .pm files from the modlist to the new
-directory (which almost always should just be 'inc'). For example, if Foo::Bar
-is the name of the module, and $dir is 'inc', then the directory would be
-'inc/inc_Foo-Bar' and contain files like this:
-
- inc/inc_Foo-Bar/Foo/Bar.pm
-
-Currently, $mod B<must> have a packlist. If this is not the case (e.g. for a
-dual-core module), then the bundling will fail. You may be able to create a
-packlist by forced installing the module on top of the version that came with
-core Perl.
-
-=back
-
-=head2 As bundled in inc/
-
-All methods are private. Only the C<import> method is public.
-
-=head1 AUTHOR
-
-Eric Wilhelm <ewilhelm@cpan.org>, David Golden <dagolden@cpan.org>
-
-=head1 COPYRIGHT
-
-Copyright (c) 2009 by Eric Wilhelm and David Golden
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-L<Module::Build>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/lib/inc/latest/private.pm b/Master/tlpkg/tlperl/lib/inc/latest/private.pm
deleted file mode 100644
index c3829ca80ac..00000000000
--- a/Master/tlpkg/tlperl/lib/inc/latest/private.pm
+++ /dev/null
@@ -1,102 +0,0 @@
-package inc::latest::private;
-
-use if $] >= 5.019, 'deprecate';
-
-use strict;
-use vars qw($VERSION);
-$VERSION = '0.4205';
-$VERSION = eval $VERSION;
-
-use File::Spec;
-
-# must ultimately "goto" the import routine of the module to be loaded
-# so that the calling package is correct when $mod->import() runs.
-sub import {
- my ($package, $mod, @args) = @_;
- my $file = $package->_mod2path($mod);
-
- if ($INC{$file}) {
- # Already loaded, but let _load_module handle import args
- goto \&_load_module;
- }
-
- # A bundled copy must be present
- my ($bundled, $bundled_dir) = $package->_search_bundled($file)
- or die "No bundled copy of $mod found";
-
- my $from_inc = $package->_search_INC($file);
- unless ($from_inc) {
- # Only bundled is available
- unshift(@INC, $bundled_dir);
- goto \&_load_module;
- }
-
- if (_version($from_inc) >= _version($bundled)) {
- # Ignore the bundled copy
- goto \&_load_module;
- }
-
- # Load the bundled copy
- unshift(@INC, $bundled_dir);
- goto \&_load_module;
-}
-
-sub _version {
- require ExtUtils::MakeMaker;
- return ExtUtils::MM->parse_version(shift);
-}
-
-# use "goto" for import to preserve caller
-sub _load_module {
- my $package = shift; # remaining @_ is ready for goto
- my ($mod, @args) = @_;
- eval "require $mod; 1" or die $@;
- if ( my $import = $mod->can('import') ) {
- goto $import;
- }
- return 1;
-}
-
-sub _search_bundled {
- my ($self, $file) = @_;
-
- my $mypath = 'inc';
-
- opendir my $DH, $mypath or die "Can't open directory $mypath: $!";
-
- while (defined(my $e = readdir $DH)) {
- next unless $e =~ /^inc_/;
- my $try = File::Spec->catfile($mypath, $e, $file);
-
- return($try, File::Spec->catdir($mypath, $e)) if -e $try;
- }
- return;
-}
-
-# Look for the given path in @INC.
-sub _search_INC {
- # TODO: doesn't handle coderefs or arrayrefs or objects in @INC, but
- # it probably should
- my ($self, $file) = @_;
-
- foreach my $dir (@INC) {
- next if ref $dir;
- my $try = File::Spec->catfile($dir, $file);
- return $try if -e $try;
- }
-
- return;
-}
-
-# Translate a module name into a directory/file.pm to search for in @INC
-sub _mod2path {
- my ($self, $mod) = @_;
- my @parts = split /::/, $mod;
- $parts[-1] .= '.pm';
- return $parts[0] if @parts == 1;
- return File::Spec->catfile(@parts);
-}
-
-1;
-
-
diff --git a/Master/tlpkg/tlperl/lib/locale.pm b/Master/tlpkg/tlperl/lib/locale.pm
index f7575f5007b..9cc243f86c6 100644
--- a/Master/tlpkg/tlperl/lib/locale.pm
+++ b/Master/tlpkg/tlperl/lib/locale.pm
@@ -1,6 +1,6 @@
package locale;
-our $VERSION = '1.03';
+our $VERSION = '1.06';
use Config;
$Carp::Internal{ (__PACKAGE__) } = 1;
@@ -35,40 +35,89 @@ to behave as if in the "C" locale; attempts to change the locale will fail.
=cut
-# A separate bit is used for each of the two forms of the pragma, as they are
-# mostly independent, and interact with each other and the unicode_strings
-# feature. This allows for fast determination of which one(s) of the three
-# are to be used at any given point, and no code has to be written to deal
-# with coming in and out of scopes--it falls automatically out from the hint
-# handling
+# A separate bit is used for each of the two forms of the pragma, to save
+# having to look at %^H for the normal case of a plain 'use locale' without an
+# argument.
$locale::hint_bits = 0x4;
-$locale::not_chars_hint_bits = 0x10;
+$locale::partial_hint_bits = 0x10; # If pragma has an argument
+
+# The pseudo-category :characters consists of 2 real ones; but it also is
+# given its own number, -1, because in the complement form it also has the
+# side effect of "use feature 'unicode_strings'"
sub import {
shift; # should be 'locale'; not checked
- my $found_not_chars = 0;
- while (defined (my $arg = shift)) {
- if ($arg eq ":not_characters") {
- $^H |= $locale::not_chars_hint_bits;
+ $^H{locale} = 0 unless defined $^H{locale};
+ if (! @_) { # If no parameter, use the plain form that changes all categories
+ $^H |= $locale::hint_bits;
+
+ }
+ else {
+ my @categories = ( qw(:ctype :collate :messages
+ :numeric :monetary :time) );
+ for (my $i = 0; $i < @_; $i++) {
+ my $arg = $_[$i];
+ $complement = $arg =~ s/ : ( ! | not_ ) /:/x;
+ if (! grep { $arg eq $_ } @categories, ":characters") {
+ require Carp;
+ Carp::croak("Unknown parameter '$_[$i]' to 'use locale'");
+ }
+
+ if ($complement) {
+ if ($i != 0 || $i < @_ - 1) {
+ require Carp;
+ Carp::croak("Only one argument to 'use locale' allowed"
+ . "if is $complement");
+ }
+
+ if ($arg eq ':characters') {
+ push @_, grep { $_ ne ':ctype' && $_ ne ':collate' }
+ @categories;
+ # We add 1 to the category number; This category number
+ # is -1
+ $^H{locale} |= (1 << 0);
+ }
+ else {
+ push @_, grep { $_ ne $arg } @categories;
+ }
+ next;
+ }
+ elsif ($arg eq ':characters') {
+ push @_, ':ctype', ':collate';
+ next;
+ }
+
+ $^H |= $locale::partial_hint_bits;
# This form of the pragma overrides the other
$^H &= ~$locale::hint_bits;
- $found_not_chars = 1;
- }
- else {
- require Carp;
- Carp::croak("Unknown parameter '$arg' to 'use locale'");
+
+ $arg =~ s/^://;
+
+ eval { require POSIX; import POSIX 'locale_h'; };
+ unless (defined &POSIX::LC_CTYPE) {
+ return;
+ }
+
+ # Map our names to the ones defined by POSIX
+ $arg = "LC_" . uc($arg);
+
+ my $bit = eval "&POSIX::$arg";
+ if (defined $bit) {
+ # 1 is added so that the pseudo-category :characters, which is
+ # -1, comes out 0.
+ $^H{locale} |= 1 << ($bit + 1);
+ }
}
}
- # Use the plain form if not doing the :not_characters one.
- $^H |= $locale::hint_bits unless $found_not_chars;
}
sub unimport {
- $^H &= ~($locale::hint_bits|$locale::not_chars_hint_bits);
+ $^H &= ~($locale::hint_bits|$locale::partial_hint_bits);
+ $^H{locale} = 0;
}
1;
diff --git a/Master/tlpkg/tlperl/lib/lwpcook.pod b/Master/tlpkg/tlperl/lib/lwpcook.pod
deleted file mode 100644
index 2002b79925e..00000000000
--- a/Master/tlpkg/tlperl/lib/lwpcook.pod
+++ /dev/null
@@ -1,311 +0,0 @@
-=head1 NAME
-
-lwpcook - The libwww-perl cookbook
-
-=head1 DESCRIPTION
-
-This document contain some examples that show typical usage of the
-libwww-perl library. You should consult the documentation for the
-individual modules for more detail.
-
-All examples should be runnable programs. You can, in most cases, test
-the code sections by piping the program text directly to perl.
-
-
-
-=head1 GET
-
-It is very easy to use this library to just fetch documents from the
-net. The LWP::Simple module provides the get() function that return
-the document specified by its URL argument:
-
- use LWP::Simple;
- $doc = get 'http://search.cpan.org/dist/libwww-perl/';
-
-or, as a perl one-liner using the getprint() function:
-
- perl -MLWP::Simple -e 'getprint "http://search.cpan.org/dist/libwww-perl/"'
-
-or, how about fetching the latest perl by running this command:
-
- perl -MLWP::Simple -e '
- getstore "ftp://ftp.sunet.se/pub/lang/perl/CPAN/src/latest.tar.gz",
- "perl.tar.gz"'
-
-You will probably first want to find a CPAN site closer to you by
-running something like the following command:
-
- perl -MLWP::Simple -e 'getprint "http://www.cpan.org/SITES.html"'
-
-Enough of this simple stuff! The LWP object oriented interface gives
-you more control over the request sent to the server. Using this
-interface you have full control over headers sent and how you want to
-handle the response returned.
-
- use LWP::UserAgent;
- $ua = LWP::UserAgent->new;
- $ua->agent("$0/0.1 " . $ua->agent);
- # $ua->agent("Mozilla/8.0") # pretend we are very capable browser
-
- $req = HTTP::Request->new(
- GET => 'http://search.cpan.org/dist/libwww-perl/');
- $req->header('Accept' => 'text/html');
-
- # send request
- $res = $ua->request($req);
-
- # check the outcome
- if ($res->is_success) {
- print $res->decoded_content;
- }
- else {
- print "Error: " . $res->status_line . "\n";
- }
-
-The lwp-request program (alias GET) that is distributed with the
-library can also be used to fetch documents from WWW servers.
-
-
-
-=head1 HEAD
-
-If you just want to check if a document is present (i.e. the URL is
-valid) try to run code that looks like this:
-
- use LWP::Simple;
-
- if (head($url)) {
- # ok document exists
- }
-
-The head() function really returns a list of meta-information about
-the document. The first three values of the list returned are the
-document type, the size of the document, and the age of the document.
-
-More control over the request or access to all header values returned
-require that you use the object oriented interface described for GET
-above. Just s/GET/HEAD/g.
-
-
-=head1 POST
-
-There is no simple procedural interface for posting data to a WWW server. You
-must use the object oriented interface for this. The most common POST
-operation is to access a WWW form application:
-
- use LWP::UserAgent;
- $ua = LWP::UserAgent->new;
-
- my $req = HTTP::Request->new(
- POST => 'http://rt.cpan.org/Public/Dist/Display.html');
- $req->content_type('application/x-www-form-urlencoded');
- $req->content('Status=Active&Name=libwww-perl');
-
- my $res = $ua->request($req);
- print $res->as_string;
-
-Lazy people use the HTTP::Request::Common module to set up a suitable
-POST request message (it handles all the escaping issues) and has a
-suitable default for the content_type:
-
- use HTTP::Request::Common qw(POST);
- use LWP::UserAgent;
- $ua = LWP::UserAgent->new;
-
- my $req = POST 'http://rt.cpan.org/Public/Dist/Display.html',
- [ Status => 'Active', Name => 'libwww-perl' ];
-
- print $ua->request($req)->as_string;
-
-The lwp-request program (alias POST) that is distributed with the
-library can also be used for posting data.
-
-
-
-=head1 PROXIES
-
-Some sites use proxies to go through fire wall machines, or just as
-cache in order to improve performance. Proxies can also be used for
-accessing resources through protocols not supported directly (or
-supported badly :-) by the libwww-perl library.
-
-You should initialize your proxy setting before you start sending
-requests:
-
- use LWP::UserAgent;
- $ua = LWP::UserAgent->new;
- $ua->env_proxy; # initialize from environment variables
- # or
- $ua->proxy(ftp => 'http://proxy.myorg.com');
- $ua->proxy(wais => 'http://proxy.myorg.com');
- $ua->no_proxy(qw(no se fi));
-
- my $req = HTTP::Request->new(GET => 'wais://xxx.com/');
- print $ua->request($req)->as_string;
-
-The LWP::Simple interface will call env_proxy() for you automatically.
-Applications that use the $ua->env_proxy() method will normally not
-use the $ua->proxy() and $ua->no_proxy() methods.
-
-Some proxies also require that you send it a username/password in
-order to let requests through. You should be able to add the
-required header, with something like this:
-
- use LWP::UserAgent;
-
- $ua = LWP::UserAgent->new;
- $ua->proxy(['http', 'ftp'] => 'http://username:password@proxy.myorg.com');
-
- $req = HTTP::Request->new('GET',"http://www.perl.com");
-
- $res = $ua->request($req);
- print $res->decoded_content if $res->is_success;
-
-Replace C<proxy.myorg.com>, C<username> and
-C<password> with something suitable for your site.
-
-
-=head1 ACCESS TO PROTECTED DOCUMENTS
-
-Documents protected by basic authorization can easily be accessed
-like this:
-
- use LWP::UserAgent;
- $ua = LWP::UserAgent->new;
- $req = HTTP::Request->new(GET => 'http://www.linpro.no/secret/');
- $req->authorization_basic('aas', 'mypassword');
- print $ua->request($req)->as_string;
-
-The other alternative is to provide a subclass of I<LWP::UserAgent> that
-overrides the get_basic_credentials() method. Study the I<lwp-request>
-program for an example of this.
-
-
-=head1 COOKIES
-
-Some sites like to play games with cookies. By default LWP ignores
-cookies provided by the servers it visits. LWP will collect cookies
-and respond to cookie requests if you set up a cookie jar.
-
- use LWP::UserAgent;
- use HTTP::Cookies;
-
- $ua = LWP::UserAgent->new;
- $ua->cookie_jar(HTTP::Cookies->new(file => "lwpcookies.txt",
- autosave => 1));
-
- # and then send requests just as you used to do
- $res = $ua->request(HTTP::Request->new(GET => "http://no.yahoo.com/"));
- print $res->status_line, "\n";
-
-As you visit sites that send you cookies to keep, then the file
-F<lwpcookies.txt"> will grow.
-
-=head1 HTTPS
-
-URLs with https scheme are accessed in exactly the same way as with
-http scheme, provided that an SSL interface module for LWP has been
-properly installed (see the F<README.SSL> file found in the
-libwww-perl distribution for more details). If no SSL interface is
-installed for LWP to use, then you will get "501 Protocol scheme
-'https' is not supported" errors when accessing such URLs.
-
-Here's an example of fetching and printing a WWW page using SSL:
-
- use LWP::UserAgent;
-
- my $ua = LWP::UserAgent->new;
- my $req = HTTP::Request->new(GET => 'https://www.helsinki.fi/');
- my $res = $ua->request($req);
- if ($res->is_success) {
- print $res->as_string;
- }
- else {
- print "Failed: ", $res->status_line, "\n";
- }
-
-=head1 MIRRORING
-
-If you want to mirror documents from a WWW server, then try to run
-code similar to this at regular intervals:
-
- use LWP::Simple;
-
- %mirrors = (
- 'http://www.sn.no/' => 'sn.html',
- 'http://www.perl.com/' => 'perl.html',
- 'http://search.cpan.org/distlibwww-perl/' => 'lwp.html',
- 'gopher://gopher.sn.no/' => 'gopher.html',
- );
-
- while (($url, $localfile) = each(%mirrors)) {
- mirror($url, $localfile);
- }
-
-Or, as a perl one-liner:
-
- perl -MLWP::Simple -e 'mirror("http://www.perl.com/", "perl.html")';
-
-The document will not be transferred unless it has been updated.
-
-
-
-=head1 LARGE DOCUMENTS
-
-If the document you want to fetch is too large to be kept in memory,
-then you have two alternatives. You can instruct the library to write
-the document content to a file (second $ua->request() argument is a file
-name):
-
- use LWP::UserAgent;
- $ua = LWP::UserAgent->new;
-
- my $req = HTTP::Request->new(GET =>
- 'http://www.cpan.org/authors/Gisle_Aas/libwww-perl-6.02.tar.gz');
- $res = $ua->request($req, "libwww-perl.tar.gz");
- if ($res->is_success) {
- print "ok\n";
- }
- else {
- print $res->status_line, "\n";
- }
-
-
-Or you can process the document as it arrives (second $ua->request()
-argument is a code reference):
-
- use LWP::UserAgent;
- $ua = LWP::UserAgent->new;
- $URL = 'ftp://ftp.unit.no/pub/rfc/rfc-index.txt';
-
- my $expected_length;
- my $bytes_received = 0;
- my $res =
- $ua->request(HTTP::Request->new(GET => $URL),
- sub {
- my($chunk, $res) = @_;
- $bytes_received += length($chunk);
- unless (defined $expected_length) {
- $expected_length = $res->content_length || 0;
- }
- if ($expected_length) {
- printf STDERR "%d%% - ",
- 100 * $bytes_received / $expected_length;
- }
- print STDERR "$bytes_received bytes received\n";
-
- # XXX Should really do something with the chunk itself
- # print $chunk;
- });
- print $res->status_line, "\n";
-
-
-
-=head1 COPYRIGHT
-
-Copyright 1996-2001, Gisle Aas
-
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-
diff --git a/Master/tlpkg/tlperl/lib/lwptut.pod b/Master/tlpkg/tlperl/lib/lwptut.pod
deleted file mode 100644
index 3ab5e61eae4..00000000000
--- a/Master/tlpkg/tlperl/lib/lwptut.pod
+++ /dev/null
@@ -1,839 +0,0 @@
-=head1 NAME
-
-lwptut -- An LWP Tutorial
-
-=head1 DESCRIPTION
-
-LWP (short for "Library for WWW in Perl") is a very popular group of
-Perl modules for accessing data on the Web. Like most Perl
-module-distributions, each of LWP's component modules comes with
-documentation that is a complete reference to its interface. However,
-there are so many modules in LWP that it's hard to know where to start
-looking for information on how to do even the simplest most common
-things.
-
-Really introducing you to using LWP would require a whole book -- a book
-that just happens to exist, called I<Perl & LWP>. But this article
-should give you a taste of how you can go about some common tasks with
-LWP.
-
-
-=head2 Getting documents with LWP::Simple
-
-If you just want to get what's at a particular URL, the simplest way
-to do it is LWP::Simple's functions.
-
-In a Perl program, you can call its C<get($url)> function. It will try
-getting that URL's content. If it works, then it'll return the
-content; but if there's some error, it'll return undef.
-
- my $url = 'http://www.npr.org/programs/fa/?todayDate=current';
- # Just an example: the URL for the most recent /Fresh Air/ show
-
- use LWP::Simple;
- my $content = get $url;
- die "Couldn't get $url" unless defined $content;
-
- # Then go do things with $content, like this:
-
- if($content =~ m/jazz/i) {
- print "They're talking about jazz today on Fresh Air!\n";
- }
- else {
- print "Fresh Air is apparently jazzless today.\n";
- }
-
-The handiest variant on C<get> is C<getprint>, which is useful in Perl
-one-liners. If it can get the page whose URL you provide, it sends it
-to STDOUT; otherwise it complains to STDERR.
-
- % perl -MLWP::Simple -e "getprint 'http://www.cpan.org/RECENT'"
-
-That is the URL of a plain text file that lists new files in CPAN in
-the past two weeks. You can easily make it part of a tidy little
-shell command, like this one that mails you the list of new
-C<Acme::> modules:
-
- % perl -MLWP::Simple -e "getprint 'http://www.cpan.org/RECENT'" \
- | grep "/by-module/Acme" | mail -s "New Acme modules! Joy!" $USER
-
-There are other useful functions in LWP::Simple, including one function
-for running a HEAD request on a URL (useful for checking links, or
-getting the last-revised time of a URL), and two functions for
-saving/mirroring a URL to a local file. See L<the LWP::Simple
-documentation|LWP::Simple> for the full details, or chapter 2 of I<Perl
-& LWP> for more examples.
-
-
-
-=for comment
- ##########################################################################
-
-
-
-=head2 The Basics of the LWP Class Model
-
-LWP::Simple's functions are handy for simple cases, but its functions
-don't support cookies or authorization, don't support setting header
-lines in the HTTP request, generally don't support reading header lines
-in the HTTP response (notably the full HTTP error message, in case of an
-error). To get at all those features, you'll have to use the full LWP
-class model.
-
-While LWP consists of dozens of classes, the main two that you have to
-understand are L<LWP::UserAgent> and L<HTTP::Response>. LWP::UserAgent
-is a class for "virtual browsers" which you use for performing requests,
-and L<HTTP::Response> is a class for the responses (or error messages)
-that you get back from those requests.
-
-The basic idiom is C<< $response = $browser->get($url) >>, or more fully
-illustrated:
-
- # Early in your program:
-
- use LWP 5.64; # Loads all important LWP classes, and makes
- # sure your version is reasonably recent.
-
- my $browser = LWP::UserAgent->new;
-
- ...
-
- # Then later, whenever you need to make a get request:
- my $url = 'http://www.npr.org/programs/fa/?todayDate=current';
-
- my $response = $browser->get( $url );
- die "Can't get $url -- ", $response->status_line
- unless $response->is_success;
-
- die "Hey, I was expecting HTML, not ", $response->content_type
- unless $response->content_type eq 'text/html';
- # or whatever content-type you're equipped to deal with
-
- # Otherwise, process the content somehow:
-
- if($response->decoded_content =~ m/jazz/i) {
- print "They're talking about jazz today on Fresh Air!\n";
- }
- else {
- print "Fresh Air is apparently jazzless today.\n";
- }
-
-There are two objects involved: C<$browser>, which holds an object of
-class LWP::UserAgent, and then the C<$response> object, which is of
-class HTTP::Response. You really need only one browser object per
-program; but every time you make a request, you get back a new
-HTTP::Response object, which will have some interesting attributes:
-
-=over
-
-=item *
-
-A status code indicating
-success or failure
-(which you can test with C<< $response->is_success >>).
-
-=item *
-
-An HTTP status
-line that is hopefully informative if there's failure (which you can
-see with C<< $response->status_line >>,
-returning something like "404 Not Found").
-
-=item *
-
-A MIME content-type like "text/html", "image/gif",
-"application/xml", etc., which you can see with
-C<< $response->content_type >>
-
-=item *
-
-The actual content of the response, in C<< $response->decoded_content >>.
-If the response is HTML, that's where the HTML source will be; if
-it's a GIF, then C<< $response->decoded_content >> will be the binary
-GIF data.
-
-=item *
-
-And dozens of other convenient and more specific methods that are
-documented in the docs for L<HTTP::Response>, and its superclasses
-L<HTTP::Message> and L<HTTP::Headers>.
-
-=back
-
-
-
-=for comment
- ##########################################################################
-
-
-
-=head2 Adding Other HTTP Request Headers
-
-The most commonly used syntax for requests is C<< $response =
-$browser->get($url) >>, but in truth, you can add extra HTTP header
-lines to the request by adding a list of key-value pairs after the URL,
-like so:
-
- $response = $browser->get( $url, $key1, $value1, $key2, $value2, ... );
-
-For example, here's how to send some more Netscape-like headers, in case
-you're dealing with a site that would otherwise reject your request:
-
-
- my @ns_headers = (
- 'User-Agent' => 'Mozilla/4.76 [en] (Win98; U)',
- 'Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*',
- 'Accept-Charset' => 'iso-8859-1,*,utf-8',
- 'Accept-Language' => 'en-US',
- );
-
- ...
-
- $response = $browser->get($url, @ns_headers);
-
-If you weren't reusing that array, you could just go ahead and do this:
-
- $response = $browser->get($url,
- 'User-Agent' => 'Mozilla/4.76 [en] (Win98; U)',
- 'Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*',
- 'Accept-Charset' => 'iso-8859-1,*,utf-8',
- 'Accept-Language' => 'en-US',
- );
-
-If you were only ever changing the 'User-Agent' line, you could just change
-the C<$browser> object's default line from "libwww-perl/5.65" (or the like)
-to whatever you like, using the LWP::UserAgent C<agent> method:
-
- $browser->agent('Mozilla/4.76 [en] (Win98; U)');
-
-
-
-=for comment
- ##########################################################################
-
-
-
-=head2 Enabling Cookies
-
-A default LWP::UserAgent object acts like a browser with its cookies
-support turned off. There are various ways of turning it on, by setting
-its C<cookie_jar> attribute. A "cookie jar" is an object representing
-a little database of all
-the HTTP cookies that a browser can know about. It can correspond to a
-file on disk (the way Netscape uses its F<cookies.txt> file), or it can
-be just an in-memory object that starts out empty, and whose collection of
-cookies will disappear once the program is finished running.
-
-To give a browser an in-memory empty cookie jar, you set its C<cookie_jar>
-attribute like so:
-
- $browser->cookie_jar({});
-
-To give it a copy that will be read from a file on disk, and will be saved
-to it when the program is finished running, set the C<cookie_jar> attribute
-like this:
-
- use HTTP::Cookies;
- $browser->cookie_jar( HTTP::Cookies->new(
- 'file' => '/some/where/cookies.lwp',
- # where to read/write cookies
- 'autosave' => 1,
- # save it to disk when done
- ));
-
-That file will be in LWP-specific format. If you want to access the
-cookies in your Netscape cookies file, you can use the
-HTTP::Cookies::Netscape class:
-
- use HTTP::Cookies;
- # yes, loads HTTP::Cookies::Netscape too
-
- $browser->cookie_jar( HTTP::Cookies::Netscape->new(
- 'file' => 'c:/Program Files/Netscape/Users/DIR-NAME-HERE/cookies.txt',
- # where to read cookies
- ));
-
-You could add an C<< 'autosave' => 1 >> line as further above, but at
-time of writing, it's uncertain whether Netscape might discard some of
-the cookies you could be writing back to disk.
-
-
-
-=for comment
- ##########################################################################
-
-
-
-=head2 Posting Form Data
-
-Many HTML forms send data to their server using an HTTP POST request, which
-you can send with this syntax:
-
- $response = $browser->post( $url,
- [
- formkey1 => value1,
- formkey2 => value2,
- ...
- ],
- );
-
-Or if you need to send HTTP headers:
-
- $response = $browser->post( $url,
- [
- formkey1 => value1,
- formkey2 => value2,
- ...
- ],
- headerkey1 => value1,
- headerkey2 => value2,
- );
-
-For example, the following program makes a search request to AltaVista
-(by sending some form data via an HTTP POST request), and extracts from
-the HTML the report of the number of matches:
-
- use strict;
- use warnings;
- use LWP 5.64;
- my $browser = LWP::UserAgent->new;
-
- my $word = 'tarragon';
-
- my $url = 'http://search.yahoo.com/yhs/search';
- my $response = $browser->post( $url,
- [ 'q' => $word, # the Altavista query string
- 'fr' => 'altavista', 'pg' => 'q', 'avkw' => 'tgz', 'kl' => 'XX',
- ]
- );
- die "$url error: ", $response->status_line
- unless $response->is_success;
- die "Weird content type at $url -- ", $response->content_type
- unless $response->content_is_html;
-
- if( $response->decoded_content =~ m{([0-9,]+)(?:<.*?>)? results for} ) {
- # The substring will be like "996,000</strong> results for"
- print "$word: $1\n";
- }
- else {
- print "Couldn't find the match-string in the response\n";
- }
-
-
-
-=for comment
- ##########################################################################
-
-
-
-=head2 Sending GET Form Data
-
-Some HTML forms convey their form data not by sending the data
-in an HTTP POST request, but by making a normal GET request with
-the data stuck on the end of the URL. For example, if you went to
-C<www.imdb.com> and ran a search on "Blade Runner", the URL you'd see
-in your browser window would be:
-
- http://www.imdb.com/find?s=all&q=Blade+Runner
-
-To run the same search with LWP, you'd use this idiom, which involves
-the URI class:
-
- use URI;
- my $url = URI->new( 'http://www.imdb.com/find' );
- # makes an object representing the URL
-
- $url->query_form( # And here the form data pairs:
- 'q' => 'Blade Runner',
- 's' => 'all',
- );
-
- my $response = $browser->get($url);
-
-See chapter 5 of I<Perl & LWP> for a longer discussion of HTML forms
-and of form data, and chapters 6 through 9 for a longer discussion of
-extracting data from HTML.
-
-
-
-=head2 Absolutizing URLs
-
-The URI class that we just mentioned above provides all sorts of methods
-for accessing and modifying parts of URLs (such as asking sort of URL it
-is with C<< $url->scheme >>, and asking what host it refers to with C<<
-$url->host >>, and so on, as described in L<the docs for the URI
-class|URI>. However, the methods of most immediate interest
-are the C<query_form> method seen above, and now the C<new_abs> method
-for taking a probably-relative URL string (like "../foo.html") and getting
-back an absolute URL (like "http://www.perl.com/stuff/foo.html"), as
-shown here:
-
- use URI;
- $abs = URI->new_abs($maybe_relative, $base);
-
-For example, consider this program that matches URLs in the HTML
-list of new modules in CPAN:
-
- use strict;
- use warnings;
- use LWP;
- my $browser = LWP::UserAgent->new;
-
- my $url = 'http://www.cpan.org/RECENT.html';
- my $response = $browser->get($url);
- die "Can't get $url -- ", $response->status_line
- unless $response->is_success;
-
- my $html = $response->decoded_content;
- while( $html =~ m/<A HREF=\"(.*?)\"/g ) {
- print "$1\n";
- }
-
-When run, it emits output that starts out something like this:
-
- MIRRORING.FROM
- RECENT
- RECENT.html
- authors/00whois.html
- authors/01mailrc.txt.gz
- authors/id/A/AA/AASSAD/CHECKSUMS
- ...
-
-However, if you actually want to have those be absolute URLs, you
-can use the URI module's C<new_abs> method, by changing the C<while>
-loop to this:
-
- while( $html =~ m/<A HREF=\"(.*?)\"/g ) {
- print URI->new_abs( $1, $response->base ) ,"\n";
- }
-
-(The C<< $response->base >> method from L<HTTP::Message|HTTP::Message>
-is for returning what URL
-should be used for resolving relative URLs -- it's usually just
-the same as the URL that you requested.)
-
-That program then emits nicely absolute URLs:
-
- http://www.cpan.org/MIRRORING.FROM
- http://www.cpan.org/RECENT
- http://www.cpan.org/RECENT.html
- http://www.cpan.org/authors/00whois.html
- http://www.cpan.org/authors/01mailrc.txt.gz
- http://www.cpan.org/authors/id/A/AA/AASSAD/CHECKSUMS
- ...
-
-See chapter 4 of I<Perl & LWP> for a longer discussion of URI objects.
-
-Of course, using a regexp to match hrefs is a bit simplistic, and for
-more robust programs, you'll probably want to use an HTML-parsing module
-like L<HTML::LinkExtor> or L<HTML::TokeParser> or even maybe
-L<HTML::TreeBuilder>.
-
-
-
-
-=for comment
- ##########################################################################
-
-=head2 Other Browser Attributes
-
-LWP::UserAgent objects have many attributes for controlling how they
-work. Here are a few notable ones:
-
-=over
-
-=item *
-
-C<< $browser->timeout(15); >>
-
-This sets this browser object to give up on requests that don't answer
-within 15 seconds.
-
-
-=item *
-
-C<< $browser->protocols_allowed( [ 'http', 'gopher'] ); >>
-
-This sets this browser object to not speak any protocols other than HTTP
-and gopher. If it tries accessing any other kind of URL (like an "ftp:"
-or "mailto:" or "news:" URL), then it won't actually try connecting, but
-instead will immediately return an error code 500, with a message like
-"Access to 'ftp' URIs has been disabled".
-
-
-=item *
-
-C<< use LWP::ConnCache; $browser->conn_cache(LWP::ConnCache->new()); >>
-
-This tells the browser object to try using the HTTP/1.1 "Keep-Alive"
-feature, which speeds up requests by reusing the same socket connection
-for multiple requests to the same server.
-
-
-=item *
-
-C<< $browser->agent( 'SomeName/1.23 (more info here maybe)' ) >>
-
-This changes how the browser object will identify itself in
-the default "User-Agent" line is its HTTP requests. By default,
-it'll send "libwww-perl/I<versionnumber>", like
-"libwww-perl/5.65". You can change that to something more descriptive
-like this:
-
- $browser->agent( 'SomeName/3.14 (contact@robotplexus.int)' );
-
-Or if need be, you can go in disguise, like this:
-
- $browser->agent( 'Mozilla/4.0 (compatible; MSIE 5.12; Mac_PowerPC)' );
-
-
-=item *
-
-C<< push @{ $ua->requests_redirectable }, 'POST'; >>
-
-This tells this browser to obey redirection responses to POST requests
-(like most modern interactive browsers), even though the HTTP RFC says
-that should not normally be done.
-
-
-=back
-
-
-For more options and information, see L<the full documentation for
-LWP::UserAgent|LWP::UserAgent>.
-
-
-
-=for comment
- ##########################################################################
-
-
-
-=head2 Writing Polite Robots
-
-If you want to make sure that your LWP-based program respects F<robots.txt>
-files and doesn't make too many requests too fast, you can use the LWP::RobotUA
-class instead of the LWP::UserAgent class.
-
-LWP::RobotUA class is just like LWP::UserAgent, and you can use it like so:
-
- use LWP::RobotUA;
- my $browser = LWP::RobotUA->new('YourSuperBot/1.34', 'you@yoursite.com');
- # Your bot's name and your email address
-
- my $response = $browser->get($url);
-
-But HTTP::RobotUA adds these features:
-
-
-=over
-
-=item *
-
-If the F<robots.txt> on C<$url>'s server forbids you from accessing
-C<$url>, then the C<$browser> object (assuming it's of class LWP::RobotUA)
-won't actually request it, but instead will give you back (in C<$response>) a 403 error
-with a message "Forbidden by robots.txt". That is, if you have this line:
-
- die "$url -- ", $response->status_line, "\nAborted"
- unless $response->is_success;
-
-then the program would die with an error message like this:
-
- http://whatever.site.int/pith/x.html -- 403 Forbidden by robots.txt
- Aborted at whateverprogram.pl line 1234
-
-=item *
-
-If this C<$browser> object sees that the last time it talked to
-C<$url>'s server was too recently, then it will pause (via C<sleep>) to
-avoid making too many requests too often. How long it will pause for, is
-by default one minute -- but you can control it with the C<<
-$browser->delay( I<minutes> ) >> attribute.
-
-For example, this code:
-
- $browser->delay( 7/60 );
-
-...means that this browser will pause when it needs to avoid talking to
-any given server more than once every 7 seconds.
-
-=back
-
-For more options and information, see L<the full documentation for
-LWP::RobotUA|LWP::RobotUA>.
-
-
-
-
-
-=for comment
- ##########################################################################
-
-=head2 Using Proxies
-
-In some cases, you will want to (or will have to) use proxies for
-accessing certain sites and/or using certain protocols. This is most
-commonly the case when your LWP program is running (or could be running)
-on a machine that is behind a firewall.
-
-To make a browser object use proxies that are defined in the usual
-environment variables (C<HTTP_PROXY>, etc.), just call the C<env_proxy>
-on a user-agent object before you go making any requests on it.
-Specifically:
-
- use LWP::UserAgent;
- my $browser = LWP::UserAgent->new;
-
- # And before you go making any requests:
- $browser->env_proxy;
-
-For more information on proxy parameters, see L<the LWP::UserAgent
-documentation|LWP::UserAgent>, specifically the C<proxy>, C<env_proxy>,
-and C<no_proxy> methods.
-
-
-
-=for comment
- ##########################################################################
-
-=head2 HTTP Authentication
-
-Many web sites restrict access to documents by using "HTTP
-Authentication". This isn't just any form of "enter your password"
-restriction, but is a specific mechanism where the HTTP server sends the
-browser an HTTP code that says "That document is part of a protected
-'realm', and you can access it only if you re-request it and add some
-special authorization headers to your request".
-
-For example, the Unicode.org admins stop email-harvesting bots from
-harvesting the contents of their mailing list archives, by protecting
-them with HTTP Authentication, and then publicly stating the username
-and password (at C<http://www.unicode.org/mail-arch/>) -- namely
-username "unicode-ml" and password "unicode".
-
-For example, consider this URL, which is part of the protected
-area of the web site:
-
- http://www.unicode.org/mail-arch/unicode-ml/y2002-m08/0067.html
-
-If you access that with a browser, you'll get a prompt
-like
-"Enter username and password for 'Unicode-MailList-Archives' at server
-'www.unicode.org'".
-
-In LWP, if you just request that URL, like this:
-
- use LWP;
- my $browser = LWP::UserAgent->new;
-
- my $url =
- 'http://www.unicode.org/mail-arch/unicode-ml/y2002-m08/0067.html';
- my $response = $browser->get($url);
-
- die "Error: ", $response->header('WWW-Authenticate') || 'Error accessing',
- # ('WWW-Authenticate' is the realm-name)
- "\n ", $response->status_line, "\n at $url\n Aborting"
- unless $response->is_success;
-
-Then you'll get this error:
-
- Error: Basic realm="Unicode-MailList-Archives"
- 401 Authorization Required
- at http://www.unicode.org/mail-arch/unicode-ml/y2002-m08/0067.html
- Aborting at auth1.pl line 9. [or wherever]
-
-...because the C<$browser> doesn't know any the username and password
-for that realm ("Unicode-MailList-Archives") at that host
-("www.unicode.org"). The simplest way to let the browser know about this
-is to use the C<credentials> method to let it know about a username and
-password that it can try using for that realm at that host. The syntax is:
-
- $browser->credentials(
- 'servername:portnumber',
- 'realm-name',
- 'username' => 'password'
- );
-
-In most cases, the port number is 80, the default TCP/IP port for HTTP; and
-you usually call the C<credentials> method before you make any requests.
-For example:
-
- $browser->credentials(
- 'reports.mybazouki.com:80',
- 'web_server_usage_reports',
- 'plinky' => 'banjo123'
- );
-
-So if we add the following to the program above, right after the C<<
-$browser = LWP::UserAgent->new; >> line...
-
- $browser->credentials( # add this to our $browser 's "key ring"
- 'www.unicode.org:80',
- 'Unicode-MailList-Archives',
- 'unicode-ml' => 'unicode'
- );
-
-...then when we run it, the request succeeds, instead of causing the
-C<die> to be called.
-
-
-
-=for comment
- ##########################################################################
-
-=head2 Accessing HTTPS URLs
-
-When you access an HTTPS URL, it'll work for you just like an HTTP URL
-would -- if your LWP installation has HTTPS support (via an appropriate
-Secure Sockets Layer library). For example:
-
- use LWP;
- my $url = 'https://www.paypal.com/'; # Yes, HTTPS!
- my $browser = LWP::UserAgent->new;
- my $response = $browser->get($url);
- die "Error at $url\n ", $response->status_line, "\n Aborting"
- unless $response->is_success;
- print "Whee, it worked! I got that ",
- $response->content_type, " document!\n";
-
-If your LWP installation doesn't have HTTPS support set up, then the
-response will be unsuccessful, and you'll get this error message:
-
- Error at https://www.paypal.com/
- 501 Protocol scheme 'https' is not supported
- Aborting at paypal.pl line 7. [or whatever program and line]
-
-If your LWP installation I<does> have HTTPS support installed, then the
-response should be successful, and you should be able to consult
-C<$response> just like with any normal HTTP response.
-
-For information about installing HTTPS support for your LWP
-installation, see the helpful F<README.SSL> file that comes in the
-libwww-perl distribution.
-
-
-=for comment
- ##########################################################################
-
-
-
-=head2 Getting Large Documents
-
-When you're requesting a large (or at least potentially large) document,
-a problem with the normal way of using the request methods (like C<<
-$response = $browser->get($url) >>) is that the response object in
-memory will have to hold the whole document -- I<in memory>. If the
-response is a thirty megabyte file, this is likely to be quite an
-imposition on this process's memory usage.
-
-A notable alternative is to have LWP save the content to a file on disk,
-instead of saving it up in memory. This is the syntax to use:
-
- $response = $ua->get($url,
- ':content_file' => $filespec,
- );
-
-For example,
-
- $response = $ua->get('http://search.cpan.org/',
- ':content_file' => '/tmp/sco.html'
- );
-
-When you use this C<:content_file> option, the C<$response> will have
-all the normal header lines, but C<< $response->content >> will be
-empty.
-
-Note that this ":content_file" option isn't supported under older
-versions of LWP, so you should consider adding C<use LWP 5.66;> to check
-the LWP version, if you think your program might run on systems with
-older versions.
-
-If you need to be compatible with older LWP versions, then use
-this syntax, which does the same thing:
-
- use HTTP::Request::Common;
- $response = $ua->request( GET($url), $filespec );
-
-
-=for comment
- ##########################################################################
-
-
-=head1 SEE ALSO
-
-Remember, this article is just the most rudimentary introduction to
-LWP -- to learn more about LWP and LWP-related tasks, you really
-must read from the following:
-
-=over
-
-=item *
-
-L<LWP::Simple> -- simple functions for getting/heading/mirroring URLs
-
-=item *
-
-L<LWP> -- overview of the libwww-perl modules
-
-=item *
-
-L<LWP::UserAgent> -- the class for objects that represent "virtual browsers"
-
-=item *
-
-L<HTTP::Response> -- the class for objects that represent the response to
-a LWP response, as in C<< $response = $browser->get(...) >>
-
-=item *
-
-L<HTTP::Message> and L<HTTP::Headers> -- classes that provide more methods
-to HTTP::Response.
-
-=item *
-
-L<URI> -- class for objects that represent absolute or relative URLs
-
-=item *
-
-L<URI::Escape> -- functions for URL-escaping and URL-unescaping strings
-(like turning "this & that" to and from "this%20%26%20that").
-
-=item *
-
-L<HTML::Entities> -- functions for HTML-escaping and HTML-unescaping strings
-(like turning "C. & E. BrontE<euml>" to and from "C. &amp; E. Bront&euml;")
-
-=item *
-
-L<HTML::TokeParser> and L<HTML::TreeBuilder> -- classes for parsing HTML
-
-=item *
-
-L<HTML::LinkExtor> -- class for finding links in HTML documents
-
-=item *
-
-The book I<Perl & LWP> by Sean M. Burke. O'Reilly & Associates,
-2002. ISBN: 0-596-00178-9, L<http://oreilly.com/catalog/perllwp/>. The
-whole book is also available free online:
-L<http://lwp.interglacial.com>.
-
-=back
-
-
-=head1 COPYRIGHT
-
-Copyright 2002, Sean M. Burke. You can redistribute this document and/or
-modify it, but only under the same terms as Perl itself.
-
-=head1 AUTHOR
-
-Sean M. Burke C<sburke@cpan.org>
-
-=for comment
- ##########################################################################
-
-=cut
-
-# End of Pod
diff --git a/Master/tlpkg/tlperl/lib/meta_notation.pm b/Master/tlpkg/tlperl/lib/meta_notation.pm
new file mode 100644
index 00000000000..2f85cd30c55
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/meta_notation.pm
@@ -0,0 +1,54 @@
+use strict;
+use warnings;
+
+# A tiny private library routine which is a helper to several Perl core
+# modules, to allow a paradigm to be implemented in a single place. The name,
+# contents, or even the existence of this file may be changed at any time and
+# are NOT to be used by anthing outside the Perl core.
+
+sub _meta_notation ($) {
+
+ # Returns a copy of the input string with the nonprintable characters
+ # below 0x100 changed into printables. Any ASCII printables or above 0xFF
+ # are unchanged. (XXX Probably above-Latin1 characters should be
+ # converted to \X{...})
+ #
+ # \0 .. \x1F (which are "\c@" .. "\c_") are changed into ^@, ^A, ^B, ...
+ # ^Z, ^[, ^\, ^], ^^, ^_
+ # \c? is changed into ^?.
+ #
+ # The above accounts for all the ASCII-range nonprintables.
+ #
+ # On ASCII platforms, the upper-Latin1-range characters are converted to
+ # Meta notation, so that \xC1 becomes 'M-A', \xE2 becomes 'M-b', etc.
+ # This is how it always has worked, so is continued that way for backwards
+ # compatibility. XXX Wrong, but the way it has always worked is that \x80
+ # .. \x9F are converted to M- followed by a literal control char. This
+ # probably has escaped attention due to the limited domains this code has
+ # been applied to. ext/SDBM_File/dbu.c does this right.
+ #
+ # On EBCDIC platforms, the upper-Latin1-range characters are converted
+ # into '\x{...}' Meta notation doesn't make sense on EBCDIC platforms
+ # because the ASCII-range printables are a mixture of upper bit set or
+ # not. [A-Za-Z0-9] all have the upper bit set. The underscore likely
+ # doesn't; and other punctuation may or may not. There's no simple
+ # pattern.
+
+ my $string = shift;
+
+ $string =~ s/([\0-\037])/
+ sprintf("^%c",utf8::unicode_to_native(ord($1)^64))/xeg;
+ $string =~ s/\c?/^?/g;
+ if (ord("A") == 65) {
+ $string =~ s/([\200-\377])/sprintf("M-%c",ord($1)&0177)/eg;
+ }
+ else {
+ no warnings 'experimental::regex_sets';
+ # Leave alone things above \xff
+ $string =~ s/( (?[ [\x00-\xFF] & [:^print:]])) /
+ sprintf("\\x{%X}", ord($1))/xaeg;
+ }
+
+ return $string;
+}
+1
diff --git a/Master/tlpkg/tlperl/lib/mro.pm b/Master/tlpkg/tlperl/lib/mro.pm
index 1dddd6180fa..093d080c472 100644
--- a/Master/tlpkg/tlperl/lib/mro.pm
+++ b/Master/tlpkg/tlperl/lib/mro.pm
@@ -12,7 +12,7 @@ use warnings;
# mro.pm versions < 1.00 reserved for MRO::Compat
# for partial back-compat to 5.[68].x
-our $VERSION = '1.16';
+our $VERSION = '1.17';
sub import {
mro::set_mro(scalar(caller), $_[1]) if $_[1];
diff --git a/Master/tlpkg/tlperl/lib/ok.pm b/Master/tlpkg/tlperl/lib/ok.pm
new file mode 100644
index 00000000000..02726ac9641
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/ok.pm
@@ -0,0 +1,47 @@
+package ok;
+$ok::VERSION = '0.16';
+
+use strict;
+use Test::More ();
+
+sub import {
+ shift;
+
+ if (@_) {
+ goto &Test::More::pass if $_[0] eq 'ok';
+ goto &Test::More::use_ok;
+ }
+
+ # No argument list - croak as if we are prototyped like use_ok()
+ my (undef, $file, $line) = caller();
+ ($file =~ /^\(eval/) or die "Not enough arguments for 'use ok' at $file line $line\n";
+}
+
+
+__END__
+
+=head1 NAME
+
+ok - Alternative to Test::More::use_ok
+
+=head1 SYNOPSIS
+
+ use ok 'Some::Module';
+
+=head1 DESCRIPTION
+
+With this module, simply change all C<use_ok> in test scripts to C<use ok>,
+and they will be executed at C<BEGIN> time.
+
+Please see L<Test::use::ok> for the full description.
+
+=head1 CC0 1.0 Universal
+
+To the extent possible under law, å”é³³ has waived all copyright and related
+or neighboring rights to L<Test-use-ok>.
+
+This work is published from Taiwan.
+
+L<http://creativecommons.org/publicdomain/zero/1.0>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/overload.pm b/Master/tlpkg/tlperl/lib/overload.pm
index 51801d643d9..4a1912c2366 100644
--- a/Master/tlpkg/tlperl/lib/overload.pm
+++ b/Master/tlpkg/tlperl/lib/overload.pm
@@ -1,6 +1,6 @@
package overload;
-our $VERSION = '1.22';
+our $VERSION = '1.26';
%ops = (
with_assign => "+ - * / % ** << >> x .",
@@ -8,8 +8,8 @@ our $VERSION = '1.22';
num_comparison => "< <= > >= == !=",
'3way_comparison' => "<=> cmp",
str_comparison => "lt le gt ge eq ne",
- binary => '& &= | |= ^ ^=',
- unary => "neg ! ~",
+ binary => '& &= | |= ^ ^= &. &.= |. |.= ^. ^.=',
+ unary => "neg ! ~ ~.",
mutators => '++ --',
func => "atan2 cos sin exp abs log sqrt int",
conversion => 'bool "" 0+ qr',
@@ -30,7 +30,7 @@ sub nil {}
sub OVERLOAD {
$package = shift;
my %arg = @_;
- my ($sub, $fb);
+ my $sub;
*{$package . "::(("} = \&nil; # Make it findable via fetchmethod.
for (keys %arg) {
if ($_ eq 'fallback') {
@@ -81,7 +81,7 @@ sub ov_method {
return undef unless $globref;
my $sub = \&{*$globref};
no overloading;
- return $sub if !ref $sub or $sub != \&nil;
+ return $sub if $sub != \&nil;
return shift->can($ {*$globref});
}
@@ -252,7 +252,9 @@ illustrates the calling conventions:
# * may recurse once - see table below
Three arguments are passed to all subroutines specified in the
-C<use overload> directive (with one exception - see L</nomethod>).
+C<use overload> directive (with exceptions - see below, particularly
+L</nomethod>).
+
The first of these is the operand providing the overloaded
operator implementation -
in this case, the object whose C<minus()> method is being called.
@@ -310,6 +312,12 @@ An appropriate implementation of C<--> might look like
# ...
sub decr { --${$_[0]}; }
+If the experimental "bitwise" feature is enabled (see L<feature>), a fifth
+TRUE argument is passed to subroutines handling C<&>, C<|>, C<^> and C<~>.
+This indicates that the caller is expecting numeric behaviour. The fourth
+argument will be C<undef>, as that position (C<$_[3]>) is reserved for use
+by L</nomethod>.
+
=head3 Mathemagic, Mutators, and Copy Constructors
The term 'mathemagic' describes the overloaded implementation
@@ -361,8 +369,8 @@ hash C<%overload::ops>:
num_comparison => '< <= > >= == !=',
'3way_comparison'=> '<=> cmp',
str_comparison => 'lt le gt ge eq ne',
- binary => '& &= | |= ^ ^=',
- unary => 'neg ! ~',
+ binary => '& &= | |= ^ ^= &. &.= |. |.= ^. ^.=',
+ unary => 'neg ! ~ ~.',
mutators => '++ --',
func => 'atan2 cos sin exp abs log sqrt int',
conversion => 'bool "" 0+ qr',
@@ -375,6 +383,7 @@ hash C<%overload::ops>:
Most of the overloadable operators map one-to-one to these keys.
Exceptions, including additional overloadable operations not
apparent from this hash, are included in the notes which follow.
+This list is subject to growth over time.
A warning is issued if an attempt is made to register an operator not found
above.
@@ -407,7 +416,7 @@ evaluating an expression.
=item * I<Assignments>
+= -= *= /= %= **= <<= >>= x= .=
- &= |= ^=
+ &= |= ^= &.= |.= ^.=
Simple assignment is not overloadable (the C<'='> key is used
for the L<Copy Constructor>).
@@ -437,7 +446,7 @@ even if C<$a> is a scalar.
=item * I<Non-mutators with a mutator variant>
+ - * / % ** << >> x .
- & | ^
+ & | ^ &. |. ^.
As described L<above|"Calling Conventions and Magic Autogeneration">,
Perl may call methods for operators like C<+> and C<&> in the course
@@ -650,9 +659,9 @@ to C<'-='> and C<'--'> above:
And other assignment variations are analogous to
C<'+='> and C<'-='> (and similar to C<'.='> and C<'x='> above):
- operator || *= /= %= **= <<= >>= &= ^= |=
- -------------------||--------------------------------
- autogenerated from || * / % ** << >> & ^ |
+ operator || *= /= %= **= <<= >>= &= ^= |= &.= ^.= |.=
+ -------------------||-------------------------------------------
+ autogenerated from || * / % ** << >> & ^ | &. ^. |.
Note also that the copy constructor (key C<'='>) may be
autogenerated, but only for objects based on scalars.
@@ -668,7 +677,7 @@ expects. The minimal set is:
+ - * / % ** << >> x
<=> cmp
- & | ^ ~
+ & | ^ ~ &. |. ^. ~.
atan2 cos sin exp log sqrt int
"" 0+ bool
~~
@@ -686,7 +695,8 @@ The specified function will be passed four parameters.
The first three arguments coincide with those that would have been
passed to the corresponding method if it had been defined.
The fourth argument is the C<use overload> key for that missing
-method.
+method. If the experimental "bitwise" feature is enabled (see L<feature>),
+a fifth TRUE argument is passed to subroutines handling C<&>, C<|>, C<^> and C<~> to indicate that the caller is expecting numeric behaviour.
For example, if C<$a> is an object blessed into a package declaring
@@ -1054,7 +1064,7 @@ the stashes, which are rarely used directly, thus should not slow down
Perl.)
If a package uses overload, it carries a special flag. This flag is also
-set when new function are defined or @ISA is modified. There will be a
+set when new functions are defined or @ISA is modified. There will be a
slight speed penalty on the very first operation thereafter that supports
overloading, while the overload tables are updated. If there is no
overloading present, the flag is turned off. Thus the only speed penalty
diff --git a/Master/tlpkg/tlperl/lib/overload/numbers.pm b/Master/tlpkg/tlperl/lib/overload/numbers.pm
index a90c175db98..ccea9e17bc8 100644
--- a/Master/tlpkg/tlperl/lib/overload/numbers.pm
+++ b/Master/tlpkg/tlperl/lib/overload/numbers.pm
@@ -62,13 +62,20 @@ our @names = qw#
(>>=
(&
(&=
+ (&.
+ (&.=
(|
(|=
+ (|.
+ (|.=
(^
(^=
+ (^.
+ (^.=
(<=>
(cmp
(~
+ (~.
(atan2
(cos
(sin
@@ -133,13 +140,20 @@ our @enums = qw#
rshift_ass
band
band_ass
+ sband
+ sband_ass
bor
bor_ass
+ sbor
+ sbor_ass
bxor
bxor_ass
+ sbxor
+ sbxor_ass
ncmp
scmp
compl
+ scompl
atan2
cos
sin
diff --git a/Master/tlpkg/tlperl/lib/parent.pm b/Master/tlpkg/tlperl/lib/parent.pm
index b31603b90db..445ed125e9a 100644
--- a/Master/tlpkg/tlperl/lib/parent.pm
+++ b/Master/tlpkg/tlperl/lib/parent.pm
@@ -1,7 +1,7 @@
package parent;
use strict;
use vars qw($VERSION);
-$VERSION = '0.228';
+$VERSION = '0.232';
sub import {
my $class = shift;
diff --git a/Master/tlpkg/tlperl/lib/perl5db.pl b/Master/tlpkg/tlperl/lib/perl5db.pl
index 707d04d6396..7e7194ee95c 100644
--- a/Master/tlpkg/tlperl/lib/perl5db.pl
+++ b/Master/tlpkg/tlperl/lib/perl5db.pl
@@ -512,18 +512,23 @@ package DB;
use strict;
+use Cwd ();
+
+my $_initial_cwd;
+
BEGIN {eval 'use IO::Handle'}; # Needed for flush only? breaks under miniperl
BEGIN {
require feature;
$^V =~ /^v(\d+\.\d+)/;
feature->import(":$1");
+ $_initial_cwd = Cwd::getcwd();
}
# Debugger for Perl 5.00x; perl5db.pl patch level:
use vars qw($VERSION $header);
-$VERSION = '1.44';
+$VERSION = '1.49';
$header = "perl5db.pl version $VERSION";
@@ -866,6 +871,7 @@ BEGIN {
lock($DBGR);
print "Threads support enabled\n";
} else {
+ *lock = sub(*) {};
*share = sub(\[$@%]) {};
}
}
@@ -1331,6 +1337,9 @@ if (not defined &get_fork_TTY) # only if no routine exists
{
*get_fork_TTY = \&xterm_get_fork_TTY; # use the xterm version
}
+ elsif ( $ENV{TMUX} ) {
+ *get_fork_TTY = \&tmux_get_fork_TTY;
+ }
elsif ( $^O eq 'os2' ) { # If this is OS/2,
*get_fork_TTY = \&os2_get_fork_TTY; # use the OS/2 version
}
@@ -1949,7 +1958,7 @@ sub _DB__handle_y_command {
my @vars = split( ' ', $match_vars || '' );
# Find the pad.
- my $h = eval { PadWalker::peek_my( ( $match_level || 0 ) + 1 ) };
+ my $h = eval { PadWalker::peek_my( ( $match_level || 0 ) + 2 ) };
# Oops. Can't find it.
if (my $Err = $@) {
@@ -2257,6 +2266,13 @@ sub _DB__handle_restart_and_rerun_commands {
# R - restart execution.
# rerun - controlled restart execution.
if ($cmd_cmd eq 'rerun' or $cmd_params eq '') {
+
+ # Change directory to the initial current working directory on
+ # the script startup, so if the debugged program changed the
+ # directory, then we will still be able to find the path to the
+ # the program. (perl 5 RT #121509 ).
+ chdir ($_initial_cwd);
+
my @args = ($cmd_cmd eq 'R' ? restart() : rerun($cmd_params));
# Close all non-system fds for a clean restart. A more
@@ -6525,11 +6541,10 @@ sub _dump_trace_calc_saved_single_arg
s/(.*)/'$1'/s
unless /^(?: -?[\d.]+ | \*[\w:]* )$/x;
- # Turn high-bit characters into meta-whatever.
- s/([\200-\377])/sprintf("M-%c",ord($1)&0177)/eg;
-
- # Turn control characters into ^-whatever.
- s/([\0-\37\177])/sprintf("^%c",ord($1)^64)/eg;
+ # Turn high-bit characters into meta-whatever, and controls into like
+ # '^D'.
+ require 'meta_notation.pm';
+ $_ = _meta_notation($_) if /[[:^print:]]/a;
return $_;
}
@@ -6722,24 +6737,24 @@ sub _db_system {
# We save, change, then restore STDIN and STDOUT to avoid fork() since
# some non-Unix systems can do system() but have problems with fork().
- open( SAVEIN, "<&STDIN" ) || db_warn("Can't save STDIN");
- open( SAVEOUT, ">&STDOUT" ) || db_warn("Can't save STDOUT");
- open( STDIN, "<&IN" ) || db_warn("Can't redirect STDIN");
- open( STDOUT, ">&OUT" ) || db_warn("Can't redirect STDOUT");
+ open( SAVEIN, "<&STDIN" ) || _db_warn("Can't save STDIN");
+ open( SAVEOUT, ">&STDOUT" ) || _db_warn("Can't save STDOUT");
+ open( STDIN, "<&IN" ) || _db_warn("Can't redirect STDIN");
+ open( STDOUT, ">&OUT" ) || _db_warn("Can't redirect STDOUT");
# XXX: using csh or tcsh destroys sigint retvals!
system(@_);
- open( STDIN, "<&SAVEIN" ) || db_warn("Can't restore STDIN");
- open( STDOUT, ">&SAVEOUT" ) || db_warn("Can't restore STDOUT");
+ open( STDIN, "<&SAVEIN" ) || _db_warn("Can't restore STDIN");
+ open( STDOUT, ">&SAVEOUT" ) || _db_warn("Can't restore STDOUT");
close(SAVEIN);
close(SAVEOUT);
# most of the $? crud was coping with broken cshisms
if ( $? >> 8 ) {
- db_warn( "(Command exited ", ( $? >> 8 ), ")\n" );
+ _db_warn( "(Command exited ", ( $? >> 8 ), ")\n" );
}
elsif ($?) {
- db_warn(
+ _db_warn(
"(Command died of SIG#",
( $? & 127 ),
( ( $? & 128 ) ? " -- core dumped" : "" ),
@@ -7077,6 +7092,45 @@ sub macosx_get_fork_TTY
return $tty;
}
+=head3 C<tmux_get_fork_TTY>
+
+Creates a split window for subprocesses when a process running under the
+perl debugger in Tmux forks.
+
+=cut
+
+sub tmux_get_fork_TTY {
+ return unless $ENV{TMUX};
+
+ my $pipe;
+
+ my $status = open $pipe, '-|', 'tmux', 'split-window',
+ '-P', '-F', '#{pane_tty}', 'sleep 100000';
+
+ if ( !$status ) {
+ return;
+ }
+
+ my $tty = <$pipe>;
+ close $pipe;
+
+ if ( $tty ) {
+ chomp $tty;
+
+ if ( !defined $term ) {
+ require Term::ReadLine;
+ if ( !$rl ) {
+ $term = Term::ReadLine::Stub->new( 'perldb', $IN, $OUT );
+ }
+ else {
+ $term = Term::ReadLine->new( 'perldb', $IN, $OUT );
+ }
+ }
+ }
+
+ return $tty;
+}
+
=head2 C<create_IN_OUT($flags)>
Create a new pair of filehandles, pointing to a new TTY. If impossible,
@@ -7519,7 +7573,7 @@ variables during a restart.
Set_list packages up items to be stored in a set of environment variables
(VAR_n, containing the number of items, and VAR_0, VAR_1, etc., containing
the values). Values outside the standard ASCII charset are stored by encoding
-then as hexadecimal values.
+them as hexadecimal values.
=cut
@@ -7535,7 +7589,9 @@ sub set_list {
for my $i ( 0 .. $#list ) {
$val = $list[$i];
$val =~ s/\\/\\\\/g;
- $val =~ s/([\0-\37\177\200-\377])/"\\0x" . unpack('H2',$1)/eg;
+ no warnings 'experimental::regex_sets';
+ $val =~ s/ ( (?[ [\000-\xFF] & [:^print:] ]) ) /
+ "\\0x" . unpack('H2',$1)/xaeg;
$ENV{"${stem}_$i"} = $val;
} ## end for $i (0 .. $#list)
} ## end sub set_list
@@ -8375,7 +8431,7 @@ sub print_help {
# wide. If it's wider than that, an extra space will be added.
$help_str =~ s{
^ # only matters at start of line
- ( \040{4} | \t )* # some subcommands are indented
+ ( \ {4} | \t )* # some subcommands are indented
( < ? # so <CR> works
[BI] < [^\t\n] + ) # find an eeevil ornament
( \t+ ) # original separation, discarded
diff --git a/Master/tlpkg/tlperl/lib/perlfaq.pm b/Master/tlpkg/tlperl/lib/perlfaq.pm
index 6d6a05a75e6..8fc808aaf27 100644
--- a/Master/tlpkg/tlperl/lib/perlfaq.pm
+++ b/Master/tlpkg/tlperl/lib/perlfaq.pm
@@ -1,6 +1,5 @@
+use strict;
+use warnings;
package perlfaq;
-{
- $perlfaq::VERSION = '5.0150044';
-}
-
-0; # not is it supposed to be loaded
+$perlfaq::VERSION = '5.021009';
+1;
diff --git a/Master/tlpkg/tlperl/lib/perllocal.pod b/Master/tlpkg/tlperl/lib/perllocal.pod
index b1a11e6c3f6..9d1cc66743c 100644
--- a/Master/tlpkg/tlperl/lib/perllocal.pod
+++ b/Master/tlpkg/tlperl/lib/perllocal.pod
@@ -1,4 +1,4 @@
-=head2 Sat Apr 25 13:03:57 2015: C<Module> L<Math::Int64|Math::Int64>
+=head2 Sun Mar 13 20:28:26 2016: C<Module> L<Math::Int64|Math::Int64>
=over 4
@@ -12,7 +12,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 0.52>
+C<VERSION: 0.54>
=item *
@@ -20,7 +20,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 13:08:37 2015: C<Module> L<IO::String|IO::String>
+=head2 Sun Mar 13 20:29:47 2016: C<Module> L<IO::String|IO::String>
=over 4
@@ -42,7 +42,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 13:09:50 2015: C<Module> L<Digest::SHA1|Digest::SHA1>
+=head2 Sun Mar 13 20:30:50 2016: C<Module> L<Digest::SHA1|Digest::SHA1>
=over 4
@@ -64,7 +64,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 13:10:48 2015: C<Module> L<File::Which|File::Which>
+=head2 Sun Mar 13 20:32:30 2016: C<Module> L<File::Which|File::Which>
=over 4
@@ -78,15 +78,15 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 1.16>
+C<VERSION: 1.21>
=item *
-C<EXE_FILES: script/pwhich>
+C<EXE_FILES: >
=back
-=head2 Sat Apr 25 13:21:41 2015: C<Module> L<Encode::compat|Encode::compat>
+=head2 Sun Mar 13 20:33:25 2016: C<Module> L<Encode::compat|Encode::compat>
=over 4
@@ -108,7 +108,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 13:22:41 2015: C<Module> L<Encode::Locale|Encode::Locale>
+=head2 Sun Mar 13 20:34:41 2016: C<Module> L<Encode::Locale|Encode::Locale>
=over 4
@@ -122,7 +122,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 1.04>
+C<VERSION: 1.05>
=item *
@@ -130,7 +130,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 13:24:11 2015: C<Module> L<Win32::API|Win32::API>
+=head2 Sun Mar 13 20:36:38 2016: C<Module> L<Win32::API|Win32::API>
=over 4
@@ -144,7 +144,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 0.80>
+C<VERSION: 0.84>
=item *
@@ -152,7 +152,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 13:25:32 2015: C<Module> L<Win32API::Registry|Win32API::Registry>
+=head2 Sun Mar 13 20:43:18 2016: C<Module> L<Win32API::Registry|Win32API::Registry>
=over 4
@@ -174,7 +174,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 13:31:36 2015: C<Module> L<Win32::Console|Win32::Console>
+=head2 Sun Mar 13 20:44:15 2016: C<Module> L<Win32::Console|Win32::Console>
=over 4
@@ -196,7 +196,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 13:37:31 2015: C<Module> L<Win32::TieRegistry|Win32::TieRegistry>
+=head2 Sun Mar 13 20:45:39 2016: C<Module> L<Win32::TieRegistry|Win32::TieRegistry>
=over 4
@@ -210,7 +210,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 0.29>
+C<VERSION: 0.30>
=item *
@@ -218,7 +218,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 13:39:41 2015: C<Module> L<Win32::Shortcut|Win32::Shortcut>
+=head2 Sun Mar 13 20:46:37 2016: C<Module> L<Win32::Shortcut|Win32::Shortcut>
=over 4
@@ -240,7 +240,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 13:41:20 2015: C<Module> L<Win32::OLE|Win32::OLE>
+=head2 Sun Mar 13 20:48:08 2016: C<Module> L<Win32::OLE|Win32::OLE>
=over 4
@@ -262,7 +262,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 13:46:29 2015: C<Module> L<Socket|Socket>
+=head2 Sun Mar 13 20:51:13 2016: C<Module> L<Socket|Socket>
=over 4
@@ -276,7 +276,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 2.018>
+C<VERSION: 2.021>
=item *
@@ -284,7 +284,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:08:15 2015: C<Module> L<Date::Parse|Date::Parse>
+=head2 Sun Mar 13 20:53:08 2016: C<Module> L<Date::Parse|Date::Parse>
=over 4
@@ -306,7 +306,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:09:18 2015: C<Module> L<HTTP::Date|HTTP::Date>
+=head2 Sun Mar 13 20:54:11 2016: C<Module> L<HTTP::Date|HTTP::Date>
=over 4
@@ -328,7 +328,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:10:33 2015: C<Module> L<File::Listing|File::Listing>
+=head2 Sun Mar 13 20:54:58 2016: C<Module> L<File::Listing|File::Listing>
=over 4
@@ -350,7 +350,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:11:25 2015: C<Module> L<IO::HTML|IO::HTML>
+=head2 Sun Mar 13 20:55:38 2016: C<Module> L<IO::HTML|IO::HTML>
=over 4
@@ -372,7 +372,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:12:15 2015: C<Module> L<LWP::MediaTypes|LWP::MediaTypes>
+=head2 Sun Mar 13 20:56:22 2016: C<Module> L<LWP::MediaTypes|LWP::MediaTypes>
=over 4
@@ -394,7 +394,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:13:36 2015: C<Module> L<URI|URI>
+=head2 Sun Mar 13 20:57:04 2016: C<Module> L<URI|URI>
=over 4
@@ -408,7 +408,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 1.67>
+C<VERSION: 1.71>
=item *
@@ -416,7 +416,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:14:29 2015: C<Module> L<HTTP::Message|HTTP::Message>
+=head2 Sun Mar 13 20:58:10 2016: C<Module> L<HTTP::Message|HTTP::Message>
=over 4
@@ -430,7 +430,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.06>
+C<VERSION: 6.11>
=item *
@@ -438,7 +438,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:15:26 2015: C<Module> L<HTML::Tagset|HTML::Tagset>
+=head2 Sun Mar 13 20:59:00 2016: C<Module> L<HTML::Tagset|HTML::Tagset>
=over 4
@@ -460,7 +460,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:17:01 2015: C<Module> L<HTML::Parser|HTML::Parser>
+=head2 Sun Mar 13 21:00:11 2016: C<Module> L<HTML::Parser|HTML::Parser>
=over 4
@@ -474,7 +474,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 3.71>
+C<VERSION: 3.72>
=item *
@@ -482,7 +482,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:17:51 2015: C<Module> L<WWW::RobotRules|WWW::RobotRules>
+=head2 Sun Mar 13 21:00:50 2016: C<Module> L<WWW::RobotRules|WWW::RobotRules>
=over 4
@@ -504,7 +504,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:18:46 2015: C<Module> L<HTTP::Negotiate|HTTP::Negotiate>
+=head2 Sun Mar 13 21:01:40 2016: C<Module> L<HTTP::Negotiate|HTTP::Negotiate>
=over 4
@@ -526,7 +526,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:19:34 2015: C<Module> L<Net::HTTP|Net::HTTP>
+=head2 Sun Mar 13 21:02:17 2016: C<Module> L<Net::HTTP|Net::HTTP>
=over 4
@@ -540,7 +540,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.07>
+C<VERSION: 6.09>
=item *
@@ -548,7 +548,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:20:28 2015: C<Module> L<Mozilla::CA|Mozilla::CA>
+=head2 Sun Mar 13 21:02:57 2016: C<Module> L<Mozilla::CA|Mozilla::CA>
=over 4
@@ -562,7 +562,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 20141217>
+C<VERSION: 20160104>
=item *
@@ -570,7 +570,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:21:25 2015: C<Module> L<HTTP::Daemon|HTTP::Daemon>
+=head2 Sun Mar 13 21:04:07 2016: C<Module> L<HTTP::Daemon|HTTP::Daemon>
=over 4
@@ -592,7 +592,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:22:20 2015: C<Module> L<HTTP::Cookies|HTTP::Cookies>
+=head2 Sun Mar 13 21:05:02 2016: C<Module> L<HTTP::Cookies|HTTP::Cookies>
=over 4
@@ -614,7 +614,7 @@ C<EXE_FILES: >
=back
-=head2 Sat Apr 25 15:23:47 2015: C<Module> L<LWP|LWP>
+=head2 Sun Mar 13 21:06:10 2016: C<Module> L<LWP|LWP>
=over 4
@@ -628,7 +628,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.13>
+C<VERSION: 6.15>
=item *
@@ -636,7 +636,7 @@ C<EXE_FILES: bin/lwp-request bin/lwp-mirror bin/lwp-download bin/lwp-dump>
=back
-=head2 Sat Apr 25 20:57:38 2015: C<Module> L<Tk|Tk>
+=head2 Sun Mar 13 22:47:32 2016: C<Module> L<Tk|Tk>
=over 4
@@ -658,7 +658,7 @@ C<EXE_FILES: ptksh ptked gedi>
=back
-=head2 Sat Apr 25 21:06:53 2015: C<Module> L<Tk::DirSelect|Tk::DirSelect>
+=head2 Sun Mar 13 22:50:19 2016: C<Module> L<Tk::DirSelect|Tk::DirSelect>
=over 4
@@ -680,3 +680,25 @@ C<EXE_FILES: >
=back
+=head2 Wed Mar 16 21:33:33 2016: C<Module> L<Win32::Process|Win32::Process>
+
+=over 4
+
+=item *
+
+C<installed into: c:\tlperl\site\lib>
+
+=item *
+
+C<LINKTYPE: dynamic>
+
+=item *
+
+C<VERSION: 0.16>
+
+=item *
+
+C<EXE_FILES: >
+
+=back
+
diff --git a/Master/tlpkg/tlperl/lib/re.pm b/Master/tlpkg/tlperl/lib/re.pm
index ea7e3d021ad..058b8aa961c 100644
--- a/Master/tlpkg/tlperl/lib/re.pm
+++ b/Master/tlpkg/tlperl/lib/re.pm
@@ -4,7 +4,7 @@ package re;
use strict;
use warnings;
-our $VERSION = "0.26";
+our $VERSION = "0.32";
our @ISA = qw(Exporter);
our @EXPORT_OK = ('regmust',
qw(is_regexp regexp_pattern
@@ -23,7 +23,9 @@ my %reflags = (
s => 1 << ($PMMOD_SHIFT + 1),
i => 1 << ($PMMOD_SHIFT + 2),
x => 1 << ($PMMOD_SHIFT + 3),
- p => 1 << ($PMMOD_SHIFT + 4),
+ n => 1 << ($PMMOD_SHIFT + 5),
+ p => 1 << ($PMMOD_SHIFT + 6),
+ strict => 1 << ($PMMOD_SHIFT + 10),
# special cases:
d => 0,
l => 1,
@@ -57,6 +59,7 @@ my %flags = (
TRIEC => 0x000004,
DUMP => 0x000008,
FLAGS => 0x000010,
+ TEST => 0x000020,
EXECUTE => 0x00FF00,
INTUIT => 0x000100,
@@ -108,6 +111,17 @@ sub _load_unload {
sub bits {
my $on = shift;
my $bits = 0;
+ my $turning_all_off = ! @_ && ! $on;
+ my %seen; # Has flag already been seen?
+ if ($turning_all_off) {
+
+ # Pretend were called with certain parameters, which are best dealt
+ # with that way.
+ push @_, keys %bitmask; # taint and eval
+ push @_, 'strict';
+ }
+
+ # Process each subpragma parameter
ARG:
foreach my $idx (0..$#_){
my $s=$_[$idx];
@@ -138,6 +152,31 @@ sub bits {
} elsif ($EXPORT_OK{$s}) {
require Exporter;
re->export_to_level(2, 're', $s);
+ } elsif ($s eq 'strict') {
+ if ($on) {
+ $^H{reflags} |= $reflags{$s};
+ warnings::warnif('experimental::re_strict',
+ "\"use re 'strict'\" is experimental");
+
+ # Turn on warnings if not already done.
+ if (! warnings::enabled('regexp')) {
+ require warnings;
+ warnings->import('regexp');
+ $^H{re_strict} = 1;
+ }
+ }
+ else {
+ $^H{reflags} &= ~$reflags{$s} if $^H{reflags};
+
+ # Turn off warnings if we turned them on.
+ warnings->unimport('regexp') if $^H{re_strict};
+ }
+ if ($^H{reflags}) {
+ $^H |= $flags_hint;
+ }
+ else {
+ $^H &= ~$flags_hint;
+ }
} elsif ($s =~ s/^\///) {
my $reflags = $^H{reflags} || 0;
my $seen_charset;
@@ -182,11 +221,12 @@ sub bits {
}
else {
delete $^H{reflags_charset}
- if defined $^H{reflags_charset}
- && $^H{reflags_charset} == $reflags{$_};
+ if defined $^H{reflags_charset}
+ && $^H{reflags_charset} == $reflags{$_};
}
} elsif (exists $reflags{$_}) {
- $on
+ $seen{$_}++;
+ $on
? $reflags |= $reflags{$_}
: ($reflags &= ~$reflags{$_});
} else {
@@ -198,8 +238,8 @@ sub bits {
}
}
($^H{reflags} = $reflags or defined $^H{reflags_charset})
- ? $^H |= $flags_hint
- : ($^H &= ~$flags_hint);
+ ? $^H |= $flags_hint
+ : ($^H &= ~$flags_hint);
} else {
require Carp;
Carp::carp("Unknown \"re\" subpragma '$s' (known ones are: ",
@@ -207,6 +247,26 @@ sub bits {
")");
}
}
+ if (exists $seen{'x'} && $seen{'x'} > 1
+ && (warnings::enabled("deprecated")
+ || warnings::enabled("regexp")))
+ {
+ my $message = "Having more than one /x regexp modifier is deprecated";
+ if (warnings::enabled("deprecated")) {
+ warnings::warn("deprecated", $message);
+ }
+ else {
+ warnings::warn("regexp", $message);
+ }
+ }
+
+ if ($turning_all_off) {
+ _load_unload(0);
+ $^H{reflags} = 0;
+ $^H{reflags_charset} = 0;
+ $^H &= ~$flags_hint;
+ }
+
$bits;
}
@@ -247,6 +307,8 @@ re - Perl pragma to alter regular expression behaviour
# switch)
}
+ use re 'strict'; # Raise warnings for more conditions
+
use re '/ix';
"FOO" =~ / foo /; # /ix implied
no re '/x';
@@ -308,6 +370,54 @@ interpolation. Thus:
I<is> allowed if $pat is a precompiled regular expression, even
if $pat contains C<(?{ ... })> assertions or C<(??{ ... })> subexpressions.
+=head2 'strict' mode
+
+Note that this is an experimental feature which may be changed or removed in a
+future Perl release.
+
+When C<use re 'strict'> is in effect, stricter checks are applied than
+otherwise when compiling regular expressions patterns. These may cause more
+warnings to be raised than otherwise, and more things to be fatal instead of
+just warnings. The purpose of this is to find and report at compile time some
+things, which may be legal, but have a reasonable possibility of not being the
+programmer's actual intent. This automatically turns on the C<"regexp">
+warnings category (if not already on) within its scope.
+
+As an example of something that is caught under C<"strict'>, but not
+otherwise, is the pattern
+
+ qr/\xABC/
+
+The C<"\x"> construct without curly braces should be followed by exactly two
+hex digits; this one is followed by three. This currently evaluates as
+equivalent to
+
+ qr/\x{AB}C/
+
+that is, the character whose code point value is C<0xAB>, followed by the
+letter C<C>. But since C<C> is a a hex digit, there is a reasonable chance
+that the intent was
+
+ qr/\x{ABC}/
+
+that is the single character at C<0xABC>. Under C<'strict'> it is an error to
+not follow C<\x> with exactly two hex digits. When not under C<'strict'> a
+warning is generated if there is only one hex digit, and no warning is raised
+if there are more than two.
+
+It is expected that what exactly C<'strict'> does will evolve over time as we
+gain experience with it. This means that programs that compile under it in
+today's Perl may not compile, or may have more or fewer warnings, in future
+Perls. There is no backwards compatibility promises with regards to it. Also
+there are already proposals for an alternate syntax for enabling it. For
+these reasons, using it will raise a C<experimental::re_strict> class warning,
+unless that category is turned off.
+
+Note that if a pattern compiled within C<'strict'> is recompiled, say by
+interpolating into another pattern, outside of C<'strict'>, it is not checked
+again for strictness. This is because if it works under strict it must work
+under non-strict.
+
=head2 '/flags' mode
When C<use re '/flags'> is specified, the given flags are automatically
@@ -396,6 +506,14 @@ Detailed info about trie compilation.
Dump the final program out after it is compiled and optimised.
+=item FLAGS
+
+Dump the flags associated with the program
+
+=item TEST
+
+Print output intended for testing the internals of the compile process
+
=back
=item Execute related options
@@ -448,6 +566,10 @@ Enable debugging of the recursion stack in the engine. Enabling
or disabling this option automatically does the same for debugging
states as well. This output from this can be quite large.
+=item GPOS
+
+Enable debugging of the \G modifier.
+
=item OPTIMISEM
Enable enhanced optimisation debugging and start-point optimisations.
@@ -473,6 +595,7 @@ debug options.
Almost definitely only useful to people hacking
on the offsets part of the debug engine.
+
=back
=item Other useful flags
diff --git a/Master/tlpkg/tlperl/lib/sigtrap.pm b/Master/tlpkg/tlperl/lib/sigtrap.pm
index df728c8ca6e..7d801461d48 100644
--- a/Master/tlpkg/tlperl/lib/sigtrap.pm
+++ b/Master/tlpkg/tlperl/lib/sigtrap.pm
@@ -8,7 +8,7 @@ sigtrap - Perl pragma to enable simple signal handling
use Carp;
-$VERSION = 1.07;
+$VERSION = 1.08;
$Verbose ||= 0;
sub import {
@@ -99,8 +99,8 @@ sub handler_traceback {
s/([\'\\])/\\$1/g;
s/([^\0]*)/'$1'/
unless /^(?: -?[\d.]+ | \*[\w:]* )$/x;
- s/([\200-\377])/sprintf("M-%c",ord($1)&0177)/eg;
- s/([\0-\37\177])/sprintf("^%c",ord($1)^64)/eg;
+ require 'meta_notation.pm';
+ $_ = _meta_notation($_) if /[[:^print:]]/a;
push(@a, $_);
}
$w = $w ? '@ = ' : '$ = ';
diff --git a/Master/tlpkg/tlperl/lib/strict.pm b/Master/tlpkg/tlperl/lib/strict.pm
index 8eed8bc3f7b..03ed21ca81f 100644
--- a/Master/tlpkg/tlperl/lib/strict.pm
+++ b/Master/tlpkg/tlperl/lib/strict.pm
@@ -1,6 +1,6 @@
package strict;
-$strict::VERSION = "1.08";
+$strict::VERSION = "1.09";
# Verify that we're called correctly so that strictures will work.
unless ( __FILE__ =~ /(^|[\/\\])\Q${\__PACKAGE__}\E\.pmc?$/ ) {
@@ -9,26 +9,46 @@ unless ( __FILE__ =~ /(^|[\/\\])\Q${\__PACKAGE__}\E\.pmc?$/ ) {
die("Incorrect use of pragma '${\__PACKAGE__}' at $f line $l.\n");
}
-my %bitmask = (
-refs => 0x00000002,
-subs => 0x00000200,
-vars => 0x00000400
-);
-my %explicit_bitmask = (
-refs => 0x00000020,
-subs => 0x00000040,
-vars => 0x00000080
-);
+my ( %bitmask, %explicit_bitmask );
+
+BEGIN {
+ %bitmask = (
+ refs => 0x00000002,
+ subs => 0x00000200,
+ vars => 0x00000400,
+ );
+
+ %explicit_bitmask = (
+ refs => 0x00000020,
+ subs => 0x00000040,
+ vars => 0x00000080,
+ );
+
+ my $bits = 0;
+ $bits |= $_ for values %bitmask;
+
+ my $inline_all_bits = $bits;
+ *all_bits = sub () { $inline_all_bits };
+
+ $bits = 0;
+ $bits |= $_ for values %explicit_bitmask;
+
+ my $inline_all_explicit_bits = $bits;
+ *all_explicit_bits = sub () { $inline_all_explicit_bits };
+}
sub bits {
my $bits = 0;
my @wrong;
foreach my $s (@_) {
- if (exists $bitmask{$s}) {
- $^H |= $explicit_bitmask{$s};
- }
- else { push @wrong, $s };
- $bits |= $bitmask{$s} || 0;
+ if (exists $bitmask{$s}) {
+ $^H |= $explicit_bitmask{$s};
+
+ $bits |= $bitmask{$s};
+ }
+ else {
+ push @wrong, $s;
+ }
}
if (@wrong) {
require Carp;
@@ -37,16 +57,21 @@ sub bits {
$bits;
}
-my @default_bits = qw(refs subs vars);
-
sub import {
shift;
- $^H |= bits(@_ ? @_ : @default_bits);
+ $^H |= @_ ? &bits : all_bits | all_explicit_bits;
}
sub unimport {
shift;
- $^H &= ~ bits(@_ ? @_ : @default_bits);
+
+ if (@_) {
+ $^H &= ~&bits;
+ }
+ else {
+ $^H &= ~all_bits;
+ $^H |= all_explicit_bits;
+ }
}
1;
diff --git a/Master/tlpkg/tlperl/lib/threads.pm b/Master/tlpkg/tlperl/lib/threads.pm
index fcefbcc1fb0..7d7ea3db6d0 100644
--- a/Master/tlpkg/tlperl/lib/threads.pm
+++ b/Master/tlpkg/tlperl/lib/threads.pm
@@ -5,7 +5,7 @@ use 5.008;
use strict;
use warnings;
-our $VERSION = '1.93';
+our $VERSION = '2.01';
my $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -134,7 +134,7 @@ threads - Perl interpreter-based threads
=head1 VERSION
-This document describes threads version 1.92
+This document describes threads version 2.01
=head1 WARNING
@@ -1006,7 +1006,8 @@ signalling behavior is only in effect in the following situations:
=item * Perl has been built with C<PERL_OLD_SIGNALS> (see C<perl -V>).
-=item * The environment variable C<PERL_SIGNALS> is set to C<unsafe> (see L<perlrun/"PERL_SIGNALS">).
+=item * The environment variable C<PERL_SIGNALS> is set to C<unsafe>
+(see L<perlrun/"PERL_SIGNALS">).
=item * The module L<Perl::Unsafe::Signals> is used.
diff --git a/Master/tlpkg/tlperl/lib/threads/shared.pm b/Master/tlpkg/tlperl/lib/threads/shared.pm
index bad2c412530..cdb19902684 100644
--- a/Master/tlpkg/tlperl/lib/threads/shared.pm
+++ b/Master/tlpkg/tlperl/lib/threads/shared.pm
@@ -7,7 +7,7 @@ use warnings;
use Scalar::Util qw(reftype refaddr blessed);
-our $VERSION = '1.46'; # Please update the pod, too.
+our $VERSION = '1.48'; # Please update the pod, too.
my $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -195,7 +195,7 @@ threads::shared - Perl extension for sharing data structures between threads
=head1 VERSION
-This document describes threads::shared version 1.46
+This document describes threads::shared version 1.48
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/unicore/Blocks.txt b/Master/tlpkg/tlperl/lib/unicore/Blocks.txt
index d45ab0cff2b..3653af7a470 100644
--- a/Master/tlpkg/tlperl/lib/unicore/Blocks.txt
+++ b/Master/tlpkg/tlperl/lib/unicore/Blocks.txt
@@ -1,8 +1,8 @@
-# Blocks-6.3.0.txt
-# Date: 2012-12-02, 09:45:00 GMT [KW, LI]
+# Blocks-7.0.0.txt
+# Date: 2014-04-03, 23:23:00 GMT [RP, KW]
#
# Unicode Character Database
-# Copyright (c) 1991-2012 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
#
@@ -82,6 +82,7 @@
19E0..19FF; Khmer Symbols
1A00..1A1F; Buginese
1A20..1AAF; Tai Tham
+1AB0..1AFF; Combining Diacritical Marks Extended
1B00..1B7F; Balinese
1B80..1BBF; Sundanese
1BC0..1BFF; Batak
@@ -160,11 +161,13 @@ A900..A92F; Kayah Li
A930..A95F; Rejang
A960..A97F; Hangul Jamo Extended-A
A980..A9DF; Javanese
+A9E0..A9FF; Myanmar Extended-B
AA00..AA5F; Cham
AA60..AA7F; Myanmar Extended-A
AA80..AADF; Tai Viet
AAE0..AAFF; Meetei Mayek Extensions
AB00..AB2F; Ethiopic Extended-A
+AB30..AB6F; Latin Extended-E
ABC0..ABFF; Meetei Mayek
AC00..D7AF; Hangul Syllables
D7B0..D7FF; Hangul Jamo Extended-B
@@ -191,54 +194,83 @@ FFF0..FFFF; Specials
101D0..101FF; Phaistos Disc
10280..1029F; Lycian
102A0..102DF; Carian
+102E0..102FF; Coptic Epact Numbers
10300..1032F; Old Italic
10330..1034F; Gothic
+10350..1037F; Old Permic
10380..1039F; Ugaritic
103A0..103DF; Old Persian
10400..1044F; Deseret
10450..1047F; Shavian
10480..104AF; Osmanya
+10500..1052F; Elbasan
+10530..1056F; Caucasian Albanian
+10600..1077F; Linear A
10800..1083F; Cypriot Syllabary
10840..1085F; Imperial Aramaic
+10860..1087F; Palmyrene
+10880..108AF; Nabataean
10900..1091F; Phoenician
10920..1093F; Lydian
10980..1099F; Meroitic Hieroglyphs
109A0..109FF; Meroitic Cursive
10A00..10A5F; Kharoshthi
10A60..10A7F; Old South Arabian
+10A80..10A9F; Old North Arabian
+10AC0..10AFF; Manichaean
10B00..10B3F; Avestan
10B40..10B5F; Inscriptional Parthian
10B60..10B7F; Inscriptional Pahlavi
+10B80..10BAF; Psalter Pahlavi
10C00..10C4F; Old Turkic
10E60..10E7F; Rumi Numeral Symbols
11000..1107F; Brahmi
11080..110CF; Kaithi
110D0..110FF; Sora Sompeng
11100..1114F; Chakma
+11150..1117F; Mahajani
11180..111DF; Sharada
+111E0..111FF; Sinhala Archaic Numbers
+11200..1124F; Khojki
+112B0..112FF; Khudawadi
+11300..1137F; Grantha
+11480..114DF; Tirhuta
+11580..115FF; Siddham
+11600..1165F; Modi
11680..116CF; Takri
+118A0..118FF; Warang Citi
+11AC0..11AFF; Pau Cin Hau
12000..123FF; Cuneiform
12400..1247F; Cuneiform Numbers and Punctuation
13000..1342F; Egyptian Hieroglyphs
16800..16A3F; Bamum Supplement
+16A40..16A6F; Mro
+16AD0..16AFF; Bassa Vah
+16B00..16B8F; Pahawh Hmong
16F00..16F9F; Miao
1B000..1B0FF; Kana Supplement
+1BC00..1BC9F; Duployan
+1BCA0..1BCAF; Shorthand Format Controls
1D000..1D0FF; Byzantine Musical Symbols
1D100..1D1FF; Musical Symbols
1D200..1D24F; Ancient Greek Musical Notation
1D300..1D35F; Tai Xuan Jing Symbols
1D360..1D37F; Counting Rod Numerals
1D400..1D7FF; Mathematical Alphanumeric Symbols
+1E800..1E8DF; Mende Kikakui
1EE00..1EEFF; Arabic Mathematical Alphabetic Symbols
1F000..1F02F; Mahjong Tiles
1F030..1F09F; Domino Tiles
1F0A0..1F0FF; Playing Cards
1F100..1F1FF; Enclosed Alphanumeric Supplement
1F200..1F2FF; Enclosed Ideographic Supplement
-1F300..1F5FF; Miscellaneous Symbols And Pictographs
+1F300..1F5FF; Miscellaneous Symbols and Pictographs
1F600..1F64F; Emoticons
-1F680..1F6FF; Transport And Map Symbols
+1F650..1F67F; Ornamental Dingbats
+1F680..1F6FF; Transport and Map Symbols
1F700..1F77F; Alchemical Symbols
+1F780..1F7FF; Geometric Shapes Extended
+1F800..1F8FF; Supplemental Arrows-C
20000..2A6DF; CJK Unified Ideographs Extension B
2A700..2B73F; CJK Unified Ideographs Extension C
2B740..2B81F; CJK Unified Ideographs Extension D
diff --git a/Master/tlpkg/tlperl/lib/unicore/CombiningClass.pl b/Master/tlpkg/tlperl/lib/unicore/CombiningClass.pl
index 584523a2e91..e77e4a45d87 100644
--- a/Master/tlpkg/tlperl/lib/unicore/CombiningClass.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/CombiningClass.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -149,7 +149,7 @@ return <<'END';
8F6 220
8F7 8F8 230
8F9 8FA 220
-8FB 8FE 230
+8FB 8FF 230
93C 7
94D 9
951 230
@@ -206,6 +206,10 @@ FC6 220
1A60 9
1A75 1A7C 230
1A7F 220
+1AB0 1AB4 230
+1AB5 1ABA 220
+1ABB 1ABC 230
+1ABD 220
1B34 7
1B44 9
1B6B 230
@@ -224,6 +228,7 @@ FC6 220
1CE2 1CE8 1
1CED 220
1CF4 230
+1CF8 1CF9 230
1DC0 1DC1 230
1DC2 220
1DC3 1DC9 230
@@ -233,7 +238,7 @@ FC6 220
1DCE 214
1DCF 220
1DD0 202
-1DD1 1DE6 230
+1DD1 1DF5 230
1DFC 233
1DFD 220
1DFE 230
@@ -281,21 +286,44 @@ AAF6 9
ABED 9
FB1E 26
FE20 FE26 230
+FE27 FE2D 220
101FD 220
+102E0 220
+10376 1037A 230
10A0D 220
10A0F 230
10A38 230
10A39 1
10A3A 220
10A3F 9
+10AE5 230
+10AE6 220
11046 9
+1107F 9
110B9 9
110BA 7
11100 11102 230
11133 11134 9
+11173 7
111C0 9
+11235 9
+11236 7
+112E9 7
+112EA 9
+1133C 7
+1134D 9
+11366 1136C 230
+11370 11374 230
+114C2 9
+114C3 7
+115BF 9
+115C0 7
+1163F 9
116B6 9
116B7 7
+16AF0 16AF4 1
+16B30 16B36 230
+1BC9E 1
1D165 1D166 216
1D167 1D169 1
1D16D 226
@@ -305,4 +333,5 @@ FE20 FE26 230
1D18A 1D18B 220
1D1AA 1D1AD 230
1D242 1D244 230
+1E8D0 1E8D6 220
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/Decomposition.pl b/Master/tlpkg/tlperl/lib/unicore/Decomposition.pl
index cad0ff0fe31..796c26b925c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/Decomposition.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/Decomposition.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -2334,9 +2334,15 @@ FB9 0F90 0FB5
33FD <compat> 0033 0030 65E5
33FE <compat> 0033 0031 65E5
33FF <square> 0067 0061 006C
+A69C <super> 044A
+A69D <super> 044C
A770 <super> A76F
A7F8 <super> 0126
A7F9 <super> 0153
+AB5C <super> A727
+AB5D <super> AB37
+AB5E <super> 026B
+AB5F <super> AB52
F900 8C48
F901 66F4
F902 8ECA
@@ -3873,6 +3879,13 @@ FFEE <narrow> 25CB
110AB 110A5 110BA
1112E 11131 11127
1112F 11132 11127
+1134B 11347 1133E
+1134C 11347 11357
+114BB 114B9 114BA
+114BC 114B9 114B0
+114BE 114B9 114BD
+115BA 115B8 115AF
+115BB 115B9 115AF
1D15E 1D157 1D165
1D15F 1D158 1D165
1D160 1D15F 1D16E
diff --git a/Master/tlpkg/tlperl/lib/unicore/Heavy.pl b/Master/tlpkg/tlperl/lib/unicore/Heavy.pl
index c1a197d7244..d78afc884c4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/Heavy.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/Heavy.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
@@ -157,6 +157,60 @@
@utf8::inline_definitions = (
'V0',
+'V1
+0',
+'V2
+0
+1114112',
+'V4
+9
+14
+32
+33',
+'V6
+10
+14
+133
+134
+8232
+8234',
+'V6
+48
+58
+65
+91
+97
+123',
+'V4
+65
+91
+97
+123',
+'V4
+9
+10
+32
+33',
+'V4
+0
+32
+127
+128',
+'V2
+48
+58',
+'V2
+33
+127',
+'V2
+97
+123',
+'V2
+32
+127',
+'V2
+65
+91',
'V2
12334
12336',
@@ -456,6 +510,9 @@
3712
3840',
'V2
+92736
+92784',
+'V2
1984
2048',
'V2
@@ -480,6 +537,9 @@
93952
94112',
'V2
+71168
+71264',
+'V2
69216
69248',
'V2
@@ -579,6 +639,9 @@
12032
12256',
'V2
+70144
+70224',
+'V2
128
256',
'V2
@@ -630,6 +693,12 @@
66560
66640',
'V2
+66816
+66864',
+'V2
+70400
+70528',
+'V2
5920
5952',
'V2
@@ -642,6 +711,9 @@
43264
43312',
'V2
+67072
+67456',
+'V2
126976
127024',
'V2
@@ -666,6 +738,9 @@
66640
66688',
'V2
+71040
+71168',
+'V2
3456
3584',
'V2
@@ -687,6 +762,9 @@
3840
4096',
'V2
+70784
+70880',
+'V2
6320
6400',
'V2
@@ -699,6 +777,9 @@
92160
92736',
'V2
+92880
+92928',
+'V2
12544
12592',
'V2
@@ -714,6 +795,9 @@
9984
10176',
'V2
+113664
+113824',
+'V2
4608
4992',
'V2
@@ -744,6 +828,9 @@
12448
12544',
'V2
+69968
+70016',
+'V2
66000
66048',
'V2
@@ -783,6 +870,9 @@
65056
65072',
'V2
+70320
+70400',
+'V2
256
384',
'V2
@@ -795,21 +885,36 @@
42784
43008',
'V2
+43824
+43888',
+'V2
3328
3456',
'V2
6144
6320',
'V2
+67712
+67760',
+'V2
6528
6624',
'V2
66304
66352',
'V2
+66384
+66432',
+'V2
68608
68688',
'V2
+67680
+67712',
+'V2
+72384
+72448',
+'V2
2048
2112',
'V2
@@ -846,6 +951,9 @@
68096
68192',
'V2
+68288
+68352',
+'V2
11008
11264',
'V2
@@ -867,6 +975,12 @@
10496
10624',
'V2
+129024
+129280',
+'V2
+71840
+71936',
+'V2
42128
42192',
'V2
@@ -903,9 +1017,15 @@
43616
43648',
'V2
+43488
+43520',
+'V2
8528
8592',
'V2
+92928
+93072',
+'V2
7424
7552',
'V2
@@ -948,6 +1068,9 @@
119808
120832',
'V2
+124928
+125152',
+'V2
127136
127232',
'V2
@@ -996,6 +1119,9 @@
7552
7616',
'V2
+68480
+68528',
+'V2
11776
11904',
'V2
@@ -1005,6 +1131,9 @@
8352
8400',
'V2
+6832
+6912',
+'V2
7616
7680',
'V2
@@ -1023,6 +1152,9 @@
688
768',
'V2
+68224
+68256',
+'V2
68192
68224',
'V2
@@ -1065,12 +1197,24 @@
119296
119376',
'V2
+66864
+66928',
+'V2
8448
8528',
'V2
+66272
+66304',
+'V2
+128896
+129024',
+'V2
7680
7936',
'V2
+128592
+128640',
+'V2
65856
65936',
'V2
@@ -1095,6 +1239,9 @@
68416
68448',
'V2
+70112
+70144',
+'V2
194560
195104',
'V2
@@ -1103,6 +1250,9 @@
'V2
127488
127744',
+'V2
+113824
+113840',
'V6
188
191
@@ -1177,13 +1327,6 @@
1725
1726',
'V6
-1589
-1591
-1693
-1695
-1787
-1788',
-'V6
1591
1593
1695
@@ -1297,20 +1440,108 @@
2220
2221',
'V2
+2225
+2226',
+'V2
1741
1742',
'V2
1828
1829',
'V2
+68315
+68317',
+'V2
+68310
+68311',
+'V2
+68311
+68312',
+'V2
+68331
+68332',
+'V2
+68324
+68325',
+'V2
+68333
+68334',
+'V2
+68295
+68296',
+'V2
1731
1732',
'V2
+68313
+68315',
+'V2
+68289
+68291',
+'V2
+68332
+68333',
+'V2
+68301
+68302',
+'V2
+68304
+68307',
+'V2
+68318
+68321',
+'V2
+68321
+68322',
+'V2
+68302
+68303',
+'V2
+68303
+68304',
+'V2
+68288
+68289',
+'V2
+68291
+68293',
+'V2
+68317
+68318',
+'V2
+68297
+68299',
+'V2
+68293
+68294',
+'V2
+68307
+68308',
+'V2
+68312
+68313',
+'V2
+68334
+68335',
+'V2
+68308
+68309',
+'V2
+68335
+68336',
+'V2
+68309
+68310',
+'V2
1914
1916',
-'V2
+'V6
43122
-43123',
+43123
+68301
+68302
+68311
+68312',
'V4
8212
8213
@@ -1332,11 +1563,13 @@
'V2
45
46',
-'V4
+'V6
8228
8231
65049
-65050',
+65050
+68342
+68343',
'V2
133
134',
@@ -1455,9 +1688,11 @@
'V2
8534
8535',
-'V4
+'V6
65818
65819
+66292
+66293
69235
69236',
'V2
@@ -1469,19 +1704,14 @@
'V2
8540
8541',
-'V6
-65819
-65820
-65899
-65900
-69236
-69237',
'V2
8536
8537',
-'V4
+'V6
65820
65821
+66294
+66295
69237
69238',
'V2
@@ -1495,9 +1725,11 @@
'V2
8541
8542',
-'V4
+'V6
65822
65823
+66296
+66297
69239
69240',
'V2
@@ -1506,26 +1738,23 @@
'V2
8542
8543',
-'V4
+'V6
65823
65824
+66297
+66298
69240
69241',
-'V4
+'V6
65824
65825
+66298
+66299
69241
69242',
'V2
3886
3887',
-'V6
-65825
-65826
-66378
-66379
-69242
-69243',
'V2
3891
3892',
@@ -1609,80 +1838,36 @@
'V2
74803
74804',
-'V4
+'V2
+93022
+93023',
+'V6
20159
20160
20740
-20741',
+20741
+93023
+93024',
'V2
-20806
-20807',
-'V1
-0',
-'V2
-0
-1114112',
-'V6
-4448
-4520
-44032
-55204
-55216
-55239',
+93024
+93025',
'V4
-9
-14
-32
-33',
-'V6
-10
-14
-133
-134
-8232
-8234',
-'V6
-48
-58
-65
-91
-97
-123',
-'V4
-65
-91
-97
-123',
-'V4
-9
-10
-32
-33',
-'V4
-0
-32
-127
-128',
-'V2
-48
-58',
-'V2
-33
-127',
-'V2
-97
-123',
-'V2
-32
-127',
-'V2
-65
-91',
+20806
+20807
+93025
+93026',
'V4
40960
42125
42128
42183',
+'V6
+92736
+92767
+92768
+92778
+92782
+92784',
'V2
1984
2043',
@@ -1690,6 +1875,11 @@
42240
42540',
'V4
+66864
+66916
+66927
+66928',
+'V4
67648
67670
67671
@@ -1710,6 +1900,11 @@
92160
92729',
'V4
+92880
+92910
+92912
+92918',
+'V4
7104
7156
7164
@@ -1721,11 +1916,13 @@
12590
12704
12731',
-'V4
+'V6
69632
69710
69714
-69744',
+69744
+69759
+69760',
'V4
6656
6684
@@ -1760,6 +1957,9 @@
'V2
77824
78895',
+'V2
+66816
+66856',
'V4
11264
11311
@@ -1771,10 +1971,8 @@
'V2
5920
5941',
-'V4
+'V2
66304
-66335
-66336
66340',
'V6
43392
@@ -1783,6 +1981,16 @@
43482
43486
43488',
+'V4
+43264
+43310
+43311
+43312',
+'V4
+70144
+70162
+70163
+70206',
'V2
69760
69826',
@@ -1793,6 +2001,13 @@
7242
7245
7248',
+'V6
+67072
+67383
+67392
+67414
+67424
+67432',
'V2
66176
66205',
@@ -1801,12 +2016,25 @@
67898
67903
67904',
+'V2
+69968
+70007',
'V4
2112
2140
2142
2143',
'V4
+68288
+68327
+68331
+68343',
+'V4
+124928
+125125
+125127
+125143',
+'V4
68000
68024
68030
@@ -1818,6 +2046,11 @@
94079
94095
94112',
+'V4
+71168
+71237
+71248
+71258',
'V6
43744
43767
@@ -1825,11 +2058,18 @@
44014
44016
44026',
-'V4
+'V6
4096
4256
+43488
+43519
43616
-43644',
+43648',
+'V4
+67712
+67743
+67751
+67760',
'V2
5760
5789',
@@ -1842,6 +2082,12 @@
66720
66730',
'V2
+72384
+72441',
+'V2
+66384
+66427',
+'V2
43072
43128',
'V4
@@ -1849,6 +2095,13 @@
68467
68472
68480',
+'V6
+68480
+68498
+68505
+68509
+68521
+68528',
'V4
67840
67868
@@ -1868,7 +2121,7 @@
5792
5867
5870
-5873',
+5881',
'V4
2048
2094
@@ -1879,11 +2132,23 @@
43205
43214
43226',
-'V4
+'V6
70016
70089
+70093
+70094
70096
-70106',
+70107',
+'V4
+71040
+71094
+71096
+71114',
+'V4
+70320
+70379
+70384
+70394',
'V4
69840
69865
@@ -1947,22 +2212,32 @@
3648
3676',
'V4
+70784
+70856
+70864
+70874',
+'V4
66432
66462
66463
66464',
'V4
+71840
+71923
+71935
+71936',
+'V4
66464
66500
66504
66518',
'V6
73728
-74607
+74649
74752
-74851
+74863
74864
-74868',
+74869',
'V6
6656
6684
@@ -1986,6 +2261,13 @@
43486
43488',
'V6
+2790
+2800
+70144
+70162
+70163
+70206',
+'V6
2406
2416
43056
@@ -1993,6 +2275,13 @@
69760
69826',
'V6
+2404
+2416
+43056
+43066
+69968
+70007',
+'V6
1600
1601
2112
@@ -2000,13 +2289,29 @@
2142
2143',
'V6
+1600
+1601
+68288
+68327
+68331
+68343',
+'V6
+43056
+43066
+71168
+71237
+71248
+71258',
+'V6
6146
6148
6149
6150
43072
43128',
-'V4
+'V6
+2404
+2406
2534
2544
43008
@@ -2044,21 +2349,10 @@
'_perl_problematic_locale_foldeds_start' => 'Perl/_PerlPr2',
'_perl_problematic_locale_folds' => 'Perl/_PerlPro',
'_perl_quotemeta' => 'Perl/_PerlQuo',
-'_x_extend' => 'Perl/_XExtend',
-'_x_gcb_l' => '#/47',
-'_x_gcb_lv' => 'GCB/LV',
-'_x_gcb_lvt' => 'GCB/LVT',
-'_x_gcb_prepend' => '#/0',
-'_x_gcb_t' => '#/48',
-'_x_gcb_v' => '#/49',
-'_x_lv_lvt_v' => '#/437',
-'_x_regular_begin' => 'Perl/_XRegula',
-'_x_ri' => '#/52',
-'_x_special_begin_start' => 'Perl/_XSpecia',
'age=1.1' => 'Age/V11',
'age=2' => 'Age/V20',
'age=2.0' => 'Age/V20',
-'age=2.1' => '#/62',
+'age=2.1' => '#/75',
'age=3' => 'Age/V30',
'age=3.0' => 'Age/V30',
'age=3.1' => 'Age/V31',
@@ -2073,65 +2367,67 @@
'age=6' => 'Age/V60',
'age=6.0' => 'Age/V60',
'age=6.1' => 'Age/V61',
-'age=6.2' => '#/63',
-'age=6.3' => '#/64',
+'age=6.2' => '#/76',
+'age=6.3' => '#/77',
+'age=7' => 'Age/V70',
+'age=7.0' => 'Age/V70',
'ccc=0' => 'Ccc/NR',
'ccc=1' => 'Ccc/OV',
-'ccc=10' => '#/10',
-'ccc=103' => '#/39',
-'ccc=107' => '#/40',
-'ccc=11' => '#/11',
-'ccc=118' => '#/41',
-'ccc=12' => '#/12',
-'ccc=122' => '#/42',
-'ccc=129' => '#/43',
-'ccc=13' => '#/13',
-'ccc=130' => '#/44',
-'ccc=132' => '#/45',
+'ccc=10' => '#/23',
+'ccc=103' => '#/52',
+'ccc=107' => '#/53',
+'ccc=11' => '#/24',
+'ccc=118' => '#/54',
+'ccc=12' => '#/25',
+'ccc=122' => '#/55',
+'ccc=129' => '#/56',
+'ccc=13' => '#/26',
+'ccc=130' => '#/57',
+'ccc=132' => '#/58',
'ccc=133' => '#/0',
-'ccc=14' => '#/14',
-'ccc=15' => '#/15',
-'ccc=16' => '#/16',
-'ccc=17' => '#/17',
-'ccc=18' => '#/18',
-'ccc=19' => '#/19',
-'ccc=20' => '#/20',
+'ccc=14' => '#/27',
+'ccc=15' => '#/28',
+'ccc=16' => '#/29',
+'ccc=17' => '#/30',
+'ccc=18' => '#/31',
+'ccc=19' => '#/32',
+'ccc=20' => '#/33',
'ccc=200' => '#/0',
-'ccc=202' => '#/9',
-'ccc=21' => '#/21',
-'ccc=214' => '#/8',
+'ccc=202' => '#/22',
+'ccc=21' => '#/34',
+'ccc=214' => '#/21',
'ccc=216' => 'Ccc/ATAR',
-'ccc=218' => '#/4',
-'ccc=22' => '#/22',
+'ccc=218' => '#/17',
+'ccc=22' => '#/35',
'ccc=220' => 'Ccc/B',
'ccc=222' => 'Ccc/BR',
-'ccc=224' => '#/1',
-'ccc=226' => '#/2',
-'ccc=228' => '#/3',
-'ccc=23' => '#/23',
+'ccc=224' => '#/14',
+'ccc=226' => '#/15',
+'ccc=228' => '#/16',
+'ccc=23' => '#/36',
'ccc=230' => 'Ccc/A',
'ccc=232' => 'Ccc/AR',
'ccc=233' => 'Ccc/DB',
-'ccc=234' => '#/5',
-'ccc=24' => '#/24',
-'ccc=240' => '#/6',
-'ccc=25' => '#/25',
-'ccc=26' => '#/26',
-'ccc=27' => '#/27',
-'ccc=28' => '#/28',
-'ccc=29' => '#/29',
-'ccc=30' => '#/30',
-'ccc=31' => '#/31',
-'ccc=32' => '#/32',
-'ccc=33' => '#/33',
-'ccc=34' => '#/34',
-'ccc=35' => '#/35',
-'ccc=36' => '#/36',
+'ccc=234' => '#/18',
+'ccc=24' => '#/37',
+'ccc=240' => '#/19',
+'ccc=25' => '#/38',
+'ccc=26' => '#/39',
+'ccc=27' => '#/40',
+'ccc=28' => '#/41',
+'ccc=29' => '#/42',
+'ccc=30' => '#/43',
+'ccc=31' => '#/44',
+'ccc=32' => '#/45',
+'ccc=33' => '#/46',
+'ccc=34' => '#/47',
+'ccc=35' => '#/48',
+'ccc=36' => '#/49',
'ccc=7' => 'Ccc/NK',
-'ccc=8' => '#/7',
-'ccc=84' => '#/37',
+'ccc=8' => '#/20',
+'ccc=84' => '#/50',
'ccc=9' => 'Ccc/VR',
-'ccc=91' => '#/38',
+'ccc=91' => '#/51',
'in=1.1' => 'Age/V11',
'in=2' => 'In/2_0',
'in=2.0' => 'In/2_0',
@@ -2152,134 +2448,138 @@
'in=6.1' => 'In/6_1',
'in=6.2' => 'In/6_2',
'in=6.3' => 'In/6_3',
-'nv=-1/2' => '#/408',
+'in=7' => 'In/7_0',
+'in=7.0' => 'In/7_0',
+'nv=-1/2' => '#/478',
'nv=0' => 'Nv/0',
'nv=1' => 'Nv/1',
-'nv=1/10' => '#/409',
-'nv=1/16' => '#/410',
+'nv=1/10' => '#/479',
+'nv=1/16' => '#/480',
'nv=1/2' => 'Nv/1_2',
'nv=1/3' => 'Nv/1_3',
'nv=1/4' => 'Nv/1_4',
-'nv=1/5' => '#/386',
-'nv=1/6' => '#/387',
-'nv=1/7' => '#/388',
+'nv=1/5' => '#/458',
+'nv=1/6' => '#/459',
+'nv=1/7' => '#/460',
'nv=1/8' => 'Nv/1_8',
-'nv=1/9' => '#/389',
+'nv=1/9' => '#/461',
'nv=10' => 'Nv/10',
'nv=100' => 'Nv/100',
'nv=1000' => 'Nv/1000',
'nv=10000' => 'Nv/10000',
-'nv=100000' => '#/430',
-'nv=100000000' => '#/433',
-'nv=1000000000000' => '#/434',
+'nv=100000' => '#/500',
+'nv=1000000' => '#/503',
+'nv=100000000' => '#/504',
+'nv=10000000000' => '#/505',
+'nv=1000000000000' => '#/506',
'nv=11' => 'Nv/11',
-'nv=11/2' => '#/411',
+'nv=11/2' => '#/481',
'nv=12' => 'Nv/12',
'nv=13' => 'Nv/13',
-'nv=13/2' => '#/412',
+'nv=13/2' => '#/482',
'nv=14' => 'Nv/14',
'nv=15' => 'Nv/15',
-'nv=15/2' => '#/413',
+'nv=15/2' => '#/483',
'nv=16' => 'Nv/16',
'nv=17' => 'Nv/17',
-'nv=17/2' => '#/414',
+'nv=17/2' => '#/484',
'nv=18' => 'Nv/18',
'nv=19' => 'Nv/19',
'nv=2' => 'Nv/2',
'nv=2/3' => 'Nv/2_3',
-'nv=2/5' => '#/390',
+'nv=2/5' => '#/462',
'nv=20' => 'Nv/20',
-'nv=200' => '#/391',
-'nv=2000' => '#/415',
-'nv=20000' => '#/423',
-'nv=21' => '#/359',
-'nv=216000' => '#/431',
-'nv=22' => '#/360',
-'nv=23' => '#/361',
-'nv=24' => '#/362',
-'nv=25' => '#/363',
-'nv=26' => '#/364',
-'nv=27' => '#/365',
-'nv=28' => '#/366',
-'nv=29' => '#/367',
+'nv=200' => '#/463',
+'nv=2000' => '#/485',
+'nv=20000' => '#/493',
+'nv=21' => '#/431',
+'nv=216000' => '#/501',
+'nv=22' => '#/432',
+'nv=23' => '#/433',
+'nv=24' => '#/434',
+'nv=25' => '#/435',
+'nv=26' => '#/436',
+'nv=27' => '#/437',
+'nv=28' => '#/438',
+'nv=29' => '#/439',
'nv=3' => 'Nv/3',
-'nv=3/16' => '#/416',
-'nv=3/2' => '#/392',
+'nv=3/16' => '#/486',
+'nv=3/2' => '#/464',
'nv=3/4' => 'Nv/3_4',
-'nv=3/5' => '#/393',
-'nv=3/8' => '#/394',
+'nv=3/5' => '#/465',
+'nv=3/8' => '#/466',
'nv=30' => 'Nv/30',
-'nv=300' => '#/395',
-'nv=3000' => '#/417',
-'nv=30000' => '#/424',
-'nv=31' => '#/368',
-'nv=32' => '#/369',
-'nv=33' => '#/370',
-'nv=34' => '#/371',
-'nv=35' => '#/372',
-'nv=36' => '#/373',
-'nv=37' => '#/374',
-'nv=38' => '#/375',
-'nv=39' => '#/376',
+'nv=300' => 'Nv/300',
+'nv=3000' => '#/487',
+'nv=30000' => '#/494',
+'nv=31' => '#/440',
+'nv=32' => '#/441',
+'nv=33' => '#/442',
+'nv=34' => '#/443',
+'nv=35' => '#/444',
+'nv=36' => '#/445',
+'nv=37' => '#/446',
+'nv=38' => '#/447',
+'nv=39' => '#/448',
'nv=4' => 'Nv/4',
-'nv=4/5' => '#/396',
+'nv=4/5' => '#/467',
'nv=40' => 'Nv/40',
-'nv=400' => '#/397',
-'nv=4000' => '#/418',
-'nv=40000' => '#/425',
-'nv=41' => '#/377',
-'nv=42' => '#/378',
-'nv=43' => '#/379',
-'nv=432000' => '#/432',
-'nv=44' => '#/380',
-'nv=45' => '#/381',
-'nv=46' => '#/382',
-'nv=47' => '#/383',
-'nv=48' => '#/384',
-'nv=49' => '#/385',
+'nv=400' => '#/468',
+'nv=4000' => '#/488',
+'nv=40000' => '#/495',
+'nv=41' => '#/449',
+'nv=42' => '#/450',
+'nv=43' => '#/451',
+'nv=432000' => '#/502',
+'nv=44' => '#/452',
+'nv=45' => '#/453',
+'nv=46' => '#/454',
+'nv=47' => '#/455',
+'nv=48' => '#/456',
+'nv=49' => '#/457',
'nv=5' => 'Nv/5',
-'nv=5/2' => '#/398',
-'nv=5/6' => '#/399',
-'nv=5/8' => '#/400',
+'nv=5/2' => '#/469',
+'nv=5/6' => '#/470',
+'nv=5/8' => '#/471',
'nv=50' => 'Nv/50',
'nv=500' => 'Nv/500',
'nv=5000' => 'Nv/5000',
'nv=50000' => 'Nv/50000',
'nv=6' => 'Nv/6',
'nv=60' => 'Nv/60',
-'nv=600' => '#/401',
-'nv=6000' => '#/419',
-'nv=60000' => '#/426',
+'nv=600' => '#/472',
+'nv=6000' => '#/489',
+'nv=60000' => '#/496',
'nv=7' => 'Nv/7',
-'nv=7/2' => '#/402',
-'nv=7/8' => '#/403',
+'nv=7/2' => '#/473',
+'nv=7/8' => '#/474',
'nv=70' => 'Nv/70',
-'nv=700' => '#/404',
-'nv=7000' => '#/420',
-'nv=70000' => '#/427',
+'nv=700' => '#/475',
+'nv=7000' => '#/490',
+'nv=70000' => '#/497',
'nv=8' => 'Nv/8',
'nv=80' => 'Nv/80',
-'nv=800' => '#/405',
-'nv=8000' => '#/421',
-'nv=80000' => '#/428',
+'nv=800' => '#/476',
+'nv=8000' => '#/491',
+'nv=80000' => '#/498',
'nv=9' => 'Nv/9',
-'nv=9/2' => '#/406',
+'nv=9/2' => '#/477',
'nv=90' => 'Nv/90',
-'nv=900' => '#/407',
-'nv=9000' => '#/422',
-'nv=90000' => '#/429',
+'nv=900' => 'Nv/900',
+'nv=9000' => '#/492',
+'nv=90000' => '#/499',
);
# Maps property, table to file for those using loose matching. For paths
# whose directory is '#', the file is in the form of a numeric index into
# @inline_definitions
%utf8::loose_to_file_of = (
-'aegeannumbers' => '#/245',
+'aegeannumbers' => '#/281',
'age=na' => 'Age/NA',
'age=unassigned' => 'Age/NA',
'age=v11' => 'Age/V11',
'age=v20' => 'Age/V20',
-'age=v21' => '#/62',
+'age=v21' => '#/75',
'age=v30' => 'Age/V30',
'age=v31' => 'Age/V31',
'age=v32' => 'Age/V32',
@@ -2290,20 +2590,22 @@
'age=v52' => 'Age/V52',
'age=v60' => 'Age/V60',
'age=v61' => 'Age/V61',
-'age=v62' => '#/63',
-'age=v63' => '#/64',
-'ahex' => '#/46',
-'ahex=f' => '#/!46',
-'ahex=false' => '#/!46',
-'ahex=n' => '#/!46',
-'ahex=no' => '#/!46',
-'ahex=t' => '#/46',
-'ahex=true' => '#/46',
-'ahex=y' => '#/46',
-'ahex=yes' => '#/46',
-'alchemical' => '#/199',
-'alchemicalsymbols' => '#/199',
-'all' => '#/435',
+'age=v62' => '#/76',
+'age=v63' => '#/77',
+'age=v70' => 'Age/V70',
+'aghb' => '#/511',
+'ahex' => '#/59',
+'ahex=f' => '#/!59',
+'ahex=false' => '#/!59',
+'ahex=n' => '#/!59',
+'ahex=no' => '#/!59',
+'ahex=t' => '#/59',
+'ahex=true' => '#/59',
+'ahex=y' => '#/59',
+'ahex=yes' => '#/59',
+'alchemical' => '#/229',
+'alchemicalsymbols' => '#/229',
+'all' => '#/1',
'alnum' => 'Perl/Alnum',
'alpha' => 'Alpha/Y',
'alpha=f' => '!Alpha/Y',
@@ -2315,43 +2617,45 @@
'alpha=y' => 'Alpha/Y',
'alpha=yes' => 'Alpha/Y',
'alphabetic' => 'Alpha/Y',
-'alphabeticpf' => '#/236',
-'alphabeticpresentationforms' => '#/236',
-'ancientgreekmusic' => '#/281',
-'ancientgreekmusicalnotation' => '#/281',
-'ancientgreeknumbers' => '#/284',
-'ancientsymbols' => '#/252',
-'any' => '#/436',
+'alphabeticpf' => '#/271',
+'alphabeticpresentationforms' => '#/271',
+'ancientgreekmusic' => '#/320',
+'ancientgreekmusicalnotation' => '#/320',
+'ancientgreeknumbers' => '#/327',
+'ancientsymbols' => '#/288',
+'any' => '#/2',
'arab' => 'Sc/Arab',
'arabic' => 'Sc/Arab',
-'arabicexta' => '#/200',
-'arabicextendeda' => '#/200',
-'arabicmath' => '#/201',
-'arabicmathematicalalphabeticsymbols' => '#/201',
-'arabicpfa' => '#/181',
-'arabicpfb' => '#/182',
-'arabicpresentationformsa' => '#/181',
-'arabicpresentationformsb' => '#/182',
-'arabicsup' => '#/183',
-'arabicsupplement' => '#/183',
+'arabicexta' => '#/230',
+'arabicextendeda' => '#/230',
+'arabicmath' => '#/231',
+'arabicmathematicalalphabeticsymbols' => '#/231',
+'arabicpfa' => '#/205',
+'arabicpfb' => '#/206',
+'arabicpresentationformsa' => '#/205',
+'arabicpresentationformsb' => '#/206',
+'arabicsup' => '#/207',
+'arabicsupplement' => '#/207',
'armenian' => 'Sc/Armn',
-'armi' => '#/452',
+'armi' => '#/512',
'armn' => 'Sc/Armn',
-'arrows' => '#/107',
-'ascii' => '#/91',
-'asciihexdigit' => '#/46',
+'arrows' => '#/122',
+'ascii' => '#/106',
+'asciihexdigit' => '#/59',
'assigned' => 'Perl/Assigned',
-'avestan' => '#/453',
-'avst' => '#/453',
-'bali' => '#/454',
-'balinese' => '#/454',
-'bamu' => '#/455',
-'bamum' => '#/455',
-'bamumsup' => '#/159',
-'bamumsupplement' => '#/159',
-'basiclatin' => '#/91',
-'batak' => '#/456',
-'batk' => '#/456',
+'avestan' => '#/513',
+'avst' => '#/513',
+'bali' => '#/514',
+'balinese' => '#/514',
+'bamu' => '#/515',
+'bamum' => '#/515',
+'bamumsup' => '#/180',
+'bamumsupplement' => '#/180',
+'basiclatin' => '#/106',
+'bass' => '#/516',
+'bassavah' => '#/516',
+'batak' => '#/517',
+'batk' => '#/517',
'bc=al' => 'Bc/AL',
'bc=an' => 'Bc/AN',
'bc=arabicletter' => 'Bc/AL',
@@ -2367,35 +2671,35 @@
'bc=europeannumber' => 'Bc/EN',
'bc=europeanseparator' => 'Bc/ES',
'bc=europeanterminator' => 'Bc/ET',
-'bc=firststrongisolate' => '#/66',
-'bc=fsi' => '#/66',
+'bc=firststrongisolate' => '#/79',
+'bc=fsi' => '#/79',
'bc=l' => 'Bc/L',
'bc=lefttoright' => 'Bc/L',
-'bc=lefttorightembedding' => '#/67',
-'bc=lefttorightisolate' => '#/68',
-'bc=lefttorightoverride' => '#/69',
-'bc=lre' => '#/67',
-'bc=lri' => '#/68',
-'bc=lro' => '#/69',
+'bc=lefttorightembedding' => '#/80',
+'bc=lefttorightisolate' => '#/81',
+'bc=lefttorightoverride' => '#/82',
+'bc=lre' => '#/80',
+'bc=lri' => '#/81',
+'bc=lro' => '#/82',
'bc=nonspacingmark' => 'Bc/NSM',
'bc=nsm' => 'Bc/NSM',
'bc=on' => 'Bc/ON',
'bc=otherneutral' => 'Bc/ON',
'bc=paragraphseparator' => 'Bc/B',
-'bc=pdf' => '#/70',
-'bc=pdi' => '#/71',
-'bc=popdirectionalformat' => '#/70',
-'bc=popdirectionalisolate' => '#/71',
+'bc=pdf' => '#/83',
+'bc=pdi' => '#/84',
+'bc=popdirectionalformat' => '#/83',
+'bc=popdirectionalisolate' => '#/84',
'bc=r' => 'Bc/R',
'bc=righttoleft' => 'Bc/R',
-'bc=righttoleftembedding' => '#/72',
-'bc=righttoleftisolate' => '#/73',
-'bc=righttoleftoverride' => '#/74',
-'bc=rle' => '#/72',
-'bc=rli' => '#/73',
-'bc=rlo' => '#/74',
-'bc=s' => '#/65',
-'bc=segmentseparator' => '#/65',
+'bc=righttoleftembedding' => '#/85',
+'bc=righttoleftisolate' => '#/86',
+'bc=righttoleftoverride' => '#/87',
+'bc=rle' => '#/85',
+'bc=rli' => '#/86',
+'bc=rlo' => '#/87',
+'bc=s' => '#/78',
+'bc=segmentseparator' => '#/78',
'bc=whitespace' => 'Bc/WS',
'bc=ws' => 'Bc/WS',
'beng' => 'Sc/Beng',
@@ -2421,364 +2725,401 @@
'bidim=yes' => 'BidiM/Y',
'bidimirrored' => 'BidiM/Y',
'blank' => 'Perl/Blank',
-'blk=aegeannumbers' => '#/245',
-'blk=alchemical' => '#/199',
-'blk=alchemicalsymbols' => '#/199',
-'blk=alphabeticpf' => '#/236',
-'blk=alphabeticpresentationforms' => '#/236',
-'blk=ancientgreekmusic' => '#/281',
-'blk=ancientgreekmusicalnotation' => '#/281',
-'blk=ancientgreeknumbers' => '#/284',
-'blk=ancientsymbols' => '#/252',
-'blk=arabic' => '#/106',
-'blk=arabicexta' => '#/200',
-'blk=arabicextendeda' => '#/200',
-'blk=arabicmath' => '#/201',
-'blk=arabicmathematicalalphabeticsymbols' => '#/201',
-'blk=arabicpfa' => '#/181',
-'blk=arabicpfb' => '#/182',
-'blk=arabicpresentationformsa' => '#/181',
-'blk=arabicpresentationformsb' => '#/182',
-'blk=arabicsup' => '#/183',
-'blk=arabicsupplement' => '#/183',
-'blk=armenian' => '#/157',
-'blk=arrows' => '#/107',
-'blk=ascii' => '#/91',
-'blk=avestan' => '#/129',
-'blk=balinese' => '#/158',
-'blk=bamum' => '#/92',
-'blk=bamumsup' => '#/159',
-'blk=bamumsupplement' => '#/159',
-'blk=basiclatin' => '#/91',
-'blk=batak' => '#/93',
-'blk=bengali' => '#/130',
-'blk=blockelements' => '#/246',
-'blk=bopomofo' => '#/160',
-'blk=bopomofoext' => '#/217',
-'blk=bopomofoextended' => '#/217',
-'blk=boxdrawing' => '#/202',
-'blk=brahmi' => '#/108',
-'blk=braille' => '#/131',
-'blk=braillepatterns' => '#/131',
-'blk=buginese' => '#/161',
-'blk=buhid' => '#/94',
-'blk=byzantinemusic' => '#/253',
-'blk=byzantinemusicalsymbols' => '#/253',
-'blk=canadiansyllabics' => '#/90',
-'blk=carian' => '#/109',
-'blk=chakma' => '#/110',
-'blk=cham' => '#/83',
-'blk=cherokee' => '#/162',
-'blk=cjk' => '#/76',
-'blk=cjkcompat' => '#/184',
-'blk=cjkcompatforms' => '#/254',
-'blk=cjkcompatibility' => '#/184',
-'blk=cjkcompatibilityforms' => '#/254',
-'blk=cjkcompatibilityideographs' => '#/285',
-'blk=cjkcompatibilityideographssupplement' => '#/292',
-'blk=cjkcompatideographs' => '#/285',
-'blk=cjkcompatideographssup' => '#/292',
-'blk=cjkexta' => '#/132',
-'blk=cjkextb' => '#/133',
-'blk=cjkextc' => '#/134',
-'blk=cjkextd' => '#/135',
-'blk=cjkradicalssup' => '#/255',
-'blk=cjkradicalssupplement' => '#/255',
-'blk=cjkstrokes' => '#/203',
-'blk=cjksymbols' => '#/204',
-'blk=cjksymbolsandpunctuation' => '#/204',
-'blk=cjkunifiedideographs' => '#/76',
-'blk=cjkunifiedideographsextensiona' => '#/132',
-'blk=cjkunifiedideographsextensionb' => '#/133',
-'blk=cjkunifiedideographsextensionc' => '#/134',
-'blk=cjkunifiedideographsextensiond' => '#/135',
-'blk=combiningdiacriticalmarks' => '#/239',
-'blk=combiningdiacriticalmarksforsymbols' => '#/293',
-'blk=combiningdiacriticalmarkssupplement' => '#/262',
-'blk=combininghalfmarks' => '#/187',
-'blk=combiningmarksforsymbols' => '#/293',
-'blk=commonindicnumberforms' => '#/275',
-'blk=compatjamo' => '#/205',
-'blk=controlpictures' => '#/260',
-'blk=coptic' => '#/111',
-'blk=countingrod' => '#/218',
-'blk=countingrodnumerals' => '#/218',
-'blk=cuneiform' => '#/185',
-'blk=cuneiformnumbers' => '#/270',
-'blk=cuneiformnumbersandpunctuation' => '#/270',
-'blk=currencysymbols' => '#/261',
-'blk=cypriotsyllabary' => '#/271',
-'blk=cyrillic' => '#/163',
-'blk=cyrillicexta' => '#/237',
-'blk=cyrillicextb' => '#/238',
-'blk=cyrillicextendeda' => '#/237',
-'blk=cyrillicextendedb' => '#/238',
-'blk=cyrillicsup' => '#/219',
-'blk=cyrillicsupplement' => '#/219',
-'blk=cyrillicsupplementary' => '#/219',
-'blk=deseret' => '#/136',
-'blk=devanagari' => '#/206',
-'blk=devanagariext' => '#/247',
-'blk=devanagariextended' => '#/247',
-'blk=diacriticals' => '#/239',
-'blk=diacriticalsforsymbols' => '#/293',
-'blk=diacriticalssup' => '#/262',
-'blk=dingbats' => '#/164',
-'blk=domino' => '#/112',
-'blk=dominotiles' => '#/112',
-'blk=egyptianhieroglyphs' => '#/286',
-'blk=emoticons' => '#/186',
-'blk=enclosedalphanum' => '#/272',
-'blk=enclosedalphanumerics' => '#/272',
-'blk=enclosedalphanumericsupplement' => '#/287',
-'blk=enclosedalphanumsup' => '#/287',
-'blk=enclosedcjk' => '#/220',
-'blk=enclosedcjklettersandmonths' => '#/220',
-'blk=enclosedideographicsup' => '#/294',
-'blk=enclosedideographicsupplement' => '#/294',
-'blk=ethiopic' => '#/165',
-'blk=ethiopicext' => '#/221',
-'blk=ethiopicexta' => '#/240',
-'blk=ethiopicextended' => '#/221',
-'blk=ethiopicextendeda' => '#/240',
-'blk=ethiopicsup' => '#/222',
-'blk=ethiopicsupplement' => '#/222',
-'blk=generalpunctuation' => '#/230',
-'blk=geometricshapes' => '#/263',
-'blk=georgian' => '#/166',
-'blk=georgiansup' => '#/223',
-'blk=georgiansupplement' => '#/223',
-'blk=glagolitic' => '#/207',
-'blk=gothic' => '#/113',
-'blk=greek' => '#/95',
-'blk=greekandcoptic' => '#/95',
-'blk=greekext' => '#/167',
-'blk=greekextended' => '#/167',
-'blk=gujarati' => '#/168',
-'blk=gurmukhi' => '#/169',
-'blk=halfandfullforms' => '#/273',
-'blk=halfmarks' => '#/187',
-'blk=halfwidthandfullwidthforms' => '#/273',
-'blk=hangul' => '#/114',
-'blk=hangulcompatibilityjamo' => '#/205',
-'blk=hanguljamo' => '#/84',
-'blk=hanguljamoextendeda' => '#/171',
-'blk=hanguljamoextendedb' => '#/172',
-'blk=hangulsyllables' => '#/114',
-'blk=hanunoo' => '#/137',
-'blk=hebrew' => '#/115',
-'blk=highprivateusesurrogates' => '#/274',
-'blk=highpusurrogates' => '#/274',
-'blk=highsurrogates' => '#/256',
-'blk=hiragana' => '#/170',
-'blk=idc' => '#/77',
-'blk=ideographicdescriptioncharacters' => '#/77',
-'blk=imperialaramaic' => '#/264',
-'blk=indicnumberforms' => '#/275',
-'blk=inscriptionalpahlavi' => '#/290',
-'blk=inscriptionalparthian' => '#/291',
-'blk=ipaext' => '#/116',
-'blk=ipaextensions' => '#/116',
-'blk=jamo' => '#/84',
-'blk=jamoexta' => '#/171',
-'blk=jamoextb' => '#/172',
-'blk=javanese' => '#/173',
-'blk=kaithi' => '#/117',
-'blk=kanasup' => '#/138',
-'blk=kanasupplement' => '#/138',
-'blk=kanbun' => '#/118',
-'blk=kangxi' => '#/119',
-'blk=kangxiradicals' => '#/119',
-'blk=kannada' => '#/139',
-'blk=katakana' => '#/174',
-'blk=katakanaext' => '#/224',
-'blk=katakanaphoneticextensions' => '#/224',
-'blk=kayahli' => '#/140',
-'blk=kharoshthi' => '#/208',
-'blk=khmer' => '#/96',
-'blk=khmersymbols' => '#/241',
-'blk=lao' => '#/78',
-'blk=latin1' => '#/120',
-'blk=latin1sup' => '#/120',
-'blk=latin1supplement' => '#/120',
-'blk=latinexta' => '#/188',
-'blk=latinextadditional' => '#/283',
-'blk=latinextb' => '#/189',
-'blk=latinextc' => '#/190',
-'blk=latinextd' => '#/191',
-'blk=latinextendeda' => '#/188',
-'blk=latinextendedadditional' => '#/283',
-'blk=latinextendedb' => '#/189',
-'blk=latinextendedc' => '#/190',
-'blk=latinextendedd' => '#/191',
-'blk=lepcha' => '#/121',
-'blk=letterlikesymbols' => '#/282',
-'blk=limbu' => '#/97',
-'blk=linearbideograms' => '#/276',
-'blk=linearbsyllabary' => '#/277',
-'blk=lisu' => '#/85',
-'blk=lowsurrogates' => '#/248',
-'blk=lycian' => '#/122',
-'blk=lydian' => '#/123',
-'blk=mahjong' => '#/141',
-'blk=mahjongtiles' => '#/141',
-'blk=malayalam' => '#/192',
-'blk=mandaic' => '#/142',
-'blk=mathalphanum' => '#/242',
-'blk=mathematicalalphanumericsymbols' => '#/242',
-'blk=mathematicaloperators' => '#/249',
-'blk=mathoperators' => '#/249',
-'blk=meeteimayek' => '#/225',
-'blk=meeteimayekext' => '#/257',
-'blk=meeteimayekextensions' => '#/257',
-'blk=meroiticcursive' => '#/265',
-'blk=meroitichieroglyphs' => '#/288',
-'blk=miao' => '#/86',
-'blk=miscarrows' => '#/209',
-'blk=miscellaneousmathematicalsymbolsa' => '#/278',
-'blk=miscellaneousmathematicalsymbolsb' => '#/279',
-'blk=miscellaneoussymbols' => '#/226',
-'blk=miscellaneoussymbolsandarrows' => '#/209',
-'blk=miscellaneoussymbolsandpictographs' => '#/266',
-'blk=miscellaneoustechnical' => '#/250',
-'blk=miscmathsymbolsa' => '#/278',
-'blk=miscmathsymbolsb' => '#/279',
-'blk=miscpictographs' => '#/266',
-'blk=miscsymbols' => '#/226',
-'blk=misctechnical' => '#/250',
-'blk=modifierletters' => '#/267',
-'blk=modifiertoneletters' => '#/289',
-'blk=mongolian' => '#/193',
-'blk=music' => '#/98',
-'blk=musicalsymbols' => '#/98',
-'blk=myanmar' => '#/143',
-'blk=myanmarexta' => '#/227',
-'blk=myanmarextendeda' => '#/227',
+'blk=aegeannumbers' => '#/281',
+'blk=alchemical' => '#/229',
+'blk=alchemicalsymbols' => '#/229',
+'blk=alphabeticpf' => '#/271',
+'blk=alphabeticpresentationforms' => '#/271',
+'blk=ancientgreekmusic' => '#/320',
+'blk=ancientgreekmusicalnotation' => '#/320',
+'blk=ancientgreeknumbers' => '#/327',
+'blk=ancientsymbols' => '#/288',
+'blk=arabic' => '#/121',
+'blk=arabicexta' => '#/230',
+'blk=arabicextendeda' => '#/230',
+'blk=arabicmath' => '#/231',
+'blk=arabicmathematicalalphabeticsymbols' => '#/231',
+'blk=arabicpfa' => '#/205',
+'blk=arabicpfb' => '#/206',
+'blk=arabicpresentationformsa' => '#/205',
+'blk=arabicpresentationformsb' => '#/206',
+'blk=arabicsup' => '#/207',
+'blk=arabicsupplement' => '#/207',
+'blk=armenian' => '#/178',
+'blk=arrows' => '#/122',
+'blk=ascii' => '#/106',
+'blk=avestan' => '#/145',
+'blk=balinese' => '#/179',
+'blk=bamum' => '#/107',
+'blk=bamumsup' => '#/180',
+'blk=bamumsupplement' => '#/180',
+'blk=basiclatin' => '#/106',
+'blk=bassavah' => '#/181',
+'blk=batak' => '#/108',
+'blk=bengali' => '#/146',
+'blk=blockelements' => '#/282',
+'blk=bopomofo' => '#/182',
+'blk=bopomofoext' => '#/250',
+'blk=bopomofoextended' => '#/250',
+'blk=boxdrawing' => '#/232',
+'blk=brahmi' => '#/123',
+'blk=braille' => '#/147',
+'blk=braillepatterns' => '#/147',
+'blk=buginese' => '#/183',
+'blk=buhid' => '#/109',
+'blk=byzantinemusic' => '#/289',
+'blk=byzantinemusicalsymbols' => '#/289',
+'blk=canadiansyllabics' => '#/105',
+'blk=carian' => '#/124',
+'blk=caucasianalbanian' => '#/321',
+'blk=chakma' => '#/125',
+'blk=cham' => '#/97',
+'blk=cherokee' => '#/184',
+'blk=cjk' => '#/89',
+'blk=cjkcompat' => '#/208',
+'blk=cjkcompatforms' => '#/290',
+'blk=cjkcompatibility' => '#/208',
+'blk=cjkcompatibilityforms' => '#/290',
+'blk=cjkcompatibilityideographs' => '#/328',
+'blk=cjkcompatibilityideographssupplement' => '#/336',
+'blk=cjkcompatideographs' => '#/328',
+'blk=cjkcompatideographssup' => '#/336',
+'blk=cjkexta' => '#/148',
+'blk=cjkextb' => '#/149',
+'blk=cjkextc' => '#/150',
+'blk=cjkextd' => '#/151',
+'blk=cjkradicalssup' => '#/291',
+'blk=cjkradicalssupplement' => '#/291',
+'blk=cjkstrokes' => '#/233',
+'blk=cjksymbols' => '#/234',
+'blk=cjksymbolsandpunctuation' => '#/234',
+'blk=cjkunifiedideographs' => '#/89',
+'blk=cjkunifiedideographsextensiona' => '#/148',
+'blk=cjkunifiedideographsextensionb' => '#/149',
+'blk=cjkunifiedideographsextensionc' => '#/150',
+'blk=cjkunifiedideographsextensiond' => '#/151',
+'blk=combiningdiacriticalmarks' => '#/274',
+'blk=combiningdiacriticalmarksextended' => '#/299',
+'blk=combiningdiacriticalmarksforsymbols' => '#/337',
+'blk=combiningdiacriticalmarkssupplement' => '#/300',
+'blk=combininghalfmarks' => '#/211',
+'blk=combiningmarksforsymbols' => '#/337',
+'blk=commonindicnumberforms' => '#/314',
+'blk=compatjamo' => '#/235',
+'blk=controlpictures' => '#/297',
+'blk=coptic' => '#/126',
+'blk=copticepactnumbers' => '#/323',
+'blk=countingrod' => '#/251',
+'blk=countingrodnumerals' => '#/251',
+'blk=cuneiform' => '#/209',
+'blk=cuneiformnumbers' => '#/309',
+'blk=cuneiformnumbersandpunctuation' => '#/309',
+'blk=currencysymbols' => '#/298',
+'blk=cypriotsyllabary' => '#/310',
+'blk=cyrillic' => '#/185',
+'blk=cyrillicexta' => '#/272',
+'blk=cyrillicextb' => '#/273',
+'blk=cyrillicextendeda' => '#/272',
+'blk=cyrillicextendedb' => '#/273',
+'blk=cyrillicsup' => '#/252',
+'blk=cyrillicsupplement' => '#/252',
+'blk=cyrillicsupplementary' => '#/252',
+'blk=deseret' => '#/152',
+'blk=devanagari' => '#/236',
+'blk=devanagariext' => '#/283',
+'blk=devanagariextended' => '#/283',
+'blk=diacriticals' => '#/274',
+'blk=diacriticalsext' => '#/299',
+'blk=diacriticalsforsymbols' => '#/337',
+'blk=diacriticalssup' => '#/300',
+'blk=dingbats' => '#/186',
+'blk=domino' => '#/127',
+'blk=dominotiles' => '#/127',
+'blk=duployan' => '#/187',
+'blk=egyptianhieroglyphs' => '#/329',
+'blk=elbasan' => '#/153',
+'blk=emoticons' => '#/210',
+'blk=enclosedalphanum' => '#/311',
+'blk=enclosedalphanumerics' => '#/311',
+'blk=enclosedalphanumericsupplement' => '#/330',
+'blk=enclosedalphanumsup' => '#/330',
+'blk=enclosedcjk' => '#/253',
+'blk=enclosedcjklettersandmonths' => '#/253',
+'blk=enclosedideographicsup' => '#/338',
+'blk=enclosedideographicsupplement' => '#/338',
+'blk=ethiopic' => '#/188',
+'blk=ethiopicext' => '#/254',
+'blk=ethiopicexta' => '#/275',
+'blk=ethiopicextended' => '#/254',
+'blk=ethiopicextendeda' => '#/275',
+'blk=ethiopicsup' => '#/255',
+'blk=ethiopicsupplement' => '#/255',
+'blk=generalpunctuation' => '#/265',
+'blk=geometricshapes' => '#/301',
+'blk=geometricshapesext' => '#/324',
+'blk=geometricshapesextended' => '#/324',
+'blk=georgian' => '#/189',
+'blk=georgiansup' => '#/256',
+'blk=georgiansupplement' => '#/256',
+'blk=glagolitic' => '#/237',
+'blk=gothic' => '#/128',
+'blk=grantha' => '#/154',
+'blk=greek' => '#/110',
+'blk=greekandcoptic' => '#/110',
+'blk=greekext' => '#/190',
+'blk=greekextended' => '#/190',
+'blk=gujarati' => '#/191',
+'blk=gurmukhi' => '#/192',
+'blk=halfandfullforms' => '#/312',
+'blk=halfmarks' => '#/211',
+'blk=halfwidthandfullwidthforms' => '#/312',
+'blk=hangul' => '#/129',
+'blk=hangulcompatibilityjamo' => '#/235',
+'blk=hanguljamo' => '#/98',
+'blk=hanguljamoextendeda' => '#/194',
+'blk=hanguljamoextendedb' => '#/195',
+'blk=hangulsyllables' => '#/129',
+'blk=hanunoo' => '#/155',
+'blk=hebrew' => '#/130',
+'blk=highprivateusesurrogates' => '#/313',
+'blk=highpusurrogates' => '#/313',
+'blk=highsurrogates' => '#/292',
+'blk=hiragana' => '#/193',
+'blk=idc' => '#/90',
+'blk=ideographicdescriptioncharacters' => '#/90',
+'blk=imperialaramaic' => '#/302',
+'blk=indicnumberforms' => '#/314',
+'blk=inscriptionalpahlavi' => '#/333',
+'blk=inscriptionalparthian' => '#/334',
+'blk=ipaext' => '#/131',
+'blk=ipaextensions' => '#/131',
+'blk=jamo' => '#/98',
+'blk=jamoexta' => '#/194',
+'blk=jamoextb' => '#/195',
+'blk=javanese' => '#/196',
+'blk=kaithi' => '#/132',
+'blk=kanasup' => '#/156',
+'blk=kanasupplement' => '#/156',
+'blk=kanbun' => '#/133',
+'blk=kangxi' => '#/134',
+'blk=kangxiradicals' => '#/134',
+'blk=kannada' => '#/157',
+'blk=katakana' => '#/197',
+'blk=katakanaext' => '#/257',
+'blk=katakanaphoneticextensions' => '#/257',
+'blk=kayahli' => '#/158',
+'blk=kharoshthi' => '#/238',
+'blk=khmer' => '#/111',
+'blk=khmersymbols' => '#/276',
+'blk=khojki' => '#/135',
+'blk=khudawadi' => '#/212',
+'blk=lao' => '#/91',
+'blk=latin1' => '#/136',
+'blk=latin1sup' => '#/136',
+'blk=latin1supplement' => '#/136',
+'blk=latinexta' => '#/213',
+'blk=latinextadditional' => '#/325',
+'blk=latinextb' => '#/214',
+'blk=latinextc' => '#/215',
+'blk=latinextd' => '#/216',
+'blk=latinexte' => '#/217',
+'blk=latinextendeda' => '#/213',
+'blk=latinextendedadditional' => '#/325',
+'blk=latinextendedb' => '#/214',
+'blk=latinextendedc' => '#/215',
+'blk=latinextendedd' => '#/216',
+'blk=latinextendede' => '#/217',
+'blk=lepcha' => '#/137',
+'blk=letterlikesymbols' => '#/322',
+'blk=limbu' => '#/112',
+'blk=lineara' => '#/159',
+'blk=linearbideograms' => '#/315',
+'blk=linearbsyllabary' => '#/316',
+'blk=lisu' => '#/99',
+'blk=lowsurrogates' => '#/284',
+'blk=lycian' => '#/138',
+'blk=lydian' => '#/139',
+'blk=mahajani' => '#/198',
+'blk=mahjong' => '#/160',
+'blk=mahjongtiles' => '#/160',
+'blk=malayalam' => '#/218',
+'blk=mandaic' => '#/161',
+'blk=manichaean' => '#/239',
+'blk=mathalphanum' => '#/277',
+'blk=mathematicalalphanumericsymbols' => '#/277',
+'blk=mathematicaloperators' => '#/285',
+'blk=mathoperators' => '#/285',
+'blk=meeteimayek' => '#/258',
+'blk=meeteimayekext' => '#/293',
+'blk=meeteimayekextensions' => '#/293',
+'blk=mendekikakui' => '#/278',
+'blk=meroiticcursive' => '#/303',
+'blk=meroitichieroglyphs' => '#/331',
+'blk=miao' => '#/100',
+'blk=miscarrows' => '#/240',
+'blk=miscellaneousmathematicalsymbolsa' => '#/317',
+'blk=miscellaneousmathematicalsymbolsb' => '#/318',
+'blk=miscellaneoussymbols' => '#/259',
+'blk=miscellaneoussymbolsandarrows' => '#/240',
+'blk=miscellaneoussymbolsandpictographs' => '#/304',
+'blk=miscellaneoustechnical' => '#/286',
+'blk=miscmathsymbolsa' => '#/317',
+'blk=miscmathsymbolsb' => '#/318',
+'blk=miscpictographs' => '#/304',
+'blk=miscsymbols' => '#/259',
+'blk=misctechnical' => '#/286',
+'blk=modi' => '#/101',
+'blk=modifierletters' => '#/305',
+'blk=modifiertoneletters' => '#/332',
+'blk=mongolian' => '#/219',
+'blk=mro' => '#/92',
+'blk=music' => '#/113',
+'blk=musicalsymbols' => '#/113',
+'blk=myanmar' => '#/162',
+'blk=myanmarexta' => '#/260',
+'blk=myanmarextb' => '#/261',
+'blk=myanmarextendeda' => '#/260',
+'blk=myanmarextendedb' => '#/261',
+'blk=nabataean' => '#/220',
'blk=nb' => 'Blk/NB',
-'blk=newtailue' => '#/194',
-'blk=nko' => '#/79',
+'blk=newtailue' => '#/221',
+'blk=nko' => '#/93',
'blk=noblock' => 'Blk/NB',
-'blk=numberforms' => '#/228',
-'blk=ocr' => '#/80',
-'blk=ogham' => '#/99',
-'blk=olchiki' => '#/144',
-'blk=olditalic' => '#/195',
-'blk=oldpersian' => '#/210',
-'blk=oldsoutharabian' => '#/268',
-'blk=oldturkic' => '#/196',
-'blk=opticalcharacterrecognition' => '#/80',
-'blk=oriya' => '#/100',
-'blk=osmanya' => '#/145',
-'blk=phagspa' => '#/146',
-'blk=phaistos' => '#/175',
-'blk=phaistosdisc' => '#/175',
-'blk=phoenician' => '#/211',
-'blk=phoneticext' => '#/229',
-'blk=phoneticextensions' => '#/229',
-'blk=phoneticextensionssupplement' => '#/258',
-'blk=phoneticextsup' => '#/258',
-'blk=playingcards' => '#/243',
-'blk=privateuse' => '#/81',
-'blk=privateusearea' => '#/81',
-'blk=pua' => '#/81',
-'blk=punctuation' => '#/230',
-'blk=rejang' => '#/124',
-'blk=rumi' => '#/87',
-'blk=ruminumeralsymbols' => '#/87',
-'blk=runic' => '#/101',
-'blk=samaritan' => '#/197',
-'blk=saurashtra' => '#/212',
-'blk=sharada' => '#/147',
-'blk=shavian' => '#/148',
-'blk=sinhala' => '#/149',
-'blk=smallforms' => '#/213',
-'blk=smallformvariants' => '#/213',
-'blk=sorasompeng' => '#/231',
-'blk=spacingmodifierletters' => '#/267',
-'blk=specials' => '#/176',
-'blk=sundanese' => '#/198',
-'blk=sundanesesup' => '#/244',
-'blk=sundanesesupplement' => '#/244',
-'blk=suparrowsa' => '#/214',
-'blk=suparrowsb' => '#/215',
-'blk=superandsub' => '#/232',
-'blk=superscriptsandsubscripts' => '#/232',
-'blk=supmathoperators' => '#/280',
-'blk=supplementalarrowsa' => '#/214',
-'blk=supplementalarrowsb' => '#/215',
-'blk=supplementalmathematicaloperators' => '#/280',
-'blk=supplementalpunctuation' => '#/259',
-'blk=supplementaryprivateuseareaa' => '#/150',
-'blk=supplementaryprivateuseareab' => '#/151',
-'blk=suppuaa' => '#/150',
-'blk=suppuab' => '#/151',
-'blk=suppunctuation' => '#/259',
-'blk=sylotinagri' => '#/233',
-'blk=syriac' => '#/125',
-'blk=tagalog' => '#/152',
-'blk=tagbanwa' => '#/177',
-'blk=tags' => '#/88',
-'blk=taile' => '#/102',
-'blk=taitham' => '#/153',
-'blk=taiviet' => '#/154',
-'blk=taixuanjing' => '#/234',
-'blk=taixuanjingsymbols' => '#/234',
-'blk=takri' => '#/103',
-'blk=tamil' => '#/104',
-'blk=telugu' => '#/126',
-'blk=thaana' => '#/127',
-'blk=thai' => '#/89',
-'blk=tibetan' => '#/155',
-'blk=tifinagh' => '#/178',
-'blk=transportandmap' => '#/269',
-'blk=transportandmapsymbols' => '#/269',
-'blk=ucas' => '#/90',
-'blk=ucasext' => '#/156',
-'blk=ugaritic' => '#/179',
-'blk=unifiedcanadianaboriginalsyllabics' => '#/90',
-'blk=unifiedcanadianaboriginalsyllabicsextended' => '#/156',
-'blk=vai' => '#/82',
-'blk=variationselectors' => '#/75',
-'blk=variationselectorssupplement' => '#/105',
-'blk=vedicext' => '#/180',
-'blk=vedicextensions' => '#/180',
-'blk=verticalforms' => '#/251',
-'blk=vs' => '#/75',
-'blk=vssup' => '#/105',
-'blk=yijing' => '#/128',
-'blk=yijinghexagramsymbols' => '#/128',
-'blk=yiradicals' => '#/216',
-'blk=yisyllables' => '#/235',
-'blockelements' => '#/246',
-'bopo' => '#/457',
-'bopomofo' => '#/457',
-'bopomofoext' => '#/217',
-'bopomofoextended' => '#/217',
-'boxdrawing' => '#/202',
+'blk=numberforms' => '#/262',
+'blk=ocr' => '#/94',
+'blk=ogham' => '#/114',
+'blk=olchiki' => '#/163',
+'blk=olditalic' => '#/222',
+'blk=oldnortharabian' => '#/306',
+'blk=oldpermic' => '#/223',
+'blk=oldpersian' => '#/241',
+'blk=oldsoutharabian' => '#/307',
+'blk=oldturkic' => '#/224',
+'blk=opticalcharacterrecognition' => '#/94',
+'blk=oriya' => '#/115',
+'blk=ornamentaldingbats' => '#/326',
+'blk=osmanya' => '#/164',
+'blk=pahawhhmong' => '#/263',
+'blk=palmyrene' => '#/225',
+'blk=paucinhau' => '#/226',
+'blk=phagspa' => '#/165',
+'blk=phaistos' => '#/199',
+'blk=phaistosdisc' => '#/199',
+'blk=phoenician' => '#/242',
+'blk=phoneticext' => '#/264',
+'blk=phoneticextensions' => '#/264',
+'blk=phoneticextensionssupplement' => '#/294',
+'blk=phoneticextsup' => '#/294',
+'blk=playingcards' => '#/279',
+'blk=privateuse' => '#/95',
+'blk=privateusearea' => '#/95',
+'blk=psalterpahlavi' => '#/295',
+'blk=pua' => '#/95',
+'blk=punctuation' => '#/265',
+'blk=rejang' => '#/140',
+'blk=rumi' => '#/102',
+'blk=ruminumeralsymbols' => '#/102',
+'blk=runic' => '#/116',
+'blk=samaritan' => '#/227',
+'blk=saurashtra' => '#/243',
+'blk=sharada' => '#/166',
+'blk=shavian' => '#/167',
+'blk=shorthandformatcontrols' => '#/339',
+'blk=siddham' => '#/168',
+'blk=sinhala' => '#/169',
+'blk=sinhalaarchaicnumbers' => '#/335',
+'blk=smallforms' => '#/244',
+'blk=smallformvariants' => '#/244',
+'blk=sorasompeng' => '#/266',
+'blk=spacingmodifierletters' => '#/305',
+'blk=specials' => '#/200',
+'blk=sundanese' => '#/228',
+'blk=sundanesesup' => '#/280',
+'blk=sundanesesupplement' => '#/280',
+'blk=suparrowsa' => '#/245',
+'blk=suparrowsb' => '#/246',
+'blk=suparrowsc' => '#/247',
+'blk=superandsub' => '#/267',
+'blk=superscriptsandsubscripts' => '#/267',
+'blk=supmathoperators' => '#/319',
+'blk=supplementalarrowsa' => '#/245',
+'blk=supplementalarrowsb' => '#/246',
+'blk=supplementalarrowsc' => '#/247',
+'blk=supplementalmathematicaloperators' => '#/319',
+'blk=supplementalpunctuation' => '#/296',
+'blk=supplementaryprivateuseareaa' => '#/170',
+'blk=supplementaryprivateuseareab' => '#/171',
+'blk=suppuaa' => '#/170',
+'blk=suppuab' => '#/171',
+'blk=suppunctuation' => '#/296',
+'blk=sylotinagri' => '#/268',
+'blk=syriac' => '#/141',
+'blk=tagalog' => '#/172',
+'blk=tagbanwa' => '#/201',
+'blk=tags' => '#/103',
+'blk=taile' => '#/117',
+'blk=taitham' => '#/173',
+'blk=taiviet' => '#/174',
+'blk=taixuanjing' => '#/269',
+'blk=taixuanjingsymbols' => '#/269',
+'blk=takri' => '#/118',
+'blk=tamil' => '#/119',
+'blk=telugu' => '#/142',
+'blk=thaana' => '#/143',
+'blk=thai' => '#/104',
+'blk=tibetan' => '#/175',
+'blk=tifinagh' => '#/202',
+'blk=tirhuta' => '#/176',
+'blk=transportandmap' => '#/308',
+'blk=transportandmapsymbols' => '#/308',
+'blk=ucas' => '#/105',
+'blk=ucasext' => '#/177',
+'blk=ugaritic' => '#/203',
+'blk=unifiedcanadianaboriginalsyllabics' => '#/105',
+'blk=unifiedcanadianaboriginalsyllabicsextended' => '#/177',
+'blk=vai' => '#/96',
+'blk=variationselectors' => '#/88',
+'blk=variationselectorssupplement' => '#/120',
+'blk=vedicext' => '#/204',
+'blk=vedicextensions' => '#/204',
+'blk=verticalforms' => '#/287',
+'blk=vs' => '#/88',
+'blk=vssup' => '#/120',
+'blk=warangciti' => '#/248',
+'blk=yijing' => '#/144',
+'blk=yijinghexagramsymbols' => '#/144',
+'blk=yiradicals' => '#/249',
+'blk=yisyllables' => '#/270',
+'blockelements' => '#/282',
+'bopo' => '#/518',
+'bopomofo' => '#/518',
+'bopomofoext' => '#/250',
+'bopomofoextended' => '#/250',
+'boxdrawing' => '#/232',
'bpt=c' => 'Bpt/C',
'bpt=close' => 'Bpt/C',
'bpt=n' => 'Bpt/N',
'bpt=none' => 'Bpt/N',
'bpt=o' => 'Bpt/O',
'bpt=open' => 'Bpt/O',
-'brah' => '#/458',
-'brahmi' => '#/458',
-'brai' => '#/131',
-'braille' => '#/131',
-'braillepatterns' => '#/131',
-'bugi' => '#/459',
-'buginese' => '#/459',
-'buhd' => '#/460',
-'buhid' => '#/460',
-'byzantinemusic' => '#/253',
-'byzantinemusicalsymbols' => '#/253',
+'brah' => '#/519',
+'brahmi' => '#/519',
+'brai' => '#/147',
+'braille' => '#/147',
+'braillepatterns' => '#/147',
+'bugi' => '#/520',
+'buginese' => '#/520',
+'buhd' => '#/521',
+'buhid' => '#/521',
+'byzantinemusic' => '#/289',
+'byzantinemusicalsymbols' => '#/289',
'c' => 'Gc/C',
-'cakm' => '#/461',
-'canadianaboriginal' => '#/462',
-'canadiansyllabics' => '#/90',
-'cans' => '#/462',
-'cari' => '#/463',
-'carian' => '#/463',
+'cakm' => '#/522',
+'canadianaboriginal' => '#/523',
+'canadiansyllabics' => '#/105',
+'cans' => '#/523',
+'cari' => '#/524',
+'carian' => '#/524',
'cased' => 'Cased/Y',
'cased=f' => '!Cased/Y',
'cased=false' => '!Cased/Y',
@@ -2790,82 +3131,83 @@
'cased=yes' => 'Cased/Y',
'casedletter' => 'Gc/LC',
'caseignorable' => 'CI/Y',
-'cc' => '#/298',
+'caucasianalbanian' => '#/511',
+'cc' => '#/343',
'ccc=a' => 'Ccc/A',
'ccc=above' => 'Ccc/A',
-'ccc=aboveleft' => '#/3',
+'ccc=aboveleft' => '#/16',
'ccc=aboveright' => 'Ccc/AR',
-'ccc=al' => '#/3',
+'ccc=al' => '#/16',
'ccc=ar' => 'Ccc/AR',
-'ccc=ata' => '#/8',
+'ccc=ata' => '#/21',
'ccc=atar' => 'Ccc/ATAR',
-'ccc=atb' => '#/9',
+'ccc=atb' => '#/22',
'ccc=atbl' => '#/0',
-'ccc=attachedabove' => '#/8',
+'ccc=attachedabove' => '#/21',
'ccc=attachedaboveright' => 'Ccc/ATAR',
-'ccc=attachedbelow' => '#/9',
+'ccc=attachedbelow' => '#/22',
'ccc=attachedbelowleft' => '#/0',
'ccc=b' => 'Ccc/B',
'ccc=below' => 'Ccc/B',
-'ccc=belowleft' => '#/4',
+'ccc=belowleft' => '#/17',
'ccc=belowright' => 'Ccc/BR',
-'ccc=bl' => '#/4',
+'ccc=bl' => '#/17',
'ccc=br' => 'Ccc/BR',
-'ccc=ccc10' => '#/10',
-'ccc=ccc103' => '#/39',
-'ccc=ccc107' => '#/40',
-'ccc=ccc11' => '#/11',
-'ccc=ccc118' => '#/41',
-'ccc=ccc12' => '#/12',
-'ccc=ccc122' => '#/42',
-'ccc=ccc129' => '#/43',
-'ccc=ccc13' => '#/13',
-'ccc=ccc130' => '#/44',
-'ccc=ccc132' => '#/45',
+'ccc=ccc10' => '#/23',
+'ccc=ccc103' => '#/52',
+'ccc=ccc107' => '#/53',
+'ccc=ccc11' => '#/24',
+'ccc=ccc118' => '#/54',
+'ccc=ccc12' => '#/25',
+'ccc=ccc122' => '#/55',
+'ccc=ccc129' => '#/56',
+'ccc=ccc13' => '#/26',
+'ccc=ccc130' => '#/57',
+'ccc=ccc132' => '#/58',
'ccc=ccc133' => '#/0',
-'ccc=ccc14' => '#/14',
-'ccc=ccc15' => '#/15',
-'ccc=ccc16' => '#/16',
-'ccc=ccc17' => '#/17',
-'ccc=ccc18' => '#/18',
-'ccc=ccc19' => '#/19',
-'ccc=ccc20' => '#/20',
-'ccc=ccc21' => '#/21',
-'ccc=ccc22' => '#/22',
-'ccc=ccc23' => '#/23',
-'ccc=ccc24' => '#/24',
-'ccc=ccc25' => '#/25',
-'ccc=ccc26' => '#/26',
-'ccc=ccc27' => '#/27',
-'ccc=ccc28' => '#/28',
-'ccc=ccc29' => '#/29',
-'ccc=ccc30' => '#/30',
-'ccc=ccc31' => '#/31',
-'ccc=ccc32' => '#/32',
-'ccc=ccc33' => '#/33',
-'ccc=ccc34' => '#/34',
-'ccc=ccc35' => '#/35',
-'ccc=ccc36' => '#/36',
-'ccc=ccc84' => '#/37',
-'ccc=ccc91' => '#/38',
-'ccc=da' => '#/5',
+'ccc=ccc14' => '#/27',
+'ccc=ccc15' => '#/28',
+'ccc=ccc16' => '#/29',
+'ccc=ccc17' => '#/30',
+'ccc=ccc18' => '#/31',
+'ccc=ccc19' => '#/32',
+'ccc=ccc20' => '#/33',
+'ccc=ccc21' => '#/34',
+'ccc=ccc22' => '#/35',
+'ccc=ccc23' => '#/36',
+'ccc=ccc24' => '#/37',
+'ccc=ccc25' => '#/38',
+'ccc=ccc26' => '#/39',
+'ccc=ccc27' => '#/40',
+'ccc=ccc28' => '#/41',
+'ccc=ccc29' => '#/42',
+'ccc=ccc30' => '#/43',
+'ccc=ccc31' => '#/44',
+'ccc=ccc32' => '#/45',
+'ccc=ccc33' => '#/46',
+'ccc=ccc34' => '#/47',
+'ccc=ccc35' => '#/48',
+'ccc=ccc36' => '#/49',
+'ccc=ccc84' => '#/50',
+'ccc=ccc91' => '#/51',
+'ccc=da' => '#/18',
'ccc=db' => 'Ccc/DB',
-'ccc=doubleabove' => '#/5',
+'ccc=doubleabove' => '#/18',
'ccc=doublebelow' => 'Ccc/DB',
-'ccc=iotasubscript' => '#/6',
-'ccc=is' => '#/6',
-'ccc=kanavoicing' => '#/7',
-'ccc=kv' => '#/7',
-'ccc=l' => '#/1',
-'ccc=left' => '#/1',
+'ccc=iotasubscript' => '#/19',
+'ccc=is' => '#/19',
+'ccc=kanavoicing' => '#/20',
+'ccc=kv' => '#/20',
+'ccc=l' => '#/14',
+'ccc=left' => '#/14',
'ccc=nk' => 'Ccc/NK',
'ccc=notreordered' => 'Ccc/NR',
'ccc=nr' => 'Ccc/NR',
'ccc=nukta' => 'Ccc/NK',
'ccc=ov' => 'Ccc/OV',
'ccc=overlay' => 'Ccc/OV',
-'ccc=r' => '#/2',
-'ccc=right' => '#/2',
+'ccc=r' => '#/15',
+'ccc=right' => '#/15',
'ccc=virama' => 'Ccc/VR',
'ccc=vr' => 'Ccc/VR',
'ce' => 'CE/Y',
@@ -2878,7 +3220,7 @@
'ce=y' => 'CE/Y',
'ce=yes' => 'CE/Y',
'cf' => 'Gc/Cf',
-'chakma' => '#/461',
+'chakma' => '#/522',
'cham' => 'Sc/Cham',
'changeswhencasefolded' => 'CWCF/Y',
'changeswhencasemapped' => 'CWCM/Y',
@@ -2886,8 +3228,8 @@
'changeswhennfkccasefolded' => 'CWKCF/Y',
'changeswhentitlecased' => 'CWT/Y',
'changeswhenuppercased' => 'CWU/Y',
-'cher' => '#/464',
-'cherokee' => '#/464',
+'cher' => '#/525',
+'cherokee' => '#/525',
'ci' => 'CI/Y',
'ci=f' => '!CI/Y',
'ci=false' => '!CI/Y',
@@ -2897,42 +3239,43 @@
'ci=true' => 'CI/Y',
'ci=y' => 'CI/Y',
'ci=yes' => 'CI/Y',
-'cjk' => '#/76',
-'cjkcompat' => '#/184',
-'cjkcompatforms' => '#/254',
-'cjkcompatibility' => '#/184',
-'cjkcompatibilityforms' => '#/254',
-'cjkcompatibilityideographs' => '#/285',
-'cjkcompatibilityideographssupplement' => '#/292',
-'cjkcompatideographs' => '#/285',
-'cjkcompatideographssup' => '#/292',
-'cjkexta' => '#/132',
-'cjkextb' => '#/133',
-'cjkextc' => '#/134',
-'cjkextd' => '#/135',
-'cjkradicalssup' => '#/255',
-'cjkradicalssupplement' => '#/255',
-'cjkstrokes' => '#/203',
-'cjksymbols' => '#/204',
-'cjksymbolsandpunctuation' => '#/204',
-'cjkunifiedideographs' => '#/76',
-'cjkunifiedideographsextensiona' => '#/132',
-'cjkunifiedideographsextensionb' => '#/133',
-'cjkunifiedideographsextensionc' => '#/134',
-'cjkunifiedideographsextensiond' => '#/135',
+'cjk' => '#/89',
+'cjkcompat' => '#/208',
+'cjkcompatforms' => '#/290',
+'cjkcompatibility' => '#/208',
+'cjkcompatibilityforms' => '#/290',
+'cjkcompatibilityideographs' => '#/328',
+'cjkcompatibilityideographssupplement' => '#/336',
+'cjkcompatideographs' => '#/328',
+'cjkcompatideographssup' => '#/336',
+'cjkexta' => '#/148',
+'cjkextb' => '#/149',
+'cjkextc' => '#/150',
+'cjkextd' => '#/151',
+'cjkradicalssup' => '#/291',
+'cjkradicalssupplement' => '#/291',
+'cjkstrokes' => '#/233',
+'cjksymbols' => '#/234',
+'cjksymbolsandpunctuation' => '#/234',
+'cjkunifiedideographs' => '#/89',
+'cjkunifiedideographsextensiona' => '#/148',
+'cjkunifiedideographsextensionb' => '#/149',
+'cjkunifiedideographsextensionc' => '#/150',
+'cjkunifiedideographsextensiond' => '#/151',
'closepunctuation' => 'Gc/Pe',
'cn' => 'Gc/Cn',
-'cntrl' => '#/298',
-'co' => '#/299',
-'combiningdiacriticalmarks' => '#/239',
-'combiningdiacriticalmarksforsymbols' => '#/293',
-'combiningdiacriticalmarkssupplement' => '#/262',
-'combininghalfmarks' => '#/187',
+'cntrl' => '#/343',
+'co' => '#/344',
+'combiningdiacriticalmarks' => '#/274',
+'combiningdiacriticalmarksextended' => '#/299',
+'combiningdiacriticalmarksforsymbols' => '#/337',
+'combiningdiacriticalmarkssupplement' => '#/300',
+'combininghalfmarks' => '#/211',
'combiningmark' => 'Gc/M',
-'combiningmarksforsymbols' => '#/293',
+'combiningmarksforsymbols' => '#/337',
'common' => 'Sc/Zyyy',
-'commonindicnumberforms' => '#/275',
-'compatjamo' => '#/205',
+'commonindicnumberforms' => '#/314',
+'compatjamo' => '#/235',
'compex' => 'CompEx/Y',
'compex=f' => '!CompEx/Y',
'compex=false' => '!CompEx/Y',
@@ -2944,19 +3287,20 @@
'compex=yes' => 'CompEx/Y',
'compositionexclusion' => 'CE/Y',
'connectorpunctuation' => 'WB/EX',
-'control' => '#/298',
-'controlpictures' => '#/260',
-'copt' => '#/465',
-'coptic' => '#/465',
-'countingrod' => '#/218',
-'countingrodnumerals' => '#/218',
+'control' => '#/343',
+'controlpictures' => '#/297',
+'copt' => '#/526',
+'coptic' => '#/526',
+'copticepactnumbers' => '#/323',
+'countingrod' => '#/251',
+'countingrodnumerals' => '#/251',
'cprt' => 'Sc/Cprt',
-'cs' => '#/300',
-'cuneiform' => '#/507',
-'cuneiformnumbers' => '#/270',
-'cuneiformnumbersandpunctuation' => '#/270',
+'cs' => '#/345',
+'cuneiform' => '#/584',
+'cuneiformnumbers' => '#/309',
+'cuneiformnumbersandpunctuation' => '#/309',
'currencysymbol' => 'Gc/Sc',
-'currencysymbols' => '#/261',
+'currencysymbols' => '#/298',
'cwcf' => 'CWCF/Y',
'cwcf=f' => '!CWCF/Y',
'cwcf=false' => '!CWCF/Y',
@@ -3012,15 +3356,15 @@
'cwu=y' => 'CWU/Y',
'cwu=yes' => 'CWU/Y',
'cypriot' => 'Sc/Cprt',
-'cypriotsyllabary' => '#/271',
+'cypriotsyllabary' => '#/310',
'cyrillic' => 'Sc/Cyrl',
-'cyrillicexta' => '#/237',
-'cyrillicextb' => '#/238',
-'cyrillicextendeda' => '#/237',
-'cyrillicextendedb' => '#/238',
-'cyrillicsup' => '#/219',
-'cyrillicsupplement' => '#/219',
-'cyrillicsupplementary' => '#/219',
+'cyrillicexta' => '#/272',
+'cyrillicextb' => '#/273',
+'cyrillicextendeda' => '#/272',
+'cyrillicextendedb' => '#/273',
+'cyrillicsup' => '#/252',
+'cyrillicsupplement' => '#/252',
+'cyrillicsupplementary' => '#/252',
'cyrl' => 'Sc/Cyrl',
'dash' => 'Dash/Y',
'dash=f' => '!Dash/Y',
@@ -3044,11 +3388,11 @@
'dep=y' => 'Dep/Y',
'dep=yes' => 'Dep/Y',
'deprecated' => 'Dep/Y',
-'deseret' => '#/136',
+'deseret' => '#/152',
'deva' => 'Sc/Deva',
'devanagari' => 'Sc/Deva',
-'devanagariext' => '#/247',
-'devanagariextended' => '#/247',
+'devanagariext' => '#/283',
+'devanagariextended' => '#/283',
'di' => 'DI/Y',
'di=f' => '!DI/Y',
'di=false' => '!DI/Y',
@@ -3068,14 +3412,15 @@
'dia=y' => 'Dia/Y',
'dia=yes' => 'Dia/Y',
'diacritic' => 'Dia/Y',
-'diacriticals' => '#/239',
-'diacriticalsforsymbols' => '#/293',
-'diacriticalssup' => '#/262',
+'diacriticals' => '#/274',
+'diacriticalsext' => '#/299',
+'diacriticalsforsymbols' => '#/337',
+'diacriticalssup' => '#/300',
'digit' => 'Gc/Nd',
-'dingbats' => '#/164',
-'domino' => '#/112',
-'dominotiles' => '#/112',
-'dsrt' => '#/136',
+'dingbats' => '#/186',
+'domino' => '#/127',
+'dominotiles' => '#/127',
+'dsrt' => '#/152',
'dt=can' => 'NFDQC/N',
'dt=canonical' => 'NFDQC/N',
'dt=circle' => 'Dt/Enc',
@@ -3085,8 +3430,8 @@
'dt=fin' => 'Dt/Fin',
'dt=final' => 'Dt/Fin',
'dt=font' => 'Dt/Font',
-'dt=fra' => '#/295',
-'dt=fraction' => '#/295',
+'dt=fra' => '#/340',
+'dt=fraction' => '#/340',
'dt=init' => 'Dt/Init',
'dt=initial' => 'Dt/Init',
'dt=iso' => 'Dt/Iso',
@@ -3100,8 +3445,8 @@
'dt=noncanon' => 'Dt/NonCanon',
'dt=noncanonical' => 'Dt/NonCanon',
'dt=none' => 'NFKDQC/Y',
-'dt=small' => '#/296',
-'dt=sml' => '#/296',
+'dt=small' => '#/341',
+'dt=sml' => '#/341',
'dt=sqr' => 'Dt/Sqr',
'dt=square' => 'Dt/Sqr',
'dt=sub' => 'Dt/Sub',
@@ -3109,11 +3454,13 @@
'dt=super' => 'Dt/Sup',
'dt=vert' => 'Dt/Vert',
'dt=vertical' => 'Dt/Vert',
-'dt=wide' => '#/297',
+'dt=wide' => '#/342',
+'dupl' => 'Sc/Dupl',
+'duployan' => 'Sc/Dupl',
'ea=a' => 'Ea/A',
'ea=ambiguous' => 'Ea/A',
-'ea=f' => '#/297',
-'ea=fullwidth' => '#/297',
+'ea=f' => '#/342',
+'ea=fullwidth' => '#/342',
'ea=h' => 'Ea/H',
'ea=halfwidth' => 'Ea/H',
'ea=n' => 'Ea/N',
@@ -3122,26 +3469,28 @@
'ea=neutral' => 'Ea/N',
'ea=w' => 'Ea/W',
'ea=wide' => 'Ea/W',
-'egyp' => '#/466',
-'egyptianhieroglyphs' => '#/466',
-'emoticons' => '#/186',
-'enclosedalphanum' => '#/272',
-'enclosedalphanumerics' => '#/272',
-'enclosedalphanumericsupplement' => '#/287',
-'enclosedalphanumsup' => '#/287',
-'enclosedcjk' => '#/220',
-'enclosedcjklettersandmonths' => '#/220',
-'enclosedideographicsup' => '#/294',
-'enclosedideographicsupplement' => '#/294',
+'egyp' => '#/527',
+'egyptianhieroglyphs' => '#/527',
+'elba' => '#/528',
+'elbasan' => '#/528',
+'emoticons' => '#/210',
+'enclosedalphanum' => '#/311',
+'enclosedalphanumerics' => '#/311',
+'enclosedalphanumericsupplement' => '#/330',
+'enclosedalphanumsup' => '#/330',
+'enclosedcjk' => '#/253',
+'enclosedcjklettersandmonths' => '#/253',
+'enclosedideographicsup' => '#/338',
+'enclosedideographicsupplement' => '#/338',
'enclosingmark' => 'Gc/Me',
'ethi' => 'Sc/Ethi',
'ethiopic' => 'Sc/Ethi',
-'ethiopicext' => '#/221',
-'ethiopicexta' => '#/240',
-'ethiopicextended' => '#/221',
-'ethiopicextendeda' => '#/240',
-'ethiopicsup' => '#/222',
-'ethiopicsupplement' => '#/222',
+'ethiopicext' => '#/254',
+'ethiopicexta' => '#/275',
+'ethiopicextended' => '#/254',
+'ethiopicextendeda' => '#/275',
+'ethiopicsup' => '#/255',
+'ethiopicsupplement' => '#/255',
'ext' => 'Ext/Y',
'ext=f' => '!Ext/Y',
'ext=false' => '!Ext/Y',
@@ -3157,16 +3506,16 @@
'fullcompositionexclusion' => 'CompEx/Y',
'gc=c' => 'Gc/C',
'gc=casedletter' => 'Gc/LC',
-'gc=cc' => '#/298',
+'gc=cc' => '#/343',
'gc=cf' => 'Gc/Cf',
'gc=closepunctuation' => 'Gc/Pe',
'gc=cn' => 'Gc/Cn',
-'gc=cntrl' => '#/298',
-'gc=co' => '#/299',
+'gc=cntrl' => '#/343',
+'gc=co' => '#/344',
'gc=combiningmark' => 'Gc/M',
'gc=connectorpunctuation' => 'WB/EX',
-'gc=control' => '#/298',
-'gc=cs' => '#/300',
+'gc=control' => '#/343',
+'gc=cs' => '#/345',
'gc=currencysymbol' => 'Gc/Sc',
'gc=dashpunctuation' => 'Gc/Pd',
'gc=decimalnumber' => 'Gc/Nd',
@@ -3181,12 +3530,12 @@
'gc=lc' => 'Gc/LC',
'gc=letter' => 'Gc/L',
'gc=letternumber' => 'Gc/Nl',
-'gc=lineseparator' => '#/301',
+'gc=lineseparator' => '#/346',
'gc=ll' => 'Gc/Ll',
'gc=lm' => 'Gc/Lm',
'gc=lo' => 'Gc/Lo',
'gc=lowercaseletter' => 'Gc/Ll',
-'gc=lt' => 'Gc/Lt',
+'gc=lt' => 'Perl/Title',
'gc=lu' => 'Gc/Lu',
'gc=m' => 'Gc/M',
'gc=mark' => 'Gc/M',
@@ -3209,14 +3558,14 @@
'gc=otherpunctuation' => 'Gc/Po',
'gc=othersymbol' => 'Gc/So',
'gc=p' => 'Gc/P',
-'gc=paragraphseparator' => '#/302',
+'gc=paragraphseparator' => '#/347',
'gc=pc' => 'WB/EX',
'gc=pd' => 'Gc/Pd',
'gc=pe' => 'Gc/Pe',
'gc=pf' => 'Gc/Pf',
'gc=pi' => 'Gc/Pi',
'gc=po' => 'Gc/Po',
-'gc=privateuse' => '#/299',
+'gc=privateuse' => '#/344',
'gc=ps' => 'Gc/Ps',
'gc=punct' => 'Gc/P',
'gc=punctuation' => 'Gc/P',
@@ -3228,44 +3577,48 @@
'gc=so' => 'Gc/So',
'gc=spaceseparator' => 'Gc/Zs',
'gc=spacingmark' => 'Gc/Mc',
-'gc=surrogate' => '#/300',
+'gc=surrogate' => '#/345',
'gc=symbol' => 'Gc/S',
-'gc=titlecaseletter' => 'Gc/Lt',
+'gc=titlecaseletter' => 'Perl/Title',
'gc=unassigned' => 'Gc/Cn',
'gc=uppercaseletter' => 'Gc/Lu',
'gc=z' => 'Gc/Z',
-'gc=zl' => '#/301',
-'gc=zp' => '#/302',
+'gc=zl' => '#/346',
+'gc=zp' => '#/347',
'gc=zs' => 'Gc/Zs',
'gcb=cn' => 'GCB/CN',
'gcb=control' => 'GCB/CN',
-'gcb=cr' => '#/50',
+'gcb=cr' => '#/63',
'gcb=ex' => 'GCB/EX',
'gcb=extend' => 'GCB/EX',
-'gcb=l' => '#/47',
-'gcb=lf' => '#/51',
+'gcb=l' => '#/60',
+'gcb=lf' => '#/64',
'gcb=lv' => 'GCB/LV',
'gcb=lvt' => 'GCB/LVT',
'gcb=other' => 'GCB/XX',
'gcb=pp' => '#/0',
'gcb=prepend' => '#/0',
-'gcb=regionalindicator' => '#/52',
-'gcb=ri' => '#/52',
+'gcb=regionalindicator' => '#/65',
+'gcb=ri' => '#/65',
'gcb=sm' => 'GCB/SM',
'gcb=spacingmark' => 'GCB/SM',
-'gcb=t' => '#/48',
-'gcb=v' => '#/49',
+'gcb=t' => '#/61',
+'gcb=v' => '#/62',
'gcb=xx' => 'GCB/XX',
-'generalpunctuation' => '#/230',
-'geometricshapes' => '#/263',
+'generalpunctuation' => '#/265',
+'geometricshapes' => '#/301',
+'geometricshapesext' => '#/324',
+'geometricshapesextended' => '#/324',
'geor' => 'Sc/Geor',
'georgian' => 'Sc/Geor',
-'georgiansup' => '#/223',
-'georgiansupplement' => '#/223',
-'glag' => '#/467',
-'glagolitic' => '#/467',
-'goth' => '#/468',
-'gothic' => '#/468',
+'georgiansup' => '#/256',
+'georgiansupplement' => '#/256',
+'glag' => '#/529',
+'glagolitic' => '#/529',
+'goth' => '#/530',
+'gothic' => '#/530',
+'gran' => 'Sc/Gran',
+'grantha' => 'Sc/Gran',
'graph' => 'Perl/Graph',
'graphemebase' => 'GrBase/Y',
'graphemeextend' => 'GCB/EX',
@@ -3279,9 +3632,9 @@
'grbase=y' => 'GrBase/Y',
'grbase=yes' => 'GrBase/Y',
'greek' => 'Sc/Grek',
-'greekandcoptic' => '#/95',
-'greekext' => '#/167',
-'greekextended' => '#/167',
+'greekandcoptic' => '#/110',
+'greekext' => '#/190',
+'greekextended' => '#/190',
'grek' => 'Sc/Grek',
'grext' => 'GCB/EX',
'grext=f' => '!GCB/EX',
@@ -3296,20 +3649,20 @@
'gujr' => 'Sc/Gujr',
'gurmukhi' => 'Sc/Guru',
'guru' => 'Sc/Guru',
-'halfandfullforms' => '#/273',
-'halfmarks' => '#/187',
-'halfwidthandfullwidthforms' => '#/273',
+'halfandfullforms' => '#/312',
+'halfmarks' => '#/211',
+'halfwidthandfullwidthforms' => '#/312',
'han' => 'Sc/Han',
'hang' => 'Sc/Hang',
'hangul' => 'Sc/Hang',
-'hangulcompatibilityjamo' => '#/205',
-'hanguljamo' => '#/84',
-'hanguljamoextendeda' => '#/171',
-'hanguljamoextendedb' => '#/172',
-'hangulsyllables' => '#/114',
+'hangulcompatibilityjamo' => '#/235',
+'hanguljamo' => '#/98',
+'hanguljamoextendeda' => '#/194',
+'hanguljamoextendedb' => '#/195',
+'hangulsyllables' => '#/129',
'hani' => 'Sc/Han',
-'hano' => '#/469',
-'hanunoo' => '#/469',
+'hano' => '#/531',
+'hanunoo' => '#/531',
'hebr' => 'Sc/Hebr',
'hebrew' => 'Sc/Hebr',
'hex' => 'Hex/Y',
@@ -3322,24 +3675,25 @@
'hex=y' => 'Hex/Y',
'hex=yes' => 'Hex/Y',
'hexdigit' => 'Hex/Y',
-'highprivateusesurrogates' => '#/274',
-'highpusurrogates' => '#/274',
-'highsurrogates' => '#/256',
+'highprivateusesurrogates' => '#/313',
+'highpusurrogates' => '#/313',
+'highsurrogates' => '#/292',
'hira' => 'Sc/Hira',
'hiragana' => 'Sc/Hira',
+'hmng' => 'Sc/Hmng',
'horizspace' => 'Perl/Blank',
-'hst=l' => '#/47',
-'hst=leadingjamo' => '#/47',
+'hst=l' => '#/60',
+'hst=leadingjamo' => '#/60',
'hst=lv' => 'GCB/LV',
'hst=lvsyllable' => 'GCB/LV',
'hst=lvt' => 'GCB/LVT',
'hst=lvtsyllable' => 'GCB/LVT',
'hst=na' => 'Hst/NA',
'hst=notapplicable' => 'Hst/NA',
-'hst=t' => '#/48',
-'hst=trailingjamo' => '#/48',
-'hst=v' => '#/49',
-'hst=voweljamo' => '#/49',
+'hst=t' => '#/61',
+'hst=trailingjamo' => '#/61',
+'hst=v' => '#/62',
+'hst=voweljamo' => '#/62',
'hyphen' => 'Hyphen/Y',
'hyphen=f' => '!Hyphen/Y',
'hyphen=false' => '!Hyphen/Y',
@@ -3369,7 +3723,7 @@
'ideo=y' => 'Ideo/Y',
'ideo=yes' => 'Ideo/Y',
'ideographic' => 'Ideo/Y',
-'ideographicdescriptioncharacters' => '#/77',
+'ideographicdescriptioncharacters' => '#/90',
'ids' => 'IDS/Y',
'ids=f' => '!IDS/Y',
'ids=false' => '!IDS/Y',
@@ -3379,409 +3733,449 @@
'ids=true' => 'IDS/Y',
'ids=y' => 'IDS/Y',
'ids=yes' => 'IDS/Y',
-'idsb' => '#/53',
-'idsb=f' => '#/!53',
-'idsb=false' => '#/!53',
-'idsb=n' => '#/!53',
-'idsb=no' => '#/!53',
-'idsb=t' => '#/53',
-'idsb=true' => '#/53',
-'idsb=y' => '#/53',
-'idsb=yes' => '#/53',
-'idsbinaryoperator' => '#/53',
-'idst' => '#/54',
-'idst=f' => '#/!54',
-'idst=false' => '#/!54',
-'idst=n' => '#/!54',
-'idst=no' => '#/!54',
-'idst=t' => '#/54',
-'idst=true' => '#/54',
-'idst=y' => '#/54',
-'idst=yes' => '#/54',
+'idsb' => '#/66',
+'idsb=f' => '#/!66',
+'idsb=false' => '#/!66',
+'idsb=n' => '#/!66',
+'idsb=no' => '#/!66',
+'idsb=t' => '#/66',
+'idsb=true' => '#/66',
+'idsb=y' => '#/66',
+'idsb=yes' => '#/66',
+'idsbinaryoperator' => '#/66',
+'idst' => '#/67',
+'idst=f' => '#/!67',
+'idst=false' => '#/!67',
+'idst=n' => '#/!67',
+'idst=no' => '#/!67',
+'idst=t' => '#/67',
+'idst=true' => '#/67',
+'idst=y' => '#/67',
+'idst=yes' => '#/67',
'idstart' => 'IDS/Y',
-'idstrinaryoperator' => '#/54',
-'imperialaramaic' => '#/452',
+'idstrinaryoperator' => '#/67',
+'imperialaramaic' => '#/512',
'in=unassigned' => 'Age/NA',
-'inaegeannumbers' => '#/245',
-'inalchemical' => '#/199',
-'inalchemicalsymbols' => '#/199',
-'inalphabeticpf' => '#/236',
-'inalphabeticpresentationforms' => '#/236',
-'inancientgreekmusic' => '#/281',
-'inancientgreekmusicalnotation' => '#/281',
-'inancientgreeknumbers' => '#/284',
-'inancientsymbols' => '#/252',
-'inarabic' => '#/106',
-'inarabicexta' => '#/200',
-'inarabicextendeda' => '#/200',
-'inarabicmath' => '#/201',
-'inarabicmathematicalalphabeticsymbols' => '#/201',
-'inarabicpfa' => '#/181',
-'inarabicpfb' => '#/182',
-'inarabicpresentationformsa' => '#/181',
-'inarabicpresentationformsb' => '#/182',
-'inarabicsup' => '#/183',
-'inarabicsupplement' => '#/183',
-'inarmenian' => '#/157',
-'inarrows' => '#/107',
-'inascii' => '#/91',
-'inavestan' => '#/129',
-'inbalinese' => '#/158',
-'inbamum' => '#/92',
-'inbamumsup' => '#/159',
-'inbamumsupplement' => '#/159',
-'inbasiclatin' => '#/91',
-'inbatak' => '#/93',
-'inbengali' => '#/130',
-'inblockelements' => '#/246',
-'inbopomofo' => '#/160',
-'inbopomofoext' => '#/217',
-'inbopomofoextended' => '#/217',
-'inboxdrawing' => '#/202',
-'inbrahmi' => '#/108',
-'inbraille' => '#/131',
-'inbraillepatterns' => '#/131',
-'inbuginese' => '#/161',
-'inbuhid' => '#/94',
-'inbyzantinemusic' => '#/253',
-'inbyzantinemusicalsymbols' => '#/253',
-'incanadiansyllabics' => '#/90',
-'incarian' => '#/109',
-'inchakma' => '#/110',
-'incham' => '#/83',
-'incherokee' => '#/162',
-'incjk' => '#/76',
-'incjkcompat' => '#/184',
-'incjkcompatforms' => '#/254',
-'incjkcompatibility' => '#/184',
-'incjkcompatibilityforms' => '#/254',
-'incjkcompatibilityideographs' => '#/285',
-'incjkcompatibilityideographssupplement' => '#/292',
-'incjkcompatideographs' => '#/285',
-'incjkcompatideographssup' => '#/292',
-'incjkexta' => '#/132',
-'incjkextb' => '#/133',
-'incjkextc' => '#/134',
-'incjkextd' => '#/135',
-'incjkradicalssup' => '#/255',
-'incjkradicalssupplement' => '#/255',
-'incjkstrokes' => '#/203',
-'incjksymbols' => '#/204',
-'incjksymbolsandpunctuation' => '#/204',
-'incjkunifiedideographs' => '#/76',
-'incjkunifiedideographsextensiona' => '#/132',
-'incjkunifiedideographsextensionb' => '#/133',
-'incjkunifiedideographsextensionc' => '#/134',
-'incjkunifiedideographsextensiond' => '#/135',
-'incombiningdiacriticalmarks' => '#/239',
-'incombiningdiacriticalmarksforsymbols' => '#/293',
-'incombiningdiacriticalmarkssupplement' => '#/262',
-'incombininghalfmarks' => '#/187',
-'incombiningmarksforsymbols' => '#/293',
-'incommonindicnumberforms' => '#/275',
-'incompatjamo' => '#/205',
-'incontrolpictures' => '#/260',
-'incoptic' => '#/111',
-'incountingrod' => '#/218',
-'incountingrodnumerals' => '#/218',
-'incuneiform' => '#/185',
-'incuneiformnumbers' => '#/270',
-'incuneiformnumbersandpunctuation' => '#/270',
-'incurrencysymbols' => '#/261',
-'incypriotsyllabary' => '#/271',
-'incyrillic' => '#/163',
-'incyrillicexta' => '#/237',
-'incyrillicextb' => '#/238',
-'incyrillicextendeda' => '#/237',
-'incyrillicextendedb' => '#/238',
-'incyrillicsup' => '#/219',
-'incyrillicsupplement' => '#/219',
-'incyrillicsupplementary' => '#/219',
-'indeseret' => '#/136',
-'indevanagari' => '#/206',
-'indevanagariext' => '#/247',
-'indevanagariextended' => '#/247',
-'indiacriticals' => '#/239',
-'indiacriticalsforsymbols' => '#/293',
-'indiacriticalssup' => '#/262',
-'indicnumberforms' => '#/275',
-'indingbats' => '#/164',
-'indomino' => '#/112',
-'indominotiles' => '#/112',
-'inegyptianhieroglyphs' => '#/286',
-'inemoticons' => '#/186',
-'inenclosedalphanum' => '#/272',
-'inenclosedalphanumerics' => '#/272',
-'inenclosedalphanumericsupplement' => '#/287',
-'inenclosedalphanumsup' => '#/287',
-'inenclosedcjk' => '#/220',
-'inenclosedcjklettersandmonths' => '#/220',
-'inenclosedideographicsup' => '#/294',
-'inenclosedideographicsupplement' => '#/294',
-'inethiopic' => '#/165',
-'inethiopicext' => '#/221',
-'inethiopicexta' => '#/240',
-'inethiopicextended' => '#/221',
-'inethiopicextendeda' => '#/240',
-'inethiopicsup' => '#/222',
-'inethiopicsupplement' => '#/222',
-'ingeneralpunctuation' => '#/230',
-'ingeometricshapes' => '#/263',
-'ingeorgian' => '#/166',
-'ingeorgiansup' => '#/223',
-'ingeorgiansupplement' => '#/223',
-'inglagolitic' => '#/207',
-'ingothic' => '#/113',
-'ingreek' => '#/95',
-'ingreekandcoptic' => '#/95',
-'ingreekext' => '#/167',
-'ingreekextended' => '#/167',
-'ingujarati' => '#/168',
-'ingurmukhi' => '#/169',
-'inhalfandfullforms' => '#/273',
-'inhalfmarks' => '#/187',
-'inhalfwidthandfullwidthforms' => '#/273',
-'inhangul' => '#/114',
-'inhangulcompatibilityjamo' => '#/205',
-'inhanguljamo' => '#/84',
-'inhanguljamoextendeda' => '#/171',
-'inhanguljamoextendedb' => '#/172',
-'inhangulsyllables' => '#/114',
-'inhanunoo' => '#/137',
-'inhebrew' => '#/115',
+'inaegeannumbers' => '#/281',
+'inalchemical' => '#/229',
+'inalchemicalsymbols' => '#/229',
+'inalphabeticpf' => '#/271',
+'inalphabeticpresentationforms' => '#/271',
+'inancientgreekmusic' => '#/320',
+'inancientgreekmusicalnotation' => '#/320',
+'inancientgreeknumbers' => '#/327',
+'inancientsymbols' => '#/288',
+'inarabic' => '#/121',
+'inarabicexta' => '#/230',
+'inarabicextendeda' => '#/230',
+'inarabicmath' => '#/231',
+'inarabicmathematicalalphabeticsymbols' => '#/231',
+'inarabicpfa' => '#/205',
+'inarabicpfb' => '#/206',
+'inarabicpresentationformsa' => '#/205',
+'inarabicpresentationformsb' => '#/206',
+'inarabicsup' => '#/207',
+'inarabicsupplement' => '#/207',
+'inarmenian' => '#/178',
+'inarrows' => '#/122',
+'inascii' => '#/106',
+'inavestan' => '#/145',
+'inbalinese' => '#/179',
+'inbamum' => '#/107',
+'inbamumsup' => '#/180',
+'inbamumsupplement' => '#/180',
+'inbasiclatin' => '#/106',
+'inbassavah' => '#/181',
+'inbatak' => '#/108',
+'inbengali' => '#/146',
+'inblockelements' => '#/282',
+'inbopomofo' => '#/182',
+'inbopomofoext' => '#/250',
+'inbopomofoextended' => '#/250',
+'inboxdrawing' => '#/232',
+'inbrahmi' => '#/123',
+'inbraille' => '#/147',
+'inbraillepatterns' => '#/147',
+'inbuginese' => '#/183',
+'inbuhid' => '#/109',
+'inbyzantinemusic' => '#/289',
+'inbyzantinemusicalsymbols' => '#/289',
+'incanadiansyllabics' => '#/105',
+'incarian' => '#/124',
+'incaucasianalbanian' => '#/321',
+'inchakma' => '#/125',
+'incham' => '#/97',
+'incherokee' => '#/184',
+'incjk' => '#/89',
+'incjkcompat' => '#/208',
+'incjkcompatforms' => '#/290',
+'incjkcompatibility' => '#/208',
+'incjkcompatibilityforms' => '#/290',
+'incjkcompatibilityideographs' => '#/328',
+'incjkcompatibilityideographssupplement' => '#/336',
+'incjkcompatideographs' => '#/328',
+'incjkcompatideographssup' => '#/336',
+'incjkexta' => '#/148',
+'incjkextb' => '#/149',
+'incjkextc' => '#/150',
+'incjkextd' => '#/151',
+'incjkradicalssup' => '#/291',
+'incjkradicalssupplement' => '#/291',
+'incjkstrokes' => '#/233',
+'incjksymbols' => '#/234',
+'incjksymbolsandpunctuation' => '#/234',
+'incjkunifiedideographs' => '#/89',
+'incjkunifiedideographsextensiona' => '#/148',
+'incjkunifiedideographsextensionb' => '#/149',
+'incjkunifiedideographsextensionc' => '#/150',
+'incjkunifiedideographsextensiond' => '#/151',
+'incombiningdiacriticalmarks' => '#/274',
+'incombiningdiacriticalmarksextended' => '#/299',
+'incombiningdiacriticalmarksforsymbols' => '#/337',
+'incombiningdiacriticalmarkssupplement' => '#/300',
+'incombininghalfmarks' => '#/211',
+'incombiningmarksforsymbols' => '#/337',
+'incommonindicnumberforms' => '#/314',
+'incompatjamo' => '#/235',
+'incontrolpictures' => '#/297',
+'incoptic' => '#/126',
+'incopticepactnumbers' => '#/323',
+'incountingrod' => '#/251',
+'incountingrodnumerals' => '#/251',
+'incuneiform' => '#/209',
+'incuneiformnumbers' => '#/309',
+'incuneiformnumbersandpunctuation' => '#/309',
+'incurrencysymbols' => '#/298',
+'incypriotsyllabary' => '#/310',
+'incyrillic' => '#/185',
+'incyrillicexta' => '#/272',
+'incyrillicextb' => '#/273',
+'incyrillicextendeda' => '#/272',
+'incyrillicextendedb' => '#/273',
+'incyrillicsup' => '#/252',
+'incyrillicsupplement' => '#/252',
+'incyrillicsupplementary' => '#/252',
+'indeseret' => '#/152',
+'indevanagari' => '#/236',
+'indevanagariext' => '#/283',
+'indevanagariextended' => '#/283',
+'indiacriticals' => '#/274',
+'indiacriticalsext' => '#/299',
+'indiacriticalsforsymbols' => '#/337',
+'indiacriticalssup' => '#/300',
+'indicnumberforms' => '#/314',
+'indingbats' => '#/186',
+'indomino' => '#/127',
+'indominotiles' => '#/127',
+'induployan' => '#/187',
+'inegyptianhieroglyphs' => '#/329',
+'inelbasan' => '#/153',
+'inemoticons' => '#/210',
+'inenclosedalphanum' => '#/311',
+'inenclosedalphanumerics' => '#/311',
+'inenclosedalphanumericsupplement' => '#/330',
+'inenclosedalphanumsup' => '#/330',
+'inenclosedcjk' => '#/253',
+'inenclosedcjklettersandmonths' => '#/253',
+'inenclosedideographicsup' => '#/338',
+'inenclosedideographicsupplement' => '#/338',
+'inethiopic' => '#/188',
+'inethiopicext' => '#/254',
+'inethiopicexta' => '#/275',
+'inethiopicextended' => '#/254',
+'inethiopicextendeda' => '#/275',
+'inethiopicsup' => '#/255',
+'inethiopicsupplement' => '#/255',
+'ingeneralpunctuation' => '#/265',
+'ingeometricshapes' => '#/301',
+'ingeometricshapesext' => '#/324',
+'ingeometricshapesextended' => '#/324',
+'ingeorgian' => '#/189',
+'ingeorgiansup' => '#/256',
+'ingeorgiansupplement' => '#/256',
+'inglagolitic' => '#/237',
+'ingothic' => '#/128',
+'ingrantha' => '#/154',
+'ingreek' => '#/110',
+'ingreekandcoptic' => '#/110',
+'ingreekext' => '#/190',
+'ingreekextended' => '#/190',
+'ingujarati' => '#/191',
+'ingurmukhi' => '#/192',
+'inhalfandfullforms' => '#/312',
+'inhalfmarks' => '#/211',
+'inhalfwidthandfullwidthforms' => '#/312',
+'inhangul' => '#/129',
+'inhangulcompatibilityjamo' => '#/235',
+'inhanguljamo' => '#/98',
+'inhanguljamoextendeda' => '#/194',
+'inhanguljamoextendedb' => '#/195',
+'inhangulsyllables' => '#/129',
+'inhanunoo' => '#/155',
+'inhebrew' => '#/130',
'inherited' => 'Sc/Zinh',
-'inhighprivateusesurrogates' => '#/274',
-'inhighpusurrogates' => '#/274',
-'inhighsurrogates' => '#/256',
-'inhiragana' => '#/170',
-'inidc' => '#/77',
-'inideographicdescriptioncharacters' => '#/77',
-'inimperialaramaic' => '#/264',
-'inindicnumberforms' => '#/275',
-'ininscriptionalpahlavi' => '#/290',
-'ininscriptionalparthian' => '#/291',
-'inipaext' => '#/116',
-'inipaextensions' => '#/116',
+'inhighprivateusesurrogates' => '#/313',
+'inhighpusurrogates' => '#/313',
+'inhighsurrogates' => '#/292',
+'inhiragana' => '#/193',
+'inidc' => '#/90',
+'inideographicdescriptioncharacters' => '#/90',
+'inimperialaramaic' => '#/302',
+'inindicnumberforms' => '#/314',
+'ininscriptionalpahlavi' => '#/333',
+'ininscriptionalparthian' => '#/334',
+'inipaext' => '#/131',
+'inipaextensions' => '#/131',
'initialpunctuation' => 'Gc/Pi',
-'injamo' => '#/84',
-'injamoexta' => '#/171',
-'injamoextb' => '#/172',
-'injavanese' => '#/173',
-'inkaithi' => '#/117',
-'inkanasup' => '#/138',
-'inkanasupplement' => '#/138',
-'inkanbun' => '#/118',
-'inkangxi' => '#/119',
-'inkangxiradicals' => '#/119',
-'inkannada' => '#/139',
-'inkatakana' => '#/174',
-'inkatakanaext' => '#/224',
-'inkatakanaphoneticextensions' => '#/224',
-'inkayahli' => '#/140',
-'inkharoshthi' => '#/208',
-'inkhmer' => '#/96',
-'inkhmersymbols' => '#/241',
-'inlao' => '#/78',
-'inlatin1' => '#/120',
-'inlatin1sup' => '#/120',
-'inlatin1supplement' => '#/120',
-'inlatinexta' => '#/188',
-'inlatinextadditional' => '#/283',
-'inlatinextb' => '#/189',
-'inlatinextc' => '#/190',
-'inlatinextd' => '#/191',
-'inlatinextendeda' => '#/188',
-'inlatinextendedadditional' => '#/283',
-'inlatinextendedb' => '#/189',
-'inlatinextendedc' => '#/190',
-'inlatinextendedd' => '#/191',
-'inlepcha' => '#/121',
-'inletterlikesymbols' => '#/282',
-'inlimbu' => '#/97',
-'inlinearbideograms' => '#/276',
-'inlinearbsyllabary' => '#/277',
-'inlisu' => '#/85',
-'inlowsurrogates' => '#/248',
-'inlycian' => '#/122',
-'inlydian' => '#/123',
-'inmahjong' => '#/141',
-'inmahjongtiles' => '#/141',
-'inmalayalam' => '#/192',
-'inmandaic' => '#/142',
-'inmathalphanum' => '#/242',
-'inmathematicalalphanumericsymbols' => '#/242',
-'inmathematicaloperators' => '#/249',
-'inmathoperators' => '#/249',
-'inmeeteimayek' => '#/225',
-'inmeeteimayekext' => '#/257',
-'inmeeteimayekextensions' => '#/257',
-'inmeroiticcursive' => '#/265',
-'inmeroitichieroglyphs' => '#/288',
-'inmiao' => '#/86',
-'inmiscarrows' => '#/209',
-'inmiscellaneousmathematicalsymbolsa' => '#/278',
-'inmiscellaneousmathematicalsymbolsb' => '#/279',
-'inmiscellaneoussymbols' => '#/226',
-'inmiscellaneoussymbolsandarrows' => '#/209',
-'inmiscellaneoussymbolsandpictographs' => '#/266',
-'inmiscellaneoustechnical' => '#/250',
-'inmiscmathsymbolsa' => '#/278',
-'inmiscmathsymbolsb' => '#/279',
-'inmiscpictographs' => '#/266',
-'inmiscsymbols' => '#/226',
-'inmisctechnical' => '#/250',
-'inmodifierletters' => '#/267',
-'inmodifiertoneletters' => '#/289',
-'inmongolian' => '#/193',
-'inmusic' => '#/98',
-'inmusicalsymbols' => '#/98',
-'inmyanmar' => '#/143',
-'inmyanmarexta' => '#/227',
-'inmyanmarextendeda' => '#/227',
+'injamo' => '#/98',
+'injamoexta' => '#/194',
+'injamoextb' => '#/195',
+'injavanese' => '#/196',
+'inkaithi' => '#/132',
+'inkanasup' => '#/156',
+'inkanasupplement' => '#/156',
+'inkanbun' => '#/133',
+'inkangxi' => '#/134',
+'inkangxiradicals' => '#/134',
+'inkannada' => '#/157',
+'inkatakana' => '#/197',
+'inkatakanaext' => '#/257',
+'inkatakanaphoneticextensions' => '#/257',
+'inkayahli' => '#/158',
+'inkharoshthi' => '#/238',
+'inkhmer' => '#/111',
+'inkhmersymbols' => '#/276',
+'inkhojki' => '#/135',
+'inkhudawadi' => '#/212',
+'inlao' => '#/91',
+'inlatin1' => '#/136',
+'inlatin1sup' => '#/136',
+'inlatin1supplement' => '#/136',
+'inlatinexta' => '#/213',
+'inlatinextadditional' => '#/325',
+'inlatinextb' => '#/214',
+'inlatinextc' => '#/215',
+'inlatinextd' => '#/216',
+'inlatinexte' => '#/217',
+'inlatinextendeda' => '#/213',
+'inlatinextendedadditional' => '#/325',
+'inlatinextendedb' => '#/214',
+'inlatinextendedc' => '#/215',
+'inlatinextendedd' => '#/216',
+'inlatinextendede' => '#/217',
+'inlepcha' => '#/137',
+'inletterlikesymbols' => '#/322',
+'inlimbu' => '#/112',
+'inlineara' => '#/159',
+'inlinearbideograms' => '#/315',
+'inlinearbsyllabary' => '#/316',
+'inlisu' => '#/99',
+'inlowsurrogates' => '#/284',
+'inlycian' => '#/138',
+'inlydian' => '#/139',
+'inmahajani' => '#/198',
+'inmahjong' => '#/160',
+'inmahjongtiles' => '#/160',
+'inmalayalam' => '#/218',
+'inmandaic' => '#/161',
+'inmanichaean' => '#/239',
+'inmathalphanum' => '#/277',
+'inmathematicalalphanumericsymbols' => '#/277',
+'inmathematicaloperators' => '#/285',
+'inmathoperators' => '#/285',
+'inmeeteimayek' => '#/258',
+'inmeeteimayekext' => '#/293',
+'inmeeteimayekextensions' => '#/293',
+'inmendekikakui' => '#/278',
+'inmeroiticcursive' => '#/303',
+'inmeroitichieroglyphs' => '#/331',
+'inmiao' => '#/100',
+'inmiscarrows' => '#/240',
+'inmiscellaneousmathematicalsymbolsa' => '#/317',
+'inmiscellaneousmathematicalsymbolsb' => '#/318',
+'inmiscellaneoussymbols' => '#/259',
+'inmiscellaneoussymbolsandarrows' => '#/240',
+'inmiscellaneoussymbolsandpictographs' => '#/304',
+'inmiscellaneoustechnical' => '#/286',
+'inmiscmathsymbolsa' => '#/317',
+'inmiscmathsymbolsb' => '#/318',
+'inmiscpictographs' => '#/304',
+'inmiscsymbols' => '#/259',
+'inmisctechnical' => '#/286',
+'inmodi' => '#/101',
+'inmodifierletters' => '#/305',
+'inmodifiertoneletters' => '#/332',
+'inmongolian' => '#/219',
+'inmro' => '#/92',
+'inmusic' => '#/113',
+'inmusicalsymbols' => '#/113',
+'inmyanmar' => '#/162',
+'inmyanmarexta' => '#/260',
+'inmyanmarextb' => '#/261',
+'inmyanmarextendeda' => '#/260',
+'inmyanmarextendedb' => '#/261',
+'innabataean' => '#/220',
'innb' => 'Blk/NB',
-'innewtailue' => '#/194',
-'innko' => '#/79',
+'innewtailue' => '#/221',
+'innko' => '#/93',
'innoblock' => 'Blk/NB',
-'innumberforms' => '#/228',
-'inocr' => '#/80',
-'inogham' => '#/99',
-'inolchiki' => '#/144',
-'inolditalic' => '#/195',
-'inoldpersian' => '#/210',
-'inoldsoutharabian' => '#/268',
-'inoldturkic' => '#/196',
-'inopticalcharacterrecognition' => '#/80',
-'inoriya' => '#/100',
-'inosmanya' => '#/145',
-'inphagspa' => '#/146',
-'inphaistos' => '#/175',
-'inphaistosdisc' => '#/175',
-'inphoenician' => '#/211',
-'inphoneticext' => '#/229',
-'inphoneticextensions' => '#/229',
-'inphoneticextensionssupplement' => '#/258',
-'inphoneticextsup' => '#/258',
-'inplayingcards' => '#/243',
-'inprivateuse' => '#/81',
-'inprivateusearea' => '#/81',
-'inpua' => '#/81',
-'inpunctuation' => '#/230',
-'inrejang' => '#/124',
-'inrumi' => '#/87',
-'inruminumeralsymbols' => '#/87',
-'inrunic' => '#/101',
-'insamaritan' => '#/197',
-'insaurashtra' => '#/212',
-'inscriptionalpahlavi' => '#/485',
-'inscriptionalparthian' => '#/487',
-'insharada' => '#/147',
-'inshavian' => '#/148',
-'insinhala' => '#/149',
-'insmallforms' => '#/213',
-'insmallformvariants' => '#/213',
-'insorasompeng' => '#/231',
-'inspacingmodifierletters' => '#/267',
-'inspecials' => '#/176',
-'insundanese' => '#/198',
-'insundanesesup' => '#/244',
-'insundanesesupplement' => '#/244',
-'insuparrowsa' => '#/214',
-'insuparrowsb' => '#/215',
-'insuperandsub' => '#/232',
-'insuperscriptsandsubscripts' => '#/232',
-'insupmathoperators' => '#/280',
-'insupplementalarrowsa' => '#/214',
-'insupplementalarrowsb' => '#/215',
-'insupplementalmathematicaloperators' => '#/280',
-'insupplementalpunctuation' => '#/259',
-'insupplementaryprivateuseareaa' => '#/150',
-'insupplementaryprivateuseareab' => '#/151',
-'insuppuaa' => '#/150',
-'insuppuab' => '#/151',
-'insuppunctuation' => '#/259',
-'insylotinagri' => '#/233',
-'insyriac' => '#/125',
-'intagalog' => '#/152',
-'intagbanwa' => '#/177',
-'intags' => '#/88',
-'intaile' => '#/102',
-'intaitham' => '#/153',
-'intaiviet' => '#/154',
-'intaixuanjing' => '#/234',
-'intaixuanjingsymbols' => '#/234',
-'intakri' => '#/103',
-'intamil' => '#/104',
-'intelugu' => '#/126',
-'inthaana' => '#/127',
-'inthai' => '#/89',
-'intibetan' => '#/155',
-'intifinagh' => '#/178',
-'intransportandmap' => '#/269',
-'intransportandmapsymbols' => '#/269',
-'inucas' => '#/90',
-'inucasext' => '#/156',
-'inugaritic' => '#/179',
-'inunifiedcanadianaboriginalsyllabics' => '#/90',
-'inunifiedcanadianaboriginalsyllabicsextended' => '#/156',
-'invai' => '#/82',
-'invariationselectors' => '#/75',
-'invariationselectorssupplement' => '#/105',
-'invedicext' => '#/180',
-'invedicextensions' => '#/180',
-'inverticalforms' => '#/251',
-'invs' => '#/75',
-'invssup' => '#/105',
-'inyijing' => '#/128',
-'inyijinghexagramsymbols' => '#/128',
-'inyiradicals' => '#/216',
-'inyisyllables' => '#/235',
-'ipaext' => '#/116',
-'ipaextensions' => '#/116',
-'isaegeannumbers' => '#/245',
-'isahex' => '#/46',
-'isalchemical' => '#/199',
-'isalchemicalsymbols' => '#/199',
-'isall' => '#/435',
+'innumberforms' => '#/262',
+'inocr' => '#/94',
+'inogham' => '#/114',
+'inolchiki' => '#/163',
+'inolditalic' => '#/222',
+'inoldnortharabian' => '#/306',
+'inoldpermic' => '#/223',
+'inoldpersian' => '#/241',
+'inoldsoutharabian' => '#/307',
+'inoldturkic' => '#/224',
+'inopticalcharacterrecognition' => '#/94',
+'inoriya' => '#/115',
+'inornamentaldingbats' => '#/326',
+'inosmanya' => '#/164',
+'inpahawhhmong' => '#/263',
+'inpalmyrene' => '#/225',
+'inpaucinhau' => '#/226',
+'inphagspa' => '#/165',
+'inphaistos' => '#/199',
+'inphaistosdisc' => '#/199',
+'inphoenician' => '#/242',
+'inphoneticext' => '#/264',
+'inphoneticextensions' => '#/264',
+'inphoneticextensionssupplement' => '#/294',
+'inphoneticextsup' => '#/294',
+'inplayingcards' => '#/279',
+'inprivateuse' => '#/95',
+'inprivateusearea' => '#/95',
+'inpsalterpahlavi' => '#/295',
+'inpua' => '#/95',
+'inpunctuation' => '#/265',
+'inrejang' => '#/140',
+'inrumi' => '#/102',
+'inruminumeralsymbols' => '#/102',
+'inrunic' => '#/116',
+'insamaritan' => '#/227',
+'insaurashtra' => '#/243',
+'inscriptionalpahlavi' => '#/557',
+'inscriptionalparthian' => '#/560',
+'insharada' => '#/166',
+'inshavian' => '#/167',
+'inshorthandformatcontrols' => '#/339',
+'insiddham' => '#/168',
+'insinhala' => '#/169',
+'insinhalaarchaicnumbers' => '#/335',
+'insmallforms' => '#/244',
+'insmallformvariants' => '#/244',
+'insorasompeng' => '#/266',
+'inspacingmodifierletters' => '#/305',
+'inspecials' => '#/200',
+'insundanese' => '#/228',
+'insundanesesup' => '#/280',
+'insundanesesupplement' => '#/280',
+'insuparrowsa' => '#/245',
+'insuparrowsb' => '#/246',
+'insuparrowsc' => '#/247',
+'insuperandsub' => '#/267',
+'insuperscriptsandsubscripts' => '#/267',
+'insupmathoperators' => '#/319',
+'insupplementalarrowsa' => '#/245',
+'insupplementalarrowsb' => '#/246',
+'insupplementalarrowsc' => '#/247',
+'insupplementalmathematicaloperators' => '#/319',
+'insupplementalpunctuation' => '#/296',
+'insupplementaryprivateuseareaa' => '#/170',
+'insupplementaryprivateuseareab' => '#/171',
+'insuppuaa' => '#/170',
+'insuppuab' => '#/171',
+'insuppunctuation' => '#/296',
+'insylotinagri' => '#/268',
+'insyriac' => '#/141',
+'intagalog' => '#/172',
+'intagbanwa' => '#/201',
+'intags' => '#/103',
+'intaile' => '#/117',
+'intaitham' => '#/173',
+'intaiviet' => '#/174',
+'intaixuanjing' => '#/269',
+'intaixuanjingsymbols' => '#/269',
+'intakri' => '#/118',
+'intamil' => '#/119',
+'intelugu' => '#/142',
+'inthaana' => '#/143',
+'inthai' => '#/104',
+'intibetan' => '#/175',
+'intifinagh' => '#/202',
+'intirhuta' => '#/176',
+'intransportandmap' => '#/308',
+'intransportandmapsymbols' => '#/308',
+'inucas' => '#/105',
+'inucasext' => '#/177',
+'inugaritic' => '#/203',
+'inunifiedcanadianaboriginalsyllabics' => '#/105',
+'inunifiedcanadianaboriginalsyllabicsextended' => '#/177',
+'invai' => '#/96',
+'invariationselectors' => '#/88',
+'invariationselectorssupplement' => '#/120',
+'invedicext' => '#/204',
+'invedicextensions' => '#/204',
+'inverticalforms' => '#/287',
+'invs' => '#/88',
+'invssup' => '#/120',
+'inwarangciti' => '#/248',
+'inyijing' => '#/144',
+'inyijinghexagramsymbols' => '#/144',
+'inyiradicals' => '#/249',
+'inyisyllables' => '#/270',
+'ipaext' => '#/131',
+'ipaextensions' => '#/131',
+'isaegeannumbers' => '#/281',
+'isaghb' => '#/511',
+'isahex' => '#/59',
+'isalchemical' => '#/229',
+'isalchemicalsymbols' => '#/229',
+'isall' => '#/1',
'isalnum' => 'Perl/Alnum',
'isalpha' => 'Alpha/Y',
'isalphabetic' => 'Alpha/Y',
-'isalphabeticpf' => '#/236',
-'isalphabeticpresentationforms' => '#/236',
-'isancientgreekmusic' => '#/281',
-'isancientgreekmusicalnotation' => '#/281',
-'isancientgreeknumbers' => '#/284',
-'isancientsymbols' => '#/252',
-'isany' => '#/436',
+'isalphabeticpf' => '#/271',
+'isalphabeticpresentationforms' => '#/271',
+'isancientgreekmusic' => '#/320',
+'isancientgreekmusicalnotation' => '#/320',
+'isancientgreeknumbers' => '#/327',
+'isancientsymbols' => '#/288',
+'isany' => '#/2',
'isarab' => 'Sc/Arab',
'isarabic' => 'Sc/Arab',
-'isarabicexta' => '#/200',
-'isarabicextendeda' => '#/200',
-'isarabicmath' => '#/201',
-'isarabicmathematicalalphabeticsymbols' => '#/201',
-'isarabicpfa' => '#/181',
-'isarabicpfb' => '#/182',
-'isarabicpresentationformsa' => '#/181',
-'isarabicpresentationformsb' => '#/182',
-'isarabicsup' => '#/183',
-'isarabicsupplement' => '#/183',
+'isarabicexta' => '#/230',
+'isarabicextendeda' => '#/230',
+'isarabicmath' => '#/231',
+'isarabicmathematicalalphabeticsymbols' => '#/231',
+'isarabicpfa' => '#/205',
+'isarabicpfb' => '#/206',
+'isarabicpresentationformsa' => '#/205',
+'isarabicpresentationformsb' => '#/206',
+'isarabicsup' => '#/207',
+'isarabicsupplement' => '#/207',
'isarmenian' => 'Sc/Armn',
-'isarmi' => '#/452',
+'isarmi' => '#/512',
'isarmn' => 'Sc/Armn',
-'isarrows' => '#/107',
-'isascii' => '#/91',
-'isasciihexdigit' => '#/46',
+'isarrows' => '#/122',
+'isascii' => '#/106',
+'isasciihexdigit' => '#/59',
'isassigned' => 'Perl/Assigned',
-'isavestan' => '#/453',
-'isavst' => '#/453',
-'isbali' => '#/454',
-'isbalinese' => '#/454',
-'isbamu' => '#/455',
-'isbamum' => '#/455',
-'isbamumsup' => '#/159',
-'isbamumsupplement' => '#/159',
-'isbasiclatin' => '#/91',
-'isbatak' => '#/456',
-'isbatk' => '#/456',
+'isavestan' => '#/513',
+'isavst' => '#/513',
+'isbali' => '#/514',
+'isbalinese' => '#/514',
+'isbamu' => '#/515',
+'isbamum' => '#/515',
+'isbamumsup' => '#/180',
+'isbamumsupplement' => '#/180',
+'isbasiclatin' => '#/106',
+'isbass' => '#/516',
+'isbassavah' => '#/516',
+'isbatak' => '#/517',
+'isbatk' => '#/517',
'isbeng' => 'Sc/Beng',
'isbengali' => 'Sc/Beng',
'isbidic' => 'BidiC/Y',
@@ -3789,37 +4183,38 @@
'isbidim' => 'BidiM/Y',
'isbidimirrored' => 'BidiM/Y',
'isblank' => 'Perl/Blank',
-'isblockelements' => '#/246',
-'isbopo' => '#/457',
-'isbopomofo' => '#/457',
-'isbopomofoext' => '#/217',
-'isbopomofoextended' => '#/217',
-'isboxdrawing' => '#/202',
-'isbrah' => '#/458',
-'isbrahmi' => '#/458',
-'isbrai' => '#/131',
-'isbraille' => '#/131',
-'isbraillepatterns' => '#/131',
-'isbugi' => '#/459',
-'isbuginese' => '#/459',
-'isbuhd' => '#/460',
-'isbuhid' => '#/460',
-'isbyzantinemusic' => '#/253',
-'isbyzantinemusicalsymbols' => '#/253',
+'isblockelements' => '#/282',
+'isbopo' => '#/518',
+'isbopomofo' => '#/518',
+'isbopomofoext' => '#/250',
+'isbopomofoextended' => '#/250',
+'isboxdrawing' => '#/232',
+'isbrah' => '#/519',
+'isbrahmi' => '#/519',
+'isbrai' => '#/147',
+'isbraille' => '#/147',
+'isbraillepatterns' => '#/147',
+'isbugi' => '#/520',
+'isbuginese' => '#/520',
+'isbuhd' => '#/521',
+'isbuhid' => '#/521',
+'isbyzantinemusic' => '#/289',
+'isbyzantinemusicalsymbols' => '#/289',
'isc' => 'Gc/C',
-'iscakm' => '#/461',
-'iscanadianaboriginal' => '#/462',
-'iscanadiansyllabics' => '#/90',
-'iscans' => '#/462',
-'iscari' => '#/463',
-'iscarian' => '#/463',
+'iscakm' => '#/522',
+'iscanadianaboriginal' => '#/523',
+'iscanadiansyllabics' => '#/105',
+'iscans' => '#/523',
+'iscari' => '#/524',
+'iscarian' => '#/524',
'iscased' => 'Cased/Y',
'iscasedletter' => 'Gc/LC',
'iscaseignorable' => 'CI/Y',
-'iscc' => '#/298',
+'iscaucasianalbanian' => '#/511',
+'iscc' => '#/343',
'isce' => 'CE/Y',
'iscf' => 'Gc/Cf',
-'ischakma' => '#/461',
+'ischakma' => '#/522',
'ischam' => 'Sc/Cham',
'ischangeswhencasefolded' => 'CWCF/Y',
'ischangeswhencasemapped' => 'CWCM/Y',
@@ -3827,61 +4222,63 @@
'ischangeswhennfkccasefolded' => 'CWKCF/Y',
'ischangeswhentitlecased' => 'CWT/Y',
'ischangeswhenuppercased' => 'CWU/Y',
-'ischer' => '#/464',
-'ischerokee' => '#/464',
+'ischer' => '#/525',
+'ischerokee' => '#/525',
'isci' => 'CI/Y',
-'iscjk' => '#/76',
-'iscjkcompat' => '#/184',
-'iscjkcompatforms' => '#/254',
-'iscjkcompatibility' => '#/184',
-'iscjkcompatibilityforms' => '#/254',
-'iscjkcompatibilityideographs' => '#/285',
-'iscjkcompatibilityideographssupplement' => '#/292',
-'iscjkcompatideographs' => '#/285',
-'iscjkcompatideographssup' => '#/292',
-'iscjkexta' => '#/132',
-'iscjkextb' => '#/133',
-'iscjkextc' => '#/134',
-'iscjkextd' => '#/135',
-'iscjkradicalssup' => '#/255',
-'iscjkradicalssupplement' => '#/255',
-'iscjkstrokes' => '#/203',
-'iscjksymbols' => '#/204',
-'iscjksymbolsandpunctuation' => '#/204',
-'iscjkunifiedideographs' => '#/76',
-'iscjkunifiedideographsextensiona' => '#/132',
-'iscjkunifiedideographsextensionb' => '#/133',
-'iscjkunifiedideographsextensionc' => '#/134',
-'iscjkunifiedideographsextensiond' => '#/135',
+'iscjk' => '#/89',
+'iscjkcompat' => '#/208',
+'iscjkcompatforms' => '#/290',
+'iscjkcompatibility' => '#/208',
+'iscjkcompatibilityforms' => '#/290',
+'iscjkcompatibilityideographs' => '#/328',
+'iscjkcompatibilityideographssupplement' => '#/336',
+'iscjkcompatideographs' => '#/328',
+'iscjkcompatideographssup' => '#/336',
+'iscjkexta' => '#/148',
+'iscjkextb' => '#/149',
+'iscjkextc' => '#/150',
+'iscjkextd' => '#/151',
+'iscjkradicalssup' => '#/291',
+'iscjkradicalssupplement' => '#/291',
+'iscjkstrokes' => '#/233',
+'iscjksymbols' => '#/234',
+'iscjksymbolsandpunctuation' => '#/234',
+'iscjkunifiedideographs' => '#/89',
+'iscjkunifiedideographsextensiona' => '#/148',
+'iscjkunifiedideographsextensionb' => '#/149',
+'iscjkunifiedideographsextensionc' => '#/150',
+'iscjkunifiedideographsextensiond' => '#/151',
'isclosepunctuation' => 'Gc/Pe',
'iscn' => 'Gc/Cn',
-'iscntrl' => '#/298',
-'isco' => '#/299',
-'iscombiningdiacriticalmarks' => '#/239',
-'iscombiningdiacriticalmarksforsymbols' => '#/293',
-'iscombiningdiacriticalmarkssupplement' => '#/262',
-'iscombininghalfmarks' => '#/187',
+'iscntrl' => '#/343',
+'isco' => '#/344',
+'iscombiningdiacriticalmarks' => '#/274',
+'iscombiningdiacriticalmarksextended' => '#/299',
+'iscombiningdiacriticalmarksforsymbols' => '#/337',
+'iscombiningdiacriticalmarkssupplement' => '#/300',
+'iscombininghalfmarks' => '#/211',
'iscombiningmark' => 'Gc/M',
-'iscombiningmarksforsymbols' => '#/293',
+'iscombiningmarksforsymbols' => '#/337',
'iscommon' => 'Sc/Zyyy',
-'iscommonindicnumberforms' => '#/275',
-'iscompatjamo' => '#/205',
+'iscommonindicnumberforms' => '#/314',
+'iscompatjamo' => '#/235',
'iscompex' => 'CompEx/Y',
'iscompositionexclusion' => 'CE/Y',
'isconnectorpunctuation' => 'WB/EX',
-'iscontrol' => '#/298',
-'iscontrolpictures' => '#/260',
-'iscopt' => '#/465',
-'iscoptic' => '#/465',
-'iscountingrod' => '#/218',
-'iscountingrodnumerals' => '#/218',
+'iscontrol' => '#/343',
+'iscontrolpictures' => '#/297',
+'iscopt' => '#/526',
+'iscoptic' => '#/526',
+'iscopticepactnumbers' => '#/323',
+'iscountingrod' => '#/251',
+'iscountingrodnumerals' => '#/251',
'iscprt' => 'Sc/Cprt',
-'iscs' => '#/300',
-'iscuneiform' => '#/507',
-'iscuneiformnumbers' => '#/270',
-'iscuneiformnumbersandpunctuation' => '#/270',
+'iscs' => '#/345',
+'iscuneiform' => '#/584',
+'iscuneiformnumbers' => '#/309',
+'iscuneiformnumbersandpunctuation' => '#/309',
'iscurrencysymbol' => 'Gc/Sc',
-'iscurrencysymbols' => '#/261',
+'iscurrencysymbols' => '#/298',
'iscwcf' => 'CWCF/Y',
'iscwcm' => 'CWCM/Y',
'iscwkcf' => 'CWKCF/Y',
@@ -3889,15 +4286,15 @@
'iscwt' => 'CWT/Y',
'iscwu' => 'CWU/Y',
'iscypriot' => 'Sc/Cprt',
-'iscypriotsyllabary' => '#/271',
+'iscypriotsyllabary' => '#/310',
'iscyrillic' => 'Sc/Cyrl',
-'iscyrillicexta' => '#/237',
-'iscyrillicextb' => '#/238',
-'iscyrillicextendeda' => '#/237',
-'iscyrillicextendedb' => '#/238',
-'iscyrillicsup' => '#/219',
-'iscyrillicsupplement' => '#/219',
-'iscyrillicsupplementary' => '#/219',
+'iscyrillicexta' => '#/272',
+'iscyrillicextb' => '#/273',
+'iscyrillicextendeda' => '#/272',
+'iscyrillicextendedb' => '#/273',
+'iscyrillicsup' => '#/252',
+'iscyrillicsupplement' => '#/252',
+'iscyrillicsupplementary' => '#/252',
'iscyrl' => 'Sc/Cyrl',
'isdash' => 'Dash/Y',
'isdashpunctuation' => 'Gc/Pd',
@@ -3905,143 +4302,156 @@
'isdefaultignorablecodepoint' => 'DI/Y',
'isdep' => 'Dep/Y',
'isdeprecated' => 'Dep/Y',
-'isdeseret' => '#/136',
+'isdeseret' => '#/152',
'isdeva' => 'Sc/Deva',
'isdevanagari' => 'Sc/Deva',
-'isdevanagariext' => '#/247',
-'isdevanagariextended' => '#/247',
+'isdevanagariext' => '#/283',
+'isdevanagariextended' => '#/283',
'isdi' => 'DI/Y',
'isdia' => 'Dia/Y',
'isdiacritic' => 'Dia/Y',
-'isdiacriticals' => '#/239',
-'isdiacriticalsforsymbols' => '#/293',
-'isdiacriticalssup' => '#/262',
+'isdiacriticals' => '#/274',
+'isdiacriticalsext' => '#/299',
+'isdiacriticalsforsymbols' => '#/337',
+'isdiacriticalssup' => '#/300',
'isdigit' => 'Gc/Nd',
-'isdingbats' => '#/164',
-'isdomino' => '#/112',
-'isdominotiles' => '#/112',
-'isdsrt' => '#/136',
-'isegyp' => '#/466',
-'isegyptianhieroglyphs' => '#/466',
-'isemoticons' => '#/186',
-'isenclosedalphanum' => '#/272',
-'isenclosedalphanumerics' => '#/272',
-'isenclosedalphanumericsupplement' => '#/287',
-'isenclosedalphanumsup' => '#/287',
-'isenclosedcjk' => '#/220',
-'isenclosedcjklettersandmonths' => '#/220',
-'isenclosedideographicsup' => '#/294',
-'isenclosedideographicsupplement' => '#/294',
+'isdingbats' => '#/186',
+'isdomino' => '#/127',
+'isdominotiles' => '#/127',
+'isdsrt' => '#/152',
+'isdupl' => 'Sc/Dupl',
+'isduployan' => 'Sc/Dupl',
+'isegyp' => '#/527',
+'isegyptianhieroglyphs' => '#/527',
+'iselba' => '#/528',
+'iselbasan' => '#/528',
+'isemoticons' => '#/210',
+'isenclosedalphanum' => '#/311',
+'isenclosedalphanumerics' => '#/311',
+'isenclosedalphanumericsupplement' => '#/330',
+'isenclosedalphanumsup' => '#/330',
+'isenclosedcjk' => '#/253',
+'isenclosedcjklettersandmonths' => '#/253',
+'isenclosedideographicsup' => '#/338',
+'isenclosedideographicsupplement' => '#/338',
'isenclosingmark' => 'Gc/Me',
'isethi' => 'Sc/Ethi',
'isethiopic' => 'Sc/Ethi',
-'isethiopicext' => '#/221',
-'isethiopicexta' => '#/240',
-'isethiopicextended' => '#/221',
-'isethiopicextendeda' => '#/240',
-'isethiopicsup' => '#/222',
-'isethiopicsupplement' => '#/222',
+'isethiopicext' => '#/254',
+'isethiopicexta' => '#/275',
+'isethiopicextended' => '#/254',
+'isethiopicextendeda' => '#/275',
+'isethiopicsup' => '#/255',
+'isethiopicsupplement' => '#/255',
'isext' => 'Ext/Y',
'isextender' => 'Ext/Y',
'isfinalpunctuation' => 'Gc/Pf',
'isformat' => 'Gc/Cf',
'isfullcompositionexclusion' => 'CompEx/Y',
-'isgeneralpunctuation' => '#/230',
-'isgeometricshapes' => '#/263',
+'isgeneralpunctuation' => '#/265',
+'isgeometricshapes' => '#/301',
+'isgeometricshapesext' => '#/324',
+'isgeometricshapesextended' => '#/324',
'isgeor' => 'Sc/Geor',
'isgeorgian' => 'Sc/Geor',
-'isgeorgiansup' => '#/223',
-'isgeorgiansupplement' => '#/223',
-'isglag' => '#/467',
-'isglagolitic' => '#/467',
-'isgoth' => '#/468',
-'isgothic' => '#/468',
+'isgeorgiansup' => '#/256',
+'isgeorgiansupplement' => '#/256',
+'isglag' => '#/529',
+'isglagolitic' => '#/529',
+'isgoth' => '#/530',
+'isgothic' => '#/530',
+'isgran' => 'Sc/Gran',
+'isgrantha' => 'Sc/Gran',
'isgraph' => 'Perl/Graph',
'isgraphemebase' => 'GrBase/Y',
'isgraphemeextend' => 'GCB/EX',
'isgrbase' => 'GrBase/Y',
'isgreek' => 'Sc/Grek',
-'isgreekandcoptic' => '#/95',
-'isgreekext' => '#/167',
-'isgreekextended' => '#/167',
+'isgreekandcoptic' => '#/110',
+'isgreekext' => '#/190',
+'isgreekextended' => '#/190',
'isgrek' => 'Sc/Grek',
'isgrext' => 'GCB/EX',
'isgujarati' => 'Sc/Gujr',
'isgujr' => 'Sc/Gujr',
'isgurmukhi' => 'Sc/Guru',
'isguru' => 'Sc/Guru',
-'ishalfandfullforms' => '#/273',
-'ishalfmarks' => '#/187',
-'ishalfwidthandfullwidthforms' => '#/273',
+'ishalfandfullforms' => '#/312',
+'ishalfmarks' => '#/211',
+'ishalfwidthandfullwidthforms' => '#/312',
'ishan' => 'Sc/Han',
'ishang' => 'Sc/Hang',
'ishangul' => 'Sc/Hang',
-'ishangulcompatibilityjamo' => '#/205',
-'ishanguljamo' => '#/84',
-'ishanguljamoextendeda' => '#/171',
-'ishanguljamoextendedb' => '#/172',
-'ishangulsyllables' => '#/114',
+'ishangulcompatibilityjamo' => '#/235',
+'ishanguljamo' => '#/98',
+'ishanguljamoextendeda' => '#/194',
+'ishanguljamoextendedb' => '#/195',
+'ishangulsyllables' => '#/129',
'ishani' => 'Sc/Han',
-'ishano' => '#/469',
-'ishanunoo' => '#/469',
+'ishano' => '#/531',
+'ishanunoo' => '#/531',
'ishebr' => 'Sc/Hebr',
'ishebrew' => 'Sc/Hebr',
'ishex' => 'Hex/Y',
'ishexdigit' => 'Hex/Y',
-'ishighprivateusesurrogates' => '#/274',
-'ishighpusurrogates' => '#/274',
-'ishighsurrogates' => '#/256',
+'ishighprivateusesurrogates' => '#/313',
+'ishighpusurrogates' => '#/313',
+'ishighsurrogates' => '#/292',
'ishira' => 'Sc/Hira',
'ishiragana' => 'Sc/Hira',
+'ishmng' => 'Sc/Hmng',
'ishorizspace' => 'Perl/Blank',
'ishyphen' => 'Hyphen/Y',
'isidc' => 'IDC/Y',
'isidcontinue' => 'IDC/Y',
'isideo' => 'Ideo/Y',
'isideographic' => 'Ideo/Y',
-'isideographicdescriptioncharacters' => '#/77',
+'isideographicdescriptioncharacters' => '#/90',
'isids' => 'IDS/Y',
-'isidsb' => '#/53',
-'isidsbinaryoperator' => '#/53',
-'isidst' => '#/54',
+'isidsb' => '#/66',
+'isidsbinaryoperator' => '#/66',
+'isidst' => '#/67',
'isidstart' => 'IDS/Y',
-'isidstrinaryoperator' => '#/54',
-'isimperialaramaic' => '#/452',
-'isindicnumberforms' => '#/275',
+'isidstrinaryoperator' => '#/67',
+'isimperialaramaic' => '#/512',
+'isindicnumberforms' => '#/314',
'isinherited' => 'Sc/Zinh',
'isinitialpunctuation' => 'Gc/Pi',
-'isinscriptionalpahlavi' => '#/485',
-'isinscriptionalparthian' => '#/487',
-'isipaext' => '#/116',
-'isipaextensions' => '#/116',
-'isital' => '#/470',
-'isjamo' => '#/84',
-'isjamoexta' => '#/171',
-'isjamoextb' => '#/172',
-'isjava' => '#/471',
-'isjavanese' => '#/471',
-'isjoinc' => '#/55',
-'isjoincontrol' => '#/55',
-'iskaithi' => '#/472',
-'iskali' => '#/140',
+'isinscriptionalpahlavi' => '#/557',
+'isinscriptionalparthian' => '#/560',
+'isipaext' => '#/131',
+'isipaextensions' => '#/131',
+'isital' => '#/532',
+'isjamo' => '#/98',
+'isjamoexta' => '#/194',
+'isjamoextb' => '#/195',
+'isjava' => '#/533',
+'isjavanese' => '#/533',
+'isjoinc' => '#/68',
+'isjoincontrol' => '#/68',
+'iskaithi' => '#/536',
+'iskali' => '#/534',
'iskana' => 'Sc/Kana',
-'iskanasup' => '#/138',
-'iskanasupplement' => '#/138',
-'iskanbun' => '#/118',
-'iskangxi' => '#/119',
-'iskangxiradicals' => '#/119',
+'iskanasup' => '#/156',
+'iskanasupplement' => '#/156',
+'iskanbun' => '#/133',
+'iskangxi' => '#/134',
+'iskangxiradicals' => '#/134',
'iskannada' => 'Sc/Knda',
'iskatakana' => 'Sc/Kana',
-'iskatakanaext' => '#/224',
-'iskatakanaphoneticextensions' => '#/224',
-'iskayahli' => '#/140',
+'iskatakanaext' => '#/257',
+'iskatakanaphoneticextensions' => '#/257',
+'iskayahli' => '#/534',
'iskhar' => 'Sc/Khar',
'iskharoshthi' => 'Sc/Khar',
'iskhmer' => 'Sc/Khmr',
-'iskhmersymbols' => '#/241',
+'iskhmersymbols' => '#/276',
'iskhmr' => 'Sc/Khmr',
+'iskhoj' => '#/535',
+'iskhojki' => '#/535',
+'iskhudawadi' => '#/567',
'isknda' => 'Sc/Knda',
-'iskthi' => '#/472',
+'iskthi' => '#/536',
'isl' => 'Gc/L',
'isl&' => 'Gc/LC',
'isl_' => 'Gc/LC',
@@ -4049,34 +4459,38 @@
'islao' => 'Sc/Lao',
'islaoo' => 'Sc/Lao',
'islatin' => 'Sc/Latn',
-'islatin1' => '#/120',
-'islatin1sup' => '#/120',
-'islatin1supplement' => '#/120',
-'islatinexta' => '#/188',
-'islatinextadditional' => '#/283',
-'islatinextb' => '#/189',
-'islatinextc' => '#/190',
-'islatinextd' => '#/191',
-'islatinextendeda' => '#/188',
-'islatinextendedadditional' => '#/283',
-'islatinextendedb' => '#/189',
-'islatinextendedc' => '#/190',
-'islatinextendedd' => '#/191',
+'islatin1' => '#/136',
+'islatin1sup' => '#/136',
+'islatin1supplement' => '#/136',
+'islatinexta' => '#/213',
+'islatinextadditional' => '#/325',
+'islatinextb' => '#/214',
+'islatinextc' => '#/215',
+'islatinextd' => '#/216',
+'islatinexte' => '#/217',
+'islatinextendeda' => '#/213',
+'islatinextendedadditional' => '#/325',
+'islatinextendedb' => '#/214',
+'islatinextendedc' => '#/215',
+'islatinextendedd' => '#/216',
+'islatinextendede' => '#/217',
'islatn' => 'Sc/Latn',
'islc' => 'Gc/LC',
-'islepc' => '#/473',
-'islepcha' => '#/473',
+'islepc' => '#/537',
+'islepcha' => '#/537',
'isletter' => 'Gc/L',
-'isletterlikesymbols' => '#/282',
+'isletterlikesymbols' => '#/322',
'isletternumber' => 'Gc/Nl',
'islimb' => 'Sc/Limb',
'islimbu' => 'Sc/Limb',
+'islina' => '#/538',
'islinb' => 'Sc/Linb',
+'islineara' => '#/538',
'islinearb' => 'Sc/Linb',
-'islinearbideograms' => '#/276',
-'islinearbsyllabary' => '#/277',
-'islineseparator' => '#/301',
-'islisu' => '#/85',
+'islinearbideograms' => '#/315',
+'islinearbsyllabary' => '#/316',
+'islineseparator' => '#/346',
+'islisu' => '#/99',
'isll' => 'Gc/Ll',
'islm' => 'Gc/Lm',
'islo' => 'Gc/Lo',
@@ -4085,413 +4499,480 @@
'islower' => 'Lower/Y',
'islowercase' => 'Lower/Y',
'islowercaseletter' => 'Gc/Ll',
-'islowsurrogates' => '#/248',
-'islt' => 'Gc/Lt',
+'islowsurrogates' => '#/284',
+'islt' => 'Perl/Title',
'islu' => 'Gc/Lu',
-'islyci' => '#/474',
-'islycian' => '#/474',
-'islydi' => '#/475',
-'islydian' => '#/475',
+'islyci' => '#/539',
+'islycian' => '#/539',
+'islydi' => '#/540',
+'islydian' => '#/540',
'ism' => 'Gc/M',
-'ismahjong' => '#/141',
-'ismahjongtiles' => '#/141',
+'ismahajani' => '#/541',
+'ismahj' => '#/541',
+'ismahjong' => '#/160',
+'ismahjongtiles' => '#/160',
'ismalayalam' => 'Sc/Mlym',
-'ismand' => '#/476',
-'ismandaic' => '#/476',
+'ismand' => '#/542',
+'ismandaic' => '#/542',
+'ismani' => '#/543',
+'ismanichaean' => '#/543',
'ismark' => 'Gc/M',
'ismath' => 'Math/Y',
-'ismathalphanum' => '#/242',
-'ismathematicalalphanumericsymbols' => '#/242',
-'ismathematicaloperators' => '#/249',
-'ismathoperators' => '#/249',
+'ismathalphanum' => '#/277',
+'ismathematicalalphanumericsymbols' => '#/277',
+'ismathematicaloperators' => '#/285',
+'ismathoperators' => '#/285',
'ismathsymbol' => 'Gc/Sm',
'ismc' => 'Gc/Mc',
'isme' => 'Gc/Me',
-'ismeeteimayek' => '#/479',
-'ismeeteimayekext' => '#/257',
-'ismeeteimayekextensions' => '#/257',
-'ismerc' => '#/477',
-'ismero' => '#/288',
-'ismeroiticcursive' => '#/477',
-'ismeroitichieroglyphs' => '#/288',
-'ismiao' => '#/478',
-'ismiscarrows' => '#/209',
-'ismiscellaneousmathematicalsymbolsa' => '#/278',
-'ismiscellaneousmathematicalsymbolsb' => '#/279',
-'ismiscellaneoussymbols' => '#/226',
-'ismiscellaneoussymbolsandarrows' => '#/209',
-'ismiscellaneoussymbolsandpictographs' => '#/266',
-'ismiscellaneoustechnical' => '#/250',
-'ismiscmathsymbolsa' => '#/278',
-'ismiscmathsymbolsb' => '#/279',
-'ismiscpictographs' => '#/266',
-'ismiscsymbols' => '#/226',
-'ismisctechnical' => '#/250',
+'ismeeteimayek' => '#/548',
+'ismeeteimayekext' => '#/293',
+'ismeeteimayekextensions' => '#/293',
+'ismend' => '#/544',
+'ismendekikakui' => '#/544',
+'ismerc' => '#/545',
+'ismero' => '#/331',
+'ismeroiticcursive' => '#/545',
+'ismeroitichieroglyphs' => '#/331',
+'ismiao' => '#/546',
+'ismiscarrows' => '#/240',
+'ismiscellaneousmathematicalsymbolsa' => '#/317',
+'ismiscellaneousmathematicalsymbolsb' => '#/318',
+'ismiscellaneoussymbols' => '#/259',
+'ismiscellaneoussymbolsandarrows' => '#/240',
+'ismiscellaneoussymbolsandpictographs' => '#/304',
+'ismiscellaneoustechnical' => '#/286',
+'ismiscmathsymbolsa' => '#/317',
+'ismiscmathsymbolsb' => '#/318',
+'ismiscpictographs' => '#/304',
+'ismiscsymbols' => '#/259',
+'ismisctechnical' => '#/286',
'ismlym' => 'Sc/Mlym',
'ismn' => 'Gc/Mn',
+'ismodi' => '#/547',
'ismodifierletter' => 'Gc/Lm',
-'ismodifierletters' => '#/267',
+'ismodifierletters' => '#/305',
'ismodifiersymbol' => 'Gc/Sk',
-'ismodifiertoneletters' => '#/289',
+'ismodifiertoneletters' => '#/332',
'ismong' => 'Sc/Mong',
'ismongolian' => 'Sc/Mong',
-'ismtei' => '#/479',
-'ismusic' => '#/98',
-'ismusicalsymbols' => '#/98',
-'ismyanmar' => '#/480',
-'ismyanmarexta' => '#/227',
-'ismyanmarextendeda' => '#/227',
-'ismymr' => '#/480',
+'ismro' => '#/508',
+'ismroo' => '#/508',
+'ismtei' => '#/548',
+'ismusic' => '#/113',
+'ismusicalsymbols' => '#/113',
+'ismyanmar' => '#/549',
+'ismyanmarexta' => '#/260',
+'ismyanmarextb' => '#/261',
+'ismyanmarextendeda' => '#/260',
+'ismyanmarextendedb' => '#/261',
+'ismymr' => '#/549',
'isn' => 'Gc/N',
+'isnabataean' => '#/550',
+'isnarb' => '#/306',
'isnb' => 'Blk/NB',
+'isnbat' => '#/550',
'isnchar' => 'NChar/Y',
'isnd' => 'Gc/Nd',
'isnewtailue' => 'Sc/Talu',
-'isnko' => '#/450',
-'isnkoo' => '#/450',
+'isnko' => '#/509',
+'isnkoo' => '#/509',
'isnl' => 'Gc/Nl',
'isno' => 'Gc/No',
'isnoblock' => 'Blk/NB',
'isnoncharactercodepoint' => 'NChar/Y',
'isnonspacingmark' => 'Gc/Mn',
'isnumber' => 'Gc/N',
-'isnumberforms' => '#/228',
-'isocr' => '#/80',
-'isogam' => '#/481',
-'isogham' => '#/481',
-'isolchiki' => '#/144',
-'isolck' => '#/144',
-'isolditalic' => '#/470',
-'isoldpersian' => '#/506',
-'isoldsoutharabian' => '#/268',
-'isoldturkic' => '#/482',
+'isnumberforms' => '#/262',
+'isocr' => '#/94',
+'isogam' => '#/551',
+'isogham' => '#/551',
+'isolchiki' => '#/163',
+'isolck' => '#/163',
+'isolditalic' => '#/532',
+'isoldnortharabian' => '#/306',
+'isoldpermic' => '#/555',
+'isoldpersian' => '#/583',
+'isoldsoutharabian' => '#/307',
+'isoldturkic' => '#/552',
'isopenpunctuation' => 'Gc/Ps',
-'isopticalcharacterrecognition' => '#/80',
+'isopticalcharacterrecognition' => '#/94',
'isoriya' => 'Sc/Orya',
-'isorkh' => '#/482',
+'isorkh' => '#/552',
+'isornamentaldingbats' => '#/326',
'isorya' => 'Sc/Orya',
-'isosma' => '#/483',
-'isosmanya' => '#/483',
+'isosma' => '#/553',
+'isosmanya' => '#/553',
'isother' => 'Gc/C',
'isotherletter' => 'Gc/Lo',
'isothernumber' => 'Gc/No',
'isotherpunctuation' => 'Gc/Po',
'isothersymbol' => 'Gc/So',
'isp' => 'Gc/P',
-'isparagraphseparator' => '#/302',
+'ispahawhhmong' => 'Sc/Hmng',
+'ispalm' => '#/225',
+'ispalmyrene' => '#/225',
+'isparagraphseparator' => '#/347',
'ispatsyn' => 'PatSyn/Y',
'ispatternsyntax' => 'PatSyn/Y',
'ispatternwhitespace' => 'PatWS/Y',
'ispatws' => 'PatWS/Y',
+'ispauc' => '#/554',
+'ispaucinhau' => '#/554',
'ispc' => 'WB/EX',
'ispd' => 'Gc/Pd',
'ispe' => 'Gc/Pe',
-'isperlspace' => '#/438',
+'isperlspace' => '#/3',
'isperlword' => 'Perl/PerlWord',
+'isperm' => '#/555',
'ispf' => 'Gc/Pf',
-'isphag' => '#/484',
-'isphagspa' => '#/484',
-'isphaistos' => '#/175',
-'isphaistosdisc' => '#/175',
-'isphli' => '#/485',
-'isphnx' => '#/486',
-'isphoenician' => '#/486',
-'isphoneticext' => '#/229',
-'isphoneticextensions' => '#/229',
-'isphoneticextensionssupplement' => '#/258',
-'isphoneticextsup' => '#/258',
+'isphag' => '#/556',
+'isphagspa' => '#/556',
+'isphaistos' => '#/199',
+'isphaistosdisc' => '#/199',
+'isphli' => '#/557',
+'isphlp' => '#/558',
+'isphnx' => '#/559',
+'isphoenician' => '#/559',
+'isphoneticext' => '#/264',
+'isphoneticextensions' => '#/264',
+'isphoneticextensionssupplement' => '#/294',
+'isphoneticextsup' => '#/294',
'ispi' => 'Gc/Pi',
-'isplayingcards' => '#/243',
-'isplrd' => '#/478',
+'isplayingcards' => '#/279',
+'isplrd' => '#/546',
'ispo' => 'Gc/Po',
-'isposixalnum' => '#/440',
-'isposixalpha' => '#/441',
-'isposixblank' => '#/442',
-'isposixcntrl' => '#/443',
-'isposixdigit' => '#/444',
-'isposixgraph' => '#/445',
-'isposixlower' => '#/446',
-'isposixprint' => '#/447',
+'isposixalnum' => '#/5',
+'isposixalpha' => '#/6',
+'isposixblank' => '#/7',
+'isposixcntrl' => '#/8',
+'isposixdigit' => '#/9',
+'isposixgraph' => '#/10',
+'isposixlower' => '#/11',
+'isposixprint' => '#/12',
'isposixpunct' => 'Perl/PosixPun',
-'isposixspace' => '#/438',
-'isposixupper' => '#/448',
+'isposixspace' => '#/3',
+'isposixupper' => '#/13',
'isposixword' => 'Perl/PerlWord',
-'isposixxdigit' => '#/46',
+'isposixxdigit' => '#/59',
'isprint' => 'Perl/Print',
-'isprivateuse' => '#/299',
-'isprivateusearea' => '#/81',
-'isprti' => '#/487',
+'isprivateuse' => '#/344',
+'isprivateusearea' => '#/95',
+'isprti' => '#/560',
'isps' => 'Gc/Ps',
-'ispua' => '#/81',
+'ispsalterpahlavi' => '#/558',
+'ispua' => '#/95',
'ispunct' => 'Gc/P',
'ispunctuation' => 'Gc/P',
-'isqaac' => '#/465',
+'isqaac' => '#/526',
'isqaai' => 'Sc/Zinh',
'isqmark' => 'QMark/Y',
'isquotationmark' => 'QMark/Y',
-'isradical' => '#/56',
-'isrejang' => '#/488',
-'isrjng' => '#/488',
-'isrumi' => '#/87',
-'isruminumeralsymbols' => '#/87',
-'isrunic' => '#/489',
-'isrunr' => '#/489',
+'isradical' => '#/69',
+'isrejang' => '#/561',
+'isrjng' => '#/561',
+'isrumi' => '#/102',
+'isruminumeralsymbols' => '#/102',
+'isrunic' => '#/562',
+'isrunr' => '#/562',
'iss' => 'Gc/S',
-'issamaritan' => '#/490',
-'issamr' => '#/490',
-'issarb' => '#/268',
-'issaur' => '#/491',
-'issaurashtra' => '#/491',
+'issamaritan' => '#/563',
+'issamr' => '#/563',
+'issarb' => '#/307',
+'issaur' => '#/564',
+'issaurashtra' => '#/564',
'issc' => 'Gc/Sc',
'issd' => 'SD/Y',
'isseparator' => 'Gc/Z',
-'issharada' => '#/492',
-'isshavian' => '#/148',
-'isshaw' => '#/148',
-'isshrd' => '#/492',
+'issharada' => '#/565',
+'isshavian' => '#/167',
+'isshaw' => '#/167',
+'isshorthandformatcontrols' => '#/339',
+'isshrd' => '#/565',
+'issidd' => '#/566',
+'issiddham' => '#/566',
+'issind' => '#/567',
'issinh' => 'Sc/Sinh',
'issinhala' => 'Sc/Sinh',
+'issinhalaarchaicnumbers' => '#/335',
'issk' => 'Gc/Sk',
'issm' => 'Gc/Sm',
-'issmallforms' => '#/213',
-'issmallformvariants' => '#/213',
+'issmallforms' => '#/244',
+'issmallformvariants' => '#/244',
'isso' => 'Gc/So',
'issoftdotted' => 'SD/Y',
-'issora' => '#/493',
-'issorasompeng' => '#/493',
-'isspace' => 'Space/Y',
-'isspaceperl' => 'Space/Y',
+'issora' => '#/568',
+'issorasompeng' => '#/568',
+'isspace' => 'Perl/SpacePer',
+'isspaceperl' => 'Perl/SpacePer',
'isspaceseparator' => 'Gc/Zs',
'isspacingmark' => 'Gc/Mc',
-'isspacingmodifierletters' => '#/267',
-'isspecials' => '#/176',
+'isspacingmodifierletters' => '#/305',
+'isspecials' => '#/200',
'issterm' => 'STerm/Y',
-'issund' => '#/494',
-'issundanese' => '#/494',
-'issundanesesup' => '#/244',
-'issundanesesupplement' => '#/244',
-'issuparrowsa' => '#/214',
-'issuparrowsb' => '#/215',
-'issuperandsub' => '#/232',
-'issuperscriptsandsubscripts' => '#/232',
-'issupmathoperators' => '#/280',
-'issupplementalarrowsa' => '#/214',
-'issupplementalarrowsb' => '#/215',
-'issupplementalmathematicaloperators' => '#/280',
-'issupplementalpunctuation' => '#/259',
-'issupplementaryprivateuseareaa' => '#/150',
-'issupplementaryprivateuseareab' => '#/151',
-'issuppuaa' => '#/150',
-'issuppuab' => '#/151',
-'issuppunctuation' => '#/259',
-'issurrogate' => '#/300',
-'issylo' => '#/495',
-'issylotinagri' => '#/495',
+'issund' => '#/569',
+'issundanese' => '#/569',
+'issundanesesup' => '#/280',
+'issundanesesupplement' => '#/280',
+'issuparrowsa' => '#/245',
+'issuparrowsb' => '#/246',
+'issuparrowsc' => '#/247',
+'issuperandsub' => '#/267',
+'issuperscriptsandsubscripts' => '#/267',
+'issupmathoperators' => '#/319',
+'issupplementalarrowsa' => '#/245',
+'issupplementalarrowsb' => '#/246',
+'issupplementalarrowsc' => '#/247',
+'issupplementalmathematicaloperators' => '#/319',
+'issupplementalpunctuation' => '#/296',
+'issupplementaryprivateuseareaa' => '#/170',
+'issupplementaryprivateuseareab' => '#/171',
+'issuppuaa' => '#/170',
+'issuppuab' => '#/171',
+'issuppunctuation' => '#/296',
+'issurrogate' => '#/345',
+'issylo' => '#/570',
+'issylotinagri' => '#/570',
'issymbol' => 'Gc/S',
-'issyrc' => '#/496',
-'issyriac' => '#/496',
-'istagalog' => '#/502',
-'istagb' => '#/497',
-'istagbanwa' => '#/497',
-'istags' => '#/88',
-'istaile' => '#/499',
+'issyrc' => '#/571',
+'issyriac' => '#/571',
+'istagalog' => '#/577',
+'istagb' => '#/572',
+'istagbanwa' => '#/572',
+'istags' => '#/103',
+'istaile' => '#/574',
'istaitham' => 'Sc/Lana',
-'istaiviet' => '#/500',
-'istaixuanjing' => '#/234',
-'istaixuanjingsymbols' => '#/234',
-'istakr' => '#/498',
-'istakri' => '#/498',
-'istale' => '#/499',
+'istaiviet' => '#/575',
+'istaixuanjing' => '#/269',
+'istaixuanjingsymbols' => '#/269',
+'istakr' => '#/573',
+'istakri' => '#/573',
+'istale' => '#/574',
'istalu' => 'Sc/Talu',
'istamil' => 'Sc/Taml',
'istaml' => 'Sc/Taml',
-'istavt' => '#/500',
+'istavt' => '#/575',
'istelu' => 'Sc/Telu',
'istelugu' => 'Sc/Telu',
'isterm' => 'Term/Y',
'isterminalpunctuation' => 'Term/Y',
-'istfng' => '#/501',
-'istglg' => '#/502',
-'isthaa' => '#/503',
-'isthaana' => '#/503',
-'isthai' => '#/504',
+'istfng' => '#/576',
+'istglg' => '#/577',
+'isthaa' => '#/578',
+'isthaana' => '#/578',
+'isthai' => '#/579',
'istibetan' => 'Sc/Tibt',
'istibt' => 'Sc/Tibt',
-'istifinagh' => '#/501',
-'istitle' => 'Gc/Lt',
-'istitlecase' => 'Gc/Lt',
-'istitlecaseletter' => 'Gc/Lt',
-'istransportandmap' => '#/269',
-'istransportandmapsymbols' => '#/269',
-'isucas' => '#/90',
-'isucasext' => '#/156',
-'isugar' => '#/505',
-'isugaritic' => '#/505',
+'istifinagh' => '#/576',
+'istirh' => '#/580',
+'istirhuta' => '#/580',
+'istitle' => 'Perl/Title',
+'istitlecase' => 'Perl/Title',
+'istitlecaseletter' => 'Perl/Title',
+'istransportandmap' => '#/308',
+'istransportandmapsymbols' => '#/308',
+'isucas' => '#/105',
+'isucasext' => '#/177',
+'isugar' => '#/581',
+'isugaritic' => '#/581',
'isuideo' => 'UIdeo/Y',
'isunassigned' => 'Gc/Cn',
-'isunicode' => '#/436',
-'isunifiedcanadianaboriginalsyllabics' => '#/90',
-'isunifiedcanadianaboriginalsyllabicsextended' => '#/156',
+'isunicode' => '#/2',
+'isunifiedcanadianaboriginalsyllabics' => '#/105',
+'isunifiedcanadianaboriginalsyllabicsextended' => '#/177',
'isunifiedideograph' => 'UIdeo/Y',
'isunknown' => 'Sc/Zzzz',
'isupper' => 'Upper/Y',
'isuppercase' => 'Upper/Y',
'isuppercaseletter' => 'Gc/Lu',
-'isvai' => '#/451',
-'isvaii' => '#/451',
-'isvariationselector' => '#/58',
-'isvariationselectors' => '#/75',
-'isvariationselectorssupplement' => '#/105',
-'isvedicext' => '#/180',
-'isvedicextensions' => '#/180',
-'isverticalforms' => '#/251',
-'isvertspace' => '#/439',
-'isvs' => '#/58',
-'isvssup' => '#/105',
-'iswhitespace' => 'Space/Y',
+'isvai' => '#/510',
+'isvaii' => '#/510',
+'isvariationselector' => '#/71',
+'isvariationselectors' => '#/88',
+'isvariationselectorssupplement' => '#/120',
+'isvedicext' => '#/204',
+'isvedicextensions' => '#/204',
+'isverticalforms' => '#/287',
+'isvertspace' => '#/4',
+'isvs' => '#/71',
+'isvssup' => '#/120',
+'iswara' => '#/582',
+'iswarangciti' => '#/582',
+'iswhitespace' => 'Perl/SpacePer',
'isword' => 'Perl/Word',
-'iswspace' => 'Space/Y',
+'iswspace' => 'Perl/SpacePer',
'isxdigit' => 'Hex/Y',
'isxidc' => 'XIDC/Y',
'isxidcontinue' => 'XIDC/Y',
'isxids' => 'XIDS/Y',
'isxidstart' => 'XIDS/Y',
-'isxpeo' => '#/506',
-'isxperlspace' => 'Space/Y',
+'isxpeo' => '#/583',
+'isxperlspace' => 'Perl/SpacePer',
'isxposixalnum' => 'Perl/Alnum',
'isxposixalpha' => 'Alpha/Y',
'isxposixblank' => 'Perl/Blank',
-'isxposixcntrl' => '#/298',
+'isxposixcntrl' => '#/343',
'isxposixdigit' => 'Gc/Nd',
'isxposixgraph' => 'Perl/Graph',
'isxposixlower' => 'Lower/Y',
'isxposixprint' => 'Perl/Print',
'isxposixpunct' => 'Perl/XPosixPu',
-'isxposixspace' => 'Space/Y',
+'isxposixspace' => 'Perl/SpacePer',
'isxposixupper' => 'Upper/Y',
'isxposixword' => 'Perl/Word',
'isxposixxdigit' => 'Hex/Y',
-'isxsux' => '#/507',
-'isyi' => '#/449',
-'isyiii' => '#/449',
-'isyijing' => '#/128',
-'isyijinghexagramsymbols' => '#/128',
-'isyiradicals' => '#/216',
-'isyisyllables' => '#/235',
+'isxsux' => '#/584',
+'isyi' => '#/507',
+'isyiii' => '#/507',
+'isyijing' => '#/144',
+'isyijinghexagramsymbols' => '#/144',
+'isyiradicals' => '#/249',
+'isyisyllables' => '#/270',
'isz' => 'Gc/Z',
'iszinh' => 'Sc/Zinh',
-'iszl' => '#/301',
-'iszp' => '#/302',
+'iszl' => '#/346',
+'iszp' => '#/347',
'iszs' => 'Gc/Zs',
'iszyyy' => 'Sc/Zyyy',
'iszzzz' => 'Sc/Zzzz',
-'ital' => '#/470',
-'jamo' => '#/84',
-'jamoexta' => '#/171',
-'jamoextb' => '#/172',
-'java' => '#/471',
-'javanese' => '#/471',
+'ital' => '#/532',
+'jamo' => '#/98',
+'jamoexta' => '#/194',
+'jamoextb' => '#/195',
+'java' => '#/533',
+'javanese' => '#/533',
'jg=ain' => 'Jg/Ain',
-'jg=alaph' => '#/325',
+'jg=alaph' => '#/369',
'jg=alef' => 'Jg/Alef',
'jg=beh' => 'Jg/Beh',
-'jg=beth' => '#/315',
-'jg=burushaskiyehbarree' => '#/345',
+'jg=beth' => '#/359',
+'jg=burushaskiyehbarree' => '#/417',
'jg=dal' => 'Jg/Dal',
-'jg=dalathrish' => '#/337',
-'jg=e' => '#/303',
+'jg=dalathrish' => '#/381',
+'jg=e' => '#/348',
'jg=farsiyeh' => 'Jg/FarsiYeh',
-'jg=fe' => '#/304',
+'jg=fe' => '#/349',
'jg=feh' => 'Jg/Feh',
-'jg=finalsemkath' => '#/343',
+'jg=finalsemkath' => '#/388',
'jg=gaf' => 'Jg/Gaf',
-'jg=gamal' => '#/326',
+'jg=gamal' => '#/370',
'jg=hah' => 'Jg/Hah',
-'jg=hamzaonhehgoal' => '#/344',
-'jg=he' => '#/305',
-'jg=heh' => '#/307',
-'jg=hehgoal' => '#/332',
-'jg=heth' => '#/316',
-'jg=kaf' => '#/308',
-'jg=kaph' => '#/317',
-'jg=khaph' => '#/327',
-'jg=knottedheh' => '#/338',
+'jg=hamzaonhehgoal' => '#/396',
+'jg=he' => '#/350',
+'jg=heh' => '#/352',
+'jg=hehgoal' => '#/376',
+'jg=heth' => '#/360',
+'jg=kaf' => '#/353',
+'jg=kaph' => '#/361',
+'jg=khaph' => '#/371',
+'jg=knottedheh' => '#/382',
'jg=lam' => 'Jg/Lam',
-'jg=lamadh' => '#/330',
-'jg=meem' => '#/318',
-'jg=mim' => '#/309',
+'jg=lamadh' => '#/374',
+'jg=manichaeanaleph' => '#/406',
+'jg=manichaeanayin' => '#/397',
+'jg=manichaeanbeth' => '#/398',
+'jg=manichaeandaleth' => '#/410',
+'jg=manichaeandhamedh' => '#/414',
+'jg=manichaeanfive' => '#/399',
+'jg=manichaeangimel' => '#/407',
+'jg=manichaeanheth' => '#/400',
+'jg=manichaeanhundred' => '#/415',
+'jg=manichaeankaph' => '#/401',
+'jg=manichaeanlamedh' => '#/411',
+'jg=manichaeanmem' => '#/390',
+'jg=manichaeannun' => '#/391',
+'jg=manichaeanone' => '#/392',
+'jg=manichaeanpe' => '#/389',
+'jg=manichaeanqoph' => '#/402',
+'jg=manichaeanresh' => '#/403',
+'jg=manichaeansadhe' => '#/408',
+'jg=manichaeansamekh' => '#/412',
+'jg=manichaeantaw' => '#/393',
+'jg=manichaeanten' => '#/394',
+'jg=manichaeanteth' => '#/404',
+'jg=manichaeanthamedh' => '#/416',
+'jg=manichaeantwenty' => '#/413',
+'jg=manichaeanwaw' => '#/395',
+'jg=manichaeanyodh' => '#/405',
+'jg=manichaeanzayin' => '#/409',
+'jg=meem' => '#/362',
+'jg=mim' => '#/354',
'jg=nojoininggroup' => 'Jg/NoJoinin',
-'jg=noon' => '#/319',
-'jg=nun' => '#/310',
-'jg=nya' => '#/311',
-'jg=pe' => '#/306',
+'jg=noon' => '#/363',
+'jg=nun' => '#/355',
+'jg=nya' => '#/356',
+'jg=pe' => '#/351',
'jg=qaf' => 'Jg/Qaf',
-'jg=qaph' => '#/320',
+'jg=qaph' => '#/364',
'jg=reh' => 'Jg/Reh',
-'jg=reversedpe' => '#/339',
-'jg=rohingyayeh' => '#/341',
-'jg=sad' => '#/312',
-'jg=sadhe' => '#/328',
+'jg=reversedpe' => '#/383',
+'jg=rohingyayeh' => '#/385',
+'jg=sad' => 'Jg/Sad',
+'jg=sadhe' => '#/372',
'jg=seen' => 'Jg/Seen',
-'jg=semkath' => '#/333',
-'jg=shin' => '#/321',
-'jg=swashkaf' => '#/334',
-'jg=syriacwaw' => '#/335',
-'jg=tah' => '#/313',
-'jg=taw' => '#/314',
-'jg=tehmarbuta' => '#/340',
-'jg=tehmarbutagoal' => '#/344',
-'jg=teth' => '#/322',
+'jg=semkath' => '#/377',
+'jg=shin' => '#/365',
+'jg=straightwaw' => '#/386',
+'jg=swashkaf' => '#/378',
+'jg=syriacwaw' => '#/379',
+'jg=tah' => '#/357',
+'jg=taw' => '#/358',
+'jg=tehmarbuta' => '#/384',
+'jg=tehmarbutagoal' => '#/396',
+'jg=teth' => '#/366',
'jg=waw' => 'Jg/Waw',
'jg=yeh' => 'Jg/Yeh',
-'jg=yehbarree' => '#/336',
-'jg=yehwithtail' => '#/342',
-'jg=yudh' => '#/323',
-'jg=yudhhe' => '#/331',
-'jg=zain' => '#/324',
-'jg=zhain' => '#/329',
-'joinc' => '#/55',
-'joinc=f' => '#/!55',
-'joinc=false' => '#/!55',
-'joinc=n' => '#/!55',
-'joinc=no' => '#/!55',
-'joinc=t' => '#/55',
-'joinc=true' => '#/55',
-'joinc=y' => '#/55',
-'joinc=yes' => '#/55',
-'joincontrol' => '#/55',
+'jg=yehbarree' => '#/380',
+'jg=yehwithtail' => '#/387',
+'jg=yudh' => '#/367',
+'jg=yudhhe' => '#/375',
+'jg=zain' => '#/368',
+'jg=zhain' => '#/373',
+'joinc' => '#/68',
+'joinc=f' => '#/!68',
+'joinc=false' => '#/!68',
+'joinc=n' => '#/!68',
+'joinc=no' => '#/!68',
+'joinc=t' => '#/68',
+'joinc=true' => '#/68',
+'joinc=y' => '#/68',
+'joinc=yes' => '#/68',
+'joincontrol' => '#/68',
'jt=c' => 'Jt/C',
'jt=d' => 'Jt/D',
'jt=dualjoining' => 'Jt/D',
'jt=joincausing' => 'Jt/C',
-'jt=l' => '#/346',
-'jt=leftjoining' => '#/346',
+'jt=l' => '#/418',
+'jt=leftjoining' => '#/418',
'jt=nonjoining' => 'Jt/U',
'jt=r' => 'Jt/R',
'jt=rightjoining' => 'Jt/R',
'jt=t' => 'Jt/T',
'jt=transparent' => 'Jt/T',
'jt=u' => 'Jt/U',
-'kaithi' => '#/472',
-'kali' => '#/140',
+'kaithi' => '#/536',
+'kali' => '#/534',
'kana' => 'Sc/Kana',
-'kanasup' => '#/138',
-'kanasupplement' => '#/138',
-'kanbun' => '#/118',
-'kangxi' => '#/119',
-'kangxiradicals' => '#/119',
+'kanasup' => '#/156',
+'kanasupplement' => '#/156',
+'kanbun' => '#/133',
+'kangxi' => '#/134',
+'kangxiradicals' => '#/134',
'kannada' => 'Sc/Knda',
'katakana' => 'Sc/Kana',
-'katakanaext' => '#/224',
-'katakanaphoneticextensions' => '#/224',
-'kayahli' => '#/140',
+'katakanaext' => '#/257',
+'katakanaphoneticextensions' => '#/257',
+'kayahli' => '#/534',
'khar' => 'Sc/Khar',
'kharoshthi' => 'Sc/Khar',
'khmer' => 'Sc/Khmr',
-'khmersymbols' => '#/241',
+'khmersymbols' => '#/276',
'khmr' => 'Sc/Khmr',
+'khoj' => '#/535',
+'khojki' => '#/535',
+'khudawadi' => '#/567',
'knda' => 'Sc/Knda',
-'kthi' => '#/472',
+'kthi' => '#/536',
'l' => 'Gc/L',
'l&' => 'Gc/LC',
'l_' => 'Gc/LC',
@@ -4499,45 +4980,47 @@
'lao' => 'Sc/Lao',
'laoo' => 'Sc/Lao',
'latin' => 'Sc/Latn',
-'latin1' => '#/120',
-'latin1sup' => '#/120',
-'latin1supplement' => '#/120',
-'latinexta' => '#/188',
-'latinextadditional' => '#/283',
-'latinextb' => '#/189',
-'latinextc' => '#/190',
-'latinextd' => '#/191',
-'latinextendeda' => '#/188',
-'latinextendedadditional' => '#/283',
-'latinextendedb' => '#/189',
-'latinextendedc' => '#/190',
-'latinextendedd' => '#/191',
+'latin1' => '#/136',
+'latin1sup' => '#/136',
+'latin1supplement' => '#/136',
+'latinexta' => '#/213',
+'latinextadditional' => '#/325',
+'latinextb' => '#/214',
+'latinextc' => '#/215',
+'latinextd' => '#/216',
+'latinexte' => '#/217',
+'latinextendeda' => '#/213',
+'latinextendedadditional' => '#/325',
+'latinextendedb' => '#/214',
+'latinextendedc' => '#/215',
+'latinextendedd' => '#/216',
+'latinextendede' => '#/217',
'latn' => 'Sc/Latn',
'lb=ai' => 'Lb/AI',
'lb=al' => 'Lb/AL',
'lb=alphabetic' => 'Lb/AL',
'lb=ambiguous' => 'Lb/AI',
-'lb=b2' => '#/347',
+'lb=b2' => '#/419',
'lb=ba' => 'Lb/BA',
'lb=bb' => 'Lb/BB',
-'lb=bk' => '#/348',
+'lb=bk' => '#/420',
'lb=breakafter' => 'Lb/BA',
'lb=breakbefore' => 'Lb/BB',
-'lb=breakboth' => '#/347',
-'lb=breaksymbols' => '#/356',
-'lb=carriagereturn' => '#/50',
-'lb=cb' => '#/349',
+'lb=breakboth' => '#/419',
+'lb=breaksymbols' => '#/428',
+'lb=carriagereturn' => '#/63',
+'lb=cb' => '#/421',
'lb=cj' => 'Lb/CJ',
'lb=cl' => 'Lb/CL',
-'lb=closeparenthesis' => '#/350',
+'lb=closeparenthesis' => '#/422',
'lb=closepunctuation' => 'Lb/CL',
'lb=cm' => 'Lb/CM',
'lb=combiningmark' => 'Lb/CM',
'lb=complexcontext' => 'Lb/SA',
'lb=conditionaljapanesestarter' => 'Lb/CJ',
-'lb=contingentbreak' => '#/349',
-'lb=cp' => '#/350',
-'lb=cr' => '#/50',
+'lb=contingentbreak' => '#/421',
+'lb=cp' => '#/422',
+'lb=cr' => '#/63',
'lb=ex' => 'Lb/EX',
'lb=exclamation' => 'Lb/EX',
'lb=gl' => 'Lb/GL',
@@ -4546,23 +5029,23 @@
'lb=h3' => 'GCB/LVT',
'lb=hebrewletter' => 'WB/HL',
'lb=hl' => 'WB/HL',
-'lb=hy' => '#/351',
-'lb=hyphen' => '#/351',
+'lb=hy' => '#/423',
+'lb=hyphen' => '#/423',
'lb=id' => 'Lb/ID',
'lb=ideographic' => 'Lb/ID',
-'lb=in' => '#/352',
+'lb=in' => '#/424',
'lb=infixnumeric' => 'Lb/IS',
-'lb=inseparable' => '#/352',
-'lb=inseperable' => '#/352',
+'lb=inseparable' => '#/424',
+'lb=inseperable' => '#/424',
'lb=is' => 'Lb/IS',
-'lb=jl' => '#/47',
-'lb=jt' => '#/48',
-'lb=jv' => '#/49',
-'lb=lf' => '#/51',
-'lb=linefeed' => '#/51',
-'lb=mandatorybreak' => '#/348',
-'lb=nextline' => '#/353',
-'lb=nl' => '#/353',
+'lb=jl' => '#/60',
+'lb=jt' => '#/61',
+'lb=jv' => '#/62',
+'lb=lf' => '#/64',
+'lb=linefeed' => '#/64',
+'lb=mandatorybreak' => '#/420',
+'lb=nextline' => '#/425',
+'lb=nl' => '#/425',
'lb=nonstarter' => 'Lb/NS',
'lb=ns' => 'Lb/NS',
'lb=nu' => 'SB/NU',
@@ -4575,34 +5058,36 @@
'lb=prefixnumeric' => 'Lb/PR',
'lb=qu' => 'Lb/QU',
'lb=quotation' => 'Lb/QU',
-'lb=regionalindicator' => '#/52',
-'lb=ri' => '#/52',
+'lb=regionalindicator' => '#/65',
+'lb=ri' => '#/65',
'lb=sa' => 'Lb/SA',
-'lb=sg' => '#/354',
-'lb=sp' => '#/355',
-'lb=space' => '#/355',
-'lb=surrogate' => '#/354',
-'lb=sy' => '#/356',
+'lb=sg' => '#/426',
+'lb=sp' => '#/427',
+'lb=space' => '#/427',
+'lb=surrogate' => '#/426',
+'lb=sy' => '#/428',
'lb=unknown' => 'Lb/XX',
-'lb=wj' => '#/357',
-'lb=wordjoiner' => '#/357',
+'lb=wj' => '#/429',
+'lb=wordjoiner' => '#/429',
'lb=xx' => 'Lb/XX',
-'lb=zw' => '#/358',
-'lb=zwspace' => '#/358',
+'lb=zw' => '#/430',
+'lb=zwspace' => '#/430',
'lc' => 'Gc/LC',
-'lepc' => '#/473',
-'lepcha' => '#/473',
+'lepc' => '#/537',
+'lepcha' => '#/537',
'letter' => 'Gc/L',
-'letterlikesymbols' => '#/282',
+'letterlikesymbols' => '#/322',
'letternumber' => 'Gc/Nl',
'limb' => 'Sc/Limb',
'limbu' => 'Sc/Limb',
+'lina' => '#/538',
'linb' => 'Sc/Linb',
+'lineara' => '#/538',
'linearb' => 'Sc/Linb',
-'linearbideograms' => '#/276',
-'linearbsyllabary' => '#/277',
-'lineseparator' => '#/301',
-'lisu' => '#/85',
+'linearbideograms' => '#/315',
+'linearbsyllabary' => '#/316',
+'lineseparator' => '#/346',
+'lisu' => '#/99',
'll' => 'Gc/Ll',
'lm' => 'Gc/Lm',
'lo' => 'Gc/Lo',
@@ -4627,19 +5112,23 @@
'lower=yes' => 'Lower/Y',
'lowercase' => 'Lower/Y',
'lowercaseletter' => 'Gc/Ll',
-'lowsurrogates' => '#/248',
-'lt' => 'Gc/Lt',
+'lowsurrogates' => '#/284',
+'lt' => 'Perl/Title',
'lu' => 'Gc/Lu',
-'lyci' => '#/474',
-'lycian' => '#/474',
-'lydi' => '#/475',
-'lydian' => '#/475',
+'lyci' => '#/539',
+'lycian' => '#/539',
+'lydi' => '#/540',
+'lydian' => '#/540',
'm' => 'Gc/M',
-'mahjong' => '#/141',
-'mahjongtiles' => '#/141',
+'mahajani' => '#/541',
+'mahj' => '#/541',
+'mahjong' => '#/160',
+'mahjongtiles' => '#/160',
'malayalam' => 'Sc/Mlym',
-'mand' => '#/476',
-'mandaic' => '#/476',
+'mand' => '#/542',
+'mandaic' => '#/542',
+'mani' => '#/543',
+'manichaean' => '#/543',
'mark' => 'Gc/M',
'math' => 'Math/Y',
'math=f' => '!Math/Y',
@@ -4650,50 +5139,60 @@
'math=true' => 'Math/Y',
'math=y' => 'Math/Y',
'math=yes' => 'Math/Y',
-'mathalphanum' => '#/242',
-'mathematicalalphanumericsymbols' => '#/242',
-'mathematicaloperators' => '#/249',
-'mathoperators' => '#/249',
+'mathalphanum' => '#/277',
+'mathematicalalphanumericsymbols' => '#/277',
+'mathematicaloperators' => '#/285',
+'mathoperators' => '#/285',
'mathsymbol' => 'Gc/Sm',
'mc' => 'Gc/Mc',
'me' => 'Gc/Me',
-'meeteimayek' => '#/479',
-'meeteimayekext' => '#/257',
-'meeteimayekextensions' => '#/257',
-'merc' => '#/477',
-'mero' => '#/288',
-'meroiticcursive' => '#/477',
-'meroitichieroglyphs' => '#/288',
-'miao' => '#/478',
-'miscarrows' => '#/209',
-'miscellaneousmathematicalsymbolsa' => '#/278',
-'miscellaneousmathematicalsymbolsb' => '#/279',
-'miscellaneoussymbols' => '#/226',
-'miscellaneoussymbolsandarrows' => '#/209',
-'miscellaneoussymbolsandpictographs' => '#/266',
-'miscellaneoustechnical' => '#/250',
-'miscmathsymbolsa' => '#/278',
-'miscmathsymbolsb' => '#/279',
-'miscpictographs' => '#/266',
-'miscsymbols' => '#/226',
-'misctechnical' => '#/250',
+'meeteimayek' => '#/548',
+'meeteimayekext' => '#/293',
+'meeteimayekextensions' => '#/293',
+'mend' => '#/544',
+'mendekikakui' => '#/544',
+'merc' => '#/545',
+'mero' => '#/331',
+'meroiticcursive' => '#/545',
+'meroitichieroglyphs' => '#/331',
+'miao' => '#/546',
+'miscarrows' => '#/240',
+'miscellaneousmathematicalsymbolsa' => '#/317',
+'miscellaneousmathematicalsymbolsb' => '#/318',
+'miscellaneoussymbols' => '#/259',
+'miscellaneoussymbolsandarrows' => '#/240',
+'miscellaneoussymbolsandpictographs' => '#/304',
+'miscellaneoustechnical' => '#/286',
+'miscmathsymbolsa' => '#/317',
+'miscmathsymbolsb' => '#/318',
+'miscpictographs' => '#/304',
+'miscsymbols' => '#/259',
+'misctechnical' => '#/286',
'mlym' => 'Sc/Mlym',
'mn' => 'Gc/Mn',
+'modi' => '#/547',
'modifierletter' => 'Gc/Lm',
-'modifierletters' => '#/267',
+'modifierletters' => '#/305',
'modifiersymbol' => 'Gc/Sk',
-'modifiertoneletters' => '#/289',
+'modifiertoneletters' => '#/332',
'mong' => 'Sc/Mong',
'mongolian' => 'Sc/Mong',
-'mtei' => '#/479',
-'music' => '#/98',
-'musicalsymbols' => '#/98',
-'myanmar' => '#/480',
-'myanmarexta' => '#/227',
-'myanmarextendeda' => '#/227',
-'mymr' => '#/480',
+'mro' => '#/508',
+'mroo' => '#/508',
+'mtei' => '#/548',
+'music' => '#/113',
+'musicalsymbols' => '#/113',
+'myanmar' => '#/549',
+'myanmarexta' => '#/260',
+'myanmarextb' => '#/261',
+'myanmarextendeda' => '#/260',
+'myanmarextendedb' => '#/261',
+'mymr' => '#/549',
'n' => 'Gc/N',
+'nabataean' => '#/550',
+'narb' => '#/306',
'nb' => 'Blk/NB',
+'nbat' => '#/550',
'nchar' => 'NChar/Y',
'nchar=f' => '!NChar/Y',
'nchar=false' => '!NChar/Y',
@@ -4725,8 +5224,8 @@
'nfkdqc=no' => 'NFKDQC/N',
'nfkdqc=y' => 'NFKDQC/Y',
'nfkdqc=yes' => 'NFKDQC/Y',
-'nko' => '#/450',
-'nkoo' => '#/450',
+'nko' => '#/509',
+'nkoo' => '#/509',
'nl' => 'Gc/Nl',
'no' => 'Gc/No',
'noblock' => 'Blk/NB',
@@ -4740,31 +5239,37 @@
'nt=nu' => 'Nt/Nu',
'nt=numeric' => 'Nt/Nu',
'number' => 'Gc/N',
-'numberforms' => '#/228',
+'numberforms' => '#/262',
'nv=nan' => 'Nt/None',
-'ocr' => '#/80',
-'ogam' => '#/481',
-'ogham' => '#/481',
-'olchiki' => '#/144',
-'olck' => '#/144',
-'olditalic' => '#/470',
-'oldpersian' => '#/506',
-'oldsoutharabian' => '#/268',
-'oldturkic' => '#/482',
+'ocr' => '#/94',
+'ogam' => '#/551',
+'ogham' => '#/551',
+'olchiki' => '#/163',
+'olck' => '#/163',
+'olditalic' => '#/532',
+'oldnortharabian' => '#/306',
+'oldpermic' => '#/555',
+'oldpersian' => '#/583',
+'oldsoutharabian' => '#/307',
+'oldturkic' => '#/552',
'openpunctuation' => 'Gc/Ps',
-'opticalcharacterrecognition' => '#/80',
+'opticalcharacterrecognition' => '#/94',
'oriya' => 'Sc/Orya',
-'orkh' => '#/482',
+'orkh' => '#/552',
+'ornamentaldingbats' => '#/326',
'orya' => 'Sc/Orya',
-'osma' => '#/483',
-'osmanya' => '#/483',
+'osma' => '#/553',
+'osmanya' => '#/553',
'other' => 'Gc/C',
'otherletter' => 'Gc/Lo',
'othernumber' => 'Gc/No',
'otherpunctuation' => 'Gc/Po',
'othersymbol' => 'Gc/So',
'p' => 'Gc/P',
-'paragraphseparator' => '#/302',
+'pahawhhmong' => 'Sc/Hmng',
+'palm' => '#/225',
+'palmyrene' => '#/225',
+'paragraphseparator' => '#/347',
'patsyn' => 'PatSyn/Y',
'patsyn=f' => '!PatSyn/Y',
'patsyn=false' => '!PatSyn/Y',
@@ -4785,49 +5290,54 @@
'patws=true' => 'PatWS/Y',
'patws=y' => 'PatWS/Y',
'patws=yes' => 'PatWS/Y',
+'pauc' => '#/554',
+'paucinhau' => '#/554',
'pc' => 'WB/EX',
'pd' => 'Gc/Pd',
'pe' => 'Gc/Pe',
-'perlspace' => '#/438',
+'perlspace' => '#/3',
'perlword' => 'Perl/PerlWord',
+'perm' => '#/555',
'pf' => 'Gc/Pf',
-'phag' => '#/484',
-'phagspa' => '#/484',
-'phaistos' => '#/175',
-'phaistosdisc' => '#/175',
-'phli' => '#/485',
-'phnx' => '#/486',
-'phoenician' => '#/486',
-'phoneticext' => '#/229',
-'phoneticextensions' => '#/229',
-'phoneticextensionssupplement' => '#/258',
-'phoneticextsup' => '#/258',
+'phag' => '#/556',
+'phagspa' => '#/556',
+'phaistos' => '#/199',
+'phaistosdisc' => '#/199',
+'phli' => '#/557',
+'phlp' => '#/558',
+'phnx' => '#/559',
+'phoenician' => '#/559',
+'phoneticext' => '#/264',
+'phoneticextensions' => '#/264',
+'phoneticextensionssupplement' => '#/294',
+'phoneticextsup' => '#/294',
'pi' => 'Gc/Pi',
-'playingcards' => '#/243',
-'plrd' => '#/478',
+'playingcards' => '#/279',
+'plrd' => '#/546',
'po' => 'Gc/Po',
-'posixalnum' => '#/440',
-'posixalpha' => '#/441',
-'posixblank' => '#/442',
-'posixcntrl' => '#/443',
-'posixdigit' => '#/444',
-'posixgraph' => '#/445',
-'posixlower' => '#/446',
-'posixprint' => '#/447',
+'posixalnum' => '#/5',
+'posixalpha' => '#/6',
+'posixblank' => '#/7',
+'posixcntrl' => '#/8',
+'posixdigit' => '#/9',
+'posixgraph' => '#/10',
+'posixlower' => '#/11',
+'posixprint' => '#/12',
'posixpunct' => 'Perl/PosixPun',
-'posixspace' => '#/438',
-'posixupper' => '#/448',
+'posixspace' => '#/3',
+'posixupper' => '#/13',
'posixword' => 'Perl/PerlWord',
-'posixxdigit' => '#/46',
+'posixxdigit' => '#/59',
'print' => 'Perl/Print',
-'privateuse' => '#/299',
-'privateusearea' => '#/81',
-'prti' => '#/487',
+'privateuse' => '#/344',
+'privateusearea' => '#/95',
+'prti' => '#/560',
'ps' => 'Gc/Ps',
-'pua' => '#/81',
+'psalterpahlavi' => '#/558',
+'pua' => '#/95',
'punct' => 'Gc/P',
'punctuation' => 'Gc/P',
-'qaac' => '#/465',
+'qaac' => '#/526',
'qaai' => 'Sc/Zinh',
'qmark' => 'QMark/Y',
'qmark=f' => '!QMark/Y',
@@ -4839,38 +5349,38 @@
'qmark=y' => 'QMark/Y',
'qmark=yes' => 'QMark/Y',
'quotationmark' => 'QMark/Y',
-'radical' => '#/56',
-'radical=f' => '#/!56',
-'radical=false' => '#/!56',
-'radical=n' => '#/!56',
-'radical=no' => '#/!56',
-'radical=t' => '#/56',
-'radical=true' => '#/56',
-'radical=y' => '#/56',
-'radical=yes' => '#/56',
-'rejang' => '#/488',
-'rjng' => '#/488',
-'rumi' => '#/87',
-'ruminumeralsymbols' => '#/87',
-'runic' => '#/489',
-'runr' => '#/489',
+'radical' => '#/69',
+'radical=f' => '#/!69',
+'radical=false' => '#/!69',
+'radical=n' => '#/!69',
+'radical=no' => '#/!69',
+'radical=t' => '#/69',
+'radical=true' => '#/69',
+'radical=y' => '#/69',
+'radical=yes' => '#/69',
+'rejang' => '#/561',
+'rjng' => '#/561',
+'rumi' => '#/102',
+'ruminumeralsymbols' => '#/102',
+'runic' => '#/562',
+'runr' => '#/562',
's' => 'Gc/S',
-'samaritan' => '#/490',
-'samr' => '#/490',
-'sarb' => '#/268',
-'saur' => '#/491',
-'saurashtra' => '#/491',
+'samaritan' => '#/563',
+'samr' => '#/563',
+'sarb' => '#/307',
+'saur' => '#/564',
+'saurashtra' => '#/564',
'sb=at' => 'SB/AT',
'sb=aterm' => 'SB/AT',
'sb=cl' => 'SB/CL',
'sb=close' => 'SB/CL',
-'sb=cr' => '#/50',
+'sb=cr' => '#/63',
'sb=ex' => 'SB/EX',
'sb=extend' => 'SB/EX',
'sb=fo' => 'SB/FO',
'sb=format' => 'SB/FO',
'sb=le' => 'SB/LE',
-'sb=lf' => '#/51',
+'sb=lf' => '#/64',
'sb=lo' => 'SB/LO',
'sb=lower' => 'SB/LO',
'sb=nu' => 'SB/NU',
@@ -4879,8 +5389,8 @@
'sb=other' => 'SB/XX',
'sb=sc' => 'SB/SC',
'sb=scontinue' => 'SB/SC',
-'sb=se' => '#/57',
-'sb=sep' => '#/57',
+'sb=se' => '#/70',
+'sb=sep' => '#/70',
'sb=sp' => 'SB/Sp',
'sb=st' => 'SB/ST',
'sb=sterm' => 'SB/ST',
@@ -4888,62 +5398,72 @@
'sb=upper' => 'SB/UP',
'sb=xx' => 'SB/XX',
'sc' => 'Gc/Sc',
+'sc=aghb' => '#/511',
'sc=arab' => 'Sc/Arab',
'sc=arabic' => 'Sc/Arab',
'sc=armenian' => 'Sc/Armn',
-'sc=armi' => '#/452',
+'sc=armi' => '#/512',
'sc=armn' => 'Sc/Armn',
-'sc=avestan' => '#/453',
-'sc=avst' => '#/453',
-'sc=bali' => '#/454',
-'sc=balinese' => '#/454',
-'sc=bamu' => '#/455',
-'sc=bamum' => '#/455',
-'sc=batak' => '#/456',
-'sc=batk' => '#/456',
+'sc=avestan' => '#/513',
+'sc=avst' => '#/513',
+'sc=bali' => '#/514',
+'sc=balinese' => '#/514',
+'sc=bamu' => '#/515',
+'sc=bamum' => '#/515',
+'sc=bass' => '#/516',
+'sc=bassavah' => '#/516',
+'sc=batak' => '#/517',
+'sc=batk' => '#/517',
'sc=beng' => 'Sc/Beng',
'sc=bengali' => 'Sc/Beng',
-'sc=bopo' => '#/457',
-'sc=bopomofo' => '#/457',
-'sc=brah' => '#/458',
-'sc=brahmi' => '#/458',
-'sc=brai' => '#/131',
-'sc=braille' => '#/131',
-'sc=bugi' => '#/459',
-'sc=buginese' => '#/459',
-'sc=buhd' => '#/460',
-'sc=buhid' => '#/460',
-'sc=cakm' => '#/461',
-'sc=canadianaboriginal' => '#/462',
-'sc=cans' => '#/462',
-'sc=cari' => '#/463',
-'sc=carian' => '#/463',
-'sc=chakma' => '#/461',
+'sc=bopo' => '#/518',
+'sc=bopomofo' => '#/518',
+'sc=brah' => '#/519',
+'sc=brahmi' => '#/519',
+'sc=brai' => '#/147',
+'sc=braille' => '#/147',
+'sc=bugi' => '#/520',
+'sc=buginese' => '#/520',
+'sc=buhd' => '#/521',
+'sc=buhid' => '#/521',
+'sc=cakm' => '#/522',
+'sc=canadianaboriginal' => '#/523',
+'sc=cans' => '#/523',
+'sc=cari' => '#/524',
+'sc=carian' => '#/524',
+'sc=caucasianalbanian' => '#/511',
+'sc=chakma' => '#/522',
'sc=cham' => 'Sc/Cham',
-'sc=cher' => '#/464',
-'sc=cherokee' => '#/464',
+'sc=cher' => '#/525',
+'sc=cherokee' => '#/525',
'sc=common' => 'Sc/Zyyy',
-'sc=copt' => '#/465',
-'sc=coptic' => '#/465',
+'sc=copt' => '#/526',
+'sc=coptic' => '#/526',
'sc=cprt' => 'Sc/Cprt',
-'sc=cuneiform' => '#/507',
+'sc=cuneiform' => '#/584',
'sc=cypriot' => 'Sc/Cprt',
'sc=cyrillic' => 'Sc/Cyrl',
'sc=cyrl' => 'Sc/Cyrl',
-'sc=deseret' => '#/136',
+'sc=deseret' => '#/152',
'sc=deva' => 'Sc/Deva',
'sc=devanagari' => 'Sc/Deva',
-'sc=dsrt' => '#/136',
-'sc=egyp' => '#/466',
-'sc=egyptianhieroglyphs' => '#/466',
+'sc=dsrt' => '#/152',
+'sc=dupl' => 'Sc/Dupl',
+'sc=duployan' => 'Sc/Dupl',
+'sc=egyp' => '#/527',
+'sc=egyptianhieroglyphs' => '#/527',
+'sc=elba' => '#/528',
+'sc=elbasan' => '#/528',
'sc=ethi' => 'Sc/Ethi',
'sc=ethiopic' => 'Sc/Ethi',
'sc=geor' => 'Sc/Geor',
'sc=georgian' => 'Sc/Geor',
-'sc=glag' => '#/467',
-'sc=glagolitic' => '#/467',
-'sc=goth' => '#/468',
-'sc=gothic' => '#/468',
+'sc=glag' => '#/529',
+'sc=glagolitic' => '#/529',
+'sc=goth' => '#/530',
+'sc=gothic' => '#/530',
+'sc=gran' => 'Sc/Gran',
+'sc=grantha' => 'Sc/Gran',
'sc=greek' => 'Sc/Grek',
'sc=grek' => 'Sc/Grek',
'sc=gujarati' => 'Sc/Gujr',
@@ -4954,201 +5474,246 @@
'sc=hang' => 'Sc/Hang',
'sc=hangul' => 'Sc/Hang',
'sc=hani' => 'Sc/Han',
-'sc=hano' => '#/469',
-'sc=hanunoo' => '#/469',
+'sc=hano' => '#/531',
+'sc=hanunoo' => '#/531',
'sc=hebr' => 'Sc/Hebr',
'sc=hebrew' => 'Sc/Hebr',
'sc=hira' => 'Sc/Hira',
'sc=hiragana' => 'Sc/Hira',
-'sc=imperialaramaic' => '#/452',
+'sc=hmng' => 'Sc/Hmng',
+'sc=imperialaramaic' => '#/512',
'sc=inherited' => 'Sc/Zinh',
-'sc=inscriptionalpahlavi' => '#/485',
-'sc=inscriptionalparthian' => '#/487',
-'sc=ital' => '#/470',
-'sc=java' => '#/471',
-'sc=javanese' => '#/471',
-'sc=kaithi' => '#/472',
-'sc=kali' => '#/140',
+'sc=inscriptionalpahlavi' => '#/557',
+'sc=inscriptionalparthian' => '#/560',
+'sc=ital' => '#/532',
+'sc=java' => '#/533',
+'sc=javanese' => '#/533',
+'sc=kaithi' => '#/536',
+'sc=kali' => '#/534',
'sc=kana' => 'Sc/Kana',
'sc=kannada' => 'Sc/Knda',
'sc=katakana' => 'Sc/Kana',
-'sc=kayahli' => '#/140',
+'sc=kayahli' => '#/534',
'sc=khar' => 'Sc/Khar',
'sc=kharoshthi' => 'Sc/Khar',
'sc=khmer' => 'Sc/Khmr',
'sc=khmr' => 'Sc/Khmr',
+'sc=khoj' => '#/535',
+'sc=khojki' => '#/535',
+'sc=khudawadi' => '#/567',
'sc=knda' => 'Sc/Knda',
-'sc=kthi' => '#/472',
+'sc=kthi' => '#/536',
'sc=lana' => 'Sc/Lana',
'sc=lao' => 'Sc/Lao',
'sc=laoo' => 'Sc/Lao',
'sc=latin' => 'Sc/Latn',
'sc=latn' => 'Sc/Latn',
-'sc=lepc' => '#/473',
-'sc=lepcha' => '#/473',
+'sc=lepc' => '#/537',
+'sc=lepcha' => '#/537',
'sc=limb' => 'Sc/Limb',
'sc=limbu' => 'Sc/Limb',
+'sc=lina' => '#/538',
'sc=linb' => 'Sc/Linb',
+'sc=lineara' => '#/538',
'sc=linearb' => 'Sc/Linb',
-'sc=lisu' => '#/85',
-'sc=lyci' => '#/474',
-'sc=lycian' => '#/474',
-'sc=lydi' => '#/475',
-'sc=lydian' => '#/475',
+'sc=lisu' => '#/99',
+'sc=lyci' => '#/539',
+'sc=lycian' => '#/539',
+'sc=lydi' => '#/540',
+'sc=lydian' => '#/540',
+'sc=mahajani' => '#/541',
+'sc=mahj' => '#/541',
'sc=malayalam' => 'Sc/Mlym',
-'sc=mand' => '#/476',
-'sc=mandaic' => '#/476',
-'sc=meeteimayek' => '#/479',
-'sc=merc' => '#/477',
-'sc=mero' => '#/288',
-'sc=meroiticcursive' => '#/477',
-'sc=meroitichieroglyphs' => '#/288',
-'sc=miao' => '#/478',
+'sc=mand' => '#/542',
+'sc=mandaic' => '#/542',
+'sc=mani' => '#/543',
+'sc=manichaean' => '#/543',
+'sc=meeteimayek' => '#/548',
+'sc=mend' => '#/544',
+'sc=mendekikakui' => '#/544',
+'sc=merc' => '#/545',
+'sc=mero' => '#/331',
+'sc=meroiticcursive' => '#/545',
+'sc=meroitichieroglyphs' => '#/331',
+'sc=miao' => '#/546',
'sc=mlym' => 'Sc/Mlym',
+'sc=modi' => '#/547',
'sc=mong' => 'Sc/Mong',
'sc=mongolian' => 'Sc/Mong',
-'sc=mtei' => '#/479',
-'sc=myanmar' => '#/480',
-'sc=mymr' => '#/480',
+'sc=mro' => '#/508',
+'sc=mroo' => '#/508',
+'sc=mtei' => '#/548',
+'sc=myanmar' => '#/549',
+'sc=mymr' => '#/549',
+'sc=nabataean' => '#/550',
+'sc=narb' => '#/306',
+'sc=nbat' => '#/550',
'sc=newtailue' => 'Sc/Talu',
-'sc=nko' => '#/450',
-'sc=nkoo' => '#/450',
-'sc=ogam' => '#/481',
-'sc=ogham' => '#/481',
-'sc=olchiki' => '#/144',
-'sc=olck' => '#/144',
-'sc=olditalic' => '#/470',
-'sc=oldpersian' => '#/506',
-'sc=oldsoutharabian' => '#/268',
-'sc=oldturkic' => '#/482',
+'sc=nko' => '#/509',
+'sc=nkoo' => '#/509',
+'sc=ogam' => '#/551',
+'sc=ogham' => '#/551',
+'sc=olchiki' => '#/163',
+'sc=olck' => '#/163',
+'sc=olditalic' => '#/532',
+'sc=oldnortharabian' => '#/306',
+'sc=oldpermic' => '#/555',
+'sc=oldpersian' => '#/583',
+'sc=oldsoutharabian' => '#/307',
+'sc=oldturkic' => '#/552',
'sc=oriya' => 'Sc/Orya',
-'sc=orkh' => '#/482',
+'sc=orkh' => '#/552',
'sc=orya' => 'Sc/Orya',
-'sc=osma' => '#/483',
-'sc=osmanya' => '#/483',
-'sc=phag' => '#/484',
-'sc=phagspa' => '#/484',
-'sc=phli' => '#/485',
-'sc=phnx' => '#/486',
-'sc=phoenician' => '#/486',
-'sc=plrd' => '#/478',
-'sc=prti' => '#/487',
-'sc=qaac' => '#/465',
+'sc=osma' => '#/553',
+'sc=osmanya' => '#/553',
+'sc=pahawhhmong' => 'Sc/Hmng',
+'sc=palm' => '#/225',
+'sc=palmyrene' => '#/225',
+'sc=pauc' => '#/554',
+'sc=paucinhau' => '#/554',
+'sc=perm' => '#/555',
+'sc=phag' => '#/556',
+'sc=phagspa' => '#/556',
+'sc=phli' => '#/557',
+'sc=phlp' => '#/558',
+'sc=phnx' => '#/559',
+'sc=phoenician' => '#/559',
+'sc=plrd' => '#/546',
+'sc=prti' => '#/560',
+'sc=psalterpahlavi' => '#/558',
+'sc=qaac' => '#/526',
'sc=qaai' => 'Sc/Zinh',
-'sc=rejang' => '#/488',
-'sc=rjng' => '#/488',
-'sc=runic' => '#/489',
-'sc=runr' => '#/489',
-'sc=samaritan' => '#/490',
-'sc=samr' => '#/490',
-'sc=sarb' => '#/268',
-'sc=saur' => '#/491',
-'sc=saurashtra' => '#/491',
-'sc=sharada' => '#/492',
-'sc=shavian' => '#/148',
-'sc=shaw' => '#/148',
-'sc=shrd' => '#/492',
+'sc=rejang' => '#/561',
+'sc=rjng' => '#/561',
+'sc=runic' => '#/562',
+'sc=runr' => '#/562',
+'sc=samaritan' => '#/563',
+'sc=samr' => '#/563',
+'sc=sarb' => '#/307',
+'sc=saur' => '#/564',
+'sc=saurashtra' => '#/564',
+'sc=sharada' => '#/565',
+'sc=shavian' => '#/167',
+'sc=shaw' => '#/167',
+'sc=shrd' => '#/565',
+'sc=sidd' => '#/566',
+'sc=siddham' => '#/566',
+'sc=sind' => '#/567',
'sc=sinh' => 'Sc/Sinh',
'sc=sinhala' => 'Sc/Sinh',
-'sc=sora' => '#/493',
-'sc=sorasompeng' => '#/493',
-'sc=sund' => '#/494',
-'sc=sundanese' => '#/494',
-'sc=sylo' => '#/495',
-'sc=sylotinagri' => '#/495',
-'sc=syrc' => '#/496',
-'sc=syriac' => '#/496',
-'sc=tagalog' => '#/502',
-'sc=tagb' => '#/497',
-'sc=tagbanwa' => '#/497',
-'sc=taile' => '#/499',
+'sc=sora' => '#/568',
+'sc=sorasompeng' => '#/568',
+'sc=sund' => '#/569',
+'sc=sundanese' => '#/569',
+'sc=sylo' => '#/570',
+'sc=sylotinagri' => '#/570',
+'sc=syrc' => '#/571',
+'sc=syriac' => '#/571',
+'sc=tagalog' => '#/577',
+'sc=tagb' => '#/572',
+'sc=tagbanwa' => '#/572',
+'sc=taile' => '#/574',
'sc=taitham' => 'Sc/Lana',
-'sc=taiviet' => '#/500',
-'sc=takr' => '#/498',
-'sc=takri' => '#/498',
-'sc=tale' => '#/499',
+'sc=taiviet' => '#/575',
+'sc=takr' => '#/573',
+'sc=takri' => '#/573',
+'sc=tale' => '#/574',
'sc=talu' => 'Sc/Talu',
'sc=tamil' => 'Sc/Taml',
'sc=taml' => 'Sc/Taml',
-'sc=tavt' => '#/500',
+'sc=tavt' => '#/575',
'sc=telu' => 'Sc/Telu',
'sc=telugu' => 'Sc/Telu',
-'sc=tfng' => '#/501',
-'sc=tglg' => '#/502',
-'sc=thaa' => '#/503',
-'sc=thaana' => '#/503',
-'sc=thai' => '#/504',
+'sc=tfng' => '#/576',
+'sc=tglg' => '#/577',
+'sc=thaa' => '#/578',
+'sc=thaana' => '#/578',
+'sc=thai' => '#/579',
'sc=tibetan' => 'Sc/Tibt',
'sc=tibt' => 'Sc/Tibt',
-'sc=tifinagh' => '#/501',
-'sc=ugar' => '#/505',
-'sc=ugaritic' => '#/505',
+'sc=tifinagh' => '#/576',
+'sc=tirh' => '#/580',
+'sc=tirhuta' => '#/580',
+'sc=ugar' => '#/581',
+'sc=ugaritic' => '#/581',
'sc=unknown' => 'Sc/Zzzz',
-'sc=vai' => '#/451',
-'sc=vaii' => '#/451',
-'sc=xpeo' => '#/506',
-'sc=xsux' => '#/507',
-'sc=yi' => '#/449',
-'sc=yiii' => '#/449',
+'sc=vai' => '#/510',
+'sc=vaii' => '#/510',
+'sc=wara' => '#/582',
+'sc=warangciti' => '#/582',
+'sc=xpeo' => '#/583',
+'sc=xsux' => '#/584',
+'sc=yi' => '#/507',
+'sc=yiii' => '#/507',
'sc=zinh' => 'Sc/Zinh',
'sc=zyyy' => 'Sc/Zyyy',
'sc=zzzz' => 'Sc/Zzzz',
+'scx=aghb' => '#/511',
'scx=arab' => 'Scx/Arab',
'scx=arabic' => 'Scx/Arab',
'scx=armenian' => 'Scx/Armn',
-'scx=armi' => '#/452',
+'scx=armi' => '#/512',
'scx=armn' => 'Scx/Armn',
-'scx=avestan' => '#/453',
-'scx=avst' => '#/453',
-'scx=bali' => '#/454',
-'scx=balinese' => '#/454',
-'scx=bamu' => '#/455',
-'scx=bamum' => '#/455',
-'scx=batak' => '#/456',
-'scx=batk' => '#/456',
+'scx=avestan' => '#/513',
+'scx=avst' => '#/513',
+'scx=bali' => '#/514',
+'scx=balinese' => '#/514',
+'scx=bamu' => '#/515',
+'scx=bamum' => '#/515',
+'scx=bass' => '#/516',
+'scx=bassavah' => '#/516',
+'scx=batak' => '#/517',
+'scx=batk' => '#/517',
'scx=beng' => 'Scx/Beng',
'scx=bengali' => 'Scx/Beng',
'scx=bopo' => 'Scx/Bopo',
'scx=bopomofo' => 'Scx/Bopo',
-'scx=brah' => '#/458',
-'scx=brahmi' => '#/458',
-'scx=brai' => '#/131',
-'scx=braille' => '#/131',
-'scx=bugi' => '#/508',
-'scx=buginese' => '#/508',
-'scx=buhd' => '#/509',
-'scx=buhid' => '#/509',
+'scx=brah' => '#/519',
+'scx=brahmi' => '#/519',
+'scx=brai' => '#/147',
+'scx=braille' => '#/147',
+'scx=bugi' => '#/585',
+'scx=buginese' => '#/585',
+'scx=buhd' => '#/586',
+'scx=buhid' => '#/586',
'scx=cakm' => 'Scx/Cakm',
-'scx=canadianaboriginal' => '#/462',
-'scx=cans' => '#/462',
-'scx=cari' => '#/463',
-'scx=carian' => '#/463',
+'scx=canadianaboriginal' => '#/523',
+'scx=cans' => '#/523',
+'scx=cari' => '#/524',
+'scx=carian' => '#/524',
+'scx=caucasianalbanian' => '#/511',
'scx=chakma' => 'Scx/Cakm',
'scx=cham' => 'Sc/Cham',
-'scx=cher' => '#/464',
-'scx=cherokee' => '#/464',
+'scx=cher' => '#/525',
+'scx=cherokee' => '#/525',
'scx=common' => 'Scx/Zyyy',
-'scx=copt' => '#/465',
-'scx=coptic' => '#/465',
+'scx=copt' => 'Scx/Copt',
+'scx=coptic' => 'Scx/Copt',
'scx=cprt' => 'Scx/Cprt',
-'scx=cuneiform' => '#/507',
+'scx=cuneiform' => '#/584',
'scx=cypriot' => 'Scx/Cprt',
'scx=cyrillic' => 'Scx/Cyrl',
'scx=cyrl' => 'Scx/Cyrl',
-'scx=deseret' => '#/136',
+'scx=deseret' => '#/152',
'scx=deva' => 'Scx/Deva',
'scx=devanagari' => 'Scx/Deva',
-'scx=dsrt' => '#/136',
-'scx=egyp' => '#/466',
-'scx=egyptianhieroglyphs' => '#/466',
+'scx=dsrt' => '#/152',
+'scx=dupl' => 'Scx/Dupl',
+'scx=duployan' => 'Scx/Dupl',
+'scx=egyp' => '#/527',
+'scx=egyptianhieroglyphs' => '#/527',
+'scx=elba' => '#/528',
+'scx=elbasan' => '#/528',
'scx=ethi' => 'Sc/Ethi',
'scx=ethiopic' => 'Sc/Ethi',
'scx=geor' => 'Scx/Geor',
'scx=georgian' => 'Scx/Geor',
-'scx=glag' => '#/467',
-'scx=glagolitic' => '#/467',
-'scx=goth' => '#/468',
-'scx=gothic' => '#/468',
+'scx=glag' => '#/529',
+'scx=glagolitic' => '#/529',
+'scx=goth' => '#/530',
+'scx=gothic' => '#/530',
+'scx=gran' => 'Scx/Gran',
+'scx=grantha' => 'Scx/Gran',
'scx=greek' => 'Scx/Grek',
'scx=grek' => 'Scx/Grek',
'scx=gujarati' => 'Scx/Gujr',
@@ -5159,140 +5724,175 @@
'scx=hang' => 'Scx/Hang',
'scx=hangul' => 'Scx/Hang',
'scx=hani' => 'Scx/Han',
-'scx=hano' => '#/510',
-'scx=hanunoo' => '#/510',
+'scx=hano' => '#/587',
+'scx=hanunoo' => '#/587',
'scx=hebr' => 'Sc/Hebr',
'scx=hebrew' => 'Sc/Hebr',
'scx=hira' => 'Scx/Hira',
'scx=hiragana' => 'Scx/Hira',
-'scx=imperialaramaic' => '#/452',
+'scx=hmng' => 'Sc/Hmng',
+'scx=imperialaramaic' => '#/512',
'scx=inherited' => 'Scx/Zinh',
-'scx=inscriptionalpahlavi' => '#/485',
-'scx=inscriptionalparthian' => '#/487',
-'scx=ital' => '#/470',
-'scx=java' => '#/511',
-'scx=javanese' => '#/511',
-'scx=kaithi' => '#/512',
-'scx=kali' => '#/140',
+'scx=inscriptionalpahlavi' => '#/557',
+'scx=inscriptionalparthian' => '#/560',
+'scx=ital' => '#/532',
+'scx=java' => '#/588',
+'scx=javanese' => '#/588',
+'scx=kaithi' => '#/590',
+'scx=kali' => '#/158',
'scx=kana' => 'Scx/Kana',
-'scx=kannada' => 'Sc/Knda',
+'scx=kannada' => 'Scx/Knda',
'scx=katakana' => 'Scx/Kana',
-'scx=kayahli' => '#/140',
+'scx=kayahli' => '#/158',
'scx=khar' => 'Sc/Khar',
'scx=kharoshthi' => 'Sc/Khar',
'scx=khmer' => 'Sc/Khmr',
'scx=khmr' => 'Sc/Khmr',
-'scx=knda' => 'Sc/Knda',
-'scx=kthi' => '#/512',
+'scx=khoj' => '#/589',
+'scx=khojki' => '#/589',
+'scx=khudawadi' => 'Scx/Sind',
+'scx=knda' => 'Scx/Knda',
+'scx=kthi' => '#/590',
'scx=lana' => 'Sc/Lana',
'scx=lao' => 'Sc/Lao',
'scx=laoo' => 'Sc/Lao',
'scx=latin' => 'Scx/Latn',
'scx=latn' => 'Scx/Latn',
-'scx=lepc' => '#/473',
-'scx=lepcha' => '#/473',
-'scx=limb' => 'Sc/Limb',
-'scx=limbu' => 'Sc/Limb',
+'scx=lepc' => '#/537',
+'scx=lepcha' => '#/537',
+'scx=limb' => 'Scx/Limb',
+'scx=limbu' => 'Scx/Limb',
+'scx=lina' => '#/538',
'scx=linb' => 'Scx/Linb',
+'scx=lineara' => '#/538',
'scx=linearb' => 'Scx/Linb',
-'scx=lisu' => '#/85',
-'scx=lyci' => '#/474',
-'scx=lycian' => '#/474',
-'scx=lydi' => '#/475',
-'scx=lydian' => '#/475',
-'scx=malayalam' => 'Sc/Mlym',
-'scx=mand' => '#/513',
-'scx=mandaic' => '#/513',
-'scx=meeteimayek' => '#/479',
-'scx=merc' => '#/477',
-'scx=mero' => '#/288',
-'scx=meroiticcursive' => '#/477',
-'scx=meroitichieroglyphs' => '#/288',
-'scx=miao' => '#/478',
-'scx=mlym' => 'Sc/Mlym',
+'scx=lisu' => '#/99',
+'scx=lyci' => '#/539',
+'scx=lycian' => '#/539',
+'scx=lydi' => '#/540',
+'scx=lydian' => '#/540',
+'scx=mahajani' => '#/591',
+'scx=mahj' => '#/591',
+'scx=malayalam' => 'Scx/Mlym',
+'scx=mand' => '#/592',
+'scx=mandaic' => '#/592',
+'scx=mani' => '#/593',
+'scx=manichaean' => '#/593',
+'scx=meeteimayek' => '#/548',
+'scx=mend' => '#/544',
+'scx=mendekikakui' => '#/544',
+'scx=merc' => '#/545',
+'scx=mero' => '#/331',
+'scx=meroiticcursive' => '#/545',
+'scx=meroitichieroglyphs' => '#/331',
+'scx=miao' => '#/546',
+'scx=mlym' => 'Scx/Mlym',
+'scx=modi' => '#/594',
'scx=mong' => 'Scx/Mong',
'scx=mongolian' => 'Scx/Mong',
-'scx=mtei' => '#/479',
-'scx=myanmar' => '#/480',
-'scx=mymr' => '#/480',
+'scx=mro' => '#/508',
+'scx=mroo' => '#/508',
+'scx=mtei' => '#/548',
+'scx=myanmar' => 'Scx/Mymr',
+'scx=mymr' => 'Scx/Mymr',
+'scx=nabataean' => '#/550',
+'scx=narb' => '#/306',
+'scx=nbat' => '#/550',
'scx=newtailue' => 'Sc/Talu',
-'scx=nko' => '#/450',
-'scx=nkoo' => '#/450',
-'scx=ogam' => '#/481',
-'scx=ogham' => '#/481',
-'scx=olchiki' => '#/144',
-'scx=olck' => '#/144',
-'scx=olditalic' => '#/470',
-'scx=oldpersian' => '#/506',
-'scx=oldsoutharabian' => '#/268',
-'scx=oldturkic' => '#/482',
+'scx=nko' => '#/509',
+'scx=nkoo' => '#/509',
+'scx=ogam' => '#/551',
+'scx=ogham' => '#/551',
+'scx=olchiki' => '#/163',
+'scx=olck' => '#/163',
+'scx=olditalic' => '#/532',
+'scx=oldnortharabian' => '#/306',
+'scx=oldpermic' => '#/555',
+'scx=oldpersian' => '#/583',
+'scx=oldsoutharabian' => '#/307',
+'scx=oldturkic' => '#/552',
'scx=oriya' => 'Scx/Orya',
-'scx=orkh' => '#/482',
+'scx=orkh' => '#/552',
'scx=orya' => 'Scx/Orya',
-'scx=osma' => '#/483',
-'scx=osmanya' => '#/483',
-'scx=phag' => '#/514',
-'scx=phagspa' => '#/514',
-'scx=phli' => '#/485',
-'scx=phnx' => '#/486',
-'scx=phoenician' => '#/486',
-'scx=plrd' => '#/478',
-'scx=prti' => '#/487',
-'scx=qaac' => '#/465',
+'scx=osma' => '#/553',
+'scx=osmanya' => '#/553',
+'scx=pahawhhmong' => 'Sc/Hmng',
+'scx=palm' => '#/225',
+'scx=palmyrene' => '#/225',
+'scx=pauc' => '#/554',
+'scx=paucinhau' => '#/554',
+'scx=perm' => '#/555',
+'scx=phag' => '#/595',
+'scx=phagspa' => '#/595',
+'scx=phli' => '#/557',
+'scx=phlp' => 'Scx/Phlp',
+'scx=phnx' => '#/559',
+'scx=phoenician' => '#/559',
+'scx=plrd' => '#/546',
+'scx=prti' => '#/560',
+'scx=psalterpahlavi' => 'Scx/Phlp',
+'scx=qaac' => 'Scx/Copt',
'scx=qaai' => 'Scx/Zinh',
-'scx=rejang' => '#/488',
-'scx=rjng' => '#/488',
-'scx=runic' => '#/489',
-'scx=runr' => '#/489',
-'scx=samaritan' => '#/490',
-'scx=samr' => '#/490',
-'scx=sarb' => '#/268',
-'scx=saur' => '#/491',
-'scx=saurashtra' => '#/491',
-'scx=sharada' => '#/492',
-'scx=shavian' => '#/148',
-'scx=shaw' => '#/148',
-'scx=shrd' => '#/492',
-'scx=sinh' => 'Sc/Sinh',
-'scx=sinhala' => 'Sc/Sinh',
-'scx=sora' => '#/493',
-'scx=sorasompeng' => '#/493',
-'scx=sund' => '#/494',
-'scx=sundanese' => '#/494',
-'scx=sylo' => '#/515',
-'scx=sylotinagri' => '#/515',
+'scx=rejang' => '#/561',
+'scx=rjng' => '#/561',
+'scx=runic' => '#/562',
+'scx=runr' => '#/562',
+'scx=samaritan' => '#/563',
+'scx=samr' => '#/563',
+'scx=sarb' => '#/307',
+'scx=saur' => '#/564',
+'scx=saurashtra' => '#/564',
+'scx=sharada' => '#/565',
+'scx=shavian' => '#/167',
+'scx=shaw' => '#/167',
+'scx=shrd' => '#/565',
+'scx=sidd' => '#/566',
+'scx=siddham' => '#/566',
+'scx=sind' => 'Scx/Sind',
+'scx=sinh' => 'Scx/Sinh',
+'scx=sinhala' => 'Scx/Sinh',
+'scx=sora' => '#/568',
+'scx=sorasompeng' => '#/568',
+'scx=sund' => '#/569',
+'scx=sundanese' => '#/569',
+'scx=sylo' => '#/596',
+'scx=sylotinagri' => '#/596',
'scx=syrc' => 'Scx/Syrc',
'scx=syriac' => 'Scx/Syrc',
-'scx=tagalog' => '#/517',
+'scx=tagalog' => '#/598',
'scx=tagb' => 'Scx/Tagb',
'scx=tagbanwa' => 'Scx/Tagb',
-'scx=taile' => '#/516',
+'scx=taile' => '#/597',
'scx=taitham' => 'Sc/Lana',
-'scx=taiviet' => '#/500',
+'scx=taiviet' => '#/575',
'scx=takr' => 'Scx/Takr',
'scx=takri' => 'Scx/Takr',
-'scx=tale' => '#/516',
+'scx=tale' => '#/597',
'scx=talu' => 'Sc/Talu',
-'scx=tamil' => 'Sc/Taml',
-'scx=taml' => 'Sc/Taml',
-'scx=tavt' => '#/500',
-'scx=telu' => 'Sc/Telu',
-'scx=telugu' => 'Sc/Telu',
-'scx=tfng' => '#/501',
-'scx=tglg' => '#/517',
+'scx=tamil' => 'Scx/Taml',
+'scx=taml' => 'Scx/Taml',
+'scx=tavt' => '#/575',
+'scx=telu' => 'Scx/Telu',
+'scx=telugu' => 'Scx/Telu',
+'scx=tfng' => '#/576',
+'scx=tglg' => '#/598',
'scx=thaa' => 'Scx/Thaa',
'scx=thaana' => 'Scx/Thaa',
-'scx=thai' => '#/504',
+'scx=thai' => '#/579',
'scx=tibetan' => 'Sc/Tibt',
'scx=tibt' => 'Sc/Tibt',
-'scx=tifinagh' => '#/501',
-'scx=ugar' => '#/505',
-'scx=ugaritic' => '#/505',
+'scx=tifinagh' => '#/576',
+'scx=tirh' => 'Scx/Tirh',
+'scx=tirhuta' => 'Scx/Tirh',
+'scx=ugar' => '#/581',
+'scx=ugaritic' => '#/581',
'scx=unknown' => 'Sc/Zzzz',
-'scx=vai' => '#/451',
-'scx=vaii' => '#/451',
-'scx=xpeo' => '#/506',
-'scx=xsux' => '#/507',
+'scx=vai' => '#/510',
+'scx=vaii' => '#/510',
+'scx=wara' => '#/582',
+'scx=warangciti' => '#/582',
+'scx=xpeo' => '#/583',
+'scx=xsux' => '#/584',
'scx=yi' => 'Scx/Yi',
'scx=yiii' => 'Scx/Yi',
'scx=zinh' => 'Scx/Zinh',
@@ -5308,26 +5908,31 @@
'sd=y' => 'SD/Y',
'sd=yes' => 'SD/Y',
'separator' => 'Gc/Z',
-'sharada' => '#/492',
-'shavian' => '#/148',
-'shaw' => '#/148',
-'shrd' => '#/492',
+'sharada' => '#/565',
+'shavian' => '#/167',
+'shaw' => '#/167',
+'shorthandformatcontrols' => '#/339',
+'shrd' => '#/565',
+'sidd' => '#/566',
+'siddham' => '#/566',
+'sind' => '#/567',
'sinh' => 'Sc/Sinh',
'sinhala' => 'Sc/Sinh',
+'sinhalaarchaicnumbers' => '#/335',
'sk' => 'Gc/Sk',
'sm' => 'Gc/Sm',
-'smallforms' => '#/213',
-'smallformvariants' => '#/213',
+'smallforms' => '#/244',
+'smallformvariants' => '#/244',
'so' => 'Gc/So',
'softdotted' => 'SD/Y',
-'sora' => '#/493',
-'sorasompeng' => '#/493',
-'space' => 'Space/Y',
-'spaceperl' => 'Space/Y',
+'sora' => '#/568',
+'sorasompeng' => '#/568',
+'space' => 'Perl/SpacePer',
+'spaceperl' => 'Perl/SpacePer',
'spaceseparator' => 'Gc/Zs',
'spacingmark' => 'Gc/Mc',
-'spacingmodifierletters' => '#/267',
-'specials' => '#/176',
+'spacingmodifierletters' => '#/305',
+'specials' => '#/200',
'sterm' => 'STerm/Y',
'sterm=f' => '!STerm/Y',
'sterm=false' => '!STerm/Y',
@@ -5337,46 +5942,48 @@
'sterm=true' => 'STerm/Y',
'sterm=y' => 'STerm/Y',
'sterm=yes' => 'STerm/Y',
-'sund' => '#/494',
-'sundanese' => '#/494',
-'sundanesesup' => '#/244',
-'sundanesesupplement' => '#/244',
-'suparrowsa' => '#/214',
-'suparrowsb' => '#/215',
-'superandsub' => '#/232',
-'superscriptsandsubscripts' => '#/232',
-'supmathoperators' => '#/280',
-'supplementalarrowsa' => '#/214',
-'supplementalarrowsb' => '#/215',
-'supplementalmathematicaloperators' => '#/280',
-'supplementalpunctuation' => '#/259',
-'supplementaryprivateuseareaa' => '#/150',
-'supplementaryprivateuseareab' => '#/151',
-'suppuaa' => '#/150',
-'suppuab' => '#/151',
-'suppunctuation' => '#/259',
-'surrogate' => '#/300',
-'sylo' => '#/495',
-'sylotinagri' => '#/495',
+'sund' => '#/569',
+'sundanese' => '#/569',
+'sundanesesup' => '#/280',
+'sundanesesupplement' => '#/280',
+'suparrowsa' => '#/245',
+'suparrowsb' => '#/246',
+'suparrowsc' => '#/247',
+'superandsub' => '#/267',
+'superscriptsandsubscripts' => '#/267',
+'supmathoperators' => '#/319',
+'supplementalarrowsa' => '#/245',
+'supplementalarrowsb' => '#/246',
+'supplementalarrowsc' => '#/247',
+'supplementalmathematicaloperators' => '#/319',
+'supplementalpunctuation' => '#/296',
+'supplementaryprivateuseareaa' => '#/170',
+'supplementaryprivateuseareab' => '#/171',
+'suppuaa' => '#/170',
+'suppuab' => '#/171',
+'suppunctuation' => '#/296',
+'surrogate' => '#/345',
+'sylo' => '#/570',
+'sylotinagri' => '#/570',
'symbol' => 'Gc/S',
-'syrc' => '#/496',
-'syriac' => '#/496',
-'tagalog' => '#/502',
-'tagb' => '#/497',
-'tagbanwa' => '#/497',
-'tags' => '#/88',
-'taile' => '#/499',
+'syrc' => '#/571',
+'syriac' => '#/571',
+'tagalog' => '#/577',
+'tagb' => '#/572',
+'tagbanwa' => '#/572',
+'tags' => '#/103',
+'taile' => '#/574',
'taitham' => 'Sc/Lana',
-'taiviet' => '#/500',
-'taixuanjing' => '#/234',
-'taixuanjingsymbols' => '#/234',
-'takr' => '#/498',
-'takri' => '#/498',
-'tale' => '#/499',
+'taiviet' => '#/575',
+'taixuanjing' => '#/269',
+'taixuanjingsymbols' => '#/269',
+'takr' => '#/573',
+'takri' => '#/573',
+'tale' => '#/574',
'talu' => 'Sc/Talu',
'tamil' => 'Sc/Taml',
'taml' => 'Sc/Taml',
-'tavt' => '#/500',
+'tavt' => '#/575',
'telu' => 'Sc/Telu',
'telugu' => 'Sc/Telu',
'term' => 'Term/Y',
@@ -5389,23 +5996,25 @@
'term=y' => 'Term/Y',
'term=yes' => 'Term/Y',
'terminalpunctuation' => 'Term/Y',
-'tfng' => '#/501',
-'tglg' => '#/502',
-'thaa' => '#/503',
-'thaana' => '#/503',
-'thai' => '#/504',
+'tfng' => '#/576',
+'tglg' => '#/577',
+'thaa' => '#/578',
+'thaana' => '#/578',
+'thai' => '#/579',
'tibetan' => 'Sc/Tibt',
'tibt' => 'Sc/Tibt',
-'tifinagh' => '#/501',
-'title' => 'Gc/Lt',
-'titlecase' => 'Gc/Lt',
-'titlecaseletter' => 'Gc/Lt',
-'transportandmap' => '#/269',
-'transportandmapsymbols' => '#/269',
-'ucas' => '#/90',
-'ucasext' => '#/156',
-'ugar' => '#/505',
-'ugaritic' => '#/505',
+'tifinagh' => '#/576',
+'tirh' => '#/580',
+'tirhuta' => '#/580',
+'title' => 'Perl/Title',
+'titlecase' => 'Perl/Title',
+'titlecaseletter' => 'Perl/Title',
+'transportandmap' => '#/308',
+'transportandmapsymbols' => '#/308',
+'ucas' => '#/105',
+'ucasext' => '#/177',
+'ugar' => '#/581',
+'ugaritic' => '#/581',
'uideo' => 'UIdeo/Y',
'uideo=f' => '!UIdeo/Y',
'uideo=false' => '!UIdeo/Y',
@@ -5416,9 +6025,9 @@
'uideo=y' => 'UIdeo/Y',
'uideo=yes' => 'UIdeo/Y',
'unassigned' => 'Gc/Cn',
-'unicode' => '#/436',
-'unifiedcanadianaboriginalsyllabics' => '#/90',
-'unifiedcanadianaboriginalsyllabicsextended' => '#/156',
+'unicode' => '#/2',
+'unifiedcanadianaboriginalsyllabics' => '#/105',
+'unifiedcanadianaboriginalsyllabicsextended' => '#/177',
'unifiedideograph' => 'UIdeo/Y',
'unknown' => 'Sc/Zzzz',
'upper' => 'Upper/Y',
@@ -5432,29 +6041,31 @@
'upper=yes' => 'Upper/Y',
'uppercase' => 'Upper/Y',
'uppercaseletter' => 'Gc/Lu',
-'vai' => '#/451',
-'vaii' => '#/451',
-'variationselector' => '#/58',
-'variationselectors' => '#/75',
-'variationselectorssupplement' => '#/105',
-'vedicext' => '#/180',
-'vedicextensions' => '#/180',
-'verticalforms' => '#/251',
-'vertspace' => '#/439',
-'vs' => '#/58',
-'vs=f' => '#/!58',
-'vs=false' => '#/!58',
-'vs=n' => '#/!58',
-'vs=no' => '#/!58',
-'vs=t' => '#/58',
-'vs=true' => '#/58',
-'vs=y' => '#/58',
-'vs=yes' => '#/58',
-'vssup' => '#/105',
+'vai' => '#/510',
+'vaii' => '#/510',
+'variationselector' => '#/71',
+'variationselectors' => '#/88',
+'variationselectorssupplement' => '#/120',
+'vedicext' => '#/204',
+'vedicextensions' => '#/204',
+'verticalforms' => '#/287',
+'vertspace' => '#/4',
+'vs' => '#/71',
+'vs=f' => '#/!71',
+'vs=false' => '#/!71',
+'vs=n' => '#/!71',
+'vs=no' => '#/!71',
+'vs=t' => '#/71',
+'vs=true' => '#/71',
+'vs=y' => '#/71',
+'vs=yes' => '#/71',
+'vssup' => '#/120',
+'wara' => '#/582',
+'warangciti' => '#/582',
'wb=aletter' => 'WB/LE',
-'wb=cr' => '#/50',
-'wb=doublequote' => '#/59',
-'wb=dq' => '#/59',
+'wb=cr' => '#/63',
+'wb=doublequote' => '#/72',
+'wb=dq' => '#/72',
'wb=ex' => 'WB/EX',
'wb=extend' => 'SB/EX',
'wb=extendnumlet' => 'WB/EX',
@@ -5465,34 +6076,34 @@
'wb=ka' => 'WB/KA',
'wb=katakana' => 'WB/KA',
'wb=le' => 'WB/LE',
-'wb=lf' => '#/51',
+'wb=lf' => '#/64',
'wb=mb' => 'WB/MB',
'wb=midletter' => 'WB/ML',
'wb=midnum' => 'WB/MN',
'wb=midnumlet' => 'WB/MB',
'wb=ml' => 'WB/ML',
'wb=mn' => 'WB/MN',
-'wb=newline' => '#/60',
-'wb=nl' => '#/60',
+'wb=newline' => '#/73',
+'wb=nl' => '#/73',
'wb=nu' => 'WB/NU',
'wb=numeric' => 'WB/NU',
'wb=other' => 'WB/XX',
-'wb=regionalindicator' => '#/52',
-'wb=ri' => '#/52',
-'wb=singlequote' => '#/61',
-'wb=sq' => '#/61',
+'wb=regionalindicator' => '#/65',
+'wb=ri' => '#/65',
+'wb=singlequote' => '#/74',
+'wb=sq' => '#/74',
'wb=xx' => 'WB/XX',
-'whitespace' => 'Space/Y',
+'whitespace' => 'Perl/SpacePer',
'word' => 'Perl/Word',
-'wspace' => 'Space/Y',
-'wspace=f' => '!Space/Y',
-'wspace=false' => '!Space/Y',
-'wspace=n' => '!Space/Y',
-'wspace=no' => '!Space/Y',
-'wspace=t' => 'Space/Y',
-'wspace=true' => 'Space/Y',
-'wspace=y' => 'Space/Y',
-'wspace=yes' => 'Space/Y',
+'wspace' => 'Perl/SpacePer',
+'wspace=f' => '!Perl/SpacePer',
+'wspace=false' => '!Perl/SpacePer',
+'wspace=n' => '!Perl/SpacePer',
+'wspace=no' => '!Perl/SpacePer',
+'wspace=t' => 'Perl/SpacePer',
+'wspace=true' => 'Perl/SpacePer',
+'wspace=y' => 'Perl/SpacePer',
+'wspace=yes' => 'Perl/SpacePer',
'xdigit' => 'Hex/Y',
'xidc' => 'XIDC/Y',
'xidc=f' => '!XIDC/Y',
@@ -5514,32 +6125,32 @@
'xids=y' => 'XIDS/Y',
'xids=yes' => 'XIDS/Y',
'xidstart' => 'XIDS/Y',
-'xpeo' => '#/506',
-'xperlspace' => 'Space/Y',
+'xpeo' => '#/583',
+'xperlspace' => 'Perl/SpacePer',
'xposixalnum' => 'Perl/Alnum',
'xposixalpha' => 'Alpha/Y',
'xposixblank' => 'Perl/Blank',
-'xposixcntrl' => '#/298',
+'xposixcntrl' => '#/343',
'xposixdigit' => 'Gc/Nd',
'xposixgraph' => 'Perl/Graph',
'xposixlower' => 'Lower/Y',
'xposixprint' => 'Perl/Print',
'xposixpunct' => 'Perl/XPosixPu',
-'xposixspace' => 'Space/Y',
+'xposixspace' => 'Perl/SpacePer',
'xposixupper' => 'Upper/Y',
'xposixword' => 'Perl/Word',
'xposixxdigit' => 'Hex/Y',
-'xsux' => '#/507',
-'yi' => '#/449',
-'yiii' => '#/449',
-'yijing' => '#/128',
-'yijinghexagramsymbols' => '#/128',
-'yiradicals' => '#/216',
-'yisyllables' => '#/235',
+'xsux' => '#/584',
+'yi' => '#/507',
+'yiii' => '#/507',
+'yijing' => '#/144',
+'yijinghexagramsymbols' => '#/144',
+'yiradicals' => '#/249',
+'yisyllables' => '#/270',
'z' => 'Gc/Z',
'zinh' => 'Sc/Zinh',
-'zl' => '#/301',
-'zp' => '#/302',
+'zl' => '#/346',
+'zp' => '#/347',
'zs' => 'Gc/Zs',
'zyyy' => 'Sc/Zyyy',
'zzzz' => 'Sc/Zzzz',
@@ -5587,7 +6198,7 @@ $utf8::max_floating_slop = 0.001;
# the table, so as to avoid duplication, as many property names can map to the
# file, but we only need one entry for all of them.
%utf8::why_deprecated = (
-'#/354' => 'Deprecated by Unicode because surrogates should never appear in well-formed text, and therefore shouldn\'t be the basis for line breaking',
+'#/426' => 'Deprecated by Unicode because surrogates should never appear in well-formed text, and therefore shouldn\'t be the basis for line breaking',
'Hyphen/Y' => 'Supplanted by Line_Break property values; see www.unicode.org/reports/tr14',
);
@@ -5606,8 +6217,8 @@ $utf8::max_floating_slop = 0.001;
'islowercaseletter' => 'Gc/LC',
'islt' => 'Gc/LC',
'islu' => 'Gc/LC',
-'isposixlower' => '#/441',
-'isposixupper' => '#/441',
+'isposixlower' => '#/6',
+'isposixupper' => '#/6',
'istitle' => 'Cased/Y',
'istitlecase' => 'Cased/Y',
'istitlecaseletter' => 'Gc/LC',
@@ -5630,8 +6241,8 @@ $utf8::max_floating_slop = 0.001;
'lowercaseletter' => 'Gc/LC',
'lt' => 'Gc/LC',
'lu' => 'Gc/LC',
-'posixlower' => '#/441',
-'posixupper' => '#/441',
+'posixlower' => '#/6',
+'posixupper' => '#/6',
'title' => 'Cased/Y',
'titlecase' => 'Cased/Y',
'titlecaseletter' => 'Gc/LC',
diff --git a/Master/tlpkg/tlperl/lib/unicore/Name.pl b/Master/tlpkg/tlperl/lib/unicore/Name.pl
index 903b6071270..ff33dfd3a78 100644
--- a/Master/tlpkg/tlperl/lib/unicore/Name.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/Name.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -1003,6 +1003,7 @@ return <<'END';
0037C GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
0037D GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
0037E GREEK QUESTION MARK
+0037F GREEK CAPITAL LETTER YOT
00384 GREEK TONOS
00385 GREEK DIALYTIKA TONOS
00386 GREEK CAPITAL LETTER ALPHA WITH TONOS
@@ -1420,6 +1421,14 @@ return <<'END';
00525 CYRILLIC SMALL LETTER PE WITH DESCENDER
00526 CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
00527 CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+00528 CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+00529 CYRILLIC SMALL LETTER EN WITH LEFT HOOK
+0052A CYRILLIC CAPITAL LETTER DZZHE
+0052B CYRILLIC SMALL LETTER DZZHE
+0052C CYRILLIC CAPITAL LETTER DCHE
+0052D CYRILLIC SMALL LETTER DCHE
+0052E CYRILLIC CAPITAL LETTER EL WITH DESCENDER
+0052F CYRILLIC SMALL LETTER EL WITH DESCENDER
00531 ARMENIAN CAPITAL LETTER AYB
00532 ARMENIAN CAPITAL LETTER BEN
00533 ARMENIAN CAPITAL LETTER GIM
@@ -1506,6 +1515,8 @@ return <<'END';
00587 ARMENIAN SMALL LIGATURE ECH YIWN
00589 ARMENIAN FULL STOP
0058A ARMENIAN HYPHEN
+0058D RIGHT-FACING ARMENIAN ETERNITY SIGN
+0058E LEFT-FACING ARMENIAN ETERNITY SIGN
0058F ARMENIAN DRAM SIGN
00591 HEBREW ACCENT ETNAHTA
00592 HEBREW ACCENT SEGOL
@@ -1599,6 +1610,7 @@ return <<'END';
00602 ARABIC FOOTNOTE MARKER
00603 ARABIC SIGN SAFHA
00604 ARABIC SIGN SAMVAT
+00605 ARABIC NUMBER MARK ABOVE
00606 ARABIC-INDIC CUBE ROOT
00607 ARABIC-INDIC FOURTH ROOT
00608 ARABIC RAY
@@ -2175,6 +2187,7 @@ return <<'END';
0085B MANDAIC GEMINATION MARK
0085E MANDAIC PUNCTUATION
008A0 ARABIC LETTER BEH WITH SMALL V BELOW
+008A1 ARABIC LETTER BEH WITH HAMZA ABOVE
008A2 ARABIC LETTER JEEM WITH TWO DOTS ABOVE
008A3 ARABIC LETTER TAH WITH TWO DOTS ABOVE
008A4 ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE
@@ -2186,6 +2199,12 @@ return <<'END';
008AA ARABIC LETTER REH WITH LOOP
008AB ARABIC LETTER WAW WITH DOT WITHIN
008AC ARABIC LETTER ROHINGYA YEH
+008AD ARABIC LETTER LOW ALEF
+008AE ARABIC LETTER DAL WITH THREE DOTS BELOW
+008AF ARABIC LETTER SAD WITH THREE DOTS BELOW
+008B0 ARABIC LETTER GAF WITH INVERTED STROKE
+008B1 ARABIC LETTER STRAIGHT WAW
+008B2 ARABIC LETTER ZAIN WITH INVERTED V ABOVE
008E4 ARABIC CURLY FATHA
008E5 ARABIC CURLY DAMMA
008E6 ARABIC CURLY KASRA
@@ -2213,6 +2232,7 @@ return <<'END';
008FC ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT
008FD ARABIC RIGHT ARROWHEAD ABOVE WITH DOT
008FE ARABIC DAMMA WITH DOT
+008FF ARABIC MARK SIDEWAYS NOON GHUNNA
00900 DEVANAGARI SIGN INVERTED CANDRABINDU
00901 DEVANAGARI SIGN CANDRABINDU
00902 DEVANAGARI SIGN ANUSVARA
@@ -2333,6 +2353,7 @@ return <<'END';
00975 DEVANAGARI LETTER AW
00976 DEVANAGARI LETTER UE
00977 DEVANAGARI LETTER UUE
+00978 DEVANAGARI LETTER MARWARI DDA
00979 DEVANAGARI LETTER ZHA
0097A DEVANAGARI LETTER HEAVY YA
0097B DEVANAGARI LETTER GGA
@@ -2340,6 +2361,7 @@ return <<'END';
0097D DEVANAGARI LETTER GLOTTAL STOP
0097E DEVANAGARI LETTER DDDA
0097F DEVANAGARI LETTER BBA
+00980 BENGALI ANJI
00981 BENGALI SIGN CANDRABINDU
00982 BENGALI SIGN ANUSVARA
00983 BENGALI SIGN VISARGA
@@ -2757,6 +2779,7 @@ return <<'END';
00BF8 TAMIL AS ABOVE SIGN
00BF9 TAMIL RUPEE SIGN
00BFA TAMIL NUMBER SIGN
+00C00 TELUGU SIGN COMBINING CANDRABINDU ABOVE
00C01 TELUGU SIGN CANDRABINDU
00C02 TELUGU SIGN ANUSVARA
00C03 TELUGU SIGN VISARGA
@@ -2804,6 +2827,7 @@ return <<'END';
00C31 TELUGU LETTER RRA
00C32 TELUGU LETTER LA
00C33 TELUGU LETTER LLA
+00C34 TELUGU LETTER LLLA
00C35 TELUGU LETTER VA
00C36 TELUGU LETTER SHA
00C37 TELUGU LETTER SSA
@@ -2850,6 +2874,7 @@ return <<'END';
00C7D TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR
00C7E TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
00C7F TELUGU SIGN TUUMU
+00C81 KANNADA SIGN CANDRABINDU
00C82 KANNADA SIGN ANUSVARA
00C83 KANNADA SIGN VISARGA
00C85 KANNADA LETTER A
@@ -2937,6 +2962,7 @@ return <<'END';
00CEF KANNADA DIGIT NINE
00CF1 KANNADA SIGN JIHVAMULIYA
00CF2 KANNADA SIGN UPADHMANIYA
+00D01 MALAYALAM SIGN CANDRABINDU
00D02 MALAYALAM SIGN ANUSVARA
00D03 MALAYALAM SIGN VISARGA
00D05 MALAYALAM LETTER A
@@ -3112,6 +3138,16 @@ return <<'END';
00DDD SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
00DDE SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
00DDF SINHALA VOWEL SIGN GAYANUKITTA
+00DE6 SINHALA LITH DIGIT ZERO
+00DE7 SINHALA LITH DIGIT ONE
+00DE8 SINHALA LITH DIGIT TWO
+00DE9 SINHALA LITH DIGIT THREE
+00DEA SINHALA LITH DIGIT FOUR
+00DEB SINHALA LITH DIGIT FIVE
+00DEC SINHALA LITH DIGIT SIX
+00DED SINHALA LITH DIGIT SEVEN
+00DEE SINHALA LITH DIGIT EIGHT
+00DEF SINHALA LITH DIGIT NINE
00DF2 SINHALA VOWEL SIGN DIGA GAETTA-PILLA
00DF3 SINHALA VOWEL SIGN DIGA GAYANUKITTA
00DF4 SINHALA PUNCTUATION KUNDDALIYA
@@ -5208,6 +5244,14 @@ return <<'END';
016EE RUNIC ARLAUG SYMBOL
016EF RUNIC TVIMADUR SYMBOL
016F0 RUNIC BELGTHOR SYMBOL
+016F1 RUNIC LETTER K
+016F2 RUNIC LETTER SH
+016F3 RUNIC LETTER OO
+016F4 RUNIC LETTER FRANKS CASKET OS
+016F5 RUNIC LETTER FRANKS CASKET IS
+016F6 RUNIC LETTER FRANKS CASKET EH
+016F7 RUNIC LETTER FRANKS CASKET AC
+016F8 RUNIC LETTER FRANKS CASKET AESC
01700 TAGALOG LETTER A
01701 TAGALOG LETTER I
01702 TAGALOG LETTER U
@@ -5662,6 +5706,8 @@ return <<'END';
0191A LIMBU LETTER SSA
0191B LIMBU LETTER SA
0191C LIMBU LETTER HA
+0191D LIMBU LETTER GYAN
+0191E LIMBU LETTER TRA
01920 LIMBU VOWEL SIGN A
01921 LIMBU VOWEL SIGN I
01922 LIMBU VOWEL SIGN U
@@ -6006,6 +6052,21 @@ return <<'END';
01AAB TAI THAM SIGN SATKAANKUU
01AAC TAI THAM SIGN HANG
01AAD TAI THAM SIGN CAANG
+01AB0 COMBINING DOUBLED CIRCUMFLEX ACCENT
+01AB1 COMBINING DIAERESIS-RING
+01AB2 COMBINING INFINITY
+01AB3 COMBINING DOWNWARDS ARROW
+01AB4 COMBINING TRIPLE DOT
+01AB5 COMBINING X-X BELOW
+01AB6 COMBINING WIGGLY LINE BELOW
+01AB7 COMBINING OPEN MARK BELOW
+01AB8 COMBINING DOUBLE OPEN MARK BELOW
+01AB9 COMBINING LIGHT CENTRALIZATION STROKE BELOW
+01ABA COMBINING STRONG CENTRALIZATION STROKE BELOW
+01ABB COMBINING PARENTHESES ABOVE
+01ABC COMBINING DOUBLE PARENTHESES ABOVE
+01ABD COMBINING PARENTHESES BELOW
+01ABE COMBINING PARENTHESES OVERLAY
01B00 BALINESE SIGN ULU RICEM
01B01 BALINESE SIGN ULU CANDRA
01B02 BALINESE SIGN CECEK
@@ -6416,6 +6477,8 @@ return <<'END';
01CF4 VEDIC TONE CANDRA ABOVE
01CF5 VEDIC SIGN JIHVAMULIYA
01CF6 VEDIC SIGN UPADHMANIYA
+01CF8 VEDIC TONE RING ABOVE
+01CF9 VEDIC TONE DOUBLE RING ABOVE
01D00 LATIN LETTER SMALL CAPITAL A
01D01 LATIN LETTER SMALL CAPITAL AE
01D02 LATIN SMALL LETTER TURNED AE
@@ -6647,6 +6710,21 @@ return <<'END';
01DE4 COMBINING LATIN SMALL LETTER S
01DE5 COMBINING LATIN SMALL LETTER LONG S
01DE6 COMBINING LATIN SMALL LETTER Z
+01DE7 COMBINING LATIN SMALL LETTER ALPHA
+01DE8 COMBINING LATIN SMALL LETTER B
+01DE9 COMBINING LATIN SMALL LETTER BETA
+01DEA COMBINING LATIN SMALL LETTER SCHWA
+01DEB COMBINING LATIN SMALL LETTER F
+01DEC COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE
+01DED COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE
+01DEE COMBINING LATIN SMALL LETTER P
+01DEF COMBINING LATIN SMALL LETTER ESH
+01DF0 COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE
+01DF1 COMBINING LATIN SMALL LETTER W
+01DF2 COMBINING LATIN SMALL LETTER A WITH DIAERESIS
+01DF3 COMBINING LATIN SMALL LETTER O WITH DIAERESIS
+01DF4 COMBINING LATIN SMALL LETTER U WITH DIAERESIS
+01DF5 COMBINING UP TACK ABOVE
01DFC COMBINING DOUBLE INVERTED BREVE BELOW
01DFD COMBINING ALMOST EQUAL TO BELOW
01DFE COMBINING LEFT ARROWHEAD ABOVE
@@ -7337,6 +7415,9 @@ return <<'END';
020B8 TENGE SIGN
020B9 INDIAN RUPEE SIGN
020BA TURKISH LIRA SIGN
+020BB NORDIC MARK SIGN
+020BC MANAT SIGN
+020BD RUBLE SIGN
020D0 COMBINING LEFT HARPOON ABOVE
020D1 COMBINING RIGHT HARPOON ABOVE
020D2 COMBINING LONG VERTICAL LINE OVERLAY
@@ -8121,6 +8202,13 @@ return <<'END';
023F1 STOPWATCH
023F2 TIMER CLOCK
023F3 HOURGLASS WITH FLOWING SAND
+023F4 BLACK MEDIUM LEFT-POINTING TRIANGLE
+023F5 BLACK MEDIUM RIGHT-POINTING TRIANGLE
+023F6 BLACK MEDIUM UP-POINTING TRIANGLE
+023F7 BLACK MEDIUM DOWN-POINTING TRIANGLE
+023F8 DOUBLE VERTICAL BAR
+023F9 BLACK SQUARE FOR STOP
+023FA BLACK CIRCLE FOR RECORD
02400 SYMBOL FOR NULL
02401 SYMBOL FOR START OF HEADING
02402 SYMBOL FOR START OF TEXT
@@ -8845,6 +8933,7 @@ return <<'END';
026FD FUEL PUMP
026FE CUP ON BLACK SQUARE
026FF WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
+02700 BLACK SAFETY SCISSORS
02701 UPPER BLADE SCISSORS
02702 BLACK SCISSORS
02703 LOWER BLADE SCISSORS
@@ -9945,6 +10034,9 @@ return <<'END';
02B4A LEFTWARDS ARROW ABOVE ALMOST EQUAL TO
02B4B LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
02B4C RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+02B4D DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW
+02B4E SHORT SLANTED NORTH ARROW
+02B4F SHORT BACKSLANTED SOUTH ARROW
02B50 WHITE MEDIUM STAR
02B51 BLACK SMALL STAR
02B52 WHITE SMALL STAR
@@ -9955,6 +10047,118 @@ return <<'END';
02B57 HEAVY CIRCLE WITH CIRCLE INSIDE
02B58 HEAVY CIRCLE
02B59 HEAVY CIRCLED SALTIRE
+02B5A SLANTED NORTH ARROW WITH HOOKED HEAD
+02B5B BACKSLANTED SOUTH ARROW WITH HOOKED TAIL
+02B5C SLANTED NORTH ARROW WITH HORIZONTAL TAIL
+02B5D BACKSLANTED SOUTH ARROW WITH HORIZONTAL TAIL
+02B5E BENT ARROW POINTING DOWNWARDS THEN NORTH EAST
+02B5F SHORT BENT ARROW POINTING DOWNWARDS THEN NORTH EAST
+02B60 LEFTWARDS TRIANGLE-HEADED ARROW
+02B61 UPWARDS TRIANGLE-HEADED ARROW
+02B62 RIGHTWARDS TRIANGLE-HEADED ARROW
+02B63 DOWNWARDS TRIANGLE-HEADED ARROW
+02B64 LEFT RIGHT TRIANGLE-HEADED ARROW
+02B65 UP DOWN TRIANGLE-HEADED ARROW
+02B66 NORTH WEST TRIANGLE-HEADED ARROW
+02B67 NORTH EAST TRIANGLE-HEADED ARROW
+02B68 SOUTH EAST TRIANGLE-HEADED ARROW
+02B69 SOUTH WEST TRIANGLE-HEADED ARROW
+02B6A LEFTWARDS TRIANGLE-HEADED DASHED ARROW
+02B6B UPWARDS TRIANGLE-HEADED DASHED ARROW
+02B6C RIGHTWARDS TRIANGLE-HEADED DASHED ARROW
+02B6D DOWNWARDS TRIANGLE-HEADED DASHED ARROW
+02B6E CLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW
+02B6F ANTICLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW
+02B70 LEFTWARDS TRIANGLE-HEADED ARROW TO BAR
+02B71 UPWARDS TRIANGLE-HEADED ARROW TO BAR
+02B72 RIGHTWARDS TRIANGLE-HEADED ARROW TO BAR
+02B73 DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+02B76 NORTH WEST TRIANGLE-HEADED ARROW TO BAR
+02B77 NORTH EAST TRIANGLE-HEADED ARROW TO BAR
+02B78 SOUTH EAST TRIANGLE-HEADED ARROW TO BAR
+02B79 SOUTH WEST TRIANGLE-HEADED ARROW TO BAR
+02B7A LEFTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+02B7B UPWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+02B7C RIGHTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+02B7D DOWNWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+02B7E HORIZONTAL TAB KEY
+02B7F VERTICAL TAB KEY
+02B80 LEFTWARDS TRIANGLE-HEADED ARROW OVER RIGHTWARDS TRIANGLE-HEADED ARROW
+02B81 UPWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF DOWNWARDS TRIANGLE-HEADED ARROW
+02B82 RIGHTWARDS TRIANGLE-HEADED ARROW OVER LEFTWARDS TRIANGLE-HEADED ARROW
+02B83 DOWNWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF UPWARDS TRIANGLE-HEADED ARROW
+02B84 LEFTWARDS TRIANGLE-HEADED PAIRED ARROWS
+02B85 UPWARDS TRIANGLE-HEADED PAIRED ARROWS
+02B86 RIGHTWARDS TRIANGLE-HEADED PAIRED ARROWS
+02B87 DOWNWARDS TRIANGLE-HEADED PAIRED ARROWS
+02B88 LEFTWARDS BLACK CIRCLED WHITE ARROW
+02B89 UPWARDS BLACK CIRCLED WHITE ARROW
+02B8A RIGHTWARDS BLACK CIRCLED WHITE ARROW
+02B8B DOWNWARDS BLACK CIRCLED WHITE ARROW
+02B8C ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW
+02B8D ANTICLOCKWISE TRIANGLE-HEADED BOTTOM U-SHAPED ARROW
+02B8E ANTICLOCKWISE TRIANGLE-HEADED LEFT U-SHAPED ARROW
+02B8F ANTICLOCKWISE TRIANGLE-HEADED TOP U-SHAPED ARROW
+02B90 RETURN LEFT
+02B91 RETURN RIGHT
+02B92 NEWLINE LEFT
+02B93 NEWLINE RIGHT
+02B94 FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE
+02B95 RIGHTWARDS BLACK ARROW
+02B98 THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD
+02B99 THREE-D RIGHT-LIGHTED UPWARDS EQUILATERAL ARROWHEAD
+02B9A THREE-D TOP-LIGHTED RIGHTWARDS EQUILATERAL ARROWHEAD
+02B9B THREE-D LEFT-LIGHTED DOWNWARDS EQUILATERAL ARROWHEAD
+02B9C BLACK LEFTWARDS EQUILATERAL ARROWHEAD
+02B9D BLACK UPWARDS EQUILATERAL ARROWHEAD
+02B9E BLACK RIGHTWARDS EQUILATERAL ARROWHEAD
+02B9F BLACK DOWNWARDS EQUILATERAL ARROWHEAD
+02BA0 DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS
+02BA1 DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS
+02BA2 UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS
+02BA3 UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS
+02BA4 LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS
+02BA5 RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS
+02BA6 LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS
+02BA7 RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS
+02BA8 BLACK CURVED DOWNWARDS AND LEFTWARDS ARROW
+02BA9 BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
+02BAA BLACK CURVED UPWARDS AND LEFTWARDS ARROW
+02BAB BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
+02BAC BLACK CURVED LEFTWARDS AND UPWARDS ARROW
+02BAD BLACK CURVED RIGHTWARDS AND UPWARDS ARROW
+02BAE BLACK CURVED LEFTWARDS AND DOWNWARDS ARROW
+02BAF BLACK CURVED RIGHTWARDS AND DOWNWARDS ARROW
+02BB0 RIBBON ARROW DOWN LEFT
+02BB1 RIBBON ARROW DOWN RIGHT
+02BB2 RIBBON ARROW UP LEFT
+02BB3 RIBBON ARROW UP RIGHT
+02BB4 RIBBON ARROW LEFT UP
+02BB5 RIBBON ARROW RIGHT UP
+02BB6 RIBBON ARROW LEFT DOWN
+02BB7 RIBBON ARROW RIGHT DOWN
+02BB8 UPWARDS WHITE ARROW FROM BAR WITH HORIZONTAL BAR
+02BB9 UP ARROWHEAD IN A RECTANGLE BOX
+02BBD BALLOT BOX WITH LIGHT X
+02BBE CIRCLED X
+02BBF CIRCLED BOLD X
+02BC0 BLACK SQUARE CENTRED
+02BC1 BLACK DIAMOND CENTRED
+02BC2 TURNED BLACK PENTAGON
+02BC3 HORIZONTAL BLACK OCTAGON
+02BC4 BLACK OCTAGON
+02BC5 BLACK MEDIUM UP-POINTING TRIANGLE CENTRED
+02BC6 BLACK MEDIUM DOWN-POINTING TRIANGLE CENTRED
+02BC7 BLACK MEDIUM LEFT-POINTING TRIANGLE CENTRED
+02BC8 BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+02BCA TOP HALF BLACK CIRCLE
+02BCB BOTTOM HALF BLACK CIRCLE
+02BCC LIGHT FOUR POINTED BLACK CUSP
+02BCD ROTATED LIGHT FOUR POINTED BLACK CUSP
+02BCE WHITE FOUR POINTED CUSP
+02BCF ROTATED WHITE FOUR POINTED CUSP
+02BD0 SQUARE POSITION INDICATOR
+02BD1 UNCERTAINTY SIGN
02C00 GLAGOLITIC CAPITAL LETTER AZU
02C01 GLAGOLITIC CAPITAL LETTER BUKY
02C02 GLAGOLITIC CAPITAL LETTER VEDE
@@ -10474,6 +10678,13 @@ return <<'END';
02E39 TOP HALF SECTION SIGN
02E3A TWO-EM DASH
02E3B THREE-EM DASH
+02E3C STENOGRAPHIC FULL STOP
+02E3D VERTICAL SIX DOTS
+02E3E WIGGLY VERTICAL LINE
+02E3F CAPITULUM
+02E40 DOUBLE HYPHEN
+02E41 REVERSED COMMA
+02E42 DOUBLE LOW-REVERSED-9 QUOTATION MARK
02E80 CJK RADICAL REPEAT
02E81 CJK RADICAL CLIFF
02E82 CJK RADICAL SECOND ONE
@@ -13529,6 +13740,12 @@ return <<'END';
0A695 CYRILLIC SMALL LETTER HWE
0A696 CYRILLIC CAPITAL LETTER SHWE
0A697 CYRILLIC SMALL LETTER SHWE
+0A698 CYRILLIC CAPITAL LETTER DOUBLE O
+0A699 CYRILLIC SMALL LETTER DOUBLE O
+0A69A CYRILLIC CAPITAL LETTER CROSSED O
+0A69B CYRILLIC SMALL LETTER CROSSED O
+0A69C MODIFIER LETTER CYRILLIC HARD SIGN
+0A69D MODIFIER LETTER CYRILLIC SOFT SIGN
0A69F COMBINING CYRILLIC LETTER IOTIFIED E
0A6A0 BAMUM LETTER A
0A6A1 BAMUM LETTER KA
@@ -13765,6 +13982,18 @@ return <<'END';
0A791 LATIN SMALL LETTER N WITH DESCENDER
0A792 LATIN CAPITAL LETTER C WITH BAR
0A793 LATIN SMALL LETTER C WITH BAR
+0A794 LATIN SMALL LETTER C WITH PALATAL HOOK
+0A795 LATIN SMALL LETTER H WITH PALATAL HOOK
+0A796 LATIN CAPITAL LETTER B WITH FLOURISH
+0A797 LATIN SMALL LETTER B WITH FLOURISH
+0A798 LATIN CAPITAL LETTER F WITH STROKE
+0A799 LATIN SMALL LETTER F WITH STROKE
+0A79A LATIN CAPITAL LETTER VOLAPUK AE
+0A79B LATIN SMALL LETTER VOLAPUK AE
+0A79C LATIN CAPITAL LETTER VOLAPUK OE
+0A79D LATIN SMALL LETTER VOLAPUK OE
+0A79E LATIN CAPITAL LETTER VOLAPUK UE
+0A79F LATIN SMALL LETTER VOLAPUK UE
0A7A0 LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
0A7A1 LATIN SMALL LETTER G WITH OBLIQUE STROKE
0A7A2 LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
@@ -13776,6 +14005,12 @@ return <<'END';
0A7A8 LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
0A7A9 LATIN SMALL LETTER S WITH OBLIQUE STROKE
0A7AA LATIN CAPITAL LETTER H WITH HOOK
+0A7AB LATIN CAPITAL LETTER REVERSED OPEN E
+0A7AC LATIN CAPITAL LETTER SCRIPT G
+0A7AD LATIN CAPITAL LETTER L WITH BELT
+0A7B0 LATIN CAPITAL LETTER TURNED K
+0A7B1 LATIN CAPITAL LETTER TURNED T
+0A7F7 LATIN EPIGRAPHIC LETTER SIDEWAYS I
0A7F8 MODIFIER LETTER CAPITAL H WITH STROKE
0A7F9 MODIFIER LETTER SMALL LIGATURE OE
0A7FA LATIN LETTER SMALL CAPITAL TURNED M
@@ -14208,6 +14443,37 @@ return <<'END';
0A9D9 JAVANESE DIGIT NINE
0A9DE JAVANESE PADA TIRTA TUMETES
0A9DF JAVANESE PADA ISEN-ISEN
+0A9E0 MYANMAR LETTER SHAN GHA
+0A9E1 MYANMAR LETTER SHAN CHA
+0A9E2 MYANMAR LETTER SHAN JHA
+0A9E3 MYANMAR LETTER SHAN NNA
+0A9E4 MYANMAR LETTER SHAN BHA
+0A9E5 MYANMAR SIGN SHAN SAW
+0A9E6 MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+0A9E7 MYANMAR LETTER TAI LAING NYA
+0A9E8 MYANMAR LETTER TAI LAING FA
+0A9E9 MYANMAR LETTER TAI LAING GA
+0A9EA MYANMAR LETTER TAI LAING GHA
+0A9EB MYANMAR LETTER TAI LAING JA
+0A9EC MYANMAR LETTER TAI LAING JHA
+0A9ED MYANMAR LETTER TAI LAING DDA
+0A9EE MYANMAR LETTER TAI LAING DDHA
+0A9EF MYANMAR LETTER TAI LAING NNA
+0A9F0 MYANMAR TAI LAING DIGIT ZERO
+0A9F1 MYANMAR TAI LAING DIGIT ONE
+0A9F2 MYANMAR TAI LAING DIGIT TWO
+0A9F3 MYANMAR TAI LAING DIGIT THREE
+0A9F4 MYANMAR TAI LAING DIGIT FOUR
+0A9F5 MYANMAR TAI LAING DIGIT FIVE
+0A9F6 MYANMAR TAI LAING DIGIT SIX
+0A9F7 MYANMAR TAI LAING DIGIT SEVEN
+0A9F8 MYANMAR TAI LAING DIGIT EIGHT
+0A9F9 MYANMAR TAI LAING DIGIT NINE
+0A9FA MYANMAR LETTER TAI LAING LLA
+0A9FB MYANMAR LETTER TAI LAING DA
+0A9FC MYANMAR LETTER TAI LAING DHA
+0A9FD MYANMAR LETTER TAI LAING BA
+0A9FE MYANMAR LETTER TAI LAING BHA
0AA00 CHAM LETTER A
0AA01 CHAM LETTER I
0AA02 CHAM LETTER U
@@ -14319,6 +14585,10 @@ return <<'END';
0AA79 MYANMAR SYMBOL AITON TWO
0AA7A MYANMAR LETTER AITON RA
0AA7B MYANMAR SIGN PAO KAREN TONE
+0AA7C MYANMAR SIGN TAI LAING TONE-2
+0AA7D MYANMAR SIGN TAI LAING TONE-5
+0AA7E MYANMAR LETTER SHWE PALAUNG CHA
+0AA7F MYANMAR LETTER SHWE PALAUNG SHA
0AA80 TAI VIET LETTER LOW KO
0AA81 TAI VIET LETTER HIGH KO
0AA82 TAI VIET LETTER LOW KHO
@@ -14446,6 +14716,56 @@ return <<'END';
0AB2C ETHIOPIC SYLLABLE BBEE
0AB2D ETHIOPIC SYLLABLE BBE
0AB2E ETHIOPIC SYLLABLE BBO
+0AB30 LATIN SMALL LETTER BARRED ALPHA
+0AB31 LATIN SMALL LETTER A REVERSED-SCHWA
+0AB32 LATIN SMALL LETTER BLACKLETTER E
+0AB33 LATIN SMALL LETTER BARRED E
+0AB34 LATIN SMALL LETTER E WITH FLOURISH
+0AB35 LATIN SMALL LETTER LENIS F
+0AB36 LATIN SMALL LETTER SCRIPT G WITH CROSSED-TAIL
+0AB37 LATIN SMALL LETTER L WITH INVERTED LAZY S
+0AB38 LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE
+0AB39 LATIN SMALL LETTER L WITH MIDDLE RING
+0AB3A LATIN SMALL LETTER M WITH CROSSED-TAIL
+0AB3B LATIN SMALL LETTER N WITH CROSSED-TAIL
+0AB3C LATIN SMALL LETTER ENG WITH CROSSED-TAIL
+0AB3D LATIN SMALL LETTER BLACKLETTER O
+0AB3E LATIN SMALL LETTER BLACKLETTER O WITH STROKE
+0AB3F LATIN SMALL LETTER OPEN O WITH STROKE
+0AB40 LATIN SMALL LETTER INVERTED OE
+0AB41 LATIN SMALL LETTER TURNED OE WITH STROKE
+0AB42 LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE
+0AB43 LATIN SMALL LETTER TURNED O OPEN-O
+0AB44 LATIN SMALL LETTER TURNED O OPEN-O WITH STROKE
+0AB45 LATIN SMALL LETTER STIRRUP R
+0AB46 LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG
+0AB47 LATIN SMALL LETTER R WITHOUT HANDLE
+0AB48 LATIN SMALL LETTER DOUBLE R
+0AB49 LATIN SMALL LETTER R WITH CROSSED-TAIL
+0AB4A LATIN SMALL LETTER DOUBLE R WITH CROSSED-TAIL
+0AB4B LATIN SMALL LETTER SCRIPT R
+0AB4C LATIN SMALL LETTER SCRIPT R WITH RING
+0AB4D LATIN SMALL LETTER BASELINE ESH
+0AB4E LATIN SMALL LETTER U WITH SHORT RIGHT LEG
+0AB4F LATIN SMALL LETTER U BAR WITH SHORT RIGHT LEG
+0AB50 LATIN SMALL LETTER UI
+0AB51 LATIN SMALL LETTER TURNED UI
+0AB52 LATIN SMALL LETTER U WITH LEFT HOOK
+0AB53 LATIN SMALL LETTER CHI
+0AB54 LATIN SMALL LETTER CHI WITH LOW RIGHT RING
+0AB55 LATIN SMALL LETTER CHI WITH LOW LEFT SERIF
+0AB56 LATIN SMALL LETTER X WITH LOW RIGHT RING
+0AB57 LATIN SMALL LETTER X WITH LONG LEFT LEG
+0AB58 LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING
+0AB59 LATIN SMALL LETTER X WITH LONG LEFT LEG WITH SERIF
+0AB5A LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+0AB5B MODIFIER BREVE WITH INVERTED BREVE
+0AB5C MODIFIER LETTER SMALL HENG
+0AB5D MODIFIER LETTER SMALL L WITH INVERTED LAZY S
+0AB5E MODIFIER LETTER SMALL L WITH MIDDLE TILDE
+0AB5F MODIFIER LETTER SMALL U WITH LEFT HOOK
+0AB64 LATIN SMALL LETTER INVERTED ALPHA
+0AB65 GREEK LETTER SMALL CAPITAL OMEGA
0ABC0 MEETEI MAYEK LETTER KOK
0ABC1 MEETEI MAYEK LETTER SAM
0ABC2 MEETEI MAYEK LETTER LAI
@@ -15293,6 +15613,13 @@ return <<'END';
0FE24 COMBINING MACRON LEFT HALF
0FE25 COMBINING MACRON RIGHT HALF
0FE26 COMBINING CONJOINING MACRON
+0FE27 COMBINING LIGATURE LEFT HALF BELOW
+0FE28 COMBINING LIGATURE RIGHT HALF BELOW
+0FE29 COMBINING TILDE LEFT HALF BELOW
+0FE2A COMBINING TILDE RIGHT HALF BELOW
+0FE2B COMBINING MACRON LEFT HALF BELOW
+0FE2C COMBINING MACRON RIGHT HALF BELOW
+0FE2D COMBINING CONJOINING MACRON BELOW
0FE30 PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
0FE31 PRESENTATION FORM FOR VERTICAL EM DASH
0FE32 PRESENTATION FORM FOR VERTICAL EN DASH
@@ -16068,6 +16395,8 @@ return <<'END';
10188 GREEK GRAMMA SIGN
10189 GREEK TRYBLION BASE SIGN
1018A GREEK ZERO SIGN
+1018B GREEK ONE QUARTER SIGN
+1018C GREEK SINUSOID SIGN
10190 ROMAN SEXTANS SIGN
10191 ROMAN UNCIA SIGN
10192 ROMAN SEMUNCIA SIGN
@@ -16080,6 +16409,7 @@ return <<'END';
10199 ROMAN DUPONDIUS SIGN
1019A ROMAN AS SIGN
1019B ROMAN CENTURIAL SIGN
+101A0 GREEK SYMBOL TAU RHO
101D0 PHAISTOS DISC SIGN PEDESTRIAN
101D1 PHAISTOS DISC SIGN PLUMED HEAD
101D2 PHAISTOS DISC SIGN TATTOOED HEAD
@@ -16204,6 +16534,34 @@ return <<'END';
102CE CARIAN LETTER LD2
102CF CARIAN LETTER E2
102D0 CARIAN LETTER UUU3
+102E0 COPTIC EPACT THOUSANDS MARK
+102E1 COPTIC EPACT DIGIT ONE
+102E2 COPTIC EPACT DIGIT TWO
+102E3 COPTIC EPACT DIGIT THREE
+102E4 COPTIC EPACT DIGIT FOUR
+102E5 COPTIC EPACT DIGIT FIVE
+102E6 COPTIC EPACT DIGIT SIX
+102E7 COPTIC EPACT DIGIT SEVEN
+102E8 COPTIC EPACT DIGIT EIGHT
+102E9 COPTIC EPACT DIGIT NINE
+102EA COPTIC EPACT NUMBER TEN
+102EB COPTIC EPACT NUMBER TWENTY
+102EC COPTIC EPACT NUMBER THIRTY
+102ED COPTIC EPACT NUMBER FORTY
+102EE COPTIC EPACT NUMBER FIFTY
+102EF COPTIC EPACT NUMBER SIXTY
+102F0 COPTIC EPACT NUMBER SEVENTY
+102F1 COPTIC EPACT NUMBER EIGHTY
+102F2 COPTIC EPACT NUMBER NINETY
+102F3 COPTIC EPACT NUMBER ONE HUNDRED
+102F4 COPTIC EPACT NUMBER TWO HUNDRED
+102F5 COPTIC EPACT NUMBER THREE HUNDRED
+102F6 COPTIC EPACT NUMBER FOUR HUNDRED
+102F7 COPTIC EPACT NUMBER FIVE HUNDRED
+102F8 COPTIC EPACT NUMBER SIX HUNDRED
+102F9 COPTIC EPACT NUMBER SEVEN HUNDRED
+102FA COPTIC EPACT NUMBER EIGHT HUNDRED
+102FB COPTIC EPACT NUMBER NINE HUNDRED
10300 OLD ITALIC LETTER A
10301 OLD ITALIC LETTER BE
10302 OLD ITALIC LETTER KE
@@ -16235,6 +16593,7 @@ return <<'END';
1031C OLD ITALIC LETTER CHE
1031D OLD ITALIC LETTER II
1031E OLD ITALIC LETTER UU
+1031F OLD ITALIC LETTER ESS
10320 OLD ITALIC NUMERAL ONE
10321 OLD ITALIC NUMERAL FIVE
10322 OLD ITALIC NUMERAL TEN
@@ -16266,6 +16625,49 @@ return <<'END';
10348 GOTHIC LETTER HWAIR
10349 GOTHIC LETTER OTHAL
1034A GOTHIC LETTER NINE HUNDRED
+10350 OLD PERMIC LETTER AN
+10351 OLD PERMIC LETTER BUR
+10352 OLD PERMIC LETTER GAI
+10353 OLD PERMIC LETTER DOI
+10354 OLD PERMIC LETTER E
+10355 OLD PERMIC LETTER ZHOI
+10356 OLD PERMIC LETTER DZHOI
+10357 OLD PERMIC LETTER ZATA
+10358 OLD PERMIC LETTER DZITA
+10359 OLD PERMIC LETTER I
+1035A OLD PERMIC LETTER KOKE
+1035B OLD PERMIC LETTER LEI
+1035C OLD PERMIC LETTER MENOE
+1035D OLD PERMIC LETTER NENOE
+1035E OLD PERMIC LETTER VOOI
+1035F OLD PERMIC LETTER PEEI
+10360 OLD PERMIC LETTER REI
+10361 OLD PERMIC LETTER SII
+10362 OLD PERMIC LETTER TAI
+10363 OLD PERMIC LETTER U
+10364 OLD PERMIC LETTER CHERY
+10365 OLD PERMIC LETTER SHOOI
+10366 OLD PERMIC LETTER SHCHOOI
+10367 OLD PERMIC LETTER YRY
+10368 OLD PERMIC LETTER YERU
+10369 OLD PERMIC LETTER O
+1036A OLD PERMIC LETTER OO
+1036B OLD PERMIC LETTER EF
+1036C OLD PERMIC LETTER HA
+1036D OLD PERMIC LETTER TSIU
+1036E OLD PERMIC LETTER VER
+1036F OLD PERMIC LETTER YER
+10370 OLD PERMIC LETTER YERI
+10371 OLD PERMIC LETTER YAT
+10372 OLD PERMIC LETTER IE
+10373 OLD PERMIC LETTER YU
+10374 OLD PERMIC LETTER YA
+10375 OLD PERMIC LETTER IA
+10376 COMBINING OLD PERMIC LETTER AN
+10377 COMBINING OLD PERMIC LETTER DOI
+10378 COMBINING OLD PERMIC LETTER ZATA
+10379 COMBINING OLD PERMIC LETTER NENOE
+1037A COMBINING OLD PERMIC LETTER SII
10380 UGARITIC LETTER ALPA
10381 UGARITIC LETTER BETA
10382 UGARITIC LETTER GAMLA
@@ -16515,6 +16917,440 @@ return <<'END';
104A7 OSMANYA DIGIT SEVEN
104A8 OSMANYA DIGIT EIGHT
104A9 OSMANYA DIGIT NINE
+10500 ELBASAN LETTER A
+10501 ELBASAN LETTER BE
+10502 ELBASAN LETTER CE
+10503 ELBASAN LETTER CHE
+10504 ELBASAN LETTER DE
+10505 ELBASAN LETTER NDE
+10506 ELBASAN LETTER DHE
+10507 ELBASAN LETTER EI
+10508 ELBASAN LETTER E
+10509 ELBASAN LETTER FE
+1050A ELBASAN LETTER GE
+1050B ELBASAN LETTER GJE
+1050C ELBASAN LETTER HE
+1050D ELBASAN LETTER I
+1050E ELBASAN LETTER JE
+1050F ELBASAN LETTER KE
+10510 ELBASAN LETTER LE
+10511 ELBASAN LETTER LLE
+10512 ELBASAN LETTER ME
+10513 ELBASAN LETTER NE
+10514 ELBASAN LETTER NA
+10515 ELBASAN LETTER NJE
+10516 ELBASAN LETTER O
+10517 ELBASAN LETTER PE
+10518 ELBASAN LETTER QE
+10519 ELBASAN LETTER RE
+1051A ELBASAN LETTER RRE
+1051B ELBASAN LETTER SE
+1051C ELBASAN LETTER SHE
+1051D ELBASAN LETTER TE
+1051E ELBASAN LETTER THE
+1051F ELBASAN LETTER U
+10520 ELBASAN LETTER VE
+10521 ELBASAN LETTER XE
+10522 ELBASAN LETTER Y
+10523 ELBASAN LETTER ZE
+10524 ELBASAN LETTER ZHE
+10525 ELBASAN LETTER GHE
+10526 ELBASAN LETTER GHAMMA
+10527 ELBASAN LETTER KHE
+10530 CAUCASIAN ALBANIAN LETTER ALT
+10531 CAUCASIAN ALBANIAN LETTER BET
+10532 CAUCASIAN ALBANIAN LETTER GIM
+10533 CAUCASIAN ALBANIAN LETTER DAT
+10534 CAUCASIAN ALBANIAN LETTER EB
+10535 CAUCASIAN ALBANIAN LETTER ZARL
+10536 CAUCASIAN ALBANIAN LETTER EYN
+10537 CAUCASIAN ALBANIAN LETTER ZHIL
+10538 CAUCASIAN ALBANIAN LETTER TAS
+10539 CAUCASIAN ALBANIAN LETTER CHA
+1053A CAUCASIAN ALBANIAN LETTER YOWD
+1053B CAUCASIAN ALBANIAN LETTER ZHA
+1053C CAUCASIAN ALBANIAN LETTER IRB
+1053D CAUCASIAN ALBANIAN LETTER SHA
+1053E CAUCASIAN ALBANIAN LETTER LAN
+1053F CAUCASIAN ALBANIAN LETTER INYA
+10540 CAUCASIAN ALBANIAN LETTER XEYN
+10541 CAUCASIAN ALBANIAN LETTER DYAN
+10542 CAUCASIAN ALBANIAN LETTER CAR
+10543 CAUCASIAN ALBANIAN LETTER JHOX
+10544 CAUCASIAN ALBANIAN LETTER KAR
+10545 CAUCASIAN ALBANIAN LETTER LYIT
+10546 CAUCASIAN ALBANIAN LETTER HEYT
+10547 CAUCASIAN ALBANIAN LETTER QAY
+10548 CAUCASIAN ALBANIAN LETTER AOR
+10549 CAUCASIAN ALBANIAN LETTER CHOY
+1054A CAUCASIAN ALBANIAN LETTER CHI
+1054B CAUCASIAN ALBANIAN LETTER CYAY
+1054C CAUCASIAN ALBANIAN LETTER MAQ
+1054D CAUCASIAN ALBANIAN LETTER QAR
+1054E CAUCASIAN ALBANIAN LETTER NOWC
+1054F CAUCASIAN ALBANIAN LETTER DZYAY
+10550 CAUCASIAN ALBANIAN LETTER SHAK
+10551 CAUCASIAN ALBANIAN LETTER JAYN
+10552 CAUCASIAN ALBANIAN LETTER ON
+10553 CAUCASIAN ALBANIAN LETTER TYAY
+10554 CAUCASIAN ALBANIAN LETTER FAM
+10555 CAUCASIAN ALBANIAN LETTER DZAY
+10556 CAUCASIAN ALBANIAN LETTER CHAT
+10557 CAUCASIAN ALBANIAN LETTER PEN
+10558 CAUCASIAN ALBANIAN LETTER GHEYS
+10559 CAUCASIAN ALBANIAN LETTER RAT
+1055A CAUCASIAN ALBANIAN LETTER SEYK
+1055B CAUCASIAN ALBANIAN LETTER VEYZ
+1055C CAUCASIAN ALBANIAN LETTER TIWR
+1055D CAUCASIAN ALBANIAN LETTER SHOY
+1055E CAUCASIAN ALBANIAN LETTER IWN
+1055F CAUCASIAN ALBANIAN LETTER CYAW
+10560 CAUCASIAN ALBANIAN LETTER CAYN
+10561 CAUCASIAN ALBANIAN LETTER YAYD
+10562 CAUCASIAN ALBANIAN LETTER PIWR
+10563 CAUCASIAN ALBANIAN LETTER KIW
+1056F CAUCASIAN ALBANIAN CITATION MARK
+10600 LINEAR A SIGN AB001
+10601 LINEAR A SIGN AB002
+10602 LINEAR A SIGN AB003
+10603 LINEAR A SIGN AB004
+10604 LINEAR A SIGN AB005
+10605 LINEAR A SIGN AB006
+10606 LINEAR A SIGN AB007
+10607 LINEAR A SIGN AB008
+10608 LINEAR A SIGN AB009
+10609 LINEAR A SIGN AB010
+1060A LINEAR A SIGN AB011
+1060B LINEAR A SIGN AB013
+1060C LINEAR A SIGN AB016
+1060D LINEAR A SIGN AB017
+1060E LINEAR A SIGN AB020
+1060F LINEAR A SIGN AB021
+10610 LINEAR A SIGN AB021F
+10611 LINEAR A SIGN AB021M
+10612 LINEAR A SIGN AB022
+10613 LINEAR A SIGN AB022F
+10614 LINEAR A SIGN AB022M
+10615 LINEAR A SIGN AB023
+10616 LINEAR A SIGN AB023M
+10617 LINEAR A SIGN AB024
+10618 LINEAR A SIGN AB026
+10619 LINEAR A SIGN AB027
+1061A LINEAR A SIGN AB028
+1061B LINEAR A SIGN A028B
+1061C LINEAR A SIGN AB029
+1061D LINEAR A SIGN AB030
+1061E LINEAR A SIGN AB031
+1061F LINEAR A SIGN AB034
+10620 LINEAR A SIGN AB037
+10621 LINEAR A SIGN AB038
+10622 LINEAR A SIGN AB039
+10623 LINEAR A SIGN AB040
+10624 LINEAR A SIGN AB041
+10625 LINEAR A SIGN AB044
+10626 LINEAR A SIGN AB045
+10627 LINEAR A SIGN AB046
+10628 LINEAR A SIGN AB047
+10629 LINEAR A SIGN AB048
+1062A LINEAR A SIGN AB049
+1062B LINEAR A SIGN AB050
+1062C LINEAR A SIGN AB051
+1062D LINEAR A SIGN AB053
+1062E LINEAR A SIGN AB054
+1062F LINEAR A SIGN AB055
+10630 LINEAR A SIGN AB056
+10631 LINEAR A SIGN AB057
+10632 LINEAR A SIGN AB058
+10633 LINEAR A SIGN AB059
+10634 LINEAR A SIGN AB060
+10635 LINEAR A SIGN AB061
+10636 LINEAR A SIGN AB065
+10637 LINEAR A SIGN AB066
+10638 LINEAR A SIGN AB067
+10639 LINEAR A SIGN AB069
+1063A LINEAR A SIGN AB070
+1063B LINEAR A SIGN AB073
+1063C LINEAR A SIGN AB074
+1063D LINEAR A SIGN AB076
+1063E LINEAR A SIGN AB077
+1063F LINEAR A SIGN AB078
+10640 LINEAR A SIGN AB079
+10641 LINEAR A SIGN AB080
+10642 LINEAR A SIGN AB081
+10643 LINEAR A SIGN AB082
+10644 LINEAR A SIGN AB085
+10645 LINEAR A SIGN AB086
+10646 LINEAR A SIGN AB087
+10647 LINEAR A SIGN A100-102
+10648 LINEAR A SIGN AB118
+10649 LINEAR A SIGN AB120
+1064A LINEAR A SIGN A120B
+1064B LINEAR A SIGN AB122
+1064C LINEAR A SIGN AB123
+1064D LINEAR A SIGN AB131A
+1064E LINEAR A SIGN AB131B
+1064F LINEAR A SIGN A131C
+10650 LINEAR A SIGN AB164
+10651 LINEAR A SIGN AB171
+10652 LINEAR A SIGN AB180
+10653 LINEAR A SIGN AB188
+10654 LINEAR A SIGN AB191
+10655 LINEAR A SIGN A301
+10656 LINEAR A SIGN A302
+10657 LINEAR A SIGN A303
+10658 LINEAR A SIGN A304
+10659 LINEAR A SIGN A305
+1065A LINEAR A SIGN A306
+1065B LINEAR A SIGN A307
+1065C LINEAR A SIGN A308
+1065D LINEAR A SIGN A309A
+1065E LINEAR A SIGN A309B
+1065F LINEAR A SIGN A309C
+10660 LINEAR A SIGN A310
+10661 LINEAR A SIGN A311
+10662 LINEAR A SIGN A312
+10663 LINEAR A SIGN A313A
+10664 LINEAR A SIGN A313B
+10665 LINEAR A SIGN A313C
+10666 LINEAR A SIGN A314
+10667 LINEAR A SIGN A315
+10668 LINEAR A SIGN A316
+10669 LINEAR A SIGN A317
+1066A LINEAR A SIGN A318
+1066B LINEAR A SIGN A319
+1066C LINEAR A SIGN A320
+1066D LINEAR A SIGN A321
+1066E LINEAR A SIGN A322
+1066F LINEAR A SIGN A323
+10670 LINEAR A SIGN A324
+10671 LINEAR A SIGN A325
+10672 LINEAR A SIGN A326
+10673 LINEAR A SIGN A327
+10674 LINEAR A SIGN A328
+10675 LINEAR A SIGN A329
+10676 LINEAR A SIGN A330
+10677 LINEAR A SIGN A331
+10678 LINEAR A SIGN A332
+10679 LINEAR A SIGN A333
+1067A LINEAR A SIGN A334
+1067B LINEAR A SIGN A335
+1067C LINEAR A SIGN A336
+1067D LINEAR A SIGN A337
+1067E LINEAR A SIGN A338
+1067F LINEAR A SIGN A339
+10680 LINEAR A SIGN A340
+10681 LINEAR A SIGN A341
+10682 LINEAR A SIGN A342
+10683 LINEAR A SIGN A343
+10684 LINEAR A SIGN A344
+10685 LINEAR A SIGN A345
+10686 LINEAR A SIGN A346
+10687 LINEAR A SIGN A347
+10688 LINEAR A SIGN A348
+10689 LINEAR A SIGN A349
+1068A LINEAR A SIGN A350
+1068B LINEAR A SIGN A351
+1068C LINEAR A SIGN A352
+1068D LINEAR A SIGN A353
+1068E LINEAR A SIGN A354
+1068F LINEAR A SIGN A355
+10690 LINEAR A SIGN A356
+10691 LINEAR A SIGN A357
+10692 LINEAR A SIGN A358
+10693 LINEAR A SIGN A359
+10694 LINEAR A SIGN A360
+10695 LINEAR A SIGN A361
+10696 LINEAR A SIGN A362
+10697 LINEAR A SIGN A363
+10698 LINEAR A SIGN A364
+10699 LINEAR A SIGN A365
+1069A LINEAR A SIGN A366
+1069B LINEAR A SIGN A367
+1069C LINEAR A SIGN A368
+1069D LINEAR A SIGN A369
+1069E LINEAR A SIGN A370
+1069F LINEAR A SIGN A371
+106A0 LINEAR A SIGN A400-VAS
+106A1 LINEAR A SIGN A401-VAS
+106A2 LINEAR A SIGN A402-VAS
+106A3 LINEAR A SIGN A403-VAS
+106A4 LINEAR A SIGN A404-VAS
+106A5 LINEAR A SIGN A405-VAS
+106A6 LINEAR A SIGN A406-VAS
+106A7 LINEAR A SIGN A407-VAS
+106A8 LINEAR A SIGN A408-VAS
+106A9 LINEAR A SIGN A409-VAS
+106AA LINEAR A SIGN A410-VAS
+106AB LINEAR A SIGN A411-VAS
+106AC LINEAR A SIGN A412-VAS
+106AD LINEAR A SIGN A413-VAS
+106AE LINEAR A SIGN A414-VAS
+106AF LINEAR A SIGN A415-VAS
+106B0 LINEAR A SIGN A416-VAS
+106B1 LINEAR A SIGN A417-VAS
+106B2 LINEAR A SIGN A418-VAS
+106B3 LINEAR A SIGN A501
+106B4 LINEAR A SIGN A502
+106B5 LINEAR A SIGN A503
+106B6 LINEAR A SIGN A504
+106B7 LINEAR A SIGN A505
+106B8 LINEAR A SIGN A506
+106B9 LINEAR A SIGN A508
+106BA LINEAR A SIGN A509
+106BB LINEAR A SIGN A510
+106BC LINEAR A SIGN A511
+106BD LINEAR A SIGN A512
+106BE LINEAR A SIGN A513
+106BF LINEAR A SIGN A515
+106C0 LINEAR A SIGN A516
+106C1 LINEAR A SIGN A520
+106C2 LINEAR A SIGN A521
+106C3 LINEAR A SIGN A523
+106C4 LINEAR A SIGN A524
+106C5 LINEAR A SIGN A525
+106C6 LINEAR A SIGN A526
+106C7 LINEAR A SIGN A527
+106C8 LINEAR A SIGN A528
+106C9 LINEAR A SIGN A529
+106CA LINEAR A SIGN A530
+106CB LINEAR A SIGN A531
+106CC LINEAR A SIGN A532
+106CD LINEAR A SIGN A534
+106CE LINEAR A SIGN A535
+106CF LINEAR A SIGN A536
+106D0 LINEAR A SIGN A537
+106D1 LINEAR A SIGN A538
+106D2 LINEAR A SIGN A539
+106D3 LINEAR A SIGN A540
+106D4 LINEAR A SIGN A541
+106D5 LINEAR A SIGN A542
+106D6 LINEAR A SIGN A545
+106D7 LINEAR A SIGN A547
+106D8 LINEAR A SIGN A548
+106D9 LINEAR A SIGN A549
+106DA LINEAR A SIGN A550
+106DB LINEAR A SIGN A551
+106DC LINEAR A SIGN A552
+106DD LINEAR A SIGN A553
+106DE LINEAR A SIGN A554
+106DF LINEAR A SIGN A555
+106E0 LINEAR A SIGN A556
+106E1 LINEAR A SIGN A557
+106E2 LINEAR A SIGN A559
+106E3 LINEAR A SIGN A563
+106E4 LINEAR A SIGN A564
+106E5 LINEAR A SIGN A565
+106E6 LINEAR A SIGN A566
+106E7 LINEAR A SIGN A568
+106E8 LINEAR A SIGN A569
+106E9 LINEAR A SIGN A570
+106EA LINEAR A SIGN A571
+106EB LINEAR A SIGN A572
+106EC LINEAR A SIGN A573
+106ED LINEAR A SIGN A574
+106EE LINEAR A SIGN A575
+106EF LINEAR A SIGN A576
+106F0 LINEAR A SIGN A577
+106F1 LINEAR A SIGN A578
+106F2 LINEAR A SIGN A579
+106F3 LINEAR A SIGN A580
+106F4 LINEAR A SIGN A581
+106F5 LINEAR A SIGN A582
+106F6 LINEAR A SIGN A583
+106F7 LINEAR A SIGN A584
+106F8 LINEAR A SIGN A585
+106F9 LINEAR A SIGN A586
+106FA LINEAR A SIGN A587
+106FB LINEAR A SIGN A588
+106FC LINEAR A SIGN A589
+106FD LINEAR A SIGN A591
+106FE LINEAR A SIGN A592
+106FF LINEAR A SIGN A594
+10700 LINEAR A SIGN A595
+10701 LINEAR A SIGN A596
+10702 LINEAR A SIGN A598
+10703 LINEAR A SIGN A600
+10704 LINEAR A SIGN A601
+10705 LINEAR A SIGN A602
+10706 LINEAR A SIGN A603
+10707 LINEAR A SIGN A604
+10708 LINEAR A SIGN A606
+10709 LINEAR A SIGN A608
+1070A LINEAR A SIGN A609
+1070B LINEAR A SIGN A610
+1070C LINEAR A SIGN A611
+1070D LINEAR A SIGN A612
+1070E LINEAR A SIGN A613
+1070F LINEAR A SIGN A614
+10710 LINEAR A SIGN A615
+10711 LINEAR A SIGN A616
+10712 LINEAR A SIGN A617
+10713 LINEAR A SIGN A618
+10714 LINEAR A SIGN A619
+10715 LINEAR A SIGN A620
+10716 LINEAR A SIGN A621
+10717 LINEAR A SIGN A622
+10718 LINEAR A SIGN A623
+10719 LINEAR A SIGN A624
+1071A LINEAR A SIGN A626
+1071B LINEAR A SIGN A627
+1071C LINEAR A SIGN A628
+1071D LINEAR A SIGN A629
+1071E LINEAR A SIGN A634
+1071F LINEAR A SIGN A637
+10720 LINEAR A SIGN A638
+10721 LINEAR A SIGN A640
+10722 LINEAR A SIGN A642
+10723 LINEAR A SIGN A643
+10724 LINEAR A SIGN A644
+10725 LINEAR A SIGN A645
+10726 LINEAR A SIGN A646
+10727 LINEAR A SIGN A648
+10728 LINEAR A SIGN A649
+10729 LINEAR A SIGN A651
+1072A LINEAR A SIGN A652
+1072B LINEAR A SIGN A653
+1072C LINEAR A SIGN A654
+1072D LINEAR A SIGN A655
+1072E LINEAR A SIGN A656
+1072F LINEAR A SIGN A657
+10730 LINEAR A SIGN A658
+10731 LINEAR A SIGN A659
+10732 LINEAR A SIGN A660
+10733 LINEAR A SIGN A661
+10734 LINEAR A SIGN A662
+10735 LINEAR A SIGN A663
+10736 LINEAR A SIGN A664
+10740 LINEAR A SIGN A701 A
+10741 LINEAR A SIGN A702 B
+10742 LINEAR A SIGN A703 D
+10743 LINEAR A SIGN A704 E
+10744 LINEAR A SIGN A705 F
+10745 LINEAR A SIGN A706 H
+10746 LINEAR A SIGN A707 J
+10747 LINEAR A SIGN A708 K
+10748 LINEAR A SIGN A709 L
+10749 LINEAR A SIGN A709-2 L2
+1074A LINEAR A SIGN A709-3 L3
+1074B LINEAR A SIGN A709-4 L4
+1074C LINEAR A SIGN A709-6 L6
+1074D LINEAR A SIGN A710 W
+1074E LINEAR A SIGN A711 X
+1074F LINEAR A SIGN A712 Y
+10750 LINEAR A SIGN A713 OMEGA
+10751 LINEAR A SIGN A714 ABB
+10752 LINEAR A SIGN A715 BB
+10753 LINEAR A SIGN A717 DD
+10754 LINEAR A SIGN A726 EYYY
+10755 LINEAR A SIGN A732 JE
+10760 LINEAR A SIGN A800
+10761 LINEAR A SIGN A801
+10762 LINEAR A SIGN A802
+10763 LINEAR A SIGN A803
+10764 LINEAR A SIGN A804
+10765 LINEAR A SIGN A805
+10766 LINEAR A SIGN A806
+10767 LINEAR A SIGN A807
10800 CYPRIOT SYLLABLE A
10801 CYPRIOT SYLLABLE E
10802 CYPRIOT SYLLABLE I
@@ -16601,6 +17437,78 @@ return <<'END';
1085D IMPERIAL ARAMAIC NUMBER ONE HUNDRED
1085E IMPERIAL ARAMAIC NUMBER ONE THOUSAND
1085F IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860 PALMYRENE LETTER ALEPH
+10861 PALMYRENE LETTER BETH
+10862 PALMYRENE LETTER GIMEL
+10863 PALMYRENE LETTER DALETH
+10864 PALMYRENE LETTER HE
+10865 PALMYRENE LETTER WAW
+10866 PALMYRENE LETTER ZAYIN
+10867 PALMYRENE LETTER HETH
+10868 PALMYRENE LETTER TETH
+10869 PALMYRENE LETTER YODH
+1086A PALMYRENE LETTER KAPH
+1086B PALMYRENE LETTER LAMEDH
+1086C PALMYRENE LETTER MEM
+1086D PALMYRENE LETTER FINAL NUN
+1086E PALMYRENE LETTER NUN
+1086F PALMYRENE LETTER SAMEKH
+10870 PALMYRENE LETTER AYIN
+10871 PALMYRENE LETTER PE
+10872 PALMYRENE LETTER SADHE
+10873 PALMYRENE LETTER QOPH
+10874 PALMYRENE LETTER RESH
+10875 PALMYRENE LETTER SHIN
+10876 PALMYRENE LETTER TAW
+10877 PALMYRENE LEFT-POINTING FLEURON
+10878 PALMYRENE RIGHT-POINTING FLEURON
+10879 PALMYRENE NUMBER ONE
+1087A PALMYRENE NUMBER TWO
+1087B PALMYRENE NUMBER THREE
+1087C PALMYRENE NUMBER FOUR
+1087D PALMYRENE NUMBER FIVE
+1087E PALMYRENE NUMBER TEN
+1087F PALMYRENE NUMBER TWENTY
+10880 NABATAEAN LETTER FINAL ALEPH
+10881 NABATAEAN LETTER ALEPH
+10882 NABATAEAN LETTER FINAL BETH
+10883 NABATAEAN LETTER BETH
+10884 NABATAEAN LETTER GIMEL
+10885 NABATAEAN LETTER DALETH
+10886 NABATAEAN LETTER FINAL HE
+10887 NABATAEAN LETTER HE
+10888 NABATAEAN LETTER WAW
+10889 NABATAEAN LETTER ZAYIN
+1088A NABATAEAN LETTER HETH
+1088B NABATAEAN LETTER TETH
+1088C NABATAEAN LETTER FINAL YODH
+1088D NABATAEAN LETTER YODH
+1088E NABATAEAN LETTER FINAL KAPH
+1088F NABATAEAN LETTER KAPH
+10890 NABATAEAN LETTER FINAL LAMEDH
+10891 NABATAEAN LETTER LAMEDH
+10892 NABATAEAN LETTER FINAL MEM
+10893 NABATAEAN LETTER MEM
+10894 NABATAEAN LETTER FINAL NUN
+10895 NABATAEAN LETTER NUN
+10896 NABATAEAN LETTER SAMEKH
+10897 NABATAEAN LETTER AYIN
+10898 NABATAEAN LETTER PE
+10899 NABATAEAN LETTER SADHE
+1089A NABATAEAN LETTER QOPH
+1089B NABATAEAN LETTER RESH
+1089C NABATAEAN LETTER FINAL SHIN
+1089D NABATAEAN LETTER SHIN
+1089E NABATAEAN LETTER TAW
+108A7 NABATAEAN NUMBER ONE
+108A8 NABATAEAN NUMBER TWO
+108A9 NABATAEAN NUMBER THREE
+108AA NABATAEAN NUMBER FOUR
+108AB NABATAEAN CRUCIFORM NUMBER FOUR
+108AC NABATAEAN NUMBER FIVE
+108AD NABATAEAN NUMBER TEN
+108AE NABATAEAN NUMBER TWENTY
+108AF NABATAEAN NUMBER ONE HUNDRED
10900 PHOENICIAN LETTER ALF
10901 PHOENICIAN LETTER BET
10902 PHOENICIAN LETTER GAML
@@ -16812,6 +17720,89 @@ return <<'END';
10A7D OLD SOUTH ARABIAN NUMBER ONE
10A7E OLD SOUTH ARABIAN NUMBER FIFTY
10A7F OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80 OLD NORTH ARABIAN LETTER HEH
+10A81 OLD NORTH ARABIAN LETTER LAM
+10A82 OLD NORTH ARABIAN LETTER HAH
+10A83 OLD NORTH ARABIAN LETTER MEEM
+10A84 OLD NORTH ARABIAN LETTER QAF
+10A85 OLD NORTH ARABIAN LETTER WAW
+10A86 OLD NORTH ARABIAN LETTER ES-2
+10A87 OLD NORTH ARABIAN LETTER REH
+10A88 OLD NORTH ARABIAN LETTER BEH
+10A89 OLD NORTH ARABIAN LETTER TEH
+10A8A OLD NORTH ARABIAN LETTER ES-1
+10A8B OLD NORTH ARABIAN LETTER KAF
+10A8C OLD NORTH ARABIAN LETTER NOON
+10A8D OLD NORTH ARABIAN LETTER KHAH
+10A8E OLD NORTH ARABIAN LETTER SAD
+10A8F OLD NORTH ARABIAN LETTER ES-3
+10A90 OLD NORTH ARABIAN LETTER FEH
+10A91 OLD NORTH ARABIAN LETTER ALEF
+10A92 OLD NORTH ARABIAN LETTER AIN
+10A93 OLD NORTH ARABIAN LETTER DAD
+10A94 OLD NORTH ARABIAN LETTER GEEM
+10A95 OLD NORTH ARABIAN LETTER DAL
+10A96 OLD NORTH ARABIAN LETTER GHAIN
+10A97 OLD NORTH ARABIAN LETTER TAH
+10A98 OLD NORTH ARABIAN LETTER ZAIN
+10A99 OLD NORTH ARABIAN LETTER THAL
+10A9A OLD NORTH ARABIAN LETTER YEH
+10A9B OLD NORTH ARABIAN LETTER THEH
+10A9C OLD NORTH ARABIAN LETTER ZAH
+10A9D OLD NORTH ARABIAN NUMBER ONE
+10A9E OLD NORTH ARABIAN NUMBER TEN
+10A9F OLD NORTH ARABIAN NUMBER TWENTY
+10AC0 MANICHAEAN LETTER ALEPH
+10AC1 MANICHAEAN LETTER BETH
+10AC2 MANICHAEAN LETTER BHETH
+10AC3 MANICHAEAN LETTER GIMEL
+10AC4 MANICHAEAN LETTER GHIMEL
+10AC5 MANICHAEAN LETTER DALETH
+10AC6 MANICHAEAN LETTER HE
+10AC7 MANICHAEAN LETTER WAW
+10AC8 MANICHAEAN SIGN UD
+10AC9 MANICHAEAN LETTER ZAYIN
+10ACA MANICHAEAN LETTER ZHAYIN
+10ACB MANICHAEAN LETTER JAYIN
+10ACC MANICHAEAN LETTER JHAYIN
+10ACD MANICHAEAN LETTER HETH
+10ACE MANICHAEAN LETTER TETH
+10ACF MANICHAEAN LETTER YODH
+10AD0 MANICHAEAN LETTER KAPH
+10AD1 MANICHAEAN LETTER XAPH
+10AD2 MANICHAEAN LETTER KHAPH
+10AD3 MANICHAEAN LETTER LAMEDH
+10AD4 MANICHAEAN LETTER DHAMEDH
+10AD5 MANICHAEAN LETTER THAMEDH
+10AD6 MANICHAEAN LETTER MEM
+10AD7 MANICHAEAN LETTER NUN
+10AD8 MANICHAEAN LETTER SAMEKH
+10AD9 MANICHAEAN LETTER AYIN
+10ADA MANICHAEAN LETTER AAYIN
+10ADB MANICHAEAN LETTER PE
+10ADC MANICHAEAN LETTER FE
+10ADD MANICHAEAN LETTER SADHE
+10ADE MANICHAEAN LETTER QOPH
+10ADF MANICHAEAN LETTER XOPH
+10AE0 MANICHAEAN LETTER QHOPH
+10AE1 MANICHAEAN LETTER RESH
+10AE2 MANICHAEAN LETTER SHIN
+10AE3 MANICHAEAN LETTER SSHIN
+10AE4 MANICHAEAN LETTER TAW
+10AE5 MANICHAEAN ABBREVIATION MARK ABOVE
+10AE6 MANICHAEAN ABBREVIATION MARK BELOW
+10AEB MANICHAEAN NUMBER ONE
+10AEC MANICHAEAN NUMBER FIVE
+10AED MANICHAEAN NUMBER TEN
+10AEE MANICHAEAN NUMBER TWENTY
+10AEF MANICHAEAN NUMBER ONE HUNDRED
+10AF0 MANICHAEAN PUNCTUATION STAR
+10AF1 MANICHAEAN PUNCTUATION FLEURON
+10AF2 MANICHAEAN PUNCTUATION DOUBLE DOT WITHIN DOT
+10AF3 MANICHAEAN PUNCTUATION DOT WITHIN DOT
+10AF4 MANICHAEAN PUNCTUATION DOT
+10AF5 MANICHAEAN PUNCTUATION TWO DOTS
+10AF6 MANICHAEAN PUNCTUATION LINE FILLER
10B00 AVESTAN LETTER A
10B01 AVESTAN LETTER AA
10B02 AVESTAN LETTER AO
@@ -16930,6 +17921,35 @@ return <<'END';
10B7D INSCRIPTIONAL PAHLAVI NUMBER TWENTY
10B7E INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
10B7F INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80 PSALTER PAHLAVI LETTER ALEPH
+10B81 PSALTER PAHLAVI LETTER BETH
+10B82 PSALTER PAHLAVI LETTER GIMEL
+10B83 PSALTER PAHLAVI LETTER DALETH
+10B84 PSALTER PAHLAVI LETTER HE
+10B85 PSALTER PAHLAVI LETTER WAW-AYIN-RESH
+10B86 PSALTER PAHLAVI LETTER ZAYIN
+10B87 PSALTER PAHLAVI LETTER HETH
+10B88 PSALTER PAHLAVI LETTER YODH
+10B89 PSALTER PAHLAVI LETTER KAPH
+10B8A PSALTER PAHLAVI LETTER LAMEDH
+10B8B PSALTER PAHLAVI LETTER MEM-QOPH
+10B8C PSALTER PAHLAVI LETTER NUN
+10B8D PSALTER PAHLAVI LETTER SAMEKH
+10B8E PSALTER PAHLAVI LETTER PE
+10B8F PSALTER PAHLAVI LETTER SADHE
+10B90 PSALTER PAHLAVI LETTER SHIN
+10B91 PSALTER PAHLAVI LETTER TAW
+10B99 PSALTER PAHLAVI SECTION MARK
+10B9A PSALTER PAHLAVI TURNED SECTION MARK
+10B9B PSALTER PAHLAVI FOUR DOTS WITH CROSS
+10B9C PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9 PSALTER PAHLAVI NUMBER ONE
+10BAA PSALTER PAHLAVI NUMBER TWO
+10BAB PSALTER PAHLAVI NUMBER THREE
+10BAC PSALTER PAHLAVI NUMBER FOUR
+10BAD PSALTER PAHLAVI NUMBER TEN
+10BAE PSALTER PAHLAVI NUMBER TWENTY
+10BAF PSALTER PAHLAVI NUMBER ONE HUNDRED
10C00 OLD TURKIC LETTER ORKHON A
10C01 OLD TURKIC LETTER YENISEI A
10C02 OLD TURKIC LETTER YENISEI AE
@@ -17142,6 +18162,7 @@ return <<'END';
1106D BRAHMI DIGIT SEVEN
1106E BRAHMI DIGIT EIGHT
1106F BRAHMI DIGIT NINE
+1107F BRAHMI NUMBER JOINER
11080 KAITHI SIGN CANDRABINDU
11081 KAITHI SIGN ANUSVARA
11082 KAITHI SIGN VISARGA
@@ -17310,6 +18331,45 @@ return <<'END';
11141 CHAKMA DANDA
11142 CHAKMA DOUBLE DANDA
11143 CHAKMA QUESTION MARK
+11150 MAHAJANI LETTER A
+11151 MAHAJANI LETTER I
+11152 MAHAJANI LETTER U
+11153 MAHAJANI LETTER E
+11154 MAHAJANI LETTER O
+11155 MAHAJANI LETTER KA
+11156 MAHAJANI LETTER KHA
+11157 MAHAJANI LETTER GA
+11158 MAHAJANI LETTER GHA
+11159 MAHAJANI LETTER CA
+1115A MAHAJANI LETTER CHA
+1115B MAHAJANI LETTER JA
+1115C MAHAJANI LETTER JHA
+1115D MAHAJANI LETTER NYA
+1115E MAHAJANI LETTER TTA
+1115F MAHAJANI LETTER TTHA
+11160 MAHAJANI LETTER DDA
+11161 MAHAJANI LETTER DDHA
+11162 MAHAJANI LETTER NNA
+11163 MAHAJANI LETTER TA
+11164 MAHAJANI LETTER THA
+11165 MAHAJANI LETTER DA
+11166 MAHAJANI LETTER DHA
+11167 MAHAJANI LETTER NA
+11168 MAHAJANI LETTER PA
+11169 MAHAJANI LETTER PHA
+1116A MAHAJANI LETTER BA
+1116B MAHAJANI LETTER BHA
+1116C MAHAJANI LETTER MA
+1116D MAHAJANI LETTER RA
+1116E MAHAJANI LETTER LA
+1116F MAHAJANI LETTER VA
+11170 MAHAJANI LETTER SA
+11171 MAHAJANI LETTER HA
+11172 MAHAJANI LETTER RRA
+11173 MAHAJANI SIGN NUKTA
+11174 MAHAJANI ABBREVIATION SIGN
+11175 MAHAJANI SECTION MARK
+11176 MAHAJANI LIGATURE SHRI
11180 SHARADA SIGN CANDRABINDU
11181 SHARADA SIGN ANUSVARA
11182 SHARADA SIGN VISARGA
@@ -17383,6 +18443,7 @@ return <<'END';
111C6 SHARADA DOUBLE DANDA
111C7 SHARADA ABBREVIATION SIGN
111C8 SHARADA SEPARATOR
+111CD SHARADA SUTRA MARK
111D0 SHARADA DIGIT ZERO
111D1 SHARADA DIGIT ONE
111D2 SHARADA DIGIT TWO
@@ -17393,6 +18454,473 @@ return <<'END';
111D7 SHARADA DIGIT SEVEN
111D8 SHARADA DIGIT EIGHT
111D9 SHARADA DIGIT NINE
+111DA SHARADA EKAM
+111E1 SINHALA ARCHAIC DIGIT ONE
+111E2 SINHALA ARCHAIC DIGIT TWO
+111E3 SINHALA ARCHAIC DIGIT THREE
+111E4 SINHALA ARCHAIC DIGIT FOUR
+111E5 SINHALA ARCHAIC DIGIT FIVE
+111E6 SINHALA ARCHAIC DIGIT SIX
+111E7 SINHALA ARCHAIC DIGIT SEVEN
+111E8 SINHALA ARCHAIC DIGIT EIGHT
+111E9 SINHALA ARCHAIC DIGIT NINE
+111EA SINHALA ARCHAIC NUMBER TEN
+111EB SINHALA ARCHAIC NUMBER TWENTY
+111EC SINHALA ARCHAIC NUMBER THIRTY
+111ED SINHALA ARCHAIC NUMBER FORTY
+111EE SINHALA ARCHAIC NUMBER FIFTY
+111EF SINHALA ARCHAIC NUMBER SIXTY
+111F0 SINHALA ARCHAIC NUMBER SEVENTY
+111F1 SINHALA ARCHAIC NUMBER EIGHTY
+111F2 SINHALA ARCHAIC NUMBER NINETY
+111F3 SINHALA ARCHAIC NUMBER ONE HUNDRED
+111F4 SINHALA ARCHAIC NUMBER ONE THOUSAND
+11200 KHOJKI LETTER A
+11201 KHOJKI LETTER AA
+11202 KHOJKI LETTER I
+11203 KHOJKI LETTER U
+11204 KHOJKI LETTER E
+11205 KHOJKI LETTER AI
+11206 KHOJKI LETTER O
+11207 KHOJKI LETTER AU
+11208 KHOJKI LETTER KA
+11209 KHOJKI LETTER KHA
+1120A KHOJKI LETTER GA
+1120B KHOJKI LETTER GGA
+1120C KHOJKI LETTER GHA
+1120D KHOJKI LETTER NGA
+1120E KHOJKI LETTER CA
+1120F KHOJKI LETTER CHA
+11210 KHOJKI LETTER JA
+11211 KHOJKI LETTER JJA
+11213 KHOJKI LETTER NYA
+11214 KHOJKI LETTER TTA
+11215 KHOJKI LETTER TTHA
+11216 KHOJKI LETTER DDA
+11217 KHOJKI LETTER DDHA
+11218 KHOJKI LETTER NNA
+11219 KHOJKI LETTER TA
+1121A KHOJKI LETTER THA
+1121B KHOJKI LETTER DA
+1121C KHOJKI LETTER DDDA
+1121D KHOJKI LETTER DHA
+1121E KHOJKI LETTER NA
+1121F KHOJKI LETTER PA
+11220 KHOJKI LETTER PHA
+11221 KHOJKI LETTER BA
+11222 KHOJKI LETTER BBA
+11223 KHOJKI LETTER BHA
+11224 KHOJKI LETTER MA
+11225 KHOJKI LETTER YA
+11226 KHOJKI LETTER RA
+11227 KHOJKI LETTER LA
+11228 KHOJKI LETTER VA
+11229 KHOJKI LETTER SA
+1122A KHOJKI LETTER HA
+1122B KHOJKI LETTER LLA
+1122C KHOJKI VOWEL SIGN AA
+1122D KHOJKI VOWEL SIGN I
+1122E KHOJKI VOWEL SIGN II
+1122F KHOJKI VOWEL SIGN U
+11230 KHOJKI VOWEL SIGN E
+11231 KHOJKI VOWEL SIGN AI
+11232 KHOJKI VOWEL SIGN O
+11233 KHOJKI VOWEL SIGN AU
+11234 KHOJKI SIGN ANUSVARA
+11235 KHOJKI SIGN VIRAMA
+11236 KHOJKI SIGN NUKTA
+11237 KHOJKI SIGN SHADDA
+11238 KHOJKI DANDA
+11239 KHOJKI DOUBLE DANDA
+1123A KHOJKI WORD SEPARATOR
+1123B KHOJKI SECTION MARK
+1123C KHOJKI DOUBLE SECTION MARK
+1123D KHOJKI ABBREVIATION SIGN
+112B0 KHUDAWADI LETTER A
+112B1 KHUDAWADI LETTER AA
+112B2 KHUDAWADI LETTER I
+112B3 KHUDAWADI LETTER II
+112B4 KHUDAWADI LETTER U
+112B5 KHUDAWADI LETTER UU
+112B6 KHUDAWADI LETTER E
+112B7 KHUDAWADI LETTER AI
+112B8 KHUDAWADI LETTER O
+112B9 KHUDAWADI LETTER AU
+112BA KHUDAWADI LETTER KA
+112BB KHUDAWADI LETTER KHA
+112BC KHUDAWADI LETTER GA
+112BD KHUDAWADI LETTER GGA
+112BE KHUDAWADI LETTER GHA
+112BF KHUDAWADI LETTER NGA
+112C0 KHUDAWADI LETTER CA
+112C1 KHUDAWADI LETTER CHA
+112C2 KHUDAWADI LETTER JA
+112C3 KHUDAWADI LETTER JJA
+112C4 KHUDAWADI LETTER JHA
+112C5 KHUDAWADI LETTER NYA
+112C6 KHUDAWADI LETTER TTA
+112C7 KHUDAWADI LETTER TTHA
+112C8 KHUDAWADI LETTER DDA
+112C9 KHUDAWADI LETTER DDDA
+112CA KHUDAWADI LETTER RRA
+112CB KHUDAWADI LETTER DDHA
+112CC KHUDAWADI LETTER NNA
+112CD KHUDAWADI LETTER TA
+112CE KHUDAWADI LETTER THA
+112CF KHUDAWADI LETTER DA
+112D0 KHUDAWADI LETTER DHA
+112D1 KHUDAWADI LETTER NA
+112D2 KHUDAWADI LETTER PA
+112D3 KHUDAWADI LETTER PHA
+112D4 KHUDAWADI LETTER BA
+112D5 KHUDAWADI LETTER BBA
+112D6 KHUDAWADI LETTER BHA
+112D7 KHUDAWADI LETTER MA
+112D8 KHUDAWADI LETTER YA
+112D9 KHUDAWADI LETTER RA
+112DA KHUDAWADI LETTER LA
+112DB KHUDAWADI LETTER VA
+112DC KHUDAWADI LETTER SHA
+112DD KHUDAWADI LETTER SA
+112DE KHUDAWADI LETTER HA
+112DF KHUDAWADI SIGN ANUSVARA
+112E0 KHUDAWADI VOWEL SIGN AA
+112E1 KHUDAWADI VOWEL SIGN I
+112E2 KHUDAWADI VOWEL SIGN II
+112E3 KHUDAWADI VOWEL SIGN U
+112E4 KHUDAWADI VOWEL SIGN UU
+112E5 KHUDAWADI VOWEL SIGN E
+112E6 KHUDAWADI VOWEL SIGN AI
+112E7 KHUDAWADI VOWEL SIGN O
+112E8 KHUDAWADI VOWEL SIGN AU
+112E9 KHUDAWADI SIGN NUKTA
+112EA KHUDAWADI SIGN VIRAMA
+112F0 KHUDAWADI DIGIT ZERO
+112F1 KHUDAWADI DIGIT ONE
+112F2 KHUDAWADI DIGIT TWO
+112F3 KHUDAWADI DIGIT THREE
+112F4 KHUDAWADI DIGIT FOUR
+112F5 KHUDAWADI DIGIT FIVE
+112F6 KHUDAWADI DIGIT SIX
+112F7 KHUDAWADI DIGIT SEVEN
+112F8 KHUDAWADI DIGIT EIGHT
+112F9 KHUDAWADI DIGIT NINE
+11301 GRANTHA SIGN CANDRABINDU
+11302 GRANTHA SIGN ANUSVARA
+11303 GRANTHA SIGN VISARGA
+11305 GRANTHA LETTER A
+11306 GRANTHA LETTER AA
+11307 GRANTHA LETTER I
+11308 GRANTHA LETTER II
+11309 GRANTHA LETTER U
+1130A GRANTHA LETTER UU
+1130B GRANTHA LETTER VOCALIC R
+1130C GRANTHA LETTER VOCALIC L
+1130F GRANTHA LETTER EE
+11310 GRANTHA LETTER AI
+11313 GRANTHA LETTER OO
+11314 GRANTHA LETTER AU
+11315 GRANTHA LETTER KA
+11316 GRANTHA LETTER KHA
+11317 GRANTHA LETTER GA
+11318 GRANTHA LETTER GHA
+11319 GRANTHA LETTER NGA
+1131A GRANTHA LETTER CA
+1131B GRANTHA LETTER CHA
+1131C GRANTHA LETTER JA
+1131D GRANTHA LETTER JHA
+1131E GRANTHA LETTER NYA
+1131F GRANTHA LETTER TTA
+11320 GRANTHA LETTER TTHA
+11321 GRANTHA LETTER DDA
+11322 GRANTHA LETTER DDHA
+11323 GRANTHA LETTER NNA
+11324 GRANTHA LETTER TA
+11325 GRANTHA LETTER THA
+11326 GRANTHA LETTER DA
+11327 GRANTHA LETTER DHA
+11328 GRANTHA LETTER NA
+1132A GRANTHA LETTER PA
+1132B GRANTHA LETTER PHA
+1132C GRANTHA LETTER BA
+1132D GRANTHA LETTER BHA
+1132E GRANTHA LETTER MA
+1132F GRANTHA LETTER YA
+11330 GRANTHA LETTER RA
+11332 GRANTHA LETTER LA
+11333 GRANTHA LETTER LLA
+11335 GRANTHA LETTER VA
+11336 GRANTHA LETTER SHA
+11337 GRANTHA LETTER SSA
+11338 GRANTHA LETTER SA
+11339 GRANTHA LETTER HA
+1133C GRANTHA SIGN NUKTA
+1133D GRANTHA SIGN AVAGRAHA
+1133E GRANTHA VOWEL SIGN AA
+1133F GRANTHA VOWEL SIGN I
+11340 GRANTHA VOWEL SIGN II
+11341 GRANTHA VOWEL SIGN U
+11342 GRANTHA VOWEL SIGN UU
+11343 GRANTHA VOWEL SIGN VOCALIC R
+11344 GRANTHA VOWEL SIGN VOCALIC RR
+11347 GRANTHA VOWEL SIGN EE
+11348 GRANTHA VOWEL SIGN AI
+1134B GRANTHA VOWEL SIGN OO
+1134C GRANTHA VOWEL SIGN AU
+1134D GRANTHA SIGN VIRAMA
+11357 GRANTHA AU LENGTH MARK
+1135D GRANTHA SIGN PLUTA
+1135E GRANTHA LETTER VEDIC ANUSVARA
+1135F GRANTHA LETTER VEDIC DOUBLE ANUSVARA
+11360 GRANTHA LETTER VOCALIC RR
+11361 GRANTHA LETTER VOCALIC LL
+11362 GRANTHA VOWEL SIGN VOCALIC L
+11363 GRANTHA VOWEL SIGN VOCALIC LL
+11366 COMBINING GRANTHA DIGIT ZERO
+11367 COMBINING GRANTHA DIGIT ONE
+11368 COMBINING GRANTHA DIGIT TWO
+11369 COMBINING GRANTHA DIGIT THREE
+1136A COMBINING GRANTHA DIGIT FOUR
+1136B COMBINING GRANTHA DIGIT FIVE
+1136C COMBINING GRANTHA DIGIT SIX
+11370 COMBINING GRANTHA LETTER A
+11371 COMBINING GRANTHA LETTER KA
+11372 COMBINING GRANTHA LETTER NA
+11373 COMBINING GRANTHA LETTER VI
+11374 COMBINING GRANTHA LETTER PA
+11480 TIRHUTA ANJI
+11481 TIRHUTA LETTER A
+11482 TIRHUTA LETTER AA
+11483 TIRHUTA LETTER I
+11484 TIRHUTA LETTER II
+11485 TIRHUTA LETTER U
+11486 TIRHUTA LETTER UU
+11487 TIRHUTA LETTER VOCALIC R
+11488 TIRHUTA LETTER VOCALIC RR
+11489 TIRHUTA LETTER VOCALIC L
+1148A TIRHUTA LETTER VOCALIC LL
+1148B TIRHUTA LETTER E
+1148C TIRHUTA LETTER AI
+1148D TIRHUTA LETTER O
+1148E TIRHUTA LETTER AU
+1148F TIRHUTA LETTER KA
+11490 TIRHUTA LETTER KHA
+11491 TIRHUTA LETTER GA
+11492 TIRHUTA LETTER GHA
+11493 TIRHUTA LETTER NGA
+11494 TIRHUTA LETTER CA
+11495 TIRHUTA LETTER CHA
+11496 TIRHUTA LETTER JA
+11497 TIRHUTA LETTER JHA
+11498 TIRHUTA LETTER NYA
+11499 TIRHUTA LETTER TTA
+1149A TIRHUTA LETTER TTHA
+1149B TIRHUTA LETTER DDA
+1149C TIRHUTA LETTER DDHA
+1149D TIRHUTA LETTER NNA
+1149E TIRHUTA LETTER TA
+1149F TIRHUTA LETTER THA
+114A0 TIRHUTA LETTER DA
+114A1 TIRHUTA LETTER DHA
+114A2 TIRHUTA LETTER NA
+114A3 TIRHUTA LETTER PA
+114A4 TIRHUTA LETTER PHA
+114A5 TIRHUTA LETTER BA
+114A6 TIRHUTA LETTER BHA
+114A7 TIRHUTA LETTER MA
+114A8 TIRHUTA LETTER YA
+114A9 TIRHUTA LETTER RA
+114AA TIRHUTA LETTER LA
+114AB TIRHUTA LETTER VA
+114AC TIRHUTA LETTER SHA
+114AD TIRHUTA LETTER SSA
+114AE TIRHUTA LETTER SA
+114AF TIRHUTA LETTER HA
+114B0 TIRHUTA VOWEL SIGN AA
+114B1 TIRHUTA VOWEL SIGN I
+114B2 TIRHUTA VOWEL SIGN II
+114B3 TIRHUTA VOWEL SIGN U
+114B4 TIRHUTA VOWEL SIGN UU
+114B5 TIRHUTA VOWEL SIGN VOCALIC R
+114B6 TIRHUTA VOWEL SIGN VOCALIC RR
+114B7 TIRHUTA VOWEL SIGN VOCALIC L
+114B8 TIRHUTA VOWEL SIGN VOCALIC LL
+114B9 TIRHUTA VOWEL SIGN E
+114BA TIRHUTA VOWEL SIGN SHORT E
+114BB TIRHUTA VOWEL SIGN AI
+114BC TIRHUTA VOWEL SIGN O
+114BD TIRHUTA VOWEL SIGN SHORT O
+114BE TIRHUTA VOWEL SIGN AU
+114BF TIRHUTA SIGN CANDRABINDU
+114C0 TIRHUTA SIGN ANUSVARA
+114C1 TIRHUTA SIGN VISARGA
+114C2 TIRHUTA SIGN VIRAMA
+114C3 TIRHUTA SIGN NUKTA
+114C4 TIRHUTA SIGN AVAGRAHA
+114C5 TIRHUTA GVANG
+114C6 TIRHUTA ABBREVIATION SIGN
+114C7 TIRHUTA OM
+114D0 TIRHUTA DIGIT ZERO
+114D1 TIRHUTA DIGIT ONE
+114D2 TIRHUTA DIGIT TWO
+114D3 TIRHUTA DIGIT THREE
+114D4 TIRHUTA DIGIT FOUR
+114D5 TIRHUTA DIGIT FIVE
+114D6 TIRHUTA DIGIT SIX
+114D7 TIRHUTA DIGIT SEVEN
+114D8 TIRHUTA DIGIT EIGHT
+114D9 TIRHUTA DIGIT NINE
+11580 SIDDHAM LETTER A
+11581 SIDDHAM LETTER AA
+11582 SIDDHAM LETTER I
+11583 SIDDHAM LETTER II
+11584 SIDDHAM LETTER U
+11585 SIDDHAM LETTER UU
+11586 SIDDHAM LETTER VOCALIC R
+11587 SIDDHAM LETTER VOCALIC RR
+11588 SIDDHAM LETTER VOCALIC L
+11589 SIDDHAM LETTER VOCALIC LL
+1158A SIDDHAM LETTER E
+1158B SIDDHAM LETTER AI
+1158C SIDDHAM LETTER O
+1158D SIDDHAM LETTER AU
+1158E SIDDHAM LETTER KA
+1158F SIDDHAM LETTER KHA
+11590 SIDDHAM LETTER GA
+11591 SIDDHAM LETTER GHA
+11592 SIDDHAM LETTER NGA
+11593 SIDDHAM LETTER CA
+11594 SIDDHAM LETTER CHA
+11595 SIDDHAM LETTER JA
+11596 SIDDHAM LETTER JHA
+11597 SIDDHAM LETTER NYA
+11598 SIDDHAM LETTER TTA
+11599 SIDDHAM LETTER TTHA
+1159A SIDDHAM LETTER DDA
+1159B SIDDHAM LETTER DDHA
+1159C SIDDHAM LETTER NNA
+1159D SIDDHAM LETTER TA
+1159E SIDDHAM LETTER THA
+1159F SIDDHAM LETTER DA
+115A0 SIDDHAM LETTER DHA
+115A1 SIDDHAM LETTER NA
+115A2 SIDDHAM LETTER PA
+115A3 SIDDHAM LETTER PHA
+115A4 SIDDHAM LETTER BA
+115A5 SIDDHAM LETTER BHA
+115A6 SIDDHAM LETTER MA
+115A7 SIDDHAM LETTER YA
+115A8 SIDDHAM LETTER RA
+115A9 SIDDHAM LETTER LA
+115AA SIDDHAM LETTER VA
+115AB SIDDHAM LETTER SHA
+115AC SIDDHAM LETTER SSA
+115AD SIDDHAM LETTER SA
+115AE SIDDHAM LETTER HA
+115AF SIDDHAM VOWEL SIGN AA
+115B0 SIDDHAM VOWEL SIGN I
+115B1 SIDDHAM VOWEL SIGN II
+115B2 SIDDHAM VOWEL SIGN U
+115B3 SIDDHAM VOWEL SIGN UU
+115B4 SIDDHAM VOWEL SIGN VOCALIC R
+115B5 SIDDHAM VOWEL SIGN VOCALIC RR
+115B8 SIDDHAM VOWEL SIGN E
+115B9 SIDDHAM VOWEL SIGN AI
+115BA SIDDHAM VOWEL SIGN O
+115BB SIDDHAM VOWEL SIGN AU
+115BC SIDDHAM SIGN CANDRABINDU
+115BD SIDDHAM SIGN ANUSVARA
+115BE SIDDHAM SIGN VISARGA
+115BF SIDDHAM SIGN VIRAMA
+115C0 SIDDHAM SIGN NUKTA
+115C1 SIDDHAM SIGN SIDDHAM
+115C2 SIDDHAM DANDA
+115C3 SIDDHAM DOUBLE DANDA
+115C4 SIDDHAM SEPARATOR DOT
+115C5 SIDDHAM SEPARATOR BAR
+115C6 SIDDHAM REPETITION MARK-1
+115C7 SIDDHAM REPETITION MARK-2
+115C8 SIDDHAM REPETITION MARK-3
+115C9 SIDDHAM END OF TEXT MARK
+11600 MODI LETTER A
+11601 MODI LETTER AA
+11602 MODI LETTER I
+11603 MODI LETTER II
+11604 MODI LETTER U
+11605 MODI LETTER UU
+11606 MODI LETTER VOCALIC R
+11607 MODI LETTER VOCALIC RR
+11608 MODI LETTER VOCALIC L
+11609 MODI LETTER VOCALIC LL
+1160A MODI LETTER E
+1160B MODI LETTER AI
+1160C MODI LETTER O
+1160D MODI LETTER AU
+1160E MODI LETTER KA
+1160F MODI LETTER KHA
+11610 MODI LETTER GA
+11611 MODI LETTER GHA
+11612 MODI LETTER NGA
+11613 MODI LETTER CA
+11614 MODI LETTER CHA
+11615 MODI LETTER JA
+11616 MODI LETTER JHA
+11617 MODI LETTER NYA
+11618 MODI LETTER TTA
+11619 MODI LETTER TTHA
+1161A MODI LETTER DDA
+1161B MODI LETTER DDHA
+1161C MODI LETTER NNA
+1161D MODI LETTER TA
+1161E MODI LETTER THA
+1161F MODI LETTER DA
+11620 MODI LETTER DHA
+11621 MODI LETTER NA
+11622 MODI LETTER PA
+11623 MODI LETTER PHA
+11624 MODI LETTER BA
+11625 MODI LETTER BHA
+11626 MODI LETTER MA
+11627 MODI LETTER YA
+11628 MODI LETTER RA
+11629 MODI LETTER LA
+1162A MODI LETTER VA
+1162B MODI LETTER SHA
+1162C MODI LETTER SSA
+1162D MODI LETTER SA
+1162E MODI LETTER HA
+1162F MODI LETTER LLA
+11630 MODI VOWEL SIGN AA
+11631 MODI VOWEL SIGN I
+11632 MODI VOWEL SIGN II
+11633 MODI VOWEL SIGN U
+11634 MODI VOWEL SIGN UU
+11635 MODI VOWEL SIGN VOCALIC R
+11636 MODI VOWEL SIGN VOCALIC RR
+11637 MODI VOWEL SIGN VOCALIC L
+11638 MODI VOWEL SIGN VOCALIC LL
+11639 MODI VOWEL SIGN E
+1163A MODI VOWEL SIGN AI
+1163B MODI VOWEL SIGN O
+1163C MODI VOWEL SIGN AU
+1163D MODI SIGN ANUSVARA
+1163E MODI SIGN VISARGA
+1163F MODI SIGN VIRAMA
+11640 MODI SIGN ARDHACANDRA
+11641 MODI DANDA
+11642 MODI DOUBLE DANDA
+11643 MODI ABBREVIATION SIGN
+11644 MODI SIGN HUVA
+11650 MODI DIGIT ZERO
+11651 MODI DIGIT ONE
+11652 MODI DIGIT TWO
+11653 MODI DIGIT THREE
+11654 MODI DIGIT FOUR
+11655 MODI DIGIT FIVE
+11656 MODI DIGIT SIX
+11657 MODI DIGIT SEVEN
+11658 MODI DIGIT EIGHT
+11659 MODI DIGIT NINE
11680 TAKRI LETTER A
11681 TAKRI LETTER AA
11682 TAKRI LETTER I
@@ -17459,6 +18987,147 @@ return <<'END';
116C7 TAKRI DIGIT SEVEN
116C8 TAKRI DIGIT EIGHT
116C9 TAKRI DIGIT NINE
+118A0 WARANG CITI CAPITAL LETTER NGAA
+118A1 WARANG CITI CAPITAL LETTER A
+118A2 WARANG CITI CAPITAL LETTER WI
+118A3 WARANG CITI CAPITAL LETTER YU
+118A4 WARANG CITI CAPITAL LETTER YA
+118A5 WARANG CITI CAPITAL LETTER YO
+118A6 WARANG CITI CAPITAL LETTER II
+118A7 WARANG CITI CAPITAL LETTER UU
+118A8 WARANG CITI CAPITAL LETTER E
+118A9 WARANG CITI CAPITAL LETTER O
+118AA WARANG CITI CAPITAL LETTER ANG
+118AB WARANG CITI CAPITAL LETTER GA
+118AC WARANG CITI CAPITAL LETTER KO
+118AD WARANG CITI CAPITAL LETTER ENY
+118AE WARANG CITI CAPITAL LETTER YUJ
+118AF WARANG CITI CAPITAL LETTER UC
+118B0 WARANG CITI CAPITAL LETTER ENN
+118B1 WARANG CITI CAPITAL LETTER ODD
+118B2 WARANG CITI CAPITAL LETTER TTE
+118B3 WARANG CITI CAPITAL LETTER NUNG
+118B4 WARANG CITI CAPITAL LETTER DA
+118B5 WARANG CITI CAPITAL LETTER AT
+118B6 WARANG CITI CAPITAL LETTER AM
+118B7 WARANG CITI CAPITAL LETTER BU
+118B8 WARANG CITI CAPITAL LETTER PU
+118B9 WARANG CITI CAPITAL LETTER HIYO
+118BA WARANG CITI CAPITAL LETTER HOLO
+118BB WARANG CITI CAPITAL LETTER HORR
+118BC WARANG CITI CAPITAL LETTER HAR
+118BD WARANG CITI CAPITAL LETTER SSUU
+118BE WARANG CITI CAPITAL LETTER SII
+118BF WARANG CITI CAPITAL LETTER VIYO
+118C0 WARANG CITI SMALL LETTER NGAA
+118C1 WARANG CITI SMALL LETTER A
+118C2 WARANG CITI SMALL LETTER WI
+118C3 WARANG CITI SMALL LETTER YU
+118C4 WARANG CITI SMALL LETTER YA
+118C5 WARANG CITI SMALL LETTER YO
+118C6 WARANG CITI SMALL LETTER II
+118C7 WARANG CITI SMALL LETTER UU
+118C8 WARANG CITI SMALL LETTER E
+118C9 WARANG CITI SMALL LETTER O
+118CA WARANG CITI SMALL LETTER ANG
+118CB WARANG CITI SMALL LETTER GA
+118CC WARANG CITI SMALL LETTER KO
+118CD WARANG CITI SMALL LETTER ENY
+118CE WARANG CITI SMALL LETTER YUJ
+118CF WARANG CITI SMALL LETTER UC
+118D0 WARANG CITI SMALL LETTER ENN
+118D1 WARANG CITI SMALL LETTER ODD
+118D2 WARANG CITI SMALL LETTER TTE
+118D3 WARANG CITI SMALL LETTER NUNG
+118D4 WARANG CITI SMALL LETTER DA
+118D5 WARANG CITI SMALL LETTER AT
+118D6 WARANG CITI SMALL LETTER AM
+118D7 WARANG CITI SMALL LETTER BU
+118D8 WARANG CITI SMALL LETTER PU
+118D9 WARANG CITI SMALL LETTER HIYO
+118DA WARANG CITI SMALL LETTER HOLO
+118DB WARANG CITI SMALL LETTER HORR
+118DC WARANG CITI SMALL LETTER HAR
+118DD WARANG CITI SMALL LETTER SSUU
+118DE WARANG CITI SMALL LETTER SII
+118DF WARANG CITI SMALL LETTER VIYO
+118E0 WARANG CITI DIGIT ZERO
+118E1 WARANG CITI DIGIT ONE
+118E2 WARANG CITI DIGIT TWO
+118E3 WARANG CITI DIGIT THREE
+118E4 WARANG CITI DIGIT FOUR
+118E5 WARANG CITI DIGIT FIVE
+118E6 WARANG CITI DIGIT SIX
+118E7 WARANG CITI DIGIT SEVEN
+118E8 WARANG CITI DIGIT EIGHT
+118E9 WARANG CITI DIGIT NINE
+118EA WARANG CITI NUMBER TEN
+118EB WARANG CITI NUMBER TWENTY
+118EC WARANG CITI NUMBER THIRTY
+118ED WARANG CITI NUMBER FORTY
+118EE WARANG CITI NUMBER FIFTY
+118EF WARANG CITI NUMBER SIXTY
+118F0 WARANG CITI NUMBER SEVENTY
+118F1 WARANG CITI NUMBER EIGHTY
+118F2 WARANG CITI NUMBER NINETY
+118FF WARANG CITI OM
+11AC0 PAU CIN HAU LETTER PA
+11AC1 PAU CIN HAU LETTER KA
+11AC2 PAU CIN HAU LETTER LA
+11AC3 PAU CIN HAU LETTER MA
+11AC4 PAU CIN HAU LETTER DA
+11AC5 PAU CIN HAU LETTER ZA
+11AC6 PAU CIN HAU LETTER VA
+11AC7 PAU CIN HAU LETTER NGA
+11AC8 PAU CIN HAU LETTER HA
+11AC9 PAU CIN HAU LETTER GA
+11ACA PAU CIN HAU LETTER KHA
+11ACB PAU CIN HAU LETTER SA
+11ACC PAU CIN HAU LETTER BA
+11ACD PAU CIN HAU LETTER CA
+11ACE PAU CIN HAU LETTER TA
+11ACF PAU CIN HAU LETTER THA
+11AD0 PAU CIN HAU LETTER NA
+11AD1 PAU CIN HAU LETTER PHA
+11AD2 PAU CIN HAU LETTER RA
+11AD3 PAU CIN HAU LETTER FA
+11AD4 PAU CIN HAU LETTER CHA
+11AD5 PAU CIN HAU LETTER A
+11AD6 PAU CIN HAU LETTER E
+11AD7 PAU CIN HAU LETTER I
+11AD8 PAU CIN HAU LETTER O
+11AD9 PAU CIN HAU LETTER U
+11ADA PAU CIN HAU LETTER UA
+11ADB PAU CIN HAU LETTER IA
+11ADC PAU CIN HAU LETTER FINAL P
+11ADD PAU CIN HAU LETTER FINAL K
+11ADE PAU CIN HAU LETTER FINAL T
+11ADF PAU CIN HAU LETTER FINAL M
+11AE0 PAU CIN HAU LETTER FINAL N
+11AE1 PAU CIN HAU LETTER FINAL L
+11AE2 PAU CIN HAU LETTER FINAL W
+11AE3 PAU CIN HAU LETTER FINAL NG
+11AE4 PAU CIN HAU LETTER FINAL Y
+11AE5 PAU CIN HAU RISING TONE LONG
+11AE6 PAU CIN HAU RISING TONE
+11AE7 PAU CIN HAU SANDHI GLOTTAL STOP
+11AE8 PAU CIN HAU RISING TONE LONG FINAL
+11AE9 PAU CIN HAU RISING TONE FINAL
+11AEA PAU CIN HAU SANDHI GLOTTAL STOP FINAL
+11AEB PAU CIN HAU SANDHI TONE LONG
+11AEC PAU CIN HAU SANDHI TONE
+11AED PAU CIN HAU SANDHI TONE LONG FINAL
+11AEE PAU CIN HAU SANDHI TONE FINAL
+11AEF PAU CIN HAU MID-LEVEL TONE
+11AF0 PAU CIN HAU GLOTTAL STOP VARIANT
+11AF1 PAU CIN HAU MID-LEVEL TONE LONG FINAL
+11AF2 PAU CIN HAU MID-LEVEL TONE FINAL
+11AF3 PAU CIN HAU LOW-FALLING TONE LONG
+11AF4 PAU CIN HAU LOW-FALLING TONE
+11AF5 PAU CIN HAU GLOTTAL STOP
+11AF6 PAU CIN HAU LOW-FALLING TONE LONG FINAL
+11AF7 PAU CIN HAU LOW-FALLING TONE FINAL
+11AF8 PAU CIN HAU GLOTTAL STOP FINAL
12000 CUNEIFORM SIGN A
12001 CUNEIFORM SIGN A TIMES A
12002 CUNEIFORM SIGN A TIMES BAD
@@ -18340,6 +20009,48 @@ return <<'END';
1236C CUNEIFORM SIGN ZU5 TIMES A
1236D CUNEIFORM SIGN ZUBUR
1236E CUNEIFORM SIGN ZUM
+1236F CUNEIFORM SIGN KAP ELAMITE
+12370 CUNEIFORM SIGN AB TIMES NUN
+12371 CUNEIFORM SIGN AB2 TIMES A
+12372 CUNEIFORM SIGN AMAR TIMES KUG
+12373 CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS MASH
+12374 CUNEIFORM SIGN DAG3
+12375 CUNEIFORM SIGN DISH PLUS SHU
+12376 CUNEIFORM SIGN DUB TIMES SHE
+12377 CUNEIFORM SIGN EZEN TIMES GUD
+12378 CUNEIFORM SIGN EZEN TIMES SHE
+12379 CUNEIFORM SIGN GA2 TIMES AN PLUS KAK PLUS A
+1237A CUNEIFORM SIGN GA2 TIMES ASH2
+1237B CUNEIFORM SIGN GE22
+1237C CUNEIFORM SIGN GIG
+1237D CUNEIFORM SIGN HUSH
+1237E CUNEIFORM SIGN KA TIMES ANSHE
+1237F CUNEIFORM SIGN KA TIMES ASH3
+12380 CUNEIFORM SIGN KA TIMES GISH
+12381 CUNEIFORM SIGN KA TIMES GUD
+12382 CUNEIFORM SIGN KA TIMES HI TIMES ASH2
+12383 CUNEIFORM SIGN KA TIMES LUM
+12384 CUNEIFORM SIGN KA TIMES PA
+12385 CUNEIFORM SIGN KA TIMES SHUL
+12386 CUNEIFORM SIGN KA TIMES TU
+12387 CUNEIFORM SIGN KA TIMES UR2
+12388 CUNEIFORM SIGN LAGAB TIMES GI
+12389 CUNEIFORM SIGN LU2 SHESHIG TIMES BAD
+1238A CUNEIFORM SIGN LU2 TIMES ESH2 PLUS LAL
+1238B CUNEIFORM SIGN LU2 TIMES SHU
+1238C CUNEIFORM SIGN MESH
+1238D CUNEIFORM SIGN MUSH3 TIMES ZA
+1238E CUNEIFORM SIGN NA4
+1238F CUNEIFORM SIGN NIN
+12390 CUNEIFORM SIGN NIN9
+12391 CUNEIFORM SIGN NINDA2 TIMES BAL
+12392 CUNEIFORM SIGN NINDA2 TIMES GI
+12393 CUNEIFORM SIGN NU11 ROTATED NINETY DEGREES
+12394 CUNEIFORM SIGN PESH2 ASTERISK
+12395 CUNEIFORM SIGN PIR2
+12396 CUNEIFORM SIGN SAG TIMES IGI GUNU
+12397 CUNEIFORM SIGN TI2
+12398 CUNEIFORM SIGN UM TIMES ME
12400 CUNEIFORM NUMERIC SIGN TWO ASH
12401 CUNEIFORM NUMERIC SIGN THREE ASH
12402 CUNEIFORM NUMERIC SIGN FOUR ASH
@@ -18439,10 +20150,23 @@ return <<'END';
12460 CUNEIFORM NUMERIC SIGN ONE QUARTER ASH
12461 CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH
12462 CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+12463 CUNEIFORM NUMERIC SIGN ONE QUARTER GUR
+12464 CUNEIFORM NUMERIC SIGN ONE HALF GUR
+12465 CUNEIFORM NUMERIC SIGN ELAMITE ONE THIRD
+12466 CUNEIFORM NUMERIC SIGN ELAMITE TWO THIRDS
+12467 CUNEIFORM NUMERIC SIGN ELAMITE FORTY
+12468 CUNEIFORM NUMERIC SIGN ELAMITE FIFTY
+12469 CUNEIFORM NUMERIC SIGN FOUR U VARIANT FORM
+1246A CUNEIFORM NUMERIC SIGN FIVE U VARIANT FORM
+1246B CUNEIFORM NUMERIC SIGN SIX U VARIANT FORM
+1246C CUNEIFORM NUMERIC SIGN SEVEN U VARIANT FORM
+1246D CUNEIFORM NUMERIC SIGN EIGHT U VARIANT FORM
+1246E CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
12470 CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER
12471 CUNEIFORM PUNCTUATION SIGN VERTICAL COLON
12472 CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON
12473 CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+12474 CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
13000 EGYPTIAN HIEROGLYPH A001
13001 EGYPTIAN HIEROGLYPH A002
13002 EGYPTIAN HIEROGLYPH A003
@@ -20083,6 +21807,212 @@ return <<'END';
16A36 BAMUM LETTER PHASE-F KPA
16A37 BAMUM LETTER PHASE-F SAMBA
16A38 BAMUM LETTER PHASE-F VUEQ
+16A40 MRO LETTER TA
+16A41 MRO LETTER NGI
+16A42 MRO LETTER YO
+16A43 MRO LETTER MIM
+16A44 MRO LETTER BA
+16A45 MRO LETTER DA
+16A46 MRO LETTER A
+16A47 MRO LETTER PHI
+16A48 MRO LETTER KHAI
+16A49 MRO LETTER HAO
+16A4A MRO LETTER DAI
+16A4B MRO LETTER CHU
+16A4C MRO LETTER KEAAE
+16A4D MRO LETTER OL
+16A4E MRO LETTER MAEM
+16A4F MRO LETTER NIN
+16A50 MRO LETTER PA
+16A51 MRO LETTER OO
+16A52 MRO LETTER O
+16A53 MRO LETTER RO
+16A54 MRO LETTER SHI
+16A55 MRO LETTER THEA
+16A56 MRO LETTER EA
+16A57 MRO LETTER WA
+16A58 MRO LETTER E
+16A59 MRO LETTER KO
+16A5A MRO LETTER LAN
+16A5B MRO LETTER LA
+16A5C MRO LETTER HAI
+16A5D MRO LETTER RI
+16A5E MRO LETTER TEK
+16A60 MRO DIGIT ZERO
+16A61 MRO DIGIT ONE
+16A62 MRO DIGIT TWO
+16A63 MRO DIGIT THREE
+16A64 MRO DIGIT FOUR
+16A65 MRO DIGIT FIVE
+16A66 MRO DIGIT SIX
+16A67 MRO DIGIT SEVEN
+16A68 MRO DIGIT EIGHT
+16A69 MRO DIGIT NINE
+16A6E MRO DANDA
+16A6F MRO DOUBLE DANDA
+16AD0 BASSA VAH LETTER ENNI
+16AD1 BASSA VAH LETTER KA
+16AD2 BASSA VAH LETTER SE
+16AD3 BASSA VAH LETTER FA
+16AD4 BASSA VAH LETTER MBE
+16AD5 BASSA VAH LETTER YIE
+16AD6 BASSA VAH LETTER GAH
+16AD7 BASSA VAH LETTER DHII
+16AD8 BASSA VAH LETTER KPAH
+16AD9 BASSA VAH LETTER JO
+16ADA BASSA VAH LETTER HWAH
+16ADB BASSA VAH LETTER WA
+16ADC BASSA VAH LETTER ZO
+16ADD BASSA VAH LETTER GBU
+16ADE BASSA VAH LETTER DO
+16ADF BASSA VAH LETTER CE
+16AE0 BASSA VAH LETTER UWU
+16AE1 BASSA VAH LETTER TO
+16AE2 BASSA VAH LETTER BA
+16AE3 BASSA VAH LETTER VU
+16AE4 BASSA VAH LETTER YEIN
+16AE5 BASSA VAH LETTER PA
+16AE6 BASSA VAH LETTER WADDA
+16AE7 BASSA VAH LETTER A
+16AE8 BASSA VAH LETTER O
+16AE9 BASSA VAH LETTER OO
+16AEA BASSA VAH LETTER U
+16AEB BASSA VAH LETTER EE
+16AEC BASSA VAH LETTER E
+16AED BASSA VAH LETTER I
+16AF0 BASSA VAH COMBINING HIGH TONE
+16AF1 BASSA VAH COMBINING LOW TONE
+16AF2 BASSA VAH COMBINING MID TONE
+16AF3 BASSA VAH COMBINING LOW-MID TONE
+16AF4 BASSA VAH COMBINING HIGH-LOW TONE
+16AF5 BASSA VAH FULL STOP
+16B00 PAHAWH HMONG VOWEL KEEB
+16B01 PAHAWH HMONG VOWEL KEEV
+16B02 PAHAWH HMONG VOWEL KIB
+16B03 PAHAWH HMONG VOWEL KIV
+16B04 PAHAWH HMONG VOWEL KAUB
+16B05 PAHAWH HMONG VOWEL KAUV
+16B06 PAHAWH HMONG VOWEL KUB
+16B07 PAHAWH HMONG VOWEL KUV
+16B08 PAHAWH HMONG VOWEL KEB
+16B09 PAHAWH HMONG VOWEL KEV
+16B0A PAHAWH HMONG VOWEL KAIB
+16B0B PAHAWH HMONG VOWEL KAIV
+16B0C PAHAWH HMONG VOWEL KOOB
+16B0D PAHAWH HMONG VOWEL KOOV
+16B0E PAHAWH HMONG VOWEL KAWB
+16B0F PAHAWH HMONG VOWEL KAWV
+16B10 PAHAWH HMONG VOWEL KUAB
+16B11 PAHAWH HMONG VOWEL KUAV
+16B12 PAHAWH HMONG VOWEL KOB
+16B13 PAHAWH HMONG VOWEL KOV
+16B14 PAHAWH HMONG VOWEL KIAB
+16B15 PAHAWH HMONG VOWEL KIAV
+16B16 PAHAWH HMONG VOWEL KAB
+16B17 PAHAWH HMONG VOWEL KAV
+16B18 PAHAWH HMONG VOWEL KWB
+16B19 PAHAWH HMONG VOWEL KWV
+16B1A PAHAWH HMONG VOWEL KAAB
+16B1B PAHAWH HMONG VOWEL KAAV
+16B1C PAHAWH HMONG CONSONANT VAU
+16B1D PAHAWH HMONG CONSONANT NTSAU
+16B1E PAHAWH HMONG CONSONANT LAU
+16B1F PAHAWH HMONG CONSONANT HAU
+16B20 PAHAWH HMONG CONSONANT NLAU
+16B21 PAHAWH HMONG CONSONANT RAU
+16B22 PAHAWH HMONG CONSONANT NKAU
+16B23 PAHAWH HMONG CONSONANT QHAU
+16B24 PAHAWH HMONG CONSONANT YAU
+16B25 PAHAWH HMONG CONSONANT HLAU
+16B26 PAHAWH HMONG CONSONANT MAU
+16B27 PAHAWH HMONG CONSONANT CHAU
+16B28 PAHAWH HMONG CONSONANT NCHAU
+16B29 PAHAWH HMONG CONSONANT HNAU
+16B2A PAHAWH HMONG CONSONANT PLHAU
+16B2B PAHAWH HMONG CONSONANT NTHAU
+16B2C PAHAWH HMONG CONSONANT NAU
+16B2D PAHAWH HMONG CONSONANT AU
+16B2E PAHAWH HMONG CONSONANT XAU
+16B2F PAHAWH HMONG CONSONANT CAU
+16B30 PAHAWH HMONG MARK CIM TUB
+16B31 PAHAWH HMONG MARK CIM SO
+16B32 PAHAWH HMONG MARK CIM KES
+16B33 PAHAWH HMONG MARK CIM KHAV
+16B34 PAHAWH HMONG MARK CIM SUAM
+16B35 PAHAWH HMONG MARK CIM HOM
+16B36 PAHAWH HMONG MARK CIM TAUM
+16B37 PAHAWH HMONG SIGN VOS THOM
+16B38 PAHAWH HMONG SIGN VOS TSHAB CEEB
+16B39 PAHAWH HMONG SIGN CIM CHEEM
+16B3A PAHAWH HMONG SIGN VOS THIAB
+16B3B PAHAWH HMONG SIGN VOS FEEM
+16B3C PAHAWH HMONG SIGN XYEEM NTXIV
+16B3D PAHAWH HMONG SIGN XYEEM RHO
+16B3E PAHAWH HMONG SIGN XYEEM TOV
+16B3F PAHAWH HMONG SIGN XYEEM FAIB
+16B40 PAHAWH HMONG SIGN VOS SEEV
+16B41 PAHAWH HMONG SIGN MEEJ SUAB
+16B42 PAHAWH HMONG SIGN VOS NRUA
+16B43 PAHAWH HMONG SIGN IB YAM
+16B44 PAHAWH HMONG SIGN XAUS
+16B45 PAHAWH HMONG SIGN CIM TSOV ROG
+16B50 PAHAWH HMONG DIGIT ZERO
+16B51 PAHAWH HMONG DIGIT ONE
+16B52 PAHAWH HMONG DIGIT TWO
+16B53 PAHAWH HMONG DIGIT THREE
+16B54 PAHAWH HMONG DIGIT FOUR
+16B55 PAHAWH HMONG DIGIT FIVE
+16B56 PAHAWH HMONG DIGIT SIX
+16B57 PAHAWH HMONG DIGIT SEVEN
+16B58 PAHAWH HMONG DIGIT EIGHT
+16B59 PAHAWH HMONG DIGIT NINE
+16B5B PAHAWH HMONG NUMBER TENS
+16B5C PAHAWH HMONG NUMBER HUNDREDS
+16B5D PAHAWH HMONG NUMBER TEN THOUSANDS
+16B5E PAHAWH HMONG NUMBER MILLIONS
+16B5F PAHAWH HMONG NUMBER HUNDRED MILLIONS
+16B60 PAHAWH HMONG NUMBER TEN BILLIONS
+16B61 PAHAWH HMONG NUMBER TRILLIONS
+16B63 PAHAWH HMONG SIGN VOS LUB
+16B64 PAHAWH HMONG SIGN XYOO
+16B65 PAHAWH HMONG SIGN HLI
+16B66 PAHAWH HMONG SIGN THIRD-STAGE HLI
+16B67 PAHAWH HMONG SIGN ZWJ THAJ
+16B68 PAHAWH HMONG SIGN HNUB
+16B69 PAHAWH HMONG SIGN NQIG
+16B6A PAHAWH HMONG SIGN XIAB
+16B6B PAHAWH HMONG SIGN NTUJ
+16B6C PAHAWH HMONG SIGN AV
+16B6D PAHAWH HMONG SIGN TXHEEJ CEEV
+16B6E PAHAWH HMONG SIGN MEEJ TSEEB
+16B6F PAHAWH HMONG SIGN TAU
+16B70 PAHAWH HMONG SIGN LOS
+16B71 PAHAWH HMONG SIGN MUS
+16B72 PAHAWH HMONG SIGN CIM HAIS LUS NTOG NTOG
+16B73 PAHAWH HMONG SIGN CIM CUAM TSHOOJ
+16B74 PAHAWH HMONG SIGN CIM TXWV
+16B75 PAHAWH HMONG SIGN CIM TXWV CHWV
+16B76 PAHAWH HMONG SIGN CIM PUB DAWB
+16B77 PAHAWH HMONG SIGN CIM NRES TOS
+16B7D PAHAWH HMONG CLAN SIGN TSHEEJ
+16B7E PAHAWH HMONG CLAN SIGN YEEG
+16B7F PAHAWH HMONG CLAN SIGN LIS
+16B80 PAHAWH HMONG CLAN SIGN LAUJ
+16B81 PAHAWH HMONG CLAN SIGN XYOOJ
+16B82 PAHAWH HMONG CLAN SIGN KOO
+16B83 PAHAWH HMONG CLAN SIGN HAWJ
+16B84 PAHAWH HMONG CLAN SIGN MUAS
+16B85 PAHAWH HMONG CLAN SIGN THOJ
+16B86 PAHAWH HMONG CLAN SIGN TSAB
+16B87 PAHAWH HMONG CLAN SIGN PHAB
+16B88 PAHAWH HMONG CLAN SIGN KHAB
+16B89 PAHAWH HMONG CLAN SIGN HAM
+16B8A PAHAWH HMONG CLAN SIGN VAJ
+16B8B PAHAWH HMONG CLAN SIGN FAJ
+16B8C PAHAWH HMONG CLAN SIGN YAJ
+16B8D PAHAWH HMONG CLAN SIGN TSWB
+16B8E PAHAWH HMONG CLAN SIGN KWM
+16B8F PAHAWH HMONG CLAN SIGN VWJ
16F00 MIAO LETTER PA
16F01 MIAO LETTER BA
16F02 MIAO LETTER YI PA
@@ -20218,6 +22148,153 @@ return <<'END';
16F9F MIAO LETTER REFORMED TONE-8
1B000 KATAKANA LETTER ARCHAIC E
1B001 HIRAGANA LETTER ARCHAIC YE
+1BC00 DUPLOYAN LETTER H
+1BC01 DUPLOYAN LETTER X
+1BC02 DUPLOYAN LETTER P
+1BC03 DUPLOYAN LETTER T
+1BC04 DUPLOYAN LETTER F
+1BC05 DUPLOYAN LETTER K
+1BC06 DUPLOYAN LETTER L
+1BC07 DUPLOYAN LETTER B
+1BC08 DUPLOYAN LETTER D
+1BC09 DUPLOYAN LETTER V
+1BC0A DUPLOYAN LETTER G
+1BC0B DUPLOYAN LETTER R
+1BC0C DUPLOYAN LETTER P N
+1BC0D DUPLOYAN LETTER D S
+1BC0E DUPLOYAN LETTER F N
+1BC0F DUPLOYAN LETTER K M
+1BC10 DUPLOYAN LETTER R S
+1BC11 DUPLOYAN LETTER TH
+1BC12 DUPLOYAN LETTER SLOAN DH
+1BC13 DUPLOYAN LETTER DH
+1BC14 DUPLOYAN LETTER KK
+1BC15 DUPLOYAN LETTER SLOAN J
+1BC16 DUPLOYAN LETTER HL
+1BC17 DUPLOYAN LETTER LH
+1BC18 DUPLOYAN LETTER RH
+1BC19 DUPLOYAN LETTER M
+1BC1A DUPLOYAN LETTER N
+1BC1B DUPLOYAN LETTER J
+1BC1C DUPLOYAN LETTER S
+1BC1D DUPLOYAN LETTER M N
+1BC1E DUPLOYAN LETTER N M
+1BC1F DUPLOYAN LETTER J M
+1BC20 DUPLOYAN LETTER S J
+1BC21 DUPLOYAN LETTER M WITH DOT
+1BC22 DUPLOYAN LETTER N WITH DOT
+1BC23 DUPLOYAN LETTER J WITH DOT
+1BC24 DUPLOYAN LETTER J WITH DOTS INSIDE AND ABOVE
+1BC25 DUPLOYAN LETTER S WITH DOT
+1BC26 DUPLOYAN LETTER S WITH DOT BELOW
+1BC27 DUPLOYAN LETTER M S
+1BC28 DUPLOYAN LETTER N S
+1BC29 DUPLOYAN LETTER J S
+1BC2A DUPLOYAN LETTER S S
+1BC2B DUPLOYAN LETTER M N S
+1BC2C DUPLOYAN LETTER N M S
+1BC2D DUPLOYAN LETTER J M S
+1BC2E DUPLOYAN LETTER S J S
+1BC2F DUPLOYAN LETTER J S WITH DOT
+1BC30 DUPLOYAN LETTER J N
+1BC31 DUPLOYAN LETTER J N S
+1BC32 DUPLOYAN LETTER S T
+1BC33 DUPLOYAN LETTER S T R
+1BC34 DUPLOYAN LETTER S P
+1BC35 DUPLOYAN LETTER S P R
+1BC36 DUPLOYAN LETTER T S
+1BC37 DUPLOYAN LETTER T R S
+1BC38 DUPLOYAN LETTER W
+1BC39 DUPLOYAN LETTER WH
+1BC3A DUPLOYAN LETTER W R
+1BC3B DUPLOYAN LETTER S N
+1BC3C DUPLOYAN LETTER S M
+1BC3D DUPLOYAN LETTER K R S
+1BC3E DUPLOYAN LETTER G R S
+1BC3F DUPLOYAN LETTER S K
+1BC40 DUPLOYAN LETTER S K R
+1BC41 DUPLOYAN LETTER A
+1BC42 DUPLOYAN LETTER SLOAN OW
+1BC43 DUPLOYAN LETTER OA
+1BC44 DUPLOYAN LETTER O
+1BC45 DUPLOYAN LETTER AOU
+1BC46 DUPLOYAN LETTER I
+1BC47 DUPLOYAN LETTER E
+1BC48 DUPLOYAN LETTER IE
+1BC49 DUPLOYAN LETTER SHORT I
+1BC4A DUPLOYAN LETTER UI
+1BC4B DUPLOYAN LETTER EE
+1BC4C DUPLOYAN LETTER SLOAN EH
+1BC4D DUPLOYAN LETTER ROMANIAN I
+1BC4E DUPLOYAN LETTER SLOAN EE
+1BC4F DUPLOYAN LETTER LONG I
+1BC50 DUPLOYAN LETTER YE
+1BC51 DUPLOYAN LETTER U
+1BC52 DUPLOYAN LETTER EU
+1BC53 DUPLOYAN LETTER XW
+1BC54 DUPLOYAN LETTER U N
+1BC55 DUPLOYAN LETTER LONG U
+1BC56 DUPLOYAN LETTER ROMANIAN U
+1BC57 DUPLOYAN LETTER UH
+1BC58 DUPLOYAN LETTER SLOAN U
+1BC59 DUPLOYAN LETTER OOH
+1BC5A DUPLOYAN LETTER OW
+1BC5B DUPLOYAN LETTER OU
+1BC5C DUPLOYAN LETTER WA
+1BC5D DUPLOYAN LETTER WO
+1BC5E DUPLOYAN LETTER WI
+1BC5F DUPLOYAN LETTER WEI
+1BC60 DUPLOYAN LETTER WOW
+1BC61 DUPLOYAN LETTER NASAL U
+1BC62 DUPLOYAN LETTER NASAL O
+1BC63 DUPLOYAN LETTER NASAL I
+1BC64 DUPLOYAN LETTER NASAL A
+1BC65 DUPLOYAN LETTER PERNIN AN
+1BC66 DUPLOYAN LETTER PERNIN AM
+1BC67 DUPLOYAN LETTER SLOAN EN
+1BC68 DUPLOYAN LETTER SLOAN AN
+1BC69 DUPLOYAN LETTER SLOAN ON
+1BC6A DUPLOYAN LETTER VOCALIC M
+1BC70 DUPLOYAN AFFIX LEFT HORIZONTAL SECANT
+1BC71 DUPLOYAN AFFIX MID HORIZONTAL SECANT
+1BC72 DUPLOYAN AFFIX RIGHT HORIZONTAL SECANT
+1BC73 DUPLOYAN AFFIX LOW VERTICAL SECANT
+1BC74 DUPLOYAN AFFIX MID VERTICAL SECANT
+1BC75 DUPLOYAN AFFIX HIGH VERTICAL SECANT
+1BC76 DUPLOYAN AFFIX ATTACHED SECANT
+1BC77 DUPLOYAN AFFIX ATTACHED LEFT-TO-RIGHT SECANT
+1BC78 DUPLOYAN AFFIX ATTACHED TANGENT
+1BC79 DUPLOYAN AFFIX ATTACHED TAIL
+1BC7A DUPLOYAN AFFIX ATTACHED E HOOK
+1BC7B DUPLOYAN AFFIX ATTACHED I HOOK
+1BC7C DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80 DUPLOYAN AFFIX HIGH ACUTE
+1BC81 DUPLOYAN AFFIX HIGH TIGHT ACUTE
+1BC82 DUPLOYAN AFFIX HIGH GRAVE
+1BC83 DUPLOYAN AFFIX HIGH LONG GRAVE
+1BC84 DUPLOYAN AFFIX HIGH DOT
+1BC85 DUPLOYAN AFFIX HIGH CIRCLE
+1BC86 DUPLOYAN AFFIX HIGH LINE
+1BC87 DUPLOYAN AFFIX HIGH WAVE
+1BC88 DUPLOYAN AFFIX HIGH VERTICAL
+1BC90 DUPLOYAN AFFIX LOW ACUTE
+1BC91 DUPLOYAN AFFIX LOW TIGHT ACUTE
+1BC92 DUPLOYAN AFFIX LOW GRAVE
+1BC93 DUPLOYAN AFFIX LOW LONG GRAVE
+1BC94 DUPLOYAN AFFIX LOW DOT
+1BC95 DUPLOYAN AFFIX LOW CIRCLE
+1BC96 DUPLOYAN AFFIX LOW LINE
+1BC97 DUPLOYAN AFFIX LOW WAVE
+1BC98 DUPLOYAN AFFIX LOW VERTICAL
+1BC99 DUPLOYAN AFFIX LOW ARROW
+1BC9C DUPLOYAN SIGN O WITH CROSS
+1BC9D DUPLOYAN THICK LETTER SELECTOR
+1BC9E DUPLOYAN DOUBLE MARK
+1BC9F DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+1BCA0 SHORTHAND FORMAT LETTER OVERLAP
+1BCA1 SHORTHAND FORMAT CONTINUING OVERLAP
+1BCA2 SHORTHAND FORMAT DOWN STEP
+1BCA3 SHORTHAND FORMAT UP STEP
1D000 BYZANTINE MUSICAL SYMBOL PSILI
1D001 BYZANTINE MUSICAL SYMBOL DASEIA
1D002 BYZANTINE MUSICAL SYMBOL PERISPOMENI
@@ -21856,6 +23933,219 @@ return <<'END';
1D7FD MATHEMATICAL MONOSPACE DIGIT SEVEN
1D7FE MATHEMATICAL MONOSPACE DIGIT EIGHT
1D7FF MATHEMATICAL MONOSPACE DIGIT NINE
+1E800 MENDE KIKAKUI SYLLABLE M001 KI
+1E801 MENDE KIKAKUI SYLLABLE M002 KA
+1E802 MENDE KIKAKUI SYLLABLE M003 KU
+1E803 MENDE KIKAKUI SYLLABLE M065 KEE
+1E804 MENDE KIKAKUI SYLLABLE M095 KE
+1E805 MENDE KIKAKUI SYLLABLE M076 KOO
+1E806 MENDE KIKAKUI SYLLABLE M048 KO
+1E807 MENDE KIKAKUI SYLLABLE M179 KUA
+1E808 MENDE KIKAKUI SYLLABLE M004 WI
+1E809 MENDE KIKAKUI SYLLABLE M005 WA
+1E80A MENDE KIKAKUI SYLLABLE M006 WU
+1E80B MENDE KIKAKUI SYLLABLE M126 WEE
+1E80C MENDE KIKAKUI SYLLABLE M118 WE
+1E80D MENDE KIKAKUI SYLLABLE M114 WOO
+1E80E MENDE KIKAKUI SYLLABLE M045 WO
+1E80F MENDE KIKAKUI SYLLABLE M194 WUI
+1E810 MENDE KIKAKUI SYLLABLE M143 WEI
+1E811 MENDE KIKAKUI SYLLABLE M061 WVI
+1E812 MENDE KIKAKUI SYLLABLE M049 WVA
+1E813 MENDE KIKAKUI SYLLABLE M139 WVE
+1E814 MENDE KIKAKUI SYLLABLE M007 MIN
+1E815 MENDE KIKAKUI SYLLABLE M008 MAN
+1E816 MENDE KIKAKUI SYLLABLE M009 MUN
+1E817 MENDE KIKAKUI SYLLABLE M059 MEN
+1E818 MENDE KIKAKUI SYLLABLE M094 MON
+1E819 MENDE KIKAKUI SYLLABLE M154 MUAN
+1E81A MENDE KIKAKUI SYLLABLE M189 MUEN
+1E81B MENDE KIKAKUI SYLLABLE M010 BI
+1E81C MENDE KIKAKUI SYLLABLE M011 BA
+1E81D MENDE KIKAKUI SYLLABLE M012 BU
+1E81E MENDE KIKAKUI SYLLABLE M150 BEE
+1E81F MENDE KIKAKUI SYLLABLE M097 BE
+1E820 MENDE KIKAKUI SYLLABLE M103 BOO
+1E821 MENDE KIKAKUI SYLLABLE M138 BO
+1E822 MENDE KIKAKUI SYLLABLE M013 I
+1E823 MENDE KIKAKUI SYLLABLE M014 A
+1E824 MENDE KIKAKUI SYLLABLE M015 U
+1E825 MENDE KIKAKUI SYLLABLE M163 EE
+1E826 MENDE KIKAKUI SYLLABLE M100 E
+1E827 MENDE KIKAKUI SYLLABLE M165 OO
+1E828 MENDE KIKAKUI SYLLABLE M147 O
+1E829 MENDE KIKAKUI SYLLABLE M137 EI
+1E82A MENDE KIKAKUI SYLLABLE M131 IN
+1E82B MENDE KIKAKUI SYLLABLE M135 IN
+1E82C MENDE KIKAKUI SYLLABLE M195 AN
+1E82D MENDE KIKAKUI SYLLABLE M178 EN
+1E82E MENDE KIKAKUI SYLLABLE M019 SI
+1E82F MENDE KIKAKUI SYLLABLE M020 SA
+1E830 MENDE KIKAKUI SYLLABLE M021 SU
+1E831 MENDE KIKAKUI SYLLABLE M162 SEE
+1E832 MENDE KIKAKUI SYLLABLE M116 SE
+1E833 MENDE KIKAKUI SYLLABLE M136 SOO
+1E834 MENDE KIKAKUI SYLLABLE M079 SO
+1E835 MENDE KIKAKUI SYLLABLE M196 SIA
+1E836 MENDE KIKAKUI SYLLABLE M025 LI
+1E837 MENDE KIKAKUI SYLLABLE M026 LA
+1E838 MENDE KIKAKUI SYLLABLE M027 LU
+1E839 MENDE KIKAKUI SYLLABLE M084 LEE
+1E83A MENDE KIKAKUI SYLLABLE M073 LE
+1E83B MENDE KIKAKUI SYLLABLE M054 LOO
+1E83C MENDE KIKAKUI SYLLABLE M153 LO
+1E83D MENDE KIKAKUI SYLLABLE M110 LONG LE
+1E83E MENDE KIKAKUI SYLLABLE M016 DI
+1E83F MENDE KIKAKUI SYLLABLE M017 DA
+1E840 MENDE KIKAKUI SYLLABLE M018 DU
+1E841 MENDE KIKAKUI SYLLABLE M089 DEE
+1E842 MENDE KIKAKUI SYLLABLE M180 DOO
+1E843 MENDE KIKAKUI SYLLABLE M181 DO
+1E844 MENDE KIKAKUI SYLLABLE M022 TI
+1E845 MENDE KIKAKUI SYLLABLE M023 TA
+1E846 MENDE KIKAKUI SYLLABLE M024 TU
+1E847 MENDE KIKAKUI SYLLABLE M091 TEE
+1E848 MENDE KIKAKUI SYLLABLE M055 TE
+1E849 MENDE KIKAKUI SYLLABLE M104 TOO
+1E84A MENDE KIKAKUI SYLLABLE M069 TO
+1E84B MENDE KIKAKUI SYLLABLE M028 JI
+1E84C MENDE KIKAKUI SYLLABLE M029 JA
+1E84D MENDE KIKAKUI SYLLABLE M030 JU
+1E84E MENDE KIKAKUI SYLLABLE M157 JEE
+1E84F MENDE KIKAKUI SYLLABLE M113 JE
+1E850 MENDE KIKAKUI SYLLABLE M160 JOO
+1E851 MENDE KIKAKUI SYLLABLE M063 JO
+1E852 MENDE KIKAKUI SYLLABLE M175 LONG JO
+1E853 MENDE KIKAKUI SYLLABLE M031 YI
+1E854 MENDE KIKAKUI SYLLABLE M032 YA
+1E855 MENDE KIKAKUI SYLLABLE M033 YU
+1E856 MENDE KIKAKUI SYLLABLE M109 YEE
+1E857 MENDE KIKAKUI SYLLABLE M080 YE
+1E858 MENDE KIKAKUI SYLLABLE M141 YOO
+1E859 MENDE KIKAKUI SYLLABLE M121 YO
+1E85A MENDE KIKAKUI SYLLABLE M034 FI
+1E85B MENDE KIKAKUI SYLLABLE M035 FA
+1E85C MENDE KIKAKUI SYLLABLE M036 FU
+1E85D MENDE KIKAKUI SYLLABLE M078 FEE
+1E85E MENDE KIKAKUI SYLLABLE M075 FE
+1E85F MENDE KIKAKUI SYLLABLE M133 FOO
+1E860 MENDE KIKAKUI SYLLABLE M088 FO
+1E861 MENDE KIKAKUI SYLLABLE M197 FUA
+1E862 MENDE KIKAKUI SYLLABLE M101 FAN
+1E863 MENDE KIKAKUI SYLLABLE M037 NIN
+1E864 MENDE KIKAKUI SYLLABLE M038 NAN
+1E865 MENDE KIKAKUI SYLLABLE M039 NUN
+1E866 MENDE KIKAKUI SYLLABLE M117 NEN
+1E867 MENDE KIKAKUI SYLLABLE M169 NON
+1E868 MENDE KIKAKUI SYLLABLE M176 HI
+1E869 MENDE KIKAKUI SYLLABLE M041 HA
+1E86A MENDE KIKAKUI SYLLABLE M186 HU
+1E86B MENDE KIKAKUI SYLLABLE M040 HEE
+1E86C MENDE KIKAKUI SYLLABLE M096 HE
+1E86D MENDE KIKAKUI SYLLABLE M042 HOO
+1E86E MENDE KIKAKUI SYLLABLE M140 HO
+1E86F MENDE KIKAKUI SYLLABLE M083 HEEI
+1E870 MENDE KIKAKUI SYLLABLE M128 HOOU
+1E871 MENDE KIKAKUI SYLLABLE M053 HIN
+1E872 MENDE KIKAKUI SYLLABLE M130 HAN
+1E873 MENDE KIKAKUI SYLLABLE M087 HUN
+1E874 MENDE KIKAKUI SYLLABLE M052 HEN
+1E875 MENDE KIKAKUI SYLLABLE M193 HON
+1E876 MENDE KIKAKUI SYLLABLE M046 HUAN
+1E877 MENDE KIKAKUI SYLLABLE M090 NGGI
+1E878 MENDE KIKAKUI SYLLABLE M043 NGGA
+1E879 MENDE KIKAKUI SYLLABLE M082 NGGU
+1E87A MENDE KIKAKUI SYLLABLE M115 NGGEE
+1E87B MENDE KIKAKUI SYLLABLE M146 NGGE
+1E87C MENDE KIKAKUI SYLLABLE M156 NGGOO
+1E87D MENDE KIKAKUI SYLLABLE M120 NGGO
+1E87E MENDE KIKAKUI SYLLABLE M159 NGGAA
+1E87F MENDE KIKAKUI SYLLABLE M127 NGGUA
+1E880 MENDE KIKAKUI SYLLABLE M086 LONG NGGE
+1E881 MENDE KIKAKUI SYLLABLE M106 LONG NGGOO
+1E882 MENDE KIKAKUI SYLLABLE M183 LONG NGGO
+1E883 MENDE KIKAKUI SYLLABLE M155 GI
+1E884 MENDE KIKAKUI SYLLABLE M111 GA
+1E885 MENDE KIKAKUI SYLLABLE M168 GU
+1E886 MENDE KIKAKUI SYLLABLE M190 GEE
+1E887 MENDE KIKAKUI SYLLABLE M166 GUEI
+1E888 MENDE KIKAKUI SYLLABLE M167 GUAN
+1E889 MENDE KIKAKUI SYLLABLE M184 NGEN
+1E88A MENDE KIKAKUI SYLLABLE M057 NGON
+1E88B MENDE KIKAKUI SYLLABLE M177 NGUAN
+1E88C MENDE KIKAKUI SYLLABLE M068 PI
+1E88D MENDE KIKAKUI SYLLABLE M099 PA
+1E88E MENDE KIKAKUI SYLLABLE M050 PU
+1E88F MENDE KIKAKUI SYLLABLE M081 PEE
+1E890 MENDE KIKAKUI SYLLABLE M051 PE
+1E891 MENDE KIKAKUI SYLLABLE M102 POO
+1E892 MENDE KIKAKUI SYLLABLE M066 PO
+1E893 MENDE KIKAKUI SYLLABLE M145 MBI
+1E894 MENDE KIKAKUI SYLLABLE M062 MBA
+1E895 MENDE KIKAKUI SYLLABLE M122 MBU
+1E896 MENDE KIKAKUI SYLLABLE M047 MBEE
+1E897 MENDE KIKAKUI SYLLABLE M188 MBEE
+1E898 MENDE KIKAKUI SYLLABLE M072 MBE
+1E899 MENDE KIKAKUI SYLLABLE M172 MBOO
+1E89A MENDE KIKAKUI SYLLABLE M174 MBO
+1E89B MENDE KIKAKUI SYLLABLE M187 MBUU
+1E89C MENDE KIKAKUI SYLLABLE M161 LONG MBE
+1E89D MENDE KIKAKUI SYLLABLE M105 LONG MBOO
+1E89E MENDE KIKAKUI SYLLABLE M142 LONG MBO
+1E89F MENDE KIKAKUI SYLLABLE M132 KPI
+1E8A0 MENDE KIKAKUI SYLLABLE M092 KPA
+1E8A1 MENDE KIKAKUI SYLLABLE M074 KPU
+1E8A2 MENDE KIKAKUI SYLLABLE M044 KPEE
+1E8A3 MENDE KIKAKUI SYLLABLE M108 KPE
+1E8A4 MENDE KIKAKUI SYLLABLE M112 KPOO
+1E8A5 MENDE KIKAKUI SYLLABLE M158 KPO
+1E8A6 MENDE KIKAKUI SYLLABLE M124 GBI
+1E8A7 MENDE KIKAKUI SYLLABLE M056 GBA
+1E8A8 MENDE KIKAKUI SYLLABLE M148 GBU
+1E8A9 MENDE KIKAKUI SYLLABLE M093 GBEE
+1E8AA MENDE KIKAKUI SYLLABLE M107 GBE
+1E8AB MENDE KIKAKUI SYLLABLE M071 GBOO
+1E8AC MENDE KIKAKUI SYLLABLE M070 GBO
+1E8AD MENDE KIKAKUI SYLLABLE M171 RA
+1E8AE MENDE KIKAKUI SYLLABLE M123 NDI
+1E8AF MENDE KIKAKUI SYLLABLE M129 NDA
+1E8B0 MENDE KIKAKUI SYLLABLE M125 NDU
+1E8B1 MENDE KIKAKUI SYLLABLE M191 NDEE
+1E8B2 MENDE KIKAKUI SYLLABLE M119 NDE
+1E8B3 MENDE KIKAKUI SYLLABLE M067 NDOO
+1E8B4 MENDE KIKAKUI SYLLABLE M064 NDO
+1E8B5 MENDE KIKAKUI SYLLABLE M152 NJA
+1E8B6 MENDE KIKAKUI SYLLABLE M192 NJU
+1E8B7 MENDE KIKAKUI SYLLABLE M149 NJEE
+1E8B8 MENDE KIKAKUI SYLLABLE M134 NJOO
+1E8B9 MENDE KIKAKUI SYLLABLE M182 VI
+1E8BA MENDE KIKAKUI SYLLABLE M185 VA
+1E8BB MENDE KIKAKUI SYLLABLE M151 VU
+1E8BC MENDE KIKAKUI SYLLABLE M173 VEE
+1E8BD MENDE KIKAKUI SYLLABLE M085 VE
+1E8BE MENDE KIKAKUI SYLLABLE M144 VOO
+1E8BF MENDE KIKAKUI SYLLABLE M077 VO
+1E8C0 MENDE KIKAKUI SYLLABLE M164 NYIN
+1E8C1 MENDE KIKAKUI SYLLABLE M058 NYAN
+1E8C2 MENDE KIKAKUI SYLLABLE M170 NYUN
+1E8C3 MENDE KIKAKUI SYLLABLE M098 NYEN
+1E8C4 MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7 MENDE KIKAKUI DIGIT ONE
+1E8C8 MENDE KIKAKUI DIGIT TWO
+1E8C9 MENDE KIKAKUI DIGIT THREE
+1E8CA MENDE KIKAKUI DIGIT FOUR
+1E8CB MENDE KIKAKUI DIGIT FIVE
+1E8CC MENDE KIKAKUI DIGIT SIX
+1E8CD MENDE KIKAKUI DIGIT SEVEN
+1E8CE MENDE KIKAKUI DIGIT EIGHT
+1E8CF MENDE KIKAKUI DIGIT NINE
+1E8D0 MENDE KIKAKUI COMBINING NUMBER TEENS
+1E8D1 MENDE KIKAKUI COMBINING NUMBER TENS
+1E8D2 MENDE KIKAKUI COMBINING NUMBER HUNDREDS
+1E8D3 MENDE KIKAKUI COMBINING NUMBER THOUSANDS
+1E8D4 MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS
+1E8D5 MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS
+1E8D6 MENDE KIKAKUI COMBINING NUMBER MILLIONS
1EE00 ARABIC MATHEMATICAL ALEF
1EE01 ARABIC MATHEMATICAL BEH
1EE02 ARABIC MATHEMATICAL JEEM
@@ -22172,6 +24462,7 @@ return <<'END';
1F0BC PLAYING CARD KNIGHT OF HEARTS
1F0BD PLAYING CARD QUEEN OF HEARTS
1F0BE PLAYING CARD KING OF HEARTS
+1F0BF PLAYING CARD RED JOKER
1F0C1 PLAYING CARD ACE OF DIAMONDS
1F0C2 PLAYING CARD TWO OF DIAMONDS
1F0C3 PLAYING CARD THREE OF DIAMONDS
@@ -22202,6 +24493,28 @@ return <<'END';
1F0DD PLAYING CARD QUEEN OF CLUBS
1F0DE PLAYING CARD KING OF CLUBS
1F0DF PLAYING CARD WHITE JOKER
+1F0E0 PLAYING CARD FOOL
+1F0E1 PLAYING CARD TRUMP-1
+1F0E2 PLAYING CARD TRUMP-2
+1F0E3 PLAYING CARD TRUMP-3
+1F0E4 PLAYING CARD TRUMP-4
+1F0E5 PLAYING CARD TRUMP-5
+1F0E6 PLAYING CARD TRUMP-6
+1F0E7 PLAYING CARD TRUMP-7
+1F0E8 PLAYING CARD TRUMP-8
+1F0E9 PLAYING CARD TRUMP-9
+1F0EA PLAYING CARD TRUMP-10
+1F0EB PLAYING CARD TRUMP-11
+1F0EC PLAYING CARD TRUMP-12
+1F0ED PLAYING CARD TRUMP-13
+1F0EE PLAYING CARD TRUMP-14
+1F0EF PLAYING CARD TRUMP-15
+1F0F0 PLAYING CARD TRUMP-16
+1F0F1 PLAYING CARD TRUMP-17
+1F0F2 PLAYING CARD TRUMP-18
+1F0F3 PLAYING CARD TRUMP-19
+1F0F4 PLAYING CARD TRUMP-20
+1F0F5 PLAYING CARD TRUMP-21
1F100 DIGIT ZERO FULL STOP
1F101 DIGIT ZERO COMMA
1F102 DIGIT ONE COMMA
@@ -22213,6 +24526,8 @@ return <<'END';
1F108 DIGIT SEVEN COMMA
1F109 DIGIT EIGHT COMMA
1F10A DIGIT NINE COMMA
+1F10B DINGBAT CIRCLED SANS-SERIF DIGIT ZERO
+1F10C DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
1F110 PARENTHESIZED LATIN CAPITAL LETTER A
1F111 PARENTHESIZED LATIN CAPITAL LETTER B
1F112 PARENTHESIZED LATIN CAPITAL LETTER C
@@ -22463,12 +24778,25 @@ return <<'END';
1F31E SUN WITH FACE
1F31F GLOWING STAR
1F320 SHOOTING STAR
+1F321 THERMOMETER
+1F322 BLACK DROPLET
+1F323 WHITE SUN
+1F324 WHITE SUN WITH SMALL CLOUD
+1F325 WHITE SUN BEHIND CLOUD
+1F326 WHITE SUN BEHIND CLOUD WITH RAIN
+1F327 CLOUD WITH RAIN
+1F328 CLOUD WITH SNOW
+1F329 CLOUD WITH LIGHTNING
+1F32A CLOUD WITH TORNADO
+1F32B FOG
+1F32C WIND BLOWING FACE
1F330 CHESTNUT
1F331 SEEDLING
1F332 EVERGREEN TREE
1F333 DECIDUOUS TREE
1F334 PALM TREE
1F335 CACTUS
+1F336 HOT PEPPER
1F337 TULIP
1F338 CHERRY BLOSSOM
1F339 ROSE
@@ -22539,6 +24867,7 @@ return <<'END';
1F37A BEER MUG
1F37B CLINKING BEER MUGS
1F37C BABY BOTTLE
+1F37D FORK AND KNIFE WITH PLATE
1F380 RIBBON
1F381 WRAPPED PRESENT
1F382 BIRTHDAY CAKE
@@ -22559,6 +24888,18 @@ return <<'END';
1F391 MOON VIEWING CEREMONY
1F392 SCHOOL SATCHEL
1F393 GRADUATION CAP
+1F394 HEART WITH TIP ON THE LEFT
+1F395 BOUQUET OF FLOWERS
+1F396 MILITARY MEDAL
+1F397 REMINDER RIBBON
+1F398 MUSICAL KEYBOARD WITH JACKS
+1F399 STUDIO MICROPHONE
+1F39A LEVEL SLIDER
+1F39B CONTROL KNOBS
+1F39C BEAMED ASCENDING MUSICAL NOTES
+1F39D BEAMED DESCENDING MUSICAL NOTES
+1F39E FILM FRAMES
+1F39F ADMISSION TICKETS
1F3A0 CAROUSEL HORSE
1F3A1 FERRIS WHEEL
1F3A2 ROLLER COASTER
@@ -22596,11 +24937,28 @@ return <<'END';
1F3C2 SNOWBOARDER
1F3C3 RUNNER
1F3C4 SURFER
+1F3C5 SPORTS MEDAL
1F3C6 TROPHY
1F3C7 HORSE RACING
1F3C8 AMERICAN FOOTBALL
1F3C9 RUGBY FOOTBALL
1F3CA SWIMMER
+1F3CB WEIGHT LIFTER
+1F3CC GOLFER
+1F3CD RACING MOTORCYCLE
+1F3CE RACING CAR
+1F3D4 SNOW CAPPED MOUNTAIN
+1F3D5 CAMPING
+1F3D6 BEACH WITH UMBRELLA
+1F3D7 BUILDING CONSTRUCTION
+1F3D8 HOUSE BUILDINGS
+1F3D9 CITYSCAPE
+1F3DA DERELICT HOUSE BUILDING
+1F3DB CLASSICAL BUILDING
+1F3DC DESERT
+1F3DD DESERT ISLAND
+1F3DE NATIONAL PARK
+1F3DF STADIUM
1F3E0 HOUSE BUILDING
1F3E1 HOUSE WITH GARDEN
1F3E2 OFFICE BUILDING
@@ -22618,6 +24976,13 @@ return <<'END';
1F3EE IZAKAYA LANTERN
1F3EF JAPANESE CASTLE
1F3F0 EUROPEAN CASTLE
+1F3F1 WHITE PENNANT
+1F3F2 BLACK PENNANT
+1F3F3 WAVING WHITE FLAG
+1F3F4 WAVING BLACK FLAG
+1F3F5 ROSETTE
+1F3F6 BLACK ROSETTE
+1F3F7 LABEL
1F400 RAT
1F401 MOUSE
1F402 OX
@@ -22681,7 +25046,9 @@ return <<'END';
1F43C PANDA FACE
1F43D PIG NOSE
1F43E PAW PRINTS
+1F43F CHIPMUNK
1F440 EYES
+1F441 EYE
1F442 EAR
1F443 NOSE
1F444 MOUTH
@@ -22864,10 +25231,13 @@ return <<'END';
1F4F5 NO MOBILE PHONES
1F4F6 ANTENNA WITH BARS
1F4F7 CAMERA
+1F4F8 CAMERA WITH FLASH
1F4F9 VIDEO CAMERA
1F4FA TELEVISION
1F4FB RADIO
1F4FC VIDEOCASSETTE
+1F4FD FILM PROJECTOR
+1F4FE PORTABLE STEREO
1F500 TWISTED RIGHTWARDS ARROWS
1F501 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS
1F502 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
@@ -22930,10 +25300,19 @@ return <<'END';
1F53B DOWN-POINTING RED TRIANGLE
1F53C UP-POINTING SMALL RED TRIANGLE
1F53D DOWN-POINTING SMALL RED TRIANGLE
+1F53E LOWER RIGHT SHADOWED WHITE CIRCLE
+1F53F UPPER RIGHT SHADOWED WHITE CIRCLE
1F540 CIRCLED CROSS POMMEE
1F541 CROSS POMMEE WITH HALF-CIRCLE BELOW
1F542 CROSS POMMEE
1F543 NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
+1F544 NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS
+1F545 SYMBOL FOR MARKS CHAPTER
+1F546 WHITE LATIN CROSS
+1F547 HEAVY LATIN CROSS
+1F548 CELTIC CROSS
+1F549 OM SYMBOL
+1F54A DOVE OF PEACE
1F550 CLOCK FACE ONE OCLOCK
1F551 CLOCK FACE TWO OCLOCK
1F552 CLOCK FACE THREE OCLOCK
@@ -22958,6 +25337,151 @@ return <<'END';
1F565 CLOCK FACE TEN-THIRTY
1F566 CLOCK FACE ELEVEN-THIRTY
1F567 CLOCK FACE TWELVE-THIRTY
+1F568 RIGHT SPEAKER
+1F569 RIGHT SPEAKER WITH ONE SOUND WAVE
+1F56A RIGHT SPEAKER WITH THREE SOUND WAVES
+1F56B BULLHORN
+1F56C BULLHORN WITH SOUND WAVES
+1F56D RINGING BELL
+1F56E BOOK
+1F56F CANDLE
+1F570 MANTELPIECE CLOCK
+1F571 BLACK SKULL AND CROSSBONES
+1F572 NO PIRACY
+1F573 HOLE
+1F574 MAN IN BUSINESS SUIT LEVITATING
+1F575 SLEUTH OR SPY
+1F576 DARK SUNGLASSES
+1F577 SPIDER
+1F578 SPIDER WEB
+1F579 JOYSTICK
+1F57B LEFT HAND TELEPHONE RECEIVER
+1F57C TELEPHONE RECEIVER WITH PAGE
+1F57D RIGHT HAND TELEPHONE RECEIVER
+1F57E WHITE TOUCHTONE TELEPHONE
+1F57F BLACK TOUCHTONE TELEPHONE
+1F580 TELEPHONE ON TOP OF MODEM
+1F581 CLAMSHELL MOBILE PHONE
+1F582 BACK OF ENVELOPE
+1F583 STAMPED ENVELOPE
+1F584 ENVELOPE WITH LIGHTNING
+1F585 FLYING ENVELOPE
+1F586 PEN OVER STAMPED ENVELOPE
+1F587 LINKED PAPERCLIPS
+1F588 BLACK PUSHPIN
+1F589 LOWER LEFT PENCIL
+1F58A LOWER LEFT BALLPOINT PEN
+1F58B LOWER LEFT FOUNTAIN PEN
+1F58C LOWER LEFT PAINTBRUSH
+1F58D LOWER LEFT CRAYON
+1F58E LEFT WRITING HAND
+1F58F TURNED OK HAND SIGN
+1F590 RAISED HAND WITH FINGERS SPLAYED
+1F591 REVERSED RAISED HAND WITH FINGERS SPLAYED
+1F592 REVERSED THUMBS UP SIGN
+1F593 REVERSED THUMBS DOWN SIGN
+1F594 REVERSED VICTORY HAND
+1F595 REVERSED HAND WITH MIDDLE FINGER EXTENDED
+1F596 RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
+1F597 WHITE DOWN POINTING LEFT HAND INDEX
+1F598 SIDEWAYS WHITE LEFT POINTING INDEX
+1F599 SIDEWAYS WHITE RIGHT POINTING INDEX
+1F59A SIDEWAYS BLACK LEFT POINTING INDEX
+1F59B SIDEWAYS BLACK RIGHT POINTING INDEX
+1F59C BLACK LEFT POINTING BACKHAND INDEX
+1F59D BLACK RIGHT POINTING BACKHAND INDEX
+1F59E SIDEWAYS WHITE UP POINTING INDEX
+1F59F SIDEWAYS WHITE DOWN POINTING INDEX
+1F5A0 SIDEWAYS BLACK UP POINTING INDEX
+1F5A1 SIDEWAYS BLACK DOWN POINTING INDEX
+1F5A2 BLACK UP POINTING BACKHAND INDEX
+1F5A3 BLACK DOWN POINTING BACKHAND INDEX
+1F5A5 DESKTOP COMPUTER
+1F5A6 KEYBOARD AND MOUSE
+1F5A7 THREE NETWORKED COMPUTERS
+1F5A8 PRINTER
+1F5A9 POCKET CALCULATOR
+1F5AA BLACK HARD SHELL FLOPPY DISK
+1F5AB WHITE HARD SHELL FLOPPY DISK
+1F5AC SOFT SHELL FLOPPY DISK
+1F5AD TAPE CARTRIDGE
+1F5AE WIRED KEYBOARD
+1F5AF ONE BUTTON MOUSE
+1F5B0 TWO BUTTON MOUSE
+1F5B1 THREE BUTTON MOUSE
+1F5B2 TRACKBALL
+1F5B3 OLD PERSONAL COMPUTER
+1F5B4 HARD DISK
+1F5B5 SCREEN
+1F5B6 PRINTER ICON
+1F5B7 FAX ICON
+1F5B8 OPTICAL DISC ICON
+1F5B9 DOCUMENT WITH TEXT
+1F5BA DOCUMENT WITH TEXT AND PICTURE
+1F5BB DOCUMENT WITH PICTURE
+1F5BC FRAME WITH PICTURE
+1F5BD FRAME WITH TILES
+1F5BE FRAME WITH AN X
+1F5BF BLACK FOLDER
+1F5C0 FOLDER
+1F5C1 OPEN FOLDER
+1F5C2 CARD INDEX DIVIDERS
+1F5C3 CARD FILE BOX
+1F5C4 FILE CABINET
+1F5C5 EMPTY NOTE
+1F5C6 EMPTY NOTE PAGE
+1F5C7 EMPTY NOTE PAD
+1F5C8 NOTE
+1F5C9 NOTE PAGE
+1F5CA NOTE PAD
+1F5CB EMPTY DOCUMENT
+1F5CC EMPTY PAGE
+1F5CD EMPTY PAGES
+1F5CE DOCUMENT
+1F5CF PAGE
+1F5D0 PAGES
+1F5D1 WASTEBASKET
+1F5D2 SPIRAL NOTE PAD
+1F5D3 SPIRAL CALENDAR PAD
+1F5D4 DESKTOP WINDOW
+1F5D5 MINIMIZE
+1F5D6 MAXIMIZE
+1F5D7 OVERLAP
+1F5D8 CLOCKWISE RIGHT AND LEFT SEMICIRCLE ARROWS
+1F5D9 CANCELLATION X
+1F5DA INCREASE FONT SIZE SYMBOL
+1F5DB DECREASE FONT SIZE SYMBOL
+1F5DC COMPRESSION
+1F5DD OLD KEY
+1F5DE ROLLED-UP NEWSPAPER
+1F5DF PAGE WITH CIRCLED TEXT
+1F5E0 STOCK CHART
+1F5E1 DAGGER KNIFE
+1F5E2 LIPS
+1F5E3 SPEAKING HEAD IN SILHOUETTE
+1F5E4 THREE RAYS ABOVE
+1F5E5 THREE RAYS BELOW
+1F5E6 THREE RAYS LEFT
+1F5E7 THREE RAYS RIGHT
+1F5E8 LEFT SPEECH BUBBLE
+1F5E9 RIGHT SPEECH BUBBLE
+1F5EA TWO SPEECH BUBBLES
+1F5EB THREE SPEECH BUBBLES
+1F5EC LEFT THOUGHT BUBBLE
+1F5ED RIGHT THOUGHT BUBBLE
+1F5EE LEFT ANGER BUBBLE
+1F5EF RIGHT ANGER BUBBLE
+1F5F0 MOOD BUBBLE
+1F5F1 LIGHTNING MOOD BUBBLE
+1F5F2 LIGHTNING MOOD
+1F5F3 BALLOT BOX WITH BALLOT
+1F5F4 BALLOT SCRIPT X
+1F5F5 BALLOT BOX WITH SCRIPT X
+1F5F6 BALLOT BOLD SCRIPT X
+1F5F7 BALLOT BOX WITH BOLD SCRIPT X
+1F5F8 LIGHT CHECK MARK
+1F5F9 BALLOT BOX WITH BOLD CHECK
+1F5FA WORLD MAP
1F5FB MOUNT FUJI
1F5FC TOKYO TOWER
1F5FD STATUE OF LIBERTY
@@ -23028,6 +25552,8 @@ return <<'END';
1F63E POUTING CAT FACE
1F63F CRYING CAT FACE
1F640 WEARY CAT FACE
+1F641 SLIGHTLY FROWNING FACE
+1F642 SLIGHTLY SMILING FACE
1F645 FACE WITH NO GOOD GESTURE
1F646 FACE WITH OK GESTURE
1F647 PERSON BOWING DEEPLY
@@ -23039,6 +25565,54 @@ return <<'END';
1F64D PERSON FROWNING
1F64E PERSON WITH POUTING FACE
1F64F PERSON WITH FOLDED HANDS
+1F650 NORTH WEST POINTING LEAF
+1F651 SOUTH WEST POINTING LEAF
+1F652 NORTH EAST POINTING LEAF
+1F653 SOUTH EAST POINTING LEAF
+1F654 TURNED NORTH WEST POINTING LEAF
+1F655 TURNED SOUTH WEST POINTING LEAF
+1F656 TURNED NORTH EAST POINTING LEAF
+1F657 TURNED SOUTH EAST POINTING LEAF
+1F658 NORTH WEST POINTING VINE LEAF
+1F659 SOUTH WEST POINTING VINE LEAF
+1F65A NORTH EAST POINTING VINE LEAF
+1F65B SOUTH EAST POINTING VINE LEAF
+1F65C HEAVY NORTH WEST POINTING VINE LEAF
+1F65D HEAVY SOUTH WEST POINTING VINE LEAF
+1F65E HEAVY NORTH EAST POINTING VINE LEAF
+1F65F HEAVY SOUTH EAST POINTING VINE LEAF
+1F660 NORTH WEST POINTING BUD
+1F661 SOUTH WEST POINTING BUD
+1F662 NORTH EAST POINTING BUD
+1F663 SOUTH EAST POINTING BUD
+1F664 HEAVY NORTH WEST POINTING BUD
+1F665 HEAVY SOUTH WEST POINTING BUD
+1F666 HEAVY NORTH EAST POINTING BUD
+1F667 HEAVY SOUTH EAST POINTING BUD
+1F668 HOLLOW QUILT SQUARE ORNAMENT
+1F669 HOLLOW QUILT SQUARE ORNAMENT IN BLACK SQUARE
+1F66A SOLID QUILT SQUARE ORNAMENT
+1F66B SOLID QUILT SQUARE ORNAMENT IN BLACK SQUARE
+1F66C LEFTWARDS ROCKET
+1F66D UPWARDS ROCKET
+1F66E RIGHTWARDS ROCKET
+1F66F DOWNWARDS ROCKET
+1F670 SCRIPT LIGATURE ET ORNAMENT
+1F671 HEAVY SCRIPT LIGATURE ET ORNAMENT
+1F672 LIGATURE OPEN ET ORNAMENT
+1F673 HEAVY LIGATURE OPEN ET ORNAMENT
+1F674 HEAVY AMPERSAND ORNAMENT
+1F675 SWASH AMPERSAND ORNAMENT
+1F676 SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
+1F677 SANS-SERIF HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+1F678 SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+1F679 HEAVY INTERROBANG ORNAMENT
+1F67A SANS-SERIF INTERROBANG ORNAMENT
+1F67B HEAVY SANS-SERIF INTERROBANG ORNAMENT
+1F67C VERY HEAVY SOLIDUS
+1F67D VERY HEAVY REVERSE SOLIDUS
+1F67E CHECKER BOARD
+1F67F REVERSE CHECKER BOARD
1F680 ROCKET
1F681 HELICOPTER
1F682 STEAM LOCOMOTIVE
@@ -23109,6 +25683,33 @@ return <<'END';
1F6C3 CUSTOMS
1F6C4 BAGGAGE CLAIM
1F6C5 LEFT LUGGAGE
+1F6C6 TRIANGLE WITH ROUNDED CORNERS
+1F6C7 PROHIBITED SIGN
+1F6C8 CIRCLED INFORMATION SOURCE
+1F6C9 BOYS SYMBOL
+1F6CA GIRLS SYMBOL
+1F6CB COUCH AND LAMP
+1F6CC SLEEPING ACCOMMODATION
+1F6CD SHOPPING BAGS
+1F6CE BELLHOP BELL
+1F6CF BED
+1F6E0 HAMMER AND WRENCH
+1F6E1 SHIELD
+1F6E2 OIL DRUM
+1F6E3 MOTORWAY
+1F6E4 RAILWAY TRACK
+1F6E5 MOTOR BOAT
+1F6E6 UP-POINTING MILITARY AIRPLANE
+1F6E7 UP-POINTING AIRPLANE
+1F6E8 UP-POINTING SMALL AIRPLANE
+1F6E9 SMALL AIRPLANE
+1F6EA NORTHEAST-POINTING AIRPLANE
+1F6EB AIRPLANE DEPARTURE
+1F6EC AIRPLANE ARRIVING
+1F6F0 SATELLITE
+1F6F1 ONCOMING FIRE ENGINE
+1F6F2 DIESEL LOCOMOTIVE
+1F6F3 PASSENGER SHIP
1F700 ALCHEMICAL SYMBOL FOR QUINTESSENCE
1F701 ALCHEMICAL SYMBOL FOR AIR
1F702 ALCHEMICAL SYMBOL FOR FIRE
@@ -23225,6 +25826,239 @@ return <<'END';
1F771 ALCHEMICAL SYMBOL FOR MONTH
1F772 ALCHEMICAL SYMBOL FOR HALF DRAM
1F773 ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780 BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE
+1F781 BLACK UP-POINTING ISOSCELES RIGHT TRIANGLE
+1F782 BLACK RIGHT-POINTING ISOSCELES RIGHT TRIANGLE
+1F783 BLACK DOWN-POINTING ISOSCELES RIGHT TRIANGLE
+1F784 BLACK SLIGHTLY SMALL CIRCLE
+1F785 MEDIUM BOLD WHITE CIRCLE
+1F786 BOLD WHITE CIRCLE
+1F787 HEAVY WHITE CIRCLE
+1F788 VERY HEAVY WHITE CIRCLE
+1F789 EXTREMELY HEAVY WHITE CIRCLE
+1F78A WHITE CIRCLE CONTAINING BLACK SMALL CIRCLE
+1F78B ROUND TARGET
+1F78C BLACK TINY SQUARE
+1F78D BLACK SLIGHTLY SMALL SQUARE
+1F78E LIGHT WHITE SQUARE
+1F78F MEDIUM WHITE SQUARE
+1F790 BOLD WHITE SQUARE
+1F791 HEAVY WHITE SQUARE
+1F792 VERY HEAVY WHITE SQUARE
+1F793 EXTREMELY HEAVY WHITE SQUARE
+1F794 WHITE SQUARE CONTAINING BLACK VERY SMALL SQUARE
+1F795 WHITE SQUARE CONTAINING BLACK MEDIUM SQUARE
+1F796 SQUARE TARGET
+1F797 BLACK TINY DIAMOND
+1F798 BLACK VERY SMALL DIAMOND
+1F799 BLACK MEDIUM SMALL DIAMOND
+1F79A WHITE DIAMOND CONTAINING BLACK VERY SMALL DIAMOND
+1F79B WHITE DIAMOND CONTAINING BLACK MEDIUM DIAMOND
+1F79C DIAMOND TARGET
+1F79D BLACK TINY LOZENGE
+1F79E BLACK VERY SMALL LOZENGE
+1F79F BLACK MEDIUM SMALL LOZENGE
+1F7A0 WHITE LOZENGE CONTAINING BLACK SMALL LOZENGE
+1F7A1 THIN GREEK CROSS
+1F7A2 LIGHT GREEK CROSS
+1F7A3 MEDIUM GREEK CROSS
+1F7A4 BOLD GREEK CROSS
+1F7A5 VERY BOLD GREEK CROSS
+1F7A6 VERY HEAVY GREEK CROSS
+1F7A7 EXTREMELY HEAVY GREEK CROSS
+1F7A8 THIN SALTIRE
+1F7A9 LIGHT SALTIRE
+1F7AA MEDIUM SALTIRE
+1F7AB BOLD SALTIRE
+1F7AC HEAVY SALTIRE
+1F7AD VERY HEAVY SALTIRE
+1F7AE EXTREMELY HEAVY SALTIRE
+1F7AF LIGHT FIVE SPOKED ASTERISK
+1F7B0 MEDIUM FIVE SPOKED ASTERISK
+1F7B1 BOLD FIVE SPOKED ASTERISK
+1F7B2 HEAVY FIVE SPOKED ASTERISK
+1F7B3 VERY HEAVY FIVE SPOKED ASTERISK
+1F7B4 EXTREMELY HEAVY FIVE SPOKED ASTERISK
+1F7B5 LIGHT SIX SPOKED ASTERISK
+1F7B6 MEDIUM SIX SPOKED ASTERISK
+1F7B7 BOLD SIX SPOKED ASTERISK
+1F7B8 HEAVY SIX SPOKED ASTERISK
+1F7B9 VERY HEAVY SIX SPOKED ASTERISK
+1F7BA EXTREMELY HEAVY SIX SPOKED ASTERISK
+1F7BB LIGHT EIGHT SPOKED ASTERISK
+1F7BC MEDIUM EIGHT SPOKED ASTERISK
+1F7BD BOLD EIGHT SPOKED ASTERISK
+1F7BE HEAVY EIGHT SPOKED ASTERISK
+1F7BF VERY HEAVY EIGHT SPOKED ASTERISK
+1F7C0 LIGHT THREE POINTED BLACK STAR
+1F7C1 MEDIUM THREE POINTED BLACK STAR
+1F7C2 THREE POINTED BLACK STAR
+1F7C3 MEDIUM THREE POINTED PINWHEEL STAR
+1F7C4 LIGHT FOUR POINTED BLACK STAR
+1F7C5 MEDIUM FOUR POINTED BLACK STAR
+1F7C6 FOUR POINTED BLACK STAR
+1F7C7 MEDIUM FOUR POINTED PINWHEEL STAR
+1F7C8 REVERSE LIGHT FOUR POINTED PINWHEEL STAR
+1F7C9 LIGHT FIVE POINTED BLACK STAR
+1F7CA HEAVY FIVE POINTED BLACK STAR
+1F7CB MEDIUM SIX POINTED BLACK STAR
+1F7CC HEAVY SIX POINTED BLACK STAR
+1F7CD SIX POINTED PINWHEEL STAR
+1F7CE MEDIUM EIGHT POINTED BLACK STAR
+1F7CF HEAVY EIGHT POINTED BLACK STAR
+1F7D0 VERY HEAVY EIGHT POINTED BLACK STAR
+1F7D1 HEAVY EIGHT POINTED PINWHEEL STAR
+1F7D2 LIGHT TWELVE POINTED BLACK STAR
+1F7D3 HEAVY TWELVE POINTED BLACK STAR
+1F7D4 HEAVY TWELVE POINTED PINWHEEL STAR
+1F800 LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F801 UPWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F802 RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F803 DOWNWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F804 LEFTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F805 UPWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F806 RIGHTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F807 DOWNWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F808 LEFTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F809 UPWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F80A RIGHTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F80B DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810 LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F811 UPWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F812 RIGHTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F813 DOWNWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F814 LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F815 UPWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F816 RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F817 DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F818 HEAVY LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F819 HEAVY UPWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F81A HEAVY RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F81B HEAVY DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F81C HEAVY LEFTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F81D HEAVY UPWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F81E HEAVY RIGHTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F81F HEAVY DOWNWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F820 LEFTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F821 UPWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F822 RIGHTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F823 DOWNWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F824 LEFTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F825 UPWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F826 RIGHTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F827 DOWNWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F828 LEFTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F829 UPWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F82A RIGHTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F82B DOWNWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F82C LEFTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F82D UPWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F82E RIGHTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F82F DOWNWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F830 LEFTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F831 UPWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F832 RIGHTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F833 DOWNWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F834 LEFTWARDS FINGER-POST ARROW
+1F835 UPWARDS FINGER-POST ARROW
+1F836 RIGHTWARDS FINGER-POST ARROW
+1F837 DOWNWARDS FINGER-POST ARROW
+1F838 LEFTWARDS SQUARED ARROW
+1F839 UPWARDS SQUARED ARROW
+1F83A RIGHTWARDS SQUARED ARROW
+1F83B DOWNWARDS SQUARED ARROW
+1F83C LEFTWARDS COMPRESSED ARROW
+1F83D UPWARDS COMPRESSED ARROW
+1F83E RIGHTWARDS COMPRESSED ARROW
+1F83F DOWNWARDS COMPRESSED ARROW
+1F840 LEFTWARDS HEAVY COMPRESSED ARROW
+1F841 UPWARDS HEAVY COMPRESSED ARROW
+1F842 RIGHTWARDS HEAVY COMPRESSED ARROW
+1F843 DOWNWARDS HEAVY COMPRESSED ARROW
+1F844 LEFTWARDS HEAVY ARROW
+1F845 UPWARDS HEAVY ARROW
+1F846 RIGHTWARDS HEAVY ARROW
+1F847 DOWNWARDS HEAVY ARROW
+1F850 LEFTWARDS SANS-SERIF ARROW
+1F851 UPWARDS SANS-SERIF ARROW
+1F852 RIGHTWARDS SANS-SERIF ARROW
+1F853 DOWNWARDS SANS-SERIF ARROW
+1F854 NORTH WEST SANS-SERIF ARROW
+1F855 NORTH EAST SANS-SERIF ARROW
+1F856 SOUTH EAST SANS-SERIF ARROW
+1F857 SOUTH WEST SANS-SERIF ARROW
+1F858 LEFT RIGHT SANS-SERIF ARROW
+1F859 UP DOWN SANS-SERIF ARROW
+1F860 WIDE-HEADED LEFTWARDS LIGHT BARB ARROW
+1F861 WIDE-HEADED UPWARDS LIGHT BARB ARROW
+1F862 WIDE-HEADED RIGHTWARDS LIGHT BARB ARROW
+1F863 WIDE-HEADED DOWNWARDS LIGHT BARB ARROW
+1F864 WIDE-HEADED NORTH WEST LIGHT BARB ARROW
+1F865 WIDE-HEADED NORTH EAST LIGHT BARB ARROW
+1F866 WIDE-HEADED SOUTH EAST LIGHT BARB ARROW
+1F867 WIDE-HEADED SOUTH WEST LIGHT BARB ARROW
+1F868 WIDE-HEADED LEFTWARDS BARB ARROW
+1F869 WIDE-HEADED UPWARDS BARB ARROW
+1F86A WIDE-HEADED RIGHTWARDS BARB ARROW
+1F86B WIDE-HEADED DOWNWARDS BARB ARROW
+1F86C WIDE-HEADED NORTH WEST BARB ARROW
+1F86D WIDE-HEADED NORTH EAST BARB ARROW
+1F86E WIDE-HEADED SOUTH EAST BARB ARROW
+1F86F WIDE-HEADED SOUTH WEST BARB ARROW
+1F870 WIDE-HEADED LEFTWARDS MEDIUM BARB ARROW
+1F871 WIDE-HEADED UPWARDS MEDIUM BARB ARROW
+1F872 WIDE-HEADED RIGHTWARDS MEDIUM BARB ARROW
+1F873 WIDE-HEADED DOWNWARDS MEDIUM BARB ARROW
+1F874 WIDE-HEADED NORTH WEST MEDIUM BARB ARROW
+1F875 WIDE-HEADED NORTH EAST MEDIUM BARB ARROW
+1F876 WIDE-HEADED SOUTH EAST MEDIUM BARB ARROW
+1F877 WIDE-HEADED SOUTH WEST MEDIUM BARB ARROW
+1F878 WIDE-HEADED LEFTWARDS HEAVY BARB ARROW
+1F879 WIDE-HEADED UPWARDS HEAVY BARB ARROW
+1F87A WIDE-HEADED RIGHTWARDS HEAVY BARB ARROW
+1F87B WIDE-HEADED DOWNWARDS HEAVY BARB ARROW
+1F87C WIDE-HEADED NORTH WEST HEAVY BARB ARROW
+1F87D WIDE-HEADED NORTH EAST HEAVY BARB ARROW
+1F87E WIDE-HEADED SOUTH EAST HEAVY BARB ARROW
+1F87F WIDE-HEADED SOUTH WEST HEAVY BARB ARROW
+1F880 WIDE-HEADED LEFTWARDS VERY HEAVY BARB ARROW
+1F881 WIDE-HEADED UPWARDS VERY HEAVY BARB ARROW
+1F882 WIDE-HEADED RIGHTWARDS VERY HEAVY BARB ARROW
+1F883 WIDE-HEADED DOWNWARDS VERY HEAVY BARB ARROW
+1F884 WIDE-HEADED NORTH WEST VERY HEAVY BARB ARROW
+1F885 WIDE-HEADED NORTH EAST VERY HEAVY BARB ARROW
+1F886 WIDE-HEADED SOUTH EAST VERY HEAVY BARB ARROW
+1F887 WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890 LEFTWARDS TRIANGLE ARROWHEAD
+1F891 UPWARDS TRIANGLE ARROWHEAD
+1F892 RIGHTWARDS TRIANGLE ARROWHEAD
+1F893 DOWNWARDS TRIANGLE ARROWHEAD
+1F894 LEFTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F895 UPWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F896 RIGHTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F897 DOWNWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F898 LEFTWARDS ARROW WITH NOTCHED TAIL
+1F899 UPWARDS ARROW WITH NOTCHED TAIL
+1F89A RIGHTWARDS ARROW WITH NOTCHED TAIL
+1F89B DOWNWARDS ARROW WITH NOTCHED TAIL
+1F89C HEAVY ARROW SHAFT WIDTH ONE
+1F89D HEAVY ARROW SHAFT WIDTH TWO THIRDS
+1F89E HEAVY ARROW SHAFT WIDTH ONE HALF
+1F89F HEAVY ARROW SHAFT WIDTH ONE THIRD
+1F8A0 LEFTWARDS BOTTOM-SHADED WHITE ARROW
+1F8A1 RIGHTWARDS BOTTOM SHADED WHITE ARROW
+1F8A2 LEFTWARDS TOP SHADED WHITE ARROW
+1F8A3 RIGHTWARDS TOP SHADED WHITE ARROW
+1F8A4 LEFTWARDS LEFT-SHADED WHITE ARROW
+1F8A5 RIGHTWARDS RIGHT-SHADED WHITE ARROW
+1F8A6 LEFTWARDS RIGHT-SHADED WHITE ARROW
+1F8A7 RIGHTWARDS LEFT-SHADED WHITE ARROW
+1F8A8 LEFTWARDS BACK-TILTED SHADOWED WHITE ARROW
+1F8A9 RIGHTWARDS BACK-TILTED SHADOWED WHITE ARROW
+1F8AA LEFTWARDS FRONT-TILTED SHADOWED WHITE ARROW
+1F8AB RIGHTWARDS FRONT-TILTED SHADOWED WHITE ARROW
+1F8AC WHITE ARROW SHAFT WIDTH ONE
+1F8AD WHITE ARROW SHAFT WIDTH TWO THIRDS
E0001 LANGUAGE TAG
E0020 TAG SPACE
E0021 TAG EXCLAMATION MARK
diff --git a/Master/tlpkg/tlperl/lib/unicore/Name.pm b/Master/tlpkg/tlperl/lib/unicore/Name.pm
index 62dc75eb557..6ffd8c9510f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/Name.pm
+++ b/Master/tlpkg/tlperl/lib/unicore/Name.pm
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
diff --git a/Master/tlpkg/tlperl/lib/unicore/NamedSequences.txt b/Master/tlpkg/tlperl/lib/unicore/NamedSequences.txt
index e1ae2b740e5..87b25cfa154 100644
--- a/Master/tlpkg/tlperl/lib/unicore/NamedSequences.txt
+++ b/Master/tlpkg/tlperl/lib/unicore/NamedSequences.txt
@@ -1,24 +1,32 @@
-# NamedSequences-6.3.0.txt
-# Date: 2012-11-14, 21:51:00 GMT [KW]
+# NamedSequences-7.0.0.txt
+# Date: 2014-01-24, 15:00:00 GMT [KW, LI]
#
-# Unicode Character Database
-# Copyright (c) 1991-2012 Unicode, Inc.
+# Unicode Named Character Sequences
+#
+# This file is a normative contributory data file in the Unicode
+# Character Database.
+#
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
-# For documentation, see http://www.unicode.org/reports/tr44/
#
# Format:
# Name of Sequence; Code Point Sequence for USI
#
-# Code point sequences in the UCD use spaces as delimiters.
-# The corresponding format for a USI in ISO/IEC 10646 uses
-# comma delimitation and angle brackets. Thus, a named sequence
-# of the form:
+# Code point sequences in the Unicode Character Database
+# use spaces as delimiters. The corresponding format for a
+# UCS Sequence Identifier (USI) in ISO/IEC 10646 uses
+# comma delimitation and angle brackets. Thus, a Unicode
+# named character sequence of the form:
#
# EXAMPLE NAME;1000 1001 1002
#
-# in this data file, would correspond to a 10646 USI as follows:
+# in this data file, would correspond to an ISO/IEC 10646 USI
+# as follows:
+#
+# <1000, 1001, 1002>
#
-# <1000, 1001, 1002>
+# For more information, see UAX #34: Unicode Named Character
+# Sequences, at http://www.unicode.org/unicode/reports/tr34/
#
# Note: The order of entries in this file is not significant.
# However, entries are generally in script order corresponding
@@ -54,7 +62,8 @@ LATIN SMALL LETTER S WITH VERTICAL LINE BELOW;0073 0329
LATIN CAPITAL LETTER U WITH MACRON AND GRAVE;016A 0300
LATIN SMALL LETTER U WITH MACRON AND GRAVE;016B 0300
-# Additions for Lithuanian. Provisional 2006-05-18, Approved 2007-10-19
+# Additions for Lithuanian.
+# Provisional 2006-05-18, Approved 2007-10-19
LATIN CAPITAL LETTER A WITH OGONEK AND ACUTE;0104 0301
LATIN SMALL LETTER A WITH OGONEK AND ACUTE;0105 0301
@@ -92,7 +101,7 @@ LATIN CAPITAL LETTER U WITH MACRON AND TILDE;016A 0303
LATIN SMALL LETTER U WITH MACRON AND TILDE;016B 0303
# Entries for JIS X 0213 compatibility mapping.
-# Provisional: 2008-11-07, Approved 2010-05-14
+# Provisional 2008-11-07, Approved 2010-05-14
LATIN SMALL LETTER AE WITH GRAVE;00E6 0300
LATIN SMALL LETTER OPEN O WITH GRAVE;0254 0300
@@ -105,7 +114,7 @@ LATIN SMALL LETTER HOOKED SCHWA WITH GRAVE;025A 0300
LATIN SMALL LETTER HOOKED SCHWA WITH ACUTE;025A 0301
# Entries for Uyghur and Chagatai.
-# Provisional: N/A, Approved: 2012-11-08
+# Provisional N/A, Approved 2012-11-08
ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH ALEF;0626 0627
ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH WAW;0626 0648
@@ -118,16 +127,17 @@ ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH AE;0626 06D5
ARABIC SEQUENCE NOON WITH KEHEH;0646 06A9
# Entry for a Bangla entity.
-# Provisional: 2009-08-10, Approved 2010-05-14
+# Provisional 2009-08-10, Approved 2010-05-14
#
# Note that this same sequence is also used for the ASSAMESE LETTER KSSA.
BENGALI LETTER KHINYA;0995 09CD 09B7
-# Additions for Tamil. Provisional 2008-02-08, Approved 2009-08-14
+# Additions for Tamil.
+# Provisional 2008-02-08, Approved 2009-08-14
#
-# A visual display of the Tamil named sequences is available
-# in the documentation for the Unicode Standard. See Section 9.6, Tamil in
+# A visual display of the Tamil named character sequences is available
+# in the documentation for the Unicode Standard. See Section 12.6, Tamil in
# http://www.unicode.org/versions/latest/
TAMIL CONSONANT K; 0B95 0BCD
@@ -446,7 +456,7 @@ TAMIL SYLLABLE KSSAU; 0B95 0BCD 0BB7 0BCC
TAMIL SYLLABLE SHRII; 0BB6 0BCD 0BB0 0BC0
-# Sinhala medial consonants and "reph" form
+# Sinhala medial consonants and "reph" form.
# Provisional 2010-05-13, Approved 2011-08-05
SINHALA CONSONANT SIGN YANSAYA;0DCA 200D 0DBA
@@ -497,7 +507,7 @@ KHMER VOWEL SIGN OM;17BB 17C6
KHMER VOWEL SIGN AAM;17B6 17C6
# Entries for JIS X 0213 compatibility mapping.
-# Provisional: 2008-11-07, Approved 2010-05-14
+# Provisional 2008-11-07, Approved 2010-05-14
HIRAGANA LETTER BIDAKUON NGA;304B 309A
HIRAGANA LETTER BIDAKUON NGI;304D 309A
diff --git a/Master/tlpkg/tlperl/lib/unicore/SpecialCasing.txt b/Master/tlpkg/tlperl/lib/unicore/SpecialCasing.txt
index 016a756eb07..43645bd2d10 100644
--- a/Master/tlpkg/tlperl/lib/unicore/SpecialCasing.txt
+++ b/Master/tlpkg/tlperl/lib/unicore/SpecialCasing.txt
@@ -1,18 +1,25 @@
-# SpecialCasing-6.3.0.txt
-# Date: 2013-05-08, 13:54:51 GMT [MD]
+# SpecialCasing-7.0.0.txt
+# Date: 2014-03-18, 07:18:02 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
#
-# Special Casing Properties
+# Special Casing
#
-# This file is a supplement to the UnicodeData file.
-# It contains additional information about the casing of Unicode characters.
-# (For compatibility, the UnicodeData.txt file only contains case mappings for
-# characters where they are 1-1, and independent of context and language.
-# For more information, see the discussion of Case Mappings in the Unicode Standard.
+# This file is a supplement to the UnicodeData.txt file. It does not define any
+# properties, but rather provides additional information about the casing of
+# Unicode characters, for situations when casing incurs a change in string length
+# or is dependent on context or locale. For compatibility, the UnicodeData.txt
+# file only contains simple case mappings for characters where they are one-to-one
+# and independent of context and language. The data in this file, combined with
+# the simple case mappings in UnicodeData.txt, defines the full case mappings
+# Lowercase_Mapping (lc), Titlecase_Mapping (tc), and Uppercase_Mapping (uc).
+#
+# Note that the preferred mechanism for defining tailored casing operations is
+# the Unicode Common Locale Data Repository (CLDR). For more information, see the
+# discussion of case mappings and case algorithms in the Unicode Standard.
#
# All code points not listed in this file that do not have a simple case mappings
# in UnicodeData.txt map to themselves.
@@ -21,16 +28,17 @@
# ================================================================================
# The entries in this file are in the following machine-readable format:
#
-# <code>; <lower> ; <title> ; <upper> ; (<condition_list> ;)? # <comment>
+# <code>; <lower>; <title>; <upper>; (<condition_list>;)? # <comment>
#
-# <code>, <lower>, <title>, and <upper> provide character values in hex. If there is more
-# than one character, they are separated by spaces. Other than as used to separate
-# elements, spaces are to be ignored.
+# <code>, <lower>, <title>, and <upper> provide the respective full case mappings
+# of <code>, expressed as character values in hex. If there is more than one character,
+# they are separated by spaces. Other than as used to separate elements, spaces are
+# to be ignored.
#
# The <condition_list> is optional. Where present, it consists of one or more language IDs
-# or contexts, separated by spaces. In these conditions:
+# or casing contexts, separated by spaces. In these conditions:
# - A condition list overrides the normal behavior if all of the listed conditions are true.
-# - The context is always the context of the characters in the original string,
+# - The casing context is always the context of the characters in the original string,
# NOT in the resulting string.
# - Case distinctions in the condition list are not significant.
# - Conditions preceded by "Not_" represent the negation of the condition.
@@ -38,18 +46,14 @@
#
# A language ID is defined by BCP 47, with '-' and '_' treated equivalently.
#
-# A context for a character C is defined by Section 3.13 Default Case
-# Algorithms, of The Unicode Standard, Version 6.3.
-# (This is identical to the context defined by Unicode 4.1.0,
-# as specified in http://www.unicode.org/versions/Unicode4.1.0/)
+# A casing context for a character is defined by Section 3.13 Default Case Algorithms
+# of The Unicode Standard.
#
# Parsers of this file must be prepared to deal with future additions to this format:
# * Additional contexts
# * Additional fields
# ================================================================================
-# @missing: 0000..10FFFF; <slc>; <stc>; <suc>;
-
# ================================================================================
# Unconditional mappings
# ================================================================================
@@ -114,7 +118,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
# This process can be achieved by first transforming the text to NFC before casing.
# E.g. <alpha><iota_subscript><acute> is uppercased to <ALPHA><acute><IOTA>
-# The following cases are already in the UnicodeData file, so are only commented here.
+# The following cases are already in the UnicodeData.txt file, so are only commented here.
# 0345; 0345; 0345; 0399; # COMBINING GREEK YPOGEGRAMMENI
@@ -205,7 +209,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
03A3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK CAPITAL LETTER SIGMA
-# Note: the following cases for non-final are already in the UnicodeData file.
+# Note: the following cases for non-final are already in the UnicodeData.txt file.
# 03A3; 03C3; 03A3; 03A3; # GREEK CAPITAL LETTER SIGMA
# 03C3; 03C3; 03A3; 03A3; # GREEK SMALL LETTER SIGMA
@@ -268,7 +272,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
0069; 0069; 0130; 0130; tr; # LATIN SMALL LETTER I
0069; 0069; 0130; 0130; az; # LATIN SMALL LETTER I
-# Note: the following case is already in the UnicodeData file.
+# Note: the following case is already in the UnicodeData.txt file.
# 0131; 0131; 0049; 0049; tr; # LATIN SMALL LETTER DOTLESS I
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Age.pl b/Master/tlpkg/tlperl/lib/unicore/To/Age.pl
index 1baf41fec03..137016f839c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Age.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Age.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -50,6 +50,7 @@ return <<'END';
37A 1.1
37B 37D 5.0
37E 1.1
+37F 7.0
384 38A 1.1
38C 1.1
38E 3A1 1.1
@@ -101,11 +102,13 @@ return <<'END';
514 523 5.1
524 525 5.2
526 527 6.0
+528 52F 7.0
531 556 1.1
559 55F 1.1
561 587 1.1
589 1.1
58A 3.0
+58D 58E 7.0
58F 6.1
591 5A1 2.0
5A2 4.1
@@ -119,6 +122,7 @@ return <<'END';
5F0 5F4 1.1
600 603 4.0
604 6.1
+605 7.0
606 60A 5.1
60B 4.1
60C 1.1
@@ -164,8 +168,11 @@ return <<'END';
840 85B 6.0
85E 6.0
8A0 6.1
+8A1 7.0
8A2 8AC 6.1
+8AD 8B2 7.0
8E4 8FE 6.1
+8FF 7.0
900 5.2
901 903 1.1
904 4.0
@@ -180,10 +187,12 @@ return <<'END';
958 970 1.1
971 972 5.1
973 977 6.0
+978 7.0
979 97A 5.2
97B 97C 5.0
97D 4.1
97E 97F 5.0
+980 7.0
981 983 1.1
985 98C 1.1
98F 990 1.1
@@ -278,11 +287,13 @@ BD7 1.1
BE6 4.1
BE7 BF2 1.1
BF3 BFA 4.0
+C00 7.0
C01 C03 1.1
C05 C0C 1.1
C0E C10 1.1
C12 C28 1.1
C2A C33 1.1
+C34 7.0
C35 C39 1.1
C3D 5.1
C3E C44 1.1
@@ -294,6 +305,7 @@ C60 C61 1.1
C62 C63 5.1
C66 C6F 1.1
C78 C7F 5.1
+C81 7.0
C82 C83 1.1
C85 C8C 1.1
C8E C90 1.1
@@ -310,6 +322,7 @@ CE0 CE1 1.1
CE2 CE3 5.0
CE6 CEF 1.1
CF1 CF2 5.0
+D01 7.0
D02 D03 1.1
D05 D0C 1.1
D0E D10 1.1
@@ -339,6 +352,7 @@ DCA 3.0
DCF DD4 3.0
DD6 3.0
DD8 DDF 3.0
+DE6 DEF 7.0
DF2 DF4 3.0
E01 E3A 1.1
E3F E5B 1.1
@@ -456,6 +470,7 @@ FD9 FDA 6.0
1677 167F 5.2
1680 169C 3.0
16A0 16F0 3.0
+16F1 16F8 7.0
1700 170C 3.2
170E 1714 3.2
1720 1736 3.2
@@ -474,6 +489,7 @@ FD9 FDA 6.0
18AA 5.1
18B0 18F5 5.2
1900 191C 4.0
+191D 191E 7.0
1920 192B 4.0
1930 193B 4.0
1940 4.0
@@ -493,6 +509,7 @@ FD9 FDA 6.0
1A7F 1A89 5.2
1A90 1A99 5.2
1AA0 1AAD 5.2
+1AB0 1ABE 7.0
1B00 1B4B 5.0
1B50 1B7C 5.0
1B80 1BAA 5.1
@@ -507,10 +524,12 @@ FD9 FDA 6.0
1CC0 1CC7 6.1
1CD0 1CF2 5.2
1CF3 1CF6 6.1
+1CF8 1CF9 7.0
1D00 1D6B 4.0
1D6C 1DC3 4.1
1DC4 1DCA 5.0
1DCB 1DE6 5.1
+1DE7 1DF5 7.0
1DFC 6.0
1DFD 5.2
1DFE 1DFF 5.0
@@ -562,6 +581,7 @@ FD9 FDA 6.0
20B6 20B8 5.2
20B9 6.0
20BA 6.2
+20BB 20BD 7.0
20D0 20E1 1.1
20E2 20E3 3.0
20E4 20EA 3.2
@@ -599,6 +619,7 @@ FD9 FDA 6.0
23DC 23E7 5.0
23E8 5.2
23E9 23F3 6.0
+23F4 23FA 7.0
2400 2424 1.1
2425 2426 3.0
2440 244A 1.1
@@ -637,6 +658,7 @@ FD9 FDA 6.0
26E3 5.2
26E4 26E7 6.0
26E8 26FF 5.2
+2700 7.0
2701 2704 1.1
2705 6.0
2706 2709 1.1
@@ -678,8 +700,14 @@ FD9 FDA 6.0
2B1B 2B1F 5.1
2B20 2B23 5.0
2B24 2B4C 5.1
+2B4D 2B4F 7.0
2B50 2B54 5.1
2B55 2B59 5.2
+2B5A 2B73 7.0
+2B76 2B95 7.0
+2B98 2BB9 7.0
+2BBD 2BC8 7.0
+2BCA 2BD1 7.0
2C00 2C2E 4.1
2C30 2C5E 4.1
2C60 2C6C 5.0
@@ -716,6 +744,7 @@ FD9 FDA 6.0
2E1E 2E30 5.1
2E31 5.2
2E32 2E3B 6.1
+2E3C 2E42 7.0
2E80 2E99 3.0
2E9B 2EF3 3.0
2F00 2FD5 3.0
@@ -784,6 +813,7 @@ A660 A661 6.0
A662 A673 5.1
A674 A67B 6.1
A67C A697 5.1
+A698 A69D 7.0
A69F 6.1
A6A0 A6F7 5.2
A700 A716 4.1
@@ -794,8 +824,12 @@ A722 A78C 5.1
A78D A78E 6.0
A790 A791 6.0
A792 A793 6.1
+A794 A79F 7.0
A7A0 A7A9 6.0
A7AA 6.1
+A7AB A7AD 7.0
+A7B0 A7B1 7.0
+A7F7 7.0
A7F8 A7F9 6.1
A7FA 6.0
A7FB A7FF 5.1
@@ -811,11 +845,13 @@ A960 A97C 5.2
A980 A9CD 5.2
A9CF A9D9 5.2
A9DE A9DF 5.2
+A9E0 A9FE 7.0
AA00 AA36 5.1
AA40 AA4D 5.1
AA50 AA59 5.1
AA5C AA5F 5.1
AA60 AA7B 5.2
+AA7C AA7F 7.0
AA80 AAC2 5.2
AADB AADF 5.2
AAE0 AAF6 6.1
@@ -824,6 +860,8 @@ AB09 AB0E 6.0
AB11 AB16 6.0
AB20 AB26 6.0
AB28 AB2E 6.0
+AB30 AB5F 7.0
+AB64 AB65 7.0
ABC0 ABED 5.2
ABF0 ABF9 5.2
AC00 D7A3 2.0
@@ -856,6 +894,7 @@ FE00 FE0F 3.2
FE10 FE19 4.1
FE20 FE23 1.1
FE24 FE26 5.1
+FE27 FE2D 7.0
FE30 FE44 1.1
FE45 FE46 3.2
FE47 FE48 4.0
@@ -890,13 +929,18 @@ FFFD FFFF 1.1
10107 10133 4.0
10137 1013F 4.0
10140 1018A 4.1
+1018B 1018C 7.0
10190 1019B 5.1
+101A0 7.0
101D0 101FD 5.1
10280 1029C 5.1
102A0 102D0 5.1
+102E0 102FB 7.0
10300 1031E 3.1
+1031F 7.0
10320 10323 3.1
10330 1034A 3.1
+10350 1037A 7.0
10380 1039D 4.0
1039F 4.0
103A0 103C3 4.1
@@ -906,6 +950,12 @@ FFFD FFFF 1.1
10428 1044D 3.1
1044E 1049D 4.0
104A0 104A9 4.0
+10500 10527 7.0
+10530 10563 7.0
+1056F 7.0
+10600 10736 7.0
+10740 10755 7.0
+10760 10767 7.0
10800 10805 4.0
10808 4.0
1080A 10835 4.0
@@ -914,6 +964,8 @@ FFFD FFFF 1.1
1083F 4.0
10840 10855 5.2
10857 1085F 5.2
+10860 1089E 7.0
+108A7 108AF 7.0
10900 10919 5.0
1091A 1091B 5.2
1091F 5.0
@@ -930,32 +982,88 @@ FFFD FFFF 1.1
10A3F 10A47 4.1
10A50 10A58 4.1
10A60 10A7F 5.2
+10A80 10A9F 7.0
+10AC0 10AE6 7.0
+10AEB 10AF6 7.0
10B00 10B35 5.2
10B39 10B55 5.2
10B58 10B72 5.2
10B78 10B7F 5.2
+10B80 10B91 7.0
+10B99 10B9C 7.0
+10BA9 10BAF 7.0
10C00 10C48 5.2
10E60 10E7E 5.2
11000 1104D 6.0
11052 1106F 6.0
+1107F 7.0
11080 110C1 5.2
110D0 110E8 6.1
110F0 110F9 6.1
11100 11134 6.1
11136 11143 6.1
+11150 11176 7.0
11180 111C8 6.1
+111CD 7.0
111D0 111D9 6.1
+111DA 7.0
+111E1 111F4 7.0
+11200 11211 7.0
+11213 1123D 7.0
+112B0 112EA 7.0
+112F0 112F9 7.0
+11301 11303 7.0
+11305 1130C 7.0
+1130F 11310 7.0
+11313 11328 7.0
+1132A 11330 7.0
+11332 11333 7.0
+11335 11339 7.0
+1133C 11344 7.0
+11347 11348 7.0
+1134B 1134D 7.0
+11357 7.0
+1135D 11363 7.0
+11366 1136C 7.0
+11370 11374 7.0
+11480 114C7 7.0
+114D0 114D9 7.0
+11580 115B5 7.0
+115B8 115C9 7.0
+11600 11644 7.0
+11650 11659 7.0
11680 116B7 6.1
116C0 116C9 6.1
+118A0 118F2 7.0
+118FF 7.0
+11AC0 11AF8 7.0
12000 1236E 5.0
+1236F 12398 7.0
12400 12462 5.0
+12463 1246E 7.0
12470 12473 5.0
+12474 7.0
13000 1342E 5.2
16800 16A38 6.0
+16A40 16A5E 7.0
+16A60 16A69 7.0
+16A6E 16A6F 7.0
+16AD0 16AED 7.0
+16AF0 16AF5 7.0
+16B00 16B45 7.0
+16B50 16B59 7.0
+16B5B 16B61 7.0
+16B63 16B77 7.0
+16B7D 16B8F 7.0
16F00 16F44 6.1
16F50 16F7E 6.1
16F8F 16F9F 6.1
1B000 1B001 6.0
+1BC00 1BC6A 7.0
+1BC70 1BC7C 7.0
+1BC80 1BC88 7.0
+1BC90 1BC99 7.0
+1BC9C 1BCA3 7.0
1D000 1D0F5 3.1
1D100 1D126 3.1
1D129 5.1
@@ -988,6 +1096,8 @@ FFFD FFFF 1.1
1D6A8 1D7C9 3.1
1D7CA 1D7CB 5.0
1D7CE 1D7FF 3.1
+1E800 1E8C4 7.0
+1E8C7 1E8D6 7.0
1EE00 1EE03 6.1
1EE05 1EE1F 6.1
1EE21 1EE22 6.1
@@ -1026,9 +1136,12 @@ FFFD FFFF 1.1
1F030 1F093 5.1
1F0A0 1F0AE 6.0
1F0B1 1F0BE 6.0
+1F0BF 7.0
1F0C1 1F0CF 6.0
1F0D1 1F0DF 6.0
+1F0E0 1F0F5 7.0
1F100 1F10A 5.2
+1F10B 1F10C 7.0
1F110 1F12E 5.2
1F130 6.0
1F131 5.2
@@ -1067,19 +1180,36 @@ FFFD FFFF 1.1
1F240 1F248 5.2
1F250 1F251 6.0
1F300 1F320 6.0
+1F321 1F32C 7.0
1F330 1F335 6.0
+1F336 7.0
1F337 1F37C 6.0
+1F37D 7.0
1F380 1F393 6.0
+1F394 1F39F 7.0
1F3A0 1F3C4 6.0
+1F3C5 7.0
1F3C6 1F3CA 6.0
+1F3CB 1F3CE 7.0
+1F3D4 1F3DF 7.0
1F3E0 1F3F0 6.0
+1F3F1 1F3F7 7.0
1F400 1F43E 6.0
+1F43F 7.0
1F440 6.0
+1F441 7.0
1F442 1F4F7 6.0
+1F4F8 7.0
1F4F9 1F4FC 6.0
+1F4FD 1F4FE 7.0
1F500 1F53D 6.0
+1F53E 1F53F 7.0
1F540 1F543 6.1
+1F544 1F54A 7.0
1F550 1F567 6.0
+1F568 1F579 7.0
+1F57B 1F5A3 7.0
+1F5A5 1F5FA 7.0
1F5FB 1F5FF 6.0
1F600 6.1
1F601 1F610 6.0
@@ -1103,9 +1233,20 @@ FFFD FFFF 1.1
1F630 1F633 6.0
1F634 6.1
1F635 1F640 6.0
+1F641 1F642 7.0
1F645 1F64F 6.0
+1F650 1F67F 7.0
1F680 1F6C5 6.0
+1F6C6 1F6CF 7.0
+1F6E0 1F6EC 7.0
+1F6F0 1F6F3 7.0
1F700 1F773 6.0
+1F780 1F7D4 7.0
+1F800 1F80B 7.0
+1F810 1F847 7.0
+1F850 1F859 7.0
+1F860 1F887 7.0
+1F890 1F8AD 7.0
1FFFE 1FFFF 2.0
20000 2A6D6 3.1
2A700 2B734 5.2
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Bc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Bc.pl
index c421c6aa842..a550b85cb4e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Bc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Bc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -70,6 +70,7 @@ F7 ON
3F6 ON
483 489 NSM
58A ON
+58D 58E ON
58F ET
590 R
591 5BD NSM
@@ -82,8 +83,7 @@ F7 ON
5C6 R
5C7 NSM
5C8 5FF R
-600 604 AN
-605 AL
+600 605 AN
606 607 ON
608 AL
609 60A ET
@@ -133,9 +133,7 @@ F7 ON
859 85B NSM
85C 89F R
8A0 8E3 AL
-8E4 8FE NSM
-8FF AL
-900 902 NSM
+8E4 902 NSM
93A NSM
93C NSM
941 948 NSM
@@ -177,15 +175,18 @@ BCD NSM
BF3 BF8 ON
BF9 ET
BFA ON
+C00 NSM
C3E C40 NSM
C46 C48 NSM
C4A C4D NSM
C55 C56 NSM
C62 C63 NSM
C78 C7E ON
+C81 NSM
CBC NSM
CCC CCD NSM
CE2 CE3 NSM
+D01 NSM
D41 D44 NSM
D4D NSM
D62 D63 NSM
@@ -258,6 +259,7 @@ FC6 NSM
1A65 1A6C NSM
1A73 1A7C NSM
1A7F NSM
+1AB0 1ABE NSM
1B00 1B03 NSM
1B34 NSM
1B36 1B3A NSM
@@ -267,7 +269,7 @@ FC6 NSM
1B80 1B81 NSM
1BA2 1BA5 NSM
1BA8 1BA9 NSM
-1BAB NSM
+1BAB 1BAD NSM
1BE6 NSM
1BE8 1BE9 NSM
1BED NSM
@@ -279,7 +281,8 @@ FC6 NSM
1CE2 1CE8 NSM
1CED NSM
1CF4 NSM
-1DC0 1DE6 NSM
+1CF8 1CF9 NSM
+1DC0 1DF5 NSM
1DFC 1DFF NSM
1FBD ON
1FBF 1FC1 ON
@@ -339,22 +342,24 @@ FC6 NSM
2213 ET
2214 2335 ON
237B 2394 ON
-2396 23F3 ON
+2396 23FA ON
2400 2426 ON
2440 244A ON
2460 2487 ON
2488 249B EN
24EA 26AB ON
-26AD 26FF ON
-2701 27FF ON
-2900 2B4C ON
-2B50 2B59 ON
+26AD 27FF ON
+2900 2B73 ON
+2B76 2B95 ON
+2B98 2BB9 ON
+2BBD 2BC8 ON
+2BCA 2BD1 ON
2CE5 2CEA ON
2CEF 2CF1 NSM
2CF9 2CFF ON
2D7F NSM
2DE0 2DFF NSM
-2E00 2E3B ON
+2E00 2E42 ON
2E80 2E99 ON
2E9B 2EF3 ON
2F00 2FD5 ON
@@ -405,11 +410,13 @@ A980 A982 NSM
A9B3 NSM
A9B6 A9B9 NSM
A9BC NSM
+A9E5 NSM
AA29 AA2E NSM
AA31 AA32 NSM
AA35 AA36 NSM
AA43 NSM
AA4C NSM
+AA7C NSM
AAB0 NSM
AAB2 AAB4 NSM
AAB7 AAB8 NSM
@@ -434,7 +441,7 @@ FDFD ON
FDFE FDFF AL
FE00 FE0F NSM
FE10 FE19 ON
-FE20 FE26 NSM
+FE20 FE2D NSM
FE30 FE4F ON
FE50 CS
FE51 ON
@@ -471,9 +478,13 @@ FFF0 FFF8 BN
FFF9 FFFD ON
FFFE FFFF BN
10101 ON
-10140 1018A ON
+10140 1018C ON
10190 1019B ON
+101A0 ON
101FD NSM
+102E0 NSM
+102E1 102FB EN
+10376 1037A NSM
10800 1091E R
1091F ON
10920 10A00 R
@@ -486,7 +497,9 @@ FFFE FFFF BN
10A38 10A3A NSM
10A3B 10A3E R
10A3F NSM
-10A40 10B38 R
+10A40 10AE4 R
+10AE5 10AE6 NSM
+10AE7 10B38 R
10B39 10B3F ON
10B40 10E5F R
10E60 10E7E AN
@@ -494,19 +507,44 @@ FFFE FFFF BN
11001 NSM
11038 11046 NSM
11052 11065 ON
-11080 11081 NSM
+1107F 11081 NSM
110B3 110B6 NSM
110B9 110BA NSM
11100 11102 NSM
11127 1112B NSM
1112D 11134 NSM
+11173 NSM
11180 11181 NSM
111B6 111BE NSM
+1122F 11231 NSM
+11234 NSM
+11236 11237 NSM
+112DF NSM
+112E3 112EA NSM
+11301 NSM
+1133C NSM
+11340 NSM
+11366 1136C NSM
+11370 11374 NSM
+114B3 114B8 NSM
+114BA NSM
+114BF 114C0 NSM
+114C2 114C3 NSM
+115B2 115B5 NSM
+115BC 115BD NSM
+115BF 115C0 NSM
+11633 1163A NSM
+1163D NSM
+1163F 11640 NSM
116AB NSM
116AD NSM
116B0 116B5 NSM
116B7 NSM
+16AF0 16AF4 NSM
+16B30 16B36 NSM
16F8F 16F92 NSM
+1BC9D 1BC9E NSM
+1BCA0 1BCA3 BN
1D167 1D169 NSM
1D173 1D17A BN
1D17B 1D182 NSM
@@ -522,7 +560,9 @@ FFFE FFFF BN
1D789 ON
1D7C3 ON
1D7CE 1D7FF EN
-1E800 1EDFF R
+1E800 1E8CF R
+1E8D0 1E8D6 NSM
+1E8D7 1EDFF R
1EE00 1EEEF AL
1EEF0 1EEF1 ON
1EEF2 1EEFF AL
@@ -530,29 +570,31 @@ FFFE FFFF BN
1F000 1F02B ON
1F030 1F093 ON
1F0A0 1F0AE ON
-1F0B1 1F0BE ON
+1F0B1 1F0BF ON
1F0C1 1F0CF ON
-1F0D1 1F0DF ON
+1F0D1 1F0F5 ON
1F100 1F10A EN
+1F10B 1F10C ON
1F16A 1F16B ON
-1F300 1F320 ON
-1F330 1F335 ON
-1F337 1F37C ON
-1F380 1F393 ON
-1F3A0 1F3C4 ON
-1F3C6 1F3CA ON
-1F3E0 1F3F0 ON
-1F400 1F43E ON
-1F440 ON
-1F442 1F4F7 ON
-1F4F9 1F4FC ON
-1F500 1F53D ON
-1F540 1F543 ON
-1F550 1F567 ON
-1F5FB 1F640 ON
-1F645 1F64F ON
-1F680 1F6C5 ON
+1F300 1F32C ON
+1F330 1F37D ON
+1F380 1F3CE ON
+1F3D4 1F3F7 ON
+1F400 1F4FE ON
+1F500 1F54A ON
+1F550 1F579 ON
+1F57B 1F5A3 ON
+1F5A5 1F642 ON
+1F645 1F6CF ON
+1F6E0 1F6EC ON
+1F6F0 1F6F3 ON
1F700 1F773 ON
+1F780 1F7D4 ON
+1F800 1F80B ON
+1F810 1F847 ON
+1F850 1F859 ON
+1F860 1F887 ON
+1F890 1F8AD ON
1FFFE 1FFFF BN
2FFFE 2FFFF BN
3FFFE 3FFFF BN
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Bmg.pl b/Master/tlpkg/tlperl/lib/unicore/To/Bmg.pl
index 6a3bd63e30c..edded13892d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Bmg.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Bmg.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -9,7 +9,8 @@
# but its format and even its name or existence are subject to change without
# notice in a future Perl version. Don't use it directly. Instead, its
# contents are now retrievable through a stable API in the Unicode::UCD
-# module: Unicode::UCD::prop_invmap('Bidi_Mirroring_Glyph').
+# module: Unicode::UCD::prop_invmap('Bidi_Mirroring_Glyph') (Values for individual
+# code points can be retrieved via Unicode::UCD::charprop());
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Bpb.pl b/Master/tlpkg/tlperl/lib/unicore/To/Bpb.pl
index 2bc9f419ed8..0ed344d7554 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Bpb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Bpb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Bpt.pl b/Master/tlpkg/tlperl/lib/unicore/To/Bpt.pl
index b81dc8dbf0e..9bd67e1a2fc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Bpt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Bpt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Cf.pl b/Master/tlpkg/tlperl/lib/unicore/To/Cf.pl
index 2e6e152aff4..92aae0c85dd 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Cf.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Cf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -311,6 +311,7 @@ D8 DE F8
370 371
372 373
376 377
+37F 3F3
386 3AC
388 38A 3AD
38C 3CC
@@ -441,6 +442,10 @@ D8 DE F8
522 523
524 525
526 527
+528 529
+52A 52B
+52C 52D
+52E 52F
531 556 561
10A0 10C5 2D00
10C7 2D27
@@ -707,6 +712,8 @@ A690 A691
A692 A693
A694 A695
A696 A697
+A698 A699
+A69A A69B
A722 A723
A724 A725
A726 A727
@@ -757,12 +764,23 @@ A78B A78C
A78D 265
A790 A791
A792 A793
+A796 A797
+A798 A799
+A79A A79B
+A79C A79D
+A79E A79F
A7A0 A7A1
A7A2 A7A3
A7A4 A7A5
A7A6 A7A7
A7A8 A7A9
A7AA 266
+A7AB 25C
+A7AC 261
+A7AD 26C
+A7B0 29E
+A7B1 287
FF21 FF3A FF41
10400 10427 10428
+118A0 118BF 118C0
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Digit.pl b/Master/tlpkg/tlperl/lib/unicore/To/Digit.pl
index d7c809c10ef..a2a6cdca125 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Digit.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Digit.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -9,7 +9,8 @@
# but its format and even its name or existence are subject to change without
# notice in a future Perl version. Don't use it directly. Instead, its
# contents are now retrievable through a stable API in the Unicode::UCD
-# module: Unicode::UCD::prop_invmap('Perl_Decimal_Digit').
+# module: Unicode::UCD::prop_invmap('Perl_Decimal_Digit') (Values for individual
+# code points can be retrieved via Unicode::UCD::charprop());
@@ -150,6 +151,16 @@ return <<'END';
0D6D 7
0D6E 8
0D6F 9
+0DE6 0
+0DE7 1
+0DE8 2
+0DE9 3
+0DEA 4
+0DEB 5
+0DEC 6
+0DED 7
+0DEE 8
+0DEF 9
0E50 0
0E51 1
0E52 2
@@ -340,6 +351,16 @@ A9D6 6
A9D7 7
A9D8 8
A9D9 9
+A9F0 0
+A9F1 1
+A9F2 2
+A9F3 3
+A9F4 4
+A9F5 5
+A9F6 6
+A9F7 7
+A9F8 8
+A9F9 9
AA50 0
AA51 1
AA52 2
@@ -420,6 +441,36 @@ FF19 9
111D7 7
111D8 8
111D9 9
+112F0 0
+112F1 1
+112F2 2
+112F3 3
+112F4 4
+112F5 5
+112F6 6
+112F7 7
+112F8 8
+112F9 9
+114D0 0
+114D1 1
+114D2 2
+114D3 3
+114D4 4
+114D5 5
+114D6 6
+114D7 7
+114D8 8
+114D9 9
+11650 0
+11651 1
+11652 2
+11653 3
+11654 4
+11655 5
+11656 6
+11657 7
+11658 8
+11659 9
116C0 0
116C1 1
116C2 2
@@ -430,6 +481,36 @@ FF19 9
116C7 7
116C8 8
116C9 9
+118E0 0
+118E1 1
+118E2 2
+118E3 3
+118E4 4
+118E5 5
+118E6 6
+118E7 7
+118E8 8
+118E9 9
+16A60 0
+16A61 1
+16A62 2
+16A63 3
+16A64 4
+16A65 5
+16A66 6
+16A67 7
+16A68 8
+16A69 9
+16B50 0
+16B51 1
+16B52 2
+16B53 3
+16B54 4
+16B55 5
+16B56 6
+16B57 7
+16B58 8
+16B59 9
1D7CE 0
1D7CF 1
1D7D0 2
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Ea.pl b/Master/tlpkg/tlperl/lib/unicore/To/Ea.pl
index 3a7f803512a..f1225d653e1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Ea.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Ea.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Fold.pl b/Master/tlpkg/tlperl/lib/unicore/To/Fold.pl
index 39370e4d69d..461349f06be 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Fold.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Fold.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -9,7 +9,8 @@
# but its format and even its name or existence are subject to change without
# notice in a future Perl version. Don't use it directly. Instead, its
# contents are now retrievable through a stable API in the Unicode::UCD
-# module: Unicode::UCD::prop_invmap('Case_Folding').
+# module: Unicode::UCD::prop_invmap('Case_Folding') (Values for individual
+# code points can be retrieved via Unicode::UCD::charprop());
@@ -366,6 +367,7 @@ return <<'END';
0370 0371
0372 0373
0376 0377
+037F 03F3
0386 03AC
0388 03AD
0389 03AE
@@ -571,6 +573,10 @@ return <<'END';
0522 0523
0524 0525
0526 0527
+0528 0529
+052A 052B
+052C 052D
+052E 052F
0531 0561
0532 0562
0533 0563
@@ -1068,6 +1074,8 @@ A690 A691
A692 A693
A694 A695
A696 A697
+A698 A699
+A69A A69B
A722 A723
A724 A725
A726 A727
@@ -1118,12 +1126,22 @@ A78B A78C
A78D 0265
A790 A791
A792 A793
+A796 A797
+A798 A799
+A79A A79B
+A79C A79D
+A79E A79F
A7A0 A7A1
A7A2 A7A3
A7A4 A7A5
A7A6 A7A7
A7A8 A7A9
A7AA 0266
+A7AB 025C
+A7AC 0261
+A7AD 026C
+A7B0 029E
+A7B1 0287
FF21 FF41
FF22 FF42
FF23 FF43
@@ -1190,4 +1208,36 @@ FF3A FF5A
10425 1044D
10426 1044E
10427 1044F
+118A0 118C0
+118A1 118C1
+118A2 118C2
+118A3 118C3
+118A4 118C4
+118A5 118C5
+118A6 118C6
+118A7 118C7
+118A8 118C8
+118A9 118C9
+118AA 118CA
+118AB 118CB
+118AC 118CC
+118AD 118CD
+118AE 118CE
+118AF 118CF
+118B0 118D0
+118B1 118D1
+118B2 118D2
+118B3 118D3
+118B4 118D4
+118B5 118D5
+118B6 118D6
+118B7 118D7
+118B8 118D8
+118B9 118D9
+118BA 118DA
+118BB 118DB
+118BC 118DC
+118BD 118DD
+118BE 118DE
+118BF 118DF
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/GCB.pl b/Master/tlpkg/tlperl/lib/unicore/To/GCB.pl
index 062e33db4d6..abb690ed499 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/GCB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/GCB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -31,7 +31,7 @@ AD Control
5C1 5C2 Extend
5C4 5C5 Extend
5C7 Extend
-600 604 Control
+600 605 Control
610 61A Extend
61C Control
64B 65F Extend
@@ -51,8 +51,7 @@ AD Control
825 827 Extend
829 82D Extend
859 85B Extend
-8E4 8FE Extend
-900 902 Extend
+8E4 902 Extend
903 SpacingMark
93A Extend
93B SpacingMark
@@ -115,6 +114,7 @@ BC6 BC8 SpacingMark
BCA BCC SpacingMark
BCD Extend
BD7 Extend
+C00 Extend
C01 C03 SpacingMark
C3E C40 Extend
C41 C44 SpacingMark
@@ -122,6 +122,7 @@ C46 C48 Extend
C4A C4D Extend
C55 C56 Extend
C62 C63 Extend
+C81 Extend
C82 C83 SpacingMark
CBC Extend
CBE SpacingMark
@@ -135,6 +136,7 @@ CCA CCB SpacingMark
CCC CCD Extend
CD5 CD6 Extend
CE2 CE3 Extend
+D01 Extend
D02 D03 SpacingMark
D3E Extend
D3F D40 SpacingMark
@@ -231,6 +233,7 @@ FC6 Extend
1A6D 1A72 SpacingMark
1A73 1A7C Extend
1A7F Extend
+1AB0 1ABE Extend
1B00 1B03 Extend
1B04 SpacingMark
1B34 Extend
@@ -249,8 +252,7 @@ FC6 Extend
1BA6 1BA7 SpacingMark
1BA8 1BA9 Extend
1BAA SpacingMark
-1BAB Extend
-1BAC 1BAD SpacingMark
+1BAB 1BAD Extend
1BE6 Extend
1BE7 SpacingMark
1BE8 1BE9 Extend
@@ -270,7 +272,8 @@ FC6 Extend
1CED Extend
1CF2 1CF3 SpacingMark
1CF4 Extend
-1DC0 1DE6 Extend
+1CF8 1CF9 Extend
+1DC0 1DF5 Extend
1DFC 1DFF Extend
200B Control
200C 200D Extend
@@ -309,6 +312,7 @@ A9B6 A9B9 Extend
A9BA A9BB SpacingMark
A9BC Extend
A9BD A9C0 SpacingMark
+A9E5 Extend
AA29 AA2E Extend
AA2F AA30 SpacingMark
AA31 AA32 Extend
@@ -317,6 +321,7 @@ AA35 AA36 Extend
AA43 Extend
AA4C Extend
AA4D SpacingMark
+AA7C Extend
AAB0 Extend
AAB2 AAB4 Extend
AAB7 AAB8 Extend
@@ -1137,21 +1142,24 @@ D7CB D7FB T
D800 DFFF Control
FB1E Extend
FE00 FE0F Extend
-FE20 FE26 Extend
+FE20 FE2D Extend
FEFF Control
FF9E FF9F Extend
FFF0 FFFB Control
101FD Extend
+102E0 Extend
+10376 1037A Extend
10A01 10A03 Extend
10A05 10A06 Extend
10A0C 10A0F Extend
10A38 10A3A Extend
10A3F Extend
+10AE5 10AE6 Extend
11000 SpacingMark
11001 Extend
11002 SpacingMark
11038 11046 Extend
-11080 11081 Extend
+1107F 11081 Extend
11082 SpacingMark
110B0 110B2 SpacingMark
110B3 110B6 Extend
@@ -1162,11 +1170,58 @@ FFF0 FFFB Control
11127 1112B Extend
1112C SpacingMark
1112D 11134 Extend
+11173 Extend
11180 11181 Extend
11182 SpacingMark
111B3 111B5 SpacingMark
111B6 111BE Extend
111BF 111C0 SpacingMark
+1122C 1122E SpacingMark
+1122F 11231 Extend
+11232 11233 SpacingMark
+11234 Extend
+11235 SpacingMark
+11236 11237 Extend
+112DF Extend
+112E0 112E2 SpacingMark
+112E3 112EA Extend
+11301 Extend
+11302 11303 SpacingMark
+1133C Extend
+1133E Extend
+1133F SpacingMark
+11340 Extend
+11341 11344 SpacingMark
+11347 11348 SpacingMark
+1134B 1134D SpacingMark
+11357 Extend
+11362 11363 SpacingMark
+11366 1136C Extend
+11370 11374 Extend
+114B0 Extend
+114B1 114B2 SpacingMark
+114B3 114B8 Extend
+114B9 SpacingMark
+114BA Extend
+114BB 114BC SpacingMark
+114BD Extend
+114BE SpacingMark
+114BF 114C0 Extend
+114C1 SpacingMark
+114C2 114C3 Extend
+115AF Extend
+115B0 115B1 SpacingMark
+115B2 115B5 Extend
+115B8 115BB SpacingMark
+115BC 115BD Extend
+115BE SpacingMark
+115BF 115C0 Extend
+11630 11632 SpacingMark
+11633 1163A Extend
+1163B 1163C SpacingMark
+1163D Extend
+1163E SpacingMark
+1163F 11640 Extend
116AB Extend
116AC SpacingMark
116AD Extend
@@ -1174,8 +1229,12 @@ FFF0 FFFB Control
116B0 116B5 Extend
116B6 SpacingMark
116B7 Extend
+16AF0 16AF4 Extend
+16B30 16B36 Extend
16F51 16F7E SpacingMark
16F8F 16F92 Extend
+1BC9D 1BC9E Extend
+1BCA0 1BCA3 Control
1D165 Extend
1D166 SpacingMark
1D167 1D169 Extend
@@ -1186,6 +1245,7 @@ FFF0 FFFB Control
1D185 1D18B Extend
1D1AA 1D1AD Extend
1D242 1D244 Extend
+1E8D0 1E8D6 Extend
1F1E6 1F1FF Regional_Indicator
E0000 E00FF Control
E0100 E01EF Extend
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Gc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Gc.pl
index b88168fc961..173607104d3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Gc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Gc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -14,7 +14,7 @@
# the main body of the table, and what all code points missing from this file
# map to.
$utf8::SwashInfo{'ToGc'}{'format'} = 's'; # string
-$utf8::SwashInfo{'ToGc'}{'missing'} = 'Cn';
+$utf8::SwashInfo{'ToGc'}{'missing'} = 'Unassigned';
return <<'END';
0 1F Cc
@@ -389,6 +389,7 @@ F8 FF Ll
37A Lm
37B 37D Ll
37E Po
+37F Lu
384 385 Sk
386 Lu
387 Po
@@ -629,12 +630,21 @@ F8 FF Ll
525 Ll
526 Lu
527 Ll
+528 Lu
+529 Ll
+52A Lu
+52B Ll
+52C Lu
+52D Ll
+52E Lu
+52F Ll
531 556 Lu
559 Lm
55A 55F Po
561 587 Ll
589 Po
58A Pd
+58D 58E So
58F Sc
591 5BD Mn
5BE Pd
@@ -648,7 +658,7 @@ F8 FF Ll
5D0 5EA Lo
5F0 5F2 Lo
5F3 5F4 Po
-600 604 Cf
+600 605 Cf
606 608 Sm
609 60A Po
60B Sc
@@ -710,10 +720,8 @@ F8 FF Ll
840 858 Lo
859 85B Mn
85E Po
-8A0 Lo
-8A2 8AC Lo
-8E4 8FE Mn
-900 902 Mn
+8A0 8B2 Lo
+8E4 902 Mn
903 Mc
904 939 Lo
93A Mn
@@ -733,8 +741,7 @@ F8 FF Ll
966 96F Nd
970 Po
971 Lm
-972 977 Lo
-979 97F Lo
+972 980 Lo
981 Mn
982 983 Mc
985 98C Lo
@@ -854,12 +861,12 @@ BF0 BF2 No
BF3 BF8 So
BF9 Sc
BFA So
+C00 Mn
C01 C03 Mc
C05 C0C Lo
C0E C10 Lo
C12 C28 Lo
-C2A C33 Lo
-C35 C39 Lo
+C2A C39 Lo
C3D Lo
C3E C40 Mn
C41 C44 Mc
@@ -872,6 +879,7 @@ C62 C63 Mn
C66 C6F Nd
C78 C7E No
C7F So
+C81 Mn
C82 C83 Mc
C85 C8C Lo
C8E C90 Lo
@@ -893,6 +901,7 @@ CE0 CE1 Lo
CE2 CE3 Mn
CE6 CEF Nd
CF1 CF2 Lo
+D01 Mn
D02 D03 Mc
D05 D0C Lo
D0E D10 Lo
@@ -922,6 +931,7 @@ DCF DD1 Mc
DD2 DD4 Mn
DD6 Mn
DD8 DDF Mc
+DE6 DEF Nd
DF2 DF3 Mc
DF4 Po
E01 E30 Lo
@@ -1069,6 +1079,7 @@ FD9 FDA Po
16A0 16EA Lo
16EB 16ED Po
16EE 16F0 Nl
+16F1 16F8 Lo
1700 170C Lo
170E 1711 Lo
1712 1714 Mn
@@ -1109,7 +1120,7 @@ FD9 FDA Po
18A9 Mn
18AA Lo
18B0 18F5 Lo
-1900 191C Lo
+1900 191E Lo
1920 1922 Mn
1923 1926 Mc
1927 1928 Mn
@@ -1153,6 +1164,8 @@ FD9 FDA Po
1AA0 1AA6 Po
1AA7 Lm
1AA8 1AAD Po
+1AB0 1ABD Mn
+1ABE Me
1B00 1B03 Mn
1B04 Mc
1B05 1B33 Lo
@@ -1178,8 +1191,7 @@ FD9 FDA Po
1BA6 1BA7 Mc
1BA8 1BA9 Mn
1BAA Mc
-1BAB Mn
-1BAC 1BAD Mc
+1BAB 1BAD Mn
1BAE 1BAF Lo
1BB0 1BB9 Nd
1BBA 1BE5 Lo
@@ -1216,13 +1228,14 @@ FD9 FDA Po
1CF2 1CF3 Mc
1CF4 Mn
1CF5 1CF6 Lo
+1CF8 1CF9 Mn
1D00 1D2B Ll
1D2C 1D6A Lm
1D6B 1D77 Ll
1D78 Lm
1D79 1D9A Ll
1D9B 1DBF Lm
-1DC0 1DE6 Mn
+1DC0 1DF5 Mn
1DFC 1DFF Mn
1E00 Lu
1E01 Ll
@@ -1564,7 +1577,7 @@ FD9 FDA Po
208D Ps
208E Pe
2090 209C Lm
-20A0 20BA Sc
+20A0 20BD Sc
20D0 20DC Mn
20DD 20E0 Me
20E1 Mn
@@ -1651,7 +1664,7 @@ FD9 FDA Po
239B 23B3 Sm
23B4 23DB So
23DC 23E1 Sm
-23E2 23F3 So
+23E2 23FA So
2400 2426 So
2440 244A So
2460 249B No
@@ -1665,8 +1678,7 @@ FD9 FDA Po
25F8 25FF Sm
2600 266E So
266F Sm
-2670 26FF So
-2701 2767 So
+2670 2767 So
2768 Ps
2769 Pe
276A Ps
@@ -1735,7 +1747,11 @@ FD9 FDA Po
2B30 2B44 Sm
2B45 2B46 So
2B47 2B4C Sm
-2B50 2B59 So
+2B4D 2B73 So
+2B76 2B95 So
+2B98 2BB9 So
+2BBD 2BC8 So
+2BCA 2BD1 So
2C00 2C2E Lu
2C30 2C5E Ll
2C60 Lu
@@ -1916,6 +1932,10 @@ FD9 FDA Po
2E2F Lm
2E30 2E39 Po
2E3A 2E3B Pd
+2E3C 2E3F Po
+2E40 Pd
+2E41 Po
+2E42 Ps
2E80 2E99 So
2E9B 2EF3 So
2F00 2FD5 So
@@ -2083,6 +2103,11 @@ A694 Lu
A695 Ll
A696 Lu
A697 Ll
+A698 Lu
+A699 Ll
+A69A Lu
+A69B Ll
+A69C A69D Lm
A69F Mn
A6A0 A6E5 Lo
A6E6 A6EF Nl
@@ -2192,7 +2217,17 @@ A78E Ll
A790 Lu
A791 Ll
A792 Lu
-A793 Ll
+A793 A795 Ll
+A796 Lu
+A797 Ll
+A798 Lu
+A799 Ll
+A79A Lu
+A79B Ll
+A79C Lu
+A79D Ll
+A79E Lu
+A79F Ll
A7A0 Lu
A7A1 Ll
A7A2 Lu
@@ -2203,7 +2238,9 @@ A7A6 Lu
A7A7 Ll
A7A8 Lu
A7A9 Ll
-A7AA Lu
+A7AA A7AD Lu
+A7B0 A7B1 Lu
+A7F7 Lo
A7F8 A7F9 Lm
A7FA Ll
A7FB A801 Lo
@@ -2255,6 +2292,12 @@ A9C1 A9CD Po
A9CF Lm
A9D0 A9D9 Nd
A9DE A9DF Po
+A9E0 A9E4 Lo
+A9E5 Mn
+A9E6 Lm
+A9E7 A9EF Lo
+A9F0 A9F9 Nd
+A9FA A9FE Lo
AA00 AA28 Lo
AA29 AA2E Mn
AA2F AA30 Mc
@@ -2274,7 +2317,9 @@ AA71 AA76 Lo
AA77 AA79 So
AA7A Lo
AA7B Mc
-AA80 AAAF Lo
+AA7C Mn
+AA7D Mc
+AA7E AAAF Lo
AAB0 Mn
AAB1 Lo
AAB2 AAB4 Mn
@@ -2302,6 +2347,10 @@ AB09 AB0E Lo
AB11 AB16 Lo
AB20 AB26 Lo
AB28 AB2E Lo
+AB30 AB5A Ll
+AB5B Sk
+AB5C AB5F Lm
+AB64 AB65 Ll
ABC0 ABE2 Lo
ABE3 ABE4 Mc
ABE5 Mn
@@ -2333,8 +2382,8 @@ FB43 FB44 Lo
FB46 FBB1 Lo
FBB2 FBC1 Sk
FBD3 FD3D Lo
-FD3E Ps
-FD3F Pe
+FD3E Pe
+FD3F Ps
FD50 FD8F Lo
FD92 FDC7 Lo
FDF0 FDFB Lo
@@ -2345,7 +2394,7 @@ FE10 FE16 Po
FE17 Ps
FE18 Pe
FE19 Po
-FE20 FE26 Mn
+FE20 FE2D Mn
FE30 Po
FE31 FE32 Pd
FE33 FE34 Pc
@@ -2453,18 +2502,24 @@ FFFC FFFD So
10140 10174 Nl
10175 10178 No
10179 10189 So
-1018A No
+1018A 1018B No
+1018C So
10190 1019B So
+101A0 So
101D0 101FC So
101FD Mn
10280 1029C Lo
102A0 102D0 Lo
-10300 1031E Lo
+102E0 Mn
+102E1 102FB No
+10300 1031F Lo
10320 10323 No
10330 10340 Lo
10341 Nl
10342 10349 Lo
1034A Nl
+10350 10375 Lo
+10376 1037A Mn
10380 1039D Lo
1039F Po
103A0 103C3 Lo
@@ -2475,6 +2530,12 @@ FFFC FFFD So
10428 1044F Ll
10450 1049D Lo
104A0 104A9 Nd
+10500 10527 Lo
+10530 10563 Lo
+1056F Po
+10600 10736 Lo
+10740 10755 Lo
+10760 10767 Lo
10800 10805 Lo
10808 Lo
1080A 10835 Lo
@@ -2483,6 +2544,11 @@ FFFC FFFD So
1083F 10855 Lo
10857 Po
10858 1085F No
+10860 10876 Lo
+10877 10878 So
+10879 1087F No
+10880 1089E Lo
+108A7 108AF No
10900 10915 Lo
10916 1091B No
1091F Po
@@ -2504,12 +2570,23 @@ FFFC FFFD So
10A60 10A7C Lo
10A7D 10A7E No
10A7F Po
+10A80 10A9C Lo
+10A9D 10A9F No
+10AC0 10AC7 Lo
+10AC8 So
+10AC9 10AE4 Lo
+10AE5 10AE6 Mn
+10AEB 10AEF No
+10AF0 10AF6 Po
10B00 10B35 Lo
10B39 10B3F Po
10B40 10B55 Lo
10B58 10B5F No
10B60 10B72 Lo
10B78 10B7F No
+10B80 10B91 Lo
+10B99 10B9C Po
+10BA9 10BAF No
10C00 10C48 Lo
10E60 10E7E No
11000 Mc
@@ -2520,7 +2597,7 @@ FFFC FFFD So
11047 1104D Po
11052 11065 No
11066 1106F Nd
-11080 11081 Mn
+1107F 11081 Mn
11082 Mc
11083 110AF Lo
110B0 110B2 Mc
@@ -2539,6 +2616,10 @@ FFFC FFFD So
1112D 11134 Mn
11136 1113F Nd
11140 11143 Po
+11150 11172 Lo
+11173 Mn
+11174 11175 Po
+11176 Lo
11180 11181 Mn
11182 Mc
11183 111B2 Lo
@@ -2547,7 +2628,75 @@ FFFC FFFD So
111BF 111C0 Mc
111C1 111C4 Lo
111C5 111C8 Po
+111CD Po
111D0 111D9 Nd
+111DA Lo
+111E1 111F4 No
+11200 11211 Lo
+11213 1122B Lo
+1122C 1122E Mc
+1122F 11231 Mn
+11232 11233 Mc
+11234 Mn
+11235 Mc
+11236 11237 Mn
+11238 1123D Po
+112B0 112DE Lo
+112DF Mn
+112E0 112E2 Mc
+112E3 112EA Mn
+112F0 112F9 Nd
+11301 Mn
+11302 11303 Mc
+11305 1130C Lo
+1130F 11310 Lo
+11313 11328 Lo
+1132A 11330 Lo
+11332 11333 Lo
+11335 11339 Lo
+1133C Mn
+1133D Lo
+1133E 1133F Mc
+11340 Mn
+11341 11344 Mc
+11347 11348 Mc
+1134B 1134D Mc
+11357 Mc
+1135D 11361 Lo
+11362 11363 Mc
+11366 1136C Mn
+11370 11374 Mn
+11480 114AF Lo
+114B0 114B2 Mc
+114B3 114B8 Mn
+114B9 Mc
+114BA Mn
+114BB 114BE Mc
+114BF 114C0 Mn
+114C1 Mc
+114C2 114C3 Mn
+114C4 114C5 Lo
+114C6 Po
+114C7 Lo
+114D0 114D9 Nd
+11580 115AE Lo
+115AF 115B1 Mc
+115B2 115B5 Mn
+115B8 115BB Mc
+115BC 115BD Mn
+115BE Mc
+115BF 115C0 Mn
+115C1 115C9 Po
+11600 1162F Lo
+11630 11632 Mc
+11633 1163A Mn
+1163B 1163C Mc
+1163D Mn
+1163E Mc
+1163F 11640 Mn
+11641 11643 Po
+11644 Lo
+11650 11659 Nd
11680 116AA Lo
116AB Mn
116AC Mc
@@ -2557,17 +2706,48 @@ FFFC FFFD So
116B6 Mc
116B7 Mn
116C0 116C9 Nd
-12000 1236E Lo
-12400 12462 Nl
-12470 12473 Po
+118A0 118BF Lu
+118C0 118DF Ll
+118E0 118E9 Nd
+118EA 118F2 No
+118FF Lo
+11AC0 11AF8 Lo
+12000 12398 Lo
+12400 1246E Nl
+12470 12474 Po
13000 1342E Lo
16800 16A38 Lo
+16A40 16A5E Lo
+16A60 16A69 Nd
+16A6E 16A6F Po
+16AD0 16AED Lo
+16AF0 16AF4 Mn
+16AF5 Po
+16B00 16B2F Lo
+16B30 16B36 Mn
+16B37 16B3B Po
+16B3C 16B3F So
+16B40 16B43 Lm
+16B44 Po
+16B45 So
+16B50 16B59 Nd
+16B5B 16B61 No
+16B63 16B77 Lo
+16B7D 16B8F Lo
16F00 16F44 Lo
16F50 Lo
16F51 16F7E Mc
16F8F 16F92 Mn
16F93 16F9F Lm
1B000 1B001 Lo
+1BC00 1BC6A Lo
+1BC70 1BC7C Lo
+1BC80 1BC88 Lo
+1BC90 1BC99 Lo
+1BC9C So
+1BC9D 1BC9E Mn
+1BC9F Po
+1BCA0 1BCA3 Cf
1D000 1D0F5 So
1D100 1D126 So
1D129 1D164 So
@@ -2657,6 +2837,9 @@ FFFC FFFD So
1D7CA Lu
1D7CB Ll
1D7CE 1D7FF Nd
+1E800 1E8C4 Lo
+1E8C7 1E8CF No
+1E8D0 1E8D6 Mn
1EE00 1EE03 Lo
1EE05 1EE1F Lo
1EE21 1EE22 Lo
@@ -2694,10 +2877,10 @@ FFFC FFFD So
1F000 1F02B So
1F030 1F093 So
1F0A0 1F0AE So
-1F0B1 1F0BE So
+1F0B1 1F0BF So
1F0C1 1F0CF So
-1F0D1 1F0DF So
-1F100 1F10A No
+1F0D1 1F0F5 So
+1F100 1F10C No
1F110 1F12E So
1F130 1F16B So
1F170 1F19A So
@@ -2705,24 +2888,25 @@ FFFC FFFD So
1F210 1F23A So
1F240 1F248 So
1F250 1F251 So
-1F300 1F320 So
-1F330 1F335 So
-1F337 1F37C So
-1F380 1F393 So
-1F3A0 1F3C4 So
-1F3C6 1F3CA So
-1F3E0 1F3F0 So
-1F400 1F43E So
-1F440 So
-1F442 1F4F7 So
-1F4F9 1F4FC So
-1F500 1F53D So
-1F540 1F543 So
-1F550 1F567 So
-1F5FB 1F640 So
-1F645 1F64F So
-1F680 1F6C5 So
+1F300 1F32C So
+1F330 1F37D So
+1F380 1F3CE So
+1F3D4 1F3F7 So
+1F400 1F4FE So
+1F500 1F54A So
+1F550 1F579 So
+1F57B 1F5A3 So
+1F5A5 1F642 So
+1F645 1F6CF So
+1F6E0 1F6EC So
+1F6F0 1F6F3 So
1F700 1F773 So
+1F780 1F7D4 So
+1F800 1F80B So
+1F810 1F847 So
+1F850 1F859 So
+1F860 1F887 So
+1F890 1F8AD So
20000 2A6D6 Lo
2A700 2B734 Lo
2B740 2B81D Lo
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Hst.pl b/Master/tlpkg/tlperl/lib/unicore/To/Hst.pl
index 90afeb1d86f..d368bb464c7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Hst.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Hst.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Isc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Isc.pl
index 6ce40cbb414..e08a2481d61 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Isc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Isc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Jg.pl b/Master/tlpkg/tlperl/lib/unicore/To/Jg.pl
index 02a0e50b813..121ee572539 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Jg.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Jg.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -143,7 +143,7 @@ return <<'END';
77C Hah
77D 77E Seen
77F Kaf
-8A0 Beh
+8A0 8A1 Beh
8A2 Hah
8A3 Tah
8A4 Feh
@@ -154,4 +154,36 @@ return <<'END';
8AA Reh
8AB Waw
8AC Rohingya_Yeh
+8AE Dal
+8AF Sad
+8B0 Gaf
+8B1 Straight_Waw
+8B2 Reh
+10AC0 Manichaean_Aleph
+10AC1 10AC2 Manichaean_Beth
+10AC3 10AC4 Manichaean_Gimel
+10AC5 Manichaean_Daleth
+10AC7 Manichaean_Waw
+10AC9 10ACA Manichaean_Zayin
+10ACD Manichaean_Heth
+10ACE Manichaean_Teth
+10ACF Manichaean_Yodh
+10AD0 10AD2 Manichaean_Kaph
+10AD3 Manichaean_Lamedh
+10AD4 Manichaean_Dhamedh
+10AD5 Manichaean_Thamedh
+10AD6 Manichaean_Mem
+10AD7 Manichaean_Nun
+10AD8 Manichaean_Samekh
+10AD9 10ADA Manichaean_Ayin
+10ADB 10ADC Manichaean_Pe
+10ADD Manichaean_Sadhe
+10ADE 10AE0 Manichaean_Qoph
+10AE1 Manichaean_Resh
+10AE4 Manichaean_Taw
+10AEB Manichaean_One
+10AEC Manichaean_Five
+10AED Manichaean_Ten
+10AEE Manichaean_Twenty
+10AEF Manichaean_Hundred
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Jt.pl b/Master/tlpkg/tlperl/lib/unicore/To/Jt.pl
index d6881be6fc6..f07b5de0ec8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Jt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Jt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -103,20 +103,19 @@ AD T
829 82D T
840 R
841 845 D
-846 R
-847 848 D
+846 847 R
+848 D
849 R
-84A 84E D
-84F R
-850 853 D
+84A 853 D
854 R
855 D
859 85B T
-8A0 D
-8A2 8A9 D
+8A0 8A9 D
8AA 8AC R
-8E4 8FE T
-900 902 T
+8AE R
+8AF 8B0 D
+8B1 8B2 R
+8E4 902 T
93A T
93C T
941 948 T
@@ -152,16 +151,19 @@ B62 B63 T
B82 T
BC0 T
BCD T
+C00 T
C3E C40 T
C46 C48 T
C4A C4D T
C55 C56 T
C62 C63 T
+C81 T
CBC T
CBF T
CC6 T
CCC CCD T
CE2 CE3 T
+D01 T
D41 D44 T
D4D T
D62 D63 T
@@ -226,6 +228,7 @@ FC6 T
1A65 1A6C T
1A73 1A7C T
1A7F T
+1AB0 1ABE T
1B00 1B03 T
1B34 T
1B36 1B3A T
@@ -235,7 +238,7 @@ FC6 T
1B80 1B81 T
1BA2 1BA5 T
1BA8 1BA9 T
-1BAB T
+1BAB 1BAD T
1BE6 T
1BE8 1BE9 T
1BED T
@@ -247,7 +250,8 @@ FC6 T
1CE2 1CE8 T
1CED T
1CF4 T
-1DC0 1DE6 T
+1CF8 1CF9 T
+1DC0 1DF5 T
1DFC 1DFF T
200B T
200D C
@@ -279,11 +283,13 @@ A980 A982 T
A9B3 T
A9B6 A9B9 T
A9BC T
+A9E5 T
AA29 AA2E T
AA31 AA32 T
AA35 AA36 T
AA43 T
AA4C T
+AA7C T
AAB0 T
AAB2 AAB4 T
AAB7 AAB8 T
@@ -296,36 +302,94 @@ ABE8 T
ABED T
FB1E T
FE00 FE0F T
-FE20 FE26 T
+FE20 FE2D T
FEFF T
FFF9 FFFB T
101FD T
+102E0 T
+10376 1037A T
10A01 10A03 T
10A05 10A06 T
10A0C 10A0F T
10A38 10A3A T
10A3F T
+10AC0 10AC4 D
+10AC5 R
+10AC7 R
+10AC9 10ACA R
+10ACD L
+10ACE 10AD2 R
+10AD3 10AD6 D
+10AD7 L
+10AD8 10ADC D
+10ADD R
+10ADE 10AE0 D
+10AE1 R
+10AE4 R
+10AE5 10AE6 T
+10AEB 10AEE D
+10AEF R
+10B80 D
+10B81 R
+10B82 D
+10B83 10B85 R
+10B86 10B88 D
+10B89 R
+10B8A 10B8B D
+10B8C R
+10B8D D
+10B8E 10B8F R
+10B90 D
+10B91 R
+10BA9 10BAC R
+10BAD 10BAE D
11001 T
11038 11046 T
-11080 11081 T
+1107F 11081 T
110B3 110B6 T
110B9 110BA T
110BD T
11100 11102 T
11127 1112B T
1112D 11134 T
+11173 T
11180 11181 T
111B6 111BE T
+1122F 11231 T
+11234 T
+11236 11237 T
+112DF T
+112E3 112EA T
+11301 T
+1133C T
+11340 T
+11366 1136C T
+11370 11374 T
+114B3 114B8 T
+114BA T
+114BF 114C0 T
+114C2 114C3 T
+115B2 115B5 T
+115BC 115BD T
+115BF 115C0 T
+11633 1163A T
+1163D T
+1163F 11640 T
116AB T
116AD T
116B0 116B5 T
116B7 T
+16AF0 16AF4 T
+16B30 16B36 T
16F8F 16F92 T
+1BC9D 1BC9E T
+1BCA0 1BCA3 T
1D167 1D169 T
1D173 1D182 T
1D185 1D18B T
1D1AA 1D1AD T
1D242 1D244 T
+1E8D0 1E8D6 T
E0001 T
E0020 E007F T
E0100 E01EF T
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Lb.pl b/Master/tlpkg/tlperl/lib/unicore/To/Lb.pl
index 6c082580ce6..eda8f8ba17f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Lb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Lb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -103,17 +103,19 @@ F8 2C6 AL
370 377 AL
37A 37D AL
37E IS
+37F AL
384 38A AL
38C AL
38E 3A1 AL
3A3 482 AL
483 489 CM
-48A 527 AL
+48A 52F AL
531 556 AL
559 55F AL
561 587 AL
589 IS
58A BA
+58D 58E AL
58F PR
591 5BD CM
5BE BA
@@ -127,8 +129,7 @@ F8 2C6 AL
5D0 5EA HL
5F0 5F2 HL
5F3 5F4 AL
-600 604 AL
-606 608 AL
+600 608 AL
609 60B PO
60C 60D IS
60E 60F AL
@@ -182,10 +183,8 @@ F8 2C6 AL
840 858 AL
859 85B CM
85E AL
-8A0 AL
-8A2 8AC AL
-8E4 8FE CM
-900 903 CM
+8A0 8B2 AL
+8E4 903 CM
904 939 AL
93A 93C CM
93D AL
@@ -196,8 +195,7 @@ F8 2C6 AL
962 963 CM
964 965 BA
966 96F NU
-970 977 AL
-979 97F AL
+970 980 AL
981 983 CM
985 98C AL
98F 990 AL
@@ -297,12 +295,11 @@ BE6 BEF NU
BF0 BF8 AL
BF9 PR
BFA AL
-C01 C03 CM
+C00 C03 CM
C05 C0C AL
C0E C10 AL
C12 C28 AL
-C2A C33 AL
-C35 C39 AL
+C2A C39 AL
C3D AL
C3E C44 CM
C46 C48 CM
@@ -313,7 +310,7 @@ C60 C61 AL
C62 C63 CM
C66 C6F NU
C78 C7F AL
-C82 C83 CM
+C81 C83 CM
C85 C8C AL
C8E C90 AL
C92 CA8 AL
@@ -330,7 +327,7 @@ CE0 CE1 AL
CE2 CE3 CM
CE6 CEF NU
CF1 CF2 AL
-D02 D03 CM
+D01 D03 CM
D05 D0C AL
D0E D10 AL
D12 D3A AL
@@ -356,6 +353,7 @@ DCA CM
DCF DD4 CM
DD6 CM
DD8 DDF CM
+DE6 DEF NU
DF2 DF3 CM
DF4 AL
E01 E3A SA
@@ -474,7 +472,7 @@ FD9 FDA GL
169C CL
16A0 16EA AL
16EB 16ED BA
-16EE 16F0 AL
+16EE 16F8 AL
1700 170C AL
170E 1711 AL
1712 1714 CM
@@ -512,7 +510,7 @@ FD9 FDA GL
18A9 CM
18AA AL
18B0 18F5 AL
-1900 191C AL
+1900 191E AL
1920 192B CM
1930 193B CM
1940 AL
@@ -534,6 +532,7 @@ FD9 FDA GL
1A80 1A89 NU
1A90 1A99 NU
1AA0 1AAD SA
+1AB0 1ABE CM
1B00 1B04 CM
1B05 1B33 AL
1B34 1B44 CM
@@ -569,8 +568,9 @@ FD9 FDA GL
1CEE 1CF1 AL
1CF2 1CF4 CM
1CF5 1CF6 AL
+1CF8 1CF9 CM
1D00 1DBF AL
-1DC0 1DE6 CM
+1DC0 1DF5 CM
1DFC 1DFF CM
1E00 1F15 AL
1F18 1F1D AL
@@ -648,7 +648,9 @@ FD9 FDA GL
20A7 PO
20A8 20B5 PR
20B6 PO
-20B7 20CF PR
+20B7 20BA PR
+20BB PO
+20BC 20CF PR
20D0 20F0 CM
2100 2102 AL
2103 PO
@@ -738,7 +740,12 @@ FD9 FDA GL
22A5 AI
22A6 22BE AL
22BF AI
-22C0 2311 AL
+22C0 2307 AL
+2308 OP
+2309 CL
+230A OP
+230B CL
+230C 2311 AL
2312 AI
2313 2319 AL
231A 231B ID
@@ -747,6 +754,7 @@ FD9 FDA GL
232A CL
232B 23EF AL
23F0 23F3 ID
+23F4 23FA AL
2400 2426 AL
2440 244A AL
2460 24FE AI
@@ -840,15 +848,14 @@ FD9 FDA GL
26F6 AI
26F7 26FA ID
26FB 26FC AI
-26FD 26FF ID
-2701 2704 ID
+26FD 2704 ID
2705 2707 AL
2708 270D ID
270E 2756 AL
2757 AI
2758 275A AL
-275B 275E QU
-275F 2761 AL
+275B 2760 QU
+2761 AL
2762 2763 EX
2764 2767 AL
2768 OP
@@ -911,9 +918,13 @@ FD9 FDA GL
29DC 29FB AL
29FC OP
29FD CL
-29FE 2B4C AL
-2B50 2B54 AL
+29FE 2B54 AL
2B55 2B59 AI
+2B5A 2B73 AL
+2B76 2B95 AL
+2B98 2BB9 AL
+2BBD 2BC8 AL
+2BCA 2BD1 AL
2C00 2C2E AL
2C30 2C5E AL
2C60 2CEE AL
@@ -967,6 +978,10 @@ FD9 FDA GL
2E33 2E34 BA
2E35 2E39 AL
2E3A 2E3B B2
+2E3C 2E3E BA
+2E3F AL
+2E40 2E41 BA
+2E42 OP
2E80 2E99 ID
2E9B 2EF3 ID
2F00 2FD5 ID
@@ -1084,16 +1099,16 @@ A640 A66E AL
A66F A672 CM
A673 AL
A674 A67D CM
-A67E A697 AL
+A67E A69D AL
A69F CM
A6A0 A6EF AL
A6F0 A6F1 CM
A6F2 AL
A6F3 A6F7 BA
A700 A78E AL
-A790 A793 AL
-A7A0 A7AA AL
-A7F8 A801 AL
+A790 A7AD AL
+A7B0 A7B1 AL
+A7F7 A801 AL
A802 CM
A803 A805 AL
A806 CM
@@ -1132,6 +1147,9 @@ A9CA A9CD AL
A9CF AL
A9D0 A9D9 NU
A9DE A9DF AL
+A9E0 A9EF SA
+A9F0 A9F9 NU
+A9FA A9FE SA
AA00 AA28 AL
AA29 AA36 CM
AA40 AA42 AL
@@ -1141,8 +1159,7 @@ AA4C AA4D CM
AA50 AA59 NU
AA5C AL
AA5D AA5F BA
-AA60 AA7B SA
-AA80 AAC2 SA
+AA60 AAC2 SA
AADB AADF SA
AAE0 AAEA AL
AAEB AAEF CM
@@ -1154,6 +1171,8 @@ AB09 AB0E AL
AB11 AB16 AL
AB20 AB26 AL
AB28 AB2E AL
+AB30 AB5F AL
+AB64 AB65 AL
ABC0 ABE2 AL
ABE3 ABEA CM
ABEB BA
@@ -1975,8 +1994,8 @@ FB43 FB44 HL
FB46 FB4F HL
FB50 FBC1 AL
FBD3 FD3D AL
-FD3E OP
-FD3F CL
+FD3E CL
+FD3F OP
FD50 FD8F AL
FD92 FDC7 AL
FDF0 FDFB AL
@@ -1990,7 +2009,7 @@ FE15 FE16 EX
FE17 OP
FE18 CL
FE19 IN
-FE20 FE26 CM
+FE20 FE2D CM
FE30 FE34 ID
FE35 OP
FE36 CL
@@ -2087,15 +2106,19 @@ FFFD AI
10080 100FA AL
10100 10102 BA
10107 10133 AL
-10137 1018A AL
+10137 1018C AL
10190 1019B AL
+101A0 AL
101D0 101FC AL
101FD CM
10280 1029C AL
102A0 102D0 AL
-10300 1031E AL
-10320 10323 AL
+102E0 CM
+102E1 102FB AL
+10300 10323 AL
10330 1034A AL
+10350 10375 AL
+10376 1037A CM
10380 1039D AL
1039F BA
103A0 103C3 AL
@@ -2104,6 +2127,12 @@ FFFD AI
103D1 103D5 AL
10400 1049D AL
104A0 104A9 NU
+10500 10527 AL
+10530 10563 AL
+1056F AL
+10600 10736 AL
+10740 10755 AL
+10760 10767 AL
10800 10805 AL
10808 AL
1080A 10835 AL
@@ -2111,7 +2140,8 @@ FFFD AI
1083C AL
1083F 10855 AL
10857 BA
-10858 1085F AL
+10858 1089E AL
+108A7 108AF AL
10900 1091B AL
1091F BA
10920 10939 AL
@@ -2130,12 +2160,19 @@ FFFD AI
10A40 10A47 AL
10A50 10A57 BA
10A58 AL
-10A60 10A7F AL
+10A60 10A9F AL
+10AC0 10AE4 AL
+10AE5 10AE6 CM
+10AEB 10AEF AL
+10AF0 10AF5 BA
+10AF6 IN
10B00 10B35 AL
10B39 10B3F BA
10B40 10B55 AL
10B58 10B72 AL
-10B78 10B7F AL
+10B78 10B91 AL
+10B99 10B9C AL
+10BA9 10BAF AL
10C00 10C48 AL
10E60 10E7E AL
11000 11002 CM
@@ -2145,7 +2182,7 @@ FFFD AI
11049 1104D AL
11052 11065 AL
11066 1106F NU
-11080 11082 CM
+1107F 11082 CM
11083 110AF AL
110B0 110BA CM
110BB 110BD AL
@@ -2157,6 +2194,11 @@ FFFD AI
11127 11134 CM
11136 1113F NU
11140 11143 BA
+11150 11172 AL
+11173 CM
+11174 AL
+11175 BB
+11176 AL
11180 11182 CM
11183 111B2 AL
111B3 111C0 CM
@@ -2164,13 +2206,65 @@ FFFD AI
111C5 111C6 BA
111C7 AL
111C8 BA
+111CD AL
111D0 111D9 NU
+111DA AL
+111E1 111F4 AL
+11200 11211 AL
+11213 1122B AL
+1122C 11237 CM
+11238 11239 BA
+1123A AL
+1123B 1123C BA
+1123D AL
+112B0 112DE AL
+112DF 112EA CM
+112F0 112F9 NU
+11301 11303 CM
+11305 1130C AL
+1130F 11310 AL
+11313 11328 AL
+1132A 11330 AL
+11332 11333 AL
+11335 11339 AL
+1133C CM
+1133D AL
+1133E 11344 CM
+11347 11348 CM
+1134B 1134D CM
+11357 CM
+1135D 11361 AL
+11362 11363 CM
+11366 1136C CM
+11370 11374 CM
+11480 114AF AL
+114B0 114C3 CM
+114C4 114C7 AL
+114D0 114D9 NU
+11580 115AE AL
+115AF 115B5 CM
+115B8 115C0 CM
+115C1 BB
+115C2 115C3 BA
+115C4 115C5 EX
+115C6 115C8 AL
+115C9 BA
+11600 1162F AL
+11630 11640 CM
+11641 11642 BA
+11643 11644 AL
+11650 11659 NU
11680 116AA AL
116AB 116B7 CM
116C0 116C9 NU
-12000 1236E AL
-12400 12462 AL
-12470 12473 BA
+118A0 118DF AL
+118E0 118E9 NU
+118EA 118F2 AL
+118FF AL
+11AC0 11AF8 AL
+12000 12398 AL
+12400 1246E AL
+12470 12474 BA
13000 13257 AL
13258 1325A OP
1325B 1325D CL
@@ -2186,12 +2280,36 @@ FFFD AI
1337A 1337B CL
1337C 1342E AL
16800 16A38 AL
+16A40 16A5E AL
+16A60 16A69 NU
+16A6E 16A6F BA
+16AD0 16AED AL
+16AF0 16AF4 CM
+16AF5 BA
+16B00 16B2F AL
+16B30 16B36 CM
+16B37 16B39 BA
+16B3A 16B43 AL
+16B44 BA
+16B45 AL
+16B50 16B59 NU
+16B5B 16B61 AL
+16B63 16B77 AL
+16B7D 16B8F AL
16F00 16F44 AL
16F50 AL
16F51 16F7E CM
16F8F 16F92 CM
16F93 16F9F AL
1B000 1B001 ID
+1BC00 1BC6A AL
+1BC70 1BC7C AL
+1BC80 1BC88 AL
+1BC90 1BC99 AL
+1BC9C AL
+1BC9D 1BC9E CM
+1BC9F BA
+1BCA0 1BCA3 CM
1D000 1D0F5 AL
1D100 1D126 AL
1D129 1D164 AL
@@ -2229,6 +2347,9 @@ FFFD AI
1D552 1D6A5 AL
1D6A8 1D7CB AL
1D7CE 1D7FF NU
+1E800 1E8C4 AL
+1E8C7 1E8CF AL
+1E8D0 1E8D6 CM
1EE00 1EE03 AL
1EE05 1EE1F AL
1EE21 1EE22 AL
@@ -2266,10 +2387,10 @@ FFFD AI
1F000 1F02B ID
1F030 1F093 ID
1F0A0 1F0AE ID
-1F0B1 1F0BE ID
+1F0B1 1F0BF ID
1F0C1 1F0CF ID
-1F0D1 1F0DF ID
-1F100 1F10A AI
+1F0D1 1F0F5 ID
+1F100 1F10C AI
1F110 1F12D AI
1F12E AL
1F130 1F169 AI
@@ -2280,20 +2401,17 @@ FFFD AI
1F210 1F23A ID
1F240 1F248 ID
1F250 1F251 ID
-1F300 1F320 ID
-1F330 1F335 ID
-1F337 1F37C ID
-1F380 1F393 ID
-1F3A0 1F3B4 ID
+1F300 1F32C ID
+1F330 1F37D ID
+1F380 1F39B ID
+1F39C 1F39D AL
+1F39E 1F3B4 ID
1F3B5 1F3B6 AL
1F3B7 1F3BB ID
1F3BC AL
-1F3BD 1F3C4 ID
-1F3C6 1F3CA ID
-1F3E0 1F3F0 ID
-1F400 1F43E ID
-1F440 ID
-1F442 1F49F ID
+1F3BD 1F3CE ID
+1F3D4 1F3F7 ID
+1F400 1F49F ID
1F4A0 AL
1F4A1 ID
1F4A2 AL
@@ -2303,19 +2421,35 @@ FFFD AI
1F4AF AL
1F4B0 ID
1F4B1 1F4B2 AL
-1F4B3 1F4F7 ID
-1F4F9 1F4FC ID
+1F4B3 1F4FE ID
1F500 1F506 AL
1F507 1F516 ID
1F517 1F524 AL
1F525 1F531 ID
-1F532 1F53D AL
-1F540 1F543 AL
-1F550 1F567 ID
-1F5FB 1F640 ID
+1F532 1F549 AL
+1F54A ID
+1F550 1F579 ID
+1F57B 1F5A3 ID
+1F5A5 1F5D3 ID
+1F5D4 1F5DB AL
+1F5DC 1F5F3 ID
+1F5F4 1F5F9 AL
+1F5FA 1F642 ID
1F645 1F64F ID
-1F680 1F6C5 ID
+1F650 1F675 AL
+1F676 1F678 QU
+1F679 1F67B NS
+1F67C 1F67F AL
+1F680 1F6CF ID
+1F6E0 1F6EC ID
+1F6F0 1F6F3 ID
1F700 1F773 AL
+1F780 1F7D4 AL
+1F800 1F80B AL
+1F810 1F847 AL
+1F850 1F859 AL
+1F860 1F887 AL
+1F890 1F8AD AL
20000 2FFFD ID
30000 3FFFD ID
E0001 CM
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Lc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Lc.pl
index 3ec53a78ee9..966002bd214 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Lc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Lc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -206,6 +206,7 @@ D8 DE F8
370 371
372 373
376 377
+37F 3F3
386 3AC
388 38A 3AD
38C 3CC
@@ -328,6 +329,10 @@ D8 DE F8
522 523
524 525
526 527
+528 529
+52A 52B
+52C 52D
+52E 52F
531 556 561
10A0 10C5 2D00
10C7 2D27
@@ -592,6 +597,8 @@ A690 A691
A692 A693
A694 A695
A696 A697
+A698 A699
+A69A A69B
A722 A723
A724 A725
A726 A727
@@ -642,12 +649,23 @@ A78B A78C
A78D 265
A790 A791
A792 A793
+A796 A797
+A798 A799
+A79A A79B
+A79C A79D
+A79E A79F
A7A0 A7A1
A7A2 A7A3
A7A4 A7A5
A7A6 A7A7
A7A8 A7A9
A7AA 266
+A7AB 25C
+A7AC 261
+A7AD 26C
+A7B0 29E
+A7B1 287
FF21 FF3A FF41
10400 10427 10428
+118A0 118BF 118C0
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Lower.pl b/Master/tlpkg/tlperl/lib/unicore/To/Lower.pl
index 992f9fc6570..58f28a481df 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Lower.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Lower.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -9,7 +9,8 @@
# but its format and even its name or existence are subject to change without
# notice in a future Perl version. Don't use it directly. Instead, its
# contents are now retrievable through a stable API in the Unicode::UCD
-# module: Unicode::UCD::prop_invmap('Lowercase_Mapping').
+# module: Unicode::UCD::prop_invmap('Lowercase_Mapping') (Values for individual
+# code points can be retrieved via Unicode::UCD::charprop());
@@ -260,6 +261,7 @@ return <<'END';
0370 0371
0372 0373
0376 0377
+037F 03F3
0386 03AC
0388 03AD
0389 03AE
@@ -457,6 +459,10 @@ return <<'END';
0522 0523
0524 0525
0526 0527
+0528 0529
+052A 052B
+052C 052D
+052E 052F
0531 0561
0532 0562
0533 0563
@@ -952,6 +958,8 @@ A690 A691
A692 A693
A694 A695
A696 A697
+A698 A699
+A69A A69B
A722 A723
A724 A725
A726 A727
@@ -1002,12 +1010,22 @@ A78B A78C
A78D 0265
A790 A791
A792 A793
+A796 A797
+A798 A799
+A79A A79B
+A79C A79D
+A79E A79F
A7A0 A7A1
A7A2 A7A3
A7A4 A7A5
A7A6 A7A7
A7A8 A7A9
A7AA 0266
+A7AB 025C
+A7AC 0261
+A7AD 026C
+A7B0 029E
+A7B1 0287
FF21 FF41
FF22 FF42
FF23 FF43
@@ -1074,4 +1092,36 @@ FF3A FF5A
10425 1044D
10426 1044E
10427 1044F
+118A0 118C0
+118A1 118C1
+118A2 118C2
+118A3 118C3
+118A4 118C4
+118A5 118C5
+118A6 118C6
+118A7 118C7
+118A8 118C8
+118A9 118C9
+118AA 118CA
+118AB 118CB
+118AC 118CC
+118AD 118CD
+118AE 118CE
+118AF 118CF
+118B0 118D0
+118B1 118D1
+118B2 118D2
+118B3 118D3
+118B4 118D4
+118B5 118D5
+118B6 118D6
+118B7 118D7
+118B8 118D8
+118B9 118D9
+118BA 118DA
+118BB 118DB
+118BC 118DC
+118BD 118DD
+118BE 118DE
+118BF 118DF
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/NFCQC.pl b/Master/tlpkg/tlperl/lib/unicore/To/NFCQC.pl
index bf85c80d094..9d254bba0c9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/NFCQC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/NFCQC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -122,6 +122,12 @@ FB43 FB44 N
FB46 FB4E N
110BA M
11127 M
+1133E M
+11357 M
+114B0 M
+114BA M
+114BD M
+115AF M
1D15E 1D164 N
1D1BB 1D1C0 N
2F800 2FA1D N
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/NFDQC.pl b/Master/tlpkg/tlperl/lib/unicore/To/NFDQC.pl
index a24da83e3df..6acf2ca3004 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/NFDQC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/NFDQC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -241,6 +241,10 @@ FB46 FB4E N
1109C N
110AB N
1112E 1112F N
+1134B 1134C N
+114BB 114BC N
+114BE N
+115BA 115BB N
1D15E 1D164 N
1D1BB 1D1C0 N
2F800 2FA1D N
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl b/Master/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl
index 7a9e8e5dc49..5d2c2e64e71 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -9,7 +9,8 @@
# but its format and even its name or existence are subject to change without
# notice in a future Perl version. Don't use it directly. Instead, its
# contents are now retrievable through a stable API in the Unicode::UCD
-# module: Unicode::UCD::prop_invmap('NFKC_Casefold').
+# module: Unicode::UCD::prop_invmap('NFKC_Casefold') (Values for individual
+# code points can be retrieved via Unicode::UCD::charprop());
@@ -1321,6 +1322,10 @@ $utf8::SwashInfo{'ToNFKCCF'}{'missing'} = '<code point>'; # code point maps to i
"\xEF\xBF\xB6" => "", # U+FFF6 =>
"\xEF\xBF\xB7" => "", # U+FFF7 =>
"\xEF\xBF\xB8" => "", # U+FFF8 =>
+"\xF0\x9B\xB2\xA0" => "", # U+1BCA0 =>
+"\xF0\x9B\xB2\xA1" => "", # U+1BCA1 =>
+"\xF0\x9B\xB2\xA2" => "", # U+1BCA2 =>
+"\xF0\x9B\xB2\xA3" => "", # U+1BCA3 =>
"\xF0\x9D\x85\x9E" => "\x{1D157}\x{1D165}", # U+1D15E => 1D157 1D165
"\xF0\x9D\x85\x9F" => "\x{1D158}\x{1D165}", # U+1D15F => 1D158 1D165
"\xF0\x9D\x85\xA0" => "\x{1D158}\x{1D165}\x{1D16E}", # U+1D160 => 1D158 1D165 1D16E
@@ -5747,6 +5752,7 @@ return <<'END';
0374 02B9
0376 0377
037E 003B
+037F 03F3
0386 03AC
0387 00B7
0388 03AD
@@ -5957,6 +5963,10 @@ return <<'END';
0522 0523
0524 0525
0526 0527
+0528 0529
+052A 052B
+052C 052D
+052E 052F
0531 0561
0532 0562
0533 0563
@@ -7131,6 +7141,10 @@ A690 A691
A692 A693
A694 A695
A696 A697
+A698 A699
+A69A A69B
+A69C 044A
+A69D 044C
A722 A723
A724 A725
A726 A727
@@ -7182,14 +7196,28 @@ A78B A78C
A78D 0265
A790 A791
A792 A793
+A796 A797
+A798 A799
+A79A A79B
+A79C A79D
+A79E A79F
A7A0 A7A1
A7A2 A7A3
A7A4 A7A5
A7A6 A7A7
A7A8 A7A9
A7AA 0266
+A7AB 025C
+A7AC 0261
+A7AD 026C
+A7B0 029E
+A7B1 0287
A7F8 0127
A7F9 0153
+AB5C A727
+AB5D AB37
+AB5E 026B
+AB5F AB52
F900 8C48
F901 66F4
F902 8ECA
@@ -8224,6 +8252,38 @@ FFEE 25CB
10425 1044D
10426 1044E
10427 1044F
+118A0 118C0
+118A1 118C1
+118A2 118C2
+118A3 118C3
+118A4 118C4
+118A5 118C5
+118A6 118C6
+118A7 118C7
+118A8 118C8
+118A9 118C9
+118AA 118CA
+118AB 118CB
+118AC 118CC
+118AD 118CD
+118AE 118CE
+118AF 118CF
+118B0 118D0
+118B1 118D1
+118B2 118D2
+118B3 118D3
+118B4 118D4
+118B5 118D5
+118B6 118D6
+118B7 118D7
+118B8 118D8
+118B9 118D9
+118BA 118DA
+118BB 118DB
+118BC 118DC
+118BD 118DD
+118BE 118DE
+118BF 118DF
1D400 0061
1D401 0062
1D402 0063
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl b/Master/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl
index 7c17e493280..c2c913fe0e8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -192,8 +192,10 @@ FB9 N
3250 327E N
3280 32FE N
3300 33FF N
+A69C A69D N
A770 N
A7F8 A7F9 N
+AB5C AB5F N
F900 FA0D N
FA10 N
FA12 N
@@ -233,6 +235,12 @@ FFE0 FFE6 N
FFE8 FFEE N
110BA M
11127 M
+1133E M
+11357 M
+114B0 M
+114BA M
+114BD M
+115AF M
1D15E 1D164 N
1D1BB 1D1C0 N
1D400 1D454 N
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl b/Master/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl
index faf420ad12b..085e72644ba 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -291,8 +291,10 @@ FB9 N
3250 327E N
3280 32FE N
3300 33FF N
+A69C A69D N
A770 N
A7F8 A7F9 N
+AB5C AB5F N
AC00 D7A3 N
F900 FA0D N
FA10 N
@@ -335,6 +337,10 @@ FFE8 FFEE N
1109C N
110AB N
1112E 1112F N
+1134B 1134C N
+114BB 114BC N
+114BE N
+115BA 115BB N
1D15E 1D164 N
1D1BB 1D1C0 N
1D400 1D454 N
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Na1.pl b/Master/tlpkg/tlperl/lib/unicore/To/Na1.pl
index 1aa15947dbb..c82dfd1471e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Na1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Na1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/NameAlia.pl b/Master/tlpkg/tlperl/lib/unicore/To/NameAlia.pl
index f43c951b9c5..b2406d19f59 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/NameAlia.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/NameAlia.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Nt.pl b/Master/tlpkg/tlperl/lib/unicore/To/Nt.pl
index 4f1d7236eb6..69b5cd7a0c4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Nt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Nt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -38,6 +38,7 @@ C78 C7E Numeric
CE6 CEF Decimal
D66 D6F Decimal
D70 D75 Numeric
+DE6 DEF Decimal
E50 E59 Decimal
ED0 ED9 Decimal
F20 F29 Decimal
@@ -146,6 +147,7 @@ A830 A835 Numeric
A8D0 A8D9 Decimal
A900 A909 Decimal
A9D0 A9D9 Decimal
+A9F0 A9F9 Decimal
AA50 AA59 Decimal
ABF0 ABF9 Decimal
F96B Numeric
@@ -158,19 +160,25 @@ F9FD Numeric
FF10 FF19 Decimal
10107 10133 Numeric
10140 10178 Numeric
-1018A Numeric
+1018A 1018B Numeric
+102E1 102FB Numeric
10320 10323 Numeric
10341 Numeric
1034A Numeric
103D1 103D5 Numeric
104A0 104A9 Decimal
10858 1085F Numeric
+10879 1087F Numeric
+108A7 108AF Numeric
10916 1091B Numeric
10A40 10A43 Digit
10A44 10A47 Numeric
10A7D 10A7E Numeric
+10A9D 10A9F Numeric
+10AEB 10AEF Numeric
10B58 10B5F Numeric
10B78 10B7F Numeric
+10BA9 10BAF Numeric
10E60 10E68 Digit
10E69 10E7E Numeric
11052 1105A Digit
@@ -179,11 +187,22 @@ FF10 FF19 Decimal
110F0 110F9 Decimal
11136 1113F Decimal
111D0 111D9 Decimal
+111E1 111F4 Numeric
+112F0 112F9 Decimal
+114D0 114D9 Decimal
+11650 11659 Decimal
116C0 116C9 Decimal
-12400 12462 Numeric
+118E0 118E9 Decimal
+118EA 118F2 Numeric
+12400 1246E Numeric
+16A60 16A69 Decimal
+16B50 16B59 Decimal
+16B5B 16B61 Numeric
1D360 1D371 Numeric
1D7CE 1D7FF Decimal
+1E8C7 1E8CF Numeric
1F100 1F10A Digit
+1F10B 1F10C Numeric
20001 Numeric
20064 Numeric
200E2 Numeric
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Nv.pl b/Master/tlpkg/tlperl/lib/unicore/To/Nv.pl
index fe791a4e1de..c3a4eaf1d6a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Nv.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Nv.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -58,6 +58,7 @@ D72 1000
D73 1/4
D74 1/2
D75 3/4
+DE6 DEF 0
E50 E59 0
ED0 ED9 0
F20 F29 0
@@ -231,6 +232,7 @@ A835 3/16
A8D0 A8D9 0
A900 A909 0
A9D0 A9D9 0
+A9F0 A9F9 0
AA50 AA59 0
ABF0 ABF9 0
F96B 3
@@ -334,6 +336,25 @@ FF10 FF19 0
10177 2/3
10178 3/4
1018A 0
+1018B 1/4
+102E1 102EA 1
+102EB 20
+102EC 30
+102ED 40
+102EE 50
+102EF 60
+102F0 70
+102F1 80
+102F2 90
+102F3 100
+102F4 200
+102F5 300
+102F6 400
+102F7 500
+102F8 600
+102F9 700
+102FA 800
+102FB 900
10320 1
10321 5
10322 10
@@ -351,6 +372,14 @@ FF10 FF19 0
1085D 100
1085E 1000
1085F 10000
+10879 1087D 1
+1087E 10
+1087F 20
+108A7 108AA 1
+108AB 108AC 4
+108AD 10
+108AE 20
+108AF 100
10916 1
10917 10
10918 20
@@ -363,6 +392,14 @@ FF10 FF19 0
10A47 1000
10A7D 1
10A7E 50
+10A9D 1
+10A9E 10
+10A9F 20
+10AEB 1
+10AEC 5
+10AED 10
+10AEE 20
+10AEF 100
10B58 10B5B 1
10B5C 10
10B5D 20
@@ -373,6 +410,10 @@ FF10 FF19 0
10B7D 20
10B7E 100
10B7F 1000
+10BA9 10BAC 1
+10BAD 10
+10BAE 20
+10BAF 100
10E60 10E69 1
10E6A 20
10E6B 30
@@ -410,7 +451,30 @@ FF10 FF19 0
110F0 110F9 0
11136 1113F 0
111D0 111D9 0
+111E1 111EA 1
+111EB 20
+111EC 30
+111ED 40
+111EE 50
+111EF 60
+111F0 70
+111F1 80
+111F2 90
+111F3 100
+111F4 1000
+112F0 112F9 0
+114D0 114D9 0
+11650 11659 0
116C0 116C9 0
+118E0 118EA 0
+118EB 20
+118EC 30
+118ED 40
+118EE 50
+118EF 60
+118F0 70
+118F1 80
+118F2 90
12400 12407 2
12408 1240E 3
1240F 12414 4
@@ -451,6 +515,22 @@ FF10 FF19 0
12460 1/4
12461 1/6
12462 1/4
+12463 1/4
+12464 1/2
+12465 1/3
+12466 2/3
+12467 40
+12468 50
+12469 1246E 4
+16A60 16A69 0
+16B50 16B59 0
+16B5B 10
+16B5C 100
+16B5D 10000
+16B5E 1000000
+16B5F 100000000
+16B60 10000000000
+16B61 1000000000000
1D360 1D369 1
1D36A 20
1D36B 30
@@ -465,8 +545,11 @@ FF10 FF19 0
1D7E2 1D7EB 0
1D7EC 1D7F5 0
1D7F6 1D7FF 0
+1E8C7 1E8CF 1
1F100 0
1F101 1F10A 0
+1F10B 0
+1F10C 0
20001 7
20064 4
200E2 4
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl b/Master/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl
index 84ef78ff45c..43d461912bc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -32,6 +32,7 @@ BE6 BEF 0
C66 C6F 0
CE6 CEF 0
D66 D6F 0
+DE6 DEF 0
E50 E59 0
ED0 ED9 0
F20 F29 0
@@ -51,6 +52,7 @@ A620 A629 0
A8D0 A8D9 0
A900 A909 0
A9D0 A9D9 0
+A9F0 A9F9 0
AA50 AA59 0
ABF0 ABF9 0
FF10 FF19 0
@@ -59,7 +61,13 @@ FF10 FF19 0
110F0 110F9 0
11136 1113F 0
111D0 111D9 0
+112F0 112F9 0
+114D0 114D9 0
+11650 11659 0
116C0 116C9 0
+118E0 118E9 0
+16A60 16A69 0
+16B50 16B59 0
1D7CE 1D7D7 0
1D7D8 1D7E1 0
1D7E2 1D7EB 0
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/SB.pl b/Master/tlpkg/tlperl/lib/unicore/To/SB.pl
index a4d93baebec..ab512df6893 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/SB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/SB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -349,6 +349,7 @@ F8 FF Lower
376 Upper
377 Lower
37A 37D Lower
+37F Upper
386 Upper
388 38A Upper
38C Upper
@@ -584,11 +585,17 @@ F8 FF Lower
525 Lower
526 Upper
527 Lower
+528 Upper
+529 Lower
+52A Upper
+52B Lower
+52C Upper
+52D Lower
+52E Upper
+52F Lower
531 556 Upper
559 OLetter
-55C STerm
55D SContinue
-55E STerm
561 587 Lower
589 STerm
591 5BD Extend
@@ -598,7 +605,7 @@ F8 FF Lower
5C7 Extend
5D0 5EA OLetter
5F0 5F3 OLetter
-600 604 Format
+600 605 Format
60C 60D SContinue
610 61A Extend
61C Format
@@ -648,10 +655,8 @@ F8 FF Lower
829 82D Extend
840 858 OLetter
859 85B Extend
-8A0 OLetter
-8A2 8AC OLetter
-8E4 8FE Extend
-900 903 Extend
+8A0 8B2 OLetter
+8E4 903 Extend
904 939 OLetter
93A 93C Extend
93D OLetter
@@ -662,8 +667,7 @@ F8 FF Lower
962 963 Extend
964 965 STerm
966 96F Numeric
-971 977 OLetter
-979 97F OLetter
+971 980 OLetter
981 983 Extend
985 98C OLetter
98F 990 OLetter
@@ -753,12 +757,11 @@ BCA BCD Extend
BD0 OLetter
BD7 Extend
BE6 BEF Numeric
-C01 C03 Extend
+C00 C03 Extend
C05 C0C OLetter
C0E C10 OLetter
C12 C28 OLetter
-C2A C33 OLetter
-C35 C39 OLetter
+C2A C39 OLetter
C3D OLetter
C3E C44 Extend
C46 C48 Extend
@@ -768,7 +771,7 @@ C58 C59 OLetter
C60 C61 OLetter
C62 C63 Extend
C66 C6F Numeric
-C82 C83 Extend
+C81 C83 Extend
C85 C8C OLetter
C8E C90 OLetter
C92 CA8 OLetter
@@ -785,7 +788,7 @@ CE0 CE1 OLetter
CE2 CE3 Extend
CE6 CEF Numeric
CF1 CF2 OLetter
-D02 D03 Extend
+D01 D03 Extend
D05 D0C OLetter
D0E D10 OLetter
D12 D3A OLetter
@@ -809,6 +812,7 @@ DCA Extend
DCF DD4 Extend
DD6 Extend
DD8 DDF Extend
+DE6 DEF Numeric
DF2 DF3 Extend
E01 E30 OLetter
E31 Extend
@@ -908,7 +912,7 @@ FC6 Extend
1681 169A OLetter
169B 169C Close
16A0 16EA OLetter
-16EE 16F0 OLetter
+16EE 16F8 OLetter
1700 170C OLetter
170E 1711 OLetter
1712 1714 Extend
@@ -938,7 +942,7 @@ FC6 Extend
18A9 Extend
18AA OLetter
18B0 18F5 OLetter
-1900 191C OLetter
+1900 191E OLetter
1920 192B Extend
1930 193B Extend
1944 1945 STerm
@@ -960,6 +964,7 @@ FC6 Extend
1A90 1A99 Numeric
1AA7 OLetter
1AA8 1AAB STerm
+1AB0 1ABE Extend
1B00 1B04 Extend
1B05 1B33 OLetter
1B34 1B44 Extend
@@ -990,8 +995,9 @@ FC6 Extend
1CEE 1CF1 OLetter
1CF2 1CF4 Extend
1CF5 1CF6 OLetter
+1CF8 1CF9 Extend
1D00 1DBF Lower
-1DC0 1DE6 Extend
+1DC0 1DF5 Extend
1DFC 1DFF Extend
1E00 Upper
1E01 Lower
@@ -1335,7 +1341,7 @@ FC6 Extend
2329 232A Close
24B6 24CF Upper
24D0 24E9 Lower
-275B 275E Close
+275B 2760 Close
2768 2775 Close
27C5 27C6 Close
27E6 27EF Close
@@ -1488,6 +1494,8 @@ FC6 Extend
2E20 2E29 Close
2E2E STerm
2E2F OLetter
+2E3C STerm
+2E42 Close
3000 Sp
3001 SContinue
3002 STerm
@@ -1592,6 +1600,10 @@ A694 Upper
A695 Lower
A696 Upper
A697 Lower
+A698 Upper
+A699 Lower
+A69A Upper
+A69B A69D Lower
A69F Extend
A6A0 A6EF OLetter
A6F0 A6F1 Extend
@@ -1696,7 +1708,17 @@ A78E Lower
A790 Upper
A791 Lower
A792 Upper
-A793 Lower
+A793 A795 Lower
+A796 Upper
+A797 Lower
+A798 Upper
+A799 Lower
+A79A Upper
+A79B Lower
+A79C Upper
+A79D Lower
+A79E Upper
+A79F Lower
A7A0 Upper
A7A1 Lower
A7A2 Upper
@@ -1707,7 +1729,9 @@ A7A6 Upper
A7A7 Lower
A7A8 Upper
A7A9 Lower
-A7AA Upper
+A7AA A7AD Upper
+A7B0 A7B1 Upper
+A7F7 OLetter
A7F8 A7FA Lower
A7FB A801 OLetter
A802 Extend
@@ -1740,6 +1764,11 @@ A9B3 A9C0 Extend
A9C8 A9C9 STerm
A9CF OLetter
A9D0 A9D9 Numeric
+A9E0 A9E4 OLetter
+A9E5 Extend
+A9E6 A9EF OLetter
+A9F0 A9F9 Numeric
+A9FA A9FE OLetter
AA00 AA28 OLetter
AA29 AA36 Extend
AA40 AA42 OLetter
@@ -1750,8 +1779,8 @@ AA50 AA59 Numeric
AA5D AA5F STerm
AA60 AA76 OLetter
AA7A OLetter
-AA7B Extend
-AA80 AAAF OLetter
+AA7B AA7D Extend
+AA7E AAAF OLetter
AAB0 Extend
AAB1 OLetter
AAB2 AAB4 Extend
@@ -1773,6 +1802,9 @@ AB09 AB0E OLetter
AB11 AB16 OLetter
AB20 AB26 OLetter
AB28 AB2E OLetter
+AB30 AB5A Lower
+AB5C AB5F Lower
+AB64 AB65 Lower
ABC0 ABE2 OLetter
ABE3 ABEA Extend
ABEB STerm
@@ -1803,7 +1835,7 @@ FE00 FE0F Extend
FE10 FE11 SContinue
FE13 SContinue
FE17 FE18 Close
-FE20 FE26 Extend
+FE20 FE2D Extend
FE31 FE32 SContinue
FE35 FE44 Close
FE47 FE48 Close
@@ -1852,8 +1884,11 @@ FFF9 FFFB Format
101FD Extend
10280 1029C OLetter
102A0 102D0 OLetter
-10300 1031E OLetter
+102E0 Extend
+10300 1031F OLetter
10330 1034A OLetter
+10350 10375 OLetter
+10376 1037A Extend
10380 1039D OLetter
103A0 103C3 OLetter
103C8 103CF OLetter
@@ -1862,12 +1897,19 @@ FFF9 FFFB Format
10428 1044F Lower
10450 1049D OLetter
104A0 104A9 Numeric
+10500 10527 OLetter
+10530 10563 OLetter
+10600 10736 OLetter
+10740 10755 OLetter
+10760 10767 OLetter
10800 10805 OLetter
10808 OLetter
1080A 10835 OLetter
10837 10838 OLetter
1083C OLetter
1083F 10855 OLetter
+10860 10876 OLetter
+10880 1089E OLetter
10900 10915 OLetter
10920 10939 OLetter
10980 109B7 OLetter
@@ -1883,16 +1925,21 @@ FFF9 FFFB Format
10A3F Extend
10A56 10A57 STerm
10A60 10A7C OLetter
+10A80 10A9C OLetter
+10AC0 10AC7 OLetter
+10AC9 10AE4 OLetter
+10AE5 10AE6 Extend
10B00 10B35 OLetter
10B40 10B55 OLetter
10B60 10B72 OLetter
+10B80 10B91 OLetter
10C00 10C48 OLetter
11000 11002 Extend
11003 11037 OLetter
11038 11046 Extend
11047 11048 STerm
11066 1106F Numeric
-11080 11082 Extend
+1107F 11082 Extend
11083 110AF OLetter
110B0 110BA Extend
110BD Format
@@ -1904,25 +1951,96 @@ FFF9 FFFB Format
11127 11134 Extend
11136 1113F Numeric
11141 11143 STerm
+11150 11172 OLetter
+11173 Extend
+11176 OLetter
11180 11182 Extend
11183 111B2 OLetter
111B3 111C0 Extend
111C1 111C4 OLetter
111C5 111C6 STerm
+111CD STerm
111D0 111D9 Numeric
+111DA OLetter
+11200 11211 OLetter
+11213 1122B OLetter
+1122C 11237 Extend
+11238 11239 STerm
+1123B 1123C STerm
+112B0 112DE OLetter
+112DF 112EA Extend
+112F0 112F9 Numeric
+11301 11303 Extend
+11305 1130C OLetter
+1130F 11310 OLetter
+11313 11328 OLetter
+1132A 11330 OLetter
+11332 11333 OLetter
+11335 11339 OLetter
+1133C Extend
+1133D OLetter
+1133E 11344 Extend
+11347 11348 Extend
+1134B 1134D Extend
+11357 Extend
+1135D 11361 OLetter
+11362 11363 Extend
+11366 1136C Extend
+11370 11374 Extend
+11480 114AF OLetter
+114B0 114C3 Extend
+114C4 114C5 OLetter
+114C7 OLetter
+114D0 114D9 Numeric
+11580 115AE OLetter
+115AF 115B5 Extend
+115B8 115C0 Extend
+115C2 115C3 STerm
+115C9 STerm
+11600 1162F OLetter
+11630 11640 Extend
+11641 11642 STerm
+11644 OLetter
+11650 11659 Numeric
11680 116AA OLetter
116AB 116B7 Extend
116C0 116C9 Numeric
-12000 1236E OLetter
-12400 12462 OLetter
+118A0 118BF Upper
+118C0 118DF Lower
+118E0 118E9 Numeric
+118FF OLetter
+11AC0 11AF8 OLetter
+12000 12398 OLetter
+12400 1246E OLetter
13000 1342E OLetter
16800 16A38 OLetter
+16A40 16A5E OLetter
+16A60 16A69 Numeric
+16A6E 16A6F STerm
+16AD0 16AED OLetter
+16AF0 16AF4 Extend
+16AF5 STerm
+16B00 16B2F OLetter
+16B30 16B36 Extend
+16B37 16B38 STerm
+16B40 16B43 OLetter
+16B44 STerm
+16B50 16B59 Numeric
+16B63 16B77 OLetter
+16B7D 16B8F OLetter
16F00 16F44 OLetter
16F50 OLetter
16F51 16F7E Extend
16F8F 16F92 Extend
16F93 16F9F OLetter
1B000 1B001 OLetter
+1BC00 1BC6A OLetter
+1BC70 1BC7C OLetter
+1BC80 1BC88 OLetter
+1BC90 1BC99 OLetter
+1BC9D 1BC9E Extend
+1BC9F STerm
+1BCA0 1BCA3 Format
1D165 1D169 Extend
1D16D 1D172 Extend
1D173 1D17A Format
@@ -1990,6 +2108,8 @@ FFF9 FFFB Format
1D7CA Upper
1D7CB Lower
1D7CE 1D7FF Numeric
+1E800 1E8C4 OLetter
+1E8D0 1E8D6 Extend
1EE00 1EE03 OLetter
1EE05 1EE1F OLetter
1EE21 1EE22 OLetter
@@ -2023,6 +2143,10 @@ FFF9 FFFB Format
1EEA1 1EEA3 OLetter
1EEA5 1EEA9 OLetter
1EEAB 1EEBB OLetter
+1F130 1F149 Upper
+1F150 1F169 Upper
+1F170 1F189 Upper
+1F676 1F678 Close
20000 2A6D6 OLetter
2A700 2B734 OLetter
2B740 2B81D OLetter
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Sc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Sc.pl
index b1f3efc63d6..74d85f299ee 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Sc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Sc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -42,6 +42,7 @@ F8 2B8 Latin
375 377 Greek
37A 37D Greek
37E Common
+37F Greek
384 Greek
385 Common
386 Greek
@@ -54,22 +55,22 @@ F8 2B8 Latin
3F0 3FF Greek
400 484 Cyrillic
485 486 Inherited
-487 527 Cyrillic
+487 52F Cyrillic
531 556 Armenian
559 55F Armenian
561 587 Armenian
589 Common
58A Armenian
-58F Armenian
+58D 58F Armenian
591 5C7 Hebrew
5D0 5EA Hebrew
5F0 5F4 Hebrew
600 604 Arabic
+605 Common
606 60B Arabic
60C Common
60D 61A Arabic
-61B Common
-61C Arabic
+61B 61C Common
61E Arabic
61F Common
620 63F Arabic
@@ -93,16 +94,14 @@ F8 2B8 Latin
830 83E Samaritan
840 85B Mandaic
85E Mandaic
-8A0 Arabic
-8A2 8AC Arabic
-8E4 8FE Arabic
+8A0 8B2 Arabic
+8E4 8FF Arabic
900 950 Devanagari
951 952 Inherited
953 963 Devanagari
964 965 Common
-966 977 Devanagari
-979 97F Devanagari
-981 983 Bengali
+966 97F Devanagari
+980 983 Bengali
985 98C Bengali
98F 990 Bengali
993 9A8 Bengali
@@ -175,12 +174,11 @@ BCA BCD Tamil
BD0 Tamil
BD7 Tamil
BE6 BFA Tamil
-C01 C03 Telugu
+C00 C03 Telugu
C05 C0C Telugu
C0E C10 Telugu
C12 C28 Telugu
-C2A C33 Telugu
-C35 C39 Telugu
+C2A C39 Telugu
C3D C44 Telugu
C46 C48 Telugu
C4A C4D Telugu
@@ -189,7 +187,7 @@ C58 C59 Telugu
C60 C63 Telugu
C66 C6F Telugu
C78 C7F Telugu
-C82 C83 Kannada
+C81 C83 Kannada
C85 C8C Kannada
C8E C90 Kannada
C92 CA8 Kannada
@@ -203,7 +201,7 @@ CDE Kannada
CE0 CE3 Kannada
CE6 CEF Kannada
CF1 CF2 Kannada
-D02 D03 Malayalam
+D01 D03 Malayalam
D05 D0C Malayalam
D0E D10 Malayalam
D12 D3A Malayalam
@@ -224,6 +222,7 @@ DCA Sinhala
DCF DD4 Sinhala
DD6 Sinhala
DD8 DDF Sinhala
+DE6 DEF Sinhala
DF2 DF4 Sinhala
E01 E3A Thai
E3F Common
@@ -285,7 +284,7 @@ FD9 FDA Tibetan
1680 169C Ogham
16A0 16EA Runic
16EB 16ED Common
-16EE 16F0 Runic
+16EE 16F8 Runic
1700 170C Tagalog
170E 1714 Tagalog
1720 1734 Hanunoo
@@ -306,7 +305,7 @@ FD9 FDA Tibetan
1820 1877 Mongolian
1880 18AA Mongolian
18B0 18F5 Canadian_Aboriginal
-1900 191C Limbu
+1900 191E Limbu
1920 192B Limbu
1930 193B Limbu
1940 Limbu
@@ -325,6 +324,7 @@ FD9 FDA Tibetan
1A7F 1A89 Tai_Tham
1A90 1A99 Tai_Tham
1AA0 1AAD Tai_Tham
+1AB0 1ABE Inherited
1B00 1B4B Balinese
1B50 1B7C Balinese
1B80 1BBF Sundanese
@@ -345,6 +345,7 @@ FD9 FDA Tibetan
1CEE 1CF3 Common
1CF4 Inherited
1CF5 1CF6 Common
+1CF8 1CF9 Inherited
1D00 1D25 Latin
1D26 1D2A Greek
1D2B Cyrillic
@@ -356,7 +357,7 @@ FD9 FDA Tibetan
1D78 Cyrillic
1D79 1DBE Latin
1DBF Greek
-1DC0 1DE6 Inherited
+1DC0 1DF5 Inherited
1DFC 1DFF Inherited
1E00 1EFF Latin
1F00 1F15 Greek
@@ -384,7 +385,7 @@ FD9 FDA Tibetan
207F Latin
2080 208E Common
2090 209C Latin
-20A0 20BA Common
+20A0 20BD Common
20D0 20F0 Inherited
2100 2125 Common
2126 Greek
@@ -397,14 +398,16 @@ FD9 FDA Tibetan
214F 215F Common
2160 2188 Latin
2189 Common
-2190 23F3 Common
+2190 23FA Common
2400 2426 Common
2440 244A Common
-2460 26FF Common
-2701 27FF Common
+2460 27FF Common
2800 28FF Braille
-2900 2B4C Common
-2B50 2B59 Common
+2900 2B73 Common
+2B76 2B95 Common
+2B98 2BB9 Common
+2BBD 2BC8 Common
+2BCA 2BD1 Common
2C00 2C2E Glagolitic
2C30 2C5E Glagolitic
2C60 2C7F Latin
@@ -426,7 +429,7 @@ FD9 FDA Tibetan
2DD0 2DD6 Ethiopic
2DD8 2DDE Ethiopic
2DE0 2DFF Cyrillic
-2E00 2E3B Common
+2E00 2E42 Common
2E80 2E99 Han
2E9B 2EF3 Han
2F00 2FD5 Han
@@ -470,23 +473,25 @@ A000 A48C Yi
A490 A4C6 Yi
A4D0 A4FF Lisu
A500 A62B Vai
-A640 A697 Cyrillic
+A640 A69D Cyrillic
A69F Cyrillic
A6A0 A6F7 Bamum
A700 A721 Common
A722 A787 Latin
A788 A78A Common
A78B A78E Latin
-A790 A793 Latin
-A7A0 A7AA Latin
-A7F8 A7FF Latin
+A790 A7AD Latin
+A7B0 A7B1 Latin
+A7F7 A7FF Latin
A800 A82B Syloti_Nagri
A830 A839 Common
A840 A877 Phags_Pa
A880 A8C4 Saurashtra
A8CE A8D9 Saurashtra
A8E0 A8FB Devanagari
-A900 A92F Kayah_Li
+A900 A92D Kayah_Li
+A92E Common
+A92F Kayah_Li
A930 A953 Rejang
A95F Rejang
A960 A97C Hangul
@@ -494,11 +499,12 @@ A980 A9CD Javanese
A9CF Common
A9D0 A9D9 Javanese
A9DE A9DF Javanese
+A9E0 A9FE Myanmar
AA00 AA36 Cham
AA40 AA4D Cham
AA50 AA59 Cham
AA5C AA5F Cham
-AA60 AA7B Myanmar
+AA60 AA7F Myanmar
AA80 AAC2 Tai_Viet
AADB AADF Tai_Viet
AAE0 AAF6 Meetei_Mayek
@@ -507,6 +513,11 @@ AB09 AB0E Ethiopic
AB11 AB16 Ethiopic
AB20 AB26 Ethiopic
AB28 AB2E Ethiopic
+AB30 AB5A Latin
+AB5B Common
+AB5C AB5F Latin
+AB64 Latin
+AB65 Greek
ABC0 ABED Meetei_Mayek
ABF0 ABF9 Meetei_Mayek
AC00 D7A3 Hangul
@@ -527,11 +538,10 @@ FBD3 FD3D Arabic
FD3E FD3F Common
FD50 FD8F Arabic
FD92 FDC7 Arabic
-FDF0 FDFC Arabic
-FDFD Common
+FDF0 FDFD Arabic
FE00 FE0F Inherited
FE10 FE19 Common
-FE20 FE26 Inherited
+FE20 FE2D Inherited
FE30 FE52 Common
FE54 FE66 Common
FE68 FE6B Common
@@ -565,15 +575,18 @@ FFF9 FFFD Common
10100 10102 Common
10107 10133 Common
10137 1013F Common
-10140 1018A Greek
+10140 1018C Greek
10190 1019B Common
+101A0 Greek
101D0 101FC Common
101FD Inherited
10280 1029C Lycian
102A0 102D0 Carian
-10300 1031E Old_Italic
-10320 10323 Old_Italic
+102E0 Inherited
+102E1 102FB Common
+10300 10323 Old_Italic
10330 1034A Gothic
+10350 1037A Old_Permic
10380 1039D Ugaritic
1039F Ugaritic
103A0 103C3 Old_Persian
@@ -582,6 +595,12 @@ FFF9 FFFD Common
10450 1047F Shavian
10480 1049D Osmanya
104A0 104A9 Osmanya
+10500 10527 Elbasan
+10530 10563 Caucasian_Albanian
+1056F Caucasian_Albanian
+10600 10736 Linear_A
+10740 10755 Linear_A
+10760 10767 Linear_A
10800 10805 Cypriot
10808 Cypriot
1080A 10835 Cypriot
@@ -590,6 +609,9 @@ FFF9 FFFD Common
1083F Cypriot
10840 10855 Imperial_Aramaic
10857 1085F Imperial_Aramaic
+10860 1087F Palmyrene
+10880 1089E Nabataean
+108A7 108AF Nabataean
10900 1091B Phoenician
1091F Phoenician
10920 10939 Lydian
@@ -606,35 +628,88 @@ FFF9 FFFD Common
10A3F 10A47 Kharoshthi
10A50 10A58 Kharoshthi
10A60 10A7F Old_South_Arabian
+10A80 10A9F Old_North_Arabian
+10AC0 10AE6 Manichaean
+10AEB 10AF6 Manichaean
10B00 10B35 Avestan
10B39 10B3F Avestan
10B40 10B55 Inscriptional_Parthian
10B58 10B5F Inscriptional_Parthian
10B60 10B72 Inscriptional_Pahlavi
10B78 10B7F Inscriptional_Pahlavi
+10B80 10B91 Psalter_Pahlavi
+10B99 10B9C Psalter_Pahlavi
+10BA9 10BAF Psalter_Pahlavi
10C00 10C48 Old_Turkic
10E60 10E7E Arabic
11000 1104D Brahmi
11052 1106F Brahmi
+1107F Brahmi
11080 110C1 Kaithi
110D0 110E8 Sora_Sompeng
110F0 110F9 Sora_Sompeng
11100 11134 Chakma
11136 11143 Chakma
+11150 11176 Mahajani
11180 111C8 Sharada
-111D0 111D9 Sharada
+111CD Sharada
+111D0 111DA Sharada
+111E1 111F4 Sinhala
+11200 11211 Khojki
+11213 1123D Khojki
+112B0 112EA Khudawadi
+112F0 112F9 Khudawadi
+11301 11303 Grantha
+11305 1130C Grantha
+1130F 11310 Grantha
+11313 11328 Grantha
+1132A 11330 Grantha
+11332 11333 Grantha
+11335 11339 Grantha
+1133C 11344 Grantha
+11347 11348 Grantha
+1134B 1134D Grantha
+11357 Grantha
+1135D 11363 Grantha
+11366 1136C Grantha
+11370 11374 Grantha
+11480 114C7 Tirhuta
+114D0 114D9 Tirhuta
+11580 115B5 Siddham
+115B8 115C9 Siddham
+11600 11644 Modi
+11650 11659 Modi
11680 116B7 Takri
116C0 116C9 Takri
-12000 1236E Cuneiform
-12400 12462 Cuneiform
-12470 12473 Cuneiform
+118A0 118F2 Warang_Citi
+118FF Warang_Citi
+11AC0 11AF8 Pau_Cin_Hau
+12000 12398 Cuneiform
+12400 1246E Cuneiform
+12470 12474 Cuneiform
13000 1342E Egyptian_Hieroglyphs
16800 16A38 Bamum
+16A40 16A5E Mro
+16A60 16A69 Mro
+16A6E 16A6F Mro
+16AD0 16AED Bassa_Vah
+16AF0 16AF5 Bassa_Vah
+16B00 16B45 Pahawh_Hmong
+16B50 16B59 Pahawh_Hmong
+16B5B 16B61 Pahawh_Hmong
+16B63 16B77 Pahawh_Hmong
+16B7D 16B8F Pahawh_Hmong
16F00 16F44 Miao
16F50 16F7E Miao
16F8F 16F9F Miao
1B000 Katakana
1B001 Hiragana
+1BC00 1BC6A Duployan
+1BC70 1BC7C Duployan
+1BC80 1BC88 Duployan
+1BC90 1BC99 Duployan
+1BC9C 1BC9F Duployan
+1BCA0 1BCA3 Common
1D000 1D0F5 Common
1D100 1D126 Common
1D129 1D166 Common
@@ -670,6 +745,8 @@ FFF9 FFFD Common
1D552 1D6A5 Common
1D6A8 1D7CB Common
1D7CE 1D7FF Common
+1E800 1E8C4 Mende_Kikakui
+1E8C7 1E8D6 Mende_Kikakui
1EE00 1EE03 Arabic
1EE05 1EE1F Arabic
1EE21 1EE22 Arabic
@@ -707,10 +784,10 @@ FFF9 FFFD Common
1F000 1F02B Common
1F030 1F093 Common
1F0A0 1F0AE Common
-1F0B1 1F0BE Common
+1F0B1 1F0BF Common
1F0C1 1F0CF Common
-1F0D1 1F0DF Common
-1F100 1F10A Common
+1F0D1 1F0F5 Common
+1F100 1F10C Common
1F110 1F12E Common
1F130 1F16B Common
1F170 1F19A Common
@@ -720,24 +797,25 @@ FFF9 FFFD Common
1F210 1F23A Common
1F240 1F248 Common
1F250 1F251 Common
-1F300 1F320 Common
-1F330 1F335 Common
-1F337 1F37C Common
-1F380 1F393 Common
-1F3A0 1F3C4 Common
-1F3C6 1F3CA Common
-1F3E0 1F3F0 Common
-1F400 1F43E Common
-1F440 Common
-1F442 1F4F7 Common
-1F4F9 1F4FC Common
-1F500 1F53D Common
-1F540 1F543 Common
-1F550 1F567 Common
-1F5FB 1F640 Common
-1F645 1F64F Common
-1F680 1F6C5 Common
+1F300 1F32C Common
+1F330 1F37D Common
+1F380 1F3CE Common
+1F3D4 1F3F7 Common
+1F400 1F4FE Common
+1F500 1F54A Common
+1F550 1F579 Common
+1F57B 1F5A3 Common
+1F5A5 1F642 Common
+1F645 1F6CF Common
+1F6E0 1F6EC Common
+1F6F0 1F6F3 Common
1F700 1F773 Common
+1F780 1F7D4 Common
+1F800 1F80B Common
+1F810 1F847 Common
+1F850 1F859 Common
+1F860 1F887 Common
+1F890 1F8AD Common
20000 2A6D6 Han
2A700 2B734 Han
2B740 2B81D Han
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Scx.pl b/Master/tlpkg/tlperl/lib/unicore/To/Scx.pl
index 12f5900999b..dc349a58154 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Scx.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Scx.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -47,6 +47,7 @@ F8 2B8 Latin
375 377 Greek
37A 37D Greek
37E Common
+37F Greek
384 Greek
385 Common
386 Greek
@@ -59,25 +60,27 @@ F8 2B8 Latin
3F0 3FF Greek
400 484 Cyrillic
485 486 Cyrillic Latin
-487 527 Cyrillic
+487 52F Cyrillic
531 556 Armenian
559 55F Armenian
561 587 Armenian
589 Armenian Georgian
58A Armenian
-58F Armenian
+58D 58F Armenian
591 5C7 Hebrew
5D0 5EA Hebrew
5F0 5F4 Hebrew
600 604 Arabic
+605 Common
606 60B Arabic
60C Arabic Syriac Thaana
60D 61A Arabic
-61B 61C Arabic Syriac Thaana
+61B Arabic Syriac Thaana
+61C Common
61E Arabic
61F Arabic Syriac Thaana
620 63F Arabic
-640 Arabic Mandaic Syriac
+640 Arabic Mandaic Manichaean Psalter_Pahlavi Syriac
641 64A Arabic
64B 655 Arabic Syriac
656 65F Arabic
@@ -97,17 +100,16 @@ F8 2B8 Latin
830 83E Samaritan
840 85B Mandaic
85E Mandaic
-8A0 Arabic
-8A2 8AC Arabic
-8E4 8FE Arabic
+8A0 8B2 Arabic
+8E4 8FF Arabic
900 950 Devanagari
951 952 Devanagari Latin
953 963 Devanagari
-964 965 Bengali Devanagari Gurmukhi Oriya Takri
-966 96F Devanagari Kaithi
-970 977 Devanagari
-979 97F Devanagari
-981 983 Bengali
+964 Bengali Devanagari Grantha Gujarati Gurmukhi Kannada Mahajani Malayalam Oriya Khudawadi Sinhala Syloti_Nagri Takri Tamil Telugu Tirhuta
+965 Bengali Devanagari Grantha Gujarati Gurmukhi Kannada Limbu Mahajani Malayalam Oriya Khudawadi Sinhala Syloti_Nagri Takri Tamil Telugu Tirhuta
+966 96F Devanagari Kaithi Mahajani
+970 97F Devanagari
+980 983 Bengali
985 98C Bengali
98F 990 Bengali
993 9A8 Bengali
@@ -150,7 +152,8 @@ AC7 AC9 Gujarati
ACB ACD Gujarati
AD0 Gujarati
AE0 AE3 Gujarati
-AE6 AF1 Gujarati
+AE6 AEF Gujarati Khojki
+AF0 AF1 Gujarati
B01 B03 Oriya
B05 B0C Oriya
B0F B10 Oriya
@@ -181,12 +184,11 @@ BCA BCD Tamil
BD0 Tamil
BD7 Tamil
BE6 BFA Tamil
-C01 C03 Telugu
+C00 C03 Telugu
C05 C0C Telugu
C0E C10 Telugu
C12 C28 Telugu
-C2A C33 Telugu
-C35 C39 Telugu
+C2A C39 Telugu
C3D C44 Telugu
C46 C48 Telugu
C4A C4D Telugu
@@ -195,7 +197,7 @@ C58 C59 Telugu
C60 C63 Telugu
C66 C6F Telugu
C78 C7F Telugu
-C82 C83 Kannada
+C81 C83 Kannada
C85 C8C Kannada
C8E C90 Kannada
C92 CA8 Kannada
@@ -209,7 +211,7 @@ CDE Kannada
CE0 CE3 Kannada
CE6 CEF Kannada
CF1 CF2 Kannada
-D02 D03 Malayalam
+D01 D03 Malayalam
D05 D0C Malayalam
D0E D10 Malayalam
D12 D3A Malayalam
@@ -230,6 +232,7 @@ DCA Sinhala
DCF DD4 Sinhala
DD6 Sinhala
DD8 DDF Sinhala
+DE6 DEF Sinhala
DF2 DF4 Sinhala
E01 E3A Thai
E3F Common
@@ -293,7 +296,7 @@ FD9 FDA Tibetan
1680 169C Ogham
16A0 16EA Runic
16EB 16ED Common
-16EE 16F0 Runic
+16EE 16F8 Runic
1700 170C Tagalog
170E 1714 Tagalog
1720 1734 Hanunoo
@@ -314,7 +317,7 @@ FD9 FDA Tibetan
1820 1877 Mongolian
1880 18AA Mongolian
18B0 18F5 Canadian_Aboriginal
-1900 191C Limbu
+1900 191E Limbu
1920 192B Limbu
1930 193B Limbu
1940 Limbu
@@ -333,6 +336,7 @@ FD9 FDA Tibetan
1A7F 1A89 Tai_Tham
1A90 1A99 Tai_Tham
1AA0 1AAD Tai_Tham
+1AB0 1ABE Inherited
1B00 1B4B Balinese
1B50 1B7C Balinese
1B80 1BBF Sundanese
@@ -351,6 +355,7 @@ FD9 FDA Tibetan
1CEE 1CF1 Common
1CF2 1CF4 Devanagari
1CF5 1CF6 Common
+1CF8 1CF9 Devanagari
1D00 1D25 Latin
1D26 1D2A Greek
1D2B Cyrillic
@@ -362,7 +367,7 @@ FD9 FDA Tibetan
1D78 Cyrillic
1D79 1DBE Latin
1DBF 1DC1 Greek
-1DC2 1DE6 Inherited
+1DC2 1DF5 Inherited
1DFC 1DFF Inherited
1E00 1EFF Latin
1F00 1F15 Greek
@@ -390,7 +395,7 @@ FD9 FDA Tibetan
207F Latin
2080 208E Common
2090 209C Latin
-20A0 20BA Common
+20A0 20BD Common
20D0 20F0 Inherited
2100 2125 Common
2126 Greek
@@ -403,14 +408,16 @@ FD9 FDA Tibetan
214F 215F Common
2160 2188 Latin
2189 Common
-2190 23F3 Common
+2190 23FA Common
2400 2426 Common
2440 244A Common
-2460 26FF Common
-2701 27FF Common
+2460 27FF Common
2800 28FF Braille
-2900 2B4C Common
-2B50 2B59 Common
+2900 2B73 Common
+2B76 2B95 Common
+2B98 2BB9 Common
+2BBD 2BC8 Common
+2BCA 2BD1 Common
2C00 2C2E Glagolitic
2C30 2C5E Glagolitic
2C60 2C7F Latin
@@ -432,7 +439,7 @@ FD9 FDA Tibetan
2DD0 2DD6 Ethiopic
2DD8 2DDE Ethiopic
2DE0 2DFF Cyrillic
-2E00 2E3B Common
+2E00 2E42 Common
2E80 2E99 Han
2E9B 2EF3 Han
2F00 2FD5 Han
@@ -498,23 +505,25 @@ A000 A48C Yi
A490 A4C6 Yi
A4D0 A4FF Lisu
A500 A62B Vai
-A640 A697 Cyrillic
+A640 A69D Cyrillic
A69F Cyrillic
A6A0 A6F7 Bamum
A700 A721 Common
A722 A787 Latin
A788 A78A Common
A78B A78E Latin
-A790 A793 Latin
-A7A0 A7AA Latin
-A7F8 A7FF Latin
+A790 A7AD Latin
+A7B0 A7B1 Latin
+A7F7 A7FF Latin
A800 A82B Syloti_Nagri
-A830 A839 Devanagari Gujarati Gurmukhi Kaithi Takri
+A830 A839 Devanagari Gujarati Gurmukhi Kaithi Mahajani Modi Khudawadi Takri Tirhuta
A840 A877 Phags_Pa
A880 A8C4 Saurashtra
A8CE A8D9 Saurashtra
A8E0 A8FB Devanagari
-A900 A92F Kayah_Li
+A900 A92D Kayah_Li
+A92E Kayah_Li Latin Myanmar
+A92F Kayah_Li
A930 A953 Rejang
A95F Rejang
A960 A97C Hangul
@@ -522,11 +531,12 @@ A980 A9CD Javanese
A9CF Buginese Javanese
A9D0 A9D9 Javanese
A9DE A9DF Javanese
+A9E0 A9FE Myanmar
AA00 AA36 Cham
AA40 AA4D Cham
AA50 AA59 Cham
AA5C AA5F Cham
-AA60 AA7B Myanmar
+AA60 AA7F Myanmar
AA80 AAC2 Tai_Viet
AADB AADF Tai_Viet
AAE0 AAF6 Meetei_Mayek
@@ -535,6 +545,11 @@ AB09 AB0E Ethiopic
AB11 AB16 Ethiopic
AB20 AB26 Ethiopic
AB28 AB2E Ethiopic
+AB30 AB5A Latin
+AB5B Common
+AB5C AB5F Latin
+AB64 Latin
+AB65 Greek
ABC0 ABED Meetei_Mayek
ABF0 ABF9 Meetei_Mayek
AC00 D7A3 Hangul
@@ -561,7 +576,7 @@ FDF3 FDFC Arabic
FDFD Arabic Thaana
FE00 FE0F Inherited
FE10 FE19 Common
-FE20 FE26 Inherited
+FE20 FE2D Inherited
FE30 FE44 Common
FE45 FE46 Bopomofo Hangul Han Hiragana Katakana
FE47 FE52 Common
@@ -598,15 +613,17 @@ FFF9 FFFD Common
10100 10102 Cypriot Linear_B
10107 10133 Cypriot Linear_B
10137 1013F Cypriot Linear_B
-10140 1018A Greek
+10140 1018C Greek
10190 1019B Common
+101A0 Greek
101D0 101FC Common
101FD Inherited
10280 1029C Lycian
102A0 102D0 Carian
-10300 1031E Old_Italic
-10320 10323 Old_Italic
+102E0 102FB Arabic Coptic
+10300 10323 Old_Italic
10330 1034A Gothic
+10350 1037A Old_Permic
10380 1039D Ugaritic
1039F Ugaritic
103A0 103C3 Old_Persian
@@ -615,6 +632,12 @@ FFF9 FFFD Common
10450 1047F Shavian
10480 1049D Osmanya
104A0 104A9 Osmanya
+10500 10527 Elbasan
+10530 10563 Caucasian_Albanian
+1056F Caucasian_Albanian
+10600 10736 Linear_A
+10740 10755 Linear_A
+10760 10767 Linear_A
10800 10805 Cypriot
10808 Cypriot
1080A 10835 Cypriot
@@ -623,6 +646,9 @@ FFF9 FFFD Common
1083F Cypriot
10840 10855 Imperial_Aramaic
10857 1085F Imperial_Aramaic
+10860 1087F Palmyrene
+10880 1089E Nabataean
+108A7 108AF Nabataean
10900 1091B Phoenician
1091F Phoenician
10920 10939 Lydian
@@ -639,35 +665,87 @@ FFF9 FFFD Common
10A3F 10A47 Kharoshthi
10A50 10A58 Kharoshthi
10A60 10A7F Old_South_Arabian
+10A80 10A9F Old_North_Arabian
+10AC0 10AE6 Manichaean
+10AEB 10AF6 Manichaean
10B00 10B35 Avestan
10B39 10B3F Avestan
10B40 10B55 Inscriptional_Parthian
10B58 10B5F Inscriptional_Parthian
10B60 10B72 Inscriptional_Pahlavi
10B78 10B7F Inscriptional_Pahlavi
+10B80 10B91 Psalter_Pahlavi
+10B99 10B9C Psalter_Pahlavi
+10BA9 10BAF Psalter_Pahlavi
10C00 10C48 Old_Turkic
10E60 10E7E Arabic
11000 1104D Brahmi
11052 1106F Brahmi
+1107F Brahmi
11080 110C1 Kaithi
110D0 110E8 Sora_Sompeng
110F0 110F9 Sora_Sompeng
11100 11134 Chakma
11136 11143 Chakma
+11150 11176 Mahajani
11180 111C8 Sharada
-111D0 111D9 Sharada
+111CD Sharada
+111D0 111DA Sharada
+111E1 111F4 Sinhala
+11200 11211 Khojki
+11213 1123D Khojki
+112B0 112EA Khudawadi
+112F0 112F9 Khudawadi
+11301 11303 Grantha
+11305 1130C Grantha
+1130F 11310 Grantha
+11313 11328 Grantha
+1132A 11330 Grantha
+11332 11333 Grantha
+11335 11339 Grantha
+1133C 11344 Grantha
+11347 11348 Grantha
+1134B 1134D Grantha
+11357 Grantha
+1135D 11363 Grantha
+11366 1136C Grantha
+11370 11374 Grantha
+11480 114C7 Tirhuta
+114D0 114D9 Tirhuta
+11580 115B5 Siddham
+115B8 115C9 Siddham
+11600 11644 Modi
+11650 11659 Modi
11680 116B7 Takri
116C0 116C9 Takri
-12000 1236E Cuneiform
-12400 12462 Cuneiform
-12470 12473 Cuneiform
+118A0 118F2 Warang_Citi
+118FF Warang_Citi
+11AC0 11AF8 Pau_Cin_Hau
+12000 12398 Cuneiform
+12400 1246E Cuneiform
+12470 12474 Cuneiform
13000 1342E Egyptian_Hieroglyphs
16800 16A38 Bamum
+16A40 16A5E Mro
+16A60 16A69 Mro
+16A6E 16A6F Mro
+16AD0 16AED Bassa_Vah
+16AF0 16AF5 Bassa_Vah
+16B00 16B45 Pahawh_Hmong
+16B50 16B59 Pahawh_Hmong
+16B5B 16B61 Pahawh_Hmong
+16B63 16B77 Pahawh_Hmong
+16B7D 16B8F Pahawh_Hmong
16F00 16F44 Miao
16F50 16F7E Miao
16F8F 16F9F Miao
1B000 Katakana
1B001 Hiragana
+1BC00 1BC6A Duployan
+1BC70 1BC7C Duployan
+1BC80 1BC88 Duployan
+1BC90 1BC99 Duployan
+1BC9C 1BCA3 Duployan
1D000 1D0F5 Common
1D100 1D126 Common
1D129 1D166 Common
@@ -703,6 +781,8 @@ FFF9 FFFD Common
1D552 1D6A5 Common
1D6A8 1D7CB Common
1D7CE 1D7FF Common
+1E800 1E8C4 Mende_Kikakui
+1E8C7 1E8D6 Mende_Kikakui
1EE00 1EE03 Arabic
1EE05 1EE1F Arabic
1EE21 1EE22 Arabic
@@ -740,10 +820,10 @@ FFF9 FFFD Common
1F000 1F02B Common
1F030 1F093 Common
1F0A0 1F0AE Common
-1F0B1 1F0BE Common
+1F0B1 1F0BF Common
1F0C1 1F0CF Common
-1F0D1 1F0DF Common
-1F100 1F10A Common
+1F0D1 1F0F5 Common
+1F100 1F10C Common
1F110 1F12E Common
1F130 1F16B Common
1F170 1F19A Common
@@ -753,24 +833,25 @@ FFF9 FFFD Common
1F210 1F23A Common
1F240 1F248 Common
1F250 1F251 Common
-1F300 1F320 Common
-1F330 1F335 Common
-1F337 1F37C Common
-1F380 1F393 Common
-1F3A0 1F3C4 Common
-1F3C6 1F3CA Common
-1F3E0 1F3F0 Common
-1F400 1F43E Common
-1F440 Common
-1F442 1F4F7 Common
-1F4F9 1F4FC Common
-1F500 1F53D Common
-1F540 1F543 Common
-1F550 1F567 Common
-1F5FB 1F640 Common
-1F645 1F64F Common
-1F680 1F6C5 Common
+1F300 1F32C Common
+1F330 1F37D Common
+1F380 1F3CE Common
+1F3D4 1F3F7 Common
+1F400 1F4FE Common
+1F500 1F54A Common
+1F550 1F579 Common
+1F57B 1F5A3 Common
+1F5A5 1F642 Common
+1F645 1F6CF Common
+1F6E0 1F6EC Common
+1F6F0 1F6F3 Common
1F700 1F773 Common
+1F780 1F7D4 Common
+1F800 1F80B Common
+1F810 1F847 Common
+1F850 1F859 Common
+1F860 1F887 Common
+1F890 1F8AD Common
20000 2A6D6 Han
2A700 2B734 Han
2B740 2B81D Han
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Tc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Tc.pl
index 02200fd8e8e..434c713952f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Tc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Tc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -240,13 +240,16 @@ FF 178
256 257 189
259 18F
25B 190
+25C A7AB
260 193
+261 A7AC
263 194
265 A78D
266 A7AA
268 197
269 196
26B 2C62
+26C A7AD
26F 19C
271 2C6E
272 19D
@@ -254,11 +257,13 @@ FF 178
27D 2C64
280 1A6
283 1A9
+287 A7B1
288 1AE
289 244
28A 28B 1B1
28C 245
292 1B7
+29E A7B0
345 399
371 370
373 372
@@ -291,6 +296,7 @@ FF 178
3F0 39A
3F1 3A1
3F2 3F9
+3F3 37F
3F5 395
3F8 3F7
3FB 3FA
@@ -392,6 +398,10 @@ FF 178
523 522
525 524
527 526
+529 528
+52B 52A
+52D 52C
+52F 52E
561 586 531
1D79 A77D
1D7D 2C63
@@ -650,6 +660,8 @@ A691 A690
A693 A692
A695 A694
A697 A696
+A699 A698
+A69B A69A
A723 A722
A725 A724
A727 A726
@@ -698,6 +710,11 @@ A787 A786
A78C A78B
A791 A790
A793 A792
+A797 A796
+A799 A798
+A79B A79A
+A79D A79C
+A79F A79E
A7A1 A7A0
A7A3 A7A2
A7A5 A7A4
@@ -705,4 +722,5 @@ A7A7 A7A6
A7A9 A7A8
FF41 FF5A FF21
10428 1044F 10400
+118C0 118DF 118A0
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Title.pl b/Master/tlpkg/tlperl/lib/unicore/To/Title.pl
index 558ea4427dc..f8ffd5c265c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Title.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Title.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -9,7 +9,8 @@
# but its format and even its name or existence are subject to change without
# notice in a future Perl version. Don't use it directly. Instead, its
# contents are now retrievable through a stable API in the Unicode::UCD
-# module: Unicode::UCD::prop_invmap('Titlecase_Mapping').
+# module: Unicode::UCD::prop_invmap('Titlecase_Mapping') (Values for individual
+# code points can be retrieved via Unicode::UCD::charprop());
@@ -295,13 +296,16 @@ return <<'END';
0257 018A
0259 018F
025B 0190
+025C A7AB
0260 0193
+0261 A7AC
0263 0194
0265 A78D
0266 A7AA
0268 0197
0269 0196
026B 2C62
+026C A7AD
026F 019C
0271 2C6E
0272 019D
@@ -309,12 +313,14 @@ return <<'END';
027D 2C64
0280 01A6
0283 01A9
+0287 A7B1
0288 01AE
0289 0244
028A 01B1
028B 01B2
028C 0245
0292 01B7
+029E A7B0
0345 0399
0371 0370
0373 0372
@@ -376,6 +382,7 @@ return <<'END';
03F0 039A
03F1 03A1
03F2 03F9
+03F3 037F
03F5 0395
03F8 03F7
03FB 03FA
@@ -523,6 +530,10 @@ return <<'END';
0523 0522
0525 0524
0527 0526
+0529 0528
+052B 052A
+052D 052C
+052F 052E
0561 0531
0562 0532
0563 0533
@@ -1011,6 +1022,8 @@ A691 A690
A693 A692
A695 A694
A697 A696
+A699 A698
+A69B A69A
A723 A722
A725 A724
A727 A726
@@ -1059,6 +1072,11 @@ A787 A786
A78C A78B
A791 A790
A793 A792
+A797 A796
+A799 A798
+A79B A79A
+A79D A79C
+A79F A79E
A7A1 A7A0
A7A3 A7A2
A7A5 A7A4
@@ -1130,4 +1148,36 @@ FF5A FF3A
1044D 10425
1044E 10426
1044F 10427
+118C0 118A0
+118C1 118A1
+118C2 118A2
+118C3 118A3
+118C4 118A4
+118C5 118A5
+118C6 118A6
+118C7 118A7
+118C8 118A8
+118C9 118A9
+118CA 118AA
+118CB 118AB
+118CC 118AC
+118CD 118AD
+118CE 118AE
+118CF 118AF
+118D0 118B0
+118D1 118B1
+118D2 118B2
+118D3 118B3
+118D4 118B4
+118D5 118B5
+118D6 118B6
+118D7 118B7
+118D8 118B8
+118D9 118B9
+118DA 118BA
+118DB 118BB
+118DC 118BC
+118DD 118BD
+118DE 118BE
+118DF 118BF
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Uc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Uc.pl
index 1a804cb3def..b0cce4038d1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Uc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Uc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -294,13 +294,16 @@ FF 178
256 257 189
259 18F
25B 190
+25C A7AB
260 193
+261 A7AC
263 194
265 A78D
266 A7AA
268 197
269 196
26B 2C62
+26C A7AD
26F 19C
271 2C6E
272 19D
@@ -308,11 +311,13 @@ FF 178
27D 2C64
280 1A6
283 1A9
+287 A7B1
288 1AE
289 244
28A 28B 1B1
28C 245
292 1B7
+29E A7B0
345 399
371 370
373 372
@@ -345,6 +350,7 @@ FF 178
3F0 39A
3F1 3A1
3F2 3F9
+3F3 37F
3F5 395
3F8 3F7
3FB 3FA
@@ -446,6 +452,10 @@ FF 178
523 522
525 524
527 526
+529 528
+52B 52A
+52D 52C
+52F 52E
561 586 531
1D79 A77D
1D7D 2C63
@@ -704,6 +714,8 @@ A691 A690
A693 A692
A695 A694
A697 A696
+A699 A698
+A69B A69A
A723 A722
A725 A724
A727 A726
@@ -752,6 +764,11 @@ A787 A786
A78C A78B
A791 A790
A793 A792
+A797 A796
+A799 A798
+A79B A79A
+A79D A79C
+A79F A79E
A7A1 A7A0
A7A3 A7A2
A7A5 A7A4
@@ -759,4 +776,5 @@ A7A7 A7A6
A7A9 A7A8
FF41 FF5A FF21
10428 1044F 10400
+118C0 118DF 118A0
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Upper.pl b/Master/tlpkg/tlperl/lib/unicore/To/Upper.pl
index 3d10f8fb26d..c04a52ffee0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Upper.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Upper.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -9,7 +9,8 @@
# but its format and even its name or existence are subject to change without
# notice in a future Perl version. Don't use it directly. Instead, its
# contents are now retrievable through a stable API in the Unicode::UCD
-# module: Unicode::UCD::prop_invmap('Uppercase_Mapping').
+# module: Unicode::UCD::prop_invmap('Uppercase_Mapping') (Values for individual
+# code points can be retrieved via Unicode::UCD::charprop());
@@ -349,13 +350,16 @@ return <<'END';
0257 018A
0259 018F
025B 0190
+025C A7AB
0260 0193
+0261 A7AC
0263 0194
0265 A78D
0266 A7AA
0268 0197
0269 0196
026B 2C62
+026C A7AD
026F 019C
0271 2C6E
0272 019D
@@ -363,12 +367,14 @@ return <<'END';
027D 2C64
0280 01A6
0283 01A9
+0287 A7B1
0288 01AE
0289 0244
028A 01B1
028B 01B2
028C 0245
0292 01B7
+029E A7B0
0345 0399
0371 0370
0373 0372
@@ -430,6 +436,7 @@ return <<'END';
03F0 039A
03F1 03A1
03F2 03F9
+03F3 037F
03F5 0395
03F8 03F7
03FB 03FA
@@ -577,6 +584,10 @@ return <<'END';
0523 0522
0525 0524
0527 0526
+0529 0528
+052B 052A
+052D 052C
+052F 052E
0561 0531
0562 0532
0563 0533
@@ -1038,6 +1049,8 @@ A691 A690
A693 A692
A695 A694
A697 A696
+A699 A698
+A69B A69A
A723 A722
A725 A724
A727 A726
@@ -1086,6 +1099,11 @@ A787 A786
A78C A78B
A791 A790
A793 A792
+A797 A796
+A799 A798
+A79B A79A
+A79D A79C
+A79F A79E
A7A1 A7A0
A7A3 A7A2
A7A5 A7A4
@@ -1157,4 +1175,36 @@ FF5A FF3A
1044D 10425
1044E 10426
1044F 10427
+118C0 118A0
+118C1 118A1
+118C2 118A2
+118C3 118A3
+118C4 118A4
+118C5 118A5
+118C6 118A6
+118C7 118A7
+118C8 118A8
+118C9 118A9
+118CA 118AA
+118CB 118AB
+118CC 118AC
+118CD 118AD
+118CE 118AE
+118CF 118AF
+118D0 118B0
+118D1 118B1
+118D2 118B2
+118D3 118B3
+118D4 118B4
+118D5 118B5
+118D6 118B6
+118D7 118B7
+118D8 118B8
+118D9 118B9
+118DA 118BA
+118DB 118BB
+118DC 118BC
+118DD 118BD
+118DE 118BE
+118DF 118BF
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/WB.pl b/Master/tlpkg/tlperl/lib/unicore/To/WB.pl
index 405ff7d9ae7..0e1f2a30ec2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/WB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/WB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -49,6 +49,7 @@ F8 2C1 ALetter
376 377 ALetter
37A 37D ALetter
37E MidNum
+37F ALetter
386 ALetter
387 MidLetter
388 38A ALetter
@@ -57,7 +58,7 @@ F8 2C1 ALetter
3A3 3F5 ALetter
3F7 481 ALetter
483 489 Extend
-48A 527 ALetter
+48A 52F ALetter
531 556 ALetter
559 ALetter
561 587 ALetter
@@ -71,7 +72,7 @@ F8 2C1 ALetter
5F0 5F2 Hebrew_Letter
5F3 ALetter
5F4 MidLetter
-600 604 Format
+600 605 Format
60C 60D MidNum
610 61A Extend
61C Format
@@ -118,10 +119,8 @@ F8 2C1 ALetter
829 82D Extend
840 858 ALetter
859 85B Extend
-8A0 ALetter
-8A2 8AC ALetter
-8E4 8FE Extend
-900 903 Extend
+8A0 8B2 ALetter
+8E4 903 Extend
904 939 ALetter
93A 93C Extend
93D ALetter
@@ -131,8 +130,7 @@ F8 2C1 ALetter
958 961 ALetter
962 963 Extend
966 96F Numeric
-971 977 ALetter
-979 97F ALetter
+971 980 ALetter
981 983 Extend
985 98C ALetter
98F 990 ALetter
@@ -222,12 +220,11 @@ BCA BCD Extend
BD0 ALetter
BD7 Extend
BE6 BEF Numeric
-C01 C03 Extend
+C00 C03 Extend
C05 C0C ALetter
C0E C10 ALetter
C12 C28 ALetter
-C2A C33 ALetter
-C35 C39 ALetter
+C2A C39 ALetter
C3D ALetter
C3E C44 Extend
C46 C48 Extend
@@ -237,7 +234,7 @@ C58 C59 ALetter
C60 C61 ALetter
C62 C63 Extend
C66 C6F Numeric
-C82 C83 Extend
+C81 C83 Extend
C85 C8C ALetter
C8E C90 ALetter
C92 CA8 ALetter
@@ -254,7 +251,7 @@ CE0 CE1 ALetter
CE2 CE3 Extend
CE6 CEF Numeric
CF1 CF2 ALetter
-D02 D03 Extend
+D01 D03 Extend
D05 D0C ALetter
D0E D10 ALetter
D12 D3A ALetter
@@ -278,6 +275,7 @@ DCA Extend
DCF DD4 Extend
DD6 Extend
DD8 DDF Extend
+DE6 DEF Numeric
DF2 DF3 Extend
E31 Extend
E34 E3A Extend
@@ -341,7 +339,7 @@ FC6 Extend
166F 167F ALetter
1681 169A ALetter
16A0 16EA ALetter
-16EE 16F0 ALetter
+16EE 16F8 ALetter
1700 170C ALetter
170E 1711 ALetter
1712 1714 Extend
@@ -363,7 +361,7 @@ FC6 Extend
18A9 Extend
18AA ALetter
18B0 18F5 ALetter
-1900 191C ALetter
+1900 191E ALetter
1920 192B Extend
1930 193B Extend
1946 194F Numeric
@@ -377,6 +375,7 @@ FC6 Extend
1A7F Extend
1A80 1A89 Numeric
1A90 1A99 Numeric
+1AB0 1ABE Extend
1B00 1B04 Extend
1B05 1B33 ALetter
1B34 1B44 Extend
@@ -403,8 +402,9 @@ FC6 Extend
1CEE 1CF1 ALetter
1CF2 1CF4 Extend
1CF5 1CF6 ALetter
+1CF8 1CF9 Extend
1D00 1DBF ALetter
-1DC0 1DE6 Extend
+1DC0 1DF5 Extend
1DFC 1DFF Extend
1E00 1F15 ALetter
1F18 1F1D ALetter
@@ -502,16 +502,16 @@ A62A A62B ALetter
A640 A66E ALetter
A66F A672 Extend
A674 A67D Extend
-A67F A697 ALetter
+A67F A69D ALetter
A69F Extend
A6A0 A6EF ALetter
A6F0 A6F1 Extend
A717 A71F ALetter
A722 A788 ALetter
A78B A78E ALetter
-A790 A793 ALetter
-A7A0 A7AA ALetter
-A7F8 A801 ALetter
+A790 A7AD ALetter
+A7B0 A7B1 ALetter
+A7F7 A801 ALetter
A802 Extend
A803 A805 ALetter
A806 Extend
@@ -538,6 +538,8 @@ A984 A9B2 ALetter
A9B3 A9C0 Extend
A9CF ALetter
A9D0 A9D9 Numeric
+A9E5 Extend
+A9F0 A9F9 Numeric
AA00 AA28 ALetter
AA29 AA36 Extend
AA40 AA42 ALetter
@@ -545,7 +547,7 @@ AA43 Extend
AA44 AA4B ALetter
AA4C AA4D Extend
AA50 AA59 Numeric
-AA7B Extend
+AA7B AA7D Extend
AAB0 Extend
AAB2 AAB4 Extend
AAB7 AAB8 Extend
@@ -560,6 +562,9 @@ AB09 AB0E ALetter
AB11 AB16 ALetter
AB20 AB26 ALetter
AB28 AB2E ALetter
+AB30 AB5A ALetter
+AB5C AB5F ALetter
+AB64 AB65 ALetter
ABC0 ABE2 ALetter
ABE3 ABEA Extend
ABEC ABED Extend
@@ -587,7 +592,7 @@ FE00 FE0F Extend
FE10 MidNum
FE13 MidLetter
FE14 MidNum
-FE20 FE26 Extend
+FE20 FE2D Extend
FE33 FE34 ExtendNumLet
FE4D FE4F ExtendNumLet
FE50 MidNum
@@ -624,20 +629,30 @@ FFF9 FFFB Format
101FD Extend
10280 1029C ALetter
102A0 102D0 ALetter
-10300 1031E ALetter
+102E0 Extend
+10300 1031F ALetter
10330 1034A ALetter
+10350 10375 ALetter
+10376 1037A Extend
10380 1039D ALetter
103A0 103C3 ALetter
103C8 103CF ALetter
103D1 103D5 ALetter
10400 1049D ALetter
104A0 104A9 Numeric
+10500 10527 ALetter
+10530 10563 ALetter
+10600 10736 ALetter
+10740 10755 ALetter
+10760 10767 ALetter
10800 10805 ALetter
10808 ALetter
1080A 10835 ALetter
10837 10838 ALetter
1083C ALetter
1083F 10855 ALetter
+10860 10876 ALetter
+10880 1089E ALetter
10900 10915 ALetter
10920 10939 ALetter
10980 109B7 ALetter
@@ -652,15 +667,20 @@ FFF9 FFFB Format
10A38 10A3A Extend
10A3F Extend
10A60 10A7C ALetter
+10A80 10A9C ALetter
+10AC0 10AC7 ALetter
+10AC9 10AE4 ALetter
+10AE5 10AE6 Extend
10B00 10B35 ALetter
10B40 10B55 ALetter
10B60 10B72 ALetter
+10B80 10B91 ALetter
10C00 10C48 ALetter
11000 11002 Extend
11003 11037 ALetter
11038 11046 Extend
11066 1106F Numeric
-11080 11082 Extend
+1107F 11082 Extend
11083 110AF ALetter
110B0 110BA Extend
110BD Format
@@ -670,24 +690,83 @@ FFF9 FFFB Format
11103 11126 ALetter
11127 11134 Extend
11136 1113F Numeric
+11150 11172 ALetter
+11173 Extend
+11176 ALetter
11180 11182 Extend
11183 111B2 ALetter
111B3 111C0 Extend
111C1 111C4 ALetter
111D0 111D9 Numeric
+111DA ALetter
+11200 11211 ALetter
+11213 1122B ALetter
+1122C 11237 Extend
+112B0 112DE ALetter
+112DF 112EA Extend
+112F0 112F9 Numeric
+11301 11303 Extend
+11305 1130C ALetter
+1130F 11310 ALetter
+11313 11328 ALetter
+1132A 11330 ALetter
+11332 11333 ALetter
+11335 11339 ALetter
+1133C Extend
+1133D ALetter
+1133E 11344 Extend
+11347 11348 Extend
+1134B 1134D Extend
+11357 Extend
+1135D 11361 ALetter
+11362 11363 Extend
+11366 1136C Extend
+11370 11374 Extend
+11480 114AF ALetter
+114B0 114C3 Extend
+114C4 114C5 ALetter
+114C7 ALetter
+114D0 114D9 Numeric
+11580 115AE ALetter
+115AF 115B5 Extend
+115B8 115C0 Extend
+11600 1162F ALetter
+11630 11640 Extend
+11644 ALetter
+11650 11659 Numeric
11680 116AA ALetter
116AB 116B7 Extend
116C0 116C9 Numeric
-12000 1236E ALetter
-12400 12462 ALetter
+118A0 118DF ALetter
+118E0 118E9 Numeric
+118FF ALetter
+11AC0 11AF8 ALetter
+12000 12398 ALetter
+12400 1246E ALetter
13000 1342E ALetter
16800 16A38 ALetter
+16A40 16A5E ALetter
+16A60 16A69 Numeric
+16AD0 16AED ALetter
+16AF0 16AF4 Extend
+16B00 16B2F ALetter
+16B30 16B36 Extend
+16B40 16B43 ALetter
+16B50 16B59 Numeric
+16B63 16B77 ALetter
+16B7D 16B8F ALetter
16F00 16F44 ALetter
16F50 ALetter
16F51 16F7E Extend
16F8F 16F92 Extend
16F93 16F9F ALetter
1B000 Katakana
+1BC00 1BC6A ALetter
+1BC70 1BC7C ALetter
+1BC80 1BC88 ALetter
+1BC90 1BC99 ALetter
+1BC9D 1BC9E Extend
+1BCA0 1BCA3 Format
1D165 1D169 Extend
1D16D 1D172 Extend
1D173 1D17A Format
@@ -726,6 +805,8 @@ FFF9 FFFB Format
1D7AA 1D7C2 ALetter
1D7C4 1D7CB ALetter
1D7CE 1D7FF Numeric
+1E800 1E8C4 ALetter
+1E8D0 1E8D6 Extend
1EE00 1EE03 ALetter
1EE05 1EE1F ALetter
1EE21 1EE22 ALetter
@@ -759,6 +840,9 @@ FFF9 FFFB Format
1EEA1 1EEA3 ALetter
1EEA5 1EEA9 ALetter
1EEAB 1EEBB ALetter
+1F130 1F149 ALetter
+1F150 1F169 ALetter
+1F170 1F189 ALetter
1F1E6 1F1FF Regional_Indicator
E0001 Format
E0020 E007F Format
diff --git a/Master/tlpkg/tlperl/lib/unicore/UCD.pl b/Master/tlpkg/tlperl/lib/unicore/UCD.pl
index a5c69855100..e21995fb1a1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/UCD.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/UCD.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
@@ -37,6 +37,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'age=6.1' => '6.1',
'age=6.2' => '6.2',
'age=6.3' => '6.3',
+'age=7.0' => '7.0',
'age=na' => 'na',
'age=unassigned' => 'na',
'age=v11' => '1.1',
@@ -54,6 +55,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'age=v61' => '6.1',
'age=v62' => '6.2',
'age=v63' => '6.3',
+'age=v70' => '7.0',
'ahex=f' => 'n',
'ahex=false' => 'n',
'ahex=n' => 'n',
@@ -161,6 +163,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=bamumsup' => 'bamumsup',
'blk=bamumsupplement' => 'bamumsup',
'blk=basiclatin' => 'ascii',
+'blk=bassavah' => 'bassavah',
'blk=batak' => 'batak',
'blk=bengali' => 'bengali',
'blk=blockelements' => 'blockelements',
@@ -177,6 +180,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=byzantinemusicalsymbols' => 'byzantinemusic',
'blk=canadiansyllabics' => 'ucas',
'blk=carian' => 'carian',
+'blk=caucasianalbanian' => 'caucasianalbanian',
'blk=chakma' => 'chakma',
'blk=cham' => 'cham',
'blk=cherokee' => 'cherokee',
@@ -204,6 +208,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=cjkunifiedideographsextensionc' => 'cjkextc',
'blk=cjkunifiedideographsextensiond' => 'cjkextd',
'blk=combiningdiacriticalmarks' => 'diacriticals',
+'blk=combiningdiacriticalmarksextended' => 'diacriticalsext',
'blk=combiningdiacriticalmarksforsymbols' => 'diacriticalsforsymbols',
'blk=combiningdiacriticalmarkssupplement' => 'diacriticalssup',
'blk=combininghalfmarks' => 'halfmarks',
@@ -212,6 +217,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=compatjamo' => 'compatjamo',
'blk=controlpictures' => 'controlpictures',
'blk=coptic' => 'coptic',
+'blk=copticepactnumbers' => 'copticepactnumbers',
'blk=countingrod' => 'countingrod',
'blk=countingrodnumerals' => 'countingrod',
'blk=cuneiform' => 'cuneiform',
@@ -232,12 +238,15 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=devanagariext' => 'devanagariext',
'blk=devanagariextended' => 'devanagariext',
'blk=diacriticals' => 'diacriticals',
+'blk=diacriticalsext' => 'diacriticalsext',
'blk=diacriticalsforsymbols' => 'diacriticalsforsymbols',
'blk=diacriticalssup' => 'diacriticalssup',
'blk=dingbats' => 'dingbats',
'blk=domino' => 'domino',
'blk=dominotiles' => 'domino',
+'blk=duployan' => 'duployan',
'blk=egyptianhieroglyphs' => 'egyptianhieroglyphs',
+'blk=elbasan' => 'elbasan',
'blk=emoticons' => 'emoticons',
'blk=enclosedalphanum' => 'enclosedalphanum',
'blk=enclosedalphanumerics' => 'enclosedalphanum',
@@ -256,11 +265,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=ethiopicsupplement' => 'ethiopicsup',
'blk=generalpunctuation' => 'punctuation',
'blk=geometricshapes' => 'geometricshapes',
+'blk=geometricshapesext' => 'geometricshapesext',
+'blk=geometricshapesextended' => 'geometricshapesext',
'blk=georgian' => 'georgian',
'blk=georgiansup' => 'georgiansup',
'blk=georgiansupplement' => 'georgiansup',
'blk=glagolitic' => 'glagolitic',
'blk=gothic' => 'gothic',
+'blk=grantha' => 'grantha',
'blk=greek' => 'greek',
'blk=greekandcoptic' => 'greek',
'blk=greekext' => 'greekext',
@@ -308,6 +320,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=kharoshthi' => 'kharoshthi',
'blk=khmer' => 'khmer',
'blk=khmersymbols' => 'khmersymbols',
+'blk=khojki' => 'khojki',
+'blk=khudawadi' => 'khudawadi',
'blk=lao' => 'lao',
'blk=latin1' => 'latin1sup',
'blk=latin1sup' => 'latin1sup',
@@ -317,24 +331,29 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=latinextb' => 'latinextb',
'blk=latinextc' => 'latinextc',
'blk=latinextd' => 'latinextd',
+'blk=latinexte' => 'latinexte',
'blk=latinextendeda' => 'latinexta',
'blk=latinextendedadditional' => 'latinextadditional',
'blk=latinextendedb' => 'latinextb',
'blk=latinextendedc' => 'latinextc',
'blk=latinextendedd' => 'latinextd',
+'blk=latinextendede' => 'latinexte',
'blk=lepcha' => 'lepcha',
'blk=letterlikesymbols' => 'letterlikesymbols',
'blk=limbu' => 'limbu',
+'blk=lineara' => 'lineara',
'blk=linearbideograms' => 'linearbideograms',
'blk=linearbsyllabary' => 'linearbsyllabary',
'blk=lisu' => 'lisu',
'blk=lowsurrogates' => 'lowsurrogates',
'blk=lycian' => 'lycian',
'blk=lydian' => 'lydian',
+'blk=mahajani' => 'mahajani',
'blk=mahjong' => 'mahjong',
'blk=mahjongtiles' => 'mahjong',
'blk=malayalam' => 'malayalam',
'blk=mandaic' => 'mandaic',
+'blk=manichaean' => 'manichaean',
'blk=mathalphanum' => 'mathalphanum',
'blk=mathematicalalphanumericsymbols' => 'mathalphanum',
'blk=mathematicaloperators' => 'mathoperators',
@@ -342,6 +361,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=meeteimayek' => 'meeteimayek',
'blk=meeteimayekext' => 'meeteimayekext',
'blk=meeteimayekextensions' => 'meeteimayekext',
+'blk=mendekikakui' => 'mendekikakui',
'blk=meroiticcursive' => 'meroiticcursive',
'blk=meroitichieroglyphs' => 'meroitichieroglyphs',
'blk=miao' => 'miao',
@@ -357,14 +377,19 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=miscpictographs' => 'miscpictographs',
'blk=miscsymbols' => 'miscsymbols',
'blk=misctechnical' => 'misctechnical',
+'blk=modi' => 'modi',
'blk=modifierletters' => 'modifierletters',
'blk=modifiertoneletters' => 'modifiertoneletters',
'blk=mongolian' => 'mongolian',
+'blk=mro' => 'mro',
'blk=music' => 'music',
'blk=musicalsymbols' => 'music',
'blk=myanmar' => 'myanmar',
'blk=myanmarexta' => 'myanmarexta',
+'blk=myanmarextb' => 'myanmarextb',
'blk=myanmarextendeda' => 'myanmarexta',
+'blk=myanmarextendedb' => 'myanmarextb',
+'blk=nabataean' => 'nabataean',
'blk=nb' => 'nb',
'blk=newtailue' => 'newtailue',
'blk=nko' => 'nko',
@@ -374,12 +399,18 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=ogham' => 'ogham',
'blk=olchiki' => 'olchiki',
'blk=olditalic' => 'olditalic',
+'blk=oldnortharabian' => 'oldnortharabian',
+'blk=oldpermic' => 'oldpermic',
'blk=oldpersian' => 'oldpersian',
'blk=oldsoutharabian' => 'oldsoutharabian',
'blk=oldturkic' => 'oldturkic',
'blk=opticalcharacterrecognition' => 'ocr',
'blk=oriya' => 'oriya',
+'blk=ornamentaldingbats' => 'ornamentaldingbats',
'blk=osmanya' => 'osmanya',
+'blk=pahawhhmong' => 'pahawhhmong',
+'blk=palmyrene' => 'palmyrene',
+'blk=paucinhau' => 'paucinhau',
'blk=phagspa' => 'phagspa',
'blk=phaistos' => 'phaistos',
'blk=phaistosdisc' => 'phaistos',
@@ -391,6 +422,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=playingcards' => 'playingcards',
'blk=privateuse' => 'pua',
'blk=privateusearea' => 'pua',
+'blk=psalterpahlavi' => 'psalterpahlavi',
'blk=pua' => 'pua',
'blk=punctuation' => 'punctuation',
'blk=rejang' => 'rejang',
@@ -401,7 +433,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=saurashtra' => 'saurashtra',
'blk=sharada' => 'sharada',
'blk=shavian' => 'shavian',
+'blk=shorthandformatcontrols' => 'shorthandformatcontrols',
+'blk=siddham' => 'siddham',
'blk=sinhala' => 'sinhala',
+'blk=sinhalaarchaicnumbers' => 'sinhalaarchaicnumbers',
'blk=smallforms' => 'smallforms',
'blk=smallformvariants' => 'smallforms',
'blk=sorasompeng' => 'sorasompeng',
@@ -412,11 +447,13 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=sundanesesupplement' => 'sundanesesup',
'blk=suparrowsa' => 'suparrowsa',
'blk=suparrowsb' => 'suparrowsb',
+'blk=suparrowsc' => 'suparrowsc',
'blk=superandsub' => 'superandsub',
'blk=superscriptsandsubscripts' => 'superandsub',
'blk=supmathoperators' => 'supmathoperators',
'blk=supplementalarrowsa' => 'suparrowsa',
'blk=supplementalarrowsb' => 'suparrowsb',
+'blk=supplementalarrowsc' => 'suparrowsc',
'blk=supplementalmathematicaloperators' => 'supmathoperators',
'blk=supplementalpunctuation' => 'suppunctuation',
'blk=supplementaryprivateuseareaa' => 'suppuaa',
@@ -441,6 +478,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=thai' => 'thai',
'blk=tibetan' => 'tibetan',
'blk=tifinagh' => 'tifinagh',
+'blk=tirhuta' => 'tirhuta',
'blk=transportandmap' => 'transportandmap',
'blk=transportandmapsymbols' => 'transportandmap',
'blk=ucas' => 'ucas',
@@ -456,6 +494,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=verticalforms' => 'verticalforms',
'blk=vs' => 'vs',
'blk=vssup' => 'vssup',
+'blk=warangciti' => 'warangciti',
'blk=yijing' => 'yijing',
'blk=yijinghexagramsymbols' => 'yijing',
'blk=yiradicals' => 'yiradicals',
@@ -966,6 +1005,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'in=6.1' => '6.1',
'in=6.2' => '6.2',
'in=6.3' => '6.3',
+'in=7.0' => '7.0',
'in=unassigned' => 'unassigned',
'jg=ain' => 'ain',
'jg=alaph' => 'alaph',
@@ -994,6 +1034,33 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'jg=knottedheh' => 'knottedheh',
'jg=lam' => 'lam',
'jg=lamadh' => 'lamadh',
+'jg=manichaeanaleph' => 'manichaeanaleph',
+'jg=manichaeanayin' => 'manichaeanayin',
+'jg=manichaeanbeth' => 'manichaeanbeth',
+'jg=manichaeandaleth' => 'manichaeandaleth',
+'jg=manichaeandhamedh' => 'manichaeandhamedh',
+'jg=manichaeanfive' => 'manichaeanfive',
+'jg=manichaeangimel' => 'manichaeangimel',
+'jg=manichaeanheth' => 'manichaeanheth',
+'jg=manichaeanhundred' => 'manichaeanhundred',
+'jg=manichaeankaph' => 'manichaeankaph',
+'jg=manichaeanlamedh' => 'manichaeanlamedh',
+'jg=manichaeanmem' => 'manichaeanmem',
+'jg=manichaeannun' => 'manichaeannun',
+'jg=manichaeanone' => 'manichaeanone',
+'jg=manichaeanpe' => 'manichaeanpe',
+'jg=manichaeanqoph' => 'manichaeanqoph',
+'jg=manichaeanresh' => 'manichaeanresh',
+'jg=manichaeansadhe' => 'manichaeansadhe',
+'jg=manichaeansamekh' => 'manichaeansamekh',
+'jg=manichaeantaw' => 'manichaeantaw',
+'jg=manichaeanten' => 'manichaeanten',
+'jg=manichaeanteth' => 'manichaeanteth',
+'jg=manichaeanthamedh' => 'manichaeanthamedh',
+'jg=manichaeantwenty' => 'manichaeantwenty',
+'jg=manichaeanwaw' => 'manichaeanwaw',
+'jg=manichaeanyodh' => 'manichaeanyodh',
+'jg=manichaeanzayin' => 'manichaeanzayin',
'jg=meem' => 'meem',
'jg=mim' => 'mim',
'jg=nojoininggroup' => 'nojoininggroup',
@@ -1011,6 +1078,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'jg=seen' => 'seen',
'jg=semkath' => 'semkath',
'jg=shin' => 'shin',
+'jg=straightwaw' => 'straightwaw',
'jg=swashkaf' => 'swashkaf',
'jg=syriacwaw' => 'syriacwaw',
'jg=tah' => 'tah',
@@ -1199,7 +1267,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'nv=1000' => 1000,
'nv=10000' => 10000,
'nv=100000' => 100000,
+'nv=1000000' => 1000000,
'nv=100000000' => 100000000,
+'nv=10000000000' => 10000000000,
'nv=1000000000000' => 1000000000000,
'nv=11' => 11,
'nv=11/2' => '11/2',
@@ -1357,6 +1427,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sb=up' => 'up',
'sb=upper' => 'up',
'sb=xx' => 'xx',
+'sc=aghb' => 'aghb',
'sc=arab' => 'arab',
'sc=arabic' => 'arab',
'sc=armenian' => 'armn',
@@ -1368,6 +1439,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=balinese' => 'bali',
'sc=bamu' => 'bamu',
'sc=bamum' => 'bamu',
+'sc=bass' => 'bass',
+'sc=bassavah' => 'bass',
'sc=batak' => 'batk',
'sc=batk' => 'batk',
'sc=beng' => 'beng',
@@ -1387,6 +1460,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=cans' => 'cans',
'sc=cari' => 'cari',
'sc=carian' => 'cari',
+'sc=caucasianalbanian' => 'aghb',
'sc=chakma' => 'cakm',
'sc=cham' => 'cham',
'sc=cher' => 'cher',
@@ -1403,8 +1477,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=deva' => 'deva',
'sc=devanagari' => 'deva',
'sc=dsrt' => 'dsrt',
+'sc=dupl' => 'dupl',
+'sc=duployan' => 'dupl',
'sc=egyp' => 'egyp',
'sc=egyptianhieroglyphs' => 'egyp',
+'sc=elba' => 'elba',
+'sc=elbasan' => 'elba',
'sc=ethi' => 'ethi',
'sc=ethiopic' => 'ethi',
'sc=geor' => 'geor',
@@ -1413,6 +1491,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=glagolitic' => 'glag',
'sc=goth' => 'goth',
'sc=gothic' => 'goth',
+'sc=gran' => 'gran',
+'sc=grantha' => 'gran',
'sc=greek' => 'grek',
'sc=grek' => 'grek',
'sc=gujarati' => 'gujr',
@@ -1429,6 +1509,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=hebrew' => 'hebr',
'sc=hira' => 'hira',
'sc=hiragana' => 'hira',
+'sc=hmng' => 'hmng',
'sc=imperialaramaic' => 'armi',
'sc=inherited' => 'zinh',
'sc=inscriptionalpahlavi' => 'phli',
@@ -1446,6 +1527,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=kharoshthi' => 'khar',
'sc=khmer' => 'khmr',
'sc=khmr' => 'khmr',
+'sc=khoj' => 'khoj',
+'sc=khojki' => 'khoj',
+'sc=khudawadi' => 'sind',
'sc=knda' => 'knda',
'sc=kthi' => 'kthi',
'sc=lana' => 'lana',
@@ -1457,28 +1541,42 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=lepcha' => 'lepc',
'sc=limb' => 'limb',
'sc=limbu' => 'limb',
+'sc=lina' => 'lina',
'sc=linb' => 'linb',
+'sc=lineara' => 'lina',
'sc=linearb' => 'linb',
'sc=lisu' => 'lisu',
'sc=lyci' => 'lyci',
'sc=lycian' => 'lyci',
'sc=lydi' => 'lydi',
'sc=lydian' => 'lydi',
+'sc=mahajani' => 'mahj',
+'sc=mahj' => 'mahj',
'sc=malayalam' => 'mlym',
'sc=mand' => 'mand',
'sc=mandaic' => 'mand',
+'sc=mani' => 'mani',
+'sc=manichaean' => 'mani',
'sc=meeteimayek' => 'mtei',
+'sc=mend' => 'mend',
+'sc=mendekikakui' => 'mend',
'sc=merc' => 'merc',
'sc=mero' => 'mero',
'sc=meroiticcursive' => 'merc',
'sc=meroitichieroglyphs' => 'mero',
'sc=miao' => 'plrd',
'sc=mlym' => 'mlym',
+'sc=modi' => 'modi',
'sc=mong' => 'mong',
'sc=mongolian' => 'mong',
+'sc=mro' => 'mroo',
+'sc=mroo' => 'mroo',
'sc=mtei' => 'mtei',
'sc=myanmar' => 'mymr',
'sc=mymr' => 'mymr',
+'sc=nabataean' => 'nbat',
+'sc=narb' => 'narb',
+'sc=nbat' => 'nbat',
'sc=newtailue' => 'talu',
'sc=nko' => 'nkoo',
'sc=nkoo' => 'nkoo',
@@ -1487,6 +1585,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=olchiki' => 'olck',
'sc=olck' => 'olck',
'sc=olditalic' => 'ital',
+'sc=oldnortharabian' => 'narb',
+'sc=oldpermic' => 'perm',
'sc=oldpersian' => 'xpeo',
'sc=oldsoutharabian' => 'sarb',
'sc=oldturkic' => 'orkh',
@@ -1495,13 +1595,21 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=orya' => 'orya',
'sc=osma' => 'osma',
'sc=osmanya' => 'osma',
+'sc=pahawhhmong' => 'hmng',
+'sc=palm' => 'palm',
+'sc=palmyrene' => 'palm',
+'sc=pauc' => 'pauc',
+'sc=paucinhau' => 'pauc',
+'sc=perm' => 'perm',
'sc=phag' => 'phag',
'sc=phagspa' => 'phag',
'sc=phli' => 'phli',
+'sc=phlp' => 'phlp',
'sc=phnx' => 'phnx',
'sc=phoenician' => 'phnx',
'sc=plrd' => 'plrd',
'sc=prti' => 'prti',
+'sc=psalterpahlavi' => 'phlp',
'sc=qaac' => 'copt',
'sc=qaai' => 'zinh',
'sc=rejang' => 'rjng',
@@ -1517,6 +1625,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=shavian' => 'shaw',
'sc=shaw' => 'shaw',
'sc=shrd' => 'shrd',
+'sc=sidd' => 'sidd',
+'sc=siddham' => 'sidd',
+'sc=sind' => 'sind',
'sc=sinh' => 'sinh',
'sc=sinhala' => 'sinh',
'sc=sora' => 'sora',
@@ -1550,11 +1661,15 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=tibetan' => 'tibt',
'sc=tibt' => 'tibt',
'sc=tifinagh' => 'tfng',
+'sc=tirh' => 'tirh',
+'sc=tirhuta' => 'tirh',
'sc=ugar' => 'ugar',
'sc=ugaritic' => 'ugar',
'sc=unknown' => 'zzzz',
'sc=vai' => 'vaii',
'sc=vaii' => 'vaii',
+'sc=wara' => 'wara',
+'sc=warangciti' => 'wara',
'sc=xpeo' => 'xpeo',
'sc=xsux' => 'xsux',
'sc=yi' => 'yiii',
@@ -1562,6 +1677,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=zinh' => 'zinh',
'sc=zyyy' => 'zyyy',
'sc=zzzz' => 'zzzz',
+'scx=aghb' => 'aghb',
'scx=arab' => 'arab',
'scx=arabic' => 'arab',
'scx=armenian' => 'armn',
@@ -1573,6 +1689,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=balinese' => 'bali',
'scx=bamu' => 'bamu',
'scx=bamum' => 'bamu',
+'scx=bass' => 'bass',
+'scx=bassavah' => 'bass',
'scx=batak' => 'batk',
'scx=batk' => 'batk',
'scx=beng' => 'beng',
@@ -1592,6 +1710,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=cans' => 'cans',
'scx=cari' => 'cari',
'scx=carian' => 'cari',
+'scx=caucasianalbanian' => 'aghb',
'scx=chakma' => 'cakm',
'scx=cham' => 'cham',
'scx=cher' => 'cher',
@@ -1608,8 +1727,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=deva' => 'deva',
'scx=devanagari' => 'deva',
'scx=dsrt' => 'dsrt',
+'scx=dupl' => 'dupl',
+'scx=duployan' => 'dupl',
'scx=egyp' => 'egyp',
'scx=egyptianhieroglyphs' => 'egyp',
+'scx=elba' => 'elba',
+'scx=elbasan' => 'elba',
'scx=ethi' => 'ethi',
'scx=ethiopic' => 'ethi',
'scx=geor' => 'geor',
@@ -1618,6 +1741,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=glagolitic' => 'glag',
'scx=goth' => 'goth',
'scx=gothic' => 'goth',
+'scx=gran' => 'gran',
+'scx=grantha' => 'gran',
'scx=greek' => 'grek',
'scx=grek' => 'grek',
'scx=gujarati' => 'gujr',
@@ -1634,6 +1759,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=hebrew' => 'hebr',
'scx=hira' => 'hira',
'scx=hiragana' => 'hira',
+'scx=hmng' => 'hmng',
'scx=imperialaramaic' => 'armi',
'scx=inherited' => 'zinh',
'scx=inscriptionalpahlavi' => 'phli',
@@ -1651,6 +1777,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=kharoshthi' => 'khar',
'scx=khmer' => 'khmr',
'scx=khmr' => 'khmr',
+'scx=khoj' => 'khoj',
+'scx=khojki' => 'khoj',
+'scx=khudawadi' => 'sind',
'scx=knda' => 'knda',
'scx=kthi' => 'kthi',
'scx=lana' => 'lana',
@@ -1662,28 +1791,42 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=lepcha' => 'lepc',
'scx=limb' => 'limb',
'scx=limbu' => 'limb',
+'scx=lina' => 'lina',
'scx=linb' => 'linb',
+'scx=lineara' => 'lina',
'scx=linearb' => 'linb',
'scx=lisu' => 'lisu',
'scx=lyci' => 'lyci',
'scx=lycian' => 'lyci',
'scx=lydi' => 'lydi',
'scx=lydian' => 'lydi',
+'scx=mahajani' => 'mahj',
+'scx=mahj' => 'mahj',
'scx=malayalam' => 'mlym',
'scx=mand' => 'mand',
'scx=mandaic' => 'mand',
+'scx=mani' => 'mani',
+'scx=manichaean' => 'mani',
'scx=meeteimayek' => 'mtei',
+'scx=mend' => 'mend',
+'scx=mendekikakui' => 'mend',
'scx=merc' => 'merc',
'scx=mero' => 'mero',
'scx=meroiticcursive' => 'merc',
'scx=meroitichieroglyphs' => 'mero',
'scx=miao' => 'plrd',
'scx=mlym' => 'mlym',
+'scx=modi' => 'modi',
'scx=mong' => 'mong',
'scx=mongolian' => 'mong',
+'scx=mro' => 'mroo',
+'scx=mroo' => 'mroo',
'scx=mtei' => 'mtei',
'scx=myanmar' => 'mymr',
'scx=mymr' => 'mymr',
+'scx=nabataean' => 'nbat',
+'scx=narb' => 'narb',
+'scx=nbat' => 'nbat',
'scx=newtailue' => 'talu',
'scx=nko' => 'nkoo',
'scx=nkoo' => 'nkoo',
@@ -1692,6 +1835,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=olchiki' => 'olck',
'scx=olck' => 'olck',
'scx=olditalic' => 'ital',
+'scx=oldnortharabian' => 'narb',
+'scx=oldpermic' => 'perm',
'scx=oldpersian' => 'xpeo',
'scx=oldsoutharabian' => 'sarb',
'scx=oldturkic' => 'orkh',
@@ -1700,13 +1845,21 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=orya' => 'orya',
'scx=osma' => 'osma',
'scx=osmanya' => 'osma',
+'scx=pahawhhmong' => 'hmng',
+'scx=palm' => 'palm',
+'scx=palmyrene' => 'palm',
+'scx=pauc' => 'pauc',
+'scx=paucinhau' => 'pauc',
+'scx=perm' => 'perm',
'scx=phag' => 'phag',
'scx=phagspa' => 'phag',
'scx=phli' => 'phli',
+'scx=phlp' => 'phlp',
'scx=phnx' => 'phnx',
'scx=phoenician' => 'phnx',
'scx=plrd' => 'plrd',
'scx=prti' => 'prti',
+'scx=psalterpahlavi' => 'phlp',
'scx=qaac' => 'copt',
'scx=qaai' => 'zinh',
'scx=rejang' => 'rjng',
@@ -1722,6 +1875,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=shavian' => 'shaw',
'scx=shaw' => 'shaw',
'scx=shrd' => 'shrd',
+'scx=sidd' => 'sidd',
+'scx=siddham' => 'sidd',
+'scx=sind' => 'sind',
'scx=sinh' => 'sinh',
'scx=sinhala' => 'sinh',
'scx=sora' => 'sora',
@@ -1755,11 +1911,15 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=tibetan' => 'tibt',
'scx=tibt' => 'tibt',
'scx=tifinagh' => 'tfng',
+'scx=tirh' => 'tirh',
+'scx=tirhuta' => 'tirh',
'scx=ugar' => 'ugar',
'scx=ugaritic' => 'ugar',
'scx=unknown' => 'zzzz',
'scx=vai' => 'vaii',
'scx=vaii' => 'vaii',
+'scx=wara' => 'wara',
+'scx=warangciti' => 'wara',
'scx=xpeo' => 'xpeo',
'scx=xsux' => 'xsux',
'scx=yi' => 'yiii',
@@ -1919,15 +2079,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'alnum' =>
[
'Alnum',
-'Alnum',
'XPosixAlnum',
],
-'alpha' =>
-[
-'Alpha',
-'Alpha',
-'XPosixAlpha',
-],
'any' =>
[
'Any',
@@ -1945,50 +2098,41 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blank' =>
[
'Blank',
-'Blank',
-'HorizSpace',
'XPosixBlank',
+'HorizSpace',
],
'cntrl' =>
[
'Cntrl',
-'Cntrl',
'XPosixCntrl',
],
'digit' =>
[
'Digit',
-'Digit',
'XPosixDigit',
],
'graph' =>
[
'Graph',
-'Graph',
'XPosixGraph',
],
'horizspace' =>
[
'Blank',
-'Blank',
-'HorizSpace',
'XPosixBlank',
-],
-'lower' =>
-[
-'Lower',
-'Lower',
-'XPosixLower',
+'HorizSpace',
],
'perlspace' =>
[
+'PosixSpace',
+'PosixSpace',
'PerlSpace',
],
'perlword' =>
[
-'PerlWord',
-'PerlWord',
'PosixWord',
+'PosixWord',
+'PerlWord',
],
'posixalnum' =>
[
@@ -2029,6 +2173,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'posixspace' =>
[
'PosixSpace',
+'PosixSpace',
+'PerlSpace',
],
'posixupper' =>
[
@@ -2036,9 +2182,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
],
'posixword' =>
[
-'PerlWord',
-'PerlWord',
'PosixWord',
+'PosixWord',
+'PerlWord',
],
'posixxdigit' =>
[
@@ -2047,22 +2193,16 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'print' =>
[
'Print',
-'Print',
'XPosixPrint',
],
'punct' =>
[
'Punct',
],
-'space' =>
-[
-'Space',
-'Space',
-'XPosixSpace',
-],
'spaceperl' =>
[
-'XPerlSpace',
+'XPosixSpace',
+'XPosixSpace',
'XPerlSpace',
'SpacePerl',
],
@@ -2082,12 +2222,6 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Any',
'Unicode',
],
-'upper' =>
-[
-'Upper',
-'Upper',
-'XPosixUpper',
-],
'vertspace' =>
[
'VertSpace',
@@ -2095,68 +2229,57 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'word' =>
[
'Word',
-'Word',
'XPosixWord',
],
'xdigit' =>
[
'XDigit',
-'XDigit',
'XPosixXDigit',
],
'xperlspace' =>
[
-'XPerlSpace',
+'XPosixSpace',
+'XPosixSpace',
'XPerlSpace',
'SpacePerl',
],
'xposixalnum' =>
[
'Alnum',
-'Alnum',
'XPosixAlnum',
],
'xposixalpha' =>
[
-'Alpha',
-'Alpha',
'XPosixAlpha',
],
'xposixblank' =>
[
'Blank',
-'Blank',
-'HorizSpace',
'XPosixBlank',
+'HorizSpace',
],
'xposixcntrl' =>
[
'Cntrl',
-'Cntrl',
'XPosixCntrl',
],
'xposixdigit' =>
[
'Digit',
-'Digit',
'XPosixDigit',
],
'xposixgraph' =>
[
'Graph',
-'Graph',
'XPosixGraph',
],
'xposixlower' =>
[
-'Lower',
-'Lower',
'XPosixLower',
],
'xposixprint' =>
[
'Print',
-'Print',
'XPosixPrint',
],
'xposixpunct' =>
@@ -2165,26 +2288,23 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
],
'xposixspace' =>
[
-'Space',
-'Space',
'XPosixSpace',
+'XPosixSpace',
+'XPerlSpace',
+'SpacePerl',
],
'xposixupper' =>
[
-'Upper',
-'Upper',
'XPosixUpper',
],
'xposixword' =>
[
'Word',
-'Word',
'XPosixWord',
],
'xposixxdigit' =>
[
'XDigit',
-'XDigit',
'XPosixXDigit',
],
);
@@ -2713,6 +2833,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'6.3',
'V6_3',
],
+'7.0' =>
+[
+'7.0',
+'V7_0',
+],
'na' =>
[
'NA',
@@ -2993,6 +3118,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Bamum_Sup',
'Bamum_Supplement',
],
+'bassavah' =>
+[
+'Bassa_Vah',
+],
'batak' =>
[
'Batak',
@@ -3044,6 +3173,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Carian',
],
+'caucasianalbanian' =>
+[
+'Caucasian_Albanian',
+],
'chakma' =>
[
'Chakma',
@@ -3128,6 +3261,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Coptic',
],
+'copticepactnumbers' =>
+[
+'Coptic_Epact_Numbers',
+],
'countingrod' =>
[
'Counting_Rod',
@@ -3188,6 +3325,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Diacriticals',
'Combining_Diacritical_Marks',
],
+'diacriticalsext' =>
+[
+'Diacriticals_Ext',
+'Combining_Diacritical_Marks_Extended',
+],
'diacriticalsforsymbols' =>
[
'Diacriticals_For_Symbols',
@@ -3208,10 +3350,18 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Domino',
'Domino_Tiles',
],
+'duployan' =>
+[
+'Duployan',
+],
'egyptianhieroglyphs' =>
[
'Egyptian_Hieroglyphs',
],
+'elbasan' =>
+[
+'Elbasan',
+],
'emoticons' =>
[
'Emoticons',
@@ -3259,6 +3409,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Geometric_Shapes',
],
+'geometricshapesext' =>
+[
+'Geometric_Shapes_Ext',
+'Geometric_Shapes_Extended',
+],
'georgian' =>
[
'Georgian',
@@ -3276,6 +3431,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Gothic',
],
+'grantha' =>
+[
+'Grantha',
+],
'greek' =>
[
'Greek',
@@ -3423,6 +3582,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Khmer_Symbols',
],
+'khojki' =>
+[
+'Khojki',
+],
+'khudawadi' =>
+[
+'Khudawadi',
+],
'lao' =>
[
'Lao',
@@ -3458,6 +3625,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Latin_Ext_D',
'Latin_Extended_D',
],
+'latinexte' =>
+[
+'Latin_Ext_E',
+'Latin_Extended_E',
+],
'lepcha' =>
[
'Lepcha',
@@ -3470,6 +3642,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Limbu',
],
+'lineara' =>
+[
+'Linear_A',
+],
'linearbideograms' =>
[
'Linear_B_Ideograms',
@@ -3494,6 +3670,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Lydian',
],
+'mahajani' =>
+[
+'Mahajani',
+],
'mahjong' =>
[
'Mahjong',
@@ -3507,6 +3687,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Mandaic',
],
+'manichaean' =>
+[
+'Manichaean',
+],
'mathalphanum' =>
[
'Math_Alphanum',
@@ -3526,6 +3710,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Meetei_Mayek_Ext',
'Meetei_Mayek_Extensions',
],
+'mendekikakui' =>
+[
+'Mende_Kikakui',
+],
'meroiticcursive' =>
[
'Meroitic_Cursive',
@@ -3568,6 +3756,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Misc_Technical',
'Miscellaneous_Technical',
],
+'modi' =>
+[
+'Modi',
+],
'modifierletters' =>
[
'Modifier_Letters',
@@ -3581,6 +3773,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Mongolian',
],
+'mro' =>
+[
+'Mro',
+],
'music' =>
[
'Music',
@@ -3595,6 +3791,15 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Myanmar_Ext_A',
'Myanmar_Extended_A',
],
+'myanmarextb' =>
+[
+'Myanmar_Ext_B',
+'Myanmar_Extended_B',
+],
+'nabataean' =>
+[
+'Nabataean',
+],
'nb' =>
[
'NB',
@@ -3629,6 +3834,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Old_Italic',
],
+'oldnortharabian' =>
+[
+'Old_North_Arabian',
+],
+'oldpermic' =>
+[
+'Old_Permic',
+],
'oldpersian' =>
[
'Old_Persian',
@@ -3645,10 +3858,26 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Oriya',
],
+'ornamentaldingbats' =>
+[
+'Ornamental_Dingbats',
+],
'osmanya' =>
[
'Osmanya',
],
+'pahawhhmong' =>
+[
+'Pahawh_Hmong',
+],
+'palmyrene' =>
+[
+'Palmyrene',
+],
+'paucinhau' =>
+[
+'Pau_Cin_Hau',
+],
'phagspa' =>
[
'Phags_Pa',
@@ -3676,6 +3905,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Playing_Cards',
],
+'psalterpahlavi' =>
+[
+'Psalter_Pahlavi',
+],
'pua' =>
[
'PUA',
@@ -3716,10 +3949,22 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Shavian',
],
+'shorthandformatcontrols' =>
+[
+'Shorthand_Format_Controls',
+],
+'siddham' =>
+[
+'Siddham',
+],
'sinhala' =>
[
'Sinhala',
],
+'sinhalaarchaicnumbers' =>
+[
+'Sinhala_Archaic_Numbers',
+],
'smallforms' =>
[
'Small_Forms',
@@ -3752,6 +3997,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Sup_Arrows_B',
'Supplemental_Arrows_B',
],
+'suparrowsc' =>
+[
+'Sup_Arrows_C',
+'Supplemental_Arrows_C',
+],
'superandsub' =>
[
'Super_And_Sub',
@@ -3842,6 +4092,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Tifinagh',
],
+'tirhuta' =>
+[
+'Tirhuta',
+],
'transportandmap' =>
[
'Transport_And_Map',
@@ -3885,6 +4139,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'VS_Sup',
'Variation_Selectors_Supplement',
],
+'warangciti' =>
+[
+'Warang_Citi',
+],
'yijing' =>
[
'Yijing',
@@ -5150,6 +5408,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'6.3',
],
+'7.0' =>
+[
+'7.0',
+],
'unassigned' =>
[
'Unassigned',
@@ -5261,6 +5523,114 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Lamadh',
],
+'manichaeanaleph' =>
+[
+'Manichaean_Aleph',
+],
+'manichaeanayin' =>
+[
+'Manichaean_Ayin',
+],
+'manichaeanbeth' =>
+[
+'Manichaean_Beth',
+],
+'manichaeandaleth' =>
+[
+'Manichaean_Daleth',
+],
+'manichaeandhamedh' =>
+[
+'Manichaean_Dhamedh',
+],
+'manichaeanfive' =>
+[
+'Manichaean_Five',
+],
+'manichaeangimel' =>
+[
+'Manichaean_Gimel',
+],
+'manichaeanheth' =>
+[
+'Manichaean_Heth',
+],
+'manichaeanhundred' =>
+[
+'Manichaean_Hundred',
+],
+'manichaeankaph' =>
+[
+'Manichaean_Kaph',
+],
+'manichaeanlamedh' =>
+[
+'Manichaean_Lamedh',
+],
+'manichaeanmem' =>
+[
+'Manichaean_Mem',
+],
+'manichaeannun' =>
+[
+'Manichaean_Nun',
+],
+'manichaeanone' =>
+[
+'Manichaean_One',
+],
+'manichaeanpe' =>
+[
+'Manichaean_Pe',
+],
+'manichaeanqoph' =>
+[
+'Manichaean_Qoph',
+],
+'manichaeanresh' =>
+[
+'Manichaean_Resh',
+],
+'manichaeansadhe' =>
+[
+'Manichaean_Sadhe',
+],
+'manichaeansamekh' =>
+[
+'Manichaean_Samekh',
+],
+'manichaeantaw' =>
+[
+'Manichaean_Taw',
+],
+'manichaeanten' =>
+[
+'Manichaean_Ten',
+],
+'manichaeanteth' =>
+[
+'Manichaean_Teth',
+],
+'manichaeanthamedh' =>
+[
+'Manichaean_Thamedh',
+],
+'manichaeantwenty' =>
+[
+'Manichaean_Twenty',
+],
+'manichaeanwaw' =>
+[
+'Manichaean_Waw',
+],
+'manichaeanyodh' =>
+[
+'Manichaean_Yodh',
+],
+'manichaeanzayin' =>
+[
+'Manichaean_Zayin',
+],
'meem' =>
[
'Meem',
@@ -5329,6 +5699,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Shin',
],
+'straightwaw' =>
+[
+'Straight_Waw',
+],
'swashkaf' =>
[
'Swash_Kaf',
@@ -5866,10 +6240,18 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
100000,
],
+1000000 =>
+[
+1000000,
+],
100000000 =>
[
100000000,
],
+10000000000 =>
+[
+10000000000,
+],
1000000000000 =>
[
1000000000000,
@@ -6409,6 +6791,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
},
'sc' =>
{
+'aghb' =>
+[
+'Aghb',
+'Caucasian_Albanian',
+],
'arab' =>
[
'Arab',
@@ -6439,6 +6826,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Bamu',
'Bamum',
],
+'bass' =>
+[
+'Bass',
+'Bassa_Vah',
+],
'batk' =>
[
'Batk',
@@ -6524,11 +6916,21 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Dsrt',
'Deseret',
],
+'dupl' =>
+[
+'Dupl',
+'Duployan',
+],
'egyp' =>
[
'Egyp',
'Egyptian_Hieroglyphs',
],
+'elba' =>
+[
+'Elba',
+'Elbasan',
+],
'ethi' =>
[
'Ethi',
@@ -6549,6 +6951,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Goth',
'Gothic',
],
+'gran' =>
+[
+'Gran',
+'Grantha',
+],
'grek' =>
[
'Grek',
@@ -6589,6 +6996,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Hira',
'Hiragana',
],
+'hmng' =>
+[
+'Hmng',
+'Pahawh_Hmong',
+],
'hrkt' =>
[
'Hrkt',
@@ -6624,6 +7036,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Khmr',
'Khmer',
],
+'khoj' =>
+[
+'Khoj',
+'Khojki',
+],
'knda' =>
[
'Knda',
@@ -6659,6 +7076,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Limb',
'Limbu',
],
+'lina' =>
+[
+'Lina',
+'Linear_A',
+],
'linb' =>
[
'Linb',
@@ -6678,11 +7100,26 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Lydi',
'Lydian',
],
+'mahj' =>
+[
+'Mahj',
+'Mahajani',
+],
'mand' =>
[
'Mand',
'Mandaic',
],
+'mani' =>
+[
+'Mani',
+'Manichaean',
+],
+'mend' =>
+[
+'Mend',
+'Mende_Kikakui',
+],
'merc' =>
[
'Merc',
@@ -6698,11 +7135,20 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Mlym',
'Malayalam',
],
+'modi' =>
+[
+'Modi',
+],
'mong' =>
[
'Mong',
'Mongolian',
],
+'mroo' =>
+[
+'Mroo',
+'Mro',
+],
'mtei' =>
[
'Mtei',
@@ -6713,6 +7159,16 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Mymr',
'Myanmar',
],
+'narb' =>
+[
+'Narb',
+'Old_North_Arabian',
+],
+'nbat' =>
+[
+'Nbat',
+'Nabataean',
+],
'nkoo' =>
[
'Nkoo',
@@ -6743,6 +7199,21 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Osma',
'Osmanya',
],
+'palm' =>
+[
+'Palm',
+'Palmyrene',
+],
+'pauc' =>
+[
+'Pauc',
+'Pau_Cin_Hau',
+],
+'perm' =>
+[
+'Perm',
+'Old_Permic',
+],
'phag' =>
[
'Phag',
@@ -6753,6 +7224,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Phli',
'Inscriptional_Pahlavi',
],
+'phlp' =>
+[
+'Phlp',
+'Psalter_Pahlavi',
+],
'phnx' =>
[
'Phnx',
@@ -6803,6 +7279,16 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Shrd',
'Sharada',
],
+'sidd' =>
+[
+'Sidd',
+'Siddham',
+],
+'sind' =>
+[
+'Sind',
+'Khudawadi',
+],
'sinh' =>
[
'Sinh',
@@ -6887,6 +7373,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Tibt',
'Tibetan',
],
+'tirh' =>
+[
+'Tirh',
+'Tirhuta',
+],
'ugar' =>
[
'Ugar',
@@ -6897,6 +7388,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Vaii',
'Vai',
],
+'wara' =>
+[
+'Wara',
+'Warang_Citi',
+],
'xpeo' =>
[
'Xpeo',
@@ -6931,6 +7427,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
},
'scx' =>
{
+'aghb' =>
+[
+'Aghb',
+'Caucasian_Albanian',
+],
'arab' =>
[
'Arab',
@@ -6961,6 +7462,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Bamu',
'Bamum',
],
+'bass' =>
+[
+'Bass',
+'Bassa_Vah',
+],
'batk' =>
[
'Batk',
@@ -7046,11 +7552,21 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Dsrt',
'Deseret',
],
+'dupl' =>
+[
+'Dupl',
+'Duployan',
+],
'egyp' =>
[
'Egyp',
'Egyptian_Hieroglyphs',
],
+'elba' =>
+[
+'Elba',
+'Elbasan',
+],
'ethi' =>
[
'Ethi',
@@ -7071,6 +7587,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Goth',
'Gothic',
],
+'gran' =>
+[
+'Gran',
+'Grantha',
+],
'grek' =>
[
'Grek',
@@ -7111,6 +7632,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Hira',
'Hiragana',
],
+'hmng' =>
+[
+'Hmng',
+'Pahawh_Hmong',
+],
'hrkt' =>
[
'Hrkt',
@@ -7146,6 +7672,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Khmr',
'Khmer',
],
+'khoj' =>
+[
+'Khoj',
+'Khojki',
+],
'knda' =>
[
'Knda',
@@ -7181,6 +7712,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Limb',
'Limbu',
],
+'lina' =>
+[
+'Lina',
+'Linear_A',
+],
'linb' =>
[
'Linb',
@@ -7200,11 +7736,26 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Lydi',
'Lydian',
],
+'mahj' =>
+[
+'Mahj',
+'Mahajani',
+],
'mand' =>
[
'Mand',
'Mandaic',
],
+'mani' =>
+[
+'Mani',
+'Manichaean',
+],
+'mend' =>
+[
+'Mend',
+'Mende_Kikakui',
+],
'merc' =>
[
'Merc',
@@ -7220,11 +7771,20 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Mlym',
'Malayalam',
],
+'modi' =>
+[
+'Modi',
+],
'mong' =>
[
'Mong',
'Mongolian',
],
+'mroo' =>
+[
+'Mroo',
+'Mro',
+],
'mtei' =>
[
'Mtei',
@@ -7235,6 +7795,16 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Mymr',
'Myanmar',
],
+'narb' =>
+[
+'Narb',
+'Old_North_Arabian',
+],
+'nbat' =>
+[
+'Nbat',
+'Nabataean',
+],
'nkoo' =>
[
'Nkoo',
@@ -7265,6 +7835,21 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Osma',
'Osmanya',
],
+'palm' =>
+[
+'Palm',
+'Palmyrene',
+],
+'pauc' =>
+[
+'Pauc',
+'Pau_Cin_Hau',
+],
+'perm' =>
+[
+'Perm',
+'Old_Permic',
+],
'phag' =>
[
'Phag',
@@ -7275,6 +7860,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Phli',
'Inscriptional_Pahlavi',
],
+'phlp' =>
+[
+'Phlp',
+'Psalter_Pahlavi',
+],
'phnx' =>
[
'Phnx',
@@ -7325,6 +7915,16 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Shrd',
'Sharada',
],
+'sidd' =>
+[
+'Sidd',
+'Siddham',
+],
+'sind' =>
+[
+'Sind',
+'Khudawadi',
+],
'sinh' =>
[
'Sinh',
@@ -7409,6 +8009,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Tibt',
'Tibetan',
],
+'tirh' =>
+[
+'Tirh',
+'Tirhuta',
+],
'ugar' =>
[
'Ugar',
@@ -7419,6 +8024,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Vaii',
'Vai',
],
+'wara' =>
+[
+'Wara',
+'Warang_Citi',
+],
'xpeo' =>
[
'Xpeo',
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl
index 5957cbc3b95..653d92ae5ff 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,10 +10,10 @@
return <<'END';
-V1097
+V1219
888
890
-895
+896
900
907
908
@@ -21,7 +21,7 @@ V1097
910
930
931
-1320
+1328
1329
1367
1369
@@ -30,7 +30,7 @@ V1097
1416
1417
1419
-1423
+1421
1424
1425
1480
@@ -39,8 +39,6 @@ V1097
1520
1525
1536
-1541
-1542
1565
1566
1806
@@ -59,16 +57,8 @@ V1097
2142
2143
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -214,7 +204,7 @@ V1097
3032
3046
3067
-3073
+3072
3076
3077
3085
@@ -223,8 +213,6 @@ V1097
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -242,7 +230,7 @@ V1097
3184
3192
3200
-3202
+3201
3204
3205
3213
@@ -270,7 +258,7 @@ V1097
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -312,6 +300,8 @@ V1097
3543
3544
3552
+3558
+3568
3570
3573
3585
@@ -413,7 +403,7 @@ V1097
5120
5789
5792
-5873
+5881
5888
5901
5902
@@ -445,7 +435,7 @@ V1097
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -474,6 +464,8 @@ V1097
6810
6816
6830
+6832
+6847
6912
6988
6992
@@ -490,8 +482,10 @@ V1097
7368
7376
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -533,23 +527,27 @@ V1097
8336
8349
8352
-8379
+8382
8400
8433
8448
8586
8592
-9204
+9211
9216
9255
9280
9291
9312
-9984
-9985
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11264
11311
11312
@@ -585,7 +583,7 @@ V1097
11736
11743
11744
-11836
+11843
11904
11930
11931
@@ -623,16 +621,16 @@ V1097
42192
42540
42560
-42648
+42654
42655
42744
42752
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43052
43056
43066
@@ -653,7 +651,7 @@ V1097
43471
43482
43486
-43488
+43519
43520
43575
43584
@@ -661,8 +659,6 @@ V1097
43600
43610
43612
-43644
-43648
43715
43739
43767
@@ -676,6 +672,10 @@ V1097
43815
43816
43823
+43824
+43872
+43876
+43878
43968
44014
44016
@@ -717,7 +717,7 @@ V1097
65024
65050
65056
-65063
+65070
65072
65107
65108
@@ -763,21 +763,25 @@ V1097
65799
65844
65847
-65931
+65933
65936
65948
+65952
+65953
66000
66046
66176
66205
66208
66257
+66272
+66300
66304
-66335
-66336
66340
66352
66379
+66384
+66427
66432
66462
66463
@@ -788,6 +792,18 @@ V1097
66718
66720
66730
+66816
+66856
+66864
+66916
+66927
+66928
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -801,7 +817,9 @@ V1097
67647
67670
67671
-67680
+67743
+67751
+67760
67840
67868
67871
@@ -829,7 +847,11 @@ V1097
68176
68185
68192
-68224
+68256
+68288
+68327
+68331
+68343
68352
68406
68409
@@ -837,7 +859,11 @@ V1097
68440
68467
68472
-68480
+68498
+68505
+68509
+68521
+68528
68608
68681
69216
@@ -846,7 +872,7 @@ V1097
69710
69714
69744
-69760
+69759
69826
69840
69865
@@ -856,24 +882,104 @@ V1097
69941
69942
69956
+69968
+70007
70016
70089
+70093
+70094
70096
-70106
+70107
+70113
+70133
+70144
+70162
+70163
+70206
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71114
+71168
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71923
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
74864
-74868
+74869
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92782
+92784
+92880
+92910
+92912
+92918
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -882,6 +988,16 @@ V1097
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
118784
119030
119040
@@ -936,6 +1052,10 @@ V1097
120780
120782
120832
+124928
+125125
+125127
+125143
126464
126468
126469
@@ -1011,13 +1131,13 @@ V1097
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127232
-127243
+127245
127248
127279
127280
@@ -1033,41 +1153,43 @@ V1097
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
131070
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl
index 76e1291caf0..63342c88717 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl
index 56bbb8d4a5f..b5d961c604a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl
index 12724192722..6d5d591dc4f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl
index 91d2fd9cc1d..9159680289a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl
index 13fee1680a8..ecdf4216407 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl
index 8395cdc0023..f749401cc05 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl
index c985589d041..99ff6d66b96 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl
index 9128154a426..9be8c477d8b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl
index 377893ae131..3ee850f6fde 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl
index d5172eb71ec..217476ee28e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl
index 4e65022877c..bd9a2d3eac9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl
index 9c377ca7eeb..27b016de170 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl
new file mode 100644
index 00000000000..68c3a9ba45c
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl
@@ -0,0 +1,296 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V282
+895
+896
+1320
+1328
+1421
+1423
+1541
+1542
+2209
+2210
+2221
+2227
+2303
+2304
+2424
+2425
+2432
+2433
+3072
+3073
+3124
+3125
+3201
+3202
+3329
+3330
+3558
+3568
+5873
+5881
+6429
+6431
+6832
+6847
+7416
+7418
+7655
+7670
+8379
+8382
+9204
+9211
+9984
+9985
+11085
+11088
+11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
+11836
+11843
+42648
+42654
+42900
+42912
+42923
+42926
+42928
+42930
+42999
+43000
+43488
+43519
+43644
+43648
+43824
+43872
+43876
+43878
+65063
+65070
+65931
+65933
+65952
+65953
+66272
+66300
+66335
+66336
+66384
+66427
+66816
+66856
+66864
+66916
+66927
+66928
+67072
+67383
+67392
+67414
+67424
+67432
+67680
+67743
+67751
+67760
+68224
+68256
+68288
+68327
+68331
+68343
+68480
+68498
+68505
+68509
+68521
+68528
+69759
+69760
+69968
+70007
+70093
+70094
+70106
+70107
+70113
+70133
+70144
+70162
+70163
+70206
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71114
+71168
+71237
+71248
+71258
+71840
+71923
+71935
+71936
+72384
+72441
+74607
+74649
+74851
+74863
+74868
+74869
+92736
+92767
+92768
+92778
+92782
+92784
+92880
+92910
+92912
+92918
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
+124928
+125125
+125127
+125143
+127167
+127168
+127200
+127222
+127243
+127245
+127777
+127789
+127798
+127799
+127869
+127870
+127892
+127904
+127941
+127942
+127947
+127951
+127956
+127968
+127985
+127992
+128063
+128064
+128065
+128066
+128248
+128249
+128253
+128255
+128318
+128320
+128324
+128331
+128360
+128378
+128379
+128420
+128421
+128507
+128577
+128579
+128592
+128640
+128710
+128720
+128736
+128749
+128752
+128756
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl
index 6a5db99fe8d..fdf80899f56 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1080
+V1200
65
91
97
@@ -43,6 +43,8 @@ V1080
888
890
894
+895
+896
902
903
904
@@ -56,7 +58,7 @@ V1080
1015
1154
1162
-1320
+1328
1329
1367
1369
@@ -112,14 +114,10 @@ V1080
2112
2137
2208
-2209
-2210
-2221
+2227
2276
2282
2288
-2303
-2304
2364
2365
2381
@@ -128,10 +126,6 @@ V1080
2389
2404
2417
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -273,7 +267,7 @@ V1080
3025
3031
3032
-3073
+3072
3076
3077
3085
@@ -282,8 +276,6 @@ V1080
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -297,7 +289,7 @@ V1080
3162
3168
3172
-3202
+3201
3204
3205
3213
@@ -323,7 +315,7 @@ V1080
3300
3313
3315
-3330
+3329
3332
3333
3341
@@ -488,7 +480,7 @@ V1080
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -518,7 +510,7 @@ V1080
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -567,6 +559,8 @@ V1080
7415
7424
7616
+7655
+7669
7680
7958
7960
@@ -726,7 +720,7 @@ V1080
42612
42620
42623
-42648
+42654
42655
42736
42775
@@ -736,10 +730,10 @@ V1080
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43010
43011
43014
@@ -767,6 +761,12 @@ V1080
43456
43471
43472
+43488
+43493
+43494
+43504
+43514
+43519
43520
43575
43584
@@ -775,7 +775,7 @@ V1080
43639
43642
43643
-43648
+43646
43711
43712
43713
@@ -797,6 +797,12 @@ V1080
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44011
44032
@@ -874,9 +880,11 @@ V1080
66208
66257
66304
-66335
+66336
66352
66379
+66384
+66427
66432
66462
66464
@@ -887,6 +895,16 @@ V1080
66518
66560
66718
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -899,6 +917,10 @@ V1080
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -919,12 +941,20 @@ V1080
68148
68192
68221
+68224
+68253
+68288
+68296
+68297
+68325
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69632
@@ -935,20 +965,92 @@ V1080
69865
69888
69939
+69968
+70003
+70006
+70007
70016
70080
70081
70085
+70106
+70107
+70144
+70162
+70163
+70197
+70199
+70200
+70320
+70377
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70461
+70469
+70471
+70473
+70475
+70477
+70487
+70488
+70493
+70500
+70784
+70850
+70852
+70854
+70855
+70856
+71040
+71094
+71096
+71103
+71168
+71231
+71232
+71233
+71236
+71237
71296
71350
+71840
+71904
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92880
+92910
+92928
+92983
+92992
+92996
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -957,6 +1059,16 @@ V1080
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113822
+113823
119808
119893
119894
@@ -1017,6 +1129,8 @@ V1080
120771
120772
120780
+124928
+125125
126464
126468
126469
@@ -1083,6 +1197,12 @@ V1080
126634
126635
126652
+127280
+127306
+127312
+127338
+127344
+127370
131072
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl
index 3cdd601ad64..ba659a4ef4c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,9 +10,7 @@
return <<'END';
-V44
-1541
-1542
+V40
1544
1545
1547
@@ -39,8 +37,6 @@ V44
1984
2208
2276
-2303
-2304
64336
64830
64832
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl
index 3d52b624e3d..32e01c35252 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -12,7 +12,7 @@
return <<'END';
V10
1536
-1541
+1542
1632
1642
1643
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl
index 85e9aca1d7e..92d2c097e43 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl
index 5ee92555ca9..aa184da0c7e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V62
+V64
0
9
14
@@ -37,6 +37,8 @@ V62
65529
65534
65536
+113824
+113828
119155
119163
131070
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl
index a5211a6e710..46531ab82a4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl
index 8a73a28f2f9..0969c9d02eb 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V22
+V24
48
58
178
@@ -29,6 +29,8 @@ V22
9372
65296
65306
+66273
+66300
120782
120832
127232
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl
index 65af00c189b..6d8b38fc9c0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl
index 4dd22a7d47e..d13644abf1e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl
index 0830b4328d8..f323316c093 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V699
+V775
65
91
97
@@ -50,7 +50,7 @@ V699
1162
1418
1419
-1423
+1421
2307
2362
2363
@@ -130,6 +130,8 @@ V699
3022
3059
3067
+3072
+3073
3134
3137
3142
@@ -142,12 +144,16 @@ V699
3172
3192
3199
+3201
+3202
3260
3261
3276
3278
3298
3300
+3329
+3330
3393
3397
3405
@@ -286,6 +292,8 @@ V699
6781
6783
6784
+6832
+6847
6912
6916
6964
@@ -305,7 +313,7 @@ V699
7080
7082
7083
-7084
+7086
7142
7143
7144
@@ -328,8 +336,10 @@ V699
7406
7412
7413
+7416
+7418
7616
-7655
+7670
7676
7680
8125
@@ -389,7 +399,7 @@ V699
9083
9109
9110
-9204
+9211
9216
9255
9280
@@ -399,13 +409,17 @@ V699
9450
9900
9901
-9984
-9985
10240
10496
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11493
11499
11503
@@ -415,7 +429,7 @@ V699
11647
11648
11744
-11836
+11843
11904
11930
11931
@@ -506,6 +520,8 @@ V699
43450
43452
43453
+43493
+43494
43561
43567
43569
@@ -516,6 +532,8 @@ V699
43588
43596
43597
+43644
+43645
43696
43697
43698
@@ -539,7 +557,7 @@ V699
64285
65050
65056
-65063
+65070
65072
65107
65108
@@ -563,11 +581,17 @@ V699
65793
65794
65856
-65931
+65933
65936
65948
+65952
+65953
66045
66046
+66272
+66300
+66422
+66427
67584
69632
69633
@@ -576,7 +600,7 @@ V699
69703
69714
69734
-69760
+69759
69762
69811
69815
@@ -588,10 +612,52 @@ V699
69932
69933
69941
+70003
+70004
70016
70018
70070
70079
+70191
+70194
+70196
+70197
+70198
+70200
+70367
+70368
+70371
+70379
+70401
+70402
+70460
+70461
+70464
+70465
+70502
+70509
+70512
+70517
+70835
+70841
+70842
+70843
+70847
+70849
+70850
+70852
+71090
+71094
+71100
+71102
+71103
+71105
+71219
+71227
+71229
+71230
+71231
+71233
71339
71340
71341
@@ -600,8 +666,16 @@ V699
71350
71351
71352
+92912
+92917
+92976
+92983
94095
94099
+113821
+113823
+113824
+113828
119143
119146
119155
@@ -633,51 +707,53 @@ V699
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127232
-127243
+127245
127338
127340
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
131070
131072
196606
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl
index e441599b2f1..1cd559eaec0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V434
+V502
768
880
1155
@@ -58,8 +58,6 @@ V434
2137
2140
2276
-2303
-2304
2307
2362
2363
@@ -131,6 +129,8 @@ V434
3009
3021
3022
+3072
+3073
3134
3137
3142
@@ -141,12 +141,16 @@ V434
3159
3170
3172
+3201
+3202
3260
3261
3276
3278
3298
3300
+3329
+3330
3393
3397
3405
@@ -265,6 +269,8 @@ V434
6781
6783
6784
+6832
+6847
6912
6916
6964
@@ -284,7 +290,7 @@ V434
7080
7082
7083
-7084
+7086
7142
7143
7144
@@ -307,8 +313,10 @@ V434
7406
7412
7413
+7416
+7418
7616
-7655
+7670
7676
7680
8400
@@ -355,6 +363,8 @@ V434
43450
43452
43453
+43493
+43494
43561
43567
43569
@@ -365,6 +375,8 @@ V434
43588
43596
43597
+43644
+43645
43696
43697
43698
@@ -390,9 +402,13 @@ V434
65024
65040
65056
-65063
+65070
66045
66046
+66272
+66273
+66422
+66427
68097
68100
68101
@@ -403,11 +419,13 @@ V434
68155
68159
68160
+68325
+68327
69633
69634
69688
69703
-69760
+69759
69762
69811
69815
@@ -419,10 +437,52 @@ V434
69932
69933
69941
+70003
+70004
70016
70018
70070
70079
+70191
+70194
+70196
+70197
+70198
+70200
+70367
+70368
+70371
+70379
+70401
+70402
+70460
+70461
+70464
+70465
+70502
+70509
+70512
+70517
+70835
+70841
+70842
+70843
+70847
+70849
+70850
+70852
+71090
+71094
+71100
+71102
+71103
+71105
+71219
+71227
+71229
+71230
+71231
+71233
71339
71340
71341
@@ -431,8 +491,14 @@ V434
71350
71351
71352
+92912
+92917
+92976
+92983
94095
94099
+113821
+113823
119143
119146
119163
@@ -443,6 +509,8 @@ V434
119214
119362
119365
+125136
+125143
917760
918000
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl
index f9a2832ed42..66e6f2898c5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V342
+V354
33
35
38
@@ -61,6 +61,8 @@ V342
1015
1418
1419
+1421
+1423
1542
1544
1550
@@ -152,7 +154,7 @@ V342
9083
9109
9110
-9204
+9211
9216
9255
9280
@@ -162,19 +164,23 @@ V342
9450
9900
9901
-9984
-9985
10240
10496
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11493
11499
11513
11520
11776
-11836
+11843
11904
11930
11931
@@ -276,9 +282,11 @@ V342
65793
65794
65856
-65931
+65933
65936
65948
+65952
+65953
67871
67872
68409
@@ -310,47 +318,51 @@ V342
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
+127243
+127245
127338
127340
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl
index 6373eca7771..83d39033fe7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V58
+V62
1424
1425
1470
@@ -60,12 +60,16 @@ V58
68155
68159
68160
+68325
+68327
68409
68416
69216
69247
69632
124928
+125136
+125143
126464
126720
126976
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl
index b8c1b0c4bc3..75e7f84e929 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl
index 266ac9c7b0d..2d57e35e3e2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl
index 8b5942628e1..f63a1fea32a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl
index c127092a901..9caa439e9df 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,68 +10,76 @@
return <<'END';
-V73
+V81
2144
2208
-6832
-6912
7296
7360
12256
12272
-43488
-43520
-43824
+43888
43968
66048
66176
-66272
-66304
-66384
-66432
66528
66560
66736
+66816
+66928
+67072
+67456
67584
-67680
+67760
67840
67904
67968
-68224
-68352
-68480
+68256
+68288
+68528
68608
68688
69216
69248
69632
-69968
-70016
-70112
+70224
+70320
+70528
+70784
+70880
+71040
+71264
71296
71376
+71840
+71936
+72384
+72448
73728
74880
77824
78896
92160
-92736
+92784
+92880
+93072
93952
94112
110592
110848
+113664
+113840
118784
119376
119552
119680
119808
120832
+124928
+125152
126464
126720
126976
-128592
-128640
-128896
+129280
131072
173792
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl
index 6b83a59d867..2323b1efb1d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl
index 70cca7a1c18..66c1c143be1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl
index 033c2c04feb..db5b9babe04 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl
index 8151046b385..2a0baac8cda 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl
index fc01fcc61a9..4a05c9fc455 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V594
+V670
39
40
46
@@ -58,7 +58,7 @@ V594
1524
1525
1536
-1541
+1542
1552
1563
1564
@@ -92,8 +92,6 @@ V594
2137
2140
2276
-2303
-2304
2307
2362
2363
@@ -167,6 +165,8 @@ V594
3009
3021
3022
+3072
+3073
3134
3137
3142
@@ -177,6 +177,8 @@ V594
3159
3170
3172
+3201
+3202
3260
3261
3263
@@ -187,6 +189,8 @@ V594
3278
3298
3300
+3329
+3330
3393
3397
3405
@@ -315,6 +319,8 @@ V594
6784
6823
6824
+6832
+6847
6912
6916
6964
@@ -334,7 +340,7 @@ V594
7080
7082
7083
-7084
+7086
7142
7143
7144
@@ -359,12 +365,14 @@ V594
7406
7412
7413
+7416
+7418
7468
7531
7544
7545
7579
-7655
+7670
7676
7680
8125
@@ -437,6 +445,8 @@ V594
42622
42623
42624
+42652
+42654
42655
42656
42736
@@ -475,6 +485,8 @@ V594
43453
43471
43472
+43493
+43495
43561
43567
43569
@@ -487,6 +499,8 @@ V594
43597
43632
43633
+43644
+43645
43696
43697
43698
@@ -505,6 +519,8 @@ V594
43765
43766
43767
+43867
+43872
44005
44006
44008
@@ -520,7 +536,7 @@ V594
65043
65044
65056
-65063
+65070
65106
65107
65109
@@ -547,6 +563,10 @@ V594
65532
66045
66046
+66272
+66273
+66422
+66427
68097
68100
68101
@@ -557,11 +577,13 @@ V594
68155
68159
68160
+68325
+68327
69633
69634
69688
69703
-69760
+69759
69762
69811
69815
@@ -575,10 +597,52 @@ V594
69932
69933
69941
+70003
+70004
70016
70018
70070
70079
+70191
+70194
+70196
+70197
+70198
+70200
+70367
+70368
+70371
+70379
+70401
+70402
+70460
+70461
+70464
+70465
+70502
+70509
+70512
+70517
+70835
+70841
+70842
+70843
+70847
+70849
+70850
+70852
+71090
+71094
+71100
+71102
+71103
+71105
+71219
+71227
+71229
+71230
+71231
+71233
71339
71340
71341
@@ -587,8 +651,18 @@ V594
71350
71351
71352
+92912
+92917
+92976
+92983
+92992
+92996
94095
94112
+113821
+113823
+113824
+113828
119143
119146
119155
@@ -599,6 +673,8 @@ V594
119214
119362
119365
+125136
+125143
917505
917506
917536
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl
index fe8d4dbef61..4a22ce1cc19 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1164
+V1192
65
91
181
@@ -311,6 +311,8 @@ V1164
883
886
887
+895
+896
902
903
904
@@ -553,6 +555,14 @@ V1164
1317
1318
1319
+1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
1329
1367
1415
@@ -1057,6 +1067,10 @@ V1164
42645
42646
42647
+42648
+42649
+42650
+42651
42786
42787
42788
@@ -1155,6 +1169,16 @@ V1164
42897
42898
42899
+42902
+42903
+42904
+42905
+42906
+42907
+42908
+42909
+42910
+42911
42912
42913
42914
@@ -1166,7 +1190,9 @@ V1164
42920
42921
42922
-42923
+42926
+42928
+42930
64256
64263
64275
@@ -1175,4 +1201,6 @@ V1164
65339
66560
66600
+71840
+71872
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl
index a2b430c4f50..31667a60e21 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V208
+V214
65
91
97
@@ -46,9 +46,9 @@ V208
601
602
603
-604
+605
608
-609
+610
611
612
613
@@ -56,7 +56,7 @@ V208
616
618
619
-620
+621
623
624
625
@@ -69,10 +69,12 @@ V208
641
643
644
-648
+647
653
658
659
+670
+671
837
838
880
@@ -81,6 +83,8 @@ V208
888
891
894
+895
+896
902
903
904
@@ -92,15 +96,13 @@ V208
931
978
981
-1011
-1012
1014
1015
1020
1021
1154
1162
-1320
+1328
1329
1367
1377
@@ -196,7 +198,7 @@ V208
42560
42606
42624
-42648
+42652
42786
42800
42802
@@ -207,8 +209,10 @@ V208
42894
42896
42900
-42912
-42923
+42902
+42926
+42928
+42930
64256
64263
64275
@@ -219,4 +223,6 @@ V208
65371
66560
66640
+71840
+71904
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl
index f23a80f1128..22b6952db0a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1584
+V1616
65
91
160
@@ -328,7 +328,7 @@ V1584
890
891
894
-895
+896
900
907
908
@@ -567,6 +567,14 @@ V1584
1317
1318
1319
+1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
1329
1367
1415
@@ -1265,6 +1273,12 @@ V1584
42645
42646
42647
+42648
+42649
+42650
+42651
+42652
+42654
42786
42787
42788
@@ -1365,6 +1379,16 @@ V1584
42897
42898
42899
+42902
+42903
+42904
+42905
+42906
+42907
+42908
+42909
+42910
+42911
42912
42913
42914
@@ -1376,9 +1400,13 @@ V1584
42920
42921
42922
-42923
+42926
+42928
+42930
43000
43002
+43868
+43872
63744
64014
64016
@@ -1459,6 +1487,10 @@ V1584
65529
66560
66600
+71840
+71872
+113824
+113828
119134
119141
119155
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl
index d16e63be6f2..b019cbcd4ed 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1142
+V1170
65
91
192
@@ -305,6 +305,8 @@ V1142
883
886
887
+895
+896
902
903
904
@@ -541,6 +543,14 @@ V1142
1317
1318
1319
+1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
1329
1367
4256
@@ -1039,6 +1049,10 @@ V1142
42645
42646
42647
+42648
+42649
+42650
+42651
42786
42787
42788
@@ -1137,6 +1151,16 @@ V1142
42897
42898
42899
+42902
+42903
+42904
+42905
+42906
+42907
+42908
+42909
+42910
+42911
42912
42913
42914
@@ -1148,9 +1172,13 @@ V1142
42920
42921
42922
-42923
+42926
+42928
+42930
65313
65339
66560
66600
+71840
+71872
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl
index fb32b4812aa..0a7903742ae 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1174
+V1200
97
123
181
@@ -306,9 +306,9 @@ V1174
601
602
603
-604
+605
608
-609
+610
611
612
613
@@ -316,7 +316,7 @@ V1174
616
618
619
-620
+621
623
624
625
@@ -329,10 +329,12 @@ V1174
641
643
644
-648
+647
653
658
659
+670
+671
837
838
881
@@ -374,7 +376,7 @@ V1174
1005
1006
1007
-1011
+1012
1013
1014
1016
@@ -573,6 +575,14 @@ V1174
1318
1319
1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
+1328
1377
1416
7545
@@ -1071,6 +1081,10 @@ V1174
42646
42647
42648
+42649
+42650
+42651
+42652
42787
42788
42789
@@ -1167,6 +1181,16 @@ V1174
42898
42899
42900
+42903
+42904
+42905
+42906
+42907
+42908
+42909
+42910
+42911
+42912
42913
42914
42915
@@ -1185,4 +1209,6 @@ V1174
65371
66600
66640
+71872
+71904
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl
index c22bf9f49e5..51fd6eb1de6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1172
+V1198
97
123
181
@@ -304,9 +304,9 @@ V1172
601
602
603
-604
+605
608
-609
+610
611
612
613
@@ -314,7 +314,7 @@ V1172
616
618
619
-620
+621
623
624
625
@@ -327,10 +327,12 @@ V1172
641
643
644
-648
+647
653
658
659
+670
+671
837
838
881
@@ -372,7 +374,7 @@ V1172
1005
1006
1007
-1011
+1012
1013
1014
1016
@@ -571,6 +573,14 @@ V1172
1318
1319
1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
+1328
1377
1416
7545
@@ -1069,6 +1079,10 @@ V1172
42646
42647
42648
+42649
+42650
+42651
+42652
42787
42788
42789
@@ -1165,6 +1179,16 @@ V1172
42898
42899
42900
+42903
+42904
+42905
+42906
+42907
+42908
+42909
+42910
+42911
+42912
42913
42914
42915
@@ -1183,4 +1207,6 @@ V1172
65371
66600
66640
+71872
+71904
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl
index 868272628eb..a596149ab42 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V238
+V254
65
91
97
@@ -45,6 +45,8 @@ V238
888
890
894
+895
+896
902
903
904
@@ -58,7 +60,7 @@ V238
1015
1154
1162
-1320
+1328
1329
1367
1377
@@ -168,17 +170,23 @@ V238
42560
42606
42624
-42648
+42654
42786
42888
42891
42895
42896
-42900
-42912
-42923
+42926
+42928
+42930
43000
43003
+43824
+43867
+43868
+43872
+43876
+43878
64256
64263
64275
@@ -189,6 +197,8 @@ V238
65371
66560
66640
+71840
+71904
119808
119893
119894
@@ -249,4 +259,10 @@ V238
120771
120772
120780
+127280
+127306
+127312
+127338
+127344
+127370
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl
index e96f1f0b156..5783596d825 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V186
+V202
768
789
829
@@ -104,7 +104,7 @@ V186
2295
2297
2299
-2303
+2304
2385
2386
2387
@@ -123,6 +123,10 @@ V186
6680
6773
6781
+6832
+6837
+6843
+6845
7019
7020
7021
@@ -135,6 +139,8 @@ V186
7393
7412
7413
+7416
+7418
7616
7618
7619
@@ -142,7 +148,7 @@ V186
7627
7629
7633
-7655
+7670
7678
7679
8400
@@ -185,12 +191,22 @@ V186
43714
65056
65063
+66422
+66427
68111
68112
68152
68153
+68325
+68326
69888
69891
+70502
+70509
+70512
+70517
+92976
+92983
119173
119178
119210
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl
index 5407914122c..4b84628574e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl
index f009b37bcf2..127ffcff391 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl
index 426458d1183..03570a51e17 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V128
+V140
790
794
796
@@ -103,6 +103,10 @@ V128
6681
6783
6784
+6837
+6843
+6845
+6846
7020
7021
7381
@@ -129,14 +133,22 @@ V128
43310
43700
43701
+65063
+65070
66045
66046
+66272
+66273
68109
68110
68154
68155
+68326
+68327
119163
119171
119178
119180
+125136
+125143
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl
index dc0da8f43de..a242353e7a7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl
index 586a48e2a1f..1c6ed66007e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl
index 829ddc7af2e..89940d2d095 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V26
+V38
2364
2365
2492
@@ -35,6 +35,18 @@ V26
43444
69818
69819
+70003
+70004
+70198
+70199
+70377
+70378
+70460
+70461
+70851
+70852
+71104
+71105
71351
71352
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl
index 092f7f57d2b..78c9f2415d7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V261
+V301
0
768
847
@@ -59,7 +59,7 @@ V261
2137
2140
2276
-2303
+2304
2364
2365
2381
@@ -154,6 +154,8 @@ V261
6781
6783
6784
+6832
+6846
6964
6965
6980
@@ -178,8 +180,10 @@ V261
7406
7412
7413
+7416
+7418
7616
-7655
+7670
7676
7680
8400
@@ -237,9 +241,13 @@ V261
64286
64287
65056
-65063
+65070
66045
66046
+66272
+66273
+66422
+66427
68109
68110
68111
@@ -248,18 +256,48 @@ V261
68155
68159
68160
+68325
+68327
69702
69703
+69759
+69760
69817
69819
69888
69891
69939
69941
+70003
+70004
70080
70081
+70197
+70199
+70377
+70379
+70460
+70461
+70477
+70478
+70502
+70509
+70512
+70517
+70850
+70852
+71103
+71105
+71231
+71232
71350
71352
+92912
+92917
+92976
+92983
+113822
+113823
119141
119146
119149
@@ -272,4 +310,6 @@ V261
119214
119362
119365
+125136
+125143
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl
index 05df9f2958a..ced4096eb92 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V18
+V22
820
825
7380
@@ -27,6 +27,10 @@ V18
8428
68153
68154
+92912
+92917
+113822
+113823
119143
119146
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl
index b27e6e9cbf9..f75a90ca3b7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V66
+V80
2381
2382
2509
@@ -69,12 +69,26 @@ V66
68160
69702
69703
+69759
+69760
69817
69818
69939
69941
70080
70081
+70197
+70198
+70378
+70379
+70477
+70478
+70850
+70851
+71103
+71104
+71231
+71232
71350
71351
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl
index 92eeeea1b31..8a62f9b9b84 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl
index 59a720c70ca..6eef7b1dce2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V32
+V34
173
174
847
@@ -39,6 +39,8 @@ V32
65441
65520
65529
+113824
+113828
119155
119163
917504
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl
index 97bc31f5f15..3de00de2df9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V40
+V42
45
46
1418
@@ -37,6 +37,8 @@ V40
11803
11834
11836
+11840
+11841
12316
12317
12336
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl
index 6199c3c17dc..991bb0e462d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl
index 391c05a6bf0..c569b7b1dae 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V250
+V290
94
95
96
@@ -147,6 +147,8 @@ V250
6781
6783
6784
+6832
+6846
6964
6965
6980
@@ -165,10 +167,14 @@ V250
7406
7412
7413
+7416
+7418
7468
7531
7620
7632
+7669
+7670
7677
7680
8125
@@ -199,6 +205,8 @@ V250
42622
42623
42624
+42652
+42654
42736
42738
42775
@@ -219,18 +227,22 @@ V250
43444
43456
43457
+43493
+43494
43643
-43644
+43646
43711
43715
43766
43767
+43867
+43872
44012
44014
64286
64287
65056
-65063
+65070
65342
65343
65344
@@ -241,14 +253,40 @@ V250
65440
65507
65508
+66272
+66273
+68325
+68327
69817
69819
69939
69941
+70003
+70004
70080
70081
+70197
+70199
+70377
+70379
+70460
+70461
+70477
+70478
+70502
+70509
+70512
+70517
+70850
+70852
+71103
+71105
+71231
+71232
71350
71352
+92912
+92917
94095
94112
119143
@@ -261,4 +299,6 @@ V250
119180
119210
119214
+125136
+125143
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl
index 97c20883e0a..351f7e60671 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl
index 3eae3069184..6676e2c9efe 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl
index 34b7c95bf43..6f672556c96 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl
index 2eff6e26657..39767319964 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl
index 8647287ba47..63e19796c9a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl
index 3bb347b39ef..1c178f6b396 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl
index e5352edfd5f..d13b736a1b9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl
index 81b494bec54..d4b78f838b6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl
index 14d83543929..6f2bc327f0e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl
index a8082380fee..d8d00178b4a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V368
+V372
160
161
168
@@ -203,10 +203,14 @@ V368
13055
13056
13312
+42652
+42654
42864
42865
43000
43002
+43868
+43872
64256
64263
64275
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl
index bbb7ff0be3c..dd3e1ce45ca 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl
index 89a8a1fd2a0..5c783d763c9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl
index 219400cecd9..7bef014f16e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V44
+V48
170
171
178
@@ -49,10 +49,14 @@ V44
11632
12690
12704
+42652
+42654
42864
42865
43000
43002
+43868
+43872
127338
127340
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl
index 14c4a7137f9..d42f3d611af 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl
index 18eb013e4cd..fcd57afd1d1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl
index c13510b0bf7..e6f1ab941e5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl
index 2a22d2fe7cf..4161ad03229 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl
index 8cebc0c835c..b347319aacc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl
index 4fa66fa7bec..f244cb3921c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl
index 738e07aef40..3c9dc1ac49b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V44
+V52
183
184
720
@@ -47,6 +47,8 @@ V44
42509
43471
43472
+43494
+43495
43632
43633
43741
@@ -55,4 +57,10 @@ V44
43765
65392
65393
+70493
+70494
+71110
+71113
+92994
+92996
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl
index 3b77e412df6..341d49d1aa8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V42
+V44
0
10
11
@@ -22,7 +22,7 @@ V42
173
174
1536
-1541
+1542
1564
1565
1757
@@ -47,6 +47,8 @@ V42
65532
69821
69822
+113824
+113828
119155
119163
917504
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl
index 66341b26e32..469ca36e270 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V466
+V544
768
880
1155
@@ -58,8 +58,6 @@ V466
2137
2140
2276
-2303
-2304
2307
2362
2363
@@ -139,6 +137,8 @@ V466
3022
3031
3032
+3072
+3073
3134
3137
3142
@@ -149,6 +149,8 @@ V466
3159
3170
3172
+3201
+3202
3260
3261
3263
@@ -163,6 +165,8 @@ V466
3287
3298
3300
+3329
+3330
3390
3391
3393
@@ -289,6 +293,8 @@ V466
6781
6783
6784
+6832
+6847
6912
6916
6964
@@ -308,7 +314,7 @@ V466
7080
7082
7083
-7084
+7086
7142
7143
7144
@@ -331,8 +337,10 @@ V466
7406
7412
7413
+7416
+7418
7616
-7655
+7670
7676
7680
8204
@@ -381,6 +389,8 @@ V466
43450
43452
43453
+43493
+43494
43561
43567
43569
@@ -391,6 +401,8 @@ V466
43588
43596
43597
+43644
+43645
43696
43697
43698
@@ -416,11 +428,15 @@ V466
65024
65040
65056
-65063
+65070
65438
65440
66045
66046
+66272
+66273
+66422
+66427
68097
68100
68101
@@ -431,11 +447,13 @@ V466
68155
68159
68160
+68325
+68327
69633
69634
69688
69703
-69760
+69759
69762
69811
69815
@@ -447,10 +465,62 @@ V466
69932
69933
69941
+70003
+70004
70016
70018
70070
70079
+70191
+70194
+70196
+70197
+70198
+70200
+70367
+70368
+70371
+70379
+70401
+70402
+70460
+70461
+70462
+70463
+70464
+70465
+70487
+70488
+70502
+70509
+70512
+70517
+70832
+70833
+70835
+70841
+70842
+70843
+70845
+70846
+70847
+70849
+70850
+70852
+71087
+71088
+71090
+71094
+71100
+71102
+71103
+71105
+71219
+71227
+71229
+71230
+71231
+71233
71339
71340
71341
@@ -459,8 +529,14 @@ V466
71350
71351
71352
+92912
+92917
+92976
+92983
94095
94099
+113821
+113823
119141
119142
119143
@@ -475,6 +551,8 @@ V466
119214
119362
119365
+125136
+125143
917760
918000
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl
index 73f61df51fd..857f524e6d4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl
index b9ef2ea7fe8..9783553591d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl
index b907b7dbf81..67d681f9ae8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V224
+V264
2307
2308
2363
@@ -149,8 +149,6 @@ V224
7080
7082
7083
-7084
-7086
7143
7144
7146
@@ -223,6 +221,48 @@ V224
70070
70079
70081
+70188
+70191
+70194
+70196
+70197
+70198
+70368
+70371
+70402
+70404
+70463
+70464
+70465
+70469
+70471
+70473
+70475
+70478
+70498
+70500
+70833
+70835
+70841
+70842
+70843
+70845
+70846
+70847
+70849
+70850
+71088
+71090
+71096
+71100
+71102
+71103
+71216
+71219
+71227
+71229
+71230
+71231
71340
71341
71342
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl
index 4301dcf90f2..3f62de5b0d9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V447
+V501
32
127
160
@@ -31,7 +31,7 @@ V447
1479
1480
1536
-1541
+1542
1552
1563
1564
@@ -69,8 +69,6 @@ V447
2137
2140
2276
-2303
-2304
2308
2362
2365
@@ -146,7 +144,7 @@ V447
3022
3031
3032
-3073
+3072
3076
3134
3141
@@ -158,7 +156,7 @@ V447
3159
3170
3172
-3202
+3201
3204
3260
3261
@@ -172,7 +170,7 @@ V447
3287
3298
3300
-3330
+3329
3332
3390
3397
@@ -288,6 +286,8 @@ V447
6781
6783
6784
+6832
+6847
6912
6917
6964
@@ -310,8 +310,10 @@ V447
7406
7410
7413
+7416
+7418
7616
-7655
+7670
7676
7680
8203
@@ -364,12 +366,16 @@ V447
43396
43443
43457
+43493
+43494
43561
43575
43587
43588
43596
43598
+43644
+43645
43696
43697
43698
@@ -401,7 +407,7 @@ V447
65024
65040
65056
-65063
+65070
65279
65280
65438
@@ -410,6 +416,10 @@ V447
65532
66045
66046
+66272
+66273
+66422
+66427
68097
68100
68101
@@ -420,11 +430,13 @@ V447
68155
68159
68160
+68325
+68327
69632
69635
69688
69703
-69760
+69759
69763
69808
69819
@@ -434,16 +446,56 @@ V447
69891
69927
69941
+70003
+70004
70016
70019
70067
70081
+70188
+70200
+70367
+70379
+70401
+70404
+70460
+70461
+70462
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70498
+70500
+70502
+70509
+70512
+70517
+70832
+70852
+71087
+71094
+71096
+71105
+71216
+71233
71339
71352
+92912
+92917
+92976
+92983
94033
94079
94095
94099
+113821
+113823
+113824
+113828
119141
119146
119149
@@ -454,6 +506,8 @@ V447
119214
119362
119365
+125136
+125143
127462
127488
917504
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl
index 268f4fe7d65..cfa5b5e982d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1081
+V1205
0
32
127
@@ -19,7 +19,7 @@ V1081
174
888
890
-895
+896
900
907
908
@@ -27,7 +27,7 @@ V1081
910
930
931
-1320
+1328
1329
1367
1369
@@ -36,7 +36,7 @@ V1081
1416
1417
1419
-1423
+1421
1424
1425
1480
@@ -65,16 +65,8 @@ V1081
2142
2143
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -220,7 +212,7 @@ V1081
3032
3046
3067
-3073
+3072
3076
3077
3085
@@ -229,8 +221,6 @@ V1081
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -248,7 +238,7 @@ V1081
3184
3192
3200
-3202
+3201
3204
3205
3213
@@ -276,7 +266,7 @@ V1081
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -318,6 +308,8 @@ V1081
3543
3544
3552
+3558
+3568
3570
3573
3585
@@ -419,7 +411,7 @@ V1081
5120
5789
5792
-5873
+5881
5888
5901
5902
@@ -451,7 +443,7 @@ V1081
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -480,6 +472,8 @@ V1081
6810
6816
6830
+6832
+6847
6912
6988
6992
@@ -496,8 +490,10 @@ V1081
7368
7376
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -543,23 +539,27 @@ V1081
8336
8349
8352
-8379
+8382
8400
8433
8448
8586
8592
-9204
+9211
9216
9255
9280
9291
9312
-9984
-9985
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11264
11311
11312
@@ -595,7 +595,7 @@ V1081
11736
11743
11744
-11836
+11843
11904
11930
11931
@@ -633,16 +633,16 @@ V1081
42192
42540
42560
-42648
+42654
42655
42744
42752
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43052
43056
43066
@@ -663,7 +663,7 @@ V1081
43471
43482
43486
-43488
+43519
43520
43575
43584
@@ -671,8 +671,6 @@ V1081
43600
43610
43612
-43644
-43648
43715
43739
43767
@@ -686,6 +684,10 @@ V1081
43815
43816
43823
+43824
+43872
+43876
+43878
43968
44014
44016
@@ -727,7 +729,7 @@ V1081
65024
65050
65056
-65063
+65070
65072
65107
65108
@@ -773,21 +775,25 @@ V1081
65799
65844
65847
-65931
+65933
65936
65948
+65952
+65953
66000
66046
66176
66205
66208
66257
+66272
+66300
66304
-66335
-66336
66340
66352
66379
+66384
+66427
66432
66462
66463
@@ -798,6 +804,18 @@ V1081
66718
66720
66730
+66816
+66856
+66864
+66916
+66927
+66928
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -811,7 +829,9 @@ V1081
67647
67670
67671
-67680
+67743
+67751
+67760
67840
67868
67871
@@ -839,7 +859,11 @@ V1081
68176
68185
68192
-68224
+68256
+68288
+68327
+68331
+68343
68352
68406
68409
@@ -847,7 +871,11 @@ V1081
68440
68467
68472
-68480
+68498
+68505
+68509
+68521
+68528
68608
68681
69216
@@ -856,7 +884,7 @@ V1081
69710
69714
69744
-69760
+69759
69821
69822
69826
@@ -868,24 +896,104 @@ V1081
69941
69942
69956
+69968
+70007
70016
70089
+70093
+70094
70096
-70106
+70107
+70113
+70133
+70144
+70162
+70163
+70206
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71114
+71168
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71923
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
74864
-74868
+74869
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92782
+92784
+92880
+92910
+92912
+92918
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -894,6 +1002,16 @@ V1081
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113824
118784
119030
119040
@@ -950,6 +1068,10 @@ V1081
120780
120782
120832
+124928
+125125
+125127
+125143
126464
126468
126469
@@ -1025,13 +1147,13 @@ V1081
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127232
-127243
+127245
127248
127279
127280
@@ -1047,41 +1169,43 @@ V1081
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
131072
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl
index fb39549c978..aa2b1a740e4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,11 +10,11 @@
return <<'END';
-V32
+V34
173
174
1536
-1541
+1542
1564
1565
1757
@@ -37,6 +37,8 @@ V32
65532
69821
69822
+113824
+113828
119155
119163
917505
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl
index 5884dbd354d..d3d5272a56e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,10 +10,10 @@
return <<'END';
-V1077
+V1199
888
890
-895
+896
900
907
908
@@ -21,7 +21,7 @@ V1077
910
930
931
-1320
+1328
1329
1367
1369
@@ -30,7 +30,7 @@ V1077
1416
1417
1419
-1423
+1421
1424
1425
1480
@@ -39,8 +39,6 @@ V1077
1520
1525
1536
-1541
-1542
1565
1566
1806
@@ -59,16 +57,8 @@ V1077
2142
2143
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -214,7 +204,7 @@ V1077
3032
3046
3067
-3073
+3072
3076
3077
3085
@@ -223,8 +213,6 @@ V1077
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -242,7 +230,7 @@ V1077
3184
3192
3200
-3202
+3201
3204
3205
3213
@@ -270,7 +258,7 @@ V1077
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -312,6 +300,8 @@ V1077
3543
3544
3552
+3558
+3568
3570
3573
3585
@@ -413,7 +403,7 @@ V1077
5120
5789
5792
-5873
+5881
5888
5901
5902
@@ -445,7 +435,7 @@ V1077
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -474,6 +464,8 @@ V1077
6810
6816
6830
+6832
+6847
6912
6988
6992
@@ -490,8 +482,10 @@ V1077
7368
7376
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -533,23 +527,27 @@ V1077
8336
8349
8352
-8379
+8382
8400
8433
8448
8586
8592
-9204
+9211
9216
9255
9280
9291
9312
-9984
-9985
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11264
11311
11312
@@ -585,7 +583,7 @@ V1077
11736
11743
11744
-11836
+11843
11904
11930
11931
@@ -623,16 +621,16 @@ V1077
42192
42540
42560
-42648
+42654
42655
42744
42752
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43052
43056
43066
@@ -653,7 +651,7 @@ V1077
43471
43482
43486
-43488
+43519
43520
43575
43584
@@ -661,8 +659,6 @@ V1077
43600
43610
43612
-43644
-43648
43715
43739
43767
@@ -676,6 +672,10 @@ V1077
43815
43816
43823
+43824
+43872
+43876
+43878
43968
44014
44016
@@ -717,7 +717,7 @@ V1077
65024
65050
65056
-65063
+65070
65072
65107
65108
@@ -765,21 +765,25 @@ V1077
65799
65844
65847
-65931
+65933
65936
65948
+65952
+65953
66000
66046
66176
66205
66208
66257
+66272
+66300
66304
-66335
-66336
66340
66352
66379
+66384
+66427
66432
66462
66463
@@ -790,6 +794,18 @@ V1077
66718
66720
66730
+66816
+66856
+66864
+66916
+66927
+66928
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -803,7 +819,9 @@ V1077
67647
67670
67671
-67680
+67743
+67751
+67760
67840
67868
67871
@@ -831,7 +849,11 @@ V1077
68176
68185
68192
-68224
+68256
+68288
+68327
+68331
+68343
68352
68406
68409
@@ -839,7 +861,11 @@ V1077
68440
68467
68472
-68480
+68498
+68505
+68509
+68521
+68528
68608
68681
69216
@@ -848,7 +874,7 @@ V1077
69710
69714
69744
-69760
+69759
69826
69840
69865
@@ -858,24 +884,104 @@ V1077
69941
69942
69956
+69968
+70007
70016
70089
+70093
+70094
70096
-70106
+70107
+70113
+70133
+70144
+70162
+70163
+70206
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71114
+71168
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71923
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
74864
-74868
+74869
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92782
+92784
+92880
+92910
+92912
+92918
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -884,6 +990,16 @@ V1077
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
118784
119030
119040
@@ -938,6 +1054,10 @@ V1077
120780
120782
120832
+124928
+125125
+125127
+125143
126464
126468
126469
@@ -1013,13 +1133,13 @@ V1077
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127232
-127243
+127245
127248
127279
127280
@@ -1035,41 +1155,43 @@ V1077
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
131072
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl
index 0eb76f62877..11bbbff056c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V972
+V1074
65
91
97
@@ -41,6 +41,8 @@ V972
888
890
894
+895
+896
902
903
904
@@ -54,7 +56,7 @@ V972
1015
1154
1162
-1320
+1328
1329
1367
1369
@@ -106,9 +108,7 @@ V972
2112
2137
2208
-2209
-2210
-2221
+2227
2308
2362
2365
@@ -118,9 +118,7 @@ V972
2392
2402
2417
-2424
-2425
-2432
+2433
2437
2445
2447
@@ -230,8 +228,6 @@ V972
3090
3113
3114
-3124
-3125
3130
3133
3134
@@ -399,6 +395,8 @@ V972
5787
5792
5867
+5873
+5881
5888
5901
5902
@@ -426,7 +424,7 @@ V972
6320
6390
6400
-6429
+6431
6480
6510
6512
@@ -616,7 +614,7 @@ V972
42560
42607
42623
-42648
+42654
42656
42726
42775
@@ -626,10 +624,10 @@ V972
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43010
43011
43014
@@ -655,6 +653,12 @@ V972
43443
43471
43472
+43488
+43493
+43494
+43504
+43514
+43519
43520
43561
43584
@@ -665,7 +669,7 @@ V972
43639
43642
43643
-43648
+43646
43696
43697
43698
@@ -693,6 +697,12 @@ V972
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44003
44032
@@ -770,11 +780,13 @@ V972
66208
66257
66304
-66335
+66336
66352
66369
66370
66378
+66384
+66422
66432
66462
66464
@@ -783,6 +795,16 @@ V972
66512
66560
66718
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -795,6 +817,10 @@ V972
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -813,12 +839,20 @@ V972
68148
68192
68221
+68224
+68253
+68288
+68296
+68297
+68325
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69635
@@ -829,18 +863,76 @@ V972
69865
69891
69927
+69968
+70003
+70006
+70007
70019
70067
70081
70085
+70106
+70107
+70144
+70162
+70163
+70188
+70320
+70367
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70461
+70462
+70493
+70498
+70784
+70832
+70852
+70854
+70855
+70856
+71040
+71087
+71168
+71216
+71236
+71237
71296
71339
+71840
+71904
+71935
+71936
+72384
+72441
73728
-74607
+74649
77824
78895
92160
92729
+92736
+92767
+92880
+92910
+92928
+92976
+92992
+92996
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -849,6 +941,14 @@ V972
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
119808
119893
119894
@@ -909,6 +1009,8 @@ V972
120771
120772
120780
+124928
+125125
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl
index 3ea2dac391a..c78062b7cb6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V226
+V234
65
91
97
@@ -35,6 +35,8 @@ V226
888
891
894
+895
+896
902
903
904
@@ -48,7 +50,7 @@ V226
1015
1154
1162
-1320
+1328
1329
1367
1377
@@ -154,7 +156,7 @@ V226
42560
42606
42624
-42648
+42652
42786
42864
42865
@@ -162,11 +164,15 @@ V226
42891
42895
42896
-42900
-42912
-42923
+42926
+42928
+42930
43002
43003
+43824
+43867
+43876
+43878
64256
64263
64275
@@ -177,6 +183,8 @@ V226
65371
66560
66640
+71840
+71904
119808
119893
119894
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl
index 09062a194aa..7043f6f98ce 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1222
+V1250
97
123
181
@@ -541,6 +541,14 @@ V1222
1318
1319
1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
+1328
1377
1416
7424
@@ -1057,6 +1065,10 @@ V1222
42646
42647
42648
+42649
+42650
+42651
+42652
42787
42788
42789
@@ -1156,7 +1168,17 @@ V1222
42897
42898
42899
-42900
+42902
+42903
+42904
+42905
+42906
+42907
+42908
+42909
+42910
+42911
+42912
42913
42914
42915
@@ -1169,6 +1191,10 @@ V1222
42922
43002
43003
+43824
+43867
+43876
+43878
64256
64263
64275
@@ -1177,6 +1203,8 @@ V1222
65371
66600
66640
+71872
+71904
119834
119860
119886
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl
index 30ed828b758..3b550bba1ca 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V104
+V112
688
706
710
@@ -93,6 +93,8 @@ V104
42509
42623
42624
+42652
+42654
42775
42784
42864
@@ -103,16 +105,22 @@ V104
43002
43471
43472
+43494
+43495
43632
43633
43741
43742
43763
43765
+43868
+43872
65392
65393
65438
65440
+92992
+92996
94099
94112
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl
index f69d9e798c9..a17106119b0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V742
+V834
170
171
186
@@ -56,9 +56,7 @@ V742
2112
2137
2208
-2209
-2210
-2221
+2227
2308
2362
2365
@@ -68,9 +66,7 @@ V742
2392
2402
2418
-2424
-2425
-2432
+2433
2437
2445
2447
@@ -180,8 +176,6 @@ V742
3090
3113
3114
-3124
-3125
3130
3133
3134
@@ -341,6 +335,8 @@ V742
5787
5792
5867
+5873
+5881
5888
5901
5902
@@ -368,7 +364,7 @@ V742
6320
6390
6400
-6429
+6431
6480
6510
6512
@@ -465,6 +461,8 @@ V742
42607
42656
42726
+42999
+43000
43003
43010
43011
@@ -489,6 +487,12 @@ V742
43389
43396
43443
+43488
+43493
+43495
+43504
+43514
+43519
43520
43561
43584
@@ -501,7 +505,7 @@ V742
43639
43642
43643
-43648
+43646
43696
43697
43698
@@ -602,11 +606,13 @@ V742
66208
66257
66304
-66335
+66336
66352
66369
66370
66378
+66384
+66422
66432
66462
66464
@@ -615,6 +621,16 @@ V742
66512
66640
66718
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -627,6 +643,10 @@ V742
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -645,12 +665,20 @@ V742
68148
68192
68221
+68224
+68253
+68288
+68296
+68297
+68325
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69635
@@ -661,24 +689,88 @@ V742
69865
69891
69927
+69968
+70003
+70006
+70007
70019
70067
70081
70085
+70106
+70107
+70144
+70162
+70163
+70188
+70320
+70367
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70461
+70462
+70493
+70498
+70784
+70832
+70852
+70854
+70855
+70856
+71040
+71087
+71168
+71216
+71236
+71237
71296
71339
+71935
+71936
+72384
+72441
73728
-74607
+74649
77824
78895
92160
92729
+92736
+92767
+92880
+92910
+92928
+92976
+93027
+93048
+93053
+93072
93952
94021
94032
94033
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+124928
+125125
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl
index fef538a3cee..3793371b31a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1216
+V1244
65
91
192
@@ -305,6 +305,8 @@ V1216
883
886
887
+895
+896
902
903
904
@@ -543,6 +545,14 @@ V1216
1317
1318
1319
+1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
1329
1367
4256
@@ -1051,6 +1061,10 @@ V1216
42645
42646
42647
+42648
+42649
+42650
+42651
42786
42787
42788
@@ -1149,6 +1163,16 @@ V1216
42897
42898
42899
+42902
+42903
+42904
+42905
+42906
+42907
+42908
+42909
+42910
+42911
42912
42913
42914
@@ -1160,11 +1184,15 @@ V1216
42920
42921
42922
-42923
+42926
+42928
+42930
65313
65339
66560
66600
+71840
+71872
119808
119834
119860
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl
index dfe9616ad41..feff29dab98 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V408
+V458
768
880
1155
@@ -58,8 +58,6 @@ V408
2137
2140
2276
-2303
-2304
2308
2362
2365
@@ -135,7 +133,7 @@ V408
3022
3031
3032
-3073
+3072
3076
3134
3141
@@ -147,7 +145,7 @@ V408
3159
3170
3172
-3202
+3201
3204
3260
3261
@@ -161,7 +159,7 @@ V408
3287
3298
3300
-3330
+3329
3332
3390
3397
@@ -271,6 +269,8 @@ V408
6781
6783
6784
+6832
+6847
6912
6917
6964
@@ -293,8 +293,10 @@ V408
7406
7410
7413
+7416
+7418
7616
-7655
+7670
7676
7680
8400
@@ -339,6 +341,8 @@ V408
43396
43443
43457
+43493
+43494
43561
43575
43587
@@ -346,7 +350,7 @@ V408
43596
43598
43643
-43644
+43646
43696
43697
43698
@@ -370,9 +374,13 @@ V408
65024
65040
65056
-65063
+65070
66045
66046
+66272
+66273
+66422
+66427
68097
68100
68101
@@ -383,11 +391,13 @@ V408
68155
68159
68160
+68325
+68327
69632
69635
69688
69703
-69760
+69759
69763
69808
69819
@@ -395,16 +405,54 @@ V408
69891
69927
69941
+70003
+70004
70016
70019
70067
70081
+70188
+70200
+70367
+70379
+70401
+70404
+70460
+70461
+70462
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70498
+70500
+70502
+70509
+70512
+70517
+70832
+70852
+71087
+71094
+71096
+71105
+71216
+71233
71339
71352
+92912
+92917
+92976
+92983
94033
94079
94095
94099
+113821
+113823
119141
119146
119149
@@ -417,6 +465,8 @@ V408
119214
119362
119365
+125136
+125143
917760
918000
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl
index 26a8ad83a7c..e88b406d9cf 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V252
+V294
2307
2308
2363
@@ -173,8 +173,6 @@ V252
7080
7082
7083
-7084
-7086
7143
7144
7146
@@ -219,6 +217,8 @@ V252
43598
43643
43644
+43645
+43646
43755
43756
43758
@@ -251,6 +251,48 @@ V252
70070
70079
70081
+70188
+70191
+70194
+70196
+70197
+70198
+70368
+70371
+70402
+70404
+70462
+70464
+70465
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70498
+70500
+70832
+70835
+70841
+70842
+70843
+70847
+70849
+70850
+71087
+71090
+71096
+71100
+71102
+71103
+71216
+71219
+71227
+71229
+71230
+71231
71340
71341
71342
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl
index f4e72bb8e98..c3d14d28a2c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,9 +10,11 @@
return <<'END';
-V8
+V10
1160
1162
+6846
+6847
8413
8417
8418
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl
index f59bc4c993b..8543f532d15 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V442
+V510
768
880
1155
@@ -58,8 +58,6 @@ V442
2137
2140
2276
-2303
-2304
2307
2362
2363
@@ -131,6 +129,8 @@ V442
3009
3021
3022
+3072
+3073
3134
3137
3142
@@ -141,6 +141,8 @@ V442
3159
3170
3172
+3201
+3202
3260
3261
3263
@@ -151,6 +153,8 @@ V442
3278
3298
3300
+3329
+3330
3393
3397
3405
@@ -269,6 +273,8 @@ V442
6781
6783
6784
+6832
+6846
6912
6916
6964
@@ -288,7 +294,7 @@ V442
7080
7082
7083
-7084
+7086
7142
7143
7144
@@ -311,8 +317,10 @@ V442
7406
7412
7413
+7416
+7418
7616
-7655
+7670
7676
7680
8400
@@ -363,6 +371,8 @@ V442
43450
43452
43453
+43493
+43494
43561
43567
43569
@@ -373,6 +383,8 @@ V442
43588
43596
43597
+43644
+43645
43696
43697
43698
@@ -398,9 +410,13 @@ V442
65024
65040
65056
-65063
+65070
66045
66046
+66272
+66273
+66422
+66427
68097
68100
68101
@@ -411,11 +427,13 @@ V442
68155
68159
68160
+68325
+68327
69633
69634
69688
69703
-69760
+69759
69762
69811
69815
@@ -427,10 +445,52 @@ V442
69932
69933
69941
+70003
+70004
70016
70018
70070
70079
+70191
+70194
+70196
+70197
+70198
+70200
+70367
+70368
+70371
+70379
+70401
+70402
+70460
+70461
+70464
+70465
+70502
+70509
+70512
+70517
+70835
+70841
+70842
+70843
+70847
+70849
+70850
+70852
+71090
+71094
+71100
+71102
+71103
+71105
+71219
+71227
+71229
+71230
+71231
+71233
71339
71340
71341
@@ -439,8 +499,14 @@ V442
71350
71351
71352
+92912
+92917
+92976
+92983
94095
94099
+113821
+113823
119143
119146
119163
@@ -451,6 +517,8 @@ V442
119214
119362
119365
+125136
+125143
917760
918000
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl
index 719ffacc8ef..d4c471c319f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V176
+V210
48
58
178
@@ -49,6 +49,8 @@ V176
3312
3430
3446
+3558
+3568
3664
3674
3792
@@ -133,6 +135,8 @@ V176
43274
43472
43482
+43504
+43514
43600
43610
44016
@@ -144,7 +148,9 @@ V176
65856
65913
65930
-65931
+65932
+66273
+66300
66336
66340
66369
@@ -157,16 +163,26 @@ V176
66730
67672
67680
+67705
+67712
+67751
+67760
67862
67868
68160
68168
68221
68223
+68253
+68256
+68331
+68336
68440
68448
68472
68480
+68521
+68528
69216
69247
69714
@@ -177,14 +193,32 @@ V176
69952
70096
70106
+70113
+70133
+70384
+70394
+70864
+70874
+71248
+71258
71360
71370
+71904
+71923
74752
-74851
+74863
+92768
+92778
+93008
+93018
+93019
+93026
119648
119666
120782
120832
+125127
+125136
127232
-127243
+127245
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl
index 1464dfada58..271e04b05fb 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V84
+V100
48
58
1632
@@ -37,6 +37,8 @@ V84
3312
3430
3440
+3558
+3568
3664
3674
3792
@@ -75,6 +77,8 @@ V84
43274
43472
43482
+43504
+43514
43600
43610
44016
@@ -91,8 +95,20 @@ V84
69952
70096
70106
+70384
+70394
+70864
+70874
+71248
+71258
71360
71370
+71904
+71914
+92768
+92778
+93008
+93018
120782
120832
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl
index 7b3eecb69de..942e8e34e1d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -34,5 +34,5 @@ V24
66513
66518
74752
-74851
+74863
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl
index f5839092202..61413a24afd 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V84
+V104
178
180
185
@@ -72,27 +72,47 @@ V84
65909
65913
65930
-65931
+65932
+66273
+66300
66336
66340
67672
67680
+67705
+67712
+67751
+67760
67862
67868
68160
68168
68221
68223
+68253
+68256
+68331
+68336
68440
68448
68472
68480
+68521
+68528
69216
69247
69714
69734
+70113
+70133
+71914
+71923
+93019
+93026
119648
119666
+125127
+125136
127232
-127243
+127245
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl
index 944cf8a20d2..feae88ec69f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V282
+V310
33
36
37
@@ -182,7 +182,7 @@ V282
11776
11823
11824
-11836
+11843
12289
12292
12296
@@ -269,6 +269,8 @@ V282
66464
66512
66513
+66927
+66928
67671
67672
67871
@@ -279,8 +281,12 @@ V282
68185
68223
68224
+68336
+68343
68409
68416
+68505
+68509
69703
69710
69819
@@ -289,8 +295,30 @@ V282
69826
69952
69956
+70004
+70006
70085
70089
+70093
+70094
+70200
+70206
+70854
+70855
+71105
+71114
+71233
+71236
74864
-74868
+74869
+92782
+92784
+92917
+92918
+92983
+92988
+92996
+92997
+113823
+113824
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl
index 7bce4855477..36739dcb26e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V32
+V34
45
46
1418
@@ -29,6 +29,8 @@ V32
11803
11834
11836
+11840
+11841
12316
12317
12336
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl
index 0d872278740..9355779c117 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -117,8 +117,8 @@ V144
12316
12318
12320
+64830
64831
-64832
65048
65049
65078
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl
index 9603bd5e391..25521d301c4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl
index f1f161c9612..1d7f82077b7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl
index d1b2e49edfa..911fbb3cfb0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V270
+V302
33
36
37
@@ -173,6 +173,10 @@ V270
11823
11824
11834
+11836
+11840
+11841
+11842
12289
12292
12349
@@ -257,6 +261,8 @@ V270
66464
66512
66513
+66927
+66928
67671
67672
67871
@@ -267,8 +273,12 @@ V270
68185
68223
68224
+68336
+68343
68409
68416
+68505
+68509
69703
69710
69819
@@ -277,8 +287,30 @@ V270
69826
69952
69956
+70004
+70006
70085
70089
+70093
+70094
+70200
+70206
+70854
+70855
+71105
+71114
+71233
+71236
74864
-74868
+74869
+92782
+92784
+92917
+92918
+92983
+92988
+92996
+92997
+113823
+113824
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl
index b41feb589ee..6d291fe9417 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V148
+V150
40
41
91
@@ -101,6 +101,8 @@ V148
11815
11816
11817
+11842
+11843
12296
12297
12298
@@ -121,8 +123,8 @@ V148
12315
12317
12318
-64830
64831
+64832
65047
65048
65077
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl
index 74e21bf6c78..1d617d3341e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V398
+V420
36
37
43
@@ -59,7 +59,7 @@ V398
1015
1154
1155
-1423
+1421
1424
1542
1545
@@ -148,7 +148,7 @@ V398
8330
8333
8352
-8379
+8382
8448
8450
8451
@@ -182,7 +182,7 @@ V398
8972
9001
9003
-9204
+9211
9216
9255
9280
@@ -190,8 +190,6 @@ V398
9372
9450
9472
-9984
-9985
10088
10132
10181
@@ -204,9 +202,15 @@ V398
10716
10748
10750
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11493
11499
11904
@@ -265,6 +269,8 @@ V398
43066
43639
43642
+43867
+43868
64297
64298
64434
@@ -301,10 +307,24 @@ V398
65856
65913
65930
+65932
+65933
65936
65948
+65952
+65953
66000
66045
+67703
+67705
+68296
+68297
+92988
+92992
+92997
+92998
+113820
+113821
118784
119030
119040
@@ -354,11 +374,11 @@ V398
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127248
127279
127280
@@ -374,39 +394,41 @@ V398
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl
index 9ecb297b7a5..66b0e7c01dc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -32,7 +32,7 @@ V34
6107
6108
8352
-8379
+8382
43064
43065
65020
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl
index 4eb9ea30540..35060a1a7b6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V54
+V56
94
95
96
@@ -57,6 +57,8 @@ V54
42786
42889
42891
+43867
+43868
64434
64450
65342
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl
index 3667d604ce7..0b7d350ff38 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl
index d135e3a8649..420fbb54d24 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V306
+V330
166
167
169
@@ -21,6 +21,8 @@ V306
177
1154
1155
+1421
+1423
1550
1552
1758
@@ -136,7 +138,7 @@ V306
9140
9180
9186
-9204
+9211
9216
9255
9280
@@ -152,8 +154,6 @@ V306
9728
9839
9840
-9984
-9985
10088
10132
10176
@@ -163,8 +163,16 @@ V306
11056
11077
11079
-11088
-11098
+11085
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11493
11499
11904
@@ -231,10 +239,24 @@ V306
65856
65913
65930
+65932
+65933
65936
65948
+65952
+65953
66000
66045
+67703
+67705
+68296
+68297
+92988
+92992
+92997
+92998
+113820
+113821
118784
119030
119040
@@ -262,11 +284,11 @@ V306
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127248
127279
127280
@@ -282,39 +304,41 @@ V306
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl
index 0db609a536b..21a4ff09346 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl
index 4e27b815a89..42a79f848ee 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl
index 48ccbf96cfe..4fba3fe6378 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1284
+V1448
32
127
160
@@ -20,7 +20,7 @@ V1284
880
888
890
-895
+896
900
907
908
@@ -30,7 +30,7 @@ V1284
931
1155
1162
-1320
+1328
1329
1367
1369
@@ -39,7 +39,7 @@ V1284
1416
1417
1419
-1423
+1421
1424
1470
1471
@@ -98,9 +98,7 @@ V1284
2142
2143
2208
-2209
-2210
-2221
+2227
2307
2362
2363
@@ -114,9 +112,7 @@ V1284
2392
2402
2404
-2424
-2425
-2432
+2433
2434
2436
2437
@@ -268,8 +264,6 @@ V1284
3090
3113
3114
-3124
-3125
3130
3133
3134
@@ -353,6 +347,8 @@ V1284
3538
3544
3551
+3558
+3568
3570
3573
3585
@@ -492,7 +488,7 @@ V1284
5120
5789
5792
-5873
+5881
5888
5901
5902
@@ -534,7 +530,7 @@ V1284
6320
6390
6400
-6429
+6431
6435
6439
6441
@@ -595,7 +591,7 @@ V1284
7080
7082
7083
-7084
+7086
7142
7143
7144
@@ -672,21 +668,25 @@ V1284
8336
8349
8352
-8379
+8382
8448
8586
8592
-9204
+9211
9216
9255
9280
9291
9312
-9984
-9985
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11264
11311
11312
@@ -724,7 +724,7 @@ V1284
11736
11743
11776
-11836
+11843
11904
11930
11931
@@ -768,7 +768,7 @@ V1284
42611
42612
42622
-42648
+42654
42656
42736
42738
@@ -776,10 +776,10 @@ V1284
42752
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43010
43011
43014
@@ -818,7 +818,9 @@ V1284
43471
43482
43486
-43488
+43493
+43494
+43519
43520
43561
43567
@@ -835,7 +837,7 @@ V1284
43610
43612
43644
-43648
+43645
43696
43697
43698
@@ -861,6 +863,10 @@ V1284
43815
43816
43823
+43824
+43872
+43876
+43878
43968
44005
44006
@@ -954,21 +960,25 @@ V1284
65799
65844
65847
-65931
+65933
65936
65948
+65952
+65953
66000
66045
66176
66205
66208
66257
+66273
+66300
66304
-66335
-66336
66340
66352
66379
+66384
+66422
66432
66462
66463
@@ -979,6 +989,18 @@ V1284
66718
66720
66730
+66816
+66856
+66864
+66916
+66927
+66928
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -992,7 +1014,9 @@ V1284
67647
67670
67671
-67680
+67743
+67751
+67760
67840
67868
67871
@@ -1016,7 +1040,11 @@ V1284
68176
68185
68192
-68224
+68256
+68288
+68325
+68331
+68343
68352
68406
68409
@@ -1024,7 +1052,11 @@ V1284
68440
68467
68472
-68480
+68498
+68505
+68509
+68521
+68528
68608
68681
69216
@@ -1055,12 +1087,98 @@ V1284
69933
69942
69956
+69968
+70003
+70004
+70007
70018
70070
70079
70089
+70093
+70094
70096
-70106
+70107
+70113
+70133
+70144
+70162
+70163
+70191
+70194
+70196
+70197
+70198
+70200
+70206
+70320
+70367
+70368
+70371
+70384
+70394
+70402
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70461
+70462
+70463
+70464
+70465
+70469
+70471
+70473
+70475
+70478
+70493
+70500
+70784
+70832
+70833
+70835
+70841
+70842
+70843
+70845
+70846
+70847
+70849
+70850
+70852
+70856
+70864
+70874
+71040
+71087
+71088
+71090
+71096
+71100
+71102
+71103
+71105
+71114
+71168
+71219
+71227
+71229
+71230
+71231
+71233
+71237
+71248
+71258
71296
71339
71340
@@ -1071,16 +1189,44 @@ V1284
71351
71360
71370
+71840
+71923
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
74864
-74868
+74869
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92782
+92784
+92880
+92910
+92917
+92918
+92928
+92976
+92983
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -1089,6 +1235,18 @@ V1284
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113821
+113823
+113824
118784
119030
119040
@@ -1155,6 +1313,10 @@ V1284
120780
120782
120832
+124928
+125125
+125127
+125136
126464
126468
126469
@@ -1230,13 +1392,13 @@ V1284
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127232
-127243
+127245
127248
127279
127280
@@ -1252,41 +1414,43 @@ V1284
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
131072
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl
index e6960cba86b..e6859e4aea8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl
index 35d95b94811..eb43dc59b68 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Hyphen/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Hyphen/Y.pl
index a1d62d6e254..01676139437 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Hyphen/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Hyphen/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl
index 55620159e84..88fe58d730a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1128
+V1252
48
58
65
@@ -47,6 +47,8 @@ V1128
888
890
894
+895
+896
902
907
908
@@ -60,7 +62,7 @@ V1128
1155
1160
1162
-1320
+1328
1329
1367
1369
@@ -108,20 +110,12 @@ V1128
2112
2140
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
2404
2406
2416
2417
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -269,7 +263,7 @@ V1128
3032
3046
3056
-3073
+3072
3076
3077
3085
@@ -278,8 +272,6 @@ V1128
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -295,7 +287,7 @@ V1128
3172
3174
3184
-3202
+3201
3204
3205
3213
@@ -323,7 +315,7 @@ V1128
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -365,6 +357,8 @@ V1128
3543
3544
3552
+3558
+3568
3570
3572
3585
@@ -494,7 +488,7 @@ V1128
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -528,7 +522,7 @@ V1128
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -555,6 +549,8 @@ V1128
6810
6823
6824
+6832
+6846
6912
6988
6992
@@ -573,8 +569,10 @@ V1128
7379
7380
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -734,7 +732,7 @@ V1128
42612
42622
42623
-42648
+42654
42655
42738
42775
@@ -744,10 +742,10 @@ V1128
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43048
43072
43124
@@ -769,6 +767,8 @@ V1128
43457
43471
43482
+43488
+43519
43520
43575
43584
@@ -778,8 +778,6 @@ V1128
43616
43639
43642
-43644
-43648
43715
43739
43742
@@ -797,6 +795,12 @@ V1128
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44011
44012
@@ -842,7 +846,7 @@ V1128
65024
65040
65056
-65063
+65070
65075
65077
65101
@@ -891,10 +895,14 @@ V1128
66205
66208
66257
+66272
+66273
66304
-66335
+66336
66352
66379
+66384
+66427
66432
66462
66464
@@ -907,6 +915,16 @@ V1128
66718
66720
66730
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -919,6 +937,10 @@ V1128
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -943,19 +965,27 @@ V1128
68160
68192
68221
+68224
+68253
+68288
+68296
+68297
+68327
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69632
69703
69734
69744
-69760
+69759
69819
69840
69865
@@ -965,22 +995,102 @@ V1128
69941
69942
69952
+69968
+70004
+70006
+70007
70016
70085
70096
-70106
+70107
+70144
+70162
+70163
+70200
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70854
+70855
+70856
+70864
+70874
+71040
+71094
+71096
+71105
+71168
+71233
+71236
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71914
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92880
+92910
+92912
+92917
+92928
+92983
+92992
+92996
+93008
+93018
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -989,6 +1099,16 @@ V1128
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113821
+113823
119141
119146
119149
@@ -1063,6 +1183,10 @@ V1128
120780
120782
120832
+124928
+125125
+125136
+125143
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl
index 1bbb0d8aecf..25c1f53adb1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V976
+V1076
65
91
97
@@ -41,6 +41,8 @@ V976
888
890
894
+895
+896
902
903
904
@@ -54,7 +56,7 @@ V976
1015
1154
1162
-1320
+1328
1329
1367
1369
@@ -106,9 +108,7 @@ V976
2112
2137
2208
-2209
-2210
-2221
+2227
2308
2362
2365
@@ -118,9 +118,7 @@ V976
2392
2402
2417
-2424
-2425
-2432
+2433
2437
2445
2447
@@ -230,8 +228,6 @@ V976
3090
3113
3114
-3124
-3125
3130
3133
3134
@@ -400,7 +396,7 @@ V976
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -428,7 +424,7 @@ V976
6320
6390
6400
-6429
+6431
6480
6510
6512
@@ -616,7 +612,7 @@ V976
42560
42607
42623
-42648
+42654
42656
42736
42775
@@ -626,10 +622,10 @@ V976
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43010
43011
43014
@@ -655,6 +651,12 @@ V976
43443
43471
43472
+43488
+43493
+43494
+43504
+43514
+43519
43520
43561
43584
@@ -665,7 +667,7 @@ V976
43639
43642
43643
-43648
+43646
43696
43697
43698
@@ -693,6 +695,12 @@ V976
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44003
44032
@@ -772,9 +780,11 @@ V976
66208
66257
66304
-66335
+66336
66352
66379
+66384
+66422
66432
66462
66464
@@ -785,6 +795,16 @@ V976
66518
66560
66718
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -797,6 +817,10 @@ V976
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -815,12 +839,20 @@ V976
68148
68192
68221
+68224
+68253
+68288
+68296
+68297
+68325
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69635
@@ -831,20 +863,78 @@ V976
69865
69891
69927
+69968
+70003
+70006
+70007
70019
70067
70081
70085
+70106
+70107
+70144
+70162
+70163
+70188
+70320
+70367
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70461
+70462
+70493
+70498
+70784
+70832
+70852
+70854
+70855
+70856
+71040
+71087
+71168
+71216
+71236
+71237
71296
71339
+71840
+71904
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92880
+92910
+92928
+92976
+92992
+92996
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -853,6 +943,14 @@ V976
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
119808
119893
119894
@@ -913,6 +1011,8 @@ V976
120771
120772
120780
+124928
+125125
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl
index fa16f8a7c14..f7567ff8d0b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl
index 32b8ff0e1dd..21139f9919c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl
index 6636d1c8014..b61e5883e9c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl
index 5d27de116db..66eaf772eb7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl
index 9ddc0a2d837..faca25594b0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl
index 56393d92803..7dea68844e0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl
index 7367241baaa..43bddab48aa 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl
index 4e652f51c54..fba0c46fda1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl
index bedc4c2b818..0fa6e8fe0c0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl
index 5e196bb16f1..c5f5e47ffc4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl
index 2ceb134cab3..f62e04d9b5d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl
index af04c031dfc..ae6e311ec98 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl
index 7911f18b001..38fa78a4822 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl
index 8a42071b406..e29207008c2 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl
index 9eb001975fe..b004d4c108f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl
new file mode 100644
index 00000000000..18a3d537e36
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl
@@ -0,0 +1,1234 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V1220
+0
+888
+890
+896
+900
+907
+908
+909
+910
+930
+931
+1328
+1329
+1367
+1369
+1376
+1377
+1416
+1417
+1419
+1421
+1424
+1425
+1480
+1488
+1515
+1520
+1525
+1536
+1565
+1566
+1806
+1807
+1867
+1869
+1970
+1984
+2043
+2048
+2094
+2096
+2111
+2112
+2140
+2142
+2143
+2208
+2227
+2276
+2436
+2437
+2445
+2447
+2449
+2451
+2473
+2474
+2481
+2482
+2483
+2486
+2490
+2492
+2501
+2503
+2505
+2507
+2511
+2519
+2520
+2524
+2526
+2527
+2532
+2534
+2556
+2561
+2564
+2565
+2571
+2575
+2577
+2579
+2601
+2602
+2609
+2610
+2612
+2613
+2615
+2616
+2618
+2620
+2621
+2622
+2627
+2631
+2633
+2635
+2638
+2641
+2642
+2649
+2653
+2654
+2655
+2662
+2678
+2689
+2692
+2693
+2702
+2703
+2706
+2707
+2729
+2730
+2737
+2738
+2740
+2741
+2746
+2748
+2758
+2759
+2762
+2763
+2766
+2768
+2769
+2784
+2788
+2790
+2802
+2817
+2820
+2821
+2829
+2831
+2833
+2835
+2857
+2858
+2865
+2866
+2868
+2869
+2874
+2876
+2885
+2887
+2889
+2891
+2894
+2902
+2904
+2908
+2910
+2911
+2916
+2918
+2936
+2946
+2948
+2949
+2955
+2958
+2961
+2962
+2966
+2969
+2971
+2972
+2973
+2974
+2976
+2979
+2981
+2984
+2987
+2990
+3002
+3006
+3011
+3014
+3017
+3018
+3022
+3024
+3025
+3031
+3032
+3046
+3067
+3072
+3076
+3077
+3085
+3086
+3089
+3090
+3113
+3114
+3130
+3133
+3141
+3142
+3145
+3146
+3150
+3157
+3159
+3160
+3162
+3168
+3172
+3174
+3184
+3192
+3200
+3201
+3204
+3205
+3213
+3214
+3217
+3218
+3241
+3242
+3252
+3253
+3258
+3260
+3269
+3270
+3273
+3274
+3278
+3285
+3287
+3294
+3295
+3296
+3300
+3302
+3312
+3313
+3315
+3329
+3332
+3333
+3341
+3342
+3345
+3346
+3387
+3389
+3397
+3398
+3401
+3402
+3407
+3415
+3416
+3424
+3428
+3430
+3446
+3449
+3456
+3458
+3460
+3461
+3479
+3482
+3506
+3507
+3516
+3517
+3518
+3520
+3527
+3530
+3531
+3535
+3541
+3542
+3543
+3544
+3552
+3558
+3568
+3570
+3573
+3585
+3643
+3647
+3676
+3713
+3715
+3716
+3717
+3719
+3721
+3722
+3723
+3725
+3726
+3732
+3736
+3737
+3744
+3745
+3748
+3749
+3750
+3751
+3752
+3754
+3756
+3757
+3770
+3771
+3774
+3776
+3781
+3782
+3783
+3784
+3790
+3792
+3802
+3804
+3808
+3840
+3912
+3913
+3949
+3953
+3992
+3993
+4029
+4030
+4045
+4046
+4059
+4096
+4294
+4295
+4296
+4301
+4302
+4304
+4681
+4682
+4686
+4688
+4695
+4696
+4697
+4698
+4702
+4704
+4745
+4746
+4750
+4752
+4785
+4786
+4790
+4792
+4799
+4800
+4801
+4802
+4806
+4808
+4823
+4824
+4881
+4882
+4886
+4888
+4955
+4957
+4989
+4992
+5018
+5024
+5109
+5120
+5789
+5792
+5881
+5888
+5901
+5902
+5909
+5920
+5943
+5952
+5972
+5984
+5997
+5998
+6001
+6002
+6004
+6016
+6110
+6112
+6122
+6128
+6138
+6144
+6159
+6160
+6170
+6176
+6264
+6272
+6315
+6320
+6390
+6400
+6431
+6432
+6444
+6448
+6460
+6464
+6465
+6468
+6510
+6512
+6517
+6528
+6572
+6576
+6602
+6608
+6619
+6622
+6684
+6686
+6751
+6752
+6781
+6783
+6794
+6800
+6810
+6816
+6830
+6832
+6847
+6912
+6988
+6992
+7037
+7040
+7156
+7164
+7224
+7227
+7242
+7245
+7296
+7360
+7368
+7376
+7415
+7416
+7418
+7424
+7670
+7676
+7958
+7960
+7966
+7968
+8006
+8008
+8014
+8016
+8024
+8025
+8026
+8027
+8028
+8029
+8030
+8031
+8062
+8064
+8117
+8118
+8133
+8134
+8148
+8150
+8156
+8157
+8176
+8178
+8181
+8182
+8191
+8192
+8293
+8294
+8306
+8308
+8335
+8336
+8349
+8352
+8382
+8400
+8433
+8448
+8586
+8592
+9211
+9216
+9255
+9280
+9291
+9312
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
+11264
+11311
+11312
+11359
+11360
+11508
+11513
+11558
+11559
+11560
+11565
+11566
+11568
+11624
+11631
+11633
+11647
+11671
+11680
+11687
+11688
+11695
+11696
+11703
+11704
+11711
+11712
+11719
+11720
+11727
+11728
+11735
+11736
+11743
+11744
+11843
+11904
+11930
+11931
+12020
+12032
+12246
+12272
+12284
+12288
+12352
+12353
+12439
+12441
+12544
+12549
+12590
+12593
+12687
+12688
+12731
+12736
+12772
+12784
+12831
+12832
+13055
+13056
+19894
+19904
+40909
+40960
+42125
+42128
+42183
+42192
+42540
+42560
+42654
+42655
+42744
+42752
+42895
+42896
+42926
+42928
+42930
+42999
+43052
+43056
+43066
+43072
+43128
+43136
+43205
+43214
+43226
+43232
+43260
+43264
+43348
+43359
+43389
+43392
+43470
+43471
+43482
+43486
+43519
+43520
+43575
+43584
+43598
+43600
+43610
+43612
+43715
+43739
+43767
+43777
+43783
+43785
+43791
+43793
+43799
+43808
+43815
+43816
+43823
+43824
+43872
+43876
+43878
+43968
+44014
+44016
+44026
+44032
+55204
+55216
+55239
+55243
+55292
+55296
+64110
+64112
+64218
+64256
+64263
+64275
+64280
+64285
+64311
+64312
+64317
+64318
+64319
+64320
+64322
+64323
+64325
+64326
+64450
+64467
+64832
+64848
+64912
+64914
+64968
+64976
+65022
+65024
+65050
+65056
+65070
+65072
+65107
+65108
+65127
+65128
+65132
+65136
+65141
+65142
+65277
+65279
+65280
+65281
+65471
+65474
+65480
+65482
+65488
+65490
+65496
+65498
+65501
+65504
+65511
+65512
+65519
+65529
+65548
+65549
+65575
+65576
+65595
+65596
+65598
+65599
+65614
+65616
+65630
+65664
+65787
+65792
+65795
+65799
+65844
+65847
+65933
+65936
+65948
+65952
+65953
+66000
+66046
+66176
+66205
+66208
+66257
+66272
+66300
+66304
+66340
+66352
+66379
+66384
+66427
+66432
+66462
+66463
+66500
+66504
+66518
+66560
+66718
+66720
+66730
+66816
+66856
+66864
+66916
+66927
+66928
+67072
+67383
+67392
+67414
+67424
+67432
+67584
+67590
+67592
+67593
+67594
+67638
+67639
+67641
+67644
+67645
+67647
+67670
+67671
+67743
+67751
+67760
+67840
+67868
+67871
+67898
+67903
+67904
+67968
+68024
+68030
+68032
+68096
+68100
+68101
+68103
+68108
+68116
+68117
+68120
+68121
+68148
+68152
+68155
+68159
+68168
+68176
+68185
+68192
+68256
+68288
+68327
+68331
+68343
+68352
+68406
+68409
+68438
+68440
+68467
+68472
+68498
+68505
+68509
+68521
+68528
+68608
+68681
+69216
+69247
+69632
+69710
+69714
+69744
+69759
+69826
+69840
+69865
+69872
+69882
+69888
+69941
+69942
+69956
+69968
+70007
+70016
+70089
+70093
+70094
+70096
+70107
+70113
+70133
+70144
+70162
+70163
+70206
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71114
+71168
+71237
+71248
+71258
+71296
+71352
+71360
+71370
+71840
+71923
+71935
+71936
+72384
+72441
+73728
+74649
+74752
+74863
+74864
+74869
+77824
+78895
+92160
+92729
+92736
+92767
+92768
+92778
+92782
+92784
+92880
+92910
+92912
+92918
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
+93952
+94021
+94032
+94079
+94095
+94112
+110592
+110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
+118784
+119030
+119040
+119079
+119081
+119262
+119296
+119366
+119552
+119639
+119648
+119666
+119808
+119893
+119894
+119965
+119966
+119968
+119970
+119971
+119973
+119975
+119977
+119981
+119982
+119994
+119995
+119996
+119997
+120004
+120005
+120070
+120071
+120075
+120077
+120085
+120086
+120093
+120094
+120122
+120123
+120127
+120128
+120133
+120134
+120135
+120138
+120145
+120146
+120486
+120488
+120780
+120782
+120832
+124928
+125125
+125127
+125143
+126464
+126468
+126469
+126496
+126497
+126499
+126500
+126501
+126503
+126504
+126505
+126515
+126516
+126520
+126521
+126522
+126523
+126524
+126530
+126531
+126535
+126536
+126537
+126538
+126539
+126540
+126541
+126544
+126545
+126547
+126548
+126549
+126551
+126552
+126553
+126554
+126555
+126556
+126557
+126558
+126559
+126560
+126561
+126563
+126564
+126565
+126567
+126571
+126572
+126579
+126580
+126584
+126585
+126589
+126590
+126591
+126592
+126602
+126603
+126620
+126625
+126628
+126629
+126634
+126635
+126652
+126704
+126706
+126976
+127020
+127024
+127124
+127136
+127151
+127153
+127168
+127169
+127184
+127185
+127222
+127232
+127245
+127248
+127279
+127280
+127340
+127344
+127387
+127462
+127491
+127504
+127547
+127552
+127561
+127568
+127570
+127744
+127789
+127792
+127870
+127872
+127951
+127956
+127992
+128000
+128255
+128256
+128331
+128336
+128378
+128379
+128420
+128421
+128579
+128581
+128720
+128736
+128749
+128752
+128756
+128768
+128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
+131070
+173783
+173824
+177973
+177984
+178206
+194560
+195102
+196606
+196608
+262142
+262144
+327678
+327680
+393214
+393216
+458750
+458752
+524286
+524288
+589822
+589824
+655358
+655360
+720894
+720896
+786430
+786432
+851966
+851968
+917502
+917504
+917505
+917506
+917536
+917632
+917760
+918000
+983038
+1114112
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl
index 80c3a89ffea..45d8f4a1b36 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl
index 39c87422458..6f14dfed48d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl
index 1d221f690e2..0d9647717b6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -22,5 +22,5 @@ V12
1872
1879
2208
-2209
+2210
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl
index 397eb072121..6f70b5c9578 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V8
+V10
1583
1585
1672
@@ -19,4 +19,6 @@ V8
1775
1881
1883
+2222
+2223
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl
index acfa6d27ff4..91e67b9875c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl
index 936187b9876..963281ebe1e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl
index 1b7e98df73b..6527b7804bc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V10
+V12
1595
1597
1705
@@ -21,4 +21,6 @@ V10
1717
1890
1893
+2224
+2225
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl
index f0c3f54dc4d..2c008f2dd85 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl
index 1326ba9b88e..ec1d4a8441e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl
index d533863e921..3d732965ded 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V31
+V43
0
1568
1569
@@ -39,7 +39,19 @@ V31
1869
1920
2208
-2209
-2210
2221
+2222
+2227
+68288
+68294
+68295
+68296
+68297
+68299
+68301
+68322
+68324
+68325
+68331
+68336
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl
index 116026b1854..e2999b54bd2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl
index d25d0a42491..88048353c4e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V14
+V16
1585
1587
1681
@@ -25,4 +25,6 @@ V14
1906
2218
2219
+2226
+2227
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_XSpecia.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl
index 356575c4812..9bd0ea6dc24 100755..100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_XSpecia.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl
@@ -1,26 +1,22 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
-
-# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
-# This file is for internal use by core Perl only. The format and even the
-# name or existence of this file are subject to change without notice. Don't
-# use it directly. Use Unicode::UCD to access the Unicode character data
-# base.
-
-
-return <<'END';
-V12
-4352
-4608
-43360
-43389
-44032
-55204
-55216
-55239
-55243
-55292
-127462
-127488
-END
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+1589
+1591
+1693
+1695
+1787
+1788
+2223
+2224
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl
index 4033a38d441..7748ea32223 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl
index 1f2f84e2f04..0d667c6876b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl
index c38bad0e1c4..937e43efeb3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl
index 429611bd6c6..8d1ddb5d14d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl
index 3c7d52f673c..6de2ac3c876 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V82
+V104
1568
1569
1574
@@ -71,18 +71,16 @@ V82
2027
2113
2118
-2119
+2120
2121
2122
-2127
-2128
2132
2133
2134
2208
-2209
-2210
2218
+2223
+2225
6151
6152
6176
@@ -93,4 +91,28 @@ V82
6315
43072
43122
+68288
+68293
+68307
+68311
+68312
+68317
+68318
+68321
+68331
+68335
+68480
+68481
+68482
+68483
+68486
+68489
+68490
+68492
+68493
+68494
+68496
+68497
+68525
+68527
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl
index b23ff310999..ec42c1cae02 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V68
+V100
1570
1574
1575
@@ -70,13 +70,45 @@ V68
2112
2113
2118
-2119
+2120
2121
2122
-2127
-2128
2132
2133
2218
2221
+2222
+2223
+2225
+2227
+68293
+68294
+68295
+68296
+68297
+68299
+68302
+68307
+68317
+68318
+68321
+68322
+68324
+68325
+68335
+68336
+68481
+68482
+68483
+68486
+68489
+68490
+68492
+68493
+68494
+68496
+68497
+68498
+68521
+68525
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl
index 287fc0d007d..31d89c90d13 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V464
+V534
173
174
768
@@ -64,8 +64,6 @@ V464
2137
2140
2276
-2303
-2304
2307
2362
2363
@@ -137,6 +135,8 @@ V464
3009
3021
3022
+3072
+3073
3134
3137
3142
@@ -147,6 +147,8 @@ V464
3159
3170
3172
+3201
+3202
3260
3261
3263
@@ -157,6 +159,8 @@ V464
3278
3298
3300
+3329
+3330
3393
3397
3405
@@ -275,6 +279,8 @@ V464
6781
6783
6784
+6832
+6847
6912
6916
6964
@@ -294,7 +300,7 @@ V464
7080
7082
7083
-7084
+7086
7142
7143
7144
@@ -317,8 +323,10 @@ V464
7406
7412
7413
+7416
+7418
7616
-7655
+7670
7676
7680
8203
@@ -375,6 +383,8 @@ V464
43450
43452
43453
+43493
+43494
43561
43567
43569
@@ -385,6 +395,8 @@ V464
43588
43596
43597
+43644
+43645
43696
43697
43698
@@ -410,13 +422,17 @@ V464
65024
65040
65056
-65063
+65070
65279
65280
65529
65532
66045
66046
+66272
+66273
+66422
+66427
68097
68100
68101
@@ -427,11 +443,13 @@ V464
68155
68159
68160
+68325
+68327
69633
69634
69688
69703
-69760
+69759
69762
69811
69815
@@ -445,10 +463,52 @@ V464
69932
69933
69941
+70003
+70004
70016
70018
70070
70079
+70191
+70194
+70196
+70197
+70198
+70200
+70367
+70368
+70371
+70379
+70401
+70402
+70460
+70461
+70464
+70465
+70502
+70509
+70512
+70517
+70835
+70841
+70842
+70843
+70847
+70849
+70850
+70852
+71090
+71094
+71100
+71102
+71103
+71105
+71219
+71227
+71229
+71230
+71231
+71233
71339
71340
71341
@@ -457,8 +517,16 @@ V464
71350
71351
71352
+92912
+92917
+92976
+92983
94095
94099
+113821
+113823
+113824
+113828
119143
119146
119155
@@ -469,6 +537,8 @@ V464
119214
119362
119365
+125136
+125143
917505
917506
917536
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl
index e29d33b9de9..bb59a0f654f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V485
+V569
0
173
174
@@ -75,12 +75,10 @@ V485
2137
2140
2208
-2209
-2210
2221
+2222
+2227
2276
-2303
-2304
2307
2362
2363
@@ -152,6 +150,8 @@ V485
3009
3021
3022
+3072
+3073
3134
3137
3142
@@ -162,6 +162,8 @@ V485
3159
3170
3172
+3201
+3202
3260
3261
3263
@@ -172,6 +174,8 @@ V485
3278
3298
3300
+3329
+3330
3393
3397
3405
@@ -294,6 +298,8 @@ V485
6781
6783
6784
+6832
+6847
6912
6916
6964
@@ -313,7 +319,7 @@ V485
7080
7082
7083
-7084
+7086
7142
7143
7144
@@ -336,8 +342,10 @@ V485
7406
7412
7413
+7416
+7418
7616
-7655
+7670
7676
7680
8203
@@ -396,6 +404,8 @@ V485
43450
43452
43453
+43493
+43494
43561
43567
43569
@@ -406,6 +416,8 @@ V485
43588
43596
43597
+43644
+43645
43696
43697
43698
@@ -431,13 +443,17 @@ V485
65024
65040
65056
-65063
+65070
65279
65280
65529
65532
66045
66046
+66272
+66273
+66422
+66427
68097
68100
68101
@@ -448,11 +464,27 @@ V485
68155
68159
68160
+68288
+68294
+68295
+68296
+68297
+68299
+68301
+68322
+68324
+68327
+68331
+68336
+68480
+68498
+68521
+68527
69633
69634
69688
69703
-69760
+69759
69762
69811
69815
@@ -466,10 +498,52 @@ V485
69932
69933
69941
+70003
+70004
70016
70018
70070
70079
+70191
+70194
+70196
+70197
+70198
+70200
+70367
+70368
+70371
+70379
+70401
+70402
+70460
+70461
+70464
+70465
+70502
+70509
+70512
+70517
+70835
+70841
+70842
+70843
+70847
+70849
+70850
+70852
+71090
+71094
+71100
+71102
+71103
+71105
+71219
+71227
+71229
+71230
+71231
+71233
71339
71340
71341
@@ -478,8 +552,16 @@ V485
71350
71351
71352
+92912
+92917
+92976
+92983
94095
94099
+113821
+113823
+113824
+113828
119143
119146
119155
@@ -490,6 +572,8 @@ V485
119214
119362
119365
+125136
+125143
917505
917506
917536
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/LOE/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/LOE/Y.pl
index 10b0e0cd897..d917b9fe3d8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/LOE/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/LOE/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl
index ff750e6fbaf..7eacddb4afa 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -222,7 +222,7 @@ V218
65533
65534
127232
-127243
+127245
127248
127278
127280
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl
index 463b4cdcdbc..f2056ff08b6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1192
+V1340
35
36
38
@@ -55,6 +55,8 @@ V1192
888
890
894
+895
+896
900
907
908
@@ -64,13 +66,15 @@ V1192
931
1155
1162
-1320
+1328
1329
1367
1369
1376
1377
1416
+1421
+1423
1472
1473
1475
@@ -78,8 +82,6 @@ V1192
1523
1525
1536
-1541
-1542
1545
1550
1552
@@ -130,9 +132,7 @@ V1192
2142
2143
2208
-2209
-2210
-2221
+2227
2308
2362
2365
@@ -142,9 +142,7 @@ V1192
2392
2402
2416
-2424
-2425
-2432
+2433
2437
2445
2447
@@ -264,8 +262,6 @@ V1192
3090
3113
3114
-3124
-3125
3130
3133
3134
@@ -410,7 +406,7 @@ V1192
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -442,7 +438,7 @@ V1192
6320
6390
6400
-6429
+6431
6464
6465
6624
@@ -630,6 +626,8 @@ V1192
8870
8895
8896
+8968
+8972
8978
8979
8986
@@ -637,6 +635,8 @@ V1192
9001
9003
9200
+9204
+9211
9216
9255
9280
@@ -717,7 +717,7 @@ V1192
10071
10072
10075
-10079
+10081
10082
10084
10088
@@ -732,9 +732,17 @@ V1192
10716
10748
10750
-11085
-11088
11093
+11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11264
11311
11312
@@ -785,6 +793,8 @@ V1192
11827
11829
11834
+11839
+11840
19904
19968
42192
@@ -800,7 +810,7 @@ V1192
42611
42612
42622
-42648
+42654
42656
42736
42738
@@ -808,10 +818,10 @@ V1192
42752
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43010
43011
43014
@@ -869,6 +879,10 @@ V1192
43815
43816
43823
+43824
+43872
+43876
+43878
43968
44003
64256
@@ -926,21 +940,25 @@ V1192
65799
65844
65847
-65931
+65933
65936
65948
+65952
+65953
66000
66045
66176
66205
66208
66257
+66273
+66300
66304
-66335
-66336
66340
66352
66379
+66384
+66422
66432
66462
66464
@@ -951,6 +969,18 @@ V1192
66518
66560
66718
+66816
+66856
+66864
+66916
+66927
+66928
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -964,7 +994,9 @@ V1192
67647
67670
67672
-67680
+67743
+67751
+67760
67840
67868
67872
@@ -988,7 +1020,11 @@ V1192
68184
68185
68192
-68224
+68256
+68288
+68325
+68331
+68336
68352
68406
68416
@@ -996,7 +1032,11 @@ V1192
68440
68467
68472
-68480
+68498
+68505
+68509
+68521
+68528
68608
68681
69216
@@ -1015,18 +1055,76 @@ V1192
69865
69891
69927
+69968
+70003
+70004
+70005
+70006
+70007
70019
70067
70081
70085
70087
70088
+70093
+70094
+70106
+70107
+70113
+70133
+70144
+70162
+70163
+70188
+70202
+70203
+70205
+70206
+70320
+70367
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70461
+70462
+70493
+70498
+70784
+70832
+70852
+70856
+71040
+71087
+71110
+71113
+71168
+71216
+71235
+71237
71296
71339
+71840
+71904
+71914
+71923
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78424
78430
@@ -1039,12 +1137,38 @@ V1192
78895
92160
92729
+92736
+92767
+92880
+92910
+92928
+92976
+92986
+92996
+92997
+92998
+93019
+93026
+93027
+93048
+93053
+93072
93952
94021
94032
94033
94099
94112
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113821
118784
119030
119040
@@ -1107,6 +1231,10 @@ V1192
120486
120488
120780
+124928
+125125
+125127
+125136
126464
126468
126469
@@ -1179,6 +1307,8 @@ V1192
127279
127338
127340
+127900
+127902
127925
127927
127932
@@ -1198,9 +1328,27 @@ V1192
128279
128293
128306
-128318
-128320
-128324
+128330
+128468
+128476
+128500
+128506
+128592
+128630
+128636
+128640
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl
index ba3fd0af575..bc068cadea9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V136
+V162
9
10
124
@@ -99,6 +99,10 @@ V136
11826
11827
11829
+11836
+11839
+11840
+11842
12288
12289
42238
@@ -133,6 +137,8 @@ V136
67872
68176
68184
+68336
+68342
68409
68416
69703
@@ -145,6 +151,26 @@ V136
70087
70088
70089
+70200
+70202
+70203
+70205
+71106
+71108
+71113
+71114
+71233
+71235
74864
-74868
+74869
+92782
+92784
+92917
+92918
+92983
+92986
+92996
+92997
+113823
+113824
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl
index f97d948b932..86861e5f8a9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V24
+V28
180
181
712
@@ -35,4 +35,8 @@ V24
8190
43124
43126
+70005
+70006
+71105
+71106
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl
index 1ca61aeccb9..ec1c7311a4c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl
index ad9fc6d331a..e568b8d472a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V158
+V162
125
126
3899
@@ -25,6 +25,10 @@ V158
8319
8334
8335
+8969
+8970
+8971
+8972
9002
9003
10089
@@ -111,8 +115,8 @@ V158
12316
12318
12320
+64830
64831
-64832
65041
65043
65048
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl
index 146007ec8a1..a934d872b4a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V380
+V430
0
9
14
@@ -72,8 +72,6 @@ V380
2137
2140
2276
-2303
-2304
2308
2362
2365
@@ -149,7 +147,7 @@ V380
3022
3031
3032
-3073
+3072
3076
3134
3141
@@ -161,7 +159,7 @@ V380
3159
3170
3172
-3202
+3201
3204
3260
3261
@@ -175,7 +173,7 @@ V380
3287
3298
3300
-3330
+3329
3332
3390
3397
@@ -243,6 +241,8 @@ V380
6684
6783
6784
+6832
+6847
6912
6917
6964
@@ -265,8 +265,10 @@ V380
7406
7410
7413
+7416
+7418
7616
-7655
+7670
7676
7680
8204
@@ -338,11 +340,15 @@ V380
65024
65040
65056
-65063
+65070
65529
65532
66045
66046
+66272
+66273
+66422
+66427
68097
68100
68101
@@ -353,11 +359,13 @@ V380
68155
68159
68160
+68325
+68327
69632
69635
69688
69703
-69760
+69759
69763
69808
69819
@@ -365,16 +373,56 @@ V380
69891
69927
69941
+70003
+70004
70016
70019
70067
70081
+70188
+70200
+70367
+70379
+70401
+70404
+70460
+70461
+70462
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70498
+70500
+70502
+70509
+70512
+70517
+70832
+70852
+71087
+71094
+71096
+71105
+71216
+71233
71339
71352
+92912
+92917
+92976
+92983
94033
94079
94095
94099
+113821
+113823
+113824
+113828
119141
119146
119149
@@ -385,6 +433,8 @@ V380
119214
119362
119365
+125136
+125143
917505
917506
917536
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl
index 6b6b367ff29..d7af7e1e06c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V44
+V46
33
34
63
@@ -55,4 +55,6 @@ V44
65282
65311
65312
+71108
+71110
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl
index c30b16877f0..aee2b5f0637 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl
index 3a586d49ed7..6b4f1537405 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -50,8 +50,6 @@ V250
9975
9979
9981
-9984
-9985
9989
9992
9998
@@ -196,11 +194,11 @@ V250
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127488
127491
127504
@@ -210,28 +208,20 @@ V250
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
+127900
+127902
127925
127927
127932
127933
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
128160
128161
128162
@@ -242,21 +232,31 @@ V250
128176
128177
128179
-128248
-128249
-128253
+128255
128263
128279
128293
128306
+128330
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128468
+128476
+128500
+128506
+128579
128581
128592
128640
-128710
+128720
+128736
+128749
+128752
+128756
131072
196606
196608
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl
index 006e6ef63b3..3164e71711d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl
index 924ff185df0..fc7d691023f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V30
+V32
6102
6103
8252
@@ -41,4 +41,6 @@ V30
65382
65438
65440
+128633
+128636
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl
index 88ce1285dd6..18e8788c9e9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V158
+V164
40
41
91
@@ -37,6 +37,10 @@ V158
8318
8333
8334
+8968
+8969
+8970
+8971
9001
9002
10088
@@ -103,6 +107,8 @@ V158
11815
11816
11817
+11842
+11843
12296
12297
12298
@@ -123,8 +129,8 @@ V158
12315
12317
12318
-64830
64831
+64832
65047
65048
65077
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl
index e7678c9b1b6..d0ebb84a65f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V36
+V38
37
38
162
@@ -33,6 +33,8 @@ V36
8360
8374
8375
+8379
+8380
8451
8452
8457
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl
index 34fbd68b919..cb1910a3b9c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V40
+V42
36
37
43
@@ -38,6 +38,8 @@ V40
8360
8374
8375
+8379
+8380
8400
8470
8471
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl
index 3833214441e..17298827655 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V24
+V26
34
35
39
@@ -28,11 +28,13 @@ V24
8249
8251
10075
-10079
+10081
11776
11790
11804
11806
11808
11810
+128630
+128633
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl
index 8a5471b2b0c..38a81679082 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V74
+V76
3585
3643
3648
@@ -79,9 +79,11 @@ V74
6781
6816
6830
+43488
+43504
+43514
+43519
43616
-43644
-43648
43715
43739
43744
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl
index d3749fc0123..550e8320f85 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,10 +10,10 @@
return <<'END';
-V1061
+V1183
888
890
-895
+896
900
907
908
@@ -21,7 +21,7 @@ V1061
910
930
931
-1320
+1328
1329
1367
1369
@@ -30,7 +30,7 @@ V1061
1416
1417
1419
-1423
+1421
1424
1425
1480
@@ -39,8 +39,6 @@ V1061
1520
1525
1536
-1541
-1542
1565
1566
1806
@@ -59,16 +57,8 @@ V1061
2142
2143
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -214,7 +204,7 @@ V1061
3032
3046
3067
-3073
+3072
3076
3077
3085
@@ -223,8 +213,6 @@ V1061
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -242,7 +230,7 @@ V1061
3184
3192
3200
-3202
+3201
3204
3205
3213
@@ -270,7 +258,7 @@ V1061
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -312,6 +300,8 @@ V1061
3543
3544
3552
+3558
+3568
3570
3573
3585
@@ -413,7 +403,7 @@ V1061
5120
5789
5792
-5873
+5881
5888
5901
5902
@@ -445,7 +435,7 @@ V1061
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -474,6 +464,8 @@ V1061
6810
6816
6830
+6832
+6847
6912
6988
6992
@@ -490,8 +482,10 @@ V1061
7368
7376
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -537,17 +531,21 @@ V1061
8448
8586
8592
-9204
+9211
9216
9255
9280
9291
9312
-9984
-9985
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11264
11311
11312
@@ -583,7 +581,7 @@ V1061
11736
11743
11744
-11836
+11843
11904
11930
11931
@@ -617,16 +615,16 @@ V1061
42192
42540
42560
-42648
+42654
42655
42744
42752
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43052
43056
43066
@@ -647,7 +645,7 @@ V1061
43471
43482
43486
-43488
+43519
43520
43575
43584
@@ -655,8 +653,6 @@ V1061
43600
43610
43612
-43644
-43648
43715
43739
43767
@@ -670,6 +666,10 @@ V1061
43815
43816
43823
+43824
+43872
+43876
+43878
43968
44014
44016
@@ -709,7 +709,7 @@ V1061
65024
65050
65056
-65063
+65070
65072
65107
65108
@@ -757,21 +757,25 @@ V1061
65799
65844
65847
-65931
+65933
65936
65948
+65952
+65953
66000
66046
66176
66205
66208
66257
+66272
+66300
66304
-66335
-66336
66340
66352
66379
+66384
+66427
66432
66462
66463
@@ -782,6 +786,18 @@ V1061
66718
66720
66730
+66816
+66856
+66864
+66916
+66927
+66928
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -795,7 +811,9 @@ V1061
67647
67670
67671
-67680
+67743
+67751
+67760
67840
67868
67871
@@ -823,7 +841,11 @@ V1061
68176
68185
68192
-68224
+68256
+68288
+68327
+68331
+68343
68352
68406
68409
@@ -831,7 +853,11 @@ V1061
68440
68467
68472
-68480
+68498
+68505
+68509
+68521
+68528
68608
68681
69216
@@ -840,7 +866,7 @@ V1061
69710
69714
69744
-69760
+69759
69826
69840
69865
@@ -850,24 +876,104 @@ V1061
69941
69942
69956
+69968
+70007
70016
70089
+70093
+70094
70096
-70106
+70107
+70113
+70133
+70144
+70162
+70163
+70206
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71114
+71168
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71923
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
74864
-74868
+74869
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92782
+92784
+92880
+92910
+92912
+92918
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -876,6 +982,16 @@ V1061
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
118784
119030
119040
@@ -930,6 +1046,10 @@ V1061
120780
120782
120832
+124928
+125125
+125127
+125143
126464
126468
126469
@@ -1005,13 +1125,13 @@ V1061
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127232
-127243
+127245
127248
127279
127280
@@ -1027,41 +1147,43 @@ V1061
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
131072
196606
196608
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl
index 94ecc48c4b0..c21abbc4c88 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1236
+V1266
97
123
170
@@ -551,6 +551,14 @@ V1236
1318
1319
1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
+1328
1377
1416
7424
@@ -1073,6 +1081,10 @@ V1236
42646
42647
42648
+42649
+42650
+42651
+42654
42787
42788
42789
@@ -1170,7 +1182,17 @@ V1236
42897
42898
42899
-42900
+42902
+42903
+42904
+42905
+42906
+42907
+42908
+42909
+42910
+42911
+42912
42913
42914
42915
@@ -1183,6 +1205,12 @@ V1236
42922
43000
43003
+43824
+43867
+43868
+43872
+43876
+43878
64256
64263
64275
@@ -1191,6 +1219,8 @@ V1236
65371
66600
66640
+71872
+71904
119834
119860
119886
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl
index 7531f55f0c8..b40bda35846 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NChar/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NChar/Y.pl
index a91676d1298..aa0ad07c8bc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NChar/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NChar/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl
index fc9604b60c1..a63db7eb11e 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V70
+V82
768
773
774
@@ -81,4 +81,16 @@ V70
69819
69927
69928
+70462
+70463
+70487
+70488
+70832
+70833
+70842
+70843
+70845
+70846
+71087
+71088
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl
index e2013e6d1bf..b9078c0d486 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V211
+V223
0
768
773
@@ -216,6 +216,18 @@ V211
69819
69927
69928
+70462
+70463
+70487
+70488
+70832
+70833
+70842
+70843
+70845
+70846
+71087
+71088
119134
119141
119227
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl
index 0556aa3cc98..af1b26bb63a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V454
+V462
192
198
199
@@ -459,6 +459,14 @@ V454
69804
69934
69936
+70475
+70477
+70843
+70845
+70846
+70847
+71098
+71100
119134
119141
119227
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl
index cb6e4753cd7..c68ffb131c1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V455
+V463
0
192
198
@@ -460,6 +460,14 @@ V455
69804
69934
69936
+70475
+70477
+70843
+70845
+70846
+70847
+71098
+71100
119134
119141
119227
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl
index 1d0d4a020bb..65ca2700a8d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V494
+V498
160
161
168
@@ -295,10 +295,14 @@ V494
13055
13056
13312
+42652
+42654
42864
42865
43000
43002
+43868
+43872
63744
64014
64016
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl
index edea96d53d1..d277b6c801e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V557
+V573
0
160
161
@@ -354,10 +354,14 @@ V557
13055
13056
13312
+42652
+42654
42864
42865
43000
43002
+43868
+43872
63744
64014
64016
@@ -436,6 +440,18 @@ V557
69819
69927
69928
+70462
+70463
+70487
+70488
+70832
+70833
+70842
+70843
+70845
+70846
+71087
+71088
119134
119141
119227
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl
index 05030d8b60b..afe424ee616 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V768
+V780
160
161
168
@@ -559,10 +559,14 @@ V768
13055
13056
13312
+42652
+42654
42864
42865
43000
43002
+43868
+43872
44032
55204
63744
@@ -647,6 +651,14 @@ V768
69804
69934
69936
+70475
+70477
+70843
+70845
+70846
+70847
+71098
+71100
119134
119141
119227
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl
index d5d0f24be9f..c6f71914103 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V769
+V781
0
160
161
@@ -560,10 +560,14 @@ V769
13055
13056
13312
+42652
+42654
42864
42865
43000
43002
+43868
+43872
44032
55204
63744
@@ -648,6 +652,14 @@ V769
69804
69934
69936
+70475
+70477
+70843
+70845
+70846
+70847
+71098
+71100
119134
119141
119227
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl
index fa6b8106cbb..a8f2b18c9cf 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl
index 92b3e0e4d3e..cc233cb6bf4 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V321
+V355
0
48
58
@@ -50,6 +50,8 @@ V321
3312
3430
3446
+3558
+3568
3664
3674
3792
@@ -232,6 +234,8 @@ V321
43274
43472
43482
+43504
+43514
43600
43610
44016
@@ -257,7 +261,9 @@ V321
65856
65913
65930
-65931
+65932
+66273
+66300
66336
66340
66369
@@ -270,16 +276,26 @@ V321
66730
67672
67680
+67705
+67712
+67751
+67760
67862
67868
68160
68168
68221
68223
+68253
+68256
+68331
+68336
68440
68448
68472
68480
+68521
+68528
69216
69247
69714
@@ -290,16 +306,34 @@ V321
69952
70096
70106
+70113
+70133
+70384
+70394
+70864
+70874
+71248
+71258
71360
71370
+71904
+71923
74752
-74851
+74863
+92768
+92778
+93008
+93018
+93019
+93026
119648
119666
120782
120832
+125127
+125136
127232
-127243
+127245
131073
131074
131172
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl
index 22c410608b9..5261f367086 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V242
+V264
188
191
2548
@@ -192,7 +192,9 @@ V242
65856
65913
65930
-65931
+65932
+66273
+66300
66336
66340
66369
@@ -203,24 +205,44 @@ V242
66518
67672
67680
+67705
+67712
+67751
+67760
67862
67868
68164
68168
68221
68223
+68253
+68256
+68331
+68336
68440
68448
68472
68480
+68521
+68528
69225
69247
69723
69734
+70113
+70133
+71914
+71923
74752
-74851
+74863
+93019
+93026
119648
119666
+125127
+125136
+127243
+127245
131073
131074
131172
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl
index 9535c86bf68..8accf564fa8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V118
+V136
48
49
1632
@@ -39,6 +39,8 @@ V118
3303
3430
3431
+3558
+3559
3664
3665
3792
@@ -95,6 +97,8 @@ V118
43265
43472
43473
+43504
+43505
43600
43601
44016
@@ -115,8 +119,20 @@ V118
69943
70096
70097
+70384
+70385
+70864
+70865
+71248
+71249
71360
71361
+71904
+71905
+92768
+92769
+93008
+93009
120782
120783
120792
@@ -129,4 +145,6 @@ V118
120823
127232
127234
+127243
+127245
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl
index 633587251dc..9e4dd5bc624 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V188
+V220
49
50
185
@@ -43,6 +43,8 @@ V188
3304
3431
3432
+3559
+3560
3665
3666
3793
@@ -127,6 +129,8 @@ V188
43266
43473
43474
+43505
+43506
43601
43602
44017
@@ -139,6 +143,8 @@ V188
65859
65880
65883
+66273
+66274
66336
66337
66513
@@ -147,16 +153,26 @@ V188
66722
67672
67673
+67705
+67706
+67751
+67752
67862
67863
68160
68161
68221
68222
+68253
+68254
+68331
+68332
68440
68441
68472
68473
+68521
+68522
69216
69217
69714
@@ -169,8 +185,18 @@ V188
69944
70097
70098
+70113
+70114
+70385
+70386
+70865
+70866
+71249
+71250
71361
71362
+71905
+71906
74773
74774
74782
@@ -183,6 +209,10 @@ V188
74832
74840
74841
+92769
+92770
+93009
+93010
119648
119649
120783
@@ -195,6 +225,8 @@ V188
120814
120823
120824
+125127
+125128
127234
127235
133418
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl
index e71f5a0115b..442836f7e18 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V72
+V90
3056
3057
3440
@@ -63,24 +63,42 @@ V72
65880
65888
65893
+66282
+66283
66338
66339
66515
66516
67675
67676
+67710
+67711
+67757
+67758
67863
67864
68164
68165
+68254
+68255
+68333
+68334
68444
68445
68476
68477
+68525
+68526
69225
69226
69723
69724
+70122
+70123
+71914
+71915
+93019
+93020
119657
119658
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl
index 53c20ddd401..57035a2fb1a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V40
+V52
3057
3058
3441
@@ -35,20 +35,32 @@ V40
65875
65898
65899
+66291
+66292
66517
66518
67677
67678
+67759
+67760
67865
67866
68166
68167
+68335
+68336
68446
68447
68478
68479
+68527
+68528
69234
69235
69732
69733
+70131
+70132
+93020
+93021
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl
index 6b37bb86532..fbfa4937469 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V32
+V34
3058
3059
3442
@@ -43,4 +43,6 @@ V32
68480
69733
69734
+70132
+70133
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl
index 5186ca8098b..c697dae869f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V14
+V16
4988
4989
8578
@@ -25,4 +25,6 @@ V14
65878
67679
67680
+93021
+93022
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl
index e0b616528b0..daf58b85dab 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl
index e996fb37f20..ac7d8844ad1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl
index 00f520901c6..cf321d6437c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl
index 9cdb65a2ac9..16287b652ed 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl
index 4aec86caa2a..e5a3dc88e63 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl
index 29b05908142..d9725788cfa 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl
index 3bb1e79aca9..fe4be02a9e3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl
index 91d1cc4f2fd..c36fb2eeea6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl
index cab0b28571d..74f6d4c374f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl
index 442973ee409..b2e1eaad741 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V18
+V20
189
190
2931
@@ -29,4 +29,6 @@ V18
65911
69243
69244
+74852
+74853
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl
index a19e7bfc10c..25cfbb0494a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V8
+V10
8531
8532
69245
@@ -19,4 +19,6 @@ V8
74843
74845
74846
+74853
+74854
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl
index 0db79afc222..4bb36216c06 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V18
+V20
188
189
2551
@@ -23,10 +23,12 @@ V18
43057
65856
65857
+65931
+65932
69244
69245
74848
74849
74850
-74851
+74852
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl
index 79c369814bd..91a0b184681 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl
index 65f9df4400c..6a4ad8f7720 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V196
+V224
50
51
178
@@ -43,6 +43,8 @@ V196
3305
3432
3433
+3560
+3561
3666
3667
3794
@@ -131,6 +133,8 @@ V196
43267
43474
43475
+43506
+43507
43602
43603
44018
@@ -143,12 +147,18 @@ V196
65801
65883
65887
+66274
+66275
66514
66515
66722
66723
67673
67674
+67706
+67707
+67752
+67753
67866
67867
68161
@@ -157,6 +167,8 @@ V196
68442
68473
68474
+68522
+68523
69217
69218
69715
@@ -169,8 +181,18 @@ V196
69945
70098
70099
+70114
+70115
+70386
+70387
+70866
+70867
+71250
+71251
71362
71363
+71906
+71907
74752
74753
74774
@@ -191,6 +213,10 @@ V196
74839
74841
74842
+92770
+92771
+93010
+93011
119649
119650
120784
@@ -203,6 +229,8 @@ V196
120815
120824
120825
+125128
+125129
127235
127236
140176
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl
index 07957177973..b85850c6caa 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V38
+V54
4979
4980
9331
@@ -31,22 +31,38 @@ V38
24320
65809
65810
+66283
+66284
66516
66517
67676
67677
+67711
+67712
+67758
+67759
67864
67865
68165
68166
+68255
+68256
+68334
+68335
68445
68446
68477
68478
+68526
+68527
69226
69227
69724
69725
+70123
+70124
+71915
+71916
119658
119659
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl
index 7343ed7cd54..c092733780d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V10
+V12
8532
8533
65911
@@ -21,4 +21,6 @@ V10
74844
74846
74847
+74854
+74855
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl
index 89c86b46c9b..f4821292656 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V192
+V220
51
52
179
@@ -43,6 +43,8 @@ V192
3306
3433
3434
+3561
+3562
3667
3668
3795
@@ -123,6 +125,8 @@ V192
43268
43475
43476
+43507
+43508
43603
43604
44019
@@ -133,10 +137,16 @@ V192
65300
65801
65802
+66275
+66276
66723
66724
67674
67675
+67707
+67708
+67753
+67754
67867
67868
68162
@@ -145,6 +155,8 @@ V192
68443
68474
68475
+68523
+68524
69218
69219
69716
@@ -157,8 +169,18 @@ V192
69946
70099
70100
+70115
+70116
+70387
+70388
+70867
+70868
+71251
+71252
71363
71364
+71907
+71908
74753
74754
74760
@@ -181,6 +203,10 @@ V192
74834
74839
74840
+92771
+92772
+93011
+93012
119650
119651
120785
@@ -193,6 +219,8 @@ V192
120816
120825
120826
+125129
+125130
127236
127237
133885
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl
index 466efd9dad7..51fed239092 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V22
+V28
4980
4981
12346
@@ -25,10 +25,16 @@ V22
65811
65893
65894
+66284
+66285
69227
69228
69725
69726
+70124
+70125
+71916
+71917
119659
119660
133507
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_XRegula.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl
index 83f64a02e63..83c59d0c244 100755..100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_XRegula.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl
@@ -1,63 +1,22 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
-
-# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
-# This file is for internal use by core Perl only. The format and even the
-# name or existence of this file are subject to change without notice. Don't
-# use it directly. Use Unicode::UCD to access the Unicode character data
-# base.
-
-
-return <<'END';
-V49
-32
-127
-160
-173
-174
-1536
-1541
-1564
-1565
-1757
-1758
-1807
-1808
-4352
-4608
-6158
-6159
-8203
-8204
-8206
-8208
-8232
-8239
-8288
-8304
-43360
-43389
-44032
-55204
-55216
-55239
-55243
-55292
-55296
-57344
-65279
-65280
-65520
-65532
-69821
-69822
-119155
-119163
-127462
-127488
-917504
-917760
-918000
-921600
-END
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+65819
+65820
+65899
+65900
+66293
+66294
+69236
+69237
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl
index 4e9d1ac7b29..d25f3f10c01 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl
index 1ffa8316d24..ab8a721e5ed 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V178
+V208
52
53
1636
@@ -37,6 +37,8 @@ V178
3307
3434
3435
+3562
+3563
3668
3669
3796
@@ -117,6 +119,8 @@ V178
43269
43476
43477
+43508
+43509
43604
43605
44020
@@ -125,14 +129,22 @@ V178
65301
65802
65803
+66276
+66277
66724
66725
+67708
+67709
+67754
+67756
68163
68164
68443
68444
68475
68476
+68524
+68525
69219
69220
69717
@@ -145,8 +157,18 @@ V178
69947
70100
70101
+70116
+70117
+70388
+70389
+70868
+70869
+71252
+71253
71364
71365
+71908
+71909
74754
74755
74761
@@ -169,6 +191,12 @@ V178
74829
74834
74836
+74857
+74858
+92772
+92773
+93012
+93013
119651
119652
120786
@@ -181,6 +209,8 @@ V178
120817
120826
120827
+125130
+125131
127237
127238
131172
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl
index c0f990c487c..c318a9d2c89 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V20
+V28
4981
4982
12875
@@ -21,10 +21,18 @@ V20
21325
65811
65812
+66285
+66286
69228
69229
69726
69727
+70125
+70126
+71917
+71918
+74855
+74856
119660
119661
133516
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl
index 31e19e63aad..77ba8156caa 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V178
+V208
53
54
1637
@@ -37,6 +37,8 @@ V178
3308
3435
3436
+3563
+3564
3669
3670
3797
@@ -117,6 +119,8 @@ V178
43270
43477
43478
+43509
+43510
43605
43606
44021
@@ -135,10 +139,18 @@ V178
65888
65907
65908
+66277
+66278
66337
66338
66725
66726
+67709
+67710
+67756
+67757
+68332
+68333
69220
69221
69718
@@ -151,8 +163,18 @@ V178
69948
70101
70102
+70117
+70118
+70389
+70390
+70869
+70870
+71253
+71254
71365
71366
+71909
+71910
74755
74756
74762
@@ -173,6 +195,12 @@ V178
74830
74836
74838
+74858
+74859
+92773
+92774
+93013
+93014
119652
119653
120787
@@ -185,6 +213,8 @@ V178
120818
120827
120828
+125131
+125132
127238
127239
131361
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl
index d75c958e53f..a711564e724 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V34
+V42
4982
4983
8556
@@ -35,6 +35,8 @@ V34
65898
65908
65909
+66286
+66287
66339
66340
68222
@@ -43,6 +45,12 @@ V34
69230
69727
69728
+70126
+70127
+71918
+71919
+74856
+74857
119661
119662
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl
index 54a28fbfef2..ed5ce1237fd 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V16
+V18
8558
8559
8574
@@ -25,6 +25,8 @@ V16
65876
65900
65905
+66295
+66296
69238
69239
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl
index 9698e4f6bee..035fcdad047 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl
index 788944db760..951c475f9a0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl
index 4c525ec18e6..c324f6c11f0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V164
+V188
54
55
1638
@@ -37,6 +37,8 @@ V164
3309
3436
3437
+3564
+3565
3670
3671
3798
@@ -117,6 +119,8 @@ V164
43271
43478
43479
+43510
+43511
43606
43607
44022
@@ -129,6 +133,8 @@ V164
65303
65804
65805
+66278
+66279
66726
66727
69221
@@ -143,8 +149,18 @@ V164
69949
70102
70103
+70118
+70119
+70390
+70391
+70870
+70871
+71254
+71255
71366
71367
+71910
+71911
74756
74757
74763
@@ -159,6 +175,12 @@ V164
74817
74830
74831
+74859
+74860
+92774
+92775
+93014
+93015
119653
119654
120788
@@ -171,6 +193,8 @@ V164
120819
120828
120829
+125132
+125133
127239
127240
133866
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl
index b6c9356e6d6..ed8ce77444d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,17 +10,23 @@
return <<'END';
-V12
+V18
4983
4984
12877
12878
65813
65814
+66287
+66288
69230
69231
69728
69729
+70127
+70128
+71919
+71920
119662
119663
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl
index 093dee053b3..9ce1a116f18 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V158
+V182
55
56
1639
@@ -37,6 +37,8 @@ V158
3310
3437
3438
+3565
+3566
3671
3672
3799
@@ -117,6 +119,8 @@ V158
43272
43479
43480
+43511
+43512
43607
43608
44023
@@ -125,6 +129,8 @@ V158
65304
65805
65806
+66279
+66280
66727
66728
69222
@@ -139,8 +145,18 @@ V158
69950
70103
70104
+70119
+70120
+70391
+70392
+70871
+70872
+71255
+71256
71367
71368
+71911
+71912
74757
74758
74764
@@ -153,6 +169,12 @@ V158
74794
74817
74820
+74860
+74861
+92775
+92776
+93015
+93016
119654
119655
120789
@@ -165,6 +187,8 @@ V158
120820
120829
120830
+125133
+125134
127240
127241
131073
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl
index d200e934d64..06fbe2f301e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,17 +10,23 @@
return <<'END';
-V12
+V18
4984
4985
12878
12879
65814
65815
+66288
+66289
69231
69232
69729
69730
+70128
+70129
+71920
+71921
119663
119664
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl
index ada3bfb6174..48a23808f70 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V152
+V176
56
57
1640
@@ -37,6 +37,8 @@ V152
3311
3438
3439
+3566
+3567
3672
3673
3800
@@ -113,6 +115,8 @@ V152
43273
43480
43481
+43512
+43513
43608
43609
44024
@@ -121,6 +125,8 @@ V152
65305
65806
65807
+66280
+66281
66728
66729
69223
@@ -135,8 +141,18 @@ V152
69951
70104
70105
+70120
+70121
+70392
+70393
+70872
+70873
+71256
+71257
71368
71369
+71912
+71913
74758
74759
74765
@@ -149,6 +165,12 @@ V152
74795
74820
74822
+74861
+74862
+92776
+92777
+93016
+93017
119655
119656
120790
@@ -161,6 +183,8 @@ V152
120821
120830
120831
+125134
+125135
127241
127242
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl
index 75c7425272b..8fb59a8a041 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,17 +10,23 @@
return <<'END';
-V12
+V18
4985
4986
12879
12880
65815
65816
+66289
+66290
69232
69233
69730
69731
+70129
+70130
+71921
+71922
119664
119665
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl
index e9917cba274..040b0a9d5c7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V156
+V180
57
58
1641
@@ -37,6 +37,8 @@ V156
3312
3439
3440
+3567
+3568
3673
3674
3801
@@ -115,6 +117,8 @@ V156
43274
43481
43482
+43513
+43514
43609
43610
44025
@@ -123,6 +127,8 @@ V156
65306
65807
65808
+66281
+66282
66729
66730
69224
@@ -137,8 +143,18 @@ V156
69952
70105
70106
+70121
+70122
+70393
+70394
+70873
+70874
+71257
+71258
71369
71370
+71913
+71914
74759
74760
74766
@@ -151,6 +167,12 @@ V156
74796
74822
74826
+74862
+74863
+92777
+92778
+93017
+93018
119656
119657
120791
@@ -163,6 +185,8 @@ V156
120822
120831
120832
+125135
+125136
127242
127243
194704
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl
index 5dbc9159279..c207010d8b2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,17 +10,23 @@
return <<'END';
-V12
+V18
4986
4987
65816
65817
+66290
+66291
66369
66370
69233
69234
69731
69732
+70130
+70131
+71922
+71923
119665
119666
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl
new file mode 100644
index 00000000000..f21e5513b4d
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+65825
+65826
+66299
+66300
+66378
+66379
+69242
+69243
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl
index 398195d2c0b..a237411eee6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/PatWS/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/PatWS/Y.pl
index 6941d456a04..23a048fc3af 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/PatWS/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/PatWS/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl
index 6fd55fac70b..21f268b2e33 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1132
+V1260
48
58
65
@@ -45,6 +45,8 @@ V1132
888
890
894
+895
+896
902
903
904
@@ -58,7 +60,7 @@ V1132
1015
1154
1162
-1320
+1328
1329
1367
1369
@@ -112,14 +114,10 @@ V1132
2112
2137
2208
-2209
-2210
-2221
+2227
2276
2282
2288
-2303
-2304
2364
2365
2381
@@ -130,10 +128,6 @@ V1132
2406
2416
2417
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -281,7 +275,7 @@ V1132
3032
3046
3056
-3073
+3072
3076
3077
3085
@@ -290,8 +284,6 @@ V1132
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -307,7 +299,7 @@ V1132
3172
3174
3184
-3202
+3201
3204
3205
3213
@@ -335,7 +327,7 @@ V1132
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -377,6 +369,8 @@ V1132
3543
3544
3552
+3558
+3568
3570
3572
3585
@@ -510,7 +504,7 @@ V1132
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -544,7 +538,7 @@ V1132
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -599,6 +593,8 @@ V1132
7415
7424
7616
+7655
+7669
7680
7958
7960
@@ -756,7 +752,7 @@ V1132
42612
42620
42623
-42648
+42654
42655
42736
42775
@@ -766,10 +762,10 @@ V1132
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43010
43011
43014
@@ -799,6 +795,10 @@ V1132
43456
43471
43482
+43488
+43493
+43494
+43519
43520
43575
43584
@@ -809,7 +809,7 @@ V1132
43639
43642
43643
-43648
+43646
43711
43712
43713
@@ -831,6 +831,12 @@ V1132
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44011
44016
@@ -912,9 +918,11 @@ V1132
66208
66257
66304
-66335
+66336
66352
66379
+66384
+66427
66432
66462
66464
@@ -927,6 +935,16 @@ V1132
66718
66720
66730
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -939,6 +957,10 @@ V1132
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -959,12 +981,20 @@ V1132
68148
68192
68221
+68224
+68253
+68288
+68296
+68297
+68325
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69632
@@ -981,24 +1011,104 @@ V1132
69939
69942
69952
+69968
+70003
+70006
+70007
70016
70080
70081
70085
70096
-70106
+70107
+70144
+70162
+70163
+70197
+70199
+70200
+70320
+70377
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70461
+70469
+70471
+70473
+70475
+70477
+70487
+70488
+70493
+70500
+70784
+70850
+70852
+70854
+70855
+70856
+70864
+70874
+71040
+71094
+71096
+71103
+71168
+71231
+71232
+71233
+71236
+71237
+71248
+71258
71296
71350
71360
71370
+71840
+71914
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92880
+92910
+92928
+92983
+92992
+92996
+93008
+93018
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -1007,6 +1117,16 @@ V1132
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113822
+113823
119808
119893
119894
@@ -1069,6 +1189,8 @@ V1132
120780
120782
120832
+124928
+125125
126464
126468
126469
@@ -1135,6 +1257,12 @@ V1132
126634
126635
126652
+127280
+127306
+127312
+127338
+127344
+127370
131072
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl
index 1992fa6929e..eabd7189f01 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,11 +10,11 @@
return <<'END';
-V1078
+V1200
0
888
890
-895
+896
900
907
908
@@ -22,7 +22,7 @@ V1078
910
930
931
-1320
+1328
1329
1367
1369
@@ -31,7 +31,7 @@ V1078
1416
1417
1419
-1423
+1421
1424
1425
1480
@@ -40,8 +40,6 @@ V1078
1520
1525
1536
-1541
-1542
1565
1566
1806
@@ -60,16 +58,8 @@ V1078
2142
2143
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -215,7 +205,7 @@ V1078
3032
3046
3067
-3073
+3072
3076
3077
3085
@@ -224,8 +214,6 @@ V1078
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -243,7 +231,7 @@ V1078
3184
3192
3200
-3202
+3201
3204
3205
3213
@@ -271,7 +259,7 @@ V1078
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -313,6 +301,8 @@ V1078
3543
3544
3552
+3558
+3568
3570
3573
3585
@@ -414,7 +404,7 @@ V1078
5120
5789
5792
-5873
+5881
5888
5901
5902
@@ -446,7 +436,7 @@ V1078
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -475,6 +465,8 @@ V1078
6810
6816
6830
+6832
+6847
6912
6988
6992
@@ -491,8 +483,10 @@ V1078
7368
7376
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -534,23 +528,27 @@ V1078
8336
8349
8352
-8379
+8382
8400
8433
8448
8586
8592
-9204
+9211
9216
9255
9280
9291
9312
-9984
-9985
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11264
11311
11312
@@ -586,7 +584,7 @@ V1078
11736
11743
11744
-11836
+11843
11904
11930
11931
@@ -624,16 +622,16 @@ V1078
42192
42540
42560
-42648
+42654
42655
42744
42752
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43052
43056
43066
@@ -654,7 +652,7 @@ V1078
43471
43482
43486
-43488
+43519
43520
43575
43584
@@ -662,8 +660,6 @@ V1078
43600
43610
43612
-43644
-43648
43715
43739
43767
@@ -677,6 +673,10 @@ V1078
43815
43816
43823
+43824
+43872
+43876
+43878
43968
44014
44016
@@ -718,7 +718,7 @@ V1078
65024
65050
65056
-65063
+65070
65072
65107
65108
@@ -766,21 +766,25 @@ V1078
65799
65844
65847
-65931
+65933
65936
65948
+65952
+65953
66000
66046
66176
66205
66208
66257
+66272
+66300
66304
-66335
-66336
66340
66352
66379
+66384
+66427
66432
66462
66463
@@ -791,6 +795,18 @@ V1078
66718
66720
66730
+66816
+66856
+66864
+66916
+66927
+66928
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -804,7 +820,9 @@ V1078
67647
67670
67671
-67680
+67743
+67751
+67760
67840
67868
67871
@@ -832,7 +850,11 @@ V1078
68176
68185
68192
-68224
+68256
+68288
+68327
+68331
+68343
68352
68406
68409
@@ -840,7 +862,11 @@ V1078
68440
68467
68472
-68480
+68498
+68505
+68509
+68521
+68528
68608
68681
69216
@@ -849,7 +875,7 @@ V1078
69710
69714
69744
-69760
+69759
69826
69840
69865
@@ -859,24 +885,104 @@ V1078
69941
69942
69956
+69968
+70007
70016
70089
+70093
+70094
70096
-70106
+70107
+70113
+70133
+70144
+70162
+70163
+70206
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71114
+71168
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71923
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
74864
-74868
+74869
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92782
+92784
+92880
+92910
+92912
+92918
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -885,6 +991,16 @@ V1078
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
118784
119030
119040
@@ -939,6 +1055,10 @@ V1078
120780
120782
120832
+124928
+125125
+125127
+125143
126464
126468
126469
@@ -1014,13 +1134,13 @@ V1078
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127232
-127243
+127245
127248
127279
127280
@@ -1036,41 +1156,43 @@ V1078
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
131072
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl
index 5f211ecb0fe..1094a12b3a4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl
index d02fe40a0fd..2c1dabb0781 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,13 +10,13 @@
return <<'END';
-V1088
+V1210
33
127
161
888
890
-895
+896
900
907
908
@@ -24,7 +24,7 @@ V1088
910
930
931
-1320
+1328
1329
1367
1369
@@ -33,7 +33,7 @@ V1088
1416
1417
1419
-1423
+1421
1424
1425
1480
@@ -42,8 +42,6 @@ V1088
1520
1525
1536
-1541
-1542
1565
1566
1806
@@ -62,16 +60,8 @@ V1088
2142
2143
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -217,7 +207,7 @@ V1088
3032
3046
3067
-3073
+3072
3076
3077
3085
@@ -226,8 +216,6 @@ V1088
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -245,7 +233,7 @@ V1088
3184
3192
3200
-3202
+3201
3204
3205
3213
@@ -273,7 +261,7 @@ V1088
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -315,6 +303,8 @@ V1088
3543
3544
3552
+3558
+3568
3570
3573
3585
@@ -418,7 +408,7 @@ V1088
5761
5789
5792
-5873
+5881
5888
5901
5902
@@ -450,7 +440,7 @@ V1088
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -479,6 +469,8 @@ V1088
6810
6816
6830
+6832
+6847
6912
6988
6992
@@ -495,8 +487,10 @@ V1088
7368
7376
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -544,23 +538,27 @@ V1088
8336
8349
8352
-8379
+8382
8400
8433
8448
8586
8592
-9204
+9211
9216
9255
9280
9291
9312
-9984
-9985
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11264
11311
11312
@@ -596,7 +594,7 @@ V1088
11736
11743
11744
-11836
+11843
11904
11930
11931
@@ -634,16 +632,16 @@ V1088
42192
42540
42560
-42648
+42654
42655
42744
42752
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43052
43056
43066
@@ -664,7 +662,7 @@ V1088
43471
43482
43486
-43488
+43519
43520
43575
43584
@@ -672,8 +670,6 @@ V1088
43600
43610
43612
-43644
-43648
43715
43739
43767
@@ -687,6 +683,10 @@ V1088
43815
43816
43823
+43824
+43872
+43876
+43878
43968
44014
44016
@@ -728,7 +728,7 @@ V1088
65024
65050
65056
-65063
+65070
65072
65107
65108
@@ -776,21 +776,25 @@ V1088
65799
65844
65847
-65931
+65933
65936
65948
+65952
+65953
66000
66046
66176
66205
66208
66257
+66272
+66300
66304
-66335
-66336
66340
66352
66379
+66384
+66427
66432
66462
66463
@@ -801,6 +805,18 @@ V1088
66718
66720
66730
+66816
+66856
+66864
+66916
+66927
+66928
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -814,7 +830,9 @@ V1088
67647
67670
67671
-67680
+67743
+67751
+67760
67840
67868
67871
@@ -842,7 +860,11 @@ V1088
68176
68185
68192
-68224
+68256
+68288
+68327
+68331
+68343
68352
68406
68409
@@ -850,7 +872,11 @@ V1088
68440
68467
68472
-68480
+68498
+68505
+68509
+68521
+68528
68608
68681
69216
@@ -859,7 +885,7 @@ V1088
69710
69714
69744
-69760
+69759
69826
69840
69865
@@ -869,24 +895,104 @@ V1088
69941
69942
69956
+69968
+70007
70016
70089
+70093
+70094
70096
-70106
+70107
+70113
+70133
+70144
+70162
+70163
+70206
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71114
+71168
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71923
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
74864
-74868
+74869
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92782
+92784
+92880
+92910
+92912
+92918
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -895,6 +1001,16 @@ V1088
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
118784
119030
119040
@@ -949,6 +1065,10 @@ V1088
120780
120782
120832
+124928
+125125
+125127
+125143
126464
126468
126469
@@ -1024,13 +1144,13 @@ V1088
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127232
-127243
+127245
127248
127279
127280
@@ -1046,41 +1166,43 @@ V1088
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
131072
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl
index f420cb3fbc1..28529637bef 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl
index 62bdebddb25..77e4c9545d9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl
index 5b63f1c42cf..afafb1e9f8b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,13 +10,13 @@
return <<'END';
-V1082
+V1204
32
127
160
888
890
-895
+896
900
907
908
@@ -24,7 +24,7 @@ V1082
910
930
931
-1320
+1328
1329
1367
1369
@@ -33,7 +33,7 @@ V1082
1416
1417
1419
-1423
+1421
1424
1425
1480
@@ -42,8 +42,6 @@ V1082
1520
1525
1536
-1541
-1542
1565
1566
1806
@@ -62,16 +60,8 @@ V1082
2142
2143
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -217,7 +207,7 @@ V1082
3032
3046
3067
-3073
+3072
3076
3077
3085
@@ -226,8 +216,6 @@ V1082
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -245,7 +233,7 @@ V1082
3184
3192
3200
-3202
+3201
3204
3205
3213
@@ -273,7 +261,7 @@ V1082
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -315,6 +303,8 @@ V1082
3543
3544
3552
+3558
+3568
3570
3573
3585
@@ -416,7 +406,7 @@ V1082
5120
5789
5792
-5873
+5881
5888
5901
5902
@@ -448,7 +438,7 @@ V1082
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -477,6 +467,8 @@ V1082
6810
6816
6830
+6832
+6847
6912
6988
6992
@@ -493,8 +485,10 @@ V1082
7368
7376
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -538,23 +532,27 @@ V1082
8336
8349
8352
-8379
+8382
8400
8433
8448
8586
8592
-9204
+9211
9216
9255
9280
9291
9312
-9984
-9985
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11264
11311
11312
@@ -590,7 +588,7 @@ V1082
11736
11743
11744
-11836
+11843
11904
11930
11931
@@ -628,16 +626,16 @@ V1082
42192
42540
42560
-42648
+42654
42655
42744
42752
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43052
43056
43066
@@ -658,7 +656,7 @@ V1082
43471
43482
43486
-43488
+43519
43520
43575
43584
@@ -666,8 +664,6 @@ V1082
43600
43610
43612
-43644
-43648
43715
43739
43767
@@ -681,6 +677,10 @@ V1082
43815
43816
43823
+43824
+43872
+43876
+43878
43968
44014
44016
@@ -722,7 +722,7 @@ V1082
65024
65050
65056
-65063
+65070
65072
65107
65108
@@ -770,21 +770,25 @@ V1082
65799
65844
65847
-65931
+65933
65936
65948
+65952
+65953
66000
66046
66176
66205
66208
66257
+66272
+66300
66304
-66335
-66336
66340
66352
66379
+66384
+66427
66432
66462
66463
@@ -795,6 +799,18 @@ V1082
66718
66720
66730
+66816
+66856
+66864
+66916
+66927
+66928
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -808,7 +824,9 @@ V1082
67647
67670
67671
-67680
+67743
+67751
+67760
67840
67868
67871
@@ -836,7 +854,11 @@ V1082
68176
68185
68192
-68224
+68256
+68288
+68327
+68331
+68343
68352
68406
68409
@@ -844,7 +866,11 @@ V1082
68440
68467
68472
-68480
+68498
+68505
+68509
+68521
+68528
68608
68681
69216
@@ -853,7 +879,7 @@ V1082
69710
69714
69744
-69760
+69759
69826
69840
69865
@@ -863,24 +889,104 @@ V1082
69941
69942
69956
+69968
+70007
70016
70089
+70093
+70094
70096
-70106
+70107
+70113
+70133
+70144
+70162
+70163
+70206
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71114
+71168
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71923
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
74864
-74868
+74869
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92782
+92784
+92880
+92910
+92912
+92918
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -889,6 +995,16 @@ V1082
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
118784
119030
119040
@@ -943,6 +1059,10 @@ V1082
120780
120782
120832
+124928
+125125
+125127
+125143
126464
126468
126469
@@ -1018,13 +1138,13 @@ V1082
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127232
-127243
+127245
127248
127279
127280
@@ -1040,41 +1160,43 @@ V1082
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
131072
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Space/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl
index fe49e697aca..17f797e348a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Space/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lt.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl
index 7f687045bdd..30e09d580dc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl
index ce6fd0acbfc..334870c01ec 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1130
+V1260
48
58
65
@@ -45,6 +45,8 @@ V1130
888
890
894
+895
+896
902
903
904
@@ -58,7 +60,7 @@ V1130
1015
1154
1155
-1320
+1328
1329
1367
1369
@@ -106,20 +108,12 @@ V1130
2112
2140
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
2404
2406
2416
2417
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -267,7 +261,7 @@ V1130
3032
3046
3056
-3073
+3072
3076
3077
3085
@@ -276,8 +270,6 @@ V1130
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -293,7 +285,7 @@ V1130
3172
3174
3184
-3202
+3201
3204
3205
3213
@@ -321,7 +313,7 @@ V1130
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -363,6 +355,8 @@ V1130
3543
3544
3552
+3558
+3568
3570
3572
3585
@@ -490,7 +484,7 @@ V1130
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -524,7 +518,7 @@ V1130
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -551,6 +545,8 @@ V1130
6810
6823
6824
+6832
+6847
6912
6988
6992
@@ -569,8 +565,10 @@ V1130
7379
7380
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -736,7 +734,7 @@ V1130
42612
42622
42623
-42648
+42654
42655
42738
42775
@@ -746,10 +744,10 @@ V1130
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43048
43072
43124
@@ -771,6 +769,8 @@ V1130
43457
43471
43482
+43488
+43519
43520
43575
43584
@@ -780,8 +780,6 @@ V1130
43616
43639
43642
-43644
-43648
43715
43739
43742
@@ -799,6 +797,12 @@ V1130
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44011
44012
@@ -844,7 +848,7 @@ V1130
65024
65040
65056
-65063
+65070
65075
65077
65101
@@ -893,10 +897,14 @@ V1130
66205
66208
66257
+66272
+66273
66304
-66335
+66336
66352
66379
+66384
+66427
66432
66462
66464
@@ -909,6 +917,16 @@ V1130
66718
66720
66730
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -921,6 +939,10 @@ V1130
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -945,19 +967,27 @@ V1130
68160
68192
68221
+68224
+68253
+68288
+68296
+68297
+68327
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69632
69703
69734
69744
-69760
+69759
69819
69840
69865
@@ -967,22 +997,102 @@ V1130
69941
69942
69952
+69968
+70004
+70006
+70007
70016
70085
70096
-70106
+70107
+70144
+70162
+70163
+70200
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70854
+70855
+70856
+70864
+70874
+71040
+71094
+71096
+71105
+71168
+71233
+71236
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71914
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92880
+92910
+92912
+92917
+92928
+92983
+92992
+92996
+93008
+93018
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -991,6 +1101,16 @@ V1130
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113821
+113823
119141
119146
119149
@@ -1065,6 +1185,10 @@ V1130
120780
120782
120832
+124928
+125125
+125136
+125143
126464
126468
126469
@@ -1131,6 +1255,12 @@ V1130
126634
126635
126652
+127280
+127306
+127312
+127338
+127344
+127370
131072
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl
index fb146a0fbcd..fec0255ae62 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V272
+V300
33
48
58
@@ -172,7 +172,7 @@ V272
11776
11823
11824
-11836
+11843
12289
12292
12296
@@ -259,6 +259,8 @@ V272
66464
66512
66513
+66927
+66928
67671
67672
67871
@@ -269,8 +271,12 @@ V272
68185
68223
68224
+68336
+68343
68409
68416
+68505
+68509
69703
69710
69819
@@ -279,8 +285,30 @@ V272
69826
69952
69956
+70004
+70006
70085
70089
+70093
+70094
+70200
+70206
+70854
+70855
+71105
+71114
+71233
+71236
74864
-74868
+74869
+92782
+92784
+92917
+92918
+92983
+92988
+92996
+92997
+113823
+113824
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl
index b3b1ff85333..7c148096cb5 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V228
+V234
65
91
97
@@ -48,9 +48,9 @@ V228
601
602
603
-604
+605
608
-609
+610
611
612
613
@@ -58,7 +58,7 @@ V228
616
618
619
-620
+621
623
624
625
@@ -71,10 +71,12 @@ V228
641
643
644
-648
+647
653
658
659
+670
+671
700
701
702
@@ -101,6 +103,8 @@ V228
888
891
894
+895
+896
902
903
904
@@ -112,15 +116,13 @@ V228
931
978
981
-1011
-1012
1014
1015
1020
1021
1154
1162
-1320
+1328
1329
1367
1377
@@ -216,7 +218,7 @@ V228
42560
42606
42624
-42648
+42652
42786
42800
42802
@@ -227,8 +229,10 @@ V228
42894
42896
42900
-42912
-42923
+42902
+42926
+42928
+42930
64256
64263
64275
@@ -239,4 +243,6 @@ V228
65371
66560
66640
+71840
+71904
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl
index 4dfd11358c1..33939d24ef5 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1150
+V1274
32
33
40
@@ -53,6 +53,8 @@ V1150
888
891
894
+895
+896
902
903
904
@@ -68,7 +70,7 @@ V1150
1155
1160
1162
-1320
+1328
1329
1367
1369
@@ -116,20 +118,12 @@ V1150
2112
2140
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
2404
2406
2416
2417
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -277,7 +271,7 @@ V1150
3032
3046
3056
-3073
+3072
3076
3077
3085
@@ -286,8 +280,6 @@ V1150
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -303,7 +295,7 @@ V1150
3172
3174
3184
-3202
+3201
3204
3205
3213
@@ -331,7 +323,7 @@ V1150
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -373,6 +365,8 @@ V1150
3543
3544
3552
+3558
+3568
3570
3572
3585
@@ -500,7 +494,7 @@ V1150
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -534,7 +528,7 @@ V1150
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -561,6 +555,8 @@ V1150
6810
6823
6824
+6832
+6846
6912
6988
6992
@@ -579,8 +575,10 @@ V1150
7379
7380
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -744,7 +742,7 @@ V1150
42612
42622
42623
-42648
+42654
42655
42738
42775
@@ -754,10 +752,10 @@ V1150
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43048
43072
43124
@@ -779,6 +777,8 @@ V1150
43457
43471
43482
+43488
+43519
43520
43575
43584
@@ -788,8 +788,6 @@ V1150
43616
43639
43642
-43644
-43648
43715
43739
43742
@@ -807,6 +805,12 @@ V1150
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44011
44012
@@ -854,7 +858,7 @@ V1150
65024
65040
65056
-65063
+65070
65075
65077
65101
@@ -913,10 +917,14 @@ V1150
66205
66208
66257
+66272
+66273
66304
-66335
+66336
66352
66379
+66384
+66427
66432
66462
66464
@@ -929,6 +937,16 @@ V1150
66718
66720
66730
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -941,6 +959,10 @@ V1150
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -965,19 +987,27 @@ V1150
68160
68192
68221
+68224
+68253
+68288
+68296
+68297
+68327
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69632
69703
69734
69744
-69760
+69759
69819
69840
69865
@@ -987,22 +1017,102 @@ V1150
69941
69942
69952
+69968
+70004
+70006
+70007
70016
70085
70096
-70106
+70107
+70144
+70162
+70163
+70200
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70854
+70855
+70856
+70864
+70874
+71040
+71094
+71096
+71105
+71168
+71233
+71236
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71914
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92880
+92910
+92912
+92917
+92928
+92983
+92992
+92996
+93008
+93018
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -1011,6 +1121,16 @@ V1150
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113821
+113823
119141
119146
119149
@@ -1085,6 +1205,10 @@ V1150
120780
120782
120832
+124928
+125125
+125136
+125143
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl
index fc5166c9247..4d76bc14a76 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V984
+V1086
65
91
97
@@ -41,6 +41,8 @@ V984
888
891
894
+895
+896
902
903
904
@@ -54,7 +56,7 @@ V984
1015
1154
1162
-1320
+1328
1329
1367
1369
@@ -106,9 +108,7 @@ V984
2112
2137
2208
-2209
-2210
-2221
+2227
2308
2362
2365
@@ -118,9 +118,7 @@ V984
2392
2402
2417
-2424
-2425
-2432
+2433
2437
2445
2447
@@ -230,8 +228,6 @@ V984
3090
3113
3114
-3124
-3125
3130
3133
3134
@@ -399,6 +395,8 @@ V984
5787
5792
5867
+5873
+5881
5888
5901
5902
@@ -426,7 +424,7 @@ V984
6320
6390
6400
-6429
+6431
6480
6510
6512
@@ -614,7 +612,7 @@ V984
42560
42607
42623
-42648
+42654
42656
42726
42775
@@ -624,10 +622,10 @@ V984
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43010
43011
43014
@@ -653,6 +651,12 @@ V984
43443
43471
43472
+43488
+43493
+43494
+43504
+43514
+43519
43520
43561
43584
@@ -663,7 +667,7 @@ V984
43639
43642
43643
-43648
+43646
43696
43697
43698
@@ -691,6 +695,12 @@ V984
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44003
44032
@@ -782,11 +792,13 @@ V984
66208
66257
66304
-66335
+66336
66352
66369
66370
66378
+66384
+66422
66432
66462
66464
@@ -795,6 +807,16 @@ V984
66512
66560
66718
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -807,6 +829,10 @@ V984
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -825,12 +851,20 @@ V984
68148
68192
68221
+68224
+68253
+68288
+68296
+68297
+68325
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69635
@@ -841,18 +875,76 @@ V984
69865
69891
69927
+69968
+70003
+70006
+70007
70019
70067
70081
70085
+70106
+70107
+70144
+70162
+70163
+70188
+70320
+70367
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70461
+70462
+70493
+70498
+70784
+70832
+70852
+70854
+70855
+70856
+71040
+71087
+71168
+71216
+71236
+71237
71296
71339
+71840
+71904
+71935
+71936
+72384
+72441
73728
-74607
+74649
77824
78895
92160
92729
+92736
+92767
+92880
+92910
+92928
+92976
+92992
+92996
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -861,6 +953,14 @@ V984
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
119808
119893
119894
@@ -921,6 +1021,8 @@ V984
120771
120772
120780
+124928
+125125
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl
index 6f8181d4db0..df488083da8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl
index 0f2c06425fe..699f6055790 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1142
+V1266
48
58
65
@@ -45,6 +45,8 @@ V1142
888
891
894
+895
+896
902
903
904
@@ -60,7 +62,7 @@ V1142
1155
1160
1162
-1320
+1328
1329
1367
1369
@@ -108,20 +110,12 @@ V1142
2112
2140
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
2404
2406
2416
2417
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -269,7 +263,7 @@ V1142
3032
3046
3056
-3073
+3072
3076
3077
3085
@@ -278,8 +272,6 @@ V1142
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -295,7 +287,7 @@ V1142
3172
3174
3184
-3202
+3201
3204
3205
3213
@@ -323,7 +315,7 @@ V1142
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -365,6 +357,8 @@ V1142
3543
3544
3552
+3558
+3568
3570
3572
3585
@@ -492,7 +486,7 @@ V1142
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -526,7 +520,7 @@ V1142
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -553,6 +547,8 @@ V1142
6810
6823
6824
+6832
+6846
6912
6988
6992
@@ -571,8 +567,10 @@ V1142
7379
7380
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -736,7 +734,7 @@ V1142
42612
42622
42623
-42648
+42654
42655
42738
42775
@@ -746,10 +744,10 @@ V1142
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43048
43072
43124
@@ -771,6 +769,8 @@ V1142
43457
43471
43482
+43488
+43519
43520
43575
43584
@@ -780,8 +780,6 @@ V1142
43616
43639
43642
-43644
-43648
43715
43739
43742
@@ -799,6 +797,12 @@ V1142
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44011
44012
@@ -846,7 +850,7 @@ V1142
65024
65040
65056
-65063
+65070
65075
65077
65101
@@ -905,10 +909,14 @@ V1142
66205
66208
66257
+66272
+66273
66304
-66335
+66336
66352
66379
+66384
+66427
66432
66462
66464
@@ -921,6 +929,16 @@ V1142
66718
66720
66730
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -933,6 +951,10 @@ V1142
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -957,19 +979,27 @@ V1142
68160
68192
68221
+68224
+68253
+68288
+68296
+68297
+68327
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69632
69703
69734
69744
-69760
+69759
69819
69840
69865
@@ -979,22 +1009,102 @@ V1142
69941
69942
69952
+69968
+70004
+70006
+70007
70016
70085
70096
-70106
+70107
+70144
+70162
+70163
+70200
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70854
+70855
+70856
+70864
+70874
+71040
+71094
+71096
+71105
+71168
+71233
+71236
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71914
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92880
+92910
+92912
+92917
+92928
+92983
+92992
+92996
+93008
+93018
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -1003,6 +1113,16 @@ V1142
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113821
+113823
119141
119146
119149
@@ -1077,6 +1197,10 @@ V1142
120780
120782
120832
+124928
+125125
+125136
+125143
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl
index 58c3a215ba4..cea5bc43f99 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V994
+V1094
65
91
95
@@ -43,6 +43,8 @@ V994
888
891
894
+895
+896
902
903
904
@@ -56,7 +58,7 @@ V994
1015
1154
1162
-1320
+1328
1329
1367
1369
@@ -108,9 +110,7 @@ V994
2112
2137
2208
-2209
-2210
-2221
+2227
2308
2362
2365
@@ -120,9 +120,7 @@ V994
2392
2402
2417
-2424
-2425
-2432
+2433
2437
2445
2447
@@ -232,8 +230,6 @@ V994
3090
3113
3114
-3124
-3125
3130
3133
3134
@@ -402,7 +398,7 @@ V994
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -430,7 +426,7 @@ V994
6320
6390
6400
-6429
+6431
6480
6510
6512
@@ -620,7 +616,7 @@ V994
42560
42607
42623
-42648
+42654
42656
42736
42775
@@ -630,10 +626,10 @@ V994
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43010
43011
43014
@@ -659,6 +655,12 @@ V994
43443
43471
43472
+43488
+43493
+43494
+43504
+43514
+43519
43520
43561
43584
@@ -669,7 +671,7 @@ V994
43639
43642
43643
-43648
+43646
43696
43697
43698
@@ -697,6 +699,12 @@ V994
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44003
44032
@@ -790,9 +798,11 @@ V994
66208
66257
66304
-66335
+66336
66352
66379
+66384
+66422
66432
66462
66464
@@ -803,6 +813,16 @@ V994
66518
66560
66718
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -815,6 +835,10 @@ V994
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -833,12 +857,20 @@ V994
68148
68192
68221
+68224
+68253
+68288
+68296
+68297
+68325
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69635
@@ -849,20 +881,78 @@ V994
69865
69891
69927
+69968
+70003
+70006
+70007
70019
70067
70081
70085
+70106
+70107
+70144
+70162
+70163
+70188
+70320
+70367
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70461
+70462
+70493
+70498
+70784
+70832
+70852
+70854
+70855
+70856
+71040
+71087
+71168
+71216
+71236
+71237
71296
71339
+71840
+71904
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92880
+92910
+92928
+92976
+92992
+92996
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -871,6 +961,14 @@ V994
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
119808
119893
119894
@@ -931,6 +1029,8 @@ V994
120771
120772
120780
+124928
+125125
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl
index 5dc3f8e9587..2f85c0c28ed 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl
index 88d63212761..0252ccbe2d7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl
index eb58335323b..aa28fd8ee1a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V76
+V78
0
48
58
@@ -83,6 +83,8 @@ V76
65441
65520
65529
+113824
+113828
119155
119163
917504
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_XExtend.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_XExtend.pl
deleted file mode 100644
index dc644b4ab3d..00000000000
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_XExtend.pl
+++ /dev/null
@@ -1,428 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
-
-# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
-# This file is for internal use by core Perl only. The format and even the
-# name or existence of this file are subject to change without notice. Don't
-# use it directly. Use Unicode::UCD to access the Unicode character data
-# base.
-
-
-return <<'END';
-V414
-768
-880
-1155
-1162
-1425
-1470
-1471
-1472
-1473
-1475
-1476
-1478
-1479
-1480
-1552
-1563
-1611
-1632
-1648
-1649
-1750
-1757
-1759
-1765
-1767
-1769
-1770
-1774
-1809
-1810
-1840
-1867
-1958
-1969
-2027
-2036
-2070
-2074
-2075
-2084
-2085
-2088
-2089
-2094
-2137
-2140
-2276
-2303
-2304
-2308
-2362
-2365
-2366
-2384
-2385
-2392
-2402
-2404
-2433
-2436
-2492
-2493
-2494
-2501
-2503
-2505
-2507
-2510
-2519
-2520
-2530
-2532
-2561
-2564
-2620
-2621
-2622
-2627
-2631
-2633
-2635
-2638
-2641
-2642
-2672
-2674
-2677
-2678
-2689
-2692
-2748
-2749
-2750
-2758
-2759
-2762
-2763
-2766
-2786
-2788
-2817
-2820
-2876
-2877
-2878
-2885
-2887
-2889
-2891
-2894
-2902
-2904
-2914
-2916
-2946
-2947
-3006
-3011
-3014
-3017
-3018
-3022
-3031
-3032
-3073
-3076
-3134
-3141
-3142
-3145
-3146
-3150
-3157
-3159
-3170
-3172
-3202
-3204
-3260
-3261
-3262
-3269
-3270
-3273
-3274
-3278
-3285
-3287
-3298
-3300
-3330
-3332
-3390
-3397
-3398
-3401
-3402
-3406
-3415
-3416
-3426
-3428
-3458
-3460
-3530
-3531
-3535
-3541
-3542
-3543
-3544
-3552
-3570
-3572
-3633
-3634
-3635
-3643
-3655
-3663
-3761
-3762
-3763
-3770
-3771
-3773
-3784
-3790
-3864
-3866
-3893
-3894
-3895
-3896
-3897
-3898
-3902
-3904
-3953
-3973
-3974
-3976
-3981
-3992
-3993
-4029
-4038
-4039
-4141
-4152
-4153
-4159
-4182
-4186
-4190
-4193
-4209
-4213
-4226
-4227
-4228
-4231
-4237
-4238
-4253
-4254
-4957
-4960
-5906
-5909
-5938
-5941
-5970
-5972
-6002
-6004
-6068
-6100
-6109
-6110
-6155
-6158
-6313
-6314
-6432
-6444
-6448
-6460
-6581
-6584
-6586
-6587
-6679
-6684
-6741
-6751
-6752
-6753
-6754
-6755
-6757
-6781
-6783
-6784
-6912
-6917
-6964
-6981
-7019
-7028
-7040
-7043
-7073
-7086
-7142
-7156
-7204
-7224
-7376
-7379
-7380
-7401
-7405
-7406
-7410
-7413
-7616
-7655
-7676
-7680
-8204
-8206
-8400
-8433
-11503
-11506
-11647
-11648
-11744
-11776
-12330
-12336
-12441
-12443
-42607
-42611
-42612
-42622
-42655
-42656
-42736
-42738
-43010
-43011
-43014
-43015
-43019
-43020
-43043
-43048
-43136
-43138
-43188
-43205
-43232
-43250
-43302
-43310
-43335
-43348
-43392
-43396
-43443
-43457
-43561
-43575
-43587
-43588
-43596
-43598
-43696
-43697
-43698
-43701
-43703
-43705
-43710
-43712
-43713
-43714
-43755
-43760
-43765
-43767
-44003
-44011
-44012
-44014
-64286
-64287
-65024
-65040
-65056
-65063
-65438
-65440
-66045
-66046
-68097
-68100
-68101
-68103
-68108
-68112
-68152
-68155
-68159
-68160
-69632
-69635
-69688
-69703
-69760
-69763
-69808
-69819
-69888
-69891
-69927
-69941
-70016
-70019
-70067
-70081
-71339
-71352
-94033
-94079
-94095
-94099
-119141
-119146
-119149
-119155
-119163
-119171
-119173
-119180
-119210
-119214
-119362
-119365
-917760
-918000
-END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl
index 237872d250a..4815639a0d8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V24
+V26
34
35
39
@@ -23,6 +23,8 @@ V24
8224
8249
8251
+11842
+11843
12300
12304
12317
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl
index 2226f140c78..bbc64aef05e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl
index 0c0a3fc978b..e2f1b006d8f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V84
+V88
34
35
39
@@ -46,7 +46,7 @@ V84
9001
9003
10075
-10079
+10081
10088
10102
10181
@@ -65,6 +65,8 @@ V84
11806
11808
11818
+11842
+11843
12296
12306
12308
@@ -95,4 +97,6 @@ V84
65377
65378
65380
+128630
+128633
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl
index d1e0ba39044..1875b5ad390 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V412
+V462
768
880
1155
@@ -58,8 +58,6 @@ V412
2137
2140
2276
-2303
-2304
2308
2362
2365
@@ -135,7 +133,7 @@ V412
3022
3031
3032
-3073
+3072
3076
3134
3141
@@ -147,7 +145,7 @@ V412
3159
3170
3172
-3202
+3201
3204
3260
3261
@@ -161,7 +159,7 @@ V412
3287
3298
3300
-3330
+3329
3332
3390
3397
@@ -271,6 +269,8 @@ V412
6781
6783
6784
+6832
+6847
6912
6917
6964
@@ -293,8 +293,10 @@ V412
7406
7410
7413
+7416
+7418
7616
-7655
+7670
7676
7680
8204
@@ -341,6 +343,8 @@ V412
43396
43443
43457
+43493
+43494
43561
43575
43587
@@ -348,7 +352,7 @@ V412
43596
43598
43643
-43644
+43646
43696
43697
43698
@@ -372,11 +376,15 @@ V412
65024
65040
65056
-65063
+65070
65438
65440
66045
66046
+66272
+66273
+66422
+66427
68097
68100
68101
@@ -387,11 +395,13 @@ V412
68155
68159
68160
+68325
+68327
69632
69635
69688
69703
-69760
+69759
69763
69808
69819
@@ -399,16 +409,54 @@ V412
69891
69927
69941
+70003
+70004
70016
70019
70067
70081
+70188
+70200
+70367
+70379
+70401
+70404
+70460
+70461
+70462
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70498
+70500
+70502
+70509
+70512
+70517
+70832
+70852
+71087
+71094
+71096
+71105
+71216
+71233
71339
71352
+92912
+92917
+92976
+92983
94033
94079
94095
94099
+113821
+113823
119141
119146
119149
@@ -421,6 +469,8 @@ V412
119214
119362
119365
+125136
+125143
917760
918000
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl
index 75f65fbb651..b0ee057f85c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,11 +10,11 @@
return <<'END';
-V34
+V36
173
174
1536
-1541
+1542
1564
1565
1757
@@ -39,6 +39,8 @@ V34
65532
69821
69822
+113824
+113828
119155
119163
917505
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl
index 2164ec172da..0176645e840 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V786
+V878
443
444
448
@@ -74,9 +74,7 @@ V786
2112
2137
2208
-2209
-2210
-2221
+2227
2308
2362
2365
@@ -86,9 +84,7 @@ V786
2392
2402
2417
-2424
-2425
-2432
+2433
2437
2445
2447
@@ -198,8 +194,6 @@ V786
3090
3113
3114
-3124
-3125
3130
3133
3134
@@ -362,7 +356,7 @@ V786
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -390,7 +384,7 @@ V786
6320
6390
6400
-6429
+6431
6480
6510
6512
@@ -505,6 +499,8 @@ V786
42784
42888
42889
+42999
+43000
43003
43010
43011
@@ -531,6 +527,12 @@ V786
43443
43471
43472
+43488
+43493
+43494
+43504
+43514
+43519
43520
43561
43584
@@ -541,7 +543,7 @@ V786
43639
43642
43643
-43648
+43646
43696
43697
43698
@@ -642,9 +644,11 @@ V786
66208
66257
66304
-66335
+66336
66352
66379
+66384
+66422
66432
66462
66464
@@ -655,6 +659,16 @@ V786
66518
66640
66718
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -667,6 +681,10 @@ V786
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -685,12 +703,20 @@ V786
68148
68192
68221
+68224
+68253
+68288
+68296
+68297
+68325
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69635
@@ -701,20 +727,76 @@ V786
69865
69891
69927
+69968
+70003
+70006
+70007
70019
70067
70081
70085
+70106
+70107
+70144
+70162
+70163
+70188
+70320
+70367
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70461
+70462
+70493
+70498
+70784
+70832
+70852
+70854
+70855
+70856
+71040
+71087
+71168
+71216
+71236
+71237
71296
71339
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92880
+92910
+92928
+92976
+92992
+92996
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -723,6 +805,16 @@ V786
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+124928
+125125
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl
index caa439a4136..cb65b6a20de 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1234
+V1264
97
123
170
@@ -549,6 +549,14 @@ V1234
1318
1319
1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
+1328
1377
1416
7424
@@ -1071,6 +1079,10 @@ V1234
42646
42647
42648
+42649
+42650
+42651
+42654
42787
42788
42789
@@ -1168,7 +1180,17 @@ V1234
42897
42898
42899
-42900
+42902
+42903
+42904
+42905
+42906
+42907
+42908
+42909
+42910
+42911
+42912
42913
42914
42915
@@ -1181,6 +1203,12 @@ V1234
42922
43000
43003
+43824
+43867
+43868
+43872
+43876
+43878
64256
64263
64275
@@ -1189,6 +1217,8 @@ V1234
65371
66600
66640
+71872
+71904
119834
119860
119886
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl
index 1753f809d97..c1e9cefc8c0 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V84
+V100
48
58
1632
@@ -39,6 +39,8 @@ V84
3312
3430
3440
+3558
+3568
3664
3674
3792
@@ -77,6 +79,8 @@ V84
43274
43472
43482
+43504
+43514
43600
43610
44016
@@ -91,8 +95,20 @@ V84
69952
70096
70106
+70384
+70394
+70864
+70874
+71248
+71258
71360
71370
+71904
+71914
+92768
+92778
+93008
+93018
120782
120832
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl
index 760d245406a..d08ca6cec10 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl
index ecfae3ad2a1..354481be454 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,15 +10,11 @@
return <<'END';
-V94
+V114
33
34
63
64
-1372
-1373
-1374
-1375
1417
1418
1567
@@ -63,6 +59,8 @@ V94
8266
11822
11823
+11836
+11837
12290
12291
42239
@@ -105,4 +103,26 @@ V94
69956
70085
70087
+70093
+70094
+70200
+70202
+70203
+70205
+71106
+71108
+71113
+71114
+71233
+71235
+92782
+92784
+92917
+92918
+92983
+92985
+92996
+92997
+113823
+113824
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl
index b8d02d5f4cc..0c28119034b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl
index 9c595335ed7..d3b7e351176 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1226
+V1260
65
91
192
@@ -305,6 +305,8 @@ V1226
883
886
887
+895
+896
902
903
904
@@ -543,6 +545,14 @@ V1226
1317
1318
1319
+1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
1329
1367
4256
@@ -1061,6 +1071,10 @@ V1226
42645
42646
42647
+42648
+42649
+42650
+42651
42786
42787
42788
@@ -1159,6 +1173,16 @@ V1226
42897
42898
42899
+42902
+42903
+42904
+42905
+42906
+42907
+42908
+42909
+42910
+42911
42912
42913
42914
@@ -1170,11 +1194,15 @@ V1226
42920
42921
42922
-42923
+42926
+42928
+42930
65313
65339
66560
66600
+71840
+71872
119808
119834
119860
@@ -1237,4 +1265,10 @@ V1226
120745
120778
120779
+127280
+127306
+127312
+127338
+127344
+127370
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl
index 088e3d706a2..42b4edc4bfe 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1249
+V1395
0
9
14
@@ -64,6 +64,8 @@ V1249
888
890
894
+895
+896
902
903
904
@@ -77,13 +79,13 @@ V1249
1015
1154
1155
-1320
+1328
1329
1367
1369
1370
-1372
-1375
+1373
+1374
1377
1416
1417
@@ -103,7 +105,7 @@ V1249
1520
1524
1536
-1541
+1542
1548
1550
1552
@@ -135,18 +137,10 @@ V1249
2112
2140
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
2416
2417
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -294,7 +288,7 @@ V1249
3032
3046
3056
-3073
+3072
3076
3077
3085
@@ -303,8 +297,6 @@ V1249
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -320,7 +312,7 @@ V1249
3172
3174
3184
-3202
+3201
3204
3205
3213
@@ -348,7 +340,7 @@ V1249
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -390,6 +382,8 @@ V1249
3543
3544
3552
+3558
+3568
3570
3572
3585
@@ -517,7 +511,7 @@ V1249
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -555,7 +549,7 @@ V1249
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -582,6 +576,8 @@ V1249
6810
6823
6828
+6832
+6847
6912
6988
6992
@@ -604,8 +600,10 @@ V1249
7379
7380
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -709,7 +707,7 @@ V1249
9398
9450
10075
-10079
+10081
10088
10102
10181
@@ -766,6 +764,10 @@ V1249
11818
11822
11824
+11836
+11837
+11842
+11843
12288
12291
12293
@@ -815,7 +817,7 @@ V1249
42612
42622
42623
-42648
+42654
42655
42738
42739
@@ -829,10 +831,10 @@ V1249
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43048
43072
43124
@@ -858,6 +860,8 @@ V1249
43466
43471
43482
+43488
+43519
43520
43575
43584
@@ -867,8 +871,6 @@ V1249
43613
43639
43642
-43644
-43648
43715
43739
43742
@@ -884,6 +886,12 @@ V1249
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44014
44016
@@ -931,7 +939,7 @@ V1249
65047
65049
65056
-65063
+65070
65073
65075
65077
@@ -1004,10 +1012,14 @@ V1249
66205
66208
66257
+66272
+66273
66304
-66335
+66336
66352
66379
+66384
+66427
66432
66462
66464
@@ -1020,6 +1032,16 @@ V1249
66718
66720
66730
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -1032,6 +1054,10 @@ V1249
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -1058,19 +1084,27 @@ V1249
68184
68192
68221
+68224
+68253
+68288
+68296
+68297
+68327
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69632
69705
69734
69744
-69760
+69759
69819
69821
69826
@@ -1084,22 +1118,112 @@ V1249
69952
69953
69956
+69968
+70004
+70006
+70007
70016
70087
+70093
+70094
70096
-70106
+70107
+70144
+70162
+70163
+70202
+70203
+70205
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70854
+70855
+70856
+70864
+70874
+71040
+71094
+71096
+71105
+71106
+71108
+71113
+71114
+71168
+71235
+71236
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71914
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92782
+92784
+92880
+92910
+92912
+92918
+92928
+92985
+92992
+92997
+93008
+93018
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -1108,6 +1232,16 @@ V1249
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113821
+113828
119141
119146
119149
@@ -1180,6 +1314,10 @@ V1249
120780
120782
120832
+124928
+125125
+125136
+125143
126464
126468
126469
@@ -1246,6 +1384,14 @@ V1249
126634
126635
126652
+127280
+127306
+127312
+127338
+127344
+127370
+128630
+128633
131072
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl
index e68c017ae9f..c9f18e79132 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl
index 6bc5e2c28d9..9806c5baab1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,17 +10,13 @@
return <<'END';
-V100
+V120
33
34
46
47
63
64
-1372
-1373
-1374
-1375
1417
1418
1567
@@ -65,6 +61,8 @@ V100
8266
11822
11823
+11836
+11837
12290
12291
42239
@@ -111,4 +109,26 @@ V100
69956
70085
70087
+70093
+70094
+70200
+70202
+70203
+70205
+71106
+71108
+71113
+71114
+71233
+71235
+92782
+92784
+92917
+92918
+92983
+92985
+92996
+92997
+113823
+113824
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl
index ce0ba6c6147..58ed81afc8c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,15 +10,13 @@
return <<'END';
-V114
+V110
1536
1541
1542
1548
1549
1563
-1564
-1565
1566
1567
1568
@@ -36,11 +34,9 @@ V114
1872
1920
2208
-2209
-2210
-2221
+2227
2276
-2303
+2304
64336
64450
64467
@@ -50,7 +46,7 @@ V114
64914
64968
65008
-65021
+65022
65136
65141
65142
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Armn.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Armn.pl
index 2e1c74df944..ae361ce0eea 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Armn.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Armn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -19,7 +19,7 @@ V12
1416
1418
1419
-1423
+1421
1424
64275
64280
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl
index b81dece4017..6b3bc083b9e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -11,7 +11,7 @@
return <<'END';
V28
-2433
+2432
2436
2437
2445
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cham.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cham.pl
index b749bbbb18d..c96298a4a61 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cham.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cham.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl
index 939b64805c7..4935f29f6a4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl
index 43b1b785a0d..b78fdf7a31c 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -14,7 +14,7 @@ V14
1024
1157
1159
-1320
+1328
7467
7468
7544
@@ -22,7 +22,7 @@ V14
11744
11776
42560
-42648
+42654
42655
42656
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl
index fa850a96097..e521c22de47 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,14 +10,12 @@
return <<'END';
-V10
+V8
2304
2385
2387
2404
2406
-2424
-2425
2432
43232
43260
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl
new file mode 100644
index 00000000000..5145472d20e
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl
@@ -0,0 +1,24 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V10
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113824
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Ethi.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Ethi.pl
index 387edaad00f..297a64aa732 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Ethi.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Ethi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl
index 6ab7c826f86..e3bdda51f0f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl
new file mode 100644
index 00000000000..9b2b436771b
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl
@@ -0,0 +1,42 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V28
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl
index adf9d806ccd..64a9c91945d 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,13 +10,15 @@
return <<'END';
-V66
+V72
880
884
885
888
890
894
+895
+896
900
901
902
@@ -73,8 +75,12 @@ V66
8191
8486
8487
+43877
+43878
65856
-65931
+65933
+65952
+65953
119296
119366
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl
index 21acd66509d..763a0aed93a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl
index 390749ce86c..e222e33c6a1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl
index ccaa7e8d4cd..a63f6ae0741 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl
index 7befd62c044..38e6bc4ed39 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hebr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hebr.pl
index 4571058a7c3..48d1f15dd19 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hebr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hebr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl
index dfcf67ca7a9..ff8a4ed9fa9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hmng.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hmng.pl
new file mode 100644
index 00000000000..cda56e326f1
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hmng.pl
@@ -0,0 +1,24 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V10
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl
index 8ff253e12b4..691c5369d47 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khar.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khar.pl
index d9a04fc5319..c317579ad89 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khar.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khar.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khmr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khmr.pl
index edabc31d257..2574a234c95 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khmr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khmr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl
index 8a28769d8c2..100af360564 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -11,7 +11,7 @@
return <<'END';
V28
-3202
+3201
3204
3205
3213
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lana.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lana.pl
index 703814abee3..2845e59c3fc 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lana.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lana.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lao.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lao.pl
index 0d2af195016..134e6cc2dd5 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lao.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lao.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl
index 1e9b0d570fd..d4f7fa5b2f2 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V60
+V66
65
91
97
@@ -60,11 +60,17 @@ V60
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43008
+43824
+43867
+43868
+43872
+43876
+43877
64256
64263
65313
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl
index d9e8509e560..361bcfa70b4 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -12,7 +12,7 @@
return <<'END';
V10
6400
-6429
+6431
6432
6444
6448
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl
index 41f79357c19..59fc63a4ab0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl
index f32475ecfe2..b325b80c413 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -11,7 +11,7 @@
return <<'END';
V22
-3330
+3329
3332
3333
3341
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl
index 8ab38a04abc..bf23434294c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl
index 4c35a95b399..b80976a53b3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl
index 36652bbcb6a..6a5b7b4a983 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V22
+V26
3458
3460
3461
@@ -31,6 +31,10 @@ V22
3543
3544
3552
+3558
+3568
3570
3573
+70113
+70133
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Talu.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Talu.pl
index a6e431d0858..53b66bb2aef 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Talu.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Talu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl
index 958dbed4650..962ff155a16 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl
index 6e8b0479d6d..9fb2001bd1a 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,8 +10,8 @@
return <<'END';
-V28
-3073
+V26
+3072
3076
3077
3085
@@ -20,8 +20,6 @@ V28
3090
3113
3114
-3124
-3125
3130
3133
3141
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Tibt.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Tibt.pl
index 247bbbdb3c0..f1bd95e2ab3 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Tibt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Tibt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl
index 851a00e529d..f1d33f70cf6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V48
+V54
768
880
1157
@@ -21,6 +21,8 @@ V48
1649
2385
2387
+6832
+6847
7376
7379
7380
@@ -31,8 +33,10 @@ V48
7406
7412
7413
+7416
+7418
7616
-7655
+7670
7676
7680
8204
@@ -46,9 +50,11 @@ V48
65024
65040
65056
-65063
+65070
66045
66046
+66272
+66273
119143
119146
119163
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl
index 4b200567dc3..6f250f4030b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V316
+V330
0
65
91
@@ -41,10 +41,12 @@ V316
904
1417
1418
+1541
+1542
1548
1549
1563
-1564
+1565
1567
1568
1600
@@ -90,7 +92,7 @@ V316
8320
8335
8352
-8379
+8382
8448
8486
8487
@@ -104,21 +106,25 @@ V316
8585
8586
8592
-9204
+9211
9216
9255
9280
9291
9312
-9984
-9985
10240
10496
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11776
-11836
+11843
12272
12284
12288
@@ -155,12 +161,14 @@ V316
42891
43056
43066
+43310
+43311
43471
43472
+43867
+43868
64830
64832
-65021
-65022
65040
65050
65072
@@ -197,6 +205,10 @@ V316
65948
66000
66045
+66273
+66300
+113824
+113828
118784
119030
119040
@@ -264,13 +276,13 @@ V316
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127232
-127243
+127245
127248
127279
127280
@@ -288,41 +300,43 @@ V316
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
917505
917506
917536
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zzzz.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zzzz.pl
index 85e94c2625e..e66f7919ad2 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zzzz.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zzzz.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,10 +10,10 @@
return <<'END';
-V1073
+V1195
888
890
-895
+896
900
907
908
@@ -21,7 +21,7 @@ V1073
910
930
931
-1320
+1328
1329
1367
1369
@@ -30,7 +30,7 @@ V1073
1416
1417
1419
-1423
+1421
1424
1425
1480
@@ -39,8 +39,6 @@ V1073
1520
1525
1536
-1541
-1542
1565
1566
1806
@@ -59,16 +57,8 @@ V1073
2142
2143
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -214,7 +204,7 @@ V1073
3032
3046
3067
-3073
+3072
3076
3077
3085
@@ -223,8 +213,6 @@ V1073
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -242,7 +230,7 @@ V1073
3184
3192
3200
-3202
+3201
3204
3205
3213
@@ -270,7 +258,7 @@ V1073
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -312,6 +300,8 @@ V1073
3543
3544
3552
+3558
+3568
3570
3573
3585
@@ -413,7 +403,7 @@ V1073
5120
5789
5792
-5873
+5881
5888
5901
5902
@@ -445,7 +435,7 @@ V1073
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -474,6 +464,8 @@ V1073
6810
6816
6830
+6832
+6847
6912
6988
6992
@@ -490,8 +482,10 @@ V1073
7368
7376
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -533,23 +527,27 @@ V1073
8336
8349
8352
-8379
+8382
8400
8433
8448
8586
8592
-9204
+9211
9216
9255
9280
9291
9312
-9984
-9985
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11264
11311
11312
@@ -585,7 +583,7 @@ V1073
11736
11743
11744
-11836
+11843
11904
11930
11931
@@ -623,16 +621,16 @@ V1073
42192
42540
42560
-42648
+42654
42655
42744
42752
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43052
43056
43066
@@ -653,7 +651,7 @@ V1073
43471
43482
43486
-43488
+43519
43520
43575
43584
@@ -661,8 +659,6 @@ V1073
43600
43610
43612
-43644
-43648
43715
43739
43767
@@ -676,6 +672,10 @@ V1073
43815
43816
43823
+43824
+43872
+43876
+43878
43968
44014
44016
@@ -717,7 +717,7 @@ V1073
65024
65050
65056
-65063
+65070
65072
65107
65108
@@ -765,21 +765,25 @@ V1073
65799
65844
65847
-65931
+65933
65936
65948
+65952
+65953
66000
66046
66176
66205
66208
66257
+66272
+66300
66304
-66335
-66336
66340
66352
66379
+66384
+66427
66432
66462
66463
@@ -790,6 +794,18 @@ V1073
66718
66720
66730
+66816
+66856
+66864
+66916
+66927
+66928
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -803,7 +819,9 @@ V1073
67647
67670
67671
-67680
+67743
+67751
+67760
67840
67868
67871
@@ -831,7 +849,11 @@ V1073
68176
68185
68192
-68224
+68256
+68288
+68327
+68331
+68343
68352
68406
68409
@@ -839,7 +861,11 @@ V1073
68440
68467
68472
-68480
+68498
+68505
+68509
+68521
+68528
68608
68681
69216
@@ -848,7 +874,7 @@ V1073
69710
69714
69744
-69760
+69759
69826
69840
69865
@@ -858,24 +884,104 @@ V1073
69941
69942
69956
+69968
+70007
70016
70089
+70093
+70094
70096
-70106
+70107
+70113
+70133
+70144
+70162
+70163
+70206
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71114
+71168
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71923
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
74864
-74868
+74869
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92782
+92784
+92880
+92910
+92912
+92918
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -884,6 +990,16 @@ V1073
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
118784
119030
119040
@@ -938,6 +1054,10 @@ V1073
120780
120782
120832
+124928
+125125
+125127
+125143
126464
126468
126469
@@ -1013,13 +1133,13 @@ V1073
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127232
-127243
+127245
127248
127279
127280
@@ -1035,41 +1155,43 @@ V1073
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
131072
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl
index e6c5e5d7576..ea9000ae897 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -14,7 +14,7 @@ V100
1536
1541
1542
-1565
+1564
1566
1757
1758
@@ -22,11 +22,9 @@ V100
1872
1920
2208
-2209
-2210
-2221
+2227
2276
-2303
+2304
64336
64450
64467
@@ -41,6 +39,8 @@ V100
65141
65142
65277
+66272
+66300
69216
69247
126464
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl
index 48bb3bfad11..2491f3282bf 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -19,7 +19,7 @@ V12
1416
1417
1419
-1423
+1421
1424
64275
64280
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl
index 5008f6d5897..556b58e9872 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -13,7 +13,7 @@ return <<'END';
V30
2404
2406
-2433
+2432
2436
2437
2445
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl
index a050165ac7f..9717f214b59 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl
index 5cfcce3ec57..c334146961b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl
new file mode 100644
index 00000000000..9a37b0ad221
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+994
+1008
+11392
+11508
+11513
+11520
+66272
+66300
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl
index 79a7b8a7aa6..13495d1217f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl
index f84ad36d5f3..d224d71ff10 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -12,7 +12,7 @@
return <<'END';
V12
1024
-1320
+1328
7467
7468
7544
@@ -20,7 +20,7 @@ V12
11744
11776
42560
-42648
+42654
42655
42656
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl
index fc28f7e061c..8cd756950c3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -12,8 +12,6 @@
return <<'END';
V16
2304
-2424
-2425
2432
7376
7379
@@ -23,6 +21,8 @@ V16
7406
7410
7413
+7416
+7418
43056
43066
43232
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl
new file mode 100644
index 00000000000..9c39559ee94
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl
@@ -0,0 +1,24 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V10
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl
index b67ef6a2024..32c002e7229 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl
new file mode 100644
index 00000000000..6c14f33e763
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl
@@ -0,0 +1,44 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V30
+2404
+2406
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl
index 8c8fcf2e64d..4f6300f43d1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V70
+V76
834
835
837
@@ -21,6 +21,8 @@ V70
888
890
894
+895
+896
900
901
902
@@ -77,8 +79,12 @@ V70
8191
8486
8487
+43877
+43878
65856
-65931
+65933
+65952
+65953
119296
119366
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl
index d4fab01dbbb..ce4c82ffd0b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,9 @@
return <<'END';
-V28
+V30
+2404
+2406
2689
2692
2693
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl
index cd52944cad1..fa34594ed9e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl
index 727f546418f..faa91ab70c9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl
index 7fd55cb0d27..1f3f7e1c77e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl
index 2715477a846..119d68637cb 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl
index 4a0322d810e..34e019c41bd 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl
new file mode 100644
index 00000000000..e4e942adde8
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl
@@ -0,0 +1,44 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V30
+2404
+2406
+3201
+3204
+3205
+3213
+3214
+3217
+3218
+3241
+3242
+3252
+3253
+3258
+3260
+3269
+3270
+3273
+3274
+3278
+3285
+3287
+3294
+3295
+3296
+3300
+3302
+3312
+3313
+3315
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl
index 3c9229ff026..0c96d567c18 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V66
+V74
65
91
97
@@ -66,11 +66,19 @@ V66
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43008
+43310
+43311
+43824
+43867
+43868
+43872
+43876
+43877
64256
64263
65313
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl
new file mode 100644
index 00000000000..1157faaa405
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl
@@ -0,0 +1,26 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V12
+2405
+2406
+6400
+6431
+6432
+6444
+6448
+6460
+6464
+6465
+6468
+6480
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl
index 44aab632ff7..18eb2eeaad5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl
new file mode 100644
index 00000000000..51b43ff4d41
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl
@@ -0,0 +1,38 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V24
+2404
+2406
+3329
+3332
+3333
+3341
+3342
+3345
+3346
+3387
+3389
+3397
+3398
+3401
+3402
+3407
+3415
+3416
+3424
+3428
+3430
+3446
+3449
+3456
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl
index b39a5e06c2c..814c10f3f7e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl
new file mode 100644
index 00000000000..ae06b65890f
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+4096
+4256
+43310
+43311
+43488
+43519
+43616
+43648
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl
index 7c01a679277..d3946dad7b9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl
new file mode 100644
index 00000000000..f26090b4bd0
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+1600
+1601
+68480
+68498
+68505
+68509
+68521
+68528
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl
new file mode 100644
index 00000000000..6bdb3727343
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+2404
+2406
+43056
+43066
+70320
+70379
+70384
+70394
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl
new file mode 100644
index 00000000000..bf0a6e32bbd
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl
@@ -0,0 +1,42 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V28
+2404
+2406
+3458
+3460
+3461
+3479
+3482
+3506
+3507
+3516
+3517
+3518
+3520
+3527
+3530
+3531
+3535
+3541
+3542
+3543
+3544
+3552
+3558
+3568
+3570
+3573
+70113
+70133
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl
index 328b6c28aac..070fa39a7ed 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -14,7 +14,7 @@ V18
1548
1549
1563
-1565
+1564
1567
1568
1600
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl
index 583452285b1..94d7b5d69c9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl
index 745bc05abd6..8c9e91e28af 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl
new file mode 100644
index 00000000000..3a88f7449e5
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl
@@ -0,0 +1,48 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V34
+2404
+2406
+2946
+2948
+2949
+2955
+2958
+2961
+2962
+2966
+2969
+2971
+2972
+2973
+2974
+2976
+2979
+2981
+2984
+2987
+2990
+3002
+3006
+3011
+3014
+3017
+3018
+3022
+3024
+3025
+3031
+3032
+3046
+3067
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl
new file mode 100644
index 00000000000..2befa92b214
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl
@@ -0,0 +1,42 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V28
+2404
+2406
+3072
+3076
+3077
+3085
+3086
+3089
+3090
+3113
+3114
+3130
+3133
+3141
+3142
+3145
+3146
+3150
+3157
+3159
+3160
+3162
+3168
+3172
+3174
+3184
+3192
+3200
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl
index 11cd55a63f2..1be24fbd678 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -14,7 +14,7 @@ V14
1548
1549
1563
-1565
+1564
1567
1568
1632
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl
new file mode 100644
index 00000000000..4022a9bb987
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 7.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+2404
+2406
+43056
+43066
+70784
+70856
+70864
+70874
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl
index 492d01b1b7f..d71b8843965 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl
index 96e63ca97c2..5beb71521d1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,15 +10,17 @@
return <<'END';
-V30
+V32
768
834
835
837
838
867
+6832
+6847
7618
-7655
+7670
7676
7680
8204
@@ -28,7 +30,7 @@ V30
65024
65040
65056
-65063
+65070
66045
66046
119143
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl
index 6ca1bec0be4..252c1447482 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V278
+V290
0
65
91
@@ -39,6 +39,10 @@ V278
902
903
904
+1541
+1542
+1564
+1565
1757
1758
3647
@@ -68,7 +72,7 @@ V278
8320
8335
8352
-8379
+8382
8448
8486
8487
@@ -82,21 +86,25 @@ V278
8585
8586
8592
-9204
+9211
9216
9255
9280
9291
9312
-9984
-9985
10240
10496
-11085
-11088
-11098
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
11776
-11836
+11843
12272
12284
12288
@@ -129,6 +137,8 @@ V278
42786
42888
42891
+43867
+43868
64830
64832
65040
@@ -226,13 +236,13 @@ V278
127136
127151
127153
-127167
+127168
127169
127184
127185
-127200
+127222
127232
-127243
+127245
127248
127279
127280
@@ -250,41 +260,43 @@ V278
127568
127570
127744
-127777
+127789
127792
-127798
-127799
-127869
+127870
127872
-127892
-127904
-127941
-127942
-127947
-127968
-127985
+127951
+127956
+127992
128000
-128063
-128064
-128065
-128066
-128248
-128249
-128253
+128255
128256
-128318
-128320
-128324
+128331
128336
-128360
-128507
-128577
+128378
+128379
+128420
+128421
+128579
128581
-128592
-128640
-128710
+128720
+128736
+128749
+128752
+128756
128768
128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
917505
917506
917536
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl
index 9231c26a9c5..d15d7cd36ae 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V140
+V172
33
34
44
@@ -63,6 +63,8 @@ V140
5743
5867
5870
+5941
+5943
6100
6103
6106
@@ -89,6 +91,10 @@ V140
8266
11822
11823
+11836
+11837
+11841
+11842
12289
12291
42238
@@ -139,8 +145,14 @@ V140
67672
67871
67872
+68182
+68184
+68336
+68342
68410
68416
+68505
+68509
69703
69710
69822
@@ -149,6 +161,26 @@ V140
69956
70085
70087
+70093
+70094
+70200
+70205
+71106
+71110
+71113
+71114
+71233
+71235
74864
-74868
+74869
+92782
+92784
+92917
+92918
+92983
+92986
+92996
+92997
+113823
+113824
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl
index a4729f50a84..27374e9d28b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl
index 1e024c6ad4f..387e4bba837 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1220
+V1254
65
91
192
@@ -305,6 +305,8 @@ V1220
883
886
887
+895
+896
902
903
904
@@ -543,6 +545,14 @@ V1220
1317
1318
1319
+1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
1329
1367
4256
@@ -1055,6 +1065,10 @@ V1220
42645
42646
42647
+42648
+42649
+42650
+42651
42786
42787
42788
@@ -1153,6 +1167,16 @@ V1220
42897
42898
42899
+42902
+42903
+42904
+42905
+42906
+42907
+42908
+42909
+42910
+42911
42912
42913
42914
@@ -1164,11 +1188,15 @@ V1220
42920
42921
42922
-42923
+42926
+42928
+42930
65313
65339
66560
66600
+71840
+71872
119808
119834
119860
@@ -1231,4 +1259,10 @@ V1220
120745
120778
120779
+127280
+127306
+127312
+127338
+127344
+127370
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl
index 6617a6eb9ae..637d2bdce64 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl
index 04b68d088c9..2a5d13f91cc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,11 +10,11 @@
return <<'END';
-V32
+V34
173
174
1536
-1541
+1542
1564
1565
1757
@@ -37,6 +37,8 @@ V32
65532
69821
69822
+113824
+113828
119155
119163
917505
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl
index ab1ea047fae..fcce9879f66 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl
index 48aed8b741d..8a42963f504 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl
index 5f6e1a5c3a7..bf9805dd9d3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V840
+V940
65
91
97
@@ -41,6 +41,8 @@ V840
888
890
894
+895
+896
902
903
904
@@ -54,7 +56,7 @@ V840
1015
1154
1162
-1320
+1328
1329
1367
1369
@@ -104,9 +106,7 @@ V840
2112
2137
2208
-2209
-2210
-2221
+2227
2308
2362
2365
@@ -116,9 +116,7 @@ V840
2392
2402
2417
-2424
-2425
-2432
+2433
2437
2445
2447
@@ -228,8 +226,6 @@ V840
3090
3113
3114
-3124
-3125
3130
3133
3134
@@ -340,7 +336,7 @@ V840
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -362,7 +358,7 @@ V840
6320
6390
6400
-6429
+6431
6656
6679
6917
@@ -526,7 +522,7 @@ V840
42560
42607
42623
-42648
+42654
42656
42736
42775
@@ -536,10 +532,10 @@ V840
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43010
43011
43014
@@ -585,6 +581,12 @@ V840
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44003
44032
@@ -646,9 +648,11 @@ V840
66208
66257
66304
-66335
+66336
66352
66379
+66384
+66422
66432
66462
66464
@@ -659,6 +663,16 @@ V840
66518
66560
66718
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -671,6 +685,10 @@ V840
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -689,12 +707,20 @@ V840
68148
68192
68221
+68224
+68253
+68288
+68296
+68297
+68325
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69635
@@ -705,26 +731,92 @@ V840
69865
69891
69927
+69968
+70003
+70006
+70007
70019
70067
70081
70085
+70106
+70107
+70144
+70162
+70163
+70188
+70320
+70367
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70461
+70462
+70493
+70498
+70784
+70832
+70852
+70854
+70855
+70856
+71040
+71087
+71168
+71216
+71236
+71237
71296
71339
+71840
+71904
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92880
+92910
+92928
+92976
+92992
+92996
+93027
+93048
+93053
+93072
93952
94021
94032
94033
94099
94112
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
119808
119893
119894
@@ -785,6 +877,8 @@ V840
120771
120772
120780
+124928
+125125
126464
126468
126469
@@ -851,4 +945,10 @@ V840
126634
126635
126652
+127280
+127306
+127312
+127338
+127344
+127370
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl
index 7ba30342c56..3620075e7cc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl
index 28c28a35006..5494270e98b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl
index 9e39affc0ed..dac75fd5a85 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl
index 103918f8785..352c5a9bb0c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V84
+V100
48
58
1632
@@ -39,6 +39,8 @@ V84
3312
3430
3440
+3558
+3568
3664
3674
3792
@@ -77,6 +79,8 @@ V84
43274
43472
43482
+43504
+43514
43600
43610
44016
@@ -91,8 +95,20 @@ V84
69952
70096
70106
+70384
+70394
+70864
+70874
+71248
+71258
71360
71370
+71904
+71914
+92768
+92778
+93008
+93018
120782
120832
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl
index bfd77a6386b..0884cc6e42c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1165
+V1299
0
10
14
@@ -63,7 +63,7 @@ V1165
886
888
890
-895
+896
902
907
908
@@ -75,7 +75,7 @@ V1165
1015
1154
1155
-1320
+1328
1329
1367
1369
@@ -99,7 +99,7 @@ V1165
1520
1525
1536
-1541
+1542
1548
1550
1552
@@ -135,20 +135,12 @@ V1165
2112
2140
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
2404
2406
2416
2417
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -296,7 +288,7 @@ V1165
3032
3046
3056
-3073
+3072
3076
3077
3085
@@ -305,8 +297,6 @@ V1165
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -322,7 +312,7 @@ V1165
3172
3174
3184
-3202
+3201
3204
3205
3213
@@ -350,7 +340,7 @@ V1165
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -392,6 +382,8 @@ V1165
3543
3544
3552
+3558
+3568
3570
3572
3633
@@ -509,7 +501,7 @@ V1165
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -541,7 +533,7 @@ V1165
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -564,6 +556,8 @@ V1165
6794
6800
6810
+6832
+6847
6912
6988
6992
@@ -582,8 +576,10 @@ V1165
7379
7380
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -757,7 +753,7 @@ V1165
42612
42622
42623
-42648
+42654
42655
42738
42775
@@ -767,10 +763,10 @@ V1165
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43048
43072
43124
@@ -792,6 +788,10 @@ V1165
43457
43471
43482
+43493
+43494
+43504
+43514
43520
43575
43584
@@ -799,7 +799,7 @@ V1165
43600
43610
43643
-43644
+43646
43696
43697
43698
@@ -824,6 +824,12 @@ V1165
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44011
44012
@@ -867,7 +873,7 @@ V1165
65043
65045
65056
-65063
+65070
65075
65077
65101
@@ -930,10 +936,14 @@ V1165
66205
66208
66257
+66272
+66273
66304
-66335
+66336
66352
66379
+66384
+66427
66432
66462
66464
@@ -946,6 +956,16 @@ V1165
66718
66720
66730
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -958,6 +978,10 @@ V1165
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -982,19 +1006,27 @@ V1165
68160
68192
68221
+68224
+68253
+68288
+68296
+68297
+68327
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69632
69703
69734
69744
-69760
+69759
69819
69821
69822
@@ -1006,22 +1038,102 @@ V1165
69941
69942
69952
+69968
+70004
+70006
+70007
70016
70085
70096
-70106
+70107
+70144
+70162
+70163
+70200
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70854
+70855
+70856
+70864
+70874
+71040
+71094
+71096
+71105
+71168
+71233
+71236
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71914
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92880
+92910
+92912
+92917
+92928
+92983
+92992
+92996
+93008
+93018
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -1030,6 +1142,18 @@ V1165
94112
110592
110593
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113821
+113823
+113824
+113828
119141
119146
119149
@@ -1102,6 +1226,10 @@ V1165
120780
120782
120832
+124928
+125125
+125136
+125143
126464
126468
126469
@@ -1168,6 +1296,12 @@ V1165
126634
126635
126652
+127280
+127306
+127312
+127338
+127344
+127370
127462
127488
917505
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl
index 089df7c5028..43a9dce9781 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1142
+V1266
48
58
65
@@ -47,6 +47,8 @@ V1142
888
891
894
+895
+896
902
907
908
@@ -60,7 +62,7 @@ V1142
1155
1160
1162
-1320
+1328
1329
1367
1369
@@ -108,20 +110,12 @@ V1142
2112
2140
2208
-2209
-2210
-2221
+2227
2276
-2303
-2304
2404
2406
2416
2417
-2424
-2425
-2432
-2433
2436
2437
2445
@@ -269,7 +263,7 @@ V1142
3032
3046
3056
-3073
+3072
3076
3077
3085
@@ -278,8 +272,6 @@ V1142
3090
3113
3114
-3124
-3125
3130
3133
3141
@@ -295,7 +287,7 @@ V1142
3172
3174
3184
-3202
+3201
3204
3205
3213
@@ -323,7 +315,7 @@ V1142
3312
3313
3315
-3330
+3329
3332
3333
3341
@@ -365,6 +357,8 @@ V1142
3543
3544
3552
+3558
+3568
3570
3572
3585
@@ -494,7 +488,7 @@ V1142
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -528,7 +522,7 @@ V1142
6320
6390
6400
-6429
+6431
6432
6444
6448
@@ -555,6 +549,8 @@ V1142
6810
6823
6824
+6832
+6846
6912
6988
6992
@@ -573,8 +569,10 @@ V1142
7379
7380
7415
+7416
+7418
7424
-7655
+7670
7676
7958
7960
@@ -736,7 +734,7 @@ V1142
42612
42622
42623
-42648
+42654
42655
42738
42775
@@ -746,10 +744,10 @@ V1142
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43048
43072
43124
@@ -771,6 +769,8 @@ V1142
43457
43471
43482
+43488
+43519
43520
43575
43584
@@ -780,8 +780,6 @@ V1142
43616
43639
43642
-43644
-43648
43715
43739
43742
@@ -799,6 +797,12 @@ V1142
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44011
44012
@@ -846,7 +850,7 @@ V1142
65024
65040
65056
-65063
+65070
65075
65077
65101
@@ -905,10 +909,14 @@ V1142
66205
66208
66257
+66272
+66273
66304
-66335
+66336
66352
66379
+66384
+66427
66432
66462
66464
@@ -921,6 +929,16 @@ V1142
66718
66720
66730
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -933,6 +951,10 @@ V1142
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -957,19 +979,27 @@ V1142
68160
68192
68221
+68224
+68253
+68288
+68296
+68297
+68327
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69632
69703
69734
69744
-69760
+69759
69819
69840
69865
@@ -979,22 +1009,102 @@ V1142
69941
69942
69952
+69968
+70004
+70006
+70007
70016
70085
70096
-70106
+70107
+70144
+70162
+70163
+70200
+70320
+70379
+70384
+70394
+70401
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70784
+70854
+70855
+70856
+70864
+70874
+71040
+71094
+71096
+71105
+71168
+71233
+71236
+71237
+71248
+71258
71296
71352
71360
71370
+71840
+71914
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92768
+92778
+92880
+92910
+92912
+92917
+92928
+92983
+92992
+92996
+93008
+93018
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -1003,6 +1113,16 @@ V1142
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113821
+113823
119141
119146
119149
@@ -1077,6 +1197,10 @@ V1142
120780
120782
120832
+124928
+125125
+125136
+125143
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl
index d5c8e61586f..580bfaecc41 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by mktables from the Unicode
-# database, Version 6.3.0. Any changes made here will be lost!
+# database, Version 7.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V990
+V1090
65
91
97
@@ -41,6 +41,8 @@ V990
888
891
894
+895
+896
902
903
904
@@ -54,7 +56,7 @@ V990
1015
1154
1162
-1320
+1328
1329
1367
1369
@@ -106,9 +108,7 @@ V990
2112
2137
2208
-2209
-2210
-2221
+2227
2308
2362
2365
@@ -118,9 +118,7 @@ V990
2392
2402
2417
-2424
-2425
-2432
+2433
2437
2445
2447
@@ -230,8 +228,6 @@ V990
3090
3113
3114
-3124
-3125
3130
3133
3134
@@ -400,7 +396,7 @@ V990
5792
5867
5870
-5873
+5881
5888
5901
5902
@@ -428,7 +424,7 @@ V990
6320
6390
6400
-6429
+6431
6480
6510
6512
@@ -616,7 +612,7 @@ V990
42560
42607
42623
-42648
+42654
42656
42736
42775
@@ -626,10 +622,10 @@ V990
42891
42895
42896
-42900
-42912
-42923
-43000
+42926
+42928
+42930
+42999
43010
43011
43014
@@ -655,6 +651,12 @@ V990
43443
43471
43472
+43488
+43493
+43494
+43504
+43514
+43519
43520
43561
43584
@@ -665,7 +667,7 @@ V990
43639
43642
43643
-43648
+43646
43696
43697
43698
@@ -693,6 +695,12 @@ V990
43815
43816
43823
+43824
+43867
+43868
+43872
+43876
+43878
43968
44003
44032
@@ -786,9 +794,11 @@ V990
66208
66257
66304
-66335
+66336
66352
66379
+66384
+66422
66432
66462
66464
@@ -799,6 +809,16 @@ V990
66518
66560
66718
+66816
+66856
+66864
+66916
+67072
+67383
+67392
+67414
+67424
+67432
67584
67590
67592
@@ -811,6 +831,10 @@ V990
67645
67647
67670
+67680
+67703
+67712
+67743
67840
67862
67872
@@ -829,12 +853,20 @@ V990
68148
68192
68221
+68224
+68253
+68288
+68296
+68297
+68325
68352
68406
68416
68438
68448
68467
+68480
+68498
68608
68681
69635
@@ -845,20 +877,78 @@ V990
69865
69891
69927
+69968
+70003
+70006
+70007
70019
70067
70081
70085
+70106
+70107
+70144
+70162
+70163
+70188
+70320
+70367
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70461
+70462
+70493
+70498
+70784
+70832
+70852
+70854
+70855
+70856
+71040
+71087
+71168
+71216
+71236
+71237
71296
71339
+71840
+71904
+71935
+71936
+72384
+72441
73728
-74607
+74649
74752
-74851
+74863
77824
78895
92160
92729
+92736
+92767
+92880
+92910
+92928
+92976
+92992
+92996
+93027
+93048
+93053
+93072
93952
94021
94032
@@ -867,6 +957,14 @@ V990
94112
110592
110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
119808
119893
119894
@@ -927,6 +1025,8 @@ V990
120771
120772
120780
+124928
+125125
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/version b/Master/tlpkg/tlperl/lib/unicore/version
index 798e38995c4..66ce77b7ead 100644
--- a/Master/tlpkg/tlperl/lib/unicore/version
+++ b/Master/tlpkg/tlperl/lib/unicore/version
@@ -1 +1 @@
-6.3.0
+7.0.0
diff --git a/Master/tlpkg/tlperl/lib/utf8.pm b/Master/tlpkg/tlperl/lib/utf8.pm
index 6a979f147b3..23fbfac4a24 100644
--- a/Master/tlpkg/tlperl/lib/utf8.pm
+++ b/Master/tlpkg/tlperl/lib/utf8.pm
@@ -2,7 +2,7 @@ package utf8;
$utf8::hint_bits = 0x00800000;
-our $VERSION = '1.13_01';
+our $VERSION = '1.17';
sub import {
$^H |= $utf8::hint_bits;
@@ -42,6 +42,14 @@ utf8 - Perl pragma to enable/disable UTF-8 (or UTF-EBCDIC) in source code
utf8::encode($string); # "\x{100}" becomes "\xc4\x80"
utf8::decode($string); # "\xc4\x80" becomes "\x{100}"
+ # Convert a code point from the platform native character set to
+ # Unicode, and vice-versa.
+ $unicode = utf8::native_to_unicode(ord('A')); # returns 65 on both
+ # ASCII and EBCDIC
+ # platforms
+ $native = utf8::unicode_to_native(65); # returns 65 on ASCII
+ # platforms; 193 on EBCDIC
+
$flag = utf8::is_utf8($string); # since Perl 5.8.1
$flag = utf8::valid($string);
@@ -66,7 +74,7 @@ I<UTF-X> is used to refer to UTF-8 on ASCII and ISO Latin based
platforms and UTF-EBCDIC on EBCDIC based platforms.
See also the effects of the C<-C> switch and its cousin, the
-C<$ENV{PERL_UNICODE}>, in L<perlrun>.
+C<PERL_UNICODE> environment variable, in L<perlrun>.
Enabling the C<utf8> pragma has the following effect:
@@ -144,8 +152,8 @@ individual I<UTF-X> bytes of the character. The UTF8 flag is turned off.
Returns nothing.
my $a = "\x{100}"; # $a contains one character, with ord 0x100
- utf8::encode($a); # $a contains two characters, with ords 0xc4 and
- # 0x80
+ utf8::encode($a); # $a contains two characters, with ords (on
+ # ASCII platforms) 0xc4 and 0x80
B<Note that this function does not handle arbitrary encodings.>
Therefore Encode is recommended for the general purposes; see also
@@ -161,14 +169,49 @@ turned on only if the source string contains multiple-byte I<UTF-X>
characters. If I<$string> is invalid as I<UTF-X>, returns false;
otherwise returns true.
- my $a = "\xc4\x80"; # $a contains two characters, with ords
- # 0xc4 and 0x80
- utf8::decode($a); # $a contains one character, with ord 0x100
+ my $a = "\xc4\x80"; # $a contains two characters, with ords
+ # 0xc4 and 0x80
+ utf8::decode($a); # On ASCII platforms, $a contains one char,
+ # with ord 0x100. On EBCDIC platforms, $a
+ # is unchanged and the function returns FALSE.
+
+(C<"\xc4\x80"> is not a valid sequence of bytes in any UTF-8-encoded
+character(s) in the EBCDIC code pages that Perl supports, which is why the
+above example returns failure on them. What does decode into C<\x{100}>
+depends on the platform. It is C<"\x8C\x41"> in IBM-1047.)
B<Note that this function does not handle arbitrary encodings.>
Therefore Encode is recommended for the general purposes; see also
L<Encode>.
+=item * C<$unicode = utf8::native_to_unicode($code_point)>
+
+(Since Perl v5.8.0)
+This takes an unsigned integer (which represents the ordinal number of a
+character (or a code point) on the platform the program is being run on) and
+returns its Unicode equivalent value. Since ASCII platforms natively use the
+Unicode code points, this function returns its input on them. On EBCDIC
+platforms it converts from EBCDIC to Unicode.
+
+A meaningless value will currently be returned if the input is not an unsigned
+integer.
+
+Since Perl v5.22.0, calls to this function are optimized out on ASCII
+platforms, so there is no performance hit in using it there.
+
+=item * C<$native = utf8::unicode_to_native($code_point)>
+
+(Since Perl v5.8.0)
+This is the inverse of C<utf8::native_to_unicode()>, converting the other
+direction. Again, on ASCII platforms, this returns its input, but on EBCDIC
+platforms it will find the native platform code point, given any Unicode one.
+
+A meaningless value will currently be returned if the input is not an unsigned
+integer.
+
+Since Perl v5.22.0, calls to this function are optimized out on ASCII
+platforms, so there is no performance hit in using it there.
+
=item * C<$flag = utf8::is_utf8($string)>
(Since Perl 5.8.1) Test whether I<$string> is marked internally as encoded in
diff --git a/Master/tlpkg/tlperl/lib/utf8_heavy.pl b/Master/tlpkg/tlperl/lib/utf8_heavy.pl
index 0d2888f5a49..e0c3d5ed636 100644
--- a/Master/tlpkg/tlperl/lib/utf8_heavy.pl
+++ b/Master/tlpkg/tlperl/lib/utf8_heavy.pl
@@ -95,9 +95,9 @@ sub _loose_name ($) {
# keys TYPE, BITS, EXTRAS, LIST, and NONE with values having the
# same meanings as the input parameters.
# SPECIALS contains a reference to any special-treatment hash in the
+ # property.
# INVERT_IT is non-zero if the result should be inverted before use
# USER_DEFINED is non-zero if the result came from a user-defined
- # property.
my $file; ## file to load data from, and also part of the %Cache key.
# Change this to get a different set of Unicode tables
@@ -135,8 +135,11 @@ sub _loose_name ($) {
my $caller0 = caller(0);
- my $caller1 = $type =~ s/(.+)::// ? $1 : $caller0 eq 'main' ?
- 'main' : caller(1);
+ my $caller1 = $type =~ s/(.+):://
+ ? $1
+ : $caller0 eq 'main'
+ ? 'main'
+ : caller(1);
if (defined $caller1 && $type =~ /^I[ns]\w+$/) {
my $prop = "${caller1}::$type";
@@ -172,7 +175,11 @@ sub _loose_name ($) {
}
if (miniperl) {
eval "require '$unicore_dir/Heavy.pl'";
- last GETFILE if $@;
+ if ($@) {
+ print STDERR __LINE__, ": '$@'\n" if DEBUG;
+ pop @recursed if @recursed;
+ return $type;
+ }
}
else {
require "$unicore_dir/Heavy.pl";
@@ -567,8 +574,8 @@ sub _loose_name ($) {
$list = join '', $taint,
map { $_->[1] }
sort { $a->[0] <=> $b->[0] }
- map { /^([0-9a-fA-F]+)/; [ CORE::hex($1), $_ ] }
- grep { /^([0-9a-fA-F]+)/ and not $seen{$1}++ } @tmp; # XXX doesn't do ranges right
+ map { /^([0-9a-fA-F]+)/ && !$seen{$1}++ ? [ CORE::hex($1), $_ ] : () }
+ @tmp; # XXX doesn't do ranges right
}
else {
# mktables has gone to some trouble to make non-user defined
diff --git a/Master/tlpkg/tlperl/lib/warnings.pm b/Master/tlpkg/tlperl/lib/warnings.pm
index 059c7c5b24b..796b4150f98 100644
--- a/Master/tlpkg/tlperl/lib/warnings.pm
+++ b/Master/tlpkg/tlperl/lib/warnings.pm
@@ -5,7 +5,7 @@
package warnings;
-our $VERSION = '1.23';
+our $VERSION = "1.34";
# Verify that we're called correctly so that warnings will work.
# see also strict.pm.
@@ -14,6 +14,469 @@ unless ( __FILE__ =~ /(^|[\/\\])\Q${\__PACKAGE__}\E\.pmc?$/ ) {
die("Incorrect use of pragma '${\__PACKAGE__}' at $f line $l.\n");
}
+our %Offsets = (
+ # Warnings Categories added in Perl 5.008
+ 'all' => 0,
+ 'closure' => 2,
+ 'deprecated' => 4,
+ 'exiting' => 6,
+ 'glob' => 8,
+ 'io' => 10,
+ 'closed' => 12,
+ 'exec' => 14,
+ 'layer' => 16,
+ 'newline' => 18,
+ 'pipe' => 20,
+ 'unopened' => 22,
+ 'misc' => 24,
+ 'numeric' => 26,
+ 'once' => 28,
+ 'overflow' => 30,
+ 'pack' => 32,
+ 'portable' => 34,
+ 'recursion' => 36,
+ 'redefine' => 38,
+ 'regexp' => 40,
+ 'severe' => 42,
+ 'debugging' => 44,
+ 'inplace' => 46,
+ 'internal' => 48,
+ 'malloc' => 50,
+ 'signal' => 52,
+ 'substr' => 54,
+ 'syntax' => 56,
+ 'ambiguous' => 58,
+ 'bareword' => 60,
+ 'digit' => 62,
+ 'parenthesis' => 64,
+ 'precedence' => 66,
+ 'printf' => 68,
+ 'prototype' => 70,
+ 'qw' => 72,
+ 'reserved' => 74,
+ 'semicolon' => 76,
+ 'taint' => 78,
+ 'threads' => 80,
+ 'uninitialized' => 82,
+ 'unpack' => 84,
+ 'untie' => 86,
+ 'utf8' => 88,
+ 'void' => 90,
+
+ # Warnings Categories added in Perl 5.011
+ 'imprecision' => 92,
+ 'illegalproto' => 94,
+
+ # Warnings Categories added in Perl 5.013
+ 'non_unicode' => 96,
+ 'nonchar' => 98,
+ 'surrogate' => 100,
+
+ # Warnings Categories added in Perl 5.017
+ 'experimental' => 102,
+ 'experimental::lexical_subs' => 104,
+ 'experimental::lexical_topic' => 106,
+ 'experimental::regex_sets' => 108,
+ 'experimental::smartmatch' => 110,
+
+ # Warnings Categories added in Perl 5.019
+ 'experimental::autoderef' => 112,
+ 'experimental::postderef' => 114,
+ 'experimental::signatures' => 116,
+ 'syscalls' => 118,
+
+ # Warnings Categories added in Perl 5.021
+ 'experimental::bitwise' => 120,
+ 'experimental::const_attr' => 122,
+ 'experimental::re_strict' => 124,
+ 'experimental::refaliasing' => 126,
+ 'experimental::win32_perlio' => 128,
+ 'locale' => 130,
+ 'missing' => 132,
+ 'redundant' => 134,
+);
+
+our %Bits = (
+ 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55", # [0..67]
+ 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29]
+ 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30]
+ 'closed' => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
+ 'closure' => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
+ 'debugging' => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
+ 'deprecated' => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
+ 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
+ 'exec' => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
+ 'exiting' => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
+ 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\x15\x55\x01", # [51..58,60..64]
+ 'experimental::autoderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [56]
+ 'experimental::bitwise' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [60]
+ 'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [61]
+ 'experimental::lexical_subs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [52]
+ 'experimental::lexical_topic' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [53]
+ 'experimental::postderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [57]
+ 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [62]
+ 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [63]
+ 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [54]
+ 'experimental::signatures' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [58]
+ 'experimental::smartmatch' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [55]
+ 'experimental::win32_perlio' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [64]
+ 'glob' => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
+ 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [47]
+ 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [46]
+ 'inplace' => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
+ 'internal' => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
+ 'io' => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [5..11,59]
+ 'layer' => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
+ 'locale' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [65]
+ 'malloc' => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
+ 'misc' => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
+ 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [66]
+ 'newline' => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
+ 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [48]
+ 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [49]
+ 'numeric' => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
+ 'once' => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
+ 'overflow' => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
+ 'pack' => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
+ 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [32]
+ 'pipe' => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
+ 'portable' => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
+ 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [33]
+ 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [34]
+ 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [35]
+ 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [36]
+ 'recursion' => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
+ 'redefine' => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
+ 'redundant' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [67]
+ 'regexp' => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
+ 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [37]
+ 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [38]
+ 'severe' => "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
+ 'signal' => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
+ 'substr' => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
+ 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [50]
+ 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00\x00\x00\x00", # [28..38,47]
+ 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [59]
+ 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [39]
+ 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [40]
+ 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [41]
+ 'unopened' => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
+ 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [42]
+ 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [43]
+ 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x15\x00\x00\x00\x00", # [44,48..50]
+ 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [45]
+);
+
+our %DeadBits = (
+ 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", # [0..67]
+ 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29]
+ 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30]
+ 'closed' => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
+ 'closure' => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
+ 'debugging' => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
+ 'deprecated' => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
+ 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
+ 'exec' => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
+ 'exiting' => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
+ 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaa\x2a\xaa\x02", # [51..58,60..64]
+ 'experimental::autoderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [56]
+ 'experimental::bitwise' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [60]
+ 'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [61]
+ 'experimental::lexical_subs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [52]
+ 'experimental::lexical_topic' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [53]
+ 'experimental::postderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [57]
+ 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [62]
+ 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [63]
+ 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [54]
+ 'experimental::signatures' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [58]
+ 'experimental::smartmatch' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [55]
+ 'experimental::win32_perlio' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [64]
+ 'glob' => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
+ 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [47]
+ 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [46]
+ 'inplace' => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
+ 'internal' => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
+ 'io' => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [5..11,59]
+ 'layer' => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
+ 'locale' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [65]
+ 'malloc' => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
+ 'misc' => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
+ 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [66]
+ 'newline' => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
+ 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [48]
+ 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [49]
+ 'numeric' => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
+ 'once' => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
+ 'overflow' => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
+ 'pack' => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
+ 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [32]
+ 'pipe' => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
+ 'portable' => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
+ 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [33]
+ 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [34]
+ 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [35]
+ 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [36]
+ 'recursion' => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
+ 'redefine' => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
+ 'redundant' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [67]
+ 'regexp' => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
+ 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [37]
+ 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [38]
+ 'severe' => "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
+ 'signal' => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
+ 'substr' => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
+ 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [50]
+ 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00\x00\x00\x00", # [28..38,47]
+ 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [59]
+ 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [39]
+ 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [40]
+ 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [41]
+ 'unopened' => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
+ 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [42]
+ 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [43]
+ 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x2a\x00\x00\x00\x00", # [44,48..50]
+ 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [45]
+);
+
+# These are used by various things, including our own tests
+our $NONE = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
+our $DEFAULT = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x55\x15\x55\x05", # [2,56,60,61,52,53,57,62,63,54,58,55,64,4,65,22,23,25]
+our $LAST_BIT = 136 ;
+our $BYTES = 17 ;
+
+our $All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
+
+sub Croaker
+{
+ require Carp; # this initializes %CarpInternal
+ local $Carp::CarpInternal{'warnings'};
+ delete $Carp::CarpInternal{'warnings'};
+ Carp::croak(@_);
+}
+
+sub _bits {
+ my $mask = shift ;
+ my $catmask ;
+ my $fatal = 0 ;
+ my $no_fatal = 0 ;
+
+ foreach my $word ( @_ ) {
+ if ($word eq 'FATAL') {
+ $fatal = 1;
+ $no_fatal = 0;
+ }
+ elsif ($word eq 'NONFATAL') {
+ $fatal = 0;
+ $no_fatal = 1;
+ }
+ elsif ($catmask = $Bits{$word}) {
+ $mask |= $catmask ;
+ $mask |= $DeadBits{$word} if $fatal ;
+ $mask &= ~($DeadBits{$word}|$All) if $no_fatal ;
+ }
+ else
+ { Croaker("Unknown warnings category '$word'")}
+ }
+
+ return $mask ;
+}
+
+sub bits
+{
+ # called from B::Deparse.pm
+ push @_, 'all' unless @_ ;
+ return _bits(undef, @_) ;
+}
+
+sub import
+{
+ shift;
+
+ my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ;
+
+ if (vec($mask, $Offsets{'all'}, 1)) {
+ $mask |= $Bits{'all'} ;
+ $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1);
+ }
+
+ # append 'all' when implied (after a lone "FATAL" or "NONFATAL")
+ push @_, 'all' if @_==1 && ( $_[0] eq 'FATAL' || $_[0] eq 'NONFATAL' );
+
+ # Empty @_ is equivalent to @_ = 'all' ;
+ ${^WARNING_BITS} = @_ ? _bits($mask, @_) : $mask | $Bits{all} ;
+}
+
+sub unimport
+{
+ shift;
+
+ my $catmask ;
+ my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ;
+
+ if (vec($mask, $Offsets{'all'}, 1)) {
+ $mask |= $Bits{'all'} ;
+ $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1);
+ }
+
+ # append 'all' when implied (empty import list or after a lone "FATAL")
+ push @_, 'all' if !@_ || @_==1 && $_[0] eq 'FATAL';
+
+ foreach my $word ( @_ ) {
+ if ($word eq 'FATAL') {
+ next;
+ }
+ elsif ($catmask = $Bits{$word}) {
+ $mask &= ~($catmask | $DeadBits{$word} | $All);
+ }
+ else
+ { Croaker("Unknown warnings category '$word'")}
+ }
+
+ ${^WARNING_BITS} = $mask ;
+}
+
+my %builtin_type; @builtin_type{qw(SCALAR ARRAY HASH CODE REF GLOB LVALUE Regexp)} = ();
+
+sub MESSAGE () { 4 };
+sub FATAL () { 2 };
+sub NORMAL () { 1 };
+
+sub __chk
+{
+ my $category ;
+ my $offset ;
+ my $isobj = 0 ;
+ my $wanted = shift;
+ my $has_message = $wanted & MESSAGE;
+
+ unless (@_ == 1 || @_ == ($has_message ? 2 : 0)) {
+ my $sub = (caller 1)[3];
+ my $syntax = $has_message ? "[category,] 'message'" : '[category]';
+ Croaker("Usage: $sub($syntax)");
+ }
+
+ my $message = pop if $has_message;
+
+ if (@_) {
+ # check the category supplied.
+ $category = shift ;
+ if (my $type = ref $category) {
+ Croaker("not an object")
+ if exists $builtin_type{$type};
+ $category = $type;
+ $isobj = 1 ;
+ }
+ $offset = $Offsets{$category};
+ Croaker("Unknown warnings category '$category'")
+ unless defined $offset;
+ }
+ else {
+ $category = (caller(1))[0] ;
+ $offset = $Offsets{$category};
+ Croaker("package '$category' not registered for warnings")
+ unless defined $offset ;
+ }
+
+ my $i;
+
+ if ($isobj) {
+ my $pkg;
+ $i = 2;
+ while (do { { package DB; $pkg = (caller($i++))[0] } } ) {
+ last unless @DB::args && $DB::args[0] =~ /^$category=/ ;
+ }
+ $i -= 2 ;
+ }
+ else {
+ $i = _error_loc(); # see where Carp will allocate the error
+ }
+
+ # Default to 0 if caller returns nothing. Default to $DEFAULT if it
+ # explicitly returns undef.
+ my(@callers_bitmask) = (caller($i))[9] ;
+ my $callers_bitmask =
+ @callers_bitmask ? $callers_bitmask[0] // $DEFAULT : 0 ;
+
+ my @results;
+ foreach my $type (FATAL, NORMAL) {
+ next unless $wanted & $type;
+
+ push @results, (vec($callers_bitmask, $offset + $type - 1, 1) ||
+ vec($callers_bitmask, $Offsets{'all'} + $type - 1, 1));
+ }
+
+ # &enabled and &fatal_enabled
+ return $results[0] unless $has_message;
+
+ # &warnif, and the category is neither enabled as warning nor as fatal
+ return if $wanted == (NORMAL | FATAL | MESSAGE)
+ && !($results[0] || $results[1]);
+
+ require Carp;
+ Carp::croak($message) if $results[0];
+ # will always get here for &warn. will only get here for &warnif if the
+ # category is enabled
+ Carp::carp($message);
+}
+
+sub _mkMask
+{
+ my ($bit) = @_;
+ my $mask = "";
+
+ vec($mask, $bit, 1) = 1;
+ return $mask;
+}
+
+sub register_categories
+{
+ my @names = @_;
+
+ for my $name (@names) {
+ if (! defined $Bits{$name}) {
+ $Bits{$name} = _mkMask($LAST_BIT);
+ vec($Bits{'all'}, $LAST_BIT, 1) = 1;
+ $Offsets{$name} = $LAST_BIT ++;
+ foreach my $k (keys %Bits) {
+ vec($Bits{$k}, $LAST_BIT, 1) = 0;
+ }
+ $DeadBits{$name} = _mkMask($LAST_BIT);
+ vec($DeadBits{'all'}, $LAST_BIT++, 1) = 1;
+ }
+ }
+}
+
+sub _error_loc {
+ require Carp;
+ goto &Carp::short_error_loc; # don't introduce another stack frame
+}
+
+sub enabled
+{
+ return __chk(NORMAL, @_);
+}
+
+sub fatal_enabled
+{
+ return __chk(FATAL, @_);
+}
+
+sub warn
+{
+ return __chk(FATAL | MESSAGE, @_);
+}
+
+sub warnif
+{
+ return __chk(NORMAL | FATAL | MESSAGE, @_);
+}
+
+# These are not part of any public interface, so we can delete them to save
+# space.
+delete @warnings::{qw(NORMAL FATAL MESSAGE)};
+
+1;
+__END__
=head1 NAME
warnings - Perl pragma to control optional warnings
@@ -88,7 +551,7 @@ warning, but the assignment to the scalar C<$b> will not.
=head2 Default Warnings and Optional Warnings
Before the introduction of lexical warnings, Perl had two classes of
-warnings: mandatory and optional.
+warnings: mandatory and optional.
As its name suggests, if your code tripped a mandatory warning, you
would get a warning whether you wanted it or not.
@@ -220,7 +683,7 @@ will work unchanged.
The B<-w> flag just sets the global C<$^W> variable as in 5.005. This
means that any legacy code that currently relies on manipulating C<$^W>
-to control warning behavior will still work as is.
+to control warning behavior will still work as is.
=item 3.
@@ -265,17 +728,27 @@ The current hierarchy is:
| |
| +- experimental::autoderef
| |
+ | +- experimental::bitwise
+ | |
+ | +- experimental::const_attr
+ | |
| +- experimental::lexical_subs
| |
| +- experimental::lexical_topic
| |
| +- experimental::postderef
| |
+ | +- experimental::re_strict
+ | |
+ | +- experimental::refaliasing
+ | |
| +- experimental::regex_sets
| |
| +- experimental::signatures
| |
| +- experimental::smartmatch
+ | |
+ | +- experimental::win32_perlio
|
+- glob
|
@@ -297,8 +770,12 @@ The current hierarchy is:
| |
| +- unopened
|
+ +- locale
+ |
+- misc
|
+ +- missing
+ |
+- numeric
|
+- once
@@ -313,6 +790,8 @@ The current hierarchy is:
|
+- redefine
|
+ +- redundant
+ |
+- regexp
|
+- severe --------+
@@ -379,7 +858,7 @@ Just like the "strict" pragma any of these categories can be combined
no warnings qw(io syntax untie);
Also like the "strict" pragma, if there is more than one instance of the
-C<warnings> pragma in a given scope the cumulative effect is additive.
+C<warnings> pragma in a given scope the cumulative effect is additive.
use warnings qw(void); # only "void" warnings enabled
...
@@ -394,12 +873,62 @@ Note: Before Perl 5.8.0, the lexical warnings category "deprecated" was a
sub-category of the "syntax" category. It is now a top-level category
in its own right.
+Note: Before 5.21.0, the "missing" lexical warnings category was
+internally defined to be the same as the "uninitialized" category. It
+is now a top-level category in its own right.
+
=head2 Fatal Warnings
X<warning, fatal>
-The presence of the word "FATAL" in the category list will escalate any
-warnings detected from the categories specified in the lexical scope
-into fatal errors. In the code below, the use of C<time>, C<length>
+The presence of the word "FATAL" in the category list will escalate
+warnings in those categories into fatal errors in that lexical scope.
+
+B<NOTE:> FATAL warnings should be used with care, particularly
+C<< FATAL => 'all' >>.
+
+Libraries using L<warnings::warn|/FUNCTIONS> for custom warning categories
+generally don't expect L<warnings::warn|/FUNCTIONS> to be fatal and can wind up
+in an unexpected state as a result. For XS modules issuing categorized
+warnings, such unanticipated exceptions could also expose memory leak bugs.
+
+Moreover, the Perl interpreter itself has had serious bugs involving
+fatalized warnings. For a summary of resolved and unresolved problems as
+of January 2015, please see
+L<this perl5-porters post|http://www.nntp.perl.org/group/perl.perl5.porters/2015/01/msg225235.html>.
+
+While some developers find fatalizing some warnings to be a useful
+defensive programming technique, using C<< FATAL => 'all' >> to fatalize
+all possible warning categories -- including custom ones -- is particularly
+risky. Therefore, the use of C<< FATAL => 'all' >> is
+L<discouraged|perlpolicy/discouraged>.
+
+The L<strictures|strictures/VERSION-2> module on CPAN offers one example of
+a warnings subset that the module's authors believe is relatively safe to
+fatalize.
+
+B<NOTE:> users of FATAL warnings, especially those using
+C<< FATAL => 'all' >>, should be fully aware that they are risking future
+portability of their programs by doing so. Perl makes absolutely no
+commitments to not introduce new warnings or warnings categories in the
+future; indeed, we explicitly reserve the right to do so. Code that may
+not warn now may warn in a future release of Perl if the Perl5 development
+team deems it in the best interests of the community to do so. Should code
+using FATAL warnings break due to the introduction of a new warning we will
+NOT consider it an incompatible change. Users of FATAL warnings should
+take special caution during upgrades to check to see if their code triggers
+any new warnings and should pay particular attention to the fine print of
+the documentation of the features they use to ensure they do not exploit
+features that are documented as risky, deprecated, or unspecified, or where
+the documentation says "so don't do that", or anything with the same sense
+and spirit. Use of such features in combination with FATAL warnings is
+ENTIRELY AT THE USER'S RISK.
+
+The following documentation describes how to use FATAL warnings but the
+perl5 porters strongly recommend that you understand the risks before doing
+so, especially for library code intended for use by others, as there is no
+way for downstream users to change the choice of fatal categories.
+
+In the code below, the use of C<time>, C<length>
and C<join> can all produce a C<"Useless use of xxx in void context">
warning.
@@ -419,7 +948,7 @@ warning.
When run it produces this output
Useless use of time in void context at fatal line 3.
- Useless use of length in void context at fatal line 7.
+ Useless use of length in void context at fatal line 7.
The scope where C<length> is used has escalated the C<void> warnings
category into a fatal error, so the program terminates immediately when it
@@ -452,24 +981,6 @@ C<< use warnings 'FATAL'; >>, C<< use warnings 'NONFATAL'; >> and
C<< no warnings 'FATAL'; >> was unspecified; they did not behave as if
they included the C<< => 'all' >> portion. As of 5.20, they do.)
-B<NOTE:> Users of FATAL warnings, especially
-those using C<< FATAL => 'all' >>
-should be fully aware that they are risking future portability of their
-programs by doing so. Perl makes absolutely no commitments to not
-introduce new warnings, or warnings categories in the future, and indeed
-we explicitly reserve the right to do so. Code that may not warn now may
-warn in a future release of Perl if the Perl5 development team deems it
-in the best interests of the community to do so. Should code using FATAL
-warnings break due to the introduction of a new warning we will NOT
-consider it an incompatible change. Users of FATAL warnings should take
-special caution during upgrades to check to see if their code triggers
-any new warnings and should pay particular attention to the fine print of
-the documentation of the features they use to ensure they do not exploit
-features that are documented as risky, deprecated, or unspecified, or where
-the documentation says "so don't do that", or anything with the same sense
-and spirit. Use of such features in combination with FATAL warnings is
-ENTIRELY AT THE USER'S RISK.
-
=head2 Reporting Warnings from a Module
X<warning, reporting> X<warning, registering>
@@ -514,8 +1025,10 @@ this snippet of code:
package MyMod::Abc;
sub open {
- warnings::warnif("deprecated",
- "open is deprecated, use new instead");
+ if (warnings::enabled("deprecated")) {
+ warnings::warn("deprecated",
+ "open is deprecated, use new instead");
+ }
new(@_);
}
@@ -596,7 +1109,7 @@ Consider this example:
1;
-The code below makes use of both modules, but it only enables warnings from
+The code below makes use of both modules, but it only enables warnings from
C<Derived>.
use Original;
@@ -608,7 +1121,7 @@ C<Derived>.
$a->doit(1);
When this code is run only the C<Derived> object, C<$b>, will generate
-a warning.
+a warning.
Odd numbers are unsafe at main.pl line 7
@@ -736,446 +1249,4 @@ See also L<perlmodlib/Pragmatic Modules> and L<perldiag>.
=cut
-our %Offsets = (
-
- # Warnings Categories added in Perl 5.008
-
- 'all' => 0,
- 'closure' => 2,
- 'deprecated' => 4,
- 'exiting' => 6,
- 'glob' => 8,
- 'io' => 10,
- 'closed' => 12,
- 'exec' => 14,
- 'layer' => 16,
- 'newline' => 18,
- 'pipe' => 20,
- 'unopened' => 22,
- 'misc' => 24,
- 'numeric' => 26,
- 'once' => 28,
- 'overflow' => 30,
- 'pack' => 32,
- 'portable' => 34,
- 'recursion' => 36,
- 'redefine' => 38,
- 'regexp' => 40,
- 'severe' => 42,
- 'debugging' => 44,
- 'inplace' => 46,
- 'internal' => 48,
- 'malloc' => 50,
- 'signal' => 52,
- 'substr' => 54,
- 'syntax' => 56,
- 'ambiguous' => 58,
- 'bareword' => 60,
- 'digit' => 62,
- 'parenthesis' => 64,
- 'precedence' => 66,
- 'printf' => 68,
- 'prototype' => 70,
- 'qw' => 72,
- 'reserved' => 74,
- 'semicolon' => 76,
- 'taint' => 78,
- 'threads' => 80,
- 'uninitialized' => 82,
- 'unpack' => 84,
- 'untie' => 86,
- 'utf8' => 88,
- 'void' => 90,
-
- # Warnings Categories added in Perl 5.011
-
- 'imprecision' => 92,
- 'illegalproto' => 94,
-
- # Warnings Categories added in Perl 5.013
-
- 'non_unicode' => 96,
- 'nonchar' => 98,
- 'surrogate' => 100,
-
- # Warnings Categories added in Perl 5.017
-
- 'experimental' => 102,
- 'experimental::lexical_subs'=> 104,
- 'experimental::lexical_topic'=> 106,
- 'experimental::regex_sets'=> 108,
- 'experimental::smartmatch'=> 110,
-
- # Warnings Categories added in Perl 5.019
-
- 'experimental::autoderef'=> 112,
- 'experimental::postderef'=> 114,
- 'experimental::signatures'=> 116,
- 'syscalls' => 118,
- );
-
-our %Bits = (
- 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55", # [0..59]
- 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [29]
- 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [30]
- 'closed' => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
- 'closure' => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
- 'debugging' => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
- 'deprecated' => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
- 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [31]
- 'exec' => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
- 'exiting' => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
- 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\x15", # [51..58]
- 'experimental::autoderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [56]
- 'experimental::lexical_subs'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [52]
- 'experimental::lexical_topic'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [53]
- 'experimental::postderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [57]
- 'experimental::regex_sets'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [54]
- 'experimental::signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [58]
- 'experimental::smartmatch'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [55]
- 'glob' => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
- 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [47]
- 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [46]
- 'inplace' => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
- 'internal' => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
- 'io' => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [5..11,59]
- 'layer' => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
- 'malloc' => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
- 'misc' => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
- 'newline' => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
- 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [48]
- 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [49]
- 'numeric' => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
- 'once' => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
- 'overflow' => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
- 'pack' => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
- 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [32]
- 'pipe' => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
- 'portable' => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
- 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [33]
- 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [34]
- 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [35]
- 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [36]
- 'recursion' => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
- 'redefine' => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
- 'regexp' => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
- 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [37]
- 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [38]
- 'severe' => "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
- 'signal' => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
- 'substr' => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
- 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [50]
- 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00\x00", # [28..38,47]
- 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [59]
- 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [39]
- 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [40]
- 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [41]
- 'unopened' => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
- 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [42]
- 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [43]
- 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x15\x00\x00", # [44,48..50]
- 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [45]
- );
-
-our %DeadBits = (
- 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", # [0..59]
- 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [29]
- 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [30]
- 'closed' => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
- 'closure' => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
- 'debugging' => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
- 'deprecated' => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
- 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [31]
- 'exec' => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
- 'exiting' => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
- 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaa\x2a", # [51..58]
- 'experimental::autoderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [56]
- 'experimental::lexical_subs'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [52]
- 'experimental::lexical_topic'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [53]
- 'experimental::postderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [57]
- 'experimental::regex_sets'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [54]
- 'experimental::signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [58]
- 'experimental::smartmatch'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [55]
- 'glob' => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
- 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [47]
- 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [46]
- 'inplace' => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
- 'internal' => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
- 'io' => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [5..11,59]
- 'layer' => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
- 'malloc' => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
- 'misc' => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
- 'newline' => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
- 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [48]
- 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [49]
- 'numeric' => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
- 'once' => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
- 'overflow' => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
- 'pack' => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
- 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [32]
- 'pipe' => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
- 'portable' => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
- 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [33]
- 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [34]
- 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [35]
- 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [36]
- 'recursion' => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
- 'redefine' => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
- 'regexp' => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
- 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [37]
- 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [38]
- 'severe' => "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
- 'signal' => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
- 'substr' => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
- 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [50]
- 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00\x00", # [28..38,47]
- 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [59]
- 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [39]
- 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [40]
- 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [41]
- 'unopened' => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
- 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [42]
- 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [43]
- 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x2a\x00\x00", # [44,48..50]
- 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [45]
- );
-
-$NONE = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
-$DEFAULT = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x55\x15", # [2,56,52,53,57,54,58,55,4,22,23,25]
-$LAST_BIT = 120 ;
-$BYTES = 15 ;
-
-$All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
-
-sub Croaker
-{
- require Carp; # this initializes %CarpInternal
- local $Carp::CarpInternal{'warnings'};
- delete $Carp::CarpInternal{'warnings'};
- Carp::croak(@_);
-}
-
-sub _bits {
- my $mask = shift ;
- my $catmask ;
- my $fatal = 0 ;
- my $no_fatal = 0 ;
-
- foreach my $word ( @_ ) {
- if ($word eq 'FATAL') {
- $fatal = 1;
- $no_fatal = 0;
- }
- elsif ($word eq 'NONFATAL') {
- $fatal = 0;
- $no_fatal = 1;
- }
- elsif ($catmask = $Bits{$word}) {
- $mask |= $catmask ;
- $mask |= $DeadBits{$word} if $fatal ;
- $mask &= ~($DeadBits{$word}|$All) if $no_fatal ;
- }
- else
- { Croaker("Unknown warnings category '$word'")}
- }
-
- return $mask ;
-}
-
-sub bits
-{
- # called from B::Deparse.pm
- push @_, 'all' unless @_ ;
- return _bits(undef, @_) ;
-}
-
-sub import
-{
- shift;
-
- my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ;
-
- if (vec($mask, $Offsets{'all'}, 1)) {
- $mask |= $Bits{'all'} ;
- $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1);
- }
-
- # append 'all' when implied (after a lone "FATAL" or "NONFATAL")
- push @_, 'all' if @_==1 && ( $_[0] eq 'FATAL' || $_[0] eq 'NONFATAL' );
-
- # Empty @_ is equivalent to @_ = 'all' ;
- ${^WARNING_BITS} = @_ ? _bits($mask, @_) : $mask | $Bits{all} ;
-}
-
-sub unimport
-{
- shift;
-
- my $catmask ;
- my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ;
-
- if (vec($mask, $Offsets{'all'}, 1)) {
- $mask |= $Bits{'all'} ;
- $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1);
- }
-
- # append 'all' when implied (empty import list or after a lone "FATAL")
- push @_, 'all' if !@_ || @_==1 && $_[0] eq 'FATAL';
-
- foreach my $word ( @_ ) {
- if ($word eq 'FATAL') {
- next;
- }
- elsif ($catmask = $Bits{$word}) {
- $mask &= ~($catmask | $DeadBits{$word} | $All);
- }
- else
- { Croaker("Unknown warnings category '$word'")}
- }
-
- ${^WARNING_BITS} = $mask ;
-}
-
-my %builtin_type; @builtin_type{qw(SCALAR ARRAY HASH CODE REF GLOB LVALUE Regexp)} = ();
-
-sub MESSAGE () { 4 };
-sub FATAL () { 2 };
-sub NORMAL () { 1 };
-
-sub __chk
-{
- my $category ;
- my $offset ;
- my $isobj = 0 ;
- my $wanted = shift;
- my $has_message = $wanted & MESSAGE;
-
- unless (@_ == 1 || @_ == ($has_message ? 2 : 0)) {
- my $sub = (caller 1)[3];
- my $syntax = $has_message ? "[category,] 'message'" : '[category]';
- Croaker("Usage: $sub($syntax)");
- }
-
- my $message = pop if $has_message;
-
- if (@_) {
- # check the category supplied.
- $category = shift ;
- if (my $type = ref $category) {
- Croaker("not an object")
- if exists $builtin_type{$type};
- $category = $type;
- $isobj = 1 ;
- }
- $offset = $Offsets{$category};
- Croaker("Unknown warnings category '$category'")
- unless defined $offset;
- }
- else {
- $category = (caller(1))[0] ;
- $offset = $Offsets{$category};
- Croaker("package '$category' not registered for warnings")
- unless defined $offset ;
- }
-
- my $i;
-
- if ($isobj) {
- my $pkg;
- $i = 2;
- while (do { { package DB; $pkg = (caller($i++))[0] } } ) {
- last unless @DB::args && $DB::args[0] =~ /^$category=/ ;
- }
- $i -= 2 ;
- }
- else {
- $i = _error_loc(); # see where Carp will allocate the error
- }
-
- # Default to 0 if caller returns nothing. Default to $DEFAULT if it
- # explicitly returns undef.
- my(@callers_bitmask) = (caller($i))[9] ;
- my $callers_bitmask =
- @callers_bitmask ? $callers_bitmask[0] // $DEFAULT : 0 ;
-
- my @results;
- foreach my $type (FATAL, NORMAL) {
- next unless $wanted & $type;
-
- push @results, (vec($callers_bitmask, $offset + $type - 1, 1) ||
- vec($callers_bitmask, $Offsets{'all'} + $type - 1, 1));
- }
-
- # &enabled and &fatal_enabled
- return $results[0] unless $has_message;
-
- # &warnif, and the category is neither enabled as warning nor as fatal
- return if $wanted == (NORMAL | FATAL | MESSAGE)
- && !($results[0] || $results[1]);
-
- require Carp;
- Carp::croak($message) if $results[0];
- # will always get here for &warn. will only get here for &warnif if the
- # category is enabled
- Carp::carp($message);
-}
-
-sub _mkMask
-{
- my ($bit) = @_;
- my $mask = "";
-
- vec($mask, $bit, 1) = 1;
- return $mask;
-}
-
-sub register_categories
-{
- my @names = @_;
-
- for my $name (@names) {
- if (! defined $Bits{$name}) {
- $Bits{$name} = _mkMask($LAST_BIT);
- vec($Bits{'all'}, $LAST_BIT, 1) = 1;
- $Offsets{$name} = $LAST_BIT ++;
- foreach my $k (keys %Bits) {
- vec($Bits{$k}, $LAST_BIT, 1) = 0;
- }
- $DeadBits{$name} = _mkMask($LAST_BIT);
- vec($DeadBits{'all'}, $LAST_BIT++, 1) = 1;
- }
- }
-}
-
-sub _error_loc {
- require Carp;
- goto &Carp::short_error_loc; # don't introduce another stack frame
-}
-
-sub enabled
-{
- return __chk(NORMAL, @_);
-}
-
-sub fatal_enabled
-{
- return __chk(FATAL, @_);
-}
-
-sub warn
-{
- return __chk(FATAL | MESSAGE, @_);
-}
-
-sub warnif
-{
- return __chk(NORMAL | FATAL | MESSAGE, @_);
-}
-
-# These are not part of any public interface, so we can delete them to save
-# space.
-delete @warnings::{qw(NORMAL FATAL MESSAGE)};
-
-1;
-
# ex: set ro:
diff --git a/Master/tlpkg/tlperl/lib/warnings/register.pm b/Master/tlpkg/tlperl/lib/warnings/register.pm
index 62a3dbfce08..0adf104af7e 100644
--- a/Master/tlpkg/tlperl/lib/warnings/register.pm
+++ b/Master/tlpkg/tlperl/lib/warnings/register.pm
@@ -1,25 +1,6 @@
package warnings::register;
-our $VERSION = '1.03';
-
-=pod
-
-=head1 NAME
-
-warnings::register - warnings import function
-
-=head1 SYNOPSIS
-
- use warnings::register;
-
-=head1 DESCRIPTION
-
-Creates a warnings category with the same name as the current package.
-
-See L<warnings> for more information on this module's usage.
-
-=cut
-
+our $VERSION = '1.04';
require warnings;
# left here as cruft in case other users were using this undocumented routine
@@ -43,5 +24,23 @@ sub import
warnings::register_categories($package . "::$_") for @categories;
}
-
1;
+__END__
+
+=pod
+
+=head1 NAME
+
+warnings::register - warnings import function
+
+=head1 SYNOPSIS
+
+ use warnings::register;
+
+=head1 DESCRIPTION
+
+Creates a warnings category with the same name as the current package.
+
+See L<warnings> for more information on this module's usage.
+
+=cut